لغة برمجة JADE
JADE هو منتج منصة تطوير ونشر برمجيات كائنية التوجه مملوكة لشركة Jade Software Corporation التي تتخذ من نيوزيلندا مقراً لها، وقد تم إصداره لأول مرة في عام 1996. [ 1 ] [ 2 ] ويتكون من لغة برمجة JADE، وبيئة تطوير متكاملة ومصحح أخطاء ، وخادم تطبيقات متكامل ونظام إدارة قواعد بيانات الكائنات .
تم تصميمها كبيئة تطوير شاملة للسماح ببرمجة الأنظمة بلغة واحدة من خادم قاعدة البيانات وصولاً إلى العملاء ، كما أنها توفر واجهات برمجة التطبيقات ( APIs ) للغات أخرى، بما في ذلك إطار عمل .NET ، [ 3 ] Java ، C ، C++ ، وخدمات الويب .
تعتمد منصة JADE على ترخيص مزدوج. لأغراض التطوير، يتم توفير ترخيص تطوير JADE محدود مجاني . أما لأغراض النشر، فيتطلب ترخيص البرنامج الخاص دفع رسوم لكل عملية.
لغة
من حيث بناء الجملة ، تشبه لغة JADE لغة باسكال إلى حد كبير ؛ إذ يعتمد بناء جملتها على لغة Modula-2 ، المشتقة بدورها من باسكال. ورغم أنها تتضمن ابتكارات غير موجودة في باسكال أو Modula-2، إلا أنها تفتقر إلى بعض خصائص لغات البرمجة الكائنية الحديثة الأخرى مثل C# وجافا. [ 4 ]
يستطيع برنامج JADE استيراد وتشغيل برامج LINC 4GL وكان هذا دوره الأساسي في البداية.
نموذج البرمجة
مثل جميع لغات البرمجة الشائعة الأخرى المستخدمة لإنشاء برامج تعتمد على قواعد البيانات، فإن JADE لغة برمجة كائنية التوجه بالكامل . صُممت JADE لتضم جميع الميزات الأساسية للبرمجة كائنية التوجه، ولكنها لا تدعم التحميل الزائد للأساليب أو المعاملات ، وحتى إصدار JADE 2018، كانت تفتقر إلى المُنشئات المُعاملة . [ 4 ]
تُحفظ الفئات في JADE ضمن مخططات . تؤدي المخططات نفس وظيفة حزم Java أو مساحات الأسماء في .NET، ولكنها تتميز بتسلسل هرمي، حيث ترث الفئات من المخططات الرئيسية. يصبح هذا مفيدًا بشكل خاص عند البرمجة باستخدام منهجية نموذج-عرض-متحكم ، إذ يمكن وضع فئات النموذج في مخطط واحد، ثم بناء فئات المتحكم والعرض فوق فئات النموذج في مخطط فرعي.
هيكل البرنامج
تُطوَّر برامج JADE باستخدام واجهة مستخدم تُمكّن المبرمجين من إنشاء الفئات بصريًا وتحديد خصائصها ووظائفها. فبدلًا من البحث عن الوظائف في ملفات كبيرة، يختار المبرمجون الوظيفة التي يرغبون في تعديلها، فيُعرض لهم رمز تلك الوظيفة فقط. كما أن JADE لا تُجمّع جميع رموز البرنامج دفعة واحدة، بل تُجمّع كل وظيفة على حدة فور اكتمالها، مما يُتيح التحقق من الرمز فورًا.
يُخزَّن كل كود تطبيق JADE في قاعدة بياناته الكائنية التوجه. وهذا يتيح تطويرًا متعدد المستخدمين، حيث تحافظ قاعدة البيانات على التحكم في التزامن ، وبما أن كل جزء من الكود يُمثِّل كائنًا منفصلاً في قاعدة البيانات، فغالبًا ما يكون من الممكن إعادة كتابة كود النظام أثناء تشغيله وتواصله عبر الإنترنت، طالما أن أجزاء النظام التي يتم تغييرها غير مستخدمة.
سمات
كان الهدف الرئيسي من JADE هو إنشاء لغة برمجة متكاملة بسلاسة تسمح للمطورين بإنشاء تطبيق واحد ينتقل من البداية إلى النهاية بدلاً من الاضطرار إلى كتابة ثلاثة تطبيقات منفصلة لخادم قاعدة البيانات وخادم التطبيقات وعميل العرض التقديمي ثم كتابة التعليمات البرمجية الخاصة بها للتواصل مع بعضها البعض.
قاعدة بيانات الكائنات
يُعدّ أبرز اختلاف بين JADE ولغات البرمجة الكائنية الأخرى هو أن قاعدة بيانات الكائنات جزءٌ لا يتجزأ من لغتها. فعلى سبيل المثال، عند إنشاء كائن في JADE، يمكن إنشاؤه ككائن مؤقت أو دائم. يشبه إنشاء كائن مؤقت إنشاء الكائنات في لغات البرمجة الكائنية الأخرى، حيث يُنشأ الكائن في الذاكرة ثم يُفقد عند انتهاء البرنامج. أما عند إنشاء كائن دائم ، فسيظل الكائن موجودًا عند انتهاء البرنامج، وسيُعاد تشغيله عند بدء تشغيل البرنامج مرة أخرى. لذا، عندما يكون الكائن دائمًا، تعمل JADE تلقائيًا في الخلفية لتخزينه واسترجاعه من قاعدة البيانات عند الحاجة. ويمكن توزيع الكائنات الدائمة على عدة خوادم متعاونة، حيث تتولى JADE تلقائيًا إدارة تخزين الكائنات مؤقتًا وضمان اتساقها.
لا توجد فروق تُذكر بين التعامل مع الكائنات المؤقتة والدائمة، لذا يُظهر JADE للمبرمج أن جميع الكائنات في قاعدة البيانات موجودة في الذاكرة المحلية. في أغلب الأحيان، تُستخدم قاعدة بيانات JADE الموجهة للكائنات في نظام متعدد المستخدمين، ولذلك يُظهر JADE للمبرمج أن جميع الكائنات في قاعدة البيانات مخزنة في ذاكرة مشتركة يمكن لجميع المستخدمين المتصلين بالنظام الوصول إليها، حتى من أجهزة كمبيوتر مختلفة.
بفضل مركزية جميع أكواد البرنامج على خادم قاعدة البيانات وكذلك البيانات، يمكن برمجة جميع عقد العميل كما لو كانت تعمل على خادم قاعدة البيانات.
قاعدة بيانات JADE كائنية التوجه بطبيعتها، ومتوافقة مع ACID ، ولديها جميع الميزات القياسية مثل المعاملات الذرية، والقفل، والتراجع، واستعادة الأعطال، والقدرة على الاحتفاظ بخادم قاعدة بيانات ثانوي واحد أو أكثر متزامن مع قاعدة البيانات الرئيسية لأغراض النسخ الاحتياطي، واستعادة البيانات في حالات الكوارث، وتحسين الأداء.
لتحقيق التوافق مع قواعد البيانات العلائقية لأغراض إعداد التقارير، وتحليل بيانات الأعمال ، وتخزين البيانات، توفر JADE منذ عام 2010 خدمة "تعبئة البيانات العلائقية" التي تُمكّن من نسخ الكائنات تلقائيًا من قاعدة بياناتها الأصلية الموجهة للكائنات إلى قاعدة بيانات علائقية واحدة أو أكثر . تدعم هذه الميزة إصدارات Microsoft SQL Server 2000 و2005 و2008.
نموذج ثلاثي المستويات
غالبًا ما تستخدم البرامج التي تعتمد على قواعد البيانات منهجية ثلاثية الطبقات ، حيث تُقسّم التطبيقات إلى ثلاث طبقات: تخزين البيانات، والمعالجة، والعرض. في طبقتي تخزين البيانات والمعالجة، تتكون أنظمة JADE من مجموعة من الخوادم المتعاونة، تُسمى العُقد ، وقد تشارك عدة عُقد في كل طبقة. لكل نوع من العُقد اسم مختلف، وجميعها قادرة على معالجة الكائنات وتنفيذ منطق الأعمال. يمكن نشر مجموعة من العُقد على جهاز واحد أو عدة أجهزة. تتولى خوادم قواعد البيانات تخزين البيانات، كما يمكنها تنفيذ منطق الأعمال، بينما تتولى خوادم التطبيقات المعالجة. في نموذج الطبقات الثلاث، توفر برامج العرض واجهة المستخدم. كما توفر JADE برنامج عرض ثنائي الطبقات يجمع بين قدرات خادم التطبيقات وبرنامج العرض. تقليديًا، تُنشأ هذه الطبقات الثلاث من خلال دمج ثلاثة برامج وجعلها تتواصل لتشكيل نظام واحد. يوفر فصل البرامج المختلفة بهذه الطريقة العديد من المزايا، أهمها قابلية النظام للتوسع، أي أن زيادة قدرة النظام تتطلب ببساطة إضافة المزيد من العُقد.
يُتيح تصميم نظام كهذا للمبرمج اتخاذ قرار في كل مرة يرغب فيها بكتابة دالة معينة. عليه أن يُحدد ما إذا كانت الدالة ستعمل على أفضل وجه على خادم قاعدة البيانات، أو خادم التطبيقات، أو واجهة المستخدم قبل البدء بالبرمجة، إذ يصعب تغيير هذا القرار بعد كتابة الدالة في أحد هذه المستويات.
يختلف الأمر بالنسبة لتطبيقات JADE، حيث تُبرمج كتطبيق واحد متكامل. عند إنشاء تطبيق JADE، يمكن للمبرمج التفكير كما لو كان يُنشئ برنامجًا سيعمل على خادم قاعدة البيانات، وكأن جميع عمليات تخزين البيانات ومعالجتها وعرضها تتم على جهاز واحد. عندما يعمل البرنامج على ثلاثة مستويات، يتولى JADE تلقائيًا تشغيل جميع التعليمات البرمجية افتراضيًا على خادم التطبيق، وإرسال طلبات قاعدة البيانات إلى خادم قاعدة البيانات، ومعلومات واجهة المستخدم إلى عميل العرض. مع ذلك، من السهل جدًا على المبرمج تغيير موقع تشغيل دالة معينة ونقلها إلى مستوى مختلف بتغيير توقيع الدالة. لهذا السبب، يمكن اتخاذ قرار بشأن مكان تشغيل جزء معين من التعليمات البرمجية في مراحل متأخرة من دورة التطوير، وتصبح إعادة هيكلة التعليمات البرمجية لتشغيلها على أجزاء مختلفة من النظام أسهل بكثير بفضل الطريقة التي يتيحها JADE لتطوير البرامج من البداية إلى النهاية.
أنواع العملاء
يستطيع المبرمجون السماح لثلاثة أنواع مختلفة من العملاء بالاتصال بنظام JADE. وهذه الأنواع الثلاثة من العملاء هي:
- نماذج اليشم
- مستندات HTML
- خدمات الويب
في نفس المخطط، يمكن لمطور JADE إنشاء العديد من التطبيقات المنفصلة تمامًا والتي قد توفر واجهات مختلفة للوصول إلى قاعدة البيانات نفسها.
نماذج اليشم
تتكون تطبيقات JADE Forms من نماذج، كما يوحي الاسم. يحتاج العملاء إلى الاتصال عبر عميل JADE Smart الخفيف أو العميل القياسي لتشغيل التطبيقات التي تستخدم JADE Forms.
يعمل العميل الذكي الخفيف عن طريق الاتصال بخادم التطبيقات الذي يتولى عادةً جميع عمليات المعالجة نيابةً عنه، مما يعني أن العميل الخفيف مسؤول فقط عن عرض النماذج واستقبال المدخلات. هذا يعني أن جهاز الكمبيوتر الذي يشغل العميل الخفيف لا يحتاج إلى أن يكون جهازًا فائق القدرة، ولا يتطلب اتصالاً سريعًا بالشبكة لأنه لا يقوم بتحميل البيانات من قاعدة البيانات - غالبًا ما يتم تشغيل عملاء JADE الخفيفين عبر اتصال هاتفي. لهذا السبب يُطلق عليهم اسم العملاء الخفيفين، حيث لا يتطلب تشغيلهم قدرة حاسوبية كبيرة.
العميل القياسي هو ببساطة العميل الذكي الخفيف مُدمجًا مع خادم التطبيقات على جهاز واحد. في هذه الحالة، يقوم الجهاز الذي يُشغّل العميل بجميع عمليات المعالجة والعرض. تتطلب العملاء القياسية قدرة حاسوبية أكبر من العملاء الخفيفين، حيث يجب عليهم تحميل البيانات من قاعدة البيانات بالإضافة إلى إجراء عمليات المعالجة الخاصة بهم.
تشمل مزايا استخدام نماذج JADE ما يلي:
- من بين أنواع العملاء الثلاثة، توفر JADE Forms أقصر وقت لتطوير تطبيقات JADE.
- يسمح للمطورين باستخدام نفس التقنية من البداية إلى النهاية.
- يمكن تجميع أجهزة العميل الرقيقة الذكية بحيث يمكن تثبيتها وتشغيلها على أجهزة الكمبيوتر الخاصة بالعملاء ببضع نقرات.
أما العيوب فهي:
- لا يمكن الوصول إلى جمهور عالمي كما هو ممكن على شبكة الإنترنت العالمية.
يمكن تشغيل تطبيقات JADE Forms داخل متصفح الويب باستخدام وضع تمكين الويب. تقوم المنصة تلقائيًا بإنشاء HTML لمحاكاة نماذج واجهة المستخدم وعناصر التحكم ، مما يسمح بنشر التطبيقات الحالية على الويب دون الحاجة إلى تعديل الكود الأساسي أو كتابة HTML مباشرةً.
مستندات HTML
يدعم JADE نشر التطبيقات على الويب من خلال ميزة مستندات HTML. تعمل هذه الميزة بشكل مشابه جدًا لـ ASP.NET، حيث يقوم المطورون بإنشاء قوالب لصفحات HTML ويتركون أجزاءً في القالب ليقوم البرنامج بتعبئتها.
تتمثل مزايا استخدام مستندات HTML فيما يلي:
- يُتيح ذلك للتطبيق الوصول إلى جمهور عالمي.
أما العيوب فهي:
- عندما تستخدم تطبيقات JADE مستندات HTML، فإنها لم تعد تستخدم نفس التقنية من البداية إلى النهاية. على سبيل المثال، قد يتم التحقق في واجهة النظام الأمامية باستخدام JavaScript.
- لم يعد نقل بعض عمليات المعالجة إلى عملاء الواجهة الأمامية أمرًا سهلاً أو آمنًا كما كان من قبل.
خدمات الويب
تُستخدم خدمات الويب لتمكين البرامج المختلفة من التواصل فيما بينها عن بُعد باستخدام البرمجة الكائنية. ولا يمكن للمستخدمين الوصول إلى خدمات الويب مباشرةً. ومن استخدامات خدمات الويب مع JADE تمكين تقنيات أخرى، مثل .NET أو Java، من استخدام JADE كقاعدة بيانات كائنية التوجه. كما تُمكّن خدمات الويب أنظمة JADE من التفاعل مع الخدمات التي توفرها أنظمة أخرى غير JADE.
قابلية التشغيل البيني
إلى جانب خدمات الويب، يمكن لـ JADE التفاعل مع برامج أخرى عبر واجهات برمجة التطبيقات اللغوية (بما في ذلك .NET وJava وC/C++)، واستدعاءات مكتبات DLL، وكائنات ActiveX/COM، وتجميعات .NET. يتيح ذلك للبرامج الأخرى الوصول إلى الكائنات وتنفيذ وظائفها، ويمكن استخدامه لتوفير واجهة مختلفة لتطبيق JADE. قدّم JADE 6.2 واجهة برمجة تطبيقات Java، وتكاملًا مع تجميعات .NET، وإمكانية تشغيل عملاء Smart Thin على أجهزة Windows Mobile. بينما قدّم JADE 6.3 واجهة برمجة تطبيقات للغات .NET .
القدرات اللغوية المتعددة
يدعم برنامج JADE البرامج متعددة اللغات بشكل أصلي . [ 5 ] وهو يفعل ذلك بعدة طرق:
- يمكن وضع علامة على النصوص بأنها قابلة للترجمة ، مما يعني أنها ستتغير تبعًا للغة الحالية.
- يمكن إنشاء نسخ متعددة من نفس النموذج لتناسب كل لغة. وهذا يعني أن واجهات المستخدم قد تبدو مختلفة تمامًا من لغة إلى أخرى.
- يمتلك المطور طرقًا متاحة للوصول إلى اللغة الحالية للنظام، وبالتالي يمكنه تنفيذ ميزاته الخاصة التي تعتمد على اللغة.
سيقوم برنامج JADE بالتبديل إلى اللغة التي يكتشفها على النظام تلقائيًا، إذا كانت تلك اللغة متوفرة على النظام. [ 5 ]
سهولة الحمل
اعتبارًا من عام 2025تطبيقات JADE تعمل على نظام ويندوز فقط؛ وقد توقف دعم نظام لينكس. يسمح JADE 6.2 بتشغيل أجهزة العميل النحيف الذكي وعميل قياسي متخصص على أجهزة ويندوز موبايل.
أمثلة على التعليمات البرمجية
يحتوي هذا القسم على بعض الأمثلة القصيرة لرمز JADE.
مرحبا بالعالم!
هذه برامج JADE "مرحباً بالعالم!" :
مرحبا بالعالم()؛ begin app.msgBox ( "Hello, World!" , "Hello, World!" , MsgBox_OK_Only + MsgBox_Information_Icon ); end ;
أو
مرحبا بالعالم()؛ ابدأ بكتابة "مرحباً بالعالم!" ؛ انتهى ؛
تاريخ
تم تصميم برنامج JADE في الأصل من قبل السير جيلبرت سيمبسون، ويتم تطويره حاليًا بواسطة شركة Jade Software Corporation. [ 6 ]
كانت النسخة الأولى من برنامج JADE هي JADE 3، والتي صدرت في سبتمبر 1996.
الإصدار الحالي هو JADE 2022، ليحل محل JADE 2020 [ 7 ]
انظر أيضاً
مراجع
- ↑ "جيد - من نحن" . شركة جيد للبرمجيات .
- ↑ "شركة Jade Software تُصدر Jade 7.1" . ZDnet . تم الاطلاع عليه بتاريخ 21 ديسمبر 2019 .
- ↑ "سكوب إندبندنت نيوز - جايد 6.3" . تم الاطلاع عليه بتاريخ 21 ديسمبر 2019 .
- 1 2 تودي، تيم (3 يونيو 2009). "جيد: لغة برمجة غامضة لهذا الشهر" . ديف توبيكس . تم الاسترجاع في 12 مارس 2021 .
- 1 2 ويتن، إيان هـ.؛ بيرتويستل، غراهام م.؛ كليري، جون؛ هيل، ديفيد ر.؛ ليفينسون، داني؛ لوموف، غريغ؛ نيل، رادفورد؛ بيترسون، موراي؛ أونغر، برايان و.؛ ويفيل، برايان (يوليو 1983). "جيد: بيئة نموذجية برمجية موزعة" . مجلة ACM SIGOPS لأنظمة التشغيل . 17 (3): 10-23 . doi : 10.1145/850742.850744 . ISSN 0163-5980 .
- ↑ شركة جاد للبرمجيات
- ↑ "أحدث إصدار" .
روابط خارجية
- الموقع الرسمي
- أمثلة ودروس تعليمية لمبرمجي JADE
- يوفر JADE 6.1 إمكانية نسخ البيانات إلى خادم Microsoft SQL
- عائلة لغات البرمجة Algol
- لغات البرمجة المتزامنة
- لغات البرمجة القائمة على الفئات
- لغات البرمجة التي تركز على البيانات
- أنظمة إدارة قواعد البيانات الموجهة للكائنات
- لغات البرمجة الكائنية التوجه
- لغات البرمجة المستمرة
- لغات البرمجة التي تم إنشاؤها عام 1996
- شركات البرمجيات في نيوزيلندا
