EJB এর প্রকারভেদ (Session Beans, Message-driven Beans, Entity Beans)

EJB এর পরিচিতি - ইজেবি (EJB) - Java Technologies

294

EJB (Enterprise JavaBeans) হল Java EE (Enterprise Edition)-এর একটি গুরুত্বপূর্ণ অংশ, যা জাভা ভিত্তিক এন্টারপ্রাইজ অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। EJB একটি সার্ভার-সাইড এজেন্টের মতো কাজ করে, যা জাভা অ্যাপ্লিকেশনকে মডুলার, স্কেলেবল, এবং ট্রানজেকশনাল করতে সাহায্য করে। EJB তিনটি মূল প্রকারভেদে বিভক্ত: Session Beans, Message-driven Beans, এবং Entity Beans। এগুলি প্রত্যেকটি ভিন্ন কাজ এবং উদ্দেশ্য পালন করে।

এখানে আমরা Session Beans, Message-driven Beans, এবং Entity Beans সম্পর্কে বিস্তারিতভাবে আলোচনা করব, প্রতিটির কার্যকারিতা, ব্যবহার এবং উদাহরণসহ।


১. Session Beans

Session Beans হল EJB-এর সবচেয়ে সাধারণ এবং ব্যবহৃত প্রকার। এগুলি ক্লায়েন্টের অনুরোধ প্রক্রিয়াকরণের জন্য তৈরি করা হয় এবং একটি নির্দিষ্ট ব্যবসায়িক কার্যক্রম বা কাজ সম্পাদন করে। সেশন বিন দুটি ধরনের হতে পারে:

  • Stateful Session Bean
  • Stateless Session Bean

Stateful Session Bean:

Stateful Session Bean সেসন অবস্থান সংরক্ষণ করে। এই ধরনের বিন যখন ক্লায়েন্টের সাথে কাজ করে, তখন তা ক্লায়েন্টের অবস্থান (state) সংরক্ষণ করে রাখে এবং সেশনটি শেষ না হওয়া পর্যন্ত তা একে অপরের সাথে যোগাযোগ বজায় রাখে।

Stateless Session Bean:

Stateless Session Bean কোনো অবস্থান সংরক্ষণ করে না। প্রতিটি ক্লায়েন্টের জন্য এটি নতুন একটি ইনস্ট্যান্স তৈরি করে এবং পরবর্তী সময়ে আর তার সাথে সংযুক্ত থাকে না।

উদাহরণ:

Stateless Session Bean উদাহরণ:

import javax.ejb.Stateless;

@Stateless
public class CalculatorBean implements Calculator {
    public int add(int num1, int num2) {
        return num1 + num2;
    }
}

Stateful Session Bean উদাহরণ:

import javax.ejb.Stateful;

@Stateful
public class UserSessionBean implements UserSession {
    private String username;

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUsername() {
        return username;
    }
}

এখানে CalculatorBean একটি Stateless Session Bean এবং UserSessionBean একটি Stateful Session BeanCalculatorBean কোনো অবস্থান সংরক্ষণ না করলেও UserSessionBean ক্লায়েন্টের অবস্থান সংরক্ষণ করে।


২. Message-driven Beans

Message-driven Beans (MDBs) হল EJB এর একটি প্রকার যা asynchronous messaging (যেমন JMS - Java Message Service) এর জন্য ব্যবহৃত হয়। MDB সাধারণত ক্লায়েন্ট থেকে মেসেজ গ্রহণ করে এবং তাদের প্রক্রিয়া করে। MDB এর সবচেয়ে বড় সুবিধা হল, এটি মেসেজ প্রক্রিয়া করার জন্য কোনো পরিষ্কার state বা transactional context প্রয়োজন হয় না এবং এটি একাধিক ক্লায়েন্টের জন্য উচ্চ দক্ষতার সাথে কাজ করতে পারে।

উদাহরণ:

import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.TextMessage;

@MessageDriven
public class TextMessageBean implements MessageListener {
    
    public void onMessage(Message message) {
        try {
            if (message instanceof TextMessage) {
                String text = ((TextMessage) message).getText();
                System.out.println("Received Message: " + text);
            }
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

এখানে TextMessageBean একটি Message-driven Bean (MDB) যা TextMessage গ্রহণ এবং প্রক্রিয়া করে। onMessage মেথডটি JMS মেসেজ গ্রহণ করে এবং একটি TextMessage এর মাধ্যমে তথ্য প্রক্রিয়া করে।


৩. Entity Beans

Entity Beans হল EJB-এর একটি প্রকার যা ডাটাবেসের সাথে কাজ করে এবং একটি সত্তার (entity) উপস্থাপন হিসাবে ব্যবহৃত হয়। Entity Beans persistence সম্পর্কিত সমস্ত কার্যক্রম পরিচালনা করে, যেমন ডাটাবেসে ডাটা সংরক্ষণ বা অ্যাক্সেস করা। আগে, EJB 2.x ভার্সনে Entity Beans ব্যবহার করা হলেও, EJB 3.x থেকে JPA (Java Persistence API) এর মাধ্যমে ডাটাবেস পরিচালনা করা হয়, ফলে Entity Beans এর ব্যবহার কমে গেছে এবং বর্তমানে JPA বেশি ব্যবহৃত হয়। তবে, এটি একটি অত্যন্ত গুরুত্বপূর্ণ অংশ ছিল আগে এবং এখনো কিছু Legacy অ্যাপ্লিকেশনগুলোতে Entity Beans ব্যবহৃত হতে পারে।

উদাহরণ (EJB 2.x এর Entity Bean):

import javax.ejb.EntityBean;
import javax.ejb.EntityContext;

public class EmployeeBean implements EntityBean {
    private Integer employeeId;
    private String name;

    public Integer getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Integer employeeId) {
        this.employeeId = employeeId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    // EntityBean এর অন্যান্য মেথড যেমন ejbCreate(), ejbLoad(), ejbStore() ইত্যাদি
}

এখানে EmployeeBean একটি Entity Bean যা ডাটাবেসের Employee সত্তা ধারণ করে এবং এর employeeId এবং name ফিল্ডগুলির মাধ্যমে ডাটাবেসের সাথে কাজ করতে পারে।


EJB এর পরিবর্তন (EJB 3.x ও JPA)

বর্তমানে EJB 3.x এবং JPA (Java Persistence API) এর সাথে Entity Beans ব্যবহৃত হয়, যেখানে Entity Beans সাধারণত JPA Entities হিসাবে প্রতিস্থাপিত হয়েছে। JPA ব্যবহারে ডাটাবেসের সঙ্গে সরাসরি কাজ করা সহজ হয়ে গেছে এবং EJB এর পরিবর্তে আধুনিক প্রোগ্রামিং ধারণার সাথে আরও বেশি সঙ্গতিপূর্ণ।

JPA Entity Example:

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Employee {
    @Id
    private Integer employeeId;
    private String name;

    // Getter and Setter Methods
}

এখানে Employee একটি JPA Entity যা EmployeeBean এর পরিবর্তে ডাটাবেসের সাথে যোগাযোগ করে।


সারাংশ

EJB (Enterprise JavaBeans) হল একটি শক্তিশালী টুল যা Java EE ভিত্তিক এন্টারপ্রাইজ অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। EJB এর প্রধান তিনটি প্রকার হলো:

  1. Session Beans:
    • Stateful এবং Stateless Sessiion Beans ক্লায়েন্টের সাথে যোগাযোগ করে এবং বিভিন্ন ব্যবসায়িক কার্যক্রম সম্পাদন করে।
    • Stateful সেশন একটি ক্লায়েন্টের অবস্থা সংরক্ষণ করে, যেখানে Stateless সেশন একটানা ব্যবহৃত হয় এবং অবস্থান সংরক্ষণ করে না।
  2. Message-driven Beans (MDB):
    • Asynchronous messaging এর মাধ্যমে মেসেজ গ্রহণ এবং প্রক্রিয়া করে। এটি জাভা মেসেজ সার্ভিস (JMS) এর মাধ্যমে ডেটা পাঠানোর জন্য ব্যবহৃত হয়।
  3. Entity Beans:
    • ডাটাবেসের সাথে যোগাযোগ এবং persistence পরিচালনা করে। তবে আধুনিক জাভা অ্যাপ্লিকেশনগুলিতে JPA (Java Persistence API) Entity Beans এর পরিবর্তে ব্যবহৃত হয়।

EJB এর এই প্রকারভেদ আপনাকে জাভা এন্টারপ্রাইজ অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে, যেখানে প্রতিটি প্রকার বিভিন্ন কাজের জন্য বিশেষভাবে ডিজাইন করা হয়েছে।

Content added By
Promotion

Are you sure to start over?

Loading...