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 the coordination tab:
  • component_allocation-service
  • component_scenario-service
  • component_scene-service
  • component_task-service
  • component_button-service