Kiến trúc của SOA

Một phần của tài liệu Các vấn đề cơ bản trong việc tính toán lưới (Trang 32)

7. Cáccông nghệ

7.3Kiến trúc của SOA

Gồm các thành phần và các thông điệp hoạt động trao đổi giữa chúng.

o Các thành phần :

SOA có 3 thành phần cơ bản là : Service Provider, Service Requestor, Service Registry như trong hình

ServiceProvider : Chịu trách nhiệm xây dựng các service, tạo các bản mô tả cho chúng, đăng ký bản mô tả cho các dịch vụ cho một hoặc nhiều ServiceRegistry, tiếp nhận, xử lý các thông điệp yêu cầu sử dụng service từ các ServiceRequestor.

ServiceRequestor : Là các thực thể sử dụng các service cung cấp bởi ServiceProvider, ServiceRequestor tìm kiếm các bản đặt tả service trong các ServiceRegistry, lựa chọn service cần thiết và thích hợp, rồi sau đó kết nối đến ServiceProvider và sử dụng service mong muốn.

ServiceRegistry : Chịu trách nhiệm quản bá các ServiceProvider đăng ký cho nó và cho phép các dịch vụ ServiceRequestor tìm kiếm các đặt tả service trong danh sách đăng ký của nó.

o Các hoạt động chính :

• Public : Là hoạt động giữa ServiceProvider và ServiceRegistry, ServiceProvider thực hiện đăng ký giao diện service nó cung cấp cho ServiceRegistry thông qua phương thức public.

• Find : Là hoạt động giữa ServiceRequestor và ServiceRegistry, ServiceRequestor sử dụng phương thức Find để lấy danh sách service và ServiceProvider thỏa mản các yêu cầu của nó. Có thể có nhiều điều kiện tìm kiếm trong phương thức Find, ServiceRegistry sẽ tìm trong danh sách ServiceProvider rồi trả về thông tin thích hợp.

• Bind : Là hoạt động giữa ServiceRequestor và ServiceProvider. Nó cho phép ServiceRequestor thực hiện kết nối đến ServiceProvider trước khi thực hiện các lời gọi sử dụng dịch vụ. Cho phép ServiceRequestor khởi tạo proxy phía client cho service cung cấp bởi ServiceProvider. Thao tác kết nối này có thể thực hiện động hay tĩnh. Trong trường hợp kết nối động, ServiceRequestor phát sinh proxy dựa trên các thông tin lấy được từ ServiceRegistry, trong trường hợp còn lại, proxy được phát sinh trong lúc phát triển ứng dụng.

8. Web Service

• Web Service là một công nghệ được sử dụng rộng rãi để triển khai mô hình SOA vào thực tế, nó đưa ra mô hình liên lạc, trao đổi giữa ứng dụng với ứng

dụng trên cơ sở ngôn ngữ đặc tả XML. Web Service là nền tảng của Grid

service.

• Web Service sử dụng ngôn ngữ Web Services Description Language (WSDL) để mô tả nội dung và cách sử dụng service, sử dụng protocol SOA để trao đổi các thông điệp giữa các Web Service, sử dụng ngôn ngữ đặc tả Universal Description, Discovery and Interation (UDDI) để cho phép các nhà cung cấp web service đăng ký service của mình và cho phép người sử dụng web service tìm được nhà cung cấp thỏa điều kiện mong muốn. Ngoài ra còn một số chuẩn về định nghĩa và triển khai chất lượng dịch vụ của web service đang được xây

dựng như SW-Security, WS-Repliable Messaging, WS-Coordination và WS- Transsaction, . . . . .

• Về bản chất, Web Service cũng là một công nghệ tính toán phân tán như các cong nghệ : CORBA, RMI, EJB, . . . Tuy nhiên, Web Service có một số lợi điểm mà các công nghệ khác không có.

• Web Service độc lập với ngôn ngữ lập trình, độc lập với nền tảng thực thi ứng dụng do được xây dựng trên chuẩn XML. Đây cũng là lý do chính để chọn công nghệ Web Service làm nền tảng cho Grid Service để giải quyết thách thức lớn nhất của công nghệ Grid Computing là quản lý và sử dụng các tài nguyên phân tán, đa dạng, phức tạp, trên nhiều nền tảng khác nhau.

• Hầu hết các Web Service đều sử dụng protocol HTTP để truyền thông điệp (các yêu cầu service và kết quả trả về từ service), nên hỗ trợ xây dựng các ứng dụng tầm cở toàn cầu qua nhiều site, nhiều vùng bảo mật, nhiều vùng quản trị khác nhau trên nền tảng internet, do các lưu thông dạng HTTP thường không bị chặn lại khi gặp firewall hoặc proxy. Trong khi đó việc ttruyền thông của các công nghệ khác thường gặp vấn đề với firewall.

• Một số khác biệt nữa là cáccông nghệ như : CORBA và EJB hướng đến các hệ thống phân tán có độ kết hợp cao (highly coupled), trong đó client và server phải phụ thuộc chặt chẽ vào nhau. Công nghệ này thường lý tưởng cho các ứng dụng trong mạng cục bộ. Còn với công nghệ Web Service thì ngược lại hoàn toàn, client không cần biết thông tin về server và service cho đến khi nó thực sự cần sử dụng service. Do đó công nghệ Web Service thường thích hợp nhất để xây dựng các ứng có phạm vi rộng trên internet, như các ứng dụng hướng Grid. Công nghệ Web Service có thể được sử dụng để quản lý tài nguyên thay đổi động theo thời gian.

9. Cài đặt ứng dụng

Triển khai dịch vụ Grid sử dụng môi trường lập trình tích hợp Eclipse. Nền tảng được chọn là Windows.

Bước 1 : Cài đặt các gói phần mềm Các gói phần mềm cần thiết:

 Sun Java SDK V1.6.0_09 * Eclipse IDE V3.6.0

* Apache Jakarta Tomcat V6.0.29

* Sysdeo Eclipse Tomcat Launcher Plug-in V3.1 * Apache Ant 1.8.1

* GT4 WS Core 4.0.1 * globus-build-service 0.2.5 * Netbean

Cài đặt và Cấu hình Java:

1. Cài đặt gói j2sdk vào 1 thư mục (ví dụ: C:\j2sdk1.4.2_11)

2. Tạo biến môi trường JAVA_HOME=<Đường dẫn tới thư mục chứa j2sdk> (vd: JAVA_HOME=C:\j2sdk1.4.2_11)

Click chuột phải lên biểu tượng "My Computer", chọn "Properties", chọn tab "Advanced", và nhấn nút "Environment (adsbygoogle = window.adsbygoogle || []).push({});

Variables ", cuối cùng thêm biến JAVA_HOME và giá trị cho nó.

3. Thêm đường dẫn "%JAVA_HOMEBIN%" vào biến môi trường PATH

Cài đặt và Cấu hình Ant:

1. Tải gói apache-ant-1.8.1-bin.zip từ http://ant.apache.org/bindownload.cgi

2. Bung gói apache-ant-1.8.1-bin.zip này vào 1 thư mục (vd: D:\Project\apache- ant-1.8.1)

3. Tạo biến môi trường ANT_HOME=<Đường dẫn tới thư mục chứa ant> (vd: ANT_HOME= D:\Project\apache-ant-1.8.1)

Cài đặt và Cấu hình WS Core của Globus Toolkit 4.0:

1. Tải gói ws-core-4.0.1-src.zip từ http://www.globus.or...ownloads/4.0.1/

2. Bung gói ws-core-4.0.1-src.zip này vào 1 thư mục (vd: D:\Project\ws-core- 4.0.1)

3. Tạo biến môi trường GLOBUS_LOCATION=<Đường dẫn tới thư mục chứa gtk> (vd: GLOBUS_LOCATION=D:\Project\ws-core-4.0.1)

4. Chuyển tới thư mục ws-core-4.0.1 vừa bung 5. Chạy lệnh:"ant all"

Cài đặt globus-build-service:

1. Tải gói globus-build-service-gt4_0.2.5.tar.gz từ

http://gsbt.sourcefo...ent/view/28/46/

2. Bung gói globus-build-service-gt4_0.2.5.tar.gz này vào thư mục "etc" trong GLOBUS_LOCATION (vd: D:\Project\ws-core-4.0.1\etc)

Cài đặt và Cấu hình Eclipse:

1. Tải gói eclipse-SDK-3.6.0-win32.zip từ http://www.eclipse.org/downloads/

2. Bung gói eclipse-SDK-3.6.0-win32.zip này vào 1 thư mục (vd: D:\Project\eclipse)

3. Chạy file eclipse.exe trong thư mục này

Cài đặt Sysdeo Eclipse Tomcat Launcher Plug-in V3.1:

1. Tải gói tomcatPluginV31.zip từ http://www.sysdeo.co...se/tomcatplugin

2. Bung gói này vào thư mục "plugin" của Eclipse(vd: D:\Project\eclipse\plugins)

3. Khởi động lại Eclipse

Cài đặt và Cấu hình Apache Tomcat 6.0.29

1. Tải gói apache-tomcat-6.0.29.exe từ http://tomcat.apache...download-55.cgi

2. Chạy file apache-tomcat-6.0.295.exe 3. Chọn thư mục chứa Tomcat (c:\tomcat)

4. Đặt mật khẩu cho người quản trị Tomcat Server: "admin"

Bước 2.1 Thay thế JRE bằng JDK trong Eclipse (cần để chạy Tomcat) 1. Chạy chương trình Eclipse (trong D:\Project\eclipse)

2. Click Window/Preferences 3. Chọn Java/Installed JREs 4. Click Add

5. Nhập vào ô "JRE Name" = "jdk1.5.0_06" (adsbygoogle = window.adsbygoogle || []).push({});

6. Nhập vào ô "JRE Home directory" = đường dẫn tới thư mục chứa " jdk1.6.0_11" (C:\Program Files\Java\jdk1.6.0_11)

7. Click OK, Chọn check box = " jdk1.6.0_11", Click OK

Bước 2.2 Cấu hình Tomcat trong Eclipse

1. Chạy chương trình Eclipse (trong D:\Project\eclipse) 2. Click Window/Preferences

3. Chọn Tomcat

4. Chọn "Tomcat version" = "Version 6.0"

5. Nhập vào ô "Tomcat Home" = đường dẫn tới thư mục chứa "Tomcat" (c:\tomcat)

6. Chọn Tomcat/JVM Settings, Chọn JRE= jdk1.6.0_06 7. Click OK

10. Giới thiệu chương trình Demo

Tên ứng dụng File Sharing Management System: áp dụng công nghệ WSRF, gồm 3 Component

 2 Service Component: Service dùng công nghệ Globus toolkit WSRF

 GridDatabaseService: service quản lý người dùng

 ProvisionDirService: service quản lý chia sẻ file với máy tính từ xa

 File Sharing Management System: window application, dùng quản lý việc chia sẻ file với máy tính khác thông qua việc gọi service GridDatabaseService, ProvisionDirService

 2 Services component: áp dụng công nghệ Grid WSRF

GridDatabaseService: Cung cấp service về quản lý user login

 Dùng công nghệ Globus toolkit WSRF, gồm các chức năng:

 Checklogin: kiểm tra user đăng nhập

 ListUsers: liệt kê danh sách user

 DeleteUser: xóa user

 UpdateUser: cập nhật user

 AddNewUser: thêm mới user

 ChangeUserName: thay đổi username

 ChangePassword : thay đổi mật khẩu

 transfer: Gởi 1 file đến máy tính từ xa

 getImage: Lấy 1 file từ máy tính từ xa

 listDir: lấy danh sách file và thư mục từ máy tính từ xa

 listDirRoot: lấy danh sách ổ đĩa máy tính từ xa

File Sharing Management System: window application, dùng quản lý việc chia sẻ file với máy tính khác thông qua việc gọi service GridDatabaseService, ProvisionDirService

- Màn hình khởi động (adsbygoogle = window.adsbygoogle || []).push({});

- Màn hình thao tác chính

- Thêm, Cập nhật, xóa user

11. Kiến trúc chương trình

 Services component: áp dụng công nghệ Grid WSRF

 buildservice.properties: đây là file dùng build ProvisionDirService service

 ProvisionDir.wsdl: đây là file định nghĩa hàm, thuộc tính cho server, dùng ngôn ngữ WSDL

 File deploy-jndi-config.xml là JNDI deploy file, file này dùng enables GT4 WSRF (ProvisionDirService service có một file, GridDatabaseService service có một file)

 File deploy-server.wsdd là file WSDD configuration, nó bảo Web Service container (Tomcat) làm thế náo publish Web service (ProvisionDirService service có một file, GridDatabaseService service có một file)

 File code ProvisionDirService.java (dùng cho ProvisionDirService service)

 File ProvisionDirQNames.java định nghĩa Resources (dùng cho ProvisionDirService service)

 File code GridDatabaseService.java (dùng cho GridDatabaseService service)

 File GridDatabaseQNames.java định nghĩa Resources (dùng cho GridDatabaseService service)

12. Tài liệu tham khảo

[1.] Grid Computing Sides 2013 của PGS.TS. Nguyễn Phi Khứ, Đại học CNTT [2.] Báo cáo tính toán lưới và ứng dụng, Nguyễn Đức Dư, Đại học GTVT. [3.] Những bài viết về mô hình lập trình SOA để triển khai các dịch vụ web của IBM (http://www.ibm.com/developerworks/vn/library/ws-

soaprogmodel/index.html#N10076).

[4.] Rajkumar Buyya, David Abramson, Jonathan Giddy, and Heinz Stockinger, Economic Models for Resource Management and Scheduling in Grid Computing.

Một phần của tài liệu Các vấn đề cơ bản trong việc tính toán lưới (Trang 32)