1. Trang chủ
  2. » Luận Văn - Báo Cáo

Viết chương trình client sử dụng wsdl từ một web service cho trưoc

28 1,2K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 1,27 MB

Nội dung

Định nghĩa - Theo định nghĩa của W3C World Wide Web Consortium, Web Service là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khá

Trang 1

LUẬN VĂN

CẤU HÌNH WEB SERVICE

VÀ ỨNG DỤNG

Trang 2

I Tìm hiểu chung 3

1 Giới thiệu 3

a Định nghĩa 3

b Đặc điểm 3

c Ưu và nhược điểm 4

d Ứng dụng 4

2 Kiến trúc của dịch vụ web 4

a Mô hình hoạt động 4

b Kiến trúc của Web service 6

3 Các thành phần 6

a XML – Extensible markup Language 7

b WSDL – Web Service Description Language 7

c UDDI - Universal Description, Discovery, and Integration 10

d SOAP – Simple Object Access Protocol 10

II Viết chương trình client sử dụng wsdl từ một web service cho trước 13

1 Yêu cầu 13

2 Thực hiện 13

a Ngôn ngữ và công cụ sử dụng 13

b Tìm hiểu sơ bộ về Web service đã cho 13

c Tạo client 13

III Chương trình demo một web service đơn giản 18

1 Tạo Service 18

2 Tạo Web Service Client 28

Trang 3

I Tìm hiểu chung

1 Giới thiệu

a Định nghĩa

- Theo định nghĩa của W3C (World Wide Web Consortium),

Web Service là một hệ thống phần mềm được thiết kế để hỗ trợ khả

năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông

qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả

mô tả rõ ràng

- Web services sử dụng XML, một ngôn ngữ độc lập trong việc biểu diễn dữ liệu, làm ngôn ngữ trao đổi thông tin Do đó, các mô hình web service có khả năng tích hợp phần mềm và đa kết nối khi kết hợp với nhau

- Các chuẩn Web service mới được hỗ trợ các tính năng như hỗ trợ giao dịch, bảo mật, …

b Đặc điểm

- Tính độc lập :Web service độc lập vì nó không đòi hỏi các tiến trình ở phía client phải đặt ở bất cứ một thành phần nào Ở phía server, yêu cầu để triển khai Web service chỉ là servlet engine, EJB container hoặc NET runtime Khi Web service đã được triển khai thì phía client có thể sử dụng các dịch vụ mà không cần phải đòi hỏi phải cài đặt bất cứ một thành phần nào Trong khi đó với các công nghệ như RMI, phía client phải cài đặt client stub trước khi có thể truy cập dịch vụ

- Tự mô tả: Giao diện của Web Service được mô tả thông qua tài liệu WSDL Tài liệu WSDL định nghĩa cấu trúc thông điệp trao đổi và cấu trúc dữ liệu sử dụng trong thông điệp đó Để sử dụng dịch vụ, client chỉ cần biết cấu trúc và nội dung của thông điệp và đáp ứng của Web service

- Truy cập thông qua Web: Web service sử dụng giao thức chuẩn của web Mô tả dịch vụ được đưa ra bằng cách sử dụng WSDL , các dịch vụ được xác định với sự giúp đỡ của UDDI registry và triệu gọi thông qua SOAP Tất cả những giao thức này đều dựa trên web

- Đôc lập về ngôn ngữ, nền tảng, giao thức: Web service có cơ sở là tiêu chuẩn mở XML Một client được viết bằng bất cứ ngôn ngữ nào cũng có thể truy cập một trang Web service được viết bằng bất cứ ngôn ngữ nào khác Web service độc lập nền tảng , client và web service có thể chạy trên hai nền tảng độc lập khác nhau

- Dựa trên chuẩn mở: Những chuẩn này là XML, SOAP, WSDL, và UDDI

Trang 4

-Web service cho phép client và server tương tác với nhau mặc dù trong những môi trường khác nhau

- Web service rất linh động: với UDDI và WSDL thì việc mô tả và phát triển web service có thể được tự động hóa

- Web service có dạng modun

- Web service có thể công bố và gọi thực hiện qua mạng

c Ưu và nhược điểm

- Chi phí thấp, hiệu quả cao

- Tính ổn định, chịu lỗi cao

 Nhược điểm

- Dữ liệu truyền nhiều

- Không hỗ trợ kết nối thời gian dài

- Không hỗ trợ kết nối duy trì trạng thái (stateless)

d Ứng dụng

Ngày nay Web service được sử dụng rất nhiều trong những lĩnh vực khác nhau của cuộc sống như:

- Dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal

để tìm kiếm các thông tin cần thiết)

- Các ứng dụng dịch vụ du lịch ( cung cấp giá vé, thông tin về địa điểm…)

- Các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, đấu giá qua mạng…

- Dịch vụ giao dịch trực tuyến như đặt vé máy bay, đặt khách sạn, thông tin thuê xe…

2 Kiến trúc của dịch vụ web

a Mô hình hoạt động

Trang 5

Hình 1: Mô hình Web service

- Mô hình Web service đơn giản định nghĩa cách thức tương tác giữa Service Requestor (bên sử dụng dịch vụ), Service Provider (bên cung cấp dịch vụ), Service Directory UDDI ( bên trung gian)

- Bên sử dụng dịch vụ tìm kiếm các dịch vụ trong một UDDI Service Directory Chúng sẽ lấy thông tin mô tả WSDL của các Web service cung cấp bởi Service Providers từ trước thông qua Service Directory Sauk hi lấy được mô tả WSDL, bên yêu cầu dịch vụ kết nối đến nhà cung cấp dịch vụ bằng cách triệu gọi các dịch vụ thông qua giao thức SOAP

- Một số cơ chế tương tác giữa các thành phần này:

 Service : là cơ chế cho phép client xác đinh và triệu gọi các dịch vụ từ xa thông qua mạng mà không phụ thuộc vào vị trí địa lí, hệ điều hành sử dụng hay ngôn ngữ lập trình sử dụng

 Message: là phương tiện giao tiếp giao tiếp giữa bên cung cấp dịch vụ và bên sử dụng dịch vụ Một message có thể là một yêu cầu từ bên sử dụng dịch vụ gửi đến bên cung cấp dich vụ hay là phản hồi từ bên cung cấp dịch

vụ về cho bên sử dụng dịch vụ Các message này được định nghĩa bằng ngôn ngữ đánh dấu độc lập nền tảng là XML

 Dynamic discovery: là cơ chế được cài đặt dựa trên directory service Về phía bên cung cấp, chúng sẽ sử dụng direcrtory service để tự đăng kí những dịch vụ mà chúng cung cấp Còn về phía sử dụng, chúng sẽ truy vấn để tìm

ra các dịch vụ theo nhu cầu từ directory service thông qua mạng Điều này làm giảm sự lệ thuộc của bên sử dụng dịch vụ vào bên cung cấp dịch vụ

 Publish: để có thể truy cập được thì một web service cần phải được công bố (mô tả) để các Service Request có thể tìm thấy nó Việc công bố có thể khác nhau tùy thuộc vào từng ứng dụng cụ thể Nhưng thông thường, một mô tả dịch vụ (service description) bao gồm các thông tin sau: các interface, các kiểu dữ liệu, các toán tử, các thông tin kết nối, vị trí của dịch vụ có thể truy cập được trên mạng…

 Find: trong thao tác tìm kiếm Service request sẽ lấy mô tả về dịch vụ đang được yêu cầu một cách trực tiếp hoặc thông qua Service Provider Thao tác tìm kiếm này có thể diễn ra trong hai vòng: thiết kế xây dựng (lập trình viên

Trang 6

cần biết mô tả, interface của dịch vụ) và thực thi (xác định vị trí và tiến hành triệu gọi dịch vụ)

 Bind: để sử dụng được dịch vụ thì cần phải triệu gọi nó Trong thao tác bind, Service Request khi thực thi sẽ gọi hoặc khởi tạo một luồng tương tác với dịch vụ dựa trên các thông tin trong mô tả dịch vụ mà nó thu được trước đó như: vị trí dịch vụ, các liên lạc và tương tác với dịch vụ …

b Kiến trúc của Web service

Hình 2: Kiến trúc web service

Kiến trúc của Web service bao gồm các tầng sau:

- Tầng vận chuyển với những công nghệ chuẩn như: HTTP, SMTP

- Tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô

tả thông tin về dịch vụ, SOAP cho phép người dùng triệu gọi một service từ xa thông qua một message XML

- Tầng mô tả dịch vụ (Service Description) với công nghệ chuẩn là WSDL và XML WSDL là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML Web service

sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữ liệu cho các thao tác, các chức năng mà web service cung cấp

- Tầng dịch vụ (Service): cung cấp các chức năng của service

- Tầng đăng ký dịch vụ (Service Registry): với công nghệ chuẩn là UDDI UDDI dùng cho cả người dùng và SOAP server, nó cho phép đăng ký dịch vụ để người dùng có thể gọi thực hiện service từ xa qua mạng hay nói cách khác một service cần phải được đăng ký để cho phép các client có thể gọi thực hiện

- Bên cạnh đó còn có thêm các tầng Policy, Security, Transcaction, Management giúp tăng cường tính bảo mật, an toàn và toàn vẹn thông tin khi sử dụng service

3 Các thành phần

Trang 7

a XML – Extensible markup Language

- XML do W3C đề ra và được phát triển từ SGML XML là một ngôn ngữ mô tả văn bản với cấu trúc do người sử dụng định nghĩa Về hình thức XML có ký pháp tựa HTML nhưng không tuân theo một đặc tả quy ước như HTML Người sử dụng hay các chương trình có thể quy ước định dạng các tag XML để giao tiếp với nhau Thông tin cần truyền tai được chứa trong các tag XML, ngoài ra không chứa bất cứ thông tin nào khác về cách sử dụng hay hiển thị những thông tin ấy

- Do web service là sự kết hợp của nhiều thành phần khác nhau, do đó web

service sử dụng các tính năng và đặc trưng của các thành phần này để giao tiếp với nhau Vì vậy XML là một công cụ chính yếu để giải quyết vấn đề này Từ kết quả này, các ứng dụng tích hợp vĩ mô tăng cường sử dụng XML Nhờ có khả năng tổng hợp này mà XML đã trở thành kiến trúc nền tảng cho việc xây dựng web service

- Web service tận dụng khả năng giải quyết vấn đề của các ứng dụng lớn trên các

hệ điều hành khác nhau cho chúng giao tiếp với nhau

b WSDL – Web Service Description Language

- WSDL định nghĩa một tài liệu XML mô tả giao diện của các dịch vụ web Nó cung cấp một cách thức chuẩn mô tả các kiểu dữ liệu được truyền trong các thông điệp thông qua Web service, các hoạt động được thực hiện thông qua các thông điệp và ánh xạ các hoạt động này đến giao thức vận chuyển

- Tài liệu WSDL được sử dụng cho bên yêu cầu dịch vụ (service requester) Bên yêu cầu dịch vụ sẽ sử dụng các thông tin về giao diện định nghĩa trong lược đồ WSDL để invoke dịch vụ web

- Phần tử gốc của tất cả các tài liệu WSDL luôn là phần tử <definitions> Nó chứa bên trong sau thành phần chia làm hai nhóm: thông tin trừu tượng và thông tin cụ thể

 Thông tin trừu tượng: types, messages, portType

 Thông tin cụ thể: bindings, services, port

Trang 8

- Một tài liệu WSDL hợp lệ sẽ gồm hai phần:

 Phần giao diện mô tả giao diện và giao thức kết nối

 Phần thi hành mô tả thông tin để truy xuất service

- Cả 2 phần trên được lưu trong 2 tập tin XML bao gồm: tập tin giao diện service (cho phần 1) và tập tin thi hành service ( cho phần 2)

Hình 4: Cấu trúc WSDL

Trang 9

- Tập tin giao diện – Service Interface: Mô tả 5 loại thông tin chính bao gồm: import, types,message, portType, binding

 Types: WSDL định nghĩa các kiểu dữ liệu của thông điệp gửi

<message name= « nmtoken »> *

<part name= « nmtoken » element= « qname » ? type= « qname » ? />*

WSDL định nghĩa bốn kiểu thao tác mà một cổng có thể hỗ trợ:

+ One-way: Cổng nhận một message, message đó là message nhập + Request-response: Cổng nhận một message và gửi một message phản hồi

+ Solicit-response: Cổng gửi một message và nhận một message

+Notification : Cổng gửi một message, message đó là message xuất Mỗi kiểu thao tác có cú pháp biến đổi tùy theo : thứ tự của các message nhận, xuất và lỗi

 Binding : định nghĩa cách các web services kết hợp với nhau Một kết hợp bao gồm :

+Những giao thức mở rộng cho những giao tác và những message bao gồm thông tin URN và mã hóa cho SOAP

+Mỗi một kết hợp tham chiếu đến một loại cổng, một kiểu cổng (portType)

có thể sử dụng trong nhiều mối kết hợp Tất cả các thao tác định nghĩa bên trong kiểu cổng phải nằm trong phạm vi mối kết hợp

- Tập tin thi hành- Service Implementation : Mô tả 2 loại thông tin chính bao gồm service và port

 Service : Nó sẽ thực hiện những gì đã được định nghĩa trong tập tin giao diện và cách gọi web services theo thủ tục và phương thức nào

<wsdl :definitions …>

Trang 10

<wsdl : service name= « nmtoken »>*

c UDDI - Universal Description, Discovery, and Integration

- UDDI về cơ bản là một tập các quy tắc đăng ký là tìm kiếm thông tin các Web service Nó đóng vai trò như service broker cho phép người sử dụng dịch vụ tìm đúng nhà cung cấp dịch vụ cần tìm

 Trang vàng (Yellow pages): chứa thông tin mô tả dịch vụ Web theo những loại khác nhau Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từng loại với nó

 Trang xanh (Green pages): chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của dịch vụ Web

 Loại dịch vụ (tModel): chứa các thông tin về loại dịch vụ được sử dụng

d SOAP – Simple Object Access Protocol

- Để có thể truy xuất các dịch vụ Web ta phải truy xuất đến UDDI registry bằng các lệnh gọi hoàn toàn theo định dạng của SOAP

- SOAP là một giao thức giao tiếp có cấu trúc như XML và mã hóa thành định dạng chung cho các ứng dụng trao đổi với nhau SOAP được xem như là cấu trúc xương sống của các ứng dụng phân tán xây dựng từ nhiều ngôn ngữ, hệ điều hành khác nhau Phiên bản mới nhất của SOAP là 1.2

- Những đặc trưng của SOAP:

 SOAP được thiết kế đơn giản và dễ mở rộng

 Tất cả các message SOAP đều được mã hóa sử dụng XML

 SOAP sử dụng giao thức truyền dữ liệu riêng

 SOAP không bị ràng buộc bởi bất kỳ ngôn ngữ lập trình hoặc công nghệ nào

- Cấu trúc của một message theo dạng SOAP:

Trang 11

 Phần tử gốc (envelop): phần tử bao trùm nội dung thông điệp, khai báo văn bản XML như là một thông điệp SOAP

 Phần tử đầu trang (header): chứa các thông tin tiêu đề cho trang, phần tử này không bắt buộc khai báo trong văn bản Header còn có thể mang những dữ liệu chứng thực, những chữ ký số, thông tin mã hóa hay cài đặt cho các giao dịch khác

 Phần tử khai báo nội dung chính trong thông điệp (body): chứa các thông tin yêu cầu và thông tin được phản hồi

 Phần tử đưa các thông tin về lỗi (fault): cung cấp các thông tin lỗi xẩy ra trong quá trình xử lý thông điệp

Hình 5: Cấu trúc message SOAP

- Một SOAP đơn giản trong body sẽ lưu các thông tin về tên message, tham chiếu tới một thể hiện của dịch vụ, một hoặc nhiều tham số Có 3 kiểu thông báo sẽ được đưa ra khi truyền thông tin: request message (tham số gọi thực thi một thông điệp), respond message (tham số trả về, được sử dụng khi yêu cầu được đáp ứng) và fault message (thông báo tình trạng lỗi)

- Những kiểu truyền thông trong SOAP:

 Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục mạng Kiểu này được khai thác bởi nhiều dịch vụ Web

Trang 12

 Document: nó cung cấp giao tiếp ở mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn

- Hai kiểu truyền thông này cung cấp các định dạng thông điệp, tham số, lời gọi đến các API khác nhau nên việc sử dụng chúng tùy thuộc vào thời gian và sự phù hợp với các dịch vụ Web cần xây dựng

- Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như trong các ngôn ngữ lập trình khác như kiểu dữ liệu (int, string, date ) hay những kiểu phức tạp hơn như struct, array, vector…Định nghĩa cấu trúc dữ liệu SOAP được đặt trong namespace SOAP-ENC

- Mã hóa: Giả sử service requester và service provider được phát triển trong Java, khi đó mã hóa SOAP là làm thế nào để chuyển đổi từ cấu trúc dữ liệu Java sang SOAP XML và ngược lại, bởi vì định dạng cho Web service chính là XML Bất kỳ một môi trường thực thi SOAP nào cũng phải có một bảng chứa thông tin ánh xạ nhằm chuyển đổi từ ngôn ngữ Java sang XML và từ XML sang Java- bảng đó được gọi là SOAPMappingRegistry Nếu một kiểu dữ liệu được sử dụng dưới một dạng mã hóa thì sẽ có một ánh xạ tồn tại trong bộ đăng ký của môi trường thực thi SOAP đó

4 Ví dụ

Trang 13

II Viết chương trình client sử dụng wsdl từ một web service cho trước

- Ngôn ngữ lập trình được sử dụng là Java

- Công cụ để viết chương trình là Eclipse với sự hỗ trợ của Apache Axis

b Tìm hiểu sơ bộ về Web service đã cho

- National Digital Forecast Database (NDFD) Extensible Markup Language (XML)

là một Service cung cấp cho người dùng dữ liệu về National Weather Service’s (NWS) dưới dạng XML

- Web service này sử dụng giao thức SOAP

- Web service này cung cấp một tài liệu WSDL để mô tả nó, ta có thể lấy tài liệu này trong: http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl

- Web service này cung cấp 12 chức năng bao gồm : NDFDgen,

NDFDgenLatLonList, NDFDgenByDay, NDFDgenByDayLatLonList,

LatLonListSubgrid, LatLonListLine, LatLonListZipCode, CornerPoints, LatLonListSquare, GmlLatLonList, GmlTimeSeries, and

LatLonListCityNames Cụ thể hơn về các chức năng này ta có thể tìm trong:

http://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php Ngoài ra ta cũng có thể test các chức năng này trong trang:

http://graphical.weather.gov/xml/SOAP_server/ndfdXML.htm

- Ngoài công nghệ SOAP, service này còn khai thác XML (NDFD XML) để người dùng có thể tích hợp NDFD data vào trong các ứng dụng của họ Ngôn ngữ NDFD XML sử dụng được gọi là Digital Weather Markup Language (DWML) được mô tả trong http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd

c Tạo client

- Trước tiên ta cần phải invoke service từ tài liệu WSDL

 Tạo một Java Project có tên là NDFD

Trang 14

 Click File > New > Other Chọn Web Services > Web Service Client

Sau đó click Next

Hình 6:Tạo Web Service Client

- Trong khung Web Service Client :

Điền URI của WSDL trong Service definition :

Browse file WSDL để tạo ra client

 Chọn loại proxy được tạo ra trong Client type

 Chọn các giai đoạn của Web Service:

+ Develop: phát triển các định nghĩa và thực hiện từ WSDL của Web

service Điều này bao gồm các yêu cầu như tạo ra các modun chứa các

mã được tạo ra và các file Java cũng như sao chép các Axis JARs…

+ Assemble:

+ Deploy: tạo ra các mã triển khai cho dịch vụ + Install: cài đặt và cấu hình các modun Web và EARs trên máy chủ đích + Start: bắt đầu các máy chủ khi dịch vụ được cài trên đó Tập tin server-

config.wsdd sẽ được tạo ra

+ Test:Cung cấp các tùy chọn khác nhau để thử chọn dịch vụ ví dụ như

sử dụng Web Service Explorer

 Chọn server, runtime: thông thường thì để mặc định, tuy nhiên vẫn có thể thay đổi

Ngày đăng: 01/09/2015, 09:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w