MỤC LỤC MỞ ĐẦU1
Giới thiệu bối cảnh đề tài1
Ý nghĩa và mục đích của đề tài2
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 khai5
Bố cục sẽ trình bày. 5
CƠ SỞ LÝ THUYẾT6
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 Profiler18
IV.3.Data Engine Tuning Advisor18
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ỐNG24
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ết25
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ết32
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ỤNG64
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ỂN74
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ài74
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ài77
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ẻ: lvcdongnoi | Lượt xem: 2867 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài 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
ages: 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 với xử lý của usecase Visit, nếu lần truy cập là 1 Visit, thì tiếp tục kiểm tra xem người truy cập này có phải là lần đầu tiên đến website hay không.
Nếu không phải là lần đầu tiên đến với website thì sử dụng cookie để lấy số ID – không trùng (unique ID) đã được lưu trong máy của họ trước đó để nhận diện người đó.
Dòng hành động thay thế
Nếu là lần đầu tiên người dùng đến với website thì sẽ xác nhận họ là một Unique Visitor mới, đồng thời cũng xác nhận họ là một New Visitor
Tạo ra một số ID không trùng (unique ID) và lưu vào trong cookie tại máy người dùng để có thể sử dụng đối chiếu lại sau này.
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 đó
Lần truy cập của người sử dụng phải là lần truy cập đầu tiên của Session
Yêu cầu sau đó
Thông tin về Unique Visitor cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau.
New 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ó phải là lần đầu tiên người duyệt web này đến với website.
Dòng hành động chính
Kết hợp với xử lý của usecase Visit, nếu lần truy cập là 1 Visit, thì tiếp tục kiểm tra xem người truy cập này có phải là lần đầu tiên đến website hay không.
Nếu là lần đầu tiên người dùng đến với website thì sẽ xác nhận họ là một New Visitor
Tạo ra một số ID không trùng (unique ID) và lưu vào trong cookie tại máy người dùng để có thể sử dụng đối chiếu lại sau này.
Dòng hành động thay thế
Nếu không phải là lần đầu tiên người dùng đến với website thì sẽ lấy thông tin về unique ID đã được lưu trong máy của họ để xử lý về Unique Visitor (trình bày ở phần trên).
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 đó
Lần truy cập của người sử dụng phải là lần truy cập đầu tiên của Session
Yêu cầu sau đó
Thông tin về New visitor cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau.
Collect Time that user spent on website
Tóm tắt
Usecase này giúp Collector thu thập về thời gian sử dụng website của các lần truy cập.
Dòng hành động chính
Mỗi truy cập vào website sẽ được lưu lại thông tin về thời gian truy cập, session, unique Id, v.v… đồng thời cho tổng thời gian truy cập của lần truy cập hiện tại là 0.
Cập nhật lại tổng thời gian truy cập của lần truy cập ngay trước đó (nếu cùng session)
Dòng hành động thay thế
Không có
Yêu cầu đặt biệt
Tổng thời gian chỉ tính được khi người sử dụng chuyển sang 1 trang khác (cùng site) hoặc refresh lại trang.
Yêu cầu trước đó
Session ID và Unique ID cần phải được thống kê trước
Yêu cầu sau đó
Không có
Entry pages
Tóm tắt
Use Case này giúp Collector xác nhận xem trang truy cập hiện tại của lượt truy cập có phải là lần đầu tiên hay không.
Dòng hành động chính
Nếu lần truy cập là đầu tiên của lượt truy cập, thì xác nhận trang truy cập hiện tại là trang ngõ vào (Entry page)
Dòng hành động thay thế
Không có.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Truy cập hiện tại phải được xác nhận là lần truy cập đầu tiên.
Yêu cầu sau đó
Thông tin về Entry page cần được lưu lại vào biến toàn cục để phục vụ cho các usecase sau.
Exit pages
Tóm tắt
Use Case này giúp Collector xác nhận xem trang truy cập hiện tại của lượt truy cập có phải là trang cuối cùng hay không.
Dòng hành động chính
Mỗi lần truy cập vào trang web sẽ được xác nhận là trang cuối cùng, đến khi có một lần load trang khác được thực thi.
Nếu có lần load trang khác xảy ra, thì trang vừa được xác nhận là trang cuối cùng sẽ được thay thế bởi trang hiện tại (trang vừa load)
Dòng hành động thay thế
Không có.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có.
Yêu cầu sau đó
Không có.
Countries
Tóm tắt
Use Case này giúp cho Collector xác định xem lượt truy cập hiện tại nằm ở quốc gia nào.
Dòng hành động chính
Collector trích xuất IP của lần truy cập trong thông tin về header của lần truy cập
IP này sẽ được đối chiếu với thư viện GoIP có sẵn trong hệ thống để xem thử IP này là của quốc gia nào
Dòng hành động thay thế
Nếu hệ thống không thể xác nhận IP hiện tại là của quốc gia nào thì quốc gia của lần truy cập hiện tại sẽ được đặt là Unknown.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Các thông tin cần được lưu lại trong hệ thống
Các Use case của khách vãng lai
Register
Tóm tắt
Use Case này giúp cho Webmaster tạo một tài khoản thống kê để sử dụng cho website của mình
Dòng hành động chính
Webmaster sẽ nhập thông tin vào form đăng ký để tiến hành đăng ký.
Nếu thông tin hợp lệ thì sẽ tiến hành đăng ký cho webmaster và chuyển họ đến trang thiết lập thông tin về website của họ
Sau khi hoàn tất 2 bước đầu tiên thì webmaster sẽ được chuyển đến trang lấy mã code và hướng dẫn họ cách đặt vào website của họ.
Dòng hành động thay thế
Thông tin không hợp lệ thì yêu cầu họ nhập thông tin lại.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Sau khi đăng ký thành công thì chuyển họ đến trang hướng dẫn sử dụng đoạn mã javascript để đặt lên website của họ.
Login
Tóm tắt
Use Case này giúp cho Webmaster đăng nhập vào hệ thống để thực hiện thay đổi thông tin về website của họ hoặc là để xem lại hướng dẫn cách đặt đoạn mã javascript vào website của họ như thế nào.
Dòng hành động chính
Webmaster cần nhập vào thông tin hợp lệ bao gồm tên đăng nhập và mật khẩu để tiến hành đăng nhập.
Dòng hành động thay thế
Nếu thông tin đăng nhập không đúng thì yêu cầu đăng nhập lại.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Sau khi đăng ký thành công thì chuyển họ đến trang hướng dẫn sử dụng đoạn mã javascript để đặt lên website của họ.
View Demo
Tóm tắt
Use Case này giúp cho người sử dụng có thể xem demo về các dịch vụ của hệ thống thống kê trước khi quyết định đăng ký sử dụng dịch vụ này.
Dòng hành động chính
User click vào link demo trên website để xem demo..
Dòng hành động thay thế
Không có.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Không có.
Send a SOAP Request with Authentication Info
Tóm tắt
Use Case này giúp cho người sử dụng có thể xem báo cáo về website của họ bằng cách sử dụng các SOAP Request
Dòng hành động chính
User nạp dữ liệu vào trong SOAP Body và Soap Header
Tiến hành send dữ liệu đến dịch vụ web thông qua SOAP Request.
Hệ thống sẽ trả về thông tin tương ứng
Dòng hành động thay thế
Nếu thông tin xác thực không hợp lệ thì dịch vụ web sẽ response về một SOAP Response chứa thông tin lỗi.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Không có.
Các Use Case của thành viên đã đăng nhập
Edit Profile
Tóm tắt
Use Case này giúp cho người sử dụng có thể thay đổi thông tin về website của họ, phục vụ cho việc thống kê được chính xác hơn.
Dòng hành động chính
Thành viên đăng nhập vào hệ thống
Thành viên click vào trang thay đổi thông tin
Nhập thông tin và tiến hành thay đổi
Dòng hành động thay thế
Không có
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Không có.
Change password
Tóm tắt
Use Case này giúp cho người sử dụng có thể thay đổi mật khẩu đăng nhập vào hệ thống thống kê.
Dòng hành động chính
Thành viên đăng nhập vào hệ thống
Thành viên click vào trang thay đổi mật khẩu
Nhập thông mật khẩu cũ để xác nhận quyền
Nhập vào mật khẩu mới để tiến hành thay đổi
Dòng hành động thay thế
Nếu mật khẩu cũ không hợp lệ thì báo lỗi và yêu cầu nhập lại
Nếu mật khẩu mới không hợp lệ thì báo lỗi và yêu cầu nhập lại.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Không có.
Get statistics info
Tóm tắt
Use Case này giúp cho người sử dụng có thể xem báo cáo trực tiếp về các lượt truy cập của website mình ngay trên trang web của hệ thống thống kê.
Dòng hành động chính
Thành viên đăng nhập vào hệ thống
Thành viên click vào trang xem thông tin thống kê.
Dòng hành động thay thế
Không có.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Không có.
Get the code
Tóm tắt
Use Case này giúp cho người sử dụng lấy được đoạn mã và xem cách hướng dẫn để đặt đoạn mã đó.
Dòng hành động chính
Thành viên đăng nhập vào hệ thống
Thành viên click vào trang xem code javascript.
Dòng hành động thay thế
Không có.
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Không có.
Các Use Case của tác nhân hệ thống
Response to a SOAP Request
Tóm tắt
Use Case này giúp hệ thống trả lời lại một request từ phía client thông qua giao thức SOAP.
Dòng hành động chính
Người sử dụng gửi yêu cầu đến dịch vụ thông qua giao thức SOAP
Server sẽ phúc đáp lại yêu cầu của người sử dụng thông qua giao thức SOAP
Dòng hành động thay thế
Không có
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Không có.
Compute the result
Tóm tắt
Use case này xây dựng cách thức mà hệ thống phân tích và tổng hợp dữ liệu để xuất ra báo cáo.
Dòng hành động chính
Người sử dụng yêu cầu gửi báo cáo.
Hệ thống sẽ tính toán và đưa ra kết quả báo cáo.
Dòng hành động thay thế
Không có
Yêu cầu đặt biệt
Không có
Yêu cầu trước đó
Không có
Yêu cầu sau đó
Không có.
Draw a chart
Hệ thống tiến hành vẽ biểu đồ báo cáo dựa vào kết quả đã được tính toán.
Analyse Information get by Collectors
Hệ thống phân tích thông tin được gửi đến bởi Collector và lưu thông tin này vào CSDL
Sơ đồ tuần tự
Sơ đồ tuần tự của chức năng khai thác thông tin của collector
Hình 20: Sơ đồ tuần tự các chức năng của Collector
Collect Browsers
Hình 21: Sơ đồ tuần tự chức năng khai thác thông tin về trình duyệt
Collect OS
Hình 22: Sơ đồ tuần tự chức năng khai thác thông tin trình duyệt
Collect Referers
Hình 23: Sơ đồ tuần tự chức năng khai thác thông tin các Referer
Entry pages
Hình 24: Sơ đồ tuần tự chức năng khai thác thông tin các trang ngõ vào
Exit pages
Hình 25: Sơ đồ tuần tự chức năng khai thác thông tin ngõ ra
Page views
Hình 26: Sơ đồ tuần tự chức năng khai thác thông tin lần load trang
Time spent
Hình 27: Sơ đồ tuần tự chức năng khai thác thông tin thời gian duyệt web
Visits
Hình 28: Sơ đồ tuần tự chức năng khai thác thông tin về lượt truy cập
Color & Resolution
Tương tự như sơ đồ tuần tự của OS & Browsers
Thiết kế hệ thống thông tin
Sơ đồ lớpTrình bày sơ đồ lớp ???
Ứng dụng được chia thành các giai đoạn riêng biệt bao gồm:
Giai đoạn khai thác thông tin
Giai đoạn xử lý thông tin khai thác để lưu vào database
Giai đoạn xử lý và xuất báo cáo cho web service
Giai đoạn khai thác thông tin
Đoạn xử lý javascript không dùng sơ đồ lớp
Giai đoạn xử lý thông tin khai thác và lưu vào database
Lớp DBSource
Hình 29: Mô hình lớp DBSource
Tên
Phạm vi
Kiểu
Mô tả
Thuộc tính
connection
public
string
Connection resource khi kết nối thành công.
database
public
string
Tên của database
password
public
string
Mật khẩu kết nối database server
server
public
string
Tên của server
username
public
string
Tên đăng nhập vào database server
Thao tác
connect
public
void
Thực thi kết nối đến database
execute
public
void
Thực thi một câu lệnh sql
query
public
void
Truy vấn vào cơ sở dữ liệu
Bảng 6: Bảng mô tả lớp DBSource
Lớp Spider
Hình 30: Mô hình lớp Spider
Tên
Phạm vi
Kiểu
Mô tả
Thuộc tính
defined_color_depth
public
array
Mảng dữ liệu lưu trữ các hệ màu thường biết đến
defined_firefox_version
public
array
Mảng dữ liệu lưu trữ các phiên bản của trình duyệt Firefox thường biết đến
defined_ie_version
public
array
Mảng dữ liệu lưu trữ các phiên bản trình duyệt IE biết đến
defined_konqueror_version
public
array
Mảng dữ liệu lưu trữ các phiên bản trình duyệt Konquery biết đến
defined_netscape_version
public
array
Mảng dữ liệu lưu trữ các phiên bản trình duyệt Netscape biết đến
defined_opera_version
public
array
Mảng dữ liệu lưu trữ các phiên bản trình duyệt Opera biết đến
defined_operating_systems
public
array
Mảng dữ liệu lưu trữ các hệ điều hành thường biết đến
defined_resolutions
public
array
Mảng dữ liệu lưu trữ các kiểu độ phân giải màn hình thường được biết đến
Thao tác
__constructor
private
void
_getCurrentURL
private
string
Lấy ra URL đang tương tác
convertIpToLongNumber
public
long
Chuyển IP về dạng long
detectBrowser
public
string
Lấy thông tin trình duyệt
detectColorDepth
public
string
Lấy thông tin hệ màu
detectOperationSystem
public
string
Lấy thông tin hệ điều hành
detectResolution
public
string
Lấy thông tin độ phân giải màn hình
get_domain_info
private
array
Lấy thông tin về domain
get_host_id
public
int
Trả về Id của host hiện tại
get_referrer
public
array
Lấy thông tin về referer
get_session_id
public
string
Trả về session Id của truy cập hiện tại
get_uniqid
public
guid
Trả về Unique ID của truy cập hiện tại
getCountry
public
string
Lấy thông tin quốc gia
getRemoteIP
private
string
Lấy IP của truy cập hiện tại
is_new_visitor
public
boolean
Kiểm tra có phải là người mới đến website lần đầu hay không
parseSearchInfo
public
void
Phân tích thông tin của trình tìm kiếm
save_info
public
void
Lưu thông tin vào CSDL
zonedate
public
datetime
Trả về ngày giờ của truy cập hiện tại
Bảng 7: Bảng mô tả lớp Spider
Giai đoạn xử lý và xuất báo cáo cho web service
Lớp DBSource
Đã trình bày ở phần trên
WSClient (WOS2 Framework)
Hình 31: Mô hình lớp WSClient
Tên
Phạm vi
Kiểu
Mô tả
Thao tác
__constructor
private
void
request
public
WSMessage
Thực hiện một truy vấn đến server và chờ phúc đáp từ server
Send
public
void
Thực hiện một truy vấn đến server và không chờ phúc đáp từ server
Bảng 8: Mô hình lớp WSClient
WSService (WOS2 Framework)
Hình 32: Mô hình lớp WSService
Tên
Phạm vi
Kiểu
Mô tả
Thao tác
__constructor
private
void
reply
public
void
Chờ đợi request từ client
Bảng 9: Bảng mô tả lớp WSService
WSMessage (WOS2 Framework)
Hình 33: Mô hình lớp WSMessage
Tên
Phạm vi
Kiểu
Mô tả
Thao tác
__constructor
private
void
Tạo một đối tượng WSMessage
Bảng 10: Bảng mô tả lớp WSMessage
ThiếtPhải có thiết kế CSDL !
kế giao diện
Giao diện đăng ký
Hình 34: Wireframe giao diện đăng ký
Stt
Mô tả
1
Textbox để nhập vào tên đăng nhập
2
Textbox để nhập vào tên của webmaster
3
Textbox để nhập vào họ và tên lót của webmaster
4
Email của webmaster
5
Mật khẩu của webmaster sẽ dùng
6
Textbox để xác nhận lại mật khẩu của webmaster
7
Button dùng để tiến hành quá trình đăng ký
Bảng 11: Bảng mô tả giao diện đăng ký
Giao diện thiết lập thông tin website
Hình 35: Wireframe thiết lập thông tin website
Stt
Mô tả
1
Textbox để nhập vào mô tả của website
2
Textarea box để nhập vào danh sách các domain trỏ đến cùng một website, mỗi domain được cách nhau bởi dấu xuống hàng
3
Button để lưu thông tin lại
Bảng 12: Bảng mô tả giao diện chức năng thiết lập thông tin cho website
Giao diện lấy mã code
Hình 36: Wireframe lấy mã script
Stt
Mô tả
1
Hướng dẫn cách sử dụng đoạn script
2
Nơi lưu trữ đoạn script
Bảng 13: Bảng mô tả giao diện chức năng lấy code javascript
Giao diện đăng nhập
Hình 37: Wireframe đăng nhập hệ thống
Stt
Mô tả
1
Textbox để nhập vào tên đăng nhập
2
Textbox để nhập vào mật khẩu
3
Button để thực hiện đăng nhập
Bảng 14: Bảng mô tả giao diện đăng nhập
Giao diện thay đổi mật khẩu
Hình 38: Wireframe thay đổi mật khẩu
Stt
Mô tả
1
Textbox để nhập vào mật khẩu cũ
2
Textbox để nhập vào mật khẩu mới
3
Textbox để xác nhận lại mật khẩu mới
4
Button để thay đổi mật khẩu
Hình 39: Bảng mô tả giao diện chức năng thay đổi mật khẩu
Giao diện xem report dạng bánh (Pie)
Hình 40: Wireframe report dạng pie
Stt
Mô tả
1
Tên của giá trị thống kê
2
Giá trị
3
Chỉ số % của mỗi giá trị thống kê
4
Đồ thị thống kê
5
Bảng các giá trị thống kê cao nhất
6
Bảng chi tiết các giá trị thống kê
Bảng 16: Bảng mô tả giao diện hệ thống báo cáo dạng bánh (Pie)
Giao diện xem report dạng cột và dạng đường thẳng
Hình 41: Wireframe report dạng cột và đường thẳng
Stt
Mô tả
1
Tên của giá trị thống kê
2
Giá trị
3
Chỉ số % của mỗi giá trị thống kê
4
Đồ thị thống kê
Bảng 17: Bảng mô tả giao diện báo cáo dạng cột hay đường thẳng
CHƯƠNG 4
PHÁT TRIỂN ỨNG DỤNG
Giới thiệu môi trường, công cụ và công nghệ được áp dụng và trình bày một số kết quả đạt được.
Công cụ và môi trường phát triển
WSO2 Web Services Framework for PHP
Giới thiệu
WSO2 là một tổ chức mã nguồn mở của công ty SOA mà tiền thân là bộ phận phát triển dịch vụ web của Apache.
WSO2 Web Services Framework/PHP là một framework PHP cung cấp hoặc nhận Web Services. Nó cũng cung cấp một thư viện của mã nguồn được thêm vào để thực thi WSF/PHP, tạo dịch vụ web cơ bản trên nền PHP, thiết lập Microsoft interoperability, các dịch vụ dữ liệu. Nó hổ trợ SOAP 1.1, SOAP 1.2, MTOM, WS-Addressing, WS-Security.
Comprehensive Support for Web Services Standards
Proven Interoperability
Portability and Platform Support
Attachments with Web Services and Clients
Secure Web Services and Clients
Reliable Web Services and Clients
REST Support
WSDL Generation
WSDL Mode
wsdl2php script
Ưu điểm của WSO2:
Dùng XML, SOAP, và WS-Security để tạo sự giao tiếp oan tòan ctả
trên các kênh tương tác với Java (via J2EE) và .NET.
Làm việc với WSDL và binary các đính kèm khi sử dụng Web services trong PHP,
Bao gồm sự phát sinh WSDL và WSDL mode.
Tạo một dịch vụ oan tòan với WS-Security bao gồm mã hóa, chứng thực
Và các chữ kí điện tử.
Yêu cầu
Cài đặt.
Download tai
Copy wso2-wsf-php-bin-2.0.0-win32/wsf.dll đến thư mục C:\xampp\php\ext
Vào file C:\xampp\apache\bin\php.ini chỉnh sửa lại như sau
include_path = ".;C:\xampp\php\pear\;C:\wso2-wsf-php-bin-2.0.0-win32\scripts"
Sau đó thêm vào cuối file php.ini
[wsf]
extension=wsf.dll
wsf.home="C:\wso2-wsf-php-bin-2.0.0-win32\wsf_c"
wsf.log_path="C:\wso2-wsf-php-bin-2.0.0-win32\wsf_c\logs"
wsf.rm_db_dir="C:\wso2-wsf-php-bin-2.0.0-win32\wsf_c"
wsf.log_level=4
Thêm vào biến path trong Environment Variable
C:\wso2-wsf-php-bin-2.0.0-win32\wsf_c\lib
Chạy ví dụ helloworld
Tạo file hello_service.php
<?php
function greeta($message) {
$responsePayloadString = <<<XML
Hello Client! Thanh cong roi
XML;
$returnMessage = new WSMessage($responsePayloadString);
return $returnMessage;
}
$service = new WSService(array("operations" => array("greeta")));
$service->reply();
?>
Tạo file hello_client.php như sau
<?php
$reqestPayloadString = <<<XML
Hello Service!
XML;
try
{
$message = new WSMessage($reqestPayloadString,
array("to" => ""));
$client = new WSClient();
$response = $client->request($message);
echo "Hello service replied saying: '";
echo $response->str;
echo "'\n";
}
catch (Exception $e)
{
if ($e instanceof WSFault)
{
$fault = $e;
printf("Soap Fault received with code '%s' and reason '%s'\n",
$fault->code, $fault->reason);
}
else
{
printf("Exception caught with message '%s'\n", $e->getMessage());
}
}
}
?>
Sau đó chạy sẽ có kết quả như sau
Hello service replied saying: 'Hello Client! Thanh cong roi'
Giới thiệu thư viện ChartDirector for PHP
Hình 42: Các biểu đồ của ChartDirector
Giới thiệu:
Một hệ thống phân tích thống kê lưu lượng website thì cần rất nhiều đến các thư viện để hỗ trợ cho việc báo cáo thống kê. Vì vậy chúng em chọn thư viện đồ họa mã nguỗn ctả
mở ChartDirector (có thể download tại ), nó cung cấp một thư viện dùng để vẽ các biểu đồ đồ họa trên nền web hoặc các ứng dụng một cách chuyên nghiệp.
Các ưu điểm của ChartDirector:
Nhanh và hiệu quả : Nó được thiết kế đa luồng nhằm request nhanh chóng và hiệu quả.
Khả chuyển: API của nó được thiết kể theo hướng đối tượng cho phép bạn dễ dàng thay đổi theo ý tưởng của bạn.
Có rất nhiều kiểu để bạn chọn lựa: pie, donut, bar, line, spline, step-line, trending, curve-fitting, inter-line coloring, area, scatter, bubble, floating box, box-whisker, waterfall, finance, gantt, vector, contour, heat map, surface, radar, polar line, polar area, polar spline, polar scatter …
Biểu đồ dành cho báo cáo tài chính :
Thiết kế theo kiến trúc lớp(layout) :
CDML Công nghệ CDML cho phép bạn thay đổi các đinh dạng nhãn text bằng hình ảnh linh động hơn.
Hệ thống màu nâng cao : Không chỉ có màu solid RGB mà còn hỗ trợ màu kiểu ARGB, gradient, patterns, và màu do người dùng đĩnh nghĩa.
Hỗ trợ Ajax.
Hỗ trợ tấc cả Browsers: ChartDirector produces charts as PNG, JPEG, GIF and SVG, which are viewable in virtually all browsers, including those in mobile devices. Charts can be imported to email or word documents. Drag to select/zoom/scroll and AJAX features are implemented using Javascript. No Applets or ActiveX controls required.
Dễ sử dụng.
Phổ biến : Hỗ trợ Unicode.
Ngôn ngữ hỗ trợ:
ASP / COM / Visual Basic / VBScript / JScript
.NET (C#, VB.NET, C++/CLI, JScript.NET, J#)
Java
PHP
Perl
Python
Ruby
ColdFusion
C++
Các nền được hỗ trợ:
Windows 2000/2003/2008/Vista/NT/XP, Linux, FreeBSD, Mac OS X and Solaris.
Cài đặt và cấu hình:
Download ChartDirector/PHP tại
Yêu cầu cấu hình tối thiểu PHP 4.2.1.
Copy ChartDirector (sau khi xả nén) vào thư mục PHP Extension của máy bạn(ở đây máy mình là C:\xampp\php\ext).
Thêm vào file php.ini(máy của mình là ) extension=phpchartdir###.dll tùy vào version chart mà bạn thay đổi ###.
Để gọi các class trong thư viện thì bạn dùng require_once("../lib/phpchartdir.php")
Một số kết quả đạt được
Hệ thống hiện tại đã thống kê được khá nhiều thông tin, nhưng chúng em chỉ xin trích ra đây một số mẫu kết quả cơ bản đạt được.
Chức năng đăng ký
Hình 43: Giao diện chức năng đăng ký đã làm
Chức năng thiết lập thông tin website
Hình 44: Giao diện chức năng thiết lập thông tin website đã làm
Chức năng đăng nhập
Hình 45: Giao diện chức năng đăng nhập đã làm
Trang báo cáo dạng bánh (pie)
Hình 46: Phần header của trang báo cáo dạng bánh
Báo cáo chi tiết
Hình 47: Phần chi tiết của các trang báo cáo
Trang báo cáo dạng cột (bar)
Hình 48: Trang báo cáo dạng cột
Trang báo cáo dạng đường thẳng (line)
Hình 49: Trang báo cáo dạng đường thẳng
CHƯƠNG 5
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trong quá trình thực hiện đề tài tốt nghiệp này em cũng đã đạt được một số kết quả nhất định cũng như một vài hạn chế và hướng phát triển như sau:
Kết quả đạt được
Đã xây dựng thành công hệ thống khai thác thông tin của các lần truy cập.
Xây dựng thành công hệ thống phúc đáp và báo cáo kết quả
Xây dựng thành công các ứng dụng client truy cập vào server để lấy kết quả báo cáo.
Những hạn chế
Do hướng tập trung nghiên cứu của chúng em thiên về báo cáo và dịch vụ web nên chúng em chưa đầu tư nhiều cho phần hỗ trợ các webmaster.
Chưa xây dựng hệ thống quản trị để quản lý các tài khoản của các webmaster
Ứng dụng báo cáo viết bằng web mới chỉ được kiểm tra tốt trên trình duyệt Firefox.
Hướng mở rộng và phát triển của đề tài
Xây dựng hệ thống bộ đếm lượt truy cập, có đính kèm đoạn mã javascript, vừa tạo giao diện đẹp, vừa có thể thống kê được thông tin.
Xây dựng hệ thống phân tích, tính toán các giá trị thống kê và đưa ra các quyết định giúp webmaster phát triển website của mình như thế nào.
Xây dựng hệ thống tính toán hiệu quả hoạt động của các website
PHỤ LỤCPhụ lục kô phải như thế này, xóa mục này
Tất cả các phụ lục nằm ở đây và được đánh số thứ tự cùng tên phụ lục :
PHỤ LỤC C
Collector Đối tượng thu thập và khai thác thông tin
PHỤ LỤC D
Demo Chức năng ví dụ
PHỤ LỤC G
Guest Khách vãng lai
PHỤ LỤC M
Member Các thành viên đã đăng nhập, thường là các webmaster
PHỤ LỤC P
Page Views Các lần load trang
PHỤ LỤC R
Referers Các tác nhân dẫn đến các truy cập ở website
PHỤ LỤC W
Web Services Dịch vụ web sử dụng WSDL
PHỤ LỤC V
Visits Các lần truy cập
PHỤ LỤC W
Web Services Dịch vụ web sử dụng WSDL
Wireframe Sơ đồ mô tả thiết kế giao diện
TÀI LIỆU THAM KHẢO
OReilly Web Site Measurement. ISBN: 0-596-00988-7, 8-2005, 430 trang.
OReilly. SQL in a Nutshell 2nd Edition. ISBN: 0-596-00481-8, 710 trang.
Philip Olson. PHP Manual. PHP Documentation Group, 08-12-2007, 820 trang.
Trang web:
Trang web:
Trang web:
Trang web:
Trang web:
Trang web:
Trang web:
Và rất nhiều các trang web khác
TÓM TẮT LUẬN VĂN TỐT NGHIỆPToám tắt không có các tiều đề như ở dưới
Tên đề tài:
“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”.
Tóm tắt nội dung luận văn
Bối cảnh chọn đề tài
Ngày nay, việc cạnh tranh các website đang bắt đầu trở nên gay gắt, những ai muốn thành công trong lĩnh vực kinh doanh trực tuyến đều rất muốn lôi kéo khách hàng đến website của họ ngày càng nhiều hơn, và do đó cần tìm hiểu các thông tin về khách hàng như: Họ đến từ đâu, phần lớn khách hàng sử dụng trình duyệt gì, hệ điều hành nào, họ có thói quen dùng các chương trình tìm kiếm nào, online vào giờ nào trong ngày nhiều nhất, ngày nào trong tuần nhiều nhất, v.v... Do đó đề tài này được thực hiện nhằm tiếp cận vào nhu cầu đang còn thiếu của các webmaster và muốn cung cấp cho các webmaster một nền tảng ban đầu về hệ thống thống kê sử dụng web service để lấy kết quả.
Mục đích
Đề tài góp phần nghiên cứu việc thống kê các thông tin liên quan đến các lượt truy cập, nhằm làm mạnh thêm xu hướng thống kê online, đẩy mạnh lĩnh vực online marketing và giúp các webmaster hiểu rõ hơn khách hàng của họ là ai và người ta đến với website mình như thế nào, v.v…
Nhiệm vụ phải thực hiện
Xây dựng hệ thống khai thác và thống kê giữ liệu, cung cấp kết quả báo cáo dưới dạng chi tiết và đồ thị. Ngoài ra còn hỗ trợ trả về báo cáo thông qua các dịch vụ web (web service).
Để có thể thấy rõ hơn kết quả, đề tài còn xây dựng thêm một số ứng dụng client để báo cáo kết quả thu thập được.
Kết quả dự kiến
Xây dựng thành công hệ thống khai thác và thống kê dữ liệu
Xây dựng thành công web service để cung cấp kết quả báo cáo
Xây dựng thành công các ứng dụng client để demo
Các vấn đề đã giải quyết được
Đã đạt được các kết quả dự kiến mong muốn.
Các file đính kèm theo tài liệu này:
- LVTN-QuanDucBinh,NguyenVanHongQuang-04T2.doc