1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và phát triển dịch vụ lưới ứng dụng cho bài toán so trùng các đồ thị trong tìm kiếm bằng ngữ nghĩa

104 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 104
Dung lượng 767,54 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

i Nguyễn Quang Hùng Luận văn thạc sỹ Công nghệ thông tin Trường Đại học Bách Khoa TP.HCM, Việt Nam TÓM TẮT Công nghệ Lưới the Grid, hay tính toán lưới Grid computing, là một hạ tầng kỹ

Trang 1

-oOo -

NGUYỄN QUANG HÙNG

LUẬN VĂN THẠC SỸ

TP.HCM, Tháng 12 Năm 2004 Chuyên ngành: CÔNG NGHỆ THÔNG TIN

Mã số ngành: 01.02.10

Trang 2

ĐẠI HỌC QUỐC GIA TP.HCM

Cán bộ hướng dẫn khoa học:

Cán bộ chấm nhận xét 1:

Cán bộ chấm nhận xét 2:

Tiến sỹ

Luận văn thạc sỹ được bảo vệ tại:

HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SỸ

TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày tháng năm 200

Trang 3

i

Nguyễn Quang Hùng Luận văn thạc sỹ Công nghệ thông tin Trường Đại học Bách Khoa TP.HCM, Việt Nam

TÓM TẮT

Công nghệ Lưới (the Grid), hay tính toán lưới (Grid computing), là một hạ

tầng kỹ thuật tính toán trong tương lai nhằm giải quyết vấn đề hợp tác chia xẻ tài

nguyên của các tổ chức ảo (Virtual Organization) Các tổ chức ảo được hình

thành từ các viện nghiên cứu, các doanh nghiệp, hay các quốc gia qua mối quan hệ chia xẻ các tài nguyên trong một Lưới Tài nguyên chia xẻ không đơn thuần là chia xẻ tập tin mà chúng còn là các hệ thống tính toán mạnh (siêu máy tính), các hệ thống lưu trữ (SAN) và các cảm biến thí nghiệm Tuy nhiên, việc xây dựng và sử dụng công nghệ này để phát triển các ứng dụng là vấn đề cần được nghiên cứu

Nhằm đón đầu xu hướng phát triển kiến trúc của Lưới theo hướng dịch vụ

lưới (grid service), luận văn sẽ nghiên cứu về Lưới để qua đó đề xuất một kiến

trúc hướng dịch vụ lưới Kiến trúc này có thể được áp dụng cho nhiều ứng dụng, trong đó có ứng dụng áp dụng giải thuật so trùng đồ thị trong tìm kiếm bằng ngữ nghĩa Môi trường Lưới sử dụng trong luận văn dựa trên hệ thống (tên là BK-GRID) có cấu hình gồm: i) nhiều nút lưới (grid-node) nối nhau bằng mạng LAN/WAN; ii) Globus Toolkit 3 được chọn làm Middleware cho các nút lưới

Ngoài ra, luận văn cũng đã khảo sát mô hình tính toán Vitual Hosting

Environment Master/Worker (VHE MW) cho ứng dụng trên Lưới, thiết kế giải

thuật phân bố các yêu cầu của client gởi đến cho các nút lưới và song song hóa ngay chính giải thuật so trùng đồ thị[4] Kết quả cuối cùng của toàn hệ thống khuyến khích việc triển khai công nghệ Lưới và Globus Toolkit làm nền tảng cho các hệ thống tính toán chia xẻ tài nguyên trong tương lai

Trang 4

ii

Thesis for Master Degree in Information Technology

Ho Chi Minh city University of Technology, Viet Nam

ABSTRACT

The Grid (or called Grid computing) is a new computing infrastructure doing coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations A virtual organization (VO) includes many individuals or institutes coordinate sharing resources The sharing resource maybe Supercluster, SuperComputer, data storage system, data sources… However, developing a Grid-enabled application is still a research problem

For getting ahead of Grid development base on grid services, this thesis will research on the Grid and propose a grid service-oriented architecture We applied the grid service-oriented architecture to develop some real grid services for semantic search application GraphMatching grid service is a grid service that implemented graph matching algorithm In this system grid fabric is a network of PCs and Globus Tookit version 3.x is Middleware The service-oriented system uses the VHE Master/Worker computing model in which a service is started at a suitable grid-node Some load balancing algorithms are developed to share matching graphs requests between grid-nodes in a VO In additional, the parallel algorithm of matching graphs based on multi-thread is presented

Trang 5

iii

Lời cảm ơn

“Uống nước nhớ nguồn”

Tục ngữ Việt Nam

Em xin chân thành bày tỏ lòng kính trọng và gởi lời cảm ơn sâu sắc đến

Thầy TS Nguyễn Thanh Sơn đã trực tiếp hướng dẫn em thực hiện luận văn

này! Thầy đã tận tình chỉ dẫn em từng bước nghiên cứu quan trọng cho Luận văn nghiên cứu

Em cũng xin cám ơn sâu sắc Thầy TS Thoại Nam đã dành nhiều thời

gian quý báo giúp em thực hiện luận văn này! Thầy đã tậm tâm dạy cho em nhiều kinh nghiệm quý báo thực hiện luận văn, cũng như sự chỉ dạy những điều

Con xin cảm ơn Cha mẹ đã khổ cực nuôi dưỡng con thành tài!

Trang 6

iv

Tôi xin cam đoan luận văn này là công trình do chính bản thân tôi đã nghiên cứu và làm việc vất vả để hoàn thành, không sao chép lại bất kỳ luận văn nào

Tôi xin chịu hoàn toàn hình thức kỷ luật nếu vi phạm sao chép luận văn của người khác

Trang 7

v

Abstract

Lời cảm ơn

Lời cam đoan

Mục lục v

Danh mục các ký hiệu, các chữ viết tắt ix

Danh mục các bảng x

Danh mục các hình xi

Thuật ngữ Anh – Việt đối chiếu xii

CHƯƠNG 1 1

GIỚI THIỆU 1

1.1 ĐỘNG LỰC NGHIÊN CỨU 1

1.1.1 Động lực nghiên cứu từ công nghệ Lưới 1

1.1.2 Động lực nghiên cứu từ tìm kiếm bằng ngữ nghĩa 4

1.2 GIỚI THIỆU VỀ CÁC KHÁI NIỆM TRONG CÔNG NGHỆ LƯỚI 5

1.2.1 Phân loại tính toán lưới 5

1.2.2 Khái niệm về dịch vụ lưới (grid service) 5

1.2.3 Các dự án về Lưới trên thế giới 5

1.3 MỤC TIÊU CỦA LUẬN VĂN 6

1.4 TỔNG QUAN CỦA LUẬN VĂN 7

1.4.1 Hệ thống tính toán lưới BK-GRID 7

1.4.2 Bài toán ứng dụng giải thuật so trùng các đồ thị trong tìm kiếm bằng ngữ nghĩa 8

1.4.3 Kiến trúc hướng dịch vụ lưới cho ứng dụng so trùng đồ thị trong tìm kiếm bằng ngữ nghĩa 11

1.5 PHƯƠNG PHÁP LUẬN CỦA LUẬN VĂN 12

1.5.1 Nội dung nghiên cứu 12

1.5.2 Phương hướng giải quyết vấn đề 12

1.6 NHỮNG ĐÓNG GÓP CHÍNH 13

1.7 CẤU TRÚC LUẬN VĂN 15

CHƯƠNG 2 16

CÁC NGHIÊN CỨU LIÊN QUAN 16

Trang 8

vi

2.1.3 Open Grid Service Infrastructure – OGSI[12] 18

2.1.4 Dịch vụ lưới (Grid Service) [2][8][12] 19

2.1.5 Grid Service Data Element – SDE [12] 20

2.1.6 Grid Service Handle, Grid Service Reference[12] 21

2.1.7 Globus Toolkit 3 [24] 21

2.1.8 Mô hình lập trình phía server 24

2.1.9 Mô hình lập trình phía client 26

2.2 SỬ DỤNG OGSA ĐỂ TẠO CÁC TỔ CHỨC ẢO KHÁC NHAU[8] 26

CHƯƠNG 3: 30

KIẾN TRÚC HƯỚNG DỊCH VỤ CỦA ỨNG DỤNG ÁP DỤNG GIẢI THUẬT SO TRÙNG CÁC ĐỒ THỊ TRONG TÌM KIẾM BẰNG NGỮ NGHĨA 30

3.1 GIỚI THIỆU 30

3.2 CÁC YÊU CẦU ĐỐI VỚI BK-GRID 31

3.2.1 Yêu cầu về một kiến trúc phần mềm hướng dịch vụ lưới 31

3.2.2 Yêu cầu về cân bằng tải giữa các nút lưới 31

3.2.3 Yêu cầu về song song hóa bài toán so trùng các đồ thị trong tìm kiếm bằng ngữ nghĩa 32

3.3 KIẾN TRÚC HƯỚNG DỊCH VỤ LƯỚI CỦA ỨNG DỤNG SO TRÙNG CÁC ĐỒ THỊ TRONG TÌM KIẾM BẰNG NGỮ NGHĨA TRÊN BK-GRID 33

3.3.1 Giới thiệu 33

3.3.2 Thiết Kế 34

3.4 KẾT LUẬN 37

CHƯƠNG 4 38

MÔ HÌNH VHE MASTER/WORKERS VÀ CÁC GIẢI THUẬT CÂN BẰNG TẢI TRÊN CÁC NÚT LƯỚI 38

4.1 GIỚI THIỆU 38

4.2 MÔ HÌNH VHE MASTER/WORKERS 39

4.2.1 Giới thiệu 39

4.2.2 Mô hình 39

4.3 GIẢI THUẬT PHÂN BỐ TẢI TÍNH TOÁN LÊN CÁC NÚT LƯỚI 41

Trang 9

vii

4.3.4 Cân bằng tải bằng chiến lược lựa chọn nút lưới có tài nguyên thích hợp 48

4.4 KẾT LUẬN 49

CHƯƠNG 5: 50

HIỆN THỰC SONG SONG CHO GIẢI THUẬT SO TRÙNG CÁC ĐỒ THỊ 50

5.1 GIẢI THUẬT SO TRÙNG CÁC ĐỒ THỊ TRONG TÌM KIẾM BẰNG NGỮ NGHĨA[4] 50

5.2 SONG SONG HÓA GIẢI THUẬT SO TRÙNG ĐỒ THỊ TRÊN TẬP HỢP CÁC ĐỒ THỊ MẪU 52

CHƯƠNG 6 55

HIỆN THỰC CÁC DỊCH VỤ LƯỚI CHO ỨNG DỤNG SO TRÙNG CÁC ĐỒ THỊ TRONG TÌM KIẾM BẰNG NGỮ NGHĨA 55

6.1 GIỚI THIỆU 55

6.2 HIỆN THỰC DỊCH VỤ VOGRAPHMATCHING 56

6.2.1 Tác vụ VOGraphMatching::MatchGraph() 58

6.2.2 Cấu hình dịch vụ VOGraphMatching 60

6.3 HIỆN THỰC DỊCH VỤ GRAPHMATCHING 62

6.3.1 Tác vụ Graphrepository::Matchgraph() 62

6.3.2 Lấy Dữ Liệu Từ Dịch Vụ GraphRepository – LoadGraphResource() 65

6.3.3 Song song hoá giải thuật so trùng đồ thị – ParallelMatching() 66

6.3.4 Cấu Hình Dịch Vụ GraphMatching 67

6.4 HIỆN THỰC DỊCH VỤ GRAPHREPOSITORY 68

6.4.1 Phương Thức GraphRepository::getListResourceGraph 68

6.4.2 Cấu Hình Dịch Vụ GraphRepository 70

6.5 KẾT LUẬN 70

CHƯƠNG 7 71

KẾT QUẢ THỬ NGHIỆM 71

Trang 10

viii

TÀI LIỆU THAM KHẢO 89

Trang 11

ix

OGSI Open Grid Service Infrastructure

VHE Master/Workers Virtual Hosting Environment Master/Workers

Trang 12

x Bảng 2- 1: Chuẩn OGSI mô tả các khái niệm chính yếu 19

Bảng 3- 1: Liệt kê các porttype của hệ thống 36

Trang 13

xi

Hình 1- 2a: Một đồ thị truy vấn biểu diễn câu truy vấn tìm sản phẩm may 9

Hình 1- 2b: Một đồ thị mẫu biểu diễn sản phẩm áo sơ mi 9

Hình 1- 3: Mô hình ý tưởng cho ứng dụng so trùng 11

Hình 2- 1: Tính triết lý của Lưới 17

Hình 2- 2: Kiến trúc nhân của Globus Toolkit 3 22

Hình 2- 3: Các dịch vụ nhân của Globus Toolkit 3 23

Hình 2- 4: Sơ đồ lớp phía server 25

Hình 2- 5: Sơ đồ lớp phía client 26

Hình 2- 6: Virtual Hosting Environment 27

Hình 3- 1: Kiến trúc hướng dịch vụ của ứng dụng so trùng các đồ thị 35

Hình 4- 1: Mô hình VHE Master/Worker 40

Hình 4- 2: Lưu đồ của mô hình VHE Master/Workers .41

Hình 4- 3: Lược đồ trình tự cho thủ tục truy vấn thông tin hệ thống 44

Hình 4-4: Lược đồ trình tự cho quá trình xử lý client 47

Hình 5- 1: Mô hình Master/Workers cho việc song song hóa giải thuật so trùng 53

Hình 6- 1: Cấu trúc dịch vụ lưới VOGraphMatching 57

Hình 7- 1: Một đồ thị truy vấn biểu diễn câu truy vấn về một sản phẩm may mặc bằng cotton, có túi nhỏ có nút, có nhãn hiệu 72

Hình 7- 2a: Một đồ thị mẫu mô tả cái áo “tee shirt”của Việt Tiến được làm bằng chất liệu cotton, có túi nhỏ với nút, và có huy hiệu 73

Hình 7- 2b: Một đồ thị mẫu mô tả cái áo “shirt”của Việt Tiến được làm bằng chất liệu “cotton”, có túi nhỏ với nút, và có huy hiệu 73

Hình 7- 2c: Một đồ thị mẫu mô tả cái áo “shirt”của Việt Tiến được làm bằng chất liệu “silk”, có túi nhỏ với nút, và có huy hiệu 74

Hình 7- 2d: Một đồ thị mẫu mô tả cái áo “shirt”của Việt Tiến được làm bằng chất liệu “kaki”, có túi nhỏ với nút, và có huy hiệu 74

Hình 7- 3a: Thử nghiệm 1: cân bằng tải bằng chiến lược xoay vòng 81

Hình 7- 3b: Thử nghiệm 1: cân bằng tải bằng chiến lược tìm nút lưới tốt nhất 81

Hình 7- 4a: Thử nghiệm 2: cân bằng tải với chiến lược tìm nút lưới tốt nhất có điểm phạt trên từng yêu cầu từ client 82

Hình 7- 4b: Thử nghiệm 2: cân bằng tải với chiến lược xoay vòng 82

Trang 14

xii

nguyeân)

Open Grid Service Architecture OGSA

Open Grid Service Infrastructure OGSI

Web Service Description Language WSDL

Virtual Hosting Environment VHE

Virtual Hosting Environment

Trang 15

Chương 1

GIỚI THIỆU

Chương này bao gồm các nội dung giới thiệu những động lực nghiên cứu, mục tiêu của luận văn, kiến trúc hệ thống BK-GRID dự định phát triển, phương pháp thực hiện đề tài và những đóng góp quan trọng của luận văn

1.1 ĐỘNG LỰC NGHIÊN CỨU

Công nghệ Lưới (the Grid) và việc xây dựng phương pháp tìm kiếm thông tin dựa trên nghĩa của câu truy vấn (Semantic search) là hai chủ đề lớn thu hút sự

quan tâm rất lớn của các nhà khoa học, các doanh nghiệp và các quốc gia Hiện

nay, sự định hình và phát triển ứng dụng theo kiến trúc hướng dịch vụ lưới vẫn còn là vấn đề cần nghiên cứu Luận văn này ra đời nhằm mục đích lắp vào

khoảng trống này

1.1.1 Động lực nghiên cứu từ công nghệ Lưới

Thuật ngữ tính toán lưới (Grid Computing) được gọi với tên thống nhất trong các chuẩn hiện nay là Lưới (the Grid) Thuật ngữ Lưới (The Grid) được

dùng để chỉ định một hạ tầng kỹ thuật tính toán phân bố cho các ứng dụng khoa học và kỹ thuật phức tạp[1][2] Các ứng dụng này cần sự tính toán phân bố trên

Trang 16

nhiều hệ thống tính toán lớn (siêu máy tính), (có thể) trên tập dữ liệu lớn và phân bố ở nhiều tổ chức

Lưới bao gồm nhiều tổ chức ảo (Virtual Organization - VO)[1][2] Mỗi tổ chức ảo này bao gồm tập hợp các cá nhân hoặc các tổ chức được hình thành từ các quy luật chia xẻ tài nguyên phức tạp Ở mỗi tổ chức có một chính sách và cơ chế riêng nên không thể tập trung tất cả tài nguyên lại một vị trí Tài nguyên có thể là các siêu máy tính, phần mềm, hoặc dữ liệu… phụ thuộc vào các chính sách và chiến lược lựa chọn tài nguyên khác nhau Vấn đề lựa chọn chiến lược

nào thích hợp trên Lưới hiện đang được nghiên cứu Luận văn sẽ khảo sát vấn đề

chọn chiến lược sử dụng tài nguyên này

Kiến trúc Lưới (Grid architecture)[1][2] và framework thống nhất cho Lưới là Open Grid Services Architecture (OGSA)[8][2] (mới nhất là version 1.0) được hình thành và phát triển Kiến trúc Lưới này được định nghĩa trong sự so sánh với kiến trúc Internet[1] Kiến trúc bao gồm năm tầng: Faric, Connectivity, Resource, Collective và Application (xem hình 1-1 bên dưới) Ở các tầng này là các giao thức và các hàm API (Application Programming Interface) chuẩn Tuy nhiên để có thể tích hợp dễ dàng giữa các hệ thống phân bố cũng cần có một sự trừu tượng thống nhất mức cao cho khái niệm tài nguyên Bởi lẽ đó kiến trúc hướng dịch vụ OGSA[8] là một framework thống nhất cho việc tích hợp các hệ thống phân bố

được phát triển OGSA bao gồm một tập các loại dịch vụ lưới (grid service)[2][8][12]

cơ bản nhất giúp xây dựng các ứng dụng phức tạp hơn Bổ trợ cho OGSA là chuẩn Open Grid Service Infrastructure (OGSI)[12] Chuẩn OGSI đặc tả: i) chi tiết giao diện (mô tả chi tiết các tác vụ – operation) mà những dịch vụ lưới chuẩn trong OGSA; ii) ngữ nghĩa và cách tương tác với các dịch vụ lưới; iii) quản lý thời gian sống của từng thực thể dịch vụ lưới (grid service instance)…

Trang 17

Globus ToolkitTM đã trở thành môi trường de-facto hiện thực phổ biến cho Lưới (trước cả các chuẩn OGSA, OGSI) Các thành phần cơ bản trong Globus Toolkit được rút kết hình thành nên OGSA và OGSI Đặc biệt Globus Toolkit 3 xem là sự thành công vì hiện thực mã nguồn mở cho phiên bản OGSA/OGSI version 1.0 Globus Toolkit 3 hiện nay là túi các dịch vụ, có các dịch vụ OGSA chuẩn lẫn các giao thức và hàm API để xây dựng các dịch vụ lưới Hiện Globus Toolkit đang trên đà phát triển sang WSRF (Web Service Resource Framework) WSRF là một sự cải tiến của OGSA/OGSI[15] Chính vì Globus Toolkit phổ biến

rộng nên luận văn chọn nó làm middleware cho các nút lưới trong một Lưới

Hiện tại, việc phát triển ứng dụng tương thích với Lưới vẫn còn khá vất vả Triển khai được một môi trường Lưới tương thích chuẩn OGSA là một khó khăn nhiều (nhất là trong thời điểm viết luận văn) do các gói phần mềm Globus Toolkit version 3.2 vừa mới công bố và thiếu tài liệu hướng dẫn Hiện tại chúng

ta thiếu môi trường lập trình, cài đặt và gỡ rối cho các dịch vụ lưới Hơn nữa việc mô hình hóa một ứng dụng dưới kiến trúc hướng dịch vụ lưới là điều hoàn toàn

Application

Transport Internet Link

Trang 18

mới cần được nghiên cứu Luận văn sẽ đề xuất một phương pháp phát triển dịch

vụ lưới dễ dàng hơn

1.1.2 Động lực nghiên cứu từ tìm kiếm bằng ngữ

nghĩa

Internet bùng nổ với hàng tỉ trang web hiện nay chứa một kho thông tin cực kỳ khổng lồ mà không ai có khả năng nắm bắt hết Do vậy những cỗ máy tìm kiếm (search engine) trên Internet như của Google và Microsoft MSN đang tích cực đẩy nhanh các công nghệ tìm kiếm nhanh hơn và chính xác hơn Ví dụ khi gõ vào “apple” thì Google đưa ra link đến www.apple.com trước các link về trái cây Hoặc dự án truy cập qua tên, nghĩa là chỉ cần gõ New York thay vì URL thì cũng có thể trỏ đến trang web của thành phố này…

Để đạt được độ chính xác cao hơn phương pháp tìm kiếm bằng từ khóa

(keyword based search), hàng loạt các phương pháp mới ra đời trong đó có một

phương pháp là áp dụng việc so trùng các đồ thị RDF trong tìm kiếm bằng ngữ

nghĩa[4] Tuy chỉ dừng lại ở mức bản thảo (proposal) và chưa được kiểm nghiệm trên miền ứng dụng lớn, nhưng phương pháp so trùng đồ thị này đã được chứng minh

Dễ nhận thấy rằng, ứng dụng tìm kiếm thông tin sẽ phục vụ cho rất nhiều người dùng thông qua mạng Internet và kho dữ liệu có thể sẽ phải phân bố trên nhiều server Do vậy ứng dụng tìm kiếm này hoàn toàn thích hợp cho việc triển khai ứng dụng dưới dạng các dịch vụ lưới trên môi trường Lưới gồm nhiều server

kết nối nhau Luận văn sẽ sử dụng giải thuật so trùng các đồ thị RDF trong việc

tìm kiếm bằng ngữ nghĩa [4] làm bài toán để minh họa cho mô hình kiến trúc hướng dịch vụ lưới sẽ đề ra

Trang 19

1.2 GIỚI THIỆU VỀ CÁC KHÁI NIỆM

TRONG CÔNG NGHỆ LƯỚI

1.2.1 Phân loại tính toán lưới

Chúng ta có thể phân loại tính toán lưới theo ba hướng chính:

i Computational grid: chia một công việc tính toán ra làm nhiều job chạy song song trên Lưới Việc tính toán phân bố này làm giảm thời gian tính toán và tăng hiệu suất toàn hệ thống Thông thường, một master system chia nhỏ tập dữ liệu và phân phát đến các hệ thống trong Lưới đang đợi làm việc Mỗi hệ thống này khi thực thi xong nhiệm vụ thì gởi trả kết quả về master system, và nó sẽ tổng hợp lại các kết quả thành một giải pháp tổng thể

ii Scavening grid: tận dụng các chu kỳ CPU rảnh của các máy

iii Data grid: cung cấp một giao diện thống nhất, thông qua đó dữ liệu sẽ được truy vấn (query), quản lý và bảo mật mà không phụ thuộc vào hệ quản trị cơ sở dữ liệu bên dưới (Database Management System) như là: Oracle, Microsoft SQL, MySQL…, độc lập với hệ thống quản lý file của hệ điều hành

1.2.2 Khái niệm về dịch vụ lưới (grid service)[2][8][12]

Dịch vụ lưới (grid service) là một dịch vụ Web tương thích chuẩn OGSA

1.2.3 Các dự án về Lưới trên thế giới

Trên thế giới đã có nhiều dự án Lưới như:

Trang 20

 Portals khoa học: i) chỉ dẫn làm thế nào để tạo các Grid portals; ii) mã nguồn mở xây dựng các Grid portal; iii) phòng thí nghiệm sinh học portal; iv) NASA portal

 Tính toán phân bố: bao gồm nhiều High-Speed Workstation, mạng và

PC kết nối mạng lại với nhau tạo nên các tài nguyên tính toán Dự án Entropia Inc’s FightAIDSAtHome bao gồm nhiều hơn 30.000 máy tính để phân tích thuốc điều trị bệnh AIDS Dự án NUG, bao gồm nhiều nhà khoa học Ý và Mỹ chia xẻ các siêu máy tính giải quyết bài toán tối ưu hoá NUG30, trung bình có 630 đến 1.006 máy tính với 42.000 CPU-days

 Phân tích dữ liệu lớn: nhiều bài toán cần phân tích dữ liệu rất lớn (ví dụ dữ liệu dự báo thời tiết) Những bài toán này có sự phân bố dữ liệu, lưu trữ phân bố và tính song song vốn có của các thủ tục phân tích trở thành rất thích hợp chuyển sang dạng Lưới Ví như trong LHC, trung tâm vật lý năng lượng cao của Châu Âu, đã phân tích hàng Petra-bytes dữ liệu thí nghiệm cần dùng hơn hàng chục ngàn processor và hàng Tera-bytes dữ liệu trung gian Hơn nữa vì lý do bảo mật, chính trị và công nghệ không cho phép tập trung tất cả tài nguyên này lại một nơi

1.3 MỤC TIÊU CỦA LUẬN VĂN

Gồm các mục tiêu sau:

1 Nghiên cứu về tính toán lưới

i Đưa ra sự định hình và phát triển ứng dụng theo kiến trúc hướng dịch vụ lưới

ii Triển khai hệ thống tính toán lưới gọi là BK-GRID Hệ thống này bao gồm nhiều nút lưới Mỗi nút lưới là một máy đơn Hơn nữa, thiết kế cũng cho phép mở rộng mỗi nút lưới là một nhóm máy tính

Trang 21

liên kết chặt (Supercluster); và việc thêm hay bớt các nút lưới là động

2 Luận văn sẽ đề xuất một phương pháp phát triển dịch vụ lưới dễ dàng

3 Thiết kế các dịch vụ lưới để hiện thực một ứng dụng mẫu theo các hướng dịch vụ lưới sẽ đề ra Ứng dụng mẫu này là ứng dụng so trùng các đồ thị trong tìm kiếm bằng ngữ nghĩa Hệ thống này phải bao gồm nhiều dịch vụ xây dựng theo kiến trúc hướng dịch vụ lưới để thay đổi nhiều giải thuật so trùng

4 Khảo sát vấn đề chọn chiến lược sử dụng tài nguyên trên Lưới

5 Cân bằng tải cho các nút lưới có sử dụng thông tin hệ thống (về CPU, bộ nhớ và các file system) theo vài chiến lược như xoay vòng (round robin)…

1.4 TỔNG QUAN CỦA LUẬN VĂN

1.4.1 Hệ thống tính toán lưới BK-GRID

Hệ thống BK-GRID là một môi trường tính toán lưới Nó cho phép hosting các dịch vụ lưới lên các nút lưới Tại mỗi nút lưới sẽ cài đặt Globus Toolkit 3 như là middleware chuẩn (lý do đã đề ra trong phần 1.1) Nếu nút lưới là một nhóm các máy tính liên kết chặt (Supercluster) thì Supercluster sẽ có một hệ thống quản lý lập lịch riêng (như Condor, hoặc Sun Grid Engine, Lamboot, PVM…) Khi cần thực thể của dịch vụ lưới sẽ tạo và gởi các công việc (job) chạy trên Supercluster thông qua hệ thống quản lý lập lịch này Hiện tại luận văn đã viết sẳn thư viện cho phép gọi các chương trình MPI chạy Trong tương lai có thể mở rộng luận văn nhằm chuyển các công việc cần xử lý của mỗi thực thể dịch vụ lưới lên Supercluster Hệ thống của luận văn cho phép thêm hay bớt các nút lưới động Giải thuật sắp xếp các nút lưới theo thông tin tải CPU và dung lượng bộ

Trang 22

nhớ RAM là giải thuật quicksort Trong chương 3, hình 3-1 sẽ minh họa sơ đồ triển khai dịch vụ lưới trên hệ thống BK-GRID này

1.4.2 Bài toán ứng dụng giải thuật so trùng các đồ thị

trong tìm kiếm bằng ngữ nghĩa

Theo giải thuật so trùng các đồ thị[4], đầu tiên các tác giả thu gom thông tin từ một miền ứng dụng nào đó từ Web, rồi xây dựng kho dữ liệu đồ thị RDF (Resource Description Framework[28]) mẫu Khi người dùng nhập vào câu truy vấn, câu này sẽ được chuyển đổi sang dạng đồ thị RDF (gọi là đồ thị truy vấn) (Hình 1-2a và 1-2b bên dưới biểu diễn một đồ thị truy vấn mô tả câu truy vấn tìm đồ may mặc có túi và một đồ thị mẫu dự tuyển mô tả sản phẩm áo sơ mi) Bước kế tiếp là tính độ giống nhau (similarity) giữa đồ thị truy vấn và mỗi đồ thị mẫu thích hợp (trong kho dữ liệu) Độ giống nhau sẽ dựa trên ontology (theo mối quan hệ phân cấp) trên các nút (node) và các cung (arc) Công thức tính độ giống nhau được diễn tả trong tài liệu[4] Đã có nhiều công trình nghiên cứu đưa giải thuật tạo đồ thị này tự động, ví dụ: trong [23] đã đưa ra cách học máy (machine-learning) cho phép tạo các đồ thị dạng này một cách tự động

Các tác giả [4] cũng tránh việc NP-complete (vấn đề Maximum Subgraph

Matching) trong quá trình so trùng bằng cách: đề nghị đồ thị này phải có điểm

nhập (entry of graph) [4] và không có vòng Khái niệm điểm nhập của đồ thị cho biết nút bắt đầu quá trình so trùng trên đồ thị (thông tin xác định đầu vào của đồ thị nhằm hướng dẫn quá trình so trùng) Trong mỗi đồ thị mẫu (resource graph) thì nút được xem như là entry of graph Tương tự, mỗi đồ thị truy vấn cũng sẽ có entry của nó Mỗi nút (node) hay cung (arc) trên từng đồ thị là có tên Tên của chúng có mang thông tin Tên nút là một khái niệm (ví dụ: “shirt”, “dress”,

“pants”…) Tên cung chỉ mối quan hệ giữa hai nút (ví dụ: “part”, “material”…)

Trang 23

Khái niệm nút/cung và concept/arc trong đồ thị ý niệm (Conceptual Graph[24]) tương tự nhau

Trong quá trình so trùng luôn cần tham khảo một tự điển từ vựng (lexical) như là WordNet Tự điển WordNet tổ chức các danh từ, động từ, tính từ và các trạng từ tiếng Anh vào tập đồng nghĩa Mỗi tập biểu diễn một khái niệm Giữa

Garment

Cotton material

Button

Pouch part

accompany

Emblem part

accompany Brand

Hình 1-2a: Một đồ thị truy vấn biểu diễn câu truy vấn về một sản phẩm may mặc bằng cotton, có túi nhỏ có nút, có nhãn hiệu

Shirt: URL

Cotton material

Button

Pocket part

accompany

Crest part

accompany Brand

Hình 1-2b: Một đồ thị mẫu dự tuyển cho giải thuật so trùng các đồ thị trong tìm kiếm bằng ngữ nghĩa Đồ thị này miêu tả thông tin về sản phẩm “shirt”

Trang 24

các khái niệm có thể có mối quan hệ subsumtive như là giữa shirt, t-shirt, shirt, jersey… Ví dụ bên dưới minh hoạ cho mối quan hệ subsumptive trong WordNet, giữa “shirt” và “t-shirt, tee shirt, jersey”:

tee-Jersey, T-shirt, tee shirt

=> shirt

=> garment

=> clothing, clothes, apparel, vesture, wearing apparel, wear

Ý nghĩa của việc sử dụng các mối quan hệ từ của tự điển WordNet là cho phép truy tìm các thông tin có liên quan nhau Ví dụ khi tìm sản phẩm “shirt” thì không chỉ những thông tin về “shirt” mà cả những thông tin sản phẩm mô tả

“jersey” hay “tee shirt” cũng được so trùng, cho dù là chúng khác nhau về dạng từ Mặc khác, tự điển này sẽ được sử dụng để cho biết độ giống nhau về nghĩa của hai khái niệm thông qua một công thức tính toán hợp lý Công thức này trình bày trong [4]

Giải thuật so trùng các đồ thị trong [4] còn đề nghị cách phân hoạch nhằm làm giảm không gian tìm kiếm Giới hạn không gian tìm kiếm bằng cách chỉ chọn

ra những đồ thị mẫu có khả năng gần giống đối tượng cần tìm Vì mỗi đồ thị truy vấn hay đồ thị mẫu đều có bắt đầu bằng một nút thể hiện tên của thực thể cụ thể (gọi là điểm nhập – entry of graph) Ví dụ tên “shirt”, “tee-shirt”, “pants”… Do vậy các đồ thị mẫu nên được gom theo từng loại sản phẩm, chủ đề…; đồng thời đánh chỉ mục cho khái niệm ở điểm nhập của đồ thị truy vấn Kết quả nên được sắp thứ tự theo độ giống nhau trước khi trả về cho người sử dụng nhằm tăng tính tiện dụng

Giải thuật tuần tự cho quá trình so trùng các đồ thị RDF trong tìm kiếm bằng ngữ nghĩa được [4] chứng minh có độ phức tạp là hàm đa thức Không mất tính tổng quát, giả sử đồ thị truy vấn và đồ thị mẫu đều là các cây có r-nhánh;

Trang 25

chiều cao tối đa là i; và số cạnh là n Khi r << n, độ phức tạp sẽ là O(n2) Còn trong trường hợp tệ nhất: khi r = n, nghĩa là i = 1, độ phức tạp sẽ là O(n4)

1.4.3 Kiến trúc hướng dịch vụ lưới cho ứng dụng so

trùng đồ thị trong tìm kiếm bằng ngữ nghĩa

Mô hình ý tưởng như hình 1.3 Hiện tại, trong đó máy phía client (nơi yêu cầu dịch vụ so trùng đồ thị) sẽ chuyển đổi câu truy vấn thành dạng đồ thị truy vấn như trong [4] Sau đó truyền chuỗi thông tin mô tả đồ thị này cho hệ thống Lưới thực hiện

Hình 1-3: Mô hình ý tưởng biểu diễn quá trình tính toán so trùng các đồ thị

Luận văn đã đề xuất một kiến trúc hướng dịch vụ lưới cho ứng dụng so trùng (chi tiết ở chương 3) Đối chiếu từ kiến trúc phần mềm 3 lớp (3-Tier) với kiến trúc này thì dịch vụ lưới VOGraphMatching là lớp Presentation, dịch vụ lưới GraphMatching là ở lớp Business Logic và dịch vụ lưới GraphRepository là ở lớp Back-end Do vậy client bị che dấu các tài nguyên bên trong và chỉ sử dụng tác vụ tìm kiếm thông tin bằng dịch vụ lưới VOGraphMatching cung cấp Dịch vụ

Client

Query Statement converts

Query Graph

Globus Toolkit 3 Hosting

Trang 26

lưới VOGraphMatching sẽ lựa chọn và uỷ quyền cho dịch vụ lưới GraphMatching cấp thấp hơn bên dưới thực thi ý nghĩa của tác vụ Dịch vụ lưới GraphMatching sẽ dùng dữ liệu được cung cấp từ dịch vụ lưới GraphRepository

1.5 PHƯƠNG PHÁP LUẬN CỦA LUẬN VĂN

1.5.1 Nội dung nghiên cứu

Nội dung của luận văn đề cập ba lĩnh vực chính: tính toán lưới (Grid computing), tìm kiếm bằng ngữ nghĩa (semantic search) và các mô hình tính toán trên Lưới

 Tính toán lưới: tìm hiểu các mô hình, các ứng dụng và các chuẩn của

công nghệ Lưới (chuẩn OGSA[8], OGSI[12] , Globus Toolkit…) Môi trường Globus Toolkit này được sử dụng làm cơ sở cho việc nghiên cứu các vấn đề như: sự phân bố dữ liệu và công việc tính toán trên các nút lưới khác nhau, cân bằng tải giữa các nút lưới tính toán Các nút lưới có kiến trúc phần cứng và hệ điều hành khác nhau Mỗi nút lưới là một máy đơn hoặc một Supercluster

 Tìm kiếm bằng ngữ nghĩa: tìm hiểu về tìm kiếm bằng ngữ nghĩa, hiện

thực giải thuật so trùng đồ thị dưới dạng tuần tự rồi song song hoá giải thuật so trùng đồ thị, tìm hiểu tự điển WordNet và chuẩn Resource Description Framework (RDF)

 Mô hình tính toán trên Lưới: tìm hiểu các mô hình tính toán có thể thích

hợp cho bài toán so trùng đồ thị trên môi trường tính toán lưới

1.5.2 Phương hướng giải quyết vấn đề

Luận văn giải quyết từng bước như sau:

1 Nghiên cứu công nghệ tính toán lưới và các dự án Lưới đã thành công Từ đó đề xuất mô hình kiến trúc hướng dịch vụ lưới thích hợp

Trang 27

2 Triển khai môi trường Globus Toolkit trên nhiều nút lưới

3 Hiện thực giải thuật so trùng các đồ thị tuần tự

4 Phát triển phương pháp cung cấp thông số hệ thống của các nút lưới như tải rảnh của CPU, dung lượng bộ nhớ, các file system…

5 Phát triển các dịch vụ khác có liên quan đến công việc so trùng các đồ thị và triển khai chúng lên các hosting có cài Globus Toolkit 3

6 Phát triển mô hình tính toán và khảo sát các giải thuật cân bằng tải tính toán trên Lưới Việc cân bằng tải dựa vào các thông số hệ thống của các nút lưới đã thu thập được ở trên

7 Kiểm tra, đánh giá và tăng cường hiệu quả của các dịch vụ bằng cách giả lập nhiều client đồng thời truy cập hệ thống và gởi yêu cầu so trùng trên tập dữ liệu thử nghiệm

1.6 NHỮNG ĐÓNG GÓP CHÍNH

Luận văn này đem lại nhiều ý nghĩa về mặt lý thuyết lẫn thực tiển Sau đây là tóm tắt những đóng góp chính yếu của luận văn này đối với lĩnh vực tính toán lưới và tìm kiếm bằng ngữ nghĩa

1 Một báo cáo tổng quan về kiến trúc Lưới, các chuẩn liên quan công nghệ Lưới và Globus Toolkit dùng để xây dựng dịch vụ lưới Thông qua đó, người tiếp theo có thể dễ dàng hơn trong việc tiếp cận công nghệ này

2 Xây dựng một môi trường tính toán lưới là GRID Hệ thống GRID có middleware là Globus Toolkit 3 Cơ sở hạ tầng phần cứng bao gồm nhiều nút lưới Mỗi nút lưới là máy đơn (có thể sẽ nghiên cứu mở rộng thêm nút lưới là Supercluster cùng tham gia) kết nối nhau thông qua mạng LAN/WAN

Trang 28

BK-3 Trên BK-GRID, đã phát triển ứng dụng áp dụng giải thuật so trùng các đồ thị cho tìm kiếm bằng ngữ nghĩa Giải thuật so trùng này là một những giải thuật trong lĩnh vực tìm kiếm bằng ngữ nghĩa Ứng dụng này được phát triển theo kiến trúc hướng dịch vụ lưới (Grid service-oriented architecture) Cụ thể, trong đó có ba loại dịch vụ: VOGraphMatching, GraphMatching và GraphRepository Dịch vụ VOGraphMatching đưa ra một cách nhìn cả hệ thống BK-GRID như một máy tính đơn nhất cung cấp dịch vụ so trùng đồ thị

4 Hiện thực song song hoá giải thuật [4] so trùng các đồ thị cho vấn đề tìm kiếm bằng ngữ nghĩa cục bộ bằng kỹ thuật Java multithread

5 Kiến trúc hướng dịch vụ lưới (được áp dụng cho bài toán so trùng đồ thị này) theo đề xuất là hoàn toàn đủ uyển chuyển và khả năng mở rộng đáp ứng tốt cho nhiều bài toán khác nhau

6 Một mô hình Master/Workers Framework Mô hình này giúp song song hoá nhiều bài toán dễ dàng hơn và sẽ là ý tưởng căn bản trong suốt quá trình phát triển giải pháp song song

7 Đề xuất hai chiến lược cân bằng tải theo round-robin và lựa chọn nút lưới tốt nhất

8 Đã thử nghiệm và đo đạc số liệu cho các chiến lược cân bằng tải khác nhau như là: xoay vòng (round-robin), lựa nút lưới tốt nhất… Tiêu chí đánh giá xem thời gian xử lý mỗi request sẽ thay đổi thế nào trong trường hợp tải nặng (nhiều yêu cầu từ client gởi đến đồng thời) Việc thử nghiệm tiến hành trong các tình huống khác nhau: i) tất cả các nút lưới đều rảnh để phục vụ chỉ mỗi ứng dụng so trùng (không kể các process hệ thống); ii) hệ thống hoạt động với nhiều người dùng đồng thời chạy nhiều ứng dụng bất kỳ ngẫu nhiên

Trang 29

1.7 CẤU TRÚC LUẬN VĂN

Các chương còn lại của Luận văn đề cập đến những vấn đề sau:

Chương 2: Chương này đề cập đến hai vấn đề Thứ nhất, diễn giải mô

hình lý luận tổng quan về Lưới trong mối quan hệ: dịch vụ lưới là sự mở rộng khái niện dịch vụ Web, OGSA định nghĩa dịch vụ lưới, OGSI đặc tả dịch vụ lưới và Globus Toolkit 3 là phần hiện thực chuẩn mở OGSA/OGSI Thứ hai, cách xây dựng tổ chức ảo (Virtual Organization[1][2][8][12]) bằng OGSA[8] Chương 3: Nêu ra các yêu cầu và đề nghị một kiến trúc hướng dịch vụ

cho ứng dụng áp dụng giải thuật so trùng các đồ thị trong tìm kiếm bằng ngữ nghĩa

Chương 4: Đề ra một giải pháp tính toán bằng mô hình Virtual Hosting

Environment (VHE) Master/Worker và các giải thuật phân bố tải trên Lưới

Chương 5: Đề ra một giải pháp song song hóa giải thuật so trùng các đồ

thị trên tập hợp nhiều đồ thị mẫu bằng multi-thread

Chương 6: Mô tả chi tiết việc hiện thực các dịch vụ lưới như:

VOGraphMatching, GraphMatching, GraphRepository

Chương 7: Thử nghiệm hệ thống bằng các testcase tương ứng với các mô

hình tính toán trên Lưới cần được khảo sát Thử nghiệm với nhiều giải thuật phân phối tải như round-robin, tìm nút lưới tốt nhất…

Chương 8: Tóm tắt lại toàn bộ những điều đã làm được trong luận văn

và đề xuất hướng nghiên cứu tiếp về tính toán lưới và tìm kiếm bằng ngữ nghĩa

Trang 30

Chương 2

CÁC NGHIÊN CỨU LIÊN QUAN

Chương này đề cập đến hai vấn đề Thứ nhất, diễn giải mô hình lý luận tổng quan về Lưới trong mối quan hệ: dịch vụ lưới là sự mở rộng khái niện dịch vụ Web, OGSA định nghĩa dịch vụ lưới, OGSI đặc tả dịch vụ lưới và Globus Toolkit 3 là phần hiện thực chuẩn mở OGSA/OGSI Thứ hai, cách xây dựng tổ chức ảo (Virtual Organization[1][2][8][12]) bằng OGSA[8]

2.1 GIỚI THIỆU VỀ TÍNH TOÁN LƯỚI

2.1.1 Tính triết lý của Lưới[2]

Mô hình kiến trúc Lưới có thể diễn giải tổng quan bằng hình 2.1 bên dưới Các phần sau sẽ lần lược giải thích chi tiết các khái niệm trong hình Trong cách nhìn này, các kỹ thuật liên quan Lưới sẽ kế thừa và mở rộng Web Service; định hướng theo kiến trúc hướng dịch vụ tổng quát; giảm nhẹ tính triết lý hướng đối tượng trong các thành phần cơ bản của Lưới

Trang 31

2.1.2 Open Grid Service Architecture - OGSA [8]

Open Grid Service Architecture - OGSA [8] là một kiến trúc mở và hướng dịch vụ cho phép sự tích hợp của các hệ thống phân bố giúp tạo thành các tổ chức ảo VO dễ dàng Trong cả hai dạng ứng dụng e-Business và e-science, chúng ta thường cần tương tác các dịch vụ thông qua các môi trường phân bố khác nhau Các tổ chức ảo được hình thành từ các tài nguyên riêng lẻ nằm trong một tổ chức hay nhiều tổ chức hợp tác nhau Chính vì vậy, khái niệm OGSA (theo Global Grid Forum (GGF)) cần có:

i Những dịch vụ quan trọng để hỗ trợ cả hai loại ứng dụng e-Science và e-Business

Web Service

Mở rộng

Globus Toolkit 3

Hiện thực

Web Service standards:

SOAP, WSDL, UDDI…

Hình 2 - 1: Triết lý của Lưới: Open Grid Service Architecture, Open Grid Service

Infrastructure và Globus Toolkit 3 (trích từ [2])

Trang 32

ii Xác định những dịch vụ nhân (core service) trong các ứng dụng Grid khác nhau

iii Xác định những chức năng cho các core service này và mối quan hệ giữa chúng

Ngoài ra, OGSA cũng định nghĩa về: Authorization, Authentication, policy, quản lý, khám phá các dịch vụ lưới, giám sát và thoả thuận mức độ dịch vụ, quản lý tài nguyên phân tán ở nhiều platform khác nhau… OGSA có thể được hiện thực độc lập bởi các nhà cung cấp khác nhau Trong OGSA có các giao diện

chuẩn sau: Factory, Registry, Discovery, Lifecycle, Query service data,

Notification, Reliable invocaiton

2.1.3 Open Grid Service Infrastructure – OGSI[12]

Open Grid Service Infrastructure - OGSI [12] mô tả: i) các giao diện và các hành vi của một dịch vụ lưới; ii) các kỹ thuật để tạo, quản lý và chuyển đổi thông tin giữa các dịch vụ lưới; iii) những qui ước để client có thể tạo, khám phá và

tương tác với các thực thể dịch vụ lưới (grid service instance) Nói cách khác rõ

hơn, OGSI là một hạ tầng kiến trúc để xác định: 1) làm thế nào để các thực thể dịch vụ lưới được đặt tên (naming) và được tham khảo đến; 2) xác định các giao diện (interface) cơ bản thông thường mà bất kỳ dịch vụ lưới nào cũng phải hiện thực (như là giao diện OGSA GridService); 3) những giao diện mở rộng (tuỳ chọn)

Tuy nhiên, OGSI không đề cập cụ thể làm thế nào các dịch vụ lưới được tạo, được quản lý và bị huỷ nằm trong một môi trường hosting xác định (như là J2EE container, Microsoft NET framework…) Do đó nếu một dịch vụ lưới tuân thủ chuẩn này không nhất thiết có thể portable sang môi trường hosting khác, nhưng nếu client tuân thủ chuẩn này thì có thể gọi các thực thể dịch vụ lưới tuân thủ chuẩn này ở bất kỳ môi trường hosting nào

Trang 33

Bảng 2- 1: Chuẩn OGSI mô tả các khái niệm chính yếu Khái niệm Mô tả

Naming Mỗi service có một tên duy nhất

Khám phá ra bằng Naming Service data Service data bị kết hợp với các thực thể dịch vụ

Các set/query các trị của service data này Gởi thông báo khi những service data này bị thay đổi

Notification Các giao diện cho việc đăng ký và phân phối thông báo

Life cycle Các dịch vụ lưới được tạo bởi các Factory

Chúng bị huỷ tường minh hay là “soft-destroyed”

2.1.4 Dịch vụ lưới (Grid Service) [2][8][12]

Dịch vụ lưới (grid service) là một dịch vụ Web tương thích chuẩn OGSA và

OGSI Nhưng ngược lại thì không đúng Trên môi trường Lưới, một thực thể dịch vụ lưới được tạo động và trạng thái của nó sẽ được quản lý bằng những phương thức chung nhất cho mọi loại dịch vụ lưới (điều này ở dịch vụ Web chưa đạt được hiện nay)

Giao diện của dịch vụ lưới được mô tả bằng ngôn ngữ WSDL mở rộng (có thêm phần tử “wsdl:PortType”), nên giao diện của một dịch vụ lưới còn gọi với tên khác là grid porttype (hay porttype)

WSDL mở rộng: chuẩn OGSI [12] dựa trên công nghệ dịch vụ Web, nó dùng WSDL như là một kỹ thuật mô tả các giao diện public (công cộng) của các

dịch vụ lưới Sự mở rộng thể hiện ở phần tử “wsdl:PortType” với một namespace độc lập là “gwsdl” Trong bước cải tiến chuẩn OGSI thành WSRF là nhằm có thể

sử dụng lại các kỹ thuật Web Service sẳn có Ví dụ sau minh hoạ cho phần tử

“wsdl:PortType” trong WSDL file:

Trang 34

<element name= “portType” type= “gwsdl:portTypeType” />

2.1.5 Grid Service Data Element – SDE [12]

Sự khác nhau cơ bản giữa dịch vụ lưới và dịch vụ Web chính là dịch vụ

lưới là một stateful Web service Stateful Web service nghĩa là trạng thái của bản

thân dịch vụ Web sau mỗi lần tác vụ (operation) của nó không được lưu giữ lại (dù có nhiều phương pháp phi chuẩn Web service đã làm được) Còn ở dịch vụ lưới thì phải hỗ trợ việc này một cách thống nhất

Bên cạnh đó, một dịch vụ phân bố luôn cần có các kỹ thuật hỗ trợ set/query trạng thái của chúng Có nhiều giải pháp khác nhau: 1) kỹ thuật JavaBean properties; 2) mở rộng portType với serviceData –là một phần tử con mang tên serviceData Chuẩn OGSI[12] chọn cách 2, phần tử con “serviceData”

được dùng để định nghĩa các phần tử dữ liệu của dịch vụ lưới (Service Data

Element -SDE) Ví dụ minh hoạ hai phần tử dữ liệu SDE là: “tns:sd1” và

<sd:serviceData name="sd1" type=”xsd:String” mutability=”static”/>

<sd:serviceData name="sd2" type=”tns:SomeComplexType”/>

Trang 35

thông tin về hệ thống (CPU, Memory…) được hiện thực trong luận văn, và ngoài

ra còn nhiều phần tử SDE khác trong Index service

2.1.6 Grid Service Handle, Grid Service Reference[12]

Theo tài liệu về OGSI[12] , mỗi thực thể dịch vụ lưới đều được đặt tên duy nhất (toàn cục trong toàn tổ chức ảo) – gần giống khái niệm Object Identifier, gọi

là Grid Service Handle (GSH) Về hình thức GSH được định dạng là một URI và

chưa có đủ thông tin để client có thể gọi trực tiếp thực thể này Khi cần gọi,

client sẽ (có thể) sử dụng dịch vụ HandleResolver để phân giải GSH thành Grid

Service Reference (GSR) Về hình thức GSR được định dạng theo chuẩn

WSDL[12]

2.1.7 Globus Toolkit 3 [24]

Luận văn sử dụng Globus Toolkit 3 (GT3) là môi trường grid middleware là vì Globus Toolkit 3 là một thư viện lập trình có mã nguồn mở và cũng là môi trường thực thi của các dịch vụ lưới Globus Toolkit 3 đã được triển khai rộng rãi trên toàn thế giới cho các ứng dụng trong khoa học và công nghiệp bởi nhiều cộng đồng người dùng

Globus Toolkit này đã qua 3 version chính: Globus Toolkit 1, Globus Toolkit 2.x, và mới nhất là Globus Toolkit 3 (GT3) Các phần tử cơ bản của Globus Toolkit 2 đã được đút kết lại và khái quát hóa cao lên trở thành các phần tử thiết yếu của OGSA và OGSI Còn GT3 đã hiện thực chuẩn OGSA/OGSI version 1.0 bằng Java, C/C++ Kiến trúc GT3 sẽ được mô tả bên dưới

Trong hình 2-4, các thành phần có trong GT3 với các khối được tô vàng là phần lõi (GT3 core)

Trang 36

Kiến Trúc Nhân Của Globus Toolkit 3

Môi trường hosting (hosting environment): đây có thể là Operating System hay là Application Server để thực thi các dịch vụ lưới Hiện tại GT3 hỗ trợ các môi trường sau:

• Embeded container

• Standalone container

• J2EE Web container

• J2EE Enterprise Java Bean Container

Môi trường hosting chia ra làm nhiều lớp như sau:

Implementation Layer The container Transport/Binding Layer Web engine Interface Layer OGSI specification Môi trường Hosting sẽ cần tuân thủ chuẩn OGSI và Web engine Ví dụ: Apache AXIS engine quản lý về SOAP trên HTTP, nó hoạt động như là một bộ

Hosting Environment Web Service Engine

Grid Service Container

OGSI Implementation Security Infrastructure

User-Defined Service Base Service

System Level Service

Hình 2 - 2: Kiến trúc nhân của Globus Toolkit 3

Trang 37

lắng nghe thông điệp SOAP, thực hiện việc serialization/ deserialization của các SOAP request/response, cấu hình dịch vụ và triển khai

Ngoài ra, có những môi trường hosting khác như là Embeded hosting environment, Standalone hosting environment, Servlet hosting environment, EJB hosting environment

 Các dịch vụ nhân (Core) của Globus Toolkit 3 gồm:

• Dịch vụ quản trị: cho phép “pinging” và tắt môi trường thực thi

• Dịch vụ Logging: cho phép điều khiển lọc log ở thời gian chạy và

log buffer

• Dịch vụ quản lý: cho phép khám phá tải hiện thời, huỷ bỏ,

activating và deactivating các dịch vụ

 Các dịch vụ cơ bản (Base) của Globus Toolkit 3 gồm:

• Dịch vụ quản trị công việc: quản lý việc submitting và monitoring các job từ xa, theo đúng interface định nghĩa trong OGSI, bằng cách dùng WSDL/XML, có một lệnh cho phía client: managed-job-globusrun để gọi Master Managed Job Factory Service (MMJFS) để submit các job

Hình 2 –3: Các dịch vụ nhân của Globus Toolkit 3

Trang 38

• Dịch vụ Index: i) nó dùng để truy vấn (query) và tạo ra data; ii) nó có lệnh cho phía client: ogsi-find-service-data, lệnh này cho phép truy vấn bất kỳ service data element - SDE thuộc bất kỳ Grid service; iii) nó thay thế Meta Directory Service–MDS trước kia hoàn toàn tốt, nó có thể cung cấp thông tin hệ thống (hướng phát triển trong luận văn) như là tải rảnh của CPU, dung lượng bộ nhớ, tình trạng hệ thống file trên máy…

service-• Dịch vụ Reliable File Transfer - RFT service (multiRFT): RFT là bộ phận của Data Management Inplementation, GridFTP, Relica ReLocation Service – RLS Nó cung cấp interface cho việc truyền file tin cậy giữa các Grid server GT3 có chương trình java phía client: RFTClient Trên server, GT3 có GridFTP daemon GridFTP là protocol mở rộng các lệnh của FTP để giúp có thể truyền song song dữ liệu (mở nhiều cầu nối TCP giữa hai đầu truyền…), sử dụng cơ chế bảo mật GSI liên site, và truyền theo chế độ third-party servers…và nhiều tính năng khác

2.1.8 Mô hình lập trình phía server

Trang 39

Sơ Đồ Lớp Của Các Lớp Phía Server

Hình 2 - 4: Sơ đồ lớp phía Server

Trang 40

2.1.9 Mô hình lập trình phía client

Sơ Đồ Lớp Phía Client

Hình 2 - 5: Sơ đồ lớp phía Client

2.2 SỬ DỤNG OGSA ĐỂ TẠO CÁC TỔ CHỨC

Trong việc tích hợp giữa các hệ thống phân bố không đồng nhất thì chuẩn OGSA[8] cho phép chúng ta xây dựng 3 kiểu cấu trúc cho môi trường tổ chức ảo

[1][8][15] sau: SimpleHosting Environment, Virtual Hosting Environment, Collective

Operations từ các giao diện chuẩn của OGSA gồm: Factory, Registry,

GridService và HandleMap được dùng để xây dựng các cấu trúc khác nhau

• Simple Hosting Environment: một môi trường đơn giản mà tập hợp của các tài nguyên đặt trong một miền quản trị đơn và hỗ trợ những

Ngày đăng: 09/02/2021, 17:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm