Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Terminology

  • Broadcast message: a message for all participants (participantId=null and participantType=null)
  • Message to a participant: a message only for a participant (participantId and participantType properly filled)
  • ThreadPoolExecutor: ThreadPoolExecutor executes the given task, into SupervisionAspect class is configured to execute tasks in ordered manner, one by one
  • Spring Scheduling: into SupervisionAspect class, the @Scheduled annotation invokes "schedule()" method every "runtime.participantParameters.heartBeatMs" milliseconds with a fixed delay
  • MessageIntercept: "@MessageIntercept" annotation is used into SupervisionHandler class to intercept "handleParticipantMessage" method calls using spring aspect oriented programming
  • GUI: graphical user interface, Postman or a Front-End Application

Design of a creation of a Control Loop Type

...

Design of a PARTICIPANT_REGISTER message

  • A Participant participant starts and send a PARTICIPANT_REGISTER message
  • ParticipantRegisterListener collects the message from DMaap
  • if not present, it saves participant reference with status UNKNOWN to DB
  • if is present a Control Loop Type, it triggers the execution to send a PARTICIPANT_UPDATE message to the participant registered (message of Priming)
  • the message is built by ParticipantUpdatePublisher using Tosca Service Template data (to fill the list of ParticipantDefinition)
  • It triggers the execution to send a PARTICIPANT_REGISTER_ACK message to the participant registered
  • MessageIntercept intercepts that event, if PARTICIPANT_UPDATE message has been sent, it will be add a task to handle PARTICIPANT_REGISTER in SupervisionScanner
  • SupervisionScanner starts the monitoring for participantUpdate

Design of a PARTICIPANT_UPDATE_ACK message

  • Participants A participant sends PARTICIPANT_UPDATE_ACK messages message in response to a PARTICIPANT_UPDATE message
  • ParticipantUpdateAckListener collects the message from DMaap
  • MessageIntercept intercepts that event and adds a task to handle PARTICIPANT_UPDATE_ACK in SupervisionScanner
  • SupervisionScanner removes the monitoring for participantUpdate
  • It updates the status of the participant to DB

...

Design of a CONTROLLOOP_UPDATE_ACK message

  • Participants A participant sends CONTROLLOOP_UPDATE_ACK messages message in response to a CONTROLLOOP_UPDATE  message. It will send a CONTROLLOOP_UPDATE_ACK for each CL-elements moved to the ordered state as indicated by the CONTROLLOOP_UPDATE
  • ControlLoopUpdateAckListener collects the message from DMaap
  • It checks the status of all control loop elements and checks if the control loop is primed
  • It updates the CL to DB if it is changed
  • MessageIntercept intercepts that event and adds a task to handle a monitoring execution in SupervisionScanner

...