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.
Bằ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.
1.4.2 Ngụn ngữ WML a/. Giới thiệu 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]
<?xml version=”1.0”>
<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.2//EN” http://www.wapforum.org/DTD/wml_1.2.xml>
<wml> <card>
<p>Unisoft Travel</p>
<p>Welcome to our WAP site</p> </card>
</wml>
* card
Deck cú thể chứa một hay nhiều cặp thẻ <card>, đại diện cho một hay nhiều card, nhƣng tài liệu chỉ một card.
1.4.3 Giao thức WAP a/. Giới thiệu 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).
* 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.
Lớ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ƣ:
Chƣơ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).
App A Sync Engine Sync Server Agent App B Sync Client Agent Sync ML/IF SyncML Adapter Sync ML/IF SyncML Adapter Transport SyncML XML Obj3ect Appplication/vnd.syncml
“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] Lớp ứng dụng (Application) Lớp dữ liệu (Data) Lớp đồng bộ (Synchronization) Lớp giao vận (Transport) Lớp vật lý (Physical)
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]
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.
Lớp giao vận:
Bao gồm cỏc giao thức truyền tin lớp mạng. Lớp này kết nối với cỏc thụng điệp trao đổi.
Lớp vật lý:
Bao gồm thiết bị kết nối trung gian nối từ vựng mạng rộng lớn tới cỏc vựng mạng cục bộ, cỏc mạng nhỏ (cellular), hoặc thậm chớ cỏc mạng Bluetooth. Giao thức trờn lớp giao vận cú thể tƣơng tỏc qua nhiều mạng vật lý. Vớ dụ, HTTP cú thể làm việc trờn cỏc mạng cú dõy, khụng dõy, trong khi OBEX cú thể làm việc trờn cỏc kết nối Bluetooth hoặc hồng ngoại.
b/. 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ƣ: