NGHIÊN CỨU KỸ THUẬT CỘNG TÁC KHO DỮ LIỆU LƯU GIỮA CÁC CLIENTS TRONG HỆ THỐNG THÔNG TIN DI ĐỘNG DỰA TRÊN KIẾN TRÚC P2P
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
LA PHƯƠNG THANH – LÊ THỊ THANH THÚY
NGHIÊN CỨU KỸ THUẬT CỘNG TÁC KHO DỮ LIỆU LƯU GIỮA CÁC CLIENTS TRONG HỆ THỐNG THÔNG TIN DI ĐỘNG
DỰA TRÊN KIẾN TRÚC P2P
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT
TP HCM, 2010
Trang 2TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
LA PHƯƠNG THANH - 0612390
LÊ THỊ THANH THÚY - 0612440
NGHIÊN CỨU KỸ THUẬT CỘNG TÁC KHO DỮ LIỆU LƯU GIỮA CÁC CLIENTS TRONG HỆ THỐNG THÔNG TIN DI ĐỘNG
DỰA TRÊN KIẾN TRÚC P2P
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT
GIÁO VIÊN HƯỚNG DẪN
Th S NGUYỄN TRẦN MINH THƯ
KHÓA 2006 - 2010
Trang 3LỜI CẢM ƠN
Sau sáu tháng tìm hiểu và thực hiện, khóa luận “Nghiên cứu kỹ thuật cộng tác kho dữ liệu lưu giữa các clients trong Hệ thống thông tin di động dựa trên kiến trúc P2P” trên cơ bản đã hoàn thành Để đạt được kết quả như hôm nay chúng em đã
cố gắng rất nhiều và cũng được sự giúp đỡ, sự ủng hộ của gia đình, các thầy cô và bạn bè
Trước hết, chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học Khoa Học Tự Nhiên TpHCM đã tạo điều kiện thuận lợi cho chúng em thực hiện khóa luận tốt nghiệp này
Chúng em xin bày tỏ lòng biết ơn sâu sắc đến cô Nguyễn Trần Minh Thư đã
tận tình hướng dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện khóa luận
Chúng con xin chân thành cảm ơn Ông Bà, Cha Mẹ đã chăm sóc, nuôi dạy chúng con thành người
Xin chân thành cám ơn các thầy cô, các anh chị và các bạn đã ủng hộ, giúp đỡ
và động viên chúng em trong thời gian học tập và nghiên cứu
Khóa luận đã hoàn thành với một số kết quả nhất định, tuy nhiên vẫn không tránh khỏi sai sót Kính mong sự đóng góp ý kiến của các thầy cô và các bạn
Sinh viên thực hiện
La Phương Thanh – Lê Thị Thanh Thúy
07-2010
Trang 4Khoa Công Nghệ Thông Tin
Bộ môn Hệ Thống Thông Tin
ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: Nghiên cứu kỹ thuật cộng tác kho dữ liệu lưu giữa các clients trong
Hệ thống thông tin di động dựa trên kiến trúc P2P
Giáo viên hướng dẫn: Ths Nguyễn Trần Minh Thư
Sinh viên thực hiện:
La Phương Thanh
MSSV: 0612390 Email: phuongthanh712@gmail.com Điện thoại: 0902054500
Lê Thị Thanh Thúy
MSSV: 0612440 Email: thanhthuy1240@gmail.comĐiện thoại: 0908195336
Loại đề tài: Nghiên cứu và thử nghiệm
Mục tiêu đề tài:
Ngày nay công nghệ thông tin (CNTT) nói chung và hệ thống thông tin di động nói riêng đã phát triển một cách mạnh mẽ cùng với sự phát triển của kỹ thuật mạng không dây kết hợp với các loại thiết bị di động ngày càng hiện đại đã mang lại nhiều tiện ích cho người dùng trong việc trao đổi thông tin và dữ liệu Hệ thống thông tin di động được phát triển đầu tiên với kiến trúc mạng client/server Mô hình mạng client/server có rất nhiều điểm ưu việt, nổi bật là mọi xử lý sẽ nằm trên server, do đó tránh cho các client những tính toán nặng nề Tuy nhiên với sự phát triển không ngừng của hệ thống thông tin di động thì kiến trúc mạng client/server không còn phù hợp và gây ra nhược điểm khi số lượng máy khách tăng lên Lý do
Trang 5chính là khi số lượng máy khách tăng lên thì nhu cầu truy xuất dữ liệu và băng thông tăng, dẫn đến server giảm khả năng cung cấp dịch vụ cho các clients Đặc biệt trong môi trường mạng không dây kết nối yếu hoặc thường xuyên mất kết nối thì kiến trúc client/server này hoàn toàn không còn phù hợp nữa Để khắc phục các nhược điểm của kiến trúc client/server, các nhà khoa học đã nghiên cứu đưa ra một
mô hình kiến trúc mới phù hợp trong môi trường hệ thống thông tin di động, đó là
mô hình cộng tác chia sẽ dữ liệu và thông tin giữa các clients với nhau để hạn chế việc truy xuất đến server
Đối với mô hình này thì client là các thiết bị di động có khả năng xử lý, lưu trữ Tuy nhiên các thiết bị di động hạn chế về năng lượng, khả năng tính toán và không gian lưu trữ thấp, vì vậy người ta muốn các thiết bị di động chia sẻ cộng tác kho lưu trữ (cache) Việc này giúp giảm thời gian chờ và tăng khả năng lấy được
dữ liệu trong một môi trường ít kết nối
Nhiều công trình nghiên cứu đã đưa ra các chiến lược và kỹ thuật lưu trữ lại
dữ liệu (caching) Các kỹ thuật xử lý, lưu trữ hiệu quả giúp tăng hiệu suất của mô hình cộng tác chia sẻ dữ liệu Từ đó giảm chi phí truyền thông giữa các client và server cũng như rút ngắn thời gian hồi đáp truy vấn dữ liệu
Do đó, mục tiêu của chúng tôi đặt ra trong đề tài này là nghiên cứu tìm hiểu các mô hình cộng tác chia sẻ dữ liệu trong hệ thống thông tin di động Sau đó, xây dựng và hiện thực hóa một kiến trúc hệ thống, cài đặt thử nghiệm để kiểm tra tính hiệu quả của kiến trúc
Nội dung đề tài:
Tìm hiểu các mô hình cộng tác chia sẻ dữ liệu trong các hệ thống thông tin di động Đối với mỗi mô hình tìm hiểu cần nắm được thông tin về ý tưởng, giải pháp thực hiện và đánh giá được các ưu khuyết điểm của từng mô hình
Từ hiện trạng khảo sát sinh viên xây dựng mô hình cộng tác chia sẻ dữ liệu trong
hệ thống thông tin di động Trong mô hình đề xuất cần quan tâm đến vấn đề điều phối truy vấn cho các thiết bị lân cận đồng thời xử lý hỗ trợ truy vấn cho nhiều hạng mục dữ liệu
Đề xuất giải pháp lưu trữ, chia sẻ, truy vấn dữ liệu cho mô hình đề nghị, trong
Trang 6giải pháp thực hiện sinh viên có thể kế thừa hoặc kế thừa có cải tiến hoặc đề xuất giải pháp mới để thực hiện cho mô hình đã đề xuất
Xây dựng ứng dụng thử nghiệm cho mô hình đề xuất
So sánh, đánh giá với các giải pháp của các mô hình đã đề xuất theo từng tiêu chí đặt ra trong kiến trúc hệ thống thông tin di động (nếu có thể)
Đánh giá nhận xét cho mô hình sau khi đã chạy thực nghiệm với các bộ dữ liệu
để đánh giá được hiệu quả của việc chia sẻ dữ liệu trong mô hình đã đề nghị
Yêu cầu đạt được:
Giai đoạn 1:(Từ 20/12/2009 15/03/2010) Thu thập, nghiên cứu, tổng hợp tài
liệu tham khảo
Khảo sát mô hình cộng tác chia sẻ dữ liệu áp dụng trên môi trường di động
Đánh giá các mô hình
Đề xuất mô hình và lựa chọn giải pháp lưu trữ, chia sẻ, truy vấn dữ liệu trong mô hình cộng tác dữ liệu trên hệ thống di động
Giai đoạn 2:(Từ 16/03/2010 15/05/2010) Cài đặt thử nghiệm
Triển khai cài đặt thử nghiệm mô hình và giải pháp lưu trữ, chia sẻ, truy vấn dữ liệu
Xây dựng ứng dụng minh họa
Giai đoạn 3:(Từ 16/05/2010 30/06/2010) Đánh giá, kiểm nghiệm và viết báo
Trang 7cáo
Kiểm tra tính đúng đắn của chương trình
Hoàn thiện các chức năng còn lỗi
Mở rộng chức năng nếu có Hoàn thiện báo cáo luận văn
Trang 8MỤC LỤC
LỜI CẢM ƠN i
ĐỀ CƯƠNG CHI TIẾT ii
MỤC LỤC vi
DANH MỤC HÌNH VẼ xii
DANH MỤC CÁC BẢNG xiv
TÓM TẮT xvii
Chương 1 - MỞ ĐẦU 1
1.1 Giới thiệu đề tài 1
1.2 Mục tiêu đề tài 2
1.3 Hướng tiếp cận và giải quyết bài toán 2
1.4 Nội dung đề tài 3
Chương 2 - TỔNG QUAN VỀ MÔ HÌNH CỘNG TÁC CHIA SẺ DỮ LIỆU TRONG MÔI TRƯỜNG DI ĐỘNG 5
2.1 Giới thiệu mô hình cộng tác chia sẻ dữ liệu 5
2.1.1 Định nghĩa mô hình cộng tác chia sẻ dữ liệu 5
2.1.2 Ưu điểm của mô hình cộng tác chia sẻ dữ liệu 6
2.2 Các chiến lược quản lý và thay thế kho lưu trữ trong mô hình cộng tác 6
2.2.1 Thuật toán thay thế (Replacement Algorithm) 6
2.2.1.1 Thuật toán dựa trên vùng nhớ tạm (Temporal Locality Based Algorithm) 6
2.2.1.2 Thuật toán dựa trên lợi ích (hoặc dựa trên chi phí): 7
2.2.2 Chiến lược nhất quán kho lưu trữ 7
2.2.3 Chiến lược điều phối truy vấn và tổng hợp dữ liệu 7
2.3 Sơ lược các công trình nghiên cứu về cộng tác chia sẻ dữ liệu 7
2.3.1 Dẫn nhập 7
2.3.2 Kiến trúc MIX 8
2.3.2.1 Phương thức hoạt động 10
2.3.2.2 Kiến trúc và nguyên lý hoạt động 10
Trang 92.3.3 Kỹ thuật lưu trữ theo nhóm và truy vấn tổng hợp dữ liệu phân tán 14
2.3.3.1 Kế hoạch truy vấn dữ liệu tại một MU dựa trên chiến lược lưu trữ nhóm 14
2.3.3.2 Xây dựng kế hoạch truy vấn dữ liệu tại nhiều MU dựa trên chiến lược lưu trữ nhóm 16
2.3.4 Chiến lược thay thế cache với giá trị LUV 20
2.3.5 CCCM - Kiến trúc cộng tác chia sẻ kho lưu trữ 22
2.3.5.1 Lưu trữ 23
2.3.5.2 Khám phá 23
2.3.5.3 Nhất quán 24
2.3.5.4 Thay thế 25
2.4 So sánh đánh giá các giải pháp 27
2.4.1 Bảng so sánh đánh giá các giải pháp 27
2.4.2 Đánh giá ưu điểm, khuyết điểm của các giải pháp 27
2.5 Kết luận 29
Chương 3 - ĐỀ XUẤT KIẾN TRÚC MẠNG P2P TRONG MÔI TRƯỜNG DI ĐỘNG 30
3.1 Dẫn nhập 30
3.2 Kiến trúc hệ thống thông tin di động áp dụng mạng P2P 32
3.2.1 Giới thiệu 32
3.2.2 Phương thức hoạt động của hệ thống 32
3.3 Kiến trúc và nguyên lý hoạt động 34
3.3.1 Lớp Cooperative Caching Process 35
3.3.1.1 Lớp Local Cache Process 35
3.3.1.2 Lớp Zone Process 36
3.3.1.3 Lớp Routing Process 36
3.3.2 Lớp Query Process 37
3.3.2.1 Module “Local Query” 37
3.3.2.2 Module “Zone Query” 37
3.3.2.3 Module “Route Query” 37
3.4 Thuật toán xử lý tại MU 38
Trang 103.4.1 Luồng xử lý tại lớp Cooperative Caching Process 39
3.4.1.1 Luồng xử lý tại lớp Local Cache Process 39
3.4.1.1.1 Thuật toán phân loại dữ liệu 39
3.4.1.1.2 Thay thế dữ liệu 40
3.4.1.1.3 Thay đổi phù hợp với truy vấn đa hạng mục 40
3.4.1.2 Luồng xử lý tại lớp Zone Process 42
3.4.1.2.1 Thuật toán “Lưu trữ thông tin trong bảng RRT” 42
3.4.1.2.2 Thuật toán “Định tuyến trong vùng” 44
3.4.1.3 Luồng xử lý tại lớp Routing Process 44
3.4.2 Luồng xử lý tại lớp Query Process 45
3.4.2.1 Thuật toán xử lý module Local Query 45
3.4.2.2 Thuật toán xử lý module Zone Query 47
3.4.2.2.1 Thuật toán xử lý tại MU dữ liệu khi nhận được JoinResquest từ MU nguồn 47
3.4.2.2.2 Thuật toán xử lý tại MU nguồn khi nhận được RJoinRequest từ MU dữ liệu 49
3.4.2.2.3 Thuật toán xử lý tại MU dữ liệu khi nhận được DataRequest từ MU nguồn 51
3.4.2.2.4 Thuật toán xử lý tổng hợp dữ liệu tại MU dữ liệu 52
3.4.2.3 Thuật toán xử lý module Route Query 53
3.5 Xây dựng cở sở dữ liệu 55
3.5.1 Cấu trúc lưu trữ 55
3.5.2 Cấu trúc xử lý 58
3.6 Kết luận 59
Chương 4 - XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG 61
4.1 Giới thiệu 61
4.2 Network Simulation 2 – NS2 61
4.2.1 Giới thiệu 61
4.2.2 Kiến trúc của NS2 61
4.3 Cấu trúc chương trình mô phỏng 62
4.4 Chương trình tạo kịch bản mô phỏng – E-MIX Demo 63
Trang 114.4.1 Giới thiệu 63
4.4.2 Giao diện chính của E-MIX Demo 64
4.4.2.1 Màn hình “Main” 65
4.4.2.2 Màn hình “Configuration node” 66
4.4.2.3 Màn hình “Model” 67
4.4.2.4 Màn hình “Animation” 68
4.4.2.5 Màn hình “Result” 69
4.5 Thực thi kịch bản mô phỏng 70
4.6 Kiến trúc E-MIX 70
4.6.1 Giao thức “EMIXAgent” 70
4.6.2 Kỹ thuật lưu trữ trong kiến trúc E-MIX 71
4.6.2.1 Lớp RRT 71
4.6.2.2 Lớp MyCache 73
4.6.2.3 Lớp numNeighNeigh 75
4.6.2.4 Lớp MyList 75
4.6.2.5 Lớp EMixAgent 77
4.6.3 Kỹ thuật xử lý trong kiến trúc E-MIX 83
4.6.3.1 Lớp RRT 83
4.6.3.2 Lớp MyCache 84
4.6.3.3 Lớp MyList 86
4.6.3.4 Lớp numNeighNeigh 87
4.6.4 Kỹ thuật truyền và nhận gói tin trong giao thức 87
4.6.5 Danh sách các gói tin sử dụng trong giao thức E-MIX 89
4.6.6 Kỹ thuật tạo gói tin 89
4.6.7 Gửi gói tin 91
4.6.8 Kỹ thuật xếp lịch thời gian 91
4.6.9 Sơ đồ luồng xử lý thông tin các module của giao thức EMixAgent 93
4.6.10 Biên dịch NS-2 94
4.7 Kết luận 94
Chương 5 - KẾT QUẢ MÔ PHỎNG 95
5.1 Giới thiệu 95
Trang 125.2 Mô phỏng kiểm nghiệm kiến trúc 95
5.2.1 Các tiêu chí mô phỏng thử nghiệm 95
5.2.1.1 Tiêu chí 1: Tỷ lệ đưa yêu cầu lên kênh uplink 95
5.2.1.2 Tiêu chí 2: Thời gian đáp ứng của một yêu cầu dữ liệu 95
5.2.1.3 Tiêu chí 3: Số lượng thông điệp của một yêu cầu dữ liệu 96
5.2.1.4 Tiêu chí 4: Số lượng thông điệp của một yêu cầu dữ liệu 96
5.2.1.5 Tiêu chí 5: Số lượng thông điệp trung bình của một yêu cầu dữ liệu 96
5.2.2 Thử nghiệm kiểm tra tính hiệu quả của kiến trúc E-MIX 96
5.2.3 Các trường hợp thử nghiệm kiến trúc E-MIX 97
5.3 Cấu hình mô phỏng chung 98
5.3.1 Cấu hình tham số thử nghiệm 98
5.3.2 Bộ dữ liệu thử nghiệm 99
5.3.3 Kịch bản và kết quả thử nghiệm E-MIX-3 99
5.3.3.1 Mô phỏng 10 MUs 99
5.3.3.1.1 Tiêu chí số lượng thông điệp của một yêu cầu dữ liệu 99
5.3.3.1.2 Tiêu chí thời gian đáp ứng của một yêu cầu dữ liệu 101
5.3.3.2 Mô phỏng 20 MUs 103
5.3.3.2.1 Tiêu chí số lượng thông điệp của một yêu cầu dữ liệu 103
5.3.3.2.2 Tiêu chí thời gian đáp ứng của một yêu cầu dữ liệu 105
5.3.3.3 Mô phỏng 30 MUs 107
5.3.3.3.1 Chi tiết quá trình chọn lựa DN để gửi dữ liệu tại QN trong trường hợp thử nghiệm 3 107
5.3.3.3.2 Tiêu chí số lượng thông điệp của một yêu cầu dữ liệu 108
5.3.3.3.3 Tiêu chí thời gian đáp ứng của một yêu cầu dữ liệu 109
5.3.3.4 Mô phỏng 40 MUs 111
5.3.3.4.1 Tiêu chí số lượng thông điệp của một yêu cầu dữ liệu 111
5.3.3.4.2 Tiêu chí thời gian đáp ứng của một yêu cầu dữ liệu 112
5.3.3.4.3 Tiêu chí tỉ lệ đưa yêu cầu lên kênh uplink 114
5.3.3.5 Mô phỏng 50 MUs 115
5.3.3.5.1 Tiêu chí số lượng thông điệp của một yêu cầu dữ liệu 115
Trang 135.3.3.5.2 Tiêu chí thời gian đáp ứng của một yêu cầu dữ liệu 117
5.3.3.6 Mô phỏng 60 MUs 118
5.3.3.6.1 Tiêu chí số lượng thông điệp của một yêu cầu dữ liệu 118
5.3.3.6.2 Tiêu chí thời gian đáp ứng của một yêu cầu dữ liệu 120
5.3.4 Đánh giá kết quả thử nghiệm E-MIX 121
5.4 Kết luận 123
Chương 6 - KẾT LUẬN 125
6.1 Kết luận 125
6.2 Hướng phát triển luận văn 125
TÀI LIỆU THAM KHẢO 127
Trang 14DANH MỤC HÌNH VẼ
Hình 2-1 Mô hình kiến trúc hệ thống 9
Hình 2-2 Nguyên lý hoạt động của kiến trúc 10
Hình 2-3 Kiến trúc tại MU 11
Hình 2-4 Mô hình kiến trúc MIX 11
Hình 2-5 Xử lý Routing Process 13
Hình 2-6 Xử lý Route Discovery Phase 13
Hình 2-7 Ví dụ truy vấn tại nhiều MU trong Group-Caching based Query Processing 19
Hình 2-8 Mô hình kiến trúc hệ thống 22
Hình 3-1 Mô hình kiến trúc hệ thống mạng 31
Hình 3-2 Nguyên lý hoạt động kiến trúc đề xuất 33
Hình 3-3 Kiến trúc tại mỗi MU 34
Hình 3-4 Mô hình kiến trúc đề xuất 35
Hình 3-5 Luồng xử lý tại lớp Middleware 38
Hình 3-6 Module "Cache Management" 39
Hình 3-7 Ví dụ bảng RRT 43
Hình 3-8 Xử lý tại MU nguồn khi gửi thông điệp đến MUs lân cận 46
Hình 3-9 Minh họa quá trình xử lý tại MU nguồn khi nhận được RJoinRequest từ MU dữ liệu 50
Hình 3-10 Lưu đồ thuật toán xử lý tại MU dữ liệu khi nhận được DataRequest từ MU nguồn 51
Hình 3-11 Lưu đồ thuật toán xử lý tổng hợp dữ liệu tại MU dữ liệu 52
Hình 3-12 Thuật toán tìm kiếm RD trong các MUs mạng 54
Hình 4-1 NS-2 theo quan điểm người dùng 62
Hình 4-2 Cấu trúc chương trình mô phỏng 63
Hình 4-3 Sơ đồ liên kết các màn hình 64
Hình 4-4 Màn hình Main 65
Hình 4-5 Màn hình "Configuration node" 66
Trang 15Hình 4-6 Màn hình Model 67
Hình 4-7 Màn hình Animation 68
Hình 4-8 Màn hình "Result" 69
Hình 4-9 Ví dụ NS-2 thực thi một kịch bản 70
Hình 4-10 Sơ đồ liên kết các lớp trong giao thức EMixAgent 71
Hình 4-11 Sơ đồ luồng xử lý các module của giao thức EMixAgent 93
Hình 4-12 Quá trình biên dịch NS-2 94
Hình 5-1 Kết quả số lượng thông điệp với số lượng 10 MUs 101
Hình 5-2 Kết quả thời gian đáp ứng so với số lượng 10 MUs 103
Hình 5-3 Kết quả số lượng thông điệp với số lượng 20 MUs 105
Hình 5-4 Kết quả thời gian đáp ứng của một RD với số lượng 20 MUs 106
Hình 5-5 Kết quả số lượng thông điệp với số lượng 30 MUs 109
Hình 5-6 Kết quả thời gian đáp ứng của một RD với số lượng 30 MUs 110
Hình 5-7 Kết quả số lượng thông điệp với số lượng 40 MUs 112
Hình 5-8 Kết quả thời gian đáp ứng của một RD với số lượng 40 MUs 114
Hình 5-9 Kết quả tiêu chí đưa yêu cầu lên kênh uplink 114
Hình 5-10 Kết quả số lượng thông điệp với số lượng 50 MUs 116
Hình 5-11 Kết quả thời gian đáp ứng của một RD với số lượng 50 MUs 118
Hình 5-12 Kết quả số lượng thông điệp với số lượng 60 MUs 120
Hình 5-13 Kết quả thời gian đáp ứng của một RD với số lượng 60 MUs 121
Hình 5-14 Thời gian đáp ứng trung bình của một yêu cầu dữ liệu 122
Hình 5-15 Số lượng thông điệp trung bình của một yêu cầu dữ liệu 123
Trang 16DANH MỤC CÁC BẢNG
Bảng 2-1 Thuật toán truy vấn tại một MU trong Group-Caching based Query
Processing 15
Bảng 2-2 Thuật toán truy vấn tại nhiều MU trong Group-Caching based Query Processing 19
Bảng 3-1 Mả giã thuật toán xử lý thay thế dữ liệu 42
Bảng 3-2 Mã giả "Xử lý lưu trữ thông tin trong RRT" 44
Bảng 3-3 Mã giả thuật toán "Định tuyến trong vùng" 44
Bảng 3-4 Thuật toán tại module "Local Query" 46
Bảng 3-5 Thuật toán xử lý tại MU dữ liệu khi nhận được JoinResquest từ MU nguồn 49
Bảng 3-6 Thuật toán xử lý tại MU nguồn khi nhận được RJoinRequest từ MU dữ liệu 51
Bảng 3-7 Thuật toán xử lý tổng hợp dữ liệu tại MU dữ liệu 53
Bảng 3-8 Mã giả xử lý thuật toán tìm kiếm RD trong các MUs mạng 55
Bảng 4-1 Chi tiết các giao diện chính của E-MIX Demo 64
Bảng 4-2 Chức năng màn hình "Main" 66
Bảng 4-3 Chi tiết màn hình "Configuration node" 67
Bảng 4-4 Chi tiết màn hình "Model" 68
Bảng 4-5 Chi tiết màn hình "Animation" 69
Bảng 4-6 Chi tiết màn hình "Result" 69
Bảng 4-7 Chức năng các lớp trong giao thức EMixAgent 71
Bảng 4-8 Cấu trúc dữ liệu của lớp RRT 72
Bảng 4-9 Các hàm chức năng của lớp RRT 73
Bảng 4-10 Cấu trúc dữ liệu của lớp MyCache 74
Bảng 4-11 Các hàm chức năng của lớp MyCache 75
Bảng 4-12 Cấu trúc dữ liệu của lớp numNeighNeigh 75
Bảng 4-13 Cấu trúc dữ liệu của lớp MyList 76
Bảng 4-14 Các hàm chức năng của lớp MyList 77
Trang 17Bảng 4-15 Cấu trúc dữ liệu lớp EMixAgent 80
Bảng 4-16 Các hàm chức năng của lớp EMixAgent 83
Bảng 4-17 Kỹ thuật xử lý tại lớp RRT 84
Bảng 4-18 Kỹ thuật tính giá trị utility trong lớp MyCache 84
Bảng 4-19 Kỹ thuật xử lý phân loại và thêm dữ liệu trong lớp MyCache 86
Bảng 4-20 Kỹ thuật xử lý tại lớp MyList 87
Bảng 4-21 Kỹ thuật xử lý tại lớp numNeighNeigh 87
Bảng 4-22 Hàm comand 88
Bảng 4-23 Hàm recv 89
Bảng 4-24 Danh sách gói tin 89
Bảng 4-25 Cấu trúc thông tin điều hướng 90
Bảng 4-26 Cấu trúc thông tin "hdr_cmn *ch=HDR_CMN(Packet *)" 90
Bảng 4-27 Cấu trúc gói tin "reply_numberNeigh_pkt" 90
Bảng 4-28 Các thuộc tính trong gói tin "reply_numberNeigh_pkt" 91
Bảng 4-29 Quá trình gửi gói tin đến các MU xác định 91
Bảng 4-30 Lớp PktMU_Neighs_Timeout 92
Bảng 4-31 Khởi động timeout 92
Bảng 4-32 Phương thức expire 93
Bảng 5-1 Các trường hợp tổng quát phân bổ dữ liệu 97
Bảng 5-2 Chi tiết các trường hợp DN 97
Bảng 5-3 Các trường hợp mô phỏng thử nghiệm kiến trúc E-MIX-3 98
Bảng 5-4 Cấu hình tham số thử nghiệm 99
Bảng 5-5 Kết quả số lượng thông điệp với số lượng 10 MUs 100
Bảng 5-6 Kết quả thời gian đáp ứng của một RD với số lượng 10 MUs 102
Bảng 5-7Kết quả số lượng thông điệp với số lượng 20 MUs 104
Bảng 5-8 Kết quả thời gian đáp ứng của một RD với số lượng 20 MUs 106
Bảng 5-9 Kết quả số lượng thông điệp với số lượng 30 MUs 109
Bảng 5-10 Kết quả thời gian đáp ứng của một RD với số lượng 30 MUs 110
Bảng 5-11 Kết quả số lượng thông điệp với số lượng 40 MUs 112
Bảng 5-12 Kết quả thời gian đáp ứng của một RD với số lượng 40 MUs 113
Bảng 5-13 Kết quả tiêu chí đưa yêu cầu lên kênh uplink 115
Trang 18Bảng 5-14 Kết quả số lượng thông điệp với số lượng 50 MUs 116
Bảng 5-15 Kết quả thời gian đáp ứng của một RD với số lượng 50 MUs 118
Bảng 5-16 Kết quả số lượng thông điệp với số lượng 60 MUs 119
Bảng 5-17 Kết quả thời gian đáp ứng của một RD với số lượng 60 MUs 121
Bảng 5-18 Kết quả số lượng thông điệp trung bình và thời gian đáp ứng trung bình với từng số lượng MUs 122
Bảng 5-19 So sánh với kiến trúc MIX 124
Trang 19TÓM TẮT
Trong bối cảnh môi trường di động hiện nay, các thiết bị di động hạn chế về năng lượng, khả năng tính toán và không gian lưu trữ Vì vậy, khi các thiết bị động truy vấn dữ liệu cần phải tính toán đến hiệu quả năng lượng, hiệu quả xử lý và hiệu quả lưu trữ Trong kiến trúc client/server, các client thường xuyên truy vấn dữ liệu đến server làm tăng chi phí truyền thông, băng thông tăng, thời gian hồi đáp dài Vì vậy, người ta muốn các thiết bị di động chia sẻ cộng tác kho lưu trữ (cache) để giảm thời gian chờ và tăng khả năng lấy được dữ liệu trong một môi trường ít kết nối Về mặt năng lượng, các kiến trúc cũng cần có một cơ chế truy vấn, tổng hợp dữ liệu hiệu quả hơn
Nhiều công trình nghiên cứu đã đưa ra các chiến lược và kỹ thuật lưu trữ lại dữ liệu (caching) Các kỹ thuật xử lý, lưu trữ hiệu quả giúp tăng hiệu suất của mô hình cộng tác chia sẻ dữ liệu Từ đó giảm chi phí truyền thông giữa các client và server cũng như rút ngắn thời gian hồi đáp truy vấn dữ liệu
Do đó, trong đề tài này chúng tôi sẽ tìm hiểu về các vấn đề sau:
Về mặt lý thuyết: Nghiên cứu tìm hiểu các mô hình cộng tác chia sẻ dữ liệu trên môi trường di động
Về mặt ứng dụng: Chúng tôi hiện thực hóa một mô hình cộng tác chia sẻ dữ liệu trong môi trường cơ sở dữ liệu di động, cài đặt thử nghiệm thuật toán và đưa ra kết quả thực nghiệm cho bài toán
Trang 20Chương 1 - MỞ ĐẦU
1.1 Giới thiệu đề tài
Theo xu thế hiện nay, công nghệ thông tin (CNTT) đã trở thành một phần tất yếu trong cuộc sống CNTT hỗ trợ trong nhiều lĩnh vực như kinh tế, thương mại, dịch vụ, xã hội Với sự phát triển mạnh mẽ của kỹ thuật mạng không dây cùng với các loại thiết bị di động ngày càng hiện đại đã mang lại nhiều tiện ích cho người dùng trong việc trao đổi thông tin và dữ liệu Hệ thống thông tin di động được phát triển đầu tiên với kiến trúc mạng client/server Theo kiến trúc này, các máy khách (clients) sẽ kết nối đến một máy chủ (server) thông qua một giao thức nhất định (www, fpt, telnet, ) Mô hình mạng client/server có rất nhiều điểm ưu việt, nổi bật là mọi xử lý sẽ nằm trên server, do đó tránh cho các client những tính toán nặng nề Tuy nhiên, kiến trúc mạng client/server không còn phù hợp và gây ra nhược điểm khi số lượng máy khách tăng lên Lý do chính là khi số lượng máy khách tăng lên thì nhu cầu truy xuất dữ liệu và băng thông tăng, dẫn đến server giảm khả năng cung cấp dịch vụ cho các clients Đặc biệt trong môi trường mạng không dây kết nối yếu hoặc thường xuyên mất kết nối thì kiến trúc client/server này hoàn toàn không còn phù hợp nữa Để khắc phục các nhược điểm của kiến trúc client/server, các nhà khoa học đã nghiên cứu đưa ra một mô hình kiến trúc mới phù hợp trong môi trường
hệ thống thông tin di động, đó là mô hình cộng tác chia sẽ dữ liệu và thông tin giữa các clients với nhau để hạn chế việc truy xuất đến server
Đối với mô hình này các mobile user (MUs) có vai trò như nhau, mỗi MU đóng vai trò vừa là máy chủ vừa là máy khách Client là các thiết bị di động có khả năng
xử lý, lưu trữ Tuy nhiên các thiết bị di động hạn chế về năng lượng, khả năng tính toán và không gian lưu trữ thấp, vì vậy người ta muốn các thiết bị di động chia sẻ cộng tác kho lưu trữ (cache) Việc này nhằm giảm thời gian chờ và tăng khả năng lấy được dữ liệu trong một môi trường ít kết nối Với cơ chế này, kiến trúc đưa ra sẽ giải quyết được vấn đề quá tải do một số lượng lớn các clients truy xuất đến server, cũng như vấn đề clients vẫn hoàn toàn truy xuất được dữ liệu trong trường hợp máy chủ ngưng cung cấp dịch vụ do môi trường mất kết nối hoặc kết nối yếu Bên cạnh đó,
Trang 21kiến trúc có thể đem lại nhiều hiệu quả hơn trong việc khai thác, tận dụng nguồn tài nguyên sẵn có của tất cả các MUs trong hệ thống mạng, nhờ đó việc phân bổ lưu lượng thông tin khi cần một cách hợp lý để tránh tắc nghẽn trên mạng
Hiện nay hướng nghiên cứu này đang được xem là vấn đề nóng và thu hút, được nhiều sự quan tâm, đầu tư của các nhà nghiên cứu Đây cũng là lý do chúng tôi chọn nghiên cứu và thực hiện đề tại “Nghiên cứu kỹ thuật cộng tác kho dữ liệu lưu giữa các clients trong Hệ thống thông tin di động dựa trên kiến trúc P2P”
1.2 Mục tiêu đề tài
Trong bối cảnh môi trường di động hiện nay, các thiết bị di động hạn chế về năng lượng, khả năng tính toán và không gian lưu trữ Vì vậy, khi các thiết bị động truy vấn dữ liệu cần phải tính toán đến hiệu quả năng lượng, hiệu quả xử lý và hiệu quả lưu trữ Trong kiến trúc client/server, các client thường xuyên truy vấn dữ liệu đến server làm tăng chi phí truyền thông, băng thông tăng, thời gian hồi đáp dài Vì vậy, người ta muốn các thiết bị di động chia sẻ cộng tác kho lưu trữ (cache) để giảm thời gian chờ và tăng khả năng lấy được dữ liệu trong một môi trường ít kết nối Nhiều công trình nghiên cứu đã đưa ra các chiến lược và kỹ thuật lưu trữ lại dữ liệu (caching) Các kỹ thuật xử lý, lưu trữ hiệu quả giúp tăng hiệu suất của mô hình cộng tác chia sẻ dữ liệu Từ đó giảm chi phí truyền thông giữa các client và server cũng như rút ngắn thời gian hồi đáp truy vấn dữ liệu
Do đó, mục tiêu của chúng tôi đặt ra trong đề tài này là nghiên cứu tìm hiểu các
mô hình cộng tác chia sẻ dữ liệu cho hệ thống thông tin di động Sau đó, xây dựng và hiện thực hóa một kiến trúc hệ thống, cài đặt thử nghiệm để kiểm tra tính hiệu quả của kiến trúc
1.3 Hướng tiếp cận và giải quyết bài toán
Với mục tiêu đề tài như vậy, để giải quyết bài toán chúng tôi sẽ tìm hiểu lần lượt các công trình nghiên cứu về cộng tác chia sẻ dữ liệu giữa các thiết bị di động,
kỹ thuật lưu trữ lại (caching), kỹ thuật xử lý truy vấn (query processing), các vấn đề định tuyến (routing)… trong môi trường di động
Trang 22Một số công trình mà chúng tôi tìm hiểu như: “Caching and Query Processing
in MANETs” của tác giả Jinbao Li [7], “Cooperative caching in mobile ad hoc networks based on data utility” của tác giả Narottam Chanda [9], “An Improved Architecture for Complete Cache Management In Mobile Computing Environments” của tác giả G AnandHaraj [11]… Sau đó chúng tôi rút ra một số ưu điểm và khuyết điểm của từng kiến trúc, so sánh để xây dựng một kiến trúc hiệu quả trong môi trường thông tin di động
1.4 Nội dung đề tài
Với mục tiêu của đề tài đã đặt ra là nghiên cứu và tìm hiểu các mô hình cộng tác dữ liệu trong hệ thống thông tin di động, sau đó đề xuất một kiến trúc và cài đặt
để kiểm tra tính hiệu quả Nội dung luận văn được chia thành cấu trúc như sau:
Chương 1: Mở Đầu
Chương 2: Tổng Quan Về Các Mô Hình Cộng Tác Chia Sẻ Dữ Liệu Trong Môi Trường Di Động Trong chương này, chúng tôi sẽ giới thiệu một số mô hình cộng tác chia sẻ dữ liệu trong môi trường di động, các thuật toán quản lí và thay thế kho lưu trữ, thuật toán xử lý truy vấn phân tán Đồng thời tìm hiểu ý tưởng chính của các kĩ thuật lưu trữ trong môi trường di động
Chương 3: Kiến Trúc Hệ Thống Thông Tin Di Động Sử Dụng Mô Hình Cộng Tác Chia Sẻ Dữ Liệu Trong chương này, chúng tôi sẽ tìm hiểu đề xuất một kiến trúc hệ thống thông tin di động hiệu quả vận dụng mô hình cộng tác chia sẻ dữ liệu
Chương 4: Cài Đặt Thử Nghiệm Trong chương này, chúng tôi sẽ cài đặt thử nghiệm kiến trúc đã đề xuất ở chương 3 để kiểm tra tính hiệu quả
Chương 5: Kết Quả Thử Nghiệm Trong chương này, chúng tôi trình bày các kết quả thực nghiệm mà chúng tôi đã cài đặt và so sánh các kết quả này với các công trình khác để kiểm tra tính hiệu quả
Chương 6: Tổng Kết Trong chương này chúng tôi sẽ tóm tắt các vấn đề đã đạt được, những vấn đề còn tồn tại và hướng phát triển trong tương lai
Chúng em đã cố gắng để hoàn thành luận văn ở mức tốt nhất Tuy nhiên, do kinh nghiệm nghiên cứu còn non trẻ và thời gian làm luận văn hạn chế nên luận văn có thể
Trang 23còn nhiều thiếu sót Chúng em xin chân thành cảm ơn và trân trọng những ý kiến đóng góp của Thầy Cô và các bạn để hoàn thiện luận văn hơn
Trang 24Chương 2 - TỔNG QUAN VỀ MÔ HÌNH CỘNG TÁC CHIA SẺ DỮ LIỆU TRONG MÔI TRƯỜNG DI ĐỘNG
2.1 Giới thiệu mô hình cộng tác chia sẻ dữ liệu
Với mục tiêu nghiên cứu, tìm hiểu về các mô hình cộng tác chia sẻ dữ liệu trong môi trường hệ thống thông tin di động như được trình bày ở chương 1, trong chương này chúng tôi sẽ trình bày tổng quan về các mô hình cộng tác dữ liệu cũng như trình bày các hiện trạng nghiên cứu của các bài báo về kiến trúc này Bên cạnh đó chúng tôi cũng đưa ra bảng so sánh các kiến trúc của các nhà nghiên cứu, đồng thời rút ra kết luận và hiện thực hóa kiến trúc đã đề ra
Ở phần 2.1, chúng tôi trình bày các khái niệm tổng quan về mô hình cộng tác dữ liệu trong hệ thống thông tin di động Trong phần 2.2, chúng tôi trình bày về một số
kỹ thuật lưu trữ, chia sẻ, và truy vấn dữ liệu được áp dụng trong mô hình cộng tác dữ liệu trên môi trường hệ thống thông di động Một số kỹ thuật này được chúng tôi áp dụng trong kiến trúc đề xuất được trình bày trong chương 3 Ở phần 2.3 và 2.4, chúng tôi trình bày hiện trạng nghiên cứu của các bài báo về mô hình cộng tác dữ liệu và so
sánh đánh giá các giải pháp trong mỗi bài báo đưa ra
2.1.1Định nghĩa mô hình cộng tác chia sẻ dữ liệu
Đối với mô hình này các mobile user (MUs) có vai trò như nhau, mỗi MU đóng vai trò vừa là máy chủ vừa là máy khách Client là các thiết bị di động có khả năng xử
lý, lưu trữ Tuy nhiên các thiết bị di động hạn chế về năng lượng, khả năng tính toán
và không gian lưu trữ thấp, vì vậy người ta muốn các thiết bị di động chia sẻ cộng tác kho lưu trữ (cache) Việc này nhằm mục đích giảm thời gian chờ và tăng khả năng lấy được dữ liệu trong một môi trường ít kết nối Với cơ chế này, kiến trúc đưa ra sẽ giải quyết được vấn đề quá tải do một số lượng lớn các clients truy xuất đến server, cũng như vấn đề clients vẫn hoàn toàn truy xuất được dữ liệu trong trường hợp máy chủ ngưng cung cấp dịch vụ do môi trường mất kết nối hoặc kết nối yếu Bên cạnh đó, kiến trúc có thể đem lại nhiều hiệu quả hơn trong việc khai thác, tận dụng nguồn tài
Trang 25nguyên sẵn có của tất cả các MUs trong hệ thống mạng, nhờ đó việc phân bổ lưu lượng thông tin khi cần một cách hợp lý để tránh tắc nghẽn trên mạng
Khái niệm cộng tác chia sẻ dữ liệu ngày nay cải tiến theo nhiều mục đích sử dụng khác nhau, không chỉ tối ưu kho lưu trữ giữa các thiết bị di động mà còn giảm tải băng thông truy xuất đến server, đặc biệt trong mô hình mạng có nhiều client với tần suất
truy vấn dữ liệu cao
2.1.2Ưu điểm của mô hình cộng tác chia sẻ dữ liệu
Nhờ việc chia sẻ kho lưu trữ giữa các thiết bị di động, mô hình cộng tác này giảm thiểu thời gian chờ hồi đáp truy vấn dữ liệu và tăng khả năng lấy được dữ liệu trong một môi trường ít kết nối Về mặt năng lượng, các kiến trúc với cơ chế truy vấn, tổng hợp dữ liệu hiệu quả hơn đã giúp giảm chi phí truyền thông giữa các client và server
2.2 Các chiến lược quản lý và thay thế kho lưu trữ trong mô hình cộng tác
Với những ứng dụng trong môi trường không dây và các thiết bị di động, chúng ta
sẽ gặp phải các khó khăn về quản lý dữ liệu, ví dụ như không đảm bảo được tính nhất quán dữ liệu, không tận dụng được không gian lưu trữ toàn cục …Trong phần này, chúng tôi trình bày ý nghĩa của các kĩ thuật quản lý kho lưu trữ, chia sẻ, và truy vấn
dữ liệu đã được nghiên cứu sử dụng trong hệ thống thông tin di động
2.2.1Thuật toán thay thế (Replacement Algorithm)
Thuật toán thay thế được sử dụng để quyết định dữ liệu nào sẽ bị xóa khi kho lưu trữ đầy, để dành chỗ cho một đơn vị dữ liệu mới Khi thêm một đơn vị dữ liệu mới, thuật toán thay thế sẽ chọn đơn vị dữ liệu đã tồn tại có độ ưu tiên thấp nhất trong kho lưu trữ và tiến hành thay thế với đơn vị dữ liệu mới Mỗi thuật toán sẽ có một phương pháp để định độ ưu tiên khác nhau và được phân thành hai nhóm tư tưởng chính:
2.2.1.1Thuật toán dựa trên vùng nhớ tạm (Temporal Locality Based Algorithm)
Các thuật toán thuộc nhóm này như LRU (Least Recently Used) Ý tưởng chính của thuật toán là ghi nhận thời điểm cuối cùng truy cập của một đơn vị dữ liệu để
Trang 26chọn thay thế đơn vị dữ lâu nhất chưa được truy cập Do đó nhân tố chính để quyết định thay thế chính là tần suất truy xuất
2.2.1.2Thuật toán dựa trên lợi ích (hoặc dựa trên chi phí):
LUV (Least Utility Value) [9], LRV (Least Relevant Value) [11] Thuật toán này chọn đối tượng có giá trị LUV hoặc LRV thấp nhất để thay thế Các giá tri này được tính dựa trên tần suất truy cập dữ liệu, khoảng cách, kích thước mục dữ liệu,…
2.2.2Chiến lược nhất quán kho lưu trữ
Mỗi đơn vị dữ liệu trong kho lưu trữ sẽ được gán một giá trị TTL [9], [11], giá trị này có thể ước lượng dựa trên lịch sử cập nhật của đơn vị dữ liệu đó Ví dụ, chúng ta ước lượng giá trị TTL dựa trên tuổi của mỗi đơn vị dữ liệu Khi người dùng yêu cầu đơn vị dữ liệu x, nếu thời gian cư trú của đơn vị dữ liệu x đã vượt quá giá trị TTL của
nó thì MU nguồn sẽ gửi một thông điệp đến máy chủ Dựa vào sự hồi đáp của MU dữ liệu, MUnguồn có thể lấy một bản sao của x từ MUdữ liệu hoặc chỉ dùng bảng sao đã lưu trữ để trả lời yêu cầu (nếu đơn vị dữ liệu x không có bổ sung kể từ lần cuối cùng được lưu trữ lại)
2.2.3Chiến lược điều phối truy vấn và tổng hợp dữ liệu
Ý tưởng chính của chiến lược này là chọn lựa và yêu cầu các nút lân cận được chọn tổng hợp giúp các hạng mục dữ liệu Quá trình này nhằm giúp sử dụng hiệu quả năng lượng các nút trong mạng, giảm thời gian, chi phí truy vấn dữ liệu Việc chọn lựa nút tổng hợp dữ liệu dựa trên chi phí tổng hợp dữ liệu các nút ứng viên, từ đó đưa
ra kế hoạch truy vấn thích hợp và hiệu quả [7]
Trong phần tiếp theo chúng tôi sẽ trình bày hiện trạng về các công trình nghiên cứu đã được đề xuất
2.3 Sơ lược các công trình nghiên cứu về cộng tác chia sẻ dữ liệu
2.3.1Dẫn nhập
Trong mô hình mạng client (hay còn gọi MU) – base station (hay còn gọi là BS) – server, các client thường xuyên truy vấn dữ liệu đến server làm tăng chi phí truyền thông, băng thông tăng, thời gian hồi đáp dài Vì vậy, người ta muốn các thiết bị di
Trang 27động cộng tác chia sẻ kho lưu trữ để giảm thời gian chờ và tăng khả năng lấy được dữ liệu trong một môi trường ít kết nối Về mặt năng lượng, các kiến trúc cũng cần có một cơ chế truy vấn, tổng hợp dữ liệu hiệu quả hơn
Trong mô hình cộng tác chia sẻ dữ liệu, các MU là thiết bị di động có thể truyền thông và trao đổi chia sẻ dữ liệu với nhau Tuy nhiên các thiết bị di động này có một
số hạn chế như: bộ nhớ lưu trữ thấp, năng lượng thấp, tốc độ xử lý chậm Bên cạnh
đó, các thiết bị di động có khả năng di chuyển dẫn đến khả năng thay đổi mô hình mạng và khả năng mất kết nối giữa các thiết bị thường xuyên xảy ra Vì thế đã có nhiều công trình nghiên cứu đề ra các kỹ thuật lưu trữ, truy vấn hiệu quả trong mô hình cộng tác trên hệ thống di động, chúng tôi sẽ trình bày trong phần tiếp theo
Trong hệ thống thông tin di động ngày nay, các nhà khoa học đã đưa ra một mô hình cộng tác chia sẻ dữ liệu được ứng dụng cho các thiết bị di động Các thiết bị di động thường có bộ nhớ thấp, điều này đã làm cho khả năng lưu trữ của các MU bị hạn chế
Nhóm tác giả của bài báo [J.Li_2005] [7] đề ra chiến lược xử lý truy vấn dựa trên
cơ chế quản lý dữ liệu theo nhóm để rút ngắn thời gian truy xuất dữ liệu giữa các MU Với chiến lược này thì chi phí giao tiếp giữa các MU được rút ngắn và hiệu quả hơn Trong môi trường di động, các MU thường xuyên di chuyển, khả năng mất kết nối xảy
ra cao, do đó nhóm tác giả của bài báo [N.Chand_2007][9], [G.AnandHaraj_2009] [3]
đã nghiên cứu các vấn đề về quản lý kho lưu trữ với bốn vấn đề chính: lưu trữ, khám phá, thay thế và nhất quán kho lưu trữ Việc thay thế kho lưu trữ dựa vào các tham số tần suất truy cập, khoảng cách, kích thước mục dữ liệu,…để tăng hiệu quả quản lý kho lưu trữ
2.3.2Kiến trúc MIX
Để giải quyết hiệu quả việc chia sẻ dữ liệu giữa các MUs trong vùng cộng tác nhằm hỗ trợ việc truy xuất dữ liệu, hai sinh viên Phạm Minh Tú – Hồ Lê Thị Kim Nhung đã đề xuất kiến trúc MIX trong luận văn cử nhân tháng 03/2010 [12] Trong quá trình tìm nghiên cứu để đề xuất kiến trúc MIX, nhóm tác giả đã tìm hiểu các công trình “Caching and Query Processing in MANETs” của tác giả Jinbao Li, đưa ra giải pháp lưu trữ và thay thế dữ liệu theo nhóm, công trình “Improving On-Demand Data
Trang 28Access Efficiency in MANETs with Cooperative Caching” của tác giả Yu Du, đề xuất
ra một lược đồ cộng tác cho các ứng dụng truy xuất dữ liệu trong mạng P2P, chia các
MU theo vùng, từ đó sẽ tìm kiếm dữ liệu yêu cầu theo vùng…
Kiến trúc gồm các phần chính như sau: máy chủ (server), base station (BS), và các thiết bị di động (MU)
Server: là nơi quản lý toàn bộ dữ liệu của hệ thống và cung cấp dữ liệu cho các BSs
BS: là nơi lưu trữ và cung cấp dữ liệu cho các thiết bị di động trong phạm vi của nó Phạm vi của BS là vùng diện tích mà BS có thể giao tiếp được với thiết bị di động thông qua mạng vô tuyến Dữ liệu của
BS được cung cấp bởi Server thông qua mạng hữu tuyến
MU: là các thiết bị di động có khả năng xử lý thông tin như PDA, Laptop… Hoạt động của các MU được chia thành nhiều vùng, mỗi vùng chứa một số MU, mỗi MU có thể trao đổi thông tin, dữ liệu với
MU khác trong cùng vùng hoạt động của nó Các MU có thể truy xuất
dữ liệu từ BSs nó kết nối được hoặc từ các MUs khác thông qua đường định tuyến (routing) Liên lạc giữa các BSs và MUs cũng như giữa các MUs thông qua mạng vô tuyến
Hình 2-1 Mô hình kiến trúc hệ thống
Trang 292.3.2.1Phương thức hoạt động
Nguyên lý hoạt động của kiến trúc được minh họa ở Hình 2-1: Người dùng sử dụng các thiết bị di động (MU) để tìm kiếm dữ liệu Khi yêu cầu được phát ra, việc tìm kiếm dữ liệu sẽ được thực hiện tìm kiếm cục bộ tại chính kho dữ liệu cục bộ, nếu
dữ liệu không được tìm thấy tại kho lưu trữ cục bộ mới được gởi yêu cầu đến các MUs khác trong vùng hoặc đến BS để được hồi đáp Nếu dữ liệu không được tìm thấy tại MUs lân cận thì yêu cầu sẽ được gửi đến BS Tất cả các MUs liên lạc đều thông qua mạng vô tuyến
Hình 2-2 Nguyên lý hoạt động của kiến trúc
Trong Hình 2-2, tác giả định nghĩa các thành phần trong kiến trúc đề xuất như sau: Nút vùng là các MUs giao tiếp với nhau trong phạm vi bán kính truyền thông của MU, nút mạng là các MUs giao tiếp với nhau thông qua MU trung gian(getways) Ví dụ như trong Hình 2-2, MU2 có các nút vùng là MU3, MU4, MU9, MU6, các nút mạng là
MU1, MU11,MU5,MU7
2.3.2.2Kiến trúc và nguyên lý hoạt động
Trong kiến trúc các MUs có thể liên lạc với nhau thông qua mạng vô tuyến và mỗi
MU gồm có ba lớp xử lý chính: User Application, Middleware và Network Protocol được thể hiện ở Hình 2-3
Trang 30Hình 2-3 Kiến trúc tại MU
Lớp User Application có nhiêm vụ nhận yêu cầu dữ liệu của người dùng, chuyển yêu cầu đến lớp Middleware xử lý, sau đó trả kết quả về cho người dùng Người dùng không cần biết về kiến trúc mạng, trạng thái mô hình mạng, phương thức xử lý của lớp Middleware, người dùng nhận kết quả trả về như là một MU cục bộ Lớp Middleware có nhiệm vụ nhận yêu cầu dữ liệu từ lớp User Application, lớp này được chia thành ba lớp con: Caching Process, Zone Process, Routing Process Lớp Network Protocol có nhiệm vụ giao tiếp và truyền thông tin, dữ liệu giữa các thành phần trong
hệ thống Kiến trúc chi tiết của các lớp được minh họa ở Hình 2-4
Hình 2-4 Mô hình kiến trúc MIX
Trong Hình 2-4, nguyên lý hoạt động của kiến trúc này được thể hiện: trước tiên
MU sẽ tìm dữ liệu tại bộ nhớ cục bộ được xử lý tại lớp Caching Process, nếu dữ liệu
Trang 31được tìm thấy, kết quả sẽ trả về cho người dùng Ngược lại, MU này gởi yêu cầu đến các MUs trong vùng được xử lý tại lớp Zone Process Nếu dữ liệu được tìm thấy tại các MUs trong vùng của nó, nó sẽ nhận kết quả trả về từ các MUs trong vùng của nó,
nó sẽ nhận kết quả trả về từ người dùng Nếu dữ liệu không được tìm thấy, nó sẽ gửi yêu cầu dữ liệu đến các MUs xa hơn, được gọi là các nút mạng
Lớp Caching Process: Mỗi MU có một bộ nhớ cục bộ (Local Cache - LC) để lưu trữ dữ liệu, khi một hạng mục dữ liệu được thêm vào LC, lớp này xử lý thay thế dữ liệu khi cache bị đầy dựa trên thuật toán LRU1 Trong LC, tác giả chia thành hai loại đơn vị dữ liệu được lưu trữ: dữ liệu chính (Primary Data - PD) và dữ liệu phụ(Secondary Data - SD), trong đó PD có độ ưu tiên cao, SD có độ ưu tiên thấp hơn Khi có một hạng mục dữ liệu mới được thêm vào cache, SD có độ ưu tiên thấp nhất sẽ
bị loại bỏ và hạng mục dữ liệu mới sẽ được thêm vào PD được thay thế giá trị mới khi giá trị TTL2 của nó không còn hợp lệ
Lớp Zone Process: Nếu dữ liệu không được tìm thấy trong LC, MU sẽ gởi yêu cầu tìm dữ liệu đến các MUs khác trong vùng Lớp Zone Process có hai module “RRT” và
“IDNeighs” Mục tiêu của bảng RRT là cho biết MU nào có dữ liệu yêu cầu, khi đó
MU nguồn sẽ truy xuất đến MU đó để lấy dữ liệu, tránh tình trạng loang hết (loang mù) đến các MUs khác trong vùng Trong bảng IDNeighs ghi nhận các MUs trong vùng của MU nguồn Khi dữ liệu yêu cầu không có trong RRT của MU nguồn thì MU nguồn sẽ gửi dữ liệu yêu cầu đến các nút trong vùng của nó
Lớp Routing Process: Khi MU không tìm thấy dữ liệu yêu cầu (Request Data - RD) tại các MUs khác trong vùng, MU sẽ gởi yêu cầu đến các MUs trong mạng Trong kỹ thuật định tuyến, để một MU có thể đi đến các MUs khác trong mạng, đường định tuyến sẽ chọn và lưu lại trong MU trung gian nào có nhiều MU khác trong vùng của nó nhất trong đường định tuyến Kỹ thuật này làm tăng khả năng tìm thấy dữ liệu với số bước nhảy ít nhất Trong quá trình dựa vào định tuyến để đến các MUs để lấy dữ liệu, nếu tổng số bước nhảy lớn hơn R (R là bán kính ràng buộc số bước nhảy
Trang 32cho mỗi MU) thì việc tìm dữ liệu sẽ được dừng lại và yêu cầu của MU sẽ được gởi đến BS để yêu cầu dữ liệu Quá trình xử lý được minh họa ở Hình 2-5
Hình 2-6 Xử lý Route Discovery Phase
Trang 33Trong giai đoạn Route Selection Phase: Nhiệm vụ của module này là tìm MUj có
số nút mạng lớn nhất và gửi yêu cầu dữ liệu dựa vào những thông tin lưu tại Route Cache
2.3.3Kỹ thuật lưu trữ theo nhóm và truy vấn tổng hợp dữ liệu phân tán
Bài báo [7] - [Group-Caching] của nhóm tác giả J.Li trình bày năm 2005 đã được được đề cập trong luận văn [12] – [MIX_2010] Nếu như luận văn [12] chỉ quan tâm đến các kỹ thuật gom nhóm và chiến lược lưu trữ nhóm thì chúng tôi muốn đề cập thêm về kỹ thuật truy xuất dữ liệu dựa trên chiến lược lưu trữ nhóm Kỹ thuật này giúp hệ thống có thể truy vấn dữ liệu phân tán và tối ưu hóa về thời gian, tốc độ xử lý Các MU có thể đưa ra kế hoạch truy vấn dựa trên việc quản lý chi phí truy vấn Chi tiết về kỹ thuật này, chúng tôi sẽ trình bày phần tiếp theo sau đây
2.3.3.1Kế hoạch truy vấn dữ liệu tại một MU dựa trên chiến lược lưu trữ nhóm
Dựa vào chiến lược lưu trữ nhóm – đã được trình bày trong hiện trạng của tài liệu [12], các MU đưa ra kế hoạch truy vấn giữa các kho dữ liệu chia sẻ trong và ngoài nhóm Một truy vấn đơn giản tại một bảng trong MU được thể hiện như sau:
SELECT Node.Table.Attr1, Node.Table.Attr2,
FROM Node.Table
WHERE <Điều kiện>
Sau khi nhận một lệnh truy vấn từ người dùng, MU được yêu cầu – được gọi là
MU truy vấn sẽ tiến hành phân tích câu truy vấn và khởi tạo một kế hoạch truy vấn Dựa trên chiến lược lưu trữ nhóm, kết quả trả về có thể là dữ liệu cục bộ của chính
MU truy vấn, dữ liệu từ MU khác được lưu trữ tại MU truy vấn hoặc tại kho lưu trữ nhóm, hoặc dữ liệu phải lấy trực tiếp từ MU khác
Chi tiết thuật toán được nhóm tác giả đề cập theo Bảng 2-1 như sau:
1 Nếu MU truy vấn nhận được một truy vấn
o NẾU là truy vấn cục bộ, MU sẽ tìm kiếm trong kho
dữ liệu cục bộ
o NGƯỢC LẠI
Kiểm tra chỉ mục lưu trữ cục bộ và xác định tập
Trang 34dữ liệu thỏa điều kiện truy vấn (tập so khớp)
Chuyển đến MU chủ câu truy vấn mà tập so khớp không tồn tại trong kho lưu trữ cục bộ
2 NẾU MU chủ nhận được truy vấn
o NẾU MU có lưu trữ dữ liệu (MU dữ liệu) thuộc nhóm thì gửi truy vấn đến MU dữ liệu
o NGƯỢC LẠI, tìm kiếm chỉ mục trong kho lưu trữ nhóm, xác định tập con dữ liệu thỏa điều kiện truy vấn và được lưu trữ trong những MU thuộc nhóm
o Khởi tạo một truy vấn con từ truy vấn ban đầu và tương ứng với tập con dữ liệu trong bước trên
o Gửi truy vấn con vừa khởi tạo đến MU thành viên lưu trữ tập dữ liệu con trong truy vấn
3 NẾU MU dữ liệu nhận được truy vấn
o Thực thi câu truy vấn trong dữ liệu cục bộ hoặc trong chỉ mục lưu trữ cục bộ của nó
o Gửi kết quả của truy vấn con này đến MU truy vấn
4 MU truy vấn nhận được tất cả kết quả của các truy vấn con từ những MU khác và lấy kết quả cuối cùng
Bảng 2-1 Thuật toán truy vấn tại một MU trong Group-Caching based Query
đọc của đĩa, V net là tốc độ đường truyền không dây
Xem r S là kích thước dữ liệu có thể lấy từ kho lưu trữ nhóm cho một truy vấn, r
S Vdisk là thời gian để đọc dữ liệu từ đĩa Trong chiến lược lưu trữ nhóm của bài báo này, khoảng cách tối đa giữa hai MU trong cùng nhóm là hai bước nhảy Do đó nếu kết quả truy vấn được lấy từ chỉ mục trong kho lưu trữ nhóm, thì thời gian tối đa để
truyền dữ liệu giữa hai MU cùng nhóm là 2 r S V net Tương tự với việc truyền kết
quả giữa MU dữ liệu và MU truy vấn, xem (1 – r) S là kích thước tập kết quả có thể lấy từ MU dữ liệu, (1 – r) S V disk là thời gian để đọc dữ liệu từ đĩa và (1 – r) S V net
Trang 35D là thời gian truyền dữ liệu Như vậy thời gian đáp ứng cho truy vấn tại một MU
được tính như sau:
r S Vdisk + 2 r S V net + (1 – r) S V disk + (1 – r) S V net D
Với giả thiết là tốc độ đọc đĩa rất nhanh so với tốc độ truyền, công thức trên được thu gọn thành:
2 r S Vnet + (1 – r) S V net D
Nếu không sử dụng chiến lược lưu trữ lại những dữ liệu từ MU khác, thời gian đáp
ứng truy vấn sẽ là S V net D Vậy tỉ lệ giữa việc có và không sử dụng kho lưu trữ sẽ
là (1 – r + (2r/D))
Trong bài báo [7] – [Group-Caching], các tác giả đã đưa ra các phép toán so sánh hiệu quả của việc sử dụng kho lưu trữ theo nhóm so với việc không sử dụng kho lưu trữ Tuy nhiên nhóm tác giả chưa đưa ra cấu trúc cụ thể cho kỹ thuật này, cũng như các biện pháp giải quyết lỗi phát sinh (nếu có), như là dữ liệu không tìm thấy trong nhóm và ở các nhóm khác thì sẽ giải quyết như thế nào Hơn nữa, các MU trong nhóm phụ thuộc vào MU chủ nhưng với môi trường mạng không dây tùy biến cao, rất
dễ xảy ra các trường hợp MU chủ bị mất kết nối hoặc có mức năng lượng thấp làm ảnh hưởng đến lưu trữ của các nhóm Tác giả vẫn chưa đưa ra cách thức để tái cấu trúc các nhóm khi cấu trúc mạng thay đổi Phần tiếp theo, nhóm tác giả đề xuất vấn đề truy vấn dữ liệu tại nhiều MU dựa trên chiến lược lưu trữ nhóm
2.3.3.2Xây dựng kế hoạch truy vấn dữ liệu tại nhiều MU dựa trên chiến lược lưu trữ nhóm
Trong chiến lược lưu trữ nhóm, nhóm tác giả bài báo [7] – [Group-Caching] quan tâm đến việc xây dựng kế hoạch truy vấn dữ liệu trên nhiều MU nhằm mục đích tối ưu chi phí truy vấn
Trong hệ thống dữ liệu phân tán di động, chi phí truy vấn thường được xác định dựa vào chi phí truyền thông, kích thước dữ liệu truyền, khoảng cách đường truyền, và năng lượng của MU Bài báo giả lập rằng khả năng truy vấn và khả năng truyền thông trong mạng không dây của tất cả MU là như nhau Trong mạng tùy biến không dây, chi phí truyền thông là chi phí chính, được xác định dựa trên đường định tuyến, băng
Trang 36thông, và khả năng truyền thông Các tác giả trình bày công thức để xác định chi phí truy vấn Q như sau:
MU truy vấn, hai là đợi kết quả từ MU dữ liệu còn lại gửi đến để tổng hợp trước khi gửi về MU truy vấn, hoặc ba là gửi trực tiếp kết quả về để MU truy vấn tự xử lý Các
MU dữ liệu sẽ chọn lựa giải pháp có chi phí truy vấn tối ưu nhất
Chi tiết thuật toán cụ thể được mô tả theo Bảng 2-2 bên dưới:
1 MU truy vấn gửi câu truy vấn đến hai MU dữ liệu
2 Sau khi MU dữ liệu chấp nhận truy vấn:
o Thực thi câu truy vấn với danh sách thuộc tính và điều kiện chọn ứng với bộ nhớ cục bộ
o Tính khoảng cách từ MU dữ liệu đến MU truy vấn (Own_D) và kích thước tập kết quả của truy vấn con trên dữ liệu cục bộ (Own_S)
o Gửi Own_D và thông tin về tập kết quả của truy vấn con (Info) đến MU dữ liệu còn lại
3 Sau khi MU dữ liệu nhận được thông tin khoảng cách Other_D và kết quả truy vấn con Info từ MU dữ liệu kia gửi đến:
o Tính khoảng cách từ chính nó đến các MU dữ liệu còn lại (Between_D), tính Join_S là kích thước dữ liệu sau khi kết tập kết quả
Trang 37cục bộ và tập kết quả từ MU dữ liệu kia gửi đến (Info)
o Đề xuất ba chọn lựa tổng hợp kết quả truy vấn con và mẫu chi phí cho mỗi trường hợp:
P1: cả hai MU dữ liệu chuyển kết quả của truy vấn con về cho MU truy vấn tự tổng hợp
Q1 = Own_S * Own_D + Other_S * Other_D
P2: MU dữ liệu hiện tại gửi kết quả đến MU dữ liệu còn lại MU dữ liệu còn lại tổng hợp dữ liệu và trả kết quả cuối cùng về cho MU truy vấn
Q2 = Own_S * Between_D + Join_S*OtherD
P3: MU dữ liệu còn lại gửi kết quả đến
MU dữ liệu hiện tại Mu hiện tại sẽ tự tổng hợp và gửi kết quả cuối cùng về
MU truy vấn Q3 = Other_S*Between_D + Join_S*Own_D
o Trường hợp tương ứng với Q nhỏ nhất sẽ được chọn
Nếu P1 được chọn, MU dữ liệu chuyển kết quả về MU truy vấn
P2 đươc chọn, MU dữ liệu chuyển kết quả về cho MU dữ liệu còn lại
P3 được chọn, đợi kết quả từ MU dữ liệu còn lại chuyển tới
4 NẾU MU dữ liệu nhận thành công kết quả truy vấn con từ MU dữ liệu còn lại:
o Thực hiện phép kết giữa kết quả truy vấn con cục bộ với kết quả truy vấn con vừa nhận được
o Đóng gói kết quả cuối cùng, gửi về MU truy vấn
Trang 385 Nếu MU truy vấn nhận được gói tin kết quả từ MU dữ liệu, xuất kết quả cho người dùng
6 Nếu MU nguồn chấp nhận hai kết quả của truy vấn con từ MU dữ liệu, thực hiện phép kết giữa hai kết quả truy vấn con Sau đó, xuất kết quả cho người dùng.
Bảng 2-2 Thuật toán truy vấn tại nhiều MU trong Group-Caching based Query
Trang 39nhớ, thiếu hụt băng thông, và tính di động của các MU trong mạng thực sự là một thử thách trong việc quản lý kho lưu trữ Trong bài báo [9] – [LUV], các tác giả đề xuất
giải pháp Least Utility Value (LUV) để thay thế hạng mục dữ liệu trong kho lưu trữ
Giải pháp nhằm tăng khả năng tồn tại dữ liệu trong bộ nhớ cục bộ Chúng tôi sẽ trình bày chi tiết trong phần tiếp theo
2.3.4Chiến lược thay thế cache với giá trị LUV
Chiến lược thay thế hạng mục dữ liệu trong kho lưu trữ được sử dụng khi MU cần
bổ sung một hạng mục dữ liệu mới vào kho lưu trữ, nhưng kho lưu trữ đã đầy Do đó,
để thực hiện việc thêm hạng mục dữ liệu mới, MU phải quyết định loại bỏ một số hạng mục dữ liệu hiện có Trong mạng tùy biến không dây, các thuật tóan thay thế trong kho lưu trữ còn gặp phải những vấn đề sau đây: phải xử lý thay thế dữ liệu được với kích thước dữ liệu thay đổi vì kích thước hạng mục dữ liệu trong mạng tùy biến không dây có thể không cố định; thời gian truyền dữ liệu có thể phụ thuộc vào kích thước dữ liệu và khoảng cách truyền nhận giữa hai MU, do đó tỉ lệ lưu trữ thành công
có thể không phải là thước đo chinh xác duy nhất trong chiến lược thay thế dữ liệu
Trong bài báo [9] – [LUV], nhóm tác giả đề xuất giải pháp Least Utility Value (LUV)
Theo đó, các hạng mục dữ liệu sẽ bị loại bỏ khỏi kho lưu trữ nếu có giá trị utility thấp nhất Việc tính toán giá trị utility được dựa trên bốn tham số: xác suất truy cập, khoảng cách, nhãn thời gian, và kích thước dữ liệu Cụ thể việc tính toán bốn tham số
và utility được trình bày như sau:
Xác suất truy cập (A):
Tham số này được sử dụng nhằm ý nghĩa những hạng mục có xác suất truy cập ít nhất trong kho lưu trữ sẽ được chọn để loại bỏ Để xác định xác suất Aicủa một hạng mục dữ liệu di được truy xuất trong tổng số lần truy xuất đến tất
cả các hạng mục dữ liệu tại MU đang xét, các tác giả trình bày công thức:
Ai = ai / (a1 + a2 + … + ai)
Trong đó, ai là tần suất truy cập của hạng mục dữ liệu di ai được ước lượng
là tần suất truy cập trong K lần truy cập gần nhất Hệ thống duy trì nhãn thời gian của K lần truy cập gần nhất (ts
Trang 40 Kích thước dữ liệu (sz):
Những hạng mục dữ liệu có kích thước lớn hơn sẽ được “ưu tiên” thay thế
để nhường chỗ cho các hạng mục dữ liệu khác nhỏ hơn Việc này nhằm mục đích tăng số lượng hạng mục dữ liệu được lưu trữ, cũng đồng nghĩa với việc tăng số lượng yêu cầu dữ liệu mà MU sẽ đáp ứng được
Dựa trên những tham số được xác định như trên, giá trị utilityi của hạng mục diđược tính toán theo công thức sau:
Utilityi = Ai.dti.TTLi / szi
Chiến lược thay thế kho lưu trữ theo giá trị LUV trong bài báo [9] – [LUV] giúp tăng khả năng truy cập thành công kho lưu trữ và hạn chế độ trễ truy vấn Cũng nhằm mục đích giảm thiểu độ trễ, giảm tải mạng, và hạn chế sự phụ thuộc của MU vào server, bài báo [11] – [CCCM] đề xuất một kiến trúc cộng tác chia sẻ kho lưu trữ Chi tiết về kiến trúc này sẽ được chúng tôi trình bày ngay sau đây