IFI 6068 Sissejuhatus infosüsteemidesse · 2017 sügissemester · 14 loengut · 14 praktikumi · 12 ülesannet · 6 näiterakendust · eksam

code

Loeng 9 · Süsteemi arhitektuur

Süsteemi arhitektuuri mõiste ja vajadus selle järele. Arhitektuuri esitamise tehnikad. Põhimõtteid ja juhiseid süsteemi arhitektuuri kujundamiseks.

Miks on süsteemi arhitektuurist vaja rääkida?

Praktiliselt iga reaalselt kasulik süsteem:

Süsteemi arhitektuuri mõiste on vajalik selleks, et:

Näide süsteemi arhitektuuri kirjeldusest

X-tee talitlusskeem (detail). Allikas: Kaljo, A. (2003) Projekti X-tee arengusammud. A & A, 3, 18.

Ülalesitatud X-tee talitlusskeem on üks vaade suhteliselt suure ja keeruka infosüsteemi arhitektuurile.

Näide süsteemi arhitektuuri kirjeldamise tehnikast: Süsteemi põhimõtteskeem (concept of operation diagram)

Süsteemi ideed (toimimise põhimõtet) selgitav diagramm (fragment) (high level operational concept graphic). Allikas: C4ISR Architecture Framework 2.0.

Näide süsteemi arhitektuuri kirjeldamise tehnikast: Zachmani raamistik (Zachman Framework)

Zachmani raamistik (detail). Allikas: A Practical Guide to Federal Enterprise Architecture (USA).

Arhitektuurse praktika tase

Eristada tuleb arhitektuursete lahenduste taset – kui hästi on süsteemid arhitektitud? – ja arhitektuuri esitamise taset – kui hästi süsteemide arhitektuur on kirjeldatud?

Süsteemide arhitektuurse taseme osas on üldistuvat seisukohta ilma vastavate uurimusteta raske võtta.

Kuid mida näeme süsteemi arhitektuuri esitamise praktikas? Paradoksaalne, kuid tõsi – süsteemi arhitektuurne kirjeldus on sageli puudu. Mida see tähendab? – Üldpilt saab siis olla ainult süsteemi tegijate peas. Kas see pilt on aga selge? Mille põhjal saavad süsteemi hiljem lülituvad arendajad ja kasutajad luua endale üldise pildi?

Teine väärnähtus: tehakse kirjeldusi, mille järele pole tegelikult vajadust. Reaalse süs­teemi ehitamisel/arendamisel on peaaegu alati ajapuudus. Seda, mida teha, on rohkem kui aega, energiat, teisi ressursse. Selle tõttu tuleks teha ai­nult selliseid tegevusi, mis viivad süsteemi arengut edasi. Küsimus on ainult selles, kas konkreetne arendus­tegevus annab kohese, silmaga nähtava efekti või on tegevuse mõ­ju kaugem ja vähem vahetu. Vahel tuleb arendus katkestada ja kõigepealt takistu­seks olev tehnoloogiline probleem lahendada (õppida tundma, katsetada) – alles siis saab kindlusega edasi minna. Skeeme ja kirjeldusi, millest midagi ei järgne, ei tuleks teha. Kahjuks küllaltki sageli produtseeritakse dokumentatsiooni kliendile mulje jätmiseks.

Kuidas mõistet “arhitektuur” kasutatakse?

Mis on arhitektuur?

Mis on süsteemi arhitektuur?

Olulisemad momendid süsteemi arhitektuuri loomisel:

Vajadus süsteemi arhitekti järele

Igal vähegi tõsisemal süsteemil peaks olema süsteemi arhitekt. Süsteemi arhitekti positsiooni on viimasel kümnel aastal aktiivselt kasutama. Süsteemi (pea)arhitekt peaks olema üks isik. Laeval saab olla – ja peab olema – ainult üks kapten. Vrdl. ainujuhtimise põhimõte militaaralal. Süsteemi arhitekt on isik, kes lõppkokkuvõttes vastutab süsteemi konstruktsioonilise kandvuse eest. Vastutamine eeldab õigust ja kohustust teha olulisi arhitektuurseid otsustusi. Arhitekt peab arvesse võtma ja ühitama erinevate huvirühmade soove; kuid demokraatlik määratlematus kujundusprotsessides ei garanteeri head arhitektuuri. Olukord, kus süsteemil ei ole ühte, kindlat arhitekti, on tõsise riski märk. See tähendab, et süsteem on triivimas.

“Experience shows the value of a coherent vision through a single person or a very small team”. Edukatel, innovaatilistel süsteemidel on reeglina olnud üks selgelt eristatav arhitekt: masstootmise süsteem (Henry Ford), raketitehnoloogia (Koroljov NSVLs, Saturn/Apollo projektid USAs), ARPAnet/Internet, Ethernet, GSM, MPEG jt.

Majanduslik motiiv

Arhitekti töö ei ole suunatud mitte ainult (ja peamiselt) sellele, et teha kaunist ja võimast süsteemi, vaid suures osas ka kulude kontrolli all hoidmisele. Õigeaegsed arhitektuursed valikud võimaldavad kokku hoida raha (saavutada sama või parem tulemus väiksema töö- ja materjalikuluga). Hea arhitektuurne lahendus tähendab reeglina ka väiksemat riski.

Projekti alustamisel ja esimeses kavandamistsüklis tehtud valikutel võib olla eriti suur mõju kogu projektile. Selle tõttu on arhitekti töö vastutusrikas, mitte ainult projekti esteetilise tulemuse vaid ka funktsionaalse ja majandusliku tulemi suhtes.

Arhitekti ülesanne

Kokkuvõttes: arhitekt loob vajadusi rahuldava, teostatava süsteemi kont­sept­siooni, tagab selle kontseptsiooni ühtsena säilimise arenduse prot­ses­sis ning kontrollib loodud süsteemi valmisolekut kasutusse võtuks.

Tähele panna: 1) arhitekt sünteesib erinevad vaated ja nõudmised ühtseks tervikuks – leiab optimaalse lahenduse, tehes vajadusel kompromisse erinevate nõudmiste ja piirangute vahel; 2) lahendus peab olema ühest küljest vajadusi rahuldav, teisest küljest teostatav; 3) arhitekti töö ei piirdu projekti valmimisega; ta osaleb aktiivselt lahenduse teostamisel, nõuandja ja järelevalvaja rollides.

Eesti keeles ei ole kahjuks levinud eraldi, eestipärased sõnad mitmete süsteemi­arendus­tegevuste, sh. arhitektuuri loomise kohta. Tasuks kaaluda järgmiste oskussõnade kasu­tu­selevõttu:

arhitektimine – arhitektuuri loomine, kujundamine; töö arhitektuuri kallal

projektimine – projekteerimine; töö projekti kallal.

Süsteemi arhitekti töö spetsiifika

Arhitekti ülesanded on suures osas põhimõtteliselt samad, sõltumata alast, kus:

Hea arhitekt

Projektijuhti ja süsteemi arhitekti suhe

Suuremas projektis on vajalik süsteemi arhitekt ja projektijuhi rollide eristamine ja andmine erinevatele töötajatele. Süsteemi arhitekt ei jõua tegelda kõigi organisatoorsete ja administreerimise küsimustega. Projektijuht ei jõua süveneda tehnoloogilistesse ja kompositsioonilistesse probleemidesse. Projektijuht ja süsteemi arhitekt peavad töötama käsikäes. Ei ole õige seada projektijuhti süsteemi arhitektist kõrgemale; pigem vastupidi – projektjuht peaks abistama süsteemi arhitekti projekti administratiivses aspektis.

Arhitektuuri kirjeldus

Kas arhitektuur on abstraktne või konkreetne mõiste?

Kuidas näeme arhitektuuri? Kas arhitektuuri saab tajuda vahetult?

Kas kahemõõtmeline diagramm on arhitektuur?

Kas kolmemõõtmeline virtuaalmaailm on arhitektuur?

Arhitektuuri esitused, kirjeldused ja arhitektuur ise on erinevad. Süsteemi arhitektuur alati on tervik. Seda tervikut on äärmiselt raske ühe skeemi abil esitada. Selle tõttu esitatakse süsteemi arhitektuur tavaliselt spetsialiseeritud jooniste ­– vaadete – abil.

Arhitektuursed vaated

Arhitektuuriline vaade on süsteemi lihtsustatud kirjeldus abstraktsioon), mis on tehtud ühest vaatepunktist või vaatenurgast. Vaade katab süsteemi valitud aspekte. Vaade ei esita antud vaatenurga jaoks ebaolulisi detaile. Arhitektuursed vaated on süsteemi tehtud „läbilõiked”.

Süsteemi arhitektuuri esitamiseks vajame reeglina mitut, erinevat kuid siiski omavahel kooskõlas olevat vaadet (ehk mudelit). Arhitektuuri kirjeldused on harilikult mitme­vaa­te­lised. Millised vaated (mudelid) on vajalikud – seda ei saa alati ette öelda. Vaadete ja mudelite valik sõltub uuritavast probleemist.

Tarkvarasüsteemide arhitektuuri esitamiseks on tänapäeval laialt populaarsust võitnud viiest vaate käsitlus:

  1. Use Case View

  2. Logical View — lõppkasutajale pakutav funktsionaalsus (End-User Functionality)

  3. Process View — jõudlus, skaleeritavus, läbilaskevõime (Performance, Scalability, Throughput)

  4. Implementation View — programmeerija vaade

  5. Deployment View — süsteemi topoloogia, kasutuselevõtmine, paigaldamine.

Kui palju arhitektuurseid vaateid on mõistlik?

Vaadete nomenklatuur ei pea olema jäik. Küsimus ei ole mitte niivõrd selles, kas ideaalseks on 4, 5 või 6 vaadet, vaid õige vaadete komplekti valimine, lähtudes ehitatava süsteemi eripärast. Loogiliseks aluseks on kujutusvajadused – mis on ebaselge? milliseid süsteemi aspekte tahame kujutada?

Näiteks ülaltoodud meetodis soovitatakse:

single processor: drop deployment view

single process: drop process view

very small program: drop implementation view.

Vaateid võib lisada ja ära jätta, vastavalt vajadusele. Lisaks ülaltoodud viiele vaatele soovitavad meetodi autorid vajadusel kasutada andmevaadet (Data view), turvavaadet (Security view) jt.

Arhitektuuri mõistete süsteem

Maier (2002) esitab arhitektuuri ja vaate seosed kokkuvõtlikult väga hästi aksiomaatiliste lausete abil:

18. Tarkvara arhitektuur – mida käsitleb?

Tarkvara arhitektuuriga otsustatakse (Booch):

Tarkvara arhitektuur käsitleb samuti järgmisi küsimusi (Booch):

Tarkvaralahenduse arhitektuur – elemendid

Mitte kõik lahenduse elemendid ei ole arhitektuur, ainult:

Diagramm

Süsteemi vaade esitatakse harilikult visuaalsete kujutiste (diagrammide, skeemide, jooniste) abil, mida täiendavad tekstid (seletuskiri jooniste juurde). Kasutatakse nii praktikas väljakujunenud diagrammide tüüpe (kokkuleppeid tähistuste jm. kujutusviiside osas) kui ka formaliseeritud meetoditega antud diagrammitüüpe.

Näiteks UML keel pakub 9 standardset diagrammitüüpi (vaadet):

Vaated süsteemi staatikasse:

Vaated süsteemi dünaamikasse:

Hea arhitektuuri omadused

Hea arhitektuur kestab. “The test of a good architecture is that it will last. The sound architecture is an enduring pattern.

Thomas:

Booch:

Arhitektuuri loomise “reegleid”

Kas arhitektuur ainult tekitatakse või tekib ka ise?

Thomas loetleb huvitava rea arhitektuuri loomise „reegleid”. Tasub tähele panna, et:

Thomase soovitused:

Infosüsteemi strateegiline arhitektuur (üks lihtsa meetodi võimalus)

Probleemid:

Mis on Infosüsteemi strateegiline arhitektuur? Organisatsiooni tasakaalustatud arengu jaoks strateegilise tähtsusega informatsiooniline produkt — integreeritud mudel — mis kirjeldab:

Infosüsteemi strateegilist arhitektuuri saab kasutada:

Mida annab infosüsteemi strateegiline arhitektuur?

Arhitektuursed vaated

Strateegiline arhitektuur esitatakse nn. arhitektuursete vaadete abil.

Vaade on infosüsteemi arhitektuuri esitus ühes lõikes, ühes vaatepunktist või ühest aspektist lähtudes. Vaadete hulk ei ole piiratud. Tavaliselt piisab u. 3-10 vaatest. Neli peamist vaadet on:

Võib öelda, et:

arhitektuurne vaade: Funktsioonid. Käsitleb: tegevusvaldkondi, protsesse, tegevusi. Peamised tooted:

Toetavad tooted:

arhitektuurne vaade: Informatsioon. Käsitleb: kogu informatsiooni, mida kasutatakse (laiemalt–luuakse, töödeldakse, edastatakse jne.) tööprotsessides, samuti selle informatsiooni struktuuri. Peamised tooted:

Toetavad tooted:

arhitektuurne vaade: Organisatsioon. Käsitleb: organisatsiooni struktuuri, vastutus- ja toimimisalasid, töötajate liigitust, tegevuse paigutust. Peamised tooted:

Toetavad tooted:

arhitektuurne vaade: Tehnoloogia. Käsitleb: riistvara, tarkvara, arvuti- ja sidevõrke, kommunikatsioonivahendeid, tehnilisi ja tugiteenuseid, mis tervikuna moodustavad organisatsiooni toimimise keskkonna. Peamised tooted:

Arhitektuuri esitusviisid:

Lähteandmed infosüsteemi strateegilise arhitektuuri koostamiseks:

Probleemid/harjutused

1 Vali olemasolev süsteem ja uuri selle arhitektuuri kirjeldust.

2 Kavanda arhitektuurne lahendus loodavale infosüsteemile. Vali otstarbekad esitusviisid (vaated, diagrammid) arhitektuuri esitamiseks.

Kirjandus

Booch, G. Software Architecture and the UML.

Maier, M. (2002) Systems Architecture: A Tutorial.

Maier, M., Rechtin (2001) The Art of Systems Architecting, second edition, CRC Press.

McDavid, D. (1999) A Standard for Business Architecture Description. IBM Systems Journal, 38, 1, 12-31.

The Open Group. Arhitektuuriraamistik TOGAF 9.1.

LISA. Arhitektuuri kirjeldamise nõuded ja praktika Eesti avaliku sektori infosüsteemides.

Riigi Infosüsteemi Amet (2014) Arhitektuuri kirjeldamise mall.

CC BY-NC-SA 4.0 Priit Parmakson 2017