Feb 03
Am 03 März 2008 findet in Stuttgart eine Spring Release Party statt. Auf der Party werden spannende Vorträge zu Spring, Spring .NET, Spring Security (ehemals Acegi) sowie Spring Web Flow / Spring Faces gehalten.
Zu den letzten beiden Themen werde ich einen Vortrag von 16.30 - 17.30 halten. Im Anschluss an dem Vortrag findet ein Code Camp statt an dem auch gehackt werden darf.
Weitere Informationen gibt es hier http://www.jugs.org/veranstaltung-03-03-08.html
Aug 18
Gestern wurde Spring Webservices nach über 2 Jahren Entwicklungszeit in der Version 1.0 final veröffentlicht. Spring Webservice ist ein Webservice Framework welches sich nach dem Contract First Prinzip ausrichtet. Dabei werden einzelne Webservices in Form von WSDL Dateien zuerst definiert und anschließend die beiden Teilnehmer Clients/Provider implementiert. Die Vorteile von Contract-First Design gegenüber dem Contract-Last Ansatz, bei welchem z.B. aus Java Interfaces heraus WSDL Beschreibungen generiert werden, liegen auf den Hand. Die Webservice Schnittstellen werden nicht zu stark an den entsprechenden Code gebunden, da man von den Sprachmitteln der XSD und WSDL ausgeht anstelle der von Java oder .NET. Eine interessante Zusammenstellung der Contract-First Vorteile befindet sich hier.
Mir gefällt an Spring Webservice besonders die lose aber trotzdem sehr elegante Trennung zwischen den Webservice und der konkreten Implementierung dahinter. So kann man über XPath Ausdrücke auf einzelne Elemente einer Webservice Anfrage zugreifen. Durch die lose Trennung ergeben sich die Vorteile das man nicht jedesmal den Code neue generieren muss sobald sich an der Webservice Schnittstelle etwas ändert. So kann ein Services welcher eine Bestellung abwickelt, aber nur an wenigen Feldern z.B. für Tracing oder Audit Informationen interessiert ist, unabhängig von den übrigen Datenstrukturen welche sich regelmäßig in einer Bestellung ändern die Daten verarbeiten.
Die Erweiterbarkeit von Spring Webservices macht sich an vielen Stellen bermerkbar. Will man z.B. keine XPath Ausdrücke verwenden und anstelle dessen mit einem DOM Document Arbeiten (z.B. weil man aus mehreren DOM Documenten ein komplexeres DOM Document zusammenbauen und zuückgeben will), dann muss man lediglich einen DOMEndpoint implementieren.
Auch das XML De/Serialisieren ist problemlos mit Spring Webservices möglich, es stehen verschiedene XML Binding Frameworks für diese Aufgabe zur Verfügung. Spring Webflow unterstützt von Haus aus JAXB1,JAXB2, Castor, XMLBeans, JIBX und XStream. Dadurch lassen sich Java Objekte für den Aufruf und die Verarbeitung von Webservice Anfragen verwenden, der Nachteil hierbei ist die engere Kopplung zwischen der Schnittstelle und dem Code.
Die Release mitteilung befindet sich hier