Information Technology Reference
In-Depth Information
Fig. 4. Application layer structure
service, the user can start new application platforms on each node to host the
Mandelbrot components. Afterwards the user can choose, which components to
start on which nodes. For the Mandelbrot application the user would typically
start calculator components on the remote nodes with the number of components
on each node corresponding to the number of available cores.
3.3 Application Layer
The application layer is concerned with how a distributed application can be built
based on the active components paradigm as well as providing tools for debugging
and testing applications during development. The active component metaphor
(cf. Fig. 4) comprises three aspects: a public interface describing provided and
required services, an internal autonomous behavior, and service binding specifi-
cations. Provided services describe the externally available functionality of the
component, while required services explicitly state the dependencies of a compo-
nent. The active components metaphor supports an agent-oriented view where
components do not only passively carry out service requests, but are capable of
autonomous behavior. The implementation of such behavior (i.e. business logic )is
based on one of several supported internal architectures allowing to build e.g. BDI
(belief desire intention) agents, simple task-based agents or BPMN (business pro-
cess modeling notation) workflows. To establish a connection for service interac-
tion , the active components runtime supports flexible binding mechanisms, which
allow statically wiring components together, dynamically searching for available
components and even creating new required components on demand. To enable
the autonomous behavior of the component, each service request is decoupled from
the caller and put into a request queue at the receiver side allowing a compo-
nent to decide for itself when to react to a request. The active component run-
time infrastructure is complemented by a suite of tools, included in the JCC, that
support common development tasks such as debugging components, monitoring
interactions, executing test cases, etc. These tools themselves are also realized
using active components and are thus capable of operating transparently on lo-
cal and remote components. Therefore a developer can debug remote components
easily by starting the JCC on her local computer.
Search WWH ::




Custom Search