Able Meeting 2004-12-10
Continued discussion of dynamic architecture
Dimensions of Dynamism
- Locus of control: external or internal?
- Locus of control: centralized or decentralized?
- May be different at design & impl time
- May not be a decision made by architect?
- David: considering the most decentralized dynamic architecture... Kramer & Magee's Sieve of Eratosthenes prime number generating system
- A filter generates positive integers in sequence starting at 2; creates a 2 multiple filter; it and following filters creates a new filter when a number is not divisible by this filter.
- localized -- both creation and model is very localized
- unbounded -- new filters can be continuously created
- Field of view: complete or partial?
- What may change vs. how does it change?
- How can we abstract away from these decisions at the modeling level?
- George: abstract data type and dynamic architecture--how same or different?
- operations on ADT similar to operations on structure in dynamic arch
- Jonathan: normally specify stack in terms of input/output, not usually in terms of the structure
- Structure vs Behavioral dynamism
- Challenge: can we combine the two, e.g., what Wright and Rapide did?
- Wright has limit on size, number of CSP channels static
- Darwin, "pointers" problem
- Jung Soo's take on behavior
- Start with operational behavior of elements, no dynamism yet, and first be able to check conformance of behavior
- Then extend to being able to support dynamism of behavior, such as element creation
- Challenge: can we combine the two, e.g., what Wright and Rapide did?
What about brainstorming on goals?
- Extend from the list of current limitations?
- ?
Major Open Issues:
- Type dynamism
- completely unexplored
- Modeling emergent systems
- Does architecture have benefits here?
- e.g., Kramer/Magee prime generator
- Modeling richer structural dynamism
- "Not" on limitations
- Modeling structural & behavioral dynamism together
- Jonathan hasn't seen an example of hierarchy and dynamism being considered together
- e.g., In a plug-in architecture, modeling both the internal behavior of plug-in and the top-level system coordinating the plug-in
- Dynamism and abstraction
- Hierachy, non-determinism
- Multiple views
- How to transition to implementation and/or check conformance
- Maybe more than one impl/more than one refinement
- Richer analysis
- Incremental progress towards goal/do no harm
- e.g., (David) Rainbow, which isn't based on notion of correctness, but of improving an attribute and being close to goal
- Concurrency -- what changes interfere with each other or with overall system functionality & quality attributes
- Stability (from the control world) -- can you guarantee that a fix to one problem doesn't destabilize another, whose fix breaks the original problem
- notion of objective function
- Incremental progress towards goal/do no harm
- How to separate concerns in dynamism, a serious engineering issues
- e.g., Rainbow, in terms of adaptation, expertise about system will reside in different people; ideally you want to compose the change units without conflicts, how?
- Field study of dynamism applications today
- What kinds of dynamism are needed?
- What could be checked?
Reading Groups in Spring '05
- From SHS, retracing the idea from "universal architecture" for dynamic systems, one where a component has control interfaces (M/A) in addition to steady-state interfaces (I/O)
- Four papers:
- Dynamic Wright
- Wermelinger
- ArchWare
- Kramer/Magee
- CHAM?
- Graph grammars
- Composite web services -- formalizations, e.g., state-machine based (IBM's BPL & WSDL)
- Autonomic computing
- Develop Wiki web as part of course
- c2 wiki