JavadAgha
JavadAgha
خواندن ۳ دقیقه·۶ ماه پیش

بررسی معماری های N-Tier

معماری چندلایه (tier-N )یک برنامه ی نرم افزاری را به لایه های منطقی و طبقات فیزیکی تقسیم می کند. لایه ها روشی برای جداسازی مسئولیت ها و مدیریت وابستگی ها هستند. هر لایه وظیفه خاصی دارد. یک لایه بالاتر می تواند از سرویس های لایه پایین تر استفاده کند، اما برعکس این موضوع امکانپذیر نیست.

لایه ها از نظر فیزیکی جدا شده اند و روی ماشین های جداگانه ای اجرا می شوند. یک لایه می تواند مستقیماً به لایه دیگر فراخوانی بزند یا از پیامرسان ی ناهمزمان (asynchronous messaging) استفاده کند. اگرچه ممکن است هر لایه در طبقه خاص خود میزبانی شود، اما اجباری در این کار نیست.چندین لایه ممکن است روی یک لایه می زبانی شوند. جداسازی فیزیکی طبقات، مقیاسپذیری و انعطاف پذ یر ی را بهبود می بخشد، اما تأخیر ناشی از ارتباطات اضافی شبکه را نیز به همراه دارد.

یک معماری چند لایه می تواند از دو نوع باشد:

معماری لایه بسته (Closed Layer Architecture): در این نوع، یک لایه فقط می تواند لایه بعدی را که مستقیماً پایین تر از آن است را فراخوانی کند.

معماری لایه باز(Open Layer Architecture) : در این نوع، یک لایه می تواند هر یک از لایه پایین تر از خود را فراخوانی کند. معماری لایه بسته وابستگی های بین لایه ها را محدود می کند. با این حال، ممکن است ترافیک شبکه غیرضروری ایجاد کند و این مورد به خصوص زمانی که یک لایه به سادگی درخواست ها را به لایه بعدی منتقل می کند، اهمیت می یابد.

بیایید به چند نمونه از معماری های چند لایه را بررسی کنیم:

معماری سه لایه :

معماری سه لایه به طور گسترده مورد استفاده قرار میگیرد و از لایه های مختلف زیر تشکیل شده است:

لایه نمایش( Presentation layer) : با تعامالت کاربر با برنامه سروکار دارد.

لایه منطق کسب و کار (Presentation layer): داده ها را از لایه نمایش دریافت می کند، طبق منطق کسب و کار اعتبارسنجی می کند و به لایه داده منتقل می کند.

لایه دسترسی به داده (Data Access layer): داده ها را از لایه منطق کسب و کار دریافت میکند و عملیات لازم را روی پایگاه داده انجام میدهد.

معماری دو لایه :

در این معماری، لایه نمایش روی کالینت اجرا میشود و با یک بانک اطالعاتی ارتباط برقرار می کند. هیچ لایه منطق کسب و کار یا لایه دیگری بین کالینت و سرور وجود ندارد.

معماری تک لایه:

این نوع ساده ترین معماری است، زیرا معادل اجرای برنامه روی یک رایانه شخصی است. تمام اجزای مورد نیاز برای اجرای یک برنامه در یک برنامه یا سرور واحد قرار دارند.


مزایا:

در اینجا برخی از مزایای استفاده از معماری چندلایه آورده شده است:

  • میتواند پارامترهای در دسترس بودن(availability) را بهبود بخشد.
  • سطح امنیت بهتری به همراه می آورد زیرا لایه ها میتوانند مانند فایروال عمل کنند.
  • امکان مقیاسپذیری(scale) لایه های مجزا در صورت نیاز را فراهم می کند.
  • پارامترهای نگهداری از برنامه را بهبود می بخشد زیرا افراد مختلف می توانند لایه ها ی مختلف را مدیریت کنند.

معا یب:

در زیر برخی از معایب استفاده از معماری چندلایه آورده شده است:

  • افزایش پیچیدگی در کل سیستم.
  • افزایش تأخیر شبکه با افزایش تعداد لایه ها.
  • پرهزینه بودن به دلیل اینکه هر لایه هزینه سخت افزاری خاص خود را دارد.
  • مدیریت امنیت شبکه دشوار است.




منبع : system-design.ir

مهندسی نرم افزارتوسعه نرم افزار
کنجکاو در مباحث مهندسی نرم افزار
شاید از این پست‌ها خوشتان بیاید