Stateless এবং Stateful Bean এর জন্য Life Cycle

Stateless এবং Stateful Beans এর মধ্যে পার্থক্য - ইজেবি (EJB) - Java Technologies

325

EJB (Enterprise JavaBeans) এ দুটি প্রধান ধরনের Session Bean রয়েছে: Stateless Bean এবং Stateful Bean। এগুলোর Life Cycle বা জীবনচক্র কিছুটা ভিন্ন। EJB কম্পোনেন্টগুলির জীবনচক্র কন্টেইনার দ্বারা পরিচালিত হয় এবং এটি বিশেষভাবে বিজনেস লজিকের প্রক্রিয়া ও ম্যানেজমেন্টে সাহায্য করে। এখানে Stateless Bean এবং Stateful Bean এর জীবনচক্রের বিস্তারিত ব্যাখ্যা দেওয়া হলো।


1. Stateless Bean Life Cycle

Stateless Session Beans একটি নির্দিষ্ট ক্লায়েন্টের সাথে অবস্থা বা স্টেট সংরক্ষণ করে না। যখন ক্লায়েন্ট একটি Stateless Bean এর সাথে যোগাযোগ করে, তখন EJB কন্টেইনার এটি নতুনভাবে তৈরি করে এবং ক্লায়েন্টের অনুরোধ অনুযায়ী কাজ সম্পন্ন করে। কাজ শেষ হলে, Stateless Bean টি পুনরায় ব্যবহৃত হওয়ার জন্য আবার কন্টেইনারে রাখা হয়।

Stateless Bean Life Cycle:

  1. Instantiation:
    • ক্লায়েন্টের প্রথম অনুরোধ আসার পর, Stateless Bean কন্টেইনার দ্বারা ইনস্ট্যানশিয়েট করা হয়। এটি ক্লায়েন্টের কোন নির্দিষ্ট স্টেট সংরক্ষণ করে না।
    • Stateless Bean এর ক্লাসের একটি নতুন ইনস্ট্যান্স তৈরি হয় এবং এই অবজেক্টটি ক্লায়েন্টের অনুরোধে ব্যবহৃত হয়।
  2. Method Invocation:
    • ক্লায়েন্ট EJB মেথড কল করে এবং কন্টেইনার ওই মেথডটি কার্যকর করে। Bean এর মেথড সাধারণত দ্রুত সম্পন্ন হয় এবং কোনো স্টেট বা অবস্থা সংরক্ষণ করে না।
  3. Passive State:
    • Bean মেথডটি সম্পন্ন হওয়ার পর, EJB কন্টেইনার Bean এর অবজেক্টটি পুনঃব্যবহারযোগ্য হিসেবে রাখে। Stateless Bean এর কোনো ব্যক্তিগত স্টেট থাকে না।
  4. Removal:
    • যখন আর কোনো ক্লায়েন্ট Bean কে ব্যবহার করতে চায় না, তখন কন্টেইনার Bean এর ইনস্ট্যান্সটি মুছে দেয়। এটি অতিরিক্ত মেমরি দখল না করার জন্য কার্যকরী।
    • @Remove এ্যানোটেশন ব্যবহার করে Explicit remove করা যায়।

Stateless Bean Example:

import javax.ejb.Stateless;

@Stateless
public class HelloWorldBean implements HelloWorldRemote {
    public String sayHello() {
        return "Hello, Stateless EJB!";
    }
}

Stateless Bean Life Cycle এর Steps:

  1. Instantiation (Bean তৈরি হয়)
  2. Method Invocation (Bean মেথড কল হয়)
  3. Passive State (Bean পুনঃব্যবহারযোগ্য হয়)
  4. Removal (Bean মুছে ফেলা হয়)

2. Stateful Bean Life Cycle

Stateful Session Beans ক্লায়েন্টের অবস্থান বা স্টেট সংরক্ষণ করে। অর্থাৎ, যখন একটি Stateful Bean একাধিক মেথড কলের মাধ্যমে একটি ক্লায়েন্টের সাথে যোগাযোগ করে, তখন এটি ওই ক্লায়েন্টের সমস্ত স্টেট মেমরি তে সংরক্ষণ করে রাখে। যখন ক্লায়েন্টের সাথে ইন্টারঅ্যাকশন বন্ধ হয়, তখন Bean শেষ হয় এবং এর অবস্থা মুছে ফেলা হয়।

Stateful Bean Life Cycle:

  1. Instantiation:
    • Stateful Bean প্রথমবারের মতো ক্লায়েন্টের অনুরোধের পর কন্টেইনার দ্বারা ইনস্ট্যানশিয়েট হয়। এটি ক্লায়েন্টের সাথে স্টেট সংরক্ষণ করে।
    • Stateful Bean তৈরি হওয়ার পর, তার অবস্থান (state) ওই ক্লায়েন্টের জন্য সংরক্ষিত থাকে এবং পরবর্তী কলগুলির জন্য ব্যবহার করা হয়।
  2. Method Invocation:
    • ক্লায়েন্ট Bean এর মেথড কল করলে, Bean এর ইনস্ট্যান্সটি ক্লায়েন্টের অবস্থানকে বজায় রেখে সেই মেথড কার্যকর করে।
    • ক্লায়েন্ট এবং Bean এর মধ্যে যোগাযোগের সময় Bean এর স্টেট পরিবর্তন হতে থাকে।
  3. Passivation:
    • যখন Stateful Bean আর সক্রিয় থাকে না বা কোনো নির্দিষ্ট সময় ব্যবধান থাকে, তখন কন্টেইনার Bean এর অবস্থা (state) মেমরিতে সংরক্ষণ করে, যা পরে পুনরুদ্ধার করা যেতে পারে।
    • এটা passivation নামে পরিচিত। যখন Bean সক্রিয় হয়, তখন তার অবস্থা আবার পুনরুদ্ধার করা হয়।
  4. Removal:
    • Stateful Bean শেষ হয়ে যায় যখন ক্লায়েন্ট EJB এর সাথে আর যোগাযোগ করতে চায় না বা Bean এর জন্য @Remove বা অন্য কোনো নির্দেশ দেওয়া হয়।
    • এই সময় Bean এর সমস্ত স্টেট এবং ইনস্ট্যান্স মুছে ফেলা হয়।

Stateful Bean Example:

import javax.ejb.Stateful;

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

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

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

    public double getTotal() {
        double total = 0;
        for (Item item : items) {
            total += item.getPrice();
        }
        return total;
    }

    @Remove
    public void checkout() {
        // Perform checkout logic
    }
}

Stateful Bean Life Cycle এর Steps:

  1. Instantiation (Bean তৈরি হয়)
  2. Method Invocation (Bean মেথড কল হয়)
  3. Passivation (Bean এর স্টেট সংরক্ষণ হয়)
  4. Removal (Bean মুছে ফেলা হয়)

Stateful এবং Stateless Bean এর মধ্যে প্রধান পার্থক্য:

FeatureStateless BeanStateful Bean
State Managementক্লায়েন্টের স্টেট সংরক্ষণ করে নাক্লায়েন্টের স্টেট সংরক্ষণ করে
Lifecycleদ্রুত নির্মাণ এবং মুছে ফেলাদীর্ঘসময় চলতে থাকে ক্লায়েন্টের সাথে
PassivationNoYes
Performanceঅধিক স্কেলেবলকম স্কেলেবল, বেশি মেমরি প্রয়োজন
Use Caseছোট, সহজ সার্ভিস বা স্টেটলেস লজিকক্লায়েন্টের অবস্থা সংরক্ষণকারী অ্যাপ্লিকেশন

EJB Life Cycle Summary

  • Stateless Beans: EJB কন্টেইনার ইনস্ট্যানশিয়েট এবং মেথড কল করার পর ইনস্ট্যান্সকে পুনঃব্যবহারযোগ্য অবস্থায় রাখে। কোন স্টেট সংরক্ষণ করে না।
  • Stateful Beans: ক্লায়েন্টের সাথে সম্পর্কিত অবস্থা বা স্টেট বজায় রাখে এবং কাজের শেষে মুছে ফেলা হয়। এই Bean এর স্টেট সংরক্ষণ করা হয় এবং passivation প্রক্রিয়া ব্যবহার করে মেমরি অপটিমাইজ করা হয়।

EJB এর জীবনচক্র এবং Bean এর ধরন অনুযায়ী, ডেভেলপাররা তাদের অ্যাপ্লিকেশনের জন্য যথাযথ Bean নির্বাচন করতে পারেন, যা তাদের কর্মক্ষমতা এবং স্থিতি সম্পর্কিত প্রয়োজনের উপর নির্ভর করে।

Content added By
Promotion

Are you sure to start over?

Loading...