البنية الخدمية

البنية الخدمية
البنية الخدمية (SOA) هي مجموعة من مبادئ تصميم الأنظمة تستخدم في مجال الحوسبة أثناء مراحل تطوير الأنظمة واندماجها. يقدم النظام الذي يستخدم هذه البنية وظائفه على هيئة حزمة من الخدمات المتعاونة التي يمكن استخدامها من قبل أنظمة مختلفة من مجالات تجارية متعددة.
كما أن البنية الخدمية تتيح لمستخدمي الخدمات – مثل تطبيقات الويب - طريقة للتعرف على خدمات SOA الموجودة، فمثلا قد تقدم مجموعة من الأقسام المنفصلة بداخل شركة ما عددا من خدمات SOA بأكثر من لغة برمجة، ويستفيد عملاؤهم من الواجهة الواضحة والسهلة لهذه الخدمات. تستخدم لغة XML في التواصل مع واجهة خدمات SOA عادة وليس بالضرورة.
تشرح بنية SOA كيفية اندماج تطبيقات ويب مستقلة تماما لخلق بيئة ويب، وتستخدم منصات برمجية متعددة. تعرف البنية واجهة الخدمات في صورة وظائف وبروتوكولات بدلا من تعريفها كواجهة برمجة تطبيقات API. يسمى المدخل لتطبيق SOA نقطة نهاية endpoint.
تتطلب الخدمية وجود ارتباط حر بين الخدمات وأنظمة التشغيل وأي تقنية برمجية أخرى مستخدمة في التطبيقات. تقسم البنية الوظائف إلى مجموعة من الوحدات المستقلة – أو الخدمات ،– يقدمها المبرمجون على الشبكة حتى يتمكن المستخدمون من إعادة استخدامها ودمجها لبناء التطبيقات. يتواصل المستخدمون مع هذه الخدمات من خلال تداول البيانات في صياغات مشتركة وواضحة أو بتنسيق نشاط معين بين خدمتين أو أكثر.
يمكن النظر إلى البنية الخدمية في إطار تطور تدريجي بدءً من المبادئ الأولى للحوسبة الموزعة distributed computing والبرمجة التركيبية modular programming – مرورا بالبنية الخدمية – وصولا للممارسات الحالية في تطبيقات المزج mashups وتطبيقات ساس والحوسبة السحابية Cloud Computing (التي يراها البعض امتدادا للبنية الخدمية).

بنية SOA وبروتوكولات خدمات الويب

يقوم المطورون عادة بتنفيذ بنية SOA باستخدام معايير خدمات الويب (مثل سواب) الذي لاقى قبولا كبيرا في السوق التجاري بعد توصيات من W3C (رابطة الشبكة العالمية) بالإصدار1.2 في 2003. تتيح هذه المعايير (المسماة أيضا بلغات وصف خدمات الويب) تعاون أكثر وحماية من قيود شركات برمجيات الملكية. رغم هذا يمكن تطبيق بنية SOA باستخدام أي من تقنيات الخدمات مثل جيني أو كوربا أو ريست.

تعريفات بنية SOA

قدم المتخصصون عددا من التعريفات لبنية SOA، قامت مجموعة أويسيس OASIS والمجموعة المفتوحة بوضع تعريفات رسمية لها.
تعرفها أويسيس كما يلي:
نموذج لتنظيم واستخدام إمكانيات موزعة ربما تكون خاضعة لملكيات مختلفة، وهي تقدم أسلوبا موحدا لتقديم واكتشاف والتعامل مع واستخدام الإمكانيات لتحقيق النتائج المرجوة المتوافقة مع الشروط والتوقعات المسبقة.

انتقادات بنية SOA

بعض الانتقادات ترجع إلى الخلط بين بنية SOA وخدمات الويب، فمثلا يدعي بعض النقاد أن بنية SOA تؤدي إلى إضافة طبقات XML، مما يذهب بنا إلى مسألة تحليل وتركيب لغة XML. في غياب الصيغ الثنائية أو الأصلية لنداء الإجراء البعيد RPC قد تعمل التطبيقات بشكل أبطأ وتستهلك قدرات معالجة أكبر مما يؤدي إلى زيادة التكاليف، أغلب التطبيقات تواجه هذه المشاكل ولكن يمكن تطبيق بنية SOA باستخدام تقنيات (مثل اندماج جافا التجاري وخدمة توزيع البيانات) لا تعتمد على النداءات البعيدة أو الترجمة من خلال XML، في نفس الوقت التقنيات التي ظهرت مؤخرا لتحليل لغة XML (مثل VTD/XML) والعديد من الصيغ الثنائية المتوافقة مع XMLتبشر جميعا برفع آداء SOA بشكل كبير.
تتطلب الخدمات التي تحتفظ ببيانات الحالة مشاركة السياق الخاص بالمستهلك بين مقدم الخدمة والمستهلك ويتم تضمينه أو الإشارة إليه في الرسائل المتبادلة بين المقدم والمستهلك. هذا الشرط به عيب وهو إمكانية انخفاض قدرة مقدم الخدمة على التوسع إذا أضطر للاحتفاظ بالسياق المشترك لكل مستخدم، كما أنه يؤدي إلى زيادة الارتباط بين مقدم الخدمة والمستخدم مما يزيد من صعوبة التبديل بين مقدمي الخدمات،. أخيرا بعض النقاد يشعرون أن خدمات SOA ما زالت تخضع لقيود التطبيقات التي تمثلها.
هناك قلق آخر بخصص التطور الحالي في معايير ومنتجات خدمات الويب (مثل المعاملات والأمن) بالتالي يمكن أن تأتي بنية SOA بمخاطر جديدة ما لم يتم إدارتها وتقدير ميزانيتها الإضافية واحتمال القيام بعمل إضافي لإثبات الفكرة.
بعض النقاد ينظرون إلى بنية SOA باعتبارها مجرد تطور صريح لبنيات منتشرة حاليا (مثل الواجهات المفتوحة).
أحيانا تغفل تصميمات نظام تكنولوجيا المعلومات الرغبة في تعديل الأنظمة بحرية. بعض الأنظمة – بما فيها الأنظمة التي تستخدم بنية SOA – تكتب كود ثابت لعمليات ومنتجات وخدمات المؤسسة، وبالتالي تقلل من خفة حركة خدماتها على الإنترنت وتجارتها في السوق العالمي.
تتعلق الخطوة التالية في عملية التصميم بتعريف منصة توصيل الخدمة Service Delivery Platform (SDP) وتطبيقها. في مرحلة تصميم منصة توصيل الخدمة يتم تعريف نماذج المعلومات التجارية وإدارة الهوية والمنتجات والمحتوى، والأجهزة، ومواصفات خدمة العميل ومدى خفة النظام وقدرته بالتالي على التعامل مع تطورات السوق والعملاء.

امتدادات

SOA، ويب 2.0، خدمات عبر الماسنجر، وتطبيقات المزج
ويب 2.0 – "الجيل الثاني" لنشاط الويب – يقدم ميزة قدرة الزوار على الإسهام بالمعلومات بغرض التعاون والمشاركة كأحد مزاياه الرئيسية. تستخدم تطبيقات ويب 2.0 غالبا خدمات ويب بنية ريست وتعتمد عادة على واجهات أجاكس وتستغل نقابة الويب والمدونات ومستودعات ويكي. بالرغم أنه لا يوجد معايير لويب 2.0 ولكن مواصفاته تشكلت بالبناء على البنية الموجودة لخادم الويب وباستخدام الخدمات. بالتالي يمكن القول أن ويب 2.0 يشتمل على بعض مواصفات بنية SOA..
كما ينظر بعض المتخصصين إلى تطبيقات المزج (تهجين تطبيقات الويب) باعتبارها تطبيقات ويب 2.0. تم تحريف مصطلح "تطبيقات المزج التجارية" ليشير إلى تطبيقات الويب التي تدمج محتوى من أكثر من مصدر في تجربة عميل متكاملة تشترك في العديد من مواصفاتها مع التطبيقات الخدمية التجارية، وهي تطبيقات مكونة من خدمات في صيغة إعلانية. هناك حوار دائر حول "تصادم ويب 2.0 وتطبيقات المزج وبنية SOA" والبعض يقول أن تطبيقات ويب 2.0 هي تحقيق لتطبيقات SOA المركبة والتجارية.

ويب 2.0

اخترع تيم أوريلي مصطلح "ويب 2.0 " لوصف مجموعة ملحوظة سريعة النمو من تطبيقات الويب. أحد المواضيع التي تلقت تغطية مكثفة هو العلاقة بين ويب 2.0 والبنية الخدمية (SOA)، تعتبر بنية SOA فلسفة تغليف منطق التطبيقات بداخل خدمات بواجهة معرفة بشكل موحد واتاحة هذه الخدمات للاستخدام العام من خلال أساليب الاكتشاف. لقد شجعت مفاهيم إخفاء التعقيد وإعادة الاستخدام والارتباط الحر بين الخدمات الباحثين على البحث عن التفاصيل المتشابهة بين الفلسفتين، بنية SOA وويب 2.0 وتطبيقاتهم. البعض يقول أن لكل منهما عناصر مختلفة تماما بالتالي لا يمكن اعتبارهم "فلسفتين متوازيتين"، بينما يرى البعض أن كلا المفهومين متكاملين وير ويب 2.0 كنموذج أشمل من SOA..
تخدم فلسفتي ويب 2.0 وSOA احتياجات مختلفة للمستخدمين بالتالي تبدو الاختلافات في التصميم والتقنيات المستخدمة في التطبيقات الحقيقية، ولكن من عام 2008 بينت حالات الاستخدام إمكانية دمج تقنيات ومبادئ كلا الفلسفتين.
في عالم إنترنت الخدمات كل الأشخاص والآلات والمنتجات باستطاعتها استخدام البنية التحتية لشبكة الغد، بالتالي سيقدم الإنترنت خدمات في كل نواحي الحياة والمجالات التجارية مثل التأمين الافتراضي والخدمات البنكية عبر الإنترنت والموسيقى إلخ. ستتطلب هذه الخدمات بنية تحتية معقدة وتشمل منصات توصيل الخدمة التي ستوفق بين العرض والطلب. وحدات بناء إنترنت الخدمات تشمل SOA وويب 2.0 ودلائل تقنية ونماذج تجارية مبتكرة أيضا وأساليب الابتكار المجتمعي المنظم.
برغم أن أوراكل تقول أن جارتنر قد اخترع مصطلخا جديدا، تحليل جارتنر يقول أنهم يسمونه بنية SOA المتقدمة ويشيرون إليها باسم "SOA 2.0. أغلب شركات البرمجيات الوسيطة (مثل ريد هات وويب ميثودز وتيبكو سوفتوير وآي بي إم وصن ميكروسيستمز وأوراكل) كانت لديها شكل من أشكال SOA 2.0 على مدى سنين.

الجهاز العصبي الرقمي

وصفت تطبيقات SOA بأنها تمثل جزء من رؤيا أكبر تعرف باسم الجهاز العصبي الرقمي أو مشروع اللا تأخير.

بنية SOA نحيفة

أحد أساليب تطوير بنية SOA تستغل مبادئ تطوير البرمجيات النحيفة.