Dynamic Architectures and Architectural Style of Distributed Programs

Download Report

Transcript Dynamic Architectures and Architectural Style of Distributed Programs

JWire Concepts
Components are
Java objects.
Components play roles in one or more interaction
protocols. Roles are named and typed.
AComposite
foo : Foo
bar : Bar
out : Requirement<Input>
in : Input
Systems are created by instantiating
components and “wiring” their roles together.
New component types can
be defined as compositions
of existing components.
Meta-level Descriptors
Implementation
Meta level
component
descriptor
binding
descriptor
adaption
descriptor
component
descriptor
role
descriptors
Descriptors are per instance not per class (c.f. Java Beans)
Composition “Recipes”
• To place components, ALAN run-time
must know their resource requirements.
• How?
– Add this information to the descriptors
• Create descriptors first:
– Descriptors encapsulate how to create
components and bind them
– Act as “recipes” for a configuration
What For?
• Automatic creation of distributed app’s
– User’s applications generates recipes
• E.g. for searching, purchasing, negotiating, etc.
– Pass recipe to ALAN services
– ALAN deploys components in optimal
locations around network
• Mobile agents “done right”
– Concurrency, distribution, efficiency