In this module you will explore the basic building blocks of CORBA and how they fit together. CORBA offers many capabilities, but most of them build on lower levels where possible. The things we are about to explore represent those fundamental layers.
In this module, you will be introduced to:
- The technologies that led to CORBA
- CORBA clients & servers
- CORBA requests & replies
- The Object Management Architecture (OMA)
The development of "CORBA (Common Object Request Broker Architecture)"" was influenced by several predecessor technologies and concepts. These technologies laid the groundwork for distributed systems, remote communication, and object-oriented programming. Here are the key predecessors:
-
Remote Procedure Call (RPC)
- Description: RPC is a protocol that allows a program to execute code on a remote server as if it were a local procedure.
- Contribution: RPC introduced the idea of abstracting the complexities of network communication, which became a foundational concept for CORBA’s remote method invocation (RMI).
-
Distributed Computing Environment (DCE)
- Description: DCE, developed by the Open Software Foundation (OSF), provided a framework for developing distributed applications, including RPC, directory services, and security services.
- Contribution: DCE offered a practical implementation of RPC and other distributed computing tools, demonstrating the feasibility of standardizing such systems. CORBA built upon this idea to create a more object-oriented and platform-agnostic system.
-
Object-Oriented Programming (OOP)
- Description: OOP languages like C++, Smalltalk, and later Java emphasized encapsulation, inheritance, and polymorphism.
- Contribution: The object-oriented approach influenced CORBA's design, enabling the modeling of systems as interacting objects with defined interfaces.
-
Inter-Process Communication (IPC)
- Description: Mechanisms such as message passing, shared memory, and socket communication enabled processes to exchange data.
- Contribution: CORBA abstracted these lower-level communication mechanisms to create a seamless, high-level interface for remote object interactions.
-
Message-Oriented Middleware (MOM)
- Description: MOM technologies, such as IBM’s MQSeries, facilitated asynchronous communication between distributed components.
- Contribution: CORBA incorporated some concepts from MOM, including reliable message exchange and decoupling of systems.
-
Network Communication Protocols
- Description: Protocols like TCP/IP and HTTP provided the underlying network infrastructure for communication.
- Contribution: CORBA's Object Request Broker (ORB) leveraged these protocols to facilitate communication between distributed components.
-
Distributed Object Management Systems (DOMS)
- Description: Early systems such as the Xerox Network Systems (XNS) and Apollo’s Network Computing System (NCS) supported distributed object management.
- Contribution: These systems influenced CORBA’s architecture by providing examples of distributed object management and interaction.
-
Standardization Efforts
- ISO/OSI Model: Provided a framework for developing interoperable communication systems.
- Contribution: CORBA aligned with the need for interoperability across different platforms, operating systems, and languages.
-
Early Object-Oriented Databases (OODBs)
- Description: Databases such as ObjectStore and GemStone supported the storage and manipulation of objects.
- Contribution: These systems introduced the notion of object persistence, which CORBA adopted to manage distributed objects.
-
Mach Microkernel
- Description: Mach, a pioneering microkernel, supported distributed system features and interprocess communication.
- Contribution: Mach's ability to enable distributed object communication inspired similar capabilities in CORBA.
CORBA’s development by the **Object Management Group (OMG)** in 1991 synthesized these technologies and ideas into a unified standard for distributed, object-oriented systems. This allowed developers to create platform-independent, language-neutral distributed applications.
CORBA products provide a framework for the development and execution of distributed applications.
Distributed applications introduce a whole new set of difficult issues.
Sometimes there is no alternative since some applications are distributed across multiple computers because of one or more of the following reasons: