1. ما هو EJB؟
EJB (Enterprise Java Beans) هي تقنية مكونات للتطبيقات التجارية في Javaee وهي واحدة من المكونات الرئيسية الثلاثة لـ Javaee (Servlet ، JSP ، EJB). يوفر EJB إطارًا للسماح للعملاء باستخدام الكائنات الموزعة عن بُعد ، مما يؤدي إلى تبسيط تطوير تطبيقات على مستوى المؤسسة بشكل كبير مع قابلية التوسع الجيدة. بنية مكون EJB هي بنية حوسبة موزعة تعتمد على المكونات وهي مكون في نظام تطبيق موزع.
EJB هو مواصفات لإطار خدمة Server Server Java ويحدد مواصفات فنية لنظام المكون من جانب الخادم. يمكن أن توفر هذه المواصفات بنية قياسية موزعة وموجهة نحو الكائن. إنه يمنع التطبيقات الوظيفية الكامنة على مستوى النظام لمطوري المكونات والمستخدمين ، مما يسمح للمطورين بالتركيز على تنفيذ منطق العمل ، وبعض الخدمات الأساسية المعقدة مسؤولة عن حاويات EJB. يمكن توسيع EJB وفقًا لنمو التطبيق ، ويوفر خادم EJB وظائف موازنة التحميل ، وكذلك التحكم في الوصول إلى الموارد.
2. التواصل بين حاوية EJB والمكونات
توفر حاويات EJB بيئة تشغيل لمكونات EJB. تشبه طريقة إدارة حاويات EJB EJBS كيف تدير حاويات الويب servlets. يجب تشغيل EJBS في حاويات EJB. تدير حاويات EJB بشكل أساسي ثبات EJB ، وإدارة دورة الحياة ، وإدارة الأمان ، وإدارة المعاملات ، والاتصال عن بُعد ، ومعالجة متزامنة ، وتجميع وموازنة التحميل. تدير الحاوية مثيلات مكونات EJB ، مما يتيح مكونات EJB لتحقيق أقصى قدر من الأداء واستخدام الذاكرة. يمكن للحاوية تنشيط وتصوير مكونات EJB وإدارة تجمعات المثيلات وما إلى ذلك لذلك ، يمكن لمطوري مكونات EJB التركيز على تغليف منطق الأعمال ، والحاويات مسؤولة عن التعامل مع جميع المعاملات الأخرى. يتفاعل EJB مع الحاويات من خلال آليات مثل ejbcontent ، JNDJ ، وظائف رد الاتصال.
JBOSS عبارة عن حاوية وخادم يدير EJB ، ويدعم مواصفات EJB1.1 و EJB2.0 و EJB3 ، وترتبط عمومًا بـ Tomcat أو Jetty.
يرجى الاطلاع على الشكل 1 (تخطيطي العمل لحاوية EJB):
الشكل 1: مبدأ العمل لحاوية EJB
مكون EJB هو كائن موزع ، عند إنشاء مثيل له ، يمكنه التواصل مع التطبيقات في مساحات العناوين الأخرى. يتم تغليف مثيل EJB في كائن هيكل عظمي ، يتواصل مع العميل من خلال كائن كعب. لا يشمل الكعب منطق العمل ، ولكنه ينفذ واجهة عمل. كلما تم استدعاء طريقة تجارية على الواجهة التجارية كعب ، يرسل كعب رسالة شبكة إلى الإطار ويخبرها بالأساليب التي أطلق عليها. يستدعي الإطار الطريقة المقابلة لمثيل EJB ويرسل النتائج التي تم إرجاعها بواسطة مثيل EJB إلى كعب الكعب ، ويعيد كعب هذه النتائج إلى التطبيق المقابل. من خلال الكائنين الوسيطين ، كعبان وأطر ، يتم حظر عملية الاتصال المعقدة بين الكائنات الموزعة. يتم تنفيذ الإطار بواسطة الحاويات ، في حين يتم إنشاء كعبان تلقائيًا بواسطة أدوات التطوير ، لا يتطلب أي منهما رمز الكتابة. يرجى الاطلاع على الشكل 2 (تخطيطي اتصال مكون EJB):
الشكل 2: مبدأ الاتصال بين مكونات EJB
3. تصنيف EJB
يمكن تقسيم مكونات EJB إلى نوعين: فول الجلسة والفاصوليا التي تعتمد على الرسائل. تنفس حبة الجلسة منطق العمل. يمكن للعميل استدعاء أساليب Bean Session من خلال خدمات المحلية والبعيدة ومواقع الويب للوصول إلى التطبيقات التي تم نشرها على الخادم ، وبالتالي استدعاء طرق الفاصوليا الأخرى. حبة الجلسة ليست ثابتة ، أي أن بياناتها لا يتم حفظها في قاعدة البيانات. من بينها ، تتضمن حبة الجلسة ثلاثة أنواع: حبوب الجلسة الهادئة ، والفاصوليا جلسة عديمة الجنسية ، وفاصوليا جلسة واحدة. غالبًا ما يتم استخدام الفاصوليا التي تعتمد على الرسائل كمستمعين لأنواع محددة من الرسائل ، مما يسمح لـ Javaee بالتعامل مع الرسائل غير المتزامنة ، ولا يصل العملاء إلى الفاصوليا التي تعتمد على الرسائل عبر واجهات.
سيقدم ما يلي حبة الجلسة الهادئة ، وفول الجلسة عديمة الثمن ، وفول الجلسة الواحدة ، وفول الجلسة القائمة على الرسائل بدوره.
4 .
توفر حبوب الجلسة عديمية فقط منطق العمل للعملاء ولا تحتفظ بحالة الجلسة للعملاء. عندما يستدعي العميل طريقة حبة جلسة عديمة الجنسية ، فإن خصائص حبة الجلسة المقابلة ستصطل حالة الاتصال ، ولكنها فقط تحافظ على هذه الحالة أثناء مكالمة الطريقة. عند الانتهاء من استدعاء الطريقة ، يتم مسح الحالة.
يتم التحكم في دورة حياة حبة جلسة عديمة الجنسية بواسطة الحاوية. عندما تتلقى حاوية EJB طلبًا للعميل لحبة جلسة عديمة الجنسية ، إذا لم تكن EJB موجودة ، فستقوم الحاوية بإنشاء مثيل للفاصوليا ، وضخت الموارد المطلوبة في المكون ، ثم تقوم الحاوية بإعادة تشغيل طريقة البناء ، ويتم إنشاء المكون. في هذا الوقت ، تنتقل الفول من حالة "غير موجودة" إلى حالة "الوجود". عند الانتهاء من مكالمة العميل ، تقوم الحاوية باستدعاء طريقة Prestroy ، وسيتم تدمير الفول. في هذا الوقت ، سيتم تحويل الفول من الحالة "الموجودة" إلى الحالة "غير الموجودة". يرجى الاطلاع على الشكل 3 (دورة حياة حبة جلسة عديمة الجنسية):
الشكل 3: دورة حياة حبة جلسة عديمة الجنسية
5. حبة الجلسة
تحتفظ حبة الجلسة الهادئة بحالة جلسة للمستخدم. لا يمكن وضعه في تجمع المكونات للمستخدمين المختلفين للمشاركة مثل حبة جلسة عديمة الجنسية. بالنسبة لفاصوليا جلسة مفعمة بالحيوية ، طالما يرسل العميل طلبًا ، فإن الحاوية تنشئ مثيلًا يتوافق مع العميل ، ويتوافق عميل واحد مع مثيل. خلال العمر ، تحتفظ حبة الجلسة الهادئة بمعلومات المستخدم ، وبمجرد انتهاء الجلسة ، تنتهي دورة حياة حبة الجلسة الهادئة أيضًا.
لدى حبة الجلسة الهادئة ثلاث حالات نشطة: عدم وجود ونشط وتخميل. عندما تنشط حبة الجلسة الهادئة لفترة من الوقت ، إذا كان الطلب من العميل الخارجي لا يزال غير مستقبل ، من أجل توفير موارد النظام ، ستقوم الحاوية بتسلسل معلومات الحالة في حبة الجلسة الهادئة إلى مساحة التخزين المؤقتة وإزالة حبة الجلسة الهادئة من الذاكرة. وتسمى هذه العملية "التخميل". تستدعي الحاوية طريقة تنشيط مسبق قبل التخميل. عندما تتلقى الحاوية طلبًا للحصول على حبة جلسة مفعمة بالحيوية تم تنشيطها ، فإنها تعزز مثيل حبة الجلسة الهادئة وتأخذ معلومات الحالة من المساحة المؤقتة لإعادتها إلى الحالة النشطة. وتسمى هذه العملية "التنشيط". بعد التنشيط ، تقوم الحاوية بإعادة تشغيل طريقة proactivate. عندما تمر فاصوليا الجلسة الهادئة لفترة من الزمن ، ستقوم الحاوية بمسح المثيل تمامًا وتعادل طريقة Predestroy. يرجى الاطلاع على الشكل 4 (دورة حياة حبة الجلسة الهادئة):
الشكل 4: دورة حياة حبة الجلسة
6. حبة جلسة غرفة واحدة
يتم إنشاء إنشاء فول جلسة واحدة مرة واحدة لكل تطبيق وتتواجد دائمًا طوال دورة حياة التطبيق. تم تصميم حبة جلسة واحدة لسيناريوهات محددة ، ويمكن للعملاء الوصول إلى مثيل EJB الفريد في وضع مشترك ومتزامن.
تشبه حبة الجلسة من قطعة واحدة إلى حد كبير حبة الجلسة عديمة الجنسية. الفرق هو أن حبة الجلسة من قطعة واحدة لديها مثيل واحد فقط في التطبيق ، في حين أن حبة الجلسة عديمة الجنسية يمكن أن تحتوي على العديد من الحالات ، يتم وضع كل مثيل في تجمع المكونات للمستخدمين للمشاركة.
تشبه فول جلسة من قطعة واحدة حبة جلسة عديمة الجنسية ، ولم يتم تنشيطها أبدًا. تحتوي دورة حياتها فقط على نوعين من الهيئات: "عدم وجود" و "الوجود". يرجى الاطلاع على الشكل 5 (دورة حياة حبة جلسة واحدة):
الشكل 5: دورة حياة حبة جلسة واحدة
7. الفول الذي يحركه الرسائل
الفاصوليا القائمة على الرسائل هي مكونات مصممة للتعامل مع الطلبات المستندة إلى الرسائل على وجه التحديد. تدمج الفاصوليا القائمة على الرسائل وظائف خدمة رسائل Java (JMS) و Beans Enterprise. لا يمكن للعميل الحصول على مرجعه مباشرة والاتصال بالطريقة ، ولكن لا يمكن تشغيله إلا بواسطة رسائل النظام.
عادة ما تنشئ حاويات EJB مجموعة مكونة من الفاصوليا التي تعتمد على الرسائل. على غرار حبوب الجلسة عديمة الجنسية ، لا يتم تنشيط الفاصوليا التي تعتمد على الرسائل أبدًا ، ولا تحتوي دورة حياتها على مرحلتين فقط: عدم وجود ووجود.
يجب أن تنفذ فئة الفول التي تعتمد على الرسائل واجهة Messagelistener. عندما تكتشف الحاوية رسالة في قائمة الانتظار التي تستمع إليها الفول ، فإنها تستدعي طريقة OnMessage () وتمرر الرسالة كمعلمة.
إن الفهم الشامل المذكور أعلاه لـ EJB الأساسي لـ J2EE هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.