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