2 Mô tả chồng giao thức của Dịch vụ Web

Một phần của tài liệu giao thức quản lý mạng và công nghệ dịch vụ web thực hiện khai thác đường dây thuê bao (Trang 48 - 51)

50

2.2 Các dạng thông ñiệp XML

Như ñã nói ở trên có hai dạng thông ñiệp XML ñược sử dụng trong dịch vụ Web, trong ñó XML-RPC là cách dễ nhất ñể bắt ñầu với dịch vụ Web. Nó ñơn giản hơn và dễ hiểu hơn SOAP. Tuy nhiên, không giống như SOAP, XML-RPC không có ngữ pháp mô tả dịch vụ tương ứng. ðiều này hạn chế việc gọi tự ñộng một loạt các dịch vụ XML-RPC một yếu tố quan trọng ñể cho phép xây dựng các ứng dụng tích hợp tức thời. Trong phạm vi tài liệu chúng tôi xin trình bày chi tiết về ñịnh dạng thông ñiệp SOAP. Nội dung của các thông ñiệp ñược hệ thống tự sinh mã XML trong quá trình duyệt và hiển thị.

2.2.1 SOAP

SOAP là một giao thức dựa trên XML, ñược sử dụng ñể trao ñổi thông tin giữa các máy tính. Mặc dù SOAP có thể ñược sử dụng trong một loạt các hệ thống thông ñiệp và có thể ñược phân phối qua nhiều giao thức truyền tải, ñiểm chính của SOAP là truyển tải các RPC qua HTTP. Giống như XML-RPC, SOAP là nền tảng ñộc lập và do ñó cho phép các ứng dụng ña dạng có thể giao tiếp với nhau. ðể hiểu hơn về SOAP, chúng ta hãy xem xét lại dịch vụ Web cho phép truy vấn thông tin thời tiết. Dưới ñây là một ví dụ về SOAP Request (HTTP header ñã ñược bỏ qua) [8]: <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/09/soap-envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <ns1:getWeather xmlns:ns1="urn:examples:weatherservice" SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap- encoding/"> <zipcode xsi:type="xsd:string">10016</zipcode> </ns1:getWeather> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

51

Nội dung của SOAP Request quy ñịnh cụ thể cả tên phương thức và một danh sách các các tham số. SOAP response trả về từ dịch vụ thông tin thời tiết như sau[9]: <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/09/soap-envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body><ns1:getWeatherResponse xmlns:ns1="urn:examples:weatherservice" SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap- encoding/"> <return xsi:type="xsd:int">65</return>

</ns1:getWeatherResponse>

/SOAP-ENV:Body> </SOAP-ENV:Envelope> Ví dụ 2.2.1.2: SOAP Request

2.2.2 ðặc tả SOAP

Các ñặc tả SOAP ñịnh nghĩa 3 phần chính[9]:

Envelope: Các ñịnh nghĩa Envelope xác ñịnh quy tắc ñóng gói dữ liệu ñang ñược truyền giữa các máy tính. Bao gồm các dữ liệu ñặc tả ứng dụng như tên phương thức thực hiện, các tham số, hoặc giá trị trả về. Nó cũng có thể bao gồm thông tin về ai sẽ xử lý nội dung và trong trường hợp xảy ra lỗi thì cách mã hóa thông ñiệp lỗi như thế nào.

Các quy tắc mã hóa dữ liệu: ðể trao ñổi dữ liệu, các máy tính phải thống nhất các quy tắc mô tả mã hóa các kiểu dữ liệu. Ví dụ hai máy tính xử lý gía cổ phiếu cần thống nhất quy tắc cho việc mã hóa dữ liệu kiểu float; tương tự hai máy tính xử lý giá nhiều loại cổ phiếu cấn phải thống nhất quy tắc mã hóa mảng. Ví vậy SOAP bao gồm trong nó tập hợp các quy ước về mã hóa các kiểu dữ liệu. Hầu hết những quy ước ñó dựa trên ñặc tả W3C XML schema.

52

RPC conventions: SOAP có thể ñược sử dụng trong hàng loạt các hệ thống thông tin một hoặc hai chiều. Với thông tin hai chiều, SOAP ñịnh nghĩa một

quy ước ñơn giản ñể biểu diễn việc gọi các thủ tục từ xa và các phản hồi.

ðiều này cho phép một ứng dụng máy trạm xác ñịnh tên một phương thức từ xa, bao gồm số các tham số và nhận một phản hồi từ máy chủ.

Chúng ta xem xét mô tả một giao thức SOAP, bắt ñầu bằng cách trình diễn một quy ước SOAP ñơn giản. Xmethoads.net cung cấp dịch vụ thông tin thời tiết, liệt kê danh sách nhiệt ñộ theo mã zip. Phương thức dịch vụ, getTemp, yêu cầu một chuỗi mã zip và trả về một giá trị float[8].

Một phần của tài liệu giao thức quản lý mạng và công nghệ dịch vụ web thực hiện khai thác đường dây thuê bao (Trang 48 - 51)