3rd Middleware for Service Oriented ComputingMW4SOC Workshop of the9th International Middleware Conference 2008 Previous years: | 2nd MW4SOC 2007 1st MW4SOC 2006 | |||
http://middleware2008.cs.kuleuven.be/ December 1 - 5, 2008 Leuven, Belgium |
Service Oriented Computing (SOC) is a computing paradigm broadly pushed by vendors, utilizing services to support the rapid development of distributed applications in heterogeneous environments. The visionary promise of SOC is a world of cooperating services being loosely coupled to flexibly create dynamic business processes and agile applications that may span organisations and computing platforms and can nevertheless adapt quickly and autonomously to changes of requirements or context. Consequently, the subject of Service Oriented Computing is vast and enormously complex, spanning many concepts and technologies that find their origins in diverse disciplines like Workflow Management Systems, Component Based Computing, "classical" Web applications, and Enterprise Application Integration (EAI) including Message Brokers and Middleware. In addition, there is a strong need to merge technology with an understanding of business processes and organizational structures, a combination of recognizing an enterprise's pain points and the potential solutions that can be applied to correct them.
Middleware, on the other hand, is defined as the software layer in a distributed computing system that lies between the operating system and the applications on each site of the system (ObjectWeb consortium). Middleware is the enabling technology of system and enterprise application integration (EAI) and therefore it clearly plays a key role for SOC.
While the immediate need of middleware support for Service Oriented Architectures (SOA) is evident, current approaches and solutions still fall short by primarily providing support for only the EAI aspect of SOC and do not sufficiently address composition support, service management and monitoring. Moreover, quality properties (in particular dependability and security) need to be addressed not only by interfacing and communication standards, but also in terms of integrated middleware support. But what makes these issues so different in a SOA setting? Why - for instance - is traditional middleware support for transaction processing different to transaction processing in SOA, reflecting different types of atomicity needs? One answer lies in the administrative heterogeneity, the loose coupling between coarse-grained operations and long-running interactions, high dynamicity, and the required flexibility during run-time. Recently, massive-scale and mobility were added to the challenges for Middleware for SOC.
The highly dynamic modularity and need for flexible integration of services (e.g. Web service implementations) may, therefore, require new middleware architectures, protocols, and services. These considerations also lead to the question to what extent service-orientation at the middleware layer itself is beneficial (or not). Recently emerging "Middleware as service" offerings, from providers like Amazon or from the open source community, support this trend towards "infrastructure services" that can be purchased and consumed over the Internet. However, this model may not be suitable for all kinds of middleware functions, including those addressing dependability (availability, reliability, integrity, safety, maintainability). Providing end-to-end properties and addressing cross-cutting concerns in a cross-organizational SOA is a particular challenge and the limits and benefits thereof have still to be investigated.
9h00-10h30: Session 1: Middleware layer - OSGi and WS-container
As the concept of Service Oriented Computing matures the need for well defined architectures and protocols to address this trend is essential if IT is going to properly embrace Service Oriented Computing. The SOC paradigm has several requirements to work properly such as service composition and cooperation in a loosely coupled fashion, ability to adapt autonomously to environmental and business changes and address concerns such as modularity, dynamicity and proper integration between services. The popularization of the OSGi platform its another effort towards the SOC paradigm by issuing key aspects such as modularity and dynamicity in its service oriented design. However there is much room for improvement namely on the creation of architectures and mechanisms to improve the dependability of the overall solution by strengthening key properties such as the availability, reliability, integrity, safety and maintainability of the platform. In this work we propose a middleware layer that offers the strong modular and dynamic properties required in an SOC environment by relying on OSGi while addressing dependability concerns. The starting point to achieve this is by instrumenting an OSGi implementation and providing means to monitor and manage it accordingly to business and environmental requirements. By relying on group communication facilities and some properties from the OSGi specification we are able to migrate OSGi environments between nodes thus minimizing service delivery disruption in the presence of faults and addressing, at the same time SLA properties by migrating (or shutting down) services that are consuming more resources than agreed/expected.
The OSGi Service Platform is becoming the de facto middleware for deploying modularized Java applications. It is a dynamic platform that relies on a service oriented approach for loose decoupling, but the absence of separate object spaces for isolating services of different modules cannot guarantee that service providers from uninstalled modules will no longer be referenced by active code. This may lead to memory retention and inconsistencies (e.g. a stale service that provides invalid cached data) that can introduce silent faults in the system by propagating invalid information. We present our ongoing work where we introduce an isolation layer between service consumer and provider by using dynamic proxies for services. When the corresponding service becomes unregistered (i.e. uninstalled) the mechanism is able to: 1) Guarantee that no consumers directly refer to the service provider; 2) allow finding out the misreferencing consumer code by using a fail-stop mechanism. We present tested in different OSGi based applications and benchmarked against other approaches for accessing services in the OSGi platform.
With ubiquitous computing becoming reality there is a great potential of computing power in the surroundings. This can be provided by mobile devices such as mobile phones and PDAs building spontaneous networks. For service provisioning, Web services are an accepted standard. We advocate that these can also be used in ubiquitous scenarios. In this paper, we present SoapME, a novel SOAP-based Web service container for Java ME. SoapME is very lightweight and supports resource-limited devices running only Java ME CLDC. Unlike related work, it provides dynamic deployment of SOAP-based Web services at runtime. Our SoapME prototype provides several extension points, for instance for invocation interception. It shows reasonable performance on a mobile phone and is compliant to the standard SOAP test collection specification.
11h00-12h30: Session 2: Service level agreements - QoS aware composition and provisioning
The growing popularity of hosted storage services and shared storage infrastructure in data centers is driving the recent interest in performance isolation and QoS in storage systems. The bursty nature of storage workloads requires significant over provisioning of the capacity to meet traditional response-time QoS guarantees, motivating the study of graduated, distribution-based QoS for storage servers.
In today's practice, we see readily precomposed commercial service bundles, such as a spam-free email box, consisting of more elementary services like mail storage and a spam-filter. However, these bundles may be suboptimal from the customer's perspective in terms of price and/or the elementary services that constitute the bundle. It would be advantageous to the customer if a service bundle more closely fulfilled the customer's individual requirements, by selecting the most appropriate elementary services included in the bundle. Also, by obtaining the bundle from a consortium of suppliers, rather than just one single supplier, the elementary services of each supplier with the best cost/benefit ratio can be selected. To put this vision into reality, we need middleware facilitating the automated composition of multisupplier bundles out of basic commercial services available online. We take the stand that the business nature of commercial services imposes leading requirements on the technical design of the middleware. Most importantly, the middleware should be fair in the sense that no single supplier obtains a preferred position in terms of service selection to satisfy a specific customer need. Also, the middleware should be able to deal with alternative services as offered by many competing suppliers, not to speak about the combinatoric explosion, resulting from combining the available services into candidate services bundles. We present a list of problems to be solved to arrive at middleware for multi-supplier service selection, bundling and provisioning. Also, we review existing work, usable to build a fair and efficient middleware solution for commercial service provisioning.
The management of Service Level Agreements (SLA), in the development of business processes in a Service Oriented Architecture (SOA) often requires much manual and error-prone effort by all parties throughout the lifecycle of the processes. The formal specification of SLAs into development tools can simplify some of this effort. In particular, the runtime provisioning and monitoring of processes can be achieved by an autonomic system that adapts to changing conditions to maintain the SLA's goals. A cost model allows the efficient execution and monitoring of processes, based on a declarative, user-specified optimality function. Experiments demonstrate that the system can indeed adapt to changing workload conditions, saving roughly 70% of the network bandwidth in one particular experiment.
14h00-15h30: Session 3: Adaptation and re-configuration
Service-Oriented Architectures (SOA) are built as compositions of inter-organizational services. These services are deployed and published by providers who are responsible for provisioning the services with sufficient resources. However, even though services are implemented by technologies providing a wide range of adaptation related features, such as configurable component models and communication infrastructures, state-of-the-art approaches to adaptive SOA systems do not provide principled solutions to exploit application layer adaptation mechanisms. Our technology-agnostic adaptation middleware has been designed for integrating and exploiting technology-specific adaptation technologies and mechanisms. In this paper, we describe how this middleware can support a cross-layer adaptation of SOA systems. In particular, we focus on the server-side perspective of SOA, and we show that our middleware is able to exploit both service interface and application layers technologies for supporting a coordinated adaptation of both layers.
The aim of the SOAJA project (Service Oriented Adaptive Java Applications) is to develop a service-oriented infrastructure enabling efficient application running in complex, networked computing environments (GRID). The SOAJA infrastructure provides components and services enabling static and dynamic load balancing through Java object observation. SOAJA performs large scale computing using idle CPU time of the nodes of a GRID. Java Distributed Applications consist of many objects which are processed in parallel which SOAJA allocates to each Grid nodes at runtime. In this paper, we present the mechanisms and algorithms which ensures the automatic adaptation of the application objects, in response to the computing evolutions and to modifications of the resource availability. These mechanisms permit to control the granularity of the treatment and the distribution of the application on the Grid platform.
Current workflow languages introduce limitations regarding modularity and flexibility. They are lacking support for reusability of primitive and structured activities. Designing processes often leads to duplication which makes the workflow descriptor complicated and unnecessarily large. Furthermore, due to the static character of the scripts, there is insufficient flexibility to model dynamic, evolvable and fail-safe workflows. In this paper we present a framework that allows the design of WS-BPEL processes in a modular way based on reusable templates. In addition, we introduce an extra layer on top of WS-BPEL that allows template reasoning based on parameter values. This layer offers support for decision logic to adapt processes dynamically. The approach is based on the "Ruby On Rails" (RoR) framework, known for adding dynamism to static web pages. The proposed solution is portable with existing WS-BPEL engines.
16h00-17h30: Session 4: Scalability, performance, and coupling
Many interesting emerging applications involve the coordination of a large number of service instances, for instance, as targets for dissemination or sources in information gathering. These applications raise hard architectural, scalability, and resilience issues that are not suitably addressed by centralized or monolithic coordination solutions. In this paper we propose a lightweight approach to service coordination aimed at such application scenarios. It is based on gossiping and thus potentially fully decentralized, requiring that each participant is concerned only with a small number of peers. Although being obviously simple and scalable, it has been shown that gossip-based protocols lead to emergent strong resilience guarantees. We illustrate the approach with WS-PushGossip, a proof-of-concept coordination protocol based upon the WS-Coordination framework. Besides presenting WS-PushGossip, we illustrate its usefulness with a sample application, and outline a middleware implementation based on Apache Axis2.
Causal and total event ordering are Quality of Service guarantees needed by many distributed applications, such as collaborative whiteboards, chat systems, online multiplayer games, and has also usage when implementing active replication, replicated databases and other systems. Most state of the art Publish/Subscribe middlewares offer no guarantees regarding event ordering either because of the bandwidth overhead associated with the vector clock approach or the bottleneck of a central sequencer. In this paper we propose an architecture based on distributed shared memory, where publishers of the same group can publish at different brokers, while maintaining event ordering. By synchronizing broker access to one shared logical clock per group, causal and total event ordering is achieved. Our architecture allows events to be delivered out-of-order to subscribers, while giving them a way to correctly reorder events. Results of experiments with a reference implementation of the architecture show that the bandwidth consumption of our ordering mechanism can be three orders of magnitude lower than a vector based solution.
Karl M. Göschka (chair)
Vienna University of Technology
Institute of Information Systems
Distributed Systems Group
Argentinierstrasse 8/184-1
A-1040 Vienna, Austria
Phone: +43 664 180 6946
Fax: +43 664 188 6275
Karl dot Goeschka (at) tuwien dot ac dot at
Schahram Dustdar
Vienna University of Technology
Institute of Information Systems
Distributed Systems Group
Argentinierstrasse 8/184-1
A-1040 Vienna, Austria
Phone: +43 58801 18414
Fax: +43 58801 18491
Dustdar (at) infosys dot tuwien dot ac dot at
Frank Leymann
University of Stuttgart
Institute of Architecture of Application Systems
Universitätsstraße 38
D-70569 Stuttgart, Germany
Phone: +49 711 7816-470
Fax: +49 711 7816-472
Frank dot Leymann (at) informatik dot uni-stuttgart dot de
Vladimir Tosic
National ICT Australia (NICTA)
Empirical Software Engineering
Eveleigh, NSW 1430, Australia
vladat (at) computer dot org
Lorenz Froihofer
Vienna University of Technology
Institute of Information Systems
Distributed Systems Group
Argentinierstrasse 8/184-1
A-1040 Vienna, Austria
phone: +43 1 58801 18417
fax: +43 1 58801 18491
mw4soc@dedisys.org