CORBA Support
The CORBA support provided by OiL is restricted to interoperability with other ORBs. In particular, OiL does not embrace the programming interfaces defined by the CORBA specification. Instead, it uses a different programming interface specifically designed for Lua. This interface is described in section Basic Concepts.
Standard OiL defines four standard flavors for creation of CORBA brokers, as listed below.
For more information about how to initialize brokers with a specific flavor see oil.init
.
corba
- CORBA support without multithreading.
cooperative;corba
- CORBA support with multithreading.
intercepted;corba
- CORBA support without multithreading, but with support for invocation interceptions.
cooperative;intercepted;corba
- CORBA support with multithreading and support for invocation interceptions.
When a broker is initialized with CORBA support, some additional features are enabled, as described in the following sections.
- Loading IDL
- Describes the API provided to load into the broker type definitions described in CORBA's IDL or stored in remote CORBA Interface Repositories.
- Value Mapping
- Describes how IDL types are mapped to Lua values, and how to define new types programmatically.
- Additional Features
- Describes additional features provided by CORBA brokers, like implicit servant creation, local reference resolution, etc.
- Intercepting Invocations
- Describes the support for interception of CORBA invocations.
Supported Features
Some features defined by CORBA are not implemented by OiL. See the table below for a list of some of the CORBA features currently provided by OiL and also some of those that are not provided yet.
Feature | Since | ||
---|---|---|---|
Types and marshalling | |||
Boolean | O2 | ||
Character | O2 | ||
Numeric types
| O2 | ||
Large numeric types
| 0.4 | ||
Fixed decimal | Not supported yet | ||
Enumeration | O2 | ||
Struct | O2 | ||
Union | O2 | ||
Sequence | O2 | ||
Array | O2 | ||
String | O2 | ||
Wide character types
| Not supported yet | ||
Object reference | O2 | ||
TypeCode | O2 | ||
Any | O2 | ||
Value type | 0.5 | ||
Abstract interface | 0.5 | ||
Principal | Not supported yet | ||
Native | Not supported yet | ||
Protocols | |||
GIOP/IIOP 1.0 | O2 | ||
GIOP/IIOP 1.3 | 0.6 | ||
Bidirectional GIOP | 0.6 | ||
Object references | |||
Stringfied IOR's | O2 | ||
corbaloc URLs | 0.2 | ||
corbaname URLs | Not supported yet | ||
FTP URLs (optional) | Not supported yet | ||
HTTP URLs (optional) | Not supported yet | ||
Initial References | Not supported yet | ||
ORB and servants | |||
_non_existent basic operation
| 0.2 | ||
_is_a basic operation
| 0.3 | ||
_interface basic operation
| 0.3 | ||
ORB net interface and port definition | O2 | ||
Multiple ORB instances | 0.1 | ||
Attribute implementation as servant fields | O2 | ||
Attribute implementation by _set_ and _get_ operations | 0.1 | ||
Concurrent request handling | 0.3 | ||
Absolute interface names | 0.3 | ||
Shutdown operation | 0.4 | ||
Operation invocation and dispatch interception | 0.4 | ||
Operation invocation forwarding during interception | 0.5 | ||
POA manament and policies | Not supported yet | ||
CORBA Services | |||
Integrated interface repository | 0.3 | ||
Naming service | 0.3.1 | ||
Trading service | Not supported yet | ||
Event service | Not supported yet | ||
Notification service | Not supported yet | ||
Dynamic proxies | |||
_non_existent basic operation
| 0.2 | ||
_interface basic operation
| O2 | ||
_is_a basic operation
| 0.3 | ||
_is_equivalent basic operation
| 0.4 | ||
_is_nil basic operation
| Not supported yet | ||
oneway operations | 0.1 | ||
deferred invocations (futures) | 0.4 |