Giáo trình Lập trình Web Service

Mục lục  
MỤC LỤC  
Lập trình Web Service  
Trang 1 / 86  
Phân bổ chương trình  
PHÂN BỔ CHƯƠNG TRÌNH  
BUỔI  
Lý thuyết  
NỘI DUNG  
STT  
1
Thực hành  
Công nghệ Web Service  
2
Kiến trúc Web Service và Xây  
dựng Web Service  
3
4
Lab 01: Xây dựng  
Web Service  
Lab 02: Xây dựng  
Web Service  
5
6
Khai thác Web Service  
Lab 03: Khai thác  
Web Service  
7
Lab 04: Khai thác  
Web Service  
8
9
Bảo mật trong Web Service  
Lab 05 : Bảo mật  
Web Service  
10  
Thi kết thúc môn  
Lập trình Web Service  
Trang 3 / 86  
Chương I: Công nghệ Web Service  
CHƯƠNG I: CÔNG NGHỆ WEB SERVICE  
Mục tiêu:  
Sau khi kết thúc chương này, bạn có thể:  
Hiểu về mục đích hoạt động của Web Service  
Hiểu về mô hình hoạt động client-server  
Hiểu về các công nghệ hỗ trợ được Web Service hỗ trợ  
o XML-RPC  
o SOAP  
o WSDL  
o UDDI  
Sự phát triển của công nghệ thông tin cho phép ứng dụng hiệu quả vào các hoạt động  
kinh doanh, giải trị, quản lý cũng như một số lĩnh vực khoa học xã hội khác. Sự bùng nổ của  
Internet đã trở thành một điều kiện hết sức thuận lợi, đem lại hiệu suất cao trong công việc  
đồng thời giảm thiểu chi phí cho các doanh nghiệp. Tuy nhiên các yêu cầu về nghiệp vụ  
phức tạp trong hệ thống này dẫn đến các hệ thống phần mềm tương ứng cũng ngày càng trở  
nên phức tạp, cồng kềnh và khó kiểm soát. Rất nhiều yêu cầu nghiệp vụ đòi hỏi xử lý các  
vấn đề liên quan đến dữ liệu phân tán, xử lý các thông tin khác nhau do nhiều tổ chức nắm  
giữ.  
Lập trình Web Service  
Trang 4 / 86  
 
Chương I: Công nghệ Web Service  
Đã có nhiều kiến trúc phần mềm được đưa ra nhưng chưa đủ mạnh để giải quyết được  
vấn đề này. Qua thời gian, việc xây dựng ứng dụng như là một tập hợp thành phần phân phối  
vào mạng chung và làm việc với nhau như là một phần trong chương trình tổng thể ngày  
càng trở nên phổ biến. Hình thức này thường được gọi là kỹ thuật Distributed Component  
Object Model (DCOM) của Microsoft, Common Object Request Broker Architecture  
(CORBA) của Object Management Group, Remote Method Invocation (RMI) của Sun.  
Chúng cung cấp cấu trúc mềm dẻo, tin cậy để nắm bắt kịp thời sự phát triển cần thiết của các  
ứng dụng.  
Mặc dù công nghệ dựa trên kiểu thành phần này hoạt động tốt trong môi trường  
Intranet, nhưng với Internet lại xuất hiện hai vấn đề đáng kể. Đầu tiên là chúng không thực  
hiện theo phương thức từng phần. Tất cả hoạt động xử lý dựa trên các đối tượng (object)  
nhưng lại không đưa ra từng chi tiết cụ thể như quản lý vòng đời hoạt động, hỗ trợ xây dựng  
và hỗ trợ kế thừa. Thứ hai, quan trọng hơn là quá tập trung vào hình thức truyền thông kiểu  
RPC điển hình dẫn đến việc xây dựng các hệ thống kết hợp chặt chẽ quanh các phương thức  
đối tượng.  
Sự ra đời của kiến trúc phần mềm hướng dịch vụ (SOA – Service Orient  
Architecture) đã mở ra một hướng đi mới trong việc giải quyết các loại bài toán này. Kiến  
trúc SOA định nghĩa một kiểu kiến trúc cho việc xây dựng các hệ thống phân tán theo hướng  
dịch vụ, tức là hệ thống được phân tách thành các module chương trình, và các module này  
được phát triển độc lập, các module sử dụng các công nghệ khác nhau nhưng vẫn có thể giao  
tiếp được với nhau. Một công nghệ tiêu biểu nhất cho kiến trúc hướng dịch vụ là công nghệ  
Web Service. Với công nghệ Web Service, mỗi Service ở đây là một module có thể thực  
hiện các công việc khác nhau, ta có thể tổng hợp các Service thành phần lại để cùng thực  
hiện một công việc lớn, được gọi là công nghệ tích hợp Web Service, khi đó mỗi Service  
thành phần được gọi là một Service Composition. Sự ra đời của công nghệ Web Service đã  
đem lại rất nhiều lợi thế cho việc chia sẻ tài nguyên qua mạng, trợ giúp xây dựng các hệ  
thống phân tán đồng thời đáp ứng được tính mềm dẻo cần thiết, hệ thống có thể dễ dàng  
chấp nhận những thay đổi lớn so với thiết kế ban đầu mà vẫn đảm bảo cho vấn đề nâng cấp  
và bảo trì sau này. Web Service đem đến đầy đủ sự đáp ứng cần thiết cho các quy trình B2B  
– Bussiness to Bussiness và B2C – Bussiness to Customer, chính vì thế Web Service hiện tại  
đang là một thuật ngữ đang được nhắc đến rất nhiều và ngày càng được sử dụng rộng rãi.  
1. Web Service là gì ?  
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 trong môi trường Internet thông qua các giao diện (Interface) chung và sự  
gắn kết được mô tả bằng XML.  
Lập trình Web Service  
Trang 5 / 86  
 
Chương I: Công nghệ Web Service  
Web service là tài nguyên phần mềm có thể xác định bằng địa chỉ URL để thực hiện  
các chức năng và đưa thông tin ra cho người dùng.  
Web service được tạo ra bằng cách lấy các chức năng và đóng gói chúng sao cho các  
ứng dụng khác dễ dàng tìm thấy và truy cập tới các dịch vụ mà nó cung cấp, đồng thời vẫn  
có thể yêu cầu thông tin từ các dịch vụ khác. Web service bao gồm các mô đun độc lập để  
thực hiện yêu cầu nghiệp vụ của doanh nghiệp và được thực thi trên Server.  
Ứng dụng cơ bản của Web service là tích hợp các hệ thống và là một trong những  
hoạt động chính khi phát triển hệ thống. Trong hệ thống này, các ứng dụng cần được tích  
hợp với cơ sở dữ liệu (CSDL) và các ứng dụng khác, người sử dụng sẽ giao tiếp với CSDL  
để tiến hành phân tích và lấy dữ liệu.  
2. Đặc điểm của Web service  
Lập trình Web Service  
Trang 6 / 86  
 
Chương I: Công nghệ Web Service  
Web Service cho phép các ứng dụng khác nhau từ các nguồn khác nhau có thể giao  
tiếp với các ứng dụng khác mà không đòi hỏi nhiều thời gian coding, do tất cả các quá trình  
giao tiếp đều tuân theo định dạng XML, cho nên Web Service không bị phụ thuộc vào bất kì  
hệ điều hành hay ngôn ngữ lập trình nào. Web service cho phép client và server có thể tương  
tác được với nhau trên các nền tảng khác nhau mà không cần bất cứ thay đổi hay yêu cầu  
đặc biệt nào. Ví dụ, chương trình viết bằng ngôn ngữ Java cũng có thể trao đổi dữ liệu với  
các chương trình viết bằng Perl, các ứng dụng chạy trên nền Windows cũng có thể trao đổi  
dữ liệu với các ứng dụng chạy trên nền Linux. Công nghệ Web Service không yêu cầu phải  
sử dụng trình duyệt và ngôn ngữ HTML.  
Phần lớn kỹ thuật của Web service được xây dựng trên mã nguồn mở và được phát  
triển từ các chuẩn đã được công nhận. Nó tích hợp các ứng dụng trên nền web lại với nhau  
bằng cách sử dụng các công nghệ XML, SOAP, WSDL, và UDDI trên nền tảng các giao  
thức Internet với mục tiêu tích hợp ứng dụng và truyền thông điệp.XML được sử dụng để  
đánh dấu dữ liệu, SOAP được dùng để truyền dữ liệu, WSDL được sử dụng để mô tả các  
dịch vụ có sẵn và UDDI được sử dụng để liệt kê những dịch vụ nào hiện tại đang có sẵn để  
có thể sử dụng. Web Service cho phép các tổ chức có thể trao đổi dữ liệu với nhau mà không  
cần phải có kiến thức hiểu biết về hệ thống thông tin đứng sau Firewall.  
Web service có thể gồm nhiều mô đun và được công bố trên Internet.  
Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ  
thể và cở sở hạ tầng Web, đưa ra lợi ích cho cả doanh nghiệp, khách hàng, những nhà cung  
cấp dịch vụ khác và cả các cá nhân thông qua mạng Internet.  
Web service khi được triển khai sẽ hoạt động theo mô hình client-server. Nó có thể  
được triển khai bởi một phần mềm ứng dụng phía Server như PHP, JSP, ASP.NET, …  
Không giống như mô hình client-server truyền thống, chắng hạn như hệ thống Web server-  
web page, Web Service không cung cấp cho người dùng một giao diện đồ hoạ nào, Web  
Service đơn thuần chỉ là việc chia sẻ các dữ liệu logic và xử lý các dữ liệu đó thông qua một  
giao diện chương trình ứng dụng được cài đặt xuyên suốt trên mạng máy tính.  
Lập trình Web Service  
Trang 7 / 86  
Chương I: Công nghệ Web Service  
Tính tương thích (Inteoperability) là một lợi thế vô cùng mạnh mẽ của Web Service,  
thông thường, các công nghệ Java và công nghệ của Microsoft rất khó có thể tích hợp được  
với nhau, nhưng với Web Service thì các Application và Client sử dụng 2 công nghệ trên  
hoàn toàn có khả năng tương tác với nhau thông qua Web Service.  
3. Nền tảng của Web service  
Dịch vụ Web cũng có thể được nói một cách khác là các khối cơ bản được xây dựng  
để di chuyển trong hệ thống máy tính phân tán trên Internet. Các chuẩn mở và việc tập trung  
vào giao tiếp và làm việc cộng tác giữa con người và các ứng dụng đã tạo nên một môi  
trường nơi mà Web service đang trở thành nền tảng cho việc tích hợp ứng dụng. Các ứng  
dụng được xây dựng sử dụng các Web service các loại từ nhiều nguồn khác nhau làm việc  
cùng với nhau bất kể là chúng ở đâu hoặc chúng đã được triển khai như thế nào. Có thể có  
các định nghĩa khác nhau về Web service khi các công ty xây dựng chúng, nhưng hầu hết tất  
cả các định nghĩa đều có chung các điểm sau:  
Thứ nhất, Web service đưa ra chức năng hữu dụng cho người sử dụng Web thông qua  
một giao thức chuẩn Web. Trong hầu hết các trường hợp, giao thức được sử dụng đó  
là SOAP.  
Thứ hai, Web service đưa ra cách mô tả các giao diện của chúng một cách đủ chi tiết  
nhằm cho phép người sử dụng xây dựng một ứng dụng máy trạm để giao tiếp được  
với chúng. Mô tả này thường được cung cấp ở dạng một tài liệu XML gọi là một tài  
liệu về ngôn ngữ mô tả Web service – WSDL (Web service Description Language).  
Lập trình Web Service  
Trang 8 / 86  
 
Chương I: Công nghệ Web Service  
Thứ ba, Web service được đăng ký sao cho các khách hàng tiềm năng là người sử  
dụng có thể tìm thấy chúng một cách dễ dàng. Điều này được thực hiện với UDDI  
(Universal Discovery Description and Integration).  
Web service như một dịch vụ phần mềm được trình bày trên Web thông qua giao thức  
SOAP, được mô tả bằng một tệp WSDL và được đăng ký trong UDDI. Các dịch vụWeb  
service là nguồn thông tin mà ta có thể dễ dàng kết hợp vào các ứng dụng. Dễ dàng nhận ra  
toàn bộ lớp ứng dụng có thể được xây dựng để phân tích và tích hợp thông tin ta quan tâm  
và trình bày nó theo nhiều cách khác nhau.  
Việc trình bày các ứng dụng đang có như các dịch vụ Web service cho phép người sử  
dụng xây dựng các ứng dụng có các tính năng mạnh hơn thông qua việc sử dụng Web  
service như những block được xây sẵn. Ví dụ, người sử dụng có thể phát triển một ứng dụng  
mua bán để tự động lấy các thông tin về giá cả từ nhiều nhà cung cấp khác nhau, cho phép  
người dùng chọn một nhà cung cấp, chuyển đơn hàng và sau đó theo dõi việc chuyển hàng  
cho tới khi nhận được hàng. Ứng dụng của nhà cung cấp, khi trình bày các dịch vụ của họ  
trên Web, có thể quay ra sử dụng các dịch vụ Web service để kiểm tra tín dụng của khách  
hàng, lấy tiền từ tài khoản của khách hàng và thiết lập việc chuyển hàng với một công ty vận  
tải.  
4. Các công nghệ của Web service  
4.1. Ngôn ngữ XML – RPC  
XML : được viết tắt của cụm từ Extensible Markup Language – Ngôn ngữ đánh dấu  
dữ liệu.  
RPC – được viết tắt của cụm từ Remote Procedure Call – Thủ tục gọi từ xa. RPC  
cung cấp cho người phát triển kĩ thuật để định nghĩa ra một giao diện mà có thể được  
gọi từ xa thông qua môi trường mạng máy tính. Giao diện này có thể là một hàm đơn  
giản nhưng cũng có thể là một thư viện API khổng lồ.  
XML – RPC là một hướng tiếp cận dễ và rõ ràng nhất cho Web Service, nó cung cấp  
phương thức gọi một ứng dụng từ một máy tính local đến một máy tính từ xa thông  
qua môi trường mạng.  
XML – RPC cho phép chương trình có khả năng tạo ra các hàm hoặc các thủ tục gọi  
hàm thông qua mạng máy tính.  
XML – RPC sử dụng giao thức HTTP để vận chuyển thông tin từ Client đến Server.  
XML – RPC sử dụng ngôn ngữ XML để mô tả các thông điệp yêu cầu và các thông  
điệp đáp ứng gần gũi với ngôn ngữ tự nhiên.  
Lập trình Web Service  
Trang 9 / 86  
   
Chương I: Công nghệ Web Service  
XML – RPC Client chỉ ra cụ thể các thông tin về tên thủ tục, các tham biến trong  
thông điệp XML request, và Server trả về lỗi hoặc trả về thông điệp response trong  
thông điệp XML response.  
Các tham số của XML-RPC đơn giản chỉ là kiểu dữ liệu và nội dung – tuy nhiên các  
cấu trúc dữ liệu phức tạp như struct, array cũng được hỗ trợ bởi XML –RPC  
4.2. Giao thức truyền thông điệp SOAP  
SOAP viết tắt cho cụm từ - Simple Object Access Protocol. Trong kiến trúc phân tầng  
của Web Service, SOAP nằm ở tầng Packaging, SOAP là một giao thức đóng gói cho các dữ  
liệu chia sẽ giữa các ứng dụng. Xét về cơ bản, SOAP là XML, chính vì thế SOAP là một  
ứng dụng cụ thể của XML. SOAP được xây dựng lên từ các chuẩn XML như XML Schema  
và XML Namespaces dùng cho việc định nghĩa SOAP và các chức năng của nó.  
Các thành phần cơ bản của SOAP gồm có:  
a. Thông điệp XML  
Thông điệp XML đó là các tài liệu XML được dùng để trao đổi thông tin giữa các  
ứng dụng. Nó cung cấp tính mềm dẻo cho các ứng dụng trong quá trình giao tiếp với nhau  
và là một dạng cơ bản của SOAP.  
Các thông điệp này có thể là bất cứ thứ gì: Hóa đơn thanh toán, yêu cầu về giá cổ  
phiếu, một truy vấn tới một công cụ tìm kiếm hoặc có thể là bất kì thông tin nào có quan hệ  
tới từng thành phần của ứng dụng.  
Hình 1: Mô tả cấu trúc của một thông điệp XML  
Bởi vì XML không phụ thuộc vào một ứng dụng cụ thể, hệ điều hành hay ngôn ngữ  
lập trình nào, cho nên các thông điệp XML có thể sử dụng trong tất cả các môi trường. Một  
chương trình Windows Perl có thể tạo ra một thông điệp XML, trình bày thông điệp đó và  
gửi đến cho một chương trình cài đặt bằng ngôn ngữ Java được triển khai trên nền Unix.  
b. RPC và EDI  
Sử dụng thông điệp XML, đương nhiên SOAP có 2 ứng dụng liên quan: RPC và EDI.  
Thủ tục gọi hàm từ xa RPC - Remote Procedure Call là một dạng tính toán phân tán cơ bản,  
mô tả cách thức để một chương trình tạo ra một thủ tục gọi hàm hoặc phương thức tới một  
máy tính khác, truyền đối số và lấy giá trị trả về. Trao đổi tài liệu điện tử EDI Electronic  
Document Interchange là một dạng transaction cơ bản cho quy trình thương mại nó định  
Lập trình Web Service  
Trang 10 / 86  
 
Chương I: Công nghệ Web Service  
nghĩa các chuẩn định dạng và thông dịch của các tài liệu, thông điệp tài chính và thương  
mại.  
Nếu bạn sử dụng SOAP cho EDI, khi đó thông điệp XML có thể là các hóa đơn thanh  
toán, trả tiền thuế, hoặc các tài liệu tương tự. Nếu bản sử dụng SOAP cho RPC khi đó thông  
điệp XML có thể trình bày các đối số hoặc các giá trị trả về.  
c. Thông điệp SOAP  
Thông điệp SOAP bao gồm phần tử gốc envelope bao trùm toàn bộ nôi dung thông  
điệp SOAP, và các phần tử header và body. Phần tử header chứa các khối thông tin có liên  
quan đến cách thức các thông điệp được xử lý như thế nào. Nó bao gồm việc định tuyến và  
các thiết lập cho việc phân phối các thông điệp. Ngoài ra phần tử Header còn có thể chứa các  
thông tin về việc thẩm định quyền, xác minh và các ngữ cảnh cho các transaction. Các dữ  
liệu thực sự được lưu trữ tại phần tử body. Bất cứ thứ gì có thể trình bày cú pháp XML đều  
nằm trong phần tử body của một thông điệp SOAP.  
Hình 2: Mô tả cấu trúc của một thông điệp SOAP  
Tất cả các phần tử envelope đều chứa chính xác một phần tử body. Thần tử body có  
thể chứa các nốt con theo yêu cầu. Nội dung của phần tử body là các thông điệp. Nếu phần  
tử envelope mà chứa phần tử header, nó chỉ chứa không nhiều hơn một phần tử header và  
phần tử header này bắt buộc phải là phần tử con đầu tiên của phần tử envelope. Mỗi một  
phần tử chứa header đều được gọi là header block. Mục đích của header block cung cấp giao  
tiếp các thông tin theo ngữ cảnh có liên quan đến quy trình xử lý các thông điệp SOAP.  
d. SOAP Faults  
SOAP faults là một dạng thông điệp SOAP đặc biệt được dùng để thông báo lỗi trong  
quá trình trao đổi thông tin, SOAP faults có thể xuất hiện trong quá trình xử lý các thông  
điệp SOAP[1].  
Lập trình Web Service  
Trang 11 / 86  
Chương I: Công nghệ Web Service  
Hình 3: Mô tả thông điệp SOAP faults  
Các thông tin về SOAP faults được diễn tả dưới đây:  
Fault code: Các thuật toán phát hiện lỗi sẽ tự sinh ra các giá trị dùng để phân biệt các  
kiểu lỗi xuất hiện. Các giá trị này phải là là các XML Qualified Name, điều đó có  
nghĩa là các tên của các mã lỗi chỉ có ý nghĩa duy nhất trong vùng định nghĩa XML  
Namespace.  
Fault string: Diễn tả các lỗi mà người dùng có thể đọc hiểu được.  
Fault actor: Đây là dấu hiệu nhận dạng duy nhất của các nốt xử lý các thông điệp nơi  
mà các lỗi có khả năng xuất hiện.  
Fault details: Được sử dụng để trình bày các thông tin cụ thể của ứng dụng về lỗi mà  
nó xuất hiện. Nó phải được trình bày nếu có lỗi xuất hiện trực tiếp có liên quan đến  
các vấn đề về phần thân của thông điệp. Fault details có thể không cần sử dụng, tuy  
nhiên sẽ cần thiết khi ta cần trình bày cụ thể vềthông tin lỗi xuất hiện trong mối quan  
hệ tới các phần còn lại của quy trình xử lý các thông điệp SOAP.  
e. Vận chuyển SOAP  
Như chúng tôi đã trình bày ở trên, SOAP được đặt ở tầng Packaging trong kiến trúc  
phân tầng của Web Service, SOAP đứng phía trên tầng Network và tầng Transport. Vì thế  
SOAP không quan tâm đến việc giao thức vận chuyển nào được sử dụng trong quá trình trao  
đổi các thông điệp, điều đó làm cho giao thức thực sự mềm dẻo tại bất kì môi trường SOAP  
được triển khai nào. Tính mềm dẻo của SOAP được thể hiện qua việc SOAP có thể sử dụng  
các giao thức vận chuyển khác nhau để trao đổi các thông điệp, như HTTP, FTP, SMTP,  
POP3, MQUERY và Jabber.  
Hiện nay, HTTP được sử dụng phổ biến trên Internet, chính vì tính phổ biến của nó,  
cho nên HTTP hiện tại đang là giao thức vận chuyển phổ biến nhất cho việc vận chuyển các  
thông điệp SOAP.  
SOAP thông qua HTTP rất thuận tiện cho SOAP RPC trong việc gọi yêu cầu và nhận  
các thông điệp đáp ứng bởi vì bản chất HTTP chính là giao thức dựa trên nền tảng gọi các  
Lập trình Web Service  
Trang 12 / 86  
Chương I: Công nghệ Web Service  
yêu cầu và nhận các đáp ứng (request-response-base protocol). Các SOAP request được gửi  
tới HTTP server thông qua phương thức POST và HTTP Server trả lại giá trị SOAP  
response thông qua các HTTP response.  
Hình 4: Mô tả việc trao đổi thông điệp SOAP thông qua giao thức HTTP  
4.3. Ngôn ngữ mô tả Web Service - WSDL  
4.3.1. Tổng quan về WSDL  
WSDL viết tắt của cụm từ Web Service Description Language – Ngôn ngữ mô tả  
Web Service. WSDL ra đời dưới sự phát triển của IBM và Microsoft.  
WSDL dựa trên giao thức XML để trao đổi thông tin trong môi trường tập trung hoặc  
phân tán. WSDL mô tả cách thức truy cập tới Web Service và các hành động thực thi trên  
Web Service đó.  
WSDL là ngôn ngữ cho việc mô tả các giao diện Web Service dựa trên nền tảng  
XML. WSDL là ngôn ngữ mà UDDI sử dụng.  
4.3.2. Các thành phần của WSDL  
Một tài liệu WSDL thường bao gồm các thành phần chính sau đây:  
Thành phần  
<type>  
Mô tả  
Định nghĩa kiểu dữ liệu được dùng trong Web Service  
Các thông điệp được sử dụng trong Web Service  
Các thao tác được thực thi bởi Web Service  
Các giao thức giao tiếp dùng cho Web Service  
<message>  
<porttype>  
<binding>  
Giải thích ý nghĩa các thành phần:  
Lập trình Web Service  
Trang 13 / 86  
 
Chương I: Công nghệ Web Service  
Type : Thành phần type định nghĩa kiểu dữ liệu được sử dụng cho Web Service Để  
đảm bảo tính không phụ thuộc vào platform, WSDL sử dụng cấu trúc của lược đồ  
XML để định nghĩa kiểu dữ liệu.  
Message : Thành phần message dùngđể định nghĩa các thành phần dữ liệu và các  
thông điệp mà nó được gọi tới. Mỗi thông điệp có thể bao gồm một hoặc nhiều phần,  
các thành phần này có thể so sánh với các câu lệnh của các lời gọi hàm trong các  
ngôn ngữ lập trình truyền thống.  
PortType : Đây là thành phần quan trọng nhất trong một tài liệu WSDL. Nó được sử  
dụng để mô tả Web Service, các thao tác được thực thi và các lời gọi thông điệp.  
Thành phần port type có thể được so sánh với các thư viện hàm (hoặc các module,  
các lớp ) trong các ngôn ngữ lập trình.  
Trong thành phần <port Type>, ta thường gặp 4 kiểu thao tác được WSDL định  
nghĩa dưới đây:  
Kiểu thao tác  
Mô tả  
One-way  
Thao tác này thể hiện rằng nó chỉ nhận các lời gọi thông  
điệp nhưng không trả lại thông điệp đáp ứng  
Request-response  
Thao tác này bao gồm việc nhận các thông điệp yêu cầu  
và trả về các thông điệp đáp ứng  
Solicit-response  
Notification  
Thao tác này sẽ gửi đi các yêu cầu và đợi các đáp ứng  
Thao tác này sẽ gửi đi các yêu cầu nhưng không đợi để  
nhận các đáp ứng  
Binding: Thành phần này định nghĩa các định dạng thông điệp, các mô tả cụ thể về các  
giao thức cho mỗi port.  
Lập trình Web Service  
Trang 14 / 86  
Chương I: Công nghệ Web Service  
Hình 5: Mô tả thành phần binding trong tài liệu WSDL  
Một thành phần binding thông thường bao gồm 2 thuộc tính: name và type.  
Thuộc tính “name” định nghĩa tên của “binding”, và thuộc tính “type” trỏ đến “port”  
của binding, trong ví dụ này port của binding là “glossaryTerms”.  
Thành phần soap:binding có 2 thuộc tính là “style” và “transport”.  
Thuộc tính style có thể là “rpc” hoặc “document”. Trong ví dụ trên chúng ta sử dụng  
“document”. Thuộc tính transport định nghĩa giao thức vận chuyển thông điệp SOAP.  
Trong ví dụ trên sử dụng giao thức HTTP.  
Hình 6: Minh họa ví dụ của một tài liệu WSDL  
Trong ví dụ trên, thành phần <portType> định nghĩa “glossaryTerm” như là tên của  
một Port, và “getTerm” như tên của một thao tác.  
Thao tác “getTerm” có thông điệp nhập vào gọi là “getTermRequest” và có thông  
điệp xuất ra gọi là “getTermResponse”.  
Thành phần <message> định nghĩa các phần của mỗi thông điệp và kiểu dữ liệu kết  
hợp với các thông điệp đó. Nếu so sánh với các ngôn ngữ lập trình truyền thống,  
Lập trình Web Service  
Trang 15 / 86  
Chương I: Công nghệ Web Service  
glossaryTerm có thể được coi như là một thư viện hàm, “getTerm” là một hàm với  
đối số truyền vào là “getTermRequest” và trả lại lại kết quả là getTermResponse.  
4.4. Đăng ký dịch vụ UDDI  
4.4.1. Tổng quan về UDDI  
UDDI là một chuẩn dựa trên XML dùng cho việc mô tả, công bố và tìm kiếm Web  
Service. UDDI được viết tắt của Universal Description, Discovery and Integration.  
UDDI là thư mục dùng cho việc lưu trữ các thông tin về Web Service. UDDI là thư  
mục của một giao diện Web Service được mô tả bởi WSDL.  
UDDI giao tiếp thông qua SOAP. UDDI cùng với SOAP và WSDL được xem là 3  
chuẩn của Web Service. UDDI là một kỹ thuật mở đầu tiên cho phép các quy trình thương  
mại điện tử có thể khám phá lẫn nhau và định nghĩa cách thức tương tác với nhau qua  
Internet.  
4.4.2. Các thành phần của UDDI  
UDDI gồm 2 thành phần chính:  
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ụ[16].  
Phần thiết lập WSDLPort type định nghĩa cho các thao tác và tìm kiếm thông tin đăng  
ký.  
UDDI xây dựng dựa trên các giao thức chuẩn Internet được công bố bởi W3C và  
IETF như XML, HTTP, và DNS. UDDI sử dụng WSDL để mô tả giao diện của Web  
Service. Thêm nữa tính năng độc lập với nền tảng ngôn ngữ lập trình đã được điều hợp cùng  
với giao thức SOAP.  
4.4.3. Mô hình dữ liệu của UDDI  
UDDI bao gồm lược đồ XML, mô tả bốn kiểu cấu trúc dữ liệu dưới đây:  
BusinessEntity  
BusinessService  
BindingTemplate  
tModel  
publisherAssertion  
Lập trình Web Service  
Trang 16 / 86  
 
Chương I: Công nghệ Web Service  
a. Cấu trúc dữ liệu businessEntity  
Cấu trúc dữ liệu businessEntity trình bày nhà cung cấp Web Service. Cấu trúc này chứa  
các thông tin về công ty, bao gồm danh sách liên lạc, thông tin, phân biệt các tổ chức thương  
mại, và danh sách các nhà cung cấp dịch vụ web.  
b. Cấu trúc dữ liệu businessService  
Cấu trúc dữ liệu business service trình bày một Web Service độc lập được cung cấp bởi  
business entity. Nó mô tả các thông tin về cách thức gắn kết với Web Service, định nghĩa  
kiểu Web Service và phân loại danh mục được liệt kê trong đó.  
Hình 7: Minh họa cấu trúc dữ liệu businessService  
Chú ý rằng sử dụng dấu hiệu nhận dạng duy nhất – Universally Unique Identifiers  
trong thuộc tính BusinessKey và serviceKey. Tất cả các business entity và business service  
đều là dấu hiệu nhận dạng duy nhất trong UDDI registries thông qua việc chỉ định UDDI bởi  
việc đăng ký khi thông tin được nhập vào lần đầu.  
c. Cấu trúc dữ liệu bindingTemplate  
BindingTemplate là kĩ thuật mô tả của Web Service được trình bày bởi cấu trúc dữ liệu  
Business Service. Binding template trình bày sự hoạt động thực tế của Web Service, mô tả  
công nghệ sử dụng để giao tiếp với Web Service. Một Business Service có thể có thể có  
nhiều binding template, cho nên dịch vụ phải chỉ rõ các hành động cụ thể khác nhau trong  
cùng một dịch vụ.  
d. Cấu trúc dữ liệu tModel  
tModel là lõi trong cùng của kiểu dữ liệu, nhưng rất khó có khả năng để có thể nắm bắt  
được hết. tModel là chuẩn cho mô hình kĩ thuật  
tModel là phương pháp để mô tả một vài quy trình thương mại, dịch vụ và các cấu trúc  
mẫu lưu trữ trong UDDI registry. Bất kì một khái niệm trừu tượng nào đều có thể được đăng  
Lập trình Web Service  
Trang 17 / 86  
Chương I: Công nghệ Web Service  
ký trong UDDI như là một tModel. Ví dụ: chúng ta có thể định nghĩa ra một kiểu cổng (port  
type) WSDL mới, và đồng nghĩa với đó ta có thể định nghĩa ra một tModel mới mà trình bày  
kiểu cổng đó trong UDDI. Sau đó, ta có thể chỉ định ra dịch vụ thương mại mà thực thi kiểu  
cổng đó bằng việc kết hợp với tModel với một business service’s binding template.  
e. Cấu trúc dữ liệu publisherAssertion  
Đây là một cấu trúc dữ liệu quan hệ mà nó đặt sự kết hợp giữa hai hoặc nhiều cấu trúc  
dữ liệu businessEntity theo một kiểu quan hệ cụ thể, chẳng hạn như một công ty con hoặc  
một phòng ban.  
Cấu trúc dữ liệu pubisherAssertion bao gồm ba thành phần chính: fromkey  
(BusinessKey đầu tiên), toKey (bussinesskey thứ hai) và keyedReference.  
KeyReference thiết kế ra kiểu mỗi quan hệ kết hợp trong cặp thuật ngữ keyName,  
keyValue trong tModel. Tham chiếu duy nhất bởi tModelkey.  
Tóm tắt bài học  
Web service được tạo ra bằng cách lấy các chức năng và đóng gói chúng sao cho các  
ứng dụng khác dễ dàng tìm thấy và truy cập tới các dịch vụ mà nó cung cấp, đồng thời vẫn  
có thể yêu cầu thông tin từ các dịch vụ khác.  
Web service bao gồm các mô đun độc lập để thực hiện yêu cầu nghiệp vụ của doanh  
nghiệp và được thực thi trên Server.  
Ứng dụng cơ bản của Web service là tích hợp các hệ thống và là một trong những  
hoạt động chính khi phát triển hệ thống.  
Web service khi được triển khai sẽ hoạt động theo mô hình client-server. Nó có thể  
được triển khai bởi một phần mềm ứng dụng phía Server như PHP, JSP, ASP.NET, …  
Web service cho phép client và server có thể tương tác được với nhau trên các nền  
tảng khác nhau mà không cần bất cứ thay đổi hay yêu cầu đặc biệt nào tuân theo định dạng  
XML.  
Web Service sử dụng nhiều công nghệ hỗ trợ khác nhau, đều dựa trên chuẩn mở  
- Ngôn ngữ XML – RPC  
- Giao thức truyền thông điệp SOAP  
- Ngôn ngữ mô tả Web Service - WSDL  
- Đăng ký dịch vụ UDDI  
Lập trình Web Service  
Trang 18 / 86  
Chương II: Kiến trúc Web service  
CHƯƠNG II: KIẾN TRÚC WEB SERVICE  
Mục tiêu:  
Sau khi kết thúc chương này, bạn có thể:  
Hiểu về các tác nhân đối với Web Service: Service provider, Service registry,  
Service consumer  
Hiểu về kiến trúc phần tầng của Web Service  
Hiểu về mục đích, vai trò thiết kế của SOA đối với Web Service  
1. Cơ chế hoạt động của Web Service  
Cơ chế hoạt động của Web Service yêu cầu phải có 3 thao tác đó là : Find, Public,  
Bind.  
Hình 1: Mô tả cơ chế hoạt động của Web Service.  
Trong kiến trúc Web Service, Service Provider công bố các mô tả về các service thông  
qua Service Registry. Service Consumer tìm kiếm trong các Service Registry để tìm ra các  
service mà họ cần sử dụng. Service Consumer có thể là một người hoặc cũng có thể là một  
chương trình.  
Kĩ thuật mô tả dịch vụ là một trong những thành phần chủ chốt của kiến trúc Web  
Service. Các thông tin mô tả đầy đủ nhất về kiến trúc Web Service được thể hiện trong hai  
tài liệu riêng biệt, đó là NASSL – Network Accessible Service Specification Language và  
Lập trình Web Service  
Trang 19 / 86  
   
Chương II: Kiến trúc Web service  
WDS – Web-Defined Service. NASSL là một tài liệu dưới dạng chuẩn của XML cho các  
service chạy trên nền Network, nó được sử dụng để chỉ ra các thông tin hoạt động của Web  
Service, chẳng hạn như danh sách các service, các mô tả về service, ngày hết hạn của service  
và các thông tin liên quan đến các Service Provider, như tên, địa chỉ. Tài liệu WDS là một  
tài liệu mang tính đáp ứng đầy đủ cho tài liệu NASSL. Khi ta kết hợp hai tài liệu này với  
nhau ta sẽ có được sự mô tả một cách đầy đủ về các dịch vụ để cho phía yêu cầu dịch vụ có  
thể dễ dàng tìm kiếm và gọi các dịch vụ đó.  
2. Kiến trúc phân tầng của Web Service  
Hình 1: Web Service technology stack  
Mô hình kiến trúc phân tầng của Web Service tương tự với mô hình TCP/IP được sử  
dụng để mô tả kiến trúc Internet.  
Hình 2: TCP/IP network model  
Các tầng truyền thống như Packaging, Description, và Discovery trong mô hình Web  
Service Stack là những tầng cung cấp khả năng tích hợp và cần thiết cho mô hình ngôn ngữ  
lập trình trung lập.  
Tầng Discovery : Tầng Discovery cung cấp cơ chế cho người dùng khả năng lấy các  
thông tin mô tả về các Service Provider. Công nghệ được sử dụng tại tầng này đó  
chính là UDDI – Universal Description, Discovery and Integration.  
Tầng Desciption : Khi Web Service được thực thi, nó cần phải đưa ra các quyết  
định về các giao thức trên các tầng Network, Transport, Packaging mà nó sẽ hỗ trợ  
trong quá trình thực thi. Các mô tả về dịch vụ sẽ đưa ra phương pháp để làm thế nào  
mà các Service Consumer có thể liên kết và sử dụng các service đó. Tại tầng  
Lập trình Web Service  
Trang 20 / 86  
 
Tải về để xem bản đầy đủ
pdf 86 trang Thùy Anh 20220 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình Web Service", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_lap_trinh_web_service.pdf