SPECIAL SECTION
Software Tools and Techniques
“Not Your Father’s CORBA - An Architecture for Embedded and Real-Time Systems
The new CORBA/e is the high-performance architecture of choice for distributed real-time and embedded environments.
VICTOR GIDDINGS, OBJECTIVE INTERFACE SYSTEMS
Scientists at Lawrence Livermore National Laboratory’s National Ignition Facility (NIF) needed to solve one of the world’s most challenging distributed system control problems for a $1.2 billion nuclear fusion facility. They required a high-performance systems architecture to enable maximum code reuse, accelerated performance and real-time application integration.
The NIF’s Integrated Computer Control System (ICCS) had to manage more than 40,000 control points to operate 192 of the world’s most powerful laser beamlines. These lasers deliver 2 MegaJoule pulses of optical energy onto a BB-sized deuterium fusion fuel capsule in a pulse 25 nanoseconds long, which results in an energy-producing inertial confinement fusion reaction similar to the ignition of a small sun. For this demanding engineering task, NIF depends on the Common Object Request Broker Architecture (CORBA).
Yes, that’s right. CORBA. This might surprise those who remember CORBA from its earlier incarnations in the enterprise software industry when it was typically characterized as “big, fat and slow.”
The development of real-time and embedded CORBA offers major improvements over earlier implementations of CORBA. Its performance meets or exceeds users’ most stringent requirements and allows programmers to develop source code that is reusable across multiple platforms, applications and projects—which maximizes an investment in CORBA across generations of applications.
Today CORBA has become the middleware of choice for the world’s most demanding applications and harshest environments in defense, aerospace, communications, banking/finance, industrial controls, robotics, medical equipment and multiple other industries.
What is CORBA/e?
For systems that need small memory footprint and deterministic execution, embedded developers can use the latest generation of CORBA: CORBA/e (CORBA for embedded). An Object Management Group (OMG) standard, CORBA/e provides an architecture for distributed processing that fits systems from the largest server farms to the smallest networked Digital Signal Processors (DSPs).
The OMG has merged the static aspects of industry standard CORBA with the essential Real-Time CORBA features into two new profiles grouped under the banner of CORBA/e. The CORBA/e Compact Profile fits easily on a typical 32-bit microprocessor, running a standard Real-Time Operating System (RTOS); these systems may run such applications as communications, signal or image processing with real-time dependability. The CORBA/e Micro Profile is even smaller and fits on the kind of low-powered microprocessor or high-end DSP found on mobile or handheld equipment.
Why CORBA/e?
Embedded system software development is an expensive and time-consuming task. But with a sound middleware architecture, this investment can pay dividends across many generations of technology. For developers of real-time and embedded systems, CORBA/e is ideally suited to the challenges of today’s mission-critical environments.
In today’s world, stand-alone systems are becoming a thing of the past. Embedded processor environments are networked and highly interconnected. Software must cope with communications and interoperability issues, while delivering the same reliability and performance as the isolated embedded systems of the past. Even systems that appear to be stand-alone need a communications infrastructure to merely report their status. CORBA/e provides easy access to a variety of sophisticated transports including Shared Memory, RapidIO and FireWire, as well as Ethernet.
Embedded software development is no longer confined to a specific processor model on a particular board—if it ever was. A developer may need to support many different processors at the same time, or migrate to new environments as the initially targeted compilers, operating systems and processors change. There is increased pressure to preserve investment through development of “reusable product lines.” Developers writing their own infrastructure are more susceptible to increased cost due to code changes accommodating inevitable environment changes. CORBA/e insulates embedded developers from the headaches of rewriting code with every processor and system change. In addition, embedded systems will increasingly use multicore processors, and developers will need to migrate their applications from single core processors to processors containing two or more cores. CORBA/e enables a seamless migration to multiple cores through the benefits of location transparency.
With this kind of increase in complexity, applications gain flexibility through refactoring. Developers can build a CORBA/e application as if it were a stand-alone application. They can then spread and re-spread the application logic across multiple resources in a way that doesn’t create any extra work. Deferring deployment decisions enables optimized resource allocation and the flexibility to adjust to changing conditions.
Discuss
|
A well written article, but looks like the audience is still the "father" :-) |

Kontron
Interphase