RMI Registry এবং Remote Object এর ধারণা

RMI এর কাজের প্রক্রিয়া - জাভা আরএমআই (Java RMI) - Java Technologies

395

জাভার RMI (Remote Method Invocation) একটি টেকনোলজি যা প্রোগ্রামারদের বিভিন্ন JVM (Java Virtual Machine) এর মধ্যে মেথড কল করতে দেয়, ঠিক যেভাবে একটি লকল মেথড কল করা হয়। RMI-তে RMI Registry এবং Remote Object এই দুটি গুরুত্বপূর্ণ উপাদান রয়েছে।


RMI Registry এর ধারণা

RMI Registry হলো একটি সার্ভার প্রোগ্রাম যা একটি কেন্দ্রীয় স্থান সরবরাহ করে যেখানে Remote Object রেজিস্টার করা হয়। ক্লায়েন্টরা RMI Registry-এর মাধ্যমে রিমোট অবজেক্টের রেফারেন্স পায় এবং সেই রিমোট অবজেক্ট ব্যবহার করে সার্ভারের সাথে যোগাযোগ করে।

RMI Registry এর বৈশিষ্ট্য:

  1. Remote Object Binding: রিমোট অবজেক্ট একটি নির্দিষ্ট নামের সাথে রেজিস্টার করা হয় (binding)।
  2. Lookup Mechanism: ক্লায়েন্ট নির্দিষ্ট নাম ব্যবহার করে রিমোট অবজেক্ট খুঁজে পায়।
  3. Naming Service: এটি এক ধরনের নামকরণ পরিষেবা যা অবজেক্টকে একটি সহজবোধ্য এবং ইউনিক নাম দেয়।
  4. Standard Port: RMI Registry সাধারণত 1099 পোর্টে রান করে।

Remote Object এর ধারণা

Remote Object হলো একটি অবজেক্ট যা একটি JVM থেকে অন্য একটি JVM-এ মেথড কল গ্রহণ করতে পারে। এই অবজেক্টগুলি বিশেষভাবে RMI Remote Interface ইমপ্লিমেন্ট করে এবং রিমোট ক্লাস হিসেবে চিহ্নিত হয়।

Remote Object এর বৈশিষ্ট্য:

  1. Remote Interface: এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের জন্য একটি কন্ট্রাক্ট প্রদান করে।
  2. Serialization: Remote Object এর ডেটা নেটওয়ার্কের মাধ্যমে পাঠানোর জন্য Serialization ব্যবহার করে।
  3. Stub এবং Skeleton: ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের জন্য Stub এবং Skeleton ব্যবহার করা হয়।
    • Stub: ক্লায়েন্টের জন্য একটি প্রক্সি অবজেক্ট যা সার্ভারে মেথড কল ফরওয়ার্ড করে।
    • Skeleton: সার্ভারে Stub থেকে আসা রিকোয়েস্ট প্রসেস করে।

RMI Registry এবং Remote Object এর কাজের প্রবাহ

  1. Server Side:
    • একটি Remote Interface তৈরি করা হয়।
    • Remote Object সেই ইন্টারফেস ইমপ্লিমেন্ট করে।
    • Remote Object RMI Registry-তে একটি নির্দিষ্ট নাম দিয়ে রেজিস্টার করা হয়।
  2. Client Side:
    • ক্লায়েন্ট RMI Registry থেকে Remote Object-এর রেফারেন্স পায়।
    • রেফারেন্স ব্যবহার করে ক্লায়েন্ট রিমোট মেথড কল করে।

RMI Registry এবং Remote Object এর উদাহরণ

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 {
    protected MyRemoteImpl() throws RemoteException {
        super();
    }

    @Override
    public String sayHello() throws RemoteException {
        return "Hello from the Remote Object!";
    }
}

Step 3: Server Side Implementation

import java.rmi.Naming;

public class RMIServer {
    public static void main(String[] args) {
        try {
            // Remote Object তৈরি
            MyRemote remoteObject = new MyRemoteImpl();

            // RMI Registry-তে Remote Object রেজিস্টার
            Naming.rebind("rmi://localhost:1099/RemoteHello", remoteObject);

            System.out.println("Remote Object is registered and ready.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Step 4: Client Side Implementation

import java.rmi.Naming;

public class RMIClient {
    public static void main(String[] args) {
        try {
            // RMI Registry থেকে Remote Object রেফারেন্স নেওয়া
            MyRemote remoteObject = (MyRemote) Naming.lookup("rmi://localhost:1099/RemoteHello");

            // Remote Method কল করা
            String message = remoteObject.sayHello();
            System.out.println("Received from server: " + message);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

RMI Registry চালু করার ধাপ

  1. RMI Registry শুরু করা:

    rmiregistry
    
  2. Server Side কোড রান করা:

    java RMIServer
    
  3. Client Side কোড রান করা:

    java RMIClient
    

Stub এবং Skeleton এর কাজ

RMI ব্যবহারকারীকে সরাসরি নেটওয়ার্কের কাজ বুঝতে হয় না। Stub এবং Skeleton ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ সহজ করা হয়:

  • Stub: ক্লায়েন্টের জন্য একটি প্রক্সি হিসেবে কাজ করে।
  • Skeleton: সার্ভারের জন্য ইনকামিং রিকোয়েস্ট প্রসেস করে।

  • RMI Registry হলো Remote Object রেজিস্টার এবং ক্লায়েন্টের জন্য সহজলভ্য করার একটি কেন্দ্রীয় স্থান।
  • Remote Object হলো এমন অবজেক্ট যা দূরবর্তী JVM থেকে অ্যাক্সেসযোগ্য।
  • RMI প্রযুক্তি বিতরণকৃত সিস্টেম তৈরির জন্য একটি কার্যকর সমাধান, যেখানে বিভিন্ন JVM একে অপরের সাথে ইন্টারঅ্যাক্ট করতে পারে।
Content added By
Promotion

Are you sure to start over?

Loading...