دسته بندی وبلاگ

معماری سه لایه چیست؟

معماری سه لایه چیست؟

مفهوم معماری سه لایه

در سیستم‌های مهندسی و نرم‌افزاری برای غلبه آمدن بر پیچیدگی، کل سیستم به چندین زیر سیستم ( Sub System) تقسیم می‌شود. در حین طراحی هر زیرسیستم ارتباط آن با سایر قسمت‌های سیستم نیز در نظر گرفته می‌شود و در نهایت این مجموعه به صورت یک مجموعه واحد در نظر می‌گیرند.
معماری چند لایه : n-Tier
به طور کلی در این معماری، هر لایه T ، سرویس‌هایی را از لایه قبلی خودش( T-1 ) دریافت و سرویس هایی را به لایه‌ی بعدی خودش یعنی ( T+1 ) ارائه می‌دهد.
معماری سه لایه :
یکی از انواع معماری‌های چند لایه معماری، سه لایه ( Three Tier ) است. ایده بوجود آمدن این معماری، بعد از به وجود آمدن Web Page های Dynamic بود.

در این معماری Object های نرم افزار در سه لایه طراحی می‌شوند .

بخش‌ها یا لایه‌های اصلی نرم افزار در این معماری عبارتند از :
 1 – Presentation Layer (یا همان لایه Interface نرم افزار):
    فرم‌ها، واسط‌ها، منوها و هر چیزی که برای کاربر قابل رویت باشد، در نرم افزارهای تجاری و کاربردی همگی در لایه نمایش( Presentation)  قرار می‌گیرند. این لایه در ارتباط با کاربر بوده و حاوی عناصر User Interface (رابط گرافیکی کاربر) و شامل تمامی منطق حکم فرما در نحوه‌ی ارتباط کاربر با اجزای سایت می‌باشد. لایه نمایش، بخشی از سایت است که کاربران می‌توانند آنرا مشاهده کرده و با استفاده از عناصر آن، از امکانات سایت استفاده کنند. بنابراین طراحی صحیح و اصولی این بخش تاثیر به سزایی در موفقیت وب‌سایت مربوطه خواهد داشت.

2 – Business Logic Layer ( لایه تجاری) که در برگیرنده منطق اصلی برنامه هست .

     در این لایه اعمال اصلی نرم افزار با استفاده از همکاری با لایه های پایین و بالا انجام می‌شود‌. در این لایه کارهای مرتبط با DataBase وجود ندارد و این وظایف تماما به لایه Data Access سپرده می‌شود.
این لایه در ارتباط با تیم برنامه‌نویسی می‌باشد.


      این لایه که معمولا لایه‌ی میانی (Middle Tier) نیز نامیده می‌شود وظیفه ارتباط بین لایه نمایش و لایه داده را بر عهده دارد. کلیه درخواست‌هایی (Request) که در اثر تعامل کاربر با لایه نمایش ایجاد می‌شود (به استثنا مواردی که توسط خود لایه نمایش مدیریت می‌شود، مانند Validation یا اعتبار سنجی فیلدها) به این لایه ارسال و نتیجه حاصل از پردازش، بر اساس منطق تعیین شده در این لایه، مجددا به لایه نمایش برگردانده و در آنجا به کاربر نمایش داده می‌شود.

در بیشتر مواقع لایه منطق برای پاسخگویی به درخواست‌های لایه نمایش باید با لایه داده‌ها ارتباط برقرار کند. به بیانی ساده‌تر، مثلا زمانی که کاربر عملیات جستجو در محصولات را در سایت انجام می‌دهد، لایه نمایش به لایه منطق می‌گوید: "محصولاتی که نام آنها با این کلمات تطابق دارد را برای من ارسال کن". در این هنگام لایه منطق کلمات ارسال شده از لایه نمایش را به لایه داده ها می‌دهد و نتایج جستجو را از آن تحویل می‌گیرد و مجددا به لایه نمایش ارسال می‌نماید .

3 – Data Access Layer : ( لایه‌ی دسترسی به داده‌ها ) : پایین ترین لایه و البته مهم‌ترین لایه در معماری سه لایه می‌باشد.
این لایه در ارتباط با تیم مدیریتی و تیم برنامه‌نویسی می‌باشد.
لایه DAL وظیفه مدیریت اطلاعات موجود در دیتابیس را بر عهده دارد و بر اساس دستوراتی که لایه Business به آن می‌دهد، اطلاعاتی را در دیتابیس اضافه، حذف، ویرایش و یا جستجو می‌کند و نتیجه این اعمال را به Business Tier باز می‌گرداند.
مزایای معماری سه لایه :
استقلال قسمت‌های مختلف پروژه از یکدیگر.
تغییر زمینه کاربرد در حداقل زمان. مثلا برنامه از Win App به Web App تبدیل شود یا DataBase برنامه را می‌توان به راحتی تغییر داد .
مدیریت بهتر و راحت تر پروژه.

معایب معماری سه لایه :
معمولا ازمعماری سه لایه نمی‌توان برای پروژه های کوچک استفاده کرد. (به علت حجم زیاد فایل‌ها در این معماری).
کارایی ( Performance ) برنامه در معماری سه لایه تا حدودی پایین است. چون ارتباطات لایه‌ها در این معماری زیاد است.

نظرات برای این نوشته

عثمان


متن نظر :

ممنون، فیض بردیم ...


zina


متن نظر :

با سلام

ممنون از توضیحات مبسوط و کاملتون ولی از اونجا که من تازه با این مبحث آشنا شدم می شه بگید موقع برنامه نویسی چطوری لایه ها تعریف می شن یعنی مثلا توی سی شارپ باید پروژه ی دیگه ایجاد کرد بعنوان لایه های دیگه یا نه کلا منظور از لایه ها به صورت منطقی هست. ممنون از اطلاعاتتون



رهبر


متن نظر :

واقعاً   ممنون از راهنمایی بسیار عالی تون.

Smile