Đề tài Grid Computing và xây dựng tính toán lưới trên nên tảng Alchemi

Alchemi là một cách dễ dàng để sử dụng khung lưới tính toán thuần nhằm mục đích hạ thấp các rào cản nhập cảnh vào thế giới của tính toán phân tán / Grid, bằng cách làm cho nó dễ dàng hơn để thiết lập, quản lý và duy trì lưới trên một mạng nội bộ hoặc diện rộng. Khuôn khổ là trong phát triển liên tục, và như một dự án mã nguồn mở theo GPL, chúng tôi khuyến khích sự tham gia của cộng đồng và phản hồi trong tất cả các khía cạnh của sự phát triển của Alchemi.

docx39 trang | Chia sẻ: lylyngoc | Lượt xem: 3145 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Grid Computing và xây dựng tính toán lưới trên nên tảng Alchemi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
(TCP , UDP) và các giao thức tầng ứng dụng (DNS , OSPF , RSVP …) Các vấn đề bảo mật phức tạp trong mạng lưới được giải quyết bằng các giải pháp xây dựng và nâng cấp từ các chuẩn đã có. Trong truyền thông hiện có rất nhiều các chuẩn bảo mật được phát triển trong ngữ cảnh Internet. Giải pháp xác thực trong môi trường mạng lưới các tổ chức ảo bao gồm các đặc điểm sau : + Cơ chế đăng nhập một lần (Single Sign On): người dùng chỉ cần đăng nhập vào mạng lưới một lần duy nhất. Sau đó hệ thống phải quản lý người dùng đã xác thực và cho phép truy cập các tài nguyên được phép trong lớp chế tác mà không yêu cầu cung cấp các thông tin xác thực nữa. + Cơ chế ủy quyền (Delegation, Proxy): người dùng có thể ủy quyền lại cho một chương trình trong một khoảng thời gian xác định truy cập đến các loại tài nguyên mà anh ta được phép sử dụng. Chương trình này cũng có thể ủy quyền có điều kiện một phần các tập quyền của nó cho chương trình con khác. Hệ thống mạng lưới phải hiểu, kiểm soát chặt chẽ và đáp ứng tốt cơ chế ủy quyền này một cách trong suối đối với chương trình được trao ủy quyền. + Cơ chế tích hợp đa giải pháp bảo mật địa phương (Integration with various local security solutions): Đặc điểm của mạng lưới là mỗi site chứa tài nguyên mạng lưới đều có cơ chế bảo mật tại chỗ không giống nhau (các cơ chế xác thực như Kerberos, LDAP, Active Directory, username/password,... ). Cơ chế bảo mật mạng lưới phải có khả năng giao tiếp bên trong với các cơ chế bảo mật địa phương mà không yêu cầu thay thế toàn bộ các giải pháp bảo mật hiện có, nhưng cần có cơ chế ánh xạ bảo mật trong các môi trường cục bộ khác nhau. + Cơ chế quan hệ tin tưởng dựa trên người dùng (User-based Trust Relationships): người dùng có thể sử dụng các loại tài nguyên có được từ sự kết hợp của nhiều nhà cung cấp khác nhau. Việc kết hợp đó không bắt buộc các nhà cung cấp tài nguyên phải tác động qua lại lẫn nhau nhựng phải đảm bảo cấu hình của cơ chế bảo mật hiện có. Ví dụ, xem xét trường hợp một người dùng có quyền sử dụng hai site A và site B. Khi đó người dùng có quyền dùng site A và B cùng một lúc mà không cần phải thông qua các quản trị viên của các site A và B, khi các site này đã được thiết lập cơ chế quan hệ tin tưởng dựa trên người dùng. Giải pháp bảo mật của mạng lưới cũng đồng thời cung cấp khả năng hỗ trợ cơ chế bảo vệ truyền thông một cách linh hoạt và khả năng hỗ trợ này được cho là đáng tin cậy hơn giao thức TCP/IP truyền thống trên Internet. 2.1.3. Tầng Resource Tầng này được xây dựng trên nền tảng sẵn có của tầng kết nối . Đây là tầng dùng để xác định các giao thức chính cho các quá trình thương lượng, khởi tạo, kiểm tra, điều khiển, tính toán và kiểm toán chi phí của các thao tác được chia sẻ trên các tài nguyên. Những giao thức trong tầng tài nguyên sẽ gọi các chức năng trong tầng chế tác để truy cập và sử dụng các loại tài nguyên cục bộ. Có hai loại giao thức chính trong các giao thức của tầng tài nguyên: + Giao thức thông tin (Information protocol): cho phép lấy các thông tin về cấu trúc, tình trạng của một loại tài nguyên nào đó trong mạng lưới. + Giao thức quản lý (Management protocol): dùng để sắp xếp quản lý thứ tự các truy cập đến các tài nguyên được chia sẻ. 2.1.4. Tầng Collective Trong khi tầng tài nguyên chỉ cho phép truy cập đến một loại tài nguyên đơn thì tầng kết hợp tập thể lại chứa các giao thức và dịch vụ cho phép giao tiếp giữa các tài nguyên trong mạng lưới. Tầng này bao gồm các dịch vụ chính như sau: + Các dịch vụ thư mục (Directory Services): cho phép các thành phần tham gia trong hệ thống mạng lưới tổ chức ảo tìm hiểu sự tồn tại và các thuộc tính của các loại tài nguyên của họ. Một dịch vụ thư mục cũng cho phép người dùng truy vấn các thuộc tính của tài nguyên, loại tài nguyên, tính khả dụng … + Các dịch vụ chứa chấp, lập lịch, môi giới (Co-allocation, Scheduling & Broker Services): cho phép các thành phần tham gia vào mạng lưới tổ chức ảo gởi yêu cầu đến một hay nhiều máy chủ cho các mục đích chứa chấp, lập lịch và môi giới truy cập các tài nguyên tương ứng. + Các dịch vụ giám sát và dự báo (Monitoring and Diagnostic Services): cho phép hệ thống hỗ trợ kiểm soát tài nguyên trong mạng lưới các tổ chức ảo. + Các dịch vụ nhân bản dữ liệu (Data Replication Services): cho phép hỗ trợ việc quản lý lưu trữ tài nguyên trong mạng lưới tổ chức ảo (kể cả mạng và năng lực tính toán) tạo điều kiện cho truy cập tài nguyên đến mức cao nhất có thể. + Các hệ thống lập trình hỗ trợ mạng lưới (Grid-enable Programming Systems): tương tự như mô hình lập trình giao tiếp ứng dụng (API) thông thường, nhưng dùng trong môi trường mạng lưới. Hệ thống này cho phép sử dụng các dịch vụ mạng lưới để xác định các thông tin tài nguyên, thực hiện cơ chế bảo mật mạng lưới, định vị trí tài nguyên và tất cả những gì có liên quan đến mạng lưới. + Hệ thống quản lý tải và môi trường cộng tác (Workload Management System & Collaboration Framework): tương tự như môi trường giải quyết vấn đề PSE (Problem Solving Environment), hệ thống này cung cấp các đặc tả, cách dùng và quản lý đa bước, quản lý tính đồng bộ, đa luồng, đa thành phần… trong các tiến trình tính toán. + Dịch vụ tìm kiến phần mềm (Software Discovery Service): hỗ trợ tìm kiếm và lựa chọn phần mềm cài đặt và làm nền tảng cho mạng lưới. 2.1.5. Tầng Application Đây là tầng cuối cùng trong kiến trúc mạng lưới, bao gồm tất cả các ứng dụng hướng tới người dùng trong môi trường mạng lưới của các tổ chức ảo. Về nguyên tắc, người sử dụng có thể tương tác với mạng lưới thông qua tầng ứng dụng một cách trong suốt mà không nhận biết được sự có mặt của các tầng khác trong mạng lưới Các thành phần trong mô hình tính toán lưới. Để tạo thành một hệ thống theo tính toán lưới, chúng phải bao gồm nhiều thành phần. Có hai tiêu chí để đánh giá và chia công việc theo từng thành phần. Phân chia theo mô hình chức năng. Về mặt chức năng thì lưới gồm các thành phần sau: ổng tương tác (Grid portal): là một giao diện cho phép người dùng sử dụng các ứng dụng lưới, do đó lưới trở nên trong suốt với người dùng. Thành phần bảo mật (Security): là cơ chế đảm bảo các hoạt động như xác thực, cấp quyền, bảo mật-toàn vẹn dữ liệu và tính sẵn sàng của dữ liệu. Chức năng an ninh nút (Node Security Function): chức năng này chịu tránh nhiệm xác thực và bảo mật cho từng nút trong quá trình giao tiếp giữa nó và các thành phần khác bên trong mạng lưới. Nó phụ thuộc vào hệ điều hành và các hệ thống lưới cụ thể, thường thấy là cơ chế cấp chứng chỉ quyền truy cập. Bộ lập lịch (Scheduler): là phần phối hợp quá trình thực thi của nhiều công việc song song. Đơn giản, người sử dụng có thể chọn nút thích hợp để chạy tác vụ, sau đó chỉ việc kích hoạt lệnh để định tuyến công việc đó tới nút đã chọn. Thành phần môi giới (Broker): sau khi người dùng được xác nhận quyền gia nhập vào mạng lưới bởi thành phần an ninh nút, thành phần này sẽ chỉ rõ ứng dụng của người dùng được sử dụng tài nguyên nào và đảm bảo tài nguyên được sẵn sàng sử dụng theo tham số truyền vào. Quản lý, phân bổ tài nguyên (grid resource allocation manager, GRAM): cung cấp dịch vụ để kích hoạt từng công việc trên từng tài nguyên cụ thể; kiểm tra trạng thái công việc; đọc kết quả khi công việc đó kết thúc. Các thông tin của thành phần này sau đó sẽ được bộ lập lịch sử dụng. Tài nguyên (Resource): tài nguyên lưới bao gồm bộ xử lý, bộ lưu trữ, các ứng dụng và các thành phần. Quản lý dữ liệu (Data management): dữ liệu có thể nằm ở tài nguyên, hoặc là kết quả thực thi của một tác vụ nào đó. Thành phần quản lý dữ liệu phải đảm bảo an toàn và ổn định trong quá trình di chuyển dữ liệu giữa các lưới. Giao thức (Protocol): là thành phần đảm bảo lien kết các thành phần chức năng kể trên để có thể hoạt động và tương tác được với nhau trong mạng lưới. Các thành phần theo mô hình vật lý Thành phần mạng (Networks): mạng đóng vai trò là cơ sở hạ tầng để truyền số liệu và các thông tin giám sát công việc giữa các điểm trong mạng lưới. Băng thông mạng là một thuộc tính rất quan trọng liên quan đên hiệu suất lưới. Thành phần tính toán (Computation): được cung cấp bởi các bộ xử lý trong lưới, chúng đa dạng về tốc độ, kiến trúc, nền tảng phần mềm và lưu trữ. Thành phần lưu trữ (Storage): dữ liệu có thể được lưu trữ phân tán trên nhiều thiết bộ xử lý hoặc một mạng SAN. Mỗi bộ xử lý thường cung cấp một dung lượng lưu trữ nhất định. Hệ thống file thường được dùng là NFS, DFS hoặc GPFS Phần mềm và bản quyền (Software and License): về phương diện phần mềm trong môi trường tính toán lưới thì mức độ ổn định của ứng dụng phần mềm và bản quyền phần mềm là hai vất đề cần được quan tâm nhất. Các thiết bị đặc biệt: một vài nút trên lưới có thể có những thiết bị đặc biệt, chẳng hạn các thiết bị quân sự, y tế, hay các thiết bị chuyên dụng khác. Chương 3 – Một số Grid Middleware chính 3.1 Định nghĩa Grid Middleware: Grid middleware là gói phần mềm nằm giữa lớp ứng dụng và hệ điều hành. Grid middleware quản lý sercurity, truy cập và trao đổi thông tin: Cung cấp khả năng kết nối số lượng lớn user Che dấu các tài nguyên chia sẽ rời rạc như máy tính, trung tâm dữ liệu,các thiết bị khác…Cung cấp các công cụ để quản lý,khởi tạo các liên kết trao đổi thông tin. Nhiêm vụ và lợi ích của grid middleware: Có 3 mục đích:Xây dựng các giao tiếp, và các giao thức có tính mục đích chung, tính mở và tính chuẩn. Bởi vì hệ thống lưới được xây dưng trên những giao tiếp và giao thức với rất nhiều mục đích khác nhau. Những giao tiếp và giao thức này điều chỉ ra được các kết quả cơ bản, mang tính nền tảng như về việc xác nhận, xác thực, khám phá tài nguyên, truy xuất tài nguyên. Do đó, việc xây dựng các giao tiếp, giao thức chuẩn và mở là rất quan trọng, nếu không, chúng ta chỉ xây dựng được những ứng dụng mang tính đặc thù mà thôi.Định nghĩa các giao thức chuẩn: Nó định nghĩa nội dung và chuỗi các sự kiện trao đổi thông điệp sử dụng các thao tác yêu cầu từ xa. Điều này rất quan trọng và thiết để thực hiện tính interoperability (nghĩa là khả năng mà 2 thực thể khác nhau có thể làm việc với nhau, và được thực hiện bởi các giao thức thông thường) mà hệ thống lưới phụ thuộc vào. Cung cấp các API chuẩn: đó là các giao diện lập trình ứng dụng chuẩn, định nghĩa các giao tiếp chuẩn để viết mã thư viện, và cấu trúc các thành phần của Grid bằng cách cho phép các thành phần mã được sử dụng lại.Khi có grid middleware thì giúp tránh cho các nhà phát triển ứng dụng không cần lập trình các mức thấp, tránh error-prone flatform như việc lập trình mạng mức socket.Giảm chi phí thời gian phát triển phần mềm khi tập trung phát triển chuyên môn trước rồi mới phát triển ứng dụng bằng cách tái sử dụng framework chứ không cần xây dựng lại từ đầu.Cung cấp các trừu tượng hướng mạng ở mức cao gần với yêu cầu ứng dụng cho việc phát triển hệ thống rời rạc.Cung cấp nhiều dịch vụ phát triển, như đăng nhập và bảo mật giúp cho việc hoạt động hiệu quả trong môi trường mạng. Kiến trúc Grid Middleware : Hịnh 2 Các thành phần của middleware nằm giữa Application và Fabric. Grid Middleware nằm giữa hai lớp:lớp ứng dụng (application), Lớp kết cấu (fabric) Grid middleware gồm 2 lớp chính:lớp Collection ,lớp Resource và lớp connectivity 3.2 Một số Grid Middleware 3.2.1 Globus Toolkit Giới thiệu Globus là phần mềm nguồn mở được dùng để xây dựng các hệ thống lưới và các ứng dụng trên nền tảng lưới. Tookit này cung cấp các dịch vụ và thư viện điểu khiển, khám phá và quản lý tài nguyên, quản lý tập tin, cung cấp các cơ chế bảo mật dữ liệu cho người dùng trong hệ thống lưới. Các dịch vụ, giao tiếp và giao thức của nó cho phép người dùng có thể dễ dàng truy xuất tới các tài nguyên ở xa ngay trên máy cục bộ của mình.Globus được phát triển bởi tổ chức Globus Alliance, phiên bản 1.0 ra đời vào năm 1998, phiên bản gần đây nhất là phiên bản5.0 ra đời vào tháng 1 năm 2010. Kiến trúc Cấu trúc của Globus gồm 3 nhóm dịch vụ chính, các dịch vụ này được truy xuất thông qua một tầng bảo mật (security layer). Ba nhóm dịch vụ đó là: dịch vụ quản lý tài nguyên (Resource Management), dịch vụ quản lý thông tin (Information Service), dịch vụ quản lý dữ liệu (Data Management). Globus đóng gói các dịch vụ này lại với nhau, chúng có thể được sử dụng một cách độc lập hoặc kết hợp chung với nhau để phát triển ứng dụng. Hình 3: Kiến trúc của Globus Toolkit Tầng local-service chứa các dịch vụ của hệ điều hành, dịch vụ mạng như là TCP/IP, Tầng chính chứa các công cụ để xây dựng các cơ chế bảo mật, gửi các công việc để thực thi (job submission), quản lý tài nguyên, quản lý thông tin tài nguyên. Tầng cao hơn cung cấp các dịch vụ và công cụ để tương tác với các dịch vụ bên dưới và hiện thực các chức năng còn thiếu. Tầng bảo mật GSI Tầng này cung cấp các phương thức xác thực của người dùng trong môi trường lưới và cơ chế bảo một trong trao đổi dữ liệu. Nó dựa trên nền tảng SSL, PKI và chuẩn X.509. Tầng GSI cung cấp các dịch vụ, giao thức và thư viện để thực thi các vấn đề bảo mật trong môi trường lưới như:Xác thực một lần (single sign-on) trong việc sử dụng các dịch vụ của hệ thống lưới thông qua chứng nhận (certificate) của người dùng.Xác thực việc sử dụng tài nguyên thông qua certificate của host Mã hóa dữ liệu Ủy quyền Người dùng muốn truy cập vào các tài nguyên của hệ thống lưới cần phải có một certificate subject ánh xạ với một tài khoản trên máy ở xa được cung cấp bởi người quản trị của hệ thống. Chứng thực này cần phải được ký bởi một tổ chức (CA) mà hệ thống tin tưởng. Hầu hết các dịch vụ đòi hỏi người dùng phải được xác thực trước khi sử dụng các chức năng của nó. Điều này đảm bảo việc chống thoái thác trách nhiệm và bảo mật dữ liệu cho cả người sử dụng lẫn hệ thống. Quản lý tài nguyên (resource management) Gói này gồm các thành phần chính sau: Globus resource allocation manager (GRAM): GRAM cung cấp khả năng thực thi các công việc trên các máy ở xa, và trả kết quả thực hiện lại cho trình khách. Khi người dùng gửi một công việc lên gatekeeper deamon trên máy ở xa, thì gatekeeper deamon sẽ kiểm tra xem người dùng này đã được xác thực hay chưa. Nếu người dùng này đã được xác thực thì nó sẽ tạo một job manager để quản lý và điều khiển việc thực thi công việc này. Tùy thuộc vào biểu thời gian (scheduler) của hệ thống mà job manager có được tao ra ngay lập tức hay không. Có nhiều loại biểu thời gian như: Portable batch system (PBS), Load sharing facility (LSF), và Load Leveler. Trong GRAM chứa Globus resource specification language (RSL) dùng để chứa các thông tin về tài nguyên mà một công việc cần để thực thi như số lượng CPU, kích thước tối thiểu của bộ nhớ,… Globus access to secondary storage (GASS): GASS là cơ chế truy cập tới các tập tin trong hệ thống, nó cho phép ứng dụng có thể đọc, ghi các tập tin trên hệ thống từ xa. GASS sử dụng GSI để đảm bảo đúng quyền hạn khi đọc ghi dữ liệu trên hệ thống. Dịch vụ cung cấp thông tin của tài nguyên (Information services) Gói này cung cấp thuộc tính của các nút (node) tham gia vào hệ thống lưới. Monitoring and dscovery service (MDS) cung cấp các hổ trợ để thông báo và truy vấn các thông tin tài nguyên của hệ thống. MDS gồm ba tầng: tầng dưới cùng là Information providers (IPs), nó chịu trách nhiệm tập hợp dữ liệu về thông tin, trạng thái của tài nguyên; tầng thứ hai là Grid resource information service (GRIS), nó chịu trách nhiệm trả lời các truy vấn về thông tin của tài nguyên và cập nhật vào cache; tầng trên cùng là Grid information index service (GIIS), nó làm đề mục (index) cho thông tin tài nguyên được cung cấp bởi GRIS và GIIS khác mà đăng ký với nó. Quản lý dữ liệu (Data management) Gói này cung cấp các tiện ích và thư viện để truyền tải, lưu trữ và quản lý các tập dữ liệu lớn. Nó gồm 2 thành phần chính: GridFTP: Đây là giao thức mở rộng của giao thức FTP nhằm đảm bảo dữ liệu được chuyển đổi trong môi trường lưới được bảo mật, đáng tin cậy và hiệu quả. Ngoài ra, nó được chạy trên tầng GSI nhằm đảm bảo quá trình truyền nhận được xác thực đúng người, đúng quyền. Replica location and management: thành phần này hỗ trợ một file có thể được lưu trữ nhiều nơi trong môi trường lưới. Replica location service (RLS) chịu trách nhiệm tạo và xóa các bản sao (replica) 3.2.2 UNICORE Giới thiệu UNICORE cung cấp một môi trường lưới bao gồn client và server. UNICORE hỗ trợ việc truy cập tới các tài nguyên tính toán và dữ liệu trong môi trường lưới một cách dễ dàng, liền mạch và an toàn. Kiến trúc Hình 4 : Kiến trúc của UNICORE UNICORE được thiết kế theo kiến trúc ba tầng (Hình 4). Theo cách nhìn từ phía người dùng đầu cuối, UNICORE là hệ thống khách-chủ được xây dựng theo mô hình ba tầng gồm: Tầng người dùng: người dùng chạy UNICORE client trên máy trạm hoặc máy cá nhân. Tầng máy chủ: Mỗi trung tâm máy tính tham gia định nghĩa một hoặc một vài Usite (UNICORE Grid site) để trình khách có thể kết nối vào. Tầng hệ thống: Usite cung cấp cơ chế truy cập đến các tài nguyên tính toán và tài nguyên dữ liệu. Chúng được tổ chức thành một hoặc một vài Vsite (Virtual site). Vsite có thể xem như là một hệ thống thực thi và lưu trữ tại các máy trung tâm. UNICORE client bao gồm hai thành phần: JPA (job preparation agent) và JMC (job monitor component). JPA dùng để khởi tạo các công việc, JMC điều khiển việc nhận kết quả thực thi công việc. Các công việc, trạng thái của một yêu cầu và kết quả thực thi được mô tả trong AJO (abstract job object). Trình khách kết nối với UNICORE Usite gateway và gửi công việc thông qua các AJO. UNICORE gateway là lối vào duy nhất cho tất cả các kết nối với Usite. Nó cung cấp một địa chỉ và một cổng để người dùng có thể kết nối vào bằng cách sử dụng giao thức SSL. UNICORE Vsite gồm hai thành phần: NJS (network job supervisor) và TSI (target system interface). NJS quản lý tất cả các công việc được gửi vào hệ thống UNICORE, thực hiện việc xác thực người dùng bằng cách tìm kiếm một chứng thực hợp lệ của người dùng trong cơ sở dữ liệu của nó UUDB. TSI nhận các công việc từ NJS và đưa chúng vào hệ thống để thực thi. Tổng quan về quá trình thực hiện một công việc trong UNICORE middleware Trình khách UNICORE tạo, thao tác, quản lý các công việc, đồng bộ các công việc, di chuyển dữ liệu giữa các hệ thống, các site. Trình khách tạo một AJO để gửi công việc về cho trình chủ. Trình chủ UNICORE sẽ thực thi các công việc sau: Chuyển các AJO thành các action phù hợp với hệ thống. Đồng bộ hóa các action với nhau. Chuyển các công việc và dữ liệu giữa các máy trạm, các hệ thống, và các site với nhau. Quản lý trạng thái: Một đơn vị thực thi của UNICORE là một công việc. NJS sẽ thực thi các công việc do người dùng gửi vào hệ thống. Một công việc có thể có một hoặc nhiều công việc nhỏ. Các công việc nhỏ cũng là một công việc và được xem như là một tác vụ đơn giản. Khi NJS thực thi một công việc, nó sẽ tạo một thư mục trên hệ thống cho công việc này. Thư mục này được xem như là một Uspace của công việc. Tất cả các tập tin sử dụng trong quá trình thực thi công việc sẽ được lưu trữ trong Uspace của công việc. Tất cả các tác vụ thực thi trong quá trình thực thi một công việc đều không được phép truy cập trực tiếp vào các tập tin của hệ thống (Xspace). Thay vào đó, khi một tác vụ nào đó muốn sử dụng một tập tin của hệ thống , nó sẽ chép tập tin đó vào Uspace, lúc nào tất cả các thao tác trên tập tin sẽ được thực hiện trên tập tin được lưu trữ trong Uspace. Khi AJO hoàn thành việc thực thi thì Uspace của nó sẽ được xóa đi. 3.2.3 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 5 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 : • Enterprise Grid Infrastructure (Alchemi) 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 đượ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ôi trườ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. • Grid Portals (GMonitor) 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,… 3.2.4 .ALchemi . 3.2.4.1 Giới thiệu             Cùng với sự tăng trưởng theo cấp số nhân của các máy tính cá nhân trên toàn cầu, ý tưởng xây dựng một siêu máy tính cho phép dựa vào nguồn tài nguyên của các máy tính cá nhân để giải quyết các bài toán có quy mô lớn trong khoa học, kỹ thuật và thương mại…. Mô hình mới này được đặt tên là Internet computing, hoặc cũng được gọi với một vài tên khác là Grid comuting, peer-to-peer (P2P) computing… Grid computing là một loại hệ thống phân tán, bố trí song song, cho phép linh hoạt chia sẻ, tuyển chọn và tập hợp các nguồn tài nguyên độc lập và rải rác về địa lý, tùy theo khả năng sẵn có, công suất hoạt động, chi phí và yêu cầu về chất lượng dịch vụ của người sử dụng.             Middleware Alchemi được hình thành và phát triển bởi đại học Melbourne (Úc), cho phép tập hợp sức mạnh tính toán của các máy tính cá nhân tạo ra một siêu máy tính ảo (lưới máy tính) để phát triển các ứng dụng chạy trên lưới đó. Alchemi được thiết kế với mục đích dễ dàng sử dụng mà không mất đi tính linh hoạt, độ tin cậy và khả năng mở rộng. Alchemi là phần mềm mã nguồn mở được phát triển trên nền tảng Microsoft .NET Framework chạy trên hệ điều hành Windows. Một số tính năng chính được hỗ trợ bởi Alchemi: tập hợp các máy tính cá nhân không đồng nhất, thực hiện tính toán trên các nút (nodes), lập trình hướng đối tượng, hỗ trợ webservice cho phép tạo ra mạng lưới toàn cầu…..             Alchemi đã được sử dụng để phát triển một số ứng dụng khoa học,thương mại: BLAST (Basic Local Alignment Search Tool) – được sử dụng để xác định tính tương đồng giữa các chuỗi sinh học, Gridbus broker – sử dụng Alchemi tham gia vào dự án mạng lưới tính toán toàn cầu (Grid global), CSIRO – mô hình hóa và mô phỏng ứng dụng thủy văn của Úc, xử lý bảng tính Microsoft Excel, Styam của Ấn Độ - phân tích dữ liệu ứng dụng trong việc phát hiện ung thư, tăng năng suất trong các bài toán mã hóa và giải mã… 3.2.4.2. KIẾN TRÚC CỦA HỆ THỐNG TÍNH TOÁN LƯỚI ALCHEMI 1. Phân loại các thành phần của hệ thống tính toán lưới Alchemi             Trong hệ thống tính toán lưới Alchemi, các nút (nodes) tham gia quản lý, điều khiển, thực hiện tính toán được phân chia làm 4 loại: Manager, Executor, User, Cross Platform Manager Node. Trong đó có 1 nút chính đóng vai trò là Manager, các nút còn lại đóng vai trò là Executor liên kết trực tiếp với Manager. Các Users có thể thực hiện các ứng dụng tính toán trên hệ thống lưới khi gửi công việc cho Manager. Thành phần cuối cùng là Cross Platform Manager cung cấp giao diện dịch vụ web Hình 6 – Các thành phần tham gia vào hệ thống tính toán lưới Alchemi 2.    Manager Các ứng dụng (grid application) khi thực hiện trên lưới tính toán được phân chia thành các luồng (threads). Manager có nhiệm vụ điều khiển, quản lý các ứng dụng, các luồng dữ liệu (threads) của chúng khi thực hiện trên hệ thống tính toán lưới. Các Executor trong lưới cần phải đăng kí trực tiếp với Manager, và chịu sự giám sát trực tiếp của Manager trong quá trình thực hiện công việc. Tập hợp các luồng (threads) nhận từ người sử dụng (Users) được lưu lại, và Manager phân chia lịch thực hiện theo thứ tự trên các Executor nhàn rỗi. Mỗi luồng có quyền ưu tiên riêng tuân thủ theo nguyên tắc “đến trước – thực hiện trước (First Come First Served (FCFS))”. Sau khi thực hiện xong các công việc, Executor trả lại kết quả thực hiện các luồng (thread) cho Manager, sau đó Manager có chức năng tập hợp lại kết quả và gửi trả về cho người sử dụng. 3.    Executor Executor tiếp nhận các luồng (threads) công việc từ Manager và thực hiện chúng. Executor có thể thực hiện ở 2 trạng thái: chuyên dụng (dedicated), không chuyên dụng (non-dedicated): Dedicated: trạng thái này cho phép Manager quản lý trực tiếp Executor. Trong trường hợp này Manager sẽ chỉ cho biết Executor cần phải thực hiện luồng công việc nào. Non-dedicated: trạng thái này cho phép Executor thực hiện các luồng công việc liên tục trong suốt quá trình máy tính ở trạng thái nhàn rỗi. Trong trường hợp này giao tiếp giữa Executor và Manager là giao tiếp một chiều. Vì vậy Executor tự động gửi yêu cầu tiếp nhận thực hiện các luồng công việc. 4.    User             Các ứng dụng grid (grid application) được chạy trên các nút (node) User. Alchemi API tiếp nhận yêu cầu thực hiện ứng từ các nút (node) User và có trách nhiệm thực hiện một loạt các công việc thay cho người sử dụng: gửi ứng dụng, phân chia ứng dụng thành các luồng công việc, tổng hợp kết quả của luồng công việc, thông báo kết quả của ứng dụng, thông báo các luồng công việc bị lỗi. 5.    Cross-Platform Manager – Web Services             Cross-Platform Manager là một giao diện dịch vụ web service, cho phép thực hiện các grid jobs (khác với ứng dụng grid (grid application) theo mô hình luồng (thread)). Các grid jobs tiếp nhận từ Cross-Platform được phân chia về các Manager, sau đó các Manager tiếp nhận và phân chia thành các luồng (threads) thực hiện theo cơ chế như trên. Cross-Platform cho phép Alchemi tùy chỉnh để tương thích với tất cả nền tảng hỗ trợ dịch vụ web.  6.       Mô hình làm việc trên hệ thống tính toán lưới sử dụng Alchemi Hình 7 – Mô hình làm việc trên hệ thống tính toán lưới sử dụng Alchemi Alchemi được xây dựng theo mô hình client – server, sử dụng Alchemi để liên kết các máy tính cá nhân thành hệ thống tính toán lưới cần phải thỏa mãn 2 điều kiện sau: Lựa chọn một máy tính (1 node) trong hệ thống đóng vai trò quản lý (Manager) và cài đặt trên đó gói Manager Alchemi. Các máy tính còn lại trên hệ thống tính toán đóng vai trò như máy thực hiện công việc (executor) và cần cài gói Executor Alchemi, cấu hình để nhận công việc thực hiện từ Manager Alchemi. Các gói cài đặt của Alchemi (Manager Alchemi, Executor Alchemi) là các chương trình cài đặt tương đối dễ dàng, đòi hỏi cấu hình tối thiểu trên các máy tính cá nhân (mỗi máy tính cần cài đặt FrameWork.Net). Quá trình cài đặt đơn giản như các phần mềm bình thường khác. 3.3 So sánh các Grid Middleware Thuộc tính\ Middleware UNICORE Globus Gridbus Alchemi Tập trung vào Mô hình lập trình cấp cao Các service cấp thấp Trừu tượng hoá và các mô hình thị trường tính toán Lưới Lập trình Lĩnh vực Tập trung vào thực thi và kiểm soát job Mô hình tính toán chung, tổng quát Mô hình tính toán chung, tổng quát xây dựng một siêu máy tính dựa trên tài nguyên các máy tính cái nhân Kiến trúc Hệ thống đa tầng theo chiều sâu Bộ toolkit có phân tầng và module hoá Hệ thống các thành phân tầng Gồm 4 nodes :Manager, Executor, User, Cross Platform Manager Node Chuẩn sử dụng Mới bắt đầu áp dụng OGSA, OGSI vào phiên bản hiện đang phát triển. OGSA,OGSI. Không có. OGSA,OGSI nếu sử dụng với Globus OGSA,OGSI Mô hình triển khai Abstract Job Object Mô hình đồng hồ cát ở mức độ hệ thống Mô hình đồng hồ cát ở mức độ hệ thống Cross-Platform Web Service Manager Công nghệ cài đặt Java C và Java C, Java, C# và Perl C# Nền tảng thực thi Unix Unix Unix và Windows với .NET Linux ,windows vớiMicrosoft .NETFramework Môi trường lập trình Môi trường workload Thay thế các thư viện của Unix và C. Các thư viện MPI đặc biệt (MPICH-G),CoG (Commodiy Grid) kits với Java, Python, CORBA, Matlab, Java Server Pages, Perl và Web Services Broker Java API,Ngôn ngữ tham số dựatrênXML. Mô hình Grid Thread trong Alchemi. C# ,với hệ diều hành windows hoặc linux ,sư dụng Microsoft .NET Framework ,thư viện Alchemi.Core.dll Mô hình phân phối Mã nguồn mở Mã nguồn mở Mã nguồn mở Mã nguồn mở Sử dụng trong một số ứng dụng và người dùng +EuroGrid +Grid Interoperability Project (GRIP) +OpenMolGrid + Japanese NAREGI + AppLeS + Ninf + Nimrod-G + NASA IPG + Condor-G + Gridbus Broker + UK eScience Project + GriPhyN , + EU Data Grid. + ePhysics Portal + Belle Analysis Data Grid + NeuroGrid + Natural Language Engineering +HydroGrid +Amsterdam Private Grid. BLAST (Basic Local Alignment Search Tool) ,Gridbus broker ,CSIRO,Styam của Ấn Độ Quản lý tài nguyên Không có Có broker service Gridbus broker . Gridbus broker Cách thức liên lạc Mô hình AJO, khôn hỗ trợ chuyểnmessage đồng bộ. Thư viện Nexus Không có thông tin Thư viện Alchemi.Core.dll Bảo mật Sử dụng Secure Socket Layer (SSL) protocol và chứng chỉ chứng thựcX.509V3. Thông qua GSI, cũng dựa trên SSL và X.509V3 +Dựa trên GSI của Globus + Sử dụng các chức năng bảo mật của Microsoft .NET Framework (Alchemi). Mã hóa dữ liệu bằng thuật toán DES Chương IV – Xây dựng hệ thống Grid Computing trên nền tảng Alchemi Và sử dụng định luật Amdahl trong tính toán lươi 4. Alchemi 4.1. Mạng máy tính Ý tưởng của máy tính tổng hợp - sử dụng một mạng lưới nhiều máy tính độc lập như thể chúng là một trong những máy tính song song, hoặc siêu máy tính ảo là rất hấp dẫn vì nó có được khả năng xử lý như siêu máy tính với chi phí rất nhỏ so với siêu máy tính truyền thống   Trong khi các máy ảo truyền thống (ví dụ clusters) đã được thiết kế cho một số lượng nhỏ kết hợp chặt chẽ các nguồn tài nguyên đồng nhất, sự tăng trưởng theo cấp số nhân trong kết nối Internet cho phép các khái niệm này được áp dụng trên một quy mô lớn hơn nhiều. Điều này, cùng với thực tế rằng máy tính để bàn trong môi trường gia đình và doanh nghiệp được rất ít người sử dụng đúng mức, thường chỉ một phần mười của sức mạnh xử lý được sử dụng đã làm tăng sự quan tâm đến khai thác một lượng lớn sức mạnh xử lý có sẵn trong các hình thức của phụ tùng chu kỳ CPU trên máy tính để bàn Internet hoặc mạng nội bộ kết nối. Mô hình mới này đã được gọi là Tính toán lưới. Nhiều dự án tính toán phân tán đã chứng minh tính khả thi của khái niệm đó là distributed.net và Seti @ Home.  4.2 Cài đặt, cấu hình và hoạt động 4.2.1. Phổ biến yêu cầu :Microsoft. NET Framework 1.1 4.3.2. Manager Manager nên được cài đặt trên một máy ổn định và hợp lí . máy tính yêu cầu có : SQL Server 2000 hoặc MSDE 2000 .Nếu sử dụng SQL Server, đảm bảo rằng SQL Server authentication được kích hoạt. Nếu không, hãy làm theo các hướng dẫn để cài đặt và chuẩn bị MSDE 2000 cho Alchemi. Hãy lưu ý một mật khẩu quản trị hệ thống (một) trong cả hai trường hợp. [Lưu ý: SQL Server / MSDE không nhất thiết cần phải được cài đặt trên cùng một máy như Manager.]  Cài đặt   Hình 8. Alchemi Cơ sở dữ liệu cài đặt Alchemi Manager có thể được cài đặt trong hai chế độ : *Như một ứng dụng bình thường trên máy tính để bàn Windows *Như là một cửa sổ dịch vụ. (Chỉ hỗ trợ trên Windows NT/2000/XP/2003) *Để cài đặt Manager như là một cửa sổ ứng dụng, sử dụng bộ cài đặt Manager Setup . Để cài đặt chế độ dịch vụ (service-mode) , sử dụng Manager Service Setup. Các bước cấu hình là như nhau cho cả hai chế độ. Trong trường hợp chế độ service-mode, cài đặt “Alchemi Manager Service” và cấu hình sẽ chạy tự động trên Windows khi khởi động. Sau khi cài đặt, cửa sổ Windows có thể được sử dụng để kiểm soát dịch vụ. Ngoài ra Alchemi ManagerServiceController có thể được sử dụng. Manager service controller là một giao diện đồ họa, mà là chính xác tương tự như quản lý các ứng dụng bình thường. Cài đặt Manager thông qua bộ cài đặt ( Manager installer). Sử dụng mật khẩu sa ghi nhận trước đó để cài đặt các cơ sở dữ liệu trong quá trình cài đặt.  Cấu hình & hoạt động  Quản lý có thể được chạy từ máy tính để bàn hoặc Start -> Programs -> Alchemi -> Manager -> Alchemi Manager. Các thiết lập cấu hình cơ sở dữ liệu được thiết lập dựa trên quá trình cài đặt tự động xuất hiện khi Manager đã bắt đầu. Click vào nút "Start" để bắt đầu quản lý.  Khi đóng cửa, quản lý được thu nhỏ tab hệ thống. Hình 9. Quản lý hoạt động. Dưới chế độ hoạt động dịch vụ, giao diện hiển thị trong Hình 9. được sử dụng start / stop Manager. Dịch vụ này sẽ tiếp tục hoạt động ngay cả sau khi thoát khỏi ứng dụng điều khiển dịch vụ. 4.3.3 Role-Based security Mỗi chương trình kết nối với Manager phải cung cấp một tên người dùng và mật khẩu hợp lệ. Ba tài khoản mặc định được tạo ra trong quá trình cài đặt: Executors (mật khẩu: executors), người dùng (mật khẩu: người sử dụng) và quản trị (password: admin) thuộc ' Executors', 'Người dùng' và 'quản trị viên' nhóm tương ứng.  Người dùng được quản lý thông qua tab 'Users' Console Alchemi (nằm trong SDK Alchemi). Quản trị viên chỉ có quyền truy cập để quản lý người dùng, do đó ban đầu đăng nhập với tài khoản quản trị mặc ​​định. Hình 10 Alchemi console Người dùng quản trị thông qua Console Alchemi (hiển thị các tài khoản mặc định). Bảng điều khiển cho phép bạn thêm người dùng, sửa đổi thành viên nhóm và thay đổi mật khẩu của mình. Nhóm người dùng (grp_id = 3) có nghĩa là cho người dùng thực hiện các ứng dụng lưới điện. Nhóm Executors (grp_id = 2) có nghĩa là cho Executor Alchemi. Theo mặc định, Executors cố gắng để kết nối với Manager sẽ sử dụng tài khoản executors. Nếu bạn không muốn Executors kết nối với tên khác, bạn có thể thay đổi mật khẩu cho tài khoản này. Bạn nên thay đổi mật khẩu quản trị mặc ​​định admin khi sử dụng 4.4.5. Executor Cài đặt :Executor Alchemi có thể được cài đặt trong hai chế độ *Như một ứng dụng bình thường máy tính để bàn Windows *Là một dịch vụ cửa sổ. (Chỉ hỗ trợ trên Windows NT/2000/XP/2003) Để cài đặt executor là một cửa sổ ứng dụng, sử dụng trình cài đặt Executor Setup. Đối với chế độ cài đặt sử dụng Executor Service Setup. Các bước cấu hình là như nhau cho cả hai chế độ. Trong trường hợp chế độ service-mode, "Alchemi Executor Service” cài đặt và cấu hình để chạy tự động trên Windows khởi động. Sau khi cài đặt, sử dụng Manager để kiểm soát dịch vụ. Ngoài ra các Alchemi Có thể được sử dụng chương trình ExecutorServiceController. Bộ điều khiển dịch vụ Executor là một giao diện đồ họa, trông rất giống với các ứng dụng Executor bình thường. Cài đặt Executor thông qua bộ cài đặt Executor installer và thực hiện theo các hướng dẫn trên màn hình.   Cấu hình & hoạt động :Executor có thể được chạy từ máy tính để bàn hoặc Start -> Programs -> Alchemi -> Executor -> Alchemi Executor. Executor được cấu hình từ bản thân ứng dụng Bạn cần phải cấu hình 2 khía cạnh của Executor:  *Các máy chủ và cổng Manager để kết nối. Dedicated/ non-dedicated Executor .các luồng thi hành không chuyên dụng trên nền tự nguyện (nó yêu cầu các luồng thi hành từ Manager ), khi Executor chuyên dụng thường thực hiện các luồng (nó thực hiện trực tiếp các luồng từ Manager ). Executor không chuyên dụng làm việc sau tường lửa . *  Click vào nút "Connect" để kết nối Executors Manager Hình 11. executors kết nối Manager. Nếu Executors được cấu hình cho thực hiện không chuyên dụng, bạn có thể bắt đầu thực hiện bằng cách nhấn vào nút "start Executors " trong tab " Manage Execution ". Hình 12 Thực hiện không chuyên dụng . Executors chỉ sử dụng chu kỳ CPU nhàn rỗi trên máy tính này và không ảnh hưởng đến việc sử dụng CPU của các chương trình đang chạy. Khi đóng cửa, Executors nằm trong khay hệ thống. Các tùy chọn khác cùng một nhịp thời gian Executors (tức là thời gian giữa ping Manager) có thể được cấu hình thông qua các tab tùy chọn. Hình 13. Các tùy chọn bổ sung Executor Dưới chế độ hoạt động dịch vụ, giao diện hiển thị trong Hình 13 được sử dụng để start / stop dịch vụ Executors. Dịch vụ này sẽ tiếp tục hoạt động ngay cả sau khi thoát khỏi ứng dụng điều khiển dịch vụ. 4.4.6. Software Development Kit SDK có thể được giải nén vào một vị trí thuận tiện. Nó chứa những điều sau đây: Alchemi điều khiển Console (Alchemi.Console.exe) là một quản lý lưới điện và công cụ giám sát. Nó nằm trong thư mục bin. Bảng 'Tóm lược' cho thấy hệ thống thống kê và đồ thị thời gian thực sẵn có và sử dụng điện. Các ứng dụng của tab cho phép bạn theo dõi các ứng dụng đang chạy. ' Executors "tab cung cấp thông tin về Executors. ‘Users ' tab cho phép bạn quản lý người dùng (xem 4.3.3 Role-Based Security.). Hình 14. Giao diện điều khiển "hệ thống" tab. Hình 15. 'Tab ứng dụng giao diện điều khiển'. *Alchemi.Core.dll Alchemi.Core.dll là một thư viện lớp học để tạo ra các ứng dụng lưới điện để chạy trên lưới Alchemi. Nó nằm trong thư mục bin. Nó phải được tham chiếu từ tất cả các ứng dụng mạng lưới của bạn. (Để biết thêm về phát triển các ứng dụng lưới điện, xin vui lòng xem phần 3 trình lưới điện. Hình 16. PiCalculator chạy trên một lưới điện. 4.Lưới lập trình với Alchemi Hướng dẫn này cung cấp một giới thiệu cơ bản để lập trình lưới điện với Alchemi. Quen thuộc với VS.NET và C # được giả định.  tôi sẽ viết một ứng dụng lưới điện đơn giản mà tạo ra các số nguyên tố. Điều này liên quan đến việc tạo ra một con số lớn ngẫu nhiên và sử dụng một mạng lưới để kiểm tra xem họ là những nguyên tố hay không.  Thực hiện theo các bước sau :  Xây dựng một mạng lưới tối thiểu (1 Manager và Executors 1) Như đã thảo luận, một lưới Alchemi có thể được xem như là một máy ảo với nhiều bộ xử lý. Mỗi đơn vị của công việc được thực hiện bởi một Executors cụ thể. Các đơn vị này làm việc được gọi là thread lưới điện . Code được thực hiện trên lưới điện được định nghĩa trong lớp void. Start () Đầu vào [Serializable] class CustomGridThread : GThread { public override void Start() { } } Thuật toán đơn giản đếm số lượng các số mà nó chia hết tăng từ 1 đến nó. Nếu số lượng các số chia hết là 2 (1 và bản thân số đó ), sau đó theo định nghĩa, số là số nguyên tố. using System; using Alchemi.Core; namespace Tutorial { [Serializable] class PrimeNumberChecker : GThread { public readonly int Candidate; public int Factors = 0; public PrimeNumberChecker(int candidate) { Candidate = candidate; } public override void Start() { // count the number of factors of the number from 1 to the number itself for (int d=1; d<=Candidate; d++) { if (Candidate%d == 0) Factors++; } } } Bây giờ chúng ta viết code song song Hàm main () ; class PrimeNumberGenerator { public static GApplication App = new GApplication(); [STAThread] static void Main(string[] args) { // create grid threads to check if some randomly generated large // numbers are prime Random rnd = new Random(); for (int i=0; i<100; i++) { App.Threads.Add(new PrimeNumberChecker(rnd.Next(1000000))); } // initialise application Init(); // start the application App.Start(); Console.ReadLine(); // stop the application App.Stop(); } GApplication là nơi để thực thi các thread lưới và được sử dụng để tương tác với lưới điện Các ứng dụng được khởi tạo bằng cách gọi phương thức Init () và execution của tất cả các thread được thêm vào nó được bắt đầu bằng cách gọi phương thức Start() private static void Init() { // specify connection properties App.Connection = new GConnection("localhost", 9000, "user", "user"); // grid thread needs to App.Manifest.Add(new ModuleDependency(typeof(PrimeNumberChecker).Module)); // subscribe to ThreadFinish event App.ThreadFinish += new GThreadFinish(App_ThreadFinish); } Trước khi một ứng dụng có thể được bắt đầu (và thread thực hiện trên một lưới điện), một số thuộc tính kết nối lưới điện phải được quy định (qua lớp GConnection) và thiết lập (thông qua thuộc tính kết nối của ứng dụng). Đó là:  -Quản lý máy chủ, Quản lý mảng ,Tên đăng nhập ,Mật khẩu -Manager nơi ứng dụng được thực hiện ThreadFinish GApplication để thông báo khi thread đã hoàn thành thực hiện. private static void App_ThreadFinish(GThread thread) { // cast the supplied GThread back to PrimeNumberChecker PrimeNumberChecker pnc = (PrimeNumberChecker) thread; // check whether the candidate is prime or not bool prime = false; if (pnc.Factors == 2) prime = true; // display results Console.WriteLine( "{0} is prime? {1} ({2} factors)", pnc.Candidate, prime, pnc.Factors); } } } Hình ảnh kết quả chạy chương trình Hình 17 chạy chương trình số nguyên tố ThreadFailed được phát sinh khi một sợi đã thất bại. và ApplicationFinish bị sa thải khi tất cả các thread trong một ứng dụng đã hoàn tất thực hiện. Hủy bỏ 1 thread Một sợi có thể được hủy bỏ băng cách gọi phương thức void Abort() . examples: myApp.Threads [0] Abort ();  Hủy bỏ 1 ứng dụng  Một ứng dụng có thể được hủy bỏ gọi phương thức void Stop() .Điều này sẽ hủy bỏ tất cả các thread trong ứng dụng. examples: myApp.Stop (); 5. Kết luận   Alchemi là một cách dễ dàng để sử dụng khung lưới tính toán thuần nhằm mục đích hạ thấp các rào cản nhập cảnh vào thế giới của tính toán phân tán / Grid, bằng cách làm cho nó dễ dàng hơn để thiết lập, quản lý và duy trì lưới trên một mạng nội bộ hoặc diện rộng. Khuôn khổ là trong phát triển liên tục, và như một dự án mã nguồn mở theo GPL, chúng tôi khuyến khích sự tham gia của cộng đồng và phản hồi trong tất cả các khía cạnh của sự phát triển của Alchemi. 5.3 kết quả thực hiện chạy trên máy …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. Taì liệu tham khảo [1] Akshay Luther, Rajkumar Buyya, Rajiv Ranjan & Srikumar Venugopal, Alchemi: A .NET-based Grid Computing Framework and its Integration into Global Grids, Technical Report, GRIDS-TR-2003-8, Grid Computing and Distributed Systems Laboratory, University of Melbourne, Australia, December 2003. [2] Akshay Luther, Rajkumar Buyya, Rajiv Ranjan, and Srikumar Venugopal, Peer-to-Peer Grid Computing and a .NET-based Alchemi Framework, High Performance Computing: Paradigm and Infrastructure, Laurence Yang and Minyi Guo (editors), ISBN: 0-471-65471-X, Wiley Press, New Jersey, USA, June 2005. [3] Agus Setiawan, David Adiutama, Julius Liman, Akshay Luther and Rajkumar Buyya, GridCrypt: High Performance Symmetric Key using Enterprise Grids, Proceedings of the 5th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT 2004, December 8-10, 2004, Singapore), Springer Verlag Publications (LNCS Series), Berlin, Germany. [4] Krishna Nadiminti, Yi-Feng Chiu, Nick Teoh, Akshay Luther, Srikumar Venugopal, and Rajkumar Buyya, ExcelGrid: A .NET Plug-in for Outsourcing Excel Spreadsheet Workload to Enterprise and Global Grids, Proceedings of the 12th International Conference on Advanced Computing and Communication (ADCOM 2004, December 15-18, 2004), Ahmedabad, India Nhận xét của giáo viên : …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………............................................................................................................................................................................................................................................................................................................................................................................................……………………………………………………………………………………….………………………………………………………………………………….………………………………………………………………………………….…………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………………………….………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………….…………………………………………………………………………………..…………………………………………………………………………………………………………………………………………………………………….…………………………………………………………………………………………………………………………………………………………………

Các file đính kèm theo tài liệu này:

  • docxdo_an_1_ho_si_son__5392.docx