معماری چند لایه ی نرم افزار چیست؟
ایمان مدائنی

معماری چندلایه ی نرم افزار امروزه یکی از محبوب ترین الگو های معماری است. این معماری، پیچیدگی درحال افزایش اپلیکیشن های مدرن را مدیریت می کند و همچنین باعث می شود که کار سریع تر انجام شود.

 

 همچنین امروزه درنظر گرفتن تسلط روی DevOps و متودولوژی های مشابه دیگر مهم است و گاهی معماری لایه ای یا معماری n-tier نامیده می شود یک معماری چندلایه ی نرم افزار شامل لایه های متفاوتی است و هر لایه مربوط به سرویس ها یا یکپارچه سازی های مختلفی است. چون هر لایه از لایه های دیگر مجزاست تغییر در هر لایه ساده تر از کار با کل معماری است.

اجازه دهید به نحوه ی کار معماری چندلایه ی نرم افزار و مزایا و معایب آن نگاهی کنیم.

معماری چند لایه از چه چیز هایی تشکیل شده است؟

قبل از اینکه معماری چند لایه را شروع کنیم اجازه دهید با ساده ترین حالت آن که معماری سه لایه است شروع کنیم.این حالت بهترین نقطه ی شروع است زیرا همه ی معماری های چندگانه شامل این سه جزء هستند که درواقع این اجزاپایه ای هستند:

لایه ی Presentation: این لایه اولین و بالاترین لایه است که در اپلیکیشن نشان داده می شود.این لایه خدمات نمایش را ارائه می دهد و محتوا را به کاربران نهایی از طریق GUI نمایش می دهد این لایه از طریق هرنوع دستگاه کلاینت نظیر کامپیوتر های رومیزی، لپتاپ،موبایل و غیره قابل دسترس است. برای محتوای صفحات نمایش داده شده به کاربر صفحات وب مربوطه باید توسط مرورگر وب یا کامپوننت های نمایش دیگر که روی دستگاه کلاینت به نمایش گذاشته می شود واکشی شود. برای نمایش محتوا این لایه باید با سایر لایه های قبلی ارتباط برقرار کند.

لایه ی اپلیکیشن: این لایه لایه ی میانی این معماری است. این لایه ای است که منطق اپلیکیشن در آن اجرا می شود. منطق اپلیکیشن مجموعه ای از قوانین است که قسمت دستورالعمل متکی به بخشی از برنامه است و برای اجرای اپلیکیشن نیاز است. اجزای این لایه معمولا روی یک یا تعداد بیشتری از اپلیکیشن سرور ها اجرا می شود.

لایه ی داده: این لایه پایین ترین لایه ی این معماری است و عمدتا برای ذخیره سازی و بازیابی داده های اپلیکیشن درنظر گرفته می شود. داده های اپلیکیشن معمولا در یک پایگاه داده، فایل سرور یا هر دستگاه یا رسانه ی دیگری که از منطق دسترسی داده پشتیبانی می کند و گام های موردنیاز برای اطمینان از اینکه داده بدون هیچگونه دسترسی به محل ذخیره سازی و مکانیزم بازیابی نمایش داده می شود، ذخیره می شود. این کار توسط لایه ی داده با ارائه یک API به لایه ی اپلیکیشن انجام می شود. تهیه ی این API اطمینان از وضوح کامل عملیات داده که در این لایه بدون تغییری در لایه اپلیکیشن انجام می شود، را می دهد. برای مثال بروزرسانی یا ارتقاء سیستم در این لایه لایه ی اپلیکیشن را در این معماری تغییر نمیدهد.

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

 

این سه لایه ضروری است اما لایه های دیگر می تواند روی این سه لایه ایجاد شود حال وارد معماری چند لایه می شویم که گاهی معماری n-tieredنیز نامیده می شود زیرا تعداد لایه ها هرتعدادی می تواند باشد و بستگی به نیاز شما و میزان پیچیدگی که می توانید مدیریت کنید دارد.

معماری نرم افزار چندلایه

یک معماری نرم افزار چند لایه هنوز لایه ی presentation و لایه ی داده را دارد. این لایه به سادگی لایه ی اپلیکیشن را جدا می کند و گسترش می دهد. این جنبه ی اضافی از لایه ی اپلیکیشن حتما سرویس های متفاوتی دارد. این به این معنی است که حال نرم افزار شما باید انعطاف پذیری بیشتری و ابعاد اضافی تری از عملکرد را داشته باشد. البته توزیع کد اپلیکیشن و توابع در لایه های مختلف در یک معماری با یک معماری دیگر تفاوت می کند اما مفاهیم یکی است.

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

 

مزایای معماری نرم افزار چندلایه چیست؟

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

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

چه زمانی از معماری نرم افزار چندلایه استفاده می کنیم؟

واضحا استدلال معماری نرم افزار چند لایه کاملا واضح است اما نمونه هایی وجود دارد که کاملا متناسب است:

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

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

مثالی از معماری نرم افزار چند لایه

می توانیم نحوه ی کار معماری چند لایه را با مثالی از اپلیکیشن وب کارت خرید که در سایت های تجارت الکترونیک نشان داده می شود، توضیح دهیم. اپلیکیشن وب کارت خرید توسط کاربران سایت تجارت الکترونیک برای تکمیل فرایند انتخاب از طریق سایت های تجارت الکترونیک استفاده می شود.

شما از اپلیکیشن انتظار دارید که چندین ویژگی داشته باشد که به کاربر اجازه دهد که:

آیتم های اضافه شده را به کارت اضافه کند

تعداد آیتم ها را بتوان در کارت تغییر داد

پرداخت ها را انجام بدهیم

لایه ی کلاینت که در اپلیکیشن کارت خرید نشان داده شده است با کاربر از طریق GUI ارتباط برقرار می کند. لایه ی کلاینت همچنین با اپلیکیشن که در لایه های چندگانه است تعامل دارد. از آنجایی که کارت خرید یک اپلیکیشن وب است، لایه ی کلاینت شامل مرورگر وب است. لایه ی presentation که در اپلیکیشن کارت خرید نشان داده می شود اطلاعات مربوط به سرویس هایی نظیر جستجوی کالا، خرید آن ها، اضافه کردن آن ها به کارت خرید و غیره را نشان می دهد. لایه ی presentation با دیگر لایه ها برای ارسال نتیجه به لایه ی کلاینت و سایر لایه ها که در شبکه نشان داده می شود ارتباط برقرار می کند.

لایه ی presentation فراخوانی هایی به پایگاه داده های ذخیره شده در procedure ها و وب سرویس ها ایجاد می کند. همه ی این فعالیت ها با هدف ارائه ی یک زمان پاسخ سریع به کاربران نهایی انجام می شود. لایه ی presentation نقشی اساسی بازی می کند که مانند چسب است که با اجازه دادن اینکه توابع در لایه های مختلف برای ارتباط با یکدیگر و نمایش نتایج به کاربر نهایی ،ظاهر شوند، همه ی اپلیکیشن کارت خرید را با یکدیگر الحاق می کند.

در این معماری چند لایه منطقی که برای پردازش فعالیت هایی نظیر محاسبه ی هزینه ی خرید و غیره از لایه ی اپلیکیشن به لایه ی presentationارائه می شود. لایه ی اپلیکیشن همچنین به عنوان لایه ی تجمیع نیز عمل می کند و به اپلیکیشن ها اجازه ی ارتباط با هر دو لایه ی داده و presentation را می دهد. لایه ی آخر که لایه ی داده می باشد برای دستیابی به داده می باشد این لایه عمدتا شامل سرور های پایگاه داده می باشد این لایه به داده بدون وابستگی به سرور اپلیکیشن و منطق، دسترسی دارد. این دیدگاه قیاس پذیری و عملکرد بیشتری به لایه ی داده می دهد.

نظرات کاربران در رابطه با این دوره

جهت ثبت نظر باید در سایت عضو شوید و یا وارد سایت شده باشید .
logo-samandehi