SOA یا معماری سیستم گرا, تعریف بزگتری از Microservice هاست. البته میگن که خوب اگر اسم جدید نیاری, چجوری میخوای کتاب یا محصولات جدید رو بفروشی ! حالا کاری به ایناش نداریم!
یک سرویس در زمینه MS اونقدر کوچک که فقط مسول 1 کار خاص اما سرویسهای SOA مسولیتهای زیادی دارن. بنابراین, طول میکشه که 1 سرویس SOA تکامل پیدا کنه و برای یکپارچه شدنش, زمان زیادی لازم. علاوه بر اینا, بیشتر به شیوه فکر کردن, بهتر بگم مشکل فکر کردن در موردشون برمیگرده. امروزه, SOA رو بیشتر برای مفاهیم سازمانی بکار میبرن اونم به خاطر اینکه از مفاهیم و تکنولوژیهای پیچیده ای استفاده میکنه مثل SOAP. در حالیکه از MS ها بیشتر بعنوان راه حلهای دم دستی و ساده استفاده میکنن.
اگر از دید برنامه نویسی بخوایم نگاه کنیم, از MS ها استفاده میکنن تا یه قسمت کوچیکی از 1 پکیج برنامه ای رو درست کنن. برنامه هایی که خودشون قسمتهای مختلف رو مدیریت میکنن و این MS که بیاد, کارخودشو میکنه. در نهایت یک MS با مکانیزمهای کوچک مثل API یا HTTP سر و کله میزنه. حتما میگین API کوچیکه؟دم دستی؟ بله ! هست! وقتی با تکنیک و مکانیزمی مثل SOAP مقایسش میکنی, میبنی هیچی نیست! System Oriented Architecture Planning/Programming برنامه نویسی یا برنامه ریزی سیستم گراس اما API با وجود تمام زحمتی که براش کشیده شده, در نهایت یک Interface بیشتر نیست, دیگه در بهترین حالت یک enabler هست.
خواص SOA در 4 خط اینا میشن:
1-محدودیتها مشخصن
2-سرویسها از هم مستقلن
3-سرویسها, یه قسمت از صفتشون رو به اشتراک میزارن, نه کل کلاسشون رو
4- تطابق پذیری سرویسها بر اساس یک خط مشی و سیاست خاص صورت میگیره