



















Preview text:
  lOMoAR cPSD| 58815430    
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG  
---------------------------   PHẠM VĂN CƢỜNG                 BÀI GIẢNG  
PHÁT TRIỂN PHẦN MỀM  HƢỚNG DỊCH VỤ                           HÀ NỘI 2014          lOMoAR cPSD| 58815430     LỜI NÓI ĐẦU     
Hiện tại World-Wide Web (WWW) ang ƣợc sử dụng rộng rãi bởi con ngƣời. Nhƣng theo 
nhà sáng lập ra WWW Tim Berners-Lee cho rằng WWW sẽ phải tiến hóa ể các chƣơng trình 
máy tính có thể sử dụng ƣợc. Sự tiến hóa này ƣợc trông ợi từ việc thiết kế, phát triển và triển 
khai các dịch vụ Web và dịch vụ Web là cụm từ ể chỉ các tiêu chuẩn cơ bản cho phép tích hợp 
các ứng dụng web mà ở ó các ứng dụng có thể sử dụng các thành phần khác nhau ể tạo thành 
một dịch vụ. Trên thực tế, các thành phần của Web ang ngày càng trở nên phổ biến (ubiquitous), 
phân tán (distributed), không ồng nhất (heterogeneous), có xu thế tự trị (autonomous), và tùy 
biến ể cho phép ngƣời dùng dễ dàng tƣơng tác và thậm chí các thành phần này có thể tƣơng 
tác ƣợc với nhau trên nền tảng của Web ngữ nghĩa. 
Bài giảng ―Phát triển phần mềm hƣớng dịch vụ‖ sẽ cung cấp một số kiến thức cơ bản 
về các công cụ ể phát triển các dịch vụ Web, các khái niệm bản thể, các công cụ xây dựng dịch 
vụ, khám phá và lựa chọn Web ngữ nghĩa. Bài giảng ƣợc chia thành 8 chƣơng: 
Chƣơng 1 trình bầy một bức tranh tổng quan về tiến hóa của web, dịch vụ web và vai trò  của web ngữ nghĩa. 
Chƣơng 2 thảo luận về các chuẩn cơ bản ể thiết kế, phát triển và sử dụng dịch vụ Web. 
Trong ó các ngôn ngữ ánh dấu mở rộng (XML), giao thức truy nhập ối tƣợng ơn giản (SOAP), 
ngôn ngữ mô tả dịch vụ web (WSDL) và ngôn ngữ mô tả, khám phá, và tích hợp dịch vụ 
(UDDI) cũng ƣợc trình bày trong chƣơng này. 
Chƣơng 3 trình bầy về các nền tảng và công cụ phổ biến hiện nay ể phát triển dịch vụ 
Web. Trong ó 2 công nghệ chính là J2EE và .NET cũng nhƣ công nghệ tƣơng tác giữa các 
thành phần dịch vụ cũng ƣợc thảo luận. Một ví dụ chi tiết ể minh họa quá trình tạo và sử dụng 
dịch vụ web cũng ƣợc ề cập trong chƣơng này. 
Chƣơng 4 trình bầy về các nguyên lý tính toán hƣớng dịch vụ. Nền tảng kiến truc hƣớng 
dịch vụ (SOA), cũng nhƣ vấn ề mô hình hóa tiến trình nghiệp vụ và các công cụ hợp dịch vụ 
cũng ƣợc ề cập trong chƣơng này. 
Chƣơng 5 trình bầy các khái niệm bản thể và tri thức cũng nhƣ ngô ngữ mô tả nguồn 
cùng các mô hình OWL; cuối chƣơng giới thiệu cách cài ặt và sử dụng công cụ Protégé ể phát 
triển các ứng dụng OWL. 
Chƣơng 6 trình bầy về Web ngữ nghĩa; biểu diễn ngữ nghĩa cho dịch vụ Web; các khối 
xây dựng của bản thể; và công cụ Protégé ể phát triển các ứng dụng OWL-S. 
Chƣơng 7&8 trình bầy các khái niệm cơ bản về khám phá và lựa chọn dịch vụ Web ngữ 
nghĩa. Các thuật toán ối sánh và các kỹ thuật tƣ vấn cũng ƣợc ề cập trong chƣơng này. 
Trong quá trình biên soạn, do kinh nghiệm còn hạn chế nên cuốn bài giảng có thể tồn tại 
những thiếu sót. Tác giả rất mong nhận ƣợc ý kiến óng góp từ phía ộc giả. Mọi ý kiến óng góp 
xin ƣợc gửi về hòm thƣ cuongpv@ptit.edu.vn . 
Hà nội, tháng 12/2014       lOMoAR cPSD| 58815430      MỤC LỤC     
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ ............................................................. 3 
CHƢƠNG 1 GIỚI THIỆU ..................................................................................................... 3 
1.1 TIẾN HÓA CỦA WEB HIỆN NAY ................................................................................. 3 
1.2 DỊCH VỤ WEB ................................................................................................................ 4 
1.3 WEB NGỮ NGHĨA ......................................................................................................... 4 
1.4 BÀI TẬP ........................................................................................................................... 5 
CHƢƠNG 2 CÁC CHUẨN CƠ BẢN CỦA DỊCH VỤ WEB .............................................. 6 
2.1 NGÔN NGỮ ĐÁNH DẤU MỞ RỘNG XML ................................................................. 7 
2.2 GIAO THỨC TRUY NHẬP ĐỐI TƢỢNG ĐƠN GIẢN SOAP ..................................... 7 
2.2.1 Cấu trúc và chức năng của SOAP.............................................................................. 9 
2.2.2 Body và Header ......................................................................................................... 9 
2.3 WSDL ............................................................................................................................. 10 
2.3.1 Cấu trúc của WSDL ................................................................................................. 10 
2.3.2 Chức năng của WSDL ............................................................................................. 13 
2.3.3 Xây dựng WSDL ..................................................................................................... 14 
2.4 UDDI (Universal Description, Discovery, and Integration) ........................................... 14 
2.4.1 Cấu trúc của UDDI .................................................................................................. 14 
2.4.2 Chức năng của UDDI .............................................................................................. 15 
2.4.3 Xây dựng UDDI ...................................................................................................... 17 
2.5 BÀI TẬP ......................................................................................................................... 24 
CHƢƠNG 3 CÔNG NGHỆ CHO PHÁT TRIỂN DỊCH VỤ WEB .................................... 28 
3.1 NỀN TẢNG CHO PHÁT TRIỂN DỊCH VỤ WEB ....................................................... 28 
3.1.1 J2EE ......................................................................................................................... 28 
3.1.2 .NET ........................................................................................................................ 30 
3.2 TƢƠNG TÁC GIỮA CÁC THÀNH PHẦN DỊCH VỤ ................................................ 30 
3.3 PHÁT TRIỂN VÀ SỬ DỤNG DỊCH VỤ WEB ............................................................ 31 
3.4 CÔNG CỤ CHO PHÁT TRIỂN DỊCH VỤ WEB ......................................................... 37 
3.4.1 Lập trình WSDL ...................................................................................................... 37 
3.4.2 Lập trình Web Service với Java ............................................................................... 38 
3.5 BÀI TẬP ......................................................................................................................... 39 
CHƢƠNG 4 CÁC NGUYÊN LÝ TÍNH TOÁN HƢỚNG DỊCH VỤ ............................... 40 
4.1 CÁC THỂ HIỆN ỨNG DỤNG CỦA DỊCH VỤ WEB .................................................. 40 
4.1.1 Việc phối hợp các ứng dụng trong một doanh nghiệp ............................................. 40 
4.1.2 Việc phối hợp các ứng dụng giữa các doanh nghiệp ............................................... 41 
4.1.3 Cấu hình ứng dụng .................................................................................................. 41 
4.1.4 Lựa chọn ộng ........................................................................................................... 42 
4.1.5 Khả năng chịu lỗi của phần mềm ............................................................................ 42 
4.1.6 Lƣới ......................................................................................................................... 43 
4.1.7 Phát triển phần mềm ................................................................................................ 43      lOMoAR cPSD| 58815430  
4.2 KIẾN TRÚC HƢỚNG DỊCH VỤ ................................................................................. 43 
4.2.1 Các yếu tố của kiến trúc hƣớng dịch vụ .................................................................. 43 
4.2.2 So sánh lời gọi thủ tục từ xa (RPC) với ịnh hƣớng tài liệu (OD) ........................... 44 
4.3 TIẾN TRÌNH NGHIỆP VỤ ............................................................................................ 45 
4.3.1 Tiến trình nghiệp vụ (business process) .................................................................. 45 
4.3.2 Mô tả tiến trình nghiệp vụ ....................................................................................... 46 
4.4 HỢP DỊCH VỤ ............................................................................................................... 49 
4.4.1 Hợp dịch vụ ............................................................................................................. 49 
4.4.2 Công cụ BPEL cho hợp nghiệp vụ .......................................................................... 52 
4.5 BÀI TẬP ......................................................................................................................... 56 
CHƢƠNG 5 ONTOLOGY VÀ OWL ................................................................................. 57 
5.1 KHÁI NIỆM BẢN THỂ (ONTOLOGY) VÀ TRI THỨC ............................................. 58 
5.2 NGÔN NGỮ MÔ TẢ NGUỒN RDF ............................................................................. 58 
5.3 NGÔN NGỮ MÔ TẢ NGUỒN RDF ............................................................................. 59 
5.3.1 Xác ịnh lớp dựa trên OWL ...................................................................................... 59 
5.3.2 Xác ịnh các tính chất dựa trên OWL ....................................................................... 61 
5.3.3 Ba mô hình với OWL .............................................................................................. 62 
5.3.4 Ví dụ ........................................................................................................................ 62 
5.4 CÔNG CỤ PROTÉGÉ CHO XÂY DỰNG OWL ......................................................... 64 
5.5 BÀI TẬP ......................................................................................................................... 68 
CHƢƠNG 6 DỊCH VỤ WEB NGỮ NGHĨA VÀ OWL-S .................................................. 70 
6.1 BIỂU DIỄN NGỮ NGHĨA CỦA DỊCH VỤ WEB ........................................................ 70 
6.2 BIỂU DIỄN NGỮ NGHĨA CỦA DỊCH VỤ WEB ........................................................ 71 
6.3 CÁC KHỐI XÂY DỰNG OWL-S ................................................................................. 71 
6.3.1 Bản thể OWL-S profile ............................................................................................ 71 
6.3.2 Bản thể OWL-S process .......................................................................................... 73 
6.3.3 Bản thể OWL-S grounding ...................................................................................... 75 
6.4 CÔNG CỤ PROTÉGÉ CHO XÂY DỰNG OWL-S ...................................................... 76 
6.5 BÀI TẬP ......................................................................................................................... 81 
CHƢƠNG 7 KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA ................................................ 81 
7.1 KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA ................................................................ 81 
7.2 THIẾT KẾ CƠ CHẾ KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA ............................. 82 
7.2.1 Kiến trúc cơ chế khám phá ...................................................................................... 82 
7.2.2 Các thuật toán ối sánh .............................................................................................. 84 
7.2.3 Chi tiết cài ặt ............................................................................................................ 86 
CHƢƠNG 8 LỰA CHỌN DỊCH VỤ WEB NGỮ NGHĨA ................................................ 87 
8.1 KHÁI NIỆM LỰA CHỌN DỊCH VỤ ............................................................................ 87 
8.2 LỰA CHỌN DỰA TRÊN ĐỐI SÁNH NGỮ NGHĨA ................................................... 88 
8.3 LỰA CHỌN DỰA TRÊN MÔ HÌNH XÃ HỘI ............................................................. 90 
8.3.1 Các kỹ thuật tƣ vấn ................................................................................................. 90 
8.3.2 Lựa chọn dịch vụ dựa trên tƣ vấn ........................................................................... 91 
TÀI LIỆU THAM KHẢO ........................................................................................................ 92        lOMoAR cPSD| 58815430
Danh mục các từ viết tắt và thuật ngữ  
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ     B2B   Business-to-Business  B2C   Business-to-Consumer  BPEL  
Business Process Execution Language 
BPEL4WS Business Process Execution Language for Web Services  BPML  
Business Process Management Language  ebXML  
Electronic Business eXtensible Markup Language  EDI   Electronic Data Interchange  HTTP   Hypertext Transfer Protocol  IDL   Interface Definition Language  OWL   Web Ontology Language  OWL-S   OWL service  RDF  
Resource Description Framework  RPC   Remote Procedure Call  SOAP   Simple Object Access Protocol  TCP   Transmission Control Protocol  UDDI  
Universal Description, Discovery, and Integration protocol  URI   Uniform resource identifier  WSCI  
Web Service Choreography Interface  WSDL  
Web Services Description Language  WSML   Web Service Markup Language  WWW   World Wide Web  XACML 
eXtensible Access Control Markup Language  XML   EXtensible Markup Language  XPDL 
XML Process Definition Language  iii 
CHƢƠNG 1 GIỚI THIỆU     1.1 
TIẾN HÓA CỦA WEB HIỆN NAY 
Mặc dù hiện tại World-Wide Web (WWW) ƣợc sử dụng bởi con ngƣời. Tuy nhiên, 
theo hầu hết các chuyên gia cũng nhƣ nhà sáng lập ra WWW, Tim Berners-Lee, ã cho rằng 
WWW sẽ phải tiến hóa ể các hệ thống máy tính có thể sử dụng ƣợc. Sự tiến hóa này ƣợc 
trông ợi từ việc thiết kế, phát triển và triển khai các dịch vụ Web. Cụm từ dịch vụ Web ể chỉ 
các tiêu chuẩn cơ bản cho phép tích hợp các ứng dụng web mà các ứng dụng này có thể sử 
dụng các thành phần khác nhau ể tạo thành một dịch vụ. 
Các thành phần của Web ngày càng trở nên phổ biến (ubiquitous), phân tán 
(distributed), không ồng nhất (heterogeneous) và có xu thế tự trị (autonomous). Ban ầu, các 
thành phần của môi trƣờng này là các trang Web. Nói cách khác, các trang Web cung cấp cả 
nội dung và dịch vụ. Nhƣng ngày một nhiều trong tƣơng lai Web cũng trở nên ngày càng 
tiến hóa và các thành phần của nó ngày càng có khả năng tùy biến. Trong ó các thành phần 
của Web cho phép ngƣời dùng dễ dàng tƣơng tác và thậm chí các thành phần này có thể 
tƣơng tác với nhau nhƣ những chƣơng trình máy tính. Cụ thể, web ã tiến triển từ thế hệ ầu 
tiên với công nghệ trình duyệt thông thƣờng, và cho ến nay là thế hệ thứ 4 với các dịch vụ 
web dựa trên ngữ nghĩa. Bảng 1.1 minh họa iều này.      lOMoAR cPSD| 58815430  
Bảng 1.1: Tiến hóa web  Thế hệ web   Phạm vi   Công nghệ   Ví dụ thực tế   1  Tất cả  Trình duyệt  Các trang HTML  2  Chƣơng trình  Giao tác với màn 
Phát sinh nội dung HTML một  hình  cách có hệ thống  3 
Theo tiêu chuẩn Các dịch vụ web 
Các dịch vụ ƣợc mô tả hình  thức  4  Ngữ nghĩa 
Các dịch vụ web ngữ Các dịch vụ ƣợc mô tả theo ngữ  nghĩa  nghĩa    1.2  DỊCH VỤ WEB 
Cũng giống nhƣ khái niệm ối tượng (object) của thế hệ trƣớc ây, khái niệm dịch vụ 
(service) là từ ƣợc sử dụng rộng rãi hiện nay. Khái niệm dịch vụ có thể có các ý nghĩa khác 
nhau ối với những ngƣời khác nhau. Nhƣng nhìn chung dịch vụ Web (Web service) có thể  ƣợc ịnh nghĩa là: 
▪ Một phần của nhà cung cấp (piece of business) có thể truy cập thông qua Internet bằng 
cách sử dụng các tiêu chuẩn mở ( ịnh nghĩa của công ty Microsoft); 
▪ Bao phủ, lỏng lẻo, giao tác bằng các hàm thông qua các giao thức chuẩn trên Web ( 
ịnh nghĩa của công ty DestiCorp); 
▪ Thành phần phần mềm kết nối lỏng lẻo cùng tƣơng tác với nhau thông qua các chuẩn 
công nghệ Internet ( ịnh nghĩa của công ty Gartner); 
▪ Một ứng dụng phần mềm nhận dạng bằng một ịnh dạng tài nguyên thống nhất 
(Uniform Resource Identifier), có giao diện và bắt buộc có khả năng ƣợc xác ịnh, mô 
tả, và phát hiện bởi bằng ngôn ngữ ánh dấu mở rộng (XML), và hỗ trợ tƣơng tác trực 
tiếp với các ứng dụng phần mềm khác sử dụng các thông iệp XML dựa trên các giao 
thức Internet ( ịnh nghĩa của tổ chức W3C).  1.3  WEB NGỮ NGHĨA 
Tim Berners-Lee, cha ẻ của World Wide Web, ã mô tả rằng: các thành phần của web sẽ 
không tập trung mà có xu hƣớng phân tán khắp nơi, không ồng nhất và tự trị. Đó chính là 
web ngữ nghĩa (Web Semantics). Thông tin trên web ƣợc ánh dấu (markup) lên ể trình diễn 
và ƣợc hiển thị bằng một trình duyệt. Con ngƣời có thể giải thích nội dung của thông tin vì 
họ ã có nền tảng tri thức mà họ chia sẻ với những ngƣời tạo ra các trang web ó. Trừ khi các 
chƣơng trình ƣợc tạo ra ể biểu diễn và khai thác tri thức nhƣ vậy. Việc xử lý vấn ề này 
thƣờng bị giới hạn vì các mã chƣơng trình ƣợc lập trình sẵn (hard-coded); iều này không 
phù hợp với một thiết lập ộng (dynamic) vì các chi tiết về thông tin trên web có thể dễ dàng  thay ổi theo thời gian. 
Ví dụ, chúng ta có thể viết một chƣơng trình sao chép màn hình (screen-scraping) ể 
trích xuất (extract) giá một cuốn sách từ một trang kết quả tìm kiếm trên trang thƣơng mại 
iện tử amazon.com. Chƣơng trình này sẽ dựa vào cú pháp của các trang web ã ƣợc mã hóa 
theo một ngữ pháp hình thức (formal gramma). Bằng trực giác, một chƣơng trình có thể ƣợc 
hƣớng dẫn ể ọc giá từ các trang kết quả phân tích một cách thích hợp. Tùy thuộc vào cấu      lOMoAR cPSD| 58815430  
trúc của trang tại các trang web nhất ịnh mà những hƣớng dẫn này có thể phải thay ổi mà 
không ƣợc báo trƣớc (ad hoc). Ví dụ, thông tin về giá của cuốn sách A ở dòng thứ 2, cột 3 
bảng thứ 4 trong khung (frame) thứ 5 vào hôm nay; nhƣng hôm sau do việc bổ sung thêm 
một vài loại hàng hóa khác có thể khiến thông tin về giá của cuốn sách A không còn ở vị trí 
cũ nữa. Mặc dù có một số công cụ hiện tại cho phép ơn giản hóa việc phân tích và khai thác 
nhƣ vậy, nhƣng nhiệm vụ này vẫn òi hỏi công sức rất lớn của các lập trình viên. Hơn nữa, 
chƣơng trình có thể vẫn có lỗi khi cấu trúc của bất kỳ của các trang Web mà nó ọc bị thay  ổi. 
Trong Web ngữ nghĩa, trang sẽ ƣợc ánh dấu lên không chỉ với các thông tin chi tiết cần 
hiển thi; mà còn ƣợc ánh dấu dựa trên ý nghĩa của nội dung. Nói cách khác, nhƣ ví dụ trên 
thì trang kết quả chứa những gì giá là. Một chƣơng trình sẽ trích xuất giá sẽ tìm thấy những 
giá ngay cả khi bố trí của trang ã ƣợc thay ổi. In other words, the Nói cách khác, ánh dấu 
trên Web sẽ tiến triển từ các cú pháp chỉ ơn thuần là cấu trúc của các thông tin ến ngữ nghĩa 
ể bắt ý nghĩa của các thông tin.  1.4  BÀI TẬP 
Sử dụng một công cụ lập trình Web nhƣ Java Server Pages (JSP) hoặc Active Server 
Pages (ASP) ể xây dựng một Website cho cửa hàng bán sách trực tuyến. Mỗi cuốn sách có 
các thông tin về tác giả, tựa ề sách, nhà xuất bản, năm xuất bản, và giá. Yêu cầu: 
- Xây dựng cơ sở dữ liệu quản lý sách cho cửa hàng; 
- Phát triển các trang Web cho phép ngƣời quản trị cập nhật, bổ sung, sửa, xóa, thống 
kê các quyển sách ã ƣợc bán và còn lại theo thời iểm nào ó; 
- Phát triển các trang Web cho phép ngƣời dùng có thể tìm kiếm và ặt mua sách.        lOMoAR cPSD| 58815430   CHƢƠNG 2 
CÁC CHUẨN CƠ BẢN CỦA DỊCH VỤ WEB    
Mặc dù vấn ề dịch vụ Web ang ƣợc quan tâm; song ý tƣởng của cung cấp các dịch vụ 
trên Web là khá cũ. Nhìn lại chúng ta có thể thấy rằng việc cung cấp và sử dụng dịch vụ Web 
ã có từ nhiều năm trƣớc ây. Ví dụ, danh sách ịa chỉ thƣ iện tử của những ngƣời phản hồi là 
những dịch vụ mà ta có thể ăng ký, hay những catalogue trực tuyến của các danh sách gửi 
thƣ với các chủ ề cụ thể mà ta ang quan tâm. Sự khác biệt chính giữa các dịch vụ cũ và các 
dịch vụ Web hiện ại là ối với các dịch vụ cũ thì cần thiết phải có sự can thiệp của con ngƣời. 
Ngày nay, các dịch vụ ƣợc mô tả và sử dụng theo các chuẩn. Mô hình kiến trúc chung cho 
các dịch vụ Web ƣợc thể hiện trong hình vẽ 2.1; Nó bao gồm ba ối tƣợng:  1. 
Cung cấp dịch vụ (service provider): nhà tạo ra các dịch vụ Web và quảng cáo 
cho ngƣời sử dụng tiềm năng ăng ký các dịch vụ Web với các nhà môi giới dịch vụ.  2. 
Môi giới dịch vụ (service broker): duy trì một ăng ký các dịch vụ xuất bản và 
giới thiệu các nhà cung cấp dịch vụ ến những ngƣời yêu cầu dịch vụ. 
3- Ngƣời yêu cầu dịch vụ (service resquestor): ngƣời tìm kiếm, ăng ký và yêu cầu sử 
dụng dịch vụ phù hợp từ môi giới dịch vụ. 
Các kiến trúc cho các dịch vụ Web ƣợc thành lập trên nguyên tắc và tiêu chuẩn ể kết 
nối, truyền thông, mô tả, và khai phá. Đối với các nhà cung cấp và yêu cầu của các dịch vụ 
ƣợc thông tin kết nối và trao ổi thì cần thiết phải có một ngôn ngữ chung. Đó chính là ngôn 
ngữ ánh dẫu mở rộng (eXtensible Markup Language hay XML). Một giao thức chung cũng 
cần thiết cho hệ thống ể giao tiếp với nhau ể ngƣời dùng có thể yêu cầu dịch vụ ó chính là 
giao thức truy cập ối tƣợng ơn giản (Simple Object Access Protocol, SOAP).   
Hình 2.1: Mô hình kiến trúc chung cho các dịch vụ Web  
Các dịch vụ phải ƣợc mô tả theo một ịnh dạng máy có thể ọc ƣợc, mà tên của các hàm, 
các tham số, và các kết quả có thể ƣợc xác ịnh. Điều này ƣợc cung cấp bởi ngôn ngữ mô tả      lOMoAR cPSD| 58815430  
dịch vụ Web (Web Services Description Language hay WSDL). Cuối cùng, ngƣời dùng và 
các doanh nghiệp cần có một cách ể tìm các dịch vụ mà họ yêu cầu. Điều này có thể ƣợc 
giải quyết bởi chuẩn mô tả, khai phá, và tích hợp (Universal Description Discovery 
Integration hay UDDI). Bên cạnh các chuẩn XML, SOAP, WSDL, UDDI cần có các phƣơng 
pháp cho ại diện ngữ nghĩa của các dịch vụ sẽ ƣợc trình bày ở các chƣơng tiếp theo. Trong 
chƣơng này ta sẽ tìm hiểu bốn chuẩn ngôn ngữ cơ bản cho dịch vụ Web là XML, SOAP,  WSDL và UDDI. 
2.1 NGÔN NGỮ ĐÁNH DẤU MỞ RỘNG XML 
Ngôn ngữ cơ bản nhất của các ngôn ngữ trên là ngôn ngữ ánh dấu mở rộng XML. Các 
thẻ XML truyền ạt thông tin về ý nghĩa của dữ liệu. Không chỉ mô tả cách thức dữ liệu sẽ 
hiển thi nhƣ là trƣờng hợp của HTML. XML tuân thủ cú pháp của HTML, vì vậy việc phân 
tích và xử lý trở nên dễ dàng hơn. XML có thể cung cấp các thẻ ể mô tả tài liệu có cấu trúc 
hoặc phi cầu trúc. XML còn cho phép truy vấn dữ liệu cảm cấu trúc (structure-sensitive), có 
nghĩa là chúng ta có thể truy vấn một tài liệu XML dựa trên cấu trúc của nó theo lĩnh vực 
khác nhau. Ngoài ra, dữ liệu XML ƣợc gắn thẻ có thể ƣợc xác nhận một cách máy móc. Nói 
tóm lại, XML cung cấp một ịnh dạng dữ liệu cho các tài liệu và dữ liệu có cấu trúc, nhƣng 
không xác ịnh ngữ nghĩa của các ịnh dạng ể chia sẻ thông tin và tri thức cũng nhƣ tƣơng tác 
giữa các ứng dụng khác nhau. 
Cú pháp XML cung cấp một tập luật ể mô tả nội dung chứ không chỉ hiển thị nội dung, 
và nó ƣợc sử dụng ể cung cấp cấu trúc cho dữ liệu. Một tài liệu XML tƣơng ứng với một 
cấu trúc cây. Các phần tử chức năng (element function) ƣợc ặt vào trong các cặp dấu ngoặc. 
Ví dụ về một tài liệu XML ơn giản ƣợc trình bầy trong hình 1.1a.   
Hình 1.1a: một tài liệu XML ơn giản 
Trong ví dụ trên có thẻ mở là  và thẻ óng là . Các phần 
tử có thể chứa (nesting) dữ liệu văn bản hoặc chứa các phần tử khác. Các phần tử có thể có 
một số thuộc tính (attribute) mà mỗi thuộc tính gắn với một giá trị. Giá trị của thuộc tính 
phải là xâu kí tự (có thể ƣợc óng gói vào cặp dấu ‗ ‘ hoặc ― ‖). Thuộc tính ƣợc ặt vào sau 
thẻ mở của phần tử (xem ví dụ trên ta thấy <temperature scale=”Celsius”>. Một tài liệu 
XML gồm một phần tử gốc (top-level element) có thể chứa các phần tử. Nói cách khác cây 
tài liệu có gốc là phần tử gốc.   
2.2 GIAO THỨC TRUY NHẬP ĐỐI TƢỢNG ĐƠN GIẢN SOAP 
Dự ịnh ban ầu SOAP ƣợc phát triển ể cung cấp cho các máy tính ƣợc nối mạng với 
các dịch vụ gọi thủ tục từ xa (Remote Procedure Call -RPC) ƣợc viết bằng XML. Nó ã trở 
thành một giao thức ơn giản và nhẹ ể trao ổi thông iệp XML trên Web sử dụng HTTP      lOMoAR cPSD| 58815430  
(HyperText Transfer Protocol), SMTP (Simple Mail Transfer Protocol), và SIP (Session  Initiation Protocol). 
Trong thực tế, HTTP là giao thức phổ biến nhất cho SOAP và là lựa chọn cho các chuẩn 
tƣơng thích, chẳng hạn nhƣ BP (Business Process) 1.0. 
Thông iệp SOAP ƣợc có thể ƣợc chuyển từ một bên gửi ến bên nhận. Các thông iệp 
SOAP ƣợc ịnh dạng nhƣ các tài liệu XML. Nói một cách khác SOAP không ịnh ra các ngữ 
nghĩa ứng dụng hoặc cài ặt chi tiết mà nó chỉ cung cấp một cơ chế gọn nhẹ, hiệu quả cho 
phép trao ổi thông tin có cấu trúc và ịnh dạng giữa các thành phần (components) trong môi 
trƣờng phân tán bằng các tài liệu XML. Chính vì lẽ ó mà SOAP cho phép các ứng dụng chạy 
trên các nền tảng khác nhau có thể trao ổi thông tin cho nhau. Các ặc trƣng của SOAP bao  gồm: 
- Tính ơn giản và dễ dàng mở rộng; 
- Các thông iệp ều ƣợc ịnh dạng XML; 
- Giao thức truyền dữ liệu riêng; 
- Kết nối giữa bên gửi và bên nhận là lỏng lẻo (loosed coupling); nghĩa là không  cần cơ chế tham chiếu; 
- Độc lập với nền tảng (platform independent) và ộc lập với ngôn ngữ lập trình.   
Hình 2.2: Một yêu cầu SOAP 
Hình 2.2 là ví dụ về một thông iệp SOAP. Trong ví dụ này, một công ty sản xuất có thể 
trực tiếp (ví dụ Dell) gọi một nhà cung cấp (ví dụ Intel) các danh mục hoặc ơn ặt hàng, hoặc 
có thể gửi một ơn ặt hàng ến các nhà cung cấp. Khi ó dịch vụ ƣợc mô hình hóa nhƣ các 
phƣơng thức, sau ó thành phần dịch vụ ƣợc thực hiện thông qua các kịch bản (scripts) ể gọi  ến phƣơng thức.      lOMoAR cPSD| 58815430  
2.2.1 Cấu trúc và chức năng của SOAP  
Thành phần gốc của một thông iệp SOAP là phong thƣ (envelope). Phong thƣ chứa 
các thành phần Header và Body. Trong Header có các thành phần con gọi là Header entry 
dùng ể diễn giải các ngữ nghĩa cho thông iệp SOAP. Nhờ ó, thông iệp SOAP ƣợc ịnh tuyến 
dựa trên các thông tin trong phần Header.    Envelope  Header    Header entry      Header entry    Header entry    Body   
Hình 2.3: Cấu trúc thông iệp SOAP 
Hình 2.4 cho thấy một thông iệp SOAP ƣợc óng gói trong phƣơng thức POST của giao 
thức HTTP. Phƣơng thức POST của HTTP ƣợc sử dụng thay vì phƣơng thức GET. Thông 
iệp ƣợc gửi ến www.socweather.com ể yêu cầu các dịch vụ Web thực thi hàm GetTemp sử 
dụng "Honolulu" nhƣ giá trị của tham số City và "now" làm giá trị của tham số When. Các 
thông iệp kết quả SOAP chứa nhiệt ộ là tham số DegreesCelsius với giá trị 30. 
2.2.2 Body và Header  
Mỗi thông iệp SOAP phải bao gồm phần body, thƣờng ƣợc thông dịch (interpreted) bởi 
ultimateReceiver. Header cung cấp thông tin về các iểm ến trung hoặc cuối cùng của thông  iệp SOAP (xem hình 2.2a).        lOMoAR cPSD| 58815430  
Hình 2.2a: ví dụ về SOAP header   
Hình 2.4: Một thông iệp SOAP  2.3 WSDL 
2.3.1 Cấu trúc của WSDL  
Mô hình kiến trúc cho các dịch vụ Web giả thiết là các dịch vụ có thể ƣợc tìm ra và sử 
dụng. Nghĩa là chúng ta sẽ có các mô tả về dịch vụ một cách chính xác. Ngôn ngữ mô tả dịch 
vụ Web (Web Services Description Language hay WSDL) là một ngôn ngữ XML dùng ể mô 
tả một giao diện lập trình cho một dịch vụ Web [Christensen et al., 2001]. Mô tả bao gồm 
ịnh nghĩa của các kiểu dữ liệu, ịnh dạng của thông iệp ầu vào và ầu ra, các hoạt ộng ƣợc 
cung cấp bởi dịch vụ (nhƣ GetTemp), ịa chỉ mạng, và các ràng buộc giao thức. Để hiểu ƣợc 
WSDL một cách rõ ràng nhất, xem ví dụ ở hình 2.5 sau ây. 
<?xml version ="1.0"?>  
<!−− the root element , w s d l : d e f i n i t i o n s , d e f i n e s a s e t of −−> 
<!−− r e l a t e d s e r v i c e s −−>  
<w s d l : d e f i n i t i o n s name="Temperature" 
targetNamespace="http://www.socweather.com/schema" x m l n 
s : t s="http://www.socweather.com/TempSvc.wsdl" x m l n s : t s 
x s d="http://schemas.socweather.com/TempSvc.xsd" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">  
<!−− ws d l : t y p e s e n c a p s u l a t e s schema d e f i n i t i o n s of 
−−> <!−− communication t y p e s ; here using xsd −−> <w s d l : t y p e  s>  
<!−− a l l type d e c l a r a t i o n s are expressed in xsd −−>   <xsd:schema 
targetNamespace="http://namespaces.socweather.com" 
xmlns:xsd="http://www.w3.org/1999/XMLSchema">  
<!−− xsd d e f : GetTemp [ Ci ty s t r i n g , When s t r i n g ] −−>  
<x s d : e l e m e n t name="GetTemp">  
<xsd:complexType>  
<xsd:sequence>       lOMoAR cPSD| 58815430    
<x s d : e l e m e n t name="City" type="string"/>  
<x s d : e l e m e n t name="When" type="string"/>  
</ xsd:sequence>  
</xsd:complexType>  
</ xsd:element>  
<!−− xsd d e f : GetTempResponse [ DegreesCel s ius i n t e g e r ] −−>  
<x s d : e l e m e n t name="GetTempResponse">  
<!−− XML Schema e n t r y as above −−>  
</ xsd:element>  
<!−− xsd d e f : GetTempFault [ errorMessage s t r i n g ] −−>  
<x s d : e l e m e n t name="GetTempFault">  
<!−− XML Schema e n t r y as above −−>  
</ xsd:element>  
</xsd:schema>  
</ w s d l : t y p e s>  
<!−− wsdl :message element s d e s c r i b e p o t e n t i a l t r a n s a c t i o n s −−>  
<!−− Most messages , as here , have only one par t . M u l t i p l e −−>  
<!−− par t s provide a way t o aggregate complex messages −−>  
<!−− r e q u e s t GetTempRequest i s of type GetTemp −−>  
<wsdl:message name="GetTempRequest">  
<w s d l : p a r t name="body" element="tsxsd:GetTemp"/>  
</ wsdl:message>  
<!−− response GetTempResponse i s of t y p e GetTempResponse −−> 
<wsdl:message name="GetTempResponse">  
<w s d l : p a r t name="body" element="tsxsd:GetTempResponse"/> 
</ wsdl:message>  
<!−− wsdl :por tType d e s c r ib e s messages in an o p e r a t i o n −−> 
<wsdl:portType name="GetTempPortType">  
<!−− w s d l : o p e r a t i o n de s c r ibe s the e n t i r e pr o t o c o l from −−>  
<!−− input to o u t p u t or f a u l t −−>  
<w s d l : o p e r a t i o n name="GetTemp">  
<!−− The order input preceding o u t p u t i n d i c a t e s the −−>  
<!−− request−response o p e r a t i o n t y p e −−>  
<w s d l : i n p u t message="ts:GetTempRequest"/>  
<w s d l : o u t p u t message="ts:GetTempResponse"/>  
<w s d l : f a u l t message="ts:GetTempFault"/>  
</ w s d l : o p e r a t i o n >  
</ wsdl:portType>  
<!−− w s d l : b i n d i n g s p e c i f i e s a s e r i a l i z a t i o n pr o t o c o l −−>  
<w s d l : b i n d i n g name="TempSvcSoapBinding" 
type="ts:GetTempPortType">  
<!−− l e v e r a g e o f f s o a p : b i n d i n g document s t y l e −−>  
<s o a p : b i n d i n g s t y l e ="document" 
t r a n s p o r t ="http://schemas.xmlsoap.org/soap/http"/>  
<!−− semi−opaque c o n t a i n e r of network t r a n s p o r t d e t a i l s −−>  
<!−− c l a s s e d by soap:bi n d i n g above @@@−−>  
<w s d l : o p e r a t i o n name="GetTemp">  
<s o a p : o p e r a t i o n 
soapAction="http://www.socweather.com/TempSvc"/>  
<!−− f u r t h e r s p e c i f y that the messages in the −−>       lOMoAR cPSD| 58815430  
<!−− w s d l : o p e r a t i o n "GetTemp" us e SOAP ? @@@ −−> 
<w s d l : i n p u t>  
<soap:body use="literal" 
namespace="http://schemas.socweather.com/TempSvc.xsd"/>       lOMoAR cPSD| 58815430  
</ w s d l : i n p u t>  
<!−− As above f o r ws d l : o u t p u t and ws d l : f a u l t −−> 
</ w s d l : o p e r a t i o n >  
</ wsdl:binding>  
<!−− w s d l : s e r v i c e names a new s e r v i c e "TemperatureService" −−>  
<w s d l : s e r v i c e name="TemperatureService">  
<wsdl:documentation>socweather . com t e m p e r a t u r e s e r v i c e 
</wsdl:documentation>  
<!−− connect i t to the binding "TempSvcSoapBinding" above −−>  
<w s d l : p o r t name="GetTempPort" binding="ts:TempSvcSoapBinding">  
<!−− g i v e t h e binding a network addr e s s −−>  
<s o a p : a d d r e s s l o c a t i o n ="http://www.socweather.com/TempSvc"/> 
</ws d l : p o r t>  
</ w s d l : s e r v i c e >  
</ w s d l : d e f i n i t i o n s >   
Hình 2.5: Một ví dụ WSDL 
WSDL cho biết tên của các dịch vụ, nhƣ GetTemp, các loại thông số ầu vào, nhƣ 
String, các loại thông số ầu ra, nhƣ Integer, cấu trúc ịnh nghĩa lƣợc ồ XML (từ xSD 
namespace) cho các ầu vào và ầu ra, các hoạt ộng ƣợc cung cấp bởi dịch vụ nhƣ GetTemp, 
thứ tự giao thức của mỗi hoạt ộng từ ầu vào ến ầu ra hoặc lỗi. Thêm nữa giao thức 
serialization có có thể ƣợc dùng trong trao ổi thông tin nhƣ SOAP. Ngoài ra các ịa chỉ mạng 
ể có thể tìm thấy các dịch vụ ƣợc ặt trong khuôn dạng URL. 
2.3.2 Chức năng của WSDL  
WSDL mô tả bốn kiểu hoạt ộng, ặc trƣng cho các hành vi của một ầu cuối. Chúng ƣợc 
xác ịnh từ quan iểm của việc xây dựng nên các dịch vụ Web. 
▪ One-way: Nhận một thông iệp. 
▪ Notification: Gửi một thông iệp. 
▪ Request-response: Nhận một yêu cầu và ƣa ra một trả lời tƣơng ứng. 
▪ Solicit-response: Tạo ra một yêu cầu và nhận lại một trả lời tƣơng ứng. 
Các kiểu hoạt ộng có thể ƣợc thiết kế dựa trên các kiểu ơn hƣớng, nhƣng chúng ƣợc 
xác ịnh nhƣ trên vì ây là thể hiện của các mẫu thiết kế quan trọng. Ví dụ, nếu là máy chủ 
trong các lời gọi thủ tục từ xa (Remote Procedure Call hay RPC) thì tƣơng ứng với 
Requestresponse, còn nếu là máy khách trong RPC thì tƣơng ứng với Solicit-response. Nhƣ 
vậy, những kiểu hoạt ộng này ã mô tả trƣớc các mẫu trao ổi thông iệp của SOAP. Trong số 
các kiểu trên, one-way và request–response là những hoạt ộng ang ƣợc sử dụng nhiều và 
chúng ƣợc hỗ trợ bởi HTTP cùng với các phƣơng pháp lập trình hƣớng ối tƣợng phổ biến. 
WSDL 2.0 có một tập các kiểu hoạt ộng phong phú hơn. Những hoạt ộng này bao gồm 
nhận hoặc gửi nhiều câu trả lời cho một truy vấn ơn. Tuy nhiên trong giới hạn ở ây sẽ không 
mô tả chi tiết về các hoạt ộng này.      lOMoAR cPSD| 58815430  
2.3.3 Xây dựng WSDL  
Việc xây dựng WSDL giúp phân chia ặc tả WSDL thành hai phần chính: phần giao diện 
(interface) và phần cài ặt (implementation). Việc phân chia ặc tả WSDL nhƣ thế này sẽ làm 
tăng khả năng mô un hóa và phân tách ƣợc giao diện dịch vụ ể từ ó có thể tái sử dụng và 
giúp tạo thêm nhiều phƣơng pháp thực hiện. 
Phần giao diện WSDL (interface) là thành phần trừu tƣợng hơn ể mô tả một dịch vụ 
bằng cách bổ sung phần tử definition cho các phần tử con nhƣ types, import, message, 
portType và binding. Nghĩa là một giao diện có thể sử dụng các giao diện khác. 
Để thực hiện dịch vụ WSDL cần phải xem xét ến các chi tiết cụ thể của việc gắn kết 
(binding) dịch vụ. Phần tử definition của dịch vụ phải có một phần tử import ể kết nhập ít 
nhất một giao diện WSDL và một phần tử service (dịch vụ), trong ó bao gồm các phần tử 
port (cổng). Phần tử import xác ịnh một ịnh danh và vị trí cho namespace (không gian tên)  ƣợc kết nhập. 
2.4 UDDI (Universal Description, Discovery, and Integration) 
Đặc tả UDDI (Universal Description, Discovery, and Integration) [UDDI, 2000] mô 
tả cơ chế ăng ký và ịnh vị các dịch vụ Web. Đặc tả này ịnh nghĩa một registry (cơ sở dữ liệu 
ăng ký) trực tuyến ể các tổ chức (ví dụ các nhà cung cấp dịch vụ) có thể mô tả về tổ chức và 
ăng ký dịch vụ Web của họ. Registry sau ó có thể ƣợc sử dụng bởi các bên yêu cầu dịch vụ 
và ngƣời sử dụng ể xác ịnh vị trí các dịch vụ mà họ cần. UDDI giúp các nhà cung cấp dịch 
vụ liên kết các dịch vụ của họ với nhau và giúp các bên yêu cầu trong việc khám phá (tìm 
ra) các dịch vụ. Đây là một iều kiện tiên quyết cho việc tạo ra các dịch vụ Web. 
2.4.1 Cấu trúc của UDDI  
Một UDDI registry bao gồm 3 thành phần: 
▪ Trang trắng (White Pages) — ịa chỉ, thông tin liên hệ, và các ịnh danh ã biết; 
▪ Trang vàng (Yellow Pages) — phân loại dựa trên nguyên tắc phân loại tiêu chuẩn; 
▪ Trang xanh (Green Pages) — thông tin kỹ thuật về các dịch vụ ƣa ra của các doanh  nghiệp. 
Trang trắng cung cấp thông tin về các doanh nghiệp cung cấp dịch vụ. Thông tin này 
bao gồm tên của doanh nghiệp và một mô tả về doanh nghiệp - có thể bằng nhiều ngôn ngữ. 
Sử dụng thông tin này có thể giúp tìm thấy một dịch vụ khi ã biết một số thông tin (ví dụ, 
xác ịnh một dịch vụ dựa theo tên của nhà cung cấp). 
Thông tin liên lạc cho các doanh nghiệp cũng ƣợc cung cấp - ví dụ ịa chỉ doanh nghiệp, 
số iện thoại và các thông tin khác. 
Các trang vàng ƣợc thực hiện theo các cặp tên-giá trị nhằm cho phép bất kỳ ịnh danh 
phân loại hợp lệ nào ều ƣợc gắn vào các trang trắng cho một doanh nghiệp. Việc tìm kiếm 
trong một trang vàng có thể ƣợc thực hiện ể xác ịnh loại ngành công nghiệp hoặc loại sản 
phẩm cụ thể của doanh nghiệp, hoặc xác ịnh vị trí ịa lý của doanh nghiệp. 
Các trang xanh chứa những thông tin doanh nghiệp sử dụng ể mô tả cách các doanh 
nghiệp khác có thể tiến hành thƣơng mại iện tử với họ. Thông tin trang xanh là một mô hình      lOMoAR cPSD| 58815430  
lồng nhau bao gồm các quy trình kinh doanh, giới thiệu dịch vụ và thông tin kết nối. Các 
thông tin không phụ thuộc vào ngôn ngữ, nền tảng và cách cài ặt. Các dịch vụ cũng có thể  ƣợc phân loại. 
2.4.2 Chức năng của UDDI  
UDDI chính là một dịch vụ Web dựa trên XML và SOAP. Ví dụ, một bản ăng ký kinh 
doanh là một tài liệu XML. Khách hàng sử dụng một tập các giao diện SOAP (SOAP 
interfaces) ƣợc xác ịnh trƣớc ể tìm kiếm ăng ký cho một dịch vụ web mong muốn. Nhà cung 
cấp sử dụng giao diện SOAP ể ăng ký hai loại thông tin: (1) mô hình kỹ thuật (tModel), là 
các giao thức dịch vụ trừu tƣợng mô tả hành vi của một dịch vụ Web riêng lẻ, và (2) các thực 
thể kinh doanh (businessEntity), trong ó mô tả một cài ặt dịch vụ và cung cấp mô tả về các 
ặc tả của nhiều tModels. Lƣu ý là mỗi ặc tả, vận chuyển, giao thức, hoặc không gian tên 
riêng biệt ƣợc trình bày bởi một tModel. Tuy nhiên, một UDDI registry không thực sự lƣu 
trữ các ặc tả và chi tiết nhƣ vậy. Một UDDI tModel chỉ ơn giản chứa các ịa chỉ (URL) nơi 
chứa những tài liệu kỹ thuật, siêu dữ liệu về các tài liệu và một khóa ể nhận biết tModel.   
Hình 2.6: Các trang biểu diễn một thực thể doanh nghiệp trong UDDI registry 
Hình 2.6 cho thấy các trang vàng, trắng và xanh cho một doanh nghiệp. Một 
businessEntity là cấu trúc mức cao nhất cho tất cả các thông tin liên quan ến một doanh 
nghiệp, ƣợc thể hiện rõ hơn trong hình 2.7. Các thành phần chính của một businessEntity 
UDDI và các mối quan hệ giữa chúng ƣợc thể hiện trong hình 2.8.      lOMoAR cPSD| 58815430    
Hình 2.7: Mô hình thông tin UML cho một thực thể doanh nghiệp trong UDDI registry          lOMoAR cPSD| 58815430  
Hình 2.8: Các cấu trúc dữ liệu lõi và các mối quan hệ giữ chúng cho một thực thể 
doanh nghiệp UDDI 
Trong nội dung này sẽ chỉ quan tâm chủ yếu ến việc ăng ký các dịch vụ Web, vì vậy 
chúng ta sẽ chỉ ánh xạ mô tả WSDL của dịch vụ Web tới các mô tả dịch vụ UDDI. Hình 2.9 
cho thấy sự tƣơng ứng giữa các trƣờng của một mô tả WSDL và các trƣờng của một UDDI  businessService.   
Hình 2.9: So sánh giữa một tài liệu WSDL và một tài liệu ăng ký UDDI 
2.4.3 Xây dựng UDDI  
UDDI xác ịnh hai hàm giao diện lập trình ứng dụng (Application Programming 
Interface API) cho việc truy cập ến một UDDI registry: Inquiry API ể lấy thông tin từ một 
registry và API Publish dùng ể lƣu trữ thông tin ó. Publish API yêu cầu truy nhập ƣợc xác 
thực (việc này khá ặc biệt cho một registry và không theo quy ịnh của UDDI) nhƣng Inquiry 
API thì không. Các API hiện hỗ trợ 28 thông iệp SOAP, sau ây là một số thông iệp quan  trọng:  ▪ Inquiry API 
✓ Tìm một doanh nghiệp hoặc dịch vụ của doanh nghiệp và các ặc tính của nó 
✓ Lấy thông tin chi tiết cần ể tƣơng tác với một doanh nghiệp ▪ Publishing API 
✓ Lƣu lại thông tin về một doanh nghiệp hoặc dịch vụ của doanh nghiệp  ✓ Xóa  ✓ An toàn 
2.4.3.1 Đăng ký và công bố một dịch vụ  
Sau khi ã tìm hiểu các thành phần cơ bản của một UDDI, chúng ta sẽ xem xét một ví 
dụ ăng ký từ công ty WeatherService và cách thức ể dịch vụ ―thông báo nhiệt ộ hiện thời‖ 
của công ty có thể ƣợc tìm thấy và sau ó ƣợc sử dụng bởi khách hàng. Đầu tiên, công ty      lOMoAR cPSD| 58815430  
WeatherService sẽ trao ổi hai thông iệp SOAP với một UDDI registry (có thể registry này 
ƣợc duy trì bởi IBM tại https://uddi.ibm.com/ubr). Thông iệp SOAP ầu tiên sẽ gọi hoạt ộng 
getauthToken ể thiết lập xác thực. Tiếp theo, nhƣ trong hình 2.10, sẽ ăng ký WeatherService 
là một thực thể kinh doanh.  POST / HTTP / 1 . 1  Host: www. socweather . com 
Content−Type: t e x t / xml ; c h a r s e t ="utf-8"  Content−Length: nnnn  SOAPAction: "" 
<?xml version ="1.0" encoding="UTF-8" ?>  
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">  <env:Body>  
<s a v e b u s i n e s s xmlns="urn:uddi-org:api_v3">  
<b u s i n e s s D e t a i l t r u n c a t e d ="false">  
<b u s i n e s s E n t i t y businessKey="...K1...">  
<discoveryURLs>  
<discoveryURL useType="homepage"> h t t p : / /www. 
socweather . com/ WeatherService . html 
</discoveryURL>  
</discoveryURLs>  
<name xml:lang="en">WeatherService Inc . </name>  
<d e s c r i p t i o n xml:lang="en">P r o v i d e r of t e m p e r a t u r e s e r v i c e s 
</ de s c r i p t i o n >  
<c o n t a c t s >  
<c o n t a c t>