Some technologies are designed with openness in mindthat is, the technologies are built to open standards (standards agreed upon between many industry partners using an open contributory process). Technologies built in this way can easily interchange information because all the technologies are built on the same standards.
For example, because all versions of UNIX (Solaris, HPUX, AIX, and so on) conform to the UNIX standards, an application built on one version of UNIX should be able to run on all other implementations of that version of UNIX, as long as it makes use of only the features of the UNIX that are part of the UNIX standard. UNIX 98 standard, as specified by the Open Group, makes provision for Java Virtual Machine support, HTTP, TCP/IP, DNS, Directory Services, Time Services, etc. Thus, all implementations of the UNIX 98 server standard should support these standard services in the same way.
Because of the way the Java specifications have been derived, Java is also considered to be an "open" technology. The specifications dictate exactly which features the Java Virtual Machine must contain in order to be labeled as compliant with the specification. Java 2 compliant SDKs were produced for a number of operating systems, including Linux, Solaris, Windows 95, Windows 98, Windows 2000, and Windows NT. In theory, this meant that developers could develop programs in Java on any platform and they would run unchanged on many other platforms. Although there are always teething problems in new implementations of Java virtual machines, in essence this is what happened.