====================================================================== The Internet Communications Engine ====================================================================== Ice is a modern alternative to object middleware such as CORBA or COM/DCOM/COM+. It is easy to learn, yet provides a powerful network infrastructure for demanding technical applications. It features an object-oriented specification language, easy to use C++, Java, Python, PHP, C#, and Visual Basic mappings, a highly efficient protocol, asynchronous method invocation and dispatch, dynamic transport plug-ins, TCP/IP and UDP/IP support, SSL-based security, a firewall solution, and much more. Ice is available under the terms of the GNU General Public License (GPL) (see LICENSE file). Commercial licenses are available for customers who wish to use Ice with proprietary products. Please contact sales@zeroc.com for more information about licensing Ice. ====================================================================== About this distribution ====================================================================== This distribution is a binary release of Ice @ver@ for AIX 5.2, and includes the following components: - The Ice runtime, including executables for the Ice services, HTML documentation and Slice files. - Run time libraries for C++ and Java. These libraries enable you to execute Ice applications. - Tools and libraries for developing Ice applications. ====================================================================== Requirements ====================================================================== This binary distribution was compiled on AIX 5.2 using IBM VisualAge version 6 with the April 2004 PTF. The following binary RPMs are required to use this distribution: - bzip2-1.0.2-3.aix5.1.ppc.rpm - expat-1.95.7-1.aix5.1.ppc.rpm - openssl-0.9.7g-1.aix5.1.ppc.rpm The RPMs can be obtained from http://www.ibm.com/servers/aix/products/aixos/linux/ezinstall.html Java ---- Ice for Java requires J2SE 1.4.2 or 1.5.0. Java for AIX is available from IBM at http://www-128.ibm.com/developerworks/java/jdk/aix The SSL plugin for Ice (IceSSL) requires that you use IBMJSSE2 as your security provider for Java 2. (Java 5 uses IBMJSSE2 by default.) You must edit the java.security file located at /jre/lib/security/java.security and modify the value of the security.provider.1 property as follows: security.provider.1=com.ibm.jsse2.IBMJSSEProvider2 ====================================================================== Berkeley DB ====================================================================== This distribution includes the C++ and Java runtime for Berkeley DB 4.3.29. The C++ runtime was built using IBM VisualAge 6. The Berkeley DB license is provided in the file THIRD_PARTY_LICENSE. ====================================================================== 64 bit builds ====================================================================== This distribution only contains 32-bit binaries. If you need a 64-bit version, you can download the Ice sources from the ZeroC web site at http://www.zeroc.com/download.html and build Ice in 64-bit mode. See the INSTALL.AIX file of the source distribution for more details. ====================================================================== Setting up your environment to use Ice ====================================================================== General ------- The discussion below assumes you have defined the ICE_HOME variable with the directory of your Ice installation. In order to use Ice services and tools such as Slice translators, you need to add $ICE_HOME/bin to your PATH as shown in the bash command below: $ export PATH=$ICE_HOME/bin:$PATH Ice shared libraries and executables in this distribution contain /opt/Ice-@mmver@/lib as embedded runpath. In order to run Ice services and tools, you can either: - create a symbolic link /opt/Ice-@mmver@ that points to your Ice installation. $ ln -s $ICE_HOME /opt/Ice-@mmver@ - or add $ICE_HOME/lib to your LIBPATH environment variable $ export LIBPATH=$ICE_HOME/lib:$LIBPATH C++ --- When compiling Ice for C++ programs, you must pass $ICE_HOME/include to the compiler with the -I option, and $ICE_HOME/lib with the -L option. Furthermore, a C++ program needs to link with at least libIce and libIceUtil, so a typical link command would look like this: $ xlC_r -o myprogram myprogram.o -L$ICE_HOME/lib -lIce -lIceUtil Additional libraries are necessary if you are using an Ice service such as IceGrid or Glacier2. Java ---- To use Ice for Java, you must add $ICE_HOME/lib/Ice.jar to your CLASSPATH, as shown below: $ export CLASSPATH=$ICE_HOME/lib/Ice.jar:$CLASSPATH To use the Java5 version of Ice instead, modify your CLASSPATH as follows: $ export CLASSPATH=$ICE_HOME/lib/java5/Ice.jar:$CLASSPATH If you plan to use Freeze for persistence, you must also add the Berkeley DB JAR file (db.jar) to your CLASSPATH: $ export CLASSPATH=$ICE_HOME/lib/db.jar:$CLASSPATH In addition, the JVM requires that the directory containing the Berkeley DB libraries be listed in java.library.path, therefore you must add this directory to LIBPATH. ====================================================================== Using the IceGrid Administrative Console ====================================================================== A Java-based graphical tool for administering IceGrid applications is included in this distribution. The Java archive file is installed as $ICE_HOME/lib/IceGridGUI.jar With a suitable Java installation, you can execute the application using the following command: $ java -jar IceGridGUI.jar ====================================================================== Demos and documentation ====================================================================== Sample programs are provided in the Ice-@ver@-demos.tar.gz package, which can be downloaded from the ZeroC web site at http://www.zeroc.com/download.html Please refer to the README.DEMOS file included in that package for more information. See doc/README.html for information on the documentation included with this distribution. ====================================================================== Binary compatibility ====================================================================== Patch releases of Ice are binary compatible. For example, version ..1 is compatible with ..0, so you can run applications compiled with ..0 with the ..1 runtime without having to recompile. With the binary installers, simply uninstall the previous version of Ice and install the new one. Already deployed applications that were compiled against the ..0 runtime will automatically use the ..1 runtime.