Khung lưới cộng tác

Một phần của tài liệu Khung cộng tác đa dụng trong môi trường tính toán lưới (Trang 29 - 34)

Phần này giới thiệu về khái niệm khung cộng tác và một số khái niệm liên quan như

khung lưới cộng tác, khung lưới cộng tác đa dụng.

1.3.1 Khung cộng tác

Khung cộng tác (Collaborative Framework) là thuật ngữ có thể được diễn giải theo nhiều cách khác nhau: hệ thống, công cụ hỗ trợ cộng tác; bộ tiêu chuẩn để đánh giá các hệ thống cộng tác [29]; một hiệp định hợp tác [64]. Trong luận án này, khung cộng tác được sử dụng với ý nghĩa: một hệ thống hay công cụ hỗ trợ cộng tác.

Khung cộng tác có thể được sử dụng độc lập hay tích hợp với hệ thống khác để hỗ trợ việc xây dựng các ứng dụng yêu cầu khả năng cộng tác. Như đã thấy trong phần 1.1, các tiếp cận liên quan đến cộng tác, nhu cầu và các loại hình cộng tác là rất đa dạng. Từ việc chia sẻ, trao đổi trực tiếp các tài nguyên chung giữa các chủ thể, cho đến nhu cầu phải có một bản kế hoạch hành động chung. Với bản kế hoạch đầy đủ, các chủ thể thành viên không những biết được những tài nguyên cần chia sẻ, mà còn biết được cách phối hợp các công việc và sử dụng các tài nguyên như thế nào. Ngoài ra, các tài nguyên khác nhau lại có thể chia sẻ và trao đổi theo cách khác nhau (ví như việc chia sẻ tệp dữ liệu là khác với việc chia sẻ tài nguyên tính toán). Điều này càng làm tăng tính đa dạng và phức tạp của các khung cộng tác.

Cũng do tính đa dạng của khung cộng tác, có nhiều cách phân loại khác nhau. Ở đây, luận án dựa vào hai tiêu chí phân loại:

- Theo lĩnh vực ứng dụng: theo tiêu chí này có một số nhóm sau:

o Nhóm 1 - Hệ thống hỗ trợ làm việc nhóm: đây là nhóm các khung cộng tác được phát triển đầu tiên, với trọng tâm là các công cụ hỗ trợ việc trao đổi và chia sẻ trong nhóm, như trao đổi email, lịch làm việc, v.v. Đại diện cho nhóm này là hệ thống Lotus Notes/Domino (sau này đã được chuyển thành IBM Notes/Domino);

30

o Nhóm 2 - Hệ thống quản trị nội dung: chính là khung cộng tác thuộc nhóm 1 được bổ sung thêm cơ chế chia sẻ các nội dung số như tài liệu, hình ảnh, âm thanh; Các hệ thống tiêu biểu cho nhóm này bao gồm Xerox DocuShare, Moodle;

o Nhóm 3 - Hệ thống công việc cộng tác có trợ giúp của máy tính: được phát triển từ nhóm một và hai bổ sung thêm các cơ chế phối hợp, phỏng theo các loại hình cộng tác trong thực tế. Một giới thiệu khái quát về loại hệ thống này có thể được tìm thấy trong [80];

o Nhóm 4 - Hệ thống luồng công việc: được phát triển từ nhóm 3, bổ sung thêm khả năng làm việc theo một kịch bản cho trước, được gọi là luồng công việc. Việc xây dựng luồng công việc thường được thực hiện bằng ngôn ngữ luồng công việc.

o Nhóm 5 - Khung lưới cộng tác (Grid Collaborative Framework): được phát triển từ các nhóm ở trên, tích hợp thêm môi trường tính toán lưới. Để tăng cường khả năng cộng tác, các khung cộng tác tìm cách kếp hợp các khả năng cộng tác của các hệ thống hiện có. Như đã giới thiệu về tính toán lưới, bản thân các hạ tầng Tính toán lưới là các khung cộng tác đa dụng, với sự hỗ trợ chia sẻ nhiều loại tài nguyên khác nhau, ở nhiều mức độ chia sẻ khác nhau. Chính vì vậy, việc tìm cách kết hợp môi trường này vào trong các khung cộng tác để tăng cường khả năng cộng tác là một lựa chọn phù hợp.

- Theo mục đích phát triển, theo tiêu chí này có hai nhóm sau:

o Khung cộng tác chuyên biệt: là khung cộng tác nhằm trực tiếp vào hỗ trợ một loại ứng dụng cộng tác chuyên biệt nào đó. Cách tiếp cận trong việc phát triển các khung loại này là tập trung hỗ trợ các khả năng cộng tác đặc thù cho các tài nguyên chuyên biệt. Ví dụ, hướng vào các ứng dụng trong y tế PATIENT SCHEDULER [20] ; GCF-MD hướng vào các ứng dụng cho thiết bị di động [88].

o Khung cộng tác đa dụng: loại khung này không hướng vào loại ứng dụng cụ thể nào, cho phép hỗ trợ các loại hình cộng tác khác nhau, trong đó, khả năng mở rộng người dùng có thể định nghĩa các loại hình cộng tác trên cơ sở các loại hình hiện có, cũng được quan tâm. Đây là loại khung cộng tác được luận án tập trung trong nghiên cứu nhằm xây dựng một khung cộng tác có thể hỗ trợ nhiều loại ứng dụng lưới khác nhau.

Trong phần sau, luận án sẽ giới thiệu tóm tắt về các khung lưới cộng tác hiện có, phân tích các hạn chế tồn tại, để từ đó xác định rõ hơn các mục tiêu nghiên cứu của luận án. Để tiện cho việc xem xét, các khung này sẽ phân thành hai nhóm: nhóm đầu tiên các khung cộng tác không có hỗ trợ ngôn ngữ luồng công việc và khung có hỗ trợ các ngôn ngữ luồng công việc.

31

1.3.2 Các khung lưới cộng tác không có hỗ trợ ngôn ngữ luồng công việc công việc

OCGSA

Kiến trúc OCGSA (Open Collaborative Grid Service Architecture – Kiến trúc dịch vụ lưới cộng tác mở) [56] hướng tới cung cấp một khung chung cho các ứng dụng cộng tác. Trong kiến trúc này, khái niệm dịch vụ lưới trong OGSA [52] (như một dịch vụ mức thấp) được mở rộng thành dịch vụ lưới cộng tác (dịch vụ mức cao), bằng việc mở rộng portType của dịch vụ lưới với siêu dữ liệu (metadata) cho việc quản lý nhóm và an toàn. Song song với đó, cơ chế báo hiệu cũng được mở rộng với khả năng định nghĩa trước các chủ đề báo hiệu. Một thành phần mới của OCGSA so với OGSA là dịch vụ lưu trữ sự kiện (Event Archiving service), có trách nhiệm quản lý các thông báo/các bản tin trao đổi giữa những người dùng/nhóm người dùng.

Tuy vậy, các mở rộng trong OCGSA vẫn chưa đáp ứng được yêu cầu của các ứng dụng cộng tác trong thực tế, do còn thiếu hỗ trợ các cơ chế điều phối cụ thể và rõ ràng. Hơn nữa, kiến trúc này chỉ đưa ra mức cơ bản, mà chưa mô tả các cơ chế phù hợp cụ thể hỗ trợ sự cộng tác thực tế, dẫn đến khó áp dụng được trong việc phát triển các khung hay ứng dụng cộng tác lưới thực tế.

Grid-enabled large scale (LAGrid)

Khung cộng tác dựa trên lưới này [105] được phát triển nhằm xây dựng một môi trường cộng tác có khả năng sử dụng lưới có quy mô lớn, hỗ trợ người dùng cộng tác với các đặc điểm chính sau:

- Quy mô lớn (theo cả chiều rộng và chiều sâu, với cấu trúc phân cấp)

- Cơ chế phối hợp khác nhau (đồng bộ/không đồng bộ, trong nội bộ nhóm/giữa các nhóm).

- Các cơ chế điều phối khác nhau (tường minh/ngầm định/ngẫu hứng). - Tích hợp các cơ chế điều phối.

- Các cấu trúc cộng tác tĩnh (được xác định trước khi cộng tác), và động (xác định khi đang cộng tác).

Mặc dù khung loại này hỗ trợ phát triển môi trường cộng tác quy mô lớn, nhưng lại không hỗ trợ các tình huống theo kịch bản, dưới dạng kế hoạch làm việc trong các tiến trình. Do thiếu kế hoạch, nên rất khó quản lý các hoạt động của các tiến trình. Điều này có thể dẫn đến việc thực hiện tiến trình không hiệu quả và không thể kiểm soát được.

Khung cộng tác được đề xuất trong luận án có mục tiêu khá giống với khung cộng tác này, nhưng dựa trên cách tiếp cận khác, dựa trên kiến trúc mở, hướng dịch vụ (SOA - Service Oriented Architecture), dịch vụ lưới của kiến trúc OGSA, nhằm nâng cao tính mở và khả năng mở rộng.

32

Collaborative Design

Collaborative Design Grid (CDG) [106] là khung cho phép giải quyết hai vấn đề trong cộng tác: chia sẻ tài nguyên và cộng tác phân tán về mặt địa lý. Kiến trúc khung này dựa trên kiến trúc OGSA, được cài đặt bằng các dịch vụ lưới trong Globus Tookit 3. Thiết kế kiến trúc các CDG dựa trên ba công nghệ chính: Thiết kế cộng tác Có trợ giúp của Máy tính, tính toán lưới và cổng thông tin Web.

Tuy nhiên, kiến trúc CDG có một số hạn chế. Thứ nhất, nó sử dụng Globus Toolkit phiên bản 3 (GT3) chưa hỗ trợ đầy đủ các tiêu chuẩn lưới như dịch vụ lưới và kiến trúc OGSA. Thứ hai, CDG chưa hỗ trợ các công việc cộng tác thực hiện có kịch bản, không có các kế hoạch làm việc.

Khung lưới cộng tác cho các thiết bị di động (GCF - MD)

Khung lưới cộng tác cho các thiết bị di động (Grid-based Collaborative Framework for Mobile Devices - GCF-MD) [88] cho phép các thiết bị di động có thể làm việc cộng tác với nhau để giải quyết các bài toán có khối lượng tính toán lớn. Để quản lý việc thực thi các công việc, đa số các hệ thống lưới sử dụng hạ tầng lưới như Globus Toolkit hay Condor. Tuy nhiên, cho đến nay, các hạ tầng lưới này chưa phù hợp với các hệ thống lưới “hạng nhẹ” (light-weight grid systems) như lưới di động (mobile grids) hay lưới cảm biến (sensor grids), do đòi hỏi cao cả về khả năng xử lý và dung lượng bộ nhớ. Do đó, GCF-MD phải xây dựng hạ tầng lưới bao gồm hai thành phần chính: Brokering Service and Keep-alive Server.

Hạn chế chủ yếu của khung GCF-MD là nó không tuân theo cách tiếp cận của kiến trúc hướng dịch vụ (SOA), khả năng hỗ trợ dịch vụ WEB, dịch vụ lưới. Khung lưới cộng tác được xây dựng trong luận án sẽ đi theo cách tiếp cận này, để có khả năng mở và mềm dẻo hơn.

PATIENT SCHEDULER

Công cụ này [20] là một khuôn mẫu được phát triển qua dự án SAIK, cải thiện việc phối hợp và điều phối trên mạng máy tính trong điều trị cho các bệnh nhân. Tuy nhiên, đây mới chỉ là một mẫu thử, và mới chỉ áp dụng được trong lĩnh vực y tế.

SPRING

Khung lưới các cảm biến [42] SPRING (Scalable Proxy-based aRchItecture for seNsor Grid) được thiết kế theo cách tiếp cận sử dụng một proxy, được gọi là Proxy Mạng Cảm biến Không dây. Proxy này hoạt động như một giao diện giữa hạ tầng lưới và một WSN. Tuy nhiên, khung này không có khả năng hỗ trợ thực thi các kế hoạch.

Khung tính toán dựa trên hoạt động (ABC)

Được đề xuất trong các nghiên cứu [22] [21], khung tính toán dựa trên hoạt động

(Activity-Based Computing) nhằm hỗ trợ hoạt động di động, cộng tác và khẩn cấp, như các hoạt động điều trị y tế. Thực thể cơ bản nhất của khung này là hoạt động tính toán

33

liên quan mật thiết đến một hoạt động nào đó. Khung này cung cấp Hạ tầng tính toán dựa trên hoạt động với mục đích hỗ trợ người dùng quản lý các hoạt động tính toán. Nghiên cứu của luận án tuy có cùng tiếp cận, sử dụng lý thuyết hoạt động, nhưng lại đi theo một cách tiếp cận khác nhằm khắc phục hạn chế cơ bản của lý thuyết hoạt động thiếu khả năng biểu diễn tường minh kế hoạch và hỗ trợ quá trình lập kế hoạch. Do đó, trong nghiên cứu của luận án sẽ bổ sung các mô hình, ngôn ngữ mô tả và môi trường thực thi để khắc phục các hạn chế đó.

1.3.3 Các khung lưới cộng tác có hỗ trợ ngôn ngữ luồng công việc

Trong số các ngôn ngữ luồng hiện có, Business Process Execution Language (BPEL) đã nhận được sự chú ý và chấp nhận nhiều nhất để kết hợp các ứng dụng dựa trên các thành phần (component based applications). Lý do chính là BPEL cho phép kết hợp của hai ngôn ngữ luồng: XLANG (của hãng Microsoft) và Workflow (của hãng IBM) thông qua kết hợp các dịch vụ WEB hiện có thành các dịch vụ WEB hoặc ứng dụng phức tạp hơn. Nhiều công cụ hỗ trợ BPEL đã và đang được phát triển như các bộ soạn thảo, các engine thực thi (enactment engines), v,v. Do đó, nghiên cứu của luận án tập trung vào các khung có hỗ trợ BPEL.

Các khung có hỗ trợ BPEL

CGPCE

Trong CGPCE (Collaborative Grid Process Creation Environment – Môi trường tạo tiến trình lưới cộng tác) [94], [95], BPEL được sử dụng để biểu diễn và soạn thảo tiến trình ảo, cho phép nhiều người dùng phân tán có thể cộng tác với nhau để thiết kế và chạy các tiến trình. Một mở rộng lưới của BPEL, gọi là Grid-For-Each (GFE), được đề xuất và cài đặt nhằm tăng cường việc thực thi song song các hoạt động BPEL một tiến trình lưới.

Trong tài liệu [95], các chi tiết của mở rộng này (giải pháp và cài đặt) đã được trình bày. Lý do chính là do BPEL 1.1 không hỗ trợ các dịch vụ WEB có trạng thái, trong khi đó đa số các dịch vụ lưới là có trạng thái. Giải pháp để khắc phục hạn chế này là đưa vào một hoạt động mới trong BPEL gọi là gridInvoke.

Hệ thống GFE có một số hạn chế. Thứ nhất, việc cộng tác hoàn toàn dựa trên Eclipse Communication Framework (ECF), kiến trúc chỉ hỗ trợ các cộng tác đa năng (General Purpose Collaboration). Do vậy, để hữu dụng với các ứng dụng cộng tác lưới, sẽ mất rất nhiều thời gian và công sức. Thứ hai, hệ thống không tuân theo tiếp cận hướng dịch vụ (SOA), và điều này sẽ làm hạn chế tính mềm dẻo trong việc phát triển các ứng dụng lưới.

Collaborative BPEL Design Tool with Rich Internet Application

Công cụ này [40] giải quyết được khá nhiều vấn đề khó khăn khi soạn thảo thiết kế cộng tác (collaborative design editor) như: khả năng WYSIWIS (What You See Is What I See), gia nhập muộn (late joining), cơ chế khóa (locking mechanisms) kiểm soát tính cố kết của nội dung thiết kế. Tuy nhiên, công cụ này chưa quan tâm đến các dịch vụ lưới, cũng như cơ chế để thực thi dịch vụ luôn ở mức thiết kế chi tiết.

34

Trong các nghiên cứu [71], [72], các tác giả đã đề cập vấn đề sử dụng BPEL kết hợp với các dịch vụ lưới: Giải pháp được áp dụng là kết hợp các dịch vụ lưới theo chuẩn WSRF trong các ứng dụng tin học y sinh. Hạn chế chủ yếu của hệ thống này là chỉ tập trung vào việc kết hợp các dịch vụ lưới, không quan tâm đến việc cộng tác của nhiều người dùng khi thực hiện công việc.

Khung hỗ trợ ngôn ngữ luồng khác

GridCole

GridCole [67] là một hệ thống E-learning cộng tác có hỗ trợ việc thực hiện các tình huống học theo kịch bản, trong đó mỗi tình huống đó bao gồm một dãy các hoạt động. Hơn nữa, với khả năng tùy chỉnh, người dùng cuối của hệ thống (những giảng viên và sinh viên) có thể tích hợp các công cụ bên ngoài vào trong tình huống học. Sử dụng cách tiếp cận dịch vụ lưới cho phép sự tích hợp các loại công cụ khác nhau, thậm chí là với các yêu cầu về siêu máy tính hay các phần cứng chuyên dụng. Trong hệ thống này, đặc tả IMS Learning Design (IMS-LD) được sử dụng để mô tả các tình huống học. Có hai loại công cụ bên ngoài trong GridCole là cá nhân và cộng tác, trong đó, các công cụ cộng tác sẽ được sử dụng để điều phối các hoạt động bên trong mỗi tình huống.

Mô tả của các tình huống học cộng tác là một bài học theo đặc tả IMS-LD. Hai loại bài học được sử dụng: hoàn chỉnh và không hoàn chỉnh. Các bài học hoàn chỉnh là các bài học chứa tất cả các thông tin cần thiết cho việc tích hợp các công cụ trong giai đoạn thực thi các tình huống học. Trái lại, các bài học không hoàn chỉnh không có những thông tin như vậy, chỉ có các mô tả chung về các công cụ cần có. Do đó, các bài học không hoàn chỉnh chưa thể được thực thi chừng nào chúng còn chưa được chuyển đối sang bài học hoàn chỉnh.

Hạn chế chủ yếu của hệ thống là không có sự hỗ trợ kế hoạch. Các bài học không hoàn chỉnh có thể đóng vai trò của các kế hoạch, nhưng vẫn không phải là các kế hoạch độc lập.

Một phần của tài liệu Khung cộng tác đa dụng trong môi trường tính toán lưới (Trang 29 - 34)