Trong bài viết này, tác giả đề cập đến Alchemi, một .NET framework màMicrosoft cung cấp cho người dùng để phát triển các ứng dụng với Tính toán lưới.Bài viết là một trích dẫn của một bài
Trang 1Trường Đại học Công nghệ thông tin
Trang 2Lời mở đầu
Hiện nay Công nghệ thông tin đã và đang phát triển vô cung nhanh chóng và vaitrò của nó trở nên vô cùng quan trọng khi xuất hiện trong hầu hết các lĩnh vựctrong đời sống xã hội Các ứng dụng công nghệ thông tin ngày càng trở nên phongphú, và nó đang trở thành một trong những công cụ để đánh giá mức độ phát triểncủa một quốc gia, một vùng kinh tế Từ khi internet xuất hiện, Công nghệ thôngtin như tìm thấy cho mình điều kiện để phát triển mạnh mẽ nhất Quả thật vậy,hiện nay Công nghệ thông tin kết hợp với internet đã trở thành ‘thành viên” khôngthể thiếu trong phần lớn các lĩnh vực vì đó chính là công cụ nhanh nhất đưa conngười tiếp cận với thế giới bên ngoài
Song song với việc phát triển theo chiều rộng về phạm vi ứng dụng, Công nghệthông tin cũng phát triển bản thân nó theo chiều sâu Có rất nhiều vấn đề phát sinhtrong quá trình phát triển trong và việc giải quyết vấn đề tính toán cho những bàitoán lớn, độ phức tạp cao xẩy ra trong đời sống là một thách thức từ những ngàyđầu phát triển Với một bài toán phức tạp, chi phí bỏ ra để thực hiện là vô cùng lớn
và có thể mất hàng chục năm một máy tính bình thường mới có thể giải quyếtđược Đó là lý do thôi thúc các nhà phát triển cho ra đời các siêu máy tính Tuynhiên các siêu máy tính cũng có giới hạn của nó vi chi phí đầu tư quá lớn và thực
sự cũng không đáp ứng được nhu cầu Vì lí do đó, ý tưởng về việc tận dụng máytính để bàn trên toàn thế giới để hình thành nên một “siêu máy tính ảo” đã đượcthực hiện và đó chính là điều kiện ban đầu để hình thành những khái niệm mới:
“Điện toán đám mây” (Cloud computing) hay “Tính toán lưới” (Grid computing) Trong bài viết này, tác giả đề cập đến Alchemi, một .NET framework màMicrosoft cung cấp cho người dùng để phát triển các ứng dụng với Tính toán lưới.Bài viết là một trích dẫn của một bài báo khoa học và từ đó đưa ra những nhận xét
và đánh giá về Alchemi và khả năng ứng dụng nó trong thực tế hiện nay
Trang 3Mục lục
Lời mở đầu 2
Mục lục 3
1 Giới thiệu 4
2 Tóm tắt nội dung bài báo 4
2.1 Tổng quan 4
2.2 Kiến trúc 6
2.3 Thiết kế và thực thi 11
2.4 Alchemi API: Mô hình lập trình luồng trên lưới 16
2.5 Đánh giá hiệu quả thực hiện 18
2.6 Tổng kết và công việc tương lai 22
3 Đánh giá bài báo 23
4 Kết luận 25
5 Tài liệu tham khảo 26
Nhận xét và đánh giá 27
Trang 41 Giới thiệu
Sự phát triển nhanh và mạnh mẽ của công nghệ thông tin đã thúc đẩy những ngườiphát triển về một siêu máy tính với những tính năng cực kì mạnh mẽ có thể giảiquyết được những bài toán vô cùng lớn Tuy nhiên việc hình thành nên những cỗmáy như vậy thường mất rất nhiều chi phí đầu tư, và thường không hiệu quả vì sốlượng các bài toán lớn không nhiều và không cần thực hiện liên tục Vì lý do đó, ýtưởng về việc tạo nên một siêu máy tính ảo từ các máy tính để bàn thông thườngthông qua mạng internet là một ý tưởng xuất sắc và có ý nghĩa thực tiễn lớn.Chính từ ý tưởng đó mà đã xuất hiện 2 vấn đề mới trong lĩnh vực công nghệ thôngtin là Điện toán đám mây và Tính toán lưới
Ở chương tiếp theo (chương 2) là một trích dẫn một bài báo khoa học viết về mộtcông cụ hổ trợ cho những người phát triển phần mềm thuộc lĩnh vực tính toán lướiđược trình bày bởi nhóm tác giả đến từ trường đại học Melbourne, Úc Nội dungbài báo tập trung vào Alchemi, một framework dựa trên nền tảng NET hổ trợngười dùng xây dựng các phần mền ứng dụng và phần mềm trung gian trên tínhtoán lưới
2 Tóm tắt nội dung bài báo
2.1 Tổng quan
Ý tưởng thực hiện của Alchemi rất hứa hẹn khi mà nó sử dụng một mạng nhiềumáy tính độc lập như thể một hệ thống lớn song song, hay có thể xem như mộtsiêu máy tính ảo để giải quyết những vấn đề có quy mô lớn trong khoa học, côngnghệ và thương mại Với việc sở hữu máy tính trên toàn thế giới tăng rất nhanhtheo cấp số mũ, các hệ thống mạng nội bộ, kết nối internet đã đưa đến một kháiniệm mới, đó là tính toán lưới
Trang 5Tính toán lưới đã thu hút được sự chú ý mạnh mẽ và lan tỏa nhanh chóng tronglĩnh vực thương mại Một cơ sở hạ tầng tính toán lưới dựa trên cơ sở củaMicrosoft Windows sẽ đóng vai trò quan trọng trong việc mở rộng như một ngànhcông nghiệp lưới bởi vì Windows được sử dụng rất nhiều trong thương mại hiệnnay Điều này kích thích sử dụng những khả năng của máy tính để bàn chưa đượcdùng đến để tạo ra một siêu máy tính ảo nhưng lại không tốn chi phí Tuy nhiên cómột khó khăn đó là thiếu các chương trình phần mềm dựa trên nên tảng lưới ở thờiđiểm hiện tại Để giải quyết vấn đề này, chúng tôi phải phát triển một hệ thốngtính toán lưới dựa trên nền tảng Windows gọi là Alchemi, hiện thực dựa trên nềntảng của Microsoft NET.
Khái niệm về tính toán lưới trông có vẻ rất đơn giản nhưng việc hiện thực nó trongthực tế lại đối diện với rất nhiều thách thức Những vấn đề trọng tâm phải đối mặt
đó là tính bảo mật, tính không đồng nhất, tính tin cậy, kết cấu các ứng dụng, lậplịch và quản lý tài nguyên Microsoft NET framework đã cung cấp cho chúng tamột hệ thống công cụ rất mạnh mẽ và đó chính là đòn bẫy thúc đẩy giải quyếtnhững vấn đề về tính toán lưới Với khả năng hổ trợ điều khiển thực thi đa luồng,bảo mật, chương trình bất đồng bộ, ngắt kết nối truy cập dữ liệu, quản lý thực thi
và việc phát triển trên nhiều ngôn ngữ đã làm nên tiền đề cho việc phát triểnphong phú phần mềm trung gian tính toán lưới
Alchemi được hình thành với sự cam kết thực hiện một cấu trúc lưới và sự pháttriển phần mềm lưới đơn giản hết sức có thể mà không đánh mất tính mềm dẻo,tính dể hiện thực, tính tin cậy và khả năng mở rộng Các tính năng cơ bản được hổtrợ bởi Alchemi gồm:
• Thiết lập một mạng gồm một cụm máy tính để bàn dựa trên internet nhưngkhông chia sẽ tập tin hệ thống
• Thiết lập một mạng lưới có thứ bậc, cộng tác gồm những cụm máy tính
• Thực thi chuyên dụng hay không chuyên dụng bởi các cụm và các nút riênglẻ
Trang 6• Mô hình lập trình luồng hướng đối tượng trên lưới
Hình 1 – Kiến trúc phân lớp tích hợp tài nguyên Windows và Unix phân tán
2.2 Kiến trúc
Alchemi cho phép mô hình lập trình song song, với thành phần trung tâm sẽ phânphối công việc cho các đơn vị độc lập thực hiện và quản lý các đơn vị độc lập này.Đơn vị nhỏ nhất trong quá trình thực hiện song song này là luồng (thread) trênlưới, một đơn vị có chức năng tương tự như một luồng của các đối tượng bìnhthường khác Một ứng dụng lưới được định nghĩa đơn giản là một ứng dụng màđược thực thi trên lưới bao gồm một số luồng trên lưới Các ứng dụng lưới đượctrình bày bởi các nhà phát triển ứng dụng thông qua cơ chế hướng đối tượngAlchemi NET API
Trang 7có thêm luồng nào được chỉ định Luồng được lập lịch theo cơ chế FCFS (First
Trang 8Come First Server) Executor sẽ trả kết quả thực thi mỗi luồng về cho Manager vàManager sẽ chuyển kết quả này về cho các Owner tương ứng.
Executor:
Executor nhận các luồng từ Manager và thực thi chúng Một Executor có thể đượccấu hình chuyên dụng, mang ý nghĩa là chúng được quản lý bởi Manager, hoặc cócấu hình không chuyên dụng với ý nghĩa là tài nguyên được quản lý bởi trình tiếtkiệm điện hay bởi người sử dụng Đối với quá trình thực thi không chuyên dụng,
có một sự giao tiếp giữa Executor và Manager Khi mà giao tiếp 2 chiều được thựchiện và sự thực thi chuyên dụng được Executor thể hiện dưới dạng một giao diện(IExecutor interface) vì thế mà Manager có thể giao tiếp trực tiếp Trong tìnhhuống này, Manager sẽ triệu gọi Executor trực tiếp để thực thi luồng Vì thế màquá trình thực thi của Alchemi cung cấp cùng lúc 2 tiện ích sau:
• Quản lý tài nguyên mềm dẻo: như việc quản lý tập trung các quá trình thựcthi chuyên dụng và việc quản lý không tập trung các quá trình thực thikhông chuyên dụng
• Triển khai một cách mềm dẻo trong mạng, thành phần có thể được triểnkhai như các quá trình thực thi không chuyên dụng giống như quá trìnhgiao tiếp 2 chiều là không mong đợi hay không thể thực hiện
Vì thế, quá trình thực thi chuyên dụng là thích hợp hơn khi mà Manager vàExecutor ở cùng một mạng nội bộ và các quá trình thực thi không chuyên dụngthích hợp khi mà Manager và Executor được liên kết thông qua internet
Owner:
Các ứng dụng lưới hình thành và sử dụng các API Alchemi được thực thi trên cácthành phần Owner Owner cung cấp một giao diện với sự mong đợi về các ứngdụng lưới giữa người phát triển ứng dụng và lưới Do đo, chúng sở hữu ứng dụng
và cung cấp các dịch vụ kết hợp với quyền sở hữu của một ứng dụng và các thànhphần cấu tạo của luồng Owner đưa các luồng đến cho Manager và thu thập các
Trang 9luồng đã hoàn tất được sinh ra từ các ứng dụng của người phát triển thông qua cácAlchemi API
Cross-Platform Manager:
Là một thành phần con tùy chọn của Manager, là một giao diện dịch vụ web thôngdụng trình bày một phần tính năng của Manager để làm cho Alchemi có thể thựchiện việc quản lý các luồng thực thi của các nền tảng độc lập trên lưới Các côngviệc được đưa lên Cross-Platform Manager được dịch sang một hình thức mà cóthể thực hiện được bởi Manager (như là luồng lưới), rồi được lập lịch để thực thinhư thường lệ Vậy nên để mà hổ trợ tính năng giải quyết các ứng dụng trên lưới,Cross-Platform Manager cho phép các phần mềm trung gian trên lưới liên kết vớinhau và cũng là bước tạo nên sức mạnh để Alchemi chạy trên bất kì một nền tảngnào có hổ trợ dịch vụ web
2.2.2 Cấu hình hệ thống
Với các thành phần nêu ở trên cho phép Alchemi tận dụng để tạo ra cá cấu hìnhkhác nhau như: hệ thống lưới các cụm máy tính để bàn, hệ thống lưới các cụm, hệthống lưới tổng thể các nền tảng khác nhau
Cụm các máy tính để bàn:
Đây là ngữ cảnh triển khai cơ bản – một cụm gồm một Manager và nhiềuExecutor được cấu hình và kết nối đến Manager Một hoặc nhiều Owner có thểthực thi các ứng dụng trên một cụm bởi việc kết nối đến Manager Khi một môitrường thích hợp cho việc triển khai trên mạng nội bộ thực hiện như trên mạnginternet Hoạt động của Manager, Executor và Owner trog một cụm được mô tảnhư ở phần trên
Đa cụm:
Môi trường đa cụm được tạo thành bởi kết nối các Manager theo một trật tự Nhưmột môi trường đơn cụm bất kì, số lượng Executor và Owner nào đều có thể liên
Trang 10kết đến một Manager ở bất cứ thứ bậc và trật tự nào Một Executor và Ownertrong môi trường đa cụm liên kết đến một Manager trong cùng kiểu mẫu như trongmột cụm và các hoạt động tương ứng giống như trong một cụm
Hình 3 – Triển khai một cụm
Vấn đề cốt lõi trong việc thực hiện đa cụm trong kiến trúc Alchemi là tác nhân màmột Manager đối xử giống như từ một Executor đến một Manager khi Managerhiện thực giao diện của Executor Một Manager ở mỗi cấp độ ngoại trừ cấp độ caonhất trong hệ thống đều được cấu hình để kết nối đến một tầng cao hơn như mộtManager tức thì và được điều khiển bởi các Manager có thứ bậc cao hơn như mộtExecutor Vậy nên môi trường này thích hợp hơn khi triển khai trên internet
Hoạt động của một Manager trong môi trường đa cụm kết hợp với các hành vi củamột Executor được miêu tả như sau:
Một khi Owner đưa lên lưới một ứng dụng đến Manager, mỗi Manager có mộtmạng lưới nội bộ với các luồng chờ được thực thi Như đã thảo luận, các luồngđược gán cho một độ ưu tiên cao nhất có thể và các luồng được lập lịch để thực thibởi Manager, rồi chúng được điều khiển như một Executor bởi Manager ở cấp caohơn Trong trường hợp này, sau khi nhận một luồng từ Manager cấp cao hơn,Owner được lập lịch bởi các Manager tức thời với độ ưu tiên thấp hơn 1 và đượcthực thi một cách bình thường bởi Executor của Manager nội bộ
Trang 11Hình 4 – Mô hình đa cụm và môi trường lưới tổng thể
Cross-Platform Grid:
Cross-Platform Manager có thể được dùng để cơ cấu một mạng lưới theo hìnhthức một mạng lưới tổng thể Một thành phần của các phần mềm trung gian trênmạng lưới như một người môi giới có thể dùng dịch vụ web Cross-PlatformManager để thực hiện các ứng dụng đa nền tảng trên một nút Alchemi giống nhưcác tài nguyên trên lưới sử dụng các kĩ thuật khác như là Globus
2.3 Thiết kế và thực thi
2.3.1 Tổng quan
.NET framework cung cấp cho chúng ta 2 cơ chế thực thi các miền ứng ứng dụng,
đó là cơ chế Remoting (điều khiển) và Web service (dịch vụ web)
.NET remoting cho phép một đối tượng NET được điều khiển và trình bày tínhnăng của nó trong các miền ứng dụng Remoting được dùng trong việc giao tiếpgiữa 4 thành phần cấu hình nên mạng lưới Alchemi khi nó cho phép sự tương táctrao đổi ở tầng thấp giữa các đối tượng NET với chi phí phát sinh thấp
Trang 12Các đối tượng điều khiển sử dụng .NET Remoting trong 4 thành phần củaAlchemi là Manager, Executor, Owner và Cross-Platform Manager là các thể hiệncủa GManager, GExecutor GApplication và CrossPlatformManager.
GManager, GExecutor, GApplication được dẫn xuất từ GNode, lớp được hiệnthực với chức năng tổng quát cho việc điều khiển các đối tượng và liên kết đếnmột Manager điều khiển thông qua giao diện IManager
Manager thực thi việc khởi tạo một thể hiện của lớp GManager, và thể hiện đóluôn điều khiển và trình bày một giao diện công khai là IManager
Executor thực thi việc hình thành một thể hiện của lớp GExecutor Đối với hìnhthức thực thi không chuyên dụng, có một sự giao tiếp một chiều từ Executor tớiManager Giao tiếp 2 chiều được xây dựng cho hình thức thực thi chuyên dụng,GExecutor được điều khiển và trình bày trên giao diên IExecutor và vì thế màManager có thể giao tiếp trực tiếp đến Quá trình cài đặt Executor cung cấp mộttùy chọn để cài đặt một trình tiết kiệm màn hình, và tùy chọn đó khởi tạo sự thựcthi không chuyên dụng khi được kích hoạt bởi hệ điều hành
Thành phần Owner – nằm bên trong thể hiện GApplication được tạo ra thông quaAPI của Alchemi – giao tiếp với Manager theo cùng một cách như GExecutor.Trong khi phương thức giao tiếp 2 chiều hiện tai chưa được thực thi, kiến trúcphục vụ cho nó là hình thức hoạt động của giao diện IOwner
Cross-Platforn Manager web service là một lớp giao tiếp nhỏ nằm trongGManager và sử dụng các ứng dụng các luồng nội bộ để thể hiện các tác vụ vàcông việc thông qua giao diện công khai ICrossPlatformManager
Trang 13Hình 5 – Các lớp chính và mối quan hệ giữa chúng
2.3.2 Vòng đời của một ứng dụng trên lưới
Để phát triển và thực thi một ứng dụng trên lưới, người phát triển tạo ra một lớpluồng tùy chỉnh trên lưới dẫn xuất từ lớp ảo GThread Một thể hiện của đối tượngGApplication được tạo ra và phụ thuộc nào đòi hỏi bởi ứng dụng cũng được thêmvào DependencyCollection của nó Các thể hiện của lớp dẫn xuất GThread rồicũng được thêm vào ThreadCollection của GApplication đó
GApplication khởi tạo và gửi dữ liệu có liên quan đên Manager, và ở đó dữ liệu đótồn tại để cho các luồng lập lịch thực thi Ứng dụng và trạng thái luồng được lưutrữ trong hệ quản trị CSDL SQL Server/MSDE
Trang 14Các Executor không chuyên dụng quay vòng thực hiện cho đến khi chỉ còn mộtluồng Các Executor chuyên dụng thì trực tiếp được cung cấp một luồng thực thibởi Manager
Hình 6 - Đơn giản hóa tương tác giữa các nút Owner và Manager
Vòng đời của một ứng dụng lưới được thể hiện trong hình 6 và 7, chúng cũng thểhiện sự đơn giản hóa giữa các nút Owner và Executor một cách tách biệt vớiManager
Trang 15Sau khi truyền xong các luồng tới Manager để thực thi, GApplication thăm dòxem Manager đã kết thúc quá trình thực thi các luồng của nó Một ủy nhiệm(delegate) GThreadFinish được người dùng định nghĩa được gọi chỉ định cho việcthực thi thành công mỗi luồng và một khi tất cả các luồng hoàn thành thì ủynhiệm GApplicationFinish được gọi
Hình 7 – Đơn giản hóa quá trình tương tác giữa nút Executor và Manager