المعلوماتية > برمجيات

الفرق بين منصات Java

تُقسَم تقنية Java إلى لغة برمجة Java ومنصات Java:

- لغة برمجة Java: هي لغة كائنية التوجه (Object-Oriented) عالية المستوى، ابتكرها جيمس غوسلينغ James Gosling في عام 1991م.

- منصات Java: هي بيئة معينة تُشغَّل فيها تطبيقات لغة البرمجة Java، وسنتحدث عن الفرق بينها.

فما منصات لغة البرمجة Java؟

هناك أربع منصات للغة البرمجة Java:

- منصة Java الإصدار الأساسي (Java Standard Edition).

- منصة Java الإصدار المخصص للشركات والمؤسسات الكبيرة (java enterprise ).

- منصة Java الإصدار المُصغَّر (Java Micro Edition).

- منصة javaFX.

تتكون منصات Java كافة من نظام آلة افتراضي خاص باللغة Java Virtual Machine (JVM)، ومن واجهة برمجة التطبيقات Application Programming Interface (API):

توفر منصات Java كلها نظامَ آلة افتراضي (JVM) وواجهة برمجة التطبيقات (API)؛ مما يسمح  للتطبيقات المكتوبة لتلك المنصة بالعمل على أي نظام متوافق معها، إضافة إلى الاستفادة من خصائص ومميزات لغة البرمجة Java جميعها؛ مثل استقلالية المنصات، والقوة، والثبات، وإمكانية التطوير، والأمان (1).

منصة Java الإصدار الأساسي (Java Standard Edition):

عندما يفكر معظم الناس في لغة البرمجة java  فإنهم يفكرون في الإصدار الأساسي (java SE API).

يوفر هذا الإصدار الوظيفةَ الأساسية للغة البرمجة java؛ فهو يعرّف الأنواع والكائنات الأساسية جميعها، والصفوف (classes) التي تُستخدَم في الشبكات والأمان والوصول إلى قاعدة البيانات والتطوير، كذلك يعرّف واجهة المستخدم الرسومية Graphical User Interface (GUI)، إضافة إلى واجهة برمجة تطبيقات API الأساسية.

تتكون منصة Java SE من: آلة افتراضية، وأدوات تطوير، وتقنيات النشر، وغيرها من المكتبات ومجموعة الأدوات التي تُستخدَم في تطبيقات تقنية java.

منصة Java الإصدار المخصص للشركات والمؤسسات الكبيرة (Java Enterprise):

صُمِّم هذا الإصدار بناءً على منصة الأساسية وبمستوى أعلى منه.

تقدم هذه المنصة بيئة تشغيلية وبيئة برمجة التطبيقات (API) لتطوير وتشغيل تطبيقات الشبكات الواسعة النطاق والمتعددة المستويات والطبقات والقابلة للتطوير بموثوقية وأمان.

منصة Java الإصدار المُصغَّر (Java Micro Edition):

توفر منصة Java ME واجهةً برمجية للتطبيقات، وآلةً افتراضية صغيرة المساحة لتشغّل تطبيقات لغة برمجة Java على الأجهزة الصغيرة مثل أجهزة الهاتف المحمول.

تكون واجهة برمجة التطبيقات (API) في هذا الإصدار عبارة عن مجموعة فرعية من واجهة برمجة التطبيقات في الإصدار الأساسي Java SE API، إضافة إلى المكتبات الخاصة المفيدة لتطوير تطبيقات الأجهزة الصغيرة، وغالبًا ما تكون تطبيقات Java ME برامج وتطبيقات خدمية لتطبيقات Java EE.

منصة جافا اف اكس (javaFX):

JavaFX هي منصة لإنشاء تطبيقات الإنترنت الغنية بالواجهات البرمجية والتطبيقات الخفيفة الحجم Light weight.

تستخدم تطبيقات JavaFX محرّكات الرسوميات والوسائط لتكون ذات سرعة عالية ليستفيد العميل من الأداء العالي والسرعة العالية، إضافة إلى الشكل والمظهر العصري للتطبيقات وواجهات برمجة التطبيقات للاتصال بمصادر البيانات على الشبكة، وغالبًا ما تكون تطبيقات javaFX برامج وتطبيقات خدمية لتطبيقات Java EE أيضًا (1).

تتألف كل منصة من هذه المنصات من العديد من التقنيات والميزات والتطبيقات الموافقة لها، وسنتناول في هذا المقال الإصدارَ المخصص للشركات والمؤسسات الكبيرة (Java EE) على وجه الخصوص.

ما هي تطبيقات المؤسسات (Enterprise applications)؟

تُعرَف تطبيقات المؤسسات بأنها تطبيقات شبكية واسعة النطاق، ومتعددة المستويات والطبقات، وقابلة للتطوير بموثوقية وأمان. وقد سُميت بهذا الاسم لأنها مصممة لحل المشكلات التي تواجهها الشركات الكبرى، علمًا أنها ليست مفيدة للشركات الكبرى والوكالات والحكومات فقط، إنما تُعدّ ميزاتها مفيدة -بل ضرورية- للمطورين المستقلين والمؤسسات الصغيرة (2).

صُمّمت منصة Java EE لتقليل تعقيد تطوير تطبيقات المؤسسات الناتج عن كثرة ميزاتها، وذلك بتوفير أنموذج تطوير واجهة برمجة التطبيقات وبيئة التشغيل التي تتيح للمطورين التركيز على الوظائف.

كيف تعمل المنصة في التطبيقات المتعددة الطبقات (Multi-tiered application)؟

تُعرَف التطبيقات المتعددة الطبقات في هندسة البرمجيات بأنها بنية تعتمد مفهوم الخادم-العميل (Client-Server)، إضافة إلى الفصل المنطقي بين واجهة الاستخدام (Client tier) ومنطق العمليات الوظيفية (Middle tier) وقواعد البيانات (Data tier)؛ إذ تؤمّن هذه البنية المرونة وقابلية إعادة الاستخدام للمطورين في بناء تطبيقاتهم.

وتتكون هذه البنية -على نحو رئيس- من أربع طبقات تساهم java EE في تسهيل مَهماتهم الوظيفية بتقنيات مختلفة: 

1- طبقة العرض (Client tier): هي المستوى الأعلى من التطبيق؛ إذ تعرض هذه الطبقة الخدمات للزبون وتنقل الطلبات إلى الطبقة المتوسطة (طبقة الويب)، ومن ثم تعرض نتائج معالجة الطلب في الخادم، وعادةً ما توجد على جهاز مختلف عن جهاز الخادم مثل المتصفحات وغيرها (2).

2- طبقة الويب (Web tier): تعالج هذه الطبقة تفاعلات المستخدم، وتتشكل مَهماتها الأساسية من:

  تقنيات Java EE المُستخدمة في طبقة الويب:

3- طبقة العمل (Business tier): تتألف هذه الطبقة من المكونات البرمجية التي تتحكم بوظيفة التطبيق ومنطق عمله عن طريق أداء معالجة تفصيلية، كذلك تشكل هذه الطبقة طريق الوصول إلى البيانات.

   تقنيات Java EE المُستخدمة في طبقة العمل:

4- طبقة نظم معلومات المؤسسة (Enterprise information systems tier): تتكون هذه الطبقة من خوادم قواعد البيانات وأنظمة تخطيط الموارد وغيرها من مصادر البيانات، وتوجد عادةً على جهاز منفصل عن خادم Java EE، وترتبط على نحو وثيق مع طبقة العمل التي تؤمّن طرائق الوصول إلى محتوياتها (2).

تقنيات Java EE المُستخدمة في طبقة نظم معلومات المؤسسة: (2)

تُوفر تلك التقنيات جميعها عن طريق خوادم Java EE والتي تضمّن واجهات برمجة التطبيقات Java EE API، وتوفر خدماتها القياسية عن طريق ما يسمى حاويات (Containers).

فما المقصود بالحاويات (Java EE containers)؟ وما أنواعها؟

هي الواجهات الوسيطة بين المُكوّن والوظيفة الموفرة لدعمه من قبل المنصة، وتُحدّد المنصة وظيفةَ الحاوية تبعًا لنوعها، كذلك يسمح الخادم لأنواع مختلفة من المكونات بالعمل معًا لتقديم وظيفة في تطبيق مؤسسات واحد (3).أنواع الحاويات:

المصادر:

1- Differences between Java EE and Java SE - Your First Cup: An Introduction to the Java EE Platform [Internet]. Docs.oracle.com. 2020 [cited 4 April 2020]. Available from: هنا

2- Overview of Enterprise Applications - Your First Cup: An Introduction to the Java EE Platform [Internet]. Docs.oracle.com. 2020 [cited 4 April 2020]. Available from: هنا

3- Java EE Servers - Your First Cup: An Introduction to the Java EE Platform [Internet]. Docs.oracle.com. 2020 [cited 4 April 2020]. Available from: هنا