Web service WS• WS là thành phần phần mềm cung cấp các phương thức hàm có thể triệu gọi qua mạng – Tài liệu WSDL Web Services Description Language xác định các phương thức mà WS cung cấp
Trang 1Lê Đình Thanh
Bộ môn Mạng và Truyền thông Máy tính
Khoa Công nghệ Thông tinTrường Đại học Công nghệ, ĐHQGHNE-mail: thanhld@vnu.edu.vn, thanhld.vnuh@gmail.com
Mobile: 0987.257.504Bài giảng PHÁT TRIỂN ỨNG DỤNG WEB
Trang 2Web service
Bài 8
Trang 4Web service (WS)
• WS là thành phần phần mềm cung cấp các phương thức (hàm) có thể triệu gọi qua mạng
– Tài liệu WSDL (Web Services Description Language) xác định các phương thức mà WS cung cấp
– Các hệ thống khác triệu gọi phương thức của WS bằng cách gửi cho WS thông báo WS Request và nhận kết quả (giá trị trả về của phương thức) trong thông báo WS Response
f(x)g(x, y)h(z)
WS Request
WS Response
Trang 5Vì sao dùng web service
• Cho phép tích hợp qua mạng giữa các ứng dụng được viết bằng các ngôn ngữ khác nhau trên các nền khác nhau
– Tích hợp trong cùng host (thường yêu cầu cùng nền, cùng ngôn ngữ lập trình)
● Bao hàm tệp mã nguồn: h, inc, …
● Thư viện liên kết tĩnh: lib
● Thư viện liên kết động: dll
– Tích hợp qua mạng
● Remote Procedure Call (RPC)
● Web service
Trang 6• Tài liệu WSDL (Web Service Definition Language) được sử dụng để xác định các phương thức mà WS cung cấp, có thể triệu gọi qua mạng
• Mỗi WS cần có một tài liệu WSDL để
mô tả về nó
Trang 7Triệu gọi phương thức của WS bằng
SOAP
• SOAP (Simple Object Access Protocol) là giao thức được sử dụng
nhiều nhất để triệu gọi phương thức của WS
– Ngoài ra có thể dùng XML+RPC, REST+JSON, …
• SOAP = HTTP + XML (thông báo SOAP là thông báo HTTP với nội
dung là tài liệu XML có cấu trúc được SOAP quy định)
f(x)g(x, y)h(z)
Trang 8Thông báo SOAP WS
Trang 9Thông báo SOAP WS
Response
HTTP/1.1 200 OK
Date: Wed, 27 Mar 2013 15:00:17 GMT
Server: Apache/2.2.21 (Win32)
Trang 10Tạo SOAP WS
• Cho phép mở rộng php_soap
• Tạo thư viện các hàm cho WS
• Tạo tài liệu WSDL mô tả về WS
• Tạo SOAP WS
Trang 11Cho phép mở rộng php_soap
– Cấu hình trong php.ini
● extension=php_soap.dll
Trang 12Tạo thư viện các hàm cho
function ageFromDoB($vd) { //$vd: dd/mm/yyyy
$ss = explode("/", $vd); //tach xau
$age = intval(date("Y")) - intval($ss[2]);
return $age;
}
?>
Trang 13Tạo tài liệu WSDL mô tả WS
Trang 14Tạo tài liệu WSDL mô tả WS
(2/5)
<message name="normalizeName_Parameters">
<part name="name" type="xsd:string"/>
<part name="type" type="xsd:string"/>
Trang 15Tạo tài liệu WSDL mô tả WS
Trang 16Tạo tài liệu WSDL mô tả WS (4/5)
<binding name="mybinding" type="tns:myport">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
Trang 17Tạo tài liệu WSDL mô tả WS
(5/5)
<service name="myservice">
<port binding="mybinding">
<soap:address development/ws/mywebservice.php"/>
location="http://localhost/labs/webapp-</port>
</service>
</definitions>
Trang 19Xem WSDL của WS
Trang 20Triệu gọi phương thức của WS bằng
PHP
<?php
$client = new SoapClient("mywebservice.wsdl", array('trace' => 1));
$response = $client->normalizeName(" trịnh tố nHư ", "UCW");
Trang 21Triệu gọi phương thức của WS bằng
Trang 22Triệu gọi phương thức của WS bằng
AJAX
var httpRequest = getAjaxEngine();
var url = “url-of-web-service”;
var soapMessage = '<?xml version="1.0" encoding="UTF-8"?>
Trang 23Triệu gọi phương thức của WS bằng
success: function (data) {
//data là thân của SOAP response
},
error: function (string)
{ document.write("<pre>"+string+"</pre>"); }
Trang 24Triệu gọi phương thức của WS bằng
jQuery
Phân tích SOAP Response
success: function (data) {
var xmlDoc = null;
[0].childNodes[0].nodeValue);
}
Trang 25• Là SOAP toolkit dùng cho phát triển SOAP server và SOAP client
• Có thể được sử dụng để phát triển SOAP WS.
Tự học
Trang 26Công bố và sử dụng WS
Kiến trúc WS
Nhà cung cấp
WS cần quảng cáo về WS của mình cho khách
Nhà môi giới tạodanh bạ WS
UDDI (Universal Description,
Discovery and Integration)
Trang 27Hết