properties such as state information, or quality-related
information for dynamic SLA negotiation facilities.
The validity scope of the property declares another
categorization scheme. A service property can be
valid either in the service call scope, service instance
scope, or service implementation scope.
Properties from the service call scope are only
valid during and / or after a service operation call, un-
til the next service operation call happens
2
.
Properties from the service instance scope are
valid during the whole lifetime of a logical service in-
stance. They usually represent average values of call
scope values, as well as average values for continu-
ous resource-driven measurements. Implementations
can provide cross-operation information, like details
about the interconnection to a wrapped external ser-
vice.
Properties from the service implementation scope
are valid as long as the service implementation re-
mains deployed in the SI stack. This allows service
implementations to persist and offer relevant informa-
tion across different service instantiations. This in-
cludes configuration data, which is passed during the
deployment process.
Our unified ASG information model for monitor-
ing data relates such resource, service and state infor-
mation in one type system. It is derived from exist-
ing standards in this area, like the DMTF Common
Information Model (CIM) or the OASIS Web Ser-
vice Quality Model (WSQM). The model relies on a
combination of approved standards with standardized
metrics from the JVM and application server monitor-
ing interfaces. Details of this information model are
out-of-scope for this paper.
3.3 Dynamic Service Placement
Many existing service infrastructures rely on some
entry router hardware to provide load balancing and
fail-over capabilities. With such an approach, the
number of service containers offering the requested
service limits the available throughput rate for a ser-
vice type.
Reasoned by the fact that higher layers in ASG
only work with the virtual representation of service
instances, physical execution host crashes and over-
load situations need to be transparently handled by
the SI layer. During normal operations, the coordina-
2
We assume here that service operation calls for one
physical instance are happening in a serialized manner. This
is reasonable since reentrant service implementations usu-
ally also perform an internal synchronization of parallel
calls, in order to protect their access to underlying data
sources.
tion layer forwards an incoming request to one of the
matching physical service instances. This physical in-
stance is ensured to have enough resources available,
in order to fulfill the demanded performance goal.
In case of a node failure, static instance bindings
must be re-established on another empty execution
node. In case of a non-contracted service binding, the
load of the failed node is evenly distributed to the re-
maining execution resources, until no more machines
with this service type are available. A scheduling al-
gorithm in the coordination layer, based on the work
from (A. Karve and T. Kimbrel and G. Pacifici and M.
Spreitzer and M. Steinder and M. Sviridenko and A.
Tantawi, 2006), manages the placement with respect
to the current request load and earlier placement de-
cisions. It relies on a specific placement Web service,
which supports the upload and installation of the ser-
vice binary. For each supported service implementa-
tion format (currently J2EE, servlet, and .NET), the SI
provides an implementation of the same remote place-
ment interface.
Since the factory service gives the coordination
layer endpoint information to the client, it is possi-
ble to operate multiple coordination layer instances in
parallel. It is also possible to operate multiple factory
instances, in combination with some low-level bal-
ancing mechanism (such as round-robin DNS). Only
the central state and data storage needs to have a
unique view on the available data. Our current imple-
mentation relies on reliable standard database tech-
nology here, so that in sum we are able to provide a
crash-fault tolerant hosting infrastructure.
4 IMPLEMENTATION DETAILS
Facing the problem of unified state representation
with Web services, two major standards are available:
The Web Service Resource Framework (WSRF) (Tim
Banks, 2005) and the WS-Context (Mark Little and
Eric Newcomer and Greg Pavlik, 2006) specification.
Both specifications support the standardized represen-
tation of stateful entities in a Web service interface,
and meanwhile both are approved OASIS specifica-
tions.
Since ASG manages cross-service state anyway
in the composition engine, our SI framework con-
centrates on state issues of single service instances,
where standardized state querying and lifecycle man-
agement becomes a major issue. With respect to this
problem domain, we identified the WSRF as optimal
approach.
The family of WSRF specifications is supported
by companies such as IBM and Microsoft, the Globus
DYNAMIC PROVISIONING AND MONITORING OF STATEFUL SERVICES
437