5 الگوی معماری نرم افزار

5 الگوی معماری نرم افزار

اول از همه، الگوهای معماری نرم افزار چیست؟

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

به طور ویژه، یک الگوی معماری مجموعه ای از تصمیمات طراحی است که بار ها و بار ها در عمل یافت می‌شود. دارای ویژگی های کاملا تعریف شده است که می‌تواند از آن ها استفاده مجدد کرد و کلاس معماری را توصیف می‌کند.

توسعه یک معماری را می‌توان فرایندی برای انتخاب، وصل کردن و ترکیب الگو ها دانست. معماری نرم افزار باید تصمیم بگیرد که :

  • چگونه می توان آن را با تناسب و محدودیت های مسئله تنظیم کرد؟
  • چگونه می‌ توان یک الگو را لحظه ای یا فوری کرد؟

مارک ریچارد در کتابی به نام الگو های معماری نرم افزار، ۵ الگوی معماری نرم افزار را معرفی کرد :

  • میکروکرنل
  • میکروسرویس
  • معماری لایه ای
  • مبتی بر رویداد
  • مبتنی بر فضا

۵ الگوی مهم معماری نرم افزار

  • میکروکرنل

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

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

الگوی معماری میکروکرنل به شما این امکان را می‌دهد تا ویژگی های برنامه های کاربردی دیگری را به عنوان افزونه ها به برنامه اصلی اضافه کنید همچنین قابلیت توسعه و جداسازی ویژگی ها را نیز فراهم کنید.

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

  • سیستم اصلی
  • ماژول های افزونه

منطق برنامه بین ماژول های مستقل افزونه و سیستم اصلی پایه تقسیم می‌شود همچنین قابلیت توسعه، انعطاف پذیری و جداسازی، ویژگی های برنامه و منطق پردازشی سفارش را دارد و سیستم اصلی الگوی معماری میکروکرنل به طور سنتی فقط دارای حداقل قابلیت های راه اندازی برای عملیاتی کردن سیستم است.

شاید بهترین نمونه از معماری میکروکرنل Eclipse IDE باشد. بارگیری محصول اصلی Eclipse مقداری بیشتر از ویرایشگر در اختیار شما قرار می‌دهد. با این حال، هنگامی که شروع به افزودن افزونه ها می‌کنید، به محصولی قابل تنظیم و مفید تبدیل می‌شود.

 

مزایا :

  • انعطاف پذیری و توسعه عالی
  • در برخی موارد امکان افزودن افزونه در حین اجرای برنامه
  • قابل حمل
  • نصب‌ آسان
  • سرعت پاسخ دهی بالا حتی در زمانی که محیط در حال تغییر است
  • ماژول های افزونه را می‌توان به تنهایی آزمایش کرد
  • عملکرد بالا
  • امکان شخصی سازی برنامه با توجه به ویژگی های مورد نیاز
  • امکان ساده سازی برنامه با توجه به ویژگی های مورد نیاز

 

مناسب برای :

  • برنامه هایی که داده ها را از منابع مختلف دریافت می‌کنند
  • برنامه هایی که مخصوص زمانبندی و برنامه ریزی کار است

 

  • الگوی میکروسرویس‌

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

 

مزایا :

  • میتوانید هر میکروسرویس را به طور جداگانه ببنویسید، نگه داری کنید و مستقر کنید
  • گسترش به آسانی
  • بازنویسی آسان قطعات برنامه
  • اعضای جدید تیم میتواندد به سرعت به تولید متصل شوند
  • برنامه آسان، قابل فهم و قابل اصلاح
  • قابل کنترل و قابل آزمایش
  • قابل استقرار به طور مستقل

 

مناسب برای :

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

 

  • الگوی معماری لایه ای

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

یکی از مهم ترین ویژگی های این الگوی قدرتمند، مولفه های موجود در یک لایه خاص فقط منطق مربوط به آن لایه سروکار دارند.

 

مزایا :

  • قابلیت تست بالا
  • سهولت بالای توسعه
  • قابل حفظ
  • اختصاص نقش جداگانه
  • بروزرسانی و تقویت لایه ها به طور جداگانه آسان است

 

مناسب برای :

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

 

  • الگوی مبتنی بر رویداد

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

 

مزایا :

  • به راحتی با محیط های پیچیده و اغلب شلوغ سازگار هستند.
  • مقیاس پذیری آسان

 

مناسب برای :

  • سیستم های غیرهمزمان با جریان های داده‌ی غیرهمزمان
  • رابط های کاربری

 

  • الگوی مبتنی بر فضا

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

 

مزایا :

  • به محیط در حال تغییر پاسخ می‌دهد.
  • پویا هستند و ابزار های پیشرفته مبتنی بر فضای ابری امکان ساده سازی برنامه ها را برای سرور ها فراهم می‌آورند.
  • عملکرد بالا
  • مقیاس پذیری بالا

 

مناسب برای :

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

 

اشتراک

نظرات

  1. هیچ نظری برای این مقاله ثبت نشده است.