TRƯỜ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
TRƯỜ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
i
LỜ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
ii
Khoa 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:
Điện thoại: 0902054500
Lê Thị Thanh Thúy
MSSV: 0612440
Email:
Đ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
iii
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 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
iv
giả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:
Về mặt lý thuyết:
o Nghiên cứu mô hình cộng tác chia sẻ dữ liệu trong hệ thống thông tin di
động
o Đề xuất mô hình truy vấn đa dữ liệu cho hệ thống thông tin di động có áp
dụng kiến trúc P2P và xây dựng giải pháp, thuật toán để hiện thực hóa
mô hình
Về mặt ứng dụng:
o Cài đặt và đánh giá hiệu quả giải pháp đã đề nghị.
o Ứng dụng minh họa
Kế hoạch thực hiện:
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
v
cá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.
Xác nhận củ
a GVHD
Th.S Nguyễn Trầ
n Minh Thư
Ngày tháng năm 2010
SV thực hiện
La Phương Thanh – Lê Thị Thanh Thúy
vi
MỤ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
vii
2.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
viii
3.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
ix
4.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
x
5.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
xi
5.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
xii
DANH 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
xiii
Hì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
xiv
DANH 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
xv
Bả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
xvi
Bả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
xvii
TÓ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.
1
Chươ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 đó,
2
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
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.
3
Mộ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ể
4
cò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.
5
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
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
6
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.
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 để