230 likes | 340 Views
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
E N D
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 • … but environments change • Dynamic frameworks (Ninja, CANS, Smock) • Different application configurations for adaptiveness • Change of configuration at run time
Example: Mail Application Main components Additional components Network client server encrypt decrypt cache high bw, sec low bw, sec high bw, insec low bw, insec fast secure
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
> Modeling of the CPP Network • Nodes • Links Framework • Components • Black boxes required interfaces implemented interfaces
> > Modeling of the CPP Network • Nodes • Links Framework • Components • Black boxes • Interfaces (typed data streams) implements (produces) requires (consumes)
> > Modeling of the CPP Network • Nodes • Links Framework • Components • Black boxes • Placed on nodes • Interfaces (typed data streams) • Sent over links • Available on nodes
> > Modeling of the CPP BW Security CPU Trust Network • Nodes • Properties • Links • Properties Framework • Components • Black boxes • Placed on nodes • Interfaces (typed data streams) • Sent over links • Available on nodes • Properties Security BW
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
<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 Example of Component Description CPU BW Secure BW Secure MSI-req MSI-imp
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
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
0 0 0 on 0 on 0 on 0 >50 =60 0 1 2 $ 0 $ 0 10 10 10 100 40 on 0 on 0 on 1 on 1 on 1 $ 0 10 10 $ 1 $ 1 01 21 21 21 on 0 on 1 on 1 on 2 on 2 on 2 $ 0 10 $ 1 01 21 21 $ 2 $ 2 12 $ $ on 0 on 1 on 2 on 2 $ Sekitei: Example Mail Client $ Cache Mail Interface Link crossing
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
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)
Scalability of Sekitei (Cont.) • Performance affected by number of components 2 comp, high bw, secure 3 comp, low bw, secure 4 comp, high bw, insecure 5 comp, low bw, insecure
Related Work • Static planners (GARA) • Fixed application structure • Resource constraints • Dynamic component-based frameworks (Ninja, Smock) • Find a feasible deployment plan given constraints • Optimal solution (CANS) • Only for chains of components • Sekitei • The model is expressive enough to support any of the above • Algorithm produces a feasible solution • Minimum number of operators in the plan
Summary • General model for the CPP • Can be used in static and dynamic component-based frameworks • Planning algorithm for the general CPP • Based on AI planning techniques • Scalable • Supports complex resource expressions • Integration • Smock • http://www.cs.nyu.edu/pdsg/ Follow the “Software” tab