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.