A.1 Kiến trúc hướng dịch vụ
Kiến trúc hướng dịch vụ (Service Oriented Architecture - SOA) là một giải pháp hoàn chỉnh để giải quyết ba vấn đề thách đố mà cộng đồng doanh nghiệp và khoa học đã phải đối mặt: sự không đồng nhất, sự tương thông và các yêu cầu luôn thay đổi. Hành vi của kiến trúc này có thể được biểu diễn trong Hình A-4, với ba thành phần tham gia: nhà cung cấp dịch vụ, điểm đăng ký dịch vụ và người dùng dịch vụ. Đầu tiên, một dịch vụ được một nhà cung cấp dịch vụ xây dựng, sau đó họ phát hành dịch vụ đó cho điểm đăng ký dịch vụ. Sau này, khi một người dùng cần một dịch vụ thì họ sẽ yêu cầu điểm đăng ký dịch vụ tìm cho họ xem dịch vụ đó có tồn tại hay không, và nếu có thì làm thế nào để có được nó. Cuối cùng, nếu dịch vụ đó được tìm thấy, thì các thông tin liên quan đến dịch vụ sẽ được gửi về cho người dùng đó, và dựa trên thông tin này mà người đó có thể gọi dịch vụ đó mà đang được quản lý bởi nhà cung cấp dịch vụ. Do đó, mục tiêu chính của kiến trúc này là phát triển và khai thác các dịch vụ ứng dụng, là các thành phần phần mềm có ba đặc trưng sau:
- Tính gắn kết lỏng lẻo - Sự trong suốt về vị trí - Sự độc lập với giao thức
Hình A-1: Kiến trúc Hướng Dịch Vụ.
A.2 Dịch vụ WEB A.2.1 Định nghĩa A.2.1 Định nghĩa
Sau đây là một định nghĩa khá chính thức về dịch vụ Web được trích dẫn từ [101]: “Một dịch vụ WEB là một hệ thống phần mềm được thiết kế để hỗ trợ sự tương tác
tương thông giữa máy tính với máy tính (interoperable machine-to-machine interaction) qua mạng máy tính. Nó có một giao diện được mô tả dưới một định dạng mà máy tính có thể xử lý được (đặc biệt là WSDL)” [101].
Kiến trúc phân tầng của Dịch vụ WEB được biểu diễn trong Hình A-2 [101]. Các chức năng của mỗi tầng như sau:
- Tầng Tiến trình: một tiến trình là sự kết hợp của nhiều dịch vụ WEB. Do đó, tầng này nói chung bao gồm một tập hợp các dịch vụ WEB. Ví dụ dịch vụ WEB “khám phá” cho phép tìm kiếm một dịch vụ WEB cần thiết từ tập các dịch vụ WEB. Trong khi đó, các dịch vụ WEB choreography and aggregation nhằm tạo ra các dịch vụ WEB mới bằng cách kết hợp các dịch vụ đã có.
- Tầng Mô tả: tầng này cần có một ngôn ngữ mà có thể mô tả các dịch vụ WEB mà
máy tính có thể hiểu được. Web Services Description Language (WSDL) là ngôn ngữ đã được chọn bởi vì nó đáp ứng được các yêu cầu về mô tả các dịch vụ WEB. Thông qua việc đọc một tệp WSDL của một dịch vụ WEB, máy tính có thể hiểu các thao tác nào mà dịch vụ này hỗ trợ, cũng như cách gọi các thao tác đó như thế nào.
- Tầng Thông báo: tầng này nhằm hiện thực hóa việc gọi các thao tác trong tầng mô
tả bởi việc gửi các thông báo giữa các máy. Giao thức SOAP (Simple Object Access Protocol) đã được thiết kế cho tầng này. Nó đặc tả các định dạng của các thông báo yêu cầu và các các thông báo trả lời được trao đổi giữa client và server. - Tầng Truyền thông: Tầng này quan tâm đến việc truyền thông báo giữa các client
và các server. Giao thức HTTP (HyperText Transfer Protocol) là lựa chọn chủ yếu cho tầng này, mặc dù về mặt lý thuyết thì các giao thức khác cũng có thể được sử dụng.
Hình A-2: Kiến trúc Dịch Vụ Web.
A.3 Web Service Resource Framework (WSRF) và Grid Services
Chuẩn WSRF là một sự cải tiến và thay thế cho chuẩn OGSI (Open Grid Services Infrastructure) mà là một sự mở rộng của WSDL và XML Schema. OGSI cho phép sự mô hình hóa và quản lý các dịch vụ WEB có trạng thái, nhưng nó lại có một số hạn chế như quá
cứng nhắc và không mềm dẻo. WSRF nhằm khắc phục các hạn chế này. Trong hạ tầng lưới, các dịch vụ WEB có trạng thái cũng còn được gọi là các dịch vụ lưới.
Trước khi xuất hiện các dịch vụ lưới, dịch vụ Web bị coi như một dịch vụ cô lập với mỗi thể hiện của nó hoàn toàn độc lập với các thể hiện khác của chính nó, bởi vì chúng không lưu giữ thông tin gì về trạng thái của bản thân chúng khi chúng mang nhưng kết quả đầu ra đến cho các Web client được yêu cầu. Tính không trạng thái này của dịch vụ Web làm cho mô hình client-server của chúng trở nên đơn giản. Tuy nhiên, việc phát triển các dịch dụ có tính giao tác dựa trên các dịch vụ Web đòi hỏi những thao tác phức tạp về trạng thái cố kết ở phía đầu server, và điều này không nhất quán với bản tính không trạng thái của dịch vụ Web. Vì lý do này, mà tổ chức OASIS đã chấp nhận Web Service Resource Framework (WSRF), một chuẩn mà cho phép các dịch vụ Web truy nhập vào các trạng thái cố kết của chúng theo một cách nhất quán và tương kết. Trong WSRF thì một trạng thái được gọi là tài nguyên trạng thái. WSRF nhằm mô hình hóa và quản lý các tài nguyên trạng thái dựa trên một cấu trúc được gọi là tài nguyên dịch vụ Web (WS-Resource), mà bao gồm một dịch vụ Web và các tài nguyên trạng thái gắn với nó [45]. WSRF định nghĩa các biện pháp nhờ đó:
- Tài nguyên dịch vụ Web có thể được tạo ra và hủy bỏ
- Một tài nguyên trạng thái được sử dụng khi có sự trao đổi thông báo của dịch vụ Web được thực thi
- Một tài nguyên trạng thái có thể được truy vấn và bị thay đổi nhờ sự trao đổi thông báo của dịch vụ Web. Mỗi tài nguyên trạng thái thường có nhiều thể hiện độc lập mà chúng có thể được tạo ra và tiêu hủy. Khi một thể hiện mới của một tài nguyên trạng thái được tạo ra, thường là do một dịch vụ Web được gọi với cái tên là nhà sản xuất tài nguyên (resource factory), nó có thể được gán cho một định danh (identity - ID) (cũng còn được gọi là khóa tài nguyên).
WSRF định nghĩa một loại quan hệ đặc biệt, được gọi là mẫu tài nguyên ngầm định, giữa một dịch vụ Web và các tài nguyên trạng thái của nó. Quan hệ này là một cơ chế nhằm gắn kết một tài nguyên trạng thái với việc thực thi sự trao đổi thông báo của dịch vụ Web. Thuật ngữ ngầm định có nghĩa là một tài nguyên trạng thái gắn kết với một trao đổi thông báo cho trước được coi như một đầu vào ngầm định cho việc thực thi yêu cầu thông báo. Đầu vào ngầm định có nghĩa là tài nguyên trạng thái này không được cung cấp như một tham số đầu vào tường minh trong thân của yêu cầu thông báo. Do đó, sự gắn kết này chủ yếu được thực hiện theo một cách động, tức là được thực hiện vào thời gian thực thi sự trao đổi thông báo [45].
Để biểu diễn địa chỉ của một dịch vụ Web được khai thác tại một điểm cuối cho trước của mạng, WSRF sử dụng cấu trúc Endpoint Reference (EPR) (Tham chiếu Điểm cuối) từ chuẩn WS-Addressing. Thành phần chính của một tham chiếu điểm cuối là một địa chỉ điểm cuối của dịch vụ Web. Tham chiếu điểm cuối cũng có thể chứa một metadata gắn với dịch
vụ Web đó, như các thông tin mô tả dịch vụ và các thuộc tính tham chiếu (tên này được dùng trong phiên bản 1.1 của WSRF. Trong phiên bản 1.2 đã được đổi thành các tham số tham chiếu). Các thuộc tính tham chiếu đóng một vai trò quan trọng trong mẫu tài nguyên ngầm định, vì nó được sử dụng để lưu giữ khóa tài nguyên của một thể hiện của tài nguyên trạng thái.
Dịch vụ lưới là dịch vụ Web mà tuân theo chuẩn WSRF. Chúng cũng còn được gọi là dịch vụ Web tương thích với WSRF (WSRF-compatible Web services).
A.4 Chương trình lập lịch
Các chương trình lập lịch là một phần của phần sụn lưới mà chịu trách nhiệm lập lịch cho các công việc/chương trình cần được thực thi. Các chức năng chính của một chương trình lập lịch gồm có:
- Gửi và giám sát công việc: chức năng này bao gồm gửi công việc từ một nút đến các nút mà sẽ có thể thực thi công việc; sau đó giám sát và kiểm soát trạng thái của các công việc đang được thực thi.
- Quản lý tài nguyên: chức năng này cho phép chương trình lập lịch có thể truy nhập, tìm và cấp phát các tài nguyên cần thiết để thực thi các công việc. Các tài nguyên có thể là tính toán, bộ nhớ, dữ liệu hoặc phần mềm.
- Tiến hành so khớp: đây là quá trình cố gắng tìm ra các tài nguyên phù hợp nhất
trong số các tài nguyên sẵn có để thực thi các công việc.
Hiện nay, có nhiều chương trình lập lịch đã được phát triển cho phần sụn lưới như Condor [59][39], GridWay [44] [81], và PBS [41]. Về so sánh chi tiết hơn giữa một số chương trình này, có thể được tham khảo thêm trong [30] [76].
A.5 Hạ tầng an ninh lưới
Trong tính toán lưới, đảm bảo an ninh luôn là một trong những bộ phận quan trọng của các ứng dụng và hệ thống lưới. Có một số vấn đề cần phải giải quyết để đảm bảo yêu cầu an ninh này [60]:
- Xác thực: là cơ chế kiểm tra xem một người dùng có đúng là đối tượng mà người đó đã khai báo hay không. Cơ chế này nhằm giúp chống lại những người dùng phi pháp bằng cách mạo danh của người khác.
- Riêng tư: là cơ chế nhằm đảm bảo rằng thông tin trao đổi giữa các bên là riêng tư, có nghĩa là chỉ những bên tham gia (bên nhận và bên gửi) mới có thể hiểu được nội dung trao đổi. Nếu ai đó có nghe lén trên đường truyền thông thì cũng không thể hiểu nội dung là gì.
- Toàn vẹn: Tính toàn vẹn của thông báo được gửi có nghĩa là phía nhận phải có thể chắc chắn rằng thông báo được nhận đúng là thông báo mà phía gửi đã gửi. Nói cách khác, mọi thay đổi về nội dung của thông báo gốc trong quá trình truyền đều có thể bị phát hiện.
- Sự cấp quyền: Đây là cơ chế mà quyết định ai có quyền gì (có thể làm gì) trên tài
nguyên nào. Điều này có nghĩa là trước khi cho phép một người dùng thực hiện một hành động trên một tài nguyên nào đó, thì hệ thống phải chắc chắn rằng người đó có đủ quyền để thực hiện hành động đó.
- Sự ủy quyền: Có nhiều tình huống trong tính toán lưới, việc cho phép một người
dùng được ủy quyền của mình cho người dùng khác để thực thi một công việc nào đó là rất hữu ích và tiện lợi. Khả năng này cũng có thể mang đến một tiện ích thú vị khác là đăng nhập một lần. Bởi vì một ứng dụng lưới có thể chạy qua nhiều tổ chức khác nhau, nên sẽ vừa bất tiện và vừa thiếu an toàn nếu bắt buộc ứng dụng phải đăng nhập lại nhiều lần, mỗi khi ứng dụng muốn truy nhập vào các tài nguyên của một tổ chức.
Trong bộ công cụ Globus Toolkit 4, có một thành phần có tên gọi Grid Security Infrastructure (GSI) đã được phát triển nhằm giải quyết các vấn đề an ninh nêu trên [93] [60]. Dựa trên Hạ tầng Khóa Công Khai (Public Key Infrastruture - PKI) và nhằm trợ giúp cho các nhà phát triển các ứng dụng lưới, GSI có các đặc điểm sau:
- Về hỗ trợ Xác thực: Nó sử dụng chứng chỉ số hóa X509 (X509 digital certificates).
- Về hỗ trợ Riêng tư: Nó cung cấp hai mức độ riêng tư: mức giao vận với một lược
đồ gọi là GSI Transport, và mức thông báo với hai lược đồ: GSI Secure Message
và GSI Secure Conversation.
- Về hỗ trợ Toàn vẹn: Đặc tính này được hỗ trợ bởi Hạ tầng Khóa Công Khai (PKI). - Về hỗ trợ sự Cấp quyền: Nó cung cấp khả năng Cấp quyền ở cả hai phía là Client
và Server.