الفرق بين EJB2 و EJB3

الفرق بين EJB2 و EJB3
الفرق بين EJB2 و EJB3

فيديو: الفرق بين EJB2 و EJB3

فيديو: الفرق بين EJB2 و EJB3
فيديو: حاجات ومحتاجات - الفرق بين فرن الكهرباء وفرن الغاز - مع سمر سامي 2024, سبتمبر
Anonim

EJB2 مقابل EJB3

EJB (Enterprise JavaBeans) هي واجهة برمجة تطبيقات Java API (واجهة برمجة التطبيقات) موجودة ضمن مواصفات Java EE (Java Platform، Enterprise Edition). يصف EJB نموذجًا معماريًا لتطوير تطبيقات المؤسسة. هذا نموذج مُدار من جانب الخادم قادر على التقاط منطق الأعمال لتطبيق المؤسسة. IBM هو منشئ EJB الأصلي الذي طوره في عام 1997. تبنته Sun Microsystems في عام 1999.

قبل إدخال EJB ، وجد أن حلول المشكلات الموجودة في رمز العمل الخلفي قد أعاد المبرمجون تنفيذها بشكل متكرر.ونتيجة لذلك ، تم تقديم EJB لمعالجة هذه المشاكل الشائعة مثل المثابرة ، وسلامة المعاملات والأمن. يوفر EJB طرقًا قياسية للتعامل مع هذه المشكلات الخلفية ، من خلال تحديد كيفية قيام خادم التطبيق بمعالجة المعاملات ، والتكامل مع خدمات JPA (Java Persistence API) ، والتعامل مع التحكم في التزامن ، والتعامل مع أحداث JMS (خدمة رسائل Java) ، وحل مشكلات التسمية مع JNDI (Java Naming and Directory Interface) ، قم بتطوير برامج آمنة باستخدام JCE (ملحق تشفير Java) و JAAS (خدمة مصادقة وتفويض Java) ، ونشر المكونات ، والتواصل عن بُعد مع RMI-IIOP (واجهة استدعاء أسلوب Java عن بعد عبر بروتوكول Inter-Orb عبر الإنترنت) ، وتطوير خدمات الويب ، واستدعاء الأساليب غير المتزامنة واستخدام خدمة المؤقت.

EJB2

تم إصدارEJB2 (EJB 2.0) في 22 أغسطس 2001. وهو يصف مواصفات تطوير التطبيقات الموزعة الموجهة للكائنات في Java من خلال الجمع بين الأدوات التي طورها بائعون مختلفون.كان أحد الأهداف الرئيسية لـ EJB2 هو السماح للمبرمجين بتطوير تطبيقات المؤسسة بسهولة أكبر دون الحاجة إلى فهم التفاصيل منخفضة المستوى ، مثل خيوط المعالجة المتعددة وتجميع الاتصالات. كان الهدف الآخر هو السماح للمبرمجين بكتابة "Bean" مرة واحدة وتشغيلها في أي مكان دون إعادة تجميع (الالتزام بشعار "اكتب مرة واحدة ، ركض في أي مكان" في لغة برمجة Java). علاوة على ذلك ، يهدف EJB2 إلى السماح للمكونات التي طورها بائعون مختلفون بالتفاعل بسهولة ، والسماح للبائعين بكتابة امتدادات لمنتجاتهم يمكن أن تدعم وحدات EJB.

EJB3

تم إصدارEJB3 (EJB 3.0) في 11 مايو 2006. جعل EJB3 حياة المبرمجين سهلة للغاية من خلال السماح لهم باستخدام التعليقات التوضيحية بدلاً من واصفات النشر التي تم استخدامها في الإصدارات السابقة. يحتوي EJB3 على واجهة تعامل أعمال ووحدة برامج كيانات معينة يمكنها تنفيذ واجهة تعامل الأعمال هذه ، مع إزالة الحاجة إلى استخدام واجهات اتصال منزلية / عن بعد وملف ejb-jar.xml. تم تحسين الأداء العام لـ EJB3 بشكل كبير مقارنةً بـ EJB2 ، وهناك زيادة كبيرة في قابلية التكوين والمرونة وقابلية النقل في هذا الإصدار من EJB.

ما الفرق بين EJB2 و EJB3؟

EJB3 لديه تحسن ملحوظ في التكوين والأداء على EJB2. أحد أسباب تحسين الأداء هذا هو استخدام POJO (كائن Java قديم عادي) مع البيانات الأولية وواصفات نشر XML بواسطة EJB3 بدلاً من عمليات بحث JNDI المستخدمة في EJB2 لمراجع الكائنات. يعد تكوين EJB3 أبسط بكثير لأن المبرمج لا يحتاج إلى تنفيذ واجهات Home / Remote وغيرها (على سبيل المثال SessionBean) ، مما يلغي الحاجة إلى استخدام طرق استدعاء الحاوية (مثل ejbActivate و ejbStore).

علاوة على ذلك ، فإن EJB3 أفضل من EJB2 في مجالات المرونة وقابلية النقل. على سبيل المثال ، من السهل تحويل كيانات EJB3 إلى DAO (كائن الوصول إلى البيانات) والعكس صحيح لأن كيانات EJB3 خفيفة الوزن (على عكس كيانات EJB2 ذات الوزن الثقيل ، والتي تقوم بتنفيذ واجهات الاتصال المذكورة أعلاه). تعد استعلامات قاعدة البيانات المكتوبة بلغة EJB3 مرنة للغاية لأنها تستخدم EJB-QL مصقولًا ، بدلاً من الإصدار الأقدم من EJB-QL ، والذي كان به العديد من القيود.يزيل EJB3 جميع مشكلات قابلية النقل لـ EJB2 (التي تستخدم وحدات وحدات الكيان للوصول إلى قاعدة البيانات) من خلال دعم JPA الأكثر عمومية لجميع معاملات البيانات.

بخلاف EJB2 ، الذي يحتاج إلى حاوية EJB للتنفيذ ، يمكن تنفيذ EJB3 في JVM مستقل (Java Virtual Machine) دون الحاجة إلى استخدام الحاويات (هذا ممكن لأنه لا يطبق واجهات قياسية). على عكس EJB2 ، يمكن توصيل EJB3 بسهولة مع مزودي الخدمة المثابرة التي تقدمها أطراف ثالثة. هناك اختلاف مهم آخر بين EJB3 و EJB2 وهو أن EJB3 يمكنه استخدام الأمان المستند إلى التعليقات التوضيحية ، بينما يستخدم EJB2 الأمان المستند إلى واصفات النشر. هذا يعني أن مهام التكوين والإعداد أسهل بكثير في EJB3 ، وهناك انخفاض كبير في نفقات الأداء مقارنةً بـ EJB2.

موصى به: