Architekturális minta

A Wikipédiából, a szabad enciklopédiából

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
  • ETL (adatkivonat-átalakítás és -betöltés)
  • Változási adatok rögzítése
  • Közel valós idejű ETL
  • Batch ETL
  • Adatkeresés
  • Hibakezelés
  • Munkaütemezés
  • Az adatok ellenőrzés
  • Lassan változó dimenziók terhelés
  • EAI
  • Törzsadat-központ
  • Operatív adattároló (ODS)
  • Adattároló
  • Adattárház
  • MFT
  • Egyirányú
  • Szinkron kérés / válasz
  • Alapvető visszahívás
  • Igényellenőrzés
Adatarchitektúra
  • Tranzakciós adattároló (TDS / OLTP)
  • Törzsadattároló
  • Operatív adatároló
  • Adattároló
  • Adattárház
  • Egyedi alkalmazások adatbázisai
  • Csomagolt alkalmazás-adatbázisok
  • ETL
  • EAI
  • SOA
Analitika és üzleti intelligencia
  • Tranzakciós jelentés
  • Operatív analitika
  • Üzleti analitika
  • Előrejelző analitika
  • Előrejelző analitika
  • Folyamatos analitika
  • Adattudomány és fejlett analitika
  • NLP
  • Tranzakciós jelentésadatokhoz való hozzáférés
  • Operatív jelentésadatokhoz való hozzáférés
  • Analitikus jelentési adatokhoz való hozzáférés
  • Analitikus műszerfal adathozzáférés
  • Működési műszerfal adatfozzáférés
  • Adatbányászat
  • Valós műszerfalak
  • In - memory analitika
  • Statisztikai elemzés
  • Előrejelző analitika
  • ETL
  • EAI
  • TDS
  • Operatív adattárolás
  • Adattároló
Törzsadatok-kezelés
  • Törzsadat-központ
  • Törzsadatok replikációja
  • Törzsadat-szolgáltatások
  • Törzsadatok szinkronizálása
  • Változási adatok rögzítése
  • EAI
  • STD
Adatok modellezése
  • Dimenziós adatmodellezés
  • ER adatmodellezés
  • Modellezési szabványok
  • Elnevezési konvenciók
Mesterséges intelligencia
  • Döntéskezelés
  • Beszédfelismerés
  • Szöveges elemzés és NLP
  • Természetes nyelvgenerálás
  • Klasszikus gépi tanulás
  • Mély tanulás
  • Robotizált folyamatautomatizálás
  • Kép- és videóelemzés

Néhány további példa az építészeti mintákra:

Jegyzetek[szerkesztés]

  1. R. N. Taylor, N. Medvidović and E. M. Dashofy, Software architecture: Foundations, Theory and Practice. Wiley, 2009.
  2. Andreessen. „Why Software Is Eating The World”, The Wall Street Journal, 2011. augusztus 20. (Hozzáférés: 2020. április 25.) 
  3. 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.”
  4. 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".”
  5. Chapter 3: Architectural Patterns and Styles

Források[szerkesztés]

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.

Kapcsolódó szócikk[szerkesztés]