MỤC LỤC
MỞ ĐẦU 1
Giới thiệu bối cảnh đề tài 1
Ý nghĩa và mục đích của đề tài 2
Nhiệm vụ phải thực hiện 3
I.1. Mục tiêu nghiên cứu 3
I.2. Kết quả dự kiến 3
Tóm tắt phương pháp triển khai 5
Bố cục sẽ trình bày 5
CƠ SỞ LÝ THUYẾT 6
I. Tìm hiểu các khái niệm trong ứng dụng thống kê 6
I.1. Referer: 6
I.2. System: 7
I.3. Traffic: 7
I.4. Time: 8
I.5. Page: 8
II. Khai thác thông tin của client khi họ truy cập vào 1 website 9
II.1. Java script và khả năng khai thác thông tin 9
II.2. HTTP Header và khả năng khai thác thông tin 9
III. Tổng quan về Webservices 11
III.1. Giới thiệu công nghệ 11
III.2. Đặc điểm của Dịch vụ Web 11
III.3. Kiến trúc của Dịch vụ Web 13
III.4. Các thành phần của Dịch vụ Web 14
IV. Lựa chọn CSDL – Tại sao chọn SQL Server 2005 16
IV.1. Indexing 17
IV.2. SQL Profiler 18
IV.3. Data Engine Tuning Advisor 18
IV.4. Partition Table 20
V. Báo cáo trực quan bằng hình ảnh 21
V.1. Đồ thị dạng bánh (Pie Chart) 21
V.2. Đồ thị dạng cột (Bar Chart) 21
V.3. Đồ thị gồm các đường thẳng nối nhau (Line Chart) 22
V.4. Đồ thị vùng (Area Chart) 22
V.5. Đồ thị xu hướng (Trend Line) 23
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 24
I. Giới thiệu bài toán 24
II. Các chức năng yêu cầu 24
II.1. Hệ thống khai thác thông tin 24
II.2. Dịch vụ web, cung cấp báo cáo thông qua các yêu cầu SOAP 24
II.3. Phần mềm web 25
II.4. Ứng dụng C# báo cáo kết quả 25
III. Phương pháp giải quyết 25
IV. Phân tích hệ thống thông tin 26
IV.1. Các chủ thể của hệ thống (Actors) 26
IV.2. Sơ đồ Use Case 27
IV.3. Đặc tả chi tiết 32
IV.4. Sơ đồ tuần tự 46
V. Thiết kế hệ thống thông tin 53
V.1. Sơ đồ lớp 53
V.2. Thiết kế giao diện 59
PHÁT TRIỂN ỨNG DỤNG 64
I. Công cụ và môi trường phát triển 64
I.1. WSO2 Web Services Framework for PHP 64
I.2. Giới thiệu thư viện ChartDirector for PHP 66
II. Một số kết quả đạt được 68
II.1. Chức năng đăng ký 69
II.2. Chức năng thiết lập thông tin website 70
II.3. Chức năng đăng nhập 70
II.4. Trang báo cáo dạng bánh (pie) 71
II.5. Trang báo cáo dạng cột (bar) 72
II.6. Trang báo cáo dạng đường thẳng (line) 73
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 74
I. Kết quả đạt được 74
II. Những hạn chế 74
III. Hướng mở rộng và phát triển của đề tài 74
TÓM TẮT LUẬN VĂN TỐT NGHIỆP 77
I. Tên đề tài: 77
II. Tóm tắt nội dung luận văn 77
II.1. Bối cảnh chọn đề tài 77
II.2. Mục đích 77
II.3. Nhiệm vụ phải thực hiện 77
II.4. Kết quả dự kiến 77
II.5. Các vấn đề đã giải quyết được 78
87 trang |
Chia sẻ: netpro | Lượt xem: 1970 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng hệ thống thống kê và phân tích thông tin truy cập của các website, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g được sử dụng kết hợp với XML schema và SOAP để cung cấp dịch vụ Web qua Internet. Một client khi kết nối tới dịch vụ Web có thể đọc WSDL để xác định những chức năng sẵn có trên server. Sau đó, client có thể sử dụng SOAP để lấy ra chức năng chính xác có trong WSDL.
Universal Description, Discovery, and Integration (UDDI)
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ. UDDI định nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web.
Cấu trúc UDDI:
Trang trắng - White pages: chứa thông tin liên hệ và các định dạng chính yếu của dịch vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Những thông tin này cho phép các đối tượng khác xác định được dịch vụ.
Trang vàng - Yellow pages: chứa thông tin mô tả dịch vụ Web theo những loại khác nhau. Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từng loại với nó.
Trang xanh - Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của dịch vụ Web.
Loại dịch vụ - tModel: chứa các thông tin về loại dịch vụ được sử dụng.Những thông tin về dịch vụ Web được sử dụng và công bố lên mạng sử dụng giao thức này. Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của dịch vụ Web khác nhằm xác định xem dịch vụ nào sẽ cần đến nó.
SOAP - Simple Object Access Protocol
Chúng ta đã hiểu cơ bản dịch vụ Web như thế nào nhưng vẫn còn một vấn đề khá quan trọng. Đó là làm thế nào để truy xuất dịch vụ khi đã tìm thấy? Câu trả lời là các dịch vụ Web có thể truy xuất bằng một giao thức là Simple Object Access Protocol – SOAP. Nói cách khác chúng ta có thể truy xuất đến UDDI registry bằng các lệnh gọi hoàn toàn theo định dạng của SOAP.
SOAP là một giao thức giao tiếp có cấu trúc như XML. Nó được xem là cấu trúc xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ điều hành khác nhau. SOAP là giao thức thay đổi các thông điệp dựa trên XML qua mạng máy tính, thông thường sử dụng giao thức HTTP.
Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi những thông điệp trả lời tới client. Cả SMTP và HTTP đều là những giao thức ở lớp ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet.
Cấu trúc một thông điệp theo dạng SOAPđịnh dạng
Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm các phần tử sau:
Phần tử gốc - envelop: phần tử bao trùm nội dung thông điệp, khai báo văn bản XML như là một thông điệp SOAP.
Phần tử đầu trang – header: chứa các thông tin tiêu đề cho trang, phần tử này không bắt buộc khai báo trong văn bản. Header còn có thể mang những dữ liệu chứng thực, những chứ ký số, thông tin mã hóa hay cài đặt cho các giao dịch khác.
Phần tử khai báo nội dung chính trong thông điệp - body, chứa các thông tin yêu cầu và thông tin được phản hồi.
Phần tử đưa ra các thông tin về lỗi -fault, cung cấp thông tin lỗi xảy ra trong qúa trình xử lý thông điệp.
Một SOAP đơn giản trong body sẽ lưu các thông tin về tên thông điệp, tham chiếu tới một thể hiện của dịch vụ, một hoặc nhiều tham số. Có 3 kiểu thông báo sẽ được đưa ra khi truyền thông tin: request message(tham số gọi thực thi một thông điệp), respond message (các tham số trả về, được sử dụng khi yêu cầu được đáp ứng) và cuối cùng là fault message (thông báo tình trạng lỗi).
Kiểu truyền thông: Có 2 kiểu truyền thông
Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng. Kiểu này được khai thác bởi nhiều dịch vụ Web.
Document: được biết đến như kiểu hướng thông điệp, nó cung cấp giao tiếp ở mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn.
Hai kiểu truyền thông này cung cấp các định dạng thông điệp, tham số, lời gọi đến các API khác nhau nên việc sử dụng chúng tùy thuộc vào thời gian và sự phù hợp với dịch vụ Web cần xây dựng.
Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như trong các ngôn ngữ lập trình khác như kiểu dữ liệu (int, string, date…) hay những kiều phức tạp hơn như struct, array, vector… Định nghĩa cấu trúc dữ liệu SOAP được đặt trong namespace SOAP-ENC.
Mã hóa: Giả sử service rquester và service provider được phát triển trong Java, khi đó mã hóa SOAP là làm thế nào chuyển đổi từ cấu trúc dữ liệu Java sang SOAP XML và ngược lại, bởi vì định dạng cho Web Service chính là XML. Bất kỳ một môi trường thực thi SOAP nào cũng phải có một bảng chứa thông tin ánh xạ nhằm chuyển đổi từ ngôn ngữ Java sang XML và từ XML sang Java - bảng đó được gọi là SOAPMappingRegistry. Nếu một kiểu dữ liệu được sử dụng dưới một dạng mã hóa thì sẽ có một ánh xạ tồn tại trong bộ đăng ký của môi trường thực thi SOAP đó.
Lựa chọn CSDL – Tại sao chọn SQL Server 2005
Sở dĩ chọn SQL Server 2005 vì những lý do sau:
Hệ thống index của SQL Server 2005 rất mạnh, nó giúp mình tạo chỉ mục cho các bảng dữ liệu, giúp truy cập đến dữ liệu nhanh hơn.
SQL Server 2005 có hệ thống phân tích tốc độ xử lý lệnh rất mạnh (SQL Profiler), qua đó ta có thể đánh giá được độ ưu việt của các câu lệnh SQL
SQL Turning Advisor giúp đưa ra những lựa chọn tối ưu khi tạo chỉ mục, giúp cho xử lý của hệ thống được tối ưu đáng kể.
SQL Server 2005 hỗ trợ mạnh về Data Replication, giúp phân tán dữ liệu tốt.
Hệ thống backup và mornitoring của SQL Server 2005 cũng rất mạnh.
SQL Server 2005 cung cấp môi trường phát triển thân thiện (SQL Server Management)
Hỗ trợ mạnh về function và store procedure.
Những chức năng khác như view, trigger, ... cũng rất hiệu quả. Chúng ta tiếp tục tìm hiểu về các thế mạnh của SQL Server qua các tính năng sau:
Indexing
Chức năng index giúp SQL Server sắp xếp lại dữ liệu một cách có trật tự theo tiêu chí index, giúp cho việc tìm kiếm trở nên nhanh chóng và dễ dàng hơn với thuật toán tìm kiếm nhị phân. Chúng ta sẽ xem qua các ví dụ về tốc độ xử lý của CSDL trước chi lập index và sau chi lập index.
Trước khi lập Index:
Hình 3: Biểu đồ xử lý CSDL trước khi thiết lập index
Sau chi lập Index
Hình 4: Biểu đồ xử lý CSDL sau khi lập index
SQL Profiler
Công cụ SQL Profiler của SQL Server 2005 là một công cụ tuyệt vời cho các nhà quản trị database, giúp họ đánh giá tốc độ xử lý của các câu lệnh một cách trực quan, giúp ta xem xét được độ tối ưu của các truy vấn vào CSDL thông qua các thông số:mức độ chiếm dụng CPU, thời gian hoàn tất thực thi, tổng số bảng ghi bị tác động, tổng số bảng ghi được ghi xuống, v.v…Các thông tin này có thể được lưu lại dưới dạng file trace (*.trace) hoặc được chỉ định lưu vào một bảng trong CSDL nào đó
Hình 5: Công cụ SQL Profiler của SQL Server
Data Engine Tuning Advisor
Tương tự như SQL Profiler, công cụ Data Engine Tuning Advisor cũng giúp đánh giá tốc độ xử lý của các truy vấn vào CSDL, qua đó có thể giúp ta tìm ra vấn đề của các câu truy vấn và có hướng khắc phục hay tối ưu.
Hình 6: Công cụ Data Engine Tunning Advisor
Ngoài ra, khi kết hợp với file *.trace được tạo ra bởi SQL Profiler, công cụ Data Engine Tunning Advisor có thể giúp ta đưa ra giải pháp về cách thêm hoặc bớt các index cho table, giúp tăng tốc tối đa tốc độ xử lý của hệ thống.
Hình 7: Công cụ Data Engine Tunning Advisor và giải pháp xây dựng các index
Partition Table
Đây là chức năng mới trong SQL Server 2005, giúp ta phân vùng dữ liệu các bảng theo hàng ngang hoặc theo hàng dọc, tạo nên một tiện ích lớn khi ta sao lưu hay khôi phục dữ liệu, cũng như là thực hiện các truy vấn hoặc tạo index cho các bảng, các vùng dữ liệu.
Mô tả 1 table dã được tạo partition
Hình 8: Table đã được tạo partition
Cách tạo Partition table
Hình 9: Cách tạo partition table
Báo cáo trực quan bằng hình ảnhNên dẫn dắt tại sao dùng các báo cáo trực quan này
Đồ thị dạng bánh (Pie Chart)
Hình 10: Đồ thị dạng bánh
Đồ thị dạng bánh thường được sử dụng để thống kê các loại biểu đồ mà có tổng giá trị là 100%.
Đồ thị dạng cột (Bar Chart)
Hình 11: Đồ thị dạng cột
Với đồ thị dạng cột, ta có thể dễ dàng nhận thấy giá trị nào là lớn nhất một cách trực quan. Với đồ thị dạng bánh, khi có quá nhiều giá trị cần so sánh thì rất khó thể hiện trên đồ thị dạng bánh, và khi đó, đồ thị dạng cột sẽ là lựa chọn tốt hơn.
Đồ thị gồm các đường thẳng nối nhau (Line Chart)
Hình 12: Đồ thị dạng đường thẳng
Khi ta có hàng ngàn giá trị cần hiển thị trên đồ thị, lúc đó, đồ thị dạng cột sẽ trở nên rất xấu và khó so sánh, khi đó ta sẽ sử dụng đồ thị dạng Line để vẽ. Ưu điểm của đồ thị này là giúp ta quan tâm đến độ tăng giảm của giá trị tại một khoảng thời gian nào đó mà không quá quan tâm đến chi tiết từng giá trị tại từng thời điểm.
Đồ thị vùng (Area Chart)
Hình 13: Đồ thị vùng
Trong một vài trường hợp cần so sánh các đồ thị dạng line với nhau thì người ta thường dùng đồ thị vùng (Area chart), lúc đó hình ảnh sẽ rõ ràng hơn và dễ so sánh hơn.
Đồ thị xu hướng (Trend Line)
Hình 14: Đồ thị xu hướng
Đường thẳng xu hướng (trend line) thường được dùng để đánh giá mức độ tăng hay giảm (còn gọi là xu hướng) của đồ thị.
CHƯƠNG 3
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Giới thiệu bài toán, các yêu cầu chức năng, phương pháp giải quyết, trình bày kết quả phân tích và thiết kế bài toán gồm: phân tích chức năng như sơ đồ UseCase, sơ đồ tuần tự; thiết kế như sơ đồ lớp; giao diện,…)
Giới thiệu bài toán
Để thống kê được các thông tin như đã trình bày ở phần trên thì cần xây dựng một hệ thống, qua đó sẽ cung cấp cho các webmaster khả năng để lưu lại thông tin các lần truy cập vào website của mình, đồng thời cung cấp cho họ một hệ thống báo cáo trực quan, rõ ràng, chính xác. Ngoài ra, cần xây dựng một dịch vụ web để cung cấp cho họ lấy được kết quả báo cáo của họ, và họ có thể sử dụng dịch vụ đó để lập trình cho phần mềm riêng của họ nếu muốn.
Các chức năng yêu cầu
Hệ thống khai thác thông tin
Hệ thống này chuyên làm nhiệm vụ thu thập thông tin của các truy cập vào website, có thể thu thập được các thông tin sau:
Referer: Direct Request, No Referer, Search Engine, Search Keywords, Country.
System: Operating System, Browser, Color, Resolution
Traffic: Visits, Page Views, Unique Visitors, New Visitors, Visit per week, Visit per hour, Visit Frequently.
Pages: Entry pages, Exit pages
Times: Time spent on site, Time spent on page.
Dịch vụ web, cung cấp báo cáo thông qua các yêu cầu SOAP
Để các webmaster có thể sử dụng được các kết quả báo cáo của họ, và sử dụng vào chương trình riêng của họ, cho nên chúng ta cần xây dựng 1 hệ thống cung cấp 1 dịch vụ web để trả về các kết quả báo cáo thông qua các yêu cầu SOAP. Hệ thống này sẽ cung cấp tất cả các báo cáo cần thiết, và cần phải được chứng thực quyền người sử dụng trong mỗi lần yêu cầu.
Phần mềm web
Để có thể quy trình hóa một cách rõ ràng cách thức sử dụng hệ thống, chúng ta cần xây dựng 1 website đơn giản thực hiện các công việc sau:
Các webmaster có thể đăng ký một tài khoản để sử dụng dịch vụ
Các webmaster có thể cấu hình các thông tin về website của họ.
Các webmaster có thể xem báo cáo của họ trực tiếp trên trang web bằng cách vào xem báo cáo trực tiếp tại Control Panel của họ.
Ứng dụng C# báo cáo kết quả
Để có thể ví dụ rõ ràng hơn về kết quả mà dịch vụ web mang lại, chúng ta sẽ xây dựng một ứng dụng để bàn nhỏ bằng C#, qua đó sẽ truy xuất các báo cáo thông qua web service và hiển thị lên trên phần mềm.
Phương pháp giải quyết
Với những trình bày trong phần cơ sở lý thuyết ở phần trên, và để có thể thu thập được tất cả các thông tin về các lần truy cập đến website, chúng em quyết định chọn Javascript và ngôn ngữ lập trình PHP cùng với CSDL SQL Server 2005 để xây dựng hệ thống khai thác thông tin về các lần truy cập.
Để có thể tìm hiểu và nắm rõ hơn về các thông số, cũng như cách thức báo cáo và các nhu cầu thống kê của hệ thống, chúng em quyết định chọn 1 số website thống kê lớn để tham khảo như Google Analystic, Shinystats.com, Histats.com và alexa.com. Từ việc nghiên cứu các website này, chúng em thấy rằng, muốn thu thập được thông tin của các lần truy cập vào website thì cần đặt lên trên website đó một đoạn javascript (hoặc vbscript) để thu thập lại thông tin của các lần truy cập, sau đó gửi các thông tin đó về phía server thống kê để tiếp tục phân tích các thông tin vừa thu thập được.
Riêng đối với hệ thống Web, chúng em sẽ sử dụng 1 framework khá nổi tiếng của PHP hiện nay là CakePHP để xây dựng hệ thống báo cáo, các báo cáo sẽ được trình bày và phân theo từng chủ để. Các báo cáo chi tiết đều được minh họa bằng đồ thị và kèm theo đầy đủ các thông tin.
Ngoài ra, chúng em còn quyết định viết thêm 1 phần mềm nhỏ để làm ví dụ về việc ứng dụng kết quả báo cáo thông qua webservice để chứng tỏ khả năng hoạt động hiệu quả của hệ thống.
Đối với dịch vụ web (Web Services), chúng em sẽ chọn Framework WOS2 để xây dựng, vì đây là Framework về Web Services của PHP khá ổn định, được cộng đồng nguồn mở đánh giá cao và cung cấp gần như đầy đủ các thao tác cần thiết của một dịch vụ web.
Bởi vì hệ thống thiên về vấn đề báo cáo, nên về cách cấu trúc dữ liệu, chúng em quyết định không chuẩn hóa bảng CSDL chính mà để CSDL dưới dạng phẳng (flat), sau đó sử dụng Partition table và Index để tối ưu tốc độ truy xuất dữ liệu. Sự chọn lựa này có những ưu và nhược điểm sau:
Ưu điểm
Tốc độ truy xuất dữ liệu nhanh nhờ vào Index
Các thông số và dữ liệu mang độ chính xác cao
Dễ truy xuất dữ liệu
Nhược điểm
Dữ liệu dư thừa, cồng kềnh, tốn nhiều không gian lưu trữ của hệ thống.
Phân tích hệ thống thông tin
Các chủ thể Tác nhân
của hệ thống (Actors)
Hình 15: Các chủ thể của hệ thống
Actor
Hệ thống gồm có các chủ thể sau:
STT
Chủ thể
Mô tả
1
Administrator
Người quản trị hệ thống, có quyền quản lý các tài khoản của các webmaster
2
Members
Là các thành viên của hệ thống, thường là các webmaster
3
Guest
Bao gồm tất cả những thành viên chưa đăng nhập
4
Collector
Chủ thể này có nhiệm vụ đi thu thập và khai thác thông tin của các lần truy cập
5
System
Chủ thể này có nhiệm vụ cung cấp báo cáo, kiểm tra xác thực thông tin đăng nhập, xử lý các thông tin được thu thập từ Collector, v.v..
Bảng 1: Các chủ thể của hệ thống
Sơ đồ Use Case
Các Use Case của Collector
Hình 16: Các Use Case của Collector
STT
Use Case
Mô tả
1
Collect Browsers
Collector sẽ thu thập thông tin về trình duyệt của các truy cập, xem họ dùng trình duyệt gì
2
Collect Referers
Collector phân tích và tìm hiểu xem tác nhân nào đã dẫn người dùng đến với website. Nếu họ đến từ các cỗ máy tìm kiếm thì phải biết đó là cỗ máy tìm kiếm nào, và họ dùng từ khóa gì.
3
Collect OS
Phân tích về hệ điều hành mà các truy cập dùng
4
Collect Color Depth
Phân tích xem các truy cập thường dùng hệ màu nào, 32 bits, 64 bits, v.v..
5
Collect Resolution
Phân tích xem người sử dụng thường dùng độ phân giải màn hình là bao nhiêu
6
Collect Visit information
Tổng hợp các thông tin giúp phân tích xem có bao nhiêu lượt truy cập đến với website
7
Page Views
Tổng hợp các thông tin giúp phân tích xem có bao nhiêu lần trang web được load lên (mỗi lần click vào trang hoặc refresh lại trang được tính là 1 lần Page view)
8
Unique Visitor
Tổng hợp các thông tin giúp phân tích xem có bao nhiêu người cụ thể đến với website (1 người cụ thể có thể đến website nhiều lần, và mỗi lần như vậy được tính là 1 Visits)
9
New Visitor
Tổng hợp các thông tin giúp phân tích xem trong tuần này, tháng này hoặc trong từng ngày, có bao nhiêu khách mới đến với website (Khách mới là khách trước đây chưa từng đến website lần nào)
10
Collect Time that user spent on website
Thu thập thông tin về thời gian mà người dùng đã bỏ ra để sử dụng website
11
Entry page
Tổng hợp các trang mà các truy cập thường vào đầu tiên nhất của website, qua đó đánh giá được tầm quan trọng của các trang này.
12
Exit page
Tổng hợp các trang mà tại đó, các truy cập thường dừng việc tiếp tục sử dụng website.
13
Country
Tổng hợp thông tin, xem các truy cập đến từ quốc gia nào
Bảng 2: Các Use Case của Collector
Các Use Case của Khách vãng lai – hay các webmaster chưa đăng ký (Guest)
Hình 17: Các Use Case của Guest
STT
Use Case
Mô tả
1
Register
Collector sẽ thu thập thông tin về trình duyệt của các truy cập, xem họ dùng trình duyệt gì
2
Login
Collector phân tích và tìm hiểu xem tác nhân nào đã dẫn người dùng đến với website. Nếu họ đến từ các cỗ máy tìm kiếm thì phải biết đó là cỗ máy tìm kiếm nào, và họ dùng từ khóa gì.
3
View Demo
Phân tích về hệ điều hành mà các truy cập dùng
4
Send a SOAP Request with Authentication Info
Gửi thông tin request với username & password hợp lệ để xem báo cáo.
Bảng 3: Các Use Case của Guest
Các Use Case của thành viên (Member)
Hình 18: Các Use Case của Member
STT
Use Case
Mô tả
1
Edit Profile
Chức năng giúp member thay đổi thông tin về website của mình và cá nhân mình.
2
Get the code
Chức năng này cho phép webmaster lấy lại đoạn code để bỏ vào website của mình để thống kê.
3
Change password
Giúp webmaster thay đổi lại mật khẩu đăng nhập của mình.
4
Get Statistics info
Xem chi tiết báo cáo về các truy cập vào website của mình.
Bảng 4: Các Use Case của thành viên
Các Use Case của tác nhân hệ thống (System)
Hình 19: Các Use Case của tác nhân hệ thống
STT
Use Case
Mô tả
1
Response to a SOAP Request
Khi có một yêu cầu từ phía client về dịch vụ web, tác nhân này có nhiệm vụ trả lời lại các yêu cầu đó
2
Compute the result
Trong quá trình phúc đáp lại các truy vấn SOAP, hệ thống cần thực hiện 1 số tính toán để cho ra kết quả báo cáo hợp lệ.
3
Draw a chart
Căn cứ vào các kết quả tính toán được, hệ thống sẽ tiến hành vẽ các biểu đồ báo cáo tương ứng.
4
Analyse Information get by Collectors
Phân tích các thông tin được thu thập bởi Collector, tổ chức và chuẩn hóa các thông tin đó.
5
Store information in the database
Lưu các thông tin vừa tổ chức và chuẩn hóa vào database
6
Answer to a report request
Khi có yêu cầu về việc xem báo cáo (trực tiếp trên hệ thống web) thì hệ thống cần phải xuất ra được báo cáo tương ứng
Bảng 5: Các Use Case của tác nhân hệ thống
Đặc tả chi tiết
Các Use case của Collector
Collect Browsers
Tóm tắt
Use case này cho phép Collector thu thập thông tin về trình duyệt của các lần truy cập.
Dòng hành động chính
Collector sẽ trích xuất thông tin trong header của các request, lấy ra thông tin về trình duyệt của client trong biến User-Agent
So sánh thông tin vừa trích xuất với thư viện các trình duyệt đã tồn tại trong hệ thống để suy ra truy cập đó sử dụng trình duyệt nào.
Sau khi Collector nhận dạng được trình duyệt thì sẽ lưu trình duyệt đó lại.
Dòng hành động thay thế
Nếu Collector không nhận dạng được trình duyệt thì sẽ cho trình duyệt đó vào loại Unknown
Lưu lại thông tin trình duyệt
Yêu cầu đặt biệt
Các truy cập phải thực hiện các request trên các trình duyệt web.
Nếu mở truy cập đến website bằng socket thì cần phải bổ sung đầy đủ thông tin về trình duyệt trong phần header.
Yêu cầu trước đó
Người sử dụng website cần tác động lên website để sinh ra lần truy cập đến website.
Yêu cầu sau đó
Thông tin về trình duyệt tìm thấy cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau
Collect Referers
Tóm tắt
Use case này cho phép Collector thu thập thông tin về các tác nhân dẫn đến việc sinh ra các truy cập đến website.
Dòng hành động chính
Collector sẽ trích xuất thông tin trong header của các request, lấy ra thông tin về các tác nhân dẫn đến các truy cập, đã được lưu trong biến Referer.
Nếu liên kết trong biến Referer là hợp lệ thì chấp nhận đó là 1 referer.
Nếu referer là một liên kết đến 1 website thì sẽ đối chiếu với thư viện các cỗ máy tìm kiếm đã có sẵn trong hệ thống để xem liên kết đó có phải là một cỗ máy tìm kiếm hay không. Nếu phải thì sẽ trích xuất ra được từ khóa khi người ta tìm kiếm trên cỗ máy tìm kiếm đó.
Dòng hành động thay thế
Nếu không có liên kết nào trong biến Referer thì đó được coi là 1 lần truy cập trực tiếp mà không thông qua tác nhân nào, và được coi là Direct Request.
Trong một số trường hợp, trình duyệt không nhận ra được Referer, lúc đó, tác nhân sẽ được coi là No Referer (Thỉnh thoảng, tác nhân còn được liệt vào kiểu Blocked Referer).
Yêu cầu đặt biệt
Các truy cập phải thực hiện các request trên các trình duyệt web.
Nếu mở truy cập đến website bằng socket thì cần phải bổ sung đầy đủ thông tin về trình duyệt trong phần header.
Yêu cầu trước đó
Người sử dụng website cần tác động lên website để sinh ra lần truy cập đến website.
Yêu cầu sau đó
Thông tin về trình duyệt tìm thấy cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau
Collect OS
Tóm tắt
Use case này cho phép Collector thu thập thông tin về hệ điều hành của các lần truy cập.
Dòng hành động chính
Collector sẽ trích xuất thông tin trong header của các request, lấy ra thông tin về trình duyệt của client trong biến User-Agent
So sánh thông tin vừa trích xuất với thư viện các hệ điều hành đã tồn tại trong hệ thống để suy ra truy cập đó sử dụng trình duyệt nào.
Sau khi Collector nhận dạng được hệ điều hành thì sẽ lưu thông tin hệ điều hành đó lại.
Dòng hành động thay thế
Nếu Collector không nhận dạng được hệ điều hành thì sẽ cho hệ điều hành đó vào loại Unknown
Lưu lại thông tin hệ điều hành.
Yêu cầu đặt biệt
Các truy cập phải thực hiện các request trên các trình duyệt web.
Nếu mở truy cập đến website bằng socket thì cần phải bổ sung đầy đủ thông tin về trình duyệt trong phần header.
Yêu cầu trước đó
Người sử dụng website cần tác động lên website để sinh ra lần truy cập đến website.
Yêu cầu sau đó
Thông tin về hệ điều hành tìm thấy cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau.
Collect Color Depth
Tóm tắt
Use case này cho phép Collector thu thập thông tin về hệ màu của các lần truy cập.
Dòng hành động chính
Collector sẽ trích xuất thông tin về hệ màu của lần truy cập, được gửi đến nhờ xử lý của đoạn mã javascript đặt trong website.
So sánh thông tin vừa trích xuất với thư viện các hệ màu đã tồn tại trong hệ thống để suy ra truy cập đó sử dụng hệ màu nào.
Sau khi Collector nhận dạng được hệ màu thì sẽ lưu thông tin hệ màu đó lại.
Dòng hành động thay thế
Nếu Collector không nhận dạng được hệ màu thì sẽ cho hệ màu đó vào loại Unknown
Lưu lại thông tin hệ màu.
Yêu cầu đặt biệt
Các truy cập phải thực hiện các request trên các trình duyệt web.
Trình duyệt web phải hỗ trợ javascript để thực thi tác vụ này.
Yêu cầu trước đó
Người sử dụng website cần tác động lên website để sinh ra lần truy cập đến website.
Yêu cầu sau đó
Thông tin về hệ màu tìm thấy cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau.
Collect Resolutions
Tóm tắt
Use case này cho phép Collector thu thập thông tin về độ phân giải màn hình của các truy cập web.
Dòng hành động chính
Collector sẽ trích xuất thông tin về độ phân giải màn hình của lần truy cập, được gửi đến nhờ xử lý của đoạn mã javascript đặt trong website.
So sánh thông tin vừa trích xuất với thư viện các độ phân giải màn hình đã tồn tại trong hệ thống để suy ra truy cập đó sử dụng độ phân giải màn hình nào.
Sau khi Collector nhận dạng được độ phân giải màn hình thì sẽ lưu thông tin về độ phân giải màn hình đó lại.
Dòng hành động thay thế
Nếu Collector không nhận dạng được độ phân giải màn hình thì sẽ cho độ phân giải màn hình đó vào loại Unknown
Lưu lại thông tin về độ phân giải màn hình.
Yêu cầu đặt biệt
Các truy cập phải thực hiện các request trên các trình duyệt web.
Trình duyệt web phải hỗ trợ javascript để thực thi tác vụ này.
Yêu cầu trước đó
Người sử dụng website cần tác động lên website để sinh ra lần truy cập đến website.
Yêu cầu sau đó
Thông tin về độ phân giải màn hình tìm thấy cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau.
Collect Visit Information
Tóm tắt
Use case này cho phép Collector thu thập thông tin về lượt truy cập của các truy cập web.
Dòng hành động chính
Collector sẽ nhận dạng xem đây có phải là lần truy cập đầu tiên của lượt truy cập hiện tại không. Nếu đúng là lần truy cập đầu tiên thì xác nhận với hệ thống là có 1 Visit mới đồng thời tiến hành xử lý dữ liệu tương ứng để xác nhận với hệ thống về lần đầu tiên truy cập của lượt truy cập hiện tại.
Xử lý thông tin về Unique Visitor (trình bày ở phần dưới)
Xử lý thông tin về New Visitor (trình bày ở phần dưới)
Dòng hành động thay thế
Nếu lần truy cập hiện tại không phải là lần truy cập đầu tiên của lượt truy cập hiện tại thì tiến hành xử lý dữ liệu tương ứng để xác nhận với hệ thống lần truy cập không phải là lần truy cập đầu tiên, mà là một lần load trang thông thường (page views).
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có.
Yêu cầu sau đó
Thông tin về lượt truy cập cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau.
Page Views
Xử lý của usecase này nằm kết hợp trong xử lý của Visit được trình bày ở ngay phần trên.
Unique Visitors
Tóm tắt
Use case này cho phép Collector thu thập thông tin về lượt truy cập của các truy cập web, xem thử có bao nhiêu người truy cập cụ thể đến website.
Dòng hành động chính
Kết hợp
Các file đính kèm theo tài liệu này:
- LVTN-QuanDucBinh,NguyenVanHongQuang-04T2.doc