Mé zkušenosti s vytvářením webových služeb resp. WSDL (viz např. minulý článek) mě dovedly ke zjištění, že vždy raději nejdříve navrhnout WSDL a poté si nechat vygenerovat Java kód (WSDL First Development) než opačně - napsat Java rozhraní, přidat anotace a vygenerovat WSDL (Java First Development).
Píši vždy, ale myslím tím vždy, když budu mít možnost si službu sám navrhnout (zejména pro nové projekty) a příjemcem služby bude jiný systém než můj. Již více nebudu navrhovat WSDL pomocí Java rozhraní a anotací, protože s tím mám špatné zkušenosti:
- Zatím se mi nikdy nepodařilo vytvořit pomocí anotací takové WSDL, které bych si představoval. Vždy jsem musel vzít nějaké kompromisní řešení. Většinu lze ovlivnit pomocí JAX-WS anotací, ale pokud potřebuji jít dále (například vyladit mapování jednotlivých objektů), tak už to není zcela jednoduché a přijde mi to spíše komplikované. Dosud mám zkušenost s XFire a Apache CXF.
- Webové služby většinou používám při integraci s jinými systémy převážně systémy od jiných dodavatelů. Svým způsobem je pěkná podoba WSDL mojí vizitkou. Nemluvě pak o tom, že mohou být problémy při vytváření klientů v jiných jazycích než je Java. Ano, ono to vždy půjde, ale jak moc sližitě?
- Když se mi generuje WSDL z kódu, tak se mi lehce může stát, že něco změním a hned se mi změní WSDL (a ani si to nemusím uvědomit). Pokud budu mít nejdříve WSDL, tak toto se mi stát nemůže.
Pokud budu mít klienta i server pod kontrolou na stejné platformě, tak pak je ale otázka, proč používat webové služby a nepoužít něco rychlejšího, např. RMI, Hessian, Burlab... Přeci jen webové služby moc výkonné nejsou.
Může se také stát, že již budu mít nějaký historický systém a bude potřeba zpřístupnit určitou funkcionalitu přes webové služby - zde asi také bude vhodné jen přidat anotace, přidat konfiguraci a bude hotovo.
6 komentářů:
Přesně tenhle přístup (contract first) protežuje framework Spring Web Services. Vím jenom, že to existuje, nikdy jsem to nezkoušel, tak jenom takový tip :-)
kápl jsi na to chlape, tvůj úsudek byl rychlejší než děcko po prvním kari
No a v čem to WSDL děláte/píšete?
Momentálně používám WID, ale ten je drahý a jen kvůli schématům to nemá cenu.
V minulosti jsem používal XMLSPY. Teď koukám, že ta firma má i neco speciálního jen na schémata SchemaAgent.
Bohužel i tyto nástroje jsou za peníze.
O žádném dobrém nástroji zadarmo nevím, také bych ho uvítal.
Eclipse + WST
Přidávám odkaz na článek Od WSDL k webovej službe.
Okomentovat