Objavljeno: 2.11.2017 | Avtor: Simon Peter Vavpotič | Monitor November 2017

Učinkovita komunikacija

Kako povezujemo aplikacije v različnih informacijskih sistemih? Kako načrtovati komunikacijske protokole? Kakšni sta vlogi sistemskega arhitekta in tehnologa? Kdaj napisati programsko kodo v celoti? Pa varnost?

Danes si težko predstavljamo povsem avtonomen informacijski sistem, brez povezav z drugimi informacijskimi sistemi. Hitro in učinkovito delo uporabnikov je navadno pogojeno s kakovostno samodejno izmenjavo podatkov med informacijskimi sistemi po varnih komunikacijskih kanalih.

Aplikacije v različnih informacijskih sistemih nemalokrat temeljijo na različnih tehnoloških zasnovah. Med seboj jih povezujemo prek (standardnih) komunikacijskih vmesnikov in protokolov. Izbira najučinkovitejših vmesnikov in protokolov je praviloma prepuščena sistemskim arhitektom in tehnologom, ki dobro poznajo delovanje in tehnološko zasnovo posameznih informacijskih sistemov.

Kljub temu projektni načrt integracije dveh ali več informacijskih sistemov ne sme vsebovati zgolj zahtev, temveč tudi ustrezne rešitve, ki temeljijo ne le na izkustvenem znanju, temveč tudi na meritvah in simulacijah pretoka in hrambe podatkov.

Projektni načrt

Projektov integracije se moramo lotevati šele, ko imamo pripravljen ustrezen projektni načrt. Pri njegovi pripravi morajo sodelovati tako poznavalci danih informacijskih sistemov kot tudi projektni sistemski arhitekti in tehnologi.

Najprej je treba predvideti obseg povezovanja informacijskih sistemov in opredeliti cilje. Dobro je predvideti tudi morebitne potrebe po kasnejšem dodatnem povezovanju. Skladno s tem je treba preučiti dane tehnološke osnove in predvideti modela povezovalne hrbtenice in implementacije komunikacijskih protokolov na njej. Predvideti je treba tudi obseg in tipe podatkov, ki jih bo treba prenašati med dvema ali več aplikacijami, ki bodo povezane prek hrbtenice. Uporabimo lahko tudi morebitno že vzpostavljeno povezovalno hrbtenico, ki ji morebiti dodamo nove komunikacijske protokole.

Uskladitev razvojnih politik in sprejem enotne razvojne strategije sta zato ključ do rešitve, še preden se lotimo projekta integracije.

Projektni načrt mora upoštevati tudi dane zmogljivosti infrastrukture, ki podpira delovanje aplikacij, ki jih povezujemo. Povezovanje lahko poveča obremenitev in s tem upočasni delovanje posamezne aplikacije za neposredne uporabnike, saj z njim odpremo dodatne komunikacijske kanale, po katerih lahko v aplikacijo prihajajo dodatne poizvedbe v realnem času. Zato moramo upoštevati tudi zahteve po spremembi načina dostopa do podatkov.

Denimo, če trenutno dostopamo do podatkov prek dnevne izmenjave šifrantov, v prihodnosti pa bi radi neposredno dostopali do podatkov druge aplikacije, moramo zagotoviti ne le dovolj velike komunikacijske zmogljivosti, temveč tudi dovolj zmogljivosti pri podporni informacijski infrastrukturi omenjene aplikacije.

Hitrost komunikacije je opredeljena s številom hkratnih prenosov podatkov in količino podatkov, ki jih je treba prenesti v časovni enoti, da dosežemo želeno uporabniško izkušnjo. Pri klasičnih aplikacijah sta pomembna predvsem osveževanje šifrantov in prenos elektronskih dokumentov, pri večpredstavnih aplikacijah, denimo, pa je pogosto treba prenašati tokove podatkov (zvok in sliko) v realnem času. Slednje pomeni potrebo po neprimerno zmogljivejši povezovalni hrbtenici. A vrnimo se k (današnjim) poslovnim aplikacijam.

Tehnološke osnove

Informacijski infrastrukturi dveh informacijskih sistemov imata redko povsem enake tehnološke osnove. Enako velja za aplikacije, ki jih poganjata. Povezovalna hrbtenica mora temeljiti na dovolj splošni tehnološki osnovi, ki omogoča učinkovito povezovanje aplikacij z različnimi tehnološkimi osnovami.

Informacijske sisteme danes praviloma povezujemo prek internetnih omrežij. Zato se nam pri gradnji povezovalne hrbtenice ni treba ukvarjati s problemi osnovne povezljivosti. Kljub temu ni vseeno, kakšno tehnološko osnovo uporabimo pri povezovalni hrbtenici. Pomembna je njena čim večja združljivost ne le z aplikacijami, ki jih povezujemo, temveč tudi s potencialnimi bodočimi aplikacijami, ki jih bomo v hrbtenico morebiti povezali v kasnejših projektih.

Velika združljivost ni edini ključ do dobre rešitve. Pomembna je tudi zmogljivost. Omrežja ne želimo (preveč) obremenjevati z odvečnimi podatki (angl. overhead data), prav tako želimo različne vrste podatkov kodirati čim bolj optimalno, tako da aplikacija pri njihovem zapisovanju ali branju v predpisani format ne porabi veliko časa. Tu se lahko pogosto zanesemo tudi na standardne vmesnike, ki so vgrajeni v različne vrste sistemske programske opreme.

Denimo, podatkovni strežniki imajo serijsko vgrajene vmesnike, s katerimi lahko dostopajo do podatkov v drugih podatkovnih strežnikih. Če jih uspešno integriramo v prenosno hrbtenico, pogosto dokaj enostavno rešimo problem povezljivosti in zmogljivosti pri prenosu podatkov.

Količina podatkov

Pretok podatkov med več aplikacijami zahteva tudi uporabo kontrolnih podatkovnih struktur. V ta namen moramo osnovnim podatkom dodati še opisne podatke, s katerimi opišemo zahtevani prenos podatkov med aplikacijama (ali aplikacijami). Praviloma uporabljamo podatkovne strukture (npr. ovojnice), s katerimi ne povečamo bistveno osnovne količine podatkov. Obenem mora biti na voljo hiter in sorazmerno enostaven način za njihovo tvorbo in branje. S tem želimo prihraniti procesne zmogljivosti v podpornih informacijskih infrastrukturah.

V praksi tu mnogokrat naletimo na probleme, ki so posledica napačnega projektiranja. Z izgovorom, da se bo prenašalo malo podatkov, si snovalci programske opreme privoščijo nerazumno velike presežne kontrolne podatkovne strukture, ki hkrati zahtevajo veliko obdelave podatkov pri pretvorbi v strukture za prenos in pri branju iz njih.

V mislih imamo predvsem metapodatke, ki jih prenašamo med različnimi aplikacijami in v zbirkah podatkov zasedejo bistveno manj prostora kot v podatkovnih strukturah, v katerih jih prenašamo med aplikacijami. Med testiranjem in dokler je prenesenih podatkov na časovno enoto malo ali pa če prenos poteka samo med večerno obdelavo, taki prenosni protokoli zadovoljivo delujejo. Toda pri povečevanju obsega komunikacije se brž pokažejo potrebe po optimalnejših podatkovnih zapisih ali zmogljivejši informacijski infrastrukturi.

Po drugi strani si snovalci podatkovnih hrbtenic za prenos večpredstavnih podatkov podobne spodrsljaje težko privoščijo, saj prenos zvoka, slik in video vsebin že sam po sebi zahteva veliko pasovno širino.

Usklajevanje podatkov

Prenos podatkov med aplikacijami pogosto zahteva tudi njihovo usklajevanje. Razlog je potreba po vmesni hrambi podatkov. Nemalokrat le z uporabo vmesne hrambe zagotovimo optimalno delovanje aplikacij, povezanih prek podatkovne hrbtenice.

Učinkovito povezane aplikacije pomenijo stroškovno učinkovitost

Ena izmed pogostih napak je miselnost, da je vmesna hramba nepotrebna in da lahko oddaljene aplikacije prek »zmogljive« omrežne infrastrukture neposredno dostopajo do podatkov v drugi aplikaciji. Tako si težko predstavljamo zahtevna iskanja, ki bi neposredno uporabljala oddaljene podatke (predvsem šifrante) v drugih aplikacijah.

Denimo, pri iskanju se lahko podatki iz šifranta velikokrat uporabijo, a se šifrant navadno sorazmerno redko spreminja. Zato je dobro, če posamezne aplikacije hranijo lokalne kopije šifranta, ki je v primarni aplikaciji, zadolženi za njegovo vzdrževanje.

Poleg vmesne hrambe tako potrebujemo tudi usklajevanje krajevno shranjenih podatkov (v našem primeru šifranta). Pomembna je pravilna izvedba algoritmov za usklajevanje podatkov. Imamo več možnosti, kot sta usklajevanje na zahtevo in sprotno usklajevanje. Sprotno usklajevanje zahteva nadgradnjo aplikacije, ki je vir podatkov, tako da ob vsaki spremembi zbirk podatkov, ki jih uporabljajo tudi druge aplikacije, slednjim posreduje spremembe.

Usklajevanje na zahtevo poteka navadno v določenih časovnih intervalih, v katerih druge aplikacije zahtevajo spremembe podatkov od izvorne aplikacije.

Poleg omenjenega pogosto uporabljamo tudi intervalno (dnevno, urno ipd.) osveževanje podatkov, s katerim prenesemo spremembe samo ob določenih časovnih intervalih.

Serijsko ali doma narejeno?

Pri povezovanju informacijskih sistemov se srečujemo s problemom priprave ustreznih vmesnikov in protokolov za povezovanje aplikacij v podatkovno hrbtenico. Miselnost, da zmoremo vse narediti doma, v lastnem podjetju ali organizaciji, je v redu, a potem moramo biti dosledni. Še zdaleč ni dovolj, da zna izvorna aplikacija podatke izvoziti in uvoziti. Pomembno je, da to znajo vse aplikacije, povezane v podatkovno hrbtenico. Prenos podatkov mora biti tudi hiter in zanesljiv. Zdaj smo v dilemi: koliko razvoja bo potrebno? Kolikor testiranja bo potrebno? Koliko bo to stalo?

Zakaj ne bi raje uporabili standardne gradnike, ki so že preizkušeni? Če je na voljo način, da aplikacije varno medsebojno povežemo z gradniki, ki so že vgrajeni v sistemsko programsko opremo, je smiselno najprej preučiti to možnost. Morda bomo morali za komunikacijo po internetu dodati le varne komunikacijske tunele in aplikacijo za upravljanje z njimi. Zato pa ne bo treba toliko razvoja, testiranja in finančnega vložka.

Vodja projekta povezovanja mora voditi sistemske arhitekte in tehnologe

Zavedati se moramo, da komunikacijski vmesnik ali komunikacijski protokol, ki je del serijske programske opreme, razvija tim programerjev in je dobro preizkušen, preden ga vključijo v novo različico programske opreme. Zato se ga splača uporabiti, če imamo pri vseh aplikacijah na voljo združljive serijske komunikacijske vmesnike in protokole.

Razvojne politike

Pri razvoju novih podatkovnih hrbtenic pogosto naletimo tudi na specifične zahteve naročnikov ter sodelujočih podjetij in organizacij v razvojnih timih. Nekateri zahtevajo uporabo točno določenih tehnologij, ki lahko drugim otežijo prilagajanje. Drugi zaupajo zgolj lastnemu znanju in izkušnjam. Tretji bi raje uporabili butične tehnologije, ki so že vgrajene v njihove aplikacije, za druge aplikacije pa ni na voljo standardnih rešitev.

Pomembno je najti skupno pot, ki poveže ne le aplikacije, temveč tudi ljudi. Pomembno je razmišljati v skupno dobro. S hitrimi standardnimi povezovalnimi gradniki (komunikacijskimi vmesniki in protokoli) bomo hitreje prišli do učinkovitih rešitev, obenem pa bo treba manj testiranja in razvoja.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji