1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo khoa học: "TíNH TOáN PHÂN TáN VớI RMI" pptx

6 685 5
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 169,09 KB

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

Nội dung

trong rất nhiều trường hợp, các nguồn lực tính toán của một máy không đáp ứng đủ nhu cầu tính toán và các ứng dụng cần sử dụng các hàm hay đối tượng nằm ở trên các máy khác.. RMI – theo

Trang 1

TíNH TOáN PHÂN TáN VớI RMI

TS ngô đăng quang

KS nguyễn minh ngọc

Viện Khoa học vμ công nghệ XDGT Trường Đại học Giao thông Vận tải

Tóm tắt: Tính toán phân tán lμ một trong những chủ đề thời sự hiện nay trong công nghệ

thông tin ý tưởng chính của lập trình phân tán lμ liên kết vμ tận dụng tối đa các nguồn tμi

nguyên vμ người dùng thông qua các liên kết mạng Ngμy nay, với tốc độ đường truyền mạng

ngμy cμng cao vμ khả năng xử lý của các hệ thống tính toán ngμy cμng lớn, tính toán trở nên

phổ biến vμ có hiệu quả Có khá nhiều công nghệ tính toán phân tán đã được giới thiệu như

DCOM, CORBA, RMI, Webservice, Internet Agent, v.v Mỗi công nghệ đều có điểm mạnh vμ

điểm yếu khác nhau vμ thích hợp cho những ứng dụng nhất định Bμi báo trình bμy tổng quan

về một công nghệ tính toán phân tán khá mạnh lμ RMI vμ minh hoạ cách ứng dụng nó thông

qua một ví dụ xây dựng một hệ thống phân tán phân tích phần tử hữu hạn

Summary: Distributed computing is now a topical issue in the information industry The

main goal of distributed computing is to connect users and take the full advantage of the others

resources over a network Increasing desktop CPU power and communications bandwidth has

also helped to make distributed computing a more practical idea There are different

mechanisms which can build a distributed computing system: DCOM, CORBA, RMI,

Webservice, Internet Agent, etc Each has its power and limits depending on what problem to

be solved This paper provides a broad overview of a powerful mechanism developed by Sun

Microsystem, the Remote Method Invocation (RMI) and an illustration of how to use it in an

example about truss solved by FEM (Finite Element Method) over RMI technology

CT 2

i Giới thiệu chung

Tính toán phân tán (TTPT) là một trong những vấn đề thời sự hiện nay của khoa học máy

tính và công nghệ thông tin ý tưởng chính của lập trình phân tán là liên kết và tận dụng tối đa

các nguồn tài nguyên và người dùng thông qua các liên kết mạng Ngày nay, khi tốc độ đường

truyền mạng ngày càng cao và khả năng xử lý của các hệ thống tính toán ngày càng lớn, TTPT

đang được ứng dụng ngày càng phổ biến

Có rất nhiều công nghệ khác khác nhau có thể được sử dụng để xây dựng nên một hệ

thống TTPT như DCOM, CORBA, RMI, Webservice, Internet Agent, v.v Mỗi công nghệ trong

số chúng đều có những điểm mạnh và điểm yếu khác nhau và được sử dụng tuỳ thuộc vào từng

bài toán cụ thể

ii RMI

1 Khái niệm

Thông thường các chương trình được viết dưới dạng thủ tục hay hàm gọi Mã lệnh của hàm

hay thủ tục được nạp thẳng vào bộ nhớ trong và thực thi ngay trên máy địa phương Tuy nhiên,

Trang 2

trong rất nhiều trường hợp, các nguồn lực tính toán của một máy không đáp ứng đủ nhu cầu tính toán và các ứng dụng cần sử dụng các hàm hay đối tượng nằm ở trên các máy khác Vấn đề kỹ thuật ở đây là cách nạp nội dung của hàm hay đối tượng ở một máy nào đó và gọi chúng Đây chính là nội dung của lập trình phân tán mã lệnh RMI – theo nghĩa tiếng Anh là gọi phương thức

ở xa – là cách thức giao tiếp giữa các đối tượng Java có mã lệnh cài đặt (bao gồm phương thức

và thuộc tính) nằm trên các máy khác nhau có thể triệu gọi lẫn nhau

2 Cơ chế hoạt động

ứng dụng RMI bao gồm 2 nhóm chương trình chính: một nhóm chương trình cung cấp dịch

vụ đóng vai trò trình chủ và một hay nhiều chương trình sử dụng dịch vụ được gọi là trình khách

Trình chủ tạo ra các đối tượng ở xa (remote object) tức là các đối tượng có thể truy cập được từ

các trình khách nằm ở các máy tính khác, đăng ký địa chỉ và chờ trình khách gọi các phương

thức của đối tượng đó Trình khách lấy các địa chỉ của các đối tượng ở xa trên trình chủ và gọi

các phương thức của chúng Các phương thức này được thực hiện trên trình chủ RMI tạo ra các cơ chế cho phép trình chủ và trình khách liên kết và trao đổi thông tin qua lại Với nguyên tắc hoạt động này, ứng dụng RMI là một loại ứng dụng ứng dụng phân tán đối tượng Các vấn đề cần thực hiện khi phát triển hệ thống phân tán đối tượng RMI là:

- Quản lý tham chiếu của đối tượng ở xa, để có thể gọi các phương thức của các đối tượng

ở xa, các ứng dụng khách cần có tham chiếu đến các đối tượng này RMI cung cấp 3 phương pháp để các ứng dụng khách nhận được tham chiếu này: sử dụng tham chiếu được quản lý bởi dịch vụ quản lý tên (naming service) của RMI, chuyển tham chiếu dưới dạng thông số hay kết quả trả về (return value)

- Kết nối với đối tượng ở xa Quá trình này được RMI thực hiện tự động, lập trình viên chỉ cần sử dụng các phương thức đã được xây dựng sẵn

CT 2

- Truyền dữ liệu Dữ liệu được truyền theo phương thức serialization của Java, và do đó, không bị phá vỡ cấu trúc

Hình 1 mô tả một ứng dụng phân tán RMI sử dụng bộ registry để tạo ra tham chiếu đến đối tượng ở xa Trình chủ gọi bộ registry để đăng ký (hay bind) một tên cho đối tượng ở xa Trình khách tìm kiếm đối tượng ở xa theo tên và thực hiện phương thức trên nó Mô hình này cũng thể hiện việc hệ thống RMI sử dụng Web server để tải các lớp đã được biên dịch từ trình chủ đến trình khách, từ trình khách đến trình chủ cho các đối tượng khi cần thiết

URL Protocol

URL Protocol

RMI RMI

Client

Server

Registry

Webserver Webserver

RMI

URL Protocol

Hình 1 Hệ thống RMI

Trang 3

3 Ưu nhược điểm của RMI

Ưu điểm lớn của RMI là lập trình viên không cần bận tâm đến các phương thức truyền dữ

liệu và các phương thức ở xa, RMI tự động thực hiện những công việc này Dữ liệu truyền qua lại

sử dụng Java RMI được bảo toàn về kiểu Đây là một thế mạnh của công nghệ này Với công

nghệ liên kết mạng truyền thống, dữ liệu được truyền đi dưới dạng mã, khi đến máy nhận, chúng

cần được xử lý ở dạng không kiểu Quá trình này nhiều khi gây khó khăn cho việc định dạng dữ

liệu

Một trong những nét đặc trưng chỉ có ở RMI là khả năng tải các bytecodes (hay mã) của

một lớp đối tượng mặc dù lớp này chưa hề được định nghĩa ở trên máy khách Kiểu dữ liệu và

hoạt động của đối tượng này, lúc đầu chỉ tồn tại trên một máy, nay có thể chuyền tới một máy

khác ở xa RMI chuyển nguyên kiểu dữ liệu của các đối tượng, vì thế hoạt động của đối tượng là

không thay đổi khi chúng được chuyển sang một máy khác Điều này cho phép các kiểu dữ liệu

mới có thể được sử dụng trên máy mới này, vì thế hoạt động của chương trình trở nên năng

động hơn

Tuy nhiên, nhược điểm của RMI là các ứng dụng RMI chỉ chạy trên môi trường của Java vì

thế yêu cầu ở đây là cả máy chủ và máy khách đều phải được cài Java Một nhược điểm nữa

của RMI là khi kết nối với mạng diện rộng Internet các ứng dụng của RMI bị chặn lại bởi tường

lửa (Firewall) vì RMI không sử dụng cổng 80 là cổng của dịch vụ http (cổng mà hầu như mọi

tường lửa đều cho qua) Vì thế để sử dụng RMI trên mạng diện rộng các ứng dụng phải sử dụng

cơ chế trung gian thông qua cổng 80 của dịch vụ http server

4 Tạo các ứng dụng phân tán sử dụng RMI

4.1 Thiết kế vμ lập trình (thực thi) các thμnh phần của ứng dụng

Công việc đầu tiên trong việc xây dựng các hệ thống phần mềm là xác định cấu trúc của

ứng dụng Với RMI, công tác này còn bao gồm cả việc xác định những thành phần là đối tượng

địa phương và những thành phần là đối tượng ở xa Các bước chính ở đây là:

- Định nghĩa các giao diện ở xa: Một giao diện ở xa chứa các phương thức có thể được gọi

bởi trình khách Các trình khách được lập trình với các giao diện ở xa mà không phải với các lớp

thực thi của các giao diện đó Một phần của việc thiết kế những giao diện ở xa là xác định các

đối tượng địa phương sẽ được sử dụng làm tham số và trị trả về cho các phương thức đó

- Lập trình các đối tượng ở xa: Các đối tượng ở xa phải thực thi một hay nhiều giao diện ở

xa Lớp của các đối tượng ở xa có thể bao gồm nhiều phần thực thi của các giao diện khác (cả

cục bộ và ở xa) và các phương thức khác Nếu bất kỳ lớp địa phương nào được sử dụng làm

tham số và và trị trả về cho bất kỳ một phương thức nào thì chúng cũng phải được thực thi

- Lập trình trình khách: Các trình khách sử dụng các đối tượng ở xa có thể được lập trình tại

bất kỳ thời điểm nào sau khi giao diện ở xa được định nghĩa, và cả sau khi các đối tượng ở xa đã

được triển khai

4.2 Dịch mã vμ tạo stub

Quá trình này gồm 2 bước Bước đầu tiên, các tệp tin mã chứa các thực thi của các giao

Trang 4

diện ở xa, các lớp trình chủ, các lớp trình khách sẽ được dịch bằng javac Bước thứ 2, các stub (bản sao) cho các đối tượng ở xa sẽ được tạo ra bằng trình biên dịch rmic RMI sử dụng một lớp

stub của đối tượng ở xa như một lớp ủy nhiệm trên trình khách Với lớp ủy nhiệm trình khách có thể liên lạc được với đối tượng ở xa

4.3 Lμm cho các lớp có thể truy cập được trên mạng

Các tệp tin lớp chứa các giao diện, stubs, và các lớp khác cần phải đưa lên Webserver để trình khách có thể tải chúng xuống được

4.4 Khởi động ứng dụng

Việc khởi động chương trình bao gồm chạy chương trình RMI registry, trình khách và trình chủ

5 Tùy biến của RMI

Ngoài khả năng triệu gọi một chiều theo kiểu trình chủ được trình khách triệu gọi từ xa, RMI còn cung cấp khả năng triệu gọi hai chiều, theo đó các trình khách cũng có thể được triệu gọi từ trình chủ Nói cách khác, trình khách không cần chuyển đối tượng cho trình chủ theo trị mà có thể chuyển theo tham chiếu

Trong ứng dụng RMI, các đối tượng cần được đăng ký với rmiregistry, và khi số lượng các

đối tượng này tăng lên, việc quản lý trở nên phức tạp Để hạn chế khó khăn này, RMI cung cấp

khả năng xây dựng một đối tượng duy nhất và đăng ký đối tượng này với rmiregistry Nhiệm vụ

của đối tượng trên chỉ dùng để tạo ra các đối tượng con khác Một đối tượng như vậy trong mô

hình tính toán phân tán gọi là factory object (đối tượng mẹ)

CT 2

Số lượng các đối tượng cần được đăng ký với rmiregistry ngày càng lớn thì bộ nhớ mà trình

chủ cần phải cấp phát cho chúng cũng ngày càng lớn RMI cung cấp cơ chế tự động kích hoạt

đối tượng từ xa cho phép người dùng chỉ cần đăng ký sự hiện diện của đối tượng trên máy chủ

mà không cần cấp phát bộ nhớ cho đối tượng trong trạng thái sẵn sàng

iii Xây dựng một hệ thống phân tích phần tử hữu hạn dựa trên công nghệ RMI của Java

1 Kiến trúc hệ thống

Việc phân tích phần tử hữu hạn của các ứng dụng lớn đòi hỏi phải sử dụng nguồn lực của nhiều máy tính đồng thời Như đã giới thiệu ở trên, RMI là công cụ cho phép thực hiện điều đó một cách tương đối đơn giản

Ví dụ này trình bày cách xây dựng một hệ thống phân tích phần tử hữu hạn đơn giản Hệ thống gồm hai phần chính là trình khách và trình chủ Toàn bộ quá trình tính toán chính đều thực hiện trên trình chủ Trình khách là ứng dụng sử dụng các dịch vụ mà trình chủ cung cấp Nhiệm

vụ của trình khách là cung cấp các thông số đầu vào cần thiết cho quá trình phân tích như các tham số kết cấu, tải trọng, vật liệu, v.v và thể hiện kết quả mà quá trình tính toán ở trình chủ cung cấp Các đối tượng của trình chủ cũng có thể nằm trên nhiều máy tính khác nhau Tuy nhiên, trong ví dụ này, các đối tượng thực hiện quá trình tính toán đều được thiết kế nằm ở một máy tính Hình 2 thể hiện kiến trúc hệ thống của ứng dụng

Trang 5

FEMClient

(Trình khách)

FEMServer

Hình 2 Kiến trúc hệ thống

2 Chi tiết các thành phần của ứng dụng

a Matrix

Matrix là lớp thực hiện các tính toán ma trận cần thiết cho việc phân tích phần tử hữu hạn

như cộng, trừ, nhân, chia, nghịch đảo ma trận, cắt hàng, cắt cột, v.v

b TrussSolution

Lớp TrussSolution chứa các phương thức tính toán kết cấu giàn theo phương pháp phần tử

hữu hạn

c FEMInterface

Đây là lớp giao diện ở xa, chứa một phương thức duy nhất, Solution, có nhiệm vụ tiếp

nhận dữ liệu đầu vào và cung cấp kết quả là nội lực trong các thanh giàn Các tham số đầu vào

của phương thức này là các thông số của kết cấu:

Ma trận tọa độ nút

Véc tơ độ cứng

Ma trận liên kết

Ma trận ngoại lực

d FEMImpl

Lớp thực thi của giao diện FEMInterface Lớp này sử dụng lớp TrussSolution để thực thi các

tính toán trên máy chủ

e FEMServer

FEMServer là lớp tạo trình chủ để đăng ký lớp thực thi Lớp này thực hiện hai công việc:

+ Đăng ký RMISecurityManager

+ Tạo đối tượng thuộc lớp FEMImpl Đối tượng FEMImpl có trách nhiệm đăng ký với bộ RMI

registry

f FEMClient

Lớp này đăng ký với RMI Security Manager, sau đó sử dụng phương thức tĩnh

Naming.lookup() để tạo đường dẫn đến đối tượng ở xa Chú ý rằng trình khách sử dụng giao

diện để giữ đường dẫn và giúp phương thức có thể gọi được

3 Ví dụ ứng dụng

Ví dụ với một giàn như trên hình 3 đã được sử dụng để tính toán trên hệ thống phân tán

Trang 6

ứng với sơ đồ kết cấu trên, dữ liệu đầu vào do

chương trình FEMClient cung cấp có dạng sau:

//Nodes coordinates double[][] dNodeCoordinates = { { -4, 3}, { 0, 3}, { 4, 3}, { 0, 0} };

//Element Connectivity

Hình 3 Ví dụ ứng dụng

int [][] iElemNodeLists = {{ 1,

//Materials Properties double [] dElemMaterial = { EA,

A=2cm2 //Freedom Tags

int [][] iFreedomTags = {{ 1, 1}, { 0, 0}, { 0, 0}, { 0, 1}}; //Freedom Values

double [][] dFreedomValues = {{ 0, 0}, { 0, 0}, { 0, 100}, { 0, 0}};

Hình 4 minh hoạ kết quả tính toán được thể trên FEMClient

CT 2

Hình 4 Kết quả tính toán được thể hiện trên FMClient

iv Kết luận

Sử dụng RMI trong phát triển hệ thống TTPT thể hiện nhiều ưu điểm cho phép kỹ sư có thể tập trung giải quyết bài toán mà không cần quan tâm nhiều đến các vấn đề về mạng Với RMI, các bài toán lớn có thể được giải quyết trên các máy tính có cấu hình thấp, các máy khách chỉ cần gửi các đối tượng kích thước lớn lên máy chủ có cấu hình mạnh nhờ tính toán giúp Và trong bối cảnh an ninh mạng ngày càng được quan tâm, các cơ chế bảo vệ của Java giúp cho các hệ thống TTPT trên RMI trở nên an toàn hơn và được nhiều người sử dụng hơn Tuy nhiên công nghệ RMI không phải là công nghệ tối ưu vì RMI chỉ hoạt động trên môi trường của Java

Tài liệu tham khảo

[1], http://en.wikipedia.org/wiki/Distributed_computing

[2] Leon Erlanger, Distributed Computing: An Introduction, http: //www.extremetech.com/article2/0,1697,1153023,00.asp [3] Petri Niska, Aapo Rautiainen, Java in Distributed Computing, http://www.niksula.cs.hut.fi/~pate/Tik-76.270/javasem3.html

[4] Nguyễn Phương Lan, Hoμng Đức Hải Java lập trình mạng, NXB Giáo dục, 2001

[5] The Java Tutorial

[6] Jbuilder SamplesĂ

Ngày đăng: 06/08/2014, 12:22

HÌNH ẢNH LIÊN QUAN

Hình 1 mô tả một ứng dụng phân tán RMI sử dụng bộ registry để tạo ra tham chiếu đến đối  t−ợng ở xa - Báo cáo khoa học: "TíNH TOáN PHÂN TáN VớI RMI" pptx
Hình 1 mô tả một ứng dụng phân tán RMI sử dụng bộ registry để tạo ra tham chiếu đến đối t−ợng ở xa (Trang 2)
Hình 2. Kiến trúc hệ thống - Báo cáo khoa học: "TíNH TOáN PHÂN TáN VớI RMI" pptx
Hình 2. Kiến trúc hệ thống (Trang 5)
Hình 3. Ví dụ ứng dụng - Báo cáo khoa học: "TíNH TOáN PHÂN TáN VớI RMI" pptx
Hình 3. Ví dụ ứng dụng (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm