مفهوم معماری چند لایه
در معماری چند لایه (Multi Layer Architecture)، برنامه به چندین بخش تقسیم می گردد که این بخش ها می توانند منطقی و یا فیزیکی باشند و هرلایه مستقل از لایه های دیگر عمل می کند. استفاده از این مدل باعث می شود که برنامه نویسان کدهایی انعطاف پذیر (flexible) و با قابلیت استفاده مجدد (reusable) تولید کنند. به طور کلی لایه بندی پروژه باعث نظم در کارها و آسان تر شدن رفع خطاها می گردد و همین امر منجر به بالا رفتن سرعت توسعه پروژه می گردد.
معماری سه لایه
بیش ترین حالت استفاده از معماری چندلایه، حالت معماری سه لایه (3Tier) است. در این حالت برنامه از سه لایه تشکیل می شود که در زیر به آن ها اشاره می شود:
Presentation layer(لایه رابط کاربری) :
بخشی از نرم افزار است که کاربر با آن ارتباط برقرار می کند و UI برنامه می باشد. وظیفه این لایه برقراری ارتباط با کاربر نهایی است. این لایه نهایی ترین لایه محسوب می شود و به کاربر اجازه برقراری ارتباط با داده ها را می دهد.
Business Logic Layer(لایه منطقی یا تجاری) :
لایه BLL که بین UI و DAL قرار می گیرد، وظیفه اعتبارسنجی داده ها را برعهده دارد. چک کردن شرط ها، اعتبارسنجی و یا هر پردازشی که احتیاج باشد برروی داده هایی که توسط کاربر وارد شده انجام پذیرد، بر عهده این لایه است. هم چنین وظیفه پردازش و انتقال داده ها از UI به DAL و بالعکس نیز توسط این لایه انجام می پذیرد. لازم به ذکر است این لایه گاهی به نام های Application Tier ،Middle Tier و Logic Tier نیز خوانده می شود.
Data Access Layer(لایه دسترسی به داده) :
عملیات ذخیره، بازیابی، حذف و یا به روز رسانی داده ها از پایگاه داده بر عهده لایه DAL قرار دارد. این لایه گاهی به نام Data Tier نیز خوانده می شود.
نحوه برقراری ارتباط لایه ها با یک دیگر در معماری سه لایه
لایه DAL، داده ها را از بانک اطلاعاتی بازیابی نموده و از طریق لایه منطقی آن ها را به UI ارسال می نماید تا اطلاعات برای کاربر نمایش داده شود و در حالت دیگر کاربر، داده ها را از طریق واسط گرافیکی (UI) وارد نموده، لایه منطقی اعتبارسنجی و پردازش های لازم را روی داده ها انجام می دهد و در نهایت برای ذخیره سازی، اطلاعات را به لایه DAL ارسال می نماید.
Multi Layer Architecture
برخی از مزایای برنامه نویسی چندلایه
از آن جایی که در این نوع معماری، تمامی لایه ها مستقل از یک دیگر عمل می کنند، در صورت نیاز می توان با سرعت بالا و هزینه پایین برروی هرلایه تغییراتی اعمال کرد، بدون آن که نیاز به تغییر در سایر لایه ها وجود داشته باشد. در نتیجه هرگونه تغییر و گسترش برنامه آسان تر خواهد شد.
هرگونه تغییر در بانک اطلاعاتی، تأثیری در نمایش داده ها نخواهد داشت.
روند خطایابی (Debugging) آسان تر صورت می پذیرد.
در پروژه های تیمی، افراد یک تیم می توانند به طور مستقل روی لایه های متفاوت به صورت موازی کار کنند، بدون آن که اطلاعی از لایه های دیگر داشته باشند.
استفاده از معماری چندلایه امنیت داده ها را بالا می برد.
لازم به ذکر است که استفاده از معماری چند لایه (Multi layer architecture) در طراحی نرم افزار همیشه مقرون به صرفه نیست و استفاده از آن، برای سیستم های کوچک، زمان بر و پرهزینه است و باعث بالا رفتن هزینه های نگاه داری سیستم می گردد. بنابراین استفاده از این معماری در طراحی سیستم های کوچک توصیه نمی شود.