Stateless Session Beans হল EJB (Enterprise JavaBeans) এর একটি ধরনের কম্পোনেন্ট যা কোনও ক্লায়েন্টের স্টেট (অবস্থা) সংরক্ষণ করে না। এগুলি সাধারণত প্রক্রিয়াগুলির জন্য ব্যবহৃত হয় যেখানে ক্লায়েন্টের নির্দিষ্ট অবস্থা প্রয়োজন হয় না। Stateless Session Beans ক্লায়েন্টের রিকোয়েস্ট অনুযায়ী কাজ করে এবং প্রতিটি রিকোয়েস্টে নতুন ইনস্ট্যান্স তৈরি হয়।
Eclipse IDE তে Stateless Session Bean এর lifecycle (জীবনচক্র) সম্পর্কে জানলে আপনি এর প্রক্রিয়া আরও ভালোভাবে বুঝতে পারবেন। Stateless Bean এর lifecycle এর ধাপগুলি সাধারণত EJB Container দ্বারা ম্যানেজ করা হয়, যা Stateless Bean ইনস্ট্যান্স তৈরি, পরিচালনা, এবং ধ্বংস করে।
Stateless Session Bean Lifecycle: ধাপসমূহ
Stateless Session Bean-এর lifecycle সাধারণত ৪টি প্রধান ধাপে ভাগ করা হয়:
- Bean Instantiation (Bean তৈরি)
- Post-construct Initialization (ইনিশিয়ালাইজেশন)
- Business Method Invocation (ব্যবসায়িক মেথডের কল)
- Bean Destruction (Bean ধ্বংস)
এগুলি নিচে বিস্তারিতভাবে ব্যাখ্যা করা হলো।
1. Bean Instantiation (Bean তৈরি)
Stateless Session Bean এর instantiation (বা ইনস্ট্যান্স তৈরি) হয় EJB Container দ্বারা। ক্লায়েন্ট যখন প্রথম Bean-কে কল করে, তখন EJB Container নতুন Stateless Session Bean ইনস্ট্যান্স তৈরি করে। Stateless Beans-এ কোন অবস্থান বা স্টেট সংরক্ষণ করা হয় না, তাই প্রতিটি ক্লায়েন্ট রিকোয়েস্টের জন্য একটি নতুন ইনস্ট্যান্স তৈরি হয়।
Bean Instantiation ধাপে, EJB Container এই ধরণের কাজ করে:
- Stateless Session Bean তৈরি করে।
- Bean এর নির্মাণ সম্পন্ন হওয়ার পর, ক্লায়েন্টের রিকোয়েস্ট জন্য এটি ব্যবহারযোগ্য হয়ে ওঠে।
উদাহরণ:
@Stateless
public class CalculatorBean implements Calculator {
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public int subtract(int a, int b) {
return a - b;
}
}
এখানে, CalculatorBean একটি Stateless Session Bean, যা add() এবং subtract() মেথড সরবরাহ করে।
2. Post-construct Initialization (ইনিশিয়ালাইজেশন)
Bean ইনস্ট্যান্স তৈরি হওয়ার পর, EJB Container Post-Construct অ্যানোটেশন বা মেথড ব্যবহার করে Bean এর ইনিশিয়ালাইজেশন কাজটি করতে পারে। এই ধাপে Bean এর প্রয়োজনীয় সেটআপ বা কনফিগারেশন সম্পন্ন হয়। তবে Stateless Beans এ Post-Construct এর ব্যবহার খুব সাধারণ নয়, কারণ তাদের মধ্যে স্টেট রাখার কোনো প্রয়োজন নেই।
EJB Container @PostConstruct অ্যানোটেশন ব্যবহার করে একটি ইনিশিয়ালাইজেশন মেথড চালাতে পারে, যা Bean এর জীবনচক্রের শুরুতে কার্যকর হয়।
উদাহরণ:
@Stateless
public class CalculatorBean implements Calculator {
@PostConstruct
public void initialize() {
// Initialization logic here (If necessary)
System.out.println("Calculator Bean Initialized");
}
@Override
public int add(int a, int b) {
return a + b;
}
}
এখানে, initialize() মেথড @PostConstruct অ্যানোটেশন দিয়ে রান হয়, যা Bean ইনস্ট্যান্স তৈরির পর কিছু ইনিশিয়াল কাজ করে।
3. Business Method Invocation (ব্যবসায়িক মেথড কল)
Business Method Invocation হল Stateless Session Bean এর সবচেয়ে গুরুত্বপূর্ণ ধাপ, যেখানে ক্লায়েন্ট Bean-কে কল করে তার ব্যবসায়িক লজিক পরিচালনা করে। Stateless Session Bean বিভিন্ন ব্যবসায়িক লজিক বাস্তবায়ন করার জন্য মেথড সরবরাহ করে এবং প্রতিটি ক্লায়েন্ট কলের জন্য নতুন মেথড ইনস্ট্যান্স তৈরি করা হয়।
EJB Container ক্লায়েন্টের অনুরোধের পরিপ্রেক্ষিতে উপযুক্ত business method কল করে, তবে এই কলের জন্য Bean-এ কোন অবস্থা সংরক্ষণ করা হয় না। Stateless Beans শুধুমাত্র একক রিকোয়েস্ট-এ কাজ করে এবং পরবর্তী রিকোয়েস্টের জন্য তাদের কোনো স্টেট থাকে না।
উদাহরণ:
@Stateless
public class CalculatorBean implements Calculator {
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public int subtract(int a, int b) {
return a - b;
}
}
এখানে, add() এবং subtract() মেথডগুলি business methods হিসেবে কাজ করে, এবং প্রতিটি রিকোয়েস্টের জন্য একটি নতুন ইনস্ট্যান্স তৈরি হয়।
4. Bean Destruction (Bean ধ্বংস)
Bean Destruction ধাপে, EJB Container Bean এর ইনস্ট্যান্স ধ্বংস করে যখন সেটি আর ব্যবহারযোগ্য থাকে না। Stateless Beans সাধারণত EJB Container দ্বারা ম্যানেজ করা হয় এবং ক্লায়েন্টের সেশন শেষ হলে বা Bean আর প্রয়োজন না থাকলে, এটি ধ্বংস করা হয়।
EJB Container Bean ধ্বংসের আগে @PreDestroy অ্যানোটেশন ব্যবহার করে কোনো পরিষ্কারকরণ (cleanup) প্রক্রিয়া পরিচালনা করতে পারে, তবে Stateless Beans এর জন্য সাধারণত এটি ব্যবহৃত হয় না।
Bean Destruction ধাপের কাজ:
- Stateless Bean শেষ হয়ে গেলে EJB Container সেই Bean এর ইনস্ট্যান্স ধ্বংস করে।
- পরবর্তী কলের জন্য একটি নতুন ইনস্ট্যান্স তৈরি করা হয়।
উদাহরণ:
@Stateless
public class CalculatorBean implements Calculator {
@PreDestroy
public void cleanup() {
// Cleanup logic here
System.out.println("Calculator Bean Destroyed");
}
@Override
public int add(int a, int b) {
return a + b;
}
}
এখানে, @PreDestroy অ্যানোটেশন দিয়ে cleanup() মেথডটি কল করা হবে যখন Bean ধ্বংস হবে।
Stateless Session Bean-এর Lifecycle Summary
| Lifecycle Step | Description |
|---|---|
| Bean Instantiation | EJB Container Bean তৈরি করে। |
| Post-construct Initialization | Optional initialization (using @PostConstruct) for any setup. |
| Business Method Invocation | ক্লায়েন্টের দ্বারা মেথড কলের মাধ্যমে ব্যবসায়িক কার্যাবলী সম্পাদন। |
| Bean Destruction | Bean ধ্বংস হয় যখন আর প্রয়োজন থাকে না (EJB Container দ্বারা)। |
সারাংশ:
Stateless Session Beans হল EJB-এর একটি গুরুত্বপূর্ণ অংশ, যা ক্লায়েন্টের স্টেট সংরক্ষণ না করে, প্রক্রিয়াগুলি সম্পাদন করে। এর জীবনচক্র ৪টি ধাপ নিয়ে গঠিত: Bean Instantiation, Post-construct Initialization, Business Method Invocation, এবং Bean Destruction। Stateless Beans দ্রুত এবং হালকা হয়, কারণ এগুলি প্রতিটি রিকোয়েস্টে নতুন ইনস্ট্যান্স তৈরি করে এবং কোনো স্টেট সঞ্চয় করে না। EJB Container Stateless Beans এর জীবিত সাইকেল ম্যানেজ করে, এবং ব্যবসায়িক লজিক সঞ্চালনে সাহায্য করে।
Read more