CONTENTS

1. Installation

2. Use

3. Interoperability

3.1 Caveats
3.2 Applets
4. Examples

5. Support and Bug Reporting
 

1.    Installation

To install this product :
 
  1. Create a directory on your machine
  2. Change to that directory
  3. unzip the file ERCORBA.ZIP
  4. If installing under UNIX then edit the file env.sh or env.csh and change the variable $CORBAD to reflect where you unzipped the file. It's defaulted to ~/ercorba. If installing under Win95/NT then edit the file env.bat and change the environment variable CORBAD to reflect where you unzipped the file. It's defaulted to \ercorba.
  5. If installing under UNIX then source the file env.sh or env.csh depending on whether you run Bourne/Korn/Bash or Cshell

  6. i.e. #. ./env.sh or
    # source env.csh

    If installing under Win95/NT then run env.bat

  7. If you wish to develop in C/C++ then depending on your development edit the file gcc.mak for GNU, bc32.mak for Borland C++ and ms32.mak for Visual C++.

  8.  

     

    Change directory to "orbsrc".

    For Borland C++ type make -f bc32.mak
    For Visual  C++ type nmake -f ms32.mak
    For GNU     C++ type make -f gcc.mak

    On Win95/NT 32 this will create ORB.DLL in the "bin" sub-directory and ORB.LIB in the "lib" sub-directory. On UNIX this will create liborb.a in the "lib" sub-directory
     

  9. On Windows, or if you didn't source the env.sh file then set the path of your machine to point to the "bin" sub-directory of the product and add iiop11.jar to your classpath variable

2.    Use


This part assumes you have installed the product under c:\ercorba

To use this product you should

  1. Write a description of your interface in IDL

  2.  
  3. You should add eridl.jar and iiop11.jar to your classpath variable

  4.  

     

    i.e. set CLASSPATH=c:\ercorba\eridl.jar;c:\ercorba\iiop11.jar;%CLASSPATH%

    Type java idl to find out the compiler options.

    i.e, c:>java idl -c -d\tmp myidl

    will write 'C' language client and server stubs into the directory \tmp

    c:>java idl -java -d\tmp myidl

    will write Java client and server stubs into the directory \tmp
     

  5. Write a program to use the interface implementing both client and server

  6.  
  7. Link your program with orblib.a or orb.lib (found in sub-dir lib) (for 'C'/C++ programs)

  8.  
  9. Run the server

  10.  
  11. Run the client

2.1    Preprocessor

Engine Room CORBA does not include a pre-processor. If you need one then use one supplied with your C compiler.

e.g. To preprocess a file called my.idl using VC++ use the command

cl /EP /Tc<filename> my.idl > my.I
to produce  C++ stubs use the command
java idl -c++ my.I

3.    Interoperability

Engine Room CORBA is interoperable with the following ORB's
  1. ORBacus from Object-Oriented Concepts Inc.
  2. Visibroker from Inprise
  3. The native ORB supplied with the JDK1.2
In addition Engine Room CORBA is interoperable with the basic ORB supplied with
with Netscape Communicator 4 (specifically Communicator 4.06)
 

3.1    Caveats


The java stubs produced by the Engine Room IDL compiler are the portable stubs which are (surprisingly) not always portable between the various Java ORBs.

Specifically if you wish to use the stubs with the Visigenic/Netscape ORB then you should use the -netscape flag to produce the stubs if your program can throw user defined exceptions as this ORB handles exceptions in a different manner.

Although the idltojava compiler provided by Sun Microsystems produces portable stubs (renamed!) they will not compile with the Engine Room ORB as they have defined some extra abstract operations in the underlying org.omg.CORBA objects

ORBacus produces stubs in the same manner as ERCORBA and appears to be almost completely compatible. I say almost because there are subtle differences in the generation of complex type codes so that passing Any values which contain complex types may result in the receiving ORB not recognising the incoming value as one that it can handle. This is true of the other ORBs as well and in general you should avoid mixing and matching IDL compilers and stubs and Any values with complex types if interoperability is important.
 

3.2    Applets

The ORB and the server should be run on the same machine as the HTML file is loaded from due to applet security restrictions.

If you wish to use the Engine Room ORB then it's always possible to replace the ORB supplied with Netscape Communicator 4 (iiop10.jar) with the one I supply i.e. iiop11.jar. The Netscape version is found under ...\Netscape\Communicator\Program\Java\Classes\iiop10.jar. Delete it and copy iiop11.jar into this location.
 
 

4.    Examples


There are example programs in the sub-directories

    samples\c
    samples\cpp

For the C or C++ programs, build the test program by typing

    make -f bc32.mak         (Borland)
  or
    nmake -f ms32.mak        (Microsoft VC++)
  or
    make -f gcc.mak            (GNU C++)

This creates

    test1_c.exe or test1_c under UNIX (The client) and
    test1_s.exe or test1_s under UNIX (The server)

Run the server and then run the client.

There is an example JAVA program in the sub-directory

    samples\java

build the test program by typing

    make

Run the the server with
    c:>java serverMain

and then run the client with

    c:>java client

If you have any trouble running any Java applications check that your PATH and CLASSPATH are correct. If in any doubt then

    set CLASSPATH=%your_path%\classes.zip
    and run java as %your_path%\bin\java

where %your_path% is where you installed the JDK and run env.bat to add the JAR's required. Make sure that the JVM (JAVA.EXE in Win32) and classes.zip are correct for each other otherwise you get exceptions like "Method not found". I have tested with JDK1.1.6 on Win95/NT and JDK1.1.7 on LINUX. Don't use the the Engine Room ORB with JDK1.2. Use the one provided with the JDK1.2.
 

5.    Support and Bug Reporting

For support first check release.txt and the bug list at http://members.aol.com/MitchBritt to make sure that the problem has not already been reported. If it hasn't then check that the problem is still in the latest release.

If the bug is still there then e-mail a short description together with a small piece of code exhibiting the problem if possible to mitch_britton@email.com.

Please state the hardware, operating sysyem and compiler version you're using.