كل من SOA (Service-Oriented Architecture) وmicroservices تقسمان الأنظمة إلى خدمات، لكنهما يختلفان في درجة الحبيبية وملكية البيانات وكيفية تواصل الخدمات.
كل من SOA (Service-Oriented Architecture) وmicroservices تقسمان الأنظمة إلى خدمات، لكنهما يختلفان في درجة الحبيبية وملكية البيانات وكيفية تواصل الخدمات.
| الجانب | SOA | Microservices |
|---|
| درجة الحبيبية | خشنة الحبيبية | دقيقة الحبيبية |
| التواصل | غالباً عبر ESB | خفيفة الوزن (REST/gRPC/messaging) |
| البيانات | مشتركة في الغالب | قاعدة بيانات لكل خدمة |
| الحكم | مركزي | لامركزي |
| البروتوكول | SOAP/XML عادة | HTTP/JSON، gRPC عادة |
SOA ─▶ Service A ─▶ [ Enterprise Service Bus ] ─▶ Service B
(smart pipes, central orchestration, shared schemas)
Microservices ─▶ Service A ──(direct REST/gRPC/event)──▶ Service B
("smart endpoints, dumb pipes" — logic lives in services)
تتبع Microservices مبدأ "smart endpoints, dumb pipes": الذكاء يعيش في الخدمات، والنقل يبقى بسيطاً. غالباً ما تركز SOA المنطق في ESB.
لا تعيد إدخال اختناق على نمط ESB. ناقل مركزي ثقيل يحول microservices إلى SOA بخطوات إضافية.
الفرق يتعلق في الأساس بـ اللامركزية: microservices تدفع ملكية البيانات والمنطق إلى كل خدمة لتجنب الاختناق المركزي الذي أزعج الكثير من نشرات SOA.
فهم هذا يبقيك من إعادة بناء تزاوج SOA عن غير قصد تحت اسم microservices.