Architecture and Mobile/Embedded Systems: Nenad Medvidovic

advertisement
Architecture and
Mobile/Embedded Systems:
An Uneasy Alliance or a Marriage Made in Heaven?
Nenad Medvidovic
CSSE and Computer Science Department
Viterbi School of Engineering
University of Southern California
Los Angeles, USA
March 18, 2009
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
Characteristics of Mobile Systems
[Mascolo, Capra, Emmerich 2002]
• Device
– Fixed
– Mobile
• Network connection
– Permanent
– Intermittent
• Execution context
– Static
– Dynamic
• How does this relate to embedded systems?
Embedded Software
• Interaction with physical world
• Executes on machines, not “computers”
• Written by engineers who are domain
experts
• Current methods offered by computer
scientists are not always satisfactory
• Complexity and size of embedded software
are growing rapidly
– From 10,000s SLOC to 10,000,000s SLOC in the
past 30 years
Properties of Embedded Software
(per Edward Lee)
• Timeliness
• Concurrency
• Liveness
– Non-terminating
• Interfaces
• Heterogeneity
• Reactivity
Problem Space
• Novel computing platforms
–
–
–
–
Smart phones
Mobile robots
Motes
Sensors
• Novel usage scenarios
–
–
–
–
–
–
Search-and-rescue
Environment exploration
Traffic management
Medicine / Assisted living
Wireless sensor nets
Mobile grids
• Challenges
–
–
–
–
–
–
–
Distribution
Decentralization
Heterogeneity
Resource constraints
Context awareness
Real-time requirements
Mobility of users, hardware, computing, data
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
Some Terminology
• Adopted from
Some Terminology
• Software architecture – set of principal design
decisions P about a software system
– a.k.a. architectural design decisions
• Architectural style – named collection of
architectural design decisions that
– are applicable in a given development context
– constrain architectural design decisions that are
specific to a particular system within that context
– elicit beneficial qualities in each resulting system
“As designed” vs. “as implemented”
• Prescriptive architecture – set of architectural
design decisions P made at time t that reflect
architects’ intent
• Descriptive architecture – set of artifacts A that
realize the design decisions P
– Refinements of design decisions in a modeling
notation
– Models of employed architectural styles and patterns
– Existing OTS components
– Implementation frameworks and middleware
Why Do We Care?
Prescriptive Architecture
Why Do We Care?
Prescriptive Architecture
Descriptive Architecture
Why Do We Care?
Prescriptive Architecture
Implemented System
Descriptive Architecture
So, Why Do We Care?
• Architectural drift – introduction of principal
design decisions into a system’s descriptive
architecture that
– are not included in, encompassed by, or implied
by the prescriptive architecture
– but which do not violate any of the prescriptive
architecture’s design decisions
• Architectural erosion – introduction of
architectural design decisions into a system’s
descriptive architecture that violate its
prescriptive architecture
More Terminology
• Architectural perspective –
non-empty set of certain
types of architectural
design decisions
More Terminology
• Architectural perspective –
non-empty set of certain
types of architectural
design decisions
– Example perspective:
deployment
• Deployment – outcome of
the activity of placing a
system’s software
components on its
hardware host
And, Finally
• Migration – relocation
of software system’s
modules across hosts
at runtime
– a.k.a. redeployment
– A form of mobility
And, Finally
• Migration – relocation
of software system’s
modules across hosts
at runtime
– a.k.a. redeployment
– A form of mobility
And, Finally
• Migration – relocation
of software system’s
modules across hosts
at runtime
– a.k.a. redeployment
– A form of mobility
And, Finally
• Migration – relocation
of software system’s
modules across hosts
at runtime
– a.k.a. redeployment
– A form of mobility
• Preserves functionality
• Changes QoS
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
Design and Mobility
• Architectural abstractions
– Resources
• Data
• Code
– Computational threads
– Interactions
– Sites
• Architectural styles
–
–
–
–
Client-server
Peer-to-peer
Publish-subscribe
Event notification
• What do they have to say about mobility?
Designing for Mobility
• Many design guidelines
–
–
–
–
–
–
–
–
Decouple components
Avoid shared memory
Insulate components from execution context
Use implicit invocation
Interact asynchronously
Use stateless components
Make interaction stateless
…
• What about using “mobility styles”?
Mobility Styles
• Carzaniga, Picco, Vigna 1997, 2007
– Client-server
Mobility Styles
• Carzaniga, Picco, Vigna 1997, 2007
– Client-server
– Remote evaluation
Mobility Styles
• Carzaniga, Picco, Vigna 1997, 2007
– Client-server
– Remote evaluation
– Code on demand
Mobility Styles
• Carzaniga, Picco, Vigna 1997, 2007
– Client-server
– Remote evaluation
– Code on demand
– Mobile agent
Architectural + Mobility Styles
• One does not seem to constrain the other
• Some architectural styles may be well suited
to mobility
– This is a function of appropriate design heuristics
• In principle, anything can be “designed”
• The challenge is to provide appropriate
analysis and implementation support
And the Conclusion Is?
• Optimist says
– Use the mobility styles in concert with
architectural styles’ design guidelines and things
will work out
• Pessimist says
– There is no guidance, and perhaps even an
intellectual disconnect, when using architectural
styles and mobility styles
• Realist says
– Well, this is software engineering and there rarely
are easy answers, but something is better than
nothing
And the Conclusion Is?
• Optimist says
– Use the mobility styles in concert with
architectural styles’ design guidelines and things
will work out
• Pessimist says
– There is no guidance, and perhaps even an
intellectual disconnect, when using architectural
styles and mobility styles
• Realist says
– Well, this is software engineering and there rarely
are easy answers, but something is better than
nothing
And the Conclusion Is?
• Optimist says
– Use the mobility styles in concert with
architectural styles’ design guidelines and things
will work out
• Pessimist says
– There is no guidance, and perhaps even an
intellectual disconnect, when using architectural
styles and mobility styles
• Realist says
– Well, this is software engineering and there rarely
are easy answers, but something is better than
nothing
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
Modeling and Mobility
• Several mobility languages
• A few with an architectural focus
– CHAM [Inverardi et al. 1995]
• Chemical solutions, reactions, molecular migration
– CommUnity [Fiadeiro et al. 2004]
• Formal modeling of coordination primitives (distribution
connectors) for mobility
– FarGo [Holder et al. 1999]
• Dynamic layout constraints in support of “complet” mobility
– Computing with tiles [Brun et al. 2007]
• Mobility as molecular self-assembly
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
Host A
– Link
α
β
Host B
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
Host A
– Link
α
β
Host B
α
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
Host A
α
β
Host B
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
Host A
α
β
Host B
α
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
Host A
α
β
Host B
α
β
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
Host A
α
β
Host B
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
Host A
α
β
Host B
α
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
Host A
α
β
Host B
α
β
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
α
β
Host B
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
Host A
α
β
Host B
β
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
Host A
α
β
Host B
α
β
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
– Duplicate
Host A
α
β
Host B
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
– Duplicate
Host A
α
β
Host B
α
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
– Duplicate
Host A
α
β
Host B
α
β
copy
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
– Duplicate
– Stamp
Host A
α
β
Host B
β'
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
– Duplicate
– Stamp
Host A
α
β
Host B
α
β'
Dynamic Layout
• Holder, Ben-Shaul, Gazit 1999
– Link
– Pull
– Bi-directional pull
– Duplicate
– Stamp
Host A
α
β
Host B
α
β'
Computing with Tiles
• A tile:
1
1
• Tiles attach
1
0
– when labels match
1
0
– a square
– labels on 4 sides
1
0
[Winfree 1998]
Computing with Tiles
• A tile:
1
1
– when labels match
1
0
• Tiles attach
0
– a square
– labels on 4 sides
1
0
[Winfree 1998]
Tile Interaction
#5
0
#3
#2
0
1
#0
#4
0
#2
#1
0
1
#3
0
#1
#0
0
1
#2
0
#0
0
0
1
#1
0
1
0
0
0
#0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
#0
0
1
0
1
1
#2
0
1
0
#3
#1
0
1
1
0
#2
#0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
#5
0
#1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
#4
0
#0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
#3
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
#2
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
#1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
#0
1
1
1
0
0
• Tiles can stick to assemblies:
Tile Interaction
#5
0
#3
#2
0
1
#0
#4
0
#2
#1
0
1
#3
0
#1
#0
0
1
#2
0
#0
0
0
1
#1
0
1
0
0
0
#0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
#0
0
1
0
1
1
#2
0
1
0
#3
#1
0
1
1
0
#2
#0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
#5
0
#1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
#4
0
#0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
#3
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
#2
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
#1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
#0
1
• Tiles can stick to assemblies
What Can Tiles Do?
• Assemble
– linear polymers [Adleman et al. 2001]
– squares [Rothemund et al. 2001, Adleman et al. 2001, 2002]
– arbitrary computable shapes [Soloveichik et al. 2004]
• Count
[Winfree 1998, Moisset et al. 2005, Barish et al. 2005]
• Compute binomial coefficients
[Winfree 1998, Rothemund et al. 2004]
• Emulate Turing machines
[Winfree 1998]
• i.e. Compute
[Brun 2006, Brun 2007, Brun 2008]
–
–
–
–
Add
Multiply
Factor
Solve NP-complete problems
Solving 3-SAT with Tiles
(x2¬x1¬x0)(¬x2¬x1¬x0)(¬x2x1x0)
1
0
0
?
v
v
0
0
0
1
1
1
1
?
¬v
¬v
¬v
¬v
0
0
0
*0
0
0
c
*v
0
0
*0
0
0
*0
0
c
?
v
v
v
v
v
v
v
0
c
v
0
||
1
*0
0
1
¬v
0
0
v
0
|
1
v
0
1
¬v
0
0
v
v
c
v
*0
0
c
v
0
0
*v
|
0
v
0
1
¬v
0
0
v
v
1
*1
0
v
0
1
¬v
0
0
1
|
1
*0
v
0
*1
¬v
0
0
v
0
v
c
v
0
*0
c
v
0
OK
v
1
0
||
1
0
v
0
1
¬v
0
0
v
¬v
v
1
0
¬v
||
1
0
v
0
1
¬v
0
0
v
0
1
0
¬v
0
||
1
0
v
0
1
¬v
0
0
v
1
0
¬v
0
1
||
1
0
v
0
*1
¬v
0
0
v
c
*¬v
0
1
c
||
1
0
v
0
1
¬v
0
0
v
¬v
0
1
c
¬v
||
1
0
v
0
1
¬v
0
0
v
0
1
c
¬v
0
||
1
0
v
0
*1
¬v
0
0
v
0
c
¬v
0
0
|
1
0
v
0
1
¬v
0
0
v
¬v
*¬v
0
0
¬v
|
1
0
v
*0
1
¬v
0
0
v
1
0
0
¬v
1
|
1
0
v
0
*1
¬v
0
0
v
0
0
¬v
1
0
|
1
0
v
0
1
¬v
0
0
v
¬v
*¬v
1
0
¬v
|
1
0
v
0
1
¬v
0
0
v
0
1
0
¬v
0
|
1
0
v
0
1
¬v
0
0
v
v
1
0
¬v
0
1
||
1
0
v
0
*1
¬v
0
0
0
c
*¬v
0
1
c
||
1
0
v
0
1
¬v
0
0
¬v
0
1
c
¬v
||
1
0
v
0
1
¬v
¬v
0
1
c
¬v
0
||
1
0
v
0
*1
1
0
c
¬v
0
0
|
1
0
v
0
*0
¬v
*¬v
0
0
¬v
|
1
0
v
v
1
0
0
¬v
1
|
1
0
0
0
|
1
1
v
|
|
0
0
¬v
1
0
v
1
*v
v
v
v
|
0
*¬v
1
0
0
1
v
*0
0
0
|
*0
1
0
0
1
v
0
*0
0
|
0
0
¬v
1
v
¬v
¬v
¬v
|
0
c
*v
0
OK
c
v
0
OK
v
v
*0
OK
v
1
0
OK
*v
1
0
OK
v
1
0
¬v
v
1
0
¬v
0
1
0
¬v
0
1
0
¬v
0
1
c
¬v
0
1
c
¬v
0
1
c
¬v
0
1
c
¬v
0
0
c
¬v
0
0
¬v
¬v
0
0
¬v
*1
0
0
¬v
1
0
0
¬v
1
*0
¬v
¬v
1
OK
¬v
0
1
OK
¬v
0
1
OK
¬v
0
1
c
¬v
0
1
c
¬v
0
1
c
¬v
0
1
c
¬v
0
0
c
¬v
0
0
¬v
¬v
0
0
¬v
*1
0
0
¬v
1
0
1
1
v
1
1
1
|
0
0
¬v
1
*0
0
1
v
0
0
0
|
0
¬v
1
OK
v
1
*v
v
v
v
|
0
1
OK
0
1
v
*0
0
0
|
*0
OK
1
1
v
1
*1
1
|
0
||
*1
||
||
||
|
v
c
Solving 3-SAT with Tiles
(x2¬x1¬x0)(¬x2¬x1¬x0)(¬x2x1x0)
1
0
0
?
v
v
0
0
0
1
1
*1
1
?
v
v
v
v
0
0
0
*0
0
0
c
*v
0
0
*0
0
0
*0
0
c
?
v
v
v
v
v
v
v
0
c
v
0
||
1
*0
0
1
v
0
0
v
0
|
1
v
0
*1
v
0
0
v
v
c
v
*0
0
c
*v
0
0
*v
|
0
v
0
1
v
0
0
v
v
1
*1
0
v
*0
1
v
0
0
1
|
1
*0
v
0
1
v
0
0
v
0
v
c
v
0
*0
c
v
0
OK
v
1
0
||
1
0
v
0
1
v
0
0
v
¬v
*v
1
0
¬v
||
1
0
v
0
1
v
0
0
v
0
1
0
¬v
0
||
1
0
v
0
1
v
0
0
v
1
0
¬v
0
1
||
1
0
v
0
1
v
0
0
v
c
¬v
0
1
c
||
1
0
v
0
1
v
0
0
v
¬v
0
1
c
¬v
||
1
0
v
0
1
v
0
0
v
0
1
c
¬v
0
||
1
0
v
0
1
v
0
0
0
c
¬v
0
0
|
1
0
v
0
1
v
0
v
¬v
¬v
0
0
¬v
|
1
0
v
0
1
v
0
v
1
0
0
¬v
1
|
1
0
v
0
1
0
0
v
0
0
¬v
1
0
|
1
0
v
0
v
0
0
v
¬v
¬v
1
0
¬v
|
1
0
v
1
v
0
0
v
0
1
0
¬v
0
|
1
0
0
1
v
0
0
v
1
0
¬v
0
1
|
1
v
0
1
v
0
0
v
v
c
¬v
0
1
c
|
0
v
0
1
v
0
0
0
¬v
0
1
c
¬v
1
0
v
0
1
v
0
0
0
1
c
¬v
0
1
0
v
0
1
v
v
0
c
¬v
0
0
1
0
v
0
1
1
¬v
¬v
0
0
¬v
1
0
v
0
0
1
0
0
¬v
1
1
0
v
v
0
1
0
0
v
1
1
0
0
¬v
1
0
v
1
*v
v
v
v
|
0
¬v
1
0
0
1
v
*0
0
0
|
*0
1
0
0
1
v
0
*0
0
|
0
0
v
1
*v
v
v
v
|
0
c
*v
0
OK
c
v
0
OK
v
v
*0
OK
v
*1
0
OK
*v
1
0
OK
v
1
*0
¬v
v
1
OK
¬v
0
1
OK
¬v
0
1
OK
¬v
0
1
c
¬v
0
1
c
¬v
0
1
c
¬v
0
1
c
¬v
0
0
c
¬v
0
0
¬v
¬v
0
0
¬v
1
0
0
¬v
1
0
0
¬v
1
0
¬v
¬v
1
0
¬v
0
1
0
¬v
0
1
0
¬v
0
1
c
¬v
0
1
c
¬v
0
1
c
¬v
0
1
c
¬v
0
0
c
¬v
0
0
¬v
¬v
0
0
¬v
1
0
0
¬v
1
0
1
1
v
*1
1
1
|
0
0
¬v
1
0
0
1
v
0
0
0
|
0
¬v
1
0
v
1
*v
v
v
v
|
0
1
0
0
1
v
*0
0
0
|
*0
0
1
1
v
1
*1
1
|
0
|
*1
|
no tile can attach
|
v
c
Mapping the Model to a System
• Each node deploys
tiles of a single type
• Initial mapping
• Node discovery
• Replication of seeds
• Recruitment of new
nodes to complete
the crystal
Client
Network
`
problem
in1, in2, ...
`
out1, out2, ...
`
`
Challenges
• Doing this in an actual system
– Fault tolerance
– Security
•
•
•
•
•
Active components
Active state
Scale
Overhead of explicit connectors
Ensuring adherence to the model
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
Implementation and Mobility
• Give me middleware or give me death!
• Categories of mobile middleware platforms
[Mascolo, Capra, Emmerich 2002]
1. Traditional
• ALICE, DOLMEN, Mobile DCE
2. Context-awareness
• UIC, Gaia, Nexus
3. Data sharing
• Coda, Odyssey, Xmiddle
4. Tuple spaces
• Lime, Tspaces, L2imbo
5. Service discovery
• UPnP, Jini, Salutation
What about Architecture?
• Does your mobile middleware enforce architectural
design decisions?
–
–
–
–
–
Computation
Data
Interaction
Interfaces
Styles
• If so, how?
– Shoot first, ask questions later
– Gentle persuasion
– Explicit constraints
• Another category of mobile middleware platforms
6. Architectural
• Aura, Prism-MW
The Mapping Problem Redux
• Components

?
– classes, packages, modules, …
• Connectors

?
– software buses, message services; what else?
• Interfaces

?
• Configurations

?
• Design rationale

?
• Behavior

?
• NFPs

?
– API signatures; what about protocols?
– interfaces, function pointers, reflection
– comments, documentation
– how do we translate FSP, StateCharts, Z, etc. to code?
– indirectly via rationale, inspections, testing, user studies, …
© Malek, 2007
SWE 622 – Distributed Software Engineering
64
What Gentle Persuasion May Look Like
More Specifically
Priority Dispatch
RRobinDispatch
EDF Scheduler
Scaffol d
IDispatch
Evt Frequency
Monitor
Rat eMonotonicSchedul er
IScheduler
Connection
Brick
FIFOScheduler
0..n
1..n
Security
IMonitor
IScaffold
RealTimeE
Architecture
Connector
Event
Socket
Distribution
IConnector
0..n
ISecurity
Component
IComponent
IRealTimeEvent
IArchitecture
Extensible
Event
IDistribution
Admin
IRDistribution
Extensible
Connector
Extensible
Component
I Compr essi on
Huffm an
Com pression
IAdmin
ArchRuntime
Analysi s
IRuntimeAnalysis
IConn Delivery Guarantees
Delivery
Guarantees
IConversion
XML
Converter
Serializable
I DeliveryGuarante esEvent
Del ivery
GuaranteesE
Architectural Structure
Comp A
Comp B
Connector D
Comp C
Architecture - DEMO
Comp A
Comp B
Comp C
class DemoArch {
static public void main(String argv[]) {
Architecture arch = new Architecture (“DEMO”);
// create components
Component a = new Component (“A”);
Component b = new Component (“B”);
Component c = new Component (“C”);
// create connectors
Connector d = new Connector(“D”);
// add components and connectors
arch.addComponent(a);
arch.addComponent(b);
arch.addComponent(c);
arch.addConnector(d);
// establish the interconnections
arch.attach(a, d);
arch.attach(b, d);
arch.attach(d, c);
}
}
Connector D
Architectural Interaction
Comp A
Send (e1)
Component C sends an event
Comp B
Event e = new Event (“Event_C”, REQUEST);
e.addParameter(“param_1", p1);
send (e);
Component B handles the event and sends a response
Connector D
Send (e)
Comp C
Architecture - DEMO
public void handle(Event e)
{
if (e.equals(“Event_C”)) {
...
Event e1= new Event(“RSP_to_C”, REPLY);
e1.addParameter(“response”, resp);
send(e1);
}...
}
An Application
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
Deployment and Mobility
• Deployment is an instance of stateless or weak
mobility [Fuggetta et al. 1998]
– Moving code and data, but not active state
• Deployment is changing
Then
Now
• Complete installation
procedure on CD
ROM
• Entire software
system is installed
• Software producers
and consumers
cooperating and
negotiating
• System update
Deployment Activities
•
•
•
•
Planning
Modeling
Analysis
Implementation
72
Deployment
Planning
• Find and effect a
deployment
architecture that
achieves desired
objectives
Deployment Modeling
• Hardware elements
• Software elements
• Their
parameters
• Their
mappings
• Constraints
• QoS
dimensions
• System
users
• …
Deployment Modeling
as Part of Architecture Modeling
Deployment Analysis
1. Are both deployments valid?
2. Which of the two deployments is “better”?
3. Does the selected deployment have required
properties?
Deployment Analysis in Action
Deployment Analysis in Action
Deployment Implementation
[Carzaniga et al. 1999]
Deployment Implementation
…and Architecture
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
Dynamic Adaptation and Mobility
• Four primitive adaptation operations at the
architectural level
– Addition
– Removal
– Replacement
– Reconnection
• Must be accompanied by modeling, analysis,
implementation support
• May involve mobility
“Figure 8”
Model of
Architectural
Adaptation
Mobility Challenges
• Component quiescence
• Connector adaptation
• Complex state
– Strong mobility [Fuggetta et al. 1998]
•
•
•
•
•
Complex dependencies
System performance
Service replication
Fault tolerance
Service discovery
Connector Adaptation
Connector Adaptation
Complex Dependencies?
Linux, as designed [Bowman et al. 1999]
Complex Dependencies?
Linux, as implemented [Bowman et al. 1999]
What Happens to QoS?
What Happens to QoS?
What Happens to QoS?
What Happens to QoS?
What Happens to QoS?
What Happens to QoS?
Outline
• Motivation
• Some terminology
• Relating architectures and mobility
– Design
– Modeling
– Implementation
– Deployment
– Dynamic adaptation
• Verdict
And the Verdict Is?
• Mobility is essential
• Mobility is hard
• Mobility must be thought of from an
architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet… yet
And the Verdict Is?
• Mobility/embedding is essential
• Mobility is hard
• Mobility must be thought of from an
architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet… yet
And the Verdict Is?
• Mobility/embedding is essential
• Mobility/embedding is hard
• Mobility must be thought of from an
architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet… yet
And the Verdict Is?
• Mobility/embedding is essential
• Mobility/embedding is hard
• Mobility/embedding must be thought of from
an architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet… yet
And the Verdict Is?
• Mobility/embedding is essential
• Mobility/embedding is hard
• Mobility/embedding must be thought of from
an architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet… yet
And the Verdict Is?
• Mobility/embedding is essential
• Mobility/embedding is hard
• Mobility/embedding must be thought of from
an architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet… yet
And the Verdict Is?
• Mobility/embedding is essential
• Mobility/embedding is hard
• Mobility/embedding must be thought of from
an architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet… yet
And the Verdict Is?
• Mobility/embedding is essential
• Mobility/embedding is hard
• Mobility/embedding must be thought of from
an architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet…
And the Verdict Is?
• Mobility/embedding is essential
• Mobility/embedding is hard
• Mobility/embedding must be thought of from
an architectural perspective
• Many hints already exist
• Many assumptions may need to be rethought
• No one-size-fits-all solutions
• No silver bullet… yet
Questions?
Download