BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC HỆ PHÂN BỐ ĐỀ TÀI MIDDLEWARE GVHD NGUYỄN THIÊN BẢO NHÓM THỰC HIỆN NHÓM 12 Học kỳ I Năm học 2[.]
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁOMÔN HỌC: HỆ PHÂN BỐ
Trang 2Mục lục
WEB SERVICES 3
1 GIỚI THIỆU VỀ WEB SERVICES 3
2 Đặc điểm mô hình phân tán sử dụng Web services 3
a Đặc điểm của Web services 3
b Ưu điểm và nhược điểm 4
3 Mô hình hoạt động và kiến trúc giao thức của Web services 5
3.1 Mô hình hoạt động của Web services 5
3.2 Kiến trúc giao thức của Web services 5
4 Các thành phần của Web services 7
4.1 XML 7
4.2 WSDL 9
4.3 UDDI 12
4.4 SOAP 14
PEER TO PEER 17
1 Khái niệm: 17
2 Đặc điểm: 17
3 Nhược điểm hệ thống P2P 18
4 P2P Middleware 18
5 Yêu cầu của P2P Middleware 18
6 Routing overlays 19
7 PASTRY 20
8 TAPESTRY 25
Trang 3WEB SERVICES
1 GIỚI THIỆU VỀ WEB SERVICES
Web services là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, được mô tả bằng XML, Web services có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin theo yêu cầu của người dùng Các chức năng này có thể được yêu cầu bởi các Client bằng cách sử dụng giao thức SOAP thông qua HTTP
Web services độc lập về ngôn ngữ và nền tảng bởi vì nó tách biệt đặc tả ra khỏi cài đặt Web services dựa trên cấu trúc phân tán trong đó không có bất kì dịch vụ xử lý trung tâm nào và tất cả dạng truyền thông đều sử dụng các giao thức chuẩn
Một trong những đặc tính quan trọng của mô hình tính toán dựa trên Web services là ở đó cả các client và Web services đều không cần biết cài đặt của nhau
Đ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 đâynhư Win32, J2EE,… là ở sự chuẩn hoá Web services sử dụng XML, một ngôn ngữ độc lập trong việc biểu diễn dữ liệu, làm ngôn ngữ trao đổi thông tin Bởi vậy khi được kết hợp với nhau, khả năng tích hợp phần mềm, tính liên tác và sử dụng lại của các hệ thống theo mô hình Web Services thật đáng kinh ngạc
2 Đặc điểm mô hình phân tán sử dụng Web services
a Đặc điểm của Web services
Dịch vụ Web cho phép Client và Server tương tác được với nhau ngay cả trong những môi trường khác nhau Đó là vì Web service sử dụng XML, một chuẩn mở đã được công nhận và có thể được hiểu bởi bất kỳ ngôn ngữ lập trình nào
Giao diện của dịch vụ Web được xuất bản thông qua tài liệu WSDL Tài liệu này định nghĩa cấu trúc thông điệp trao đổi và cấu trúc dữ liệu sử dụng trong thông điệp đó Đây là một trong những đặc tính then chốt làm nên thành công cho Web services Web service không đòi hỏi phía client phải cài đặt bất cứ một thành phần mới nào Còn ở phía server, để triển khai Web service thì chỉ cần có Servlet engine, Apache hoặc NET Runtime,…Khi đã được triển khai thì client có
Trang 4thể sử dụng ngay các dịch vụ Điều này khác với các công nghệ khác như DCOM hay RMI, khi mà client phải cài đặt Client stub để có thể truy cập dịch vụ.
Dựa trên các chuẩn mở: XML, SOAP, WSDL, UDDI Web services được phát hành, xác định và gọi đều thông qua môi trường Web Trong đó các mô tả
về dịch vụ được xuất bản sử dụng WSDL, người dùng tìm kiếm và xác định dịch
vụ nhờ sự trợ giúp của UDDI và yêu cầu dịch vụ bằng SOAP Tất cả các giao thức này đều dựa trên Web
b Ưu điểm và nhược điểm
i Ưu điểmCung cấp khả năng tương tác rộng lớn hơn: Web service có thể được truy xuất bởi con người thông qua trình duyệt web, bởi các ứng dụng chạy trên các nền tảng khác nhau và thậm chí là cả các web service khác
Dựa trên các chuẩn mở đã được chấp nhận rộng rãi, giúp cho các lập trìnhviên dễ dàng hiểu được
Nâng cao khả năng tái sử dụng và đóng gói lại phần mềm trong giao diện Web Service
Tạo ra sự kết nối linh hoạt, mềm dẻo giữa các thành phần trong hệ thống,giảm độ phức tạp của hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán
Thúc đẩy sự phát triển của các hệ thống tích hợp, dẫn đến khả năng phát triển hệ thống nhanh với giá thành hạ, nhờ có sự tương tác hiệu quả với các phần mềm, hệ thống khác thông qua dịch vụ Web
ii Nhược điểmWeb Services phụ thuộc vào môi trường web, vì vậy khi một Web Service không hoạt động sẽ gây ảnh hưởng tới tất cả các ứng dụng phụ thuộc và sử dụng dịch vụ nó cung cấp
Web Service dựa trên quá nhiều chuẩn mở khiến người dùng, người phát triển hệ thống khó nắm bắt và cập nhật
Vấn đề an toàn và bảo mật của Web Service cũng cần được quan tâm, ngoài việc bảo vệ an toàn thông tin trước hacker khi truyền qua môi trường mạng, còn cần lưu tâm đến an toàn thông tin giữa các bên cung cấp dịch vụ
Trang 53. Mô hình hoạt động và kiến trúc giao thức của Web services3.1 Mô hình hoạt động của Web services
3.1.2 Hoạt động của Web services
Trong mô hình hoạt động của dịch vụ Web, có ba thực thể cơ bản là: bên cung cấp dịch vụ (Service provider), bên sử dụng dịch vụ (Service requestor) và đơn vị quản lý đăng ký dịch vụ (Service registry)
Service provider có một dịch vụ, nó sẽ phát hành giao diện và mô tả dịch
vụ đó Dịch vụ này được đăng ký với thực thể Service registry bằng cách gửi mô
tả dịch vụ tới đó Mô tả dịch vụ này chứa tất cả các thông tin cần thiết để một Service requestor có thể tìm thấy và sử dụng dịch vụ, bao gồm kiểu dữ liệu, giaodiện mô tả các hàm chức năng, địa chỉ của dịch vụ trong mạng, thông tin cần thiết để thiết lập kết nối Các bên sử dụng dịch vụ có thể tìm kiếm dịch vụ mình cần trên Service registry – được mô tả sử dụng UDDI (Universal Description, Discovery and Integration)
3.2 Kiến trúc giao thức của Web services
3.2.1 Các chuẩn của dịch vụ Web
Dịch vụ Web gồm có 3 chuẩn chính: SOAP (Simple Object Access
Protocol), WSDL (Web Service Description Language) và UDDI(Universal
Description, Discovery, and Integration) Trong đó UDDI được sử dụng để đăng
ký và khám phá dịch vụ Web đã được miêu tả cụ thể trong WSDL
Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP
Trang 6Tầng mô tả dịch vụ (Service Description): được sử dụng để miêu tả giao diện chung cho một dịch vụ Web cụ thể WSDL là ngôn ngữ được sử dụng để phục vụ cho mục đích này, đó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML Web Service sử dụng ngôn ngữ này để truyền tham số và các kiểu dữ liệu cho dịch vụ thực sự bên trong để thực thi
Tầng dịch vụ (Service): chứa cài đặt chi tiết của dịch vụ
Trang 7Tầng đăng ký dịch vụ (Service Registry) với công nghệ tiêu chuẩn là UDDI được sử dụng cho cả bên yêu cầu dịch vụ và bên cung cấp dịch vụ Một dịch vụ cần được đăng ký thì bên sử dụng mới có thể tìm thấy và sử dụng
Bên cạnh đó còn có một số tầng khác như Policy, Security, Transaction, Management phục vụ các yêu cầu về bảo mật, toàn vẹn thông tin
Quá trình kinh doanh ngôn ngữ khai thác cho các dịch vụ Web
(BPELWS) quy định cụ thể quy trình kinh doanh và các giao thức tương tác
Nó là một ngôn ngữ dựa trên XML tạo điều kiện chia sẻ nhiệm vụ trong tính toán phân tán trên nhiều tổ chức sử dụng nhiều dịch vụ Web
4 Các thành phần của Web services
4.1 XML
4.1.1 Định nghĩa XML
XML là viết tắt của chữ eXtensible Markup Language
XML là một ngôn ngữ mô tả văn bản với cấu trúc do người sử dụng định nghĩa Người sử dụng hay các chương trình có thể quy ước định dạng các tags XML (các Tags của XML chứa ý nghĩa về cấu trúc của các dữ liệu) để giao tiếp với nhau Thông tin cần truyền tải được chứa trong các tags 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ôngtin ấy
4.1.2 Cấu trúc XML
Trong một trang Web, ngôn ngữ đánh dấu HTML dùng các cặp Tags để đánh dấu vị trí đầu và cuối của các mảnh dữ liệu để giúp chương trình trình duyệt (browser) parse (ngắt khúc để phân tích) trang Web và hiển thị các phần theo ý người thiết kế trang Web Câu code HTML trên có chứa hai markup Tags,
và Mỗi cặp Tags gói dữ liệu nó đánh dấu giữa opening Tag và closing Tag Hai closing Tags ở đây là và Tất cả những gì nằm bên trong một cặp Tags được gọi
là Element Để nói thêm đặc tính của một Element, ta có thể nhét Attribute như align trong opening Tag của Element ấy dưới dạng AttributeName="value", thí
dụ như align="center" Vì Tags trong HTML được dùng để format (trình bày) tài liệu nên browser cần biết ý nghĩa của mỗi Tag Một browser hay HTML parser sẽ thu thập các chỉ thị sau từ câu HTML trên:
1 Bắt đầu một Paragraph mới và đặt Text ở giữa trang (<P align="center">)
2 Hiển thị câu Chào mừng bạn đến thăm
Trang 83 Hiển thị chữ Vovisoft cách mạnh mẽ (<STRONG>Vovisoft</STRONG>).
4 Hiển thị câu Web site
5 Gặp điểm cuối của Paragraph (</P>)
Để xử lý đoạn code HTML trên, chẳng những browser cần phải xác định vịtrí các Tags mà còn phải hiểu ý nghĩa của mỗi Tag Vì mỗi Tag có ý ngĩa riêngcủa nó, thí dụ P cho Paragraph, STRONG để nhấn mạnh, thí dụ như dùng chữđậm (Bold) Giống như HTML, XML đến từ SGML Nó cũng dùng Tags để encodedata Điểm khác biệt chính giữa HTML và XML là trong khi các Tags của HTMLchứa ý nghĩa về formatting (cách trình bày) các dữ liệu, thì các Tags của XMLchứa ý nghĩa về cấu trúc của các dữ liệu Tài liệu nầy chỉ chứa dữ liệu, khôngnhắc nhở gì đến cách trình bày Điều này có nghĩa là một XML XML parser
(chương trình ngắt khúc và phân tích) không cần phải hiểu ý nghĩa cũa các Tags
Nó chỉ cần tìm các Tags và xác định rằng đây là một tài liệu XML hợp lệ Vìbrowser không cần phải hiểu ý nghĩa của các Tags, nên ta có thể dùng Tags nào
cũng được Đó là lý do người ta dùng chữ eXtensible (mở rộng thêm được), nhưng khi dùng chữ để viết tắt thì lại chọn X thay vì e Chúng ta hãy quan sát kỹ hơn cấu trúc của một XML Trước hết, Element Order có Attribute OrderNo với value 1023 Bên trong Element Order có:
Mộ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
Đôi khi ta để một Element với tên đàng hoàng, nhưng không chứa một value, lý do là ta muốn dùng nó như một Element Nhiệm ý (Optional), có cũng được, không có cũng không sao Cách tự nhiên nhất là gắn cái closing Tags ngaysau opening Tags Có một cách khác để biểu diễn Empty Element là bỏ closing Tags và thêm một dấu "/" (slash) ở cuối openning Tags
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êucầu dich vụ (service requester) Bên yêu cầu dịch vụ sẽ sử dụng các thông tin vềgiao diện định nghĩa trong lược đồ WSDL để gọi dịch vụ web
Trang 9Một tài liệu WSDL mô tả một Web Service như một tập các đối tượng trừutượng gọi là các “ports” và “endpoint” Một tài liệu WSDL cũng định nghĩa bêntrong 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ươngthứ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ộtportType cụ thể Kế đến một port được định nghĩa bằng cách kết hợp một địachỉ 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ấybinding 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ể
-Phần giao diện mô tả giao diện và giao thức kết nối
-Phần thi hành mô tả thông tin để truy xuất dịch vụ
Hai phần trên sẽ được lưu trong 2 tập tin XML:
-Hai phần trên sẽ được lưu trong 2 tập tin XML:
Trang 10-Tập tin thi hành dịch vụ (cho phần 2).
4.2.2 Cấu trúc WSDL
Một WSDL hợp lệ gồm có hai phần :
1 Service Inteface mô tả giao diện và giao thức kết nối
2 Service Implementation 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 cho Service Interface (cho phần 1)
- Tập tin cho Service Implementation (cho phần 2)
1.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
Trang 11Thao 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 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
d 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
2.1 Tập tin thi hành - Service Implementation
WSDL mô tả 2 loại thông tin chính bao gồm: Service và port
a Service : Nó sẽ thực hiện những gì đã được định nghĩa trong tập tin giao diện và cách gọi web services theo thủ tục và phương thức nào
Trang 124.3 UDDI
Về cơ bản Universal Description, Discovery, and Intergration (UDDI) là mộttậ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
Trang 13-Thông tin kỹ thuật về Web service mà doanh nghiệp cung cấp (ví dụ nhưcách sử dụng dịch vụ được cung cấp).
4.3.1 Định nghĩa UDDI
Để 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 để chophép các client truy tìm và nhận lại những thông tin yêu cầu sử dụng webservices
Muốn sử dụng đến các dịch vụ của UDDI, bản thân UDDI cung cấp mộttập hàm API dưới dạng SOAP Web Service Tập API được chia làm hai phần:Inquiry API dùng truy vấn và Publisher API dùng đăng ký Phần API dùng để truyvấ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éptìm kiếm và duyệt thông tin trên một UDDI registry; phần còn lại dùng để xử lýlỗi gọi dịch vụ
Thành phần xử lý chính là bộ đăng ký UDDI, đó là một file XML dùng để
mô tả một thực thể kinh doanh (business entity) kèm theo các Web service đicù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 UDDIregistry thông qua Web site hoặc sử dụng các công cụ lập trình sử dụng các dịch
vụ theo đúng đặc tả UDDI API cho lập trình viên
số điện thoại, email, …) Mỗi doanh nghiệp được cấp một định danh duy nhất
-Business service: Liên kết với mỗi business entity là một danh sách cácbusiness 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