Asynchronous External Entity Operation - modelint/shlaer-mellor-metamodel GitHub Wiki

According to [MB] a signal may be sent to an External Entity. The purpose of this capability is to initiate an asynchronous interaction in some external domain.

In [EE]:

An asynchronous interaction implies the invoking activity continues to execute. If a response is necessary, it happens at some later time.

A common example is an announcement, which is always asynchronous. But it can also be a request-response interaction where the response arrives at some later time in the form of a separate, externally initiated interaction.

An asynchronous interaction is characterized as an asynchronous operation rather than an event, though the intended result is the same. Our reasoning is that a signal to an External Entity does not apply the same event dispatching and response mechanics as it does in the other two cases, so, from a metamodel perspective, it makes more sense to cast this feature in terms of an Asynchronous Operation invocation.

Note, however, that this does not prevent an action language from using similar syntax for sending a signal to an instance or an assigner.

In Scrall for example, you can invoke the Start operation on an INJECTOR EE as follows:

Start( ramp up : selected mode ) => INJECTOR

Other than using => instead of ->, it is the same syntax as signal generation.

Scrall note: The only reason the symbol varies is to more clearly convey the modeler's intention.

The invoking action does not block waiting for any kind of response.

At some point in the future, a response may be recieved in the form of an invocation of an Ingress Operation or some other bridged effect.

Identifier

  1. ID + Domain
  2. Name + EE + Domain

Attributes

No non-referential attributes