What is CORBA/e?

Industry Standard Middleware for Distributed Real-Time and Embedded (DRE) Computing.

Led by OIS as the sole editor of the new CORBA/e specification at OMG, CORBA/e is the Object Management Group’s (OMG) response to the need for a new approach to interoperability standards for resource-constrained embedded systems. CORBA/e is an umbrella term for two new “domain profiles,” each designed to dramatically minimize the footprint and overhead of middleware for a specific domain, while retaining the core elements of interoperability that support optimized distributed systems.

Lowest possible overhead – no compromise: CORBA/e profiles are designed to produce compact, fast, and predictable systems with minimal overhead. CORBA/e profiles provide deterministic, real-time execution in footprints that fit easily onto board-based or chip-based systems. CORBA/e is not “CORBA on a diet,” it is a new family of specifications designed specifically to address the needs of resource constrained embedded environments.

Compact or Micro Profile?
All About CORBA/e

CORBA/e Compact Profile:

CORBA/e Compact Profile defines the full set of features available under CORBA/e.

CORBA/e Compact Profile merges the key features of standard CORBA 2.6 and Real-time CORBA into a powerful yet compact middleware package that interoperates with other CORBA clients and servers of every scale, executes with the deterministic characteristics required of a true real-time platform, and leverages the knowledge and skills of software development teams through industry-standard architecture.

Shedding the dynamic aspects of CORBA and support for the CORBA Component Model (with their unpredictable response times and unlimited potential memory usage), CORBA/e retains full IIOP interoperability. It also preserves many Portable Object Adapter (POA) options, and most of the functionality of lightweight Valuetypes and Type Any (excepting Dynamic Any).

The CORBA/e Compact Profile supports sophisticated applications such as real-time image and signal processing on board-based systems running a standard Real-time Operating System (RTOS).

Compact Yet Powerful

Fits resource-constrained systems (32-bit processor running a RTOS), but supports sophisticated applications such as signal or image processing in real-time.

Interoperable

Compiles all OMG IDL (although dynamic aspects of CORBA – IFR, DII, DSI, recursive Valuetypes, dynamic Any – do not execute). Iintegrates with applications running full CORBA, CORBA/e Compact Profile, and CORBA/e Micro Profile. And, supports native IIOP (all versions through the current GIOP 1.4 and IIOP 1.4).

Deterministic

Supports Real-time CORBA with Static Scheduling. Propagates Real-time CORBA priorities over the wire. Disallows dynamic aspects of CORBA – IFR, DII, DSI, dynamic Any, recursive Valuetypes.

Server-Side

POA supporting Transient or Persistent objects, retained servants (disallows Implicit Activation) and prioritized multi-threading under ORB control.

CORBA Services

Includes Naming, Events, and Lightweight Logging Services.

CORBA/e Micro Profile:

CORBA/e Micro Profile is a subset of the Compact Profile.

The CORBA/e Micro Profile shrinks the footprint even more, small enough to fit low-powered microprocessors or DSPs. This profile further eliminates the Valuetype, the Any type, most of the POA options preserved in the Compact Profile, and all of the Real-time functions except the Real-time Mutex interface.

In exchange for these limitations, the profile defines a CORBA executable that vendors have fit into only tens of kilobytes of memory – small enough to fit onto a high-end DSP or microprocessor on a hand-held device. Even at this small size, the CORBA/e Micro Profile retains full IIOP interoperability.

The CORBA/e Micro Profile supports basic functionality on the smallest networked systems, including Digital Signal Processors (DSPs) and low-powered microprocessors found on typical hand-held devices.

Truly Micro

Fits on a mobile or similar device with a low-power microprocessor, or high-end DSP.

Interoperable

Compiles all OMG IDL (Dynamic aspects of CORBA – IFR, DII, DSI, Any, Valuetypes, transient Servants – do not execute). Integrates with applications running full CORBA, CORBA/e Compact Profile, and CORBA/e Micro Profile. And, supports native IIOP (all versions through the current GIOP 1.4 and IIOP 1.4).

Deterministic

Supports only statically defined Interfaces, Interactions, and Scheduling. Also, supports Real-time CORBA MUTEX interfaces.

Server-Side

For compactness and deterministic behavior, supports only root POA, allows only transient, retained servants with unique, system-assigned IDs, and multi-threading under ORB control.

CORBA/e
Summary

Embedded systems are called upon to interoperate in many ways: an automobile, a circuit-board assembly unit, or even a sophisticated office copy machine may contain multiple embedded processors connected to a network. In an assembly plant or chemical refinery, for example, process control modules may interoperate with many small sensor units, and one or a few large servers or mainframes. The combination of interoperability, deterministic execution, and absolute dependability required for these applications can only come from a mature, standards-based middleware.

Deployed in military, industrial, and consumer applications around the world, CORBA provides these characteristics in an architecture that fits hosts from the largest server farms to small, networked digital signal processors (DSPs). To meet these systems’ requirements for a small footprint and deterministic execution, the Object Management Group (OMG) has taken the static aspects of industry-standard CORBA and merged them with real-time features into two new profiles under the banner CORBA/e (CORBA for embedded). 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 signal or image processing with real-time dependability. CORBA/e Micro Profile is even smaller and fits on the kind of low-powered microprocessor or high-end DSP found on mobile or hand-held equipment.

To the system architect, CORBA/e levels the interoperability playing-field, allowing board-based DRE systems and micro DRE systems to interoperate not only with each other, but also with all existing systems using the CORBA standard.

At the same time, it allows developers to use their existing CORBA skills to code at full speed from the start and allows projects to hire from a large pool of skilled CORBA developers.