Heute gab es im Dev-Meeting schon einige Eindrücke von der diesjährigen WJAX von mir zu hören. Diese Punkte möchte ich nun an dieser Stelle noch einmal kurz zusammenfassen.
Neben Rucksäcken, T-Shirts und Kulis gab es auch dieses Jahr im Westin Grand Hotel in München wieder einige spannende Sessions. Vor der Eröffnung der eigentlichen Hauptkonferenz am Dienstag stand für mich am Montag ein REST-Workshop auf dem Programm.
Im Workshop wurde eine durchaus substanzielle und auch praxisnahe REST-Einführung von Stefan Tilkov, einem Verfechter dieses Ansatzes zur Integration heterogener Systeme, gegeben. Substanziell deshalb, weil man deutlich merkte, dass dieser Mann weiß, wovon er redet. Schließlich ist er nicht erst vor ein oder zwei Jahren auf den REST-Zug aufgesprungen, sondern publizierte schon zu Hoch-Zeiten des SOA-Hypes 2006/2007 zu diesem Thema. Es war zudem deutlich zu spüren, dass einiges an praktischem Know-How hinter seiner technolgieneutralen Einführung zu REST stand.
Zum Einnorden unserer leichtgewichtigen Platform-Webservices war diese Veranstaltung perfekt geeignet. Wir machen bewusst kein REST, nutzen die Architektur des Webs aber auch für unsere Webservices und tunneln diese Architektur nicht, so wie es der WS-* Webservice-Stack mit WSDL/SOAP tut. Unser Ansatz ist an dieser Stelle nicht ganz so dogmatisch wie der, den die REST-Gemeinde predigt, sondern an den meisten Stellen eher pragmatisch und damit robust, leicht verständlich, gut wartbar und sehr flexibel.
Tilkovs Dogma und eine seiner Kernaussagen ist an dieser Stelle ganz plakativ: „tunneling is eval“ und solle daher möglichst vermieden werden. Manchmal sei es allerdings auch schlichtweg der letzte Ausweg. Selbst die REST-Gemeinde müsse hier bspw. bei den HTTP-Methoden PUT und DELETE zu Kunstgriffen greifen und diese Zugriffe ggf. über POST tunneln. Der WS-* Webservice-Stack hingegen nutze HTTP ausschließlich als Tunnel. Das Web sei mit der Nutzung eines SOAP-Endpunkts laut Tilkov im wahrsten Sinne des Wortes „zu Ende“. Die Mechanismen, die HTTP zur Maschinen-Maschinen-Kommunikation von Haus aus mitbringe, lägen damit fasst vollständig brach. Dabei gäbe es genau hierzu, so rechnet Tilkov mit SOAP und WSDL ab, im HTTP-Protokoll bereits vielfältige Möglichkeiten: URIs zur global eindeutigen Identifikation von Ressourcen, HTTP-Methoden um auf diesen Ressourcen zu arbeiten, Hypermedia zu deren Verlinkung, Content-Negotiation um sie in unterschiedlichsten Formaten maschinenlesbar bereitzustellen und HTTP-Caching zum effizienten Zugriff.