معماری چندلایه (که گاهی با عنوان معماری n لایه و یا n-tier نیز از آن یاد می شود.) روشی است که امروزه در طراحی سیستم های نرم افزاری به کار می رود. در این معماری، سیستم نرم افزاری به چند زیر سیستم تقسیم می شود و قسمت های مستقل سیستم به صورت لایه های جداگانه طراحی می گردند. این لایه ها علاوه بر این که هرکدام وظیفه مستقل خود را دارا هستند، با هم نیز در ارتباط بوده و به لایه های دیگر سرویس دهی می کنند. این روش برای آسان تر شدن پردازش های رایانه ای به کار می رود.
در معماری چند لایه (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 ارسال می نماید.
برخی از مزایای برنامه نویسی چندلایه
- از آن جایی که در این نوع معماری، تمامی لایه ها مستقل از یک دیگر عمل می کنند، در صورت نیاز می توان با سرعت بالا و هزینه پایین برروی هرلایه تغییراتی اعمال کرد، بدون آن که نیاز به تغییر در سایر لایه ها وجود داشته باشد. در نتیجه هرگونه تغییر و گسترش برنامه آسان تر خواهد شد.
- هرگونه تغییر در بانک اطلاعاتی، تأثیری در نمایش داده ها نخواهد داشت.
- روند خطایابی (Debugging) آسان تر صورت می پذیرد.
- در پروژه های تیمی، افراد یک تیم می توانند به طور مستقل روی لایه های متفاوت به صورت موازی کار کنند، بدون آن که اطلاعی از لایه های دیگر داشته باشند.
- استفاده از معماری چندلایه امنیت داده ها را بالا می برد.
لازم به ذکر است که استفاده از معماری چند لایه (Multi layer architecture) در طراحی نرم افزار همیشه مقرون به صرفه نیست و استفاده از آن، برای سیستم های کوچک، زمان بر و پرهزینه است و باعث بالا رفتن هزینه های نگاه داری سیستم می گردد. بنابراین استفاده از این معماری در طراحی سیستم های کوچک توصیه نمی شود.
تقسیم کردن یک سیستم نرم افزاری به چند زیرسیستم و طراحی قسمت های مختلف سیستم به صورت لایه های جداگانه و مستقل از هم منجر به کاهش پیچیدگی و ساده تر شدن فرایند تولید نرم افزار می گردد. از طرفی در سیستم هایی که با معماری چندلایه طراحی می شوند، نگاه داری و اعمال تغییرات نرم افزار آسان تر صورت می پذیرد و به همین دلیل است که امروزه برنامه نویسی چند لایه در فرایند تولید نرم افزار جایگاه مهمی را دارا است.