COPE - CORBA meets Perl This is another alpha release of COPE. See the file Changes for what has been added. Discussion, questions and bug reports should be directed to the COPE mailing list: cope@lunatech.com. See the Lunatech WWW site at http://www.lunatech.com/research/corba/cope for details of the mailinglist and its archive. Installation instructions To use COPE you will need: Perl version 5.005 or later; A CORBA IDL compiler that feeds an Interface Repository. The Perl module Experimental::Exception by Torsten Ekedahl, 0.96 or later; A small part of the libnet package from CPAN. Net::Domain::hostfqdn() returns the DNS name of the machine it is running on. I have put Exception-0.97A.tar.gz next to this archive on the WWW site, This archive contains a very small change from version 0.97 that prevents recent Perl versions from giving a warning. Original versions of this package can be found at ftp://ftp.matematik.su.se/pub/teke. If you just want to experiment on a few systems, you can omit Net::Domain. You will need to edit the first few lines of lib/COPE/CORBA/ORB.pm. You will need an IDL compiler and IR implementation because COPE provides only the back-end of a CORBA IDL to Perl translator. The code is built to use the Orbacus ORB by Object Oriented Concepts Inc. (http://www.ooc.com). Orbacus is free for non-commercial use. It is fairly straightforward to use another IDL compiler and Implementation Repository: just provide a program called 'irserv' that will return a string-form IOR for the IR. COPE is known to work well with MICO (http://www.mico.org/) and VisiBroker. The directory compat/MICO contains some programs for using MICO's ird with COPE's idl2perl. MICO 2.3.1 and later have a "--ior" option that can probably be used to make a simpler irserv script. The compat/VisiBroker contains source for an irserv program for use with that ORB. After you've unpacked COPE-0.0x.tar.gz, do this (for UNIX systems): perl Makefile.PL make make test su ... make install Minimal instructions for use of COPE: I assume you have an IDL file defining an interface and you want to build a Perl client or server. To create client stubs and server skeletons: idl2perl foo.idl This will create files in a directory called 'out'. If you are building a server you may want to use: idl2perl -impl foo.idl This command will also make template modules for server-side implementation of your objects. Interface stubs and module definition files have names like xxxx.pm, server skeletons are xxxx_skel.pm and implementation templates are xxxx_impl.pm. Files containing shared interface definitions are named something like xxxx_types.pm. There is POD embedded in idl2perl with more information and additional options. COPE's mapping of CORBA data types and objects to Perl is described in the file COPE.pod. The test scripts may be useful as simple examples of building applications. The files t/base.t, t/testserver.pl and everything matching t/COPE/Test* are tests of the interfaces in Test.idl. The files t/base2.t, t/test2server.pl and the files matching t/COPE/Data* and t/COPE/Outside* are test of Data.idl. The CosNaming module is another example, together with bin/cope-ns it is a partial implementation of the CORBA naming service. The examples directory contains instructions for building and running a client and server that demonstrate some of the features of COPE's BOA implementation. The biggest client application is idl2perl, the IDL to Perl compiler. It starts the OmniBroker IR and queries it using the interfaces defined in the file IR.idl. $Id$ Copyright (c) 1997 Lunatech Research / Bart Schuller Modifications copyright 1999-2000 Giles Atkinson. See the file "Artistic" in the distribution for licensing and (complete lack of) warranties.