logo

logo

logo

logo

logo

البرمجيات الوسطى

برمجيات وسطي

Middleware -

البرمجيات الوسطى

عمار جوخدار

التخاطب والمكاملة بين التطبيقات

أنواع البرمجيات الوسطى

مستقبل البرمجيات الوسطى

 

تُعرّف البرمجيات الوسطى middleware بأنها الطبقة البرمجية الواقعة بين نظام التشغيل والتطبيقات في كل موقع من مواقع المنظومة البرمجية، ويتمثل دورها بجعل تطوير البرمجيات أسهل؛ وذلك بتوفير تجريد عام للبرمجة؛ وبإخفاء تفاوت البرمجيات المختلفة وتوزّعها على نظم التشغيل والعتاديات المختلفة؛ إضافة إلى إخفاء تفاصيل البرمجة المنخفضة المستوى.

ظهرت الحاجة إلى البرمجيات الوسطى مع بروز ضرورة التخاطب بين البرمجيات المختلفة، ويعود ذلك إلى عدة أسباب، منها:

1- حاجة المؤسسات إلى الاستجابة السريعة لمتطلبات السوق وقيوده، وهذا ما يضطرها إلى شراء أدوات وبرمجيات حديثة، أو إلى تعديل برمجيات قديمة، ولا بدّ لهذه المجموعة من البرمجيات من التخاطب فيما بينها.

2- حاجة مديري المعلوماتية إلى مكاملة التطبيقات ذات الأصول المختلفة: مورّدين مختلفين، ولغات برمجة، ونظم تشغيل وتقانات مختلفة.

3- حاجة المؤسسات الوصول إلى برامجها من داخل المؤسسة وخارجها.

4- ضرورة تطوير البرمجيات بسرعة، وذلك بتقسيمها إلى نظم جزئية مستقلة تتخاطب فيما بينها، وهذا ما يسمح بتوزيع العمل بين فرق برمجية مستقلة.

5- الحاجة إلى توزيع البرمجيات جغرافياً تبعاً لتوزّع المستخدمين.

6- الحاجة إلى توزيع البرمجيات على عدة مخدّمات بهدف رفع أدائها وتخديم عدد متزايد من المستخدمين.

التخاطب والمكاملة بين التطبيقات

كانت المكاملة بين التطبيقات تُجرى فيما مضى عن طريق ملفات يتبادلها تطبيقان ويدعم كل منهما صيغة الملف المرسل من التطبيق الآخر, لكن ذلك يتطلب تعريف صيغة جديدة لكل تطبيق يُراد التخاطب معه. وبعبارة أخرى يحتاج تخاطب n برنامج إلى n2 صيغة جديدة، ويؤدي ذلك إلى نظام شديد التشابك، يُطلق عليه عادةً نظام «السباكيتي» spaghetti.

يكمن الحل في إيجاد مسرى bus منطقي يجمع هذه التطبيقات ويوحّد لغة التخاطب، وهذا ما يخفّض تعقيد النظام إلى n. يسمى هذا المسرى البرمجية الوسطى. وتتبادل التطبيقات المختلفة الرسائل فيما بينها عبر هذا المسرى، ولكي تؤدي البرمجية الوسطى المهام المرجوة منها يجب أن تحقق مجموعة من الخصائص، وهي:

1- الاستقلال عن منصة العمل: أي أن تتوفر على عدة أنظمة حاسوبية تختلف من حيث العتاديات ونظم التشغيل التي تعمل عليها.

2- الموثوقية: أي أن تصل الرسالة المرسلة من تطبيق إلى آخر مرة؛ ومرة واحدة فقط.

3- التكيّف مع حركة المرور traffic: قد تزداد حركة المرور بنتيجة ازدياد عدد الحواسيب والتطبيقات، ولا بدّ أن تتكيّف البرمجية الوسطى مع هذا الازدياد بحيث تحافظ على أداء مناسب.

4- تنوّع بنى الاتصال: أي أن تدعم البرمجية الوسطى الاتصال النقطي point-to-point وعمليات البث broadcast.

5 - استعمال الأسماء: أي القدرة على الاتصال بالبرامج المتصلة مع البرمجية الوسطى بمعرفة أسمائها لا عناوينها الفيزيائية، وهذا ما يجعل مواقع التطبيقات شفافة بالنسبة إلى المستخدمين أو بالنسبة إلى بقية التطبيقات. ومن ثمّ فلن تكون هنالك حاجة إلى تعديل الرماز code في حال الرغبة في إعادة الاتصال مع تطبيق غيّر عنوانه الفيزيائي.

6- تحقيق مفهوم المناقلة transaction: هي عملية أو مجموعة من العمليات تحقق الخاصية «أسيد» acid، وهي:

- الذريّة atomicity: أي إما أن تُنفّذ جميع العمليات معاً وإما لا تُنَفّذ أي منها.

- الاتساق coherence: أي تبقى العلاقات المنطقية بين المعطيات سليمة بعد انتهاء المناقلة نجاحاً أو فشلاً.

- العزل isolation: أي لا تتعلق نتيجة المناقلة بأي مناقلة تجري على التوازي.

- الدوام durability: أي إن نتيجة المناقلة نهائية سواء بالنجاح أم بالإخفاق، ولا يمكن للمناقلة أن تنجح بعد إخفاقها ولا أن تخفق بعد نجاحها.

أنواع البرمجيات الوسطى

يتوفر العديد من البرمجيات الوسطى التي يختلف بعضها عن بعض بحسب درجة تحقيقها للخصائص السابقة، ومن هذه الأنواع:

1- الزبون/ المخدّم client/server

هو الاسم الذي يُطلق على آلية التخاطب بين البرمجيات عن طريق الـمقبس socket. وثمة طريقتان لتقسيم العمل بين الزبون والمخدّم. في الطريقة الأولى يهتم الزبون بالواجهة البيانية فقط، في حين يهتم المخدّم بمنطق العمل وتخزين المعطيات. ومن مثالبها الضغط الكبير على المخدّم لأنه يقوم بتنفيذ منطق العمل لجميع الزبائن. أما في الطريقة الثانية فيهتم الزبون أيضاً بمنطق العمل، وهذا ما يخفّف العبء على المخدّم ويحسن أداءه، لكنه يُضعف السوية الأمنية بسبب إرساء البرامج على حاسوب الزبون الشخصي. ومن المثالب المشتركة للطريقتين: الاستهلاك الكبير للموارد (مثل المقابس والنياسب threads)، ومحدودية التصعّدية scalability، وصعوبة النشر deployment. لا تدعم هذه البرمجية الوسطى المناقلات.

2- الزبون/المخدم الثلاثي الطبقات 3- tiers client/server

يختلف هذا النموذج عن النموذج التقليدي للزبون/المخدّم بأنه يقسم المنظومة إلى ثلاث طبقات:

- طبقة الزبون، وتهتم بواجهة الاستخدام فقط.

- طبقة المخدّم، وتهتم بمنطق العمل فقط، ويمكن لهذه الطبقة أن تتضمن عدة مخدّمات لمنطق العمل.

- طبقة التخزين، وتهتم بالتخزين فقط.

يتميز هذا النموذج بتصعّدية عالية، وبقدرة متميزة على مشاركة الموارد وإعادة استعمالها، وبسهولة النشر، وبدعم المناقلات في معظم تنجيزاته.

3- الرتل queue

برنامج وسيط بسيط لا يستعمل بروتوكولات نظام التشغيل، ولا يستدعي تعليماته. ومن الأمثلة الصناعية عليه النظام BEA MessageQ وIBM MQSeries. وهي تقنية ناضجة سبق أن اختُبرت مراراً في مجالات تطبيقية عديدة، ومن خصائصها:

- توفير رسائل متزامنة وغير متزامنة.

- ضمان وصول الرسائل، وذلك بالمحافظة على نسخة منها على القرص الصلب بحيث لا تُحذف الرسالة ما لم تُعالج.

- توفرها على معظم منصات العمل، مثل ويندوز ان تي Windows NT وأي بي إم أو إس 2 IBM/OS2، ويونكسUnix .

- إتاحة بث الرسائل.

- السماح بربط برمجيات حديثة ببرمجيات قديمة لا تدعم البرمجة الغرضية التوجه.

وعلى الرغم من أهمية الأرتال؛ بيد أن لها محدوديات، فهي ليست مستقلة عن بنية الاتصال أو بروتوكول النقل، أو تمثيل المعطيات، ولذا يجب على الزبون إرسال الرسائل بصيغة خاصة يفهمها المخدّم ويستطيع تفسيرها، وهذا ما يضطر المبرمج إلى تعديل البرنامج في حال طرأ أي تعديل على بنية الاتصال، وهذا عبء إضافي على المبرمج.

4- استدعاء الإجرائيات من بُعد Remote Procedure Call (RPC)

يسمح الرتل بمكاملة تطبيقات متوفرة سلفاً لأنه لا يضع أي قيود على بنية الاتصال، ولكن عند تطوير برنامج جديد وتوزيعه على عدة نظم حاسوبية؛ ينبغي استعمال طريقة أسهل وأسرع لتوزيع البرنامج. وتكمن فكرة الحل في توزيع التطبيق التقليدي والمكوّن من إجرائية رئيسية وإجرائيات مساعدة؛ بتقسيم التطبيق نفسه إلى جزأين أو أكثر، بحيث يتضمن الجزء الأول الإجرائية الرئيسية main التي تؤدي دور الزبون، في حين يتضمن الجزء أو الأجزاء الأخرى بقية الإجراءات التي تؤدي دور المخدّمات للإجرائية الرئيسية (الشكل 1).

الشكل (1) مبدأ توزيع البرنامج في طريقة الاستدعاء من بُعد.

تسمح هذه البرمجية الوسطى الكتابة للزبون بلغة برمجة مختلفة عن لغة المخدّم، وذلك اعتماداً على لغة وسيطة قادرة على تحقيق المطابقة بين الأنماط المختلفة لدى الزبون والمخدّم، وتسمى لغة توصيف الواجهات (IDL) Interface Definition Language.

في حالة الرتل يكون الرماز الخاص بعملية التخاطب جزءاً من رماز الزبون، وتقع مسؤولية كتابته على المبرمج، في حين لا يُفرق الزبون في هذه الطريقة RPC بين استدعاء محلي واستدعاء من بُعد، ويقوم المترجم compiler بتوليد الرماز اللازم للتخاطب آلياً اعتماداً على اللغة IDL التي توصّف واجهة المخدّم المستعمل. ويسمى الجزء من الرماز المولّد المرتبط بالزبون المساق الشكلي للزبون client stub، ويسمى الجزء الآخر المرتبط بالمخدم المساق الشكلي للمخدّم server stub.

تدعم هذه الطريقة التخاطب المتزامن، وقد ظهر معيار تستخدمه الشركات المنتجة يسمى Open Software Foundation/Distributed Computing Environment (OSF/DCE). وأصبح- بفضل هذا المعيار- من الممكن مكاملة أكثر من برنامج وسيط من نوع الاستدعاء من بُعد.

يحقق مفهوم الاستدعاء من بُعد جميع الأهداف المرجوّة من مسرى الاتصالات ما عدا:

  • الموثوقية: إذ إنه عند تعطل المخدّم تضيع الرسالة ويقع تصحيح الخطأ على عاتق الزبون.
  • دعم مفهوم المناقلة.
  • البث؛ إذ إنها تدعم التخاطب النقطي فقط.

    لم تحقّق هذه التقانة نجاحاً حقيقياً؛ لأن فكرة الإجرائية procedure هي فكرة متدنية المستوى لا تظهر في مرحلة التحليل؛ وإنما تظهر متأخرةً في مرحلة التصميم، وهذا ما يضطر إلى تغيير الطرائق الحالية المتبعة في التحليل والتصميم لإظهارها في مراحل متقدمة.

    5- البرمجيات الوسطى الغرضية التوجّه (DCOM/CORBA)

    تحتاج البرمجيات المعقّدة إلى بنية تكامل عالية المستوى تظهر في مرحلة التحليل؛ لأن التوزيع يُعدّ من مهام المحلِّل، كما يجب أن تكون قريبة من التصميم حتى يمكن تحويلها إلى رماز لاحقاً. هذه البنية تسمى الغرض object.

    للغرض ميزات عديدة منها: الكبسلة encapsulation، وتحقيق عدة واجهات، والوراثة inheritance، وتعدّد الأشكال polymorphism.

    عندما يجري توزيع الغرض فإن جميع طرائقه methods تُوزّع في آن واحد، ومن دون معرفة سابقة للمحلّل بجميع هذه الطرائق. ويجري التخاطب عن طريق استدعاء إحدى هذه الطرائق من الغرض الذي يسمى في هذه الحالة المخدّم. كما تُسمى البرمجيات الوسطى التي تتيح هذا الاستدعاء البرمجيات الوسطى الغرضية التوجه object oriented middleware، أو مقاول الطلبات الخاصة بالأغراض (ORB) Object Request Broker.

    ثمة معياران للبرمجيات الوسطى الغرضية التوجه:

    - معيار عالمي وضعته مجموعة إدارة الغرض Object Management Group (OMG) في عام 1990، ويسمى البنيان العام لمقاول الطلبات الخاص بالأغراض (كوربا) Common Object Request Broker Architecture (CORBA)

    - معيار وضعته شركة ميكروسوفت Microsoft في عام 1996 وأطلقت عليه اسم نموذج مكوّنات الأغراض الموزّعة Distributed Component Object Model (DCOM) .

    6 - استدعاء الطرائق من بُعد باستعمال جاڤا RMI - Java

    إن استدعاء الطرائق من بُعد Remote Method (RMI) Invocation هو نموذج جديد للبرمجيات الوسطى مرتبط بجاڤا، فقد صُمّمت جاڤا لتكون قابلة للنقل على الشبكة، ولهذا حققت خاصتين، هما:

    - حجم رماز صغير يمكن نقله على الشبكة من دون عمليات ضغط.

    - قابلية التنفيذ على أي نظام حاسوبي؛ بفضل اعتمادها على مبدأ التفسير interpreter لا الترجمة.

    إن استدعاء الطرائق من بُعد لغرضي جاڤا يقعان على آلتي جاڤا افتراضيتين JVM Java Virtual mMachine مختلفتين تتخاطبان بطريقة استدعاء الطرائق.

    يكمن الفرق الأساسي بين هذه الطريقة والبنيان «كوربا» في قدرة الاستدعاء RMI على تمرير الأغراض على أنها معاملات، في حين أن أغراض «كوربا» لا تتحرك، وتتبادل أنماطاً بسيطة، وتسمى آلية تمرير الأغراض هذه بالسَلسلة serialization. ويدعم الاستدعاء RMI التخاطب بالأسماء؛ لأن الأغراض الموزّعة تكون مسجّلة بأسمائها ضمن برمجية خاصة تسمى السجل registry.

    7- حُبيبات جاڤا المؤسسية

    تُعدّ حُبيبات جاڤا المؤسسية Enterprise Java (Beans (EJB نموذجاً موزّعاً لمكوّنات مؤسسية، تسمح بفصل العمل بين الأدوار المختلفة في مرحلة تطوير البرمجيات. ومن هذه الأدوار: مزوّد مخدّمات التطبيقات (ASP) Application Server Provider، ومزوّد الحاويات المؤسسية container provider، ومزوّد الحُبيبات bean provider، والمجمّع assembler، والناشر deployer، ومدير النظام administrator، ويدعم بذلك عملية تجميع البرمجيات. تعتمد حُبيبات جاڤا المؤسسية نموذجاً هجيناً يجمع بين سهولة استعمال استدعاء الطرائق من بُعد RMI وقدرة البنيان «كوربا» على دعم المناقلات بفضل بروتوكولها الخاص
    (IIOP) Internet Inter- Object Request Broker Protocol.

    8- خدمات الوِب web services.

    تستطيع معظم البرمجيات الوسطى المذكورة آنفاً العمل على الشبكات المحلية، لكن معظم الجدران النارية firewalls لا تسمح لهذه البروتوكولات بالعبور. وتقوم السياسة الأمنية لمعظم المخدّمات على منع جميع البروتوكولات من العبور باستثناء البروتوكول http. ولذا برزت ضرورة تطوير برمجيات وسطى تستخدم البرتوكول http بروتوكولَ تخاطب، ونشأ بذلك مفهوم خدمات الوب التي تتمتع بخصائص مشابهة لاستدعاء الطرائق من بُعد RMI من حيث سهولة الاستعمال، ولكنها تستخدم البروتوكول (SOAP) Simple Object Access Protocol الذي يستعمل صيغة تأشير من النوع XML بوساطة البروتوكول http الذي لا يدعم المناقلات. تُعرّف واجهات التخاطب مع خدمات الوب بلغة خاصة هي لغة توصيف خدمات الوب Web Services Description Language. (WSDL).

    مستقبل البرمجيات الوسطى

    تزداد أهمية البرمجيات الوسطى مع تطوّر الوِب ودخول برمجياته في جميع مناحي الحياة الاجتماعية والاقتصادية، ويتطلب ذلك التواصل الآمن والموثوق والسريع بين هذه البرمجيات المختلفة، وهنا يبرز جلياً دور خدمات الوب لوصل هذه البرمجيات لكونها تدعم الوب. ويهدف العديد من الأبحاث حالياً إلى تطوير خدمات وب تدعم المناقلات على الإنترنت؛ لما لذلك من فوائد في الأنظمة التي تدعم الأعمال من النوع (B2B) Business to Business .

    إضافة إلى ذلك تحتاج برمجيات الوب- وخاصة الموجّهة منها- إلى عدد كبير من المستخدمين، وإلى توزيع العمل بين عدد من المخدّمات، وهنا تبرز أهمية البرمجيات الوسطى الداعمة للمناقلات، والتي تحسّن إدارة الموارد.

    ولما كانت درجة تعقيد البرمجيات الموزّعة مرتفعة، فمن الضروري إيجاد منصات عمل قادرة على تبسيط إدارة الموارد وإخفاء هذه التعقيدات - ولو جزئياً - عن المبرمج، لذلك ظهرت منصات عمل؛ مثل دوت نت .net وجي تو إي إي J2EE التي تضمّنت مكوّنات موزّعة معتمدة على برمجيات وسطى غرضية التوجه.

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

    مراجع للاستزادة:

    -X. Yang, L. Wang, W. Jie, Guide to E-Science: Next Generation Scientific Research and Discovery, Springer, 2011.

    - H. Zhou, The Internet of Things in the Cloud: A Middleware Perspective, CRC Press, 2012.


التصنيف : كهرباء وحاسوب
النوع : كهرباء وحاسوب
المجلد: المجلد الرابع
رقم الصفحة ضمن المجلد : 0
مشاركة :

اترك تعليقك



آخر أخبار الهيئة :

البحوث الأكثر قراءة

هل تعلم ؟؟

عدد الزوار حاليا : 1062
الكل : 58492414
اليوم : 64928

البروج (دائرة-)

آلان (إميل كارتييه ـ) (1868 ـ 1951)   إميل كارتييه Emil Chartier المعروف باسم آلان Alain فيلسوف فرنسي ولد في مورتاني أوبرش (مقاطعة أورن) وتوفي في الفيزينيه Le Vésinet (من ضواحي باريس). كان ابن طبيب بيطري، قضى طفولة عادية، رأى أنها كانت ضرباً من الحماقة. فقد إيمانه بالدين وهو بعد طالب في الثانوية من غير أزمة روحية، لمع في دراسته الثانوية في الرياضيات، حتى إنه كان يحلم بدخول مدرسة البوليتكنيك لكن حلمه لم يتحقق، إذ إن إخفاقه في امتحانات الشهادة الثانوية بفرعها العلمي جعله يستعد لدخول المعهد العالي للمعلمين سنة 1889، إذ انصرف إلى قراءة أعمال كبار الفلاسفة، مثل أفلاطون وأرسطو وأوغست كونت، ولكنه أولى الفيلسوف الألماني كَنت اهتماماً خاصاً طبع تفكيره بطابع دائم.
المزيد »