PowerPoint prezentacija
Download
Report
Transcript PowerPoint prezentacija
Osnove SOA
korišćenjem
REST-a, drugi deo
Marko Cvetković - 12866
Preuzimanje podataka od REST
servisa putem JWS-a
Upotreba klasa JAX-WS API-ja.
javax.xml.ws.Dispatch<T>
javax.xml.ws.Service
Dijagram toka podataka
HTTP GET,
zahtev za XML
dokument
HTTP odgovor,
sadrži traženi
XML dokument
Implementacija dijagrama u Java kodu
Java reprezentacija WSDL
datoteke
Generiše i pakuje
HTTP GET zahtev
Šalje pripremljeni zahtev i
čeka na odgovor
Osnovne razlike u implementaciji
korišćenjem JWS-a
Kod je robusniji
Sadrži parametre bitne JAX-WS API-ju, ali
ne i samoj komunikaciji sa REST servisom
Primljeni XML odgovor, kao instanca klase
Source, nudi daleko više funkcionalnosti
Slanje podataka REST servisu
putem JWS-a
JAX-WS biblioteka
Klase Dispatch<T> i Service
Dijagram toka podataka
Ostvarivanje HTTP POST konekcije
http://<web_adresa>?SourceSystem=OMS
Dodavanje XML
dokumenta uz POST
zahtev
XML
datoteka
Kód HTTP
odgovora
Prijem HTTP
odgovora
Implementacija dijagrama u Java kodu
Preuzimanje
HTTP
odgovora
Izvlačenje kóda HTTP odgovora
HttpURLConnection klasa ne pravi razliku
između poruke i njene sadržine
HttpURLConnection klasa poruku
predstavlja u vidu toka podataka (Stream)
Dispatch klasa poruku predstavlja takođe
kao poruku, u vidu instance klase Source
XSLT transformacija podataka
SOA aplikacije se zasnivaju na
transformacijama podataka iz jednog
oblika u drugi.
XSLT – eXtensible Stylesheet Language
Transformations.
Definisanje šablona preslikavanja
podataka iz izvorne datoteke u odredišnu.
OMS – Order Management System
CSS – Customer Service System
Primer: nove porudžbine iz OMS-a
prepisati u potrošačku istoriju u CSS-u.
Šabloni mapiranja u XSLT
XSLT definiše šablone preslikavanja
podataka iz izvorne u odredišnu datoteku.
Za elemente-čvorove odredišne datoteke
se definiše iz kojih elemenata izvorne
datoteke se prepisuju podaci.
Primer XSLT datoteke
Element u odredišnom
dokumentu
Šablon koji definiše iz kog elementa
u izvornoj datoteci se prepisuje podatak
JAXP
Java API of XML Processing
Bliblioteka za procesiranje XSLT datoteka
u Javi.
javax.xml.transform.Transformer
Razdvaja SOA komponente od SAX, DOM
i XSLT implementacija.
Most između Jave i Java Web Servisa.
Dijagram toka podataka za prethodni primer
Interfejsi web servisa definišu format
podataka koji primaju.
U XSLT datoteci se pamte šabloni
preslikavanja.
Promena interfejsa nekog od web servisa
bi zahtevala samo promenu šablona u
XSDL datoteci.
REST servis realizovan bez JWS-a
Obrada HTTP GET zahteva.
Klasa za pribavljanje resursa.
Primer XML datoteke: “/order.xml”
Klasa za pribavljanje resursa
Kako se instancira ova klasa?
Kako se objekat tipa Source, koji vraća metoda ove
klase, konvertuje u XML podatak u HTTP odgovoru?
Kako se ova klasa postavlja kao web servis?
Dijagram toka podataka
Odgovor 1: klasa se instancira pozivom
metode doGet(), odnosno instanciranjem
samog servisa.
Odgovor 2: dobijeni odgovor se najpre
konvertuje klasom Transformer, upisuje u
StreamResult i onda šalje klijentu.
Odgovor 3: klasa se mora vezati za servlet
njenim upisivanjem u web.xml, koji se
nalazi u WAR paketu servleta.
REST servis realizovan pomoću JWS-a
Kao kontejner koristimo Provider<Source>, koja je
analogna klasi Dispatch<Source>.
Klijent šalje HTTP POST zahtev.
Nove verzije JAX-WS-a prihvataju i HTTP GET zahteve.
Odgovori na prethodno postavljena
pitanja
Odgovor 1: isti – klasa se instancira
samim instanciranjem servisa.
Odgovor 2: odgovor se vraća kao instanca
klase Source i kao takav se prosleđuje
klijentu.
Odgovor 3: klasa se postavlja kao web
servis putem anotacija u Java kodu.
Definiše servis kao REST
Definiše tip veze sa klijentom.
Bez ovoga, servis bi očekivao
SOAP envelope.