Constrained Component Deployment in Wide-Area Networks Using AI Planning Techniques. T. Kichkaylo, A. Ivan, V. Karamcheti New York University. Motivation. Component-based frameworks (CORBA, J2EE, .NET) Distributed applications with reusable components Static application structure - PowerPoint PPT Presentation
TRANSCRIPT
Constrained Component Deployment in Wide-Area Networks
Using AI Planning Techniques
T. Kichkaylo, A. Ivan, V. Karamcheti
New York University
Vijay Karamcheti
The line looks awkward.
Motivation
Component-based frameworks (CORBA, J2EE, .NET) Distributed applications with reusable components Static application structure … but environments change
Dynamic frameworks (Ninja, CANS, Smock) Different application configurations for adaptiveness Change of configuration at run time
Vijay Karamcheti
Colors seem "dull"
Vijay Karamcheti
People don't immediately associate these with component-based frameworks.Important to distinguish between "static" frameworks (CORBA, J2EE, DCOM, .NET, others) and more "dynamic" ones, like these ...I would add a bullet that distinguishes between these.
Vijay Karamcheti
Too terse - what is a "plan"
Main components
Additional components
Network
Example: Mail Application
fast
secure
client
decryptencrypt cache
high bw, sec
low bw, sec
server
high bw, insec
low bw, insec
Vijay Karamcheti
Colors seem "dull"
Vijay Karamcheti
People don't immediately associate these with component-based frameworks.Important to distinguish between "static" frameworks (CORBA, J2EE, DCOM, .NET, others) and more "dynamic" ones, like these ...I would add a bullet that distinguishes between these.
Vijay Karamcheti
Too terse - what is a "plan"
Modules of Dynamic Frameworks
Parts of a dynamic component-based framework Monitor Trigger Planner Deployer
Planner Purpose: given a description of the environment and available
components and goal, find a deployment plan– Set of components
– Linkages between them
– Placement of the components
Assumption: provided information is correct Guarantee: if found, the deployment plan is feasible
Component Placement Problem (CPP)
Basic structure of the CPP Environment = nodes and links Framework = components and interfaces Constraints (quantitative and qualitative) Goal is to place a client component on a given node
Previous work: add restrictions Chains of components (Conductor, CANS) Fixed locations (Ninja) Fixed set of properties (Ninja)
Reality: need to solve the general case Model Algorithm
Modeling of the CPP
Network Nodes
Links
Framework
Vijay Karamcheti
Modeling of what?You may want to use the same terminology we used in the paper: "Component Placement Problem"
Vijay Karamcheti
Add words to the picture so it is clear that you are referring to components, nodes, and links ...Not immediately clear how you go from the example component placement problems to concerns of security, trust, ....also, NumReq, ReqSize is way too specific for this early in the presentation ... this needs to be prefaced by something like the following:1. component placement needs to satisfy various constraints: quantitative (resource level) as well as qualitative (e.g., give example of one such ..)2. additionally it needs to do the above starting from descriptions at the level of individual components3. need to express the behavior of components in a way that is independent of their use in the final placement4. here is our approach for doing this ...[ the material on the slide is at this level; but will not make sense unless the first three points are made]
Vijay Karamcheti
what is an "interface"?the point: you need a discussion of how you are modeling components before you dive into this.
Modeling of the CPP
Network Nodes
Links
Framework Components
Black boxes >
required
interfaces
implemented
interfaces
Vijay Karamcheti
Modeling of what?You may want to use the same terminology we used in the paper: "Component Placement Problem"
Vijay Karamcheti
Add words to the picture so it is clear that you are referring to components, nodes, and links ...Not immediately clear how you go from the example component placement problems to concerns of security, trust, ....also, NumReq, ReqSize is way too specific for this early in the presentation ... this needs to be prefaced by something like the following:1. component placement needs to satisfy various constraints: quantitative (resource level) as well as qualitative (e.g., give example of one such ..)2. additionally it needs to do the above starting from descriptions at the level of individual components3. need to express the behavior of components in a way that is independent of their use in the final placement4. here is our approach for doing this ...[ the material on the slide is at this level; but will not make sense unless the first three points are made]
Vijay Karamcheti
what is an "interface"?the point: you need a discussion of how you are modeling components before you dive into this.
Modeling of the CPP
Network Nodes
Links
Framework Components
Black boxes
Interfaces (typed data streams)
>>implements
(produces)
requires
(consumes)
Vijay Karamcheti
Modeling of what?You may want to use the same terminology we used in the paper: "Component Placement Problem"
Vijay Karamcheti
Add words to the picture so it is clear that you are referring to components, nodes, and links ...Not immediately clear how you go from the example component placement problems to concerns of security, trust, ....also, NumReq, ReqSize is way too specific for this early in the presentation ... this needs to be prefaced by something like the following:1. component placement needs to satisfy various constraints: quantitative (resource level) as well as qualitative (e.g., give example of one such ..)2. additionally it needs to do the above starting from descriptions at the level of individual components3. need to express the behavior of components in a way that is independent of their use in the final placement4. here is our approach for doing this ...[ the material on the slide is at this level; but will not make sense unless the first three points are made]
Vijay Karamcheti
what is an "interface"?the point: you need a discussion of how you are modeling components before you dive into this.
Modeling of the CPP
Network Nodes
Links
Framework Components
Black boxes Placed on nodes
Interfaces (typed data streams) Sent over links Available on nodes
>>
Vijay Karamcheti
Modeling of what?You may want to use the same terminology we used in the paper: "Component Placement Problem"
Vijay Karamcheti
Add words to the picture so it is clear that you are referring to components, nodes, and links ...Not immediately clear how you go from the example component placement problems to concerns of security, trust, ....also, NumReq, ReqSize is way too specific for this early in the presentation ... this needs to be prefaced by something like the following:1. component placement needs to satisfy various constraints: quantitative (resource level) as well as qualitative (e.g., give example of one such ..)2. additionally it needs to do the above starting from descriptions at the level of individual components3. need to express the behavior of components in a way that is independent of their use in the final placement4. here is our approach for doing this ...[ the material on the slide is at this level; but will not make sense unless the first three points are made]
Vijay Karamcheti
what is an "interface"?the point: you need a discussion of how you are modeling components before you dive into this.
Modeling of the CPP
Network Nodes
Properties Links
Properties
Framework Components
Black boxes Placed on nodes
Interfaces (typed data streams) Sent over links Available on nodes Properties
CPU
Trust
BW
Security
Security
BW
>>
Vijay Karamcheti
Modeling of what?You may want to use the same terminology we used in the paper: "Component Placement Problem"
Vijay Karamcheti
Add words to the picture so it is clear that you are referring to components, nodes, and links ...Not immediately clear how you go from the example component placement problems to concerns of security, trust, ....also, NumReq, ReqSize is way too specific for this early in the presentation ... this needs to be prefaced by something like the following:1. component placement needs to satisfy various constraints: quantitative (resource level) as well as qualitative (e.g., give example of one such ..)2. additionally it needs to do the above starting from descriptions at the level of individual components3. need to express the behavior of components in a way that is independent of their use in the final placement4. here is our approach for doing this ...[ the material on the slide is at this level; but will not make sense unless the first three points are made]
Vijay Karamcheti
what is an "interface"?the point: you need a discussion of how you are modeling components before you dive into this.
Modeling Behavior
Descriptions are application-independent Components are reusable Need to reason about behavior of a component in an application
Components: Placement Required and implemented interfaces
– Determines application structure (DAGs)
Conditions Effects
– Properties of implemented interfaces
– Change in node properties
Interfaces: Link crossing behavior Interface at the destination Change in link properties
Example of Component Description
<Component>
<Name>ViewMailServer
<Requires>
<Interface>MSI-req
<Implements>
<Interface>MSI-impl
<Conditions>
Node.CPU > MSI-req.BW / 100
MSI-req.BW > 10
MSI-req.Secure = True
<Effects>
Node.CPU -= MSI-req.BW / 100
MSI-impl.BW := MSI-req.BW * 3
MSI-impl.Secure:=True
MSI-req MSI-imp
CPUBW
Secure
BW
Secure
Vijay Karamcheti
Modeling of what?You may want to use the same terminology we used in the paper: "Component Placement Problem"
Vijay Karamcheti
Add words to the picture so it is clear that you are referring to components, nodes, and links ...Not immediately clear how you go from the example component placement problems to concerns of security, trust, ....also, NumReq, ReqSize is way too specific for this early in the presentation ... this needs to be prefaced by something like the following:1. component placement needs to satisfy various constraints: quantitative (resource level) as well as qualitative (e.g., give example of one such ..)2. additionally it needs to do the above starting from descriptions at the level of individual components3. need to express the behavior of components in a way that is independent of their use in the final placement4. here is our approach for doing this ...[ the material on the slide is at this level; but will not make sense unless the first three points are made]
Vijay Karamcheti
what is an "interface"?the point: you need a discussion of how you are modeling components before you dive into this.
Solving the General CPP
The CPP is hard Need both select a subset of components and place them
– Need some sort of search
Too big for exhaustive search– Hundreds of nodes, dozens of component types
AI planning Another search problem Find a feasible sequence of operators that brings the system
from the initial state to the goal state– State = set of variables
– Operator = atomic action changing the state
Vijay Karamcheti
What is the problem?Need to have a more precise discussion/description of this before you can get into this stuff
Solving the General CPP
General CPP can be reduced to AI planning problem Resource and interface availability are variables Component placement and link crossing are operators
Existing AI planners cannot be used directly General AI planning is not very scalable AI planning has limited support for resources CPP has more complex resource expressions
Sekitei uses AI techniques to limit search CPP has simple logical structure
Sekitei
Assumptions Size of the deployment plan is small compared to the size of
the network All resource functions are monotonic Properties of implemented interfaces (interfaces at
destination) do not appear in formulae
Limit the search Find all operators relevant for achieving the goal Among those find possible operators Propagate resource constraints from the initial state Use function monotonicity for pruning Only then perform search in small set of operators
structure
constraints
Vijay Karamcheti
What is the problem?Need to have a more precise discussion/description of this before you can get into this stuff
Sekitei: Example
$ 0
on 0
10
on 1
on 0
$ 0 01
on 1
$ 110
on 2
21
$ 0 $ 110 01 12
on 1 on 0
21 $ 2
on 2
0
on 0
on 1
$ 110
10
on 1
on 2
21
0
on 0
21 $ 2
on 2
$ 0
on 0
0 1 2>50
100 40
=60
Mail Client
$ Cache
Mail Interface
Link crossing
10
on 1
on 2
21
0
on 0
$
$
$
Evaluation
Reality: Want a deployment plan within seconds Planning time can be affected by
Size of the network Network topology Structure of the application (bushiness of DAGs) Number of components in the framework Size of the plan
– Number of logically necessary operators
– Number of components added due to resource restrictions
Experiment Setting
Java implementation Mail application GA Tech ITM graphs
extended with properties
0.0
0.5
1.0
1.5
2.0
2.5
20 28 44 54 64 72 79 93
Number of nodes in the network
Tim
e (s
)
Scalability of Sekitei
It scales nicely with respect to Size of the network Number of components in the framework Size of the plan (necessary operators)