مسئله اینه که در این حالت هم یک نرم افزار نیاز نداره تمام لایه های خودش را در یک سرویس به اشتراک بزاره، فقط باید متناسب با نوع درخواست یک لایه را به اشتراک بزاره، مثلا در مثال شما، وقتی Business Layer یک منطقه نیاز به انجام یکسری عملیات یا یکسری بازرسی ها در سطح منطقه دیگه داره، کافیه به Business Layer اون منطقه یا به Presentation آن متصل بشه، ولی نیازی نداره که در کنار آن مستقیما به لایه DB هم دسترسی داشته باشه. یکی از علت های چند لایه کردن نرم افزارها افزایش سطح Abstraction بین بخش های مختلف نرم افزار و Encapsulation هست، در این صورت وجود یک لایه سرویس که رابطی برای کل لایه ها فراهم بکنه منطقی به نظر نمی رسه.در مورد نقطه نظر دومی هم فرض کنید برنامه ای برای مثلا 10 منطقه از شهری یا کشوری نوشتید که اطلاعات جدا ای رو پردازش میکنند و هر منطقه DB و Server و ... خودشو داره ولی نیازمند ارتباط با دیگر مناطق هم در بعضی موارد هست . اینجاست که یک لایه Wrapper از سرویس بر روی کل معماری میتونه خیلی کمک کنه و ارتباط بین مناطق رو از طریق یک اینترفیس ساده سرویس و نه لاجیک پیچیده هر منطقه فراهم کنه
در هر حال خیلی ممنون