وبلاگ اختصاصی

مهندسی

10 الگوی معماری معمول نرم افزار به طور خلاصه

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

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

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

الگوی لایه ای

  1. الگوی سرویس گیرنده-سرور
    این الگو از دو طرف تشکیل شده است. یک سرور و چندین مشتری مؤلفه سرور به چندین مؤلفه مشتری خدمات ارائه می دهد. مشتریان خدمات را از سرور درخواست می کنند و سرور خدمات مربوطه را به آن مشتریان ارائه می دهد. علاوه بر این، سرور همچنان به درخواست های مشتری گوش می دهد.
    استفاده
    برنامه های آنلاین مانند ایمیل، اشتراک اسناد و بانکداری.

مجری ذیصلاح |مهندس مجری ساختمان اراک و تهران

الگوی سرویس گیرنده-سرور

  1. الگوی ارباب-برده
    این الگو از دو طرف تشکیل شده است. ارباب و بردگان مولفه اصلی کار را بین اجزای برده یکسان توزیع می‌کند و نتیجه نهایی را از نتایجی که Slave برمی‌گردانند محاسبه می‌کند.
    استفاده
    در تکثیر پایگاه داده، پایگاه داده اصلی به عنوان منبع معتبر در نظر گرفته می شود و پایگاه داده های برده با آن هماهنگ می شوند.
    تجهیزات جانبی متصل به یک اتوبوس در یک سیستم کامپیوتری (درایوهای اصلی و برده).

الگوی ارباب-برده

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

الگوی لوله-فیلتر

  1. الگوی کارگزار
    این الگو برای ساختار سیستم های توزیع شده با اجزای جدا شده استفاده می شود. این اجزا می توانند با فراخوانی سرویس از راه دور با یکدیگر تعامل داشته باشند. یک جزء کارگزار مسئول هماهنگی ارتباط بین اجزا است.
    سرورها قابلیت های خود (خدمات و ویژگی ها) را برای یک کارگزار منتشر می کنند. مشتریان خدماتی را از کارگزار درخواست می کنند و کارگزار سپس مشتری را به یک سرویس مناسب از رجیستری خود هدایت می کند.
    استفاده
    نرم افزارهای کارگزار پیام مانند Apache ActiveMQ، Apache Kafka، RabbitMQ و JBoss Messaging.

الگوی کارگزار

  1. الگوی همتا به همتا
    الگوی معماری معمول نرم افزار
    در این الگو، اجزای فردی به عنوان همتا شناخته می شوند. همتایان ممکن است هم به عنوان مشتری عمل کنند و هم از دیگر همتایان خدمات درخواست کنند و هم به عنوان یک سرور به سایر همتایان خدمات ارائه دهند. یک همتا ممکن است به عنوان یک مشتری یا به عنوان یک سرور یا به عنوان هر دو عمل کند، و می تواند نقش خود را به صورت پویا با گذشت زمان تغییر دهد.
    استفاده
    شبکه های اشتراک گذاری فایل مانند Gnutella و G2)
    پروتکل های چند رسانه ای مانند P2PTV و PDTP.
    محصولات مبتنی بر ارزهای دیجیتال مانند بیت کوین و بلاک چین

الگوی همتا به همتا

  1. الگوی رویداد اتوبوس
    این الگو در درجه اول به رویدادها می پردازد و دارای 4 جزء اصلی است. منبع رویداد، شنونده رویداد، کانال و اتوبوس رویداد. منابع پیام‌هایی را به کانال‌های خاصی در اتوبوس رویداد منتشر می‌کنند. شنوندگان در کانال های خاصی مشترک می شوند. شنوندگان از پیام هایی که در کانالی که قبلاً در آن مشترک شده اند منتشر می شود مطلع می شوند.
    استفاده
    توسعه اندروید
    خدمات اطلاع رسانی

الگوی رویداد اتوبوس

  1. الگوی مدل-نما-کنترلر
    این الگو که به عنوان الگوی MVC نیز شناخته می شود، یک برنامه تعاملی را به 3 قسمت تقسیم می کند:
    مدل – شامل عملکرد و داده های اصلی است
    View – اطلاعات را به کاربر نمایش می دهد (بیش از یک نمایش ممکن است تعریف شود)
    کنترل کننده – ورودی کاربر را کنترل می کند
    این کار برای جداسازی نمایش های داخلی اطلاعات از روش هایی که اطلاعات به کاربر ارائه می شود و از آن پذیرفته می شود، انجام می شود. این مؤلفه ها را جدا می کند و امکان استفاده مجدد کارآمد از کد را فراهم می کند.
    استفاده
    معماری برای برنامه های کاربردی وب جهانی در زبان های برنامه نویسی اصلی.
    وب

rameworks مانند Django و Rails.

الگوی مدل-نما-کنترل کننده

  1. الگوی تخته سیاه
    این الگو برای مسائلی که هیچ استراتژی راه حل قطعی برای آنها شناخته شده نیست مفید است. الگوی تخته سیاه از 3 جزء اصلی تشکیل شده است.
    تخته سیاه – یک حافظه جهانی ساختار یافته حاوی اشیاء از فضای راه حل
    منبع دانش – ماژول های تخصصی با نمایندگی خودشان
    جزء کنترل – ماژول ها را انتخاب، پیکربندی و اجرا می کند.
    همه اجزا به تخته سیاه دسترسی دارند. کامپوننت ها ممکن است اشیاء داده جدیدی تولید کنند که به تخته سیاه اضافه می شوند. مؤلفه‌ها به دنبال انواع خاصی از داده‌ها در تخته سیاه هستند و ممکن است این داده‌ها را با تطبیق الگو با منبع دانش موجود پیدا کنند.
    استفاده
    تشخیص گفتار
    شناسایی و ردیابی خودرو
    شناسایی ساختار پروتئین
    تفسیر سیگنال های سونار

الگوی تخته سیاه

  1. الگوی مترجم
    این الگو برای طراحی کامپوننتی استفاده می شود که برنامه های نوشته شده به زبان اختصاصی را تفسیر می کند. عمدتاً نحوه ارزیابی خطوط برنامه را مشخص می کند که به عنوان جملات یا عبارات نوشته شده در یک زبان خاص شناخته می شود. ایده اصلی این است که برای هر نماد زبان یک کلاس داشته باشیم.
    استفاده
    زبان های پرس و جو پایگاه داده مانند SQL.
    زبان هایی که برای توصیف پروتکل های ارتباطی استفاده می شوند.

الگوی مترجم
مقایسه الگوهای معماری

امیدواریم این مقاله برای شما مفید بوده باشد. خیلی دوست داشتم بدونم چی تو ذهنت میگذره. 😇
با تشکر برای خواندن. 😊

نظرات

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *