Kiến trúc WAP

Một phần của tài liệu báo cáo xây dựng hệ thống m-commerce áp dụng công nghệ java (Trang 48)

5. Đánh giá chung: Xuất sắc F, Giỏi F, Khá F, Trung bình F, Yếu F, Điểm /

4.1 Kiến trúc WAP

Chuẩn WAP định nghĩa hai thành phần cốt yếu: một giao thức ứng dụng end-to-end và một môi trường ứng dụng dựa trên trình duyệt. Giao thức ứng dụng là một chồng giao thức truyền thông được nhúng trong mỗi thiết bị vô tuyến hỗ trợ WAP (còn được gọi là user agent). Phía máy chủ đảm nhiệm đầu kia của giao thức, nó có khả năng giao tiếp với mọi WAP client. Phía máy chủ còn được gọi là WAP gateway và nó định tuyến các yêu cầu từ client đến một máy chủ HTTP (hay Web). WAP gateway có thể được đặt trên một mạng viễn thông hay một mạng máy tính (một ISP). Hình 22 minh họa một cấu trúc ví dụ của một mạng WAP.

Hình 22. Cấu trúc mạng WAP

Trong Hình 22, client giao tiếp với WAP gateway trong mạng vô tuyến. WAP gateway phiên dịch các yêu cầu WAP thành yêu cầu WWW, như vậy WAP client có thể đưa yêu cầu cho máy chủ Web, WAP gateway dịch đáp ứng Web thành đáp ứng WAP hay thành một định dạng mà WAP client hiểu.

WAP Gateway WAP IP Mạng vô tuyến Mạng máy tính Web Server

Chương 4. Công nghệ WAP SV: Lê Ngọc Quốc Khánh

Hình 23. Mô hình lập trình WAP

Như ta có thể thấy, mô hình lập trình WAP dựa nhiều vào mô hình lập trình Web. Nhưng làm cách nào mà WAP gateway làm việc với HTML? Trong một số trường hợp, các dịch vụ dữ liệu hay nội dung trên máy chủ Web là ở dạng HTML. Một số WAP gateway có thể dùng để chuyển đổi các trang HTML thành một định dạng để có thể hiển thị trên các thiết bị vô tuyến. Nhưng bởi vì HTML không thật sự được thiết kế cho các màn hình nhỏ, giao thức WAP định nghĩa ngôn ngữ đánh dấu (markup) của riêng nó, Wireless Markup Language (WML), theo chuẩn XML và được thiết kế để hỗ trợ các ứng dụng trong điều kiện ràng buộc của các thiết bị di động. Trong hầu hết trường hợp, ứng dụng thật sự hay nội dung đặt trên máy chủ Web sẽ được tạo hoàn toàn bằng WAP với WML hoặc được sinh ra động sử dụng Java servlet hay JSP.

Trong HTML, không có các hàm để kiểm tra tính hợp lệ của dữ liệu nhập hay để sinh ra các thông điệp hay hộp thoại. Để khắc phục giới hạn này, người ta đã phát triển JavaScript. Tương tự, để khắc phục giới hạn giống như vậy trong WAP, một ngôn ngữ script được gọi là WMLScript cũng đã được phát triển.

4.3 Chồng giao thức WAP

Để giảm thiểu yêu cầu băng thông, và bảo đảm các mạng vô tuyến đa dạng có thể chạy các ứng dụng WAP, một chồng giao thức mới và nhẹ được phát triển. Hình 24 minh họa chồng giao thức này và cũng đưa ra so sánh với chồng giao thức của Web.

WAP User-Agent WAP Gateway Bộ mã hóa & Bộ giải mã Bộ điều hợp giao thức Web Server CGI script và các script khác Content Stone WAP HTTP

Chương 4. Công nghệ WAP SV: Lê Ngọc Quốc Khánh

Hình 24. Chồng giao thức WAP

Chồng giao thức WAP có bốn lớp: lớp phiên (session layer), lớp giao tác (transaction layer), lớp bảo mật (security layer), và lớp datagram (datagram layer). Giao thức WAP được thiết kế để hoạt động trên các dịch vụ đa dạng, bao gồm CDMA, CDPD,…

4.4 WML

Wireless Markup Language (WML) là một ngôn ngữ đánh dậu dựa theo ngôn ngữ XML được thiết kế để mô tả cách mà nội dung WAP được biểu diễn trên đầu cuối vô tuyến. WML khác với HTML ở những điểm sau:

• WML được thiết kế đặc biệt cho các đầu cuối vô tuyến với màn hình chỉ có chiều dài vài dòng và chiều rộng khoảng một inch.

• WML phân biệt hoa thường, và tất cả các thẻ và thuộc tính đều ở dạng chữ thường.

• Không giống như HTML, WML không cho phép các thẻ lồng nhau không hợp lệ.

• WML nhất thiết cần bàn phím “QWERTY” hay chuột để nhập liệu.

Dựa trên những điểm khác nhau này, WML cung cấp tập các thẻ nhỏ hơn, làm cho nó thích hợp hơn so với HTML khi áp dụng cho các đầu cuối vô tuyến.

4.5 J2ME và WAP

WAP là một công nghệ trình duyệt cho phép người dùng duyệt các trang Web hỗ trợ WAP. Nhưng không may là, mặc dù nó khá hữu dụng, nhưng nó vẫn có một số hạn chế,

Datagram (hay Transpost) Layer (WDP)

Bearers GSM CDPD CDMA SMS v.v. Security Layer (WTLS)

Transaction Layer (WTP) Application Layer (WAE)

Session Layer (WSP) Các dịch vụ và ứng dụng khác HTML JavaScript HTTP TLS-SSL TCP/IP UDP/IP Web WAP

Chương 4. Công nghệ WAP SV: Lê Ngọc Quốc Khánh

Tuy nhiên, khi sử dụng J2ME, người dùng sẽ được cung cấp môi trường ứng dụng đầy đủ tính năng dựa trên Java. Điều hấp dẫn là việc thực hiện cũng dễ như là cho người dùng download ứng dụng qua trình duyệt WAP của họ vậy.

Thêm vào đó, sử dụng công nghệ này, người dùng sẽ không còn bị hạn chế bởi giao diện đơn sắc trên các thiết bị WAP như ngày nay, mà ta sẽ được tận hưởng đồ họa và ứng dụng động, đầy màu sắc. Một khi ứng dụng Java đã được lưu trong thiết bị, nó có thể trao đổi dữ liệu với hệ thống thông tin đầu cuối sử dụng hạ tầng WAP có sẵn.

Về bảo mật

WAP hiện tại sử dụng Wireless Transport Layer Security (WTLS), mà một số người cho rằng vẫn còn lỗ hổng. WTLS thiết kế chuyên biệt để kiểm soát các giao tác bảo mật trên môi trường băng thông thấp mà không yêu cầu sức mạnh xử lý như PC hay bộ nhớ trên thiết bị. Khi hoạt động, WAP gateway hoạt động như một bộ phiên dịch giữa mã hóa WTLS và chuẩn của Web, chuẩn SSL (Secure Sockets Layer) mạnh hơn. Vấn đề nảy sinh khi dữ liệu được chuyển giao từ WTLS sang SSL, tiến trình mà ở đó dữ liệu được giải mã sau đó được mã hóa lại, nghĩa là có một thời gian cực ngắn dữ liệu không được an toàn. Măïc dù việc phiên dịch dữ liệu chỉ xảy ra ở một trung tâm dữ liệu an toàn, nhưng nó vẫn dễ bị nguy hiểm ở thời gian cực ngắn đó. Các phiên bản mới của WAP mong rằng sẽ giải quyết được vấn đề này, nhưng cũng sẽ mất một số thời gian trước khi vấn đề được giải quyết.

Đây chính là lĩnh vực mà J2ME, hay cụ thể hơn là Java, thật sự tỏa sáng. Các ứng dụng Java bị giới hạn bởi một nguyên tắc là các mã không tin cậy sẽ được đặt trong một sandbox, ở đó nó có thể hoạt động an toàn mà không gây ra bất kỳ nguy hiểm nào ra bên ngoài. Khi một applet hay một đoạn chương trình không tin cậy chạy trong một sandbox, nó chỉ có thể làm một số công việc giới hạn. Rõ ràng là nó không được truy xuất hệ thống tập tin hay tài nguyên của hệ thống. Khi bạn quyết định nên cho phép truy xuất, thì tất cả những gì cần phải làm là một quá trình chứng nhận đơn giản.

Tuy nhiên, thay vì xem là một đối thủ cạnh tranh của WAP, thì J2ME nên được xem là một công nghệ bổ sung đầy đủ cho WAP, dùng để mở rộng tính hữu dụng của truy xuất và các ứng dụng vô tuyến.

Với tính đơn giản của WAP, sức mạnh của Java, sự kết hợp của WAP-Java và lời hứa về nâng cao băng thông, người dùng sẽ được giới thiệu một lĩnh vực mới, hứng thú hơn; truy xuất Internet và giao tiếp với toàn thế giới qua đầu ngón tay.

Chương 5. XML SV: Lê Ngọc Quốc Khánh

CHƯƠNG 5 XML

5.1 Giới thiệu về XML (eXtensible Markup Language)

XML có thể được mô tả là một siêu ngôn ngữ (metalanguage), một ngôn ngữ định nghĩa các ngôn ngữ khác. Với sự giúp đỡ của XML, người dùng có thể định nghĩa các thẻ của riêng mình. Bởi vì mô tả thẻ (tag description) cũng nằm trong XML, mô tả có thể được hiểu bởi mọi nền tảng làm cho dữ liệu có tính khả chuyển. Vì XML cho phép người dùng tạo một ngôn ngữ mới với các thẻ mới, nó cho phép dữ liệu được lưu trữ ở bất kỳ định dạng nào. Thật sự, cơ bản nó dùng để mô tả cách mà thông tin được lưu trữ. XML có thể cung cấp khả năng duyệt tốt hơn nhiều so với sử dụng CSS và XSL style sheet. Khi các thẻ đã được định nghĩa trong XML, ta có thể sử dụng dữ liệu này khá dễ dàng với bất kỳ phần mềm XML nào.

Nói chung, dữ liệu định dạng XML có khuynh hướng dài dòng bởi vì để tăng tính rõ ràng cho người đọc. Đây có thể là một vấn đề cho các ứng dụng truy xuất bộ nhớ và tài nguyên băng thông giới hạn, ví dụ như các ứng dụng J2ME.

Trong XML, DTD (Document Type Definition) được dùng để định nghĩa cấu trúc và kiểu của thẻ. DTD định nghĩa tên của thẻ, sắp xếp, và liên hệ của chúng với nhau. DTD định nghĩa theo các luật khai báo thẻ SGML. Đôi khi, định nghĩa này là một phần của tài liệu chứa các thẻ. Trong trường hợp này, tài liệu được gọi là DTDLess. XML DTD, hay Schema, cũng có thể được dùng để định nghĩa nội dung của tài liệu XML.

XML là một ngôn ngữ định dạng; đầu tiên nó đọc định nghĩa dữ liệu (data definition), hiểu nó, và lưu trữ nó trong bộ nhớ trước khi lấy tài liệu để thực thi chức năng mà các thẻ định nghĩa. Để diễn tả định dạng dữ liệu trong DTD sao cho ứng dụng có thể hiểu được cần phải có một phần mềm đặc biệt gọi là bộ phân tích (parser).

5.2 Cấu trúc của XML

Một tài liệu XML giống như một tài liệu HTML, có các thẻ mới được định nghĩa trong Schema, hay DTD. Dòng đầu tiên được dùng để khai báo phiên bản của XML; dòng thứ hai nêu tên của DTD được dùng. Những dòng này tạo thành XML Prolog.

XML Prolog được viết giống như sau:

<?xml version=”1.0”?>

Chương 5. XML SV: Lê Ngọc Quốc Khánh

<itemname> Computer </itemname> <price> $500 </price>

<qty> 2 </qty>

<memory> 1.2MB </memory> </shoplist>

Khai báo các thẻ này sẽ được định nghĩa trong shopfile.dtdnhư trong Ví dụ 1

1)<!ELEMENT shop(shoplist)+>

2)<!ELEMENT shoplist(itemname, price, qty, memory)+> 3)<!ELEMENT itemname (#PCDATA)>

4)<!ELEMENT price (#PCDATA)> 5)<!ELEMENT qty (#PCDATA)>

6)<!ELEMENT memory (#PCDATA) #REQUIRED>

Ví dụ 1. shopfile.dtd

Khai báo trên giải thích ý nghĩa các thẻ như sau:

♦ Dòng 1: Nhóm thẻ shop chứa thẻ chính shoplist. Dấu cộng (+) cho biết là

shoplist có thể xuất hiện nhiều lần trong shop.

♦ Dòng 2: Thẻ shoplist chứa itemname, price, qty, và memory.

♦ Dòng 3: Thẻ itemname chứ dữ liệu ký tự (character data).

♦ Dòng 4: Thẻ price chứa dữ liệu ký tự.

♦ Dòng 5: Thẻ qty chứa dữ liệu ký tự.

♦ Dòng 6: Thẻ memory chứa dữ liệu ký tự và là bắt buộc.

Ví dụ trên khai báo một DTD nằm ngoài. Ví dụ sau minh họa một DTD nhúng (embedded DTD).

<?xml version=”1.0”?>

<!DOCTYPE shop[<!ELEMENT shop(shoplist)+>

<!ELEMENT shoplist(itemname, price, qty, memory)+> <!ELEMENT itemname (#PCDATA)>

<!ELEMENT price (#PCDATA)> <!ELEMENT qty (#PCDATA)>

<!ELEMENT memory (#PCDATA) #REQUIRED> <shoplist>

<itemname> Computer </itemname> <price> $500 </price>

<qty> 2 </qty>

<memory> 1.2MB </memory> </shoplist>

Ví dụ 2. shopfile.xml

Các ký hiệu đặc biệt khác được dùng để định nghĩa các thẻ là:

Chương 5. XML SV: Lê Ngọc Quốc Khánh

♦ #IMPLIED: Xác định giá trị mặc định.

♦ ID: ID định nghĩa (Definition ID).

♦ ENTITY: Chỉ đến dữ liệu ngoại (external data).

♦ |: Hoặc

♦ +: Một hoặc nhiều.

♦ *: Không hoặc nhiều.

♦ ?: Tùy chọn

♦ EMPTY: Định nghĩa một thẻ rỗng.

♦ ANY: cho biết rằng nó có thể chứa bất kỳ phần tử nào.

5.3 XML Schema

Ta vừa thấy chỉ có ELEMENT được dùng để định nghĩa kiểu của thẻ trong DTD. Để định nghĩa thêm kiểu cho thẻ thì ta dùng XML Schema. Schema được viết bằng một tập tin XML. XML Schema là một ngôn ngữ hoàn chỉnh dùng để định nghĩa và mô tả các lớp cho tài liệu XML. Nó chứa các khai báo kiểu như byte, integer, date, sequence, … Nó cũng cho phép khai báo dữ liệu dẫn xuất từ các kiểu dữ liệu cơ bản có sẵn. Chức năng của XML Schema là định nghĩa mối liên hệ giữa tài liệu XML, không gian tên (namespace) và DTD. Các Schema này cũng được dùng để kiểm tra tính hợp lệ của tài liệu XML.

5.4 Phân tích XML (XML Parsing)

Khái niệm phân tích XML là biên dịch định nghĩa thẻ và thể hiện tài liệu để cho người dùng hoặc môi trường phát triển ứng dụng có thể hiểu dữ liệu được lưu trữ trong tài liệu. Nó yêu cầu một phần mềm đặc biệt gọi là bộ phân tích (parser).

Một bộ phân tích là một phần mềm phân tích tài liệu XML dựa trên cơ sở các thẻ XML. Bộ phân tích nhận biết thẻ XML trên cơ sở các tham số (parameter) chuyển cho nó và lấy đoạn text đi với thẻ đó. Việc này được thực hiện bằng cách biên dịch và phiên dịch định nghĩa của các thẻ chứa trong DTD.

Có hai loại bộ phân tích:

♦ Bộ phân tích xác nhận hợp lệ (Validating parser).

♦ Bộ phân tích không xác nhận hợp lệ (Nonvalidating parser).

Để hiểu được hai loại này, ta cần phải biết ý nghĩa của tài liệu hợp lệ (valid)đúng ngữ pháp (well-formed). Một tài liệu XML hợp lệ là một tài liệu tuân thủ theo DTD gắn với tài liệu XML. DTD có thể được viết trong cùng tài liệu XML (được nhúng) hay nó có thể được chỉ định bằng một liên kết. Một tài liệu hợp lệ thì phải đúng ngữ pháp. Khi ta định

Chương 5. XML SV: Lê Ngọc Quốc Khánh

♦ Tất cả các thẻ dùng trong tài liệu phải được cân bằng bằng các thẻ bắt đầu và kết thúc.

♦ Tất các các thuộc tính bắt buộc định nghĩa trong DTD phải có mặt.

♦ Giá trị thuộc tính phải nằm trong dấu nháy.

♦ Các thẻ chứa và được chứa phải theo sát DTD, hay Schema.

♦ Các ký tự markup như < hay & không được đứng một mình. Nếu cần, chúng phải được dùng là &lt, &amp,…

♦ Tất cả các thẻ rỗng phải kết thúc bằng /> Chức năng của bộ phân tích là kiểm tra các luật trên.

Dựa vào các loại tài liệu XML mà ta đã đề cập ở trên, có hai loại bộ phân tích XML, một loại phân tích tài liệu XML kiểm tra hợp lệ và bộ kia phân tích tài liệu XML không kiểm tra hợp lệ.

Bộ phân tích không kiểm tra hợp lệ (Nonvalidating parser): Bộ phân tích này chỉ kiểm tra tài liệu có đúng ngữ pháp hay không; nói cách khác, bộ phân tích chỉ thực hiện kiểm tra cú pháp của DTD trong tài liệu, đó là lý do tại sao nó được gọi là bộ phân tích không kiểm tra hợp lệ.

Bộ phân tích kiểm tra hợp lệ (Validating parser): Các bộ phân tích này biên dịch DTD và theo các khai báo thẻ để phát sinh output ở dạng người dùng có thể đọc được. J2ME không thể hỗ trợ kiểm tra hợp lệ tài liệu XML. Ngoài ra có thể phân loại theo cách tiếp cận. Có hai cách tiếp cận cho việc xử lý XML: SAX và DOM. SAX hay Simple API for XML là một khung (framework) hướng sự kiện, bộ phân tích sẽ gọi các back function trong mã chương trình client khi xử lý tập tin XML. SAX nhẹ, và mô hình hướng sự kiện của nó làm giảm bộ nhớ cần thiết làm cho nó thích hợp với các ứng dụng nhỏ. Tuy nhiên, nó chiếm một phần lớn trong mã chương trình client để theo dõi cây phân tích XML. Khác với SAX, DOM hay Document Object Model đưa ra cách nhìn theo cây gần với mô hình đối tượng nhưng yêu cầu tiêu tốn nhiều bộ nhớ hơn. Một cây DOM có thể dễ dàng được “duyệt qua” sử dụng mối liên hệ cha-con.

5.5 Các bộ phân tích XML cho KVM

Có nhiều loại bộ phân tích cho KVM. Các bộ phân tích đưa ra ở đây làm việc với KVM. Ta sẽ chỉ nói về tính năng chính của các bộ phân tích.

Pull parser: Ở các bộ phân tích này, đầu tiên dữ liệu được đọc và nó được phân tích từ định nghĩa. Việc phân tích có thể hoàn thành bằng các hàm đệ qui để dịch cấu trúc cây của tài liệu.

Push parser: Các bộ phân tích này xử lý định nghĩa dữ liệu trước khi xử lý tài liệu. Cấu trúc cây hoàn chỉnh được tạo trong bộ nhớ trước khi thật sự bắt

Một phần của tài liệu báo cáo xây dựng hệ thống m-commerce áp dụng công nghệ java (Trang 48)

Tải bản đầy đủ (PDF)

(76 trang)