.2Mẫu tiến trình logic

Một phần của tài liệu (LUẬN văn THẠC sĩ) so sánh hiệu năng của các trình xử lý BPEL (Trang 29)

Trình xử lý BPEL

Nhiệm vụ của trình xử lý BPEL là thực thi bất cứ mẫu tiến 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

<process name="HelloWorld" targetNamespace="http://jbpm.org/examples/hello" XMLns:tns="http://jbpm.org/examples/hello" XMLns:bpel="http://schemas.XMLsoap.org/ws/2003/03/business-process/" XMLns="http://schemas.XMLsoap.org/ws/2003/03/business-process/"> <partnerLinks>

<partnerLink name="caller" partnerLinkType="tns:Greeter-Caller" myRole="Greeter" />

</partnerLinks> <variables>

<variable name="request" messageType="tns:nameMessage" /> <variable name="response" messageType="tns:greetingMessage" /> </variables>

<sequence name="MainSeq">

<receive name="ReceiveName" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="request" createInstance="yes" /> <assign name="ComposeGreeting">

<copy>

<from expression="concat('Hello,', bpel:getVariableDatắrequest', 'namé),'!')" />

<to variable="response" part="greeting" /> </copy>

</assign>

<reply name="SendGreeting" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="response" />

</sequence> </process>

thƣờng đƣợc tích hợp với 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 chuẩn thiết kế nào mà một trình xử lý BPEL tuân theọ Bảng sau liệt kê danh sách các trình xử lý BPEL hiện nay:

Bảng 2.1Danh sách các trình xử lý BPEL hiện nay

Sản phẩm Hãng Nền tảng Các chuẩn hỗ trợ

ActiveVOS[3] Active

Endpoints

Servlet or Java

EE BPMN 2.0; WS-BPEL

Apache ODE[6] ASF Apache Axis,

JBI, J2EE BPEL4WS 1.1, WS-BPEL 2.0

BizTalk Server Microsoft .NET BPEL, BPMN, RFID, WSDL, ...

iBolt Server Magic Software

Enterprises Java EE BPEL4WS

jBPM jBoss Java EE WS-BPEL

Open ESB Oracle

Corporation Java EE, JBI WS-BPEL 2.0

Oracle BPEL Process Manager[18]

Oracle

Corporation Java EE WS-BPEL 2.0, BPMN

OW2 Orchestra OW2

Apache Axis Apache CXF OSGi Java EE WS-BPEL 2.0 Parasoft BPEL

Maestro Parasoft Servlet

WS-BPEL, BPEL4People / WS- HumanTask

Petals BPEL

Engine Petals Link Java EE

WS-BPEL 2.0, WSDL 1.1 & 2.0

SAP Exchange

Infrastructure SAP AG BPEL

Virtuoso Universal Server

OpenLink

Software UĐI, WS-BPEL, WS-*

WebSphere

Process Server IBM Java EE WS-BPEL

Trong phần tiếp theo, chúng ta sẽ đi tìm hiểu kiến trúc của 3 trình xử lý BPEL tiêu biểu hiện nay: Apache ODE, ActiveVOS và Oracle BPEL Process Manager. Apache ODE là trình xử lý mã nguồn mở phổ biến nhất hiện nay, ActiveVOS là một trong những trình xử lý đầu tiên, Oracle BPEL Process Manager là sản phẩm nổi tiếng sử dụng trong các doanh nghiệp. Việc nghiên cứu kiến trúc của 3 trình xử lý này sẽ giúp chúng ta hiểu đƣợc nguyên lý hoạt động chung cũng nhƣ những nét đặc trƣng riêng của từng trình xử lý.

2.2 Kiến trúc một số trình xử lý tiêu biểu 2.2.1 Apache ODE

Apache ODE thực thi các tiến trình nghiệp vụ đƣợc viết theo chuẩn BPEL. Tiến trình sẽ giao tiếp với các dịch vụ Web, gửi và nhận thông điệp, điều khiển thao tác dữ liệu và phục hồi sau lỗịODE hỗ trợ thực thi cả những tiến trình có vòng đời khác nhau để kết hợp tất cả các dịch vụ tạo nên ứng dụng ngƣời dùng.

Apache ODE hỗ trợ chuẩn WS-BPEL 2.0 mới nhất của OASIS và cả chuẩn cũ BPEL4WS 1.1. ODE hỗ trợ 2 lớp giao tiếp: lớp thứ nhất dựa trên Axis2 (giao thức http), và lớp thứ hai dựa trên chuẩn JBI (sử dụng ServiceMix). Để liên kết với các dịch vụ bên ngoài, ODE hỗ trợ chuẩn kết nối qua giao tiếp WSDL hoặc cho phép gọi các dịch vụ Web kiểu REST. ODE cũng cung cấp các API để trình xử lý BPEL có thể tích hợp với các lớp giao tiếp khác. Các ứng dụng dịch vụ Web có thể triển khai từ trình thiết kế hoặc qua giao diện quản trị dạng Web.Để mô hình hóa các tiến trình bằng ngôn ngữ BPEL, ODE sử dụng trình thiết kế Eclipse (phiên bản hỗ trợ mới nhất là Eclipse Indigo). Trình thiết kế BPEL đƣợc phát triển nhƣ là mô đun tích hợp vào công cụ Eclipse, vì thế sau khi cài đặt xong Eclipse, ngƣời dùng cần phải tải về bổ sung mô đun BPEL Visual Designer.

Kiến trúc của ODE

Mục đích của Apache Foundation khi thiết kế ODE là để tạo ra một mô-đun tin cậy, đóng gói và dễ dàng tích hợp để quản lý việc thực thi của các tiến trình nghiệp vụ sử dụng ngôn ngữ BPEL. Sản phẩm tập trung vào phát triển các mô-đun nhỏ với tính độc lập cao mà có thể đƣợc triển khai trên các hệ thống quản trị tiến trình nghiệp vụ (Business Process Management System).

Các thành phần chính trong kiến trúc của ODE trong hình 2.4 bao gồm bộ biên dịch ODE BPEL, trình chạy các ứng dụng BPEL, các đối tƣợng truy cập dữ liệu, các lớp tích hợp và các công cụ ngƣời dùng. Mô hình quan hệ mức cao giữa các thành phần đƣợc mô tả trong hình dƣớị Có thể tổng kết lại là “Bộ biên dịch sẽ chuyển đổi mã nguồn BPEL sang dạng có thể thực thi đƣợc. Quá trình thực thi sẽ giao tiếp với CSDL thông qua DAO, và giao tiếp với môi trƣờng bên ngoài thông qua lớp tích hợp”.

Hình 2.4Kiến trúc của Apache ODE

Bộ biên dịch ODE BPEL

Bộ biên dịch có trách nhiệm chuyển đổi từ mã nguồn BPEL sang thành mã nguồn có thể thực thi đƣợc. Đầu ra của bộ biên dịch có thể là một mã nguồn tốt hoặc một danh sách các thông báo lỗị File biên dịch sinh bởi bộ biên dịch là một mô hình đối tƣợng tƣơng tự với cấu trúc trong file tiến trình BPEL. Tuy nhiên, file biên dịch này thực tế chứa nhiều tên tham chiếu (ví dụ các biến), các liên kết WSDL, các kiểu biến, và các cấu trúc khác nhaụFile biên dịch này thƣờng có đuôi mở rộng là .cbp, là đầu vào không thể thiếu của trình chạy ứng dụng BPEL (BPEL runtime).

Trình chạy ứng dụng

Trình chạy ứng dụng đƣợc thiết kế trong mô đun bpel-tuntime nhằm hỗ trợ việc thực thi của các tiến trình sau khi đã biên dịch. Trình chạy này sẽ thực hiện các thao tác của tiến trình thông qua việc thực thi các cấu trúc của nó. Trong lúc chạy, mô-đun này sẽ tạo thêm đối tƣợng mới nếu cần và gửi thông điệp tới các đối tƣợng. Cuối cùng, trình chạy này sẽ thực thi các hàm API để tƣơng tác với bộ lõi của BPEL.

Để có thể thực hiện đƣợc đầy đủ một tiến trình trong mọi môi trƣờng, trình chạy dựa trên thành phần DAO (các đối tƣợng truy cập dữ liệu) giúp duy trì hoạt động của nó. Việc thực thi của những DAO này có thể đƣợc tùy biến nhƣng nhìn chung đƣợc cung cấp bởi một CSDL quan hệ.Quá trình thực thi các cấu trúc BPEL ở mức đối tƣợng đƣợc thực hiện dựa trên nền tảng kỹ thuật Java Concurrent Object (Jacob). Jacob cung cấp cơ chế thực hiện đồng thời ở mức ứng dụng và cơ chế trong suốt để ngắt và duy trì trạng thái thực thị Jacob là phần quan trọng trong mô hình thực thi đồng thời ACTORS. Jacob còn cung cấp một máy ảo cho việc thực thi các cấu trúc BPEL.

Đối tượng truy cập dữ liệu - DAO

DAO thực hiện tƣơng tác giữa các trình chạy BPEL và kho lƣu trữ dữ liệu phía dƣớị Thông thƣờng, dữ liệu đƣợc lƣu trữ dƣới dạng một CSDL quan hệ. Trong trƣờng hợp này, DAO sẽ thực thi thông qua thƣ viện truy cập dữ liệu OpenJPẠ Trình chạy BPEL yêu cầu DAO các ràng buộc sau:

 Các đối tƣợng đang hoạt động – Theo dõi đối tƣợng nào vừa đƣợc tạọ  Định hƣớng thông điệp – Đối tƣợng nào đang đợi thông điệp nàọ  Các biến – Giá trị của các biến cho mỗi đối tƣợng.

 Liên kết ngoài – giá trị của các liên kết ngoài cho mỗi đối tƣợng.

 Trạng thái thực thi của tiến trình – Chuỗi các trạng thái liên tiếp của máy ảo Javạ

Trình chạy BPEL không tồn tại một mình mà nó có thể thực hiện các tác động với bên ngoàị Các lớp tích hợp đƣợc liên kết với trình chạy để thực hiện nhiệm vụ nàỵ Ví dụ, có những lớp tích hợp riêng cho AXIS2 hay JBỊ Chức năng cơ bản của lớp tích hợp là nhằm cung cấp các kênh giao tiếp cho trình chạỵ Lớp tích hợp AXIS2 sử dụng các thƣ viện của AXIS2 để giao tiếp với trình chạy thông qua giao tiếp Dịch vụ Web. Còn lớp tích hợp JBI sử dụng cơ chế gắn trình chạy vào trục tích hợp JBỊ Bên cạnh việc giao tiếp, lớp tích hợp còn cung cấp cơ chế lập lịch và quản lý vòng đời của trình chạỵ Hai trong số những thách thức khó nhất trong việc thực thi của trình chạy BPEL là duy trì trạng thái thực thi của tiến trình và quản lý thực thi đồng thờị ODE sử dụng nền tảng Jcob để quản lý 2 vấn đề nàỵ Cách tiếp cận của Jcob lấy ý tƣởng từ cách tiếp cận của actor modelprocess elgebra. Thông qua Jacob, ODE duy trì trạng thái của tiến trình nhƣ là một tập các đối tƣợng đƣợc kết nối bằng một kênh truyền thông điệp. Khi một đối tƣợng nhận một thông điệp, nó có thể tạo các kênh và đối tƣợng mới và gửi

thông điệp; thực thi đồng thời đƣợc quản lý bởi vệc sử dụng các thông điệp trong mô hình đơn luồng.

2.3.2 ActiveVOS

Công ty Active Endpoints đƣợc thành lập từ năm 2003, là nhà cung cấp hàng đầu cho các giải pháp BPEL và các sản phẩm SOA khác. Active Endpoints có những sản phẩm BPEL nổi tiếng nhƣ trình thiết kế và trình xử lý ActiveBPEL, đƣợc hàng triệu lập trình viện và các tổ chức sử dụng. Trình thiết kế ActiveBPEL là công cụ để tạo các tiến trình BPEL và xuất ra tiến trình mẫu để chạy trên trình xử lý BPEL. Trình xử lý BPEL của Active Enpoints có thể chạy trên cả những phần mềm mã nguồn mở - Tomcat, hay những phần mềm thƣơng mại nhƣ WebLogic, WebSpherẹ Hình dƣới đây mô tả tổng quan bộ sản phẩm của Active BPEL.

Hình 2.5Bộ sản phẩm ActiveVOS

Trình thiết kế ActiveBPEL đƣợc cấu hình nhƣ là mô đun gắn vào công cụ quen thuộc Eclipsẹ Với giao diện thân thiện và quen thuộc với ngƣời lập trình, trình thiết kế này hỗ trợ ngƣời lập trình cách thiết kế theo phƣơng pháp từ trên xuống hay từ dƣới lên. Active BPEL Designer thiết kế sẵn các biểu tƣợng cho các đối tƣợng của BPEL (nhƣ các Activities, Handlers) để ngƣời phát triển có thể kéo thả vào vùng thiết kế. Sau đó, trình thiết kế Active BPEL sẽ tự động sinh ra các mã nguồn BPEL và các định nghĩa cho các tiến trình BPEL. Mọi thay đổi trên giao diện thiết kế sẽ đƣợc ghi nhận thành mẫu tiến trình theo ngôn ngữ BPEL và ngƣợc lạị Các dịch vụ bên ngoài sẽ đƣợc liệt kê trong phần Web References (ví dụ nhƣ WSDL) giúp ngƣời dùng dễ dàng trong việc tạo một sơ đồ tiến trình từ các định nghĩa WSDL. Ngoài ra, ngƣời dùng có thể tự thiết kế thêm các đối tƣợng của riêng mình dƣới dạng đối tƣợng BPELets, và thêm vào bảng đối tƣợng để có thể sử dụng lạị BPEL Designer không chỉ làm nhiệm vụ thiết kế mà còn cho phép ngƣời dùng biên dịch, đóng gói và triển khai ứng dụng lên trên các hệ thống mà không cần phải truy cập trực tiếp vào hệ thống đó. Ngoài ra, ngƣời phát triển cũng có thể mô phỏng thao tác của các tiến trình mà không cần phải chạy trực

tiếp trên hệ thống thật. Trong quá trình mô phỏng, BPEL Designer cho phép giả định đầu vào để ngƣời phát triển có thể thực hiện các kịch bản kiểm thử khác nhaụ

Hình 2.6Trình thiết kế ActiveVOS

Máy chủ Active BPEL có nhiệm vụ thực thi các tiến trình đã đƣợc thiết kế từ trƣớc. Các máy chủ này hỗ trợ cơ chế cân bằng tải, máy chủ cụm, và khả năng chịu lỗi, đem lại độ tin cậy và hiệu năng caọ Màn hình quản trị giao diện Web cho phép thực hiện các công việc quản trị tiến trình, giám sát và phân tích từ bất kỳ đâụ

Tổng quan kiến trúc của trình xử lý ActiveVOS

Kiến trúc của trình xử lý BPEL nhƣ trong hình 2.7 trên bao gồm 04 thành phần: Trình xử lý trung tâm, mô đun triển khai, mô đun các dịch vụ, mô đun quản trị. Phần quan trọng nhất trong kiến trúc của ActiveVOS là bộ xử lý trung tâm ActiveVOS. Nhiệm vụ của nó là xác định, đánh giá và thực thi các mẫu tiến trình viết bằng ngôn ngữ BPEL. Thành phần thứ 2 là các trình quản lý máy chủ bao gồm: quản lý cảnh báo, cấu hình cụm, triển khai, các tiến trình, hàng đợi, lƣu trữ, nhiệm vụ và xử lý các sự kiện phức tạp. Thành phần nền tảng thứ 3 đóng vai trò quan trọng trong việc giao tiếp với các hệ thống khác, thông qua việc hỗ trợ các giao thức nhƣ :WS, JMS, POJO, REST...Ngoài ra trên ActiveVOS còn có các tiện ích và dịch vụ khác nhƣ: Quản lý thời gian, ánh xạ URN, định danh dịch vụ, nhắn tin qua Email. Mô đun quản trị qua giao diện Web hỗ trợ ngƣời dùng có thể giám sát và quản lý hệ thống ở bất cứ đâụ

Trình xử lý trung tâm(Process Engine) có nhiệm vụ biên dịch ngôn ngữ BPEL thành ngôn ngữ máy có thể thực thi đƣợc. Nó cũng sẽ tạo ra các tiến trình và quản lý vòng đời hoạt động của nó. Các yêu cầu gửi đến cho tiến trình sẽ đƣợc quản lý trong hàng đợi để đảm bảo tất cả đều đƣợc xử lý. Trong quá trình thực thi nếu có lỗi thì trình xử lý sẽ đƣa ra các cảnh báo nếu có. Trong quá trình thực hiện, mọi thông tin sẽ đƣợc lƣu lại vào CSDL.

Các tiến trình (Process) đƣợc tạo ra sẽ giao tiếp với trình xử lý thông qua định dạng chuẩn hoặc trực tiếp qua APỊ Các tiến trình này sẽ dựa vào mẫu tiến trình (file BPEL) để tạo ra các lớp thực hiện. Các lớp sẽ thực hiện các tác vụ nhƣ invoke, receive, response, assign … có trong file mẫu tiến trình. Trong quá trình thực hiện, các lớp sẽ sinh ra các thông báo sự kiện khi gặp lỗi và tự dẫn xuất trong phạm vi tác vụ nếu cần. ActiveVOS cho phép cài đặt nhiều ngôn ngữ thể hiện biểu thức (Expression Processing). Trƣớc hết, ngôn ngữ biểu thức cần đăng ký một không gian tên (namespace) trong tiến trình BPEL để ngƣời phát triển có thể sử dụng đƣợc trong tiến trình đó. Sau khi đăng ký, ngôn ngữ biểu thức sẽ thực hiện trong cả quá trình thiết kế và thực thị ActiveVOS hỗ trợ sẵn 3 kiểu ngôn ngữ biểu thức là Xpath, Xquery và JavaScript.

ActiveVOS hỗ trợ nhiều hình thức triển khaiứng dụng (Deployment Plan): có thể sử dụng màn hình Admin Console để triển khai file .BPR, hoặc từ trình thiết kế deploy lên server đƣợc cấu hình sẵn. File nén BPR chứa toàn bộ tiến trình và các mô tả triển khai (file PĐ – Process Deployment Descriptor) cũng nhƣ các tài nguyên khác nhƣ file WSDL, Schema và Style Sheets. Khi triển khai, ActiveVOS tự nhận ra các dẫn xuất hoặc nhập từ các nguồn khác (ví dụ nhƣ các dịch vụ Web bên ngoài). Các ứng dụng dịch vụ Web đƣợc đánh dấu phiên bản để quản lý thay đổi, giúp cho ngƣời quản trị có thể kiểm soát đƣợc những thay đổi về ứng dụng và các tài nguyên tƣơng ứng. Một ứng dụng khi đƣợc triển khai sẽ có 3 trạng thái: Online, Offline và Offline Pending. Tại một thời điểm, chỉ có một phiên bản của ứng dụng ở trạng thái Online,

còn Offline Pending là trạng thái mà tiến trình đó đang chạy hoặc các tiến trình Online khác đang tham chiếu đến nó.

Khi cài đặt, trình thiết kế ActiveVOS đã có sẵn máy chủ ứng dụng Tomcat, đƣợc sử dụng để triển khai ứng dụng với mục đích kiểm thử. Ngƣời phát triển có thể chạy ngay máy chủ Tomcat từ trình thiết kế hoặc chạy riêng từ thƣ mục gốc của Tomcat. Để lƣu thông tin các tiến trình và quá trình hoạt động, ActiveVOS sử dụng CSDL Derbỵ Ngoài ra, ActiveVOS cũng hỗ trợ nhiều nền tảng khác kể cả mã nguồn mở và thƣơng mại nhƣ: máy chủ ứng dụng JBoss, WebSphere, Weblogic, các CSDL: DB2, Oracle, SQL Server và MySQL. ActiveVOS hỗ trợ triển khai theo kiến trúc máy chủ cụm, trong đó trình xử lý có thể cài đặt trên nhiều máy chủ vật lý để cân bằng tải và nâng cao tính sẵn sàng của hệ thống.

ActiveVOS hỗ trợ nhiều giao tiếp với các hệ thống bên ngoài nhƣ các hàm API, thành phần quản trị, bắt sự kiện. Nó cũng hỗ trợ một loạt các giao thức nhƣ WS-* Support,

Một phần của tài liệu (LUẬN văn THẠC sĩ) so sánh hiệu năng của các trình xử lý BPEL (Trang 29)

Tải bản đầy đủ (PDF)

(64 trang)