Đề 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

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

doc87 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2748 | Lượt tải: 2download
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:

  • docLVTN-QuanDucBinh,NguyenVanHongQuang-04T2.doc