Run Target Activation#

This interface provides control functionality for activating and managing run targets. It allows users to trigger execution of configured Run Targets through a standardized activation mechanism.

The following use cases are supported by the Control Interface provided by the Launch Manager.

Switching between Run Targets#

The Launch Manager allows switching between different Run Targets. When a switch is requested, the Launch Manager evaluates the current state and the target state, determining which components need to be started or stopped based on their dependencies.

Activating a Run Target

When a request to activate a Run Target is received via the ControlInterface, the Launch Manager shall perform the following operations:

  1. Validation: Evaluate if the conditions are correct for activating the requested Run Target: - The Run Target exists in the configuration - All dependencies for the Run Target are resolvable - Required resources are available

  2. Transition Logic: Determine the transition from the current state to the target state: - If a different Run Target is active, perform a switch operation (stop current, start requested) - If the same Run Target is already active, verify its state and potentially restart failed components

  3. Execution: Execute the transition in the correct dependency order: - Stop components that are not part of the new Run Target - Start components that are required for the new Run Target - Respect dependency relationships during both stop and start operations

  4. Response: Return status to the caller: - Success if all components transitioned correctly - Failure with detailed error information if any component failed to transition

This unified approach allows external state managers to request any Run Target activation without needing to know the current system state, as the Launch Manager handles the transition logic internally.

Interface#

The control interface is defined here: logic_arc_int__lifecycle__controlif The Launch Manager provides an interface, which allows an external State Manager application to request the Launch Manager to start, stop or restart applications or groups of applications, which allows the implementation of a state management applications to support dynamic state control.

Dynamic architecture#

The sequence diagrams below are based on the example dependency graph described in Components & Run Targets.

Switch Run Target Scenario - Successful case
status: valid
security: YES
safety: ASIL_B
version: 1

Component Dependencies and Ready Conditions#

Launch Manager - Component Dependencies
status: valid
security: YES
safety: ASIL_B

While setup_filesystems and /bin/random can be started in parallel, /opt/bin/app1 can only be started once both Components are Ready.

Component Termination#

Launch Manager - Component Termination
status: valid
security: YES
safety: ASIL_B

Since app1 depends on both setup_filesystems and random, it must be terminated first before the other two components can be safely terminated. Afterwards, setup_filesystems and random can be terminated in parallel as they do not depend on each other. Note that if a component does not terminate within the configured termination timeout, it is forcefully killed.