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)
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:
CORBA (Common Object Request Broker Architecture) is now well established in the mainstream of software development and has found phenomenal industry acceptance. CORBA is supported on almost every combination of hardware and operating system in existence and
- is available from a large number of vendors,
- supports a large number of programming languages, and
- is now being used to create mission-critical applications in industries as diverse as health care, telecommunications, banking, and manufacturing.
The increasing popularity of CORBA has created a corresponding increase in demand for software engineers who are competent in the technology. Naturally, CORBA has had to evolve and grow (sometimes painfully) to reach its current levels of popularity and deployment. When the first version of CORBA was published in 1991,
it specified how to use it only in C programs. This was a result of building CORBA from proven technology. At that time, most production-quality distributed systems were written in C.
By 1991, object-oriented (OO) languages such as Smalltalk, C++, and Eiffel had been in use for years. Not surprisingly, many developers thought it strange that a languageindependent
distributed OO system such as CORBA could be programmed only using C, a non-OO, procedural language.
To correct this short-coming, several development groups at companies such as Hewlett-Packard, Sun Microsystems, HyperDesk Corporation, and IONA Technologies started developing their own proprietary mappings of CORBA to the C++ language.
These proprietary mappings of CORBA to C++, all invented independently, differed in many ways. As most C++ programmers know, C++ is a multiparadigm language that supports varied approaches to application development,
including structured programming, data abstraction, OO programming, and generic programming.
The proprietary C++ mappings reflected this diversity; each of them mapped different CORBA data types and interfaces into different (sometimes very different) C++ types and classes.
The mapping differences reflected not only the varied backgrounds of the developers but also the ways they intended to use CORBA to build systems as diverse as software integration middleware, operating systems, and even desktop tool kits.