Lập trình Web Service với MIDP

Một phần của tài liệu nghiên cứu lập trình ứng dụng cho các thiết bị di động áp dụng cho bài toán campus guide (Trang 38)

4.2.1. Dch v Web (Web service)

4.2.1.a. Định nghĩa

Một dịch vụ web là một mạng lưới giao diện ñể truy cập các chức năng ứng dụng, xây dựng sử dụng công nghệ Internet chuẩn. Điều này ñược minh họa trong hình 4.1 [2].

Nói cách khác, nếu một ứng dụng có thể ñược truy cập qua mạng bằng cách sử

dụng một sự kết hợp của các giao thức như HTTP, XML, SMTP, hoặc Jabber, như vậy nó là một dịch vụ web. Các dịch vụ Web không có gì mới. Thay vào ñó, chúng ñại diện cho sự phát triển của các nguyên tắc ñã hướng dẫn Internet trong nhiều năm.

Hình 4.1. Một dịch vụ web cho phép truy cập vào các mã ứng dụng bằng cách sử dụng các công nghệ Internet chuẩn.

Một dịch vụ Web là một hệ thống phần mềm ñược nhận dạng bằng một URI

(Uniform Resource Identifier), mà các giao diện chung và sự gắn kết của nó ñược

ñịnh nghĩa và mô tả bằng XML. Định nghĩa của nó có thểñược nhận ra bằng các hệ

thống phần mềm khác. Các hệ thống này sau ñó có thể tương tác với dịch vụ Web theo

phương cách ñược mô tả trong ñịnh nghĩa của nó, sử dụng các thông ñiệp theo XML

32

4.2.1.b. Các ñặc ñim chính ca dch v We:

- Có thể chuyển ñổi các ứng dụng của bạn vào các ứng dụng Web. - Được xuất bản, tìm thấy, và ñược sử dụng thông qua Web. - Là những thành phần ứng dụng. - Giao tiếp bằng cách sử dụng giao thức mở. - Được khép kín và tự mô tả. - Có thểñược phát hiện bằng cách sử dụng UDDI. - Có thểñược sử dụng bởi các ứng dụng khác. - Các nền tảng cơ bản của dịch vụ Web là XML + HTTP. Dịch vụ Web sử dụng XML ñể mã hóa và giải mã dữ liệu, và SOAP ñể truyền tải nó.

4.2.1.c. Ti sao dùng dch v Web

Dịch vụ Web ñược xây dựng ñể có thể sử dụng bởi bất kỳ trình duyệt trên nền tảng nào cũng có thể truy cập, bằng cách sử dụng dịch vụ Web, các ứng dụng có thể

tương tác ñược với nhau.

4.2.1.d. Các thành phn cơ bn

Dịch vụ Web có ba thành phần nền tảng cơ bản: WSDL, UDDI và SOAP

Hình 4.2. Kiến trúc dịch vụ Web.

4.2.2. WSDL

WSDL là một ngôn ngữ dựa trên XML ñể mô tả các dịch vụ Web và làm thế nào

ñể truy cập chúng. Tài liệu WSDL mô tả một dịch vụ Web. Quy ñịnh cụ thể vị trí của dịch vụ và các hoạt ñộng (hoặc các phương thức) các dịch vụ ñưa ra. Nó chứa tập các

33

ñịnh nghĩa ñể mô tả một dịch vụ Web. WSDL ñặc tả kỹ thuật xác ñịnh làm thế nào ñể

mô tả các dịch vụ web trong một ngữ pháp XML nói chung. WSDL mô tả bốn phần quan trọng của dữ liệu:

Giao diện thông tin mô tả tất cả các chức năng công bố công khai. Dữ liệu thông tin cho tất cả các loại tin nhắn yêu cầu và trả lời tin nhắn. Ràng buộc thông tin về các giao thức vận chuyển sẽñược sử dụng Thông tin ñịa chỉ cho ñịnh vị các dịch vụ cụ thể.

WSDL ñại diện cho một hợp ñồng giữa Người yêu cầu dịch vụ và Nhà cung cấp dịch vụ, trong cách cũng giống như một giao diện Java ñại diện cho một hợp ñồng giữa mã khách hàng và ñối tượng Java thực tế. Sự khác biệt quan trọng là WSDL là nền tảng và ngôn ngữ ñộc lập và ñược sử dụng chủ yếu (mặc dù không ñộc quyền) ñể

mô tả các dịch vụ SOAP. Sử dụng WSDL, một khách hàng có thểñịnh vị một dịch vụ

web và gọi bất kỳ chức năng của mình công bố công khai. Với các công cụ nhận biết WSDL, bạn cũng có thể tựñộng hoá quá trình này, cho phép các ứng dụng ñể dễ dàng tích hợp các dịch vụ mới với mã số hướng dẫn sử dụng ít hoặc không có. WSDL do ñó

ñại diện cho một nền tảng của kiến trúc dịch vụ web, bởi vì nó cung cấp một ngôn ngữ

chung ñể mô tả các dịch vụ và một nền tảng cho tựñộng tích hợp các dịch vụ [2].

34

Những yếu tố chính:

Bảng 4.1. Những yếu tố chính của tài liệu WSDL

WSDL 1.1 WSDL 2.0 Ý nghĩa

Service Service Dịch vụ có thể ñược dùng như một lớp chứa cho một tập hợp các hàm hệ thống ñã ñược ñưa ra với các giao thức dựa trên Web.

Port Endpoint Định nghĩa ñịa chỉ hoặc ñiểm kết nối tới một dịch vụ Web. Nó thường ñược biểu diễn bởi một chuỗi http url ñơn giản. Binding Binding Các giao thức truyền thông ñược sử dụng bởi các dịch vụ

Web. Định nghĩa ñịnh dạng thông ñiệp và chi tiết giao thức cho mỗi cổng.

PortType Interface Là thành phần WSDL quan trọng nhất. Nó mô tả một dịch vụ Web, các hoạt ñộng mà có thểñược thực hiện, và những thông ñiệp ñược sử dụng ñể thực hiện hoạt ñộng. Tương tự

một thư viện chức năng (hoặc mô-ñun, hoặc một lớp) trong một ngôn ngữ lập trình truyền thống.

Operation Operation Mỗi hoạt ñộng có thể so sánh với một phương thức hoặc một lời gọi hàm trong ngôn ngữ lập trình. Các hành ñộng SOAP ñược ñịnh nghĩa và cách thức thông ñiệp ñược mã hóa.

Message Thông thường, một thông ñiệp tương ứng với một hoạt

ñộng. Thông ñiệp này chứa các thông tin cần thiết ñể thực hiện các hoạt ñộng.

Message ñã ñược loại bỏ trong WSDL 2.0, chúng ta có thể

trực tiếp tham khảo tới XML Schema ñể xác ñịnh thân của

ñầu vào, ñầu ra và lỗi.

Types Types Mục ñích là mô tả dữ liệu. XML Schema ñược sử dụng. Cấu trúc chính của một tài liệu WSDL 1.1 tương tự như sau:

<definitions> <types> definition of types... </types> <message> definition of a message.... </message> <portType> definition of a port... </portType> <binding> definition of a binding.... </binding> </definitions>

35

4.2.3. UDDI

UDDI (Universal Description, Discovery and Integration) là một ñặc tả kỹ thuật

ñể mô tả, phát hiện, và tích hợp các dịch vụ web. UDDI do ñó là một phần quan trọng của giao thức dịch vụ web, cho phép các công ty xuất bản và tìm thấy dịch vụ web [3]. Universal Description, Discovery and Integration – “Mô tả thống nhất, khám phá và hội nhập” là một dịch vụ thư mục nơi mà các doanh nghiệp có thểñăng ký và tìm kiếm các dịch vụ Web.

UDDI là một khung không phụ thuộc nền ñể mô tả các dịch vụ, phát hiện các doanh nghiệp, và tích hợp các dịch vụ kinh doanh bằng cách sử dụng Internet.

UDDI là viết tắt của Universal mô tả, khám phá và hội nhập UDDI là một thư mục lưu trữ thông tin về các dịch vụ Web

UDDI là một thư mục của các giao diện dịch vụ Web mô tả bởi WSDL UDDI giao tiếp thông qua SOAP

4.2.4. SOAP

SOAP là gì?

SOAP là một giao thức ñóng gói tiêu chuẩn hóa cho các tin nhắn ñược chia sẻ

bởi các ứng dụng. Đặc tả ñịnh nghĩa không gì hơn là một phong bì ñơn giản dựa trên XML ñể biết thông tin ñang ñược chuyển giao, và một bộ quy tắc chuyển sang ứng dụng và kiểu dữ liệu trên nền cụ thể thành dạng biểu diễn XML [2].

SOAP cho phép các ứng dụng trao ñổi thông tin qua HTTP, là một giao thức ñể

truy cập một dịch vụ Web. SOAP là viết tắt của Simple Object Access Protocol (Giao thức truy cập ñối tượng ñơn giản). SOAP là một giao thức truyền thông qua Internet, là một ñịnh dạng ñể gửi thông ñiệp, nó cho phép giao tiếp giữa các ứng dụng.

Thông ñip XML

Thông ñiệp XML là nơi mà các ứng dụng trao ñổi thông tin bằng cách sử dụng các tài liệu XML (Hình 2-1). Nó cung cấp một cách linh hoạt cho các ứng dụng ñể

giao tiếp, và các hình thức cơ bản của SOAP. Một tin nhắn có thể là bất cứñiều gì.

36

Ràng buc SOAP HTTP:

Một phương thức SOAP là một yêu cầu / hồi ñáp HTTP cái mà tuân theo luật mã hóa SOAP. Một yêu cầu SOAP có thể là HTTP POST hoặc HTTP GET.

HTTP + XML = SOAP

Ti sao dùng SOAP:

Ứng dụng ngày nay giao tiếp bằng cách sử dụng “Gọi hàm từ xa” (Remote Procedure Calls - RPC) giữa các ñối tượng như DCOM và CORBA, nhưng HTTP không ñược thiết kế cho việc này. RPC ñại diện cho một khả năng tương thích và các vấn ñề an ninh; tường lửa và máy chủ proxy thường sẽ chặn RPC.

Cách tốt hơn ñể giao tiếp giữa các ứng dụng trên HTTP, bởi vì HTTP ñược hỗ

trợ bởi tất cả các trình duyệt Internet và máy chủ. SOAP ñược tạo ra ñể thực hiện việc này.

SOAP cung cấp một cách ñể giao tiếp giữa các ứng dụng chạy trên hệñiều hành khác nhau, với các công nghệ và ngôn ngữ lập trình khác nhau.

Cú pháp SOAP

Một thông ñiệp SOAP là một tài liệu XML thông thường có chứa các yếu tố sau:

- Envelope (phong bì) mà xác ñịnh các tài liệu XML như là một thông ñiệp SOAP

- Header (tiêu ñề) chứa thông tin tiêu ñề

- Body (thân) có chứa các lời gọi và trả lời thông tin

- Fault (lỗi) có chứa các lỗi và thông tin hiện trạng

Một số quy tắc cú pháp quan trọng:

- Một thông ñiệp SOAP phải ñược mã hóa bằng cách sử dụng XML. - Một thông ñiệp SOAP phải sử dụng SOAP Envelope namespace. - Một thông ñiệp SOAP phải sử dụng SOAP Encoding namespace. - Một thông ñiệp SOAP phải không có một tham chiếu DTD. - Một thông ñiệp SOAP phải không chứa chỉ dẫn xử lý XML.

37

Khung ca thông ñip SOAP:

<?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> ... </soap:Header> <soap:Body> ... <soap:Fault> ... </soap:Fault> </soap:Body> </soap:Envelope> Ưu ñim:

SOAP là ñủ linh hoạt ñể cho phép việc sử dụng các giao thức vận tải khác nhau. Thường sử dụng HTTP như là một giao thức vận tải, nhưng các giao thức khác cũng có thể sử dụng (ví dụ Java Message Service – Dịch vụ tin nhắn Java, Simple Mail Transfer Protocol – Giao thức truyền tải thư tín ñơn giản).

Kể từ khi mô hình ñường hầm SOAP tốt trong mô hình nhận / hồi ñáp HTTP, nó có thể dễ dàng vượt ñường hầm qua tường lửa và proxy, mà không phải sửa ñổi giao thức SOAP, và có thể sử dụng cơ sở hạ tầng hiện có.

Nhược ñim:

Bởi vì ñịnh dạng XML dài dòng, SOAP có thể chậm hơn ñáng kể so với các công nghệ cạnh tranh phần mềm giữa (middleware) như CORBA (Common Object Request Broker Architecture – Kiến trúc môi giới yêu cầu ñối tượng chung).

Khi dựa vào HTTP là một giao thức vận chuyển, một bức tường lửa ñược thiết kế ñể chỉ cho phép duyệt Web là bắt buộc phải thực hiện chi tiết hơn (và do ñó tốn kém hơn) phân tích các gói HTTP.

Mặc dù SOAP là một tiêu chuẩn mở, không phải tất cả các ngôn ngữ cung cấp hỗ

trợ thích hợp. Java, Curl, Delphi, PHP, .NET và Flex cung cấp IDE tích hợp hỗ trợ. Một số Perl và Python hỗ trợ tồn tại.

38

4.3. Công ngh bn ñồ

4.3.1. nh SVG

SVG, viết tắt của Scalable Vector Graphics, là một ứng dụng của XML mà làm cho nó có thểñại diện cho thông tin ñồ họa trong một hình thức nhỏ gọn, cầm tay [4].

SVG là một ngôn ngữñánh dấu (markup language) XML và dùng ñể miêu tả các hình ảnh ñồ họa véc tơ hai chiều, tĩnh và hoạt hình, thường dành cho ứng dụng trên các trang mạng. SVG thuộc tiêu chuẩn mở và ñược quản lí bởi tổ chức World Wide Web Consortium, một tổ chức quản lý nhiều chuẩn khác như HTML, XHTML...

Các tập tin có ñuôi ".svg" ñược mặc ñịnh hiểu là tập tin SVG. SVG có thể phóng to thu nhỏ mọi kích cỡ mà không giảm chất lượng hình ảnh. Vì thế, nó ñược dùng nhiều trong các bản ñồ, sơñồ.

Ví dụ dưới ñây là nội dung tệp SVG và hình ảnh hiển thị.

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="100" height="100" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<circle cx="50" cy="50" r="25" stroke="black" stroke-width="2" fill="red"/>

</svg>

4.3.1.a. Các thuc tính ca nh SVG

- SVG là một ngôn ngữñể mô tả ñồ họa 2D và các ứng dụng ñồ họa trong XML. Các ñối tượng trong ảnh SVG tường là các ñối tượng hình học. Ảnh sẽ lưu các tọa

ñộ, kích thước hình học.

- SVG ñược sử dụng ñể ñịnh nghĩa ñối tượng ñồ họa dựa trên vecto cho ứng dụng Web.

- SVG ñịnh nghĩa các ñối tượng ñồ họa theo ñịnh dạng XML.

- Các ñối tượng ñồ họa SVG không bị giảm chất lượng khi phóng to hoặc thay ñổi kích thước.

- Mỗi thành phần và thuộc tính trong tệp SVG có thể thay ñổi. - SVG là một khuyến nghị của W3C.

39 4.3.1.b. Các chc năng và ñặc trưng Mô tả SVG 1.1 ñịnh nghĩa 14 chức năng và ñặc trưng quan trọng - Đường dẫn (Paths) - Các hình vẽ cơ bản (Basic Shapes) - Văn bản (Text) - Tô vẽ (Painting) - Màu sắc (Color)

- Đường trượt màu và mẫu (Gradients and Patterns)

- Cắt xén, mặt nạ và tổ hợp (Clipping, Masking and Compositing) - Hiệu ứng lọc (Filter Effects) - Tính tương tác (Interactivity) - Liên kết (Linking) - Kịch bản (Scripting) - Hoạt hình (Animation) - Phông chữ (Fonts) - Siêu dữ liệu (Metadata) 4.3.1.c. Ưu ñim Vì là ñịnh dạng ñồ họa vectơ, lợi ñiểm của SVG là khả năng hiển thị tốt ở mọi kích cỡ và ñộ phân giải. Với một kích thước tương tự, một tập tin SVG có thể chứa nhiều thông tin hơn là một tập tin ñịnh dạng nhị phân khác (GIF, PNG, ...).

SVG là một chuẩn mở, nó cho phép việc tùy biến theo mục ñích sử dụng một cách dễ dàng. Các hình ảnh SVG có thểñược dễ dàng sửa chữa và phát triển sau này, khác với ñồ họa mảng thường là sản phẩm cuối cùng của các xử lý ảnh, không chứa mã nguồn các lớp ảnh.

Các tập tin SVG ở dạng văn bản, việc chỉnh sửa có thể thực hiện bằng các trình soạn thảo ñơn giản nhất.

Kích thước các tệp SVG nhỏ, phù hợp với ứng dụng Web và ứng dụng trên các thiết bị di ñộng.

40

4.3.1.d. Nhược ñim

SVG là ngôn ngữ không ñược thiết kế ñể sửa chữa trực tiếp trên mã nguồn. Để

tạo ra các hình ảnh SVG nói chung, cần dùng các công cụ hỗ trợ.

Dù SVG có thể là một lựa chọn cho hình ảnh của các trang mạng trong tương lai không xa, nó vẫn còn khá mới mẻ và cần sự hỗ trợ từ các trình duyệt mạng. Hiện nay Mozilla Firefox ñã hỗ trợ tương ñối ñầy ñủ cho SVG, tuy nhiên Internet Explorer và một số trình duyệt khác cần có plug-in ñặt riêng lẻ.

4.3.2. SVG tiny

Mỗi thiết bị di ñộng có ñặc ñiểm khác nhau về tốc ñộ CPU, kích thước bộ nhớ, và hỗ trợ màu sắc. Để giải quyết cho các dòng thiết bị khác nhau, hai cấu hình ñược xác ñịnh. Cấu hình cấp thấp ñầu tiên, SVG Tiny (SVGT) thích hợp cho thiết bị di ñộng rất hạn chế như ñiện thoại di ñộng, trong khi cấu hình thứ hai, SVG Basic (SVGB) là nhắm mục tiêu cho các thiết bị di ñộng cấp cao hơn như PDA.

Sự khác biệt chính giữa SVG Tiny 1.1 và SVG Basic 1.1 là không có kịch bản và tạo kiểu trong SVG Tiny 1.1, và do ñó bất kỳ yêu cầu ñều thực hiện với một Document Object Model (DOM). Điều này ñã tiết kiệm một số lượng ñáng kể bộ nhớ

khi chạy chương trình.

4.3.3. X lý các ñối tượng trong nh SVG

Một số lớp và giao diện cần thiết cho việc xử lý ảnh SVG trong java ñược cung cấp trong gói javax.microedition.m2g, org.w3c.dom, org.w3c.dom.svg, org.w3c.dom.events. Các gói này ñảm bảo cho việc xử lý các thành phần, sự kiện, vẽ ñồ họa… của ảnh SVG.

41

CHƯƠNG 5. CÀI ĐẶT VÀ TH NGHIM

5.1. Yêu cu

Phn cng:

Phía Client là ñiện thoại di ñộng có hỗ trợ ứng dụng Java và hỗ trợ mạng. Trong

Một phần của tài liệu nghiên cứu lập trình ứng dụng cho các thiết bị di động áp dụng cho bài toán campus guide (Trang 38)

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

(53 trang)