This is a primitive CORBA echo server (and client) implementation in multiple languages, intended for educational purposes.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cxx
cxx11
java
python
ruby
LICENSE
Makefile
README.md
demo.py
echo.idl

README.md

CORBA Echo Server

This is a primitive CORBA echo server (and client) in five languages, straight from the omniORB and Java tutorials:

http://omniorb.sourceforge.net/omni42/omniORB/index.html http://docs.oracle.com/javase/7/docs/technotes/guides/idl/jidlExample.html

All server applications print their IOR and block then. All client applications take the IOR as command-line argument, connect to that servant and call the echo() routine once. You can now run the different client / servers against each other for some 'CORBA is cool' demonstrations. Check the demo.py script.

Everything is optimized to be small, including the Makefiles. Therefore, the usage of a naming service is omitted.

Python

  • Install omniORB, test that it is available as Python package (import OMNIOrb).
  • Go into the ./python subdirectory.
  • (Optional) Re-generate stubs and skeletons with "omniorb -bpython ../echo.idl".
  • Start the server with "python server.py". It will print the server IOR to be used by the client.
  • Start the client with "python client.py ".

C++

  • Install omniORB.
  • Go into the ./cxx subdirectory.
  • (Optional) Re-generate stubs and skeletons with "omniorb -bcxx ../echo.idl".
  • Call "make" to build client and server.
  • Start the server with "./server". It will print the server IOR to be used by the client.
  • Start the client with "./client ".

C++11

  • Obtain and install TAOX11, see http://taox11.remedy.nl
  • Go into the ./cxx11 subdirectory.
  • Call "brix11 gen build" to generate the GNU makefiles
  • Call "make" to build the client and server
  • Start the server with "./server". It will print the server IOR to be used by the client.
  • Start the client with "./client ".

Java

  • Install a recent JDK.
  • Go into the ./java subdirectory.
  • (Optional) Re-generate stubs and skeletons with "idlj -fall ../echo.idl".
  • Call "make" to build the JAR files for client and server.
  • Run the server with "java -jar server.jar". It will print the server IOR to be used by the client.
  • Run the client with "java -jar client.jar ".

Ruby

  • Install R2CORBA, see http://www.remedy.nl/products/r2corba.html
  • Go into the ./ruby subdirectory.
  • No need to run an IDL compiler
  • Start the server with "ruby server.rb". It will print the server IOR to be used by the client.
  • Start the client with "ruby client.rb ".

Compatibility Matrix

The following table shows which combinations of operating system and ORB product were reported to work with the different language implementations.

openSuSE 13.2 MacOS X Yosemite
omniORB 4.1.7 Python, C++
JDK 1.8 Java
Remedy R2CORBA 1.4.1 Ruby
Remedy TAOX11 1.3.2 C++11