dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih...

36
Internet servisi Veb servisi dr Dušan Ljubičić Beogradska akademija poslovnih i umetničkih strukovnih studija

Transcript of dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih...

Page 1: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Internet servisi

Veb servisi

dr Dušan LjubičićBeogradska akademija poslovnih i

umetničkih strukovnih studija

Page 2: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Veb servisi

• Veb servisi su programi dostupni preko Interneta

• Omogućavaju drugim programima i uređajima da međusobno komuniciraju i razmenjuju podatke

• Veb servis - metod komunikacije između različitih uređaja, odnosno programa koji se izvršavaju na njima, preko world wide web-a

4/1/2020 Internet servisi – dr Dušan Ljubičić 2

Page 3: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Veb servis

• Veb servis - samostalan program

• za potrebe druge aplikacije (programa) obavlja određeni posao, kao što je provera stanja na računu, podizanje novca sa računa, plaćanje računa, provera stanja na zalihama, preuzimanje kursne liste, preuzimanje vremenske prognoze, preuzimanje sportskih rezultata, praćenje isporuke pošiljke, planiranje putovanja itd.

4/1/2020 Internet servisi – dr Dušan Ljubičić 3

Page 4: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Primer

• Da bi dobio informacije o trenutnoj temperaturi, klijent (npr. mobilna aplikacija) šalje zahtev serveru sa imenom grada za koji želi da dobije trenutnu temperaturu. Server obrađuje zahtev u skladu sa dobijenim podacima, odnosno preuzima iz baze trenutnu temperaturu za traženi grad i šalje je nazad mobilnoj aplikaciji, koja zatim prikazuje temperaturu

4/1/2020 Internet servisi – dr Dušan Ljubičić 4

Veb servisInternet

HTTP

Baza podataka

Klijenti

Page 5: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Kako se koriste i gde se nalaze

• Veb servisi sadrže tehničku dokumentaciju o tome kako se koriste

• Nalaze se i izvršavaju na veb serveru

• Objavljuju se i lako pronalaze

4/1/2020 Internet servisi – dr Dušan Ljubičić 5

Page 6: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Veb servis

4/1/2020 Internet servisi – dr Dušan Ljubičić 6

Page 7: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Veb servis NBS

4/1/2020 Internet servisi – dr Dušan Ljubičić 7

Page 8: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Veb servis za pristup kursnim listama

4/1/2020 Internet servisi – dr Dušan Ljubičić 8

Page 9: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Ne zavise od OS i jezika

• Veb servisi nisu vezani ni za jedan operativni sistem, niti program u kojem su napisani

• Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane

4/1/2020 Internet servisi – dr Dušan Ljubičić 9

.Net

Java

PHP

.Net

Java

PHP

Veb servisi

Page 10: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Čemu služe i ko ih piše

• Veb servisi smanjuju troškove razvoja aplikacija i predstavljaju univerzalni mehanizam za integraciju poslovnih procesa unutar i između organizacija

• Veb servise pišu kompanije, kao što su Amazon, Microsoft, IBM, Google, SAP, Oracle, HP i itd. i objavljuju ih u repozitorijuma (direktorijumi na Internetu) koji mogu da se pretražuju, ili ih nude preko svojih veb lokacija

4/1/2020 Internet servisi – dr Dušan Ljubičić 10

Page 11: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Servisno orijentisana arhitektura

• Servisno orijentisana arhitektura (Service-Oriented Architecture) je pristup razvoju softvera koji se ogleda u međusobnom povezivanju interoperabilnih servisa radi izvršavanja određenih poslovnih procesa

• Primenjujući SOA pristup organizacije obezbeđuju maksimalnu fleksibilnost, skalabilnost, tehnološku neovisnost i višestruku upotrebu istih veb servisa

4/1/2020 Internet servisi – dr Dušan Ljubičić 11

Page 12: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Servisno orijentisana arhitektura

• U SOA arhitekturi servisi predstavljaju izolovane pojedinačne poslovne funkcije

• Umesto razvoja informacionog sistem od početka, kod SOA pristupa se koriste već postojeći servisi

• Na primer, umesto da razvija svoj softver za proveru kreditne sposobnosti kupca, veb prodavnica će koristiti servis finansijske ustanove kod koje je izdata kreditna kartica uz određenu naknadu koja je manje od troška razvoja softvera

4/1/2020 Internet servisi – dr Dušan Ljubičić 12

Page 13: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Proces kupovine kroz interakciju nekoliko servisa

4/1/2020 Internet servisi – dr Dušan Ljubičić 13

Page 14: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Vrste veb servisa

• Danas se uglavnom se koriste dve vrste veb servisa

• To su SOAP i RESTful

4/1/2020 Internet servisi – dr Dušan Ljubičić 14

Page 15: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

SOAP veb servisi

• SOAP veb servisi koriste SOAP protokol za prenos poruka napisanih u XML jeziku

• XML je nazavisan od platforme na kojoj se izvršavaju aplikacija i servis i jezika aplikacije koja koristi servis

• SOAP koristi HTTP, SMTP, FTP i druge protokole za prenos poruka

4/1/2020 Internet servisi – dr Dušan Ljubičić 15

Page 16: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

SOAP veb servisiza potrebe kompanija

• SOAP je 1998. godine razvio Dave Winer u saradnji sa Microsoft-om

• Kreiran je za potrebe velikih kompanija

• SOAP koristi standardni skup pravila zasnovanih na XML-u

• Koriste ga finansijske i telekomunikacione kompanije i servisi za plaćanje

4/1/2020 Internet servisi – dr Dušan Ljubičić 16

Page 17: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

SOAP veb servisiprednost i mana

• Generalno je izbor za B2B servise jer su sigurnost i autorizacija ugrađeni u protocol

• Osnovni nedostatak SOAP veb servisa je složenost SOAP protokola koja programerima otežava kreiranje servisa

4/1/2020 Internet servisi – dr Dušan Ljubičić 17

Page 18: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Redosled operacija

• Objavljivanje, pronalaženje i korišćenje veb servisa se obavlja sledećim redosledom:

• Provajder servisa publikuje servis u registru veb servisa (UDDI)

• Klijent pretražuje registar veb servisa u potrazi za određenim servisom

4/1/2020 Internet servisi – dr Dušan Ljubičić 18

Page 19: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Redosled operacija

• Klijent kao rezultat pretrage dobija URL (lokacija servisa) i WSDL (interfejs) za traženi servis

• Kada korisnik pozove veb servis, uspostavlja se HTTP konekcija sa provajderom servisa. Kreira se SOAP poruka koja daje uputstva provajderu servisa za pozivanje veb servisa.

• Provajder preko HTTP protokola vraća SOAP poruku klijentu. Poruka je razumljiva samo klijentu, odnosno programu koji ju je pozvao

4/1/2020 Internet servisi – dr Dušan Ljubičić 19

Page 20: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Provajder veb servisa

• Gledano sa poslovne strane, provajder veb servisa je organizacija u čijem vlasništvu se nalazi servis (Microsoft, Amazon, IBM, Oracle…), tj. koja je napisala servis

• Iz tehničkog ugla, odnosno sa stanovišta arhitekture, provajder servisa je platforma koja hostuje i kontroliše pristup servisu

4/1/2020 Internet servisi – dr Dušan Ljubičić 20

Page 21: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Obaveze provajderaveb servisa

• Provajder veb servisa je odgovoran za njegovo objavljivanje u registru servisa koji hostuje agencija za pronalaženje servisa

• Provajder objavljuje opis servisa, interfejs i način na koji se poziva

4/1/2020 Internet servisi – dr Dušan Ljubičić 21

Page 22: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Korisnik veb servisa

• Korisnik veb servisa, ili klijent, je kompanija kojoj je taj servis potreban za obavljanje određenog posla

• Gledano sa tehničke strane, odnosno iz ugla arhitekture veb servisa, to je aplikacija koja traži, a kasnije i poziva taj servis

• Korisnici pretražuju registar veb servisa i preuzimaju informacije koje su im potrebne da bi se povezali sa traženim servisom

4/1/2020 Internet servisi – dr Dušan Ljubičić 22

Page 23: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

UDDI(Universal Description,

Discovery and Integration)

• UDDI je lokacija (direktorijum) na Internetu za objavljivanje i pretraživanje veb servisa

• Korisnici servisa u registru pronalaze potrebne servise i preuzimaju informacije koje su im potrebne da se povežu sa servisom, odnosno uspostave kontakt sa provajderom servisa kako bi mogli da ga koriste

4/1/2020 Internet servisi – dr Dušan Ljubičić 23

Page 24: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Pronalaženje servisa

• Korisnici se direktno povezuju sa servisom preko informacija koje su date u opisu servisa, ili se taj proces odvija preko agencije koja je odgovorna za registar veb servisa

• Servisi mogu da se pretražuju po funkcionalnosti ili po imenu

4/1/2020 Internet servisi – dr Dušan Ljubičić 24

Page 25: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

SOAP(Simple Object Access Protocol)

• SOAP (Simple Object Access Protocol) je XML bazirani protokol za razmenu informacija između uređaja i aplikacija, bez obzira na kom operativnom sistemu uređaji rade i na kojem jeziku su napisane aplikacije koje komuniciraju sa veb servisom

4/1/2020 Internet servisi – dr Dušan Ljubičić 25

Page 26: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

SOAP(Simple Object Access Protocol)

• SOAP za prenos poruka obično koristi HTTP ili HTTPS protokole, ali može da koristi i druge protokole, kao što su SMTP ili FTP

• SOAP poruke su jednosmerne, prenose zahtev od klijenta, ili odgovor od servisa

• Postoji više vrsta SOAP poruka, a najpoznatija je Remote Procedure Call (RPC)

• Kod ove vrste poruke klijent šalje zahtev serveru, a server odmah vraća odgovor klijentu

4/1/2020 Internet servisi – dr Dušan Ljubičić 26

Page 27: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

WSDL(Web Services Description Language)

• WSDL je jezik za opisivanje funkcionalnosti veb servisa

• Zasniva se na XML jeziku

• WSDL dokument sadrži informacije o tome kako se veb servis poziva, koji parametri mu se prosleđuju i koji tip podatka vraća

4/1/2020 Internet servisi – dr Dušan Ljubičić 27

Page 28: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

RESTful veb servisi

• Veb servisi koji prate REST arhitekturu se nazivaju RESTful veb servisi

• REST (Representational State Transfer) je arhitekturni stil za razvoj klijent server aplikacija

• Zasniva na world wide webu i koristi HTTP protokol za prenos podataka

• Razvio ga je 2000. godine Roy Fielding, koji je bio i jedan od glavnih kreatora HTTP protokola

4/1/2020 Internet servisi – dr Dušan Ljubičić 28

Page 29: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

RESTful resursi

• U REST arhitekturi svaka komponenta, uključujući podatke i funkcionalnosti, predstavlja resurs i svakom resursu se pristupa preko standardnih HTTP metoda (GET, PUT, POST, DELETE)

• PUT kreira novi resurs koji može kasnije može biti obisan korišćenjem DELETE metode. GET metoda učitava trenutno stanje resursa. POST upisuje novo stanje resursa, odnosno ažurira ga

4/1/2020 Internet servisi – dr Dušan Ljubičić 29

Page 30: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

URI

Uniform Resource Identifiers

• Resursi se identifikuju (pronalaze) preko URI (Uniform Resource Identifiers) adrese

• URI globalno adresira resurse, odnosno predstavlja globalni ID resursa preko kojih mogu da budu pronađeni

4/1/2020 Internet servisi – dr Dušan Ljubičić 30

Page 31: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

RESTklijent server arhitektura

• REST je klijent server arhitektura

• REST server je taj koji REST klijentima omogućava pristup do resursa

• Svaka interakcija sa RESTful servisom mora da bude tipa stateless

4/1/2020 Internet servisi – dr Dušan Ljubičić 31

Page 32: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Stateless

• Stateless znači da se ne postoji evidencija o prethodnim interakcijama i da svaki zahtev za interakcijom mora da bude baziran na informacijama koje dolaze s njim

• Kod stateful interakcija vodi se evidencija o interakciji sa servisom koja se čuva na serveru, čime se server opterećuje

• Kod stateless servisa opterećenje se prebacuje na klijenta, podatke čuva klijent

4/1/2020 Internet servisi – dr Dušan Ljubičić 32

Page 33: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

WADL Web Application Description Language

• Web Application Description Language (WADL) je jezik za opis RESTful servisa

• WADL je nezavisan od platforme i programskogokruženja

• Kreiran je sa namerom da pojednostavi korišćenjeveb servisa koji su bazirani na postojećoj HTTP arhitekturi veba

4/1/2020 Internet servisi – dr Dušan Ljubičić 33

Page 34: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

RESTful protiv SOAP

• RESTful servisi su jednostavniji, brži i fleksibilniji od SOAP servisa

• Obično se koriste za socijalne medije, socijalne mreže, web chat i mobilne servise

• Najveći broj veb servisa su RESTful (oko 83% u 2017. godini)

• Glavni nedostaci su im sigurnost i autorizacija koji se teško implementiraju

4/1/2020 Internet servisi – dr Dušan Ljubičić 34

Page 35: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

RESTful protiv SOAP

4/1/2020 Internet servisi – dr Dušan Ljubičić 35

Page 36: dr Dušan Ljubičić...•Veb servisi mogu da se izvršavaju na bilo kojem veb serveru i mogu da ih koriste sve aplikacije, bez obzira u kojem programskom jeziku su napisane 4/1/2020

Internet servisi

Veb servisi

dr Dušan LjubičićBeogradska akademija poslovnih i

umetničkih strukovnih studija