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

Xây dựng ứng dụng tìm kiếm thông tin bằng web service và công nghệ microsoft NET framework

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.02 MB, 38 trang )

PHẦN 1

MỞ ĐẦU
Đặt Vấn Đề
Khi website ra đời nó lập tức thay đổi cách con người giao tiếp và tiếp nhận kiến
thức. Ban đầu, website chỉ là các trang HTML cơ bản. Sau đó, ASP, JSP, PHP và
những công nghệ khác đã làm biến đổi hoàn toàn các ứng dụng mạng. Với xu thế
thương mại hóa điện tử trong kinh doanh hiện nay, website dường như đã trở thành
công cụ quảng bá thương hiệu uy tín nhất.
Các tài nguyên internet được xây dựng bằng nhiều công nghệ và ngôn ngữ khác
nhau dẫn đến vấn đề là tài nguyên ngày càng nhiều nhưng không đồng bộ, các hệ
thống không thể truy xuất hoặc cập nhật lẫn nhau. Các ứng dụng desktop không có
khả năng khai thác dữ liệu trực tiếp từ các website, website được viết bằng ngôn
ngữ này cũng gặp khó khăn khi khai thác dữ liệu từ website được viết bằng ngôn
ngữ khác. Từ đây sẽ nảy sinh một yêu cầu là cần có một tài nguyên thống nhất để
tất cả mọi hệ thống có thể sử dụng ở mọi lúc mọi nơi. Để giải quyết yêu cầu trên,
các nhà khoa học đã xây dựng webservice.
Với sự phát triển nhanh chóng của hạ tầng mạng Internet đã làm thay đổi một
cách mạnh mẽ mô hình kinh doanh cũng như cách tiếp cận, phát triển và đầu tư các
ứng dụng kinh doanh (Enterprise software) của các doanh nghiệp.
Các website đơn giản có thể đáp ứng nhu cầu hiện tại, nhưng rồi sắp tới sẽ
không đủ sức hấp dẫn khách hàng quay trở lại website của mình. Điều này làm nảy
sinh một nhu cầu thiết kế mới sinh động hơn, sáng tạo hơn.
Vấn đề đang được các doanh nghiệp quan tâm hàng đầu khi phát triển hệ thống
ứng dụng của mình đó là việc tích hợp các ứng dụng nhỏ đã được sử dụng trong
doanh nghiệp thành một hệ thống tổng thể, hoàn chỉnh phục vụ mục đích kinh
doanh của mình. Điều nảy sinh ở đây đó là các ứng dụng nhỏ sử dụng trong các
doanh nghiệp ngày nay được phát triển qua nhiều giai đoạn, sử dụng nhiều công
nghệ khác nhau, hoàn toàn không tương thích khiến cho việc kết hợp các ứng dụng
này trở thành một hệ thống hoàn chỉnh là hết sức khó khăn.
Để giải quyết vấn đề này, nhiều giải pháp đã được đề ra, trong đó đáng chú ý


nhất và cũng có nhiều khả năng triển khai trong thực tế nhất đó là giải pháp phát
triển, tích hợp các hệ thống con với công nghệ Web Service và Microsoft.NET
Framework. Ý tưởng chính của giải pháp này được tóm gọn như sau: Các ứng dụng
nhỏ trong hệ thống sẽ trình bày giao diện của nó dưới dạng Web Service, một ứng
dụng ở trung tâm (cũng là một web service) được xây dựng dựa trên công nghệ
1


Microsoft .NET Framework để kết hợp các web service nhỏ trở thành một tiến trình
duy nhất.

2


Nội Dung Đề Tài
Trong đồ án tốt nghiệp cuối khóa này, em xin trình bày về vấn đề phát triển một
hệ thống tích hợp các Web Service dựa trên công nghệ Microsoft.NET Framework.
Đồ án chia thành hai phần:
• Phần thứ nhất trình bày các cơ sở lý thuyết về Web Service và Microsoft
.NET Framework.
• Phần thứ hai trình bày việc xây dựng một hệ thống tìm kiếm phòng của
khách sạn dựa trên kiến trúc Web Service và Microsoft ASP.NET 2.0. Hệ thống này
có đặc điểm là sử dụng công nghệ Microsoft.NET Framework để kết hợp các web
service của các khách sạn và cho phép người sử dụng tìm kiếm các phòng của
khách sạn với các thông tin dữ liệu trả về lấy từ các web service này.

3


PHẦN 2


CƠ SỞ LÝ THUYẾT
I/KIẾN TRÚC WEB SERVICES:
Web services là một tập các chuẩn đặc tả mở rộng khả năng của các chuẩn có
sẵn như XML, URL và HTTP nhằm cung cấp chuẩn truyền thông giữa các hệ thống
với nhau.Web services là những thành phần thực thi một số xử lý nghiệp vụ thông
qua những dịch vụ và cung cấp những dịch vụ qua mạng, những dịch vụ này có thể
được triệu gọi bởi các dịch vụ client bằng cách sử dụng giao thức SOAP trên HTTP.
Web services độc lập về ngôn ngữ và độc lập 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. Các giao thức không được có bất kì ý nghĩa ngầm định nào bên trong mà
phải được mô tả rõ ràng.
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.
Kiến trúc Web services cung cấp nhiều thành phần cho phép các ứng dụng client
tìm kiếm và sử dụng những Web services mình cần một cách động. 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ữ (language-neutral). Web service
có thể được sử dụng vào các mục đích đơn giản như đăng nhập vào một trang web
hay với mục đích phức tạp như xử lý nghiệp vụ giao dịch vay mượn giữa các công
ty với nhau. Đ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 và CGI 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 và đa kết nối giữa
những mô hình web services thật đáng kinh ngạc. Thêm vào đó, các chuẩn Web
services mới còn hỗ trợ các tính năng cao cấp như hỗ trợ giao dịch, bảo mật, quy
trình nghiệp vụ…


4


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

Mô hình web services dạng đơn giản định nghĩa cách thức tương tác giữa
Service Requester, Service Provider và Service Directory như sau :
Bên sử dụng dịch vụ tìm kiếm các dịch vụ trong một UDDI Service Directory.
Chúng sẽ lấy thông tin mô tả WSDL của các Web services cung cấp bởi Service
Providers từ trước thông qua Service Directory. Sau khi lấy được mô tả WSDL, bên
yêu cầu dịch vụ kết nối đến nhà cung cấp dịch vụ bằng cách triệu gọi các dịch vụ
thông qua giao thức SOAP.
Web services cơ bản bao gồm các khái niệm SOAP, WSDL và UDDI. Chúng ta
sẽ lần lượt phân tích trong các phần sau. Cần lưu ý là các chuẩn trên có thể được kết
hợp với nhau hoặc dùng độc lập tùy trường hợp cụ thể.

5


Kiến trúc của web service bao gồm các tầng như sau :

Hình 2.1.2: Kiến trúc 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.
- Bên cạnh đó để cho 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 chúng ta có thêm các tầng Policy, Security, Transaction,
6


Management giúp 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.

1.1/Các đặt trưng của Web services
• Self-Contained (Độc lập)
Web service độc lập vì nó không đòi hỏi các tiến trình ở phía client phải cài
đặt bất cứ một thành phần nào. Ở phía server, yêu cầu để triển khai (deploy) Web
service chỉ là servlet engine, EJB container hoặc .NET runtime. Khi Web service đã
được triển khai thì phía client có thể tiêu thụ các dịch vụ mà không cần đòi hỏi phải
cài đặt bất cứ một thành phần nào. Trong khi đó với các công nghệ như DCOM hay
RMI, phía client phải cài đặt client stub trước khi có thể truy cập dịch vụ.
• Tự Mô Tả
Giao diện của Web Service được xuất bản thông qua tài liệu Wsdl. Tài liệu
Wsdl đị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 đó. Để triệu gọi dịch vụ, client chỉ cần biết cấu trúc và nội dung của
thông điệp yêu cầu và đáp ứng của Web service.
• Truy cập thông qua Web
Web được xuất bản, xác định và triệu gọi thông qua Web. Web service sử

dụng giao thức chuẩn của web. Mô tả dịch vụ được xuất bản bằng cách sử dụng
WSDL, các dịch vụ được xác định với sự giúp đỡ của UDDI registry và triệu gọi
thông qua SOAP. Tất cả những giao thức này đều dựa trên web.
• Độc lập về Ngôn ngữ, Nền tảng, Giao thức
Web service có cơ sở là tiêu chuẩn mở XML. Một Client được viết bằng bất cứ
ngôn ngữ cũng nào có thể truy cập một trang web service được viết bằng bất cứ
ngôn ngữ nào khác. Web service độc lập nền tảng, client và web service có thể chạy
trên hai nền tảng độc lập khác nhau.
• Dựa trên chuẩn Mở
Những chuẩn này là XML, SOAP, WSDL và UDDI.
• Web service cho phép client và server tương tác được với nhau mặc dù trong
những môi trường khác nhau.
• Web service thì có dạng mở và dựa vào các tiêu chuẩn. XML và HTTP là nền
tảng kỹ thuật cho web service. Phần lớn kỹ thuật của web service được xây dựng là
những dự án nguồn mở. Bởi vậy, chúng độc lập và vận hành được với nhau.
• Web service thì 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 hóa.
7


• Web service được xây dựng trên nền tảng những công nghệ đã được chấp
nhận .
• Web service có dạng mô đun.
• Web service có thể công bố (publish) và gọi thực hiện qua mạng.
Ngày nay web services được sử dụng rất nhiều trong những lĩnh vực khác nhau
của cuộc sống như:
- Tìm kiếm các thông tin về các khách sạn ở các thành phố hoặc các trung tâm
để liên hệ đặt phòng theo yêu cầu của khách hàng.
- Dịch vụ chọn lọc và phân loại tin tức: Là những hệ thống thư viện 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 có chứa những từ khóa

muốn tìm.
- Dịch vụ hiển thị danh sách đĩa nhạc dành cho các công ty thu thanh.
- Ứng dụng đại lý du lịch có nhiều giá vé đi du lịch khác nhau do có chọn lựa
phục vụ của nhiều hãng hàng không.
- Bảng tính toán chính sách bảo hiểm dùng công nghệ Excel/COM với giao diện
web.
- Thông tin thương mại bao gồm nhiều nội dung, nhiều mục tin như: Dự báo thời
tiết, thông tin sức khoẻ, lịch bay, tỷ giá cổ phiếu…

1.2/Lợi ích của Web services
Web service cung cấp một số lợi ích về công nghệ và kinh doanh, trong số đó
bao gồm:

1.
2.
3.
4.

Tương kết ứng dụng và dữ liệu
Thiết kế linh hoạt
Tái sử dụng mã nguồn
Tiết kiệm chi phí

Với các đặc trưng vốn có của mình như độc lập về nền tảng, công nghệ cũng
như việc dựa trên các chuẩn mở giúp cho việc giao tiếp giữa các ứng dụng trở nên
dễ dàng thông qua việc sử dụng web service. Với lợi thế này, các ứng dụng với các
nền tảng, công nghệ, cấu trúc dữ liệu khác nhau có thể giao tiếp trao đổi thông tin
cũng như cộng tác với nhau một cách dễ dàng.
Web service rất linh hoạt trong thiết kế. Chúng có thể được truy xuất bởi con
người thông qua giao diện web browser hoặc có thể được truy xuất bởi một ứng

8


dụng khác và thậm chí là một web service khác. Một client có thể truy xuất và kết
hợp dữ liệu từ nhiều web service khác nhau cho dù các web service này có thể chạy
trên các nền tảng hệ thống không tương thích. Bởi vì hệ thống trao đổi thông tin
thông qua web service nên sự thay đổi trong các thành phần (ví dụ như sự thay đổi
đến cơ sở dữ liệu) không gây ảnh hưởng đến bản thân web service.
Tái sử dụng mã nguồn là một trong các lợi thế bắt nguồn từ khả năng tương kết
và sự mềm dẻo của web service. Một web service có thể được sử dụng bởi nhiều
client hoặc có thể được kết hợp lại để thực hiện một mục tiêu kinh doanh. Thay vì
phải xây dựng một hệ thống mới thì doanh nghiệp có thể sử dụng lại các web
service và kết hợp chúng theo mục tiêu của mình.
Tất cả các lợi ích trên giúp cho doanh nghiệp giảm chi phí cũng như giảm thời
gian triển khai các ứng dụng của mình. Hơn thế nữa việc web service dựa trên các
chuẩn mở giúp giảm chi phí đầu tư, giảm thời gian tiếp cận công nghệ hơn các hệ
thống độc quyền khác. Cuối cùng, việc xây dụng web service có lợi thế về việc tận
dụng giao thức và cơ sở hạ tầng có sẵn trong mỗi doanh nghiệp.

1.3/Thành phần Web Service
1.3. 1.XML– Extensible 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. Về hình thức XML có ký pháp
tựa 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ể 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.
Do 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ới
nhau. Vì vậy XML là một công cụ chính yếu để giải quyết vấn đề này. Từ kết quả

này, các ứng dụng tích hợp vĩ mô tăng cườ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 việc xây dựng web service.
Web services tận dụng khả năng giải quyết vấn đề của các ứng dụng lớn trên các
hệ điều hành khác nhau cho chúng giao tiếp với nhau.

1.3. 2.WSDL -Web Services 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 để triệu gọi (invoke) dịch vụ web.
9


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ể.

• Thông tin trừu tượng
a. types
b. messages

c. portType
• Thông tin cụ thể
d. bindings
e. services
Các thành phần chứa những tham chiếu lẫn nhau như trong hình.

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

10


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 s ̣ ervice.
- 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 :
1. Phần giao diện mô tả giao diện và giao thức kết nối.
2. 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 (cho phần 1).
- Tập tin thi hành service (cho phần 2).

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

1.3.2.1 Tập tin giao diện - Service Interface
WSDL mô tả 5 loại thông tin chính bao gồm: import, types, message , portType,
binding.


a. Types: WSDL định nghĩa các kiểu dữ liệu của thông điệp gửi .
<definitions .... >
<types>
<xsd:schema .... />*
11


</types>
</definitions>

b.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.

c.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>
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.

12


Ví dụ :
<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.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 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.

1.3.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.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 .... />*
</wsdl:service>
</wsdl:definitions>

13


b. 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>
Ở đâ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 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.

1.3.3.UDDI - Universal Description , Discovery and Intergration
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 theo phần loại theo vùng địa lý.
• 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 (Technical information) 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’s 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 triệu gọi.
14


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 programmer’s API.
Lược đồ XML UDDI định nghĩa bốn loại thông tin cơ bản để kết nối đến Web
service.

Hình 2.1.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, v.v….).
Mỗi doanh nghiệp được cấp một định danh duy nhất, ví dụ như số D-U-N-S.
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.

15


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 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 :
1.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’s API.

2.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.
3.Một yêu cầu dạng SOAP được tạo ra dựa trên tài liệu mô tả WSDL.
4.Yêu cầu SOAP trên sẽ được gửi đến nhà cung cấp dịch vụ và được xử lý.

1.3.4. OAP - Simple Object Accesss Protocol
Đến đây chúng ta đã hiểu được web services là như thế nào, nó được công bố và
truy xuất ở đâu. Nhưng vẫn còn một vấn đề khá quan trọng đó là: Làm thế nào
chúng ta truy xuất dịch vụ khi tìm thấy? Câu trả lời là web servicves có thể truy
xuất bằng một giao thức là Simple Object Access Protocol – SOAP. Nói cách khác
chúng ta có thể truy xuất đến UDDI registry bằng các lệnh gọi hoàn toàn theo kiểu
SOAP.
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.Ý tưởng bắt đầu từ Microsoft và
phần mềm Userland, trải qua nhiều lần thay đổi, hiện tại là phiên bản SOAP 1.2 với
nhiều ưu điểm vuợt trội hơn bản SOAP 1.1. 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.

16


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
text đơ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

1.3.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.
- 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.

17


Hình 2.1.6: Một SOAP Operation đơn giản


Một cấu trúc SOAP được định nghĩa gồm các phần: <Envelope>, <Header> và
<Body>.

Hình 2.1.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ố 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.

1.3.4.2 Cấu trúc một message theo dạng SOAP
Cấu trúc một message theo dạng SOAP được mô tả như hình dưới đây:

Hình 2.1.8: Cấu trúc message SOAP
18


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:
- 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
Request messages: Với các tham số gọi thực thi một service
Response messages: Với các tham số trả về, được sử dụng khi đáp ứng yêu cầu.
Fault messages báo tình trạng lỗi.

1.3.4.3 Những 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.

19


1.3.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 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 thì được
định nghĩa bằng namespace SOAP-ENC

20


II/GIỚI THIỆU VỀ CÔNG NGHỆ LẬP TRÌNH:
2.1. Giới thiệu về Microsoft. NET Framework
Microsoft.NET Framework là một nền tảng cho việc tạo, triển khai và chạy trên
Web-Server và ứng dụng. Nó cung cấp hiệu suất cao, dựa trên các tiêu chuẩn, môi
trường đa ngôn ngữ, cho phép bạn tích hợp với các ứng dụng hiện tại, dịch vụ và
các ứng dụng của thế hệ kế tiếp, cũng như để đáp ứng các thách thức về việc triển
khai và sử dụng các ứng dụng của Internet. .NET Framework bao gồm ba phần
chính - những ngôn ngữ phổ biến runtime (ngôn ngữ phổ biến runtime), một
hierarchical bộ thống nhất các thư viện lớp học và thành phần phiên bản LYS, được
gọi là ASP.NET. Các gói phần mềm bao gồm tất cả các phiên bản đã được phát hành
trên segodnyaschny
Platform Microsoft.NET Framework: Đây là mã số mới, quản lý chương trình
của mô hình cho các hệ điều hành Windows ®. Nó kết nối sức mạnh nền tảng .NET
Framework phiên bản 1,0, 1,1, 2,0, 3,0, 3,5, 1,1 và 3,5 SP công nghệ mới để phát
triển các ứng dụng duy nhất với một giao diện đồ họa, bằng cách sử dụng các công
nghệ khác nhau và trao đổi dữ liệu có thể hỗ trợ một số lượng lớn các quy trình kinh
doanh. Những công nghệ mới - đây là Windows Presentation Foundation, Windows
Communication Foundation,Windows Workflow Foundation, Windows CardSpace.
Nền tảng .NET Framework AIO là một phần của hệ điều hành Windows Vista ™ và
Windows 7, bạn có thể cài đặt và bỏ cài đặt bằng cách sử dụng bảng điều khiển các
chức năng của Windows. Các cơ sở NET Framework AIO về việc cung cấp các tính
năng mới in NET Framework 3.5, ví dụ bộ chức năng trong Windows Workflow

Foundation (WF), Windows Communication Foundation (WCF), Windows
Presentation Foundation (WPF) và Windows CardSpace. Ngoài ra, .NET
Framework AIO bao gồm các tính năng mới trong một số lĩnh vực công nghệ đã
được thêm để tránh các hành vi vi phạm của các cơ cấu. Sau đây mô tả các tính
năng:
Việc tích hợp chặt chẽ của các kết hợp ngôn ngữ truy vấn (LINQ) và các thông
tin nhận thức. Tính năng này cho phép bạn sử dụng cùng một cú pháp để tạo ra
bằng cách sử dụng ngôn ngữ có hỗ trợ cho LINQ mã để thực hiện lọc, chuyển giao
và tạo ra các dự án, bao gồm cả một số loại dữ liệu SQL, các bộ sưu tập, XML và
đặt ra những dữ liệu. ASP.NET AJAX cho phép bạn tạo ra hiệu quả hơn giao diện
web tương tác với các thiết lập quyền lực, được hỗ trợ bởi các trình duyệt phổ biến
nhất. Hỗ trợ cho các dịch vụ web mới cho các giao thức tạo ra các WCF, bao gồm
cả AJAX, JSON, REST, pox, RSS, ATOM và một số tiêu chuẩn mới của WS-*.
Việc hoàn thành công cụ hỗ trợ trong Visual Studio 2009 cho WF, WCF và WPF,
cũng như các dịch vụ công nghệ mới, workflow. Các lớp học mới trong các lớp thư

21


viện cơ sở (BCL) .NET Framework, được thiết kế để phục vụ rất nhiều các điển
hình của khách hàng.

2.2 /Giới thiệu về ASP.NET
ASP.NET là một kỹ thuật phía server (server-side) dành cho việc thiết kế
các ứng dụng web trên môi trường .NET
ASP.NET là một kỹ thuật server-side. Hầu hết những web designers bắt đầu
sự nghiệp của họ bằng việc học các kỹ thuật client-side như HTML, JavaScript và
Cascading Style Sheets (CSS). Khi một trình duyệt web yêu cầu một trang web
được tạo ra bởi các kỹ thuật client-side, web server đơn giản lấy các files mà được
yêu cầu và gửi chúng xuống. Phía client chịu trách nhiệm hoàn toàn trong việc đọc

các định dạng trong các files này và biên dịch chúng và xuất ra màn hình.
Với kỹ thuật server-side như ASP.NET thì hoàn toàn khác, thay vì việc biên
dịch từ phía client, các đoạn mã server-side sẽ được biên dịch bởi web server. Trong
trường hợp này, các đoạn mã sẽ được đọc bởi server và dùng để phát sinh ra
HTML, JavaScript và CSS để gửi cho trình duyệt. Chính vì việc xử lý mã xảy ra
trên server nên nó được gọi là kỹ thuật server-side.

Hình 2.2.1: Kỹ thuật server-side
22


ASP.NET cho phép bạn viết ứng dụng web bằng các loại ngôn ngữ lập trình
quen thuộc khác nhau.
ASP.NET sử dụng .NET Framework, .NET Framework là sự tổng hợp tất cả
các kỹ thuật cần thiết cho việc xây dựng một ứng dụng nền desktop, ứng dụng web,
web services… thành một gói duy nhất nhằm tạo ra cho chúng khả năng giao tiếp
với hơn 40 ngôn ngữ lập trình.
Thậm chí với những sự lý giải kỹ càng như vậy, chúng ta vẫn ngạc nhiên tự
hỏi điều gì làm nên một ASP.NET tốt như vậy. Sự thật là có rất nhiều kỹ thuật
server-side với điểm mạnh và điểm yếu riêng nhưng ASP.NET có những tính năng
gần như là duy nhất.
ASP cho phép bạn sử dụng ngôn ngữ lập trình mà bạn ưa thích hoặc gần gũi
với chúng. Hiện tại, thì .NET Framework hỗ trợ trên 40 ngôn ngữ lập trình khác
nhau mà đa phần đều có thể được sử dụng để xây dựng nên những web sites
ASP.NET. Chẳng hạn như C# (C sharp) và Visual Basic.
• Nhưng trang ASP.NET được Compiled chứ không phải là Interpreted. Khác
với các trang ASP được Interpreted, điều này có nghĩa là mỗi lần người dùng yêu
cầu một trang, máy chủ sẽ đọc các đoạn mã vào bộ nhớ, xử lý cách thức thực thi các
đoạn mã và thực thi chúng. Đối với ASP.NET, máy chủ chỉ cần xử lý cách thức thực
thi một lần duy nhất. Đoạn mã sẽ được Compiled thành các files mã nhị phân cái

mà được thực thi rất nhanh mà không cần phải đọc lại. Chính điều này tạo ra bước
tiến nhảy vọt về hiệu suất so với ASP


ASP đã có khả năng toàn quyền truy xuất tới các chức năng của .NET
Framework. Hỗ trợ XML, web services, giao tiếp với CSDL, email… và rất nhiều
các kỹ thuật khác được tích hợp vào .NET, giúp bạn tiết kiệm được công sức.


ASP cho phép bạn phân chia các đoạn mã server-side và HTML. Khi bạn
phải làm việc với cả đội ngũ lập trình và thiết kế, sự tách biệt này cho phép các lập
trình viên chỉnh sửa server-side code mà không cần dính dáng gì tới đội ngũ thiết
kế.


ASP giúp cho việc tái sử dụng những yếu tố giao diện người dùng trong
nhiều web form vì nó cho phép chúng ta lưu các thành phần này một cách độc lập.


23


24


PHẦN 3

XÂY DỰNG ỨNG DỤNG
Trong phần này em xin trình bày chi tiết xây dựng hệ thống tìm kiếm khách sạn
với Web service và Microsoft.NET Framework.

Nội dung trình bày bao gồm các phần sau:
 Hướng tiếp cận xây dựng ứng dụng.
 Phân tích thiết kế hệ thống.
 Cài đặt ứng dụng.

I/HƯỚNG TIẾP CẬN XÂY DỰNG ỨNG DỤNG:
1/Phát biểu bài toán:
Hệ thống tìm kiếm khách sạn được xây dựng đáp ứng các yêu cầu sau:
1. Về phía người sử dụng, hệ thống cho phép người sử dụng nhập vào thông tin
truy vấn về khách sạn bao gồm: Địa điểm, ngày đến, ngày đi, tên khách sạn, hạng
khách sạn, số giường, giá phòng.
=> Thông tin trả về của hệ thống là một danh sách các khách sạn bao gồm: Tên
khách sạn, hạng khách sạn, địa chỉ, điện thoại, phòng, số giường/phòng, đơn
giá/ngày và tổng giá tiền. Cũng có thể trả về kết quả là không tìm được khách sạn
theo yêu cầu của khách hàng.
2. Về phía hệ thống, yêu cầu thiết kế hệ thống đó là:
a.Hệ thống phải hoạt động với một số lượng lớn các web service của các khách
sạn.
b.Hệ thống cho phép sắp xếp kết quả tìm kiếm trả về cho người sử dụng dựa
trên việc sắp xếp trình tự truy vấn các web service. Trình tự truy vấn các web
service phụ thuộc vào gói dịch vụ mà web service đó đăng kí với hệ thống. Hệ
thống đăng kí này bao gồm ba mức (vàng - gold, bạc – silver, đồng – copper), các
web service đăng kí tham gia ở mức cao sẽ được ưu tiên hiển thị kết quả trước.
c.Hệ thống cho phép thêm hoặc bớt các web service mà nó truy vấn thông tin
một cách động. Hệ thống cũng cho phép chuyển đổi các gói dịch vụ mà các web
service đã đăng kí với hệ thống.

25



×