Open architecture
Open architecture is a type of computer architecture or software architecture intended to make adding, upgrading, and swapping components with other computers easy. For example, the IBM PC, Amiga 500 and Apple IIe have an open architecture supporting plug-in cards, whereas the Apple IIc computer has a closed architecture. Open architecture systems may use a standardized system bus such as S-100, PCI or ISA or they may incorporate a proprietary bus standard such as that used on the Apple II, with up to a dozen slots that allow multiple hardware manufacturers to produce add-ons, and for  the user to freely install them. By contrast, closed architectures, if they are expandable at all, have one or two "expansion ports" using a proprietary connector design that may require a license fee from the manufacturer, or enhancements may only be installable by technicians with specialized tools or training. Computer platforms may include systems with both open and closed architectures. The Mac mini and Compact Macintosh are closed; the Macintosh II and Power Macintosh G5 are open. Most desktop PCs are open architecture. Similarly, an open software architecture is one in which additional software modules can be added to the  basic framework provided by the architecture. Open APIs (Application Programming Interfaces) to major software products are the way in which the basic functionality of such products can be modified or extended. The Google APIs are examples. A second type of open software architecture consists of the messages that can flow between computer systems. These messages have a standard structure that can be modified or extended per agreements between the computer systems. An example is IBM's Distributed Data Management Architecture. Open architecture allows potential users to see inside all or parts of the architecture without any proprietary constraints. Typically, an  open architecture publishes all or parts of its architecture that the developer or integrator wants to share. The open business processes involved with an open architecture may require some license agreements between entities sharing the architecture information. Open architectures have been successfully implemented in many diverse fields, including the US Navy.