1.6.1 Vấn đề còn tồn tại
Từ việc xem xét khái quát ở trên, luận án nhận ra một số vấn đề còn tồn tại cần được tiếp tục nghiên cứu và giải quyết. Mặc dù số lượng và phạm vi của những vấn đề này là khá nhiều và đa dạng, chúng đều liên quan đến vấn đề phát triển khung cộng tác đa dụng trong môi trường tính toán lưới. Ở đây, để tiện cho việc nắm bắt và giải quyết các vấn đề này, luận án phân chia chúng theo nguồn gốc phát sinh. Theo đó, các vấn đề còn tồn tại hiện nay được chia thành hai nhóm:
37
- Nhóm thứ nhất: gồm các vấn đề liên quan đến các mô hình và cách tiếp cận hiện nay về kế hoạch và sự cộng tác. Nhóm này bao gồm các vấn đề sau:
Mối quan hệ phức tạp giữa kế hoạch và sự cộng tác chưa được giải thích rõ ràng. Đa số các lý thuyết chỉ coi kế hoạch như một công cụ cộng tác, và quá trình lập kế hoạch như một công việc kết nối. Tuy nhiên, có thể thấy nguồn gốc của rất nhiều loại hình cộng tác đều xuất phát từ các bản kế hoạch. Hơn nữa bản thân quá trình lập kế hoạch cũng thường là một công việc cộng tác và cũng cần có sự hỗ trợ của các công cụ cộng tác. Việc làm rõ mối quan hệ này có vai trò rất quan trọng trong việc thấu hiểu các khái niệm, để từ đó chúng có thể được hình thức hóa và biểu diễn một cách đúng đắn, đầy đủ và hiệu quả.
Cấu trúc của kế hoạch và sự phát triển của nó cũng chưa được đề cập đến. Khái niệm về kế hoạch xuất hiện dưới rất nhiều dạng khác nhau trong các công việc thực tế: từ một bảng phân công công việc trong một nhóm làm việc, một chu trình sản xuất một sản phẩm, cho đến những kế hoạch phát triển cho một vùng, một quốc gia. Tuy nhiên, cấu trúc chung của chúng, cũng như quá trình hình thành phát triển của chúng như thế nào thì dường như chưa có một lý thuyết nào đề cập đến.
- Nhóm thứ hai: gồm các vấn đề liên quan đến các các khung có hỗ trợ cộng tác hiện nay. Nhóm này bao gồm một số vấn đề sau:
Chỉ có tính chuyên biệt cho từng lĩnh vực: Mỗi khung lưới trên gắn chặt với một lĩnh vực ứng dụng chuyên biệt và điều này làm cho chúng rất khó có thể được sử dụng lại như một khung lưới cho các ứng dụng trong lĩnh vực khác. Ví như hệ thống PATIENT SCHEDULER chỉ nhắm vào các ứng dụng trong điều trị y tế; GCF-MD chỉ hỗ trợ các thiết bị di động và không đi theo kiến trúc mở hướng dịch vụ (SOA);
Thiếu khả năng hỗ trợ kế hoạch: Với đa số các công việc cộng tác, bước đầu tiên là lập kế hoạch để tạo ra một kế hoạch thực hiện, chứa dãy các công việc cần được thực hiện bởi những thành viên phụ thuộc vào vai trò, vị trí của họ. Sau đó, theo kế hoạch, công việc sẽ được phân bổ, được thực thi và được giám sát để nắm được tiến độ thực hiện công việc, từ đó có những bước đánh giá tiếp theo. Thiếu khả năng hỗ trợ kế hoạch sẽ rất khó khăn để nắm được tiến độ công việc cũng như hỗ trợ sự cộng tác, và quan trọng hơn là thay đổi kế hoạch một khi nó đang được triển khai. Ví dụ các hệ thống OCGSA, LAGrid, CDG, GCF-MD đều thiếu khả năng hỗ trợ kế hoạch.
Thiếu khả năng hỗ trợ việc thực thi tự động trong môi trường lưới: Sau khi xây dựng kế hoạch thực hiện các công việc (hay còn được gọi là tiến trình nghiệp vụ), nhu cầu đặt ra là làm thế nào để thực thi được các công việc đó theo kế hoạch đã đề ra. Điều này đòi hỏi trước tiên phải tìm được những đối tượng/đối tác phù hợp với các công việc. Sau đó tiến hành phân công công việc cho họ, rồi giám sát tiến độ của việc thực thi. Vấn đề này trở nên khó khăn hơn khi muốn tự động hóa quá trình này trong môi trường lưới. Do một trong những đặc thù của môi trường này là tính động của các đối tượng tham gia (các đối tượng có thể
38
tham gia hoặc rời khỏi môi trường một cách tùy ý mà không có nhiều ràng buộc), nên việc quản lý được từng đối tượng cũng không phải là việc dễ dàng. Chưa hỗ trợ gọi dịch vụ lưới từ tiến trình BPEL: Do hoạt động trong khung cộng
tác sẽ được biểu diễn bằng ngôn ngữ luồng BPEL, nên hạn chế này sẽ ảnh hưởng đến việc thực thi hoạt động trong môi trường lưới. Để thi hành các tiến trình BPEL, cần có các BPEL engine. BPEL engine được chọn trong luận án là ODE của Apache, do nó là một trong số các engine mã nguồn mở và có hỗ trợ khá tốt. Tuy nhiên, engine này lại có hạn chế là chưa hỗ trợ việc gọi dịch vụ lưới, mà mới chỉ hỗ trợ gọi dịch vụ Web. Có một BPEL engine khác tuy không có hạn chế này là ActiveBPEL, nhưng nó lại không phải là mã nguồn mở nữa. Do vậy, ODE là lựa chọn duy nhất và luận án sẽ đưa ra biện pháp khắc phục hạn chế này. Việc khai thác tiến trình BPEL còn phức tạp và thủ công: Để khai thác một tiến
trình BPEL trong ODE, một loạt các bước cần được tiến hành. Đầu tiên, các Partner Link phải được tạo ra từ các tệp WSDL và từ bản thân tiến trình BPEL. Ngoại trừ một Parner Link mà đại diện cho các thực thể sẽ sử dụng tiến trình BPEL, các Parner Link khác đại diện cho các Web service bên ngoài mà sẽ được gọi (invoke) trong tiến trình BPEL. Sau đó, một tệp khai thác đặc thù (có tên là deploy.xml) phải được tạo ra tuân theo đặc tả cấu trúc của ODE. Cuối cùng, tất cả các tệp cần thiết liên quan đến tiến trình BPEL sẽ được copy vào một thư mục đặc thù và rồi chúng sẽ được kiểm tra lỗi và biên dịch. Nếu có lỗi được phát hiện, (đây là tình huống thường xảy ra), log tệp của Web server đang hosting ODE sẽ được kiểm tra một cách thủ công để tìm thông báo lỗi và từ đó tìm nguyên nhân lỗi. Dù việc biên dịch có thành công, lỗi chạy (runtime error) vẫn có thể tồn tại, quá trình kiểm tra và đoán lỗi sẽ phải lặp đi lặp lại cho đến khi tìm ra.
1.6.2 Tiếp cận
Nghiên cứu của luận án nhằm giải quyết các vấn đề trên. Tiếp cận trong luận án bao gồm:
- Đối với nhóm vấn đề thứ nhất: vì nhóm này liên quan đến các vấn đề lý thuyết, nên một mô hình cải tiến từ Lý thuyết Hoạt động, với tên gọi Mô hình Kế hoạch, đã được phát triển. Chi tiết về Mô hình Kế hoạch và yêu cầu tổng quan của khung cộng tác dựa trên mô hình này được trình bầy trong Chương 2.
- Đối với nhóm vấn đề thứ hai: vì nhóm này liên quan đến việc phát triển khung lưới cộng tác đa dụng, nên một loạt các giải pháp liên quan đến các vấn đề này sẽ được luận án đề xuất. Từ việc xác định các yêu cầu tổng thể của khung được trình bày trong Chương 2, sau đó là làm mịn các kế hoạch được trình bầy trong Chương 3 và đến cuối cùng là các giải pháp thiết kế và cài đặt khung được trình bày trong Chương 4.
39