Các ngôn ngữ cho phép tổng hợp quá trình Web từ nhiều dịch vụ Web là rất quan trọng để cho phép tích hợp ứng dụng mức xí nghiệp (EAI – Enterprise Application Integration) cũng như tích hợp quá trình kinh doanh.
Hiện có rất nhiều nỗ lực đưa ra các chuẩn về vấn đề này, và đa số các chuẩn này đều dựa trên nền tảng của ngôn ngữ XML. Trong số các dự thảo, các đề nghị đó nổi bật có 3 chuẩn sau đang nhận được sự ủng hộ và thừa nhận ngày càng cao:
• BPEL4WS – Business Process Execution Language for Web Services Logic mệnh đề
Logic vị từ
Frame Logical form
Resource Description Framework Ontology Inference Layer
DAML+OIL
BPEL BPML OWL-S
METEOR-S
Mong muốn của luận văn này
• DAML-S – DAML-based Web Service Ontology (hiện đã đổi tên thành OWL-S)
Mặc dù những chuẩn này cùng có mục đích là mô tả, tổng hợp quá trình Web từ các dịch vụ Web, chúng khác nhau trên nhiều khía cạnh. Muốn so sánh các chuẩn này thì phải nghiên cứu kỹ kịch bản ứng dụng các quá trình Web và sự hỗ trợ của từng chuẩn này trong mỗi kịch bản ứng dụng.
Hiện có nhiều tài liệu so sánh các chuẩn tổng hợp quá trình Web này.
Trước hết chúng ta xét qua một số nét chính trong 3 chuẩn tổng hợp quá trình Web vừa nói, chỉ ra một số nhược điểm của mỗi loại và nêu ý tưởng mà một cách cải tiến nên có.
2.9.1 BPEL4WS
BPEL4WS [2, 3] là một ngôn ngữ cho phép xác định các quá trình Web và các giao thức quy định cách tương tác giữa các dịch vụ Web (các giao thức này còn được gọi là các quá trình Web trừu tượng). BPEL4WS thay thế hai ngôn ngữ trước đây là XLANG và WSFL trong việc đặc tả dòng chảy các dũch vuù Web.
BPEL cung cấp mô hình và văn phạm dựa trên XML, cho phép định nghĩa các tương tác giữa một quá trình Web với các đối tác của quá trình Web này thông qua những giao diện của các dịch vụ Web (các giao diện cho biết chữ kyự – signature – cuỷa dũch vuù Web).
Trong BPEL, đối tác của một quá trình Web được định nghĩa chính là dịch vụ Web. BPEL cũng định nghĩa trạng thái và ý nghĩa logic của các tương tác giữa một quá trình Web với các đối tác của quá trình Web. BPEL còn định nghĩa những phương pháp giải quyết các ngoại lệ một cách hệ thống.
Các quá trình Web trừu tượng được dùng để xác định việc trao đổi thông điệp giữa các bên liên quan, nhưng không cho biết hành vi bên trong hay cách hiện thực của các dịch vụ Web như thế nào. Trong khi đó các quá trình Web thực thi được (quá trình Web cụ thể) lại giống như các mô tả dòng công việc (workflow), sử dụng các hoạt động (activity) cơ bản và các hoạt động có cấu trúc để xác định dạng thức, thứ tự thực thi của các dịch vụ Web có liên
Mô hình về quá trình Web của BPEL dựa trên ngôn ngữ mô tả dịch vụ Web WSDL, trong đó các dịch vụ Web do quá trình Web này kích hoạt và các dịch vụ Web kích hoạt quá trình Web này đều được biểu diễn bằng ngôn ngữ WSDL. Một quá trình Web thực thi được cũng có thể là một dịch vụ Web, và giao diện của quá trình Web này có thể được biểu diễn bằng WSDL.
2.9.2 BPML
BPML [4] là một ngôn ngữ mô hình hóa quá trình Web. BPML dựa trên một mô hình và văn phạm trừu tượng để biểu diễn các quá trình Web trừu tượng cũng như các quá trình Web thực thi được. Dùng BPML có thể định nghĩa các quá trình Web, các dịch vụ Web phức tạp cũng như sự hợp tác giữa nhiều đối tác.
Một quá trình trong BPML được hiểu như sự tổng hợp của các hoạt động, mỗi hoạt động thực hiện một số chức năng nào đó. Quá trình Web này sẽ điều khiển sự thực thi của các hoạt động. Một quá trình cũng có thể là một phần của một quá trình khác.
Mỗi hoạt động (cả hoạt động đơn giản và hoạt động phức tạp – hoạt động phức tạp là quá trình Web, mà quá trình Web này là một phần của quá trình Web đang xét) trong một quá trình có một ngữ cảnh (context), ngữ cảnh này định nghĩa các hành vi thông dụng của mọi hoạt động được thực thi trong ngữ cảnh đó. Dựa trên khái niệm về ngữ cảnh như vậy BPML định nghĩa quá trình Web là một hoạt động phức tạp tự định nghĩa ngữ cảnh thực thi của riêng nó.
Đặc tả BPML định nghĩa 17 loại hoạt động và 3 loại quá trình. Các loại quá trình gồm có quá trình lồng nhau (nested process) là loại quá trình được định nghĩa để thực thi trong ngữ cảnh nhất định, và định nghĩa của quá trình là một phần định nghĩa của ngữ cảnh. Loại quá trình thứ hai là quá trình ngoại lệ (exception process), chuyên dùng để xử lý các biến cố xảy ra khi thực thi một quá trình cha chứa nó. Loại quá trình thứ ba là quá trình bồi thường (compensation process) giúp xử lý các hậu quả do biến cố sinh ra trong quá trình cha.
Trong định nghĩa của quá trình nêu rõ một trong ba cách mà quá trình được tạo ra: đáp ứng với một thông điệp nhận được, đối phó với một signal mới phát sinh, do một hoạt động kích hoạt. Đặc tả BPML hỗ trợ việc tham
đưa ra đề nghị chuẩn hóa tài liệu BPML bằng cách dùng RDF cho siêu dữ liệu có ngữ nghĩa, XHTML và siêu dữ liệu Dublin Core nhằm cải thiện tính dễ đọc cũng như khả năng xử lý của ứng dụng.
2.9.3 DAML-S (Tên mới là OWL-S)
DAML-S (DAML-based Web Service Ontology) [13] là một cách tiếp cận mới nhằm cung cấp một ngôn ngữ đánh dấu đủ mạnh để biểu diễn các tính chất cũng như các chức năng của những dịch vụ Web một cách có ngữ nghĩa. DAML-S dựa trên DAML+OIL với mục đích cho phép tìm kiếm, kích hoạt, soạn thảo (compose) và theo dõi các dịch vụ Web.
DAML-S định nghĩa một ontology thích hợp cho việc khai báo và mô tả các dịch vụ bằng cách dùng một tập các lớp và thuộc tính cơ bản. Trong DAML-S, mỗi dịch vụ Web được xem như một Process, và Process Model của nó được dùng để điều khiển các tương tác với dịch vụ Web.
Các chi tiết về hoạt động của dịch vụ Web được nắm bắt thông qua hai loại ontology là Process Ontology và Process Control Ontology. Process Ontology mô tả dữ liệu nhập, dữ liệu xuất, các tiền điều kiện, các kết quả (effects) cũng như các thành phần con của dịch vụ Web. Process Control Ontology cho phép giám sát hoạt động của dịch vụ Web. Tuy nhiên phiên bản hiện hành của DAML-S chưa định nghĩa Process Control Ontology.
DAML-S phân loại các quá trình thành ra 3 loại: Loại thứ nhất là quá trình nguyên tố (atomic process). Đây là quá trình không có các thành phần con và thực thi được trong một bước đơn lẻ. Loại thứ hai là quá trình đơn giản (simple process). Quá trình đơn giản nhằm cung cấp nền tảng để biểu diễn các quá trình nguyên tố và các quá trình phức hợp, và vì thế không kích hoạt để thực thi các quá trình đơn giản được. Loại thứ ba là quá trình phức hợp (composite process), đây là quá trình phân rã được thành các quá trình con.
Một quá trình phức hợp dùng một số cấu trúc điều khiển để xác định làm thế nào các dữ liệu nhập được chấp nhận và làm thế nào các dữ liệu xuất được trả veà.
Việc so sánh và phân tích các đặc điểm của những ngôn ngữ này một cách chi tiết [8, 9, 10] là rất cần thiết để tạo ra một chuẩn mạnh mẽ phục vụ cho
Các quá trình Web nên có tính “động” và linh hoạt để thích ứng được với sự thay đổi nhu cầu của khách hàng và thị trường. Để đáp ứng các đòi hỏi này, BPEL và BPML [9] trừu tượng hóa các tham khảo dịch vụ Web bằng cách dùng các giao diện dịch vụ Web chứ không dùng các hàm hiện thực dịch vụ Web. Điều này giúp chọn đúng các hàm hiện thực dịch vụ Web cho mỗi hoạt động trong quá trình triển khai quá trình Web (gọi là ràng buộc trong thời gian triển khai) hay trong quá trình thực thi quá trình Web (gọi là ràng buộc trong thời gian thực thi).
Tuy nhiên các chuẩn tổng hợp quá trình Web hiện hành như BPEL và BPML thiếu một đặc điểm quan trọng, đó là không thể biểu diễn các hành động trong quá trình Web một cách có ngữ nghĩa [1]. Ví dụ như BPML thì chỉ đề nghị thêm ngữ nghĩa vào việc mô tả các quá trình Web.
Có một số công trình đã giải quyết vấn đề này bằng cách thêm ngữ nghĩa vào các hoạt động của một quá trình Web [1]. Ngữ nghĩa của tất cả các hoạt động riêng biệt trong một quá trình Web được nắm bắt và lưu trữ trong một process template (dạng như một mẫu mô tả về quá trình Web). Các mô tả về ngữ nghĩa của những hoạt động này được tách biệt khỏi bản hiện thực của dịch vụ Web. Trước khi triển khai quá trình Web, hệ thống sẽ tìm kiếm các dịch vụ Web nào thỏa mãn yêu cầu ngữ nghĩa đã mô tả, sau đó các dịch vụ Web này sẽ được ràng buộc vào hoạt động tương ứng của quá trình Web trong process template. Dựa vào các thông tin về giao diện và kiểu thông điệp do các dịch vụ Web cung cấp, một quá trình Web thực thi được sẽ được sinh ra roài trieồn khai.
Với cách giải quyết như trên, các hệ thống quản lý quá trình Web đều rất cần đến một giải thuật tìm kiếm dịch vụ Web có hiệu quả dựa trên các đòi hỏi biết trước. Đòi hỏi này càng trở nên quan trọng khi tính tới số lượng các dịch vụ Web trên Internet. Cách tìm kiếm dựa trên từ khóa nhiều khi không đem lại hiệu quả tốt, và tìm kiếm dựa trên ngữ nghĩa là một giải pháp bổ sung rất hữu hiệu.
2.9.4 METEOR-S
Mặc dù chỉ trong phạm vi một trường Đại học, nhưng dự án METEOR-S [1]
của đại học Georgia, Mỹ có những nghiên cứu rất giá trị về cách thức đặc tả
METEOR-S hướng tới giải quyết tất cả các vấn đề liên quan tới chu trình sống của quá trình Web, và dự án được chia nhỏ thành nhiều phần để giải quyết các bài toán nhỏ hơn liên quan đến quá trình Web.
Kết quả đáng giá của dự án trong việc đặc tả ngữ nghĩa cho quá trình Web là mô tả được ngữ nghĩa cho quá trình Web bằng cách kết hợp DAML+OIL với WSDL. Cách làm này dựa trên phân tích rằng mặc dù DAML-S cũng dùng DAML+OIL để biểu diễn ngữ nghĩa cho quá trình Web, DAML-S lại thiếu các cấu trúc chỉ ra chi tiết việc truyền thông, nói chuyện giữa các dịch vụ Web; DAML-S phức tạp và chưa trở thành chuẩn được áp dụng rộng rãi trên phạm vi toàn cầu trong khi đó WSDL có ưu điểm là chuẩn mô tả đơn giản đã được chấp nhận rộng rãi.
Cách làm của METEOR-S có ưu điểm hơn BPEL ở chỗ khả năng biểu diễn ngữ nghĩa mạnh mẽ hơn: Trong khi BPEL chỉ cho phép biểu diễn quá trình Web hạn chế về ngữ nghĩa thì METEOR-S cho phép biểu diễn quá trình Web có ngữ nghĩa mạnh mẽ bằng cách dùng DAML+OIL. Trong khi BPEL chỉ cho phép biểu diễn quá trình Web từ nhiều dịch vụ Web cụ thể thì METEOR-S cho phép biểu diễn quá trình Web từ 3 loại mô tả dịch vụ Web khác nhau: các dịch vụ Web cụ thể, các giao diện của dịch vụ Web (Web service interface), các mẫu mô tả các hoạt động có ngữ nghĩa (semantic activity template).