Điều này, cùng với thực tế là máy desktop máy tính cá nhân trong môi trường doanh nghiệp và ở nhà không được tận dụng nhiều - thường chỉ một phần mười của sức mạnh bộ xử lý được sử dụng
Trang 1MỤC LỤC
MỤC LỤC 1
LỜI MỞ ĐẦU 3
PHẦN 1: TỔNG QUAN TÍNH TOÁN LƯỚI 4
1 Giới thiệu tổng quan 4
2 Lịch sử hình thành 5
PHẦN 2: KIẾN TRÚC FRAMEWORK ALCHEMI 7
1 Desktop Grid Middleware 7
2 Biểu điễn hệ thống lưới desktop 8
3 Alchemi Desktop Grid Framework 11
4 Thực thi và thiết kế Alchemi 19
PHẦN 3: CÀI ĐẶT, CẤU HÌNH VÀ VẬN HÀNH ALCHEMI 24
1 Yêu cầu chung 24
2 Manager 24
3 Role-Based Security 26
4 Cross Platform Manager 27
5 Executor 28
6 Software Development Kit 31
7 Kiểm tra cài đặt lưới 33
Trang 2PHẦN 4: LẬP TRÌNH LƯỚI 35
1 Giới thiệu về phần mềm lưới 35
2 Hướng dẫn lập trình lưới 36
KẾT LUẬN 42
TÀI LIỆU THAM KHẢO 43
Trang 3LỜI MỞ ĐẦU
Tính toán lưới là sự kết hợp các tài nguyên máy tính từ nhiều lĩnh vực để đạt được cùng một mục đích Đặc điểm để phân biệt tính toán lưới với các hệ thống tính toán hiệu năng cao khác như cluster computing là nó có khuynh hướng liên kết không chặt chẽ, hỗn tạp, và phân tán về mặt địa lý nhiều hơn Mặc
dù tính toán lưới có thể được dành riêng cho một ứng dụng chuyên biệt, nhưng
nó thường được sử dụng cho nhiều mục đích khác nhau Tính toán lưới thường được xây dựng bởi sự kết hợp nhiều thư viện phần mềm có mục đích chung được biết đến như là ứng dụng trung gian
Trong khuôn khổ bài tiểu luận môn học “Tính toán lưới”, em xin trình bày vấn đề “Tìm hiểu tính toán lưới Peer-to-Peer và Framework Alchemi dựa trên NET”.
Tuy đã có nhiều cố gắng nhưng do hạn chế về kinh nghiệm, kiến thức, thời gian và nguồn tài liệu tham khảo nên các vấn đề tìm hiểu trong bài thu hoạch chắc chắn còn nhiều thiếu sót Kính mong Thầy xem xét và góp ý thêm
Em xin chân thành cám ơn Thầy! Trương Lê Minh Ngọc
Trang 4PHẦN 1: TỔNG QUAN TÍNH TOÁN LƯỚI
1 Giới thiệu tổng quan
Ý tưởng của siêu máy tính là rất hứa hẹn vì nó cho phép sử dụng mạng lưới nhiều máy tính độc lập như thể là một máy song song lớn, hoặc siêu máy tính ảo với một phần nhỏ chi phí so với các siêu máy tính truyền thống Trong khi các máy ảo truyền thống (ví dụ như cluster) đã được thiết kế cho các mạng cục bộ, sự tăng trưởng theo cấp số nhân trong kết nối Internet cho phép khái niệm này được áp dụng trên quy mô lớn hơn nhiều Điều này, cùng với thực tế là máy desktop (máy tính cá nhân) trong môi trường doanh nghiệp và ở nhà không được tận dụng nhiều - thường chỉ một phần mười của sức mạnh bộ xử lý được sử dụng - đã làm tăng lợi ích trong khai thác các chu kỳ sử dụng CPU của máy desktop kết nối qua internet Mô hình mới này đã được mệnh danh là tính toán peer-to-peer mà gần đây được gọi là tính toán lưới máy tính doanh nghiệp
Mặc dù khái niệm tính toán lưới desktop là đơn giản, nhưng việc thực hiện lưới peer-to-peer đặt ra một số thách thức Một số vấn đề chính bao gồm: không đồng nhất, quản lý tài nguyên, quản lý lỗi, độ tin cậy, thành phần ứng dụng, lập lịch và bảo mật Hơn nữa, đối với quy mô lớn, cơ sở hạ tầng tính toán lưới desktop cũng phải tận dụng sức mạnh của máy tính Windows kể từ khi phần lớn các máy desktop chạy các biến thể của hệ điều hành Windows
Tuy nhiên, vẫn có sự thiếu xót trong phần mềm tính toán lưới dựa trên kiến trúc hướng dịch vụ trong không gian này Để khắc phục hạn chế này, một Framework đã được phát triển dựa trên tính toán lưới desktop Windows là Alchemi thực hiện trên nền tảng Microsoft NET Microsoft NET Framework là nền tảng phát triển cho Windows và cung cấp một số tính năng mà có thể được thừa hưởng để cho phép môi trường tính toán lưới trên các máy tính Windows
Alchemi được hình thành với mục đích xây dựng lưới và phát triển phần mềm lưới càng nhiều càng tốt mà không bị mất tính linh hoạt, độ tin cậy và khả năng mở rộng Các tính năng chính được hỗ trợ bởi Alchemi là:
Trang 5• Internet-based clustering của máy desktop Windows;
• Thực hiện dedicated hoặc non-dedicated bởi các node riêng biệt;
• Mô hình lập trình ứng dụng lưới hướng đối
• Mô hình grid job file-based cho ứng dụng lưới;
• Giao diện dịch vụ web hỗ trợ mô hình làm việc cho khả năng tương tác với các tùy chọn grid middleware
2 Lịch sử hình thành
Đầu những năm 1970 khi máy tính lần đầu tiên được nối mạng, ý tưởng khai thác chu kỳ CPU không sử dụng được hình thành Một vài thí nghiệm ban đầu với tính toán phân tán, bao gồm một cặp chương trình Creeper và Reaper thực hiện trên mạng ARPAnet Vào năm 1973, trung tâm nghiên cứu Xerox Palo Alto (PARC) thiết lập mạng Ethernet đầu tiên và chính thức nỗ lực tính toán phân tán Các nhà khoa học tại PARC đã phát triển một chương trình "worm" thường xuyên kiểm tra khoảng 100 máy tính kết nối Ethernet Worm lang thang khắp mạng PARC, sao chép chính nó trong bộ nhớ mỗi máy tính Mỗi worm sử dụng các tài nguyên nhàn rỗi để thực hiện một tính toán và có khả năng sinh sản
và truyền nhân bản đến các node khác của mạng
Kể từ năm 1990, với sự trưởng thành và xuất hiện khắp nơi của Internet
và công nghệ web cùng với sự sẵn có của các máy tính mạnh mẽ và hệ thống mạng Sự sẵn có của máy tính mạnh mẽ và máy trạm và mạng tốc độ cao (Gigabit Ethernet) đã dẫn đến sự xuất hiện của clusters phục vụ nhu cầu tính toán hiệu năng cao (HPC) Sự xuất hiện khắp nơi của Internet và công nghệ web cùng với sự sẵn có của nhiều clusters chi phí thấp và hiệu suất cao trong nhiều tổ chức
đã thúc đẩy việc khám phá các tài nguyên phân tán để giải quyết vấn đề quy mô lớn Điều này đã dẫn đến sự xuất hiện của lưới tính toán và các mạng P2P để chia
sẻ tài nguyên phân tán Cộng đồng lưới thường tập trung vào máy phân tán end như là clusters trong khi cộng đồng P2P đang xem xét việc chia sẻ hệ thống low-end như máy tính kết nối Internet để chia sẻ sức mạnh tính toán (ví dụ: SETI@Home) và nội dung (ví dụ: trao đổi file nhạc qua Napster và mạng
Trang 6high-giới, rõ ràng là lợi ích trong việc nghiên cứu, phát triển và triển khai lưới và công nghệ P2P, công cụ, và các ứng dụng được phát triển nhanh chóng
Trang 7PHẦN 2: KIẾN TRÚC FRAMEWORK ALCHEMI
1 Desktop Grid Middleware
Hình 1 cho thấy kiến trúc của một hệ thống tính toán lưới desktop cơ bản Thông thường, người dùng sử dụng API và các công cụ tương tác với grid middleware đặc biệt để phát triển các ứng dụng lưới Khi đưa ứng dụng lưới vào
để xử lý, các đơn vị công việc được gửi đến thành phần điều khiển trung tâm có điều phối và quản lý việc thực hiện của các đơn vị công việc trên các node worker
Security Barrier - Kết nối tài nguyên phía sau tường lửa
Đầu tiên, các node woker và các node user phải có khả năng kết nối với
bộ điều khiển trung tâm qua Internet hoặc mạng LAN và sự hiện diện của tường lửa hoặc các máy chủ NAT không làm ảnh hưởng đến việc triển khai lưới desktop
Unobtrusiveness - Không ảnh hưởng đến các ứng dụng người dùng đang
chạy
Trang 8Việc thực hiện các ứng dụng lưới bởi các node worker không làm ảnh hưởng đến các chương trình người dùng đang chạy.
Programmability - Tính toán chuyên sâu độc lập với đơn vị công việc
Khi hệ thống lưới desktop trải rộng trên môi trường Internet có độ trễ cao, các ứng dụng với tỷ lệ tính toán thời gian truyền thông cao phù hợp cho việc triển khai
Reliability - Quản lý lỗi
Bản chất không tin cậy của các kết nối Internet cũng có nghĩa là những hệ thống như vậy phải có khả năng chịu đựng sự gián đoạn kết nối hoặc lỗi và phục hồi từ chúng một cách nhanh chóng Ngoài ra, việc mất dữ liệu phải được giảm thiểu trong trường hợp hệ thống treo hoặc lỗi
Scalability – Khả năng đáp ứng lượng người sử dụng lớn
Hệ thống lưới desktop phải được thiết kế để hỗ trợ số lượng lớn người dùng anonymous từ hàng trăm đến hàng triệu Ngoài ra, hệ thống phải hỗ trợ số lượng người dùng đồng thời và các ứng dụng của họ
Security - Bảo vệ cả hai người đóng góp và người tiêu dùng
Cuối cùng, Internet là một môi trường không an toàn và các biện pháp an ninh nghiêm ngặt là bắt buộc Cụ thể, người sử dụng và các chương trình của họ chỉ có thể thực hiện các hoạt động có thẩm quyền trên tài nguyên lưới Ngoài ra, người sử dụng hoặc người tiêu dùng phải được bảo vệ chống lại các cuộc tấn công độc hại hoặc các node worker
2 Biểu điễn hệ thống lưới desktop
Ngoài việc thực hiện dựa trên kiến trúc hướng dịch vụ sử dụng công nghệ state-of-the-art, Alchemi có một số tính năng phân biệt khi so sánh với các hệ thống liên quan Bảng 2 cho thấy sự so sánh giữa Alchemi và một số hệ thống liên quan như Condor, SETI@home, Entropia, GridMP, và XtermWeb
Alchemi là một framework dựa trên NET cung cấp runtime machinery và môi trường lập trình cần thiết để xây dựng lưới desktop và phát triển các ứng dụng lưới Nó cho phép thành phần ứng dụng linh hoạt bằng cách hỗ trợ mô hình lập trình ứng dụng hướng đối tượng bên cạnh mô hình công việc dựa trên tập tin
Hỗ trợ đa nền tảng được cung cấp thông qua một giao diện dịch vụ web và một
Trang 9mô hình thực hiện linh hoạt hỗ trợ thực hiện dedicated và non-dedicated bởi các node lưới.
Hệ thống Condor được phát triển bởi trường Đại học Wisconsin ở Madison Nó có thể được sử dụng để quản lý một nhóm node tính toán dedicated hoặc không non-dedicated Ngoài ra, cơ chế độc đáo cho phép Condor khai thác hiệu quả sức mạnh của CPU lãng phí từ máy trạm desktop không dùng đến Condor cung cấp một cơ chế hàng đợi công việc, chính sách lập lịch, quy trình làm việc theo lịch, lược đồ ưu tiên, giám sát tài nguyên và quản lý tài nguyên Người dùng gửi các công việc nối tiếp hoặc song song đến Condor, Condor đặt chúng vào hàng đợi, lựa chọn khi nào và nơi nào để thực hiện các công việc dựa trên chính sách, cẩn thận theo dõi tiến độ của chúng, và cuối cùng là thông báo cho người sử dụng sau khi hoàn thành Nó có thể xử lý nguồn tài nguyên Windows và UNIX trong pool tài nguyên của nó Condor gần đây đã được mở rộng để hỗ trợ tài nguyên lưới trong một Condor pool
Dự án tìm kiếm nền văn minh (SETI) ngoài trái đất gọi là SETI@Home,
có trụ sở ở Đại học California tại Berkeley Nó phát triển hệ thống lưới desktop khai thác hàng trăm và hàng ngàn máy tính qua mạng Internet để xử lý số lượng
Trang 10lớn các dữ liệu thiên văn học gửi hàng ngày bởi kính thiên văn Arecibo ở Puerto Rico Phần mềm worker của nó hoạt động như một trình bảo vệ màn hình trên máy tính Nó được thiết kế để làm việc trên các máy tính không đồng nhất chạy Windows, Mac, và các biến thể của hệ điều hành UNIX Không giống như các hệ thống máy tính desktop khác, các module worker được thiết kế như phần mềm ứng dụng vì nó chỉ hỗ trợ xử lý dữ liệu ứng dụng thiên văn học.
Entropia tạo điều kiện cho hệ thống lưới desktop Windows bằng cách tập hợp các nguồn tài nguyên desktop thô thành một nguồn tài nguyên hợp lý duy nhất Kiến trúc cốt lõi của nó là tập trung trong đó bộ quản lý công việc trung tâm điều khiển nhiều desktop client khác nhau Node manager cung cấp một giao diện tập trung để quản lý tất cả các khách hàng trên lưới Entropia, có thể truy cập
từ bất cứ nơi nào trên mạng doanh nghiệp
XtermWeb là một hệ thống P2P được phát triển tại Đại học Paris-Sud của Pháp Nó thực hiện ba thực thể khác biệt: coordinator, workers và clients để tạo
ra mạng XtermWeb Clients là software instance cho phép user gửi công việc đến mạng XtermWeb Chúng gửi công việc đến coordinator, cung cấp tập tin nhị phân và tham số tùy chọn và cho phép end user lấy kết quả Cuối cùng, woker là một phần mềm lan truyền giữa các volunteer hosts tính toán công việc
Grid MP (MP) được phát triển bởi United Devices thông qua việc tuyển dụng các nhà phát triển chính của SETI@Home và hệ thống lưới doanh nghiệp Như các hệ thống khác, nó hỗ trợ khai thác và tập hợp các nguồn tài nguyên tính toán có sẵn trên mạng công ty của họ Về cơ bản nó có một kiến trúc tập trung, nơi mà dịch vụ Grid MP hoạt động như người quản lý chấp nhận công việc từ người sử dụng, lập lịch chúng trên các nguồn tài nguyên đã triển khai Grid MP agents Grid MP agents có thể được triển khai trên clusters, máy trạm hoặc máy tính desktop Grid MP agents nhận công việc và thực hiện chúng trên tài nguyên, quảng cáo khả năng tài nguyên của chúng trên dịch vụ Grid MP và trả về kết quả cho dịch vụ Grid MP
Trang 113 Alchemi Desktop Grid Framework
Kiến trúc phân lớp của Alchemi cho môi trường tính toán lưới desktop được thể hiện trong hình 2 Alchemi hoạt động theo mô hình tính toán song song master-worker Trong Alchemi, đơn vị thực hiện song song được gọi là “grid thread” và chứa các chỉ thị được thực hiện trên node lưới, trong khi thành phần trung tâm được gọi là “Manager”
Một ứng dụng lưới gồm nhiều grid thread liên quan Các ứng dụng lưới và grid thread giao tiếp với các nhà phát triển ứng dụng như class/object NET thông qua Alchemi NET API Khi một ứng dụng viết bằng API này được thực thi, grid thread object gửi đến Alchemi Manager để thực hiện bởi lưới Ngoài ra, file-based job có thể được tạo ra bằng cách sử dụng biểu diễn XML Job có thể được gửi qua Alchemi Console Interface hoặc giao diện dịch vụ web Cross-Platform
Trang 12Manager để chuyển chúng thành các grid thread trước khi gửi đến Manager để thực hiện bởi lưới.
Alchemi hỗ trợ chức năng và dữ liệu song song Cả hai được hỗ trợ bởi một trong hai mô hình thành phần ứng dụng song song - mô hình grid thread và
mô hình grid job
3.1.1 Mô hình Grid Thread
Giảm thiểu các rào cản để viết ứng dụng cho môi trường lưới là một trong những mục tiêu quan trọng của Alchemi Mục tiêu này được phục vụ bởi môi trường lập trình hướng đối tượng thông qua Alchemi NET API có thể được sử dụng để viết các ứng dụng lưới trong bất kỳ ngôn ngữ hỗ trợ NET
Các đơn vị cơ bản của thực hiện song song độc lập là grid thread với nhiều grid thread tạo nên ứng dụng lưới Hai class trung tâm trong Alchemi NET API Là GThread và GApplication đại diện cho grid thread và ứng dụng lưới Có hai phần cơ bản cho một ứng dụng lưới Alchemi Mỗi phần tập trung vào một trong những class sau:
• "Remote code": code được thực hiện từ xa trên lưới (grid thread và các phụ thuộc của nó)
• "Local code": code được thực hiện cục bộ (code chịu trách nhiệm tạo và thực hiện các grid thread)
Một grid thread cụ thể được thực hiện bằng cách viết một lớp dẫn xuất từ GThread, overriding phương thức void Start (), và đánh dấu class với thuộc tính Serializable Code thực hiện từ xa được xác định trong việc thực hiện override phương thức void Start ()
Ứng dụng (local code) tự tạo ra các instance của custom grid thread, thực thi chúng trên lưới và sử dụng kết quả của thread Nó sử dụng một instance của class GApplication biểu diễn một ứng dụng lưới Các module (tập tin EXE hoặc DLL) chứa thực thi của lớp có nguồn gốc từ lớp GThread và bất kỳ loại phụ thuộc khác không là một phần của NET Framework phải được đưa vào Manifest của Gapplication instance Instance của lớp Gthread-derived được thực
Trang 13hiện không đồng bộ trên lưới bằng cách thêm chúng vào ứng dụng lưới Sau khi hoàn thành mỗi thread, một sự kiện “thread finish” được kích hoạt Các sự kiện khác như “application finish” và “thread failed” cũng có thể được đăng ký Như vậy, trừu tượng hóa chương trình lưới theo cách này cho phép các nhà phát triển ứng dụng tập trung vào các ứng dụng riêng của mình mà không lo lắng về
"plumbing"
3.1.2 Mô hình Grid Job
Việc triển khai lưới truyền thống đã cung cấp một mức độ trừu tượng cao của "máy ảo", nơi mà các đơn vị nhỏ nhất của thực thi song song là một process Trong mô hình này, một đơn vị công việc thường được mô tả bằng cách xác định một lệnh, tập tin đầu vào và tập tin đầu ra Trong Alchemi, một đơn vị công việc được gọi là "job" với nhiều job tạo thành một “task”
Kiến trúc Alchemi hỗ trợ những tính năng sau:
Trang 14Trước khi gửi task đến Manager, việc tham chiếu đến các tập tin
“embedded” được giải quyết và các tập tin được nhúng vào file XML task dưới dạng dữ liệu văn bản mã hóa Base64 Khi công việc hoàn thành được lấy từ Manager, nội dung mã hóa Base64 của tập tin “embedded” được giải mã và ghi vào đĩa
Cần lưu ý rằng task và job được biểu diễn như là các grid application và grid thread Vì vậy, khi nói về “grid application” và “grid thread” tức là nói về
“grid task” và “grid job”
Có bốn loại node (hoặc host) tham gia xây dựng desktop grid và thực thi ứng dụng Alchemi desktop grid được xây dựng bằng cách triển khai một mode Manager và triển khai một hoặc nhiều node Executor được cấu hình để kết nối với Manager Một hoặc nhiều User có thể thực thi các ứng dụng của họ trên cluster bằng cách kết nối với Manager Như một tùy chọn, Cross Platform Manager cung cấp giao diện dịch vụ web để tùy chỉnh grid middleware Hoạt động của Manager, Executor, User và Cross Platform Manager node được mô tả dưới đây
3.2.1 Job Manager
Manager cung cấp dịch vụ liên quan đến quản lý thực thi của grid application và thread Executor đăng ký với Manager và theo dõi tình trạng của chúng Thread nhận từ User được đặt vào pool và dự kiến sẽ được thực thi trên Executor khác Độ ưu tiên cho mỗi thread có thể được xác định một cách rõ ràng khi nó được tạo ra hoặc gửi đi Thread được lên kế hoạch dựa trên độ ưu tiên và theo thứ tự First Come First Served (FCFS) Executor trả lại thread hoàn thành cho Manager được thu thập bởi user tương ứng
Manager sử dụng mô hình bảo mật role-based để xác thực và ủy quyền các hoạt động an toàn Một danh sách quyền đại diện cho các hoạt động cần phải duy trì được bảo vệ trong Manager Một danh sách các nhóm (role) cũng được duy trì, mỗi nhóm chứa một tập các điều khoản Đối với bất kỳ hoạt động nào
Trang 15cần được thẩm định, user hoặc program phải cung cấp thông tin dưới dạng user name và password và Manager chỉ cho phép hoạt động nếu user thuộc về nhóm chứa nhiều sự cho phép đặc biệt.
Failure management đóng một vai trò quan trọng trong tính hiệu quả của grid desktop Ngoài ra, tất cả dữ liệu ngay lập tức lưu vào đĩa để trong trường hợp có sự cố, Manager có thể được khởi động lại vào trạng thái trước sự cố
3.2.2 Executor
Executor chấp nhận thread từ Manager và thực thi chúng Executor có thể được cấu hình riêng biệt, nghĩa là tài nguyên được quản lý tập trung bởi Manager Đối với thực thi non-dedicated, có thông tin một chiều giữa Executor
và Manager Trong trường hợp này, tài nguyên mà Executor đang sử dụng được quản lý trên cơ sở tự nguyện vì nó yêu cầu thread thực hiện từ Manager Trong trường hợp này, Manager chỉ thị Executor thực thi thread Như vậy, mô hình thực thi Alchemi cung cấp 2 lợi ích sau:
• Quản lý tài nguyên linh hoạt
• Triển khai linh hoạt trên mạng
Do đó, thực thi dedicated phù hợp hơn khi Manager và Executor trên cùng mạng nội bộ trong khi thực thi non-dedicated thích hợp hơn khi Manager và Executor sẽ được kết nối qua Internet
Trang 16Thread thực hiện trong môi trường sandbox được xác định bởi user Tính năng CAS (Code Access Security) của NET được sử dụng để thực thi tất cả các thread với tập quyền hạn AlchemiGridThread có thể được chỉ định đến một mức
độ fine-grained bởi user như là một phần của NET Local Security Policy
Tất cả grid thread chạy trong background có mức ưu tiên thấp nhất Vì vậy, chương trình người dùng không bị ảnh hưởng vì chúng được ưu tiên truy cập CPU cao hơn grid thread
3.2.3 Users
Grid application được thực thi trên User node API trừu tượng hóa việc thực thi của lưới với người sử dụng và chịu trách nhiệm thực hiện một loạt các dịch vụ thay cho user như gửi ứng dụng và thread để thực thi, thông báo cho user các thread đã hoàn thành và cung cấp kết quả và thông báo cho user thread lỗi cùng với chi tiết lỗi
3.2.4 Cross-Platform Manager
Cross-Platform Manager là một giao diện dịch vụ web cho thấy một phần chức năng của Manager để cho phép Alchemi quản lý việc thực thi grid job (ngược lại với grid application dùng mô hình Alchemi grid thread) Job gửi đến Cross-Platform Manager được đổi sang hình thức được chấp nhận bởi Manager, sau đó được lập lịch và thực hiện như bình thường Ngoài việc hỗ trợ ứng dụng grid-enabling, Cross-Platform Manager cho phép tùy chỉnh grid middleware để tương thích và tận dụng Alchemi trên bất kỳ nền tảng hỗ trợ dịch vụ web
Security đóng vai trò quan trọng trong môi trường không an toàn như Internet Hai khía cạnh của security định nghĩa bởi Alchemi là: (a) cho phép user thực hiện các hoạt động uỷ quyền cho dù chúng là hệ thống liên quan hoặc các hoạt động liên quan đến tài nguyên và (b) cho phép user ủy quyền hoặc không được ủy quyền phân phối tài nguyên
Trang 17Vấn đề cho phép user chỉ thực hiện thao tác mà họ được ủy quyền được giải quyết bằng cách sử dụng mô hình ủy quyền role-based Tất cả các hoạt động
an ninh nhạy cảm trên Manager được bảo vệ theo cách này Manager có thể được cấu hình để hỗ trợ Executor anonymous hoặc non-anonymous Hình 5 cho thấy hoạt động của các thành phần Alchemi khác nhau để thực hiện bảo mật như sau:
0: Người quản trị Alchemi cấu hình user, group và quyền hạn dữ liệu ngoài việc cho phép Executor anonymous/non-anonymous
1: User hoặc program kết nối với Manager, cung cấp thông tin an ninh và yêu cầu một hành động cụ thể
2, 3, 4: Manager xác thực user và ủy quyền hoạt động Quá trình này được
bỏ qua nếu Executor anonymous được cho phép
Thông tin về permission, group và user được duy trì trong Alchemi database trên bảng prm, grp và usr Hình 6 cho thấy mối quan hệ giữa các bảng này
Mỗi hành động trên Manager có liên quan đến một permission đặc biệt Các permission được định nghĩa như sau:
• ExecuteThread (các hoạt động liên quan đến thực thi thread; ví dụ: nhận thread để thực thi và trả kết quả)
• ManageOwnApp (các hoạt động liên quan đến quyền sở hữu của một ứng dụng cụ thể; ví dụ: tạo ứng dụng, nhận về thread hoàn thành)
Trang 18• ManageAllApps (các hoạt động liên quan đến quyền sở hữu của tất cả các ứng dụng trong hệ thống; ví dụ: lấy danh sách tất cả các ứng dụng cùng các thống kê)
• ManageUsers (hoạt động liên quan đến quản lý user; ví dụ: thêm user, thay đổi password, thay đổi thành viên nhóm)
User thuộc về một nhóm riêng biệt, mỗi nhóm chứa một tập các permission Có các nhóm sau:
Trang 194 Thực thi và thiết kế Alchemi
Hình 8 và Hình 9 cung cấp tổng quan về việc thực thi bằng sơ đồ triển khai và sơ đồ lớp (chỉ hiển thị các lớp chính mà không có thuộc tính hoặc phương thức)
.NET Framework cung cấp hai cơ chế để thực thi các application domain - dịch vụ Remoting và web (application domain là đơn vị độc lập với ứng dụng NET và có thể cư trú trên máy chủ mạng khác nhau)
.NET Remoting cho phép một đối tượng NET được "remoted" và gửi chức năng của nó qua application domain Remoting được sử dụng để giao tiếp
Trang 20giữa bốn thành phần lưới phân tán Alchemi vì nó cho phép tương tác xuyên suốt
ở mức độ thấp giữa các đối tượng NET với chi phí thấp (đối tượng từ xa được cấu hình sử dụng mã nhị phân để nhắn tin)
Các dịch vụ web được coi là đơn giản nhất cho mục đích này Tuy nhiên, các dịch vụ web được sử dụng cho giao diện Cross-Platform Manager vì khả năng tương tác cross-platform là yêu cầu cơ bản trong lĩnh vực này
Các đối tượng từ xa sử dụng NET Remoting trong bốn thành phần phân tán của Alchemi: Manager, Executor, Owner và Cross-Platform Manager là thể hiện của GManager, GExecutor, GApplication và CrossPlatformManager tương ứng
Cần lưu ý rằng các lớp được đặt tên liên quan đến vai trò của chúng trong ứng dụng lưới Do đó đề cập đến node “Owner” tương tự node “User”, vì node là nơi ứng dụng lưới được gửi đến
Tiền tố “I” được sử dụng trong tên kiểu để biểu thị một giao diện, trong khi “G” được dùng để chỉ “grid node” class GManager, GExecutor, GApplication xuất phát từ lớp GNode hiện thực chức năng chung cho truy cập đối tượng từ xa và kết nối Manager từ xa thông qua giao diện IManager
Trang 21Manager thực hiện khởi tạo một thể hiện của lớp GManager luôn được cập từ xa và xuất ra giao diện IManager Executor thực hiện tạo ra một thể hiện của lớp GExecutor Để thực hiện non-dedicated, có thông tin một chiều giữa Executor và Manager GExecutor được cập từ xa và xuất ra giao diện IExecutor
để Manager có thể giao tiếp với nó trực tiếp Việc cài đặt Executor cung cấp tùy chọn để cài đặt trình bảo vệ màn hình mà khởi tạo ra thực hiện non-dedicated khi kích hoạt bởi hệ điều hành
Đối tượng GApplication trong Alchemi API giao tiếp với Manager theo cách tương tự như GExecutor Trong khi giao tiếp hai chiều hiện không được sử dụng trong hiện thực, kiến trúc phục vụ cho vấn đề này bằng giao diện IOwner
Dịch vụ web Cross-Platform Manager là một wrapper xung quanh GManager và sử dụng các ứng dụng và thread nội bộ để biểu diễn task và job (lớp GJob xuất phát từ GThread) thông qua giao diện ICrossPlatformManager