Chương 1: Tổng quan về kết hợp dịch vụ và ngôn ngữ BPEL Chương này, luận văn giới thiệu tổng quan về kết hợp dịch vụ Web và ngôn ngữ thực thi quy trình nghiệp vụ BPEL cùng các thành phần hoạt động của nó. Ngoài ra, luận văn còn nêu lên được tại sao nên sử dụng BPEL trong các ứng dụng nghiệp vụ sử dụng dịch vụ Web. Tổng quan về kết hợp dịch vụ Web Web service – dịch vụ Web, tạo ra với mục đích để tương tác giữa các ứng dụng bởi việc sử dụng các tiêu chuẩn Web. Các dịch vụ Web sử dụng mô hình kết nối lỏng lẻo cho phép tích hợp linh hoạt giữa các hệ thống độc lập như B2C (business-to- consumer), B2B (business-to-business) hay các hệ thống tích hợp ứng dụng doanh nghiệp.
Các đặc tả liên quan tới dịch vụ Web như SOAP – định nghĩa một giao thức giao tiếp XML cho khả năng tương tác dịch vụ cơ bản, WSDL (ngôn ngữ mô tả dịch vụ Web) giới thiệu cú pháp chung cho mô tả dịch vụ và UDDI cung cấp kết nối hạ tầng cho việc giao tiếp và kết nối. Kết hợp, các đặc tả đó cho phép các ứng dụng tương tác với mỗi cái khác theo mô hình kết nối lỏng lẻo, độc lập về nền tảng [2]. Việc tích hợp các hệ thống thực tế mong đợi nhiều vào khả năng tương tác đơn giản, sử dụng các giao thức tiêu chuẩn. Dịch vụ Web có nền tảng tích hợp mềm dẻo áp dụng trong các ứng dụng và quy trình nghiệp vụ có thể giải quyết các vấn đề tương tác phức tạp thông qua một mô hình tích hợp quy trình chuẩn.
Mô hình tương tác được hỗ trợ trực tiếp bởi WSDL là mô hình phi trạng thái nhận yêu cầu – phản hồi hoặc cách thức tương quan nhiều chiều. Các mô hình tương tác nghiệp vụ hiện nay cơ bản áp dụng một trong các kiểu trao đổi thông điệp như peer-to-peer, yêu cầu - phản hồi, một chiều, có trạng thái, các tương tác dài (long – running) liên quan tới hai hoặc nhiều bên. Để định nghĩa các tương tác nghiệp vụ hệ thống, mô tả hình thức các giao thức trao đổi thông điệp cùng với sử dụng các quy trình nghiệp vụ của chúng là điều cần thiết. Các quy trình nghiệp vụ bao gồm các hành vi phụ thuộc dữ liệu, khả năng xác định các điều kiện ngoại lệ, hậu quả/ kết quả của tương tác, và tính phối hợp giữa các đơn vị, phòng ban.
Một hệ thống được biểu diễn chi tiết, rõ ràng ở nhiều khía cạnh khác nhau càng tốt. Vai trò phân tích hệ thống, các chi tiết thực thi nghiệp vụ hệ thống không nhất thiết đưa ra, khi đó cần một quy trình trừu tượng để mô tả hành vi trao đổi thông điệp thấy được của mỗi bên liên 2 TIEU LUAN MOI download : skknchat@gmail.com quan sẽ quan trọng hơn. Các vai trò xây dựng, triển khai, cần một quy trình thể hiện luồng thực thi và tích hợp các dịch vụ giữa các bên liên quan, hoặc quản lý trao đổi dữ liệu. Ngôn ngữ BPEL định nghĩa hai quy trình: trừu tượng và thực thi sẽ mô tả, biểu diễn tiến trình nghiệp vụ hệ thống sử dụng các dịch vụ Web theo hai quy trình đó.
Ngôn ngữ thực thi quy trình nghiệp vụ BPEL WS-BPEL (Web Services Business Process Execution Language) hay ngắn gọn BPEL (Business Process Execution Language) là ngôn ngữ thực thi tiến trình nghiệp vụ các dịch vụ Web. Phiên bản BPEL4WS (Business Process Execution Language for Web Services 1.0) được giới thiệu vào tháng 7/2002, kết hợp chung của IBM, Microsoft và BEA. Nó sử dụng ngôn ngữ luồng dịch vụ Web (Web Services Flow Language - WSFL) của IBM và XLANG của Microsoft.1 và thêm sự tham gia đóng góp của SAP và Siebel Systems, được phát hành vào tháng 5/2003 [3]. Phiên bản gần nhất WS-BPEL 2.0 được giới thiệu năm 2007.
Trong phạm vi tài liệu luận văn này, chỉ đề cập và sử dụng phiên bản WS-BPEL 2.0 và gọi ngắn gọn là BPEL hay WS-BPEL. Đặc tả BPEL 2.0 định nghĩa một ngôn ngữ cho quy trình nghiệp vụ xây dựng dựa trên các dịch vụ Web.0 cung cấp một mô tả quy chuẩn hoàn chỉnh về ngôn ngữ thực thi quy trình nghiệp vụ. Các khái niệm cơ bản của BPEL được hiểu theo một trong hai hướng, trừu tượng hoặc thực thi. Một tiến trình trừu tượng BPEL là một tiến trình đặc tả từng phần không phải để thực thi và phải được khai báo rõ ràng như kiểu trừu tượng.
Trong khi tiến trinh thực thi được đặc tả đầy đủ và có thể được thi hành, một tiến trình trừu tượng có thể ẩn các chi tiết thao tác cụ thể hóa được yêu cầu thể hiện bởi vật thực thi. Tất cả kiến trúc của tiến trình thực thi tạo nên giá trị tới tiến trình trừu tượng, vì thế tiến trình BPEL thực thi và trừu tượng có độ mạnh thể hiện như nhau. - Tiến trình trừu tượng cung cấp hai cơ chế ẩn các chi tiết thao tác; một sử dụng các thẻ không rõ ràng một cách rõ ràng hoặc thiếu sót. Các tiến trình trừu tượng có vai trò mô tả, thường đưa ra nhiều ca sử dụng, một ca sử dụng mô hình hành vi nhìn thấy của vài hoặc tất cả các dịch vụ được đề xuất bởi tiến trình trừu tượng.
Ca sử dụng khác định nghĩa một khuôn mẫu tiến trình, khuôn mẫu này thể hiện những thực hành tốt nhất từng miền cụ thể. Bất kể với từng ca sử dụng và mục đích, tất cả các tiến trình trừu tượng chia sẻ một cơ sở cú pháp chung. Chúng có yêu cầu khác nhau về mức độ của độ mờ và hạn chế trong các phần của một định nghĩa tiến trình, có thể bị bỏ sót hoặc bị ẩn. Cách sử dụng phù hợp của các tiến trình trừu tượng có hiệu quả khác nhau trong các ràng buộc nhất quán và trong cú pháp của tiến trình đó.
3 TIEU LUAN MOI download : skknchat@gmail.com - Trong khi tiến trình trừu tượng không yêu cầu để chỉ rõ đầy đủ, tiến trình thực thi có ngôn ngữ định nghĩa một cách hiệu quả dạng thực thi động cho các tiến trình nghiệp vụ dựa trên các tài nguyên dịch vụ Web và dữ liệu XML hoàn toàn. Hơn nữa, các tiến trình thực thi và tương tác cùng với các đối tác của chúng trong một cách thức nhất quán không phân biệt nền tảng hỗ trợ hoặc mô hình lập trình được dùng thực thi của các môi trường phục vụ. BPEL sử dụng vài đặc tả XML: WSDL 1. Ngôn ngữ mô tả dịch vụ Web WSDL và định nghĩa kiểu XML Schema cung cấp mô hình dữ liệu được sử dụng bởi các tiến trình BPEL.
XPath và XSLT cung cấp hỗ trợ cho việc thao tác sử dụng dữ liệu. Tất cả tài nguyên bên ngoài và các đối tác được miêu tả như các dịch vụ WSDL. BPEL cung cấp khả năng mở rộng để cung cấp các phiên bản tương lai của các chuẩn, đặc tả XPath và liên quan chuẩn được sử dụng trong tính toán XML. Tại sao nên sử dụng BPEL Điểm mạnh của BPEL là khả năng tổ chức một tiến trình nghiệp vụ.
Đối với các yêu cầu cho một tiến trình logic phức tạp, BPEL là một lựa chọn tốt[10]. Nó phù hợp cho các hệ thống nghiệp vụ lớn và các tiến trình tương tác dài (long-running), đặc biệt các hệ thống SOA. Ưu điểm của việc sử dụng BPEL trong mô hình nghiệp vụ các dịch vụ Web bao gồm: - Cung cấp ngôn ngữ chuẩn cho việc diễn giải các quy trình nghiệp vụ: giàu ngữ nghĩa và bao quát, trải qua phát triển nghiêm ngặt hướng tới giải quyết các yêu cầu phức tạp, BPEL đưa ra hướng giải quyết dàn phối toàn diện. - Tận dụng một tập hợp kỹ năng chung và ngôn ngữ: Các tiêu chuẩn cho phép chi phí tổng thấp nhất của quyền sở hữu qua tính di động tri thức, thay vì sử dụng các kỹ thuật độc quyền phức tạp, BPEL có các thực hành tốt, các mẫu, kinh nghiệm và đào tạo được tận dụng từ đa dạng các nhà cung cấp, truy cập tới các nguồn tài nguyên tri thức trong mô hình và công nghệ của BPEL.
- Được thiết kế để phù hợp tự nhiên tới ngăn xếp chứa dịch vụ Web: Trong WS- BPEL một tiến trình nghiệp vụ tương tác cùng các dịch vụ qua các lời gọi dịch vụ Web. Sự tổng hợp đệ quy, một tiến trình BPEL tận dụng tương tác cung cấp bởi các mức thấp nhất của hàng đợi các dịch vụ Web, như WSDL, SOAP, WS-Addressing. - Thể hiện hoàn toàn bằng XML: như các tiến trình nghiệp vụ WS-BPEL thể hiện trong XML, chúng là dễ đọc và được sử dụng bởi bất kỳ các cơ sở tiến trình XML. 4 TIEU LUAN MOI download : skknchat@gmail.com - Sử dụng và kế thừa WSDL 1.1 và XML Schema 1.0: BPEL sử dụng và kế thừa WSDL để cả cung cấp và sử dụng dịch vụ Web trong phương thức trừu tượng, sử dụng WSDL để định nghĩa các giao tiếp dịch vụ.
Trong khi đó XML Schema 1.0 để mô hình dữ liệu. - Đa nền tảng và nhà cung cấp động: BPEL cung cấp các nền tảng tiêu chuẩn cơ sở. Các tiến trình BPEL chạy trên bất kỳ engine biên dịch WS-BPEL. - Tương thích giữa các tiến trình tương tác và tái sử dụng: BPEL cung cấp một chuẩn chung cung cấp tương thích giữa các nền tảng khác nhau và các tiến trình thực thi trong chúng.
Tổng quan cấu trúc của một tiến trình BPEL 1. Bài toán khởi tạomột tiến trình BPEL Trước khi đi mô tả chi tiết cấu trúc của các tiến trình nghiệp vụ, phần này sẽ đưa ra một ví dụ đơn giản của một tiến trình WS-BPEL cho việc xử lý một đơn đặt hàng. Các thao tác tiến trình được miêu tả trong hình 1. Bài toán: Trong việc nhận đặt hàng từ một khách hàng, tiến trình phải khởi tạo và tính toán đồng thời ba phần như tính toán chi phí cuối của một đơn hàng, lựa chọn một phương thức chuyển hàng, lên lịch sản phẩm và giao hàng.
Trong vài xử lý có thể tiến hành đồng thời, có sự phụ thuộc điều khiển và dữ liệu giữa ba phần. Như, chi phí giao hàng được yêu cầu để tính chi phí cuối cùng của đơn hàng, ngày giao hàng được yêu cầu để hoàn thành lịch giao hàng. Sau khi ba phần đồng thời được hoàn thành, tiến trình hóa đơn có thể tiến hàng và hóa đơn sẽ được gửi tới khách hàng. 5 TIEU LUAN MOI download : skknchat@gmail.1: Tiến trình xử lý đơn nhận hàng Dịch vụ Web purchaseOrderPT được sử dụng cho tiến trình đặt hàng và nó được mô tả trong WSDL kèm theo.Việc tính toán chi phí cung cấp, lựa chọn phương thức giao hàng và đặt lịch được xây dựng như các dịch vụ Web mô tả trong WSDL.