280 likes | 536 Views
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
E N D
Seminarskirad: Pregled Java Web Servisa Student: Stefan Dželadinović 12876 Predmetni profesor: prof. Dr. Milorad Tošić
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 • Pregledtehnikazaolakšanuimplementaciju Web servisa • Standarno WSDL/Java mapiranje • Razvojnimodeli • JAX-WS 2.0 • Invocation prekoXML-a • Handler framework • Kontekstporuke
Pregled Java Web servisa • Asinronipozivi • WSDL stilovi • Prosleđivanjepseudoreference • JAXB 2.0 Prednostii mane načinaimplementacije • Povezivanje XML šemena Java reprezentacije • Mapiranje Java tipova u XML šemu • Mapping anotacije • Binding Run-time framework • Početakod WSDL-a iJave • Ostalekomponente
Primer aplikacije za obradu narudžbina kupaca u SOA arhitekturi Pregled Java Web servisa • Order 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 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 kombinovanjeminformacija dobijenih od tih servisa kreirapotvrde porudžbine (Order Confirmation) . .
SOA kompozitna aplikacija za informacioni sistem naručivanja Pregled Java Web servisa
JWS i SOA Pregled Java Web servisa • Web 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 ) ikoristi se za SOA razvojaplikacija
Pregled Java Web ServisaJWS I SOA • Primer upotrebe u Java EE 5 Web Servisu JSR server side role • JWS definiše port component kaoserveskipogledna web servis.Onmožebitiupakovankao WAR ili EJB JAR. • Endpoint podržava HTTP GET zahtevza WSDL-omkojiopisuje Web uslugu. Strukturaovog WSDL je određena JAX – WS-om WSDL / Java mapiranjem • Pozivanjeraspoređenog Web servisa je iniciransaprijemom SOAP zahteva, preko HTTP POST u endpoint-u • Web servis je endpoint koji se običnoimplementiraprekoservletskeklasekojaosluškuje endpoint URL navedentokomisporuke • Korak 5 pokazujeda je SOAP zahtevpostaoskup XML - parametarainstanci XML šemakomponentinavedenihkaoparametri u WSDL-u.
Pregled Java Web servisaJWS I SOA 6. Dalje, XML parametri se deserijalizuju u Java parametre. Ovudeserijalizacijuobavlja JAXB runtime. 7. Kadasuparametrikreirani, gađana Java klasailimetod se poziva . U WSPA , to je odgovornost Invocation podsistema. 8. Poslepoziva, koraci u ovomprocesuidu u obrnutomsmeru. Klasakojapredstavlja Java povratni tip se šaljena JAXB serijalizacijukako bi postalainstanca XML povratnogtipa. 9. Dalje , JAX - WS runtime uzima XML- povratni tip iobavijaga (wrappuje) u SOAP odgovor. 10. .Na kraju, SOAP odgovor je ponovoposlatpodnosiocuzahteva , kaosadžaj HTTP odgovora.
Pregled Java Web servisaJWS I SOAServer side role u JAVA EE 5
Pregled Java Web servisaJWS I SOA • Primer uportrebe u JAVA EE 5 client side role • kreiranjeinterfejsakrajnjetačkeusluge ( SEI) pomoću WSDL preko Java alatazamapiranje. SEI obezbeđuje Java reprezentaciju Web uslugekojutrebapozvati. • ,instanca JAX - WS javax.xml.ws.Serviceklase se koristidapružipogledklijentana Web uslugukojutrebapozvati. JedanodmetodaService.getPort se koristizadobijanje run-time instance SEI generisane u prethodnomkoraku. Instanca proxy-jaimplementira SEI. • pozivjednogod SEI- metodapreko proxy-ja. Parametriprosleđeni SEI metodisu instance klasekoje se generišutokomkreiranja SEI-a ( korak 1) . • . Nakonobraderukovaoca, SOAP zahtevporuka se šalje Web servisui SOAP odgovor se vraća . SOAP odgovor je obrađen u obrnutomredosledu. • Proxy instancavraća JAXB instancukaopovratnuvrednost
Pregled Java Web servisaJWS I SOA Client side role u JAVA EE 5, Java Web Servisa JSR
Pregled Java Web ServisaPregledtehnikazaolakšanuimplementaciju Web servisaStandarnoWSDL/Java mapiranje • JAX - WS definišestandardnomapiranje WSDL do / odJave. • Default podrazumevanomapiranjesvakakoolakšava Java programeru, koji ne morada se razumemnogo o WSDL-u ili XML-u, da bi kreirao Web servis.. • Standardnomapiranje, uprkosograničenjima, omogućavada se lakoisporuče Java klasekao Web servisi. • On takođeomogućavaautomatskogenerisanjeinterfejsaservisakrajnjetačke (SEIS).
Pregled Java Web ServisaPregledtehnikazaolakšanuimplementaciju Web servisaRazvojnimodeli • KreniodJave " razvojmodu . " KreniodJave " pretpostavljadakreirate Web uslugutakoštoćetezapočetisarazvojem Java klasa . U stvari , sveštotrebadauraditejestedaisporučitetuklasukao Web servis, najglavnijideo, jestedagaobeležitesa @ Web-servis . JAX -WS i JAXB run-time engine ćemapiratituklasu u WSDL dokumentpomoćustandardnog WSDL / Javui XML / Java mapiranja. • Kreniod WSDL iJave " Razvojnimod ovakavpristupće se pokazatinezgodnimzavećinuprogramerajerzahtevada se intimnoupoznate u kojojmerianotacijeobliku WSDL deployment problem postajestvarmapiranja WSDL strukture u Java metodeiparametrepostojećihklasarazvojnirežim je zapravonajlakši, jerkadasu WSDL i Java definisani , programer ne moradauradibilokakavdizajn. Programer ne moradadizajnirafleksibilanikoristan WSDL ilidobar Java API.
Pregled Java Web ServisaPregledtehnikazaolakšanuimplementaciju Web servisa JAX-WS 2.0 • JAX - WS 2.0 precizirapozivanjepodsistema JWS , deo deployment podsistema, pa čakimaloserijalizacijskogpodsistema. • JAX -WS specifikacija 2.0 [ JSR 224 ] definiše standard Java / WSDL mapiranja • Onaodređujekako se WSDL operacijepovezujusa Java metodama - drugimrečima , kada SOAP porukapozove WSDL operacije, Java/WSDL mapiranjeodređujekoji Java metod se pozivaikako je SOAP porukamapirana u parametremetoda. • JAX-WS koristi WSDL interface definition jezik (IDL) izkojegsu Java klasegenerisane.Idinamičkiistatičkigenerisanainstancaservisamožedakreira proxy zapozivanje Web servisakoristećiservisendopointintefejsa ( SEI )
Pregled Java Web ServisaPregledtehnikazaolakšanuimplementaciju Web servisa Invocation preko XML-a • Kao alternativazapoziv Web servisapreko Java proxy-ja, moguće je koristitiinstancuservisaslanjemiprimanjem XML poruka. • Ovomožebitikorisnaopcijakadaželitedapremostite JAXB serijalizaciju. • To vamomogućavadakonstruišesvojuvlastitu SOAP porukuipošaljite je direktno Web servisu . • Takođe, omogućavavamdakomuniciratesa Web servisomdirektnopreko XML-a bezpotrebe Java prevođenja. • Često, kod Web service programiranja, raddirektnosa XML je najprirodnijinačinda se stvariurade.
Pregled Java Web ServisaPregledtehnikazaolakšanuimplementaciju Web servisa Handler framework • JAX - WS definišezahteviodgovorhendlerekoji se mogukoristitiinastraniklijentaiservera. • hendlermožeda se koristiu pre ipost- procesiranjuporuke • Organizovanisuu uređenimlistamapoznatimkao handler lanciipozivaju se poredu. • Handler lancisudefinisaninanivouporta - pa svemetodedefinisane u SEI-u morajudakoristeistilanac • imamodvatipahendlera : logičkei protocol hendlere • Logički se baveobradom XML porukei ne zaviseod binding protokola. Protokolhendleri, sadrugestrane, suprojektovanizaprocesiranjekoje se odnosinaprotokolvezivanja (na primer, SOAP)
Pregled Java Web ServisaPregledtehnikazaolakšanuimplementaciju Web servisa • Kontekstporuke • JAX - WS omogućavahendlerima , krajnjimtačkama , kaoiklijentimadamanipulišukontekstомporuke • Omogućava komunikacijuizmeđuhendlerakojiobrađujuzahteve , endpoint implementacije , ihendlerakojiobrađujuodgovor • možeda se koristidaolakšainicijalizaciјuprotokolorijentisanihhendlera • Asinhroni pozivi • JAX - WS podržavadvamodelazaasinhronezahtev - odgovorporuke: prozivka (poling) ipovratak (callback) . Prozivkaomogućavaklijentskomkodudaneprestanoispitujedali je stigaoodgovor. Alternativno, za callback pristupdefinišemorukovaocakojiobrađujeodgovorasinhronokada je dostupan
Pregled Java Web ServisaPregledtehnikazaolakšanuimplementaciju Web servisa • WSDL stilovi • Na osnovustila WSDL koji se korsiti , JAX - WS definišedva bean-a, zasvakimetod: zahtev bean i bean odgovora. • Prosleđivanje pseudoreference • Poziv Java metodeprenoseobjekatpovrednosti. Web servisi ne radenaovajnačin. • JAX - WS 2.0 implementira ovaj mehanizam pomoćuHolderclass-e.Holder klasačuva reference naobjekatkoji se menja. Tokompoziva Web servisa , JAX - WS šaljekopijuobjekta do cilja , idobijanazadizmenjenuverziju. “Ispodhaube” , JAX – WS vršiažuriranje instance takodaonasadareferenciranaizmenjenuinstancuprimljenusamreže.
JAXB 2.0 Prednosti i mane Pregled Java Web servisa • Cilj JAXB 2.0 je daobezbedivišinivoapstrakcijeod Java-ineimplementacije SAX-a, DOM-a , XPath-a , idrugihpristupazamanipulaciju XML-a u programskomjeziku Java . Povezivanje je mehanizamkojiudružujeskup Java klasasa XML šemom , takoda se instancama XML šemamanipulišekoristeći Java metode. • Postoje 2 prilaza: • PočetakizJave: U ovomscenariju , Java klasapostojiprvaikoristi se zagenerisanje XML šemepreko JAXB 2.0 generatorašeme. Klasama se ne morajueksplicitnododatianotacije , jer JAXB 2.0 to radipo default-u automatskigde je potrebno. • Početakiz XML šeme : U ovomslučaju , šemapostojiprvai Java klase se kreirajukorišćenjem JAXB 2.0 schema kompajlera.
Pregled Java Web servisaJAXB 2.0 Prednosti i manePovezivanje XML šeme na Java reprezentacije • Svaka value klasaobezbeđujepristupsadržajusvojihodgovarajućihkomponentišemepomoću GET / SET property-ja.. • Elementiiatributikompleksnogtipasumapiranena property-je Java value klasa. • Površinskekarakteristike value klasa (na primer , imena bean property-ja ) se moguprilagoditipomoću JAXB Binding jezika. Sledećiprimer ilustrujeprelazaksa XML šemekomponentina 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
Pregled Java Web servisaJAXB 2.0 Prednosti i mane • Mapiranje Java tipova u XML šemu • JAXB 2.0 Java / XML binding takođeobezbeđujestandardnomapiranjeiz Java klase u XML šemu. JAX - WS 2.0 koristiovumapuzagenerisanjeWSDL-a iz Java klaseraspoređenkaoWeb servis.Ovaj" Počniteiz Java " ( SFJ ) pristup uWeb Servisima je primarnislučajkorišćenjaopisanogmapiranja. • Mapping anotacije (komentari, dodaci) • zaprilagođavanje JAXB 2.0 standardnog Java / XML binding-a. Generator šemezahtevazapravodvaulaza : skupklasai set anotacijazamapiranje. Generator šemepretpostavljapodrazumevanevrednostizasve. • Jedanodciljeva JWS-aje daselakoizgradiWeb servisod Java klase . • Anotacijeomogućuju Java programerimadaodrede tip mapiranjaserijalizacijskimehanizam u jednomjeziku, • Na primer , jednoočiglednoograničenjesakomentarima je da vas oniprimoravajudausvojitejedan - na - jedankorespondencijuizmeđukomponentišemei Java klasa .
Pregled Java Web servisaJAXB 2.0 Prednosti i mane • Binding Run-time framework • Sledećikoracipokazujukako binding Run - time framework interfejssa JAX – WS-om 2.0 poziva Web servisraspoređen u JWS - kompatibilnojaplikaciji : 1.JWS aplikacija prima SOAP poruku u odgovarajućojkrajnjojtački. 2.Na osnovukonfiguracije SOAP- vezivanja ( javax.xml.ws.soapSOAPBinding . ) zakrajnjutačku , JAX-WS pripremainstancuporukekonteksta ( javax.xml.ws.handler.soap.SOAPMessageContext) 3.JAXB se možetražitidaobezbedi MTOM/XSOP obrade u ciljustvaranja SAAJ predstavljanjaporuke. 4 .JAX - WS pozivahendlere. 5 .Nakonštoposaoobaverukovaocizahteva, JAXB Runtime deserijalizuje SOAP porukusadržaja u request bean 6 .Request bean, koji je izgradila JAXB runtime , sadrži Java objektekojisuprosleđenikaoparametri Java metodukojiimplementira Web uslugu. JAX - WS pozivametodepomoćuovihparametara
Pregled Java Web servisaJAXB 2.0 Prednosti i mane • Binding Run-time framework 7 .JAX - WS predaje Java objekatkoji je vraćenpozivommetodaikoristigazakreiranje instance response bean-a. 8 .JAXB serijalizuje response bean . 9 .Kao u koraku 2 , naosnovu binding SOAP konfiguracijekrajnjetačke, JAX - WS ažuriraporuku u kontekstudauključi SAAJ predstavljanjeodgovora . Ovo je SAAJ interfejsnavrhu response bean-a. 10 .JAX - WS pozivahendlereodgovora . 11 .Pre slanjaodgovora, JAX - WS poziva JAXB nauzvršenjejerpotrebnoda se obezbedi MTOM obradaporuke . 12 .JAX - WS predajeporukuprotokoluza transport.
Pregled Java Web ServisaJAXB 2.0 Prednosti i maneSerijalizacija u JWS-u (Java Web Start) odmrežnog saobraćaja do Web servisa
Pregled Java Web servisaJAXB 2.0 Prednosti i mane • Početak od WSDL i Jave • “ PočetakodWSDL-a iJave " razvoj je podržanpomoćuanotacijazamapiranjeizmeđu Java interfejsaistrukture WSDL dokumenta . • "Počniteod WSDL-a iJave " moradaobezbedipovratneinformacijekojepokazujukada Web servisimplementacijaodstupaod WSDL ugovora. • Ostale komponente • Port komponentaje onošto je upakovanoiraspoređeno u kontejneruzaimplementaciju Web servisa. • ServletEndpoint WSEE 1.2 precizirada POJO (Plain Old Java Object) , dokle god ispunjavauslov u WS-metadata za SIB , može se koristitizaimplementaciju Web servisaraspoređenih u Web kontejneru.
Pregled Java Web servisaJAXB 2.0 Prednosti i mane • EJB EndpointWSEE 1.2 precizirada se stateless session bean možekoristitizaimplementaciju Web servisa • Dependency injectionJava EE 5 uvodi Dependency injection mehanizmekojipojednostavljujuprocesinstanciranjakonteksta u okvirurazličitihkontejnera . Ona se koristidapreuzme reference resursa (na primer , vezesabazompodataka ) ilidrugihobjekata • Interceptor (Presretač)je metodkojipresrećeprizivanjenekogdrugogmetoda . Ovo je Java EE 5 sprovođenjeaspektaorijentisanoprogramiranje ( AOP ) presretačkoncept . Presretačiolakšavajudodavanjedodatnihuslugametodamakadasuraspoređenekao Web servisi .Validacija , kaošto je opisanoranije , jedan je odprimera . Drugi je sigurnost . Moždaćeteželetidaograničitepristupindividualnommetodaprema WSDL :