جافا EE - ما هو؟
Java EE عبارة عن نظام أساسي مبني على Java SE يوفر واجهة برمجة التطبيقات (API) وبيئة التشغيل لتطوير وتشغيل تطبيقات الشبكة واسعة النطاق ومتعددة الطبقات وقابلة للتطوير وموثوقة وآمنة. تسمى هذه التطبيقات تطبيقات المؤسسات لأنها تحل المشكلات التي تواجهها الشركات الكبيرة. ومع ذلك، ليست الشركات الكبيرة والوكالات الحكومية فقط هي التي يمكنها الاستفادة من هذه الأنواع من التطبيقات والمزايا التي توفرها Java EE. تعد الحلول التي تقدمها منصة Java EE مفيدة، وفي بعض الأحيان ضرورية ببساطة للمطورين الأفراد والمؤسسات الصغيرة.تطوير جافا EE
تم تطوير Java EE من خلال عملية مجتمع Java (JCP)، التي تم تشكيلها في عام 1998. فهو يسمح للأطراف المهتمة بالمشاركة في تشكيل الإصدارات المستقبلية من مواصفات منصة لغة جافا. أساس هذه العملية هو JSR (طلب مواصفات Java)، وهي وثائق رسمية تصف المواصفات والتقنيات المقترحة لإضافتها إلى منصة Java. يتم تقديم مثل هذه الطلبات من قبل أعضاء المجتمع - المطورين والشركات العادية. وتشمل الأخيرة Oracle وRed Hat وIBM وApache وغيرها الكثير. أولئك. يقترح الرجال ميزات وأشياء جيدة جديدة للنظر فيها والتي يرغبون في تضمينها في Java. ثم يقومون بالتصويت، وعلى أساسه يتم اتخاذ القرار بشأن ما سيتم تضمينه في الإصدار التالي. يبدو سجل إصدار Java EE كما يلي:- J2EE 1.2 (ديسمبر 1999)
- J2EE 1.3 (سبتمبر 2001)
- J2EE 1.4 (نوفمبر 2003)
- جافا EE 5 (مايو 2006)
- جافا EE 6 (ديسمبر 2009)
- جافا EE 7 (مايو)
- جافا EE 8 (أغسطس 2017)
- جاكرتا EE 8 (سبتمبر 2019)
بنية تطبيق جافا EE
مقدمة قصيرة. لتسهيل الفهم، دعونا نتحدث عن بنية تطبيقات Java EE وبعض المصطلحات التي سنستخدمها أكثر. تتمتع تطبيقات Java EE ببنية تحتوي على خاصيتين أساسيتين:- أولا، متعدد المستويات. تطبيقات Java EE متعددة المستويات، وسنتحدث عن هذا بمزيد من التفصيل؛
- ثانيا، التعشيش. يوجد خادم Java EE (أو خادم التطبيقات)، مع وجود حاويات المكونات بداخله. تحتوي هذه الحاويات على مكونات (بنغو!).
مستويات التطبيق
التطبيقات متعددة المستويات هي تطبيقات مقسمة وفقًا للمبادئ الوظيفية إلى وحدات معزولة (مستويات، طبقات). عادةً (بما في ذلك سياق تطوير Java EE)، تنقسم تطبيقات المؤسسات إلى ثلاثة مستويات:- عميل؛
- مستوى متوسط؛
- مستوى الوصول إلى البيانات.
-
طبقة العميل هي تطبيق يطلب البيانات من خادم Java EE (الطبقة الوسطى). يقوم الخادم بدوره بمعالجة طلب العميل وإرجاع الرد عليه. يمكن أن يكون تطبيق العميل عبارة عن متصفح، أو تطبيق مستقل (جوال أو سطح مكتب)، أو تطبيقات خادم أخرى بدون واجهة رسومية.
-
وينقسم المستوى الأوسط بدوره إلى مستوى الويب ومستوى منطق الأعمال.
-
تتكون طبقة الويب من بعض المكونات التي توفر التفاعل بين العملاء وطبقة منطق الأعمال.
يتم استخدام تقنيات Java EE التالية على مستوى الويب:
- تقنية JavaServer Faces (JSF)؛
- صفحات خادم جافا (JSP)؛
- لغة التعبير (EL)؛
- الخدمات؛
- السياقات وحقن التبعية لـ Java EE (CDI).
-
تتكون طبقة منطق الأعمال من مكونات تنفذ كل منطق الأعمال الخاص بالتطبيق. منطق الأعمال هو رمز يوفر وظائف تغطي احتياجات بعض مجالات الأعمال المحددة (الصناعة المالية، والخدمات المصرفية، والتجارة الإلكترونية). يمكن اعتبار هذا المستوى جوهر النظام بأكمله.
التقنيات المستخدمة في هذا المستوى:
- جافا بينز للمؤسسات (EJB)؛
- خدمات الويب JAX-RS RESTful؛
- كيانات Java Persistence API؛
- خدمة رسائل جافا.
-
-
مستوى الوصول إلى البيانات. يُطلق على هذا المستوى أحيانًا اسم مستوى أنظمة معلومات المؤسسة (EIS). يتكون EIS من خوادم قواعد بيانات مختلفة وأنظمة تخطيط موارد المؤسسات ERP (تخطيط موارد المؤسسات) ومصادر البيانات الأخرى. تصل طبقة منطق الأعمال إلى هذه الطبقة للبيانات.
في هذا المستوى يمكنك العثور على تقنيات مثل:
- واجهة برمجة تطبيقات اتصال قاعدة بيانات جافا (JDBC)؛
- جافا استمرار API؛
- بنية موصل Java EE؛
- واجهة برمجة تطبيقات المعاملات Java (JTA).
خوادم التطبيقات والحاويات والمكونات
دعونا نلقي نظرة على تعريف Java EE من ويكيبيديا. Java EE عبارة عن مجموعة من المواصفات والوثائق ذات الصلة بلغة Java، والتي تصف بنية النظام الأساسي للخادم لمهام المؤسسات المتوسطة والكبيرة. لفهم ما تعنيه "مجموعة المواصفات" بشكل أفضل في هذا السياق، دعونا نرسم تشبيهًا بواجهة Java. واجهة Java نفسها خالية من الوظائف. إنه ببساطة يحدد بعض العقود التي يتم بموجبها تنفيذ بعض الوظائف. لكن الفئات الأخرى تنفذ الواجهة. علاوة على ذلك، يمكن أن تحتوي الواجهة الواحدة على عدة تطبيقات، قد يختلف كل منها عن الآخر في بعض التفاصيل. مع المواصفات كل شيء هو نفسه تماما. Naked Java EE هي مجرد مجموعة من المواصفات. يتم تنفيذ هذه المواصفات بواسطة خوادم Java EE المختلفة. خادم Java EE هو تطبيق خادم يقوم بتنفيذ واجهات برمجة تطبيقات منصة Java EE ويوفر خدمات Java EE القياسية. تسمى خوادم Java EE أحيانًا بخوادم التطبيقات. يمكن أن تحتوي بيانات الخادم على مكونات التطبيق، كل منها يتوافق مع مستواه الخاص في تسلسل هرمي متعدد المستويات. يوفر خادم Java EE خدمات متنوعة لهذه المكونات في شكل حاوية. الحاويات هي الواجهة بين المكونات التي تستضيفها والوظيفة المستقلة عن النظام الأساسي ذات المستوى المنخفض التي تدعم المكون. توفر الحاويات خدمات محددة للمكونات التي تستضيفها. على سبيل المثال، إدارة دورة حياة التطوير، وحقن التبعية، والتزامن، وما إلى ذلك. تخفي الحاويات التعقيد الفني وتزيد من إمكانية النقل. هناك أربعة أنواع مختلفة من الحاويات في Java EE :-
يتم تنفيذ حاويات التطبيقات الصغيرة بواسطة معظم المتصفحات. عند تطوير التطبيقات الصغيرة، يمكنك التركيز على الجانب المرئي من التطبيق، بينما توفر الحاوية بيئة آمنة.
-
تحتوي حاوية عميل التطبيق (ACC) على مجموعة من فئات Java والمكتبات والملفات الأخرى اللازمة لتنفيذ ميزات مثل الحقن وإدارة الأمان وخدمات التسمية في تطبيقات Java SE.
-
توفر حاوية الويب الخدمات الأساسية لإدارة وتنفيذ مكونات الويب (servlets، ومكونات EJB Lite، وصفحات JSP، والمرشحات، والمستمعين، وصفحات JSF، وخدمات الويب). وهو مسؤول عن إنشاء وتهيئة واستدعاء servlets ودعم بروتوكولات HTTP وHTTPS. تُستخدم هذه الحاوية لخدمة صفحات الويب لمتصفحات العميل.
-
تكون حاوية EJB (Enterprise Java Bean) مسؤولة عن إدارة وتنفيذ مكونات نموذج EJB التي تحتوي على طبقة منطق الأعمال الخاصة بالتطبيق. فهو يقوم بإنشاء كيانات وحدة EJB جديدة، ويدير دورة حياتها، ويوفر خدمات مثل المعاملات، أو الأمان، أو التزامن، أو التوزيع، أو التسمية، أو إمكانيات الاستدعاء غير المتزامن.
-
التطبيقات الصغيرة هي تطبيقات واجهة المستخدم الرسومية (GUI) التي يتم تشغيلها في المتصفح. إنهم يستفيدون من واجهة برمجة تطبيقات Swing الغنية لإنتاج واجهات مستخدم قوية.
-
التطبيقات هي البرامج التي تعمل على جانب العميل. عادةً ما تكون واجهة مستخدم رسومية (GUI) ويتم استخدامها لمعالجة الدُفعات.
-
تطبيقات الويب (التي تتكون من servlets ومرشحاتها ومستمعي أحداث الويب وصفحات JSP وJSF) - تعمل في حاوية ويب وتستجيب لطلبات HTTP من عملاء الويب. تدعم Servlets أيضًا نقاط نهاية خدمة الويب SOAP وRESTful.
-
تعمل تطبيقات المؤسسات (التي تم إنشاؤها باستخدام Enterprise Java Beans وJava message Service وJava Transaction API والمكالمات غير المتزامنة وخدمات الوقت) في حاوية EJB. تتعامل EJBs المُدارة بواسطة الحاوية مع منطق أعمال المعاملات. يمكن الوصول إليها محليًا أو عن بعد عبر RMI (أو HTTP لخدمات الويب SOAP وRESTful).
التقنيات
لذلك، قمنا بفرز الهندسة المعمارية. يجب أن يكون الهيكل العام واضحًا. في عملية وصف المكونات المعمارية، تطرقنا إلى بعض تقنيات Java EE مثل EJB وJSP وما إلى ذلك. دعونا نلقي نظرة فاحصة عليها. يوضح الجدول أدناه التقنيات المستخدمة بشكل رئيسي على مستوى العميل:تكنولوجيا | غاية |
---|---|
الخدمات | فئات Java التي تعالج طلبات العميل ديناميكيًا وتولد الاستجابات (عادةً صفحات HTML). |
وجوه خادم جافا (JSF) | إطار لبناء تطبيقات الويب مع واجهة المستخدم. يسمح لك بتضمين مكونات واجهة المستخدم (على سبيل المثال، الحقول والأزرار) على الصفحة، وتحويل هذه المكونات والتحقق من صحتها، وتخزين هذه البيانات في مساحة تخزين على جانب الخادم. |
تقنية Java Server Faces Facelets | إنه نوع فرعي من تطبيق JSF يستخدم صفحات XHTML بدلاً من صفحات JSP |
صفحات خادم جافا (JSP) | المستندات النصية التي يتم تجميعها في servlets. يسمح لك بإضافة محتوى ديناميكي إلى الصفحات الثابتة (مثل صفحات HTML) |
مكتبة العلامات القياسية لصفحات خادم جافا (JSTL) | مكتبة العلامات التي تحتوي على الوظائف الأساسية في سياق صفحات JSP. |
لغة التعبير | مجموعة من العلامات القياسية المستخدمة في صفحات JSP وFacelets للوصول إلى مكونات Java EE. |
السياقات وحقن التبعية لـ Java EE (CDI) | يمثل مجموعة من الخدمات التي تقدمها حاويات Java EE لإدارة دورة حياة المكونات، بالإضافة إلى حقن المكونات في كائنات العميل بطريقة آمنة. |
مكونات جافا فول | الكائنات التي تعمل كمخزن مؤقت للبيانات لصفحات التطبيق. |
تكنولوجيا | غاية |
---|---|
مكونات Java Beans (فاصوليا المؤسسة). | EJBs عبارة عن وحدات مدارة تحتوي على الوظائف الأساسية للتطبيق. |
خدمات الويب JAX-RS RESTful | إنها واجهة برمجة التطبيقات (API) لتطوير خدمات الويب التي تتوافق مع النمط المعماري REST. |
نقاط نهاية خدمة الويب JAX-WS | API لإنشاء واستهلاك خدمات الويب SOAP. |
كيانات Java Persistence API (JPA). | واجهة برمجة تطبيقات للوصول إلى البيانات الموجودة في مخازن البيانات وتحويل تلك البيانات إلى كائنات لغة برمجة Java والعكس. |
جافا EE الفاصوليا المدارة | الفاصوليا المُدارة التي توفر منطق أعمال التطبيق ولكنها لا تتطلب ميزات المعاملات أو الأمان الخاصة بـ EJB. |
خدمة رسائل جافا | تعد واجهة برمجة تطبيقات خدمة رسائل Java (JMS) معيارًا للمراسلة يسمح لمكونات تطبيق Java EE بإنشاء الرسائل وإرسالها واستلامها وقراءتها. وهذا يضمن الاتصال الموزع والموثوق وغير المتزامن بين المكونات. |
تكنولوجيا | غاية |
---|---|
واجهة برمجة تطبيقات اتصال قاعدة بيانات جافا (JDBC) | واجهة برمجة تطبيقات منخفضة المستوى للوصول إلى البيانات واسترجاعها من مخازن البيانات. الاستخدام النموذجي لـ JDBC هو كتابة استعلامات SQL مقابل قاعدة بيانات محددة. |
واجهة برمجة تطبيقات استمرار جافا | واجهة برمجة تطبيقات للوصول إلى البيانات الموجودة في مخازن البيانات وتحويل تلك البيانات إلى كائنات لغة برمجة Java والعكس. واجهة برمجة التطبيقات ذات مستوى أعلى بكثير مقارنة بـ JDBC. يخفي كل تعقيدات JDBC عن المطور تحت الغطاء. |
بنية موصل Java EE | واجهة برمجة التطبيقات (API) لربط موارد الشركة الأخرى، مثل:
|
واجهة برمجة تطبيقات المعاملات Java (JTA) | واجهة برمجة التطبيقات (API) لتحديد المعاملات وإدارتها، بما في ذلك المعاملات الموزعة والمعاملات عبر مخازن بيانات متعددة. |
GO TO FULL VERSION