Nhằm trả lời cho câu hỏi liệu có thể sử dụng BPEL để cài đặt các mô hình tiến trình phần mềm UML-PP đƣợc hay không, chúng tôi đã tiến hành chọn lọc một số mô hình tiến trình phần mềm trên ngôn ngữ này sau đó thực hiện chuyển đổi chúng sang BPEL. File kết quả thu đƣợc sẽ đƣợc kiểm tra và thực thi trên một bộ máy thực thi BPEL. Chi tiết các bƣớc khảo sát:
Chọn lọc mô hình tiến trình phần mềm: các mô hình đƣợc chọn bao gồm các mô hình trong [6], [17] nhƣ Fagan Code Inspection, Code Refactor, một mô hình trong [26] Modify Design và một mô hình sử dụng lại mẫu tiến trình. Modify Design là một mô hình tiến trình phần mềm nằm trong mẫu các mô hình phần mềm ISPW-6 [12]. ISPW-6 là một tập hợp các mẫu tiến trình phần mềm ví dụ giúp giải quyết các vấn đề phổ biến trong công nghệ phần mềm. ISPW-6 đƣợc xem nhƣ là một thƣớc đo để kiểm tra các ngôn ngữ mô hình hóa phần mềm. Các mô hình đƣợc chọn còn lại đều là các mẫu tiến trình phần mềm hay gặp trong qui trình phần mềm nhƣ inspection code, refactor code. Do UML-PP cung cấp ba mức độ trừu tƣợng cho một thành tố phần mềm (Abstract, General, Concrete), trong khi đó phạm vi của đề tài là khảo sát thực thi nên chúng tôi chỉ chọn khảo sát trên một mức độ trừu tƣợng là General. Để biểu diễn các mô hình trên, chúng tôi đã thử sử dụng phần mềm PATRO-MOD [17] – đây là một phần mềm mô hình hóa hỗ trợ đầy
đủ cú pháp của UML-PP đồng thời hỗ trợ cả việc biểu diễn, lƣu trữ và tái sử dụng mẫu tiến trình. Tuy nhiên PATRO-MOD lƣu trữ mô hình dƣới dạng file nhị phân, định dạng này không đƣợc hỗ trợ trên các nền tảng mô hình nhƣ eclipse. Hơn nữa, định dạng này cũng không phù hợp với hƣớng tiếp cận chuyển đổi mô hình mà chúng tôi lựa chọn. Vì thế để biểu diễn các mô hình này, chúng tôi quyết định xây dựng một phần mềm mô hình hóa UML-PP mới hỗ trợ bộ cú pháp tôí thiểu trong các ví dụ trên. Phần mềm hỗ trợ lƣu trữ mô hình theo chuẩn XMI đồng thời tuân theo metamodel của UML-PP (chi tiết xem mục 4.4)
Chuyển đổi mô hình phần mềm UML-PP sang BPEL: chúng tôi sử dụng kết hợp hai phƣơng pháp chuyển đổi mô hình sang mô hình và mô hình sang text. Cụ thể hƣớng tiếp cận đƣợc mô tả nhƣ sau:
Hình IV-1 Phƣơng pháp chuyển đổi mô hình UML-PP sang BPEL
M3 M2 M1
Ecore
UML-PP BPEL
UML-PPModel BPELMode BPEL XML
M1: model M2 : metamodel M3: meta-metamodel
Tuân theo Chuyển đổi
Đầu tiên, mô hình tiến trình phần mềm UML-PPModel tuân theo metamodel UML-PP sẽ đƣợc chuyển sang mô hình nghiệp vụ BPELModel tuân theo metamodel BPEL. Metamodel UML-PP là mô hình metamodel của ngôn ngữ mô hình UML-PP; metamodel BPEL là mô hình metamodel của ngôn ngữ BPEL. Cả hai metamodel đều phải tuân thủ theo mô hình meta-metamodel của ecore (việc xây dựng hai metamodel này sẽ đƣợc đề cập trong mục
4.2, 4.3). Ngôn ngữ dùng để chuyển đổi là ATL, đây là một ngôn ngữ chuyển đổi mô hình sang mô hình dạng lai. ATL giúp ta đặc tả các luật chuyển đổi các phần tử nguồn sang phần tử đích sử dụng ngôn ngữ OCL. Trong phần 4.4 chúng tôi sẽ trình bày bộ luật chuyển đổi. Tiếp theo, mô hình BPELModel sẽ đƣợc chuyển sang dạng XML file tuân theo bảng đặc tả chuẩn của OASIS [7] sử dụng ngôn ngữ Acceleo. Acceleo là một ngôn ngữ chuyển đổi mô hình sang text sử dụng template
Kiểm tra và thực thi file BPEL XML: File BPEL XML thu đƣợc sau quá trình chuyển đổi sẽ đƣợc kiểm tra trên Netbeans 6.7.1 và thực thi trên GlassFish Server v2.1. Do BPEL bản chất dùng để phối hợp các dịch vụ web nên để thực thi đƣợc file chuyển đổi này ta phải tạo các dịch vụ web sẵn cùng với các file mô tả dịch vụ WSDL. Nhằm mục đích khảo sát, chúng tôi thiết lập một dịch vụ có tên HumanActivity dùng để thực thi tất cả các yêu cầu của tiến trình phần mềm. Dịch vụ này đơn giản tiếp nhận một yêu cầu và trả về một phản hồi thông báo kết quả thực thi.