State Management Explained
State management represents a dimension of solution design that can vary from platform to platform. Therefore, we'll take the time to explicitly define its meaning in relation to service-orientation.
State Management in Abstract
State refers to the general condition of something. A car that is moving is in a state of motion, whereas a car that is not moving is in a stationary state (Figure 1). In business automation, it is understood that a software program can also have and transition through different states, usually because of its involvement in a runtime activity.
Figure 1 - The states of a car can be represented by two very fundamental categories.
Each state can be represented and described by data that typically has a lifespan equivalent to the duration at which the program remains active for a given task or purpose. As a result, all variations of state information tend to be temporary in nature. Therefore, state management can be considered the management of temporary, activity-specific data.
The following types of state conditions and data can exist:
- active and passive states
- stateful and stateless conditions
- context, session, and business state data
- context data and context rules
Each of these is explained individually in the upcoming Types of State section. Also note that throughout the diagrams on this Website, state data is represented by the orange "liquid" shown within artifacts (Figure 2).
Figure 2 - Service and repository symbols can be used to illustrate how state data (orange) can transition through various temporary containers at runtime.