menusearch
javapro.ir

EJB چیست و چه کاربردی در زبان جاوا دارد؟

جستجو
دوشنبه ۱۰ دی ۱۴۰۳ | ۲۱:۳۶:۴۹
۱۳۹۹/۱۱/۵ یکشنبه
(2)
(0)
EJB چیست و چه کاربردی در زبان جاوا دارد؟
EJB چیست و چه کاربردی در زبان جاوا دارد؟

معرفی فریمورک های سازمانی زبان برنامه نویسی جاوا

 

 

EJB بستر سمت سرور جاوا برای توسعه برنامه های تجاری توزیع شده. یک پلتفرم زبان جاوا در سمت سرور که برای توسعه و گسترش نرم افزارهای کاری توزیع شده است. اولین خصوصیاتی بود که روشی آسان برای کپسوله سازی و استفاده مجدد از منطق تجاری در برنامه های سازمانی جاوا ارائه داد.

 

 

 

 

 

مباحث پرکاربرد و مهم زبان جاوا رو به صورت رایگان آموزش ببین

 

 

 

 


EJB چیست و چه کاربردی در زبان جاوا دارد؟

 

 


بستر سمت سرور جاوا برای توسعه برنامه های تجاری توزیع شده
EJB مخفف کلمات Enterprise Java Bean است. یک پلتفرم زبان جاوا در سمت سرور که برای توسعه و گسترش نرم افزارهای کاری توزیع شده است.معماری EJB از سه جز اصلی تشکیل شده است: لوبیای سازمانی (EJB)، ظرف EJB و سرور برنامه جاوا. درون یک ظرف EJB اجرا می‌شوند و ظرف EJB درون یک سرور برنامه جاوا اجرا می‌شود.

 

 

دو نوع EJB وجود دارد - لوبیای جلسه ای و لوبیای پیام محور:
لوبیای جلسه توسط کاربر فراخوانی می‌شود و عملکردهای سازمانی مانند معاملات و مدیریت منابع را به صورت برنامه ریزی در دسترس کاربر قرار می‌دهد.
لوبیای پیام محور همچنین عملکرد شرکت را کپسوله کرده و تحویل می‌دهد، اما ناهمگام و مبتنی بر رویداد است. لوبیاهای پیام محور به وقایع گوش می‌دهند و پاسخ می‌دهند، و کاربر نمی‌تواند آنها را فراخوانی کند. هنگامی که برای ایجاد ماندگاری در سیستم EJB استفاده می‌شود، لوبیای موجودیت توسط Java Persistence API جایگزین می‌شوند.

 

 

 

 

آموزش فریمورک های سازمانی زبان برنامه نویسی جاوا
رابط های EJB

 

 


EJB در مقابل JavaBeans
Enterprise JavaBeans اولین مدل توسعه مبتنی بر مولفه برای Java EE بود. EJB از لحاظ مؤلفه بودن به JavaBeans شباهت دارد، اما این همان جایی است که شباهت به پایان می‌رسد:
JavaBean یک کلاس جاوا است که چندین اشیا را در خود قرار داده و مطابق با قراردادهای خاص است. JavaBeans عمدتا برای توسعه سمت کاربر استفاده می‌شود.EJB یک کلاس جاوا است که با قابلیت های خاص سمت سرور عجین شده است. لوبیای سازمانی در برنامه ها و سیستم های تجاری وسیع مورد استفاده قرار می‌گیرد.

 

 

لوبیای جلسه
لوبیای جلسه عمومی ترین نوع لوبیای سازمانی است که نمایانگر یک بخش عمده از عملکرد تجاری است که می‌تواند توسط کاربر فراخوانی شود. کاربر در این حالت می‌تواند کلاس دیگری در JVM محلی یا ارتباط از راه دور باشد.

 


محتوای EJB چرخه حیات لوبیای جلسه را مدیریت می‌کند، که با توجه به وضعیت لوبیا تعیین می‌شود:
لوبیای جلسه بدون حالت مشابه دامنه درخواست در Java Servlet API است. لوبیای جلسه ای بدون حالت شامل قسمتی از قابلیت ارتباط پذیر است اما در غیر این صورت فاقد حالت است.
حبوبات جلسه با حالت فقط با یک کاربر مرتبط هستند و به جلسه در حال انجام آن کاربر پیوست می‌شوند. دانه های جلسه با حالت عملکردی مشابه دامنه جلسه در Servlet API دارند.

 

 

 

کاربرد فریمورک EJB  در زبان برنامه نویسی جاوا چیست؟
ساختار EJB

 


ایمنی نخ با لوبیای جلسه ای
یک سرویس دهنده لوبیای حالت دار همزمان می‌تواند فقط توسط یک کاربر دسترسی پیدا کند، بنابراین ایمنی نخ هنگام کار با این نوع لوبیا تضمین می‌شود. لوبیای جلسه ای بدون حالت و لوبیای منفرد انعطاف پذیرتر است و امکان اتصال همزمان را فراهم میکند که باید توسط توسعه دهنده مدیریت شود. شما در هنگام کار با این نوع لوبیا مسئول ایمنی نخ هستید.

 

 

آموزش برنامه نویس وب با زبان جاوا
                ایمن سازی EJB

 

 

لوبیای پیام محور
لوبیای پیام محور JMS(سرویس پیام جاوا) فراخوانی می‌شوند. JMS، در جایی که لوبیای پیام محور به عنوان شنونده دستور عمل می‌کند، همانند یک الگوی دستور توزیع شده، عمل می‌کند. هنگامی که پیامی بر روی یک موضوع یا صف می‌رسد، لوبیای پیام محور که در آن موضوع گوش می‌دهد فراخوانی می‌شود.


لوبیای پیام محور معمولاً به اندازه لوبیای جلسه ای استفاده نمی‌شود اما قدرتمند است. ناهماهنگ و مبتنی بر رویداد، به ویژه برای مشاغل طولانی مدت که صرفه جویی در منابع مهم است، بسیار مفید هستند.


ساده ترین معماری شامل برنامه EJB و محتوا و سرور آن است که با سرویس پردازش پیام MDB هماهنگ می‌شوند. در تولید، معماری شما احتمالاً شامل مؤلفه سوم اختصاص یافته به مصرف حبوبات است. در توسعه، همه این اجزا می‌توانند با همان ماشین محلی کار کنند.

شکل 1 معماری رویدادی محور را با لوبیاهای پیام محور نشان می‌دهد.

 

 

معماری EJB در زبان برنامه نویسی جاوا
معماری رویدادی EJB

 

 

 

کار با لوبیا پیام محور بیشتر از استفاده از لوبیای جلسه ای است. در یک محیط رویداد محور معمولاً به یک کارگزار پیام مانند ActiveMQ نیاز دارید.در حالی که لوبیای جلسه ساده تر است و بنابراین بیشتر در EJB استفاده می‌شود، معماری های مبتنی بر رویداد به ویژه با انفجار ریز سرویس ها محبوب شده اند.

 


حاشیه نویسی EJB
تعریف و مصرف حبوبات سازمانی نکته مهمی برای بسیاری از توسعه دهندگان تا نسخه EJB 3.0 بود که حاشیه نویسی ها را به مشخصات EJB وارد کرد. حاشیه نویسی پیکربندی حبوبات سازمانی را برای طیف گسترده ای از عملکردهای موجود در Java EE بسیار آسان می‌کند.

لوبیای جلسه بدون حالت را تعریف کنید.


برای تعیین یک کلاس به عنوان یک جلسه بدون حالت، از javax.ejb.Stateless حاشیه استفاده می‌کنید، همانطور که در لیست 1 نشان داده شده است.


لیست کردن 1. مثال حاشیه نویسی بدون حالت

import javax.ejb.Stateless;
@Stateless
public class MyStatelessBean {
public String getGreeting() {
return "Hello JavaWorld.";
}
}


این لوبیای بدون حالت حاوی یک امضای ساده است که هیچ استدلالی نمی‌گیرد و یک رشته را برمی گرداند. اجازه ندهید سادگی شما را گول بزند: این لوبیا می‌تواند هر کاری را که لازم دارید انجام دهد، از جمله تعامل با لوبیا، خدمات دیگر یا لایه داده برنامه شما.


EJB@: یک لوبیای بدون حالت مصرف کنید


هنگامی که یک لوبیای جلسه را تعریف کردید، استفاده از آن بسیار ساده است:


لیست 2. مثال حاشیه ای EJB

public class MyServlet extends HttpServlet {
@EJB
MyStatelessBean  myEjb;
public void doGet(HttpServletRequest request,
HttpServletResponse response) {
response.getWriter().write("EJB Says " + myEjb.getGreeting());
}
}


Remote@ : رابط EJB از راه دور را تعریف کنید
در مثال های بالا، فرض کردیم کاربر EJB و EJB در همان JVM در حال اجرا هستند. اگر Enterprise bean و کاربر آن در JVM های جداگانه در حال اجرا هستند، EJB باید یک رابط Remote@ تعریف کند. در این حالت، همانطور که در لیست 3 نشان داده شده است، تعریف و پیاده سازی رابط با شماست.

 

لیست 3. مثال حاشیه نویسی از راه دور

@Remote
public interface MyStatelessEjbRemote {
String sayHello(String name);
}

رابط راه دور برای فراخوانی به کاربر ارسال می‌شود. سپس ارتباط با آن با اجرای سمت سرور EJB برآورده می‌شود. مثال MyStatelessBean در لیست 4 رابط راه دور را پیاده سازی می‌کند.


لیست 4. اجرای یک رابط راه دور

public class MyStatelessBean implements MyStatelessEjbRemote{
...
}

 

رابط محلی در مقابل راه دور
اگرچه دانستن چگونگی پیاده سازی یک رابط از راه دور مهم است، اما در عمل استفاده از رابط محلی معمول تر است. رابط محلی به طور پیش فرض استفاده می‌شود و هر زمان EJB در همان زمینه JVM فراخوانی شود کار می‌کند. استفاده از رابط از راه دور هنگامی پخش می‌شود که برنامه در چندین JVM توزیع شده باشد.

 


موضوع و زمانبندی موضوع با Singletons
ایمنی نخ هنگامی که با لوبیای جلسه کار می‌کنید ساخته می‌شود، اما چندین مشتری به طور همزمان می‌توانند به لوبیای بدون حالت و به صورت تک نفره دسترسی داشته باشند. توسعه دهندگان هنگام اجرای این نوع حبوبات مسئول ایمنی نخ هستند.


لوبیای Singleton از طریق حاشیه نویسیLock پشتیبانی از ایمنی نخ را ارائه می‌دهد. برای تعیین امتیازات خواندن / نوشتن برای هر روش می‌توانید از حاشیه نویسی Lock در روش های singleleton bean استفاده کنید. دو گزینهLock (LockType.READ) یا Lock (LockType.WRITE) است که پیش فرض است.

 


یکی دیگر از ویژگی های مفید لوبیا تک قلو، امکان برنامه ریزی کارها به روشی ساده و استفاده از حاشیه نویسی Schedule است. لیست 5 نحوه برنامه ریزی یک کار روزانه در ظهر را نشان می‌دهد.


لیست 5. مثال حاشیه ای زمانبندی @Schedule

@Singleton
public class MySchedulerBean {
@Schedule(hour = "12")
void doIt() {
System.out.println("Hello at Noon!");
}
}


CDI در مقابل EJB
CDI یا Context and Dependency Injection مشخصات جدیدتر سازمانی است که به گفته برخی از توسعه دهندگان می‌تواند جایگزین EJB شود.
در سطح بالا، CDI یک چارچوب مؤلفه های عمومی را ارائه می‌دهد، در حالی که EJB برای اجزای جداگانه منحصر به فرد خود برجسته است. در حالی که CDI از تزریق وابستگی برای تعریف و ارجاع هر مؤلفه نرم افزاری استفاده می‌کند، مؤلفه های EJB به طور رسمی تر تعریف می‌شوند و هرکدام مجموعه خاصی از قابلیت ها را خارج از جعبه ارائه می‌دهند. هر دو مشخصات برای توسعه آینده به عنوان بخشی از Jakarta EE در نظر گرفته شده است، جایی که در نهایت این سوال که آیا CDI باید جایگزین EJB شود حل خواهد شد.

 

 

چرخه حیات EJB در زبان جاوا
چرخه حیات EJB

 

 

 

نتیجه
Enterprise JavaBeans اولین خصوصیاتی بود که روشی آسان برای کپسوله سازی و استفاده مجدد از منطق تجاری در برنامه های سازمانی جاوا ارائه داد. به دور از روح سنگین وزن قدیم، امروزه EJB یک چارچوب ناب و مبتنی بر حاشیه نویسی است که به شما امکان می‌دهد به طیف گسترده ای از عملکردهای شرکت، دقیقاً خارج از جعبه دسترسی پیدا کنید. دفعه بعدی که از شما خواسته شد تا به سرعت یک برنامه تجاری توزیع شده و قابل توسعه را افزایش دهید، EJB را در نظر بگیرید. ممکن است به طرز خوشایندی تعجب کنید.

 

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

1 نظر
من
پنج شنبه بیست و یکم بهمن ۰۰
پاسخ
()
()
من
testStatelessEjb.getGreeting() اشتباه بود بنويس myEjb.getGreeting()خدا حافظ
پاسخ مدیر سایت
با سلام و احترام متشکرم از اطلاع تون اصلاح شد
پاسخ مدیر سایت
هدر سایت
دوره برنامه نویسی Spring Core
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی