Leitner, P. (2007). The Daios framework - dynamic, asynchronous and message-oriented invocation of web services [Master Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-15616
Service-orientierte Architekturen; dynamisches Binden; Web Services; SOAP; WSDL; REST
de
Service-oriented Architecure; dynamic service invocation; Web services; SOAP; WSDL; REST
en
Abstract:
Das Prinzip "Publish-Find-Bind" ist einer der wichtigsten Eckpunkte von service- orientierten Architekturen: Service Provider veröffentlichen ihre Services in einer Registry, wo diese dann von interessierten Service Consumern gesucht und gefunden werden können. Damit diese auch aufgerufen werden können mussen sie allerdings gebunden werden. Es ist daher unablässig, dass Consumer in der Lage sind, beliebige Services zur Laufzeit zu binden. Mit gegenwärtigen Web Service Frameworks (wie z.B.<br />Apache Axis 2, Apache WSIF, Codehaus XFire oder Apache CXF) ist dies oft nicht möglich oder zumindest nicht einfach - die Interfaces zum Binden zur Laufzeit sind oft umständlich zu benutzen und nicht für alle denkbaren Services anwendbar. Auch die Struktur von WSDL verursacht Probleme: WSDL ist sehr stark auf das Konzept von aufrufbaren "Operationen" zentriert - es ist daher nicht weiter verwunderlich, dass die meisten gegenwärtigen Web Services auch sehr operations- und RPC-zentriert arbeiten. Das Result sind meist sehr stark gekoppelte Anwendungen, die ganz im Gegensatz zu den angestrebten service-orientierten Architekturen stehen.<br />Die vorliegende Master-Arbeit beschreibt das Daios Framework. Daios ist eine client-seitige Lösung für die oben angeführten Probleme, die (1) ein Interface zum Binden beliebiger Services zur Laufzeit bereitstellt, die (2) die RPC-zentrischen Details von WSDL abstrahiert und statt dessen über ein simples Messaging-Interface (das auch asynchron benutzt werden kann) verwendet wird, und die (3) die Benützung von SOAP/WSDL-basierten wie auch von sogenannten RESTful Services über ein einheitliches Interface erlaubt. Die Arbeit beschreibt den State of the Art in den Bereichen SOAs, Web Services und REST, gibt einen Überblick uber wichtige verwandte Forschung, skizziert das Design des Daios-Prototypen, der als praktischer Teil im Rahmen dieser Master-Arbeit entstanden ist, und geht auch kurz auf dessen Verwendung ein. Schließlich wird der Prototyp mit existierenden Projekten (Axis 2, WSIF, XFire und CXF) in Bezug auf Funktionalität, Laufzeit und Memory-Verbrauch verglichen. Diese Evaluierung zeigt, dass das Daios-Framework in Bezug auf Performance auf ähnlichem Niveau ist wie die besten etablierten Service Frameworks, und daher fur Entwickler, die vor den o.g. Problemen stehen, eine gute Wahl darstellt.<br />
de
The principle of publish-find-bind is one of the cornerstones of Service-Oriented Architectures: service providers publish their services in service registries, service consumers use these registries to find services that they can use, and once a consumer has found an adequate service he can bind and use it. In order to implement this principle Web service clients obviously need to be able to bind to arbitrary services at run-time. Using current client-side service frameworks such as Apache Axis 2, Apache WSIF, Codehaus XFire or Apache CXF it is hard or even impossible to do this - if a dynamic invocation interface exists at all it is often awkward to use and limited in power. Additional problems are introduced by the nature of WSDL: given that WSDL is very much focused on the notion of "operations" it is not surprising that most of the currently deployed Web services also follow a strict "RPC-like" instead of a document-based approach, ultimately leading to tightly coupled architectures instead of SOAs.<br />This master's thesis introduces the Daios framework, a client-side Web service framework that overcomes these limitations by (1) providing a dynamic invocation interface that does not rely on precompiled stubs, (2) abstracting from the unseemlinesses of WSDL and exposing a simple and asynchronous messaging interface instead, and (3) supporting the invocation of SOAP/WSDL-based as well as RESTful services through a transparent interface. The thesis details the state of the art in the area of SOA, Web services and REST, gives an overview over relevant related work in the field, explains the design of the framework prototype implemented as part of the practical thesis work, depicts Daios' usage by means of real-world services, and finally compares the performance of the framework to Axis 2, WSIF, XFire and CXF in terms of supported functionality, runtime performance and memory usage. The evaluation concludes with the result that Daios is on one level with current state of the art Web service frameworks regarding runtime performance, and that the framework is a sound choice for developers facing the dynamic service invocation problem.