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
OMA DS client OMA DS server
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.
2.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
Client Server
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
Pha khởi tạo tƣơng đối giống với thủ thục đăng nhập tới mỏy chủ dịch vụ. Nú cú thể ngay lập tức diễn ra quỏ trỡnh trao đổi dữ liệu trong pha này, tuy nhiờn trờn thực tế, pha khởi tạo thƣờng tỏch biệt với pha diễn ra sự trao đổi dữ liệu.
1/.Chức năng xỏc thực (Authentication)
Xỏc thực giữa mỏy chủ và mỏy khỏch là 2 chiều. Mỏy khỏch cú thể tự xỏc thực tới mỏy chủ và ngƣợc lại. Nếu mỏy khỏch khụng tự động xỏc thực, mỏy chủ sẽ dừng và chờ đợi xỏc thực, sau đú quỏ trỡnh đồng bộ mới đƣợc tiếp tục.
Thủ tục xỏc thực SyncML đƣợc định nghĩa chuẩn trong đặc tả giao thức đồng bộ dữ liệu, nhƣng cú một số vấn đề cần chỳ ý:
Xỏc thực phiờn, xỏc thực thụng điệp Đại diện xỏc thực MD5 và xử lý nonce Đồng bộ lần đầu giữa mỏy chủ và mỏy khỏch
Việc xỏc thực cú thể đƣợc thực hiện cho toàn bộ phiờn OMA-SyncML hoặc chỉ xỏc thực một thụng điệp gửi đi. Trong trƣờng hợp xỏc thực phiờn, nú đƣợc thực hiện một lần trong pha khởi tạo. Cỏc pha sau đú, việc xỏc thực đƣợc thực hiện cho mỗi thụng điệp. Lƣợc đồ xỏc thực dựa trờn thụng điệp cú tớnh bảo mật cao hơn so với xỏc thực phiờn. Trong trƣờng hợp sử dụng kỹ thuật xỏc thực cơ bản, lƣợc đồ xỏc thực dựa trờn thụng điệp cú thể để lộ mật khẩu nếu lớp giao vận sử dụng khi đồng bộ khụng đảm bảo tớnh bảo mật.
Lƣợc đồ xỏc thực dựa trờn thụng điệp cú ƣu điểm nếu truyền tin đƣợc định tuyến tới một mỏy chủ khỏc của lớp thứ 3 trong phiờn đồng bộ. Trong khi đú, ƣu điểm của xỏc thực dựa trờn phiờn làm việc sẽ tối ƣu vấn đề truyền tin hơn vỡ chỉ phải thực hiện một lần tại thời điểm khởi tạo nờn cỏc gúi thụng điệp trao đổi sẽ nhỏ nhẹ hơn, đồng thời giảm cỏc yờu cầu phải xử lý.
Khi sử dụng đại diện xỏc thực MD5 (MD5 digest), một chuỗi nonce đƣợc truyền giữa một mỏy khỏch và một mỏy chủ. Nonce cú thể đƣợc lƣu lại cho phiờn đồng bộ tiếp theo. Nếu khụng đƣợc lƣu lại cho phiờn tiếp theo, nonce sẽ đƣợc gửi lại tại pha bắt đầu của phiờn sau.
Một nonce là một chuỗi dữ liệu sinh ra duy nhất và tạo một giỏ trị đại diện khi phản hồi cho yờu cầu của đại diện xỏc thực MD5.
2/. Trao đổi khả năng của thiết bị
Mục đớch là để thụng bỏo cho cỏc thiết bị mỏy khỏch về cỏc đặc tớnh liờn quan tới phần mềm, phần cứng của chỳng cũng nhƣ cỏc dịch vụ phự hợp với tớnh năng tƣơng ứng. Điều này thực sự cần thiết trong quỏ trỡnh đồng bộ, nú giỳp mỏy chủ đồng bộ cú thể hỗ trợ một cỏch tốt nhất phự hợp với cỏc thiết bị mỏy khỏch trong quỏ trỡnh đồng bộ. Vớ dụ một số đặc tớnh cú thể trao đổi:
Nhà sản xuất thiết bị, loại thiết bị, phiờn bản
Cỏc ứng dụng hỗ trợ (vớ dụ ứng dụng lịch làm việc)
Kho dữ liệu địa chỉ và cỏc định dạng dữ liệu mà ứng dụng hỗ trợ Kiểu đồng bộ (Sync Types)
3/. Nội dung và kiểu đồng bộ
Thụng tin liờn quan đến kho dữ liệu cũng rất quan trọng trong quỏ trỡnh đồng bộ. Thụng tin này đƣợc trao đổi trong pha khởi tạo. Tƣơng tự, phƣơng thức đồng bộ cũng cần đƣợc trao đổi, đú là kiểu đồng bộ (Sync Type).
Để xỏc định tất cả thụng tin này, cõu lệnh cảnh bỏo, định nghĩa bởi giao thức đặc tả, đƣợc trao đổi giữa mỏy chủ và mỏy khỏch. Trong cõu lệnh cảnh bỏo, kho dữ liệu URI và kiểu đồng bộ cũng đƣợc chỉ định. Hỡnh bờn dƣới biểu diễn kiểu đồng bộ và URIs trong cõu lờnh cảnh bỏo:
4/. Kiểm tra tớnh phự hợp của lần đồng bộ trước
Trong pha khởi tạo, thiết bị mỏy khỏch và mỏy chủ cũng cú thể kiểm tra trờn bộ đỏnh dấu, chỉ định lần đồng bộ cuối cựng. Bộ đỏnh dấu cú thể là 1 trƣờng thời gian hoặc một số tuần tự. So sỏnh cỏc bộ đỏnh dấu cho phộp cỏc thực thể nhận biết nếu cú lỗi sau lần đồng bộ trƣớc. Vớ dụ lỗi cú thể là cỏc thiết bị chƣa bao giờ đồng bộ với nhau, hoặc cỏc thụng số đồng bộ đó đƣợc đặt lại,…
Một cỏch tự nhiờn, sẽ cú cỏch khụi phục nếu việc kiểm tra tớnh phự hợp bị lỗi. Mỏy chủ thƣờng khởi tạo một phiờn đồng bộ chậm (slow sync) tới một thiết bị mỏy khỏch để khụi phục. Điều này cú thế tốn nhiều thời gian vỡ phiờn đồng bộ này cú nhiều tỏc vụ đƣợc thực hiện và dữ liệu đƣợc trao đổi tƣơng đối lớn.
b/. Trao đổi dữ liệu (Data Exchange)
Mục đớch chớnh của pha trao đổi dữ liệu là để phục vụ cho việc truyền những thay đổi đó xảy ra ở phiờn đồng bộ trƣớc. Những thay đổi cú thể bao gồm dữ liệu đồng bộ.
Hƣớng gửi những thay đổi độc lập với kiểu đồng bộ đang sử dụng. Thờm vào đú, hƣớng cũng độc lập với những thay đổi đó thực hiện từ lần đồng bộ gần nhất. Điều này chứng tỏ, mặc dự kiểu đồng bộ 2 chiều cú thể sử dụng nhƣng những thay đổi sẽ khụng đƣợc gửi từ một thực thể tới một thực thể khỏc nếu khụng cú thay đổi nào kể từ lần đồng bộ gần đõy nhất.
Đụi khi, trong quỏ trỡnh truyền những thay đổi từ một mỏy khỏch tới một mỏy chủ, khụng phải tất cả những thay đổi đều cú thể đƣợc gửi trong một thụng điệp SyncML. Thay vào đú, sẽ phải gửi một gúi SyncML bao gồm nhiều thụng điệp SyncML. Trong trƣờng hợp gửi những thay đổi từ mỏy khỏch, mỏy chủ phải đợi đến khi mỏy khỏch đó gửi hết những thay đổi, trƣớc khi mỏy chủ khởi tạo quỏ trỡnh gửi bất cứ thay đổi nào tới mỏy khỏch. Với cỏch này, mỏy chủ sẽ nhận biết tất cả cỏc xung đột cú thể xảy ra.
c/. Hoàn thành (Completion)
Pha hoàn thành đƣợc thiết kế để kết thỳc một phiờn hợp lệ và đảm bảo rằng cỏc thực thể đồng bộ đó nhận đƣợc thụng tin chỳng cần.
Cỏc chức năng chớnh của pha hoàn thành:
Mỏy khỏch tƣờng trỡnh nú đó xử lý thành cụng cỏc thay đổi từ mỏy chủ thế nào. Mỏy khỏch gửi thụng tin ỏnh xạ cho tất cả cỏc phần tử đƣợc thờm tới mỏy chủ. Mỏy chủ thụng bỏo nú đó hoàn thành mọi thứ.
Một phiờn đồng bộ cú thể hoặc là hoàn thiện sau gúi pkg#4 hoặc gúi pkg#6. Nếu mỏy chủ khụng gửi bất cứ thay đổi nào tới mỏy khỏch và nú khụng yờu cầu bỏo cỏo trạng thỏi trong phản hồi của gúi pkg#4, thỡ phiờn làm việc kết thỳc sau gúi #4.
Khi đồng bộ gồm cả truyền những thay đổi từ mỏy chủ tới mỏy khỏch, mỏy khỏch cần trả lời bằng cỏch gửi thụng tin trạng thỏi trở lại cho mỏy chủ. Mỏy chủ cũng cú thể từ chối những thụng tin này. Thụng tin trạng thỏi cú trong gúi pkg#5. Gúi pkg#5 cũng bao gồm thụng tin ỏnh xạ định danh. Việc gửi thụng tin ỏnh xạ tới mỏy chủ để đảm bảo rằng, mỏy chủ biết định danh nào mà mỏy khỏch sử dụng cho cỏc phần tử dữ liệu đƣợc thờm bởi mỏy chủ. Sau khi gửi thụng tin ỏnh xạ, mỏy khỏch sẽ nhận đƣợc phản hồi (ack) từ mỏy chủ trờn gúi pkg#6.
Đối với mỏy chủ, việc định nghĩa một điểm kết thỳc phiờn thực sự là rất khú bởi vỡ mỏy chủ là thực thể gửi gúi cuối cựng tới mỏy khỏch. Do vậy, mỏy chủ khụng chắc chắn liệu mỏy khỏch đó nhận đƣợc gúi cuối cựng hay chƣa. Tuy nhiờn, một số giao thức giao vận mức thấp hơn đó cung cấp khả năng kiểm tra liệu dữ liệu cú đƣợc gửi thành cụng hay khụng. Nếu cú chức năng này, mỏy chủ sử dụng thụng tin đú, và cập nhật cỏc thẻ đồng bộ (sync anchors) khi dữ liệu đó gửi thành cụng. Nếu khụng cú chức năng này, mỏy chủ cần cập nhật cỏc thẻ đồng bộ sau khi gửi gúi cuối cựng tới mỏy khỏch.
d/. Cảnh bỏo mỏy chủ (Server Alert)
Mục đớch của pha cảnh bỏo mỏy chủ là đảm bảo rằng mỏy khỏch khởi tạo đồng bộ với mỏy chủ. Pha cảnh bỏo mỏy chủ phục vụ cỏc mục đớch:
Xỏc thực giữa mỏy chủ và mỏy khỏch
Xỏc định nội dung đồng bộ và kiểu đồng bộ
Những chức năng này khụng cú trong pha khởi tạo. Tuy nhiờn, sự trao đổi khả năng thiết bị và kiểm tra sự phự hợp của phiờn đồng bộ trƣớc, khụng đƣợc thực hiện nhƣ là một phần của pha cảnh bỏo mỏy chủ.
Xỏc thực liờn quan tới pha cảnh bỏo mỏy chủ bởi vỡ, xỏc thực mỏy chủ sẽ là tỏc vụ ngăn cản một sự xõm chiến đồng bộ với một mỏy chủ thự địch.
Chức năng thứ 2 của pha cảnh bỏo mỏy chủ là xỏc định loại dữ liệu nào đƣợc đồng bộ, và kiểu đồng bộ nào đƣợc sử dụng cho dữ liệu đú.
2.2.3 Truyền dữ liệu lớn trong đồng bộ OMA-SyncML a/. Đối tƣợng dữ liệu lớn a/. Đối tƣợng dữ liệu lớn
Trong khi đồng bộ, đối tƣợng thu đƣợc cú thể bị hạn chế bởi 2 phần tử: kớch thƣớc tối đa của thụng điệp mà thiết bị đớch nhận đƣợc, và kớch thƣớc tối đa của đối tƣợng thiết bị cú thể nhận đƣợc.
Đặc tớnh này của giao thức đồng bộ dữ liệu cung cấp cụng cụ để đồng bộ một đối tƣợng, cú kớch thƣớc vƣợt quỏ sự cho phộp trờn một thụng điệp trao đổi giữa mỏy chủ đồng bộ và mỏy khỏch.
Điều này đƣợc thực hiện bằng cỏch:
Thiết bị gửi:
Chia nhỏ đối tƣợng thành cỏc mảnh vừa với kớch thƣớc thụng điệp rồi gửi cỏc mảnh đú đi. Mảnh đầu tiờn đƣợc gửi sẽ chứa kớch thƣớc của đối tƣợng, và tớn hiệu thụng bỏo cũn nhiều mảnh sẽ đƣợc gửi trong cỏc thụng điệp sau. Cỏc mảnh lần lƣợt đƣợc gửi đều cú tớn hiệu thụng bỏo cũn cỏc gúi tiếp sau, cho đến gúi cuối cựng đƣợc gửi. Gúi cuối cựng sẽ cú tớn hiệu thụng bỏo là gúi cuối cựng của đối tƣợng đƣợc gửi. [16]
Thiết bị nhận:
Sau khi nhận đƣợc mảnh cuối cựng, thiết bị nhận tự động ghộp cỏc mảnh lại thành đối tƣợng giống nhƣ ban đầu trƣớc khi phõn mảnh và gửi. Sau đú, một gúi trạng thỏi thụng bỏo kết quả nhận đƣợc gửi lại cho thiết bị gửi. [16]
Sending LO Device Receiving LO Device
Khởi tạo
Msg #1: Thiết bị gửi LO gửi mảnh đầu tiờn của dữ liệu
(chứa <Size> và <MoreData/>)
(Thiết bị nhận LO Pkg chứa <SupportLargeObjs/>, <MaxMsgSize> và <MaxObjSize>)
Resp #1: ACK thiết bị nhận LO
(status 213 – ô cỏc mảnh được chấp nhận và nằm trong bộ đệm ằ và Alert 222 – ô Next Message ằ)
Msg #2: Thiết bị gửi LO gửi mảnh thứ 2 của dữ liệu
(chứa <MoreData/>)
Resp #2: ACK của Thiết bị nhận LO
Gửi cỏc mảnh khỏc: giống như Msg #2 / Resp #2
Msg #n: Thiết bị gửi LO gửi mảnh cuối cựng của dữ liệu
(KHễNG CHỨA <MoreData/>)
Resp #n: ACK của thiết bị nhận LO
(Appropriate Status)
<Size> analysis
<Size> comparison
(Status 213 – ô cỏc mảnh được chấp nhận và nằm bộ đệm ằ và Alert 222 – ô Next Message ằ)
b/. Nhiều thụng điệp trong gúi dữ liệu
Giao thức đồng bộ OMA cung cấp chữc năng cho phộp truyền một gúi chứa nhiều thụng điệp [16]. Điều này là rất cần thiết khi gúi thụng điệp quỏ lớn và phải truyền từng thụng điệp. Lý do cú thể là hạn chế của giao thức truyền tin hoặc là khả năng của thiết bị khụng đỏp ứng.
Nếu một gúi SyncML đƣợc truyền theo nhiều thụng điệp SyncML, thụng điệp lớn nhất trong gúi chứa phần tử cuối cựng. Cỏc thụng điệp khỏc của gúi khụng chứa phần tử này. Phần tử cuối cựng (final element) chỉ cú thể đƣợc thờm vào thụng điệp khi tất cả cõu lệnh cần thiết thuộc gúi đó đƣợc gửi. Ngoài ra, phần tử cuối cựng này khụng đƣợc thờm nếu cỏc kết thỳc khỏc khụng đúng gúi trƣớc đú.
Nếu một thiết bị nhận một thụng điệp mà khụng cú cờ cuối cựng (Final flag) thỡ nú sẽ yờu cầu thụng điệp tiếp theo một cỏch tƣờng minh hoặc khụng tƣờng minh. Một yờu cầu tƣờng minh nghĩa là, nếu thiết bị nhận cỏc gúi khụng thành cụng thỡ nú sẽ gửi một cảnh bỏo đặc biệt. Một yờu cầu khụng tƣờng minh đƣợc thực hiện bằng cỏch, gửi thụng tin trạng thỏi liờn quan tới thụng điệp, hoặc cỏc cõu lệnh trong thụng điệp. Cú thể sử dụng cả 2 cỏch đồng thời.
Hỡnh 2. 6 Biểu đồ tuần tự vớ dụ sử dụng nhiều thụng điệp trong gúi [16]
OMA DS Client OMA DS Server
Pkg #3, Msg #1: Trạng thỏi cho khởi tạo (Init), một số sửa đổi client Pkg #4, Msg #1: Trạng thỏi cho client mod's, Cảnh bỏo cho thụng điệp tiếp Pkg #3, Msg #2: Trả lời của client mod's, Cảnh bỏo cho thụng điệp tiếp, Final
Pkg #4, Msg #2: Trạng thỏi cho client mod's, Server mod's, Final Pkg #5, Msg #1: Trạng thỏi cho server mod's, (Map operation)
…
2.3 GIAO THỨC ĐẶC TẢ OMA-SYNCML 2.3.1 Cỏc định danh trong OMA-SYNCML 2.3.1 Cỏc định danh trong OMA-SYNCML
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