موضوع مقاله: معماری ۳ لایه | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # معماری ۳ لایه | مقدمه: هر کدام از این لایه‌ها ضمن اینکه وظیفه خاص خود را دارند، با هم در ارتباط بوده به‌طوری‌که هر لایه به لایه‌های بالایی و پایینی خود سرویس داده و از آن‌ها سرویس می‌گیرد. | ## بخش 1: معماری ۳ لایه | معماری ۳ لایه یا 3-Tier چپ|ارتباط لایه‌ها در معماری سه لایه طراحی سیستم‌های نرم افزاری معماری ۳ لایه حالت خاصی از معماری چند لایه می‌باشد که سیستم‌ها بر اساس این معماری به ۳ لایه جداگانه تقسیم می‌شوند. کاربر سیستم فقط با این لایه در ارتباط بوده و هیچ ارتباطی با دیگر لایه‌ها ندارد و در واقع درخواست خود را از طریق لایه نمایش به لایه‌های زیرین انتقال می‌دهد. وظیفه لایه نمایش این است که اطلاعات لازم را از کاربر گرفته و در صورت لزوم برخی Validation یا اعتبار سنجی‌هایی که باید در این لایه انجام گیرد مثل: کنترل طول فیلدها، کنترل اجباری بودن بعضی فیلدها و... را انجام می‌دهد و این اطلاعات را برای هر گونه پردازش لازم دیگری به لایه بعدی ارسال می‌نماید و در واقع هیچ اثری از منطق اصلی برنامه و اتصال به بانک اطلاعاتی در این لایه دید نمی‌شود. | ## بخش 2: معماری ۳ لایه | در واقع کلیه درخواست‌هایی که در اثر تعامل کاربر با لایه نمایش ایجاد شده‌است به این لایه منتقل شده و تمام پردازش‌های لازم بر اساس منطق اصلی برنامه در این لایه انجام شده و نتیجه این پردازش مجدداً به لایه نمایش منتقل شده و برای کاربر به نمایش درمی آید. گاهی اوقات درخواست کاربر به گونه‌ای است که لایه منطق تجاری برای انجام آن نیاز دارد که با لایه داده یعنی لایه زیرین خود ارتباط داشته باشد مثلاً کاربر ممکن است عملیات جستجو در محصولات یک شرکتی را بخواهد انجام دهد به این صورت که از طریق لایه نمایش لیست محصولات شرکت را درخواست می‌نماید، لایه نمایش درخواست کاربر را به لایه منطق تجاری ارسال می‌کند و این لایه نیز به دلیل اینکه انجام درخواست کاربر نیاز به برقراری ارتباط با لایه داده دارد، درخواست کاربر را به لایه داده ارسال می‌کند، لایه داده نیز درخواست کاربر را انجام داده و لیست محصولات شرکت را از بانک اطلاعاتی دریافت کرده و به لایه بالایی خود یعنی لایه منطق برنامه انتقاال داده و لایه منطق برنامه نیز این لیست را عینا با لایه بالایی خود یعنی لایه نمایش انتقال داده و در نهایت لایه نمایش این لیست را به کاربر نمایش می‌دهد. بنابراین وظیفه اصلی لایه منطق برنامه اعمال منطق اصلی برنامه بر روی درخواست کاربران و نیز برقراری ارتباط بین لایه نمایش و لایه داده می‌باشد. را بر روی بانک اطلاعاتی انجام داده و نتیجه عمل را به لایه بالایی خود ارسال می‌کند. | ## بخش 3: معماری ۳ لایه | مزایا و معایب معماری ۳ لایه از مزایای معماری ۳ لایه یا چند لایه می‌توان به عدم وابستگی لایه‌ها به همدیگر اشاره نمود. مثلاً لایه داده مستقل از لایه‌های دیگر عمل کرده و در صورت لزوم می‌توان با سرعت بالا و هزینه پایین این لایه را تغییر داد. به عنوان مثال در برنامه‌ای که از بانک اطلاعاتی SQL Server استفاده می‌شود به راحتی می‌توان بانک اطلاعاتی را به اوراکل (کمیک) یا هر بانک اطلاعاتی دیگر تغییر داد یا مثلاً منطق اصلی برنامه را با کمترین هزینه می‌توان با تغییر لایه منطق تجاری تغییر داد. اما معماری ۳ لایه یا چند لایه همیشه راه حل مناسبی برای طراحــی سیستم‌ها نیست به عبارت دیگر برای طــراحی هر سیستمی به دلیل مـقرون به صــرفه نبودن نمی‌توان از این معماری استفاده کرد. | ## جمع‌بندی | مثلاً برای سیستم‌های کوچک استفاده از معماری ۳ لایه زمان بر و هزینه بر می‌باشد و در واقع هزینه Developeپیاده‌سازی و توسعه سیستم و نگهداری سیستم بالا می‌رود.