SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

29
SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item

Transcript of SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

Page 1: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 1

Self configurating systems

- a starter

Rolv Bræk, Item

Page 2: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 2

Self configuration

By self configuration we mean dynamic configuration with minimal human participation.

Self configuration means dynamic adaptation to changing environments.

Applied in plug-and-play, ad-hoc systems/networks, autonomic computing, ...

By self configuration we mean dynamic configuration with minimal human participation.

Self configuration means dynamic adaptation to changing environments.

Applied in plug-and-play, ad-hoc systems/networks, autonomic computing, ...

Page 3: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 3

What can I do here?

???

Page 4: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 4

Self configuration Basis

1. Communication infrastructure

2. Registry functionality:

• to register objects, types, services/roles

• to find objects, types, services/roles

• to manage dynamic associations

1. Communication infrastructure

2. Registry functionality:

• to register objects, types, services/roles

• to find objects, types, services/roles

• to manage dynamic associations

Registry

object-a:Type-1 object-x:Type-z

Type-1 Type-n

role c

Page 5: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 5

Object plug-in

1. plug-in

2. Find Registry (Discovery)

3. Register with Registry

4. Explore the Registry

5. Request actors of services/roles

6. Establish dynamic association (lease)

May be mutually performed

1. plug-in

2. Find Registry (Discovery)

3. Register with Registry

4. Explore the Registry

5. Request actors of services/roles

6. Establish dynamic association (lease)

May be mutually performed

Registry

object-a:Type-1 object-x:Type-n

Type-1 Type-n

object-b:Type-2

1

2

3, 4, 5

6

Page 6: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 6

Object plug-out

1. Release dynamic associations

2. De-register with Registry

3. Plug-out

1. Release dynamic associations

2. De-register with Registry

3. Plug-out

Registry

object-a:Type-1 object-x:Type-n

Type-1 Type-n

object-b:Type-2 1

2

3

Page 7: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 7

Rebind on error

1. Detect error on dynamic associations

2. Request another actor for the role

3. Establish new dynamic association

Fault tolerance is a kind of self configuration, but not the same as rebind on error

1. Detect error on dynamic associations

2. Request another actor for the role

3. Establish new dynamic association

Fault tolerance is a kind of self configuration, but not the same as rebind on error

Registry

object-a:Type-1 object-x:Type-n

Type-1 Type-n

object-b:Type-2 1

2

3

Page 8: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 8

Using stubs/proxies

1. Hiding the protocols actually used

2. Making remote interfaces local

May be only one-way interfaces in some cases

1. Hiding the protocols actually used

2. Making remote interfaces local

May be only one-way interfaces in some cases

Registry

object-a:Type-1 object-x:Type-n

Type-1 Type-n

x-proxy: a-proxy:

x-stub:

a-stub:

x-skeleton:

a-skeleton:

Synchronoues method calls:

Page 9: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 9

Composite plug-in, plug-out

Registry

object-a:Type-1 object-x:Type-z

Type-1

Type-n

role c

Registry

object-a:Type-1 object-x:Type-z

Type-1

Type-n

role cEg:

–Bluetooth networks

–Sub-systems

–Network nodes

–Computers

–…

Possibly a Manager for each composite

Manager

Manager

Page 10: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 10

A few points

• Each object will discover/find its actual context

• Objects bind dynamically to each other in application dependent ways

• Objects supervise each other, detect errors and may rebind

• Objects may receive configuration information from each other and adapt to each other

• Objects may be composite (subsystems)

• Objects may represent or be associated with external devices

• Discovery may be mutual

• Each object will discover/find its actual context

• Objects bind dynamically to each other in application dependent ways

• Objects supervise each other, detect errors and may rebind

• Objects may receive configuration information from each other and adapt to each other

• Objects may be composite (subsystems)

• Objects may represent or be associated with external devices

• Discovery may be mutual

Page 11: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 11

Self configuration viewpoints

HWHW

OSOS

MiddlewareMiddleware i/oi/o

application applicationapplication application

Services/roles Services/roles

Type-1 Type-2

modeling

implementation

–plug-in

–plug-out

–move

–change type

–load type

Page 12: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 12

Object environments: roles

• In self configurating systems the object structure is not fixed, even the types may change.

• All objects assume an environment with roles that are bound statically or dynamically to actual objects (actors)

• When active; objects will seek to find and bind to the actors they need.

• For this they need some basic facilities for discovery and lookup that we assume is handled by a registry

• interfaces may be fixed or adaptable

• In self configurating systems the object structure is not fixed, even the types may change.

• All objects assume an environment with roles that are bound statically or dynamically to actual objects (actors)

• When active; objects will seek to find and bind to the actors they need.

• For this they need some basic facilities for discovery and lookup that we assume is handled by a registry

• interfaces may be fixed or adaptable

Type-1Registry

type-x1 registry rolerole-a 0..1

type-yrole-b 0..*

type-zrole-c 1..4

Page 13: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 13

Common use of roles

Roles in organizations:

• role in a play

• role in a project

• role in a service or function

Roles in organizations:

• role in a play

• role in a project

• role in a service or function

Roles in associations:

• family

• business

• session

Roles in associations:

• family

• business

• session

Are played by:

• actors

• persons

• objects

Aase SolveigPeer

motherlover

son

Hepburn Eastwood Roberts

Page 14: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 14

A service role is:

Conference Call …

Enquiry Call a b

c

com

Basic Call a b

call(a,b)callind(a)

MSC Basic Call Busy

answer(b)

calling(b)

end

banswer(b)

end

a:sub comsys b:subcom

call(a,b)callind(a)

MSC Basic Call Succesful

answer(b)

calling(b)

end

banswer(b)

end

a com b

S-role behaviourServices Service roles

• the part some object plays in a service

• used to model services separately

• the part some object plays in a service

• used to model services separately

Page 15: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 15

An association role is:

a bcomService roles

• the part of a behaviour (e.g. service role) visible at an association end or interface

• it defines a dynamic interface behaviour

• used to align interfaces, to check consistency and synthesize designs

• the part of a behaviour (e.g. service role) visible at an association end or interface

• it defines a dynamic interface behaviour

• used to align interfaces, to check consistency and synthesize designs

association roles

call(a,b) callind(a)

answer(b)calling(b)

A-role behaviour

a bcom

Page 16: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 16

Role relationships

service –role

associationrole

interface –role

1..*1..*

Page 17: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 17

Services and actors

• Typical services involve more than one service role

• Actors may play more than one service roles

• Different actors may play the same service role

• Service roles may interact and contend for actors

• Typical services involve more than one service role

• Actors may play more than one service roles

• Different actors may play the same service role

• Service roles may interact and contend for actors

A service change typically has impact on several types

service Actorservice role1..*1..* 1..*

plays

1..*

Page 18: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 18

Roles are like projections

And useful for:

• Architecture definitions: roles help to define interfaces precisely

• Reuse: roles are reusable in many types

• Design synthesis: roles serve as specifications

• Design verification: inverse of design - checking that the provided roles “contain” the specified roles

• Validation of associations and links: roles can be used like “plugs” and “sockets” - provided roles must “contain” required roles

And useful for:

• Architecture definitions: roles help to define interfaces precisely

• Reuse: roles are reusable in many types

• Design synthesis: roles serve as specifications

• Design verification: inverse of design - checking that the provided roles “contain” the specified roles

• Validation of associations and links: roles can be used like “plugs” and “sockets” - provided roles must “contain” required roles

Page 19: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 19

An actor has provided and required roles

Actor type

required interface role

provided association role

required assocoation role

provided interface role

«use»

provided service role

Page 20: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 20

Aligning provided and required roles

T-1 T-2

provided a-role of T-1

provided service role of T-1

required a-role of T-2

• Provided role behaviours shall “contain” the required role behaviours• Provided role behaviours shall “contain” the required role behaviours

Page 21: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 21

How to achieve well-formed systems?

• Content rules: govern the internal composition of (instances of) a type. A (context-free) grammar, for instance, is entirely made up of content rules. Too restrictive for open systems.

• Context rules: 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 association roles provide context rules.

• Content rules: govern the internal composition of (instances of) a type. A (context-free) grammar, for instance, is entirely made up of content rules. Too restrictive for open systems.

• Context rules: 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 association roles provide context rules.

self configuration is based on context rules

Page 22: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 22

Context rules only

Context rules only:

• Generally: Any object structure is well-formed as long as all context rules are satisfied.

• Lego: the “rules of the bricks”

• Here: required roles to be contained by provided roles.

Context rules only:

• Generally: Any object structure is well-formed as long as all context rules are satisfied.

• Lego: the “rules of the bricks”

• Here: required roles to be contained by provided roles.

O1

O2

O3

O4

Page 23: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 23

Levels of role alignment

Validation. Checking that the required roles are contained in the provided roles, and raising exceptions if not.

Adaptation. Negotiating and adapting the roles (within predefined bounds).

Learning. Learning to play new roles by receiving role definitions (e.g. using Java class loading)

Validation. Checking that the required roles are contained in the provided roles, and raising exceptions if not.

Adaptation. Negotiating and adapting the roles (within predefined bounds).

Learning. Learning to play new roles by receiving role definitions (e.g. using Java class loading)

Page 24: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 24

Role composition

• Defining roles as design units that can be composed and managed by actors

• Challenge 1: modular design units

• Challenge 2: composition rules

• Defining roles as design units that can be composed and managed by actors

• Challenge 1: modular design units

• Challenge 2: composition rules

Actor

Design units

Roles

Actor

Composition

Page 25: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 25

Role learning

• Provider roles are those that provide the service

• Client roles are those that use the service

• Client roles are propagated on demand

• Provider roles are those that provide the service

• Client roles are those that use the service

• Client roles are propagated on demand

Roles

Design units

Actor ActorActor

C P C

learnC learn CC P C

compose

Page 26: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 26

An actor design is required that:

• simplifies adding or changing provider service roles;

• can hold descriptions, or references to descriptions, of required client roles in a form that enable client objects to fetch role implementations as part of role alignment;

• can itself learn client roles required from other objects as part of role alignment.

• simplifies adding or changing provider service roles;

• can hold descriptions, or references to descriptions, of required client roles in a form that enable client objects to fetch role implementations as part of role alignment;

• can itself learn client roles required from other objects as part of role alignment.

Page 27: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 27

Vision: plug-and-play for services

• Define the service in terms of service roles

• Design the provider roles and client roles (as manus or design pattern)

• Install the roles in provider agents

• Dynamic role learning by client agents when linked to providers

Challenges:

• role design

• role composition

• dynamic role learning (not the same as Jini Proxies!!)

• Define the service in terms of service roles

• Design the provider roles and client roles (as manus or design pattern)

• Install the roles in provider agents

• Dynamic role learning by client agents when linked to providers

Challenges:

• role design

• role composition

• dynamic role learning (not the same as Jini Proxies!!)

Page 28: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 28

Note

• Few (no) languages support self configuration, support outside the languages is required

• Inherent part of many architectures:

•CORBA, DCOM, RMI

•OSA/PARLAY

•JINI

•Service Discovery Protocols in general HAVi

SLP (Service Location Protocol)

Salutation, NINJA

•MAC-OS

•Windows

•Ad-hoc networking

•Bluetooth

•Semantic web

• Few (no) languages support self configuration, support outside the languages is required

• Inherent part of many architectures:

•CORBA, DCOM, RMI

•OSA/PARLAY

•JINI

•Service Discovery Protocols in general HAVi

SLP (Service Location Protocol)

Salutation, NINJA

•MAC-OS

•Windows

•Ad-hoc networking

•Bluetooth

•Semantic web

Page 29: SelfCon Foil no 1 Self configurating systems - a starter Rolv Bræk, Item.

SelfConFoil no 29

To discuss

• About object and type description/search criteria and substitution criteria

• About dependence on physical location and devices

• And about individual objects vs groups vs any instance of a type

• Use telecom examples

• About a typical PC configuration

• About the need for composites and composite managers

• About object and type description/search criteria and substitution criteria

• About dependence on physical location and devices

• And about individual objects vs groups vs any instance of a type

• Use telecom examples

• About a typical PC configuration

• About the need for composites and composite managers