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 đú.