Uroš Mesojedec: Skladovnica
Preprosto in splošno - to bi moral biti cilj načrtovalca vsakega sistema. Uresniči pa ga lahko s sestavljanjem manj zapletenih drobcev, ki med seboj uspešno komunicirajo.
Lep zgled uspešnega preprostega in splošnega načrta je temeljni protokol, ki dela internet to, kar je. V skoraj tridesetletni zgodovini je omogočil neslutene širitve zmogljivosti in je še danes kos aktualnim izzivom. Temeljna odlika tako prilagodljivega sistema je njegova razslojenost. Različni, med seboj neodvisni sloji tvorijo zmogljivo celoto, pri tem pa je vsak posamezni del neodvisen in precej enostavnejši od skupka. Če se znajo med seboj pogovarjati na standardni način, z jasnim protokolom, reč deluje.
Enaki prijemi se uporabljajo za poenostavljanje praktično vseh zapletenih sistemov. Pri programski opremi se jim npr. reče predmetno usmerjeno programiranje, komponentizacija ali navsezadnje tudi programje kot storitev. Vendar pa je programska oprema danes že tako zapletena, da so vsi ti prijemi še vedno premalo za izgradnjo učinkovitih sistemov. Z razslojenostjo se je treba spoprijeti tudi na višjih ravneh.
Če nas zanima rešitev problema, potem se bomo danes zelo verjetno soočili s številnimi koščki, ki ponujajo le del rešitve in jih je za uspešno zgodbo treba povezati v učinkovito celoto. Tu pa se že leta bijeta dva precej različna pristopa: ali je bolje uporabiti najboljše gradnike in se ukvarjati z njihovo integracijo ali pa je bolje prevzeti že integrirano rešitev. V resnici ni optimalna nobena od alternativ, saj prva pot prinaša številne glavobole pri sestavljanju mozaika, druga pa zelo verjetno tako ali drugače ne bo povsem primerna za naš problem. Zato tudi cveti industrija svetovanja in integracije. Največje računalniško podjetje je, denimo, prodalo številne oddelke, ki so se ukvarjali z oprijemljivo strojno opremo, in večino svojega dobička kuje s storitvami, predvsem svetovanjem.
Računalniška industrija, še posebej njen specializirani programski del, je zelo mlada in vedno nove pobude lepo kažejo, da se še vedno išče. Nenehni razvoj strojnih arhitektur, izjemna kompleksnost razvoja učinkovitega programja in številne male revolucije so v tem kratkem času onemogočale razvijalcem, da bi lahko izdelali celovite, preizkušene in prilagodljive sisteme. Danes se sicer nekatera največja podjetja trudijo, da bi ponudila resnično celoten sklad potrebnih programov, vendar je njihova integracija le navidezna. Za končnega uporabnika je resničnost pač taka, da se mora še vedno ukvarjati s posameznimi drobci.
Poglejmo npr. zelo očiten zgled varnostnih popravkov. Ti se še vedno objavljajo za posamezne gradnike programskega sklada. Garancije, da posamezen popravek npr. operacijskega sistema ne bo polomil delovanja določenega namenskega programa, ki se v njem izvaja, ni. Podobno lahko popravek določene aplikacije hitro podre krhko ravnovesje, ki omogoča učinkovito delovanje celote.
Nekateri ponudniki programske opreme so zato začeli ponujati zgodbo "programske naprave" (software appliance). Ta naj bi izkoreninila enega najbolj perečih problemov pri vzdrževanju programskih rešitev - vmešavanje končnega uporabnika v podrobnosti njene izvedbe. Tako, ko so morali biti vozniki prvih avtomobilov med drugim tudi kar spretni mehaniki, da so se lahko s svojim motoriziranim vozom peljali na malo daljši izlet, tako morajo biti danes vzdrževalci računalniških sistemov tudi izvedenci za manjša in včasih tudi večja popravila, da lahko celota deluje dovolj zanesljivo.
Programska naprava je resnično integriran sistem, ki se do uporabnika vede kot monolitna celota. Z njo se ne ukvarja več s posameznimi popravki, ki bi lahko podrli krhko ravnovesje sestavnih delov, temveč vzdržuje in nadgrajuje celotno napravo. Seveda bo učinkovita programska naprava le tista, ki število sestavnih delov, kolesc, ki jih je treba povezati v delujoč mehanizem, zmanjša na najmanjšo možno mero.
Kaj pa so sestavine značilne programske naprave? Danes prav gotovo operacijski sistem z vsemi potrebnimi gonilniki, podatkovni in programski strežnik in nabor želenih aplikacij. In ravno v tem zaporedju se giblje tudi pretvarjanje nekoč dragocenih kosov programja v cenene dobrine. Pri operacijskih sistemih je ponudba številna, vse boljša je ponudba tudi pri programskih in podatkovnih strežnikih, še posebej po nedavni združitvi vodilnega ponudnika poslovnih distribucij Linuxa in prodornega javanskega strežnika podatkov, proces se giblje celo v namensko programje, saj se preizkušajo modeli od povsem brezplačne rabe odprtokodnih rešitev do brezplačnih spletnih storitev, podprtih z oglasi.
Sestavine za delujočo programsko napravo torej so. In tudi posamezni resnični primerki, kot je, denimo, Googlov "Search Appliance", ki omenjeni koncept razširja še na strojno opremo. Reč kupimo, vklopimo in nastavimo, zatem deluje kot črna škatla, katere podrobnosti nas ne zanimajo, celo nadgraditi se zmore sama.
Zgodba postane še zanimivejša, ko v celotno zmes dodamo še virtualizacijo strojne opreme. Zveni skoraj kot najbolj neverjetne sanje vsakega sistemca: povsem delujoč, uglašen računalniški sistem, ki ni nič drugega kot malo večja datoteka v varnem omrežnem strežniku, ki ga po potrebi porazdelimo na poljubno število cenenih naprav. To nam omogoča resnično nični čas izpada tudi pri najbolj katastrofalnih okvarah posameznega strojnega gradnika.
Zato smo danes priča neverjetni tekmi, v kateri še včeraj dragocena programska oprema postaja brezplačna, velikani s prevzemi požirajo manjše in večje tekmece kot za stavo in ob stenah se razbijajo stoli, ki jih zamudniki v jezi mečejo naokrog. Ponudnik učinkovitih programskih naprav, ki so lahko tudi storitev v omrežju, bo iz mehanikov umazanih rok končno naredil voznike uživače, ki bodo glede na globino svojega žepa lahko izbirali med večjim ali manjšim številom "konjskih moči", vendar brez kompromisov, kar zadeva zanesljivost in varnost.
Pravo vprašanje pa je, ali bo uveljavljenim in silno močnim ponudnikom programske opreme uspelo z lastnimi močmi (in prevzemi) razviti lastniške programske naprave ali pa bomo do učinkovitih integriranih rešitev morda prišli kako drugače? Ali je v nadvse dinamičnem svetu informacijske tehnologije mogoče računati na posameznega ponudnika, da bo kos vsem spremembam? Mar ni neverjeten konsenz okrog spletnih storitev že resen signal, da tudi najmočnejši ne morejo vsega narediti sami? Ali vsaj, da so sprejeli resnični, heterogeni svet in so odmislili "svetovno prevlado"?
Ne glede na vse, pa je nesporna resnica, da bodo učinkovite programske naprave in vsenavzoče storitve uresničili le odprti in brezplačni standardi. Vemo pa tudi, da je najlepše pri standardih to, da lahko izbiramo med tako številnimi.
Tako, kot so morali biti vozniki prvih avtomobilov med drugim tudi kar spretni mehaniki, da so se lahko s svojim motoriziranim vozom peljali na malo daljši izlet, tako morajo biti danes vzdrževalci računalniških sistemov tudi izvedenci za manjša in včasih tudi večja popravila, da lahko celota deluje dovolj zanesljivo.