1 July 4, 2022 Coordination middleware Coordination middleware for decentralized for decentralized applications in dynamic applications in dynamic networks networks Kurt Schelfthout, Tom Holvoet
1
Apr
il 21
, 202
3
Coordination middleware for Coordination middleware for decentralized applications in decentralized applications in
dynamic networksdynamic networks
Kurt Schelfthout, Tom Holvoet
2
Apr
il 21
, 202
3
Elevator TalkElevator Talk
• Dynamic networkso Changing composition over time
• Decentralized applicationso Application components spread over the network
nodes
o no single component has global control
• Coordination both important and difficult for application developer
• Coordination support needed o Appropriate abstractions
o Support abstractions through middleware
3
Apr
il 21
, 202
3
OverviewOverview
• Case Studyo Automatic Guided Vehicle control
• Views o gather and maintain context information
• Roles o setup and maintain a group of components
interacting through a protocol
4
Apr
il 21
, 202
3
Example ApplicationExample Application
5
Apr
il 21
, 202
3
Description of purposeDescription of purpose
• Decentralizationo Collision avoidance
o Deadlock avoidance
o Job assignment
• Dynamic networko Mobility of AGVs
• Coordinationo Support a higher level of abstraction wrt “message
sending”
o Deal with network dynamics
6
Apr
il 21
, 202
3
Goal StatementGoal Statement
• Developo Abstractions for the coordination of application
components
o Supported by middleware
• Advantageso Offers a suitable architecture to structure application
o Allows reuse of common functionality
o Accelerates application development
7
Apr
il 21
, 202
3
MethodologyMethodology
• Case-driveno Analyse case
o Propose abstraction
o Develop middleware
o Evaluate in case study
• Two iterationso Views for information gathering in mobile ad hoc
networks
o Roles for protocol-based coordination in mobile networks
8
Apr
il 21
, 202
3
ViewsViews
Node
Node
Node
Node
9
Apr
il 21
, 202
3
ViewsViews
• Application components useo tuplespace for publishing information tuples
o View for gathering information tuples
• Declarative description Which nodes? Which tuples?
E.g. ‘gather all printers within 30 meters’
• Middleware collects the tuples in the viewo As network changes
o As content of tuplespaces changes
10
Apr
il 21
, 202
3
Related WorkRelated Work
• Tuplespaces-based systemso LIME: shared tuplespaces
o EgoSpaces: views
o TOTA: Distributed tuples
• Publish/subscribe-based systemso STEAM : Location-dependent subscriptions
o JEDI: moveIn and moveOut operator
• Related to botho View ~ gathering of tuples from neighboring tuplespaces
o View ~ subscription on events on neighboring tuplespaces
11
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
12
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
13
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
14
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
15
Apr
il 21
, 202
3
Views for collision avoidance?Views for collision avoidance?
• Can be used as “discovery mechanism”o Detect possible overlapping hulls
• But: complex coordinationo Involving more than information exchange
o Mutual exclusion protocol needed
16
Apr
il 21
, 202
3
RolesRoles
• Behavior of one partner in an interaction protocol
• To describe object collaborations in OOo Framework design
o OO related languages (EpsilonJ)
o Role pattern
• To describe protocols in multi-agent systems
17
Apr
il 21
, 202
3
RolesRoles
Node
Node
Node Initiator
Node
Participant
Participant
Participant
18
Apr
il 21
, 202
3
Roles for protocol-based Roles for protocol-based interactioninteraction
• Group o declaratively describes with which nodes to execute
the protocol
o Determines activation of roles
• Middleware maintains groups of activated roleso Executing an interaction session
o Group is updated as network changes
19
Apr
il 21
, 202
3
Collision avoidance revisitedCollision avoidance revisited
Requester Voter 1 Voter 2 Voter n
Request(Hull)
Request(Hull)
Allow
Allow
Deny
...
Request(Hull)
Request(Hull)
20
Apr
il 21
, 202
3
Activation of RolesActivation of Roles
21
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
22
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
Start Requester Role
23
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
requester
voter
24
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
requester
voter
Request(Hull)
25
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
requester
voter
Deny
26
Apr
il 21
, 202
3
Colllision Avoidance in AGV caseColllision Avoidance in AGV case
Requester (waiting)
27
Apr
il 21
, 202
3
Evaluation: ViewsEvaluation: Views
• Developed protocol to support views in a MANET
• Experimentso Analytically & in a simple MANET similator
Overhead: <10%
Correctness: best-effort, very dependent on mobility of nodes
o In progress: ns-2 simulations
More realistic
Comparison with related protocols
• Applicationo Updating network stacks in an active network
o E.g. dynamically adding compressor/decompressor to improve quality of service
28
Apr
il 21
, 202
3
Evaluation: RolesEvaluation: Roles
• Real world application: Automatic Guided Vehicle controlo Role-based middleware used throughout
Collision avoidance, deadlock avoidance, job assignment,…
• Gain experience
• Real life testing2 vehicles in test setup
More vehicles in simulation
• Not “just” prototype implementation
29
Apr
il 21
, 202
3
Thank you!Thank you!
Questions?