Verzovanie webových služieb

Richard Holly rho na interway.sk
Středa Listopad 11 17:43:16 CET 2009


Zdravim,
zaujimava publikacia na danu temu je:
Thomas Erl - Web Service Contract Design and Versioning for SOA
http://www.amazon.com/Web-Service-Contract-Design-Versioning/dp/013613517X/ref=sr_1_2?ie=UTF8&s=books&qid=1257957547&sr=1-2
vseobecne postupy a patterny ktore su tam uvedene sa zhoduju s tym co 
chcete riesit aj vy.

Michal Lašák  wrote / napísal(a):
>
> Zdravím konferenciu!
>
>  
>
> Píšem diplomovú prácu, ktorej téma je zhodná s názvom predmetu tejto 
> správy, teda "Verzovanie webových služieb".
>
> Pravdupovediac, mám s daným "problémom" minimum praktických 
> skúseností. Práve preto by som chcel poprosiť vás, odborníkov, o zopár 
> cenných informácií.
>
>  
>
> K riešeniu tejto problematiky ma viedla situácia vo firme, v ktorej 
> pracujem. Budujeme webové služby, ktoré majú za cieľ sprostredkovať 
> komunikáciu medzi informačným systémom (IS) a eshopmi. Platforma, na 
> ktorej WS budujeme, je Java a ako aplikačný server nám slúži JBoss.
>
>  
>
> Teraz k samotnému problému.
>
> Pri výmene verzie IS sa často mení DB štruktúra, preto musíme na dané 
> zmeny reagovať upravením zdrojového kódu webovej služby (úprava SQL 
> dotazov, prepared statementov...). Ďalší typ zmien je úprava 
> stávajúcich algoritmov vo WS, prípadne nová funkcionalita. V jednom 
> momente existuje viacero klientov s rôznymi verziami IS. Webová služba 
> momentálne beží na aplikačnom serveri len ako 1 WAR inštancia (väčšina 
> klientov totižto hosťuje priamo vo firme) a WS pracuje vlastne ako 
> centrálny článok pre všetky eshopy (líšia sa len data sourcom, na 
> ktorý sa WS pripája).
>
> Preto som chcel nájsť čo najlepší spôsob, ako začať WS verzovať, aby 
> som čo najjednoduchšie vedel udržovať jej zdrojový kód (ideálny stav 
> by bola stále jedna a jediná inštancia WS bežiaca v aplikačnom serveri 
> - čo som zistil, že bude NEMOŽNÉ) a aplikácie by bežali bez problémov 
> u každého z klientov (resp. s minimom zmien nutných na strane zákazníka).
>
>  
>
> Začal som teda bližšie pátrať na internete. Dosť ma prekvapil fakt, že 
> žiadne oficiálne stanovisko k verzovaniu WS neexistuje, našiel som len 
> best-practices. Dospel som zatiaľ k nasledovným bodom:
>
>  
>
> Čo všetko bude treba verzovať
>
> 1.            zdrojový kód - používame SVN, takže jednotlivé verzie by 
> sa riešili formou vetiev.
>
> 2.            WSDL
>
> 3.            XSD
>
>  
>
> Deployment z hľadiska zdrojákov a riešenie problémov s class loadingom
>
> 1.            Každá verzia do zvláštneho EAR súboru
>
> 2.            Jeden EAR s viacerými WAR súbormi (1 WAR = 1 verzia) - 
> každá verzia by musela mať vlastný class loader
>
> 3.            Premenovanie packagov v Jave pri vzniku novej verzie 
> (de-facto nová služba s novými triedami) - automaticky zavrhujem
>
> 4.            Použitie špecializovaných riešení, napr. OSGI - 
> obtiažnosť? oplatí sa? -- mám s tým nulové skúsenosti
>
>  
>
> Kedy sa budú vytvárať nové verzie => pri každej zmene, ktorá môže mať 
> dopad na konzumenta služby
>
> =>          "major changes" = odstránenie operácie, premenovanie 
> operácie, zmena parametrov operácie (dátový typ, poradie), zmena 
> komplexného dátového typu v XSD
>
> =>          pozor na implementačné zmeny, ktoré "zvonka nevidíme": 
> validácie vstupu/výstupu, security credentials, porušenie SLA (napr. 
> náročnejším algoritmom sa zväčší doba vykonania)
>
>  
>
> Nasadzovanie WS + volanie služieb zo strany konzumenta
>
> -              nasadzovať všetko na jeden endpoint alebo použiť 
> pravidlo nová verzia = nový endpoint
>
> -              priamy prístup k endpointom alebo použitie routera, 
> ktorý bude smerovať požiadavky podľa identifikátora (IP, parameter 
> verzie v URL...)
>
> -              použitie UDDI registra Apache jUDDI
>
>  
>
> Zaujímalo by ma, či máte skúsenosti s niektorými zo spomínaných bodov. 
> Budem veľmi vďačný za akékoľvek informácie, s ktorými sa podelíte.
>
> Ďakujem za ochotu.
>
>  
>
> S pozdravom
>
> --ml
>
>
> Michal Lašák
>
>
>
> __________ Informacia od ESET Smart Security, verzia databazy 4592 
> (20091110) __________
>
> Tuto spravu preveril ESET Smart Security.
>
> http://www.eset.sk

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://amaio.cz/pipermail/konference/attachments/20091111/728c312c/attachment.htm>


Další informace o konferenci Konference