কম্পিউটার টিউটোরিয়াল

জাভাতে RMI (Remote Method Invocation) ব্যবহার করে রিমোট মেথড কল করা

RMI (Remote Method Invocation) হলো একটি মেকানিজম যা একটি JVM-এ চলমান অবজেক্টকে অন্য JVM-এ চলমান অবজেক্টের মেথড কল করার অনুমতি দেয়। এটি ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন বানাতে ব্যবহৃত হয়। প্যাকেজ: java.rmi।

RMI অ্যাপ্লিকেশন লেখার ৬ ধাপ

ধাপ ১: রিমোট ইন্টারফেস ডিফাইন করা

java.rmi.Remote এক্সটেন্ড করতে হবে। সব মেথড RemoteException থ্রো করতে হবে।

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

public interface Hello extends Remote {
    void printMsg() throws RemoteException;
}

ধাপ ২: ইমপ্লিমেন্টেশন ক্লাস (রিমোট অবজেক্ট) তৈরি

public class ImplExample implements Hello {
    public void printMsg() {
        System.out.println("This is an example RMI program");
    }
}

ধাপ ৩: সার্ভার প্রোগ্রাম লিখা

রিমোট অবজেক্ট তৈরি করে RMI রেজিস্ট্রিতে বাইন্ড (bind) করা।

import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class Server {
    public static void main(String args[]) {
        try {
            ImplExample obj = new ImplExample();
            Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
            Registry registry = LocateRegistry.getRegistry(); // ডিফল্ট পোর্ট 1099
            registry.bind("Hello", stub);
            System.err.println("Server ready");
        } catch (Exception e) {
            System.err.println("Server exception: " + e.toString());
            e.printStackTrace();
        }
    }
}

ধাপ ৪: ক্লায়েন্ট প্রোগ্রাম লিখা

রেজিস্ট্রি থেকে স্টাব (stub) লুকআপ করে মেথড কল করা।

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

public class Client {
    public static void main(String[] args) {
        try {
            Registry registry = LocateRegistry.getRegistry(null); // localhost
            Hello stub = (Hello) registry.lookup("Hello");
            stub.printMsg();
        } catch (Exception e) {
            System.err.println("Client exception: " + e.toString());
            e.printStackTrace();
        }
    }
}

ধাপ ৫: কম্পাইল করা

javac Hello.java ImplExample.java Server.java Client.java

ধাপ ৬: এক্সিকিউশন

  1. RMI রেজিস্ট্রি স্টার্ট করুন: কমান্ড প্রম্পটে rmiregistry রান করুন (আলাদা উইন্ডো খুলবে)।
  2. সার্ভার রান করুন: java Server
  3. ক্লায়েন্ট রান করুন: java Client

ভারিফিকেশন: ক্লায়েন্ট স্টার্ট হলে সার্ভার কনসোলে "This is an example RMI program" প্রিন্ট হবে।

দ্রষ্টব্য: নেটওয়ার্ক কনফিগারেশন (ফায়ারওয়াল, হোস্টনেম, security policy) সঠিক থাকতে হবে। প্রোডাকশনে Spring Remoting, gRPC, বা REST API আরও phổল।

  1. জাভাতে CSV ফাইল থেকে ডেটা পড়া

  2. জাভাতে প্রপার্টিজ ফাইল থেকে ডেটা পড়া

  3. জাভাতে JList আইটেম সিলেক্ট করলে মান প্রদর্শন

  4. জাভাতে JPanel-এর paintComponent() মেথড কীভাবে বাস্তবায়ন করবেন?