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

Bài giảng Lập trình mạng: Chương 9 - ĐH Công nghệ Đồng Nai

12 6 0

Đ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

Định dạng
Số trang 12
Dung lượng 244,5 KB

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

Nội dung

Java RMI hỗ trợ gọi phương thức từ xa trên các đối tượng trong các máy ảo khác nhau. Nó tích hợp mô hình đối tượng phân tán vào Java và làm cho sự khác biệt giữa mô hình đối tượng phân tán và mô hình đối tượng cục bộ không có sự khác biệt. Trong chương này chúng ta sẽ tìm hiểu về quá trình và phương thức hoạt động của mô hình Java RMI, mời các bạn tham khảo.

Trang 1

Java RMI

Trang 2

Mục đích

 Hỗ trợ gọi phương thức từ xa trên các đối tượng

trong các máy ảo khác nhau

 Tích hợp mô hình đối tượng phân tán vào Java

 Làm cho sự khác biệt giữa mô hình đối tượng phân tán và mô hình đối tượng cục bộ không có sự khác biệt.

 Tạo ra các ứng dụng phân tán có độ tin cậy một

cách dễ dàng

 Duy trì sự an toàn kiểu được cung cấp bởi môi

trường thời gian chạy của nền tảng Java

Trang 3

Mô hình gọi đối tượng từ xa - RMI

Local Machine (Client)

SampleServer

remoteObject;

int s;

s =

remoteObject.sum(1,2);

System.out.println(s);

Remote Machine (Server)

public int sum(int a,int b) {

return a + b;

}

1,2 3

Trang 4

Kiến trúc RMI

RMI Server

skeleton

stub

RMI Client

Registry

bind

lookup return call

Local Machine

Remote Machine

Trang 5

Java RMI Layers

TCP

Remote Reference Layer

Transport Layer

Java Virtual Machine

Client Object

Remote Reference Layer

Transport Layer

Java Virtual Machine

Stub

Remote Object

Skeleton

Trang 6

The Stub and Skeleton

return call

Remote Interface

Trang 7

Mô hình các đối tượng phân tán

Remote

RemoteServer

RemoteObject

RemoteException IOException

UnicastRemoteObject

extension implementation Object

Stub

Remote Interface

Server Impl

Trang 8

Các bước tạo RMI

1 Định nghĩa giao diện

2 Phát triển đối tượng bằng cách cài đặt giao diện remote

3 Phát triển chương trình client, server.

4 Biên dịch tập tin java.

5 Tạo ra đối tượng stub và skeleton.

6 Khởi động RMI registry.

7 Chạy các đối tượng remote server

8 Chạy client

Trang 9

Bước 1 Định nghĩa giao diện

/* SampleServer.java */

import java.rmi.*;

public interface SampleServer extends Remote

{

public int sum(int a,int b) throws

RemoteException;

}

Trang 10

Bước 2 Phát triển đối tượng bằng

cách cài đặt giao diện remote

/* SampleServerImpl.java */

import java.rmi.*;

import java.rmi.server.*;

import java.rmi.registry.*;

public class SampleServerImpl extends UnicastRemoteObject implements SampleServer{

SampleServerImpl() throws RemoteException {

super();

}

public int sum(int a,int b) throws RemoteException {

return a + b;

}

}

Trang 11

Bước 3 Phát triển chương trình

client.

import java.rmi.*;

import java.rmi.server.*;

public class SampleClient{

public static void main(String[] args){ // set the security manager for the client

System.setSecurityManager(new RMISecurityManager());

try{ //get the remote object from the registry

System.out.println("Security Manager loaded");

String url = "//localhost/SAMPLE-SERVER";

SampleServer remoteObject = (SampleServer)Naming.lookup(url);

System.out.println("Got remote object");

System.out.println(" 1 + 2 = " + remoteObject.sum(1,2) );

}

catch (RemoteException exc) {

System.out.println("Error in lookup: " + exc.toString()); }

catch (java.net.MalformedURLException exc) {

System.out.println("Malformed URL: " + exc.toString()); }

catch (java.rmi.NotBoundException exc) {

System.out.println("NotBound: " + exc.toString());

} }

Trang 12

Bước 3 Phát triển chương trình

server.

/* SampleServerImpl.java */

public static void main(String args[]){

try {

System.setSecurityManager(new RMISecurityManager());

//set the security manager

//create a local instance of the object

SampleServerImpl Server = new SampleServerImpl();

//put the local instance in the registry

Naming.rebind("SAMPLE-SERVER" , Server);

System.out.println("Server waiting ");

}

catch (java.net.MalformedURLException me) {

System.out.println("Malformed URL: " + me.toString()); }

catch (RemoteException re) {

System.out.println("Remote exception: " + re.toString()); }

}

Ngày đăng: 11/05/2021, 00:21

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