Session Bean কি এবং এর প্রকারভেদ (Stateless, Stateful, Singleton)

Session Beans এর ধারণা - ইজেবি (EJB) - Java Technologies

317

Session Beans হল Enterprise JavaBeans (EJB) এর একটি ধরনের কম্পোনেন্ট, যা Java EE (Enterprise Edition)-এর অংশ হিসেবে ব্যবহৃত হয়। Session Beans মূলত ব্যবসায়িক লজিক (business logic) বাস্তবায়নের জন্য ব্যবহৃত হয় এবং এটি ক্লায়েন্টের সাথে ইন্টারঅ্যাক্ট করার জন্য একটি গুরুত্বপূর্ণ উপাদান। Session Beans সাধারণত EJB Container দ্বারা ম্যানেজ করা হয় এবং তিনটি প্রকারে বিভক্ত: Stateless, Stateful, এবং Singleton

এখানে Session Beans এবং এর প্রকারভেদ সম্পর্কে বিস্তারিত ব্যাখ্যা করা হলো।


1. Session Bean কী?

Session Beans হল EJB-এর এমন একটি টাইপ যা business logic বা ব্যবসায়িক লজিক পরিচালনা করে। এগুলি সাধারণত ডাটা প্রসেসিং, ক্যালকুলেশন, বা অন্য কোনও ব্যবসায়িক কার্যাবলি সম্পাদন করে। Session Beans সাধারণত EJB Container দ্বারা ম্যানেজ করা হয় এবং ক্লায়েন্টের সাথে যোগাযোগ স্থাপন করে।

Session Beans তিনটি প্রকারের হতে পারে:

  • Stateless Session Beans
  • Stateful Session Beans
  • Singleton Session Beans

2. Stateless Session Bean

Stateless Session Beans হল এমন EJB কম্পোনেন্ট যা কোনো স্টেট (অবস্থা) সংরক্ষণ করে না। অর্থাৎ, একটি Stateless Session Bean পরবর্তী ক্লায়েন্ট রিকোয়েস্টের জন্য পূর্ববর্তী স্টেট পুনরুদ্ধার করে না। এটি প্রতিটি রিকোয়েস্টের জন্য নতুন অবজেক্ট তৈরি করে এবং প্রতিটি রিকোয়েস্টের জন্য একটি নতুন সেশন তৈরি করে।

বিশেষত্ব:

  • Stateless beans সিস্টেমের জন্য দ্রুত এবং হালকা, কারণ এতে কোনো সেশন সম্পর্কিত ডেটা রাখার প্রয়োজন নেই।
  • একাধিক ক্লায়েন্ট একই EJB ইনস্ট্যান্স ব্যবহার করতে পারে।

উদাহরণ (Stateless Session 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 যা কোনো স্টেট সঞ্চয় করে না এবং প্রতিটি মেথড কলের জন্য একটি নতুন অবজেক্ট তৈরি হয়।


3. Stateful Session Bean

Stateful Session Beans হল এমন EJB কম্পোনেন্ট যা একটি ক্লায়েন্টের সেশন সম্পর্কিত স্টেট (অবস্থা) সংরক্ষণ করে। অর্থাৎ, ক্লায়েন্টের বিভিন্ন রিকোয়েস্টের মধ্যে Stateful bean তার স্টেট রক্ষা করে, এবং একাধিক রিকোয়েস্টে একই ডেটা বা অবস্থা ব্যবহৃত হয়।

বিশেষত্ব:

  • Stateful Session Beans সঠিকভাবে কাজ করার জন্য ক্লায়েন্টের অবস্থা সংরক্ষণ করে এবং এটি একটি নির্দিষ্ট ক্লায়েন্টের জন্য জড়িত থাকে।
  • প্রতিটি ক্লায়েন্টের জন্য পৃথক Stateful bean তৈরি হয় এবং সেই bean তার স্টেট রক্ষা করে।

উদাহরণ (Stateful Session Bean):

@Stateful
public class ShoppingCartBean implements ShoppingCart {
    private List<String> items = new ArrayList<>();

    public void addItem(String item) {
        items.add(item);
    }

    public List<String> getItems() {
        return items;
    }
}

এখানে, ShoppingCartBean একটি Stateful Session Bean যা ক্লায়েন্টের shopping cart items সঞ্চয় করে এবং সেই অবস্থা পরবর্তী রিকোয়েস্টে ব্যবহৃত হয়।


4. Singleton Session Bean

Singleton Session Beans হল এমন EJB কম্পোনেন্ট যা একটি মাত্র একটি ইনস্ট্যান্স ব্যবহার করে। এটি পুরো অ্যাপ্লিকেশন জুড়ে একাধিক ক্লায়েন্টদের জন্য ব্যবহার করা হয় এবং সমস্ত ক্লায়েন্ট একসাথে সেই একমাত্র ইনস্ট্যান্সকে শেয়ার করে। Singleton beans অ্যাপ্লিকেশন স্তরের শেয়ারযোগ্য অবস্থা (state) ধারণ করতে ব্যবহৃত হয়।

বিশেষত্ব:

  • Singleton bean শুধুমাত্র একটি ইনস্ট্যান্স থাকে এবং এটি পুরো অ্যাপ্লিকেশন জুড়ে শেয়ার করা হয়।
  • Thread-safe নিশ্চিত করতে সাধারণত Singleton beans লক মেকানিজম বা অন্যান্য সমান্তরাল ম্যানেজমেন্ট কৌশল ব্যবহার করে।

উদাহরণ (Singleton Session Bean):

@Singleton
public class LoggerBean {
    private static final Logger logger = Logger.getLogger(LoggerBean.class.getName());
    
    public void log(String message) {
        logger.info(message);
    }
}

এখানে, LoggerBean একটি Singleton Session Bean যা পুরো অ্যাপ্লিকেশন জুড়ে একমাত্র একটি ইনস্ট্যান্স ব্যবহার করে এবং একাধিক ক্লায়েন্টের লগ মেসেজ গ্রহণ করে।


5. EJB-র Session Bean-এর তুলনা:

FeatureStateless Session BeanStateful Session BeanSingleton Session Bean
State ManagementNo state (No client-specific data)Maintains state for a clientOne instance shared across all clients
ConcurrencyMultiple clients share the same bean instanceOne instance per clientOne shared instance for the whole application
PerformanceHigh performance, no state to storePerformance may be slower due to state managementPerformance optimized for shared resource management
Use CaseStateless, independent requests (e.g., calculations)Client-specific data processing (e.g., shopping cart)Shared resources (e.g., logging, configuration management)
Bean LifecycleShort-lived (exists only for a request)Tied to a client session (long-lived)Long-lived (exists for the entire application lifecycle)

6. EJB Session Bean- এর জীবনচক্র (Lifecycle)

EJB Life Cycle ইন্টিগ্রেটেড পরিবেশে ব্যবহৃত session beans-এর পরিচালন ও ম্যানেজমেন্ট সম্পর্কে ধারণা দেয়। এটি পরিচালিত হয় EJB Container-এর মাধ্যমে, যা bean instantiation, initialization, method invocation, এবং destruction এর সমস্ত দায়িত্ব পালন করে।

  • Stateless Session Beans:
    • Bean Instantiation: EJB container দ্বারা তৈরি করা হয়।
    • Method Invocation: ক্লায়েন্টের অনুরোধ অনুযায়ী method-এ access।
    • Destruction: ক্লায়েন্টের সাথে সম্পর্ক না থাকলে container bean ইনস্ট্যান্স ধ্বংস করে।
  • Stateful Session Beans:
    • Bean Instantiation: প্রথম ক্লায়েন্ট অনুরোধে তৈরি হয়।
    • Method Invocation: ক্লায়েন্টের সেশন অনুযায়ী অবস্থা পরিচালনা করে।
    • Destruction: ক্লায়েন্টের সেশন শেষ হলে bean ধ্বংস করা হয়।
  • Singleton Session Beans:
    • Bean Instantiation: একটি একক ইনস্ট্যান্স শুরু হয়।
    • Method Invocation: অ্যাপ্লিকেশন জুড়ে একাধিক ক্লায়েন্ট ইনস্ট্যান্স শেয়ার করতে পারে।
    • Destruction: অ্যাপ্লিকেশন শেষ হলে এটি ধ্বংস হয়।

সারাংশ:

EJB-এর Session Beans হল Java EE এপ্লিকেশনগুলির গুরুত্বপূর্ণ অংশ, যা ব্যবসায়িক লজিক বাস্তবায়ন করে। Stateless, Stateful, এবং Singleton Session Beans বিভিন্ন প্রকারের কম্পোনেন্ট প্রদান করে, যা ক্লায়েন্টের প্রয়োজন অনুসারে তাদের অবস্থা এবং কার্যাবলী পরিচালনা করে। Stateless Beans একাধিক ক্লায়েন্টের জন্য একই ইনস্ট্যান্স ব্যবহার করে, Stateful Beans ক্লায়েন্ট-specific ডেটা সংরক্ষণ করে, এবং Singleton Beans পুরো অ্যাপ্লিকেশন জুড়ে একমাত্র একটি ইনস্ট্যান্স ব্যবহার করে।

Content added By
Promotion

Are you sure to start over?

Loading...