জাভা RMI (Remote Method Invocation) ব্যবহার করে আমরা একটি রিমোট ইন্টারফেস তৈরি করতে পারি, যা সার্ভার এবং ক্লায়েন্টের মধ্যে যোগাযোগের একটি চুক্তি হিসাবে কাজ করে। এই রিমোট ইন্টারফেসে ডিক্লেয়ার করা মেথডগুলো ক্লায়েন্ট দ্বারা দূরবর্তীভাবে ডাকা যায়।
RMI Interface তৈরির ধাপ
- Remote Interface তৈরি করা:
Remote Interface হলো একটি সাধারণ Java Interface, যাjava.rmi.Remoteইন্টারফেসটি এক্সটেন্ড করে।- সকল মেথডে
throws RemoteExceptionযুক্ত থাকতে হবে।
- সকল মেথডে
- Remote Object এর Implementation:
Remote Interface ইমপ্লিমেন্ট করে একটি Remote Object তৈরি করা হয়। - RMI Registry তে Remote Object রেজিস্টার করা:
Remote Object একটি নির্দিষ্ট নাম দিয়ে RMI Registry তে রেজিস্টার করা হয়। - Client এর মাধ্যমে Remote Method কল করা:
ক্লায়েন্ট RMI Registry থেকে Remote Object-এর রেফারেন্স পায় এবং সেই রেফারেন্স দিয়ে মেথড কল করে।
RMI Interface এবং উদাহরণ
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;
}
বৈশিষ্ট্য:
Calculatorইন্টারফেসটিRemoteইন্টারফেসটি এক্সটেন্ড করেছে।- মেথডগুলোতে
throws RemoteExceptionব্যবহার করা হয়েছে।
Step 2: Remote Object ইমপ্লিমেন্টেশন
import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;
// Remote Object ইমপ্লিমেন্ট করা
public class CalculatorImpl extends UnicastRemoteObject implements Calculator {
// কনস্ট্রাক্টর
protected CalculatorImpl() throws RemoteException {
super();
}
// Remote Method ইমপ্লিমেন্টেশন
@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;
}
}
Step 3: Server-Side Implementation
import java.rmi.Naming;
public class CalculatorServer {
public static void main(String[] args) {
try {
// Remote Object তৈরি
Calculator calculator = new CalculatorImpl();
// RMI Registry তে রেজিস্টার
Naming.rebind("rmi://localhost:1099/CalculatorService", calculator);
System.out.println("Calculator Service is ready.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Step 4: Client-Side Implementation
import java.rmi.Naming;
public class CalculatorClient {
public static void main(String[] args) {
try {
// RMI Registry থেকে Remote Object রেফারেন্স পাওয়া
Calculator calculator = (Calculator) Naming.lookup("rmi://localhost:1099/CalculatorService");
// Remote Method কল করা
int sum = calculator.add(10, 20);
int difference = calculator.subtract(30, 15);
System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
} catch (Exception e) {
e.printStackTrace();
}
}
}
RMI Application রান করার ধাপ
RMI Registry চালু করুন:
rmiregistryServer Side রান করুন:
java CalculatorServerClient Side রান করুন:
java CalculatorClient
আউটপুট
Calculator Service is ready.
Sum: 30
Difference: 15
- Remote Interface জাভা RMI এর একটি অপরিহার্য উপাদান যা ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের নিয়ম নির্ধারণ করে।
- উদাহরণটি একটি সাধারণ Calculator Service দেখায়, যেখানে ক্লায়েন্ট রিমোট সার্ভারে
addএবংsubtractমেথড কল করে। - এই প্রক্রিয়া বড় অ্যাপ্লিকেশনের ক্ষেত্রে বিতরণকৃত সিস্টেম তৈরির জন্য কার্যকর।
Content added By
Read more