الگوی معماری
این مقاله، الگوی معماری، اخیراً بهواسطهٔ فرایند ایجاد مقاله ایجاد شدهاست. بازبینیکننده در حال بستن درخواست است و این برچسب احتمالاً بهزودی برداشته میشود.
ابزارهای بازبینی: پیشبارگیری بحث اعلان به نگارنده |
خطای اسکریپتی: پودمان «AfC submission catcheck» وجود ندارد. الگوی معماری (به انگلیسی: Architectural pattern) یک راه حل کلی و قابل استفاده مجدد برای یک مشکل رایج در معماری نرمافزار در یک زمینه معین است.[۱] الگوهای معماری به مسائل مختلفی در مهندسی نرمافزار میپردازند، مانند محدودیتهای عملکرد سختافزار کامپیوتر، در دسترس بودن بالا و به حداقل رساندن ریسک تجاری. برخی از الگوهای معماری در چارچوبهای نرمافزاری پیادهسازی شدهاند.
استفاده از کلمه «الگو» در صنعت نرمافزار تحت تأثیر مفاهیم مشابهی است که در معماری سنتی بیان شدهاست، مانند یک زبان الگو (۱۹۷۷) کریستوفر الکساندر که این عمل را از نظر ایجاد واژگان الگو مورد بحث قرار میدهد و متخصصان کامپیوتر را ترغیب میکند تا به فرهنگ واژگان طراحی خود فکر کنند.
استفاده از این استعاره در حرفه مهندسی نرمافزار پس از انتشار الگوهای طراحی (۱۹۹۴) توسط اریش گاما، ریچارد هلم، رالف جانسون و جان ولیسیدز - که اکنون به عنوان «Gang of Four» شناخته میشود - همزمان با سالهای اولیه اینترنت عمومی، شروع سیستمهای نرمافزاری پیچیده که «دنیا را میخورند»[۲] و نیاز متناظر به کدگذاری دنیای پرسرعت توسعه نرمافزار در عمیقترین سطح ممکن، در حالی که انعطافپذیر و سازگار باقی میماند، را نشان میدهد.
الگوهای معماری مشابه الگوهای طراحی نرمافزار هستند اما دامنه وسیع تری دارند.
تعریف[ویرایش]
اگرچه یک الگوی معماری تصویری از یک سیستم را منتقل میکند، اما یک معماری نیست. الگوی معماری مفهومی است که برخی از عناصر منسجم اساسی یک معماری نرمافزار را حل و ترسیم میکند. معماریهای مختلف بیشماری ممکن است الگوی یکسانی را پیادهسازی کنند و ویژگیهای مرتبط را به اشتراک بگذارند. الگوها اغلب به عنوان «بهطور دقیق توصیف شده و معمولاً در دسترس» تعریف میشوند.
سبک معماری[ویرایش]
به مانند معماری سنتی ساختمان، «سبک معماری نرمافزاری» به دنبال یک روش خاص ساخت و ساز است که با ویژگیهایی مشخص میشود که آن را قابل توجه میکند.
یک سبک معماری تعریف میکند: خانواده ای از سیستمها بر اساس الگوی سازمان ساختاری. واژگانی از اجزا و رابطها، با محدودیتهایی در مورد نحوه ترکیب آنها.[۳]
سبک معماری مجموعه ای نامگذاری شده از تصمیمات طراحی معماری است که (۱) در یک زمینه توسعه معین قابل اعمال است، (۲) تصمیمات طراحی معماری را که مختص یک سیستم خاص در آن زمینه است، محدود میکند، و (۳) در هر سیستم نتایج، ویژگیهای مفید را استخراج میکند.[۱]
برخی الگوهای معماری و سبکهای معماری را یکسان میدانند،[۴] برخی سبکها را بهعنوان تخصصهای الگوها در نظر میگیرند. وجه اشتراک آنها این است که هم الگوها و هم سبکها اصطلاحاتی هستند که معماران باید از آنها استفاده کنند، آنها «زبان مشترکی را ارائه میدهند»[۴] یا «واژگان»[۳] که با آن کلاسهایی از سیستمها را توصیف میکنند.
تفاوت اصلی این است که یک الگو را میتوان به عنوان یک راه حل برای یک مشکل دید، در حالی که یک سبک کلی تر است و برای ظاهر خود نیازی به حل مشکل ندارد.
مثالها[ویرایش]
در اینجا لیستی از الگوهای معماری و الگوی طراحی نرمافزار مربوطه و الگوهای راه حل آورده شدهاست.
حوزه - زیر دامنه | الگوی معماری | الگوهای طراحی نرمافزار | الگوهای راه حل | الگوهای مرتبط |
---|---|---|---|---|
ادغام داده/معماری سرویسگرا |
|
| ||
|
||||
Data architecture |
|
| ||
Analytics and هوشمندی کسبوکار |
|
|
|
|
Master data management |
|
|
| |
مدلسازی داده |
|
|||
هوش مصنوعی |
|
|
چند نمونه فرعی از الگوهای معماری:
- سامانه تخته سیاه
- الگوی کارگزار
- معماری رویدادمحور
- استناد ضمنی
- لایه ای
- معماری شش ضلعی
- مایکروسرویسها
- اقدام – دامنه – پاسخگو
- سیستم مولفه نهاد
- نهاد-کنترل-مرز
- معماری چندلایه (اغلب سه لایه یا n لایه)
- برنامهنویسی شیءگرا
- اشیاء برهنه
- ذخیره اطلاعات عملیاتی (ODS)
- همتابههمتا (رایانه)
- خط لوله (نرمافزار)
- معماری سرویسگرا
- معماری مبتنی بر فضا
- جدول درهمسازی توزیعشده
- الگوی انتشار-اشتراک
- کارگزار پیام
- سلسله مراتبی مدل-نما-کنترلکننده
جستارهای وابسته[ویرایش]
پانویس[ویرایش]
- ↑ ۱٫۰ ۱٫۱ R. N. Taylor, N. Medvidović and E. M. Dashofy, Software architecture: Foundations, Theory and Practice. Wiley, 2009.
- ↑ خطای لوآ در پودمان:Citation/CS1/fa/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
- ↑ ۳٫۰ ۳٫۱ M. Shaw and D. Garlan, Software architecture: perspectives on an emerging discipline. Prentice Hall, 1996.
- ↑ ۴٫۰ ۴٫۱ Archiveddocs. «Chapter 3: Architectural Patterns and Styles». docs.microsoft.com (به English). دریافتشده در ۲۰۲۱-۱۲-۱۶.صفحه پودمان:Citation/CS1/fa/styles.css محتوایی ندارد.
رده:الگوهای طراحی نرمافزار رده:الگوی معماری (علم رایانه)
This article "الگوی معماری" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:الگوی معماری. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.