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

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

Đ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

LUẬN VĂN CẤU HÌNH WEB SERVICE VÀ ỨNG DỤNG Tìm hiểu về Web Service Page 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 Tìm hiểu về Web Service Page 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ả bằng XML. - Web services độc lập về ngôn ngữ và độc lập về nền tảng bởi vì nó tách biệt đặc tả ra khỏi cài đặt. - Web services dựa trên kiến trúc phân tán trong đó không có bất kỳ dịch vụ xử lý trung tâm nào và tất cả dạng truyền thông đều sử dụng các giao thức chuẩn. Các giao thức không có bất kỳ ý nghĩa ngầm định nào bên trong mà phải được 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. Tìm hiểu về Web Service Page 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  Ưu điểm - Có thể tái sử dụng, dễ bảo trì. - Linh hoạt, dễ mở rộng. - Cài đặt dễ dàng. - Bảo mật cao. - 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 Tìm hiểu về Web Service Page 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 Tìm hiểu về Web Service Page 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 Tìm hiểu về Web Service Page 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 Tìm hiểu về Web Service Page 8 Hình 3: Cấu trúc WSDL - WSDL định nghĩa các mô tả web service theo cú pháp tổng quát XML, bao gồm các thông tin:  Tên service  Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của web service  Loại thông tin: những thao tác , tham số và những kiểu dữ liệu gồm có giao diện của web service cộng với tên cho giao diện này. - 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 Tìm hiểu về Web Service Page 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 <definitions…> <types> <xsd: chema…/>* </type> </definitions>  Message: Mô tả thông điệp được gửi giữa client và server <definitions…> <message name= « nmtoken »> * <part name= « nmtoken » element= « qname » ? type= « qname » ? />* </message> </definitions…> Những định nhĩa message được sử dụng bởi phần tử thi hành service. Nhiều thao tác có thể tham chiếu tới cùng định nghĩa message. Thao tác và những message được mô hình riêng rẽ để hỗ trợ tính linh hoạt và đơn giản hóa việc tái sử dụng lại.  Port Type : Mô tả cách gửi và nhận thông điệp <wsdl : definitions …> <wsdl : portType name= « nmtoken »> <wsdl: operation name=”nmtoken” …/>* </wsdl: portType> </wsdl: definitions> 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 …> Tìm hiểu về Web Service Page 10 <wsdl : service name= « nmtoken »>* <wsdl: port …/> </wsdl: service> </wsdl: definitions>  Port : là một cổng đầu cuối, nó định nghĩa như một tập hợp của binding và một địa chỉ mạng <wsdl :definitions …> <wsdl :service …>* <wsdl : port name= « nmtoken » binding= « qname »>* </wsdl: port> </wsdl: service> </wsdl: definition> 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. - Một UDDI gồm có 2 phần:  Phần đăng ký: của tất cả các Web service’s metadata, bao gồm cả việc trỏ đến tài liệu WSDL mô tả dịch vụ.  Phần thiết lập WSDL Port type: định nghĩa cho các thao tác và tìm kiếm thông tin đăng ký. - Cấu trúc UDDI:  Trang trắng (White pages): chứa thông tin liên hệ va các định dạng chính yếu của dịch vụ Web như tên giao dịch, địa chỉ…Những thông tin này cho phép các đối tượng khác xác định được dịch vụ.  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: [...]... Page 12 Tìm hiểu về Web Service II Viết chương trình client sử dụng wsdl từ một web service cho trước 1 Yêu cầu - Viết 1 chương trình client lấy thông tin từ một web service cho trước cụ thể là lấy thông tin từ National Weather Service (http://graphical.weather.gov/xml/) 2 Thực hiện a Ngôn ngữ và công cụ sử dụng - 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... hiểu về Web Service Hình 13: Tạo 2 phương thức Page 22 Tìm hiểu về Web Service - Tạo Web service  Chọn New -> Other -> Web Services -> Web Service Page 23 Tìm hiểu về Web Service Hình 14: Setup Service  Web Service type : chọn Bottom-up Java bean Web Service (Tạo implementation trước rồi tool sẽ tạo file WSDL cho mình)  Service Implementation: click Browse và gõ vào tên class dùng cho Web Service Chọn... Tìm hiểu về Web Service III Chương trình demo một web service đơn giản Demo tạo Web service cộng trừ 2 số sử dụng Axis2 và Eclipse 1 Tạo Service - Tạo Dynamic Web Service có tên là MathService Hình 9 : Tạo Dynamic Web Service Project - Trong Target runtime chọn Apache TomCat v6.0  Nếu chưa có TomCat v6.0 thì click New Runtime : Page 18 Tìm hiểu về Web Service Hình 10: Tạo Dynamic Web Service Project... 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 : http://graphical.weather.gov/xml/DWMLgen /wsdl/ ndfdXML .wsdl hoặc 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ừ. .. 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. .. 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 Page 14 Tìm hiểu về Web Service  Chọn Project  Monitor the Web service: gửi lưu lượng truy cập Web service thông quaTCP/IP Monitor , cho phép theo dõi việc lưu lượng SOAP được tạo ra bởi Web service và kiểm tra lưu lượng cho WS-I Hình 7: Tạo Web service client  Click Finish... về được 2 package mô tả Web service từ WSDL trong đó:  Package: gov.weather.graphical.xml.DWMLgen.schema.DWML_xsd : chứa các kiểu dữ liệu phức hợp của Web service  Package: gov.weather.graphical.xml.DWMLgen .wsdl. ndfdXML _wsdl: chứa các class mô tả hoạt động của Web service Page 15 Tìm hiểu về Web Service Hình 8: Package tạo được từ WSDL - - Từ các package đã tạo được, ta sử dụng có 12 phương thức đại... v6 sau đó Finish Kết quả trong Web Brower : Hình 17: Web brower - Chọn Services: Page 26 Tìm hiểu về Web Service Hình 18: Service - Chọn Calculotor ta lấy được đường link tài liệu WSDL của Service vừa tạo: Hình 19: WSDL Page 27 Tìm hiểu về Web Service 2 Tạo Web Service Client - Tạo Java project TestMath Giống như ở phần II ta lấy được package : Hình 20 : package - Test Service : Hình 21 : test Page... 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... 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 Page 13 Tìm hiểu về Web Service

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