TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.

HCM

KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM

SINH VIÊN THỰC HIỆN
Nguyễn Mạnh Dũng Nguyễn Đăng Thành 0112132 0112280

TÌM HIỂU CÔNG NGHỆ GRID COMPUTING VÀ ỨNG DỤNG THỬ NGHIỆM TRONG BÀI TOÁN QUẢN TRỊ MẠNG

LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN
Thầy Cao Đăng Tân

TP. HỒ CHÍ MINH, 12/2005

Lời cảm ơn

Lời cảm ơn
Nhóm thực hiện xin bày tỏ lòng biết ơn và tri ân sâu sắc đến tất cả mọi người đã giúp đỡ, hỗ trợ thực hiện luận văn này, một điểm mốc rất quan trọng trong cuộc đời và sự nghiệp của chúng em. Chúng em xin cảm ơn Khoa Công nghệ Thông tin trường Đại học Khoa học Tự nhiên TP.HCM đã cho phép và tạo điều kiện để chúng em thực hiện luận văn này. Luận văn này sẽ không thể hoàn thành nếu không có sự giúp đỡ và chỉ bảo tận tình của thầy Cao Đăng Tân, người thầy hướng dẫn của chúng em. Chúng em xin chân thành biết ơn về những chỉ bảo, định hướng nghiên cứu thực hiện, hỗ trợ, tạo những điều kiện tốt nhất cho chúng em trong suốt quá trình thực hiện đề tài. Chúng con xin bày tỏ lòng biết ơn sâu sắc đến Bố, Mẹ, những bậc sinh thành đã chịu thương, chịu khó nuôi dưỡng, hỗ trợ, động viên, ủng hộ chúng con trong những lúc khó khăn để chúng con có được như ngày hôm nay. Chúng em xin chân thành cảm ơn tất cả quý thầy cô trong khoa Công nghệ Thông tin đã tận tình chỉ bảo, rèn luyện, truyền đạt những tri thức, kỹ năng, kinh nghiệm quý báu cho chúng em trong suốt 4 năm ở giảng đường đại học. Đây là những hành trang quý giá để chúng em vững bước vào đời. Nhóm thực hiện xin chân thành cảm ơn tất cả các anh chị, bạn bè, đặc biệt là các thầy cô Phòng máy Mạng, thầy Trần Minh Triết, thầy Lu Boun Vinh, đã nhiệt tình động viên, ủng hộ, chia sẻ những kinh nghiệm, kiến thức quý báu, tài liệu, hỗ trợ không những trong quá trình thực hiện luận văn mà còn trong suốt thời gian học tập dưới mái trường này. Mặc dù đã hết sức nỗ lực và cố gắng, nhưng luận văn chắc chắn không tránh khỏi những thiếu sót. Chúng em kính mong nhận được sự cảm thông và tận tình chỉ bảo, góp ý của quý Thầy Cô và các bạn. Một lần nữa xin gửi đến tất cả mọi người lời cảm ơn chân thành nhất. Xin cảm ơn !. Nhóm thực hiện Nguyễn Mạnh Dũng & Nguyễn Đăng Thành

-i-

Lời nói đầu

Lời nói đầu
Công nghệ Grid Computing ra đời đánh dấu một bước phát triển mới trong lĩnh vực điện toán hiệu năng cao. Nó cho phép tận dụng năng lực xử lý, lưu trữ cùng các tài nguyên nhàn rỗi khác để cung cấp một môi trường tính toán có năng lực xử lý lớn, khả năng lưu trữ dồi dào để giải quyết các bài toán phức tạp - khó có thể giải quyết được với các công nghệ hiện hành hoặc giải quyết được nhưng với chi phí rất cao - trong khoa học, thương mại. Grid Computing giúp tận dụng tối đa tài nguyên, tăng cường hợp tác, giảm chi phí đầu tư trong khi vẫn cung cấp năng lực tính toán như mong muốn. Trong những năm vừa qua, nhiều tổ chức, tập đoàn công nghệ thông tin lớn đã chọn công nghệ Grid Computing làm chiến lược phát triển của mình, đã đầu tư nghiên cứu nhằm sớm đưa công nghệ Grid Computing vào thực tế. Công nghệ này đang ngày càng thu hút được sự quan tâm chú ý từ khắp nơi trên thế giới. Có thể nói công nghệ Grid Computing là một xu hướng phát triển mới trong ngành công nghệ thông tin. Hiện nay, đất nước ta đang thực hiện công cuộc công nghiệp hoá, hiện đại hóa, trong đó việc rút ngắn sự tụt hậu, phát triển về khoa học công nghệ là yếu tố then chốt quyết định đến thành công của công cuộc đổi mới. Song song với quá trình phát triển, ngày càng có nhiều bài toán mới, đòi hỏi năng lực xử lý lớn xuất hiện trong khoa học, thương mại và quản lý đất nước. Các công nghệ tính toán hiện hành cũng được áp dụng nhưng không thể triển khai rộng rãi để có thể giải quyết hết các nhu cầu do chi phí đầu tư quá lớn. Việc nghiên cứu, áp dụng công nghệ Grid Computing là một giải pháp tốt để giải quyết các tình huống này. Hơn nữa, công nghệ Grid Computing hiện nay còn khá mới mẻ, đang trong giai đoạn hoàn thiện, việc cùng tham gia nghiên cứu với cộng đồng thế giới sẽ giúp chúng ta học hỏi kinh nghiệm, tiến tới làm chủ công nghệ, từ đó có thể phát triển theo hướng đi của riêng mình, đáp ứng nhu cầu tính toán hiệu năng cao ngày càng tăng của đất nước.

- ii -

Lời nói đầu

Với tinh thần tham gia nghiên cứu, học hỏi công nghệ, đề tài luận văn “Tìm hiểu công nghệ Grid Computing và ứng dụng thử nghiệm trong bài toán quản trị mạng” được thực hiện nhằm đi những bước đầu tiên trong quá trình nghiên cứu, phát triển, ứng dụng Grid vào thực tế. Luận văn nghiên cứu các vấn đề chung của công nghệ Grid Computing, bộ Globus Toolkit, tiến hành cài đặt một môi trường Grid với bộ Globus Toolkit, đề xuất mô hình và cài đặt thử nghiệm ứng dụng hỗ trợ quản trị mạng trên nền Grid. Luận văn được trình bày gồm 8 chương với nội dung như sau: Chương 1. Đặt vấn đề : Giới thiệu sơ lược về công nghệ Grid Computing và lĩnh vực quản trị mạng, đồng thời xác định mục tiêu của đề tài. Chương 2. Tổng quan về công nghệ Grid Computing : Giới thiệu các vấn đề của công nghệ Grid Computing, tìm hiểu và so sánh các phần mềm nền tảng Grid để có cái nhìn khá toàn diện về công nghệ Grid Computing hiện nay. Chương 3. Giới thiệu bộ Globus Toolkit phiên bản 3.2 : Giới thiệu mô hình và các cơ chế hoạt động của các thành phần trong bộ Globus Toolkit 3.2. Ở đây không thiên về giới thiệu chi tiết các triển khai cụ thể, điều này có thể tham khảo từ các tài liệu hướng dẫn sử dụng. Chương 4. Phát triển ứng dụng với Globus Toolkit 3.2 : Giới thiệu các vấn đề cần quan tâm khi xây dựng một ứng dụng Grid với bộ Globus Toolkit 3.2. Chương 5. Quản trị mạng và các hệ thống quản trị : Giới thiệu tổng quan về lĩnh vực quản trị mạng cũng như các hệ thống quản trị mạng. Chương 6. Hệ thống quản trị Grid NetManager : Giới thiệu mô hình hệ thống quản trị mạng dựa trên nền công nghệ tính toán Grid Computing. Chương 7. Phân tích, thiết kế, cài đặt thử nghiệm ứng dụng Grid NetManager. Chương 8. Kết luận : Là chương cuối cùng của luận văn, tóm lại các vấn đề đã nghiên cứu tìm hiểu, đề ra hướng phát triển trong tương lai.

- iii -

Chuẩn hoá Grid..6...........3......................... Đồ hình Grid (Grid Topology).......................xiii Chương 1..................... 21 2.........2......6............................................ Các việc cần làm ..8...............xii Tóm tắt luận văn......2................................. Mở đầu.....7.....3.................................................................................................ii Mục lục.....1................................ UNICORE.. Kiến trúc Grid trong thực tế.................................................................. Kiến trúc Grid ..................................... Quản lý thông tin ....................................... 22 2.............................................................................................................3............................. Globus..........................................................................................2........................ Tổng quan về công nghệ Grid Computing ........................ yêu cầu của công nghệ Grid..........4................................................... 19 2.....................5 2..........................................................5.............................................................................................x Một số thuật ngữ .................... 20 2.......................................4...............................7.....iv - ........1............................................................3........... 28 2.....3................. Phát triển ứng dụng......... Bảo mật (Security) ..... Các thành phần cơ bản của một hệ thống cơ sở hạ tầng Grid..1.. 6 2..6...................................... 17 2.............. 5 2.............1...................................2........... 3 1........................................................2........................ 27 2........... Quản lý dữ liệu ............................................................................................ Khái niệm.................................................................................... 1 1........................................................................................3........................................ 9 2. Quản lý tài nguyên (Resource Management) ....3........... Vấn đề quản trị mạng..........................1.........................................................................................2..3...................................................iv Danh sách hình ..........................................1................................................ Các kiểu Grid .......................................... 4 Chương 2...1............................................. 9 2......................................................6......... Mục tiêu đề tài ....................xi Các chữ viết tắt........................... 11 2........ Chi tiết Kiến trúc Grid tổng quát .. Theo dòng lịch sử ......i Lời nói đầu ............................................................... 15 2.................................................... 7 2.......2.......1 1............................................ Giới thiệu các dự án Grid middleware chính.......5...............................Mục lục Mục lục Lời cảm ơn .........................3....................... 5 2........................................ 35 2..................................................1.............................1........................................................8..................................... 24 2........................2...............................6........................8..................................................... 15 2............................... Phân loại Grid & Grid Topology .....viii Danh sách bảng .................. 27 2.............................. Tài nguyên của Grid ..........................3................. 36 2.................................................................................................................................3............................................................................................. Ích lợi & Ứng dụng....... 40 2.............2......... Khái niệm Grid .................... Các vấn đề khác ....1................................ 43 ......................... Các thách thức...................................... Công nghệ Grid Computing (tính toán lưới) .......................... Bản chất Kiến trúc Grid ....3.............. 20 2........... 40 2.................................................................... 20 2.......................................

........................3.......................2................................ Mô hình kiến trúc GT3 ..................................................................................1............... Việc cài đặt hệ thống ........................... 125 4........... Giới thiệu bộ Globus Toolkit phiên bản 3......................................................... 115 4..................................... 120 4.....................4.. Đánh tính khả thi của ứng dụng khi chạy trên Grid.....4.................1........2.................... Mô hình kiến trúc GT2 ..............3.......8.. 53 3....... 75 3.................................. Thiết kế tổng quan .......... 124 4.............. Phát triển ứng dụng với bộ Globus Toolkit 3........ 123 4........... 107 3..... 115 4........................ Hiệu suất ứng dụng(Performance) ........................................................1.. 122 4............ GridBus.................... 79 3................ Khả năng mở rộng (Scalability)................ 127 4..5....... Legion ...........................4...............................52 3................................................ 114 Chương 4................................... Service Oriented Architeture (SOA)..................................2..2.........1......... 53 3....... 53 3....... Data Management ................................ Tính mềm dẻo của ứng dụng (Flexibility) ......... Định hướng phát triển hệ thống .. Sercurity Infrastructure .4.........8....4................................... 45 2.... 121 4..........2..2................... OGSA.......................................................... chuẩn liên quan ..2.........................1.................................. 56 3. 124 4..... Vấn đề thông tin Grid ............. 118 4.............2.............. Kiến trúc Globus Toolkit ......................................................4.................... Một số vấn đề cần quan tâm trong thiết kế chi tiết và viết mã ...........2............................................... Giới thiệu ..............................................4..... Vấn đề phụ thuộc của công việc vào môi trường hệ thống....2....115 4......................... Bảo mật ............................................. 119 4...4............4................................... 79 3..........................10............................................................................... 48 Chương 3............................................................................................................ So sánh................... 126 4........ Triển khai cài đặt các Grid Service.2.......... 130 4................................................................12..................... Thành phần mới trong GT3 ...............2..............8......................................... 132 4.................................... Web Service........................................................5.5...1...... Khởi đầu dự án...........................................1......2......................................2............................ 131 4.......... Các công nghệ...... 118 4...............................1.................... 119 4.............3..........................................6.............. Kiến trúc ứng dụng ......2............ Các yêu cầu cần quan tâm khi xây dựng ứng dụng ........................8............................................1...........................................3............................................................Mục lục 2.................................... Môi trường đa nền tảng................. Tính tiện dụng......................1...........3.... Information Service .. 43 2................................................ Lịch sử phát triển .... Đồ hình công việc ..........2....................................... 52 3........................4............................... 76 3................ 117 4............................3.............................................................. Giới thiệu ....................... Các thành phần chính....................... Đồ hình hệ thống (System Topology)..................2.......................................2......................................................... 74 3......................2.................................................................................2................. Các kết nối với bên ngoài ........5........................4....................... 123 4.............. Định dạng file ................... 58 3.............2......................................3........................... 94 3................9...13...............3..2.......11...............................................2.. 113 3..... 118 4................4... Độ tin cậy (Reliability) ...........1........7.. 124 4. 124 4.........2...4.....2...............................................................................................................................................2................................ Xem xét sử dụng ngôn ngữ lập trình .................... Quản trị hệ thống (Management).................................3.... 133 -v- ..........2.......2. OGSI và Grid Service ................ 65 3...........4............................................................4.............. 52 3...........................................1.................4.................................................1.................... Resource Management..........

........................ 183 7................................................. Phân tích ........................... 184 7.....1.......2................3....................... 163 7.....1...........1.................2. Đặc tả Use Case ....... 152 Chương 6................................. mở rộng của luận văn ... 134 4....................................................................................................... Hướng phát triển......... 140 Chương 5.......................... 180 7........................... Ngữ cảnh hệ thống ............... Sơ đồ các đối tượng cài đặt.........................1.......................................2.. 144 5............... Lược đồ Use Case ........................................1......1. 161 7.............................................. 155 6...................... Một số chức năng cơ bản của một hệ thống quản trị mạng ....................3... 183 7.............1......................3..5........... 148 5...............2............................................................................................... Hệ thống quản trị mạng trong thực tế .....................2........1...... Hệ thống quản trị mạng ................. Cài đặt & Triển khai ......................4. Mô hình thành phần ..................... 186 8............ 161 7..........................................................................3........ Công cụ và môi trường phát triển ứng dụng... Quản trị mạng và các hệ thống quản trị.........................................................................................................................3.....4....2............... Hệ thống Intrusion Detection System (IDS)..... 186 8..1......3................. Kết luận...................2.... 155 6....... Snort...... Các hướng tiếp cận ............................................................................1...................................................................1................. Về luận văn .................2...... Về luận văn .....2...........................................1............. 184 7.. 187 8....................................................2......................2.4.....................1............ 149 5................ Các bước xây dựng và triển khai Grid Service............................................................... Xây dựng client......186 8.................3... Thử nghiệm........................................................ 157 6.... 144 5.................. Mô hình và hoạt động ..................................... Thiết kế giao diện ..................4............ Giới thiệu ý tưởng.............................................................. 162 7.............................................. Phân tích........1........ Hệ thống quản trị Grid NetManager....4....... 186 8...................................................................... Phân tích và định hướng phát triển ứng dụng.......................... Mô hình thành phần và hoạt động của hệ thống .................2.......................................................................................... 153 6............. Giới hạn vấn đề thực hiện của luận văn................... Thiết kế ........... 149 5.........................2...............2..................1.................................................... 179 7.................................................. Đánh giá................. Mô hình cài đặt ............3...................................................................................................................................153 6....................................2............ 158 6......3.................................................................................................3..4......... Mô hình triển khai................................. Khái niệm.. Khái niệm.............. Về ứng dụng...............3..... Ethereal ..... Cách thức hoạt động .....1.............. 179 7.... 150 5.......1......................................................1.161 7.....1....................... 185 Chương 8............................................................................................... 154 6.................................................... 142 5..... Mô tả các dòng sự kiện ............ 159 Chương 7..... Yêu cầu chức năng của một hệ thống quản trị mạng.. 187 ............. 167 7..................................5..3.......................... 146 5.............................................1. 142 5..............vi - ........142 5................................................................................... thiết kế và cài đặt thử nghiệm ứng dụng ..................................................2.....2.................................................2.........................................3................. 150 5.................... 149 5................................................................2...... 142 5...1...................... Quản trị mạng ....Mục lục 4... Các lĩnh vực quản trị mạng...1....................................................................5.................1.....3.................................. Giới thiệu một số công cụ hỗ trợ quản trị mạng ...........2....................................

................................................. 189 B......................2.............................................. 202 C............................................................. 188 Phụ lục........... 208 E................................................................................................. Kỹ thuật cài đặt các chức năng cơ bản của Grid Service ...................................... 196 C...................................6................................................. Cấu trúc một chứng chỉ điện tử . Cài đặt kỹ thuật tạo service động (Transient service) .. Thêm thành phần dữ liệu (Service Data Element (SDE))....................2......2.................................................................................1................................3..............3.................. Cài đặt cơ chế Notification................. Kỹ thuật quản lý chu trình sống của service (Lifecycle Management)............................5.................... Các tiêu chí đánh giá tính khả khi của một dự án Grid... 193 C. Các interface của một OGSI Service ................Mục lục 8........................7.................... Định dạng file GWSDL ..... 199 C................. Về ứng dụng.................................... Lời kết...vii - ..... 206 D................. Kỹ thuật cài đặt Operation Provider................. 205 C....................213 Các Website................189 A.............. Kỹ thuật Logging (Ghi vết)............................................................................................... 191 C............. 187 8.................................................... 211 Tài liệu tham khảo.........................................................216 ............................................................................................. 193 C..............

............. ....................................................................... 10 Hình 2-3 Các đồ hình Grid....................... 89 Hình 3-9 Thủ tục uỷ quyền của một proxy trong GSI..... 46 Hình 2-16 So sánh giữa UNICORE................................................................................ 110 Hình 3-18 Các thành phần và cơ chế hoạt động của MDS2..................................................... Legion và GridBus............................................ 98 Hình 3-12 Các thành phần và cơ chế hoạt động của pre-WS GRAM ............................................................................................................. 12 Hình 2-5 Đồ hình IntraGrid ........... ................................. 49 Hình 3-1 Các thành phần của kiến trúc SOA................. 41 Hình 2-14 Kiến trúc của Legion... ......................................................................... 128 Hình 4-3 Luồng ứng dụng mạng.......................Danh sách hình Danh sách hình Hình 2-1 Tài nguyên Grid dưới quan điểm của người dùng. 87 Hình 3-7 Thủ tục chứng thực và phân quyền với GSI............................ 75 Hình 3-3 Mô hình các thành phần của một hệ thống sử dụng GT2......................................................... 34 Hình 2-10 Kiến trúc Grid trong thực tế với các thành phần. 36 Hình 2-12 Mối quan hệ giữa các chuẩn về Grid Service................................................................................................................................................... 76 Hình 3-4 Mô hình tổ chức các thành phần GT3................................... 13 Hình 2-6 Đồ hình ExtraGrid ....................... 29 Hình 2-9 Quan điểm của các lập trình viên về kiến trúc Grid............................................................................................................... 99 Hình 3-13 Cơ chế hoạt động có DUROC trong pre-WS GRAM................................ 105 Hình 3-15 Mô hình quản lý thông tin trong Grid của Globus Toolkit...................................................... .............................................................................................. ...................... .................................................... 9 Hình 2-2 Hình thức hoạt động của Grid Tính toán........................................................................... 77 Hình 3-5 Các thành phần của GSI........................................................................... 155 Hình 6-2 Mô hình các thành phần của ứng dụng Grid NetManager thử nghiệm........................................................ ......................................... 162 .. 151 Hình 6-1 Mô hình thành phần ứng dụng Grid NetManager...................................................................................................... 139 Hình 5-1 Mô hình hệ thống quản trị mạng ...viii - ...... 54 Hình 3-2 Kiến trúc của bộ Globus Toolkit............................................................. 39 Hình 2-13 Mô hình kiến trúc hoạt động của UNICORE . ............................ 129 Hình 4-4 Các file cần thiết để triển khai Grid Service với Ant........................................................... ............ 95 Hình 3-11 Các trạng thái của một công việc......................................... Globus......................... ..................... 90 Hình 3-10 Kiến trúc quản lý tài nguyên trong Globus Toolkit.................................................................................... ................... 11 Hình 2-4 Đồ hình SimpleGrid ................................................................... 107 Hình 3-16 Ví dụ tổ chức dữ liệu của MDS2...................................................................................................................... ...................................................................................... 161 Hình 7-2 Sơ đồ Usecase ứng dụng Grid NetManager thử nghiệm...................... .................................................................................................. 35 Hình 2-11 Các dự án Grid tương ứng với các tầng..................................... .... 101 Hình 3-14 Các thành phần và cơ chế hoạt động của WS-GRAM................................ ....... ................................ 128 Hình 4-2 Luồng ứng dụng tuần tự... . ........................... 88 Hình 3-8 Cơ chế ủy quyền trong GSI.......................................... .. 109 Hình 3-17 Mô hình tổ chức dữ liệu phân cấp trong MDS2.............................................. 14 Hình 2-7 Các minh họa về đồ hình InterGrid..................... là một khối thống nhất có được nhờ sự ảo hoá........ 111 Hình 4-1 Luồng ứng dụng song song..................................................................................... ............................... 80 Hình 3-6 Quy trình khởi tạo để sử dụng GSI...................................................................... .... 15 Hình 2-8 Kiến trúc Grid tổng quát...... 44 Hình 2-15 Kiến trúc GridBus........... 160 Hình 7-1 Ngữ cảnh hệ thống............... 144 Hình 5-2 Màn hình giao diện Ethereal.......................................................

............................................................................................................ 196 Hình 8-4 Sơ đồ hoạt động của cơ chế Notification trong GT3.... 184 Hình 7-7 Sơ đồ triển khai ứng dụngGrid NetManager thử nghiệm..................................................Danh sách hình Hình 7-3 Sơ đồ lớp cài đặt lớp đối tượng.......................................................................... ......................................................................... 182 Hình 7-6 Mô hình cài đặt..... 184 Hình 7-8 Mô hình cài đặt thử nghiệm......................................... 194 Hình 8-3 Ví dụ về SDE của MathService............................................................................................................................ ......................................... 179 Hình 7-4 Màn hình chính ứng dụng Grid NetManager thử nghiệm ... 211 .......................... 200 Hình 8-5 Cấu trúc một chứng chỉ điện tử...... 194 Hình 8-2 Cài đặt intrface củaGrid service bằng kỹ thuật Operation Provider......ix - ............................................... 185 Hình 8-1 Lớp triển khai interface của Grid service bằng kỹ thuật kế thừa. 181 Hình 7-5 Màn hình Packet Capture Configue ...............

............................................................................................................. 114 Bảng 6-1 Các thành phần của ứng dụng Grid NetManager......................................... 180 Bảng 7-5 Mô tả màn hình chính.......................... 206 Bảng 8-3 Các interface của một OGSI Service ..... 184 Bảng 8-1 Các tiêu chí đánh giá tính khả thi của ứng dụng Grid............................. 162 Bảng 7-3 Danh sách các đối tượng cài đặt................................. .................................................................................................................... 190 Bảng 8-2 Các hàm callback trong GT3........................................................ ............................................................. ...... ............................... 156 Bảng 7-1 Danh sách các actor.............................................................Danh sách bảng Danh sách bảng Bảng 2-1 Các đặc tính của tài nguyên..................................................... 162 Bảng 7-2 Danh sách các usecase .............. 211 -x- .......................................................... ......................... 72 Bảng 3-3 Các file cấu hình GSI của GT3..................................................... 92 Bảng 3-4 Bảng các công cụ cấu hình GSI...... 61 Bảng 3-2 Các thuộc tính cơ bản của một service data.................. 16 Bảng 2-2 Bảng so sánh các đặc tính của các middleware ........................... 94 Bảng 3-6 Bảng các hàm API của pre-WS GRAM.............................................................................. 50 Bảng 3-1 Bảng các interface chuẩn quy định bởi OGSA..................................... 182 Bảng 7-6 Mô tả màn hình cấu hình bắt packet................................................ ................. 102 Bảng 3-7 Các thành phần của GT Core .......................... 183 Bảng 7-7 Các thành phần triển khai.............................................................................. ............................. 180 Bảng 7-4 Danh sách các giao diện.......................................................... ........................... 93 Bảng 3-5 Bảng các hàm API về GSI của GT3 ...............................................................................................................................................................................

là một liên minh tạm thời giữa các tổ chức trong Grid dùng để chia sẽ tài nguyên. Người sử dụng dịch vụ Grid Tổ chức ảo. Service data Site User Virtual Organization Các tiêu chuẩn lọc packet. cung cấp dịch vụ. Là một hệ thống tính toán sử dụng công nghệ Grid Computing Công nghệ tính toán lưới. Là một thành phần tạo lập và quản lý các Grid service instance. Host Protocol Proxy Server Service. Các giao thức quy định các thức liên lạc giữa các thành phần thông qua hệ thống mạng. Là một thành phần đại diện cho người dùng Grid thực thi các tác vụ.Một số thuật ngữ Một số thuật ngữ Capture filter Client Factory Grid Grid Computing Grid service instance Hosting environment Interface (OGSA) Lifecyle Middleware Node. có thể là các máy tính hay các thiết bị tính toán khác.xi - . Giao diện của một OGSA Service. Một thể hiện của Grid service. Môi trường mà trên đó các Grid Service có thể thực thi. Chu trình sống của Grid Service Là phần mềm cho phép tổ chức. tích hợp các tài nguyên và các chức năng vào Grid Là một nút của Grid. Một dịch vụ Grid theo khái niệm đưa ra bởi OGSA. sử dụng dịch vụ. Máy chủ. . Grid service(OGSA). Máy khách. Thành phần dữ liệu của một Service Là một đơn vị tham gia đóng góp tài nguyên cho Grid. có hệ thống quản trị riêng.

xii - .Các chữ viết tắt Các chữ viết tắt CA DN EJB GGF GSH GSI GSR GT{x} GWSDL MDS OGSA OGSI PKI RA SDE SOA SSL URI WSDL WSRF Certificate Authority Distinguished Name Enterprise JavaBeans Global Grid Forum Grid Service Handle Grid Security Infrastructure Grid Service Referance Globus Toolkit Version x Grid Web Services Description Language Metacomputing Directory Service Open Grid Services Architecture Open Grid Services Infrastructure Public Key Infrastructure Registrant Authority Service Data Element Service Oriented Architeture Secure Sockets Layer Uniform Resource Indicator Web Services Description Language Web Services Resource Framework .

Grid computing.Tóm tắt luận văn Tóm tắt luận văn 1. Grid sevice. Một số từ khoá liên quan đến tài Grid. MSSV : 0112132 2. các thách thức. 2. Các thuật toán. Globus. quy trình chính được nghiên cứu. một số vấn đề khi phát triển ứng dụng Grid với bộ Globus Toolkit phiên bản 3. cũng như các dự án chính về cơ sở hạ tầng Grid nhằm đưa ra một tầm nhìn tổng quan về công nghệ Grid Computing hiện nay. Nghiên cứu. Lĩnh vực áp dụng Tính toán lưới. ứng dụng trong đề tài 6. từ đó đề xuất mô hình ứng dụng hệ thống quản trị mạng sử dụng công nghệ Grid Computing làm nền tảng tính toán và tiến hành cài đặt thử nghiệm một số chức năng của ứng dụng. phương pháp. MSSV : 0112280 Họ và tên : Nguyễn Mạnh Dũng. 3. chi tiết các chuẩn sử dụng. tính toán lưới. … 4. ứng dụng trong đề tài . kiến trúc. Các công cụ. Quản trị mạng. các hệ thống phát hiện xâm nhập. network management. Họ và tên : Nguyễn Đăng Thành. Thông tin chung về đề tài: Tên đề tài: “Tìm hiểu công nghệ Grid Computing và ứng dụng thử nghiệm trong bài toán quản trị mạng” GVHD: Thầy CAO ĐĂNG TÂN. ích lợi. Sinh viên thực hiện: 1. các chuẩn liên quan. Tóm tắt nội dung luận văn Luận văn thực hiện nghiên cứu tìm hiểu các vấn đề chung của công nghệ Grid Computing như bản chất. yêu cầu. Tìm hiểu về mô hình.2. tìm hiểu lĩnh vực quản trị mạng và các hệ thống quản trị.xiii - . công nghệ chính được nghiên cứu. 5. hoạt động các thành phần.

.0 • Môi trường lập trình C/C++ trong Linux với thư viện giao diện đồ hoạ GTK.2 và phát triển ứng dụng với nó.xiv - .Tóm tắt luận văn • Hệ điều hành và môi trường mạng Linux Redhat 9. • Bộ Globus Toolkit 3.

các dự án nghiên cứu vũ trụ. ngày nay họ muốn giả lập hàng ngàn phân tử thuốc. Do đó số lượng máy tính hiện nay trên thế giới là rất lớn với tổng cộng năng lực xử lý và lưu trữ khổng lồ. các thế hệ máy tính ngày nay đã trở nên mạnh và rẻ hơn rất nhiều so với các thế hệ trước đó. hàng năm ngành Vật lý Năng lượng cao (High Energy Physics) tạo ra khoảng 10 Petabytes (dung lượng của khoảng 20 triệu đĩa CD-ROM) dữ liệu. hàng ngày phải lưu trữ và phân tích khoảng 100 Gigabytes dữ liệu ảnh chụp từ vệ tinh. lưu trữ lớn : . từ công việc hàng ngày. Tuy nhiên. Công nghệ Grid Computing (tính toán lưới) Với những tiến bộ trong nền công nghiệp sản xuất phần cứng máy tính. Mở đầu 1. phức tạp trong khoa học. phân tán khắp nơi theo địa lý. Việc phân tích. Mở đầu Chương 1. Từ đó dẫn đến lãng phí rất lớn. Ở đây cho thấy cần phải có năng lực lưu trữ rất lớn. các ứng dụng ngày nay chỉ mới sử dụng được một phần rất nhỏ năng lực xử lý và lưu trữ do các ứng dụng chỉ chạy trên các máy tính cục bộ. protein và tác dụng tương hỗ giữa chúng để tạo ra các loại thuốc mới.Trong khoa học : Cách đây 10 năm các nhà sinh học đã rất vui mừng khi họ có thể giả lập một đơn phân tử trên máy tính. đơn lẻ. Hay các nhà vật lý địa cầu thực hiện theo dõi bầu khí quyển. tầng ozone.1. Để nghiên cứu các hạt cơ bản và tương tác giữa chúng. Một câu hỏi được đặt ra là làm sao tận dụng tốt hơn năng lực của máy tính. máy tính đã trở nên phổ dụng khắp nơi trên thế giới. đi sâu vào mọi công việc của con người. thương mại đòi hỏi năng lực xử lý tính toán. -1- . giải mã bộ gen người. công sở.… cũng cần năng lực xử lý rất lớn. nghiên cứu khoa học.Chương 1. con người càng ngày càng đối mặt với nhiều vấn đề lớn. Cùng với sự hữu ích. Mặt khác. kinh doanh đến sản xuất. theo đà phát triển.

làm thay đổi cách thức chúng ta tính toán.Chương 1. . ý tưởng về “siêu máy tính” toàn cầu đã có cơ sở để trở thành hiện thực.. các công ty đa quốc gia. lưu trữ ngày càng lớn như vậy. các dự án nghiên cứu đầu tiên về lĩnh vực này đã khai sinh ra công nghệ Grid Computing. Thực tế khiến người ta nảy sinh ý tưởng phải kết hợp các máy tính phân tán khắp nơi trên thế giới trở thành một siêu máy tính khổng lồ nhằm tận dụng năng lực tính toán.Trong thương mại: Các bài toán phân tích xử lý số liệu kinh tế của các quốc gia. khi các công nghệ mạng chưa phát triển thì ý tưởng trên hầu như chưa thực hiện được. các hệ thống phát hiện tấn công. một nhóm các máy tính(cluster) hay thậm chí một siêu máy tính chuyên dụng cũng không thể đáp ứng được nhu cầu tính toán. Một số bài toán cũng có thể được giải quyết nhưng rất khó khăn. thực hiện các tính toán phức tạp trực tuyến trên các dữ liệu đó. giả lập trong thiết kế sản phẩm công nghiệp… Bài toán xử lý thông tin trong quản trị mạng. xâm nhập mạng. Đến những năm cuối thế kỷ XX. còn những bài toán khác có thể nói là không thể giải quyết được với công nghệ tính toán hiện nay. Công nghệ Grid Computing ra đời được dự đoán là công nghệ nền tảng của thế kỷ XXI. …. giống như Internet đã từng làm -2- . Mở đầu Vấn đề hợp tác giữa hàng ngàn nhà khoa học trên toàn thế giới. … Các công ty cung cấp dịch vụ mạng cho hàng triệu người dùng trên toàn thế giới. hiệu năng mạng tăng gấp đôi sau mỗi 9 tháng. Một máy tính đơn. lưu trữ hiện đang lãng phí để giải quyết các bài toán phức tạp trên đây với chi phí thấp hơn. Trước đây. Các bài toán mô phỏng. hỗ trợ việc chia sẻ một lượng lớn dữ liệu. Nhưng hiện nay. các công nghệ mạng máy tính đã phát triển vượt bậc. tổ chức nào cũng thực hiện được (đặc biệt là các nước đang phát triển). với chi phí rất cao mà không phải quốc gia.

khối lượng tính toán khổng lồ với chi phí thấp (vì chúng ta còn nghèo. quản lý Kinh tế-Xã hội ngày càng cao. hướng tiếp cận sử dụng công nghệ Grid Computing để tận dụng thời gian nhàn rỗi -3- . Công nghệ Grid Computing đã mở ra cơ hội mới cho các nước không có nền công nghiệp thiết kế. đáp ứng nhu cầu người dùng là một công việc hết sức khó khăn. Do đó. chúng ta mới đang đi những bước đầu tiên… 1. Ở Việt Nam. Quản lý thông tin hoạt động của người dùng. mạng máy tính đã trở nên phổ biến khắp nơi với quy mô ngày càng lớn. Hiện nay. công việc của bộ phận quản trị hệ thống mạng. giảm thiểu nguy cơ hệ thống bị xâm hại. Việc đưa vào sử dụng các thiết bị chuyên dụng có chi phí rất cao. đòi hỏi phải xử lý những khối lượng dữ liệu lớn. bộ phận quản trị cần một hệ thống theo dõi. Tối ưu. Vấn đề quản trị mạng Ngày nay. Để thực hiện tốt công việc của mình. đảm bảo cho hệ thống hoạt động ổn định. nên 1 máy tính PC không thể thu thập và xử lý được mà cần một máy lớn hoặc các thiết bị chuyên dụng hơn. phát triển ứng dụng công nghệ Grid Computing vào thực tế được xem là một giải pháp quan trọng để giải quyết các bài toán trên.Chương 1. việc nghiên cứu. quản lý hiệu quả tài nguyên mạng Lập tài liệu về các mức độ đe doạ đối với hệ thống. tạo ra các siêu máy tính để giải quyết các bài toán của riêng mình với chi phí thấp và độ làm chủ cao. chế tạo phần cứng máy tính mạnh. giám sát các hoạt động trên mạng nhằm : Xác định các lỗi thiết bị. phát hiện và ngăn chặn các hoạt động xâm phạm hệ thống mạng. cấu hình trong hệ thống mạng. kinh phí đầu tư cho ngành Công nghệ thông tin chưa cao).2. Hiện nay. Công việc quản lý trên đòi hỏi không những phải phân tích dữ liệu chạy trong hệ thống mạng theo thời gian thực mà còn phải phân tích các dữ liệu ghi vết (log) về các hoạt động trong hệ thống. nhu cầu ứng dụng công nghệ thông tin vào các hoạt động nghiên cứu Khoa học-Kỹ thuật. Mở đầu thay đổi cách thức trao đổi thông tin trong thế kỷ XX. Do đó. Do đó. để lập kế hoạch đối phó. hiệu năng cao. lượng dữ liệu lưu thông trong mạng máy tính là rất lớn. không thích hợp cho các hệ thống mạng vừa và nhỏ.

Hệ thống quản trị mạng chỉ là một công cụ hỗ trợ. + Cài đặt. + Nghiên cứu và đề xuất mô hình hệ thống quản trị mạng trên nền tảng công nghệ Grid Computing. các vấn đề. Xây dựng thử nghiệm một số chức năng điển hình của hệ thống quản trị để hiểu biết thêm về kỹ thuật xây dựng và phát triển ứng dụng Grid. góp phần vào việc phát triển và ứng dụng công nghệ Grid Computing vào thực tiễn. tìm hiểu được. các hướng giải quyết chủ yếu của nó nhằm làm tiền đề tham khảo cho việc ứng dụng. + Tìm hiểu về quản trị mạng và các hệ thống quản trị mạng. Các chương tiếp theo trình bày những vấn đề đã nghiên cứu. hỗ trợ các nhà quản trị mạng được đưa ra. -4- . tìm hiểu mô hình. việc sử dụng thông tin. 1. Mục tiêu đề tài Nhằm tìm hiểu. chính sách quản trị là nhiệm vụ của các nhà quản trị mạng. phát triển công nghệ Grid trong tương lai. đề tài: “Tìm hiểu công nghệ Grid Computing và ứng dụng thử nghiệm trong bài toán quản trị mạng” được thực hiện với một số mục tiêu: + Tìm hiểu về công nghệ Grid Computing hiện nay để có một bức tranh tổng quan về công nghệ. thiết lập các chiến lược. một bộ công cụ xây dựng Grid hàng đầu hiện nay.3. cách thức lập trình và phát triển ứng dụng của bộ Globus Toolkit.Chương 1. Mở đầu của các máy PC trong hệ thống mạng để xử lý thông tin. môi trường. kiến trúc.

Ví dụ như ý tưởng “chia sẻ năng lực tính toán” đã xuất hiện từ những năm 6070 của thế kỷ XX. Tuy trước đó đã có nhiều ý tưởng về Grid nhưng nguồn gốc của Grid chính thức được xác định vào năm 1990. nhưng thực ra nhiều ý tưởng cơ bản về Grid đã xuất hiện dưới dạng này hay dạng khác trong lịch sử tính toán. ảnh hưởng lớn đến các công nghệ nền tảng trong các dự án Grid ngày nay là FAFNER (Factoring via Network-Enabled Recursion) và I-WAY(Information Wide Area Year) ra đời. Năm 1965. Đó là một hệ thống cung cấp năng lực tính toán tương tự như hệ thống cung cấp điện. chỉ cần cắm thiết bị vào hệ thống cung cấp. khi thuật ngữ “siêu tính toán” (metacomputing) ra đời. Tổng quan về công nghệ Grid Computing 2. Người dùng khi muốn sử dụng tài nguyên tính toán để xử lý công việc.Chương 2. Khái niệm Grid ra đời ở phòng thí nghiệm Argonne National Laboratory vào tháng 7/1997.1.1. Theo dòng lịch sử Mặc dù công nghệ Grid Computing được nhắc đến rất nhiều trong thời gian gần đây. Tổng quan về công nghệ Grid Computing Chương 2. sử dụng và trả tiền giống như khi cắm thiết bị điện vào lưới điện. những người phát triển hệ điều hành Multics (tiền thân của hệ điều hành Unix) đã đề cập đến việc sử dụng năng lực tính toán như là một tiện ích.1. Khái niệm Grid 2. lúc đó toàn bộ năng lực tính toán được chia sẻ từ các máy mainframe. một quan điểm rất gần với quan điểm về Grid hiện nay. nước hiện đang được sử dụng trong cuộc sống hàng ngày. 2 dự án siêu tính toán quan trọng. dùng để mô tả các dự án kết nối các trung tâm siêu máy tính của Mỹ nhằm kết hợp sức mạnh xử lý của nhiều siêu máy tính lại với nhau. Đến năm 1995. sau đó được đưa vào quyển sách "The Grid: Blueprint for a New Computing Infrastructure" viết bởi tiến sỹ -5- Ian Foster (Argonne National .

phân tán cho phép chia sẻ. chi phí. tập đoàn công nghệ thông tin. chia sẻ các tài nguyên không được quản lý tập trung Grid tích hợp và phối hợp tài nguyên. Ian Foster đã từng tham gia dự án I-WAY. ứng dụng có quy mô lớn trong khoa học. và đã thu được những thành tựu bước đầu. Có thể nói. hay nhiều tổ chức khác nhau. các công nghệ hiện hành ở mức cao hơn. 2. đầu tư của nhiều tổ chức. thành viên.1.2. khả năng. toàn bộ việc liên minh này dựa trên các mạng máy tính” Một hệ thống Grid có những đặc trưng sau: 1. thuộc nhiều tổ chức khác nhau dựa trên tính sẵn sàng. kết hợp các tài nguyên phân tán theo địa lý. chính sách quản trị. liên kết với nhau để chia sẻ tài nguyên và/hoặc kỹ năng nhằm đáp ứng tốt hơn các cơ hội kinh doanh hoặc các dự án có nhu cầu lớn về tính toán và dữ liệu. kỹ thuật và thương mại. phần cứng máy tính. Sự phát triển không ngừng của cơ sở hạ tầng. mạng đã giúp các hệ thống Grid ngày nay thực hiện được nhiều điều hơn những ý tưởng trước đây. nhiều đơn vị khác nhau trong một tổ chức. Khái niệm Một định nghĩa về Grid khá hoàn chỉnh được đưa ra bởi tiến sỹ Ian Foster như sau : “Grid là một loại hệ thống song song. chi phí của chúng và yêu cầu về chất lượng dịch vụ (QoS) của người dùng để giải quyết các bài toán. Tổng quan về công nghệ Grid Computing Laboratory) và Carl Kesselman (University of Southern California) năm 1998. người dùng thuộc nhiều vùng quản lý khác nhau. -6- .Chương 2. nhiều quốc gia. Từ đó đến nay. Có sự kết hợp. các liên minh tạm thời giữa các tổ chức và tập đoàn. Carl Kesselman là người tham gia dự án Globus Toolkit. Từ đó hình thành nên các “tổ chức ảo” (Virtual Organization (VO)). việc phát triển công nghệ Grid trở nên rất sôi động với sự tham gia nghiên cứu. việc phát triển và xây dựng hệ thống Grid là sự kế thừa và phát triển các ý tưởng. một dự án nền tảng của công nghệ Grid và Metacomputing. lựa chọn.… nảy sinh trong quá trình chia sẻ và sử dụng tài nguyên. Công nghệ Grid tập trung giải quyết các vấn đề về bảo mật.

Tài nguyên lưu trữ Tài nguyên phổ biến thứ nhì trong Grid là tài nguyên lưu trữ.1. liên quan đến ví dụ như thời gian đáp ứng. là các chu kỳ tính toán (computing cycles) được cung cấp bởi bộ vi xử lý của các thiết bị trong Grid. Tổng quan về công nghệ Grid Computing 2.3. 2.3. kiến trúc. hiệu suất. Grid được xây dựng trên các giao thức và giao diện tổng quát. Tài nguyên tính toán Đây là tài nguyên phổ biến nhất. Đáp ứng yêu cầu cao về chất lượng dịch vụ.1.2. 3. mang tính mở. phân quyền. cho phép kết hợp nhiều kiểu tài nguyên để đáp ứng nhu cầu phức tạp của người dùng.3.1. 2. Có 3 cách để khai thác tài nguyên tính toán của Grid: 1. Các bộ vi xử lý không cần phải cùng loại mà có thể có tốc độ. bảo mật. ổ đĩa cứng hoặc các thiết bị lưu trữ khác. Mục tiêu là phải phối hợp làm sao để khả năng của hệ thống sau khi kết hợp phải lớn hơn hẳn tổng khả năng của từng đơn vị cấu thành nên Grid. Mỗi thiết bị trong Grid thường cung cấp một số dung lượng lưu trữ phục vụ cho việc thực thi ứng dụng trên Grid. Bộ nhớ trong thường dùng để lưu trữ dữ liệu tạm thời cho ứng -7- . Grid cho phép sử dụng phối hợp các tài nguyên để cung cấp nhiều loại dịch vụ với các mức chất lượng khác nhau. chạy phần mềm khác nhau.1. Thiết kế ứng dụng. tìm kiếm và truy xuất tài nguyên. Chạy ứng dụng thực thi nhiều lần trên nhiều node khác nhau trong Grid. tính sẵn sàng.Chương 2. đa dụng để giải quyết các vấn đề cơ bản như chứng thực người dùng. Tài nguyên của Grid Các tài nguyên của Grid bao gồm các loại sau 2. Cách đơn giản nhất là chạy các ứng dụng hiện có trên một node của Grid thay vì chạy trên máy tính cục bộ. Sử dụng các giao diện và giao thức chuẩn. 2. đa dụng. Tài nguyên lưu trữ có thể là bộ nhớ trong. tách các công việc thành các phần riêng rẽ để có thể thực thi song song trên nhiều bộ xử lý khác nhau. 3.

khả năng chia sẻ và đảm bảo tính tin cậy của dữ liệu. 2. Các thiết bị đặc biệt Là các thiết bị dùng trong khoa học.Chương 2. nó sẽ gửi dữ liệu đến node đã được cài đặt phần mềm và cho thực thi. phục vụ cho các bước phân tích. Phương tiện liên lạc Khả năng liên lạc giữa các máy tính phát triển nhanh chóng đã giúp cho công nghệ Grid trở nên hiện thực. 2. Tổng quan về công nghệ Grid Computing dụng.3.3. các bộ cảm biến (sensor).3. Khả năng về băng thông trong những trường hợp như vậy là một tài nguyên then chốt. kỹ thuật như kính viễn vọng. do đó đây cũng là một tài nguyên quan trọng. Việc giao tiếp với bên ngoài được thực hiện thông qua mạng Internet.1. ảnh hưởng đến khả năng của Grid. của một đơn vị mà có thể thuộc nhiều tổ -8- . xử lý sau này.3.4. khi một công việc cần đến chúng.1. Đây có thể là một giải pháp tốt để tiết kiệm chi phí về bản quyền phần mềm. Ở đây bao gồm việc liên lạc.… Các thiết bị này chủ yếu thu thập các dữ liệu khoa học. Vì các kết nối này không chia sẻ một đường truyền nên làm tăng băng thông truy cập Internet. Các đường truyền dự phòng đôi khi cần thiết để giải quyết tốt hơn các vấn đề về hư hỏng mạng và truyền dữ liệu lớn. Thông qua Grid. trong khi các thiết bị lưu trữ ngoài có thể được sử dụng để tăng không gian lưu trữ. ứng dụng Grid có thể được cài đặt các phần mềm mà có thể quá mắc để cài trên tất cả mọi máy tính trong Grid. tăng hiệu suất.5. có thể không thuộc quyền quản lý của một tổ chức. Grid có thể sử dụng các kết nối Internet để liên lạc giữa các node. trao đổi dữ liệu giữa các thành phần trong Grid và giao tiếp giữa Grid với bên ngoài. Phần mềm.1. Ghi chú: Các tài nguyên trên đây đến từ nhiều nguồn khác nhau. Các phần mềm này chỉ cần được cài trên một số node. 2. Một số công việc đòi hỏi một lượng dữ liệu lớn nhưng các dữ liệu này thường không nằm trên máy đang thực thi công việc.

là một khối thống nhất có được nhờ sự ảo hoá.2. đến lượt nó. đa dạng nhằm đưa ra một cái nhìn thống nhất. Phân loại Grid & Grid Topology 2. các tài nguyên Grid là một khối thống nhất.1. Hình 2-1 Tài nguyên Grid dưới quan điểm của người dùng. trong khi một số khác được sử dụng dưới những chính sách nhất định. đơn giản về toàn bộ tài nguyên trên Grid sao cho dưới mắt của người dùng. các tổ chức ảo lại thực hiện chia sẻ tài nguyên của mình để hình thành Grid lớn hơn. Có 3 loại Grid như trình bày dưới đây. Tuy nhiên không có ranh giới phân biệt rõ ràng giữa các loại Grid và trong thực tế.Chương 2. tạo thành một kho tài nguyên khổng lồ. Hình 2-1 minh hoạ ý tưởng này.2. -9- . Thông thường Grid được phân loại bởi kiểu của ứng dụng cần giải quyết. Một số tài nguyên có thể được sử dụng tự do. 2. các giải pháp Grid thường là sự kết hợp 2 hay nhiều loại khác nhau. ở nhiều nơi khác nhau. Các kiểu Grid Công nghệ Grid Computing có thể được sử dụng theo nhiều cách khác nhau để giải quyết các loại yêu cầu ứng dụng. Các tài nguyên được “ảo hóa” (virtualize) để che dấu sự phức tạp. Tổng quan về công nghệ Grid Computing chức. Các tài nguyên ảo được tổ chức lại thành các “tổ chức ảo”.

tính toán rất lớn.1. Người dùng không cần biết chính xác vị trí dữ liệu khi thao tác với dữ liệu.2. không gian lưu trữ là tài nguyên. Grid Tính toán (Computation Grid) Loại Grid này tập trung chủ yếu vào việc sử dụng năng lực tính toán.1. Hình 2-2 minh họa quá trình này.Chương 2. Việc phân tán các tác vụ tính toán trong Grid sẽ làm giảm rất đáng kể toàn bộ thời gian xử lý và tăng khả năng tận dụng hệ thống. đóng vai trò quan trọng trong các Grid Dữ liệu.2. sau đó phân phối đến các node trên Grid. Các cơ sở dữ liệu. đặc biệt các cơ sở dữ liệu liên hợp. .1. Grid Dữ liệu (Data Grid) Ở đây. Một Grid Dữ liệu chịu trách nhiệm lưu trữ và cung cấp khả năng truy cập dữ liệu cho nhiều tổ chức khác nhau.2. Hình thức thực hiện là chia tác vụ tính toán lớn thành nhiều công việc nhỏ thực thi song song trên các node của Grid. Ở dạng Grid này.10 - . Mỗi node sẽ thực hiện xử lý dữ liệu và trả kết quả về hệ thống chính để hệ này tổng hợp và trình diễn kết quả toàn cục cho người dùng. Thông thường một hệ thống chính sẽ chia khối dữ liệu cần xử lý thành các phần nhỏ. Hình 2-2 Hình thức hoạt động của Grid Tính toán 2. nhất là khi có nhiều nguồn dữ liệu và xuất hiện nhu cầu kết hợp các thông tin từ các nguồn dữ liệu này. phần lớn các node là các máy tính hay các nhóm máy tính(cluster) có năng lực xử lý. Tổng quan về công nghệ Grid Computing 2.

2. .2. Trong trường hợp này. Đồ hình Grid đơn giản nhất là SimpleGrid.3. từ một nhóm vài máy tính đặt trong một phòng ban đến hàng trăm nhóm máy tính tổ chức theo kiểu phân cấp trải rộng khắp thế giới. không chỉ có hệ thống file hay các cơ sở dữ liệu mà toàn bộ dữ liệu của tổ chức cần tập hợp lại. Hình 2-3 cho thấy độ lớn của các đồ hình Grid. 2. Đồ hình Grid (Grid Topology) Grid có thể được xây dựng theo nhiều kích cỡ khác nhau. Phần này sẽ giới thiệu sơ nét về một số đồ hình Grid cơ bản. Hình 2-3 Các đồ hình Grid. 2. Ở đây có thể phải kết hợp giữa Grid Dữ liệu và Grid Tính toán.2.1.Chương 2. Chủ nhân của máy để bàn thường có quyền xác định khi nào thì chia sẻ chiếc máy của mình. Độ phức tạp của đồ hình Grid tương ứng với số lượng tổ chức tham gia Grid và các ràng buộc về địa lý. Các máy tính thường được kiểm tra định kỳ để xem khi nào bộ xử lý và các tài nguyên khác rảnh rỗi để thực hiện các tác vụ Grid.11 - . chỉ bao gồm một số máy tính đồng nhất ở cùng một vị trí. Tổng quan về công nghệ Grid Computing Các Grid Dữ liệu có thể được sử dụng trong lĩnh vực khai thác dữ liệu(data mining) hoặc các hệ thống thương mại thông minh. Scavenging Grid Một Scavenging Grid thường được dùng với một lượng lớn các máy tính để bàn.

cùng kiến trúc phần cứng nên việc chọn các phần mềm ứng dụng khá đơn giản.Chương 2. kết nối vào mạng cục bộ.1. thường chỉ dùng để thử nghiệm. . Dạng Grid này sử dụng các hệ thống đồng nhất nên ít phức tạp. SimpleGrid Hình 2-4 Đồ hình SimpleGrid Như trên hình 2-4. làm quen với các phần mềm Grid. Các máy tính thuộc một phòng ban trong tổ chức nên việc sử dụng chúng cho Grid không cần các chính sách đặc biệt về quản lý cũng như bảo mật. một SimpleGrid chỉ bao gồm vài máy tính. Đồ hình này khiến người ta liên tưởng đến các cluster hơn là Grid. Các máy tính chạy cùng hệ điều hành. chạy cùng một hệ điều hành.2. dễ dàng. tất cả đều có cùng kiến trúc phần cứng. Tổng quan về công nghệ Grid Computing 2.12 - .2.

Các máy tính tham gia Grid có thể thuộc nhiều phòng ban khác nhau nhưng vẫn trong cùng một tổ chức. sử dụng mạng nội bộ để kết nối các hệ thống trong Grid là các đặc tính quan trọng của đồ hình này. độ ưu tiên của các phòng ban. Lúc này xuất hiện các hệ thống không đồng nhất. các chính sách mới về cách sử dụng Grid cần phải được xác lập và áp dụng. Ví dụ: cần phải có chính sách quy định những công việc nào được thực hiện trên Grid. nhiều loại tài nguyên mới trong Grid. .… Bên cạnh đó vấn đề bảo mật cũng cần được quan tâm.2. Hình 2-5 Đồ hình IntraGrid Mở rộng hơn một chút so với SimpleGrid là IntraGrid. Sử dụng cùng một chính sách bảo mật. IntraGrid Hình 2-5 mô tả một Intra Grid.Chương 2. các dữ liệu nhạy cảm của một phòng ban cần được bảo vệ khỏi sự truy cập từ các công việc của các phòng ban khác. Việc chia sẻ file có thể sử dụng các hệ thống file mạng (network filesytem). Hệ thống Grid cần có các module lập lịch.2. Tổng quan về công nghệ Grid Computing 2. Khi Grid mở rộng ra nhiều phòng ban.13 - . Các máy tính dành riêng cho Grid bắt đầu được đưa vào để làm tăng chất lượng dịch vụ của Grid. vào thời điểm nào. thay vì phải trông chờ vào các tài nguyên rảnh rỗi.2.

các tài nguyên mang tính động hơn. Như trong hình 2-6.4. Khách hàng hay bất kỳ tổ chức hợp lệ nào khác đều có thể truy cập Grid thông qua các kết nối Internet và WAN. Đối với ExtraGrid. Các tài nguyên có thể được mua từ các nhà cung cấp tin cậy. tài nguyên và dịch vụ. Cần có các dịch vụ cung cấp thông tin (information service) để tìm kiếm tài nguyên. Grid cần phải linh động trong việc quản lý các tài nguyên. . do đó độ phức tạp trong quản lý tăng lên rất nhiều. tìm kiếm tài nguyên ở mức toàn cầu. ExtraGrid Vẫn trong cùng một tổ chức. cần có cơ chế kiểm soát và phục hồi lỗi. ExtraGrid liên quan đến nhiều vùng quản lý khác nhau.3. Hình 2-6 Đồ hình ExtraGrid 2.2.2.2. mua bán. InterGrid Theo thời gian. Hình 2-7 minh hoạ các InterGrid. Tổng quan về công nghệ Grid Computing 2.Chương 2. Trong dạng Grid này. sử dụng các kết nối truy cập từ xa hay WAN. cấp độ bảo mật cao nhất cần được áp dụng để ngăn ngừa các khả năng bị tấn công và gián điệp. các Grid mở rộng ra khỏi một tổ chức và bắt đầu liên kết nhiều tổ chức với nhau. phân tán theo địa lý. InterGrid cung cấp khả năng trao đổi.14 - . Một InterGrid đòi hỏi việc liên kết động các ứng dụng. được dùng để phối hợp giữa các tổ chức trong các dự án lớn.2. ExtraGrid là sự kết hợp 2 hay nhiều IntraGrid.

2. Quản lý tài nguyên (Resource Management) Mục tiêu của công nghệ Grid Computing là chia sẻ. phối hợp cấp phát tài nguyên và thanh toán chi phí. áp dụng các chính sách cục bộ và toàn cục. và cho nhiều phương thức sử dụng khác nhau từ đơn người dùng đến đa người dùng. lập lịch.3. Tài nguyên thuộc nhiều vùng quản trị khác nhau Các tài nguyên Grid phân tán theo địa lý qua nhiều vùng quản trị và được sở hữu và quản lý bởi nhiều tổ chức khác nhau. từ mô hình client-server đến peer-to-peer để kiểm soát chi tiết. cần phải giải quyết các thách thức và yêu cầu chính sau đây: 1. từ đó đưa ra mô hình chất lượng dịch vụ. sensor. file. sử dụng hiệu quả nhiều loại tài nguyên đến từ nhiều nguồn khác nhau. để chia sẻ nhiều loại tài nguyên khác nhau từ các chương trình. yêu cầu của công nghệ Grid 2. bao gồm kiểm soát truy cập.3. bảo mật giữa các tổ chức. tương thích với các chính sách quản trị và sử dụng tài nguyên cục bộ. chia sẻ. phối hợp. từ hướng hiệu suất đến hướng chi phí.Chương 2. Các thách thức. Cần có một cơ chế chia sẻ có tính mềm dẻo cao.…. Grid cần phải tôn trọng. dữ liệu đến các máy tính. ủy quyền. Không thể chờ đợi một sự thống nhất chung về các chính sách sử dụng.1. chính xác cách sử dụng các tài nguyên chia sẻ. Để thực hiện được điều đó. . Tổng quan về công nghệ Grid Computing Hình 2-7 Các minh họa về đồ hình InterGrid.15 - .

thời gian. 4. Yêu cầu của ứng Đa dạng về tốc độ xử lý. các hệ thống quản lý tài nguyên cục bộ khác nhau. nhà cung cấp và người chiến lược sử dụng dùng có các mục tiêu và chiến lược chia sẻ. sở hữu khác nhau. sử dụng nhiều công nghệ. 7. phân tán theo địa lý. Việc tồn tại của tài nguyên trong Grid thay đổi theo thời gian Trong Grid.…Đây cũng là một thách thức lớn để đảm bảo tính tin cậy của . Việc chia sẻ này phải được quản lý chặt chẽ và đặc tả rõ ràng giữa các bên cung cấp và sử dụng về những gì được chia sẻ. 3. hỗn tạp Grid phải quản lý nhiều tài nguyên không đồng nhất về bản chất.16 - . ai được phép chia sẻ. Ngay cả khi có 2 site cùng sử dụng một công nghệ. Bảng 2-1 Các đặc tính của tài nguyên. Đối Tượng Đặc tính Người dùng. các chính sách chia sẻ của nhà cung cấp. lỗi mạng. Yêu cầu chất lượng Đa dạng dịch vụ Chi phí/Giá cả Thay đổi tuỳ theo tài nguyên. 5. bộ nhớ.Chương 2. 6. người dùng. sử dụng khác nhau. ở điều kiện nào thì việc chia sẻ được thực hiện. Tổng quan về công nghệ Grid Computing Cần có cơ chế dàn xếp việc chia sẻ tài nguyên giữa các bên tham gia (bên cung cấp và bên sử dụng) hợp lý. 2. Người Phân tán theo địa lý cung cấp Tài nguyên Đa dạng. đòi hỏi về năng lực dụng lưu trữ. năng lực mạng. 2. thuộc nhiều vùng quản trị. các tài nguyên có thể xuất hiện hoặc biến mất mà không hề báo trước do nhiều nguyên do khác nhau như lỗi hệ thống. Tài nguyên đa dạng. Dưới đây là bảng đặc tính các đối tượng cần quản lý cho thấy sự phức tạp trong quản lý tài nguyên: STT 1. một hệ quản lý tài nguyên cục bộ nhưng có cấu hình khác nhau cũng dẫn đến có các chức năng khác nhau. 3. Tính sẵn sàng và Thay đổi theo thời gian khả năng của tài nguyên Các chính sách và Đa dạng và không tập trung.

theo thời gian thực (online) Cần có cơ chế cho phép thoả thuận sử dụng tài nguyên trong thời gian thực thi để đáp ứng nhu cầu của ứng dụng. để chương trình có thể truy cập đến các tài nguyên được phép khác của người dùng. phát hiện và phục hồi lỗi. Có khả năng tích hợp được với các chính sách bảo mật cục bộ . Đăng nhập một lần (Single sign-on) Một tính toán đơn giản cũng cần phải sử dụng nhiều tài nguyên khác nhau. nhất là trong trường hợp các yêu cầu và tính chất các tài nguyên thay đổi trong quá trình thực thi.17 - . … ngoài ra cần đáp ứng các yêu cầu sau: 1. 4.2. bảo vệ thông điệp. vì thế nếu cứ mỗi lần truy xuất tài nguyên lại cần phải chứng thực người dùng là điều không thực tế và không thể chấp nhận được. toàn vẹn dữ liệu. Vấn đề điều khiển trực tuyến. phân quyền. 2. theo dõi. Cho phép ủy quyền Đây là một yêu cầu quan trọng. khởi tạo các quá trình tính toán. hệ thống Grid cần có cơ chế cho phép người dùng chỉ cần chứng thực một lần mà có thể sử dụng nhiều tài nguyên khác nhau. 3. Cần có các cơ chế tìm kiếm. và quản lý chúng trên các tài nguyên.Chương 2. đến lượt nó cũng cần có khả năng ủy quyền cho các chương trình khác. Vấn đề phối hợp cấp phát tài nguyên Các ứng dụng có nhiều đòi hỏi về tài nguyên mà chỉ có thể đáp ứng bằng cách sử dụng song song các tài nguyên trên nhiều site khác nhau. 5.3. Các chính sách quản trị cục bộ của các site cùng với khả năng bị lỗi trong quá trình cấp phát tài nguyên đòi hỏi phải có các cơ chế đặc biệt để phối hợp cấp phát nhiều tài nguyên. để thực hiện được yêu cầu “đăng nhập một lần” thì cần phải có sự uỷ quyền. Và chương trình. xác định tài nguyên. Bảo mật (Security) Các hệ thống Grid cần phải cung cấp đầy đủ các chức năng bảo mật truyền thống như chứng thực. Người dùng cần có khả năng uỷ quyền cho các chương trình sử dụng các quyền của mình. Thay vào đó. 2. Tổng quan về công nghệ Grid Computing hệ thống.

7. bảo vệ các gói dữ liệu trong các protocol không đảm bảo tính tin cậy (UDP). những tiến trình này cần phải liên lạc với nhau theo từng nhóm. Đảm bảo tính riêng tư Một trong những khả năng của Grid là cho phép xử lý dữ liệu trên máy tính ở xa. hỗ trợ các protocol vận chuyển tin cậy khác ngoài TCP. Tổng quan về công nghệ Grid Computing Mỗi site hoặc nhà cung cấp tài nguyên đều có chính sách bảo mật riêng của mình. Ví dụ. hệ thống bảo mật không được yêu cầu các nhà cung cấp phải hợp tác. 4. sao cho các người dùng hay nhà quản trị trên máy tính ở xa không thể xâm nhập. thì người dùng cũng có thể sử dụng kết hợp 2 site A.Chương 2. không được thay thế toàn bộ các giải pháp này mà cho phép kế thừa. nếu người dùng có quyền sử dụng 2 site A và B. Sử dụng các quan hệ tin cậy lẫn nhau dựa theo người dùng Để cho phép người dùng sử dụng kết hợp tài nguyên từ nhiều nhà cung cấp khác nhau. sử dụng lại. Hỗ trợ bảo mật liên lạc nhóm Một quá trình tính toán được cấu thành từ nhiều tiến trình khác nhau. Grid cần có giải pháp để thực hiện bảo mật cho các nhóm này. Ghi chú: Các giải pháp bảo mật trên Grid cũng nên cung cấp sự hỗ trợ mềm dẻo cho công tác bảo vệ liên lạc (ví dụ như điều khiển được mức độ bảo vệ. B liên lạc với nhau. Điều này đảm bảo tính tương thích với nhiều hệ thống khác nhau. Do đó. 5. Cho phép có nhiều cài đặt khác nhau Các giải pháp bảo mật không nên chỉ tập trung vào một cài đặt cụ thể mà nên cài đặt theo nhiều công nghệ khác nhau dựa trên một nền tảng chung. liên lạc với nhau để thiết lập môi trường bảo mật. . Các nhóm có thể thay đổi trong suốt quá trình tính toán. các giải pháp bảo mật trên Grid cần phải liên kết được với các giải pháp cục bộ.…) và cho phép các nhà cung cấp ra quyết định về phân quyền cũng như hạn chế ủy quyền theo nhiều cách khác nhau.18 - . sử dụng các dữ liệu đang được xử lý trên máy tính của mình. Từ đây cũng nảy sinh vấn đề cần bảo vệ tính riêng tư của dữ liệu. B cùng lúc mà không cần các chuyên gia bảo mật của site A. 6.

phần mềm cũng như các thông tin trạng thái như tải hiện tại và trạng thái hàng đợi trong trường hợp tài nguyên được lập lịch sử dụng và có các cơ chế cung cấp các thông tin này gần như theo thời gian thực.19 - . Đưa ra các cách thức truy xuất mềm dẻo đến hệ thống thông tin. Tổng quan về công nghệ Grid Computing 2. Một trong những mục tiêu của hệ thống thông tin là đơn giản hoá việc tìm kiếm thông tin để ra các quyết định sử dụng tài nguyên thích hợp. do đó cần có những kỹ thuật cho phép cài đặt. Quản lý thông tin Hệ thống thông tin Grid cần có các cơ chế hỗ trợ việc truy cập. Cần có mô hình quản lý thông tin phân tán. triển khai. do đó hệ thống thông tin cần phải được xây dựng theo mô hình dữ liệu đơn nhất (uniform). tìm kiếm thông tin trong khi giảm thiểu các chi phí về công sức và tài nguyên cần thiết để tạo lập. có thể được thêm bớt theo thời gian. cập nhật cùng với khả năng tìm kiếm. cập nhật các thông tin cả ở từng site lẫn toàn bộ Grid. Các hệ thống thông tin Grid cần có khả năng phát sinh thông tin từ nhiều nguồn khác nhau để cung cấp các thông tin tổng hợp về hệ thống.3. .Chương 2. tìm kiếm thông tin các loại về hệ thống Grid một cách nhanh chóng. Hệ thống thông tin cần hỗ trợ theo dõi thông tin của một lượng rất lớn các thành phần. Các hệ thống thông tin Grid cần phải có khả năng này. Do tài nguyên của Grid rất đa dạng. chính xác. nên cho phép uỷ quyền tạo lập và quản lý thông tin tài nguyên cho các site. cung cấp một giao diện chung để truy xuất nhiều thông tin khác nhau. Mô hình quản lý thông tin cần đủ bao quát để biểu diễn các cấu trúc thông tin trong môi trường tính toán phân tán. định vị thông tin. người dùng cần có khả năng đọc. Một trong những thách thức là biểu diễn được các thuộc tính liên quan đến nhiều site cùng lúc (ví dụ như : băng thông liên lạc giữa các site). do đó khả năng tích hợp thêm các thông tin mới vào hệ thống là rất quan trọng. Cần có các chức năng để xác định đặc tính phần cứng. cho phép nhiều loại thực thể truy cập. Hệ thống thông tin chỉ có thể hữu dụng khi nó được triển khai rộng rãi.3. bảo trì dễ dàng trên các site khác nhau.

tinh giảm dữ liệu từ xa. quản lý. chia nhỏ.6. điều khiển việc thực thi của các tiến trình. phân tích.3. hiệu suất của Grid cũng giảm xuống. di chuyển . hiệu quả thông qua một giao diện chung mà không cần biết đến vị trí của dữ liệu. hệ thống quản lý dữ liệu cần có các cơ chế quản lý sao cho có thể che đi sự phức tạp của dữ liệu. đọc ghi một loạt các file hoặc các chức năng chọn lựa. Quản lý dữ liệu Cần có mô hình quản lý dữ liệu phân tán. 2. . chi phí quản lý cũng tăng theo. Cần xây dựng các mô hình. đồng bộ hoá các tiến trình. Cho phép sắp xếp các vị trí dữ liệu và có cơ chế lập lịch truy xuất dữ liệu tối ưu nhằm nâng cao hiệu suất của Grid.… nhằm tận dụng tối đa khả năng của hệ thống. cần phải đưa ra các mô hình.20 - . Các vấn đề khác Khi kích cỡ Grid tăng lên. kiểm soát. khởi động. cung cấp cho người dùng cách thức truy cập đơn giản. Cần có các cơ chế truyền file hiệu suất cao. dữ liệu. do đó khi xây dựng các công nghệ Grid cần tính toán khả năng mở rộng của hệ thống. Tổng quan về công nghệ Grid Computing 2. tạo điều kiện đưa công nghệ Grid Computing vào thực tế. bảo mật. Cần có các cơ chế quản lý tiến trình để đặt chỗ trước trên tài nguyên. 2.5. băng thông. CPU).Chương 2. công việc. các cơ chế điều khiển việc cấp phát tài nguyên phục vụ truyền dữ liệu (không gian.3. cho phép kết hợp dữ liệu từ nhiều nơi khác nhau. Phát triển ứng dụng Việc xây dựng Grid gặp khó khăn hơn nhiều so với các ứng dụng bình thường hiện nay. các môi trường lập trình. Cần có cơ chế di chuyển dữ liệu đến nơi xử lý mà không tạo ra hiệu ứng cổ chai trong hệ thống mạng hoặc các vấn đề về truy xuất dữ liệu khác. các bộ công cụ phát triển ứng dụng cho Grid nhằm đơn giản hóa việc phát triển ứng dụng.3.4. phương pháp giải quyết các vấn đề như chia sẻ.

. dạng đặc biệt của tài nguyên lưu trữ này đòi hỏi các cơ chế để quản lý phiên bản mã nguồn và mã thực thi của các đối tượng để đảm bảo tính tương thích. Cần có một giao diện chuẩn để chuyển các yêu cầu của người dùng và khả năng của tài nguyên thành một ngôn ngữ duy nhất bất kể nền tảng phần cứng. 2. Tích hợp các thành phần phần cứng và phần mềm đơn lẻ thành tài nguyên kết hợp thông qua hệ thống mạng. Các việc cần làm Các bước chung trong quá trình hiện thực hoá Grid: 1. Grid cần phải cung cấp các công cụ đơn giản để hỗ trợ người dùng để xác định các dịch vụ. Xây dựng và triển khai + Middleware cấp thấp để cung cấp môi trường truy cập bảo mật và trong suốt đến các tài nguyên. 3. số lượng và chất lượng (QoS ) của chúng. 2. Tổng quan về công nghệ Grid Computing Về mã thực thi ứng dụng. quản lý hiệu suất.21 - . Phát triển và tối ưu hoá các ứng dụng phân tán để tận dụng khả năng tài nguyên và cơ sở hạ thầng. chất lượng trong trường hợp này liên quan đến khả năng truy cập dịch vụ một cách nhanh chóng thông qua các giao diện hoàn hảo. Cần có một hệ thống quản lý phân phối hợp lý giữa các nhu cầu của người dùng với khả năng của tài nguyên. Do đó. trạng thái tài nguyên. các hệ thống chứng thực thông minh và các đường truyền tốc độ cao. theo dõi việc sử dụng các dịch vụ. Nguời dùng mong muốn có thể dùng môi trường ảo của Grid với chất lượng gần giống như trên hệ thống cục bộ. + Middleware cấp cao và các công cụ phục vụ kết hợp các tài nguyên phân tán và phát triển ứng dụng. phần mềm của mỗi tài nguyên phân tán nhằm mục đích phối hợp hoạt động. quản lý đăng nhập và bảo mật. và cung cấp các dịch vụ cộng thêm khác như quản lý tài nguyên cục bộ.3.Chương 2.7.

ví dụ. tính toán tài chính. có thể chuyển hoạt động đến các tài nguyên nhàn rỗi khác. Một tổ chức thường gặp các vấn đề không mong đợi khi các hoạt động đòi hỏi thêm nhiều tài nguyên hơn. Một chức năng của Grid nữa là cân bằng sử dụng tài nguyên tốt hơn. Tổng quan về công nghệ Grid Computing 2. Sử dụng CPU song song Khả năng sử dụng các CPU song song là một đặc tính tuyệt vời của Grid.… Grid cho phép kết hợp nhiều không gian lưu trữ nhàn rỗi để tạo thành một không gian lưu trữ lớn hơn. được cấu hình để tăng hiệu suất. 2. các máy tính cá nhân thường chỉ sử dụng hết 5% thời gian xử lý CPU. còn Grid cho phép mở rộng trên phạm vi toàn . sức mạnh tính toán do Grid cung cấp có thể giúp giải quyết các bài toán đòi hỏi năng lực xử lý lớn trong các ngành khác như y dược. ngay cả các server cũng thường “rảnh rỗi”. hoặc phân nhỏ một công việc rồi gửi các công việc con đến các máy tính nhàn rỗi khác cho xử lý song song. hỗ trợ hoạch định các chiến lược sử dụng tài nguyên. độ tin cậy hơn so với các máy đơn lẻ thông qua các cơ chế quản lý dữ liệu. 3. công nghiệp vũ trụ.4. dự báo thời tiết.Chương 2. Với Grid. … và rất nhiều lĩnh vực khác.22 - . làm việc giữa một cộng đồng rộng lớn trên toàn thế giới. từ đó làm tăng khả năng chịu đựng của hệ thống. thiết kế sản phẩm. do đó có thể cho phép theo dõi tổng quan về các hoạt động sử dụng tài nguyên trong các tổ chức lớn. Ích lợi & Ứng dụng Một số ích lợi khi sử dụng công nghệ Grid Computing 1. ngoài việc hỗ trợ các nhu cầu tính toán của các nhà khoa học. Cho phép hợp tác trên toàn thế giới Một trong những đóng góp quan trọng của công nghệ Grid Computing là cho phép và đơn giản hoá hợp tác chia sẻ. gửi một công việc trên một máy tính đang bận rộn đến một máy khác rảnh rỗi hơn để xử lý. hoặc có thể thêm các tài nguyên mới một cách dễ dàng. tận dụng các tài nguyên nhàn rỗi. Grid có thể tối ưu sử dụng các tài nguyên nhàn rỗi này theo nhiều cách khác nhau. Grid có thể quản lý nhiều loại tài nguyên. khai thác dầu hoả. Khai thác. Các công nghệ tính toán phân tán trước đây cũng cho phép hợp tác nhưng chỉ trong một phạm vi nhỏ. kinh tế. Hầu hết các tổ chức đều có một lượng lớn các tài nguyên tính toán nhàn rỗi.

ứng dụng đó có thể được gửi đến nhiều máy tính trong Grid có các kết nối Internet riêng. Các hệ thống trong Grid thường rẻ và phân tán theo địa lý. bản quyền. tuy nhiên với chi quá đắt khi phụ kiện đi kèm cũng phải nhân lên. đắt đỏ để tăng độ tin cậy. Trong tương lai. các hướng tiếp cận mới để giải quyết vấn đề độ tin cậy dựa nhiều hơn vào các công nghệ phần mềm hơn là các phần cứng đắt tiền. Ví dụ. để khi có một vi xử lý bị hỏng. Nếu quan trọng hơn nữa. Tăng tính tin cậy cho các hệ thống máy tính. sử dụng tất cả các loại tài nguyên Không chỉ cho phép chia sẻ các chu kỳ tính toán. nhiều bản dự phòng của các các công việc quan trọng có thể được chạy trên nhiều máy tính khác nhau trong Grid để đảm bảo độ tin cậy tối đa. toàn bộ phần còn lại không bị ảnh hưởng. nếu có sự cố về nguồn điện hay các lỗi hệ thống khác tại một vị trí. cho phép “cắm nóng”. Grid có thể cho phép chia sẻ tất cả các loại tài nguyên mà trước đây chưa được chia sẻ. Grid là sự khởi đầu cho các công nghệ đó. các hệ thống tính toán sử dụng các phần cứng chuyên dụng. Hiện nay. Tổng quan về công nghệ Grid Computing cầu khi đưa ra những chuẩn quan trọng cho phép các hệ thống không đồng dạng làm việc chung với nhau để tạo nên một hệ thống tính toán ảo cung cấp rất nhiều dạng tài nguyên khác nhau. từ đó băng thông truy cập Internet của anh ta tăng lên rất nhiều lần. nếu một người dùng muốn tăng băng thông kết nối Intenet của mình lên để thực hiện một ứng dụng khai thác dữ liệu. Các giải pháp này làm tăng độ tin cậy của hệ thống. 4. Cho phép chia sẻ.Chương 2. phần mềm. các dịch vụ. có thể thay thế cái khác mà không làm ngưng hoạt động của hệ thống.… 5. Tăng khả năng quản trị các hệ thống Mục tiêu ảo hoá tất cả các tài nguyên và cung cấp giao diện quản lý đơn nhất các hệ thống hỗn tạp đem lại những cơ hội mới để quản trị tốt hơn trong các cơ sở . Một máy tính có thể sử dụng các bộ vi xử lý đôi. trong các hệ thống theo thời gian thực. có thể sử dụng các “chip” có các mạch dự phòng để có thể phục hồi lỗi khi có sự cố về phần cứng. 6. do đó. Các phần mềm quản trị Grid có khả năng thực thi lại công việc trên một node khác khi phát hiện có lỗi hệ thống. các thiết bị đặc biệt.… Ví dụ. như băng thông mạng.23 - . dữ liệu.

hệ thống ngân hàng cho phép chuyển tiền một các nhanh chóng. Bên cạnh đó. chia sẻ giữa các cộng đồng. Tuỳ theo thiết kế và cách sử dụng Grid. cơ sở hạ tầng Grid cần phải vừa đơn giản.5. 2. Do đó. Grid cho phép quản lý độ ưu tiên sử dụng tài nguyên của các dự án này. đòi hỏi phải thu thập. Với tầm nhìn rộng hơn do Grid cung cấp. yêu cầu rút ngắn thời gian hoàn thành kết quả càng nhanh càng tốt. các tình huống trên có thể được giải quyết dễ dàng. thiếu tài nguyên do gặp các sự kiện không lường trước. Vấn đề là phải hiểu rõ bản chất Grid. mỗi dự án thường chịu trách nhiệm quản lý một số tài nguyên. Trước đây. Công nghệ Grid Computing có thể được ứng dụng trong các bài toán trong khoa học lẫn thương mại: + Đòi hỏi năng lực xử lý lớn (High-performance computing). đối với tầm quản lý vĩ mô. + Hướng dữ liệu. + Cần sự hợp tác. Tổng quan về công nghệ Grid Computing hạ tầng công nghệ thông tin lớn. cơ sở hạ tầng cần phải được triển khai rộng rãi. lưu trữ. Để có thể hữu dụng. Các thành phần cơ bản của một hệ thống cơ sở hạ tầng Grid Một cơ sở hạ tầng (infrastructure) là một công nghệ cho phép chúng ta thực hiện các hoạt động của mình. thường xảy ra tình trạng các tài nguyên của dự án này đang nhàn rỗi trong khi dự án khác đang gặp vấn đề. vừa hỗ trợ được nhiều dạng tài nguyên khác nhau. ví dụ hệ thống đường giao thông cho phép đi lại bằng xe.24 - . phân tích một lượng lớn dữ liệu. phân tán. Trên đây giới thiệu một số ích lợi khi sử dụng công nghệ Grid Computing.Chương 2. Grid còn mang lại rất nhiều lợi ích khác mà không thể kể hết ở đây. điều đó cũng có nghĩa là nó phải đơn giản hoặc có giá trị to lớn hoặc cả hai. Phần này sẽ giới thiệu tổng quan về các thành phần chính yếu của một môi trường Grid. một số thành phần có thể . tuỳ vào tình huống cụ thể mà đem lại các lợi ích khác nhau. sử dụng tốt các công cụ nhằm khai khác tốt nhất trong các tình huống cụ thể. có nhiều dự án sử dụng cơ sở hạ tầng công thông tin. mang tính phân tán.

Bộ lập lịch (scheduler) Khi các tài nguyên đã được xác định và cấp phát.25 - . bất kỳ môi trường Grid nào cũng phải có các cơ chế bảo mật. bước tiếp theo là phải xác định được các tài nguyên thích hợp để sử dụng. Ở mức cơ sở. do đó thành phần bảo mật của Grid là hết sức quan trọng. Tùy thuộc vào ứng dụng và các thông số cung cấp bởi người dùng. Tổng quan về công nghệ Grid Computing không cần thiết và đôi khi trong một số trường hợp. Bảo mật Các máy tính trong Grid đều được nối mạng và chạy các ứng dụng. Tuy nhiên. theo dõi tiến trình. Giao diện người dùng thuộc một trong 2 dạng: + Giao diện cung cấp bởi ứng dụng đang chạy của người dùng. Portal/Giao diện người dùng Truy cập thông tin trên Grid là việc rất quan trọng. 2. Nếu có một tập các công việc riêng lẻ. + Giao diện cung cấp bởi các nhà quản trị Grid giống như portal cho phép khả năng truy xuất đến các ứng dụng và tài trong Grid như trong một không gian ảo duy nhất. thành phần giao diện người dùng đảm nhiệm chức năng này. Việc này đòi hỏi các chức năng của một broker. 3. 1. có thể kết hợp nhiều thành phần lại thành một thành phần phức hợp. Một Grid portal đưa ra một giao diện cho người dùng để chạy các ứng dụng sử dụng các tài nguyên và dịch vụ của Grid. 4. nhưng thường thì nó liên quan đến các hàng đợi công việc ưu tiên. quản lý tải. tìm kiếm các tài nguyên đã đăng ký sử dụng.. Cần có các bộ lập lịch để xác định các node thực thi ứng dụng và gửi các công việc được yêu cầu đến các node. nếu . người dùng sẽ thực thi ứng dụng.Chương 2. Việc này có thể đơn giản là lấy tài nguyên sẵn sàng tiếp theo trong hệ thống. Giao diện kiểu portal cũng có thể giúp người dùng học cách sử dụng Grid. không phụ thuộc vào nhau thì không cần các bộ lập lịch phức tạp. Broker Khi đã được chứng thực. chúng có thể phải xử lý các dữ liệu nhạy cảm hoặc có giá trị lớn. bước tiếp theo là lập lịch điều phối các công việc chạy trên đó.

Tổng quan về công nghệ Grid Computing muốn giữ chỗ các tài nguyên đặc biệt hay chắc chắn rằng các công việc chạy song song thì nên sử dụng các bộ lập lịch để phối hợp hoạt động của các công việc. cần phải có thành phần này. hệ thống Grid cần có thành phần quản lý công việc và tài nguyên. tin cậy để di chuyển các file và dữ liệu qua lại giữa các node trong Grid. bao gồm cả các module thực thi của ứng dụng. các cluster có thể được xem là một tài nguyên đơn lẻ. chúng có bộ lập lịch riêng để quản lý các node của nó. Trên đây là giới thiệu vắn tắt và tổng quan về các thành phần chính của môi trường Grid. Thành phần quản lý công việc và tài nguyên (Job and resource management) Sau khi đã có các tiện nghi như trên. Do đó. Để giải quyết các tác vụ nòng cốt như khởi chạy ứng dụng với các tài nguyên cụ thể. có nhiều cách khác nhau để kết hợp các thành phần này lại với nhau để tạo nên một giải pháp Grid. Tuỳ thuộc vào việc triển khai Grid và các yêu cầu của ứng dụng.Chương 2. Một bộ lập lịch cấp cao hơn dùng để quản lý các công việc cần thực hiện trên cluster trong khi bộ lập lịch cục bộ của cluster sẽ điều phối các công việc cụ thể trên từng máy tính con. cần phải di chuyển thì cần phải có các phương pháp an toàn. Các thành phần khác Còn có nhiều thành phần khác để đưa vào môi trường Grid và cần được xem xét khi thiết kế và cài đặt ứng dụng. Lưu ý. Thành phần quản lý dữ liệu (Data management) Nếu bất cứ dữ liệu nào. 6. .26 - . Ví dụ : Các tiện ích như liên lạc giữa các tiến trình (Inter Process Communication) và các dịch vụ hỗ trợ tính toán chi phí và chi trả là những tiện ích được yêu cầu nhiều nhất. 7. việc tiếp theo là xây dựng các dịch vụ hỗ trợ việc thực hiện các công việc thật sự trong môi trường Grid. theo dõi trạng thái các công việc. nhận kết quả. 5.

.1. Điều này khiến cho việc thành lập các VO động là không thể thực hiện hoặc cũng chỉ thành lập được VO theo một kiểu nào đó mà thôi. Kiến trúc Grid phải là kiến trúc dựa chuẩn. Sau khi có được kiến trúc Grid. Việc thiết lập. kiến trúc Grid. Tổng quan về công nghệ Grid Computing 2. việc tiếp theo là xây dựng các hàm API và các bộ SDK để cung cấp các công cụ cần thiết để phát triển các ứng dụng chạy trên nền Grid. nhờ đó có thể xây dựng các service cao cấp hơn một cách dễ dàng. Sở dĩ vấn đề “liên kết hoạt động” được xem là vấn đề cơ bản vì các mối quan hệ chia sẻ có thể phải được thiết lập giữa các bên tham gia khác nhau về các chính sách. với các protocol xác định các cơ chế nền tảng để người dùng và nhà cung cấp tài nguyên thương lượng. quản lý và khai thác các mối quan hệ chia sẻ tài nguyên. “liên kết hoạt động” đồng nghĩa với việc sử dụng các protocol chung. ở đây cũng cần các protocol và cú pháp chuẩn để chia sẻ tài nguyên. Trong môi trường mạng. liên kết hoạt động tốt. các thành viên trong VO sẽ thực hiện các chính sách chia sẻ song phương và không chắc rằng các cơ chế sử dụng cho 2 thành viên này sẽ mở rộng được cho các thành viên khác. để dễ mở rộng. giữa các môi trường khác nhau về nền tảng.6. hướng mở. kiến trúc Grid sẽ là kiến trúc protocol. Cũng giống như Web đã làm bùng nổ việc chia sẻ thông tin bằng cách cung cấp các protocol và cú pháp chuẩn (HTTP và HTML) dùng cho việc trao đổi thông tin. khai thác các quan hệ chia sẻ tài nguyên giữa các tổ chức ảo đòi hỏi phải có kiến trúc hệ thống mới.27 - . Kiến trúc Grid dưới đây được xây dựng dựa trên quan niệm “để các VO hoạt động hiệu quả đòi hỏi phải thiết lập được các quan hệ chia sẻ với bất kỳ đơn vị tham gia tiềm năng nào”. ngôn ngữ. thiết lập. quản lý.Chương 2. Do đó. Các protocol chuẩn sẽ giúp định nghĩa các service chuẩn. môi trường lập trình. vấn đề “liên kết hoạt động” (interoperability) cần phải được tập trung giải quyết. Kiến trúc Grid 2.…Nếu không có nó. có tính khả chuyển (portability) cao. Để làm được điều này.6. Bản chất Kiến trúc Grid “Tổ chức ảo”(VO) là đơn vị cơ bản quan trọng trong hệ thống Grid.

Tổng quan về công nghệ Grid Computing Để giải quyết vấn đề “liên kết hoạt động”. Vì các protocol quy định việc giao tiếp giữa các thành viên chứ không quy định thành viên đó phải như thế nào. Vì protocol xác định cách các thành phần phân tán trao đổi với nhau để đạt được một mục đích nào đó. để các thỏa thuận chia sẻ tài nguyên có thể được thiết lập. vì các nhà phát triển ứng dụng cần phải có công cụ để hỗ trợ phát triển các ứng dụng phức tạp trong môi trường Grid. Các thành phần trong một tầng có chung đặc điểm. thì việc xây dựng các service là cần thiết và quan trọng. chi phí phát triển và bảo trì là những mối quan tâm quan trọng. các service là bản cài đặt cụ thể của các protocol.2. thay đổi một cách nhanh chóng. Việc xây dựng các service cơ bản phục vụ truy cập đến tài nguyên tính toán. các chính sách cục bộ được giữ lại. Khi đã có các protocol. Cũng cần phải xây dựng các bộ API và SDK. Do đó các protocol được cần đến. 2. Chi tiết Kiến trúc Grid tổng quát Sau gần 10 năm tập trung nghiên cứu. người dùng cũng phải có khả năng thực thi được các ứng dụng này.6. xác định các cấu trúc thông tin cần thiết trong quá trình trao đổi. gọn nhẹ. Sức mạnh. nên các cơ chế xác định. Các VO thường hay thay đổi. cho phép chia sẻ mã. tính chất. các nhà phát triển công nghệ Grid đã có những thống nhất đáng kể về kiến trúc Grid. việc xây dựng các protocol là quan trọng. tăng tính khả chuyển cho ứng dụng. dữ liệu. phát triển. là một kiến trúc phân tầng như trong hình 2-8. theo Ian Foster. Tất nhiên.Chương 2. Một trong những kiến trúc Grid được chấp nhận nhiều nhất được đưa ra bởi Ian Foster. API và SDK chỉ hỗ trợ thêm chứ không thể thay thế các protocol được. Các API và SDK có thể giúp tăng tốc việc phát triển mã. chia sẻ và sử dụng tài nguyên cần phải mềm dẻo.28 - . nên khi dùng các protocol. Các cơ chế chia sẻ không được ảnh hưởng đến các chính sách cục bộ. tính đúng đắn của ứng dụng. Kiến trúc Grid. tìm kiếm tài nguyên.… cho phép xây dựng các service cao cấp hơn cho ứng dụng đồng thời trừu tượng hoá các chi tiết về tài nguyên. phần dưới đây sẽ giới thiệu về kiến trúc này. và phải cho phép các thành viên quản lý được các tài nguyên của họ. có thể được xây dựng . lập lịch và đồng bộ hoá. tích luỹ kinh nghiệm. sao chép dữ liệu.

… Trong trường hợp các thực thể logic. tài nguyên mạng. có một mối liên hệ phụ thuộc chặt chẽ giữa các chức năng của tầng Fabric với các hoạt động chia sẻ được hỗ trợ. Đây là một kiến trúc mở. hệ thống lưu trữ. 2. việc triển khai có thể liên quan đến các protocol cục bộ (ví dụ các protocol phục vụ dạng truy cập NFS. Kiến trúc này chỉ quy định các yêu cầu chung nhất về thiết kế và triển khai với mục đích chính là để tham khảo. Dưới đây là chi tiết của kiến trúc: Hình 2-8 Kiến trúc Grid tổng quát. Tầng Fabric Đây là tầng thấp nhất của kiến trúc. cài đặt cụ thể tuỳ thuộc vào từng dự án.6. Các thành phần của tầng Fabric thực hiện các hoạt động cục bộ trên các tài nguyên cụ thể (vật lý lẫn logic) như là bước tiếp sau của các hoạt động chia sẻ tài nguyên của các tầng trên. Việc xây dựng.1. tiến trình trong cluster. người dùng muốn chia sẻ. từng lĩnh vực ứng dụng. như hệ thống file phân tán. Các thành phần được phân tầng dựa theo vai trò của chúng trong hệ thống Grid. hoặc protocol quản lý tài nguyên.29 - . các cluster.2.đại diện cho một tập các tài nguyên vật lý. cũng có thể là các thực thể logic . Do đó.…) nhưng các protocol này không liên quan đến kiến trúc Grid. Các chức năng . các danh mục. sử dụng. Tổng quan về công nghệ Grid Computing từ bất cứ tầng dưới nào. các loại sensor.một thực thể trừu tượng .Chương 2. đại diện cho các thiết bị vật lý và toàn bộ tài nguyên của Grid mà các tổ chức. Các tài nguyên có thể tồn tại dưới dạng vật lý như các máy tính.

Chương 2. xác minh và nhận dạng các người dùng và tài nguyên. các giải pháp chứng thực cho các môi trường VO nên đạt được các yêu cầu về bảo mật trong Grid như đã giới thiệu ở trên. bảo mật. phân quyền trong môi trường Grid là rất phức tạp. Các protocol liên lạc cho phép trao đổi dữ liệu giữa các tài nguyên tầng Fabric. Bản cài đặt các protocol của . 2.3.UDP) và Application (DNS. điều khiển. việc quản lý tài nguyên ở tầng này ít nhất cũng phải có cơ chế cung cấp thông tin để xác được cấu trúc.OSPF. vì các mỗi tài nguyên trong một lúc nào đó có thể là server (khi nó nhận yêu cầu). càng nhiều sẽ cho phép các hoạt động chia sẻ phức tạp. Transport (TCP. việc liên lạc của Grid có thể cần các protocol mới.…).6. phong phú hơn. định tuyến. Cũng giống như liên lạc. tính toán chi phí và chi trả cho các hoạt động chia sẻ trên từng tài nguyên riêng lẻ một cách an toàn. cụ thể là các tầng Network (IP và ICMP). Trong Grid. Trong tương lai. Các công nghệ bảo mật truyền thống chủ yếu tập trung bảo vệ các giao dịch giữa các máy client và server. 2. một lúc khác lại là client (khi nó đề xuất yêu cầu đến các tài nguyên khác). năng lực của tài nguyên và cơ chế điều khiển chất lượng dịch vụ. nhưng hiện nay nên xây dựng trên các protocol có sẵn của bộ TCP/IP protocol stack. trạng thái. Tầng Resource Tầng Resource dựa trên các protocol liên lạc và chứng thực của tầng Connectivity để xây dựng các protocol. Về khía cạnh bảo mật của tầng Connectivity. API và SDK nhằm hỗ trợ việc thương lượng. việc phân biệt client/server không tồn tại. Việc liên lạc đòi hỏi các công việc như vận chuyển.6. rất nhiều chuẩn bảo mật đã được phát triển với bộ Internet protocol có thể áp dụng được. các giải pháp phải dựa trên các chuẩn bảo mật hiện hành khi có thể. Do đó. khởi tạo. đặt tên. Các protocol chứng thực xây dựng trên các dịch vụ liên lạc nhằm cung cấp các cơ chế mã hóa.2. theo dõi. Kinh nghiệm cho thấy.2. Tổng quan về công nghệ Grid Computing của tầng Fabric càng mạnh. Tầng Connectivity Tầng Connectivity định nghĩa các protocol liên lạc và chứng thực cơ bản cần thiết cho các giao dịch mạng đặc trưng của Grid. Việc chứng thực.30 - .2.

các hệ thống quản lý tài nguyên cục bộ khác nhau) là đủ. Các chức năng chính của tầng Resource cũng giống như của tầng Fabric cộng thêm nhiều ngữ nghĩa mới với cơ chế báo lỗi tin cậy khi hoạt động không thành công. bao gồm luôn việc tính toán và chi trả chi phí. API. Với những yêu cầu như vậy. Các protocol tầng Resource được phân thành 2 dạng chính như sau: + Các protocol thông tin Sử dụng để thu thập thông tin về cấu trúc và trạng thái các tài nguyên ví dụ như cấu hình hiện tại. xác định rõ. tải hiện tại. service.4. ví dụ. Các protocol này chỉ nên đáp ứng được các cơ chế chia sẻ với nhiều loại tài nguyên khác nhau (ví dụ. 2.2. hoặc truy xuất dữ liệu.Chương 2. Các protocol tầng Resource tập trung toàn bộ vào các tài nguyên riêng lẻ.31 - .6. Tổng quan về công nghệ Grid Computing tầng Resource sẽ gọi các chức năng của tầng Fabric để truy cập và điều khiển các tài nguyên cục bộ. Tầng Collective Trong khi tầng Resource tập trung vào các tài nguyên đơn lẻ.… + Các protocol quản lý Sử dụng để thượng lượng truy xuất đến một tài nguyên chia sẻ. Mỗi protocol cũng nên hỗ trợ việc theo dõi trạng thái và điều khiển các hoạt động. chính sách sử dụng. SDK không liên hệ đến bất kỳ một tài nguyên cụ . Do các protocol quản lý chịu trách nhiệm đại diện cho các quan hệ chia sẻ. tập các protocol tầng Resource (và Connectivity) nên nhỏ gọn và tập trung. các yêu cầu về tài nguyên (bao gồm luôn việc giữ chỗ tài nguyên và chất lượng dịch vụ) và các thao tác cần được thực hiện như tạo tiến trình. đảm bảo các hoạt động sử dụng tài nguyên phải phù hợp với các chính sách chia sẻ tài nguyên. tầng Collective chứa các protocol. không quan tâm đến trạng thái toàn cục và các hoạt động trong các tập tài nguyên phân tán.

… + Workload management system and collaboration framework Cung cấp khả năng đặc tả. kiểm tra xem có bị lỗi. sử dụng. quản lý các luồng công việc đa thành phần.32 - . Tổng quan về công nghệ Grid Computing thể nào mà thực hiện quản lý toàn cục. bị tấn công. tính toàn vẹn. + Community authorization server . và broker service Cho phép các thành phần tham gia VO yêu cầu cấp phát các tài nguyên cho các mục đích cụ thể và lập lịch cho các tác vụ trên các tài nguyên tương ứng. khả năng.… + Grid-enable programming system Cho phép các sử dụng các mô hình lập trình hiện tại trong môi trường Grid. tập trung vào các giao tác giữa các tập tài nguyên. + Monitoring ang dianostics sevice Hỗ trợ việc kiểm soát các tài nguyên của VO. bị quá tải. tìm kiếm tài nguyên. bảo mật. tin cậy. chi phí. Ví dụ: + Directory service Cho phép các thành phần tham gia VO phát hiện sự tồn tại và/hoặc đặc tính của các tài nguyên trong VO. sử dụng nhiều loại dịch vụ Grid để giải quyết các vấn đề như phát hiện. bất đồng bộ và qua nhiều bước. Tầng Collective có thể bổ sung thêm nhiều loại hoạt động chia sẻ mới ngoài những gì đã có từ tầng Resource mà không cần bổ sung thêm các yêu cầu mới cho các tài nguyên đang được chia sẻ.… hay không. tải. Một directory service có thể cho phép người truy vấn tài nguyên qua tên và/hay các thuộc tính như kiểu. + Data replication service Hỗ trợ quản lý tài nguyên lưu trữ của VO để tối ưu hiệu suất truy cập dữ liệu theo các độ đo như thời gian đáp ứng. … + Co-allocation. cấp phát tài nguyên. scheduling. + Software discovery service Tìm kiếm và chọn ra các cài đặt phần mềm tốt nhất và môi trường thực thi dựa theo ứng dụng cần được giải quyết.Chương 2.

. đa dạng. thực hiện chi trả và/hoặc giới hạn việc sử dụng tài nguyên của người dùng trong cộng đồng. Các server này sử dụng các dịch vụ xây dựng trên các protocol thông tin.2.6.33 - . + Collaboratory service Hỗ trợ việc trao đổi thông tin đồng bộ và bất đồng bộ trong cộng đồng người dùng.Chương 2. Tầng Application Tầng trên cùng của kiến trúc Grid bao gồm các ứng dụng của người dùng chạy trong một trường VO. Tổng quan về công nghệ Grid Computing Thực hiện các chính sách công cộng quản lý truy cập tài nguyên. có thể chỉ tồn tại trong các VO cụ thể. Lưu ý rằng trong khi các protocol tầng Resource phải là các protocol tổng quát và triển khai rộng rãi. Hình 2-9 minh hoạ quan điểm của các lập trình viên về kiến trúc Grid. các cài đặt này có thể được xây dựng trên các protocol và API của tầng Resource và Connectivity. càng phục vụ nhiều người dùng thì các protocol và API của tầng Collective càng phải được dựa theo chuẩn. hay như các bộ SDK(với các API tương ứng) được thiết kế để liên kết với ứng dụng. Theo nguyên tắc. Trong cả hai trường hợp. Các chức năng của tầng Collective có thể được cài đặt như các service (với các protocol tương ứng). quản lý tài nguyên của tầng Resource và protocol bảo mật ở tầng Connectivity. cho phép các thành viên của cộng đồng truy cập đến các nguyên dùng chung. 2. Các ví dụ trên đây cho thấy các protocol và dịch vụ tầng Collective rất phong phú.5. Các ứng dụng được xây dựng theo cách sẽ gọi các dịch vụ định nghĩa bởi các tầng phía dưới. + Community accounting and payment service Thu thập các thông tin sử dụng tài nguyên để tính toán chi phí. thì các protocol tầng Collective có thể trải dài từ việc phục vụ các vấn đề chung trong Grid đến việc phục vụ cho các lĩnh vực ứng dụng cụ thể.

mỗi tác vụ cần nhiều file chứa thông tin từng phần của bộ gen có thể sử dụng các chức năng Grid sau: + Lấy các thông tin. thẻ chứng thực (các protocol tầng Connectivity).34 - . cộng đồng mã nguồn mở. Các SDK cấp cao có thể cung cấp các chức năng mà không gọi trực tiếp một protocol cụ thể nào. . các bộ SDK sử dụng các Grid protocol để giao tiếp với các service cung cấp các chức năng cho người dùng cuối. thông báo cho người dùng khi mọi thứ hoàn tất. các tổ chức. + Gửi các yêu cầu đến các tài nguyên để thực hiện tính toán. + Truy vấn hệ thống thông tin Grid và các danh mục để tìm các tài nguyên thích hợp và vị trí các file dữ liệu đầu vào. các nhà sản xuất máy tính trên khắp thế giới. (các dịch vụ tầng Collective). Hình 2-9 Quan điểm của các lập trình viên về kiến trúc Grid. chúng có thể kết hợp nhiều hoạt động của các prtocol khác nhau bằng các gọi các hàm API cũng như cài đặt các chức năng cục bộ. Giải thích hình 2-9 : Các hàm API được cài đặt bằng các bộ công cụ phát triển phần mềm (SDK).… và kiểm soát quá trình thực thi công việc. Tổng quan về công nghệ Grid Computing Ví dụ : một chương trình phân tích bộ gen người cần phải chạy hàng ngàn tác vụ độc lập. Các mũi tên đặc đại diện cho các lời gọi trực tiếp. dò tìm và phản ứng với các điều kiện gây lỗi (tầng Resource). Các tầng trong kiến trúc trên có thể được hiện thực hóa bằng nhiều sản phẩm khác nhau. được phát triển bởi nhiều nhà phát triển phần mềm.Chương 2. tới lượt nó. di chuyển dữ liệu. các mũi tên ngắt quãng đại diện cho việc giao tiếp giữa các protocol.

Chương 2.35 - . quản lý truy cập không gian lưu trữ. Tổng quan về công nghệ Grid Computing 2.… Các dịch vụ này là sự trừu tượng hoá tính phức tạp và đa dạng của các tài nguyên bằng cách cung cấp một phương pháp chung để truy cập tài nguyên. kiến trúc Grid tổng quan đã được cài đặt và xây dựng như hình 2-10. Kiến trúc Grid trong thực tế Trong thực tế. phân phối các tài nguyên. đăng ký và tìm kiếm thông tin. + Tầng Core Middleware (Connectivity và Resource và nửa dưới của Collective) Cung cấp các dịch vụ như quản lý tiến trình ở xa. + Tầng User-level Middleware (Collective) . + Tầng Fabric (tầng Fabric) Giống như tầng Fabric trong kiến trúc tổng quát.3. mua bán và trao đổi tài nguyên. Kiến trúc gồm 4 tầng tương ứng với các tầng của kiến trúc tổng quát như sau: Hình 2-10 Kiến trúc Grid trong thực tế với các thành phần.6. kết hợp. bảo mật và các khía cạnh của QoS như đặt trước.

phát triển công nghệ với các kỹ thuật và . Tầng này bao gồm các môi trường phát triển phần mềm. Trong công nghệ Grid Computing. 2. resource broker. việc thiếu chuẩn hóa sẽ dẫn đến toàn bộ các công ty. nên để các thành phần Grid. Không có gì quan trọng hơn việc làm cho các nền tảng khác nhau giao tiếp được với nhau.Chương 2. Bởi vì công nghệ Grid computing cần phải đáp ứng nhiều nhu cầu khác nhau.… + Tầng Application và Portal (Application) Giống như tầng Fabric trong kiến trúc tổng quát.7. trải rộng khắp thế giới.36 - . Chuẩn hoá Grid Một trong những vấn đề lớn của bất kỳ công nghệ tính toán nào là làm sao để các thành phần khác nhau có thể “nói chuyện” được với nhau. Hình 2-11 Các dự án Grid tương ứng với các tầng. bộ lập lịch. Tổng quan về công nghệ Grid Computing Tận dụng các giao diện ở tầng Core Middleware để cung cấp các dịch vụ có mức độ trừu tượng cao hơn. Đây cũng là một trong những thách thức của công nghệ Grid Computing. tổ chức. do nhiều tổ chức tham gia xây dựng. tài nguyên. ứng dụng Grid tương thích được với nhau cần phải có một chuẩn chung. hỗ trợ nhiều loại công nghệ. công cụ lập trình. nhà phát triển xây dựng. Dưới đây là một số dự án Grid tương ứng với các tầng khác nhau. một ngôn ngữ chung thống nhất cho toàn bộ nền công nghệ.

nhiều môi trường. các nhà phát triển ứng dụng sẽ có nhiều thời gian hơn để tối ưu các chức năng xử lý dữ liệu. nhiều nền tảng khác nhau một cách dễ dàng và hiệu quả. Phân tích như trên cho thấy việc xây dựng các chuẩn là cần thiết. Việc xây dựng và áp dụng các chuẩn trong Grid mang lại lợi ích rất lớn. Tổng quan về công nghệ Grid Computing giải pháp khác nhau. Bên cạnh đó. Trong thế giới riêng của mỗi nhóm phát triển Grid thì có thể không là vấn đề lớn. Open Grid Services Infrastructure (OGSI). phát triển các hệ thống Grid. và từ đó sẽ làm tăng năng lực của hệ thống Grid. các tổ chức hàng đầu trong việc xây dựng công nghệ Grid Computing. nó sẽ gây ra sự chia cắt.Chương 2. có nhiều lựa chọn hơn trong việc xây dựng các dự án. GGF đã và đang phát triển các chuẩn về Grid Computing như : Open Grid Services Architecture (OGSA). bất đồng và nhiều hạn chế khác. Để đáp ứng nhu cầu đó. Web Services Resource Framework (WSRF). khả năng phát hành các dịch vụ sẽ dễ dàng hơn. tổ chức Global Grid Forum(GGF) ra đời với thành viên là hầu hết các nhà nghiên cứu. với việc sử dụng các hệ thống chuẩn hoá có sẵn. cơ bản nhất là mang lại khả năng mở rộng các số lượng tài nguyên sẵn sàng cho Grid. các hệ thống quản lý. + Tăng tốc độ phát triển ứng dụng Sử dụng các bộ toolkit được chuẩn hóa sẽ làm giảm thời xây dựng.37 - . liên kết các nhóm vào thế giới rộng hơn thì đây lại là vấn đề lớn. + Tăng tính mềm dẻo Với sự chuẩn hóa. + Tăng năng lực của Grid Khi có nhiều môi trường và nền tảng được hỗ trợ hơn. nhưng khi mở rộng môi trường Grid. Thay vì dành nhiều thời gian cho việc xây dựng các chức năng giao tiếp. người dùng có thể chuyển đổi qua lại giữa các hệ thống Grid. . còn mang lại nhiều lợi ích khác như : + Liên kết hoạt động Cho phép các hệ thống Grid có thể được thiết kế và phát triển theo nhiều ngôn ngữ lập trình.

xác định. dịch vụ cơ bản của một ứng dụng Grid và có thể được áp dụng trong bất kỳ một hệ thống Grid nào. Nó cũng xác định mô hình lập trình cho Grid service.Chương 2. Từ đó. Open Grid Services Architecture (OGSA) Chuẩn Open Grid Services Architecture (OGSA) xác định toàn bộ các kết cấu.38 - . vì nó cung cấp một loạt các công nghệ dựa theo một chuẩn chung và mở để truy cập nhiều loại Grid service dựa trên các chuẩn hiện hành như SOAP. 2. OGSI version 1. điều đó sẽ giúp cung cấp các dịch vụ OGSA trên bất kỳ thiết bị tính toán nào kết nối với Grid. OGSA định nghĩa các dịch vụ Grid (Grid service) là gì. OGSA không đi sâu vào mặt kỹ thuật của vấn đề. xác định cách xây dựng một Grid service. XML. Mục tiêu chính là định nghĩa được các giao diện dịch vụ(service interface) hoàn toàn độc lập với các cài đặt cụ thể bên dưới. Tổng quan về công nghệ Grid Computing Các chuẩn trên đây cũng là chuẩn duy nhất hiện nay trong ngành công nghệ Grid Computing. Các chuẩn này vẫn trong giai đoạn phát triển. định nghĩa các hoạt động chung nhất của tất cả các Grid service. và WS-Security. Nó cung cấp một phương pháp chung nhất để tìm kiếm. nó chỉ giúp phân biệt cái gì là Grid và cái gì không phải. chúng cần có những khả năng gì. sử dụng các service mới khi chúng có mặt. Tuy nhiên. có thể thêm và tích hợp các Grid service mới một cách đơn giản. Ví dụ. Với điều kiện như vậy. giải quyết được vấn đề liên kết hoạt động giữa các Grid và các tài nguyên. . được xây dựng trên những công nghệ nào.0 OGSI là một bản đặc tả chính thức các khái niệm được mô tả trong OGSA. OGSA xác định Grid service phải được xây dựng dựa trên các chuẩn về Web service hiện hành. xem Grid service như là các Web service được chỉnh sửa để đáp ứng các yêu cầu mới. Về thực chất. cấu trúc. 1. bản thân các Grid service được định nghĩa bằng chuẩn WSDL (Web Services Definition Language) với một số mở rộng.0 xác định một một tập các service cơ bản. dễ dàng. Điều này rất quan trọng. Mục tiêu của OGSA và OGSI nhằm xây dựng một nền tảng để hỗ trợ việc xây dựng một tập các dịch vụ có thể được tìm thấy và được gọi bởi bất kỳ hệ thống nào trong Grid. Open Grid Services Infrastructure (OGSI) phiên bản 1.

0 đã được cài đặt cụ thể trong bộ Globus Toolkit từ version 3. GT là một bản cài đặt hoàn chỉnh OGSI với ngôn ngữ Java. Web service. Thay vì xây dựng một kiểu Grid service mới. Tóm lại. các hệ thống Grid được xây dựng xung quanh khái niệm Grid service.… Và hiện nay. do đócông nghệ Web service được chọn trong hàng loạt các công nghệ như CORBA. . nó kết hợp kiến trúc Grid vào công nghệ Web service hiện hành. Hình 2-12 tóm tắt mối quan hệ giữa các chuẩn trên: Hình 2-12 Mối quan hệ giữa các chuẩn về Grid Service. Chuẩn OGSI dựa trên các chuẩn khác như XML.0 trở đi. Grid service cần phải xây dựng dựa trên các công nghệ chuẩn hiện hành. cơ chế trao đổi thông tin giữa các Grid service. toàn bộ bản đặc tả OGSI version 1. Giải thích hình 2-12: OGSA định nghĩa và dựa trên Grid service.Chương 2. Grid service lả một mở rộng của Web service.Web Services Resource Framework (WSRF) Là một bước phát triển của OGSI. RMI. WSDL. Chuẩn đó là OGSA và bản đặc tả của nó. 3. OGSI đặc tả Grid service theo OGSA. những đặc tả này cho phép các service xác định trong OGSI được xây dựng hoàn toàn dựa trên Web service. các hệ thống Grid đều cần phải được xây dựng trên một chuẩn chung. OGSI. quản lý các Grid service. Tổng quan về công nghệ Grid Computing vạch ra các cơ chế để tạo lập. Theo chuẩn OGSA.39 - . … do đó. một công nghệ cho phép các thành phần phân tán giao tiếp với nhau. OGSI. RPC. nó cũng là một chuẩn mở. và UNICORE cũng bắt đầu cài đặt lại theo OGSA. Hiện nay chỉ có một chuẩn chung đang được phát triển và được khuyến cáo là nên sử dụng khi xây dựng các hệ thống Grid.

Kiến trúc của UNICORE Là kiến trúc 3 tầng (three-tier) như hình 2-13. 2.Chương 2. và nhiều thể hiện của Target System . nhiệm vụ chính của là thực hiện tự động hóa các “thỏa thuận giữa máy với máy”(machine-tomachine negotiation) để ghép mọi thứ lại với nhau.1. trực quan trong môi trường phân tán cho người dùng. 2.8. UNICORE UNICORE là một môi trường Grid tích hợp theo chiều thẳng đứng nhằm hỗ trợ: + Khả năng truy cập tài nguyên một cách đơn giản. các phần mềm Grid middleware cần phải giải quyết được các vấn đề cơ bản của Grid. Để hoàn thành được các mục tiêu của Grid. Tổng quan về công nghệ Grid Computing Chi tiết về các chuẩn sẽ được giới thiệu cụ thể hơn trong phần sau. + Phân phối dễ dàng các công việc trên nhiều nền tảng khác nhau. Đã có rất nhiều nỗ lực từ khắp nơi trong việc thiết kế và cài đặt các phần mềm middleware để xây dựng Grid. Globus. Hiện nay đã có nhiều gói phần mềm triển khai thành công. tập đoàn thương mại lớn nhằm đưa Grid trở thành hiện thực. nhằm giảm chi phí đào tạo và hỗ trợ cho các Grid site. Phần này sẽ giới thiệu 4 dự án Grid middleware phổ biến hiện nay là UNICORE. Legion và Gridbus. bảo mật. nhiều thể hiện của Network Job Supervisors (NJS) chạy trên các server dành riêng. an toàn. tổ chức. Grid middleware là phần mềm cho phép tổ chức.40 - . Bao gồm một client chạy trên một máy trạm hoặc PC có hỗ trợ Java. có thể xây dựng được các Grid vượt ra khỏi giới hạn mạng cục bộ. có rất nhiều dự án phát triển bởi nhiều nhà nghiên cứu.8. + Tích hợp các cơ chế chứng thực trong các thủ tục quản trị. tích hợp các tài nguyên và các chức năng vào Grid. Giới thiệu các dự án Grid middleware chính Ứng với từng tầng trong kiến trúc Grid. 1. khi giới thiệu về bộ Globus Toolkit.

mỗi trung tâm máy tính thành viên phải xác định một hoặc nhiều UNICORE Grid site (USite) để người dùng kết nối vào.… Hình 2-13 Mô hình kiến trúc hoạt động của UNICORE Theo quan điểm của người dùng. Các công việc được xây dựng bằng JPA. + Lớp Target System : Một Usite cho phép truy cập đến các tài nguyên tính toán và lưu trữ. trạng thái và kết quả các công việc được lấy từ JMC.Chương 2. các hệ xử lý theo lô. NJS Server quản lý tất cả các công việc UNICORE và thực hiện phân quyền bằng cách tìm ánh xạ tương ứng giữa chứng chỉ người dùng và tài khoản . Giao diện của UNICORE Client gồm 2 thành phần : JPA (Job Preparation Agent) và JMC (Job Monitor Component). + Lớp người dùng : Người dùng chạy UNICORE Client trên máy trạm cục bộ hoặc PC. Tổng quan về công nghệ Grid Computing Interfaces (TSI) chạy trên các node để cung cấp giao diện sử dụng các hệ quản trị tài nguyên cục bộ như các hệ điều hành. Các công việc và các truy vấn về trạng thái. UNICORE là một hệ thống dựa trên mô hình client-server có 3 lớp. + Lớp server : Ở mức cao nhất. Chúng được tổ chức thành các site ảo (Vsite) đại diện cho các hệ thống thực thi và/hoặc lưu trữ trong trung tâm máy tính. kết quả của chúng được định dạng bằng Abstract Job Object (AJO).41 - . Một UNICORE VSite cũng gồm 2 thành phần: NJS (Network Job Supervisor) and TSI (Target System Interface).

Client kết nối đến UNICORE USite gateway. đây là điểm vào duy nhất cho tất cả các kết nối UNICORE đến USite.Chương 2. + Hỗ trợ ứng dụng Để hỗ trợ các ứng dụng khoa học đặc biệt của các nhà khoa học.42 - . . Cung cấp giao diện GUI hỗ trợ người dùng tạo những công việc phức tạp có thể chạy trên bất kỳ UNICORE Site nào mà không cần thay đổi đặc tả công việc. Tổng quan về công nghệ Grid Computing đăng nhập trong UUDB (UNICORE User Data Base). Các chức năng và đặc tính chính của UNICORE: + Tạo lập và đệ trình các công việc hướng người dùng. giao diện người của UNICORE được xây dựng dưới dạng mở để có thể thêm các thành phần mới cho phép nhập liệu hướng ứng dụng.509V3. người dùng có thể xác định các tập dữ liệu đầu vào và đầu ra từ USpace (USpace là tập các file sẵn sàng cho một công việc UNICORE) và các tập dữ liệu nào cần phải truyền qua lại giữa các USpace. + Cho phép đăng nhập một lần UNICORE cho phép đăng nhập một lần thông qua các chứng chỉ X. UNICORE TSI chấp nhận các công việc xây dựng bởi NJS và chuyển chúng cho hệ thống thực thi cục bộ để xử lý. + Điều khiển luồng Một công việc của người dùng có thể được mô tả dưới dạng một tập các đồ thị có hướng không vòng. + Có hệ thống quản lý công việc Cho phép người dùng toàn quyền điều khiển công việc và dữ liệu. + Có hệ thống quản lý dữ liệu Trong quá trình tạo lập các công việc. 2. NJS chuyển đổi các định nghĩa AJO thành các lệnh tương ứng cho hệ thống thực thi được chọn dựa trên các đặc tả trong Incarnation Data Base (IDB). UNICORE sẽ thực hiện các việc di chuyển dữ liệu trong thời gian thi hành mà không cần sự can thiệp của người dùng. Nó cung cấp một địa chỉ IP và số hiệu cổng để người dùng có thể kết nối vào thông qua protocol SSL.

Chương 2. các công cụ khác một cách bảo mật.8. Globus Dự án Globus cung cấp một bộ toolkit mã nguồn mở.3. interface. Chi tiết về Globus Toolkit sẽ được trình bày trong chương sau. các mã thực thi và các đối tượng hỗn tạp được quản lý độc lập thành một nền tảng tính toán chặt chẽ thống nhất. 2. . Legion có khả năng gom nhóm các thành phần rải rác này thành một siêu máy tính dựa trên đối tượng (object-based metacomputer). Các service.8. Nó cho phép chia sẻ năng lực tính toán. Hình 2-14 cho thấy kiến trúc của Legion. Nó được cấu trúc như là một hệ thống các “đối tượng phân tán” – các tiến trình hoạt động giao tiếp với nhau sử dụng một dịch vụ gọi hàm từ xa thống nhất. protocol nền tảng trong bộ Globus Toolkit cho phép người dùng truy cập đến các tài nguyên ở xa một cách đơn giản trong khi vẫn giữ được quyền điều khiển cục bộ cho phép ai được dùng tài nguyên và khi nào. hệ thống lưu trữ dữ liệu. + Có hệ thống quản lý tài nguyên Người dùng chọn các hệ thống đích và xác định các yêu cầu tài nguyên. có thể được sử dụng để xây dựng các Grid Tính toán và các ứng dụng dựa trên Grid. Legion Legion là một middleware ch phép kết hợp một lượng rất lớn các host. đưa ra mức độ cao hơn về tính mềm dẻo và tự trị. 2. Tất cả các tài nguyên phần cứng và phần mềm trong hệ thống Grid đều được đại diện bởi các đối tựơng Legion. Tổng quan về công nghệ Grid Computing + Hỗ trợ các công việc kế thừa lại UNICORE hỗ trợ công nghệ xử lý theo lô truyền thống bằng cách cho phép người dùng đính kèm các công việc trước đó vào công việc hiện hành.2.43 - . Mô hình đối tượng cơ sở của Legion được mô tả bởi ngôn ngữ đặc tả giao diện (interface description language (IDL)). và được dịch và liên kết với ngôn ngữ lập trình được chọn. báo lỗi ngay lập tức và thực hiện cấp phát tài nguyên. Hệ thống UNICORE Client sẽ kiểm tra tính đúng đắn của các công việc. viện nghiên cứu mà không cần loại bỏ các chính sách quản trị cục bộ. dữ liệu. an toàn trực tuyến giữa các tập đoàn.

Nói một cách khác. cung cấp các thông tin về vị trí hiện tại của nó cho các đối tượng client muốn liên lạc với các thực thể. Những đối tượng này đưa ra các cơ chế giúp cho các lớp triển khai các chính sách thích hợp cho các thực thể của chúng. Legion cũng cho phép người dùng định nghĩa và xây dựng các “đối tượng lớp” của riêng mình.Chương 2. Legion định nghĩa một tập các kiểu đối tượng nòng cốt cung cấp các dịch vụ cơ bản của hệ thống như đặt tên và kết nối. Hình 2-14 Kiến trúc của Legion.44 - . lập lịch thực thi. kích hoạt. trên nhiều nền tảng thực thi khác nhau. kích hoạt và huỷ kích hoạt các thực thể. Một “đối tượng lớp” (class object) được sử dụng để định nghĩa và quản lý các Legion object tương ứng. nó điều khiển việc tạo lập các thực thể (instance) mới. Class object được gán các trách nhiệm cấp hệ thống. Tổng quan về công nghệ Grid Computing Hướng tiếp cận này cho phép liên kết hoạt động các thành phần của nhiều ngôn ngữ lập trình khác nhau. Khi tất cả các thành phần trong hệ thống đều là các đối tượng. các lớp hoạt động như là nhà quản lý và hoạch định chính sách cho hệ thống. Các siêu lớp (metaclass) được sử dụng để định nghĩa các thực thể lớp. . huỷ kích hoạt và xoá các đối tượng. cài đặt. tạo lập. + Vault object : đại diện cho hệ thống lưu trữ ngoài. chúng có thể giao tiếp với nhau không phân biệt chi tiết về vị trí. Một số đối tượng nòng cốt : + Host object : đại diện cho các bộ xử xý.

+ Binding Agents : Ánh xạ LOID vào LOA (Legion Object Address). Gridbus sử dụng mô hình kinh tế trong việc quản lý các tài nguyên chia sẻ và nâng cao tính tiện nghi của các dịch vụ. Tổng quan về công nghệ Grid Computing + Context object : Ánh xạ “context name” vào LOID (Legion Object Identifiers). Australia.45 - . 2. Các chuỗi ký tự.Chương 2. do đó không thể sử dụng để thực hiện giao tiếp. + Implement object : duy trì như một file thực thi mà host object có thể thực thi được khi nó nhận được một yêu cầu hay tạo ra một object. Từ đó làm tăng khả năng thương mại của các dịch vụ Grid. Bên cạnh đó. LOID độc lập với vị trí. Nó là cho phép kết hợp các cluster hướng dịch vụ (service-oriented cluster) với các Grid middleware để hỗ trợ các ứng dụng eScience và eBusiness. tạo điều kiện thuận lợi cho người dùng sử dụng một dải rộng lớn các tài nguyên. ở cấp cao nhất. LOA là một địa chỉ vật lý (hoặc tập các địa chỉ vật lý trong trường hợp có các đối tượng nhân bản) chứa các thông tin cần thiết cho phép các đối tượng giao tiếp được với nhau.4. Context object ánh xạ context name vào LOID là cấp tiếp theo. mặc dù có nhiều cài đặt khác nhau cho mỗi loại. nó tập trung hiện thực hoá mô hình tính toán tiện ích (ultility computing) trải dài từ các cluster đến Grid và các hệ thống tính toán ngang hàng (peer-to-peer). được gọi “context name”. Gridbus hỗ trợ các tiện nghi ở nhiều mức khác nhau: + Mức tài nguyên thô (ví dụ : bán các chu kỳ CPU và tài nguyên lưu trữ) . Vault object cung cấp một giao diện thống nhất để cấp phát tài nguyên lưu trữ. Vì vậy. Nó kết hợp các phần mềm liên quan và đưa ra một tầng trừu tượng nhằm che đi tính đa dạng. hỗn tạp của các tài nguyên và các công nghệ middleware tầng thấp từ góc nhìn của các nhà phát triển ứng dụng. Host object cung cấp một giao diện thống nhất để tạo lập các đối tượng (nhiệm vụ). Legion sử dụng hệ thống tên 3 cấp.8. GridBus Dự án Gridbus là một dự án mã nguồn mở. thuộc nhiều cơ quan dẫn đầu bởi GRIDS Lab thuộc University of Melbourne. LOID tiếp tục được chuyển thành LOA phục vụ giao tiếp. cho phép quản lý hiệu quả việc cung và cầu tài nguyên.

nhưng phần lớn hạ tầng tính toán trong các tổ chức thương mại vẫn còn dựa trên Microsoft Windows.46 - . Tổng quan về công nghệ Grid Computing + Mức ứng dụng (ví dụ : các hoạt động phân tích phân tử cho các ứng dụng thiết kế thuốc). các người dùng dịch vụ phải trả tiền cho các ứng dụng và nhà cung cấp dựa trên những yêu cầu nhất định. Ý tưởng tính toán kinh tế (computational economy) giúp cho việc tạo nên kiến trúc tính toán hướng dịch vụ trong đó.Chương 2. Hình 2-15 mô tả kiến trúc Gridbus phân tầng: Hình 2-15 Kiến trúc GridBus Hình vẽ cho thấy các thành phần của Gridbus trong việc liên kết với các công nghệ middleware khác như Globus. + Tập các dịch vụ đã được kết hợp (ví dụ : môi giới và bán lại các dịch vụ qua nhiều vùng khác nhau). UNICORE và Alchemi. Gridbus cung cấp các phần mềm trong các lĩnh vực sau : • Enterprise Grid Infrastructure (Alchemi) Mặc dù phần lớn các tính toán khoa học đều sử dụng các hệ điều hành dòng Unix. người dùng có thể tối ưu hóa công việc bằng cách chọn các dịch vụ cần thiết trong một giới hạn về chi phí. Do đó. Alchemi được phát triển để phục vụ .

• Cluster Economy and Resource Allocation (Libra) Libra là một hệ thống lập lịch cho cluster để đảm bảo rằng các tài nguyên chia sẻ cho các công việc của người dùng để chúng có thể hoàn thành trong một giới hạn về ngân sách do người dùng xác định. cơ chế đầu vào. Tổng quan về công nghệ Grid Computing nhu cầu thực hiện các giải pháp Grid tận dụng các khả năng tính toán dư thừa ở các máy trạm và máy tính cá nhân chạy Windows trong các tổ chức. nhà cung cấp và tiêu thụ là Market Server. Nó cho phép trao đổi năng lực tính toán nhàn rỗi trong mạng máy tính ngang hàng.Chương 2. • Grid Trading and Accounting Services (GridBank) GridBank là một dịch vụ kế toán và chi trả trong Grid cung cấp một hạ tầng bảo mật. Grid Market Directory (GMD) là một dịch vụ đăng ký cho phép các nhà cung cấp dịch vụ có thể đăng ký và phát hành các dịch vụ họ cung cấp và cho phép người tiêu dùng có thể truy vấn để tìm ra dịch vụ phù hợp với nhu cầu. Market Resource Agent. Nó hỗ trợ nhiều mô hình kinh tế cho phép trao đổi tài nguyên. Một số thuộc tính của dịch vụ là điểm truy cập(Access point).NET Framework. và Market Resource Broker (MRB). và chi phí khi sử dụng nó. cung cấp khả năng xây dựng các “desktop Grid”. Alchemi được xây dựng trên nền Microsoft . Compute Power Market) Đây có thể gọi là một thể hiện của cơ chế thị trường cho ngành tính toán kinh tế. tìm kiếm nhà phân phối và tiêu thụ. an toàn cho phép người tiêu dùng dịch vụ (Grid Service Consumers (GSC)) chi trả cho nhà cung cấp dịch vụ (Grid Service Providers (GSP)) về việc sử dụng dịch vụ của mình. .47 - . cho phép đưa vào nhiều cơ chế lập lịch khác nhau. Compute Power Market (CPM) là một hệ thống lập lịch và quản lý tài nguyên theo cơ chế thị trường. nó cũng cung cấp mô hình lập trình hướng đối tượng cùng với giao diện Web service cho phép truy cập đến các service từ bất kỳ môi trường lập trình nào hỗ trợ SOAP và XML. Các thành phần của CPM đại diện cho thị trường. • Grid Economy and Virtual Enterprise (Grid Market Directory.

tìm kiếm tài nguyên. • Grid Portals (GMonitor) G-Monitor là một web-portal để kiểm soát và điều khiển tính toán trên Grid. cấu hình. G-Monitor giao tiếp với các resource broker như Gridbus và Nimgrod-G và sử dụng các dịch vụ của chúng để khởi tạo và kiểm soát việc thực thi ứng dụng. và lấy kết quả về khi các công việc kết thúc. Gridbus broker có khả năng định vị và lấy các dữ liệu cần thiết từ nhiều nguồn và chuyển tới nơi xử lý. thực thi và kiểm soát. Tổng quan về công nghệ Grid Computing • Grid Resource Brokering and Scheduling (Gridbus Broker) Gridbus Resource Broker cung cấp một giao diện trừu tượng đối với sự phức tạp của Grid bằng cách làm trong suốt quá trình truy cập tài nguyên để thực thi công việc trên Grid.48 - . dịch vụ thông tin phục vụ việc tìm kiếm tài nguyên. Nó cũng cung cấp một một giao diện mô hình hoá trực quan để tạo các người dùng và tài nguyên. vùng quản lý khác nhau. Nó sử dụng các yêu cầu của người dùng để tạo ra một tập các công việc. Nó cũng có khả năng chọn lựa nơi chứa dữ liệu tốt nhất trong nhiều site dựa trên sự có mặt của file và chất lượng đường truyền dữ liệu.… 2. • Grid Simulation (GridSim) Bộ toolkit GridSim cung cấp các tiện ích cho việc mô hình.8. UNICORE và Legion tích hợp . cung cấp giao diện phục vụ việc cấp phát tài nguyên cho các tác vụ và quản lý việc thực thi. Khi kết thúc.Chương 2.5. Nó hỗ trợ các thành phần cơ bản xây dựng các ứng dụng. Nó cung cấp các thông tin cập nhật về tiến trình thực thi từ mức chi tiết các công việc đến mức tổng quát toàn bộ ứng dụng. giả lập các tài nguyên và kết nối mạng với các khả năng. lập lịch. Các tính năng này có thể được sử dụng để giả lập các hệ thống song song và phân tán như resource broker hoặc Grid scheduler để lượng giá hiệu quả của các giải thuật lập lịch. người dùng có thể tập hợp các file kết quả thông qua G-Monitor. So sánh Hình 2-16 so sánh các middleware trên đây theo các dịch vụ được cung cấp theo mô hình phân tầng kiến trúc Grid trong thực tế.

chúng có thể được sử dụng độc lập với nhau. Globus đi theo hướng tiếp cận “túi dịch vụ” (bag of service). cung cấp một tập các công cụ cơ bản phong phú để có thể chọn lựa nhằm xây dựng các hệ thống Grid. OGSI vào phiên bản hiện đang phát triển. Legion và GridBus. C# và Perl Unix và Windows với . Tổng quan về công nghệ Grid Computing các dịch vụ theo chiều sâu và có sự kết hợp chặt chẽ giữa các thành phần client và server. Không có Gridbus Trừu tượng hoá và các mô hình thị trường tính toán Mô hình tính toán chung. Abstract Job Object Java Unix Môi trường workload Globus Các service cấp thấp Mô hình tính toán chung. Globus.NET Broker Java API. OGSA. Không có. tổng quát Hệ thống các thành phân tầng.49 - . Legion Mô hình lập trình cấp cao Mô hình tính toán chung.Chương 2. Các thành phần của Gridbus trải rộng hết toàn bộ kiến trúc Grid. tích hợp chặt chẽ như UNICORE và Legion. . mô hình cài đặt. Bảng 2-2 so sánh các middleware dựa theo kiến trúc.OGSI nếu sử dụng với Globus Mô hình đồng hồ cát ở mức độ hệ thống C. Hệ thống đa tầng theo chiều sâu Mới bắt đầu áp dụng OGSA. Các thư viện Siêu hệ thống hướng đối tượng C++ Unix Legion API và các công cụ command line. Java. tổng quát Bộ toolkit có phân tầng và module hoá OGSA.… Thuộc tính\ Middleware Tập trung vào UNICORE Mô hình lập trình cấp cao Tập trung vào thực thi và kiểm soát job. Ngôn ngữ tham số dựa trên Lĩnh vực Kiến trúc Chuẩn sử dụng Mô hình triển khai Công nghệ cài đặt Nền tảng thực thi Môi trường lập trình Mô hình đồng hồ cát ở mức độ hệ thống C và Java Unix Thay thế các thư viện của Unix và C. tổng quát Hệ thống tích hợp theo chiềo sâu. mà không liên kết. Hình 2-16 So sánh giữa UNICORE.OGSI.

Python.Chương 2. Tổng quan về công nghệ Grid Computing MPI đặc biệt (MPICHG).NET Framework (Alchemi).50 - . Hiện nay bộ Globus Toolkit đang vươn lên và trở thành chuẩn thực tế (de factor standard). Sử dụng Secure Socket Layer (SSL) protocol và chứng chỉ chứng thực X. + NPACI Testbed + Nimrod-L +NCBioGrid. Globus được xây dựng trên các chuẩn chung về hệ thống Grid như OGSA. Quản lý tài nguyên Cách thức liên lạc Bảo mật Không có Mô hình AJO. XML. Có broker service Hỗ trợ nhiều loại giao tiếp RMI thông qua LOID Không có thông tin Bảng 2-2 Bảng so sánh các đặc tính của các middleware Tóm lại : Trên đây vừa giới thiệu một số middleware chính để xây dựng các hệ thống Grid. OGSI. Java Server Pages. theo các cách khác nhau. Mô hình Grid Thread trong Alchemi. CORBA. Mã nguồn mở + ePhysics Portal + Belle Analysis Data Grid + NeuroGrid + Natural Language Engineering +HydroGrid +Amsterdam Private Grid. có các phiên bản thương mại. Perl và Web Services Mô hình phân phối Sử dụng trong một số ứng dụng và người dùng Mã nguồn mở +EuroGrid +Grid Interoperability Project (GRIP) +OpenMolGrid + Japanese NAREGI Mã nguồn mở + AppLeS + Ninf + Nimrod-G + NASA IPG + Condor-G + Gridbus Broker + UK eScience Project + GriPhyN + EU Data Grid. cũng dựa trên SSL và X.509V3 Mã nguồn đóng. Có broker service Thư viện Nexus Thông qua GSI. Các middleware này cũng đã giải quyết cơ bản các vấn đề một hệ thống Grid đặt ra.…(do tổ chức Global Grid Forum xây . không hỗ trợ chuyển message đồng bộ. Matlab.CoG (Commodity Grid) kits với Java. Gridbus broker Không có thông tin +Dựa trên GSI của Globus + Sử dụng các chức năng bảo mật của Microsoft . trở thành nền tảng để xây dựng các hệ thống Grid trong khoa học và thương mại.509V3.

tập đoàn công nghệ thông tin lớn trên thế giới. Do đó. được sự hỗ trợ và tài trợ của nhiều tổ chức. làm điều kiện để xây dựng các dịch vụ. Với mục đích nghiên cứu về công nghệ Grid Computing.51 - .Chương 2. toàn bộ phần sau của luận văn sẽ trình bày về Grid trong ngữ cảnh là bộ Globus Toolkit. ứng dụng tầng cao hơn của riêng mình. Tổng quan về công nghệ Grid Computing dựng). . bộ Globus Toolkit được chọn để nghiên cứu với mục đích tìm hiểu và nắm vững nền tảng xây dựng các hệ thống Grid.

chia sẻ tài nguyên từ nhiều tổ chức bị cản trở bởi tính không tương thích giữa các tài nguyên. Nó được đóng gói như một tập các thành phần có thể sử dụng độc lập hoặc kết hợp với nhau. . Hewlett-Packard.1.1.1.. Globus Alliance là một cộng đồng các cá nhân và tổ chức tham gia phát triển các công nghệ nền tảng cho Grid. Oracle. việc kết hợp. Giới thiệu 3.2 Chương 3. Mặc dù Globus được phát triển để phục vụ các dự án về khoa học và kỹ thuật. quản lý dữ liệu. Giới thiệu bộ Globus Toolkit phiên bản 3.Chương 3. Từ năm 2000. NEC. Globus Toolkit hiện đang được phát triển bởi tổ chức Globus Alliance và nhiều tổ chức khắp nơi trên thế giới. Giới thiệu bộ Globus Toolkit phiên bản 3. mục tiêu đằng sau khái niệm Grid.. phát hiện lỗi. Mỗi tổ chức đều có những hoạt động.. Fujitsu. DataSynapse. Globus Toolkit được xây dựng để loại bỏ những trở ngại này. Các công ty hàng đầu thế giới trong lĩnh vực công nghệ thông tin như Avaki. Microsoft đã bắt đầu xây dựng các chiến lược về Grid Computing trên nền tảng Globus. Các service. Sun và United Devices. liên lạc..52 - . interface.2 3. Giới thiệu Globus Toolkit là một bộ toolkit mã nguồn mở được sử dụng để xây dựng các hệ thống và các ứng dụng Grid. Globus Toolkit cho phép hiện thực hoá các ý tưởng. Platform. và protocol của nó cho phép người dùng truy cập đến các tài nguyên ở xa như thể nó đang nằm trong máy tính của họ trong khi vẫn cho phép các tổ chức thiết lập các chính sách cục bộ của mình như quản lý việc ai được phép dùng tài nguyên và khi nào. quản lý tài nguyên. Bộ toolkit bao gồm các dịch vụ và thư viện phục vụ việc bảo mật. hạ tầng thông tin Grid. chính sách khác nhau. nhưng hiện nay Globus cũng đã được áp dụng vào lĩnh vực thương mại. Entropia.. IBM.

2. phiên bản đầu tiên của Globus Toolkit ra đời. Lịch sử phát triển Cuối năm 1994.2. SOA là kiến trúc của Web service và sau đó là Grid Service.2 3.1.1. GT1 và GT2 là các phiên bản xây dựng theo các mô hình và giao thức độc quyền của tổ chức Globus. OGSI và Web service với mô hình kiến trúc Service Oriented Architeture (SOA). Chicago) đề nghị tạo một đường kết nối tạm thời giữa 11 mạng nghiên cứu tốc độ cao để tạo ra một Grid xuyên quốc gia (I-WAY) trong 2 tuần trước và trong hội nghị Supercomputing ’95. Các công nghệ.53 - . University of Illinois.2 là một bước trung gian để chuyển từ mô hình cũ sang mô hình mới.2 được phát triển dưới 2 hình thức khác nhau. Globus Toolkit Version 3 (GT3-2003) và hiện nay là Globus Toolkit Version 4 (GT4-2005). Giới thiệu bộ Globus Toolkit phiên bản 3. Bộ GT3. Rick Stevens ( Argonne National Laboratory) và Tom DeFanti (Electronic Visualization Laboratory. Rồi tiếp theo là sự phát hành của Globus Toolkit Version 1 (GT1-1998). GT4 thì chuyển sang xây dựng các Grid service theo các chuẩn OGSA và OGSI. Globus Toolkit Version 2 (GT2-2002). Thành công này đã được sự tài trợ của tổ chức Defense Advanced Research Projects Agency (DARPA) để tiếp tục nghiên cứu và phát triển. Luận văn này giới thiệu về bộ Globus Toolkit version 3. Đến năm 1997. đến GT3. chuẩn liên quan 3. chuẩn làm nền tảng cho GT3. phát triển mới các thành phần dựa trên các chuẩn OGSA. Service Oriented Architeture (SOA) Phần này giới thiệu đôi nét về một số khái niệm và thành phần cơ bản của kiến trúc Service Oriented Architecture (SOA).Chương 3. giữ lại toàn bộ các thành phần của GT2 nhằm đảm bảo tính tương thích.2. 3. Các thành phần cấu thành bộ GT 3. Tiếp theo dưới đây là một số công nghệ. .2. Một đội ngũ phát triển nhỏ đứng đầu là tiến sỹ Ian Foster (Argonne National Laboratory) đã tạo nên các protocol cho phép người dùng của I-WAY chạy các ứng dụng trên các máy tính nằm rải rác khắp nước Mỹ.

Service Requestor và Service Registry như trên hình 3-1.2. chỉ mục (index service). phân tán.2. trong đó. 3. Điểm mấu chốt của SOA là các chức năng của service được công bố dưới dạng một giao diện chuẩn. Có thể thấy tính đóng gói này được kế thừa từ phương pháp lập trình hướng đối tượng. phối hợp hoạt động với nhau được gọi là các service.2.1. người dùng chỉ gọi sử dụng các chức năng của service thông qua các phương thức công bố trên giao diện. từ đó chọn ra service tốt nhất để sử dụng. Hình 3-1 Các thành phần của kiến trúc SOA. cả bên trong và ngoài một tổ chức. Giới thiệu SOA SOA là một hướng tiếp cận mới trong kiến trúc phần mềm ứng dụng.Chương 3. và người dùng service cũng không cần quan tâm đến. Kiến trúc của SOA Gồm các thành phần và các thông điệp hoạt động trao đổi giữa chúng. tìm kiếm tài nguyên (discovery service). Xa hơn nữa. 1. Chi tiết cài đặt cụ thể các chức năng được che dấu. đáp ứng nhu cầu của ứng dụng.1. ứng dụng có thể xác định trong thời gian thực thi các service có chức năng giống nhau từ nhiều nguồn. Giới thiệu bộ Globus Toolkit phiên bản 3.….2 3. Các thành phần SOA có 3 thành phần cơ bản là : Service Provider. . một ứng dụng được cấu thành từ một tập các thành phần độc lập.54 - . Cùng với sự hỗ trợ của các service cơ bản như lập lịch truy xuất tài nguyên (scheduler service). các thành phần service có thể tồn tại trên nhiều nền tảng khác nhau. Các service có thể được phân tán bất cứ nơi nào. và có thể được cài đặt bởi các ngôn ngữ lập trình khác nhau.1.

55 - . rồi sau đó kết nối đến ServiceProvider và sử dụng service mong muốn. đăng ký bản mô tả các service cho một hoặc nhiều ServiceRegistry. Giới thiệu bộ Globus Toolkit phiên bản 3. ServiceProvider thực hiện đăng ký giao diện service nó cung cấp cho ServiceRegistry thông qua phương thức Public. xử lý các thông điệp yêu cầu sử dụng service từ các ServiceRequestor.Chương 3. + Bind Là hoạt động giữa ServiceRequestor và ServiceProvider. tiếp nhận. ServiceRequestor sử dụng phương thức Find để lấy danh sách service và ServiceProvider thoả mãn các yêu cầu của nó. ServiceRegistry sẽ tìm trong danh sách các ServiceProvider rồi trả về thông tin thích hợp. lựa chọn service cần thiết và thích hợp. Nó cho phép ServiceRequestor thực hiện kết nối đến ServiceProvider trước khi thực hiện các lời . tạo các bản mô tả cho chúng. và cho phép các ServiceRequestor tìm kiếm các đặc tả service trong danh sách đăng ký của nó. một thành phần của ứng dụng có thể đóng một hay nhiều vai trò trên. + ServiceRequestor Là các thực thể sử dụng các service cung cấp bởi ServiceProvider. + ServiceRegistry Chịu trách nhiệm quảng bá các service do các ServiceProvider đăng ký cho nó. ServiceRequestor tìm kiếm các bản đặc tả service trong các ServiceRegistry. Có thể có nhiều điều kiện tìm kiếm trong phương thức Find. + Public Là hoạt động giữa ServiceProvider và ServiceRegistry. Các hoạt động chính SOA có 3 loại hoạt động chính giữa các thành phần trên : Publish.2 + ServiceProvider Chịu trách nhiệm xây dựng các service. Find và Bind. 2. + Find Là hoạt động giữa ServiceRequestor và ServiceRegistry. Lưu ý.

nhiều vùng bảo mật. còn một số chuẩn về định nghĩa và triển khai chất lượng dịch vụ của Web service đang được xây dựng như WS-Security. Discovery and Integration (UDDI) để cho phép các nhà cung cấp Web service đăng ký service của mình và cho phép người sử dụng Web service tìm được nhà cung cấp thỏa điều kiện mong muốn. 3. Web service cũng là một công nghệ tính toán phân tán như các công nghệ CORBA. đa dạng. trong trường hợp còn lại. Web service có một số lợi điểm mà các công nghệ khác không có: + Web service độc lập với ngôn ngữ lập trình.2. trên nhiều nền tảng khác nhau. phức tạp. nhiều vùng quản trị khác nhau . Web Service là nền tảng của Grid Service (sẽ giới thiệu sau). Cho phép ServiceRequestor khởi tạo proxy phía client cho service cung cấp bởi ServiceProvider.56 - . … Tuy nhiên. Trong trường hợp kết nối động. Đây cũng là lý do chính để chọn công nghệ Web service làm nền tảng cho Grid service để giải quyết thách thức lớn nhất của công nghệ Grid computing là quản lý và sử dụng các tài nguyên phân tán. EJB. RMI. Thao tác kết nối này có thể thực hiện động hay tĩnh. ServiceRequestor phát sinh proxy dựa trên các thông tin lấy được từ ServiceRegistry. và WS-Transaction. WS-Coordination. Web Service sử dụng ngôn ngữ Web Services Description Language (WSDL) để mô tả nội dung và cách sử dụng service. nó đưa ra mô hình liên lạc.… Về bản chất. Giới thiệu bộ Globus Toolkit phiên bản 3. + Hầu hết các Web service đều sử dụng protocol HTTP để truyền thông điệp (các yêu cầu service và kết quả trả về từ service).Chương 3. sử dụng protocol SOAP để trao đổi các thông điệp giữa các Web service. Ngoài ra. độc lập với nền tảng thực thi ứng dụng do được xây dựng trên chuẩn XML. trao đổi giữa ứng dụng với ứng dụng trên cơ sở ngôn ngữ đặc tả XML. Web Service Web Service là một công nghệ được sử dụng rộng rãi để triển khai mô hình SOA vào thực tế. nên hỗ trợ xây dựng các ứng dụng tầm cỡ toàn cầu qua nhiều site.2. sử dụng ngôn ngữ đặc tả Universal Description.2 gọi sử dụng service. WSReliable Messaging. proxy được phát sinh trong lúc phát triển ứng dụng.

Còn với công nghệ Web service thì ngược lại hoàn toàn. Các công nghệ này thường lý tưởng cho các ứng dụng trong mạng cục bộ.2 trên nền tảng Internet. Do đó.Chương 3. do các lưu thông dạng HTTP thường không bị chặn lại khi gặp firewall hoặc proxy. Giới thiệu bộ Globus Toolkit phiên bản 3. việc truyền thông của các công nghệ khác thường gặp vấn đề với firewall. công nghệ Web service thường thích hợp nhất để xây dựng các ứng dụng có phạm vi rộng trên Internet. Trong khi đó.57 - . các công nghệ như CORBA và EJB hướng đến các hệ thống phân tán có độ kết hợp cao (highly coupled). client không cần biết thông tin về server và service cho đến khi nó thực sự cần sử dụng service. Công nghệ Web service có thể được sử dụng để quản lý tài nguyên thay đổi động theo thời gian. . như các ứng dụng hướng Grid. + Một sự khác biệt nữa là. trong đó client và server phải phụ thuộc chặt chẽ vào nhau.

đa dạng về nền tảng.58 - . cho phép ánh xạ nhiều thực thể tài nguyên logic trên cùng một tài nguyên vật lý.2. … trong một giao diện chung. Việc tiếp cận hướng service còn làm đơn giản quá trình ảo hóa. sử dụng tài nguyên. các thách thức của công nghệ Grid Computing. và đến lượt chúng. Việc tiếp cận hướng service (service orientation) giúp giải quyết gần như trọn vẹn các thách thức về quản lý. về liên kết hoạt động trong Grid. các Grid service này có thể được kết hợp theo nhiều cách khác nhau để thỏa mãn nhu cầu của các VO. sau đó là cùng với tổ chức Global Grid Forum(GGF) đã xây dựng. Tư tưởng chủ đạo của mô hình giải pháp OGSA là xem Grid như là một tập hợp có thể mở rộng các Grid service.Chương 3.2. Quá trình ảo hoá đưa ra một cách thức sử dụng tài nguyên cố định. Chuẩn OGSA ra đời từ những nỗ lực trên. Tổng quan về OGSA đã được giới thiệu trong chương 2. Giới thiệu Dựa trên những kinh nghiệm có được khi phát triển bộ GT đến phiên bản 2.3. . Việc ảo hoá còn cho phép kết hợp các service cấp thấp thành các service cấp cao có chức năng phức tạp hơn mà không cần quan tâm đến chi tiết cài đặt của các service cấp thấp. vấn đề liên kết hoạt động có thể được chia thành 2 vấn đề nhỏ hơn là định nghĩa giao diện của service và xây dựng các protocol để gọi sử dụng một service cụ thể. phần này giới thiệu sâu vào chi tiết của chuẩn OGSA. phát triển các mô hình và giải pháp để giải quyết các vấn đề.1.0 hỗ trợ việc xây dựng các hệ thống. ứng dụng Grid cùng với việc phân tích các khía cạnh kỹ thuật và lợi ích của công nghệ Web Service. OGSA 3.3. có nghĩa là gói gọn các cài đặt cụ thể tuỳ môi trường. tổ chức Globus Alliance. chung nhất trên các tài nguyên khác nhau.2 3. các VO này lại được xác định bằng các service mà chúng cung cấp và chia sẻ. Giới thiệu bộ Globus Toolkit phiên bản 3. tuỳ nền tảng. Nhờ tiếp cận theo hướng này.

Grid service interface tương ứng với portType trong WSDL. Ở đây sẽ sử dụng khái niệm Grid service instance để chỉ một thể hiện cụ thể của Grid service. Việc tồn tại các trạng thái khác nhau giúp phân biệt một thể hiện (instance) của Grid service với một service khác có cùng interface.3. Giới thiệu bộ Globus Toolkit phiên bản 3. hết tài nguyên. Các service có thể được tạo và huỷ một cách động. Các Grid service có thể quản lý các thông tin trạng thái nội bộ của chúng trong thời gian sống. hiện đang tồn tại. mọi thứ đều được đại diện bởi một service (là một thực thể kết nối mạng cung cấp một số tính năng nào đó thông qua việc trao đổi các thông điệp). Mô hình service OGSA Trong mô hình OGSA.Chương 3. phức tạp. . Grid service có các interface để quản lý thời gian sống của mình. Do đó. Service có thể bị huỷ tường minh hoặc bị huỷ. Các Grid service được phân loại bởi các khả năng mà chúng cung cấp. Trong môi trường phân tán. Chi tiết hơn nữa. và sẽ được tạo lập trong tương lai. không thể truy cập được do hư hỏng hệ thống.2. Các service sẽ liên lạc với nhau bằng cách trao đổi các thông điệp. Mỗi Grid service instance được gán một tên duy nhất không trùng với bất kỳ ai. Tập các portType cung cấp bởi Grid service cùng với các thông tin liên quan như phiên bản được xác định trong serviceType (một thành phần mở rộng từ WSDL) của Grid service.2.2 3.59 - . do đó cần phải sử dụng một protocol đảm bảo thông điệp gửi đi và tới nơi. không thể đảm bảo một thông điệp được gửi đi chắc chắn đến nơi. mỗi interface định nghĩa một tập các phương thức có thể được gọi thực hiện bằng cách trao đổi các thông điệp theo thứ tự được xác định trước. OGSA xem mọi thứ như là một Grid service : là một Web service hỗ trợ các quy ước và interface chuẩn mà mỗi Grid service cần phải có. Một Grid service có thể có một hoặc nhiều interface. Vì các Grid service được tạo và huỷ một cách động nên cần có cơ chế để phân biệt các instance khác nhau được tạo ra. GSH dùng để phân biệt một Grid service instance cụ thể với tất cả các instance khác đã tồn tại. Grid service handle (GSH). Tất cả các tài nguyên đều là các service.

mềm dẻo. GSR có thể được thay đổi trong thời gian sống của instance. … mà còn cách một cài đặt của Grid service thỏa mãn các quy định của nó để cung cấp chức năng của mình.2 Grid service có thể được nâng cấp trong thời gian sống của nó. Các ứng dụng hiện nay đang dựa vào các tiến trình của các hệ điều hành cụ bộ như là hosting environment của mình. môi trường thực thi. Grid service reference (GSR). ví dụ việc tạo ra một service instance liên quan đến việc tạo ra một tiến trình trong hệ thống. Một hosting environment cụ thể xác định không những các mô hình lập trình. Một lưu ý là : OGSA xác định các ngữ cảnh của một Grid service instance như cách nó được tạo ra. các Grid service được tạo ra trong các môi trường thực thi cụ thể hay hosting environment (môi trường chủ). khi có GSR cũng chưa chắc có thể truy cập đến Grid service instance. Giới thiệu bộ Globus Toolkit phiên bản 3. Mọi thứ trong OGSA đều là service nên cần phải xây dựng các Grid service thực hiện quản lý các Grid service khác. ví dụ về mô hình lập trình. cách quản lý thời gian sống.Chương 3. sẽ trình bày sau. được đặt tên.60 - . GSH không mang thông tin xác định về protocol hay thông tin đặc biệt của instance như địa chỉ mạng và các protocol hiện đang liên kết (binding) với nó. Lưu ý rằng. Không giống như GSH luôn cố định. .… Trong thực tiễn. gỡ rối. ví dụ để hỗ trợ một phiên bản mới của protocol hoặc thêm các protocol thay thế. cách liên lạc với một instance. để lấy một GSR đã cập nhật. OGSA đã định nghĩa một số cơ chế.… Tuy vậy. Bảng … cho biết tên và mô tả của các interface được định nghĩa cho đến hiện tại (06/2002). các interface này sau đó có thể được kết hợp theo nhiều cách khác nhau để tạo ra một lượng phong phú các Grid service. thông tin này được đóng gói cùng với các thông tin khác cần thiết để liên lạc với một instance vào một thực thể trừu tượng đơn lẻ. các công cụ phát triển. OGSA không giải quyết vấn đề cài đặt chúng như thế nào. ngôn ngữ lập trình. ngôn ngữ lập trình. Một GSR chỉ tồn tại trong một khoảng thời gian cụ thể. các chính sách cục bộ hoặc các ràng buộc truy cập có thể ngăn chặn các yêu cầu sử dụng dịch vụ. Các tác giả OGSA đã xây dựng một tập các interface cơ bản. Thay vào đó. hoặc có thể trở nên không hợp lệ trong bất kỳ thời điểm nào trong quá trình sống của instance.

Một cách chung nhất.…) .4. Tạo các service ngắn hạn : Factory OGSA định nghĩa một lớp các Grid service triển khai một interface phụ trách việc tạo lập các Grid service instance. 3.2. chỉ có interface GridService là phải được cài đặt bởi tất cả các Grid service. interface Factory được triển khai trong các host environment . Notification. quản lý chính sách. SetTerminationTime Thiết lập (Lấy) thời gian hủy bỏ của Grid service instance.Chương 3. các thông cụ thể của từng instance… Hỗ trợ nhiều ngôn ngữ truy vấn khác nhau. Registry RegisterService Thực hiện đăng ký một GSH UnregisterService Huỷ đăng ký một GSH Factory CreateService Tạo một service instance mới.3. PortType GridService Phương thức FindServiceData Mô tả Truy vấn hàng loạt các thông tin về các Grid service instance. Destroy Hủy bỏ một Grid service instance.SubscribeToYêu cầu thông báo về các sự kiện liên quan Source NotificationTopic đến service. Phương thức CreateService của interface Factory tạo mọt instance của service được yêu cầu.2. các thông tin về interface. và các mục đích khác hiện đang được xây dựng. Interface này được gọi là Factory và service triển khai interface này là một factory (nhà máy). bao gồm các thông tin cơ bản nội bộ (GSH. Các interface phục vụ phân quyền. khóa chính. Lưu ý. Bảng 3-1 Bảng các interface chuẩn quy định bởi OGSA. Giới thiệu bộ Globus Toolkit phiên bản 3. Một số cơ chế của OGSA 1. Interface Factory không xác định cách thức cụ thể để tạo ra service instance. HandleMap FindByHandle Trả về GSR hiện đang liên kết với GSH được cung cấp.61 - .3. còn các interface khác là tuỳ chọn. trả về GSH và khởi tạo GSR cho service instance mới. Notification.3.2 3. Các interface chuẩn Bảng 3-1 là danh sách các interface (trong WSDL là portType) định nghĩa nên một Grid service. GSR. Cho phép phân phối thông qua các hệ thống chuyển thông điệp bên thứ ba.DeliverNotification Tiến hành phân phối bất đổng bộ các thông Sink điệp thông báo.

có thể xây dựng hệ thống các factory phân cấp trong đó các factory cấp cao tạo ra các service instance bằng cách uỷ quyền qiải quyết yêu cầu tạo lập cho các factory cấp thấp hơn. Trong môi trường hoạt động bình thường.2 cung cấp các cơ chế chuẩn để để tạo ra (và sau đó là quản lý) các service instance. Hosting environment có thể quy định cách thức tạo service instance cụ thể. trong các môi trường Grid phức tạp. Trong khi GSH là cố định thì GSR được tạo ra với một thời gian sống xác định và có thể thay đổi trong thời gian sống của service. Việc quản lý thời gian sống được thực hiện thông qua phương thức SetTerminationTime trong interface GridService. Nếu hết thời gian sống mà không nhận được yêu cầu nào để kéo dài thời gian sống thì host environment hoặc chính Grid service instance có toàn quyền tự kết thúc và giải phóng tài nguyên. OGSA giải quyết vấn đề này bằng cách xác định một thời gian sống cụ thể cho từng Grid service instance được tạo ra.Chương 3. điều đó khiến nó tồn tại vĩnh viễn. nhưng cũng . các service instance ngắn hạn được tạo ra để thực hiện một nhiệm vụ nào đó và kết thúc khi nhiệm vụ hoàn thành hoặc khi có yêu cầu từ client. Thời gian này có thể được mở rộng theo yêu cầu của client hoặc một Grid service khác đại diện cho client. gây lãng phí tài nguyên trong hệ thống. các thành phần có thể không hoạt động. có nghĩa là phải xác định khi nào thì có thể hoặc cần phải kết thúc service để giải phóng các tài nguyên liên quan. Một cách khác. trong các hệ thống phân tán. nhưng điều này là trong suốt đối với các người dùng service trong OGSA. Tuy nhiên. Quản lý thời gian sống của service Việc đưa ra khái niệm các service instance ngắn hạn dẫn đến việc phải xác định thời gian sống của service. họ chỉ thấy interface Factory mà thôi. Giới thiệu bộ Globus Toolkit phiên bản 3. 3. các thông điệp có thể bị mất nên service instance có thể không bao giờ nhận được thông báo kết thúc. để đạt được các yêu cầu cụ thể. factory sau khi tạo service instance sẽ trả về GSH và GSR. 2.62 - . Quản lý các Handle và Reference Như đã giới thiệu trên đây. Trong khi chiến lược này mang lại khả năng mềm dẻo trong việc xây dựng và bảo trì các service.

nếu với cách khởi tạo như trên. + Liên lạc với handleMap để lấy được GSR tương ứng. ví dụ HTTP. khi đã có interface HandleMap. Các phương thức này có thể được áp dụng các chính sách quản lý truy cập và do đó. và cũng có GSH. thay vì phải dùng GSR để xác định protocol liên lạc với handleMap service. yêu cầu tất cả các Grid service instance phải được đăng ký với ít nhất một handleMap. hoặc kết thúc trong khoảng thời gian từ lúc đưa ra GSR đến lúc lấy được GSR.63 - . Một bản cài đặt của interface HandleMap có thể theo dõi xem Grid service instance nào hiện còn đang tồn tại và sẽ không trả về GSR của instance mà nó biết hiện đã kết thúc. tất cả các home handleMap service đều được xác định bởi một URL và phải hỗ trợ liên lạc với cùng một protocol chuẩn mà ai cũng biết. được gọi là home handleMap. Tiếp theo.Chương 3. Lúc đó. OGSA tiếp cận theo hướng xây dựng một interface ánh xạ từ GSH sang GSR (HandleMap). Làm sao để xác định home handleMap cho GSH? Bất kỳ service triển khai interface HandleMap cũng là Grid service. các yêu cầu sử dụng có thể bị từ chối. cần phải có một cách lấy được GSR của handleMap mà không cần một handleMap khác. Để giải quyết triệt để vấn đề này. Để giải quyết được.2 xuất hiện vấn đề mới. Các phương thức cung cấp bởi interface này sẽ lấy một GSH và trả về một GSR hợp lệ tương ứng. sẽ sử dụng phương thức GET của . Lưu ý là khi có một GSR hợp lệ trong tay cũng chưa chắc là có thể liên lạc được với Grid instance. sẽ trở lại vấn đề là phải cố gắng lấy được GSR liên kết với GSH handleMap service. Cách giải quyết 2 vấn đề trên như sau: Để đảm bảo luôn luôn ánh xạ được từ GSH sang GSR. Giới thiệu bộ Globus Toolkit phiên bản 3. việc giải quyết vấn đề làm sao lấy được GSR theo GSH sẽ dẫn đến việc cần phải giải quyết 2 vấn đề nhỏ hơn: + Xác định service handleMap nào đang chứa GSH cần tìm. đó là làm sao lấy được một GSR hợp lệ khi GSR khởi đầu hết hạn. Việc đưa vào GSH mã nhận dạng của handleMap giúp dễ dàng trong việc xác định handleMap nào phải liên lạc để lấy được GSR. nó có thể không hoạt động. Vấn đề trên có thể phát biểu lại như sau : Bằng cách nào có thể giao tiếp với một Grid service instance khi chỉ biết GSH của nó.

2 HTTP đến URL của home handleMap và GSR của handleMap dưới dạng WSDL được trả về. 4. GSR. làm sao chúng ta lấy được GSH mong muốn lúc đầu tiên. Grid service hỗ trợ chức năng service discovery được gọi là registry. . Factory cần có trách nhiệm quyết định xem service nào sẽ là home handleMap.64 - . Một ứng dụng của phương thức FindServiceData là chức năng tìm kiếm service (service discovery). do đó cũng đi kèm với tất cả các service instance một tập các thành phần chứa thông tin cơ bản về Grid service instance. home handleMap. Interface GridService định nghĩa hoạt động WSDL chuẩn. Một registry service được xác định bởi 2 thứ : một interface Registry. thông tin về thời gian sống để sử dụng để quản lý thời gian sống. Những gì được trình bày ở trên giả sử rằng một ai đó đã có GSH của service mong muốn. các chính sách hoạt động. và các thành phần service data được dùng để lưu trữ thông tin về các GSH đã đăng ký. là một quá trình xác định một tập các GSH có các thuộc tính thỏa mãn các yêu cầu cụ thể của người dùng như tải hiện hành. Từ đó.Chương 3. Mỗi thành phần bao gồm một tên duy nhất trong toàn service instance. GSH trả về từ một factory phải chứa URL của home handleMap service. Giới thiệu bộ Globus Toolkit phiên bản 3. số lượng yêu cầu đã phục vụ. một kiểu. và ánh xạ GSH/GSR phải được đưa vào và cập nhật trong handleMap service. như GSH. Đi kèm với interface GridService. Lưu ý về mối quan hệ giữa các interface HandleMap và Factory khi cài đặt. interface Registry được sử dụng để đăng ký một GSH và phương thức FindServiceData của interface GridService dùng để lấy các thông tin về các GSH đã đăng ký. một tập các thành phần XML được đóng gói như các thành phần dữ liệu của service. khoá chính. Bản đặc tả về Grid service xác định cho mỗi interface Grid service một tập các thành phần service data phải được cài đặt trong bất cứ Grid service instance nào hỗ trợ interface đó. Đã đến lúc cần dùng đến chức năng service discovery. FindServiceData. phục vụ việc truy vấn và lấy về các service data. cung cấp các phương thức để đăng ký các GSH. Service Data và Service Discovery Đi kèm với mỗi Grid service instance là một tập các service data.

đưa một cách thức chuẩn để trình bày và truy vấn các siêu dữ liệu (metadata) và các thông tin trạng thái của các service instance.2 5. Hướng tiếp cận này xây dựng một lược đồ XML và các ngữ nghĩa liên quan cho các thông điệp lỗi WSDL để hỗ trợ một cách hiểu chung. Notification OGSA notification framework cho phép client đăng ký nhận các thông tin cần được thông báo từ các service instance và hỗ trợ việc phân phối bất đồng bộ. cơ bản của một Grid service. Theo OGSI.65 - . . Nó chỉ cơ bản phác thảo một mô hình của các hệ thống Grid với các Grid Service và phác thảo những thứ mà một Grid Service cần phải có. nó đưa ra các đặc tả chính thức mang tính kỹ thuật về Grid Service dựa trên công nghệ Web service. sau đó nguồn sẽ gửi các thông điệp về các thông tin được yêu cầu cho client. OGSI là một chuẩn để xây dựng các Grid Service. các quy ước này hiện đã được tích hợp trong WSDL 1.2. + Định nghĩa service data. trong khi client gửi các thông điệp định kỳ để báo cho nơi gửi biết là mình vẫn còn cần nhận thông tin. 3. Để có thể nhận các thông điệp. Grid Service Chuẩn OGSI 1. Định nghĩa cách tính thời gian của mô hình OGSI. OGSA không đi sâu vào việc đặc tả các Grid Service. Định nghĩa một hướng tiếp cận chung để chuyển các thông tin lỗi từ các hoạt động.0 ra đời với các mục đích cụ thể: + Giới thiệu các quy ước dựa theo WSDL được sử dụng trong các đặc tả về Grid service. bao gồm: Định nghĩa Grid service description và Grid service instance. Nói một cách khác. Định nghĩa Grid Service Handle và Grid Service Reference.Chương 3. + Giới thiệu các thuộc tính chính.4. Giới thiệu bộ Globus Toolkit phiên bản 3. client thực hiện đăng ký GSH của mình và các thông tin cần được thông báo cho service instance nguồn. OGSI và Grid Service Như đã biết. OGSI là một chuẩn nhằm triển khai cụ thể các khái niệm đưa ra bởi OGSA.2 (đang phát triển). một chiều từ nguồn đến đích (client) các thông báo cần thiết.

Có một hoặc nhiều Grid Service Reference tham khảo đến nó. và kiểu. Định nghĩa chu trình sống (lifecycle) của một Grid service instance. nó được sử dụng cho các công cụ tự động phát sinh các client interface proxy. khai báo serviceData. với vai trò một bản mô tả service interface. ví dụ như tìm một service instance triển khai một service description nào đó. 3. bao gồm các portType. phương thức.Chương 3.2. trong tương lai. Time Model Do các thành phần tham gia hệ thống Grid có thể nằm trên nhiều vùng thời gian khác nhau. hay tìm một factory có khả năng tạo ra các instance với một service description cụ thể.2. các thông tin chi tiết xin xem trong tài liệu tham khảo . sử dụng các định dạng biểu diễn thời gian khác nhau.4. nên cần phải có mô hình biểu diễn thời gian thống nhất trong toàn bộ hệ thống để đảm bảo đồng bộ ..4.1. nó được sử dụng để tìm kiếm service. thông điệp. mô tả cách thức một client giao tiếp với các service instance. Một service description được sử dụng với 2 mục đích chính. có thể sử dụng các kiểu định dạng khác thay vì WSDL. Trước hết.. Mỗi instance có: Các trạng thái được mô tả trong service description. Phần này sẽ giới thiệu một số điểm chính về các Grid Service được quy định trong OGSI. Lưu ý. Một Grid Service Description có thể được sử dụng trong nhiều instance. Grid Service Description và Grid Service Instance Trước hết cần phân biệt giữa 2 khái niệm service description và service instance + Grid Service Description (Bản mô tả về Grid service) Là một tài liệu WSDL định nghĩa Grid service interface. Có một hoặc nhiều Grid Service Handle. … Thứ hai. 3. Giới thiệu bộ Globus Toolkit phiên bản 3. + Grid Service Instance Là một thể hiện của Grid Service Description như là một thực thể hoạt động.2 Hướng tiếp cận này chỉ đơn giản định nghĩa và các định dạng chuẩn cho các thông điệp lỗi mà không thay đổi mô hình truyền thông điệp lỗi của WSDL.66 - .2.

Cũng giống như URI. toàn cục. Một service instance cũng có thể có nhiều GSR tham khảo tới nó. Để phân giải GSH thành GSR. GSR chứa tất cả các thông tin cần thiết để client liên lạc với service instance thông qua một kết hợp của một hoặc nhiều protocol truyền thông mạng (protocol binding). GSR có dạng của một IOR. Để có thể liên lạc. Một Grid service instance có một hoặc nhiều GSH. Giới thiệu bộ Globus Toolkit phiên bản 3. Mỗi GSH phải duy nhất. GSR có một lược đồ dữ liệu để chứa các thông tin đặc biệt của mình. Chuẩn GMT được chọn để sử dụng trong các Grid service. Định nghĩa ExtendedDateTimeType như sau: … targetNamespace = http://www. GSH cần phải được phân giải thành Grid Service Reference (GSR).gridforum. các hosting environment và client được gợi ý dùng protocol Network Time Protocol (NTP) hoặc các chức năng tương tự để đồng bộ hoá đồng hồ của mình với thời gian GMT. khi sử dụng với SOAP. GSR là có dạng một tài liệu WSDL. một Grid Service URI được gọi là Grid Service Handle (GSH).Chương 3. tuy nhiên trong OGSA.org/namespaces/2003/03/OGSI <simpleType name="ExtendedDateTimeType"> <union memberTypes="ogsi:InfinityType xsd:dateTime"/> </simpleType> <simpleType name="InfinityType"> <restriction base="string"> <enumeration value="infinity"/> </restriction> </simpleType> 3. không mang đủ thông tin để client có thể liên lạc với service instance.4. OGSI sử dụng kiểu xsd:dateTime và mở rộng thêm kiểu ExtendedDateTimeType để thay thế xsd:dateTime trong trường hợp biểu diễn thời gian không xác định.67 - . GSH chỉ là một tên dưới dạng URI.3.2. OGSI.2 về thời gian. client sử dụng cơ chế Handle Resolver. Grid Service Naming Chúng ta đã biết các Web service được định vị bằng các Unified Resource Indicator (URI). GSR có thể có nhiều định dạng khác nhau tuỳ vào protocol liên lạc mà client sử dụng. chu trình sống của GSR độc lập với service . ví dụ khi sử dụng với RMI/IIOP. vĩnh viễn cho một service instance trong hệ thống Grid. Không thể có 2 service instance có cùng GSH. Vì các Grid service cũng là Web service nên chúng cũng được xác định bởi các URI. Về định dạng biểu diễn thời gian trong các service và thông điệp.

Dưới đây định nghĩa của GSH và GSR đưới dạng XML: + Định nghĩa GSH targetNamespace = http://www.gridforum.org/wsdl/” minOccurs="1" maxOccurs="1" processContents="lax"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> + Service Locator .xmlsoap.Chương 3.org/namespaces/2003/03/OGSI <xsd:element name="handle" type="ogsi:HandleType"/> <xsd:simpleType name="HandleType"> <xsd:restriction base="xsd:anyURI"/> </xsd:simpleType> + Định nghĩa GSR targetNamespace = http://www.gridforum. nó có thể trở nên không hợp lệ tại bất kỳ thời điểm nào.68 - .2 instance. định dạng như sau: targetNamespace = http://www.org/namespaces/2003/03/OGSI” <xsd:complexType name="WSDLReferenceType"> <xsd:complexContent> <xsd:extension base="ogsi:ReferenceType"> <xsd:sequence> <xsd:any namespace=”http://schemas.gridforum. Việc kiểm tra xem một GSR có hợp lệ hay không là trách nhiệm của client. Khi một GSR không hợp lệ. Giới thiệu bộ Globus Toolkit phiên bản 3. client phải lấy một GSR mới thông qua GSH.org/namespaces/2003/03/OGSI <xsd:element name="reference" type="ogsi:ReferenceType"/> <xsd:complexType name="ReferenceType" abstract="true"> <xsd:attribute ref="ogsi:goodFrom" use="optional"/> <xsd:attribute ref="ogsi:goodUntil" use="optional"/> </xsd:complexType> Tài liệu WSDL biểu diễn thông tin GSR chỉ cần chứa các thông tin cần thiết nhất để có thể liên lạc với một service instance cụ thể.

Định nghĩa service locator như sau: targetNamespace = http://www.69 - .org/namespaces/2003/03/gridWSDLExtensions … <element name="portType" type="gwsdl:portTypeType"/> <complexType name="portTypeType"> <complexContent> <extension base="wsdl:portTypeType"> <sequence> <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name=”extends” use=”optional”> <simpleType> <list itemType=”QName”/> </simpleType> </attribute> <anyAttribute namespace="##other"/> </extension> </complexContent> </complexType> . Giới thiệu bộ Globus Toolkit phiên bản 3. không hoặc nhiều interface (portType) QName. Interface OGSI mở rộng khái niệm portType của WSDL để hiện thực hoá khái niệm interface được đề cập đến trong OGSA.4.Chương 3. GSR.4.gridforum.org/namespaces/2003/03/OGSI <xsd:element name="locator" type="ogsi:LocatorType"/> <xsd:complexType name="LocatorType"> <xsd:sequence> <xsd:element ref="ogsi:handle" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="ogsi:reference" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name=”interface” type=”QName” minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> 3.2 Là một cấu trúc kết hợp không hoặc nhiều GSH.2. wsdl:portType được định nghĩa lại thành interface của Grid service (gwsdl:portType) như sau: … targetNamespace= http://www.gridforum. Service Locator có thể được sử dụng trong bất cứ phương thức nào chấp nhận GSH hoặc GSR.gridforum. interface lại thành một đơn vị cơ bản để dễ sử dụng.org/namespaces/2003/03/gridWSDLExtensions xmlns:gwsdl= http://www. dùng để kết hợp GSH. Trong OGSI. không hoặc nhiều GSR.

2 Thuộc tính extends trong gwsdl:portType là một danh sách các QName.4. mutability. Grid service được phân loại và chỉ mục theo các thông tin trong service data. + Cấu trúc của một Service Data Một service data có các thuộc tính cơ bản sau: name. mỗi QName là một wsdl:portType hoặc gwsdl:portType. Service data Service data là một tập các thông tin có cấu trúc về Grid service instance nhằm cung cấp các thông tin trạng thái của nó theo yêu cầu. và modifiable. nhưng các SDE cùng loại thì luôn chứa cùng một loại thông tin.0. các SDE có thuộc nhiều loại khác nhau. nillable. Các SDE có thể là tĩnh (khai báo trong khi định nghĩa service interface) hoặc động (được thêm vào service instance trong thời gian chạy).5. Ý tưởng biểu diễn các thuộc tính của service instance như là service data được kế thừa từ ý tưởng của lập trình hướng đối tượng. Chỉ các thông tin cần cung cấp cho bên ngoài mới được khai báo như là service data. Việc định nghĩa các phương thức trên interface được kế thừa lại từ wsdl:portTypeType. Về chi tiết các interface của Grid service định nghĩa bởi OGSI 1. .Chương 3.70 - . các service data chỉ được truy vấn và thao tác bởi các phương thức định nghĩa trong interface. xin xem thêm trong Phụ lục D – “Các interface của một OGSI Service” 3. Mỗi instance của Grid service đều có một tập các service data chứa các thành phần Service Data Element (SDE). type. Client có thể sử dụng phương thức findServiceData của interface GridService để lấy danh sách các SDE của service instance.2. maxOccurs. Giới thiệu bộ Globus Toolkit phiên bản 3. minOccurs. Định nghĩa XML của chúng xin tham khảo tài liệu [6]. còn các thông tin nội bộ của service thì không được khai báo.

Giới thiệu bộ Globus Toolkit phiên bản 3. ble” đổi một SDE. + “constant” : giá trị của SDE được gán trong lúc tạo instance và được giữ không đổi trong suốt thời gian sống của instance. “static”. + “extendable” : Cho phép thêm các thành phần mới vào SDE trong thời gian chạy.Chương 3. “extenda Quy định cách thức thay “constant”. “mutable” SDE được xác định trong thành phần staticServiceDataValues và được giữ lại trong bất cứ instance nào có portType chứa SDE đó.2 Tên name type minOccurs Kiểu giá trị NCName and {target namespace} QName Tập giá trị Giá trị default Diễn giải Tên của serviceData nonNegative Integer maxOccurs nonNegative Integer boolean nillable mutability Xác định kiểu XML Schema quy định giá trị của SDE. + “mutable” : tất cả các thành phần của SDE có thể được thêm vào hay . các thành phần mới khi đã được thêm vào sẽ không thể loại bỏ khỏi SDE được nữa. unbounded 1 Xác định số giá trị SDE (không giới nhỏ nhất xuất hiện trong hạn) serviceDataValues hoặc staticServiceDataValues. “extendable” + “static” : giá trị của .71 - . nếu là 0 là tuỳ chọn unbounded 1 Xác định số giá trị SDE lớn nhất xuất hiện trong serviceDataValues hoặc staticServiceDataValues false true/false Có cho phép SDE có giá trị nil (là một giá trị có thuộc tính xsi:nil với value=“true”).

<wsdl:definitions xmlns:tns=”xxx” targetNamespace=”xxx”> <gwsdl:portType name="ServiceDataExample"> * <wsdl:operation name=…> … </wsdl:operation> … <sd:serviceData name="Host" type=”xsd:String” mutability=”static”/> <sd:serviceData name="CPUArchitecture" type=”tns:SomeComplexType”/> … <sd:staticServiceDataValues> <tns:Host>GLOBUSTEST</tns:Host> </sd:staticServiceDataValues> </gwsdl:portType> . Giới thiệu bộ Globus Toolkit phiên bản 3. cho phép client cập nhật trực tiếp giá trị SDE thông qua phương thức setServiceData.72 - . Nếu true.Mọi service instance triển khai portType này phải có thông tin về Host và CPUArchitecture. + Mở rộng portType để hỗ trợ Service Data OGSI định nghĩa thêm một thành phần con của portType có tên là serviceData. Dưới đây là định nghĩa <gwsdl:portType name="NCName"> * <wsdl:documentation … /> ? <wsdl:operation name="NCName"> … </wsdl:operation> ? ………… <sd:serviceData name="NCName" … /> * <sd:staticServiceDataValues>? <some element>* </sd:staticServiceDataValues> …………… Ví dụ dưới đây khai báo một portType với 2 thành phần serviceData với tên là “Host” và “CPU Architecture” và khởi tạo giá trị Host=“GLOBUSTEST”. được sử dụng để khai báo các thành phần serviceData (SDE) đi kèm với portType đó. Các giá trị khởi tạo cho serviceData được xác định bằng thành phần staticServiceDataValues của portType.Chương 3.2 modifiable boolean true/false false loại bỏ bất cứ lúc nào. Các thuộc tính khác không có trong namespace Bảng 3-2 Các thuộc tính cơ bản của một service data.

Service instance được phép quyết định khi nào thì sẽ kéo dài thời gian sống hoặc khi nào sẽ kết thúc (ví dụ : service instance có thể kết thúc trước thời hạn do không còn tài nguyên. + Về tạo lập service instance Client có thể gọi phương thức createService của một service instance có cài đặt interface Factory để tạo một service instance mới. tuy nhiên OGSI định nghĩa các interface cho phép client thao tác với các sự kiện trong chu trình sống của service instance một cách tổng quát.4. Lifecycle Tất cả các thực thể đều có một chu trình sống của mình. Notification Là một cơ chế cho phép nguồn thông báo (notification source) phân phối các thông điệp đến các nơi yêu cầu (notification sink). thì service instance sẽ tự huỷ.2 3. chu trình sống là các bước chuyển trạng thái từ lúc thực thể được tạo ra đến khi bị huỷ đi.2.2. + Về huỷ bỏ service instance Client có thể yêu cầu huỷ service instance một cách tường minh bằng cách gọi phương thức destroy của interface GridService mà service instance nào cũng cài đặt. Các cơ chế cài đặt cụ thể để quản lý chu trình sống của service instance tùy thuộc vào host environment.4. OGSI không quy định các cơ chế này. các service instance có thể cung cấp khả năng thông báo về các sự kiện liên quan đến các chu trình sống của mình thông qua cơ chế Notification chuẩn (các phương thức của các interface NotificationSource/Sink/Subscription) 3. Một số khái niệm liên quan: + Notification source .7.6.73 - .…) Bên cạnh đó. hay quy định thời gian sống cho service instance (qua các phương thức requestTerminationBefore/After của interface GridService) .Chương 3. sau thời gian đó mà service instance không nhận được yêu cầu gia hạn từ các client. Việc quản lý chu trình sống của service instance rất quan trọng nhất là khi service cần phải hỗ trợ khả năng phục hồi hoạt động với các giá trị và trạng thái khi server hoặc container khởi động lại. Giới thiệu bộ Globus Toolkit phiên bản 3.

Kiểu của thông điệp được xác định bởi Subscription expression. + Hoạt động 1.“Kỹ thuật cài đặt các cơ chế của Grid Service” 3. một yêu cầu cần nhận thông điệp chứa Subscription expression. Ghi chú : Để có thể hiểu rõ hơn về Grid service và các cơ chế của nó. 2. GT còn cung cấp một bộ các hàm API và SDK nhằm giúp phát triển. dựa trên sự thay đổi các giá trị SDE của service instance. Và instance này sẽ chịu trách nhiệm trao đổi các thông báo. và là nơi gửi thông báo đến các Notification sink + Notification sink Là một service instance nhận các thông báo từ nhiều Notification source khác nhau.74 - . Data Management liên kết hoạt động trên nền tảng bảo mật chung. + Subscription expression Là một lược đồ XML mô tả thông điệp nào và khi nào thông điệp được gửi đi. Một sink phải cài đặt interface NotificationSink để nhận được các thông báo. 3 thành phần Resource Management. Information Service. . Ngoài ra. Sercurity Infrastructure. Giới thiệu bộ Globus Toolkit phiên bản 3.2 Là một service instance có cài đặt interface NotificationSource. + Notification message Là một thông điệp XML được gửi từ Notification source đến sink. Kiến trúc Globus Toolkit Bộ Globus Toolkit giải quyết các vấn đề của công nghệ Grid Computing dựa trên 4 thành phần chính. và khoảng thời gian trong đó cần nhận thông điệp được gửi đến Notification source. xin xem thêm trong phụ lục C . gọi là Subscription. vị trí của Notification sink. Yêu cầu này có thể dẫn đến việc tạo một service instance. xây dựng các ứng dụng Grid. có cài đặt interface NotificationSource. Để thiết lập quá trình gửi nhận thông điệp.Chương 3.3.

có thể thấy rõ ràng 4 thành phần của bộ GT. có thể sử dụng độc lập hoặc phối hợp với nhau thông qua giao diện riêng của từng thành phần. 3 thành phần này được xây dựng trên nền tảng bảo mật chung là Grid Sercurity Infrastructure (GSI). Hình 3-2 Kiến trúc của bộ Globus Toolkit. công cụ. mô hình Grid service dựa theo OGSI được khuyến khích sử dụng. Các nhà phát triển có thể sử dụng một trong hai mô hình để xây dựng các ứng dụng và các hệ thống Grid của mình.75 - . GridFTP đảm nhận phần Data management (phần truyền dữ liệu). Một số trong chúng được xây dựng trên OGSI và được gọi là WS (Web Services) components. được gọi là pre-WS components. Mô hình kiến trúc GT2 Trong mô hình kiến trúc GT2. 3. Bộ GT3. GT3 bao gồm rất nhiều các dịch vụ.1. cần phải chú ý rằng GT3 không chỉ là một bản cài đặt của OGSI. tồn tại song song 2 mô hình kiến trúc như trên hình 3-2.3. một số khác không dựa trên OGSI. Giới thiệu bộ Globus Toolkit phiên bản 3. Tuy nhiên. Tuy nhiên.…. GRAM đảm nhận phần Resource Management.Chương 3. Các thành phần được thiết kế theo module. chương trình.2 GT3 được thiết kế lại để hỗ trợ hoàn toàn OGSI. MDS đảm nhận phần Information Service. Mô hình hệ thống Grid sử dụng GT2 như sau : .

Mô hình kiến trúc GT3 Mô hình GT3 hơi khác biệt hơn mô hình GT2.2 Hình 3-3 Mô hình các thành phần của một hệ thống sử dụng GT2 3. cũng 4 thành phần đó.2. Giới thiệu bộ Globus Toolkit phiên bản 3. nhưng các thành phần này được thiết kế để trở thành các OGSI Grid service.76 - . được truy xuất thông qua một giao diện chung. Dưới đây là mô hình tổ chức các thành phần của GT3 : .Chương 3.3. điều này giúp việc các ứng dụng sử dụng các service dễ dàng hơn.

Chương 3. Giới thiệu bộ Globus Toolkit phiên bản 3.2

Hình 3-4 Mô hình tổ chức các thành phần GT3.

Các khung có nền trắng là các thành phần cung cấp bởi GT3 Core. Chúng là các khối cơ bản để xây dựng các Grid service. Thành phần OGSI Reference Implementation cài đặt cho tất cả các interface xác định bởi OGSI cũng như các hàm API và công cụ để phát triển các OGSI Grid service. Thành phần Security Infrastructure cung cấp các dịch vụ truyền thông SOAP cũng như thực hiện bảo vệ các thông điệp, chứng thực hai chiều (mutual authentication), và đăng nhập một lần; thiết kế lại nền tảng GSI trong GT2 để hoạt động trong môi trường OGSI. Hai khối cơ bản này không cung cấp các service thực thi được nhưng như là cơ sở của tất cả các service khác. Tuy nhiên, GT3 Core cũng có một số service có khả năng thực thi nền tảng đủ tổng quát để được sử dụng và liên kết với tất cả các Grid service khác. Những service này được gọi là System-Level Service, được xây dựng trên cơ sở OGSI Reference Implementation và Security Infrastructure. GT3 cũng cung cấp một số service cấp cao hơn, Base Service, như các service quản lý tài nguyên (MMJFS) , quản lý dữ liệu (RFT), các service cung cấp thông tin (Index service). Khái niệm User-Defined Service dùng để chỉ các service cấp cao hơn nữa, không cung cấp bởi GT3, được xây dựng trên tất cả thành phần của GT3 bao gồm luôn Base Service. Tất cả các service và các thành phần cơ bản tương tác với một môi trường thực thi OGSI ảo, gọi là Grid Service Container. Mục đích của container là làm lớp phân

- 77 -

Chương 3. Giới thiệu bộ Globus Toolkit phiên bản 3.2

cách ứng dụng với các cấu hình môi trường thực thi cụ thể. Container cũng điều khiển chu kỳ sống của các Grid service, và phân phối các yêu cầu đến các service instance. Container mở rộng cũng như bao gồm các interface chuẩn của một Web Service Engine (WSE), WSE chịu trách nhiệm xử lý các thông điệp XML. Web Service Engine và Grid Service Container được đặt trong một Hosting Environment, chịu trách nhiệm triển khai các chức năng của một Web Server truyền thống như sử dụng protocol vận chuyển HTTP,… Hiện nay GT3 Service Container có thể chạy trên các hosting environment sau:

+ Embedded Container: là một hosting environment được sử dụng chủ
yếu trong các client hay các server hạng nhẹ, cho phép tạo lập và quản lý các Grid service instance.

+ Stand-alone Container: cơ bản dựa trên embedded hosting
environment cùng với một command-line đầu cuối, cho phép khởi động và kết thúc hosting environment. GT3 có 2 lệnh để thực hiện việc này : globus-startcontainer, globus-stop-container.

+ J2EE Web Container (Servlet) : Là embedded hosting environment
chạy trong một Java engine (Web container) như Tomcat. Web container này sử dụng các Web service cung cấp bởi Java engine thay các service chuẩn cung cấp bởi GT3.

+ J2EE Enterprise JavaBeans Container (EJB) : Là embedded
hosting environment chạy trong một EJB application server (EJB container) như WebSphere Application Server. Chi tiết các thành phần và sự khác biệt giữa cùng một thành phần trong 2 kiến trúc sẽ được giới thiệu ở phần sau.

- 78 -

Chương 3. Giới thiệu bộ Globus Toolkit phiên bản 3.2

3.4. Các thành phần chính
3.4.1. Sercurity Infrastructure
3.4.1.1. Giới thiệu
Trong GT, việc bảo mật Grid được đảm trách bởi module Grid Security Infrastructure (GSI). Như đã biết, yêu cầu về bảo mật, an toàn là một trong những vấn đề chính trong các thiết kế Grid. Các thành phần bảo mật cơ sở của GT đã đưa ra các cơ chế khá tốt để thực hiện việc chứng thực, phân quyền, bảo mật liên lạc giữa các node trong Grid. GSI là một sự mở rộng các protocol và API của các chuẩn về bảo mật hiện hành. GSI được xây dựng trên các công nghệ, các chuẩn như : + Mô hình mã hoá khóa công khai (public key infrastructure(PKI)) + X.509 certificate + Protocol Secure Sockets Layer (SSL) Tất cả các kết nối liên lạc trong Grid đều được mã hoá theo công nghệ RSA 1024 bit và truyền tải với protocol SSL. + Generic Security Service API (GSS-API) Toàn bộ phần cài đặt của GSI đều tuân theo GSS-API (là một bộ API chuẩn dành cho các hệ thống bảo mật được tổ chức Internet Engineering Task Force (IETF) đưa ra). GSI đã mở rộng các chuẩn này để cung cấp thêm chức năng đăng nhập một lần (single sign-on), ủy quyền (delegation), identity mapping (ánh xạ thực thể). Một số chức năng chính của GSI + Chứng thực một/hai chiều (Single/Mutual authentication) + Có cơ chế truyền thông an toàn. + Có cơ chế chứng thực. + Có cơ chế uỷ quyền. Hình 3-5 tóm tắt cấu trúc và chức năng các thành phần của GSI

- 79 -

Chương 3. Giới thiệu bộ Globus Toolkit phiên bản 3.2

Hình 3-5 Các thành phần của GSI.

Dưới đây giới thiệu một số khái niệm và cơ chế chủ yếu của GSI.

3.4.1.2. Các nguyên tắc và khái niệm cơ bản trong bảo mật Grid

1. Các nguyên tắc cơ bản
Lĩnh vực bảo mật bao gồm 3 dịch vụ cơ bản : chứng thực (authentiacation), phân quyền (authorization) và mã hoá (encryption). Một tài nguyên Grid phải được chứng thực trước tiên nhằm xác định các hoạt động nào được phép trong Grid. Khi các tài nguyên Grid đã được chứng thực, Grid user có thể được cấp các quyền thích hợp để sử dụng các tài nguyên. Tuy nhiên, các việc này vẫn chưa bảo vệ được dữ liệu trong quá trình trao đổi giữa các node. Do đó, cần phải cần thêm dịch vụ mã hoá dữ liệu. Tổ chức International Organization for Standardization (ISO) đã đưa ra danh sách các dịch vụ cơ bản trong các hệ thống bảo mật hiện đại, trong các tài liệu ISO 7498-2 (OSI Security Architecture) và ISO 10181 (OSI Security Frameworks). Một số dịch vụ liên quan đến bảo mật Grid được giải thích dưới đây: + Authentication (chứng thực) Là quá trình xác minh tính hợp lệ của một cá nhân, và xác định người đó là ai. Không chỉ có con người mới cần được chứng thực, các service, ứng dụng, và các thực thể khác cũng cần được chứng thực trong hệ thống Grid. + Access control Đảm bảo mỗi người dùng hay máy tính sử dụng service được phép thực hiện những gì anh ta muốn làm. Quá trình phân quyền thường được dùng đồng nghĩa với access control.

- 80 -

Phương pháp này sử dụng một cặp khoá để mã hóa (được gọi là khóa công khai (public key) và khóa bí mật (private key)). 2. chứng thực. service. có thể được công bố rộng rãi trong cộng đồng. cũng được sử dụng rất thường xuyên. + Data confidentiality Đảm bảo các thông tin nhạy cảm không được tiết lộ cho các tổ chức không liên quan. Để đảm bảo dữ liệu chỉ được đọc bởi bên gửi và bên nhận.81 - . + Asymmetric Encryption Phương pháp này được gọi là phương pháp mã hoá khoá công khai. nơi chịu trách nhiệm quản lý các khóa công khai và người chủ của khóa công khai tương ứng. lưu trữ một cách an toàn các khóa sử dụng trong quá trình mã hóa. khoá được trao đổi một cách bí mật giữa 2 bên. Data confidentiality còn được gọi là sự riêng tư (privacy) + Key management Liên quan đến việc phát sinh.2 + Data integrity Đảm bảo dữ liệu không bị thay đổi hay phá hủy bởi các hoạt động trái phép. Giới thiệu bộ Globus Toolkit phiên bản 3. GSI cùng với Public Key Infrastructure(PKI) cung cấp một framework (bao gồm các protocol. khóa công khai được để trong các chứng chỉ điện tử (digital certificate) được cấp bởi Certificate Authority. trong khi khóa công khai của họ không cần được bảo vệ. . và các chuẩn) nhằm hỗ trợ Grid với 5 dịch vụ trên. họ có thể giải mã được thông tin. Khóa để mã hoá khác với khoá được sử dụng để giải mã.Chương 3. Phương pháp mã hoá khóa công khai yêu cầu các bên phải bảo vệ kỹ các khóa bí mật của mình. Nếu ai đó lấy được khóa bí mật đã sử dụng để mã hoá. Phương pháp mã hoá này kém an toàn nhưng tốc độ mã hóa/giải mã lại nhanh hơn dạng mã hoá Asymmetric trình bày dưới dây. giải mã các thông điệp. Thông thường. Các khái niệm quan trọng trong bảo mật Grid và GSI + Symmetric Encryption Mã hoá kiểu Symmetric dựa trên việc sử dụng một khoá bí mật để thực hiện mã hoá và giải mã dữ liệu. phân phối.

và không thể giải mã bởi khoá dùng để mã hoá. . Các cặp khoá được phát sinh bằng cách tìm 2 số nguyên tố cực lớn khác nhau. Phần lớn thông tin trong DN là do CA cung cấp. sau đó tiếp tục giải mã bằng khóa công khai của bên gửi. người chỉ dùng phương pháp public key encryption để trao đổi khóa của phương pháp symmetric encryption giữa hai bên. DN là một thành phần của chứng chỉ điện tử. + Distinguished Name (DN) Distinguished Name là một chuỗi ký tự duy nhất dùng để định danh người dùng (người dùng có thể là một người hay một thực thể ) trong Grid. và khóa bí mật được giữ ở mỗi bên. Trước hết. trong thực tế. Bằng cách này. người dùng Grid và khóa công khai tương ứng. Khi nhận được thông điệp. Do đó. + Digital certificates (Chứng chỉ điện tử) Chứng chỉ điện tử là một tài liệu điện tử chứa thông tin định danh tài nguyên. không ai khác có thể đọc được thông điệp trừ khi có được khóa bí mật của một bên. Các thuật toán phát sinh khóa bí mật và khóa công khai được thiết kế sao cho một thông điệp được mã hoá bởi một khoá thì chỉ có thể được giải mã bởi khoá còn lại tương ứng. đặc biệt là khi phải mã hóa một lượng lớn dữ liệu. Ngay cả khi khóa công khai được để công khai rộng rãi. có thể nói DN là một “Grid username”. bên nhận sẽ thực hiện giải mã bằng khóa bí mật của mình trước. sau đó mã hoá tiếp lần nữa bằng khóa công khai của bên nhận. cũng rất khó để các máy tính hiện nay có thể tìm ra khóa bí mật từ khóa công khai. và sau đó.2 Hệ thống khoá công khai thực hiện bảo mật hai lần trên thông điệp trao đổi giữa các bên. Giới thiệu bộ Globus Toolkit phiên bản 3. Một chứng chỉ được xem như là một thẻ nhận dạng điện tử không thể làm giả sau khi đã được đóng dấu bởi CA trong môi trường Grid. việc mã hoá/giải mã được sử dụng bằng khoá symmetric này. bên gửi sẽ mã hóa thông điệp bằng khóa bí mật của mình. Các thuật toán này tăng độ tin cậy về bảo mật nhưng lại tốn rất nhiều thời gian để mã hóa. Một chứng chỉ điện tử là một cấu trúc dữ liệu chứa khóa công khai và các thông tin chi tiết về chủ của khóa công khai đó.Chương 3.82 - . nhưng điều này rất khó thực hiện được vì hai bên gửi và nhận không trao đổi khóa cho nhau.

com/CN=Bobby" . Giới thiệu bộ Globus Toolkit phiên bản 3. chứng chỉ này xác định tên người dùng thực sự của Grid chứ không phải tên một server hay tên máy trạm. SSL ID này dùng để mã hoá tất cả các dữ liệu truyền thông giữa 2 bên. bên nhận sẽ sử dụng khóa công khai của bên gửi để giải mã SSL session ID. có một ai đó tên Bobby. Những chứng chỉ này có thể dùng được với các phần mềm dựa trên PKI khác bao gồm các trình duyệt web của Microsoft. Netscape. Bên nhận kiểm tra chữ ký của CA trong chứng chỉ vừa nhận được. sẽ cần phải có một server certificate. xin xem trong phụ lục ECấu trúc chứng chỉ điện tử. . Các chứng chỉ điện tử của GSI dựa định dạng chứng chỉ X. Về cấu trúc và quá trình cấp một chứng chỉ điện tử. Server certificate sẽ ghi fully-qualified domain name của server vào user certificate của người đó.83 - . một định dạng chuẩn về chứng chỉ điện tử do tổ chức Internet Engineering Task Force (IETF) đưa ra.domain.Chương 3. nó sẽ đính kèm chứng chỉ điện tử của mình vào thông điệp thay vì khóa công khai. full-qualified DNS name của người đó . Để user certificate có hiệu lực. thì nó có thể chấp nhận và tin tưởng rằng khóa công khai trong chứng chỉ thực sự đến từ nơi gửi (thao tác này đề phòng trường hợp giả danh người chủ của khóa công khai). * Các loại chứng chỉ điện tử Có 2 loại chứng chỉ khác nhau được dùng trong môi trường Grid. Ví dụ. Sau đó.509. Nếu chữ ký đó là của một CA mà bên nhận tin tưởng.Server certificate Nếu một người dùng muốn chạy các ứng dụng yêu cầu chứng thực trên server.User certificate Một người dùng sẽ cần một user certificate để đại diện cho mình.2 Khi một thực thể trong Grid muốn bắt đầu một phiên làm việc với đối tác nào đó. Loại thứ nhất là chứng chỉ dành cho người dùng (user certificate) và chứng chỉ dành cho các Grid server (Server certificate). thì trong chứng chỉ điện tử của anh ta có thể có một distinguished name như sau: “/O=Grid/O=GridTest/OU=test.

để bản thân CA có thể được đại diện bằng chứng chỉ của mình. . Để có được các chứng chỉ này. Ví dụ : nếu tên server là “Darksky”. Các trách nhiệm chính của một CA tốt bao gồm : . chấp thuận hay từ chối các yêu cầu cấp chứng chỉ trước khi chuyển yêu cầu đến CA. gửi đến một CA tin cậy. RA chịu trách nhiệm kiểm tra và đảm bảo các thông tin người dùng là đúng đắn và hợp lệ. . các chứng chỉ này sau đó được ánh xạ vào các người dùng cục bộ trên host. thường sẽ tách thành 2 nhóm CA và Ra riêng lẻ. simple CA kiêm luôn chức năng của CA và RA. Trong trừơng hợp này. CA phát sinh ngẫu nhiên cặp khóa cho nó. .Bảo vệ các CA server. . CA này sẽ thực hiện ký xác nhận vào chứng chỉ và gửi lại người yêu cầu. tên trong server certificate có thể là : /CN=Service/Darksky.Xác định được các thực thể đang yêu cầu cấp chứng chỉ. Trước khi một CA có thể ký. Globus Toolkit có cung cấp một module simple CA để phục vụ cho việc thử nghiệm các ứng dụng trong một trường Grid.Theo dõi các hoạt động. . Một vấn đề then chốt trong môi trường PKI là đảm bảo tính tin cậy. Trong một số môi trường PKI. đóng dấu và cấp chứng chỉ cho các thực thể khác.Cấp phát. loại bỏ và lưu trữ các chứng chỉ.Quản lý không gian tên cho các chủ sở hữu chứng chỉ. có thêm một Registrant Authority (RA) hoạt động liên kết với CA để thực hiện các nhiệm vụ trên.<com> + Certificate Authority (CA) Việc bảo mật trong Grid được xác lập thông qua việc sử dụng các chứng chỉ ở mức host và người dùng. có thể tin tưởng của hệ thống.<domain>.Chương 3. Khi số lượng chứng chỉ tăng lên. Một CA đúng nghĩa có nhiều trách nhiệm khác nhau trong môi trường Grid. Điều đó có nghĩa CA cần phải làm các công việc sau: 1.2 phải giống như trong user certificate. nó cũng phải làm một việc tương tự cho chính nó. Giới thiệu bộ Globus Toolkit phiên bản 3. các bản yêu cầu xin cấp chứng chỉ được tạo ra.84 - .

một CA sẽ cung cấp chứng chỉ cho một nhóm cố định các người dùng. muốn thực thi một công việc trên một máy tính thuộc Grid của Mike. các điều sau cần được xem xét: _Alice và Mike cần một cách để có thể lấy được khóa công khai chứng chỉ của đối tác. + Gridmap File Sau khi đã có các chứng chỉ. nếu có 2 công ty hoặc VO cần phải liên lạc với nhau. Điều này yêu cầu cả hai CA phải tin tưởng lẫn nhau hay cùng tham gia vào một vùng cho phép sử dụng chéo chứng chỉ (cross certification). Các máy tính trong Grid.Khóa bí mật của CA là một trong những phần qua trong nhất trong toàn bộ môi trường PKI. CA tự tạo ra chứng chỉ cho chính mình. do đó. nằm ngoài tổ chức và thuộc về một CA khác.Thông thường. Giới thiệu bộ Globus Toolkit phiên bản 3. File Grid map là một file trên tài nguyên đầu . CA ký xác nhận chứng chỉ đó bằng khóa bí mật của mình.2 2. Để có thể thực hiện được điều đó. do đó. một thực thể Grid cần phải biết người dùng nào có chứng chỉ nào được phép truy cập đến các tài nguyên của nó. CA lưu trữ bảo mật khóa bí mật của nó. Do đó cần thực hiện tất cả các giải pháp bảo mật có thể để bảo vệ khóa bí mật của CA. _Mike cần phải chắc chắn là có thể tin tưởng được CA của Alice và ngược lại. và cần phải tin tưởng đối tác của mình. Nó được dùng để ký xác nhận các chứng chỉ trong môi trường Grid. cần phải tin tưởng vào chứng chỉ của đối tác. các vai trò và các mối quan hệ giữa các CA cần phải được xác định. Một số lưu ý với CA: .Chương 3. nếu có ai lấy được khóa bí mật của CA thì họ sẽ có thể giả danh bất cứ ai trong môi trường Grid. một nhân viên thuộc một tổ chức với CA riêng của mình.85 - . Tuy nhiên. Điều này được thực hiện bằng một file Grid map. 4. 3. trong một môi trường Grid đơn lẻ. Điều này có thể thực hiện bằng cách mở rộng môi trường PKI trên toàn cầu. . Ví dụ : Alice. đến từ nhiều vùng bảo mật hay các VO khác nhau.

Gửi bản yêu cầu chứng nhận đến CA qua email hay theo một cách an toàn nào đó. có dạng như sau: “DN” <user cục bộ> Ví dụ : “/C=VN/O=HCMUNS/OU=FIT/CN=NMDzung/USERID=Dzung” root 3. Cơ chế hoạt động Chúng ta vừa tìm hiểu một số khái niệm cơ bản về bảo mật trong Grid. 2. .86 - .2 cuối. Điều này cho phép phân cho các người dùng Grid khác nhau các quyền khác nhau trên tài nguyên thông qua các người dùng cục bộ được ánh xạ. CA ký tên chứng nhận vào bản yêu cầu để tạo thành một chứng chỉ và gửi lại user. chỉ cần loại bỏ DN đó ra khỏi Grid map file. trong phần này sẽ tìm hiểu các cơ chế hoạt động của các thành phần của GSI để có thể cung cấp các dịch vụ bảo mật.4. Grid map file được lưu trong file : /etc/security/gridmap-file. Sau khi được ánh xạ. mỗi dòng là một ánh xạ giữa DN và user cục bộ.3. Gridmap-file là một file text. Để từ chối truy cập đối với một DN.1. gồm các bước sau: 1. + Quy trình chuẩn bị để có thể sử dụng Grid Hình 3-6 giới thiệu quy trình khởi tạo cho phép một người dùng Grid (có thể là người hay host) sử dụng GSI để tham gia vào Grid. một DN có thể sử dụng tài nguyên trên host như là một người dùng cục bộ. tức DN có toàn quyền của người dùng cục bộ.Chương 3. thực hiện ánh xạ các DN vào các người dùng cục bộ trên tài nguyên. trên hệ thống Linux. Tạo khóa bí mật và một bản yêu cầu chứng nhận chứng chỉ. Sao chép khóa công khai của CA về host. 3. Trong GT. 4. Giới thiệu bộ Globus Toolkit phiên bản 3.

Chứng chỉ điện tử của Grid host Để có thể thực hiện các việc chứng thực và giao tiếp cho Grid host một cách an toàn. lúc này trên host của user sẽ có 3 thứ quan trọng: 1. mô tả các bước để Grid host B chứng thực và phân quyền sử dụng cho Grid host A. . Host B tạo một số ngẫu nhiên (X) và gửi lại cho host A. ví dụ vậy. Grid host A gửi user certificate đến host B. Khóa bí mật của Grid host 3. sẽ mã hoá số X bằng khóa bí mật của người dùng. Khi host A nhận được số X. Host B lấy khóa công khai và subject (DN) của người dùng từ user certificate bằng cách sử dụng khóa công khai của CA. đó là sử dụng thêm một passphrase (mật khẩu) bí mật nữa khi sử dụng khóa bí mật cùng với chứng chỉ điện tử. Khóa công khai của CA 2. không được để bất cứ ai truy cập được khóa bí mật của mình. 2. yêu cầu muốn mở kết nối đến host B để sử dụng tài nguyên của B. GSI cung cấp thêm một tầng bảo mật nữa để đảm bảo an toàn cho khóa bí mật. Số X sau khi mã hoá (Y) sẽ được gửi lại cho host B.Chương 3. 3. Giới thiệu bộ Globus Toolkit phiên bản 3. 4. Host B sẽ bắt đầu thực hiện chứng thực host A.2 Hình 3-6 Quy trình khởi tạo để sử dụng GSI Quy trình trên kết thúc khi user nhận được chứng chỉ của mình. + Quy trình chứng thực và phân quyền Hình 3-7 mô tả quy trình chứng thực và phân quyền của GSI. 1. Điều này ngăn không cho một ai sau khi lấy được chứng chỉ điện tử và khóa bí mật có thể sử dụng chúng để truy cập đến các tài nguyên Grid.87 - . Ở đây.

bởi vì chỉ người dùng trên host A mới có thể mã hoá số X bằng khóa bí mật của mình. Chức năng sẽ được giới thiệu chi tiết hơn ở phần sau.2 5. Chứng chỉ của người dùng trên host A đã được host B chứng thực. do đó host có thể phải chứng thực một host khác và được chứng thực bởi host kia tại cùng một thời điểm.88 - . Trong môi trường Grid. Host B sẽ giải mã Y bằng khóa công khai của user lấy được trong bước 2. Giới thiệu bộ Globus Toolkit phiên bản 3. tức là chứng chỉ điện tử host B nhận được chính là của người dùng trên host A. và so sánh kết quả sau khi giải mã với số X đã gửi đi trước đó. sau đó. 6. là tên được sử dụng bởi LDAP để phân biệt các điểm vào trong directory service) lấy được trong bước 2 vào người dùng cục bộ thông qua gridmap-file. Nếu giống. có thể là server trong một số trường hợp khác. . một host có vai trò là client trong một số trường hợp. Lúc này. Trong trường hợp này có thể sử dụng chức năng mutual authentication của GSI.Chương 3. host B sẽ ánh xạ subject (là một dạng của DN. người dùng trên host A đã được cho phép hoạt động như một người dùng cục bộ trên host B. Hình 3-7 Thủ tục chứng thực và phân quyền với GSI.

Một proxy bao gồm một chứng chỉ mới (có đính kèm khóa công khai mới của proxy) và một khóa bí mật mới. . từ đó cho phép người dùng có thể sử dụng nhiều tài nguyên khác nhau mà chỉ cần đăng nhập một lần. được sửa lại để cho biết đó là một proxy. Hình 3-8 Cơ chế ủy quyền trong GSI. khi hết thời gian sống.89 - . Cơ chế uỷ quyền được mô tả trong hình 3-9. Các proxy lại có thể tạo ra và uỷ quyền cho các proxy khác tạo thành một chuỗi các đại diện cho người dùng trên các tài nguyên (như trên hình 3-8). proxy sẽ trở nên không hợp lệ. Đây là một sự mở rộng của protocol SSL nhằm giảm số lần phải gõ passphrase của người dùng khi sử dụng nhiều tài nguyên Grid có yêu cầu chứng thực. Chứng chỉ mới chứa định danh của người chủ proxy. Trong proxy certificate có chứa thêm thời gian sống của proxy. thường thì thời gian sống của proxy rất ngắn. Chứng chỉ mới được ký bởi người chủ sở hữu thay vì CA.Chương 3. Cơ chế gồm 2 bước chính: khởi tạo proxy trên host ở xa (host B) và chứng thực proxy trên một host khác (host C).2 + Cơ chế uỷ quyền (delegation) Cơ chế uỷ quyền trong GSI giải quyết yêu cầu về đăng nhập một lần (single sign-on) của một hệ thống Grid. Người dùng không cần phải gõ lại passphrase bằng cách tạo ra một proxy và ủy quyền cho nó. Giới thiệu bộ Globus Toolkit phiên bản 3.

3. Host B tạo một bản yêu cầu cho proxy certificate của người dùng và gửi yêu cầu này về host A. Trước khi có thể gửi yêu cầu thực hiện công việc trên host C. Quy trình thực hiện như sau : . Host A gửi chứng chỉ của người dùng cho host B. 4.90 - .2 Hình 3-9 Thủ tục uỷ quyền của một proxy trong GSI. Một kết nối tin cậy phải được tạo ra giữa host A và host B (thực hiện quy trình chứng thực trên host B như ở trên). proxy cần được chứng thực trên host C. Bước 2 : Chứng thực proxy Lúc này proxy trên host B đã được người dùng uỷ quyền. Giới thiệu bộ Globus Toolkit phiên bản 3. proxy trên host B có thể liên lạc và được chứng thực và phân quyền trên host C như thể là user trên host A. Host A sử dụng khóa bí mật của người dùng để ký xác nhận vào bản yêu cầu proxy certificate và gửi nó lại cho host B. Bước 1 : Khởi tạo proxy Để khởi tạo một proxy: 1. 2. Người dùng trên host A gửi yêu cầu host B tạo một proxy để đại diện cho mình. 5.Chương 3.

Globus Toolkit còn cho phép uỷ quyền cục bộ. Lưu ý: Khi tạo một proxy trên host ở xa. Host C thực hiện ánh xạ proxy subject vào người dùng cục bộ thông qua Grid-mapfile. 8. host C chỉ cần kiểm tra phần chuỗi còn lại trong proxy subject sau khi loại bỏ “/CN=proxy” xem có giống với subject của user không. 7. Giới thiệu bộ Globus Toolkit phiên bản 3. nên người quản trị của host đó có thể lấy khóa bí mật của proxy và thực hiện các . và gửi đến host C.1. nếu đúng là hợp lệ. Host C sử dụng khóa công khai của proxy để giải mã thông điệp và lấy yêu cầu của proxy. proxy đã được chứng thực bởi host C và có thể hoạt động như một đại diện với tất cả các quyền của người dùng trên host A. Ngoài ra. trong đó một người dùng tạo proxy trên host ở xa. để kiểm tra tính hợp lệ của proxy.91 - . Proxy của người dùng trên host B gửi user certificate và proxy certificate đến host C. Proxy mã hoá thông điệp yêu cầu thực hiện công việc bằng khóa bí mật của mình.2 6. Host C lấy khóa công khai của proxy thông qua thủ tục “path validation”: 7. 10. 7. Nếu hợp lệ. và thực thi công việc dưới quyền của người dùng cục bộ.domain. 7. khóa bí mật của proxy sẽ nằm trên host đó. 9. Giả sử subject của người dùng là : “/O=Grid/O=GridTest/OU=test. Host C sử dụng khóa công khai của CA để lấy subject và khóa công khai của người dùng trong user certificate.2.com/CN=GreenStar" Subject của proxy certificate cũng giống như subject của người tạo ra nó (ở đây là người dùng trên host A) và có dạng như sau: “/O=Grid/O=GridTest/OU=test.Chương 3.com/CN=GreenStar/CN=proxy" Do đó. thông qua lệnh Grid-proxy-init. Thủ tục trên cho phép uỷ quyền từ xa. Host C sử dụng khóa công khai của người dùng để lấy subject và khóa công khai của proxy trong proxy certificate. trong đó người dùng tạo proxy ngay trên host của mình.3.domain.

để tránh việc tấn công kiểu giả dạng này. Giới thiệu bộ Globus Toolkit phiên bản 3.2 công việc dưới tên của chủ proxy.conf usercert. đây có thể là một điểm yếu để khai thác.4. File ánh xạ giữa tên người dùng Grid (subject hay DN) với người dùng cục bộ. Các chức năng SSL/TLS được cung cấp bởi OpenSSL được sử dụng để mã hoá tất cả các dữ liệu vận chuyển qua lại giữa các host. + Cơ chế bảo mật liên lạc trong GSI Việc bảo mật truyền thông trong GSI dựa trên hai công nghệ là : Mutual authentication (chứng thực lẫn nhau) và SSL/TLS. Sử dụng GSI + Các file quan trọng Khi cài đặt GT3. nên có những chính sách giới hạn khả năng của proxy. chữ ký của CA) userkey. + Các công cụ .92 - . tấn công.pem Khóa bí mật của user certificate (được mã hóa bằng passphare).1. 3.pem Certificate của người dùng (subject name.Chương 3.pem Grid-mapfile Diễn giải Là server certificate được sử dụng trong mutual authentication Khóa bí mật tương ứng với server certificate. Các chứng chỉ điện tử trên các Grid host cho phép thực hiện chứng thực lẫn nhau giữa hai bên tham gia truyền thông. có các file cấu hình quan trọng để sử dụng GSI như sau: Thư mục /etc/Grid-security File hostcert.pem hostkey. Bảng 3-3 Các file cấu hình GSI của GT3.4.globus CA certificate ca-signing-policy.khóa công khai. /etc/Gridsecurity/certificates $HOME/. Do đó.

Grid-proxydestroy Grid-proxy-info -subject -issuer -type -timeleft -strength -help Logout khỏi Grid. Lấy thông tin về proxy Bảng 3-4 Bảng các công cụ cấu hình GSI.globus/ Grid-cert-info -all -startdate -subject enddate -issuer -help Lấy thông tin về chứng chỉ.2 GT3 cung cấp các công cụ cho phép người dùng có thể cấu hình GSI. Lưu ý.Chương 3. các proxy ở xa không bị huỷ. đăng nhập và sử dụng tài nguyên Grid. Giới thiệu bộ Globus Toolkit phiên bản 3.domain.$ Grid-cert-info –subject “/O=Grid/O=GridTest/OU=test. thực hiện hủy proxy cục bộ. . Tên công cụ Grid-cert-request Các tham số Diễn giải & Ví dụ Sử dụng để tạo một cặp khóa công khai/bí mật và một bản yêu cầu cấp chứng chỉ trong thư mục ~/.93 - .com/CN=GreenStar" Grid-proxy-init -hours -bits -help Thực hiện khởi tạo proxy và đăng nhập vào Grid. Ví dụ : .

94 - .Chương 3. Các hàm API được viết theo chuẩn GSS-API. vấn đề quản lý tài nguyên là một thách thức lớn cho công nghệ Grid Computing. gss_{init. Giải pháp này được thể hiện trong hình 3-10. đưa vào vùng đệm xuất của người dùng. gss_release_cred() Giải phóng các credential.1. gss_inquire_cred() Lấy các thông tin về các credential. Giới thiệu 1.2 + Một số hàm API quan trọng GT3 có rất nhiều hàm API phục vụ lập trình với GSI. Nhóm phát triển Globus Toolkit đã đưa ra một giải pháp khá hoàn chỉnh để giải quyết vấn đề quản lý và chia sẻ tài nguyên trong Grid. Phát sinh thông điệp đã mã hoá để gửi đi. bao gồm user proxy certificate và khóa bí mật. Kiến trúc quản lý tài nguyên của Globus Như đã biết.globus. Giới thiệu bộ Globus Toolkit phiên bản 3. cho phép thêm các ràng buộc vào việc uỷ quyền.2. gss_{import. .4.4. Bảng … giới thiệu một số hàm API quan trọng. Resource Management 3.accept}_delegation() Thực hiện ủy quyền và chấp nhận ủy quyền.export}_name() Đưa vào / xuất ra một subject name. gss_unwrap() Lấy thông điệp đã mã hoá bằng gss_wrap(). … Bảng 3-5 Bảng các hàm API về GSI của GT3 3. Mọi chi tiết xin tham khảo tài liệu về các hàm API trên website : www.2. gss_wrap() Tính checksum và mã hoá trên vùng đệm nhập của người dùng.org Tên hàm gss_acquire_cred() Diễn giải Nạp các chứng chỉ (credential) bảo mật vào chương trình. kiểm tra checksum và giải mã nó.

được sử dụng để trao đổi các yêu cầu về tài nguyên giữa các thành phần: từ ứng dụng (application) đến resource broker. rồi một số broker khác định vị các tài nguyên thoả yêu cầu. có thể được chuyển cho một resource co-allocator. Nhiều broker có thể phối hợp với nhau để cùng giải quyết một yêu cầu về tài nguyên.2 Hình 3-10 Kiến trúc quản lý tài nguyên trong Globus Toolkit. Tại mỗi bước của quá trình này. đây là module chịu trách nhiệm phối hợp và quản lý tài nguyên trên nhiều site. Trong kiến trúc này. một số broker chuyển các yêu cầu của ứng dụng thành các yêu cầu chi tiết hơn về tài nguyên. Resource co-allocator thực hiện chia nhỏ các yêu cầu tài nguyên trên nhiều site thành từng thành phần nhỏ và chuyển chúng đến resource manager thích hợp. Giới thiệu bộ Globus Toolkit phiên bản 3.Chương 3. Mỗi Resource manager trong hệ thống chịu trách nhiệm lấy yêu cầu trong RSL và chuyển nó thành các thao tác thực hiện trên hệ thống quản lý tài nguyên cục bộ của site. . resource co-allocator và resource manager. Thông tin về khả năng. các thông tin về yêu cầu tài nguyên được đặc tả trong chuỗi RSL của ứng dụng hay được xây dựng lại bởi một hay nhiều resource broker và co-allocator.95 - . Bản đặc tả chi tiết về vị trí các tài nguyên. tính chất của các tài nguyên có thể lấy từ một Information service Resource broker chịu trách nhiệm chuyển đổi từ một đặc tả RSL cấp cao thành các đặc tả RSL chi tiết hơn qua quá trình chi tiết hoá. ngôn ngữ Resource Specification Language (RSL). tính sẵn sàng.

GRAM Grid Resource Allocation and Management (GRAM) là thành phần ở tầng thấp nhất trong mô hình trên. Quản lý được các tài nguyên không đồng nhất. cấp phát các tài nguyên cần thiết. 4. Thành phần Information Service sẽ được giới thiệu cụ thể ở phần sau. ánh xạ các yêu cầu cấp cao của ứng dụng thành các yêu cầu cụ thể đến các resource manager.Chương 3. Resource Manager một mặt cung cấp một giao diện chung thống nhất để sử dụng tài nguyên. Giải quyết vấn đề phối hợp cấp phát (co-allocation) bằng cách xác định nhiều chiến lược khác nhau. một mặt tương thích với từng công cụ quản lý tài nguyên. đa dạng trong nhiều vùng quản trị khác nhau. để xác định Resource Manager liên kết với tài nguyên. gói gọn. thông qua module Resource Manager.2 Information service chịu trách nhiệm cung cấp khả năng truy cập hiệu quả và rộng khắp đến các thông tin về khả năng và tính sẵn sàng hiện tại của các tài nguyên. Thông tin này dùng để định vị các tài nguyên với các đặc tính cụ thể. che đi sự phức tạp của tài nguyên. Để điều khiển trực tuyến và mở rộng các chính sách. đơn giản để yêu cầu và sử dụng các tài nguyên để thực thi các công việc. 2.96 - . và phục vụ cho rất nhiều mục đích trong quá trình biên dịch từ đặc tả yêu cầu tài nguyên cấp cao thành các yêu cầu đến các resource manager cụ thể. thực thi và quản lý trạng . GRAM xử lý các yêu cầu về tài nguyên để thực thi các ứng dụng từ xa. các chính sách. 2. các cơ chế bảo mật cục bộ. thành phần quản lý tài nguyên cục bộ (resource management). Mô hình trên đã giải quyết được các vấn đề: 1. tích hợp trong các resource coallocator. RSL được định nghĩa để hỗ trợ trao đổi. 3. GRAM giúp đơn giản hoá việc sử dụng các hệ thống. tài nguyên ở xa bằng cách cung cấp một giao diện chuẩn. Giới thiệu bộ Globus Toolkit phiên bản 3. Sử dụng các resource broker để thực hiện chuyển đổi. tìm kiếm giữa các thành phần khác nhau trong kiến trúc. Điều này giảm bớt độ phức tạp cho người dùng khi đặc tả các tài nguyên cần dùng. xác định tính chất của tài nguyên.

các giao diện điều khiển khác nhau). các dịch vụ để yêu cầu hoặc huỷ bỏ việc thực thi các công việc cũng như kiểm tra trạng thái của các công việc đang thực thi. Thay vào đó. hệ thống hàng đợi. Load Sharing Facility (LSF). Network Queuing Environment (NQE). GRAM đã được thiết kế để tương thích và sử dụng được với 6 bộ lập lịch cục bộ : Condor. Các yêu cầu được đặc tả bởi ngôn ngữ đặc tả tài nguyên (Resource Specification Language (RSL)).2 thái và tiến độ của các công việc đang thực hiện. Fork.97 - . một bản xây dựng trên các protocol riêng của Globus (trong GT2) được gọi là Pre-WS GRAM. Gridbus. Nó cũng thực hiện cập nhật các thông tin về khả năng và tính sẵn sàng của các tài nguyên đang quản lý cho module Information Service. xây dựng theo chuẩn OGSI. nó cung cấp các công cụ và giao diện để xây dựng các chức năng trên. Các hệ thống cục bộ ở xa có thể sử dụng nhiều cơ chế quản lý tài nguyên khác nhau (như sử dụng hệ thống lập lịch. EASY. hệ thống giữ chỗ.2 chứa 2 bản cài đặt GRAM. Giới thiệu bộ Globus Toolkit phiên bản 3.. Hiện nay GRAM không có khả năng lập lịch và tìm kiếm để tìm các tài nguyên và để tự động gửi các công việc đến các hệ thống thích hợp. và một bản mở rộng của PreWS GRAM. GRAM giảm thiểu các cơ chế cần thiết để sử dụng tài nguyên ở xa. Resource Specification Language (RSL) là một ngôn ngữ có cấu trúc được sử dụng để đặc tả các yêu cầu tài nguyên và các thông số cần thiết để thực thi một công việc. không có các chức năng kế toán và tính toán chi phí. được gọi là WS-GRAM. Trong WS-GRAM. RSL được viết lại dưới dạng XML. nó sẽ đi qua các trạng thái khác nhau theo sơ đồ trạng thái sau: . Các chức năng này được bổ sung bằng các dự án khác được xây dựng trên nền tảng GRAM như Condor-G. và LoadLeveler. một giao diện duy nhất (của GRAM) để yêu cầu và sử dụng các tài nguyên này. + Các trạng thái của một công việc trong GRAM: Khi một người dùng hoặc một resource broker gửi một yêu cầu thực thi công việc. Hiện nay.Chương 3. GRAM cung cấp các hàm API... GT3. nhưng người dùng và các nhà phát triển ứng dụng chỉ cần sử dụng một cơ chế.

1. đọc. 4. 2.2 Hình 3-11 Các trạng thái của một công việc. Các lời gọi callback về trạng thái công việc sẽ không bao giờ được thực hiện. Active Công việc đã nhận đủ các tài nguyên cần thiết và đang được thực thi. 7. 3. 8.98 - . 6. Giới thiệu bộ Globus Toolkit phiên bản 3. Failed . Chỉ có một số bộ lập lịch cho phép công việc vào trạng thái Suspended. StageOut Trình quản lý công việc gửi các file dữ liệu kết quả đến các kho lưu trữ ở xa. Pending Công việc đã được gửi đến bộ lập lịch cục bộ. nhập các file dữ liệu cho job. Một số công việc có thể không có trạng thái này. chuẩn bị thực thi.Chương 3. Một số công việc có thể không có trạng thái này. Done Công việc đã thực hiện xong và thành công. Suspended Công việc đã bị ngừng tạm thời bởi bộ lập lịch. nhưng chưa cấp phát tài nguyên cho nó. UnSubmitted Công việc chưa được gửi cho bộ lập lịch cục bộ. StageIn Trạng thái khởi tạo. 5.

99 - .2.Các công việc ở xa thực thi dưới quyền của user cục bộ. chứng thực giữa client và dịch vụ phải thông qua thành phần thứ ba (gatekeeper).Chương 3. do một lỗi hay do yêu cầu hủy của người dùng hoặc hệ thống. Pre-WS GRAM 1. Các đặc điểm chính .4. . Giới thiệu bộ Globus Toolkit phiên bản 3. .2. . 2.Việc uỷ quyền.Sử dụng ngôn ngữ RSL để trao đổi các yêu cầu về thực thi công việc.Cung cấp các dịch vụ không theo chuẩn OGSI phục vụ thực thi các công việc trên các site ở xa.2 Công việc kết thúc trước khi hoàn thành. Mô hình hoạt động tổng quan của pre-WS GRAM Kiến trúc các thành phần và cơ chế hoạt động của Pre-WS GRAM như sau: Hình 3-12 Các thành phần và cơ chế hoạt động của pre-WS GRAM . 3.

Thông thường nhiệm vụ này được thực hiện bằng cách gửi các yêu cầu cấp phát tài nguyên đến hệ thống quản lý tài nguyên cục bộ của site. Job manager này sẽ chạy trên hệ thống như là một user cục bộ.Machine-Specific Component : chứa các mã cài đặt cụ thể của các hàm API trên các môi trường cục bộ khác nhau. RSL parsing library. và thực sự xử lý các yêu cầu. * Gatekeeper là một thành phần khá đơn giản. các yêu cầu về callback. Khi các tiến trình được tạo ra. các thành phần chủ yếu của pre-WS GRAM là : GRAM client library. kết thúc tiến trình. khởi động một Job manager. Job manager còn chịu trách nhiệm theo dõi trạng thái của chúng.2 Như trên hình vẽ.100 - . các thông báo đến trình theo dõi tài nguyên (MDS).Chương 3.Common Component : chuyển thông điệp nhận được từ gatekeeper và client thành các lời gọi đến các API của Machine-Specific Component (MSC). và một số thành phần khác. GSI được sử dụng để chứng thực và phân quyền cho người dùng. Một Job manager có 2 thành phần : . Nó cũng biên dịch các yêu cầu thông báo thông tin callback của MSC thành các thông điệp gửi về client. . Mã cài đặt bao gồm các lời gọi hàm đến hệ thống cục bộ. ánh xạ user name cục bộ cho user ở xa. Giới thiệu bộ Globus Toolkit phiên bản 3. chịu trách nhiệm đáp ứng lại yêu cầu từ GRAM client bằng cách thực hiện 3 việc sau: thực hiện mutual authentication với user và tài nguyên. Đây là phần thay đổi duy nhất trong GRAM để tương thích với các môi trường cục bộ. . Nó giao tiếp với GRAM gatekeeper trên site ở xa để thực hiện mutual authentication và gửi một yêu cầu gồm có bản đặc tả tài nguyên. * Một Job manager chịu trách nhiệm tạo lập các tiến trình (process) được yêu cầu bởi người dùng. thông báo callback các thay đổi trạng thái. Job manager và GRAM Reporter. triển khai các thao tác điều khiển tiến trình như tạm dừng. * GRAM client library được sử dụng bởi các ứng dụng hay một coallocator đại diện cho ứng dụng. gatekeeper. Hoạt động của Job manager kết thúc khi công việc nó quản lý kết thúc. kích hoạt.

Cơ chế này được sử dụng trong lệnh globusrun. các công việc đang thực hiện. globus_duroc_control/runtime : Các hàm giao tiếp với DUROC .… ) và trạng thái (như số lượng các node. Pre-WS GRAM có thể sử dụng module Global Access to Secondary Storage (GASS) để truyền các file dữ liệu và kết quả về client. yêu cầu thực hiện. …. LDAP protocol và chúng được chia thành các nhóm hàm: globus_rsl : Module gồm các thực hiện thao tác với các đặc tả RSL. gatekeeper và job manager.) của bộ lập lịch cục bộ cho hệ thống Information Service (ở đây là MDS). Người dùng có thể sử dụng cơ chế co-allocator Dynamically-Updated Request Online Coallocator (DUROC) để yêu cầu thực hiện công việc trên nhiều job manager ở cùng một host hay ở nhiều host khác nhau (Xem hình 3-13).… globus_gram_myjob : Dùng để quản lý các tiến trình riêng lẻ trong các công việc. 3. Các hàm API GT3 cung cấp các hàm API hỗ trợ lập trình với RSL. Giới thiệu bộ Globus Toolkit phiên bản 3. GRAM. DUROC. globus_gram_client : Dùng để phát triển các ứng dụng client.Chương 3. quản lý công việc. số node đang đang sẵn sàng. có thể sử dụng xây dựng các broker mới.101 - .2 * GRAM reporter chịu trách nhiệm gửi các thông tin về cấu trúc (như khả năng giữ chỗ. Hình 3-13 Cơ chế hoạt động có DUROC trong pre-WS GRAM. số lượng hàng đợi. Các script RSL chứa cú pháp DUROC sẽ được phân tích (parse) ở GRAM client và phân phối đến nhiều job manager.

…) thỏa điều kiện trong câu truy vấn filterstring … Bảng 3-6 Bảng các hàm API của pre-WS GRAM.2 LDAP protocol : Cung cấp các hàm giao tiếp với hệ thống quản lý tài nguyên thông qua GIIS Server Tên hàm globus_gram_client_job_request() Diễn giải Yêu cầu thực hiện một công việc trên tài nguyên ở xa.3. nó chờ cho đến khi tất cả các tiến trình được giải phóng. char* Tìm kiếm máy tính trong hệ thống filterstring. globus_duroc_runtime_inter_subjob_*() Quản lý các công việc con của một globus_duroc_runtime_intra_subjob_*() DUROC công việc . int port) Mở một kết nối theo LDAP protocol ldap_search_s(ldapsever. . Các đặc điểm chính .org. globus_gram_client_callback_check() Thực hiện gọi hàm cục bộ khi có thông tin callback. …. Giới thiệu bộ Globus Toolkit phiên bản 3. globus_gram_client_job_signal() Gửi các tín hiệu điều khiển job manager globus_gram_client_callback_allow() Tạo/Huỷ cổng kết nối để nhận các globus_gram_client_callback_disallow() thông tin callback. globus_gram_client_job_cancel() Huỷ công việc.2.globus. Ghi chú: Thông tin chi tiết về lập trình với preWS-GRAM.102 - .4.Cung cấp các service theo chuẩn OGSI phục vụ thực thi các công việc trên các site ở xa. globus_gram_client_job_status() Kiểm tra trạng thái của công việc. globus_gram_client_job_callback_register() Đăng ký và huỷ đăng với job globus_gram_client_job_callback_unregister() manager để nhận thông tin callback. xin tham khảo tài liệu [22] và website : www. ldap_open (string server.Chương 3. WS-GRAM 1. globus_duroc_runtime_barrier() Tất cả các tiến trình trong một công việc của DUROC đều phải gọi hàm này. 3.

Việc uỷ quyền. Giới thiệu bộ Globus Toolkit phiên bản 3.2 . 2. Những GSH của 2 service này được lưu trữ trong MFS Service Data Element. 2. Mô hình thành phần và hoạt động Với GT3.103 - . . . Nó chỉ phát hành một Service Data Element đơn nhất. 4. 3. File Stream Factory Service Chịu trách nhiệm tạo các instance mới của File Stream Service. kiểu CPU. Redirector được hướng dẫn để chuyển .Chương 3. là một mảng các GSH của tất cả các instance MJS đang hoạt động. MMJFS sử dụng Service Data Aggregator để thu thập và phát sinh các Service Data Element cục bộ. người dùng đã có thể gọi thực thi các công việc thông qua các Grid service. Managed Job Factory Service (MJFS) Chịu trách nhiệm tạo lập một instance MJS mới. theo dõi trạng thái của công việc. host OS).Sử dụng ngôn ngữ RSL-2 (các đặc tả RSL theo định dạng XML) để trao đổi các yêu cầu về thực thi công việc. gọi createService đến nó qua Startup UHE. MJS sẽ khởi động 2 service File Streaming Factory Services làm stdout và stderr cho công việc. chứng thực giữa client và service không cần thông qua thành phần thứ ba. Master Managed Job Factory Service (MMJFS) Chịu trách nhiệm phát hành các service GRAM ảo cho thế giới bên ngoài.Các công việc ở xa thực thi dưới quyền của user cục bộ. MMJFS thực hiện cấu hình Redirector để giải quyết các lời các lời gọi createService đến hosting environment của người dùng. và gửi các thông báo. Managed Job Service (MJS) Là một OGSA service thực hiện gửi công việc đến các scheduler cục bộ. Kiến trúc GRAM được thiết kế lại theo OGSA thông qua 5 service và một số module: 1. các node hiện đang sẵn sàng) và các thông tin về host (host. chứa thông tin về trạng thái các scheduler cục bộ (như tổng các node.

8. File gridmap được sử dụng để lấy tên người dùng cục bộ tương ứng với subject DN của người dùng Grid và để đảm bảo chỉ có một UHE trên một người dùng chạy trên một máy. Khi có một yêu cầu về URL đến và có một điểm nhập(entry) trong file cấu hình. . module setuid/launch được sử dụng để khởi động UHE trên cổng được chọn và trả về URL cho Redirector. 6. 7.2 5. Virtual Host Environment Redirector Nhận tất cả các thông điệp SOAP và chuyển chúng đến User Host Environment (UHE). File Stream Service Là một OGSA service sử dụng một địa chỉ URL đưa vào để chuyển kết quả từ các file cục bộ tạo ra bởi factory đại diện cho các luồng stdout.Chương 3. Starter UHE Được sử dụng bởi Redirector để giải quyết các lời gọi đến một UHE. module setuid/launch được sử dụng để khởi động UHE cho user. sau khi chắc chắn rằng UHE đã được chạy. một cổng chưa sử dụng được chọn. File cấu hình cũng được cập nhật thêm điểm nhập này. Nếu một điểm nhập chưa tồn tại trong file cấu hình. Giới thiệu bộ Globus Toolkit phiên bản 3. Launch UHE Dùng để khởi động một hosting environment mới dưới user account. URL đích sẽ được xây dựng và trả về cho Redirector. Việc ánh xạ tên người dùng đến số hiệu cổng (port number) của UHE của người dùng đó được quản lý trong một file cấu hình. Nếu UHE ở cổng đó chưa được khởi động. stderr đến host có URL đó.104 - .

Hình 3-14 Các thành phần và cơ chế hoạt động của WS-GRAM. Sau này. MMJFS phát hành GSH của nó đến một Registry ở xa.2 Dưới đây là mô hình phối hợp hoạt động của các thành phần và service để giải quyết yêu cầu thực thi công việc của người dùng Grid. . 2. 1. Yêu cầu này sẽ được tiếp nhận bởi Redirector.105 - .Chương 3. Giới thiệu bộ Globus Toolkit phiên bản 3. Một người dùng (client) khởi tạo một proxy và gửi một yêu cầu createService đến server thông qua proxy của mình. (Có thể không có bước này) 3. khi có một lời gọi createService MMJFS sẽ sử dụng Redirector để gọi Starter UHE và khởi động một UHE. Trước hết MMJFS được cấu hình để sử dụng Redirector để chuyển hướng các lời gọi đến nó và sử dụng Starter UHE để khởi động một UHE nếu chưa có UHE cho người dùng.

Redirector chuyển lời gọi createService đến MJFS và ở đây sẽ thực hiện quá trình chứng thực hai chiều và phân quyền. 7. Sau đó.Chương 3. 5. MJFS tạo một MJS mới 10. Nó thu thập thông tin từ hệ thống lập lịch cục bộ. Starter UHE sẽ chờ cho đến khi UHE được khởi tạo hoàn toàn thông qua cơ chế “ping loop” và trả về URL đích cho Redirector. một cho stdout. hệ thống file. Các lời gọi tiếp theo đến MJS từ client sẽ được chuyển đến MJS thông qua Redirector. 8. Launch UHE tạo một tiến trình mới UHE dưới tên người dùng cục bộ đã được chứng thực. 15. từ đó xây dựng nên một URL đích. Nếu nó không thể chuyển tiếp được lời gọi bởi vì UHE chưa chạy. Giới thiệu bộ Globus Toolkit phiên bản 3. Redirector cố gắng chuyển tiếp lời gọi của người dùng đến URL đích vừa được xây dựng.2 4. 16. 14. MJS sẽ tạo ra 2 FSFS. một cho stderr. Các lời gọi FindServiceData sẽ được giải quyết bằng cách trả về một SDE (phát sinh bởi Service Data Aggregate) hoặc được chuyển đến MJFS liên quan. MJS gửi công việc được yêu cầu đến hệ thống lập lịch cục bộ. RIPS cung cấp các dữ liệu liên quan đến các thực thể MJS và MMJFS. Một trình quản lý GRIM chạy trong UHE để tạo một host certificate. . Redirector gọi Starter UHE để thực hiện phân quyền cho yêu cầu của người dủng thông qua Grid-mapfile để xác định tên người dùng cục bộ và cổng được sử dụng. 6.106 - . Để gửi các luồng stdout/stderr về client. 9. 12. module Launch UHE sẽ được gọi. Chứng chỉ này được sử dụng trong quá trình chứng thực hai chiều giữa MJS và client. 11.… 13. thông tin về host. MJS tạo các thực thể FSS như xác định trong yêu cầu về công việc.

4. Giới thiệu bộ Globus Toolkit phiên bản 3. Giới thiệu Grid Information Service (GIS) chịu trách nhiệm cung cấp các thông tin động và tĩnh về tính sẵn sàng và khả năng hiện hành của các tài nguyên cũng như các thông tin khác về toàn bộ hệ thống Grid. Các thông tin này sẽ được dùng để xác định vị trí các tài nguyên theo những tiêu chí cụ thể. để xác định các trình quản lý liên kết với tài nguyên. Information Service 3.Chương 3.3.1. để xác định các tính chất của tài nguyên. Hình 3-15 Mô hình quản lý thông tin trong Grid của Globus Toolkit.2 Các đặc tả yêu cầu tài nguyên và công việc trong GT3 được viết bằng ngôn ngữ RSL mới. Ngôn ngữ RSL mới cũng vẫn có các chức năng tương tự như trong GT2 nhưng được định nghĩa lại dưới dạng XML. 3. xác định chiến lược sử dụng hiệu quả tài nguyên.3. Mô hình quản lý thông tin Grid sau được đề xuất để giải quyết các thách thức và yêu cầu của một hệ thống GIS. và phục vụ nhiều mục đích khác trong quá trình chuyển các đặc tả về tài nguyên cấp cao của ứng dụng thành các yêu cầu cụ thể đến từng trình quản lý tài nguyên.107 - .4. GT3 vẫn cung cấp các hàm API dưới ngôn ngữ C và Java để xây dựng các client sử dụng các dịch vụ GRAM cùng với các API mới phục vụ việc chuyển đổi định dạng RSL của GT2 sang định dạng của GT3. .

108 - .Chương 3.4. theo dõi.2 Mô hình có các thành phần cơ bản: + Một tập rất lớn các nhà cung cấp thông tin (Resource Description Service) phân tán cho phép truy cập thông tin chi tiết.2. thông qua các hoạt động cục bộ hoặc là gateway cho các nguồn thông tin khác (như các truy vấn SNMP. Một cách đơn giản. loại bỏ lỗi. mang tính động về các tài nguyên cụ thể. hỗ trợ việc tìm kiếm tài nguyên. Hệ thống thông tin GIS được tích hợp với hệ thống bảo mật GSI để quản lý truy cập và bảo vệ thông tin. chỉ mục và/hoặc hồi đáp các thông tin cung cấp bởi một hay nhiều nhà cung cấp thông tin. Một service cấp cao sẽ sử dụng GRIP để lấy các thông tin về các thực thể từ các nhà cung cấp thông tin. Pre-WS Information Service (MDS2) MDS có các thành phần tương ứng với mô hình quản lý thông tin được giới thiệu ở trên: + Resource Description Service: Information Provider và Grid Resource Information Service (GRIS) . Trong GT2. rồi sau đó tổng hợp lại để phục vụ mục đích xác định. 3. và theo dõi cho các VO bằng cách triển khai các góc nhìn (view) cụ thể và tổng quát và các thao tác tìm kiếm tập các tài nguyên. Các service này được gọi chung là Aggregate Directory Service. dịch vụ information service được triển khai trong thành phần Metacomputing Directory Service (MDS). quản lý. một nhà cung cấp thông tin sẽ sử dụng GRRP để thông báo cho các service cấp cao về sự tồn tại của mình. Các service cấp cao hơn có thể sử dụng các thông tin này cùng với/hoặc các thông tin lấy trực tiếp từ các nhà cung cấp thông tin để phục vụ các công tác brokering. và protocol yêu cầu thông tin (GRid Information Protocol (GRIP)) dùng để lấy các thông tin về tài nguyên thông qua việc truy vấn hoặc yêu cầu thông báo định kỳ.…).… + Các protocol : Việc tương tác giữa các service cấp cao hoặc người dùng với các nhà cung cấp thông tin được định nghĩa trong 2 protocol cơ bản : protocol thực hiện đăng ký tài nguyên (GRid Registration Protocol (GRRP)) để đăng ký các tài nguyên tham gia hệ thống.3. + Các service cấp cao hơn có nhiệm vụ thu thập. Giới thiệu bộ Globus Toolkit phiên bản 3.

Mô hình thông tin của GRIP biểu diễn thông tin về tài nguyên bằng một tập các đối tượng đại diện có tên được tổ chức thành một hệ thống không gian tên phân cấp (hierarchical namespace) trong mỗi nhà cung cấp thông tin.2 + Aggregate Directory Service: Grid Index Information Service (GIIS) + MDS Client + Mô hình tổ chức. . ngôn ngữ truy vấn. các tên được quản lý trong phạm vi của từng nhà cung cấp thông tin hay aggregate directory cụ thể. Các tên phạm vi toàn cục được kết hợp từ tên nhà cung cấp thông tin với tên tài nguyên trong nội bộ nhà cung cấp đó.109 - . tìm kiếm thông tin.Chương 3. rồi sau đó thực hiện truy vấn trực tiếp các thuộc tính của từng thực thể tìm thấy. Ở đây sử dụng mô hình đặt tên phân cấp tương tự hệ thống tên DNS. Giới thiệu bộ Globus Toolkit phiên bản 3. Mô hình tổ chức dữ liệu ví dụ như hình 3-16 : Hình 3-16 Ví dụ tổ chức dữ liệu của MDS2. Người dùng có thể liên lạc với nhà cung cấp thông tin để tìm ra một tập các thực thể thỏa điều kiện. Mỗi đối tượng chứa các cặp thuộc tính – giá trị tương ứng với kiểu đối tượng để biểu diễn trạng thái hiện tại của tài nguyên. quản lý. điều này giúp dễ dàng hơn trong quản trị. GRIP được kế thừa lại từ protocol chuẩn Lightweight Directory Access Protocol (LDAP) về mô hình tổ chức dữ liệu. truy vấn thông tin trong hệ thống MDS Vì các nhà cung cấp thông tin có thể cung cấp thông tin của một hay nhiều thực thể. nên GRIP phải hỗ việc tìm kiếm và truy vấn. và các protocol truyền thông. Mỗi đối tượng thuộc một hoặc nhiều kiểu để xác định kiểu tài nguyên.

giúp giảm thiểu thông tin cần truyền trên mạng. MDS sử dụng các chuẩn định dạng dữ liệu và các hàm API của LDAP để giải quyết vấn đề quản lý thông tin tài nguyên. Các MDS client có thể lấy thông tin trực tiếp từ GRIS (đối với các tài nguyên cục bộ) và/hoặc từ GIIS (cho các tài nguyên trải rộng trong Grid).Chương 3.R) đang đóng góp tài nguyên vào một VO. . Một bộ lọc luôn luôn được sử dụng để xác định các tiêu chí cần thoả. cho phép tìm kiếm toàn cục lẫn cục bộ. Ngôn ngữ truy vấn giúp tìm kiếm. Như hình vẽ. Giới thiệu bộ Globus Toolkit phiên bản 3. và yêu cầu cung cấp thông tin định kỳ dài hạn về tài nguyên.110 - . Lưu ý về cách đặt tên tài nguyên. Sau đó GRIS sẽ đăng ký các thông tin về tài nguyên đang quản lý cho GIIS. Giải thích hình 3-17: Ở đây.O2. có 3 Aggregate Directory Service tạo nên một dịch vụ thư mục phân cấp để thể hiện cấu trúc logic này. tra cứu. có 2 trung tâm và một cá nhân (O1. các thông tin về tài nguyên được lấy bởi các Information Provider và được chuyển đến GRIS. Hình 3-18 mô tả hoạt động tổng quát của các thành phần MDS. GIIS này cũng có thể đăng ký thông tin cho GIIS cấp cao hơn và cứ thế. từ đó chỉ có một tập nhỏ các thuộc tính cần thiết được lấy về.2 Hình 3-19 là một ví dụ: Hình 3-17 Mô hình tổ chức dữ liệu phân cấp trong MDS2.

Nếu hết TTL mà không có truy vấn nào. 4. GRIS sẽ gọi Information Provider thích hợp để lấy các thông tin mới nhất. có yêu cầu truy vấn được gửi tới. và được lưu lại trong một khoảng thời gian time-to-live (TTL). Giới thiệu bộ Globus Toolkit phiên bản 3. Resource information Các thông tin động và tĩnh về tài nguyên được chứa trong các đối tượng quản lý bởi MDS 2.2 Hình 3-18 Các thành phần và cơ chế hoạt động của MDS2 1. Nếu sau đó. Các GIIS cũng được tổ chức như hệ thống DNS. Các GIIS cấp thấp sẽ đăng ký thông tin của mình cho GIIS cấp cao hơn.Chương 3. Grid Index Information Service (GIIS) GIIS là nơi chứa các chỉ mục đến các thông tin tài nguyên đăng ký bởi GRIS và các GIIS khác. Các MDS Client có thể xác định tên của một node GIIS để thực hiện truy vấn thông tin về bất cứ tài nguyên nào trong Grid. Các thông tin quản lý bởi GRIS được cập nhật khi có yêu cầu truy xuất. Information provider .111 - . Grid Resource Information Service (GRIS) GRIS là nơi chứa các thông tin lấy được từ các Information Provider. Nó được xem là một server cung cấp thông tin toàn Grid. 3. thông tin sẽ bị xoá. và mỗi GIIS đều có tên riêng.

xin tham khảo tài liệu [22]. Giới thiệu bộ Globus Toolkit phiên bản 3.3. . WS Information Service (Index Service) Hệ thống quản lý thông tin tài nguyên Grid trong GT3 đã có nhiều đổi khác so với GT2. Index Service đóng vai trò của một GIIS trong mô hình quản lý thông tin Grid. chúng ta cần tạo hoặc xác định một information provider để chuyển đổi các thuộc tính và trạng thái cho GRIS. cho phép người dùng lấy thông tin từ bất cứ Grid service nào. là một trong những GT3 Base Services. lựa chọn và tối ưu hoá việc sử dụng tài nguyên. MDS client Dựa trên lệnh LDAP client.Chương 3. ldapsearch. Các service được yêu cầu phải thông báo các thông tin cơ bản của mình.org.2 Thực hiện chuyển đổi các thông tin về thuộc tính và trạng thái của các tài nguyên cục bộ sang định dạng xác định bởi các lược đồ dữ liệu (như giới thiệu ở trên) và các file cấu hình.globus. theo dõi quá trình điền dữ liệu. 5. thành phần GRIS bị loại bỏ vì mỗi Grid Service đều có một tập các thông tin liên quan của riêng nó. Nó thực hiện thu thập. Index Service cũng có các chức năng tương tự như MDS.112 - . Ghi chú: Thông tin chi tiết và lập trình với MDS. Nó có thể được sử dụng cho để xây dựng các Service Data chỉ mục mang các thông tin trạng thái từ nhiều service instance phục vụ việc khám phá. [35] và website : www. Để thêm tài nguyên mới vào hệ quản lý MDS. Không giống như GT2.3. Index Service hiện có các chức năng sau : + Tạo và quản lý các Service Data động thông qua các trình Service Data Provider. nhưng nó cung cấp thông tin về các Grid Service dưới các định dạng XML. Các thông tin này đã được lưu trữ theo một cách thức đã được chuẩn hoá. để tìm kiếm thông tin tài nguyên trong Grid. tổng hợp và truy vấn các Service Data. tạo Service Data theo yêu cầu. 3. đã có các cách thức dễ dàng để truy vấn và hiểu các các dữ liệu của service thông qua các interface chuẩn của một Grid service.4.

GASS là một module truyền dữ liệu trên nhiều protocol khác nhau. GRIP). GT đưa ra protocol GridFTP. truyền dữ liệu cấp cơ sở. truyền file song song. được tích hợp trong GRAM. theo dõi tiến độ.113 - . đồng thời cung cấp khả năng quản lý quá trình truyền file. GridFTP đi kèm trong bộ GT bao gồm một trình server. và mở rộng thêm các chức năng phân mảnh file. cho phép truyền các file dữ liệu giữa các máy nhanh hơn. phục hồi lỗi khi truyền. Mục tiêu của GASS là cung cấp cách thức đơn giản cho phép ứng dụng nạp và truy xuất dữ liệu một cách an toàn đến các file server thông qua các hàm API độc lập với các protocol truyền dữ liệu bên dưới. + Thành phần nhân bản và quản trị dữ liệu. protocol này dựa theo protocol FTP truyền thống đưa ra bởi tổ chức IETF.4. Các chức năng của GASS được sử dụng thông qua các câu đặc tả RSL. Các protocol truyền thông của Web service (SOAP) được sử dụng thay thế cho các protocol phục vụ đăng ký. GT hiện không phát triển các dịch vụ quản trị dữ liệu cao cấp hơn. . Giới thiệu bộ Globus Toolkit phiên bản 3. bảo mật và mạnh mẽ hơn. một client (lệnh globusurl-copy trong GT2 hay dịch vụ Reliable File Transfer Service (RFT) trong GT3) và một bộ các thư viện phát triển ứng dụng hỗ trợ ngôn ngữ C. Để phục vụ truyền và truy cập đến các dữ liệu bên thứ ba (third party). Các dự án Grid có thể sử dụng protocol GridFTP làm nền tảng để phát triển các dịch vụ quản trị dữ liệu cho riêng mình. Mô hình quản lý thông tin của Index Service được kế thừa lại từ mô hình của Web service. Data Management Có 2 thành phần chính phục vụ quản trị dữ liệu trong GT: + Thành phần phục vụ truyền và truy cập dữ liệu.4. 3. Để thực hiện nhiệm vụ truy cập. cho phép ứng dụng truy cập đến dữ liệu ở xa bằng các địa chỉ URL. hiệu quả hơn. truy vấn (GRRP. điều khiển bộ đệm TCP. + Đăng ký các Grid service instance sử dụng port type Service Group.2 + Tổng hợp Service Data từ nhiều Grid service instance.Chương 3. GT đưa ra module Globus Access to Secondary Storage (GASS).

3. Cho phép sửa đổi các log filter và nhóm các thông tin log để dễ theo dõi và quản lý. Giới thiệu bộ Globus Toolkit phiên bản 3. Bảo mật cấp thông điệp bao gồm bảo mật trên toàn bộ session (GSISecureConversation) cũng như trên từng thông điệp (GSISecureMessage).globus. cho phép huỷ.5.Chương 3. GT3 Core Các thành phần của GT Core được tóm tắt như sau: OGSI Spec Implementation Security Infrastructure Triển khai cài đặt tất cả các interface do OGSI xác định.4.org. [34] và website : www. Là các Grid service tương thích OGSI chung nhất để sử dụng bởi tất cả các Grid service khác.114 - .1. System level services Logging Management Service Management Service Bảng 3-7 Các thành phần của GT Core . chứng thực và phân quyền dựa trên gridmap file.2 Ghi chú: Chi tiết về các thành phần quản trị dữ liệu cũng các hàm API và cách thức lập trình sử dụng chúng xin tham khảo tài liệu : [22]. kích hoạt các service instance.5.4. Thành phần mới trong GT3 3. Thành phần này hỗ trợ bảo mật cấp thông điệp. Hiện tại có 3 loại service: Ping service Sử dụng để "ping" một hosting environment. Cung cấp một interface để theo dõi trạng thái và tải hiện tại của các service.

Chương này chỉ giới thiệu một số vấn đề đặc trưng của việc phát triển một ứng dụng Grid. phân tích thiết kế. Phát triển ứng dụng với bộ Globus Toolkit 3. khó khăn hơn rất nhiều. đọc ghi các định dạng dữ liệu hiện tại.… +Việc sửa chữa các hệ thống có sẵn để đưa chúng vào hoạt động trong môi trường Grid thì phức tạp. và triển khai. Sử dụng lại các hệ thống có sẵn và sửa chữa để có thể thực thi được trên Grid. cần quan tâm lựa chọn định hướng phát triển hệ thống. Dưới đây phân tích một số khía cạnh ảnh hưởng đến quyết định lựa chọn việc khởi đầu dự án xây dựng ứng dụng Grid. các bộ công cụ hỗ trợ tốt nhất.1. + Nếu phát triển hệ thống mới. trước khi bắt đầu dự án. Phát triển ứng dụng với bộ Globus Toolkit 3. nhà phát triển được tự do lựa chọn các môi trường. hiện nay có rất nhiều hệ thống đã tồn tại rất lâu trong các tổ chức. Khởi đầu dự án 4. việc thay mới hoàn toàn các hệ thống này là không khả thi. Vì bộ Globus Toolkit hiện nay tập . Hầu hết các nhà phát triển đều thích xây dựng ứng dụng lại từ đầu để có thể kiểm soát hoàn toàn quá trình thiết kế và phát triển.115 - . tuy nhiên vẫn có các ràng buộc cụ thể cho ứng dụng như phải quản các kết nối đến các cơ sở dữ liệu có sẵn. công cụ lập trình.Chương 4. viết mã.2 Quy trình phát triển các ứng dụng Grid cũng tuân theo các quy trình áp dụng trong các dự án phần mềm thông thường khác. do đó vấn đề sử dụng lại hệ thống được đặt ra. Định hướng phát triển hệ thống Về mặt kỹ thuật.1. kiểm thử. và kiểm soát được việc thiết kế hệ thống. cũng trải qua các pha như thu thập yêu cầu. 4. ngôn ngữ. Tuy nhiên.Thông thường với các ứng dụng Grid có 2 cách để khởi đầu một dự án: Phát triển một hệ thống mới hoàn toàn dựa trên Grid.1. hay đáp ứng các chính sách quản lý hiện tại.2 Chương 4.

116 - . Nếu hệ thống có sẵn lớn. Đây không phải là một vấn đề lớn nếu hệ thống Grid là đơn nhất và đồng dạng. sau đó xây . thì có thể tạo ra hiệu ứng cổ chai. thì việc có nên đưa nó chạy trên Grid cần phải được xem xét và cân nhắc kỹ lưỡng. đây là trường hợp rất tốt. phải truyền các tập dữ liệu lớn. phân chia chúng thành các module. nhà phát triển có thể xây dựng các Grid service đơn nhiệm và triển khai chúng trong hệ thống Grid. cần phải tổ chức lại mã. thực hiện xử lý và trả về tập kết quả khi kết thúc. Nếu ứng dụng có nhiều kết nối đến các hệ thống khác. cũng có thể giải quyết bằng cách xây dựng các Grid service (thực chất là Web service) bao bọc hệ thống cũ nếu ngôn ngữ lập trình tạo ra nó có hỗ trợ Web service. Nếu hệ thống có sẵn không được viết bằng Java. thì ứng dụng cũng chỉ có thể triển khai trên hệ thống toàn máy Windows hay Linux mà thôi. Nếu hệ thống có sẵn nhỏ và đóng gói tốt. phức tạp. Các Grid node cần phải có năng lực đủ mạnh để xử lý các công việc lớn. có nhiều kết nối. gọi các hàm hệ thống có sẵn và trả về các kết quả cần thiết. các Grid service dạng này thường là một tiến trình yêu cầu năng lực xử lý lớn. nên nếu muốn phát triển ứng dụng trên nền GT. Để sử dụng lại hệ thống. bằng cách sử dụng chuẩn đang phát triển Webservices Resource Framework (WSRF). Với các hệ thống hỗn tạp. Phát triển ứng dụng với bộ Globus Toolkit 3. không tận dụng được các ưu thế của Grid. ví dụ hệ thống cũ cần gọi các hàm trong thư viện DLL của Windows hay Linux. có thể sử dụng công nghệ Java Native Interface (JNI). các nhà phát triển cần quan tâm đến một số tình huống sau: Nếu hệ thống có sẵn được viết bằng Java. thỏa mãn các yêu cầu về hiệu năng. nhà phát triển có thể xây dựng các lớp mới với một số phương thức. tuy nhiên hệ thống chỉ giới hạn chạy trên một hệ điều hành cụ thể. các phương thức này sẽ thực hiện các thao tác cần thiết cho phép chuyển các tham số.2 trung phát triển các công nghệ dựa trên ngôn ngữ Java (mặc dù cũng có các thư viện và hàm API cho ngôn ngữ C).Chương 4. tình huống này khá dễ dàng để đưa ứng dụng chạy trên Grid. nhận vào một tập dữ liệu. loại bỏ các ràng buộc phụ thuộc giữa chúng càng nhiều càng tốt. mà không thể thực hiện song song. phức tạp.

proxy sẽ dẫn đến việc ngăn chặn việc thực thi của các công việc. thể hiện ở việc quản lý các luồng công việc phức tạp ở máy chủ. Ứng dụng có các yêu cầu lập lịch khắt khe dựa trên nguồn dữ liệu được cung cấp không ổn định. Không phải tất cả các ứng dụng đều có thể triển khai thành công và tiết kiệm chi phí trên Grid. và dẫn đến yêu cầu liên lạc giữa các tiến trình lớn. xin xem thêm trong phần Phụ lục A – Các tiêu chí đánh giá tính khả thi của một ứng dụng Grid. … . hiện nay chưa có một chuẩn nào phục vụ các giao dịch này. một ứng dụng xử lý tuần tự cũng có thể cho thực thi trên Grid. Ví dụ. cần thiết để chạy trên Grid hay không. Dưới đây là một số vấn đề quan trọng có thể gây cản trở việc triển khai một ứng dụng trên Grid. tuy nhiên sẽ không tận dụng được các ích lợi của Grid mà có thể ảnh hưởng đến hiệu suất ứng dụng do có thêm các chi phí quản lý Grid. lớn nhưng không có các chuyển mạch tốc độ cao.Chương 4. 4. Các yêu cầu về các giao dịch thương mại an toàn trên Grid. cần cân nhắc kỹ : Ứng dụng có số lượng hoạt động liên lạc liên tiến trình (inter-process communication) nhiều. không thể đoán trước. Phát triển ứng dụng với bộ Globus Toolkit 3. Không thể giải quyết các trở ngại khi xây dựng hệ thống mạng thoả yêu cầu về băng thông của ứng dụng. Vấn đề phụ thuộc giữa các công việc.2. Các giới hạn về môi trường thực thi công việc. Các protocol phục vụ các công việc không được hỗ trợ bởi các tường lửa.1. điều này sẽ làm chậm việc thực thi ứng dụng. Các chi tiết. Đánh tính khả thi của ứng dụng khi chạy trên Grid Một vấn đề quan trọng trước khi bắt đầu dự án xây dựng ứng dụng trong Grid là đánh giá xem ứng dụng có thích hợp.117 - . Tập đoàn IBM đã đưa ra một danh sách tham khảo các tiêu chí cần thiết để đánh giá khả năng triển khai một ứng dụng trên Grid.2 dựng các module thành các Grid service đơn nhiệm và triển khai chúng trên Grid.

chỉ khi một node bị quá tải thì mới thêm một node mới. Một thiết kế hệ thống tốt cần cho phép thêm tài nguyên một cách dễ dàng để giải quyết các yêu cầu phát sinh mà không cần phải thiết kế lại hệ thống. Dưới đây. các nhà phát triển cần quan tâm đến các yêu cầu phi chức năng đặc trưng của một ứng dụng Grid để phân tích.2.118 - . và các yêu cầu phi chức năng cần thiết như trong các dự án phát triển ứng dụng truyền thống. chúng ta sẽ xem xét một số yêu cầu chính cùng với một số gợi ý giải quyết. + Chứng thực Người dùng phải đăng nhập trước khi sử dụng các chức năng khác. giảm chi phí toàn hệ thống. đưa ra các giải pháp thích hợp.2 Đó là một số vấn đề cần quan tâm khi xem xét tính khả thi để ứng dụng chạy trên Grid. mức độ sử dụng tài nguyên sẽ tăng lên cho đến khi hệ thống không thể xử lý nổi. Khả năng mở rộng (Scalability) Khi có nhiều công việc gửi đến hệ thống.Chương 4. 4. Các nhà phát triển nên xem xét các vấn đề dưới đây để có thể phát triển một ứng dụng an toàn về bảo mật. có thể có nhiều thể hiện trình chủ tồn tại song song trên một node mà không làm tê liệt node đó. điều này giúp cho việc sử dụng tài nguyên một cách tối ưu. + Phân quyền . được đặc tả bởi các sơ đồ usecase. 4.2. Hệ thống sẽ ngừng hoạt động hoặc hoạt động thiếu chính xác. Ứng dụng và các trình chủ của nó nên được xây dựng để có thể triển khai trên nhiều node khác nhau.1.2. 4. Bảo mật Bảo mật là một vấn đề phức tạp. Trong nhiều trường hợp. Các yêu cầu cần quan tâm khi xây dựng ứng dụng Ngoài các yêu cầu về chức năng của ứng dụng. quan trọng nhưng đôi khi không được quan tâm đúng mức khi phát triển ứng dụng. Phát triển ứng dụng với bộ Globus Toolkit 3.2.

+ Logging và báo động Cần phải ghi lại các sự kiện quan trọng trong quá trình hoạt động của ứng dụng. Việc phân tích các thông tin này theo thời gian thực hay sau đó rất hữu ích để phát hiện các lỗi của ứng dụng.2.3. cần phải lập danh sách các hệ thống bên ngoài cần giao tiếp và thỏa thuận với các bên liên quan nhằm xác định các phương thức liên lạc.… 4. định dạng gói dữ liệu. Trước khi phát triển ứng dụng. + Mã hóa dữ liệu Các thông tin nhạy cảm kể cả các thông tin người dùng đều phải được mã hóa trước khi truyền đi. sẽ ảnh hưởng rất lớn đến việc thực thi cũng như hiệu năng của hệ thống.2 Cần phải có các chính sách phân quyền để cho phép người dùng chỉ thực hiện được các hoạt động được quy định trước. thiết kết hỗ trợ khả năng plug-in để giải quyết yêu cầu này. các cố gắng tấn công hệ thống. Nếu các vấn đề trao đổi dữ liệu không được định nghĩa rõ ràng. phân quyền. tận dụng các khả năng của phương pháp lập trình hướng đối tượng. … Khi các bên đều đồng ý về tất cả các khía cạnh cần thiết thì mới phát triển ứng dụng.4. Tính mềm dẻo của ứng dụng (Flexibility) Một hệ thống hầu như sẽ không bao giờ được viết lại. Các kết nối với bên ngoài Hầu hết các hệ thống đều cần thực hiện kết nối đến các hệ thống khác để trao đổi dữ liệu.119 - . các vấn đề chứng thực. chính xác. hoặc thêm các chức năng mới. 4. Nên sử dụng các mẫu thiết kế hướng đối tượng. Có thể sử dụng lại các chức năng của một hệ thống PKI có sẵn.Chương 4. để khi cần thực hiện các công việc trên thì sẽ không ảnh hưởng nhiều đến thiết kế hệ thống hiện tại. Việc này có thể thực hiện bằng cách viết mã trong ứng dụng hay ủy quyền cho một hệ thống phân quyền khác. . Phát triển ứng dụng với bộ Globus Toolkit 3.2. để đáp ứng nhu cầu vá lỗi. ứng dụng cần phải được thiết kế với tầm nhìn hướng tới tương lai.

Chương 4. + Về phía nhà cung cấp dịch vụ Quan tâm đến việc tối ưu hoá việc sử dụng các tài nguyên khác nhau để đạt đến hiệu suất cao nhất.120 - . Ứng dụng có thể tận dụng nhiều tài nguyên một lúc bằng cách chia thành các thực thể nhỏ hơn và thực thi phân tán trong Grid. Hiệu suất ứng dụng(Performance) Trong khi xem xét việc đưa ứng dụng thực thi trong môi trường Grid. Còn về phía người cung cấp các ứng dụng trên Grid như là các dịch vụ thì quan tâm đến việc tối ưu sử dụng tài nguyên và nâng cao năng lực của hệ thống càng nhiều càng tốt. hay xử lý ứng dụng. Ví dụ. thời gian thực thi có thể giảm đáng kể bằng cách thực thi các công việc trên các node khác nhau. Các tài nguyên không chỉ giới hạn ở các chu kỳ CPU.5. Mục tiêu để sử dụng Grid là tăng hiệu suất của toàn bộ ứng dụng. Thời gian trễ trong liên lạc/truy cập dữ liệu Tốc độ. Việc cân bằng tải công việc (workload balancing) và các cơ chế lập lịch cũng được sử dụng để đạt các mục tiêu hiệu suất hệ thống. Các yếu tố ảnh hưởng đến thời gian thực thi ứng dụng: 1. Nếu ứng dụng có thể có nhiều công việc con độc lập có thể được lập lịch để thực thi song song. một công việc có thể được khởi động ngay lập tức và được ưu tiên sử dụng tài nguyên. Thời gian thực thi của ứng dụng trên Grid có thể thay đổi rất lớn tuỳ thuộc vào kiểu của tài nguyên được sử dụng và các chính sách về chất lượng dịch vụ của nhà cung cấp. băng thông và độ trễ của hệ thống mạng máy tính có thể ảnh hưởng rất lớn đến hiệu suất của ứng dụng nếu nó cần phải trao đổi với một ứng . hiệu suất của Grid cũng như các yêu cầu về hiệu suất của ứng dụng cần phải được cân nhắc. + Về phía nhà sử dụng dịch vụ Quan tâm đến thời gian thực thi hệ thống.2 4. không gian lưu trữ. bộ nhớ. hoặc cũng với công việc đó có thể được lập lịch để chạy vào ban đêm khi các yêu cầu tài nguyên giảm xuống. Các nhà sử dụng dịch vụ thường quan tâm đến chất lượng dịch vụ. Phát triển ứng dụng với bộ Globus Toolkit 3.2. bao gồm thời gian chờ và thực thi có thể chấp nhận được. Nhà cung cấp dịch vụ có thể đưa ra các mức giá khác nhau cho hai loại hình chất lượng dịch vụ trên. các cơ sở dữ liệu. Các mục tiêu về hiệu suất hệ thống trên hai khía cạnh trên được trình bày dưới đây.

6. Do đó cần tính toán đến việc để các ứng dụng cần trao đổi “gần” với nhau. 4. Phát triển ứng dụng với bộ Globus Toolkit 3. Thiếu tối ưu trong ứng dụng Việc tối ưu hiệu suất ứng dụng có thể thực hiện được bằng cách chuyển đổi và tối ưu ứng dụng trên các hệ điều hành và cấu hình phần cứng cụ thể. Việc tối ưu chia sẻ có thể đạt được bằng cách sử dụng các thuật toán lập lịch và cân đối tải công việc thích hợp. do đó cần thực hiện trao đổi thảo luận giữa các bên để đưa ra các yêu cầu hiệu suất cụ thể có thể chấp nhận được. 3. nên sẽ rất khó khăn trong việc dự đoán thời gian đáp ứng yêu cầu. Việc này có thể giải quyết bằng cách các nhà cung cấp dịch vụ thỏa thuận với các nhà cung cấp tài nguyên để cung cấp các tài nguyên và cấu hình tối ưu nhất cho việc thực thi ứng dụng. ứng dụng cần phải có các cơ chế phục hồi lỗi để đối phó với các hư hỏng khác nhau. 4.2 dụng đang chạy trên một máy ở xa. Vì các thành phần hình thành nên Grid có thể thay đổi trong thời gian thực thi.2. Ví dụ như khi một cơ sở dữ liệu là mục tiêu của việc tranh giành thì cơ chế nhân bản thêm một cơ sở dữ liệu có thể được áp dụng để giải quyết vấn đề. Nếu việc này ảnh hưởng nghiêm trong đến hiệu suất ứng dụng thì cần phải đưa thêm các tài nguyên vào hệ thống. và các ứng dụng “gần” với dữ liệu cần xử lý (“gần” theo nghĩa khoảng cách trong mạng) cùng với xem xét về tốc độ. độ trễ và năng lực của hệ thống mạng khi phát triển ứng dụng. Phương pháp tốt nhất để giải quyết vấn đề khó khăn này là . Tranh giành tài nguyên Việc tranh giành tài nguyên thường là một vấn đế đối với các tài nguyên chia sẻ. Độ tin cậy (Reliability) Độ tin cậy của ứng dụng là một vấn đề của các công nghệ tính toán. và với Grid cũng không là ngoại lệ.121 - . Độ tin cậy của hệ thống mạng Việc hư hỏng các tài nguyên Grid và hệ thống mạng có thể gây trễ vô thời hạn. Để đảo bảo thực thi công việc một các tin cậy. 2.Chương 4.

Bằng cách này. 4. Dưới đây là một số cơ chế kiểm soát các lỗi này. + Checkpoint-restart Khi công việc đang thực thi. Khi máy tính cục bộ khởi động lại. trong trường hợp này thì phải chờ cho đến khi kết nối được thiết lập lại. Khi máy tính thực thi công việc bị hỏng. dành riêng trong hệ thống để thực hiện các chức năng quản trị và điều khiển để không ảnh hưởng đến hiệu suất của Grid. các công việc dài ngày có thể chạy trong nhiều tháng hoặc cả năm ngay cả khi các hệ thống bị hỏng thường xuyên. Phát triển ứng dụng với bộ Globus Toolkit 3. thông điệp sẽ được gửi đến một tiến trình thay thế khác. Quản trị hệ thống (Management) Tất cả các hệ thống đều cần một bộ các công cụ đế quản trị và điều khiển.122 - . + Persistent storage Các trạng thái liên quan của mỗi công việc được lưu trữ trong các vùng lưu trữ lâu dài bởi trình quản lý Grid để đối phó với các hư hỏng cục bộ. sẽ rất khó theo dõi tình trạng hoạt động hiện hành của hệ thống Grid. nếu tiến trình thứ hai cũng không thể trả lời thông điệp. các trạng thái của nó sẽ được lưu lại theo từng khoảng thời gian xác định. công việc có thể được khởi động lại trên một máy khác với trạng thái thực thi gần nhất được lưu lại và chạy tiếp.7. + Heartbeat monitoring Ở trạng thái bình thường. kết nối đến trình quản lý công việc được thiết lập lại và công việc tiếp tục được thực thi. Thường các khả năng gây lỗi là do lỗi của host và của hệ thống mạng. Tuy nhiên. tiến trình này có thể được dùng để xác định trạng thái của tiến trình đầu tiên và có thể khởi động lại nó. các thông tin trạng thái của các công việc được lấy lại.2. hoặc mạng. có thể là do hư hỏng hệ thống máy tính cục bộ. . các thông điệp thăm dò được gửi đến các tiến trình. và tiến trình trả lời lại. Nếu tiến trình không trả lời thông điệp trong một khoảng thời gian xác định.2 cố gắng dự đoán hết các khả năng gây lỗi và đưa ra các cơ chế thích hợp để giải quyết chúng. Nếu thiếu các công cụ này. Nên sử dụng một mạng phụ.Chương 4.

8.123 - . hay các kết nối WAN giữa các mạng Grid. Trong thiết kế. Điều này sẽ làm giảm các lưu thông mạng. 4. Các xem xét khi phát triển ứng dụng nên bao gồm các chiến lược giảm thiểu các lưu thông mạng và độ trễ của mạng. hệ thống mạng cũng có thể được cấu hình để hoạt động tốt hơn. các kết nối trong một tổ chức. cần phải quan tâm đến đồ hình hệ thống để có thể đưa ra thiết kế tốt. Bên cạnh đó.Chương 4. Hệ thống mạng chịu trách nhiệm cung cấp băng thông cần thiết cho các hệ thống Grid. cơ sở hạ tầng Grid cần phải biết . bảo vệ. mở rộng trên nhiều tổ chức. Môi trường đa nền tảng Môi trường Grid là một tập hợp các host hỗn tạp với nhiều loại hệ điều hành. nên tập trung nhiều nỗ lực vào thiết kế vị trí các tài nguyên lưu trữ. độ phức tạp tăng lên rất nhiều. với Data Grid. điều này thường dựa trên băng thông mạng và khoảng cách đến nguồn dữ liệu. Thiết kế đồ hình mạng chịu ảnh hưởng của các giới hạn về bảo mật và mô hình triển khai hệ thống. Các thành phần mạng có thể đại diện cho mạng LAN. có các tài nguyên lưu trữ trải rộng.2. Đối với các ứng dụng liên quan nhiều đến dữ liệu. cần phải tăng hiệu suất truy cập dữ liệu. Dưới đây là một số vấn đề cần xem xét: + Đồ hình mạng Đồ hình mạng trong một hệ thống Grid có thể có nhiều hình dạng khác nhau. Phát triển ứng dụng với bộ Globus Toolkit 3. Đồ hình hệ thống (System Topology) Grid có bản chất là phân tán. sao lưu dự phòng và/hoặc nhân bản mới. Dữ liệu thì cần các vùng lưu trữ.2. Do đó. Hệ thống lưu trữ cần phải được quản lý. phần mềm khác nhau. vấn đề thiết kế hệ thống mạng để hỗ trợ tải một lưu lượng lớn dữ liệu là một yêu cầu then chốt để đảm bảo thành công của toàn hệ thống. nhất là khi chuyển từ đồ hình IntraGrid lên InterGrid. chịu đựng lỗi. Cũng như các thành phần khác. + Đồ hình dữ liệu Mục tiêu của thiết kế cần phải cố gắng để các công việc thực thi gần với dữ liệu cần xử lý nhất có thể được.9. nhiều vùng địa lý khác nhau. Ví dụ. cần phải đảm bảo dữ liệu luôn luôn sẵn sàng cho các công việc cần đến nó. nên thiết kế để Grid có khả năng lưu trữ liên tục.2 4. Để thực thi một ứng dụng. cũng như nâng cao khả năng dự phòng.

4.2. tính khả chuyển của ngôn ngữ lập trình.2. số lượng công việc trong hàng đợi.Chương 4.2. … để tăng số lượng các host mà ứng dụng có thể thực thi. 4. các tài nguyên đã được giữ chỗ. trạng thái các host. hệ điều hành.2.124 - . Việc cài đặt hệ thống Một giải pháp Grid cần đưa ra một cách thức cài đặt dễ dàng.11. nhưng cũng rất hữu ích khi quan tâm đến khía cạnh sử dụng của giải pháp trong khi thiết kế. biên dịch lại phần mềm.10. Việc này có thể bao gồm các chỉ số cho biết tải hiện hành. các điểm xảy ra vấn đề. kiểm soát các hoạt động của Grid. Vấn đề thông tin Grid Trạng thái của Grid phải luôn được cung cấp để theo dõi. + Các yêu cầu truyền thống về tính tiện lợi . tự động cho những người không chuyên về kỹ thuật với các khả năng chỉnh sửa các kịch bản (script). do đó nên sử dụng định dạng XML để trao đổi dữ liệu. Các nhà phát triển cũng nên quan tâm đến các yếu tố như về môi trường thực thi.13. Phát triển ứng dụng với bộ Globus Toolkit 3. mức độ sử dụng tài nguyên. Định dạng file Các thông tin về định dạng file rất hữu ích khi kết quả của ứng dụng chạy trên một host được truy xuất bởi ứng dụng chạy trên một host khác.12.2 các yêu cầu cần thiết về môi trường thực thi của ứng dụng để tìm các host thích hợp. … 4. … Quá trình cài đặt nên được thiết kế giống nhau bất chấp khả năng phải cài đặt trên các tài nguyên đa dạng hỗn tạp về hệ điều hành hoặc cấu hình. Các host có thể chạy các nền tảng phần mềm khác nhau. số lượng công việc đang chạy. 4. số tài nguyên hiện còn. Tính tiện dụng Mặc dù phần lớn các giải pháp Grid đều tập trung vào cơ sở hạ tầng và các middleware. có thể thông báo các nút cổ chai.

Phần này trình bày các vấn đề cơ bản trong thiết kế ứng dụng với GT3 theo mô hình OGSA. xây dựng một mô hình tổng quan hệ thống nhằm xác định các thành phần cơ bản của hệ thống. tạo điều kiện cho người dùng hoàn thành tác vụ càng nhanh càng tốt. hiển thị. Nhà phát triển chỉ cần xây dựng các chức năng của ứng dụng trên các chức năng có sẵn của Globus. . truy vấn các trạng thái. Như đã biết. kinh nghiệm sử dụng. sở thích cá nhân. các hoạt động khác cho phép người dùng làm việc hiệu quả. Các nhà quản trị hệ thống. đặc tả các yêu cầu cần thiết của một ứng dụng Grid. việc xây dựng ứng dụng với các chức năng này cũng có thể tham khảo các thông tin trình bày trong phần này và các phần sau đó. + Các yêu cầu về tính tiện dụng của một giải pháp Grid Một giải pháp Grid phải đạt được các yêu cầu về tính tiện dụng cho nhiều loại người dùng khác nhau như : Người dùng cuối : Đăng nhập vào Grid. GT3 cũng cung cấp các chức năng để xây dựng ứng dụng không theo chuẩn OGSA. gọi thực thi ứng dụng.… Tính hiệu quả : Đơn giản hóa các thao tác của từng tác vụ. thoả mãn với hệ thống. 4.3. cần thiết phải phân tích. và xem kết quả trả về. Phát triển ứng dụng với bộ Globus Toolkit 3.2 Các yêu cầu này tập trung vào các tiêu chí giúp người dùng sử dụng hệ thống dễ dàng. Một số yêu cầu về tính tiện dụng cơ bản của một giải pháp công nghệ thông tin bao gồm : Tính tuỳ biến : Cho phép người dùng khả năng tuỳ biến giao diện và các thành phần của nó để tối ưu việc sử dụng dựa theo dạng công việc. Các tiêu chí này bao gồm các hoạt động giao tiếp người dùng. Khi đã chọn việc xây dựng hệ thống với Globus Toolkit. thuận tiện hơn.Chương 4.125 - . thiết kế nên tận dụng triệt để các chức năng đã được cung cấp sẵn của bộ toolkit. ngôn ngữ. Thiết kế tổng quan Sau khi xem xét. Chủ/người dùng của các máy tính tham gia Grid.

Một công việc có thể chạy một hay nhiều tiến trình trên một host. Cần xác định hết các phương thức (tham số và kiểu trả về). và các công việc nhận vào dữ liệu được gọi là trình tiêu thụ dữ liệu. thường được yêu cầu thực thi trên một node của Grid.Chương 4. Công việc (Job): Là một đơn vị cơ sở trong ứng dụng Grid.4. Khi đã có mô hình các service và cách thức liên lạc giữa chúng. 4. các cơ chế thông báo. Phần này trình bày một số vấn đề cần quan tâm khi thiết kế chi tiết hoạt động. bao gồm các service cần cung cấp ra bên ngoài. Dưới đây là một số khái niệm được dùng trong phần này: Ứng dụng Grid (Grid Application) : Là một tập các công việc để giải quyết các vấn đề cụ thể hoặc để đạt đến một kết quả mong đợi bằng các sử dụng hạ tầng Grid. .126 - . sử dụng giữa các service. dữ liệu của service (SDE). Sau khi hoàn thành mô hình tổng quan. Phát triển ứng dụng với bộ Globus Toolkit 3. chu kỳ sống của service cũng như các kịch bản trao đổi. Một số vấn đề cần quan tâm trong thiết kế chi tiết và viết mã Việc thiết kế. các service hỗ trợ hoạt động của hệ thống. trước hết cần xác định hết tất cả các service của hệ thống.2 Để xây dựng ứng dụng. chỉnh sửa để mô hình đáp ứng được các yêu cầu chức năng. việc tiếp theo là thiết kế chi tiết hoạt động của các service. viết mã của một ứng dụng Grid. viết mã cho ứng dụng Grid cũng tương tự như cho các ứng dụng truyền thống. có các tập dữ liệu đầu vào và đầu ra cùng với các yêu cầu về môi trường thực thi để hoàn thành nhiệm vụ của nó. phi chức năng của ứng dụng. Trình sản xuất/tiêu thụ dữ liệu (Data Producer/Consumer) : Các công việc tạo ra dữ liệu kết quả được gọi là trình sản xuất dữ liệu. cần kiểm tra.

+ Luồng song song (parallel flow) Nếu một ứng dụng có nhiều công việc có thể được thực thi song song. Các ứng dụng truyền thống được thực thi trong một môi trường với các tài nguyên đã biết trước. thực hiện tính toán một cách độc lập rồi gửi kết quả về. hay phải thực hiện tuần tự và một công việc có cần phải chờ lấy dữ liệu từ một công việc khác hay không. đặc biệt trong trường hợp không có (hoặc có rất ít) việc trao đổi dữ liệu của các công việc. Hình 4-1 mô tả luồng ứng dụng song song : . Khi thiết kế cần xem xét các luồng công việc mà chọn giải pháp thiết kế tối ưu. Luồng ứng dụng là trình tự thực thi các công việc tạo nên ứng dụng.Chương 4.4.1. ở đây chúng ta sẽ xem xét việc một ứng dụng chạy trong một môi trường nơi mà các tài nguyên được cấp phát động theo nhu cầu. Nếu muốn sử dụng đồng loạt các tài nguyên Grid. Kiến trúc ứng dụng Phần này sẽ xem xét các luồng công việc trong một ứng dụng Grid. có thể được sử dụng để gửi thực thi mỗi công việc vào thời điểm và địa điểm tốt nhất trong Grid. Từ một công việc khởi đầu. Ở đây chúng ta cần phân biệt hai khái niệm : luồng ứng dụng (application flow) và luồng công việc (job flow). trình tự thực thi các xử lý trong nội bộ công việc được gọi là luồng công việc. Kết quả là chúng ta sẽ có một mạng các tiến trình trong ứng dụng. Một ứng dụng Grid có thể có rất nhiều công việc. Có 3 kiểu luồng ứng dụng cơ bản : Song song.127 - . Các dịch vụ của Grid như broker hay trình lập lịch. Mỗi công việc có thể nhận các dữ liệu dành riêng cho mình.2 4. Các kết quả được tập hợp bởi một công việc khác hay lưu trữ vào cơ sở dữ liệu. chúng ta cần xem xét việc xử lý dữ liệu có thể được thực hiện song song hay không. tuần tự và mạng. các công việc sẽ đồng loạt được gửi đi và yêu cầu thực thi trên các node được chọn trước hoặc được cấp phát động trong Grid. một Grid rất thích hợp để thực thi ứng dụng hiệu quả trên các node dành riêng. Phát triển ứng dụng với bộ Globus Toolkit 3.

+ Luồng tuần tự (Serial flow) Trái ngược với luồng ứng dụng song song. Lưu ý rằng mỗi công việc không cần phải thực thi trên các tài nguyên giống nhau. lợi ích của việc thực thi ứng dụng trên Grid không phải là sử dụng song song nhiều tài nguyên.Chương 4. Phát triển ứng dụng với bộ Globus Toolkit 3. nên phân tích các nhiệm vụ trong ứng dụng xem chúng có thể tách thành các đơn vị cơ sở có thể chạy như các công việc được không. nếu có một công việc đòi hỏi phải sử . thích hợp cho từng công việc. khi thiết kế. rất hữu ích khi tách nó ra thành các đơn vị độc lập nhỏ hơn. Các trường hợp như có thể tách nhỏ tập dữ liệu của một công việc và việc xử lý tập con này không phụ thuộc và tập con khác hoặc khi có một công việc không cần kết quả từ công việc khác cũng thuộc dạng luồng song song. Với một vấn đề hay một ứng dụng. Trong trường hợp này. Hình 4-2 Luồng ứng dụng tuần tự.2 Hình 4-1 Luồng ứng dụng song song. mỗi công việc phải chờ công việc trước đó kết thúc và sử dụng kết quả từ công việc trước. mà là khả năng sử dụng các tài nguyên có sẵn. do đó. Trong trường hợp này.128 - . chỉ có một dãy các công việc. Để tận dụng được ích lợi của việc thực thi song song. như trên hình 4-2.

nó có thể được cung cấp tài nguyên đặc biệt đó trong khi các công việc khác có thể được thực thi trên các tài nguyên bình thường có chi phí thấp. Bên cạnh đó. Các kỹ thuật sau có thể áp dụng để giải quyết vấn đề. + Luồng mạng (Networked Flow) Trong nhiều trường hợp. Hình 4-3 Luồng ứng dụng mạng.2 dụng một tài nguyên đặc biệt nào đó. 2. Phát triển ứng dụng với bộ Globus Toolkit 3. nhưng khi mọi thứ đã ổn định. 1. Với những ứng dụng dạng này. như thấy trên hình 4-3. Có thể phải tốn thêm chi phí bước đầu. Khả năng thực thi các công việc trên nhiều tài nguyên khác nhau cũng làm tăng tính sẵn sàng và độ tin cậy của ứng dụng. ứng dụng có thể được hưởng lợi lớn từ một môi trường tính toán ảo mềm dẻo và tối ưu. Loose coupling (Giảm bớt sự phụ thuộc) Kỹ thuật này cần có thêm một dịch vụ quản lý luồng ứng dụng để đồng bộ các công việc. Ở đây cũng cần phải đưa vào Grid các dịch vụ mới như broker hay trình lập lịch.129 - . mọi thứ phức tạp hơn rất nhiều. sẽ làm giảm việc trao đổi liên tiến trình và làm giảm quá tải trên Grid. cần phân tích kỹ để xác định cách tốt nhất để tách ứng dụng thành các công việc nhỏ hơn nhằm tăng tính song song. Các công việc cụ thể có thể thực thi song song nhưng cũng vẫn có sự phụ thuộc giữa chúng.Chương 4. Jobs and sub-jobs (Công việc và các công việc con) . cũng làm tăng khả năng chịu đựng của ứng dụng thông qua việc có thể sử dụng các tài nguyên cần thiết theo nhu cầu.

Thời gian thực thi của các công việc này không đóng vai trò quan trọng trong ứng dụng. Xem xét sử dụng ngôn ngữ lập trình Khi một ứng dụng được phát triển. nhưng toàn bộ nội dung và các nhiệm vụ quan trọng thường được viết bằng các ngôn ngữ khác như Java hay các ngôn ngữ kịch bản như Perl. 4. Tính khả chuyển trong mã nguồn cũng nên được chú ý.130 - . Các ngôn ngữ thông dịch như Perl cũng có tính khả chuyển. Trong Grid. Sẽ có rất nhiều lợi ích đối với các ứng dụng lớn. câu hỏi nên sử dụng ngôn ngữ lập trình nào được đặt ra. cho phép ứng dụng chạy mà không cần biết đến nền tảng thực thi. sau đó biên dịch nhiều lần trên các môi trường khác nhau. ứng dụng nên được phân hoạch và thiết kế sao cho các công việc cấp cao có các khả năng tìm kiếm tài nguyên và thực thi các công việc con của mình một cách tối ưu nhất. phức tạp khi phân lập và chuyển quyền điều khiển. một chương trình nhị phân có thể thực thi trên bất kỳ nền tảng nào hỗ trợ máy ảo Java (Java Virtual Machine).4. trong trường hợp phải phát triển ứng dụng bằng ngôn ngữ C. Một công việc có thể sử dụng các dịch vụ của Grid để thực thi các công việc con của mình. Một số tiêu chí chủ yếu cần quan tâm : + Tính khả chuyển qua các nền tảng khác Bao gồm việc tương thích mã thực thi trên các nền tảng mà Java là một ví dụ tốt. có thể lựa chọn các ngôn ngữ khác nhau để xây dựng các phần của ứng dụng. do đó cần phải tương thích với trình biên dịch khác nhau.Chương 4. Với dạng này. Các công việc dành cho tính toán toán hiệu năng cao (high-performance computing) thường được viết bằng ngôn ngữ C hoặc Fortran. Trong môi trường Grid. dựa trên các yêu cầu của từng công việc và tính sẵn sàng của tài nguyên.2 Một hướng tiếp cận khác để làm đơn giản việc quản lý các công việc trong một ứng dụng là sử dụng mô hình phân cấp các công việc.2. cần thực hiện thêm một số cân nhắc. Ví dụ. quản trị các nhiệm vụ cụ thể cho các thành phần độc lập. + Các thư viện/module thực thi . Phát triển ứng dụng với bộ Globus Toolkit 3.

Kích thước bộ nhớ chính cần thiết cho công việc có thể giới hạn số lượng các node có khả năng thi nó.131 - . + Giao diện giao tiếp với hạ tầng Grid Nếu công việc cần giao tiếp với hạ tầng Grid.Chương 4.3. các thiết lập tham số cần thiết để thực thi công việc. có thể có các yêu cầu về sự tồn tại các thư viện liên kết động hay các module khác trong thời gian thực thi công việc. module cần thiết phải nằm trên tài nguyên đích. đã có các hàm API hỗ trợ các ngôn ngữ khác như Java. Yếu tố quan trọng nhất là phiên bản hệ điều hành. . … 4. nhưng hiện nay thông qua dự án CoG Kit. Khi phát triển một ứng dụng. cần xem xét các yếu tố này để thiết kế càng độc lập càng tốt với các yếu tố này. như Globus Toolkit. Perl. mà còn phụ thuộc vào kích thước mà hệ điều hành cho phép trong thời gian thực thi. Các thư viện liên kết động (DLL) được liên kết với công việc cần phải có sẵn trên node hoặc có thể được di chuyển đến và cài đặt trên node trước khi công việc được thực thi.2 Dựa theo ngôn ngữ và cách liên kết chương trình. tuy nhiên cần xem xét một số vấn đề để có thể triển khai tốt nhất hệ thống. việc lựa chọn ngôn ngữ phụ thuộc vào ngôn ngữ được hạ tầng Grid hỗ trợ. Kích thước bộ nhớ có sẵn không những phụ thuộc vào kích thước vật lý của nó trên node.4. Do đó cần đảm bảo các thư viện. Cần xem xét liệu ứng dụng Grid có khả năng chạy các công việc của nó trên bất kỳ node nào với các hệ điều hành khác nhau hay bị giới hạn trên một hệ điều hành nhất định. các yếu tố môi trường sau đây có thể ảnh hưởng đến hoạt động. Phát triển ứng dụng với bộ Globus Toolkit 3. Vấn đề phụ thuộc của công việc vào môi trường hệ thống Một ứng dụng Grid có thể không cần môi trường thực thi đa dạng hỗn tạp. việc phụ thuộc vào các dịch vụ hệ thống hay các chương trình phụ trợ khác như registry. Lúc đầu GT chỉ hỗ trợ ngôn ngữ C. Với mỗi công việc.

4. Các công việc có thể cần các thiết bị phần cứng để thực thi nhiệm vụ của mình. số byte dùng để biểu diễn số nguyên và số thực khác nhau trên các hệ thống có thể khiến công việc không thể thực thi được.4. Đồ hình công việc Cần phải có các thiết kế về kiến trúc để giải quyết vấn đề về đồ hình công việc và dữ liệu. Do đó cần phải loại bỏ các giới hạn trên càng nhiều càng tốt để công việc có thể chạy trên môi trường càng tổng quát càng tốt.Chương 4. 4. . … Khi phát triển ứng dụng. Khi xem xét. Ví dụ. Ví dụ. Kích thước dữ liệu được công việc xử lý. Phát triển ứng dụng với bộ Globus Toolkit 3. đo đạc và các thiết bị đầu cuối khác cần phải được xem xét khi xây dựng ứng dụng và lên kế hoạch cho hạ tầng Grid. ví dụ các hệ thống khác nhau có thể sử dụng định dạng số khác nhau như thứ tự các bit.2 Các cấu hình trình biên dịch trên các node có thể rất khác nhau. Có một lượng lớn các giới hạn cũng có nghĩa là số lượng các node mà công việc có thể thực thi trên đó ít đi.132 - . các yêu cầu về thiết bị lưu trữ. các yếu tố trên cần phải được xem xét để tránh quá nhiều các giới hạn khi thực thi công việc. Cần phải có môi trường thực thi sẵn sàng để thực thi công việc. một số yếu tố chính sau đây cần phải được chú ý: Các công việc có thể hoặc phải chạy ở đâu ? Làm sao để có thể phân tán và triển khai chúng thông qua hệ thống mạng ? Làm sao đóng gói chúng với các dữ liệu cần thiết ? Nơi nào trong mạng lưu trữ mã thực thi của công việc ? Làm sao để xác định được node thích hợp để có thể thực thi các công việc cụ thể? Vị trí của của dữ liệu và các điều kiện truy xuất cho công việc. Các giao diện cần thiết để tương tác với các thiết bị. việc triển khai phiên bản JDK cần thiết cần phải được lên kế hoạch và thực hiện.

Các phần dưới đây sẽ trình bày chi tiết các bước và các kỹ thuật cài đặt các cơ chế của Grid service.5.2 Các liên lạc liên tiến trình cần thiết để công việc có thể hoàn thành nhiệm vụ của mình. 4. Phần này trình bày các bước cần thiết để viết một OGSI-service cùng với các kỹ thuật cài đặt cụ thể với GT3. 2. Định nghĩa service interface (sử dung ngôn ngữ đặc tả GWSDL). Định nghĩa các tham số triển khai service (sử dụng ngôn ngữ đặc tả WSDD). Viết mã thực thi cho service (sử dụng ngôn ngữ lập trình Java). đặc biệt là trong trường hợp một IntraGrid cần phải được xây dựng để hỗ trợ một nhóm các ứng dụng đặc biệt. có thể tìm thấy trong website : . Phát triển ứng dụng với bộ Globus Toolkit 3. có thể không cần biết hết tất cả các thông tin về đồ hình Grid. Việc phát triển. các bước này cùng với các công cụ liên quan có thể thay đổi trong các phiên bản sau của GT): 1. 5. Tính sẵn sàng và các giá trị hiệu năng của mỗi node trong thời gian thực thi. việc trình bày sử dụng lại ví dụ MathService được nhóm phát triển Globus đưa ra. 3. ở đây trình bày việc viết mã cho các Grid Service. các thông tin này có thể rất cần thiết. Biên dịch và phát sinh các file GAR (sử dụng công cụ Ant). 4. có thể kiến trúc ứng dụng và hạ tầng Grid để tối ưu hoá môi trường thực thi bằng các xem xét đến vị trí các tài nguyên. tuy nhiên. Để cụ thể và dễ hiểu hơn. Triển khai service (sử dụng công cụ Ant).133 - . Kích thức mã thực thi của công việc và khả năng di chuyển chúng trong hệ thống. Nhờ đó. phân phối một Grid service với GT3 tuân theo 5 bước sau (lưu ý. Triển khai cài đặt các Grid Service Sau khi có bản thiết kế chi tiết các hoạt động và liên lạc của các service trong hệ thống.Chương 4. đến bước viết mã thực thi. và tập các node mà ứng dụng có thể thực thi. dữ liệu. … Khi phát triển ứng dụng Grid.

1. chúng ta muốn thực hiện cộng dồn các số và chỉ gửi kết quả đến người dùng khi cần thiết. Phát triển ứng dụng với bộ Globus Toolkit 3. qua hàm getValue().net. Mỗi cách đều có những ưu khuyết điểm riêng. public void subtract(int a).Chương 4. khi phát sinh bằng cách này sẽ không tận dụng hết tất cả các sức mạnh của GWSDL. đây là một tính chất mới mà một Web service truyền thống không có được. nếu phát sinh từ khai báo lớp Java thì chúng ta chỉ cần khai báo : public interface Math { public void add(int a). } Tuy nhiên. Chúng ta cần định nghĩa một interface cho MathService.134 - . ở đây các hàm add() và substract() chỉ có một tham số. Ở đây chúng ta cần xây dựng một Grid service cho phép người thực hiện các chức năng cộng. + Sử dụng công cụ tự động phát sinh file GWSDL từ giao diện lớp của Java. 4. có tên là MathService. Lưu ý. public int getValue(). Chi tiết về cách viết một tài liệu GWSDL xin tham khảo thêm trong phụ lục B – Định dạng file GWSDL. . interface này sẽ chứa các phương thức cần thiết cung cấp cho người dùng. Do đó nên tự viết các đặc tả interface cho service bằng GWSDL. Ví dụ này muốn cho thấy Grid service là một thực thể có trạng thái (stateful). Các bước xây dựng và triển khai Grid Service Bước 1 : Định nghĩa service interface Ở đây chúng ta đã xác định các chức năng cần có của MathService (là cung cấp khả năng cộng và trừ 2 số). trừ đơn giản. nó tự lưu trữ các kết quả qua một biến cục bộ và chỉ xuất ra khi cần thiết. Có 2 cách để định nghĩa interface cho MathService : + Tự viết file GWSDL đặc tả.5.casa-sotomayor. một phiên bản mở rộng của WSDL cho Grid service. Lưu ý service interface còn được gọi là portType. Việc định nghĩa interface ở đây sử dụng ngôn ngữ đặc tả GWSDL.2 http://www.

gwsdl ---------------<definitions ………………………………………… name="MathService" http://www.135 - .org/namespaces/2004/02/progtutorial/MathService ………………………………………… <!--Khai bao namespace--> <!--Khai bao cac thanh phan--> ……………………………………………………… <!--Dinh nghia cac message trao doi cac tham so cho cac phuong thuc--> <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="GetValueInputMessage"> <part name="parameters" element="tns:getValue"/> </message> <message name="GetValueOutputMessage"> <part name="parameters" element="tns:getValueResponse"/> </message> <!--Dinh nghia portType va cac phuong thuc (operation)--> <gwsdl:portType name="MathPortType" extends="ogsi:GridService"> <operation name="add"> <input message="tns:AddInputMessage"/> <output message="tns:AddOutputMessage"/> <fault name="Fault" message="ogsi:FaultMessage"/> </operation> <operation name="subtract"> <input message="tns:SubtractInputMessage"/> <output message="tns:SubtractOutputMessage"/> <fault name="Fault" message="ogsi:FaultMessage"/> </operation> <operation name="getValue"> <input message="tns:GetValueInputMessage"/> <output message="tns:GetValueOutputMessage"/> <fault name="Fault" message="ogsi:FaultMessage"/> </operation> </gwsdl:portType> </definitions> .Chương 4.2 Dưới đây là đặc tả (đã được rút gọn) của file GWSDL. chi tiết nằm trong file: $GRIDSER_DEMO/schema/progtutorial/MathService/Math. Phát triển ứng dụng với bộ Globus Toolkit 3.globus.

ogsi. GT3 cung cấp 2 cách để thực hiện việc cài đặt một interface cho service: + Viết một lớp kế thừa từ lớp GridServiceImpl.services.impl.progtutorial.service Bước 2 : Viết mã thực thi cho service Sau khi định nghĩa interface cho service.org/namespaces/2004/02/progtutorial/MathService/service= org. khái niệm này được thừa kế từ Web service). Mã nguồn của file : $GRIDSER_DEMO/org/globus/progtutorial/services/core/first/impl/Ma thImpl.GridServiceImpl.first. Kỹ thuật này sẽ được trình bày chi tiết trong phần sau : Operation Provider. Phát triển ứng dụng với bộ Globus Toolkit 3.stubs.globus.stubs.MathService. . tuy nhiên cũng cần phải tham khảo đặc tả này khi lập trình với ngôn ngữ cụ thể (ở đây là Java).java package org.progtutorial. lớp kế thừa chỉ cần cài đặt tất cả các phương thức định nghĩa trong file GWSDL. Việc cần làm là thực hiện ánh xạ giữa không gian tên(namespace) của GWSDL với các gói(package) của Java.globus.mappings http\://www. Lớp này cũng có thể có các phương thức. + Sử dụng khả năng ủy quyền để viết các lớp cài đặt interface của service. import org.stubs.progtutorial.Chương 4. điều này được thực hiện thông qua các lớp cuống (stub class.MathService.bindings http\://www.136 - .stubs.RemoteException.MathPortType.globus. import org.core.org/namespaces/2004/02/progtutorial/MathService/bindings= org.MathService http\://www. thuộc tính riêng của mình.2 Mặc dù GWSDL là độc lập với ngôn ngữ lập trình. đây là lớp cơ sở của tất cả các Grid Service.ogsa.globus.progtutorial.globus. bước tiếp theo là thực hiện cài đặt interface trong một ngôn ngữ lập trình cụ thể (Java). import java. Phần này trình bày kỹ thuật cài đặt sử dụng tính kế thừa.progtutorial.impl. các lớp cuống này được phát sinh tự động bởi các công cụ GT3.globus.globus.MathService.globus.org/namespaces/2004/02/progtutorial/MathService= org.rmi. thông qua một file ánh xạ (mapping file) như sau : File : $GRIDSER_DEMO/namespace2package.globus.

//Goi constructor cua cha } public void add(int a) throws RemoteException { value = value + a.Chương 4. + Interface của chúng ta có tên là MathPortType. Quá trình được gọi là quá trình triển khai (deployment) Grid service. Bước 3 : Cấu hình quá trình triển khai service với Web Service Deployment Descriptor (WSDD) Tới thời điểm này. lớp GridServiceImpl cài đặt tất cả các phương thức được khai báo trong portType GridService theo định nghĩa của OGSI. chúng ta sẽ ghép các phần này lại với nhau và đưa chúng ra thế giới bên ngoài thông qua một Web server hỗ trợ Grid service (Grid service container). Đây là một file đặc tả viết dưới dạng WSDD để hướng dẫn . Phát triển ứng dụng với bộ Globus Toolkit 3. Một trong những thành phần chính yếu của bước này là bản mô tả triển khai (deployment descriptor). được khai báo trong phần portType của file GWSDL.137 - . } } Lưu ý : + Lớp MathImpl kế thừa từ lớp GridServiceImpl.a. } public int getValue() throws RemoteException { return value.2 public class MathImpl extends GridServiceImpl implements MathPortType { private int value = 0. Bây giờ. //Bien luu tru ket qua public MathImpl() //constructor { super("Simple MathService"). } public void subtract(int a) throws RemoteException { value = value . chúng ta đã thực hiện xong hai phần quan trọng nhất của service là interface và mã cài đặt của interface.

Chương 4. Phát triển ứng dụng với bộ Globus Toolkit 3.2

cho Web server cách xuất bản (publish) Grid service. Bản mô tả triển khai của MathService như sau: File
deploy.wsdd
<?xml version="1.0"?> <deployment name="defaultServerConfig" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!—-Vi tri Grid service, lien ket URL cua Web server se tao thanh mot GSH hoan chinh--> <service name="progtutorial/core/first/MathService" provider="Handler" style="wrapped"> <!—Ten dung de mo ta service--> <parameter name="name" value="MathService"/> <parameter name="className" value="org.globus.progtutorial.stubs.MathService.MathPortType"/> <!-- Tham khao den cac lop trien khai interface cua service,luu y file Math_service.wsdl la file WSDL chuan duoc phat sinh tu dong boi GT3 tu file Math.gwsdl --> <parameter name="baseClassName" value="org.globus.progtutorial.services.core.first.impl.MathImpl "/> <parameter name="schemaPath" value="schema/progtutorial/MathService/Math_service.wsdl"/> <!—Cac tham so chung cho hau het Grid service --> <parameter name="allowedMethods" value="*"/> <parameter name="persistent" value="true"/> <parameter name="handlerClass" value="org.globus.ogsa.handlers.RPCURIProvider"/> </service> </deployment>

:

$GRIDSER_DEMO/org/globus/progtutorial/services/core/first/server-

Bước 4 : Tạo file GAR với công cụ Ant
Đến lúc biên dịch và đóng gói các file đã tạo ra ở trên để có thể xuất bản ra thế giới bên ngoài. Tất cả các file và các thông tin cần thiết để một Grid service container có thể triển khai Grid service đều được đưa một vào một file Grid Archive, hay file GAR. Việc tạo một file GAR bao gồm các bước sau: + Chuyển đổi file GWSDL thành file WSDL.

- 138 -

Chương 4. Phát triển ứng dụng với bộ Globus Toolkit 3.2

+ Tạo các lớp cuống (stub class) từ file WSDL. + Biên dịch các lớp cuống. + Biên dịch các mã cài đặt của service. + Sắp xếp các file trong một cấu trúc thư mục đặc biệt. Các bước này có thể làm bằng tay, tuy nhiên đã có một công cụ rất mạnh để tự động thực hiện việc này, đó là Ant. Ant sử dụng các hướng dẫn trong một build file (giống như Makefile trong các dự án phần mềm trên Linux) để thực hiện các công việc của mình. Hình 4-4 cho thấy các file mà Ant sử dụng để phát sinh file GAR :

Hình 4-4 Các file cần thiết để triển khai Grid Service với Ant.

Ant sử dụng các file của GT3, các file do chúng ta tạo ra và file build.xml (file hướng dẫn của Ant) để phát sinh ra file GAR. Chi tiết về Ant, xin tham khảo tại website : http://ant.apache.org. Trong ví dụ này có thể thực hiện lệnh sau đây để phát sinh file GAR. Vào thư mục : $GRIDSER_DEMO Thực hiện lệnh :
./tutorial_build.sh \ org/globus/progtutorial/services/core/first \ schema/progtutorial/MathService/Math.gwsdl

- 139 -

Chương 4. Phát triển ứng dụng với bộ Globus Toolkit 3.2

Sau khi biên dịch thành công, chúng ta sẽ có file GAR :
$GRIDSER_DEMO/build/lib/org_globus_progtutorial_services_core_first.gar

Bước 5 : Triển khai Grid service trên một Grid service container
Chúng ta chỉ cần thực hiện lệnh sau:
ant deploy \ Dgar.name=$GRIDSER_DEMO/build/lib/org_globus_progtutorial_services_core_first. gar

Đến đây chúng ta đã có thể xây dựng và triển khai một Grid service hoàn chỉnh. Tiếp theo chúng sẽ xây dựng một client đơn giản để sử dụng service MathService.

4.5.2. Xây dựng client
Client chúng ta xây dựng là một chương trình chạy trên console, với 2 tham số đầu vào là: + GSH của Grid service instance + Giá trị cần cộng vào. Dưới đây là mã nguồn của file client :
$GRIDSER_DEMO/org/globus/progtutorial/clients/MathService/Client.j ava
package org.globus.progtutorial.clients.MathService; import org.globus.progtutorial.stubs.MathService.service.MathServiceGridLocat or; import org.globus.progtutorial.stubs.MathService.MathPortType; import java.net.URL; public class Client { public static void main(String[] args) { try { // Lay cac tham so dong lenh URL GSH = new java.net.URL(args[0]); int a = Integer.parseInt(args[1]); // Lay GSR cua service instance MathServiceGridLocator mathServiceLocator = new MathServiceGridLocator(); MathPortType math = mathServiceLocator.getMathServicePort(GSH); // Goi phuong thuc o xa 'add' math.add(a);

- 140 -

Chương 4. Phát triển ứng dụng với bộ Globus Toolkit 3.2

System.out.println("Added " + a); // Lay gia tri hien hanh cua service qua phuong thuc 'getValue' int value = math.getValue(); System.out.println("Current value: " + value); }catch(Exception e) { System.out.println("ERROR!"); e.printStackTrace(); } } }

Việc xây dựng một client rất đơn giản và dễ hiểu. Trên đây, chúng ta xem xét các bước xây dựng một Grid service với GT3. Về các kỹ thuật cài đặt các cơ chế của một Grid Service, xin xem thêm trong phần Phụ lục D – Kỹ thuật cài đặt các cơ chế của Grid Service. Từ đây, chúng ta đã có thể xây dựng các ứng dụng Grid với các Grid service. GT3 cũng cung cấp giao diện lập trình để sử dụng các service có sẵn như WS-GRAM, GSI,… Việc lập trình sử dụng các service này chưa được trình bày ở đây, nhưng với các kỹ thuật đã có, cùng với việc tham khảo tài liệu về API của GT trên website : www.globus.org sẽ là tiền đề thuận lợi để sử dụng hiệu quả các service này.

- 141 -

Từ đó.1. 5. “Quản trị mạng là một dịch vụ sử dụng kết hợp nhiều công cụ.1. nâng cao tính sẵn sàng. Một trường hợp khác. quản lý lỗi và quản lý bảo mật. điều khiển. nó có thể là hình ảnh một người tư vấn đang theo dõi các hoạt động mạng với một chương trình phân tích protocol (protocol analyser). Dưới đây giới thiệu sơ nét một số lĩnh vực cần quan tâm. quản lý cấu hình. Quản trị mạng liên quan đến một cơ sở dữ liệu phân tán. 5. Quản lý hiệu năng (Performance Management) Mục tiêu của performance management(quản lý hiệu năng mạng) là đo lường. Trong một số trường hợp. nhu cầu quản trị mạng được đặt ra.1. ứng dụng. Quản trị mạng và các hệ thống quản trị 5.1. theo dõi. Quản trị mạng và các hệ thống quản trị Chương 5.2. chất lượng dịch vụ (QoS) .1. Khái niệm Khái niệm Quản trị mạng (network management) được hiểu theo nhiều cách khác nhau tuỳ mỗi người và vị trí của họ. Quản trị mạng Những năm đầu 1980. các máy trạm để phát sinh những mô hình đồ hoạ thời gian thực về lưu thông trên mạng hay những thay đổi trong đồ hình mạng (network topology). các mạng máy tính bắt đầu phát triển và được kết nối với nhau. tự động thăm dò các thiết bị mạng. Kích thước các mạng ngày càng lớn và do đó càng trở nên khó quản lý và bảo trì. Các lĩnh vực quản trị mạng Tổ chức International Organization for Standardization đã đưa ra một mô hình khái niệm diễn tả 5 lĩnh vực chức năng chính của công việc quản trị mạng là quản lý hiệu năng.142 - .1. Nói chung.Chương 5. quản lý sử dụng. và thiết bị để hỗ trợ những người quản trị mạng trong việc kiểm tra. 5.2. thiết lập các thông số và từ đó. bảo trì các hệ thống mạng”.

5. Cuối cùng. Cuối cùng. thời gian đáp ứng người dùng.2. Tiếp đó. Trên đây là quá trình thiết lập một hệ thống phản ứng bị động.143 - . các dữ liệu về hiệu năng mạng được thu thập theo chủ ý của người quản trị mạng. fault management phải sử dụng các cơ chế để: + Thông báo khi có lỗi xảy ra. quản lý hiệu năng còn cho phép thực hiện các phương pháp chủ động như: Giả lập hệ thống mạng để kiểm tra xem việc mở rộng hệ thống mạng sẽ ảnh hưởng như thế nào đến hiệu năng của toàn mạng. … Quá trình quản lý hiệu năng bao gồm 3 bước: 1. dữ liệu được phân tích để xác định mức cơ bản của các thông số về hiệu năng có thể chấp nhận được. + Thực hiện các kiểm tra chuẩn đoán trên hệ thống + Tự động (nếu có thể) khắc phục lỗi. tài liệu về phát hiện và khắc phục lỗi được lưu lại. Các thông số về hiệu năng có thể là tải của mạng. ghi nhận.2. nên Fault Management có thể được xem là quan trọng nhất trong mô hình quản trị mạng ISO.Chương 5. . các giá trị thích hợp của các thông số quan trọng về hiệu năng mạng được xác định để khi các giá trị này bị vượt qua sẽ cho thấy một vấn đề về hệ thống mạng cần phải chú ý. Fault Management bao gồm việc xác định các khả năng gây lỗi và phân lập lỗi. Quản trị mạng và các hệ thống quản trị của hệ thống mạng. 3.1. thông báo cho người quản trị và tự động sửa chữa các hư hỏng để hệ thống mạng có thể hoạt động hiệu quả. Sau đó là khắc phục lỗi và kiểm tra giải pháp phục hồi trên các hệ thống con quan trọng. Để làm được như vậy. Vì các hư hỏng có thể làm mất hoàn toàn chức năng của hệ thống mạng. khi một giá trị hiệu năng bị vượt qua. Trước hết. 2. Module quản trị theo dõi liên tục các thông số hiệu năng này. từ đó người quản trị mạng có thể biết những nguy cơ tiềm ẩn để khắc phục trước khi nó xảy ra. Quản lý lỗi hệ thống (Fault Management) Mục tiêu của Fault Management là phát hiện. thì sẽ thực hiện báo động cho hệ thống quản trị mạng.

144 - . Hệ thống quản trị mạng 5. Quản trị mạng và các hệ thống quản trị 5. Các vấn đề về bảo mật mạng đã được trình bày nhiều trong các tài liệu khác. Quản lý bảo mật (Security Management) Mục tiêu của Security Management (quản lý bảo mật) là kiểm soát việc truy cập đến các tài nguyên mạng dựa trên các chính sách cục bộ để ngăn chặn các hành động phá hoại hệ thống mạng (vô tình hay cố ý) và truy cập trái phép đến các dữ liệu nhạy cảm.2. ở không sâu vào chi tiết.2. + Mô hình: Dưới đây là sơ đồ một mô hình hệ thống quản trị mạng: Hình 5-1 Mô hình hệ thống quản trị mạng Mô hình trên gồm các thành phần: 1.1.1. 5.3.2. Network Management Station(s) .Chương 5. Mô hình và hoạt động Hầu hết các mô hình quản trị mạng đều sử dụng cùng kiến trúc và nguyên tắc hoạt động cơ bản.

145 - . Module này thường phải xử lý một lượng rất lớn dữ liệu. Quản trị mạng và các hệ thống quản trị Chạy module quản trị mạng thu thập thông tin về các thiết bị cần quản trị từ các agent. máy in. router. Thiết bị bị quản trị (Managed Devices) Là bất kỳ một thiết bị nào đó trong mạng chịu sự quản lý. chuẩn bị các thông tin cần thiết để xuất ra màn hình.Chương 5. điều khiển các thiết bị. Cung cấp thông tin về thiết bị cần quản trị cho ứng dụng quản trị mạng và có thể tiếp nhận và thực hiện các thông tin điều khiển. Hai protocol được sử dụng nhiều nhất trong hệ thống mạng: + Simple NetworkManagement Protocol (SNMP) : sử dụng rộng rãi trong môi trường mạng LAN . Nó thường có một trình điều khiển với giao diện đồ họa cho phép các nhà quản trị xem xét một cách trực quan trạng thái hệ thống. + Cung cấp một giao diện để cấu hình thiết bị. có vai trò là người đại diện cho các thực thể khác trước module quản trị. Một số module quản trị mạng còn cho phép lập trình để phản ứng lại các thông tin thu thập từ các agent và/hoặc thiết lập các định mức hoạt động 2. điều khiển của module quản trị. Network management protocol Protocol dùng để trao đổi thông tin giữa module quản trị và agent. 5. ví dụ như : máy tính. + Có khả xác nhận người dùng và bảo mật để đảm bảo chỉ có module quản trị với các quyền thích hợp mới có thể thực hiện các chức năng trên. cấu hình lại hệ thống. Proxy Là các thực thể cho phép quản lý thông tin của các thực thể khác. 4. Agent Thường trú trên thiết bị cần quản trị. + Số liệu thống kê về các network interface của thiết bị. switch. phản ứng lại các sự kiện. 3. Các chức năng cơ bản của một agent: + Cung cấp thông tin trạng thái của thiết bị. + Có khả năng phát hiện lỗi trên thiết bị và báo cáo cho module quản trị.… Các thiết bị này thường chứa một agent.

sẽ gửi các thông báo về module quản trị thông qua protocol quy ước.2. rồi sau đó cung cấp cho module quản trị khi cần thiết.2. 5.… Module quản trị cũng có thể thực hiện truy vấn (để cung cấp thông tin cập nhật trạng thái hệ thống) đến các thiết bị bị quản trị để kiểm tra tình trạng hiện tại của hệ thống. Thông tin đổi giữa module quản trị và agent để thực hiện theo dõi và điều khiển các thiết bị bị quản trị. khi một thiết bị hỏng. …). Agent sẽ lưu thông tin của thiết bị nó đang quản lý vào cơ sở dữ liệu. có thể ảnh hưởng đến hoạt động của hệ thống. module quản trị được lập trình tự động sẽ phản ứng bằng cách thực thi các hành động thích hợp để giải quyết vấn đề. Polling là khái niệm chỉ việc module quản trị thực hiện truy vấn định kỳ các thiết bị đang quản lý để xác định trạng thái hiện hành của chúng.146 - . có hàng ngàn thiết bị cần quản lý. bởi vì trong một hệ thống mạng lớn. chúng ta sẽ điểm qua một vài chức năng cơ bản mà một hệ quản trị mạng cần phải có. + Polling Đây là đặc trưng cơ bản của tất cả các hệ quản trị mạng. Vấn đề trên có thể được khắc phục bằng kỹ thuật trap- . Một số chức năng cơ bản của một hệ thống quản trị mạng Trong phần này. khi mà các hệ thống mạng trở nên lớn. phục hồi hệ thống.Chương 5. Các agent sẽ trả lời các câu truy vấn này. Dựa trên các thông báo nhận được. + Hoạt động : Khi các agent phát hiện ra vấn đề cần quan tâm (khi một người dùng cố gắng thử rất nhiều mật khẩu khác nhau trên hệ thống. thông báo cho người quản trị. lưu lượng thông tin phục vụ quản lý sẽ rất lớn. sẽ không phát hiện được trong thời gian cho phép. Vấn đề là phải xác định thời gian giữa các lần truy vấn cho hợp lý. phức tạp hơn. một lỗi phần cứng. 6. Management Information. Quản trị mạng và các hệ thống quản trị + Common Management Information Protocol : sử dụng trong môi trường WAN. tuy nhiên nếu thời gian giữa các lần quá lâu.

Trap không phải là một bản báo cáo.. khi một interface bị “down” hoặc “up” lại. tuỳ thuộc vào các protocol quản trị. nó sẽ tự động gửi các truy vấn (và các agent) đến các thiết bị trong mạng rồi tự động xây dựng một bản đồ hay một cơ sở dữ liệu về hệ thống dựa trên các thông tin trả lời. hay một ai đó thử xâm nhập trái phép vào thiết bị. khi một thiết bị hỏng. + Auto Discovery Ý tưởng đằng sau khái niệm này là chúng ta chỉ cần cài đặt module quản trị rồi ra lệnh cho nó. Nó giúp cho việc theo dõi hệ thống mạng dễ dàng hơn. nhất là trong các hệ thống mạng phức tạp ngày nay. “trap” là một phương thức quan trọng để agent báo cho module quản trị biết có sự cố bất thường xảy ra. Với kỹ thuật này. + Trapping Events Như đã được đề cập trên đây. + Device Configuration Đây là một chức năng cần thiết để có thể cấu hình các thiết bị trong hệ thống từ trình giao diện điều khiển. điều này rất quan trọng. không cần phải đi đến tận nơi đặt thiết bị.. Quản trị mạng và các hệ thống quản trị based polling. Vấn đề là phải có các agent và cơ chế cấu hình thích hợp cho từng thiết bị + Graphical Mapping Các hệ thống quản trị mạng ngày nay cần phải có một hệ giao diện đồ hoạ tốt. báo cáo từ các agent để phục vụ cho việc phân tích sau này. Đây là một hướng tiếp cận tốt nhằm giảm thiểu lưu lượng thông tin quản lý. Hệ quản trị cần phải cho phép cấu hình những sự kiện nào cần được lưu lại. tuy nhiên đến nay chức năng trong các hệ quản trị chưa hoạt động như ý muốn do tính phức tạp của hệ thống. Ví dụ. khoảng cách xa. hỗ trợ rất nhiều cho người quản trị với một mạng lớn.. + Event Logging Cho phép thu thập.147 - .Chương 5. Có nhiều cơ chế để thực hiện việc này. module này sẽ thực hiện truy vấn đến thiết bị đó để xác định chi tiết của vấn đề. agent sẽ cố gắng gửi thông báo (trap) về module quản trị. bởi vì một hệ thống mạng lớn sẽ phát sinh ra rất nhiều . nó chỉ chứa đủ thông tin để module quản trị biết chuyện gì đã xảy ra. lưu trữ lại các kết quả truy vấn.

kỹ thuật sử dụng trong các hệ thống IDS cũng có thể sử dụng trong các lĩnh vực quản trị mạng khác. Trong lĩnh vực bảo mật mạng. tuy nhiên vẫn có một số hệ thống sử dụng protocol đặc biệt của nhà cung cấp. 5. Quản trị mạng và các hệ thống quản trị sự kiện. proxy. Các hệ thống quản trị mạng hiện nay chủ yếu tập trung vào lĩnh vực bảo mật. Hiện nay có rất nhiều gói phần mềm quản trị hệ thống mạng đến từ nhiều nhà cung cấp khác nhau. Hầu hết các hệ thống sử dụng các protocol mở. Hệ thống quản trị mạng trong thực tế Các hệ thống quản trị mạng luôn được xây dựng dựa trên các protocol quản trị cụ thể. chi phí.3. trong khi một số khác thì phức tạp hơn. Cho phép bắt và phân tích đến mức chi tiết từng packet lưu thông trên mạng sẽ giúp người quản trị xác định được sự cố mạng một cách nhanh chóng (nếu được cấu hình đúng).… ngày nay người ta thường sử dụng thêm các hệ thống thông minh hơn.Chương 5.… nhưng thường phải dùng phối hợp nhiều gói phần mềm khác nhau để đáp ứng nhu cầu quản trị. Mặc dù các hệ thống IDS chuyên sâu về lĩnh vực bảo mật mạng. các yêu cầu quản trị. do tính phức tạp của các hệ thống mạng cũng như do các protocol sử dụng thiếu các hỗ trợ cần thiết. bản chất hệ thống) . Phần dưới đây giới thiệu đôi nét về các hệ thống IDS. + Protocol Analysis Có thể là công cụ mạnh mẽ nhất trong một hệ quản trị. Các hệ thống quản trị mạng hiện nay thường thiếu các chức năng cần thiết để quản lý hiệu quả một hệ thống mạng. Hệ quản trị nên có cơ chế lưu trữ xoay vòng .2. nếu không lọc lại sẽ dẫn đến tình trạng tràn vùng lưu trữ trong một thời gian ngắn.148 - . các hệ điều hành. đó là các hệ thống phát hiện xâm nhập (Intrusion Detection System(IDS)).Việc lựa chọn các hệ thống quản trị phụ thuộc các tiêu chí như môi trường mạng(độ lớn. một số chỉ cung cấp các chức năng đơn giản để quản lý một mạng nhỏ. bên cạnh việc sử dụng các hệ thống bảo vệ truyền thống như firewall. nhưng các ý tưởng. .

3. Hướng tiếp cận này có độ chính xác cao. các thuật toán xử lý đơn giản. Quản trị mạng và các hệ thống quản trị 5. tuy nhiên khuyết điểm lớn nhất là có thể để “lọt” qua các hoạt động phạm pháp chưa được biết đến. có khả năng gây nguy hiểm cho hệ thống mạng được bảo vệ và phát sinh các phản ứng thích hợp. các chuỗi ký tự nguy hiểm.Chương 5. 2. sau đó sử dụng các tập dữ liệu này để so sánh với các hoạt động hiện tại nhằm phát hiện ra các hoạt động bất bình thường. tuy nhiên nhược điểm của nó là tỷ lệ phát hiện sai cũng lớn nếu tập dữ liệu không chứa đầy đủ các hoạt động bình thường. tỷ lệ phát hiện sai thấp. .3. Khi có một tập dữ liệu các hoạt động bình thường thì tất cả các hành động trong mạng không có trong tập dữ liệu này đều được xem là bất bình thường.2.3.…) để phát hiện các hoạt động bất bình thường. Một trong những ưu điểm lớn nhất của hướng tiếp cận này là có thể phát hiện các hành động phạm pháp mới chưa từng được biết đến. 5. 1. phải liên tục cập nhật các tập dữ liệu. Có một số hướng tiếp cận truyển thống để giải quyết vấn đề này là anomal detection và signature detection. Các hướng tiếp cận Một hệ thống IDS cần phải có khả năng phân biệt giữa các hoạt động bình thường và bất bình thường của người dùng để phát hiện các nguy cơ tiềm ẩn.149 - . Signature detection IDS dạng này sử dụng tập dữ liệu về hoạt động phạm pháp đã biết (ví dụ như các mẫu tấn công.1. dễ xây dựng các tập dữ liệu. có nhiệm vụ phát hiện các hoạt động trái phép. Anomal detection IDS dạng này xây dựng các tập dữ liệu về hoạt động bình thường của người dùng và hệ thống. Hệ thống Intrusion Detection System (IDS) 5. Khái niệm IDS là một hệ thống phòng thủ.

để có một hệ thống quản trị tốt hiện nay. Ethereal là phần mềm được sử dụng rộng rãi nhất bởi các chuyên gia mạng trong việc phân tích. Quản trị mạng và các hệ thống quản trị Các hướng tiếp cận trên được sử dụng trong hầu hết các hệ thống IDS hiện nay. xem xét các packet lưu . trên thế giới xuất hiện các hướng tiếp cận mới nhằm đưa khả năng thông minh nhân tạo vào các hệ thống IDS. xin xem thêm trong tài liệu tham khảo.150 - . 5. Công nghệ khai thác dữ liệu được sử dụng để phân tích. Công nghệ Data mining (khai thác dữ liệu) là công nghệ cơ bản trong các hướng tiếp cận này.4. các kiểu tấn công mới. các thông tin theo dõi của hệ thống (log file). Giới thiệu một số công cụ hỗ trợ quản trị mạng Như đã trình bày ở trên. nâng cao tính chính xác. tuỳ biến của các hệ thống này.… Hiện nay. Ethereal Ethereal. là một phần mềm mã nguồn mở.4. nhưng chưa thể áp dụng trong thực tế do một nguyên nhân quan trong là trong thực tế. gỡ rối. tuy nhiên các hướng tiếp cận trên có giới hạn rất lớn do phụ thuộc vào kiến thức hiện có về hệ thống hoặc lĩnh vực bảo mật của các nhà xây dựng ứng dụng.Chương 5. có tất cả các chức năng cần thiết của một chương trình phân tích packet. Dưới đây xin giới thiệu một số công cụ cần thiết: 5. Đã có nhiều kỹ thuật khai thác dữ liệu được nghiên cứu. trích ra các thông tin chưa được biết đến nhưng rất hữu dụng từ một tập rất lớn các gói dữ liệu.1. phức tạp. Các thông tin chi tiết về các hệ thống IDS và tiếp cận Khai thác dữ liệu trong các hệ thống IDS. để huấn luyện hệ thống hay tạo ra các tập dữ liệu sử dụng trong các hướng tiếp cận trên. cần sử dụng kết hợp nhiều loại công cụ khác nhau. bắt và phân tích packet theo các protocol mạng. do đó khó thích nghi với các hệ thống mạng mới. phát triển các protocol mạng. các hệ thống mạng thiếu các thiết bị có năng lực xử lý lớn để xử lý một khối lượng khổng lồ dữ liệu thông tin mạng.

+ Bắt packet trên nhiều chuẩn mạng khác nhau như Ethernet.11. … . Token-Ring.hỗ trợ định dạng file XML. Cisco Secure IDS iplog. Do đó tương thích với nhiều phần mềm khác. sử dụng các bộ lọc hiển thị (display filter) để lựa chọn các packet cần theo dõi. lưu xuống file dữ liệu. +… . từ đó có thể cung cấp các thông tin hữu ích trong việc quản trị mạng. Hình 5-2 Màn hình giao diện Ethereal. RADCOM's WAN/LAN Analyzer. Một số chức năng chính: + Cho phép bắt các packet lưu thông trong hệ thống mạng theo một bộ lọc (capture filters) đặc tả bởi nhà quản trị. tô màu các thông tin hữu ích. Microsoft's Network Monitor. Quản trị mạng và các hệ thống quản trị thông trong hệ thống mạng. Classical IP over ATM.151 - . + Các thông tin của các packet được hiển thị theo nhiều dạng khác nhau trên giao diện đồ họa.Chương 5. + Hiện có khả năng phân tích packet theo khoảng 530 protocol mạng thông dụng. + Hỗ trợ rất nhiều định dạng file packet khác nhau. PPP. IEEE 802. FDDI. Novell's LANalyzer. AIX's iptrace. như Sniffer™ Pro. và loopback interfaces.

com và tài liệu hướng dẫn sử dụng Ethereal [25] . Ghi chú: Thông tin chi tiết về Snort. trong nhiều dạng cơ sở dữ liệu khác nhau như SQL Server. Snort có cơ chế báo động (alerting) theo thời gian thực khi phát hiện có vấn đề khả nghi. tấn công từ chối dịch vụ và rất nhiều dạng tấn công khác. kết hợp được với các cơ thế thông báo khác của hệ điều hành.org.4. khai thác điểm yếu hệ điều hành. báo động được lưu theo nhiều định dạng khác nhau.. Các dữ liệu này có thể được dùng trong các bước phân tích.snort. có khả năng thực hiện phân tích và ghi nhận thông tin packet lưu thông trong hệ thống mạng theo thời gian thực. quét cổng (scan port)..ethereal.. Nó có thể thực hiện phân tích theo protocol và tìm kiếm nội dung để phát hiện nhiều loại tấn công khác nhau như : làm tràn bộ đệm (buffer overflow). Snort Là một hệ thống IDS mã nguồn mở tốt nhất hiện nay. Quản trị mạng và các hệ thống quản trị Ethereal hiện nay chỉ có thể bắt các packet lưu thông trong một segment mạng (giữa các máy tính có cùng địa chỉ mạng con với máy tính chạy Ethereal). Ghi chú: Thông tin chi tiết về Ethereal.Chương 5. Oracle. khai thác dữ liệu sau này. Snort sử dụng một ngôn ngữ đặc tả luật mềm dẻo để mô tả các lưu thông mạng cần theo dõi. không thể sử dụng phân tích. . xin tham khảo tại Website : http://www. 5. xin tham khảo tài liệu [37] và website : www. Các thông tin thông báo.152 - .2. cung cấp thông tin trong các mạng lớn được. file text.

153 - . . xử lý thông tin trên toàn bộ hệ thống mạng chứ không phải chỉ trên một lối ra vào hệ thống mạng như các hệ thống IDS hiện nay. bộ phận quản trị mạng cần phải có những công cụ phân tích. Đưa các công nghệ khai thác dữ liệu (data mining) và trí tuệ nhân tạo vào hệ thống để phân tích các dữ liệu thu được. chúng vẫn còn một số giới hạn như về giá cả.1. cung cấp thông tin hỗ trợ quản trị mạng với hy vọng tận dụng được năng lực xử lý nhàn rỗi hiện có trong các hệ thống mạng để giải quyết bài toán hiệu quả hơn. trong giới hạn chi phí có thể chấp nhận được. năng lực xử lý. đã có các công cụ hỗ trợ khá mạnh. Để có thể thực hiện tốt công việc của mình. tin cậy. hiệu quả. Hệ thống có thể theo dõi. … nhằm huấn luyện hệ thống có thể tự động nhận dạng các mối nguy hiểm và đưa ra các phản ứng thích hợp. tìm ra các quy luật sử dụng của người dùng. công nghệ Grid Computing được chọn ứng dụng vào bài toán phân tích. Giới thiệu ý tưởng Như đã biết ở phần trên. Tuy nhiên. các quy luật tấn công. Hệ thống quản trị Grid NetManager 6. phản ứng theo thời gian thực để đảm bảo cho các hệ thống mạng hoạt động thông suốt. an toàn. Mục tiêu lâu dài là xây dựng một hệ thống nhằm hỗ trợ bộ phận quản trị mạng trong các lĩnh vực: quản lý hiệu năng.Chương 6. chưa tích hợp đầy đủ về các chức năng. quản lý lỗi và bảo mật. xử lý một khối lượng thông tin khổng lồ nhằm đưa ra các giải pháp. Ứng dụng kế thừa ý tưởng của các hệ thống IDS nhưng mở rộng ra các lĩnh vực khác ngoài bảo mật. Hệ thống quản trị Grid NetManager Chương 6. Hệ thống là cũng một sự tích hợp của nhiều gói phần mềm hiện có trong một thể thống nhất nhằm đơn giản hoá công việc cũng như thỏa mãn các nhu cầu quản trị.… Sau một thời gian tìm hiểu và nghiên cứu. ngày nay bộ phận quản trị mạng phải phân tích. Trên thế giới cũng đã có nhiều hướng tiếp cận. cung cấp thông tin hoạt động của hệ thống mạng mạnh mẽ.

2. + Cho phép xử lý.154 - . quản lý các đặc tả về luật và các phản ứng tương ứng để theo dõi. . cho phép nhập. lưu trữ. giám sát toàn bộ hệ thống về nhiều lĩnh vực. quản lý dữ liệu phân tán. tìm ra các luật theo yêu cầu người quản trị. phát hiện các thay đổi trong đồ hình mạng. + Cho phép quản lý. cung cấp các chỉ số thống kê về hệ thống mạng + Tự động tổng hợp các thông tin. Cho phép lọc các dữ liệu cần thiết theo yêu cầu nhằm làm giảm kích thuớc lưu trữ. + Thực hiện “khai thác dữ liệu”. + Tính toán.Chương 6. thực hiện theo dõi toàn bộ hệ thống và phát sinh phản ứng thích hợp khi một hiện tượng bất thường xảy ra. xử lý và khai thác dữ liệu. điều khiển các thiết bị trong hệ thống mạng. Hệ thống quản trị Grid NetManager 6. Yêu cầu chức năng của một hệ thống quản trị mạng Hệ thống quản trị mạng gồm các chức năng chính: + Bắt và lưu trữ thông tin về các packet lưu thông trên mạng trong các cơ sở dữ liệu phục vụ cho việc phân tích. vẽ sơ đồ thời gian thực các lưu thông trên mạng. + Dựa trên các luật được mô tả. + Cung cấp thông tin về nhiều khía cạnh khác nhau của hệ thống mạng dựa trên các câu truy vấn.

Mô hình thành phần Hình 6-1 Mô hình thành phần ứng dụng Grid NetManager.1.155 - . Hệ thống quản trị Grid NetManager 6.3.Chương 6. .3. Mô hình thành phần và hoạt động của hệ thống 6.

mỗi module có thể nhiều thực thể thực thi song song với nhau nhằm tận dụng các tài . Thực hiện lấy các luật và theo dõi. Bắt. khai thác dữ liệu. Các file ghi vết các sự kiện xảy ra trong hệ thống do các module Monitoring ghi nhận được. RuleDatabase Log files PreprocessingData Bảng 6-1 Các thành phần của ứng dụng Grid NetManager. Hệ thống quản trị Grid NetManager Giải thích STT 1. lưu trữ. Có thể lưu dưới dạng packet thô. trên một máy có thể có nhiều module. từ đó dựa vào các đặc tả phản ứng mà phát sinh các hành động thích hợp. phân tính các packet theo thời gian thực để phát hiện các hiện tượng bất thường. 8. Lưu trữ các dữ liệu tiền xử lý phục vụ việc phân tích dữ liệu và phát sinh các luật. 2. Module Sensor Module AnalyzerAndMiner Module RuleManager Module Monitoring 6. cơ sở dữ liệu quan hệ.Chương 6. 5. lưu trữ các packet vào cơ sở dữ liệu. Nhận các lệnh điều khiển và để điều khiển và cấu hình các thiết bị nhằm thực hiện điều khiển hệ thống mạng có các hành động phù hợp để đáp ứng các sự kiện. thu nhận. 3. thiết bị khác nhau. Thực hiện tất cả chức năng để quản lý. Cơ sở dữ liệu các luật. truy vấn tập luật. Cơ sở dữ liệu thông tin các packet. các cấu trúc dữ liệu tiền xử lý cho các chức năng của hệ thống. Cung cấp các chức năng quản lý. Thực hiện phân tích các dữ liệu từ cơ sở dữ liệu để cung cấp thông tin cần thiết cho nhà quản trị. phát sinh các luật. mỗi module có thể chạy trên nhiều máy tính. Module GridManager PacketDatabase 9. cấu hình và điều khiển các module khác hoạt động. Tên Module Presentation Nhiệm vụ Là giao diện đồ họa.156 - . có nhiệm vụ nhận các lệnh từ nhà quản trị mạng. tổng hợp các thông tin từ các module và kết xuất kết quả cho nhà quản trị. 4. có thể là thông báo cho nhà quản trị. lưu xuống file log hay phát sinh các lệnh điều khiển thích hợp đến các module DeviceAgent. điều khiển Grid. lọc. 10. Các module trên được thiết kế để hoạt động tách biệt. 11. Module DeviceAgent 7.

khai thác dữ liệu có thể phát sinh các dữ liệu trung gian. Các luật được lưu trữ dưới dạng các đặc tả. … được quy định bởi nhà quản trị. trong phạm vi luận văn này được gọi là các LAN Segment).…. phát sinh các lệnh điều khiển .3.157 - . ngăn chặn hoạt động. Các module AnalyzerAndMiner có thể chạy song song trên nhiều máy tính khác nhau. các cơ sở dữ liệu này có thể được lưu trữ cục bộ hay phân tán trên các máy tính khác dựa trên khả năng lưu trữ hiện có. các phép toán logic AND. các định mức hoạt động. và gửi trả kết quả về cho module Presentation. phát sinh các luật.<. báo động. chúng có thể được lưu trữ phân tán trong các file dữ liệu PreprocessingData.… Mỗi luật có các phản ứng đi kèm như thông báo. dữ liệu có thể thực hiện tự động hoặc bằng tay theo ý của nhà quản trị. Các dữ liệu cũng được lưu trữ phân tán trong Grid.Chương 6.…). mỗi cơ sở dữ liệu chỉ chứa thông tin về các packet lưu thông trong một LAN segment. Cách thức hoạt động Một hệ thống mạng máy tính lớn thường được chia thành nhiều mạng con (các vùng broadcast domain. Các tiêu chí để bắt các packet là các câu mô tả về thông tin của các packet bao gồm (loại packet. 6. Các luật có thể là các quy luật. OR.2. Hệ thống có các module Monitoring cũng chạy song song trên nhiều máy khác nhau. các trường và các giá trị tương ứng kết hợp với các phép toán so sánh >. cấu hình lại thiết bị mạng. dấu hiệu tấn công. phân tích dữ liệu trên các cơ sở dữ liệu theo yêu cầu nhằm cung cấp thông tin đa dạng. Quá trình phân tích. lưu trữ trong các cơ sở dữ liệu luật quản lý bởi module RuleManager. các lỗi hệ thống. NOT. ngắt nguồn gây lỗi. có thể đặt một hay nhiều module Sensor trên các máy tính khác nhau nhằm bắt các packet đang lưu thông trong LAN Segment theo các tiêu chí khác nhau và lưu trữ các packet này xuống các cơ sở dữ liệu (PacketDatabases). khai thác dữ liệu. Việc cấu hình vị trí các module.=. ghi nhận. Hệ thống quản trị Grid NetManager nguyên. Trên mỗi LAN Segment. các hoạt động của người dùng. dựa trên các phản ứng được quy định. sử dụng các luật và các dữ liệu trong các cơ sở dữ liệu để phát hiện ra các hoạt động mạng đúng với các luật (cũng có nghĩa đó là những hoạt động tiềm ẩn nguy hiểm). Các cơ sở dữ liệu được sử dụng bởi module AnalyzerAndMiner khi có yêu cầu từ module Presentation.

xử lý và trả kết quả. module Monitoring cũng phát sinh ra các thông báo. Hiện nay trên thế giới có 2 phần mềm rất tốt để thực hiện các chức năng này là Ethereal và Snort như đã giới . lưu trữ dữ liệu phân tán. có nhiều chức năng thích hợp để xây dựng ứng dụng.158 - . điều khiển tất cả các module toàn hệ thống. đây là một dạng của luồng ứng dụng song song. rất thích hợp để xử lý đồng thời các cơ sở dữ liệu. phân tích các thông tin trong từng packet. thu nhận tổng hợp các thông tin trả về từ các module và trình diễn cho nhà quản trị. 6.Chương 6. phát sinh. được phân thành các cơ sở dữ liệu độc lập với nhau (mỗi cơ sở dữ liệu lưu thông tin về một LAN segment). Các dữ liệu packet của toàn hệ thống cần lưu trữ phân tán. Đồng thời. hàng đầu trong trong lĩnh vực Grid Computing. có thể thiết lập một mạng LAN riêng giữa trên các máy tính chạy các module với chi phí không cao (chỉ cần gắn thêm cho mỗi máy tính một card mạng nữa và thêm một thiết bị mạng như hub hay switch). Module Presentation cung cấp giao diện người dùng. Tất cả các hoạt động quản lý. quản lý các tập luật. cho thấy ứng dụng có thể hoạt động hiệu quả trên môi trường Grid. nó đóng vai trò là một cầu nối giữa các phần ứng dụng với hạ tầng Grid. cho phép nhà quản trị quản lý. Với một số phân tích ban đầu như vậy. gọi thực thi các module đều được thực hiện thông qua module GridManager. Hệ thống quản trị Grid NetManager gửi đến các module DeviceAgent để các module này điều khiển các thiết bị tương ứng nhằm có những hoạt động ngăn chặn thích hợp. Các module tương đối độc lập với nhau. Để giải quyết vấn đề truyền dữ liệu giữa các module. Bộ Globus Toolkit được chọn làm nền tảng Grid vì GT là một middle-ware mã nguồn mở. nhu cầu liên lạc giữa các module trong khi hoạt động ít. Phân tích và định hướng phát triển ứng dụng Như giới thiệu trên đây. Một máy tính không thể xử lý lượng dữ liệu này trong thời gian cho phép. lưu trữ trong các Log file.4. Các module có thể được xem là một công việc độc lập. đặc biệt là theo thời gian thực. nhận các tập dữ liệu đầu vào. Ứng dụng đòi hỏi khả năng bắt các packet lưu thông trong mạng. cấu hình. về bản chất đây là một ứng dụng phân tích và xử lý một lượng rất lớn dữ liệu.

Tuy nhiên trong giới hạn của luận văn này. định hướng phát triển ứng dụng là xây dựng ứng dụng trên nền tảng công nghệ Grid Computing với bộ Globus Toolkit. Truy xuất thông tin trong các file dữ liệu phân tán Cho phép tìm kiếm các packet thỏa điều kiện cho trước trong các file dữ liệu thông qua các câu truy vấn. Hệ thống cho phép các module Xử lý truy vấn và tìm kiếm thông tin chạy song song trên nhiều máy khác nhau thỏa yêu cầu. các mã phân tích. là mục tiêu để đạt được trong tương lai. tổng hợp thông tin kế thừa lại từ phần mềm Ethereal nên hệ thống có đầy đủ các chức năng của Ethereal.Chương 6. có thể nằm ở bất cứ máy tính nào trong hệ thống Grid. 3. tập trung vào việc xây dựng các chức năng sử dụng bộ Globus Toolkit. cùng với một số định hướng về phát triển ứng dụng.5. Các tiêu chí được đặc tả dưới dạng các chuỗi capture filter của Ethereal. chỉ khác ở chỗ tập dữ . Nhà quản trị chỉ cần chọn các máy tính để thực thi module Sensor. nên có thể kế thừa và sử dụng lại mã nguồn. Hệ thống có tên là “Grid NetManager” hiện tại được xây dựng với các chức năng như sau : 1. Các chức năng tương tự phần mềm Ethereal Do các module phân tích. hệ thống sẽ tự động gửi các module này và yêu cầu thực thi. nhóm thực hiện chỉ xây dựng một số chức năng của hệ thống. 2. 6. Hệ thống quản trị Grid NetManager thiệu ở chương trước. mã xử lý của các phần mềm Ethereal. Bắt packet (Capture packet) trên nhiều LAN Segment Hệ thống cho phép bắt các packet lưu thông trong các LAN segment theo nhiều tiêu chí và lưu xuống các file dữ liệu phân tán. Cả hai phần mềm đều là phần mềm mã nguồn mở. Snort. Vị trí các file này được xác định bởi nhà quản trị. với mục đích áp dụng thử nghiệm công nghệ Grid Computing vào bài toán quản trị mạng. giảm bớt chi phí xây dựng ứng dụng. xử lý của các module được kế thừa và phát triển từ các chức năng. Hệ thống sẽ tự động tìm kiếm các máy tính thỏa yêu cầu trong hệ thống Grid đưa ra cho nhà quản trị. Tóm lại. Giới hạn vấn đề thực hiện của luận văn Trên đây là giới thiệu về một ứng dụng quản trị mạng hoàn chỉnh. các chức năng của ứng dụng.159 - .

4.Chương 6. . Ý nghĩa các thành phần giống như trong mô hình tổng quan. Module này có nhiều thể hiện chạy song song nhằm tăng tốc quá trình tìm kiếm thông tin.160 - . Module PacketInfoProvider thực hiện tìm kiếm thông tin trong các PacketDatabase theo các câu truy vấn và trả về các kết quả. Hệ thống quản trị Grid NetManager liệu cần xử lý ở đây tổng hợp từ nhiều LAN segment khác nhau thay vì chỉ trong một LAN segment như trước đây. Mô hình thành phần ứng dụng Hình 6-2 Mô hình các thành phần của ứng dụng Grid NetManager thử nghiệm.

Chương 7. thiết kế và cài đặt thử nghiệm ứng dụng Phần này sẽ trình bày bước phân tích. cài đặt trong quá trình phát triển ứng dụng.1.1. .161 - . 7. Ngữ cảnh hệ thống Ngữ cảnh hệ thống xem toàn bộ hệ thống như một hệ thống đơn nhất và xác định các sự kiện. Phân tích 7. thiết kế. Phân tích. thiết kế và cài đặt thử nghiệm ứng dụng Chương 7. Phân tích.1. các dữ liệu vào ra hệ thống Hình 7-1 Ngữ cảnh hệ thống.

1. Lược đồ Use Case 7.1.2.1. 5. Tên UseCase Search nodes Configure Packet Capturing Capture Query Packet Information Ethereal Usecases Ý nghĩa Tìm kiếm các máy thỏa điều kiện Cấu hình các module Sensor Thực hiện bắt packet theo cấu hình đã định trước. Truy vấn thông tin về các packet trong các file dữ liệu Các Usecase cung cấp bởi phần mềm Ethereal. 4. Danh sách Actor STT 1.2. Phân tích.162 - . Mô hình Configure Packet Capturing Capture Nha quan tri Ethereal Use Cases Query Packet Infomation Search Nodes Hình 7-2 Sơ đồ Usecase ứng dụng Grid NetManager thử nghiệm. 2. thiết kế và cài đặt thử nghiệm ứng dụng 7.Chương 7. 3. Bảng 7-2 Danh sách các usecase . Tên Actor Nha quan tri Ý nghĩa Nhà quản trị sử dụng các chức năng của hệ thống Bảng 7-1 Danh sách các actor Danh sách các Usecase STT 1.

Người dùng nhấn nút “Nodes” sau đó chương trình tự động tìm kiếm thông tin về tình trạng các máy tính trong hệ thống Grid và hiển thị lên màn hình chính. Dòng sự kiện .163 - .1.2.1.1.1.2. Tóm tắt Use case này cho phép nhà quản trị cấu hình các module Sensor trong các LAN segment và tổ chức việc lưu dữ liệu trong Grid.1. 7.1.2.3. thiết kế và cài đặt thử nghiệm ứng dụng 7.3.3. Việc cấu hình bao gồm chọn các máy tính có thể thực thi module Sensor. 7. cấu hình các capture filter cho từng module.2. Post conditions Nếu thông tin về mds_server_name người dùng nhập vào hợp lệ thì hệ thống xuất ra tất cả các máy tính thỏa điều kiện tìm kiếm.3.1.2.3. Đặc tả Use case “Configure Packet Capturing” 7. + Các dòng sự kiện khác Máy người dùng nhập máy tính sai Nếu người dùng nhập tên một máy tính không nằm trong hệ thống Grid vào textbox “mds_server_name” thì chương trình sẽ thông báo với người dùng và usecase kết thúc 7.1. và tìm kiếm tất cả các máy trong hệ thống Grid hiện tại theo một tiêu chuẩn về trạng thái được qui định trước.1.3.3.1.1.1. Đặc tả Use case “Search Nodes” 7. Dòng sự kiện + Dòng sự kiện chính Use case bắt đầu khi nhà quản trị nhập vào tên máy chủ quản lý tình trạng hệ thống.3. Tóm tắt Use case này cho phép nhà quản trị nhập vào tên máy chủ quản lý trạng thái hệ thống (MDS GIIS Server).1. Đặc tả Use Case 7.1.Chương 7.3. chọn vị trí lưu các file trong Grid. 7. Phân tích.

3.Chương 7. Module GridManager sẽ tự động yêu cầu các module Sensor ngừng hoạt động. Khi nhà quản trị ra lệnh ngừng theo dõi packet. Đặc tả Use case “Capture” 7.3. Khi nhà quản trị ra lệnh theo dõi packet.1.3.2.3. Tóm tắt Use case này cho phép người dùng tiến hành và ngừng theo dõi packet trong các LAN segment và hiển thị lên màn hình các packet kết quả theo dõi được từ các module. .3. Dòng sự kiện .1. Chương trình tự động lấy thông tin về các máy tính trong hệ thống Grid đã được tìm ra trong use case “Search Grid node”. capture filter trên từng máy. Module Presentation lưu lại cấu hình vừa được chọn. Yêu cầu các máy tính thực thi phải thuộc LAN segment muốn bắt packet.1. Máy người dùng nhập máy tính sai Nếu người dùng nhập vào một máy tính không nằm trong hệ thống Grid thì thông báo với người dùng và usecase kết thúc 7. Đối với mỗi máy tính thực thi cần cấu hình nơi lưu trữ dữ liệu (packet). + Các dòng sự kiện khác 7.3.3.1. thiết kế và cài đặt thử nghiệm ứng dụng + Dòng sự kiện chính Use case bắt đầu khi nhà quản trị chọn chức năng cấu hình bắt packet.3. Module GridManager sẽ tự động gửi các module Sensor đến các máy tính thực thi (nếu chưa tồn tại trên máy đích) và gọi thực thi các module theo cấu hình đã được chọn trong usecase Configure Packet Capturing. 7.1. Phân tích.Use case bắt đầu khi nhà quản trị ra lệnh theo dõi/ngừng theo dõi Packet.2.164 - . Post conditions Nếu thông tin người dùng cấu hình hợp lệ thì hệ thống sẽ có các cấu hình module Sensor mới.

Các điều kiện tiên quyết Phải có các file dữ liệu trên các máy tính do usecase Capture bắt được.165 - . đưa lên cho module Presentation xuất ra màn hình.3. Các packet sẽ được tự động gửi về cho module Presentation hiển thị ra màn hình.3. Các module này dựa trên câu truy vấn. các module này tự động kết thúc. . Sau khi hoàn thành nhiệm vụ.3. tự động cấu hình và gửi các module PacketInfoProvider đến các máy tính thích hợp và cho thực thi. 7. tìm các packet thỏa điều kiện trong các file dữ liệu rồi trả về. tổng hợp dữ liệu của Ethereal.1. Đặc tả Use case “Query” 7.4.3. Phân tích.1.4.Chương 7. Module GridManager thực hiện tổng hợp các packet lấy được từ các module PacketInfoProvider. rồi chọn ra các packet thoả điều kiện. 7.2. thiết kế và cài đặt thử nghiệm ứng dụng - Trong thời gian theo dõi packet.1. Use case này cho phép người quản trị mạng nhập vào một chuỗi truy vấn (theo định dạng display filter của Ethereal). hệ thống sẽ thực hiện truy vấn trên các file dữ liệu phân tán.3.4.1. Người dùng có thể chọn theo dõi các packet trên các Sensor nào.3. tổng hợp lại dưới dạng các packet mà các chức năng của Ethereal có thể phân tích được. hoặc trên tất cả các Sensor.1.4. Dòng sự kiện . Tóm tắt Use case này có mục đích chuẩn bị dữ liệu packet phục vụ cho các use case phân tích.1. Hệ thống lấy câu truy vấn.Use case bắt đầu khi nhà quản trị nhập câu truy vấn. Use case này cho phép người dùng lấy thông tin các packet trong các file dữ liệu theo các câu truy vấn.3.3. Các điều kiện tiên quyết Phải có cấu hình các module Sensor bằng usecase Configure Packet Capturing 7. 7.

Chương 7. Phân tích, thiết kế và cài đặt thử nghiệm ứng dụng

7.1.3.4.4. Post conditions Nếu use case thực hiện thành công, trong bộ nhớ sẽ có một danh sách các packet thỏa điều kiện truy vấn, và danh sách packet này sẽ được xuất ra màn hình. Nếu use case thực hiện không thành công, thông báo lỗi, các dữ liệu cũ không bị mất.

7.1.3.5. Các Use case của Ethereal
7.1.3.5.1. Tóm tắt Đây là các use case sử dụng lại từ phần mềm Ethereal, với mục đích phân tích và trình diễn thông tin cho người sử dụng. Vì không phát triển nên ở đây không trình bày. 7.1.3.5.2. Điều kiện tiên quyết Phải chạy use case Capture trước, trong bộ nhớ phải có dữ liệu để phân tích.

- 166 -

Chương 7. Phân tích, thiết kế và cài đặt thử nghiệm ứng dụng

7.1.4. Mô tả các dòng sự kiện
7.1.4.1. Use case “Search nodes”
7.1.4.1.1. Search nodes - basic sequence diagram

: Nha quan tri

: M ai nForm

: SearchNodesCtrl

: NodesInfo

// Enter GIIS Server name

// Search nodes informati on from GIIS server

// Cal l search nodes

// Search i nform ation

Al l of nodes sati sfy conditi on search from user wi ll be displ ay i n combo box

// Com pare wi th condi ti on search

// Nodes satisfy condition search

7.1.4.1.2. Search colaboration diagram
5: // Compare with condition search

: Nha quan tri
1: // Enter GIIS Server name 2: // Search nodes information from GIIS server
3: // Call search nodes

: SearchNodesCtrl
6: // Nodes satisfy condition search
4: // Search information

: MainForm

: NodesInfo

- 167 -

Chương 7. Phân tích, thiết kế và cài đặt thử nghiệm ứng dụng

7.1.4.1.3. Search nodes - GIIS server not found sequence diagram

: Nha quan tri

: Mai nForm

: SearchNodesCtrl

: NodesInfo

: MessageBox

// Enter GIIS server name

// Search nodes i nformation i n GIIS server
// Cal l search nodes // Search i nformation

// GIIS server not found

// Show message box ("GIIS not server found")

7.1.4.1.4. Search nodes - GIIS server not found colaboration diagram

: Nha quan tri

: MessageBox

1: // Enter GIIS server name 2: // Search nodes information in GIIS server

6: // Show message box ("GIIS not server found")

3: // Call search nodes

5: // GIIS server not found

: MainForm
4: // Search information

: SearchNodesCtrl

: NodesInfo

- 168 -

Chương 7. Phân tích, thiết kế và cài đặt thử nghiệm ứng dụng

7.1.4.2. Use case Configure Packet Capturing
7.1.4.2.1. Add Configuration Capturing sequence diagram

: Nha quan tri

: MainForm

: Conf igureForm

: Conf igureCtrl

: Conf igureEntity

// Call Conf igureForm

// Show

// Enter conf iguration f or node

// Add a conf iguration node // Verif y add a conf iguration // Add conf iguration

- 169 -

thiết kế và cài đặt thử nghiệm ứng dụng 7. Add Configuration Capturing colaboration diagram : Nha quan tri 1: // Call ConfigureForm 3: // Enter configuration for node 4: // Add a configuration node 2: // Show : ConfigureForm : MainForm 5: // Verify add a configuration 6: // Add configuration : ConfigureCtrl : ConfigureEntity .2.170 - .1.Chương 7. Phân tích.2.4.

3.4.4.1. Update Configuration Capturing colaboration diagram 1: // Call ConfigureForm : Nha quan tri 3: // Change configuration for node 4: // Update a configuration node : MainForm 2: // Show 5: // Verify update a configuration : ConfigureCtrl : ConfigureForm 6: // Change configuration : ConfigureEntity .171 - .Chương 7.4. thiết kế và cài đặt thử nghiệm ứng dụng 7.2. Update Configuration Capturing sequence diagram : Nha quan tri : MainForm : Conf igureForm : Conf igureCtrl : Conf igureEntity // Call Conf igureForm // Show // Change conf iguration f or node // Update a conf iguration node // Verif y update a conf iguration // Change conf iguration 7.2.1. Phân tích.

4.2. Phân tích. Remove Configuration Capturing sequence diagram : Nha quan tri : MainForm : Conf igureForm : Conf igureCtrl : Conf igureEntity // Call Conf igureForm // Show // Remov e conf iguration f or node // Remov e a conf iguration node // Verif y remov e a conf iguration // Remov e conf iguration 7.1.172 - .2.6.5.Chương 7.1. Remove Configuration Capturing colaboration diagram 1: // Call Conf igureForm : Nha quan tri 3: // Remov e conf iguration f or node 4: // Remov e a conf iguration node : MainForm 2: // Show 5: // Verif y remov e a conf iguration : Conf igureForm : Conf igureCtrl 6: // Remov e conf iguration : Conf igureEntity .4. thiết kế và cài đặt thử nghiệm ứng dụng 7.

Phân tích.1. Use case “Capture” 7. Capture – Start Basic Flow colaboration diagram 1: // Start capture : Nha quan tri : MainForm 2: // Call capture 6: // Show packet : StartCapture Thread 3: // Create thread Start : CaptureCtrl 4: // Create thread Display 5: // send content of packet : Display Thread .3.Start Basic Flow sequence diagram : Nha quan tri : MainForm : CaptureCtrl : StartCapture Thread : Display Thread // Start capture // Call capture // Create thread Start // Create thread Display // send content of packet // Show packet 7.3.4.1.2.3.1.173 - .Chương 7. Capture . thiết kế và cài đặt thử nghiệm ứng dụng 7.4.1.4.

3. Phân tích.4.174 - .4. Capture – Start Error Flow colaboration diagram 1: // Start capture 2: // Call capture : Nha quan tri : MainForm 3: // Create thread Start : StartCapture Thread 4: // Notify result : CaptureCtrl 5: // Show error message : MessageBox .Start Error Flow sequence diagram : Nha quan tri : MainForm : CaptureCtrl : StartCapture Thread : MessageBox // Start capture // Call capture // Create thread Start // Notif y result // Show error message 7.3. thiết kế và cài đặt thử nghiệm ứng dụng 7. Capture .1.4.1.3.Chương 7.

Phân tích. Capture – Start Stop Flow colaboration diagram 1: // Stop capture : Nha quan tri 2: // Call stop : MainForm 5: // Show message : CaptureCtrl 4: // Message back 3: // Create thread Stop : StartCapture Thread : MessageBox .1.6.3.4.5.Chương 7.1.Start Stop Flow sequence diagram : Nha quan tri : MainForm : CaptureCtrl : StartCapture Thread : MessageBox // Stop capture // Call stop // Create thread Stop // Message back // Show message 7. thiết kế và cài đặt thử nghiệm ứng dụng 7.175 - .4. Capture .3.

Capture – Start Error Flow colaboration diagram 1: // Stop capture 2: // Call stop : Nha quan tri : MainForm 5: // Show message Error : MessageBox 4: // Message back : CaptureCtrl 3: // Create thread Stop : StartCapture Thread .8. Capture – Start Error Flow sequence diagram : Nha quan tri : MainForm : CaptureCtrl : StartCapture Thread : MessageBox // Stop capture // Call stop // Create thread Stop // Message back // Show message Error 7.3.1.4.3.Chương 7.4.7. Phân tích.1.176 - . thiết kế và cài đặt thử nghiệm ứng dụng 7.

1.Basic Flow sequence diagram : Nha quan tri // Call Filter : MainForm : FilterCtrl : FilterThread // Submit Filter // Create Filter Thread // Content of packet return // Show content of message 7.1. Use case “Query” 7.Chương 7. Query .2.4.4.Basic Flow colaboration diagram 1: // Call Filter : Nha quan tri 5: // Show content of message : MainForm 2: // Submit Filter 3: // Create Filter Thread : FilterCtrl 4: // Content of packet return : FilterThread .1.177 - . thiết kế và cài đặt thử nghiệm ứng dụng 7.4. Phân tích.4.4.1. Query .4.

Phân tích.1.4.4.Error Flow sequence diagram 1: // Call Filter : Nha quan tri : MainForm : FilterThread 2: // Submit Filter 4: // Error return 3: // Create Filter T hread : FilterCtrl 5: // Show message error : MessageBox .178 - .3.4.1. Query .Error Flow sequence diagram : Nha quan tri : MainForm : FilterCtrl : FilterThread : MessageBox // Call Filter // Submit Filter // Create Filter Thread // Error return // Show message error 7. thiết kế và cài đặt thử nghiệm ứng dụng 7.4. Query .Chương 7.4.

: char*) : void GetURL() : char * GetJob(.2. : .. . : char *) : GL_GRAM_JOB * Lock() UnLock() failed : globus_bool_t jobcontact : char * callback : GL_GRAM_JOBS_CALLBACK HasFailed() : globus_bool_t SetFailed() Submit(.. 1..179 - . Sơ đồ các lớp đối tượng module GridManager GL_CB mutex : globus_mutex_t cond : globus_cond_t done : globus_bool_t IsDone() SetDone() Continue() Wait() GL_GLOBUS_FTP_CLIENT fd : FILE * buffer : globus_byte_t handle : globus_ftp_client_handle_t StartT ransfer() Transfer() name 1 1 GL_GRAM_JOB GL_GRAM_JOBS_CALLBACK JobsTableMutex : globus_mutex_t JobTable : map <string.. Thiết kế 7.. thiết kế và cài đặt thử nghiệm ứng dụng 7.. Phân tích.) Cancel() SetJobContact(.. Sơ đồ các đối tượng cài đặt Vì khi cài đặt phải kết hợp với mã nguồn của Ethereal (viết theo ngôn ngữ C) và sử dụng các thư viện không hướng đối tượng nên chỉ có thể phát triển theo hướng đối tượng một số xử lý liên quan đến Globus. : .) Wait() Host Broker hostName : string cpu : long GetLinuxNodes() GetHostName() : string GetCPU() : Long Hình 7-3 Sơ đồ lớp cài đặt lớp đối tượng..Chương 7.2... : string.GL_GRAM_JOB> callback_contact : char * Add(.... .1..... : GL_GRAM_JOB *) : void Remove(.

cho phép tìm kiếm các máy tính thỏa các điều kiện yêu cầu về tài nguyên. capture filter. Danh sách các lớp đối tượng STT 1. Thể hiện usecase Configure Packet Capturing. 2. có thêm một số điểm mới sau: STT 1. Query Packet Information. Tên màn hình Grid NetManager Diễn giải Sử dụng lại màn hình chính của Ethreal. GL_GRAM_JOBS_CALLBAC K GL_GRAM_JOB GL_GLOBUS_FTP_CLIENT GL_BROKER Control 3. Màn hình này cho phép sử dụng lại các chức năng phân tích của Ethereal. Lớp chịu trách nhiệm quản lý truyền dữ liệu với GridFTP. node lưu dữ liệu. tên file lưu trữ. Thiết kế giao diện 7.2. thiết kế và cài đặt thử nghiệm ứng dụng 2.2. Phân tích. 4. cho phép nhập câu truy vấn các thông tin về packet và xuất kết quả ra màn hình. Tìm kiếm thông tin về các máy trong hệ thống Grid 2. Danh sách các màn hình Giao diện ứng dụng Grid NetManager thử nghiệm ngoài sử dụng lại các giao diện của Ethereal. Bảng 7-4 Danh sách các giao diện.2. thể hiện của các usecase Capture. 7.2. chờ đợi và kết thúc của một công việc Lớp quản lý việc gọi thực hiện một danh sách các công việc thông qua định danh của công việc Lớp chịu quản lý việc thực thi và kết thúc một công việc.1.Chương 7. cho phép người dùng cấu hình các thông tin phục vụ bắt packet như node thực thi. thêm các chức năng mới.180 - . 5. Search nodes. GL_CB Tên lớp Loại đối tượng Control Diễn giải Lớp cung cấp các hàm gọi cho việc bắt đầu. Packet Capture Configure . Control Control Control Bảng 7-3 Danh sách các đối tượng cài đặt. cho phép khởi tạo và kết thúc quá trình bắt packet.

Chương 7. hệ thống sẽ cho gọi thực thi module PacketInfoProvider trên các máy ở xa. 2. Button Thực hiện tìm kiếm các Node thỏa điều kiện yêu cầu về tài nguyên từ MDS server và đưa ra cboNodes . chờ nhận kết quả và xuất ra màn hình. node_cb nodes_bt Nodes Nodes Textbox Cho phép nhập vào tên của MDS Server đang quản lý thông tin của hệ thống Grid Textbox Chứa nội dung truy vấn cơ sở dữ liệu. Combo Chứa danh sách Node thoả điều kiện tìm kiếm hiện đang có trong Grid. Màn hình Grid NetManager Hình 7-4 Màn hình chính ứng dụng Grid NetManager thử nghiệm Mô tả màn hình (danh sách các control được thêm vào màn hình chính cùa ethereal) Tên trên giao diện MDS Server Filter STT 1.2. Chi tiết các màn hình 7. Tên control mds_server_te filter_te Kiểu Diễn giải 3. Sau khi nhận đầy đủ câu truy vấn.2. 4. Phân tích. thiết kế và cài đặt thử nghiệm ứng dụng 7.2.181 - .2.1.2.2.

2. Bảng 7-5 Mô tả màn hình chính. 7. 4. 6. Màn hình Packet Capture Configure Hình 7-5 Màn hình Packet Capture Configue Mô tả màn hình (danh sách các control) STT 1.2.2.2. 3.Chương 7. Chứa tên file lưu trữ dữ liệu khi bắt xuống. Chứa nội dung cấu hình bắt packet của từng module Sensor. Chứa danh sách Node thoả điều kiện tìm kiếm tài nguyên. Phân tích.182 - . hiện đang có trong Grid. dùng để chọn máy thực Argument Textbox Combo computer_cb Sensor . Start_bt stop_bt Start Stop Button Button Bắt đầu quá trình bắt packet trên các node. Tên trên Tên control giao diện clist_Node file_te filter_te File Kiểu Listbox Textbox Diễn giải Hiện thị các chọn lựa cấu hình bắt packet của người dùng. thiết kế và cài đặt thử nghiệm ứng dụng 5. 2. Kết thúc quá trình bắt packet.

btnOK btnAdd btnUpdate btnRemove thi module Sensor. 8. store_cb Database Combo Computer OK Add Update Remove Button Button Button Button 6. Loại bỏ một cấu hình module.2 Các thư viện phát triển ứng dụng của GT3. + Sử dụng mã nguồn Ethereal 0.10.183 - .1. Công cụ và môi trường phát triển ứng dụng Ứng dụng “Grid NetManager” được xây dựng trên môi trường và công cụ sau: + Công cụ phân tích thiết kế : Rational Rose 2000.2. Compiler : GCC.1.4. + Môi trường xây dựng và thực thi : Linux Redhat 9. hiện đang có trong Grid. và các phần mềm đi kèm.2 : GSI. dùng để chọn máy lưu trữ dữ liệu.20-8).3. Thêm cấu hình cho một module mới Cập nhật lại cấu hình của một module. + Ngôn ngữ lập trình : C/C++ + Môi trường phát triển ứng dụng : Editor : KDevelop 2. preWS MDS. thiết kế và cài đặt thử nghiệm ứng dụng 5. Lưu lại cấu hình các module. GridFTP. + Môi trường Grid : Globus Toolkit 3. Bảng 7-6 Mô tả màn hình cấu hình bắt packet.3. Phân tích. G++ Debugger : GDB.0 (kernel 2. 7. pre-WS GRAM. 7. Cài đặt & Triển khai 7. Chứa danh sách Node thoả điều kiện tìm kiếm tài nguyên.Chương 7. 9.0a + Sử dụng các thư viện: Thư viện giao diện đồ họa : GTK+ 1. … . Microsoft Visio 2003.

3.Chương 7. chương trình tethereal được sử dụng thực thi chức năng của 2 module Sensor và module PacketInfoProvider.3. tEthereal Grid NetManager Ý nghĩa Là file chương trình tethereal. Mô hình cài đặt 1. 2. 2.184 - . Mô hình T ET HEREAL (Fi le chuong trinh thuc thi) Gri d NetManager (M odule Quan tri) Hình 7-6 Mô hình cài đặt.2. Là file chương trình thực thi chức năng quản trị và trình diễn. Mô hình triển khai Hệ thống có thể được triển khai trong hệ thống mạng máy tính cần quản trị với cấu hình như sau: Hình 7-7 Sơ đồ triển khai ứng dụngGrid NetManager thử nghiệm. thiết kế và cài đặt thử nghiệm ứng dụng 7. Bảng 7-7 Các thành phần triển khai. 7. Phân tích.3. . Diễn giải STT Tên thành phần 1.

thiết kế và cài đặt thử nghiệm ứng dụng Giải thích: Các máy tính tham gia Grid đều được cài đặt bộ Globus Toolkit 3. 7.4.2.4. . Ứng dụng sẽ tự động hoặc cho nhà quản trị chọn các máy tính “rảnh rỗi”(theo một tiêu chí nào đó) để thực thi các module. Các máy tính chạy module Sensor nhất thiết phải kết nối với một LAN segment cần bắt packet. xử lý truy vấn. chức năng bắt packet.3. một LAN segment chỉ cần một máy chạy module Sensor là đủ. Nhà quản trị sử dụng một máy tính Grid chạy gói Quản trị (gồm module Presentation và PacketInfoManager) để quản trị toàn hệ thống.185 - . Nên có một mạng cục bộ dành riêng cho Grid (Grid Network) để không ảnh hưởng đến năng lực mạng của tổ chức. Thử nghiệm 7. Phân tích. Mô hình thử nghiệm Hình 7-8 Mô hình cài đặt thử nghiệm Các máy tính thử nghiệm được triển khai như hình 7-8. có thêm một kết nối đến mạng Grid dành riêng.1.Chương 7. Các máy tính Grid ngoài việc kết nối với mạng nội bộ của tổ chức. các máy tính này không cần phải dành riêng cho Grid mà có thể sử dụng cho các ứng dụng khác.3. Đã thử nghiệm thành công chức năng gửi và thực thi công việc trên máy tính ở xa.

hệ thống Intrusion Detection System. cũng như sử dụng để phát triển ứng dụng Grid. + Bên cạnh đó. Về luận văn Ở mức luận văn. tìm hiểu và so sánh các middleware Grid phổ biến hiện nay. + Cài đặt và cấu hình thành công bộ Globus Toolkit 3. các vấn đề cơ bản về quản trị mạng. cũng đã được tìm hiểu. Hướng tiếp cận sử dụng công nghệ Grid Computing vào bài toán quản trị mạng là một hướng mới. đưa ra định hướng xây dựng ứng dụng. tìm hiểu từ công nghệ Grid Computing và các hệ thống quản trị mạng. Kết luận Chương 8. hệ thống quản trị mạng.1.186 - . tổng quan về các khía cạnh nền tảng công nghệ Grid Computing hiện nay như bản chất khái niệm. + Tìm hiểu khá đầy đủ. + Đọc hiểu và sửa chữa mã nguồn phần phần mềm Ethereal cho phù hợp với các tính năng mới. các dịch vụ cơ bản. . hiện chưa có dự án nào được công bố.1. Kết luận 8. Đánh giá 8. 8. nhóm thực hiện đã đạt được những kết quả sau : + Đề xuất mô hình hệ thống quản trị mạng dựa trên nền công nghệ Grid Computing.2. các thách thức và yêu cầu. Về ứng dụng Dựa trên những kết quả nghiên cứu. các chuẩn hiện nay.1. mô hình kiến trúc. tổng quan về bộ Globus Toolkit 3.2 trên môi trường mạng máy tính Linux. lợi ích và ứng dụng. cách thức giải quyết các thách thức cơ bản của công nghệ Grid. lưu ý khi xây dựng các dự án ứng dụng Grid với bộ Globus Toolkit.Chương 8. cho phép thực thi các ứng dụng Grid. Các kiến thức ở đây có thể được sử dụng để định hướng tìm hiểu. làm cơ sở để đưa ra mô hình ứng dụng Grid NetManager.1. các yêu cầu.2 về mô hình. nghiên cứu sâu hơn về công nghệ Grid Computing và bộ Globus Toolkit. nhóm thực hiện đã thu được những kết quả sau : + Tìm hiểu khá chi tiết.

về mã nguồn các module. từ đó có thể phát triển.2. mở rộng của luận văn 8. xây dựng các thành phần Grid hoặc tham gia các dự án nghiên cứu và triển khai ứng dụng Grid. việc phát triển ứng dụng đòi hỏi có những nghiên cứu. quản lý Grid để nâng cao hiệu suất Grid. gửi và thực thi các module bắt packet (Sensor). 8. góp phần phát triển nền khoa học công nghệ nước nhà. cài đặt các module còn lại trong mô hình ứng dụng.1. do phải dành thời gian tìm hiểu công nghệ và làm quen với các môi trường mới (hệ điều hành Linux. thương mại của đất nước. . các thuật toán để ứng dụng tốt hơn trong thực tế. công cụ phát triển ứng dụng. đưa sức mạnh tính toán lớn với chi phí thấp vào các dự án nghiên cứu khoa học. Về ứng dụng Hiện tại ứng dụng mới chỉ dừng lại ở mức thử nghiệm.…) nên những kết quả trên đây mới chỉ là bước đầu. Về luận văn Thực hiện các nghiên cứu sâu hơn về công nghệ Grid Computing và bộ GlobusToolkit.187 - .2. lấy thông tin từ các file dữ liệu. đòi hỏi đầu tư nhiều về công sức và thời gian. Ứng dụng Grid NetManager là một dự án lớn. cài đặt kỹ lưỡng hơn trong các giai đoạn sau. xử lý truy vấn trên các node (PacketInfoProvider). thực hiện theo chủ trương “đi tắt đón đầu”. Trong quá trình làm luận văn. Hướng phát triển. kinh tế. trong tương lai dự định sẽ phát triển tiếp thành một ứng dụng hoàn chỉnh để có thể áp dụng vào thực tế: + Phát triển các chức năng còn thiếu của các module hiện tại. + Phát triển các chức năng quản lý dữ liệu.Chương 8. Việc cài đặt thử nghiệm một số chức năng cho thấy tính khả thi của mô hình và khả năng cài đặt thành công của ứng dụng trong môi trường Grid với middleware Globus Toolkit. 8.2. Kết luận + Thiết kế và cài đặt các chức năng tìm kiếm máy tính trong Grid. + Thiết kế. thiết kế.2. phân tích. tiến tới làm chủ công nghệ Grid Computing.

Lời kết Trong thời gian có hạn. . Xét về các mục tiêu đặt ra ban đầu.Chương 8.3. Có thể những kiến thức chúng em thu nhận được từ công nghệ chưa nhiều nhưng trong thời gian làm luận văn. tạo điều kiện để có những phát triển trong sắp tới. kỹ năng phân tích và xử lý vấn đề (trouble shooting). cố gắng trong thời gian làm luận văn. chúng em mới chỉ nghiên cứu được một phần nhỏ về công nghệ Grid Computing. chúng em xin tự đánh giá hoàn thành khá xuất sắc luận văn. Chúng em rất vui và hạnh phúc khi đã được thực hiện luận văn này. một lĩnh vực mới mẻ và được xem là công nghệ tính toán nền tảng trong tương lai. khả năng phối hợp làm việc. Chúng em nghĩ những gì đã đạt được rất quý cho chúng em sau này và tin rằng việc trang bị những kỹ năng thực tế cũng là một mục đích quan trọng của việc làm luận văn. nhờ những kỹ năng và kiến thức chúng em thu nhận.…. rèn luyện được qua quá trình học tập ở trường Đại học. 8. tinh thần vượt qua khó khăn. các kết quả đạt được cùng với những nỗ lực. khả năng thích nghi với môi trường và công nghệ hoàn toàn mới (Linux và công nghệ Grid Computing) trong thời gian ngắn. chúng em đã phát triển được nhiều kỹ năng mới như : kỹ năng tìm kiếm thông tin.188 - . Kết luận + Cài đặt ứng dụng theo mô hình Grid Service để tận dụng các khả năng của công nghệ mới.

Ở đây đề nghị độ đo với các giá trị H (cao). cũng có thể sử dụng các độ đo khác. Các tiêu chí đánh giá tính khả khi của một dự án Grid Lược đồ đánh giá tính khả khi của ứng dụng được trình bày trong hình 0-1. Lưu ý. có thể thêm các tiêu chí khác vào bảng để đánh giá cho phù hợp với tình hình thực tế. + Các ghi chú : Mỗi tiêu chí cần được đánh giá và cho điểm tương ứng theo một độ đo nào đó. Nó đưa ra các tiêu chí và các yêu cầu cần thiết của một giải pháp Grid. M(vừa). 3. + Độ quan trọng : Trọng số cho biết mức độ quan trọng của tiêu chí khi so sánh với các yêu cầu của ứng dụng. + Tài nguyên : Trọng số cho biết khả năng và các kiểu của tài nguyên Grid. 2. L (thấp). Kiểu công việc Tầm vực (tăng dần theo nỗ lực) Song song -> Mạng -> Tuần tự Một công việc -> nhiều công việc. Tiêu chí STT 1. 4. qua quá trình lượng giá các tiêu chí sẽ cho biết tính khả thi của ứng dụng có cao hay không. + Nỗ lực : Trọng số cho biết mức độ nỗ lực cần thiết để đạt được tiêu chí đó. 5. Ứng với mỗi tiêu chí có các cột sau: + Tầm vực : Tổng kết các khả năng có thể của tiêu chí.189 - . Trọng số (H-M-L) Độ quan trọng Nỗ lực Kỹ Tài năng nguyên Ghi chú 6.Phụ lục Phụ lục A. Mục Luồng công việc Số công việc khác nhau Độ sâu của các công việc con. + Kỹ năng : Trọng số cho biết trình độ hiện tại của đội ngũ phát triển. Không có công việc con -> Rất sâu Theo lô -> Đơn giản -> Song song -> Dựa trên EJB -> Phức tạp Độc lập -> Phụ thuộc chặt chẽ. Mức độ phụ thuộc Hệ điều hành Dung lượng Nhỏ -> Lớn bộ nhớ cho .

Server ứng Không cần -> JSP -> EJB -> server đặc biệt. Các DLL Bảng 8-1 Các tiêu chí đánh giá tính khả thi của ứng dụng Grid 12. việc Tham số dòng lệnh -> Nhập/Xuất Hàng đợi thông điệp -> dữ liệu cho File dữ liệu -> Cơ sở công việc. 10. gian. 11. 16. 18. 13. Unicode thông thường trên mạng SBCS -> Kiểu dữ Các unicode khác nhau liệu : Sử trên DBCS -> Bộ Mã dụng bộ mã ký tự không xác định được. 17. 8. Thực thi dự Không cần thiết -> Rất phòng công cần thiết. dụng Không cần -> Ứng dụng chuẩn -> Đòi hỏi Ứng dụng cấu hình/cài đặt đặc bên ngoài biệt Không Cần -> Các Thiết Bị IT Chuẩn -> Mức độ Các Thiết Bị IT Đặc phụ thuộc phần cứng Biệt -> Các thiết bị đặc biệt khác. 19. 15.190 - . môi trường đặc biệt. dữ liệu -> APIs RO file -> RO DBMS Truy cập > RW File -> RW dữ liệu chi DBMS sẻ Không gian Nhỏ -> Không giới hạn lưu trữ tạm thời Băng thông Nhỏ -> LAN tốc độ cao -> WAN mạng Dữ liệu luôn hợp lệ -> Dữ liệu Dữ liệu thay đổi theo theo thời thời gian. 14. 9. .Phụ lục từng công việc 7. dịch Không cần -> Môi Môi trường trường chuẩn ->Cần thực thi. Có sẵn tại chỗ -> Cần có DLL đặc biệt Không cần cấu hình -> Cấu hình Cấu hình chuẩn ->Cần trình biên cấu hình đặc biệt.

Phụ lục

B. Định dạng file GWSDL
Phần này giới thiệu các bước cơ bản để viết một tài liệu GWSDL đặc tả Grid Service, việc viết một đặc tả GWSDL cũng tương tự như viết một tài liệu WSDL khi phát triển các Web service, gồm các bước: 1. Viết thành phần gốc : <definitions>. 2. Viết đặc tả <gwsdl:PortType>. 3. Viết các đặc tả <message> nhập xuất cho các phương thức của PortType. 4. Viết thành phần <types>. Chi tiết các bước sẽ được trình bày dưới đây thông qua một ví dụ nhỏ, viết Grid service MathService với các chức năng đã được giới thiệu ở phần Triển khai cài đặt các Grid Service

Bước 1: Viết thành phần gốc <definitions>
<?xml version="1.0" encoding="UTF-8"?> <definitions name="MathService" targetNamespace="http://www.globus.org/namespaces/2004/02/progtutorial/MathService" xmlns:tns="http://www.globus.org/namespaces/2004/02/progtutorial/MathService" xmlns:ogsi="http://www.gridforum.org/namespaces/2003/03/OGSI" xmlns:gwsdl="http://www.gridforum.org/namespaces/2003/03/gridWSDLExtensions" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/"> </definitions>

Thành phần <definitions> có 2 thuộc tính: + name : Tên của file GWSDL, không liên quan đến tên service. + targetNamspace : Khai báo không gian tên của file GWSDL. Điều này có nghĩa là tất cả các portType và phương thức khai báo ở đây đều thuộc không gian tên này. Thành phần này cũng được dùng để khai báo tất cả các không gian tên sử dụng trong tài liệu GWSDL. Tiếp theo, phải khai báo import file OSGI GWSDL chức các khai báo, định nghĩa sẽ sử dụng trong phần sau.
<import location="../../ogsi/ogsi.gwsdl" namespace="http://www.gridforum.org/namespaces/2003/03/OGSI"/>

Bước 2 : Định nghĩa portType với tag <gwsdl:portType>
<definitions ... "> <gwsdl:portType name="MathPortType" extends="ogsi:GridService"> <operation name="add"> <input message="tns:AddInputMessage"/> <output message="tns:AddOutputMessage"/> <fault name="Fault" message="ogsi:FaultMessage"/> </operation>

- 191 -

Phụ lục

<operation name="subtract"> <input message="tns:SubtractInputMessage"/> <output message="tns:SubtractOutputMessage"/> <fault name="Fault" message="ogsi:FaultMessage"/> </operation> <operation name="getValue"> <input message="tns:GetValueInputMessage"/> <output message="tns:GetValueOutputMessage"/> <fault name="Fault" message="ogsi:FaultMessage"/>

</operation> </gwsdl:portType

Tag <gwsdl:portType> có 2 thuộc tính: + name : tên của portType + extends : Đây là một sự khác biệt đối với một file WSDL truyền thống. Thuộc tính này cho phép chúng ta mở rộng từ một portType có sẵn, ở đây MathService được mở rộng từ portType GridService chuẩn. Bên trong tag <gwsdl:portType> chứa tag <operation> cho phép định nghĩa các phương thức của portType các tham số đầu vào (tag <input>), các giá trị trả về (tag <output>), các giá trị lỗi (<fault>). Lưu ý, tất cả đều có thuộc tính <message>, được định nghĩa dưới đây, xác định những gì cần trao đổi trong lúc gọi phương thức.

Bước 3 : Viết đặc tả <message> nhập xuất
<?xml version="1.0" encoding="UTF-8"?> <definitions ... > <message name="AddInputMessage"> <part name="parameters" element="tns:add"/> </message> <message name="AddOutputMessage"> <part name="parameters" element="tns:addResponse"/> </message> <!-- PortType --> </definitions>

Lưu ý, tên của message phải trùng với tên đã được khai báo trong phương thức (trong thuộc tính message của các tag <input>, <output>). Mỗi message gồm nhiều phần <part>, mỗi <part> có một kiểu đại diện cho kiểu của giá trị, được định nghĩa ở bước sau.

Bước 4 : Viết các thành phần <type>
types> <xsd:schema targetNamespace="http://www.globus.org/namespaces/2004/02/progtutorial/MathService " attributeFormDefault="qualified" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema">

<xsd:element name="add"> <xsd:complexType>

- 192 -

Phụ lục

<xsd:sequence> <xsd:element name="value" type="xsd:int"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="addResponse"> <xsd:complexType/> </xsd:element> </xsd:schema> </types> &lt!-- Messages --> &lt!-- PortType --> </definitions>

Ở đây định nghĩa các kiểu của các thành phần add và addResponse. Trên đây vừa trình bày sơ nét về cấu trúc cơ bản của file GWSDL, có thể thêm các kiểu mới, mở rộng bằng cách tham khảo các không gian tên đã được định nghĩa sẵn.

C. Kỹ thuật cài đặt các chức năng cơ bản của Grid Service
C.1. Kỹ thuật cài đặt Operation Provider
Như đã giới thiệu, GT3 hỗ trợ 2 cách cài đặt interface trong ngôn ngữ lập trình, cách thứ nhất là kỹ thuật sử dụng tính kế thừa, ở đây lớp MathImpl kế thừa từ lớp GridServiceImpl, do GridServiceImpl có tất cả các chức năng cơ bản nên MathImpl chỉ cần cài đặt tất cả các phương thức của Math portType là đủ. Như trên hình 0-1, lớp MathImpl chứa tất cả các hàm cài đặt cho các phương thức của portType (Lưu ý, ở đây có nhiều hàm hơn). Tuy nhiên, cài đặt tất cả các phương thức của portType chỉ trong một lớp có thể gây ra nhiều bất tiện đặc biệt là đối với các portType lớn, có nhiều phương thức. Và kỹ thuật này, đối với Java, lớp MathImpl không thể kế thừa từ một lớp nào nữa, điều này hạn chế việc tái sử dụng mã.

- 193 -

Phụ lục

Hình 8-1 Lớp triển khai interface của Grid service bằng kỹ thuật kế thừa.

GT3 đưa một hướng tiếp cận mới để giải quyết khuyết điểm của kỹ thuật sử dụng tính kế thừa, đó là kỹ thuật uỷ quyền. Hướng tiếp cận này cho phép phân tán các nhóm phương thức vào các lớp khác nhau, các lớp này được gọi là Operation Provider. Như trên hình 0-2, có thể chia lớp MathImpl thành 3 lớp, ứng với từng nhóm phương thức.

Hình 8-2 Cài đặt intrface củaGrid service bằng kỹ thuật Operation Provider

Lưu ý là 3 lớp này không thừa kế từ lớp nào hết, chúng chỉ cài đặt một interface tên là Operation Provider. Lúc này các chức năng của lớp GridServiceImpl không được kế thừa từ đây mà được yêu cầu Grid service container cung cấp thông qua bản đặc tả triển khai. Khi tiến hành cài đặt theo cách tiếp cận này, có một số thay đổi nhỏ so với kỹ thuật sử dụng tính kế thừa, như trình bày dưới đây. Lớp cung cấp hoạt động (Operation Provider) ở đây gọi là MathProvider cũng giống như các lớp của MathImpl trước đây, chỉ khác là ở đây cài đặt thêm interface OperationProvider, file :
$GRIDSER_DEMO/org/globus/progtutorial/services/core/providers/impl /MathProvider.java

- 194 -

0"?> <deployment <!-.-----Tuong tu tren --------> <parameter name="schemaPath" value="schema/progtutorial/MathService/Math_service.providers.GridServiceImpl"/> .impl.progtutorial.GridServiceException. new QName(namespace. } public QName[] getOperations() { return operations.globus.RemoteException. tuong ung voi file GWSDL private static final QName[] operations = new QName[] { new QName(namespace.GridServiceBase.ogsa.ogsa. import javax.rmi.tuong tu MathImpl---------} File đặc tả triển khai cũng có một số thay đổi.wsdl"/> <!-.wsdd <?xml version="1.Yeu cau Grid service container goi chuc nang cua GridServiceImpl nhu la chuc nang co ban cua MathService --------> <parameter name="baseClassName" value="org.core.MathPortType"/> <!-. //Luu y o day cai dat OperationProvider public class MathProvider implements OperationProvider { // Cac thuoc tinh cua Operation provider //Khai bao namespace private static final String namespace = "http://www. "add").globus.globus.org/namespaces/2004/02/progtutorial/MathService". public void add(int a) throws RemoteException { value = value + a.globus. import org. private GridServiceBase base. import org.xml. file : $GRIDSER_DEMO/org/globus/progtutorial/services/core/providers/serv er-deploy.Phụ lục package org. //Khai bao ten cac phuong thuc duoc cung cap. import java.globus. "subtract"). "getValue") }. } //-------. // Cac phuong thuc cua Operation Provider public void initialize(GridServiceBase base) throws GridServiceException { this.services.globus.namespace.-----Ten class --------> <parameter name="className" value="org. new QName(namespace.ogsi.MathService.ogsa.base = base. } //Cai dat private int value = 0.195 - .globus.stubs.ogsa.impl.QName. import org.OperationProvider.progtutorial.

progtutorial. số phép toán đã thực hiện (numOp).Phụ lục <parameter name="operationProviders" value="org. C.globus..core.xsd <complexType name="MathDataType"> <sequence> <element name="value" type="int"/> <element name="lastOp" type="string"/> <element name="numOps" type="int"/> </sequence> </complexType> .Math Provider"/> <!—Tuong tu tren --> </deployment> Các thao tác khác để triển khai service hoàn toàn tương tự như đã giới thiệu ở trên.196 - . Thêm thành phần dữ liệu (Service Data Element (SDE)) Như đã biết. MathData chỉ có một và chỉ một giá trị (cardinality = 1.impl.1) được mô tả trên hình 0-3: Hình 8-3 Ví dụ về SDE của MathService + Đặc tả SDE Việc định nghĩa một SDE cho một service thông qua file đặc tả GWSDL. phần này sẽ xem xét kỹ thuật thêm SDE cho một service. mỗi Grid service đều có các SDE của riêng mình.services.providers. File : $GRIDSER_DEMO/schema/progtutorial/MathService_sd/MathSDE. phép toán thực hiện cuối cùng (lastOp). Ở đây chúng ta thêm một SDE có tên là MathData chứa các thông tin như giá trị hiện tại (value).2. chúng ta có thể đặc tả trong một file khác. tuy nhiên MathData là một kiểu phức tạp nên mặc dù có thể đặc tả kiểu này trong file GWSDL.

org/2001/XMLSchema" xmlns="http://schemas.xmlsoap. File : $GRIDSER_DEMO/schema/progtutorial/MathService_sd/Math.org/namespaces/2004/02/progtutorial/MathService_sd" xmlns:data="http://www.org/wsdl/"> + Nhập file MathSDE.gridforum.org/namespaces/2004/02/progtutorial/MathService_sd/MathSDE" xmlns:ogsi="http://www. //Chua gia tri cua SDE .org/namespaces/2003/03/serviceData" xmlns:xsd="http://www. //La SDE private MathDataType mathDataValue.w3. file này có nội dung và cấu trúc gần giống với file GWSDL cũ. một số phần thay đổi được trình bày ở đây.197 - . chúng ta sẽ đặc tả lại inteface của service bằng cách tạo một file GWSDL mới. <definitions name="MathService" targetNamespace="http://www.xsd" namespace="http://www.gwsdl. + Xác định lại namespace.gridforum.<operation>s --> <sd:serviceData name="MathData" type="data:MathDataType" minOccurs="1" maxOccurs="1" mutability="mutable" modifiable="false" nillable="false"> </sd:serviceData> </gwsdl:portType> + Cài đặt SDE File : $GRIDSER_DEMO/org/globus/progtutorial/services/core/servicedata/im pl/MathImpl.globus.xsd định nghĩa MathData vào <import location="MathSDE.Phụ lục Bây giờ.globus.java Ở đây khai báo lớp không thay đổi: public class MathImpl extends GridServiceImpl implements MathPortType Lớp cài đặt này có thêm 2 thuộc tính private mới : private ServiceData mathDataSDE.org/namespaces/2004/02/progtutorial/MathService_sd/MathSDE" /> + Khai báo SDE trong đặc tả interface <gwsdl:portType name="MathPortType" extends="ogsi:GridService"> <!-.globus.org/namespaces/2003/03/gridWSDLExtensions" xmlns:sd="http://www.globus.org/namespaces/2003/03/OGSI" xmlns:gwsdl="http://www.org/namespaces/2004/02/progtutorial/MathService_sd" xmlns:tns="http://www.gridforum.

getServiceDataSet().xsd mathDataValue. incrementOps().services. <parameter name="baseClassName" value="org.getNumOps(). //Duoi day la cac buoc tao mot SDE va dua vao Service Data Set // Tao Service Data Element mathDataSDE = this.getServiceDataSet(). mathDataValue.setValue(mathDataValue).setValue(0).globus.setValue(mathDataValue.MathService_sd. mathDataValue.MathImpl" /> <parameter name="className" value="org.postCreate(context).stubs.progtutorial. mathDataValue. // Them SDE vao Service Data Set this. getNumOps() duoc tu //dong phat sinh tu file dac ta MathSDE.create("MathData").setNumOps(numOps + 1). } + Đặc tả cài đặt Trong file đặc tả chỉ cần thay đổi lại các giá trị tương ứng tên các file mới vừa tạo ra.198 - . } Các hàm add().Phụ lục Việc tạo lập các SDE nằm trong hàm postCreate.globus.core.servicedata.getValue() + a).progtutorial.MathPortType "/> .setLastOp("NONE").setLastOp("Addition"). public void postCreate(GridContext context) throws GridServiceException { // Goi ham postCreate lop co so super. // Tao mot doi tuong MathDataType va khoi tao cac gia tri mathDataValue = new MathDataType(). substract() có thêm các lệnh mới để cập nhật lại SDE: public void add(int a) throws RemoteException { //Cac ham setLastOp(). ở đây chúng ta có thể để các giá trị khởi tạo cho SDE.add(mathDataSDE).impl.setValue(). // Dua cac gia tri vao doi tuong MathDataType mathDataSDE. mathDataValue.setNumOps(). } // Ham nay cap nhat MathData SDE tang so phep toan len 1 private void incrementOps() { int numOps = mathDataValue.setNumOps(0). mathDataValue.

ServiceDataValuesType serviceData = AnyHelper. su dung phuong thuc findServiceData cua GridServiceImpl ExtensibilityType extensibility = math.getNamesQuery("MathData")).URL(args[0]).println("Previous operation: " + mathData. // Lay GSR cua Math PortType MathServiceGridLocator mathServiceLocator = new MathServiceGridLocator().getNumOps()).getLastOp()).printStackTrace().wsdl"/> + Client truy xuất SDE //Khai bao import giong nhu tren //----------------------------public class Client { public static void main(String[] args) { try { // Lay tham so dong lenh URL GSH = new java. cơ chế Notification hoạt động theo sơ đồ sau với các bước: . MathDataType mathData = (MathDataType) AnyHelper.println("ERROR!").getMathServicePort(GSH).Phụ lục <parameter name="schemaPath" value="schema/progtutorial/MathService_sd/Math_service.findServiceData(QueryHelper. Cài đặt cơ chế Notification Như đã biết.class).199 - . MathPortType math = mathServiceLocator.out.println("Value: " + mathData. MathDataType.net. System.parseInt(args[1]).3.out.out.getValue()). // Lay SDE "MathData". }catch(Exception e) { System.out. e. } } } C. Cơ chế Notification liên quan mật thiết đến các SDE của service. // Goi phuong thuc cua service.println("# of operations: " + mathData.getAsServiceDataValues(extensibility). System. // Xuat cac gia tri cua SDE ra man hinh System. math. cơ chế Notification cho phép client biết được những gì đang xảy ra ở một Grid service instance.add(a). int a = Integer. Trong GT3.getAsSingleObject(serviceData.

GT3 chỉ hỗ trợ duy nhất dạng này. Dưới đây. notifyChange : Khi có sự thay đổi. chúng ta sẽ xem xét chi tiết kỹ thuật cài đặt notification này trong GT3 với MathService. Do đó file GWSDL ở trên chỉ cần sửa lại như sau: File : $GRIDSER_DEMO/schema/progtutorial/MathService_sd_notif/Math.200 - . MathService sẽ yêu cầu SDE tương ứng gửi thông báo cho các client đã yêu cầu. 3. chúng ta không cần cài đặt các phương thức này mà chỉ cần khai báo sử dụng lại portType NotificationSource có sẵn. 2.Khai bao su dung lai portType NotificationSource --> gwsdl:portType name="MathPortType" extends="ogsi:GridService ogsi:NotificationSource"> <!-.Phụ lục Hình 8-4 Sơ đồ hoạt động của cơ chế Notification trong GT3. Tất nhiên.<cac operation> --> <!-. Ở đây các giá trị của SDE được gửi về cho client. + Khai báo sử dụng Notification trong portType Thêm cơ chế Notification ảnh hưởng đến interface do chúng ta cần cung cấp một số phương thức mới ra bên ngoài. deliverNotification : SDE thông báo cho client. addListener : Các client yêu cầu service thông báo cho mình khi có sự thay đổi của SDE xác định trong lời gọi. portType này chứa đầy đủ các phương thức liên quan đến cơ chế Notification.java public void add(int a) throws RemoteException { .<serviceData> --> </gwsdl:portType> + Cài đặt Chúng ta chỉ cần thêm một lệnh duy nhất trong các hàm cài đặt. do đó client không cần thực hiện thêm bất cứ truy vấn nào nữa.gwsdl <!-. File : $GRIDSER_DEMO/org/globus/progtutorial/services/core/notifications/ impl/MathImpl. Có thể thấy đây là cơ chế “push” notification. 1.

println("Not listening anymore!").out.getManager().java //Cac khai bao import public class ClientListener extends ServicePropertiesImpl implements NotificationSinkCallback { public static void main(String[] args) { // Lay tham so dong lenh HandleType GSH = new HandleType(args[0]).ogsi.in. notifManager. // Cho nguoi dung nhan phim System. .addListener("MathData".read(). mathDataValue.getValue() + a). File: $GRIDSER_DEMO/org/globus/progtutorial/core/notifications/serverconfig. String sink = notifManager. // Ket thuc lang nghe notifManager.Phụ lục mathDataValue. phương thức này sẽ được Grid service gọi khi có sự thay đổi trong SDE của mình.201 - . System. System.out. notifManager.stopListening(). this).MAIN_THREAD).NotificationSourceProvider"/> <!—-Tuong tu tren --> </deployment> + Client Client ở đây phức tạp hơn so với các ví dụ trước. chỉ thêm một dòng mới.startListening(NotificationSinkManager. file : $GRIDSER_DEMO/org/globus/progtutorial/clients/MathService_sd_notif /ClientListener. dong duoi day duoc them moi --> <parameter name="operationProviders" value="org.impl. } + Đặc tả cài đặt Hoàn toàn giống như trước.. null.").wsdd <deployment <!—Khai bao tuong tu tren.setValue(mathDataValue.ogsa.removeListener(sink).. //Yeu cau thong bao cho cac client mathDataSDE.println("Listening.notifyChange(). } public ClientListener(HandleType GSH) throws Exception { // Bat dau dang ky va lang nghe MathService NotificationSinkManager notifManager = NotificationSinkManager. incrementOps(). ClientListener clientListener = new ClientListener(GSH). GSH.globus.setLastOp("Addition"). Client trong Java (hay đúng hơn là lớp nhận các thông báo) phải cài đặt phương thức deliverNotification. Mã nguồn client như sau.

impl.apache.Phụ lục } //Khi co thay doi trong SDE. + Đặc tả cài đặt Để có thể thấy rõ hơn về sự thay đổi. System.out.globus.MathPortType"/> <parameter name="schemaPath" value="schema/progtutorial/MathService/Math_service.println("# of operations: " + mathData. // Xuat ra man hinh System.stubs.7.202 - .org/axis/wsdd/providers/java"> <service name="progtutorial/core/first/MathService" provider="Handler" style="wrapped"> <parameter name="name" value="MathService"/> <parameter name="baseClassName" value="org.getValue()).getNumOps()). System.RPCURIProvider"/> . MathDataType.ham nay se duoc Grid service goi.core.apache. MathDataType mathData = (MathDataType) AnyHelper.getAsServiceDataValues(any).printStackTrace().handlers.org/axis/wsdd/" xmlns:java="http://xml.services.out. exc.MathImpl"/> <parameter name="className" value="org.getAsSingleObject(serviceData.first.MathService. lay gia tri moi ServiceDataValuesType serviceData = AnyHelper.class).globus.println("Previous operation: " + mathData.globus.progtutorial.println("ERROR!"). chúng ta không cần thay đổi portType cũng như cài đặt của nó. }catch(Exception exc) { System.out. } } } C. Mọi thứ cần làm là sửa lại file đặc tả cài đặt.wsdl"/> <!—Cac tham so chung --> <parameter name="allowedMethods" value="*"/> <parameter name="persistent" value="true"/> <parameter name="handlerClass" value="org.println("Current value: " + mathData.out. Cài đặt kỹ thuật tạo service động (Transient service) Làm cho một service có khả năng được tạo lập một cách động (chuyển service thành transient service) là một trong những việc dễ dàng nhất trong GT3. se xuat ra man // hinh cac gia tri cua SDE public void deliverNotification(ExtensibilityType any) throws RemoteException { try { // SDE da thay doi. chúng ta xem lại file WSDD cũ: <?xml version="1.0"?> <deployment name="defaultServerConfig" xmlns="http://xml.ogsa.progtutorial.getLastOp()).

File : $GRIDSER_DEMO/org/globus/progtutorial/services/core/first/serverdeploy.203 - . và className.apache.RPCURIProvider"/> <parameter name="className" value="org.org/axis/wsdd/" xmlns:java="http://xml.0"?> <deployment name="defaultServerConfig" xmlns="http://xml.core.ogsa.org/axis/wsdd/providers/java"> <service name="progtutorial/core/first/MathFactoryService" provider="Handler" style="wrapped"> <parameter name="name" value="MathService Factory"/> <parameter name="instance-name" value="MathService Instance"/> <parameter name="instance-schemaPath" value="schema/progtutorial/MathService/Math_service.Factory"/> <parameter name="baseClassName" value="org.MathService. bằng cách này.progtutorial.ogsi.impl.handlers.wsdl"/> <parameter name="operationProviders" value="org.globus.first.services. chúng ta sẽ khai báo một service factory tĩnh (persistent service) để chịu trách nhiệm tạo ra các MathService instance động (transient service).progtutorial.impl.globus. chúng ta đã thêm tiền tố “instance-” vào name.globus.ogsa.ogsi.FactoryProvider"/> <parameter name="factoryCallback" value="org.gridforum.stubs.wsdd <?xml version="1.DynamicFactoryCallbackImpl"/> </service> </deployment> Một chút khác biệt giữa 2 bản đặc đặc tả: + Trước hết.ogsi.wsdl"/> <parameter name="instance-baseClassName" value="org.globus. chúng ta cho container biết đây là những tham số để truyền vào khi tạo các instance MathService thông qua Factory.ogsa.apache. Lưu ý.ogsa.impl.impl. schemaPath. baseClassName.globus.GridServiceImpl"/> <parameter name="schemaPath" value="schema/ogsi/ogsi_factory_service.ogsi.Phụ lục </service> </deployment> Dưới đây là file WSDD đã sửa đổi theo mô hình tạo service động với một factory.globus.MathPortType"/> <!—Cac tham so chung --> <parameter name="allowedMethods" value="*"/> <parameter name="persistent" value="true"/> <parameter name="handlerClass" value="org.MathImpl"/> <parameter name="instance-className" value="org. .

gridforum. import import import import org. Factory factory = gridLocator. // Tao mot MathService instance moi va lay GSR cua no LocatorType locator = mathFactory. để ý lúc này. thêm các tiền tố “instance-” và sửa lại “khối tham số chung” + Đối với client Có thể sử dụng lại các client cũ.globus. }catch(Exception e) { System.progtutorial.progtutorial. chúng ta viết một client để demo khả năng tạo lập. File : $GRIDSER_DEMO/org/globus/progtutorial/clients/MathService/FactoryC lient. .GridServiceFactory. // Huy service instance sau khi su dung math. // Lay GSR cua MathService Factory OGSIServiceGridLocator gridLocator = new OGSIServiceGridLocator().printStackTrace().ogsa.Factory. org. // Goi phuong thuc Add() math.getMathServicePort(locator). Ở đây.ogsi. đơn giản chỉ gồm 2 bước.getFactoryPort(GSH). import java.204 - .MathService.getValue().progtutorial. + Có thể thấy. import org.utils.stubs. e.LocatorType. System. System.service.createService().destroy().out.globus. GridServiceFactory mathFactory = new GridServiceFactory(factory). và className tham khảo đến mã thực thi của Factory (cung cấp bởi GT3).ogsi.MathService. import org.net. int a = Integer. MathServiceGridLocator mathLocator = new MathServiceGridLocator().out.add(a).out.stubs.ogsi.MathServiceGridLocator. việc thêm khả năng tạo lập động cho bất kỳ service nào. baseClassName. org.clients.parseInt(args[1]).gridforum. MathPortType math = mathLocator.println("Current value: " + value). sử dụng và huỷ một service instance thông qua Factory.globus.java package org. org.Phụ lục + Sau đó chúng ta thêm các tham số mới vào “khối tham số chung”. schemaPath.println("Added " + a).net.OGSIServiceGridLocator.MathPortType.URL(args[0]). int value = math.URL. public class FactoryClient { public static void main(String[] args) { try { // Lay tham so dong lenh URL GSH = new java. không phải bất cứ mã thực thi nào do chúng ta tạo ra.globus.println("ERROR!").MathService.gridforum.

Warn.properties(Đây là file cấu hình Log của GT3) .apache.commons. Mô hình này đưa ra 6 cấp độ thông tin logging. Ở đây chúng ta sẽ thêm tính năng logging vào MathService.info("Addition invoked with parameter a=" + String..Log..Phụ lục } } } C...5. Kỹ thuật Logging (Ghi vết) Logging là một kỹ thuật quan trọng trong phát triển và bảo trì phần mềm.class. return value. các sự kiện ghi nhận có thể được kết xuất ra màn hình.warn("Adding zero doesn't modify the internal value!").LogFactory..info("getValue() invoked").. Error. Khi thêm tính năng logging. } } + Xem các kết xuất log Để xem kết xuất log của MathService. cho phép theo dõi các sự kiện đặc biệt của hệ thống. sử dụng lại ví dụ đầu tiên. if (a==0) logger.205 - .valueOf(a)). GT3 cung cấp khả năng logging theo mô hình Apache Jakarta Commons Logging (http://jakarta. // . Info. public void add(int a) throws RemoteException { logger.getLog(MathImpl.java // . chúng ta không cần sửa lại portType. Việc quyết định thông tin nào ở mức độ nào là tuỳ thuộc vào người lập trình ứng dụng. public class MathImpl extends GridServiceImpl implements MathPortType { // Tao logger cho class nay static Log logger = LogFactory. + Cài đặt File: $GRIDSER_DEMO/org/globus/progtutorial/services/core/logging/impl/M athImpl. chỉ cần thêm các lệnh cần thiết vào mã cài đặt portType. Trace.apache. } //.. import org. gồm Debug.logging. import org.apache. // ..org/commons/logging/). thêm dòng sau vào cuối file: $GLOBUS_LOCATION/ogsilogging. public int getValue() throws RemoteException { logger.commons. value = value + a.logging.getName()). Fatal.

MathImpl=console.globus. Các phương thức callback được gọi trong một số thời điểm xác định trong chu trình sống của service.progtutorial. chi can su dung lai cac ham cai san cua lop cha GridServiceImpl public void preCreate(GridServiceBase base) throws GridServiceException { super.. Tất cả Grid service đều mặc định ở trạng thái “không kích hoạt”(deactivated). logger.core. hàm này được gọi khi service được kích hoạt. va ghi ra file org.. Bảng 8-2 Các hàm callback trong GT3.preCreate(base).impl. Kỹ thuật quản lý chu trình sống của service (Lifecycle Management) Như đã biết việc quản lý chu trình sống của các service instance được tạo lập động rất quan trọng.java // . $GRIDSER_DEMO/org/globus/progtutorial/services/core/lifecycle/impl /MathImpl.services. GT3 hỗ trợ các hàm callback sau: Hàm preCreate postCreate activate deactivate preDestroy File : Thời điểm được gọi Khi quá trình tạo lập Grid Service bắt đầu.6. lúc này tất cả cấu hình chưa được nạp.logging.Phụ lục #Cho biet can xuat cac log o cap do Info ra man hinh console. theo dõi chu trình sống (lifecycle monitor). // Cai dat cac phuong thuc Callback.... // . Một cách đơn giản để quản lý chu trình sống bằng callback method (tương tự các hàm sự kiện khi lập trình với MS Windows).globus. } public void postCreate(GridContext context) throws GridServiceException { .. Khi service trở về trạng thái “không kích hoạt” Ngay trước khi service bị huỷ. + Kỹ thuật Callback method.206 - .in fo C. Ở đây chúng ta sẽ sử dụng lại các ví dụ trong phần transient service và logging để demo 2 kỹ thuật trên. co the sua #lai cac cap do khac.GridServiceCallback. import org. Khi service đã được tạo ra và cấu hình service đã được tạo lập.info("Instance is going to be created (preCreate)"). GridServiceCallback { // .ogsa. public class MathImpl extends GridServiceImpl implements MathPortType. GT3 cung cấp các công cụ hữu ích để quản lý các service như phương thức callback (callback method).

} public void activate(GridContext context) throws GridServiceException { super. import org. GT3 đưa ra giải pháp mới là Lifecycle Monitor.globus.class.GridContext. một interface với các hàm callback được gọi tại các thời điểm quan trọng trong thời gian sống của Grid service.apache.Log.getName()).info("Instance has been deactivated (deactivate)").globus. //Cac phuong thuc can callback public void create(GridContext context) throws GridServiceException { logger.lifecycle.info("Instance is going to be created (create)").logging. Dưới đây là một lớp lifecycle monitor đơn giản. logger.activate(context). import org.deactivate(context). import org. } } + Kỹ thuật Lifecycle Monitor Kỹ thuật Callback Method khá tốt. Chúng ta không cần kế thừa hay tham thảo interface này trực tiếp từ mã nguồn. rồi cho tất cả các lớp Grid Service khác thừa kế từ nó.info("Instance is going to be destroyed (preDestroy)"). import org.commons.logging. } public void preDestroy(GridContext context) throws GridServiceException { super.ogsa. } .globus.commons.postCreate(context). với kỹ thuật Callback Method. Tất nhiên đây có sự hạn chế như đã giới thiệu trong phần Operation Provider.info("Instance has been created (postCreate)").globus. Giả sử chúng ta có 2 hàm preCreate() và postCreate() và muốn sử dụng lại trong tất cả các Grid Service. import org.services.ogsa.GridServiceException.info("Instance has been activated (activate)"). Chúng ta chỉ cần thêm một dòng vào bản đặc tả triển khai yêu cầu lớp lifecycle monitor phải được gọi khi có sự kiện đặc biệt xảy ra.java package org.207 - . } public void deactivate(GridContext context) throws GridServiceException { super.progtutorial.core. chúng ta có thể dùng cùng một lifecycle monitor cho nhiều Grid service khác nhau. chỉ có cách đưa nó vào một lớp cha.LogFactory.apache.ogsa.preDestroy(context).impl. file : $GRIDSER_DEMO/org/globus/progtutorial/services/core/lifecycle/impl /MathLifecycleMonitor. logger. tuy nhiên nó khó có thể sử dụng lại. logger. logger.ServiceLifecycleMonitor.getLog(MathLifecycleMonitor. Một lifecycle monitor là một lớp triển khai interface ServiceLifeCycleMonitor. Do đó.Phụ lục super. public class MathLifecycleMonitor implements ServiceLifecycleMonitor { // Tao logger cho lop static Log logger = LogFactory.

} public void postSerializationCall(GridContext context) { logger. } } Và thêm dòng sau vào file đặc tả triển khai (.progtutorial. Các interface của một OGSI Service Bảng 0-3 tóm tắt các interface của một Grid Service được định nghĩa trong OGSI 1. } public void postCall(GridContext context) throws GridServiceException { logger.info("Instance is going to be destroyed (destroy)").WSDD) <parameter name="lifecycleMonitorClass" value="org.core.208 - . SDE interface Danh sách tên (QName) các interface của service.0: Interface Grid Service Loại Tên chi tiết Diễn giải Định nghĩa các ứng xử cơ bản của một service.info("Input parameters have been deserialized (postSerializationCall)").lifecycle.info("Service invocation has finished (postCall)").services. } public void preCall(GridContext context) throws GridServiceException { logger.globus.Phụ lục public void destroy(GridContext context) throws GridServiceException { logger.info("Service is going to be invoked (preCall)"). } public void preSerializationCall(GridContext context) { logger.impl.info("Input parameters are going to be deserialized (preSerializationCall)"). Danh sách tên (QName) các serviceDataName SDE của service (động và tĩnh) Vị trí (ogsi:LocatorType) của factoryLocator factory tạo ra service instance này Zero hoặc nhiều GSH của gridServiceHandle service instance Một hoặc nhiều GSR của gridServiceReference service instance .MathLifecycleMonitor"/> D.

Huỷ tường minh service instance. Tập các URI xác định lược đồ GSH sử dụng để phân giải thành GSR. findServiceData setServiceData requestTerminationAfter requestTerminationBefore destroy Thực hiện ánh xạ từ GSH sang GSR SDE handleResolverScheme Handle Resolver Phương thức Notification Source Trả về vị trí (ogsi:LocatorType) chức các GSR tương với GSH đươc yêu cầu. Cho phép các client đặt các yêu cầu cung cấp các thông báo SDE Tập các QName của SDE notifiableServiceDataName được yêu cầu thông báo mỗi khi có sự thay đổi.209 - . Tập các phương thức mở subscribeExtensibility rộng của phương thức subscribe findByHandle Phương thức Yêu cầu phải được thông báo mỗi khi có sự thay đổi của các SDE xác định trong notifiableServiceDataName. (modifiable= “true”) Yêu cầu thay đổi terminationTime của service instance. Định nghĩa phương thức phân phối các thông điệp subscribe . Cho phép thay đổi giá trị các SDE được phép thay đổi giá trị. Truy vấn thông tin của service. Phương thức này xác định thời gian kết thúc sớm nhất có thể được.Phụ lục findServiceDataExtensibility setServiceDataExtensibility terminationTime Phương thức Tập các phương thức mở rộng của phương thức findServiceData Tập các phương thức mở rộng của phương thức setServiceData Thời gian dự kiến kết thúc của service instance. Yêu cầu thay đổi terminationTime của service instance. Phương thức này xác định thời gian kết thúc trễ nhất có thể được.

Phụ lục Notification Sink Notification Subscription Định nghĩa phương thức phân phối các thông điệp SDE Không có Phân phối các thông báo. thức Cho phép client quản lý một nhóm các service. SDE Chứa vị trí memberServiceLocator (ogsi:LocatorType) của service instance được tham khảo đến.210 - . Factory Service Group Service Group Registration add Service Group Entry . Phương deliverNotification thức Xác định mối quan hệ giữa một cặp NotificationSource và NotificationSink SDE subscriptionExpression sinkLocator Phương Không có thức Cung cấp các cách thức chuẩn để tạo các service instance SDE Tập các phương thức mở createServiceExtensibility rộng của phương thức createService Phương createService Tạo service instance mới. Định nghĩa mối quan hệ thành viên của service instance với ServiceGroup. Biểu diễn thông tin về một entry thành viên của ServiceGroup. SDE Tập các phương thức mở addExtensibility rộng của phương thức add Tập các phương thức mở removeExtensibility rộng của phương thức remove Phương thức Tạo một ServiceGroupEntry và đưa vào ServiceGroup. Phương Không có thức Cho phép thêm và loại bỏ các Grid service instance trong các ServiceGroup. Mỗi service instance nếu muốn là thành viên của nhóm phải có một hoặc nhiều interface xác định trong SDE này. Loại bỏ ServiceGroupEntry remove thoả yêu cầu đưa vào. SDE Là một cấu trúc liên kết một membershipContentRule portType với một tập các QName.

Phụ lục content Phương thức Không có Cung cấp một số thông tin về service instance đang chứa. một khóa công khai đi kèm với subject. Một số thông tin có thể là địa chỉ email.211 - . Cấu trúc một chứng chỉ điện tử Một chứng chỉ điện tử bao gồm các phần chính : một subject (distinguished name (DN)) duy nhất trong không gian tên của hệ thống Grid xác định người hoặc đối tượng mà chứng chỉ đại diện. … Hình vẽ sau mô tả chi tiết cấu trúc một chứng chỉ điện tử: Hình 8-5 Cấu trúc một chứng chỉ điện tử. tên tổ chức. . * Việc lấy chứng nhận cho một người dùng (lưu ý có thể là người dùng thật sự hay host) trong Grid bao gồm các bước: 1. Bảng 8-3 Các interface của một OGSI Service E. chữ ký của CA và phần mở rộng chứa thông tin về cá nhân hay host được chứng nhận. và một bản yêu cầu chứng nhận chứa khoá công khai và các thông tin cần thiết theo yêu của CA. Người dùng Grid phát sinh một cặp khoá (khóa bí mật và khóa công khai tương ứng). phần nhận dạng CA thực hiện ký chứng nhận chứng chỉ.

Việc này có thể thực hiện bằng nhiều cách khác nhau. có thể thông qua điện thoại. Việc yêu cầu chứng thực trên trên đây chỉ cần thực hiện một lần duy nhất.212 - . Sau đó. 3. và gửi chứng chỉ này lại cho người dùng đã yêu cầu chứng nhận. Còn khóa bí mật được giữ lại và lưu trữ một cách cẩn thận.Phụ lục 2. CA (hay mở rộng ra là RA) thực hiện xác minh thông tin trong bản yêu cầu là đúng sự thật.… 4. tức là tìm cách chứng minh user gửi yêu cầu chính là chủ sở hữu của khóa công khai trong bản yêu cầu. CA tạo một chứng chỉ bằng cách ký tên vào bản yêu cầu. người dùng gửi bản yêu cầu đến CA. hay bằng con đường tiếp xúc trực tiếp giữa hai bên. . người dùng có thể dùng nó đế đại diện cho mình khi giao tiếp với bất kỳ hệ thống nào có yêu cầu chứng thực. email. Sau khi kiểm tra xong. từ khi nhận được chứng chỉ.

10/03/2004.globus. 20/06/2002. Foster. Argonne National Laboratory & University of Chicago. Proc. http://www. Ian Foster. Ian Foster. Ian Foster. Stuart Martin. K. What is the Grid? A Three Point Checklist. Warren Smith. P. The Anatomy of Grid. Sam Meder. Jeffrey M. Graham. A Directory Service for Configuring High-Performance Distributed Computations. Ian Foster.globus.org/ogsi-wg Mark Baker. The Physiology of the Grid . Version: 6/22/2002. Domenico Laforenza. http://forge. Nicholas Karonis. 10th IEEE International Symposium on High-Performance Distributed Computing (HPDC10). T. IEEE Press.An Open Grid Services Architecture for Distributed Systems Integration. Vanderbilt.globus. Supercomputer Applications. 27/06/2003.Phụ lục Tài liệu tham khảo [1] [2] [3] [4] Ian Foster. The Grid. J. Sam Meder. A Resource Management Architecture for Metacomputing Systems. Gregor von Laszewski.0. GLOBAL GRID FORUM. www. pp. 2001. Carl Kesselman. John Wiley & Sons Ltd. Frank Siebenlist. Carl Kesselman. Steven Tuecke. vol 1. CLUSTERWORLD. Kishimoto. Karl Czajkowski. Nick. Tuecke. CLUSTERWORLD volume 1 no 2 .org Karl Czajkowski. Ian Foster. Steven Fitzgerald. Czajkowski. Jarek Gawor. S.ggf. Frey. I. 2001.1. Carl Kesselman. The Open Grid Services Architecture. T. Rajkumar Buyya. 2001. GLOBAL GRID FORUM. Kesselman. I.213 - [5] [6] [7] [8] [9] [10] [11] [12] [13] . D. C. H. Steven Tuecke.gridforum. Carl Kesselman. Ian Foster. Steven Tuecke. Foster. 1-2 Ian Foster. Grids and Grid technologies for wide-area distributed computing. no. Grid Information Services for Distributed Resource Sharing. Open Grid Services Infrastructure (OGSI) Version 1.pp. Carl Kesselman. John Bresnahan.org Ian Foster.Carl Kesselman. Sandholm. 1997. Warren Smith. Security and Credential Management on the Grid. 1997. Steven Tuecke. . Carl Kesselman. http://www. 02/2004 Von Welch. D. Karl Czajkowski. 2002 Steven Fitzgerald. Maquire. Intl J. Snelling.http://www. Globus: A Metacomputing Infrastructure Toolkit. Gannon.org/projects/ogsawg S.org Sam Lang. 8-11.

Brown.org Richard Sharpe. IBM Corp. Norbert Bieberstein. IBM. . Sam Meder. Redbooks. www. Gene Tsudik.com Luis Ferreira. Bart Jacob. Olegario.com/redbooks Borja Sotomayor. www. Taking advantage of Grid computing for application enablement. Andreas Neukoetter.ibm. The Globus Toolkit 3 Programmer's Tutorial. How Grid infrastructure affects application design.globus.10.com/redbooks Luis Ferreira. Hernandez.5. www. Nasser Momtaheni. Globus Toolkit 3.globus. Seong (Steve) Yu. Martin C. www. 06/2003. www. RedBooks. 08/2003.00 for Ethereal 0. IBM Corp. Laura Pearlman.0 Quick Start.ibm. 2003-2004. Ethereal User's Guide: V2. Steven Tuecke. The Era of Grid Computing: A new standard for successful IT strategies.globus. Roman Strachowski. Fabiano Lucchese. Jonathan Armstrong. Paul Manesco. www. www.ibm. 09/2003. Security for Grid Services.ethereal. Carl Kesselman. Sean Slevin. Michael Brown. Jarek Gawor.ibm. Redbooks. Arun Thakore. 06/2003.org. RedBooks.509 Proxy Certificates for Dynamic Delegation.ibm. Bart Jacob. Karthik Subbian.moving to a standardized platform. 09/2003. Jean Lepesant. Ian Foster. A Security Architecture for Computational Grids. Steven Tuecke.com/redbooks Luis Ferreira.com/redbooks [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] . Olle Mulmo. Grid computing -. Ulf Lamping.ibm.com Viktors Berstis. Grid Services Programming and Application Enablement. IBM. IBM. Linda Lin. 06/2003. Fundamentals of Grid Computing.214 - . Jean-Yves Girard. Judi Bank. 01/2004. 05/2004.globus.org Bart Jacob. www. Srikrishnan Sundararajan.Phụ lục Laura Pearlman.IBM Corp. Introduction to Grid Computing with Globus. IBM Corp. 2004. 2002. 5th ACM Conference on Computer and Communication Security. Mike Kendzierski. Ian Foster. Huang RuoBo. Luis Ferreira. Carl Kesselman. RedBooks. Steven Tuecke. [14] Von Welch. www. X. IBM Corp. www. Jeff Mausolf. www. Frank Siebenlist.IBM Corp. Ed Warnicke.com/redbooks Bart Jacob.Viktors Berstis. Redbooks. Candice Gilzean. Redbooks. Redbooks. Enabling Applications for Grid Computing with Globus. Michael Brown.org.

pp.snort.org.01/1998 Detmar Liesen. Thomas H. SYBEX Inc. Kluwer Academic Publishers. www. 10/032005 .com Wenke Lee.org. Newsham. [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] Globus Alliance. Grid Computing and Distributed Systems (GRIDS) Laboratory. 10/2000. 03/2003 Snort Project.sybex.2. Stolfo.Phụ lục [27] Parvin Asadzadeh. www. Programming with GridFTP CLUSTERWORLD volume 2 no 9 . GridFTP: Protocol Extensions to FTP for the Grid.. SYBEX Inc. Tim Crothers. The University of Melbourne. Secure Networks Inc. 2002 James Stanger. Alan Christie. Global Grids and Software Toolkits: A Study of Four Grid Middleware Technologies.globus. Adaptive Intrusion Detection: a Data Mining Approach. CIW:Security Professional Study Guide. Snort Users Manual 2. IEEE SOFTWARE. 2000. Ptacek. 10/2004 Client Library. Mok. Argonne National Laboratory. Salvatore J. Patrick Lane. Deepa Nayar. Globus Aliance. 1-6. 2002. Defending Yourself: The Role of Intrusion Detection Systems. Julia Allen.215 - . Australia Matthew Strebe.. Network Security JumpStart. Kui W. 2002 William Allcock.. Evasion. www. 3/10/2003. Requirements for Enterprise-Wide Scaling Intrusion Detection Products. Timothy N.3. Srikumar Venugopal. and Denial of Service:Eluding Network Intrusion Detection. Chun Ling Kei. Rajkumar Buyya1.2 User’s Guide. John McHugh. Insertion. William Allcock. MDS ver 2.

Snort.virginia. 10.com http://www.WindowSecurity.com http://www. 12. 6.216 - .org http://legion.ch/gridcafe http://www.org http://www.org http://www.com http://www. 5. 14. 4. 8.globus.org http://www.com http://www.Phụ lục Các Website STT 1.Cisco. Tổ chức Globus Alliance IBM Global Grid Forum GridCafe NSF MIDDLEWARE INITIATIVE GRIDS UNICORE Legion Gridbus Ethereal WindowSecurity SecurityFocus Cisco Corp.org http://www. Snort Website http://www.com http://www.gridbus. 13.unicore.ibm.SecurityFocus. 3. 7.web.ethereal. 2. 11.nsf-middleware.grids-center.com .edu http://www.org http://gridcafe. 9.cern.globalgridforum.

Sign up to vote on this title
UsefulNot useful