الكائنات الموزعة في كل مكان
كان مشروع Distributed Objects Everywhere ( DOE ) مشروعًا طويل الأمد لشركة Sun Microsystems لبناء بيئة حوسبة موزعة تعتمد على نظام CORBA في "الخادم" وواجهة المستخدم OpenStep . بدأ المشروع عام 1990 وأُعلن عنه بعد ذلك بفترة وجيزة، لكنه ظلّ مجرد فكرة لسنوات عديدة قبل أن يُطرح أخيرًا باسم NEO عام 1995. بِيعَ المشروع لفترة قصيرة فقط قبل أن يُلغى (مع OpenStep) عام 1996. وحلّ محله ما يُعرف اليوم باسم Enterprise JavaBeans .
خلفية
في أوائل التسعينيات، كان التوجه الأبرز في مجال الحوسبة هو استخدام الحواسيب المكتبية الصغيرة لعرض وتعديل البيانات التي توفرها الحواسيب المركزية والحواسيب الصغيرة . ورغم وجود عدد من الطرق المتاحة لهذا النوع من الوصول، إلا أن توزيع العمل لم يكن متكافئًا على الإطلاق. فعلى سبيل المثال، كان استخدام لغة SQL يتطلب من محطة العمل تنزيل مجموعات بيانات ضخمة ثم معالجتها محليًا، بينما كان استخدام برامج محاكاة الطرفيات يترك كل العمل للخادم دون توفير واجهة مستخدم رسومية .
بدا أن التوزيع الأمثل للمهام يكمن في وجود مجموعة من العناصر التعاونية، حيث تتولى محطة العمل مسؤولية العرض والتفاعل مع المستخدم، بينما تتم المعالجة على الخادم. إلا أن الاختلافات الهائلة في أنظمة التشغيل ولغات البرمجة بين المنصات حالت دون تطبيق هذا الحل. فبينما قد يكون من الممكن بناء نظام يعمل على أي تركيبة من محطة العمل والخادم، إلا أن هذا الحل نفسه لن يعمل على أي نظام آخر.
الغريب أن الاختلافات بين أي لغتين برمجة على منصة واحدة كانت كبيرة تقريبًا. فلكل لغة صيغتها الخاصة لتمرير المعاملات إلى استدعاءات الإجراءات ، وكانت صيغ الملفات الناتجة عنها غالبًا مختلفة تمامًا. وبشكل عام، لم يكن من الممكن دائمًا كتابة أجزاء مختلفة من البرنامج بلغات مختلفة، على الرغم من أن ذلك غالبًا ما يكون مفيدًا للغاية. لم تكن المشكلة حادة على الحواسيب الصغيرة والحواسيب المركزية حيث كان المورد غالبًا ما يحدد معايير لمكتباته، ولكن على الحواسيب الشخصية، كانت أنظمة البرمجة تُقدم عادةً من قبل شركات خارجية متنوعة لا تهتم بالتوحيد القياسي.
مع ذلك، جرى معالجة هذه المشكلة في أوائل التسعينيات من خلال استحداث أنظمة مكتبات مشتركة متنوعة . كان الهدف من هذه الأنظمة تسهيل استخدام الموارد على المنصات الصغيرة، وذلك بالسماح لعدد من البرامج التي تستخدم موردًا مشتركًا، مثل واجهة المستخدم الرسومية، بمشاركة نسخة واحدة من التعليمات البرمجية بدلًا من تحميل كل برنامج نسخة منفصلة في الذاكرة. وكنتيجة ثانوية لإمكانية استدعاء هذه الأنظمة من برامج متعددة، فقد حددت أيضًا طريقة قياسية لاستدعائها، باستخدام لغة تعريف الواجهة (IDL)، مما يسمح لأي لغة على المنصة بفهم التعليمات البرمجية داخل المكتبة.
كان توسيع هذه الأنظمة لدعم استدعاءات الإجراءات عن بُعد في الخلفية يُعتبر تطورًا طبيعيًا، إذ يُقدّم حلًا لمشكلة برمجة العميل/الخادم. في ذلك الوقت، كان هناك عدد من المشاريع الكبرى لتطوير مثل هذا النظام، بما في ذلك نموذج كائنات النظام (SOM/DSOM) من IBM ، وكائنات NeXT الموزعة المحمولة ، ونموذج كائنات المكونات (COM/DCOM) من Microsoft ، والعديد من إصدارات CORBA . ونظرًا لرغبة شركة Sun في ترسيخ مكانتها كشركة IBM مستقبلية في مجال دعم المكاتب الخلفية، فقد رأت ضرورة اقتحام هذا السوق أيضًا.
الربيع، وزارة الطاقة، أوبن ستيب، نيو
استند حل شركة صن إلى العمل في نظام التشغيل سبرينغ ، الذي استخدم كائنات مترابطة في جميع مهام البرمجة تقريبًا. لم يكن تعديل هذا النظام ليعمل على نظام يونكس "تقليدي" مثل سولاريس أمرًا صعبًا، على الرغم من أن يونكس يفترض أن جميع البرامج تعمل محليًا، وكان لا بد من إضافة واجهة للوصول عن بُعد. ولتحقيق ذلك، أضافت شركة DOE وسيط طلبات الكائنات (ORB) الذي يعمل على خوادم المكتب الخلفي، ويستمع إلى طلبات DOE ويسلمها إلى البرنامج المناسب لمعالجتها. خلال عملية التطوير، أصبح مصطلح CORBA شائعًا جدًا في هذا المجال. وقد تسبب ذلك في تأخير ريثما أُعيد تصميم وسيط طلبات الكائنات لدعم CORBA. في نموذج CORBA، تستطيع الكائنات المختلفة، مثل تلك الموجودة في DOE أو SOM، التفاعل من خلال مشاركة واجهة مشتركة.
تمثلت المشكلة الأكبر لشركة صن في افتقارها إلى حلول متكاملة لبرمجة الكائنات على أجهزة سطح المكتب. فعلى الرغم من شيوع مكتبات كائنات C++ على بعض المنصات، إلا أن نظام التشغيل SunOS (المعروف لاحقًا باسم Solaris ) وأنظمة النوافذ SunView و X المرتبطة به كانت تعتمد على لغة C البسيطة، بينما كانت بيئة النوافذ NeWS الأحدث تعتمد على لهجة كائنية التوجه قابلة للتوسيع عبر الشبكة من لغة PostScript .
سعياً لتوفير حل شامل ومرن لبرمجة الكائنات، تعاونت شركة صن مع شركة نيكست، وقامتا بتطوير برنامج أوبن ستيب . كانت الفكرة هي أن تقوم برامج أوبن ستيب باستدعاء كائنات تصميم التجارب على خوادم صن، مما يوفر حلاً متكاملاً يربط بين أنظمة التشغيل الخلفية والواجهة الأمامية على أجهزة صن. لم يُصدر أوبن ستيب حتى عام ١٩٩٣، مما أدى إلى مزيد من التأخير في المشروع.
بحلول وقت إصدار DOE، المعروف الآن باسم NEO، في عام 1995، [ 1 ] كانت شركة Sun قد انتقلت بالفعل إلى Java كخيارها الرئيسي التالي. أصبحت Java واجهة المستخدم الرسومية المفضلة لتطبيقات جانب العميل، وتم التخلي بهدوء عن خطط Sun لـ OpenStep (انظر تصميم Lighthouse ). أعيد تقديم NEO كنظام Java مع إطلاق إطار عمل "Joe"، [ 2 ] لكنه لم يُستخدم على نطاق واسع. تم دمج مكونات NEO وJoe في النهاية ضمن Enterprise JavaBeans . [ 3 ]
على الرغم من أن الكائنات الموزعة، وCORBA على وجه الخصوص، كانت "التقنية الرائدة" في أوائل التسعينيات، إلا أن الاهتمام بها تلاشى بشكل كبير بحلول النصف الثاني من العقد. وأصبحت تطبيقات الويب التي تعمل بالكامل على الخادم هي "التقنية الرائدة" الجديدة، وتلاشت الحاجة إلى نظام عرض قوي على جانب العميل، ليحل محلها إلى حد كبير واجهات المستخدم الرسومية الخفيفة القائمة على HTML و JavaScript (" واجهات مستخدم المتصفح ").
مراجع
- ↑ «شركة صن سوفت تُطلق NEO، أول بيئة حوسبة كائنية شبكية متكاملة في الصناعة» (بيان صحفي). شركة صن مايكروسيستمز، 20 سبتمبر 1995. مؤرشف من الأصل بتاريخ 11 مارس 2007. تم الاطلاع عليه بتاريخ 13 ديسمبر 2006 .
- ↑ «شركة صن تعلن عن منتج يربط جافا بتطبيقات الأعمال» (بيان صحفي). شركة صن مايكروسيستمز، 26 مارس 1996. مؤرشف من الأصل بتاريخ 20 مارس 2007. تم الاطلاع عليه بتاريخ 13 ديسمبر 2006 .
- ↑ روبرت ماكميلان؛ نيال مكاي (14 نوفمبر 1997). "وداعًا نيو، مرحبًا بـ Enterprise Java Beans" . صن وورلد . تم الاسترجاع في 1 مايو 2013 .
روابط خارجية
- شاه، راون (1 يونيو 1996). "الحوسبة الموزعة للكائنات باستخدام جو ونيو" . جافا وورلد . تم الاسترجاع في 15 يوليو 2020 .
- بنية وسيط طلب الكائنات المشتركة
- البرمجة الكائنية التوجه
- واجهات برمجة التطبيقات
- برمجيات صن مايكروسيستمز
- منتجات وهمية
