1.1. Component Coordination¶
While in the apartment’s architecture every component can trigger each other component, there is also the possibility to exhibit behaviors in a cooridnated matter. For that purpose, there are a number of coordination services.
All of these services allow for exclusive access to interactive functionality by using the Allocation Service that is able to assign resources to components sequentially based on priorities. Furthermore, all coordination components can be triggered via the listener/informer mechanism. Thereby, they are able to monitor the request and report it back to the component that triggered it by following the TaskState communication pattern (cf. Task Arbitration). In particular, only TaskState objects are regarded as valid input. Additionally, requesters are informed about the scenario’s status also on that scope with TaskState objects that use the initial request’s event id as a cause id. As an alternative trigger, there is a Button Infrastructure inside the apartment that can be used to initiate scenes, scenarios, or tasks.
There are three different coordination services that provide interfaces to apartment functions on separate interactive levels:
Service | Description |
---|---|
Scene Configuration | (static) configurations of the apartment’s infrastructure |
Scenario Coordination | interactive routines with a certain extent |
Task Arbitration | (simple) short-lived services or (other component’s) functions |
Ini files are used to configure these three main coordination services Scene Configuration, Scenario Coordination, and Task Arbitration. They specify which resources they occupy at the resources and how they communicate with other components inside the apartment. See each component’s documentation for a list of allowed values.
- Shared repository for coordination components (except Allocation Service):
- web: scenario-coordination-cfg
git clone https://projects.cit-ec.uni-bielefeld.de/git/lsp-csra.scenario-coordination-cfg.git/
- System startup:
- web: system-startup
git clone https://projects.cit-ec.uni-bielefeld.de/git/lsp-csra.system-startup.git/
- All coordination components can be found in
lsp-csra-base.sh
on thecoordination
tab:
component_allocation-service
component_scenario-service
component_scene-service
component_task-service
component_button-service