A data store node is a type of central buffer node and can therefore store (buffer) tokens. It adds the additional mechanism to keep a copy of the tokens even when they are passed out of the node via an outgoing object flow. Whenever an incoming token contains an object or piece of data that already exists in the data store the incoming token replaces the existing one.
A data store is a node that not only stores incoming objects and data but also retains a copy of the data before it passes out of the node. This mechanism ensures that the object or data is always available to any downstream object nodes. The data store also has a mechanism for keeping the objects or data up to date. If a token arrives that contains an object or data that already exists in the data store the existing token is replaced with the newly arrived token. In our daily lives we see examples of data stores. If we travel frequently an airline or travel agency will typically keep a passenger profile which contains information like seat preferences, special meal requests and contact telephone numbers. When we travel this information is requested by the booking process and is used to streamline the passenger's reservation. A copy of the profile is maintained in the airline or travel agent system, ensuring that it will be available for future travel. Occasionally a passenger will make changes to their profile, for example to update telephone numbers. This information is passed to the system and will replace that portion of the existing profile. The new information will then be available for future travel.
A data store makes a copy of all outgoing tokens so as to maintain a copy of the object or data contained in the token.
A data store maintains a copy of all incoming tokens. So before the token is passed out of the data store and onto some downstream object node the token is copied making its contents available for future requests.
All incoming and outgoing edges to a central buffer must be object flows.
Data store nodes accumulate and manage object tokens which flow along object flows so every incoming and outgoing flow (edge) must be an object flow.
A data store may have any number of incoming and outgoing flows all of which must be object flows.
There is no restriction to the number of incoming or outgoing flows into a data store. They must all be object flows and must flow from or onto other object nodes such as pins. The incoming and outgoing flows cannot originate from nor flow onto actions.
If the ordering is not specified then it is FIFO (First In First Out).
Data store nodes manage the order in which tokens are presented to outgoing flows. If no other ordering rule is specified it is by default "First In First Out" (FIFI) meaning the first to arrive will be the first token to leave.
An upper bound specifies the maximum number of nodes that can be present at any point in time.
An upper bound value specifies the maximum number of tokens that can be accumulated by the data store. The number must be a positive literal integer or a literal null. If it is null, the upper bound is said to be unlimited and the node can contain any number of tokens. If the maximum is reached no incoming tokens will be accepted.
Central BufferGraphically Similar, Similar Usage, Confused with, More General
A central buffer is related to a data store in that it has a similar appearance but it is a more generalized form of the data store. While both the data store and the central buffer have the ability to store object tokens, data stores have the added functionality of copying all data in the object tokens before offering them onto downstream nodes via outgoing object flows.
An input pin is related to a data store in that they are both types of object nodes giving them the ability to store tokens. An input pin is owned by an action whereas a data store is owned by the enclosing activity.
An output pin is related to a data store in that they are both types of object nodes giving them the ability to store tokens. An output pin is owned by an action whereas a data store is owned by the enclosing activity.