Pametna mesta, skupnosti in domovi

Slovenski prispevek k hitremu razvoju okolja za izvajanje aplikacij, nujnih za podporo pametnih skupnosti.

Mon, 07.03.2016, 11:00

Novi standardi

O tem, da je razvijajoče področje pomembno in ima velik potencial, priča tudi nova organizacija Cloud Native Computing Foundation, ki namerava vplivati na svetovne standarde s področja računalništva v oblaku. »Razvoj standardov na področju kontejnerjev je zelo pomemben – omogoči namreč visoko stopnjo medobratovalnosti posameznih oblakovnih aplikacij,« poudarja prof. Vlado Stankovski.

Še pred nekaj desetletji smo o različnih »pametnih skupnostih« – mestih ali domovih, v katerih se luči samodejno ugašajo in prižigajo, okna zapirajo in odpirajo, ali pa je vse to mogoče upravljati celo z glasovnimi ukazi – lahko le brali ali jih gledali v futurističnih filmih, danes je vse to že realnost.

Tako imenovane pametne skupnosti, mesta pa tudi individualni domovi so življenjska okolja, v katerih se z uporabo senzorjev, aktuatorjev in sodobnih informacijsko-komunikacijskih tehnologij izboljšujejo kakovost in učinkovitost različnih storitev ter posledično kakovost življenja. Ob prizadevanjih za dosego čim več storitev in s tem večjo kakovost bivanja v neki skupnosti pa se je treba v prvi vrsti zavedati pomembnosti varčnega in skrbnega ravnanja z naravnimi viri, kot so zrak, voda in energija.

Strokovnjaki napovedujejo, da se bo v prihodnosti število prebivalcev v mestih izjemno povečalo, s tem pa se bo v njih povečevala poraba energije, vode, prav tako bo naraslo število avtomobilov. V soseskah in mestih bomo torej morali iz dneva v dan reševati različne probleme, kot so kakovost zraka in vode, prometni zamaški, logistika, neučinkovita poraba energije in podobno.

Racionalno in optimalno porabo energije in vode ter številne druge storitve pa bi si zagotovo želeli imeti tudi v svojem domu, saj bi nam to prineslo nižje stroške. Prav zato je mogoče že pri gradnji hiše ali pozneje vanjo vgraditi pametne sisteme, ki omogočajo upravljanje in nadzor nad telekomunikacijami, razsvetljavo, ogrevanjem, odpiranjem in zapiranjem oken ter žaluzij, avdio-video sistemi za komunikacijo z zunanjim svetom, varovanjem in, ne nazadnje, možnost oskrbe starejših oseb na domu ali celo povezljivost s storitvami v soseski.

Za uvajanje pametnih sistemov so v razvoju različni sistemi, storitve in aplikacije, ki vključujejo uporabo senzorjev, aktuatorjev; njihov nadzor in upravljanje pa sta mogoča tudi s pametnimi napravami, povezanimi v svetovni splet. Vse to zagotavlja uporabnikom udobje in dobro uporabniško izkušnjo, saj lahko vgrajene sisteme v svojem domu upravljajo po spletu tudi z oddaljene lokacije.

Različni računalniški sistemi, programske storitve in aplikacije, ki sestavljajo vso to »pamet«, pa za svoje delovanje potrebujejo različne količine računalniških virov, kot so moč procesorja, velikost pomnilnika in shrambe, različno pasovno širino za prenos podatkov in podobno. Od računalniških virov je namreč med drugim odvisno, kako odzivno in kakovostno bodo delovali računalniški sistemi, storitve in aplikacije. Če jih je premalo, se lahko zgodi, da nekatere storitve ali aplikacije sploh ne bodo delovale. Če bi hoteli zagotoviti zelo veliko količino vseh računalniških virov, pa bi to pomenilo precej višjo ceno, čeprav nekatere storitve in aplikacije vseh računalniških virov nazadnje sploh ne bi mogle uporabiti.

Storitve in aplikacije

Vsaka storitev in aplikacija ima namreč lahko povsem drugačne zahteve in potrebe po računalniških virih: nekatere potrebujejo veliko pasovno širino za prenos podatkov ali video signalov v živo, druge velike računske zmogljivosti za obdelavo podatkov v realnem času. Seveda pa so različna tudi opravila, ki jih aplikacije morajo reševati. Denimo, da imamo doma starejšo osebo, ki v stanovanju pade in se poškoduje. Ker imamo v pametnem domu tudi aplikacijo za prepoznavanje oseb, bi ta v tem primeru potrebovala veliko procesorske moči in pomnilnika za obdelavo in pošiljanje video slik ter ugotavljanje nastale situacije, vključno z avtomatskim klicanjem urgentnega centra in sosedov, ki bi lahko priskočili na pomoč.

Različne vrste storitev in aplikacij, ki jih je mogoče implementirati v pametni dom, imajo torej različne zahteve po računalniških virih. Če želimo uporabnikom zagotoviti kakovost storitev in hkrati optimalno in racionalno porabo računalniških virov, moramo aplikacijam omogočiti dinamično dodeljevanje spremenljivih količin različnih računalniških virov v času njihovega izvajanja.

Lastnost zajemanja in sproščanja omrežnih in računalniških virov za doseganje ustrezne kakovosti delovanja posameznih aplikacij in posledično dobre uporabniške izkušnje se imenuje elastičnost in je ena osnovnih lastnosti, ki jih ponujajo tehnologije računalništva v oblaku.

Oblakovne storitve

Računalništvo v oblaku je model računalništva, pri katerem so dinamično razširljivi računalniški viri in celotna infrastruktura, storitve ali aplikacije uporabnikom na voljo kot storitve prek interneta, ki delujejo na gručah strežnikov nekje na medmrežju. Pri računalništvu v oblaku storitev in aplikacij ni treba namestiti ali poganjati na krajevnih računalnikih ali strežnikih, ampak nam ponudniki oblakovnih storitev ponujajo najem tako celotne strežniške infrastrukture in računalniških virov kot tudi posameznih storitev ali aplikacij. Do oblakovnih storitev in aplikacij lahko dostopamo kar prek spletnega brskalnika, ki predstavlja uporabniški vmesnik računalništva v oblaku.

Uporaba oblakovnih storitev nam torej omogoča, da, na primer, zakupljene računalniške vire spreminjamo glede na trenutne potrebe, ki se, kot vemo, lahko nepričakovano in hitro spreminjajo. Prav tako lahko računalniške vire hitro sprostimo, ko jih ne potrebujemo več.

Dinamično dodeljevanje in sproščanje kapacitet omogoča uporabniku, da plača le dejansko količino uporabljenih računalniških virov, ne da bi mu bilo treba skrbeti za vzdrževanje infrastrukture, zagotovljena pa je tudi varnost.

Trenutni trend na področju računalništva v oblaku je t. i. kontejnerizacija, ki naj bi še izboljšala dinamično dodeljevanje in sproščanje računalniških virov, ki jih potrebujejo posamezne storitve in aplikacije za nemoteno in optimalno delovanje. Vsak kontejner lahko predstavlja eno programsko mikrostoritev, na primer podatkovno bazo za zajem podatkov s stotih senzorjev ali program za analizo govornih ukazov. Danes kontejnerji na številnih področjih nadomeščajo tehnologije virtualnih strojev, saj ti zavzemajo veliko prostora, so okorni in pogosto neprimerni za marsikatero realizacijo scenarijev.

Raziskave in projekti

Raziskovalna skupina na katedri za gradbeno informatiko Fakultete za gradbeništvo in geodezijo Univerze v Ljubljani ta čas sodeluje pri dveh evropskih raziskovalno-inovacijskih projektih SWITCH in ENTICE, da bi razvili okolje za izvajanje časovno kritičnih in visoko samoprilagodljivih aplikacij v oblaku, nujnih za podporo pametne industrije, domov, mest in skupnosti.

Aplikacija je lahko sestavljena iz vrste različnih programskih komponent, ki imajo določene funkcije, na primer skripte za konfiguracijo aplikacije med njenim delovanjem, programsko shrambo za podatke, programe oziroma algoritme za obdelavo podatkov, agente za nadzor in upravljanje z izvajanjem.

Razvijalec lahko z uporabo ključnih besed išče v shrambi programskih komponent (1) in jih dodaja ter povezuje skupaj v grafičnem uporabniškem vmesniku (2). Tako lahko sestavi aplikacijo po meri: izbere točno določeno število senzorjev za merjenje kakovosti zraka v svojem domu, aplikacijo poveže še z drugimi podatkovnimi storitvami, ki so dostopne na medmrežju, na primer podatke o kakovosti zunanjega zraka (onesnaženost, vlažnost, tlak itd.), in vso logiko poveže na napravo za vlaženje zraka v stanovanju.

Za obdelavo vseh teh podatkov seveda ni potrebna velika shramba ali ogromna računska moč, zato je najlažje, da je aplikacija »zapakirana« v enega ali več kontejnerjev. Posamezni kontejnerji in aplikacija v celoti pa so lahko optimizirani glede na več, včasih tudi konfliktnih kriterijev (na primer cena ali hitrost delovanja), ki določajo uporabniško izkušnjo.

V zadnjem koraku lahko uporabnik določi infrastrukturo, s katero bo postavil aplikacijo z določeno količino zahtevanih virov, na primer na lokalnem ponudniku računalništva v oblaku (3). Trend je, da bi omogočili dostavo in hitre manipulacije s kontejnerji na tako rekoč vseh napravah, kjer je možna uporaba operacijskih sistemov (4).

Hitro in optimizirano dostavo kontejnerjev tam, kjer jih potrebujejo aplikacije, pa lahko opravimo z uporabo tehnologij za porazdeljeno shrambo za kontejnerje in virtualne stroje, ki jo razvijajo v okviru projekta ENTICE.

–––––––

Dr. Vlado Stankovski je izredni profesor za računalništvo in informatiko, Polona Štefanič pa raziskovalka na FGG UL

Prijavi sovražni govor