Remote Interface কী?
Remote Interface হলো একটি Java Interface, যা RMI-এর মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ করতে ব্যবহৃত হয়। এটি এমন মেথড ডিফাইন করে, যা ক্লায়েন্ট রিমোট সার্ভারে কল করতে পারে।
মূল বৈশিষ্ট্য:
java.rmi.Remoteইন্টারফেস এক্সটেন্ড করে।- সমস্ত মেথডগুলোতে অবশ্যই
throws RemoteExceptionথাকতে হবে। - এই ইন্টারফেসটি ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি কন্ট্রাক্ট হিসেবে কাজ করে।
Remote Interface তৈরির ধাপ
ধাপ ১: java.rmi.Remote ইন্টারফেস এক্সটেন্ড করা
- Remote Interface তৈরির জন্য
java.rmi.Remoteইন্টারফেস এক্সটেন্ড করতে হবে।
ধাপ ২: Remote মেথড ডিফাইন করা
- Remote মেথড ডিক্লেয়ার করতে হবে এবং এগুলোতে
throws RemoteExceptionযোগ করতে হবে।
Remote Interface উদাহরণ
নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি Calculator Remote Interface তৈরি করা হয়েছে।
import java.rmi.Remote;
import java.rmi.RemoteException;
/**
* Remote Interface for Calculator Service
*/
public interface Calculator extends Remote {
// Remote method for addition
int add(int a, int b) throws RemoteException;
// Remote method for subtraction
int subtract(int a, int b) throws RemoteException;
}
কোডের ব্যাখ্যা:
extends Remote:- এটি ইন্টারফেসকে RMI Remote Interface হিসেবে চিহ্নিত করে।
throws RemoteException:- রিমোট মেথড কলের সময় নেটওয়ার্ক বা অন্যান্য সমস্যাগুলোর জন্য এই এক্সসেপশন থ্রো হতে পারে।
- মেথড ডিফিনিশন:
addএবংsubtractমেথডগুলো ক্লায়েন্টের পক্ষে সার্ভার অবজেক্টে রিমোট কল পরিচালনা করবে।
Remote Interface তৈরি এবং ব্যবহারের ধাপসমূহ
1. Remote Interface তৈরি
- একটি ইন্টারফেস তৈরি করুন যা
Remoteইন্টারফেস এক্সটেন্ড করবে এবং এর মেথডগুলোতেthrows RemoteExceptionব্যবহার করুন।
2. Remote Object (Implementation) তৈরি
- Remote Interface এর জন্য একটি ক্লাস তৈরি করুন এবং সেটি
UnicastRemoteObjectএক্সটেন্ড করবে। উদাহরণ:
import java.rmi.server.UnicastRemoteObject; import java.rmi.RemoteException; public class CalculatorImpl extends UnicastRemoteObject implements Calculator { protected 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; } }
3. Server তৈরি এবং Remote Object রেজিস্টার করা
- সার্ভার ক্লাস তৈরি করুন এবং Remote Object রেজিস্ট্রি সার্ভিসে রেজিস্টার করুন।
উদাহরণ:
import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; public class Server { public static void main(String[] args) { try { Calculator calculator = new CalculatorImpl(); Registry registry = LocateRegistry.createRegistry(1099); registry.rebind("CalculatorService", calculator); System.out.println("Server is ready."); } catch (Exception e) { e.printStackTrace(); } } }
4. Client তৈরি এবং Remote Object ব্যবহার
- ক্লায়েন্ট থেকে Remote Object এর মেথড কল করা হবে।
উদাহরণ:
import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; public class Client { public static void main(String[] args) { try { Registry registry = LocateRegistry.getRegistry("localhost", 1099); Calculator calculator = (Calculator) registry.lookup("CalculatorService"); System.out.println("Addition: " + calculator.add(10, 20)); System.out.println("Subtraction: " + calculator.subtract(30, 15)); } catch (Exception e) { e.printStackTrace(); } } }
Remote Interface এর গুরুত্ব
- ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন:
- Remote Interface ছাড়া ক্লায়েন্ট এবং সার্ভারের মধ্যে কমিউনিকেশন সম্ভব নয়।
- টাইপ সেফটি নিশ্চিত করে:
- ক্লায়েন্ট এবং সার্ভারের মধ্যে কম্প্যাটিবল মেথডগুলোর সঠিক সংজ্ঞা নিশ্চিত হয়।
- বহুমুখী ব্যবহার:
- একটি Remote Interface একাধিক সার্ভার বা ক্লায়েন্টে সহজে ব্যবহার করা যায়।
সারাংশ
Remote Interface হলো RMI-তে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের ভিত্তি। এটি Remote Method এর ডিক্লেয়ারেশন দেয় এবং RMI API এর মাধ্যমে টাইপ-নিরাপদ এবং সুশৃঙ্খল ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। Remote Interface তৈরির সময় RemoteException এবং Remote ইন্টারফেস সঠিকভাবে ব্যবহার নিশ্চিত করা গুরুত্বপূর্ণ।
Read more