Chƣơng 1 : TỔNG QUAN VỀ ĐỒNG BỘ DỮ LIỆU
2.3 GIAO THỨC ĐẶC TẢ OMA-SYNCML
2.3.1 Cỏc định danh trong OMA-SYNCML a/. Ánh xạ định danh dữ liệu a/. Ánh xạ định danh dữ liệu
Đồng bộ dữ liệu OMA-SyncML khụng ràng buộc hai kho dữ liệu đồng bộ phải cựng lƣợc đồ (schema). Đặc biệt đồng bộ dữ liệu OMA-SyncML cho phộp tất cả cỏc định danh dữ liệu và định dạng dữ liệu khỏc nhau trong cỏc tập dữ liệu. Tuy nhiờn, khi đú để sử dụng đồng bộ dữ liệu OMA-SyncML, ứng dụng đồng bộ cần cung cấp một ỏnh xạ giữa cỏc định danh dữ liệu của mỏy chủ, và trờn mỏy khỏch.
Vớ dụ, một tài liệu trờn mỏy chủ đồng bộ cú thể đƣợc gỏn với một định danh toàn cục duy nhất 16 byte (GUID). Bản tƣơng ứng của tài liệu này trờn thiết bị cầm tay cú thể đƣợc gỏn bởi một định danh cục bộ duy nhất, nhỏ hơn (LUID). Do vậy, khi ĐBDL trờn thiết bị cầm tay với dữ liệu trờn mỏy chủ, ứng dụng đồng bộ sẽ phải ỏnh xạ cỏc định danh nhỏ hơn tới cỏc định danh lớn hơn ...
Đồng bộ dữ liệu OMA cú hỗ trợ cỏc kỹ thuật để phục vụ mục đớch ỏnh xạ.
b/. Địa chỉ đớch và nguồn
Cỏc loại phần tử đớch và nguồn sử dụng trong OMA DS để xỏc định cỏc địa chỉ định tuyến nguồn và đớch tƣơng ứng. Nú chứa chuỗi định danh tờn nguồn (URI - Uniform Resource Identifier) hoặc tờn định danh nguồn (URN - Uniform Resource Name). Một URI thƣờng bắt đầu với định danh “http” hoặc “EMEI”.
í nghĩa của URI trong cỏc phần tử nguồn và đớch trong thụng điệp SyncML là xỏc định ngữ cảnh của nú [6]. Vớ dụ trong phần “đầu” của thụng điệp SyncML, thụng tin về phần tử đớch và nguồn xỏc định phần tử khởi tạo thụng điệp SyncML và phần tử đớch là một mỏy chủ mạng trong vựng ”syncml.org”.
<Target> <LocURI>http://www.syncml.org/sync-Server</LocURI> </Target> <Source> <LocURI>IMEI:098712345</LocURI> </Source>
c/. Cỏc tỏc vụ trong đồng bộ dữ liệu OMA-SyncML * Sửa dữ liệu
Đõy là tỏc vụ chung nhất trong OMA-SyncML, sử dụng để sửa một phần tử dữ liệu trong kho dữ liệu. Những sửa đổi khỏc nhau cú ngữ nghĩa khỏc nhau. Cú những sửa đổi chỉ thay đổi trong cỏc trƣờng của phần tử dữ liệu, và cũng cú những sửa đổi chỉ thay đổi cỏc thuộc tớnh mụ tả của một phần tử dữ liệu.
* Thờm dữ liệu
OMA-SyncML cho phộp mỏy khỏch và mỏy chủ sử dụng cỏc định danh khỏc nhau. Vớ dụ, cỏc phần tử dữ liệu mới đƣợc thờm vào kho dữ liệu mỏy chủ. Mỏy chủ chỉ thụng bỏo cho mỏy khỏch rằng tập cỏc phần tử dữ liệu đó đƣợc thờm và gửi chỳng tới mỏy khỏch. Nhƣ là một phần của quỏ trỡnh đồng bộ, mỏy khỏch thờm những phần tử này vào kho dữ liệu cục bộ, và cũng sinh ra định danh cục bộ cho cỏc phần tử dữ liệu đú. Mỏy khỏch giao tiếp với mỏy chủ, sử dụng cõu lệnh ỏnh xạ (Map).
* Xúa dữ liệu
Việc xúa dữ liệu xảy ra khi ngƣời dựng dự định xúa dữ liệu khỏi kho lƣu trữ. Loại này gọi là xúa cứng (hard delete). Trong quỏ trỡnh đồng bộ, thiết bị nhận đƣợc cõu lệnh xúa sẽ thực hiện xúa dữ liệu khỏi kho chứa.
Xúa mềm (soft delete) đƣợc thực hiện khi bộ nhớ trờn cỏc thiết bị cầm tay quỏ tải, khụng cũn chỗ trống cần phải giải phúng bộ nhớ. Khi đú, thiết bị sẽ hủy bỏ việc nhận dữ liệu từ mỏy chủ, chỉ giữ lại những phần tử dữ liệu nhất quỏn. Mỏy chủ khi nhận đƣợc cõu lệnh xúa mềm sẽ khụng gửi phần tử dữ liệu này tới mỏy khỏch thờm nữa.
Xúa sao lƣu (archive delete): kiểu xúa mà khi mỏy khỏch xúa dữ liệu, nú muốn mỏy chủ thực hiện lƣu trữ bản sao của dữ liệu bị xúa.
* Làm mới dữ liệu
Mỏy khỏch cú thể lấy dữ liệu mới nhất từ mỏy chủ.
* Tỡm kiếm dữ liệu
2.3.2 Cỏc phần tử giao thức đặc tả
a/. Cỏc phần tử chứa thụng điệp
Cỏc phần tử chứa thụng điệp (Message Container Elements) phục vụ cho việc đúng gúi cỏc thụng điệp trao đổi. Cú 3 phần tử đƣợc sử dụng để phõn tỏch phần đầu thụng điệp, dữ liệu thụng điệp hoặc dữ liệu đồng bộ [6].
* SyncML:
Bộ chứa thụng điệp SyncML là phần tử gốc của định nghĩa đặc tả DTD SyncML. Nú gồm hai phần tử SyncHdr và SyncBody.
* SyncHdr:
Chứa thụng tin về thụng điệp, tƣơng tự nhƣ địa chỉ trờn phong bỡ thƣ. SyncHdr chứa thụng tin nhƣ: nơi thụng điệp định chuyển tới (target), thụng điệp chuyển từ nơi nào (source), phiờn bản của giao thức đặc tả, và giao thức đồng bộ đang sử dụng. Thờm vào đú, SyncHdr chứa thụng tin mụ tả (meta) về khả năng của thiết bị, cũng nhƣ kớch thƣớc lớn nhất của thụng điệp cho phộp.
* SyncBody:
Đõy là thõn của thụng điệp SyncML. SyncBody chứa một tập cỏc cõu lệnh và cỏc phần tử quản lý giao thức.
b/. Cỏc phần tử quản lý giao thức
Trạng thỏi: đƣợc sử dụng để biểu diễn kết quả của cõu lệnh. Mỗi cõu lệnh cú một trạng thỏi, và chỳng phải cú trỡnh tự giống nhƣ cỏc cõu lệnh trong SyncML yờu cầu.
c/. Cỏc phần tử mụ tả dữ liệu
Data: là dữ liệu SyncML
Item: chứa dữ liệu
Meta: đƣợc sử dụng để xỏc định thụng tin mụ tả về phần tử cha.
d/. Cỏc phần tử cõu lệnh:
Cỏc cõu lờnh đƣợc sử dụng để tạo ra cỏc tỏc vụ trờn phần nhận thụng điệp SyncML. Phần tử chứa cõu lệnh phần lớn đều chứa dữ liệu, hoặc là chứa hạn chế cõu lệnh, hoặc truyền dữ liệu (payload). Dữ liệu đụi khi là sự liờn lạc, hoặc sự kiện, hoặc thụng tin email. Cỏc phần tử cõu lệnh cú thể đƣợc chia thành 3 nhúm cục bộ:
Cỏc phần tử cõu lệnh dữ liệu
Thờm (add): Thờm một hoặc nhiều dữ liệu vào kho dữ liệu
Sao chộp (copy): tạo một bản sao chộp của dữ liệu đó cú
Xúa (delete): loại bỏ phần tử khỏi kho dữ liệu
Get: lấy một phần tử, thụng tin thiết bị
Ánh xạ (map): đƣợc sử dụng bởi mỏy khỏch để thụng bỏo cho mỏy chủ về một kho dữ liệu, mà đó cú phần tử mới đƣợc tạo bởi cõu lệnh thờm.
Put: sẽ gửi một phần tử, thụng tin thiết bị
Thay thế (replace): sử dụng để cập nhật phần tử đó cú với thụng tin mới.
Cỏc phần tử cõu lệnh kho dữ liệu
Cảnh bỏo (alert)
Kết quả (results)
Tỡm kiếm (search): tỡm kiếm trong mỗi kho dữ liệu
Đồng bộ (Sync): là cõu lệnh đƣợc sử dụng để đồng bộ 2 kho dữ liệu
Cỏc phần tử cõu lệnh tiến trỡnh xử lý
Nguyờn tử (atomic): cỏc yờu cầu mà tất cả cỏc cõu lệnh con đƣợc thực hiện.
Liờn tục (sequence): yờu cầu cỏc cõu lệnh đƣợc thực hiện theo trỡnh tự xuất hiện.
e/. Cỏc phần tử chung
Cỏc phần tử chung xuất hiện nhƣ là cỏc phần tử con trong hầu hết cỏc cõu lệnh và cỏc phần tử SyncHdr nờn chỳng cũng đƣợc đặt tờn. Cỏc phần tử này sử dụng để cung cấp cỏc chức năng chung và trợ giỳp làm giảm số lƣợng cỏc luật phõn tớch cỳ phỏp cỏ biệt. [6]
Chal (short for Challenge): đƣợc sử dụng cho mục đớch xỏc thực.
Cmd: Chứa tờn ASCII của cõu lệnh
CmdID: chứa định danh của cõu lệnh trong thụng điệp SyncML
CmdRef: là định danh của cõu lệnh đang đƣợc tham chiếu trong trạng thỏi.
Cred: chứa tập cỏc ủy nhiệm (credentials) theo định dạng xỏc định. SyncML chỉ yờu cầu hỗ trợ định dạng cơ bản hoặc MD5
Final: là cờ chỉ định kết thỳc một gúi dữ liệu
Lang: cho phộp yờu cầu ngụn ngữ cho quỏ trỡnh truyền tải (payload)
LocName: chứa tờn hiển thị đọc đƣợc đối với địa chỉ
LocURI: chứa địa chỉ xỏc định
MoreData: thụng bỏo cho ngƣời nhận biết dữ liệu vẫn chƣa đƣợc gửi hết.
MsgID: định danh của thụng điệp hiện tại
MsgRef: định danh của thụng điệp đang đƣợc tham chiếu
NoResp: cờ xỏc định khụng cú phản hồi cho cõu lệnh trƣớc đú
NoResults: cờ chỉ định kết quả từ cõu lệnh Get, Search phải đƣợc lƣu trữ trong vựng đệm phục vụ cho cõu lệnh sau.
NumberOfChanges: chỉ đƣợc sử dụng trong cõu lệnh Sync, thụng bỏo cho ngƣời nhận biết cú bao nhiờu phần tử đƣợc gửi từ một nguồn xỏc định.
RespURI: là URI sử dụng để phản hồi cho thụng điệp hiện tại
SessionID: định danh của phiờn làm việc hiện tại
Source: chỉ định nguồn định tuyến hoặc thụng tin ỏnh xạ.
Target: chỉ định đớch ỏnh xạ hoặc định tuyến
VerDTD: chỉ định phiờn bản của giao thức đặc tả SyncML