1. Trang chủ
  2. » Công Nghệ Thông Tin

tính toán lưới - gtlinux

52 271 3
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tính toán Lưới - GTLinux
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa học máy tính
Thể loại Báo cáo thực hành
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 52
Dung lượng 855 KB

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

Nội dung

Nếu thiết lập tường lửa, cần phải mở các cổng TCP sau đây để lắng nghe các dịch vụ và thành phần của Globus Toolkit.. Bước 1: Định nghĩa giao diện dịch vụ Bước đầu tiên để viết một dịch

Trang 1

Chương này mô tả quá trình cài đặt và cấu hình Globus Toolkit 4.0 Chúng tôi

sẽ triển khai cài đặt Globus Toolkit trong mạng gồm 3 máy tính Các vấn đề chínhtrong chương này gồm có:

• Download Globus Toolkit 4.0

• Các gói tin của Globus Toolkit 4.0

• Mô hình môi trường mạng Grid

• Cài đặt Globus Toolkit 4.0

• Cấu hình và thử nghiệm môi trường Grid

• Gỡ bỏ Globus Toolkit 4.0

1.1 Download Globus Toolkit 4.0

Globus Toolkit 4.0 là phần mềm mã nguồn mở hỗ trợ nhiều hệ điều hành Cácgói tin binary hỗ trợ môi trường Windows, Linux (SuSE Linux 9/8, Red Hat Linux 9,Fedora Core 2/3 và Debian 3.1) và Solaris 9 Việc biên dịch GT4 từ các gói tin nguồn

có thể hỗ trợ thêm các hệ điều hành AIX và Mac OS X Các thành phần phát triển trênnền tảng Java như WSRF hoặc WS Java Core đều tương thích với các hệ điều hành hỗtrợ Java, trong đó có Windows Hiện nay, việc sử dụng hệ điều hành Linux để pháttriển môi trường Grid đang trở nên phổ biến Vì vậy, chúng tôi sử dụng hệ điều hànhFedora Core 3 để phát triển môi trường Grid Các gói tin sử dụng là các gói tin binary.Truy cập địa chỉ: http://www.globus.org/toolkit/downloads/4.0.0/ để download các góitin này

Gói tin GT4 cho Fedora Core 3 là: gt4.0.0-ia32-fedora3-binary-installer.tar.gz

1.2 Mô hình môi trường mạng Grid

Chúng tôi sử dụng 3 máy tính để cài đặt môi trường mạng Grid

Hình 23: Mô hình mạng Grid

Các máy tính bao gồm:

Trang 2

• CA: Đây là nơi chứng thực quyền hạn Do đó, chúng tôi sử dụng SimpleCA cósẵn trong gói tin GT4.

• Host A, Host B: là các nốt mạng Grid Chúng tôi cài đặt gói tin GT4 cho cácnốt này

Host A và Host B sử dụng hai tên người dùng khác nhau là auser1 và buser1,nhưng chúng cùng chia sẻ một ID người dùng chung là:

/O=Grid/O=Globus/OU=gridk47.com/CN=grid user 1

Bảng 7.2a mô tả các máy tính của mạng Grid

Tên máy Tên host Chức năng Hệ điều hành Gói tin cài

Grid

Fedora Core 3 Gói GT4

binaryHost B hostb.gridk47.com Nốt mạng

Bảng 7.2b: Phiên bản các phần mềm sử dụng

1.3 Cài đặt Globus Toolkit 4.0

Chương này mô tả thứ tự các bước để cài đặt Globus Toolkit 4.0

1.3.1 Cài đặt các phần mềm yêu cầu cho Globus Toolkit 4.0

Trước khi cài đặt Globus Toolkit 4.0, cần cài đặt các phần mềm sau:

Tên phần mềm Phiên bản

Trang 3

[root@hosta]# rpm -ivh jdk-1_5_0_06-linux-i586-rpm.rpm

• Để thiết lập biến môi trường cho Java SDK, mở tệp /etc/profile và thêm đoạn sau:

export JAVA_HOME=/usr/local/java

export PATH=$JAVA_HOME/bin:$PATH

• Để biến môi trường hoạt động, đóng tệp /etc/profile và chạy lệnh:

[root@hosta]# etc/profile

• Để kiểm tra Java SDK đã được cài đặt thành công, dùng lệnh:

[root@hosta]# java version

b - Cài đặt Apache Ant

Để cài đặt Apache Ant:

• Lấy gói tin Apache Ant tài địa chỉ: http://ant.apache.org/

• Bung tệp nén Apache Ant:

[root@hosta]# tar xvzf apache-ant-1.6.3-bin.tar.gz -C /usr/local

• Thiết lập biến môi trường cho Apache Ant, mở tệp /etc/profile và thêm đoạn sau:

Trang 4

[root@hosta]# ant version

1.3.2 Cấu hình môi trường Linux cho Globus Toolkit 4.0

Trước khi cài đặt Globus Toolkit, cần cấu hình một số thứ trong môi trườngFedora Core 3 đang sử dụng trên các máy tính trong mạng

a-Thêm tài khoản người dùng

Trong Fedora, sử dụng lệnh: adduser để thêm một người dùng mới Ví dụ: adduser auser1 để thêm người dùng auser1 Bảng sau đây là những người dùng cần

thêm vào trong các máy tính trên mạng

Tên host Tên người dùng

Bảng 7.3b: Danh sách người dùng trên các máy tính b- Thiết lập thời gian

Trong mạng Grid computing, việc đồng bộ hoá thời gian giữa các máy tínhvới nhau là rất quan trọng Nếu thời gian không được đồng bộ, khi dùng chứng thựcGSI sẽ xảy ra lỗi Do đó, chúng tôi thiết lập time server là NTP cho môi trường Gridcủa mình và thiết lập thời gian cho tất cả các máy tính trong hệ thống

• Thực hiện tương tự với 2 máy Host A và Host B:

server (địa chỉ IP của CA) # time server

driftfile /etc/ntp/drift

• Trên tất cả các máy, cầu hình ntp deamon bằng cách dùng lệnh:

[root@hosta]# chkconfig ntpd -on

• Bắt đầu chạy dịch vụ ntp

Trang 5

[root@hosta]# service ntpd start

• Để kiểm tra thời gian đã được đồng bộ hay chưa, dùng lệnh ntpq Nếu có dấu sao(*) đằng trước tên host thì cấu hình NTP đã thành công:

[root@hosta]# ntpq -p

remote refid st t when poll reach delay offset jitter

==========================================

*ca.gridk47.com LOCAL(0) 6 u 516 1024 377 0.931 -2.258 0.262

c- Thiết lập tường lửa

Ở đây cúng tôi không thiết lập tường lửa Nếu thiết lập tường lửa, cần phải

mở các cổng TCP sau đây để lắng nghe các dịch vụ và thành phần của Globus Toolkit

Bảng 7.3c: Các cổng TCP cần mở khi thiết lập tường lửa

1.3.3 Cài đặt Globus Toolkit 4.0

Để cài đặt Globus Toolkit 4.0, chúng tôi sử dụng gói tin Binary cho FedoraCore 3

• Lấy gói tin binary, vào địa chỉ:

http://www.globus.org/toolkit/downloads/4.0.0/

• Vào người dùng globus, bung tệp nén binary:

[globus@hosta]$ tar xvzf gt4.0.0-ia32-fedora3-binary-installer.tar.gz \

-C /tmp

• Thiết lập biến môi trường cho thư mục chứa Globus:

[globus@hosta]$ export GLOBUS_LOCATION=/usr/local/globus-4.0.0

• Thay đổi quyền hạn của thư mục này cho người dùng globus:

[globus@hosta]$ su

Password:

Trang 6

[root@hosta]# mkdir $GLOBUS_LOCATION

[root@hosta]# chown globus:globus $GLOBUS_LOCATION

[globus@hosta]$ /configure prefix=$GLOBUS_LOCATION

checking for javac /usr/local/java/j2sdk1.5.0/bin/javac

checking for ant /usr/local/apache-ant-1.6.3/bin/ant

configure: creating /config.status

config.status: creating Makefile

[globus@hosta]$ make 2>&1 | tee build.log

cd gpt-3.2autotools2004 && OBJECT_MODE=32 /build_gpt

build_gpt ====> installing GPT into /usr/local/globus-4.0.0

(Bỏ qua thông tin)

[globus@hosta]$ make install

ln -s /usr/local/globus-4.0.0/etc/gpt/packages

/usr/local/globus-4.0.0/etc/globus_packages

/usr/local/globus-4.0.0/sbin/gpt-postinstall

(Bỏ qua thông tin)

config.status: creating fork.pm

Done

1.4 Cấu hình và thử nghiệm môi trường Grid

Sau khi cài đặt xong Globus Toolkit, cần phải cấu hình môi trường grid Đểcấu hình môi trường grid, cần cấu hình các thành phần sau:

• Cấu hình các biến môi trường

Trang 7

• Cấu hình bảo mật

• Cấu hình Java WS Core

• Cấu hình và kiểm tra GridFTP

1.4.1 Cấu hình các biến môi trường

Để tất cả các người dùng đều có thể sử dụng các biến môi trường của Grid.Chẳng hạn: GLOBUS_LOCATION, mở tệp /etc/profile và thêm đoạn:

a- Cài đặt các gói tin CA

Vào tài khoản người dùng globus tại máy CA

Để cài đặt simpleCA, dùng lệnh setup-simple-ca và thực hiện các bước:

[globus@ca]$ $GLOBUS_LOCATION/setup/globus/setup-simple-ca

WARNING: GPT_LOCATION not set, assuming:

GPT_LOCATION=/usr/local/globus-4.0.0

C e r t i f i c a t e A u t h o r i t y S e t u p

This script will setup a Certificate Authority for signing Globus users

certificates It will also generate a simple CA package that can be

distributed to the users of the CA.

The CA information about the certificates it distributes will be kept in:

/home/globus/.globus/simpleCA/

/usr/local/globus-4.0.0/setup/globus/setup-simple-ca: line 250: test: res:

integer expression expected

The unique subject name for this CA is:

Trang 8

cn=Globus Simple CA, ou=simpleCA-ca.gridk47.com, ou=GlobusTest, o=Grid

Do you want to keep this as the CA subject (y/n) [y]: y

Enter the email of the CA (this is the email where certificate requests will be sent to be signed by the CA): ca@gridk47.com

The CA certificate has an expiration date Keep in mind that once the CA

certificate has expired, all the certificates signed by that CA become invalid.

A CA should regenerate the CA certificate and start re-issuing ca-setup

packages before the actual CA certificate expires This can be done by

re-running this setup script Enter the number of DAYS the CA certificate

should last before it expires.

[default: 5 years (1825 days)]: (type the number of days)1825

Enter PEM pass phrase: (nhập mật khẩu chứng thực)

Verifying - Enter PEM pass phrase: (nhập mật khẩu chứng thực)

(Bỏ qua thông tin)

setup-ssl-utils: Complete

b- Thiết lập bảo mật cho các nốt mạng

Sau khi cài đặt simpleCA, một gói tin được tạo ra để cấu hình bảo mật cho cácnốt mạng khác Sao các gói tin này vào mỗi nốt mạng

• Vào tài khoản globus trên các máy Host A và Host B, sao chép gói tin tại máy CA

Trang 9

/globus_simple_ca_[ca_hash]_setup/setup-gsi -default

c- Đăng ký và xác nhận chứng thực host

Mỗi host khi tham gia mạng grid đều phải đăng ký chứng thực và được CAxác nhận chứng thực Ví dụ để đăng ký chứng thực cho Host A

• Vào tài khoản root, yêu cầu đăng ký chức thực với tên host là hosta

[root@hosta]# grid-cert-request -host hosta

grid-ca-[globus@ca]$ grid-ca-sign -in hostcert_request.pem -out hostcert.pem

To sign the request

please enter the password for the CA key: (nhập mật khẩu chứng thực)

The new signed certificate is at:

Để đăng ký chứng thực:

[auser1@hosta]$ grid-cert-request

Enter your name, e.g., John Smith: grid user 1

A certificate request and private key is being created.

You will be asked to enter a PEM pass phrase.

This pass phrase is akin to your account password,and is used to protect your

Trang 10

key file.

If you forget your pass phrase, you will need to obtain a new certificate.

Generating a 1024 bit RSA private key

++++++

++++++

writing new private key to '/home/auser1/.globus/userkey.pem'

Enter PEM pass phrase: (nhập mật khẩu chứng thực)

Verifying - Enter PEM pass phrase: (nhập lại mật khẩu chứng thực)

Để xác nhận chứng thực người dùng

• Chép tệp /home/auser1/.globus/usercert_request.pem từ máy Host A sang máy CA

• Tại máy CA, vào tài khoản globus, xác nhận chứng thực bằng cách dùng lệnh ca-sign

grid-[globus@ca]$ grid-ca-sign -in usercert_request.pem -out usercert.pem

To sign the request

please enter the password for the CA key:

The new signed certificate is at:

/home/globus/.globus/simpleCA//newcerts/02.pem

Chép tệp usercert.pem đè lên tệp đã có sẵn tại thư mục /home/auser1/.globus/

ở Host A

• Để kiểm tra người dùng đã được chứng thực, vào tài khoản auser1 và dùng lệnh:

grid-proxy-init -debug -verify

[auser1@hosta]$ grid-proxy-init -debug -verify

User Cert File: /home/auser1/.globus/usercert.pem

User Key File: /home/auser1/.globus/userkey.pem

Trusted CA Cert Dir: /etc/grid-security/certificates

Output File: /tmp/x509up_u511

Trang 11

Proxy Verify OK.

e- Ánh xạ người dùng local với người dùng grid

Globus Toolkit 4.0 yêu cầu ánh xạ giữa người dùng được xác thực grid vớingười dùng local

• Để lấy tên người dùng được xác thực grid, dùng lệnh grid-cert-request

[auser1@hosta]$ grid-cert-info -subject -f /home/auser1/.globus/usercert.pem /O=Grid/OU=GlobusTest/OU=simpleCA-

Trang 12

• Để xem thông tin người dùng được ánh xạ, mở tệp /etc/grid-security/grid-mapfile

"/O=Grid/OU=GlobusTest/OU=simpleCA-ca.gridk47.com/OU=gridk47.com/CN=grid user 1" auser1

• Để kiểm tra tệp ánh xạ, dùng lệnh: grid-mapfile-check-consistency

[root@hosta]# grid-mapfile-check-consistency

1.4.3 Cấu hình Java WS Core

Để kiểm tra Java WS Core đã được cài đặt thành công, thực hiện như sau:

• Vào tài khoản globus, thực hiện lệnh:

globus-start-container

hoặc

globus-start-container –nosec

nếu chạy ở chế độ không bảo mật

• Sau khi tiến trình hoàn thành, xuất hiện thông điệp như sau:

1.4.4 Cấu hình và kiểm tra GridFTP

Phần này mô tả việc cài đặt và thử nghiệm với GridFTP

a- Cài đặt GridFTP

• Để cài đặt GridFTP, gán dịch vụ GridFTP với tên gsiftp và cổng TCP là 2811 bằngcách mở tệp /etc/services và thêm dòng:

gsiftp 2811/tcp # GridFTP

Trang 13

• Tạo tệp /etc/xinetd.d/gsiftp với nội dung sau:

service gsiftp

{

instances = 100 socket_type = stream wait = no

user = root env += GLOBUS_LOCATION=/usr/local/globus-4.0.0 env += LD_LIBRARY_PATH=/usr/local/globus-4.0.0/lib server = /usr/local/globus-4.0.0/sbin/globus-gridftp-server server_args = -i

log_on_success += DURATION nice = 10

disable = no }

• Khởi động lại xinetd daemon:

[root@hosta]# service xinetd restart

Stopping xinetd: [ OK ]

Starting xinetd: [ OK ]

b- Thử nghiệm GridFTP

Tiến hành các bước thử nghiệp GridFTP

• Vào tài khoản người dùng đã được chứng thực quyền hạn bởi máy CA Ví dụ:auser1

• Dùng lệnh: grid-proxy-init để khởi tạo proxy

• Dùng lệnh globus-url-copy <URL nguồn> <URL đích> để kiểm tra hoạt động củaGridFTP

Trang 14

1.5 Gỡ bỏ Globus Toolkit 4.0

Phần này hướng dẫn gỡ bỏ bộ công cụ Globus Toolkit 4.0 Để thực hiện gỡ

bỏ, thực hiện các bước sau:

• Đóng WS Core nếu đang chạy

• Vào tài khoản root, xoá các thư mục chứa globus tookit, grid security và apache ant

[root@hosta]# rm -rf /usr/local/globus-4.0.0/

[root@hosta]# rm -rf /etc/grid-security/

[root@hosta]# rm -rf /usr/apache-ant-1.6.3/

• Xóa các biến môi trường đã khởi tạo trong tệp /etc/profile

• Xóa dịch vụ GridFTP bằng cách xóa dòng: gsiftp 2811/tcp trong tệp: /etc/services

• Xóa GridFTP daemon bằng việc thực hiện lệnh:

Trang 15

Chương 2.Các bước lập trình một chương trình Grid

Chương này, chúng tôi sẽ lấy một chương trình có sẵn, rất đơn giản, đó làchương trình Math Service, để mô tả các bước lập trình một dịch vụ Grid trên GridComputing Chương trình được viết trên nền ngôn ngữ Java

2.1 Giới thiệu sơ lược về chương trình Math Service

Math Service là một dịch vụ Web đơn giản có trạng thái, sử dụng WSRF đểlưu trữ các trạng thái thông tin Nó cho phép người dùng thực hiện các phép toán:

• Phép toán cuối (string)

Ta cũng thêm một phép toán "Get Value" để truy cập vào giá trị RP Logic củaMath Service rất đơn giản Khi một tài nguyên mới được tạo ra, mọi "giá trị" RP đềuđược khởi tạo bằng 0, và "phép toán cuối" RP được khởi tạo là "NONE" Các phép

toán cộng và trừ chỉ cần một tham số nguyên Tham số này được cộng/trừ với "giá trị"

RP, và theo đó "phép toán cuối" RP được thay đổi bằng "ADDITION" hoặc

"SUBTRACTION" Ngoài ra, các phép toán cộng/ trừ không trả lại giá trị

2.2 Các bước lập trình chương trình Math Service

Đối với chương trình Math Service nói riêng và một chương trình dịch vụGrid nói chung, nhìn chung có 5 bước lập trình Các bước gồm có:

• Định nghĩa giao diện dịch vụ Sử dụng WSDL

• Thực thi dịch vụ Sử dụng Java

• Định nghĩa các tham số của việc triển khai Sử dụng WSDD và JNDI

• Biên dịch và tạo tệp GAR Sử dụng Ant

• Triển khai dịch vụ Sử dụng GT4

Trang 16

Trong phần này, chung tôi sẽ lần lượt mô tả các bước nêu trên

2.2.1 Bước 1: Định nghĩa giao diện dịch vụ

Bước đầu tiên để viết một dịch vụ Grid là định nghĩa giao diện dịch vụ Mộtdịch vụ Grid có nhiều người dùng tương tác Mỗi người dùng tương tác với dịch vụbằng cách gửi yêu cầu Dịch vụ tiếp nhận yêu cầu người dùng, xử lý yêu cầu và trả lạiđáp ứng yêu cầu của người dùng đó Giao diện dịch vụ để xác định những chức năng

mà dịch vụ có thể cung cấp cho người dùng Trong chương trình Math Service, giaodiện dịch vụ là những phép toán mà người dùng có thể yêu cầu đến dịch vụ Theo mô

tả bài toán ở trên, giao diện dịch vụ của chương trình Math Service gồm 3 phép toán:

cộng, trừ và lấy giá trị Giao diện dịch vụ còn gọi là port type (được viết là portType).

Một giao diện dịch vụ Web cũng như dịch vụ Grid được viết trong tệp dưới dạng.wsdl Đây là tệp mô tả giao diện dịch vụ Web/Grid Có 2 cách để viết tệp mô tả này:Cách 1: Định nghĩa giao diện bằng tệp Java, sau đó chuyển đổi tệp Java sang tệp wsdl.Giao diện dịch vụ Math Service viết bằng Java như sau:

public interface Math

{

public void add(int a);

public void subtract(int a);

public int getValueRP();

}

Cách 2: Viết trực tiếp một tệp wsdl Tệp mô tả giao diện wsdl có các thành phần sau:

• Phần HEADER: Đầy là phần định nghĩa tên, đường dẫn và namespace của dịch vụ

• Phần TYPES: Phần này định nghĩa các biến, kiểu biến và các thuộc tính tài nguyên

• Phần MESSAGES: Là phần định nghĩa các thông điệp mà người dùng và dịch vụtương tác với nhau

• Phần PORTTYPE: Là phần định nghĩa các phép toán mà người dùng và dịch vụtương tác với nhau

Tệp định nghĩa giao diện của chương trình Math Service đầy đủ như sau:

Trang 17

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="MathService"

targetNamespace="http://www.globus.org/namespaces/examples/core/MathService_instance"xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.globus.org/namespaces/examples/core/MathService_instance"

<! REQUESTS AND RESPONSES >

<xsd:element name="add" type="xsd:int"/>

Trang 18

<xsd:element name="Value" type="xsd:int"/>

<xsd:element name="LastOp" type="xsd:string"/>

<xsd:element name="MathResourceProperties">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="tns:Value" minOccurs="1" maxOccurs="1"/>

<xsd:element ref="tns:LastOp" minOccurs="1" maxOccurs="1"/>

Trang 19

a- Thành phần Qnames

Trong dịch vụ Grid, QName là một tên bao gồm tên của namespace và tênlocal Ví dụ QName của Value RP là:

{http://www.globus.org/namespaces/examples/core/MathService_instance}Value

Sử dụng lớp MathQNames để định nghĩa rút gọn QName

Trang 20

package org.globus.examples.services.core.first.impl;

import javax.xml.namespace.QName;

public interface MathQNames {

public static final String NS = "http://www.globus.org/namespaces/\ examples/core/MathService_instance";

public static final QName RP_VALUE = new QName(NS, "Value");

public static final QName RP_LASTOP = new QName(NS, "LastOp");

public static final QName RESOURCE_PROPERTIES = new

MathService thực thi 2 giao diện là Resource (mô tả tài nguyên dịch vụ Grid)

và ResourceProperties (mô tả các thuộc tính tài nguyên dịch vụ Grid)

Tài nguyên dịch vụ gồm 2 thành phần: Value: kiểu xsd:int và LastOp: kiểuxsd:string

/* Resource properties */

private int value;

private String lastOp;

Các phép toán: lấy giá trị và đặt giá trị được thực thi như sau:

/* Get/Setters for the RPs */

public int getValue() {

Trang 21

public void setLastOp(String lastOp) {

public MathService() throws RemoteException {

this.propSet = new SimpleResourcePropertySet(

MathQNames.RESOURCE_PROPERTIES);

try { /* Initialize the RP's */

ResourceProperty valueRP = new ReflectionResourceProperty(

MathQNames.RP_VALUE, "Value", this);

this.propSet.add(valueRP);

setValue(0);

ResourceProperty lastOpRP = new ReflectionResourceProperty(

MathQNames.RP_LASTOP, "LastOp", this);

Hàm add() và getValueRP() thực thi các phép toán cộng và lấy giá trị:

public AddResponse add(int a) throws RemoteException {

value += a;

lastOp = "ADDITION";

return new AddResponse();

}

Trang 22

public int getValueRP(GetValueRP params) throws RemoteException {

return value;

}

2.2.3 Bước 3: Định nghĩa việc triển khai dịch vụ.

Hai bước quan trọng để lập trình một dịch vụ Grid đã được tiến hành bao gồmđịnh nghĩa và thực thi dịch vụ Vậy làm thế nào để các Client có thể kết nối với dịch

vụ này? Bước 3 sẽ thực hiện công việc đó Định nghĩa việc triển khai dịch vụ nói choGrid container (là thành phần chứa các dịch vụ Grid, có trong bộ công cụ GlobusToolkit 4.0) biết được làm thế nào để quảng bá dịch vụ Math Service này Chẳng hạnnhư nói cho Grid container biết được địa chỉ URI của dịch vụ Tệp định nghĩa việctriển khai như sau:

<parameter name="allowedMethods" value="*"/>

<parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/>

<parameter name="scope" value="Application"/>

<parameter name="providers" value="GetRPProvider"/>

<parameter name="loadOnStartup" value="true"/>

</service>

</deployment>

Các thành phần được định nghĩa bao gồm:

• service name: xác định địa chỉ URI của dịch vụ trong Grid container Ở đây là:

http://localhost:8080/wsrf/services/examples/core/first/MathService

Trang 23

• className: xác định lớp thực thi giao diện dịch vụ

• tệp WSDL: xác định tệp định nghĩa giao diện dịch vụ wsdl

• Load on startup: cho phép dịch vụ được nạp khi khởi động Grid container

2.2.4 Bước 4: Biên dịch và tạo tệp GAR

Ở các bước trên, mỗi khi hoàn thành mỗi bước lại tạo ra mỗi loại thành phầnriêng rẽ Vậy làm thế nào để triển khai được các thành phần đó vào trong Gridcontainer cũng như biên dịch các tệp thực thi Java Bước này sẽ thực hiện việc tạo tệpnén GAR chứa các thành phần trên Chức năng của tệp GAR:

• Liên kết các tệp wsdl

• Khởi tạo và biên dịch các lớp từ các thành phần trong tệp wsdl

• Biên dịch các tệp thực thi Java

• Tổ chức các tệp lại với nhau trong một cấu trúc đường dẫn xác định

Công cụ Ant (có trong phần mềm Apache Ant đã cài đặt) có chức năng biên dịch vàtạo tệp GAR từ các thành phần ở trên Mô hình sau đây mô tả chức năng đó của Ant

Trang 24

Hình 24: Chức năng tạo tệp GAR của công cụ Ant

Để tạo tệp GAR, ta dùng script globus-build-service có trong bộ GlobusService Build Tools (GSBT) tại http://gsbt.sourceforge.net/ Cấu trúc dòng lệnh để tạotệp GAR như sau:

./globus-build-service.sh -d <đường dẫn tới dịch vụ> -s <tệp WSDL của dịch vụ>

Đối với Math Service, dòng lệnh như sau:

./globus-build-service.sh \

-d org/globus/examples/services/core/first/ \

-s schema/examples/MathService_instance/Math.wsdl

2.2.5 Bước 5: Triển khai dịch vụ

Đây là bước để triển khai dịch vụ trong Grid container Việc triển khai dịch vụvào trong Grid container tương đương với việc bung tệp nén GAR được tạo ra ở bước

4 và đưa các thành phần thích hợp vào Grid container Thực hiện dòng lệnh sau:

globus-deploy-gar $EXAMPLES_DIR/org_globus_examples_services_core_first.gar

Trang 25

Để xóa bỏ dịch vụ trong Grid container, dùng lệnh globus-undeploy-gar:

globus-undeploy-gar org_globus_examples_services_core_first

2.3. Chạy thử chương trình Math Service

Sau khi đã triển khai dịch vụ Math Service vào Grid container, khởi động Gridcontainer bằng lệnh: globus-start-container, dịch vụ sẽ bắt đầu hoạt động Nhận biếtdịch vụ đã hoạt động bằng địa chỉ URI của dịch vụ:

http://127.0.0.1:8080/wsrf/services/examples/core/first/MathService

Để kiểm tra hoạt động của dịch vụ, ta viết một Client đơn giản, gửi yêu cầuđến dịch vụ Math Service thực hiện các phép toán: cộng, trừ và lấy giá trị Lớp Clientđược viết như sau:

public class Client {

public static void main(String[] args) {

MathServiceAddressingLocator locator = new MathServiceAddressingLocator(); try {

String serviceURI=args[0];

EndpointReferenceType endpoint = new EndpointReferenceType();

endpoint.setAddress(new Address(serviceURI));

MathPortType math = locator.getMathPortTypePort(endpoint);

math.add(10); // Perform an addition

math.add(5); // Perform another addition

Trang 26

• EndpointReferenceType: là đối tượng tham chiếu đến địa chỉ của tài nguyên dịchvụ.

• MathPortType: là đối tượng tham chiếu đến giao diện (gọi là portType) của dịch vụ

Chương trình trên sẽ thực hiện phép cộng 10, cộng 5, in ra kết quả, sau đó trừ

5 và in ra kết quả Biên dịch và chạy tệp Client, ta được kết quả:

Ngày đăng: 13/03/2014, 10:14

HÌNH ẢNH LIÊN QUAN

Bảng 7.2a mô tả các máy tính của mạng Grid. - tính toán lưới - gtlinux
Bảng 7.2a mô tả các máy tính của mạng Grid (Trang 2)
Hình 24: Chức năng tạo tệp GAR của công cụ Ant - tính toán lưới - gtlinux
Hình 24 Chức năng tạo tệp GAR của công cụ Ant (Trang 24)
Hình 26: Cửa sổ cấu hình GT4 Preferences - tính toán lưới - gtlinux
Hình 26 Cửa sổ cấu hình GT4 Preferences (Trang 30)
Hình 27: Cửa sổ tạo một project GT4 - tính toán lưới - gtlinux
Hình 27 Cửa sổ tạo một project GT4 (Trang 31)
Hình 28: Cửa sổ lựa - tính toán lưới - gtlinux
Hình 28 Cửa sổ lựa (Trang 31)
Hình 29: Giao diện chính của chương trình GT4IDE với Eclipse - tính toán lưới - gtlinux
Hình 29 Giao diện chính của chương trình GT4IDE với Eclipse (Trang 32)
Sơ đồ thuật toán Trial Factoring - tính toán lưới - gtlinux
Sơ đồ thu ật toán Trial Factoring (Trang 35)
Hình 30: Sơ đồ mô tả mô hình bài toán trong mạng Grid - tính toán lưới - gtlinux
Hình 30 Sơ đồ mô tả mô hình bài toán trong mạng Grid (Trang 37)
Hình 31: Sơ đồ mô tả mô hình phân chia công việc - tính toán lưới - gtlinux
Hình 31 Sơ đồ mô tả mô hình phân chia công việc (Trang 38)
Hình 32: Sơ đồ mô tả hoạt động của Service - tính toán lưới - gtlinux
Hình 32 Sơ đồ mô tả hoạt động của Service (Trang 40)
Hình 33: Biểu đồ mô tả hoạt động của việc tạo tài nguyên - tính toán lưới - gtlinux
Hình 33 Biểu đồ mô tả hoạt động của việc tạo tài nguyên (Trang 40)
Hình 34 : Biểu đồ mô tả hoạt động của việc lấy dữ liệu b- Client - tính toán lưới - gtlinux
Hình 34 Biểu đồ mô tả hoạt động của việc lấy dữ liệu b- Client (Trang 41)
Hình 35: Sơ đồ biểu thị mối quan hệ giữa các đối tượng trong Service - tính toán lưới - gtlinux
Hình 35 Sơ đồ biểu thị mối quan hệ giữa các đối tượng trong Service (Trang 42)
Hình 36: Sơ đồ biểu thị mối quan hệ giữa các đối tượng trong Client - tính toán lưới - gtlinux
Hình 36 Sơ đồ biểu thị mối quan hệ giữa các đối tượng trong Client (Trang 46)
Hình 37: Giao diện chương trình Client - tính toán lưới - gtlinux
Hình 37 Giao diện chương trình Client (Trang 48)

TỪ KHÓA LIÊN QUAN

w