This course focuses on CORBA design rather than implementation (the second course in this series concentrates on implementation), so the required software is minimal. A text editor, minimally notepad, vi, simpletext, or emacs, will be needed. You may want to try one of the simple programmer's editors available from the Internet on a trial basis:
A free (for noncommercial use) version of ORBacus (formerly known as OmniBroker) [Currently owned MICROFOCUS]
It may also be helpful to download the latest versions of the CORBA Whitepapers, especially if you want more details.
Background: History of Distributed Systems
If you are interested enough in CORBA to be examining this course, you probably know a thing or two already about distributed systems. Distributed systems have been around, in one form or another, for some time,
although they have not always been called that and they certainly have not always had the flexibility that they do now.
To discover where CORBA fits in, let us briefly review the history of distributed systems, starting with legacy mainframes.
The Beginning: Monolithic Systems and Mainframes
In the beginning there was the mainframe. ENIAC (Electronic Numerical Integrator And Computer) was the first general purpose computer and was invented by John Vincent Atanasoff.
It was primarily designed to calculate artillery tables for the Army, it was also used to study the feasibility of thermonuclear bombs.
Along with it came hierarchical database systems and dumb terminals, also known as green screens.
Mainframes usually cost a great deal to maintain but were capable of serving large numbers of users and had the advantage (or disadvantage, depending on one's point of view) of being centrally managed.
Software systems written for mainframes were often monolithic, that is, the user interface, business logic, and data access functionality were all contained in one large application. Because the dumb terminals used to access
mainframes did not do any of their own processing, the entire application ran in the mainframe itself, thus making the monolithic architecture reasonable.
A typical monolithic application architecture is illustrated in Figure 1.3