UnicastRemoteObject এর মাধ্যমে Remote Object তৈরি

RMI Server তৈরি করা - জাভা আরএমআই (Java RMI) - Java Technologies

277

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
Promotion

Are you sure to start over?

Loading...