Danh mục

CÔNG NGHỆ GRID COMPUTING VÀ ỨNG DỤNG THỬ NGHIỆM TRONG BÀI TOÁN QUẢN TRỊ MẠNG - 10

Số trang: 23      Loại file: pdf      Dung lượng: 663.67 KB      Lượt xem: 12      Lượt tải: 0    
tailieu_vip

Phí tải xuống: 14,000 VND Tải xuống file đầy đủ (23 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Phụ lụcỞ đây định nghĩa các kiểu của các thành phần add và addResponse. Trên đây vừa trình bày sơ nét về cấu trúc cơ bản của file GWSDL, có thể thêm các kiểu mới, mở rộng bằng cách tham khảo các không gian tên đã được định nghĩa sẵn.C. Kỹ thuật cài đặt các chức năng cơ bản của Grid ServiceC.1. Kỹ thuật cài đặt Operation ProviderNhư đã giới thiệu, GT3 hỗ trợ 2 cách cài đặt interface trong ngôn ngữ lập trình, cách thứ nhất là kỹ thuật sử dụng tính kế thừa, ở đây lớp MathImpl kế...
Nội dung trích xuất từ tài liệu:
CÔNG NGHỆ GRID COMPUTING VÀ ỨNG DỤNG THỬ NGHIỆM TRONG BÀI TOÁN QUẢN TRỊ MẠNG - 10Phụ lục <!-- Messages --> <!-- PortType --> Ở đây định nghĩa các kiểu của các thành phần add và addResponse. Trên đây vừa trình bày sơ nét về cấu trúc cơ bản của file GWSDL, có thể thêmcác kiểu mới, mở rộng bằng cách tham khảo các không gian tên đã được định nghĩasẵn.C. Kỹ thuật cài đặt các chức năng cơ bản của GridServiceC.1. Kỹ thuật cài đặt Operation Provider Như đã giới thiệu, GT3 hỗ trợ 2 cách cài đặt interface trong ngôn ngữ lập trình,cách thứ nhất là kỹ thuật sử dụng tính kế thừa, ở đây lớp MathImpl kế thừa từ lớpGridServiceImpl, do GridServiceImpl có tất cả các chức năng cơ bản nên MathImplchỉ cần cài đặt tất cả các phương thức của Math portType là đủ. Như trên hình 0-1,lớp MathImpl chứa tất cả các hàm cài đặt cho các phương thức của portType (Lưuý, ở đây có nhiều hàm hơn). Tuy nhiên, cài đặt tất cả các phương thức của portTypechỉ trong một lớp có thể gây ra nhiều bất tiện đặc biệt là đối với các portType lớn,có nhiều phương thức. Và kỹ thuật này, đối với Java, lớp MathImpl không thể kếthừa từ một lớp nào nữa, điều này hạn chế việc tái sử dụng mã. - 193 -Phụ lục Hình 8-1 Lớp triển khai interface của Grid service bằng kỹ thuật kế thừa. GT3 đưa một hướng tiếp cận mới để giải quyết khuyết điểm của kỹ thuật sửdụng tính kế thừa, đó là kỹ thuật uỷ quyền. Hướng tiếp cận này cho phép phân táncác nhóm phương thức vào các lớp khác nhau, các lớp này được gọi là OperationProvider. Như trên hình 0-2, có thể chia lớp MathImpl thành 3 lớp, ứng với từngnhóm phương thức. Hình 8-2 Cài đặt intrface củaGrid service bằng kỹ thuật Operation Provider Lưu ý là 3 lớp này không thừa kế từ lớp nào hết, chúng chỉ cài đặt một interfacetên là Operation Provider. Lúc này các chức năng của lớp GridServiceImpl khôngđược kế thừa từ đây mà được yêu cầu Grid service container cung cấp thông quabản đặc tả triển khai. Khi tiến hành cài đặt theo cách tiếp cận này, có một số thayđổi nhỏ so với kỹ thuật sử dụng tính kế thừa, như trình bày dưới đây. Lớp cung cấp hoạt động (Operation Provider) ở đây gọi là MathProvider cũnggiống như các lớp của MathImpl trước đây, chỉ khác là ở đây cài đặt thêm interfaceOperationProvider, file :$GRIDSER_DEMO/org/globus/progtutorial/services/core/providers/impl/MathProvider.java - 194 -Phụ lục package org.globus.progtutorial.services.core.providers.impl; import org.globus.ogsa.GridServiceBase; import org.globus.ogsa.GridServiceException; import org.globus.ogsa.OperationProvider; import java.rmi.RemoteException; import javax.xml.namespace.QName; //Luu y o day cai dat OperationProvider public class MathProvider implements OperationProvider { // Cac thuoc tinh cua Operation provider //Khai bao namespace private static final String namespace = http://www.globus.org/namespaces/2004/02/progtutorial/MathService; //Khai bao ten cac phuong thuc duoc cung cap, tuong ung voi file GWSDL private static final QName[] operations = new QName[] { new QName(namespace, add), new QName(namespace, subtract), new QName(namespace, getValue) }; private GridServiceBase base; // Cac phuong thuc cua Operation Provider public void initialize(GridServiceBase base) throws GridServiceException { this.base = base; } public QName[] getOperations() { return operations; } //Cai dat private int value = 0; public void add(int a) throws RemoteException { value = value + a; } //-------- tuong tu MathImpl---------- } File đặc tả triển khai cũng có một số thay đổi, file :$GRIDSER_DEMO/org/globus/progtutorial/services/core/providers/server-deploy.wsdd - 195 -Phụ lục Các thao tác khác để triển khai service hoàn toàn tương tự như đã giới thiệu ởtrên.C.2. Thêm thành phần dữ liệu (Service Data Element (SDE)) Như đã biết, mỗi Grid service đều có các SDE của riêng mình, phần này sẽ xemxét kỹ thuật thêm SDE cho một service. Ở đây chúng ta thêm một SDE có tên làMathData chứa các thông tin như giá trị hiện tại (value), phép toán thực hiện cuốicùng (lastOp), số phép toán đã thực hiện (numOp), MathData chỉ có một và chỉ mộtgiá trị (cardinality = 1..1) được mô tả trên hình 0-3: Hình 8-3 Ví dụ về SDE của MathService + Đặc tả SDE Việc định nghĩa một SDE cho một service thông qua file đặc tả GWSDL, tuynhiên MathData là một kiểu phức tạp nên mặc dù có thể đặc tả kiểu này trong fileGWSDL, chúng ta có thể đặc tả trong một file khác. File :$GRIDSER_DEMO/schema/progtutorial/M ...

Tài liệu được xem nhiều: