Giới thiệu các dự án Grid middleware chính

Một phần của tài liệu Tiểu luận môn điện toán lưới và đám mây GRID COMPUTING & WEB SERVICE (Trang 31)

I. TỔNG QUAN VỀ CÔNG NGHỆ GRID COMPUTING

1.9Giới thiệu các dự án Grid middleware chính

Ứng với từng tầng trong kiến trúc Grid, có rất nhiều dự án phát triển bởi nhiều nhà nghiên cứu, tổ chức, tập đoàn thương mại lớn nhằm đưa Grid trở thành hiện thực. Để hoàn thành được các mục tiêu của Grid, các phần mềm Grid middleware cần phải giải quyết được các vấn đề cơ bản của Grid. Grid middleware là phần mềm cho phép tổ chức, tích hợp các tài nguyên và các chức năng vào Grid, nhiệm vụ chính của là thực hiện tự động hóa các “thỏa thuận giữa máy với máy”(machine-tomachine negotiation) để ghép mọi thứ lại với nhau. Đã có rất nhiều nỗ lực từ khắp nơi trong việc thiết kế và cài đặt các phần mềm middleware để xây dựng Grid. Hiện nay đã có nhiều gói phần mềm triển khai thành công, có thể xây dựng được các Grid vượt ra khỏi giới hạn mạng cục bộ.

Phần này sẽ giới thiệu 4 dự án Grid middleware phổ biến hiện nay là UNICORE, Globus, Legion và Gridbus.

a.UNICORE

UNICORE là một môi trường Grid tích hợp theo chiều thẳng đứng nhằm hỗ trợ: + Khả năng truy cập tài nguyên một cách đơn giản, an toàn, bảo mật, trực quan trong môi trường phân tán cho người dùng.

+ Tích hợp các cơ chế chứng thực trong các thủ tục quản trị, nhằm giảm chi phí đào tạo và hỗ trợ cho các Grid site.

+ Phân phối dễ dàng các công việc trên nhiều nền tảng khác nhau.

b.Kiến trúc của UNICORE

Là kiến trúc 3 tầng (three-tier) như hình 2-13. Bao gồm một client chạy trên một máy trạm hoặc PC có hỗ trợ Java; nhiều thể hiện của Network Job Supervisors (NJS) chạy trên các server dành riêng; và nhiều thể hiện của Target SystemInterfaces (TSI) chạy trên các node để cung cấp giao diện sử dụng các hệ quản trị tài nguyên cục bộ như các hệ điều hành, các hệ xử lý theo lô,…

Theo quan điểm của người dùng, UNICORE là một hệ thống dựa trên mô hình client- server có 3 lớp.

- Lớp người dùng : Người dùng chạy UNICORE Client trên máy trạm cục bộ hoặc PC.

Giao diện của UNICORE Client gồm 2 thành phần : JPA (Job Preparation Agent) và JMC (Job Monitor Component). Các công việc được xây dựng bằng JPA, trạng thái và kết quả các công việc được lấy từ JMC. Các công việc và các truy vấn về trạng thái, kết quả của chúng được định dạng bằng Abstract Job Object (AJO).

- Lớp server: Ở mức cao nhất, mỗi trung tâm máy tính thành viên phải xác định một hoặc nhiều UNICORE Grid site (USite) để người dùng kết nối vào.

- Lớp Target System: Một Usite cho phép truy cập đến các tài nguyên tính toán và lưu trữ. Chúng được tổ chức thành các site ảo (Vsite) đại diện cho các hệ thống thực thi và/hoặc lưu trữ trong trung tâm máy tính. Một UNICORE VSite cũng gồm 2 thành phần: NJS (Network Job Supervisor) and TSI (Target System Interface). NJS Server quản lý tất cả các công việc UNICORE và thực hiện phân quyền bằng cách tìm ánh xạ tương ứng giữa chứng chỉ người dùng và tài khoản đăng nhập trong UUDB (UNICORE User Data Base). NJS chuyển đổi các định nghĩa AJO thành các lệnh tương ứng cho hệ thống thực thi được chọn dựa trên các đặc tả trong Incarnation Data Base (IDB). UNICORE TSI chấp nhận các công việc xây dựng bởi NJS và chuyển chúng cho hệ thống thực thi cục bộ để xử lý.

Client kết nối đến UNICORE USite gateway, đây là điểm vào duy nhất cho tất cả các kết nối UNICORE đến USite. Nó cung cấp một địa chỉ IP và số hiệu cổng để người dùng có thể kết nối vào thông qua protocol SSL.

c.Các chức năng và đặc tính chính của UNICORE:

- Tạo lập và đệ trình các công việc hướng người dùng.

Cung cấp giao diện GUI hỗ trợ người dùng tạo những công việc phức tạp có thể chạy trên bất kỳ UNICORE Site nào mà không cần thay đổi đặc tả công việc.

- Có hệ thống quản lý công việc

Cho phép người dùng toàn quyền điều khiển công việc và dữ liệu.

- Có hệ thống quản lý dữ liệu

Trong quá trình tạo lập các công việc, người dùng có thể xác định các tập dữ liệu đầu vào và đầu ra từ USpace (USpace là tập các file sẵn sàng cho một công việc UNICORE) và các tập dữ liệu nào cần phải truyền qua lại giữa các USpace. UNICORE sẽ thực hiện các việc di chuyển dữ liệu trong thời gian thi hành mà không cần sự can thiệp của người dùng.

- Hỗ trợ ứng dụng

Để hỗ trợ các ứng dụng khoa học đặc biệt của các nhà khoa học, giao diện người của UNICORE được xây dựng dưới dạng mở để có thể thêm các thành phần mới cho phép nhập liệu hướng ứng dụng.

Một công việc của người dùng có thể được mô tả dưới dạng một tập các đồ thị có hướng không vòng.

- Cho phép đăng nhập một lần

UNICORE cho phép đăng nhập một lần thông qua các chứng chỉ X.509V3.

- Hỗ trợ các công việc kế thừa lại

UNICORE hỗ trợ công nghệ xử lý theo lô truyền thống bằng cách cho phép người dùng đính kèm các công việc trước đó vào công việc hiện hành.

- Có hệ thống quản lý tài nguyên

Người dùng chọn các hệ thống đích và xác định các yêu cầu tài nguyên. Hệ thống UNICORE Client sẽ kiểm tra tính đúng đắn của các công việc, báo lỗi ngay lập tức và thực hiện cấp phát tài nguyên.

d.Globus

Dự án Globus cung cấp một bộ toolkit mã nguồn mở, có thể được sử dụng để xây dựng các Grid Tính toán và các ứng dụng dựa trên Grid. Nó cho phép chia sẻ năng lực tính toán, dữ liệu, các công cụ khác một cách bảo mật, an toàn trực tuyến giữa các tập đoàn, viện nghiên cứu mà không cần loại bỏ các chính sách quản trị cục bộ. Các service, interface, protocol nền tảng trong bộ Globus Toolkit cho phép người dùng truy cập đến các tài nguyên ở xa một cách đơn giản trong khi vẫn giữ được quyền điều khiển cục bộ cho phép ai được dùng tài nguyên và khi nào.

e.Legion

Legion là một middleware ch phép kết hợp một lượng rất lớn các host, hệ thống lưu trữ dữ liệu, các mã thực thi và các đối tượng hỗn tạp được quản lý độc lập thành một nền tảng tính toán chặt chẽ thống nhất. Legion có khả năng gom nhóm các thành phần rải rác này thành một siêu máy tính dựa trên đối tượng (object-based metacomputer), đưa ra mức độ cao hơn về tính mềm dẻo và tự trị. Nó được cấu trúc như là một hệ thống các “đối tượng phân tán” – các tiến trình hoạt động giao tiếp với nhau sử dụng một dịch vụ gọi hàm từ xa thống nhất. Tất cả các tài nguyên phần cứng và phần mềm trong hệ thống Grid đều được đại diện bởi các đối tựơng Legion. Mô hình đối tượng cơ sở của Legion được mô tả bởi ngôn ngữ đặc tả giao diện (interface description language (IDL)), và được dịch và liên kết với ngôn ngữ lập trình được chọn.

Hướng tiếp cận này cho phép liên kết hoạt động các thành phần của nhiều ngôn ngữ lập trình khác nhau, trên nhiều nền tảng thực thi khác nhau. Khi tất cả các thành phần trong hệ thống đều là các đối tượng, chúng có thể giao tiếp với nhau không phân biệt chi tiết về vị trí, cài đặt.

Một “đối tượng lớp” (class object) được sử dụng để định nghĩa và quản lý các Legion object tương ứng. Class object được gán các trách nhiệm cấp hệ thống; nó điều khiển việc tạo lập các thực thể (instance) mới, lập lịch thực thi, kích hoạt và huỷ kích hoạt các thực thể, cung cấp các thông tin về vị trí hiện tại của nó cho các đối tượng client muốn liên lạc với các thực thể. Nói một cách khác,

các lớp hoạt động như là nhà quản lý và hoạch định chính sách cho hệ thống. Các siêu lớp (metaclass) được sử dụng để định nghĩa các thực thể lớp.

Hình 1-12 Kiến trúc của Legion

Legion định nghĩa một tập các kiểu đối tượng nòng cốt cung cấp các dịch vụ cơ bản của hệ thống như đặt tên và kết nối, tạo lập, kích hoạt, huỷ kích hoạt và xoá các đối tượng. Những đối tượng này đưa ra các cơ chế giúp cho các lớp triển khai các chính sách thích hợp cho các thực thể của chúng. Legion cũng cho phép người dùng định nghĩa và xây dựng các “đối tượng lớp” của riêng mình. Một số đối tượng nòng cốt :

+ Host object : đại diện cho các bộ xử xý.

+ Vault object : đại diện cho hệ thống lưu trữ ngoài.

+ Context object : Ánh xạ “context name” vào LOID (Legion Object Identifiers).

+ Binding Agents : Ánh xạ LOID vào LOA (Legion Object Address).

+ Implement object : duy trì như một file thực thi mà host object có thể thực thi được khi nó nhận được một yêu cầu hay tạo ra một object.

Host object cung cấp một giao diện thống nhất để tạo lập các đối tượng (nhiệm vụ), Vault object cung cấp một giao diện thống nhất để cấp phát tài nguyên lưu trữ, mặc dù có nhiều cài đặt khác nhau cho mỗi loại.

Legion sử dụng hệ thống tên 3 cấp. Các chuỗi ký tự, được gọi “context name”, tạo điều kiện thuận lợi cho người dùng sử dụng một dải rộng lớn các tài nguyên, ở cấp cao nhất. Context object ánh xạ context name vào LOID là cấp tiếp theo. LOID độc lập với vị trí, do đó không thể sử dụng để thực hiện giao tiếp. Vì vậy, LOID tiếp tục được chuyển thành LOA phục vụ giao tiếp. LOA là một địa chỉ vật lý (hoặc tập các địa chỉ vật lý trong trường hợp có các đối tượng nhân bản) chứa các thông tin cần thiết cho phép các đối tượng giao tiếp được với nhau.

f. GridBus

Dự án Gridbus là một dự án mã nguồn mở, thuộc nhiều cơ quan dẫn đầu bởi GRIDS Lab thuộc University of Melbourne, Australia. Nó là cho phép kết hợp các cluster hướng dịch vụ (service-oriented cluster) với các Grid middleware để hỗ trợ các ứng dụng eScience và eBusiness. Nó kết hợp các phần mềm liên quan và đưa ra một tầng trừu tượng nhằm che đi tính đa dạng, hỗn tạp của các tài nguyên và các công nghệ middleware tầng thấp từ góc nhìn của các nhà phát triển ứng dụng. Bên cạnh đó, nó tập trung hiện thực hoá mô hình tính toán tiện ích (ultility computing) trải dài từ các cluster đến Grid và các hệ thống tính toán ngang hàng (peer-to-peer). Gridbus sử dụng mô hình kinh tế trong việc quản lý các tài nguyên chia sẻ và nâng cao tính tiện nghi của các dịch vụ. Từ đó làm tăng khả năng thương mại của các dịch vụ Grid, cho phép quản lý hiệu quả việc cung và cầu tài nguyên.

Gridbus hỗ trợ các tiện nghi ở nhiều mức khác nhau:

+ Mức tài nguyên thô (ví dụ : bán các chu kỳ CPU và tài nguyên lưu trữ)

+ Mức ứng dụng (ví dụ : các hoạt động phân tích phân tử cho các ứng dụng thiết kế thuốc).

+ Tập các dịch vụ đã được kết hợp (ví dụ : môi giới và bán lại các dịch vụ qua nhiều vùng khác nhau).

Ý tưởng tính toán kinh tế (computational economy) giúp cho việc tạo nên kiến trúc tính toán hướng dịch vụ trong đó, các người dùng dịch vụ phải trả tiền cho các ứng dụng và nhà cung cấp dựa trên những yêu cầu nhất định, người dùng có thể tối ưu hóa công việc bằng cách chọn các dịch vụ cần thiết trong một giới hạn về chi phí.

Hình 1-13 Kiến trúc GridBus

Hình vẽ cho thấy các thành phần của Gridbus trong việc liên kết với các công nghệ middleware khác như Globus, UNICORE và Alchemi. Gridbus cung cấp các phần mềm trong các lĩnh vực sau :

Mặc dù phần lớn các tính toán khoa học đều sử dụng các hệ điều hành dòng Unix, nhưng phần lớn hạ tầng tính toán trong các tổ chức thương mại vẫn còn dựa trên Microsoft Windows. Do đó, Alchemi được phát triển để phục vụ nhu cầu thực hiện các giải pháp Grid tận dụng các khả năng tính toán dư thừa ở các máy trạm và máy tính cá nhân chạy Windows trong các tổ chức. Alchemi được xây dựng trên nền Microsoft .NET Framework, cung cấp khả năng xây dựng các “desktop Grid”, nó cũng cung cấp mô hình lập trình hướng đối tượng cùng với giao diện Web service cho phép truy cập đến các service từ bất kỳ môitrường lập trình nào hỗ trợ SOAP và XML.

• Cluster Economy and Resource Allocation (Libra)

Libra là một hệ thống lập lịch cho cluster để đảm bảo rằng các tài nguyên chia sẻ cho các công việc của người dùng để chúng có thể hoàn thành trong một giới hạn về ngân sách do người dùng xác định.

• Grid Economy and Virtual Enterprise (Grid Market Directory, Compute Power Market)

Đây có thể gọi là một thể hiện của cơ chế thị trường cho ngành tính toán kinh tế. Grid Market Directory (GMD) là một dịch vụ đăng ký cho phép các nhà cung cấp dịch vụ có thể đăng ký và phát hành các dịch vụ họ cung cấp và cho phép người tiêu dùng có thể truy vấn để tìm ra dịch vụ phù hợp với nhu cầu. Một số thuộc tính của dịch vụ là điểm truy cập(Access point), cơ chế đầu vào, và chi phí khi sử dụng nó.

Compute Power Market (CPM) là một hệ thống lập lịch và quản lý tài nguyên theo cơ chế thị trường. Nó cho phép trao đổi năng lực tính toán nhàn rỗi trong mạng máy tính ngang hàng. Các thành phần của CPM đại diện cho thị trường, nhà cung cấp và tiêu thụ là Market Server, Market Resource Agent, và Market Resource Broker (MRB). Nó hỗ trợ nhiều mô hình kinh tế cho phép trao đổi tài nguyên, tìm kiếm nhà phân phối và tiêu thụ, cho phép đưa vào nhiều cơ chế lập lịch khác nhau.

Grid Trading and Accounting Services (GridBank)

GridBank là một dịch vụ kế toán và chi trả trong Grid cung cấp một hạ tầng bảo mật, an toàn cho phép người tiêu dùng dịch vụ (Grid Service Consumers (GSC)) chi trả cho nhà cung cấp dịch vụ (Grid Service Providers (GSP)) về việc sử dụng dịch vụ của mình.

• Grid Resource Brokering and Scheduling (Gridbus Broker)

Gridbus Resource Broker cung cấp một giao diện trừu tượng đối với sự phức tạp của Grid bằng cách làm trong suốt quá trình truy cập tài nguyên để thực thi công việc trên Grid. Nó sử dụng các yêu cầu của người dùng để tạo ra một tập các công việc, tìm kiếm tài nguyên, lập lịch, thực thi và kiểm soát, và lấy kết quả về khi các công việc kết thúc.

Gridbus broker có khả năng định vị và lấy các dữ liệu cần thiết từ nhiều nguồn và chuyển tới nơi xử lý. Nó cũng có khả năng chọn lựa nơi chứa dữ liệu tốt nhất trong nhiều site dựa trên sự có mặt của file và chất lượng đường truyền dữ liệu.

G-Monitor là một web-portal để kiểm soát và điều khiển tính toán trên Grid. G- Monitor giao tiếp với các resource broker như Gridbus và Nimgrod-G và sử dụng các dịch vụ của chúng để khởi tạo và kiểm soát việc thực thi ứng dụng. Nó cung cấp các thông tin cập nhật về tiến trình thực thi từ mức chi tiết các công việc đến mức tổng quát toàn bộ ứng dụng. Khi kết thúc, người dùng có thể tập hợp các file kết quả thông qua G-Monitor.

• Grid Simulation (GridSim)

Bộ toolkit GridSim cung cấp các tiện ích cho việc mô hình, giả lập các tài nguyên và kết nối mạng với các khả năng, cấu hình, vùng quản lý khác nhau. Nó hỗ trợ các thành phần cơ bản xây dựng các ứng dụng, dịch vụ thông tin phục vụ việc tìm kiếm tài nguyên, cung cấp giao diện phục vụ việc cấp phát tài nguyên cho các tác vụ và quản lý việc thực thi. Nó cũng cung cấp một một giao diện mô hình hoá trực quan để tạo các người dùng và tài nguyên. Các tính năng này có thể được sử dụng để giả lập các hệ thống song song và phân tán như resource broker hoặc Grid scheduler để lượng giá hiệu quả của các giải thuật lập lịch,…

Một phần của tài liệu Tiểu luận môn điện toán lưới và đám mây GRID COMPUTING & WEB SERVICE (Trang 31)