Bài giảng Phát triển phần mềm hướng dịch vụ: Phần 1

56 17 0
Bài giảng Phát triển phần mềm hướng dịch vụ: Phần 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Phát triển phần mềm hướng dịch vụ: Phần 1 có nội dung trình bày giới thiệu về tiến hóa của web hiện nay, dịch vụ web; các chuẩn cơ bản của dịch vụ web, giao thức truy nhập đối tượng đơn giản SOAP; công nghệ cho phát triển dịch vụ web; các nguyên lý tính toán hướng dịch vụ;... Mời các bạn cùng tham khảo!

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG PHẠM VĂN CƯỜNG, NGUYỄN TRỌNG KHÁNH BÀI GIẢNG PHÁT TRIỂN PHẦN MỀM HƯỚNG DỊCH VỤ HÀ NỘI 2020 Mục lục MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ III CHƯƠNG GIỚI THIỆU 1.1 1.2 1.3 1.4 TIẾN HÓA CỦA WEB HIỆN NAY DỊCH VỤ WEB WEB NGỮ NGHĨA BÀI TẬP CHƯƠNG CÁC CHUẨN CƠ BẢN CỦA DỊCH VỤ WEB 2.1 2.2 2.3 2.4 2.5 NGÔN NGỮ ĐÁNH DẤU MỞ RỘNG XML GIAO THỨC TRUY NHẬP ĐỐI TƯỢNG ĐƠN GIẢN SOAP WSDL 11 UDDI (UNIVERSAL DESCRIPTION, DISCOVERY, AND INTEGRATION) 14 BÀI TẬP 23 CHƯƠNG CÔNG NGHỆ CHO PHÁT TRIỂN DỊCH VỤ WEB 27 3.1 3.2 3.3 3.4 3.5 NỀN TẢNG CHO PHÁT TRIỂN DỊCH VỤ WEB 27 TƯƠNG TÁC GIỮA CÁC THÀNH PHẦN DỊCH VỤ 29 PHÁT TRIỂN VÀ SỬ DỤNG DỊCH VỤ WEB 30 CÔNG CỤ CHO PHÁT TRIỂN DỊCH VỤ WEB 35 BÀI TẬP 37 CHƯƠNG CÁC NGUN LÝ TÍNH TỐN HƯỚNG DỊCH VỤ 39 4.1 4.2 4.3 4.4 CÁC THỂ HIỆN ỨNG DỤNG CỦA DỊCH VỤ WEB 39 TIẾN TRÌNH NGHIỆP VỤ 42 HỢP DỊCH VỤ 47 BÀI TẬP 54 CHƯƠNG CÁC MƠ HÌNH KIẾN TRÚC 56 5.1 5.2 5.3 5.4 KIẾN TRÚC HƯỚNG DỊCH VỤ 56 KIẾN TRÚC RESTFUL 57 KIẾN TRÚC VI DỊCH VỤ 68 BÀI TẬP 82 CHƯƠNG ONTOLOGY VÀ OWL 83 6.1 6.2 6.3 6.4 6.5 KHÁI NIỆM BẢN THỂ (ONTOLOGY) VÀ TRI THỨC 83 NGÔN NGỮ MÔ TẢ NGUỒN RDF 83 BẢN THỂ HỌC OWL 84 CÔNG CỤ PROTÉGÉ CHO XÂY DỰNG OWL 90 BÀI TẬP 93 CHƯƠNG DỊCH VỤ WEB NGỮ NGHĨA VÀ OWL-S 96 7.1 7.2 7.3 7.4 7.5 BIỂU DIỄN NGỮ NGHĨA CỦA DỊCH VỤ WEB 96 BIỂU DIỄN NGỮ NGHĨA CỦA DỊCH VỤ WEB 97 CÁC KHỐI XÂY DỰNG OWL-S 97 CÔNG CỤ PROTÉGÉ CHO XÂY DỰNG OWL-S 102 BÀI TẬP 107 CHƯƠNG KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA 108 8.1 8.2 KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA 108 THIẾT KẾ CƠ CHẾ KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA 108 CHƯƠNG LỰA CHỌN DỊCH VỤ WEB NGỮ NGHĨA 114 9.1 KHÁI NIỆM LỰA CHỌN DỊCH VỤ 114 i Mục lục 9.2 9.3 LỰA CHỌN DỰA TRÊN ĐỐI SÁNH NGỮ NGHĨA 114 LỰA CHỌN DỰA TRÊN MƠ HÌNH XÃ HỘI 116 TÀI LIỆU THAM KHẢO 119 ii Danh mục từ viết tắt thuật ngữ DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ B2B B2C BPEL BPEL4WS BPML ebXML EDI HTTP IDL OWL OWL-S RDF RPC SOAP TCP UDDI URI WSCI WSDL WSML WWW XACML XML XPDL Business-to-Business Business-to-Consumer Business Process Execution Language Business Process Execution Language for Web Services Business Process Management Language Electronic Business eXtensible Markup Language Electronic Data Interchange Hypertext Transfer Protocol Interface Definition Language Web Ontology Language OWL service Resource Description Framework Remote Procedure Call Simple Object Access Protocol Transmission Control Protocol Universal Description, Discovery, and Integration protocol Uniform resource identifier Web Service Choreography Interface Web Services Description Language Web Service Markup Language World Wide Web eXtensible Access Control Markup Language EXtensible Markup Language XML Process Definition Language iii CHƯƠNG 1.1 GIỚI THIỆU TIẾN HÓA CỦA WEB HIỆN NAY Mặc dù World-Wide Web (WWW) sử dụng người Tuy nhiên, theo hầu hết chuyên gia nhà sáng lập WWW, Tim Berners-Lee, cho WWW phải tiến hóa để hệ thống máy tính sử dụng Sự tiến hóa trông đợi từ việc thiết kế, phát triển triển khai dịch vụ Web Cụm từ dịch vụ Web để tiêu chuẩn cho phép tích hợp ứng dụng web mà ứng dụng sử dụng thành phần khác để tạo thành dịch vụ Các thành phần Web ngày trở nên phổ biến (ubiquitous), phân tán (distributed), khơng đồng (heterogeneous) có xu tự trị (autonomous) Ban đầu, thành phần môi trường trang Web Nói cách khác, trang Web cung cấp nội dung dịch vụ Nhưng ngày nhiều tương lai Web trở nên ngày tiến hóa thành phần ngày có khả tùy biến Trong thành phần Web cho phép người dùng dễ dàng tương tác chí thành phần tương tác với chương trình máy tính Cụ thể, web tiến triển từ hệ với cơng nghệ trình duyệt thơng thường, hệ thứ với dịch vụ web dựa ngữ nghĩa Bảng 1.1 minh họa điều Bảng 1.1: Tiến hóa web Thế hệ web Phạm vi Tất Chương trình Theo tiêu chuẩn Ngữ nghĩa 1.2 Cơng nghệ Ví dụ thực tế Trình duyệt Các trang HTML Giao tác với Phát sinh nội dung HTML hình cách có hệ thống Các dịch vụ web Các dịch vụ mơ tả hình thức Các dịch vụ web ngữ Các dịch vụ mô tả theo nghĩa ngữ nghĩa DỊCH VỤ WEB Cũng giống khái niệm đối tượng (object) hệ trước đây, khái niệm dịch vụ (service) từ sử dụng rộng rãi Khái niệm dịch vụ có ý nghĩa khác người khác Nhưng nhìn chung dịch vụ Web (Web service) định nghĩa là: § Một phần nhà cung cấp (piece of business) truy cập thơng qua Internet cách sử dụng tiêu chuẩn mở (định nghĩa công ty Microsoft); § Bao phủ, lỏng lẻo, giao tác hàm thông qua giao thức chuẩn Web (định nghĩa cơng ty DestiCorp); § Thành phần phần mềm kết nối lỏng lẻo tương tác với thông qua chuẩn công nghệ Internet (định nghĩa cơng ty Gartner); § Một ứng dụng phần mềm nhận dạng định dạng tài nguyên thống (Uniform Resource Identifier), có giao diện bắt buộc có khả xác định, mô tả, phát ngôn ngữ đánh dấu mở rộng (XML), hỗ trợ tương tác trực tiếp với ứng dụng phần mềm khác sử dụng thông điệp XML dựa giao thức Internet (định nghĩa tổ chức W3C) 1.3 WEB NGỮ NGHĨA Tim Berners-Lee, cha đẻ World Wide Web, mô tả rằng: thành phần web khơng tập trung mà có xu hướng phân tán khắp nơi, không đồng tự trị Đó web ngữ nghĩa (Web Semantics) Thơng tin web đánh dấu (markup) lên để trình diễn hiển thị trình duyệt Con người giải thích nội dung thơng tin họ có tảng tri thức mà họ chia sẻ với người tạo trang web Trừ chương trình tạo để biểu diễn khai thác tri thức Việc xử lý vấn đề thường bị giới hạn mã chương trình lập trình sẵn (hard-coded); điều khơng phù hợp với thiết lập động (dynamic) chi tiết thơng tin web dễ dàng thay đổi theo thời gian Ví dụ, viết chương trình chép hình (screen-scraping) để trích xuất (extract) giá sách từ trang kết tìm kiếm trang thương mại điện tử amazon.com Chương trình dựa vào cú pháp trang web mã hóa theo ngữ pháp hình thức (formal gramma) Bằng trực giác, chương trình hướng dẫn để đọc giá từ trang kết phân tích cách thích hợp Tùy thuộc vào cấu trúc trang trang web định mà hướng dẫn phải thay đổi mà khơng báo trước (ad hoc) Ví dụ, thơng tin giá sách A dòng thứ 2, cột bảng thứ khung (frame) thứ vào hôm nay; hôm sau việc bổ sung thêm vài loại hàng hóa khác khiến thơng tin giá sách A khơng cịn vị trí cũ Mặc dù có số cơng cụ cho phép đơn giản hóa việc phân tích khai thác vậy, nhiệm vụ đòi hỏi cơng sức lớn lập trình viên Hơn nữa, chương trình có lỗi cấu trúc của trang Web mà đọc bị thay đổi Trong Web ngữ nghĩa, trang đánh dấu lên không với thông tin chi tiết cần hiển thi; mà đánh dấu dựa ý nghĩa nội dung Nói cách khác, ví dụ trang kết chứa giá Một chương trình trích xuất giá tìm thấy giá bố trí trang thay đổi Nói cách khác, đánh dấu Web tiến triển từ cú pháp đơn cấu trúc thông tin đến ngữ nghĩa để bắt ý nghĩa thông tin 1.4 BÀI TẬP Sử dụng công cụ lập trình Web Java Server Pages (JSP) Active Server Pages (ASP) để xây dựng Website cho cửa hàng bán sách trực tuyến Mỗi sách có thông tin tác giả, tựa đề sách, nhà xuất bản, năm xuất bản, giá Yêu cầu: - Xây dựng sở liệu quản lý sách cho cửa hàng; - Phát triển trang Web cho phép người quản trị cập nhật, bổ sung, sửa, xóa, thống kê sách bán lại theo thời điểm đó; - Phát triển trang Web cho phép người dùng tìm kiếm đặt mua sách CHƯƠNG CÁC CHUẨN CƠ BẢN CỦA DỊCH VỤ WEB Mặc dù vấn đề dịch vụ Web quan tâm; song ý tưởng cung cấp dịch vụ Web cũ Nhìn lại thấy việc cung cấp sử dụng dịch vụ Web có từ nhiều năm trước Ví dụ, danh sách địa thư điện tử người phản hồi dịch vụ mà ta đăng ký, hay catalogue trực tuyến danh sách gửi thư với chủ đề cụ thể mà ta quan tâm Sự khác biệt dịch vụ cũ dịch vụ Web đại dịch vụ cũ cần thiết phải có can thiệp người Ngày nay, dịch vụ mô tả sử dụng theo chuẩn Mơ hình kiến trúc chung cho dịch vụ Web thể hình vẽ 2.1; Nó bao gồm ba đối tượng: Nhà cung cấp dịch vụ (service provider): tạo dịch vụ Web quảng cáo cho người sử dụng tiềm đăng ký dịch vụ Web với nhà môi giới dịch vụ Môi giới dịch vụ (service broker): trì đăng ký dịch vụ xuất giới thiệu nhà cung cấp dịch vụ đến người yêu cầu dịch vụ 3- Người yêu cầu dịch vụ (service resquestor): người tìm kiếm, đăng ký yêu cầu sử dụng dịch vụ phù hợp từ môi giới dịch vụ Các kiến trúc cho dịch vụ Web thành lập nguyên tắc tiêu chuẩn để kết nối, truyền thông, mô tả, khai phá Đối với nhà cung cấp yêu cầu dịch vụ thông tin kết nối trao đổi cần thiết phải có ngơn ngữ chung Đó ngơn ngữ đánh mở rộng (eXtensible Markup Language hay XML) Một giao thức chung cần thiết cho hệ thống để giao tiếp với để người dùng yêu cầu dịch vụ giao thức truy cập đối tượng đơn giản (Simple Object Access Protocol, SOAP) Hình 2.1: Mơ hình kiến trúc chung cho dịch vụ Web Các dịch vụ phải mô tả theo định dạng máy đọc được, mà tên hàm, tham số, kết xác định Điều cung cấp ngôn ngữ mô tả dịch vụ Web (Web Services Description Language hay WSDL) Cuối cùng, người dùng doanh nghiệp cần có cách để tìm dịch vụ mà họ yêu cầu Điều giải chuẩn mơ tả, khai phá, tích hợp (Universal Description Discovery Integration hay UDDI) Bên cạnh chuẩn XML, SOAP, WSDL, UDDI cần có phương pháp cho đại diện ngữ nghĩa dịch vụ trình bày chương Trong chương ta tìm hiểu bốn chuẩn ngơn ngữ cho dịch vụ Web XML, SOAP, WSDL UDDI 2.1 NGƠN NGỮ ĐÁNH DẤU MỞ RỘNG XML Ngơn ngữ ngôn ngữ ngôn ngữ đánh dấu mở rộng XML Các thẻ XML truyền đạt thông tin ý nghĩa liệu Không mô tả cách thức liệu hiển thi trường hợp HTML XML tuân thủ cú pháp HTML, việc phân tích xử lý trở nên dễ dàng XML cung cấp thẻ để mơ tả tài liệu có cấu trúc phi cầu trúc XML cho phép truy vấn liệu cảm cấu trúc (structure-sensitive), có nghĩa truy vấn tài liệu XML dựa cấu trúc theo lĩnh vực khác Ngồi ra, liệu XML gắn thẻ xác nhận cách máy móc Nói tóm lại, XML cung cấp định dạng liệu cho tài liệu liệu có cấu trúc, khơng xác định ngữ nghĩa định dạng để chia sẻ thông tin tri thức tương tác ứng dụng khác Cú pháp XML cung cấp tập luật để mô tả nội dung khơng hiển thị nội dung, sử dụng để cung cấp cấu trúc cho liệu Một tài liệu XML tương ứng với cấu trúc Các phần tử chức (element function) đặt vào cặp dấu ngoặc Ví dụ tài liệu XML đơn giản trình bầy hình 1.1a Hình 1.1a: tài liệu XML đơn giản Trong ví dụ có thẻ mở thẻ đóng Các phần tử chứa (nesting) liệu văn chứa phần tử khác Các phần tử có số thuộc tính (attribute) mà thuộc tính gắn với giá trị Giá trị thuộc tính phải xâu kí tự (có thể đóng gói vào cặp dấu ‘ ’ “ ”) Thuộc tính đặt vào sau thẻ mở phần tử (xem ví dụ ta thấy Một tài liệu XML gồm phần tử gốc (top-level element) chứa phần tử Nói cách khác tài liệu có gốc phần tử gốc 2.2 GIAO THỨC TRUY NHẬP ĐỐI TƯỢNG ĐƠN GIẢN SOAP Dự định ban đầu SOAP phát triển để cung cấp cho máy tính nối mạng với dịch vụ gọi thủ tục từ xa (Remote Procedure Call -RPC) viết XML Nó trở thành giao thức đơn giản nhẹ để trao đổi thông điệp XML Web sử dụng HTTP (HyperText Transfer Protocol), SMTP (Simple Mail Transfer Protocol), SIP (Session Initiation Protocol) Trong thực tế, HTTP giao thức phổ biến cho SOAP lựa chọn cho chuẩn tương thích, chẳng hạn BP (Business Process) 1.0 Thơng điệp SOAP được chuyển từ bên gửi đến bên nhận Các thông điệp SOAP định dạng tài liệu XML Nói cách khác SOAP không định ngữ nghĩa ứng dụng cài đặt chi tiết mà cung cấp chế gọn nhẹ, hiệu cho phép trao đổi thơng tin có cấu trúc định dạng thành phần (components) môi trường phân tán tài liệu XML Chính lẽ mà SOAP cho phép ứng dụng chạy tảng khác trao đổi thơng tin cho Các đặc trưng SOAP bao gồm: - Tính đơn giản dễ dàng mở rộng; - Các thông điệp định dạng XML; - Giao thức truyền liệu riêng; - Kết nối bên gửi bên nhận lỏng lẻo (loosed coupling); nghĩa không cần chế tham chiếu; - Độc lập với tảng (platform independent) độc lập với ngơn ngữ lập trình Hình 2.2: Một yêu cầu SOAP việc cài đặt sử dụng lại không đơn giản Để đưa sử dụng hệ thống loại đòi hỏi hệ thống hệ thống có phải chọn giao diện hợp lệ (right interface) Bởi hệ thống phát triển tảng khác có thể, thực tế, chạy hệ điều hành khác nhau, việc tuân thủ tiêu chuẩn cho mối liên kết cần thiết cho hệ thống Chúng ta giả định việc kết nối mức thấp thực Tuy nhiên, cịn khó khăn khác giống việc phối hợp ứng dụng doanh nghiệp Một việc truyền thơng điệp (messaging) để hệ thống kết nối hoạt động Hai cần giải cấn đề ngữ nghĩa để thành phần hiểu Tuy nhiên, có thách thức khác đưa ứng dụng Đó việc cấu hình tùy chỉnh hành vi Trong trường hợp AIMS, phải gắn với mơ hình liệu bệnh viện cụ thể thuật ngữ để hiển thị hình giao diện người dùng xác cho nhân viên bệnh viện ghi lại quan sát Mơ hình điều chỉnh thủ tục bệnh viện yêu cầu áp đặt công ty bảo hiểm quan phủ giao tiếp Nếu ứng dụng thiết kế với cân nhắc sử dụng tính tốn hướng dịch vụ, sau cấu hình cách nhanh chóng đưa vào quy trình kinh doanh Tính toán hướng dịch vụ cho phép tuỳ biến ứng dụng cách cung cấp giao diện dịch vụ Web giúp loại bỏ vấn đề gửi thông điệp (messaging) đồng thời cung cấp sở ngữ nghĩa để tùy chỉnh chức ứng dụng 4.1.4 Lựa chọn động Giả sử bệnh viện muốn mua vật tư ống thông Để thực việc mua sắm có hiệu bệnh viện cần phải có khả giao dịch (phối hợp ứng dụng) với nhà cung cấp ống thông – trường hợp phối hợp ứng dụng doanh nghiệp Hiện tại, giả sử bệnh viện mua ống thơng từ nhà cung cấp có điều khoản tốt nhất, nghĩa là, dễ dàng lựa chọn đối tác Lựa chọn động kiểu ngày trở nên phổ biến linh hoạt hữu ích Nếu đối tác kinh doanh lựa chọn cách linh hoạt, sau họ lựa chọn để tối ưu hóa loại tiêu chuẩn chất lượng dịch vụ nào, hiệu suất, độ tin cậy tin tưởng Tính tốn hướng dịch vụ cho phép lựa chọn động đối tác kinh doanh dựa tiêu chuẩn chất lượng dịch vụ mà bên tùy chỉnh cho họ 4.1.5 Khả chịu lỗi phần mềm Giả sử bệnh viện thực giao dịch kinh doanh với đối tác gặp cố Sẽ tốt tương tác giao dịch sửa đổi cấu trúc động theo đối tác kinh doanh thay (mới) theo cách suốt toàn trình Mở rộng trạng thái tương tác bị mất, cần vài phương pháp phục hồi để khơi phục lại trạng thái thích hợp tiếp tục làm việc với đối tác kinh doanh Tính tốn hướng dịch vụ cung cấp hỗ trợ cho lựa chọn động đối tác khái niệm trừu tượng mà qua trạng thái giao dịch kinh doanh lưu 41 giữ xử lý linh hoạt; theo cách này, lựa chọn động khai thác để mang lại khả chịu lỗi mức ứng dụng 4.1.6 Lưới Điện tốn lưới (grid computing) dùng để tính tốn phân tán với số tài nguyên có sẵn mạng, kết hợp vào ứng dụng lớn theo u cầu Điện tốn lưới hình thức siêu tính tốn phát triển kế thừa phương pháp trước cho quy mô tính tốn khoa học lớn Việc xây dựng ứng dụng phức tạp kiến trúc lưới khó khăn, cần quan tâm đến việc mô đun hóa giao diện dựa dịch vụ Như vậy, dịch vụ điện toán lưới đề xuất tương đồng với dịch vụ Web Tính toán hướng dịch vụ cho phép sử dụng hiệu nguồn tài nguyên điện toán lưới 4.1.7 Phát triển phần mềm Phát triển phần mềm nỗ lực trí tuệ đầy thử thách Những cải tiến thực thông qua việc sử dụng khái niệm trừu tượng cao Các dịch vụ cung cấp trừu tượng lập trình, mơ đun phần mềm khác phát triển thơng qua giao diện tốt so với trước Khi toàn mô tả ngữ nghĩa sử dụng, mơđun khơng dễ dàng tùy biến hơn, mà cịn có khả sau: Tính tốn hướng dịch vụ cung cấp mơ hình tính tốn linh hoạt phong phú mặt ngữ nghĩa, giúp đơn giản hoá phát triển phần mềm 4.2 TIẾN TRÌNH NGHIỆP VỤ 4.2.1 Tiến trình nghiệp vụ (business process) Một tiến trình hoạt động Nói chung tiến trình hoạt động tổng hợp hướng đến để phục vụ số mục đích Tùy thuộc vào tiến trình cụ thể mà nhiệm vụ chúng kết hợp dịch vụ, tương ứng với truy vấn, giao dịch, ứng dụng, hoạt động hành Những dịch vụ phân tán doanh nghiệp điều phối việc ràng buộc điều khiển liệu chúng Các dịch vụ tự chúng phức hợp, ví dụ cài đặt tiến trình Các thảo luận theo sau nhấn mạnh quy trình kinh doanh bao gồm dịch vụ, khái niệm phát triển áp dụng cho tính tốn khoa học thiết lập khác Ví dụ thiết lập mà ta áp dụng tiến trình bao gồm môi trường doanh nghiệp (tức là, doanh nghiệp), lập kế hoạch sản xuất kiểm sốt hàng tồn kho, mơi trường liên doanh nghiệp (tức là, doanh nghiệp), chẳng hạn quản lý chuỗi cung ứng đàm phán mua Rõ ràng tiến trình doanh nghiệp liên doanh nghiệp cần phải tương quan với nhau, hoạt động doanh nghiệp cần thiết để hỗ trợ tương tác liên doanh nghiệp Tiến trình đưa số thách thức kỹ thuật Đầu tiên, phải có khả mơ hình hóa tiến trình, kết hợp xác việc thực thi với mơ hình, tơn trọng hạn chế dịch vụ nguồn lực chúng Các thực thi bình thường 42 trình thường dễ dàng, chúng đơn giản trật tự phần hoạt động tiến trình Ngược lại, điều kiện ngoại lệ khó để mơ hình xử lý Quan trọng hơn, trình kinh doanh quan trọng thường chạy lâu, tương tác lẫn không đơn lẻ, dẫn đến khả thông tin đầu vào xem xét lại gây kết vô hiệu Các ngoại lệ sửa đổi nguyên nhân khó khăn việc mơ hình hóa tiến trình Thứ hai, phải có khả tạo giao diện cho chức tiến trình Trong trường hợp hệ thống quản trị sở liệu (DBMS), bao gồm mơ hình phù hợp giao dịch, kết hợp ràng buộc kiểm soát đồng thời chế phục hồi DBMS Một mơ hình giao dịch cung cấp trừu tượng cần thiết bảo vệ mơ hình tiến trình khỏi chi tiết cài đặt DBMS Bởi tiến trình sử dụng số nơi doanh nghiệp để hỗ trợ hoạt động nội tương tác với đối tác kinh doanh, chúng mơ hình hóa theo cách khác nhau, thường dựa biểu diễn tiến trình riêng nhà cung cấp phần mềm ứng dụng liên quan Ví dụ, phần mềm lập lịch sản xuất sử dụng hình thức mơ hình khác với phần mềm xử lý đơn đặt hàng, việc tham gia doanh nghiệp chuỗi cung ứng bị ảnh hưởng xấu Tuy nhiên, phối hợp trình, rõ ràng nhu cầu quan trọng bối cảnh thực tế, gần khơng có phiên dịch mơ hình tiến trình Những thách thức tính khơng đồng thảo luận bối cảnh chia sẻ thông tin áp dụng giống tương tác mô hình tiến trình Trước vào chi tiết, ta cần mơ tả quan điểm có tiến trình phân biệt chúng § Orchestration - Xem tiến trình chương trình hay trật tự phần hoạt động cần thực thi Quan điểm xem tiến trình cơng cụ “hợp tấu” Đó là, đặc tả tiến trình thực kiểm soát hay thay mặt cho bên cụ thể Orchestration tương ứng diễn tả luồng cơng việc ngơn ngữ tiến trình BPEL4WS § Choreography - Xem tiến trình trao đổi thông điệp thành viên tham gia Việc trao đổi thông điệp bị hạn chế để diễn chuỗi khác yêu cầu phải nhóm lại thành giao dịch khác Choreography tương ứng với ngôn ngữ WSCL WSCI § Hợp tác (Collaboration) – Xem tiến trình hợp tác đối tác kinh doanh Các đối tác kinh doanh không gửi tin nhắn cho nhau, mà cịn tham gia vào mối quan hệ kinh doanh hợp đồng nghĩa vụ Họ tạo trao đổi tin nhắn linh hoạt tùy thuộc vào hoàn cảnh phát triển sách nội họ, ví dụ như, để xử lý ngoại lệ kinh doanh Hợp tác lên cách tiếp cận nghiêm túc để thực tiến trình kinh doanh có quy mơ lớn 43 4.2.2 Mơ tả tiến trình nghiệp vụ 4.2.2.1 Mô tả với UML UML cung cấp cấu trúc đồ họa sử dụng để mơ tả (1) hành động hoạt động, (2) ưu tiên thời gian luồng điều khiển Các cấu trúc điều khiển phép bao gồm: • Tuần tự (Sequence), chuyển đổi từ hoạt động sang hoạt đơng thời điểm • Nhánh (Branch), điểm định luồng điều khiển • Hợp (Merge), nơi hai hay nhiều luồng điều khiển hợp lại • Phân nhánh (Fork), tách luồng điều khiển thành hai hay nhiều luồng điều khiển đồng thời độc lập • Ghép (Join), đồng hai hay nhiều luồng điều khiển thực đồng thời thành luồng Các cấu trúc điều khiển tập đầy đủ để mơ tả tiến trình luồng công việc tùy ý Như vậy, chúng mơ tả dịch vụ Web tổng hợp Một tiến trình cụ thể mơ tả biểu đồ hoạt động, ví dụ số thể hình 4.1 44 Hình 4.1: Một ví dụ sơ đồ hoạt động UML Một biểu đồ UML sử dụng để hiển thị tương tác đối tượng đồng thời hữu tiểu trình đồng thời thực thi thể tiến trình Nó tập trung vào thứ tự thời gian thông điệp thực thể Hình 4.2 ví dụ biểu đồ 45 Hình 4.2: Sự phối hợp hai dịch vụ Web 4.2.2.2 Luồng công việc Một luồng công việc hoạt động nhằm giải số nhu cầu kinh doanh cách thực kiểm soát luồng liệu cụ thể hoạt động có liên quan đến tài ngun thơng tin người Một ví dụ điển hình luồng công việc xử lý nợ: bạn cần khoản vay, bạn điền vào mẫu đơn, nhân viên bán hàng đánh giá đơn đăng ký, kiểm tốn viên xác minh thơng tin, giám sát viên gọi quan tín dụng bên ngồi sử dụng cơng cụ đánh giá rủi ro tín dụng Mỗi người q trình cho vay nhận thông tin liên quan đến yêu cầu bạn, chỉnh sửa thêm vào, chuyển tiếp kết Trong tài liệu này, luồng công việc khái niệm hẹp so với tiến trình Tiến trình thực thơng qua luồng cơng việc, thơng qua phương tiện khác giao thức kinh doanh hội thoại agent Định nghĩa luồng công việc nhấn mạnh luồng liệu điều khiển hoạt động chất công việc Những luồng cần thiết để nhìn tiến trình mong muốn Cuối cùng, dù bạn định tiến trình luồng liệu điều khiển xảy ban hành Điểm mấu chốt công nghệ luồng công việc, luồng liệu điều khiển xác định trực tiếp từ quan điểm trung tâm cách hợp lý Giả định mơ hình có điểm mạnh điểm yếu công nghệ luồng công việc Các nhà cung cấp dịch vụ quản lý luồng công việc sử dụng để cài đặt dịch vụ định Một cài đặt dựa kỹ thuật luồng cơng việc giúp quản lý 46 ngoại lệ tiềm tốt so với ứng dụng truyền thống, nơi ẩn suy diễn cần thiết Tuy nhiên, luồng công việc có hạn chế chúng Hình 4.3: Một luồng cơng việc để xử lý trình tự dịch vụ viễn thơng Hình 4.3 minh họa ví dụ cơng việc thực bạn đặt hàng dịch vụ từ nhà cung cấp viễn thông Bạn bắt đầu trình tự cách tương tác với đại diện bán hàng từ nhà cung cấp, người đại diện giúp bạn điền vào mẫu đơn Đại diện bán hàng kiểm tra sở liệu để xác định xem liệu phần cứng cần thiết có chưa Nếu có, bạn nhận ước tính dịch vụ sẵn sàng để sử dụng Bộ phận cài đặt dịch vụ địa phương đến cài đặt dịch vụ cho bạn, nhà cung cấp viễn thông kiểm tra lịch sử tín dụng bạn 4.3 HỢP DỊCH VỤ 4.3.1 Hợp dịch vụ 4.3.1.1 Mục tiêu Hầu hết ứng dụng chào hàng cho dịch vụ Web tương tác client-server đơn giản dễ hiểu Ví dụ, sở liệu chuyến bay lịch trình hãng hàng khơng tương tác trực tiếp với phần mềm lịch hẹn thông tin cá nhân người dùng máy tính để đặt chuyến bay; phần mềm cho sở liệu địa liên lạc cá nhân tự động truy vấn loạt sở liệu điện thoại từ xa để thêm số điện thoại thiếu vào danh sách Những kiểu kịch xa vời Ngay ngày đầu tiêu chuẩn dịch vụ Web, Southwest Airlines Dollar Rent-A-Car phát triển hệ thống nguyên mẫu có sử dụng SOAP để liên kết trang web Southwest đến hệ thống đặt phịng Dollar, để khách hàng đặt xe với vé máy bay họ Mặc dù hữu ích, ứng dụng không đủ để giúp phát triển triển khai dịch vụ Web cách mạnh mẽ Các ứng dụng có hiệu quả, thách thức hơn, đòi hỏi dịch vụ kết hợp theo cách sử dụng lạ với suất cao Ví dụ, lịch trình chuyến bay hãng hàng khơng cho phép nhà cung cấp nhiên liệu dự đoán việc mua nhiên liệu hãng hàng không cảnh báo nhà máy lọc dầu việc điều chỉnh tốc độ sản xuất Hoặc, trang web công ty du lịch kết hợp dịch vụ Southwest Airlines, Dollar Rent-A-Car, Sheraton để xây dựng gói du lịch tùy chỉnh Hợp dịch vụ nghiên cứu tài liệu nghiên cứu thời gian lâu, trở thành chủ đề quan trọng việc phát triển hệ thống 47 Web thực tế Ý tưởng đằng sau thành phần dịch vụ đơn giản Các trang web coi khơng cung cấp nội dung, mà cịn cung cấp dịch vụ Ví dụ, Yahoo! cung cấp dịch vụ tin tức Amazon cung cấp dịch vụ lựa chọn sách Chúng ta thường gọi dịch vụ tay thông qua trình duyệt Web, chương trình gọi trực tiếp Hợp dịch vụ Web đề cập đến việc lấy số dịch vụ có xây dựng dịch vụ tùy chỉnh Ví dụ, bạn tìm thấy tiêu đề tin tức tìm kiếm sách phù hợp với tiêu đề Hoặc, thơng thường hơn, bạn tạo dịch vụ du lịch để gọi dịch vụ khách sạn, hãng hàng không, cho thuê xe Nói cách khác, bạn tạo tiến trình làm việc với dịch vụ có 4.3.1.2 Thách thức Ưu điểm dịch vụ Web biểu tận dụng chúng để tạo dịch vụ Thật không may, nhiều ý vào dịch vụ Web tập trung vào mức thấp, vấn đề sở hạ tầng, đến cú pháp mã hóa công cụ cần thiết để gọi dịch vụ Để dịch vụ Web có hiệu địi hỏi hiểu biết khái niệm sâu sắc Các khái niệm phát triển phận khác khoa học máy tính, đặc biệt sở liệu không đồng nhất, tính tốn phân tán, trí tuệ nhân tạo, hệ thống đa tác tử (multiagent) Hình 4.4: Ví dụ môi trường giao dịch B2C Hãy xem xét trường hợp B2C đơn giản, nơi công ty bán máy ảnh kỹ thuật số Web, kết hợp danh mục online chứa mẫu giá chúng, giao dịch thẻ tín dụng hợp lệ, giao hàng bảo đảm Phần mềm giao dịch B2C, thể hình 4.4, • Ghi lại giao dịch bán hàng sở liệu bán hàng • Ghi nợ thẻ tín dụng • Gửi đơn đặt hàng cho phận vận chuyển • Nhận đồng ý từ phận vận chuyển cho việc giao hàng ngày hơm sau • Cập nhật sở liệu kho hàng 48 Tuy nhiên, số vấn đề nảy sinh: Nếu lệnh vận chuyển, ghi nợ lỗi? Điều ghi nợ thành công, để không nhập vào vận chuyển? Nếu môi trường khép kín, sau giám sát xử lý giao dịch (TP) (như IBM CICS, Encina Transarc, BEA System Tuxedo) đảm bảo tất khơng có bước hoàn tất hệ thống cuối đạt trạng thái quán Nhưng giả sử modem người dùng bị ngắt kết nối sau họ nhấp chuột vào OK Việc đặt hàng có thành công hay không? Giả sử đường truyền ngắt trước phản hồi đến Liệu người dùng có phải đặt hàng lại không? Các vấn đề giám sát xử lý giao dịch đưa người dùng vào trạng thái quán Người dùng phần môi trường hệ thống phần mềm, mà môi trường mở cung cấp cho người dùng Các giải pháp cho mơi trường mở bao gồm: § Ứng dụng máy chủ gửi email vấn đề tín dụng, phát giao dịch trùng lặp § Một Java applet tải đồng hóa với máy chủ sau kết nối bị lỗi tái lập khơi phục lại giao dịch; applet giao tiếp sử dụng HTTP, trực tiếp với đối tượng máy chủ thơng qua IIOP RMI § Nếu có nhiều đơn đặt hàng phải xử lý đồng bộ, chúng đặt hàng đợi tin nhắn, quản lý máy chủ MOM (Message Oriented Middleware) khách hàng thông báo email có giao dịch hồn tất Email thường sử dụng để người giao tiếp với nhau, với việc sử dụng email, máy chủ hành xử agent thông minh Chú ý ví dụ xem xét người dùng làm việc với doanh nghiệp cụ thể, vấn đề phát sinh dạng nghiêm trọng môi trường B2B Nếu cửa hàng máy ảnh nhỏ coi phần mạng lưới cung cấp lớn, khơng có hy vọng buộc bên khác tiến hành giao dịch nội cách hay hội tụ cách tin cậy trạng thái phù hợp tồn hệ thống Các mơ hình sâu hơn giao dịch tiến trình kinh doanh cần thiết để đảm bảo hành vi xác thực trường hợp Đặc tả cho dịch vụ Web không giải giao dịch mơ hình giao dịch Tổ chức OASIS phát triển đặc tả vậy, quan điểm hầu hết người thực SOAP quản lý giao dịch cách Nếu khơng có hướng dẫn tiêu chuẩn phương pháp từ thỏa thuận nhà cung cấp lớn, giao dịch thực theo cách học, làm hy vọng cho khả tương tác mở rộng Một số vấn đề khác cho dịch vụ hợp bao gồm: § An ninh khó khăn hơn, nhiều bên tham gia tham gia tính chất tương tác nhu cầu họ không dự kiến nhà thiết kế dịch vụ 49 § Sẽ có khơng tương thích từ vựng, ngữ nghĩa, ngữ dụng (pragmatic) bên cung cấp dịch vụ, môi giới dịch vụ, yêu cầu dịch vụ § Do dịch vụ hợp thành tự động, vấn đề hiệu suất phát sinh mà khơng mong đợi § Thành phần dịch vụ động làm cho khó khăn để đảm bảo chất lượng dịch vụ (QoS) mà ứng dụng yêu cầu 4.3.2 Công cụ BPEL cho hợp nghiệp vụ BPEL (Business Process Execution Language) cho dịch vụ Web (BPEL4WS) sử dụng ngơn ngữ cài đặt cho tiến trình thực thi ngơn ngữ mô tả cho giao thức kinh doanh không thực thi Nó định nghĩa mơ hình ngữ pháp để mô tả cách thức tương tác dịch vụ Web bên tham gia tiến trình, gọi đối tác, phối hợp để đạt mục tiêu kinh doanh, trạng thái logic cần thiết cho phối hợp xảy Tương tác với đối tác thực thông qua giao diện dịch vụ Web cấp thấp hơn, định nghĩa WSDL BPEL xác định chế để đối phó với trường hợp ngoại lệ lỗi xử lý, bao gồm làm tiến trình đơn lẻ phức hợp hỗ trợ xảy trường hợp ngoại lệ lỗi đối tác yêu cầu hủy bỏ Hình 4.5 cho thấy siêu mơ hình cho BPEL4WS Hình 4.5: Siêu mơ hình BPEL4WS Một tài liệu BPEL4WS sử dụng XML để mô tả khía cạnh sau tiến trình kinh doanh: § Các đối tác: danh sách dịch vụ Web gọi phần tiến trình 50 § container: container liệu sử dụng tiến trình này, cung cấp định nghĩa họ loại thông điệp WSDL Container cần thiết để lưu trữ liệu trạng thái lịch sử tiến trình dựa thơng điệp trao đổi tiến trình thành phần § variables: biến sử dụng tiến trình § faultHandlers: xử lý ngoại lệ § compensationHandler: hồn tác rollback giao dịch xảy § EventHandlers: xử lý kiện bên ngồi (khơng đồng bộ) § correlationSets: ưu tiên tương quan lời gọi dịch vụ Web mà thể phần logic tiến trình § logic tiến trình chính: chuỗi cấu trúc luồng điều khiển lồng kết hợp hoạt động nguyên thủy thành thuật toán phức tạp Các cấu trúc điều khiển bao gồm: - sequence, để thực nối tiếp; - while, để thực vòng lặp; - switch, phân nhánh đa chiều; - pick, cho lựa chọn số đường thay dựa kiện bên ngoài; - flow, để thực thi song song Trong hoạt động thực song song, ràng buộc thứ tự thực cách sử dụng liên kết dịch vụ § Các cấu trúc điều khiển liên quan đến hành động đơn nguyên (atomic action) sau đây: - invoke, gọi dịch vụ Web cụ thể; - receive, máy chủ đợi nhận thông điệp từ client gọi dịch vụ máy chủ; - reply, sinh trả lời cho yêu cầu gọi; - wait, chờ đợi cho thời hạn khoảng thời gian; - assign, gán giá trị cho biến, giá trị đến từ thông điệp nhận được; - throw, sai; - terminate, chấm dứt toàn thể dịch vụ; - empty, khơng làm Khi mơ hình hóa giao thức kinh doanh tiến trình trừu tượng, BPEL4WS mơ tả khía cạnh cơng khai giao thức Ví dụ, giao thức chuỗi cung ứng, BPEL4WS mơ tả vai trị người mua người bán tiến trình trừu tượng, với mối quan hệ mơ liên kết dịch vụ Các tiến trình trừu tượng bị hạn chế đến việc xử lý giá trị chứa thuộc tính thông điệp, sử dụng giá trị không xác định để phản ánh kết hành vi riêng tư ẩn 51 Khi mơ hình hóa tiến trình kinh doanh thực thi, BPEL4WS không thiết phải mô tả cài đặt riêng lẻ đối tác cách triệt để, phải mơ tả định dạng thực thi khả chuyển cho tiến trình kinh doanh Những tiến trình thực thi tương tác với đối tác chúng cách phù hợp không phụ thuộc vào tảng hỗ trợ mơ hình lập trình sử dụng cài đặt cụ thể Kết việc sử dụng BPEL4WS để mơ hình tiến trình kinh doanh thực thi dịch vụ Web bao gồm dịch vụ có Giao diện dịch vụ tổng hợp tập WSDL portTypes, giống dịch vụ Web khác Hình 4.6 minh họa nhìn từ bên ngồi q trình BPEL4WS Hình 4.6: Một tiến trình BPEL4WS dịch vụ Web phức hợp với giao diện bao gồm WSDL portType dịch vụ Web khác 4.3.2.1 Luồng giao dịch BPEL4WS cung cấp giao thức bồi thường Nó cho phép điều khiển linh hoạt cho rollback đảo chiều thông qua định nghĩa cụ thể cho ứng dụng để xử lý lỗi bồi thường, kết ta có LRT (Long-Running (Business) Transaction) Một LRT hoàn tác cách đảo ngược hoạt động riêng rẽ, sử dụng quy tắc kinh doanh hay phải phụ thuộc vào ứng dụng Các phần tử phạm vi mô tả phận hành vi phép đảo ngược xử lý bồi thường Các phạm vi lồng với độ sâu tùy ý Một LRT xảy thể tiến trình kinh doanh đơn lẻ, khơng có phối hợp phân tán đối tác liên quan đến kết thỏa thuận Việc làm để đạt thỏa thuận phân tán nằm phạm vi BPEL4WS 4.3.2.2 Cài đặt dịch vụ Web BPEL4WS Một tiến trình BPEL4WS thuật toán thể biểu đồ luồng, bước hoạt động Thơng tin truyền hoạt động thông qua container 52 liệu sử dụng lệnh Ví dụ, địa khách hàng chép từ đơn đặt hàng tới yêu cầu vận chuyển cách sau đây: Hình 4.7: Ví dụ u cầu vận chuyển Một liên kết dịch vụ sử dụng để xác định mối quan hệ hai đối tác vai trò đối tác thực Ví dụ, liên kết dịch vụ người mua người bán là: Hình 4.8: Ví dụ liên kết người mua người bán Sau ví dụ hồn chỉnh tiến trình BPEL4WS thực thi để thực dịch vụ thơng báo chứng khốn:

53 Hình 4.8: Ví dụ thực tra cứu thơng tin chứng khốn Tiến trình chuỗi năm bước đơn giản mà bắt đầu yêu cầu cho thông báo nhận từ bên gọi Các yêu cầu chép vào container gọi, hoạt động getQuote gọi với thông số yêu cầu, kết chép vào container kết quả, thông báo trả lời trả cho bên yêu cầu 4.3.2.3 Case study: xây dựng kiến trúc hướng dịch vụ sử dụng công nghệ BPEL cho hợp dịch vụ Xây dựng mô tả BPEL4WS cho tiến trình mà bạn quen thuộc, chẳng hạn rút tiền từ máy ATM, trả tiền mua hàng thẻ tín dụng, đăng ký lớp học, học phí lệ phí, xin visa sinh viên hay visa du lịch Hãy tưởng tượng tiến trình tương tác hai phía: bạn người tham gia khác tương ứng (ngân hàng, người buôn bán, phận đăng ký trường đại học, phịng kế tốn trường đại học, lãnh quán nước ngoài) 4.4 BÀI TẬP Trình bầy vai trị hợp dịch vụ? Trình bầy thành phần cơng cụ BPEL cho hợp nghiệp vụ? Xây dựng mô tả BPEL4WS cho tiến trình tra cứu điểm môn học theo học kỳ sinh viên (xem tập chương 3); 54 55 ... dựa dịch vụ Như vậy, dịch vụ điện toán lưới đề xuất tương đồng với dịch vụ Web Tính tốn hướng dịch vụ cho phép sử dụng hiệu nguồn tài nguyên điện toán lưới 4 .1. 7 Phát triển phần mềm Phát triển phần. .. khuyến nghị gọi cấu hình 29 Hiện nay, WS-I phát triển hồ sơ gọi hồ sơ 1. 0 Hồ sơ bao gồm SOAP 1. 1, WSDL 1. 1, 1. 0 XML, XML Schema, HTTP 1. 1 Hơn nữa, hồ sơ WS-I 1. 0 quy định giới hạn sau: § SOAP nên... 10 2 BÀI TẬP 10 7 CHƯƠNG KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA 10 8 8 .1 8.2 KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA 10 8 THIẾT KẾ CƠ CHẾ KHÁM PHÁ DỊCH VỤ WEB NGỮ NGHĨA 10 8

Ngày đăng: 02/03/2022, 09:00

Tài liệu cùng người dùng

Tài liệu liên quan