next up previous
Next: 3.6.1 Asynchronous invocation and Up: 3 Action semantics at Previous: 3.5.4 Reduce actions

3.6 Messaging Actions

Messaging actions provide a mechanism to facilitate invocations between objects. The invocation through messages is so generally termed that it encompasses virtually all kinds of run-time interactions among objects. The objects may be located on a single machine or distributed throughout the network; the invocations may be procedure calls (as usually found in most programming languages), or transitions triggered by events in a state machine.

At model time, messages are modelled as classes, with attributes as parameters or return values. Each message class designates a specific request from the requestor. In this sense, the type of request is statically bound to a class; a message at run-time is an instance of the class. As the type of a message is a class, different types form generalization hierarchies [AILKC+00]. The run-time environment requires a mechanism to dynamically look up the hierarchy to match a message with behavior, because the behavior of the receiver is not statically bound to the class.

Parameters and return values of a request or a reply are stored in an instance of the message class. Sometimes a request does not need any parameter or an invocation does not return any value (asynchronous requests described below are an example), but the message instance must be sent or received. As mentioned above, the classifier is an inherent property of an object, the receiver may use the classifier as a parameter, even if the object contains no extra information. In this case, a dynamic lookup in the class hierarchy is necessary.



Subsections
next up previous
Next: 3.6.1 Asynchronous invocation and Up: 3 Action semantics at Previous: 3.5.4 Reduce actions
Thomas Feng 2003-04-18