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.