Pre-structured Systems
description
Transcript of Pre-structured Systems
![Page 1: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/1.jpg)
SelfConFoil no 1
Pre-structured Systems
![Page 2: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/2.jpg)
SelfConFoil no 2
Pre-structured systems (e.g. SDL systems)
• Stable (cannot be added or changed dynamically) :
•System structure
•Block/process sets
•Block/process types
• Variable:
•Number of instances in block/process sets
•Parameter and variable values
•Static and dynamic links (PId values)
• Is some degree of self configuring/adaptation possible?
• Stable (cannot be added or changed dynamically) :
•System structure
•Block/process sets
•Block/process types
• Variable:
•Number of instances in block/process sets
•Parameter and variable values
•Static and dynamic links (PId values)
• Is some degree of self configuring/adaptation possible?
System X
b(,):BT
c(,):CT
d(,):DT
a(,):AT??
??
??
??
??
![Page 3: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/3.jpg)
SelfConFoil no 3
Self configuration and adaptation:
• Interrogating the environment and obtaining information
• Using the information to:
•create instances within the block/process sets
•create references linking instances
• initialise and change data
• Note that the information must be dynamically provided by the environment! A configuration file prepared by a human operator does not count!
• Self configuration therefore requires descriptive information - metadata - about the environment to be provided by the environment (reflection).
• Self adaptation requires continuous supervision and adaptation to changes
• Information must be provided for each variable part (component set)
• Interrogating the environment and obtaining information
• Using the information to:
•create instances within the block/process sets
•create references linking instances
• initialise and change data
• Note that the information must be dynamically provided by the environment! A configuration file prepared by a human operator does not count!
• Self configuration therefore requires descriptive information - metadata - about the environment to be provided by the environment (reflection).
• Self adaptation requires continuous supervision and adaptation to changes
• Information must be provided for each variable part (component set)
![Page 4: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/4.jpg)
SelfConFoil no 4
How to do it?
we need:
• to discover/explore and monitor the environment –detect changes
• to manage addresses and keep a Registry over external entities and their properties
• to interpret properties and configure the system - create the internal instance structure, assign references and data values: AppConfigurer
• suitable identities/references and routing mechanisms
we need:
• to discover/explore and monitor the environment –detect changes
• to manage addresses and keep a Registry over external entities and their properties
• to interpret properties and configure the system - create the internal instance structure, assign references and data values: AppConfigurer
• suitable identities/references and routing mechanismsSystem X
b(,):BT
c(10,125):CT
d(,):DT
a(2,2):AT
ae(2,2):AET
Registry
ce(10,125):CET
AppConfigurer
Here the system adapts to changes in the
environment
Registry may be outside or inside system
![Page 5: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/5.jpg)
SelfConFoil no 5
Object plug-and-play
1. Object plug-in
2. Get address, discover Registry, and do registration
3. Notifiy AppConfigurer
4. Create application objects
5. Objects execute with dynamic find-bind if needed
1. Object plug-in
2. Get address, discover Registry, and do registration
3. Notifiy AppConfigurer
4. Create application objects
5. Objects execute with dynamic find-bind if needed
System X
b(,):BT
c(10,125):CT
d(,):DT
a(2,2):AT
ae(2,2):AET
Registry
ce(10,125):CET
AppConfigurer
1
2
3
4
5
Think of some
examples
![Page 6: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/6.jpg)
SelfConFoil no 6
Pre-structured systems in general
• Fixed (known) communication infrastructure
• Fixed (known) set of types
• Fixed (known) content structure
• Dynamic linking and data values
• Part descriptions (reflection)
• Mechanism for part registration, discovery and configuring
• Fixed (known) communication infrastructure
• Fixed (known) set of types
• Fixed (known) content structure
• Dynamic linking and data values
• Part descriptions (reflection)
• Mechanism for part registration, discovery and configuring
Limitations?
![Page 7: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/7.jpg)
SelfConFoil no 7
What if there are alternative component types?
System X
b(,):BT
c(10,125):CT
d(,):DT
a(2,2):AT
ae(2,2):AET
Registry
ce(10,125):CET
AppConfigurer
Several alternative component types may serve the new object
1
2
3
4
5
![Page 8: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/8.jpg)
SelfConFoil no 8
Then we need
1. A way to represent alternatives
2. A way to select the best alternative
3. or dynamically compose the best alternative (using compositional adaptation)
1. A way to represent alternatives
2. A way to select the best alternative
3. or dynamically compose the best alternative (using compositional adaptation)
System X
b(,):BT
c(10,125):CT
d(,):DT
a(2,2):AT
ae(2,2):AET
Registry
ce(10,125):CET
AppConfigurer
1
2
3
4
5
![Page 9: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/9.jpg)
SelfConFoil no 9
What if the object type is new?
Instances of unknown object types
System X
*(,):*
c(10,125):CT*
a(2,2):AT*ae(2,2):AET*
RegistryRegistry
ce(10,125):CET*
AppConfigurer
*(,):*
![Page 10: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/10.jpg)
SelfConFoil no 10
... then we need
• an extensible structure
• a way to load and ”install” new types
• i.e. some support for dynamic components
• less is known at design-time, more postponed to run-time
• an extensible structure
• a way to load and ”install” new types
• i.e. some support for dynamic components
• less is known at design-time, more postponed to run-time
System X
*(,):*
c(10,125):CT
a(2,2):ATae(2,2):AET
RegistryRegistry
ce(10,125):CET
AppConfigurer
*(,):*
![Page 11: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/11.jpg)
SelfConFoil no 11
Towards dynamic components• Using a minimal invariant infrastructure: addressing, routing, registry, ...
• Dynamic component lifecycle: install, configure, start, ... uninstall
• Dynamic linking with alternatives
• Extending/changing the structure
• Using a minimal invariant infrastructure: addressing, routing, registry, ...
• Dynamic component lifecycle: install, configure, start, ... uninstall
• Dynamic linking with alternatives
• Extending/changing the structure
System X
*(,):*
c(10,125):CT*
a(2,2):AT*ae(2,2):AET*
RegistryRegistry
ce(10,125):CET*
AppConfigurer
*(,):*
Changing/replacing types
Changing/replacing types
Extending/changing structure
Extending/changing structure
infrastructure infrastructure
Dealing with the unaticipated
Dealing with the unaticipated
![Page 12: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/12.jpg)
SelfConFoil no 12
And now it is getting difficult
• Services are not fixed
• Structure is not fixed,
• Even the types may change.
• Only a minimal infrastructure remains invariant and known
• Services are not fixed
• Structure is not fixed,
• Even the types may change.
• Only a minimal infrastructure remains invariant and known
–How to reason about the unknown?
–How to adapt to the unanticipated?
–How to ensure interoperabilty and consistency?
![Page 13: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/13.jpg)
SelfConFoil no 13
Basic functionalities identified so farGeneric:
• Detection, e.g. plug-in; plug-out
• Explore/discover: get address, find the registry and other support units
• Registry: register, de-register, lookup
• Learn: load new types/code
Generic:
• Detection, e.g. plug-in; plug-out
• Explore/discover: get address, find the registry and other support units
• Registry: register, de-register, lookup
• Learn: load new types/code
System X
*(,):*
c(10,125):CT
a(2,2):ATae(2,2):AET
Registry
ce(10,125):CET
AppConfigurer
*(,):*
Application dependent:
• AppConfigurer: configure, re-configure
• Find-bind-release (session initiation):
•Roles
•Agents
• Context/situation adaptation
Application dependent:
• AppConfigurer: configure, re-configure
• Find-bind-release (session initiation):
•Roles
•Agents
• Context/situation adaptation
Doctors
DoctorAgent[m]
Patients
PatientAgent[n]
![Page 14: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/14.jpg)
SelfConFoil no 14
Is the AppConfigurer such a good idea?
• Needs to know the applications
• Needs to change with the applications
• Build it into the applications in stead?
• Needs to know the applications
• Needs to change with the applications
• Build it into the applications in stead?
System X
*(,):*
c(10,125):CT
a(2,2):ATae(2,2):AET
RegistryRegistry
ce(10,125):CET
AppConfigurer
*(,):*
![Page 15: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/15.jpg)
SelfConFoil no 15
from content constraints to context constraints
Let object themself take care of application dependent configuringLet object themself take care of application dependent configuring
block type XT
b(,):BT
c(,):CT
d(,):DT
a(,):AT ae(,):AET
Registry
ce(,):CET
AppConfigurer
be(,):BET
de(,):DET
contentcontext
• Content constraints: govern the internal composition of (instances of) a type. A (context-free) grammar, for instance, is entirely made up of content rules.
• Context constraints: govern the external use of (instances of) a type. Gate constraints in SDL and interface definitions CORBA style, can be seen as context rules. Well defined roles provide context rules.
• Content constraints: govern the internal composition of (instances of) a type. A (context-free) grammar, for instance, is entirely made up of content rules.
• Context constraints: govern the external use of (instances of) a type. Gate constraints in SDL and interface definitions CORBA style, can be seen as context rules. Well defined roles provide context rules.
![Page 16: Pre-structured Systems](https://reader035.fdocuments.in/reader035/viewer/2022062410/56815937550346895dc670a1/html5/thumbnails/16.jpg)
SelfConFoil no 16
Pre-structured systems vs. dynamic component systems
• Pre-structured – emphasis on content constraints defining the part structure and the part types: compositional adaptation bounded by the structure
• Dynamic component systems – emphasis on context constraints that govern how components may be composed (without prescribing a particular structure): compositional adaptation bounded by the components
• Pre-structured – emphasis on content constraints defining the part structure and the part types: compositional adaptation bounded by the structure
• Dynamic component systems – emphasis on context constraints that govern how components may be composed (without prescribing a particular structure): compositional adaptation bounded by the components
Context constraints are key to dynamic component systems,
i.e. interface definitions