summaryrefslogtreecommitdiff
path: root/TAO/docs
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/docs')
-rw-r--r--TAO/docs/DIFFERENCES360
-rw-r--r--TAO/docs/HISTORY44
-rw-r--r--TAO/docs/Options.html231
-rw-r--r--TAO/docs/REFERENCES91
-rw-r--r--TAO/docs/compiler.html117
-rw-r--r--TAO/docs/components.html39
-rw-r--r--TAO/docs/configurations.html301
-rw-r--r--TAO/docs/forwarding.html85
-rw-r--r--TAO/docs/index.html49
-rw-r--r--TAO/docs/orbsvcs.html181
-rw-r--r--TAO/docs/poa_migration.html69
-rw-r--r--TAO/docs/reactivator.html358
-rw-r--r--TAO/docs/releasenotes.html26
-rw-r--r--TAO/docs/releasenotes/ec.html182
-rw-r--r--TAO/docs/releasenotes/index.html607
-rw-r--r--TAO/docs/releasenotes/orbcore.html458
16 files changed, 0 insertions, 3198 deletions
diff --git a/TAO/docs/DIFFERENCES b/TAO/docs/DIFFERENCES
deleted file mode 100644
index 0a8dd343d4d..00000000000
--- a/TAO/docs/DIFFERENCES
+++ /dev/null
@@ -1,360 +0,0 @@
-@(#)DIFFERENCES 1.1 95/09/13
-
-[ NOTE that the CORBA 2.0 specifications have now been published, but are
-not yet sufficiently available that this document can usefully just list
-any differences between that specification and this software. As a rule,
-there are no differences between this software and CORBA 2.0 in areas
-where CORBA 2.0 has specified an interface. ]
-
-
-This document summarizes known differences between what is implemented in
-this software and currently available OMG specifications. As a rule, these
-establish compatibility with revised specifications that are currently being
-prepared for publication. However, in some cases the differences resolve
-problems that are currently being addressed by ORB taskforces. When those
-revised CORBA specifications are published, this document will be updated to
-reflect any remaining differences from them.
-
-The reason for those changes is that different specifications were adopted
-at the same time and there were in some cases subtle differences which need
-to be resolved. Minor errata have also been fixed. None of these changes
-are substantial, with the exception of the TypeCode interpreter API which
-was added to the C++ mapping.
-
-Also, note that the goal of this software is fidelity to the IIOP, so that
-issues relating (in particular) to the C++ language mapping or other OMG
-specifications were judged to be of less importance at this time.
-
-
-DIFFERENCES from IIOP in UNO Spec (95-3-10)
--------------------------------------------
-Some changes to the original specification (94-9-32) for the IIOP protocol
-were found to be necessary; most related to the subsequently adopted Interface
-Repository (IFR) specification (94-11-7). Others resulted from correction
-of minor editorial errors, and experience gained as multiple teams implement
-to that specification.
-
-The bulk of those changes have been incorporated into the 95-3-10 document,
-but these few have not.
-
-
-CDR TYPECODE INDIRECTION
-
-An additional constraint on the use of typecode indirection has been
-identified. Specifically, the typecode to which an indirection points
-be "self-sufficient", and may not point "outside of itself" for any
-further indirections. For example, always indirections occur within
-encapsulations, so it's OK for the indirection to point anywhere in
-that encapsulation, or at the encoded TCKind enum value immediately
-before the encapsulation's length. For typecode encapsulations nested
-inside other typecode encapsulations, the indirection may point no
-further than the outermost encapsulation.
-
-Also, when an indirection points to another typecode, the byte order
-of that other typecode must be deduced from the encoded value found
-there. This is straightforward for encoded TCKind values, all of which
-fit into a single byte: if the first byte of the word is zero, then
-the encoding is big-endian, else it's little-endian.
-
-Indirecting to another indirection is not allowed, since the byte order
-of the encoded offset can't consistently be deduced.
-
-
-MISCELLANY
-
-The type GIOP::Version is assumed to be identical to IIOP::Version.
-As part of the editorial separation of GIOP from its Internet version
-IIOP, this typedef was accidentally omitted.
-
-This implementation of IIOP supports the OMG-IDL Primitive Data Types as
-defined in Appendix A of 94-9-32, but with TCKind numbers following the new
-tk_exception and tk_alias codes. (That is, rather than using range 21-25,
-these TCKind values are in the range 23-27.)
-
-These data types are currently the topic of an RFP in process in the OMG,
-and are not currently defined as part of a current OMG specification.
-Clients and servers using these extended data types are relying on CORBA
-extensions that are not yet standardized; and should be prepared to change.
-
-
-CORBA 2.0/CORE Differences
---------------------------
-As of this writing, the new CORBA 2.0/CORE document has not yet been made
-available. This is a modification of the CORBA 1.2 document, with the
-addition of (mandatory) extensions from the UNO (94-9-32) specification:
-notably DSI and some new object reference operations. This summarizes
-differences between the as-yet-unpublished CORBA 2.0/CORE document and
-the original text in the UNO specification.
-
-
-DYNAMIC SKELETON INTERFACE
-
-Since the new "tk_except" typecodes now include the exception ID (this is
-the repository ID describing the exception's type) the "exception" operation
-used to report an exception through a ServerRequest no longer includes the
-exception ID.
-
-Since the OperationDef entries for attributes are no longer found in the
-interface repositories, the ServerRequest convenience operation to return
-this has been removed. Application programs (such as bridges) must compare
-the operation name string with the prefixes "_get_" and "_set_" to see if
-any given operation applies to an attribute. If an operation is one of the
-two for which an OMG-IDL "attribute" declaration is shorthand, then the
-application must search the interface repository for that attribute.
-
-(There are in fact three categories of operations on which an object adapter
-and implementation collaborate to handle: user defined operations, user
-defined attributes, and operations defined by CORBA such as "is_a" and
-"get_implementation". Some object adapters, like the BOA, handle this last
-category directly, rather than exposing it to applications.)
-
-The "non_existent" objref operation accidentally used attribute syntax; this
-has been corrected. All operations on CORBA::Object references now use
-normal operation syntax in their (pseudo) IDL definitions, and are uniformly
-prefixed with underscores as part of their C++ mapping.
-
-
-DIFFERENCES from IDL C++ Mapping (94-9-14)
-------------------------------------------
-There are four basic ways in which the IIOP framework does not comply
-with the OMG's IDL C++ mapping specification, beyond the use of the CORBA2
-module/namespace rather than the CORBA module/namespace. (CORBA2 is used
-so that this software can be linked with existing ORBs, which should be
-using the CORBA module/namespace already.)
-
-These ways are beyond the portability-derived use of the "class" construct
-(instead of the C++ namespace construct), and the use of CORBA2::Environment
-(rather than C++ exceptions), both of which are accomodated by the mapping:
-
- (1) This framework does not attempt to be complete.
-
- Completeness is not required to implement the Internet IOP,
- so time was not spent in providing a complete mapping.
-
- (2) In some cases the API provided is not the one in the mapping.
- For example CORBA2::Environment is not always passed in all
- operations. This was done to promote ease of implementation
- and coding.
-
- (3) Implementation details are generally exposed.
-
- This isn't so much a noncompliance issue (it's not specified
- that such details must be hidden) as an issue of allowing
- noncompliant applications. The effort required to actively
- prevent use of implementation details by higher level code
- would be nontrivial, and could slow down IIOP code, so no
- time was applied to hiding such details.
-
- (However, note that when the software was modified to use COM,
- standard C++ techniques were used to hide most such details.)
-
- (4) The C++ mapping needs completion in some areas.
-
- Notably, 94-9-14 does not satisfy requirements to provide
- support for for all data types in an "Any" or exception without
- needing any precompiled data type support routines. The
- TypeCode interpreter addresses this issue.
-
- Some additional operations were not adopted at the time 94-9-14
- was defined; both 94-9-32 and 94-11-7 added new ORB interfaces
- which are not found in the initial C++ mapping document.
-
-With respect to this fourth issue, descriptions of the API extensions
-used is provided later in this file. The additional CORBA operations
-are not described since their mapping is straightforward if it isn't given
-in those documents.
-
-
-ACCESS TO ALL DATA IN "ANY" AND EXCEPTIONS
-
-The "void *" value in an "Any", and any "CORBA2::Exception *" value, may
-always be passed to the TypeCode interpreter (see next). This allows access
-to all data held within an "Any" and an Exception. The "void *" value in an
-Any with an exception TypeCode is of type CORBA2::Exception *". Due to
-the way CORBA is specified, it is not possible to tell whether an "Any"
-holding an exception denotes a user or standard (system-defined) exception
-except by exhaustive comparison against exception IDs.
-
-Also, _all_ legal OMG-IDL data types may be held in an "Any", and may be
-manipulated using the TypeCode interpreter. This satisfies a language
-mapping requirement that DII (and DSI) be able to manipulate all OMG-IDL
-data types without requiring compiler generated support for them.
-
-
-TYPECODE INTERPRETER
-
-In any given C/C++ execution environment there is a binary standard for how
-data is represented. While that standard will differ between execution
-environments, there are a very limited number of ways in which those
-representations differ. Those differences are encapsulated only in the
-TypeCode interpreter, so that portable applications using the dynamic
-typing infrastructure in the ORB can completely ignore how it's done in
-any particular environment.
-
-The APIs in this software distribution have been suggested for adoption as
-part of the OMG specification suite. The two APIs are nonstatic member
-functions in the C++ mapping's TypeCode pseudo-object, and are augmented
-by a single new enumeration type.
-
- unsigned long size()
-
- This returns the size of an instance of the type that is
- described by the TypeCode.
-
- For example, when invoked on the typecode constant CORBA::_tc_Short,
- the value returned is sizeof(CORBA::Short); and when invoked on the
- typecode for a structure, it is the size of that structure (including
- any internal and tail padding needed). When invoked on a sequence
- typecode, it returns a value that does not include the size for
- any embedded buffer.
-
- enum traverse_status {TRAVERSE_STOP, TRAVERSE_CONTINUE };
-
- This is a data type used in the traverse() member function.
- It allows data type traversal to be terminated early for
- non-exceptional conditions, and eliminates the confusion
- that some similar APIs have created when they use a single
- boolean value (does TRUE mean to stop, or to continue?).
-
- traverse_status traverse (
- const void *value1;
- const void *value2
- traverse_status visit (
- TypeCode_ptr tc,
- const void *visit_value1,
- const void *visit_value2,
- void *visit_context
- ),
- void *context
- );
-
- (In the current language mapping, CORBA2::Environment references
- are passed as the final parameter to the 'traverse' and 'visit'
- routines for use when reporting exceptions.)
-
- The pointers "value1" and "value2" point to instances of the
- data type described by the typecode (or are null pointers).
-
- For each constituent of that data type (e.g. structure member)
- the visit() routine is called once. The constituent's type
- is described by "tc"; "visit_value1" points to the constituent
- of that type in "value1" (assuming the traverse routine was
- not passed a null pointer) and similarly for "visit_value2".
- The "visit_context" parameter is the context parameter passed
- to the traverse() routine, and can point to whatever data is
- needed by the visit() routine.
-
- Members are traversed in first-to-last order, as defined in the
- IDL specification for the data type. So for example, the
- visit routine for a structure could print out each element
- on a IO stream passed through the context parameter, perhaps in
- a neatly formatted form intended for human consumption.
-
- The visit() function may choose to recursively traverse() each
- element. So for example if "tc->kind()" in a visit routine
- returned CORBA::tk_struct, the contents of that struct would
- be ignored unless the visit routine invoked traverse() using
- the typecode and values passed to it.
-
- If the visit() routine returns TRAVERSE_CONTINUE, succeeding
- constituents of the data type are visited in turn; if it
- returns TRAVERSE_STOP, the traverse() routine returns that
- value to its caller. Of course, if a visit() routine calls
- traverse() itself, it may choose to ignore TRAVERSE_STOP.
-
-The traverse() routine is a powerful tool. It is used in the IIOP code
-itself in several ways; look at such use for tutorial details. You could
-implement data value comparison and "debug" data dumping as simple exercises
-in the use of these APIs.
-
-The "marshaling interpreter" (marshal.cc) uses it to encode and decode
-values according to the IIOP protocol specification. The "Any" code
-(any.cc) uses traverse() both to free embedded pointers, and to make "deep"
-copies of any data structure given its TypeCode.
-
-Only that "deep copy" visit routine uses "value2" as anything other than a
-null pointer; it allows efficient construction of "deep copies" without
-needing extra space for temporary values or coroutine stacks. (A general
-purpose two-value comparison could also use "value2".) Most uses of the API
-only manipulate a single data value at a time; no realistic need has yet
-been seen for manipulating more than two data values at once.
-
-With respect to the OMG C and C++ mappings, it is clear that this style API
-must be provided for the C mapping, but some people have noted that a
-"purer" object oriented style API could also be provided in C++. That style
-would use another internal visit routine, performing the requisite "switch"
-over the fixed number of TCKind values, and then make a virtual function
-call to an instance of a C++ class whose private state was the "context" and
-whose member functions matched the arms of the switch.
-
-
-MEMORY ALLOCATION
-
-In order to dynamically manipulate instances of arbitrary data types,
-applications need to be able to allocate and free memory. The OMG C++
-mapping only says how to do this for data types which have static C++
-interfaces defined, which is clearly inadequate for using constructed
-types with the DII/DSI/Any family of interfaces.
-
-This infrastructure requires the standard "malloc" and "free" primitives to
-be used, and cast to the appropriate type. Data allocated using malloc
-will normally be sized according to TypeCode::size(), and then be stored
-inside an Any. When the Any is deleted, if the ORB deallocates the memory
-it always uses "free" (including for any nested pointers, and correctly
-handling cases such as arrays and sequences).
-
-Note that to support implementations where C and C++ language bindings
-share the same ORB infrastructure, this solution is inadequate. This is
-because the C binding's CORBA_free() interface would have no way to
-determine the type of the data being freed. Instead, typed allocation
-APIs will need to be used even when using the dynamically typed CORBA
-subsystem ... a TypeCode::malloc() routine would suffice, if it returned
-memory that was internally tagged with that TypeCode. In such a case,
-the CORBA_free() routine could use that TypeCode to "deep free" data as
-required, and C++ "new" and "delete" operators would need to know about
-the internal tagging for all those data types. Such tagged allocation
-would need to be used for all data that was to be freed by the ORB.
-
-(Having the C mapping require use of "typed free" routines, instead of the
-CORBA_free interface, is sufficient to eliminate this problem.)
-
-
-PASSING EXCEPTIONS THROUGH THE DII
-
-The C++ mapping's Dynamic Invocation Interface (DII) has key omissions
-in that it doesn't say how to access to user-defined exception values,
-and implicitly requires ORBs either to pass "excess" data on the wire
-or else to consult an interface repository to deal with exceptions or
-(deprecated) "context" strings.
-
-This software changes the DII specification in two ways to support the
-requirement for DII users to be able to see user-defined exceptions, yet
-not to violate the OMG-IDL type model by reporting illegal exceptions:
-
- * The Object::_create_request() member function, through which DII
- users provide all the information included in an IDL operation's
- signature, has an additional parameter.
-
- That parameter is a sequence of exception typecodes, describing
- the user-defined exceptions that the operation can return. (The
- standard exceptions defined in CORBA may always be returned.)
- When any other exception is returned, the client's ORB reports that
- the object's type definition has been violated by the server's ORB.
-
- * The TypeCode interpreter (see above) may be used to examine all
- exception values reported through a CORBA::Environment. A new
- Exception::id() operation may be used to determine which typecode
- should be used.
-
-Note that a number of portability and specification problems have been
-identified in the current C++ mapping for DII, e.g. for details of memory
-management. Later versions of this code may attempt to closely comply
-with an improved mapping for DII, to the extent that the interpretation
-used here differs from that more unambiguous specification.
-
-Since there is no efficient way to distinguish typecodes for user defined
-exceptions from ones for system-defined ("standard") exceptions (comparing
-the exception ID against all the system defined ones is inefficient :-)
-a new enum type "ExceptionType" is defined. (An analogous type is already
-defined for the C language mapping.) This is used to report exceptions
-through DII and DSI.
diff --git a/TAO/docs/HISTORY b/TAO/docs/HISTORY
deleted file mode 100644
index d97a8e35b2e..00000000000
--- a/TAO/docs/HISTORY
+++ /dev/null
@@ -1,44 +0,0 @@
-@(#)HISTORY 1.1 95/09/13
-
-Mmmmmmmm DD, 1995 -- RELEASE 1.3:
----------------------------------
-Release 1.3 includes bugfixes, and support for the COM binary interface
-model, both on UNIX and on MS-Windows platforms. The source tree has
-been considerably restructured, with the goal of enabling addition of
-other components at both the binary and source levels.
-
-
-September 1, 1995 -- RELEASE 1.2:
----------------------------------
-Release 1.2 includes fixes for problems noted in the recent multivendor
-interoperability testing at Object World, and as reported by other users on
-the Internet. The most notable of these is that in some cases, when using
-multiple connections to IIOP servers and clients, the connection management
-code previously would get confused about which connection was which. (One
-consequence of fixing this is that an old test has been removed.) Also,
-there was no simple way to use Solaris 2.4 threads; see the Makefile for
-details. A few other minor features were added to facilitate use of this
-code for more than just protocol testing.
-
-
-June 28, 1995 -- RELEASE 1.1:
------------------------------
-Release 1.1 includes support for several new platforms. Particular thanks
-go to the team at APM, which contributed the bulk of the new "autoconf"
-support (substantially enhancing portability), support for DEC Alpha and
-HP 9000 platforms, runtime initialization of the size and alignment table
-used to drive the typecode interpreter, and more; see README.apm for details.
-
-Release 1.1 includes POSIX.1c threading support; on platforms which provide
-POSIX.1c threads, applications will be able to take advantage of them.
-
-Union and indirection support has been added to the TypeCode interpreter,
-and more typecode utility APIs have been implemented. Various bugfixes and
-cleanup have also been provided. Unfinished stubs for the COS Naming service
-are included; these rely on C++ exception support.
-
-
-March 21, 1995 -- RELEASE 1.0:
-------------------------------
-The original release ran on a set of UNIX platforms (including Solaris,
-SunOS, Linux, and NEXTSTEP) as well as with 16-bit and 32-bit MS-Windows.
diff --git a/TAO/docs/Options.html b/TAO/docs/Options.html
deleted file mode 100644
index 13f8ea2a7e2..00000000000
--- a/TAO/docs/Options.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<HTML>
-<HEAD>
- <META NAME="GENERATOR" CONTENT="Adobe PageMill 2.0 Mac">
- <TITLE>Options for TAO Components</TITLE>
-</HEAD>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<H1 ALIGN=CENTER>Options for TAO Components</H1>
-
-<H2>Overview</H2>
-<blockquote>
-<P>Certain components in TAO such as the ORB Core or object adapter
-can be tuned by users by providing value for options to them. These
-options are commonly specified as strings (<EM>e.g.</EM>, passed on
-the command-line) and are passed to component initialization methods
-for consumption.</P>
-
-<P><EM>Programmer's Note:</EM> the internal structure for these
-options is the traditional <CODE>argc</CODE>/<CODE>argv</CODE> vector
-of strings style popularized by C and Unix. By convention, an
-initialization method will consume, <EM>i.e.</EM>, remove from the
-vector, any options that it recognizes.</P> </blockquote>
-
-<H2>Types of Options</H2>
-
-<H2>Roadmap</H2>
-
-<blockquote>
-<P>The following components can be tuned via options:</P>
-
-<UL>
- <LI><A HREF="#ORB"><CODE>CORBA::ORB</CODE></A>
- <LI><A HREF="#POA"><CODE>CORBA::POA</CODE></A>
- <LI><A HREF="#ResourceFactory"><CODE>TAO_Resource_Factory</CODE></A>
- <LI><A HREF="#DefaultServer"><CODE>TAO_Default_Server_Strategy_Factory</CODE></A>
- <LI><A HREF="#DefaultClient" TARGET="_top"><CODE>TAO_Default_Client_Strategy_Factory</CODE></A>
-</UL>
-</blockquote>
-
-<H2>Options</H2>
-
-<blockquote>
-<H3><CODE>CORBA::ORB</CODE><A NAME="ORB"></A></H3>
-
-<blockquote>
-<P><TABLE BORDER="2" CELLSPACING="2" CELLPADDING=
-"0">
-<TR>
-<TH>Option</TH>
-<TH>Description</TH></TR>
-<!-- <TR NAME="ORBsvcconf"> -->
-<TD><CODE>-ORBsvcconf</CODE> <EM>config file name</EM></TD>
-<TD>Specifies the name of the file from which it will read dynamic service configuration
-directives <EM>ala</EM> ACE's Service Configurator.</TD></TR>
-<TD><CODE>-ORBsvcconfdirective</CODE> <EM>directivestring</EM></TD>
-<TD>Specifies a service configuration
-directive, which is passed to ACE's Service Configurator.</TD></TR>
-<TR>
-<TD><CODE>-ORBdaemon</CODE></TD>
-<TD>Specifies that the ORB should <I>daemonize</I> itself.</TD></TR>
-<TR>
-<TD><CODE>-ORBdebug</CODE></TD>
-<TD>Turns on the output of debugging messages within ACE's Service Configurator
-componentry.</TD></TR>
-<TR>
-<TD><CODE>-ORBhost</CODE> <EM>hostname</EM></TD>
-<TD><a name="-ORBhost"></a>Tells the Object Adapter to listen for requests on the interface associated
-with the host named <I><EM>hostname</EM></I>.</TD></TR>
-<TR>
-<TD><CODE>-ORBport</CODE> <EM>portspec</EM></TD>
-<TD>Tells the Object Adapter to listen for requests on the port specified by
-<I><EM>portspec</EM></I>, which can be a name as found in <TT>/etc/services</TT>
-or a number. The default is <TT>10013</TT>.</TD></TR>
-<TR>
-<TD><CODE>-ORBobjrefstyle</CODE> <EM>which</EM></TD>
-<TD>Specifies the user-visible style of object references. The range of values
-is <CODE>IOR</CODE>, which is the traditional nonsensical object reference,
-or <CODE>URL</CODE>, which looks more like a URL.</TD></TR>
-<TR>
-<TD><CODE>-ORBobjdemux</CODE> <EM>demux_method</EM></TD>
-<TD>Specifies the method used to demultiplex to an object. The range of values
-is <CODE>dynamic</CODE>, <CODE>linear</CODE>, <CODE>active</CODE>, or <CODE>user</CODE>.</TD></TR>
-<TR>
-<TD><CODE>-ORBtablesize</CODE> <EM>object table size</EM></TD>
-<TD>Specifies the size of the object table as a positive, non-zero integer.
-If not specified, the default is <TT>64</TT>.</TD></TR>
-<TR>
-<TD><CODE>-ORBrcvsock</CODE> <EM>receive buffer size</EM></TD>
-<TD><A NAME="-ORBrcvsock"></a>Specify the size of the socket receive buffer as a positive, non-zero integer.
-If not specified, the system-dependent default is used.</TD></TR>
-<TR>
-<TD><CODE>-ORBsndsock</CODE> <EM>send buffer size</EM></TD>
-<TD><A NAME="-ORBsndsock"></a>Specify the size of the socket send buffer as a positive, non-zero integer.
-If not specified, the system-dependent default is used.</TD></TR>
-<TR>
-<TD><CODE>-ORBnameserviceport</CODE> <EM>portspec</EM></TD>
-<TD>Specifies which port the Naming Service is listening on.</TD></TR>
-<TR>
-<TD><CODE>-ORBnameserviceior</CODE> <EM>ior</EM></TD>
-<TD>Specifies the IOR for the Naming Service.</TD></TR>
-<TR>
-<TD><CODE>-ORBcollocation</CODE> <EM>yes/no</EM></TD>
-<TD>Specifies the use of collocation object optimization. Default is yes.</TD></TR>
-<TR>
-<TD><CODE>-ORBpreconnect</CODE> <EM>host</EM><STRONG>:</STRONG><EM>port</em>[<STRONG>,</STRONG><EM>host</EM><STRONG>:</STRONG><EM>port</em>...]</TD>
-<TD><A name="-ORBpreconnect"></a>Pre-establishes a blocking connection to each listed
-<em>host</em>:<em>port</em> combination. If a connection cannot
-be established, a warning is announced and it continues with the
-next listed. Listing the same combination multiple times will
-properly establish multiple connections to that endpoint.</TD></TR>
-<TR>
-<TD><CODE>-ORBCDRtradeoff</CODE> <EM>maxsize</EM></TD>
-<TD><A name="-ORBCDRtradeoff"></a>Control the strategy to tradeoff
-between copy vs no copy marshalling of octet sequences.
-If an octet sequence is smaller than <EM>maxsize</EM> and the current
-message block contains enough space for it the octet sequence is
-copied instead of appended to the CDR stream.</TD></TR>
-</TABLE>
-</P>
-</blockquote>
-
-<H3><CODE>CORBA::POA</CODE><A NAME="POA"></A></H3>
-
-<blockquote>
-<P><TABLE BORDER="2" CELLSPACING="2" CELLPADDING="0">
-<TR>
-<TH>Option</TH>
-<TH>Description</TH></TR>
-<TR>
-<TD><CODE>-OAid</CODE> <EM>OA Identifier</EM></TD>
-<TD>Associates <I><EM>OA Identifier</EM></I> with the Object Adapter.</TD></TR>
-</TABLE>
-</P>
-</blockquote>
-
-<H3><CODE>TAO_Resource_Factory</CODE><A NAME="ResourceFactory"></A></H3>
-
-<blockquote>
-<P><TABLE BORDER="2" CELLSPACING="2" CELLPADDING="0">
-<TR>
-<TH>Option</TH>
-<TH>Description</TH></TR>
-<TR>
-<TD><CODE>-ORBresources</CODE> <EM>which</EM></TD>
-<TD>Specify whether each thread uses a global
-(<em>which</em> = <code>global</code>) or a thread-specific
-(<em>which</em> = <code>tss</code>) instance for the resources it returns.</TD></TR>
-<TR>
-<TD><CODE>-ORBpoa</CODE> <EM>which</EM></TD>
-<TD><a name="-ORBpoa"></a>Specify whether each thread uses a global
-(<em>which</em> = <code>global</code>) or a thread-specific
-(<em>which</em> = <code>tss</code>) instance for the Root POA.</TD></TR>
-<TR>
-<TD><CODE>-ORBcoltable</CODE> <EM>which</EM></TD>
-<TD><a name="-ORBcoltable"></a>Specify whether each ORB uses a global
-(<em>which</em> = <code>global</code>) or a per-ORB
-(<em>which</em> = <code>orb</code>) collocation table.</TD></TR>
-</TABLE>
-</P>
-</blockquote>
-
-<H3><CODE>TAO_Default_Server_Strategy_Factory</CODE><A NAME="DefaultServer"></A></H3>
-
-<blockquote>
-<P><TABLE BORDER="2" CELLSPACING="2" CELLPADDING="0" >
-<TR>
-<TH>Option</TH>
-<TH>Description</TH></TR>
-<TR>
-<TD><CODE>-ORBconcurrency</CODE> <EM>which</EM></TD>
-<TD>Specify which concurrency strategy to use. Range of values is <code>reactive</code>
-for a purely Reactor-driven concurrency strategy or
-<code>thread-per-connection</code> for creating a new thread to service each connection.</TD></TR>
-<TR>
-<TD><CODE>-ORBtablesize</CODE> <EM>object table size</EM></TD>
-<TD>Specify the size of the object table. If not specified, the default value
-is 64.</TD></TR>
-<TR>
-<TD><CODE>-ORBdemuxstrategy</CODE> <EM>demultiplexing strategy</EM></TD>
-<TD>Specify the demultiplexing lookup strategy. The <EM>demultiplexing strategy</EM>
-can be one of <CODE>dynamic</CODE>, <CODE>linear</CODE>, <CODE>active</CODE>,
-or <CODE>user</CODE>.</TD></TR>
-<TR>
-<TD><CODE>-ORBthreadflags</CODE> <EM>thread flags</EM></TD>
-<TD>Specify the flags used for thread creation. Flags can be any logical-OR
-combination of <CODE>THR_DETACHED</CODE>, <CODE>THR_BOUND</CODE>, <CODE>THR_NEW_LWP</CODE>,
-<CODE>THE_SUSPENDED</CODE>.</TD></TR>
-<TR>
-<TD><CODE>-ORBpoalock</CODE> <EM>lock type</EM></TD>
-<TD><a name="-ORBpoalock"></a>Specify the type of lock to be used for
-POA accesses. Possible values for <em>lock type</em> are
-<code>thread</code>, which specifies that an inter-thread mutex is
-used to guarantee exclusive acccess, and <code>null</code>, which
-specifies that no locking be performed. The default is
-<code>null</code>.</TD></TR>
-<TR>
-<TD><CODE>-ORBcoltbllock</CODE> <EM>lock type</EM></TD>
-<TD><a name="-ORBtoltbllock"></a>Specify the type of lock to be used for
-the global collocation table. Possible values for <em>lock type</em> are
-<code>thread</code>, which specifies that an inter-thread mutex is
-used to guarantee exclusive acccess, and <code>null</code>, which
-specifies that no locking be performed. The default is
-<code>thread</code>.</TD></TR>
-<TR>
-<TD><CODE>-ORBpoamgrlock</CODE> <EM>lock type</EM></TD>
-<TD><a name="-ORBpoamgrlock"></a>Specify the type of lock to be used for
-POA Manager accesses. Possible values for <em>lock type</em> are
-<code>thread</code>, which specifies that an inter-thread mutex is
-used to guarantee exclusive acccess, and <code>null</code>, which
-specifies that no locking be performed. The default is
-<code>null</code>.</TD></TR>
-</TABLE>
-</P>
-</blockquote>
-
-<H3><CODE>TAO_Default_Client_Strategy_Factory</CODE><A NAME="DefaultClient"></A></H3>
-
-<BLOCKQUOTE>
- <P>There are currently no options for the <CODE>TAO_Default_Client_Strategy_Factory</CODE>.</P>
-</BLOCKQUOTE>
-</blockquote>
-
-<P><HR><P>
-Back to the TAO <A HREF="components.html">components documentation</A>.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</HTML>
diff --git a/TAO/docs/REFERENCES b/TAO/docs/REFERENCES
deleted file mode 100644
index a44ef31c16e..00000000000
--- a/TAO/docs/REFERENCES
+++ /dev/null
@@ -1,91 +0,0 @@
-@(#)REFERENCES 1.2 95/11/08
-
-REFERENCES
-==========
-Most of the relevant references here are to OMG documents, however there
-are a few external references of some note:
-
- * http://www.uci.agh.edu.pl/research/cs/TOCOOS/COPERNICUS.html
-
-
-OMG REFERENCES
---------------
-As of this writing, OMG is in the process of publishing new versions of the
-base CORBA specifications, merging specifications as needed into single
-documents and splitting out the C mapping from the CORBA/CORE specification.
-
-This software has made every effort to track both the base documents and the
-agreed corrections and revisions. Since those documents have not yet been
-published, there will inevitably be areas in which it does not reflect the
-versions yet to be published. See the "DIFFERENCES" file for information
-about where this software differs from these current base documents:
-
-* CORBA 2.0/Interoperability: Universal Networked Objects (UNO), OMG
- TC Document 95-3-10. This includes the mandatory IIOP and bridging
- support, as well as the optional DCE-CIOP protocol.
-
-* CORBA 1.2 specification, OMG TC Document 93-12-43. This is the
- base document on which the CORBA 2.0 CORE specifications build.
-
-* Universal Networked Objects (UNO), OMG TC Document 94-9-32. Until
- the CORBA 2.0/CORE document is published, replacing the CORBA 1.2,
- initialisation, and IFR specifications, you must use this earlier
- version of UNO to see (only!) the specification for DSI and several
- other CORBA CORE extensions (for bridging) adopted by the OMG.
- [ NOTE: use the IIOP specification in 95-3-10, not the one here;
- 95-3-10 has changes required by the IFR specification, 95-11-7. ]
-
-* Initialisation, OMG TC Document 94-10-24. This defines the portable
- APIs for initialising ORBs.
-
-* Interface Repository, OMG TC Document 94-11-7. This updates the
- CORBA specifications above and is referenced by the UNO document.
-
-* IDL C++ Language Mapping Specification, OMG TC Document 94-9-14.
- This defines the mapping of CORBA 1.2, including OMG-IDL, onto C++.
-
-There are a few inconsistencies between these documents, which are in the
-process of being resolved. The inconsistencies arose because different
-groups worked on different parts of the system, at different times and
-with some different goals. Contact the various revision committees to
-find out how these differences are being resolved:
-
- - interop@omg.org ... the interop revision task force (RTF)
- - cxx_revision@omg.org ... the C++ RTF
- - orb_revision@omg.org ... the general ORB RTF
-
-Also, note that these ORB specifications correspond to only the lowest levels
-of OMG's Object Management Architecture. In particular, the "Object Services"
-define object interfaces for naming, events, persistence, relationships,
-lifecycle, externalization, transactions, and concurrency control. Also,
-"Common Facilities" objects will address such things as compound document
-architecture. If you intend to develop software based on ORBs, these
-specifications are likely to be of interest. The OMA is available in
-technical bookstores:
-
- Richard Soley (ed.), Object Management Architecture Guide,
- Second Edition, John Wiley & Sons, New York, 1992.
-
-
-ACQUIRING REFERENCE DOCUMENTS
------------------------------
-To acquire those reference documents, use the OMG document server through
-Internet email. Send a message to "server@omg.org", with content lines
-such as
-
- send help
-
-to get directions about how to use the server, or
-
- send docs/95-3-10.ps
-
-to get a PostScript copy of any particular document. (OMG specifications
-are available only in PostScript.)
-
-The OMG document server is maintained for use by OMG members, but is also
-available for general Internet access. Only members will be supported in
-the case of problems.
-
-To find out more about the OMG, send email to "omg@omg.org", or look
-at the Web page at "http://www.omg.org".
-
diff --git a/TAO/docs/compiler.html b/TAO/docs/compiler.html
deleted file mode 100644
index 61ae35b0fa2..00000000000
--- a/TAO/docs/compiler.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<html>
- <!-- $Id$ -->
- <head>
- <title>TAO IDL compiler User's Guide</title>
- </head>
-
-<BODY text = "#000000"
-link="#0000ff"
-vlink="#cc0000"
-bgcolor="#ffffff">
-
- <body>
-<HR><P>
- <h3>TAO IDL compiler User's Guide</h3>
- <H2>Scope</H2>
-
- <P>
- This document describes the options and features of TAO IDL
- compiler,
- it is not a reference manual or tutorial on IDL.
- </P>
-
- <H2>Generated Files</H2>
-
- <P>
- The IDL compiler generates 6 files from each <CODE>.idl</CODE>
- file,
- the file names are obtained by taking the IDL basename and
- appending
- <CODE>C.h</CODE>,
- <CODE>C.i</CODE>,
- <CODE>C.cpp</CODE>,
- <CODE>S.h</CODE>,
- <CODE>S.i</CODE>
- and <CODE>S.cpp</CODE>;
- the client stubs are declared in the <CODE>C.h</CODE> file,
- the skeletons in the <CODE>S.h</CODE> file.
- </P>
-
- <P>
- Both clients and servers should link against the object files
- for the stubs and skeletons,
- this is needed to transparently support collocated objects.
- </P>
-
- <H2>Options</H2>
-
- <P>
- The IDL compiler invokes your <CODE>C</CODE>
- (or <CODE>C++</CODE>) preprocessor to resolve included IDL files,
- it receives the common options for preprocessors
- (such as <CODE>-D</CODE> or <CODE>-I</CODE>);
- but also receives other options that are specific to it.
- </P>
-
- <P>
- <TABLE BORDER="2"
- CELLSPACING="2"
- CELLPADDING= "0">
- <TR>
- <TH>Option</TH><TH>Description</TH></TR>
- <TR NAME="V">
- <TD><CODE>-V</CODE></TD>
- <TD>The compiler printouts its version and exits</TD></TR>
- <TR NAME="Wb">
- <TD><CODE>-Wb,</CODE><EM>option_list</EM</TD>
- <TD>Pass options to the backend.</TD></TR>
- <TR NAME="export_macro">
- <TD></TD>
- <TD><CODE>export_macro=</CODE><EM>macro_name</EM></TD>
- <TD>
- The compiler will emit
- <EM>macro_name</EM>
- right after each <CODE>class</CODE> or <CODE>extern</CODE>
- keyword,
- this is needed for Windows/NT that requires special
- directives to export symbols from DLLs,
- usually the definition is just a space on unix platforms.
- </TD>
- </TR>
- <TR NAME="export_include">
- <TD></TD>
- <TD><CODE>export_include=</CODE><EM>include_path</EM></TD>
- <TD>
- The compiler will generate code to include
- <EM>include_path</EM> at the top of the client header,
- this is usually a good place to define the export macro.
- </TD>
- </TR>
- <TR NAME="E">
- <TD><CODE>-E</CODE></TD>
- <TD>Only invoke the preprocessor</TD></TR>
- <TR NAME="Wp">
- <TD><CODE>-Wp,</CODE><EM>option_list</EM</TD>
- <TD>Pass options to the preprocessor.</TD>
- <TR NAME="D">
- <TD><CODE>-D</CODE><EM>macro_definition</EM></TD>
- <TD>It is passed to the preprocessor</TD></TR>
- <TR NAME="U">
- <TD><CODE>-U</CODE><EM>macro_name</EM></TD>
- <TD>It is passed to the preprocessor</TD></TR>
- <TR NAME="I">
- <TD><CODE>-I</CODE><EM>include_path</EM></TD>
- <TD>It is passed to the preprocessor</TD></TR>
- <TR NAME="A">
- <TD><CODE>-A</CODE><EM>assertion</EM></TD>
- <TD>It is passed to the preprocessor</TD></TR>
- <TR NAME="Y">
- <TD><CODE>-Y</CODE></TD>
- <TD>It is passed to the preprocessor</TD></TR>
- </TABLE>
- </P>
-
- <hr><P>
- <address><a href="mailto:coryan@cs.wustl.edu">Carlos O'Ryan</a></address>
- </body>
-</html>
diff --git a/TAO/docs/components.html b/TAO/docs/components.html
deleted file mode 100644
index 9e782b2709a..00000000000
--- a/TAO/docs/components.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<HTML>
- <HEAD>
- <META NAME="GENERATOR" CONTENT="Adobe PageMill 2.0 Mac">
- <TITLE>TAO Component Documentation</TITLE>
- </HEAD>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<HR>
- <H3 ALIGN=CENTER>Component Documentation</H3>
-
- <P>The following documentation is available on certain TAO components:</P>
-
- <UL>
- <LI><A HREF="Options.html">Options</A> &shy; describes the
- options available to customize various components within TAO.
- These customizations can be done by an end-user and do not
- require C++ programming.<P>
-
- <li><a href="configurations.html">Configuration</a> &shy;
- describes how to mix and match component <a
- href="Options.html">options</a> to customize
- how TAO processes requests. For example, this
- document explains how to configure TAO to process
- all request in one thread, each request in a separate thread, or each connection
- in a separate thread, <em>etc.</em><P>
-
- </UL>
- </BODY>
-
-<P><HR><P>
-Back to the TAO <A HREF="index.html">documentation index</A>.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-
-</HTML>
diff --git a/TAO/docs/configurations.html b/TAO/docs/configurations.html
deleted file mode 100644
index fa1b2e68e2e..00000000000
--- a/TAO/docs/configurations.html
+++ /dev/null
@@ -1,301 +0,0 @@
-<HTML>
- <HEAD>
- <META NAME="GENERATOR" CONTENT="Adobe PageMill 2.0 Mac">
- <TITLE>Configuring TAO's Components</TITLE>
- </HEAD>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
- <H1 ALIGN=CENTER>Configuring TAO's Components</H1>
-
- <H2>Overview</H2>
- <blockquote>
- <p>As described in the <a href="Options.html">options</a>
- documentation, various components in TAO can be "tuned" by specifying
- options for those components. Here we present some examples of how to
- combine these options to achieve certain effects on ORB operations.</P>
- </blockquote>
-
- <H2>Where Are Options Specified?</H2>
- <blockquote>
- <p>TAO configures itself using the ACE Service Configurator
- framework. Thus, options are specified in the familiar
- <code>svc.conf</code> file (if you want to use a different file
- name, use the <a
- href="Options.html#svcfonf"><code>-ORBsvcconf</code></a>
- option</p>
- </blockquote>
-
-
- <H2>Roadmap</H2>
-
- <blockquote>
- <P>Details for the following configurations are provided.</P>
-
- <UL>
- <LI><A HREF="#reactive">Single-threaded, reactive model.</A>
- <LI><A HREF="#tpc">Multiple threads, thread-per-connection model.</A>
- <LI><A HREF="#multiorb">Multiple threads, orb-per-thread model.</A>
- <LI><A HREF="#multiorb-tpc">Multiple threads, orb-per-thread,
- thread-per-connection model.</A>
- <li><a href="#tpool">Multiple threads, thread-pool model.</a>
- (Not yet implemented.)
- <li><a href="#multiorb-tpool">Multiple threads,
- orb-per-thread, thread-pool model.</a> (Not yet implemented.)
- </UL>
-
- <p>Each configuration has the following information:</p>
-
- <p>
- <table border=2 width="90%" cellspacing="2" cellpadding="0">
- <tr>
- <tr>
- <th>Typical Use</th>
- <td>A brief description of the scenario and its typical use.</td>
- </tr>
-
- <tr>
- <th>Number Threads</th>
- <td>The number of threads used by ORB-related activities.</td>
- </tr>
-
- <tr>
- <th>Thread Creator</th>
- <td>Identifies the creator of the threads discussed above.</td>
- </tr>
-
- <tr>
- <th>Resource Location</th>
- <td>Where information on various resources is stored.</td>
- </tr>
-
- <tr>
- <th>Thread task</th>
- <td>Describes what task is undertaken for each thread.</td>
- </tr>
- <tr>
- <th>Options</th>
- <td>Specifies the options for each service in order to utilize this configuration.</td>
- </tr>
- </table>
- </p>
-
- </blockquote>
-
- <H2>Configurations</H2>
-
- <blockquote>
-
- <H3>Single-threaded, reactive model.<A NAME="reactive"></A></H3>
-
- <p>
- <table border=2 width="90%" cellspacing="2" cellpadding="0">
- <th>Typical Use</th>
- <td>
- This is definitely the most common use of an ORB in a
- server situation, where there is a single thread handling
- requests from multiple clients.
- </td>
- </tr>
-
- <tr>
- <th>Number Threads</th>
- <td>1</td>
- </tr>
-
- <tr>
- <th>Thread Creator</th>
- <td>Operating System or whoever creates the main thread in a process.</td>
- </tr>
-
- <tr>
- <th>Resource Location</th>
- <td>Resources are stored process-wide.</td>
- </tr>
-
- <tr>
- <th>Thread task</th>
- <td>The single thread processes all connection requests and CORBA messages.</td>
- </tr>
-
- <tr>
- <th>Options</th>
- <td>
- <code>TAO_Resource_Manager</code>: <code>-ORBresources global</code><br>
- <code>TAO_Server_Strategy_Factory</code>: <code>-ORBconcurrency reactive</code>
- </td>
- </tr>
- </table>
- </p>
-
- <H3>Multiple threads, thread-per-connection model.<A NAME="tpc"></A></H3>
-
- <p>
- <table border=2 width="90%" cellspacing="2" cellpadding="0">
- <tr>
- <th>Typical Use</th>
- <td>A brief description of the scenario and its typical use.</td>
- </tr>
-
- <tr>
- <th>Number Threads</th>
- <td>The number of threads used by ORB-related activities.</td>
- </tr>
-
- <tr>
- <th>Thread Creator</th>
- <td>Identifies the creator of the threads discussed above.</td>
- </tr>
-
- <tr>
- <th>Resource Location</th>
- <td>Where information on various resources is stored.</td>
- </tr>
-
- <tr>
- <th>Thread task</th>
- <td>Describes what task is undertaken for each thread.</td>
- </tr>
- </table>
- </p>
-
- <H3>Multiple threads, orb-per-thread model.<A NAME="multiorb"></A></H3>
-
- <p>
- <table border=2 width="90%" cellspacing="2" cellpadding="0">
- <tr>
- <th>Typical Use</th>
- <td>A brief description of the scenario and its typical use.</td>
- </tr>
-
- <tr>
- <th>Number Threads</th>
- <td>The number of threads used by ORB-related activities.</td>
- </tr>
-
- <tr>
- <th>Thread Creator</th>
- <td>Identifies the creator of the threads discussed above.</td>
- </tr>
-
- <tr>
- <th>Resource Location</th>
- <td>Where information on various resources is stored.</td>
- </tr>
-
- <tr>
- <th>Thread task</th>
- <td>Describes what task is undertaken for each thread.</td>
- </tr>
- </table>
- </p>
-
- <H3>Multiple threads, orb-per-thread, thread-per-connection
- model.<A NAME="multiorb-tpc"></A></H3>
-
- <p>
- <table border=2 width="90%" cellspacing="2" cellpadding="0">
- <tr>
- <th>Typical Use</th>
- <td>A brief description of the scenario and its typical use.</td>
- </tr>
-
- <tr>
- <th>Number Threads</th>
- <td>The number of threads used by ORB-related activities.</td>
- </tr>
-
- <tr>
- <th>Thread Creator</th>
- <td>Identifies the creator of the threads discussed above.</td>
- </tr>
-
- <tr>
- <th>Resource Location</th>
- <td>Where information on various resources is stored.</td>
- </tr>
-
- <tr>
- <th>Thread task</th>
- <td>Describes what task is undertaken for each thread.</td>
- </tr>
- </table>
- </p>
-
- <H3><A NAME="tpool">Multiple threads, thread-pool model.</A>
- (Not yet implemented.)</H3>
-
- <p>
- <table border=2 width="90%" cellspacing="2" cellpadding="0">
- <tr>
- <th>Typical Use</th>
- <td>A brief description of the scenario and its typical use.</td>
- </tr>
-
- <tr>
- <th>Number Threads</th>
- <td>The number of threads used by ORB-related activities.</td>
- </tr>
-
- <tr>
- <th>Thread Creator</th>
- <td>Identifies the creator of the threads discussed above.</td>
- </tr>
-
- <tr>
- <th>Resource Location</th>
- <td>Where information on various resources is stored.</td>
- </tr>
-
- <tr>
- <th>Thread task</th>
- <td>Describes what task is undertaken for each thread.</td>
- </tr>
- </table>
- </p>
-
- <H3>Multiple threads, orb-per-thread, thread-pool model.<A
- NAME="multiorb-tpool"></A> (Not yet implemented.)</H3>
-
- <p>
- <table border=2 width="90%" cellspacing="2" cellpadding="0">
- <tr>
- <th>Typical Use</th>
- <td>A brief description of the scenario and its typical use.</td>
- </tr>
-
- <tr>
- <th>Number Threads</th>
- <td>The number of threads used by ORB-related activities.</td>
- </tr>
-
- <tr>
- <th>Thread Creator</th>
- <td>Identifies the creator of the threads discussed above.</td>
- </tr>
-
- <tr>
- <th>Resource Location</th>
- <td>Where information on various resources is stored.</td>
- </tr>
-
- <tr>
- <th>Thread task</th>
- <td>Describes what task is undertaken for each thread.</td>
- </tr>
- </table>
- </p>
-
- </blockquote>
-
-</blockquote>
-
-<P><HR><P>
-Back to the TAO <A HREF="components.html">components documentation</A>.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/TAO/docs/forwarding.html b/TAO/docs/forwarding.html
deleted file mode 100644
index d94c67254d5..00000000000
--- a/TAO/docs/forwarding.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<html>
- <!-- $Id$ -->
- <head>
- <title>Implementation of location forwarding</title>
- </head>
-
- <BODY text = "#000000"
- link="#0000ff"
- vlink="#cc0000"
- bgcolor="#ffffff">
-
- <body>
- <HR>
- <h1>Location forwarding</h1>
- <HR>
- <h2>Context</h2>
- The motivation to support location forwarding for objects is
- to allow objects to move or forward certain requests to other objects.
- Moving of objects is very important for the Common Object Services
- LifeCycle Service. An objet complying to the LifeCycleObject interface,
- defined by the LifeCycle Service should support the move operation. The move
- operation allows the client to keep its object reference to the object,
- but the object is going to be relocated on the same or a different server.
- Making location forwarding transparent to the client is the most important
- issue.
-
- <h2>Communication between server and client</h2>
- GIOP defines a message named "LOCATION_FORWARD", which should be used to
- inform the client stub, that the object has been moved. The message body
- has to contain an object reference to the new location of the forwarded
- object.
-
-
- <h2>Server side implementation</h2>
- Two approaches are possible, one is that the POA replaces the object with
- a forwarding servant, which knows the new location. This servant will then
- raise an exception each it time it is called, as supposed to be the
- actual object. The exception will be a user exception and will be caught
- in the marshalling code of the server request "IIOP_ServerRequest". The involved
- methods are "set_exception", "marshall" and "init_reply". "set_exception" will
- check the user exceptions for the special one, only raised by the forwarding
- servant and will extract the new location. "init_reply" will then create
- the proper GIOP Reply message with the message type set to LOCATION_FORWARD.
- The message is encoded into a CDR (Common Data Representation) stream.
-
- The second approach is to use a POA servant locator for the child POA, where
- the object resides on. The servant locator will be used each time the object
- will be accessed. Basically two methods, named "preinvoke" and "postinvoke"
- are called each time before and after the actual upcall to the object.
- Forwarding using the servant locator works in the following way. The object
- tells its servant locator that it has moved and supports the servant locator
- with the new object reference. The object locator then raises a special system
- exception "forward_request" in "preinvoke" each time the object is called from now on.
- The exception is then caught by the lowest possible level, when the
- system exceptions are going to be marshalled. Which is in "TAO_Server_Connection_Handler",
- the involved methods are "handle_input" and "send_error". "handle_input"
- checks for errors (involving exceptions) and calls "send_error" to create
- the proper GIOP Reply containing either the system exception or
- the location forwarding in case the system exception was the
- "forward_request" exception.
-
- <h2>Client side implementation</h2>
- The client has to expect the location forwarding GIOP message and should
- respond to it in setting the IIOP_Profile of its IIOP_Object right.
- The IIOP_Object is a low level object, to which CORBA::Object has a
- pointer to. The reply type is determined by "TAO_GIOP_Invocation::invoke"
- which then calls "TAO_GIOP_Invocation::location_forward". "location_forward"
- sets the changes the IIOP_Profile of the object. The call is then
- reissued by "TAO_IIOP_Object::do_static_call".
-
-
- <h2>Conclusion</h2>
- Changing the IIOP_Profile is transparent to the client. So the
- client gets no idea, that the object now resides somewhere else.
-
- <HR>
- For more details and questions,
- <p>
-
- <address><a href="mailto:mk1@cs.wustl.edu">Michael Kircher</a></address>
- <p>
- <address><a href="mailto:irfan1@cs.wustl.edu">Irfan Pyarali</a></address>
- </body>
-</html>
-
diff --git a/TAO/docs/index.html b/TAO/docs/index.html
deleted file mode 100644
index 5c8de5e7908..00000000000
--- a/TAO/docs/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<HTML>
-<HEAD>
- <META NAME="GENERATOR" CONTENT="Adobe PageMill 2.0 Mac">
- <TITLE>TAO Documentation</TITLE>
-</HEAD>
-
-<BODY text = "#000000"
-link="#0000ff"
-vlink="#cc0000"
-bgcolor="#ffffff">
-
-<HR>
-<H3 ALIGN=CENTER>TAO Documentation</H3>
-
-<CENTER>
-<TABLE cellpadding=10 cellspacing=8 border=10>
-
-<TD><FONT SIZE=+1>
-<DL>
- <DT><A HREF="http://www.cs.wustl.edu/~schmidt/corba-research-realtime.html">Technical Overview</A> <P>
- <DT><A HREF="http://www.cs.wustl.edu/~schmidt/events_tutorial.html">Event Service Tutorial</A><P>
- <DT><A HREF="http://www.cs.wustl.edu/~schmidt/TAO/index.html">TAO Viewgraphs</A><P>
-
-</DL>
-<TD><FONT SIZE=+1>
-<DL>
- <DT><A HREF="components.html" TARGET="_top">Component Configuration</A><P>
- <DT><A HREF="compiler.html" TARGET="_top">TAO IDL Compiler Options</A><P>
- <DT><A HREF="orbsvcs.html" TARGET="_top">ORB services directories</A><P>
-
-</DL>
-</FONT></TD>
-
-<TD><FONT SIZE=+1>
-<DL>
- <DT><A HREF="releasenotes/index.html">Release Notes</A><P>
- <DT><A HREF="poa_migration.html" TARGET="_top">POA Migration Notes</A><P>
- <DT><A HREF="reactivator.html" TARGET="_top">Reactivator service</A><P>
-</DL>
-</FONT></TD>
-</TABLE>
-</CENTER>
-
-<P><HR><P>
-Back to the <A HREF="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A> home page.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/TAO/docs/orbsvcs.html b/TAO/docs/orbsvcs.html
deleted file mode 100644
index f16fcafd7b5..00000000000
--- a/TAO/docs/orbsvcs.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<html>
- <!-- $Id$ -->
- <head>
- <title>TAO's CORBA Object Services Documentation</title>
- </head>
-
-<BODY text = "#000000"
-link="#0000ff"
-vlink="#cc0000"
-bgcolor="#ffffff">
-
- <body>
-<HR>
- <h3>TAO's CORBA Object Services Directory Hierarchy</h3>
-
- <P>The file and directory organization for TAO services can be
- confusing at first glance (and even on subsequent ones to be
- honest),
- so we felt like some rationale and explanation of the directory
- hierarchy was needed.</P>
-
- <P>For general sanity all TAO services files are located under
- <CODE>$TAO_ROOT/orbsvcs</CODE>.</P>
-
- <P>It is expected that clients use more
- than one service at the same time
- (in fact some of the services already do, for instance the
- <B>Event Service</B> uses the <B>Naming Service</B> and the
- <B>Scheduling Service</B>).
- For this reason all the services stubs are grouped in one
- library.
- This library is located in
- <CODE>$TAO_ROOT/orbsvcs/orbsvcs</CODE>.
- Usually the include path is only <CODE>$TAO_ROOT/orbsvcs</CODE>,
- so files are included like this:</P>
-
-<P><CODE>
-#include "orbsvcs/CosNamingC.h"
-</CODE></P>
-
- <P>To simplify the IDL generation the skeletons are also on the
- library,
- this is not a problem for client programs and most services need
- to link the library anyway
- (since they use other services.)
- Further,
- the current support for collocation requires that clients link
- the skeleton files anyway.
- </P>
-
- <P>In the future we intend to use ACE Service Configurator to give
- the users control over collocation of the services implementation.
- As a first cut all the service implementations are included in the
- orbsvcs library <CODE>$TAO_ROOT/orbsvcs/orbsvcs</CODE>.
- Since there are serveral services and each one is implemented
- using several files we have given a different directory to each
- service.
- This structure could also simplify a future split into several
- libraries (if it proves necessary).
- </P>
-
- <P>The complete list of directories is:</P>
-
- <P>
- <TABLE BORDER="2"
- CELLSPACING="2"
- CELLPADDING= "0">
- <TR>
- <TH>Service</TH>
- <TH>Implementation Sub-directory</TH></TR>
- <TR>
- <TD>A/V Streams Service</TD><TD><CODE>orbsvcs/AV</CODE></TD></TR>
- <TR>
- <TD>Concurrency Service</TD><TD><CODE>orbsvcs/Concurrency</CODE></TD></TR>
- <TR>
- <TD>Event Service</TD><TD><CODE>orbsvcs/Event</CODE></TD></TR>
- <TR>
- <TD>LifeCycle Service</TD><TD><CODE>orbsvcs/LifeCycle</CODE></TD></TR>
- <TR>
- <TD>Logging Service</TD><TD><CODE>orbsvcs/Log</CODE></TD></TR>
- <TR>
- <TD>Naming Service</TD><TD><CODE>orbsvcs/Naming</CODE></TD></TR>
- <TR>
- <TD>Property Service</TD><TD><CODE>orbsvcs/Property</CODE></TD></TR>
- <TR>
- <TD>Scheduling Service</TD><TD><CODE>orbsvcs/Sched</CODE></TD></TR>
- <TR>
- <TD>Trading Service</TD><TD><CODE>orbsvcs/Trader</CODE></TD></TR>
- </TABLE>
- </P>
-
- <P>Note that in the current version of TAO we still have standalone
- binaries for some of the services. However, some applications
- may want to control what process implements a particular service.
- Therefore, it has proved useful for
- debugging purposes to keep the most used services separated.
- The binaries in question are located in
- <CODE>$TAO_ROOT/orbsvcs</CODE>, and the list includes:
- </P>
-
- <UL>
- <LI>Concurrenty_Service</LI>
- <LI>Dump_Schedule</LI>
- <LI>LifeCycle_Service</LI>
- <LI>Event_Service</LI>
- <LI>Naming_Service</LI>
- <LI>Scheduling_Service</LI>
- <LI>Trading_Service</LI>
- </UL>
-
- <P>In the future we plan to use a single binary and ACE Service
- Configurator and keep a single binary.</P>
-
- <P>Finally the tests and example programs are located in
- <CODE>$TAO_ROOT/orbsvcs/tests</CODE>;
- once more each may involves more than a single binary,
- so each one is kept in its own directory;
- the following list describes the contents of each one:
- </P>
-
- <P>
- <TABLE BORDER="2"
- CELLSPACING="2"
- CELLPADDING= "0">
- <TR>
- <TH>Test directory</TH>
- <TH>Purpose</TH></TR>
- <TR>
- <TD><CODE>AVStreams</CODE></TD>
- <TD>A complete A/V server and client.</TD></TR>
- <TR>
- <TD><CODE>Concurrency</CODE></TD>
- <TD>Test the Concurrency Service.</TD></TR>
- <TR>
- <TD><CODE>Event_Latency</CODE></TD>
- <TD>Test the Event Service and measure end-to-end latency,
- it also uses the Scheduling and Naming services.</TD></TR>
- <TR>
- <TD><CODE>EC_Multiple</CODE></TD>
- <TD>Connect two Event Channels using the
- <CODE>EC_Gateway</CODE>,
- measure latency, utilization and minimum spacing.</TD></TR>
- <TR>
- <TD><CODE>Logger</CODE></TD>
- <TD>An example logging service using the Naming Service to
- locate a factory.</TD></TR>
- <TR>
- <TD><CODE>Naming</CODE></TD>
- <TD>An advanced test of the Naming Service.</TD></TR>
- <TR>
- <TD><CODE>Property</CODE></TD>
- <TD>Testing for the Property Service.</TD></TR>
- <TR>
- <TD><CODE>Sched</CODE></TD>
- <TD>A test of the Scheduling Service.</TD></TR>
- <TR>
- <TD><CODE>Simple_Naming</CODE></TD>
- <TD>A very simple Naming Service test.</TD></TR>
- <TR>
- <TD><CODE>Simulator</CODE></TD>
- <TD>Prototype implementation of DOVE (DOVE Agent, DOVE
- Browser, DOVE MIB, DOVE Application). The DOVE Agent
- consists of the Event Channel, which is then connected to
- a DOVE Browser implemented in Java.</TD></TR>
- <TR>
- <TD><CODE>Trading_Service</CODE></TD>
- <TD>Implementation of the Trading Service.</TD></TR>
- </TABLE>
- </P>
-
- <H2>SEE ALSO</H2>
-
- <P>You may you to check TAO
- <A HREF="releasenotes/index.html">release notes</A>
- for up to date information on status, changes, future work, etc.</P>
-
- <hr>
-
- <address><a href="mailto:coryan@macarena.cs.wustl.edu">Carlos O'Ryan</a></address>
- </body>
-</html>
diff --git a/TAO/docs/poa_migration.html b/TAO/docs/poa_migration.html
deleted file mode 100644
index 5623a283698..00000000000
--- a/TAO/docs/poa_migration.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<HTML>
-<HEAD>
- <META NAME="GENERATOR" CONTENT="Adobe PageMill 2.0 Mac">
- <TITLE>Migrating from the BOA to the POA</TITLE>
-</HEAD>
-
-<BODY text = "#000000"
-link="#0000ff"
-vlink="#cc0000"
-bgcolor="#ffffff">
-
-<HR><P>
-<H3>Migrating from BOA to POA</H3>
-
-<UL>
-<LI><EM><B>Client side</b></EM><P>
-<ul>
-<li>Very little has changed, and some have not needed any changes.</li><P>
-<li>You'll have to insure that the Makefile includes .o's for both the server
-and client; this is necessary to support collocation.</li> <P>
-</ul>
-
-<LI><EM><B>Server side</B></EM><P>
-<UL>
-<li>POA_init() is replaced with resolve_initial_references("RootPOA") followed
-by a _narrow operation.</li><P>
-<li>The implementation no longer inherits from the client-side stub; they
-inherit from PortableServer::ServantBase. The implications of this are (a) if
-you want a object reference for that, you must use the _this() method.</li><P>
-<li>Object ID's are assigned by the POA unless you activate the servant with a
-specific ID; IDL_Cubit has examples on how to do this.</li><P>
-<li>Unlike the BOA, the POA explicitly addresses the temporal nature of servants
-and declares that a POA can service either transient or persistent servants
-(not both). The root POA's (mandated, unchangeable) policy is "transient".
-The implications of this are that in order for a client to be able to
-manufacture an object reference on its own and use that to access an object,
-the servant for that object must be registered with a POA whose policy is
-"persistent". Thus, you must create a child POA with that policy and register
-the servant with that POA. NOTE: when the POA declares something as
-"persistent", it is only stating that the key is valid between different runs
-of the server; it makes no claims that state or anything else is persistent.</li><P>
-
-<ul>
- <li> Servants are not automatically activated, hence you must register
- them by calling some of the activate_object* methods on a POA or
- calling _this() on the servant; with the latest you have no control on
- the ObjectId (which sometimes is good), and the POA must support the
- right policies (the RootPOA does).</li><P>
-
- <li>Servant constructors use to take a <const char*> parameter to set
- they object id, this is not needed now, in fact in many cases they use
- to pass this argument to the skeleton class: this will fail now.</li><P>
-</ul>
-This list is not intended to be exhaustive, but should give you a good
-starting point. If you find things along the way which have to change and I
-didn't note them, please send them to me. Perhaps we can work together on the
-ultimate migration document. <P>
-</UL>
-</UL>
-
-<hr><P>
-
-Back to the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/index.html">TAO
-documentation</A> page.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</html>
diff --git a/TAO/docs/reactivator.html b/TAO/docs/reactivator.html
deleted file mode 100644
index 71ab9c5d64d..00000000000
--- a/TAO/docs/reactivator.html
+++ /dev/null
@@ -1,358 +0,0 @@
-<html>
-
-<head>
-<title>
-TAO Reactivation Service
-</title>
-</head>
-
-<BODY text = "#000000"
-link="#0000ff"
-vlink="#cc0000"
-bgcolor="#ffffff">
-
-<hr>
-<h3>
-TAO Reactivation Service
-</h3>
-
-This document describes the proposed design of the TAO reactivator.
-If you have any comments or suggestions for improvement, please let <A
-HREF="mailto:schmidt@cs.wustl.edu">me</A> know. <P>
-
-<hr>
-
-<h3>
-Goals of the Reactivation Service
-</h3>
-
-The Reactivation Service will add support to TAO's architecture so
-that servers using Persistent Object References (defined in the
-Portable Object Adapter (POA) specification) can be restarted. This
-service will allow servers to come and go without invalidating the
-Persistent Object References that they use.
-
-<h3>
-Constraints when using the Reactivation Service
-</h3>
-
-<ul>
-
-<li>
-
-When a server is restarted by the Reactivation Service, it must be
-able to recreate enough state to deal correctly with the request
-issued by a client on the Persistent Object Reference. Therefore, the
-restarted server's endpoint must be the same endpoint specified in the
-Persistent Object Reference. Unless dynamic servant and POA activation
-is used, the restarted server must also recreate the POA in which the
-Persistent object was registered and register the persistent object
-with that POA.
-
-<li>
-
-The Reactivation Service will track all processes it has restarted. It
-will ensure that multiple instances of same server processes are not
-started simultaneously.
-
-<li>
-The use of the Reactivation Service in TAO will be optional. Real-time
-applications can choose not to use the Reactivation Service.
-
-</ul>
-
-<h3>
-Alternate Implementations
-</h3>
-
-
-Other ORB vendors use alternative techniques for Activation /
-Reactivation Services. These techniques usually require new naming
-techniques for persistent objects and new client-side APIs to bind to
-persistent objects. TAO's Reactivation Service will not require such
-extensions.
-<p>
-
-One implementation of an Activation / Reactivation Service is to use
-an Object Reference that points to the Activation Service instead of
-pointing directly to the persistent object. This extra level of
-indirection is used by the Activation Service to start the server, and
-then use the Location Forwarding mechanism to forward the client
-request to the server. This technique forces clients to use the
-Activation Service (at least once) even when the server is already
-running.
-<p>
-
-<h3>
-Design Constraints of the Reactivation Service
-</h3>
-
-This design makes TAO dependent on the Reactivation Service.
-<p>
-
-<hr>
-<h2>
-Implementation
-</h2>
-
-Here is a preliminary interface of the Reactivation Service in IDL:
-
-<code><pre>
-module TAO
-{
- // ....
-
- exception Already_Registered {};
- // Object already bound in the Reactivator
-
- exception Object_Not_Persistent {};
- // Object is not persistent
-
- exception Not_Found {};
- // Object not found in the Reactivator
-
- struct Environment_Variable
- {
- string name_;
- string value_;
- };
- // One environment variable
-
- typedef sequence&lt;Environment_Variable&gt; Environment;
- // Complete environment
-
- typedef sequence&lt;string&gt; Command_Line_Options;
- // Command line options
-
- struct Process_Options
- {
- string executable_name_;
- // Executable name
-
- Command_Line_Options command_line_options_;
- // Command line options
-
- Environment environment_;
- // Environment
-
- string working_directory_;
- // Working directory
-
- unsigned long creation_flags_;
- // Creation flags
- };
-
- interface Reactivator
- {
- boolean reactivate_object (in Object obj)
- raises (Not_Found);
- // Restart server that will contain this persistent object
- //
- // The &lt;Not_Found&gt; exception is raised when &lt;obj&gt; is not found
- // in the Reactivation Service.
-
- void register_object (in Object obj,
- in Process_Options options)
- raises (Already_Registered,
- Object_Not_Persistent);
- // Restart server process when client is looking for &lt;obj&gt;.
- //
- // The &lt;Already_Registered&gt; exception is raised when &lt;obj&gt; has
- // already been registered with the Reactivation Service.
- //
- // The &lt;Object_Not_Persistent&gt; exception is raised when &lt;obj&gt; is
- // not a Persistent Object Reference.
-
- enum Host_Port_Options
- {
- NONE,
- HOST,
- PORT,
- HOST_AND_PORT
- };
- // NONE: Use no information from the Object Reference
- //
- // HOST: Use the host information taken from the Object
- // Reference (-ORBhost)
- //
- // PORT: Use the port information taken from the Object
- // Reference (-ORBport)
- //
- // HOST_AND_PORT: Use both the host and port information from
- // the Object Reference (-ORBport) and (-ORBhost)
-
- void register_object_using_info_in_ior (in Object obj,
- in Process_Options options,
- in Host_Port_Options host_port_options)
- raises (Already_Registered,
- Object_Not_Persistent);
- // Restart server process &lt;executable_name&gt; when client is
- // looking for &lt;obj&gt;. Depending on the &lt;host_port_options&gt;,
- // information from the &lt;obj&gt; object reference is used to
- // specify (-ORBport) and (-ORBhost) options for the server.
-
- void reregister_object (in Object obj,
- in Process_Options options)
- raises (Not_Found,
- Object_Not_Persistent);
-
- void reregister_object_using_info_in_ior (in Object obj,
- in Process_Options options,
- in Host_Port_Options host_port_options)
- raises (Not_Found,
- Object_Not_Persistent);
- // The above reregister methods are similar to the register
- // methods except they are used for rebinding.
-
- void remove_object (in Object obj)
- raises (Not_Found);
- // Remove &lt;obj&gt; from the Reactivation Service.
- //
- // The &lt;Not_Found&gt; exception is raised when &lt;obj&gt; is not found
- // in the Reactivation Service.
- };
-};
-</pre></code>
-
-<hr>
-<h2>
-Accessing the Reactivation Service
-</h2>
-
-Servers can use either of the following techniques to get access to
-the Reactivation Service. Remember that the Reactivation Service will
-be transparent to the clients.
-
-<ul>
-
-<li>
-Use ORB::resolve_initial_reference ("TAO Reactivation Service")
-<br>
-
-This works like the bootstrapping mechanism to obtain the Naming
-Service. This method will return the reference to a Reactivation
-Service.
-<p>
-
-<li>
-Use a Helper Application
-<br>
-A helper application will be part of the Reactivation Service. It
-will be a command-line utility that will assist users with adding and
-removing Persistent Object References from the Reactivation Service.
-<p>
-
-</ul>
-
-<h3>
-Locating an instance of Reactivation Service
-</h3>
-
-<h4>
-Server side
-</h4>
-
-The Reactivation Service will be located on the same host as the
-server. If not, host information can be specified through command
-line options or environment variables. The default port of the
-Reactivation Service can be overwriting through command line options
-or environment variables.
-
-<h4>
-Client side
-</h4>
-
-The correct Reactivation Service will be located by multicasting (on a
-default multicast group) the Persistent Object Reference the client is
-interested in. The default multicast group can be overwriting through
-command line options or environment variables. If multicasting is not
-preferred, the location of a the Reactivation Service will be assumed
-to be the same as the Persistent Object. The default port of the
-Reactivation Service can be overwriting through command line options
-or environment variables.
-
-<hr>
-<h2>
-Reactivation algorithm used on the Client Side
-</h2>
-
-<ul>
-
-<li>
-Client obtains an Object Reference
-
-<li>
-Then it makes a request on the Object Reference. If the IOR has
-multiple Object References, then it will try all of the Object
-References until one succeeds
-
-<li>
-
-If all of the Object References fail, then for each Object Reference
-in the IOR, the following steps will be taken to reactivate the
-server
-
-<li>
-The ORB examines the Object Reference
-
-<li>
-If it is a Transient Object Reference, then the call fails
-
-<li>
-If multicast is available:
-
-<ul>
-
-<li>
-Multicast the Object Reference to a group of Reactivation Services
-
-<li>
-Wait until response or a timeout. The response will contain the
-Object Reference of a Reactivation Service that knows about the Object
-Reference
-
-<p>
-</ul>
-
-<li>
-If no multicast:
-
-<ul>
-
-<li>
-Extract the host from the Persistent Object Reference
-
-<li>
-Manufacture an Object Reference for the Reactivation Service
-
-<p>
-</ul>
-
-<li>
-Now connect to the Reactivation Service
-
-<li>
-Call <i>reactivate ()</i> passing the Persistent Object Reference
-
-<li>
-Reactivation service sends back a yes / no response
-
-<li>
-If "yes", retry the request using the Persistent Object Reference
-again. If request fails, then fail (no more retries)
-
-<li>
-If "no", then fail
-
-</ul>
-
-<hr><P>
-
-Back to the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/index.html">TAO
-documentation</A> page.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</html>
-
diff --git a/TAO/docs/releasenotes.html b/TAO/docs/releasenotes.html
deleted file mode 100644
index 21854918af1..00000000000
--- a/TAO/docs/releasenotes.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (X11; I; Linux 2.0.30_SMP i686) [Netscape]">
- <META HTTP-EQUIV="Refresh" CONTENT="1;URL=releasenotes/index.html">
- <TITLE>TAO Release Information and TODO List</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-<!-- $Id$ -->
-<CENTER>
-<H2>
-Release Information for The ACE ORB (TAO)</H2></CENTER>
-
-<CENTER>
-<H3>
-Version 0.0.12</H3></CENTER>
-
-<CENTER>
-<H3>
-17-October-1997</H3></CENTER>
-
-<HR>
-
-This document has moved <a href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/releasenotes/index.html">here</a>.
-
-</HTML>
diff --git a/TAO/docs/releasenotes/ec.html b/TAO/docs/releasenotes/ec.html
deleted file mode 100644
index de0f72af5fe..00000000000
--- a/TAO/docs/releasenotes/ec.html
+++ /dev/null
@@ -1,182 +0,0 @@
-<!-- $Id$ -->
-
-<HTML>
- <HEAD>
- <TITLE>Event Service Status</TITLE>
- </HEAD>
-
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF">
- <BODY>
- <H3>Event Service Status</H3>
- Point of contact: <A HREF="mailto:coryan@cs.wustl.edu">Carlos O'Ryan</A>
-
- <H4>Last Updated: $Date$ </H4>
-
- <H3>New on this release</H3>
-
- <UL>
- <LI>The <CODE>Gateway</CODE> to connect two event channels was
- moved from a test to the library.
- The corresponding test (<CODE>EC_Multiple</CODE>) has been
- expanded and improved.</LI>
- </UL>
-
- <H3>Known issues:</H3>
- <DL>
- <DT><EM>The schedule cannot be downloaded</EM></DT>
- <DD>
- The Scheduling Service seems to compute proper schedules,
- but it is not possible to download them,
- apparently there is a marshalling problem for sequences of
- complex structures.
-
- <P>Due to this problem we have been unable to test the
- run-time scheduler and performance it is impossible to
- complete performance measurements and optimizations:
- the (global) scheduling service latency and overhead is at
- least as large as the EC itself.</P>
- </DD>
-
- <DT><EM>Run-time scheduler requires re-link</EM></DT>
- <DD>
- During a normal execution of the system
- there is no
- need to use the a global Real-time Scheduling Service,
- a faster,
- collocated implementation for the service is available.
- Obviously the scheduling information is precomputed in some
- config run.
-
- <P>Unfortunately the current scheme requires a relink of all the
- involved applications against the generated tables for the
- run-time scheduling service.</P>
-
- <P>We should be able to download the schedule to the interested
- parties,
- without need for a separate link phase.
- This will simplify and speed up the developing cycle,
- but requires a (small and fixed) amount of dynamic memory
- allocation.
- It could be interesting to "save" the schedule computation in
- some persistent form,
- so startup cost are lower too.</P>
-
- <P>The current design contemplates a config run were a global
- consumer accumulates the QoS requirements of all the objects,
- next an external utility is used to force a computation and
- save of the schedule.
- In future executions
- the global scheduler pre-loads this schedule and
- the clients simply download the precomputed schedule,
- and all scheduling queries are to a local scheduling service,
- without any further contact to the global instance.</P>
- </DD>
-
- <DT><EM>Users have no control over service
- collocations</EM></DT>
- <DD>
- The user should have complete control of services collocation,
- using ACE Service Configurator;
- currently the services must be explicitly instantiated by the
- user.
- </DD>
-
- </DL>
-
- <H3>Examples</H3>
-
- <P>For general documentation on the Event Service please read
- <A HREF="http://www.cs.wustl.edu/~schmidt/oopsla.ps.gz">
- The Design and Performance of a Real-time CORBA Event
- Service</A>.
-
- <P>The simplest test for the Event Channel is
- <CODE>Event_Latency</CODE>,
- below are the basic instructions to run it:</P>
-
- <OL>
- <LI> Compile everything under <CODE>$TAO_ROOT/orbsvcs</CODE>, this
- needs, obviously, <CODE>$TAO_ROOT/tao</CODE> and
- the IDL compiler in <CODE>$TAO_ROOT/TAO_IDL</CODE>.</LI>
-
- <LI><P>Run the naming service, the scheduling service, the event service
- and the test in
- <CODE>$TAO_ROOT/TAO/orbsvcs/tests/Event_Latency</CODE>;
- remember to give a different port to each one,
- using the <CODE>-ORBport</CODE> option. As in:</P>
-
- <CODE>
- <P>
- $ cd $TAO_ROOT/orbsvcs
- </P>
- <P>
-$ cd Naming_Service ; ./Naming_Service -ORBport 10000 &
- </P>
- <P>
-$ cd Scheduling_Service ; ./Scheduling_Service -ORBport 10010 &
- </P>
- <P>
-$ cd Event_Service ; ./Event_Service -ORBport 10020 &
- </P>
- <P>
-$ cd tests/Event_Latency ; ./Event_Latency -ORBport 10030 -m 20 &
- </P>
- </CODE>
-
- You may want to run each program in a separate window.
- </LI>
-
- <LI> If you want real-time behavior on Solaris you may need to run
- these programs as root; on the other hand, this particular
- example really has no priority inversion, since only one
- thread runs at a time.</LI>
- </OL>
-
- <P>Another example is <CODE>EC_Multiple</CODE>,
- numerous examples on how to run this test can be found in the
- scripts located in
- <CODE>$TAO_ROOT/orbsvcs/tests/EC_Multiple</CODE>.</P>
-
- <H3>Features in previous releases</H3>
-
- <UL>
- <LI>
- <P>
- When several suppliers are consumers are distributed over the
- network it could be nice to exploit locality and have a
- separate Event Channel on each process (or host).
- Only when an event is required by some remote consumer we need
- to send it through the network. </P>
-
- <P>
- The basic architecture to achieve this seems very simple,
- each Event Channel has a proxy that connects to the EC peers,
- providing a "merge" of its (local) consumer subscriptions as
- its own subscription list. </P>
-
- <P>
- Locally the proxy connects as a supplier,
- publishing all the events it has register for. </P>
-
- <P>
- To avoid event looping the events carry a time-to-live field
- that is decremented each time the event goes through a proxy,
- when the TTL gets to zero the event is not propagated by the
- proxy. </P>
-
- <P>
- In the current release an experimental implementation is
- provided,
- it basically hardcodes all the subscriptions and publications,
- we are researching on how to automatically build the
- publication list.</P>
- </LI>
-
- <LI> <P>
- We use the COS Time Service types (not the services) to
- specify time for the Event Service and Scheduling Service.</P>
- </LI>
- </UL>
-
- </BODY>
-</HTML>
diff --git a/TAO/docs/releasenotes/index.html b/TAO/docs/releasenotes/index.html
deleted file mode 100644
index df9a232eba0..00000000000
--- a/TAO/docs/releasenotes/index.html
+++ /dev/null
@@ -1,607 +0,0 @@
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>TAO Release Information and TODO List</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF">
-<!-- $Id$ -->
-<CENTER>
-<HR></CENTER>
-
-<CENTER>
-<H3>
-Release Information for The ACE ORB (TAO)</H3></CENTER>
-Information is available on the following topics related to the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/VERSION">current
-release</A> of <A HREF="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>:
-<UL>
-<LI>
-<A HREF="orbcore.html">ORB Core</A></LI>
-
-<LI>
-<A HREF="#idl">IDL Compiler</A></LI>
-
-<LI>
-<A HREF="#poa">Portable Object Adapter</A></LI>
-
-<LI>
-<A HREF="#nservices">CORBA Naming Service</A></LI>
-
-<LI>
-<A HREF="ec.html">CORBA Event Service</A></LI>
-
-<LI>
-<A HREF="#tservices">CORBA Trader Service</A></LI>
-
-<LI>
-<A HREF="#pservices">CORBA Property Service</A></LI>
-
-<LI>
-<A HREF="#cservices">CORBA Concurrency Control Service</A></LI>
-
-<LI>
-<A HREF="#av">CORBA Audio/Video Control Service</A></LI>
-
-<LI>
-<A HREF="#apps">Test &amp; Example Applications</A></LI>
-
-<LI>
-<A HREF="#ace">ORB-related ACE Changes</A></LI>
-
-<LI>
-<A HREF="#dove">The DOVE Demo</A></LI>
-
-<LI>
-<A HREF="#forwarding">Location forwarding</A></LI>
-
-</UL>
-
-A complete list of all modifications to TAO is available in the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/ChangeLog">ChangeLog</a>.<P>
-
-<HR>
-<!--#include virtual="orbcore.html" -->
-<HR>
-<H3>
-<A NAME="idl"></A>IDL Compiler</H3>
-Point of contact: <A HREF="mailto:gokhale@cs.wustl.edu">Aniruddha Gokhale</A>
-
-<P>Current status: (As of June 11th, 1998.)
-<UL>
-<LI>
-Added support for Arrays. Right now, support for typedefed arrays is
-in. Still needs testing.
-</LI>
-<LI>
-Added support for TIE classes. If the interfaces are defined inside
-modules, then the TIE class and its code gets generated inside a
-conditional macro. For platforms that support namespaces, this macro
-will allow these TIE classes else they get commented out. The reason
-to do this is because nested templates have problems on most compilers.
-</LI>
-
-<LI>
-The &lt;&lt;= and >>= operators for user-defined types are now generated.</LI>
-
-<LI>
-Completely redesigned the IDL compiler using the Visitor patterns. Many
-incomplete issues have been resolved. These include support for "sequence
-of typecodes", passing object references as in, inout, and out parameters.
-Code generation for sequences is also properly handled i.e., for a named
-sequence such as "typedef sequence&nbsp;<char>CharSeq;", we now generate
-a new class (and hence a type) called "class CharSeq". Arrays are still
-being worked out and will be done soon. An important difference in the
-generated code is that the skeletons now use a table driven approach very
-similar to the stubs.</LI>
-
-<LI>
-Support for the "native" keyword added.</LI>
-
-<LI>
-Introduced tests for object references to TAO. Still incomplete.</LI>
-
-<LI>
-Param_Test example is able to test string sequences, fixed structs, variable
-sized structs and nested structs</LI>
-
-<LI>
-Param_Test test suite can now test fixed structs and string sequences.This
-needed bug fixes to TAO ORB core.</LI>
-
-<LI>
-A new test to test all the parameter passing modes for a number of data
-types has been added. At this point in time, it tests primitive types and
-strings. Other tests will be added. Bugs discovered thru these tests have
-been fixed.</LI>
-
-<LI>
-Very preliminary support for arrays. Not working yet.</LI>
-
-<LI>
-Many bugs associated with stub generation fixed. This included support
-for return values that are variable sized IDL types. Unions improved.</LI>
-
-<LI>
-Support for sequences of strings and object references added. However,
-it is not tested yet so there may be some bugs. We should have these fixed
-in a day or so.</LI>
-
-<LI>
-Support for handling exceptions added. TAO does not use direct C++ exceptions.
-Instead it uses the CORBA::Environment based approach.</LI>
-
-<LI>
-Sequences as out parameters have been tested in the IDL_Cubit example.
-A test suite is currently being built to test all the parameter passing
-modes on a variety of IDL data types.</LI>
-
-<LI>
-Support for attributes completed. Not tested yet.</LI>
-
-<LI>
-The problem of incorrect code generation for typedefs defined in an imported
-file is resolved.</LI>
-
-<LI>
-Problems when interfaces use single or multiple inheritance solved. The
-problem was with the demultiplexing code, the generated operation tables,
-and the dispatching mechanism. We are currently testing this with the Event
-Channel code.</LI>
-
-<LI>
-The problems arising due to public virtual inheritance when casting from
-an interface class to CORBA::Object_ptr has been solved. We do this casting
-inside the stubs/skeletons rather than first converting an interface class
-pointer to a void*, storing it in an Any, and casting it to CORBA::Object_ptr
-in the encode/decode methods. The casting inside the stubs/skeletons work
-because the compiler has knowledge of both types.</LI>
-
-<LI>
-The compiler generates correct code for COSS Naming service and it runs
-properly. Correct code also gets generated for the Event Channel program</LI>
-
-<LI>
-Include files are handled properly. So are the definitions used inside
-the include files that are used in the currently parsed files.</LI>
-
-<LI>
-IN, INOUT, and OUT object reference parameters are now supported properly.
-We think the same approach should work for sequences, structs, and unions.</LI>
-
-<LI>
-Many IDL constructs supported including primitive types, typedefs, sequences,
-structures, and unions.</LI>
-
-<LI>
-Generates C++ stubs and skeletons that use TAO's <A HREF="http://www.cs.wustl.edu/~schmidt/HICSS-97.ps.gz">interpretive
-IIOP protocol engine</A>.</LI>
-
-<LI>
-Generated code closely follows the C++ Mapping specified in the POA Specification
-(ORBOS/97-05-15).</LI>
-
-<LI>
-Support dynamic libraries on NT, i.e., marking classes for DLL export was
-added. Two backend options control the name of the export macro, and the
-name of an extra include file were the macro is defined; the options are
-<TT>-Wp,export_macro=MACRO_NAME</TT> <TT>-Wp,export_include=INCLUDE_NAME</TT>.</LI>
-</UL>
-Known bugs/unimplemented constructs:
-<UL>
-<LI>
-Generation of Managed types must somehow be moved to the ORB Core</LI>
-
-<LI>
-We need support for ``TIEs'' (i.e., the object form of the Adapter pattern).</LI>
-
-<LI>
-TypeCode generation for multidimensional arrays and indirected typecodes
-is still a problem.</LI>
-
-<LI>
-Unions with default cases yet to be handled</LI>
-
-<LI>
-Deal with names in the IDL definition that are C++ keywords.</LI>
-
-<LI>
-IDL is case-insensitive. However, it looks like our front-end is case-sensitive.
-Thanks to Anil Gopinath (anil@ittc.ukans.edu) for pointing this out.</LI>
-
-<LI>
-tao_idl generates code for a *.idl file only inside the directory where
-the *.idl resides. However, it may be required to generate code elsewhere
-i.e., in the directory where the compiler was invoked. Thanks to Tom Richards
-(tomr@MCMEnterprise.com) for this suggestion.</LI>
-</UL>
-Future work:
-<UL>
-<LI>
-Need to relocate the various libraries used by the IDL compiler out of
-the ACE directory. Having them here can cause problems when working with
-multiple versions of TAO and a single version of ACE.</LI>
-
-<LI>
-Improve IDL compiler to generate compiled form of stubs/skeletons.</LI>
-
-<LI>
-Fix bugs in the SunSoft IDL front-end we've uncovered. These primarily
-include support for Unions.</LI>
-
-<LI>
-Add command line options to TAO IDL. These options will decide what strategy
-to use for operation name demultiplexing. Another option may decide whether
-to use the interpretive IIOP engine or generate compiled stubs/skeletons.</LI>
-
-<LI>
-Use <A HREF="http://www.cs.utah.edu/projects/flux/flick/">Flick</A> (from
-the University of Utah) to generate compiled stubs.</LI>
-
-
-<P>Goal is to measure the code size of the interpretive stubs generated
-by TAO IDL compiler <I>vs</I> code size of compiled stubs. Then compare
-the performance of each. We want to prove the thesis that TAO IDL compiler
-generated interpretive stubs have a small code size, yet are comparable
-in performance (or slightly less) than compiled stubs. Hence, it will be
-useful for small distributed equipment such as handsets, PDAs, etc.
-
-<P>In doing the above, improvements to the IIOP protocol engine in terms
-of size/performance/determinism will be made.
-<LI>
-Tweak the IDL compiler to generate code that's more easily integrated back
-into the ORB Core, e.g., POA, etc. This will depend largely on our ability
-to generalize the changes necessary to generated code.</LI><P>
-</UL>
-
-<HR>
-<H3>
-<A NAME="poa"></A>Portable Object Adapter</H3>
-Point of contact: <A HREF="mailto:irfan@cs.wustl.edu">Irfan Pyarali</A>
-
-<P>Current Status:
-<UL>
-<LI>
-TAO fully supports the POA spec. This section will carry updates as available.</LI>
-</UL>
-Known issues:
-<DL>
-<DT>
-<I>Support for collocation is not complete.</I></DT>
-
-<DD>
-If an object which should be collocated is created via <TT>string_to_object</TT>,
-it is created as a remote object rather than collocated.</DD>
-</DL>
-Critical work:
-<UL>
-<LI>
-None.</LI>
-</UL>
-Future work:
-<UL>
-<LI>
-Determine the degree to which we will support the full semantics of remote
-objects on a collocated object. The spec mandates that collocated object
-should behave <I>exactly</I> like remote objects, but that means that request
-will have to be queued rather than calling a method directly, and this
-could be hazardous to our quest for real-time ORB status.</LI>
-
-<LI>
-Provide extensions of the specification to ensure real-time delivery of
-messages.</LI>
-</UL>
-
-<HR><!--#include virtual="ec.html" -->
-<HR>
-<H3>
-<A NAME="nservices"></A>CORBA Naming Service</H3>
-Point of contact: <A HREF="mailto:sergio@cs.wustl.edu">Sergio Flores-Gaitan</A>
-and <A HREF="mailto:marina@cs.wustl.edu">Marina Spivak</A>
-
-<P>Current status (as of Feb 27th):
-<UL>
-<LI>
-The Naming Service implementation is complete.</LI>
-</UL>
-Future work:
-<UL>
-<LI>
-Currently the bindings are stored as a table in memory. Future work will
-include a persistent database to store the bindings.</LI>
-
-<LI>
-Replication of the bindings to other Naming Service's currently running.
-It will probably be modeled after the LDAP Multi-Master Replication Protocol.
-For more information on this replication protocol please read <A HREF="ftp://ds.internic.net/internet-drafts/draft-ietf-asid-ldap-mult-mast-rep-02.txt">LDAP
-Multi-Master Replication Protocol</A></LI>
-</UL>
-For general documentation on the Naming Service please read <A HREF="ftp://www.omg.org/pub/docs/formal/97-07-12.pdf">The
-Naming Service Specification</A>.
-
-<P>
-<HR>
-<H3>
-<A NAME="tservices"></A>CORBA Trading Service</H3>
-Point of contact: <A HREF="mailto:sbw1@cs.wustl.edu">Seth Widoff</A>
-
-<P>Development is complete, and testing and debugging have commenced on
-the TAO Trading Service. Currently, it meets the Linked Trader conformance
-requirements, in that it supports the Lookup, Register, Admin, and Link
-interfaces. The Lookup interface supports subtype searching, preference
-sorting, dynamic property evaluation, federated queries, and concurrent
-queries as a multi-threaded servant.
-
-<P>The Trading Service uses the Object Space implementation of the Standard
-Template Library.
-
-<P>Future Work:
-<UL>
-<LI>
-The Proxy Interface.</LI>
-
-<LI>
-Persistent storage of service types and offers.</LI>
-</UL>
-For general documentation of the Trading Service, please read <A HREF="http://www.omg.org/corba/sectrans.htm#trader">The
-Trading Service Specification.</A>
-
-<P>
-<HR>
-<H3>
-<A NAME="pservices"></A>CORBA Property Service</H3>
-Point of contact: <A HREF="mailto:alex@cs.wustl.edu">Alexander Babu Arulanthu</A>
-
-<P>Current status (as of May&nbsp; 02, 1998)
-<BR>&nbsp;
-<BR>All the interfaces of this service have been implemented.&nbsp; Please
-go through the&nbsp; test examples at&nbsp; $TAO/orbsvcs/tests/CosPropertyService.&nbsp;
-Property Service is&nbsp; now used by the AVStreams that is currently being
-developed for TAO. More testing is being done.
-
-<P>For general documentation of the Property Service, please read <A HREF="http://www.omg.org/corba/sectrans.htm#prop">The
-Property Service Specification.</A>
-
-<P>
-<HR>
-<H3>
-<A NAME="cservices"></A>CORBA Concurrency Control Service</H3>
-Point of contact: <A HREF="mailto:tworm@cs.wustl.edu">Torben Worm</A>
-
-<P>Current status (as of May 3rd):
-<UL>
-<LI>
-A simple version of the concurrency service has been implemented,
-i.e. a version without transactions. It is currently being
-tested.</LI>
-</UL>
-Future Work:
-<UL>
-<LI>
-Implementation of the Concurrency Control Service with transactions</LI>
-</UL>
-For general documentation of the Concurrency Control Service, please read
-<A HREF="http://www.omg.org/corba/sectrans.htm#concur">The Concurrency
-Control Service Specification.</A>
-
-<P>
-<HR>
-<H3>
-<A NAME="av"></A>CORBA Audio/Video Control Service</H3>
-Point of contact: <A HREF="mailto:sumedh@cs.wustl.edu">Sumedh Mungee</A>
-and <A HREF="mailto:naga@cs.wustl.edu">Nagarajan Surendran</A>
-
-<P>This is an implementation of the OMG spec addressing the <A HREF="http://www.cs.wustl.edu/~sumedh/research/corbaav.pdf">Control
-and Management of Audio/Video Streams</A>.
-
-<P>We are currently implementing the various interfaces defined in the
-above spec. We are also working on building a audio/video streaming demo
-that will use the above service as the control mechanism and JAWS as an
-efficient transport and protocol processing framework.
-
-<P>Current Status:
-<UL>
-<LI>
-Implemented the handshake mechanism between the consumer and supplier of
-the stream.</LI>
-
-<LI>
-Implemented a simple version of the stream controller (StreamCtrl).</LI>
-
-<LI>
-Implemented the VDev and StreamEndPoint base class functionality.</LI>
-
-<LI>
-Implemented the MMDevice interface, which is a factory for StreamEndPoint
-and VDev objects.</LI>
-</UL>
-Work in progress:
-<UL>
-<LI>
-Implementing the SFP protocol</LI>
-
-<LI>
-Porting the distributed audio/video player developed at <A HREF="http://www.cse.ogi.edu/~scen/Player">OGI</A>
-to ACE (and in the future to JAWS)</LI>
-
-<LI>
-Implementing the CORBA Stream controller for the above audio/video player</LI>
-</UL>
-
-<HR>
-<H3>
-<A NAME="apps"></A>Test &amp; Example Applications</H3>
-Point of contact: <A HREF="mailto:naga@cs.wustl.edu">Nagarajan Surendran</A>
-
-<P>Current Status:
-
-<P>The TAO IDL_Cubit test application makes use of the Naming Service and
-the server holds a TAO_Naming_Server component.Just running server and
-client is enough to test the application.
-
-<P>The various tests in the tests/POA test the different features of the
-Portable Object Adapter interface like Explicit Activation, On Demand Activation,etc..
-
-<P>Future work:
-
-<P>Developing a one-buttoned test for all the different TAO tests similar
-to the ACE-one buttoned test.
-
-<P>MT_Cubit:
-
-<P>Current status:
-
-<P>The TAO MT_Cubit test application is meant to serve as a starting point
-for real-time tests on the TAO system. It comprises the following parts:
-<UL>
-<LI>
-<I>Server.</I> The server creates multiple CORBA objects (servants), each
-with different real-time priorities. This priority is implemented by using
-real-time thread support provided by the operating system. Thus, requests
-sent to a high-priority servant are handled by a high-priority real-time
-thread, and those sent to a lower priority servant are handled by correspondingly
-lower priority threads.</LI>
-
-<LI>
-<I>Client.</I> The client component binds to the servants, and sends a
-stream of CORBA requests to the servants. It measures the response time,
-i.e. the time taken for the request to complete successfully. In particular,
-it measures the time taken for requests sent to the high priority servant
-to complete. The volume of lower priority requests is configurable. The
-client is thus able to measure the performance of the high-priority servant
-in the presence of competition from several lower-priority servants.</LI>
-</UL>
-Clearly, if the ORB endsystem handles the priorities of the various requests
-correctly, increasing the volume of lower priority requests should not
-affect the performance seen by the higher priority requests. The application
-thus serves as a tool to measure and confirm this behavior.
-
-<P>Future work:
-<UL>
-<LI>
-Study the impacts of scheduling &amp; concurrency strategies on performance.</LI>
-
-<LI>
-Evolve into a testbed for discovering sources of performance non-determinism
-&amp; priority inversion.</LI>
-</UL>
-
-<HR>
-<H3>
-<A NAME="ace"></A>ORB-related ACE Changes</H3>
-Points of contact: <A HREF="mailto:nanbor@cs.wustl.edu">Nanbor Wang</A>
-and <A HREF="mailto:irfan@cs.wustl.edu">Irfan Pyrarli</A>
-
-<P>Recently Completed Work:
-<UL>
-<LI>
-Added special declaration to OS.h for <TT>inet_ntoa</TT> and other functions
-because VxWorks doesn't provide full argument prototypes for these library
-functions.</LI>
-
-<LI>
-The current caching connector behaves properly in the face of a non-blocking
-connect request. The "fix" is simply to not support non-blocking connects
-through the cache. When the <TT>connect()</TT> fails with <TT>EWOULDBLOCK</TT>,
-morph the error to -1 and clean up the request.</LI>
-
-<LI>
-Service handlers obtained from the caching connector are now cleaned up.
-The application needs to be able to signal that it's not using it any longer,
-and, when the application encounters an error, needs to effectively close
-down that connection for good so that a new connection can be initiated.</LI>
-
-<BR>Added the ability for a Svc_Handler to recycle itself. idle() can be
-called when the Svc_Handler is done serving a particular connection and
-can how be recycled. The Svc_Handler now also has a pointer to a recycler
-that is responsible for managing the connections. The recycler is usually
-a Cached_Connector.
-<BR>Added new class ACE_Recycling_Strategy. It defines the interface (and
-default implementation) for specifying a recycling strategy for a Svc_Handler.
-This strategy acts as a consular to the Svc_Handler, preparing it for the
-tough times ahead when the Svc_Handler will be recycled.
-<BR>Added new class ACE_NOOP_Concurrency_Strategy. It implements a no-op
-activation strategy in order to avoid calling open on a recycled svc_handler
-multiple times.
-<BR>ACE_Cached_Connect_Strategy now implements the ACE_Connection_Recycling_Strategy
-interface. This allows Svc_Handlers to cache themselves with ACE_Cached_Connect_Strategy
-when they become idle. It also allows them to purge themselves from the
-connection cache when the Svc_Handlers close down.
-<BR>Also added ~ACE_Cached_Connect_Strategy that will cleanup up the connection
-cache.</UL>
-Future work:
-<BLOCKQUOTE><I>None currently scheduled.</I></BLOCKQUOTE>
-
-<HR>
-<H3>
-<A NAME="dove"></A>The DOVE Demo</H3>
-Point of contact: <A HREF="mailto:mk1@cec.wustl.edu">Michael Kircher</A>.
-
-<P>DOVE is described in detail on the following site: <A HREF="http://www.cs.wustl.edu/~schmidt/dove.html">DOVE
-documentation</A>
-
-<P>We focus on the following goals at the moment:
-<UL>
-<LI>
-Have a DOVE Browser running using Java Beans as vizualization components.</LI>
-
-<LI>
-Have the Event Channel as DOVE Agent running with an Event Consumer in
-the DOVE Browser.</LI>
-
-<LI>
-Having a DOVE Management Information Base (MIB), which dumps all events
-transfered on the Event Channel into a file on persistent storage for later
-reuse.</LI>
-</UL>
-The DOVE Browser uses independent visualization components (Java Beans)
-and the Event Channel as DOVE Agent. Connections can be established between
-monitored metrics and the visualization components.
-
-<P>We have three major components: Observables (monitored metrics), Observers
-(a Java Bean for displaying the metric) and a DataHandler (for demultiplexing
-the monitored metrics to the appropriate Observables). Each component inherits
-from a base class, so that a certain behavior of the components can be
-assured for each component. Relationships between components are based
-on these base classes.
-
-<P>The used Java Beans are required to conform to some standards, as they
-have to support a function called "getProperty" which allows the DOVE Browser
-to determine if the vizualization capabilities of a specific Java Bean
-are sufficient to display the metric. A JavaBean is for example a Java
-Panel which shows a Graph of the delivered doubles. So all metrics can
-be displayed by this visualization component which can be expressed by
-a single double.
-
-<P>The DataHandler is connected to the Event Push Consumer (PUSH, because
-we use the push concept of the Event Service). The Event Push Consumer
-does not know what kind of data is transported. The only component knowing
-all the details about the dependencies of the metrics is the DataHandler.
-This separation allows easy extension and change of the demo.
-
-<P><A HREF="http://students.cec.wustl.edu/~mk1/dove.html">Object Diagrams</A>
-are available about this new concept.
-
-<P>Event Service events are used as communication between DOVE Applications
-and the DOVE Browser. The DOVE MIB analyses the event data field of all
-events and stores this information into a file. The event data filed is
-of type CORBA::Any and the DOVE MIB has no notion of what is conveyed in
-this field. So the DOVE MIB has to discover the content via the embedded
-type code information. Future work includes:
-<UL>
-<LI>Enhancing MIB functionality</LI>
-<LI>Monitoring the AV Streaming Service</LI>
-</UL>
-
-<P>
-<HR>
-<H3>
-<A NAME="forwarding"></A>Location forwarding</H3>
-Point of contact: <A HREF="mailto:irfan@cs.wustl.edu">Irfan Pyarali</A>,
-<A HREF="mailto:mk1@mk1.wustl.edu">Michael Kircher</A>.
-<P>
-For more information see <A HREF="../forwarding.html">Location forwarding</A>
-
-<HR>
-
-<P>Back to the TAO <A HREF="../index.html">documentation index</A>.&nbsp;<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/TAO/docs/releasenotes/orbcore.html b/TAO/docs/releasenotes/orbcore.html
deleted file mode 100644
index fbb5867ebf1..00000000000
--- a/TAO/docs/releasenotes/orbcore.html
+++ /dev/null
@@ -1,458 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-
-<!-- $Id$ -->
-
-<html>
- <head>
- <title>ORB Core Status</title>
- </head>
-
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF">
- <H3><A NAME="orb"></A>ORB &amp; ORB Core</H3> Point of
- contact: <A HREF="mailto:nanbor@cs.wustl.edu">Nanbor Wang</A>
-
- <p>Last Update: $Date$ </P>
-
-<P>
-<b>Current status:</b>
-
-<UL>
- <LI>Provides dynamically linked wholesale assignment of ORB
- strategies for communication, concurrency, demultiplexing,
- scheduling, and dispatching using the ACE Service Configurator
- framework.</LI>
-
- <LI>Supports several concurrency models out of the box:
- Reactive, Thread-per-Connection, and ORB-per-thread. The
- ORB-per-thread design is optimized for real-time I/O
- subsystems.</LI>
-
- <LI>Supports <TT>resolve_initial_references("NameService")</TT>
- using ACE support for multicast.</LI>
-</UL><p>
-
-<b>Known issues:</b>
-<UL>
- <LI> The current demarshalling scheme may not work in cases of
- complex types such as sequences of unions or anys or object
- references. The engine has difficulty determining the dynamic
- type of the objects.
-
- <LI>Object references for objects dynamically created within
- a server may not have proper host.</em> (See also <a
- href="#hostfix">recent fix</a>.)
- When an object is dynamically created and its object
- reference returned, it simply has to "guess" at the host
- information that is returned in the IIOP Profile. Currently, it
- guesses using the host name, which is a reasonable guess in most
- cases.
-
- However, if there are multiple interfaces on a machine
- <i>and</i> they have different host names, it is possible that
- the desired effect will not be realized, i.e., the connection to
- that new object may use a different interface from the original
- object. Currently the only way to change this is to use the <a
- href="../Options.html#-ORBhost"><b>-ORBhost</b> option</a> to
- manually specify that dynamically-created objects bind to a
- specific interface so that their IIOP Profile has the desired
- hostname. A more desirable fix is being investigated.<p>
-</Ul>
-
-<b>Recently Completed Work:</b>
-
-<UL>
- <li>Making the collocation table configurable. We can either
- use a global collocation table to share objects among ORBs,
- or use the per-ORB collocation table.
-
- <li>Implement the inheritance mechanism in
- Default_Server_Connection_Handler to access the parent's
- POA. This is necessary when we are using
- thread-per-connection concurrency model.
-
- <li>It is often desireable for a server to start up and not have
- to specify the TCP port number on which the ORB will listen,
- i.e., let the OS decide. While this works properly (by
- providing an argument <code>-ORBport 0</code>), the actual
- port number used by the server won't be available after the
- server starts listening. TAO now tries to bind the address
- when <code>-ORBport 0</code> is issued so it can get the
- actual address to publish the IOR for clients' use.
-
- <li>Added optimization for collocated objects. This
- optimization enables TAO to bypass communication layers and
- talks to collocated objects directly.</li>
-
- <li>Broke the tight coupling between <code>CORBA_Object</code>
- and <code>IIOP_Object</code> so that multiple
- <code>CORBA_Object</code>s can share a single
- <code>IIOP_Object</code>. This has a big win in
- <code>_narrow</code> operations.</li>
-
- <li>Eliminated substantial memory leaks in servers.</li>
-
- <li>Added documentation for <a
- href="../Options.html#-ORBpoa"><b>-ORBpoa</b></a>, which
- allows individual tweaking of the POA's locality (global
- vs. thread-specific) independent of the locality of other
- ORB resources. Also, <a
- href="../Options.html#-ORBpoalock"><b>-ORBpoalock</b></a>
- and <a
- href="../Options.html#-ORBpoamgrlock"><b>-ORBpoamgrlock</b></a>
- control locking in the POA and POA manager, respectively,
- according to application needs.</li>
-
- <li>Began the process of changing the internals of TAO to use
- the "underbar" namespace mapping. This should be completed
- soon.</li>
-
- <li>The ORBs manipulation of object keys and object ids is now
- consistent. Canonically, everything is managed as an opaque
- sequence of octets. Conversion to/from strings is permitted,
- with non-printables turning into a trigraph <b>\hl</b> where
- <b>h</b> is the high nibble digit in hex, and <b>l</b> is the
- low nibble in hex.</li>
-
- <li><code>CORBA_ORB::run()</code> should be able to be called
- multiply in the same execution path now.</li>
-
- <li>Fixed the <b>LOCATION_FORWARD</b> capabilities to work as
- described in the CORBA 2.1 and the POA specification.</li>
-
- <li>Fixed problem in the IDL Cubit example which caused the
- server to dump core when dealing with <code>_out</code> sequence
- types <em>ONLY</em> when compiled with G++. It seems that G++
- decided to interpret the expression <code>output == 0</code>
- (where <code>output</code> is of type <code>vector_out</code>)
- differently from Sun's C++ compiler.</li>
-
- <li>Fixed a slight problem in <a href="#hostfix">other recent
- work</a> where a servant listening on <code>INADDR_ANY</code>
- reported an IOR with address <tt>0.0.0.0</tt>. It now reports
- the default hostname instead.</li>
-
- <LI>Working version of TAO on VxWorks with VME transport.</li>
-
- <li>TAO now reacts gracefully in the face of a non-existent
- <code>svc.conf</code> file or simply missing entries in the
- file. It logs a warning message and uses default values
- versions of items which it would normally obtain from the
- Service Repository.</li>
-
- <li><a name="hostfix"></a>Fixed problem where object references
- for objects dynamically created within a server do not have
- proper host, at least if the desired host was specified using <a
- href="../Options.html#-ORBhost"><b>-ORBhost</b></a> on the
- command line.</li>
-
- <li>Added support for <a
- href="../Options.html#-ORBsndsock"><b>-ORBsndsock</b></a> and <a
- href="../Options.html#-ORBrcvsock"><b>-ORBrcvsock</b></a> ORB
- options. See <a href="../Options.html">options
- documentation</a> for details.</li>
-
- <li>Added support for pre-established connections using the <a
- href="../Options.html#-ORBpreconnect"><b>-ORBpreconnect</b></a>
- option. This allows connections to be esablished before any
- CORBA requests are made. See <a href="../Options.html">options
- documentation</a> for details.</li>
-
- <li>Eliminated deprecated <b>-OAxxx</b> options parsed by the
- Object Adapter <code>init</code> method but no longer used by
- part of the ORB.</li>
-
- <li>Made argument parsing within the ORB and POA consume the
- arguments it parses.</li>
-
- <li>Placed an optimization in IIOP::Profile that should speed up
- invocations on the client side rather substantially. This was
- done by caching an instance of <code>ACE_INET_Addr</code> in
- the private portion of <code>Profile</code> because the cost
- of constructing one for every invocation (in
- <code>TAO_GIOP_Invocation::start</code>) was simply
- enormous--the construction was something like 100 cycles on
- Solaris. This is all because deep down this ends up calling
- <code>gethostbyname()</code>, which can be very costly. Of
- course, this is platform-dependent, so the improvements may
- not be as great on a different platform.</li>
-
- <li>Got rid of need to have compile in TSS ORB Core
- (<code>-DTAO_HAS_TSS_ORBCORE</code>). This is accomplished by
- having a Resource Factory (<code>TAO_Resource_Factory</code>)
- singleton which the ORB Core consults in order to get pointers
- to resources. The Resource Factory can be configured to
- return pointers from thread-specific storage, or
- process-global storage. By doing this, the ORB Core is
- shielded from ever having to know whether or not its resources
- are global or not.</li>
-
- <li>Made all command-line like options look like the
- standard-professed options, i.e., <b>-ORBxxx</b> or
- <b>-OAxxxx</b>.</li>
-
- <li>Moved ORB option parsing into
- <code>TAO_ORB_Core::init()</code> rather than in
- <code>ORB_init()</code>.</li>
-
- <li>Define <code>_FAR</code> for all cases as an interim fix
- for LynxOS.</li>
-
- <li>Fixed TAO so that the default port of 5001 is defined in
- <code>orb_core.h</code> config header somewhere rather than in
- <code>orbobj.cpp</code>, and use <b>MAXHOSTNAMELEN</b> ACE
- constant for the hostname buffer.</li>
-
- <li>Eliminated need for <code>CORBA::Object</code> to keep a
- pointer to its orb sitting around anywhere.</li>
-
- <LI>Tested <code>CORBA_ORB::shutdown()</code> as a manner in
- which a thread of control can request that
- <code>CORBA_ORB::run()</code> should return and no longer
- service requests. It only honors a
- <em>wait_for_completion</em> argument of <b>FALSE</b> right
- now because we haven't fully explored the issues which
- surround doing all the completion.</li>
-
- <li>Created a brief section in <a
- href="../../TAO-INSTALL.html"><code>$TAO_ROOT/TAO-INSTALL.html</code></a>
- that <em>briefly</em> documents installation on Unix
- platforms. There is also a brief section which documents
- issues that apply across ALL platforms, such as the fact that
- TAO and its application will likely not work well if your ACE
- is linked through Orbix, VisiBroker, or another ORB. <a
- href="../../ChangeLog">ChangeLog</a> discovery attribution for
- this should go to <em>Steve Wohlever
- &lt;wohlever@mitre.org&gt;</em>.</li>
-
- <LI>Implemented <code>CORBA_ORB::shutdown()</code> as a manner
- in which a thread of control can request that
- <code>CORBA_ORB::run()</code> should return and no longer
- service requests.</li>
-
- <LI>Validated movement of Strategy Connector into
- ORB&nbsp;Core.</LI>
-
- <li>Tested and commited <code>Connector::connect_n</code>
- changes to ACE</code>.</li>
-
- <li>ACE & TAO compiling cleanly using Sun's CC on Solaris and
- G++ on Linux. Also, the ACE tests run properly.</li>
-
- <li>Use <code>truss</code> to verify for <a
- href="mailto:PAUL.G.WEHLAGE@cdev.com">Paul Wehlage</a> that
- TAO really uses <code>select</code> vs. <code>recv</code> for
- <b>-R</b> vs. <b>-T</b>.</li>
-
- <li>Renamed <code>boa.*</code> to <code>poa.*</code>.</li>
-
- <LI>Renamed following files:&nbsp;Orb_Core.*&nbsp;->orb_core.*
- &amp;&nbsp;orbobj.* -> corba_orb.*.</LI>
-
- <LI>The lock used in <code>giop.cpp:626</code> originally
- appeared in the IIOP-1.4 code base. Its purpose was to
- protect access to the <code>fwd_profile</code> data member.
- The original features are available, but they are currently
- not used because none of our concurrency models present a
- thread-unsafe condition. The <a
- href="../../ChangeLog">ChangeLog</a> presents more details
- on the subject.</li>
-
- <li>Fixed problems seen by <a
- href="mailto:brian.r.mendel@boeing.com">Brian Mendel</a> of
- Boeing where the Cubit server application was crashing in
- <code>TAO_OA_Connection_Handler::handle_message</code> when it
- was trying to call <code>CORBA::POA::handle_request</code>
- through a NULL <code>root_poa</code> pointer. The NULL
- pointer resulted from the inadvertent use of the
- Thread-per-Connection concurrency model, which is currently
- incompatible with the ORB-per-thread model. It was not caught
- because the change is normally done in configuration files
- parsed by the Service Configurator, and VxWorks requires
- special code in that area which was not tested until Boeing
- got hold of the code.</li>
-
- <li>Clean up build under g++. All 'function used before
- declared inline' warnings have been eliminated. Also, all
- other warnings (except for one that is nearly unavoidable)
- have been eliminated.
- </li>
-
- <LI>Removed BOA and ROA names from the ORB.</LI>
-
- <LI>Changed <code>CORBA_ORB::open()</code> to return an error
- status (first cut at this already there--needs to be checked
- out).</LI>
-
- <LI>Added README file to multiCubit test.</li>
-</UL><p>
-
-<b>Ongoing Work:</b>
-
-<UL>
- <LI>Verify ACE & TAO on Linux using g++, Solaris using CC, and
- Solaris using g++.</LI>
-
- <LI>Use Purify to eliminate straggling problems.</LI>
-
- <LI>Clean up the internals and analyze for performance
- bottlenecks using Quantify.</LI>
-
- <li>Resolve <code>// @@</code> comment blocks. These are
- questions or comments placed in the code by a reviewer
- (typically Doug).</li>
-
- <li>Make more and better documentation on the internals of
- TAO.</li>
-</UL><p>
-
-<b>Current Work:</b>
-
-<UL>
- <LI>
- <p>Verify that, in the ORB-per-thread concurrency model,
- it's possible to have a factory in each thread that creates
- a client and returns an object reference to that client
- within that thread. This is different from the model that
- Sumedh originally had where the factory was trying to turn
- out a client in a separate thread/ORB combination.
-
- <p>There is no application which attempts this at the moment,
- so both a client and a server will need to be manufactured.
- Using existing Cubit-like examples (that poor app is so
- weary) should reduce development time to a couple of
- hours.
-
- <p>The real strategy/solution is to make
- <code>CORBA::Object</code> not keep a pointer to its orb
- sitting around anywhere. It should only get it when it needs
- it. This should not be difficult to change.
- </LI>
-</UL><p>
-
-<b>Critical Work:</b>
-
-<UL>
- <LI>Support new concurrency models, e.g., Thread-per-Request,
- thread pool, etc..</LI>
-
-</UL>
-
-<b>Future work:</b>
-<UL>
- <li>Performance optimizations, such as:
- <ol>
- <li>Strategize the connection management scheme so that we
- don't always have to pay the price of a look up in the
- connection cache. Basically, we want to be able to "hold" a
- service handler for a string of requests. And, of course,
- do this in a portable manner.</LI>
-
- <li>Replace all uses of <code>new</code> and
- <code>delete</code> with allocators that can be put into
- TSS. The main motivation for this is to eliminate lock
- contention when multiple threads need to allocate/deallocate
- memory, however it might also be possible to substitute an
- allocator better-tuned to an application's specific
- usage.</li>
- </ol>
- </li>
-
- <li>Robustness improvements:
- <ol>
- <li>Improve connection cache so that it won't crash when there
- are no more slots or sockets.</li>
-
- <li>Add an option to the ORB core, e.g.,
- <b>-ORBnameservicetimeout</b>, to allow specification of an
- upper bound on the itime-to-wait for a response from the
- ORB's multicast "search" for a running name server.</li>
- </ol>
- </li>
-
- <li>New features:
- <ol>
- <li>Implement <code>ORB::perform_work</code> and
- <code>ORB::work_pending</code> so that <code>ORB::run</code>
- <em>could</em> be implemented in terms of them.</li>
-
- <li>Improve the <code>Service Configurator</code> service
- entry faking on VxWorks.</li>
-
- <li>Integrate with realtime upcalls (RTUs).</li>
-
- </ol>
- </li>
-
- <li>Internal restructuring:
- <ol>
- <li>Remove <code>_FAR</code> from all code.</li>
-
- <li>Rework underlayment to eliminate <code>IUnknown</code> class.</li>
-
- <li>Create some sort of internal "request" object which
- carries enough context to suport deferred method invocation
- such as one might find in the thread-pool approach or
- wherever queuing might occur.</li>
-
- <li>Rethink the entire memory allocation model used by the
- ORB. The current one from SSIIOP may no longer be suitable
- for our purposes.</li>
- </ol>
- </li>
-
- <li>Documentation:
- <ol>
- <li>Update ORB Patterns paper to reflect the latest TAO has to
- offer. Specifically
- <ul>
- <li>sections on the Abstract Factory and Concurrency
- strategies need to be updated, and the entire paper needs to
- be reviewed for accuracy w.r.t the current TAO.</li>
- <li>Metrics must be re-computed.</li>
- <li>Tighten existing discussions.</li>
- <li>Add information on new patterns (such as TSS) which
- have been used since initial work.</li>
- </ul>
-
- <li>Make the section in <a
- href="../../TAO-Install.html"><code>$TAO_ROOT/TAO-Install.html</code></a>
- that documents installation on Unix platforms more complete.</li>
-
- </ol> </li>
-
- <li>Miscellany:
- <ol>
- <LI>Assist in porting higher level services (e.g., <A
- HREF="#eventchannel">Event Channel</A>) to TAO.</LI>
-
- <li>Compile and verify ACE and TAO on Linux using the Kuck and
- Associates, Inc. (KAI) compiler tools.</li>
- <LI>CORBA::TypeCode is causing a memory leak. Since objects
- of this type are rather static in nature, this is
- currently not a big deal. However, it should be fixed
- soon. </LI>
- <LI>CORBA_Exception::Release is not working correctly as the
- memory is never really freed. </LI>
- </ol>
- </li>
-
-
- <li>Potential Optimizations:
- <ol>
- <LI>There is a certain amount of overhead introduced by the
- use of TSS Singletons. TSS singletons are very
- convenient as the variable does not have to be passed
- from function to function. Even though sort of access is
- generally acceptable, the overhead of this approach
- maybe too high when used in code which is executed
- frequently (e.g., during an upcall). This critical code
- may have to be restructured not to use TSS Singletons
- because of the high overhead associated with it. </LI>
- </ol>
- </li>
-
-
-</UL>
-
-</body>
-</html>