Webel Radio Net: 'scheduling' SysML Package Diagram with scheduling message Signal families (and Port types)

Gallery
Tutorial

If you are following this tutorial trail closely it's important that you inspect this diagram carefully, as it is crucial to understanding the net session initialisation, opening, and joining sequences we'll see simulated, and has some important information on some foibles of Magic Model Analyst® (Cameo Simulation Toolkit®) and how to deal with them.

Click on the image to view it full size

Recall that one common principle of Radio Nets adopted in the model is the use of a scheduling channel separate from the main radio communications, which scheduling channel may be via an alternative communication channel other the main radio channel. In the Webel Radio Net model, all negotiation related to details of the net session and successful joining must be performed via the ScheduleMessage families of Signals before any radio messages may be exchanged.

Purely for the sake of comparison in the model, the Ports for scheduling are inout Ports (whereas we'll see later that the radio Ports are nested). The F_Schedule and conjugating ~F_Schedule Ports both extend I_TargetALH, which enables them to integrate with the uniform programmatic Signal routing system for a routing hub employing the Action Language Helper (ALH) API via Groovy scripts.

A main challenge simulating message systems with Magic Model Analyst® (Cameo Simulation Toolkit®) (as of v2024x) is this:

Because of these issues, attributes across the Signal families have to be tediously "manually" repeated, not just inherited! And since the order of attributes must correspond exactly to the Parameter order of any Transition effect Activities, special care must be taken with the order.

The abstract ScheduleMessage extends AnyMessage so that it can participate in the programmatic ALH-driven uniform message routing system of AbstractHub (which is extended by SHub for routing scheduling messages).

There are two sub-families of Signals under ScheduleMessage. The MessageNCS sub-family is for scheduling messages sent from the Net Control Station (NCS) to a Participating Station (PS). The MessagePS sub-family is for scheduling messages sent from a Participating Station (PS) to the Net Control Station (NCS).

A SessionToken is used as a proxy for authorisation. It merely carries a "hard to guess" UUID specific to each net session, and the StationID of the Net Control Station (NCS). The token is distributed to each Participating Station (PS) by the NCS via the InitSession Signal, along with the RadioChannel with its session-specific RadioFrequency.

There are some important policies (recalling that formal Requirements Analysis is mostly replaced in the Webel Radio Net model by «!POLICY» and «!CONVENTION» editorial comments):

«!POLICY» All scheduling messages MUST have an idSrc:StationID and idTgt:StationID for use by the scheduling message routing hub for dispatch of messages to intended recipients, where the StationID is an Integer.

«!POLICY» All scheduling Signals MUST have a token:SessionToken unique to a net session EXCEPT RejectJoin!

The reason for the token exception for RejectJoin is that if a RequestJoin attempt was rejected by the NCS because of a wrong token from the PS it's not secure to send the active token back!

There is also an "additional" SysML Enumeration SignalKindS that extends the abstract SignalKind and is used for extra simulation console "echo" diagnostics, where the Enumeration literals correspond to Signal names.

Up next
Notes
Snippets (quotes/extracts)
Visit also
Visit also (backlinks)
Related slides (includes other tutorials)
Related slides (backlinks, includes other tutorials)