UML Diagrams Zicomi Systems publishes some UML example diagrams online from the world famous UML dictionary. more...
Version 2.5 Released Zicomi Systems is delighted to announce that version 2.5 of Zicomi Mentor is released. With support for UML 2.0 and all thirteen UML diagrams more...
Zicomi Systems' Director speaks about the UML at Objects by Design - an informative interview more...
Partner Programme Zicom Systems is delighted to announce a new world wide partner programme, become a partner today. more...
OMG Member Zicom Systems is made a member of the OMG!
Central Buffer
A central buffer is a type of object node, which gives the node the capability of storing (buffering) tokens. It manages the tokens that arrive at incoming flows (edges) from one or more object nodes and selects which tokens and in what order these tokens will be presented to the downstream object nodes via the outgoing flows (edges).
Explanation
A central buffer node allows incoming tokens to be stored and queued before being passed to outgoing flows and onto downstream object nodes. Tokens can accumulate at the central buffer and it is the nodes responsibility to manage these tokens and pass them on in a prescribed manner observing selection criteria and ordering if specified. The arriving tokens contain data or objects and these values can be typed. In our everyday lives we see objects and situations that resemble central buffer nodes. The in and out trays on a clerks desk are like central buffer nodes. Items come in a particular order, are generally of a particular type and in a particular state, (for example a refund waiting for approval), can accumulate (pile up), and are typically attended to in a fixed order. The items are typically removed from the in-tray and placed in the out-tray, acting as another downstream object node. A queue at a bus stop is similar. It receives incoming tokens (passengers), generally of the same type, all going to the same destination, when the bus arrives they board the bus in the order they arrived (not with standing a queue jumper).
Important Points
All incoming and outgoing edges to a central buffer must be object flows.
Central buffer nodes accumulate and manage object tokens which flow along object flows so every incoming and outgoing flow (edge) must be an object flow.
A central buffer 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 central buffer. 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).
Central buffer 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 central buffer. 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.
Related Entries
Data StoreGraphically Similar, Similar Usage, Confused with, More Specific
A data store is related to a central buffer in that it has a similar appearance but it is a more specialized form of the central buffer. It adds the 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 central buffer 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 central buffer is owned by the enclosing activity.
An output pin is related to a central buffer 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 central buffer is owned by the enclosing activity.