54
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RA ˇ CUNALNI ˇ STVO IN INFORMATIKO Ivan Kovaˇ ciˇ c ZASNOVA SPLETNEGA PORTALA S TEHNOLOGIJAMI SPLETA 4.0 Diplomsko delo Maribor, november 2017 Demo Version, http://www.verydoc.com and http://www.verypdf.com

ZASNOVA SPLETNEGA PORTALA S TEHNOLOGIJAMI SPLETA 4 · Transportni segmenti (TCP) in datagrami (UDP) Zagotavljanje pravilnega prenosa med vozliˇsˇci v omreˇzju na logiˇcnem nivoju

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • UNIVERZA V MARIBORU

    FAKULTETA ZA ELEKTROTEHNIKO,

    RAČUNALNIŠTVO IN INFORMATIKO

    Ivan Kovačič

    ZASNOVA SPLETNEGA PORTALA S

    TEHNOLOGIJAMI SPLETA 4.0

    Diplomsko delo

    Maribor, november 2017

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • ZASNOVA SPLETNEGA PORTALA S TEHNOLOGIJAMI

    SPLETA 4.0

    Diplomsko delo

    Študent: Ivan Kovačič

    Študijski program: Študijski program 1. stopnje

    Računalnǐstvo in informacijske tehnologije (UN)

    Mentor: doc. dr. Milan Ojsteršek, univ. dipl. inž. el.

    Somentor: Marko Ferme, univ. dipl. inž. rač. in inf.

    i

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • ii

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • iii

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • iv

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Zahvala

    Želel bi se zahvaliti punci Anji za vso podporo pri študiju in življenjski poti.

    Prav tako posebna zahvala babici Fridi in dedku Petru za vseživljenjsko

    podporo in naučene vrednote.

    Zahvaljujem se tudi mentorju doc. dr. Milanu Ojsteršku in somentorju

    Marku Fermetu za podporo pri izdelavi diplomskega dela ter sodelavcem Labo-

    ratorija za heterogene računalnǐske sisteme za podporo pri projektu, katerega

    izdelek je delno opisan v tem diplomskem delu.

    v

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Zasnova spletnega portala s tehnologijami Spleta

    4.0

    Ključne besede: Splet 4.0, spletne tehnologije, aplikacijski vmesniki REST,

    pomenski splet, ogrodje Ionic

    UDK: 004.728.8:004.777(043.2)

    Povzetek

    V diplomskem delu smo preučili smo lastnosti Spleta 4.0 in opisali arhitekturni sklad

    spleta stvari (Web of Things). Opisali smo posamezne sloje arhitekturnega sklada in

    njihove lastnosti, v skladu s standardi organizacije W3C in sodobnimi primeri uporabe.

    Razvili smo osnutek turistične aplikacije s pomočjo ogrodja Keystone.js. V aplikacijo

    smo vključili funkcionalnosti posameznih faz razvoja svetovnega spleta od Spleta 1.0

    do Spleta 3.0. Izdelali smo še mobilno aplikacijo s pomočjo ogrodja Ionic, s katero smo

    prikazali zasnovo funkcionalnosti Spleta 4.0. Preučili smo možnosti vključitve slojev

    arhitekturnega sklada spleta stvari v našo aplikacijo.

    vi

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Web development with Web 4.0 technologies

    Keywords: Web 4.0, Web technologies, REST APIs, Semantic Web, Ionic

    Framework

    UDK: 004.728.8:004.777(043.2)

    Abstract

    In this thesis we describe the features of Web 4.0 and the Web of Things architectural

    stack. In the theoretical part, we analyze each layer and its attributes, as defined by

    W3C standards and visible in modern use cases. In the practical part, we developed

    a tourism oriented application using the Keystone.js framework and integrated Web

    2.0 and Web 3.0 functionalities into the application. We also developed a mobile

    application using the Ionic Framework as a basis for Web 4.0 development. Finally, we

    considered the possibilities of including the layers of the Web of Things architectural

    stack into our application.

    vii

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Kazalo vsebine

    1 UVOD 1

    2 RAZVOJ SVETOVNEGA SPLETA 2

    2.1 Splet 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    2.2 Splet 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2.3 Splet 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    3 SPLET 4.0 11

    3.1 Definicija izraza Splet 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . 11

    3.2 Sloj pametnih naprav . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    3.3 Sloj dostopa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    3.4 Sloj iskanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    3.5 Sloj deljenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    3.6 Sloj sestavljanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    4 ZASNOVA PORTALA SPLETA 4.0 20

    4.1 Opis ciljev izdelka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    4.2 Opis uporabljenih tehnologij . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.3 Funkcionalnosti Spleta 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . 23

    4.4 Pomenski opis podatkov . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    4.5 Možnost razširitve s funkcionalnostmi Spleta 4.0 . . . . . . . . . . . . . 25

    5 SKLEP 28

    viii

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Kazalo slik

    2.1 MySpace, eno izmed prvih družbenih omrežij (Vir: [8]) . . . . . . . . . 6

    2.2 Primer semantične mreže . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.3 Primer obogatenih iskalnih rezultatov na podlagi Knowledge Graph . . 8

    2.4 Analiza prisotnosti tehnologij Spleta 3.0 (Vir: [10]) . . . . . . . . . . . 9

    3.1 Arhitekturni sklad WoT (Vir: [12]) . . . . . . . . . . . . . . . . . . . . 12

    3.2 Primer dostopa do podatkov senzorja za vlažnost. (Vir: [12]) . . . . . . 14

    3.3 Primer načrta naslovov URL virov . . . . . . . . . . . . . . . . . . . . 15

    3.4 Node RED - Primer mashup-a, ki implementira sloj sestavljanja (Vir:

    [12]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    4.1 Primer predstavitve modela v Admin UI ogrodja Keystone.js . . . . . . 22

    4.2 Predstavitev nastanitvenega objekta na strani odjemalca . . . . . . . . 23

    4.3 Mobilna aplikacija ustvarjena z ogrodjem Ionic . . . . . . . . . . . . . . 26

    4.4 Dnevnik poskusov potrditve cilja s pomočjo senzorja NFC . . . . . . . 27

    ix

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Kazalo tabel

    2.1 Protokolni sklad OSI, (Vir: [26]) . . . . . . . . . . . . . . . . . . . . . . 3

    3.1 Primer načrta aplikacijskega vmesnika REST . . . . . . . . . . . . . . . 16

    x

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Kazalo primerov izvorne kode

    4.1 Primer pomenskega opisa nastanitve . . . . . . . . . . . . . . . . . . . 24

    xi

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Seznam uporabljenih kratic

    AJAX - asinhroni Javascript in XML (angl. Asynchronous Javascript and XML)

    CMS - sistem za upravljanje z vsebino (angl. Content Management System )

    CRUD - ustvari, beri, posodobi, izbrǐsi (angl. Create, Read, Update, Delete)

    FOAF - prijatelj prijatelja (angl. Friend of a friend )

    HTML - hipertekstovni označevalni jezik (angl. Hypertext markup language)

    HTTP - hipertekstovni prenosni protokol (angl. Hypertext transfer protocol)

    HTTPS - varni hipertekstovni prenosni protokol (angl. Hypertext transfer protocol

    Secure)

    IoT - internet stvari (angl. Internet of Things)

    JSON - Javascriptov zapis objekta (angl. Javascript Object Notation)

    JSON-LD Javascriptov zapis objekta - povezani podatki (angl. Javascript Object

    Notation - Linked Data)

    MVC - arhitekturni vzorec Model, Pogled, Krmilnik (angl. Model, View, Controller)

    NFC - komunikacija kratkega dosega(angl. Near Field Communication)

    NoSQL - ne le SQL (angl. Not only SQL)

    ODM - objektno dokumentni model (angl. Object Document Model)

    OSI - povezava odprtih sistemov (angl. Open Systems Interconnection)

    OWL - jezik spletne ontologije (angl. Web Ontology Language)

    REST - predstatitveni prenos stanja (angl. Representational State Transfer)

    RFID - radiofrekvenčna identifikacija (angl. Radio Frequency Identification)

    SIOC - družbeno povezane spletne skupnosti (angl. Socially Interconnected Online

    Communities)

    SOAP - preprost protokol za dostop do objektov (angl. Simple Object Access

    Protocol)

    TLS - varnost prenosnega sloja (angl. Transport Layer Security)

    URL - poenotena lokacija vira (angl. Uniform Resource Locator )

    W3C - konzorcij svetovnega spleta (angl. World Wide Web Consortium )

    xii

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • WoT - splet stvari (angl. Web of Things )

    XML - razširljiv označevalni jezik (angl. Extensible Markup Language)

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • xv

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • 1. UVOD

    Živimo v tehnološkem obdobju interneta stvari (IoT). Internet stvari je nabor tehno-

    logij, ki jih srečamo v vsakdanjem življenju in se povezujejo v računalnǐska omrežja.

    Natančneje - gre za različne mikrokrmilnike v avtomobilih, tehnologijo pametnih do-

    mov, najrazličneǰse senzorje ipd.

    Tako kot je internet na svetu bistveno dlje kot svetovni splet, je internet stvari s pripa-

    dajočimi tehnologijami bistveno stareǰsi od sodobne oblike svetovnega spleta. Sodobni

    splet je namreč tesno povezan z napravami, ki spadajo v kategorijo interneta stvari.

    Današnja oblika svetovnega spleta je zaživela kot Splet 4.0 ali tako imenovan splet

    stvari.

    V diplomskem delu je eden izmed prvih ciljev raziskati zgodovinski razvoj svetovnega

    spleta. Razvoj svetovnega spleta je potekal od nastanka (kar danes pojmujemo kot

    Splet 1.0) do Spleta 2.0 in Spleta 3.0 ali pomenskega spleta. Med omenjenemi opǐsemo

    posamezne tehnologije, ki pripadajo dotični fazi evolucije svetovnega spleta.

    Nato opǐsemo Splet 4.0 - t.j. sodobni korak evolucije tehnologij svetovnega spleta.

    Aplikacije, ki spadajo pod to kategorijo, razdelimo v sloje. Razmislek o Spletu 4.0

    zaključimo z osnutkom turistične aplikacije, ki vsebuje zasnovo tehnologij Spleta 4.0 v

    obliki potrjevalnika cilja s pomočjo značk RFID (Radio Frequency Identification).

    Vsebino diplomskega dela smo razdelili na tri vsebinska poglavja. Prvo se ukvarja s

    prej omenjenim vprašanjem razvoja svetovnega spleta, kjer opǐsemo posamezne faze

    razvoja. Sledi opis Spleta 4.0 z razlago posameznih slojev v arhitekturi aplikacije Spleta

    4.0. Zaključimo z opisom praktičnega izdelka, omenjenega v preǰsnjem odstavku, kjer

    na primerih prikažemo kako smo se lotili njegovega razvoja.

    1

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • 2. RAZVOJ SVETOVNEGA SPLETA

    2.1. Splet 1.0

    Računalnǐsko omrežje je množica dveh ali več povezav med računalnǐskimi sistemi.

    Preko teh povezav je mogoče izmenjavati podatke s pomočjo t.i. omrežnih protokolov.

    Omrežni protokol je točno določena struktura za sporočila, ki se pošiljajo med dvema

    računalnǐskima sistemoma oz. vozlǐsčema omrežja.

    Tehnologije računalnǐskih omrežij je mogoče predstaviti s pomočjo različnih koncep-

    tualnih modelov. Med najbolj uveljavljenimi modeli predstavitve sta tako imenovana

    protokolna sklada OSI [26] in stareǰsi, TCP/IP ali tako imenovan ”Internet protocol

    suite”[22]. Oba modela na podoben način opisujeta hierarhično strukturo omrežne

    komunikacije. Za naše potrebe bomo opisali protokolni sklad OSI [4].

    Splet (4.0) je povezan s protokolom HTTP, ki pripada skupini aplikacijskih omrežnih

    protokolov. Omeniti je potrebno, da so omrežni protokoli strukturirani hierarhično

    – vsak protokol doda podatkom, ki se prenašajo od izvora do ponora, svojo značilno

    glavo (header) ter vsebino (payload). Protokol, ki je naveden v tabeli 2.1, prav tako

    vsebuje podatke omrežnih protokolov, ki so nižje v hierarhiji. V nadaljevanju opǐsemo

    protokol, ki predstavlja osnovo svetovnega spleta in ga prav tako definira.

    2

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Tabela 2.1: Protokolni sklad OSI, (Vir: [26])

    Sloj Zgradba Vloga

    Aplikacijski podatki Aplikacijski vmesniki.

    Predstavitveni podatki Kodiranje, kompresija.

    Sejni podatki Vzdrževanje sej (trajnih po-

    vezav med vozlǐsči).

    Transportni segmenti (TCP) in datagrami

    (UDP)

    Zagotavljanje pravilnega

    prenosa med vozlǐsči v

    omrežju na logičnem

    nivoju.

    Mrežni paketi Naslavljanje vozlǐsč, usmer-

    janje

    Sloj podatkovne

    povezave

    okvirji Zagotavljanje prenosa med

    dvema vozlǐsčema.

    Fizični sloj zlogi Tehnologije strojne opreme,

    ki omogočajo komunikacijo.

    3

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Protokol HTTP (Hypertext Transfer Protocol) je omrežni protokol, katerega uvrščamo

    po konceptualnem modelu OSI med aplikacijske protokole. Služi prenosu t.i. hiperte-

    ksta oz. obogatenega besedila, kar danes označujemo kot spletno stran. Na prenosnem

    oz. transportnem sloju je implementiran je s pomočjo protokola TCP [21].

    Posledično temelji na principu rokovanja (angl. handshaking). Komunikacija poteka

    po modelu odjemalec – strežnik. Pri rokovanju odjemalec najprej pošlje sporočilo

    SYN, nakar strežnik odgovori s sporočilom SYN-ACK in nazadnje odjemalec potrdi z

    odgovorom ACK. Opisan postopek je način komunikacije protokola TCP in posledično

    tudi protokola HTTP [21].

    Strežnik na zahtevo odjemalca pošlje odgovor, ki vsebuje podatke protokola HTTP.

    Omrežni protokoli imajo svojo značilno glavo in vsebino. Glave protokola HTTP vse-

    bujejo metapodatke o izvoru sporočila, ponoru ter o sami vsebini. Med pomembneǰsimi

    podatki v glavi so denimo Content-Type, ki opǐse vrsto MIME vsebine sporočila, User-

    Agent, ki navaja odjemalca (spletni brskalnik) ter na primer Content-Length, ki pove

    dolžino vsebine sporočila. Nekateri podatki glave se pošiljajo le v glavah zahtev, drugi

    pa le v glavah odgovorov [1].

    Vsebina odgovora HTTP ustreza vrsti MIME, ki je navedena v zahtevi. Zato lahko

    prenaša najrazličneǰse datoteke, vendar večinoma v vsebini odgovora HTTP najdemo

    kodo HTML. HTML (Hypertext Markup Language) je označevalni jezik, ki po sintaksi

    temelji na sintaksi jezika XML in služi logični predstavitvi obogatenega teksta[21].

    Jezik HTML znajo spletni brskalniki razpoznati in na podlagi značk HTML ustvariti

    predstavitev vsebine. Protokol HTTP torej omogoča prenos spletnih strani. V času

    pisanja tega besedila obstaja več kot 1.25 milijard spletnih strani. [17]. Sam proto-

    kol HTTP je v času nastanka omogočil prenos obogatenih vsebin, kar je omogočilo

    učinkovit in inovativen način predstavitve informacij. Le-ta način se je skozi zgodovino

    razvijal z novimi implementacijami primerov uporabe protokola.

    Zgodba Spleta 1.0 se pričenja v letu 1989, ko je Sir Tim Berners-Lee, raziskovalec

    na inštitutu CERN v Švici zasnoval protokol HTTP ter pripadajoče tehnologije – jezik

    HTML in prototip odjemalca. Zaradi tega ga lahko smatramo kot začetnika svetovnega

    4

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • spleta.

    Izraz Splet 1.0 je retronim [3]. To je beseda, s katero opisujemo pojem, katerega

    opis ne bi imel enoličnega pomena brez nastanka noveǰsega povezanega pojma [28].

    Bistvo Spleta 1.0 je bilo osnovni prikaz spletnih strani – hipertekstovnih dokumentov,

    morebiti obogatenih z osnovneǰsimi oblikami multimedijskih vsebin (običajno slikami).

    Dokumenti – strani so med sabo bili povezani s pomočjo t.i. hiperpovezav.

    Po besedah Berners-Leeja Splet 1.0 dojemamo kot ”read-only web”ali splet, namenjen

    branju. Pojavlja se tudi izraz statični splet. Manǰse število piscev dokumentov je

    ustvarjalo vsebine, namenjene večjemu številu bralcev. Poudarek je torej v enosmerni

    komunikaciji od avtorjev do bralcev vsebin, kjer bralci oz. uporabniki ne soustvarjajo

    le-teh [2].

    2.2. Splet 2.0

    Z razvojem tako strežnǐskih tehnologij (strežnǐske programske opreme, podatkovnih baz

    ipd.) kot tudi tehnologij na strani odjemalca (napredek spletnih brskalnikov, dinamične

    strani s pomočjo tehnologij Javascript, AJAX ipd.) so se začeli na svetovnem spletu

    v prvem desetletju 21 stoletja pojavljati novi primeri uporabe v obliki najrazličneǰsih

    programskih platform.

    Med omenjenimi platformami so denimo blogi (spletni dnevniki), družbena omrežja

    (Facebook, MySpace (glej sliko 2.1), Twitter), spletni odjemalci elektronske pošte

    (GMail, Yahoo Mail, Hotmail), spletne enciklopedije (wikiji), spletni forumi idr.

    Bistvena razlika med slednjimi implementacijami in dotedanjimi funkcionalnostmi sve-

    tovnega spleta je v tem, da je pri vseh omenjenih platformah bistven dvosmerni pretok

    informacij. Uporabniki spletnih strani soustvarjajo njeno celostno vsebino. Posledično

    je količina informacij, objavljenih na svetovnem svetu, začela močno naraščati.

    Ta nov vidik uporabe svetovnega spleta je pomenil bistveno spremembo v njegovem

    načinu uporabe [3]. Tim O’Reilly, znan založnik računalnǐske literature, je leta 2005

    objavil članek, v katerem je opisal takratno aktualno evolucijo svetovnega spleta. Tre-

    5

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • nutno stanje uporabe spletnih tehnologij je opisal kot Web 2.0 oz. Splet 2.0.

    En primer značilnosti Spleta 2.0 je označevanje (angl. tagging), s čimer uporabniki

    dodajajo vsebinam značke, ki opisujejo vsebino. Slednje predstavlja strukturiranje

    vsebine na spletu, katerega izvajajo uporabniki. Ker kategorizacija poteka s strani

    uporabnikov, jo imenujemo folksonomija (izpeljano iz taksonomija). Ključna lastnost

    Spleta 2.0 je možnost, da uporabniki soustvarjajo spletne vsebine.

    Slika 2.1: MySpace, eno izmed prvih družbenih omrežij (Vir: [8])

    V članku O’Reilly opisuje spletne storitve kot pomembno značilnost Spleta 2.0 ter

    učinkovit model programiranja aplikacij . Aplikacijska logika se prevede v zaporedje

    izvedb spletnih storitev. Spletne storitve so danes pomemben pristop programiranja

    aplikacij, saj omogočajo modularen razvoj, kjer podamo aplikacijski vmesnik, s katerim

    ponudimo razvijalcem določene podatke ali orodja za razvoj.

    Spletna storitev je funkcija, ki na vhodu sprejme zahtevo HTTP in vrača odgovor

    HTTP. V kolikor spletna storitev v telesu sporočila HTTP prejme in vrača strukturi-

    rane podatke XML, običajno govorimo o spletnih storitvah SOAP, ki se dobro obnesejo

    v ogrodju .NET.

    V kolikor pa spletna storitev v telesu sporočila HTTP sprejema in vrača druge podatke,

    6

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • običajno JSON, govorimo o spletnih storitvah REST, ki so enostavneǰse za implemen-

    tacijo in imajo prav tako enostavneǰso strukturo zahtev in odgovorov.

    Za spletne storitve REST so značilni tako imenovani aplikacijski vmesniki REST (angl.

    RESTful API). Z uporabo le-teh skušamo s pomočjo metod sporočil HTTP (GET,

    POST, PUT, DELETE) realizirati tako imenovane operacije CRUD (create, read,

    update, delete) – ustvarjanje, branje, spreminjanje, brisanje podatkov [2].

    2.3. Splet 3.0

    Splet 3.0, poznan tudi kot semantični oziroma pomenski splet, je nabor tehnologij,

    podatkovnih formatov in protokolov, namenjenih strukturiranju ter povezovanju po-

    datkov v okviru svetovnega spleta.

    Podatke strukturiramo s pomočjo atributov, ki pripisujejo podatkom pomen oz. jih

    klasificirajo (razvrstijo) v določeno pomensko kategorijo. Osnovna ideja pomenskega

    spleta je opis pojmov, predmetov, oseb idr. na način, da je možno strojno pridobiti

    pomen določenih podatkov oziroma določene informacije o povezanosti posameznih

    podatkov.

    Povezovanje podatkov poteka na sledeč način: podatke povezujemo v t.i. semantične

    oz. pomenske trojice. Te so sestavljene iz treh sestavin: osebek (izvorno krajǐsče

    usmerjene povezave), predmet (ponorno krajǐsče usmerjene povezave) ter predikat (po-

    vezava med njima) [27]. Množico med seboj povezanih pomenskih trojic imenujemo

    semantična ali pomenska mreža. Semantične oz. pomenske mreže lahko predstavimo s

    pomočjo usmerjenega povezanega grafa (primer na sliki 2.2).

    7

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • cijskega območja (angl. domain of discourse) [9].

    Delimo jih na visokonivojske in domenske. Visokonivojske opisujejo posplošene kompo-

    nente, kot so prostor, čas, dogodek in druge, ki so neodvisne od določenih problemov.

    Primer takšne ontologije je Dublin Core.

    Domenske oz. domensko-specifične ontologije, ki so vezane na točno določeno področje,

    denimo beseda ”kartica”ima različni pomen v kontekstu bančnǐstva (bančna kartica)

    kot v kontekstu strojne opreme (grafična kartica) [25].

    Za predstavitev ontologij uporabimo jezike za opis ontologij. Slednje opisujemo z

    označevalnimi jeziki OWL (Web Ontology Language). Pomenska besedǐsča so torej

    pravzaprav ontologije.

    Nekaj priljubljenih ontologij:

    • Dublin Core – je RDFS slovar za opisovanje splošnih metapodatkov. Dublin Core

    je majhna ontologija, ki se deli na dva besedǐsča: DC elements in DC terms. DC

    elements vsebuje 15 lastnosti. Slovar DC termsje večji in vsebuje 22 razredov in

    55 lastnosti.

    • FOAF (Friend of a friend) – ontologija, ki se uporablja za opis ljudi in družbenih

    odnosov. Še posebej je uporabna za razvoj spletnih družbenih platform. V zapisu

    RDF uporablja predpono foaf.

    • SIOC (Socially Interconnected Online Communities) – dopolnjuje FOAF z opisi

    sestavin, ki jih proizvajajo družbene skupnosti: objave, niti objav ipd. V zapisu

    RDF uporablja predpono sioc.

    • Good Relations – Uporablja se za opis izdelkov, ki se prodajajo na svetovnem

    spletu. Portal BestBuy.com uporablja ontologijo Good Relations za opis svojih

    izdelkov. V zapisu RDF uporablja predpono gr [7].

    10

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • 3. SPLET 4.0

    3.1. Definicija izraza Splet 4.0

    V letu 2012 so izraz Splet 4.0 opisovali kot množico vmesnikov, zasnovanih na podlagi

    nevro računalnǐstva, torej vmesnikov, kateri bi omogočali sprožanje spletne komunika-

    cije le s pomočjo človeških možganov. Slednje so poimenovali kot t.i. webOS [5]. Nato

    so si nekateri predstavljali Splet 4.0 v smislu inteligentnega agenta, torej kot eno vrsto

    ekspertnega sistema [6].

    V sodobnih časih pa pojmujemo izraz Splet 4.0 nekoliko drugače. Splet 4.0, znan

    tudi kot Web of Things ( WoT - splet stvari) je noveǰsi korak evolucije svetovnega

    spleta, ki se je nekako pojavil v drugem desetletju 21. stoletja. Splet 4.0 je nivo

    abstrakcije na vrhu interneta stvari (IoT). Pri tem IoT predstavlja nabor protokolov

    in tehnologij za rešitve kot so pametni domovi, vseprisotne naprave tipa pametnih

    ur, medicinski pripomočki, sredstva za upravljanje z energenti in okoljem, pametna

    mesta idr. IoT skrbi za pravilno komuniciranje pametnih naprav, Splet 4.0 ali WoT pa

    predstavlja učinkovit način predstavitve podatkov, zajetih iz pametnih naprav preko

    IoT protokolov [29].

    V [12] zasledimo zanimivo definicijo pojma WoT: Šplet stvari je preobrazba interneta

    stvari na način, da pametne naprave vključimo tako v omrežje, kot tudi v arhitekturo

    spletne aplikacije”.

    Tako kot računalnǐska omrežja po posameznih protokolih razdelimo v sloje, tako lahko

    tudi tehnologije Spleta 4.0 oz. WoT razdelimo na sloje. Le-ti sestavljajo tako imenovani

    arhitekturni skladWoT. Sestavljen je iz petih slojev, kot je razvidno iz slike 3.1. Navedli

    11

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • jih bomo začenši z najnižjim (na nivoju strojne opreme):

    • Sloj pametnih naprav,

    • Sloj dostopa,

    • Sloj iskanja,

    • Sloj deljenja,

    • Sloj sestavljanja.

    Slika 3.1: Arhitekturni sklad WoT (Vir: [12])

    3.2. Sloj pametnih naprav

    Sloj pametnih naprav v arhitekturnem skladu WoT predstavlja vse tehnologije, pove-

    zane s pridobivanje podatkov iz pametnih naprav. Tukaj pridejo v poštev tako strojni

    omrežni protokoli, kot tudi programski. Med strojne uvrščamo tehnologije za povezo-

    vanje vozlǐsč v računalnǐskem omrežju kot so denimo Ethernet,Wi-fi, Bluetooth, IR,

    4G, NFC, ipd. Programski protokoli pa zajemajo tiste, za katere vemo, da spadajo k

    12

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • IoT tehnologijam: QR, ZigBee itd [12].

    3.3. Sloj dostopa

    Sloj dostopa (angl. access) skrbi za pretvorbo pametne naprave kor stvari (angl. Thing)

    v spletno stvar (angl. Web Thing). Spletna stvar lahko pošilja zahteve HTTP ter ko-

    municira s spletno aplikacijo preko aplikacijskega vmesnika spletnih storitev REST.

    Tako dosežemo, da lahko dostopamo do spletnih stvari kot do katerikoli drugih vi-

    rov, dostopnih v okviru nekega vmesnika spletnih storitev REST. Primer sloja do-

    stopa lahko prikažemo s pomočjo primera, dostopnega v [12]. S pomočjo orodja Te-

    lerik Fiddler, ki je HTTP odjemalec, smo poslali zahtevo HTTP na spletni naslov

    http://devices.webofthings.io/pi/sensors/humidity/. Za pošiljanje zahteve smo upo-

    rabili metodo HTTP GET. Na sliki 3.2 vidimo rezultat zahteve. Kot odgovor smo

    dobili vrednost 84.4. V tem primeru sicer nimamo podatka o enoti, le-ta bi moral biti

    prisoten v dokumentaciji vmesnika REST.

    13

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Slika 3.2: Primer dostopa do podatkov senzorja za vlažnost. (Vir: [12])

    Načrtovanje aplikacijskega vmesnika REST za pametne stvari (Smart Things) po-

    teka enako, kot to počnemo za poljubne vmesnike REST. Vključuje sledeče štiri korake:

    1. Načrtovanje virov - določiti moramo funkcionalne zahteve (storitve) posamezne

    pametne naprave in jih organizirati v hierarhijo,

    2. Načrtovanje predstavitve - odločiti se moramo, katere predstavitve podat-

    kov bomo uporabili v našem vmesniku (surovo besedilo, format JSON, binarni

    format),

    3. Načrtovanje vmesnika - določimo, katere akcije bo prožila posamezna spletna

    storitev. Natančneje, določimo akcije za posamezne metode HTTP in naslove

    URL,

    4. Načrtovanje strategije implementacije - načrtujemo, kako bomo sprogrami-

    rali pridobivanje podatkov in prenos po omrežju [30].

    14

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • lahko izklopila svetilo. Opisan vmesnik lahko vidimo v tabeli 3.1.

    Tabela 3.1: Primer načrta aplikacijskega vmesnika REST

    Metoda HTTP Akcija

    GET pridobi vrednost senzorja

    POST pošlji zvočni signal

    PUT spremeni napetost na svetilu

    DELETE izklopi svetilo

    3.4. Sloj iskanja

    Ko objavimo spletno stran na svetovnem spletu, jo začnejo spletni brskalniki indeksi-

    rati. Večja vidnost spletne strani v rezultatih iskanja pomeni večjo uporabnost strani

    [30]. Kot smo že nakazali v poglavju 2.3, lahko s pomočjo pomenskega spleta izbolǰsamo

    rezultate iskanja, kot je to vidno v primeru semantične mreže Knowledge Graph pod-

    jetja Google. Pametne naprave, ki nastopajo v aplikacijah Spleta 4.0 kot spletne stvari

    (angl. Web Things), imajo svoj slovar, ki je posebej načrtovano za pomenski opis

    naprav [14].

    Po priporočilih organizacije W3C za pomenski opis pametnih naprav uporabljamo for-

    mat JSON-LD, opisan v poglavju 2.3. Naprava, ki jo želimo pomensko opisati kot

    spletno stvar, mora imeti ime. Drug pomemben podatek pri pomenskem opisu, so in-

    terakcije. Interakcija je po definiciji izmenjava podatkov med spletnim odjemalcem in

    stvarjo (angl. thing). Razdelimo jo na tri t.i. vzorce interakcije:

    • lastnost (angl. property),

    • akcija (angl. action),

    • dogodek (angl. event).

    Interakcija lastnost opǐse podatke, ki so lahko berljivi in/ali zapisljivi, statični (npr.

    nazivna napetost naprave) ali dinamični (trenutna napetost, trenutna temperatura

    ipd.).

    16

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Interakcija akcija opǐse akcije, katere lahko proži posamezna stvar. Akcijo definiramo

    kot proces, ki traja določen čas, da se zaključi. Primer akcij je zatemnitev diode LED,

    premik robota, povečanje temperature grelnika ipd [14].

    Interakcija dogodek omogoča sporočanje podatkov o določenih stanjih. Nastop določenega

    stanja predstavlja dogodek. Le-ta mora obvezno vsebovati tip, ime in izhodne podatke.

    V kolikor opǐsemo napravo s pomočjo zgoraj navedenih atributov v formatu JSON-

    LD, lahko ustrezno pomensko obogatimo aplikacijo Spleta 4.0 v skladu s trenutnimi

    standardi in na ta način izpolnimo zahteve sloja iskanja.

    3.5. Sloj deljenja

    S slojem dostopa omogočimo, da so naše naprave dostopne na spletu kot običajni viri.

    S tem omogočimo enostaven in priročen način interakcije z napravami. S slojem iskanja

    omogočimo tako osebam kot strojem, da na učinkovit način najdejo naprave in iz njih

    izluščijo informacije o samih napravah, kar nam omogoča pomenski splet. S tema

    dvema slojema omogočimo učinkovit dostop in veliko mero vidnosti, kar pa za seboj

    potegne določena varnostna tveganja. Da bi preprečili zlorabo naših naprav, moramo

    omogočiti tako mehanizem avtentikacije kot tudi avtorizacije.

    Avtentikacija ali overjanje je potrditev indentitete sporočevalca ali prejemnika. V

    našem primeru so to spletni viri v obliki spletnih stvari (angl. Web Things), dostopni

    preko protokola HTTP. Najosnovneǰsa zaščita naših virov v smeri avtentikacije je, da

    zahtevamo dostop preko protokola HTTPS. Le-ta s pomočjo tehnologije TLS zagotavlja

    avtentikacijo vozlǐsč v omrežju, z enkripcijo podatkov, ki se prenašajo med strežnikom

    in odjemalcem pa preprečuje prestreganje ali spreminjanje sporočil [20].

    Avtorizacija je preverjanje pravic dostopa do določenih virov. Deljenje naših virov v

    aplikaciji Spleta 4.0 lahko zaščitimo tako, da preverimo pravico dostopa do našega vira.

    Kot primer lahko vzamemo aplikacijo, ki branje podatkov iz naprav omogoča vsem

    uporabnikom, proženje akcij pa le uporabnikom, ki so v vlogi skrbnika. Tehnologija,

    ki jo lahko uporabimo za varno avtorizacijo, je odprti standard OAuth [30].

    17

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • format JSON-LD v skladu z ontologijo, ki jo definira organizacija W3C kot trenutni

    osnutek standarda. Le-tega imenujemo model spletne stvari (angl. Web Thing Model).

    Za zagotovitev varnosti moramo uporabiti tehnologije avtentikacije (npr. HTTPS) in

    avtorizacije (npr. OAuth), da preprečimo zlorabo. Slednje spada v t.i. sloj deljenja.

    Nazadnje lahko omogočimo delo z viri spletnih stvari na visokem (abstraktnem) nivoju

    v obliki poenotenih aplikacij, imenovanih mashup.

    19

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • 4. ZASNOVA PORTALA SPLETA 4.0

    4.1. Opis ciljev izdelka

    Izdelek, opisan v tem diplomskem delu, bo predstavljal turistično spletno aplikacijo,

    katera bo služila dvema namenoma. Prvi namen je prikaz ponudbe lokalnega turizma

    lokalne aplikacije in možnost izkorǐsčanja ugodnosti, vezanih na aplikacijo. Drugi na-

    men je pospeševanje prodaje lokalnih turističnih objektov na področju Slovenskih goric

    - nastanitveni objekti, gostinski objekti, kulturne in naravne znamenitosti.

    Za potrebe tega diplomskega dela bomo prikazali razvoj portala po poteh od Spleta

    1.0 do Spleta 3.0 in še nakazali, kje se da razširiti v smeri tehnologij Spleta 4.0.

    Če še navedemo nekaj konkretnih ciljev (nefunkcionalnih zahtev), ki jih želimo

    doseči z razvojem aplikacije:

    • Razširljiv podatkovni model - razvita aplikacija mora imeti razširljiv (angl.

    scalable) podatkovni model, ki se lahko na enostaven način dopolnjuje in spre-

    minja. Podatkovna baza mora služiti temu namenu in ne sme predstavljati ovir

    pri spreminjanju strukture baze.

    • Razširljiva predstavitev podatkov - razvita aplikacija mora biti enostavna

    za vzdrževanje v smeri spreminjanja kode HTML, ki prikazuje lastnosti objektov

    v podatkovni bazi.

    • aplikacija naj bo razširitev sistema za upravljanje z vsebino (CMS) -

    zaradi lažjega vzdrževanja in večje stabilnosti naj bo aplikacija razširitev ustre-

    znega sistema za upravljanje z vsebino (CMS), da dobimo robusten in zanesljiv

    način vnosa podatkov preko uporabnǐskega vmesnika, neodvisno od podatkov-

    20

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • nega modela.

    4.2. Opis uporabljenih tehnologij

    Da smo se lahko lotili razvoja, smo morali izbrati ustrezne tehnologije, ki bodo služile

    kot podlaga.

    Kot strežnǐsko rešitev smo izbrali strežnik Node.js, saj uporablja asinhron način ob-

    delave vhodno-izhodnih operacij, kar je ugodno za več hkratnih obdelav zahtev [18].

    Za podatkovno bazo smo izbrali bazo NoSQL , natančneje, dokumentno bazo Mon-

    goDB. Slednja je priljubljena izbira mnogih projektov, ki se lotevajo razvoja aplikacij

    s razširljivimi podatkovnimi modeli.

    S podatkovno bazo MongoDB smo prav tako dosegli enostavno vzdrževanje podat-

    kovne baze. Namreč, če primerjamo rabo MongoDB z rabo relacijskih podatkovnih

    baz, ugotovimo, da imamo pri relacijskih podatkovnih bazah bistveno večje težave pri

    spreminjanju podatkovnega modela, saj nas omejujejo obstoječe povezave tujih ključev,

    za katere moramo poskrbeti, ko spremenimo podatkovni model [15].

    Aplikacijo smo zgradili kot razširitev odprtokodnega ogrodja Keystone.js, ki je sis-

    tem za upravljanje z vsebino, ki teče na strežniku Node.js in uporablja podatkovno

    bazo MongoDB.

    Natančneje, podatkovni model znotraj Keystone.js uporablja priljubljeni objektno-

    dokumentni model (ODM) Mongoose.js. Objektno-dokumentni model služi preslikavi

    objekta (kot primerka razreda po principu objektno usmerjenega programiranja) v ele-

    ment podatkovne baze [16].

    Za usmerjanje (angl. routing) ogrodje uporablja express.js. Express.js je ogrodje, ki

    služi usmerjanju (preslikavi URL v ustrezno aplikacijsko logiko), vendar je kot nalašč

    ustvarjeno za arhitekturni vzorec MVC (Model-View-Controller), saj vsebuje podporo

    za ustvarjanje tako imenovanih pogonov pogledov (angl. view engine), ki omogočajo

    polnjenje HTML predlog s podatki.

    Izberemo lahko različne tehnologije predlog HTML. Privzeto uporablja ogrodje Keystone.js

    21

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • jezik za pisanje predlog Pug. Mi smo izbrali tehnologijo Handlebars.js.

    Keystone.js vsebuje razrede, poimenovane Keystone List, ki predstavljajo razširjene

    sheme ogrodja Mongoose in v smislu sestavine arhitekturnega vzorca model (t.j. ra-

    zred, ki predstavlja logiko nosilcev podatkov). Ti razredi ob klicu konstruktorja poleg

    ustrezne sheme Mongoose ustvarijo še ustrezno predstavitev modela v skrbnǐskem vme-

    sniku, poimenovanem Admin UI.

    Takšna predstavitev vključuje ustrezna vnosna polja za posamezne lastnosti razreda

    List (modela). Denimo, za vnos elektronske pošte se ustvari vnosno polje z validacijo,

    za vnos slike vnosno polje za datoteko ipd. Primer vnosa v skrbnǐskem vmesniku

    vidimo na sliki 4.1.

    Slika 4.1: Primer predstavitve modela v Admin UI ogrodja Keystone.js

    Zapisana predloga Handlebars.js se prevede, usmerjevalnik, zapisan v ogrodju express.js

    jo zapolni s podatki iz modela, končna generirana koda HTML pa predstavlja sledeči

    rezultat (na sliki 4.2, viden na strani odjemalca:

    S pomočjo ogrodja Keystone.js smo torej na sorazmerno enostaven način omogočili

    razvoj aplikacije, ki bo predstavljala podlago za končni izdelek in omogočila razširitev

    s tehnologijami Spleta 2.0, 3.0 in 4.0.

    22

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Slika 4.2: Predstavitev nastanitvenega objekta na strani odjemalca

    4.3. Funkcionalnosti Spleta 2.0

    Za implementacijo lastnosti Spleta 2.0 smo kot primer ustvarili spletne storitve REST.

    Ustvarili smo datoteko get.js, ki vsebuje modul za dinamično pridobivanje podatkov iz

    podatkovne baze in vračanje rezultatov poizvedbe v obliki JSON. Implementacijo smo

    realizirali tako, da iz naslova URL v zahtevi razpoznamo ime modela in id objekta. Zno-

    traj ogrodja Express.js to preprosto storimo tako, da dostopamo do lastnosti objekta

    params, ki je lastnost objekta req, ki predstavlja objekt zahteve, ki jo express.js raz-

    pozna v procesu usmerjanja.

    Nato iz konfiguracijske datoteke preberemo ustrezni model, ki ga želimo pridobiti s tem

    naslovom URL in nazadnje naložimo ustrezni razred Keystone List tako, da v konstruk-

    tor razreda podamo niz, ki predstavlja ime modela. Le-to je običajno zapisano z veliko

    začetnico, zato v procesu pretvarjanja imena modela po potrebi spremenimo začetnico

    niza, kar smo dosegli s preprosto funkcijo, ki smo jo zapisali v modulu pomožnih funkcij

    Util.

    Po uspešnemu nalaganju modela preverimo, ali imamo na voljo id objekta. V kolikor

    je le-ta podan kot parameter, pridobimo dokument iz baze, kateri se bodisi po nizu id

    23

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • 1

    2 {

    3 "@context": "http://schema.org",

    4 "@type": "Accomodation",

    5 "name" : "{{name}}",

    6 "description" : "{{description}}",

    7 "address" :

    8 {

    9 "@type" : "PostalAddress",

    10 "addressCountry" : "{{location.country}}",

    11 "postalCode" : "{{location.postcode}}",

    12 "streetAddress" : "{{location.street1}}"

    13 },

    14 "telephone" : "{{contact.telephone}}",

    15 "photo" : "{{displayImage.url}}",

    16 "starRating" :

    17 {

    18 "@type" : "Rating",

    19 "ratingValue" : "{{numberOfStars}}"

    20 }

    21 }

    22

    Primer izvorne kode 4.1: Primer pomenskega opisa nastanitve

    bodisi po nizu slug (prijaznemu naslovu URL objekta) ujema s podanim id.

    V kolikor parameter id ni podan, vrnemo kar vse objekte tistega modela. Rezultat

    vrnemo v formatu JSON. S tem smo implementirali dinamično spletno storitev, ki

    ustreza operaciji beri (Read) iz četvorčka CRUD (Create, Read, Update, Delete).

    4.4. Pomenski opis podatkov

    Za uresničitev funkcionalnosti Spleta 3.0 smo uporabili zapis JSON-LD. Zapis smo iz-

    brali na podlagi dejstva, omenjenega v poglavju 2.3, in sicer, da je JSON-LD priporočan

    format strukturiranih podatkov s strani podjetja Google za vključitev v Knowledge

    Graph. S tem torej želimo poleg pomenskega opisa doseči tudi obogatitev rezultatov

    iskanja, kot je vidno na primeru s slike 2.3. Spodaj je primer pomenskega opisa že

    predstavljenega nastanitvenega objekta:

    24

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Tudi zapis JSON-LD smo zapisali v obliki predlog Handlebars.js, natančneje delne

    (angl. partial) predlog. Slovar, ki smo ga izbrali, je Schema.org, same vrednosti pa se

    polnijo s podatki iz podatkovnega modela, ki jih nudi pogon predloge pri prevajanju.

    Vključitve izdelka v Knowledge Graph žal ne moremo prikazati, saj naš primer ni

    objavljen na svetovnem spletu.

    V primeru, da obstaja identična bijektivna preslikava med našim podatkovnim mode-

    lom in ontologijo oziroma pomenskim slovarjem, lahko pomenski opis implementiramo

    brez pisanja posebnih predlog tako, da preprosto celotni dokument iz podatkovne baze

    izpǐsemo v znački script, v katerem hranimo zapis JSON-LD.

    4.5. Možnost razširitve s funkcionalnostmi Spleta 4.0

    Za razširitev aplikacije s funkcionalnostmi Spleta 4.0 smo ustvarili mobilno aplikacijo.

    Razlog za to je enostaven - v okviru turistične aplikacije bomo kot napravo, ki jo

    vključimo v aplikacijo Spleta 4.0 vzeli kar mobilno napravo - pametni telefon ali tablični

    računalnik. Turisti namreč na svojih potovanjih uporabljajo mobilne naprave, zato se

    nam zdi smiselno izkoristiti funkcionalnosti, ki jih te naprave ponujajo.

    Uporabili smo ogrodje Ionic, ki omogoča razvoj hibridnih mobilnih aplikacij. Za im-

    plementacijo aplikacije Spleta 4.0 je ogrodje Ionic še zlasti uporabno. Razlog za to

    je, da omogoča enostavni razvoj spodobnih mobilnih vmesnikov, ki hkrati delujejo kot

    spletne aplikacije. Omogoča pa tudi dostop do platforme, ki poganja aplikacijo Ionic.

    Ogrodje Ionic namreč kot podlago uporablja ogrodje Apache Cordova, ki omogoča

    prevajanje spletnih aplikacij v programe, ki so izvšrljivi na mobilnih platformah. Tako

    imamo dostop do vmesnika, ki zna klicati rutine mobilnega operacijskega sistema.To

    nam omogoča dostop do podatkov senzorjev, geolokacije, fotoaparata ipd [13].

    Naš cilj je ustvariti mobilno aplikacijo, ki bo iz naše osnovne turistične spletne apli-

    kacije prebrala podatke o turističnih objektih. Omogočala bo branje radiofrekvenčne

    identifikacije (RFID) preko senzorja NFC. Primer uporabe je, ko turist pride na neko

    točko, kjer želi potrditi svoj obisk te točke s pomočjo branja čipa RFID oz. NFC, ki

    25

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • je nameščen na tisti točki.

    Za začetek moramo pridobiti podatke, ki se nahajajo v podatkovni bazi naše turistične

    aplikacije. Preko ustvarjenega aplikacijskega vmesnika REST, ki smo ga ustvarili v po-

    glavju 4.3, pridobimo seznam kulturnih znamenitosti in jih izpǐsemo v seznam (značka

    ion-list) znotraj značke ion-item (slika 4.3). Dodamo še gumb za branje značke RFID,

    s katerim bomo sprožili akcijo potrditve.

    Slika 4.3: Mobilna aplikacija ustvarjena z ogrodjem Ionic

    S pomočjo vmesnika Ionic ustvarimo poslušalca sporočil formata NDEF (NFC Data

    Exchange Format)[13]. Posamezna kulturna znamenitost ima svoj RFID, katerega

    hranimo v podatkovni bazi v obliki značke NDEF. Ob pritisku na gumb za potrditev

    cilja sena določen naslov URL naše spletne aplikacije pošlje zahteva HTTP z metodo

    26

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • POST, s čimer ustvarimo zapis poskusa potrditve dosega cilja v podatkovno bazo.

    Poskus se shrani v bazo kot uspešen le, če se znački NDEF ujemata. Za posamezno

    napravo lahko pridobimo poskuse znotraj zavihka doseženi cilji (slika 4.4).

    Slika 4.4: Dnevnik poskusov potrditve cilja s pomočjo senzorja NFC

    Zgoraj opisana rešitev predstavlja zasnovo za razvoj spletnega portala s tehnologijami

    Spleta 4.0. Da bi izpopolnili rešitev, bi morali razviti funkcionalnosti posameznih

    slojev arhitekture spleta stvari. Če bi zapise NFC vsake mobilne naprave naredili

    dostopne preko spletnih storitev, bi izpolnili sloja dostopa. Z dodatkom varnostnih

    protokolov (OAuth, HTTPS) lahko hitro izpolnimo zahteve sloja deljenja. Nazadnje,

    če bi ustvarili še mashup, s katerim bi lahko upravljali posamezne naprave (denimo,

    da izklopimo potrditev izleta za neko napravo zaradi suma zlorabe), bi izpolnili še sloj

    sestavljanja.

    27

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • 5. SKLEP

    V diplomskem delu smo najprej opisali, kako se je razvijal svetovni splet. Obravnavo

    smo začeli z opisom protokola HTTP, ki predstavlja osnovo svetovnega spleta. Njegov

    nastanek je zaznamoval dobo Spleta 1.0.

    Nadaljevali smo z opisom tehnologij Spleta 2.0, ki v grobem omogočajo tri stvari. Prva

    izmed le-teh je obogatitev vsebin spletnih strani s pomočjo dvosmerne komunikacije

    med uporabniki in spletno aplikacijo. Druga stvar je pojavitev najrazličneǰsih spletnih

    platform, kot so družbena omrežja, spletne galerije, klepetalnice, spletne trgovine in

    podobno. Te platforme predstavljajo primere uporabe spletnih strani, ki jih splet

    do tedaj še ni omogočal oziroma predvideval. Tretja stvar, ki je bistvenega pomena,

    so spletne storitve. Omogočale so nov pristop k razvoju aplikacij. Nekdaj so bile

    priljubljene spletne storitve SOAP, ki temeljijo na izmenjavi sporočil v formatu XML,

    danes so pa bistveno bolj priljubljene spletne storitve REST.

    Nastanek tehnologij Spleta 3.0 oz. pomenskega spleta je omogočil strojno prepoznaven

    opis pomena podatkov na svetovnem spletu. Prednosti tovrstnega opisa so vidne de-

    nimo pri praktičnih aplikacijah semantičnih mrež, kot to opazimo pri mreži Knowledge

    Graph podjetja Google, ki omogoča obogatene rezultate iskanja.

    Tehnologije Spleta 4.0 opǐsemo s pomočjo t.i. arhitekture spleta stvari (angl. Web of

    Things). Le-ta predvideva štiri sloje aplikacije, po katerih poteka komunikacija preko

    spleta stvari. Sloj pametnih naprav predstavlja tehnologijo IoT, ki jo nudijo naše pa-

    metne naprave. Sloj dostopa omogoča dostopnost naših pametnih naprav preko aplika-

    cijskih vmesnikov spletnih storitev REST. Sloj iskanja zahteva mehanizme avtorizacije

    in avtentikacije s pomočjo varnostnih protokolov, kot sta OAuth in HTTPS. Zadnji in

    najvǐsji sloj arhitekture spleta stvari je sloj sestavljanja, ki zahteva izdelavo poenote-

    28

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • nih aplikacij, poimenovanih mashup. Omogoča interakcijo z napravami na abstraktnem

    nivoju.

    Kot izdelek smo razvili spletno turistično aplikacijo na podlagi tenhologij Node.js,

    Express.js in MongoDB, poenotenih znotraj ogrodja Keystone.js. Aplikaciji smo dodali

    funkcionalnosti Spleta 2.0 v obliki aplikacijskega vmesnika spletnih storitev REST in

    pomenski opis podatkov, kar spada pod tehnologije Spleta 3.0. Nazadnje smo zadevo še

    dopolnili z mobilno aplikacijo, razvito s pomočjo ogrodja Ionic. S pomočjo knjižnice za

    dostop do funkcionalnosti operacijskega sistema smo prebrali značke NDEF. S pomočjo

    teh značk smo preverjali pristnost potrditve cilja.

    Rešitev bi vsekakor lahko razširili tako, da bi vključili posamezne sloje Spleta 4.0.

    Če bi implementirali spletno storitev REST, ki bi omogočala dostop do naprave, bi

    lahko rešitev dopolnili s slojem dostopa. V kolikor bi opise naprav ustrezno obogatili s

    pomenskim opisom, bi izpolnili zahteve sloja iskanja. Z ustrezno varnostno zaščito bi

    lahko dodali sloj deljenja. Za sloj sestavljanja pa bi morali preučiti ustrezne primere

    uporabe, da bi ustvarili t.i. mashup. Osebno menim, da je razvoj aplikacij Spleta 4.0

    zanimiv izziv in predstavlja prihodnost mnogih rešitev na področij naprav interneta

    stvari.

    29

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Viri

    [1] R. Fielding, U. Irvine, J. Gettys in drugi, Hypertext transfer protocol - HTTP

    1.1. 15. jun. 1999. Dostopno na: https://www.w3.org/Protocols/HTTP/1.1/

    rfc2616.pdf [16. 10. 2017].

    [2] T. O’Reilly. (30. sep. 2005). What Is Web 2.0, Design Patterns and Business

    Models for the Next Generation of Software, Dostopno na: http://www.oreilly.

    com/pub/a/web2/archive/what-is-web-20.html?page=1 [16. 10. 2017].

    [3] G. Cormode in B. Krishnamurthy. (2. jun. 2008). Key differences between Web

    1.0 and Web 2.0, Dostopno na: http://firstmonday.org/ojs/index.php/fm/

    article/view/2125/1972 [16. 10. 2017].

    [4] O. Bonaventure, Computer Networking, Principles, Protocols and Practice. The

    Saylor Foundation, 2011. Dostopno na: https://www.saylor.org/site/wp-

    content/uploads/2012/02/Computer-Networking-Principles-Bonaventure-

    1-30-31-OTC1.pdf [5. 9. 2017].

    [5] S. Aghaei, M. A. Nematbakhsh in H. K. Farsani, “EVOLUTIONOF THEWORLD

    WIDE WEB: FROM WEB 1.0 TO WEB 4.0”, International Journal of Web and

    Semantic Technology, 2012.

    [6] J. Fowler in E. Rodd. (2015). Web 4.0: The Ultra-Intelligent Electronic Agent is

    Coming, Dostopno na: http://bigthink.com/big-think-tv/web-40-the-

    ultra-intelligent-electronic-agent-is-coming [16. 11. 2017].

    [7] w3.org. (7. maj 2015). Good Ontologies, Dostopno na: https://www.w3.org/

    wiki/Good_Ontologies [27. 10. 2017].

    30

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • [8] MySpace.com. (2016). Družbeno omrežje MySpace, Dostopno na: http://thehigherlearning.

    com/wp-content/uploads/2016/06/myspace-hack-feat-830x450.png.

    [9] F. Arvidsson in A. Flycht-Eriksson. (2017). Ontologies I, Dostopno na: http:

    //www.ida.liu.se/~janma56/SemWeb/Slides/ontologies1.pdf [27. 10. 2017].

    [10] C. Bizer, R. Meusel in A. Primpeli. (2017). Web Data Commons - RDFa, Micro-

    data, and Microformat Data Sets, Dostopno na: http://webdatacommons.org/

    structureddata/index.html#results-2016-1 [27. 10. 2017].

    [11] Google. (2017). Introduction to Structured Data, Dostopno na: https://developers.

    google.com/search/docs/guides/intro-structured-data [27. 10. 2017].

    [12] D. Guinard. (2017). What is the Web of Things?, Dostopno na: https : / /

    webofthings.org/2017/04/08/what-is-the-web-of-things/ [16. 11. 2017].

    [13] ionicframework.org. (2017). Ionic Framework Documentation, Dostopno na: https:

    //ionicframework.com/docs [18. 11. 2017].

    [14] S. Kaebisch in T. Kamiya. (14. sep. 2017). Web of Things (WoT) Thing De-

    scription, Dostopno na: https://www.w3.org/TR/2017/WD- wot- thing-

    description-20170914/ [17. 11. 2017].

    [15] mongodb.com. (2017). What is MongoDB?, Dostopno na: https://www.mongodb.

    com/what-is-mongodb [16. 11. 2017].

    [16] mongoosejs.com. (2017). mongoose, Dostopno na: http : / / mongoosejs . com

    [16. 11. 2017].

    [17] Neznano. (2017). Podatki prometa na internetu Internet live stats, Dostopno na:

    http://http://www.internetlivestats.com/ [16. 10. 2017].

    [18] nodejs.org. (2017). About Node.js, Dostopno na: https://nodejs.org/en/

    about/ [16. 11. 2017].

    [19] Schema.org. (2017). Pomensko besedǐsče Schema.org, Dostopno na: http : / /

    schema.org/ [27. 10. 2017].

    [20] Wikipedia. (2017). HTTPS, Dostopno na: https://en.wikipedia.org/wiki/

    HTTPS [27. 10. 2017].

    31

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • [21] Wikipedia. (2017). Hypertext Transfer Protocol, Dostopno na: https://en.

    wikipedia.org/wiki/Hypertext_Transfer_Protocol [16. 10. 2017].

    [22] Wikipedia. (2017). Internet protocol suite, Dostopno na: https://en.wikipedia.

    org/wiki/Internet_protocol_suite [16. 10. 2017].

    [23] Wikipedia. (2017). Knowledge Graph, Dostopno na: https://en.wikipedia.

    org/wiki/Knowledge_Graph [27. 10. 2017].

    [24] Wikipedia. (2017). Mashup (web application hybrid), Dostopno na: https://

    en.wikipedia.org/wiki/Mashup_(web_application_hybrid) [27. 10. 2017].

    [25] Wikipedia. (2017). Ontology (Information science), Dostopno na: https://en.

    wikipedia.org/wiki/Ontology_(information_science) [27. 10. 2017].

    [26] Wikipedia. (2017). OSI model, Dostopno na: https://en.wikipedia.org/

    wiki/OSI_model [16. 10. 2017].

    [27] Wikipedia. (2017). Resource Description Framework, Dostopno na: https://en.

    wikipedia.org/wiki/Resource_Description_Framework [27. 10. 2017].

    [28] Wikipedia. (2017). Retronim, Dostopno na: https://sl.wikipedia.org/wiki/

    Retronim [27. 10. 2017].

    [29] Wikipedia. (2017). Web of Things, Dostopno na: https://en.wikipedia.org/

    wiki/Web_of_Things [27. 10. 2017].

    [30] D. Guinard, “A Web of Things Application Architecture -Integrating the Real-

    World into the Web”, doktorska disertacija, ETH Zurich. Dostopno na: https:

    //s3.amazonaws.com/guinard.org/webofthings-thesis-domguinard.pdf

    [17. 11. 2017].

    32

    Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Demo Version, http://www.verydoc.com and http://www.verypdf.com

  • Demo Version, http://www.verydoc.com and http://www.verypdf.com