mirror of
https://github.com/AdaCore/PolyORB.git
synced 2026-02-12 13:01:15 -08:00
[Imported from Perforce change 6714 at 2006-12-01 20:00:51] Subversion-branch: /trunk/polyorb Subversion-revision: 34664
197 lines
7.9 KiB
Plaintext
197 lines
7.9 KiB
Plaintext
------------------------------------------------------------------------------
|
|
-- --
|
|
-- POLYORB COMPONENTS --
|
|
-- --
|
|
-- Copyright (C) 1999-2003 Free Software Fundation --
|
|
-- --
|
|
-- PolyORB is free software; you can redistribute it and/or modify it --
|
|
-- under terms of the GNU General Public License as published by the Free --
|
|
-- Software Foundation; either version 2, or (at your option) any later --
|
|
-- version. PolyORB is distributed in the hope that it will be useful, --
|
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- --
|
|
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
|
|
-- License for more details. You should have received a copy of the GNU --
|
|
-- General Public License distributed with PolyORB; see file COPYING. If --
|
|
-- not, write to the Free Software Foundation, 59 Temple Place - Suite 330, --
|
|
-- Boston, MA 02111-1307, USA. --
|
|
-- --
|
|
-- As a special exception, if other files instantiate generics from this --
|
|
-- unit, or you link this unit with other files to produce an executable, --
|
|
-- this unit does not by itself cause the resulting executable to be --
|
|
-- covered by the GNU General Public License. This exception does not --
|
|
-- however invalidate any other reasons why the executable file might be --
|
|
-- covered by the GNU Public License. --
|
|
-- --
|
|
-- PolyORB is maintained by ACT Europe. --
|
|
-- (email: sales@act-europe.fr) --
|
|
-- --
|
|
------------------------------------------------------------------------------
|
|
|
|
This is the README file for PolyORB version @polyorb_version@.
|
|
|
|
The home page of the project is located at http://libre.act-europe.fr/polyorb/
|
|
This is where you can find news about the project, new releases, and
|
|
pointers to several documents and papers related to PolyORB.
|
|
|
|
What is PolyORB?
|
|
----------------
|
|
|
|
PolyORB is a polymorphic, reusable infrastructure for building
|
|
object-oriented distributed systems. Middleware environments are
|
|
software libraries that hide the complex issues of distribution
|
|
and provide the programmer with high-level abstractions that allow
|
|
easy and transparent construction of distributed applications.
|
|
A number of different standards exist for creating object-oriented
|
|
distributed applications. These standards define two things:
|
|
|
|
* the interface seen by the developer's applicative objects;
|
|
* the protocol used by the middleware environment to talk to other
|
|
nodes in the distributed application.
|
|
|
|
Usually, middleware for one platform supports only one set of
|
|
such interfaces, and cannot interoperate with other platforms.
|
|
|
|
A polymorphic middleware allows the existence of several different
|
|
implementations of each of these aspects to be used within the same
|
|
middleware framework. In addition, PolyORB allows such different
|
|
personalities to coexist in the same instance of the running middleware;
|
|
it decouples the personality presented to applications on one side
|
|
("application personality"), and the personality presented
|
|
to other middleware on the other side ("protocol personality").
|
|
Multiple implementations of each personalisable aspect can
|
|
coexist within the same instance of the running middleware:
|
|
unlike previous generic middleware, PolyORB is actually schizophrenic.
|
|
|
|
The decoupling of application and protocol personalities, and the support
|
|
for multiple simultaneous personalities within the same running middleware
|
|
are key features required for the construction of interoperable
|
|
distributed applications. This allows PolyORB to communicate
|
|
with middleware that implement different distribution standards:
|
|
PolyORB provides middleware-to-middleware interoperability.
|
|
|
|
The PolyORB architecture also permits the automatic,
|
|
just-in-time creation of proxies between incompatible environments
|
|
(although this feature is not implemented yet).
|
|
|
|
Installation
|
|
------------
|
|
|
|
See INSTALL file for more details on supported platforms and
|
|
installation process.
|
|
|
|
Documentation overview
|
|
----------------------
|
|
|
|
FEATURES : List PolyORB's features.
|
|
INSTALL : Detail PolyORB installation process.
|
|
NEWS : Detail updates between PolyORB's releases.
|
|
README : This file, first instructions.
|
|
src/ROADMAP : Overview of PolyORB source code.
|
|
doc/* : Miscellaneous documents describing PolyORB internals.
|
|
|
|
Usage of idlac
|
|
--------------
|
|
|
|
idlac is the IDL-to-Ada 95 compiler of PolyORB. It is an evolution
|
|
of the compiler that was present in AdaBroker.
|
|
|
|
idlac [-i] [-k] idl_file [-cppargs ...]
|
|
|
|
-i Generate implementation template.
|
|
-k Keep temporary files.
|
|
-q Be quiet.
|
|
-cppargs ARGS
|
|
Pass ARGS to the C++ preprocessor.
|
|
|
|
This creates several files :
|
|
|
|
- myinterface.ads, myinterface.adb : these files contain the mapping
|
|
for user defined types (client and server side).
|
|
|
|
- myinterface-impl.ads, myinterface-impl.adb : these files are to be
|
|
filled by the user. They contain the implementation of the
|
|
server. They are generated only if the -i flag is specified.
|
|
|
|
- myinterface.ads, myinterface.adb : these files
|
|
contain the client stubs for the interface.
|
|
|
|
- myinterface-skel.ads, myinterface-skel.adb : these files
|
|
contain the server-side skeletons for the interface.
|
|
|
|
- myinterface-stream.ads, myinterface-stream.adb : these files
|
|
contain subprograms to marshal data according to the CDR protocol.
|
|
|
|
Usage of PolyORB
|
|
----------------
|
|
|
|
See examples of simple CORBA clients and servers in subdirectory
|
|
'examples/'. Basically, a simple non-tasking CORBA client should have
|
|
a dependency and a pragma Elaborate_All on PolyORB.Setup.Client. A
|
|
CORBA server should have a dependency and pragma Elaborate_All on one of
|
|
PolyORB.Setup.No_Tasking_Server, PolyORB.Setup.Thread_Pool_Server or
|
|
PolyORB.Setup.Thread_Per_Session_Server.
|
|
|
|
If you want anything different, you should create a package similar
|
|
to one of these setup packages and use it instead. That package must
|
|
have dependencies and pragmas Elaborate_All on all subsystems you need
|
|
to use, and must contain a call to PolyORB.Configurator.Initialize_World
|
|
in its own elaboration code.
|
|
|
|
Bug reports
|
|
-----------
|
|
|
|
If you find a bug or would like to submit patches, please do so indicating
|
|
the release you use. We accept patch files. To produce such a patch file,
|
|
put your files in the PolyORB directory and our files in the directory
|
|
PolyORB.orig, and use the following command:
|
|
|
|
diff --recursive --context PolyORB.orig PolyORB > patch_file
|
|
|
|
and send us the patch_file via e-mail at the address
|
|
|
|
polyorb-devel@lists.act-europe.fr
|
|
|
|
If your diff version do not understand the --recursive or --context
|
|
option, please use the GNU diffutils package which may be found on any
|
|
GNU archive (e.g. ftp://ftp.lip6.fr/pub/gnu/).
|
|
|
|
Note that unified diff files (-u option of GNU diff) are also welcomed.
|
|
|
|
Mailing-lists
|
|
-------------
|
|
|
|
TO BE WRITTEN
|
|
|
|
Contributors:
|
|
-------------
|
|
|
|
PolyORB has been developed since January, 1999 by the following
|
|
contributors:
|
|
|
|
* Nicolas Archambault
|
|
* Fabien Azavant
|
|
* Benjamin Bagland
|
|
* Emmanuel Chavane
|
|
* Jean-Marie Cottin
|
|
* Olivier Delalleau
|
|
* Cyril Domercq
|
|
* Michael Friess
|
|
* Nicolas Fritsch
|
|
* Jeremy Gibbons
|
|
* Jerome Guitton
|
|
* Jerome Hugues
|
|
* Mejdi Kaddour
|
|
* Laurent Kubler
|
|
* Vincent Niebel
|
|
* Pierre Palatin
|
|
* Laurent Pautet
|
|
* Sebastien Ponce
|
|
* Jerome Roussel
|
|
* Thomas Quinot
|
|
* Nicolas Roche
|
|
* Nicolas Setton
|
|
* Frank Singhoff
|
|
* Samuel Tardieu
|
|
* Florian Villoing
|
|
* Guillaume Wisniewski
|