Kết quả nghiên cứu triển khai tính toán lưới

Một phần của tài liệu 304149 (Trang 123)

2. NỘI DUNG CHÍNH CỦA BÁO CÁO

2.2.3.Kết quả nghiên cứu triển khai tính toán lưới

2.2.3.1. Tiếp cn dch v trong trin khai lưới

Kết quả nghiên cứu cũng chỉ ra các thành phần của một hệ thống tính toán lưới bao gồm: thành phần quản lý, phần mềm donor, phần mềm đệ trình, thành phần quản lý phân tán, bộ lập lịch, các thành phần truyền thông, các thành phần quản lý, theo dõi và đo lường.

Việc sử dụng lưới cũng được đề cập dưới góc nhìn của người phát triển hệ thống, với các thao tác: lập kế hoạch, cài đặt, quản trị người dùng và tài nguyên và chia sẻ dữ liệu. Đối với người sử dụng, các thao tác được quan tâm là: đăng ký và cài đặt phần mềm lưới, đăng nhập hệ thống, truy vấn và đệ trình các công việc, cấu hình dữ liệu, đặt trước tài nguyên.

Kiến trúc giao thức lưới được nghiên cứu trong sự so sánh với kiến trúc giao thức Internet. Với bản chất bao gồm khả năng liên tác, các giao thức và các dịch vụ chuẩn cho để các APIs, SDKs, kiến trúc lưới được phân thành các tầng bao

gồm: tầng Fabric, tầng Connectivity, tầng Resource, tầng Collective và tầng Application. Các thành phần trong một tầng có một số đặc điểm chung và được xây dựng trên khả năng của các tầng thấp hơn.

Phương pháp luận về việc lưới hóa ứng dụng

Một trong những đặc điểm nổi bật của tính toán lưới so với những công nghệ trước đây là tính hướng dịch vụ của nó. Bởi vậy, phương pháp luận về việc lưới hóa ứng dụng cũng như các kỹ thuật liên quan đến lập trình dịch vụ lưới đã được đầu tư nghiên cứu khá kĩ càng.

quá trình lưới hoá là khảo sát quá trình thực hiện đơn giản của một ứng dụng trong một lưới. Sau đó là tìm hiểu cách các ứng dụng cần lưới hoá sử dụng hai bước đầu tiên để có thể thực thi như là các công việc theo lô đơn lẻ hoặc song song. Tiếp theo, các bước ba và bốn chỉ ra cách chia nhỏ một ứng dụng theo lô và dịch vụ hoá ứng dụng đó để phục vụ người sử dụng thông qua phần đệm. Hai bước cuối cùng sẽ đưa ra một số dạng thức (paradigm) khả thi để triển khai một ứng dụng sử dụng dịch vụ lưới theo cách song song. Mặc dù các bước được đề cập dưới đây là cần thiết trong quá trình lưới hoá ứng dụng nhưng không bắt buộc phải thực hiện đủ cả năm bước. Rất nhiều ứng dụng chỉ đạt được bước thứ năm và rất ít có thể đạt được bước sáu. Bước thứ sáu được chuyên biệt hoá cho một số ứng dụng và được thiết kế từ ban đầu để hỗ trợ cho mô hình xử lý song song kết nối chặt (tightly coupled) cho các chương trình mà các chương trình này tạo nên ứng dụng hoàn chỉnh.

Do đặc điểm hỗn tạp và không đồng nhất của các tổ chức và tài nguyên trong lưới, vấn đề bảo mật trong lưới là một trong những vấn đề được quan tâm hàng đầu. Có những vấn đề bảo mật mới chưa từng gặp trong các công nghệ bảo mật hiện tại cho hệ thống tính toán phân tán truyền thống. Ví dụ, các tính toán song song đòi hỏi nhiều tài nguyên tính toán, dẫn tới nhu cầu phải thiết lập các mối quan hệ bảo mật, không đơn giản chỉ là với client và server, mà giữa hàng trăm tiến trình thực hiện trong không gian tập hợp nhiều miền quản trị. Ngoài ra, cần phải có các chính sách bảo mật liên miền cho lưới, các công nghệ điều khiển truy nhập giữa các miền khác nhau cũng phải được hỗ trợ.

Các ứng dụng và hệ thống lưới có thể đòi hỏi bất cứ chức năng nào trong các chức năng cơ bản của bảo mật như là: chứng thực, điều khiển truy nhập, toàn vẹn, bí mật. Khi phát triển kiến trúc bảo mật lưới, cũng cần phải lựa chọn giải

Đăng nhp mt ln: Khi bắt đầu một tính toán đòi hỏi sử dụng tài nguyên, cho thuê tài nguyên hay truyền thông nội bộ, người dùng có thể được chứng thực, và sẽ không phải chứng thực trong các tính toán tiếp theo.

Giy y nhim người dùng (mật khẩu, khóa bí mật, ...): phải được bảo vệ bằng các chính sách như mã hóa, hệ thống file bảo mật, phân quyền, ...

Tích hp các gii pháp bo mt địa phương: các giải pháp bảo mật liên miền phải tích hợp với các giải pháp bảo mật địa phương để đảm bảo độc lập của các thành viên lưới.

Cơ s h tng giy y nhim, giy chng nhn thng nht: Truy nhập liên miền đòi hỏi phải có một quy ước thống nhất để biểu diễn định danh của các thực thể lưới như là người dùng, tài nguyên,... Vì thế, cần có một chuẩn để mã hóa các giấy chứng nhận cho mục đích bảo mật. Hiện tại, X509 là chuẩn cho các giấy chứng nhận phổ biến trong môi trường lưới.

H tr bo mt nhóm truyn thông: Một tính toán có thể đòi hỏi một số các tiến trình, cùng cộng tác các hoạt động của chúng với nhau như là một nhóm. Tổ hợp các nhóm tiến trình sẽ thay đổi trong vòng đời của một tính toán. Vì thế, cần cung cấp bảo mật truyền thông nhóm động. Không có giải pháp bảo mật nào hiện tại hỗ trợ tính năng này, thậm chí là thư viện lập trình bảo mật GSS-API còn không cung cấp bảo mật nhóm.

Độc lp công ngh: các chính sách bảo mật không phục vụ cho một công nghệ phát triển ứng dụng cụ thể nào. Hơn nữa, có thể cài đặt các chính sách bảo mật trong một phạm vi các công nghệ bảo mật, dựa trên cả kĩ thuật mã hóa công khai và phân phối khóa công khai.

Các nghiên cứu trong đề tài tập trung vào vấn đề tích hợp công nghệ Agent vào các dịch vụ trong môi trường lưới, theo nghĩa xây dựng một dịch vụ lai giữa lưới và Agent. Dịch vụ này có khả năng tồn tại trong cả 2 container: globus container ứng với môi trường lưới và jade container ứng với môi trường agent. Cách tiếp cận được đề xuất đơn giản hơn so với tiếp cận của một số nhóm nghiên cứu cùng mục tiêu trên thế giới như nhóm SoFAR của đại học Southamptom (Anh). Trong khuôn khổ đề tài đã xây dựng được dịch vụ lai giữa Agent và lưới, gọi là HAGS (Hybrid Agent Grid Service), sử dụng kỹ thuật thừa kế trong lập trình hướng đối tượng và kỹ thuật “xưởng chế tác” (Factory) - một trong các kỹ thuật cơ bản của lập trình dịch vụ lưới [5].

2.2.3.2. Nghiên cu xây dng h thng BKGrid 2005

BKGrid 2005 là phiên bản hệ thống lưới thử nghiệm triển khai tại trung tâm Tính toán Hiệu năng cao - Đại học Bách Khoa Hà Nội. Tất cả các thành phần của BKGrid 2005 đều được phát triển trên cơ sở các bộ công cụ mã nguồn mở mạnh

trên thế giới hiện nay. Các công cụ này được ứng dụng rộng rãi tại nhiều trung tâm tính toán hiệu năng cao, nhiều trung tâm nghiên cứu về tính toán lưới trên thế giới, đang tiếp tục được hoàn thiện bởi cộng đồng mã nguồn mở. Các bộ công cụ mã nguồn mở đã làm chủ được và ứng dụng trong triển khai BKGrid 2005 bao gồm:

GlobusToolkit (GT)

GT là bộ công cụ mã nguồn mở hàng đầu hiện nay được dùng để xây dựng môi trường lưới. Nó được phát triển bởi Globus Alliance, một tổ chức lớn bao gồm nhiều viện nghiên cứu và công ty tại Mỹ. GT cho phép người dùng trong lưới chia sẻ năng lực tính toán của các tài nguyên, dữ liệu và các công cụ khác một cách an toàn mà không phải quan tâm đến các hạn chế về khoảng cách địa lý cũng như các chính sách tự trị tại mỗi nút lưới. GT bao gồm các dịch vụ phần

nhau để phát triển ứng dụng. Mục tiêu của GT là loại bỏ mọi trở ngại do tính không đồng nhất giữa các thành viên lưới có thể ngăn trở khả năng hợp tác, tạo nên tính trong suốt đối với người sử dụng, khiến cho người sử dụng khi ngồi trước máy tính cá nhân của mình, khi tham gia vào lưới có cảm tưởng như đang được sử dụng một máy tính ảo với năng lực khổng lồ.

Trong hệ thống BKGrid 2005 sử dụng phiên bản GT3.2.1. Điểm mới tại phiên bản này là các thành phần được dựa trên các chuẩn OGSI và OGSA, với ý tưởng cơ bản: mọi thứ đều là dịch vụ lưới - một bước phát triển mở rộng hơn so với dịch vụ Web. Trong đề tài đã nghiên cứu làm chủ được các quy trình: Cài đặt GT3.2.1, xin giấy chứng nhận, thiết lập các cấu hình người dùng lưới, và đặc biệt triển khai công cụ cài đặt giúp người sử dụng tiện lợi hơn trong việc cài đặt. Hiện tại GT4, phiên bản nâng cao so với GT3.2.1, đang trong quá trính nghiên cứu và thử nghiệm.

Java Cog Kit là bộ cung cụ phát triển lưới, ánh xạ giữa công nghệ Java và Globus Toolkit, cho phép các nhà phát triển xây dựng các ứng dụng lưới bằng ngôn ngữ Java. Java Cog Kit được lựa chọn để phát triển lưới bởi một số lý do sau đây:

• Tối đa hóa sự năng động, khả năng mở rộng và tái sử dụng phần mềm. • Ngôn ngữ Java là độc lập về hệ điều hành và các nền tảng phát triển, do

vậy nó tương thích với môi trường không đồng nhất như lưới. Ngoài ra nó cung cấp nhiều thư viện cho phép phát triển các ứng dụng mạng, các kỹ thuật liên tác JAAS, JINI, CORBA, IIOP, ...

• Sử dụng cơ sở hạ tầng bảo mật lưới GSI từ Java. Dưới đây là kiến trúc của Java Cog Kit

Grid Middleware & Fabric: Đây là tầng thấp nhất trong kiến trúc, chứa tất cả các gói để giao tiếp với các dịch vụ và các tài nguyên. Hiện tại Java Cog Kit cung cấp một số dịch vụ cơ bản sau đây:

• An toàn và bảo mật (GSI).

• Đệ trình và theo dõi các công việc thực thi từ xa (GRAM). • Đánh giá chất lượng dịch vụ (GARA). (adsbygoogle = window.adsbygoogle || []).push({});

• Dịch vụ truyền file bảo mật (GSIFTP) • Dịch vụ tra cứu thông tin (MDS)

• Dịch vụ lưu trữ giấy ủy nhiệm (MyProxy)

Các thành phn tin ích mc thp (Low-Level Utility Components): cung cấp các tiện ích mức thấp cho phép tăng hiệu quả trong việc liên kết các thành phần Globus Toolkit được cài đặt bằng ngôn ngữ C.

Các thành phn giao din mc thp (Low-Level GUI Components): cung cấp tập các thành phần giao diện mức thấp có khả năng tái sử dụng như: bộ soạn thảo LDAP, RSL, trình duyệt LDAP, ...

Các thành phn giao din và tin ích mc ng dng (Application Level Utility & GUI components): là cầu nối giữa Java Cog với các ứng dụng thực tế.

Với kiến trúc trên, Java Cog Kit cho phép

• Các nhà phát triển tạo ra các thành phần trung gian (middleware), liên kết giữa nhà cung cấp dịch vụ và các nhà phát triển ứng dụng phía trên. • Các nhà phát triển ứng dụng GridPortal dễ dàng truy cập tài nguyên lưới

và phát triển dịch vụ lưới như một dịch vụ của Portal.

GridPortal là sự kết hợp giữa công nghệ lưới và Portal, cung cấp một giao diện thống nhất cho các dịch vụ lưới, môi trường bảo mật và khả năng truy nhập các tài nguyên lưới thông qua trình duyệt Web.

Hiện nay trên thế giới phát triển rất nhiều Grid Portal phục vụ cho nhiều mục đích khác nhau, có thể tạm chia ra hai loại Grid Portal chính. Loại thứ nhất là Science Portal, cung cấp chức năng tính toán lưới cho người dùng hoàn toàn thông qua các khái niệm khoa học. Do đó, người dùng hoàn toàn không cần phải quan tâm nhiều đến các giao thức tính toán phân tán phức tạp mà chỉ tập trung vào các vấn đề chuyên môn của mình. Ví dụ các hệ thống tính toán lưới phục vụ trong các lĩnh vực Y tế, Vật lý hạt nhân, nguyên tử… Loại thứ hai là User Portal, cung cấp cho người dùng các tài nguyên lưới (Grid Resource) và các dịch vụ lưới (Grid Services). Người dùng có thể sử dụng để tạo ra các công cụ ứng dụng

Grid Portal Grid Services Client Client Client Grid Resource Grid Resource Grid Resource Hình 2-30. Cổng điện tử Grid Portal

Hệ thống BKGrid 2005 sử dụng phần mềm Gridsphere Portal, được phát triển bởi các tác giả Jason Novotny, Michael Russell và Oliver Wehrens tại học viện

Albert Einstein, Đức. Gridsphere hoạt động như một ứng dụng Web, đòi hỏi môi trường trình chủ như Jakatar Tomcat

Được xây dựng để hỗ trợ phát triển các ứng dụng chạy trên Web, đặc biệt là các ứng dụng lưới, Gridsphere có các đặc điểm sau đây:

• Sử dụng phần mềm trung gian Hibernate, hỗ trợ hầu hết các hệ CSDL chính bao gồm MySQL, Postgres, DB2, HsqlDB, ...

• Hỗ trợ các chuẩn Portlet mới nhất hiện nay: JSR 168 Portlet API, Portlet API IBM's WebSphere 4.2, đồng thời dễ dàng phát triển và tương tác với "third-party portlets“.

• Sử dụng các visual beans và thư viện thẻ giao diện người dùng của Gridsphere (UI) để phát triển các portlet phức tạp, dặc tả các xếp đặt hiển

• Mô hình dịch vụ portlet (portlet service) cung cấp các chức năng có thể tái sử dụng cho nhiều portlet.

• GridSphere core portlets bao gồm các tính năng như: login, logout, người dùng và điều khiển truy nhập

Các công nghệ portal mà Gridsphere Portal sử dụng là portlet và dịch vụ portlet, xin được giới thiệu dưới đây:

Portlet & Grid Porlet

Portlet là một chuẩn mở được đưa ra cho các bộ công cụ để phát triển Web Portal và Grid Portal, với mục đích để đóng gói, triển khai và chuyên nghiệp hóa các thành phần nghiệp vụ web. Portlets đưa ra API cho việc xây dựng các thành phần giao diện ảo trong nội dung trang Web và các nhà cung cấp dịch vụ. Mỗi portlet cung cấp một cửa sổ nhỏ trong một trang portal, và có thể có nhiều portlet trong một trang portal.

Grid Portlet hoàn toàn giống như các Portlet, nhưng thể hiện giao diện cho các dịch vụ lưới thông qua Portal. Chính vì đặc trưng này, khi phát triển các Grid Portlet, đòi hỏi phải có một số cấu hình ở máy chủ Web để hiểu được các đặc tả giao diện dịch vụ theo chuẩn GWSDL khi triệu gọi các dịch vụ lưới từ xa.

Dch v Portlet (Portlet Service)

Dịch vụ portlet là kiến trúc mới do Gridsphere đưa ra, mục đích là đóng gói các thao tác nghiệp vụ logic để có thể tái sử dụng qua nhiều portlet. Hiện tại, các dịch vụ Portlet khởi tạo và hủy bởi PortletServiceFactory, có các phương thức khởi tạo, hủy và quản lý vòng đời trong dịch vụ. Ngoài ra, còn có thêm một số tính năng bổ xung như các dịch vụ hướng người dùng (User services) cung cấp các mức điều khiển truy nhập dựa trên thông tin điều khiển truy nhập của người dùng.

JADE là một framework được phát triển hoàn toàn trên ngôn ngữ Java. Nó cho phép triển khai hệ đa agent một cách dễ dàng thông qua một middle-ware tuân theo chuẩn của FIPA, tên ban đầu là Midleware thuộc dự án FACTS do nhóm các nhà khoa học trong bộ phận nghiên cứu công nghệ Obj và Agent thuộc khoa công nghệ thông tin trường ĐH Parma, Italia và tổ chức CSELT phát triển. Hi ện nay, Jade là phần mềm miễn phí được cung cấp bởi TILAB (giữ bản quyền). Phiên bản mới nhất là JADE 3.3 (ngày 2/3/2005), trong hệ thống BKGrid 2005, chúng tôi sử dụng phiên bản JADE 3.1.

Như đã đề cập trong phần trước về việc xây dựng dịch vụ lai giữa Agent và lưới và khả năng ứng dụng agent vào việc quản lý tài nguyên trong lưới, với các thư viện và tính mở của JADE, đề tài chọn JADE làm môi trường phát triển Agent và đã tìm ra cơ chế lai giữa 2 môi trườn JADE và GT.

2.2.3.3. Sn phm phn mm

Về mặt sản phẩm, kết quả nghiên cứu được trình bày ở đây là hệ thống BKGrid 2005, hệ thống lưới thử nghiệm. Sản phẩm đã được triển khai thử nghiệm tại Trung tâm Tính toán Hiệu năng cao, Bộ môn Hệ thống Thông tin (khoa Công nghệ Thông tin), Đại học Bách Khoa Hà Nội, được thử nghiệm cài đặt tại một số

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu 304149 (Trang 123)