28
eminarski rad: Pregled Java Web Servisa Student: Stefan Dželadinović 12876 Predmetni profesor: prof. Dr. Milorad Tošić

Seminarski rad : Pregled Java Web Servisa

Embed Size (px)

DESCRIPTION

Seminarski rad : Pregled Java Web Servisa. S tudent : Stefan D želadinović 12876 P redmetni profesor : prof . Dr. Milorad To šić. Pregled Java Web servisa. Primer aplikacije za obradu narudžbina kupaca u SOA arhitekturi JWS i SOA - PowerPoint PPT Presentation

Citation preview

Page 1: Seminarski rad :  Pregled  Java Web  Servisa

Seminarski rad: Pregled Java Web Servisa

Student: Stefan Dželadinović 12876

Predmetni profesor:

prof. Dr. Milorad Tošić

Page 2: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisa

Primer aplikacije za obradu narudžbina kupaca u SOA arhitekturi

JWS i SOA

• Server-side deployment i Invocation (poziv) web servisa

• Client-side invocation web servisa

Pregled tehnika za olakšanu implementaciju Web servisa

• Standarno WSDL/Java mapiranje

• Razvojni modeli

• JAX-WS 2.0

• Invocation preko XML-a

• Handler framework

• Kontekst poruke

Page 3: Seminarski rad :  Pregled  Java Web  Servisa

• Asinroni pozivi

• WSDL stilovi

• Prosleđivanje pseudoreference

JAXB 2.0 Prednosti i mane načina implementacije

• Povezivanje XML šeme na Java reprezentacije

• Mapiranje Java tipova u XML šemu

• Mapping anotacije

• Binding Run-time framework

• Početak od WSDL-a i Jave

• Ostale komponente

Pregled Java Web servisa

Page 4: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaOrder managment aplikacija se nalazi na slici je označena kao " SOA

Composite App " da naglasi da je konstruisana kao kompozicija servisa.

Poslovni procesi mogu se razložiti na niz usluga, svaka odgovorna za izvršavanje dela procesa. Order Managment Business Process

1 .Kupac šalje porudžbinu koja sadrži, zajedno sa ostalim informacijama , poštanski broj i spisak stavki - proizvoda i količine.

2 .Poštanski broj i spisak naručenih stavki su prosleđeni sistemu za obradu naružbine . On proverava elemente kupovine kako bi se utvrdilo da li ona pokriva sve stavke koje su naručene i koji su uslovi plaćanja obavezni.

3 .Ako PO pokriva red artikla, onda sistem vraća odobrenja i opis potrebnih uslova plaćanja

Primer aplikacije za obradu narudžbina kupaca u SOA arhitekturi

Page 5: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisa• 4 .Dalje , naručena lista artikala je prosleđena zalihama sistema

menadžmenta, Inventory Management System da se utvrdi da li su na lageru i šta su verovatni rokovi isporuke.

• 5 .Ova informacija – raspoloživost artikla- se vraća

• 6 .Na kraju, odgovor u vidu poruke se šalje nazad klijentu - potvrde porudžbine the Order Confirmation – sa detaljima uslova plaćanja i datumima isporuke predviđene za stavke.

Order Management System, se sastoji od kompozicije Purchase Order Service-a i Inventory Management Service-a. On procesira dolaznu narudžbinu pozivanjem prvo Purchase Order Service-a, a zatim Inventory Management Service-a, i kombinovanjem informacija dobijenih od tih servisa kreira potvrde porudžbine (Order Confirmation) . .

Primer aplikacije za obradu narudžbina kupaca u SOA arhitekturi

Page 6: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaSOA kompozitna aplikacija za informacioni sistem naručivanja

Purchace Order Service

Inventory Managment Service

.NET

JAVA EE 5

JAVA EE 5

WSDL

Order Managment

SOA Composite App

WSDL

SOAP

SOAP

SOAP

Customer Order

Order Confirmation

WSDL

1

6

2

3

4

5

PO Number Order Items

Authorization, Payment

Terms

Order ItemsItem Availability

Page 7: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaWeb servis standardi obezbeđuju strukture za koje je potrebno

definisati potrebne interfejse

Web servisi pružaju skup interfejsa i standarda za razmenu poruka koji olakšavaju izgradnju SOA aplikacija na platformno neutralan način

Web servisi pružaju dva ključna sastojaka neophodna za razvoj preko SOA-a: Interface definition jezik (WSDL) i Messaging standard (SOAP)

osnovni Web Servis framework ( npr. , WSDL SOAP / HTTP ) i koristi se za SOA razvoj aplikacija

JWS i SOA

Page 8: Seminarski rad :  Pregled  Java Web  Servisa

P r e g l e d J a v a We b S e r v i s a

JWS I SOA

Primer upotrebe u Java EE 5 Web Servisu JSR server side role

1. JWS definiše port component kao serveski pogled na web servis.On može biti upakovan kao WAR ili EJB JAR.

2. Endpoint podržava HTTP GET zahtev za WSDL-om koji opisuje Web uslugu. Struktura ovog WSDL je određena JAX – WS-om WSDL / Java mapiranjem

3. Pozivanje raspoređenog Web servisa je iniciran sa prijemom SOAP zahteva, preko HTTP POST u endpoint-u

4. Web servis je endpoint koji se obično implementira preko servletske klase koja osluškuje endpoint URL naveden tokom isporuke

5. Korak 5 pokazuje da je SOAP zahtev postao skup XML - parametara instanci XML šema komponenti navedenih kao parametri u WSDL-u.

Page 9: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisa

JWS I SOA6. Dalje, XML parametri se deserijalizuju u Java parametre. Ovu

deserijalizaciju obavlja JAXB runtime.

7. Kada su parametri kreirani, gađana Java klasa ili metod se poziva . U WSPA , to je odgovornost Invocation podsistema.

8. Posle poziva, koraci u ovom procesu idu u obrnutom smeru. Klasa koja predstavlja Java povratni tip se šalje na JAXB serijalizaciju kako bi postala instanca XML povratnog tipa.

9. Dalje , JAX - WS runtime uzima XML- povratni tip i obavija ga (wrappuje) u SOAP odgovor.

10. .Na kraju, SOAP odgovor je ponovo poslat podnosiocu zahteva , kao sadžaj HTTP odgovora.

Page 10: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisa

JWS I SOAServer side role u JAVA EE 5

WSDL SOAP

Top Package::Java annotated classTop Package::Java annotated classTop Package::Java annotated class

Top Package::Java annotated classTop Package::Java annotated classTop Package::Java annotated class

EJB Container

Web Service Application

Port Component War, EJB JAR

Deploy

WSEEWS-Metadata

JAX-WSJAXB

WS-Metadata

JAXBProces

serijalizacije I deserijalizacije(JAVA <-> XML

JAX-WSKomponenta

koja prevodi u WSDL jeziCke

definicije

WEB ContainerEndpoint

Java returnJava method

param

XML return XML scheme components

XML parameters

Java parameters

HTTP GET HTTP POST

1

*

1

*

JAVA

EE

5

1

2 3

4

5

6

7

8

9

10

Page 11: Seminarski rad :  Pregled  Java Web  Servisa

Primer uportrebe u JAVA EE 5 client side role

1. kreiranje interfejsa krajnje tačke usluge ( SEI) pomoću WSDL preko Java alata za mapiranje. SEI obezbeđuje Java reprezentaciju Web usluge koju treba pozvati.

2. ,instanca JAX - WS javax.xml.ws.Service klase se koristi da pruži pogled klijenta na Web uslugu koju treba pozvati. Jedan od metoda Service.getPort se koristi za dobijanje run-time instance SEI generisane u prethodnom koraku. Instanca proxy-ja implementira SEI.

3. poziv jednog od SEI- metoda preko proxy-ja. Parametri prosleđeni SEI metodi su instance klase koje se generišu tokom kreiranja SEI-a ( korak 1) .

4. . Nakon obrade rukovaoca, SOAP zahtev poruka se šalje Web servisu i SOAP odgovor se vraća . SOAP odgovor je obrađen u obrnutom redosledu.

5. Proxy instanca vraća JAXB instancu kao povratnu vrednost

Pregled Java Web servisa

JWS I SOA

Page 12: Seminarski rad :  Pregled  Java Web  Servisa

P r e g l e d J a v a We b s e r v i s a

JWS I SOA C l i e n t s i d e ro l e u JAVA E E 5 , J a v a We b S e r v i s a J S R

JAXB

WEB Service

WS-MetadataWSDL -> Java mapping tool

wsimport

Service Endpoint interface

SEIEndpoint URL

javax.xml.ws.Service

Proxy instance

JAXB WS-Metadata

Service Endpoint Interface

Handlers

WSEE

Parameters

Return value

1.

SOAP Request

SOAP Response

4.

5.

3.

JAX-WS

getPort(..)

WSDL

2.

Page 13: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web Servisa

Pregled tehnika za olakšanu implementaciju Web servisa

Standarno WSDL/Java mapiranje

JAX - WS definiše standardno mapiranje WSDL do / od Jave.

Default podrazumevano mapiranje svakako olakšava Java programeru, koji ne mora da se razume mnogo o WSDL-u ili XML-u, da bi kreirao Web servis..

Standardno mapiranje, uprkos ograničenjima, omogućava da se lako isporuče Java klase kao Web servisi.

On takođe omogućava automatsko generisanje interfejsa servisa krajnje tačke (SEIS).

Page 14: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web Servisa

Pregled tehnika za olakšanu implementaciju Web servisa

Razvojni modeli

Kreni od Jave " razvoj modu . " Kreni od Jave " pretpostavlja da kreirate Web uslugu tako što ćete započeti sa razvojem Java klasa . U stvari , sve što treba da uradite jeste da isporučite tu klasu kao Web servis, najglavniji deo, jeste da ga obeležite sa @ Web-servis . JAX -WS i JAXB run-time engine će mapirati tu klasu u WSDL dokument pomoću standardnog WSDL / Javu i XML / Java mapiranja.

Kreni od WSDL i Jave " Razvojni mod ovakav pristup će se pokazati nezgodnim za većinu programera jer zahteva da se intimno upoznate u kojoj meri anotacije obliku WSDL deployment problem postaje stvar mapiranja WSDL strukture u Java metode i parametre postojećih klasa razvojni režim je zapravo najlakši, jer kada su WSDL i Java definisani , programer ne mora da uradi bilo kakav dizajn. Programer ne mora da dizajnira fleksibilan i koristan WSDL ili dobar Java API.

Page 15: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web Servisa

Pregled tehnika za olakšanu implementaciju Web servisa

JAX-WS 2.0

JAX - WS 2.0 precizira pozivanje podsistema JWS , deo deployment podsistema, pa čak i malo serijalizacijskog podsistema.

JAX -WS specifikacija 2.0 [ JSR 224 ] definiše standard Java / WSDL mapiranja

Ona određuje kako se WSDL operacije povezuju sa Java metodama - drugim rečima , kada SOAP poruka pozove WSDL operacije, Java/WSDL mapiranje određuje koji Java metod se poziva i kako je SOAP poruka mapirana u parametre metoda.

JAX-WS koristi WSDL interface definition jezik (IDL) iz kojeg su Java klase generisane.I dinamički i statički generisana instanca servisa može da kreira proxy za pozivanje Web servisa koristeći servis endopoint intefejsa ( SEI )

Page 16: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web Servisa

Pregled tehnika za olakšanu implementaciju Web servisa

Invocation preko XML-a

Kao alternativa za poziv Web servisa preko Java proxy-ja, moguće je koristiti instancu servisa slanjem i primanjem XML poruka.

Ovo može biti korisna opcija kada želite da premostite JAXB serijalizaciju.

To vam omogućava da konstruiše svoju vlastitu SOAP poruku i pošaljite je direktno Web servisu .

Takođe, omogućava vam da komunicirate sa Web servisom direktno preko XML-a bez potrebe Java prevođenja.

Često, kod Web service programiranja, rad direktno sa XML je najprirodniji način da se stvari urade.

Page 17: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web Servisa

Pregled tehnika za olakšanu implementaciju Web servisa

Handler framework

JAX - WS definiše zahtev i odgovor hendlere koji se mogu koristiti i na strani klijenta i servera.

hendler može da se koristi u pre i post- procesiranju poruke

Organizovani su u uređenim listama poznatim kao handler lanci i pozivaju se po redu.

Handler lanci su definisani na nivou porta - pa sve metode definisane u SEI-u moraju da koriste isti lanac

imamo dva tipa hendlera : logičke i protocol hendlere

Logički se bave obradom XML poruke i ne zavise od binding protokola. Protokol hendleri, sa druge strane, su projektovani za procesiranje koje se odnosi na protokol vezivanja (na primer, SOAP)

Page 18: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web Servisa

Pregled tehnika za olakšanu implementaciju Web servisaKontekst poruke

• JAX - WS omogućava hendlerima , krajnjim tačkama , kao i klijentima da manipulišu kontekstом poruke

• Omogućava komunikaciju između hendlera koji obrađuju zahteve , endpoint implementacije , i hendlera koji obrađuju odgovor

• može da se koristi da olakša inicijalizaciјu protokol orijentisanih hendlera

Asinhroni pozivi

• JAX - WS podržava dva modela za asinhrone zahtev - odgovor poruke: prozivka (poling) i povratak (callback) . Prozivka omogućava klijentskom kodu da neprestano ispituje da li je stigao odgovor. Alternativno, za callback pristup definišemo rukovaoca koji obrađuje odgovor asinhrono kada je dostupan

Page 19: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web Servisa

Pregled tehnika za olakšanu implementaciju Web servisaWSDL stilovi

• Na osnovu stila WSDL koji se korsiti , JAX - WS definiše dva bean-a, za svaki metod: zahtev bean i bean odgovora.

Prosleđivanje pseudoreference

• Poziv Java metode prenose objekat po vrednosti. Web servisi ne rade na ovaj način.

• JAX - WS 2.0 implementira ovaj mehanizam pomoću Holderclass-e. Holder klasa čuva reference na objekat koji se menja. Tokom poziva Web servisa , JAX - WS šalje kopiju objekta do cilja , i dobija nazad izmenjenu verziju. “Ispod haube” , JAX – WS vrši ažuriranje instance tako da ona sada referencira na izmenjenu instancu primljenu sa mreže.

Page 20: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaCilj JAXB 2.0 je da obezbedi viši nivo apstrakcije od Java-ine

implementacije SAX-a, DOM-a , XPath-a , i drugih pristupa za manipulaciju XML-a u programskom jeziku Java . Povezivanje je mehanizam koji udružuje skup Java klasa sa XML šemom , tako da se instancama XML šema manipuliše koristeći Java metode.

Postoje 2 prilaza:

• Početak iz Jave: U ovom scenariju , Java klasa postoji prva i koristi se za generisanje XML šeme preko JAXB 2.0 generatora šeme. Klasama se ne moraju eksplicitno dodati anotacije , jer JAXB 2.0 to radi po default-u automatski gde je potrebno .

• Početak iz XML šeme : U ovom slučaju , šema postoji prva i Java klase se kreiraju korišćenjem JAXB 2.0 schema kompajlera.

JAXB 2.0 Prednosti i mane

Page 21: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaJAXB 2.0 Prednosti i manePovezivanje XML šeme na Java reprezentacije

Svaka value klasa obezbeđuje pristup sadržaju svojih odgovarajućih komponenti šeme pomoću GET / SET property-ja..

Elementi i atributi kompleksnog tipa su mapirane na property-je Java value klasa.

Površinske karakteristike value klasa (na primer , imena bean property-ja ) se mogu prilagoditi pomoću JAXB Binding jezika. Sledeći primer ilustruje prelazak sa XML šeme komponenti na Java property-je:

<xs:element name="phone">

<xs:complexType> <xs:attribute name="area" type="xs:string"/> <xs:attribute name="localnum" type="xs:string"/>

</xs:complexType> </xs:element>

String getPhone(); // vraca area+"-"+localnum void setPhone(String s); // gde je s = area+"-"+localnum

Page 22: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaJAXB 2.0 Prednosti i mane

Mapiranje Java tipova u XML šemu

• JAXB 2.0 Java / XML binding takođe obezbeđuje standardno mapiranje iz Java klase u XML šemu. JAX - WS 2.0 koristi ovu mapu za generisanje WSDL-a iz Java klase raspoređen kao Web servis. Ovaj " Počnite iz Java " ( SFJ ) pristup u Web Servisima je primarni slučaj korišćenja opisanog mapiranja.

Mapping anotacije (komentari, dodaci)

• za prilagođavanje JAXB 2.0 standardnog Java / XML binding-a. Generator šeme zahteva zapravo dva ulaza : skup klasa i set anotacija za mapiranje. Generator šeme pretpostavlja podrazumevane vrednosti za sve.

• Jedan od ciljeva JWS-a je da se lako izgradi Web servis od Java klase .

• Anotacije omogućuju Java programerima da odrede tip mapiranja serijalizacijski mehanizam u jednom jeziku,

• Na primer , jedno očigledno ograničenje sa komentarima je da vas oni primoravaju da usvojite jedan - na - jedan korespondenciju između komponenti šeme i Java klasa .

Page 23: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaJAXB 2.0 Prednosti i mane

Binding Run-time framework

• Sledeći koraci pokazuju kako binding Run - time framework interfejs sa JAX – WS-om 2.0 poziva Web servis raspoređen u JWS - kompatibilnoj aplikaciji :

1.JWS aplikacija prima SOAP poruku u odgovarajućoj krajnjoj tački.

2.Na osnovu konfiguracije SOAP- vezivanja ( javax.xml.ws.soap SOAPBinding . ) za krajnju tačku , JAX-WS priprema instancu poruke konteksta ( javax.xml.ws.handler.soap.SOAPMessageContext )

3.JAXB se može tražiti da obezbedi MTOM/XSOP obrade u cilju stvaranja SAAJ predstavljanja poruke .

4 .JAX - WS poziva hendlere.

5 .Nakon što posao obave rukovaoci zahteva, JAXB Runtime deserijalizuje SOAP poruku sadržaja u request bean

6 .Request bean, koji je izgradila JAXB runtime , sadrži Java objekte koji su prosleđeni kao parametri Java metodu koji implementira Web uslugu. JAX - WS poziva metode pomoću ovih parametara

Page 24: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaJAXB 2.0 Prednosti i mane

Binding Run-time framework

7 .JAX - WS predaje Java objekat koji je vraćen pozivom metoda i koristi ga za kreiranje instance response bean-a.

8 .JAXB serijalizuje response bean .

9 .Kao u koraku 2 , na osnovu binding SOAP konfiguracije krajnje tačke, JAX - WS ažurira poruku u kontekstu da uključi SAAJ predstavljanje odgovora . Ovo je SAAJ interfejs na vrhu response bean-a.

10 .JAX - WS poziva hendlere odgovora .

11 .Pre slanja odgovora, JAX - WS poziva JAXB na uzvršenje jer potrebno da se obezbedi MTOM obrada poruke .

12 .JAX - WS predaje poruku protokolu za transport.

Page 25: Seminarski rad :  Pregled  Java Web  Servisa

P r e g l e d J a v a W e b S e r v i s aJ A X B 2 . 0 P r e d n o s t i i m a n e

S e r i j a l i z a c i j a u J W S - u ( J a v a We b S t a r t ) o d m r e ž n o g s a o b r a ć a j a d o We b s e r v i s a

Class1

Class2

ClassNBinary MTOM Encoded Data

SOAP Envelope

JAX-WS 2.0 JAXB 2.0

JAXB-annotated Class InstancesXML InfosetMIME Package

JAXB MTOM Processing

“On the wire” oblik poruke na mreŽi,

serijalizovani oblik

Hendler pogled, Infoset forma XML komponenti

Web servis pogled, deserijalizovana forma, Java anotacijske klase i

metode

SOAP ENVELOPE

Page 26: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaJAXB 2.0 Prednosti i mane

Početak od WSDL i Jave

• “ Početak od WSDL-a i Jave " razvoj je podržan pomoću anotacija za mapiranje između Java interfejsa i strukture WSDL dokumenta .

• "Počnite od WSDL-a i Jave " mora da obezbedi povratne informacije koje pokazuju kada Web servis implementacija odstupa od WSDL ugovora.

Ostale komponente

• Port komponenta je ono što je upakovano i raspoređeno u kontejneru za implementaciju Web servisa.

• Servlet Endpoint WSEE 1.2 precizira da POJO (Plain Old Java Object) , dokle god ispunjava uslov u WS-metadata za SIB , može se koristiti za implementaciju Web servisa raspoređenih u Web kontejneru .

Page 27: Seminarski rad :  Pregled  Java Web  Servisa

Pregled Java Web servisaJAXB 2.0 Prednosti i mane

• EJB Endpoint WSEE 1.2 precizira da se stateless session bean može koristiti za implementaciju Web servisa

• Dependency injection Java EE 5 uvodi Dependency injection mehanizme koji pojednostavljuju proces instanciranja konteksta u okviru različitih kontejnera . Ona se koristi da preuzme reference resursa (na primer , veze sa bazom podataka ) ili drugih objekata

• Interceptor (Presretač) je metod koji presreće prizivanje nekog drugog metoda . Ovo je Java EE 5 sprovođenje aspekta orijentisano programiranje ( AOP ) presretač koncept . Presretači olakšavaju dodavanje dodatnih usluga metodama kada su raspoređene kao Web servisi .Validacija , kao što je opisano ranije , jedan je od primera . Drugi je sigurnost . Možda ćete želeti da ograničite pristup individualnom metoda prema WSDL :

Page 28: Seminarski rad :  Pregled  Java Web  Servisa

Za više informacija o temi: