Chƣơng 1 : TỔNG QUAN VỀ ĐỒNG BỘ DỮ LIỆU
2.2 GIAO THỨC ĐỒNG BỘ OMA-SYNCML
2.2.3 Truyền dữ liệu lớn trong đồng bộ OMA-SyncML
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)
…