Mis on 3-kihiline majandustarkvara arhitektuur ja miks on seda vaja?
Autor: Urmas Tutt; BCS Itera konsultant
Alustame sellest, et miks üldse on vaja rääkida kihtidest majandustarkvaras. Nimelt varem olid Microsoft Dynamics NAV (NAV) ühekihiline või kahekihiline, aga uuemad versioonid (alates NAV 2009) on kolmekihilised. Seetõttu on NAVi kasutaval ettevõttel vaja teada, mida kihid tähendavad ja kuidas neid üles ehitada.
Mõiste „kihiline“ väljendab struktuuri, kuidas tarkvara andmeid haldab. Esmalt aga räägime, millistest osadest tarkvara koosneb. Lihtsustatult võib öelda, et iga tarkvara puhul on olulised kolm osa:
- andmed ehk andmebaas – konkreetsed numbrid (nt. arve summa, toote ühikhind) või tekstid (nt. kliendi nimi, arve selgitus);
- protsessid – tegevused, mida andmetega teostatakse (nt. kõigi kliendi arvete ja laekumiste summadest arvutatakse kliendi hetkesaldo, arve konteerimine);
- kasutajaliides – millise struktuuri ja kujundusega kasutaja infot tarkvaras näeb (nt. klientide loend, kasumiaruanne).
Kihilisus näitab, kuhu ja kuidas need osad tarkvara arhitektuuris on paigutatud ning kuidas nad omavahel suhtlevad.
Järgnevalt selgitame, mida iga kihilisuse tase tähendab ja mis see endaga kaasa toob.
1-kihiline arhitektuur
Ühekihilised tarkvarad on näiteks Microsoft Access ja Excel. Need programmid hoiavad kõik kolm tarkvara osa – andmed, protsessid ja vaade – ühes failis, mis paikneb kasutaja arvutis või võrgukettal.
See on kõige lihtsam arhitektuur, aga samas kõige ebaturvalisem, sest faili võib näiteks kogemata kustutada või hävineb see koos arvutiga. Ühekihilise programmi peamine puudus on asjaolu, et korraga saab selle failiga töötada üks kasutaja ja teised peavad ootama, kuni esimene kasutaja saadab neile muudetud faili või vabastab võrgukettal oleva faili. Ühte faili saab küll kopeerida, millisel juhul tekib aga ühest failist palju erinevaid versioone, mitte ühtne andmebaas.
2-kihiline arhitektuur
Seda ühenduse meetodit võib nimetada ka klient-server arhitektuuriks. Kliendiks on näiteks NAV rakendus, mis paikneb kasutaja arvutis ja serveriks Microsoft SQL server, mis tegeleb andmete hoiustamisega. Näiteks NAV 5.0 on kahekihiline lahendus.
Kahekihilise tarkvara heaks näiteks on laialt levinud e-kirjade programmi Outlook kasutamine koos Exchange serveriga – sellisel juhul asuvad kõigi kasutajate andmed (e-kirjad, kalendrikirjed jmt) tegelikult Exchange serveris. Igale kasutajale kuvatakse tema arvutis oleva Outlook klient-programmi või veebipõhise Outlook-programmi kaudu vaid tema kasutajaga seotud andmeid. Kui peaks juhtuma, et mõne kasutaja arvuti hävineb koos arvutis oleva Outlook programmiga, jäävad andmed Exchange serverisse alles ning neile saab ligi teise arvuti kaudu.
Kahekihiline ühendus on märksa turvalisem, sest kasutaja ei pääse ligi otse andmetele, vaid kasutab neid klient-tarkvara kaudu, mis suhtleb serveriga. Nii on andmed paremini kaitstud juhusliku hävinemise eest. Lisaks on võimalik hallata erinevate kasutajate õigusi – see tähendab, et kõik andmed saab hoida ühes andmebaasis, aga erinevatele kasutajatele antakse õigus neid erinevas ulatuses vaadata või muuta (nt. raamatupidaja näeb kõiki andmeid, müügimees aga ainult oma klientide andmeid). Kahekihilise süsteemi suurim eelis on aga selles, et korraga saab tööd teha palju kasutajaid ning kõigi kasutajate tegevus salvestatakse reaalajas ühtses süsteemis ja ei teki erinevaid versioone samast andmebaasist. Kuna serveris on oluliselt rohkem ruumi ja mälumahtu kui kasutaja arvutis, siis võimaldab niisugune lahendus hallata märksa suuremaid andmemahtusid ning jõudlus on palju suurem.
3-kihiline arhitektuur
Kolmekihiline tehnoloogia võeti kasutusele versioonis NAV 2009 ja järgmises NAV versioonis on see ainus võimalik lahendus. Kolmekihilises süsteemis on lisaks veel üks server NAV kliendi ja SQL serveri vahel, mida nimetatakse äriloogika serveriks.
Kui kahekihilises süsteemis toodi kasutaja arvutist eraldiseisvasse serverisse vaid andmed, siis kolmekihilises süsteemis on eraldi kihti viidud ka protsessid. Näiteks arve konteerimise protsessi puhul teostati kahekihilises süsteemis konteerimine kasutaja arvutis, nüüd toimub see äriloogika serveris ja kasutajale kuvatakse tema arvutisse lihtsalt tulemust.
Tänu niisugusele arhitektuurile ei ole enam vaja nii head internetiühendust kliendi ja serveri vahel (küll aga on vaja head ühendust 2 serveri vahel) – see võimaldab kasutada NAV’i ka üle aeglasemate võrkude (näiteks mobiiltelefonis või tahvelarvutis mobiilse interneti abil). Kuna nüüd on protsessid viidud üle serverisse, siis saab kasutajale infot kuvada ka lihtsamate programmide abil – seetõttu ongi järgmine NAV versioon (NAV 2013) lisaks klientprogrammile kasutatav ka otse veebilehitsejast.
Täiendav eelis on veel see, et tänu eraldatud äriloogika ehk protsesside kihile paraneb liidestatavus teiste tarkvaradega – kui varem tehti liides otse andmebaasile ja kogu protsesside loogika tuli liidesesse ehitada, siis nüüd saab teha liidese äriloogika serveri peale, kus NAV protsessid on juba olemas ning neid saab teise tarkvarga suhtlemisel ära kasutada