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