Upload
rufilances
View
227
Download
1
Embed Size (px)
Citation preview
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
1/42
Realizacija Web servisa
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
2/42
1. Uvod
ta izaziva potrebu za poslovnom integracijom? integracija poslovnih aplikacija
spajanja i preuzimanja kompanija
integracija poslovnih partnera
Kako se ostvaruje poslovna integracija? integrisanjem aplikacija
razmenom informacija i saradnjom (interoperabilnost)
standardima
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
3/42
1. Uvod
Primeri uobicajenih tehnologija distribuiranih racunarskih sistemakoje su vec u irokojupotrebi: CORBA
Common Object Request Broker Architecture od OMG-a Jezicki nezavisan i objektno orijentisani standard distribuiranog sistema Problem: nije zagarantovana interoperabilnost ako distributeri nisu implementirali potpunu
CORBA specifikaciju
DCOM Distributed Component Object Model Microsoftova tehnologija za distribuirano objektno programiranje Problem: implementacija samo u Windows-u, toogranicava interoperabilnost Java RMI
Remote Method Invocation Java distribucija objekata
Problem: nije jezicki nezavisna RMI preko IIOP
Java RMI-u slican stil programiranja koristeci CORBA IIOP za komunikaciju Tehnike koje klijenti koriste da pristupe poslovnim zrnima Jave (Enterprise JavaBeans) Problem: zavisnost od CORBA-e za komunikaciju i od Jave za interfejs
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
4/42
1. Uvod
Performanse i proirivost Menadment Postizanje labavog uparivanja(loose coupling) Definisanje granularnosti interakcija Odravanjekonteksta prekoviesistema transakcije, bezbednost, stanje sesija Konverzija protokola Pracenje verzija Firewall i drugi bezbednosni izazovi
Mreniprotok Otpornost na otkaze (failover) Uocavanje problema i analiza uzroka Cena razvoja, integracije i testiranja
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
5/42
1. Uvod
Arhitekturalni stil projektovanja distribuiranih sistema koji obezbedujeaplikativnu funkcionalnost u viduservisabilo korisnicima aplikacije bilodrugim servisima
Koristi otvorene standarde kao osnovu za prikazivanje fukcionalnostisoftvera u vidu servisa Omogucava standardan nacin za prikaz i interakciju funkcionalnosti
softvera
Dozvoljava da pojedinacne funkcionalnosti softvera budu gradivniblokovi koji se mogu iskoristiti u razvoju drugih aplikacija
Fokusira se na sklop aplikacije umesto na implementacione detalje Moese interno koristiti za stvaranje novih aplikacija od postojecih
komponenti
Moese eksterno koristiti za integraciju sa aplikacijama drugih kompanija
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
6/42
1. Uvod
Servis je funkcionalnost aplikacije koja je upakovana kao komponentakoja moe biti koricena vie puta u poslovnom procesu.
Obezbedjuje dobro definisan interfejs Deluje kao nezavisna funkcija
Koristi poruke da sakrije implementacione detalje
Ne zavisi od stanja drugih servisa
Prua informacije pozivaocu i omogucava prevodjenje poslovnihpodataka iz jednog validnog i konzistentnog stanja u drugo
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
7/42
1. Uvod
Web servisi su softverski sistemi dizajnirani da podreinteroperabilnu komunikaciju izmeu maina preko mree.
Interoperabilnost znai da softverski sistemi nezavisno odtehnologije u kojoj su napisani mogu da komuniciraju i
razmenjuju podatke.
Softverski sistem identifikovan uz pomoc URI, definisan,opisan i otkriven pomocu XML artefakta, koji interagujesa drugim softverskim sistemima koristeci XML porukepreko protokola baziranih na Internetu."
(W3C Web Services Architecture Group)
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
8/42
1. Uvod
Osnovni koraci u procesu kreiranja Web servisa:
1. Pisanje Web servisa,
2. Objavljivanje Web servisa(WSDL)
3. Pronalaenje Web servisa4. Povezivanje klijenta sa servisom(SOAP)
Arhitektura Web servisa
1
2
3
4
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
9/42
1. Uvod
Opisan jezikom WSDL koji ne zavisiod transportnog protokola Proiriv Interoperabilnost Polazi od dobrih principa distribuiranog dizajna Tehnologija koja omogucava SOA i sisteme na zahtev
Standardi, standardi, standardi Iskustvo korisnika Menadment Poslovni procesi Transakcije Pouzdanost Bezbednost Pronalaenje
Povezivanje Enterprise Bezbednost Objavljivanje
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
10/42
1. Uvod
Uspene implementacije SOA i web servisa obezbedila su reenja za izazove ubrojnim industrijama:
Transport Potreba za procenjivanjem realnih cena je oteana kada poiljku prenosi vie prevoznika
Bankarstvo
Potreba za obezbedjivanjem bankarskih usluga vecem broju korisnika Potreba za integrisanjem velikog broja internih
aplikacija
Dravna uprava Potreba za deljenim pristupom podacima od strane vie resora
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
11/42
1. Uvod
Interoperabilnost izmedu heterogenih sistema
B2B (business-to-business) interakcije jeftiniji od EDI (Electronic Data Interchange) i drugih zaticenih alternativa
Viestruki zahtevi narocito za heterogene platforme, protokole i kanale
Enkapsulacija postojecih sistema Zatita od izmene sistema
Standardizacija servisa u okviru velikih projekata (enterprise)
Integrisanje third-party paketa
Koreografija procesa
Razvoj portala
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
12/42
WSDL i SOAP
Web servisi se objavljuju i pokreu na serveru. Klijent mora da zna koje usluge servis nudi.
Za opis usluga koristi se WSDL(Web Service Description Language).
Postoji mogunost da se iz WSDL kreiraju klase kako za serversku, tako
za klijentsku stranu SOAP (Simple Object Access Protocol) je standardni komunikacioni
protokol.Opcioni, nosi dodatne informacije,npr. digitalni potpis
Obavezan, nosi bitne informacije zaizvravanje metode (parametri) i rezultate.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
13/42
SOAP
Protokol za prenos XML poruka kroz mreuSOAP poruka je sama po sebi XML dokument
Nezavisan od vrste mree, transporta i programskog jezika
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
14/42
WSDL
Web Services Definition Language (jezik za definisanje web servisa)
Opisuje interfejs web servisa koristeci XML
Povezivanja
Operacije
Lokacije specificne implementacije Apstraktno definieoperacije i poruke
Koristi XML emuza cuvanje informacija o tipovima
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
15/42
Odnosi izmedu osnovnih standarda
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
16/42
Web servis aplikacija
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
17/42
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
18/42
2. Apache CXF
Open source frejmvork za pisanje Web servisa. Ukljuujeirok skup funkcija.
Podrka za Web servis standarde (SOAP, WSDL, WS-Security, WS-Security Policy...).
Lakoa korienja, jednostavno pisanje i objavljivanje Webservisa, integracija sa Spring frejmvorkom, uvoenje WS-Security-ja...
Omoguava razne naine za pisanje servisne i klijentskestrane.
Podrava pisanje REST Web servisa, implementira JAX-WSstandard. Za pisanje Web servisa bez anotacija nudi SimpleFrontend API.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
19/42
Kreiranje servisne strane pomou JAX-WS-a
Moguce jekoristiti JAX-WS standard za pisanje Web servisa (i zaklijentsku i za servisnu stranu), pri emu postoje sledei pristupi:
1. Pisanje servisa na viem i niem nivou apstrakcije. Ako elimo da sakrijemo rad sa SOAP porukama koristimoWeb servise (@WebService
anotaciju).
Za rad na niem nivou apstrakcije koriste se Web servis provajderi(@WebServiceProvider).
2. Top-down i bottom-up pristup. Top down pristup podrazumeve da se prvo napie ugovor (WSDL) pa onda automatski
generiu klase iz WSDL-a. (WSDL2Java alat).
Bottom-up pristup polazi od pisanja Java anotiranog koda, prilikom objavljivanja servisa
generie se automatski WSDL fajl. Preporuuje se top-down pristup jer bi servisi trebalo da budu
implementaciono neutralni. Bottom-up se preporuuje kadapostojeu aplikaciju elimo da osposobimo da bude servis.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
20/42
Kreiranje klijentske strane
JAX-WS generisani klijent pomou WSDL2Javaalata,
JAX-WS proxy,
JAX-WS Dispatch API (za direktan rad sa SOAPporukama),
Simple Frontend Client Proxy,
Dinamiki klijent (Dynamic Client).
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
21/42
Implementacija Web servisa
Servis koji za zadatu godinu studija vraa listu studenata sate godine.
Koraci:1. Napisati WSDL fajl.
2. Generisati sve servisne klase pomou WSDL2Java alata (ako piemo CXFklijenta moemo i sve klijentske klase generisati pomou ovog alata).
3. Napisati potrebnu logiku servisa.
4. Objaviti servis (Tomcat, Spring).
5. Testiranje
6. Implementirati WS-Security (zatita SOAP poruka koje se alju HTTPprotokolom).
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
22/42
WSDL (1)
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
23/42
WSDL (2)
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
24/42
WSDL2 Java alat
Pozivom WSDL2Java alata vri se mapiranje iz korienog WSDL fajla u javaklase. Moe se koristiti i za klijentsku i za servisnu stranu. Opti oblik naredbe jewsdl2java -ant -impl -server -d outputDirwsdlfile.wsdl
Generisanje klasa na klijentskoj strani po slinom principu. Sledei korak je implementacija biznis logike.
Imena paketa poklapaju se sa imenimatargetnamespace izWSDL fajla
Interfejs Web servisa
poklapa se sa imenom
Implementacija Webservisa,generiu seprazne metode u kojimase definie biznis logika
Klasa koja slui zainstanciranje proxy-jaza komunikaciju saservisom
U paketu se nalaze JAXB anotirani JavaBean-ovi koje se koriste za serijalizacijuobjekata u XML fajl i obrnuto. Sve onenastale su na osnovu elemenatadefinisanih u XML emi, predstavljajuomotae SOAP poruka
StudentList.javapackage studentservice;
import javax.jws.WebMethod;import javax.jws.WebParam;
...@WebService(targetNamespace = "http://studentService", name = "StudentList")@XmlSeeAlso({studentservice.types.ObjectFactory.class})public interface StudentList {@WebResult(name = "return", targetNamespace ="http://studentService/types")@RequestWrapper(localName = "getStudentList", targetNamespace ="http://studentService/types", className ="studentservice.types.GetStudentList")@ResponseWrapper(localName = "getStudentListResponse",
targetNamespace = "http://studentService/types", className ="studentservice.types.GetStudentListResponse")@WebMethodpublic java.util.List getStudentList(@WebParam(name = "year", targetNamespace ="http://studentService/types")int year) throws WrongYearException;
}
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
25/42
Objavljivanje servisa
Objaviti servis pomouCXF implementacijejavax.xml.ws.Endpoint API-ja.
Objaviti servis na aplikativni server (Tomcat). Konfiguracija servisa uovom sluajuje raena pomouSpring frejmvorka.
Spring je open source frejmvork nastao sa idejom da olakapisanjeenterprise aplikacija.
Spring nudi mnogo mogunostikao tosu:1. Podrkaza rad sa bazama podataka (JDBC)
2. Podrkaza rad sa ORM frejmovrcima (Hibernate,...)
3. Podrkaza rad sa transakcijama.
4. AOP
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
26/42
Objavljvanje servisaSpring frejmvork-Dependency Injection
U svakoj sloenijoj aplikaciji, objekat komunicira sa vie drugihobjekata.
Potrebno je da objekat ima reference na druge objekte.
Ako je objekat sam zaduen za postavljanje referenci dobija se kod sapuno zavisnosti, teak za testiranje.
Spring omoguava da se zavisnosti inject-uju u objekat kada se oninstancira pomou Spring klasa (Spring kontejneri). Objekat treba da ima reference na interfejse a ne na konkretne
implementacije.
Konfigurisanje zavisnosti kroz XML.
Spring kontejner parsira XML. Kada je potreban objekat trai se od Spring kontejnera i dobija sa svim
postavljenim zavisnostima.
Spring omoguava inject-ovanje kolekcija (liste,mape).
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
27/42
Apache CXFObjavljivanje servisa
beans.xml
web.xml
WritingServiceWithSpringcontextConfigLocationWEB-INF/beans.xml
org.springframework.web.context.ContextLoaderListener
CXFServletorg.apache.cxf.transport.servlet.CXFServlet
1
CXFServlet/*
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
28/42
Testiranje servisa
Konfiguracija klijentske strane slino, kroz Spring. Prilikom testiranja korieni su dodatni alati (soapUI, TCPMonitor).
1
Lazar Lazarevi2008/3333RTI
Petar Petrovi2007/0433ETA
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
29/42
Zatita SOAP poruka (WS-Security)Osnovni pojmovi
Osnovni pojmovi iz zatite podataka:1. plaintext (otvoreni tekst)- originalna poruka koja se alje,
2. ciphertext (ifrovana poruka) - kodirana poruka,
3. cipher (ifra)- algoritam transformacije originalne u kodiranu
poruku,4. key (klju)- informacija koriena u ifri, poznata samo
poiljaocu/primaocu,
5. encipher (encrypt) [ifrovanje (kriptovanje)]- konverzija originalneporuke u kodiranu,
6. decipher (decrypt) [deifrovanje (dekriptovanje)]- obnavljanjeoriginalne poruke iz kodirane,
7. cryptography (kriptografija)- nauka o metodama i principimaifrovanja.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
30/42
Zatita SOAP poruka (WS-Security)Simetrini algoritmi
Simetrini ili klasini algoritmi ifrovanja. Obezbeuju tajnost poruke.
Postoji tajni klju koji dele primalac i poiljalac.
Najpoznatiji algoritmi DES, TripleDES, AES.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
31/42
Zatita SOAP poruka (WS-Security)Asimetrini algoritmi
Asimetrini algortimi, najvei napredak u istoriji kriptografije (RSA). Svaki uesnik u komunikaciji ima par kljueva, javni i tajni.
Javni klju je dostupan svakome, tajni samo vlasniku.
Poruka ifrovana javnim kljuem moe da se deifruje samo tajnim
(obezbeuje se tajnost). Poruka ifrovana tajnim kljuem moe da se deifruje javnim
(autentikacija , integritet poruke).
Tajnost:
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
32/42
Zatita SOAP poruka (WS-Security)Autentikacija i Integritet
ifrovanje tajnim kljuem naziva se digitalno potpisivanje. Svako ko ima javni klju moe da proveri potpis i autentikuje
poiljaoca.
Obino se potpisuje samo deo poruke.
Izrauna se he funkcija nad odreenim delom poruke (SHA1). Potpie se (ifruje) tajnim kljuem he vrednost.
Ovime se pored autentikacije obezbeuje i integritet poslate poruke.
Integritet je obezbeen jer su he algoritmi tako osmiljeni da se tekodobije ista he vrednost za razliite ulazne podatke.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
33/42
Zatita SOAP poruka (WS-Security)CA
Uesnik u komunikaciji generie par javni/tajni klju i objavljuje javniklju.
Kako verovati da je uesnik u komunikaciji zaista onaj za koga sepredstavlja?
U komunikaciju se uvodi proverena trea strana (TTP) ili CA
(Certificate Authority) koja izdaje digitalne sertifikate. Digitalni sertifikat garancija od strane CA za javni klju uesnika u
komunikaciji.
Uesnik u komunikaciji generie samopotpisani sertifikat i poalje gaCA-u.
CA potpie svojim tajnim kljuem sertifikat. Svi koji veruju tom CA-u (poseduju njegov javni klju) mogu da proveresertifikat i utvrde validnost kljua.
X509 standard za sertifikate.
h
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
34/42
Apache CXFZatita SOAP poruka (WS-Security)
Krajnji ciljevi implementacije vezani za zatitu podataka: Klijent koji alje poruku je prvo potpisuje. Potpisuje se neki deo poruke, npr.body
deo poruke ili body i timestamp. Za raunanje hea moe da se koristi SHA-1algoritam, a za ifrovanje RSA algoritam tajnim kljuem klijenta.Potpis se ugraujeu header deo poruke.
Generiese kljusesije i njime se ifrujeporuka. U naimprimerima uvekemoifrovatisamo sadrajporuke tj. body deo. KoristiemoTripleDES ili AES simetrini
algoritam ifrovanja. Klju sesije se ifruje javnim kljuem servera, npr. RSA algoritmom, i ugrauje u
header poruke. U header deo poruke se ubacuje timestamp. Ako elimo da potpisujemo timestamp
onda se on ubaci u poruku pre potpisivanja. Ovako zatiena poruka alje se serveru. Na serverskoj strani deifruje se klju sesije tajnim kljuem servera i zatim deifruje
sadraj poruke. Proverava se digitalni potpis tako to se deifruje potpis javnimkljuem klijenta i dobije he vrednost koja se poredi sa ponovo sraunatim he-om.Proverava se timestamp.
Priprema se odgovor na isti nain kao to je to radio kljient i alje. Klijent proverava poruku koja je stigla.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
35/42
Zatita SOAP poruka (WS-Security)Implementacija
Apache CXF implementira WSS4J API.
WSS4J je Javina biblioteka za koja se koristi za zatituSOAP poruka.
Za zatituporuka i dodavanje svih potrebnih informacija uheader deo SOAP poruke koriste se WSS4J interceptor-i.
Konfiguracija interceptora moeda se radi programski ilikroz Spring.
Mogu se primeniti dva koncepta:1. Autentikacija slanjem korisnikogimena i ire(UsernameToken, za
testiranje)
2. Obostrano digitalno potpisivanje i ifrovanjeSOAP poruka
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
36/42
Zatita SOAP poruka (WS-Security)Implementacija
Pre konfiguracije interceptora potrebno je generisati parove javni/tajniklju.
Koristi se Javin keytool alat (sastavni deo JDK-a).
Potrebno je generisati parove javni/tajni klju, eksportovati javni kljuu sertifikat i instalirati ga na klijentskoj-serverskoj strani.
Korieni samopotpisani sertifikati.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
37/42
Zatita SOAP poruka (WS-Security)Implementacija
Konfiguracija interceptor-a za klijenta kroz Spring.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
38/42
Zatita SOAP poruka (WS-Security)Testiranje
2010-02-23T11:05:38.206Z2010-02-23T11:10:38.206Z
CN=SheraServis OU\=RCMaster O\=RCL\=Beograd S\=Srbija C\=RS
1266851056
XfXpV22miVm6cuhqDLhKZx7LLWEM4bRWCjjA3lHE68/IeNfe3c/4ckLrXuZESLYS2wJfJGQ2JzCblfKvKax6tyfg/JasJVNh8TWb4fPOE8eaKe1pS9ZWKDOBa+vUL26rvp7dvovbrFhilSGnwAZm9d9VpMmSgLsg3MhdHVeWAr0=
i2HBEgaW40flpW9OPEFrsX7esUk=
nA7YMNO3Hyp4g6s5K2SeEUPhjmWXeuEmJ7RBRCL8+t8I3tptlPZu1e0Jw3SqK2kYBM3hzIUcmJP8Bma6F6oPJ6IqzVTgg+H5jKYDg3dzXtNwbP0scDNCgc1wdxQTsMUtmnao3Nc0UXh1DcJTqWgIWFSqw+mFwuWX18E7Q7GC7K0=
CN=Shera OU\=RCMaster O\=RCL\=Beograd S\=Srbija C\=RS
1266849905
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
39/42
Zatita SOAP poruka (WS-Security)Testiranje
gtDLJOUZ3QK9KZomIF6E/3rWzUam0eouBpAt5mE7FEOmcmjPMTczvr63lUYhkK4gxn6+HuSMLcXMw7B5VOPvEfCKoabbB9yidNz7dTEQWKkOKZKwFG1fMg6nqR9DYSfgxsB26KE2mOBk+6YVB3Ltz/RZmTBMjh6gSA/gI7AMVoIlWIT9KSmHnHx1K63gNgkaKHcupBgK8Wm6BjD8XY7CZFzIxH7h43tRBJP8M06FGSpEVhya3vSNTBqme2kVanmx/EKSR7GJQS14FpK43TGx48NhlDg8WQbs8TUG8YzswTDY/IhiADNVoeXZg1GeBJFd4Nw3ThFsLtxxtqLXi/WxHX+DqcM2cD55CbCtWQaD6ahLa6DNR+5R6J8K2wx4O7r2kZeX9kfOjsK/SlPmr6Uxsg==
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
40/42
3.Interoperabilnost sa C#
Testovi bez zatite. Klijenske aplikacije Windows Forms
Automatsko generisanje klasa na dva naina:1. wsdl.exe alat (.net 1.1 pa nadalje) Automatski se poziva dodavanjem Web Service Reference
2. svcutil.exe (.net 3.0) Automatski se poziva dodavanjem Service reference
Generie se proxy klasa za slanje zahteva. Generisane SOAP poruke potpuno razumljive Java serveru i C# klijentu.
Rezultati testova performansi kada je klijent dobijen pomou svcutil.exe.
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
41/42
Interoperabilnost sa C# - Zatita podataka
Zatita SOAP poruka reena pomou dve tehnologije:1. WSE 3.0 (Web Service Enhacement)
2. WCF (Windows Communication Foundation), podrazumevano kada se koristi svcutil.exe
Za generisanje parova javni tajni klju makecert alat.
Konfiguracija potpuno deklarativna, kroz XML.
Obe tehnologije nude vizuelne editore za konfiguraciju.
Potrebno dosta vremena da se usklade Java C# standardi, naroitozbog nedostatka literature.
Npr. WCF nudi vie klasa za WS-Security mod ali se koristi SOAP 1.2protokol.
Java servisi implementirani pomou CXF su fleksibilniji (npr. kodpodrazumevanog potpisivanja.)
ta ako se uvede i npr. PHP klijent?
7/21/2019 IR4PIA Lekcija7 Realizacija Web Servisa
42/42
Dodatni testovi
Definisane nove usluge Web servisa kroz WSDL fajl. Testirano prenoenje datetime podataka, null vrednosti...