Frequently Asked Questions (FAQ) for Open Systems
At the Software Engineering Institute (SEI), we have been working in open systems since 1993, developing courses, related products, and other sources of open systems information. As part of this work, we have come across questions that people frequently ask about open systems. We developed answers to this collection of questions and put them together for you in the following pages.
If you have any questions or answers you would like to see added, please contact Tricia Oberndorf po@sei.cmu.edu.
Open Systems Defined
NDI, COTS, and Open Systems
Standards and Open Systems
The Impact of Open Systems
Promises and Realities
Why the Move to Open Systems?
Reference List
Open Systems Defined
What is an open system?
Put twenty people in a room, and you will find at least twenty different definitions for this term. The DoD's Open Systems Joint Task Force (OSJTF) defines it as:
A system that implements sufficient open specifications for interfaces, services, and supporting formats to enable properly engineered components to be utilized across a wide range of systems with minimal changes, to interoperate with other components on local and remote systems, and to interact with users in a style that facilitates portability.
An open system is characterized by the following:
- well defined, widely used, and non-proprietary interfaces/protocols
- use of standards which are developed/adopted by industrially recognized standards bodies
- definition of all aspects of system interfaces to facilitate new or additional systems capabilities for a wide range of applications
- explicit provision for expansion or upgrading through the incorporation of additional or higher performance elements with minimal impact on the system
This definition provides a good high-level vision of what open systems are all about. For a more operational definition, we can turn to this one.
An open system is a collection of interacting software, hardware, and human components
- designed to satisfy stated needs
- with interface specifications of its components that are
- fully defined
- available to the public
- maintained according to group consensus
- in which the implementations of the components conform to the interface specifications
What is an open system architecture?
As with the definition of open system, there are various definitions of the concept of open system architecture. A simple one comes from the OSJTF:
-
A system architecture produced by an open systems
approach(1)
and employing open systems specifications and standards to an appropriate level.
One definition that is consistent with the more operational definition of open
system given above is:
An open system architecture is a representation of a system in which there is
- a mapping of functionality onto hardware and software components
- a mapping of the software architecture onto the hardware architecture
- a representation of the human interaction with these components
- interface specifications of the components that are
- fully defined
- available to the public
- maintained according to group consensus
1 An open systems approach is a business approach that emphasizes commercially supported practices, products, specifications and standards. The approach defines, documents, and maintains a system architecture that depicts the lowest level of customer (e.g., military) system configuration control. This architecture clearly identifies all the performance and interface characteristics of the system including those that will be accomplished with an implementation that references open standards and specifications. [OSJTF]
NDI, COTS, and Open Systems
What are the differences between commercial off-the-shelf (COTS) products, open systems, and non-developmental items (NDI)?
Non-developmental item (NDI) is defined as the following:
- any product that is available in the commercial marketplace
- any previously developed product in use by a U.S. agency (federal, state, or local) or a foreign government that has a mutual defense agreement with the U.S.
- any product described in the first two points above that requires only modifications to meet requirements
- any product that is being produced, but not yet in the commercial marketplace, that satisfies the above criteria [DFARS]
A commercial off-the-shelf (COTS) product is a product, such as an item, material, component, subsystem, or system, sold or traded to the general public in the course of normal business operations at prices based on established catalog or market prices [FARs].
You can see from these two definitions that COTS is a subset of NDI. The general point of NDI is that it is something that your program does not need to pay to develop because it already exists. COTS products are that subset of NDI that not only already exist but are for sale to anyone from vendors.
Open systems is an approach rather than a classification. COTS products and NDI may be used to help accomplish open systems goals, and that is the relationship between these terms.
Standards and Open Systems
What is a standard?
The common English definition says a standard is something set up and established by authority, custom, or general consent as a rule for the measure of quantity, weight, extent, value, or quality or as a model or example. The formal (accredited) standards community defines a standard along the lines of this definition from the IEEE.
A document established by consensus and approved by an accredited standards development organization that provides, for common and repeated use, rules, guidelines, or characteristics for activities or their results, aimed at the achievement of the optimum degree of order and consistency in a given context [IEEE 91].
For the purposes of open systems, however, there is a need for a definition that is more specific to our topic but more pragmatic than these are. So the following definition best suits the purposes of open systems:
A standard is a publicly-available (2) document defining specifications for interfaces, services, protocols, or data formats, established by consensus.
2 "Publicly available" means that anyone is free to acquire a copy of the standard, to implement a product to its specifications, and to sell that product without restriction. There may be some fees involved, such as a fee charged by a standards organization to cover the cost of reproducing and distributing the standard or a small license fee for its use, but such fees must be minimal and reasonable so that widespread use of the standard is not discouraged.
How do standards and open systems relate to each other?
Interface standards are the cornerstone of an open systems approach. The goal of open systems is affordable acquisition of systems, which often translates into affordable acquisition of system components. In some cases it is possible to buy a whole system that suits your needs; more often, it is necessary to put that system together from existing components. You can try to go out and buy those components from commercial sources, but how will you integrate them into the system you need? Interfaces are the glue, and standards are the key to being able to buy existing components that have some chance of being successfully integrated.
What standards should I use?
There is no one answer to this question that will suit every system's needs. In each case, you must select the standards that are needed by your system and that meet your system's requirements.
When selecting standards, remember that not all standards are created equal. You should strive to use standards that are "mature," but not too mature. A standard is mature if it has reached its full natural growth or development.
However, it is sometimes hard to know when a standard has reached maturity. Some indicators of standards maturity include the availability of products, the approval of some appropriate consensus group, stability, and user interest. Standards maturity brings up the cost-and-schedule challenges of an open systems approach. Immaturity has risks, but sometimes it is not possible to wait for the full completion of an accredited standards approval process. In each situation, you must trade off the cost-and-schedule impacts with the risks.
Some organizations have tried to catalogue the standards that are currently available to help you decide which ones you might want to choose for your system. In some cases, these organizations make certain recommendations or even give approval to only some of the available standards.
The following resources provide lists of standards that may be helpful to you:
- X/Open's X Portability Guide (XPG4) and successors
- Institute of Electrical and Electronic Engineers (IEEE) Portable Operating System Interface standard (POSIX) P1003.0 Guide to Open Systems Environments
- National Institute of Standards and Technology (NIST) Application Portability Profile (APP)
- Defense Information Systems Agency (DISA) Technical Architecture and Framework for Information Management (TAFIM)
- Open Systems Interface Standards List (OSISL) (in SECNAVNOTE 5200)
- Department of Defense Index of Specifications and Standards (DoDISS) [DoDISS 95]
In addition, standards-producing organizations typically publish lists of their standards.
The Impact of Open Systems
What are the differences between how I do business now and how I do business with open systems?
Differences between current business practices and open systems include the following:
Table 1: Today Compared to Using Open Systems
Aspect |
Today |
Wide Open Systems |
Visibility of system internals |
Greater |
Reduced with NDI |
Systems engineering |
Created whole by one source using unique interfaces |
Usually created of parts from multiple sources using interface standards |
Integration |
Necessary |
More complex with NDI |
Interoperability |
Only if designed from the start |
Better, especially for "after the fact" |
Sources |
Limited |
Opportunities for greater competition |
Testing |
Whole system at all levels |
Emphasis on interfaces and functional integration testing |
Configuration management |
Good knowledge and control |
Less depth and more external influence |
Changes |
Internally guaranteed |
Internally and externally generated |
Supportability |
Sometimes left until the end |
Considered earlier, more commercial sources |
Control |
Direct |
More indirect |
Risks |
Many familiar ones |
Some new ones, some old ones, some reduced |
Cost/schedule estimates |
Often inaccurate |
Opportunities for improved accuracy |
Cost and schedule |
Overruns common |
Opportunities for reduction |
If I use open systems, will I have to continue testing?
Using open systems may affect the approach to testing and evaluation, but it doesn't eliminate the need for them. If you purchase products that are commercially available, it may be that there are many other users who have tested them, although you cannot be sure that they have exercised all the parts that your system will. There may even be commercially available conformance test suites you can use, but these will only confirm the fidelity with which the product meets the standards and not how "good" that product is.
You still must test your system. You cannot assume that because a product is commercial you don't have to test it. You must be certain that when you have this product installed it behaves the way the vendor promised, which doesn't always happen. In particular, you must test the product's behavior in the context of your unique system.
Furthermore, testing done by vendors or product customers is not predictable. For example, you must be aware of conformance testing. You can hope that something has already been conformance tested for you; but if it hasn't, you may have to decide how to address conformance for yourself.
What are the advantages to using open systems?
The commonly held beliefs about the advantages to using open systems include the following:
- less reliance on proprietary products
- more competition leading to lower cost
- decreased probability of schedule delay
- better tested products (more users)
- portable applications
- interoperability
- faster technology insertion
- foundation for system evolution
However, these are only "common sense" advantages. We do not have enough documented evidence based on real open systems experience in the DoD to prove them.
How much money will using open systems save me?
Since there is no cost model yet to evaluate this, it is hard to speculate on how much money is saved by using an open systems approach. The answer may be "none," especially in the short-term or from the perspective of only one program or system.
What cost savings are proven with open systems?
No cost savings have been proven as of yet. This is due to many factors, including: the short time that open systems have been in development, especially within the government; a lack of clear indicators of the costs to be tracked; and difficulties in separating costs associated with open systems from those associated with other aspects of a comprehensive approach.
Promises and Realities
Does using open systems guarantee interoperability?
No, the use of an open systems approach does not guarantee interoperability. You only get interoperability to the extent that you base your system on standards whose goal is achieving interoperability. Skip choosing the right standards and specifications to address interoperability and you've skipped over interoperability. In addition, other factors besides interface standards may affect your ability to realize interoperability.
Will using open systems help me to insert technology faster?
Although not guaranteed, it is likely that a shift to open systems will enable you to insert technology faster. The key is that a (standards-based) open systems architecture affords you the flexibility to take advantage of new technology that comes along, provided it is compatible with the open systems architecture you have selected. This is not possible with rigid, custom-built, or proprietary systems.
Will using open systems cause problems with conformance and certification?
Say you want to choose a standard and purchase an implementation of that standard in the marketplace. How do you know that the implementation (product) you purchase conforms to the specifications of that standard? This is the whole area of conformance.
Sometimes there are conformance tests you can apply to a product to confirm that it meets the specifications of a standard; however, more times than not, there are no such conformance tests.
One strategy may be to fund an impartial organization to apply an existing conformance test capability to the product. In other cases, you may need to fund the development of a conformance test for the standard and use that test to verify a product's conformance.
Will using open systems decrease the possibility of schedule delay?
To illustrate the decreased probability of schedule delay when using open systems, compare these two situations. In one situation, you pay for someone to develop a product and in the other, you go out and buy a ready-made product.
- If you are paying for the development of a product, you and the contractor are well aware of cost and schedule slips that influence overall milestone schedules. These schedules are much less predictable than buying something that already exists.
- If you purchase this product on the open market, there is much less probability of a schedule delay because the product is already developed and in production. Less delay in the schedule usually saves overall costs, too.
Why the Move to Open Systems?
Why is there pressure to move to open systems?
The trend in government is clear. The federal acquisition laws are becoming progressively more oriented toward non-developmental items. This metamorphosis is affecting all manner of government systems, from management information systems to weapon and other mission critical systems.
The main force behind the pressure to make the change is mainly economic. With reduced budgets and downsizing, the government must find a more cost-effective way to do business. Although there are no proofs as yet that there will be cost savings resulting from a government change to an open systems approach, there is evidence from other industries that have gone through this transition that gives reason to believe it will work here as well.
The DoD can't afford to do its own thing as in the past. The necessity of maintaining our technological edge (historically our real advantage over our enemies) forces us to move to systems that can evolve more readily, as technological advances keep pushing ahead. Open systems can offer an orderly way to succeed in the new paradigm.
Reference List
The Open Systems team has composed an Annotated Bibliography.

