در معماری SOA چیزی که اهمیت فراوانی داره ارتباط App های مجزا با هم طبق یک قرارداد قابل تنظیم با سرعت قابل قبول مستقل از پروتکل ها و نوع زبان برنامه نویسی App ها و رعایت encapsulation هست .
فرض کنید بنده و شما دو برنامه مستقل از هم در دو زبان برنامه نویسی مثلا جاوا و دات نت برای یک سازمان یا حتی دو سازمان متفاوت نوشتیم که عملا مستقل از هم هستند ولی در بعضی مواقع برنامه ها نیازمند ارتباط با هم هستند . مسلما شما اگه بنده رو مستقیما با لایه مثلا Biz یا UI خودتون مرتبط کنید چندان خوشایند طرفین نیست ! هم برای شما که مجبورید سورس رو به نحوی فاش کنید هم بنده که مجبورم ساعتها وقتم رو روی فانکشن ها و کلاسهای شما بزارم تا ببینم شما چه کردید و چه نکردید مخصوصا در سیستمهای بزرگ که ممکنه Biz Layer حجیم و پیچیده ای داشته باشند این مشکل بیشتر به چشم میاد .
اینجاست که بحث یک لایه سرویس دهنده بر روی کل لایه های شما پیش میاد . با این کار برنامه های دیگر رو از درگیر شدن با لایه های زیرین برنامه خودتون منع کردید و هم پشتیبانی راحت تری رو میشه ارایه داد .
البته نقطه نظرات متفاوت هست و میشه این نوع معماری ها رو با توجه به نوع کاربرد بسط داد






پاسخ با نقل قول