The four basic functions performed by the system are:
- Input
- Shift
- Alphabetize
- Output
These components are coordinated by a main program as subroutines. Data communication occurs through shared storage. The computational components and shared data communicate using an unrestricted read-write protocol as the coordinating program guarantees sequential access to the data.
The architecture for this system in implicit invocation style is as follows:
- The first interface to the data is more abstract as the storage formats are not exposed and it is accessed abstractly. Computations are invoked implicitly as data is modified. Thus interaction is based on active data model.
- This solution supports functional enhancements to the system as additional modules can be attached to the system by registering them to be invoked on data-changing events. As data is accessed abstractly it insulates computations from changes in data representation. The implicitly invoked modules only rely on the existence of certain externally triggered events, so it also supports reuse.
- One disadvantage of this solution is that it can be difficult to control the order of processing of the implicitly invoked modules. Also the implementations of this kind of decomposition tend to use more space than other types as invocations here are data-driven.