Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- UVOD U
- INTEROPERABILNOST
- Interoperabilnost
- informacijskih
- sustava
- UVOD U INTEROPERABILNOST
- Definicije
- Čimbenici, koristi, razine i vrste interoperabilnosti
- Područja interoperabilnosti
- Strategije interoperabilnosti
- Okviri za interoperabilnost (HROI i EIF)
- 2
- Poimanje pojma
- interoperabilnosti ...
- • Interoperabilnost je ...
- – filozof
- • razumijevanje dvaju subjekata
- – bankar
- • razmjena financijskih podataka
- – jezikoslovac
- • sličnosti (razlike) dvaju jezika
- – menadžer
- • poslovna suradnja dvije tvrtke
- – dijete od 5 godina?
- • Pokušajte sad sami definirati
- interoperabilnost!
- 3
- Terminologija
- • Pojam interoperabilnost
- – inicijalno vojni termin
- • mogućnost sustava ( jedinica, naoružanja)
- da
- surađuje s drugima u cilju zajedničkog
- djelovanja
- • Razdijelimo na: inter + oper + abilnost
- – inter = isti prefiks kao Internet
- – latinski "inter" dolazi od "in" + "terra"
- • u našem slučaju: između, u sredini
- – engleski "operate" – djelovanje
- – engleski "ability" – mogućnost
- 4
- Hrvatski i interoperabilnost ...
- • Hrvatski „prijevodi” (pokušaji)
- – međudjelovanje
- – sudjelatnost
- – mogućnost međusobnog djelovanja
- – mogućnost zajedničkog rada
- – mogućnost uzajamnog funkcioniranja
- – interoperativnost ???
- 5
- Definicija
- • „Interoperabilnost je
- sposobnost zasebnih i različitih
- organizacija
- da međusobno djeluju
- u smjeru zajednički korisnih i
- dogovorenih ciljeva, što uključuje
- razmjenu podataka, informacija i znanja
- kroz poslovne procese
- koji podržavaju i korištenje
- informacijsko-komunikacijskih
- tehnoloških sustava.“
- iz Hrvatskog okvira za interoperabilnost,
- usuglašenog s Europskog okvira za
- interoperabilnost
- 6
- Demistifikacija
- • Na razini upravljanja:
- – postiže se dogovorom (konsenzus)
- – zajednički ciljevi i interesi
- • Na razini provedbe:
- – usklađivanje i zajedničko djelovanje
- – razmjena podataka, informacija i znanja
- u poslovnim procesima
- – krajnji cilj (u pravilu) je pružanje usluga
- • Ali …
- integracija ≠ interoperabilnost
- kompatibilnost ≠ interoperabilnost
- prilagodljivost ≠ interoperabilnost
- 7
- Povijesni pogled
- • Ali poslovno međudjelovanje je počelo
- davno prije, bez moderne tehnologije
- – način – papir, olovka, potpis, pečat, žig …
- – dostava – glasnik, golub, kočija, pošta …
- • Problemi
- – potrebna neposredna blizina
- • inače samo pisani oblik i vremenski odmak
- No, principi su isti i danas ...
- • Modernizacija
- – telefon, teleks, telefax …
- – e-mail, Internet, Web …
- – razni moderni (napredni) oblici poslovanja
- • Danas interoperabilnost važnija nego ikad!
- 8
- Svrha i cilj interoperabilnosti
- • Svrha i cilj – povećanje učinkovitosti
- – brzina
- – nepotrebnost fizičke blizine
- – poslovanje na velikim
- udaljenostima
- – automatizacija procesa
- • Rezultat:
- – postizanje poslovanja tamo gdje
- prije nije bilo moguće ili je bilo
- znatno otežano
- – smanjenje troškova poslovanja
- 9
- Preduvjeti za interoperabilnost
- • Razni oblici elektroničkih komunikacija
- – infrastruktura elektroničke
- komunikacijske mreže
- • Računalni sustavi za poslovanje
- – sustavi za izradu i pohranu strukturiranih
- podataka o poslovanju uporabom novih
- tehnologija, metoda i mehanizama
- transformacija, slanja i primanja te
- sigurne pohrane podataka
- • Informacije u obliku elektronički zapisanih
- podataka
- – koriste ih sustavi, protokoli i tehnologije
- • Zaključak: zasnovano na naprednoj
- tehnologiji
- 10
- UVOD U INTEROPERABILNOST
- Definicije
- Čimbenici, koristi, razine i vrste
- interoperabilnosti
- Područja interoperabilnosti
- Strategije interoperabilnosti
- Okviri za interoperabilnost (HROI i EIF)
- 11
- Preduvjeti interoperabilnosti
- • Što je potrebno za neki početak korištenja?
- – unaprijed se često ne zna što se sve može
- podrazumijevati
- • Primjer: vožnja automobila
- – trivijalno: upali motor, ubaci u brzinu i vozi!
- – stvarno: prometnice, znakovi, opasnosti,
- pješaci …
- • Zaključak: treba utvrditi čimbenike, korist,
- razine i vrste interoperabilnosti
- – prvo definiramo što → kasnije lakše kako
- • Čimbenici interoperabilnosti sa stanovišta
- organizacije:
- – vanjski i unutarnji
- 12
- Vanjski čimbenici
- interoperabilnosti
- • Vanjski čimbenici – razlog postojanja organizacije
- – kontekst djelovanja organizacije u okruženju
- • druge organizacije, okolina i subjekti u okruženju s
- kojima je organizacija u nekom izravnom odnosu
- • Neposredni vanjski čimbenici su prvi potencijalni
- subjekti interoperabilnosti:
- – vlasnik ili nadsustav
- • zajednički interesi
- – korisnik
- • usluga
- – pružatelj usluge
- • usluga
- – zajednica
- • uvjeti
- – ostali vanjski čimbenici
- 13
- Unutarnji čimbenici
- interoperabilnosti
- • Unutarnji čimbenici – dijelovi organizacije i njena
- poslovna djelatnost
- – političko područje ili područje odlučivanja
- • svrha i ciljevi postojanja (vlasnici)
- – pravno područje
- • propisi i interni dokumenti – kako se funkcionira
- – organizacijsko-procesno područje
- • org. struktura, procesi, prava, obveze, odgovornosti,
- upravljanje
- – semantičko područje
- • značenja svih pojmova, elemenata, sudionika i procesa
- – tehničko područje
- • tehnologije (olovka ili računalo, mreža, sustav, razmjena ...)
- • Definiraju se zakonitosti i ograničenja – a to su norme i
- pravila
- 14
- Unutarnji čimbenici interoperabilnosti
- • Područja poslovanja nisu
- nezavisna
- • Promjene u jednom području
- uzrokuju nužne prilagodbe u
- ostalim područjima
- 15
- Razine interoperabilnosti
- • Jedna od definicija interoperabilnosti:
- – „Interoperabilnost je mogućnost dva ili više sustava ili
- komponente da razmjenjuju informacije i koriste
- razmijenjene informacije“
- • Ukazuje na dvije osnovne razine interoperabilnosti:
- – sintaksna – tehnička sličnost sustava, oblika
- podataka koji se razmjenjuju i komunikacijskih
- protokola
- – semantička – razmijenjene informacije se
- automatski, smisleno i točno tumače
- • Semantička imovina (semantic assets) – resursi
- potrebni za ostvarivanje semantičke interoperabilnosti
- – klasifikacijski sustavi, nomenklature, šifrarnici,
- pojmovnici, rječnici ili vokabulari, XML sheme i slični
- popisi pojmova
- – specifikacije međusobnih veza tih popisanih
- elemenata te pravila pridruživanja ili preslikavanja
- među njima – ontologije
- 16
- Razine interoperabilnosti
- • Tehnička – glavni preduvjet
- – mreža, protokol
- • Sintaksna – komunikacija i razmjena
- podataka
- – struktura podataka, zapis
- • Semantička – razumijevanje značenja
- informacija
- – semantička imovina
- • Pragmatična – kontekst
- – svjesnost metoda drugog sustava
- – matični broj studenta, građana i tvrtke
- • Dinamička – promjena podataka utječe
- na razmjenu i povećanje razumljivosti
- • Konceptualna – sudionici u komunikaciji
- u potpunosti razumiju funkcioniranje
- druge strane
- – implementacija može biti različita
- 17
- Razine interoperabilnosti
- •
- Rekapitulacija razina interoperabilnosti
- – bez interoperabilnosti
- • dvije strane uopće ne komuniciraju
- – tehnička interoperabilnost
- • dvije strane komuniciraju, jedna govori (šalje),
- druga čuje (prima), ali ne zna što
- – sintaksna interoperabilnost
- • u komunikaciji se razumiju glasovi i riječi, ali se ne zna njihovo značenje
- – semantička interoperabilnost
- • u komunikaciji se razumiju riječi i njihovo značenje, ali ne i rečenice – ne
- poznaje se kontekst riječi u rečenici ni u tekstu
- – pragmatična interoperabilnost
- • u komunikaciji se razumiju riječi u rečenicu i njihov kontekst – tekst
- – dinamička interoperabilnost
- • promjene u procesima sudionika utječu na promjene u rečenicama
- komunikacije
- – konceptualna interoperabilnost
- • definirani su i razumiju se svi procesi i promjene kod svih sudionika
- komunikacije koji se posljedično u potpunosti razumiju – razumijevanje
- razmišljanja druge strane
- 18
- UVOD U INTEROPERABILNOST
- Definicije
- Čimbenici, koristi, razine i vrste interoperabilnosti
- Područja interoperabilnosti
- Strategije interoperabilnosti
- Okviri za interoperabilnost (HROI i EIF)
- 19
- Područja usklađivanja
- interoperabilnosti
- •
- •
- •
- Područja zapravo predstavljaju unutarnje čimbenike
- Nužno usklađivanje interoperabilnosti u svih 5
- područja
- – odstupanje na bilo kojem od područja dovodi do
- nezadovoljenja interoperabilnosti
- – važna je svaka karika u lancu interoperabilnosti
- Područja se promatraju razinski:
- – politika i odlučivanje
- – pravni okviri
- – organizacija i procesi
- – semantika
- – tehnika
- 20
- Područja interoperabilnosti
- 21
- UVOD U INTEROPERABILNOST
- Definicije
- Čimbenici, koristi, razine i vrste interoperabilnosti
- Područja interoperabilnosti
- Strategije interoperabilnosti
- Okviri za interoperabilnost (HROI i EIF)
- 22
- Strategije interoperabilnosti –
- početci
- • Nacionalna strategija informatizacije te
- posljedično i interoperabilnosti
- – odgovorna je država
- • Malo hrvatske povijesti
- – nakon 1991.
- • prve naznake informatizacije državne uprave,
- pravosuđa i javnih djelatnosti
- • većinom spašene i stare državne baze
- podataka i programska oprema od ratnih
- razaranja
- – 90-te
- •
- •
- •
- •
- provedena standardizacija aplikacija
- uvedeni su sustavi ERP
- uveden sustav elektroničke pošte
- sagrađena nacionalna akademska mreža CARNet
- 23
- Interoperabilnost u RH – ovo
- stoljeće
- •
- Od početka ovog stoljeća
- – osnovan je Ured za internetizaciju
- – izveden niz projekata
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- objedinjen proces javne nabave
- modernizacije carinske uprave
- sustava porezne uprave
- sustava državne riznice
- sustava (nove) osobne iskaznice
- sustava graničnih prijelaza
- sustava za gospodarenje i upravljanje prostorom RG
- sustava interoperabilnosti katastra i zemljišnih knjiga
- institucionalnog okvira za internetizaciju
- računalne i komunikacijske mreže tijela državne uprave
- sustava obračuna plaća tijela državne uprave
- sustava za upravljanje državnom imovinom
- strategije višega stupnja primjene ICT za izgradnju nacionalne
- mreže institucionalnoga i izvaninstitucionalnoga obrazovanja
- – donesen niz zakona
- 24
- Interoperabilnost u RH
- •
- •
- •
- •
- •
- 2002. prva strategija “Informacijske i komunikacijske tehnologije –
- Hrvatska u 21. stoljeću”
- – osnovan Središnji državni ured za e-Hrvatsku
- 2004. usvojen Operativni plan provedbe „Programa e-Hrvatska 2007.“
- – pokrenut je i program One-Stop-Shop i otvoren servis HITRO.HR
- – povezivanje tijela državne uprave u jedinstvenu komunikacijsku
- mrežu HITRONet
- – pokrenut je projekt HITROREZ
- Usvajanje Nacionalnog programa informacijske sigurnosti u RH
- Prvi put izrađena studija razvoja informacijskog društva u RH za 2005.
- Od 2007.
- – pokrenut Središnji portal državne uprave ''Moja uprava'‘
- – projekt e-Otoci
- – Hrvatska pristupa EU programu ICT PSP
- – hrvatske ICT tvrtke prvi put se zajednički pojavljuju na CeBIT-u
- 25
- Interoperabilnost u RH
- •
- Od 2008.
- – započinje izrada Strategije razvoja elektroničke
- uprave za razdoblje 2009.-2012.
- – usvojena je i Strategija prelaska s analognog na
- digitalno emitiranje televizijskih programa u RH tzv.
- DVB-T
- – projekt Europske komisije "eGovernment
- Benchmarking"
- • mjeri stupanj razvoja elektroničke uprave u zemljama EU
- •
- – izvedena Analiza hrvatske ICT industrije za proteklo
- desetljeće
- – pokrenut Standardni projekt elektroničkog uredskog
- poslovanja i program e-Ured
- – Hrvatska pristupa EU programu Interoperabilna
- rješenja za europsku javnu upravu ISA
- 2010. usvojen Hrvatski okvir za interoperabilnost
- – preduvjet za poboljšanje komunikacije i međusobne
- suradnje poslovnih sustava tijela državne uprave
- 26
- Interoperabilnost u RH
- •
- •
- Od 2010. do danas
- – predstavljen je informacijski sustav Evidencija ulaganja
- u RH
- – koordinacija provedbe Digitalne agende za Europu
- 2020
- – pokrenuta inicijativa Going Local
- – usvojena Odluka o utvrđivanju ciljeva razvoja
- elektroničke uprave u tijelima državne uprave za
- razdoblje do 2015. godine
- – predstavljen Koncept arhitekture umrežene uprave
- Mandat Vlade RH 2011.-2015.
- – organizacijski spojeni Ministarstvo uprave i Središnji
- državni ured za e-Hrvatsku čime su u nadležnost MU
- dodani i poslovi informatizacije i modernizacije
- – nova Uprava za e-Hrvatsku pri Ministarstvu uprave
- • spaja odvojene cjeline reforme državne uprave i
- informatizacije
- • za vidjeti je kakve će to učinke imati u budućnosti …
- 27
- Uprava za e-Hrvatsku
- •
- Ustroj Uprave za e-Hrvatsku
- – Sektor za modernizaciju i informatizaciju državne uprave
- • Služba za elektroničke usluge i registre
- – Sektor za infrastrukturu
- • Služba za razvoj i standardizaciju i Služba za podršku korisnicima
- •
- Ključna uloga – Povjerenstvo za koordinaciju informatizacije javnog
- sektora
- – osnovano 2012. godine, čine najviši dužnosnici Vlade RH
- – zadaća usmjeravanja razvoja i koordinacije svih poslova i projekata
- primjene informacijske i komunikacijske tehnologije u javnom sektoru
- – u cilju racionalizacije sustava i povećanja kvalitete javnih usluga
- •
- Osnovane radne skupine
- –
- –
- –
- –
- –
- –
- Radna skupina za temeljne registre i elektroničku razmjenu podataka
- Radna skupina za elektronički identitet i autentikaciju
- Radna skupina za standardizaciju rješenja za korisnički pristup
- Radna skupina za infrastrukturu
- Radna skupina za primjenu otvorenoga koda i otvorenih normi
- Radna skupina za definiranje područja i tema za objedinjenu javnu
- nabavu
- 28
- Strategija 2016.-2018.
- •
- Strateški plan Ministarstva uprave za
- razdoblje od 2016. do 2018. godine
- eksplicitno navodi cilj unaprjeđenja
- kvalitete javnih usluga kroz djelotvornu
- primjenu ICT-a u radu javne uprave:
- – razvoj i standardizaciju informacijske i
- komunikacijske infrastrukture
- – poboljšanje dostupnosti i kvalitete
- elektroničkih usluga i rješenja
- – unaprjeđenje sustava podrške za
- koordinaciju razvoja cjelovitih integriranih
- usluga
- – učinkovito korištenje instrumenata
- kohezijske politike i programa EU
- •
- Konkretne aktivnosti:
- – HITRONet
- – „oblak javnog sektora“
- – strategija za otvorene specifikacije i
- standarde
- – usklađivanje HROI s EIF 2.0
- •
- Konkretne aktivnosti (nastavak):
- – zajednička interoperabilna EU rješenja
- – mojauprava.hr
- – redovito ažuriranje popisa službenih
- obrazaca javnopravnih tijela
- – elektronički identiteti
- – elektroničke razmjene podataka između
- registara
- – elektroničko uredsko poslovanje
- – popisa usluga javnog sektora
- – integralne e-usluge
- – procesi državne uprave i e-government
- – pristupa osobnim informacijama za
- građane
- – korisnički-orijentirane e- usluge
- – zajedničke metodologije za standardizaciju
- ICT-a (katalozi metapodataka)
- – praćenje projekata u državnoj upravi
- – aktivno sudjelovanje u projektima na razini
- EU te Digitalnoj agendi za Europu
- 29
- Digitalna agenda za Europu
- 2020.
- •
- Digitalna agenda za Europu ili DAE (Digital Agenda for Europe), EK
- 2010.
- – jedna od 7 ključnih inicijativa u okviru Strategije Europa 2020
- – cilj – ostvariti održive gospodarske i društvene pogodnosti na
- jedinstvenom digitalnom tržištu utemeljenom na brzom i
- ultrabrzom internetu te interoperabilnim aplikacijama
- – procjena – digitalna ekonomija raste 7 puta brže od ostatka
- gospodarstva
- – pomoć EU tvrtkama i građanima da maksimalno iskoriste
- digitalne tehnologije
- – 101 akcija grupiranu u 7 prioritetnih područja djelovanja:
- • jedinstveno digitalno tržište
- • interoperabilnost i normiranje (informacijskih i komunikacijskih
- proizvoda i usluga)
- • povjerenje i sigurnost (na Internetu)
- • brzi i izuzetno brzi pristup Internetu
- • istraživanje i razvoj (poticanje ulaganja)
- • poboljšanje digitalne pismenosti, vještina i uključivosti
- • koristi korištenjem ICT-a za društvo EU
- http://ec.europa.eu/digital-agenda/
- 30
- Digitalna agenda – provedba
- •
- Države članice koje su prihvatile
- Digitalnu agendu za Europu dužne su:
- – izraditi operativne strategije brzog
- interneta i osigurati javno financiranje
- •
- uključujući strukturalne fondove za
- područja koja nisu pokrivena privatnim
- investicijama
- – uspostaviti pravni okvir za koordinaciju
- javnih radova u vezi sa smanjivanjem
- troškova iskorištenja mreža (network
- rollout)
- – promicati implementacije i korištenje
- modernih on line usluga
- •
- •
- e-government, on line zdravstvo, pametne
- kuće, digitalne vještine, sigurnost …
- Najistaknutiji projekti DAE u RH:
- – povezivanje registara
- – povećanje transparentnosti informacija
- – novog i stabilnog okruženja regulacije
- širokopojasnog pristupa Internetu
- – projekt e-Građani
- – projekt e-Upis
- – projekt e-Zdravstvo
- •
- Neki od ambicioznih ciljeva DAE od
- 2013. do 2020. godine su:
- – 100% povećanje u javnoj potrošnji za ICT
- – 99,9% populacije EU pokriveno brzim
- pristupom Internetu
- •
- fiksni i bežični, >30Mbps
- – 75% populacije EU redovno koristi
- Internet
- – 60% građana EU s posebnim potrebama
- redovno koristi Internet
- – 50% kućanstava EU koristi brzi pristup
- Internetu
- – 50% populacije EU koristi e-government
- – 50% populacije EU koristi on-line trgovinu
- – 30% malih i srednjih poduzeća prodaje online
- – 20% populacije EU koristi prekograničnu
- on-line trgovinu
- – roaming po nacionalnim cijenama
- 31
- Projekt e-Građani
- •
- •
- Pokrenut projekt e-Građani (od 2014.)
- – omogućiti komunikaciju građana s javnim sektorom na jednom mjestu na
- internetu
- – portal koji će objediniti informacije o radu javne uprave i javnim uslugama
- – omogućiti siguran pristup elektroničkim uslugama
- 3 sastavnice zajedničke infrastrukture javnog sektora:
- – gov.hr – sustav središnjeg državnog portala
- •
- na jednom mjestu i u lako dostupnim formatima informacije o javnim uslugama
- •
- informacijsko-tehnološki sustav središnje identifikacije i autentikacije korisnika
- elektroničkih javnih usluga
- svaki građanin RH, kojem je izdana prihvatljiva vjerodajnica za elektroničku
- identifikaciju, imat jedinstveni elektronički identitet
- – NIAS – nacionalni identifikacijski i autentikacijski sustav
- •
- – OKP – sustav osobnog korisničkog pretinca OKP
- •
- pristupa osobnim informacijama koje javni sektor želi uputiti građanima
- –
- •
- •
- npr. informacije o statusu osobnih predmeta ili informacije o elektroničkoj razmjeni
- osobnih podataka
- svaki građanin RH dobit će vlastiti osobni korisnički pretinac
- Tijela javnog sektora koriste prilikom:
- – objave javnih informacija
- – pružanja korisnički orijentiranih i personaliziranih tzv. Single-Sign-On eusluga korisnicima
- – slanja osobnih službenih poruka korisnicima vezanih za javne usluge,
- postupke (tijek) i osobne statuse
- 32
- UVOD U INTEROPERABILNOST
- Definicije
- Osnovni pojmovi
- Čimbenici, koristi, razine i vrste interoperabilnosti
- Područja interoperabilnosti
- Pravni okvir uz interoperabilnost u Hrvatskoj
- Strategije interoperabilnosti
- Okviri za interoperabilnost (HROI i EIF)
- 33
- Okvir za interoperabilnost
- •
- •
- •
- •
- Za interoperabilnost i na nacionalnoj i na međunarodnoj razini
- treba utvrditi pravila i norme za razmjenu i korištenje podataka
- Zato se osmišljavaju okviri za interoperabilnost (interoperability
- frameworks)
- – niz pravila koja opisuju dogovorene načine međusobne
- interakcije organizacija
- – niz normi koje se trebaju koristiti kod ostvarivanja
- interoperabilnosti
- EU je odmah prepoznala potrebu za donošenjem propisa vezanih
- uz interoperabilnost
- – 1998. Direktiva o normama 1998/34/EC
- – 2003. Direktiva o informacijama javnog sektora 2003/98/EC
- – 2004. Direktiva o javnoj nabavi 2004/18/EC
- Istovremeno – niz političkih inicijativa interesnih strana, odnosno
- proizvođača određenih platformi i programske podrške
- – pokušale utjecati na izgled vršnih dokumenata o
- interoperabilnosti za EU
- 34
- Europski okvir za interoperabilnost
- •
- •
- •
- Jedna od pozitivnih neovisnih inicijativa – usvajanje okvira za interoperabilnost
- 2004. donesen Europski okvir za interoperabilnost EIF (European Interoperability
- Framework), odnosno EIF 1.0
- – opisuje kako su se organizacije sporazumjele ili će se sporazumjeti oko
- međusobne interakcije i koje će norme koristiti
- – donosi politike i smjernice koje čine temelj za odabir normi
- – prilagođava se pojedinoj gospodarskoj, sociološkoj, političkoj, kulturnoj,
- jezičnoj, povijesnoj i zemljopisnoj situaciji i primjeni u određenom slučaju
- – primarno definiran nad paneuropskim uslugama javne uprave PEGS (PanEuropean eGovernment Services).
- EIF 1.0 donesen u sklopu programa Interoperabilne isporuke
- europskih e-usluga javne uprave administraciji, poslovnom sektoru
- i građanima IDABC (Interoperable Delivery of European
- eGovernment Services to public Administrations, Business and
- Citizens) koji još uključuje i:
- – Europsku strategiju interoperabilnosti EIS (European Interoperability
- Strategy)
- – Smjernice za izgradnju arhitekture europske interoperabilnosti EIAG
- (European Interoperability Architecture Guidelines)
- – Infrastrukturne usluge europske interoperabilnosti EIIS (European
- Interoperability Infrastructure Services)
- 35
- Trokut upravljanja
- interoperabilnošću
- • Trokut upravljanja interoperabilnošću (interoperability
- government triangle)
- – infrastrukturne usluge i alati EIIS
- • u obliku uobičajenih i generičkih ponovno iskoristivih
- komponenata
- – smjernice za izgradnju arhitekture EIAG
- – radni okvir EIF
- – strategija EIS - općenite smjernice i
- akcijski prioriteti
- • 3 klastera područja:
- – povjerenje razmjene informacija
- – arhitektura za interoperabilnost
- – procjena implikacija ICT-a na
- novu legislativu EU
- • 2 pridružene mjere:
- – podizanje svijesti o interoperabilnosti
- – dijeljenje najboljih praksi
- 36
- EIF 2
- •
- Provedbu okvira EIF 1.0 onemogućavale netehnološke prepreke
- – različitost članica EU u veličini i strukturi javne uprave te modela
- interakcije s građanima
- • npr. razlike u broju i mogućnostima ponuđenih javnih usluga, statusu
- vlasništva poduzeća, nadzornim operacijama granice (carina, policija),
- centralizaciji i lokalizaciji upravljanja, načinima interakcije, procesima
- ključnim za građane (rođenje, sklapanje braka, smrt), procedurama
- izdavanja dokumenata, u podršci za višestruke strane jezike
- •
- Osvježavanje – prijedlog Europskog okvira za interoperabilnost EIF
- 2
- – tema niza političkih debata (vezanih uz korištenja određenih
- tehnologija)
- – lobiji za korištenje određenih vlasničkih normi i tehnologija
- • u suprotnosti s idejom i smjernicama EU o korištenju otvorenih normi,
- a po mogućnosti i otvorenog koda te otvorene programske podrške
- – usvojen u prosincu 2010. od strane EK
- • „Okvir za interoperabilnost je dogovoreni pristup interoperabilnosti za
- organizacije koje žele surađivati u smjeru zajedničke isporuke javnih
- usluga. U okviru svog djelokruga primjene, specificira skup zajedničkih
- elemenata, kao što su vokabular, koncepti, principi, politike, smjernice,
- preporuke, norme, specifikacije i prakse.“
- 37
- EIF – smjernice i preporuke
- •
- EIF ne daje preporuke konkretnih tehničkih norma, već
- donosi opće smjernice, odnosno preporuke
- – odnose se na područja dostupnosti, višejezičnosti,
- privatnosti, korištenje otvorenih norma, programske
- podrške otvorenog koda i višestranih rješenja
- 38
- EIF – principi
- • EIF definira 12 principa:
- 1. supsidijarnost (kao najniže moguće) i
- proporcionalnost (kao najbliže moguće)
- 2. usmjerenost korisniku
- 3. uključenost i dostupnost
- 4. sigurnost i privatnost
- 5. višejezičnost
- 6. jednostavnost administracije
- 7. transparentnost
- 8. sačuvanost informacije
- 9. otvorenost
- 10. ponovna iskoristivost
- 11. tehnološka neutralnost i prilagodljivost
- 12. djelotvornost i učinkovitost
- 39
- EIF – konceptualni model
- javnih usluga
- • Konceptualni model
- javnih usluga
- (Conceptual Model
- for Public Services)
- 40
- EIF – scenariji interakcije
- europskih javnih usluga
- • Primjer
- 41
- EIF i otvorenost
- •
- EIF propagira korištenje otvorenih normi, tehničkih
- specifikacija i uporabe softvera otvorenog koda
- – korištene norme trebale bi održavati neprofitne i
- neovisne organizacije
- • procesom otvorenog donošenja odluka i konsenzusom od
- strane svih zainteresiranih stranaka
- • norme se trebaju javno objavljivati te biti dostupne
- besplatno ili uz minimalni trošak
- • intelektualna vlasništva u obliku patenata koja su dio norme
- trebaju također biti dostupna besplatno (royalty-free)
- – izravna povezanost otvorenosti i interoperabilnosti
- vrlo je važna
- • otvorene norme imaju ključnu ulogu u postizanju visoke
- razine interoperabilnosti
- • preporučuje se prihvaćanje tržišnih i pravnih normi koje
- predstavljaju IETF, W3C, OASIS, CEN i ISO
- – za područja komunikacije, sigurnosti, razmjene podataka,
- otkrivanja usluga, prezentacije i zapisa podataka, metapodataka o
- procesima i podacima te imenovanja
- • preporučuje se i korištenje softvera otvorenog koda i
- razvojnih modela otvorenog koda
- 42
- Hrvatski okvir za interoperabilnost
- (HROI)
- •
- Hrvatski okvir za interoperabilnost (HROI) donijela Vlada RH 24.
- lipnja 2010.
- – skup usklađenih pravila, propisa, definicija, normizacijskih i
- drugih dokumenata, potpornih usluga i resursa te provedbenih
- mjera i organizacije namijenjene stvaranju preduvjeta za
- pružanje objedinjenih korisnički usmjerenih usluga javne uprave
- – cilj – uspostava stabilne poslovne i tehnološke interoperabilnosti
- sustava javne uprave i drugih društvenih čimbenika sukladno
- načelima korisnički usmjerene uprave
- – svrha – stvaranje preduvjeta za učinkovitu i djelotvornu primjenu
- ICT u podršci svim funkcijama javne uprave
- • treba omogućiti procesnu povezanost, suradnju i razmjenu informacija
- između tijela javne uprave i svih ostalih sudionika u obavljanju funkcija
- javne uprave na nacionalnoj i EU razini
- •
- – krajnji cilj – izgradnja poslovne i tehnološke okoline koja će
- stabilno i dugoročno osigurati uvjete za učinkovitu suradnju
- sustava javne uprave i drugih sudionika na postizanju zajednički
- utvrđenih ciljeva
- Uspostavljanjem HROI povezat će se danas odvojeni informacijski
- sustavi tijela državne uprave u umreženu upravu
- 43
- HROI – struktura
- • Struktura HROI-a uključuje:
- – dokumente Vlade RH
- • Odluka o HROI-u, Odrednice HROI-a, godišnji
- planovi i izvještaji provedbe HROI-a
- – sustav upravljanja, organizacije i podrške
- provedbe
- – biblioteku strateških i provedbenih
- dokumenata interoperabilnosti
- • programi, planovi, norme, metodološki priručnici,
- upute, smjernice, katalozi, šifrarnici itd.
- – zajedničke resurse i potporne usluge
- podrške provedbi
- • informacijska infrastruktura, provedbena
- organizacija, funkcije, procesi, servisi i mehanizmi
- podrške
- – provedbene mjere
- 44
- HROI – temeljna načela i
- izgradnja
- •
- Primjena načela Strategije razvoja elektroničke uprave u RH
- – praćenje europske strategije i europskog okvira za interoperabilnost uz
- uvažavanje najbolje prakse zemalja s razvijenim nacionalnim okvirima za
- interoperabilnost
- – referenciranje na druge postojeće odgovarajuće nacionalne i/ili
- međunarodne norme
- •
- •
- bez pokretanja paralelnog postupka usvajanja normi
- Izgradnja kroz kombinirani pristup:
- – odozgo prema dolje (top-down) – od strane vršnih tijela
- •
- •
- temeljeno na strateškim ciljevima i prioritetima
- kroz standardizaciju metodologija, uspostavu servisa interoperabilnosti, izgradnju i
- dostupnost gradbenih komponenti, provedbu strateških projekata i pilota te
- koordiniranim radom tijela državne uprave u području interoperabilnosti
- – odozdo prema gore (bottom-up) – od strane sudionika HROI-a
- •
- •
- •
- •
- temeljeno na inicijativama skupina interesno i poslovno povezanih sudionika
- tamo gdje postoje uvjeti za uspješnu uspostavu interoperabilnosti te brzu realizaciju i
- isporuku usluga korisnicima
- Poticanje višekratnog korištenja dostupnih referentnih specifikacija
- i gotovih komponenti temeljenih na otvorenom kodu uz
- zadovoljavanje modela, važećih metoda i međunarodnih normi
- Transparentan i otvoren razvoj HROI-a koji omogućuje
- sudjelovanje svih sudionika
- 45
- HROI – primjena i provedba
- •
- Tijekom provedbe nastaje biblioteka strateških i
- provedbenih dokumenata interoperabilnosti koja sadrži
- – opće dokumente
- • strategije, strateški i ostali planovi
- • propisi koji uređuju organizacijske strukture, procese i podatke
- • dokumenti i direktive EU
- – strateške i planske dokumente
- • studije, analize, preporuke, programi i planovi provedbe
- – normizacijske dokumente
- • referentne arhitekture, referentni modeli i specifikacije,
- standardni projekti, tehničke dokumentacije, katalozi,
- šifrarnici, adresari, rječnici ...
- – pomoćne dokumente
- • metodološki i drugi priručnici, upute, smjernice, obrasci
- ugovora i drugih dokumenata, radni dokumenti, obrazovni
- materijal ...
- – arhivu
- 46
- HROI – primjena i provedba
- •
- Razvoj i primjena HROI-a podržana putem ICT kroz
- razvoj zajedničkih resursa i potpornih usluga
- – portal javnih usluga
- – sustav za autentikaciju i autorizaciju
- – upravna sabirnica usluga (Government Service Bus)
- – riznicu semantičke imovine
- – uslugu pregleda, sistematizacije pretraživanja i
- dohvata dokumentacije i resursa
- interoperabilnosti te registar usluga
- – izvorne registre temeljnih entiteta
- – mrežu HITROnet
- – projekt e-Ured
- – …
- 47
- HROI i ciljevi strateškog plana
- •
- Najvažniji ciljevi strateškog plana s aspekta HROI:
- – usklađivanje HROI s EIF 2.0
- – strategija „oblaka javnog sektora“
- – strategija za otvorene specifikacije i standarde
- – zajednička interoperabilna rješenja na razini EU
- – elektronički identiteti u elektroničkim javnim uslugama
- – elektronička razmjene podataka između registara u
- javnoj upravi
- – popis usluga javnog sektora, priprema u obliku
- integralnih e-usluga
- – pregled procesa državne uprave i gotovih e-government
- rješenja
- – zajednička metodologija za standardizaciju ICT-a
- – sustav podrške za ponovno korištenje javnih informacija
- – povezivanje sustava za podršku korisnicima javne
- uprave RH i EU
- – program razvoja elektroničkih usluga
- 48
- ———————
- OZNAČNI JEZICI
- Interoperabilnost
- informacijskih
- sustava
- Aleksander Radovan
- OZNAČNI JEZICI
- Osnove označnih jezika
- Skupine, vrste i razvoj označnih jezika
- Označni jezik XML
- Validacija XML dokumenata
- Rukovanje podacima
- Poznatiji primjeri
- 2
- Uvod u označne jezike
- • Označavanje (markup) – znakovni (ili binarni) niz
- koji se umeće u tekst i tako označava određeni
- dio teksta kako bismo ga razlikovali od ostatka
- – "marking up" – označavanje teksta dodatnim
- oznakama
- (u tekstu, na margini)
- • recenzenti, urednici, lektori ...
- – razlozi: pogreške, oznake otiska, upute ...
- • Jezik za označavanje ili označni jezik (markup
- language)
- – sustav oznaka ili anotacija nad tekstom kojime
- se određene cjeline sintaktički odjeljuju od
- drugih
- – skup konvencija – dozvoljene oznake, što znače
- 3
- Uvod u označne jezike
- • Označni jezici u kontekstu
- interoperabilnosti
- – omogućuju razmjenu podataka između
- dviju strana u točno definiranom obliku
- koji obje strane razumiju
- – omogućavaju komunikaciju – sintaksno
- i semantički
- • Komunikacija dviju strana:
- – na razini prijenosa podataka
- – na razini razumijevanja smisla
- prenesenih podataka (informacija)
- 4
- Najpoznatiji primjer
- • Jezik HTML (HyperText Markup Language)
- Document
- Root element
- <html>
- Element
- <head>
- Element
- <body>
- Element
- <title>
- Text
- "Naslov
- stranice"
- Element
- <a>
- Atribute
- "href"
- Text
- "Poveznica"
- Element
- <h1>
- Text
- "Naslov"
- 5
- OZNAČNI JEZICI
- Osnove označnih jezika
- Skupine, vrste i razvoj označnih jezika
- Označni jezik XML
- Validacija XML dokumenata
- Rukovanje podacima
- Poznatiji primjeri
- 6
- Skupine označnih jezika
- •
- •
- •
- Danas se aktivno koristi nekoliko stotina označnih jezika
- različite namjene
- Vrlo važan oblik interoperabilnosti na globalnoj razini
- Podjela prema namjeni – najvažnije skupine:
- – označni jezici opće namjene (general purpose markup
- languages)
- – označni jezici dokumenata (document markup
- languages)
- – označni jezici za sindikaciju sadržaja (content
- syndication markup languages)
- – označni jezici za opis korisničkog sučelja (user interface
- markup languages)
- – označni jezici za vektorsku grafiku (vector graphics
- markup languages)
- – označni jezici usluga Weba i drugih udaljenih usluga
- (Web service markup languages)
- – označni jezici ostalih specifičnih namjena
- 7
- Označni jezici opće namjene
- • Označni jezici opće namjene (general
- purpose markup languages)
- – služe za općeniti opis oznaka
- – koriste se kao osnova izgradnje
- drugih jezika
- – primjeri:
- • GML (Generalized Markup Language)
- • SGML (Standard Generalized Markup
- Language)
- • XML (Extensible Markup Language)
- • EBML (Extensible Binary Meta Language)
- • ASN.1 (Abstract Syntax Notation One)
- 8
- Označni jezici dokumenata
- •
- Označni jezici dokumenata (document markup
- languages)
- – najrasprostranjeniji i najšire prihvaćeni označni
- jezici u svakodnevnom korištenju
- – primjeri:
- • HTML i XHTML – prikaz internetskih stranica (kao
- dokumenata?)
- • JsonML (JavaScript Object Notation Markup Language)
- – pretvorba između XML-a i JSON-a
- • ODF ili OpenDocument (Open Document Format for
- Office Applications)
- • OOXML ili OpenXML (Office Open XML, Microsoft)
- • TeX
- • RTF (Rich Text Format, Microsoft)
- • DocBook
- • troff
- • Wikitext
- 9
- Označni jezici za opis korisničkog
- sučelja
- • Označni jezici za opis korisničkog sučelja
- (user interface markup languages)
- – opis dijelova korisničkog sučelja
- – opis razmještaja pojedinih
- komponenata
- – primjeri:
- • JavaFX (JavaFX rich client platform, Oracle)
- • XAML (Extensible Application Markup
- Language, Microsoft)
- • MXML (Adobe Macromedia eXtensible Markup
- Language)
- • XUL (XML User Interface Language, Mozilla)
- • LZX (OpenLaszlo)
- • HTML i XHTML – prikaz internetskih stranica
- (kao korisničkog sučelja?)
- 10
- Označni jezici za sindikaciju sadržaja i
- vektorsku grafiku
- • Označni jezici za
- sindikaciju sadržaja
- (content syndication
- markup languages)
- – objava dijelova
- internetskih stranica
- (sjedišta Weba) na drugim
- stranicama (sjedištima)
- – većinom zasnovani na
- XML-u
- – primjeri:
- • Atom
- • RSS
- • Označni jezici za
- vektorsku grafiku (vector
- graphics markup
- languages)
- – zapis vektorske grafike u
- 2D ili 3D
- – primjeri:
- • SVG (Scalable Vector
- Graphics)
- • X3D
- • VRML (Virtual Reality
- Modeling Language)
- • XAML i MXML?
- 11
- Označni jezici usluga Weba i
- drugih udaljenih usluga
- • Označni jezici usluga Weba i drugih
- udaljenih usluga (Web service markup
- languages)
- – opis različitih usluga dostupnih
- putem Interneta (Weba)
- – primjeri:
- • WSDL (Web Services Description
- Language)
- • SOAP (Simple Object Access Protocol)
- • BPEL ili WS-BPEL (Web Services Business
- Process Execution Language)
- • XML-RPC (XML Remote Procedure Call)
- • WSCL (Web Services Conversation
- Language)
- 12
- Označni jezici specifičnih
- namjena
- • Označni jezici ostalih specifičnih namjena
- – rješavaju probleme zapisa za specifične
- potrebe
- – primjeri:
- • MathML – označni jezik za zapis matematičkih
- jednadžbi
- • CellML – označni jezik za zapis matematičkih modela
- • ebXML – označni jezik za zapis informacija
- elektroničkog poslovanja
- • GML – označni jezik za zapis geografskih značajki
- • MusicML – označni jezik za zapis muzičke notacije
- • SCORM – označni jezik za zapis objekata e-učenja
- • SMIL – označni jezik za zapis multimedijskih
- prezentacija
- • VoiceXML – označni jezik za zapis glasovnih podataka
- 13
- Podjele označnih jezika
- • Neki jezici po svojoj definiciji mogu pripadati u
- više skupina
- – podjela nije jednoznačna
- • Osnovna podjela prema upotrebi:
- – konkretni označni jezici
- • koriste se za određene potrebe
- – npr. jezik HTML korišten za internetske stranice (Web)
- – metaoznačni jezici opće namjene
- • definiraju pravila, ali ne i značenje pojedinih oznaka
- – npr. jezici SGML i XML
- • Podjela prema izvedbi:
- – izvedeni iz jezika SGML
- – izvedeni iz jezika XML
- – nisu izvedeni ni iz jednoga drugog jezika opće
- namjene
- 14
- Vrste označnih jezika
- • Tri glavne vrste označnih jezika:
- – prezentacijski označni jezici
- (presentational markup languages)
- – proceduralni označni jezici
- (procedural markup languages)
- – opisni označni jezici (descriptive
- markup languages)
- 15
- Vrste označnih jezika
- • Prezentacijski označni jezici (presentational
- markup languages)
- – najčešće se koriste kod uređivača teksta,
- internetskih stranica (Web), prezentacija i
- sl.
- – u dokument s tekstom umeću se oznake,
- koje se koriste prilikom prikaza ili ispisa
- dokumenta
- • oznake su najčešće sakrivene od pogleda
- – potencijalno se može njihov pregled otkriti korisniku
- • u pozadini oblikuju konačni izgled dokumenta
- – uređivači teksta često koriste načelo
- WYSIWYG (What You See Is What You Get)
- • sakriva oznake i omogućava oblikovani prikaz pri
- uređivanju
- 16
- Vrste označnih jezika
- • Proceduralni označni jezici (procedural
- markup languages)
- – umetanjem oznaka upravljaju obradom
- tekstualnih podataka
- – uočavanjem umetnutih oznaka pokreću
- se određene akcije nad tekstom
- – naredbe obrade – procesne instrukcije
- (process instructions)
- – oznake su najčešće vidljive (pri izradi i pri
- korištenju)
- 17
- Vrste označnih jezika
- • Opisni označni jezici (descriptive markup
- languages)
- – služe za označavanje dokumenta u
- strukturnom smislu
- – nisu izravno povezani ni s
- prezentacijom teksta korisniku, niti s
- uputama za obradu/procesiranje
- – dijelovi teksta mogu se označiti u
- semantičkom smislu
- • pojašnjava se što oni predstavljaju, odnosno
- kako bi se umetnula dodatna informacija o
- tom dijelu teksta
- 18
- Označni jezik SGML
- • SGML (Standard Generalized Markup
- Language)
- – međunarodna norma za predstavljanje
- tekstualnih informacija u elektroničkom
- obliku
- • neovisno o uređaju ili sustavu
- – metajezik – način formalnog opisa
- označnog jezika
- • nije konkretna inačica označnog jezika za opis
- podataka iz neke domene
- – cilj – definicija oznaka i shema pisanja
- jedinstveno nazvanih označavanjem
- (markup)
- • čest i termin encoding – način eksplicitne
- interpretacije teksta
- 19
- Označni jezik SGML
- • SGML dokument može imati tri dijela:
- – deklaraciju SGML
- – prolog - sadrži:
- • deklaraciju DOCTYPE s različitim deklaracijama
- oznaka
- • definiciju tipa dokumenta DTD (Document
- Type Definition)
- – instancu - vršni element i njegov sadržaj
- • Primjene (ili aplikacije) SGML-a:
- – konkretni označni jezici razvijeni za
- određene potrebe
- – svaka potreba = novi jezik – zbrka!
- • I danas se razvijaju različiti označni jezici
- • A stari se moderniziraju …
- 20
- Ponavljanje i odnosi označnih
- jezika
- HTML
- SGML
- XHTML
- XML
- • Domaća zadaća:
- ponavljanje gradiva
- kolegija SUPIT
- („Standardi u
- primjeni internetske
- tehnologije”)
- – jezik HTML
- – jezik XHTML
- – jezik XML
- 21
- OZNAČNI JEZICI
- Osnove označnih jezika
- Skupine, vrste i razvoj označnih jezika
- Označni jezik XML
- Validacija XML dokumenata
- Rukovanje podacima
- Poznatiji primjeri
- 22
- Označni jezik XML
- • Označni jezik XML (Extensible Markup
- Language)
- – osnove:
- •
- •
- •
- •
- •
- odvaja podatke od prezentacije
- omogućuje dijeljenje podataka
- pojednostavljuje prijenos podataka
- pojednostavljuje izmjene platformi
- čini podatke dostupnima
- – sadržava metapodatke koji opisuju
- sadržaj
- • omogućava semantičku interoperabilnost
- – preporuka W3C
- • podskup jezika SGML, oblikovan s velikom
- jednostavnošću izvedbe i interoperabilnosti s
- jezicima SGML i HTML
- 23
- Ciljevi jezika XML
- •
- Ciljevi koje jezik XML treba zadovoljiti jasno su definirani
- već kod njegovog nastajanja:
- – Jezik XML treba se moći jasno i neposredno koristiti na
- internetu.
- – Jezik XML treba podržavati mnoštvo različitih aplikacija
- (primjena).
- – Jezik XML treba biti kompatibilan s jezikom SGML.
- – Pisanje programa koji procesiraju XML dokumente treba
- biti jednostavno.
- – Broj opcionalnih značajki u jeziku XML treba biti što
- manji, idealno bi bilo da je bez njih.
- – XML dokumenti trebaju biti ljudima čitljivi i jasni.
- – Oblikovanje XML-a treba biti brzo izvedeno.
- – Oblikovanje XML-a treba biti formalno i sažeto.
- – XML dokumenti trebaju se moći jednostavno izraditi.
- – Sažeto i jasno u XML oznakama je od minimalnog
- značenja.
- 24
- Inačice jezika XML
- • Aktualne inačice jezika XML
- – XML 1.0 (Fifth Edition) 26.11.2008.
- – XML 1.1 (Second Edition)
- 16.8.2006.
- • Napomena :
- – Iako je trenutačna aktualna inačica
- XML-a 1.1, još uvijek se preporučuje
- korištenje inačice 1.0, koju sigurno
- razumiju i „starije” aplikacije.
- 25
- XML 1.1
- • Novosti inačice XML 1.1:
- – korištenje znakova Unicode
- – manje strogu definiciju naziva
- • „sve što nije zabranjeno je dopušteno“
- – dodavanje znakova koji omogućavaju
- interoperabilnost različitih
- mainframe i drugih sustava
- – korištenje kontrolnih znakova
- – skup ograničenja nazvan „potpuna
- normalizacija“ (full normalization)
- – oznaku nove inačice u zaglavlju
- • procesori razlikuju koja pravila koriste pri
- provjeri
- 26
- Osnovni pojmovi – jezik XML
- • Osnovni pojmovi i značajke:
- – znak (character) – osnovni građevni
- element, smije se koristiti većina znakova iz
- norme Unicode
- – oznaka (tag) – <oznaka>, </oznaka>,
- <oznaka />
- – referenca entiteta (entity reference) –
- upućuje na imenovani entitet, predefiniran ili
- eksplicitno deklariran (npr. <)
- – sadržaj (content) – sadržaj je zapravo sve što
- nije oznaka ili ne započinje znakom „&“ a
- završava znakom „>“
- – element
- – atribut
- 27
- Struktura jezika XML
- 28
- Prolog
- • Prolog – sadrži metainformacije o dokumentu:
- – Deklaracija
- • neobavezna
- • definira vrstu kodiranja znakova i druge značajke
- dokumenta
- <?xml version="1.0" encoding='UTF-8' standalone='yes'?>
- • preporučuje se
- • ako postoji, onda na početku (bez praznih redaka i
- znakova)!
- • atributi
- – version – definira inačicu XML-a, moguće vrijednosti su 1.0 ili
- 1.1,
- – encoding – opcionalni, definira vrstu kodiranja znakova
- » vrijednost se određuju prema nazivima kodiranja znakova
- IANA-CHARSET
- » najčešće korištene vrijednosti su UTF-8, UTF-16, windows1250, windows-1252, ISO-8859-1 i ISO-8859-2,
- –
- standalone – opcionalni, označava ovisnost dokumenta o
- vanjskim entitetima
- » moguće vrijednosti su „yes” i „no”, a ako se ne navede,
- pretpostavljena vrijednost je „no”
- 29
- Prolog
- – Naredbe obrade (procesne instrukcije)
- • prosljeđuju informaciju aplikacijama koje
- obrađuju XML dokument
- – imaju smisla u prologu (prije obrade)
- • primjer: referenca na XSL listu stilova
- <?xml-stylesheet type="text/xsl"
- href="stylesheet.xsl"?>
- – Komentari
- • bilo gdje u dokumentu, zanemaruju se
- <!-- Ovo je komentar -->
- • ne mogu sadržavati tekst „-->“, ne smiju biti
- ubačeni usred naziva oznake i ne smiju sadržavati
- znakove „<“ ili „>“
- – DTD ili XML shema
- 30
- Elementi
- •
- •
- Element
- – označavanje sadržaja i opis sadržaja koji označavaju
- – informacije o poretku sadržaja
- – odnosi između podataka
- Oblici elementa:
- – prazni elementi (empty element) ili elementi bez sadržaja
- • ne sadrže ni tekst ni druge elemente, služe samo kao strukturne oznake
- <oznaka></oznaka> ili <oznaka/>
- – drugi način štedi memoriju i povećava čitljivost
- – elementi jednostavnog sadržaja ili elementi koji sadržavaju
- samo tekst
- • tekst bez specijalnih znakova
- <oznaka>Neki sadržaj</oznaka>
- – elementi koji sadržavaju druge elemente
- – sadrže samo druge elemente, ali ne i sadržaj
- • iako drugi elementi sadržani u njima mogu imati sadržaj
- – elementi koji sadržavaju miješani sadržaj i elemente
- • sadrže kombinaciju sadržaja i drugih elemenata
- 31
- Elementi – nazivanje
- (imenovanje)
- •
- •
- •
- Nazivanje (imenovanje) elemenata podliježe pravilima
- – nazivi elemenata moraju započeti slovom ili znakom
- „_“
- – ne smiju započeti slovima „xml“ niti sadržavati
- praznine
- Nazivi elemenata nedvosmisleno predstavljaju značenje
- Preporuke nazivanja:
- – u međunarodnoj komunikaciji preporučuje se
- korištenje engleskih naziva
- – nije preporučljivo znatno kratiti, ali ni produljivati
- nazive
- – za odvajanje riječi u nazivu preporučuje se koristiti
- velika početna slova riječi ili znak „_“
- – ne preporučuje se korištenje znakova izvan engleske
- abecede niti znakova „-” i „.“
- 32
- Atributi
- • Atribut
- – pružaju dodatnu informaciju o elementu
- • atributi su vezani uz pojedini element
- – navode se u početnoj oznaci elementa
- – definiraju se kao par: naziv atributa = sadržaj
- <datum format=“ISO8601“>2013-09-30</datum>
- – sadržaj može biti prazan
- – ograničenja:
- • ne postoji ograničenje o brojnosti atributa unutar
- elementa
- • u istom elementu ne mogu se pojaviti dva atributa
- istog naziva
- • uvijek sadržavaju samo tekst i nemaju podstrukturu
- • ne mogu se proširivati i ne mogu sadržavati višestruke
- vrijednosti
- 33
- Atributi – nazivanje
- (imenovanje)
- • Nazivanje (imenovanje) atributa podliježe
- pravilima
- – slična pravila kao element
- – mogu se koristiti jednostruki i dvostruki
- navodnici, ali ne i „pametni navodnici”
- • Napomena : česta pogreška
- – kod umetanja koda iz raznih izvora, poput
- dokumenata izrađenih uređivačem teksta ili
- „izreži-umetni” (copy-paste) metodom,
- moguće je da ćete umjesto dvostrukih
- navodnika (") umetnuti tzv. „pametne
- navodnike“ (smart quotes), odnosno znakove
- „ i “, koji u XML dokumentu predstavljaju
- pogrešku
- 34
- Tekst i znakovi
- • Tekst
- – znakovni niz, odnosno sadržaj između dviju oznaka
- – XML parser procesirat će ga kao i sav drugi XML kod
- • paziti na ograničenja uporabe posebnih znakova, poput
- „<“
- – tekst označen oznakom CDATA ne parsira se
- <tekst><!CDATA[ Ako je 2009 < 2010 onda je to dobro.
- ]]</tekst>
- • korisno za programski kod ili skriptu
- • Znakovni entiteti
- – simboli od jednog znaka
- – zapis: & + naziv entiteta + ;
- • znak iz stranice kodova kao # + heksadekadski kod
- <tekst>Ovo će prikazati znak manje < a ovo copyright ©
- </tekst>
- 35
- Pravila pisanja u jeziku XML
- • Svi XML dokumenti su dobro oblikovani
- (well-formed)
- – inače nisu XML dokumenti!
- • Pravila dobre oblikovanosti
- – samo jedan korijenski element
- – elementi moraju biti pravilno zatvoreni
- – elementi moraju biti pravilno gniježđeni
- – smiju se koristiti samo dopušteni znakovi
- – nazivi elemenata osjetljivi su na mala i
- velika slova
- – vrijednosti atributa moraju se postaviti u
- navodnike
- –…
- 36
- Domene i prostori naziva
- • Prostori naziva (prostori imena, imenski prostori)
- – glavni razlozi uvođenja prefiksa prostora imena u
- nazive elemenata:
- • mogućnost korištenja istih naziva u jednom XML
- dokumentu ili zajedničkoj XML strukturi
- • izbjegavanje konflikata naziva
- • Korištenje domena
- – potreba za jedinstveno imenovanim elementima i
- atributima iz nekog određenog skupa vrijednosti
- definiranim u području primjene
- • ponovno korištenje postojećih shema
- • proširenje postojećih shema
- • ponovno korištenje programskog koda za obradu
- postojećih
- • kombiniranje proizvoljnih elemenata i elemenata
- • podrška verzijama
- • pretraživanja temeljena na odabiru shema
- • validacija (provjera) temeljena na višestrukim shemama
- 37
- OZNAČNI JEZICI
- Osnove označnih jezika
- Skupine, vrste i razvoj označnih jezika
- Označni jezik XML
- Validacija XML dokumenata
- Rukovanje podacima
- Poznatiji primjeri
- 38
- Validacija XML dokumenata
- • Provjera je li dokument „dobro oblikovan“
- – je li to onda uopće XML dokument?
- – lagano provjeriti
- • Provjera prema nekom opisu koji specificira
- uvjete valjanosti (validity) dokumenta
- – postoji niz različitih načina i metoda
- provjere valjanosti
- – zasnivaju se na:
- •
- •
- •
- •
- •
- gramatikama
- pravilima
- izrazima
- tvrdnjama
- kombinaciji navedenih
- 39
- DTD
- • DTD (Document Type Definition)
- – skup deklaracija oznaka koje definiraju
- tipove dokumenata
- • strukturu dokumenta
- • tipovi podataka
- • obveznost elemenata
- – zastarjelo?
- • umjesto korištenja DTD-a preporučuje se
- korištenje jezika svjesnih prostora naziva, npr.
- XML Schema (XSD) i RELAX NG
- – razvoj nije stao
- • izrađuje se nova verzija kao 9. dio norme ISO/IEC
- 19757 DSDL
- – moći će koristiti prostore naziva
- 40
- XSD
- • XSD (XML Schema Definition)
- – (jedna od) XML shema
- – preporuka W3C-a
- • korištenje naziva XSD (XML Schema
- Definition) ili alternativno WXS umjesto
- naziva XML Schema
- – „XML shema” može označavati opći naziv
- skupa različitih XML shema
- ponoviti gradivo SUPIT-a
- • Gramatike, pravila, izrazi, tvrdnje … DTD,
- XSD …
- • Kako to sve zajedno složiti i koristiti?
- 41
- Jezik definicije shema
- dokumenata DSDL
- • Jezik definicije shema dokumenata DSDL
- (Document Schema Definition Language)
- – uloga – prikupljanje različitih zadataka i
- izraza vezanih uz validacije u jedinstvenu
- cjelinu skupa specifikacija i opisa
- nadogradivog radnog okvira
- – omogućava različitim validacijskim
- tehnologijama da rade zajedno (paralelno ili
- serijski)
- – radni okvir – omogućava kombinaciju
- višestrukih validacijskih zadataka različitih
- tipova
- • različite validacije se mogu istovremeno primijeniti na
- isti XML dokument
- • ukupna validacija je potpunija od pojedinačnih
- • npr. validacija prvo s XSD i nakon toga dodatno
- Schematron
- 42
- Jezik regularnih izraza RELAX NG
- • Jezik regularnih izraza RELAX NG (REgular LAnguage for XML
- Next Generation)
- – „jezik regularnih izraza za XML nove generacije”
- – objedinjavanjem jezika RELAX (Regular Language
- description for XML) i TREX (Tree Regular Expressions for
- XML)
- – 2001. izradio OASIS, kasnije norma ISO/IEC 19757-2:2003
- – značajke:
- •
- •
- •
- •
- •
- •
- jednostavnost
- dva oblika sintakse: osnovni XML i kompaktni
- podrška za prostore naziva
- uniformnost postupanja s atributima i elementima
- podrška za nepobrojani i miješani sadržaj
- mogućnost kombiniranja s drugim jezicima
- – razvoj RELAX NG vremenski paralelno s razvojem XSD-a
- • XSD nešto rasprostranjeniji te je podržan od većine parsera i
- uređivača XML dokumenata
- • RELAX NG rasprostranjen kod prezentacijskih označnih jezika
- – npr. ODF, DocBook
- 43
- Shema RELAX NG
- •
- •
- Regularni izraz – opisuje uzorak za pretraživanje
- nizova znakova
- – zapravo niz znakova koji opisuje druge nizove
- znakova u skladu sa sintaksnim pravilima
- Shema RELAX NG
- – koristi uzorke strukture XML dokumenata
- – smatra se jednostavnijom u odnosu na druge
- jezike XML shema
- – zapis sheme RELAX NG u dvama oblicima:
- • u osnovnom obliku u zapisu jezika XML
- – uobičajene ekstenzije datoteka „.rng“
- • u kompaktnom obliku nazvan RELAX NG Compact
- Syntax
- – ovo nije XML, uobičajene ekstenzije datoteka „.rnc“
- – Korištenje RELAX NG preporučuje se u jednakoj mjeri
- kao i XSD
- 44
- RELAX NG – jednostavan primjer
- <book>
- <page>
- This is page one.
- </page>
- <page>
- This is page two.
- </page>
- </book>
- <element name="book"
- xmlns="http://relaxng.org/
- ns/structure/1.0">
- <oneOrMore>
- <element name="page">
- <text/>
- </element>
- </oneOrMore>
- </element>
- 45
- RELAX NG – primjer
- XML:
- <imenik>
- <osoba oib=“12345678901“>
- <ime>Ana</ime>
- <prezime>Anić</prezime>
- <email>ana.anic@racunarstvo.hr
- </email>
- </osoba>
- <osoba oib=“23456789012“>
- <cijeloIme>Ivo I. Ivić mlađi
- </cijeloIme>
- </osoba>
- </imenik>
- •
- Izrazi:
- –
- –
- –
- –
- barem jedna osoba u imeniku
- osoba mora imati OIB
- razdvojeno ili spojeno ime i prezime
- neobavezna adresa elektroničke
- pošte
- DTD:
- <!DOCTYPE imenik [
- <!ELEMENT imenik (osoba+)>
- <!ELEMENT osoba (((ime, prezime) |
- cijeloIme), email?)>
- <!ATTLIST osoba oib CDATA #REQUIRED>
- <!ELEMENT ime (#PCDATA)>
- <!ELEMENT prezime (#PCDATA)>
- <!ELEMENT cijeloIme (#PCDATA)>
- <!ELEMENT email (#PCDATA)>
- ]>
- 46
- RELAX NG – primjer
- <?xml version="1.0" encoding="UTF-8"?>
- <element name="imenik" xmlns="http://relaxng.org/ns/structure/1.0">
- <oneOrMore>
- <element name="osoba">
- <attribute name="oib">
- <text/>
- </attribute>
- <choice>
- <group>
- <element name="ime">
- <text/>
- </element>
- <element name="prezime">
- <text/>
- </element>
- </group>
- <element name="cijeloIme">
- <text/>
- </element>
- </choice>
- <optional>
- <element name="email">
- <text/>
- </element>
- </optional>
- </element>
- </oneOrMore>
- </element>
- RELAX NG Compact Syntax
- element imenik {
- element osoba {
- attribute oib { text },
- ( ( element ime { text },
- element prezime { text } ) |
- element cijeloIme { text } ),
- element email { text }?
- }+
- }
- 47
- Jezik tvrdnji Schematron
- •
- Jezik tvrdnji Schematron
- – jezik za umetanje tvrdnji o prisustvu ili odsustvu
- uzorka u XML dokumentima
- – temelji se na pronalaženju stablastih uzoraka
- • omogućuje prikaz različitih struktura koje je problematično
- prikazati u jezicima shema temeljenim na gramatici (npr. DTD,
- XSD i RELAX NG)
- – primjer: ako u elementu <spol> stoji vrijednost „muški“, onda u istoj
- strukturi čvorova pod elementom <dijagnoza> ne bi smjelo pisati
- „trudan“
- • obrnuta logika u odnosu na gramatike
- – kod jezika temeljnih na gramatici sve što nije eksplicitno dopušteno
- nije valjano
- – kod jezika temeljenih na pravilima sve što nije eksplicitno zabranjeno
- je valjano
- – može se kombinirati s validacijom zasnovanom na
- gramatici
- – izveden povrh XSLT, koristi XPath
- – međunarodna norma ISO/IEC 19757-3:2006 Information
- technology -- Document Schema Definition Language
- (DSDL) - Part 3: Rule-based validation - Schematron
- 48
- Schematron – elementi
- • Osnovni elementi:
- – <schema> – glavni element dokumenta koji
- sadržava sve druge elemente
- – <title> – opcionalni element naslov sheme
- – <ns> – element prostora imena i prefiksa
- korištenih u shemi, ne mora postojati, a može ih
- biti više
- – <pattern> – element uzorka koji sadržava
- pravila
- – <rule> – element pravila s atributom „context”
- koji sadržava tvrdnje
- – <assert> – element tvrdnje s atributom „test”
- koji sadržava izraz XPath s opisom tvrdnje
- – <report> – element izvještaja s atributom „test”
- koji sadržava XPath izraz i opis izvještaja
- 49
- Schematron – način rada
- •
- Način rada
- – bitan je samo poredak elemenata pravila
- • poredak ostalih elemenata ovisi o konkretnoj izvedbi
- – uvjeti koji se ispituju odnose se na postojanje i
- vrijednosti elemenata i atributa
- – pozitivne tvrdnje izražavaju ispitivanje
- korištenjem atributa test u kojem se nalaze XPath
- izrazi istinosnih rezultata
- • ako kod ispitivanja uvjet nije ispunjen, onda se šalje
- poruka
- – kod izvještaja je riječ o negativnim tvrdnjama
- • poruka će biti poslana ako je uvjet ispitivanja ispunjen
- – pravila čine skupine tvrdnji koje odabiru
- kontekstne čvorove koji se evaluiraju
- – uzorci čine skupine pravila i prvo pravilo je ono
- koje se koristi
- 50
- Schematron – koraci rada
- Za svaki kontekstni čvor u dokumentu koji se
- validira
- Za svaku fazu koja se evaluira (ako faze postoje,
- inače uzorak)
- Za svaki uzorak (u fazi)
- Pronađi prvo pravilo koje odgovara
- kontekstnom čvoru
- Za svaku tvrdnju i izvještaj u pravilu
- Izvedi testiranje
- Ako test tvrdnje nije uspio ili je uspio test
- izvještaja
- Pošalji poruku
- (Ako postoji dijagnostika i uključena je
- Pošalji dijagnostičku poruku)
- 51
- Schematron – primjer
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- •
- Korijenski element mora biti imenik.
- Dozvoljena djeca elementa imenik mora biti element osoba.
- Roditelj elementa osoba mora biti element imenik.
- Djeca elementa osoba moraju biti element ime, prezime ili email.
- Element ime može biti samo jedan.
- Element prezime može biti samo jedan.
- Element email može biti samo jedan.
- Element osoba mora imati atribut oib.
- Element osoba smije imati samo atribut oib.
- Roditelj elementa ime mora biti osoba.
- Element ime ne može imati djecu.
- Roditelj elementa prezime mora biti osoba.
- Element prezime ne može imati djecu.
- Roditelj elementa email mora biti osoba.
- Element email ne može imati djecu.
- Element * nije valjan u ovom dokumentu.
- 52
- Schematron – primjer
- <?xml version="1.0" encoding="UTF-8"?>
- <schema xmlns="http://purl.oclc.org/dsdl/schematron">
- <title>Imenik</title>
- <ns prefix="im" uri="http://www.racunarstvo.hr/imenik">
- <pattern name="all">
- <rule context="/">
- <assert test="im:imenik">
- Korijenski element mora biti imenik.
- </assert>
- </rule>
- <rule context="im:imenik">
- <assert test="count(*) = count(im:osoba)">
- Dozvoljena djeca elementa imenik mora biti element osoba.
- </assert>
- </rule>
- <rule context="im:osoba">
- <assert test="parent::im:imenik">
- Roditelj elementa osoba mora biti element imenik.
- </assert>
- <assert test="count(*) = count(im:ime|im:prezime|im:email)">
- Djeca elementa osoba moraju biti element ime, prezime ili email.
- </assert>
- <assert test="count(im:ime) = 1">
- Element ime može biti samo jedan.
- </assert>
- <assert test="count(im:prezime) = 1">
- Element prezime može biti samo jedan.
- </assert>
- <assert test="count(im:email) = 1">
- Element email može biti samo jedan.
- </assert>
- <assert test="@oib">
- Element osoba mora imati atribut oib.
- </assert>
- <assert test="count(@*) = count(@oib)">
- Element osoba smije imati samo atribut oib.
- </assert>
- </rule>
- <rule context="im:ime">
- <assert test="parent::im:osoba">
- Roditelj elementa ime mora biti osoba.
- </assert>
- <assert test="count(*) = 0">
- Element ime ne može imati djecu.
- </assert>
- </rule>
- <rule context="im:prezime">
- <assert test="parent::im:osoba">
- Roditelj elementa prezime mora biti osoba.
- </assert>
- <assert test="count(*) = 0">
- Element prezime ne može imati djecu.
- </assert>
- </rule>
- <rule context="im:ime">
- <assert test="parent::im:osoba">
- Roditelj elementa email mora biti osoba.
- </assert>
- <assert test="count(*) = 0">
- Element email ne može imati djecu.
- </assert>
- </rule>
- <rule context="*">
- <assert test="true()">
- Element * nije valjan u ovom dokumentu.
- </assert>
- </rule>
- </pattern>
- </schema>
- 53
- Usporedba jezika
- • Relativni logički odnosi
- skupova
- – svjetlije – izvedivo, ali
- nezgodne u praksi
- – tamnije – izvedivo
- samo ako se sheme
- prilagode
- • XSD moćniji od DTD
- • RELAX NG „širi” od XSD
- • Schematron najmoćniji
- ima najveće mogućnosti
- 54
- OZNAČNI JEZICI
- Osnove označnih jezika
- Skupine, vrste i razvoj označnih jezika
- Označni jezik XML
- Validacija XML dokumenata
- Rukovanje podacima
- Poznatiji primjeri
- 55
- Rukovanje podacima u obliku XML
- • Podaci u obliku XML
- – namjena ista kao i podaci u bazi, datoteci …
- – zapis i pohrana strukturiranih podataka
- • Osnovne operacije:
- – pohrana – zapisivanje
- – razmjena – slanje, primanje
- – razumijevanje – sintaksa i semantika
- – korištenje – procesi i prikaz korisniku
- • Primjena – za neku svrhu (daljnja računalna
- obrada, prikaz krajnjem korisniku i sl.)
- 56
- Kako koristiti podatke u obliku
- XML?
- • Podatke prvo trebamo moći "razumjeti"
- • Prevođenje u oblik koji znamo i možemo koristiti –
- analiza
- • parsiranje
- • sintaksna analiza
- • leksička analiza
- – slično kao kod prevođenja programa iz izvornog
- u odredišni (izvršni) oblik
- • Dva osnovna načina rada korištenja XML sadržaja :
- – parsiranje temeljeno na stablu (tree-based
- parsing)
- • cijeli dokument se prebacuje u objektnu strukturu
- – parsiranje temeljeno na događajima (eventbased parsing)
- • jednim prolazom sekvencijalno kroz XML dokument
- generiraju se događaji
- 57
- DOM i interoperabilnost
- •
- •
- •
- Objektni model dokumenata (Document Object Model)
- – konvencija, neovisna o platformi i jeziku izvedbe, za interakciju
- s objektima označnih jezika (najčešće HTLM, XHTML, XML ...)
- Povijesni razvoj inačica
- – počeo s HTML 4 (NN2, IE3) – tzv. "Legacy DOM", DOM Level 0
- – DHTML, CSS, layerness (NN4, IE4) – "Intermediate DOM"
- – 1998. – DOM Level 1 – rješavaju se određene nekompatibilnosti
- – 2000. – DOM Level 2 – model događaja, prostori naziva, CSS
- – 2004. – DOM Level 3 – XPath, serijalizacija XML dokumenata,
- upravljanje događajima (s tipkovnice),
- – 2012. – DOM Level 4 (prijedlog W3C) – usklađivanje s
- JavaScriptom i postojećim implementacijama, uz maksimalno
- pojednostavljivanje
- – 2014. – DOM Living Standard – dom.spec.whatwg.org
- DOM Level 1 uvijek, preporuka DOM Level 2 (provjera), ako točno
- poznajemo funkcionalnosti i preglednike može i DOM Level 3
- 58
- Preglednik i načini prikaza
- •
- •
- •
- JavaScript koristi DOM kao osnovni način komuniciranja i
- upravljanja objektima u HTML dokumentu
- Način prikaza u pregledniku
- – izvedba parsiranja i prikaza te razmještaja grafičkih elemenata
- – različite konkretne implementacije (layout engines) – preko 20!
- Najpoznatiji layout engines:
- – WebKit
- • Safari, iOS, Android, Chrome (<=27), Kindle, BlackBerry, Tizen
- – Blink – Googleov fork WebKita
- • Chrome (28+), Opera (15+), Chromium, Qt WebEngine
- – Gecko – Mozzila
- • Firefox, SeaMonkey, Camino, Flock, K-Meleon, Songbird, Galeon, IE-Wine
- …
- – Trident (MSHTML) – Microsoft
- • Internet Explorer, Windows Phone 8, Maxthon i sl.
- – i niz drugih – Amaya, KHTML, Presto (Opera do 15), Tasman …
- 59
- Rasprostranjenost preglednika
- Chrome
- IE
- Firefox
- Safari
- Edge
- Other
- analytics.usa.gov
- 43,8%
- 16,6%
- 7.8%
- 24,7%
- 3.2%
- 3.0%
- StatCounter
- 59.31%
- 8.94%
- 13.37%
- 9.98%
- 2,81%
- 5.59%
- Kolovoz – Listopad 2016.
- 60
- Programsko sučelje SAX
- •
- •
- Programsko sučelje SAX (Simple API for XML)
- – sekvencijalni parser za XML dokumente
- – radi na načelu jednosmjernog prolaza kroz
- dokument
- – rezultat obrade vraća u jednom toku (stream)
- – de facto norma – ne postoji striktna specifikacija
- Događaji – pronalazak:
- – tekstualnih čvorova
- – čvorova elemenata
- • atributi se obrađuju kao dijelovi čvora elementa
- •
- – naredbi obrade
- – komentara
- Inačice – još uvijek aktualan SAX2 (prostori imena,
- filtri, leksički događaji, sheme ...), nove inačice u
- razvoju
- 61
- SAX primjer
- <?xml version="1.0" encoding="UTF-8"?>
- <osoba oib="12345678901">
- <ime>
- Ana
- </ime>
- <?naredba_obrade
- obradi_djevojacko_prezime="da"?>
- <prezime postojiDjevojackoPrezime="da">
- Anić
- <djevojackoPrezime>
- Ivić
- </djevojackoPrezime>
- </prezime>
- </osoba>
- 62
- SAX primjer
- •
- SAX parser generira sljedeći niz događaja:
- – početak čvora elementa osoba
- • s atributom „oib” vrijednosti „12345678901“
- –
- –
- –
- –
- početak čvora elementa ime
- tekstualni čvor sadržaja „Ana“
- završetak čvora elementa ime
- naredba obrade „naredba_obrade“
- • s atributom „obradi_djevojacko_prezime“ vrijednosti „da“
- – početak čvora elementa prezime
- • s atributom „postojiDjevojackoPrezime“ vrijednosti „da“
- –
- –
- –
- –
- –
- –
- tekstualni čvor sadržaja „Anić“
- početak čvora elementa djevojackoPrezime
- tekstualni čvor sadržaja „Ivić“
- završetak čvora elementa djevojackoPrezime
- završetak čvora elementa prezime
- završetak čvora elementa osoba
- 63
- SAX ili DOM – prednosti i
- mane
- •
- SAX
- – koristi manje memorijskih resursa
- • usporedivo s najvećom dubinom stabla i najvećim podatkom
- • korisno kod vrlo velikih dokumenata
- •
- – u načelu brže parsiranje nego kod DOM-a
- – lakše se prilagođava promjeni strukture
- – za pronalaženje pojedinih elemenata u jednom
- prolazu
- DOM
- – cijeli dokument na raspolaganju u memoriji
- • ako je prevelik onda u sporoj memoriji (disk)
- – bolji kod cjelovitih validacija i kod višestrukih
- istovremenih pristupa različitim dijelovima
- – kada XPath ili XSLT trebaju imati pristup bilo kojem
- čvoru dokumenta tijekom obrade
- – kod višestrukih ponovnih korištenja elemenata,
- paralelnih pronalaženja i transformacija koje
- zahtijevaju cijeli dokument u objektnoj strukturi
- 64
- StAX
- • Push parser – XML parser šalje (push) XML podatke
- klijentu kada naiđe na element
- – bez obzira je li klijent spreman prihvatiti podatke
- • Pull parser – klijent poziva (pull) metode biblioteke za
- parsiranje kada treba interakciju s XML podacima i
- dohvat podataka
- – poziv onda kada klijent treba/želi podatke
- – prednosti:
- • klijent (a ne parser) kontrolira aplikacijsku dretvu
- • manja i jednostavnija biblioteka parsiranja (u odnosu na
- SAX)
- • čitanje višestrukih dokumenata u jednoj dretvi
- • mogućnost filtriranja sadržaja (ignoriranja nepotrebnih
- elemenata)
- • podrška i „XML pogled” na podatke koji nisu XML
- • StAX (Streaming API for XML) – koristi pull parsiranje
- – korisno kod paralelne obrade, za SOAP i WSDL, kod
- virtualnih izvora podataka i specifičnih XML rječnika
- 65
- SAX, DOM i StAX – značajke
- StAX
- SAX
- DOM
- pull, streaming
- push,
- streaming
- in memory
- tree
- visoka
- srednja
- visoka
- ne
- ne
- da
- Efikasnost
- (CPU, memorija)
- dobra
- dobra
- ovisi
- Samo unaprijed
- da
- da
- ne
- Zapis u XML oblik
- da
- ne
- da
- Kreiranje, čitanje,
- osvježavanje, brisanje
- ne
- ne
- da
- Tip API-ja
- Jednostavnost korištenja
- XPath mogućnosti
- 66
- Implementacije za DOM, SAX i
- StAX
- • Integrirani skup klasa u .NET Framework-u
- – XmlReader (pull) i XmlDocument (DOM)
- – nekad skup usluga MSXML (Microsoft XML
- Core Services)
- • Programska sučelja osnovnih biblioteka
- platforme Java
- – JAXP (Java API for XML Processing) –
- objedinjuje parsiranja temeljena na sučeljima
- DOM, SAX i StAX
- – JDOM i dom4j – alternativni objektni modeli
- otvorenog koda za XML pisani u jeziku Java
- • Biblioteka Xerces i Xerces2 (C++, Java i Perl)
- • Biblioteka libxml2 (C)
- • Mnogi drugi ...
- 67
- Transformacije i prezentacije
- korištenjem jezika XSL
- Ponavljanje SUPIT
- • XSL (eXtensible Stylesheet Language)
- – porodica preporuka za definiranje
- transformacije i prezentacije XML
- dokumenata, a sastoji se od triju dijelova:
- • jezika XPath (XML Path Language)
- • jezika XSLT (eXtensible Stylesheet
- Language Transformations)
- • jezika XSL-FO (eXtensible Stylesheet
- Language – Formatting Objects)
- 68
- XPath
- •
- XPath je jezik izraza (expression language) - koristi se za
- pristup i lociranje, odnosno adresiranje dijelova XML
- dokumenata
- – XPath 1.0 preporuka W3C-a još 1999.
- • široko rasprostranjen, koristi se u programskim jezicima (Java, C#,
- JS …)
- • ugrađen u jezike XSLT i XForms
- – XPath 2.0 preporuka W3C-a 2007.
- • bogatiji sustav tipova - čvorovi kao članovi uređenog niza
- • proširen skup funkcija i operatora
- • atomarni tipovi i korisnički definirani tipovi (datum, vrijeme, URI
- …)
- • sedam vrsta čvorova
- • nudi niz izraza koji se koriste u jeziku XQuery
- • XPath 2.0 drugo izdanje preporuka W3C-a 2010.
- – poneke primjene još uvijek koriste XPath 1.0
- – XPath 3.0 – preporuka za kandidata, siječanj 2013.
- • dinamički pozivi funkcija, izrazi inline funkcija, union tipovi, URL-i
- u nazivima, konkatenacija znakovnih nizova, operator mapiranja
- …
- 69
- XSLT
- •
- •
- Deklarativni jezik za transformacije XML dokumenata XSLT
- (eXtensible Stylesheet Language Transformations)
- – prikaz i dodavanje elemenata i atributa
- – brisanje i sakrivanje dijelova dokumenta
- – uređivanje, oblikovanje i sortiranje elemenata
- – uvjetno izvršavanje pravila i testiranje
- Inačice
- – XSLT 1.0 - preporuke W3C-a 1999., kad i XPath 1.0
- • široko prihvaćena
- • od XSLT 1.1 se odustalo
- – XSLT 2.0 – preporuka W3C-a 2007.
- • konverzija fragmenata rezultantnog stabla u skupove čvorova, višestruki
- izlazni dokumenti
- • ugrađena podršku za grupiranja i korisnički definirane funkcije
- •
- – XSLT 3.0 – prijedlog od srpnja 2012.
- Korištenje
- – XSLT 2.0 do danas baš nije previše prihvaćen ni kod preglednika
- ni kod poslužitelja
- – XSLT 2.0 koristi XPath 2.0, a XSLT 1.0 koristi XPath 1.0
- • nije najbolja kombinacija XSLT 1.0 i XPath 2.0
- 70
- Transformacije pomoću XSLT
- •
- •
- Rezultat postupka transformacije – novi XML dokument
- – no, moguće je proizvesti i bilo koji drugi dokument –
- nije XML dokument, već običan tekst (plain text)
- Transformacije u oblik za prezentaciju putem stranica
- Weba
- – očekivani izlazni oblik je HTML ili XHTML dokument
- • ako transformacija prati pravila XML-a, onda je XHTML
- • ako ne prati, onda HTML (obični tekst)
- •
- Izvedbe XSLT procesora
- – samostalne aplikacije ili komponente ugrađene u
- preglednik, aplikacijski poslužitelj, programski radni
- okvir (framework) ili sam operacijski sustav
- – mogu se izvršavati na klijentu ili poslužitelju
- – poznatiji XSLT procesori: Saxon, Xalan, xsltproc, XT,
- MSXML, Sablotron, 4XSLT ...
- 71
- XSL-FO
- •
- Objekt za oblikovanje XSL-FO (eXtensible Stylesheet
- Language – Formatting Objects)
- – oblikovanja XML dokumenata za prikaz
- • nije nužno vezano uz interoperabilnost
- •
- Mogućnosti prikaza XML dokumenata
- – primjena predloška stila CSS (Cascading Style Sheets) za
- prikaz XML podataka u pregledniku s određenim dizajnom
- – XSLT za transformaciju XML datoteke u HTML ili XHTML
- datoteku
- • naknadno se može primijeniti CSS te grafika (slike, fontovi i sl.)
- – XSL-FO za oblikovanje prikaza i posljedičnu konverziju u
- ispisni oblik
- • najčešće PDF i PS (PostScript), ali moguće i u druge oblike
- – obrada XML dokumenta u aplikaciji i prebacivanje
- oblikovanih podataka u neki oblik grafičkog korisničkog
- sučelja
- • npr. „tanki” Web klijent, grafičko sučelje „debelog” klijenta,
- izvještaju iz izvještajnog podsustava ...
- 72
- XSLT i XSL-FO u praksi
- 73
- Jezik upita XQuery
- •
- Označni jezik upita i funkcionalnog programiranja XQuery (XML
- Query)
- – izvodi upite nad kolekcijama XML podataka
- •
- onima koje „vidi” kao XML – pravi XML, polustrukturirani podaci, tekst,
- baze podataka, repozitoriji objekata, JSON, binarni podaci …
- – može pronalaziti sadržaj
- •
- •
- koristi sintaksu XPath izraza
- izvodi se nad stablastim podatkovnim modelom XDM (XPath Data
- Model)
- – korištenjem izraza FLWOR
- •
- –
- FOR, LET, WHERE, ORDER BY i RETURN
- Upotreba – od svijeta Weba i do baza podataka
- – izvještaji iz XML podataka i baza
- – dohvat podataka iz baze podataka za daljnju upotrebu (npr. usluga
- Weba)
- – prilagodljivi upiti koji pronalaze podatke na Webu
- – transformacije XML podataka u druge oblike (npr. XHTML),
- – izdvajanje informacija i upravljanje XML podacima
- – ...
- XQuery je za XML što je SQL za baze podataka
- 74
- XQuery – inačice i izvedbe
- • Razvoj inačica
- • razvijao se paralelno s XSLT 2.0
- – nadilazi mogućnosti XSLT-a – grupiranje, formatiranje
- brojeva i datuma, kontrola nad prostorima naziva
- – XPath je podskup jezika XQuery – XQuery je
- „nadogradnja”
- • XQuery 1.0 – preporuka W3C, 2007.
- – nije se stigao toliko raširiti kao XSLT
- – drugo izdanje prosinac 2010.
- • XQuery 3.0 – radni prijedlog W3C, srpanj 2013.
- – grupiranje, prebrojavanje, „outer join”, try/catch,
- switch
- – funkcije – dinamički poziv, inline, privatne, izjave
- – izlazne deklaracije, anotacije, mapiranja …
- – Izvedba ima 60-tak – popis
- (www.w3.org/XML/Query/#implementations)
- – RaptorXML, SAXON, MarkLogic …
- 75
- XQuery primjer
- <imenik>
- <osoba oib=“12345678901“>
- <ime>Ana</ime>
- <prezime>Anić</prezime>
- <email>ana.anic@racunarstvo.hr</email>
- <godinaRodjenja>1985</godinaRodjenja>
- </osoba>
- <osoba oib=“23456789012“>
- <ime>Ivo</ime>
- <prezime>Ivić</prezime>
- <email>ivo.ivic@racunarstvo.hr</email>
- <godinaRodjenja>1991</godinaRodjenja>
- </osoba>
- </imenik>
- 76
- XQuery primjer
- doc(“podaci.xml“)/imenik/osoba[godinaRodjenja<1990]
- <osoba oib=“12345678901“>
- <ime>Ana</ime>
- <prezime>Anić</prezime>
- <email>ana.anic@racunarstvo.hr</email>
- <godinaRodjenja>1985</godinaRodjenja>
- </osoba>
- doc(“podaci.xml“)/imenik/osoba[godinaRodjenja<1990]/ime
- <ime>Ana</ime>
- 77
- XQuery primjer – FLWOR
- doc(“podaci.xml“)/imenik/osoba[godinaRodjenja< 1990]
- •
- Korištenjem FLWOR (For, Let, Where, Order by, Return):
- for $a in doc("podaci.xml")/imenik/osoba
- where $a/godinaRodjenja<1990
- return $a/ime
- 78
- Korištenje za oblikovanje
- HTML
- • Primjer s tablicom:
- <table>
- r>
- {
- <tr><th>IME</th><th>PREZIME</th></t
- <tr>
- for $a in doc("podaci.xml")/imenik/osoba
- return <td>{data($a/ime)}</td>
- <td>{data($a/prezime)}</td>
- }
- </tr>
- </table>
- 79
- JAXB
- • Arhitektura za povezivanje s XML-om JAXB
- (Java Architecture for XML Binding)
- – radni okvir za jednostavnu manipulaciju XML
- dokumentima
- • jednostavniju nego kod DOM-a
- – stablo objekata
- • čvorovi u potpunosti odgovaraju XML elementima
- • sadrže atribute i sadržaj u obliku varijabli instance
- • zadržavaju veze – objektno referenciranje
- – standardan način vezivanja (binding) iz
- objekata (tipova podataka) napisanih u jeziku
- Java u komponente definirane XSD-om i
- obrnuto
- • obrada XML podataka izravno iz programskog koda
- • mapiranje – serijalizacija i deserijalizacija
- 80
- JAXB – mapiranje
- XML (XSD) Java
- XML Schema Tip
- xsd:string
- xsd:positiveInteger
- xsd:int
- xsd:long
- xsd:short
- xsd:decimal
- xsd:float
- xsd:double
- xsd:boolean
- xsd:byte
- xsd:QName
- xsd:dateTime
- xsd:base64Binary
- xsd:hexBinary
- xsd:unsignedInt
- xsd:unsignedShort
- xsd:unsignedByte
- xsd:unsignedLong
- xsd:time
- xsd:date
- xsd:g
- xsd:anySimpleType
- xsd:anySimpleType
- xsd:duration
- xsd:NOTATION
- Javin tip podatka
- java.lang.String
- java.math.BigInteger
- int
- long
- short
- java.math.BigDecimal
- float
- double
- boolean
- byte
- javax.xml.namespace.QName
- javax.xml.datatype.XMLGregorianCalendar
- byte[]
- byte[]
- long
- int
- short
- java.math.BigDecimal
- javax.xml.datatype.XMLGregorianCalendar
- javax.xml.datatype.XMLGregorianCalendar
- javax.xml.datatype.XMLGregorianCalendar
- java.lang.Object
- java.lang.String
- javax.xml.datatype.Duration
- javax.xml.namespace.QName
- Java XML
- Javina klasa
- XML podatkovni tip
- java.lang.String
- xs:string
- java.math.BigInteger
- xs:integer
- java.math.BigDecimal
- xs:decimal
- java.util.Calendar
- xs:dateTime
- java.util.Date
- xs:dateTime
- javax.xml.namespace.QName
- xs:QName
- java.net.URI
- xs:string
- javax.xml.datatype.XMLGregorianCalendar
- xs:anySimpleType
- javax.xml.datatype.Duration
- xs:duration
- java.lang.Object
- xs:anyType
- java.awt.Image
- xs:base64Binary
- javax.activation.DataHandler
- xs:base64Binary
- javax.xml.transform.Source
- xs:base64Binary
- java.util.UUID
- xs:string
- 81
- JAXB – API i arhitektura
- • JAXB API
- – paket
- javax.xml.bind
- – klasa
- JAXBContext
- – sučelje
- Unmarshaller
- • deserijalizira
- XML u Javu
- • provodi
- validaciju
- dobivenog
- XML-a
- – sučelje
- Marshaller
- klase
- Schema prevoditelj
- XML
- Schema
- Schema generator
- instanciranje
- prati
- Unmarshall
- XML
- dokument
- Marshall
- objekti
- • serijalizacija
- 82
- OZNAČNI JEZICI
- Osnove označnih jezika
- Skupine, vrste i razvoj označnih jezika
- Označni jezik XML
- Validacija XML dokumenata
- Rukovanje podacima
- Poznatiji primjeri
- 83
- Poznatije primjene označnih
- jezika
- • Označni jezici sindikacije sadržaja (RSS i
- Atom)
- • Jezik elektroničkog poslovanja ebXML
- • Univerzalni poslovni jezik UBL
- • Norma GS1 XML
- • Oblici zapisa poslovnih dokumenata
- – OpenDocument Format (ODF)
- – Office Open XML (OOXML )
- • Elektronički obrazac platnog naloga eHUB
- • Elektronički račun e-Račun
- poglavlje 4.2
- 84
- Označni jezici sindikacije sadržaja
- (RSS i Atom)
- •
- RSS najčešće znači „stvarno jednostavnu sindikaciju“ (Really Simple
- Syndication)
- – normirani oblik zapisa koji se koristi za objavu novih sadržaja
- kod često osvježavanih izvora informacija
- • kao što su blogovi, vijesti i drugi sadržaji
- •
- – RSS dokument često se naziva „punjenjem“, „hranom“ (feed),
- „web feedom“ ili RSS kanalom
- – sadržava sažetak određenog teksta koji se želi objaviti zajedno s
- metapodacima, najčešće uključujući i podatke o autoru
- Osnovna ideja – korisnik želi pratiti određenu temu, autora, novine
- ili internetske stranice
- – koristi softver nazvan čitač RSS-a (RSS reader), agregator ili čitač
- feeda
- – pretplaćuje se na određeni kanal
- • u čitač unese adresu kanala u obliku URI
- • najčešće jednostavnim klikom na ikonu RSS sadržaja u pregledniku
- • čitač provjerava pretplate u određenim vremenskim intervalima za nove
- nepročitane sadržaje
- • ako ih pronađe, preuzima ih i prikazuje korisniku u određenom obliku
- 85
- ————————
- USLUGE
- Interoperabilnost
- informacijskih
- sustava
- Aleksander Radovan
- USLUGE
- Uvod i definicije, stanja usluga
- Arhitekture raspodijeljenih sustava
- Interoperabilnost usluga
- Međuoprema i komunikacija porukama
- 2
- Usluga
- • Usluga kao pojam – u širokoj primjeni
- • Što je za vas usluga?
- • Usluga u gospodarstvu
- – nematerijalni oblik nekog dobra
- • neopipljiva, ne može rezultirati vlasništvom
- – izvršava se kada jedna strana izvodi posao
- (ili neku funkciju) za drugu stranu
- • Usluga u računarstvu
- – “mehanizam koji omogućava pristup do
- jedne ili više mogućnosti, pri čemu je pristup
- osiguran putem opisanog sučelja i dosljedno
- primijenjen s ograničenjima i politikama
- koje su opisane u opisu same usluge”
- prema OASIS-u
- (Organization for the Advancement of Structured Information
- Standards)
- 3
- Usluga u računarstvu
- • Programsko inženjerstvo zasnovano na
- komponentama CBSE (Component-based
- Software Engineering)
- – grana programskog inženjerstva,
- metodologija
- • Razlika komponente i usluge:
- – ovisi o točki promatranja
- – komponenta – dio programskog koda
- unutar cjeline
- • koristi se kao takav, nema modifikacija
- • nema utjecaja od proizvođača komponente
- – usluga – dostupna „izvana”, neovisna
- • sinkroni ili asinkroni pristup
- 4
- Komponente i njihova sučelja
- • Definicija komponente:
- – (softverska) komponenta je ponovno
- iskoristivi dio programske podrške
- (softvera)
- – može prilagođavati, ali ne i mijenjati
- • prilagodbe – korištenje s drugim
- komponentama
- • modifikacija – nije moguća, nema izvornog
- koda
- • Sučelja svake komponente su poznata
- • no od korisnika sakriveni detalji izvedbe
- 5
- Stanja usluga
- • Stanje – situacija u kojoj se nalazi
- promatrani objekt
- • Računalni program:
- – aktivno stanje
- • neka obrada, izvedba metoda, povrat rezultata
- • aktivno se stanje često detaljnije raščlanjuje
- – pasivno stanje
- • znači „ne koristi se”
- • isključeno ili na čekanju (u stanju pripravnosti)
- • Kako opisati stanja?
- – dijagrami stanja (state diagram) – npr.
- UML
- • Programi mogu, ali ne moraju biti svjesni
- svog stanja
- 6
- Stanja usluga
- • Stateless ili nesvjesni stanja
- – programi nisu svjesni stanja u kojem se
- nalaze
- • Statefull ili svjesni stanja
- – programi su svjesni stanja u kojem se nalaze
- • Usluge:
- – moraju biti dostupne i proširive
- – očuvanje informacije o stanju traži mnoge
- provjere i zauzima resurse (npr. memoriju)
- • košta, usporava …
- – usluge su zato najčešće stateless
- • iznimno usluga može biti i statefull
- – najčešće kada čeka informacije druge usluge za svoj
- rad
- 7
- Stanja usluge – ulančavanje
- •
- Primjer: usluga kupnje proizvoda u Web trgovini –
- koraci:
- 1. Autentikacija kupca
- 2. Odabir proizvoda
- 3. Plaćanje
- • Pitanje statefull ili stateless? – zapravo niz pitanja:
- – gdje zapisati informacije o stanju (memorija, uz
- rezultat)?
- – korištenje uvijek iste podusluge?
- – raspoloživost?
- – veliki broj korisnika?
- – kašnjenje?
- – nedostupnost (kvar), osjetljivost na pogrešku?
- – raspodijeljenost?
- 8
- Stanja usluge – statefull
- • Usluge svjesne stanja – statefull:
- – prati stanje svakog procesa
- – informacija se zapisuje – u neku memoriju
- – osigurava se nastavak procesa
- – korisnik se može vratiti točno na poduslugu
- koju je koristio u prošlom koraku
- • Problemi
- – u slučaju velikog broja korisnika
- • zagušenje, kašnjenje …
- – u slučaju kvara ili nedostupnosti
- 9
- Stanja usluge – stateless
- • Usluge nesvjesne stanja – stateless:
- – nakon izvršavanja pojedinog koraka,
- korisnik dobiva:
- •
- •
- •
- •
- •
- (među)rezultat
- dovoljnu informaciju o stanju
- ugrađen mehanizam raspodijeljenosti
- povećana raspoloživost
- smanjena osjetljivost na pogreške
- • No, stanje se ipak negdje pohranjuje
- – najčešće u memoriju ili relacijsku bazu na
- poslužitelju
- • Korisnik i usluga razmjenjuju samo
- identifikator
- – pokazivač na pohranjene podatke
- 10
- Preduvjeti moderne usluge
- • Usluge raspodijeljenih sustava
- • Osnovni zahtjevi:
- – dostupnost
- – pouzdanost
- • Komunikacijski preduvjeti:
- – protokoli – HTTP, HTTPS …
- – resursi – URL, URI, URN, MIME …
- 11
- Protokol HTTP
- •
- •
- HyperText Transfer Protocol – HTTP
- – najrašireniji i najpoznatiji komunikacijski protokol
- aplikacijskog sloja
- Verzije:
- – HTTP 0.9 - 1991., kasnije u RFC 1945, jednostavan
- – HTTP 1.0 - 1996. RFC 1945, široko korištena inačica
- – HTTP 1.1 - 1997. dogradnja 1.0. RFC 2068, 1999. RFC
- 2616
- • kontrola veze, caching, sigurnost, adresiranje, kontrola
- greške ...
- •
- Zapravo prenosi bilo kakve resurse (ne samo hypertext)
- – datoteke (file), podatke o datoteci (meta-data), odsječak
- (chunk), podatke zahtjeva (query information),
- višedijelne podatke (multipart data), rezultate obrade
- (processing result)
- – praktički sve što se može nekako nazvati ili imenovati
- 12
- Karakteristike HTTP
- • Protokol tipa zahtjev/odgovor (request –
- response)
- – poslužitelj stalno osluškuje zahtjeve klijenata
- – koristi standardni priključak, vrata (port) 80
- ili 8080
- – uspostavlja se TCP veza (pouzdan prijenos)
- – klijent šalje zahtjev (poruku) poslužitelju i
- očekuje odgovor (poruku)
- • HTTP je protokol bez očuvanja stanja -
- stateless
- – poslužitelj ne čuva stanje između dvije
- konverzacije
- 13
- HTTP poruke
- • 1 zahtjev i 1 odgovor = 1 konverzacija
- – u poruci zahtjeva su sve informacije za
- ispunjenje zahtjeva
- – konverzacija završava odgovorom,
- odnosno ispunjenjem zahtjeva
- • Dijelovi HTTP tekstualne poruke:
- – upravljački dio poruke – početni redak
- i zaglavlja
- • čitljivo i ljudima
- – tijelo poruke – sadržaj poruke
- • može i ne mora biti čitljivo ljudima
- 14
- Struktura HTTP poruka
- • Početni redak (start-line)
- – zahtjev – oblik: metoda URI verzijaHTTP CRLF
- • npr. GET /iis.html HTTP/1.1
- – odgovor – oblik: verzija-HTTP
- statusni-kod razlog CRLF
- • npr. HTTP/1.1 404 Not Found
- • Zaglavlja (message-headers)
- – različita, ovise o poruci – oblik:
- ime:vrijednost
- • Tijelo poruke (message-body)
- – resurs/i (kodirani)
- 15
- Metode HTTP
- • GET – vraća sadržaj resursa
- • POST – šalje dodatne podatke
- – objava poruke, blok, skup podataka
- • HEAD – vraća opis (meta podatke) resursa
- dodatno u HTTP 1.1
- • PUT – slanje novog resursa na poslužitelj
- • DELETE, OPTIONS, TRACE, CONNECT
- – nisu izvedene u svim poslužiteljima
- • Prema potrebi mogu se definirati i dodatne
- metode
- – bez narušavanja postojeće infrastrukture
- – npr. WebDAV definira još 7 metoda
- – npr. RFC5789 definira metodu PATCH
- 16
- Sigurne i nesigurne metode
- •
- •
- •
- Sigurne metode (safe methods)
- – ne mijenjaju stanje poslužitelja
- – služe isključivo za dohvat podataka
- – metode GET, HEAD, OPTIONS i TRACE
- – nemaju neželjenih posljedica u obliku izvođenja akcija na
- poslužitelju, osim relativno bezopasnih poput logiranja,
- predmemoriranja i sličnih.
- Nesigurne metode (unsafe methods)
- – namijenjene za izvođenje određenih akcija na poslužitelju u
- smislu promjene stanja poslužitelja, najčešće promjenom
- podataka u nekom obliku transakcije.
- – metode POST, PUT i DELETE
- U praksi je moguće da se dohvatom resursa (GET) pokreću i neke
- akcije (neželjene) na poslužitelju
- – pokušava se umanjiti propisivanjem dobrih praksi izvedbe
- odgovora na zahtjev koje ne uključuju takve akcije
- – automatski agenti za predmemoriranje ili pretraživanje stranica
- ne smiju mijenjati stanje na poslužitelju (loša praksa)
- 17
- Protokol HTTP – koraci
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- Korisnik unosi URL
- Stvara se nit za obradu
- Zahtjeva se otvaranje
- stranice
- Traži se IP adresa
- poslužitelja
- Otvara se TCP
- konekcija prema
- poslužitelju
- Nakon trostrukog
- rukovanja (handshake)
- uspostavlja se veza
- Šalje se HTTP_GET
- zahtjev
- Dobiva se odgovor
- (npr. kod 200 i tražena
- stranica)
- 18
- Protokol HTTP - zahtjev
- HTTP zahtjev
- GET /index.html HTTP/1.1
- User Agent: Mozilla/4.0
- (compatible; MSIE 8.0;
- Windows NT 6.0; WOW64;
- Trident/4.0; SLCC1; .NET
- CLR 2.0.50727; Media Center
- PC 5.0; InfoPath.2; .NET
- CLR 3.5.30729; .NET CLR
- 1.1.4322; .NET CLR
- 3.0.30729;
- Host: www.usluga.org
- Strukturni dio
- Početni redak
- Objašnjenje
- Pristupna metoda, put i verzija
- protokola kojim se želi pristupiti
- Identifikator pretraživača koji se
- koristi
- Zaglavlje
- Adresa poslužitelja kojem je
- zahtjev namijenjen
- Accept: image/gif, image/xxbitmap, image/jpeg,
- image/pjpeg, image/png, */*
- Accept-Encoding: gzip
- Accept-Language: en
- Accept-Charset: iso-88591,*,utf-8
- Informacija o tipu podataka koje
- klijent može primiti
- Prazni redak
- 19
- HTTP odgovor
- HTTP zahtjev
- HTTP/1.1 200 OK
- Date: Thu, 09 Aug 2013
- 12:23:29 GMT
- Server: Apache/2.2
- Last-Modified: Mon, 04 Aug
- 2013 09:33:15 GMT
- Accept-Ranges: bytes
- Content-Length: 884
- Content-Type: text/html
- Strukturni
- dio
- Početni
- redak
- Objašnjenje
- Verzija protokola, statusni kod i
- objašnjenje
- Datum obrade zahtjeva i verzija
- poslužiteljskog softvera
- Zaglavlje
- Datum zadnje promjene traženog
- dokumenta
- Metapodaci o samom odgovoru
- Prazni redak
- <!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 3.2
- Final//EN">[...]
- Tijelo
- poruke
- Sadržaj odgovora je primjerice
- HTML dokument
- 20
- Zaglavlje
- • Connection – kontrola veze
- • Host – obavezno ime poslužitelja
- – podrška za proxy i virtual host
- • Content-Type – oznaka MIME tipa poruke
- • Content-Length – oznaka duljine sadržaja
- poruke
- • Content-Range – oznaka dijela resursa
- • Accept-Language – popis jezika koje klijent
- prihvaća
- • User-Agent – vrsta klijenta
- • Date – datum
- • Nestandardna zaglavlja: prefiks X• Nepoznata zaglavlja se zanemaruju
- 21
- HTTP kodovi
- •
- •
- •
- •
- •
- •
- HTTP statusni kodovi – u rasponu 100-599
- – rezultat obrade zahtjeva
- 1xx: informativni (Informational) – zahtjev primljen, nastavak rada
- 2xx: uspjeh (Success) – zahtjev je primljen, protumačen i prihvaćen
- – 200 OK – zahtjev uspio i preglednik će dobiti traženu stranicu u
- nastavku odgovora
- 3xx: preusmjeravanje (Redirect) – akcija preusmjeravanja
- 4xx: greška klijenta (Client Error) – zahtjev nije ispravan ili
- neispunjiv
- – 400 Bad Request – zahtjev ne može biti ispunjen zbog
- pogrešne sintakse
- – 401 Unauthorized – neautorizirani pristup, odgovor mora
- uključiti zaglavlje autentikacije
- – 403 Forbidden – iako je zahtjev valjan, poslužitelj odbija
- odgovoriti, problem autorizacije
- – 404 Not Found – traženi resurs (npr. stranicu) poslužitelj nije
- pronašao
- 5xx: greška poslužitelja (Server Error) – poslužitelj nije uspio
- ispuniti zahtjev
- – 500 Internal Server Error – generička poruka greške na
- poslužitelju, neočekivano stanje poslužitelja
- • često kod dinamičkih stranica, odnosno aplikacija Weba
- 22
- Uniform Resource Identifiers
- • Universal Resource Identifiers in WWW, RFC
- 1630
- – Tim Berners-Lee, 1994.
- – definira URI i formalizira njegovu sintaksu
- – dopunjuje definicije URL i URN
- • “Usklađeni identifikator resursa URI (Uniform
- Resource Identifier) je kompaktan niz znakova
- koji identificiraju apstraktni ili fizički resurs”
- – niz znakova iz ograničenog skupa znakova
- – u različitim oblicima
- – jedinstveno razlikovanje resursa
- – važna je identifikacija i lokacija, a ne
- dostupnost (mogućnost dohvata)
- 23
- Uniform Resource Identificator –
- URI
- • URI pretpostavlja da svaki resurs može
- biti identificiran:
- – putem lokacije – URL
- – putem imena – URN
- – korištenje oba kriterija
- •
- Primjeri:
- –
- –
- –
- –
- –
- –
- –
- file://D:/knjiga/racunarstvo/IIS.txt
- ftp://ftp.racunarstvo.hr/iis/IIS.txt
- http://www.racunarstvo.hr/iis/iis.html
- mailto:aleksander.radovan@racunarstvo.hr
- news:hr.racunarstvo.iis
- tel:+385-1-555-5555
- telnet://192.168.0.1:80/
- 24
- Komponente URI
- http://www.racunarstvo.hr:80/iis/nekiput?resu
- rs=iis#url
- • Pet osnovnih komponenata:
- – shema (schema)
- npr. http
- – autoritet (authority)
- npr.
- www.racunarstvo.hr:80
- – put (path)
- npr. iis/nekiput
- – upit (query)
- npr. resurs=iis
- – fragment (fragment)
- npr. url
- • URI se mora se sastojati barem od sheme i
- (praznog) puta
- 25
- Usklađeni naziv resursa URN
- • Usklađeni naziv resursa URN (Uniform Resource
- Name)
- – podskup URI
- – naziv resursa u nekoj domeni – prostoru naziva
- – garantira jedinstvenost i trajnost identifikacije
- – oblik zapisa
- <URN> ::= "urn:" <NID> ":" <NSS>
- – NID – prostor naziva(namespace identifier)
- – NSS – specifičan znakovni niz (namespace specific string)
- – Primjeri:
- •
- •
- •
- •
- urn:isbn:0-395-36341-1
- urn:ietf:rfc:3187
- urn:isan:0000-0000-9E59-0000-O-0000-0000-2
- <xsd:schema
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- targetNamespace="urn:example">
- 26
- Usklađeni lokator resursa URL
- •
- Usklađeni lokator resursa URL (Uniform Resource
- Locator)
- – najčešće korišteni podskup URI
- – lokacija resursa, ali i način pristupa
- – ne garantira jedinstvenost i trajnost resursa
- • isti resurs može biti na više lokacija ili premješten
- – različiti pristupni protokoli
- – Primjeri:
- • http://www.racunarstvo.hr/iis/iis.html
- • ftp://ftp.racunarstvo.hr
- •
- URI Reference
- – može sadržavati cijeli URI ili neki shemom
- definirani dio
- • moguće je čak koristiti i prazan znakovni niz!
- – koristi se posebni identifikator, #
- • sidro (anchor) u jeziku HTML <a href="#URI">
- 27
- URI, URL – znakovi
- • Ograničeni skup znakova
- – mala i velika slova, brojke, neki posebni
- znakovi
- • Rezervirani (zabranjeni) znakovi
- – :/?#[]@!$&'()*+,;=
- – primjeri:
- • http://www.racunarstvo.hr/iis/iis.html
- • mailto:aleksander.radovan@racunarstvo.hr
- • Kako koristiti "zabranjene" znakove?
- – oblik %HH – H je heksadekadska znamenka
- – primjeri:
- • %20 je praznina (ASCII 0x20)
- • %25 predstavlja znak "%"
- • http://www.racunarstvo.hr/interoperabilnost%20i
- nformacijskih%20sustava.html
- 28
- Višenamjensko proširenje elektroničkih
- poruka na Internetu MIME
- • Višenamjensko proširenje elektroničkih poruka na
- Internetu MIME (Multipurpose Internet Mail
- Extension)
- – protokol zamišljen kao proširenje e-pošte (email)
- – prerastao e-poštu, prihvaćen u drugim
- protokolima (HTTP)
- • Proširenje poruka elektroničke pošte
- – druga kodiranja (kodne stranice) teksta osim 7bitnog ASCII
- – privici u drugim oblicima (osim teksta ) – slike,
- dokumenti
- – višedijelne (multi-part) poruke
- – podaci u zaglavlju poruke (npr. naslov) u
- drugim kodnim stranicama
- 29
- Oznake MIME tipa
- • Normirana struktura tipova podataka – oznaka
- tip/podtip (type/subtype)
- – application – razni aplikacijski podaci
- • npr. /javascript, /octet-stream, /xhtml+xml, /zip
- – audio – zvučne datoteke
- • npr. /mpeg
- – image – slike
- • npr. /gif, /jpeg, /png
- – text – tekstualni podaci
- • npr. /html, /plain
- • Podrška nenormiranim tipovima – počinje s x• Podrška tipovima pod kontrolom proizvođača –
- vnd
- 30
- Korištenje oznaka tipa i
- kodiranja
- •
- •
- •
- •
- Oznaka da je poruka oblikovana korištenjem MIME
- – MIME-Version: 1.0
- Oznaka tipa resursa u zaglavlju poruke
- – npr. Content-type: text/plain
- Višedijelne poruke (multipart) stablasta struktura
- – označena tipom multipart/mixed
- – svaki dio poruke dodatno zaglavlje tipa
- Kodiranje riječi (encoded-word) zaglavlja
- – oblik: =?kodna stranica?kodiranje?kodirani
- tekst?=
- • npr. Računarstvo je =?utf-8?Q?Ra=C4=8Dunarstvo?=
- •
- Kodiranje teksta poruke
- – quoted printable – svaki znak koji nije ASCII (printable)
- znak kodira se s =HH
- – base64 – znakovi u grupama s 6 binarnih znamenaka
- • svaka grupa zamjenjuje se znakom A do Z, a do z, 0 do 9, + i /
- • dulje linije (76 znakova) prekinute znakom =
- 31
- USLUGE
- Uvod i definicije, stanja usluga
- Arhitekture raspodijeljenih sustava
- Interoperabilnost usluga
- Međuoprema i komunikacija porukama
- 32
- Raspodijeljeni sustavi
- • Definicija raspodijeljenog sustava (distributed
- system):
- – sustav čiji se hardverski ili softverski
- dijelovi nalaze na različitim čvorovima
- (poslužitelj) u mreži, a međusobno
- razmjenjuju poruke kako bi obavili
- povjereni im posao
- • Nužan uvjet:
- – spoj na mrežu
- • Dodatni uvjeti:
- – koordinacija vremena
- – smanjivanje osjetljivosti na pogreške
- – pouzdanost, sigurnost …
- 33
- Raspodijeljeni sustavi
- • Sustav je raspodijeljen, ali ga korisnici moraju
- doživjeti kao jedinstven
- • Primjer – raspodijeljeni sustav Weba neke
- velike kompanije (npr. Google, Amazon i sl.)
- – velik broj poslužitelja, zemljopisno
- raspodijeljeni
- – putem jedinstvene adrese korisnik pristupa
- najbližem
- – balansiranje opterećenja
- – transparentno za korisnika – ne zna čemu
- pristupa
- • A koje su arhitekture (moguće, postojeće,
- najčešće)?
- 34
- Arhitektura klijent-poslužitelj
- • Arhitektura klijent-poslužitelj (clientserver)
- – jedna od prvih arhitektura
- raspodijeljenih sustava
- • Začetak:
- – udaljeni pristup, putem terminala
- – pristup putem telefonske linije, zatim i
- LAN
- – pristup na mainframe računalo
- • Povećanje broja korisnika – posljedice:
- – raspodijeljeni podaci
- – raspodijeljena memorija
- 35
- Arhitektura klijent-poslužitelj
- • Aplikacija na klijentu se spaja na
- poslužitelj
- • Poslužitelj osluškuje i prihvaća zahtjeve
- klijenata, obrađuje ih i vraća im
- rezultate
- Klijent
- Poslužitelj
- Klijent
- • Poslužitelji mogu biti klijenti drugim
- poslužiteljima
- Poslužitelj
- 36
- Arhitektura klijent-poslužitelj
- •
- Većina današnjih poslužitelja Weba
- – platforma LAMP (Linux , Apache , MySQL ,
- Perl /PHP /Phyton)
- – sustav za upravljanje sadržajem (CMS, Content
- Management System)
- – često baza podataka na zasebnom poslužitelju
- • smanjuje opterećenje
- •
- •
- Klijent nije svjestan broja ni rasporeda poslužitelja
- – samo zahtijeva ispravan, brz i nesmetan prikaz
- informacija
- Tendencija smanjivanja procesa na strani klijenta
- – tanki klijent (thin client) koji brine samo o
- grafičkoj prezentaciji
- – povećana robusnost sustava i troškovi na strani
- poslužitelja
- – povećana ovisnost o mrežnoj komunikaciji
- 37
- Slojevitost
- • Tradicionalne aplikacije
- – monolitne, unutar jednog procesnog bloka
- – moguće funkcionalno ili „idejno” raslojavanje
- • biblioteke i sl.
- – zajednički izvršni kôd aplikacije
- – potencijalno višeprocesno – preteča
- raspodijeljenosti
- • Moderne aplikacije
- – načelno višeslojne
- – u sloju zasebni, logički izdvojeni dijelovi
- – najpoznatiji primjer – troslojne aplikacije
- • podjela na prezentacijski, aplikacijski i
- podatkovni sloj
- 38
- Troslojni model –
- prezentacijski sloj
- • Prezentacijski sloj (presentation
- layer)
- – na vrhu troslojne arhitekture
- – grafički predočuje podatke
- korisniku – GUI
- – prihvaća zahtjeve korisnika
- – transformacija podataka i
- komunikacija prema ostalim
- slojevima
- – prevođenje rezultata u oblik
- razumljiv korisniku
- 39
- Troslojni model – aplikacijski
- sloj
- • Aplikacijski sloj (application layer):
- – često se naziva sloj poslovne logike,
- "srž" aplikacije
- – izvode se poslovni procesi
- – prima podatke (i akcije) iz
- prezentacijskog sloja
- – dohvaća podatke iz podatkovnog sloja
- – obrađuje ih
- – vraća rezultate u podatkovni sloj
- • kao posljedicu obrade
- – vraća rezultate u prezentacijski sloj
- • za prezentaciju korisniku
- 40
- Troslojni model
- • Podatkovni sloj (data layer):
- – izdvojen kako bi se omogućilo da više
- različitih aplikacija koristi iste podatke
- – povećanje performansi
- – skalabilnost sustava
- • Jesu li tri sloja bila dovoljna?
- • Rješenje
- – višeslojne arhitekture
- – bliskije konceptima sustava zasnovanih
- na uslugama
- – slojevi sjednice, autorizacije i sl.
- 41
- Interoperabilnost višeslojnih
- arhitektura
- • Daljnje raslojavanje
- – još veći broj slojeva
- • Enterprise okruženja
- – Java EE, .NET ...
- • Vodeći računa o
- interoperabilnosti
- 42
- Model višeslojne arhitekture
- • Klijentski sloj (client tier) ili
- prezentacijski sloj na klijentu
- – tanki klijent (thin application
- client)
- • nekad terminal, danas preglednik
- • iscrtavanje GUI, skriptni jezici
- • prezentacijska logika
- – debeli klijent (thick client, fat
- client) ili bogati aplikacijski klijent
- (rich application client)
- • samostalna aplikacija, računala veće
- snage
- • "bogati" GUI
- – pametni klijent (smart client)
- • kombinacija "bogatog" i tankog
- klijenta
- • najbolje od oba pristupa, bez
- preglednika
- 43
- Model višeslojne arhitekture
- • Prezentacijski sloj na poslužitelju
- (server presentation layer)
- – prikaz korisničkog sučelja
- – prihvaća interakcije od korisnika
- – upravlja grafičkim
- prezentacijama
- – transformacije podataka
- • jezik, oblici i sl.
- – validacije, ispravci
- – pozivi metoda poslovne logike
- – često se koristi kod tankih
- klijenata
- 44
- Model višeslojne arhitekture
- • Sloj poslovne logike (business
- logic tier)
- – izvođenje poslovnih procesa
- – često u podslojevima
- • sloj za primanje i pružanje
- podataka za prezentaciju
- • sloj poslovne logike
- • sloj za primanje i pružanje
- podataka sloju pristupa
- podacima
- 45
- Model višeslojne arhitekture
- • Sloj pristupa podacima (data
- access tier)
- – apstrakcija prikaza podataka
- – prima i šalje podatkovnom
- sloju
- – najčešće objektni prikaz
- • Često ORM – objektnorelacijsko mapiranje podataka
- • objektni oblik podataka iz
- relacijske baze podataka
- 46
- Model višeslojne arhitekture
- • Sloj podataka (data tier, data
- layer)
- – pohranjuje podatke
- – upravlja podacima
- – na fizičkoj i logičkoj razini
- – često relacijske baze podataka
- – izvori:
- • DBMS, CMS, DMS, skladišta
- podataka (data warehouse),
- NoSQL baze, objektne baze,
- XML baze ...
- 47
- Interoperabilnost klijentskog
- sloja
- • Jako ovisi o vrsti klijenta
- • Mogućnosti:
- – prema drugom klijentskom sloju
- – prema prezentacijskom sloj
- – prema sloju poslovne logike
- – prema sloju pristupa podacima
- 48
- Interoperabilnost klijentskih
- slojeva
- 49
- Interoperabilnost klijentskih
- slojeva
- • Interoperabilnost dvaju klijenata
- – nije uobičajena, ali moguća
- • kod tankih klijenata čak nije ni vjerojatna!
- – debeli klijent može eksponirati neke
- svoje funkcionalnosti
- – odnos tankog i debelog klijenta:
- • korištenjem HTTP-a tanki klijent koristi
- funkcionalnosti dostupne na debelom
- klijentu
- – debeli klijenti – JavaFX, .Net, Swing, AWT
- ...
- • debeli klijent zamjenjuje prezentacijski sloj
- 50
- Interoperabilnost klijentskog sloja
- prema prezentacijskom sloju
- 51
- Interoperabilnost klijentskog sloja
- prema prezentacijskom sloju
- • Interoperabilnost klijentskog sloja i
- prezentacijskog sloja
- – vjerojatnija mogućnost
- – primjeri:
- • aplikacija u jeziku Java (tanki klijent,
- applet, debeli klijent JavaFX, Swing,
- AWT) komunicira s .NET aplikacijom
- (npr. ASP.NET artefaktom i sl.)
- • debeli klijent (.NET aplikacija, Windows
- Forms …) komunicira s Java
- aplikacijom (aplikacija, Servlet, JSP …)
- 52
- Interoperabilnost klijentskog sloja
- prema sloju poslovne logike
- 53
- Interoperabilnost klijentskog sloja
- prema sloju poslovne logike
- •
- Interoperabilnost klijentskog sloja prema sloju poslovne
- logike
- – „odustajanje” od prezentacijskog sloja – kada je
- integriran u klijentskom sloju
- – primjer:
- • klijentska Java aplikacija (npr. debeli klijent JavaFX, Swing, AWT …)
- komunicira s komponentama poslovnog sloja (.NET)
- • .NET aplikacija (klijentska, Forms …) komunicira s komponentama
- poslovnog sloja arhitekture Java EE (Servleti, EJB …)
- – izvedba s tankim klijentom – preglednik i klijentsko Web
- sučelje
- • koristi objekt XMLHttpRequest za komunikaciju s poslovnom
- logikom
- • serijalizacija i deserijalizacija XML objekata na razini preglednika
- – AJAX (Asynchronous JavaScript and XML) – uporaba asinkronih poziva
- korištenjem jezika JavaScript i jezika XML
- • na strani poslovne logike – sučelje usluge Weba (SOAP, Web
- Services … )
- • na klijentskom sloju skup tehnologija DHTML
- 54
- Interoperabilnost klijentskog sloja
- i sloja pristupa podacima
- 55
- Interoperabilnosti klijentskog sloja
- i sloja pristupa podacima
- • Interoperabilnosti klijentskog sloja i sloja
- pristupa podacima
- – integracija viših slojeva u jednu cjelinu
- klijentske aplikacije
- • klijentski sloj pristupa izravno sloju pristupa
- podacima
- • praktički klasična dvoslojna arhitektura
- • ne preporučuje se
- – scenarij debelog ili tankog klijenta
- (AJAX, DHTML) koji pristupa objektnoj
- reprezentaciji podataka
- • ostvarivo između arhitektura .NET i Java EE u
- oba smjera
- 56
- Interoperabilnost klijentskog
- sloja – rezime
- • Najčešće komunikacija prema prezentacijskom sloju ili
- prema sloju poslovne logike
- – komunikacija prema drugom klijentskom sloju ili
- prema sloju pristupa podacima vrlo rijedak slučaj –
- ne preporučuje se iz niza razloga
- • Bez obzira kako je izveden klijentski sloj (debeli ili tanki
- klijent) moguće ga je povezati s komponentama nižih
- slojeva izvedenih u arhitekturama .NET i Java EE.
- – aplikacije Weba, Java aplikacije, appleti, JavaFX, Swing
- ili AWT aplikacije, odnosno .NET aplikacije, Windows
- Forms, ASP.NET i slični oblici
- – razni oblici prezentacijskih komponenata, kao što su
- Servleti, JSP stranice, komponente EJB, odnosno
- ASP.NET artefakti i druge komponente .NET
- platforme.
- • Komunikacija – različiti oblici protokola i usluga,
- uključujući Web Services, a kod tankih klijenata
- popularni načelo AJAX i skup tehnologija DHTML
- 57
- Interoperabilnost prezentacijskog
- sloja
- • Prezentacijski sloj
- – osim prikaza korisničkog sučelja, omogućuje i
- upravljanje, koordinaciju i orkestraciju
- elemenata i komponenata korisničkog sučelja
- – može se ostvariti komunikacija s drugim
- slojevima različitih tehnologija ili arhitektura
- – zadužen i za interpretaciju svih korisničkih
- akcija i grafički prikaz svih elemenata
- – zadužen i za održavanje stanja usluge tijekom
- korisničkih sjednica, toka procesa poslovne
- logike i poziva udaljenih metoda ili usluga
- – kod dvoslojnih aplikacija prezentacijski je sloj
- zapravo ugrađen u klijentski sloj, pa za njega
- vrijedi sve što i za interoperabilnost klijentskog
- sloja
- 58
- Interoperabilnost dvaju
- prezentacijskih slojeva
- 59
- Interoperabilnost dvaju
- prezentacijskih slojeva
- • Interoperabilnost dvaju prezentacijskih slojeva
- – s obzirom na probleme održavanja korisničke
- sjednice (session) i stanja aplikacije, ovo nije
- često ni popularno rješenje
- – primjer:
- • s arhitekturama Java EE i .NET to znači da ako je riječ o
- tankom klijentu komponente, kao što su Servleti ili JSP
- stranice, pristupaju komponentama ASP.NET i obrnuto
- – jedna od mogućih implementacije je korištenje
- redirekcije URL-a
- – nešto češća interoperabilnost komunikacijom
- dvaju debelih klijenata
- • npr. Java aplikacije i .NET aplikacije
- • jedna strana poziva određene funkcionalnosti druge
- strane
- 60
- Interoperabilnost prezentacijskog
- i poslovnog sloja
- 61
- Interoperabilnost prezentacijskog
- i poslovnog sloja
- • Interoperabilnost prezentacijskog i poslovnog
- sloja
- – najčešći je scenarij interoperabilnosti između
- tehnologija Java EE i .NET – pogotovo kod
- aplikacijskih poslužitelja
- – primjeri:
- • prezentacijski sloj izveden pomoću JSP stranica,
- Servleta i komponenti JavaBean izravno komunicira s
- komponentama .NET tehnologija, kao što su COM+
- • prezentacijski sloj izveden u ASP.NET tehnologiji
- izravno komunicira sa Servletima i komponentama
- Enterprise JavaBeans (EJB)
- • Druga mogućnost – uporabom usluga Weba
- – skup tehnologija Web Services – preporučeni
- oblik komunikacije u arhitekturi orijentiranoj
- prema uslugama
- 62
- Interoperabilnost prezentacijskog
- i sloja pristupa podacima
- 63
- Interoperabilnost prezentacijskog
- i sloja pristupa podacima
- •
- Interoperabilnost prezentacijskog i sloja pristupa
- podacima
- – moguća kada je uloga sloja poslovne logike
- minimalna
- – izravna veza prezentacije (npr. kroz korisničko
- grafičko sučelje na Webu) i podataka kojima se
- manipulira, predstavljenih od podatkovnog sloja
- – najčešće primjene kod upravljanja podacima,
- administracije matičnih podataka pohranjenih u
- bazama podataka
- – primjeri:
- • prezentacijski sloj (JSP, JSF …) pristupa podatkovnim
- objektima u tehnologiji ADO.NET ili sl.
- • prezentacijski sloj (ASP.NET, WebForms ili WinForms)
- pristupa podatkovnim objektima u tehnologijama Java
- EE (EJB, DAO) ili izravno korištenjem konekcije na bazu
- (JDBC i sl.)
- 64
- Interoperabilnost poslovnog
- sloja
- • Poslovni sloj vrlo često komunicira izravno
- s drugim poslovnim slojem
- – zato jer odrađuje većinu poslovne
- logike
- • manji dio logike mogu odraditi i
- prezentacijski sloj te sloj pristupa podacima
- • validacije, kontrole i povezivanja podataka te
- oblikovanja struktura podataka koje se dalje
- prenose
- – u određenim slučajevima sama relacijska
- baza podataka sadržava različite
- procedure i mehanizme
- • okidači (triggers) i ugrađene ili pohranjene
- procedure (stored procedures)
- 65
- Interoperabilnost poslovnih
- slojeva
- 66
- Interoperabilnost poslovnih
- slojeva
- •
- Interoperabilnost poslovnih slojeva
- – osnovni razlog redukcija ponavljanja istih ili sličnih
- funkcionalnosti i ponovno iskorištavanje dijelova
- poslovne logike
- • radi smanjenja troškova i drugih koristi
- – česta na razini B2B - sustavi različitih poslovnih subjekata
- ili sustavi istoga poslovnog subjekta surađuju kao bi
- ostvarili određenu cjelovitu uslugu
- – unutar jednog poslovnog subjekta obično uključuju
- suradnju sustava ERP (Enterprise Resource Planning), CRM
- (Customer Relationship Management), HR (Human
- Resources) i drugih
- – najčešći primjeri između različitih subjekata su sustavi
- naručivanja, fakturiranja i plaćanja, koji omogućavaju
- elektroničku trgovinu i elektroničko poslovanje u cjelini
- – primjeri:
- • suradnja Java EE i .NET komponenti kao što su Servleti, EJB,
- COM+ i sl.
- • poslovne komponente eksponirane u obliku usluga korištenjem
- tehnologije Web Services
- 67
- Interoperabilnost poslovnog sloja
- i sloja pristupa podacima
- • Interoperabilnost poslovnog sloja i sloja
- pristupa podacima
- – iako nije često moguće je da poslovne
- komponente jedne tehnologije izravno
- pristupaju sloju podataka izvedenom u
- drugoj tehnologiji
- – primjeri:
- • u tehnologiji Java EE predstavljaju
- komponente pristupaju .NET komponentama
- (npr. ADO.NET) ili agentima usluga (Service
- Agents)
- • komponente COM+ i sl. ostvaruju spoj
- korištenjem arhitekture za spajanje JCA (Java
- Connector Architecture)
- 68
- Interoperabilnost sloja pristupa
- podacima i sloja podataka
- • Interoperabilnost sloja pristupa podacima i
- sloja podataka
- – moguće i kod .NET i kod Java EE
- • npr. kod tehnologije .NET za pristup i
- pohranu podataka koristi ADO.NET, a za
- pristup uslugama koriste se adapteri (engl.
- Service Adapters)
- • npr. kod tehnologije Java EE za perzistenciju
- podataka koriste se komponente EJB, JDO i
- ORM (uključujući JPA, POJO, Hibernate i sl.)
- 69
- Interoperabilnost slojeva
- podataka
- • Interoperabilnost slojeva podataka
- – ako je riječ o relacijskim bazama podataka jedna
- baza zove podatke iz druge
- • tehnički izvedivo, upitno korištenje
- – često se koriste dijeljene baze podataka (shared
- databases)
- • teže ostvarive u heterogenim, raspodijeljenim i
- fizičkim dislociranim sustavima
- – moguće je i da određena logika u pohranjenim
- procedurama koristi razne izvore podataka
- – u transakcijskoj logici često da jedna poslovna
- komponenta koristi niz različitih komponenti
- pristupa podacima koji tada izvode dohvat,
- izmjenu ili pohranu podataka na više različitih
- izvora podataka
- 70
- USLUGE
- Uvod i definicije, stanja usluga
- Arhitekture raspodijeljenih sustava
- Interoperabilnost usluga
- Međuoprema i komunikacija porukama
- 71
- Najčešće tehnologije izvedbe
- interoperabilnosti
- •
- •
- Uporabom usluga (service oriented approach) – npr. usluge
- Weba
- Na razini klasa (razreda) (class level approach)
- – križno prevođenje (cross compilation)
- • međukod (Java bytecode ili MSIL (Microsoft Intermediate
- Language)
- – poziv udaljenih procedura (Remote Procedure Calls)
- • udaljene metode (Remote Method Invocation ili .NET remoting)
- – premošćivanje (bridging)
- • međusobni pozivi klasa npr. u tehnologijama Java i .NET koje se
- izvode u JVM-u i CLR-u putem "mosta"
- – porukama (messaging) i redovima poruka (message
- queuing)
- • razmjena poruka korištenjem mehanizama redova poruka (MQ)
- •
- Na razini podataka – razmjenom podataka na različite načine
- – posrednicima, međuopremom, agregatorima i
- integracijskim tehnikama
- – sinkronizacijom i replikacijom dijelova baza podataka
- – uporabom dijeljenih baza podataka
- 72
- Najčešće tehnologije
- interoperabilnosti #1
- • Tehnologije (XML) Web Services
- – interoperabilnost na razini usluga
- – aplikacije ili sustavi razmjenjuju podatke
- korištenjem eksponiranih sučelja
- – razmjena podataka porukama
- • najčešće podaci u obliku XML
- – široko prihvaćeni i relativno jednostavni
- protokoli razmjene
- • najčešće postojeći protokoli HTTP i SOAP
- 73
- Najčešće tehnologije
- interoperabilnosti #2
- • Tehnike eksponiranja razreda i metoda
- – interoperabilnost na razini prosljeđivanja
- poziva metoda
- • između platformi, tehnologija, programskih
- jezika …
- – osnovni preduvjet – postojanje mosta
- (runtime bridge) između tehnologija ili
- uporaba tehnika poziva udaljenih
- procedura (remote procedure call)
- – RPC primjeri: XML-RPC, JSON-RPC, SOAP
- …
- 74
- XML-RPC
- • Udaljeni poziv procedura pomoću XML-a ili XML-RPC
- – specifikacija koja omogućava programima koji se
- izvode na različitim operacijskim sustavima i u
- različitim okruženjima da međusobno izmjenjuju
- pozive procedura preko mreže
- – prijenosni protokol HTTP, poruke u jeziku XML
- – cilj osigurati komunikaciju među različitim
- programskim sustavima – zapravo nije riječ o
- usluzi
- – preteča SOAP-a
- • Načelna arhitektura
- Podaci
- Podaci
- Podaci
- HTTP
- XML
- XML
- Podaci
- Program1
- Podaci
- Podaci
- XML-RPC
- Program2
- 75
- XML-RPC primjer
- • Klijent
- • Poslužitelj
- public class Klijent {
- import org.apache.xmlrpc.*;
- public class Zbrajalo {
- public static void main (String [] args) {
- try {
- XmlRpcClient server =
- new XmlRpcClient("http://localhost/RPC2");
- Vector params = new Vector();
- params.addElement(new Integer(17));
- params.addElement(new Integer(13));
- Object result = server.execute("sample.sum", params);
- int sum = ((Integer) result).intValue();
- System.out.println("The sum is: "+ sum);
- } catch (Exception exception) {
- System.err.println("Klijent: " + exception);
- }
- }
- public Integer sum(int x, int y) {
- return new Integer(x+y);
- }
- public static void main (String [] args) {
- try {
- System.out.println("Starting XML-RPC Server...");
- WebServer server = new WebServer(80);
- server.addHandler("sample", new JavaServer());
- server.start();
- System.out.println("Started successfully.");
- System.out.println("Accepting requests.");
- } catch (Exception exception) {
- System.err.println("JavaServer: " + exception);
- }
- }
- }
- }
- 76
- XML-RPC primjer
- • Poruka zahtjeva
- • Poruka odgovora
- <?xml version="1.0" encoding="UTF-8"?>
- <methodCall>
- <methodName>
- sample.sum
- </methodName>
- <params>
- <param>
- <value>
- <int>17</int>
- </value>
- </param>
- <param>
- <value>
- <int>13</int>
- </value>
- </param>
- </params>
- </methodCall>
- <?xml version="1.0" encoding="UTF-8"?>
- <methodResponse>
- <params>
- <param>
- <value>
- <int>30</int>
- </value>
- </param>
- </params>
- </methodResponse>
- 77
- Najčešće tehnologije
- interoperabilnosti #3
- • Međuoprema orijentirana prema porukama
- (message-oriented middleware)
- – interoperabilnost na razini asinkrone
- razmjene poruka
- – transakcijska okolina
- – sigurnost (kriptiranje podataka i
- autentikacija)
- – pouzdan prijenos podataka (tolerancije na
- mrežne nedostupnosti)
- – nedostaci:
- • teže ostvariva sinkrona komunikacija
- • potencijalni problemi s mrežnom sigurnošću
- (vatrozid)
- 78
- Najčešće tehnologije
- interoperabilnosti #4
- • Dijeljene baze podataka (shared databases)
- – interoperabilnost na razini razmjene
- pohranjenih zapisa s podacima
- – programska sučelja za pristup bazama
- podataka
- • ODBC (Open Database Connectivity), JDBC
- (Java Database Connectivity), mehanizmi
- sinkronizacije baza podataka …
- – preduvjet
- • zajednička dijeljenja jedinstvene baze
- podataka koja koriste istu shemu, odnosno
- model podataka
- – koji razumiju svi sudionici u komunikaciji
- 79
- Najčešće tehnologije
- interoperabilnosti #5
- • Integracijski brokeri (brokers)
- – interoperabilnost kroz razmjenu
- podataka na aplikacijskoj razini
- – brokeri povezuju heterogene tehnologije
- korištenjem izgrađenih sučelja i adaptera
- – služe kao međusloj između različitih
- aplikacija ili sustava
- 80
- USLUGE
- Uvod i definicije, stanja usluga
- Arhitekture raspodijeljenih sustava
- Interoperabilnost usluga
- Međuoprema i komunikacija porukama
- 81
- Međuoprema
- • Definicija međuopreme (middleware):
- /
- – klijent poslužitelj –"slash", "softversko ljepilo", "ono
- između"
- – softver koji posreduje između aplikacijskog programa
- i mreže, tako da upravlja interakcijom nesukladnih
- aplikacija kroz heterogene računalne platforme
- – računalni softver koji spaja softverske komponente i
- njihove aplikacije. Sastoji se od skupa usluga koje
- omogućavaju izvođenje višestrukih procesa na jednom
- ili više računala koje međusobno surađuju.
- Omogućava interoperabilnost kao podršku prelasku
- na usklađene raspodijeljene arhitekture koje izvode
- kompleksne raspodijeljene aplikacije.“
- • Sinonimi: međuprogram, međuprogramska podrška,
- posrednička programska podrška i posrednički
- međusloj
- 82
- Definicija i uloga
- međuopreme
- • Međuoprema je
- – programska podrška (softver) koja posreduje
- između dviju strana i tako omogućuje da
- pojedine softverske komponente ili aplikacije
- surađuju u jedinstvenom funkcionalnom
- smislu, bez obzira na to što je riječ o
- nesukladnim dijelovima koji se izvršavaju na
- tehnološki nespojivim platformama
- • Uloga – omogućuje informacijskim sustavima
- transparentnu komunikaciju bez obzira na fizičku
- udaljenost i nesukladnost komunikacije i platformi
- na kojima su izvedeni
- • Koristi:
- – neovisnost o infrastrukturi mreže
- – pojednostavljena komunikacija
- – zadržavanje semantičke interoperabilnosti
- 83
- Osnovni tipovi međuopreme
- •
- •
- •
- •
- •
- •
- Podatkovna međuoprema
- – spoj podatkovnih izvora i isporuka podataka
- – najčešće povezuju baze podataka i aplikacije
- Objektno orijentirana međuoprema
- – primanje i slanje objekata te zahtijevanja usluga u
- sustavima objektno orijentiranog okruženja
- Međuoprema zasnovana na pozivima udaljenih procedura
- – pozivi procedura koji se nalaze na udaljenim
- računalima, asinkrono i sinkrono
- Transakcijska međuoprema
- – razmjena podataka zasnovana na transakcijama
- Međuoprema usmjerena porukama
- – razmjena poruka opće namjene pohranom poruka u
- međuspremnik
- Portalski i aplikacijski poslužitelji
- – poslužiteljski softver koji omogućuju izvršavanje drugih
- aplikacija najčešće izvedenih s Web korisničkim
- sučeljima
- 84
- Komunikacija zasnovana na
- porukama
- – Međuoprema zasnovana na redovima poruka MQM
- (Message Queuing Middleware)
- – arhitekture pohrane i prosljeđivanja (store-and-forward)
- i redova poruka (message queues)
- – redovi poruka su međuspremnici između strana u
- komunikaciji – prihvaćaju i isporučuju poruke
- • Softverske komponente na svakoj strani – dva tipa:
- – pošiljatelji (sender) ili proizvođači (producer) –
- pohranjuju poruke u red poruka
- – primatelji (receiver) ili potrošači (consumer) – dohvaćaju
- poruke iz tog reda poruka
- • Komunikacija u načelu asinkrona
- • Prijenos poruka pouzdan
- – posrednik se oporavlja od pogrešaka
- • promjena ili gubitak poruke, pogrešna isporuka
- – koriste se postojani redovi
- • tehnološka podloga baza podataka ili datotečni sustav
- 85
- Komunikacija zasnovana na
- porukama
- Komunikacijski protokol nije nužno određen
- – moguće koristiti neki poznati komunikacijski protokol
- •
- • iako nepouzdani, u ovom slučaju su pouzdani
- Red poruka – međuspremnik za pristigle, a nepreuzete
- poruke
- – pohrana na neodređeno vremensko razdoblje – prije nego
- što se dohvati
- – dohvaća se kada je primatelj postao dostupan
- – ne mora se nužno dohvaćati u poretku pristizanja
- – najčešće sadržavaju informaciju o prioritetu
- •
- • postavlja pošiljatelj, a posrednik upravlja porukama, npr. mijenja
- prioritet
- – Izvedbe
- •
- •
- •
- •
- programsko sučelje JMS (Java Message Service)
- protokol AMQP (Advanced Message Queuing Protocol) – otvorena
- norma
- komercijalni: IBM WebSphere MQ, Oracle AQ, MSMQ ...
- OSS: JORAM, ActiveMQ, ØMQ, Qpid, HornetQ, RabbitMQ...
- 86
- —————————
- HTTP 2.0
- Interoperabilnos
- t informacijskih
- sustava
- Aleksander Radovan
- HTTP 2.0
- Problemi postojećih protokola
- SPDY i HTTP 2
- Ostvarivanje HTTP 2 konekcije
- Okviri
- Tokovi i server push
- 2
- Problemi postojećih protokola
- • HTTP 1.1 zahtijeva „trošenje” puno
- vremena na uspostavu konekcije
- 3
- Problemi postojećih protokola
- • Pouzdanost isporuke i poredak podataka
- kod TCP protokola izaziva dodatne
- probleme:
- 4
- Problemi postojećih protokola
- • Ako se izgubi neki paket, poslužitelj ne
- može primiti nove pakete dok ne primi
- izgubljeni paket:
- 5
- Problemi postojećih protokola
- • TCP također tek postepeno povećava
- veličinu paketa kad se ustanovi da
- postoji kapacitet za to („Slow start”):
- 6
- HTTP 2.0
- Problemi postojećih protokola
- SPDY i HTTP 2.0
- Ostvarivanje HTTP 2 konekcije
- Okviri
- Tokovi i server push
- 7
- SPDY
- • Protokol razvijen od strane Googlea
- kako bi riješio probleme s
- performansama na webu
- • HTTP 2.0 je razvijen na temelju SPDY
- protokola
- • Chrome preglednik će prestati
- podržavati SPDY do kraja 2016. godine
- 8
- HTTP 2.0
- • Binarni protokol
- • Zadržava istu semantiku (metode, zaglavlja,
- resursi) kao i HTTP 1.x protokol
- • Rješava probleme TCP protokola
- • RFC 7540 i 7451 (HPACK) dokumenti su
- objavljeni u svibnju 2015.
- • Podržava ga većina Internet preglednika i
- poslužitelja web aplikacija
- • Podržava ga većina najpopularnijih stranica
- • https://http2.akamai.com/demo
- • http://isthewebhttp2yet.com/measurements/
- adoption.html
- 9
- HTTP 2.0 demo
- • https://http2.akamai.com/demo
- • http://http2.golang.org/gophertiles
- 10
- HTTP 2.0
- Problemi postojećih protokola
- SPDY i HTTP 2
- Ostvarivanje HTTP 2 konekcije
- Okviri
- Tokovi i server push
- 11
- Ostvarivanje HTTP 2 konekcije
- • Umjesto u tekstualnom formatu kao kod
- HTTP 1.X protokola, kod HTTP 2 se
- podaci izmjenjuju u binarnom obliku
- 12
- Ostvarivanje HTTP 2 konekcije
- • Kako bi mogao raditi na postojećoj
- arhitekturi, HTTP 2 protokol
- podrazumijeva slanje „upgrade”
- zaglavlja
- • Ako poslužitelj podržava HTTP 2,
- odgovorit će statusom 101 za promjenu
- protokola
- 13
- Ostvarivanje HTTP 2 konekcije
- • U slučaju da poslužitelj ne podržava
- HTTP 2 protokol, odgovara uobičajenim
- statusima (200, 404 itd.)
- • U slučaju HTTPS-a, na poslužitelju se
- mora instalirati proširenje za TLS
- (Transport Level Security): ALPN
- (Application Layer Protocol Negotiation)
- • ALPN omogućava uspostavu protokola
- tijekom TLS „handshake” procesa
- 14
- HTTP 2.0
- Problemi postojećih protokola
- SPDY i HTTP 2
- Ostvarivanje HTTP 2 konekcije
- Okviri
- Tokovi i server push
- 15
- Okviri
- • Okviri (engl. frames) predstavljaju
- osnovnu jedinicu podataka za
- komunikaciju kod HTTP 2 protokola
- • Ima ih 10 različitih vrsta
- • Svaki okvir se sastoji od serije polja za
- zaglavlje
- 16
- Okviri
- • Svaka HTTP 2 poruka (zahtjev i odgovor)
- se sastoji od serije okvira:
- 17
- Podatkovni okvir
- • Podatkovni okvir služi za prijenos
- podataka od poslužitelja do klijenta
- • Osim podataka prenosi i „padding”
- kojim se štiti od raznih napada
- 18
- Okvir zaglavlja
- • Zahtjev može imati jedan ili više okvira
- sa zaglavljima
- 19
- Okvir zaglavlja
- • Prije svih ostalih polja u zaglavlju se kod
- HTTP 2 protokola koriste „pseudo” polja
- u zaglavljima i sadrže sljedeće podatke:
- 20
- Okvir za postavke
- • Također postoji i okvir za postavke koji
- sadrži podatke korištene prilikom
- uspostavljanja veze:
- 21
- HTTP 2.0
- Problemi postojećih protokola
- SPDY i HTTP 2
- Ostvarivanje HTTP 2 konekcije
- Okviri
- Tokovi i server push
- 22
- Tokovi
- • HTTP 2 podržava TCP vezu koja se
- sastoji od više tokova (engl. streams), a
- svaki tok može sadržavati više okvira
- • Time se omogućava maksimiziranje
- paraleliziranja zahtjeva
- 23
- Server push
- • Tehnika koja omogućava slanje resursa
- od poslužitelja prema klijentu, bez da ih
- je klijent zatražio
- • Umjesto da klijent osim HTML stranice
- traži sve ostale povezane resurse, kod
- HTTP 2 protokola poslužitelj ih odmah
- šalje s prvim zahtjevom
- 24
- —————————
- USLUGE WEBA
- (WEB SERVICES)
- Interoperabilnost
- informacijskih
- sustava
- Aleksander Radovan
- USLUGE WEBA
- (WEB SERVICES)
- Definicije
- SOAP
- WSDL
- Usluge Weba 2.0
- 2
- Usluge Weba – definicija
- • Usluge Weba (Web Services, WS)
- – programski sustavi oblikovani na način da
- podržavaju interoperabilne (stroj prema stroju)
- interakcije putem mreže
- – sadrže sučelja koja su opisana u obliku koji je
- moguće obraditi u računalu
- • prvenstveno WSDL
- • Drugi sustavi mogu komunicirati s uslugom Weba
- – na način koji je opisan u njenom opisu
- •
- •
- •
- •
- korištenjem SOAP poruka
- najčešće korištenjem protokola HTTP
- sa XML serijalizacijom
- u suradnji s ostalim normama usmjerenim Webu
- Definicija W3C
- 3
- Značajke usluga Weba
- • Usluge Weba (WS) nisu namijenjene
- krajnjim korisnicima – ljudima!
- – to nisu aplikacije Weba (Web
- applications)
- • Namjena – omogućiti korištenje podataka i
- operacija drugim programima
- – aplikacije ili druge usluge Weba
- • Usluge Weba nisu SOA u punom smislu
- – ali se često poistovjećuju
- – SOA je širi pojam
- – zapravo WS je najrašireniji izvedbeni
- oblik SOA
- 4
- Usluga Weba – konkretnija
- definicija
- • Izvedba:
- – softverski (ili rijetko hardverski) sustav
- koji može primati i slati poruke
- – prema specifikaciji je čest naziv agent
- • Usluga – resurs opisan skupom
- funkcionalnosti koje može pružati
- – ostaje ista bez obzira koji se agent
- koristi za pristup
- – moguće zamijeniti agenta (tehnološki)
- • npr. drugi programski jezik, platforma,
- tehnologija …
- 5
- Sudionici u izvođenju usluge
- Weba
- • Usluga Weba izvodi funkcionalnost za svog
- vlasnika
- • Uloge sudionika WS
- – pružatelj usluge (service provider) – vlasnik
- usluge
- • implementirao WS putem svog agenta
- – zahtjevatelj usluge (service requester) –
- korisnik usluge
- • ima svog vlastitog agenta za komunikaciju
- • Zahtjevatelj usluge koristi agenta zahtjevatelja koji
- komunicira s agentom pružatelja usluge
- – agenti su najčešće programski
- – način komunikacije agent-agent svojstven
- uslugama Weba
- • nema izravnog odnosa s korisnikom ili vlasnikom
- 6
- Ostale definicije
- • Način opisivanja usluge WSD (Web Service
- Description)
- – računalno obradiv opis usluge
- • Jezik za opis usluga WSDL (Web Service
- Description Language)
- • Ugovor o korištenju usluge
- – manje formalan nego kod SOA (vidjet ćemo
- kasnije)
- – eksplicitan ili implicitan, usmen ili pisan
- • ne mora nužno biti u pisanoj formi ili posebno
- dogovoren
- – podoban za obradu na računalu ili napisan da
- bude razumljiv ljudima
- – legalno obvezujući ili samo informativan
- – važna je dobro definirana semantika!
- 7
- Korištenje usluge Weba
- • Koraci:
- 1. međusobno otkrivanje sudionika u procesu
- – norma usluga Weba ovo olakšava
- – dopušta da samo jedna strana bude poznata drugoj
- 2.
- •
- najčešće zahtjevatelj treba otkriti pružatelja
- način dogovora oko opisa sučelja usluge i ugovora za
- njeno korištenje
- – usuglašavanje načina komunikacije među agentima
- zahtjevatelja i pružatelja usluge
- 3. usuglašene uvjete programski ugraditi u svaki od
- agenata
- 4. agenti mogu početi međusobno izmjenjivati poruke
- – zahtjevatelj može početi koristiti uslugu pružatelja
- • Neki od koraka mogu se u potpunosti automatizirati,
- a neki se ipak moraju provesti ručno (npr.
- implementacija agenta)
- 8
- Model procesa korištenja
- usluge Weba
- 1. međusobno otkrivanje
- Zahtjevatelj
- 2. Dogovor oko ugovora i WSD
- Ugovor
- Osoba
- 3. Ugradnja
- Ugovora
- i WSD
- Pružatelj
- WSD
- Osoba
- Ugovor
- Ugovor
- WSD
- WSD
- Agent
- zahtjevatelja
- 3. Ugradnja
- Ugovora
- i WSD
- 4. Korištenje
- Agent
- pružatelja
- 9
- USLUGE WEBA
- (WEB SERVICES)
- Definicije
- SOAP
- WSDL
- Usluge Weba 2.0
- 10
- SOAP
- • Simple Object Access Protocol – SOAP
- – „lagani” komunikacijski protokol
- raspodijeljenih okruženja
- – zasnovan na jeziku XML
- – služi za izmjenu informacija među
- entitetima na mreži
- • Transportni protokol
- – najčešće protokol HTTP (HTTPS) …
- • Informacija – SOAP poruka
- – tekstualna informacija zapisana u jeziku XML
- • Oslanja se na jezik XML i njegove norme
- – XML Schema
- – XML Namespace
- 11
- SOAP – ideja i cilj
- • Interoperabilnost!
- • Neovisan o operacijskim sustavima i
- tehnologijama u kojima su aplikacije
- izvedene
- • Jednostavnost i nadogradivost
- – Two major design goals for SOAP are
- simplicity and extensibility
- 12
- SOAP – povijest i inačice
- • 1998. – osnovna ideja
- – Dave Winer, Don Box, Bob Atkinson i
- Mohsen Al-Ghosein
- – suradnja velikih softverskih tvrtki
- (Microsoft, HP, IBM, SAP ...)
- • 2000. – specifikacija SOAP 1.1
- • 2003. – specifikacija SOAP 1.2
- – SOAP više nije akronim
- • 2007. – specifikacija SOAP 1.2 – 2. izdanje
- (aktualno)
- – http://www.w3.org/TR/soap12
- 13
- SOAP 1.2
- • Specifikacija SOAP Version 1.2 ima 3 dijela
- • Part 0 definira SOAP 1.2 Primer
- – nenormativni dokument s jednostavnim
- tutorijalom značajki SOAP 1.2
- • Part 1 definira SOAP Messaging Framework
- – SOAP Processing Model – pravila za
- procesiranje poruka
- – SOAP Extensibility Model – koncepti značajki i
- modula
- – SOAP Protocol Binding Framework – pravila
- za definiranje povezivanja na protokole
- – SOAP Message Construct – struktura poruka
- • SOAP 1.2 Part 2 – opis skupa dodataka koji se
- mogu koristiti sa SOAP Messaging
- Frameworkom.
- 14
- SOAP poruke
- • Primjer: zapis podataka o studentima u XML-u
- • Kako?
- – programeru prepuštena briga o sintaksi ...
- <student> Ivan Horvat 1234567</student>
- <student>
- <ime>Ivan</ime>
- <prezime>Horvat</prezime>
- <mbr>1234567</mbr>
- </student>
- <student ime="Ivan" prezime="Horvat"
- mbr="1234567" />
- • Valjanost?
- 15
- SOAP poruka - struktura
- •
- •
- SOAP poruka
- – (izvana) običan XML
- dokument
- Struktura
- – omotnica – definira da
- je XML dokument
- zapravo SOAP poruka
- – zaglavlje (neobvezno)
- – definira na koji će
- način informacije iz
- poruke biti procesirane
- – tijelo poruke
- • poruka
- • pogreška (neobvezno)
- – sadržava informaciju
- o pogrešci koja se
- mogla dogoditi
- tijekom prijenosa i
- obrade informacije
- SOAP omotnica
- SOAP zaglavlje
- blok zaglavlja
- blok zaglavlja
- SOAP tijelo
- poruka
- pogreška
- 16
- SOAP poruka – izgled
- SOAP omotnica
- SOAP zaglavlje
- blok zaglavlja
- blok zaglavlja
- SOAP tijelo
- poruka
- pogreška
- • Pravila:
- – u jeziku XML
- – ne sadrži referencu
- na DTD ni naredbe
- procesiranja
- • Mnogo dodatnih
- informacija
- – višak (overhead)
- • Elementi precizno
- definirani u osnovnim
- prostorima naziva:
- – SOAP omotnica
- – SOAP kodiranje i
- tipovi podataka
- • Neobvezni dijelovi –
- sivo
- 17
- SOAP poruka – omotnica
- • SOAP omotnica
- – SOAP 1.1 - http://schemas.xmlsoap.org/soap/envelope/
- – SOAP 1.2 - http://www.w3.org/2003/05/soap-envelope
- – sadržava točno jedno tijelo
- – ako se koristi zaglavlje, ono se mora nalaziti
- neposredno ispod omotnice
- <soap:Envelope
- xmlns:soap="http://www.w3.org/2003/05/soapenvelope"
- soap:encodingStyle="http://www.w3.org/2003/05/soapencoding">
- ...
- </soap:Envelope>
- 18
- SOAP poruka – zaglavlje i
- pogreške
- • SOAP zaglavlje
- – svrha poruke
- – identifikator prijenosa
- – informacija o pošiljatelju i primatelju
- poruke
- • Pogreške:
- • VersionMismatch – pogrešna inačica
- protokola
- • MustUnderstand – poruka nije razumljiva
- • Server – pogreška na poslužitelju
- • Client – problem sa samom porukom
- 19
- SOAP poruka – primjer
- izvedbe
- • 2 razreda (klase): poslužitelj i klijent
- • Na poslužitelju HelloWorldSOAPService
- – prima poruku i vraća String
- – metoda sayHello()
- public class HelloWorldSOAPService {
- public String sayHello(String firstName, String lastName) throws
- Exception {
- String aString = firstName + " " + lastName + ", dobar dan!";
- return aString;
- }
- public String addString(String symbol, String dataType) throws
- Exception {
- String aString = symbol + dataType;
- return aString;
- }
- }
- 20
- SOAP poruka – primjer
- • TestClient
- – pokreće se
- pomoću
- parametara
- – zahtjev se pakira
- u
- poruku
- – prima se
- odgovor
- – ispis
- public class TestClient {
- public static void main(String args[]) {
- try {
- Options opts = new Options( args );
- args = opts.getRemainingArgs();
- Service service = new Service();
- Call call = (Call) service.createCall();
- call.setTargetEndpointAddress( new java.net.URL(opts.getURL()) );
- if( args[0].equals("1") )
- call.setOperationName( new QName("urn:HelloWorld", "sayHello"));
- else
- call.setOperationName( new QName("urn:HelloWorld", "addString"));
- call.addParameter( “p1", XMLType.XSD_STRING, ParameterMode.IN );
- call.addParameter( “p2", XMLType.XSD_STRING, ParameterMode.IN );
- call.setReturnType( XMLType.XSD_STRING );
- call.setUsername( opts.getUser() );
- call.setPassword( opts.getPassword() );
- String res = (String) call.invoke( new Object[] { args[1], args[2] } );
- System.out.println( "Return is: " + res );
- } catch( Exception e ) {
- e.printStackTrace();
- }
- }
- }
- 21
- SOAP poruka – upit
- <?xml version="1.0" encoding="UTF-8"?>
- <soapenv:Envelope
- xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
- …>
- …
- <soapenv:Body>
- <ns1:sayHello
- …
- xmlns:ns1="urn:HelloWorld">
- <p1 xsi:type="xsd:string">
- Ivan
- </p1>
- <p2 xsi:type="xsd:string">
- Horvat
- </p2>
- </ns1:sayHello>
- </soapenv:Body>
- </soapenv:Envelope>
- 22
- SOAP poruka – odgovor
- <soapenv:Envelope
- …>
- …
- <soapenv:Body>
- <ns1:sayHelloResponse
- …
- xmlns:ns1="urn:HelloWorld">
- <ns1:sayHelloReturn xsi:type="soapenc:string"
- xmlns:soapenc="http://www.w3.org/2003/05/soap-encoding">
- Ivan Horvat, ovako izgleda jedan jednostavan primjer SOAP
- poruke koju
- je poslala usluga!
- </ns1:sayHelloReturn>
- </ns1:sayHelloResponse>
- </soapenv:Body>
- </soapenv:Envelope>
- 23
- SOAP poruka – prijenos
- poruka
- • SOAP vrlo fleksibilan prema prijenosnom
- protokolu
- – određuje ga izvedba (programer)
- – najčešće HTTP (zahtjev-odgovor), smjernice
- – puno rjeđe SMTP (inicijalno naveden)
- – potencijalno FTP, POP3 ili izravno putem
- protokola TCP
- – postoji i:
- •
- •
- •
- •
- SOAP-over-AMQP
- SOAP-over-UDP
- SOAP preko Jabber XMPP
- …
- 24
- SOAP poruka – primjer poruke
- zahtjeva
- POST /HelloWorld HTTP1.1
- Host: www.racunarstvo.hr
- Content-Type: text/xml
- Content-Lenght: 543
- SOAPAction: …
- <soapenv:Envelope
- xmlns:soapenv="http://www.w3.org/2003/05/soapenvelope">
- ...
- </soapenv:Envelope>
- •
- SOAPAction govori poslužitelju HTTP zahtjeva što
- treba napraviti prije nego što pokuša dekodirati
- dobivenu poruku
- 25
- SOAP poruka – primjer poruke
- odgovora
- HTTP/1.1 200 OK
- ...
- <soapenv:Envelope
- xmlns:soapenv="http://www.w3.org/2003/05/
- soap-envelope">
- ...
- </soapenv:Envelope>
- 26
- USLUGE WEBA
- (WEB SERVICES)
- Definicije
- SOAP
- WSDL
- Usluge Weba 2.0
- 27
- Web Services Description
- Language (WSDL)
- • Web Services Description Language WSDL
- – jezik za opis usluga weba
- • Usluga weba opisana skupom komunikacijskih
- krajnjih točaka (ports)
- • Krajnja točka se sastoji od dva dijela:
- – apstraktne definicije operacija i poruka
- – specifikacije mrežnog protokola i pojedine
- krajnje točke te formata poruke
- • Opisuje komunikacijske detalje između klijenta
- i usluge
- – strojevi (računala) mogu pročitati WSDL
- – mogu pozvati uslugu definiranu WSDL-om
- • Jedan je od mehanizama koji omogućuje da se
- usluga može otkriti pomoću registra
- 28
- WSDL kao norma
- • WSDL 1.1
- – Web Services Definition Language
- – kao norma predložen 2000. (Microsoft, IBM, Aruba
- …)
- – W3C preporuka 2001.
- • WSDL 2.0
- – W3C preporuka 2007.
- – razlike:
- semantika (viša razina)
- pojednostavljenje poruka
- ukidanje podrške za preopterećenje
- preimenovanje pojedinih ključnih riječi (sučelja, zaključne
- točke ...)
- • može koristiti sve metode zahtjeva HTTP (ne samo GET i
- POST)
- •
- •
- •
- •
- • U širokoj primjeni su još uvijek obje norme
- 29
- WSDL – ključni dijelovi usluge
- • WSDL opisuje 4 ključna dijela svake usluge:
- – sučelja usluge
- • definiraju sve javno dostupne funkcije koje usluga
- može pružiti korisnicima
- – oblik podataka
- • format za korištenje u svim porukama koje se
- razmjenjuju
- – protokol
- • za pristup usluzi
- – adresne informacije
- • kako bi se usluga mogla pronaći i početi koristiti
- • Svaki WSDL dokument ima 2 dijela:
- – apstraktni opis usluge – općenito
- – konkretni opis usluge – detaljno dijelovi usluge
- 30
- WSDL 1.1 i WSDL 2.0 – usporedba
- strukture
- WSDL 1.1
- WSDL 2.0
- definition
- description
- types
- types
- operation
- input
- output
- interface
- operation
- input
- output
- binding
- binding
- service
- port
- service
- endpoint
- Konkretni
- opis
- portType
- Apstraktni
- opis
- message
- 31
- WSDL – dijelovi opisa usluge
- • 6 dijelova opisa usluge Weba:
- – description (definition)
- – types
- – message
- – interface (portType)
- – binding
- – service
- WSDL 1.1
- WSDL 2.0
- definition
- description
- types
- types
- operation
- input
- output
- interface
- operation
- input
- output
- binding
- binding
- service
- port
- service
- endpoint
- Konkretni
- opis
- portType
- Apstraktni
- opis
- message
- 32
- WSDL – primjer
- <?xml version="1.0" encoding="utf-8" ?>
- <description
- xmlns="http://www.w3.org/ns/wsdl"
- targetNamespace= "http://greath.example.com/2004/wsdl/resSvc"
- xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc"
- xmlns:ghns = "http://greath.example.com/2004/schemas/resSvc"
- xmlns:wsoap= "http://www.w3.org/ns/wsdl/soap"
- xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
- xmlns:wsdlx= "http://www.w3.org/ns/wsdl-extensions">
- <documentation> This document describes ... </documentation>
- <types>
- <xs:schema
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://greath.example.com/2004/schemas/resSvc"
- xmlns="http://greath.example.com/2004/schemas/resSvc">
- <xs:element name="checkAvailability" type="tCheckAvailability"/>
- <xs:complexType name="tCheckAvailability">
- <xs:sequence>
- <xs:element name="checkInDate" type="xs:date"/>
- <xs:element name="checkOutDate" type="xs:date"/>
- <xs:element name="roomType" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
- <xs:element name="checkAvailabilityResponse" type="xs:double"/>
- <xs:element name="invalidDataError" type="xs:string"/>
- </xs:schema>
- </types>
- <interface name = "reservationInterface" >
- <fault name = "invalidDataFault"
- element = "ghns:invalidDataError"/>
- <operation name="opCheckAvailability"
- pattern="http://www.w3.org/ns/wsdl/in-out"
- style="http://www.w3.org/ns/wsdl/style/iri"
- wsdlx:safe = "true">
- <input messageLabel="In"
- element="ghns:checkAvailability" />
- <output messageLabel="Out"
- element="ghns:checkAvailabilityResponse" />
- <outfault ref="tns:invalidDataFault" messageLabel="Out"/>
- </operation>
- </interface>
- <binding name="reservationSOAPBinding"
- interface="tns:reservationInterface"
- type="http://www.w3.org/ns/wsdl/soap"
- wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/">
- <fault ref="tns:invalidDataFault"
- wsoap:code="soap:Sender"/>
- <operation ref="tns:opCheckAvailability"
- wsoap:mep="http://www.w3.org/2003/05/soap/mep/soap-response"/>
- </binding>
- <service name="reservationService" interface="tns:reservationInterface">
- <endpoint name="reservationEndpoint"
- binding="tns:reservationSOAPBinding"
- address ="http://greath.example.com/2004/reservation"/>
- </service>
- </description>
- 33
- WSDL element – description
- • Glavni element description
- – kod WSDL 1.1 definition
- – definira se naziv usluge Weba
- – označuju se prostori naziva (namespace) koji
- se koriste za opis funkcionalnosti usluge
- • definicija osnovnog prostora naziva
- – za sve elemente bez prefiksa
- – xmlns=http://www.w3.org/ns/wsdl
- • definicija dodatnih prostora naziva
- – npr. ciljni prostor (target namespace), soap, soapenvelope, wsdlx
- – prostori naziva pod nadzorom vlasnika usluge
- (autoritativni izvor)
- – zatvara sve ostale dijelove opisa usluge
- – mora se nalaziti na početku (root element)
- 34
- WSDL element – types
- • Element types
- – opisuje sve tipove podataka koji će se
- koristiti tijekom izvođenja usluge Weba
- – navodi se XML Schema koja će se koristiti
- unutar dokumenta
- • ako se koristi standardna W3C XML Schema i u
- njoj definirani jednostavni tipovi podataka
- (integer, String …), oni se podrazumijevaju te ih
- ne treba posebno definirati
- • Dva načina kreiranja poruka:
- – kao dijete elementa description
- – korištenjem mehanizma import u XML
- Schemi
- • Svaka poruka – jedan element element
- – npr. <xs:element name="ime" type="tip"/>
- 35
- WSDL element – message
- • Element message
- – samo u WSDL 1.1, izdvojen kao zasebna
- cjelina
- – u WSDL 2.0 ga nema - za poruke se koristi
- XML Schema
- – opisuje poruku
- • ne vodi brigu hoće li poruka biti poslana ili
- primljena
- – definira se naziv poruke
- – definira se nijedan, jedan ili više dijelova
- poruke
- • specificiraju se parametri same poruke ili
- očekivani segmenti odgovora na poruku
- 36
- WSDL elementi – interface i
- portType
- • Elementi interface i portType
- – apstraktni opis sučelja usluge
- • razlika WSDL 1.1 i WSDL 2.0
- – naziv sučelja i operacije
- • bez razmaka i dvotočke
- – definiranje operacije koje usluga može
- izvesti
- • svaka operacija definirana pomoću svojih ulaza i
- izlaza
- • opis slijeda poruka (pattern) koje će se
- razmjenjivati
- – unutar jednog elementa moguće definirati
- više operacija
- • onoliko koliko će ih usluga pružati svojim
- korisnicima
- 37
- WSDL elementi – binding i
- service
- •
- Element binding
- – konkretan način izvedbe usluge
- – način korištenja i izgled poruke SOAP
- • za svaku poruku definiranog sučelja (interface)
- – definicija protokola koji se koristi za slanje
- • za SOAP type="http://www.w3.org/ns/wsdl/soap"
- • za HTTP
- wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/"
- •
- Element service
- – definira adresu usluge
- • najčešće URL na kojemu je dostupna funkcionalnost usluge
- • npr. address ="http://www.racunarstvo.hr/reservation"
- – jedno sučelje i lista završnih točaka (endpoints)
- • informacija o korištenim protokolima i prijenosnim oblicima za
- svaku točku
- – naziv usluge i završne točke moraju biti jedinstveni u
- prostoru naziva
- 38
- Prednosti i nedostaci WSDL-a
- •
- •
- •
- •
- Na jednostavan način precizno definira korištenje i pristup
- usluzi
- – no WSDL opis nije dovoljan na semantičkoj razini
- WSDL daje samo osnovni način korištenja usluge
- – informacije o tipovima i obliku poruka te sučelja
- usluge (protokole i adrese)
- Za potpuno razumijevanje načina funkcioniranja usluge
- treba dodatno definirati dokumentaciju o usluzi
- – može uključivati svrhu i način korištenja usluge
- – stvarno značenje svih poruka koje se koriste
- – ograničenja u radu usluge
- – ostale informacije korisniku kako bi razumio i ispravno
- koristio uslugu
- Element documentation (WSDL 2.0)
- – kreiranje ljudima čitljivog opisa usluge
- – često poveznica na vanjski poslužitelj (URL) s detaljnim
- informacijama
- – može poslužiti razvijateljima klijentskih aplikacija
- 39
- Web Service Semantics –
- WSDL-S
- • Cilj: riješiti problem što bržeg
- (automatiziranog) razumijevanja o kojoj je
- funkcionalnosti riječ u pronađenoj usluzi
- • Web Service Semantics – WSDL-S
- – skupina autora Sveučilišta u Georgiji
- – definicija odgovarajućeg semantičkog
- modela
- – uključivanje semantičkog modela u opis
- usluge
- • ne mijenja strukturu WSDL-a
- • nema problema s nekompatibilnosti (korištenje,
- alati ...)
- – za ontologiju se koristi OWL-S
- – definira značenje, preduvjete za rad, ulaze
- i izlaze, učinke izvedbe …
- 40
- USLUGE WEBA
- (WEB SERVICES)
- Definicije
- SOAP
- WSDL
- Usluge Weba 2.0
- 41
- Razvoj standarda usluga Weba
- • Prva generacija usluga Weba nije bila posve integrirana
- – razmjerno teško uključiti druge tvrtke u njihovo
- korištenje
- – uočen velik prostor za različita poboljšanja
- • U međuvremenu prijedlog velikog broja specifikacija
- „usluga Weba druge generacije”
- – usmjereni na rješavanje pojedinih pitanja
- – često sudjelovali veliki proizvođači softvera
- • nove prijedloge specifikacija su odmah i ugradili u svoje
- alate
- – stvorena je početna baza korisnika, s vremenom
- proširena
- • Jedan od glavnih ciljeva uspostave druge generacije
- usluga Weba bilo je stvaranje temelja za tzv. poduzeća
- usmjerenog uslugama (service-oriented enterprise)
- 42
- Temelj poduzeća usmjerenog
- uslugama
- •
- Poduzeće usmjereno uslugama
- – koncentrirano na uslugu – primaran generator nove
- vrijednosti koje to poduzeće stvara
- • donji sloj primarno usmjeren prema sigurnosti
- • gornji sloj namijenjen za integraciju s poslovnim sustavima
- poduzeća partnera
- Sigurnost uslužno
- orijentirane
- aplikacije
- Uslužno
- orijentirana
- integracijska
- arhitektura
- Uslužno
- orijentirana
- arhitektura
- poduzeća
- Model uslužno orijentirane sigurnosti (SOS)
- ...
- WS-Coordination
- WS-Transaction
- WS-ReliableMessaging
- BPEL4WS
- WS-Attachments
- WS-Policy
- WS-Security
- XACML,XrML,XKMS
- SAML, .NET Passport
- SSL
- XML-Encryption
- XML-Digital Signatures
- WS-Trust
- WS-Privacy
- WS-SecureConversation
- WS-Federation
- WS-Authorisation
- 43
- Usluge Weba druge generacije
- • Specifikacije usluga Weba druge generacije –
- WS-*
- – čita se kao "WS-Star"
- – osnovna namjena – povećati stupanj
- automatizacije poslovnog procesa
- • u odnosu na usluge Weba prve generacije
- • Udruga WS-I (Web Services Interoperability
- Organization)
- – pokretač razvoja specifikacija usluga Weba
- druge generacije
- – sredinom 2010. združena s OASIS
- 44
- WS-* primjer – informacija o
- stanju
- •
- •
- •
- Mogućnost zadržavanja informacije o stanju u kojem se usluga
- nalazila u nekom trenutku njezina izvođenja
- – praćenje stanja i jasan kontekst u kojem se usluga odvija –
- osnova za izvođenje raspodijeljenih transakcija
- – transakcijski mehanizmi zahtijevaju statefull usluge
- Specifikacija WS-Coordination – mehanizmi pomoću kojih usluga
- može sačuvati kontekst u kojem se odvija neka njezina aktivnost
- – novi koordinacijski model za usluge
- – sastoji od jednostavnih usluga odgovornih za kreiranje konteksta,
- odabira protokola te registracije koordinatora kontekstom
- – mogućnost korištenja definicije Coordination Type
- Specifikacija WS-Transaction definira dva različita koordinacijska
- tipa:
- – za kratkotrajne atomične transakcije
- • zasebna specifikacija WS-AtomicTransaction – osigurava koordinacijske
- protokole za provođenje širokog spektra transakcija poslovnih aktivnosti i
- podršku za jezike za modeliranje poslovnih procesa
- – za dugotrajne poslovne aktivnosti
- 45
- WS-* primjer – poslovni
- procesi
- • Definicija jezika za pretvaranje poslovnog procesa
- pomoću strukturiranog dijagrama toka u uslugu Weba
- • Jezik Business Process Execution Language for Web
- Services (BPEL4WS)
- – opis poslovnog procesa – slijed događaja zasnovan
- na predefiniranim uvjetima i ugrađenoj logici
- – definira rječnik koji omogućuje da opis nekog
- poslovnog procesa bude prenesen u oblik izvršivih
- skripta
- – skripte se izvode najčešće u nekom obliku procesa
- orkestracije
- – osnovne aktivnosti – jednostavni događaji
- • receive, invoke, reply, throw, wait
- – strukturirane aktivnosti – kreiranje dijelova
- poslovne logike
- • sequence, flow, switch, while
- 46
- WS-* primjer – sigurnost
- •
- Slaba podrška usluga Weba prve generacije za bilo kakav
- oblik sigurnosti
- – osim osnovnih mehanizama (nisu dio norme)
- – korištenje drugih dostupnih mehanizama
- – problemi s javnim objavama i korištenjem od korisnika
- Interneta
- • pogotovo ako je izložen dio vlastitog poslovnog procesa
- •
- Specifikacija WS-Security – uvodi cjelovit model sigurnosti
- temeljen na mnoštvu komplementarnih normi
- – osigurava sigurnosne mjere
- • sigurnost SOAP poruka na cijelom njihovom putu
- • uspostavljanje stupnja povjerenja među stranama koje koriste i
- kreiraju usluge
- – u velikoj mjeri se oslanja na veći broj XML sigurnosnih
- normi, npr.
- • XML Key Management (XKMS)
- • Extensible Access Control Markup Language (XACML)
- 47
- WS-* primjer – pouzdanost i
- sigurnost isporuke
- • Načinu isporuke poruka u sustavu – pouzdanost
- – osigurati potvrdu o prispijeću poruke na odredište
- • Specifikacija WS-ReliableMessaging – pouzdanost
- isporuke poruka
- – definira pravila za isporuku poruka
- – definira redoslijed dostavljanja poruka na odredište
- – oslanja se na poslovna pravila o načinu izvješćivanja o
- dostavljenoj poruci (specifikaciju WS-Policy)
- • Specifikacija WS-Policy
- zajedno s WS-PolicyAssertion i WS-PolicyAttachments
- – skup vlastitih poslovnih pravila, sigurnosnih
- politika i ostalih propisanih postupaka objedinjeni
- u jedinstvenom skupu politika
- – osigurati uspostavu politika
- • korištenjem policy konstruktora
- • uspostavom osiguranja dostave uspostavljenih politika
- • dodavanjem postojećih konstrukta u kreirane politike
- 48
- WS-* primjer – različiti oblici
- podataka
- • Protokolom SOAP nije moguće prenijeti baš sve
- oblike podataka
- • Specifikacija WS-Attachments – tipove podataka
- koje tradicionalno nije moguće prenijeti putem
- SOAP-a pretvara u privitke (attachments) klasičnim
- SOAP porukama
- – prijenos binarnih datoteka i drugih XML
- dokumenata
- – koristi učahurivanje DIME (Direct Internet
- Message Encapsulation)
- • jednostavniji oblik za učahurivanje podataka od MIME
- • prikladniji za uporabu s porukama SOAP
- • Specifikacija SOAP Messages with Attachments
- (SwA)
- – koristi učahurivanje MIME
- 49
- WS-* primjer – razine
- interoperabilnost
- • Specifikacija WS-Basic Profile (WS-BP)
- – još od 2002.
- – trenutno aktualna inačica WS-Basic Profile 2.0 iz
- 2010.
- • koristi SOAP 1.2, UDDI 3 i WS-Addressing
- – lista dostupnih specifikacija za usluge Weba po
- inačicama
- • svaka inačica nije nužno kompatibilna s onom
- prethodnom
- – smjernice za implementaciju interoperabilnih
- usluga Weba
- – ne prejudicira koji će se od raspoloživih normi
- koristiti za razvoj usluge Weba
- – dostupan u velikom broju različitih tehnoloških
- rješenja (Java, .NET … - SAP, Oracle, Microsoft,
- IBM, Apache, SpringWS, Software AG …)
- 50
- WS-* – kako?
- • Jedna od glavnih ideja razvoja sustava
- usmjerenih uslugama je mogućnost
- njihova „slaganja”
- – sastavljanja složenijih usluga iz
- proizvoljnog broja jednostavnih usluga
- – usluge dostupne putem registra, kreirane
- od različitih pružatelja usluga
- • Cilj: izraditi složene usluge što učinkovitije
- i bolje usmjerene prema cilju
- automatizacije poslovnih procesa
- 51
- WS-* – kako?
- • Pravila projektiranja usluge Weba:
- – ograničiti korištenje specifikacija usluga
- Weba samo na nužne
- – izvesti samo one dijelove specifikacije koji
- su potrebni za nesmetani rad
- – ne opterećivati nepotrebnim
- informacijama u zaglavlju SOAP
- • Jedan od glavnih zadataka uspješnog dizajna
- usluga Weba druge generacije je poznavanje
- specifikacija
- – na temelju iskustva uspješno se može
- procijeniti koje od (brojnih) specifikacija i
- njihovih dijelova treba koristiti
- 52
- Odnosi specifikacija
- SOAP
- koristi
- upravlja
- kontekstom
- u
- eđ
- i zm
- uzdanu dost
- avu
- ac
- nik
- mu
- Usluge Weba
- koristi
- WSCoordination
- ću
- je
- ko
- orkestrira
- osigurava po
- e
- gu
- uj
- opisuje
- Om
- o
- is
- za
- ko r
- isti
- op
- l
- WSDL
- p
- p o o ve
- u z ća
- d a va
- no
- st
- o
- ra mog
- sp
- u
- osigu
- tra odije ćava
- rava
- n
- s
- sigur
- kc l j e n e
- n o st
- ije
- s kra
- ja na
- kraj
- WSReliableMessaging
- vl j a
- ris
- ti
- WSTransaction
- ko
- ko l
- upravlja
- kontekstom
- us
- u
- ug
- na
- iju
- opisuje
- uslugu za
- BPEL4WS
- ž
- e
- es
- upra
- – samo rijetke usluge Weba
- zahtijevaju
- implementaciju svih
- spomenutih specifikacija
- – koriste se samo neke
- specifikacije
- pristupa mu
- se
- korištenjem
- ve
- osigurava
- protokole
- •
- koristi
- va proto
- •
- UDDI
- ću j e
- ogu
- om rivanje
- otk
- •
- Prvotno jednostavan
- sustav se dosta
- zakomplicirao
- Svaka nova specifikacija
- omogućuje rješavanje
- određenog problema
- Međusobni odnos
- nekih specifikacija
- usluga Weba druge
- generacije prema
- komponentama poznatim
- iz prve generacije (sivo)
- Ovisno o funkcionalnosti
- konkretne implementacije
- usluge Weba slika će
- izgledati bitno
- jednostavnije
- osigura
- •
- WS-Policy
- ti
- koris
- WS-Security
- 53
Add Comment
Please, Sign In to add comment