Giới thiệu chung
Ngày nay, với sự phát triển của các ứng dụng nghiệp vụ đòi hỏi các ứng dụng Công nghệ thông tin phải có một hạ tầng mềm dẻo và linh hoạt để có thể nhanh chóng thay đổi và đáp ứng. Tuy nhiên, các ứng dụng CNTT truyền thống thường được thiết kế theo hướng chức năng và thường phục vụ một nghiệp vụ nhất định, khó có khả năng thay đổi nghiệp vụ khi cần. Kết quả là rất nhiều các tổ chức không thể tiếp tục sử dụng lại các hệ thống cũ do không thể tích hợp với các thiết kế của hệ thống mới. Một bài toán được đặt ra là làm sao có thể sử dụng lại các chức năng của các hệ thống cũ để tạo ra một hệ thống mới, nhằm tiết kiệm chi phí đầu tư CNTT trong môi trường cạnh tranh hiện nay.
Kiến trúc hướng đối tượng SOA ra đời nhằm giải quyết bài toán đó, người ta dùng thuật ngữ “Orchestration” –dịch là điều phối. Kiến trúc SOA cho phép điều phối các dịch vụ rời rạc thành một ứng dụng nghiệp vụ thống nhất mà không làm thay đổi kiến trúc của các ứng dụng đó. Để làm được điều này, kiến trúc SOA sử dụng ngôn ngữ thực thi quy trình nghiệp vụ có tên là BPEL (Business Process Execution Language). Ngôn ngữ BPEL sẽ định nghĩa quy trình cũng như các tác vụ thực hiện trên quy trình đó.
BPEL hay WS-BPEL là một đặc tả do OASIS phát triển để xác định quy trình nghiệp vụ như tập các tương tác giữa các dịch vụ Web. OASIS định nghĩa WS-BPEL như sau:“ Các quy trình nghiệp vụ có thể được mô tả theo hai cách. Các quy trình nghiệp vụ thực hiện mô hình hóa hành vi thực tế của người tham gia trong tương tác nghiệp vụ. Các quy trình nghiệp vụ trừu tượng một phần là các quy trình xác định riêng, không nhằm đến việc thực hiện. Một quy trình nghiệp vụ trừu tượng có thể ẩn giấu đối với một vài chi tiết tác động cụ thể. Các quy trình trừu tượng dùng để mô tả, với hơn một trường hợp sử dụng, có hành vi quan sát và xử lý khuôn mẫu. WS-BPEL có nghĩa là được dùng để mô hình hóa hành vi của cả hai quy trình thực thi và trừu tượng.
WS-BPEL cung cấp một ngôn ngữ để mô tả các quy trình nghiệp vụ trừu tượng và thực thi. Bằng cách đó, nó mở rộng mô hình tương tác các dịch vụ web và cho phép nó hỗ trợ các giao dịch nghiệp vụ.
Ngôn ngữ BPEL 2.0
Hệ thống quản lý quy trình nghiệp vụ là cầu nối giữa CNTT và các tổ chức/ doanh nghiệp. Một trong những cải tiến lớn nhất của hệ thống quản lý quy trình nghiệp vụ so với những phương pháp cải tiến quy trình nghiệp vụ có sử dụng CNTT là mang bộ phận nghiệp vụ và kỹ thuật xích lại gần nhau hơn. Thông thường, theo cách triển khai các giải pháp CNTT truyền thống, những yêu cầu về nghiệp vụ của hệ thống được nhóm phân tích tập hợp lại từ những đơn vị hoạt động nghiệp vụ. Nhóm phân tích thường là những người thực hiện các hoạt động nghiệp vụ, có ít kiến thức về CNTT. Nhóm phát triển dựa trên những yêu cầu nhận được để thiết kế giải pháp, kiến trúc,… và chuyển giao cho Nhóm lập trình thực thi. Như vậy, yêu cầu hệ thống phải đi qua ba đến bốn bước trước khi thực thi. Do đó, chuỗi thông tin trao đổi ở mỗi bước có sự “sai lệch” là điều khó tránh khỏi. Hệ thống quản lý quy trình nghiệp vụ có thể khắc phục những tồn tại này bằng cách cho phép người hoạt động nghiệp vụ trực tiếp tham gia vào quá trình thiết kế giải pháp CNTT cho tổ chức. Nhóm hoạt động nghiệp vụ và kỹ thuật sử dụng chung một công cụ để thiết kế logic của quy trình nghiệp vụ. Dựa trên logic đó, nhóm kỹ thuật tiến hành các hoạt động tích hợp và triển khai cần thiết để vận hành hệ thống.
Ngôn ngữ thực thi quy trình nghiệp vụ BPEL là một ngôn ngữ dùng để hỗ trợ phát triển các ứng dụng phức tạp, quy mô lớn, đòi hỏi phải tổng hợp nhiều dịch vụ web khác nhau. BPEL cho phép mô tả và xử lý luồng công việc bằng cách sử dụng trình soạn thảo đồ họa thân thiện với con người. Ngoài ra, BPEL còn định nghĩa các cách quản lý các sự kiện và ngoại lệ, cơ chế bảo toàn dữ liệu khi có ngoại lệ xảy ra. BPEL hoạt động dựa trên nguyên tắc gửi các thông điệp dạng XML đến một dịch vụ khác, thao tác trên cấu trúc XML, nhận các thông điệp XML (đồng bộ hay không đồng bộ ) từ các dịch vụ (service) bên ngoài. Nó phụ thuộc vào bốn chuẩn XML cơ bản được xem như là các đặc tả để thực hiện một quy trình BPEL: WSDL, XML Schema 2.0, XPath 2.0 và WS-Addressing.
Cốt lõi của BPEL là sự tương tác giữa các dịch vụ web được mô tả trong WSDL. Một quy trình BPEL đặc tả làm thế nào để phối hợp giữa các dịch vụ khác nhau và kết hợp các dịch vụ đó lại thành một quy trình hoàn chỉnh. Điều này có ý nghĩa một quy trình BPEL được định nghĩa hoặc cung cấp từ một hoặc nhiều đặc tả WSDL khác nhau và cung cấp một đặc tả của riêng của nó về quá trình tổng hợp các dịch vụ này.
Cấu trúc của một quy trình BPEL
Dưới góc độ của các nhà xây dựng chuẩn BPEL thì các quy trình nghiệp vụ được mô tả theo hai cách thức: các quy trình nghiệp vụ thực thi (execution business process) và các giao thức nghiệp vụ (business protocols). Các quy trình nghiệp vụ thực thi mô hình hóa các chi tiết hoạt động của các thành phần tham gia vào sự tương tác nghiệp vụ. Ngược lại, các giao thức nghiệp vụ sử dụng các mô tả quy trình nghiệp vụ nhằm định rõ các hoạt động trao đổi thông điệp của các thành phần liên quan đến giao thức một cách trừu tượng nhưng thể hiện các chi tiết và các hoạt động bên trong của các thành phần tham gia. Các mô tả quy trình cho các giao thức nghiệp vụ gọi là các quy trình trừu tượng (abstract process). Như vậy, toàn bộ hoạt động thực thi logic của quy trình được định nghĩa thông qua các quy trình thực thi và các quy trình trừu tượng chỉ bao gồm các thông điệp trao đổi giữa các thành phần tham gia vào quy trình.
Một quy trình BPEL được thể hiện qua các tác vụ, các tác vụ trong BPEL được thực hiện theo cấu trúc được khai báo trong quy trình. Trong BPEL 2.0 thì các tác vụ được chia làm ba nhóm cơ bản như sau:
- Tác vụ cơ bản: là các tác vụ đơn thể, nó không thể chứa được bất kỳ các tác vụ nào khác bên trong nó nữa.
- Tác vụ cấu trúc: là các tác vụ có cấu trúc, nó có thể chứa được các tác vụ khác bên trong nó.
- Tác vụ xử lý lỗi: là các tác vụ được sử dụng để thụ lý lỗi và các ngoại lệ xảy ra trong quá trình hoạt động của một quy trình.
Tùy theo nhu cầu và trong các trường hợp cụ thể mà ta có thể chọn và sử dụng các tác vụ khác nhau.
Một quy trình BPEL được mô tả dưới dạng tài liệu XML. Quy trình được mô tả trong BPEL giao tiếp với dịch vụ web và các dịch vụ trao đổi tài liệu XML.
Các khái niệm chính trong một quy trình BPEL bao gồm:
- Process: Mọi tập tin (file) đều bắt đầu với thẻ , các mô tả cho quy trình cũng như các namespace liên quan được định nghĩa ở thẻ này.
- Imports: Chứa thông tin các tập tin WSDL được nhập vào.
- PartnerLinks: Chứa tập hợp các partnerlink được sử dụng trong quy trình. Mỗi partnerlink sẽ thiết lập một quan hệ giữa bản thân process với một dịch vụ (service) bên ngoài.
- Variables: Phần này định nghĩa các biến được dùng trong quy trình. Mỗi biến đều phải được tham chiếu đến một kiểu thông điệp (messageType) được mô tả trong tập tin WSDL.
- Sequence: Đây là phần chính mô tả logic của quy trình. Trong một sequence sẽ chứa nhiều tác vụ. Mỗi tác vụ có một nhiệm vụ cụ thể trong quy trình BPEL. Bản thân sequence cũng là một tác vụ, có thể chứa các cấu trúc song song cũng như tuần tự khác.
Trình xử lý BPEL
Trình xử lý BPEL được định nghĩa là một trình xử lý luồng công việc để thực thi các quy trình được thiết kế trên ngôn ngữ BPEL. Theo định nghĩa trên, trình xử lý BPEL không hoạt động độc lập mà là một thành phần phần mềm trong kiến trúc của BPEL. Kiến trúc BPEL bao gồm 03 thành phần chính là: trình thiết kế BPEL, mẫu quy trình và trình xử lý BPEL.
Trình thiết kế BPEL: Trình thiết kế BPEL được sử dụng để định nghĩa các quy trình nghiệp vụ, thường độc lập với các nền tảng ứng dụng. Đây là công cụ hỗ trợ đắc lực cho những cán bộ nghiệp vụ để định nghĩa các quy trình mà không cần hiểu biết sâu về kỹ thuật. Sau khi thiết kế xong, nó sẽ tự động sinh ra mẫu quy trình logic dưới dạng mã nguồn BPEL.
Mẫu quy trình logic: Mẫu quy trình logic có định dạng theo đặc tả BPEL. Mẫu quy trình này được sinh ra bởi trình thiết kế BPEL và thực thi bởi trình xử lý BPEL.
Trình xử lý BPEL: Nhiệm vụ của trình xử lý BPEL là thực thi bất cứ mẫu quy trình logic nào theo chuẩn BPEL. Trong quá trình thực hiện, nó sẽ gọi các dịch vụ web, ánh xạ dữ liệu với các thông điệp, xử lý lỗi, đảm bảo giao dịch toàn vẹn và tính bảo mật. Trình xử lý BPEL thường được tích hợp các máy chủ ứng dụng (Application Server). Hiện nay có rất nhiều các sản phẩm trình xử lý BPEL mang tính thương mại hoặc mã nguồn mở, tuy nhiên, không có một kiến trúc chung nào được sử dụng, cũng như không có một tiêu chuẩn thiết kế nào cho các trình xử lý BPEL tuân theo. Hiện nay có 3 trình xử lý BPEL tiêu biểu: Apache ODE: là trình xử lý mã nguồn mở phổ biến nhất; ActiveVOS: là một trong những trình xử lý đầu tiên; Oracle BPEL Process Manager: là sản phẩm dành cho doanh nghiệp.
Mối liên hệ giữa BPEL và BPMN
Hiện nay, BPEL là ngôn ngữ chiếm giữ một vị trí quan trọng và là sự lựa chọn tốt nhất cho việc thực thi các quy trình nghiệp vụ. BPEL là ngôn ngữ thực thi quy trình nghiệp vụ phổ biến và hầu như không có đối thủ cạnh tranh trong ngành công nghiệp phần mềm hiện nay. Các lập trình viên sử dụng BPEL để xác định quy trình nghiệp vụ liên quan đến các dịch vụ web sẽ được thực hiện như thế nào. Thông điệp BPEL thường được sử dụng để gọi các dịch vụ từ xa, sắp xếp quá trình thực hiện và quản lý sự kiện và ngoại lệ. Do BPEL không có khả năng mô hình hóa tốt các vai trò liên quan đến con người trong các quy trình nghiệp vụ nên BPEL thường được liên kết với Mô hình và Ký hiệu Quy trình Nghiệp vụ (BPMN). Trong nhiều tổ chức, các nhà phân tích sử dụng BPMN để hình dung các quy trình nghiệp vụ và các nhà phát triển chuyển đổi các hình ảnh thành BPEL để thực hiện.
Mô hình và Ký hiệu Quy trình Nghiệp vụ (BPMN) là một tiêu chuẩn mô hình hóa ở dạng đồ họa để xác định các quy trình nghiệp vụ trong một sơ đồ quy trình nghiệp vụ. Tổ chức Sáng kiến quản lý quy trình nghiệp vụ (Business Process Management Initiative – BPMI) đã phát triển BPMN, được duy trì bởi Nhóm quản lý đối tượng (OMG) kể từ khi hai tổ chức được sáp nhập vào năm 2005. Phiên bản 2.0 của BPMN được phát hành vào tháng 1 năm 2011.
Qua nghiên cứu ban đầu về đề xuất các tiêu chuẩn phục vụ triển khai kiến trúc hướng dịch vụ SOA của một số doanh nghiệp như IBM, Oracle, Microsoft, TIBCO... cũng như Khung liên thông Chính phủ điện tử của một số quốc gia trên thế giới như UK, Australia, New Zealand, Hàn Quốc, Nepal... BPEL được coi như là một trong các tiêu chuẩn chính phục vụ triển khai kiến trúc hướng dịch vụ SOA. Ví dụ, theo điểm của Oracle, BPEL là ngôn ngữ ban đầu cho SOA Suite và bắt đầu được thông qua vào đầu những năm 2000. Sau đó, Oracle giới thiệu bộ sản phẩm Phân tích quy trình nghiệp vụ (Business Process Analysis- BPA), là sự hợp tác giữa Oracle và IDS Scheer (được mua lại bởi Software AG), dựa vào sản phẩm IDS Scheer ARIS. ARIS cho phép tạo ra các sơ đồ BPMN sau đó có thể được chuyển đổi tới sơ đồ BPEL (Đây chỉ là một chuyển đổi IDS Scheer ARIS BPMN XML sang JDeveloper BPEL XML). Vì vậy, người dùng sẽ sử dụng IDS Scheer ARIS để xây dựng BPMN, chuyển đổi sang BPEL và sau đó sử dụng JDeveloper để chuẩn bị cho quá trình triển khai trên Oracle SOA Suite.
Với việc mua lại BEA (bao gồm cả việc mua lại các sản phẩm của WebLogic và AquaLogic), Oracle đã đưa một con đường mới để tích hợp BPM/BPMN với SOA/BPEL. AquaLogic BPM (ALBPM) đã trở thành sự khởi đầu của Oracle BPM. Và ngày nay, Oracle đã xây dựng một giải pháp tích hợp, trong đó cả sơ đồ BPEL và BPMN đều có thể được phát triển, triển khai và thực hiện trong cùng một môi trường với nhau. JDeveloper có thể được sử dụng để mô hình/phát triển cả hai loại sơ đồ. Và cả SOA và BPM đều chạy trong WebLogic.
Kết luận
Các kiến thức về quản lý quy trình nghiệp vụ giúp các nhà quản lý có tầm nhìn dài hạn về các quy trình, hệ thống và công nghệ để có thể dẫn dắt tổ chức phát triển với các chiến lược dài hạn. Xét về hướng tiếp cận, quản lý quy trình nghiệp vụ được xem như một sự mở rộng của các hệ thống quản lý luồng công việc. Trên thế giới, ngôn ngữ BPEL được sử dụng rộng rãi cho một số phần mềm nổi bật như IBM Websphere, BEA AquaLogic 6, BPM Suite, SAP Netweaver... cho quản lý quy trình nghiệp vụ.
Thực tế tại Việt Nam, hiện chưa có văn bản nào quy định về việc áp dụng tiêu chuẩn BPEL để mô hình hóa quy trình nghiệp vụ. Tuy nhiên, qua tìm hiểu kiến trúc hướng dịch vụ SOA, các bản Kiến trúc Chính quyền điện tử của các tỉnh đã được công bố, đa số các tỉnh đều khuyến nghị áp dụng BPEL v2.0 (cùng với tiêu chuẩn BPMN) để Bộ Thông tin và Truyền thông sớm ban hành hướng dẫn về việc áp dụng tiêu chuẩn này.
Việc tiêu chuẩn hóa các quy trình nghiệp vụ của các CQNN cho phép quá trình tin học hóa và liên thông quy trình nghiệp vụ trở nên khả thi, đáp ứng mong đợi cung cấp các dịch vụ công đơn giản, liền mạch và kết nối cao cho người dân, doanh nghiệp. Do đó, trong thời gian tới, Bộ Thông tin và Truyền thông có thể xem xét nghiên cứu bổ sung tiêu chuẩn tiêu chuẩn BPEL v2.0 vào danh mục tiêu chuẩn về công nghệ thông tin sử dụng trong các cơ quan nhà nước (Thông tư số 22/2013/TT-BTTTT ngày 23/12/2013 của Bộ trưởng Bộ TTTT Ban hành Danh mục tiêu chuẩn kỹ thuật về ứng dụng công nghệ thông tin trong cơ quan nhà nước)./.
Tài liệu tham khảo
[1] OASIS Web Services Business Process Execution Language Version 2.0 11/04/2007
[2] http://docs.oasis-open.org/wsbpel/2.0/CS01/wsbpel-v2.0-CS01.pdf
[3] http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf
[4] http://www.omg.org/spec/BPMN/ISO/19510/PDF