1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN cứu xây DỰNG CÔNG cụ đo LƯỜNG và PHÂN TÍCH TƯƠNG tác NGƯỜI DÙNG TRÊN WEBSITE

120 117 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 120
Dung lượng 12,86 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngô Thanh Hùng đã thực hiện đề tài “Nghiên cứu xây dựng công cụ đo lường và phân tích tương tác người dùng trên website”, với mục tiêu xây dựng công cụ thực hiện được việc đo lường và ph

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN



ĐỖ THỊ HƯƠNG LAN

NGHIÊN CỨU XÂY DỰNG CÔNG CỤ

ĐO LƯỜNG VÀ PHÂN TÍCH TƯƠNG TÁC

NGƯỜI DÙNG TRÊN WEBSITE

LUẬN VĂN THẠC SĨ, KHÓA LUẬN CAO HỌC

NGÀNH Công Nghệ Thông Tin

Trang 2

Tôi xin cam đoan: Luận văn tốt nghiệp với Đề tài “Nghiên cứu xây dựng công

cụ đo lường và phân tích tương tác người dùng trên website” là công trình nghiên cứu của tôi, dưới sự hướng dẫn của TS Đàm Quang Hồng Hải và TS Ngô Thanh Hùng

Các trích dẫn, tham khảo trong quá trình nghiên cứu đều được trích dẫn đầy đủ, ghi rõ nguồn gốc

Tôi xin chịu hoàn toàn trách nhiệm nếu có bất kỳ sao chép không hợp lệ, vi phạm quy chế đào tạo

Người thực hiện

Đỗ Thị Hương Lan

Trang 3

Trong quá trình hình thành ý tưởng nghiên cứu và phát triển đề tài, tác giả may mắn nhận được sự hỗ trợ từ Nhà Trường, Thầy Cô, Cơ quan và Gia đình

Tôi xin gửi lời cảm ơn chân thành đến Bộ môn/Khoa Khoa Học Và Kỹ Thuật Thông Tin, Phòng Đào Tạo SĐH, nhà trường Đại học Công Nghệ Thông Tin đã hỗ trợ và tạo điều kiện, giúp đỡ tôi trong suốt quá trình học tập và nghiên cứu tại trường

Tôi xin được gửi lời tri ân sâu sắc đến 2 người Thầy đáng kính vì sự hướng dẫn, chỉ bảo tận tình: TS Đàm Quang Hồng Hải và TS Ngô Thanh Hùng

Qua đây, tôi cũng xin cảm ơn sự hỗ trợ từ phía đơn vị mà tác giả đang công tác – Công ty TNHH MTV Ứng dụng CNTT Hòn Rạng

Xin gửi lời cảm ơn đến các anh chị, bạn bè đã giúp đỡ và chia sẻ kiến thức trong suốt quá trình học tập cũng như thực hiện Luận văn

Xin gửi lời cảm ơn đến Bố Mẹ và gia đình - nguồn động viên to lớn và chỗ dựa vững chắc cho tôi vượt qua khó khăn để hoàn thành Luận văn

Tác giả

Đỗ Thị Hương Lan

Trang 4

MỤC LỤC

MỤC LỤC 5

DANH MỤC CÁC BẢNG BIỂU 10

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 11

MỞ ĐẦU 13

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 15

1.1 Tên đề tài 15

1.2 Từ khóa 15

1.3 Mục tiêu của đề tài 15

1.4 Đối tượng áp dụng, phạm vi nghiên cứu của đề tài 16

1.5 Nội dung và phương pháp nghiên cứu 17

1.5.1 Nội dung 1 17

1.5.2 Nội dung 2 17

1.5.3 Nội dung 3 17

1.5.4 Nội dung 4 17

1.5.5 Nội dung 5 17

1.6 Tính khoa học, tính mới của đề tài 18

1.7 Cấu trúc của luận văn 19

CHƯƠNG 2 TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU VÀ KIẾN THỨC NỀN TẢNG 20 2.1 Khảo sát hiện trạng 20

2.1.1 Tình hình nghiên cứu ngoài nước 20

2.1.2 Tình hình nghiên cứu trong nước 22

2.2 Kiến thức nền tảng 22

2.2.1 Tổng quan về phân tích web 22

Trang 5

2.2.2 Kỹ thuật phân tích on-site và off-site 22

2.2.3 Các cơ chế thu thập dữ liệu tương tác 23

2.2.3.1 Sử dụng các file log 23

2.2.3.2 Cơ chế page tagging 26

2.2.4 Các thông số đánh giá 26

2.2.4.1 Các metric cơ bản 27

2.2.4.2 Các metric đặc điểm truy cập 29

2.2.4.3 Các metric đặc điểm người truy cập 30

2.2.5 Trực quan hóa dữ liệu tương tác 31

2.3 Các kỹ thuật, công nghệ được sử dụng 31

2.3.1 Dịch vụ Windows - Windows service 31

2.3.1.1 Tổng quan về Windows service 31

2.3.1.2 Windows service trong Visual Studio 32

2.3.1.3 Điều khiển Windows service 34

2.3.2 WCF – Windows Communication Foundation 36

2.3.2.1 Tổng quan về WCF 36

2.3.2.2 WCF service trong Microsoft Visual Studio 37

2.3.3 C# và ASP.NET MVC 39

2.3.4 MongoDB và SQL 39

2.3.4.1 SQL Server – Cơ sở dữ liệu quan hệ 39

2.3.4.2 MongoDB – Cơ sở dữ liệu không quan hệ 40

2.3.5 JavaScript và AJAX 42

2.3.5.1 JavaScript 42

2.3.5.2 AJAX 44

2.4 Kết chương 46

Trang 6

CHƯƠNG 3 Ý TƯỞNG CÔNG CỤ ĐO LƯỜNG VÀ PHÂN TÍCH TƯƠNG TÁC

NGƯỜI DÙNG TRÊN WEBSITE 47

3.1 Các vấn đề đặt ra 47

3.2 Thu thập dữ liệu tương tác người dùng trên website 47

3.2.1 Dữ liệu file log của web server 47

3.2.2 Dữ liệu sự kiện tương tác trên website 49

3.2.2.1 Dữ liệu thông tin chung 49

3.2.2.2 Dữ liệu riêng cho các sự kiện 52

3.3 Phân tích, xử lý dữ liệu thu thập 56

3.3.1 Dữ liệu được dùng để xử lý 56

3.3.2 Xác định trình duyệt, nền tảng thiết bị và hệ điều hành 60

3.3.3 Phân biệt người dùng (visitor) và phiên truy cập (visit) 64

3.3.4 Tính toán các thông số chung 67

3.3.4.1 Số page view 67

3.3.4.2 Số hits 69

3.3.4.3 Số visitor (người truy cập duy nhất) 70

3.3.4.4 Số visit (phiên làm việc/lượt truy cập) 71

3.3.4.5 Thời gian trung bình của visit 73

3.3.4.6 Số bounced visit (visit đơn trang) 73

3.3.5 Các thông số bổ sung về người truy cập (visitor) 74

3.3.5.1 Phân loại visitor 74

3.3.5.2 Số visit trung bình của visitor 75

3.3.6 Các thông số bổ sung về trang web 75

3.3.6.1 Số page view của trang 76

3.3.6.2 Số visit của trang web 76

Trang 7

3.3.6.3 Thời gian trên trang web 77

3.3.6.4 Phân loại trang web trong một visit 78

3.3.7 Các thông số bổ sung về trang tham chiếu (Referrer) 79

3.3.7.1 Truy cập trực tiếp - Direct entry 79

3.3.7.2 Truy cập gián tiếp - Có referrer 80

3.3.8 Các thông số bổ sung về một số đối tượng khác 82

3.4 Trực quan hóa dữ liệu phân tích 84

3.5 Gom nhóm, tổng hợp dữ liệu phân tích của các website thuộc hệ website 85 3.6 Kết chương 86

CHƯƠNG 4 HIỆN THỰC CÔNG CỤ ĐO LƯỜNG VÀ PHÂN TÍCH TƯƠNG TÁC NGƯỜI DÙNG TRÊN WEBSITE 87

4.1 Đặc tả yêu cầu công cụ 87

4.1.1 Mục đích xây dựng công cụ 87

4.1.2 Yêu cầu của công cụ 87

4.1.2.1 Yêu cầu chức năng 87

4.1.2.2 Yêu cầu kỹ thuật 87

4.1.2.3 Yêu cầu về nền tảng và thiết bị 87

4.2 Thiết kế công cụ 88

4.2.1 Các thành phần 88

4.2.1.1 Site Agent 88

4.2.1.2 Collector 92

4.2.2 Kết nối giữa Site Agent và Collector 94

4.2.3 Cơ sở dữ liệu 95

4.2.3.1 SQL Server 95

4.2.3.2 MongoDB Server 98

Trang 8

4.2.4 Lưu đồ hoạt động (Flow chart) 99

4.2.4.1 Đăng ký site mới 99

4.2.4.2 Gửi và nhận dữ liệu tương tác 100

4.2.4.3 Xử lý dữ liệu tương tác 102

4.3 Hình ảnh giao diện 104

4.3.1 Giao diện Đăng ký và quản lý Site Agent 104

4.3.2 Giao diện Trang báo cáo (Report) 105

4.4 Kết quả hoạt động của công cụ 106

4.4.1 Kết quả kiểm tra nhận diện trình duyệt và thiết bị 106

4.4.2 Kết quả thu thập và tính toán dữ liệu 107

4.4.3 So sánh kết quả với các công cụ khác 108

4.4.3.1 So sánh kết quả với Google Analytics với bộ dữ liệu 1 108

4.4.3.2 So sánh kết quả với Google Analytics (toàn thời gian) 110

4.5 Kết chương 111

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 112

5.1 Thuận lợi và khó khăn 112

5.1.1 Thuận lợi 112

5.1.2 Khó khăn 112

5.2 Kết quả đạt được 113

5.3 Hướng phát triển 113

TÀI LIỆU THAM KHẢO 115

PHỤ LỤC A 119

PHỤ LỤC B 120

Trang 9

DANH MỤC CÁC BẢNG BIỂU

Bảng 2.1 Các phương thức cung cấp bởi class ServiceBase 33

Bảng 3.1 Nhận dạng và phân tích các định dạng file log 48

Bảng 3.2 Các thông tin thu thập từ sự kiện trên website 55

Bảng 3.3 Tổng hợp một số từ khóa nhận diện trình duyệt [25] 61

Bảng 3.4 Một số từ khóa nhận biết nền tảng di động trên một số trình duyệt 62

Bảng 3.5 Các từ khóa nhận diện hệ điều hành client 64

Bảng 4.1 Các bảng lưu trữ thông số đánh giá đã tính toán trong SQL Server 97

Bảng 4.2 Kết quả nhận diện trình duyệt 106

Bảng 4.3 Kết quả nhận diện nền tảng thiết bị 107

Bảng 4.4 Tổng hợp kết quả thu thập dữ liệu trên website thử nghiệm 107

Bảng 4.5 Báo cáo kết quả từ dữ liệu thu thập trên website 108

Bảng 4.6 Cơ chế nhận diện Visitor của Google Analytics và Res Analytics 108

Bảng 4.7 Kết quả trả về của Google Analytics và Res Analytics với Bộ dữ liệu 1 110 Bảng 4.8 Kết quả trả về của 2 công cụ Google Analytics và Res Analytics trong thời gian từ 26/9/2017 đến 10/12/2017* 110

Trang 10

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 2.1 Tỉ lệ sử dụng công cụ phân tích trên toàn thế giới 20

Hình 2.2 Tỉ lệ sử dụng công cụ phân tích dữ liệu người dùng 21

Hình 2.3 Minh họa file log với định dạng W3C Extended 25

Hình 2.4 Minh họa file log với định dạng log của IIS 25

Hình 2.5 Minh họa file log với định dạng NCSA 26

Hình 2.6 Hình ảnh minh họa về Heatmap 31

Hình 2.7 Giao diện điều khiển dịch vụ của Services Control Manager 34

Hình 2.8 Giao diện điều khiển dịch vụ của Task Manager 35

Hình 2.9 Ví dụ minh họa sử dụng ServiceController để khởi động dịch vụ 35

Hình 2.10 Minh hoạt kết nối từ client đến dịch vụ WCF 37

Hình 2.11 Ví dụ tạo interface ServiceContract 38

Hình 2.12 Ví dụ hiện thực ServiceContract 38

Hình 2.13 Lưu trữ dữ liệu với các bảng trong cơ sở dữ liệu quan hệ [19] 40

Hình 2.14 Lưu trữ dữ liệu trong cơ sở dữ liệu không quan hệ [19] 41

Hình 2.15 Định dạng document trong MongoDB 42

Hình 2.16 Cách hoạt động của AJAX 44

Hình 3.1 Đoạn script bắt sự kiện click trên toàn trang web 52

Hình 3.2 Xác định tọa độ sự kiện click trong trường hợp có thanh cuộn 53

Hình 3.3 Đoạn script bắt sự kiện load một trang web 54

Hình 3.4 Minh họa các dòng log có và không có sa_ucookie của cùng một visit 59

Hình 3.5 Ví dụ về chuỗi User Agent của trình duyệt Chrome 60

Hình 3.6 Ví dụ về User Agent của trình duyệt SeaMonkey trên Windows [26] 61

Hình 3.7 Nhóm các trình duyệt được nhận diện trước 62

Hình 3.8 Nhóm các trình duyệt được nhận diện sau 62

Hình 3.9 Ví dụ minh họa kiểm tra 2 URL thuộc cùng một domain hay không 80

Hình 4.1 Mô hình tổng quan hoạt động của công cụ 88

Hình 4.2 Mô hình các thành phần của Site Agent 89

Hình 4.3 Các tác vụ chính được hỗ trợ bởi Site Agent Control 91

Hình 4.4 Mô hình các thành phần trong Collector 92

Trang 11

Hình 4.5 Minh họa chức năng phân tích dòng log của LogParser Module 93

Hình 4.6 Các tác vụ Site Agent có thể sử dụng của dịch vụ WCF cho log file 95

Hình 4.7 Các tác vụ có thể sử dụng từ javascript của dịch vụ WCF cho sự kiện website 95

Hình 4.8 Cấu trúc bảng dữ liệu thông tin người dùng trên SQL Server 96

Hình 4.9 Cấu trúc bảng dữ liệu thông tin các site trên SQL Server 96

Hình 4.10 Cấu trúc cơ sơ dữ liệu của ứng dụng trên SQL Server 98

Hình 4.11 Cấu trúc cơ sở dữ liệu lưu trữ dữ liệu tương tác trên MongoDB 99

Hình 4.12 Lưu đồ xử lý hoạt động đăng ký site mới cần theo dõi 100

Hình 4.13 Lưu đồ xử lý hoạt động gửi log theo định kỳ cho trước 101

Hình 4.14 Lưu đồ xử lý hoạt động gửi sự kiện tương tác trên website 102

Hình 4.15 Lưu đồ tính toán và lưu trữ các thông số đánh giá 103

Hình 4.16 Giao diện đăng nhập sử dụng Site Agent Control 104

Hình 4.17 Giao diện đăng ký site mới sử dụng Site Agent Control 104

Hình 4.18 Giao diện theo dõi cấu hình agent sử dụng Site Agent Control 105

Hình 4.19 Giao diện trang báo cáo (1) 105

Hình 4.20 Giao diện trang báo cáo (2) 106

Hình 4.21 Kết quả báo cáo tổng quan của Công cụ Res Analytics 108

Trang 12

MỞ ĐẦU

Theo khảo sát mới nhất được công bố vào tháng 07 năm 2017 của NetCraft [1],

số lượng website đang hoạt động trên toàn thế giới là 1,767,964,429 Số lượng website ngày càng nhiều, cùng với sự đa dạng, phức tạp trong cách thiết kế, chức năng, và mục đích nội dung của mỗi website Số lượng càng lớn, sự đa dạng ngày càng phức tạp, khiến cho việc tiếp cận và giữ được số lượt xem từ người dùng trở thành thách thức Bài toán của tất cả các nhà phát triển website vẫn là việc thỏa mãn nhu cầu sử dụng của người dùng, nên việc quan sát và nắm bắt người dùng cần gì và

có những thao tác gì, xu hướng ra sao khi sử dụng website, hay nói cách khác là việc phân tích tương tác người dùng với website ngày càng được chú trọng

Nhận thấy được sự cần thiết của phân tích tương tác người dùng với website trong việc vận hành và tối ưu hóa hoạt động của website, tác giả dưới sự hướng dẫn của TS Đàm Quang Hồng Hải và TS Ngô Thanh Hùng đã thực hiện đề tài “Nghiên cứu xây dựng công cụ đo lường và phân tích tương tác người dùng trên website”, với mục tiêu xây dựng công cụ thực hiện được việc đo lường và phân tích những tương tác được người dùng trên website, từ đó áp dụng vào một số môi trường website cụ thể trong doanh nghiệp

Trong phạm vi đề tài này, các website được nghiên cứu tập trung là các website

sử dụng IIS Web server được phát triển bởi Microsoft Từ việc phân tích ưu điểm của các kỹ thuật web analytics, tác giả sử dụng phương pháp phân tích on-site (dựa trên chính dữ liệu của website) thay vì kỹ thuật off-site mang nặng tính nghiên cứu và khảo sát

Tác giả sử dụng cơ chế thu thập dữ liệu hybird (lai) kết hợp hai kỹ thuật chính

là sử dụng các file log và page tagging để thu thập dữ liệu tương tác từ website, dữ liệu sau đó được tính toán, tổng hợp và trực quan bằng con số, đồ thị, hình ảnh, heatmap… để người sử dụng theo dõi

Để hiện thực những chức năng trên, tác giả đã xây dựng một công cụ gồm nhiều thành phần hoạt động dựa trên cơ chế client-server để theo dõi, gửi và nhận dữ liệu

Trang 13

tương tác, đồng thời trực quan hóa các dữ liệu đã được phân tích trên giao diện web của công cụ, hỗ trợ việc đo lường và phân tích tương tác người dùng trên website

Những đóng góp của đề tài:

- Ý nghĩa khoa học: phương pháp được sử dụng kết hợp nhiều phương pháp

riêng lẻ, khắc phục được phần nào khuyết điểm của từng phương pháp

- Ý nghĩa thực tiễn: xây dựng được công cụ đo lường và phân tích tương tác

người dùng trên website dựa trên phương pháp đã nghiên cứu

Cuối cùng, mặc dù có nhiều nỗ lực cố gắng song với thời gian nghiên cứu chưa thực sự dài nên trong Luận văn này không thể tránh khỏi những thiếu sót, khuyết điểm Tác giả mong nhận được sự thông cảm, chia sẻ cũng như những sự chỉ bảo tận tình, ý kiến đóng góp của Quý Thầy Cô và các bạn

TP Hồ Chí Minh, ngày 30 tháng 09 năm 2017

Tác giả

Trang 14

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

1.1 Tên đề tài

Tên Tiếng Việt: Nghiên cứu xây dựng công cụ đo lường và phân tích tương

tác người dùng trên Website

Tên Tiếng Anh: Researching and developing a measuring and analytical

tool about user interaction on website

1.2 Từ khóa

Tương tác người dùng, đo lường, phân tích

1.3 Mục tiêu của đề tài

Bài toán đặt ra xuất phát từ nhu cầu thực tế nơi mà tác giả công tác - đơn vị chuyên xây dựng, vận hành Website cho các cá nhân, tổ chức trong và ngoài nước Khách hàng luôn quan tâm website của họ có thu hút, đáp ứng được nhu cầu thông tin và thỏa mãn nhu cầu người dùng hay không Vì vậy, việc theo dõi các thông tin

về truy cập, tương tác của người dùng trên website luôn được khách hàng chú tâm, bên cạnh việc đánh giá kết quả xây dựng và vận hành website

Tại đơn vị mà tác giả đang công tác, 100% khách hàng đều yêu cầu sử dụng Google Analytics cài đặt vào các dự án Website mà công ty tác giả thực hiện cho khách hàng Công cụ này phân tích lưu lượng, nguồn gốc truy cập của người dùng dựa trên phương pháp page tagging, với một số những ưu điểm sau: không cần can thiệp, thay đổi bộ mã nguồn của website, là công cụ miễn phí và được sử dụng rộng rãi trên toàn thế giới nói chung và Việt Nam nói riêng

Tuy nhiên, một vài vấn đề mà chúng tôi gặp phải được liệt kê dưới đây:

- Yêu cầu khách hàng phải biết cách cài đặt, và truy cập giao diện công cụ từ 1 website độc lập khác (www.analytics.google.com)

- Đối với những trình duyệt vô hiệu hóa, hoặc có lỗi với cookies, Javascript, công cụ tạo ra những số liệu thống kê không chính xác

Trang 15

- Google Analytics hầu như chỉ theo dõi việc người dùng load trang, chứ không thu thập các dữ liệu về các hành động (click chọn, tắt trình duyệt, v.v…) – những thao tác liên quan đến việc tương tác

- Giao diện công cụ quá phức tạp, chưa thân thiện với đối tượng người dùng ít

am hiểu

Từ những vấn đề trên, tác giả đặt ra mục tiêu nghiên cứu và xây dựng một công

cụ đo lường và phân tích tương tác người dùng trên các website, triển khai cho đơn

vị công tác, với giao diện thân thiện và đáp ưng được nhu cầu đặc thù của khách hàng

Mục tiêu trên được chia nhỏ thành những mục tiêu sau đây:

- Nghiên cứu cơ chế thu thập và lưu trữ thông tin truy cập từ người dùng thông qua các dữ liệu từ file log và dữ liệu gửi về thông qua đoạn Javascript cài đặt trên website

- Nghiên cứu cơ chế lựa chọn, tổng hợp dữ liệu từ 2 nguồn dữ liệu trên để tính toán kết quả tối ưu nhất (dựa trên các điều kiện: lý tưởng, không lý tưởng)

- Nghiên cứu cơ chế lưu trữ và tính toán để giải quyết bài toán dữ liệu lớn, thường xuyên cập nhật

- Nghiên cứu cơ chế xây dựng heat map để trực quan hóa hành vi thao tác của người dùng trên website (click [nhấp chọn], tương ứng với các loại màn hình)

1.4 Đối tượng áp dụng, phạm vi nghiên cứu của đề tài

- Các ứng dụng website không quá phức tạp (các dự án website thực hiện bởi công ty TABWEB), đề tài tập trung vào các website sử dụng IIS Server của Microsoft

- Các tương tác người dùng đối với website

- NoSQL và SQL

- Heat map, file log, page tagging, hybrid

Trang 16

1.5 Nội dung và phương pháp nghiên cứu

1.5.1 Nội dung 1

Nội dung: Khảo sát, nghiên cứu các phương pháp và các vấn đề trở ngại về kỹ

thuật trong bài toán phân tích website, bài toán thu thập dữ liệu

Phương pháp: So sánh phương pháp phân tích on-site và off-site Nghiên cứu

và so sánh 2 ký thuật thu thập dữ liệu từ log file, và dữ liệu gửi từ đoạn mã Javascript

để tối ưu hóa việc thu thập và xử lý thông tin cơ bản của website, thông tin truy cập

1.5.2 Nội dung 2

Nội dung: Áp dụng phương pháp hybrid (lai) kết hợp ưu điểm từ 2 kỹ thuật chính

trong việc thu thập dữ liệu

Phương pháp: Sử dụng các gói tin HTTP Request, đoạn mã Javascript để thu

thập và xử lý thông tin cơ bản của website và thông tin truy cập

1.5.3 Nội dung 3

Nội dung: Nghiên cứu cơ chế lưu trữ và tính toán dữ liệu hoạt động của người

dùng đáp ứng bài toán dữ liệu lớn, và thường xuyên cập nhập

Phương pháp: Nghiên cứu sử dụng MongoDB và SQL Server để lưu trữ dữ

liệu gốc (raw) và dữ liệu tính toán

1.5.4 Nội dung 4

Nội dung: Kết hợp việc thu thập, lưu trữ và xử lý thông tin truy cập của người

dùng để xây dựng công cụ đo lường và phân tích tương tác người dùng

Phương pháp: Xây dựng công cụ tích hợp các nội dung nghiên cứu nêu trên 1.5.5 Nội dung 5

Nội dung: Áp dụng công cụ cho một số website để thử nghiệm tính năng và

đánh giá kết quả

Trang 17

Phương pháp: khảo sát dựa trên một tập những website đang hoạt động để

đánh giá hiệu quả của công cụ

1.6 Tính khoa học, tính mới của đề tài

Vấn đề đo lường và phân tích tương tác người dùng trên các website đã được không ít người quan tâm, tuy nhiên những công bố, bài báo khoa học đề cập đến vấn

đề này khá ít, tuy nhiên một số công cụ đã được phát triển

Google Analytics [2] phân tích lưu lượng, nguồn gốc truy cập của người dùng dựa trên phương pháp page tagging

PIWIK [3], Open Web Analytics [4] là những công cụ có chức năng gần tương

tự so với Google Analytics, tuy nhiên các công cụ này chủ yếu sử dụng log file để thu thập dữ liệu, và bắt buộc người dùng cài đặt công cụ lên Website của mình

Các công cụ thường chỉ sử dụng một cơ chế thu thập dữ liệu dựa trên các file log hoặc page tagging, sẽ chịu ảnh hưởng bởi những khuyết điểm của cơ chế sử dụng như đòi hỏi quyền truy cập vào server ở cơ chế sử dụng file log hay trình duyệt vô hiệu hóa Javascript khi dùng page tagging Tuy nhiên, page tagging vẫn đang đóng vai trò chủ đạo trong việc thu thập dữ liệu với khả năng nhận biết những sự kiện không thể phát hiện thông qua các file log, do đó kèm theo một số cải tiến cho ra phương pháp hybrid kết hợp cùng file log sẽ khắc phục được phần nào nhược điểm của page tagging

Tính mới của đề tài là việc khai thác kỹ thuật thu thập dữ liệu hybrid kết hợp ưu điểm của hai kỹ thuật sử dụng file log và kỹ thuật page tagging, kết hợp sử dụng heatmap để trực quan hóa dữ liệu phân tích, giúp người quản trị có đầy đủ các thông tin về tương tác người dùng với website cũng như theo dõi được mối quan tâm của người dùng

Trong khuôn khổ của đề tài, tác giả muốn xây dựng một công cụ có thể đo lường

và phân tích tương tác người dùng trên các website mà đơn vị nơi tôi công tác đã thực

Trang 18

hiện Qua đó giúp ích cho việc nghiên cứu, thay đổi và đưa ra những giải pháp để thu hút và làm hài lòng khách hàng

1.7 Cấu trúc của luận văn

Luận văn sẽ được Tác giả trình bày trong 5 chương

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

Chương 1 sẽ giới thiệu tổng quan về tên đề tài, mục tiêu nghiên cứu, đối tượng

áp dụng, phạm vi nghiên cứu cũng như nội dung, phương pháp nghiên cứu, tính khoa học, tính mới và cấu trúc của đề tài

CHƯƠNG 2 TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU VÀ CÁC KIẾN THỨC NỀN TẢNG

Chương 2 sẽ giới thiệu các kiến thức về Đo lường và phân tích tương tác người dùng trên website, cũng như các công nghệ, giải thuật sẽ sử dụng để phát triển công

cụ Đồng thời Chương này ghi lại những điều mà tác giả tìm hiểu được từ việc phân tích, đánh giá các công trình nghiên cứu, công cụ liên quan mật thiết đến đề tài đã được công bố ở trong và ngoài nước

CHƯƠNG 3 CÔNG CỤ ĐO LƯỜNG VÀ PHÂN TÍCH TƯƠNG TÁC NGƯỜI DÙNG TRÊN WEBSITE

Chương 3 sẽ mô tả các yêu cầu, thành phần, kiến trúc, giải thuật của công cụ đo lường và phân tích tương tác người dùng trên website

CHƯƠNG 4 HIỆN THỰC CÔNG CỤ ĐO LƯỜNG VÀ PHÂN TÍCH TƯƠNG TÁC NGƯỜI DÙNG TRÊN WEBSITE

Chương 4 sẽ hiện thực các thiết kế từ chương 3 để đưa ra Giao diện và các thức hoạt động của công cụ đo lường và phân tích tương tác người dùng trên website

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Chương 5 – Tổng kết lại những vấn đề đã được giải quyết và đưa ra những hướng phát triển tiếp theo cho sản phẩm

Trang 19

CHƯƠNG 2 TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU VÀ KIẾN THỨC NỀN TẢNG

2.1 Khảo sát hiện trạng

Với một đề tài – ý tưởng, một điều khá quan trọng đó chính là xem xét xem ý tưởng đó làm được gì, phục vụ cho ai cũng như xác định xem ý tưởng đó có từng được phát triển chưa chưa, nếu có những điều làm được và chưa được là gì, để từ đó người tác giả có thể tham khảo cũng như rút kinh nghiệm cho chính mình Vì thế, tác giả tiến hành cập nhật tình hình nghiên cứu trong nước và nước ngoài để đánh giá xem chúng tôi đang ở đâu, ý tưởng của chúng tôi có những điều gì chưa được và có

gì đặc biệt so với những ý tưởng có trước

2.1.1 Tình hình nghiên cứu ngoài nước

Công cụ đánh giá phân tích website được xem là phổ biến và mạnh mẽ nhất hiện nay là Google Analytics Tháng 1 năm 2013, theo báo cáo của BuiltWith, số website

sử dụng Google Analytics là 17,586,002 website, tương đương với 57,3% số lượng Website Đến thời điểm tháng 09 năm 2017, theo báo cáo của BuiltWith, Google Analytics vẫn là công cụ được sử dụng phổ biến nhất [5] Riêng với dữ liệu về visitor (người dùng), Google Analytics hoàn toàn vượt trội, chiếm hơn 60%

Hình 2.1 Tỉ lệ sử dụng công cụ phân tích trên toàn thế giới

Trang 20

Hình 2.2 Tỉ lệ sử dụng công cụ phân tích dữ liệu người dùng Công cụ này phân tích lưu lượng, nguồn gốc truy cập của người dùng dựa trên phương pháp page tagging, cung cấp cho người sử dụng dịch vụ đoạn mã GA tracking

có dạng UA-000000-01 để cài đặt lên website Với đoạn mã GA tracking này, người

sử dụng dịch vụ đăng nhập hệ thống để xem các thông tin thống kê từ Google Analytics

PIWIK [3], Open Web Analytics [4] là những công cụ có chức năng gần tương

tự so với Google Analytics, tuy nhiên khi sử dụng các công cụ này người quản trị website buộc phải cài đặt toàn bộ công cụ lên website

Tuy nhiên, các công cụ nêu trên không đáp ứng được nhu cầu thời gian thực cũng như chưa thể biết người dùng làm chính xác những gì trên trang của mình Với khuynh hướng tracking hoạt động của người dùng, các ứng dụng như Heatmap.me, CrazyEgg… cho phép theo dõi người dùng đến trang nào, click vào những liên kết nào, thời gian trải nghiệm trên mỗi trang trong toàn bộ hành trình là bao nhiêu

Trang 21

2.1.2 Tình hình nghiên cứu trong nước

Ở Việt Nam tại thời điểm tìm hiểu của tác giả, hướng nghiên cứu xây dựng ứng dụng phân tích tương tác người dùng trên website hầu như còn khá mới Việc áp dụng chủ yếu dựa trên Google Analytics để phân tích và thống kê truy cập Theo báo cáo của BuiltWith, tới tháng 12 năm 2015 xấp xỉ 70% số lượng website Việt Nam đang

sử dụng Google Analytics [6]

Tại đơn vị mà tôi đang công tác, 100% khách hàng đều yêu cầu sử dụng Google Analytics cài đặt vào các dự án Website mà công ty tôi thực hiện cho khách hàng

2.2 Kiến thức nền tảng

2.2.1 Tổng quan về phân tích web

Theo định nghĩa của Web Analytics Asscociation [7], phân tích web (web analytics) là “phương pháp thu thập, đo lường, phân tích, tạo báo cáo về dữ liệu Internet nhằm mục đích am hiểu và tối ưu hóa việc sử dụng web” Phân tích web cố gắng đem lại những hiểu biết nhất định về những người sử dụng website và sử dụng thông tin đó để cải thiện tính hiệu quả của website

Các kỹ thuật web analytics thường được chia làm hai kỹ thuật là on-site và off-site

2.2.2 Kỹ thuật phân tích on-site và off-site

Kỹ thuật on-site thu thập dữ liệu trên chính website nhằm phân tích tương tác người dùng thông qua các thông số: số lượt truy cập, thời gian truy cập, đường dẫn v.v … (Kaushik, 2009) [8]

Trong khi đó, kỹ thuật off-site mang nặng tính nghiên cứu và khảo sát; thường được cung cấp bởi một tổ chức thứ ba với các dữ liệu bao gồm các khảo sát, báo cáo thị trường, thông tin so sánh v.v … Một số tổ chức đại diện cho kỹ thuật off-site: Alexa [9], Hitwise, Hitwise …

Để đạt được hiệu quả tốt nhất trong việc phân tích website, các nhà phát triển website thường kết hợp cả hai kỹ thuật on-site và off-site Tuy nhiên, với những

Trang 22

website nhỏ hoặc không quá phức tạp, phương pháp on-site được sử dụng rộng rãi và trực quan hơn

Trong phạm vi đề tài, tác giả tập trung nghiên cứu kỹ thuật on-site, đưa ra báo cáo đánh giá dựa trên chính dữ liệu thu thập từ website Các nội dung còn lại trong nghiên cứu tập trung xoay quanh kỹ thuật on-site

2.2.3 Các cơ chế thu thập dữ liệu tương tác

Đối với việc phân tích website sử dụng phương pháp on-site, có hai kỹ thuật

chính trong việc thu thập dữ liệu là sử dụng logfile và page tagging

Sử dụng các file log

Phương pháp đầu tiên là phân tích file server log File log được tạo ra bởi

chính web server để ghi lại hoạt động và file HTTP header trong một định dạng văn bản Phương pháp này được xem là phương pháp truyền thống và cơ bản vì các web server thông thường đã tạo ra các file log dựa vào các dữ liệu thô đã có sẵn

Việc sử dụng log file để theo dõi các yêu cầu truy cập được sử dụng kể từ khi World Wide Web xuất hiện, sử dụng rộng rãi từ năm 1993 Một trong những nhà tiên phong của việc phân tích website dựa trên Log File - WebTrends, một công ty Phần Lan, đã tiến hành phân tích trang website sử dụng dữ liệu được thu thập từ file log Trong cùng năm đó, WebTrends đã tạo ra phần mềm thương mại phân tích trang website đầu tiên Năm 1995, Tiến sĩ Stephen Turner đã tạo ra Analog, phần mềm phân tích tệp tin miễn phí đầu tiên

File log của web server có chứa nhiều thông tin liên quan đến việc sử dụng website của người dùng, cụ thể là tần suất những trang web được yêu cầu hoặc sử dụng Các file này thực chất là các file dạng text gồm nhiều dòng khác nhau tương ứng với mỗi request gửi từ người dùng, do đó dữ liệu này có thể thu thập dễ dàng bằng việc đọc các file text thông thường

Trong phạm vi đề tài, tác giả lựa chọn nghiên cứu các file log áp dụng trên IIS Tuy nhiên do IIS Web server hỗ trợ nhiều định dạng file log, tương ứng là tập hợp

Trang 23

những thông tin khác nhau, nên việc xác định được định dạng nào đang được sử dụng đóng vai trò rất quan trọng trong quá trình thu thập thông tin từ các file log

Để phân biệt được các định dạng log được sử dụng bởi IIS web server và trích xuất thông tin từ chúng được chính xác, ta cần nắm được đặc điểm đặc trưng chúng

 Định dạng file log W3C Extended

Định dạng W3C Extended là định dạng ASCII có thể tùy chỉnh gồm nhiều thuộc tính lưu trữ các thông tin khác nhau Người quản trị có thể chọn tổ hợp các thuộc tính quan trọng cần theo dõi và giảm thiểu kích thước file log bằng cách bỏ đi những thuộc tính không cần thiết

Ở định dạng này, file log có chứa những dòng thông tin mô tả dữ liệu của nó

bắt đầu với ký tự # như thời gian (#Date), phiên bản (#Version), trong đó #Fields

bao gồm danh sách các thuộc tính trong mỗi dòng log là dòng quan trọng nhất

Do đặc điểm có thể tùy chỉnh các thuộc tính cần theo dõi, các dòng log trước và

sau khi tùy chỉnh có thể khác nhau về số lượng các thuộc tính của nó Dòng #Fields

được đặt phía trước các dòng log nhằm mục đích thông báo những thông tin nào được chứa trong những dòng log đó Khi có bất kỳ thay đổi nào trong số lượng các thuộc

tính này, dòng #Fields sẽ được cập nhật lại Mỗi dòng log chứa giá trị tương ứng với

các thuộc tính, các giá trị này ngăn cách với nhau bằng khoảng trắng

Hình bên dưới đưa ra một ví dụ minh họa đối với file log sử dụng định dạng W3C Extended với danh sách các thuộc tính được liệt kê ở dòng #Fields Trong các dòng log phía dưới, giá trị của các thuộc tính cách nhau bằng một khoảng trắng

Trang 24

Hình 2.3 Minh họa file log với định dạng W3C Extended

 Định dạng file log của IIS

Định dạng log IIS là định dạng cố định ở dạng ASCII, không thể tùy chỉnh các thuộc tính Trong định dạng này chỉ chứa các dòng log gồm 15 thuộc tính khác nhau phân cách với nhau bằng dấu phẩy (,) Danh sách các thuộc tính bao gồm: địa chỉ IP của client, username, ngày, giờ, dịch vụ, tên server, địa chỉ IP của server, thời gian thực hiện, số lượng byte client gửi, số lượng byte server gửi, status code của dịch vụ, status code của server, kiểu request, mục đích của hành động, các tham số

Hình bên dưới đưa ra một ví dụ minh họa đối với file log sử dụng định dạng log của IIS

Hình 2.4 Minh họa file log với định dạng log của IIS

 Định dạng log NCSA

Tương tự như định dạng IIS, định dạng này ở dạng ASCII và có số thuộc tính theo dõi cố định không thể tùy chỉnh, tuy nhiên số lượng thuộc tính ít hơn với 7 thuộc tính ngăn cách với nhau bằng khoảng trắng Danh sách các thuộc tính của định dạng NCSA Common log file: Địa chỉ host ở xa, log name ở xa (luôn có giá trị là dấu gạch

#Software: Microsoft Internet Information Services 10.0

#Version: 1.0

#Date: 2017-04-20 09:22:15

#Fields: date time ip cmethod curi-stem curi-query port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc- substatus sc-win32-status time-taken

s-2017-04-20 09:22:15 127.0.0.1 GET /redirect.asp target=cstutorialscarousel&product=camtasiastudio&lang=enu&ve

Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+Trident/7.0;+rv:11 0)+like+Gecko - 404 0 2 3887

Trang 25

ngang -), username, ngày và giờ, request và phiên bản giao thức, status code của dịch

vụ, số lượng byte đã gửi

Hình bên dưới đưa ra ví dụ minh họa file log sử dụng định dạng log NCSA

Hình 2.5 Minh họa file log với định dạng NCSA

Cơ chế page tagging Phương pháp thứ hai, page tagging (gắn thẻ trang), sử dụng JavaScript nhúng

trong trang web để tương tác đến một máy chủ phân tích chuyên

So với phương pháp sử dụng file server log, phương pháp page tagging có một

số ưu điểm (Clifton, 2012) [10] Thứ nhất, những file client scripts có thể thu thập những thông tin về kích thước màn hình, mã màu sắc sử dụng Thứ hai, Javascript có

thể theo dõi hành động của người dùng thông qua các sự kiện như nhấn phím và nhấp chuột, di chuột v.v … - những sự kiện mà phương pháp file server log không phát

hiện được Thứ ba, phương pháp này không đòi hỏi người dùng phải có quyền truy

cập vào web server Tuy nhiên, phương pháp page tagging cũng tồn tại những khuyết điểm so với phương pháp sử dụng file server log Đối với những trình duyệt vô hiệu hóa cookies, Javascript, page tagging tạo ra những số liệu thống kê không chính xác Page tagging cũng không thể phân tích trên những định dạng none-page như file PDF, file download (ZIP, EXE,…), file media…

2.2.4 Các thông số đánh giá

Các thông số (metric) là những số liệu được tính toán dựa trên những dữ liệu tương tác thu thập được từ phía người dùng, dựa vào đó đưa ra cái nhìn tổng quan về việc sử dụng website

Theo Web Analytics Association [11], các metric có thể được chia làm 02 loại:

Trang 26

- Count (số đếm): là đơn vị tính toán cơ bản và là một số, kết quả thường là số nguyên

- Ratio (tỉ lệ): là một metric thu được từ việc chia một số cho một số khác, kết quả thường không phải số nguyên Các metric dạng này không thể tính tổng

Các metric có thể được áp dụng trong 03 phạm vi sau:

- Aggregate (Tổng hợp): đại diện cho toàn bộ site

- Segmented (Phân đoạn): là một phần dữ liệu traffic trên site trong một khoảng thời gian, có thể được chọn lọc bằng một phương pháp nào đó để có kết quả phân tích sâu hơn

- Individual (Đơn lẻ): hoạt động của một người dùng duy nhất trong một khoảng thời gian cho trước

Phần dưới đây giới thiệu một số metric và phương pháp tính toán metric đó dựa trên dữ liệu tương tác thu thập được

Các metric cơ bản

Nhóm metric này gồm 4 metric chính: Unique Vistors, Visit/Session, Page View và Event Đây là những metric làm tiền đề cho tất cả các phép tính toán, phân tích web, có thể được dùng như những giá trị duy nhất được dùng như các toán hạng trong các công thức tính toán

 Page View

Đây là metric kiểu số đếm, thể hiện số lần một trang web (page) đã được xem Việc xác định Page view có thể dựa trên mã trạng thái (status code) được phản hồi từ web server khi có yêu cầu từ máy khách Với một số giá trị mã trạng thái, Page View không được tính trong trường hợp sau:

- Mã trạng thái từ 400 – 499 hoặc 500 – 599: Web server phản hồi không tìm thấy trang (400 đến 499) hoặc có lỗi xảy ra, trừ trường hợp web server được cấu hình

để trả về một trang web cùng trạng thái

- Mã trạng thái 300 – 399: Web server phản hồi bằng cách chuyển hướng đến một trang web khác

Trang 27

- Một số trường hợp của giá trị của mã trạng thái trả về của phản hồi thành công: 202 (Accepted), 204 (No Response), 206 (Partial Download)

Khi phân tích dữ liệu từ các log file của web server, việc sử dụng các mã trạng thái của mỗi request để loại bỏ những request không được xem là Page View rất quan trong, tuy nhiên việc này không cần thiết khi xử lý dữ liệu dựa trên page tagging

 Visits (Sessions)

Đây là metric kiểu số đếm Mỗi Visit là một tương tác được thực hiện bởi một

cá nhân (người dùng) với website, tương tác này có thể bao gồm việc yêu cầu một hoặc nhiều trang web Nếu cá nhân không thực hiện bất kỳ hành động gì (thông thường là xem thêm các trang khác) trong một khoảng thời gian nhất định, visit xem như kết thúc do quá thời gian

Khoảng thời gian quá hạn cho một visit thông thường được gán là 30 phút, tuy nhiên giá trị này có thể được tùy chỉnh

 Unique visitors

Đây là metric kiểu số đếm, là metric thể hiện số người dùng có tương tác bằng việc thực hiện một hoặc nhiều lượt truy cập đến website trong một khoảng thời gian nhất định Mỗi cá nhân chỉ được đếm một lần duy nhất trong phép đo này trong một thời gian báo cáo

Việc phân biệt các visitor khác nhau có thể được thực hiện theo nhiều cách Chứng thực là phương pháp chính xác nhất để theo dõi visitor duy nhất Tuy nhiên

do không phải website nào cũng yêu cầu người dùng đăng nhập, cách tốt hơn là sử dụng cookie có thể lưu trữ giá trị id duy nhất để thay thế, nhưng lại không chính xác nếu cookie bị xóa, người dùng sử dụng nhiều browser hoặc máy tính,…

 Event

Đây là metric kiểu số đếm, đại diện cho bất kỳ hành động nào được theo dõi kèm theo thời gian diễn ra của nó Các sự kiện (event) là các hoạt động diễn ra trong một trang web

Trang 28

Các metric đặc điểm truy cập

Nhóm này gồm những metric mô tả các hành vi của một người dùng diễn ra trong một lần truy cập website Phân tích những thành phần này của hoạt động truy cập có thể xác định phương pháp cải thiện được tương tác người dùng với website

 Entry Page

Là trang web đầu tiên của một lần truy cập, bất kể sử dụng cách tính toán lần truy cập như thế nào Do đó, phương pháp phân chia các lần truy cập khác nhau sẽ đưa đến các kết quả khác nhau

Entry page thường được biểu diễn là một danh sách các URL hoặc tiêu đề của trang, thể hiện những entry page thu thập được và số lượt truy cập có trang tương ứng

là entry page Do mỗi lượt truy cập đều gồm ít nhất một trang web được yêu cầu, số lượng các entry page bằng số lượt truy cập trong một khoảng thời gian

 Visit Duration

Metric kiểu số đếm, là khoảng thời gian trong một lượt truy cập, thường được tính bằng cách tính khoảng thời gian giữa hoạt động đầu tiên và cuối cùng của lượt truy cập

Nếu chỉ có một hành động được thực hiện trong một lượt truy cập (chỉ xem một trang hoặc chỉ có một sự kiện), khoảng thời gian truy cập sẽ không được tính do không có mốc thời gian thứ hai để tính hiệu số, thông thường lúc này được gán là 0

 Referrer

Trang 29

Là metric mô tả nguồn của traffic đến một trang hoặc của lượt truy cập Referrer thường được thu thập thành các nhóm khác nhau để dễ dàng phân tích:

- Internal Referrer (tham chiếu nội bộ): là URL của một trang web thuộc nội

bộ website hoặc một thuộc tính bên trong website

- External Referrer (tham chiếu ngoài): là URL của một trang web nằm ngoài website hoặc thuộc tính web

- Search Referrer (tham chiếu tìm kiếm): là một referrer nội bộ hoặc ngoài có URL được tạo ra từ một hàm tìm kiếm

- Direct Referrer (không có tham chiếu): giá trị referrer rỗng hoặc null, thể hiện người dùng có thể đã trực tiếp nhập URL hoặc lựa chọn từ danh sách bookmark…

Các metric đặc điểm người truy cập

Nhóm metric này mô tả nhiều thuộc tính các khau phân biệt các người dùng website Những thuộc tính cho phép phân phối lượng người truy cập để cải thiện tính chính xác và hiệu quả của việc phân tích

 New visitor

Đây là metric kiểu số đếm, thể hiện số lượng người dùng truy cập lần đầu tiên trong khoảng thời gian cho trước “Lần đầu tiên” ở đây là trong ngữ cảnh khi dữ liệu bắt đầu được thu thập trên website

Mỗi người dùng chỉ được tính là người dùng mới một lần duy nhất trong thời gian báo cáo, do đó tổng số lượng người dùng mới và số lượng người dùng cũ luôn bằng số người dùng hiện có trong thời gian đó Không có trường hợp một người dùng vừa được xem là người dùng mới vừa được xem là người dùng cũ cùng một lúc

 Return visitor

Đây là metric kiểu số đếm, thể hiện số lượng người dùng tương tác với website trong một khoảng thời gian cho trước mà trước đó người dùng này đã từng truy cập website

 Repeat visitor

Trang 30

Đây là metric kiểu số đếm, thể hiện số lượng người dùng có hai hoặc nhiều lần truy cập tương tác với website trong một khoảng thời gian cho trước

Một người dùng vừa có thể được xem là người dùng mới vừa là người dùng lặp lại, hoặc vừa là người dùng cũ vừa là người dùng lặp lại

2.2.5 Trực quan hóa dữ liệu tương tác

Hình 2.6 Hình ảnh minh họa về Heatmap

2.3 Các kỹ thuật, công nghệ được sử dụng

2.3.1 Dịch vụ Windows - Windows service

Tổng quan về Windows service

“Microsoft Windows service – Dịch vụ windows cho phép người dùng khởi tạo những ứng dụng thực thi dài hạn được vận hành trong tiến trình Windows riêng biệt

Trang 31

của nó Những dịch vụ này có thể tự động bắt đầu khi máy tính khởi động, có thể dừng lại hoặc khởi động lại, và không có giao diện tương tác với người dùng Những đặc điểm này giúp dịch vụ Windows trở nên lý tưởng để sử dụng trên các server hay bất cứ nơi nào cần thực hiện các chức năng dài hạn nhưng không tương tác với người dùng sử dụng máy” [13]

Các dịch vụ Windows khi cài đặt trên máy tính có thể được điều khiển bằng

Services Control Manager để khởi động, dừng, ngưng tạm thời hoặc cấu hình cho

dịch vụ đó, đây là tiện ích được Windows cung cấp để quản lý các dịch vụ trong hệ thống

Một dịch vụ có nhiều trạng thái khác nhau trong vòng đời hoạt động của nó Trước tiên, dịch vụ được cài đặt trên hệ thống Quá trình này thực thi chương trình

cài đặt của dịch vụ và tải dịch vụ vào Services Control Manager của máy tính Sau khi đã được cài đặt, dịch vụ có thể được khởi động thông qua Services Control

Manager hoặc trong mã nguồn của dịch vụ có cơ chế tự khởi động, cho phép dịch

vụ bắt đầu thực hiện các chức năng Dịch vụ sau đó duy trì ở trạng thái đang chạy (running) vô thời hạn cho đến khi bị dừng, ngưng tạm thời hoặc hệ thống bị tắt

Một dịch vụ có thể tồn tại ở 3 trạng thái chính: đang chạy (running), đã tạm dừng (pause) hoặc đã dừng (stopped) Ngoài ra còn một số trạng thái khác như ContinuePending, PausePeding, StartPending hay StopPending để thể hiện một câu lệnh đang được thực hiện nhưng vẫn chưa kết thúc

Windows service trong Visual Studio

Microsoft Visual Studio cho phép người dùng xây dụng các dịch vụ Windows [13] thông qua việc tạo các project, định nghĩa các đoạn mã bên trong dịch vụ đó để điều khiển việc gửi các câu lệnh thực thi đến dịch vụ và thực hiện các chức năng tương ứng với các câu lệnh đó Các câu lệnh có thể gửi bao gồm: khởi động, tạm dừng, khôi phục hoặc dừng dịch vụ, ngoài ra cũng có thể thực hiện những câu lệnh tùy chỉnh

So sánh với những project thông thường của Visual Studio, các dịch vụ khi được xây dựng có những đặc điểm sau:

Trang 32

- File thực thi sau khi biên dịch project của dịch vụ cần được cài đặt trên máy tính để thực hiện các chức năng của nó, không thể sử dụng chức năng debug với F5 hoặc F11 như project thông thường

- Các dịch vụ cần được tạo một thành phần cài đặt của riêng nó để cài đặt và

đăng ký dịch vụ trên máy tính và tạo một entry của dịch vụ với Services Control

Manager

- Windows service không cho phép sử dụng các thành phần tương tác với người dùng như hộp thoại,… Những thành phần này nếu sử dụng trong windows service sẽ không được hiển thị và có thể làm treo dịch vụ

Khi tạo một dịch vụ windows trong Visual Studio, các lớp (class) chính sau đây được sử dụng [14]:

- ServiceBase: lớp này sẽ được kế thừa để xây dựng lớp của dịch vụ muốn tạo, những phương thức trong lớp này cũng sẽ được ghi đè bằng những chức năng của dịch vụ

- ServiceProcessInstaller và ServiceInstaller: những lớp này được dùng để cài đặt và gỡ cài đặt dịch vụ trên máy tính

Lớp ServiceBase chứa các phương thức có thể được ghi đè để người dùng tự định nghĩa những hành động sẽ diễn ra khi thay đổi trạng thái của dịch vụ Bảng dưới đây tổng hợp các phương thức này

Bảng 2.1 Các phương thức cung cấp bởi class ServiceBase

Trang 33

OnContinue Dùng để định nghĩa hành động thực hiện khi dịch

vụ được khôi phục sau khi tạm dừng

OnCustomCommand Dùng để định nghĩa hành động thực hiện khi dịch

vụ nhận một câu lệnh tùy chỉnh

Điều khiển Windows service

Có nhiều cách để điều khiển hoạt động của một Windows service Windows cũng cung cấp nhiều cơ chế khác nhau thông qua các ứng dụng có giao diện như

Services Control Manager hoặc thẻ Services của Task Manager Những ứng dụng

này đều hiển thị danh sách các dịch vụ windows hiện đang cài đặt trên hệ thống và cung cấp các hành động tương ứng với trạng thái hiện tại của dịch vụ đó

Hình 2.7 Giao diện điều khiển dịch vụ của Services Control Manager

Trang 34

Hình 2.8 Giao diện điều khiển dịch vụ của Task Manager

Bên cạnh các ứng dụng quản lý có giao diện, Sc.exe [15] là một tiện ích dạng

command-line, ngoài các chức năng tương tự như Service Control Manager, Sc.exe còn có thể được dùng để cài đặt và gỡ cài đặt dịch vụ

Đối với phương diện lập trình, cụ thể là trong môi trường Visual Studio, việc tương tác với dịch vụ đang có trên hệ thống bằng những đoạn mã trong các ứng dụng

cũng có thể được thực hiện thông qua một lớp (class) có tên gọi ServiceController

[16] Lớp này đại diện cho một dịch vụ windows và cho phép người dùng kết nối dịch

vụ đó để thực hiện các câu lệnh và lấy thông tin từ dịch vụ Ví dụ dưới đây là đoạn

mã được dùng để khởi động một dịch vụ có tên My Service

Hình 2.9 Ví dụ minh họa sử dụng ServiceController để khởi động dịch vụ

Các kiến thức tìm hiểu được về dịch vụ Windows sẽ được áp dụng trong việc xây dựng thành phần Site Agent của công cụ đo lường và phân tích tương tác người dùng trên website

ServiceController sc = new ServiceController("My Service"); sc.Start();

Trang 35

2.3.2 WCF – Windows Communication Foundation

Tổng quan về WCF

Windows Communication Foundation (WCF) [17] là framework, một tập API được dùng để xây dựng các hệ thống gửi và nhận các thông điệp giữa các dịch vụ và client Các thông điệp được gửi có thể đơn giản là một ký tự hoặc một từ được gửi dưới dạng XML, hay phức tạp hơn là dạng stream hoặc dữ liệu nhị phân

Các khái niệm cơ bản trong WCF [18]:

- Thông điệp: đây là đơn vị giao tiếp được gửi và nhận giữa client và dịch vụ

- Endpoint: định nghĩa địa chỉ nhận/gửi các thông điệp, đồng thời cũng xác định cơ chế giao tiếp được sử dụng để mô tả cách thông điệp được gửi Thông tin của một endpoint bao gồm:

 Address (địa chỉ) xác định vị trí chính xác để nhận thông điệp và được

thể hiện ở dạng một URI scheme://domain[:port]/[path]

 Binding: xác định cách thức giao tiếp của endpoint như giao thức để truyền dữ liệu, định dạng thông điêp hay các giao thức liên quan đến bảo mật

 Contracts: tập hợp các hoạt động định nghĩa các chức năng endpoint có thể thực hiện, được công bố cho client biết để sử dụng

- WCF client: là ứng dụng client để gọi các hoạt động của dịch vụ dưới dạng các phương thức

WCF sử dụng các loại contracts chính cho hoạt động của mình:

- Service contract: cung cấp thông tin đến client về những chức năng có thực hiện của endpoint và các giao thức được dùng trong quá trình giao tiếp

- Data contract: kiểu dữ liệu được dịch vụ sử dụng được định nghĩa trong data contract Cả client và dịch vụ phải thống nhất với data contract

- Message contract: mô tả định dạng của thông điệp

- Policy và binding: những điều kiện tiên quyết để giao tiếp được với dịch vụ, client cần phải tuân thủ những contract này

Trang 36

Tất cả các giao tiếp giữa client và dịch vụ đều thông qua endpoint, endpoint cho phép client truy cập vào các chức năng của dịch vụ Dưới đây là hình ảnh minh họa cho kết nối từ client đến dịch vụ WCF thông qua 2 endpoint khác nhau và yêu cầu 2 contract khác nhau:

Hình 2.10 Minh hoạt kết nối từ client đến dịch vụ WCF

WCF service trong Microsoft Visual Studio

Trong Microsoft Visual Studio cho phép khởi tạo project để xây dựng dịch vụ WCF

Công việc đầu tiên cần thực hiện là xác định một service contract Thành phần

này định nghĩa những hoạt động mà dịch vụ muốn xây dựng có thể hỗ trợ Contract được tạo dưới dạng một interface với mỗi phương thức bên trong đại diện cho một

hoạt động của dịch vụ Interface này sẽ có thuộc tính ServiceContract và mỗi phương thức bên trong nó phải có thuộc tính OperationContract, nếu không phương thức sẽ

không được công bố cho client sử dụng

Trang 37

Hình 2.11 Ví dụ tạo interface ServiceContract

Ví dụ ở trên tạo một interface ICalculator cho một dịch vụ thực hiện việc tính toán với các phương thức client có thể sử dụng là Add, Substract, Multiply và Divide

Sau khi đã tạo một interface ServiceContract và danh sách các hoạt động hỗ trợ, các hoạt động này vẫn chỉ là những tên phương thức chứ chưa có tác vụ cụ thể, bước tiếp theo cần thực hiện là hiện thực những phương thức đó thông qua một lớp (class) hiện thực interface đã khởi tạo

Hình 2.12 Ví dụ hiện thực ServiceContract Sau khi biên dịch, service contract đã tạo và hiện thực có thể được host và chạy

để client có thể kết nối và sử dụng Một WCF service có thể được host bằng 4 cách thông qua IIS, Windows Activation Service, tự host hoặc Windows Service Trong khuôn khổ đề tài luận văn, để phục vụ cho hoạt động của công cụ, tác giả sử dụng 02

cơ chế host khác nhau dành cho 02 đối tượng khác nhau: hosting với Windows service

double Add(double n1, double n2){ return n1 + n2;}

double Subtract(double n1, double n2) { return n1 – n2; }

double Multiply(double n1, double n2) { return n1*n2; }

double Divide(double n1, double n2){ return n1/n2}

}

Trang 38

dành cho dịch vụ WCF của Site Agent do Site Agent bản chất được xây dựng sẽ là một Windows service, hosting với IIS dành cho dịch WCF của Collector do Collector được định hướng sẽ là một ứng dụng web

2.3.3 C# và ASP.NET MVC

2.3.4 MongoDB và SQL

Trong việc xây dựng và phát triển một công cụ thực hiện thu thập và phân tích

dữ liệu, một thành phần quan trọng không thể thiếu đó chính là cơ sở dữ liệu Hiện nay, có 02 loại cơ sở dữ liệu chính tồn tại song song với nhau: cơ sở dữ liệu quan hệ

và cơ sở dữ liệu không quan hệ, khác biệt thể hiện ở loại thông tin và cách chúng lưu trữ các thông tin đó

Phần này giới thiệu về 02 đại diện cho 02 loại cơ sở dữ liệu trên: hệ quản trị cơ

sở dữ liệu quan hệ SQL Server và cơ sở dữ liệu NoSQL MongoDB

SQL Server – Cơ sở dữ liệu quan hệ

Các cơ sở dữ liệu quan hệ (relational database) [19] hay cơ sở dữ liệu SQL được đặt tên theo loại ngôn ngữ được sử dụng để xây dựng chúng – Structured Query

Language (SQL), lưu trữ dữ liệu một cách có cấu trúc

Một cơ sở dữ liệu quan hệ gồm nhiều khái niệm:

- Bảng (table) gồm nhiều cột và dòng, là một tập dữ liệu với một số lượng thuộc tính được định nghĩa trước trong các Cột (column) Mỗi dòng (row) của bảng đại diện cho một entry dữ liệu thực tế Mỗi bảng nên có primary key, là một cột có

giá trị duy nhất trong tất cả các hàng của bảng

- Relationships (quan hệ) giữa các bảng là cốt lõi của các cơ sở dữ liệu quan

hệ, cho phép liên kết các dữ liệu với nhau bằng nhiều cách, các quan hệ này được

thiết lập thông qua các primary key và foreign key của các bảng

Trang 39

Hình 2.13 Lưu trữ dữ liệu với các bảng trong cơ sở dữ liệu quan hệ [19]

Structured Query Language (SQL) là một ngôn ngữ lập trình dùng trong kiến trúc cơ sở dữ liệu để xây dựng nên các cơ sở dữ liệu quan hệ Trong những cơ sở dữ liệu quan hệ này, SQL thực hiện các truy vấn, lấy hay chỉnh sửa dữ liệu bằng cách cập nhật, xóa hay tạo mới

Cơ sở dữ liệu quan hệ nên được sử dụng trong các trường hợp cần lưu trữ các

dữ liệu có cấu trúc và không thay đổi, đặc biệt cần truy vấn dữ liệu dựa trên quan hệ giữa các bảng với nhau Một số cơ sở dữ liệu quan hệ và hệ quản trị cơ sở dữ liệu quan hệ phổ biến: MySQL là cơ sở dữ liệu mã nguồn mở phổ biến nhất, MS SQL Server là hệ quản trị cơ sở dữ liệu của Microsoft, MariaDB là phiên bản nâng cấp của MySQL,…

Trong đề tài luận văn này, tác giả sẽ sử dụng hệ quản trị cơ sở dữ liệu MS SQL

Server để xây dựng và lưu trữ một số thông tin như quản lý các site, tính toán thông

số đánh giá

MongoDB – Cơ sở dữ liệu không quan hệ

Khác với cơ sở dữ liệu quan hệ, các cơ sở dữ liệu không quan hệ NoSQL cung cấp sự linh hoạt tốt hơn trong việc lưu trữ các dữ liệu, do chúng được lưu trữ mà không cần có cấu trúc phải được định nghĩa trước

Trang 40

Hình 2.14 Lưu trữ dữ liệu trong cơ sở dữ liệu không quan hệ [19]

Với những ứng dụng phía server cần đảm bảo sự nhanh chóng và liên tục, cơ sở

dữ liệu không quan hệ có thể ngăn chặn khả năng nghẽn cổ chai do vấn đề dữ liệu lớn có thể xảy ra ở cơ sở dữ liệu SQL Cơ sở dữ liệu không quan hệ NoSQL cho phép lưu trữ số lượng lớn các dữ liệu có ít hoặc không có cấu trúc, không giới hạn kiểu dữ liệu để lưu trữ hay phải định nghĩa kiểu dữ liệu trước

MongoDB là cơ sở dữ liệu không quan hệ mã nguồn mở phổ biến nhất, được

hàng triệu người sử dụng và được phát triển bằng ngôn ngữ C++ MongoDB lưu trữ

dữ liệu dưới dạng các document ở định dạng BSON Nếu như trong cơ sở dữ liệu quan hệ, các hàng cần có chung số lượng và kiểu dữ liệu của các trường, thì với document, các trường này có thể khác nhau

Một số khái niệm chính trong MongoDB:

- Cơ sở dữ liệu (Database): một MongoDB server có thể chứa nhiều cơ sở dữ

liệu, khái niệm này bằng nghĩa trong trường hợp cơ sở dữ liệu quan hệ SQL

- Collection: tương ứng với một bảng ở cơ sở dữ liệu quan hệ, là một nhóm

các document, tồn tại duy nhất trong một database Các collection không có ràng buộc quan hệ như trong cơ sở dữ liệu SQL

Ngày đăng: 23/12/2018, 06:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm