Tải bản đầy đủ (.doc) (43 trang)

Tìm hiểu tính toán lưới Peer-to-Peer và Framework Alchemi dựa trên .NET

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1005.34 KB, 43 trang )

Tiểu luận: Tính toán lưới
MỤ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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 1
Tiểu luận: Tính toán lưới
PHẦ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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 2
Tiểu luận: Tính toán lưới
LỜ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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 3
Tiểu luận: Tính toán lưới
PHẦ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à:
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 4
Tiểu luận: Tính toán lưới
• 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 high-
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
Gnuetella). Do đó nhiều dự án và diễn đàn bắt đầu vào năm 2000 trên khắp thế
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 5
Tiểu luận: Tính toán lưới
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 .
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 6
Tiểu luận: Tính toán lưới
PHẦ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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 7
Tiểu luận: Tính toán lưới
Việ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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 8
Tiểu luận: Tính toán lưới
mô 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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 9
Tiểu luận: Tính toán lưới
lớ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.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 10
Tiểu luận: Tính toán lưới
3 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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 11
Tiểu luận: Tính toán lưới
Manager để 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.
3.1 Mô hình ứng dụng
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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 12
Tiểu luận: Tính toán lưới
hiệ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:
• Các ứng dụng hiện có sẵn sàng sử dụng lưới
• Khả năng tương tác với lưới trung gian có thể tận dụng Alchemi thông
qua dịch vụ web Cross Platform Manager
Task và job được biểu diễn thành các tập tin XML phù hợp với lược đồ
task và job của Alchemi. Hình 3 cho thấy một task gồm hai job để thực hiện
chương trình Reverse.exe với hai tập tin input.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 13
Tiểu luận: Tính toán lưới
Trướ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”.
3.2 Các thành phần phân tán
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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 14
Tiểu luận: Tính toán lưới
cầ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.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 15
Tiểu luận: Tính toán lưới
Thread 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.
3.3 Security
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.

HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 16
Tiểu luận: Tính toán lưới
Vấ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)
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 17
Tiểu luận: Tính toán lưới
• 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:
• Users (ManageOwnApp)
• Executors (ExecuteThread)
• Administrators (ManageOwnApp, ManageAllApps, ExecuteThread,
ManageUsers)
Đối với bất kỳ hoạt động nào cần được ủy quyền, user hoặc program phải
cung cấp thông tin dưới hình thức tên người dùng và mật khẩu và Manager chỉ
ủy quyền hoạt động nếu người dùng thuộc về nhóm có quyền tương ứng. Hình 7
cho thấy quá trình chứng thực và ủy quyền.
Khía cạnh thứ hai của bảo mật Alchemi là bảo vệ máy lưu trữ Executor
khỏi mã độc. Vấn đề này được giải quyết bằng cách tạo ra môi trường "sandbox"
trong đó Executor chạy grid thread. Môi trường này có thể được định nghĩa bởi
người dùng. Tính năng CAS (Code Access Security) của .NET được sử dụng để
thực thi tất cả thread với tập quyền hạn AlchemiGridThread có thể được chỉ định
đến mức độ fine-grained bởi người dùng như là một phần của .NET Local
Security Policy.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 18
Tiểu luận: Tính toán lưới
4 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).
4.1 Tổng quan
.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
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 19

Tiểu luận: Tính toán lưới
giữ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.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 20
Tiểu luận: Tính toán lưới
Manager 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.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 21
Tiểu luận: Tính toán lưới
4.2 Vòng đời ứng dụng lưới
Để phát triển và thực thi một ứng dụng lưới nhà phát triển tạo ra một lớp
grid thread tùy biến dẫn xuất từ lớp trừu tượng GThread. Một thể hiện của đối
tượng GApplication được tạo ra và các phụ thuộc được yêu cầu bởi ứng dụng
được thêm vào DependencyCollection. Thể hiện của lớp có nguồn gốc từ
GThread sau đó được thêm vào ThreadCollection của GApplication.
Vòng đời của một ứng dụng lưới được thể hiện trong hình 10 và hình 11,
cho thấy sự tương tác đơn giản giữa Owner, Executor và Manager.
GApplication tuần tự gửi dữ liệu liên quan đến Manager, được lưu trên đĩa
và lập lịch thread. Trạng thái ứng dụng và thread được duy trì trong SQL
Server/MSDE database.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 22
Tiểu luận: Tính toán lưới
Non-dedicated executor thăm dò thread để thực thi cho đến khi có sẵn.
Dedicated executor được cung cấp trực tiếp thread bởi Manager.
Thread được thực thi trong .NET application domain, với một application
domain cho mỗi grid application. Nếu application domain không tồn tại tương
ứng với grid application mà thread thuộc về, nó sẽ được tạo ra bằng cách yêu
cầu, desterilizing và tự động tải các phụ thuộc của ứng dụng. Thread object sau
đó được desterilized, bắt đầu trong application domain và trả về cho Manager khi
hoàn thành.
Sau khi gửi thread đển Manager để thực thi, GApplication thăm dò
Manager để tìm các thread kết thúc.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 23
Tiểu luận: Tính toán lưới

PHẦN 3: CÀI ĐẶT, CẤU HÌNH VÀ VẬN HÀNH
ALCHEMI
Phần này hướng dẫn cách cài đặt, cấu hình và vận hành phần khác nhau
của framework để thiết lập lưới Alchemi. Các thành phần khác nhau có thể được
tải về từ:
/>1 Yêu cầu chung
• Microsoft NET Framework. 1.1
2 Manager
Manager nên được cài đặt trên một máy ổn định và khả năng phù hợp.
Manager yêu cầu:
• SQL Server 2000 hoặc MSDE 2000
Nếu sử dụng SQL Server, đảm bảo rằng xác thực SQL Server đượ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. Chú ý: SQL Server / MSDE không nhất thiết phải cài đặt trên cùng
một máy Manager.
Cài đặt
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 24
Tiểu luận: Tính toán lưới
• Alchemi Manager có thể được cài đặt trong hai chế độ
o Như một ứng dụng desktop Windows thông thường
o Như một dịch vụ Windows. (chỉ hỗ trợ trên Windows
NT/2000/XP/2003)
• Để cài đặt manager như một ứng dụng windows, sử dụng trình cài đặt
Manager Setup. Để cài đặt ở chế độ dịch vụ 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 của chế độ dịch vụ, các "Alchemi Service Manager" cài đặt và cấu
hình để chạy tự động trên Windows khi khởi động. Sau khi cài đặt, trình
quản lý điều khiển dịch vụ Windows có thể được sử dụng để kiểm soát
các dịch vụ. Ngoài ra chương trình Alchemi ManagerServiceController
cũng có thể được sử dụng. Manager service controller là một giao diện đồ

họa, tương tự như ứng dụng Manager thông thường.
• Cài đặt Manager thông qua Manager installer. Sử dụng mật khẩu sa lưu ý
trước đó để cài đặt cơ sở dữ liệu trong khi cài đặt.
Cấu hình và vận hành
• Manager có thể được chạy từ desktop hoặc Start -> Programs -> Alchemi
-> Manager -> Alchemi Manager. Các thiết lập cấu hình cơ sở dữ liệu sử
dụng trong khi cài đặt sẽ tự động xuất hiện khi Manager lần đầu tiên khởi
động.
• Click vào nút "Start" để bắt khởi động Manager.
• Khi đóng lại, Manager được thu nhỏ xuống khay hệ thống.
HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 25

×