The Interface Definition Language (IDL) is a descriptive language (not a programming language) to describe the interfaces being implemented by the remote objects. Within IDL, you define the name of the interface, the names of each of the attributes and methods, and so forth. Once you’ve created the IDL file, you can use an IDL compiler to generate the client stub file and the server skeleton file in the Java programming language.
For each user-defined type, a stub class is created by the idl2java compiler. This is the class which is instantiated on the client side which implements the
<interface_name> interface.
The <interface_name>.java file is the Java interface generated for each IDL interface. This is the direct mapping of the IDL interface definition to the appropriate Java interface. This interface is then implemented by both the client and server skeleton.
For each user-defined type, a helper class is created by idl2java. The
Helper class is an abstract class with various static methods for the generated Java interface.
For each user-defined type, a holder class is created by the idl2java compiler. It provides a class for an object which wraps objects which support the
<interface_name> interface when passed as
out and
inout parameters.
For each user-defined type, an operations class is created by the idl2java compiler which contains all the methods defined in the IDL declaration.
The <interface_name>POA.java file is the server-side skeleton for the interface. It unmarshals
in parameters and passes them in an upcall to the object implementation and marshals back the return value and any
out parameters.
The <interface_name>POATie.java file is a delegator implementation for the
<interface_name> interface. Each instance of the tie class must be initialized with an instance of an implementation class that implements the
<interface_name>Operations class to which it delegates every operation.
In addition to operations, an interface specification can also define attributes as part of the interface. By default, all attributes are read-write and the IDL compiler will generate two methods, one to set the attribute's value, and one to get the attribute's value. You can also specify
read-only attributes, for which only the reader method is generated.
IDL allows you to specify operations that have no return value, called one-way methods. These operations may only have input parameters. When a
oneway method is invoked, a request is sent to the server, but there is no confirmation from the object implementation that the request was actually received.