Tải bản đầy đủ (.pdf) (17 trang)

Báo Cáo Môn Hệ Phân Tán - Tìm Hiểu Về Web Services

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (202.08 KB, 17 trang )

Đại học Quốc gia Hà Nội
Đại học Công nghệ
-----=-=-=-----

Báo cáo môn Hệ phân tán

Tìm hiểu về Web Services
********

Giảng viên:
Trần Thị Minh Châu

Nhóm sinh viên thực hiện:
• Trịnh Tiến Lương
• Nguyễn Thạc Huy

Hà Nội – 01/2011


MỤC LỤC

1. Giới thiệu .......................................................................................... 1
2. Đặc ñiểm của Web Service .............................................................. 2

2.1. Đặc ñiểm....................................................................................... 2
2.2. Ưu ñiểm và nhược ñiểm ............................................................... 3
3. Mô hình hoạt ñộng của Web Services............................................ 3
4. Kiến trúc giao thức của Web Services ........................................... 4
5. Các thành phần của Web Service................................................... 5
5.1. XML ............................................................................................. 5
5.2. WSDL........................................................................................... 6


5.3. UDDI .......................................................................................... 10
5.4. SOAP.......................................................................................... 12
6. Kết luận........................................................................................... 14
TÀI LIỆU THAM KHẢO .................................................................. 15


Web Services

Tìm hiểu về Web Services
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Trịnh Tiến Lương
Nguyễn Thạc Huy
Với sự phát triển và lớn mạnh của Internet như hiện nay, Web Services
(dịch vụ Web) thực sự ñáng ñược quan tâm bởi chúng mang lại khả năng ñiện toán
hướng-dịch-vụ thông qua môi trường Web. Chúng cho phép ta sử dụng dịch vụ
ñược cung cấp bởi các ứng dụng khác, thông qua các giao thức và ñịnh dạng dữ
liệu tiêu chuẩn. Chính vì vậy, các phần mềm ñược viết bởi những ngôn ngữ lập
trình khác nhau, chạy trên những nền tảng khác nhau có thể sử dụng dịch vụ Web
ñể chuyển ñổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên
trong một máy tính. Sử dụng web services, ta có thể liên kết các hệ thống ñơn lẻ
sẵn có mà không cần quan tâm ñến nền tảng phát triển bên dưới của chúng.
Báo cáo này mô tả sơ lược các công nghệ cần thiết ñể tạo nên một Web
service, cũng như các khái niệm liên quan.

1. Giới thiệu
Theo ñịnh nghĩa của W3C [1] (World Wide Web Consortium), dịch vụ
Web 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 thông qua mạng Internet, với giao diện
chung ñược mô tả bằng XML. Web service có thể xác ñịnh bằng ñịa chỉ URL,

thực hiện các chức năng và ñưa ra các thông tin người dùng yêu cầu. Các chức
năng này có thể ñược yêu cầu bởi các client bằng cách sử dụng giao thức SOAP
[2] thông qua HTTP. Web services ñộc lập về ngôn ngữ và nền tảng bởi vì nó tách
biệt ñặc tả ra khỏi cài ñặt. Web services dựa trên kiến trúc phân tán trong ñó
không có bất kì dịch vụ xử lý trung tâm nào và tất cả dạng truyền thông ñều sử
dụng các giao thức chuẩn.
Một trong những ñặc tính quan trọng của mô hình tính toán dựa trên Web
services là ở ñó cả các client và Web services ñều không cần biết cài ñặt của nhau.
Web services hứa hẹn mang ñến khả năng tạo ra các môi trường phân tán trong ñó
bất kì ứng dụng nào, hoặc bất kì component ứng dụng nào cũng ñều có thể kết hợp
với nhau dễ dàng với tính ñộc lập nền tảng và ñộc lập ngôn ngữ. Điểm khác biệt
chính của Web services với các công nghệ phân tán trước ñây như Win32, J2EE,
… là ở sự chuẩn hoá. Web services sử dụng XML, một ngôn ngữ ñộc lập trong
việc biểu diễn dữ liệu, làm ngôn ngữ trao ñổi thông tin. Bởi vậy khi ñược kết hợp
với nhau, khả năng tích hợp phần mềm, tính liên tác và sử dụng lại của các hệ
thống theo mô hình Web Services thật ñáng kinh ngạc.
1


Web Services

Hiện nay các ứng dụng có tích hợp dịch vụ Web là rất phổ biến, ví dụ như
chọn lọc và phân loại tin tức (thư viện có kết nối ñến các web portal ñể tìm kiếm
các thông tin từ các nhà xuất bản), hay ứng dụng cho các dịch vụ ñại lý du lịch
(cung cấp giá vé, thông tin về ñịa ñiểm du lịch), bán hàng, ñấu giá qua mạng. Đặc
biệt trong thời ñại thương mại ñiện tử và Internet phát triển mạnh mẽ như hiện nay
thì các dịch vụ Web ngày càng ñược quan tâm phát triển và sử dụng rộng rãi hơn.

2. Đặc ñiểm của Web Services
Trước khi ñi vào nghiên cứu chi tiết về mô hình và kiến trúc, chúng ta sẽ

xem xét qua những ñặc ñiểm chính của Web Services. Từ ñó có thể thấy ñược ưu
và nhược ñiểm của nó so với các hệ thống hiện tại.
2.1.
-

Đặc ñiểm

Độc lập về ngôn ngữ, nền tảng:
Dịch vụ web cho phép Client và Server tương tác ñược với nhau ngay cả
trong những môi trường khác nhau. Đó là vì web service sử dụng XML,
một chuẩn mở ñã ñược công nhận và có thể ñược hiểu bởi bất kỳ ngôn ngữ
lập trình nào.

-

Khả năng tự mô tả:
Giao diện của dịch vụ web ñược xuất bản thông qua tài liệu WSDL [3]. Tài
liệu này ñịnh nghĩa cấu trúc thông ñiệp trao ñổi và cấu trúc dữ liệu sử dụng
trong thông ñiệp ñó.

-

Tách biệt giữa mô tả và nội dung:
Đây là một trong những ñặc tính then chốt làm nên thành công cho Web
Services.

-

Web service không ñòi hỏi phía client phải cài ñặt bất cứ một thành phần
mới nào. Còn ở phía server, ñể triển khai Web service thì chỉ cần có Servlet

engine, Apache hoặc .NET Runtime,… Khi ñã ñược triển khai thì client có
thể sử dụng ngay các dịch vụ. Điều này khác với các công nghệ khác như
DCOM hay RMI, khi mà client phải cài ñặt Client stub ñể có thể truy cập
dịch vụ.

-

Dựa trên các chuẩn mở: XML, SOAP, WSDL, UDDI.

-

Truy cập thông qua môi trường Web:
Web service ñược phát hành, xác ñịnh và gọi ñều thông qua môi trường
Web. Trong ñó các mô tả về dịch vụ ñược xuất bản sử dụng WSDL, người
dùng tìm kiếm và xác ñịnh dịch vụ nhờ sự trợ giúp của UDDI và yêu cầu
dịch vụ bằng SOAP. Tất cả các giao thức này ñều dựa trên Web.

2.2.

Ưu ñiểm và nhược ñiểm
2


Web Services

2.2.1. Ưu ñiểm
-

Cung cấp khả năng tương tác rộng lớn hơn: Web service có thể ñược truy
xuất bởi con người thông qua trình duyệt web, bởi các ứng dụng chạy trên

các nền tảng khác nhau và thậm chí là cả các web service khác.

-

Dựa trên các chuẩn mở ñã ñược chấp nhận rộng rãi, giúp cho các lập trình
viên dễ dàng hiểu ñược.

-

Nâng cao khả năng tái sử dụng và ñóng gói lại phần mềm trong giao diện
Web Service.

-

Tạo ra sự kết nối linh hoạt, mềm dẻo giữa các thành phần trong hệ thống,
giảm ñộ phức tạp của hệ thống, dễ dàng cho việc phát triển các ứng dụng
phân tán.

-

Thúc ñẩy sự phát triển của các hệ thống tích hợp, dẫn ñến khả năng phát
triển hệ thống nhanh với giá thành hạ, nhờ có sự tương tác hiệu quả với các
phần mềm, hệ thống khác thông qua dịch vụ Web.

2.2.2. Nhược ñiểm
-

Web Services phụ thuộc vào môi trường web, vì vậy khi một Web Service
không hoạt ñộng sẽ gây ảnh hưởng tới tất cả các ứng dụng phụ thuộc và sử
dụng dịch vụ nó cung cấp.


-

Web Service dựa trên quá nhiều chuẩn mở khiến người dùng, người phát
triển hệ thống khó nắm bắt và cập nhật.

-

Vấn ñề an toàn và bảo mật của Web Service cũng cần ñược quan tâm, ngoài
việc bảo vệ an toàn thông tin trước hacker khi truyền qua môi trường mạng,
còn cần lưu tâm ñến an toàn thông tin giữa các bên cung cấp dịch vụ.

3. Mô hình hoạt ñộng của Web Services
Trong mô hình hoạt ñộng của dịch vụ Web, có ba thực thể cơ bản là: bên
cung cấp dịch vụ (Service provider), bên sử dụng dịch vụ (Service requestor) và
ñơn vị quản lý ñăng ký dịch vụ (Service registry). Service provider có một dịch
vụ, nó sẽ phát hành giao diện và mô tả dịch vụ ñó. Dịch vụ này ñược ñăng ký với
thực thể Service registry bằng cách gửi mô tả dịch vụ tới ñó. Mô tả dịch vụ này
chứa tất cả các thông tin cần thiết ñể một Service requestor có thể tìm thấy và sử
dụng dịch vụ, bao gồm kiểu dữ liệu, giao diện mô tả các hàm chức năng, ñịa chỉ
của dịch vụ trong mạng, thông tin cần thiết ñể thiết lập kết nối. Các bên sử dụng
dịch vụ có thể tìm kiếm dịch vụ mình cần trên Service registry – ñược mô tả sử
dụng UDDI (Universal Description, Discovery and Integration).

3


Web Services

Hình 1: Mô hình Web Service


Một Web Service cũng có thể ñóng vai trò một Service requestor, bằng
cách sử dụng dịch vụ của các Web Service khác ñể thực hiện mục tiêu của mình.

4. Kiến trúc giao thức của Web Services
Dịch vụ Web gồm có 3 chuẩn chính: SOAP (Simple Object Access
Protocol), WSDL (Web Service Description Language) và UDDI (Universal
Description, Discovery, and Integration). Trong ñó UDDI ñược sử dụng ñể ñăng
ký và khám phá dịch vụ Web ñã ñược miêu tả cụ thể trong WSDL. Giao tác UDDI
sử dụng SOAP ñể nói chuyện với UDDI server, sau ñó các ứng dụng SOAP yêu
cầu một dịch vụ Web. Các thông ñiệp SOAP ñược gửi ñi chính xác bởi HTTP và
TCP/IP.
Kiến trúc chồng giao thức của Web Services ñược mô tả như hình dưới
ñây:
-

Tầng vận chuyển (Transport): có nhiệm vụ truyền thông ñiệp giữa các ứng
dụng mạng, bao gồm các giao thức như HTTP, SMTP, FTP, JSM.

-

Tầng giao thức truyền thông dịch vụ (Service Communication Protocol):
với công nghệ tiêu chuẩn là SOAP, cho phép người dùng gọi một dịch vụ
từ xa thông qua một thông ñiệp XML.

4


Web Services


Hình 2: Kiến trúc chồng giao thức của Web Service

-

Tầng mô tả dịch vụ (Service Description): ñược sử dụng ñể miêu tả giao
diện chung cho một dịch vụ Web cụ thể. WSDL là ngôn ngữ ñược sử dụng
ñể phục vụ cho mục ñích này, ñó là một ngôn ngữ mô tả giao tiếp và thực
thi dựa trên XML. Web Service sử dụng ngôn ngữ này ñể truyền tham số và
các kiểu dữ liệu cho dịch vụ thực sự bên trong ñể thực thi.

-

Tầng dịch vụ (Service): chứa cài ñặt chi tiết của dịch vụ.

-

Tầng ñăng ký dịch vụ (Service Registry) với công nghệ tiêu chuẩn là UDDI
ñược sử dụng cho cả bên yêu cầu dịch vụ và bên cung cấp dịch vụ. Một
dịch vụ cần ñược ñăng ký thì bên sử dụng mới có thể tìm thấy và sử dụng.

-

Bên cạnh ñó còn có một số tầng khác như Policy, Security, Transaction,
Management phục vụ các yêu cầu về bảo mật, toàn vẹn thông tin, …

5. Các thành phần của Web Service
5.1.

XML – eXensible Markup Language


XML do W3C ñề ra và ñược phát triển từ SGML. XML là một ngôn ngữ
mô tả văn bản với cấu trúc do người sử dụng ñịnh nghĩa. Người sử dụng hay các
chương trình có thể quy ước ñịnh dạng các tag XML ñể giao tiếp với nhau. Thông
tin cần truyền tải ñược chứa trong các tag XML, ngoài ra không chứa bất cứ thông
tin nào khác về cách sử dụng hay hiển thị những thông tin ấy.
Web service là sự kết hợp của nhiều thành phần khác nhau. Do ñó web
services sử dụng các tính năng và ñặc trưng của các thành phần này ñể giao tiếp.
Vì vậy XML là công cụ cốt lõi ñể giải quyết vấn ñề này.

5


Web Services

5.2.

WSDL – Web Service Description Language

Web Sevice Description Language (WSDL) ñịnh nghĩa một tài liệu XML
mô tả giao diện của các dịch vụ web. Tài liệu WSDL này ñược sử dụng cho bên
yêu cầu dich vụ (service requester). Bên yêu cầu dịch vụ sẽ sử dụng các thông tin
về giao diện ñịnh nghĩa trong lược ñồ WSDL ñể gọi dịch vụ web.
Một tài liệu WSDL mô tả một Web Service như một tập các ñối tượng trừu
tượng gọi là các “ports” và “endpoint”. Một tài liệu WSDL cũng ñịnh nghĩa bên
trong nó các phương thức của web service. Các phương thức tương ứng với
“operation” và dữ liệu trao ñổi tương ứng với “message”. Một tập các phương
thức liên quan ñược nhóm lại vào trong một “portType”. Một ràng buộc kết nối
(binding) chỉ ñịnh một giao thức mạng và ñặc tả ñịnh dạng dữ liệu cho một
portType cụ thể. Kế ñến một port ñược ñịnh nghĩa bằng cách kết hợp một ñịa chỉ
mạng với một binding. Nếu một client có ñược một tài liệu WSDL và tìm thấy

binding và ñịa chỉ cho mỗi port, nó có thể gọi các phương thức của dịch vụ theo
ñúng giao thức và ñịnh dạng dữ liệu ñã ñặc tả.
Phần tử gốc của tất cả các tài liệu WSDL luôn là phần tử <definitions>. Nó
chứa bên trong sáu thành phần chia thành hai nhóm: thông tin trừa tượng và thông
tin cụ thể.

Hình 3: Cấu trúc WSDL

-

Thông tin trừu tượng:
o types
o messages
o portType

6


Web Services

-

Thông tin cụ thể:
o bindings
o services

WSDL ñịnh nghĩa cách mô tả web service theo cú pháp tổng quát XML,
bao gồm các thông tin :
-


Tên dịch vụ.

-

Giao thức và kiểu mã hóa sẽ ñược sử dụng khi gọi các hàm của web
service.

-

Loại thông tin: Những thao tác, những tham số, và những kiểu dữ liệu
gồm có giao diện của web service, cộng với tên cho giao diện này.

Một WSDL hợp lệ gồm có hai phần (xem thêm trong [4]):
-

Phần giao diện mô tả giao diện và giao thức kết nối.

-

Phần thi hành mô tả thông tin ñể truy xuất dịch vụ.

Hai phần trên sẽ ñược lưu trong 2 tập tin XML:
-

Tập tin giao diện dịch vụ (cho phần 1).

-

Tập tin thi hành dịch vụ (cho phần 2).


Hình 4: 2 file XML của WSDL

5.2.1. Tập tin giao diện - Service Interface
WSDL mô tả các loại thông tin chính sau: import, types, message ,
portType, binding.
a. Types:
Định nghĩa các kiểu dữ liệu của thông ñiệp gửi.

7


Web Services

<definitions .... >
<types>
<xsd:schema .... />*
</types>
</definitions>
b. Message:
Mô tả thông ñiệp ñược gửi giữa client và server.
<definitions .... >
<message name="nmtoken"> *
*
</message>
</definitions>
Những ñịnh nghĩa message ñược sử dụng bởi phần tử thi hành dịch vụ.
Nhiều thao tác có thể tham chiếu tới cùng ñịnh nghĩa thông ñiệp.
Thao tác và các thông ñiệp ñược mô hình riêng rẽ ñể hỗ trợ tính linh hoạt
và ñơn giản hóa việc tái sử dụng. Chẳng hạn, hai thao tác với cùng tham số có thể
chia sẻ một ñịnh nghĩa message.

c. Port type:
Mô tả cách gửi và nhận thông ñiệp.
<wsdl:definitions .... >
<wsdl:portType name="nmtoken">
<wsdl:operation name="nmtoken" .... /> *
</wsdl:portType>
</wsdl:definitions>
WSDL ñịnh nghĩa bốn kiểu thao tác mà một cổng có thể hỗ trợ:
-

One-way: Cổng nhận một message, message ñó là message nhập.

-

Request-response : Cổng nhận một message và gửi một message phản
hồi.

-

Solicit-response: Cổng gửi một message và nhận về một message

-

Notification: Cổng gửi một message, message ñó là message xuất.

Mỗi kiểu thao tác có cú pháp biến ñổi tùy theo thứ tự của các message
nhập, xuất và lỗi. Ví dụ :

8



Web Services

<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name="nmtoken" parameterOrder="nmtokens">
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
d. Binding:
Định nghĩa cách các web services kết hợp với nhau, bao gồm:
-

Những giao thức mở rộng cho những giao tác và những message bao
gồm thông tin URN và mã hóa cho SOAP.

-

Mỗi một kết hợp tham chiếu ñến một loại cổng, một kiểu cổng
(portType) có thể ñược sử dụng trong nhiều mối kết hợp. Tất cả các
thao tác ñịnh nghĩa bên trong kiểu cổng phải nằm trong phạm vi mối kết
hợp.

5.2.2. Tập tin thi hành - Service Implementation
WSDL mô tả 2 loại thông tin chính bao gồm: service và port.
a. Service: Nó sẽ thực hiện những gì ñã ñược ñịnh nghĩa trong tập tin giao
diện và cách gọi dịch vụ web theo thủ tục và phương thức nào.

<wsdl:definitions .... >
<wsdl:service name="nmtoken"> *
<wsdl:port .... />*
</wsdl:service>
</wsdl:definitions>
b. Port: là một cổng ñầu cuối, nó ñịnh nghĩa là một tập hợp của ñiểm kết nối
và một ñịa chỉ mạng.
<wsdl:definitions .... >
<wsdl:service .... > *
<wsdl:port name="nmtoken" binding="qname"> *
</wsdl:port>

9


Web Services

</wsdl:service>
</wsdl:definitions>
Ở ñây chúng ta thấy rằng thuộc tính kết hợp tên là qname. Nó tham chiếu
tới một binding. Một cổng chứa ñựng chính xác một ñịa chỉ mạng bất kỳ cổng nào
trong phần thi hành phải tương ứng chính xác với một tham chiếu trong phần giao
diện.
5.3.

UDDI – Universal Description, Discovery and Integration

Về cơ bản Universal Description, Discovery, and Intergration (UDDI) là một
tập các quy tắc ñăng ký và tìm kiếm thông tin các Web Service. Nó ñóng vai trò như
service broker cho phép người sử dụng dịch vụ tìm ñúng nhà cung cấp dịch vụ cần

tìm.
UDDI hỗ trợ chức năng:
-

Thực hiện tìm kiếm, ñịnh vị những doanh nghiệp cung cấp dịch vụ hay
sản phẩm.
Thông tin về một nhà cung cấp dịch vụ bao gồm ñịa chỉ, thông tin liên
lạc và các ñịnh danh.
Thông tin kỹ thuật về Web service mà doanh nghiệp cung cấp (ví dụ
như cách sử dụng dịch vụ ñược cung cấp).

Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận
thông tin về cách sử dụng dịch vụ và biết ñược ñối tượng cung cấp dịch vụ. UDDI
ñịnh nghĩa một số thành phần cho biết trước các thông tin này ñể cho phép các
client truy tìm và nhận lại những thông tin yêu cầu sử dụng web services.
Muốn sử dụng ñến các dịch vụ của UDDI, bản thân UDDI cung cấp một tập
hàm API dưới dạng SOAP Web Service. Tập API ñược chia làm hai phần: Inquiry
API dùng truy vấn và Publisher API dùng ñăng ký. Phần API dùng ñể truy vấn bao
gồm hai phần con: một phần dùng ñể tạo ra các chương trình cho phép tìm kiếm và
duyệt thông tin trên một UDDI registry; phần còn lại dùng ñể xử lý lỗi gọi dịch vụ.
Thành phần xử lý chính là bộ ñăng ký UDDI, ñó là một file XML dùng ñể
mô tả một thực thể kinh doanh (business entity) kèm theo các Web service ñi
cùng. Sử dụng các dịch vụ của UDDI, các doanh nghiệp ñăng ký thông tin về
những Web service mà họ ñịnh cung cấp. Thông tin này ñuợc thêm vào UDDI
registry thông qua Web site hoặc sử dụng các công cụ lập trình sử dụng các dịch
vụ theo ñúng ñặc tả UDDI API cho lập trình viên.
Lược ñồ XML UDDI ñịnh nghĩa bốn loại thông tin cơ bản ñể kết nối ñến
Web service.

10



Web Services

Hình 5: Mô hình UDDI

Như hình trên, cấu trúc thông tin bao gồm :
-

Business entity: Một business entity chứa thông tin về công bao gồm tên
công ty, một ñoạn mô tả ngắn gọn và một vài thông tin liên lạc cơ bản
(ñịa chỉ, số ñiện thoại, email, …). Mỗi doanh nghiệp ñược cấp một ñịnh
danh duy nhất.

-

Business service: Liên kết với mỗi business entity là một danh sách các
business service cung cấp bởi business entity ñó. Mỗi thành phần chứa
thông tin mô tả về dịch vụ, về thông tin phân loại của dịch vụ và danh
sách các binding template liên quan ñến thông tin kỹ thuật của dịch vụ.
Mỗi business service cần có ít nhất một binding template.

-

Binding template: Gắn với mỗi business service là một danh sách các
binding template cung cấp thông tin về ñịa ñiểm có thể tìm thấy Web
Service và làm cách nào ñể sử dụng nó. Một cấu trúc binding template
mô tả thông tin interface của Web Service và các ñịa chỉ URL. Mỗi
bindingTemplate ñược ñịnh danh duy nhất thông qua số phát sinh tự
ñộng UUID lưu trong bindingKey.


-

tModels: Mục ñích của tModels là dùng ñể liên kết ñến metadata bên
ngoài UDDI. Thành phần quan trọng nhất của tModels là một URL trỏ
ñến một tài liệu mô tả thông tin metadata. Tài liệu này có thể là tài liệu
bất kì HTML, Word, ... tùy ý mô tả một ñặc tả kỹ thuật nào ñó, ví dụ
như giao thức mạng, dạng thức trao ñổi hoặc luật tuần tự mà thông
11


Web Services

thường nhất là file mô tả thông tin service WSDL. Có hai thuộc tính cơ
bản bên trong một tModel : tModelKey ñóng vai trò ñịnh danh duy nhất
giữa các tModel với nhau và name dùng cung cấp một tên với ñầy ñủ
ngữ nghĩa cho tModel.
Tóm lại SOAP, WSDL và UDDI có thể kết hợp với nhau như sau :
-

5.4.

Nhà cung cấp Web Service mô tả Web Service trong một tài liệu WSDL
và ñăng ký nó lên một UDDI bằng cách sử dụng Publisher API.
Một người sử dụng dịch vụ UDDI Inquiry API ñể tìm thông tin về nhà
cung cấp dịch vụ thích hợp. Nếu có, nó sẽ tìm kiếm tiếp tModel rồi từ
ñó lấy ra tài liệu mô tả WSDL.
Một yêu cầu dạng SOAP ñược tạo ra dựa trên tài liệu mô tả WSDL.
Yêu cầu SOAP trên sẽ ñược gửi ñến nhà cung cấp dịch vụ và ñược xử lý
rồi kết quả ñược trả lại cho người dùng.

SOAP – Simple Object Access Protocol

SOAP là một giao thức giao tiếp có cấu trúc như XML và mã hóa thành
ñịnh dạng chung cho các ứng dụng trao ñổi với nhau. SOAP ñược xem như là cấu
trúc xương sống của các ứng dụng phân tán xây dựng từ nhiều ngôn ngữ, hệ ñiều
hành khác nhau.
SOAP là một ñặc tả việc sử dụng các tài liệu XML theo dạng các thông
ñiệp. Bản thân SOAP không ñịnh ra các ngữ nghĩa ứng dụng hoặc cách cài ñặt chi
tiết. SOAP cung cấp một cơ chế ñơn giản và gọn nhẹ cho việc trao ñổi thông tin có
cấu trúc và ñịnh dạng giữa các thành phần trong một môi trường phân tán sử dụng
XML. SOAP ñược thiết kế dựa trên những chuẩn nhằm giảm chi phí tích hợp các
hệ thống phân tán xây dựng trên nhiều nền tảng khác nhau ở mức càng thấp càng
tốt. Đặc tả về SOAP ñịnh nghĩa một mô hình trao ñổi dữ liệu dựa trên 3 khái niệm
cơ bản: các thông ñiệp là các tài liệu XML, chúng ñược truyền ñi từ bên gửi ñến
bên nhận, bên nhận có thể chuyển tiếp dữ liệu ñến nơi khác.
Khái niệm cơ bản nhất của mô hình SOAP là việc sử dụng các tài liệu XML
như những thông ñiệp trao ñổi. Điều này có nhiều ưu ñiểm hơn các giao thức
truyền dữ liệu khác. Các thông ñiệp XML có thể ñược tổng hợp và ñọc với một bộ
soạn thảo văn bản ñơn giản, ta có thể làm việc với XML trên hầu hết mọi nền tảng.
5.4.1. Đặc trưng SOAP
SOAP có những ñặc trưng sau :
-

SOAP ñược thiết kế ñơn giản và dễ mở rộng.

-

Tất cả các message SOAP ñều ñược mã hóa sử dụng XML.

-


SOAP sử dụng giao thức truyền dữ liệu riêng.

12


Web Services

-

Không có garbage collection phân tán, và cũng không có cơ chế tham
chiếu. Vì thế SOAP client không giữ bất kỳ một tham chiếu ñầy ñủ
nào về các ñối tượng ở xa.

-

SOAP không bị ràng buộc bởi bất kỳ ngôn ngữ lập trình nào hoặc công
nghệ nào.

Vì những ñặc trưng này, nó không quan tâm ñến công nghệ gì ñược sử
dụng ñể thực hiện miễn là người dùng sử dụng các message theo ñịnh dạng XML.
Tương tự, service có thể ñược thực hiện trong bất kỳ ngôn ngữ nào, miễn là nó có
thể xử lý ñược những message theo ñịnh dạng XML.
Khi trao ñổi các thông ñiệp SOAP, có hai thành phần liên quan: Bên gửi và
bên nhận. Thông ñiệp sẽ ñược chuyển từ bên gửi sang bên nhận. Đây là ý niệm
ñơn giản nhất trong trao ñổi thông ñiệp SOAP. Trong nhiều trường hợp, kiểu trao
ñổi này không cung cấp ñủ chức năng. Nhưng ñây là mô hình cơ bản, dựa trên ñó
sẽ phát triển các mô hình trao ñổi phức tạp hơn.

Hình 6: Một SOAP Operation ñơn giản


5.4.2. Cấu trúc một message theo dạng SOAP
Một cấu trúc SOAP ñược ñịnh nghĩa gồm các phần: <Envelope>, <Header>
và <Body>.

Hình 7: Cấu trúc thông ñiệp SOAP

Envelop là thành phần gốc của một thông ñiệp SOAP, nó chứa các thành
phần Header và Body. Thành phần Header là một cơ chế mở cho phép thêm các
tính năng vào bên trong một thông ñiệp SOAP. Mỗi thành phần con của Header
gọi là một Header Entry. Các Header Entry dùng ñể diễn giải, quy ñịnh một số

13


Web Services

ngữ nghĩa của thông ñiệp SOAP. Các ứng dụng có thể xử lý và ñịnh tuyến các
thông ñiệp dựa trên thông tin header và thông tin bên trong thông ñiệp ñó. Đây là
ưu ñiểm mà các mô hình kiến trúc như DCOM, CORBA và RMI không có ñược,
vì các protocol header của chúng phải ñược chỉ ñịnh chi tiết cho mỗi ứng dụng.
5.4.3. Các kiểu truyền thông
SOAP hỗ trợ hai kiểu truyền thông khác nhau:
-

Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng.
Kiểu này ñược khai thác bởi nhiều web service và có nhiều trợ giúp.

-


Document (tương ñương với kiểu hướng thông ñiệp).

5.4.4. Mô hình dữ liệu
Mục ñích của mô hình dữ liệu SOAP là cung cấp sự trừu tượng hóa ñộc lập
ngôn ngữ cho các kiểu dữ liệu, các kiểu này bao gồm:
-

Những kiểu dữ liệu nguyên thủy ñơn giản như int, string, date, …

-

Những kiểu phức tạp: như struct và array.

6. Kết luận
Tóm lại, báo cáo ñã ñưa ra một cái nhìn tổng quan về dịch vụ Web với mô
tả về cách thức hoạt ñộng cũng như kiến trúc hệ thống và các giao thức ñược sử
dụng. Qua ñó ta có thể dễ dàng thấy ñược rằng khi cần kết hợp nhiều hệ thống
khác nhau (về ngôn ngữ, nền tảng), Web Service tỏ ra là một ứng cử viên sáng giá
nhờ khả năng sử dụng lại, tính tiện lợi và hiệu quả trong việc giao tiếp và truyền
nhận dữ liệu.
Bản chất của nền tảng công nghệ này chính là kiến trúc hướng dịch vụ và
sự phát triển của Web Service hiển nhiên là có tương lai rất khả quan khi mà
ngành công nghiệp dịch vụ ñang phát triển rất mạnh như hiện nay.

14


Web Services

TÀI LIỆU THAM KHẢO

[1] W3Cschools Course of Web Services:
/>[2] Đọc thêm về SOAP trên W3C:
/>[3] Đọc thêm về WSDL trên W3C:
/>[4] Hartwig Gunzer, “Introduction to Web Services”, March 2002.

15



×