ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Lê Bá Dũng

NGHIÊN CỨU PHÁT TRIỂN ỨNG DỤNG TRÊN GRID

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ thông tin

HÀ NỘI - 2006

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Ngô Cao Cường Lê Bá Dũng Trần Thiện Thịnh

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: ThS.Nguyễn Nam Hải

NGHIÊN CỨU P TR

HÀ NỘI - 2006

những kiến thức mà các thầy cô đã dạy là hành trang vững chắc để chúng em bước vào cuộc sống.Lời cảm ơn Trước tiên. Nguyễn Nam Hải. chúng em muốn gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy giáo. cô giáo đã giảng dạy chúng em trong những năm qua. Cuối cùng chúng em xin gởi lời cảm ơn đến gia đình và bè bạn. giúp đỡ chúng em trong cuộc sống. người đã tận tình hướng dẫn chúng em trong suốt quá trình làm nghiên cứu khoa học và làm khóa luận tốt nghiệp. ThS. Chúng em cũng xin gửi lời cảm ơn chân thành đến các thầy giáo. những người đã luôn ở bên động viên. Hà Nội 5-2006 i .

mở ra các giải pháp mới cho các ứng dụng đòi hỏi khả năng tính toán lớn.Tóm tắt Trong vài năm trở lại đây tính toán mạng lưới (Grid computing) đã phát triển mạnh mẽ. Trên cơ sở đó đi sâu vào tìm hiểu quy trình xây dựng và triển khai một ứng dụng trên môi trường Grid computing dựa trên nền tảng của bộ công cụ Globus Toolkit phiên bản 4. Grid computing có thể được sử dụng cho các bài toán nghiên cứu về sinh học. y học. khai phá dữ liệu. các ứng dụng trong chính phủ điện tử và rất nhiều các loại ứng dụng khác. Để lấy ví dụ. các mô hình kiến trúc và công nghệ liên quan. chúng tôi trình bày một cách tổng quan về công nghệ Grid computing như ưu nhược điểm. vật lí. chúng tôi trình bày chi tiết các bước để triển khai một ứng dụng có sẵn – Math Service và chi tiết các bước xây dựng cũng như triển khai một ứng dụng mới – Bài toán tìm số nguyên tố Merssene. Trong khóa luận tốt nghiệp này. hóa học…cũng như các ứng dụng trong phân tích và đánh giá tài chính.0. ii .

.........................12 Tài nguyên tính toán..................................................................................................................................................................................................13 Các thiết bị đặc biệt.......................................................i Tóm tắt..........................................................................................................7 Cân bằng tài nguyên ............14 Lập lịch.................... và quét dọn..4 Grid Computing là gì?..........................................................................................................................................................................................................................................................................................................12 Các kiểu tài nguyên.........................................................................................13 Phần mềm và bản quyền.....Mục lục Lời cảm ơn................................ix Mở đầu...........5 Khai thác tài nguyên xử lý ....................................................................................6 Sự truy cập tới các tài nguyên khác .....................................................................................................................................................................................8 Độ tin cậy ...............4 Lợi ích của Grid Computing..................................15 Các gói phần mềm grid.5 Khả năng xử lý song song ................................................6 Sự cộng tác các tài nguyên ảo và tổ chức ảo....................9 Khả năng quản lý ..................................................................1 Cơ bản về Grid Computing................................................................................ đặt chỗ.....................................12 Truyền thông............................... kiến trúc và quyền hạn...................................................................................................................................................................................................................................................................... sức chứa.....................16 iii ..........................................12 Kho lưu trữ............................................................................................................................................................................................ii Bảng các ký hiệu viết tắt......................................................14 Công việc và ứng dụng.........10 Các thuật ngữ và khái niệm ....................................................................................................................

..............................................................................................................................................................25 Cơ sở hạ tầng của dịch vụ Grid mở ...................................................Open Grid Services Architecture (OGSA)..................................................22 Cài đặt ............................17 Các gói truyền thông...................................................21 Tham gia vào grid và cài đặt các phần mềm................................................................18 Người dùng trong mạng Grid Computing...................................................................................................................21 Người dùng bình thường.............................25 Kiến trúc dịch vụ Grid mở ....31 Lời gọi dịch vụ Web điển hình.....................31 iv ................................................................................................................................18 Các cấu hình mạng grid..............30 Ưu điểm của dịch vụ Web so với các công nghệ khác.......................16 Gói lập lịch................................................24 Một số chuẩn trong môi trường Grid............................................29 Tổng quan về dịch vụ Web...........................................................................Gói quản lý..............................................................................................27 Cơ chế tài nguyên của dịch vụ Web – Web service resource framework...........................................26 GridFTP............................................23 Quản lý người dùng................................................................................22 Cấu hình dữ liệu................................................................................................................................................... ........30 Nhược điểm khi dùng dịch vụ Web..........................................................................................................................21 Đăng nhập vào grid.................................................................................................................................................................22 Nhà quản trị......................23 Quản lý tài nguyên...........................................................................................................................21 Truy vấn và đưa công việc......Open Grid Service Infrastructure (OGSI)................................................................................................................................................................28 Tổng kết chương............23 Chứng thực....................................18 Gói quan sát và đo đạc..................................................................................27 Một số chuẩn của dịch vụ Web.................................................................

......................36 Những yêu cầu của dịch vụ Grid theo chuẩn OGSA.....................................................................................................................46 Tổng quan về Globus Toolkit 4........................................................................................................................................................47 Python WS Core..................................................................32 Kiến trúc dịch vụ Web................................................................................................................................................................37 Chuẩn WSRF...43 Truy cập vào mạng lưới.................44 Xác thực và quyền hạn.41 Cơ sở hạ tầng an ninh của mạng lưới.................48 v ...44 Tổng kết chương...............................................................................47 Các thành phần bảo mật....................................................................................................................................................................35 Cơ chế tài nguyên của dịch vụ Web – Web service resource framework ...........................................39 1............................................................................................................36 Dịch vụ Grid là gì..................................40 An ninh trong mạng Grid.............33 Các bước để gọi một dịch vụ Web.....................................................................................................................................37 Khái niệm WS-Resource....................................................................................................................................38 Các thành phần trong WSRF.......................................................................................32 Ứng dụng dịch vụ Web.............................................................Tổng kết chương........................47 C WS Core.......................................41 Các yêu cầu về an ninh trong mạng lưới..................................................................................................Địa chỉ dịch vụ Web...............................................................36 Quản lí trạng thái tài nguyên trong dịch vụ Grid........34 Tổng kết chương..................1............................................................0...........................................................................................................................................................................0..........................45 Các thành phần của Globus Toolkit 4...........................................................................................47 Thẩm định và cấp phép WS..........46 Java WS Core................................................46 Các thành phần thường trực................................................................................................................

.48 Dịch vụ uỷ quyền................................................................0...........................54 Cài đặt các phần mềm yêu cầu cho Globus Toolkit 4..................................50 Dịch vụ sao lưu dữ liệu (Data Replication Service ...............................0.51 WS GRAM......................................................................48 Các thành phần quản lý dữ liệu...........................................CAS)............................................................................................................................49 Truyền Tệp tin cậy (Reliable File Transfer ...............................58 Cấu hình bảo mật.......................................................................................................................................................................52 Mô hình môi trường mạng Grid....................................................................................56 Cấu hình và thử nghiệm môi trường Grid.49 GridFTP....51 Index service...63 Cấu hình và kiểm tra GridFTP...........................................0.....................................................................50 Các dịch vụ kiểm tra và khám phá thông tin (Monitoring and Discovery Services .......................................................................52 Cài đặt Globus Toolkit 4....................................DRS)........................................................................................................52 Download Globus Toolkit 4..........................................................................51 Các thành phần quản lý thi hành.....Thẩm định và cấp phép Pre-WS.........................................................................................................58 Cấu hình các biến môi trường...........64 vi ....................................48 GSI-OpenSSH..............0.........................................0........................................................................................................................................................48 Dịch vụ cấp phép cộng đồng (Community Authorization Service ...........................................MDS)..............................................RLS)...........................................................................0.............................................55 Cài đặt Globus Toolkit 4........51 Cài đặt và cấu hình Globus Toolkit 4..................................58 Cấu hình Java WS Core.........49 Dịch vụ mô hình hoá địa chỉ (Replica Location Service .............................................................48 SimpleCA...................................RFT).............................................................................................54 Cấu hình môi trường Linux cho Globus Toolkit 4..

...... Bước 2: Thực thi dịch vụ...3..1...........................................66 Các bước lập trình chương trình Math Service................Giao diện của chương trình client:.....................................................65 Các bước lập trình một chương trình Grid....................................................................................................................................................................................66 Giới thiệu sơ lược về chương trình Math Service....80 Tạo project GT4 với GT4IDE.....................90 Thiết kế hệ thống..............................................................................................74 Bước 5: Triển khai dịch vụ..................84 Một số thuật toán tiêu biểu..............................................100 vii .........1.......................................................87 Phân tích và thiết kế bài toán.............................................................................81 Thuật toán tìm số nguyên tố Mersenne.....................78 Giới thiệu công cụ phát triển..................................75 Chạy thử chương trình Math Service........................................................................................................................99 Biên dịch và chạy chương trình...83 Các khái niệm và mệnh đề................................Bước 3: Định nghĩa việc triển khai dịch vụ.......................................................................................92 Kết quả thử nghiệm....................................................................................................80 Cài đặt GT4IDE.Gỡ bỏ Globus Toolkit 4...............67 1...........................................................................88 Phân tích hệ thống...........................................................................................2......76 Tự xây dựng một dịch vụ Grid: Bài toán số nguyên tố...................................................79 Giới thiệu công cụ GT4IDE..........................98 1..........66 Bước 1: Định nghĩa giao diện dịch vụ....................................................................0..................................................................................98 Viết mã chương trình..........................................................................................................................................................................84 Lựa chọn thuật toán...........1..............................................................................................................................................................................................................73 Bước 4: Biên dịch và tạo tệp GAR...........................................................................................88 Mô tả hệ thống..........70 1.................................................................................1..........

.............................................................103 viii .......................................................Kết luận về bài toán Số nguyên tố.............................................................................102 Tài liệu tham khảo........................................................................................................................101 .............................................101 Kết luận....................................................

Khám phá và Mô tả Toàn cầu Uniform Resource Identifiers .Ngôn ngữ đánh dấu siêu văn bản Monitoring and Discovery Services .Dịch vụ cấp phép cộng đồng Common Object Request Broker Achitecture Data Replication Service .Các dịch vụ kiểm tra và khám phá thông tin Open Grid Services Architecture .Địa chỉ dịch vụ Web Web serivce definition Language -Ngôn ngữ mô tả dịch vụ web Web service resource framework .Giao thức truyền tệp Grid Security Infrastructure .Dịch vụ sao lưu dữ liệu File Transfer Protocal .Kiến trúc dịch vụ web mở Open Grid Service Infrastructure .thuộc tính tài nguyên Service Oriented Architechture .Cơ chế tài nguyên của dịch vụ Web eXtensible Markup Language .chuẩn dịch vụ Tích hợp.Giao thức truy cập đối tượng đơn giản Universal Description.Dịch vụ mô hình hoá địa chỉ Remote Method Invocation Resource Properties .Cơ sở hạ tầng dịch vụ web mở Reliable File Transfer .Kiến trúc hướng dịch vụ Simple Object Access Protocol .Cơ sở hạ tầng an ninh mạng lưới Globus Toolkit Hypertext Markup Language.Ngôn ngữ Đánh dấu Mở rộng ix .Bảng các ký hiệu viết tắt Ký hiệu viết tắt API CA CAS CORBA DRS FTP GSI GT HTTP MDS OSGA OSGI RFT RLS RMI RPs SOA SOAP UDDI URI WSDL WSRF XML Ý nghĩa Application Programming Interface – Giao diện lập trình ứng dụng Certificate Authority – Cơ quan chứng thực Community Authorization Service . Discovery and Integration .Truyền Tệp tin cậy Replica Location Service .

x .

Ở Việt Nam hiện nay. Chương 4: Một số chuẩn trong môi trường Grid Chương này giới thiệu một số công nghệ chuẩn trong Grid Computing. chúng tôi nghiên cứu đề tài: “Nghiên cứu phát triển ứng dụng trên Grid”. tổ chức nghiên cứu về Grid Computing. Các chương trình chạy trên môi truờng mạng lưới có một số ưu điểm nổi trội hơn so với các chương trình chạy trên máy tính thông thường.Mở đầu Hiện nay. Để có thể đi sâu vào nghiêu cứu Grid. Mạng lưới tính toán (Grid Computing) đang là “điểm nóng” công nghệ trên các diễn đàn công nghệ thông tin trên khắp thế giới. Nhận thấy những ý nghĩa thiết thực của Grid Computing có thể mang lại trong tương lai. Chương 3: Người dùng trong mạng Grid Computing Chương này mô tả các cấp độ người dùng trong mạng Grid. 1 . Grid Computing hiện đang là nền tảng công nghệ chủ đạo của mạng Internet thế hệ mới.. Chẳng hạn như: thời gian xử lý công việc ngắn hơn nhờ khả năng tính toán song song.. Grid Computing đang còn là một vấn đề khá mới mẻ. phát triển sôi nổi. nhóm sinh viên chúng tôi quyết định đi vào nghiêu cứu Grid Computing về công nghệ và phát triển ứng dụng mang tính thực tiễn trong cuộc sống. chương này giới thiệu các thuật ngữ và khái niệm được dùng trong Grid. công nghệ Grid (Grid Technologies) đang được giới khoa học – công nghệ nghiên cứu. nội dung chính của các chương gồm có: Chương 1: Cơ bản về Grid Computing? Chương này giới thiệu khái niệm Grid Computing để có thể hình dung được thế nào là Grid Computing và các khả năng mà Grid Computing có thể thực hiện được. Trên thế giới.v. Đề tại được chia thành các chương. Với những ưu điểm đó của các chương trình Grid. Đã có một số nhóm. hiệu suất sử dụng tài nguyên tính toán cao hơn nhờ khả năng phân tán tài nguyên. giữ vai trò giống như giao thức TCP/IP đối với mạng Internet hiện nay. tuy quy mô và điều kiện nghiên cứu còn rất hạn chế. Chương 2: Các thuật ngữ và khái niệm Grid Computing là lĩnh vực công nghệ khá mới mẻ nên xuất hiện nhiều thuật ngữ mới. v.

Chương này đề cập đến những yêu cầu trong vấn đề bảo mật của Grid Computing Chương 8: Các thành phần của Globus Toolkit 4. • Từ Chương 4 đến Chương 7: Trần Thiện Thịnh.0 Globus Toolkit 4. Chương này giới thiệu một số thành phần của bộ công cụ này. Chương 9: Cài đặt và cấu hình Globus Toolkit 4. Chương 10: Các bước lập trình một chương trình Grid Chương này giới thiệu các bước tiến hành xây dựng một chương trình Grid. cụ thể như sau: • Từ Chương 1 đến Chương 3: Ngô Cao Cường.0.0 Chương này hướng dẫn cài đặt bộ công cụ Globus Toolkit 4.Chương 5: Tổng quan về dịch vụ Web Dịch vụ Web là cơ sở cho dịch vụ Grid. • Từ Chương 8 đến Chương 10: Lê Bá Dũng. • Chương 11: Chương trình Số nguyên tố được tất cả các thành viên cùng thiết kế và cùng tìm hiểu thuật toán. Các module chương trình được phân chia như sau: 2 . Chương 6: Cơ chế tài nguyên của dịch vụ Web .WSRF Chương này giới thiệu một chuẩn của dịch vụ Grid. Chương này giới thiệu các công nghệ của dịch vụ Web. đang được sử dụng phổ biến hiện nay.0 là công cụ nền tảng để phát triển các ứng dụng Grid. Chương 11: Tự xây dựng một dịch vụ Grid: Bài toán Số nguyên tố Chúng tôi xây dựng một ứng dụng mang tính thực tiễn. đó là WSRF Chương 7: An ninh trong Mạng Grid Bảo mật là vấn đề quan trọng trong mạng Grid Computing. đó là bài toán: Số nguyên tố. Mỗi thành viên trong nhóm thực hiện một số chương nhất định.

PrimeFactoryService và PrimeResouceHome. • Lê Bá Dũng viết các module tìm kiếm và phân phối các công việc trong Service bao gồm các lớp: PrimeService và PrimePKC. 3 .• Ngô Cao Cường viết các module quản lý các tài nguyên trong Service bao gồm các lớp: PrimeResource. • Trần Thiện Thịnh viết chương trình Client.

Nhân tố cơ bản của Grid là công nghệ phân tán các thiết bị tính toán.. Grid còn dùng các công nghệ khác trong các lĩnh vực lập lịch. bảo mật. ổ lưu trữ. Để có được một môi trường hỗn hợp có thể chia sẻ tài nguyên.Tương tự như vậy. đơn tài nguyên. tài chính.. Tài nguyên ở đây có thể là CPU. ngoài công nghệ ảo hóa. dữ liệu. chúng ta có thể tưởng tượng nó như một mạng lưới điện mà mọi người chỉ cần cắm phích điện vào để sử dụng mà không cần biết nguồn điện từ đâu đến. Grid computing đã phải trải qua nhiều công đoạn hợp nhất các công nghệ và giải pháp để đạt được thành quả như hiện nay. trong Grid Computing.Cơ bản về Grid Computing Chương này mô tả định nghĩa về Grid computing và các lợi ích chính của Grid computing bao gồm: • Khai thác tài nguyên xử lý • Khả năng xử lý song song • Cộng tác các tài nguyên ảo và tổ chức ảo • Truy cập tới các tài nguyên khác • Cân bằng tài nguyên • Tính tin cậy • Khả năng quản lý Grid Computing là gì? Có nhiều cách khác nhau để định nghĩa thế nào là Mạng tính toán lưới (Grid Computing). Hình 1 mô tả từng cấp độ của sự ảo hóa từ đơn giản đến phức tạp khi đi theo chiều từ trái sang phải. ta có thể chia sẻ tài nguyên và liên kết các tổ chức lại với nhau.v. chúng dùng công nghệ gì. Ở hình trái nhất là tổ chức đồng nhất.v. Đây còn gọi là công nghệ ảo hóa. Với công nghệ này. Mỗi cấp độ phụ thuộc vào phạm vi và tính đồng nhất của tổ chức.v. ổ lưu trữ.. Sự ảo hóa trong môi trường grid có nhiều cấp độ khác nhau.v. một người dùng nào đó có thể truy nhập vào các tài nguyên (bao gồm: bộ xử lý.) mà không cần biết các tài nguyên này nằm ở đâu. Để có thể hình dung Grid Computing là gì.các thiết bị 4 .. cấu hình phần cứng như thế nào.

Hình bên phải là mức độ ảo hóa cao nhất với phạm vi trên toàn mạng Internet. Trong một mạng lưới bao gồm nhiều máy tính. Tiếp đến là hệ thống hỗn hợp gồm nhiều tài nguyên khác nhau. Grid cung cấp một khung làm việc (framework) để tận dụng những tài nguyên này và vì thế có thể tăng hiệu quả trong việc sử dụng các tài nguyên. Điều đó chứng tỏ khối lượng tài nguyên rỗi trong một mạng là rất lớn. 5 . Trung bình mỗi ngày. Trong hầu hết các tổ chức. luôn có những khối lượng lớn những tài nguyên dùng để tính toán. mỗi máy tính có thời gian trung ở trạng thái thái bận là 5%.và chương trình. Cấp độ ảo hóa phức tạp hơn là ảo hóa trong một xí nghiệp. bao gồm các đa tổ chức hỗn hợp. có một số máy ở trạng thái bận do khối lượng công việc lớn. Hình 1: Sự ảo hóa với nhiều cấp độ Lợi ích của Grid Computing Khai thác tài nguyên xử lý Một trong những tính năng cơ bản của tính toán mạng lưới là khả năng chạy một chương trình trên nhiều máy tính khác nhau. một số khác ở trạng thái rỗi do khối lượng công việc nhỏ.

Thứ nhất là: việc sử dụng thuật toán phân chia công việc ảnh hưởng lớn đến hiệu năng tính toán chung của mạng. không có một công cụ nào có thể chuyển đổi một ứng dụng bất kỳ sang dạng chạy song song trên grid.Ngoài tài nguyên xử lý. Có hai lí do chính để mạng lưới trên thực tế không thể trở thành hoàn hảo. Hơn nữa. Tuy nhiên. Chia sẻ tài nguyên bắt đầu với dữ liệu dạng tệp hay cơ sở dữ liệu. Một mạng lưới được gọi là hoàn hảo nếu với mười máy tính. Grid tận dụng các dung lượng đĩa cứng còn trống trong các máy tính để tập hợp thành một tài nguyên lưu trữ ảo trọng mạng. Mỗi CPU trên mỗi máy tính trong mạng đảm nhận việc xử lý một hay nhiều thành phần đó. Hình 2 mô tả môi trường không đồng nhất đó. Mỗi người sử dụng mạng lưới được phân bổ vào một tổ chức ảo nào đó. Khả năng xử lý song song Khả năng kết hợp nhiều CPU cùng xử lý song song là một tính năng hấp dẫn của Grid computing. Thứ hai là: các thành phần của công việc không hoàn toàn độc lập với nhau. không đồng nhất với nhau để cùng cộng tác với nhau. Mỗi môi trường đó được gọi là một tổ chức ảo. tệp hay cơ sở dữ liệu có thể được trải rộng trên nhiều hệ thống tạo nên dung lượng lớn hơn rất nhiều so với hệ 6 . tài nguyên lưu trữ cũng được sử dụng hiệu quả hơn nhờ Grid computing. tốc độ xử lý của mạng tăng lên gấp mười. đồng nhất. Khả năng xử lý song song của một chương trình trên mạng lưới phụ thuộc vào người thiết kế. Lưới dữ liệu có thể mở rộng dữ liệu theo nhiều cách khác nhau. Các chương trình chạy trên môi trường Grid sử dụng các thuật toán để phân chia công việc xử lý thành nhiều thành phần độc lập. và đó không phải là công việc đơn giản. Không phải ứng dụng nào cũng có thể chuyển đổi để Grid có thể xử lý song song. Đầu tiên. Tính độc lập của các thành phần càng cao thì chương trình càng dễ dàng được mở rộng trên phạm vi mạng lưới nhiều máy tính hơn. Các tổ chức ảo này có thể chia sẻ tài nguyên với nhau như một mạng lưới lớn. Grid computing thậm chí có khả năng tạo nên một môi trường rộng lớn hơn bằng cách kết hợp các tổ chức ảo. trên thực tế không có mạng lưới hoàn hảo. Sự cộng tác các tài nguyên ảo và tổ chức ảo Một khả năng khác của grid computing là tạo nên môi trường cộng tác rộng lớn.

Ngoài việc chia sẻ tài nguyên là các tệp và cơ sở dữ liệu. Grid có thể yêu cầu người dùng đó tuân thủ các luật lệ. Trong 7 . dịch vụ. ta có thể chia sẻ nhiều tài nguyên khác. bảo mật.. nếu một người muốn tăng băng thông truy nhập Internet để thực hiện việc khai thác dữ liệu tìm kiếm. Các tài nguyên đó gọi là các tài nguyên ảo. Dữ liệu thường xuyên được sao lưu phục vụ cho việc khôi phục dữ liệu.. Những người tham gia hay sử dụng grid là một thành viên trong một tổ chức nào đó. Grid còn có thể truy nhập đến những tài nguyên khác. Ví dụ. Các tài nguyên này có thể được cung cấp dưới dạng số lượng hoặc khả năng lưu trữ. quyền hạn sử dụng. Cách trải dữ liệu này có thể tăng tốc độ truyền dữ liệu với công nghệ striping. .Những tài nguyên này được “ảo hóa” để giữ chúng đồng bộ trong một hệ thống mạng luới không đồng nhất..thống đơn. như các thiết bị chuyên dụng.. Hình 2: Mạng grid ảo không đồng nhất Sự truy cập tới các tài nguyên khác Ngoài CPU và tài nguyên lưu trữ. phần mềm. băng thông. công việc này có thể phân chia giữa các máy trong mạng grid có đường truyền Internet không phụ thuộc nhau. từ đó có thể giải quyết được các vấn đề về ưu tiên..

khi mỗi máy có đường truyền riêng biệt. Người sử dụng máy tính không cài đặt phần mềm đó có thể sử dụng phần mềm này bằng cách gửi công việc đến máy tính được cài phần mềm để yêu cầu xử lý. tính toán trong một tổ chức. tài nguyên phức tạp như máy chuẩn đoán bệnh hay robot hỗ trợ phẫu thuật Cân bằng tài nguyên Grid liên kết các tài nguyên từ nhiều máy khác nhau tạo thành một hệ thống duy nhất. Tuy nhiên grid có thể phân chia nó thành nhiều công việc nhỏ và huy động một lượng lớn tài nguyên để xử lý nó một cách nhanh nhất. Đó là khả năng tận dụng phần mềm của Grid. • Nếu toàn mạng grid đã bận. Đôi khi có những công việc đột ngột được tăng độ ưu tiên do cần hoàn thành gấp. thì nó sẽ không tăng băng thông. Nếu các máy chia sẻ đường kết nối Internet. những công việc có độ ưu tiên thấp được tạm ngừng nhường cho những công việc khác có độ ưu tiên cao. Grid không thể xử lý được những công việc cần hoàn thành quá gấp. Trong một mạng lưới. Chức năng này có ý nghĩa rất lớn trong việc xử lý các trường hợp quá tải về xử lý. Hầu hết các máy in được sử dụng từ xa. Grid có thể chia sẽ được những thiết bị đặc biệt này. một số máy tính nào có thể được cài đặt những phần mềm đắt tiền. Thậm chí grid có thể chia sẻ những thiết bị. như hình 3 dưới đây. Một vài máy tính có thể có những thiết bị đặc biệt.trường hợp này. chẳng hạn như máy in. khả năng tìm kiếm được nhân lên. Chức năng cân bằng có thể được thực theo 2 cách sau: • Những điểm quá tải được đưa đến những máy rỗi trên mạng lưới. 8 . có bản quyền mà một máy khác không có. Grid có thể thực hiện cân bằng tài nguyên trong các chương trình bằng cách lập lịch làm việc cho các công việc.

Do đó. khi có một sự cố tại một nốt mạng nào đó trên mạng lưới. Grid mới chỉ bắt đầu công nghệ này. Cuối cùng. tuy nhiên. một mạng lưới có thể có khả năng thay thế một hệ thống đáng tin cậy như thế. với Internet. Các trạng thái của tất cả các tài nguyên trong mạng được Grid quản lý. Grid có thể lập lịch cho chúng để có thể giảm thiểu tối đa lưu lượng đường truyền cũng như khoảng cách truyền. phần mềm quản lý trong Grid có thể tự động chuyển công việc xử lý từ máy này đến một máy nào đó 9 . Trong tương lại. hoặc các tài nguyên khác. Khi một công việc liên lạc với một công việc khác. Điều này tạo nên tài chính mạng lưới.Hình 3: Công việc được chuyển đến phần ít bận hơn trong mạng Một lợi ích khác khi dùng grid là cân bằng tải. giá thành cho hệ thống này rất cao. Mô hình máy chủ đáng tin cậy sử dụng Grid có thể được mô tả như sau. Hệ thống còn sử dụng một nguồn đặc biệt có thể phát điện khi nguồn điện bị mất. Khi một máy tính bị hỏng hóc. Độ tin cậy Những hệ thống tính toán mạnh sử dụng phần cứng đắt tiền để tăng độ tin cậy. Điều này giúp Grid có thể giảm thiểu tắc nghẽn mạng. Một mạng lưới gồm nhiều máy tính được phân bố khắp nới. Tất cả chúng tạo nên một hệ thống tin cậy. các điểm khác sẽ không bị ảnh hưởng. Các tổ chức trên grid có thể tạo tài khoản và trả tiền để sử dụng các tài nguyên này khi cần thiết. Các nguồn và hệ thống làm mát cũng đều được nhân bản. Grid còn có khả năng thương mại tài nguyên. Chúng sử dụng bộ xử lý kép để khi hỏng hóc có thể thay thế bộ xử lý thứ hai mà không cần tắt hệ thống.

cần thêm những tài nguyên khác. mỗi dự án quản lý riêng tài nguyên và chi phí của nó. Hình 4: Nhiều bản sao của công việc được tạo ra Những hệ thống grid như thế sẽ tạo nên khả năng tính toán tự động. nhà quản lý có thể thay đổi các quyền hạn với tài nguyên để các tổ chức khác có thể chia sẻ hay sử dụng. 10 . Trong hình 5. hầu hết những hệ thống tin cậy đắt tiền ngày nay dựa vào phần cứng hoàn toàn cũng có thể dùng phần mềm để tạo nên sự tin cậy đó. grid có thể giải quyết dễ dàng tình huống này. Nó làm cho các nhà doanh nghiệp dễ dàng quản lý chi phí và tài nguyên tính toán trên phạm vi lớn. Về nguyên tắc. nhiều bản sao của công việc được tạo ra và được chuyển đến nhiều máy khác nhau trên mạng lưới như hình 4 dưới đây. các thiết bị được phân phối nhiều hơn.trong mạng. Nó là một dạng phần mềm có khả năng tự sửa lỗi trên grid. Trước đây. Grid quản lý độ ưu tiên giữa các dự án. Với tầm nhìn bao quát. Trong trường hợp quan trọng. trước khi thông báo cho bộ xử lý hay người quản lý biết. Khả năng quản lý Việc ảo hóa tài nguyên và nhiều hệ thống hỗn hợp được tạo ra trên grid sẽ tạo nên quy mô rộng hơn. Có thể những tài nguyên đang rỗi trong khi các dự án khác gặp sự cố.

Hình 5: Nhà quản trị có thể điều chỉnh chính sách thích hợp với tài nguyên 11 .

hay độ tin cậy dữ liệu. Tất cả chúng tạo nên tài nguyên của grid.Các thuật ngữ và khái niệm Các kiểu tài nguyên Một mạng grid là tập hợp máy móc. đôi khi là các nút. Cách đầu tiên đơn giản nhất là chạy ứng dụng trên một máy đang rỗi trên grid. Tài nguyên tính toán Tài nguyên thường thấy nhất trên grid là tài nguyên tính toán được cung cấp bởi các bộ xử lý trên các máy của grid. đó là sự phân chia hoàn hảo. Bộ nhớ thứ cấp có thể dùng để tăng khả năng lưu trữ.. cần được xử lý nhiều lần. hiệu năng. Tuy nhiên có giới hạn như đã nói ở trên khi một ứng dụng chỉ có thể phân chia thành một số giới hạn các phần độc lập với nhau. Kho lưu trữ Tài nguyên thứ hai được sử dụng thường xuyên trong grid là kho lưu trữ. Kho lưu trữ có thể là bộ nhớ trong hoặc bộ nhớ thứ cấp – đĩa cứng. kiến trúc. Bộ nhớ trong có tốc độ nhanh nhưng chỉ lưu trữ tạm thời. thành viên. GPFS (General 12 . ổ lưu trữ. trên nhiều máy khác nhau trên grid. Nếu hai bộ xử lý hoàn thành ứng dụng trong một nửa thời gian. máy chủ. khách. Các bộ xử lý có thể khác nhau về tốc độ. DFS (Distributed File System). trong khi số khác được giới hạn sử dụng. người quyên góp. Nhiều hệ thống grid hiện nay dùng các hệ thống tệp AFS( Andrew File System) . NFS (Network File System). hay các thiết bị đi kèm như bộ nhớ. Khả năng mở rộng là thước đo bộ xử lý được sử dụng trên grid hiệu quả như thế nào.. Một vài tài nguyên có thể được sử dụng bởi tất cả mọi người sử dụng trên grid. Cách thứ hai là phân chia ứng dụng thành nhiều phần rồi chạy song song trên các bộ xử lý khác nhau. Nó có thể dùng làm dữ liệu đệm để chạy chương trình. Mỗi máy trên grid thường cung cấp cho grid một số lượng kho lưu trữ nhất định. Có ba cách chính để tận dụng tài nguyên tính toán trên grid. Cách thứ ba là chạy ứng dụng. Một mạng lưới kết hợp các kho dữ liệu thường được gọi là “lưới dữ liệu” (data grid).

Chính vì vậy mà một trong những tài nguyên quan trọng khác của grid là khả năng truyền dữ liệu. những công việc cần dùng phần mềm này sẽ được gửi tới máy có cài phần mềm. chúng sẽ góp phần nâng tổng băng thông của grid lên. Khả năng truyền dữ liệu trong grid là quan trọng để lập lịch và gửi các công việc. dựa vào những mẫu đã sử dụng. Mỗi tệp hay CSDL có thể lưu trữ trên một vài máy hay vài ổ đĩa trên mạng grid. Sức lưu trữ có thể tăng bằng cách sử dụng ổ lưu trữ trên nhiều máy khác nhau với hệ thống tệp hợp nhất. Các hệ thống tệp tiến bộ trên grid có khả năng tự động nhân bản dữ liệu. Một bộ lập lịch thông minh trên grid có khả năng lựa chọn những thiết bị lưu trữ thích hợp để lưu trữ dữ liệu. 13 . để tăng độ tin cậy và tốc độ. Một vài phần mềm có điều khỏan cho phép cài trên tất cả các máy trong grid nhưng lại hạn chế số máy có thể chạy đồng thời một lúc. bao gồm cả khả năng truyền dữ liệu trong grid hay ra ngoài mạng grid. Điều này có thể giúp các tổ chức tiết kiệm chi phí rất nhiều. ví dụ. Điều này tạo điều kiện cho người sử dụng có thể dễ dàng truy cập dữ liệu mà không cần biết vị trí chính xác của nó. Các máy trong grid ngoài việc liên kết với nhau còn phải nối ra ngoài Internet. Một hệ thống tệp hợp nhất có thể tạo nên một tên hợp nhất cho các ổ lưu trữ trên grid. mức bảo mật và độ tin cậy cũng khác nhau. Ngòai ra. như khi xây dựng một hệ thống tìm kiếm. Chúng có tốc độ khác nhau. các hệ thống tệp còn có cơ chế chuẩn hóa để tránh xung đột khi nhiều user cùng chia sẻ và cập nhật dữ liệu Truyền thông Sự phát triển nhanh chóng của truyền thông ngày nay đã tạo nên grid. Băng thông giới hạn sẽ ảnh hưởng tới hiệu năng của grid.Parallel File System. Khi sử dụng grid. Truyền thông ngoài mạng grid ra Internet. Một hệ thống tệp grid còn có thể ghi nhật ký để dữ liệu có thể được khôi phục dễ dàng khi gặp sự cố. Chương trình quản lý giấy phép sẽ kiểm tra có bao nhiêu thể hiện của phần mềm đang chạy và ngăn chặn chúng chạy quá số lượng đã mua. Phần mềm và bản quyền Grid có thể có những phần mềm đắt tiền không thể cài đặt lên toàn bộ máy trong mạng. Khi các đường kết nối của các máy này không cùng chia sẻ đường truyền Internet.

Ví dụ. di chuyển dữ liệu. 14 . Những thuộc tính này cần được xem xét khi đưa các công việc vào thực thi. nhà quản trị có thể tạo ra những tài nguyên nhân tạo được sử dụng bởi bộ lập lịch để phân công công việc. những công việc yêu cầu tài nguyên quân sự sẽ không được phân bổ cho các máy trên. sức chứa. thiết bị khác nhau. Công việc và ứng dụng Dù rất nhiều loại tài nguyên của grid được chia sẻ và sử dụng. chẳng hạn như x86 hay PowerPC. Một vài máy khác chỉ tham gia vào grid khi nó không được dùng cho mục đích quân sự. chúng luôn luôn được truy cập thông qua ứng dụng hay công việc. Một ứng dụng grid được tổ chức như tập hợp các công việc được thiết kế để chạy song song trên các máy khác nhau. Một vài phần mềm chỉ có thể chạy trên những yêu cầu về phần cứng nhất định. Các công việc. Tuy nhiên từ “công việc” cũng được dùng với nghĩa tương đương. Ứng dụng có thể được chia thành nhiều công việc. Khi có một công việc nghiên cứu y khoa thì bộ lập lịch sẽ phân công cho các máy trên thực hiện công việc đó. một vài máy tính được thiết kế chỉ để dùng cho nghiên cứu y khoa. kiến trúc và quyền hạn Các nền tảng trên grid thường sẽ yêu cầu các kiến trúc. Công việc là những chương trình được thực thi trên một điểm của grid. Các nhà quản trị phải phân loại các công việc để thực hiện phương pháp này. Trong trường hợp này. thi hành một câu lệnh. đơn vị công việc để chỉ công việc.Các thiết bị đặc biệt. Chúng có thể là thực hiện tính toán. có thể được chia tiếp thành các công việc nhỏ hơn. Trong vài trường hợp. hệ điều hành. Chúng ta dùng định nghĩa “ứng dụng” như là cấp cao nhất của công việc trên grid. Grid còn dùng các thuật ngữ giao dịch. Mỗi chúng là một loại tài nguyên mà grid sẽ sử dụng để thực hiện các công việc khác nhau. như hình 6 dưới đây.

và quét dọn Hệ thống grid có nhiệm vụ gửi các công việc đến các máy cần thiết để thực thi. Với hệ thống grid đơn giản nhất. Nếu máy tính bận với những 15 . Việc này được thực hiện một cách kín đáo đối với những người sử dụng bình thường. Điểm quản lý này sẽ chỉ định cho máy này thực hiện công việc tiếp theo mà máy có thể thực thi được. người sử dụng sẽ chọn máy thích hợp cho công việc của anh ta sau đó thực hiện dòng lệnh để đưa công việc đó đến máy đã chọn. Một vài công việc khác đòi hỏi dữ liệu đầu ra. Trong các hệ thống grid quét dọn. Sau đó. Ví dụ. Lập lịch. Các hệ thống grid hiện đại hơn bao gồm một bộ lập lịch có tác dụng tự động tìm kiếm những máy tính thích hợp cho công việc đang chờ đợi thực thi. chúng ta có một công việc yêu cầu dữ liệu đầu vào phải được copy đến một máy. đặt chỗ. mỗi máy tính rỗi sẽ gửi thông báo tình trạng của mình đến điểm quản lý của grid. nhưng chúng không thể thực thi nếu công việc trước chưa được hoàn thành. Một công việc có thể sinh ra nhiều công việc con khác nhau.Hình 6: Một ứng dụng có thể là một hay nhiều công việc được lập lịch chạy trên grid Các công việc có thể bị phụ thuộc lẫn nhau nên không phải lúc nào cũng có thể cùng một lúc chạy song song. dữ liệu của tất cả các công việc con được tập hợp để tạo nên kết quả cuối cùng của ứng dụng.

Điều đó sẽ giảm lưu lượng băng thông và tăng khả năng mở rộng. Chúng còn được dùng để đánh giá tình trạng của grid. bộ lập lịch sẽ sử dụng đến kinh nghiệm. nó sẽ chỉ được chạy khi không có bất cứ chương trình nào khác đang chạy. Khi quyền hạn được thông qua. thì công việc grid sẽ tạm ngưng. để cảnh báo các vấn 16 . Các gói phần mềm grid Gói quản lý Tất cả các hệ thống mạng lưới grid đều có những gói phần mềm quản lý. ứng dụng grid có thể chạy trong vài phần trăm giây. Thứ hai. đặt chỗ. Các tài nguyên trong grid có thể được đặt chỗ trước với một tập hợp công việc. Thứ nhất. đó là những phần mềm để quản lý tài nguyên và người sử dụng trên mạng. có các gói phần mềm đo đạc để quyết định dung lượng các nốt trên lưới và tình trạng của các nốt này. quét dọn có thể tạo nên một grid hoản hào. Ứng dụng chạy ở chế độ quét dọn sẽ đặt nó vào trong hệ thống với độ ưu tiên thấp nhất. các máy tính grid thường được thiết kế riêng cho grid và không bị chi phối bới các công việc khác. Với những bộ xử lý tốc độ cao ngày nay. thậm chí là giữa các lần bấm phím của người dùng. Nó bảo đảm sự hoàn thành đúng hạn và chất lượng dịch vụ. Sự đặt chỗ này giống như hệ thống sắp xếp đặt phòng. Chính vì vậy. Vì thế. Lập lịch và đặt chỗ có thể tiến hành dễ dàng nếu chỉ có một tài nguyên tham gia. Để có thể dự đoán dễ dàng hơn. Kinh nghiệm này sẽ tìm ra sự kết hợp tốt nhất cho lập lịch và đặt chỗ để đạt hiệu quả cao nhất. chúng ta luôn mong muốn công việc sẽ được phân công cho máy gần dữ liệu mà công việc dùng nhất. Điều này cho phép bộ lập lịch có thể tính toán thời gian trung bình để hoàn thành các công việc.công việc riêng của máy. Tuy nhiên việc tối ưu trên grid sẽ dùng nhiều tài nguyên cho việc đặt chỗ vào lập lịch. Đây là những thông tin chính dùng để quyết định các công việc trên grid sẽ được phân bổ đến đâu. Ví dụ. tài nguyên đặt chỗ có thể được quét dọn để chạy những công việc có độ ưu tiên thấp trong khi chờ những công việc đã đặt trước nó. Điều này khiến cho khó có thể tính trước được thời gian sẽ hoàn thành công việc trên grid. như CPU. Với sự kết hợp của lập lịch. Các thông tin này dùng để lập lịch các công việc trên lưới.

nó chỉ đơn giản là phân bổ công việc cho máy có cấu hình tài nguyên phù hợp. công việc có độ ưu tiên cao nhất sẽ được đưa vào thực hiện. đưa công việc trở lại bình thường. Chính sách bao gồm nhiều ràng buộc về công việc. Phần mềm này nằm ở trên máy chạy công việc được yêu cầu bởi người sử dụng. 17 . Chúng sử dụng bộ đo đạc để xác định tình trạng xử lý hiện thời của một máy để xem chúng đang bận hay rỗi. Nếu một công việc bị mất do mạng hay hệ thống bị trục trặc. một bộ lặp lịch tốt sẽ tự động đưa công việc vào thưc hiên ở một nơi khác. Nó được thực hiện với hàng đợi công việc. quá tải. Đó là tự động tính toán. trong các bộ lập lịch nâng cao thì còn rất nhiều công việc phải làm. Gói lập lịch Hầu hết các hệ thống grid có chứa phần mềm lập lịch. Các bộ lặp lịch tiến bộ hơn sẽ quản lý tình trạng công việc trong lưu lượng làm việc chung. Bộ lập lịch có thể tổ chức theo dạng thừa kế. Ví dụ. hay tài nguyên. Tuy nhiên. Việc đặt chỗ trước tài nguyên trên grid được thực hiện thông qua hệ thống đặt chỗ. mỗi công việc có độ ưu tiên khác nhau.đề như ngừng hoạt động. tắc nghẽn. chúng không thể được lập lịch lại. Chúng còn được dùng để lựa chọn các mẫu và thống kê. tự động khôi phục lỗi. Một vài bộ lập lịch có hệ thống ưu tiên công việc. Hơn nữa nó có thể tạm ngừng hoặc thậm chí ngừng hẳn công việc đang chạy ở một máy khi hạn đặt chỗ đã đến. Các phần mềm sẽ tự động khôi phục từ tình trạng tắc nghẽn. có chính sách cấm một công việc được thực thi tại một thời điểm nhất định. một bộ lập lịch lớn có thể đưa công việc cho bộ lặp lịch cụm hoặc các bộ lặp lịch ở cấp thấp hơn. các hệ thống phần mềm hiện đại của grid có khả năng tự động quản lý tất cả các mặt của mạng lưới. Trong trường hợp đơn giản nhất. Thứ ba. Đầu tiên nó là hệ thống lịch cho việc đặt chỗ trước tài nguyên và bảo vệ những công việc khác dùng tài nguyên này. người sử dụng. Tuy nhiên nếu công việc đã bị quá thời gian quy định. Chính sách cũng được đưa vào trong bộ lập lịch. Ví dụ. Bộ lập lịch luôn luôn ảnh hưởng trực tiếp đến tải của mạng. Nếu một máy tính sẵn sàng để thực hiện công việc tiếp theo. Nó hơn cả một bộ lặp lịch. máy phải phục vụ cho công việc đã đặt trước.

Thường thì grid sẽ bao gồm một vài công cụ cho phép tính toán tải hiện thời và các hoạt động trên các máy. Các cấu hình mạng grid Grid có thể được xây dựng với mọi kích cỡ. Tuy nhiên. một công việc được chia thành nhiều công việc nhỏ. Các số liệu đo đạc của một công việc cụ thể có thể được thu nhặt để dự đoán tài nguyên cho lần chạy tiếp theo. từ một vài máy cho đến nhiều tập hợp máy trên khắp thế giới. 18 . Gói quan sát và đo đạc Như đã nói ở trên bộ lập lịch tác động tới tải của lưới. Ví dụ. Mỗi công việc nhỏ này là một phân mảnh trên grid. hay quản độ ưu tiên.Các gói truyền thông Một mạng grid thường có các gói giúp công việc liên lạc giữa các máy. ứng dụng cần tất cả các phân mảnh này liên lạc với nhau. Sự tính toán thông tin trên không chỉ dùng lập lịch mà nó còn được dùng để phát hiện các mẫu chung thường được sử dụng. Số liệu thống kê có thể đưa ra xu hướng cần thêm các phần cứng mới. Một phân mảnh cần liên lạc với các phần còn lại. thiết lập đường truyền. chúng ta sẽ miêu tả một vài mô hình grid với kích cỡ khác nhau. hoặc các nhà phân phối tài nguyên. Các số liệu đo đạc cũng có thể dùng cho mục đích tài chính. và gửi dữ liệu cần thiết. Trong phần này. Dự đoán tốt thì grid sẽ hoạt động hiệu quả cao hơn. Chuẩn mở Message Passing Interface (MPI) thường được dùng trong grid giúp việc truyền thông dữ liệu hiệu quả hơn. Phần mềm này đôi khi được gọi là bộ cảm ứng tải.

Hình 7 : Một mạng grid đơn giản Như hình trên. quyền hạn được yêu cầu để xem cách grid được sử dụng. Các máy này thường là một bộ phận của một tổ chức. Nhiều người gọi chúng là cụm máy tính (cluster) hơn là lưới (grid). Kiểu mạng này dùng hệ thống đồng nhất và có thể được sử dụng cho những ứng dụng chuyên môn. Vì chúng có chung hệ điều hành và phần cứng nên việc lựa chọn phần mềm là rất dễ dàng. nối vào mạng nội bộ. và chúng không yêu cầu một quyền hạn đặc biệt hay các chính sách bảo mật. Hệ thống grid sẽ phải có thành phần lập lịch. Các máy chuyên dụng phục vụ được đưa vào để tăng tốc độ vào tin cậy của dịch vụ. Cấu hình này thường được gọi là intragrid. Các máy trong mạng có thể ở các bộ phận khác nhau nhưng thường ở cùng một tổ chức. 19 . Với cấu hình này. Các dữ liệu nhạy cảm của bộ phận này được bảo vệ để tránh truy cập ở các bộ phận khác. Các vấn đề về bảo mật cũng được các tổ chức đề cập đến. tất cả giống nhau về cấu hình phần cứng và hệ điều hành. Mô hình tiếp theo bao gồm nhiều máy hỗn hợp khác nhau. sẽ có nhiều loại tài nguyên hơn. Có nhiều độ ưu tiên khác nhau ở các bộ phận hoặc ở các ứng dụng đối với từng loại tài nguyên trên grid. một mạng grid đơn giản nhất gồm một vài máy. Khi grid được mở rộng đến nhiều bộ phận khác nhau.

grid phải được thiết kế chặt chẽ để tránh xung đột. Các tài nguyên có thể được mua từ những nhà cung cấp đáng tin cậy. Trong trường hợp này. Như hình 8 dưới đây. Trong nhiều trường hợp.Mạng lưới grid có thể phát triển quy mô lớn về không gian khi các tổ chức có các bộ phận ở những thành phố hay các nước khác nhau. Mô hình này được gọi là intergrid. các kênh VPN được sử dụng để kết nối các bộ phận của tổ chức qua Internet. Mức bảo mật cao nhất được sử dụng trong mô hình này. Các đường truyền chuyên dụng được sử dụng giữa các bộ phận này. Hình 8 : Một mạng grid toàn cầu phức tạp 20 . như dự án tìm số nguyên tố lớn của GIMPS (Great Internet Mersenne Prime Search). mạng lưới có thể phát triển liên tổ chức. để thực hiện những dự án chung.

Trong các hệ thống ít tự động hơn. Phần mềm này tự động được cấu hình bởi hệ thống quản lý grid. Theo cách này. người dùng phải tự hỏi điểm quản lý để biết được thông tin cấu hình chính xác. Người sử dụng thông báo định danh (ID) của anh ta cho cơ quan chứng thực CA (Certificate Authority). Cơ quan chứng thực cần chắc chắn rằng người sử dụng là có thật.Người dùng trong mạng Grid Computing Phần này mô tả về người dùng và nhà quản trị trong grid computing. Người dùng có trách nhiệm giữ các thẻ chứng thực đã được phát. Có các hệ thống grid sử dụng chính hệ thống định danh của grid để phân biệt người sử dụng. Một vài hệ thống grid cho phép sử dụng chức năng truy vấn khi chưa đăng nhập vào hệ thống hay thậm chí người sử dụng chưa đăng ký với grid. người sử dụng có thể sử dụng truy vấn và đưa lên grid các công việc cần thực hiện. 21 . Đăng nhập vào grid Hầu hết các hệ thống grid đều yêu cầu người sử dụng phải đăng nhập vào hệ thống với định danh đã được đăng ký. Khi đã đăng nhập. phần mềm grid được cung cấp cho người sử dụng để anh ta có thể cài lên máy của mình và sử dụng grid. Cách này tỏ ra thuận tiện hơn với người sử dụng. Người dùng cũng có thể hỏi người quản trị grid định danh của anh ta trên grid. Đăng ký tham gia vào grid đòi hỏi xác thực cho vấn đề bảo mật. Nó làm cho grid trông giống như một máy tính cực lớn hơn là một tập hợp các máy khác nhau. giúp tránh được vấn đề trùng lặp định danh giữa các máy. người sử dụng có thể tiến hành cài đặt rất đơn giản. Người dùng bình thường Mục này miêu tả những hoạt động trong môi trường grid dưới vai trò của một người sử dụng bình thường. CA cấp một chứng chỉ đặc biệt cho phần mềm kiểm tra định danh của người dùng. Một khi người sử dụng đã được xác thực. Tham gia vào grid và cài đặt các phần mềm Người dùng đầu tiên phải đăng ký tham gia vào grid và cài đặt các phần mềm cần thiết trên máy của anh ta.

Khi đưa các công việc lên grid người dùng phải làm ba bước. Sẽ tốt hơn nếu chúng ta dùng các hệ thống tệp mạng (networded file system) để chia sẻ dữ liệu. xem xét quá trình thực hiện. dữ liệu đầu vào và các tệp thực thi được gửi đến máy thực hiện công việc. bởi vì với các hệ thống này dữ liệu sẽ được chuyển từ trung tâm đến ứng dụng hiệu quả hơn. Đầu tiên. Thứ hai. Công cụ dòng lệnh tiện lợi khi người dùng muốn viết một đoạn kịch bản (script) thực hiện một lô công việc. Ví dụ. nếu có một số lượng lớn công việc con của một ứng dụng cần chạy nhiều lần lặp lại. Thứ ba. 22 . Nhà quản trị Mục này miêu tả những hoạt động trong môi trường grid dưới vai trò của một người quản trị. thường được thực hiện bởi một ứng dụng ở máy đã gửi công việc lên.Truy vấn và đưa công việc Người dùng có thể truy vấn grid để xem grid bận như thế nào. Khi số lượng công việc con trở nên quá lớn. công việc thu nhặt kết quả cũng có thể được phân tán ra nhiều máy khác nhau. Grid cung cấp công cụ truy vấn bằng cả dòng lệnh và đồ họa (GUIs). Khi công việc gồm nhiều công việc con khác nhau thì đòi hỏi phải thu nhặt các kết quả và tập hợp chúng lại với nhau. đưa công việc lên tài nguyên đó. người dùng muốn thực hiện đồng thời tìm kiếm tài nguyên. dữ liệu có thể được sao lưu đến các máy và sử dụng lại trong lần chạy tiếp theo. các công việc được tiến hành ra sao. kết quả chạy công việc sẽ được gửi trở lại người đưa công việc lên. Vì thế cần thiết phải sắp xếp chúng để đạt được sự lưu thông nhỏ nhất trên grid. Cấu hình dữ liệu Dữ liệu được sử dụng trong các công việc ở grid có thể ở trong hay ngoài mạng grid. công việc sẽ được thực thi trên các máy. Các dữ liệu này có thể tạo nên lưu lượng giao thông rất lớn. hay để tìm kiếm các tài nguyên. Ví dụ. và kết quả đưa ra.

Những nhiệm vụ cơ bản của cơ quan chứng thực là:  Xác định định danh cửa người yêu cầu chứng thực.Cài đặt Đầu tiên. Trong nhiều trường hợp. Cần dự đoán được các sự cố có thể xảy ra và đưa hệ thông hoạt động trở lại khi gặp các sự cố này. các phần mềm trong grid cần được cấu hình về địa chỉ và định danh. Chứng thực Cần phải đảm bảo mức bảo mật cao nhất cho grid vì grid được dùng để chạy các công việc chứ không chỉ là để chia sẻ dữ liệu.  Hoạt động đăng nhập Cơ quan chứng thực dùng hệ thống mã hóa khóa công khai. nhà quản trị cần đưa thông tin của người dùng đến các máy khác trên mạng. hay các cuộc tấn công vào mạng grid. Các máy trong mạng phải được cấu hình có khả năng khôi phục hệ thống khi gặp hỏng hóc. người nhận dùng 23 . bảo dưỡng tên và chứng thực của người dùng. Người dùng này và thẻ chứng thực của họ được đưa vào danh sách người dùng trên hệ thống grid.  Bảo vệ máy chủ của cơ quan chứng thực. khóa công khai và khóa bí mật. Một tổ chức có thể chọn cơ quan chứng thực ở ngoài và tự xử lý nó. Quản lý người dùng Một trong các chức năng của nhà quản trị là quản lý người dùng. Chính vì thế nó có thể nảy sinh virus. Sau khi đã cài đặt. Trong hệ thống này. lưu trữ chứng thực. Khóa bí mật được người dùng giữ kín và không để lộ cho ai khác biết. Các dữ liệu quan trọng cần được theo dõi và sao lưu thường xuyên. xóa. Khi một người dùng đăng nhập vào hệ thống. Nhà quản trị có nhiệm vụ quản lý quyền hạn của những người dùng tren mạng. Các máy này phải được kết nối với băng thông đủ rộng tới các máy khác trên mạng grid. khóa được đi theo cặp.  Phân phát. định danh của họ phải được thông qua cơ quan chứng thực CA. Nhà quản trị có mọi quyền để quản lý grid. Một người có thể mã hóa dữ liệu và người kia có thể giải mã nó. hệ thống grid phải được cài đặt trên các máy đã được cấu hình. Khi người dùng dùng khóa bí mật để mã hóa.  Duy trì. Cơ quan chứng thực (Certificate Authority) là một phần rất quan trọng trong bảo mật của grid. “ngựa thành Troa”.

sử dụng độ ưu tiên và các chính sách để lập lịch. như bộ lập lịch. Nếu người gửi dùng mã hóa kép với cả khóa công khai và mã bí mật. Người nhận dùng khóa bí mật của anh ta để giải mã. cũng như điều chỉnh độ ưu tiên và chính sách để đạt được kết quả chung tốt nhất. Nhà quản trị có trách nhiệm cấu hình các ưu tiên hay chính sách để đạt được kết quả chung tốt nhất. giảm lãng phí phần cứng. Sử dụng các thống kê có thế giúp dự đoán được xu hướng cần thêm phần cứng. Quản lý tài nguyên Một nhiệm vụ khác của nhà quản trị là quản lý các tài nguyên trong mạng grid. Một vài gói phần mềm grid. 24 . Tuy nhiên ai nhận được dữ liệu cũng có thể giải mã nó khi biết khóa công khai. thì tạo ra sự bảo mật tốt hơn. sau đó dùng khóa công khai của người gửi để giải mã lần hai.khóa công khai để giải mã nó. và quản lý hệ thống tài chính. theo dõi tài nguyên. Nó bao gồm thiết lập các quyền sử dụng của người dùng đối với tài nguyên.

tổ chức ảo chia sẻ cho nhau các tài nguyên tính toán và cơ sở dữ liệu nhằm mục đích giải quyết các bài toán khoa học công nghệ. Cả hai loại tổ chức ảo nói trên đều không giới hạn về không gian địa lý. lôgic.Một số chuẩn trong môi trường Grid Tính toán mạng lưới có thể mô tả bằng nhiều khái niệm và có thể được định nghĩa theo nhiều cách khác nhau. Toronto. Trong chương này chúng ta sẽ xem xét một số chuẩn cơ bản được áp dụng cho tính toán mạng lưới. Canada năm 2002. Đối với Grid. Trong kiến trúc dịch vụ Web. Ý tưởng này bắt nguồn từ thực thế rằng hai công nghệ Grid và dịch vụ Web tuy có cách tiếp cận khác nhau như cùng chung một mục đích: "Chia sẻ tài nguyên và hỗ trợ tạo ra các tổ chức ảo". và qui trình giao dịch thương mại giữa các thành viên tham gia vào thương mại điện tử (một dạng tổ chức ảo).Open Grid Services Architecture (OGSA) Kiến trúc dịch vụ Grid mở là một mở rộng của kiến trúc tính toán mạng lưới nhằm kết hợp với kiến trúc dịch vụ Web (Web service). Điểm khác biệt chính đó là "dịch vụ Web" nhắm tới các dịch vụ liên tục (persistent). và hoạt động với nhau đòi hỏi phải có các chuẩn. điều này được thực hiện bằng cách chia sẻ dữ liệu. tái tạo và tập hợp dữ liệu • Khả năng phát hiện tài nguyên • Quản lí tài nguyên Có nhiều chuẩn khác nhau cho mỗi yêu cầu kể trên. Sau đây là một số chuẩn tiêu biểu. Để có thể thống nhất và làm cho các tài nguyên trên nhiều nền tảng phần cứng. Khái niệm này lần đầu tiên được đưa ra tại diễn đàn Grid toàn cầu (Global Grid Forum). được phát triển bởi nhóm Globus và IBM. 25 . phần mềm khác nhau có thể cùng tồn tại. Nhưng về cơ bản nó cung cấp khả năng tính toán phân tán và tận dụng các tài nguyên. trong khi Grid hỗ trợ dịch vụ tạm thời (transient). Một số yêu cầu với tính toán mạng lưới: • Hỗ trợ việc thực thi chương trình trên nhiều nền tảng khác nhau • Cơ sở hạ tầng an toàn • Khả năng di chuyển. Kiến trúc dịch vụ Grid mở .

OGSI cũng đưa ra ngôn ngữ mô tả dịch vụ Web – Web serivce definition Language (WSDL) để mô tả các giao diện. Các giao diện và hoạt động đó cùng với các cơ chế khác của OGSI về khởi tạo và phát hiện dịch vụ Grid cung cấp một nền tảng cho môi trường Grid. các giao diện và hoạt động này xác định cách thức mà một client tương tác với dịch vụ Grid. Hình 9: Kiến trúc OGSA Cơ sở hạ tầng của dịch vụ Grid mở . OGSI định nghĩa các giao diện cụ thể cho các dịch vụ thực thi các chức năng được định nghĩa trong OGSA.Một số quy ước đã được mô tả trong tài liệu đặc tả dịch vụ Grid bao gồm: • Cách thức tạo và khai thác dịch vụ Grid • Cách thức đặt tên và tham chiếu tới các thể hiện (instance) của dịch vụ Grid. 26 . quản lí và trao đổi thông tin giữa các dịch vụ Grid.Open Grid Service Infrastructure (OGSI) OGSI là một mở rộng của OGSA. Hơn nữa OGSI còn định ra các cơ chế cho việc khởi tạo. Theo OGSI thì dịch vụ Grid là một dịch vụ Web mà tuân theo một tập các giao diện và hoạt động. • Cách mô tả các giao diện cho dịch vụ Grid.

Về cơ bản WSRF định ra một tập các đặc tả để mô tả mối quan hệ giữa các dịch vụ Web (thông thường là không có trạng thái) và các tài nguyên trạng thái (stateful resources).Hình 10: Các thành phần trong OGSI GridFTP GridFTP là một giao thức truyền dữ liệu an toàn và tin cậy. 27 . WSRF cung cấp khả năng lưu trạng thái cho dịch vụ Web. GridFTP sử dụng khả năng bảo mật cơ bản của Grid trên cả hai kênh: kênh điều khiển và kênh dữ liệu. có băng thông lớn. Cơ chế tài nguyên của dịch vụ Web – Web service resource framework. Các tài liệu đặc tả về giao thức GridFTP có thể được tìm thấy trong diễn đàn Grid toàn cầu.Sử dụng nhiều kênh dữ liệu để truyền song song. Bằng việc kết hợp giữa các dịch vụ Web chuẩn với sự quản lí các tài nguyên trạng thái. truyền cho bên thứ ba…Do vậy GridFTP có thể sử dụng để chuyển những tệp (đặc biệt là những tệp có dung lượng lớn) trong mạng một cách hiệu quả và tin cậy. truyền từng phần tệp. Giao thức GridFTP dựa trên nền tảng của giao thức FTP với những mở rộng cho phù hợp với môi trường Grid. với hiệu xuất cao và tối ưu cho mạng diện rộng.

bao gồm một số chuẩn khác như: • Tài nguyên • Vòng đời của tài nguyên • Các thuộc tính của tài nguyên • Nhóm dịch vụ • Các lỗi • Các thông báo • Các chủ đề Hình sau đây mô tả mối liên hệ giữa dịch vụ Web. Một số chuẩn quan trọng nhất đó là • Ngôn ngữ Đánh dấu Mở rộng – eXtensible Markup Language (XML): là một ngôn ngữ đánh dấu với mục đích chung được tổ chức W3C đề nghị. 28 . WSRF và OGSA Hình 11: mối liên hệ giữa dịch vụ Web. WSRF và OGSA Một số chuẩn của dịch vụ Web Do sự giống nhau giữa dịch vụ Grid và dịch vụ Web mà các chuẩn của dịch vụ Web cũng được áp dụng cho dịch vụ Grid.WSRF là một chuẩn chung.

29 . Nhằm mô tả các giao diện chung. cách giao tiếp. tên gọi. giúp người sử dụng dễ dàng tìm thấy chúng trên mạng. • Giao thức truy cập đối tượng đơn giản . SOAP được phát triển dựa trên chuẩn XML. các giao thức và định dạng gói tin của dịch vụ Web. Cũng như một số chuẩn liên quan với công nghệ dịch vụ Web – Web service. hoạt động như một dịch vụ đăng ký và định vị có khả năng xác nhận và phân loại các ứng dụng dịch vụ Web. Discovery and Integration (UDDI): chuẩn dịch vụ Tích hợp.Web Service Description Language (WSDL): là một ngôn ngữ được xây dựng dựa trên định dạng ngôn ngữ XML. • Universal Description. Tổng kết chương Trong chương này đã giới thiệu một cách tổng quát một số chuẩn đã được đề xuất và sử dụng trong môi trường tính toán mạng lưới và các dịch vụ Grid.Simple Object Access Protocol (SOAP): giao thức mạng cho phép các đối tượng phần mềm được phát triển bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng hoàn toàn khác biệt có thể tương tác với nhau. Khám phá và Mô tả Toàn cầu.• Ngôn ngữ mô tả dịch vụ Web .

hay EJB. Điều này cho phép ta có thể xây dựng các ứng dụng ở phạm vi toàn cầu dùng Internet làm phương tiện truyền thông – do không bị các hạn chế về tường lửa. RMI. trong khi dịch vụ Web được viết bằng Java và chạy trên hệ điều hành Linux. giả sử một công ty có nhiều cửa hàng phân bố rải rác tại nhiều thành phố. Nghĩa là. do đó cần phát triển một phần mềm tại các cửa hàng để truy xuất catalog này. Tuy nhiên danh sách các mặt hàng được bán chỉ nằm tại cơ sở dữ liệu của văn phòng trung tâm. chương trình chạy trên máy khách có thể được lập trình bằng C++ và chạy trên hệ điều hành Windows. Hình 12: dịch vụ web Ưu điểm của dịch vụ Web so với các công nghệ khác • Dịch vụ Web là độc lập với nền tảng và ngôn ngữ. Nó cho phép mở rộng các ứng dụng theo mô hình client/server. 30 . Khách hàng clients (máy tính tại các cửa hàng) sẽ liên hệ với dịch vụ Web (tại máy chủ) và gửi yêu cầu cung cấp dịch vụ (service request) về catalog.Tổng quan về dịch vụ Web Dịch vụ Web là một công nghệ tính toán phân tán giống như CORBA. Ví dụ. bởi vì nó sử dụng ngôn ngữ chuẩn XML. • Hầu hết các dịch vụ Web dùng giao thức HTTP để trao đổi thông điệp (như: thông điệp yêu cầu dịch vụ và thông điệp trả lời của dịch vụ). Danh sách này có thể được công bố (publish) thông qua dịch vụ Web gọi là ShopService. Máy chủ sẽ gửi trả lại catalog qua một đáp ứng dịch vụ (service response).

Một tính chất quan trọng của dịch vụ Web đó là nó hướng tới các hệ thống phân tán liên kết lỏng. thông báo. Đối với dịch vụ Web. Lời gọi dịch vụ Web điển hình Sơ đồ dưới đây liệt kê toàn bộ các bước liên quan tới một lời gọi dịch vụ Web hoàn chỉnh. quản lí các giao dịch. Các hệ thống phân tán liên kết chặt rất thích hợp với các ứng dụng intranet trong phạm vi một công ty. client không cần phải duy trì liên kết với dịch vụ Web cho tới khi nó thực sự cần tới dịch vụ này. • dịch vụ không phong phú: Hiện tại. vì thế nó được chọn để phát triển dịch vụ Grid. tốc độ và hiệu quả của các ứng dụng dựa trên dịch vụ web ngày càng được cải thiện. Đây chính là thế mạnh của dịch vụ Web Services. Tuy nhiên với sự tăng tốc mạnh mẽ của công nghệ máy tính điện tử. Trong khi CORBA đem lại cho ngừơi lập trình nhiều dịch vụ hỗ trợ như lưu trữ. quản lí vòng đời. các dịch vụ Web mới chỉ cung cấp một vài dạng dịch vụ cơ bản. trong khi các công nghệ khác như CORBA và EJB phát triển trên các hệ thống phân tán liên kết chặt trong đó client và server phụ thuộc vào nhau. nhưng không khả thi hoặc kém hiệu quả ở qui mô Internet.Nhược điểm khi dùng dịch vụ Web • hiệu quả không cao: Bởi vì mọi dữ liệu trao đổi với dịch vụ Web đều dùng XML nên chắc chắn sẽ cồng kềnh vào kém hiệu quả hơn so với các ứng dụng sử dụng mã nhị phân. Hình 13:Lời gọi web 31 .

• Bởi chương trình khách không chứa bất cứ thông tin về các dịch vụ Web hiện thời. nhưng cũng có thể là int getCityTemp(string cityName. ta cần phải biết cách thức gọi dịch vụ. • Server sẽ trả lời bằng một thông điệp SOAP response chứa thông tin được yêu cầu hoặc thông báo lỗi trong trường hợp sự cố hoặc yêu cầu sai. vì vậy trước hết nó phải đi tìm dịch vụ Web nào phù hợp với yêu cầu. nhiệt độ tại các thành phố). • Dịch vụ Web sẽ trả lời bằng một thông điệp sử dụng ngôn ngữ chung WSDL. Vì thế ta phải hỏi server để có được mô tả chi tiết cách gọi dịch vụ. Ví dụ. • Tuy biết được nơi cung cấp dịch vụ. Ví dụ. • Tại bước này chương trình khách sẽ thực hiện lời gọi dịch vụ bằng ngôn ngữ SOAP. ví dụ như gửi một yêu cầu SOAP request về nhiệt độ tại một thành phố nào đó. Chúng ta sẽ liên hệ với UDDI registry để hỏi về điều này. Địa chỉ một dịch vụ Web được mô tả bằng một URI (Uniform Resource Identifiers) tương tự như URL cho một trang Web. Địa chỉ dịch vụ Web Địa chỉ của dịch vụ Web cũng có dạng giống như địa chỉ trang Web. bool isFarenheit). phương thức gọi dịch vụ để lấy thông tin về nhiệt độ tại một thành phố có thể là Temperature getCityTemperature(int CityPostalCode).com/weather/us/WeatherService Kiến trúc dịch vụ Web Hình sau mô tả kiến trúc dịch vụ Web: 32 . • UDDI registry sẽ trả lời cho chúng ta biết server nào cung cấp dịch vụ mà ta cần (ví dụ như.mysite. Ví dụ như ta đang quan tâm đến nơi chứa dịch vụ Web cung cấp thông tin về nhiệt độ tại các thành phố. UDDI registry có thể trả về một URI sau cho dịch vụ Web cung cấp thông tin thời tiết tại Mỹ: http://webservices.

• Service Description : Một trong những đặc trưng của dịch vụ Web là tự mô tả (selfdescribing). toàn bộ những thông điệp này cần được trao đổi giữa client và server. Mô tả này được viết bằng ngôn ngữ đặc tả dịch vụ Web . nó sẽ tự mô tả các thao tác mà nó cung cấp cũng như cách thức gọi nó. Discovery. Một khi trong ứng dụng cho client cần gọi một dịch vụ Web. and Integration). SOAP đặc tả cách thức định dạng yêu cầu tới server cũng như cách thức mà server trả lời. • Service Invocation : Việc gọi hay yêu cầu thực thi một dịch vụ Web bao gồm việc chuyền thông điệp SOAP giữa client và server.Web Services Description Language (WSDL). Giao thức chịu trách nhiệm làm việc này là HTTP (HyperText Transfer Protocol). Nghĩa là. Ứng dụng dịch vụ Web Một ứng dụng dịch vụ Web có cấu trúc giống như một ứng dụng client/server viết bằng CORBA hay RMI. Nó thường được điều khiển bởi UDDI (Universal Description. • Transport : Cuối cùng. các lập trình viên cần phải viết một đoạn mã gọi là client stub để thực hiện công việc này (hiện nay có nhiều công cụ cho phép sinh tự động các client stub này dựa vào mô tả WSDL của dịch vụ Web đó).Hình 14: Kiến trúc dịch vụ web • Service Discovery: Phần này chịu trách nhiệm tìm kiếm các dịch vụ Web phù hợp với yêu cầu đặt ra. 33 . cũng là giao thức trao đổi trang Web truyền thống.

Kết quả sau khi thực thi dịch vụ lại được trao cho server stub để sinh ra đáp ứng tương ứng. • Nhận mô tả WSDL của dịch vụ Web này.Do đó. Server stub có thể được sinh ra từ mô tả WSDL hoặc từ các ngôn ngữ định nghĩa giao diện (như IDL). Việc lập trình cho ứng dụng trên server cũng không mấy khó khăn. ta không cần phải hiểu rõ mọi bước gọi thực thi dịch vụ Web một cách chi tiết. Ta không cần phải viết một chương trình server phân tích các yêu cầu SOAP và sinh ra các đáp ứng SOAP mà chỉ cần cài đặt các chức năng cho dịch vụ Web và sau đó sinh ra các đoạn mã cho server stub (đôi khi được gọi là skeleton) chịu trách nhiệm phân tích các yêu cầu và gửi chúng tới dịch vụ đã được cài đặt. Các bước để gọi một dịch vụ Web Hình 15:Các bước gọi dịch vụ web Giả sử ta đã định vị được dịch vụ Web mong muốn và đã sinh ra được đoạn mã client stubs từ đặc tả WSDL của dịch vụ này. Khi viết ứng dụng cho client ta chỉ cần quan tâm tới bốn sự kiện sau: • Định vị dịch vụ Web phù hợp với yêu cầu thông qua UDDI. • Chỉ cần sinh ra đoạn mã client stub một lần rồi đưa vào ứng dụng trên client. 34 . Hơn nữa cả dịch vụ và server stubs đều được quản lý bởi một module gọi là Web Service container. nhằm đảm bảo các yêu cầu HTTP tới một dịch vụ Web sẽ được chuyển tới server stub tương ứng. Tương tự chương trình bên phía server cũng đã có server stubs. • Ứng dụng sẽ sử dụng stub này mỗi khi nó gọi dịch vụ Web.

Client stub sẽ tạo ra một yêu cầu SOAP hợp lệ từ các tham số truyền tới từ ứng dụng. ưu nhược điểm. Server stub sau đó sẽ chuyển đổi yêu cầu SOAP này thành cái gì đó mà chương trình cài đặt dịch vụ hiểu. • chương trình cài đặt dịch vụ thực hiện yêu cầu được giao từ service stub. Kết quả sẽ được trao cho server stub để chuyển đổi thành một đáp ứng SOAP. Client stub nhận đáp ứng rồi chuyển đổi thành dữ liệu mà ứng dụng client có thể hiểu. • Đáp ứng SOAP này được gửi trả về client stub qua mạng dùng giao thức HTTP. Web Services container nhận yêu cầu SOAP và chuyển tới server stub. 35 . • Yêu cầu SOAP được đến server qua mạng sử dụng giao thức HTTP. các ứng dụng.• Mỗi khi cần gọi dịch vụ Web. ứng dụng nhận được kết quả từ lời gọi dịch vụ Web và tiếp tục công việc của mình. Qua đó thấy được lí do sử dụng công nghệ dịch vụ Web để phát triển dịch vụ Grid. Đây còn gọi là quá trình marshaling hay serializing. cách thức truy cập dịch vụ. Tổng kết chương Trong chương này ta đã tìm hiểu về công nghệ dịch vụ Web: kiến trúc. Quá trình này gọi là unmarshaling hay deserializing. ứng dụng client sẽ gọi client stub. • Cuối cùng.

cơ sở dữ liệu. Do đó đòi hỏi framework phải trừu tượng hóa chi tiết việc cài đặt cho một môi trường cụ thể ra khỏi sự truyền thông thực sự giữa các dịch vụ Grid. xác thực và chứng thực tài nguyên.Cơ chế tài nguyên của dịch vụ Web – Web service resource framework Môi trường Grid bao gồm một tập các tài nguyên được chia sẻ. phát hiện. Kiến trúc hướng dịch vụ (Service Oriented Architechture . Đó là vấn đề trong cơ chế truy cập. bản quyền phần mền. Các dịch vụ Grid xây dựng trên chuẩn SOA thúc đẩy sự phát trển của công nghệ dịch vụ Web. Trong chương này sẽ giới thiệu một số khái niệm cơ bản trong việc quản lí trạng thái tài nguyên trong bối cảnh của môi trường tính toán mạng lưới. Hơn nữa các tài nguyên lại được lưu trữ trên một môi trường không đồng nhất. mô tả của dịch vụ. Các tài nguyên có thể là các ứng dụng phần mềm. và phát hiện dịch vụ. băng thông mạng. Quản lí trạng thái tài nguyên trong dịch vụ Grid Dịch vụ Grid là gì Có thể hiểu một dịch vụ Grid là một giao diện dịch vụ kết hợp với một mạng luới tài nguyên. không đồng nhất đã nảy sinh các vấn đề trong việc quản lí và chia sẻ các tài nguyên này. Tài nguyên và trạng thái của tài nguyên được điều khiển và quản lí bằng các dịch vụ Grid trong một môi trường Grid. Tất cả các tài nguyên (vật lí hay logic) trong mạng tương thích với chuẩn OGSA được mô hình như là các dịch vụ Grid. không gian lưu trữ…Việc chia sẻ tài nguyên trong môi trường phân tán. Các chuẩn của dịch vụ Web đã phát triển và cho phép các giao tác với dịch vụ Web diễn ra an toàn và tin cậy. Một dịch vụ Grid có thể thao tác với nhiều tài nguyên và ngược lại một tài nguyên cũng có thể được sử dụng bởi nhiều dịch vụ Grid khác nhau. Lựa chọn công nghệ dịch vụ Web để xây dựng các dịch vụ Grid tương thích với chuẩn OGSA đã thúc đẩy sự phát triển của kiến trúc dịch vụ Web và các chuẩn của nó.SOA) là một kiến trúc thỏa mãn yêu cầu trên. 36 . Các tài nguyên có thể phải tương tác hay kết hợp với nhau tùy theo đòi hỏi của yêu cầu. Điều đó cho phép các dịch vụ Grid sử dụng các khả năng của mô hình truyền thông dịch vụ Web.

37 . • Thông báo: là cơ chế truyền thông không đồng bộ để thông báo cho các client đã đăng kí về các sự kiện cụ thể nào đó ví dụ: sự kiện về vòng đời của tài nguyên. • Quản lí vòng đời: quản lí vòng đời nhằm xác định thời gian hoạt động của tài nguyên. Chuẩn WSRF Trong phần này sẽ trình bày một số khái niệm và cơ chế chính được đề cập đến trong chuẩn WSRF. Chuẩn OGSI ra đời sớm hơn và được cài đặt trong phiên bản thứ ba của Globus Toolkit (GT3).Những yêu cầu của dịch vụ Grid theo chuẩn OGSA Tất cả các dịch vụ Grid đều phải tuân theo đặc tả yêu cầu của OGSA để có thể quản lí trạng thái của các tài nguyên phân tán một cách an toàn và tin cậy. sự kiện về sự thay đổi của các thuộc tính của tài nguyên… • Hiện nay có hai chuẩn để cài đặt dịch vụ Grid tương thích với chuẩn OGSA đang tồn tại đó là • Cơ sở hạ tầng của dịch vụ Grid mở . • Đăng kí và phát hiện dịch vụ: đây là một tập các thao tác liên quan tới khả năng tìm kiếm thể hiện của dịch vụ Grid và các thông tin về thời gian triển khai. thời gian đó có thể hết hạn sau một khoảng thời gian hay ngay lập tức. thời gian chạy của chúng. Chuẩn WSRF đang dần thay thế chuẩn OGSI trong việc cài đặt các dịch vụ Grid trên môi trường mạng lưới. Chuẩn WSRF ra đời muộn hơn và được cài đặt trong phiên bản thứ tư của Globus Toolkit (GT4). Thể hiện có thể được tạo mới hoàn toàn hoặc khởi tạo lại từ trạng thái đã được lưu trữ của tài nguyên đó. • Định danh và tham chiếu duy nhất: khi có một thể hiện của tài nguyên thì môi trường Grid yêu cầu có một tham chiếu duy nhất trên mạng tham chiếu tới tài nguyên và các thông tin để có thể tương tác với thể hiện đó thông qua dịch vụ Grid. Một số yêu cầu chính mà mô hình dịch vụ OGSA đòi hỏi dịch vụ Grid tương thích phải cung cấp là: • Khởi tạo tài nguyên: nghĩa là có thể khởi tạo các thể hiện của các tài nguyên gắn với dịch vụ Grid theo một thao tác nào đó.Open Grid Service Infrastructure (OGSI) • Cơ chế tài nguyên của dịch vụ Web – Web service resource framework (WSRF).

Các thao tác mà dịch vụ cung cấp và các tài nguyên trạng thái đều được mô tả trong tệp mô tả bằng ngôn ngữ WSDL. Như vậy WSRF đã xác định một cách chung để làm việc với WS-Resource: tương tác với các thuộc tính của WS-Resource. Hình 16:WS-Resource Mỗi WS-Resource bao gồm một hoặc nhiều thuộc tính. hay nói một cách khác đó là những cách để yêu cầu lấy hoặc cập nhật giá trị của một hay nhiều thuộc tính của tài nguyên. giá trị của các thuộc tính đó là trạng thái của WS-Resource. thay đổi giá trị của các thuộc tính là thay đổi trạng thái của WS-Resource. có thể sử dụng tệp trong hệ thống tệp. Tài nguyên trạng thái có thể được thực thi bằng nhiều cách khác nhau. có một vòng đời xác định. và có thể được mô hình bằng công thức sau đây: Web service + Stateful Resource = WS-Resource Trong đó Stateful Resource (tài nguyên trạng thái) có các dữ liệu trạng thái được mô tả bằng một tài liệu bằng ngôn ngữ XML.Khái niệm WS-Resource WS-Resource là sự kết hợp giữa dịch vụ web và tài nguyên trạng thái. được biết và sử dụng bởi một hay nhiều dịch vụ web. Ví dụ: Hình dưới đây mô tả mối quan hệ giứa một dịch vụ dựng phim với tài nguyên trạng thái của nó. WSRF là một tập các đặc tả nhằm định ra một mô hình thông điệp chuẩn. các bản ghi trong cơ sở dữ liệu. hoặc theo một cấu trúc dữ liệu riêng của ứng dụng. nhóm các WSResource… 38 .

mô tả cách tương tác (lấy giá trị. mô tả cách để thay đổi. xóa thuộc tính của một WS-Resource WS-ResourceLifetime Định nghĩa xem một WS-Resource sẽ được hủy như thế nào: được container hủy tự động sau một thời 39 . thêm. các các thuộc tính này được khai báo trong tệp WSDL. thay đổi giá trị) với các thuộc tính nà y.Các thành phần trong WSRF Hình 17: Các thành phần WSRF WSRF bao gồm năm đặc tả: • WS-ResourceProperties (WSRF-RP) • WS-ResourceLifetime (WSRF-RL) • WS-ServiceGroup (WSRF-SG) • WS-Base Faults (WSRF-BF) • WS-RenewableReferences (WSRF-RR) Sau đây là bảng tóm tắt các đặc tả trên Tên đặc tả WS-ResourceProperties Mô tả Mô tả các thuộc tính của WS-Resource.

1. WS-ServiceGroup WS-Base Faults WS-Renewable References Định nghĩa cách để tạo ra tập các dịch vụ Web Định nghĩa cách xác định lỗi trong một ứng dụng dựa trên WSRF Chú thích rằng cần phải lấy tham chiếu mới khi tham chiếu cũ kết thúc.gian. 40 .1. hay được chương trình client gọi lệnh hủy khi chương trình client không cần đến WS-Resource nữa. Tổng kết chương Trong chương này đã trình bày vấn đề quản lí tài nguyên trạng thái trong dịch vụ Grid. Và các đặc tả trong chuẩn WSRF nhằm phục vụ cho việc quản lí tài nguyên.

Một tổ chức ảo có thể bao gồm nhiều tổ chức khác nhau vì vậy một ứng dụng mạng lưới có thể trải rộng trên nhiều phạm vi hành chính. Các yêu cầu về an ninh trong mạng lưới An ninh là một yêu cầu cơ bản trong thiết kế một mạng lưới. kĩ thuật và giải pháp an ninh cần thiết để xây dựng một môi trường Grid mạnh và an toàn. cơ sở hạ tầng an ninh mạng lưới phải có khả năng cùng làm việc giữa các miền trong khi vẫn giữ được sự phân cách rõ ràng của các cơ chế. Các thành phần an ninh cần thiết cơ bản đó là các cơ chế xác thực. Sau đây là một số yêu cầu về an ninh trong mạng lưới. Môi trường mạng lưới thường được các tổ chức ảo (VO) – Tổ chức ảo là một nhóm động các cá nhân. các tổ chức chia sẻ tài nguyên với nhau . chứng thực. Khả năng cùng làm việc: các dịch vụ mạng lưới có thể trải rộng trên nhiều miền. Mỗi một phạm vi này có thể có những yêu cầu công việc cũng như các chính sách khác nhau. cung cấp cơ chế để nhận biết một người dùng của miền này trong một miền khác. - 41 . bảo mật của quá trình sử lí dữ liệu trong mạng lưới sẽ có nguy cơ rủi ro cao. Trên cơ sở đó mở rộng và cung cấp các dịch vụ an ninh mới. bảo mật các trao đổi giữa các máy tính trong mạng grid. môi trường nền.An ninh trong mạng Grid Một câu hỏi thường được đặt ra khi đề cập đến môi trường mạng lưới đó là tính an toàn của mạng lưới đó. Do vậy các thách thức về an ninh trong môi trường mạng lưới đó là: Khả năng tích hợp: cơ sở hạ tầng an ninh mạng lưới phải có khả năng tích hợp được với các cơ sở hạ tầng an ninh đã tồn tại sẵn trên môi trường chủ.sử dụng để kết hợp việc chia sẻ và quản lí tài nguyên. Nếu thiếu đi chức năng đó sự toàn vẹn. môi trường chủ do đó cần phải có khả năng tương tác với nhau để cho phép trao đổi thông điệp trong các miền cũng như cho phép mỗi thành viên xác định chính sách an ninh được sử dụng trong các hội thoại an toàn. các nhóm. chính sách an ninh của các tổ chức (cả tổ chức ảo và tổ chức thật). Để đạt được điều đó. Trong chương này sẽ đề cập đến một số vấn đề. Như vậy cơ sở hạ tầng an ninh của mạng lưới phải thỏa mãn những chính sách an ninh cục bộ của mỗi tổ chức cũng như các chính sách an ninh của tổ chức ảo đề ra.

người cung cấp dịch vụ xác định và thi hành các chính sách riêng tư.- Mối quan hệ tin cậy: một yêu cầu dịch vụ mạng lưới có thể trải rộng trên nhiều miền an ninh. Do đó đòi hỏi phải thiết lập mối quan hệ tin cậy giữa các miền. Đăng nhập một lần (single logon): Khả năng một người dùng đã đăng nhập không phải đăng nhập lại khi truy cập tới các tài nguyên mạng lưới khác. đồng nghĩa với việc chuyển cơ chế xác thực. Trao đổi chính sách (policy exchange): cho phép sự thỏa thuận về an ninh giữa người dùng dịch vụ và người cung cấp dịch vụ dựa trên chính sách an ninh. Vấn đề thiết lập mối quan hệ tin cậy càng trở nên phức tạp với các dịch vụ mạng lưới tạm thời. Bảo mật (confidentiality): khả năng bảo mật nội dung trên đường truyền và trong các bộ phận của mạng lưới (lưới tương thích với chuẩn OGSA). Riêng tư (privacy): cho phép người sử dụng. Ủy thác (delegation): khả năng cung cấp một cơ chế ủy thác các quyền truy cập của một người dùng tới các dịch vụ trong khi vẫn đảm bảo các quyền truy cập được ủy thác được giới hạn cho các nhiệm vụ được thực hiện trong sự giới hạn của chính sách an ninh. Do tính chất động của môi trường mạng lưới nên không thể thiết lập được mối quan hệ tin cậy giữa các điểm cuối (end-to-end) trước khi mà ứng dụng được chạy. - - 42 . Ở mức độ tổng thể các yêu cầu an ninh mạng lưới có thể được xác định như sau: Xác thực (authentication): khả năng cung cấp một giao diện để có thể gắn vào một cơ chế xác thực khác. Toàn vẹn thông tin (Message integrity): Đảm bảo rằng những thay đổi trái phép nội dung thông tin có thể được xác định tại nơi nhận. Thời gian tồn tại của chứng nhận người dùng (credentials) và gia hạn chứng nhận: khả năng làm mới các chứng nhận của người dùng nếu thời gian hoàn thành của một hoạt động của một ứng dụng nào đó lớn hơn thời gian tồn tại của các chứng nhận người dùng đó. Chứng thực (authorization): khả năng kiểm soát sự truy cập tới các bộ phận của mạng lưới dựa trên các chính sách về quyền hạn của người dùng.

quản lí chính sách… Vượt qua tường lửa (firewall traversal): khả năng đi qua tường lửa mà không phải thỏa hiệp với các chính sách điều khiển cục bộ của tường lửa. Có thể điều khiển (manageability): yêu cầu này chủ yếu liên quan đến các vấn đề về quả lí dịch vụ an ninh: quản lí nhận dạng. 43 .Và các dịch vụ an ninh mà GSI cung cấp. Đảm bảo (assurance): là chất lượng của mức độ bảo đảm an ninh.- Bản ghi an toàn (Secure logging): là cơ sở cho việc thừa nhận và kiểm định cho phép các dịch vụ đánh nhãn thời gian và ghi lại nhiều loại thông tin mà không làm gián đoạn hay thay đổi thông tin của bên đối địch. Bảo vệ cơ sở hạ tầng OGSA: bảo vệ các thành phần lõi của OGSA - Sơ đồ dưới đây cung cấp cái nhìn tổng thể các thành phần của một mô hình an ninh mạng lưới để giải quyết các yêu cầu đề ra ở trên. Hình 18: mô hình an ninh mạng lưới Cơ sở hạ tầng an ninh của mạng lưới Trong phần nãy sẽ trình bày những cơ chế cơ bản được sử dụng Cơ sở hạ tầng an ninh mạng lưới – Grid Security Infrastructure (GSI) – được cung cấp bởi Globus Toolkit.

Truy cập vào mạng lưới Để có thể thiết lập một môi trường mạng lưới sử dụng các thành phần của GSI, ta cần tạo ra một tập các khóa cho mã hóa công khai, và yêu cầu chứng nhận từ Certificate Authority (CA) và sao chép khóa công khai của CA. Hình sau đây mô tả từng bước quá trình thiết lập truyền thông trong GSI.

-

bước 1: sao chép khóa công khai của CA về máy sẽ cài đặt GSI bước 2: tạo khóa bí mật và yêu cầu chứng nhận bước 3: gửi yêu cầu chứng nhận cho CA (qua email hay qua một đường truyền tin cậy khác)

-

bước 4: CA sử dụng khóa riêng của mình để kí vào yêu cầu chứng nhận và gửi lại chứng nhận đó. 19: Cơ chế bảo mật grid Hình

Khi thủ tục đó kết thúc ta sẽ nhận được một chứng nhận số đã được kí bởi CA, ta sẽ có ba tệp quan trọng trên máy cài Grid đó là: Khóa công khai của CA Khóa bí mật của máy cài Grid Chứng nhận số đối với máy cài Grid.

Xác thực và quyền hạn Để có thể đảm bảo rằng đối tác trong phiên truyền thông trong mạng lưới là đối tác tin cậy, ta có thể sử dụng chức năng xác thực của GSI. Sau khi ta đã được xác thực có thể tài nguyên mạng lưới yêu cầu phải xác định các quyền truy cập. Khi đó ta có thể sử dụng chức năng kiểm tra quyền của GSI. Sau đây ta sẽ mô tả các bước để xác thực, kiểm tra quyền của một máy A (người dùng trên máy A) bởi một máy B trong mạng lưới. Hầu hết các bước là để xác thực, trừ bước cuối cùng để kiểm tra quyền hạn. Bước 1: người dùng trên máy A hay một ứng dụng trên máy A gửi chứng nhận của nó tới máy B.

44

-

Bước 2: máy B sẽ sử dụng khóa công khai của A để trích ra tiêu đề từ chứng nhận được gửi ở bước 1

-

Bước 3: máy B sinh ra một số ngẫu nhiên và gửi lại cho máy A Bước 4: máy A nhận được số ngẫu nhiên đó rồi sử dụng khóa riêng của mình để mã hóa số nhận được và gửi kết quả lại cho B.

-

Bước 5: máy B giải mã nhận được kết quả là một số, rồi kiểm tra số này với số đã sinh ra ở bước 3. Nếu 2 số này là bằng nhau thì máy B đã biết rằng chứng nhận mà nó nhận được đúng là của người dùng trên máy A. Vì chỉ có anh ta mới có khóa bí mật của mình.

-

Bước 6: chứng nhận đã được xác thực tại máy B, và tiêu đề của xác thực được map tương ứng với một tên người dùng trên máy B. Tiêu đề ở dạng tên phân biệt (distinguished name) giống như: “/O=Grid/O=Globus/OU=hostA.grid.com/CN=name”. Tiều đề này được sử dụng để xác định định danh của người dùng trong môi trường mạng lưới. Người dùng được xác định từ tiêu đề sẽ được máy B kiểm tra quyền như một người dùng trên máy B.

Tổng kết chương Trong chương này đề cập đến vấn đề cơ sở hạ tầng an ninh trong mạng lưới, các yêu cầu về an ninh trong mạng lưới. Và một cài đặt của cơ sở hạ tầng an ninh trong môi trường mạng lưới - GSI được cài đặt trong Globus Toolkit.

45

Các thành phần của Globus Toolkit 4.0
Bộ công cụ Globus Toolkit được phát triển bởi Globus Alliance (http://www.globus.org) là phần mềm mã nguồn mở, một công cụ để xây dựng các hệ thống và chương trình grid. Đã có rất nhiều công ty và tổ chức sử dụng công cụ Globus Toolkit như là nền tảng và tiêu chuẩn cho việc phát triển công nghệ Grid computing. Hiện nay, phiên bản mới nhất của Globus Toolkit là 4.0. Bộ công cụ Globus Toolkit không chỉ chứa các thành phần làm nền tảng cho một môi trường grid mà còn bao gồm các công cụ hữu ích cho việc phát triển các chương trình grid. Chương này mô tả các thành phần chính của Globus Toolkit 4.0.

Tổng quan về Globus Toolkit 4.0
Bộ công cụ Globus Toolkit 4.0 là tập hợp các thành phần mã nguồn mở, cung cấp nền tảng cho môi trường phát triển và các ứng dụng Grid computing. Phiên bản 4 của bộ công cụ là phiên bản đầu tiêu hỗ trợ dịch vụ Web - WSRF (Phiên bản 3 hỗ trợ OGSI, còn phiên bản 2 thì không hỗ trợ các chuẩn trên). Và được chia ra hai phần: Một thành phần là nền tảng cho dịch vụ Web, một thành phần là nền tảng cho các dịch vụ khác. Globus Tookit 4.0 cung cấp các thành phần được chia theo các danh mục sau: • Các thành phần thường trực • Các thành phần bảo mật • Các thành phần quản lý dữ liệu • Các dịch vụ kiểm tra và khám phá thông tin • Các thành phần quản lý thi hành

Các thành phần thường trực
Globus Toolkit 4.0 chứa các thành phần thường trực. Thành phần thường trực là thành phần bao gồm các thư viện và công cụ làm cốt lõi cho mạng Grid computing và là nền tảng cho các thành phần khác. Các thành phần thường trực bao gồm: Java WS Core, C WS Core, Python WS Core.

46

Java WS Core còn cung cấp các thư viện và công cụ cho việc phát triển các dịch vụ WSRF. Hình 6. Các thành phần đó trở thành nền tảng cho một số dịch vụ trong Grid computing. Hình 20: Mối quan hệ giữa Java WS Core và các dịch vụ trong Grid computing C WS Core C WS Core bao gồm các API và công cụ thi hành các chuẩn WSRF và WSNotification trên nền ngôn ngữ C. Phần này giới thiệu khái quát một số thành phần bảo mật trong GT4. Ngoài ra.2 thể hiện mối quan hệ giữa Java WS Core và các dịch vụ khác. 47 .0 cung cấp một số cách thức bảo mật trong các thành phần bảo mật. Do đó. Python WS Core Python WS Core bao gồm các API và công cụ thi hành các chuẩn WSRF và WS-Notification trên nền ngôn ngữ Python. Các thành phần bảo mật Bảo mật là vấn đề rất quan trọng trong môi trường Grid computing. Globus Toolkit 4. Thành phần này còn gọi là pyGridWare.Java WS Core Java WS Core bao gồm các API và công cụ thi hành các chuẩn WSRF và WSNotification trên nền ngôn ngữ Java.

48 . nó cung cho phép truyền các tệp giữa các hệ thống mà không cần phải nhập mật khẩu và ID người dùng. cần xác lập proxy bằng lệnh grid-proxy-init. Chúng tôi sẽ sử dụng SimpleCA khi xây dựng môi trường Grid computing. Thẩm định và cấp phép Pre-WS Thẩm định và cấp phép Pre-WS bao gồm các API và các công cụ quản lý việc thẩm định. Trước khi sử dụng GSIOpenSSH. nó hỗ trợ GridFTP. cấp phép và chứng thực. Dịch vụ uỷ quyền cho phép một người có thẩm quyền có khả năng sử dụng nhiều dịch vụ khác nhau. Dịch vụ uỷ quyền Dịch vụ uỷ quyền có khả năng uỷ quyền cho người có thẩm quyền sử dụng các dịch vụ trong một host. Một CAS server cung cấp quyền hạn đối với các tài nguyên của tất cả các thành viên trong cộng đồng.Thẩm định và cấp phép WS Trong truyền thông SOAP ở các dịch vụ Web. Globus Toolkit 4. SimpleCA SimpleCA là một công cụ chứng thực quyền hạn đơn giản.0 mở rộng khả năng bảo mật với các thông điệp (message) và truyền tải (transport) nhiều mức độ bảo mật.CAS) CAS cung cấp việc điều khiển đến các quá trình truy nhập vào các tổ chức ảo. Hiện nay. SimpleCA là công cụ được sử dụng phổ biến trong Grid computing. GSI-OpenSSH tạo một shell trên một hệ thống từ xa để chạy shell scripts hoặc để tương tác với các câu lệnh shell. tuy nhiên. Dịch vụ cấp phép cộng đồng (Community Authorization Service . GSI-OpenSSH GSI-OpenSSH là phiên bản sửa của OpenSSH với việc thêm tính năng thẩm định GSI. CAS không hỗ trợ các dịch vụ Web.

Hình 21: Mô hình truyền tệp với sự tham gia của bên thứ ba trong GridFTP Trong mô hình trên.0 cung cấp một số công cụ cho phép quản lý dữ liệu trong môi trường Grid computing.Các thành phần quản lý dữ liệu Globus Toolkit 4. Truyền Tệp tin cậy (Reliable File Transfer . bao gồm hỗ trợ việc thẩm định thông qua GSI. Client đóng vai trò như một bên thứ ba yêu cầu truyền tệp từ nốt thứ nhất sang nốt thứ hai.RFT) RFT cung cấp một giao diện dịch vụ Web cho việc truyền tải các tệp. GridFTP được mở rộng từ giao thức FTP. Hình 6. thêm vào một số tính năng mới. Một trong những tính năng quan trọng của GridFTP là khả năng truyền có sự tham gia của bên thứ ba.2 mô tả mô hình hoạt động của RFT và GridFTP. Client có thể copy tệp này sang một server khác. GridFTP GridFTP là thành phần cung cấp khả năng bảo mật và đáng tin cậy trong việc truyền tệp giữa các host trong mạng grid. 49 . tệp lưu trữ trong một server.4. Phần này sẽ giới thiệu một số dịch vụ quản lý dữ liệu trong GT4.

Hình 22: Mô hình hoạt động của RFT và GridFTP Mô hình này được mô tả như sau: • Đầu tiên, Client yêu cầu truyền một tệp từ Server A sang Server B • RFT tiếp nhận yêu cầu từ Client dưới dạng thông điệp SOAP thông qua giao thức HTTP và bắt đầu khởi tạo GridFTP. • RFT sử dụng một cơ sở dữ liệu để lưu trữ danh sách các tệp truyền và trạng thái của chúng. Ngoài ra, RFT cũng lưu các yêu cầu truyền tệp đề phòng trường hợp việc truyền tệp bị ngắt. • Cuối cùng RFT đóng vai trò như nốt thứ ba, yều cầu truyền tệp từ Server A sang Server B thông qua GridFTP. Dịch vụ mô hình hoá địa chỉ (Replica Location Service - RLS) RLS cung cấp việc truy nhập thông tin đến các địa chỉ vật lý trong mạng thông qua dữ liệu mô hình hoá địa chỉ. Nghĩa là RLS ánh xạ tất cả các địa chỉ vật lý trong mạng vào một tệp logic. Việc truy nhập đến một địa chỉ vật lý nào đó được thông qua tệp logic này. Dịch vụ sao lưu dữ liệu (Data Replication Service - DRS) DRS cung cấp một hệ thống để sao lưu các tệp trong mạng grid và đăng ký chúng với RLS. DRS sử dụng RFT và GridFTP cho việc truyền tệp. DRS cũng sử dụng RLS cho việc địa chỉ hoá và đăng ký sao lưu.

50

Các dịch vụ kiểm tra và khám phá thông tin (Monitoring and Discovery Services - MDS) MDS là dịch vụ để tập hợp, phân tán, chỉ mục… các thông tin trạng thái của các tài nguyên, dịch vụ và cấu hình hệ thống. GT4 cung cấp các thành phần WSRF và WS-Notification trong MDS, còn gọi là MDS4. Các dịch vụ được khởi tạo khi khởi động GT4 container được đăng ký thông qua MDS4. Dịch vụ tiêu biểu của MDS4 là Dịch vụ chỉ mục (Index Service). Index service Index Service là thành phần trung tâm trong việc thực thi GT4 MDS. Mọi thể hiện của Grid container đều chứa một Index Service mặc định (gọi là DefaultIndexService). Index Service tương tác với các tài nguyên trên mạng. Index Service có thể chọn lọc tài nguyên, dịch vụ, đánh chỉ mục các tài nguyên và dịch vụ đó ở các nốt trên mạng Grid và tập hợp thông tin của chúng vào một nơi.

Các thành phần quản lý thi hành
Globus Tookit 4.0 cung cấp một số công cụ nhằm mục địch quản lý thi hành trong mạng Grid. Công cụ tiêu biểu của thành phần này là WS GRAM. WS GRAM WS GRAM là một dịch vụ Grid cung cấp khả năng thực thi từ xa và quản lý trạng thái các công việc. Khi một client yêu cầu công việc, yêu cầu đó được gửi đến host ở dạng thông điệp SOAP và được quản lý bởi dịch vụ WS GRAM.WS GRAM trả lại thông tin trạng thái của công việc sử dụng WS-Notification.

51

Cài đặt và cấu hình Globus Toolkit 4.0
Chương này mô tả quá trình cài đặt và cấu hình Globus Toolkit 4.0. Chúng tôi sẽ triển khai cài đặt Globus Toolkit trong mạng gồm 3 máy tính. Các vấn đề chính trong chương này gồm có: • Download Globus Toolkit 4.0 • Các gói tin của Globus Toolkit 4.0 • Mô hình môi trường mạng Grid • Cài đặt Globus Toolkit 4.0 • Cấu hình và thử nghiệm môi trường Grid • Gỡ bỏ Globus Toolkit 4.0

Download Globus Toolkit 4.0
Globus Toolkit 4.0 là phần mềm mã nguồn mở hỗ trợ nhiều hệ điều hành. Các gói tin binary hỗ trợ môi trường Windows, Linux (SuSE Linux 9/8, Red Hat Linux 9, Fedora Core 2/3 và Debian 3.1) và Solaris 9. Việc biên dịch GT4 từ các gói tin nguồn có thể hỗ trợ thêm các hệ điều hành AIX và Mac OS X. Các thành phần phát triển trên nền tảng Java như WSRF hoặc WS Java Core đều tương thích với các hệ điều hành hỗ trợ Java, trong đó có Windows. Hiện nay, việc sử dụng hệ điều hành Linux để phát triển môi trường Grid đang trở nên phổ biến. Vì vậy, chúng tôi sử dụng hệ điều hành Fedora Core 3 để phát triển môi trường Grid. Các gói tin sử dụng là các gói tin binary. Truy cập địa chỉ: http://www.globus.org/toolkit/downloads/4.0.0/ để download các gói tin này. Gói tin GT4 cho Fedora Core 3 là: gt4.0.0-ia32-fedora3-binary-installer.tar.gz

Mô hình môi trường mạng Grid
Chúng tôi sử dụng 3 máy tính để cài đặt môi trường mạng Grid.

52

com/CN=grid user 1 Bảng 7.com Nốt mạng Grid Bảng 7. chúng tôi sử dụng SimpleCA có sẵn trong gói tin GT4.Hình 23: Mô hình mạng Grid Các máy tính bao gồm: • CA: Đây là nơi chứng thực quyền hạn.6. Tên máy CA Host A Host B Tên host ca.0 1.gridk47.2b: Phiên bản các phần mềm sử dụng 53 . nhưng chúng cùng chia sẻ một ID người dùng chung là: /O=Grid/O=Globus/OU=gridk47. Chúng tôi cài đặt gói tin GT4 cho các nốt này.0.2a mô tả các máy tính của mạng Grid. Do đó.com hosta.gridk47.5 1.0.2a Các máy tính trong mạng Grid Bảng 7.0 /usr/local/java /usr/local/ant Bảng 7. • Host A. Host A và Host B sử dụng hai tên người dùng khác nhau là auser1 và buser1.3 Thư mục chủ /usr/local/globus-4.2b mô tả phiên bản các phần mềm sử dụng Tên phần mềm Globus Toolkit 4.gridk47.com Chức năng Chứng thực quyền hạn Nốt mạng Grid Hệ điều hành Gói tin cài đặt Fedora Core 3 Gói GT4 binary Fedora Core 3 Gói GT4 binary Fedora Core 3 Gói GT4 binary hostb. Host B: là các nốt mạng Grid.0 Java SDK Apache Ant Phiên bản 4.

apache.gz -C /usr/local • Thiết lập biến môi trường cho Apache Ant. cần cài đặt các phần mềm sau: Tên phần mềm Java SDK Apache Ant Phiên bản 1. mở tệp /etc/profile và thêm đoạn sau: export JAVA_HOME=/usr/local/java export PATH=$JAVA_HOME/bin:$PATH • Để biến môi trường hoạt động.com • Cài đặt Java SDK: [root@hosta]# rpm -ivh jdk-1_5_0_06-linux-i586-rpm.Cài đặt Java SDK Để cài đặt Java SDK • Lấy gói tin Java SDK.0 Cài đặt các phần mềm yêu cầu cho Globus Toolkit 4. dùng lệnh: [root@hosta]# java --version b . mở tệp /etc/profile và thêm đoạn sau: 54 .0. đóng tệp /etc/profile và chạy lệnh: [root@hosta]# . etc/profile • Để kiểm tra Java SDK đã được cài đặt thành công. vào địa chỉ: http://java.0 a .5 1.tar.6.rpm • Để thiết lập biến môi trường cho Java SDK.3a: Các phần mềm cho Globus Toolkit 4.sun.Cài đặt Apache Ant Để cài đặt Apache Ant: • Lấy gói tin Apache Ant tài địa chỉ: http://ant.3-bin.6.org/ • Bung tệp nén Apache Ant: [root@hosta]# tar xvzf apache-ant-1.0 Trước khi cài đặt Globus Toolkit 4.Cài đặt Globus Toolkit 4.3 Bảng 7.0 Chương này mô tả thứ tự các bước để cài đặt Globus Toolkit 4.

3 export PATH=$ANT_HOME/bin:$PATH • Để biến môi trường hoạt động. việc đồng bộ hoá thời gian giữa các máy tính với nhau là rất quan trọng. buser1 Bảng 7. Nếu thời gian không được đồng bộ.0 Trước khi cài đặt Globus Toolkit.Thiết lập thời gian Trong mạng Grid computing. Bảng sau đây là những người dùng cần thêm vào trong các máy tính trên mạng. Để cấu hình NTP: • Trên máy tính CA làm NTP server. Tên host ca hosta hostb Tên người dùng globus globus. etc/profile • Để kiểm tra Apache Ant đã cài đặt thành công. auser1 globus. Ví dụ: adduser auser1 để thêm người dùng auser1. dùng lệnh: [root@hosta]# ant --version Cấu hình môi trường Linux cho Globus Toolkit 4.0 # local clock driftfile /etc/ntp/drift • Thực hiện tương tự với 2 máy Host A và Host B: 55 . chúng tôi thiết lập time server là NTP cho môi trường Grid của mình và thiết lập thời gian cho tất cả các máy tính trong hệ thống. chỉnh sửa tệp: /etc/ntp. khi dùng chứng thực GSI sẽ xảy ra lỗi.3b: Danh sách người dùng trên các máy tính b.conf. a-Thêm tài khoản người dùng Trong Fedora. cần cấu hình một số thứ trong môi trường Fedora Core 3 đang sử dụng trên các máy tính trong mạng. Do đó. đóng tệp /etc/profile và chạy lệnh: [root@hosta]# . sử dụng lệnh: adduser để thêm một người dùng mới.6.1.127. bỏ comment 2 dòng dưới đây bằng cách bỏ ký từ # đầu dòng: server 127.export ANT_HOME=/usr/local/apache-ant-1.

cầu hình ntp deamon bằng cách dùng lệnh: [root@hosta]# chkconfig ntpd -on • Bắt đầu chạy dịch vụ ntp [root@hosta]# service ntpd start • Để kiểm tra thời gian đã được đồng bộ hay chưa. dùng lệnh ntpq.Thiết lập tường lửa Ở đây cúng tôi không thiết lập tường lửa.gridk47.0.org/toolkit/downloads/4.262 c. Nếu có dấu sao (*) đằng trước tên host thì cấu hình NTP đã thành công: [root@hosta]# ntpq -p remote refid st t when poll reach delay offset jitter ========================================== *ca. vào địa chỉ: http://www.tar.0.0 Để cài đặt Globus Toolkit 4. bung tệp nén binary: [globus@hosta]$ tar xvzf gt4.com LOCAL(0) 6 u 516 1024 377 0. • Lấy gói tin binary.gz \ -C /tmp 56 .931 -2. Nếu thiết lập tường lửa. cần phải mở các cổng TCP sau đây để lắng nghe các dịch vụ và thành phần của Globus Toolkit.0-ia32-fedora3-binary-installer.server (địa chỉ IP của CA) # time server driftfile /etc/ntp/drift • Trên tất cả các máy.258 0. chúng tôi sử dụng gói tin Binary cho Fedora Core 3. Cổng TCP 2811 8080 8443 Các thành phần của GT4 GridFTP Globus container (chế độ không bảo mật) Globus container (chế độ bảo mật) Bảng 7.0.globus.0/ • Vào người dùng globus.3c: Các cổng TCP cần mở khi thiết lập tường lửa Cài đặt Globus Toolkit 4.

/usr/local/java/j2sdk1..• Thiết lập biến môi trường cho thư mục chứa Globus: [globus@hosta]$ export GLOBUS_LOCATION=/usr/local/globus-4.0.6./configure --prefix=$GLOBUS_LOCATION checking for javac.log cd gpt-3.5.0.status config..0 ..0/bin/javac checking for ant.status: creating fork.0 • Thay đổi quyền hạn của thư mục này cho người dùng globus: [globus@hosta]$ su Password: [root@hosta]# mkdir $GLOBUS_LOCATION [root@hosta]# chown globus:globus $GLOBUS_LOCATION [root@hosta]# exit exit [globus@hosta]$ Cấu hình và cài đặt Globus Toolkit 4.status: creating Makefile [globus@hosta]$ make 2>&1 | tee build.0..3/bin/ant configure: creating ./build_gpt build_gpt ====> installing GPT into /usr/local/globus-4.(Bỏ qua thông tin) config.0/etc/globus_packages /usr/local/globus-4.2autotools2004 && OBJECT_MODE=32 . /usr/local/apache-ant-1. mô tả qua các bước sau: [globus@hosta]$ cd /tmp/gt4.0/sbin/gpt-postinstall .pm 57 .0.0/etc/gpt/packages /usr/local/globus-4..0.0.. (Bỏ qua thông tin) [globus@hosta]$ make install ln -s /usr/local/globus-4..0-ia32-fedora3-binary-installer [globus@hosta]$ ..0./config.

cần cấu hình các thành phần sau: • Cấu hình các biến môi trường • Cấu hình bảo mật • Cấu hình Java WS Core • Cấu hình và kiểm tra GridFTP Cấu hình các biến môi trường Để tất cả các người dùng đều có thể sử dụng các biến môi trường của Grid. dùng lệnh setup-simple-ca và thực hiện các bước: [globus@ca]$ $GLOBUS_LOCATION/setup/globus/setup-simple-ca WARNING: GPT_LOCATION not set.sh source $GLOBUS_LOCATION/etc/globus-devel-env.sh Cấu hình bảo mật Chúng tôi sử dụng SimpleCA để cài đặt bảo mật.Cài đặt các gói tin CA Vào tài khoản người dùng globus tại máy CA Để cài đặt simpleCA. a. Để cấu hình môi trường grid..0 source $GLOBUS_LOCATION/etc/globus-user-env. cần phải cấu hình môi trường grid. mở tệp /etc/profile và thêm đoạn: export GLOBUS_LOCATION=/usr/local/globus-4. SimpleCA là thành phần được tích hợp trong Globus Toolkit 4.0. It will also generate a simple CA package that can be distributed to the users of the CA.0.0..0 CertificateAuthoritySetup This script will setup a Certificate Authority for signing Globus users certificates.Done Cấu hình và thử nghiệm môi trường Grid Sau khi cài đặt xong Globus Toolkit. Chẳng hạn: GLOBUS_LOCATION. 58 . assuming: GPT_LOCATION=/usr/local/globus-4.

0.com. • Vào tài khoản globus trên các máy Host A và Host B. (Bỏ qua thông tin) setup-ssl-utils: Complete b.gz . [default: 5 years (1825 days)]: (type the number of days)1825 Enter PEM pass phrase: (nhập mật khẩu chứng thực) Verifying . [globus@hosta]$ $GLOBUS_LOCATION/sbin/gpt-build \ 59 . This can be done by re-running this setup script.. all the certificates signed by that CA become invalid.18.. ou=simpleCA-ca.Thiết lập bảo mật cho các nốt mạng Sau khi cài đặt simpleCA. một gói tin được tạo ra để cấu hình bảo mật cho các nốt mạng khác. o=Grid Do you want to keep this as the CA subject (y/n) [y]: y Enter the email of the CA (this is the email where certificate requests will be sent to be signed by the CA): ca@gridk47.Enter PEM pass phrase: (nhập mật khẩu chứng thực) .tar. Sao các gói tin này vào mỗi nốt mạng.The CA information about the certificates it distributes will be kept in: /home/globus/.0/setup/globus/setup-simple-ca: line 250: test: res: integer expression expected The unique subject name for this CA is: cn=Globus Simple CA.globus/simpleCA/ /usr/local/globus-4. Keep in mind that once the CA certificate has expired.com The CA certificate has an expiration date.globus/simpleCA \ /globus_simple_ca_(ca_hash)_setup-0. [globus@hosta]$ scp globus@ca:/home/globus/. A CA should regenerate the CA certificate and start re-issuing ca-setup packages before the actual CA certificate expires. sao chép gói tin tại máy CA. ou=GlobusTest. Enter the number of DAYS the CA certificate should last before it expires.gridk47.

pem được tạo ra khi đang ký chứng thực tại Host A vào máy CA.pem To sign the request please enter the password for the CA key: (nhập mật khẩu chứng thực) The new signed certificate is at: /home/globus/.gz gcc32dbg [globus@hosta]$ $GLOBUS_LOCATION/sbin/gpt-postinstall • Vào tài khoản root. Ví dụ để đăng ký chứng thực cho Host A • Vào tài khoản root. vào tài khoản globus.pem -out hostcert.Đăng ký và xác nhận chứng thực người dùng Tương tự như host.pem đè lên tệp có sẵn trong thư mục /etc/grid-security tại Host A d.Đăng ký và xác nhận chứng thực host Mỗi host khi tham gia mạng grid đều phải đăng ký chứng thực và được CA xác nhận chứng thực. Sau khi cấu hình. mỗi người dùng khi tham gia vào mạng Grid đều phải đăng ký chứng thực và được xác nhận chứng thực người dùng. xác nhận chứng thực bằng lệnh: grid-casign [globus@ca]$ grid-ca-sign -in hostcert_request.globus_simple_ca_(ca_hash)_setup-0. yêu cầu đăng ký chức thực với tên host là hosta [root@hosta]# grid-cert-request -host hosta Để xác nhận chứng thực • Chép tệp /etc/grid-security/hostcert_request. • Trong máy Host A. Ví dụ để đăng ký và xác nhận chứng thực với người dùng auser1 tại Host A Để đăng ký chứng thực: 60 . thư mục /etc/grid-security được tạo ra [root@hosta]# $GLOBUS_LOCATION/setup\ /globus_simple_ca_[ca_hash]_setup/setup-gsi -default c.tar.pem • Chép đè tệp hostcert. cấu hình CA cho mỗi nốt mạng.globus/simpleCA//newcerts/01.18.

pem từ máy Host A sang máy CA. Generating a 1024 bit RSA private key ... • Tại máy CA..... Để xác nhận chứng thực người dùng • Chép tệp /home/auser1/..++++++ writing new private key to '/home/auser1/...++++++ .globus/userkey. vào tài khoản globus.pem' Enter PEM pass phrase: (nhập mật khẩu chứng thực) Verifying .g....[auser1@hosta]$ grid-cert-request Enter your name. vào tài khoản auser1 và dùng lệnh: grid-proxy-init -debug -verify 61 ..pem Chép tệp usercert..globus/usercert_request.. you will need to obtain a new certificate...pem To sign the request please enter the password for the CA key: The new signed certificate is at: /home/globus/. John Smith: grid user 1 A certificate request and private key is being created..... xác nhận chứng thực bằng cách dùng lệnh gridca-sign [globus@ca]$ grid-ca-sign -in usercert_request.. e.... If you forget your pass phrase..and is used to protect your key file.......globus/ ở Host A..globus/simpleCA//newcerts/02.pem -out usercert.. • Để kiểm tra người dùng đã được chứng thực.....Enter PEM pass phrase: (nhập lại mật khẩu chứng thực) .pem đè lên tệp đã có sẵn tại thư mục /home/auser1/.. You will be asked to enter a PEM pass phrase. This pass phrase is akin to your account password...

. dùng lệnh: grid-mapfile-add-entry [root@hosta]# grid-mapfile-add-entry -dn \ "/O=Grid/OU=GlobusTest/OU=simpleCAca.com/CN=grid user 1 Enter GRID pass phrase for this identity: Creating proxy ..com/CN=grid user 1" -ln auser1 Modifying /etc/grid-security/grid-mapfile .++++++++++++ Done Proxy Verify OK...... e..gridk47.com/CN=grid user 1 • Vào tài khoản root.. ánh xạ tên người dùng này với tên người dùng local..Ánh xạ người dùng local với người dùng grid Globus Toolkit 4..com/OU=gridk47.gridk47.pem User Key File: /home/auser1/..globus/usercert. • Để lấy tên người dùng được xác thực grid.com/OU=gridk47.... dùng lệnh grid-cert-request..gridk47....++++++++++++ .pem Trusted CA Cert Dir: /etc/grid-security/certificates Output File: /tmp/x509up_u511 Your identity: /O=Grid/OU=GlobusTest/OU=simpleCAca.0 yêu cầu ánh xạ giữa người dùng được xác thực grid với người dùng local..com/OU=gridk47....... /etc/grid-security/grid-mapfile does not exist. Attempting to create 62 .globus/userkey... [auser1@hosta]$ grid-cert-info -subject -f /home/auser1/.[auser1@hosta]$ grid-proxy-init -debug -verify User Cert File: /home/auser1/.globus/usercert.pem /O=Grid/OU=GlobusTest/OU=simpleCAca.

1..103:8080/wsrf/services/With the following services: [1]: http://192.gridk47.com/OU=gridk47. 63 .1. (Bỏ qua thông tin) [51]: http://192. Starting SOAP server at: http://192. • Sau khi tiến trình hoàn thành. mở tệp /etc/grid-security/grid-mapfile "/O=Grid/OU=GlobusTest/OU=simpleCAca. thực hiện như sau: • Vào tài khoản globus./etc/grid-security/grid-mapfile New entry: "/O=Grid/OU=GlobusTest/OU=simpleCAca..com/CN=grid user 1" auser1 (1) entry added • Để xem thông tin người dùng được ánh xạ.com/OU=gridk47. xuất hiện thông điệp như sau: .168..168..103:8080/wsrf/services/DelegationTestService .com/CN=grid user 1" auser1 • Để kiểm tra tệp ánh xạ.1.. dùng lệnh: grid-mapfile-check-consistency [root@hosta]# grid-mapfile-check-consistency Cấu hình Java WS Core Để kiểm tra Java WS Core đã được cài đặt thành công.103:8080/wsrf/services/TriggerFactoryService [2]: http://192.gridk47.168.168. thực hiện lệnh: globus-start-container hoặc globus-start-container –nosec nếu chạy ở chế độ không bảo mật.103:8080/wsrf/services/ManagedJobFactoryService .1..

Cấu hình và kiểm tra GridFTP Phần này mô tả việc cài đặt và thử nghiệm với GridFTP a.0/sbin/globus-gridftp-server server_args = -i log_on_success += DURATION nice = 10 disable = no } • Khởi động lại xinetd daemon: [root@hosta]# service xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] b.0.0.0.0/lib server = /usr/local/globus-4.0 env += LD_LIBRARY_PATH=/usr/local/globus-4.Thử nghiệm GridFTP Tiến hành các bước thử nghiệp GridFTP 64 .Cài đặt GridFTP • Để cài đặt GridFTP. gán dịch vụ GridFTP với tên gsiftp và cổng TCP là 2811 bằng cách mở tệp /etc/services và thêm dòng: gsiftp 2811/tcp # GridFTP • Tạo tệp /etc/xinetd.d/gsiftp với nội dung sau: service gsiftp { instances = 100 socket_type = stream wait = no user = root env += GLOBUS_LOCATION=/usr/local/globus-4.

0.• Vào tài khoản người dùng đã được chứng thực quyền hạn bởi máy CA. Ví dụ: auser1 • Dùng lệnh: grid-proxy-init để khởi tạo proxy • Dùng lệnh globus-url-copy <URL nguồn> <URL đích> để kiểm tra hoạt động của GridFTP Gỡ bỏ Globus Toolkit 4.0. grid security và apache ant.d/gsiftp [root@hosta]# service xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] • Xóa tài khoản người dùng globus • Xóa Java SDK 65 . thực hiện các bước sau: • Đóng WS Core nếu đang chạy • Vào tài khoản root.0 Phần này hướng dẫn gỡ bỏ bộ công cụ Globus Toolkit 4.0/ [root@hosta]# rm -rf /etc/grid-security/ [root@hosta]# rm -rf /usr/apache-ant-1.6. [root@hosta]# rm -rf /usr/local/globus-4. xoá các thư mục chứa globus tookit. Để thực hiện gỡ bỏ.3/ • Xóa các biến môi trường đã khởi tạo trong tệp /etc/profile • Xóa dịch vụ GridFTP bằng cách xóa dòng: gsiftp 2811/tcp trong tệp: /etc/services • Xóa GridFTP daemon bằng việc thực hiện lệnh: [root@hosta]# rm /etc/xinetd.

rất đơn giản. Các bước gồm có: • Định nghĩa giao diện dịch vụ. Sử dụng Java • Định nghĩa các tham số của việc triển khai. Các bước lập trình chương trình Math Service Đối với chương trình Math Service nói riêng và một chương trình dịch vụ Grid nói chung. Tham số này được cộng/trừ với "giá trị" RP.Các bước lập trình một chương trình Grid Chương này. viết tắt là RPs): • Giá trị (integer) • Phép toán cuối (string) Ta cũng thêm một phép toán "Get Value" để truy cập vào giá trị RP. đó là chương trình Math Service. Nó cho phép người dùng thực hiện các phép toán: • Cộng • Trừ Do đó. các phép toán cộng/ trừ không trả lại giá trị. sử dụng WSRF để lưu trữ các trạng thái thông tin. Sử dụng Ant 66 . Khi một tài nguyên mới được tạo ra. Chương trình được viết trên nền ngôn ngữ Java. Ngoài ra. Math Service sẽ có các thuộc tính tài nguyên (resource properties. để mô tả các bước lập trình một dịch vụ Grid trên Grid Computing. chúng tôi sẽ lấy một chương trình có sẵn. Giới thiệu sơ lược về chương trình Math Service Math Service là một dịch vụ Web đơn giản có trạng thái. nhìn chung có 5 bước lập trình. Sử dụng WSDD và JNDI • Biên dịch và tạo tệp GAR. và theo đó "phép toán cuối" RP được thay đổi bằng "ADDITION" hoặc "SUBTRACTION". Logic của Math Service rất đơn giản. mọi "giá trị" RP đều được khởi tạo bằng 0. Các phép toán cộng và trừ chỉ cần một tham số nguyên. và "phép toán cuối" RP được khởi tạo là "NONE". Sử dụng WSDL • Thực thi dịch vụ.

Giao diện dịch vụ Math Service viết bằng Java như sau: public interface Math { public void add(int a). Một giao diện dịch vụ Web cũng như dịch vụ Grid được viết trong tệp dưới dạng . Một dịch vụ Grid có nhiều người dùng tương tác. } Cách 2: Viết trực tiếp một tệp wsdl. kiểu biến và các thuộc tính tài nguyên. sau đó chuyển đổi tệp Java sang tệp wsdl. Dịch vụ tiếp nhận yêu cầu người dùng. chung tôi sẽ lần lượt mô tả các bước nêu trên Bước 1: Định nghĩa giao diện dịch vụ Bước đầu tiên để viết một dịch vụ Grid là định nghĩa giao diện dịch vụ. Giao diện dịch vụ để xác định những chức năng mà dịch vụ có thể cung cấp cho người dùng. đường dẫn và namespace của dịch vụ • Phần TYPES: Phần này định nghĩa các biến. Tệp mô tả giao diện wsdl có các thành phần sau: • Phần HEADER: Đầy là phần định nghĩa tên. Mỗi người dùng tương tác với dịch vụ bằng cách gửi yêu cầu. public void subtract(int a). trừ và lấy giá trị. xử lý yêu cầu và trả lại đáp ứng yêu cầu của người dùng đó. Sử dụng GT4 Trong phần này. giao diện dịch vụ là những phép toán mà người dùng có thể yêu cầu đến dịch vụ. Theo mô tả bài toán ở trên. Có 2 cách để viết tệp mô tả này: Cách 1: Định nghĩa giao diện bằng tệp Java. • Phần MESSAGES: Là phần định nghĩa các thông điệp mà người dùng và dịch vụ tương tác với nhau • Phần PORTTYPE: Là phần định nghĩa các phép toán mà người dùng và dịch vụ tương tác với nhau. Đây là tệp mô tả giao diện dịch vụ Web/Grid. Trong chương trình Math Service. public int getValueRP(). Giao diện dịch vụ còn gọi là port type (được viết là portType).• Triển khai dịch vụ. giao diện dịch vụ của chương trình Math Service gồm 3 phép toán: cộng.wsdl. Tệp định nghĩa giao diện của chương trình Math Service đầy đủ như sau: 67 .

w3.org/namespaces/examples/core/MathService_instance" xmlns:wsdl="http://schemas.org/wsrf/2004/06/wsrf-WS-ResourceProper location=".<?xml version="1./.org/namespaces/examples/core/MathService_instance"x xmlns:tns="http://www.REQUESTS AND RESPONSES --> <xsd:element name="add" type="xsd:int"/> <xsd:element name="addResponse"> <xsd:complexType/> </xsd:element> <xsd:element name="subtract" type="xsd:int"/> <xsd:element name="subtractResponse"> <xsd:complexType/> </xsd:element> <xsd:element name="getValueRP"> <xsd:complexType/> </xsd:element> <xsd:element name="getValueRPResponse" type="xsd:int"/> <!-..org/wsdl/" xmlns:wsrp="http://docs.org/namespaces/2004/10/WSDLPreprocessor" xmlns:xsd="http://www.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.RESOURCE PROPERTIES --> 68 .oasis-open.globus.2-dr xmlns:wsdlpp="http://www..org/2001/XMLSchema"> <wsdl:import namespace="http://docs.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.globus.globus.oasis-open.globus.org/namespaces/examples/core/MathService_instance" xmlns:tns=http://www.2-dra xmlns:wsrpw="http://docs.w3.wsdl" /> <!— T Y P E S --> <types> <xsd:schema targetNamespace="http://www.xmlsoap.0" encoding="UTF-8"?> <definitions name="MathService" targetNamespace="http://www./wsrf/properties/WS-ResourceProperties.org/2001/XMLSchema"> <!-.oasis-open.org/namespaces/examples/core/MathService_instance xmlns:xsd="http://www.globus.

<xsd:element name="Value" type="xsd:int"/> <xsd:element name="LastOp" type="xsd:string"/> <xsd:element name="MathResourceProperties"> <xsd:complexType> <xsd:sequence> <xsd:element ref="tns:Value" minOccurs="1" maxOccurs="1"/> <xsd:element ref="tns:LastOp" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </types> <!— M E S S A G E S --> <message name="AddInputMessage"> <part name="parameters" element="tns:add"/> </message> <message name="AddOutputMessage"> <part name="parameters" element="tns:addResponse"/> </message> <message name="SubtractInputMessage"> <part name="parameters" element="tns:subtract"/> </message> <message name="SubtractOutputMessage"> <part name="parameters" element="tns:subtractResponse"/> </message> <message name="GetValueRPInputMessage"> <part name="parameters" element="tns:getValueRP"/> </message> <message name="GetValueRPOutputMessage"> <part name="parameters" element="tns:getValueRPResponse"/> </message> 69 .

org/namespaces/examples/core/MathService_instance}Val ue Sử dụng lớp MathQNames để định nghĩa rút gọn QName. Ví dụ QName của Value RP là: {http://www. 70 .1.globus. QName là một tên bao gồm tên của namespace và tên local.<!— P O R T T Y P E --> <portType name="MathPortType" wsdlpp:extends="wsrpw:GetResourceProperty" wsrp:ResourceProperties="tns:MathResourceProperties"> <operation name="add"> <input message="tns:AddInputMessage"/> <output message="tns:AddOutputMessage"/> </operation> <operation name="subtract"> <input message="tns:SubtractInputMessage"/> <output message="tns:SubtractOutputMessage"/> </operation> <operation name="getValueRP"> <input message="tns:GetValueRPInputMessage"/> <output message="tns:GetValueRPOutputMessage"/> </operation> </portType> </definitions> 1.Thành phần Qnames Trong dịch vụ Grid. Trong khi bước định nghĩa giao diện cho biết dịch vụ làm những cài gì? thì ở bước này – thực thi dịch vụ cho biết dịch vụ làm như thế nào? Sau đây là các thành phần của bước thực thi dịch vụ a.1. Bước 2: Thực thi dịch vụ.

ResourceProperties{ } MathService thực thi 2 giao diện là Resource (mô tả tài nguyên dịch vụ Grid) và ResourceProperties (mô tả các thuộc tính tài nguyên dịch vụ Grid).examples. } 71 ."MathResourceProperties"). public static final QName RP_LASTOP = new QName(NS. } public String getLastOp() { return lastOp.QName.first. public interface MathQNames { public static final String NS = "http://www.value = value.globus.services.namespace.package org. /* Resource properties */ private int value.xml.impl.core. import javax.globus. "LastOp"). } public void setValue(int value) { this.org/namespaces/\ examples/core/MathService_instance". public static final QName RESOURCE_PROPERTIES = new QName(NS. Các phép toán: lấy giá trị và đặt giá trị được thực thi như sau: /* Get/Setters for the RPs */ public int getValue() { return value. Tài nguyên dịch vụ gồm 2 thành phần: Value: kiểu xsd:int và LastOp: kiểu xsd:string. "Value"). public static final QName RP_VALUE = new QName(NS.Thực thi dịch vụ Lớp MathService để thực thi dịch vụ: public class MathService implements Resource. private String lastOp. } b.

RP_LASTOP. } Các giá trị thuộc tính của tài nguyên dược khởi tạo trong constructor của lớp MathService: /* Constructor. this.RP_VALUE.public void setLastOp(String lastOp) { this.lastOp = lastOp. setValue(0). "Value". Initializes RPs */ public MathService() throws RemoteException { this.getMessage()). } } Hàm add() và getValueRP() thực thi các phép toán cộng và lấy giá trị: public AddResponse add(int a) throws RemoteException { value += a.add(lastOpRP).propSet. this.propSet. ResourceProperty lastOpRP = new ReflectionResourceProperty( MathQNames. this). "LastOp". } 72 . this).add(valueRP).propSet = new SimpleResourcePropertySet( MathQNames. setLastOp("NONE"). try { /* Initialize the RP's */ ResourceProperty valueRP = new ReflectionResourceProperty( MathQNames. return new AddResponse(). } catch (Exception e) { throw new RuntimeException(e.RESOURCE_PROPERTIES). lastOp = "ADDITION".

apache.globus.0) biết được làm thế nào để quảng bá dịch vụ Math Service này.1.core.axis.impl.globus.first.0" encoding="UTF-8"?> <deployment name="defaultServerConfig" xmlns="http://xml.w3. Tệp định nghĩa việc triển khai như sau: <?xml version="1. Ở đây là: http://localhost:8080/wsrf/services/examples/core/first/MathService 73 .org/axis/wsdd/" xmlns:java="http://xml.public int getValueRP(GetValueRP params) throws RemoteException { return value.MathService"/> <wsdlFile>share/schema/examples/MathService_instance/Math_service. có trong bộ công cụ Globus Toolkit 4.apache. Bước 3: Định nghĩa việc triển khai dịch vụ.RPCProvider"/> <parameter name="scope" value="Application"/> <parameter name="providers" value="GetRPProvider"/> <parameter name="loadOnStartup" value="true"/> </service> </deployment> Các thành phần được định nghĩa bao gồm: • service name: xác định địa chỉ URI của dịch vụ trong Grid container.2.services.providers. Hai bước quan trọng để lập trình một dịch vụ Grid đã được tiến hành bao gồm định nghĩa và thực thi dịch vụ. Chẳng hạn như nói cho Grid container biết được địa chỉ URI của dịch vụ.org/axis/wsdd/providers/java" xmlns:xsd="http://www. Định nghĩa việc triển khai dịch vụ nói cho Grid container (là thành phần chứa các dịch vụ Grid.org/2001/XMLSchema"> <service name="examples/core/first/MathService" provider="Handler" use="literal" style="document"> <parameter name="className" value="org. Vậy làm thế nào để các Client có thể kết nối với dịch vụ này? Bước 3 sẽ thực hiện công việc đó.examples. } 1.wsdl</wsdlFile> <parameter name="allowedMethods" value="*"/> <parameter name="handlerClass" value="org.

Công cụ Ant (có trong phần mềm Apache Ant đã cài đặt) có chức năng biên dịch và tạo tệp GAR từ các thành phần ở trên. Mô hình sau đây mô tả chức năng đó của Ant. Chức năng của tệp GAR: • Liên kết các tệp wsdl • Khởi tạo và biên dịch các lớp từ các thành phần trong tệp wsdl • Biên dịch các tệp thực thi Java • Tổ chức các tệp lại với nhau trong một cấu trúc đường dẫn xác định. Bước này sẽ thực hiện việc tạo tệp nén GAR chứa các thành phần trên.• className: xác định lớp thực thi giao diện dịch vụ • tệp WSDL: xác định tệp định nghĩa giao diện dịch vụ wsdl • Load on startup: cho phép dịch vụ được nạp khi khởi động Grid container Bước 4: Biên dịch và tạo tệp GAR Ở các bước trên. Vậy làm thế nào để triển khai được các thành phần đó vào trong Grid container cũng như biên dịch các tệp thực thi Java. 74 . mỗi khi hoàn thành mỗi bước lại tạo ra mỗi loại thành phần riêng rẽ.

wsdl Bước 5: Triển khai dịch vụ Đây là bước để triển khai dịch vụ trong Grid container.sh \ -d org/globus/examples/services/core/first/ \ -s schema/examples/MathService_instance/Math.Hình 24: Chức năng tạo tệp GAR của công cụ Ant Để tạo tệp GAR.gar 75 .sh -d <đường dẫn tới dịch vụ> -s <tệp WSDL của dịch vụ> Đối với Math Service.net/ . Việc triển khai dịch vụ vào trong Grid container tương đương với việc bung tệp nén GAR được tạo ra ở bước 4 và đưa các thành phần thích hợp vào Grid container. Cấu trúc dòng lệnh để tạo tệp GAR như sau: . Thực hiện dòng lệnh sau: globus-deploy-gar $EXAMPLES_DIR/org_globus_examples_services_core_first./globus-build-service.sourceforge./globus-build-service. dòng lệnh như sau: . ta dùng script globus-build-service có trong bộ Globus Service Build Tools (GSBT) tại http://gsbt.

subtract(5).println("Current value:" + math. // Perform an addition math. // Access value System.add(5).println("Current value:" + math.1:8080/wsrf/services/examples/core/first/MathService Để kiểm tra hoạt động của dịch vụ. MathPortType math = locator. } catch (Exception e) { e.0. dùng lệnh globus-undeploy-gar: globus-undeploy-gar org_globus_examples_services_core_first Chạy thử chương trình Math Service Sau khi đã triển khai dịch vụ Math Service vào Grid container.out. } } } Các đối tượng chính: 76 . Lớp Client được viết như sau: public class Client { public static void main(String[] args) { MathServiceAddressingLocator locator = new MathServiceAddressingLocator().0. try { String serviceURI=args[0].getValue(new GetValueRP())). ta viết một Client đơn giản. endpoint. EndpointReferenceType endpoint = new EndpointReferenceType().getMathPortTypePort(endpoint).Để xóa bỏ dịch vụ trong Grid container. Nhận biết dịch vụ đã hoạt động bằng địa chỉ URI của dịch vụ: http://127.getValue(new GetValueRP())). // Perform a subtraction math. // Perform another addition // Access value System. gửi yêu cầu đến dịch vụ Math Service thực hiện các phép toán: cộng.printStackTrace(). khởi động Grid container bằng lệnh: globus-start-container.setAddress(new Address(serviceURI)).out.add(10). trừ và lấy giá trị. math. dịch vụ sẽ bắt đầu hoạt động.

77 . sau đó trừ 5 và in ra kết quả. • MathPortType: là đối tượng tham chiếu đến giao diện (gọi là portType) của dịch vụ.• EndpointReferenceType: là đối tượng tham chiếu đến địa chỉ của tài nguyên dịch vụ. in ra kết quả. Biên dịch và chạy tệp Client. ta được kết quả: Current value: 25 Current value: 20 Chứng tỏ kết quả tính toán ở lần thực hiện cuối cùng đều được lưu vào tài nguyên của dịch vụ Grid. ta được kết quả: Current value: 15 Current value: 10 Chạy chương trình lần thứ 2. cộng 5. Chương trình trên sẽ thực hiện phép cộng 10.

2. Tuy nhiên. chúng tôi đã mô tả các bước lập trình cũng như chạy thử nghiệm một chương trình có sẵn là: Math Service. chúng tôi sẽ phát triển chương trình riêng của mình.gridcomputingplanet. không có ứng dụng gì trong thực tiễn. ta kiểm tra n có chia hết cho số nguyên k từ 2 đến [ n ]+1 hay không? Nếu n không chia hết cho mọi ki (i = lại.một lập trình máy tính của Great Internet Mersenne Prime Search (GIMPS).Tự xây dựng một dịch vụ Grid: Bài toán số nguyên tố Ở chương 10. Với phương pháp này. để kiểm tra số nguyên n có phải là số nguyên tố hay không.php/3573946). Với một máy tính Pentium 4 thông thường. Chẳng hạn. n là hợp số. làm thế nào để tìm được số nguyên tố đủ lớn đảm bảo yêu cầu đó? Việc tìm một số nguyên tố nhỏ là không khó. số nguyên tố lớn nhất hiện nay là số có khoảng 9. Tuy nhiên. chỉ chia hết cho 1 và chính nó. Số nguyên tố là số nguyên lớn hơn 1. nhưng việc tìm các số nguyên tố có hàng triệu chữ số phải mất đến hàng nghìn năm. phải mất khoảng 4500 năm để tìm được số này (Theo: George Woltman .com/news/article. Math Serivce là một chương trình mang tính thử nghiệm. phức tạp hơn và có ý nghĩa ứng dụng trong thực tiễn.1 triệu chữ số. việc tìm số nguyên tố lớn (khoảng từ 30 chữ số trở lên) không phải là đơn giản. đó là chương trình Số nguyên tố. Bởi vì công việc đó nảy sinh một số vần đề sau đây: • Vấn đề 1: Làm thế nào để tìm được số nguyên tố lớn cũng như chứng minh tính nguyên tố của số đó khi mà các phương pháp duyệt thông thường không còn khả thi. Mặc dù ngày nay đã có sự hỗ trợ của máy tính điện tử. thông tin từ: http://www. Ngược 78 . • Vấn đề 2: Thời gian cần thiết để hoàn thành việc tìm kiếm và kiểm tra một số nguyên tố là rất lớn. Trong chương này. đủ lớn để đảm bảo bí mật trong việc mã hoá thông tin nội bộ. [ n ] +1 ) thì n là số nguyên tố. Phương pháp đơn giản nhất là dùng sàng Eratosthenes. Mỗi tổ chức đều muốn sử dụng một số nguyên tố riêng. Vậy. Số nguyên tố không chỉ là số có ý nghĩa lớn trong lĩnh vực toán học mà còn có ý nghĩa quan trọng trong lĩnh vực công nghệ thông tin. đặc biệt là vấn đề bảo mật và mã hoá.

Grid Computing là một lĩnh vực khá mới mẻ ở nước ta hiện nay. mô hình phân chia công việc chưa hợp lý trong vấn đề xử lý song song…Với những thách thức đó. người lập trình liên kết với các thư viện Globus Toolkit để biên dịch các tệp. p >1 ) thì n gọi là số Mersenne. Thay vào đó. tạo các tệp . Tuy nhiên.wsdl để định nghĩa giao diện dịch vụ web. bước định nghĩa giao diện. Để tìm một số nguyên tố Mersenne. Tuy nhiên. trên thế giới đã có một số tổ chức ứng dụng Grid Computing trong bài toán Tìm số nguyên tố. chúng tôi tìm các số nguyên tố dạng Mersenne. tạo tệp nén GAR và triển khai dịch vụ Grid trong Grid container. Với vấn đề 2. Trong mỗi bước. Tiêu biểu là Great Internet Mersenne Prime Search (GIMPS).Vì vậy. Grid Computing đang được phát triển rộng rãi cho các tổ chức trên thế giới. Ví dụ. Giới thiệu công cụ phát triển Ở chương 10. nén thành tệp GAR và triển khai dịch vụ. cấu hình việc triển khai dịch vụ. thực thi dịch vụ. tạo các tệp .java để thực thi dịch vụ…Cuối cùng. Bước thực thi dịch vụ. Hiện nay.1 ( p ∈Ν. Được xem như là một “siêu máy tính giá rẻ”. đối với các chương trình dịch vụ Grid phức tạp sẽ gây khó khăn cho người 79 . • Định nghĩa 1: Nếu n là số nguyên có dạng: 2p . chúng tôi tìm hiểu và lựa chọn thuật toán thích hợp. trong mô hình bài toán của họ đưa ra còn có một số vấn đề như là: thời gian tìm kiếm lâu. chúng tôi phát triển bài toán Tìm số nguyên tố Mersenne trên môi trường Grid Computing với hi vọng có thể giải quyết được các vấn đề trên trong thời gian chấp nhận được. chúng tôi không thực thi bài toán trên một máy tính mà sử dụng giải pháp Grid Computing để thực thi bài toán trong mạng Grid Computing gồm nhiều máy tính khác nhau. chúng tôi cố gắng đưa một giải phát Tìm số nguyên tố ở dạng số nguyên tố Mersenne trên Grid hy vọng có được một giải pháp tốt. Với vấn đề 1. chúng tôi đã trình bày quá trình xây dựng một dịch vụ Grid gồm các bước: định nghĩa giao diện. • Định nghĩa 2: Số nguyên n gọi là số nguyên tố Mersenne nếu: n là số Mersenne đồng thời là số nguyên tố. Quá trình này có vẻ đơn giản khi xây dựng một chương trình dịch vụ Grid đơn giản. chúng tôi không thực hiện việc tìm kiếm các số nguyên tố thông thường. người lập trình phải tạo ra các tệp ứng với các chức năng nhất định.

java .lập trình trong việc viết chương trình và sửa lỗi.thực thi dịch vụ… 3 . tệp .Tự động tạo các tệp cần thiết trong một project Globus Toolkit như: tệp wsdl .0.Cùng với Eclipse.một IDE của Java. hỗ trợ việc phát triển các dịch vụ Grid Serivice 4. Chúng tôi giới thiệu một trong các công cụ đó. khả năng phát hiện và sửa lỗi của GT4IDE là khá tốt.Tương tác với các thư viện của Globus Toolkit 4. Chức năng của GT4IDE gồm có: 1 . Khó khăn trên đòi hỏi phải có công cụ hỗ trợ những người phát triển dịch vụ Grid. Nó đòi hỏi người lập trình mất nhiều thời gian để viết các tệp. tìm kiếm và phát hiện lỗi. o Cấu hình Eclipse với JDK • Cài đặt GT4IDE o Download GT4IDE tại: http://gsbt. 4 .org/eclipse/downloads/index.0 trên nền ngôn ngữ Java.eclipse. GT4IDE là một công cụ rất hữu ích cho các nhà phát triển các dịch vụ Grid Serivce 4.0 đã được trình bày ở chương trước. GT4IDE là một plug-in của Eclipse .php o Giải nén tệp zip vào thư mục bất kỳ.Tự động biên dịch. Trước khi cài đặt GT4IDE phải cài đặt Globus Toolkit 4.sourceforge. tạo project Globus Toolkit 4. Với các chức năng đó. • Cài đặt Eclipse o Download tại: http://download. GT4IDE là một công cụ hỗ trợ đắc lực cho người phát triển dịch vụ Grid trên nền ngôn ngữ Java. tạo tệp GAR cho một project Globus Toolkit 4. phát triển độc lập trên các môi trường. Giới thiệu công cụ GT4IDE GT4IDE là một khung làm việc.mô tả giao diện.0 Cài đặt GT4IDE GT4IDE là một plug-in của Eclipse.0.0 để phát triển các dịch vụ Grid trên nền ngôn ngữ Java 2 .net/content/view/27/47/ 80 .0 và Eclipse • Globus Toolkit 4.

. Download gói tương ứng với phiên bản JDK trên hệ thống của bạn. o Cài đặt GT4IDE: giải nén tệp nén vào thư mục chủ của Eclipse. -> GT4 Project 81 .o GT4IDE gồm 2 gói binary: một cho JDK1..4 và một cho JDK1.0 Hình 25: Cửa sổ cấu hình đường dẫn GT4 • Cấu hình lại các thông số của Globus Toolkit trong cửa sổ Preferences của Eclipse Hình 26: Cửa sổ cấu hình GT4 Preferences Tạo project GT4 với GT4IDE • Việc tạo một project mới có thể thực hiện với chức năng File -> New -> Project. o Cấu hình GT4IDE: • Khi chạy Eclipse. xuất hiện cửa sổ hỏi về đường dẫn thư mục chủ của Globus Toolkit 4.5.

Hình 27: Cửa sổ tạo một project GT4 o Project Name: Nhập tên project o Create first Service: Đánh dấu để tạo project mới • Tiếp tục với cửa sổ lựa chọn các thông số về dịch vụ: Hình 28: Cửa sổ lựa chọn thông số cho một project Trong đó: • Base Package: là gói chứa các lớp. các thành phần của dịch vụ… • Base Target Namespace: là namespace của tệp mô tả giao diện wsdl • Name of Interface/PortType: tên Interface của dịch vụ Grid • Service Path: là địa chỉ URL của dịch vụ Grid • Design Pattern: Có 2 lựa chọn: 82 .

• Singleton with ServiceResourceHome: để chọn dịch vụ đơn tài nguyên • Factory/Instance: để chọn dịch vụ đa tài nguyên • Provide implementation skeleton: o Chọn Yes. Hiện nay có khá nhiều thuật toán tìm số nguyên tố dạng Mersenne. Nội dung chính của chương này gồm hai phần: • Các khái niệm và mệnh đề: Trình bày một số khái niệm về số nguyên tố Mersenne. 83 . chúng tôi so sánh các thuật toán và lựa chọn thuật toán thích hợp nhất. • Lựa chọn thuật toán: Chúng tôi lựa chọn một thuật toán thích hợp để sử dụng trong chương trình. các mệnh đề và chứng minh các mệnh đề • Các thuật toán: Giới thiệu một số thuật toán tìm số nguyên tố dạng Mersenne. using ReflectionResourceProperties Giao diện đầy đủ của một chương trình dịch vụ Grid với GT4IDE như sau Hình 29: Giao diện chính của chương trình GT4IDE với Eclipse Thuật toán tìm số nguyên tố Mersenne Phần này trình bày các khái niệm và thuật toán liên quan đến số nguyên tố Mersenne.

5. r. Ví dụ: 3.. 1} là biểu diễn nhị phân của p Gọi Ni = N0= 1 (Ni-1)2 mod k 2(Ni-1)2 mod k Ta có: nếu Xi = 0 nếu Xi = 1 Nn là số dư trong phép chia 2p cho k Hệ quả 1: Nếu Nn = 1 thì 2p . 511. s ∈ N.. Chú ý: điều ngược lại không đúng. tức là p có dạng p= r * s... Xn-1Xn với Xi ∈ {0. 31 và 127 là những số nguyên tố Mersenne tương ứng với p= 2. với r. 3. Mệnh đề 2: Giả sử X1. + 2s + 1) • 2rs-1 chia hết cho (2s-1). 7. 127. 7.Một số khái niệm Số Mersenne: Là số nguyên có dạng 2p-1.. 15. 7. Số nguyên tố Mersenne : là số nguyên tố có dạng Mersenne. Thuật toán: 84 . 63. Chứng minh: Giả sử p là hợp số.Các khái niệm và mệnh đề a. 255. mâu thuẫn với giả thiết. Những số Mersenne đầu tiên : 1.. p là số nguyên tố thì 2p-1 chưa chắc đã là số nguyên tố. 31. Khi đó ta có: 2p-1= 2rs-1=(2s-1) * (2s(r-1) + 2s(r-2) + . b. s > 1.1 chia hết cho k Một số thuật toán tiêu biểu • Thử thừa số (Trial Factoring): Là thuật toán sử dụng Mệnh đề 2 để tìm số dư khi chia 2p cho k. p ∈ N. Mệnh đề được chứng minh. 3 . • 2rs-1 hay 2p-1 cũng là hợp số.Các mệnh đề Mệnh đề 1: Nếu 2p-1 là số nguyên tố thì p là số nguyên tố.

1 (hết bit) 729*2 = 1458 1 1024*2 = 2048 27 1 16*2 = 32 32 11 No 4 011 1*2 = 2 2 Lấy bit trái p còn lại nhân với 2(optional) mod 47 85 . X1.i). vì bit này = 1 nên lấy N 02*2 mod 47 được N1= 2. … Xm-1 o Bước 3: Lặp For i := m . o Với 0111 bit trái cùng là 0 nên lấy N12 mod 47 được N2=4.Với đầu vào là số mũ p. X:= 0 o Bước 2: Tìm biểu diễn nhị phân của p: X0. Thuật toán Trial factoring tìm số dư của 2p-1 cho k như sau o Bước 1: N:= 1.1-> 0 X:= getBit(p. và số bị chia k. // tính bit thứ i Nếu X = 0 thì N = (N* N) mod k X = 1 thì N = 2(N* N) mod k o Bước 4 : trả về giá trị của N Ví dụ cụ thể : Với p= 23 và k= 47 ta thực hiện như sau: p = 23 dạng nhị phân là 10111 Bình phương 1*1 = 1 2*2 = 4 4*4 = 16 1 1 0 1 1 1 32*32 = 1024 1 1 27*27 = 729 o N0=1 o Đầu tiên với 10111. ta tách bit trái nhất.

86 . True X ==0 N = (N* N) mod k N = 2(N* N) mod k Sơ đồ thuật toán Trial Factoring • P-1 Factoring Có một phương pháp phân tích thừa số khác mà GIMPS sử dụng để tránh thời gian kiểm thử . Phương pháp này khi thực hiện với số Mersenne tỏ ra đặc biệt hiệu quả.o Cứ làm tiếp tục ta được N5=1. Sơ đồ thuật toán: N=1.1. X = 0 m =countBit(p). Phương pháp này được gọi là phương pháp Pollard’s P-1. phương pháp P-1 sẽ tìm thừa số q nếu q-1 là một hợp số. Lưu ý rằng. X = getBit(p. o Theo hệ quả 1 => 223-1 không phải số nguyên tố. False True I >=0 Return N.I). thừa số q có dạng 2kp+1. Có thể dễ dàng sửa đổi phương pháp P-1 để nó tìm q nếu k là hợp số. False I = I .1. Nếu q là một thừa số của một số. I = m .

Thứ ba. Nếu chúng trùng nhau.…. việc đầu tiên là phải tìm cách nhanh nhất tính bình phương của một số rất lớn modulo 2 p-1. Ví dụ: để chứng minh 27-1 là số nguyên tố: S0 = 4 S1 = (4 * 4 S2 = (14 * 14 S3 = (67 * 67 S4 = (42 * 42 S5 = (111 * 111 .Phương pháp P-1 rất đơn giản. 2p-1 là số nguyên tố khi và chỉ khi Sp-2=0. P-1 sẽ tìm thừa số q với tất cả các thừa số của k < B1.2) mod 127 = 0. GIMPS chạy kiểm thử thêm một lần nữa. đơn giản. 87 . tích của tất cả các thừa số nhỏ hơn B1.2p-1) để xem thừa số đã tìm thấy. Thứ hai. được in ra. chọn giới hạn B1. Lựa chọn thuật toán Trong các thuật toán nói trên thì thuật toán thử thừa số (Trial Factoring) cài đặt nhanh. tính E . Cuối cùng. 64bits thấp của S p-2. Đầu tiên. với dãy S được định nghĩa như sau: S0=4. phần còn lại. kiểm tra GCD(x-1.2) mod (2P-1). • Lucas-Lehmer Định lý Lucas-Lehmer: Với P>2. sau đó thực hiện Fast Fourier Transform (TFT) và Inverse Fast Fourier Transform (IFFT). Nếu chúng không trùng nhau. Phương pháp nhanh nhất để tính bình phương của một số rất lớn là phân những số lớn thành những mảng. • Kiểm tra kép (Double Checking) Để bảo đảm lần thực hiện đầu tiên của Lucas-Lehmer không xảy ra lỗi. tính x = 3E*2*P. 2) 2) 2) 2) mod mod mod mod 127 127 127 127 = = = = 14 67 42 111 Để thực hiện được kiểm tra Lucas-Lehmer một cách hiệu quả. và có tốc độ tính toán cao vì vậy chúng tôi sử dụng thuật toán này để thực hiện chương trình tìm số nguyên tố trong mạng Grid Computing. Trong mỗi lần test. GIMPS xác nhận kiểm tra kép. quá trình thử được lặp lại cho đến khi trùng nhau. SN=(SN-12 .

Phân tích và thiết kế bài toán Mô tả hệ thống Phần này trình bày các vấn đề về: • Mục đích của bài toán • Mô hình hoạt động của bài toán trong mạng Grid • Mô hình phân chia công việc • Dữ liệu tài nguyên a. điều phối hoạt động của các Client trong mạng. yêu cầu đặt ra cho bài toán là tìm được các số nguyên tố lớn cũng như chứng minh tính nguyên tố của các số đó trong một khoảng thời gian chấp nhận được. • Chức năng của Client là giải quyết công việc và trả lại kết quả công việc cho Server. c. b.1 (p ∈ N.Mục đích của bài toán Mục đích của bài toán là tìm các số nguyên tố n có dạng n = 2 p . Yêu cầu thực hiện công việc Server Trả lại kết quả Client 1 Client m Hình 30: Sơ đồ mô tả mô hình bài toán trong mạng Grid • Chức năng của Server là quản lý các tài nguyên tính toán.Mô hình hoạt động của bài toán trong mạng Grid Hệ thống hoạt động trong một mạng Grid Computing bao gồm một máy cung cấp dịch vụ Server và các máy còn lại Client tham gia tính toán. tìm kiếm công việc và yêu cầu Client giải quyết công việc.Mô hình Phân chia công việc 88 . Tận dụng các ưu thế của Grid Computing về tính toán song song và phân tán dữ liệu. p > 1).

ta tiến hành kiểm tra 2p . Mô hình phân chia công việc Công việc Tập số bị chia con 1 Tập số bị chia con m Công việc con thứ 1 Công việc con thứ m 89 .1 k hay không? k=2 ÷[ 2 p −1] +1 =q Công việc này có thể chia thành m công việc con p1 p2 k = 2 ÷ k1 k = k1+1 ÷ k2 ……………………….Với mô hình trên.1 có phải là số nguyên tố hay không. Do đó. giải pháp phân chia công việc cho các máy tính cùng tính toán là rất quan trọng. q = [√n] + 1 = 6 có thể được chia thành 2 công việc con: p1 p2 k = 2÷4 k = 5÷6 Mỗi khoảng k gồm 2 cận đầu và cuối gọi là kd (k đầu) và kc (k cuối). Công việc Ta gọi một công việc p là công việc xác định 2 p . việc “Tìm số nguyên tố” sẽ không thực thi trên một máy tính mà được thực thi đồng thời bởi nhiều máy tính trong mạng Grid. n = 25 . pm k = km-1+1 ÷ q Ví dụ: Công việc p với p = 5. Chúng tôi đưa ra các khái niệm “công việc” và “công việc con” trong bài toán “Tìm số nguyên tố” nhằm mục đích mô tả giải pháp đó.1 = 31. Công việc con Để thực hiện công việc p.

cập nhật các trạng thái của client. kc-trong đó p là số mũ. cập nhật hay thu hồi). là dữ liệu lưu trữ thời gian mà Client mới cập nhật . thu hồi tài nguyên khi client không còn tham gia vào mạng.Service Các chức năng chính của service Để đảm bảo cho hệ thống hoạt động một cách đúng đắn. k là số bị chia đang được client tính toán.Quản lý các tài nguyên: khởi tạo tài nguyên quản lý trạng thái của client. Phân tích hệ thống Hệ thống gồm 2 phần: Service và Client. mỗi tài nguyên chứa tập dữ liệu gồm hai thành phần: . k. a. Service là một Grid service đóng vai trò quản lý tài nguyên tính toán và điều phối hoạt động của các Client. là dữ liệu lưu trữ tập các thành phần p. 2 . Các tài nguyên được đặt trên máy Service và được Service quản lý (khởi tạo. • PrimeResource: Chứa tài nguyên của client.Tìm kiếm và phân phối các công việc con khi có yêu cầu từ Client 3 . kd là số nguyên đầu tiên của khoảng được cấp phát. bao gồm tập các dữ liệu của tài nguyên 90 . Client đóng vai trò là một Client thực thi công việc và trả lại kết quả cho Service.data: kiểu string. Trong bài toán Tìm số nguyên tố. kc là số nguyên cuối của khoảng được cấp phát -theo định dạng “p:k:kd:kc”.Dữ liệu tài nguyên Tài nguyên là tập hợp các dữ liệu mô tả các thành phần dữ liệu của Client tham gia vào mạng Grid.Phát hiện các Client không còn tham gia vào mạng Các thành phần của Service • PrimeFactoryService: là dịch vụ để tạo tài nguyên cho mỗi client.time: kiểu long. Mỗi Client khi tham gia vào mạng được Serivce cấp phát một tài nguyên cùng với khoá riêng (unique key) xác định tài nguyên đó với các tài nguyên khác trong mạng. Chức năng của Service gồm có: 1 . Service phải quản lý các trạng thái và hoạt động của tất cả các Client trong mạng.Hình 31: Sơ đồ mô tả mô hình phân chia công việc d. kd.

Đây là thành phần có vai trò quan trọng trong hệ thống.• PrimeResourceHome: quản lí tất cả các tài nguyên cùng với các khoá riêng tương ứng với tài nguyên đó. • PrimeService: Là dịch vụ thể hiện (instance) của Service. Chức năng của PrimeService bao gồm: o Quản lý và điều khiển mọi hoạt động của chương trình o Đáp ứng các yêu cầu từ Client Mô hình các thành phần của Service Yêu cầu tạo tài nguyên PrimeFactoryService Tạo PrimeResource Client PrimeService Yêu cầu tìm kiếm tài nguyên Quản lý PrimeResouceHome Hình 32: Sơ đồ mô tả hoạt động của Service Hình 33: Biểu đồ mô tả hoạt động của việc tạo tài nguyên 91 .

Hình 34 : Biểu đồ mô tả hoạt động của việc lấy dữ liệu b. đối tượng đảm nhận các chức năng nêu trong phần Phân tích hệ thống. chức năng của Client gồm có: • Yêu cầu công việc con • Thực hiện công việc con • Trả lại kết quả cho Service khi hoàn thành công việc con • Cập nhật thời gian hoạt động của Client sau một chu kỳ nhất định Các thành phần của Client • PrimeClient: là chương trình chính của Client thực hiện các chức năng trên • PrimeData: lưu trữ các dữ liệu tính toán Thiết kế hệ thống Trong phần này sẽ mô tả thiết kế các dữ liệu.Mô hình các đối tượng trong Service 92 . a.Client Chức năng của Client Đơn giản hơn so với Service.

k. xác định tài nguyên duy nhất Chứa tập trạng thái của tài nguyên.PrimeResouceHome PrimeService + newp + pkcm + home getResouce() getDataRP() findData() getResourceTimeoutKey() getNewJob() findDataOnceResouce() findDataResouceTimeout() findDataMutilResouces() notPrime() + resouces create() getResouces() + id PrimeResource + data + time PrimePKC +p + kcm isTimeout() create() updateTime() PrimePKC() PrimeConstants + TIMEOUT + K_LENGHT PrimeFactoryService createResource() Hình 35: Sơ đồ biểu thị mối quan hệ giữa các đối tượng trong Service b. 93 . kc. kd. gồm p.Các lớp trong Service Lớp PrimeResource: • Lớp lưu trữ các trạng thái của client • Các thành phần dữ liệu và phương thức Dữ liệu / Phương thức id data Kiểu Object String Chú thích id của tài nguyên. Là xâu có định dạng “p:k: kd: kc”.

kc] là khoảng số cần được kiểm tra tính chia hết của n. k là số lớn nhất trong khoảng [kd .Trong đó n = 2p-1 là số cần kiểm tra tính nguyên tố. kc] đã được kiểm tra. Khoảng [kd . gồm key và PrimeResource tương ứng Tạo một tài nguyên mới và trả về key tương ứng Lấy giá trị của resources create() getResources() ResourceKey HashTable Lớp PrimeFactoryService • Chức năng của lớp này là yêu cầu PrimeResouceHome tạo một tài nguyên mới • Các thành phần dữ liệu và phương thức Dữ liệu /Phương thức createResouce() Lớp PrimePKC Kiểu Chú thích khi có yêu cầu từ client CreateResourceResponse Tạo một tài nguyên mới 94 . isTimeout() create() updateTime() Boolean Object Void Xác định Client tương ứng với tài nguyên này đã timout hay chưa Tạo một tài nguyên mới Cập nhật thời gian time khi có yêu cầu từ Client Lớp PrimeResourceHome • Chức năng của lớp này là tạo một tài nguyên mới • Các thành phần dữ liệu và phương thức Dữ liệu / Phương thức resources Kiểu HashTable Chú thích Mảng băm chứa thông tin các resources.

kc là khoảng cuối của số bị chia k được cấp phát. Hàm tìm kiếm công việc con trong trường hợp có Client Kiểu Int Int Chú thích Số mũ p Số kc lớn nhất được cấp phát tương ứng với p Constructor khởi tạo các giá trị của lớp getResouce() getDataRP() findData() PrimeResource String String findDataOnceResouce() String findDataResouceTimeout() String 95 . Việc lưu trữ 2 giá trị này có tác dụng xác định công việc con tiếp theo tương ứng với số p.• Là lớp lưu trữ danh sách các số mũ p đang được tính toán và số kc tương ứng với p. • Các thành phần dữ liệu và phương thức Dữ liệu /Phương thức p kcm PrimePKC() Lớp PrimeService • Chức năng của lớp này là thực thi các hoạt động của dịch vụ • Các thành phần dữ liệu và phương thức Dữ liệu /Phương thức Newp Pkcm Home Kiểu Int Vector PrimeResourceHome Chú thích Là số mũ p mới được cấp phát Là mảng lưu trữ danh sách các đối tượng PrimePK Đối tượng PrimeResourceHome để quản lý các tài nguyên Lấy tài nguyên tương ứng với Client yêu cầu tài nguyên Lấy dữ liệu thuộc tính của tài nguyên Hàm này tìm kiếm công việc con và trả về xâu dạng “p:k:kd:kc” Hàm tìm kiếm công việc con trong trường hợp đang chỉ có 1 tài nguyên trên Service.

getResourceTimeoutKey() ResourceKey getNewJob() notPrime() String NotPrimeResponse Lớp PrimeConstants • Là lớp chứa các hằng sử dụng trong chương trình • Các thành phần dữ liệu và phương thức Dữ liệu /Phương thức TIMEOUT Kiểu Long Int Chú thích Thời gian xác định Client đã timeout tính theo giây Độ dài của khoảng số bị chia trong một công việc con K_LENGHT c.Mô hình các đối tượng trong Client 96 . findDataMutilResouces() String Hàm tìm kiếm công việc con trong trường hợp có nhiều tài nguyên và không có client nào timeout Hàm kiểm tra Client timeout và trả về key của tài nguyên tương ứng với Client đó (nếu không có thì trả về null) Hàm lấy công việc mới Hàm được gọi khi Client thông báo hợp số.không còn tham gia mạng.

thực thi việc giải quyết công việc.Thread StartListener StopListener actionPerformed() JobThread actionPerformed() actionPerformed() PrimeClient + timer + timeFreq + prime doStart() Eratosthenes() trialFactoring() doJob() main() initWindowComponents( ) PrimeData +p +k + kd + kc Hình 36: Sơ đồ biểu thị mối quan hệ giữa các đối tượng trong Client d.Các lớp trong Client Lớp StartListener • Là một Thread. xử lý sự kiện khi click Start Button Lớp StopListener • Là một Thread. Lớp PrimeClient • Là lớp chính của Client. thực thi công việc • Các thành phần dữ liệu và phương thức 97 . xử lý sự kiện khi click Stop Button Lớp JobThread • Là một Thread.

false nếu ngược lại Hàm được gọi khi thực thi công việc Hàm chính của chương trình Hàm khởi tạo các giá trị giao diện đồ họa của chương trình. public interface PrimeService { public String getDataRP(GetDataRP params) throws RemoteException. Chương trình này được chúng tôi hoàn toàn tự viết. chúng tôi đã bắt tay vào viết chương trình “Tìm số nguyên tố”. Dưới đây là một số đoạn mã inteface của chương trình. tra một số p có phải là số hay không bằng phương Eratosthenes. public SetTimeRPResponse setTimeRP(long time) throws RemoteException. doJob() Main() initWindowComponents() void void Void Kết quả thử nghiệm Viết mã chương trình Qua một thời gian tìm hiểu. false nếu timeFreq Prime doStart() Eratosthenes() PrimePortType Void boolean trialFactoring() boolean Hàm kiểm tra n = 2p . Hàm trả về là số nguyên tố.1 có chia hết cho k hay không bằng phương pháp Trial Factoring. 98 .Dữ liệu /Phương thức Timer Kiểu Timer Long Chú thích Xác định thời gian thực Là chu ký thời gian(tính theo giây) mà Client yêu cầu Service cập nhật thời gian Đối tượng chính tương tác với Service Hàm được gọi khi bắt đầu chạy client Hàm kiểm nguyên tố pháp sàng true nếu p ngược lại. Hàm trả về true nếu n chia hết cho k.

} public interface PrimeResource { public void setK(int k). } 1. …….public SetTimeRPResponse setTimeRP(long time) throws RemoteException. Giao diện của chương trình client: Hình 37: Giao diện chương trình Client 99 .3.1. public long getTime(). …. public int getP(). public void updateTime(). public boolean isTimeout(). public void setTime().

• Tệp prime.01 0.gar được tạo ra là tệp nén của dịch vụ. mở một cửa sổ mới • Để biên dịch. a.Biên dịch và chạy dịch vụ • Để biên dịch dịch vụ. trong môi trường GT4IDE.Kết quả Chúng tôi thử nghiệm chương trình trên 1 máy tính và thu được kết quả sau: Số nguyên tố 22-1 23-1 25-1 27-1 213-1 217-1 219-1 Thời gian (giây) 0.gar • Chạy dịch vụ: [globus]# globus-start-container -nosec b. dùng lệnh: [auser1]# cd PrimeService/src [auser1]# . run c. thực thi tệp bat • [auser1]# .02 0.01 0. compile • Để chạy. Sau đó click vào biểu tượng GAR để biên dịch và toạ tệp GAR.3 3 7 28 100 .Biên dịch và chạy chương trình Phần này mô tả việc biên dịch và thử nghiệm chương trình Số nguyên tố. click vào biểu tượng STUB để tạo các stub classes. • Triển khai dịch vụ: [globus]# globus-deploy-gar prime.Biên dịch và chạy Client • Trong khi dịch vụ đang chạy.

Mô hình bài toán và thuật toán hoàn toàn có thể được cải tiến để tăng hiệu năng tính toán. để có thể tìm được số nguyên tố lớn hơn trong một thời gian ngắn hơn. chúng tôi sẽ nghiên cứu và đưa ra mô hình. Tuy nhiên. mã hoá cho các tổ chức.Hình ảnh minh hoạ: Hình 38: Kết quả đạt được sau khi chạy thử nghiệm Kết luận về bài toán Số nguyên tố Chương trình “Tìm số nguyên tố” nhìn chung đã giải quyết được các vần đề đặt ra ở trên. công ty ở nước ta hiện nay. góp phần đóng góp trong lĩnh vực bảo mật. 101 . Trong thời gian sắp tới. Bài toán có thể được ứng dụng trong thực tế để tìm được các số nguyên tố lớn. thuật toán tối ưu hơn. bài toán “Tìm số nguyên tố” không chỉ dừng lại ở đó.

về các yêu cầu cơ bản của một mạng lưới tính toán. lập lịch công việc. Chúng tôi hi vọng sẽ góp phần vào quá trình xây dựng một cộng đồng nghiên cứu. 102 . Qua đó chúng tôi đã nhận được kết quả bước đầu rất khả quan. triển khai ứng dụng trên môi trường mạng lưới.Kết luận Khóa luận đã hệ thống hóa một số công nghệ. chuẩn về Grid Computing. bảo mật trên môi trường mạng lưới. phát triển và sử dụng Grid ở Việt Nam. Trên cơ sở về quy trình phát triển. làm chủ được quy trình phát triển. đồng thời trình bày. và ứng dụng tìm số nguyên tố Merssene chúng tôi dự định sẽ tiếp tục nghiên cứu để hoàn thiện chương trình tìm số nguyên tố Merssene cũng như bổ xung các vấn đề mang tính lí thuyết và thực tiễn về phân chia. phân tích và thử nghiệm quy trình phát triển ứng dụng trên môi trường mạng lưới dựa trên nền tảng là bộ công cụ Globus Toolkit. về an ninh.

sourceforge. 2003. University of Chicago. K.toantin. 2005 [8] Web site: http://www. Grid Computing: A Practical Guide to Technology and Applications.mersenne. Sam Meder.html. Schopf. [6] Joshy Joseph. 2003.edu. 2005. 2003. Jan We Glarz. GT4IDE [10] Web site: http://primes. Grid fundamental [9] Web site: http://gsbt.org/. 2004. Jarek Nabrzyski.net/content/view/12/29/. M. N.utm.Jacob.com/pub/a/onjava/2002/08/28/wsdc. Introduction to Grid Computing. [2] B. [4] Jarek Gawor. The Globus Toolkit 4 Programmer's Tutorial.Tài liệu tham khảo [1] Ahmar Abbas. Search for really big prime number 103 . Craig Fellenstein. [5] Jennifer M.onjava. [3] Borja Sotomayor. The Grid Core Technologies. Grid resource management State of the Art and Future Trends.org. John Wiley & Son.Fukui. Charles River Media. IBM Redbook. [7] Maozhen Li. Primes [11] Web site: http://www. Grid Computing.Brown. GT4 WS Java Core Design. Globus Alliance. Springer. 2005. Mersenne and GIMPS project [12] Web site: http://www. Mark Baker.Trivedi. IBM Press.

Sign up to vote on this title
UsefulNot useful