De facto versus Open Standards
A de facto standard is the result of market leading technology. In contrast, an open standard exists through the
approval of a standards committee overseen by a non-competing third party, such as the ANSI , or OMG, or the
W3C. For example, in the world of object standards there are two competitors:
- De facto standards: Have NOT been approved by a standards organization. Instead these are widely used and recognized by an industry as being standard.
- Open standards: Consensus-driven standards that are vendor-neutral and freely available to all anyone.
- American National Standards Institute (ANSI): Responsible for creating standards for private and public organizations in the United States.
- Object Management Group (OMG): A consortium of more than 700 companies with the goal of providing a common framework for developing
applications using object-oriented programming techniques. OMG is responsible for the CORBA specification.
- World Wide Web Consortium: Responsible for producing interoperable specifications and sample code for the Internet.
- Object Standards: Define how objects should (a) define and expose their methods and properties to other objects,
(b) act by themselves, and interact with other objects, and (c) turn into other objects, or get combined into larger objects.
Legacy Middleware
- CORBA is an open standard established by an OMG-managed process
- COM is a de facto standard due to Microsoft's dominant market position.
Both CORBA and COM should be considered within the context of a given situation. For example, a Unix-oriented company
would probably show a preference for CORBA, while a company with a strong commitment to Microsoft Visual Studio is more likely to
prefer COM. During this course, we will not distinguish (in terms of preference) between de facto standards and open standards.
- Common Object Request Broker Architecture (CORBA): Enables pieces of programs, called objects, to communicate
with one another regardless of what operating system they are running on or what programming language they were written in.
- Component Object Model (COM): Microsoft's language independent component architecture intended to provide general
purpose, object oriented means to encapsulate commonly used features and functions.