Java RMI (Remote Method Invocation) সঠিকভাবে ব্যবহারের জন্য Java Development Kit (JDK)-এর বিভিন্ন উপাদান এবং নির্দিষ্ট কনফিগারেশনের প্রয়োজন হয়। JDK সরবরাহ করে এমন টুল এবং API গুলি RMI অ্যাপ্লিকেশন তৈরি, কম্পাইল, চালনা এবং ডিবাগ করার জন্য অপরিহার্য।
RMI এর জন্য প্রয়োজনীয় JDK উপাদানসমূহ
- Java Compiler (
javac):- RMI সার্ভার, ক্লায়েন্ট এবং ইন্টারফেসের সোর্স কোড কম্পাইল করার জন্য।
উদাহরণ:
javac Hello.java HelloImpl.java Server.java Client.java
- RMI Compiler (
rmic):- Stub এবং Skeleton ক্লাস জেনারেট করার জন্য ব্যবহৃত হয়। JDK 5 এবং তারপরে Skeleton প্রয়োজন হয় না, কারণ এটি Runtime-এ ডাইনামিক্যালি তৈরি করা হয়।
উদাহরণ:
rmic HelloImpl
- RMI Registry (
rmiregistry):- একটি সার্ভার যা রিমোট অবজেক্টগুলোর রেজিস্ট্রি পরিচালনা করে এবং ক্লায়েন্টকে তাদের অবস্থান জানায়।
RMI Registry চালানোর জন্য:
rmiregistry
- Java Runtime Environment (JRE):
- RMI অ্যাপ্লিকেশন চালানোর জন্য JRE ব্যবহার করা হয়। এটি JVM (Java Virtual Machine) এবং RMI Runtime Environment সরবরাহ করে।
- Policy File এবং Security Manager:
- RMI এর জন্য সিকিউরিটি কনফিগারেশন সেটআপ করার প্রয়োজন হয়। এটি Policy File এবং java.rmi.RMISecurityManager ব্যবহার করে।
- Networking Libraries:
- JDK-তে অন্তর্ভুক্ত java.rmi এবং java.net প্যাকেজগুলো নেটওয়ার্ক কমিউনিকেশন এবং সিরিয়ালাইজেশনের জন্য প্রয়োজনীয়।
RMI এর জন্য JDK-এর গুরুত্বপূর্ণ ক্লাস ও প্যাকেজ
- java.rmi প্যাকেজ:
- RMI-র জন্য প্রয়োজনীয় ক্লাস এবং ইন্টারফেস সরবরাহ করে।
- গুরুত্বপূর্ণ ক্লাস এবং ইন্টারফেস:
RemoteUnicastRemoteObjectNamingRegistry
- java.rmi.registry প্যাকেজ:
- RMI Registry এর ক্লাস এবং ইন্টারফেস সরবরাহ করে।
- উদাহরণ:
LocateRegistry
- java.io.Serializable:
- RMI এর মাধ্যমে ডেটা এবং অবজেক্ট সিরিয়ালাইজ করার জন্য প্রয়োজনীয়।
- java.security প্যাকেজ:
- Policy File এবং Security Manager সেটআপ করার জন্য।
RMI অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য JDK সেটআপ
- JDK ইনস্টলেশন:
- JDK 8 বা তার পরবর্তী ভার্সন ইনস্টল করুন। এটি RMI এবং অন্যান্য প্রয়োজনীয় টুল অন্তর্ভুক্ত করে।
- PATH এবং CLASSPATH কনফিগারেশন:
PATH: JDK-র
binডিরেক্টরি PATH এ যুক্ত করুন।export PATH=$PATH:/path/to/jdk/binCLASSPATH: RMI Stub এবং ক্লাস ফাইলগুলো CLASSPATH-এ অন্তর্ভুক্ত করুন।
export CLASSPATH=.:/path/to/rmi/classes
- RMI Registry চালু করা:
RMI Registry চালানোর আগে CLASSPATH ঠিকভাবে কনফিগার করুন এবং কমান্ডটি চালান:
rmiregistry 1099- 1099: ডিফল্ট RMI Registry পোর্ট।
- Policy File তৈরি করা:
একটি Policy File তৈরি করুন যাতে রিমোট মেথড কল অনুমোদিত হয়। policy.txt উদাহরণ:
grant { permission java.security.AllPermission; };
- Java Security Manager ব্যবহার করা:
RMI সার্ভার চালানোর সময় Policy File নির্দিষ্ট করুন:
java -Djava.security.policy=policy.txt Server
একটি সাধারণ RMI অ্যাপ্লিকেশনের ধাপসমূহ
- Remote Interface তৈরি করা:
java.rmi.Remoteইন্টারফেস এক্সটেন্ড করে রিমোট মেথড ডিফাইন করা।
- Remote Object Implementation:
UnicastRemoteObjectক্লাস ব্যবহার করে রিমোট অবজেক্ট ইমপ্লিমেন্ট করা।
- Server Setup:
- RMI Registry-তে রিমোট অবজেক্ট রেজিস্টার করা।
- Client তৈরি করা:
- RMI Registry থেকে রিমোট অবজেক্ট রিসল্ভ করা এবং রিমোট মেথড কল করা।
- Compilation এবং Execution:
Compilation:
javac *.javaStub Generation (JDK 5 এর আগে):
rmic HelloImplExecution:
rmiregistry 1099 & java -Djava.security.policy=policy.txt Server java -Djava.security.policy=policy.txt Client
Java RMI অ্যাপ্লিকেশন ডেভেলপ করতে JDK একটি সম্পূর্ণ পরিবেশ সরবরাহ করে, যেখানে javac, rmic, এবং rmiregistry টুলস গুরুত্বপূর্ণ ভূমিকা পালন করে। সঠিকভাবে PATH এবং CLASSPATH কনফিগার করে, Policy File সেটআপ করে, এবং JDK-এর সরঞ্জাম ব্যবহার করে সহজেই একটি RMI-ভিত্তিক Distributed Application তৈরি করা সম্ভব।
Read more