Tiếp cận của luận án hướng đến việc biểu diễn các hoạt động trong kế hoạch bằng ngôn ngữ luồng công việc. Cụ thể hơn là biểu diễn bằng BPEL cho các hoạt động ở mức thực thi.
Vì vậy phần này sẽ xem xét các kỹ thuật hiện nay để có thể thực thi được các tiến trình BPEL trong môi trường lưới.
BPEL được khai thác thành công nhờ khả năng kết hợp các dịch vụ web trong việc mô tả luồng công việc phục vụ các ứng dụng doanh nghiệp. Hướng đến một áp dụng tương tự cho môi trường lưới, một số nghiên cứu sử dụng BPEL để kết hợp các dịch vụ lưới trong các công việc có cấu trúc và mức độ cao hơn như các luồng lưới. Tuy nhiên, do bản tính có trạng thái của dịch vụ lưới, BPEL và các engine của nó không thể được khai thác trực tiếp nếu không có các tính năng bổ sung.
Trong thời gian gần đây, nhiều nỗ lực trong các nghiên cứu nhằm cố gắng giải quyết vấn đề này. Một số đề xuất đã được đưa ra cho phép gọi các dịch vụ lưới từ BPEL [95], [71], dành riêng cho ActiveBPEL engine. Với ODE [75], một BPEL engine mã nguồn mở khá phổ biến, hiện tại chưa thấy một giải pháp cụ thể nào. Do đó, luận án tập trung vào thực hiện các dịch vụ lưới trong ODE engine. Cụ thể, quá trình thực hiện sẽ gồm hai bước:
- Bước 1: Phân tích cơ chế ODE gọi các dịch vụ thực hiện tiến trình;
- Bước 2: Đề xuất giải pháp thực tiễn cho phép ODE có khả năng cung cấp các dịch
vụ lưới.
Dịch vụ lưới là một dịch vụ Web có trạng thái, kết hợp với các tài nguyên cố kết. Mỗi tài nguyên có ID riêng, được gọi là một Resource Key (Khóa Tài Nguyên). Sự kết hợp của địa chỉ dịch vụ lưới và tài nguyên tương ứng xác định một Tham chiếu Điểm cuối (endpoint reference- EPR). Thông thường, giá trị của địa chỉ dịch vụ lưới là tĩnh, được xác định trước khi chạy dịch vụ. Tuy nhiên, giá trị của khóa tài nguyên lại động. Điều này gây ra khó khăn cho ODE khi xử lý dịch vụ lưới. Các cách tiếp cận có thể dùng để giải quyết vấn đề này bao gồm:
- Mở rộng BPEL bằng cách bổ sung thêm các hoạt động mới [95] vào trong BPEL chuẩn. Trong số các hoạt động này, có một hoạt động (được gọi là
gridCreateResource-Invoke) được dùng để lấy EPR, một hoạt động khác (được gọi
là GridInvoke) được dùng để gọi các thao tác của dịch vụ lưới.
- Bổ sung thêm một thao tác cho dịch vụ lưới như được đề xuất trong [71], [72]. Thao tác này sẽ trả về EPR của một thể hiện của dịch vụ lưới đó (nên thao tác đó thường được gọi là CreateResource).
Rõ ràng là việc mở rộng BPEL không phải là một việc đơn giản, đòi hỏi nhiều thay đổi trong engine BPEL chuẩn, từ việc biên dịch các tiến trình BPEL cho đến cài đặt các hành động mới. Nghiên cứu của luận án sẽ tập trung vào việc bổ sung thao tác cho dịch vụ lưới do tiềm năng cung cấp các giải pháp nhanh gọn hơn và tốt hơn.