Architekturális minta
Az architektúraminta egy általános, újrafelhasználható megoldás egy adott kontextusban gyakran előforduló szoftverarchitektúra-problémára.[1] Az architektúraminták a szoftverfejlesztés különböző problémáival foglalkoznak, mint például a számítógépes hardver teljesítményének korlátaival, a magas rendelkezésre állással és az üzleti kockázat minimalizálásával. Néhány architekturális mintát szoftverkeretrendszereken belül valósítottak meg.
A „minta” szó szoftveriparban való használatára a hagyományos építészetben kifejezett hasonló fogalmak voltak hatással, például Christopher Alexander A Pattern Language (1977) című műve, amely a gyakorlatot egy mintalexikon létrehozásának szempontjából tárgyalta, arra ösztönözve az informatika gyakorlóit, hogy saját tervezési lexikonjukról gondolkodjanak.
E metafora használata a szoftverfejlesztő szakmán belül Erich Gamma, Richard Helm, Ralph Johnson és John Vlissides - akiket már általánosan „Négyek bandája” néven ismernek - Design Patterns (1994) című könyvének publikálása után vált általánossá, amely egybeesett a nyilvános internet korai éveivel, és jelezte a komplex szoftverrendszerek „világfelfalásának”[2] kezdetét, valamint a szoftverfejlesztés gyorsan burjánzó világának a lehető legmélyebb szinten történő kodifikálásának szükségességét, miközben rugalmas és adaptív marad.
Az architektúraminták hasonlóak a szoftvertervezési mintákhoz, de szélesebb körűek.
Meghatározás
[szerkesztés]Bár egy architektúraminta egy rendszer képét közvetíti, mégsem architektúra. Az építészeti minta egy olyan koncepció, amely megoldja és körülhatárolja egy szoftverarchitektúra néhány alapvető összetartó elemét. Számtalan különböző architektúra valósíthatja meg ugyanazt a mintát, és osztozhat a kapcsolódó jellemzőkben. A mintákat gyakran úgy határozzák meg, mint „szigorúan leírt és általánosan elérhető”[3][4]
Építészeti stílus
[szerkesztés]A hagyományos épületarchitektúrát követve a „szoftverarchitektúra stílusa” egy sajátos építési mód, amelyet azok a jellemzők jellemeznek, amelyek kiemelkedővé teszik.
Egy építészeti stílus meghatározza: a rendszerek családját a strukturális szerveződés mintája szerint; az összetevők és csatlakozók szókincsét, a kombinálhatóságukra vonatkozó korlátozásokkal.
Az építészeti stílus olyan építészeti tervezési döntések megnevezett gyűjteménye, amelyek (1) egy adott fejlesztési kontextusban alkalmazhatók, (2) korlátozzák az adott kontextusban egy adott rendszerre jellemző építészeti tervezési döntéseket, és (3) előnyös tulajdonságokat váltanak ki minden egyes eredő rendszerben.
Egyesek az építészeti mintákat és az építészeti stílusokat azonosnak tekintik,[5] mások a stílusokat a minták specializációjaként kezelik. Közös bennük, hogy mind a minták, mind a stílusok az építészek által használható idiómák, „közös nyelvet” vagy „szókincset” biztosítanak, amellyel a rendszerek osztályait lehet leírni.
A fő különbség az, hogy egy minta egy probléma megoldásának tekinthető, míg egy stílus általánosabb, és megjelenéséhez nincs szükség megoldandó problémára.
Példák
[szerkesztés]Az alábbiakban az architektúraminták, valamint a megfelelő szoftvertervezési minták és megoldási minták listája található.
Részterület | Építészeti minta | Szoftvertervezési minták | Megoldási minták | Kapcsolódó minták |
---|---|---|---|---|
Adatintegráció / SOA |
|
|
|
|
|
||||
|
|
|
||
Adatarchitektúra |
|
|
| |
Analitika és üzleti intelligencia |
|
|
|
|
Törzsadatok-kezelés |
|
|
| |
Adatok modellezése |
|
|
||
Mesterséges intelligencia |
|
|
Néhány további példa az építészeti mintákra:
- Blockboard rendszer
- Bróker minta
- Eseményvezérelt architektúra
- Implicit meghívás
- Rétegek
- Hatszögletű architektúra
- Mikroszolgáltatások
- Művelet - tartomány - válaszadó, Modell - Nézet - vezérlő, Prezentáció - Absztrakció - Vezérlés, Modell - Nézet - Előadó és Modell - Nézet - Nézetmodell
- Entitáskomponens-rendszer
- Entitás-vezérlés-határ
- Többszintű architektúra (gyakran három- vagy n-szintű)
- Meztelen objektumok
- Operatív adattároló (ODS)
- Ponttól-pontig
- Csatorna- és szűrőarchitektúra
- Szolgáltatásorientált architektúra
- Téralapú architektúra
- Elosztott hash tábla
Jegyzetek
[szerkesztés]- ↑ R. N. Taylor, N. Medvidović and E. M. Dashofy, Software architecture: Foundations, Theory and Practice. Wiley, 2009.
- ↑ Andreessen. „Why Software Is Eating The World”, The Wall Street Journal, 2011. augusztus 20. (Hozzáférés: 2020. április 25.)
- ↑ Chang: An Experience of Applying Pattern-based Software Framework to Improve the Quality of Software Development: 4. The Design and Implementation of OS2F. Journal of Software Engineering Studies, Vol. 2, No. 6 pp. 185–194. the Third Taiwan Conference on Software Engineering (TCSE07), 2008. június 1. [2011. szeptember 22-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. május 16.) „Furthermore, patterns are often defined as something "strictly described and commonly available". For example, layered architecture is a call-and-return style, when it defines an overall style to interact.”
- ↑ Architectural Patterns: Definition. AAHN INFOTECH (INDIA) PVT. LTD.. [2012. június 23-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. május 16.) „Even though an architectural pattern conveys an image of a system, it is not an architecture as such. An architectural pattern is rather a concept that solves and delineates some essential cohesive elements of a software architecture. Countless different architectures may implement the same pattern and thereby share the related characteristics. Furthermore, patterns are often defined as something "strictly described and commonly available".”
- ↑ Chapter 3: Architectural Patterns and Styles
Források
[szerkesztés]- Avgeriou (2005). „Architectural patterns revisited:a pattern language”. 10th European Conference on Pattern Languages of Programs (EuroPlop 2005), Irsee, Germany, July.
- Buschmann F.. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons (1996)
- Software Architecture in Practice: Second Edition. Addison-Wesley (2005)
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben az Architectural pattern című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.