Java client programs use Java Remote Method Invocation (RMI) to invoke
methods in a server. RMI in turn uses one of two communication protocols between
client and server:
- Java™ Remote Method Protocol (JRMP)
- RMI uses JRMP when both client and server applications are written in Java. CICS® does not use JRMP.
- Internet Inter-ORB Protocol (IIOP)
- RMI uses in an environment when client and server applications may be
written in different languages. When IIOP is used as the communications protocol,
Java client applications can use the RMI to invoke server programs in another
language (C++, for example), as well as to invoke remote Java programs.
IIOP uses Interface Definition Language (IDL) to specify interfaces between
objects in a language-independent way. When a Java client makes a remote method
call, the Java method name, and its arguments, are converted to the equivalent
IDL for transmission to the server using IIOP. It is at this point that mangling
may be necessary, because there are many differences in the rules for Java
names and IDL names. Some of these differences are:
- Java names are case-sensitive, IDL names are not
- Java supports overloaded methods, IDL does not
- Java names can contain Unicode characters, IDL names cannot
- Some valid Java names may collide with IDL keywords
- Java names can start with a leading underscore, IDL names cannot
In these cases, and others, Java names that are not permitted in IDL, or
that are permitted but may be ambiguous, are mangled into an acceptable form.