RMI Server কে RMI Registry তে bind করা

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

364

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...