[380] in linux-announce channel archive
CORBA 2.0 Interoperability Protocol Available
daemon@ATHENA.MIT.EDU (Lars Wirzenius)
Wed Mar 29 06:25:43 1995
Date: Tue, 28 Mar 1995 07:26:34 +0300
From: Lars Wirzenius <wirzeniu@cc.helsinki.fi>
To: linux-activists@niksula.hut.fi, linux-announce@vger.rutgers.edu
X-Mn-Key: announce
From: David.Brownell@Eng.Sun.COM (David Brownell)
Newsgroups: comp.os.linux.announce,comp.object,comp.client-server
Subject: CORBA 2.0 Interoperability Protocol Available
Followup-To: comp.object
Organization: SunSoft, Inc.
Reply-To: David.Brownell@Eng.Sun.COM (David Brownell)
Keywords: CORBA, IIOP, TCP, Internet, ORB, OMG, IDL
Approved: linux-announce@news.ornl.gov (Lars Wirzenius)
SunSoft has recently made available a portable source-code implementation
of the CORBA interoperability protocol. This is available to the Internet
community using the access information below. There is no charge for use
according to the license included with the distribution. (That includes
commercial use -- the core constraint is continuing to interoperate using
the OMG's Internet-IOP, as specified by the CORBA 2.0 specifications.)
This is about ten thousand lines of source code; the runtime library is
about 35K on an x86 machine. Since it uses interpretive marshaling, few
additional costs associated with compiled marshaling code are incurred.
It's not a full Object Request Broker (ORB), nor is it intended to be one;
but you could build one by building on top of this software.
Excerpts from the README file are enclosed below, including information
about current platform support and how to get the source code.
- Dave
INTRODUCTION
------------
Welcome to the Inter-ORB Engine! This is the source code version of
SunSoft's portable implementation of the CORBA 2.0 mandatory "IIOP"
interoperability protocol for networked ORBs.
The Inter-ORB Engine implementation is composed of four parts:
- A CDR (Common Data Representation) marshaling engine, which encodes
simple OMG-IDL data types directly and uses a TypeCode interpreter
to marshal complex ones;
- The TypeCode interpreter is used to manipulate all legal OMG-IDL data
types using just standard OMG-IDL TypeCodes;
- The engine framework itself includes a partial ORB implementation, in
that the programming interfaces used are as specified in CORBA and it
follows the OMG-IDL C++ mapping for those abstractions in most cases;
- IIOP-specific modules talk to the engine framework and the CDR engine
to send, receive, and dispatch IIOP messages.
In addition, code for a few basic functional tests is included.
TARGET AUDIENCE
---------------
Who should use this release?
- Organizations which are providing their own implementations of the IIOP
should use this software to perform protocol testing, helping to ensure
that they can in fact interoperate with each other.
- Bridge builders, including ORB implementors who have their own ORB
protocols, can use this software to bootstrap bridge construction work.
- ORB implementors can use this to acquire a TypeCode interpreter. (ORBs
compliant with CORBA 2.0 CORE need one to support the dynamic runtime
typing APIs, such as Any, DII, and DSI.)
- ORB implementors without their own protocols can use this software to add
networked object capabilities to their systems, using the Internet IOP.
- Implementors of systems which are intended to talk with ORBs may wish to
use this software when bridging to ORBs from non-CORBA systems, including
specialized applications that don't need a full ORB infrastructure.
HOW TO OBTAIN THIS SOFTWARE
---------------------------
You can use a mail server program to retrieve this software. Send email with
a body line 'help' to iiop-bridging@omg.org, and the mail server will respond
with a copy of this README file. Send email with a body line "iiop" and it
will return a SHAR file of this software.
You may also use anonymous FTP to the "ftp.omg.org" server. To do this the
classic (pre-Web) Internet way, use FTP to sign on with the username "ftp"
and your Internet email address as your password. Then change directory to
"/pub/interop" and retrieve the "iiop.sh.Z" file (for compressed SHAR format),
the "iiop.tar.Z" file (for compressed TAR format), or "iiop.zip" file (for
PC ZIP format). In Web-speak, those files are named by these URLs:
ftp://ftp.omg.org/pub/interop/iiop.sh.Z ... compressed SHAR format
ftp://ftp.omg.org/pub/interop/iiop.tar.Z ... compressed TAR format
ftp://ftp.omg.org/pub/interop/iiop.zip ... PC ZIP format
Copies of this software may be made available from archives other than
omg.org. New versions made available by Sun will be placed on omg.org and a
message will be sent to the comp.object newsgroup announcing availability.
HOW TO BUILD AND TEST THIS SOFTWARE
-----------------------------------
On UNIX, just type "make test". You will need to modify the LDLIBS macro
if you are using an operating system that's not based on SVr4; you may
also need to modify the Makefile for other reasons, since they aren't as
portable as most source code is. If you are using a PC compiler, you will
need to create one or more project files, for the library and each program
that uses the library.
Output should look something like this; your performance will differ,
reflecting varying CPU speeds and same-host TCP overheads:
% make test
CC -g -DDEBUG -c cdr.cc
...
testing non-polling server with oneway and null calls
20 call non-polling loop timings:
oneway hello avg time = 0.130ms, 7692 calls/second
null call avg time = 0.525ms, 1904 calls/second
testing with 'cube' calls, stub + DII, IOR strings
cube average call time = 1.031ms, 969 calls/second
1000 calls, 0 errors
testing request forwarding with 'cube' calls, stub + DII
cube average call time = 1.032ms, 968 calls/second
1000 calls, 0 errors
testing transmission of primitive data types
test1_clnt: 100 loops, 1700 tests (0 errors)
%
The source code autoconfigures itself for various build platforms by using
#ifdefs provided by the various platforms; the code has been written to be
portable. On many UNIX systems it will compile (and run) "out of the box".
This software has been compiled using the following C++ compilers:
- SPARCworks (for SPARC) and PROworks (for x86) 3.0.1 (C++ 4.0.1)
- Borland C++ (BC++) 4.5
- GNU C++ (G++) 2.6.3
- Visual C++ (VC++) 2.0
The software will not compile with Visual C++ 1.5, since that compiler does
not support standard C++ class nesting or templates. C++ exceptions aren't
used, since many C++ compilers don't support them. (G++ is working on such
support, and VC++ 2.0 only has partial support.) Getting it to work on
a CFRONT 3.x compiler release may not be very difficult.
This software (or a slightly earlier version of it) has been tested on these
OS platforms:
- Solaris 2.4, both SPARC and Intel platforms.
- SunOS 4.1, on SPARC
- Linux (1.1.47 and later) on 486 hardware.
- NEXTSTEP 3.2
- Windows NT Workstation 3.5
--
David Brownell db@Eng.Sun.COM.
Enterprise Distributed Objects
main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34);}",34);}
--
Send submissions for comp.os.linux.announce to: linux-announce@news.ornl.gov
PLEASE remember Keywords: and a short description of the software.