InetSoft Product Information: Using InetSoft's BI Software Tools to Access CORBA Data Sources

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.

dashboard demo
View a 2-minute demonstration of InetSoft's easy, agile, and robust BI software.

CORBA Object Mapping

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:



Primitive types

Strings, floating point values, integer values, Characters, and booleans are mapped to one node in the tree. The value of the node has the same type as the mapping defined by the CORBA to Java mapping.

Sequence or array types

A sequence is mapped to a sequence node. A sequence node holds child nodes of the same type. This is equivalent to an array in Java.

Struct types

A struct object is mapped to a sub-tree. The root of the tree represents the struct object. Each child of the root represents a member of the struct.

Union type

Data Modeler CORBA binding does not support Unions.

Enum types

An enum object is mapped to a string with the name of the enum value. For example, the following enum defines the colors: enum Color {RED, GREEN, BLUE}; An enum object of this type is mapped into one of the strings with the enum value name, ‘RED’, ‘GREEN’, or ‘BLUE’.


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.


Read how InetSoft was rated #1 for user adoption in G2 Crowd's user survey-based index.