EJB2 বনাম EJB3
EJB (Enterprise JavaBeans) হল একটি Java API (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস) যা Java EE (জাভা প্ল্যাটফর্ম, এন্টারপ্রাইজ সংস্করণ) স্পেসিফিকেশনের মধ্যে পাওয়া যায়। EJB এন্টারপ্রাইজ অ্যাপ্লিকেশনের বিকাশের জন্য একটি স্থাপত্য মডেল বর্ণনা করে। এটি একটি পরিচালিত সার্ভার-সাইড মডেল যা এন্টারপ্রাইজ অ্যাপ্লিকেশনের ব্যবসায়িক যুক্তি ক্যাপচার করতে সক্ষম। IBM হল EJB-এর মূল স্রষ্টা যিনি এটি 1997 সালে তৈরি করেছিলেন৷ সান মাইক্রোসিস্টেম 1999 সালে এটি গ্রহণ করেছিল৷
EJB প্রবর্তনের আগে, এটি পাওয়া গেছে যে ব্যাক-এন্ড ব্যবসায়িক কোডে পাওয়া সমস্যার সমাধানগুলি প্রায়শই প্রোগ্রামারদের দ্বারা পুনরায় প্রয়োগ করা হয়েছিল।ফলস্বরূপ, অধ্যবসায়, লেনদেনের অখণ্ডতা এবং নিরাপত্তার মতো এই সাধারণ সমস্যাগুলি মোকাবেলার জন্য EJB চালু করা হয়েছিল। EJB এই ব্যাক-এন্ড সমস্যাগুলি পরিচালনা করার জন্য মানক উপায় সরবরাহ করে, অ্যাপ্লিকেশন সার্ভার কীভাবে লেনদেন প্রক্রিয়া করবে তা উল্লেখ করে, JPA (জাভা পারসিস্টেন্স API) পরিষেবাগুলির সাথে একীভূত হবে, একযোগে নিয়ন্ত্রণ পরিচালনা করবে, JMS (জাভা বার্তা পরিষেবা) ইভেন্টগুলি পরিচালনা করবে, JNDI (জাভা মেসেজ সার্ভিস) ইভেন্টগুলি পরিচালনা করবে, নামকরণের সমস্যাগুলি সমাধান করবে। জাভা নামকরণ এবং ডিরেক্টরি ইন্টারফেস), JCE (জাভা ক্রিপ্টোগ্রাফি এক্সটেনশন) এবং JAAS (জাভা প্রমাণীকরণ এবং অনুমোদন পরিষেবা) এর সাথে সুরক্ষিত প্রোগ্রামগুলি বিকাশ করুন, উপাদানগুলি স্থাপন করুন, RMI-IIOP (ইন্টারনেট ইন্টার-অরব প্রোটোকলের মাধ্যমে জাভা রিমোট মেথড ইনভোকেশন ইন্টারফেস) এর সাথে দূরবর্তীভাবে যোগাযোগ করুন।, ওয়েব পরিষেবাগুলি বিকাশ করুন, অ্যাসিঙ্ক্রোনাস পদ্ধতিগুলি চালু করুন এবং টাইমার পরিষেবা ব্যবহার করুন৷
EJB2
EJB2 (EJB 2.0) 22 আগস্ট, 2001-এ প্রকাশিত হয়েছিল। এটি বিভিন্ন বিক্রেতাদের দ্বারা তৈরি করা সরঞ্জামগুলিকে একত্রিত করে জাভাতে বিতরণকৃত অবজেক্ট-ওরিয়েন্টেড অ্যাপ্লিকেশন বিকাশের জন্য স্পেসিফিকেশন বর্ণনা করে।EJB2 এর অন্যতম প্রধান লক্ষ্য ছিল প্রোগ্রামারদের নিম্ন-স্তরের বিশদ যেমন মাল্টি-থ্রেডিং এবং সংযোগ পুলিং না বুঝেই আরও সহজে এন্টারপ্রাইজ অ্যাপ্লিকেশন বিকাশ করার অনুমতি দেওয়া। আরেকটি লক্ষ্য ছিল প্রোগ্রামারদের একবার "বিন" লিখতে এবং পুনঃসংকলন ছাড়াই যেকোন জায়গায় চালানোর অনুমতি দেওয়া (জাভা প্রোগ্রামিং ভাষার "একবার লিখুন, যেকোনো জায়গায় চালান" স্লোগান মেনে চলা)। তদ্ব্যতীত, EJB2 বিভিন্ন বিক্রেতাদের দ্বারা বিকশিত উপাদানগুলিকে সহজেই আন্তঃপ্রক্রিয়া করতে এবং বিক্রেতাদের তাদের পণ্যগুলির জন্য এক্সটেনশন লেখার অনুমতি দেওয়ার উদ্দেশ্যে যা EJBs সমর্থন করতে পারে৷
EJB3
EJB3 (EJB 3.0) 11 মে, 2006-এ প্রকাশিত হয়েছিল৷ EJB3 প্রোগ্রামারদের জীবনকে খুব সহজ করে তুলেছে তাদের পূর্ববর্তী সংস্করণগুলিতে ব্যবহার করা ডিপ্লয়মেন্ট ডিসক্রিপ্টরের জায়গায় টীকা ব্যবহার করার অনুমতি দিয়ে৷ EJB3 একটি ব্যবসায়িক ইন্টারফেস এবং একটি নির্দিষ্ট সত্তা বিন রয়েছে যা সেই ব্যবসার ইন্টারফেসটি বাস্তবায়ন করতে পারে, হোম/রিমোট ইন্টারফেস এবং ejb-jar.xml ফাইল ব্যবহার করার প্রয়োজনীয়তা দূর করে। EJB3-এর সামগ্রিক কর্মক্ষমতা EJB2-এর তুলনায় অনেক উন্নত, এবং EJB-এর এই রিলিজে কনফিগারযোগ্যতা, নমনীয়তা এবং বহনযোগ্যতার যথেষ্ট বৃদ্ধি রয়েছে।
EJB2 এবং EJB3 এর মধ্যে পার্থক্য কী?
EJB3 এর কনফিগারেশন এবং কর্মক্ষমতা EJB2 এর তুলনায় উল্লেখযোগ্য উন্নতি হয়েছে। এই পারফরম্যান্সের উন্নতির একটি কারণ হল মেটাডেটা সহ POJO (Plain Old Java Object) ব্যবহার করা এবং অবজেক্ট রেফারেন্সের জন্য EJB2 তে ব্যবহৃত JNDI লুকআপের পরিবর্তে EJB3 দ্বারা XML ডিপ্লোয়মেন্ট বর্ণনাকারী। EJB3 কনফিগারেশন অনেক সহজ কারণ প্রোগ্রামারকে হোম/রিমোট ইন্টারফেস এবং অন্যান্য (যেমন SessionBean) প্রয়োগ করতে হবে না, যা কন্টেইনার কলব্যাক পদ্ধতিগুলি (যেমন ejbActivate এবং ejbStore) ব্যবহার করার প্রয়োজনীয়তা দূর করে।
এছাড়াও, নমনীয়তা এবং বহনযোগ্যতার ক্ষেত্রে EJB3 EJB2 এর থেকে ভালো। উদাহরণস্বরূপ, EJB3 সত্তাগুলিকে DAO (ডেটা অ্যাক্সেস অবজেক্ট) তে রূপান্তর করা সহজ এবং এর বিপরীতে কারণ EJB3 সত্তাগুলি হালকা ওজনের (হেভিওয়েট EJB2 সত্তাগুলির বিপরীতে, যা উপরে উল্লিখিত ইন্টারফেসগুলি প্রয়োগ করে)। EJB3-তে লেখা ডেটাবেস প্রশ্নগুলি খুবই নমনীয় কারণ এটি EJB-QL-এর পুরানো সংস্করণের পরিবর্তে একটি পরিমার্জিত EJB-QL ব্যবহার করে, যার বেশ কিছু সীমাবদ্ধতা ছিল।EJB3 সমস্ত ডেটা লেনদেনের জন্য আরও সাধারণ JPA সমর্থন করে EJB2 (যা ডাটাবেস অ্যাক্সেসের জন্য সত্তা বিন ব্যবহার করে) এর সমস্ত বহনযোগ্যতা সমস্যাগুলি সরিয়ে দেয়৷
EJB2 এর বিপরীতে, যার কার্যকর করার জন্য একটি EJB কন্টেইনার প্রয়োজন, EJB3 একটি স্বাধীন JVM (জাভা ভার্চুয়াল মেশিন) এ কনটেইনার ব্যবহার না করেই চালানো যেতে পারে (এটি সম্ভব কারণ এটি স্ট্যান্ডার্ড ইন্টারফেস প্রয়োগ করে না)। EJB2 এর বিপরীতে, EJB3 সহজেই তৃতীয় পক্ষের দ্বারা প্রদত্ত অধ্যবসায় প্রদানকারীদের সাথে প্লাগযোগ্য। EJB3 এবং EJB2 এর মধ্যে আরেকটি গুরুত্বপূর্ণ পার্থক্য হল EJB3 টীকা ভিত্তিক নিরাপত্তা ব্যবহার করতে পারে, যখন EJB2 ব্যবহার করে ডিপ্লোয়মেন্ট বর্ণনাকারী ভিত্তিক নিরাপত্তা। এর মানে হল যে EJB3-এ কনফিগারেশন এবং সেটআপ কাজগুলি অনেক সহজ, এবং EJB2 এর তুলনায় কর্মক্ষমতা ওভারহেডগুলি যথেষ্ট হ্রাস পেয়েছে।