Activity object nodes include parameter, pin, central buffer, expansion nodes.
It is a bit strange that though object node is an abstract activity node, it is directly used in objects flows using its own notation (see below). It would make sense to have some separate concrete UML metaclass for data nodes.
An object node is an abstract activity node that is used to define object flow in an activity. It indicates that an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to.
Object nodes are notated as rectangles. A name labeling the node is placed inside the symbol, where the name indicates the type of the object node, or the name and type of the node in the format "name:type."
Object flow of Orders between Fill Order and Review Order actions
The name can also be qualified by a state or states, which is to be written within brackets below the name of the type. Upper bounds, ordering, and control type other than the defaults are notated in braces underneath the object node.
Pin is usually shown as a small rectangle attached to the action rectangle. The name of the pin can be displayed near the pin.
Item is input pin to the Add to Shopping Cart action.
Invoice is output pin from the Create Invoice action.
A central buffer node is an object node for managing flows from multiple sources and destinations. A central buffer node accepts tokens from multiple object in flows, buffers those and passes them along to out flows. Central buffers do not connect directly to actions.
Note, that all object nodes have built-in capability of data buffering. Pins could buffer data for actions, while activity parameters - for activity. Central buffer differs in that it is not tied to an action or to an activity. It provides additional support for queuing and competition between object flows.
Central buffer is notated as an object node with optional keyword «centralBuffer» which allows to distinguish it from the standalone pin.
A data store is a central buffer node for non-transient information.
All incoming tokens are stored by the data store. A special rule is that if incoming token contains some particular object which is already stored in the data store, then the new token will replace any tokens in the object node containing that object.
Tokens which were chosen to go out ("move downstream") of data store are actually copied while original token is kept and not deleted from the data store.
The data store is notated as an object node with the keyword «datastore».
Incoming Patient token is stored by the Patients data store.