Java RMI (Remote Method Invocation) এর মাধ্যমে ক্লায়েন্ট প্রোগ্রাম রিমোট সার্ভারে অবস্থিত অবজেক্টের মেথড কল করতে পারে। ক্লায়েন্ট মূলত RMI Registry থেকে রিমোট অবজেক্টের রেফারেন্স পায় এবং সেই রেফারেন্স ব্যবহার করে মেথড কল করে।
RMI Client তৈরির ধাপসমূহ
ধাপ ১: RMI Registry-তে রিমোট অবজেক্ট রেজিস্টার করা
RMI সার্ভারের মাধ্যমে রিমোট অবজেক্টটি RMI Registry-তে রেজিস্টার করতে হবে, যাতে ক্লায়েন্ট এটি অ্যাক্সেস করতে পারে।
ধাপ ২: RMI Client তৈরি করা
ক্লায়েন্ট প্রোগ্রাম তৈরি করতে হবে, যা RMI Registry থেকে রিমোট অবজেক্টের রেফারেন্স পাবে।
ধাপ ৩: Remote Method কল করা
রিমোট অবজেক্টের রেফারেন্স ব্যবহার করে মেথডগুলো কল করা হবে।
RMI Client উদাহরণ
ধরা যাক, আমরা একটি Calculator সার্ভিস তৈরি করেছি যা ক্লায়েন্ট থেকে যোগফল, বিয়োগ, গুণ এবং ভাগের কাজ করতে পারে। নিচে RMI Client তৈরি করার উদাহরণ দেখানো হলো।
Step 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;
int multiply(int a, int b) throws RemoteException;
double divide(int a, int b) throws RemoteException;
}
Step 2: Remote Object Implementation
import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;
// Implementation of Remote Interface
public class CalculatorImpl extends UnicastRemoteObject implements Calculator {
public CalculatorImpl() throws RemoteException {
super();
}
@Override
public int add(int a, int b) throws RemoteException {
return a + b;
}
@Override
public int subtract(int a, int b) throws RemoteException {
return a - b;
}
@Override
public int multiply(int a, int b) throws RemoteException {
return a * b;
}
@Override
public double divide(int a, int b) throws RemoteException {
if (b == 0) throw new ArithmeticException("Division by zero is not allowed.");
return (double) a / b;
}
}
Step 3: RMI Server
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class RMIServer {
public static void main(String[] args) {
try {
// Create and bind the remote object
Calculator calculator = new CalculatorImpl();
Registry registry = LocateRegistry.createRegistry(1099); // Default RMI port
registry.rebind("CalculatorService", calculator);
System.out.println("RMI Server is ready and running...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Step 4: RMI Client
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class RMIClient {
public static void main(String[] args) {
try {
// Locate the RMI Registry
Registry registry = LocateRegistry.getRegistry("localhost", 1099);
// Lookup the remote object
Calculator calculator = (Calculator) registry.lookup("CalculatorService");
// Perform remote method calls
System.out.println("Addition: " + calculator.add(10, 5));
System.out.println("Subtraction: " + calculator.subtract(10, 5));
System.out.println("Multiplication: " + calculator.multiply(10, 5));
System.out.println("Division: " + calculator.divide(10, 5));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Step 5: Compile এবং Run করার নির্দেশনা
1. সমস্ত ফাইল কম্পাইল করুন:
javac *.java
2. RMI Server চালু করুন:
java RMIServer
3. RMI Client চালু করুন:
java RMIClient
আউটপুট (উদাহরণ)
RMI Client এর আউটপুট হতে পারে এরকম:
Addition: 15
Subtraction: 5
Multiplication: 50
Division: 2.0
RMI Client এর গুরুত্বপূর্ণ পয়েন্টসমূহ
- RMI Registry থেকে রিমোট অবজেক্ট খুঁজে বের করা:
LocateRegistry.getRegistry(host, port)ব্যবহার করা হয়।
lookupমেথড ব্যবহার:- RMI Registry থেকে নির্দিষ্ট নামের রিমোট অবজেক্ট রেফারেন্স পাওয়ার জন্য।
- Remote Methods কল:
- রিমোট অবজেক্টের উপর মেথড কল করার সময় RemoteException হ্যান্ডেল করতে হয়।
এই উদাহরণটি RMI Client তৈরি এবং ব্যবহার সম্পর্কে একটি পরিষ্কার ধারণা প্রদান করে। Java RMI প্রযুক্তি ব্যবহার করে ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন সহজে তৈরি এবং পরিচালনা করা যায়।
Read more