Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
BÀI TẬP LỚN GRID COMPUTING
ĐỀ TÀI: Applications of SOA and Web Services in Grid Computing
Người thực hiện: Phạm Hồng Thanh
Mã số học viên : 09070462
Người thực hiện: Lê Hoàng Ngọc Quỳnh
Mã số học viên : 09070460
TPHCM, tháng 6/2010
1
MỤC LỤC
I. Giới thiệu chung_____________________________________________________4
II. Service Oriented Architecture__________________________________________4
1. Service________________________________________________________________4
2. Các đặc điểm chính của service_____________________________________________5
3. Service Oriented Architecture______________________________________________6
III. Web Service________________________________________________________9
1. Cấu trúc Web service_____________________________________________________9
2. Simple Object Access Protocol – SOAP______________________________________12
3. Web Service Description Language – WSDL__________________________________15
IV. Grid Service________________________________________________________17
1. Các đặc điểm của Grid service_____________________________________________17
V. Open Grid Service Architecture (OGSA)__________________________________18
1. OGSA là gì_____________________________________________________________18
2. OGSA, Web Service và Grid service_________________________________________19
3. Open Grid Services Infrastructure__________________________________________21
4. OGSA và Stateful service_________________________________________________25
5. Hiện thực OGSA - Globus Toolkit 3_________________________________________25
2
VI. Web Services Resource Framework (WSRF)______________________________26
1. Đặc tả WSRF___________________________________________________________28
2. WSRF đã giải quyết vấn đề cũ như thế nào?_________________________________30
3. WSRF phát biểu lại OGSI_________________________________________________30
4. Hiện thực WSRF________________________________________________________31
VII. Thay cho lời kết____________________________________________________32
VIII. Tài liệu tham khảo________________________________________________32
3
I. Giới thiệu chungTrong những năm gần đây Tính toán lưới được các nhà nghiên cứu đầu tư và cho
ra nhiều kết quả quan trọng. Trong bài báo cáo này sẽ đi vào giới thiệu những ứng dụng
của Service Oriented Architecture (SOA), Web service trên môi trường Tính toán lưới.
Ngoài ra kiến trúc Open Grid Service Architecture(OGSA) cũng được giới thiệu. Phần
cuối cùng của báo cáo sẽ trình bày về Web Service Resource Framework (WSRF).
II. Service Oriented Architecture
1. Service
Về mặt định nghĩa, service là một hệ thống có khả năng nhận một hay nhiều yêu
cầu xử lý và sau đó đáp ứng lại bằng cách trả về một hay nhiều kết quả. Quá trình nhận
yêu cầu và trả kết quả về được thực hiện thông qua các interface đã được định nghĩa
trước đó. Thông thường việc giao tiếp này được thực hiện trên các interface đã được
chuẩn hóa và sử dụng rộng rãi.
Một ví dụ đơn giản của service chính là hoạt động của một nhà hàng. Khi khách
hàng vào nhà hàng và gọi thức ăn, khách hàng đang tiến hành gởi yêu cầu cho service
“phục vụ khách hàng” của nhà hàng. Nhân viên nhà hàng nhậc được yêu cầu của khách,
nếu món ăn khách hàng yêu cầu nhà hàng không có hoặc đã hết, nhân viên nhà hàng sẽ từ
chối hoặc đề nghị khách hàng gọi món khác. Nếu nhà hàng có thể đáp ứng được yêu cầu
của khách, món ăn sẽ được chế biến và mang ra cho khách hàng thưởng thức sau một
khoảng thời gian chờ. Ở đây, yêu cầu chính là món ăn mà khách hàng muốn thưởng thức,
còn kết quả trả về của service phục vụ nhà hàng chính là từ chối (nếu nhà hàng không đáp
ứng được yêu cầu của khách) hay là món ăn mà khách hàng cần.
Một hệ thống được thiết kế theo kiểu hướng service (service oriented) là một hệ
thống trong đó các chức năng của hệ thống được xây dựng dựa trên các service có độ kết
4
dính thấp. Các service trong hệ thống giao tiếp với nhau thông qua việc gởi nhận các
thông điệp (message).
Figure 1: Mô hình kiến trúc một hệ thống thông tin trường đại học
2. Các đ c đi m chính c a serviceặ ể ủ Có ranh giới rõ ràng (Boundaries Are Explicit)
Mỗi service được xây dựng dựa trên các interface chuẩn hóa đã được sử dụng rộng
rãi. Chi tiết hiện thực của mỗi service sẽ không được thể hiện ra bên ngoài. Mỗi service
chỉ công bố một số các interface của nó cho user có thể dùng để gởi các yêu cầu và nhận
kết quả trả về.
Tính tự trị (Autonomous)
Về mặt lý thuyết, mỗi service có tính độc lập cao, có thể được build và đưa vào sử
dụng mà không phụ thuộc vào các service khác.
Share the Schema and Contract, Not the Class
5
Về mặt trao đổi dữ liệu, các service không truyền các class và type. Thay vào đó,
các class và type sẽ được đặc tả hình thức (data được đặc tả trong schema, behavior được
đặc tả thành các contract )
Service Compatibility Is Based on Policy
Sự tương thích giữa các service được căn cứ vào các policy.
Tương thích về mặt cấu trúc dựa trên các đặc tả hình thức bao gồm contract (dựa trên
Web Service Description Language (WSDL) hoặc Business Process Execution Language
for Web Services (BPEL4WS) và schema (XSD).
Sự tương thích dựa trên policy cung cấp khả năng phân tích cũng như đảm bảo sự tương
thích giữa các service.
3. Service Oriented Architecture
Service Oriented Architecture (SOA) cung cấp cơ chế cho phép các hệ thống hoạt
động trên các platform khác nhau có thể giao tiếp với nhau.
Một hệ thống được xây dựng theo mô hình SOA bao gồm các service thỏa mãn
các tính chất của service. Mỗi service trong hệ thống có thể được sửa đổi một cách độc
lập với các service khác nhằm mục đích đáp ứng một yêu cầu mới từ thực tế.
a. Các actor trong SOA
Service Provider: Cung cấp stateless service phục vụ cho một nhu cầu nào đó.
User (service consumer) không cần quan tâm đến vị trí thực sự mà service họ
cần sử dụng đang hoạt động.
Serive Consumer: User sử dụng service được cung cấp bởi Service Provider
Service Registry: Nơi lưu trữ thông tin về các service của các Service Provider
khác nhau, Service Consumer dựa trên những thông tin này để tìm kiếm và
lựa chọn Service Provider phù hợp.
6
Figure 2: SOA actors
Service Provider sẽ đăng kí thông tin về service mà mình có thể cung cấp (các
chức năng có thể cung cấp, khả năng của hệ thống (resource, performance), giá cả dịch
vụ, ...) vào Service Registry. Service Consumer khi có nhu cầu về một service nào đó sẽ
tìm kiếm thông tin trên Service Registry. Ngoài chức năng hỗ trợ tìm kiếm, Service
Registry còn có thể xếp hạng các Service Provider dựa trên các tiêu chí về chất lượng
dịch vụ, bầu chọn từ các khách hàng đã sử dụng service, ... Những thông tin này sẽ hỗ trợ
thêm cho quá trình tìm kiếm của Service Consumer. Khi đã xác định được Service
Provider mong muốn, Service Consumer thiết lập kênh giao tiếp trực tiếp với Service
Provider nhằm sử dụng service hoặc tiến hành thương lượng thêm (về mặt giá cả,
resource sử dụng, ...)
b. Ích lợi khi sử dụng SOA
Sử dụng mô hình SOA trong việc thiết kế hệ thống mang lại lợi ích về mặt kinhtế
cũng như kỹ thuật.
Lợi ích kinh tế
o Doanh nghiệp có điều kiện tập trung thời gian để tìm kiếm các giải pháp
cho các bài toán liên quan đến kinh tế.
7
o Thúc đẩy sự phát triển của hệ thống hiện có cũng như cung cấp khả
năng mở rộng hệ thống trong tương lai.
Lợi ích kỹ thuật
o Hệ thống xây dựng theo mô hình SOA đảm bảo các service trong hệ
thống có tính độc lập cao (độ kết dính thấp) (autonomous và loose
coupling).
o Ở góc nhìn người sử dụng, vị trí các service có tính trong suốt
(transparency), việc di dời các service đến một máy tính khác không ảnh
hưởng khả năng phục vụ yêu cầu khách hàng.
o Hoạt động của các service có tính động, hành vi của các service tùy thời
đểm, tùy yêu cầu cần xử lý mà có sự khác nhau (late binding).
c. Thông điệp (message) trong SOA
So với kiểu thiết kế Component-Based, điểm khác biệt chính của SOA là cung cấp
khả năng giao tiếp giữa các thành phần trong hệ thống (service) sử dụng thông điệp
(message) dựa trên các chuẩn giao tiếp đã được chuẩn hóa (HTTP, FTP, SMTP, ...).
Chính nhờ đặc điểm này, hệ thống SOA trở nên độc lập với platform (platform
independent). Các service hoạt động trên nền các platform khác nhau vẫn có thể giao tiếp
với nhau nhờ vào các interface giao tiếp đã được chuẩn hóa để cộng tác xử lý một tác vụ
nào đó.
Sử dụng thông điệp (message) để giao tiếp có các lợi thế sau:
Cross-platform: thông điệp (message) trở thành ngôn ngữ chung của các platform
và các ngôn ngữ lập trình khác nhau. Điều này đảm bảo các service trên các platform
khác nhau hoạt động với cấu trúc dữ liệu đặc thù của platform đó.
Asynchronous communications: hoạt động gởi nhận thông điệp được thực hiện
theo cơ chế Fire-and-Forget. Sender và Receiver không cần phải chờ thông điệp trả lời
sau khi đã gởi đi một thông điệp. Điều này giúp cho Sender và Receiver tiếp tục xử lý
công việc sau khi gởi thông điệp mà không cần dừng thực thi để chờ thông điệp trả lời.
8
Reliable communication: các thông điệp từ Sender có thể được gởi đến một
service trung gian có nhiệm vụ lưu trữ (store) các thông điệp. Service trung gian sẽ gởi
(forward) thông điệp cho Receiver khi Receiver có thể xử lý yêu cầu tiếp theo. Cơ chế
Store-and-Forward này đảm bảo các thông điệp sẽ không bị thất lạc trong trường hợp
Receiver bị quá tải và không thể nhận thêm yêu cầu mới.
Thread management: Việc trao đổi thông điệp theo cơ chế bất đồng bộ giúp ứng
dụng không cần ngừng thực thi để chờ một tác vụ kết thúc mà có thể tạo ra các thread xử
lý các công việc khác nhau.
Remote communication: Các thông điệp lưu trữ thông tin về các đối tượng dữ
liệu dưới dạng đặc tả hình thức thay thế việc phải serialization and deserialization các đối
tượng dữ liệu truyền qua mạng khi ứng dụng thực hiện remote call một ứng dụng khác.
End-to-end security: Thông điệp có thể lưu trữ thông tin về security context của
kênh giao tiếp. Điều này cung cấp khả năng điều khiển liên quan đến security như
authentication and authorization.
III. Web ServiceWeb service là một hiện thực của service sử dụng web protocol để giao tiếp. Web
service cung cấp hệ thống phần mềm hỗ trợ việc giao tiếp giữa các máy tính trên
network.
1. C u trúc Web serviceấ
9
Figure 3: Web service protocol stack
Tương tự với SOA, có 3 actor chính tham gia vào Web service.
Service Provider: Dùng Web Services Description Language (WSDL) để mô tả
dịch vụ mà mình có thể cung cấp cho Service Broker (tương tự với Service Registry
trong SOA).
Service Broker: Lưu trữ thông tin về các service được cung cấp bởi các Service
Provider. Cung cấp chức năng tìm kiếm hỗ trợ Service Requester (Service Consumer
trong SOA) trong việc xác định Service Provider phù hợp. Thành phần chính của Service
Broker là Universal Discovery, Description, and Integration (UDDI) repositories.
Service Requester: Dùng WSDL để đặc tả nhu cầu sử dụng (loại service, thời
gian sử dụng, resource cần thiết, mức giá ...) và gởi cho Service Broker. Bằng việc sử
dụng UDDI và chức năng tìm kiếm của Service Broker, Service Requester có thể tìm
thấy Service Provider thích hợp. Ngay sau đó, giữa Service Requester và Service
Provider thiết lập kênh giao tiếp sử dụng SOAP để thương lượng giá cả và các yếu tố
khác trong việc sử dụng service.
10
Figure 4: Web service actors
11
2. Simple Object Access Protocol – SOAP
SOAP là một protocol giao tiếp dùng trong Web service được xây dựng dựa
trên XML. SOAP được sử dụng để đặc tả và trao đổi thông tin về các cấu trúc dữ liệu
cũng như các kiểu dữ liệu giữa các thành phần trong hệ thống.
Sử dụng SOAP, ứng dụng có thể yêu cầu thực thi method trên máy tính ở xa mà
không cần quan tâm đến chi tiết về platform cũng như các phần mềm trên máy tính đó.
a. Các đặc điểm của SOAP
Khả năng mở rộng (Extensible): Cung cấp khả năng mở rộng phục vụ
cho nhu cầu đặc thù của ứng dụng và nhà cung cấp. Các chức năng về
bảo mật, tăng độ tin cậy có thể đưa vào phần mở rộng của SOAP. Các
nhà cung cấp dịch vụ khác nhau, tùy vào đặc điểm hệ thống của mình có
thể định nghĩa thêm các chức năng mở rộng nhằm tăng thêm lợi thế cạnh
tranh cũng như cung cấp thêm tiện ích cho người sử dụng.
Có thể hoạt động trên các network protocol đã được chuẩn hóa (HTTP,
SMTP, FTP, TCP, ...)
Độc lập với platform, ngôn ngữ lập trình hay programming model được
sử dụng.
b. SOAP Message Structures
Figure 5 mô tả giao tiếp của một ứnng dụng với một web service được
thực hiện qua thông điệp SOAP sử dụng network protocol HTTP. Ứng
dụng sẽ đặc tả yêu cầu trong SOAP message và thông qua network
protocol gởi đến cho web service. Web service sẽ nhận và phân tích yêu
cầu sau đó trả về kết quả thích hợp.
Figure 5: Messaging using SOAP
Figure 6 mô tả cấu trúc một thông điệp SOAP. Một thông điệp SOAP bao gồm
các thành phần sau:
Protocol Header: Cho biết thông tin về các chuẩn giao thức được sử dụng.
SOAP Envelop: Thông tin chính của message bao gồm:
o SOAP Header: Chứa các SOAP header.
o SOAP body: Thông tin về name và data được đặc tả dưới dạng XML.
Ngoài ra còn có trường lỗi được dùng để gởi các web service
exception.
Trang 13
Figure 6: SOAP message structure
Sau đây là ví dụ về SOAP message, trong đó message request được sử dụng để
yêu cầu web service thực hiện method ‘int doubleAnInteger (int numberToDouble)’
nhằm nhân đôi một số nguyên. Messge request sẽ truyền đối số 123(số nguyên cần
nhân đôi) trong phần SOAP body:
Request <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encodi
ng/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC=http://schemas.xmlsoap.org/soap/
encoding/ xmlns:xsi="http://www.w3.org/1999/XMLSchema-
instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
Trang 14
<SOAP-ENV:Body>
<ns1:doubleAnInteger
xmlns:ns1="urn:MySoapServices">
<param1
xsi:type="xsd:int">123</param1> </ns1:doubleAnInteger>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/
envelope/
xmlns:xsi=http://www.w3.org/1999/XMLSchema-instance
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:doubleAnIntegerResponse
xmlns:ns1="urn:MySoapServices"
SOAP-ENV:
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>
<return
xsi:type="xsd:int">246</return> </ns1:doubleAnIntegerResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Message response mang thông tin kết quả trả về trong phần body. Kết
quả của phép nhân đôi số nguyên 123 (được truyền bởi message request) là 246.
Trang 15
3. Web Service Description Language – WSDL
Việc đặc tả chức năng, interface giao tiếp của một web service được thực hiện
dựa vào Web Service Description Language (WSDL). Việc đặc tả này bao gồm
protocol được sử dụng, cấu trúc và định dạng dữ liệu dùng để giao tiếp...
Figure 7 mô tả các thành phần cơ bản của một file WSDL dùng để đặc tả một
web service.
Services: Chứa các method có thể được sử dụng thông qua các web
protocol.
Ports: Địa chỉ dùng để kết nối đến web service. Thông thường, ports được
mô tả bằng một HTTP URL.
Figure 7: Overview of WSDL
Port Types: định nghĩa một web service, các tác vụ mà service cung cấp và định
dạng các thông điệp được sử dụng để khởi động các tác vụ này.
Operations: Mỗi operation có thể được xem như một method hay một lời gọi
hàm trong các ngôn ngữ lập trình cổ điển.
Binding: chỉ định port type, các operation, SOAP binding stype
(RPC/Document), SOAP protocol được dùng.
Message: Mỗi message tương ứng với một operation và chứa các thông tin cần
thiết để thực thi operation đó. Mỗi message có một name duy nhất và một hay
Trang 16
nhiều logical part. Các logical part được phân biệt với nhau qua name và có
thể lưu trữ các tham số cần cho operation.
Element: Được định nghĩa trong Types. Mỗi element có một name duy nhất và
kiểu dữ liệu. Element được dùng để đặc tả dữ liệu dùng trong message. Element
có thể đặc tả các dữ liệu đơn giản (string, integer) hay phức tạp hơn như array,
struct, ...
XSD file: Các element thường được định nghĩa trong các XML Schema
Definition (XSD) file. XSD file có thể ở trong cùng file WSDL hoặc ở file
riêng biệt.
IV. Grid Service
Về mặt định nghĩa, Grid Service là Web Service được thay đổi cho phù hợp với
môi trường grid.
1. Các đ c đi m c a Grid serviceặ ể ủ Transient in Nature (Lifetime, Migration): đối với môi trường grid, khi có một
yêu cầu được gởi đến, một service sẽ được tạo ra để đáp ứng yêu cầu đó. Khi
service đáp ứng xong yêu cầu, service sẽ bị hủy. Đối với web service, khi nhận
được một yêu cầu mới, service sẽ tạo ra một thread để xử lý yêu cầu đó.
Stateful Service: Grid service là stateful, grid service cần lưu trữ thông tin về
mỗi session giữa consumer và provider.
So với Web Service, Grid Service sử dụng Service Data nhằm lưu trữ thông tin
về trang thái hiện tại của service (state information) (kết quả cuối cùng hay kết
quả trung gian của các operation, thông tin về runtime của hệ thống, ...) hoặc
thông tin về chính service (service metadata) (system data, các interface được
hỗ trợ, giá sử dụng service, ...)
Grid service interface được đặc tả thông qua GWSDL (Grid WSDL).
Cung cấp cơ chế quản lý thời gian sống (lifecycle management).
Grid Service cung cấp cơ chế định nghĩa các portType mở rộng. Mọi grid
service đều phải thừa kế từ portType chuẩn GridService. Ngoài ra, mỗi grid service có
Trang 17
thể thừa kế (extend) các portType của hệ thống cung cấp sẵn nhằm tăng thêm tính
năng của service.
V. Open Grid Service Architecture (OGSA)
1. OGSA là gì
Trong một ứng dụng Grid, thường có khá nhiều dịch vụ (service) khác nhau. Ví
dụ, “VO Management Service”, “Resource Discovery and Management Service”, “Job
Management Service”, và các dịch vụ khác như bảo mật, quản lý dữ liệu, v.v... Các
dịch vụ này không ngừng tương tác với nhau, như “Job Management service” yêu cầu
“Resource Discovery and Management Service” tìm các tài nguyên để thực thi công
việc. Để các dịch vụ này có thể làm việc chung với nhau, cần một chuẩn chung thống
nhất. Cụ thể, đó là một giao tiếp chung (common interface) cho mỗi loại dịch vụ.
Tương tự như Web, đó cũng là một ứng dụng chạy trên Internet, xây dựng trên những
chuẩn (HTML, HTTP, v.v...), và được các ứng dụng trình duyệt sử dụng chung. Do
đó, nó có thể hoạt động rộng rãi trên rất nhiều môi trường. Sự chuẩn hóa trong môi
trường bất đồng nhất, hỗn tạp (Heterogeneity) như Grid, là rất cần thiết. OGSA ra đời
để đáp ứng nhu cầu đó.
Open Grid Service Architecture (OGSA), tạm dịch là Kiến trúc dịch vụ lưới
mở, được giới thiệu lần đầu trong bài báo “Physiology of the Grid” (I.Foster,
C.Kesselman, J.Nick, y S.Tuecke), được phát triển bởi The Global Grid Forum với
mục đích đưa ra kiến trúc chung, chuẩn và mở cho các ứng dụng tính toán lưới. OGSA
có mục tiêu là chuẩn hóa các service trong ứng dụng lưới bằng cách chỉ định một tập
các interface chuẩn cho các service này.
Cụ thể, OGSA định nghĩa một tập các giao tiếp cốt lõi (core interface), và hành
vi, nhằm giải quyết các mối quan tâm chính trong hệ thống Grid. Đó là giúp cho các
dịch vụ khác nhau, trong một ứng dụng và trên nhiều ứng dụng khác nhau, có thể được
sử dụng theo cùng một cách, không kể nó thuộc vào tổ chức nào, hay thực thi bên
trong ra sao.
Hình dưới cho thấy mô hình của OGSA
Trang 18
Mô hình OGSA
4. OGSA, Web Service và Grid service
Cũng như các kiến trúc khác, OGSA cũng cần chọn một middleware phù hợp
cho việc xây dựng hệ phân bố của mình. Trong số đó có thể kể đến CORBA, RMI, ...
Tuy nhiên, dịch vụ web được chọn vì có những ưu điểm nổi trội, mà ta sẽ bàn đến sau
đây.
OGSA dựa trên công nghệ web service đã có từ trước, và trong một chừng mực
nào đó, cải tiến nó để phục vụ cho yêu cầu của mình. Ưu điểm của dịch vụ web có thể
kể đến:
- sự phân tách rạch ròi giữa interface (giao tiếp, cho biết dịch vụ là gì) và
implementation (thực thi, dịch vụ làm như thế nào)
- dựa trên ngôn ngữ XML được sử dụng rất rộng rãi và uyển chuyển hiện nay
- được sử dụng rộng rãi và có nhiều ứng dụng sẵn có hỗ trợ. Công nghệ SOA
cũng đang rất được ưa chuộng.
Dịch vụ web tỏ ra rất phù hợp, đáp ứng được những yêu cầu của OGSA và hệ
thống lưới nói chung, khi mà nó có thể giải quyết được vấn đề khó khăn khi phải làm
việc trong một môi trường hỗn tạp như Grid.
Trang 19
Tuy nhiên, bên cạnh những ưu điểm kể trên, dịch vụ web cũng có một số hạn
chế, mang tính chất đặc thù. Đó là tính vô trạng thái (stateless), không-tạm thời (Non-
transient, hay là Persistent), thiếu sự hỗ trợ cho dịch vụ về thông báo, quản lý thời gian
sống, v.v…
Do đó, OGSA đã định nghĩa khái niệm Grid service để khắc phục những hạn
chế trên. Grid service (dịch vụ grid), thực ra cũng là dịch vụ web cải tiến, và tương
thích với dịch vụ web. Điểm khác biệt chính là nó có thêm trạng thái cho tài nguyên
(stateful resource), đáp ứng yêu cầu của Grid.
Grid service có thể duy trì trạng thái trong, cho suốt chu trình sống của một
dịch vụ. Việc tạo và hủy là hoàn toàn linh động. Mỗi Grid service có một định danh
riêng và được quản lý toàn cục bằng Grid service handle (GSH). Những đặc tả này
được định nghĩa trong lớp cơ sở hạ tầng do OGSA tạo ra: Open Grid Services
Infrastructure (OGSI). Tất cả dịch vụ trong OGSA (ví dụ như Job management,
security, v.v…), sẽ dựa trên và thực thi với Grid service. Như vậy, thực chất OGSA
dựa trên Grid service, một khái niệm mới trong hệ thống lưới.
Mối quan hệ giữa OGSA và OGSI với Grid service, Web service
Trang 20
5. Open Grid Services Infrastructure
Web Services Messaging, Security, Etc.
Open Grid Services Infrastructure
Domain-Specific Services
Core Services
ProgramExecution Data Services
Sta
ndar
diza
tion
Vị trí của OGSI trong mô hình OGSA
Các khái niệm đáng lưu ý trong OGSI:
a. Grid service descriptions and instances
Trong mô hình Web services chuẩn, các dịch vụ được tạo ra cũng như
hủy bỏ nằm ngoài phạm vi của bản thân Web services. Tuy nhiên trong
thực tế, ứng dụng thường xuyên khởi tạo service mới và khi các tác vụ đã
hoàn tất thì Web services bị hủy đi.
OGSI cung cấp một cơ chế phân biệt giữa phần mô tả và phần thể hiện
của dịch vụ. Phần mô tả sẽ định nghĩa các interface và hành vi của dịch vụ.
Các thể hiện sẽ hiện thực các hành vi này.
b. Service state, metadata, and introspection
WSDL chuẩn không có khái niệm “trạng thái” của service. Vì thế OGSI
đưa ra khái niệm service data để biểu diễn siêu dữ liệu và các trạng thái.
Các thông tin này được xem như một phần mô tả của service và có thể được
truy xuất từ service instance.
Trang 21
Ứng dụng client có thể yêu cầu service instance trả về các thông tin của
chính service đó. Ví dụ: các interface, đặc tả thông tin trạng thái hiện tại của
service, thời điểm kết thúc của service…
OGSI cung cấp hai cơ chế truy xuất trạng thái ứng dụng: pull và push.
Pull mode: OGSI cung cấp tác vụ findServiceData kết hợp với
service interface cho phép client có thể query thông tin trạng thái ứng
dụng.
Push mode: client đăng ký các với service thông tin trạng thái mình
mong muốn thông qua các interface NotificationSource,
NotificationSubscription, và NotificationSink. Khi trạng thái service
thay đổi, service sẽ thực hiện hành vi callback thông báo cho client
biết.
c. Naming và name resolution
Vì Grid service được khởi tạo động và có trạng thái nên cần phải có cách
thức để phân biệt giữa các instance của grid service. Do đó ta cần phương thức
đặt tên cho các instance này.
OGSI đưa ra cơ chế đặt tên hai mức. Mỗi grid instance sẽ được gán một
Grid Service Handle(GSH) và được quản lý bởi HandleResolver. GSH là toàn
cục và duy nhất tồn tại trong suốt thời gian sống của instance.
Client thể giao tiếp với service instance cũng như các service instance
với nhau thông qua Grid Service Reference(GSR).
Không giống với GSH, GSR được tạo ra, thay đổi, hủy trong suốt thời
gian sống của service instance.
Hình dưới minh họa cơ chế hoạt động của naming.
Trang 22
Figure 8: Cơ chế phân giải tên
d. Service life cycle
Một trong những điểm khác biệt chính giữa grid service và Web service
là Grid service có thể transient(tạo và hủy). OGSI cung cấp cơ chế cho phép
các instance khởi tạo, hủy cũng như quản lý thời gian sống của các instance
này.
Service instance có thể quy định thời gian sống bằng các phương thức
sau:
Khởi tạo ban đầu: khi có yêu cầu khởi tạo mới một grid service, client gửi
kèm khoảng thời gian sống cụ thể của service instance.
Kết thúc tường minh(Explicit termination): client chủ động gửi yêu cầu
hủy grid service instance.
Yêu cầu điều chỉnh thời gian sống(Requesting a lifetime modification):
client có thể yêu cầu điều chỉnh thời gian sống của service instance bằng
cách gửi thông điệp “keepalive” đến server.
e. Fault type
OGSI định nghĩa chuẩn các kiểu chuẩn cho tất cả các thông điệp lỗi
được trả về bởi Grid service.
f. Service groups
OGSI cung cấp cơ chế tổ chức service instance theo nhóm.
Trang 23
OGSI định nghĩa các interface (WSDL portTypes). Mỗi loại portType
đưa ra tập các tác vụ và OGSI quy định hành vi cụ thể cho các tác vụ này. Bảng
dưới liệt kê một số các portType
PortType Mô tả
GridService Cung cấp các hành vi chính bao gồm phần dữ liệu và
quản lý thời gian sống của service.
HandleResolver Ánh xạ từ GSH sang GSR
NotificationSource Cho phép client đăng ký các thông điệp notification
NotificationSubscription Quản lý thời gian sống và các thuộc tính của các
subscription.
NotificationSink Định nghĩa tác vụ cho việc phân phối các thông
điệp notification đến service instance.
Factory Tác vụ chuẩn tạo grid service instance
ServiceGroup Quản lý nhóm các service instance
ServiceGroupRegistration Cho phép thêm hoặc xóa Grid service ra khỏi
ServiceGroup
g. Các Core Service của OGSI
Core service cung cấp các dịch vụ về phân giải tên, tìm kiếm dịch vụ,
bảo mật, chính sách, và truyền thông điệp.
Các dịch vụ cơ bản:
Name resolution and discovery
Service domains
Security
Policy
Messaging, queuing, and logging
Events
Metering and accounting
Data and Information Services
Trang 24
Data naming and access
Replication
Metadata and provenance
Resource and Service Management
Provisioning and resource management
Service orchestration
Transactions
Administration and deployment
6. OGSA và Stateful service
Tuy nhiên, kiến trúc dịch vụ đc coi là phù hợp nhất, nhưng vẫn chưa thỏa mãn
được yêu cầu quan trọng của OGSA: middleware phải là stateful. Dịch vụ web theo lí
thuyết có thể là stateful hoặc stateless, nhưng thường vẫn là stateless, và không có
cách thức chuẩn nào để làm cho nó thành stateful. Do đó, dẫn tới sự ra đời WSRF, mà
ta sẽ nói ở phần sau.
7. Hi n th c OGSA - Globus Toolkit 3ệ ựPhiên bản Globus 3.0 (GT3) ngoài việc kế thừa các chức năng quan trọng để
xây dựng các giải pháp gird, GT3 dựa trên cơ sở hạ tầng mới tuân theo chuẩn OGSA
và hiện thực các chức năng lõi được định nghĩa trong OGSI.
GT3 bao gồm các thành phần sau:
Hiện thực toàn bộ portType đặc tả trong OGSI.
Cơ chế bảo mật: dựa trên GSI, cung cấp các service: mã hóa, authentication,
and authorization.
Các service mức hệ thống: Amin, Logging và Monitoring.
Các service nền (Base services).
User-defined services
Grid Service Container.
Hosting environment
Hình dưới minh họa mô hình của GT3.
Trang 25
Kiến trúc GT3
VI. Web Services Resource Framework (WSRF)Như đã nói ở phần trên, OGSA với sự định nghĩa Grid service và stateful
resource, trên nền tảng OGSI, tuy có những ưu điểm lớn, nhưng vẫn bộc lộ những hạn
chế. Ba hạn chế được biết đến của OGSI có thể kể ra là:
- đặc tả quá phức tạp, cồng kềnh;
- làm việc thiếu hiệu quả với những công cụ sẵn có của dịch vụ web; và không
tương thích với nó (ví dụ ngôn ngữ WSDL mở rộng); và
Trang 26
- quá “hướng đối tượng”, qua việc có nhiều thể hiện, và lưu giữ trạng thái. Mặc
dù hướng đối tượng là một cách thức được ưu chuộng từ lúc ra đời cho tới nay, nhưng
trong dịch vụ web, nó lại không như thế. Điều này dẫn tới những bất đồng trong việc
phát triển và sử dụng grid trong môi trường web, giữa các nhóm phát triển.
Nhằm đạt được một sự “hội tụ” giữa dịch vụ web và dịch vụ lưới, một chuẩn
mới đã được đưa ra trong GlobusWORLD 2004 (tháng 1/2004), thay thế cho OGSI.
Đó là Web Services Resource Framework (WSRF). WSRF cho phép đem tính chất
stateful vào dịch vụ web, cũng như thêm nhiều chức năng hữu ích khác. Sự ra đời của
WSRF sau một nỗ lực chung của cộng đồng Grid và Web Serivice. Cộng đồng Web
Service vốn sử dụng dịch vụ web từ lâu, và không quen với việc dịch vụ web lại có
trạng thái, như đặc tả của OGSI. WSRF cho phép vẫn giữ nguyên đặc trưng ban đầu
của dịch vụ web, nhưng vẫn thỏa mãn yêu của của cộng đồng Grid khi sử dụng trạng
thái trong các dịch vụ. Như trên hình dưới đây, WSRF mở rộng Web Service.
Để dễ hình dung, mối liên hệ giữa WSRF và OGSA là như thế nào? Rất đơn
giản, WSRF cung cấp dịch vụ có trạng thái (stateful service) mà OGSA cần. Trên
hình, WSRF xác định stateful service (chứ không phải là dịch vụ được yêu cầu bởi
Trang 27
OGSA). Nói cách khác, OGSA là kiến trúc (architecture), trong khi WSRF là hạ tầng
(infrastructure) mà trên đó, kiến trúc được xây dựng nên.
Như vậy, WSRF trở thành một phần của các dịch vụ web, thay vì một sự chỉnh
sửa, chắp vá (patch) trên những cái hiện có như cách OGSI đã làm.
Trong khái niệm WSRF, có cặp Web Service – Resource kết hợp. Đó là Web
Service và Stateful Resource. Nghĩa là trạng thái bây giờ đã được gắn vào tài nguyên,
chứ không phải dịch vụ nữa. Mỗi cặp như vậy có một định danh duy nhất. Khi thao tác
với dịch vụ web, mà cần dùng tới tài nguyên nào đó, nó sẽ được triệu gọi qua định
danh này. Trạng thái có thể được cụ thế hóa qua XML. Mỗi cặp Web Service -
Resource như thế có thể được sử dụng bởi nhiều dịch vụ web khác nhau.
1. Đ c t WSRFặ ảWSRF chứa tất cả các chức năng của OGSI và cải tiến OGSI ở ba bước sau:
Giới thiệu khái niệm WS-Resource
Tách biệt giữa chức năng dịch vụ và việc kích hoạt dịch vụ
Dịch vụ notification theo chuẩn WS-Notification của Web services.
WSRF nhóm lại các chức năng của OGSI thành năm nhóm chính sau:
WS-ResourceProperties: đặc tả các dữ liệu của tài nguyên, tương tự như Grid
Data Elements của OGSI, và các cơ chế cho phép truy cập, xóa hoặc thay đổi các
thông tin này.
WS-ResourceLifetime: cơ chế kết thúc một WS-Resource; các đặc tả về thông tin
trao đổi giữa người yêu cầu dịch vụ và WS-Resource nhằm kết thúc dịch vụ ngay
lập tức hoặc là một thời điểm định sẵn.
WS-RenewableReferences: dựa trên chuẩn WS-Addressing của Web service để
cập nhật các thông tin mới về địa chỉ dịch vụ (endpoint references) khi các thông
tin hiện tại trở thành không hợp lệ.
WS-ServiceGroup: đặc tả giao tiếp cho phép một tài nguyên tham gia vào nhóm;
đặc tả các tác vụ cho phép lấy thông tin tài nguyên của một thành viên của nhóm
cũng như thông tin về các nhóm. Một nhóm là một tập các Web services và WS-
Resources của một lĩnh vực cụ thể (domain specific).
Trang 28
WS-BaseFault: định nghĩa các kiểu chuẩn của lỗi và cách sử dụng chúng trong
WSDL.
Ngoài ra còn có:
WS-Notification: đây là bộ đặc tả khác, tuy không thuộc về WSRF, nhưng
có quan hệ rất mật thiết, nên không thể không kể đến ở đây.
WS-Addressing: cung cấp cách thức để tìm dịch vụ web.
WSRF tách biệt giữa Web services (không trạng thái) và Resource (có trạng
thái) và định ra một cơ chế cho việc kết hợp giữa hai thành phần này lại với nhau.
Hình sau đưa ra một ví dụ về hai thành phần can bản nhất của WSRF: Web
Service cung cấp một giao tiếp cho phép truy cập vào các tài nguyên (resources) có
trạng thái (các file).
WSRF sẽ quy định cách thức kết hợp để người dùng từ xa, thông qua
giao tiếp Web service có thể truy cập vào tài nguyên yêu cầu. Việc kết hợp này
được mô tả trong Hình 12.
Trang 29
8. WSRF đã gi i quy t v n đ cũ nh th nào?ả ế ấ ề ư ế- về sự phức tạp và cồng kềnh của đặc tả. WSRF đã chia và gom nhóm đặc tả
lại thành 5 nhóm chính và nhóm WS-Notification bổ sung;
- thiếu tính tương thích với công cụ có sẵn của web service: WSRF quay trở lại
dùng ngôn ngữ WSDL 1.1 cho việc mô tả interface, thay vì GWSDL, một phiên bản
vá (patched) của WSDL dùng cho OGSI.
- quá “hướng đối tượng”: WSRF đã tách bạch giữa “service” và stateful
“resource”. Các dịch vụ web bây giờ trở lại như ban đầu, không phải mang thông tin
trạng thái nữa. Điều này hẳn làm hài lòng cộng đồng “chung thủy” với dịch vụ web.
9. WSRF phát bi u l i OGSIể ạWSRF vẫn giữ mối quan hệ gắn bó của nó và OGSA/OGSI. Bảng sau đây cho
thấy sự tương quan đó.
OGSI WSRF
Grid Service Reference (GSR) WS-Addressing Endpoint Reference
Grid Service Handle (GSH) WS-Addressing Endpoint Reference
Trang 30
HandleResolver portType WS-RenewableReferences
Service data elements (SDE) WS-ResourceProperties
GridService lifetime managementt WS-ResourceLifeCycle
Notification portTypes WS-Notification
Factory portType Treated as a pattern
ServiceGroup portTypes WS-ServiceGroup
Base fault type WS-BaseFaults
10. Hiện thực WSRF
WSRF được hiện thực trong phiên bản thứ 4 của Globus Toolkit. Hình sau cho
thấy quan hệ giữa các phần hiện thực của WSRF.
Trang 31
Hiện thực của GT4
WSRF là một cải tiến lớn, có hiệu quả trong việc phát triển hệ thống lưới, bằng
việc tiếp tục kế thừa những ưu điểm và khắc phục hạn chế của OGSI/OGSA. Hiện
WSRF được hỗ trợ bởi những công ty lớn, và đang được ứng dụng phổ biến ở những
phiên bản mới của GT.
VII. Thay cho lời kếtTính toán lưới vẫn đang trong giai đoạn phát triển và tìm những hướng đi cho
riêng mình, vì tính chất đặc thù của nó. Với sự hỗ trợ, chuẩn hóa của kiến trúc OGSA,
OGSI và gần đây là WSRF, hệ thống lưới ngày càng trở nên thân thiện và phổ biến
hơn trong cộng đồng sử dụng. Nhất là với sự ra đời của WSRF, người ta có thể tin vào
sự “hội tụ” của nền tảng dịch vụ web truyền thống vốn đã phát triển mạnh, và sức
mạnh của hệ thống tính toán lưới. Trong khi chờ đợi các kiến trúc này trở nên ổn định
hơn, thì Globus Toolkit vẫn là một chuẩn phổ biến, nhưng chưa chính thức (trong
tiếng latin là de facto) và là một trong những phần mềm quan trọng trong sự phát triển
hệ thống lưới.
VIII. Tài liệu tham khảo[1] The Physiology of the Grid, Ian Foster, Carl Kesselman, Jeffrey M. Nick,
Steven Tuecke, 2002
[2] Towards a service-oriented Grid, Borja Sotomayor, University of Deusto, 2004
[3] SOA, Web Service In Grid Computing, Phạm Hùng Tiến, Đặng Hoài Đức, K2008
[4] Open Grid Services Architecture, Ian Foster, University of Chicago, 2003
[5] WS-Resource Framework: Globus Alliance Perspectives, Ian Foster, University of
Chicago, 2003
[6] OGSA, WSRF, and the Foundations of Grid, David Snelling, Fujitsu Laboratories
of Europe, 2005
[7] Global Globus Forum http://www.globus.org
[8] Wikipedia: http://wikipedia.org/
[9] IBM: http://www.ibm.com/developerworks/library/ws-resource/
Trang 32