The Environment for Distributed, Adaptive Services (EDAS) allows the usage
of client-side resources in a controlled, secure fashion. It supports
dynamic adaptation at run-time, provides a management infrastructure,
and offers system-level support for scalability and fault tolerance.
The environment is directly built upon our AspectIX middleware
infrastructure. It supports flexible service models, including
a fully centralized client/server structure, completely peer-to-peer
based systems, and various configurations "in between" that allow
a controlled use of peer resources. The overall goal is to provide
a generic service architecture that allows to implement the service
functionality once, and then, ideally, run this service with
different service models and also adapt it at run-time.
We support explicit management of available resources via a home service.
Using this service, domain administrators can provide resources for
services or service classes. For simplicity of administration, a
set of nodes within one administrative domain is managed jointly.
Furthermore, the home service is responsible for local resource monitoring
(e.g., currently available memory, CPU resources, and network bandwidth)
and notification about resource-specific events (e.g., addition or
removal of resources, node shutdown).
The second key component is the service environment. Its task is
to provide the environment where some service (or set of services)
is actually run within. It manages the available execution locations,
depending on resource offers of home services and trust specifications
of the administrator of the service environment. It also reacts to
notification from the home services, and suggests, e.g., that a
service should be migrated to another available node in reaction to
a shutdown notification. The service environment is also able to
consider different trust levels for the service. For example,
the core of a service (e.g., all of its primary data replicas)
might be located at highly trusted nodes only, whereas some
caching or secondary read-only replicas might be placed on
other available nodes as well.