By Matteo Vescovi, Technical Architect, Micro Focus
The Object Management Group (OMG) published the REST for CORBA specification version 1.0 Beta. The new spec defines a standard and interoperable mechanism that enables CORBA (Common Object Request Broker Architecture) objects to be exposed as REST (REpresentational State Transfer) architecture services.
The Beta status indicates that the spec is available for testing for troubleshooting issues before it is generally available. Let’s look at some of the behind-the-scenes goals and design considerations we had for the spec.
From a technical perspective, it defines a set of standard Interface Definition Language (IDL) annotations to decorate IDL constructs to expose the corresponding CORBA objects as REST services that REST client applications can consume.
Our goal was to enable pure REST clients to use CORBA services through the exposed REST façade transparently. IDL annotations, which we call IDL-RS, strive to comply with the REST architectural style. Our design assumes that HTTP is the underlying network transport layer protocol, aiming to provide a clear mapping between HTTP resources and the corresponding CORBA objects. (This specification does not change any adopted OMG specification.)
The new spec also defines Data Representation Formats to externalize objects defined with the IDL Type Representation format to JSON and XML Data Representation formats. A Data Representation Format defines how objects of the types defined by the IDL Type System may be externalized such that they can be stored in a file or communicated over a network (commonly referred to as “data serialization” or “data marshaling”).
JSON and XML Data Representation Formats are typically used in REST applications and provide an alternative to the encoding mechanism to the standard Common Data Representation (CDR) format used in CORBA applications.
To reach these goals, the 45-page Beta spec includes:
- IDL-RS annotations, including:
- Assigning REST Uniform Resource Identifiers to IDL constructs,
- Assigning REST Request Method Designators to IDL constructs,
- Controlling Data Representation format encoding,
- Assigning HTTP status code representations to IDL exceptions,
- JSON Data Representation Format, specifying a mapping between IDL core types, IDL Any types, IDL interfaces, and JSON syntax
- XML Data Representation Formats, specifying a mapping between IDL core types, IDL Any types, IDL interfaces, and XML syntax
The CORBA standard is designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between systems on different operating systems, programming languages, and computing hardware. The most current version of the REST for CORBA specification is posted here.