ما المقصود بالبنية الموجهة للخدمات؟

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

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

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

تتمتع البنية الموجهة للخدمات (SOA) بمزايا عديدة متفوقةً على البنيات المتجانسة التقليدية التي تعمل فيها جميع العمليات كوحدة واحدة. من المزايا الرئيسة للبنية الموجهة للخدمات (SOA) ما يلي:

تسريع الطرح بالأسواق

يعيد المطورون استخدام الخدمات في مختلف عمليات الأعمال لتوفير الوقت والتكاليف. حيث يمكنهم تجميع التطبيقات بشكل أسرع باستخدام البنية الموجهة للخدمات (SOA) مقارنةً بكتابة التعليمة البرمجية وتنفيذ عمليات الدمج من البداية.

كفاءة الصيانة

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

قابلية تكيف أكبر

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

 

ما المبادئ الأساسية في البنية الموجهة للخدمات؟

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

قابلية التشغيل البيني

تحتوي كل خدمة في البنية الموجهة للخدمات (SOA) على مستندات وصفية توضح وظائف الخدمة والشروط والأحكام ذات الصلة. ويمكن لأي نظام عميل تشغيل الخدمة، بصرف النظر عن النظام الأساسي أو لغة البرمجة. على سبيل المثال، يمكن للشركات استخدام الخدمات المكتوبة بكل من اللغة C# واللغة Python. نظرًا لعدم وجود تفاعلاتٍ مباشرة، لا تؤثر التغييرات في خدمة واحدة على المكونات الأخرى التي تستخدم الخدمة.

الاقتران غير المحكم

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

التجريد

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

الدقة

من المفترض أن تكون الخدمات الموجودة بالبنية الموجهة للخدمات (SOA) ذات حجم ونطاق مناسبين؛ فهي عادةً تقوم بتجميع
وظيفة أعمال منفصلة واحدة لكل خدمة. يمكن للمطورين بعد ذلك استخدام خدمات متعددة لإنشاء خدمة مركبة تختص بتنفيذ العمليات المعقدة.

ما المكونات الموجودة في البنية الموجهة للخدمات؟

توجد أربعة مكونات رئيسة في البنية الموجهة للخدمات (SOA).

الخدمة

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

تنفيذ الخدمة
تنفيذ الخدمة هو التعليمة البرمجية التي تُنشئ المنطق الخاص بتنفيذ وظيفة الخدمة المحددة، مثل مصادقة المستخدم أو حساب الفواتير.

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

موفر الخدمة

يقوم موفر الخدمة بإنشاء وصيانة وتوفير واحدة أو أكثر من الخدمات التي يمكن للآخرين استخدامها. يمكن للمؤسسات إنشاء خدماتها أو شرائها من موفري خدمات تابعين لجهات خارجية.

مستهلك الخدمة

يطلب مستهلك الخدمة من موفر الخدمة تشغيل خدمة معينة. وقد تكون هذه الخدمة نظامًا كاملاً أو تطبيقًا أو خدمةً أخرى. يحدد تعاقد الخدمة القواعد التي يجب على مقدم الخدمة والمستهلك الالتزام بها عند التفاعل مع بعضهما. يمكن أن ينتمي مقدمو الخدمات والمستهلكون إلى مختلف الأقسام والمنظمات وحتى القطاعات.

تسجيل الخدمة

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

ما كيفية عمل البنية الموجهة للخدمات؟

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

بروتوكولات الاتصال

تتواصل الخدمات باستخدام القواعد المطبقة التي تحدد نقل البيانات عبر الشبكة. هذه القواعد تسمى بروتوكولات التواصل. من البروتوكولات القياسية المطلوبة لتنفيذ البنية الموجهة للخدمات (SOA) ما يلي:

بروتوكول الوصول البسيط إلى الكائنات (SOAP)
• RESTful HTTP
• Apache Thrift
• Apache ActiveMQ
• Java Message Service (JMS)

يُمكنك استخدام أكثر من بروتوكول واحد في تنفيذ البنية الموجهة للخدمات (SOA).

ما المقصود بـ ESB في البنية الموجهة للخدمات؟

ناقل خدمات المؤسسة (ESB) هو برنامج يمكنك استخدامه عند التواصل مع نظام به خدمات متعددة. يقوم هذا الناقل بإنشاء اتصال بين الخدمات ومستهلكي الخدمات بصرف النظر عن التقنية.  

مزايا ESB

يوفر ESB إمكانات للتواصل والتحول من خلال واجهة خدمات قابلة لإعادة الاستخدام. يمكنك اعتبار ناقل ESB كخدمة مركزية توجه طلبات الخدمة إلى الخدمة المناسبة. كما إنه يحول الطلب إلى تنسيق يقبله النظام الأساسي للخدمة وتقبله لغة البرمجة.

ما القيود التي تواجه تنفيذ البنية الموجهة للخدمات؟

محدودية قابلية التوسع

تتأثر قابلية توسع النظام بشكلٍ كبير عندما تشترك الخدمات في موارد كثيرة وتحتاج إلى التنسيق لأداء وظائفها. 

زيادة التبعيات المتداخلة

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

نقطة عطل مفردة

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

ما المقصود بالخدمات المصغرة؟

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

أسلوب تصميم الخدمات المصغرة هو الأنسب لبيئات الحوسبة السحابية الحديثة. وغالبًا ما تعمل هذه الخدمات المصغرة في حاويات، أي وحدات برمجية مستقلة تضم التعليمة البرمجية وكل تبعياتها.

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

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

البنية الموجهة للخدمات (SOA) مقارنةً بالخدمات المصغرة

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

كيف تساعدك AWS في تنفيذ الخدمات المصغرة؟

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

• إنشاء وعزل وتشغيل خدمات مصغرة آمنة في حاويات مُدارة لتبسيط العمليات وتقليل النفقات الإدارية.
• استخدام AWS Lambda في تشغيل خدماتك المصغرة بدون توفير خوادم وإدارتها.
• الاختيار من بين 15 قاعدة بيانات من قواعد بيانات AWS العلائقية وغير العلائقية المبنية لغرض معين لدعم بنية الخدمات المصغرة.
• سهولة مراقبة الخدمات المصغرة التي تعمل على AWS والتحكم بها من خلال AWS App Mesh.
• مراقبة تفاعلات الخدمات المصغرة المعقدة وتصحيح أخطائها من خلال AWS X-Ray.

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

الخطوات التالية على AWS

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

تمتع بالوصول الفوري إلى الطبقة المجانية من AWS. 

تسجيل الاشتراك 
بدء الإنشاء في وحدة التحكم

ابدأ الإنشاء باستخدام AWS في وحدة إدارة تحكم AWS.

تسجيل الدخول