بنية موجهة نحو الخدمات

في هندسة البرمجيات ، تُعدّ بنية الخدمات الموجهة ( SOA ) نمطًا معماريًا يركز على الخدمات المنفصلة بدلًا من التصميم المتجانس . [ 1 ] تُعتبر SOA خيارًا مناسبًا لتكامل الأنظمة . [ 2 ] ونتيجةً لذلك، تُطبّق أيضًا في مجال تصميم البرمجيات، حيث تُقدّم الخدمات للمكونات الأخرى من خلال مكونات التطبيق ، عبر بروتوكول اتصال على الشبكة. الخدمة هي وحدة وظيفية منفصلة يمكن الوصول إليها عن بُعد والتعامل معها وتحديثها بشكل مستقل، مثل استرجاع كشف حساب بطاقة ائتمان عبر الإنترنت. كما تهدف SOA إلى أن تكون مستقلة عن الموردين والمنتجات والتقنيات. [ 3 ]

التوجه نحو الخدمة هو طريقة تفكير من حيث الخدمات والتنمية القائمة على الخدمات ونتائج الخدمات. [ 1 ]

للخدمة أربع خصائص وفقًا لأحد تعريفات SOA العديدة: [ 4 ]

  1. وهو يمثل منطقياً نشاطاً تجارياً قابلاً للتكرار وله نتيجة محددة.
  2. إنه مكتفٍ ذاتيًا.
  3. إنه صندوق أسود بالنسبة للمستهلكين، مما يعني أن المستهلك ليس مضطراً إلى أن يكون على دراية بآليات عمل الخدمة الداخلية.
  4. قد يتألف من خدمات أخرى. [ 5 ]

يمكن استخدام خدمات مختلفة معًا كشبكة خدمات لتوفير وظائف تطبيق برمجي كبير ، [ 6 ] وهو مبدأ تشترك فيه بنية الخدمات الموجهة (SOA) مع البرمجة المعيارية . تدمج بنية الخدمات الموجهة مكونات برمجية موزعة، تتم صيانتها ونشرها بشكل منفصل. وهي مدعومة بتقنيات ومعايير تُسهّل تواصل المكونات وتعاونها عبر الشبكة، وخاصة عبر شبكة بروتوكول الإنترنت (IP).

ترتبط بنية الخدمات الموجهة (SOA) بمفهوم واجهة برمجة التطبيقات (API )، وهي واجهة أو بروتوكول اتصال بين أجزاء مختلفة من برنامج حاسوبي، تهدف إلى تبسيط تنفيذ البرمجيات وصيانتها. يمكن اعتبار واجهة برمجة التطبيقات بمثابة الخدمة، وبنية الخدمات الموجهة بمثابة البنية التي تسمح لهذه الخدمة بالعمل.

تجدر الإشارة إلى أنه لا ينبغي الخلط بين بنية الخدمات الموجهة وبنية الخدمات القائمة على الخدمات، فهما نمطان معماريان مختلفان. [ 7 ]

ملخص

في بنية الخدمات الموجهة (SOA)، تستخدم الخدمات بروتوكولات تصف كيفية تمرير الرسائل وتحليلها باستخدام بيانات وصفية . تصف هذه البيانات الوصفية الخصائص الوظيفية للخدمة وخصائص جودة الخدمة. تهدف بنية الخدمات الموجهة إلى تمكين المستخدمين من دمج أجزاء كبيرة من الوظائف لتكوين تطبيقات مبنية بالكامل من خدمات موجودة، ودمجها بطريقة مخصصة. تقدم الخدمة واجهة بسيطة للمستخدم تُخفي التعقيدات الكامنة، وتعمل كصندوق أسود. كما يمكن للمستخدمين الوصول إلى هذه الخدمات المستقلة دون أي معرفة بتنفيذها الداخلي. [ 8 ]

تعريف المفاهيم

يشجع مفهوم "التوجه الخدمي " (SOA) على تقليل الترابط بين الخدمات. يفصل هذا المفهوم الوظائف إلى وحدات متميزة، أو خدمات، [ 9 ] يتيحها المطورون عبر الشبكة لتمكين المستخدمين من دمجها وإعادة استخدامها في تطوير التطبيقات. تتواصل هذه الخدمات ومستخدموها فيما بينهم عبر تبادل البيانات بتنسيق مشترك ومحدد، أو من خلال تنسيق نشاط بين خدمتين أو أكثر. [ 10 ]

يمكن اعتبار بنية الخدمات الموجهة (SOA) جزءًا من سلسلة متصلة تمتد من المفهوم الأقدم للحوسبة الموزعة [ 9 ] [ 11 ] والبرمجة المعيارية ، مرورًا ببنية الخدمات الموجهة، وصولًا إلى ممارسات تطبيقات الدمج ، والبرمجيات كخدمة (SaaS) ، والحوسبة السحابية (التي يعتبرها البعض نتاجًا لبنية الخدمات الموجهة). [ 12 ]

مبادئ

لا توجد معايير صناعية محددة تتعلق بالتكوين الدقيق لبنية الخدمات الموجهة، على الرغم من أن العديد من المصادر الصناعية قد نشرت مبادئها الخاصة. تتضمن بعض هذه المبادئ [ 13 ] [ 14 ] [ 15 ] ما يلي:

عقد خدمة موحد [ 16 ]
تلتزم الخدمات باتفاقية اتصالات قياسية، كما هو محدد بشكل جماعي من خلال وثيقة أو أكثر من وثائق وصف الخدمة ضمن مجموعة معينة من الخدمات.
استقلالية مرجع الخدمة (أحد جوانب الترابط غير المحكم)
يتم تقليل العلاقة بين الخدمات إلى الحد الأدنى لدرجة أنها لا تدرك وجودها إلا فقط.
شفافية موقع الخدمة (أحد جوانب الربط غير المحكم)
يمكن استدعاء الخدمات من أي مكان داخل الشبكة التي تتواجد فيها بغض النظر عن مكان وجودها.
طول عمر الخدمة
ينبغي تصميم الخدمات بحيث تدوم طويلًا. وحيثما أمكن، يجب تجنب إجبار المستهلكين على تغيير خدماتهم إذا لم يكونوا بحاجة إلى ميزات جديدة؛ فإذا اتصلت بخدمة اليوم، يجب أن تتمكن من الاتصال بالخدمة نفسها غدًا.
تجريد الخدمة
تعمل هذه الخدمات كصناديق سوداء، أي أن منطقها الداخلي مخفي عن المستهلكين.
استقلالية الخدمة
الخدمات مستقلة وتتحكم في الوظائف التي تغلفها، من منظور وقت التصميم ووقت التشغيل.
خدمة انعدام الجنسية
الخدمات عديمة الحالة، أي أنها إما تعيد القيمة المطلوبة أو تعطي استثناءً، مما يقلل من استخدام الموارد.
دقة الخدمة
مبدأ يضمن أن تكون الخدمات ذات حجم ونطاق مناسبين. يجب أن تكون الوظائف التي توفرها الخدمة للمستخدم ذات صلة.
إعادة ضبط الخدمة
يتم تجزئة الخدمات أو دمجها (تطبيعها) لتقليل التكرار. في بعض الحالات، قد لا يتم ذلك. هذه هي الحالات التي تتطلب تحسين الأداء والوصول والتجميع. [ 17 ]
قابلية تكوين الخدمة
يمكن استخدام الخدمات لتكوين خدمات أخرى.
اكتشاف الخدمات
تُستكمل الخدمات ببيانات وصفية تواصلية يمكن من خلالها اكتشافها وتفسيرها بشكل فعال.
إمكانية إعادة استخدام الخدمة
تم تقسيم المنطق إلى خدمات متنوعة، وذلك لتعزيز إعادة استخدام التعليمات البرمجية.
تغليف الخدمة
قد يتم تضمين العديد من الخدمات التي لم يتم التخطيط لها في البداية ضمن بنية الخدمات الموجهة (SOA) أو تصبح جزءًا منها.

أنماط

يمكن لكل وحدة بناء في بنية الخدمات الموجهة (SOA) أن تلعب أيًا من الأدوار الثلاثة التالية:

مقدم الخدمة
يقوم النظام بإنشاء خدمة ويب ويُدخل معلوماتها في سجل الخدمات. ويناقش كل مزود خدمة العديد من الجوانب، مثل اختيار الخدمة الأنسب، وتحديد أولوياتها: الأمان أم سهولة الوصول، وسعر الخدمة، وغيرها . كما يتعين على المزود تحديد فئة الخدمة التي يجب إدراجها ضمن خدمات الوساطة [ 18 ] ، ونوع اتفاقيات الشراكة التجارية المطلوبة لاستخدام الخدمة.
وسيط الخدمة، أو سجل الخدمة، أو مستودع الخدمة
تتمثل وظيفتها الرئيسية في إتاحة معلومات حول خدمة الويب لأي مستخدم محتمل. ويُحدد نطاق عمل الوسيط من يقوم بتنفيذه. تتوفر الوسطاء العامة في كل مكان، بينما تقتصر الوسطاء الخاصة على عدد محدود من المستخدمين. وكان UDDI محاولة مبكرة، لم يعد يُدعم بشكل فعال، لتوفير اكتشاف خدمات الويب .
طالب الخدمة/المستهلك
يحدد النظام المدخلات في سجل الوسطاء باستخدام عمليات بحث متنوعة، ثم يرتبط بمزود الخدمة لاستدعاء إحدى خدمات الويب الخاصة به. أيًا كانت الخدمة التي يحتاجها مستهلكو الخدمة، عليهم إدخالها إلى الوسطاء، وربطها بالخدمة المعنية، ثم استخدامها. ويمكنهم الوصول إلى خدمات متعددة إذا كانت الخدمة توفر أكثر من خدمة.

تخضع علاقة المستهلك بالمزود لعقد خدمة موحد ، [ 19 ] والذي يتضمن جزءًا تجاريًا وجزءًا وظيفيًا وجزءًا تقنيًا.

تتضمن أنماط تكوين الخدمات نمطين معماريين رئيسيين رفيعي المستوى: التنسيق والتنظيم . أما أنماط تكامل المؤسسات منخفضة المستوى، والتي لا ترتبط بنمط معماري محدد، فتظل ذات صلة ومؤهلة في تصميم بنية الخدمات الموجهة (SOA). [ 20 ] [ 21 ] [ 22 ]

أساليب التنفيذ

يمكن تطبيق بنية الخدمات الموجهة باستخدام خدمات الويب أو الخدمات المصغرة . [ 23 ] ويتم ذلك لجعل الوحدات الوظيفية الأساسية متاحة عبر بروتوكولات الإنترنت القياسية، بغض النظر عن المنصات ولغات البرمجة. ويمكن لهذه الخدمات أن تمثل تطبيقات جديدة أو مجرد أغلفة لأنظمة قديمة قائمة لجعلها متوافقة مع الشبكة. [ 24 ]

يلجأ مطورو تطبيقات الويب عادةً إلى استخدام معايير خدمات الويب لبناء بنية الخدمات الموجهة (SOA). ومن الأمثلة على ذلك بروتوكول SOAP ، الذي حظي بقبول واسع في هذا المجال بعد توصية اتحاد شبكة الويب العالمية ( W3C ) بإصدار النسخة 1.2 منه عام 2003. توفر هذه المعايير (المعروفة أيضًا بمواصفات خدمات الويب ) قابلية تشغيل محسّنة وحماية من الاعتماد على برامج الموردين الاحتكارية. مع ذلك، يمكن أيضًا تطبيق بنية الخدمات الموجهة باستخدام أي تقنية أخرى قائمة على الخدمات، مثل Jini و CORBA ومحرك اتصالات الإنترنت (IEC ) و REST و gRPC .

يمكن أن تعمل البنى بشكل مستقل عن تقنيات محددة، وبالتالي يمكن تنفيذها باستخدام مجموعة واسعة من التقنيات، بما في ذلك:

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

تتكامل هذه الخدمات فيما بينها استنادًا إلى تعريف رسمي (أو عقد، مثل WSDL) مستقل عن المنصة الأساسية ولغة البرمجة. ويخفي تعريف الواجهة تفاصيل تنفيذ الخدمة الخاصة بكل لغة. وبالتالي، يمكن للأنظمة القائمة على بنية الخدمات الموجهة (SOA) أن تعمل بشكل مستقل عن تقنيات ومنصات التطوير (مثل Java و.NET وغيرها). فعلى سبيل المثال، يمكن لتطبيق مركب مشترك (أو عميل) استهلاك الخدمات المكتوبة بلغة C# التي تعمل على منصات .NET، والخدمات المكتوبة بلغة Java التي تعمل على منصات Java EE . كما يمكن للتطبيقات التي تعمل على أي من المنصتين استهلاك الخدمات التي تعمل على المنصة الأخرى كخدمات ويب تُسهّل إعادة الاستخدام. ويمكن للبيئات المُدارة أيضًا تغليف أنظمة COBOL القديمة وعرضها كخدمات برمجية . [ 26 ]

تعمل لغات البرمجة عالية المستوى مثل BPEL والمواصفات مثل WS-CDL و WS-Coordination على توسيع مفهوم الخدمة من خلال توفير طريقة لتحديد ودعم تنسيق الخدمات الدقيقة في خدمات أعمال أكثر عمومية، والتي يمكن للمهندسين المعماريين بدورهم دمجها في سير العمل وعمليات الأعمال المنفذة في التطبيقات أو البوابات المركبة .

يُعدّ نمذجة الخدمات الموجهة إطار عمل ضمن بنية الخدمات الموجهة (SOA) يُحدد مختلف التخصصات التي تُرشد ممارسي SOA في تصور وتحليل وتصميم وبناء أصولهم الموجهة نحو الخدمات. يوفر إطار عمل نمذجة الخدمات الموجهة (SOMF) لغة نمذجة وهيكل عمل أو "خريطة" تُصوّر المكونات المختلفة التي تُساهم في نجاح منهجية نمذجة الخدمات الموجهة. كما يُوضح العناصر الرئيسية التي تُحدد جوانب "ما يجب فعله" في مخطط تطوير الخدمة. يُمكّن هذا النموذج الممارسين من وضع خطة مشروع وتحديد معالم مبادرة موجهة نحو الخدمات. يوفر SOMF أيضًا تدوين نمذجة موحدًا لضمان التوافق بين مؤسسات الأعمال وتقنية المعلومات.

عناصر SOA، بقلم ديرك كرافزيج، وكارل بانك، وديرك سلاما [ 27 ]
نموذج SOA الفوقي، مجموعة لينثيكوم، 2007

الفوائد التنظيمية

يعتقد بعض مهندسي المؤسسات أن بنية الخدمات الموجهة (SOA) تُساعد الشركات على الاستجابة بشكل أسرع وأكثر فعالية من حيث التكلفة لظروف السوق المتغيرة. [ 28 ] يُشجع هذا النمط من البنية على إعادة الاستخدام على المستوى الكلي (الخدمات) بدلاً من المستوى الجزئي (الفئات). كما يُمكنه تبسيط الربط مع أصول تكنولوجيا المعلومات القديمة واستخدامها.

مع بنية الخدمات الموجهة (SOA)، تكمن الفكرة في قدرة المؤسسة على النظر إلى المشكلة نظرةً شاملة. تتمتع الشركة بمزيد من التحكم العام. نظريًا، لن يكون هناك عدد كبير من المطورين يستخدمون أي أدوات تناسبهم، بل سيبرمجون وفقًا لمعيار محدد داخل الشركة. كما يمكنهم تطوير بنية خدمات موجهة على مستوى المؤسسة تُجسد بنية تحتية موجهة نحو الأعمال. وقد شُبّهت بنية الخدمات الموجهة بنظام الطرق السريعة الذي يوفر الكفاءة لسائقي السيارات. الفكرة هي أنه لو كان لدى الجميع سيارة، ولكن لم تكن هناك طرق سريعة، لكانت الأمور محدودة وغير منظمة، في أي محاولة للوصول إلى أي مكان بسرعة أو بكفاءة. يقول مايكل ليبو، نائب رئيس خدمات الويب في شركة IBM، إن بنية الخدمات الموجهة "تبني الطرق السريعة". [ 29 ]

من بعض النواحي، يمكن اعتبار بنية الخدمات الموجهة (SOA) تطورًا معماريًا أكثر منها ثورة. فهي تستوعب العديد من أفضل ممارسات بنى البرمجيات السابقة. ففي أنظمة الاتصالات، على سبيل المثال، لم يشهد تطوير الحلول التي تستخدم روابط ثابتة للتواصل مع الأجهزة الأخرى في الشبكة تطورًا يُذكر. ومن خلال تبني نهج SOA، تستطيع هذه الأنظمة التأكيد على أهمية الواجهات المحددة جيدًا والقابلة للتشغيل البيني بدرجة عالية. ومن بين النظريات السابقة لـ SOA هندسة البرمجيات القائمة على المكونات، وتحليل وتصميم الكائنات الموجهة (OOAD) للكائنات البعيدة، كما هو الحال في CORBA .

تتألف الخدمة من وحدة وظيفية مستقلة لا تتوفر إلا عبر واجهة محددة رسمياً. قد تكون الخدمات بمثابة "مؤسسات صغيرة" يسهل إنتاجها وتطويرها، أو "شركات عملاقة" تُبنى على أساس العمل المنسق لخدمات فرعية.

تشمل أسباب التعامل مع تنفيذ الخدمات كمشاريع منفصلة عن المشاريع الأكبر ما يلي:

  1. يُعزز الفصل مفهوم إمكانية تقديم الخدمات بسرعة وبشكل مستقل عن المشاريع الأكبر والأبطأ وتيرةً في المؤسسة. تبدأ المؤسسة بفهم الأنظمة وواجهات المستخدم المبسطة التي تستدعي الخدمات، مما يدعم المرونة . أي أنه يُعزز ابتكارات الأعمال ويُسرّع طرح المنتجات في السوق. [ 30 ]
  2. يُعزز الفصل بين الخدمات والمشاريع المستهلكة لها. وهذا يُشجع على التصميم الجيد، حيث يتم تصميم الخدمة دون معرفة من هم مستهلكوها.
  3. لا تُدمج وثائق الخدمة ونتائج اختباراتها ضمن تفاصيل المشروع الأكبر. وهذا أمرٌ بالغ الأهمية عند الحاجة إلى إعادة استخدام الخدمة لاحقاً.

تعد بنية الخدمات الموجهة (SOA) بتبسيط عملية الاختبار بشكل غير مباشر. فالخدمات مستقلة، عديمة الحالة، ذات واجهات موثقة بالكامل، ومنفصلة عن الجوانب الشاملة للتنفيذ. إذا كانت المؤسسة تمتلك بيانات اختبار محددة بشكل مناسب، فسيتم إنشاء نموذج أولي (Stub) يتفاعل مع بيانات الاختبار عند إنشاء الخدمة. كما يتم تسجيل مجموعة كاملة من اختبارات الانحدار، والنصوص البرمجية، والبيانات، والاستجابات الخاصة بالخدمة. يمكن اختبار الخدمة كـ"صندوق أسود" باستخدام النماذج الأولية الموجودة التي تتوافق مع الخدمات التي تستدعيها. يمكن إنشاء بيئات اختبار حيث تكون الخدمات الأساسية والخدمات خارج نطاق الاختبار نماذج أولية، بينما يمثل باقي الشبكة عمليات نشر اختبارية للخدمات الكاملة. وبما أن كل واجهة موثقة بالكامل مع مجموعة كاملة من وثائق اختبار الانحدار الخاصة بها، يصبح من السهل تحديد المشكلات في خدمات الاختبار. يتطور الاختبار ليقتصر على التحقق من أن خدمة الاختبار تعمل وفقًا لوثائقها، ويكشف عن أي ثغرات في الوثائق وحالات الاختبار لجميع الخدمات داخل البيئة. إدارة حالة بيانات الخدمات المتكررة هي التعقيد الوحيد.

قد تكون الأمثلة مفيدة في توثيق خدمة ما إلى المستوى الذي تصبح فيه ذات فائدة. يوفر توثيق بعض واجهات برمجة التطبيقات (APIs) ضمن عملية مجتمع جافا أمثلة جيدة. ولأن هذه الأمثلة شاملة، فإن الموظفين عادةً ما يستخدمون فقط الأجزاء المهمة منها. يُعد ملف 'ossjsa.pdf' الموجود ضمن JSR-89 مثالًا على هذا النوع من الملفات. [ 31 ]

التطبيقات

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

  • شبكة المعلوماتية الطبية الحيوية للسرطان (caBIG) : مبادرة أطلقها المعهد الوطني الأمريكي للسرطان، استخدمت بنية الخدمات الموجهة (SOA) لربط أدوات المعلوماتية الحيوية والبيانات السريرية. ومن خلال تغليف موارد طبية متنوعة في خدمات موحدة، أتاحت هذه المبادرة لباحثي السرطان في مختلف المؤسسات تبادل البيانات وتحليلها ضمن شبكة موحدة. [ 32 ]
  • المرصد الافتراضي (VO) : مجموعة من أرشيفات البيانات وأدوات البرمجيات المتوافقة في علم الفلك. يستخدم مبادئ بنية الخدمات الموجهة (SOA) لربط قواعد البيانات الفلكية المتنوعة وأدوات التحليل الموزعة عبر المراصد العالمية، مما يسمح للباحثين بالاستعلام عن البيانات ومعالجتها بسلاسة كما لو كانت نظامًا واحدًا شفافًا. [ 33 ]
  • شبكة اللغات : منصة خدمات متعددة اللغات تستخدم بنية الخدمات الموجهة (SOA) لربط موارد لغوية متباينة، مثل محركات الترجمة الآلية والقواميس الإلكترونية، الموزعة عالميًا. ومن خلال تغليف هذه الموارد غير المتجانسة كخدمات ويب موحدة، تُمكّن المنصة المستخدمين والمجتمعات من إنشاء أدوات تواصل بين الثقافات مخصصة. [ 34 ]

نقد

تم الخلط بين بنية الخدمات الموجهة (SOA) وخدمات الويب ؛ [ 35 ] إلا أن خدمات الويب ليست سوى خيار واحد لتطبيق الأنماط التي تشكل بنية الخدمات الموجهة. في غياب الأشكال الأصلية أو الثنائية لاستدعاء الإجراءات عن بُعد (RPC)، قد تعمل التطبيقات ببطء أكبر وتتطلب قدرة معالجة أعلى، مما يزيد التكاليف. تتحمل معظم التطبيقات هذه التكاليف الإضافية، ولكن يمكن تطبيق بنية الخدمات الموجهة باستخدام تقنيات (مثل Java Business Integration (JBI) و Windows Communication Foundation (WCF) وخدمة توزيع البيانات (DDS)) لا تعتمد على استدعاء الإجراءات عن بُعد أو الترجمة عبر XML أو JSON. في الوقت نفسه، تعد تقنيات تحليل XML مفتوحة المصدر الناشئة (مثل VTD-XML ) والعديد من التنسيقات الثنائية المتوافقة مع XML بتحسين أداء بنية الخدمات الموجهة بشكل كبير. [ 36 ] [ 37 ] [ 38 ]

تتطلب الخدمات ذات الحالة أن يتشارك كل من المستهلك والمزود نفس السياق الخاص بالمستهلك، والذي يُضمّن في الرسائل المتبادلة بينهما أو يُشار إليه من خلالها. يُعاب على هذا القيد أنه قد يُقلل من قابلية التوسع الإجمالية لمزود الخدمة إذا كان عليه الاحتفاظ بالسياق المشترك لكل مستهلك. كما أنه يزيد من الترابط بين مزود الخدمة والمستهلك، ويُصعّب عملية تغيير مزود الخدمة. [ 39 ] في النهاية، يرى بعض النقاد أن خدمات بنية الخدمات الموجهة (SOA) لا تزال مقيدة للغاية بالتطبيقات التي تُمثلها. [ 40 ]

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

من المشاكل الرئيسية الأخرى التي تواجه بنية الخدمات الموجهة (SOA) غياب إطار اختبار موحد. فلا توجد أدوات توفر الميزات المطلوبة لاختبار هذه الخدمات في بنية الخدمات الموجهة. ومن أهم أسباب هذه الصعوبة ما يلي: [ 42 ]

  • عدم تجانس الحل وتعقيده.
  • مجموعة ضخمة من تركيبات الاختبار نتيجة لتكامل الخدمات المستقلة.
  • إدراج خدمات من موردين مختلفين ومتنافسين.
  • تتغير المنصة باستمرار نتيجة لتوافر ميزات وخدمات جديدة.

الإضافات والأنواع المختلفة

بنية تعتمد على الأحداث

واجهات برمجة التطبيقات

واجهات برمجة التطبيقات (APIs) هي الأطر التي يمكن للمطورين من خلالها التفاعل مع تطبيق الويب.

ويب 2.0

صاغ تيم أورايلي مصطلح " ويب 2.0 " لوصف مجموعة متنامية بسرعة من التطبيقات القائمة على الويب. [ 43 ] ومن المواضيع التي حظيت بتغطية واسعة العلاقة بين ويب 2.0 وبنى الخدمات الموجهة.

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

تخدم فلسفات الويب 2.0 وهندسة الخدمات الموجهة (SOA) احتياجات مستخدمين مختلفة، وبالتالي تُظهر اختلافات فيما يتعلق بالتصميم والتقنيات المستخدمة في التطبيقات العملية. ومع ذلك، اعتبارًا من عام 2008أظهرت حالات الاستخدام إمكانات الجمع بين تقنيات ومبادئ كل من Web 2.0 و SOA. [ 44 ]

الخدمات المصغرة

تُعدّ الخدمات المصغّرة تفسيرًا حديثًا لهندسة الخدمات الموجهة، وتُستخدم لبناء أنظمة برمجية موزعة . في هندسة الخدمات المصغّرة [ 45 ] ، تُمثّل الخدمات عمليات تتواصل فيما بينها عبر الشبكة لتحقيق هدف مُحدّد. تستخدم هذه الخدمات بروتوكولات مستقلة عن التقنية [ 46 ] ، مما يُسهّل اختيار اللغة والأطر البرمجية، ويجعل هذا الاختيار شأنًا داخليًا خاصًا بالخدمة. تُمثّل الخدمات المصغّرة نهجًا جديدًا لتحقيق وتنفيذ هندسة الخدمات الموجهة، وقد اكتسبت شعبية واسعة منذ عام 2014 (وبعد ظهور منهجية DevOps )، كما تُركّز على النشر المستمر وممارسات التطوير الرشيقة الأخرى [ 47 ] .

لا يوجد تعريف موحد متفق عليه للخدمات المصغرة. ويمكن إيجاد الخصائص والمبادئ التالية في المراجع:

  • واجهات دقيقة (للخدمات القابلة للنشر بشكل مستقل)،
  • التطوير الموجه نحو الأعمال (مثل التصميم الموجه نحو المجال
  • بنى تطبيقات السحابة المثالية،
  • البرمجة متعددة اللغات والمثابرة،
  • نشر الحاويات الخفيفة الوزن،
  • التسليم المستمر اللامركزي، و
  • DevOps مع مراقبة شاملة للخدمات.

بنى موجهة نحو الخدمات للتطبيقات التفاعلية

تستخدم التطبيقات التفاعلية التي تتطلب استجابة فورية، مثل تطبيقات ثلاثية الأبعاد تفاعلية منخفضة زمن الاستجابة، بنىً موجهة نحو الخدمات مصممة خصيصًا لتلبية احتياجات هذا النوع من التطبيقات. وتشمل هذه البنى، على سبيل المثال، الحوسبة والاتصالات الموزعة المحسّنة منخفضة زمن الاستجابة، بالإضافة إلى إدارة الموارد والمثيلات. [ 48 ] [ 49 ] [ 50 ]

انظر أيضاً

مراجع

  1. 1 2 "كتاب مصادر SOA - ما هي SOA؟" . collaboration.opengroup.org . تم الاطلاع عليه في 30 مارس 2021 .
  2. أساسيات هندسة البرمجيات: منهج هندسي . دار نشر أورايلي ميديا. 2020. رقم ISBN 978-1492043454.
  3. "الفصل الأول: بنية الخدمات الموجهة (SOA)" . msdn.microsoft.com . مؤرشف من الأصل في 7 يوليو 2017. تم الاطلاع عليه في 21 سبتمبر 2016 .
  4. "معايير بنية الخدمات الموجهة - مجموعة Open Group" . www.opengroup.org .
  5. "ما هي هندسة الخدمات الموجهة؟" . www.opengroup.org . مؤرشف من الأصل بتاريخ 19 أغسطس 2016. تم الاطلاع عليه بتاريخ 21 سبتمبر 2016 .
  6. فيلت، أنتوني ت. (2010). الحوسبة السحابية: منهج عملي . ماكجرو هيل. ISBN 978-0-07-162694-1.
  7. أساسيات هندسة البرمجيات: منهج هندسي . دار نشر أورايلي ميديا. 2020. رقم ISBN 978-1492043454.
  8. "الانتقال إلى بنية موجهة نحو الخدمات، الجزء الأول" . 9 ديسمبر 2008. مؤرشف من الأصل في 9 ديسمبر 2008. تم الاطلاع عليه في 21 سبتمبر 2016 .{{cite web}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط )
  9. 1 2 مايكل بيل (2008). "مقدمة في نمذجة الخدمات الموجهة". نمذجة الخدمات الموجهة: تحليل الخدمات، والتصميم، والهندسة المعمارية . وايلي وأولاده. ص 3. ISBN  978-0-470-14111-3.
  10. ↑ مايكل بيل (2010). أنماط نمذجة بنية الخدمات الموجهة لاكتشاف وتحليل الخدمات . وايلي وأولاده. ص 390. ISBN  978-0-470-48197-4.
  11. توماس إيرل (يونيو 2005). حول المبادئ . Serviceorientation.org
  12. مدونة استراتيجيات منصات التطبيقات: انتهى عصر هندسة الخدمات الموجهة؛ عاشت الخدمات . Apsblog.burtongroup.com. 5 يناير 2009. مؤرشف من الأصل في 15 يناير 2009. تم الاطلاع عليه في 13 أغسطس 2012 .
  13. إيفون بالزر، تحسين خطط مشروع SOA الخاص بك ، آي بي إم ، 16 يوليو 2004
  14. فريق مؤسسة اتصالات مايكروسوفت ويندوز (2012). "مبادئ التصميم الموجه نحو الخدمات" . msdn.microsoft.com . تم الاطلاع عليه في 3 سبتمبر 2012 .
  15. مبادئ توماس إيرل من شركة SOA Systems Inc.: ثمانية مبادئ محددة لتوجه الخدمة
  16. "4.4 إرشادات استخدام تقنيات عقود خدمات الويب - بنية عقد خدمة الويب" . InformIT . 11 يونيو 2021. تم الاطلاع عليه في 9 سبتمبر 2021 .
  17. توني شان (2004). "بناء منصة مصرفية إلكترونية موجهة نحو الخدمات". المؤتمر الدولي لهندسة الخدمات الحاسوبية، 2004. (SCC 2004). وقائع المؤتمر. 2004. الصفحات 237-244 . doi : 10.1109/SCC.2004.1358011 . ISBN  978-0-7695-2225-8. S2CID 13156128 . 2004
  18. دوان، يوكونغ؛ ناريندرا، نانجانغود؛ دو، وينكاي؛ وانغ، يونغتشي؛ تشو، نيانجون (2014). "استكشاف وساطة خدمات الحوسبة السحابية من منظور واجهة المستخدم". المؤتمر الدولي لخدمات الويب IEEE لعام 2014. IEEE . الصفحات 329-336 . doi : 10.1109/ICWS.2014.55 . ISBN  978-1-4799-5054-6. S2CID 17957063 . 
  19. دوان، يوكونغ (2012). "دراسة استقصائية حول عقود الخدمات". المؤتمر الدولي الثالث عشر لجمعية علوم الحاسوب التطبيقية (ACIS) لعام 2012 حول هندسة البرمجيات والذكاء الاصطناعي والشبكات والحوسبة المتوازية/الموزعة . معهد مهندسي الكهرباء والإلكترونيات (IEEE ). الصفحات 805-810 . doi : 10.1109/SNPD.2012.22 . ISBN  978-1-4673-2120-4. S2CID 1837914 . 
  20. أولاف زيمرمان، سيزار باوتاسو، غريغور هوب، بوبي وولف (2016). "عقد من أنماط تكامل المؤسسات" . مجلة IEEE للبرمجيات . 33 (1): 13-19 . doi : 10.1109/MS.2016.11 .{{cite journal}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط )
  21. روتم-غال-أوز، أرنون (2012). أنماط SOA . منشورات مانينغ. ISBN 978-1933988269.
  22. يوليش، كلاوس؛ سوتر، كريستوف؛ فويتالا، توماس؛ زيمرمان، أولاف (2011). "الامتثال بالتصميم - سد الفجوة بين المدققين ومهندسي تقنية المعلومات" (ملف PDF) . الحوسبة والأمن . 30 ( 6-7 ): 410-426 . CiteSeerX 10.1.1.390.3652 . doi : 10.1016/j.cose.2011.03.005 . 
  23. ^ Brandner، M.، Craes، M.، Oellermann، F.، Zimmermann، O.، الهندسة المعمارية الموجهة لخدمات الويب في الإنتاج في الصناعة المالية، Informatik-Spektrum 02/2004، Springer-Verlag، 2004
  24. "www.ibm.com" . شركة آي بي إم . تم الاطلاع عليه بتاريخ 10 سبتمبر 2016 .
  25. ^ “إصدار SOAP 1.2 の公開について (W3C 勧告)” (باللغة اليابانية). W3.org. 24 يونيو 2003 . تم الاسترجاع في 13 آب (أغسطس) 2012 .
  26. أوكيشيما، هاروهيرو (2006). "دراسة حالة لهندسة النظام التي تستخدم أصول COBOL"( PDF) .
  27. بنية الخدمات الموجهة للمؤسسات . برنتيس هول، 2005
  28. كريستوفر كوتش، مخطط جديد للمؤسسة، مؤرشف في 16 يناير 2009، في أرشيف الإنترنت ، مجلة CIO ، 1 مارس 2005
  29. إليزابيث ميلارد (يناير 2005). "بناء عملية أفضل". مستخدم الكمبيوتر . الصفحة 20.
  30. برايان زيمرلي (11 نوفمبر 2009) فوائد بنية الخدمات الموجهة للأعمال ، جامعة العلوم التطبيقية في شمال غرب سويسرا، كلية إدارة الأعمال
  31. "JSR-000089 مواصفات واجهة برمجة تطبيقات تفعيل خدمة OSS، الإصدار النهائي 1.0" . 26 يوليو 2011. مؤرشف من الأصل في 26 يوليو 2011. تم الاطلاع عليه في 18 مايو 2024 .
  32. سالتز، جويل؛ أوستر، سكوت؛ هاستينغز، شانون؛ لانجيلا، ستيفن؛ كورك، تحسين (2006). "caGrid: تصميم وتنفيذ البنية الأساسية لشبكة المعلوماتية الطبية الحيوية للسرطان". المعلوماتية الحيوية . 22 (15): 1910-1916 . doi : 10.1093/bioinformatics/btl324 . PMID 16809386 . 
  33. كوين، بيتر جيه؛ بارنز، ديفيد جي؛ تشاباي، إستفان؛ كوي، تشنتشو؛ جينوفا، فرانسواز؛ هانيش، روبرت جيه (2004). "التحالف الدولي للمراصد الافتراضية: التطورات التقنية الحديثة والمسار المستقبلي". وقائع SPIE . 5493 : 137-145 . doi : 10.1117/12.551249 .
  34. إيشيدا، تورو؛ موراكامي، يوهي؛ لين، دونغهوي؛ ناكاجوتشي، تاكاو؛ أوتاني، ماسايوكي (2018). "بنية خدمة اللغة على الويب: شبكة اللغة". مجلة الكمبيوتر . 51 (6). معهد مهندسي الكهرباء والإلكترونيات: 72-81 . رمز Bibcode : 2018Compr..51f..72I . doi : 10.1109/MC.2018.2701643 .
  35. جو ماكيندريك. "براي: بنية الخدمات الموجهة معقدة للغاية؛ مجرد هراء من البائع"" . ZDNet.
  36. جيمي تشانغ (20 فبراير 2008) "فهرسة مستندات XML باستخدام VTD-XML" مؤرشف في 4 يوليو 2008، في Wayback Machine . مجلة XML .
  37. جيمي تشانغ (5 أغسطس 2008) "وجهة نظر تكنولوجيا المعلومات: مشكلة أداء XML الثنائي" مؤرشف في 9 يناير 2020، في Wayback Machine . مجلة الخدمات المصغرة .
  38. جيمي تشانغ (9 يناير 2008) "معالجة محتوى XML بطريقة Ximple" مؤرشف في 30 يوليو 2017، في Wayback Machine . devx.com .
  39. "السبب وراء عدم تقديم هندسة الخدمات الموجهة (SOA) لبرمجيات مستدامة" . jpmorgenthal.com. ١٩ يونيو ٢٠٠٩. تم الاطلاع عليه بتاريخ ٢٧ يونيو ٢٠٠٩ .
  40. "لا تزال خدمات SOA مقيدة للغاية بالتطبيقات التي تمثلها" . ZDNet . 27 يونيو 2009. تم الاطلاع عليه في 27 يونيو 2009 .
  41. "طبقة الحوكمة" . www.opengroup.org . مؤرشف من الأصل في 4 يونيو 2016. تم الاطلاع عليه في 22 سبتمبر 2016 .
  42. "كيفية اختبار بنية الخدمات الموجهة بكفاءة | WSO2 Inc" . wso2.com . تم الاطلاع عليه بتاريخ 22 سبتمبر 2016 .
  43. "ما هو الويب 2.0؟" تيم أورايلي. 30 سبتمبر 2005. تم الاطلاع عليه في 10 يونيو 2008 .
  44. 1 2 كريستوف شروث؛ تيل جانر (2007). "الويب 2.0 وهندسة الخدمات الموجهة: مفاهيم متقاربة تُمكّن إنترنت الخدمات" . مجلة متخصصي تكنولوجيا المعلومات . 9 (3): 36-41 . رمز Bibcode : 2007ITPro...9c..36S . doi : 10.1109/MITP.2007.60 . S2CID 2859262. مؤرشف من الأصل في 3 ديسمبر 2013. تم الاطلاع عليه في 23 فبراير 2008 . 
  45. ^ دراجوني ، نيكولا. جيالورينزو، سافيريو؛ ألبرتو لوش لافوينتي؛ مازارا، مانويل؛ مونتيسي، فابريزيو. مصطفى، رسلان؛ سافينا ، لاريسا (2016). “الخدمات المصغرة: الأمس واليوم وغدًا”. أرخايف : 1606.04036v1 [ cs.SE ].
  46. جيمس لويس ومارتن فاولر. "الخدمات المصغرة" .
  47. بالالاي، أ.؛ حيدرنوري، أ.؛ جمشيدي، ب. (1 مايو 2016). "بنية الخدمات المصغرة تُمكّن DevOps: الانتقال إلى بنية سحابية أصلية" (ملف PDF) . مجلة IEEE للبرمجيات . 33 (3): 42-52 . Bibcode : 2016ISoft..33c..42B . doi : 10.1109/MS.2016.64 . hdl : 10044/1/40557 . ISSN 0740-7459 . S2CID 18802650 .  
  48. فرانك غلينكا؛ الليثي رائد (2009). "واجهة موجهة نحو الخدمة للتطبيقات الموزعة عالية التفاعل" . المؤتمر الأوروبي للمعالجة المتوازية . سلسلة محاضرات في علوم الحاسوب. المجلد 6043. الصفحات 266-277 . doi : 10.1007/978-3-642-14122-5_31 . ISBN   978-3-642-14121-8تم الاطلاع عليه بتاريخ 9 فبراير 2021 .
  49. ديتر هيلدبراندت؛ يان كليمكه (2011). "تصور ثلاثي الأبعاد تفاعلي موجه نحو الخدمات لنماذج مدن ثلاثية الأبعاد ضخمة على أجهزة طرفية خفيفة" . COM.Geo '11: وقائع المؤتمر الدولي الثاني للحوسبة من أجل البحوث والتطبيقات الجغرافية المكانية . ص 1. doi : 10.1145/1999320.1999326 . ISBN  9781450306812. S2CID 53246415 . تم الاسترجاع في 9 فبراير 2021 . 
  50. ماهي علي؛ مايكل فرانك (2016). "محركات الوسائط التفاعلية الموجهة نحو الخدمات (SOIM) المُمكّنة من خلال مشاركة الموارد المُحسّنة" . ندوة IEEE لعام 2016 حول هندسة الأنظمة الموجهة نحو الخدمات (SOSE) . الصفحات 231-237 . doi : 10.1109/SOSE.2016.47 . hdl : 1854/LU-7215326 . ISBN  978-1-5090-2253-3. S2CID 9511734 . تم الاسترجاع في 9 فبراير 2021 . 
  • ماورو، كريستيان؛ لايميستر، يان ماركو؛ كركار، هيلموت (يناير 2010). "تكامل الأجهزة الموجهة نحو الخدمات - تحليل أنماط تصميم بنية الخدمات الموجهة" (ملف PDF) . المؤتمر الدولي الثالث والأربعون لعلوم الأنظمة في هاواي، 2010. الصفحات 1-10 . doi : 10.1109/HICSS.2010.336 . ISBN  978-1-4244-5509-6S2CID 457705. مؤرشف من الأصل (PDF) بتاريخ 24 يناير 2022. تم الاطلاع عليه بتاريخ 21 سبتمبر 2021 .