2018. január 30., kedd

Szabványos, megosztható, újrahasznosítható tervezés


Architekti munkánk során komplex rendszerekkel foglalkozunk. A tervezés fontos, meghatározó része a munkánknak. Mégis sok esetben nem használjuk a tervezés szabványait, az érintettek számára nehezen hozzáférhetők és újrahasznosíthatók korábbi munkáink eredményei. Így aztán drágán tervezünk, nem hatékonyan használjuk az erőforrásainkat. Vannak nyílt szabványok, van elérhető központilag menedzselt eszköz, amit használhatunk. Egy akár teljesen ingyenesen is elérhető megoldást mutatok be az alábbiakban.
Ezzel a megoldással jobb minőségű tervek készülhetnek, akár mindenki számára elérhetőek a munka eredményei, egyszerűen újrahasznosíthatók.

Nézetek

Mivel foglalkozik az enterprise architekt, milyen területek tervezésével? A TOGAF fogalmait használva üzleti, adat, alkalmazás és technológiai területet fed le az architekti munka.



(A TOGAF-ról több korábbi blog bejegyzésem is tartalmaz további részleteket, például: itt, itt, itt és itt is)
A komplex architektúrák több nézet együttesével írhatók le. Az architekt felelőssége annak meghatározása, hogy hány nézet elkészítése szükséges. Nyilván a feltétlenül szükségesnél több nézet elkészítése többlet erőforrás felhasználással, nagyobb költségekkel járna, így aztán nem célszerű. Másrészről azonban a szükségesnél kevesebb (vagy nem megfelelő) nézet elkészítése nem tudja biztosítani, hogy valóban az ideális architektúra valósuljon meg.

Közös nyelv

Ha a nézetek szükséges mennyisége rendben is van, még mindig komoly problémát jelenthet a közös nyelv hiánya.
Kell tehát egy közös nyelv!
Zavaros ábrák helyett egyértelmű, tiszta kommunikációra van szükség, félreérthetőség, kétértelműség nélkül. A következetesség, a különböző nézetek összefüggőségének, harmóniájának biztosítása is fontos feladat. A megfelelő vizuális megjelenítés kulcskérdés. Lehetőleg a nézeteknek az egyszerű tájékoztatáson, információ közlésen túlmenően támogatni kell elemzések elvégzését is.
A fenti lehetséges problémákra átfogó megoldást nyújthat egy megfelelő szabvány használata. Nos szerencsére létezik az architektúra modellezési nyelv elfogadott nyílt szabványa, ez az ArchiMate.
(Az ArchiMate több korábbi blog bejegyzésemnek is tárgya volt, például: itt, itt, itt, itt és itt)

ArchiMate

ArchiMate
Mit nyújt az ArchiMate szabvány? Egy grafikus nyelvet biztosít, architektúrák leírására alkalmas fogalmakkal. A szabvány egy komplett keretrendszert tartalmaz a fogalmak rendszerezésére. Természetesen rendelkezésre állnak a szabványban a szükséges grafikai jelölések a fogalmak megjelenítésére. Ezeken túl még nagyon hasznos elképzeléseket tartalmaz a szabvány a különböző érintett személyek számára alkalmas vizualizációkról. Az ArchiMate egy nyílt szabvány, amit a The Open Group gondoz. A nyelv népszerűségét mutaja, hogy jelen cikk írásakor az ArchiMate LinkedIn csoport tagjainak száma meghaladta a 10 000 számot.
A nyelv kapcsán meg kell említenünk, hogy a sikeres architekti munkához a szabványos tervező nyelven kívül legalább ugyanilyen fontos a munka módszertani hátterét biztosító enterprise architect keretrendszer is. A TOGAF (The Open Group Architecture Framework) és az ArchiMate szorosan kapcsolódnak amint az alábbi ábra is mutatja. A közös pontot az jelenti, hogy a tervezett rendszer leírását a különböző érintett szereplők sajátos nézőpontjainak megfelelő nézetek elkészítése biztosítja.
A TOGAF részletesen leírja annak folyamatát, hogy hogyan célszerű ezeket a nézeteket elkészíteni. Az ArchiMate pedig konkrét eszközt ad a jól definiált grafikus nyelv segítségével ezen nézetek egyértelmű, félreérthetetlen, következetes elkészítésére.

Több szintű modellek

Komplex rendszerek esetében (amilyenek a nagyvállalatok, az összetett IT rendszerek, a bonyolult adatközponti infrastruktúrák, stb.) több szinten célszerű modellezni. Ezek közül az ArchiMate az egyik fontos modellezési szintet szolgálja ki: a nagyon magas szintű stratégia modelleknél jóval konkrétabb, de a megvalósítási modelleknél magasabb szintű tartalom elkészítésére szolgál.

Az ArchiMate keretrendszere

Az ArchiMate szabvány nem csak felsorolja a nyelv által használt fogalmakat és azok jelöléseit, de egy komplett rendszert ír le a fogalmak rendszerezésével. Ebben az ArchiMate fogalmak egyrészről rétegekbe rendeződnek, másik szempontból pedig aspektusokba vannak szervezve. Az alábbi ábra mutatja az ArchiMate rétegeit és aspektusait. Egy példaként tartalmaz három alapfogalmat is, mindhárom az üzleti rétegből, de különböző aspektusokból.
Egy egyszerű ArchiMate nézet a fent használt fogalmak használatával:

Verziókezelés

Amikor több nézet készül, esetleg több szakember párhuzamosan dolgozik ezek kialakításán és különböző változatokat dolgoznak ki, akkor a fent ismertetett szabványos nyelv alkalmazásán kívül még célszerű egy korszerű verzió kezelő megoldást is alkalmazni.
Az 1980-as évektől a legismertebb korai verziókövető rendszer a CVS volt. Azóta sok hasonló rendszert fejlesztettek. Alapvetően a Linux kernel fejlesztésének támogatására létrehoztak egy saját verziókezelőt. Cél volt a gyorsaság, egyszerűség, a nem-lineáris fejlesztés (párhuzamos branchek) támogatása és a nagy projektek hatékony kezelése. Így jött létre a legnépszerűbb szabadon használható elosztott verziókövető rendszer a Git.
https://hu.wikipedia.org/wiki/Git
Az architektúra nézetek készítése során (csakúgy, mint például a szoftverek forráskódjának fejlesztésekor is) jelentős mennyiségű digitális tartalom elkészítése a feladat, aminek során nagy mennyiségű módosítás történik, amiben több szakember vesz részt. Ezekkel a tevékenységekkel kapcsolatban fontos cél a változások nyomon követhetősége.
A Git előnyei közé tartozik, hogy elosztott, rugalmas, könnyű vele branch-eket használni, gyors és jól használható más rendszerekkel együtt is. Bármilyen tartalom kezelhető vele, a klasszikus példa a forráskód, de sok más digitális tartalom, így az architektúra nézetek esetében is igen hasznos.

GitHub

Az interneten igen népszerű a GitHub webalapú Git repository hosztoló szolgáltatás. Van ingyenes és fizetős hozzáférése is. Jelképe az Octocat, ami részben macska, részben polip lény, emberi arccal.
https://github.com/
A webes szolgáltatás itt érhető el: www.github.com. Emellett a szolgáltatás mellett a vállalatok, nagyobb szervezetek számára fontos a GitHub Enterprise szoftver is. Ez hasonló a GitHub nyilvános szolgáltatásához, de kifejezetten nagy, vállalati szoftver fejlesztő csoportok használatára tervezték és tipikusan vállalati tűzfalon belül üzemeltetett megoldásként használják a nagyobb szervezetek.

Kliens alkalmazás az ArchiMate használatához

A GitHub kiváló eszköz az architektúra nézetek verzió-kezelt tárolására és megosztására. Szükséges mellette egy kliens alkalmazás, ami az architektúra nézetek szerkesztését, ember számára értelmezhető megjelenítését biztosítja. Az ArchiMate szabványt szerencsére több szoftver gyártó is támogatja és különböző architekti munkát támogató szoftverek érhetők el a szoftver piacon. Most egy ingyenesen hozzáférhető, nyílt forráskódú ArchiMate modellező alkalmazást mutatunk be, ez az Archi.
https://www.archimatetool.com/
Az Archi a legelterjedtebb ingyenes ArchiMate modellező eszköz. Egy szabad és nyílt forráskódú modellező eszköz ArchiMate modellek és vázlatos rajzok készítéséhez. Az Archit világszerte több ezer architect használja.  
Az Archi asztali alkalmazáshoz létezik egy plugin, ami kényelmesen elérhetővé teszi az alkalmazásból a GitHub verzió kezelő szolgáltatásait. Ezáltal az architect szakember által az Archi kliens programban elkészített szabványos ArchiMate nézetek elhelyezhetők akár a nyilvános github.com verzió kezelőben, akár nagyvállalatok esetében a céges tűzfalon belül üzemeltetett GitHub Enterprise rendszerekben és ezzel az ilyen rendszerek szolgáltatásai kihasználhatók az architektúra nézetek fejlesztése során is.
Maga az Archi kliens alkalmazás az ArchiMate nézetek elkészítésén kívül több hasznos szolgáltatást biztosít, többek között riportok készíthetők több népszerű dokumentum formátumban az elkészült nézetekről.
Másik hasznos szolgáltatás, hogy az Archi nézetekben szereplő komponensekről, kapcsolataikról minden adat kimenthető és Excel-ben feldolgozható.
Talán még ennél is fontosabb egy másik exportálási (és importálási) funkció: szabványos ArchiMate® Model Exchange File Format formátumban is kimenthető a munka eredménye. Ez a formátum szintén a The Open Group által kidolgozott szabvány és a jó hír az, hogy bár a szabvány viszonylag új, már is több szoftver gyártó támogatja. Az említett model exchange formátumot támogatják pl. a következő eszközök: BiZZdesign Architect, Sparx Enterprise Architect, ArchiRepo és természetesen az Archi is.

Összefoglalás

A fentebb leírt megoldás műszaki részét az alábbi ArchiMate nézet szemlélteti.
Az ismertetett megoldás tehát a TOGAF keretrendszer módszertanának használata mellett az ArchiMate modellező nyelvnek az Archi kliens programban történő alkalmazását javasolja a GitHub verziókezelő rendszerben történő tárolással együtt. Ezek alkalmazásával javul az architekti munka eredményeinek minősége, az újrahasznosítás erős támogatásával csökkenhet a tervező munka költsége is miközben valódi értéket termel a szervezet számára.