Giả sử mỗi khi cần biết thông tin người dùng lại phải đưa ra một yêucầu để lấy thông tin từ nơi cung cấp dịch vụ đó, điều đó liệu có cần thiết không?Rất nhiều kiến trúc, những giao thức
Trang 1LỜI CẢM ƠN
Em xin chân thành cảm ơn khoa Công Nghệ Thông Tin, Trường ĐạiHọc Giao Thông Vận Tải đã tạo điều kiện cho em được thực hiện đề tài tốt nghiệpnày
Em xin chân thành cảm ơn cô Đỗ Thanh Thủy đã tận tình hướng dẫnchỉ bảo em trong suốt quá trình thực hiện đề tài này Qua sự hướng dẫn của cô,
em không chỉ học được nhiều kiến thức bổ ích mà còn học ở cô phương phápnghiên cứu khoa học, thái độ và tinh thần làm việc nghiêm túc
Em cũng xin chân thành cảm ơn các thầy cô trong khoa công nghệthông tin đã trang bị cho em những kiến thức bổ ích trong suốt quá trình học tậptại trường Những kiến thức ấy đã giúp chúng em rất nhiều trong quá trình làm đềtài và cũng là hành trang cho em tự tin, vững bước vào đời
Con xin ghi nhớ công ơn của bố, mẹ Bố mẹ luôn là niềm động viêngiúp con vượt qua khó khăn trong cuộc sống
Mặc dù đã cố gắng hoàn thành đồ án với tất cả nỗ lực của bản thân,nhưng đồ án chắc chắn không tránh khỏi những sai sót, em rất mong quí thầy côtận tình chỉ bảo Một lần nữa em xin gửi đến tất cả mọi người lời cảm ơn chânthành nhất
Hà Nội, 23 Tháng 4 năm 2009
Sinh Viên
Đoàn Hải Nam
Trang 2Tóm Tắt
Thông tin một sự kiện mới một cách kịp thời và chính xác là một yêu cầu rấtquan trọng trong cuộc sống Ngày nay nhu cầu sử dụng mạng để lấy thông tinngày càng tăng nên thông tin nhiều khi bị quá tải, không được cập nhật đúng vàkhông kịp thời, có khi cập nhập cả những thông tin cũ Việc nghiên cứu đưa ramột công nghệ, một phương pháp hợp lý để khắc phục những hạn chế hiện nay là
rất cần thiết Vì vậy tôi chọn đề tài “Nghiên cứu dịch vụ WEB” Trong khóa luận
này tôi phát triển một cách tiếp cận mới tới phương pháp thông báo một thông tinmột cách tức thời Cách tiếp cận này có hai bước Bước đầu tiên là nghiên cứunhững công nghệ là nền tảng, bước thứ hai là đi sâu vào nghiên cứu cách để đưa rađược những thông tin cần thiết, chính xác và kịp thời Kết quả của việc nghiên cứu
sẽ được minh họa qua một chương trình Demo
Trang 3MỤC LỤC
MỞ ĐẦU 1
1 Bối cảnh hiện nay 1
2 Đối tượng và nội dung sẽ nghiên cứu 1
3 Cấu trúc luận văn 2
CHƯƠNG 1: TỔNG QUAN VỀ WEB SERVICE 4
1.1 Khái niệm Web Service 4
1.2 Kiến trúc Web service 5
Hình 1.1 Kiến trúc Web service 5
1.3 Các thành phần của kiến trúc Web Service 6
1.3.1 Ngôn Ngữ Định Dạng Mở Rộng - XML (Extensible Markup Language) 6
1.3.2 WSDL -Web Services Description Language 10
Hình 1.2 Cấu trúc WSDL 10
1.3.2.1 Giao diện của dịch vụ (Service Interface) 10
1.3.2.2 Sự thi hành của dịch vụ (Service Implementation) 12
1.4 UDDI (Universal Description , Discovery and Integration) 14
1.5 SOAP - Simple Object Access Protocol 15
1.6 Sự liên kết lỏng 19
1.7 Tính trong suốt trong mạng 20
Hình 1.5: Thể hiện tính trong suốt mạng cho phép Web service có thể được đăt ở bất cứ nơi nào trên mạng hay nhóm mạng 21
1.8 Kết luận 21
Để tạo một Web service cần xây dựng các tầng cần thiết trong kiến trúc Web service hay nói cách khá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 , XML , trong đó: 21 CHƯƠNG 2: TÌM HIỂU VỀ WS- RESOURCE FRAMEWORK 23
2.1 Giới Thiệu Về WS- Resource FrameWork 23
2.2 Tài nguyên dịch vụ web (WS-Resource) 26
Hình 2.2: Trạng thái không được lưu lại 27
2.3 Định vị một dịch vụ Web (Web Service-Addressing) 28
2.4 Thời gian tồn tại của tài nguyên dịch vụ web (Web Service-ResourceLifetime) 29
2.5 Thuộc tính tài nguyên Web service (WS-ResourceProperties) 33
Hình 2.4: Tài nguyên máy in và những tài nguyên dịch vụ web 35
2.6 Nhóm dịch vụ web (WS-ServiceGroup) 35
2.7 WS-RenewableReferences 36
Trang 42.8 Những Lỗi (WS-BaseFaults) 37
2.9 Kết Luận 41
3.1 TỔNG QUAN 43
3.2 WS-Base Notification 46
Hình 3.2: Các thành phần chính của WS- Base Notification 46
Hình 3.3: Thông báo trực tiếp với một nhà cung cấp và nhiều khách hàng 48
Hình 3.4: Thông báo trực tiếp với nhiều nhà cung cấp và môt khách hàng 49
Hình 3.5: Luồng thông điệp: tạo một đăng ký, thông báo tới người tiêu dùng 50
3.3 WS-Topics 54
Hình 3.6: Không gian tên đề tài 57
Hình 3.7: Không gian tên trong hình 3.5 biểu diễn dưới dạng một tài liệu XML 58 3.4 WS- BrokeredNotification 59
Hình 3.8: Các thành phần chính của WS- BrokeredNotification 60
Hình 3.9: Môi giới thông báo 61
Hình 3.10: Một nhà xuất bản đơn 63
Hình 3.11: Luồng thông điệp: xuất bản dựa trên những yêu cầu 64
CHƯƠNG 4: CÀI ĐẶT VÀ DEMO CHƯƠNG TRÌNH 65
4.1 Môi trường phát triển 65
4.2 Giới thiệu chương trình Demo về thời tiết bằng Web Service 65
4.3 Các giao diện chính 69
KẾT LUẬN 75
Phương Hướng Phát Triển: 76
Những hạn chế vừa nêu trên chính là phương hướng để tiếp tục nghiên cứu và hoàn thiện dần khả năng hoạt động của chúng Đó là nghiên cứu về sự truyền tin an toàn, và tin cậy Cập nhật và bổ xung những tính năng mới 76
TÀI LIỆU THAM KHẢO 77
Trang 5Danh sách Các Ký Hiệu, Chữ Viết Tắt
SOAP Simple Object Access Protocol
UDDI Universal Discovery, Description, and Integration
WSDL Web Service Description Language
WS-Base Notification Web Service- Base Notification
WS-BrokeredNotification Web Service- BrokeredNotification
WS-Resource Web Service- Resource
WS-Topic Web Service- Topic
Trang 6Danh Sách Các Hình Minh Họa
MỞ ĐẦU 1
Hình 1.1 Kiến trúc Web service 5
Hình 1.2 Cấu trúc WSDL 10
Hình 1.5: Thể hiện tính trong suốt mạng cho phép Web service có thể được đăt ở bất cứ nơi nào trên mạng hay nhóm mạng 21
CHƯƠNG 2: TÌM HIỂU VỀ WS- RESOURCE FRAMEWORK 23
Hình 2.2: Trạng thái không được lưu lại 27
Hình 2.4: Tài nguyên máy in và những tài nguyên dịch vụ web 35
Hình 3.2: Các thành phần chính của WS- Base Notification 46
Hình 3.3: Thông báo trực tiếp với một nhà cung cấp và nhiều khách hàng 48
Hình 3.4: Thông báo trực tiếp với nhiều nhà cung cấp và môt khách hàng 49
Hình 3.5: Luồng thông điệp: tạo một đăng ký, thông báo tới người tiêu dùng 50
Hình 3.6: Không gian tên đề tài 57
Hình 3.7: Không gian tên trong hình 3.5 biểu diễn dưới dạng một tài liệu XML 58 Hình 3.8: Các thành phần chính của WS- BrokeredNotification 60
Hình 3.9: Môi giới thông báo 61
Hình 3.10: Một nhà xuất bản đơn 63
Hình 3.11: Luồng thông điệp: xuất bản dựa trên những yêu cầu 64
Trang 7
MỞ ĐẦU
1 Bối cảnh hiện nay
Từ xưa tới nay con người sống trong xã hội đều cần thông tin Nắm bắt đượcthông tin chúng ta mới có định hướng cũng như cách giải quyết những tình huốngtrong cuộc sống Ngày nay nhờ có Internet, việc lấy thông tin đối với chúng ta dễdàng, nhanh chóng và thuận tiện hơn rất nhiều Có những thông tin chúng ta cầncập nhật tức thời và liên tục mới có thể đáp ứng nhu cầu, chẳng hạn như những tintức về thị trường chứng khoán, về giá cả lên xuống của cổ phiếu, những thông tinnày cần được cập nhật thường xuyên và liên tục thì những người buôn bán cổphiếu mới biết cách đầu tư Hoặc như những tin tức thời sự: kinh tế chính trị, xãhội, hoặc như những thông tin về thời tiết, thiên tai… cũng phải được thườngxuyên cập nhật Một ví dụ về thư điện tử vẫn sử dụng để trao đổi thông tin vớinhau, thông tin trao đổi đó không phải là tức thời, nó có một độ trễ nhất định,người gửi gửi thông tin đi, sau một thời gian khi người nhận mở hộp thư mới lấyđược thông tin từ người gửi
Việc cập nhật thông tin là rất cần thiết, làm cách nào để có thể đáp ứng nhucầu của chúng ta Ngày nay do sự phát triển mạnh mẽ của Internet Lưu lượngthông tin truyền trên mạng là rất nhiều, khả năng tắc nghẽn và phải chờ đợi là sẽ
có thể xảy ra Giả sử mỗi khi cần biết thông tin người dùng lại phải đưa ra một yêucầu để lấy thông tin từ nơi cung cấp dịch vụ đó, điều đó liệu có cần thiết không?Rất nhiều kiến trúc, những giao thức được đưa ra để đáp ứng các hệ thốngkhác nhau, mỗi phần mềm đòi hỏi những yêu cầu riêng, chúng tạo ra một môitrường không đồng nhất Những yêu cầu truyền thống đặt ra đối với tổ chức côngnghệ thông tin vẫn còn đó, cùng lúc phải đáp ứng nhanh chóng các yêu cầu mới,đòi hỏi phải liên tục giảm chi phí, có khả năng sử dụng và tích hợp các thànhphần mới…dựa trên những công nghệ đã có
2 Đối tượng và nội dung sẽ nghiên cứu
Web service(dịch vụ Web) ra đời đã mở ra một hướng mới cho việc pháttriển các ứng dụng trên Internet Web services kết hợp sử dụng nhiều công nghệkhác nhau cho phép hai ứng dụng cùng ngôn ngữ , độc lập hệ điều hành trao đổi
Trang 8được với nhau thông qua môi trường mạng Internet Đây là điểm khác biệt củaWeb services so với các công nghệ khác , đó chính là khả năng kết hợp các côngnghệ đã có như là XML, SOAP, WSDL, UDDI để tạo ra các service, đặc điểm nàylàm nổi bật vai trò của Web services.
Một trong những yếu điểm của Web service là không trạng thái (stateless).Nghĩa là sau khi một Web service phục vụ xong một yêu cầu từ một client, mọitrạng thái của lần phục vụ đó sẽ không được lưu lại cho lần sau Mà thường thìWeb service phải cung cấp cho người sử dụng khả năng truy nhập và thao tác vớitrạng thái Ngày nay, để Web service thực hiện thành công những ứng dụng màliên quan đến quản lý trạng thái chúng ta cần định nghĩa những quy ước cho việcquản lý trạng thái ví dụ như những ứng dụng khám phá (discover), kiểm tra(inspect), hay tương tác (interact) với những tài nguyên có trạng thái (statefulreources) WS-Resource Framework định nghĩa những quy ước này và thực hiện
nó trong phạm vi những thiết lập chuẩn của Web service
WS- RESOURCE FRAMEWORK chính là nền tảng để nhiều dịch vụ dựavào đó để hoạt động.Những thực thể truyền thông với những thực thể khác thôngqua sự trao đổi thông điệp Truyền tin và thông báo đặc biệt quan trọng trong môhình kiến trúc hướng dịch vụ được sinh ra từ Web service Đó là nơi mà Webservice tương tác với những thứ khác thông qua sự trao đổi thông điệp
WS-Notification miêu tả mô hình truyền tin dạng xuất bản và đăng ký, nódựa trên những đặc tả của WS- RESOURCE FRAMEWORK Ngày nay mô hìnhđang là hướng phát triển và ứng dụng mạnh mẽ trong việc trao đổi những thôngtin với nhau giữa những nhà cung cấp dịch vụ và những người tiêu dùng mà muốncập nhật những thông tin mới một cách liên tục, tức thời
Sau khi nghiên cứu về những vấn đề đã nêu ở trên tôi tiếp tục xây dựng ứngdụng dịch vụ cung cấp thông tin dự báo thời tiết.Phần demo sẽ được trình bầy rõ ởchương 4
3 Cấu trúc luận văn
Luận văn bao gồm các chương sau:
MỞ ĐẦU
Tính cần thiết của thông báo tức thời, ý nghĩa khoa học và thực tiễn của nó,đối tượng và phương pháp nghiên cứu, nội dung sẽ nghiên cứu
Trang 9CHƯƠNG 1: WEB SERVICE
Giới thiệu những khái niệm liên quan tới Web service Trình bày khái quát
về công nghệ Web service bao gồm về khái niệm, đặc điểm, vai trò củaWeb service, các thành phần và chức năng của Web service
CHƯƠNG 2: WS-RESOURCE FRAMEWORK
Trình bày về các đặc tả của WS-RESOURCE FRAMEWORK
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ WEB SERVICE
1.1 Khái niệm Web Service
Web service là một cách thức mà chúng ta muốn bên ngoài tương tác vớichương trình của chúng ta thông qua nó
Web services tạm dịch là các dịch vụ trên web là những thành phần phầnmềm có khả năng giao tiếp trên nhiều mạng khác nhau, sử dụng rộng khắp, khôngthuộc quyền sở hữu riêng dựa trên chuẩn mở XML, phù hợp với sự thiết lập củanhững chuẩn tương tác mở Tiện ích của Web service là được dựa trên thực tế, nó
sử dụng những giao thức kết nối Internet mở và XML để tiến hành việc giao dịchcủa nó Một Web service có thể hoạt động nhờ vào một yêu cầu từ bất cứ Clientnào trên Internet mà việc giao tác sử dụng chuẩn định dạng XML
Đặc điểm Web service:
Web service xử lý khác với những phần mềm truyền thống, nó dựa trênnhững chuẩn mở trong khi hầu hết những các phần mềm ngày nay đều kết nối quanhững công nghệ quen thuộc Web service tích hợp liên kết lỏng khác biệt vớinhững hệ thống phân tán truyền thống và giống như Internet nó trong suốt trêntoàn mạng trong sự thi hành và sử dụng
Web service ra đời đã mở ra một hướng mới cho việc phát triển các ứng dụngtrên Internet Web services kết hợp sử dụng nhiều công nghệ khác nhau cho phéphai ứng dụng cùng ngôn ngữ , độc lập hệ điều hành trao đổi được với nhau thôngqua môi trường mạng Internet.Tuy nhiên những công nghệ sử dụng ở đây khôngnhấ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 vaitrò của Web services
Web service cho phép client và server tương tác được với nhau ngay cả trongnhững môi trường khác nhau
Web service có dạng mở và dựa vào các tiêu chuẩn XML và HTTP là nềntả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
Trang 11Web service rất linh động: Vì với UDDI và WSDL, thì việc mô tả và pháttriển Web service có thể được tự động hóa
Web service được xây dựng trên nền tảng những công nghệ đã được chấpnhậ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
1.2 Kiến trúc Web service
Kiến trúc của Web service bao gồm các tầng như sau:
Hình 1.1 Kiến trúc Web service
Trong đó bao gồm các tầng:
Trang 12- Tầng vận chuyển :có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng,bao gồm những giao thức như HTTP,SMTP,FTP,JMS và gần đây nhất là giaothức thay đổi khối mở rộng (Blocks Exchange Protocol-BEEP).
- Tầng giao thức tương tác dịch vụ ( Service Communication Protocol) vớicô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ừ xathô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 Webservice sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữ liệu chocá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ộtservice 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ôngtin trong kiến trúc Web service có thêm các tầng Policy , Security , Transaction,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.3 Các thành phần của kiến trúc Web Service
1.3.1 Ngôn Ngữ Định Dạng Mở Rộng - XML (Extensible Markup Language)
XML là ngôn ngữ được định nghĩa bởi tổ chức mạng toàn cầu W3C (WorldWide Web Consortium) đề 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 rakhô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ôngtin ấy
Ví dụ về một tài liệu XML:
Trang 13Một Child (con) Element OrderDate với value 2002-3-27
Một Child Element Customer với value Peter Collingwood
Hai Child Elements Item, mỗi Element Item lại chứa một Child Element ProductID và một Child Element Quantity
Do Web service là sự kết hợp của nhiều thành phần khác nhau , do đó Webservices 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ếpvớ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ếtqủa 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ăngtổ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 Webservice
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êncác hệ điều hành khác nhau cho chúng giao tiếp với nhau Yêu cầu này được đápứng với lập trình với Java , một ngôn ngữ viết một lần sử dụng mọi nơi là mộtchọn lựa thích hợp cho phát triển Web services
Sau đây là so sánh ưu điểm và nhược điểm của XML với HTML:
Nhược điểm: của XML là dùng XML để tăng cường dữ liệu sẽ làm tăng kích
cỡ của nó, đôi lúc rất lớn, nhưng các kích cỡ tập tin nhỏ không phải là mục tiêuchính của XML mà điều quan trọng nó giúp ta dễ dàng viết các phần mềm truycập thông tin bằng cách gán cấu trúc dữ liệu Tuy nhiên, kích cỡ tập tin này cũngkhông ngăn cản được bạn sử dụng XML
Ưu điểm của XML khi so sánh với HTML:
Trang 14XML HTML
- Dữ liệu và định dạng được lưu
dưới dạng text nhưng quan trọng là XML
có tính cấu trúc được thể hiện dưới dạng
hình cây (cấu trúc cây đã được nghiên
cứu từ lâu nên có những thuật toán hỗ trợ
cũng như tính đúng đắn của chúng) Do
đó XML trở nên dễ dàng cho việc trao
đổi dữ liệu mà không phụ thuộc vào bất
cứ sự khác biệt nào giữa hai hay nhiều
máy “khác nhau” muốn trao đổi dữ liệu
với nhau (khác nhau về hệ điều hành, hệ
quản trị CSDL hay ngôn ngữ lập trình,
…)
- Dữ liệu và định dạng được lưudưới dạng text nhưng HTML lạikhông có tính cấu trúc mà chỉ tậpchung vào việc hiển thị dữ liệu nên
nó rất kém trong việc trao đổi dữliệu
- Tách dữ liệu và phần trình bày
nhờ phối hợp dữ liệu XML với bảng định
kiểu CSS (cascadinh style Language)
Do vậy dễ dàng cho việc bảo trì đối với
các trang web có nội dung cần cập nhật,
thay đổi thường xuyên
- Không cung cấp tính năng táchbiệt dữ liệu với phần trình bày Do đókhó khăn cho việc bảo trì các trangweb có nội dung thay đổi, cập nhậtlại thường xuyên
- Khả năng định dạng nội dung các
thẻ một cách tùy ý do đó XML không bị
hạn chế bởi số thẻ và còn tạo ra khả năng
tự mô tả dữ liệu
- Nội dung các thẻ bị cố địnhnên bị hạn chế bởi số thẻ và đươngnhiên là không có khả năng mô tả dữliệu
- Tài liệu XML hợp khuân dạng
Lược đồ XML (XML Schema):
Trang 15Để các hệ thống khác nhau có thể trao đổi với nhau bằng tài liệu XML Các
hệ thống cần phải kiểm tra xem nội dung, cấu trúc tài liệu XML này có phù hợpvới cấu trúc hệ thống đó không? Để làm được điều này cần một lược đồ XML.Một trong những ưu điểm nổi bật của lược đồ XML là nó cho phép địnhnghĩa và khai báo kiểu dữ liệu thực sự mà muốn sử dụng Tuy nhiên lược đồ XML
là đặc tả mới phát triển sau này, hiện chưa có nhà phát triển nào hỗ trợ nó mạnh
mẽ bằng Microsoft, cài đặt lược đồ XML đầy đủ nhất chính là trình duyệt InternetExplorer
Ví dụ về lược đồ XML:
Khai báo một phần tử có tên là product, và kiểu ProductType
Khai báo một kiểu phức hợp mới
<xsd:element name=“number” type=“xsd:integer”/>
<xsd:element name=“size” type=“SizeType”/>
Trang 161.3.2 WSDL -Web Services Description Language
WSDL định nghĩa cách mô tả Web service theo cú pháp tổng quát XML, baogồ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 Webservice
- 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 1.2 Cấu trúc WSDL
1.3.2.1 Giao diện của dịch vụ (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 >
Trang 17c Kiểu cổng (port type):WSDL mô tả cách gửi và nhận thông điệp
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ụ:
<wsdl:definitions >
Trang 18<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"/>*
- 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êntrong kiểu cổng phải nằm trong phạm vi mối kết hợp
1.3.2.2 Sự thi hành của dịch vụ (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 tingiao diện và cách gọi Web services theo thủ tục và phương thức nào:
Trang 19Ở đây 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 trongphầ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
Ví dụ về 1 file WSDL :
Nếu chúng ta có 1 file interface trên java là
public interface BookQuote {
public float getBookPrice(String isbn);
<input name="isbn" message="mh:GetBookPriceRequest"/>
<output name="price" message="mh:GetBookPriceResponse"/>
</operation>
</portType>
<! binding tells us which protocols and encoding styles are used >
<binding name="BookPrice_Binding" type="mh:BookQuote">
Trang 201.4 UDDI (Universal Description , Discovery and Integration)
Để có thể sữ dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhậnthô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ácclient truy tìm và nhận lại những thông tin yêu cầu sử dụng web services
UDDI cung cấp những thông tin về doanh nghiệp hoặc dịch vụ mà doanhnghiệp hoạt động,Web Service mà doanh nghiệp cung cấp.UDDI gồm thông tinchi tiết về API để tìm kiếm và publish dịch vụ,cung cấp thông tin và đại chỉ củaWeb Service để khi sử dụng khai thác dịch vụ
Cấu trúc UDDI:
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 yếucủa Web services , chẳng hạn tên giao dịch , địa chỉ ,… Những thông tin này chophé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ữngchủng loại khác nhau Những thông tin này cho phép các đối tượng thấy Webservices theo từng chủng loại của nó
Trang 21Trang xanh -Green pages: chứa thông tin kỹ thuật mô tả các hành vi và cácchức năng của Web services Các đối tượng dựa vào đặc điểm của Web services
để tìm kiếm
Loại dịch vụ - tModel: chứa các thông tin về loại dịch vụ sử dụng
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ý
IBM Test Registry: bộ đăng ký cho những người phát triển để thử nghiệmcông nghệ và kiểm tra những service của họ
Private registries IBM ships: bộ đăng ký UDDI cá nhân
1.5 SOAP - Simple Object Access 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 truy xuất dịch vụ khi tìm thấy? Câu trả lời là Web servicves có thể truy xuấtbằng một giao thức là Simple Object Access Protocol – SOAP Nói cách khác 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 địnhdạ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.2vớ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úcxươ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ànhkhác nhau
1.5.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
Trang 22- Không có tập hợp những dữ liệu vô nghĩa (garbage collection) nằm phântá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ôngnghệ 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
1.5.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 1.3 Cấu trúc message SOAP
Message theo dạng SOAP là một văn bản XML bình thường bao gồm cácphần tử sau:
- Phần tử gốc - envelop: phần tử bao trùm nội dung message , khai báo vănbả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ể mangnhữ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ữngcài đặt cho giao tác
Trang 23- Phần tử khai báo nội dung chính trong thông điệp - body, chứa các thông tinyê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 qúa 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
Ví dụ về Request messages và Response messages của SOAP:
</m:GetSpecieKingdomResponse>
</soap:Body>
Trang 24</soap:Envelope>
1.5.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ớpthấ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 trongRPC và document là khác nhau Nên việc quyết định chọn cái nào tùy thuộc vàothời gian xây dựng và sự phù hợp của service cần xây dựng
1.5.4 Mô hình dữ liệu
Mục đích của mô hình dữ liệu SOAP là cung cấp những một sự trừu tư ợnghó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
1.5.5 Mã hóa
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ôndạng nghi thức cho những Web service là XML, giả sử ở đây chúng ta giả thiếtrằng service requestor và service provider phát triển trong Java Vì vậy, mã hóaSOAP là trong môi trường thực thi để làm thế nào chuyển đổi từ cấu trúc dữ liệuJava sang SOAP XML và ngược lại Một ánh xạ định nghĩa là mối quan hệ giữamộ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 ở trên.Một ánh xạ chỉ rõ làm cách nào, để khi đã mã hóa mà một phần tử XML đầuvà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 haiphương hướng ánh xạ là XML tới Java và Java tới XML Bất kỳ môi trường thực
Trang 25thi 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óanhất định, thì một ánh xạ tương ứng phải tồn tại trong bộ đăng ký (registry) củamôi trường thực thi SOAP đó Đa số các kiểu Java chuẩn cũng như JavaBeans đềumặc định là được hỗ trợ
Những kiểu dữ liệu không chuẩn (do tự định nghĩa) thì cần ánh xạ trên cảserver và client
1.6 Sự liên kết lỏng
Đối với những hệ thống phân tán truyền thống các máy tính hoạt động trongmột môi trường phân tán với “sự liên kết chặt” - “Tightly coupled” Mỗi máy tínhkết nối với nhau trong một môi trường phân tán qua sự kết hợp của những giaodiện và các giao thức mạng quen thuộc Nó gặp nhiều khó khăn, chi phối nhiềuthời gian và tốn kém cho việc ngừng kết nối và kết nối lại các máy tính trong một
hệ thống bởi vì nhiều môi trường máy tính có những giao diện hoạt động khácnhau
Trái ngược với các hệ thống trên, Web service thực hiện việc “liên kết lỏng”.Lược đồ sau sẽ minh hoạ hiệu quả của Web service trong việc liên kết lỏng:Trong phần 1 của lược đồ, một máy tính nhỏ (Minicomputer) truy cập một dịch vụWeb trên máy tính lớn (Mainframe), sau đó ta thay thế mainframe này bằng mộtmáy tính SunServer (Xem phần 2 của lược đồ), việc kết nối vẫn diễn ra, dịch vụvẫn được thực hiện mà máy tính minicomputer vẫn không hề “biết” máy tính lớn
đã được thay Minicomputer vẫn nói chuyện với giao diện SOAP (SOAP Interface– là giao diện nằm ngay cạnh máy tính mainframe), chính giao diện này làm chominicomputer không thấy sự thay đối bên phía máy tính lớn và làm chominicomputer vẫn tiệp tục truy cập dịch vụ Web mà không quan tâm đến sự thayđổi phía bên kia Trong phần 3 và phần 4 các máy tính phía trên được thay thế bởicác máy tính Windows hay máy Sunserver nhưng việc truy cập Web service vẫndiễn ra tiếp tục diễn ra đều đặn thông qua giao diện SOAP
Trang 26Hình 1.4: Sự “liên kết lỏng” trong Web service
1.7 Tính trong suốt trong mạng
Bởi vì liên kết giữa các dịch vụ mạng là “lỏng” và bởi vì những dịch vụmạng khách hàng và nhà cung cấp gởi thông điệp tới nhau đều sử dụng nhữnggiao thức Internet mở, những dịch vụ đó cung cấp tính trong suốt trên toàn mạngtức là các dịch vụ kết nối với nhau không phụ thuộc vào hệ thống mạng
Một dịch vụ mạng có thể được đặt trên bất cứ máy tính nào được kết nốiInternet Chẳng hạn khi bạn thăm trang Amazon.com, bạn muốn mua một cuốnsách bạn thực sự không quan tâm hay không cần biết đến những ứng dụng mà bạnđang truy cập trên trình duyệt của bạn được đặt ở đâu mà tất cả những gì bạn cầnbiết là một địa chỉ chính xác để truy cập Tương tự như vậy Web service có thểđược đặt trên hai vùng khác nhau, nếu vì một vài lý do nào đó vùng A không sẵnsàng khi đó máy tính tiêu dùng (consuming computer) có thể truy cập tới vùng B
để thực hiện công việc cần làm (Minh hoạ trong hình dưới), do vậy cần sửa lại địachỉ URL của dịch vụ mạng trong tài liệu WSDL và ràng buộc máy tính tiêu dùngvào địa chỉ mới của dịch vụ mạng (Web service) trong vùng B
Trang 27Hình 1.5: Thể hiện tính trong suốt mạng cho phép Web service có thể được đăt ở bất cứ nơi nào trên mạng hay nhóm mạng.
1.8 Kết luận
Để tạo một Web service cần xây dựng các tầng cần thiết trong kiến trúc Web service hay nói cách khá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 , XML , trong đó:
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ộtmessage XML
WSDL là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML Webservice sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữ liệu chocá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 haynói cách khác một service cần phải được đăng ký để cho phép các client có thể gọithực hiện
Trang 28Bên cạnh đó cũng phải quan tâm đến việc làm sao để cho các service có tính
an toàn , toàn vẹn và bảo mật thông tin trong Web services nhất là các service liênquan đến giao dịch thương mại và tài chính
Một trong những yếu điểm của Web service là không trạng thái (stateless).Nghĩa là sau khi một Web service phục vụ xong một yêu cầu từ một client, mọitrạng thái của lần phục vụ đó sẽ ko được lưu lại cho lần sau (cũng giống nhưHTTP là giao thức stateless) Để khắc phục, một Web service sẽ được gắn vớimột tài nguyên (Resource) Resource này sẽ lưu lại toàn bộ thông tin mà clientmuốn
Chương tiếp theo sẽ giới thiệu những đặc tả WS- RESOURCEFRAMEWORK một tập hợp những đặc tả Web service mà định nghĩa cách tiếpcận Web Service-Resource
Trang 29CHƯƠNG 2: TÌM HIỂU VỀ WS- RESOURCE FRAMEWORK
2.1 Giới Thiệu Về WS- Resource FrameWork
WS- Resource FrameWork tạm dịch là khung làm việc tài nguyên dịch vụweb là một cách để sử dụng những tài nguyên có trạng thái trong môi trườngkhông trạng thái của Web service
Web service có thể làm cho việc đưa thông tin từ nơi này đến nơi khác dễdàng hơn Một vấn đề với những giải pháp, tuy nhiên Web service vốn dĩ tự nhiênkhông có trạng thái, không có sự kết nối lâu dài
Không phải không có cách để biểu thị trạng thái của một ứng dụng Webservice Thật ra có rất nhiều cách, chúng chính là một phần của vấn đề Để tạo ramột cách chuẩn để làm điều đó, WS- RESOURCE FRAMEWORK đã chuẩn hóavới mục đích sử dụng Web service để thao tác tài nguyên có trạng thái WS-RESOURCE FRAMEWORK đưa môi trường mà hay biến đổi đó vào trong mộtthứ trong đó bạn có thể tạo một tài nguyên lâu dài và quản lý nó thông qua Webservice Tuy nhiên khái niệm tài nguyên có trạng thái hoạt động theo sự thi hànhcủa Web service là không rõ ràng trong định nghĩa giao diện của nó Những thôngđiệp mà Web service gửi và nhận bao hàm sự tồn tại liên quan tới kiểu của tàinguyên có trạng thái Nó mong muốn định nghĩa một quy ước để cho phép có thểkhám phá, xem xét và tương tác với tài nguyên có trạng thái trong một cách chuẩn
mà có thể tương tác được
Ví dụ về WS-Resource framework:
Trang 30Giả sử bạn muốn trưng bày một máy in
như một tài nguyên mà có thể được
quản lý bằng cách sử dụng Web service
Có thể viết một Web service bằng
WSDL để biểu diễn một máy in
Một trao đổi thông điệp SOAP đơn giản
có thể được sử dụng để lấy, hoặc đặt
một trạng thái cho máy in
Điều gì xảy ra nếu có nhiều máy in
trong một phạm vi (trong một cơ quan
chẳng hạn)
Cần phải có một cách để cho phép diễn
tả tài nguyên máy in đó- bằng cách tạo
ra một WSDL phức tạp hơn
Một trao đổi thông điệp phức tạp hơn để
nhận dạng tài nguyên máy in đích
Có thể ta muốn quản lý một server, hay ứng dụng trên server, hay nhữngthiết bị lưu trữ Mỗi kiểu tài nguyên có một giao diện và những sự điều hành
để trưng bày thuộc tính và trạng thái của chúng Vậy làm thế nào để quản lýnhững tài nguyên khác nhau đó
Trang 31Hình 2.1 cho ta thấy WS-Resource framework hỗ trợ nhiều client và biểu diễnnhững tài nguyên WS-Resource framework khác nhau.
Hình 2.1: WS-Resource framework hỗ trợ nhiều client và biểu diễn nhiều loại tài nguyên khác nhau
Nhận định này thúc đẩy cách tiếp cận Web service để tạo ra một mô hìnhtrạng thái trong bối cảnh Web service Một Web Service-Resource được địnhnghĩa như sự hợp thành của Web service và một tài nguyên có trạng thái, đượcbiểu thị như một sự kết hợp của một tài liệu XML được định nghĩa kiểu với kiểucổng (portType) của Web service, địa chỉ, sự truy cập tùy theo mẫu tài nguyên,một quy ước sử dụng một tham chiếu điểm kết thúc (endPoint reference) để định
vị Web service Trong mẫu tài nguyên mặc định, một định danh tài nguyên cótrạng thái được đóng gói trong một endPoint reference và được sử dụng để xácđịnh tài nguyên có trạng thái sử dụng trong quá trình trao đổi thông điệp trongWeb service WS-Resource framework cho phép WS-Resource được công khai,được tạo ra, được thay đổi, được truy nhập, được theo dõi sự thay đổi, và đượchủy qua cơ chế quy ước Web service, nhưng không đòi hỏi những thành phầnWeb service của WS-Resource, mà nó sẽ cung cấp sự truy cập liên quan đến tàinguyên có trạng thái đựơc thực hiện như một bộ xử lý thông điệp trạng thái Trongphần này tôi giới thiệu về khung làm việc tài nguyên dịc vụ web (Web service-Resource framework), gồm một tập hợp những đặc tả kỹ thuật mà định nghĩa sự
mô tả tiêu chuẩn cách tiếp cận với WS-Resource trong những trao đổi thông điệpWeb service đặc biệt và liên quan tới những định nghĩa XML, chúng bao gồm:
Trang 32- Thời gian tồn tại của một tài nguyên dịch vụ web (Web ResourceLifetime): một WS-Resource có thể bị hủy đồng thời với yêu cầu hủyhoặc thông qua cơ chế dựa trên thời gian được hoạnh định để hủy, và theo lýthuyết những thuộc tính tài nguyên có thể được sử dụng để kiểm tra và thei dõithời gian tồn tại của WS-Resource.
Service Thuộc tính tài nguyên dịch vụ web (WSService ResourceProperties): kiểuđịnh nghĩa của WS-Resource có thể soạn ra từ sự miêu tả giao diện Web service
và tài liệu thuộc tính tài nguyên XML, và trạng thái của WS-Resource có thể đượchỏi và sửa đổi qua những trao đổi thông điệp
- WS- RenewableReferences: một endPoint reference (định vị Webservice) có thể được làm mới lại những sự kiện hoặc những thông tin về chínhsách chứa trong nó mà đã bị cũ hoặc sai lệch
- WS- ServiceGroups: một tập hợp sự hỗn tạp tham chiếu bởi Webservice có thể được định nghĩa
- WS- BaseFaults: một báo cáo lỗi có thể được làm một cách chuẩn hóahơn thông qua sử dụng kiểu giản đồ XML để những lỗi và những quy tắc cơ bảnđược sử dụng và mở rộng như thế nào bởi Web service
2.2 Tài nguyên dịch vụ web (WS-Resource)
Tài nguyên có trạng thái:
Một tài nguyên có trạng thái là cái gì đó tồn tại, thậm chí khi bạn không phảiđang tương tác với nó Một cơ sở dữ liệu tồn tại chẳng hạn, thậm chí bạn khôngphải đang truy vấn nó
Điều nữa, để hiểu được khái niệm tài nguyên có trạng thái là nó bao gồmnhững thuộc tính Khi bạn được hỏi để trả lại một đối tượng trong cùng trạng thái
mà những gì bạn mượn nó, nó bao gồm những giá trị thuộc tính nhất định, ví dụnhư mức độ tình trạng sạch sẽ, nhu cầu sửa chữa, hoặc số lượng nào đó Tàinguyên có trạng thái cũng giống như vậy, chúng bao gồm những thuộc tính màđịnh nghĩa những trạng thái của chúng, và những thuộc tính đó tương tác vớichúng như thế nào
Trang 33Một tài nguyên có trạng thái có thể được tạo, được gán với một thực thể hay
bị hủy
Hình 2.2 cho ta thấy trạng thái không được lưu lại sau mỗi lần Request
Hình 2.2: Trạng thái không được lưu lại
Hình 2.3 cho ta thấy trạng thái được lưu lại sau mỗi lần Request
Trang 34Hình 2.3: Trạng thái được lưu lại
Web services + stateful resource = WS-Resource:
Một tài nguyên Web service là sự kết hợp của tài nguyên có trạng thái và mộtWeb service, và chúng ta thao tác nó bằng những yêu cầu và thiết đặt cho chúngnhững thuộc tính
2.3 Định vị một dịch vụ Web (Web Service-Addressing)
Nó dùng để chỉ rõ địa chỉ của một Web service Tất cả những gì bạn cần làmột địa chỉ URL, và tất cả những thông tin khác được bao gồm trong một headerSoapAction hoặc bản thân thông báo đó Ngày nay, với những ứng dụng Webservice trở lên ngày càng tăng và phức tạp Điều gì xảy ra nếu bạn đựơc yêu cầu
sự trả lời gửi đâu đó khác với người yêu cầu gốc? Hay cái gì xảy ra nếu thông tinkhác, như định danh của một phiên, cần thiết để xác định vị trí thực sự
Hay điều gì xảy ra nếu bạn đơn giản cần gắn một thể hiện đặc biệt của webservice? Như vậy sẽ cần một cách để xử lý nó
Web Service-Addressing cung cấp một cách để chỉ rõ thông tin về vị trí củaURL Nó cung cấp cách chuẩn hóa để thêm nhiều thông tin vào một thông báoSOAP
- Tham chiếu đến điểm kết thúc (Endpoint references):
Trang 35Phần này sẽ giới thiệu khái niệm Endpoint references: là một cách chỉ rõ
thông tin cần có tới một thông báo tới đúng chỗ với thông tin phải có sự liên hệ
Ví dụ endPoint reference trong thông điệp sau:
2.4 Thời gian tồn tại của tài nguyên dịch vụ web (Web
Service-ResourceLifetime)
2.4.1 Hủy một tài nguyên Web service
Web Service-Resource có một vòng đời Những tài nguyên được sinh ra khichúng được yêu cầu và hủy khi không cần
Nghĩa là, nếu được thiết lập và sử dụng đúng cách, tất cả những tài nguyênđược tạo ra cho đến lúc có thể trực tiếp được hủy, bằng cách sử dụng một thôngđiệp hủy Trong trường hợp này máy khách gửi một thông điệp hủy và chờ đợi đểlắng nghe những chỉ dẫn để thực hiện
Tuy nhiên đôi khi đó không phải là điều chúng ta muốn Có lẽ chúng ta chỉ muốntài nguyên thoát ra theo danh nghĩa trong một giai đoạn Không có vấn đề nếuchúng được kết nối tới hệ thống Hay có lẽ chỉ muốn Web Service-Resource “timeout” nếu không sử dụng nó trong một thời gian ngắn, hay trong chốc lát
Cả hai tình trạng tức thời và được hoạch định để hủy, có thể được xử lý bằngcách sử dụng công nghệ Web Service-ResourceLifetime
Trang 36Trong mọi trường hợp, điều quan trọng là ta phải hiểu được rằng chỉ WebService-Resource - sự kết hợp giữa tài nguyên có trạng thái và Web service – là bịhủy Còn bản thân tài nguyên và Web service chúng đều không bị ảnh hưởng.
- Tạo một một tài nguyên web service:
Ta có thể gửi đi một thông điệp “tạo” “create”:
Endpoint này chỉ tới để xác định duy nhất Web Service-Resource, vì vậy ta
có thể sử dụng nó để hủy Web Service-Resource đó
- Hủy một Web Service-Resource:
Trang 37Khi chúng ta sẵn sàng để hủy một tài nguyên web service, có thể sử dụngendPoint reference để tạo một yêu cầu SOAP:
Trang 38Trông chúng không có vẻ là một sự ghi nhận, trừ phi chúng ta nhận được nó.
Ai cũng biết rằng mọi thứ cần được làm việc đúng cách Nếu như mọi thứ làmviệc không đúng cách, sẽ cần đưa ra một trong những thông báo lỗi, được bàn luậntrong WS- RESOURCE FRAMEWORK faults Và cũng sẽ đưa ra một thông báolỗi nếu cố gắng truy cập đến một tài nguyên Web service sau khi chúng đã bị hủy
2.4.2 Lập biểu cho sự hủy một tài nguyên web service
Không phải lúc nào cũng muốn hủy một tài nguyên Web service tại một chỗ.Trong một số trường hợp, đơn giản chỉ muốn giữ sự hoạt động của một tài nguyênWeb service tại một thời điểm đặc biệt Một người yêu cầu có thể miễn cưỡng hủymột WS-Resource ngay lập tức và đồng bộ, hoặc có thể không có khả năng để làm
gì trong môi trường tính toán phân tán, bởi vì người yêu cầu đã ngắt kết nối từđiểm cung cấp dịch vụ Như vậy ngoài khả năng để hủy một WS-Resource ngaylập tức, ta sẽ định nghĩa một phương pháp của WS-Resource mà có thể hoạnh địnhthời điểm kết thúc ở tương lai Sử dụng endPoint reference phân loại WS-Resource Một người yêu cầu đầu tiên có thể thiết lập và sau đó làm mới lại hoạchđịnh thời điểm kết thúc của WS-Resource Khi thời gian đó hết hạn, bản thân WS-Resource có thể hủy mà không cần yêu cầu đồng thời hủy từ người yêu cầu dịch
vụ Một người yêu cầu dịch vụ có thể định kỳ cập nhật hoạch định thời điểm kếtthúc để điều chỉnh thời gian tồn tại của WS-Resource WS-Resource có thể hỗ trợkhả năng để dàn xếp hoạch định ban đầu thời điểm kết thúc khi WS-Resourceđược tạo Sau đó, người yêu cầu dịch vụ được ủy quyền có thể sử dụng endPointreference phân loại WS-Resource để yêu cầu sự hoạch định thời điểm kết thúc nàyđược thay đổi, bằng cách gửi đi một thông điệp yêu cầu WS-Resource Nếu tớithời điểm kết thúc của WS-Resource, nó có thể bị hủy và bất kỳ tài nguyên hệthống liên quan có thể được cải tạo
Thời điểm kết thúc của WS-Resource có thể thay đổi một cách không đơnđiệu Điều đó có nghĩa là một người yêu cầu dịch vụ có thể yêu cầu một thời điểmkết thúc đó sớm hơn thời điểm kết thúc đã được đặt ra Nếu yêu cầu thời điểm kếtthúc trước thời gian hiện tại, yêu cầu phải được làm sáng tỏ như một yêu cầu tứcthời, nhưng nó không đồng thời hủy WS-Resource
Trang 392.5 Thuộc tính tài nguyên Web service (WS-ResourceProperties)
Đặc tả WS-ResourceProperties định nghĩa những kiểu và những giá trị nhữngthành phần trạng thái WS-Resource mà có thể được nhìn nhận và sửa đổi bởingười yêu cầu dịch vụ thông qua một giao diện Web service Nó bao gồm:
- Web service-Resource có một tài liệu thuộc tính tài nguyên XML đượcđịnh nghĩa để sử dụng giản đồ XML
- Người yêu cầu dịch vụ có thể xác định một kiểu của WS-Resourcebằng việc khôi phục định nghĩa WSDL portType bằng những phương tiện têuchuẩn
- Người yêu cầu dịch vụ có thể sử dụng những trao đổi thông điệp Webservice để đọc, thay đổi và truy vấn tài lieu XML đại diện cho trạng thái WS-Resource
Tôi sử dụng thuật ngữ thuộc tính tài nguyên để đề cập đến một thành phầnriêng lẻ của trạng thái Web service Tôi gọi là tài liệu XML mô tả kiểu của một tàinguyên có trạng thái thành phần của WS-Resource hay tài liệu thuộc tính tàinguyên
2.5.1 Tài liệu thuộc tính tài nguyên (WS-Resource properties document)
Tài liệu dùng để định nghĩa cấu trúc dựa trên thông điệp truy vấn và cập nhậtcủa người yêu cầu dịch vụ ban đầu Bất kỳ thao tác mà điều khiển thuộc tính tàinguyên qua tài liệu thuộc tính tài nguyên phải được phản ánh trong sự thi hànhthực sự của trạng thái WS-Resource Tài liệu thuộc tính tài nguyên WS-Resourceđược mô tả để sử dụng giản đồ XML Đặc biệt, tài liệu thuộc tính tài nguyên WS-Resource được biểu thị như một phần tử XML chung Ví dụ xem xét một tàinguyên có trạng thái có tên là “C” Nếu trạng thái của “C” gồm ba thành phầnthuộc tính tài nguyên, tên là p1, p2, p3, là những tài liệu thuộc tính tài nguyên, cótên là “ExampleResourceProperties”, có thể được định nghĩa như sau:
Trang 40>
<xs:element name="p1" type= … />
<xs:element name="p2" type= …/>
<xs:element name="p3" type= … />
Nhưng người yêu cầu dịch vụ biết tên đó như thế nào
“ExampleResourceProperties” định nghĩa tài liệu thuộc tính tài nguyên của Resource như thế nào?
WS-Tài liệu thuộc tính tài nguyên khai báo WS-Resource xuất hiện trong địnhnghĩa portType WSDL của thành phần Web service
Hình 2.4 minh họa một tài liệu thuộc tính tài nguyên của một máy in