Uploaded image for project: 'SAFe Program'
  1. SAFe Program
  2. SP-1640

Reference design and implementation for asynchronous (long-running) commands

Change Owns to Parent OfsSet start and due date...
    XporterXMLWordPrintable

Details

    • Obs Mgt & Controls
    • Hide

      The outcome of this enabler is a reference design and implementation of non-blocking commands (and related asynchronous interaction) for the TANGO Devices (and accompanied software) which are part of the SKA Control System.  The goal is to come up with a design patterns that can be used throughout the SKA Control System,  to reduce development time and improve response time (performance), reliability and maintainability.

       

      Show
      The outcome of this enabler is a reference design and implementation of non-blocking commands (and related asynchronous interaction) for the TANGO Devices (and accompanied software) which are part of the SKA Control System.  The goal is to come up with a design patterns that can be used throughout the SKA Control System,  to reduce development time and improve response time (performance), reliability and maintainability.  
    • Hide

      The key outcome of this enabler is a reference implementation for asynchronous (long running) commands. The goals is to provide an example that can be used as a reference to implement TANGO Devices which are part of the SKA Control System.

      Design documented (a Solution Intent confluence page), discussed with the stakeholders (architecture team, members of other SKA teams working on MVP), reviewed by stakeholders and accepted by consensus in a meeting of reviewers, including at least architecture and MCCS representatives.

      Reference implementation implemented as TANGO example.

      Show
      The key outcome of this enabler is a reference implementation for asynchronous (long running) commands . The goals is to provide an example that can be used as a reference to implement TANGO Devices which are part of the SKA Control System. Design documented (a Solution Intent confluence page), discussed with the stakeholders (architecture team, members of other SKA teams working on MVP) , reviewed by stakeholders and accepted by consensus in a meeting of reviewers, including at least architecture and MCCS representatives. Reference implementation implemented as TANGO example .
    • 2
    • 2
    • 10.5
    • Team_KAROO
    • Sprint 5
    • Hide

      Confluence page in the Solution Intent space:
      https://confluence.skatelescope.org/display/SWSI/SKA+Tango+Base+design+to+support+long+running+commands

      Code is available in ska-tango-examples:
      ska-tango-examples/src/ska_tango_examples/teams/
      SampleLongRunningDevice.py**
      SampleLongRunningDeviceClient.py
      **
      tests: ska-tango-examples/tests/unit/teams/
      test_long_running_device.py
      test_long_running_device_client.py**

      Show
      Confluence page in the Solution Intent space: https://confluence.skatelescope.org/display/SWSI/SKA+Tango+Base+design+to+support+long+running+commands Code is available in ska-tango-examples: ska-tango-examples/src/ska_tango_examples/teams/ SampleLongRunningDevice.py** SampleLongRunningDeviceClient.py ** tests: ska-tango-examples/tests/unit/teams/ test_long_running_device.py test_long_running_device_client.py**
    • 11.5
    • Stories Completed, Solution Intent Updated, Outcomes Reviewed, Demonstrated, Satisfies Acceptance Criteria, Accepted by FO
    • PI22 - UNCOVERED

    • Cross_Team_Code_Review SS-54 Team_KAROO

    Description

      The SKA Telescopes are large, distributed systems, the telescope Control System has a hierarchical structure which enables operations to configure, control and monitor each telescope as a single system. The commands are propagated from the top-level user interface to the lowest level software components which interface with hardware and COTS components. Commands that co-ordinate telescope state transitions and execution of observations  are propagate through several levels of abstraction, and often require  co-ordination of state transitions and configuration of hundreds, if not thousands of components.  Such commands must be implemented as non-blocking commands; the client which initiates a command should not be blocked during the command execution.  The control should be returned to the caller within few milliseconds.  The progress of the execution of the command is tracked by additional attributes, and the completion of the command reported as a state transition (event).

      Additional attributes should be implemented to track and report:

      • target/desired operational state,
      • command being executed,
      • progress (either as a percent complete or set of stages).

      With exception of the Abort() command which allows a Client to interrupt and stop execution of other commands, the commands are executed one at a time (an analysis will be performed and any exceptions indicated and properly handled).  

      Note: A Client will have to wait for the execution of the current command to end in order to issue the next command; this will require the Client to monitor command execution and the device status, and in general makes a Client implementation more complex.  To address this issue, consider implementing the input command queue:

      1) when a command is received, it is added to the end of the queue and control immediately returned to the caller. (Before adding a command to the queue, the device may check that the parameters are within range, if that is a simple operation).

      2) When not executing a command, the command execution thread periodically checks the queue, and if the queue contains a command, removes the command from the beginning of the queue and begins execution (status attributes are set to indicate this).

      2) Abort() command must be immediately executed. Abort() interrupts execution of other commands.

      3) If implemented as commands, queries (perhaps not all) may be executed in parallel with commands that trigger state transitions.

      Detailed design is in progress.

       

      Useful information on Slack (with links back to Confluence).

       

      Attachments

        Issue Links

          Structure

            Activity

              People

                s.vrcic Vrcic, Sonja
                s.vrcic Vrcic, Sonja
                Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Feature Progress

                  Story Point Burn-up: (100.00%)

                  Feature Estimate: 2.0

                  IssuesStory Points
                  To Do00.0
                  In Progress   00.0
                  Complete519.0
                  Total519.0

                  Dates

                    Created:
                    Updated:
                    Resolved:

                    Structure Helper Panel