Bảng ký hiệu và thuật ngữ viết tắt 2G Thế hệ di động thứ 2 Second Generation 3G Thế hệ di động thứ 3 Third Generation CDC Định dạng nối với thiết bị Connected Device Configuration CDMA Đ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Đăng Thắng
NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ
ĐỒNG BỘ DỮ LIỆU TRÊN THIẾT BỊ CẦM TAY
LUẬN VĂN THẠC SĨ
Hà Nội – 2009
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Đăng Thắng
NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ
ĐỒNG BỘ DỮ LIỆU TRÊN THIẾT BỊ CẦM TAY
Ngành : Công nghệ Thông tin
Chuyên ngành : Hệ thống Thông tin
Trang 3MỤC LỤC
Trang
Trang phụ bìa
Lời cam đoan i
Mục lục ii
Bảng ký hiệu và thuật ngữ viết tắt iv
Danh mục hình vẽ vi
MỞ ĐẦU 1
Chương 1: TỔNG QUAN VỀ ĐỒNG BỘ DỮ LIỆU 3
1.1 CÁC KHÁI NIỆM 3
1.2 ĐỒNG BỘ DỮ LIỆU 8
1.2.1 Khái niệm Đồng bộ dữ liệu 8
1.2.2 Các kiểu đồng bộ 9
1.2.3 Các vấn đề của đồng bộ dữ liệu 13
1.3 ĐỒNG BỘ DỮ LIỆU OMA-SYNCML 17
1.3.1 Tổng quan 17
1.3.2 Đồng bộ dữ liệu OMA-SyncML 19
1.3.3 Ứng dụng của đồng bộ dữ liệu OMA-SyncML 20
1.4 CÁC CÔNG NGHỆ LIÊN QUAN 21
1.4.1 Ngôn ngữ XML 21
1.4.2 Ngôn ngữ WML 23
1.4.3 Giao thức WAP 24
Chương 2 KIẾN TRÚC VÀ GIAO THỨC CỦA ĐỒNG BỘ DỮ LIỆU OMA – SYNCML 27
2.1 KIẾN TRÚC CỦA ĐỒNG BỘ DỮ LIỆU OMA-SYNCML 27
2.2 GIAO THỨC ĐỒNG BỘ OMA - SYNCML 31
2.2.1 Các thực thể sử dụng giao thức đồng bộ 31
2.2.2 Các pha của giao thức đồng bộ dữ liệu 32
2.2.3 Truyền dữ liệu lớn trong đồng bộ OMA-SyncML 37
2.3 GIAO THỨC ĐẶC TẢ OMA-SYNCML 39
2.3.1 Các định danh trong OMA-SYNCML 39
2.3.2 Các phần tử giao thức đặc tả 41
2.4 CÁC MÔ HÌNH ĐỒNG BỘ DỮ LIỆU OMA-SYNCML 44
2.4.1 Đồng bộ hai chiều (Two-way sync) 44
2.4.2 Đồng bộ chậm (slow sync) 46
2.4.3 Đồng bộ một chiều từ phía máy khách (One-way sync) 48
2.4.4 Đồng bộ một chiều từ phía máy chủ (One-way sync) 49
2.4.5 Đồng bộ làm mới từ phía máy khách (Refresh sync from client) 49
2.4.6 Đồng bộ làm mới từ phía máy chủ (Refresh sync from server) 50
2.4.7 Đồng bộ cảnh báo từ máy chủ (Server Alerted Sync) 50
Chương 3: MÔ HÌNH QUẢN LÝ THIẾT BỊ OMA-SYNCML 51
3.1 MÔ HÌNH QUẢN LÝ THIẾT BỊ OMA-SYNCML 51
3.2 CÔNG NGHỆ QUẢN LÝ THIẾT BỊ OMA 53
3.3 GIAO THỨC QUẢN LÝ THIẾT BỊ 55
3.3.1 Quản lý chức năng 55
3.3.2 Các pha của giao thức quản lý thiết bị 58
3.3.3 Các đặc tính bảo mật 59
3.4 KHUNG QUẢN LÝ THIẾT BỊ 60
Chương 4: CƠ CHẾ BẢO MẬT TRONG ĐỒNG BỘ DỮ LIỆU OMA-SYNCML 62
Trang 44.1 CƠ CHẾ XÁC THỰC TRONG ĐỒNG BỘ DỮ LIỆU OMA-SYNCML 62
4.1.1 Các vấn đề xác thực 62
4.1.2 Xác thực trong đồng bộ OMA 69
4.2 BẢO MẬT ĐƯỜNG TRUYỀN TRONG ĐỒNG BỘ OMA 70
4.2.1 Bảo mật trong lớp giao vận sử dụng công nghệ SSL 70
4.2.2 Bảo mật lớp giao vận (TLS) 72
4.2.3 Bảo mật trong lớp giao vận mạng không dây (WTLS) 73
4.3 PKI TRONG ĐỒNG BỘ DỮU LIỆU OMA-SYNCML 74
Chương 5: CÀI ĐẶT ỨNG DỤNG MPE (Mobile Push Email) 80
5.1 ĐẶC TẢ YÊU CẦU ỨNG DỤNG 80
5.1.1 Ứng dụng Mobile Push Email 80
5.1.2 Đặc tả yêu cầu 81
5.1.3 Tổng hợp các chức năng hệ thống 83
5.1.4 Từ điển thuật ngữ trong ứng dụng Mobile Push Email 83
5.2 PHÂN TÍCH THIẾT KẾ ỨNG DỤNG MPE 85
5.2.1 Phát triển mô hình ca sử dụng 85
5.2.1 Phân tích ca sử dụng 95
5.2.3 Mô hình phân tích 105
5.2.4 Kiến trúc hệ thống 110
KẾT LUẬN 114
TÀI LIỆU THAM KHẢO viii
Trang 5Bảng ký hiệu và thuật ngữ viết tắt
2G Thế hệ di động thứ 2 (Second Generation)
3G Thế hệ di động thứ 3 (Third Generation)
CDC Định dạng nối với thiết bị (Connected Device Configuration)
CDMA Đa truy nhập phân chia kênh theo mã (Code Division Multiple Access) DTD Định nghĩa kiểu tài liệu (Document Type Definition)
DDF Kiến trúc đặc tả thiết bị ( Data Definition Framework)
E-GPRS Dịch vụ GPRS nâng cao (Enhanced GPRS)
EDGE Môi trường mạng dữ liệu GSM nâng cấp (Enhanced Data GSM
Environment) EMS Dịch vụ nhắn tin nâng cấp (Enhanced Messaging Services)
GUID Định danh toàn cục duy nhất (Global Unique Identifier)
GPRS Dịch vụ vô tuyến gói tổng hợp được phát triển trên nền tảng công nghệ
thông tin di động toàn cầu (GSM) (General Packet Radio Service) GSM Hệ thống di động toàn cầu, là chuẩn phổ biến cho các thiết bị di động trên
thế giới (Global System for Mobile communications) HTTP Giao thức truyền siêu văn bản liên kết (HyperText Transfer Protocol) IMEI Định danh quốc tế cho thiết bị di động (Internationl Mobile Equipment
Identifier) IETF IETF (Internet Engineering Task Force) tạm gọi là nhóm đặc trách kỹ
thuật internet, là một tổ chức gồm 80 nhóm làm việc có chức năng nghiên cứu, phát triển, và quyết định các chuẩn dùng trong internet
J2ME Java 2 Micro Edition: Ngôn ngữ vi lập trình Java 2
LUID Định danh cục bộ duy nhất (Local Unique Idenitifer)
MSC Biểu đồ trình tự thông điệp (Message Sequence Chart)
MSG Thông điệp (Message)
Trang 6MIDP Mobile Information Device Profile: Thiết bị lưu trữ thông tin di động MMS Multimedia Messaging Service: là dịch vụ tin nhắn đa phương tiện
OBEX Giao thức trao đổi đối tượng (OBject Exchange protocol)
OMA Liên minh di động mở (Open Mobile Alliance) là một diễn đàn công
nghiệp được thành lập năm 2002, tập hợp các nhà cung cấp, sản xuất mạng, thiết bị đầu cuối, cung cấp dịch vụ và nội dung Nhiệm vụ của OMA là phát triển các chuẩn mở về dịch vụ trong lĩnh vực mạng thông tin di động
PALM Tên một thiết bị cầm tay, sử dụng hệ điều hành palm
Palm Hệ điều hành palm
Pocket PC Một loại thiết bị máy tính (thiết bị cầm tay) có kích thước nhỏ, sử dụng
hệ điều hành window mobile
PIM Dữ liệu quản lý thông tin cá nhân (Personal information management
(PIM)) PDAs Thiết bị trợ giúp cá nhân số (Personal Device Assistances)
SyncML Ngôn ngữ đánh dấu mở rộng (Synchronization Markup Language)
SMS Dịch vụ nhắn tin ngắn (Short Message Service)
SMSC Trung tâm dịch vụ nhắn tin ngắn (Short Message Service Center)
URI Là chuỗi định danh tên hoặc nguồn trên internet (Uniform Resource
Identifier) URL Là chuỗi dùng để tham chiếu tới tài nguyên internet (Uniform Resource
Locator) XML Ngôn ngữ đánh dấu mở rộng (Extensible Markup Language)
WAP Giao thức ứng dụng không dây (Wireless Application Protocol)
WSP Giao thức phiên làm việc không dây (Wireless Session Protocol)
W3C Hiệp hội WWW (World Wide Web Consortium)
WDP Giao thức gói dữ liệu không dây (Wireless Datagram Protocol)
WLAN Mạng cục bộ không dây (Wireless Local Area Network)
WML Wireless Markup Language: Ngôn ngữ đánh dấu không dây
Trang 7Danh mục hình vẽ
Hình 1 1 Mô hình một - tới - một 9
Hình 1 2 Mô hình nhiều - tới - nhiều 10
Hình 1 3 Mô hình nhiều - tới - nhiều 11
Hình 1 4 Mô hình lai nhiều - tới - một và nhiều – tới nhiều 12
Hình 1 5 Xác định một xung đột cập nhật 15
Hình 1 6 Thị trường đồng bộ dữ liệu bị phân mảnh từ giữa năm 1999 tới 2000 [6] 18
Hình 1 7 Mô hình tổng quan wap [3] 24
Hình 2 1 Đồng bộ dữ liệu OMA-SyncML [16] 27
Hình 2 2 Kiến trúc các lớp của SyncML và vị trí của giao thức đồng bộ trong toàn bộ khối phần mềm trên các thiết bị mobile và máy chủ mạng [6] 28
Hình 2 3 Các thành phần sử dụng giao thức đồng bộ [16] 31
Hình 2 4 Số các gói trong phiên đồng bộ 32
Hình 2 5 Biểu đồ tuần tự gửi đối tượng dữ liệu kích thước lớn 37
Hình 2 6 Biểu đồ tuần tự ví dụ sử dụng nhiều thông điệp trong gói [16] 38
Hình 2 7 Biểu đồ tuần tự trong đồng bộ 2 chiều 44
Hình 2 8 Đồng bộ chậm trong môi trường nhiều thiết bị [6] 46
Hình 2 9 Biểu đồ tuần tự đồng bộ 1 chiều từ phía máy khách 48
Hình 2 10 Biểu đồ tuần tự đồng bộ 1 chiều từ phía máy chủ 49
Hình 2 11 Biểu đồ tuần tự đồng bộ cảnh báo từ máy chủ 50
Hình 3 1 Kiến trúc OMA DM [6] 52
Hình 3 2 Các pha khởi nạp và các phiên quản lý thiết bị (DM) [6] 52
Hình 3 3 Các pha khởi nạp [6] 54
Hình 3 4 Các pha của phiên quản lý thiết bị OMA [6] 58
Hình 3 5 Các đặc tính bảo mật gắn với các pha quản lý thiết bị OMA [6] 59
Hình 3 6 Ví dụ các cây quản lý [6] 60
Hình 4 1 Sơ đồ chữ ký RSA 64
Hình 4 2 Băm thông điệp 65
Hình 4 3 Ký trên bảng băm 65
Hình 4 4 Truyền dữ liệu thông tin cần gửi 65
Hình 4 5 Xác minh chữ ký 66
Hình 4 6 Tiến hành băm thông điệp đi kèm 66
Hình 4 7 Kiểm tra tính toàn vẹn của thông điệp 66
Hình 4 9 Kỹ thuật đăng ký 4-bước (4-pass) [9] 77
Hình 4 10 Cây quản lý đối tượng [9] 79
Hình 5 1 Mô hình tổng quan ca sử dụng 87
Hình 5 2 Biểu đồ tuần tự thiết lập tài khoản email 95
Hình 5 3 Biểu đồ lớp phân tích thực thi ca sử dụng thiết lập tài khoản email 95
Hình 5 4 Biểu đổ tuần tự chức năng quản lý danh bạ 96
Hình 5 5 Biểu đồ lớp phân tích thực thi ca sử dụng quản lý sổ địa chỉ 96
Hình 5 6 Biểu đồ tuần tự ca sử dụng gửi email 97
Hình 5 7 Biểu đồ lớp phân tích thực thi ca sử dụng gửi email 97
Hình 5 8 Biểu đồ tuần tự hệ thống xử lý tin nhắn (email) 98
Hình 5 9 Biểu đồ lớp phân tích thực thi ca sử dụng xử lý tin nhắn 99
Hình 5 10 Biểu đồ tuần tự hệ thống quản lý hộp thư 100
Trang 8Hình 5 11 Biểu đồ lớp phân tích thực thi ca sử dụng quản lý hòm thư 100
Hình 5 12 Biểu đồ tuần tự hệ thông quản lý tài khoản 101
Hình 5 13 Biểu đồ lớp phân tích thực thi ca sử dụng quản lý tài khoản 101
Hình 5 14 Biểu đồ tuần tự hệ thống kiểm tra email mới 102
Hình 5 15 Biều đồ lớp phân tích thực thi ca sử dụng kiểm tra email (polling email) 102
Hình 5 16 Biều đồ tuần tự ca sử dụng push email 103
Hình 5 17 Biều đồ lớp phân tích thực thi ca sử dụng push email 103
Hình 5 18 Biểu đồ tuần tự ca sử dụng gửi email tới máy chủ bên ngoài 104
Hình 5 19 Biểu đồ lớp phân tích thực thi ca sử dụng gửi email tới máy chủ bên ngoài 104 Hình 5 20 Mô hình quan hệ thực thể (ERD) 105
Hình 5 21 Mô hình logic triển khai ứng dụng MPE 112
Trang 9Cùng với đó, nhu cầu công việc đòi hỏi tính nhanh, tiện dụng, di động, mọi lúc mọi nơi đã thúc đẩy các doanh nhân, nhân viên văn phòng và doanh nghiệp, thậm chí là những cá nhân hay tư doanh nhỏ tìm cách sử dụng các tiện ích trên trên những thiết bị cầm tay như điện thoại di động, máy tính xách tay có kết nối internet để giao dịch với đối tác, liên hệ với nhân viên, đàm phán với khách hàng
Chính vì nhu cầu của người sử dụng, và sự phát triển nhanh chóng của các thiết bị đầu cuối, đặt ra những yêu cầu cho các nhà cung cấp dịch vụ trong việc hỗ trợ, cung cấp nhiều ứng dụng, tiện ích phục vụ nhu cầu đa dạng của người dùng
Có thể nói, giao tiếp giữa internet và thiết bị mobile nhằm trao đổi, chia sẻ, xử lý thông tin, thực hiện các giao dịch, tác vụ vào bất cứ thời gian, địa điểm nào đang là chìa khóa mở ra nhiều tiềm năng phát triển các dịch vụ, tiện ích cả về giải trí lẫn thương mại, và đem lại nhiều giá trị sử dụng cho người dùng đầu cuối
Xuất phát từ nhu cầu thực tế, và yêu cầu của đơn vị đang công tác nhằm đẩy mạnh nghiên cứu, triển khai các ứng dụng, áp dụng các công nghệ trên thiết bị di động, luận văn này được thực hiện với mục đích:
Tìm hiểu, các khái niệm, định nghĩa, các mô hình của đồng bộ dữ liệu
Nghiên cứu giao thức, kiến trúc đặc tả của đồng bộ dữ liệu OMA-SyncML
Nghiên cứu đặc tả, giao thức quản lý thiết bị trong đồng bộ dữ liệu SyncML
Nghiên cứu cơ chế đảm bảo an toàn thông tin trong đồng bộ dữ liệu SyncML
OMA-Áp dụng các kết quả nghiên cứu và thực hiện cài đặt ứng dụng trên các thiết
bị cầm tay sử dụng công nghệ đồng bộ dữ liệu OMA-SyncML, đó là: Xây dựng ứng dụng MPE (Mobile Push Email), cung cấp các tính năng giúp người dùng thực hiện gửi, nhận, quản lý, đồng bộ email trên các thiết bị điện thoại di động
Trang 10Với giới hạn những vấn đề tìm hiều và nghiên cứu như trên, luận văn bao gồm 5 chương:
Chương 1: Tổng quan về đồng bộ dữ liệu
Giới thiệu các khái niệm về đồng bộ dữ liệu, các kiểu đồng bộ dữ liệu, các vấn đề phát sinh trong quá trình đồng bộ dữ liệu; Giới thiệu khái niệm đồng bộ dữ liệu OMA-SyncML, các ứng dụng của đồng bộ dữ liệu OMA-SyncML; Giới thiệu một số công nghệ, vấn đề liên quan tới đồng bộ dữ liệu
Chương 2: Kiến trúc và giao thức của đồng bộ dữ liệu OMA-SyncML:
Trình bày kiến trúc đồng bộ dữ liệu OMA-SyncML; Giao thức của đồng bộ OMA-SyncML; Giao thức đặc tả của OMA-SyncML; Các mô hình đồng bộ OMA-SyncML;
Chương 3: Mô hình quản lý thiết bị OMA-SyncML:
Trình bày mô hình quản lý thiết bị OMA-SyncML; Công nghệ quản lý thiết
bị OMA-SyncML; Giao thức quản lý thiết bị OMA-SyncML; Khung quản lý thiết
bị OMA-SyncML
Chương 4: Cơ chế bảo mật trong đồng bộ dữ liệu OMA-SyncML
Trình bày cơ chế xác thực trong đồng bộ OMA-SyncML; Các vấn đề về bảo mật đường truyền trong đồng bộ dữ liệu OMA; PKI trong đồng bộ dữ liệu OMA-SyncML
Chương 5: Cài đặt ứng dụng MPE (Mobile Push Email)
Trình bày đặc tả yêu cầu ứng dụng; Phân tích thiết kế hệ thống ứng dụng MPE (Mobile Push Email)
Trang 11Chương 1: TỔNG QUAN VỀ ĐỒNG BỘ DỮ LIỆU 1.1 CÁC KHÁI NIỆM
Giao thức hỏi- đáp không đồng bộ (Unsynchronous request-response protocol):
Giao thức trao đổi thông điệp giữa 2 máy tính trong đó một máy đưa ra câu hỏi (request) và máy kia trả lời, và máy đưa ra câu hỏi có thể không cần phải có câu trả lời ngay lập tức Ví dụ SMTP là giao thức hỏi đáp không đồng bộ [6]
Giao thức hỏi đáp đồng bộ (Synchronous request-response protocol):
Giao thức trao đổi thông điệp giữa 2 máy tính trong đó một máy đưa ra câu hỏi và một máy trả lời Máy đưa ra câu hỏi sẽ chờ đến khi nhận được câu trả lời Ví dụ HTTP là giao thức hỏi đáp đồng bộ [6]
Khởi động (Bootstrapping):
Tiến trình trong đó thiết bị cầm tay (chưa thiết lập cấu hình) chuyển từ trạng thái ban đầu tới trạng thái thiết lập cấu hình cơ bản nhất.[6]
Định dạng nội dung (Content Format):
Định dạng của nội dung, ví dụ: vCard hoặc vCalendar [6]
Kho lưu trữ (Datastore):
Vị trí lưu trữ dữ liệu (cơ sở dữ liệu, file)
Máy khách quản lý thiết bị (DM Client):
Máy khách cài đặt giao thức quản lý thiết bị SyncML
Máy chủ quản lý thiết bị (DM Server):
Máy chủ cài đặt giao thức quản lý thiết bị SyncML
Đồng bộ cục bộ (Local Synchronization):
Đồng bộ cục bộ qua kết nối trong phạm vi nhỏ, qua cáp, bluetooth hoặc hồng ngoại Kiểu đồng bộ này thường là giữa một máy điện thoại và máy tính
cá nhân [6]
Đồng bộ nhiều – tới - một (Many-to-one):
Mô hình đồng bộ này bao gồm nhóm hai hay nhiều thực thể, trong đó chỉ có một thực thể đồng bộ dữ liệu với các thực thể khác Mô hình này còn gọi là mô hình sao [6]
Đồng bộ nhiều – tới - nhiều (Many-to-many):
Mô hình đồng bộ bao gồm nhóm hai hay nhiều thực thể, trong đó bất kỳ thực thể nào cũng có thể đồng bộ với các thực thể còn lại [6]
Đồng bộ một chiều (One-way Synchronization):
Đồng bộ dữ liệu giữa 2 thực thể, trong đó chỉ có một thực thể thông báo cho thực thể còn lại cập nhật dữ liệu [6]
Trang 12 Đồng bộ 2 chiều (Two-way Synchronization):
Đồng bộ dữ liệu giữa hai thực thể, trong đó các thực thể trao đổi thông tin
về dữ liệu thay đổi trên mỗi thực thể [6]
Đồng bộ từ xa (Remote Synchronization):
Đồng bộ dữ liệu qua kết nối mạng với khoảng cách xa [6]
Nhà cung cấp dịch vụ (Service Provider):
Cung cấp các ứng dụng internet như quản lý email, sổ địa chỉ, lịch làm việc, ghi chú,
Đồng bộ chậm (Slow Synchronization):
Tiến trình đồng bộ trong đó một thực thể trao đổi các giá trị của tất cả các phần tử trong kho lưu trữ với thực thể khác Mục đích là để thực hiện khôi phục lại dữ liệu khi có sự cố [6]
Nhà cung cấp đồng bộ (Synchronization Vendor):
Một nhà cung cấp và phát triển chuyên biệt phần mềm đồng bộ dữ liệu giữa các ứng dụng trên các máy tính khác nhau [6]
Thẻ sync (Sync Anchor):
Một bộ đánh dấu tích hợp với một kho lưu trữ và một trong số đối tác đồng
bộ của nó Mục đích là xác định thời điểm cuối cùng đồng bộ với thực thể đồng
bộ với nó [6]
Kiểu đồng bộ (Sync Type):
Một trong những kiểu đồng bộ được sử dụng: đồng bộ một chiều, đồng bộ 2 chiều, đồng bộ chậm, [6]
Máy khách đồng bộ (OMA-SyncML Client):
Một cài đặt giao thức đồng bộ dữ liệu đóng vai trò là máy khách (client) [6]
Máy chủ đồng bộ (OMA-SyncML Server):
Một cài đặt giao thức đồng bộ dữ liệu đóng vai trò là máy chủ (server) [6]
Thực thể OMA-SyncML (OMA-SyncML Entity):
Một thiết bị cài đặt đặc tả OMA-SyncML (hoặc client hoặc server) [6]
Hạ tầng SyncML (SyncML Framework):
Hạ tầng bao gồm giao thức đặc tả, giao thức đồng bộ, ràng buộc giao vận (transport binding) và bộ giao tiếp SyncML (SyncML Adapter) [6]
Thông điệp SyncML (SyncML Message):
Một thông điệp theo định dạng chuẩn XML Thông điệp SyncML được sử dụng để trao đổi trong quá trình đồng bộ [6]
Gói SyncML (SyncML Package):
Phiên đồng bộ bao gồm các gói SyncML được trao đổi giữa máy chủ và máy khách Một gói SyncML có thể chứa nhiều thông điệp SyncML [6]
Liên kết giao vận (Transport Binding):
Đặc tả một giao thức mức cao sử dụng giao thức giao vận như thế nào [6]
Trang 13 Ứng dụng (Application):
Ứng dụng SyncML cung cấp các giao thức đồng bộ dữ liệu Ứng dụng có thể là tự khởi tạo hoặc nhận các câu lệnh giao thức SyncML Ứng dụng có thể đóng vai trò như một máy khách (client) hoặc một máy chủ (server) đồng bộ dữ liệu OMA [16]
Khả năng trao đổi (Capabilities exchange):
Khả năng đồng bộ dữ liệu OMA, trong đó cho phép một máy khách và máy chủ trao đổi các thông số cấu hình thiết bị, các đặc tính và ứng dụng [16]
Dữ liệu (Data):
Đơn vị thông tin trao đổi, mã hóa để truyền qua mạng trong ĐBDL [17]
Tập dữ liệu (Data collection):
Một phần tử dữ liệu đóng vai trò như một bộ chứa các phần tử khác, (ví dụ: {c {{i1, data1}, {in, datan}}}) Trong ĐBDL OMA, các tập dữ liệu được đồng bộ với nhau [17]
Phần tử dữ liệu (data element):
Một mảnh dữ liệu và một định danh tích hợp cho dữ liệu (ví dụ {i, data})
Phần tử dữ liệu tương đương (Data element equivalence):
Khi hai phần tử dữ liệu được đồng bộ Các ngữ nghĩa chính xác được định nghĩa bằng một mô hình đồng bộ dữ liệu đã cho [17]
Trao đổi dữ liệu (Data exchange):
Được biết như các tác vụ gửi, yêu cầu, nhận tập phần tử dữ liệu
Định dạng dữ liệu (Data format):
Sử dụng mã hóa để định dạng một kiểu dữ liệu Ví dụ, các ký tự hoặc số nguyên được mã hóa dữ liệu binary [17]
Kiểu dữ liệu (Data type):
Giản đồ được sử dụng để thể hiện một đối tượng dữ liệu (ví dụ: kiểu nội dung text/calendar MIME sử dụng cho đặc tả iCalendar, hoặc kiểu nội dung text/directory MIME sử dụng cho đặc tả vCard) [17]
Đồng bộ dữ liệu (Data synchronization):
Đóng vai trò thiết lập sự tương đương giữa 2 tập dữ liệu, trong đó các phần
tử dữ liệu của 1 tập được ánh xạ tới các phần tử dữ liệu trong tập kia [16]
Trang 14 Giao thức đồng bộ dữ liệu (Data synchronization protocol):
Đặc tả bắt buộc để hoàn thành đồng bộ các phần tử dữ liệu trên tập dữ liệu ban đầu hoặc tập dữ liệu nhận đƣợc [16]
Thông điệp (Message):
Thông điệp SyncML là các nội dung chính của một gói SyncML Nó chứa các câu lệnh SyncML cũng nhƣ dữ liệu liên quan và thông tin mô tả (meta-information) [16]
Tác vụ (Operation):
Một tác vụ SyncML đề cập đến giao dịch đạt đƣợc bởi các câu lệnh SyncML xác định trong gói SyncML Ví dụ, "đồng bộ sổ địa chỉ cá nhân với sổ địa chỉ công khai " [17]
Thiết bị khởi tạo (Originator):
Thiết bị mạng khởi tạo một yêu cầu SyncML [16]
Gói (Package):
Một gói SyncML là một tập đầy đủ các câu lệnh và các phần tử dữ liệu liên quan, đƣợc trao đổi giữa một thiết bị khởi tạo và một thiết bị nhận Gói SyncML có thể chứa một hoặc nhiều thông điệp SyncML [16]
Phân tích (Parser):
Đề cập đến một bộ phân tích XML (XML parser) Một bộ phân tích XML không hoàn toàn cần thiết để hỗ trợ SyncML Tuy nhiên, một đặc tả đồng bộ dữ liệu OMA tích hợp một bộ phân tích XML có thể làm tăng giá trị của nó [16]
Thiết bị nhận (Recipient):
Thiết bị mạng nhận yêu cầu SyncML, xử lý yêu cầu và gửi kết quả trở lại
Giao thức đặc tả (Representation protocol):
Định dạng chuẩn cho việc trao đổi mẫu thông tin xác định SyncML là một giao thức đặc tả cho việc truyền dữ liệu đồng bộ và các tác vụ quản lý thiết bị
Máy chủ (Server):
Một máy chủ đồng bộ dữ liệu OMA đề cập tới vai trò giao thức khi một ứng dụng đƣa ra các thông điệp “trả lời”
Dữ liệu đồng bộ (Synchronization data):
Đề cập tới các phần tử dữ liệu trong một câu lệnh SyncML [17]
Máy đồng bộ (Synchronization Engine):
Một thành phần của máy chủ đồng bộ dữ liệu OMA có thể phân tích tập dữ liệu và những thay đổi liên quan tới nó Máy đồng bộ sẽ cài đặt các chính sách
để sự nhận biết và xử lý xung đột cập nhật [16]
Thông điệp SyncML yêu cầu (SyncML request message):
Thông điệp SyncML khởi tạo, đƣợc gửi bởi thiết bị khởi tạo tới thiết bị nhận trên mạng [17]
Thông điệp SyncML trả lời (SyncML response message):
Thông điệp phúc đáp đƣợc gửi bởi thiết bị nhận tới thiết bị gửi yêu cầu [17]
Trang 15 Định danh duy nhất toàn cục GUID (Global Unique Identifier):
Một định danh đƣợc gán tới một đối tƣợng trong một cơ sở dữ liệu Các giá trị GUID không bao giờ đƣợc sử dụng lại [16]
Định danh duy nhất cục bộ LUID (Locally Unique Identifier):
Một định danh đƣợc gán tới một đối tƣợng trong một cơ sở dữ liệu Các giá trị LUID chỉ là duy nhất cục bộ [16]
Trang 161.2 ĐỒNG BỘ DỮ LIỆU
1.2.1 Khái niệm Đồng bộ dữ liệu
Công nghệ tính toán di động (Mobile computing) cho phép tất cả mọi người
có thể sử dụng các thiết bị như PDAs (Personal Digital Assistants), smart phones, điện thoại di động (mobile phones), và máy tính xách tay (laptops) để truy cập tới
dữ liệu cơ quan, dữ liệu cá nhân ở mọi nơi, mọi lúc
Tuy nhiên, khi kết nối trực tuyến tới kho lưu trữ dữ liệu thì không thể thực hiện được vì tại đó thiếu các thiết bị kết nối mạng Thậm chí nếu có kết nối mạng, việc sử dụng kết nối này chưa chắc đã nhanh và hiệu quả cho ứng dụng Khi đó,
“đồng bộ dữ liệu (data synchronization)” nổi lên là công nghệ chính, nhằm khắc
Trường hợp đơn giản nhất là người dùng lấy dữ liệu cho bản sao chép cục
bộ của anh ta Ở đây, ứng dụng chỉ cần lấy những thay đổi từ dữ liệu gốc tới bản sao cục bộ, mà không phải sao chép toàn bộ dữ liệu lưu trữ đó Quá trình đồng bộ trở lên phức tạp hơn khi nhiều người dùng thực hiện thay đổi dữ liệu trên các bản sao so với bản gốc Và nhiệm vụ đặt ra là phải làm cho những thay đổi này đồng nhất trên tất cả các bản sao
ĐBDL là công nghệ dùng để lưu trữ tất cả những bản sao phân tán của dữ liệu một cách nhất quán Quá trình được thực hiện bằng cách truyền những thay đổi dữ liệu giữa các bản sao, đồng thời giải quyết các xung đột có thể xảy ra Những xung đột này thường do những thay đổi không nhất quán trên các bản sao khác nhau của cùng một dữ liệu gốc
Trang 171.2.2 Các kiểu đồng bộ
Những thay đổi trên các bản sao khác nhau của một kho dữ liệu có thể được nhân bản ra các bản sao khác theo nhiều cách khác nhau Các kiểu đồng bộ đưa ra luồng logic những thay đổi xảy ra trên mạng máy tính Có 4 kiểu như sau:
Một - tới - một (One-to-one)
Nhiều - tới - một (Many-to-one)
Nhiều - tới - nhiều (Many-to-many)
Lai của nhiều - tới - một và nhiều - tới - nhiều (Hybrid)
a/ Một - tới - một
Mô hình một - tới - một là trường hợp đơn giản nhất Dữ liệu chỉ được chia
sẻ giữa một máy chủ (server) và một máy khách (client) Ứng dụng của mô hình này có thể là sao lưu dữ liệu Tất cả những thay đổi xảy ra với máy khách, đều được gửi tới máy chủ, để đảm bảo tính nhất quán của dữ liệu
Hình 1 1 Mô hình một - tới - một
Mô hình này dùng để đồng bộ dữ liệu giữa máy PDA (đóng vai trò client)
và máy tính cá nhân PC (đóng vai trò server) Ứng dụng trên máy PDA thay đổi trên bản sao của dữ liệu và gửi những thay đổi này tới PC Có thể ngay tại thời điểm đó, ứng dụng trên máy PC cũng thực hiện thay đổi dữ liệu trên chính nó Điều này dẫn đến xung đột Trong trường hợp này, xung đột được xác định nhờ máy tính PC và được xử lý trực tiếp trên PC Một số trường hợp xung đột được đánh dấu lại và người quản trị sẽ thực hiện xử lý
Trang 18b/ Nhiều - tới - một
Trong mô hình này, dữ liệu được truyền từ một chủ thể trung tâm tới các thực thể khác nhau chứa các bản sao của dữ liệu
Hình 1 2 Mô hình nhiều - tới - nhiều
Các máy khách trao đổi dữ liệu được thực hiện thông qua máy chủ trung tâm, 2 máy khách không thể trao đổi dữ liệu trực tiếp, phải có máy chủ trung tâm làm cầu nối Với đặc tính này, các xung đột chỉ có thể xảy ra phía máy chủ trung tâm, vì thế máy chủ cần nhận biết và xử lý chúng
Một ví dụ của mô hình này là khi máy PDA, điện thoại cầm tay, và máy tính cá nhân thực hiện chia sẻ ứng dụng, máy điện thoại cầm tay và PDA đều được đồng bộ với máy tính cá nhân (nhưng không đồng bộ trực tiếp giữa chúng) Trường hợp này, máy tính cá nhân đóng vai trò máy chủ trung tâm
Nhược điểm của mô hình này nằm ở máy chủ trung tâm Nó trở thành nút
cổ chai xử lý nhiều tác vụ liên quan tới đồng bộ, có thể làm cho hệ thống bị tê liệt khi có sự cố
Trang 19c/ Nhiều - tới - nhiều
Trong mô hình nhiều - tới - nhiều, không có chủ thể trung tâm Mỗi máy khách đều là 1 máy chủ Sự đồng nhất máy khách/máy chủ trên mỗi thiết bị trong
mô hình nhiều - tới - nhiều dẫn tới chúng chỉ được gọi là máy khách Mô hình này còn gọi là mô hình ngang hàng
Hình 1 3 Mô hình nhiều - tới - nhiều
Mỗi máy khách cập nhật và gửi những thay đổi tới các máy khách khác Sau khi một bản ghi trên một máy khách được cập nhật, máy khách này chịu trách nhiệm cập nhật các bản sao của dữ liệu trên tất cả các máy khách khác, để đảm bảo tính đồng nhất của dữ liệu phân tán Điều này có thể được thực hiện trực tiếp tới các máy khách khác, hoặc bằng cách gửi những cập nhật tới các máy khách ở gần,
và sau đó sẽ được nhân rộng ra
Một cách tự nhiên, mọi máy khách đều có thể nhận biết và xử lý xung đột Điều này đòi hỏi phần mềm tính toán phức tạp hơn trên mỗi máy khách, và sẽ làm tăng chi phí cài đặt, đặc biệt là trên các thiết bị cầm tay có bộ nhớ hạn chế như mobile phone
Một thuân lợi của mô hình ngang hàng (peer to peer - p2p) là không có chủ thể trung tâm, vì thế không có điểm chết Mọi máy khách có một bản sao của dữ liệu và đóng vai trò như là một chủ thể trung tâm Các máy khách có thể tiếp tục làm việc và trao đổi dữ liệu khi xảy ra lỗi trên các phần khác của mạng Máy khách
có thể cập nhật thay đổi từ những chủ thể gần nhất trong mạng, đảm bảo việc truy cập nhanh nhất tới dữ liệu được lưu trữ từ xa
Client
Client
Client
Trang 20d/ Mô hình lai của nhiều - tới - một và nhiều - tới - nhiều (Hybrids)
Nhằm kết hợp các ƣu điểm của mô hình nhiều - tới - một và nhiều - tới - nhiều, một mô hình lai chứa các đặc tính của cả 2 mô hình trên đƣợc đƣa ra sử dụng nhƣ hình sau:
Hình 1 4 Mô hình lai nhiều - tới - một và nhiều – tới nhiều
Phân cụm bao gồm cấu trúc 2 mức của bản sao
Trang 211.2.3 Các vấn đề của đồng bộ dữ liệu
Công nghệ đồng bộ dữ liệu là một phần quan trọng cho phép sử dụng dữ liệu không trực tuyến (offline), nhưng nó cũng đặt ra những thách thức cần phải giải quyết, để cung cấp một giải pháp chấp nhận được Những vấn đề đó là:
Xung đột cập nhật (Conflicting Updates)
Xung đột xóa dữ liệu (Conflict deletion)
Giải quyết xung đột (Conflict resolution)
Một vấn đề đặt ra với đồng bộ dữ liệu là cần tuân theo một định dạng chuẩn nội dung cho việc trao đổi dữ liệu Ví dụ, đối với dữ liệu quản lý cá nhân (PIM), ngôn ngữ đánh dấu đồng bộ SyncML (Synchronization Markup Language) yêu cầu cung cấp các định dạng nội dung để đảm bảo đồng bộ thành công
a/ Xung đột cập nhật
Trong đồng bộ dữ liệu, nơi mà các bản sao của cùng một nguồn dữ liệu gốc nằm trên các thiết bị khác nhau, nó giống như cùng một dữ liệu được xử lý trên nhiều thiết bị
* Xung đột ghi – ghi
Ví dụ: Trong một công ty bán hàng, dữ liệu được lưu trữ tại máy chủ trung
tâm của công ty Hàng ngày, nhân viên bán hàng có thể thực hiện cập nhật dữ liệu qua các ứng dụng cài đặt trên các thiết bị đầu cuối khác nhau Dữ liệu thay đổi này sau đó sẽ được đồng bộ tới dữ liệu trung tâm của công ty
Trong lần gặp khách hàng, người bán hàng đã thay đổi số fax theo yêu cầu cho khách hàng “Văn A” là “12345” trên PDA của anh ta (người bán hàng), tuy nhiên dữ liệu chưa được đồng bộ với trung tâm dữ liệu của công ty Cùng ngày, phòng quan hệ khách hàng nhận được bức thư từ ông “Văn A” thông báo số fax đã thay đổi Nhân viên phòng quan hệ khách hàng đã cập nhật bản ghi dữ liệu của ông
“Văn A” tại dữ liệu trung tâm, nhưng không may bị nhầm lẫn với số fax là
“92345” Điều này sẽ dẫn đến xung đột khi có 2 sự thay đổi khác nhau trên 2 bản
dữ liệu
Nếu máy chủ đồng bộ không nhận biết xung đột, nó có thể gửi bản cập nhật
đã nhận từ phòng quan hệ khách hàng tới PDA của người bán hàng, và cũng cập nhật kho dữ liệu gốc với những thay đổi mà người bán hàng đã thực hiện Kết qủa
là, nội dung của 2 bản sao sẽ không chứa cùng dữ liệu – kho dữ liệu gốc sẽ có số fax “12345”, và dữ liệu trên PDA của người bán hàng chứa “92345”
Xung đột cập nhật như ví dụ trên gọi là xung đột ghi – ghi Thay đổi một trường dữ liệu tại cùng thời điểm trên 2 bản sao khác nhau của kho dữ liệu
Trang 22* Xung đột đọc – ghi:
Ví dụ: Người bán hàng nhập một đơn hàng cho khách hàng có tên “Văn A”
và thay đổi số fax của ông Văn A từ “98765” tới “12345” trên dữ liệu trong PDA của người bán hàng Cùng thời điểm, phòng marketing công ty tạo danh sách số fax của khách hàng Người bán hàng vẫn chưa đồng bộ dữ liệu trên PDA của mình, và do đó, kho dữ liệu tập trung chứa số fax của khách hàng Văn A vẫn là
đó, đây không phải là phương pháp khả thi trong thực tế, vì vây, máy chủ đồng bộ phải có khả năng nhận biết và xử lý các xung đột
Các xung đột đã đề cập ở trên đều thuộc nhóm xung đột kỹ thuật, bởi vì các thay đổi đồng thời đều ảnh hưởng tới cùng bản ghi Tuy nhiên, có thể xảy ra trường hợp khi một ông A lập một cuộc hẹn với một khách hàng từ 8h tới 10h sáng, trong khi cô thư ký của ông A chọn thời gian từ 9h tới 10h30 cho một cuộc hẹn khác giữa ông A với người quản lý Từ một cái nhìn trực quan kỹ thuật đồng
bộ thì không có xung đột Tất cả bản ghi đều được thêm mới vào danh mục lịch làm việc Nhưng ông A phải tham dự 2 cuộc họp từ 9h tới 10h, đây là xung đột ngữ nghĩa mà ông A phải giải quyết Trong trường hợp này, ứng dụng có thể hỗ trợ người dùng bằng cách cho phép nhận biết và thông báo về xung đột đó
Trang 23Chủ thể trung tâm chứa kho dữ liệu để lưu trữ LUID [6], định danh mỗi bản ghi của mọi máy khách thực hiện đồng bộ với nó Khi đồng bộ, chủ thể trung tâm
sử dụng LUID để thông báo cho máy khách biết bản ghi nào đang sửa
Một phiên đồng bộ thường bắt đầu với việc máy khách gửi danh sách các bản ghi đã thay đổi tính từ lần đồng bộ trước so với kho dữ liệu trên máy chủ Tiếp theo, chủ thể trung tâm đưa ra danh sách các bản ghi thay đổi trong thời gian tương ứng Để nhận biết xung đột, máy chủ thực hiện so sánh 2 danh sách và các định danh mọi LUID/GUID sẵn có trong cả 2 danh sách
Thay đổi phía Client
Thay đổi phía Server
Trang 24c/ Giải quyết xung đột
Giải pháp giải quyết xung đột là các tác vụ mà máy chủ phải thực hiện, khi một xung đột được phát hiện Đối với dữ liệu PIM (Personal Information Management) việc giải quyết các xung đột là tương đối dễ dàng Tuy nhiên, với CSDL quan hệ thì điều đó trở lên phức tạp hơn vì giữa các bản ghi có những mỗi liên quan với nhau và cần phải được thực hiện chính xác để không ảnh hưởng đến các mối quan hệ, và ràng buộc của các bản ghi trong quá trình đồng bộ Có nhiều phương pháp có thể sử dụng để giải quyết các xung đột:
Cách dễ nhất là sao lại các mục và đánh dấu chúng là đang bị xung đột rồi thông báo cho người quản trị xử lý chúng Điều này sẽ tránh mất mát dữ liệu, nhưng sẽ đẩy gánh nặng việc xử lý xung đột cho người quản trị
Khả năng tiếp theo là xác định một trong hai bản ghi xung đột được thay đổi và xóa bản ghi còn lại Quyết định giữ lại bản nào dựa trên lựa chọn ưu tiên của người dùng như:
Cập nhật trên máy khách luôn được ưu tiên
Cập nhật trên máy chủ luôn được ưu tiên
Cập nhật sau cùng luôn được ưu tiên
Phương pháp thứ 3 để giải quyết xung đột là trộn 2 bản xung đột vào làm một Phương pháp này được thực hiện trong trường hợp khi các bản ghi đã hoàn thành đồng bộ Thêm nữa, nó đòi hỏi máy chủ đồng bộ phải hiểu cấu trúc của dữ liệu được đồng bộ và có thể xác định trường bên trong cấu trúc
đã thay đổi Tuy nhiên, việc này là không thể đối với các bản ghi chỉ chứa một trường và máy chủ đồng bộ không thể thông dịch dữ liệu trên trường
đó
Trang 251.3 ĐỒNG BỘ DỮ LIỆU OMA-SYNCML
1.3.1 Tổng quan
Trong khoảng hơn 10 năm trở lại đây, với sự phát triển mạnh mẽ của công nghệ viễn thông và vi tính Các thiết bị cầm tay và thiết bị điện thoại với khả năng truyền dữ liệu đang ngày càng thông dụng Ứng dụng quản lý thông tin cá nhân, như lịch làm việc và sổ địa chỉ được sử dụng rộng rãi, các ứng dụng phục vụ trong ngành thương mại, thanh toán cũng dần xuất hiện Trong các ứng dụng đó, dữ liệu lưu trữ trên các thiết bị cầm tay đã đáp ứng được yêu cầu giống như dữ liệu lưu trữ trên máy tính cá nhân hoặc máy chủ mạng
Nhu cầu đồng bộ một máy tính cầm tay hoặc một điện thoại cầm tay với một máy tính cá nhân đã phổ biến Các ứng dụng trên máy Palm (thiết bị điện tử cầm tay sử dụng hệ điều hành palm) và các máy PocketPC (thiết bị điện tử cầm tay
sử dụng hệ điều hành Microsoft Window Mobile) được đồng bộ với các bản sao của chúng trên máy tính cá nhân Đồng bộ cục bộ như vậy được thực hiện qua kết nối cáp hoặc kết nối hồng ngoại
Các ứng dụng này thường được sử dụng cho cả thiết bị cầm tay và máy tính Các nhà cung cấp cũng kiểm soát các giao thức đồng bộ tích hợp dữ liệu và các định dạng dữ liệu
Mô hình phát triển này làm việc tương đối hiệu quả trong thực tế, bởi vì nó chỉ hạn chế cho các ứng dụng quản lý dữ liệu cá nhân (PIM), dữ liệu được tích hợp với một ứng dụng đơn lẻ Kỹ thuật truyền tin chủ yếu là theo hàng (serial), và số lượng các thiết bị cầm tay chuẩn (platforms) thương mại tương đối nhỏ
Lợi ích của truyền thông không dây là cho phép các máy tính xách tay hỗ trợ kết nối không dây, các điện thoại đời mới, cấu hình cao có thể truy cập và sử dụng các dịch vụ mạng
Mặc dù các lợi ích liên quan của nó, nhưng mô hình đồng bộ trên các thiết
bị cầm tay vẫn chưa được áp dụng nhiều trong thực tế Mô hình đòi hỏi đồng bộ dữ liệu từ xa trên các thiết bị cầm tay với dữ liệu trong kho lưu trữ của các máy chủ mạng Không giống đồng bộ cục bộ, các nhà cung cấp ứng dụng khó có thể điều khiển hoàn toàn tiến trình đồng bộ
Nguyên nhân có thể do nhiều điện thoại không đưa ra giao diện (interface) lập trình ứng dụng Một lý do khác là nhà cung cấp dịch vụ mạng và nhà sản xuất thiết bị cầm tay thường là các đơn vị kinh doanh khác nhau, và rất khó để tích hợp cùng nhau trên cùng một hệ thống đồng bộ này
Chính vì vậy, rất nhiều các nhà cung cấp dịch vụ đồng bộ đã xuất hiện với
tư cách là “cầu nối” giữa nhà cung cấp ứng dụng máy chủ và nhà cung cấp ứng dụng thiết bị cầm tay Các nhà cung cấp này thường kết hợp với các với nhà cung cấp hạ tầng (platform) thiết bị cầm tay và nhà cung cấp dịch vụ mạng hoặc nhà
Trang 26cung cấp ứng dụng máy chủ Họ sử dụng các giao thức đồng bộ, các định dạng dữ liệu của riêng mình, đảm bảo tương thích với hạ tầng các thiết bị cầm tay và các ứng dụng sẵn có mà không quan tâm đến chuẩn quốc tế Điều này đã dẫn đến sự phân mảnh trong truyền thông
Hình 1 6 Thị trường đồng bộ dữ liệu bị phân mảnh từ giữa năm 1999 tới 2000 [6]
Trang 271.3.2 Đồng bộ dữ liệu OMA-SyncML
a/ Giới thiệu OMA-SyncML
“SyncML (Synchronization Makup Language): là một chuẩn công nghiệp khởi nguyên để phát triển và thúc đẩy một giao thức đồng bộ dữ liệu chung, mà có thể được sử dụng rộng rãi như chuẩn công nghiệp”.[6]
Mục đích chính của SyncML là định nghĩa một đặc tả chuẩn cho ĐBDL, để các ứng dụng máy khách và máy chủ có thể phát triển độc lập SyncML khởi nguồn (SyncML Initiative) nhắm đến việc đưa các đặc tả trở thành một chuẩn ĐBDL qua sự chấp nhận rộng rãi của các đặc tả mở và các cài đặt thích hợp
Các ứng dụng trên các thiết bị máy khách, máy chủ hỗ trợ SyncML và sử dụng các định dạng dữ liệu SyncML, sẽ có thể đồng bộ với nhau Trong ý tưởng của SyncML, các ứng dụng trên bất cứ thiết bị cầm tay nào cũng có thể đồng bộ với các ứng dụng tương ứng trên nền tảng máy chủ hoặc các thiết bị khác
SyncML chủ yếu nhắm đến và được thiết kế cho đồng bộ từ xa giữa một máy khách (thiết bị cầm tay) và một máy chủ, nhưng cũng có thể được sử dụng cho ĐBDL cục bộ và ĐBDL giữa các thiết bị mạng
Trong suốt năm 1999, IBM và Lotus đã khám phá cách để kích hoạt ứng dụng máy điện thoại cầm tay ĐBDL với các cơ sở dữ liệu IBM và Lotus Notes Rõ ràng, với tư cách là một nhà cung cấp cơ sở hạ tầng phần mềm, IBM/Lotus muốn tăng khả năng thực hiện đồng bộ trên số lượng lớn các thiết bị điện thoại cầm tay, không phụ thuộc bất cứ nền tảng nào chúng sử dụng Họ thực sự cảm thấy cần phải
có một chuẩn đồng bộ mở
Cùng thời điểm, các công ty như Nokia và Ericsson đã phát hiện ra các vấn
đề của ĐBDL trong ngữ cảnh các giao tiếp hồng ngoại điện thoại (IrMC) và Nhóm quan tâm đặc biệt Bluetooth (Bluetooth Special Interest Group) Motorola/Starfish cũng đang muốn mở rộng giao thức đồng bộ thuộc sở hữu riêng của công ty IBM/Lotus và Nokia đã cùng nhau nắm giữ vị trí dẫn đầu trong phát triển SyncML nguyên thủy và đã quảng bá nó trong các hội nghị truyền thông và phần mềm
Với một bản nháp của các đặc tả và công việc quan trọng đã thực hiện trong nhóm liên công ty, SyncML nguyên thủy được đưa ra vào tháng 3-2000 với Ericsson, IBM, Lotus, Motorola, Palm, Psion, và Starfish là những nhà bảo trợ Phiên bản đầu tiên của đặc tả được đưa ra tháng 12-2000 cung cấp một tập tham chiếu cài đặt Tháng 7-2001 tổ chức đã chuyển tiếp thành một tổ chức phi lợi nhuận để đáp ứng tốt hơn cho các nhu cầu phát triển của cộng đồng ĐBDL
Trang 28Cùng thời điểm Matsushita, Openwave, và Symbian đã tham gia với tư cách trở thành thành viên bảo trợ cho SyncML nguyên thủy Năm 2001, tổ chức SyncML đã có trên 600 công ty hỗ trợ, một trong số đó đã, đang phát triển các sản phầm phù hợp với SyncML
SyncML Initiative đã hợp nhất với OMA (Open Mobile Alliance) vào tháng
12 - 2002 Các đặc tả SyncML để lại được chuyển theo định dạng OMA với phiên bản chung của OMA SyncML, đồng bộ dữ liệu OMA và Quản lý thiết bị OMA vào tháng 5 – 2002 [11]
b/ Khái niệm đồng bộ dữ liệu OMA-SyncML
Đồng bộ dữ liệu OMA-SyncML (OMA DS) là một đặc tả cho kiến trúc đồng bộ dữ liệu chung dựa trên định dạng XML, hoặc giao thức đặc tả, phục vụ cho việc ĐBDL trên các thiết bị mạng Đồng bộ dữ liệu OMA-SyncML được thiết
kế cho việc sử dụng các thiết bị điện thoại cầm tay, kết nối mạng không liên tục vào các dịch vụ sẵn có trên hệ thống mạng [16]
Đồng bộ dữ liệu OMA-SyncML cũng có thể được sử dụng cho ĐBDL ngang hàng (peer - to - peer) Đồng bộ OMA-SyncML được thiết kế đặc biệt để điều khiển các dịch vụ mạng và thiết bị lưu trữ dữ liệu theo định dạng khác nhau hoặc sử dụng các hệ thống phần mềm khác nhau
1.3.3 Ứng dụng của đồng bộ dữ liệu OMA-SyncML
SyncML có thể hỗ trợ xây dựng nhiều ứng dụng yêu cầu dữ liệu và được đồng bộ trên nhiều các thiết bị khác nhau, sử dụng các kết nối mạng khác nhau Thêm vào đó, các ứng dụng phải thực sự đáng tin cậy, tốc độ xử lý nhanh, và hỗ trợ các chính sách bảo mật
Trang 291.4 CÁC CÔNG NGHỆ LIÊN QUAN
1.4.1 Ngôn ngữ XML
a/ Giới thiệu
XML (Extensible Markup Language, "Ngôn ngữ Đánh dấu Mở rộng") là ngôn ngữ đánh dấu cho các tài liệu chứa thông tin có cấu trúc Nó là một tập con đơn giản của SGML, có khả năng mô tả nhiều loại dữ liệu khác nhau [11]
Ngôn ngữ đánh dấu là kỹ thuật để xác định các cấu trúc trong một tài liệu Đặc tả XML định nghĩa một cách chuẩn thể thêm đánh dấu vào tài liệu
Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet
Các ngôn ngữ dựa trên XML (thí dụ: RDF, RSS, MathML, XHTML, …) được định nghĩa theo cách thông thường, cho phép các chương trình sửa đổi và kiểm tra hợp lệ bằng các ngôn ngữ này mà không cần có hiểu biết trước về hình thức của chúng
b/ Đặc điểm
XML cung cấp một phương tiện dùng văn bản để mô tả thông tin và áp dụng một cấu trúc kiểu cây cho thông tin đó Tại mức căn bản, mọi thông tin đều thể hiện dưới dạng văn bản, chen giữa là các thẻ đánh dấu (markup) với nhiệm vụ
ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự, các phần tử dùng để chứa dữ liệu, và các thuộc tính của các phần tử đó
Đơn vị cơ sở của XML là các ký tự, theo định nghĩa của Universal Character Set (Bộ ký tự toàn cầu) Các ký tự được kết hợp theo các tổ hợp chuỗi hợp lệ để tạo thành một tài liệu XML Tài liệu này gồm một hoặc nhiều thực thể, mỗi thực thể thường là một phần nào đó của các ký tự thuộc tài liệu, được mã hóa dưới dạng một chuỗi các bit và lưu trữ trong một tệp văn bản
Sự phổ biến của các phần mềm soạn thảo văn bản (word processor) đã hỗ trợ việc soạn thảo và bảo trì tài liệu XML một cách nhanh chóng Trước XML, có rất ít ngôn ngữ mô tả dữ liệu với các đặc điểm đa năng, thân thiện với giao thức internet, dễ học, dễ tạo
Thực tế, đa số các định dạng trao đổi dữ liệu đều chuyên dụng, có tính độc quyền, và có nhị phân (chuỗi bit thay vì chuỗi ký tự), khó dùng chung giữa các ứng dụng phần mềm khác nhau hay giữa các hệ nền (platform) khác nhau Việc tạo
và bảo trì trên các trình soạn thảo thông dụng lại càng khó khăn
Trang 30Bằng cách cho phép các tên dữ liệu, cấu trúc dữ liệu có thứ bậc, ý nghĩa của các phần tử, thuộc tính có tính chất mở và có thể được định nghĩa bởi một giản đồ tùy biến được, XML cung cấp một tập cơ sở cú pháp dùng cho việc tạo lập các ngôn ngữ đánh dấu dựa XML theo yêu cầu Cú pháp chung của các ngôn ngữ đó là
cố định, các tài liệu phải tuân theo các quy tắc chung của XML, bảo đảm rằng tất
cả các phần mềm hiểu XML ít ra cũng phải có khả năng đọc (phân tích cú pháp - parse), và hiểu bố cục tương đối của thông tin trong các tài liệu đó Giản đồ chỉ bổ sung một tập các ràng buộc cho các quy tắc cú pháp Các giản đồ thường hạn chế tên của phần tử, thuộc tính và các cấu trúc thứ bậc được phép Ví dụ, chỉ cho phép một phần tử có tên 'ngày sinh' chứa một phần tử có tên 'ngày' và một phần tử có tên 'tháng', mỗi phần tử phải chứa đúng một ký tự Đây là điểm khác biệt giữa XML và HTML
XML không hạn chế về việc nó được sử dụng như thế nào Mặc dù XML về
cơ bản là dạng văn bản, các phần mềm với chức năng trừu tượng hóa nó thành các định dạng khác giàu thông tin hơn đã nhanh chóng xuất hiện, quá trình trừu tượng hóa này được thực hiện chủ yếu qua việc sử dụng các giản đồ định hướng kiểu dữ liệu (datatype-oriented schema), và khuôn mẫu lập trình hướng đối tượng (mà trong đó, mỗi tài liệu XML được thao tác như là một đối tượng) Những phần mềm như vậy có thể coi XML như là dạng văn bản đã được tuần tự hóa, chỉ khi nó cần truyền dữ liệu qua mạng
Trang 311.4.2 Ngôn ngữ WML
a/ Giới thiệu
Ngôn ngữ đánh dấu không dây (Wireless Markup Language - WML), dựa trên tài liệu XML, là một ngôn ngữ đánh dấu mở rộng cho các thiết bị cài đặt các đặc tả giao thức ứng dụng mạng không dây (WAP) như điện thoại cầm tay, Palm,… và sử dụng các ngôn ngữ đánh dấu khác như, WAP, XHTML, và thậm chí
cả HTML chuẩn
WML được xây dựng trên nền tảng DHTML của Openwave, và các ngôn ngữ đánh dấu tương ứng của Nokia, Ericssion WapFourm đã tạo ra phiên bản đầu tiên 1.1 năm 1999 WML bản 2.0 được đưa ra 2001, tuy nhiên nó vẫn không được chấp nhận rộng rãi Phiên bản mới nhất hiện đang sử dụng là 1.3 [27]
b/ Cấu trúc WML
WML khá giống với HTML (Hyper Text Language), trong đó nó cung cấp các biểu mẫu, các cách thể hiện văn bản, hình ảnh, các liên kết, … Tài liệu WML được biết như là một khung (deck) Dữ liệu trong khung được cấu trúc thành nhiều trang (card), mà mỗi trong số đó biểu diễn một sự tương tác với người sử dụng
* Deck:
Phần tử <wml> định nghĩa một deck WML, cặp thẻ đơn bắt đầu và kết thúc trong mỗi file WML: mỗi tài liệu, một deck Nếu cần, phần tử <wml> có thể có hoặc không chứa phần tử <head>, phần tử <template>, tuy nhiên, chúng luôn chứa phần tử <card> [27]
Trang 321.4.3 Giao thức WAP
a/ Giới thiệu
WAP (Wireless Application Protocol) – là một kiến trúc mạng, tập hợp nhiều giao thức cho việc truyền tải nội dung web đến các thiết bị không dây WAP
là công nghệ mở, dựa trên mô hình mạng máy khách – máy chủ (client-server) và thừa kế các chuẩn giao thức Internet nhƣ HTML, XML, TCP/IP…[7]
b/ Kiến trúc Wap
Khi các thiết bị cầm tay truy cập đến một trang wap, yêu cầu (WAP request) đƣợc thiết lập giữa thiết bị cầm tay và cổng dịch vụ wap (WAP Gateway) Sau đó cổng dịch vụ wap sẽ giải mã, và thông dịch yêu cầu này thành yêu cầu HTTP (HTTP request) rồi chuyển đến máy chủ dịch vụ web (Web server) Tiếp theo, máy chủ dịch vụ web xử lý những yêu cầu này và trả về một HTTP response cho cổng dịch vụ wap Từ đây cổng dịch vụ wap sẽ dịch HTTP response thành nội dung phản hồi wap (WAP response) và mã hoá nó rồi chuyển tiếp tới thiết bị cầm tay [3]
Hình 1 7 Mô hình tổng quan wap [3]
Nhƣ hình trên, cổng dịch vụ wap (WAP gateway) giữ vai trò nhƣ cầu nối giữa mạng không dây, gồm có các thiết bị không dây với máy chủ mạng chứa các ứng dụng máy chủ (Application server)
Cổng dịch vụ wap bao gồm các thành phần chính sau:
* Cổng giao thức (Protocol gateway)
Cổng giao thức (Protocol gateway) chuyển những yêu cầu từ vùng đệm giao thức wap (WAP protocol stack) tới vùng đệm giao thức world wide web (WWW protocal stack) (HTTP và TCP/IP)
Trang 33* Trình mã hoá thông tin và giải mã (Content encoders và decoders)
Trình mã hoá chuyển thông tin Web thành dạng nén, để giảm số lượng và kích thước các gói dữ liệu thuận tiện cho việc truyền lên mạng không dây (Wireless data network) Khi thiết bị cầm tay gửi yêu cầu đến ứng dụng WAP (WAP application) chạy trên một máy chủ dịch vụ web (Web server), trước tiên yêu cầu này đi qua cổng dịch vụ wap, nơi mà nó được giải mã, và thông dịch thành các yêu cầu HTTP, và chuyển tới đường dẫn (URL) thích hợp Sau đó nội dung phản hồi (response) được gửi ngược trở lại cổng dịch vụ wap, mã hoá nội dung phản hồi đó và chuyển tiếp tới thiết bị cầm tay
Các lớp giao thức WAP
Lớp 6 Môi trường ứng dụng không dây (WAE: Wireless Application Environment)
Lớp ứng dụng, hỗ trợ các công cụ ứng dụng khai thác Internet truyền tải trực tiếp Lớp này sử dụng kết hợp ngôn ngữ WML và các mã lệnh WMLScript
Lớp 5 Giao thức phiên không dây (WSP: Wireless Session Protocol)
Lớp này định hướng kết nối giữa thiết bị và hệ thống Internet Khi 1 kết nối được thiết lập, dữ liệu sẽ được truyền tải 2 chiều giữa Internet và thiết bị, sau đó WSP lại gửi các gói dữ liệu đến lớp WTP kế tiếp
Nếu phiên làm việc (session) không được định hướng cho kết nối, dữ liệu sẽ được truyền tải mặc định xuống thiết bị từ mạng WSP một lần nữa gửi gói dữ liệu xuống lớp kế tiếp WTLS
Lớp 4 Giao thức truyền không dây (WTP: Wireless Transaction Protocol)
Lớp này họat động tương tự một cảnh sát giao thông, đóng vai trò giữ cho
dữ liệu hợp logic Đồng thời phân lọai dữ liệu theo 1 trong 3 kiểu sau:
Đáng tin cậy 2 chiều (Reliable two-way),
Đáng tin cậy 1 chiều (Reliable one-way)
Không đáng tin cậy 1 chiều(Unreliable one-way)
Lớp WSP và WTP tương tự HTTP trong giao thức TCP/IP
Trang 34Lớp 3 Lớp bảo mật đường truyền không dây
(WTLS:Wireless Transport Layer Security)
WTLS hợp nhất những tính năng bảo mật dựa trên chuẩn giao thức bảo mật lớp truyền tải (TLS) đã được thiết lập Bao gồm việc kiểm tra bảo toàn dữ liệu và
bí mật trên cổng dịch vụ wap (WAP Gateways), cung cấp chức năng thẩm định quyền và mã hóa tương tự máy khách như lớp bảo vệ Socket (Secure Socket Layer – SSL) trong mạng Web
Giống SSL, WTLS là tuỳ chọn, và chỉ được sử dụng khi máy chủ nội dung yêu cầu
Lớp 2 Giao thức gói dữ liệu không dây (WDP:Wireless Datagram Protocol)
Lớp này kết hợp các lớp trên với lớp hệ thống mạng truyền tải (Network carrier) WDP đơn giản hóa việc lắp ráp và thích ứng WAP với hệ thống truyền tải không dây
Lớp 1 Lớp truyền tải mạng (Network Carier)
Lớp hệ thống mạng truyền tải, còn được gọi là Bearers, hiện có rất nhiều công nghệ truyền tải mạng không dây được cung cấp và sử dụng như:
GMS, IS-136, CDMA, PHS, CDPD, PDC-P, i-DEN,FLEX……
Trang 35Chương 2 KIẾN TRÚC VÀ GIAO THỨC CỦA
ĐỒNG BỘ DỮ LIỆU OMA – SYNCML
2.1 KIẾN TRÚC CỦA ĐỒNG BỘ DỮ LIỆU OMA-SYNCML
Đồng bộ dữ liệu OMA-SyncML không chỉ định nghĩa một chuẩn, mà còn
định nghĩa kiến trúc ĐBDL và các giao thức đồng bộ dữ liệu Kiến trúc bao gồm
giao thức đặc tả, cũng như các khái niệm mô phỏng SyncML (SyncML Adapter)
và giao diện SyncML (SyncML Interface)
Kiến trúc đồng bộ dữ liệu SyncML được sử dụng để mô tả mô hình hệ
thống tích hợp với các cài đặt đồng bộ dữ liệu OMA [16]
Hình 2 1 Đồng bộ dữ liệu OMA-SyncML [16]
Ứng dụng A miêu tả một dịch vụ mạng cung cấp đồng bộ dữ liệu với các
ứng dụng khác (ứng dụng B) Dịch vụ và thiết bị được kết nối qua giao thức mạng
chung (ví dụ HTTP)
Ứng dụng A sử dụng một giao thức đồng bộ dữ liệu, được cài đặt như là
“máy đồng bộ” (Sync Engine) “Bộ quản lý đồng bộ máy chủ” (Sync Server
Agent) quản lý “máy đồng bộ” truy cập tới mạng, và giao tiếp với các tác vụ đồng
bộ dữ liệu tới/từ ứng dụng client “Bộ quản lý đồng bộ máy chủ” thực hiện các
công việc này thông qua chức năng trong “Giao diện SyncML” (SyncML I/F)
Sync ML/IF
SyncML Adapter
Sync ML/IF
SyncML Adapter
Transport
SyncML XML Obj3ect
Appplication/vnd.syncml
Trang 36“SyncML I/F” là giao diện lập trình ứng dụng đối với “Bộ chuyển đổi SyncML” (SyncML Adapter) “Bộ chuyển đổi SyncML” là tiến trình khái niệm hóa, mà bộ phát và bộ nhận sử dụng để định dạng các đối tượng SyncML khi giao tiếp với nhau “Bộ chuyển đổi SyncML” cũng là thực thể kiến trúc, là bề mặt giao tiếp với lớp giao vận mạng, dùng để tạo và lưu giữ một kết nối mạng giữa ứng dụng A và ứng dụng B
Ứng dụng B tận dụng “Bộ quản lý đồng bộ máy khách” (Sync Client Agent) để truy cập mạng và “Bộ chuyển đổi SyncML” thông qua các chức năng của “SyncML I/F”
a/ Kiến trúc bên trong OMA-SyncML
OMA-SyncML thông qua một lớp trực quan của kiến trúc phần mềm để đồng
bộ dữ liệu trên thiết bị cầm tay Lớp trực quan này giống giao thức lớp mạng TCP/IP, nhưng khác nhau mức ngữ nghĩa Toàn bộ kiến trúc hệ thống đồng bộ được chia thành các lớp sau: [6]
Hình 2 2 Kiến trúc các lớp của SyncML và vị trí của giao thức đồng bộ trong toàn bộ khối
phần mềm trên các thiết bị mobile và máy chủ mạng [6]
Trang 37 Lớp ứng dụng:
Ứng dụng như lịch công tác (calendar), và ứng dụng logic đồng bộ, thường
tách rời trong một máy đồng bộ (synchronization engine) Tại lớp này, một ứng
dụng trên một máy khách sẽ giao tiếp với một ứng dụng trên máy chủ Sự trao đổi thông tin hoàn toàn xảy ra trải dọc qua nhiều lớp thằng đứng như trên hình
vẽ Hai ứng dụng đồng bộ sẽ tập trung vào các ngữ nghĩa ứng dụng, cũng như những gì mà gây ra các xung đột cập nhật trong quá trình ĐBDL
Lớp dữ liệu:
Các nút cùng mức là 2 kho dữ liệu File được lưu trữ trên bộ nhớ trong của máy khách (thiết bịcầm tay) có thể tương ứng với các bản ghi hoặc các dòng trong csdl máy chủ Lớp dữ liệu xác định loại dữ liệu được đồng bộ Định dạng của dữ liệu đồng bộ có thể khác so với định dạng dữ liệu ban đầu được lưu trữ trong 2 kho dữ liệu tại lớp này Hầu hết các trường hợp dữ liệu khởi tạo sẽ được chuyển theo định dạng chuẩn OMA-SyncML trong suốt quá trình đồng
bộ
Lớp đồng bộ:
Đóng vai trò chính trong đặc tả của OMA-SyncML Lớp này liên quan tới việc truyền những thay đổi của dữ liệu Giao thức đồng bộ xác định luồng trao đổi giữa 1 máy khách và 1 máy chủ trong suốt quá trình đồng bộ Đặc tả giao thức DTD OMA-SyncML chủ yếu xác định chính xác mẫu của mỗi giao tiếp
Để làm được điều này, lớp đồng bộ cũng bao gồm các thuộc tính đặc tả dữ liệu, như định danh của kho dữ liệu và định danh của các phần tử dữ liệu
Trang 38b/ Kho dữ liệu đồng bộ
Ý nghĩa đồng bộ 2 kho dữ liệu là gì? Một câu trả lời có thể là: sau khi xử lý đồng bộ, 2 kho dữ liệu là giống hệt nhau Tuy nhiên, điều này dẫn đến một định nghĩa không đầy đủ Ví dụ, một thiết bị điện thoại cầm tay chỉ có thể lưu trữ một tập hạn chế các trường dữ liệu của một phần tử dữ liệu, trong khi phần tử dữ liệu tương ứng trên máy chủ có thể lưu trữ tất cả các trường Ngoài ra, thiết bị điện thoại cầm tay có thể định danh các phân tử dữ liệu khác với máy chủ
OMA-SyncML phụ thuộc vào tín hiệu “tương đương” giữa các phần tử dữ liệu trong 2 kho dữ liệu đang được đồng bộ Kho dữ liệu A được đồng bộ với kho
dữ liệu B nếu và chỉ nếu tất cả phần tử dữ liệu trong kho A có trong kho B [6]
OMA-SyncML không định nghĩa chính xác sự “bằng nhau” mà chỉ mang tính xấp xỉ nào đó Nếu một kho dữ liệu A được đồng bộ với kho dữ liệu B, thì nó không đồng nghĩa với việc kho dữ liệu B được đồng bộ với kho dữ liệu A
c/ Ngôn ngữ đồng bộ và kiểu nội dung MIME
OMA-SyncML chủ yếu mô tả các tác vụ trên dữ liệu và truyền các tác vụ
đó theo một cấu trúc xác định Các tác vụ tập trung trên các phần tử dữ liệu nhất định, và bản thân các phần tử dữ liệu phải được biểu diễn và truyền đi theo một định dạng có cấu trúc và nhất quán OMA-SyncML định nghĩa nhiều tác vụ như: thêm, thay thế, và xóa dữ liệu trong kho dữ liệu Các thao tác đó được thực hiện trên dữ liệu của ứng dụng lịch làm việc, ứng dụng sổ địa chỉ, dữ liệu quan hệ, tài liệu XML, và nhiều loại khác OMA-SyncML sử dụng cú pháp XML để mô tả các tác vụ Nó sử dụng các kiểu dữ liệu MIME để xác định các định dạng dữ liệu
Các thông điệp OMA-SyncML được chỉ định sử dụng cấu trúc chuẩn XML Các thông điệp sử dụng XML để biểu diễn có thể dài hơn so với biểu diễn dạng binary tương ứng Điều này dẫn đến lý do tại sao XML (và SyncML) có thể không phù hợp cho các mạng không dây có băng thông hạn chế Trong phần lớn các trường hợp, SyncML sử dụng loại phần tử ngắn và các tên thuộc tính ngắn nhằm rút ngắn tài liệu XML Thêm vào đó, các thông điệp SyncML có thể được mã hóa theo các định dạng binary một cách hiệu quả như WBXML
Rõ ràng, ưu điểm chính của XML là nó được chấp nhận rộng rãi như một chuẩn quốc tế cho tài liệu đánh dấu văn bản Nó cho phép lưu giữ cấu trúc tài liệu cũng như nội dung Điều này đem đến nhiều thuận lợi cho việc đồng bộ dữ liệu, khi không chỉ nắm giữ nội dung, mà còn nắm giữ cả cấu trúc ngữ nghĩa của dữ liệu cần đồng bộ
OMA-SyncML sử dụng chuẩn công nghiệp MIME cho việc xác định các loại nội dung Các thông điệp SyncML được đăng ký kiểu MIME Các thông điệp văn bản SyncML được đăng ký với kiểu ”application/vnd.syncml+xml”, trong khi các thông điệp được mã hóa nhị phân là “application/vnd.syncml+wbxml” [6]
Trang 392.2 GIAO THỨC ĐỒNG BỘ OMA - SYNCML
2.2.1 Các thực thể sử dụng giao thức đồng bộ
Hình 2.3 biểu diễn đồng bộ dữ liệu giữa 2 thực thể đóng vai trò như là máy khách đồng bộ dữ liệu OMA (OMA DS Client) và máy chủ đồng bộ dữ liệu OMA (OMA DS Server) Máy khách gửi thông điệp SyncML bao gồm những thay đổi liên quan tới dữ liệu trên máy khách tới máy chủ đồng bộ dữ liệu (DS Server) Máy chủ ĐBDL thực hiện các tác vụ (thêm, cập nhật, xóa, ) qua các thông điệp SyncML với dữ liệu được lưu trữ trong máy chủ Sau đó, máy chủ thông báo trở lại những thay đổi cho máy khách [16]
SyncML message, client modifications
SyncML message, server modifications
Hình 2 3 Các thành phần sử dụng giao thức đồng bộ [16]
OMA DS Client:
Đây là thiết bị chứa một tác nhân đồng bộ client (sync client agent) và gửi các sửa đổi lần đầu tiên của nó tới máy chủ Mặc dù máy khách đồng bộ OMA luôn có quy tắc để gửi các sửa đổi lần đầu của nó, tuy nhiên trong một số trường hợp máy chủ có thể đóng vai trò khởi tạo đồng bộ Máy khách đồng bộ OMA có thể là máy điện thoại cầm tay, PC hoặc thiết bị PDA
OMA DS Server:
Đây là thiết bị chứa tác nhân đồng bộ máy chủ (sync server agent), máy đồng bộ (sync engine), và thường đợi máy khách đồng bộ OMA khởi tạo quá trình đồng bộ cũng như gửi những thay đổi tới máy chủ Máy chủ trả lời cho việc xử lý các phân tích đồng bộ (sync) khi nó nhận được những thay đổi từ máy khách Thêm vào đó, nó có thể khởi tạo đồng bộ nếu mức giao vận hỗ trợ các câu lệnh không tự nguyện từ máy chủ tới máy khách Máy chủ OMA thường là các thiết bị máy tính
Trang 402.2.2 Các pha của giao thức đồng bộ dữ liệu
Giao thức đồng bộ dữ liệu bao gồm các nhiều pha khác nhau Mỗi pha là
một phiên làm việc hoàn chỉnh Nếu máy khách khởi tạo phiên đồng bộ, thì pha
đầu tiên là pha khởi tạo
Pha thứ 2 là pha trao đổi dữ liệu giữa máy khách và máy chủ Hướng trao
đổi dữ liệu không phụ thuộc vào kiểu đồng bộ được sử dụng Pha cuối cùng trong
suốt phiên đồng bộ là pha kết thúc, làm nhiệm vụ kết thúc và thực hiện các tác vụ
giải phóng phiên đồng bộ
Giao thức đồng bộ xác định số gói mà được truyền qua lại trong các pha của
phiên làm việc Hình 2.4 biều diễn phiên đồng bộ giữa 1 máy khách và máy chủ có
bao gồm các gói trao đổi theo biểu đồ tuần tự:
Hình 2 4 Số các gói trong phiên đồng bộ
a/ Khởi tạo (Initialization)
Pha khởi tạo bao gồm các chức năng sau:
Xác thực giữa máy chủ và máy khách
Trao đổi những khả năng của thiết bị và dịch vụ
Chỉ định nội dung được đồng bộ và kiểu đồng bộ
Kiểm tra phù hợp với phiên đồng bộ trước
Pkg #0: Thông báo máy chủ
Pkg #1: Khởi tạo gói từ client
Pkg #2: Khởi tạo gói từ server
Pkg #3: Gói Sync từ client
Pkg #4: Gói Sync từ server Pkg #5: Ánh xạ dữ liệu tới server
Pkg #6: Kết thúc
Pha khởi tạo
Pha trao đổi
dữ liệu
Pha kết thúc Pha thông báo server