RMI Registry তে Object Bind এবং Unbind করা

RMI Registry এবং Naming Service - জাভা আরএমআই (Java RMI) - Java Technologies

414

RMI Registry হলো একটি নামকরণ পরিষেবা যা রিমোট অবজেক্টগুলোর নাম এবং তাদের অবস্থানের মধ্যে একটি ম্যাপ সংরক্ষণ করে। RMI Registry ব্যবহার করে, ক্লায়েন্ট অ্যাপ্লিকেশন রিমোট অবজেক্টগুলোর সাথে সংযোগ স্থাপন করতে পারে। Binding এবং Unbinding হলো RMI Registry পরিচালনার দুটি গুরুত্বপূর্ণ প্রক্রিয়া।


RMI Registry-তে Object Binding এবং Unbinding

1. Binding:

RMI Registry তে একটি রিমোট অবজেক্টকে একটি নির্দিষ্ট নামের সাথে নিবন্ধিত করা হয়, যাতে ক্লায়েন্ট সেই নামটি ব্যবহার করে অবজেক্ট খুঁজে পায়।

2. Unbinding:

RMI Registry থেকে একটি নির্দিষ্ট রিমোট অবজেক্টের নিবন্ধন অপসারণ করা হয়।


গুরুত্বপূর্ণ মেথডসমূহ

java.rmi.registry.Registry ইন্টারফেসে নিম্নলিখিত মেথডগুলো ব্যবহার করা হয়:

  1. bind(String name, Remote obj)
    • নির্দিষ্ট name এবং obj এর সাথে একটি রিমোট অবজেক্টকে Registry তে নিবন্ধিত করে।
    • যদি ঐ নামটি আগে থেকেই নিবন্ধিত থাকে, তাহলে AlreadyBoundException ছুঁড়ে দেয়।
  2. rebind(String name, Remote obj)
    • পূর্বে নিবন্ধিত নাম থাকলে তা ওভাররাইট করে নতুন রিমোট অবজেক্ট রেজিস্টার করে।
  3. unbind(String name)
    • নির্দিষ্ট নামের রিমোট অবজেক্টের নিবন্ধন Registry থেকে মুছে ফেলে।
  4. lookup(String name)
    • নির্দিষ্ট নাম ব্যবহার করে একটি রিমোট অবজেক্ট খুঁজে পায়।

উদাহরণ: RMI Registry তে Object Bind এবং Unbind করা

1. Remote Interface তৈরি করা

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

// Remote Interface
public interface Greeting extends Remote {
    String sayHello(String name) throws RemoteException;
}

2. Remote Object Implementation তৈরি করা

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

// Remote Object Implementation
public class GreetingImpl extends UnicastRemoteObject implements Greeting {
    public GreetingImpl() throws RemoteException {
        super();
    }

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

3. Server: Object Binding এবং Unbinding

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

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

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

            // Bind Object to Registry
            String objectName = "GreetingService";
            registry.bind(objectName, greeting);
            System.out.println("Object bound to RMI Registry with name: " + objectName);

            // Optional: Rebind Object (overwrite the previous binding)
            // registry.rebind(objectName, greeting);

            // Wait for unbind demonstration
            Thread.sleep(10000);

            // Unbind Object from Registry
            registry.unbind(objectName);
            System.out.println("Object unbound from RMI Registry with name: " + objectName);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4. Client: Object Lookup

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 by name
            Greeting greeting = (Greeting) registry.lookup("GreetingService");

            // Call Remote Method
            System.out.println(greeting.sayHello("John"));

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

RMI Registry তে Binding এবং Unbinding-এর ধাপসমূহ

  1. Binding:

    registry.bind("ObjectName", remoteObject);
    
    • যদি একই নামের আরেকটি অবজেক্ট আগে থেকেই নিবন্ধিত থাকে, তাহলে AlreadyBoundException ছুঁড়ে দেবে।
  2. Rebinding:

    registry.rebind("ObjectName", remoteObject);
    
    • পূর্বের নিবন্ধিত অবজেক্ট ওভাররাইট করে নতুন অবজেক্ট নিবন্ধিত করে।
  3. Unbinding:

    registry.unbind("ObjectName");
    
    • Registry থেকে নির্দিষ্ট নামের অবজেক্টের নিবন্ধন মুছে ফেলে।
  4. Lookup:

    Remote remoteObject = registry.lookup("ObjectName");
    
    • Registry থেকে নির্দিষ্ট নামের অবজেক্ট রিটার্ন করে।

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

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

    javac *.java
    
  2. RMI Registry চালু করা:

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

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

    java Client
    

RMI Registry-তে bind, rebind, এবং unbind মেথডগুলো ব্যবহার করে রিমোট অবজেক্ট নিবন্ধিত এবং অপসারণ করা হয়। এর মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ সহজ হয়। Binding নিশ্চিত করে যে ক্লায়েন্ট নির্দিষ্ট নাম ব্যবহার করে সঠিক রিমোট অবজেক্ট অ্যাক্সেস করতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...