With its multiple language binding, CORBA is a platform for building distributed applications in a hybrid language environment. Combined with the platform independence of Java; CORBA facilitates the development of truly portable applications.
A CORBA object is defined using the CORBA IDL language, and is mapped to a language specific API. An implementation of the object can be created using language binding. Programs written in other programming languages can communicate with the object by binding the same IDL definition to that language.
The Data Modeler takes CORBA data access to the next step. By taking advantage of the Java Reflection API, the Data Modeler can intelligently bind to a CORBA server. It automatically discovers CORBA objects’ available methods, and the object tree used to communicate with the server. Using this information, the Data Modeler constructs Java objects to pass to the CORBA server as parameters, and maps the CORBA method return values to hierarchical structures, which serve as the query data.
The CORBA IDL language supports the following types of objects. The Data Modeler maps each type to either a single node or a sub-tree in a hierarchical structure.
The CORBA IDL Language Supports the Following Types of Objects:
OBJECT TYPE
DESCRIPTION
OBJECT TYPE
DESCRIPTION
Each CORBA object, whether a parameter or a return value, is mapped to a schema tree using these rules. The schema tree is used for two purposes:
1. A schema tree is used to create an object to be passed to a CORBA method invocation.
Each CORBA object method is mapped to a request in a CORBA data source. To invoke a request, the query engine may need to pass parameters to the CORBA server. The parameters are constructed according to the schema tree describing the parameter values in the method. The query developer specifies values for the nodes on the tree. The values are converted to a Java object at runtime, and passed to the CORBA server as part of the invocation.
2. A schema tree is used to parse the return values of a CORBA invocation, and to create a tree structure.
Each CORBA invocation may return one or more values. Each returned value is converted to a tree according to the schema describing the return values. The tree is used as the input for the query selection.