Compatibility (Open Systems Design)
Compatibility (Open Systems Design)
Compatibility is the ability to connect things together and have them work, such as connecting a refrigerator to electrical power, a video recorder to a television, or a computer to a printer. Compatibility is an issue that is important in all branches of engineering, especially computer and software engineering. The standard solution to ensuring compatibility is the use of common, well-understood means of defining how to connect things together. These means are commonly called standards. The standards with which compatibility is concerned are the standards at the connection, or the interface . The interface is the place where the two devices join, or communicate or interact.
Within any country (for example, the United States of America) you can move from one house, take all of your electrical appliances, and plug them into the electrical system of another house with confidence that they will work without modification. This is true from city to city, from state to state; you can be assured that the appliances will work. This is because there is a common standard for the electrical interface throughout the United States. The standard requires that the plugs and wall sockets have the same pins of the same shape, that the voltage is 120 volts, and the frequency is 60 Hz.
In fact, within most countries the electrical systems are built to conform to a common standard. Between countries, however, the standards are often different. The consequence is that very few appliances will work when one moves, for example, from the United States to Australia. One may say that the electrical power systems in the United States and Australia are not compatible.
Compatibility has become a big issue in the computing industry. There are a few main suppliers of computer systems (e.g., Microsoft, Intel, Sun, Apple) and many other companies wishing to supply software and hardware that is compatible with these main suppliers of computer systems. The early lack of compatibility between parts, or components, of computer systems led to the development of open systems. The interfaces of open systems are specified by freely available, publicly controlled standards. An example of a non-computer-specific open system is the electrical system within the United States.
Open systems developed because many organizations discovered that it was difficult to build large and complex computer systems economically and effectively during the 1970s and the 1980s. One of the major problems facing large systems was the integration, or joining together, of subsystems to create the whole system. The underlying problem for these early systems was that the desired components were not compatible with each other. The components would not exchange information correctly, and it was difficult to move components from one system to another, in order to reuse components.
The birth of open computer-based systems came from the construction of reliable infrastructures , based on standards (see Figure A). This stylized representation shows the elements of an open system with the application "sitting" on top of the infrastructure. (To return to the electrical system example, the power network that runs throughout the United States is an infrastructure.) In a computer, the infrastructure is a computer program that manages the interfaces between components to help ensure that they interface, or interact, correctly.
A critical portion of the infrastructure is the network interface. The most well known open system is probably the Internet. Its development has only been possible because of the standards that exist for the network interface, and for the language used to present the pages on the screen of a user's computer.
Standards are critical to compatibility. Without an agreement, shared between two or more component manufacturers, that specifies standards for the interfaces, there would be no possibility of compatibility. The issue that arises is whether computer companies are prepared to allow these interface documents to become public, freely available standards. Computer and software companies are concerned that either they will lose money by not keeping the standard to themselves, or, that the bureaucracy of a public standard will destroy the product due to inertia.
Upgradability and portability are important outcomes of using standard infrastructures and open systems. The aim of upgradability is to allow customers to buy a fast, new computer with the assurance that all of one's software will run on the new computer, or to upgrade a piece of software and have all the surrounding hardware work. That is, if customers upgrade their word processing software, their printers will still work correctly.
The aim of portability is to be able to move software from one computer (e.g., a Windows PC) to another computer (e.g., a Macintosh, or a Linux machine), and have the software work correctly. Standard infrastructures and open systems assist in making upgradability and portability happen because they ensure that the interfaces are managed, and that the manufacturers are aware of the interfaces because they are published as standards.
Manufacturers of computers and operating systems (such as Apple, Intel, and Microsoft) have an interest in compatibility, but not necessarily a commitment to public, freely available standards. Microsoft appears principally interested in having other manufacturers make hardware and software that is compatible with their operating systems. Apple appears to be principally interested in having other manufacturers make software (but not hardware) that is compatible with their operating systems. IBM and Compaq appear to have embraced compatibility, and are focused on the construction of infrastructures as their core business. For the most part, traditional computer manufacturers who are now manufacturing infrastructures do not seem to be interested in open systems—as governed by public, freely available standards—but rather in controlled compatibility that allows them to protect their market niches.
see also Bridging Devices; Communication Devices; Information Technology Standards.
Roark, Chuck, and Bill Kiczuk. "Open Systems—A Process for Achieving Affordability." IEEE AES. September 1996, p. 15-20.
"The Open System Approach at the SEI." The Carnegie Mellon Software Engineering Institute web site. <http://www.sei.cmu.edu/opensystems/welcome.html>
Raymond, K. Reference Model of Open Distributed Processing (RM-ODP): Introduction. Distributed Systems Technology Centre web site. <http://www.dstc.edu.au/>
1. Of hardware, the ability of a subsystem (e.g. memory) or an external device (e.g. a terminal) to be substituted for the originally designated equipment. To designate that one manufacturer's hardware can be connected to another manufacturer's hardware, the terms plug-to-plug compatible, or plug-compatible, are used. The ability of new hardware to handle interfaces of previous generations is called backward compatibility.
2. Of software, the ability of a computer to execute directly program code that was compiled, assembled, or written in machine language for another computer. Generally this occurs for successive computers in a given manufacturer's line. Since later computers are usually more capable (i.e. have a larger instruction set and/or more memory), the ability to run the program of a less capable machine is usually called upward compatibility or backward compatibility. See also portable, emulation.
3. Of a new piece of software, the ability to reproduce the behavior of its predecessor, in particular to accept the same input formats.