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 <%=link"Basics"%>.
On the other hand, OiL follows the specification of the underlying GIOP protocol and its mapping to TCP/IP (a.k.a. IIOP) to interoperate with other CORBA ORBs.
However, many features defined by CORBA are not implemented by OiL.
See the table at the end of this page for a list of some of the CORBA features currently provided by OiL and also some of those that are not provided.
When a broker is created with CORBA support, an additional API is enabled.
Basically, this API is necessary to provide support for the typing information required by CORBA, as it is described in the following sections.
- <%=link"Config"%>
-
Describes the configuration options for initialization of CORBA brokers.
- <%=link"IDL"%>
-
Describes the API provided to load into the broker type definitions described in CORBA's IDL or stored in remote CORBA Interface Repositories.
- <%=link"Mapping"%>
-
Describes how IDL types are mapped to Lua values, and how to define new types programmatically.
- <%=link"Features"%>
-
Describes additional features provided by CORBA brokers, like implicit servant creation, local reference resolution, etc.
- <%=link"Intercept"%>
-
Describes the support for interception of CORBA invocations.
Supported features
Feature
| Tested
| Since
| Limitations
|
Types and marshalling
|
Commom primitive IDL types
- Numeric types
- Structs
- Unions
- Sequences
- Arrays
- String
| Partial
| O2
|
Advanced primitive IDL types
- long long
- unsigned long long
- long double
Partial
| 0.4
|
Object references
| Yes
| O2
|
TypeCodes for supported types
| Partial
| O2
|
|
CORBA's Any
| Yes
| O2
| Protocols
|
GIOP 1.0
| Yes
| O2
|
IIOP 1.0
| Yes
| O2
| Object references
|
Stringfied IOR's
| Yes
| O2
|
corbaloc URLs
| Yes
| 0.2
| ORB and servants
|
_non_existent basic operation
| Yes
| 0.2
|
_is_a basic operation
| Yes
| 0.3
|
_interface basic operation
| Yes
| 0.3
|
ORB net interface and port definition
| No
| O2
|
Definition of host and port for IOR generation
| No
| 0.1
|
Multiple ORB instances
| Yes
| 0.1
|
Attribute implementation as servant fields
| Yes
| O2
|
Attribute implementation by _set_ and _get_ operations
| Yes
| 0.1
|
Concurrent request handling
| Yes
| 0.3
|
Absolute interface names
| Yes
| 0.3
|
Shutdown operation
| Yes
| 0.4
|
Operation invocation and dispatch interception
| Yes
| 0.4
| CORBA Services
|
Integrated interface repository
| Yes
| 0.3
|
Naming service
| Yes
| 0.3.1
| Dynamic proxies
|
_non_existent basic operation
| Yes
| 0.2
|
_interface basic operation
| Yes
| O2
|
_is_a basic operation
| Yes
| 0.3
|
_is_equivalent basic operation
| Yes
| 0.4
|
oneway operations
| No
| 0.1
|
deferred invocations (futures)
| Yes
| 0.4
| |
Not supported features
Feature
| Priority
| Assigned
| Requirements
| Types and marshalling
|
Advanced primitive IDL types
- wide char
- wide string
- fixed decimals
Value types
| medium (maia)
| Maia
| LuaIDL support
|
Other IDL types
- Principal
- Abstract interfaces
- Native
Protocols
|
IIOP 1.1 - 1.2 support
| medium (IME-USP)
| Theóphilo
|
Firewall bypass support
| medium (IME-USP)
| Theóphilo
| Object references
|
Initial References
|
corbaname URLs
|
FTP URLs (optional)
|
HTTP URLs (optional)
| ORB and servants
|
POA manament and policies
| CORBA Services
|
Trading service
|
Event service
|
Notification service
| Dynamic proxies
|
_is_nil basic operation
| | |