Chuyển đổi UML sang BPEL

Một phần của tài liệu Khảo sát khả năng sử dụng ngôn ngữ bpel để cài đặt các mô hình tiến trình phần mềm (Trang 54 - 58)

Các nghiên cứu chuyển đổi UML sang BPEL đều tập trung chuyển đổi sơ đồ hoạt động của UML sang BPEL. Sử dụng UML Profile là hƣớng tiếp cận đƣợc nhiều tác giả sử dụng nhất. Trong [23] tác giả đã định nghĩa một UML Profile để tự động hóa tiến trình nghiệp vụ và chuyển đổi các thành phần trong UML1.4 sang BPEL1.1. UML Profile này bao gồm các stereotype <<process>>, <<invoke>>, <<assign>>, <<reply>>… Việc

chuyển đổi đƣợc thực hiện bằng cách sử dụng ngôn ngữ Java để áp dụng các luật chuyển đổi vào mô hình UML đƣợc lƣu trữ dƣới định dạng XMI. Mã nguồn BPEL sẽ đƣợc sản sinh cùng lúc với mô tả WSDL và lƣợc đồ XSD [Hình III-6].

Hình III-6 Qui trình chuyển đổi UML Profile sang BPEL [23]

Các luật chuyển đổi đƣợc đề nghị chƣa cụ thể. Hơn nữa phiên bản sơ đồ hoạt động trên phiên bản UML2.0 có khác biệt rất lớn so với phiên bản UML1.4 mà tác giả thử nghiệm. [Bảng III-2] liệt kê các luật chuyển đổi của tác giả.

Bảng III-2 UML1.4 Profile thành BPEL [23]

Profile Construct BPEL4WS Concept

<<process>> class B BPEL process definition Activity graph on a <<process>> class BPEL activity hierarchy

<<process>> class attributes BPEL variables

Hierarchical structure and control flow B BPEL sequence and flow activities

<<receive>>, <<reply>>, <<invoke>> activities BPEL activities

Với phiên bản UML2.0, các hành động mang ngữ nghĩa thực thi đƣợc định nghĩa thông qua các executable action. Việc này làm thu hẹp khoảng trống về

mặt thực thi giữa UML và BPEL. Trong [24] tác giả đã định nghĩa một UML2.0 Profile cho BPEL1.1 với khả năng mô tả đƣợc các mục tiêu của tiến trình nghiệp vụ với các stereotype nhƣ <<Process Goal>>, <<Measure>>, <<Alert>>, <<Organisational Structure>>… Các luật chuyển đổi tác giả đƣa ra chỉ phục vụ chuyển đổi các action mà chƣa đề cập đến các thành tố điều khiển nhƣ nút trộn, nút chia… [Bảng III-3] liệt kê các luật này.

Bảng III-3 Bảng quan hệ giữa UML2 profile và BPEL

UML Base Class UML Stereotype BPEL Tag

Action <<AcceptEventAction>> <receive>

Action <<CallOperationAction>> <invoke>

Action <<CallBehaiviourAction>> <assign>

Action <<SendSignalAction>> <reply>

Activity Partition/ Structured Activity Node/ Control Flow

<<Cycle Time>> <<Waiting Time>> <<Working Time>> <onAlarm> <onAlarm> <onAlarm>

Activity Partition <<Organisational Unit>> <partnerLink>

Activity Partition <<Organisational Role>> <partnerLink>

Trong [25], tác giả cũng chỉ tập trung chuyển đổi các action, việc chuyển đổi các thành tố điều khiển cũng nhƣ các cấu trúc điều khiển nhƣ lặp, xử lý ngoại lệ không đƣợc đề cập. Quá trình chuyển đổi của tác giả đầu tiên chuyển đổi tên activity thành tên của tiến trình, sau đó thực hiện lần lƣợt các luật chuyển đổi UMLDatastore2BPVariable (chuyển đổi các biến, các đối tƣợng lƣu giữ dữ liệu sang các biến trong BPEL), ActivityPartition2BP- PartnerLink (chuyển đổi các partition và swimlane sang <partnerLink>) và UMLProcessActivity2BPActivity (chuyển đổi các UML activity sang BPEL activity). [Bảng III-4] mô tả quá trình chuyển đổi này, tác giả sử dụng ngôn ngữ OCL để đặc tả các luật.

chuyển đổi ngôn ngữ này sang BPEL. Nhóm tác giả đã tìm ra đƣợc 35 luật để chuyển đổi. [Bảng III-5] mô tả một số các luật này. Nhóm tác giả cài đặt chuyển đổi sử dụng Java, thuật toán chuyển đổi cơ bản gồm sáu bƣớc:

1) Khởi tạo một tiến trình BPEL rỗng từ mô hình tiến trình

2) Tạo phần <import> và <variable> để xử lý chuyển đổi tất cả các thành tố không có khái niệm tƣơng ứng trong BPEL thành biến 3) Tạo phần <flow> và <links> để cài đặt các tiến trình xử lý song

song và đồng bộ

4) Tạo các hoạt động <receive> để khởi động <flow> và nhận tham số là các Work Product

5) Chuyển đổi các hoạt động của con ngƣời bằng cách sử dụng bộ <invoke>/<receive> trên một dịch vụ web định sẵn “Workflow Administration”

6) Bƣớc cuối cùng, tạo bằng tay phần <import> và cấu hình WSDL các dịch vụ web.

Bảng III-5 Một số các luật chuyển đổi UML4SPM sang BPEL

UML4SPM BPEL

Software Activity BPEL Process

SoftwareActivityType BPEL Variable with name = "ActivityType"

and type = "String" Software Activity's attributes and

associations

BPEL Variable with name = "attributeName" (respectively "associationEndName") and type = "XSD_Type". The type may be simple or complex and defined in a xsd file

Software Activity hierarchy and enclosing elements (actions, inputpins and ouputpin, control nodes, etc)

BPEL Sequence or Flow elements

Pre and Post Conditions of a Software Activity

Value of the Pre/Post Condition The text element of the BPEL Transition Condition

Trong quá trình chuyển đổi, tất cả các khái niệm trong tiến trình phần mềm hầu hết đều không có khái niệm tƣơng ứng bên BPEL. Tất cả các thành tố nhƣ ReponsibleRole, Guidance, Time, Limit đều đƣợc chuyển sang dƣới dạng biến của BPEL. Trái lại, đối với các đối tƣợng đều khiển nhƣ nút điều kiện, nút lặp… lại đƣợc dễ dàng chuyển đổi sang BPEL do tồn tại các khái niệm tƣơng ứng (<if>, <while>… ). Trong khi các tiến trình nghiệp vụ có thể tự động hóa hoàn toàn thì tiến trình phần mềm lại liên quan nhiều đến các hoạt động của con ngƣời nhƣ mô hình hóa, kiểm tra, giao tiếp… Điều này khiến các ngôn ngữ mô hình hóa tiến trình phần mềm phải hỗ trợ việc mô hình hóa các tƣơng tác của con ngƣời, thế nhƣng trong BPEL lại không cung cấp các khái niệm để biểu diễn điều này.

Một phần của tài liệu Khảo sát khả năng sử dụng ngôn ngữ bpel để cài đặt các mô hình tiến trình phần mềm (Trang 54 - 58)

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

(118 trang)