BUILDING A SOLID FOUNDATION
An architecture is any ordered arrangement of the parts of a system. Just as with a building, so with computers and other microprocessor based systems: without due attention to the fundamentals of construction, a computer systems will not withstand the rigors of the environment in which it is placed.
A system architecture is a structured set of protocols (connections) that implement its functions. Functions are what computers, communications network, and manufacturing systems do. They are the properties of a system's components. In a building, components might include mechanical and electrical equipment, acoustics, illumination and traffic layout, in addition to the structure itself. For software, the components are the fundamental functions, and their interconnection is the architecture.
Reuben S. Jones of Softech Inc., Waltham, Mass., and I are involved in several efforts to establish standards for the architecture and operating systems of modern real-time systems used in industrial automation and process control. Among the many groups concerned with implementation of real-time systems, their operating systems and message protocols, are NCMS (National Committee of Manufacturing Science), DARPA (Defense Advanced Research Projects Agency), ISA (Instrumentation Society of America), ICS (Industrial Computing Society) and IEEE (Institute of Electrical and Electronic Engineers).
If you've bee a regular reader of this column, you'll recall that the three determining characteristics of a real-time system are that it be robust, predictable and fast. That is, fast enough to do the job. For bank check clearing, that means overnight. Credit card must be verified in seconds. Scientific experiments need nanosecond response. In the control and automation realm, responses in millisecs are sufficient.
Robustness determines the availability of the system. Reliability may be considered one aspect of robustness. Often ignored, but equally important, is the predictability of performance. The system should consistently respond in the same way and in the same amount of time for a given event. This response must be independent of all other events and actions requiring the attention of the system.
A "simple" architecture is one that can be understood by the user community. Tremendous efforts have been expended on formulating automation standards that ended up being so complex that they were never implemented. Exquisitely elegant engineering solutions won't fly if the business case can't be made. We can't ignore the needs of users and operators.
One possible architecture of a microprocessor-based system consists of layers that may communicate and service each other only in a vertical mode. A layered architecture is one of the simplest and most robust architecture possible. But not only layered architectures exist. Some other architectures are the autonomous and the distributed, as well as the four basic computer designs. Computer scientists also talk about "crystal" and "mud" concepts.
The "layered" approach can be applied to systems both large and small and to both hardware and software. An upper layer may use only those services provided by the lower level adjacent to it. Lower layers provide service only to the next higher level. Complete stacks may be wholly replicated throughout the system, provided layering rules are maintained. Partial replication is only allowed if a common base is used. Vertical communication is allowed, but partition-to-partition communication is not allowed.
An analogy to this system of rules can be found in the hardwiring of electrical and electronic systems. We know we should not arbitrarily install "jumpers" that defeat portions of an electrical control system. Likewise, a microprocessor-based system shouldn't have jumpers between the innards of a chip and the workstation display. Although obvious when stated in hardware terms, many of us, myself included, do the equivalent of "jumpering" when designing systems and software.
As a result, we get in trouble when specifying communication protocols and computer operating systems. Large scale, single-user implementations such as distributed computer systems and particularly susceptible to suffering negative impact from ad hoc approach to design.
Design discipline and a sensitivity to the need for a sound foundation should be foremost in the implementer's mind when embarking on any project. Build on a solid foundation and Murphy might stay home.
As appeared in Manufacturing Systems Magazine July 1992 Page 14
References - Table of Contents
|R. Morley Incorporated
614 Nashua Street, Suite 56
Milford, NH 03055-4992 USA
Tel: 603-878-4365 FAX: 603-878-4385