Service-oriented computing (SOC) receives a lot of attention from academia and industry as a means to develop flexible and dynamic software solutions. Facing the facts, service-oriented solutions are by far not as dynamic and adaptable as they claim to be. The initial idea of the SOA triangle to publish-find-bind-execute a service is often not implemented as envisioned due to a number of missing or wrongly-used concepts.
The VRESCo runtime environment aims at addressing some of the current challenges in Service-oriented Computing research and practice. Among others, this includes topics related to service discovery and metadata, dynamic binding and invocation, service versioning, service notifications and QoS-aware service composition. Besides this, another goal is to facilitate engineering of service-oriented applications by reconciling some of these topics and abstracting from protocol-related issues.
The basic architecture of VRESCo is shown in the following Figure.

To be interoperable and platform-independent, the VRESCo services are provided as Web services which can be accessed either directly using the SOAP protocol, or via the client library that provides a simple API for accessing these services. Services and associated metadata are stored in the registry database that is accessed using the object-relational mapping (ORM) layer. The services are published and found in the registry using the publishing and querying engine, respectively. The VRESCo runtime uses a QoS monitor which continuously monitors the QoS values of services, and keeps the QoS information in the registry up to date. Furthermore, the composition engine aims at providing support for QoS-aware service composition which is part of our ongoing work. The event notification engine is responsible for notifying subscribers when certain events of interest occur.
Web services evolve over time, which raises the need to maintain multiple service revisions concurrently. VRESCo supports service versioning by introducing the notion of service revision graphs (see below), which define successor-predecessor relationships between different revisions of a service and support multiple parallel branches of the same service. Revision tags (e.g., INITIAL, STABLE, LATEST) are used to distinguish the different service revisions. Service consumers make use of versioning strategies to specify which revision of a service should be invoked (e.g., always invoke the newest revision, always invoke a specific revision, etc.).
To carry out the actual Web service invocations the Daios dynamic Web service invocation framework has been integrated into the VRESCo client library. Daios decouples clients from the services to be invoked by abstracting from service implementation issues such as encoding styles, operations or endpoints. Therefore, clients only need to know the address of the WSDL interface describing the target service, and the corresponding input message; all other details of the target service implementation are handled transparently. Besides dynamic invocation, VRESCo also supports dynamic binding of Web services. The aim is to dynamically bind to services offering the same functionality. This is done using so called rebinding strategies which are integrated into the service proxies. The rebinding can either be QoS-based (using queries on the measures QoS attributes) or content-based (using unique identifiers within different service categories). Rebinding strategies are used to define when the current binding of the service proxy should be evaluated (e.g., periodic, on demand, on invocation, etc.).
We offer several internships where you can contribute to this project (see our Open Topics page for details). If you are interested in contributing to this project or have any question concerning the project, do not hesitate to contact us.
Technical Reports
Anton Michlmayr, Florian Rosenberg, Philipp Leitner, Schahram Dustdar:
"End-to-End Support for QoS-Aware Service Selection, Invocation and
Mediation in VRESCo". Technical Report (TUV-1841-2009-03), Vienna
University of Technology. May 2009.
Florian Rosenberg, Predrag Celikovic, Anton Michlmayr, Philipp Leitner, Schahram Dustdar: "An End-to-End Approach for QoS-Aware Service Composition", Proceedings of the 13th IEEE International Enterprise Computing Conference (EDOC'09), Auckland, New Zealand, September 2009.
Anton Michlmayr, Florian Rosenberg, Philipp Leitner, Schahram Dustdar: "Service Provenance in QoS-Aware Web Service Runtimes". Proceedings of the 7th IEEE International Conference on Web Services (ICWS'09), Los Angeles, CA, USA, July 2009.
Florian Rosenberg, Philipp Leitner, Anton Michlmayr, Predrag Celikovic, Schahram Dustdar: "Towards Composition as a Service - A Quality of Service Driven Approach", Proceedings of the 1st IEEE Workshop on Information and Software as Service (WISS'09 @ ICDE'09), Shanghai, China, March 2009.
Philipp Leitner, Anton Michlmayr, Schahram Dustdar: "Towards Flexible Interface Mediation for Dynamic Service Invocations", Proceedings of the 3rd Workshop on Emerging Web Services Technology (WEWST'08 @ ECOWS'08, Dublin, Ireland, November 2008.
Florian Rosenberg, Philipp Leitner, Anton Michlmayr, Schahram Dustdar: "Integrated Metadata Support for Web Service Runtimes", Proceedings of the Middleware for Web Services Workshop (MWS'08 @ EDOC'08), Munich, Germany, September 2008.
Philipp Leitner, Anton Michlmayr, Florian Rosenberg, Schahram Dustdar: "End-to-End Versioning Support for Web Services", Proceedings of the International Conference on Services Computing (SCC'08), Honolulu, Hawaii, USA, July 2008.
Anton Michlmayr, Florian Rosenberg, Philipp Leitner, Schahram Dustdar: "Advanced Event Processing and Notifications in Service Runtime Environments". Proceedings of the 2nd International Conference on Distributed Event-Based Systems (DEBS'08), Rome, Italy, July 2008.
Anton Michlmayr, Philipp Leitner, Florian Rosenberg, Schahram Dustdar: "Publish/Subscribe in the VRESCo SOA Runtime" (demo paper). Proceedings of the 2nd International Conference on Distributed Event-Based Systems (DEBS'08), Rome, Italy, July 2008.
Anton Michlmayr, Florian Rosenberg, Christian Platzer, Martin Treiber, Schahram Dustdar: "Towards Recovering the Broken SOA Triangle - A Software Engineering Perspective", Proceedings of the 2nd International Workshop on Service-oriented Software Engineering (IW-SOSWE'07 @ ESEC/FSE'07), Dubrovnik, Croatia, September 2007.