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 đó.. Các dị
Trang 1Trường Đại Học Công Nghệ Thông Tin
BÁO CÁO CHUYÊN ĐỀ
Trang 2Mục lục
Trang 3TÌM HIỂU GRID SERVICE
I. Giới thiệu:
1. Định nghĩa 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
2 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ề trạng 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ó 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
Trang 4II. Kiến trúc dịch vụ lưới mở (Open Grid Service Architecture (OGSA)):
1. Giới thiệu tổng quan
Trải qua lịch sử hình thành và phát triển, một ứng dụng phân bố có thể được xây dựng dựa trên những kỹ thuật khác nhau (Hình 1.1) Từ lập trình socket (Socket
Programming) đến kỹ thuật gọi thủ từ từ xa (Remote Procedure Calls – RPC), … và hiện nay đang phát triển mạnh mẽ với kỹ thuật dựa trên nền tảng của các dịch vụ web (Web Services).
Hình 1.1: Các kỹ thuật xây dựng ứng dụng phân bố
Tuy nhiên, trong một ứng dụng lưới - Grid, thường có khá nhiều dịch vụ (service) khác nhau Điển hình như: dịch vụ quản lý tổ chức ảo - VO Management Service, dịch vụ khám phá và quản lý tài nguyên - Resource Discovery and Management Service, dịch vụ quản lý các tác vụ - Job Management service, các dịch vụ liên quan đến bảo mật, v.v Các dịch vụ này không ngừng tương tác với nhau, chẳng hạn 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 Khi đó, để các dịch vụ này có thể làm việc chung với nhau một cách hiệu quả, đòi hỏi cần phải xây dựng một chuẩn chung thống nhất cho các dịch vụ Grid 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 hạ tầ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
Trang 5độ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), tại Global Grid Forum 4 vào tháng 2 năm 2002 bởi nhóm Globus và IBM 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 giao diện - interface chuẩn cho các dịch vụ này
Cụ thể, OGSA định nghĩa một tập các giao tiếp lỏi (core interface), và các 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 hệ thố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 1.2 cho thấy mô hình tổng quát của OGSA
Hình 1.2: Kiến trúc mô hình OGSA
Trang 62. Liên quan giữa OGSA, web service và grid service
Tương tự 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, RPC, RMI, Tuy nhiên, dịch vụ web được chọn vì có những ưu điểm nổi trội sau:
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 bất đồng nhất, hỗn tạp như Grid
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 Persistent), thiếu sự hỗ trợ cho các dịch vụ về phản hồi thông tin trạng thái dịch vụ, cũng như khả năng quản lý thời gian sống của dịch 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ụ lưới), 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 nội tại trong 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
Trang 7nghĩ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.
Hình 1.3: Mối quan hệ giữa OGSA và OGSI với Grid service, Web service
3. Open grid services infrastructure
OGSA không đặc tả chi tiết cách hiện thực các dịch vụ lưới trên dịch vụ web, nó chỉ đặc tả các chuẩn chung cho các dịch vụ hỗ trợ cho dịch vụ lưới Chúng được phân thành hai loại: OGSA Platform Service và OGSA Core Service Để hỗ trợ và chuẩn hoá các OGSA Core Service này, OGSI được đặc tả như là chuẩn chung cho cách hiện thực các dịch vụ lỏi này
Trang 8Hình 1.4: Vị trí của OGSI trong mô hình OGSA
Một số khái niệm 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 Vì vậy chúng được xem như không có tính tạm thời (Non-Transient) 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ụ (Service Instance) Phần mô tả sẽ định nghĩa các giao diện (Interface) chuẩn và hành vi của dịch vụ Các thể hiện (Instances) sẽ hiện thực các hành vi này
Trang 9Hình 1.5: Tác vụ của người dùng kích hoạt nhiều thể hiện GS khác nhau
b Service state, metadata, and introspection:
WSDL chuẩn không có khái niệm “trạng thái” của service (Stateless) Vì thế OGSI đưa ra khái niệm dữ liệu dịch vụ (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ừ các thể hiện dịch vụ khác nhau
Trang 10Hình 1.6: Sơ đồ phân cấp của service factory, service data và service data elementsỨ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ể truy vấn (query) thông tin trạng thái ứng dụng
- Push mode: client đăng ký với các 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 phản hồi (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
Trang 11OGSI đư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 có 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
Hình 1.7: 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
Trang 12- 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
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 tiêu biểu
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
NotificationSource Cho phép client đăng ký các thông điệp
notificationNotificationSubscription 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 instanceServiceGroup 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
Trang 13Hình 1.8: Cấu trúc của một dịch vụ lưới trong OGSA
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
Trang 14- Data naming and access
- Replication
- Metadata and provenance
Resource and Service Management
- Provisioning and resource management
- Service orchestration
- Transactions
- Administration and deployment
h OGSA và Stateful service:
Tuy nhiên, kiến trúc dịch vụ gird đượ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à chi tiết
sẽ được đề cập ở phần sau
4 OGSA hiện thực trong GT3
Phiên bản Globus ToolKit 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 cho các ứng dụng 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
Trang 15Hình 1.9: Cấu trúc của Globus ToolKit 3
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
Trang 16a Mô hình lập trình GT3:
Về cơ bản, mô hình lập trình của phần lỏi GT3 tương tự như mô hình lập trình dịch
vụ web Sử dụng các stub phía client và các skeleton (trong GT3, gọi là stub) phía server Các stub này có độ kết dính thấp Tuy nhiên, mô hình lập trình GT3 còn có thêm một số đặc tính sau:
- GT3 sử dụng GWSDL để định nghĩa các giao tiếp dịch vụ GWSDL thực chất
là WSDL bổ sung thêm các dạng đặc tả trong OGSI, các thông điệp, các portType và các namespace phù hợp trong OGSI
- Web Services Deployment Descriptor (WSDD) chứa các thông tin liên quan
đến việc triển khai các dịch vụ lưới, như: tên của dịch vụ, tên của các thể hiện dịch vụ và các lớp cơ sở của thể hiện dịch vụ
- Dịch vụ lưới có thể là các dịch vụ mang tính tạm thời Chúng có thể được khởi
tạo động và bị huỷ một cách tường minh
- Dịch vụ lưới mang tính trạng thái (Stateful) và được kết hợp với dữ liệu dịch
vụ
- Dịch vụ lưới có tính phản hồi thông báo cho các client khi có nhu cầu.
Trang 17Hình 1.10: Các thành phần trong một ứng dụng lưới hiện thực sử dụng GT3
Như vậy, một ứng dụng lưới được hiện thực trong GT3 với công cụ Apache Axis bao gồm các bước sau:
- Viết đặc tả giao diện (interface) dịch vụ lưới Có thể sử dụng Java, WSDL hoặc
GWSDL
- Viết một dịch vụ để hiện thực giao diện dịch vụ lưới trên.
- Viết file WSDD để triển khai (deploy) một Grid Service factory.
- Sử dụng trình dịch của GT3 để biên dịch file đặc tả giao diện và file hiện thực
để đóng gói thành GAR file
- Sử dụng Apache Ant để triển khai GAR file vào bộ chứa dịch vụ lưới (Grid
Service Container) cho phép sử dụng dịch vụ (pushlish the service)
Trang 18- Viết file đặc tả yêu cầu dịch vụ phía client Mục đích để kích hoạt thao tác tạo
một thể hiện dịch vụ Client sẽ nhận được một GSH của factory, sau đó, sẽ nhận GSR Cuối cùng client sử dụng GSR của thể hiện để truy xuất thể hiện dịch vụ đó
- Kích hoạt bộ chứa dịch vụ lưới.
- Kích hoạt ứng dụng phía client để yêu cầu dịch vụ vừa xây dựng.
Như vậy, có thể tóm tắt việc xây dựng một ứng dụng dịch vụ lưới cơ bản trên GT3, người xây dựng phải tiến hành theoo trình tự 8 bước trên Kết quả tạo ra các thành phần
cơ bản phía service và phía client như giới thiệu ở hình 1.11 và hình, như hình 11 và hình 12
Hình 1.11: Các thành phần cơ bản phía Service trong GT3
Trang 19Hình 1.12: Các thành phần cơ bản phía Client trong GT3
5 Web Service Resource Framework
a Tổng quan về WSRF:
OGSI cung cấp một cơ cấu cho phép phát triển, triển khai và quản lý thời gian sống (lifetime management) các dịch vụ lưới Tuy nhiên, OGSI vẫn còn để lộ nhiều điểm yếu như:
- Giải quyết quá nhiều vấn đề trong cùng một bản đặc tả.
- GWSDL không theo chuẩn của Web service khiến các công cụ có sẵn trong
Web service không sử dụng được
- Sự nhập nhằng giữa Web service không trạng thái (stateless) và Web service có
trạng thái (stateful)
WSRF trên cơ sở nhóm lại các tác vụ của OGSI đồng thời sử dụng các chuẩn mới hình thành của kiến trúc Web services như WS-Addressing, WS-Notification để giải quyết các nhược điểm của OGSI 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ụ