RMI Server তৈরি করা

জাভা আরএমআই (Java RMI) - Java Technologies

424

RMI Server এমন একটি সিস্টেম যা রিমোট মেথড বাস্তবায়ন করে এবং এটি ক্লায়েন্টের জন্য অ্যাক্সেসযোগ্য করে তোলে। RMI Server তৈরি করতে হলে তিনটি মূল ধাপ অনুসরণ করতে হয়:

  1. Remote Interface তৈরি করা
  2. Server-Side Implementation তৈরি করা
  3. RMI Registry-তে রিমোট অবজেক্ট bind করা এবং সার্ভার চালু করা

RMI Server তৈরির ধাপসমূহ

1. Remote Interface তৈরি করা

Remote Interface এমন একটি ইন্টারফেস যা ক্লায়েন্ট রিমোটলি কল করতে পারে। এটি java.rmi.Remote ইন্টারফেস এক্সটেন্ড করে এবং সব মেথডে RemoteException থ্রো করতে হয়।

import java.rmi.Remote;
import java.rmi.RemoteException;

// Remote Interface
public interface Calculator extends Remote {
    int add(int a, int b) throws RemoteException;
    int subtract(int a, int b) throws RemoteException;
}

2. Server-Side Implementation তৈরি করা

Server-Side Implementation হল রিমোট ইন্টারফেসের বাস্তবায়ন, যা UnicastRemoteObject এক্সটেন্ড করে।

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

// Server-Side Implementation
public class CalculatorImpl extends UnicastRemoteObject implements Calculator {
    public CalculatorImpl() throws RemoteException {
        super();
    }

    @Override
    public int add(int a, int b) throws RemoteException {
        return a + b;
    }

    @Override
    public int subtract(int a, int b) throws RemoteException {
        return a - b;
    }
}

3. RMI Server চালু করা

RMI Registry-তে রিমোট অবজেক্ট bind করতে হবে এবং সার্ভার চালু করতে হবে।

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class RMIServer {
    public static void main(String[] args) {
        try {
            // Create and export the remote object
            Calculator calculator = new CalculatorImpl();

            // Start the RMI registry on port 1099
            Registry registry = LocateRegistry.createRegistry(1099);

            // Bind the remote object to the registry with a name
            registry.bind("CalculatorService", calculator);

            System.out.println("RMI Server is running...");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ধাপগুলোর ব্যাখ্যা

  1. Remote Interface:
    • এটি নির্ধারণ করে ক্লায়েন্ট কী কী রিমোট মেথড কল করতে পারবে।
    • প্রত্যেক মেথড throws RemoteException ডিফাইন করতে হয়।
  2. Server-Side Implementation:
    • এখানে রিমোট মেথড বাস্তবায়ন করা হয়।
    • UnicastRemoteObject এক্সটেন্ড করে রিমোট অবজেক্ট তৈরি করা হয়।
  3. RMI Registry চালানো:
    • LocateRegistry.createRegistry() ব্যবহার করে RMI Registry তৈরি করা হয়।
    • রিমোট অবজেক্ট bind() মেথড ব্যবহার করে RMI Registry-তে নিবন্ধন করা হয়।

কোড সম্পূর্ণতা: Client-Side Implementation

সার্ভার ঠিকভাবে কাজ করছে কিনা তা যাচাই করার জন্য Client-Side Implementation প্রয়োজন।

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class RMIClient {
    public static void main(String[] args) {
        try {
            // Connect to the RMI registry on localhost and port 1099
            Registry registry = LocateRegistry.getRegistry("localhost", 1099);

            // Look up the remote object
            Calculator calculator = (Calculator) registry.lookup("CalculatorService");

            // Call remote methods
            System.out.println("Addition: " + calculator.add(5, 3)); // Output: 8
            System.out.println("Subtraction: " + calculator.subtract(5, 3)); // Output: 2
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

কোড রান করার ধাপসমূহ

  1. RMI Server চালু করুন:

    java RMIServer
    
  2. RMI Client চালু করুন:

    java RMIClient
    

RMI Server তৈরির মূল পয়েন্ট

  1. Remote Interface ব্যবহার করে ক্লায়েন্ট-সার্ভার যোগাযোগের নিয়ম নির্ধারণ করা হয়।
  2. RMI Registry রিমোট অবজেক্ট খুঁজে বের করার জন্য কেন্দ্রীয় পয়েন্ট হিসেবে কাজ করে।
  3. সার্ভার UnicastRemoteObject ব্যবহার করে রিমোট অবজেক্ট তৈরি করে এবং এটি ক্লায়েন্টের জন্য অ্যাক্সেসযোগ্য করে।

RMI Server তৈরি করা একটি সহজ কিন্তু শক্তিশালী প্রক্রিয়া যা Distributed Computing-এ ব্যাপকভাবে ব্যবহৃত হয়। এটি ক্লায়েন্ট এবং সার্ভার অ্যাপ্লিকেশনগুলোর মধ্যে Remote Object Communication স্থাপন করতে সাহায্য করে। RMI ব্যবহার করে জাভার অ্যাপ্লিকেশনগুলোকে আরও স্কেলেবল এবং ফ্লেক্সিবল করা যায়।

Content added By

Java RMI (Remote Method Invocation) এর মাধ্যমে একটি Server Class তৈরি করতে হয় যা রিমোট অবজেক্ট রেজিস্ট্রি (Registry) এর সাথে রিমোট অবজেক্ট নিবন্ধন করে। এই ক্লাসটি RMI-র মূল অংশ এবং Client থেকে রিমোট কল গ্রহণ ও পরিচালনা করে।


RMI Server Class তৈরির ধাপ

1. Remote Interface ইমপ্লিমেন্ট করা

Server Class-টি একটি Remote Interface ইমপ্লিমেন্ট করে, যা রিমোট মেথডগুলির ডিফিনিশন ধারণ করে।

2. Remote Object তৈরি করা

Remote Object-টি UnicastRemoteObject-এর সাবক্লাস হিসাবে তৈরি করা হয় এবং Remote Interface ইমপ্লিমেন্ট করে।

3. RMI Registry-তে Remote Object নিবন্ধন করা

RMI Registry-তে Remote Object নিবন্ধন করার জন্য LocateRegistry এবং Registry ব্যবহার করা হয়।


RMI Server Class উদাহরণ

1. Remote Interface তৈরি করা

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Hello extends Remote {
    String sayHello() throws RemoteException;
}

2. Remote Object Implementation

import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;

public class HelloImpl extends UnicastRemoteObject implements Hello {
    protected HelloImpl() throws RemoteException {
        super();
    }

    @Override
    public String sayHello() throws RemoteException {
        return "Hello, RMI Server!";
    }
}

3. Server Class তৈরি করা

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class Server {
    public static void main(String[] args) {
        try {
            // Remote Object তৈরি
            HelloImpl obj = new HelloImpl();

            // RMI Registry তৈরি বা বিদ্যমান Registry ব্যবহার
            Registry registry = LocateRegistry.createRegistry(1099);

            // Remote Object নিবন্ধন
            registry.bind("HelloService", obj);

            System.out.println("RMI Server is running...");
        } catch (Exception e) {
            System.err.println("Server exception: " + e.toString());
            e.printStackTrace();
        }
    }
}

বিস্তারিত ব্যাখ্যা

1. UnicastRemoteObject:

HelloImpl ক্লাসটি UnicastRemoteObject-কে প্রসারিত করে, যা রিমোট ক্লাস তৈরি এবং রেজিস্ট্রেশন পরিচালনা করে। এটি Remote Object-কে ক্লায়েন্টের জন্য অ্যাক্সেসযোগ্য করে তোলে।

2. LocateRegistry.createRegistry():

LocateRegistry.createRegistry(1099) দ্বারা একটি RMI Registry তৈরি করা হয় যা ডিফল্টভাবে 1099 পোর্টে কাজ করে।

3. registry.bind():

bind() মেথড Remote Object-কে একটি নির্দিষ্ট নামের (যেমন "HelloService") সাথে RMI Registry-তে নিবন্ধন করে। এটি ক্লায়েন্টদের জন্য উপলব্ধ হয়।

4. Exception Handling:

RMI Server Class তৈরির সময় সম্ভাব্য ব্যতিক্রম যেমন RemoteException, AlreadyBoundException, ইত্যাদি হ্যান্ডল করা হয়।


Server Class চালানোর নির্দেশনা

  1. Policy File তৈরি করুন (optional): server.policy নামে একটি Policy ফাইল তৈরি করুন:

    grant {
        permission java.security.AllPermission;
    };
    
  2. Server Compile করুন:

    javac *.java
    
  3. Server চালু করুন:

    java -Djava.security.policy=server.policy Server
    

উপরের উদাহরণের মাধ্যমে আপনি সহজেই একটি RMI Server Class তৈরি করতে পারবেন। এটি রিমোট অবজেক্টকে নিবন্ধন এবং ব্যবস্থাপনা করার জন্য মূল ভূমিকা পালন করে। Client-Server আর্কিটেকচারে এই Server Class Client-কে রিমোট মেথডগুলিতে অ্যাক্সেস দেওয়ার ক্ষমতা প্রদান করে।

Content added By

UnicastRemoteObject হলো জাভার একটি ক্লাস যা RMI (Remote Method Invocation) এর মাধ্যমে রিমোট অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এই ক্লাসটি java.rmi.server.UnicastRemoteObject প্যাকেজের অন্তর্ভুক্ত এবং এটি একটি রিমোট অবজেক্টকে ক্লায়েন্টদের সাথে সরাসরি যোগাযোগ করার উপযোগী করে তোলে।


UnicastRemoteObject এর ভূমিকা

  1. Remote Object Export করা:
    • UnicastRemoteObject ক্লাস একটি রিমোট অবজেক্টকে RMI Runtime Environment-এ "Export" করে, যাতে এটি রিমোট কল গ্রহণ করতে পারে।
  2. Socket Communication ব্যবহার:
    • এটি TCP/IP সকেটের মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ পরিচালনা করে।
  3. Stub Generation:
    • UnicastRemoteObject একটি Stub (ক্লায়েন্ট-সাইড প্রক্সি) তৈরি করতে সহায়তা করে, যা ক্লায়েন্টের অনুরোধ রিমোট অবজেক্টে পাঠায়।

UnicastRemoteObject এর গঠন

public class UnicastRemoteObject extends RemoteServer implements Remote {
    protected UnicastRemoteObject() throws RemoteException;
    protected UnicastRemoteObject(int port) throws RemoteException;
    protected UnicastRemoteObject(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException;
}

গুরুত্বপূর্ণ কনস্ট্রাক্টর:

  1. UnicastRemoteObject():
    • ডিফল্ট কনস্ট্রাক্টর যা রিমোট অবজেক্টকে ডিফল্ট পোর্টে এক্সপোর্ট করে।
  2. UnicastRemoteObject(int port):
    • একটি নির্দিষ্ট পোর্ট নম্বর দিয়ে রিমোট অবজেক্ট এক্সপোর্ট করার জন্য ব্যবহৃত হয়।
  3. UnicastRemoteObject(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf):
    • কাস্টম ক্লায়েন্ট এবং সার্ভার সকেট ফ্যাক্টরি ব্যবহার করে রিমোট অবজেক্ট এক্সপোর্ট করার জন্য ব্যবহৃত হয়।

UnicastRemoteObject ব্যবহার করে Remote Object তৈরি করার ধাপসমূহ

  1. Remote Interface তৈরি করা:
    • java.rmi.Remote ইন্টারফেস প্রসারিত করে রিমোট মেথড ঘোষণা করা হয়।
  2. Remote Object ক্লাস তৈরি করা:
    • UnicastRemoteObject এক্সটেন্ড করে এবং রিমোট ইন্টারফেস ইমপ্লিমেন্ট করে রিমোট অবজেক্ট তৈরি করা হয়।
  3. RMI Server তৈরি করা:
    • RMI Registry-তে রিমোট অবজেক্ট রেজিস্টার করা হয়।
  4. RMI Client তৈরি করা:
    • RMI Registry থেকে রিমোট অবজেক্ট খুঁজে বের করে এবং মেথড কল করা হয়।

উদাহরণ: UnicastRemoteObject এর মাধ্যমে Remote Object তৈরি

1. Remote Interface তৈরি করা

import java.rmi.Remote;
import java.rmi.RemoteException;

// Remote Interface
public interface Calculator extends Remote {
    int add(int a, int b) throws RemoteException;
    int subtract(int a, int b) throws RemoteException;
}

2. Remote Object ক্লাস তৈরি করা

import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;

// Remote Object Implementation
public class CalculatorImpl extends UnicastRemoteObject implements Calculator {
    // Constructor
    public CalculatorImpl() throws RemoteException {
        super();
    }

    // Implementation of add method
    public int add(int a, int b) throws RemoteException {
        return a + b;
    }

    // Implementation of subtract method
    public int subtract(int a, int b) throws RemoteException {
        return a - b;
    }
}

3. RMI Server তৈরি করা

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class Server {
    public static void main(String[] args) {
        try {
            // Create Remote Object
            CalculatorImpl calculator = new CalculatorImpl();

            // Bind Remote Object to RMI Registry
            Registry registry = LocateRegistry.createRegistry(1099);
            registry.rebind("CalculatorService", calculator);

            System.out.println("RMI Server is running...");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4. RMI Client তৈরি করা

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class Client {
    public static void main(String[] args) {
        try {
            // Locate RMI Registry
            Registry registry = LocateRegistry.getRegistry("localhost", 1099);

            // Lookup Remote Object
            Calculator calculator = (Calculator) registry.lookup("CalculatorService");

            // Call Remote Methods
            System.out.println("Addition: " + calculator.add(10, 20));
            System.out.println("Subtraction: " + calculator.subtract(50, 30));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

কোড কম্পাইল এবং চালানোর ধাপসমূহ

  1. কম্পাইল করা:

    javac *.java
    
  2. RMI Registry চালানো:

    rmiregistry 1099
    
  3. Server চালানো:

    java Server
    
  4. Client চালানো:

    java Client
    

UnicastRemoteObject ব্যবহার করে রিমোট অবজেক্ট তৈরি করা RMI অ্যাপ্লিকেশনের একটি প্রধান ধাপ। এটি রিমোট অবজেক্ট এক্সপোর্ট এবং Stub জেনারেশনের কাজ সহজ করে। এর মাধ্যমে সহজে Distributed Application তৈরি করা যায়, যেখানে ক্লায়েন্ট এবং সার্ভার রিমোট অবজেক্টের মাধ্যমে যোগাযোগ করতে পারে।

Content added By

Remote Interface হল জাভা RMI এর মূল ভিত্তি। এটি এমন একটি ইন্টারফেস যা java.rmi.Remote ইন্টারফেস এক্সটেন্ড করে। এর মেথডগুলো RemoteException থ্রো করতে পারে, এবং এগুলো Server-Side Implementation এ ইমপ্লিমেন্ট করা হয়।


Remote Interface তৈরির ধাপ

ধাপ ১: Remote Interface তৈরি করা

Remote Interface-এ শুধুমাত্র সেই মেথড ডিক্লেয়ার করা হয় যেগুলো ক্লায়েন্ট রিমোটলি অ্যাক্সেস করবে।

import java.rmi.Remote;
import java.rmi.RemoteException;

// Remote Interface
public interface Calculator extends Remote {
    int add(int a, int b) throws RemoteException;     // যোগ করার জন্য মেথড
    int subtract(int a, int b) throws RemoteException; // বিয়োগ করার জন্য মেথড
}

Remote Interface এর Method ইমপ্লিমেন্ট করা

ধাপ ২: Remote Interface এর ইমপ্লিমেন্টেশন তৈরি করা

Remote Interface-এ ডিক্লেয়ার করা মেথডগুলোর ইমপ্লিমেন্টেশন Server-Side ক্লাসে করা হয়। এই ক্লাসটি java.rmi.server.UnicastRemoteObject এক্সটেন্ড করতে হবে।

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

// Implementation of Remote Interface
public class CalculatorImpl extends UnicastRemoteObject implements Calculator {

    // Constructor
    protected CalculatorImpl() throws RemoteException {
        super();
    }

    // Implementing add method
    @Override
    public int add(int a, int b) throws RemoteException {
        return a + b;
    }

    // Implementing subtract method
    @Override
    public int subtract(int a, int b) throws RemoteException {
        return a - b;
    }
}

Implementation এর বিস্তারিত বিশ্লেষণ

  1. UnicastRemoteObject:
    • এই ক্লাসটি ব্যবহার করে ইমপ্লিমেন্ট করা রিমোট অবজেক্টকে একটি নির্দিষ্ট পোর্টে bind করা হয়।
  2. Constructor:
    • CalculatorImpl ক্লাসের কনস্ট্রাক্টর RemoteException থ্রো করতে পারে কারণ এটি রিমোট মেথড হ্যান্ডল করে।
  3. Method Implementation:
    • add এবং subtract মেথড সরাসরি দুইটি সংখ্যার উপর গণনা করে রেজাল্ট রিটার্ন করে।
  4. Exception Handling:
    • প্রত্যেক মেথডে throws RemoteException ব্যবহার করা হয়।

ধাপ ৩: Server-Side Code

Implementation ক্লাসটি RMI Registry তে bind করতে হবে, যাতে ক্লায়েন্ট এটি অ্যাক্সেস করতে পারে।

import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;

public class Server {
    public static void main(String[] args) {
        try {
            LocateRegistry.createRegistry(1099); // RMI Registry তৈরি করা
            Calculator calculator = new CalculatorImpl();
            Naming.rebind("rmi://localhost:1099/CalculatorService", calculator);
            System.out.println("Calculator Service is ready.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ধাপ ৪: Client-Side Code

ক্লায়েন্ট Remote Interface ব্যবহার করে RMI Registry থেকে সার্ভিস অ্যাক্সেস করবে।

import java.rmi.Naming;

public class Client {
    public static void main(String[] args) {
        try {
            Calculator calculator = (Calculator) Naming.lookup("rmi://localhost:1099/CalculatorService");
            System.out.println("Addition: " + calculator.add(5, 3)); // যোগফল: ৮
            System.out.println("Subtraction: " + calculator.subtract(5, 3)); // বিয়োগফল: ২
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

স্টেপ বাই স্টেপ কার্যপ্রক্রিয়া

  1. Remote Interface তৈরির ধাপ:
    • রিমোট মেথডগুলোর নাম এবং সিগনেচার ডিক্লেয়ার করা।
  2. Implementation:
    • Remote Interface-এ ডিক্লেয়ার করা মেথডগুলোর ইমপ্লিমেন্টেশন করা।
  3. Server-Side Binding:
    • RMI Registry তে ইমপ্লিমেন্ট করা ক্লাসকে bind করা।
  4. Client-Side Invocation:
    • ক্লায়েন্ট Remote Interface ব্যবহার করে রিমোট মেথড কল করে।

Remote Interface হল RMI এর কেন্দ্রীয় অংশ যা ক্লায়েন্ট এবং সার্ভারের মধ্যে কমিউনিকেশন নিশ্চিত করে। মেথডগুলোর ইমপ্লিমেন্টেশন Server-Side-এ করা হয় এবং এগুলো RMI Registry এর মাধ্যমে অ্যাক্সেসযোগ্য হয়। উপরের উদাহরণটি একটি সহজ RMI প্রজেক্টের জন্য Remote Interface এর মেথড ইমপ্লিমেন্ট করার পদ্ধতি ব্যাখ্যা করে।

Content added By

RMI Server এর মূল কাজ হলো রিমোট অবজেক্ট তৈরি করা এবং সেই অবজেক্টকে RMI Registry তে নিবন্ধন করা। নিবন্ধন করার প্রক্রিয়াটি bind(), rebind(), বা unbind() মেথডের মাধ্যমে সম্পন্ন করা হয়।


RMI Registry তে bind করার স্টেপ-বাই-স্টেপ প্রক্রিয়া

১. bind() মেথড:

bind() মেথড একটি নির্দিষ্ট নাম দিয়ে রিমোট অবজেক্ট রেজিস্টারে নিবন্ধন করে। যদি একই নামের কোনো অবজেক্ট ইতোমধ্যে নিবন্ধিত থাকে, তবে এটি একটি AlreadyBoundException ছুড়ে দেয়।

Syntax:

Registry registry = LocateRegistry.createRegistry(1099);
registry.bind("ServiceName", remoteObject);

২. rebind() মেথড:

rebind() মেথড একই নামের রিমোট অবজেক্ট রেজিস্টারে থাকলে তা প্রতিস্থাপন করে। এটি bind() এর চেয়ে বেশি ব্যবহারযোগ্য, কারণ এটি নাম দ্বন্দ্ব এড়িয়ে চলে।

Syntax:

Registry registry = LocateRegistry.createRegistry(1099);
registry.rebind("ServiceName", remoteObject);

৩. unbind() মেথড:

unbind() মেথড একটি নির্দিষ্ট নামের রিমোট অবজেক্টকে রেজিস্ট্রি থেকে সরিয়ে দেয়।

Syntax:

registry.unbind("ServiceName");

RMI Server এ RMI Registry তে bind করার উদাহরণ

নিচে RMI Server তৈরি করার এবং রিমোট অবজেক্টকে RMI Registry তে bind করার উদাহরণ দেওয়া হলো।

Step 1: Remote Interface তৈরি করা

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface MyRemote extends Remote {
    String sayHello() throws RemoteException;
}

Step 2: Remote Object বাস্তবায়ন করা

import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;

public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote {
    public MyRemoteImpl() throws RemoteException {
        super();
    }

    @Override
    public String sayHello() {
        return "Hello from RMI Server!";
    }
}

Step 3: RMI Server তৈরি করা এবং Registry তে bind করা

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class RMIServer {
    public static void main(String[] args) {
        try {
            // রিমোট অবজেক্ট তৈরি করা
            MyRemoteImpl remoteObject = new MyRemoteImpl();
            
            // RMI Registry তৈরি করা
            Registry registry = LocateRegistry.createRegistry(1099);
            
            // রিমোট অবজেক্টকে Registry তে bind করা
            registry.bind("HelloService", remoteObject);
            
            System.out.println("RMI Server is running...");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Important Points:

  1. RMI Registry Port:
    ডিফল্ট পোর্ট 1099। আপনি চাইলে অন্য পোর্ট ব্যবহার করতে পারেন।
  2. bind() vs rebind():
    • bind() মেথড একই নামের রিমোট অবজেক্ট রেজিস্টারে থাকলে ব্যর্থ হবে।
    • rebind() পুরোনো অবজেক্ট সরিয়ে নতুন অবজেক্ট নিবন্ধন করবে।
  3. Security Manager:
    RMI Server চালানোর সময় Security Manager ব্যবহার করা দরকার হতে পারে।

    if (System.getSecurityManager() == null) {
        System.setSecurityManager(new SecurityManager());
    }
    

RMI Registry তে bind করা পরীক্ষা করা

Step 4: RMI Client তৈরি করা

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class RMIClient {
    public static void main(String[] args) {
        try {
            // RMI Registry থেকে রিমোট অবজেক্ট খোঁজা
            Registry registry = LocateRegistry.getRegistry("localhost", 1099);
            MyRemote remoteObject = (MyRemote) registry.lookup("HelloService");
            
            // রিমোট মেথড কল করা
            System.out.println(remoteObject.sayHello());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

RMI Server কে RMI Registry তে bind করা হলো RMI প্রযুক্তির একটি গুরুত্বপূর্ণ ধাপ। এটি রিমোট অবজেক্টকে ক্লায়েন্টের কাছে উপলব্ধ করে। bind(), rebind(), এবং unbind() মেথড ব্যবহার করে আপনি RMI Registry তে রিমোট অবজেক্ট নিবন্ধন এবং পরিচালনা করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...