Tải bản đầy đủ (.doc) (69 trang)

Quản lý đăng ký thuế sử dụng công nghệ webservices

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 (1.9 MB, 69 trang )

Thực hiện: Trần Thị Hằng

Đề tài: Web Service

LỜI NÓI ĐẦU
Web service đang là một vấn đề được chú ý và phát triển mạnh mẽ trong thời đại bùng nổ
công nghệ thông tin như hiện nay. Nhu cầu sử dụng các dịch vụ web ngày càng tăng, được hô
trợ bởi môi trường truyền Internet với băng thông đường truyền ngày một được mở rộng. Là
một hướng giải quyết khá hoàn hảo cho vấn đề chi phí phần mềm, giảm độ phức tạp và tính sử
dụng lại của các hệ thống phần mềm lớn, web service đang trở thành một phương tiện hữu
hiệu để giải quyết những vấn đề trên.
Sau một thời gian nghiên cứu nô lực của bản thân, thấy được các ưu điểm lớn mà web
service đem lại, cùng với sự hướng dẫn của thạc sĩ Phạm Thị Quỳnh em đã hoàn thành khóa
luận với đề tài “Quản lý đăng ký thuế sử dụng web service”.
Nội dung khóa luận trình bày với những nộ dung chính sau:
• Kiến thức tổng quan về web service: tìm hiểu khái niệm Web service, phân tích
các thành phần.
• Các bước để xây dựng, thực thi một Web service.
• Sử dụng web service.
• An toàn web service.
• Xây dựng một ứng dụng sử dụng công nghệ web service.
Để hoàn thành khóa luận, trước tiên em xin bày tỏ lòng biết ơn sâu sắc tới Thạc sĩ Phạm
Thị Quỳnh, người đã tận tình chỉ bảo, hướng dẫn trực tiếp em trong suốt thời gian thực hiện đề
tài, Thầy Lương Viết Nguyên- giảng viên trường ĐH Công Nghệ.
Em xin chân thành cảm ơn các thầy giáo, cô giáo khoa công nghệ thông tin, trường ĐH
Sư Phạm Hà Nội đã tận tình chỉ bảo em, cho em những kiến thức quý báu trong những năm
học tại trường, để em có thể hoàn thành khóa học.
Hà Nội, tháng 5/2009
Trần Thị Hằng

Trang 1




Thực hiện: Trần Thị Hằng

Đề tài: Web Service

MỤC LỤC
Bảng 1 : Các kiểu vào/ra trong WSDL…..………………………….……………trang 16.........................................................4
Chương 1: TỔNG QUAN VỀ WEB SERVICE................................................................................................................5
1.4. Tại sao cần web service...............................................................................................................................8
1.5. Các công cụ để tạo web service..................................................................................................................9
a.Kiến trúc bên ngoài.......................................................................................................................................10
..........................................................................................................................................................................10
Bảng 1 : Các kiểu vào/ra trong WSDL.....................................................................................................................15
Chương 2: Xây Dựng Web Service..........................................................................................................................30
Chương 4. An toàn Web Service.............................................................................................................................39
Chương 5: Xây Dựng Ứng dụng với Web Service...................................................................................................43
Chương 5: KẾT LUẬN...............................................................................................................................................68

Trang 2


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

BẢNG CHÚ GIẢI CÁC THUẬT NGỮ VIẾT TẮT
Ký hiệu

Ý nghĩa


Vị trí trong trang

CORBA

Common Object Request Broker Architecture

Trang 6

DCOM

Distributed Component Object Model

Trang 6

DTD

Document Type Definition

Trang 25

FTP

File Transfer Protocol

Trang 6

HTTP

HyperText Transfer Protocol


Trang 6

JMS

Java Message Service

Trang 12

SGML

Standard Generalised Markup Language

Trang 25

SMTP

Simple Mail Transfer Protocol

Trang 12

SOAP

Simple Object Access Protocol

Trang 22,…

UDDI

Universal Description, Discovery and Integration


Trang 24,….

XML

Extensible Markup Language

Trang 25,…

XML-RPC

XML Remote Procedure Calls

Trang 25,….

WSDL

Web Service Description Language

Trang 13,…

W3C

World Wide Web Consortium

Trang 16

CSDL

Cơ sở dữ liệu


Trang 46,…

ĐTNT

Đối tượng nộp thuế

Trang 46,…

MST

Mã số thuế

Trang 46,…

Trang 3


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

DANH SÁCH CÁC BẢNG BIỂU
Bảng 1 : Các kiểu vào/ra trong WSDL…..………………………….……………trang 16
Bảng 2: thực thể người dùng…………………………………………………………trang 53
Bảng 3: thực thể Thông tin đăng ký………………………………………………….trang 53
Bảng 4: thực thể ĐTNT………………………………………………………………trang 54
Bảng 5: thực thể ĐTNT đã cấp MST…………………………………………………trang 54
DANH SÁCH CÁC HÌNH VẼ
Hình 1.1: Kiến trúc tổng quan của web service………………………………………….trang 7

Hình1.2 : Mô hình một web service đơn giản…………………………………………...trang 7
Hình1.3: Tiến trình làm việc của web service………………………………………....trang 11
Hình1.4: Kiến trúc bên ngoài của web service…………………………………………trang 12
Hình1.5: Kiến trúc bên trong của web service……………………………………….trang 12
Hình 1.6: Cấu trúc WSDL……………………………………………………………...trang 14
Hình1.7: Cấu trúc message SOAP……………………………………………………..trang 23
Hình 1.8: Các thành phần cần thiết trong một web service và mối quan hệ giữa các thành
phần……………………………….…………………………………..………………trang 31
Hình 4.1: Mô hình an toàn cho Web service…………………………………………..trang 43
Hình 5.1: Biểu đồ phân cấp chức năng………………………………………………..trang 47
Hình 5.2: Biểu đồ ngữ cảnh…………………………………………………………...trang 47
Hình 5.3:Biểu đồ mức đỉnh……………………………………………………………trang 48
Hình 5.4:Biểu đồ mức dưới đỉnh chức năng 1………………………………………...trang 48
Hình 5.5:Biểu đồ mức dưới đỉnh chức năng 2………………………………………...trang 49
Hình 5.6:Biểu đồ mức dưới đỉnh chức năng 3………………………………………...trang 49
Hình 5.7:Biểu đồ mức dưới đỉnh chức năng 4………………………………………...trang 49
Hình 5.8: Biểu đồ liên kết thực thể quan hệ ERD……………………………………..trang 50

Trang 4


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

Chương 1: TỔNG QUAN VỀ WEB SERVICE
1. Giới thiệu tổng quan về Web Service.
1.1. Đặt vấn đề
Cuối thập niên 1990, Microsoft nhận ra được sự yếu kém của COM, COM+. Một trong
những khía cạnh của đối tượng từ xa mà Microsoft cần là độc lập với nền để có thể thành

công, và vì các sản phẩm của MS chỉ chạy trên hệ điều hành Windows, họ cần một giải pháp
sáng tạo. Họ đã tạo ra chuẩn XML gọi là SOAP (Simple Object Access Protocol – Giao thức
truy cập đối tượng đơn giản) là sự kết hợp giữa tài liệu XML và một giao thức chuẩn có thể
làm việc qua Internet. Giao thức SOAP được dùng để truyền tải dữ liệu bao gồm SMTP
(Simple Mail Transfer Protocol), FTP (File Transfer Protocol) và HTTP (Hypertext Transfer
Protocol). Các nhà phát triển thường xem những giao thức này như là chồng các giao thức
của Web Services. Web services ra đời.
Microsoft, IBM và Sun Microsystems đang phát triển mạnh Web Services như là một công
nghệ tiếp theo cho phép người phát triển có thể tạo các đối tượng từ xa dễ dàng. Các công
nghệ trước đây như COM+ và CORBA rất khó cài đặt mà chi phí bảo trì lại cao. Hơn thế nữa,
đối với trường hợp của CORBA thì nó quá đắt để mua bản quyền hoạt động. Trong khi web
service có thể tạo được đối tượng từ xa dễ dàng, đó là các hệ thống yêu cầu và phản hồi đơn
giản mà các chức năng tương tự như một trang web phản hồi một yêu cầu từ một trình duyệt
[10].
Khi bạn xây dựng [5] và phát triển một ứng dụng phân tán với số lượng người dùng lên
đến hàng trăm, hàng nghìn người ở nhiều địa điểm khác nhau, khó khăn đầu tiên mà bạn gặp
phải là sự giao tiếp giữa Client và Server bị tường lửa (firewalls) và Proxy Server ngăn chặn
lại.
Như các bạn biết DCOM (Distribited Component Object Model) làm việc thông qua việc
gởi các thông tin dưới dạng nhị phân (binary) và chủ yếu hoạt động dựa trên giao thức
TCP/IP. Thật là không dễ dàng để sử dụng DCOM trong trường hợp này.

Nếu không cấu hình lại Firewall, DCOM không có khả năng vượt qua Firewall

Trang 5


Thực hiện: Trần Thị Hằng

Đề tài: Web Service


Web Services có thể giúp bạn giải quyết vấn đề khó khăn nêu trên. Chúng ta có thể hiểu
rằng Web Services (tạm dịch là dịch vụ web) là tập hợp các phương thức của một đối tượng
mà các Client có thể gọi thực hiện.

Hình 1.1: Kiến trúc tổng quan của web service
1.2. Định nghĩa web service
Có rất nhiều định nghĩa về web service như sau:

Là một phần mềm ứng dụng được truy xuất thông qua Web bởi một ứng dụng khác.

Web Service là một dạng dịch vụ phục vụ những nhu cầu của người sử dụng thông
qua giao diện là trình duyệt. Đặc điểm của Web service cho phép người sử dụng tái sử dụng
phương thức, chức năng do một Website cung cấp mà không cần quan tâm tới cấu trúc, kết
cấu của Website đó.
Tóm lại: Web Service có thể được mô tả như hàm được triển khai thông qua Web và có thể
được gọi từ các ứng dụng thông thường hoặc một web service khác [6].
Web Service tạm dịch là dịch vụ trên 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ôi trường
mạng Internet, giao diện chung và sự gắn kết của nó dựa trên chuẩn mở XML, phù hợp với
sự thiết lập của những chuẩn tương tác mở. Những chuẩn này làm cho sự giao tác toàn cục
của máy tính không phụ thuộc vào nền tảng phần cứng, phần mềm, hệ điều hành cũng như
những kiến trúc mạng hay ngôn ngữ lập trình [2,3]

Hình1.2 : Mô hình một web service đơn giản.
Trang 6


Thực hiện: Trần Thị Hằng


Đề tài: Web Service

Một web service thường có hai thuộc tính: [11]
• Tự mô tả: Nếu công bố một web service mới lên mạng, nên công bố cả giao diện
công khai cho dịch vụ. Ít nhất thì web service đó nên có một tài liệu mà những người phát
triển khác có thể đọc được, nhờ đó có thể dễ dàng tích hợp web service đó với các web
service khác. Nếu vừa tạo một SOAP service, thì cũng nên có một giao diện công khai được
viết theo cú pháp XML chung. Cú pháp XML có thể được dùng để nhận tất cả các phương
thức công khai, đối số và giá trị trả về của web service.
• Có thể khám phá: Nếu tạo một web service, nên có một cơ chế tương đối đơn giản
nào đó để có thể công bố nó lên mạng. Cũng như vậy, nên có một vài cơ chế đơn giản để
những người khác có thể tìm kiếm và định vị giao diện công khai của nó.
Tóm lại một web service hoàn chỉnh là một dịch vụ mà:
• Sẵn có trên Internet hoặc Intranet
• Sử dụng hệ thống truyền tin theo chuẩn XML
• Độc lập nền, không phụ thuộc vào phần cứng, phần mềm hay ngôn ngữ lập trình.
• Có thể tự mô tả thông qua cú pháp XML chung.
• Có thể khám phá qua một cơ chế tìm kiếm đơn giản.
1.3. Đặc điểm của web service
• Truy cập thông qua giao thức Web [1][6][13][14].
• Web Service được xây dựng dựa trên nền tảng những công nghệ đã được chấp nhận
như XML, SOAP, WSDL, UDDI. Nó cho phép client và server trong những môi trường khác
nhau, tương tác được với nhau. Ví dụ khi ta đặt web server cho ứng dụng trên một máy chủ
chạy hệ điều hành Linux thì người dùng sử dụng máy client chạy hệ điều hành Windows vẫn
có thể chạy ứng dụng đó mà không cần thêm yêu cầu đặc biệt nào để tương thích giữa hai hệ
điều hành trên hai máy. Có thể khẳng định đây là ưu điểm vượt trội của Web Service so với
các công nghệ khác.
• Web Service được xây dựng dựa trên giao thức SOAP(Simple Object Access Protocol)
– SOAP cho phép truyền các thông điệp qua giao thức HTTP.
– Sử dụng XML để mô tả dữ liệu.

• Hầu hết các web service sử dụng sử dụng giao thức HTTP để trao đổi các thông điệp
(thông điệp yêu cầu dịch vụ và thông điệp đáp ứng dịch vụ). Điều này cho phép ta dễ dàng
xây dựng và phát triển các ứng dụng trên phạm vi toàn cầu sử dụng mạng Internet làm môi
trường truyền thông.
• Web service rất linh động, vì với UDDI và WSDL thì việc mô tả và phát triển web
service có thể được tự động hoá. Hơn nữa, web service có dạng mô đun, một web service
Trang 7


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

thường bao gồm nhiều mô đun khác nhau, môi mô đun thực hiện một chức năng nhỏ trong
dịch vụ tổng thể mà web service đó cung cấp.
• Web service có thể công bố (publish) và gọi thực hiện qua mạng. Một web service có
thể hoạt động nhờ vào một yêu cầu từ bất kỳ máy tính nào trên thế giới mà việc giao tác sử
dụng chuẩn định dạng XML.
• Một web service có một service interface, Service interface này giúp cho web service
gọi đến các chương trình ứng dụng khác, hoặc các web service khác. Service interface này là
một tài liệu XML từ XML có thể hiện như công nghệ thay đổi dữ liệu cục bộ.
Ưu điểm của web service:
• Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác
nhau chạy trên những nền tảng khác nhau.
• Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản
(text), giúp 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.
• Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến
trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web.
• Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong 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 hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động,
phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác.
Nhược điểm của Web Service:
• Mọi dữ liệu được trao đổi đều sử dụng định dạng XML, làm cho nó trở nên cồng kềnh
và kém hiệu quả hơn so với các công nghệ sử dụng mã hoá nhị phân.
• Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của dịch vụ Web, giao diện
không thay đổi, có thể lôi nếu một máy khách không được nâng cấp, thiếu các giao thức cho
việc vận hành.
• Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.
• Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.
Tuy nhiên với sự phát triển ngày càng mạnh mẽ của các công nghệ truyền thông,
tốc độ xử lý của các phần cứng, phần mềm, đường truyền mạng … thì đây không thực sự là
một vấn đề lớn đối với Web Service.
1.4. Tại sao cần web service.
Phần mềm ngày nay đang trở nên phức tạp và dường như đang vượt khỏi khả năng kiểm
soát của các mô hình phát triển phần mềm hiện có. Đã có rất nhiều phần mềm được xây dựng
với kiến trúc phức tạp và chi phí bảo trì cao, đặc biệt là các hệ thống phần mềm cao cấp.
Nhiều kiến trúc phần mềm đã được triển khai để giải quyết vấn đề này, nhưng độ phức tạp
của phần mềm ngày càng tăng và vượt khỏi khả năng kiểm soát của các kiến trúc hệ thống
truyền thống. Nguyên nhân là do sự phát triển của nhiều công nghệ mới đã tạo nên sự không
đồng nhất, trong khi nhu cầu trao đổi, chia sẻ, tương tác giữa các hệ thống không thể đáp ứng
trong một môi trường như vậy. Vấn đề tích hợp hệ thống được đặt ra. [4]
Trang 8


Thực hiện: Trần Thị Hằng

Đề tài: Web Service


Thêm nữa, vấn đề lập trình dư thừa và tính không thể tái sử dụng cũng dẫn đến tình trạng
khó khăn khi tích hợp các hệ thống cũ và mới. Ví dụ, một ngân hàng có nhiều chi nhánh khác
nhau, môi chi nhánh có một hệ thống tách biệt, vấn đề muốn kết nối các hệ thống khác của
ngân hàng để có thể phục vụ khách hàng hiệu quả hơn. Giả sử các hệ thống riêng biệt đó đều
rất tốt, nhưng chúng được xây dựng trong những khoảng thời gian khác nhau và trên các nền
độc lập. Bây giờ, muốn kết nối các chi nhánh, nếu chọn giải pháp xây dựng lại hệ thống mới
thì có thể sẽ gặp phải vấn đề sai lầm như: tính dư thừa và không đồng nhất như trước, xong
nếu chọn giải pháp sử dụng lại các chức năng sẵn có thì phải đối mặt với các vấn đề phải thiết
lập mối liên kết toàn bộ các hệ thống trước. Do đó nảy sinh ra phải sử dụng công nghệ mới
đáp ứng được các vấn đề đó, công nghệ web services có thể đáp ứng được điều đó.
Chúng ta sử dụng web service khi cần có sự trao đổi thông tin và dịch vụ giữa các hệ
thống khác nhau trên môi trường mạng diện rộng, môi trường internet. Web service là một
giải pháp tối ưu vì:
• Dựa trên giao thức HTTP, là giao thức tối ưu nhất trong môi trường internet hiện nay.
Với giao thức này kết nối giữa client và server không cần thiết phải liên tục mà chỉ cần thiết
lập khi có nhu cầu(Request-Respone) nên phù hợp với mạng không ổn định, ngoài ra web
service dựa trên nền HTTP nên được thừa hưởng một cơ chế bảo mật và xác thực.
• Web service dựa trên nền tảng công nghệ XML, là công nghệ giúp mô tả mọi loại dữ
liệu một cách mềm dẻo, có khả năng mở rộng cao, nên web service có thể xây dựng mọi bài
toán trao đổi dữ liệu và dịch vụ.
Tóm lại: sử dụng web services có thể:[6]
• Cho phép triển khai ứng dụng trong thời gian ngắn.
• Tái sử dụng cao.
• Vì web service đáng tin cậy trên HTTP, Web Services có thể dùng các mạng có sẵn (the
Web) như một môi trường cho việc truyền thông.
• Vì các Web Service dùng XML, một định dạng dữ liệu tự mô tả, mang tính phổ biến,
và độc lập nền.
1.5. Các công cụ để tạo web service
Công cụ [16] chủ chốt nhất để tạo nên sự thực thi một ứng dụng là MS.NET Framework
SDK, mà hiện nay dùng bản beta.

Nhưng IDE (Integration Development Environment – Môi trường tích hợp phát triển)
được ưa thích hơn cả để tạo web service là Visual Studio .NET. Tuy nhiên ta có thể dễ dàng
sử dụng một số trình soạn thảo văn bản như (WordPad, Notepad, Visual Studio 6.0) để tạo
File web service. Với điều kiện là phải có hiểu biết cơ bản về .NET platform, C#, lập trình
hướng đối tượng
2. Web Service làm việc như thế nào.
2.1. Vai trò của web service
Web service[13] ra đời đã mở ra một hướng mới cho việc phát triển các ứng dụng trên
Internet. Công nghệ web services ra đời là một cuộc cách mạng hóa cách thức hoạt động của
các dịch vụ. Web services kết hợp sử dụng nhiều công nghệ khác nhau cho phép hai ứng dụng
Trang 9


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

cùng ngôn ngữ, độc lập hệ điều hành trao đổi được với nhau thông qua môi trường mạng
Internet. Tuy nhiên những công nghệ sử dụng ở đây không nhất thiết phải là những công nghệ
mới. Đây là điểm khác biệt của web services so với các công nghệ khác, đó chính là khả năng
kết hợp các công nghệ đã có như là XML,SOAP,WSDL,UDDI để tạo ra các service, đặc điểm
này làm nổi bật vai trò của web services.
2.2. Quá trình làm việc web service
Web service [17] cho phép một đối tượng nằm trên server có thể trưng ra phần logic
chương trình cho các khách hàng trên Internet. Các khách hàng sẽ triệu gọi những hàm hành
sự được trưng ra trên web service nhờ sử dụng những nghi thức chuẩn của Internet.
Một tiến trình của web service như sau:
Hình1.3: Tiến trình làm việc của web service
Ở vị trí 1, một web service consumer (nghĩa là một chương trình sử dụng web service đặc
biệt nào đó, thỉnh thoảng được gọi là consuming program, chương trình tiêu thụ) phát ra một

triệu gọi (vị trí 2). Phía tiêu thụ tưởng rằng mình trực tiếp nói chuyện với web service thông
qua Internet. Nhưng thật ra đây chỉ là một ảo tưởng. Thật ra triệu gọi một lớp proxy (vị trí 3)
nằm cục bộ ngay với consumer. Proxy sẽ thụ lý tất cả các cấu trúc phức tạp của việc chuyển
đi yêu cầu lên Internet về cho máy server, cũng như tiếp nhận lại kết quả yêu cầu và trình bày
kết quả cho phía tiêu thụ. Tất cả việc này có thể thực hiện được là nhờ việc proxy trước đó đã
đăng ký với ứng dụng tiêu thụ (vị trí 4)
3.Kiến trúc, thành phần Web Service
3.1. Kiến trúc của Web service
Có hai cách khác nhau để tiếp cận, khảo sát kiến trúc một web service [3] [11][12]
• Xem xét theo vai trò của từng tác nhân trong hệ thống (kiến trúc tổng quan bên ngoài).
• Xem xét các giao thức, các tầng dịch vụ cấu thành nên một web service (kiến trúc bên
trong).

a. Kiến trúc bên ngoài

Hình1.4: Kiến trúc bên ngoài của web service
Kiến trúc này được gọi là kiến trúc hướng dịch vụ (Service-Oriented Architecture hay
SOA). Nó thể hiện quan hệ lỏng lẻo giữa ba thành phần là Service Provider, Service
Requester và Service Broker.
• Service Requester là một ứng dụng, một dịch vụ hay một loại phần mềm sử dụng các
dịch vụ web.
Trang 10


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

• Service Provider là phần mềm nhận và xử lý các yêu cầu từ Service Requester.
• Service Broker đóng vai trò như là một thư mục dịch vụ nơi mà các chương trình, người

dùng có thể tìm thấy thông tin về các dịch vụ đã được công bố.
Ba hoạt động chính trong kiến trúc này là: công bố, tìm kiếm và kết nối ràng buộc. Sau
khi thực thi một dịch vụ, Service Provider công bố dịch vụ này với Service Broker. Người
dùng và các chương trình sẽ liện hệ với Service Broker để có được về thông tin về các dịch vụ
sẵn có. Nhờ có các thông tin trên người dùng hay các chương trình sẽ kết nối tới và có thể sử
dụng các dịch vụ.
b. Kiến trúc bên trong
Kiến trúc bên trong[13] của web service bao gồm các tầng như hình vẽ dưới đây:

Hình1.5: Kiến trúc bên trong của web service
Trong đó bao gồm các tầng :
• Tầng vận chuyển với những công nghệ chuẩn là HTTP, SMTP và JMS
• Tầng giao thức tương tác dịch vụ ( Service Communication Protocol) với công nghệ
chuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch
vụ, SOAP cho phép người dùng triệu gọi một service từ xa thông qua một message XML.
• Tầng mô tả dịch vụ (Service Description) với công nghệ chuẩn là WSDL và XML.
WSDL 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ữ WSDL để truyền các tham số và các loại dữ liệu cho các thao tác, các chức năng mà Web
Service cung cấp.
• Tầng dịch vụ ( Service): cung cấp các chức năng của service.
• Tầng đăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI. UDDI dùng
cho cả người dùng và SOAP server, nó cho phép đăng ký dịch vụ để người dùng có thể gọi
thực hiện service từ xa qua mạng, hay nói cách khác một service cần phải được đăng ký để
cho phép các client có thể gọi thực hiện
Để tạo một Web Service chúng ta cần xây dựng các tầng cần thiết trong kiến trúc Web
Service tức là xây dựng và thiết lập các thành phần trong các tầng đó, cụ thể là các thành
phần SOAP, WSDL, UDDI trong đó :
Trang 11



Thực hiện: Trần Thị Hằng

Đề tài: Web Service

• SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ,
SOAP cho phép người dùng triệu gọi một service từ xa thông qua một message XML.
• WSDL 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ữ WSDL để truyền các tham số và các loại dữ liệu cho các thao tác, các chức
năng mà Web Service cung cấp.
• UDDI dùng cho cả người dùng và SOAP server, nó cho phép đăng ký dịch vụ để
người dùng có thể gọi thực thi các hàm, các chức năng của Web Service, tức là một service
cần phải được đăng ký để cho phép các client có thể gọi thực hiện.
Thêm nữa, để đảm bảo các service có tính an toàn, toàn vẹn và bảo mật thông tin, trong
kiến trúc Web Service ta có thêm các tầng Policy, Security, Transaction, Management để tăng
cường tính bảo mật, an toàn và toàn vẹn thông tin khi sử dụng service.
3.2. Thành phần của Web Service
3.2.1. WSDL
a.Khái niệm
WSDL [11][13] (Web Service Description Language) - ngôn ngữ mô tả dịch vụ web: là
ngôn ngữ dựa trên XML để mô tả các web service và cách để truy cập vào các web service
đó.
WSDL là một tài liệu XML, dùng để định vị web service và những hoạt động, phương
thức mà web service thể hiện
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 service.
• 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, và tên cho giao diện này.
Một WSDL hợp lệ gồm có hai phần :

• 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 service.
Cả 2 phần trên sẽ được lưu trong 2 tập tin XML, bao gồm:
-Tập tin giao diện - Service Interface(cho phần 1):WSDL mô tả 5 loại thông tin chính bao
gồm: import, types, message, portType, binding
- Tập tin thi hành - Service Implementation (cho phần 2): WSDL mô tả 2 loại thông tin chính
bao gồm: service và port .

Trang 12


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

Hình1. 6: Cấu trúc WSDL
Tập tin giao diện - Service Interface:
- Types :WSDL định nghĩa các kiểu dữ liệu của thông điệp gửi:
<definitions .... >
<types>
<xsd:schema .... />*
</types>
</definitions>

- Thông điệp (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 service. Nhiều thao tác có thể
tham chiếu tới cùng định nghĩa message.
Thao tác và những message đượ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 lại. Chẳng hạn, hai thao tác với cùng tham số có thể chia sẻ một định nghĩa
message.
- Kiểu cổng (port type):WSDL 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>

- Kết hợp (Binding) :định nghĩa cách các web services kết hợp với nhau:
Một kết hợp 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 URL
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.
Tập tin thi hành - Service Implementation
- Dịch vụ (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 web services theo thủ tục và phương thức nào :
<wsdl definitions .... >
<wsdl:service name="nmtoken"> *
<wsdl port .... />*

Trang 13



Thực hiện: Trần Thị Hằng

Đề tài: Web Service

</wsdl:service>
</wsdl definitions>

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

Trong ví dụ này, thuộc tính kết hợp tên là qname. Nó tham chiếu tới một mối kết hợp. 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.
Tóm lại: một tài liệu WSDL là một tài liệu XML đơn giản. Nó chứa đựng tập các định
nghĩa để mô tả web service. WSDL mô tả bốn phần chính của dữ liệu bao gồm:
•Thông tin giao diện: Mô tả toàn bộ những phương thức công khai sẵn có.
•Thông tin về kiểu dữ liệu cho tất cả các thông điệp yêu cầu và thông điệp đáp ứng.
•Thông tin kết nối, giao thức tuyền thông sẽ sử dụng.
•Thông tin địa chỉ để định vị dịch vụ web.
WSDL mô tả một liên hệ giữa phía yêu cầu dịch vụ và phía cung cấp dịch vụ. WDSL
độc lập nền, ngôn ngữ lập trình và được sử dụng để mô tả các dịch vụ SOAP. Khi sử dụng
WSDL, một trình khách (client) có thể định vị một dịch vụ web và gọi tới bất kỳ phương thức
công khai nào mà dịch vụ đó cung cấp.
b. Cấu trúc tài liệu WSDL

Cấu trúc cơ bản của một tài liệu WSDL có dạng như dưới đây:
<definitions>
<types>
definition of types........
</types>
<message>
definition of a message....
</message>

definition of a port.......
</portType>
<binding>
definition of a binding....
</binding>
</definitions>

Một tài liệu WSDL sử dụng cú pháp XML để mô tả web service. Các đặc tả của nó sử dụng
các loại thẻ chính sau:
Trang 14


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

Definitions: đây là thẻ gốc bao trùm toàn bộ nội dung của một tài liệu WSDL. Nó định nghĩa
tên của dịch vụ, khai báo các namespace được sử dụng trong phần còn lại của tài liệu. Thẻ
này chứa tất cả các thẻ khác của tài liệu.
Types: mô tả toàn bộ các kiểu dữ liệu được sử dụng, trao đổi giữa trình khách và máy chủ khi
chạy dịch vụ. Các đặc tả trong W3C XML Schema được sử dụng như một sự lựa chọn mặc

định. Nếu dịch vụ chỉ sử dụng các kiểu đơn XML Schema dựng sẵn như kiểu string hay
interger, thì có thể không cần khai báo thẻ types.
Message: mô tả thông điệp một chiều, nó có thể là một thông điệp yêu cầu hoặc một thông
điệp đáp ứng. Nó định nghĩa tên của thông điệp và có thể chứa hoặc không chứa các thẻ con
(chứa các tham biến hoặc các giá trị trả về).
PortType: Là thẻ quan trọng nhất trong tài liệu WSDL, nó mô tả một web service, những hoạt
động mà web service có thể thực hiện, và những thông điệp liên quan. Thẻ có thể
được so sánh với một thư viện hàm, (hay một mô đun, một lớp) trong các ngôn ngữ lập trình
truyền thống. Thẻ này kết hợp các thẻ message để tạo nên một xử lý hoàn chỉnh. Ví dụ nó có
thể kết hợp một thông điệp yêu cầu và một thông điệp đáp ứng để tạo nên một xử lý yêu
cầu/đáp ứng yêu cầu thường được sử dụng trong các dịch vụ SOAP. Lưu ý là portType có thể
định nghĩa nhiều xử lý (thực thi theo tuần tự).
Operation types: kiểu vào ra thông dụng nhất,WSDL định nghĩa bốn kiểu sau:
Kiểu

Định nghĩa

One-way

Nhận về một thông điệp nhưng không có thông điệp trả lời

Request-response

Nhận về một thông điệp yêu cầu và trả lại một thông điệp
đáp ứng

Solicit-response

Gửi một thông điệp yêu cầu và chờ thông điệp đáp ứng


Notification

Gửi một thông điệp yêu cầu nhưng không chờ đáp ứng

Bảng 1 : Các kiểu vào/ra trong WSDL
Binding: Định nghĩa cách các web service kết hợp với nhau. Môi kết hợp bao gồm: những
giao thức mở rộng cho những giao tác và những message, môi kết hợp tham chiếu đến một
loại 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 portType phải nằm trong phạm vi mối kết hợp.
Ngoài ra thì một tài liệu WSDL cũng có thể chứa các thẻ khác như các thẻ mở rộng và các thẻ
dịch vụ có thể nhóm lại cùng nhau để định nghĩa vài web service trong cùng một tài liệu
WSDL. Cú pháp đầy đủ của WSDL sẽ được trình bày sau.
Xét ví dụ đơn giản về một tài liệu WSDL đầy đủ : HelloService.wsdl
<?xml version="1.0" encoding="UTF-8"?>
targetNamespace=" />xmlns=" />xmlns:soap=" />
Trang 15


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

xmlns:tns=" />xmlns:xsd=" /><message name="SayHelloRequest">

</message>
<message name="SayHelloResponse">

</message>


<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
<binding name="Hello_Binding" type="tns:Hello_PortType">
transport=" /><operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
encodingStyle=" />namespace="urn:examples:helloservice"
use="encoded"/>
</input>
<output>
encodingStyle=" />namespace="urn:examples:helloservice"
use="encoded"/>
</output>
</operation>
</binding>

Trang 16


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

<service name="Hello_Service">

<documentation>WSDL File for HelloService</documentation>

location="http://localhost:8080/soap/servlet/rpcrouter"/>
</port>
</service>
</definitions>

Đi phân tích ví dụ trên để hiểu rõ hơn về cấu trúc WSDL:
<definitions>:
Tên của tài liệu được chỉ rõ trong thuộc tính name của thẻ definitions. Thẻ này cũng được chỉ
rõ các namespaces sẽ được sử dụng trong tài liệu
targetNamespace=" />xmlns=" />xmlns:soap=" />xmlns:tns=" />xmlns:xsd=" />
Sử dụng các namespaces để phân biệt các thẻ (elements) và cho phép tài liệu WSDL có thể
tham chiếu tới đặc tả bên ngoài, bao gồm đặc tả WSDL, đặc tả SOAP, và đặc tả XML
schema. Thẻ definitions chứa thuộc tính targetNamespaces là một quy tắc XML Schema cho
phép tài liệu WSDL tham khảo tới chính nó.
<Message>:
Có hai thẻ message, thẻ thứ nhất thể hiện một thông điệp yêu cầu (SayHelloRequest), thẻ thứ
hai là một thông điệp đáp ứng (SayHelloResppone)
<message name="SayHelloRequest">

</message>
<message name="SayHelloResponse">

</message>

<PortType>:


<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>

Trang 17


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

</operation>
</portType>

Thông điệp vào gọi có tên SayHelloRequest, thông điệp ra gọi tên SayHelloResponse, tên
loại cổng là Hello_PortType, tên của hoạt động là sayHello
<WSDL bindings>:
Định nghĩa khuôn dạng của thông điệp và giao thức chi tiết cho web service
<binding name="Hello_Binding" type="tns:Hello_PortType">
transport=" /><operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
encodingStyle=" />namespace="urn:examples:helloservice"
use="encoded"/>
</input>
<output>
encodingStyle=" />namespace="urn:examples:helloservice"

use="encoded"/>
</output>
</operation>
</binding>

Phần tử binding có 2 thuộc tính là tên và kiểu. Thuộc tính tên gọi (có thể đặt tuỳ thích)
định nghĩa tên của binding, và thuộc tính kiểu là loại cổng dùng cho binding, trường hợp này
là cổng Hello_PortType.
Phần tử soap:binding có 2 thuộc tính là style và transport. Style có thể là ‘rpc’ hoặc
‘document’. Trong trường hợp này chúng ta sử dụng ‘rpc’. Transport định nghĩa giao thức
SOAP sử dụng, trong trường hợp này là HTTP. Operation định nghĩa từng operation mà cổng
thể hiện ra, với môi operation hành động SOAP tương ứng được định nghĩa. Ta phải chỉ rõ
cách đầu vào và đầu ra được mã hoá, trong trường hợp này chúng ta dùng ‘encoded’
c. Cú pháp của tài liệu WSDL:
Cú pháp đầy đủ của một tài liệu WSDL được mô tả bởi W3C dưới đây:
<wsdl:definitions name="nmtoken"? targetNamespace="uri">
<import namespace="uri" location="uri"/> *
<wsdl:documentation .... /> ?

Trang 18


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

<wsdl:types> ?
<wsdl:documentation .... /> ?
<xsd:schema .... /> *
</wsdl:types>

<wsdl:message name="ncname"> *
<wsdl:documentation .... /> ?
*
</wsdl:message>
<wsdl:portType name="ncname"> *
<wsdl:documentation .... /> ?
<wsdl:operation name="ncname"> *
<wsdl:documentation .... /> ?
<wsdl:input message="qname"> ?
<wsdl:documentation .... /> ?
</wsdl:input>
<wsdl:output message="qname"> ?
<wsdl:documentation .... /> ?
</wsdl:output>
<wsdl:fault name="ncname" message="qname"> *
<wsdl:documentation .... /> ?
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:serviceType name="ncname"> *
<wsdl:portType name="qname"/> +
</wsdl:serviceType>
<wsdl:binding name="ncname" type="qname"> *
<wsdl:documentation .... /> ?
<-- binding details --> *
<wsdl:operation name="ncname"> *
<wsdl:documentation .... /> ?
<-- binding details --> *

Trang 19



Thực hiện: Trần Thị Hằng

Đề tài: Web Service

<wsdl:input> ?
<wsdl:documentation .... /> ?
<-- binding details -->
</wsdl:input>
<wsdl:output> ?
<wsdl:documentation .... /> ?
<-- binding details --> *
</wsdl:output>
<wsdl:fault name="ncname"> *
<wsdl:documentation .... /> ?
<-- binding details --> *
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ncname" serviceType="qname"> *
<wsdl:documentation .... /> ?
<wsdl:port name="ncname" binding="qname"> *
<wsdl:documentation .... /> ?
<-- address details -->
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

3.2.2. UDDI (Universal Description , Discovery and Intergration).

Để sử dụng các dịch vụ [13], 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 là một kỹ thuật chuyên biệt cho việc
cung cấp các mô tả, khám phá, và cách kết hợp các Web Service. Nó cho phép các công ty,
người lập trình có thể vừa làm ra và vừa cho phép tìm những Web Service đã có sẵn.
- Về cốt lõi UDDI có hai phần:
• UDDI là một kỹ thuật đặc biệt cho việc xây dựng những thư mục phân tán của doanh
nghiệp và Web Service. Dữ liệu được lưu trữ dưới dạng XML, và đặc điểm kỹ thuật của
UDDI bao gồm chi tiết API cho việc tra tìm những dữ liệu có sẵn và đưa ra những dữ liệu
UDDI.
• Bộ đăng ký UDDI cho phép bất kỳ công ty nào cũng có thể đăng ký nó và dịch vụ
của nó.
- Những UDDI registry hiện có:
• UDDI Business Registry: bộ đăng ký được bảo trì bởi Microsoft, IBM. Đặc điểm của
bộ đăng ký này là nó phân tán về mặt vật lý.
Trang 20


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

• IBM Test Registry: bộ đăng ký cho những người phát triển để thử nghiệm công nghệ
và kiểm tra những service của họ.
• Private registries IBM ships: bộ đăng ký UDDI cá nhân
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.
Cấu trúc UDDI gồm các thành phần :
• Trang trắng -White pages: chứa thông tin liên hệ và các định dạng chính của web
services, như tên giao dịch, địa chỉ,… Những thông tin này cho phép các đối tượng khác xác
định được service .

• Trang vàng -Yellow pages: chứa thông tin mô tả web services theo những loại khác
nhau, cho phép các đối tượng thấy web services theo từng loại của nó.
• Trang xanh -Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng
của web services. Để tìm kiếm, các đối tượng dựa vào đặc điểm của web services.
• Loại dịch vụ - tModel: chứa các thông tin về loại dịch vụ sử dụng.
3.2.3. SOAP (Simple object Access Protocol)
SOAP là một giao thức viết bằng XML[11,15], dùng để chuyển thông tin giữa các máy
tính. Mặc dù SOAP có thể được sử dụng trong các hệ thống văn bản khác nhau và có thể
được truyền thông qua các giao thức giao vận khác nhau nhưng chủ yếu vẫn là các giao thức
gọi thủ tục từ xa được truyền thông qua HTTP. SOAP là một nền độc lập và thực thi những
ứng dụng khác nhau để tương tác.
a. Đặc trưng của SOAP [13]
• SOAP là một giao thức để giao tiếp, dùng để giao tiếp giữa các ứng dụng với nhau
• SOAP là định dạng để gửi thông điệp.
• SOAP thiết kế để giao tiếp thông qua môi trường internet.
• SOAP thiết kế đơn giản và dễ mở rộng.
• Các message SOAP được mã hóa sử dụng XML
• SOAP sử dụng giao thức truyền dữ liệu riêng.
• Không bị ràng buộc bởi bất kỳ ngôn ngữ nào hoặc công nghệ nào, vì nó là ngôn ngữ
độc lập, một platform độc lập.
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.
b. Ưu điểm của SOAP
SOAP có các ưu điểm sau đây:
• Cho phép truyền thông tin trên Internet giữa các chương trình với nhau.
• Cung cấp con đường để truyền tin giữa các ứng dụng khác nhau chạy trên những hệ
thống khác nhau, công nghệ và ngôn ngữ khác nhau.
Trang 21



Thực hiện: Trần Thị Hằng

Đề tài: Web Service

c. Cú pháp của SOAP
Các quy ước cú pháp cho SOAP:
• Thông điệp SOAP phải được mã hóa bởi XML
• Thông điệp SOAP sử dụng không gian đóng gói SOAP.
• Thông điệp SOAP phải sử dụng không gian mã hóa SOAP.
• Thông điệp SOAP phải không chứa một tham chiếu DTD
• Thông điệp SOAP phải không chứa lệnh xử lý XML.
d. Cấu trúc một message theo dạng SOAP:
Message theo dạng SOAP là một văn bản XML bình thường bao gồm các phần tử sau:

Hình 1.7: Cấu trúc message SOAP
• Phần tử gốc - envelop : phần từ bao trùm nội dung message, khai báo văn bản XML
như là một thông điệp SOAP.
• Phần tử đầu trang – header: chứa các thông tin tiêu đề cho trang, phần tử này không
bắt buộc khai báo trong văn bản. Những đầu mục còn có thể mang những dữ liệu chứng thực,
những chữ ký số hóa, và thông tin mã hóa, hoặc những cài đặt cho giao tác.
• Phần tử khai báo nội dung chính trong thông điệp - body , chứa các thông tin yêu cầu
và phản hồi.
• Phần tử phát sinh lôi (Fault) cung cấp thông tin lôi xảy ra trong quá trình xử lý thông
điệp.
Trong trường hợp đơn giản nhất, phần thân của SOAP message gồm có:
• Tên của message
• Một tham khảo tới một thể hiện service.
• Một hoặc nhiều tham số mang các giá trị và mang các tham chiếu.

Có 3 kiểu thông báo:
o Request messages : với các tham số gọi thực thi một service
o Response messages: với các tham số trả về, được sử dụng khi đáp ứng yêu cầu.
Trang 22


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

o Fault messages: báo tình trạng lôi.
e. 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: được biết như kiểu hướng message, kiểu này cung cấp một lớp thấp của
sự trừu tượng hóa, và yêu cầu người lập trình nhiều hơn khi làm việc.
Các định dạng message, tham số, và lời gọi đến các API thì tương ứng trong RPC và
document là khác nhau. Nên việc quyết định chọn cái nào tùy thuộc vào thời gian xây dựng
và sự phù hợp của service cần xây dựng.
f. Mô hình dữ liệu:
Mục đích của mô hình dữ liệu SOAP là cung cấp một sự trừu tượng hóa độc lập ngôn
ngữ cho kiểu ngôn ngữ lập trình chung. Nó gồm có:
• Những kiểu XSD đơn giản như những kiểu dữ liệu cơ bản trong đa số các ngôn ngữ
lập trình như int, string, date, …
• Những kiểu phức tạp, có hai loại là struct và array.
Tất cả các phần tử và những định danh có trong mô hình dữ liệu SOAP được định nghĩa
bằng namespace SOAP-ENC
g. Mã hóa
Các phương thức của Web Service trả về một hoặc nhiều giá trị được đóng gói dưới

dạng các tài liệu XML, và Web Service cho phép client và server tương tác trong những môi
trường khác nhau. Vậy dữ liệu đã được mã hóa như thế nào để có thể làm được điều đó?
Trong những môi trường tính toán phân tán, mã hóa định nghĩa làm sao giá trị của dữ liệu
trong ứng dụng có thể được dịch từ khuôn dạng nghi thức.
Khuôn dạng nghi thức cho các Web Service là XML, ở đây chúng ta giả thiết service
requestor và service provider phát triển trong Java. Vì vậy, mã hóa SOAP là trong môi trường
thực thi để làm thế nào chuyển đổi từ cấu trúc dữ liệu Java sang SOAP XML và ngư ợc lại.
Một ánh xạ định nghĩa là mối quan hệ giữa một phần tử XML, một lớp Java, và một trong
những loại mã hóa giới thiệu.
Một ánh xạ chỉ rõ làm cách nào, để khi đã mã hóa mà một phần tử XML đầu vào vẫn
chuyển đổi được tới một lớp Java và ngược lại. Chúng ta quan tâm tới hai phương hướng ánh
xạ là XML tới Java và Java tới XML. Bất kỳ môi trường thực thi SOAP nào cũng phải có một
bảng chứa những mục ánh xạ, gọi là SOAPMappingRegistry.
Nếu một kiểu dữ liệu được giả thiết sẽ được sử dụng dưới một loại mã hóa nhất định, thì
một ánh xạ tương ứng phải tồn tại trong bộ đăng ký (registry) của môi trường thực thi SOAP
đó. Những kiểu dữ liệu không chuẩn (tự định nghĩa) thì cần ánh xạ trên cả server và client.
3.2.4. XML
a. Khái niệm:
Trang 23


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

XML [15][18] viết tắt của EXtensible Markup Language – Là một bộ quy luật về cách
chia một tài liệu ra làm nhiều phần, rồi đánh dấu và ghép các phần lại với nhau để dễ nhận
diện chúng. XML do W3C đề ra và được phát triển từ SGML. XML là ngôn ngôn ngữ mô tả
với cấu trúc do người dùng định nghĩa. Về hình thức XML có ký pháp giống như HTML
nhưng không tuân theo một đặc tả quy ước như HTML. Người sử dụng hay các chương trình

có thể tự quy ước định dạng các thẻ (tag) XML để giao tiếp với nhau, và hoàn toàn không có
giới hạn về số thẻ được sử dụng. Thông tin cần truyền tải được chứa trong các thẻ XML,
ngoài ra không chứa bất kỳ thông tin nào khác về cách sử dụng hay hiển thị những thông tin
ấy.
Tuy mới được phát triển, nhưng XML đã nhanh chóng được chấp nhận do nó cho phép
các hệ thống máy tính khác nhau chia sẻ dữ liệu một cách dễ dàng hơn, bất chấp hệ điều hành
hay ngôn ngữ lập trình được sử dụng là gì. Hiện nay có rất nhiều các công cụ hô trợ XML bao
gồm các trình biên dịch và trình soạn thảo cho gần như tất cả các hệ điều hành, ngôn ngữ lập
trình như Java, Perl, Python, C/C++, C#, Ruby …
Web service là sự kết hợp của nhiều thành phần khác nhau, do đó web service 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ới nhau. Vì vậy XML là một
công cụ chính yếu để giải quyết vấn đề này. Vì vậy, các ứng dụng tích hợp vĩ mô thường sử
dụng XML. Nhờ có khả năng tổng hợp này mà XML trở thành kiến trúc nền tảng cho xây
dựng web service và nó đã trở thành một lựa chọn tự nhiên của các nhà phát triển khi xây
dựng các web service.
b. Truyền thông XML
Có hai sự lựa chọn chính cho việc truyền các thông điệp XML [11] đó là sử dụng:
XML-RPC và SOAP.
►XML-RPC
XML-RPC: là một giao thức đơn giản sử dụng thông điệp XML để thực thi các lời gọi
thủ tục từ xa. Các yêu cầu được mã hoá theo khuôn dạng XML và được gửi qua giao thức
HTTP POST. Các thông điệp phản hồi XML được nhúng trong phần thân của gói tin HTTP
đáp ứng. XML-RPC độc lập nền tảng, nó cho phép các ứng dụng khác nhau có thể giao tiếp
với nhau. Ví dụ một trình khách Java có thể sử dụng XML-RPC để giao tiếp với trình chủ
Perl.
Để hiểu rõ hơn về XML-RPC, ta hãy xem xét một ví dụ đơn giản về dịch vụ cung cấp
thông tin thời tiết. Với tham số truyền vào là mã vùng, web service này sẽ trả lại thông tin
nhiệt độ hiện tại của khu vực tương ứng với mã vùng đó. Dưới đây là thông điệp yêu cầu
XML-RPC đơn giản cung cấp chức năng trên:
<?xml version=”1.0” encoding=”ISO-8859-1” ?>

<methodCall>
<methodName> Weather.getWeather </methoName>

<value> 1084 </value> </param>
</params>
</methodCall>

Trang 24


Thực hiện: Trần Thị Hằng

Đề tài: Web Service

Thông điệp yêu cầu này chứa đựng một thẻ đơn methodCall chỉ rõ tên của phương thức và
các tham biến của nó. Tiếp theo là một ví dụ đơn giản về thông điệp đáp ứng XML-RPC được
trả về bởi dịch vụ web nói trên:
<?xml version=”1.0” encoding=”ISO-8858-1” ?>
<methodReponse>


<value> <int> 35 </int> </value>
</param>
</params>
</methodReponse>

Thông điệp đáp ứng chứa đựng một thẻ đơn methodReponse chỉ rõ giá trị trả về. Trong
trường hợp này giá trị trả về được chỉ định là một giá trị kiểu Integer.
Trong nhiều trường hợp, XML-RPC đơn giản hơn và dễ chấp nhận hơn SOAP. Tuy nhiên,
không giống với SOAP, XML-RPC không có sự mô tả cấu trúc ngữ pháp tương ứng của dịch

vụ. Điều này ngăn cản việc tự động triệu gọi các dịch vụ XML-RPC, một yêu cầu quyết định
cho phép tích hợp các ứng dụng thời gian chạy.
►SOAP
SOAP là một giao thức dựa trên XML được dùng để trao đổi thông tin giữa các máy
tính. Mặc dù SOAP có thể dùng được trong nhiều hệ thống truyền tin khác nhau, và có thể
được truyền qua nhiều giao thức vận chuyển khác nhau, về cơ bản SOAP là các lời gọi thủ tục
từ xa được vận chuyển thông qua giao thức HTTP. Giống như XML-RPC, SOAP độc lập nền
và do đó cũng cho phép các ứng dụng khác nhau giao tiếp với nhau một cách dễ dàng.
Để hiểu rõ hơn về SOAP, xét ví dụ về dịch vụ cung cấp thông tin thời tiết đơn giản ở trên.
Dưới đây là thông điệp yêu cầu theo định dạng SOAP (Phần đầu của thông điệp HTTP đã
được lược bỏ):
<?xml version=”1.0” encoding=”UTF-8” ?>
xmlns:SOAP-ENV=” />xmlns:xsi=” />xmlns:xsd=” /><SOAP-ENV:Body>
SOAP-ENV:encodingStyle=” /><zipcode xsi:type=”xsd:string”>1084 </zipcode>
</ns1:getWeather>
<SOAP-ENV:Body>
<SOAP-ENV:Envelope>

Ta có thể thấy thông điệp yêu cầu SOAP phức tạp hơn một chút so với XML-RPC. Nó
sử dụng cả XML namespaces và XML Schemas. Về cơ bản thì nó vẫn giống thông điệp
XML-RPC, phần thân của thông điệp chỉ rõ tên của phương thức và danh sách các tham biến
của phương thức đó.Tiếp theo là thông điệp đáp ứng SOAP tương ứng:
<?xml version=”1.0” encoding=”UTF-8” ?>
xmlns:SOAP-ENV=” />Trang 25



×