Upload
tran-bao-long
View
14
Download
2
Embed Size (px)
DESCRIPTION
Web Service
Citation preview
ĐỊNH NGHĨA
Web service là một công nghệ triệu gọi từ xa có tính khả chuyển cao nhất hiện nay: mang tính độc lập nền, độc lập ngôn ngữ. Do đó, các chương trình code bằng các ngôn ngữ lập trình khác nhau, chạy trên các nền tảng (phần cứng & OS) khác nhau đều có thể trao đổi với nhau thông qua công nghệ này
Một số đặc điểm của web service :_ Là thành phần ứng dụng (application component)_ Liên lạc thông qua các giao thức mở (open protocols)_ Có khả năng tự mô tả (self-descripbing) và self-contained_ Có thể được khám phá bằng cách sử dụng UDDI_ Có thể được sử dụng bởi các ứng dụng khác_ Xem XML là nền tảng
Có thể sử dụng web service cho các trường hợp : Xây dựng các thành phần ứng dụng có tính tái sử dụng •Liên kết giữa các phần mềm•
Chính vì vậy Webservice là một giải pháp chính để giải quyết vấn đề tích hợp nghiệp vụ giữa các hệ thống (bên cạnh giải pháp dùng công nghê Messaging). Và đặc biệt trong quá trình internet hóa mọi dịch vụ hiên nay, thì triển khai dịch vụ bằng Webservice là điều "tất nhiên“.
CÁC THÀNH PHẦN CỦA WEB SERVICESOAP (Simple Object Access Protocol)•UDDI (Universal Description, Discovery and Integration)•WSDL (Web Services Description Language)•Các công nghệ này cho phép xây dựng các giải pháp lập trình cho vấn đề tích hợp ứng dụng và truyền thông điệp. Theo thời gian, các công nghệ này có thể hoàn thiện hay có thể được thay bằng công nghệ khác tốt hơn, hiệu quả hơn hay ổn định hơn.
SOAP (Simple Object Access Protocol) định nghĩa một chuẩn định dạng cho việc đóng gói cho việc truyền dữ liệu XML giữa các ứng dụng trên một mạng máy tính . SOAP không chuyên biệt cho bất kỳ một ngôn ngữ lập trình, sản phẩm hay một platform phần cứng nào. Vì vậy, SOAP được sử dụng trong bất kỳ ứng dụng nào (C++, Java, .NET, Perl, …). Một message SOAP là một document XML. Tuy nhiên SOAP được thiết kế đặc biệt để chứa và chuyển những document XML khác.
Thí dụ message SOAP<?xml version="1.0" encoding="UTF-8"?>
Ví dụ :
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:addr="http://www.Monson-Haefel.com/jwsbook/ADDR" >
<addr:name>Amazon.com</addr:name><addr:street>1516 2nd Ave</addr:street><addr:city>Seattle</addr:city><addr:state>WA</addr:state><addr:zip>90952</addr:zip>
<addr:address>
</addr:address>
<soap:Body>
</soap:Body>
<soap:Envelope
</soap:Envelope>
Web service12 tháng ba 200910:43 CH
SOA Page 1
CHI TIẾT HƠN VỀ CÁC THẺ TRONG SOAP (để sau)
WSDL (Web Services Description Language) là một chuẩn cho việc miêu tả cấu trúc dữ liệu XML được trao đổi giữa hai hệ thống SOAP. Khi tạo một Web service mới ta có thể tạo ra một document WSDL để miêu tả những kiểu dữ liệu mà nó trao đổi.WSDL được xây dựng cơ bản dựa trên XML.
Các phần tử của tài liệu WSDL<definition>: là phần tử gốc trong tài liệu WSDL.<type> : sử dụng XML schema language để khai báo những dữ liệu phức tạp và những phần tử được sử dụng trong tài liệu WSDL.<message> : miêu tả cho các SOAP message, là các thông điệp input, output hoặc thông điệp báo lỗi dùng trong các phương thức của web service. SOAP message được chia thành các phần nhỏ được mô tả bằng thẻ con <part> hoặc được import từ các file khác<operation> : tương tự như việc định nghĩa một phương thức, nhưng chỉ cho định nghĩa các message input, output và fault có liên quan đến phương thức.<portType> : thành phần này mô tả interface, liệt kê tất cả các phương thức mà web service hỗ trợ <binding>: liên kết đến một portType cụ thể và liệt kê những địa chỉ web service có liên quan với portType đó và chỉ ra các protocol được dùng để liên lạc với web service<port> : định nghĩa URI của web service<service>: có nhiệm vụ là gán một địa chỉ Internet đến một binding, chưa một hoặc nhiều thành phần <port>.
Thí dụ về 1 file WSDLNếu chúng ta có 1 interface trên Java làpublic interface BookQuote {
SOA Page 2
public float getBookPrice(String isbn);}
thì file wsdl tương ứng có thể là<?xml version="1.0" encoding="UTF-8"?>
targetNamespace="http://www.Monson-Haefel.com/jwsbook/BookQuote"xmlns:mh="http://www.Monson-Haefel.com/jwsbook/BookQuote"xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns="http://schemas.xmlsoap.org/wsdl/">
<!-- message elements describe the input and output parameters -->
<part name="isbn" type="xsd:string" /><message name="GetBookPriceRequest">
</message>
<part name="price" type="xsd:float" /><message name="GetBookPriceResponse">
</message>
<!-- portType element describes the abstract interface of a Web service -->
<input name="isbn" message="mh:GetBookPriceRequest"/><output name="price" message="mh:GetBookPriceResponse"/>
<operation name="getBookPrice">
</operation>
<portType name="BookQuote">
</portType>
<!-- binding tells us which protocols and encoding styles are used -->
<soapbind:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<soapbind:operation style="rpc" soapAction= "http://www.Monson-Haefel.com/jwsbook/BookQuote/GetBookPrice"/>
<soapbind:body use="literal"namespace="http://www.Monson-Haefel.com/jwsbook/BookQuote" />
<input>
</input>
<soapbind:body use="literal"namespace="http://www.Monson-Haefel.com/jwsbook/BookQuote" />
<output>
</output>
<operation name="getBookPrice">
</operation>
<binding name="BookPrice_Binding" type="mh:BookQuote">
</binding>
<!-- service tells us the Internet address of a Web service --><service name="BookPriceService">
<soapbind:address location= "http://www.Monson-Haefel.com/jwsbook/BookQuote" /><port name="BookPrice_Port" binding="mh:BookPrice_Binding">
</port></service>
<definitions name="BookQuoteWS"
</definitions>
UDDIDù WSDL cung cấp một định dạng rất tốt cho việc miêu tả những kiểu của message SOAP được sử dụng bởi một Web service, nhưng WSDL không miêu tả nơi lưu trữ document WSDL hoặc là cách tìm chúng dễ dàng và sử dụng chúng để giao tiếp với Web service của bạn.UDDI (Universal Description, Discovery, and Integration) định nghĩa một chuẩn tập hợp những operation mà chúng được sử dụng để lưu trữ và tra cứu những thông tin về những ứng dụng của Web service khác. Hay nói một cách khác, UDDI là một chuẩn interface cơ bản cho việc đăng kí một Web service. Có thể sử dụng UDDI để tìm kiếm đến một kiểu Web service liên quan hoặc là tìm đến những host Web service của những tổ chức. Một đăng kí UDDI thường được tham chiếu như là một “Yello Pages” cho Web services.
SOA Page 3