diff options
author | Angelo Corsaro <angelo@icorsaro.net> | 2000-10-04 17:11:27 +0000 |
---|---|---|
committer | Angelo Corsaro <angelo@icorsaro.net> | 2000-10-04 17:11:27 +0000 |
commit | 7547e55e7d76eedb3b4bd7a3dc60a6138bbc2648 (patch) | |
tree | e26b715a9e662b7911e1f66dd609e1776e5378c3 /TAO | |
parent | 38bfe4889c93e12a4752ab104c298227f4eaaf71 (diff) | |
download | ATCD-7547e55e7d76eedb3b4bd7a3dc60a6138bbc2648.tar.gz |
ChangeLogTag: Wed Oct 04 12:01:47 2000 Angelo Corsaro <corsaro@cs.wustl.edu>
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 16 | ||||
-rw-r--r-- | TAO/docs/releasenotes/RTCorba.html | 354 | ||||
-rw-r--r-- | TAO/docs/releasenotes/index.html | 131 | ||||
-rw-r--r-- | TAO/tests/Exposed_Policies/Policy_Tester.cpp | 2 | ||||
-rw-r--r-- | TAO/tests/Exposed_Policies/Policy_Verifier.cpp | 2 | ||||
-rw-r--r-- | TAO/tests/Exposed_Policies/server.cpp | 8 |
6 files changed, 376 insertions, 137 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 7ffcee4bd1f..1c0e326e33f 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,17 @@ +Wed Oct 04 12:01:47 2000 Angelo Corsaro <corsaro@cs.wustl.edu> + + * docs/releasenotes/index.html + * docs/releasenotes/RTCorba.html + + Added documentation relative to RT-CORBA implementation, as well as the + development status, and updated the release notes to point to the new document. + + * tests/Exposed_Policies/Policy_Tester.cpp: + * tests/Exposed_Policies/Policy_Verifier.cpp: + * tests/Exposed_Policies/server.cpp: + + Removed ";" after the ACE_RCSID to avoid warning on certaion platform. + Tue Oct 3 22:04:08 2000 Jeff Parsons <parsons@cs.wustl.edu> * TAO_IDL/be/be_interface.cpp: @@ -7,7 +21,7 @@ Tue Oct 3 22:04:08 2000 Jeff Parsons <parsons@cs.wustl.edu> * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: * TAO_IDL/be_include/be_interface.h: - Shouldn't have been included in + Shouldn't have been included in Tue Oct 3 19:20:14 2000 Jeff Parsons <parsons@cs.wustl.edu> diff --git a/TAO/docs/releasenotes/RTCorba.html b/TAO/docs/releasenotes/RTCorba.html new file mode 100644 index 00000000000..c7d5bef45e5 --- /dev/null +++ b/TAO/docs/releasenotes/RTCorba.html @@ -0,0 +1,354 @@ +<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> +<html> + +<head> +<title>RT CORBA</title> +</head> + +<body> +<!-- $Id$ --> +<h1 align="center">Real-Time CORBA</h1> +<p align="center"><i>Last Update October 4, 2000</i></p> +<p align="left">This documents keeps track of the TAO's <a href="#RT Corba Development Status">Real-Time CORBA Development Status</a> , and a description of the <a href="#Release Notes">Release +Notes</a> for our implementation. For any comment or question on a specific aspect of RT CORBA you can contact the responsible as listed in the <a href="#RT Corba Development Status">Real-Time CORBA Development Status</a>, +or you can contact one of us: <a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a>, <a href="mailto:irfan@cs.wustl.edu">Irfan + Pyrali</a>, <a href="mailto:corsaro@cs.wustl.edu">Angelo + Corsaro</a>.</p> +<h1 align="center"><a name="RT Corba Development Status">RT Corba Development Status</a></h1> +<p>The scope of this brief document is to keep track of the progress of the +RT-CORBA implementation, and to let the user understand what is already in place +what will be soon available and what will not be supported. <a href="#Table 1 - Status of the feature described in the RT CORBA Spec.">Table +1</a> contains a detailed list of the features that are described by the RT-CORBA +spec. and their status respect to our implementation. <a href="#Table 2 - Feature needed to Enable RT-CORBA">Table +2</a> contains features that are not described in the RT-CORBA spec. but +that are needed to "enable" our RT-CORBA implementation, and at last <a href="#Table 3 - Issue to be shortly addressed">Table +3</a> contains a list of issues that should be addressed soon.</p> +<p> + </p> +<p style="margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 5" align="center"><b><a name="Table 1 - Status of the feature described in the RT CORBA Spec.">Table +1 -</a></b><a name="Table 1 - Status of the feature described in the RT CORBA Spec."> +Status of the feature described in the RT CORBA Spec. </a></p> +<div align="center"> + <center> + <table border="1" width="663" height="216"> + <tr> + <td width="236" align="center" height="19"><b>Feature</b></td> + <td width="151" align="center" height="19"><b>Reference</b></td> + <td width="115" align="center" height="19"><b>Status</b></td> + <td width="133" align="center" height="19"><b> Contact</b></td> + </tr> + <tr> + <td width="236" align="center" height="1">Real-Time ORB</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.1</td> + <td width="115" align="center" height="1">Done</td> + <td width="133" align="center" height="1"><a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a></td> + </tr> + <tr> + <td width="236" align="center" height="16">Real-Time POA</td> + <td width="151" align="center" height="16">ptc/99-05-03 sec. 4.2</td> + <td width="115" align="center" height="16">Done</td> + <td width="133" align="center" height="16"><a href="mailto:irfan@cs.wustl.edu">Irfan + Pyrali</a></td> + </tr> + <tr> + <td width="236" align="center" height="38">CORBA Priority & Priority + Mappings</td> + <td width="151" align="center" height="38"> + <p align="center">ptc/99-05-03 sec. 4.4, sec. 4.5</td> + <td width="115" align="center" height="38">Done </td> + <td width="133" align="center" height="38"><a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a></td> + </tr> + <tr> + <td width="236" align="center" height="19">Real-Time Current</td> + <td width="151" align="center" height="19">ptc/99-05-03 sec. 4.6</td> + <td width="115" align="center" height="19">Done</td> + <td width="133" align="center" height="19"><a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a></td> + </tr> + <tr> + <td width="236" align="center" height="19">Real-Time CORBA Priority Models</td> + <td width="151" align="center" height="19">ptc/99-05-03 sec. 4.7</td> + <td width="115" align="center" height="19">Done</td> + <td width="133" align="center" height="19"><a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a></td> + </tr> + <tr> + <td width="236" align="center" height="1">Priority Transforms</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.8</td> + <td width="115" align="center" height="1">Not Supported </td> + <td width="133" align="center" height="1">-</td> + </tr> + <tr> + <td width="236" align="center" height="1">Mutex Interface</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.9</td> + <td width="115" align="center" height="1">Not Supported </td> + <td width="133" align="center" height="1">-</td> + </tr> + <tr> + <td width="236" align="center" height="1">Thread Pools</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.10</td> + <td width="115" align="center" height="1">Due - ???</td> + <td width="133" align="center" height="1"><a href="mailto:irfan@cs.wustl.edu">Irfan + Pyrali</a></td> + </tr> + <tr> + <td width="236" align="center" height="1">Implicit & Explicit Binding</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.11</td> + <td width="115" align="center" height="1">Due Oct. 13 2K</td> + <td width="133" align="center" height="1"><a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a></td> + </tr> + <tr> + <td width="236" align="center" height="1">Priority Banded Connections</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.12</td> + <td width="115" align="center" height="1">Done</td> + <td width="133" align="center" height="1"><a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a></td> + </tr> + <tr> + <td width="236" align="center" height="1">Private Connection Policy</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.13</td> + <td width="115" align="center" height="1">Due Oct. 13 2K</td> + <td width="133" align="center" height="1"><a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a></td> + </tr> + <tr> + <td width="236" align="center" height="1">Protocol Configuration</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.15</td> + <td width="115" align="center" height="1">Done</td> + <td width="133" align="center" height="1"><a href="mailto:marina@cs.wustl.edu">Marina + Spivak</a></td> + </tr> + </table> + </center> +</div> +<p> </p> +<p><b>Real-Time ORB - </b>Extension to the CORBA::ORB interface that provides operations to create and destroy other constituents of a RT ORB.</p> +<p><b>Real Time POA </b><b> - </b>RT extension of the traditional POA that +provides additional operation to support object level priority and +"understand" the RT Policies defined in ptc/99-05-03. This interface +is derived from the POA interface so it support all the semantics prescribed for +a non RT-POA. </p> +<p><b>CORBA Priority & Priority Mappings - </b>RT-CORBA Priority have the +intent of shielding the user from the different priority scheme that a RTOS +might use, providing a uniform representation system wide. RT-CORBA Priority +Mappings take care of mapping RTCORBA::Priority into native priorities. Right +now to scheme are implemented and respectively the <i>Linear</i> and <i>Direct</i>.</p> +<p><b>Real-Time Current - </b> The RTCORBA::Current interface is derived from +CORBA::Current, and provide access to the CORBA Priority of the current thread. +Real Time CORBA Priority can be associated with the current thread by using this +interface.</p> +<p><b>Real-Time CORBA Priority Models - </b>Real-Time CORBA supports two models +for the coordination of priorities across a system, that let set the priority at +which a servant executes. This two different model are <i>Client Propagated +Priority Model</i> and <i>Server Declared Priority Model</i>.<i> </i></p> +<p><b>Priority Transforms - </b>Priority Transforms allow the application +designer to implement RT-CORBA system using priority models different from +either the Client Propagated or Server Declared. Priority Transforms are user +provided functions that map one RTCORBA::Priority value to another +RTCORBA::Priority value.</p> +<p><b>Mutex Interface - </b>Real-Time CORBA defines a Mutex interface, and two operation in the RTORB interface for creating and destroying such mutex. This mutex +should have the same priority inheritance scheme used by the ORB.</p> +<p><b>Thread Pools - </b>Real-Time CORBA define an interface for creating +Thread Pools, with or without lanes, and for creating Thread Pools Priorities. +Lanes are just sub-sets of threads at assigned different RTCORBA::Priority +values. The only feature that won't be supported is the <i>Request Buffering</i> +(see sec. 4.10.3).</p> +<p><b>Implicit & Explicit Binding - </b>Provide control on when a binding is +made on a object reference. In particular a call to <font face="Courier New">validate_connection +</font>force the binding to an object reference to be made as <i>explicit +binding</i>.</p> +<p><b> Priority Banded Connections - </b>Real-Time CORBA defines priority +bands that are in turn used to serve request depending on the priority model +used by the target object.</p> +<p><b>Private Connection Policy - </b>This policy allows a client to obtain a +private transport connection which will not be shared with other client-server +connections.</p> +<p><b>Protocol Configuration - </b>Enables the selection and configuration of +the protocols on the client and server side of the ORB.</p> +<p align="center" style="margin-bottom: 5"><a name="Table 2 - Feature needed to Enable RT-CORBA">Table +2 - Feature needed to Enable RT-CORBA</a></p> +<div align="center"> + <center> + <table border="1" width="663" height="122"> + <tr> + <td width="236" align="center" height="19"><b>Feature</b></td> + <td width="151" align="center" height="19"><b>Reference</b></td> + <td width="115" align="center" height="19"><b>Status</b></td> + <td width="133" align="center" height="19"><b> Contact</b></td> + </tr> + <tr> + <td width="236" align="center" height="16">Collocation</td> + <td width="151" align="center" height="16">Not yet available</td> + <td width="115" align="center" height="16">Due Oct. 9 2K</td> + <td width="133" align="center" height="16"><a href="mailto:corsaro@cs.wustl.edu">Angelo + Corsaro</a></td> + </tr> + <tr> + <td width="236" align="center" height="14">Policy Streaming</td> + <td width="151" align="center" height="14">ptc/99-05-03 orbos/98-05-05</td> + <td width="115" align="center" height="14">Done</td> + <td width="133" align="center" height="14"><a href="mailto:corsaro@cs.wustl.edu">Angelo + Corsaro</a></td> + </tr> + <tr> + <td width="236" align="center" height="1">Invocation Timeout</td> + <td width="151" align="center" height="1">ptc/99-05-03 sec. 4.14 orbos/98-05-05</td> + <td width="115" align="center" height="1">Done</td> + <td width="133" align="center" height="1"><a href="mailto:coryan@ece.uci.edu">Carlos O'Ryan</a></td> + </tr> + </table> + </center> +</div> +<p align="center"> </p> +<p><b>Collocation - </b>A new collocation scheme has been designed and is in its +last stage of development. The collocation scheme has been changed because the +selection of the right proxy to use to perform a call, now has to be taken on a +call-per-call basis, to avoid interference between thread priorities. In +designing the new scheme we tried to reduce the memory footprint and the +overhead that the new scheme needs to introduce.</p> + +<p><b>Policy Streaming - </b>Different policies defined by the RT-CORBA Spec. +need to be exposed to the client by embeddeding those into the IOR. +This facilities were added to those policies.</p> + +<p><b>Invocation Timeout - </b>Allows the setting of timeout that expire if an invocation doesn't complete in a given amount of time.</p> + +<p> </p> +<p> </p> +<p align="center" style="margin-bottom: 5"><a name="Table 3 - Issue to be shortly addressed">Table +3 - Issue to be shortly addressed</a></p> +<div align="center"> + <center> + <table border="1" width="546" height="77"> + <tr> + <td width="126" align="center" height="19"><b>Issue</b></td> + <td width="152" align="center" height="19"><b>Status</b></td> + <td width="89" align="center" height="19"><b> Contact</b></td> + </tr> + <tr> + <td width="126" align="center" height="1"> + <p align="center">Factoring of TAO's Protocol Policies</td> + <td width="152" align="center" height="1">???</td> + <td width="89" align="center" height="1">???</td> + </tr> + <tr> + <td width="126" align="center" height="1">Profile Mangement</td> + <td width="152" align="center" height="1">???</td> + <td width="89" align="center" height="1">???</td> + </tr> + <tr> + <td width="126" align="center" height="1">RT CORBA Example/Test</td> + <td width="152" align="center" height="1">???</td> + <td width="89" align="center" height="1">???</td> + </tr> + <tr> + <td width="126" align="center" height="1">RT-TAO Performance</td> + <td width="152" align="center" height="1">???</td> + <td width="89" align="center" height="1">???</td> + </tr> + </table> + </center> +</div> +<p align="left"> </p> +<p align="left"><b>Factoring of TAO's Protocol Policies -</b></p> +<p align="left"><b>Profile Management - </b>The Profile management is right now +quite nasty. The class interface are pretty counter-intuitive, and the code that +deal with profile needs to be redesigned and re-implemented.</p> +<p align="left"><b>RT CORBA Example Test - </b>Examples and Tests need to be +written to show how to use RT CORBA's features, and to massively test the +behavior of the new stuff.</p> +<p align="left"><b>Performance - </b>Performance tests needs to performed on TAO +to see the impact of the changes and to early individuate critical path and +bottlenecks.</p> +<p align="left"> </p> + +<h1 align="center"><a name="Release Notes">Release Notes</a></h1> +<p>We are currently working on implementing RT CORBA 1.0 specification in TAO. Our design is an extension of the <em>endpoint-per-priority</em> architecture mentioned in the <tt>Recently +Completed Work</tt> section below. In this design, codenamed <em>reactor-per-lane</em>, each threadpool lane owns a set of I/O resources, i.e., <tt>Reactor</tt>, <tt>Acceptor</tt>, +and <tt>Connector_Registry.</tt> Each request is serviced by a single thread without context switches, i.e., the same thread performs I/O and runs the servant code. +<p>Below there is a list of feature recently added to TAO, and in also a brief description of the main feature that characterize certain feature related to our implementation of +RT-CORBA.</p> +<ul> + <li> + <p style="line-height: 150%">Client Protocol Policy. + <li> + <p style="line-height: 150%">Priority Banded Connections. + <li> + <p style="line-height: 150%">TAO's RTCORBA Documentation web pages. + <li> + <p style="line-height: 150%">POA Threadpools & SERVER_DECLARED Priority Model.</li> + <li> + <p style="line-height: 150%">CLIENT_PROPAGATED Priority Model.</li> + <li> + <p style="line-height: 150%">Server Protocol Policy. + <li> + <p style="line-height: 150%">RTORB, RTCurrent and ProrityMappingManger interfaces. + <li> + <p style="line-height: 150%">Support for client-exposed policies. + <li> + <p style="line-height: 150%">All RTCORBA, Policy and POA interfaces converted to local. + <li> + <p style="line-height: 150%">Collocation-related classes are restructured to support RTCORBA. + <li> + <p style="line-height: 150%">Implemented Policy framework (defined in the Messaging specification, used in RT CORBA). + <li> + <p style="line-height: 150%">Added support for Real-time CORBA Priority and implemented two Priority Mappings: <tt>Linear</tt> and <tt>Direct</tt>. + <li> + <p style="line-height: 100%">Added support for end-to-end CORBA request priority preservation. This is achieved through <em>multiple listening endpoint</em> architecture, a.k.a. <em>endpoint-per-priority</em>, + on the server and a Client Priority Policy on the client. Following is a brief description of how this is implemented. + <p style="line-height: 100%">Server ORB uses multiple transport endpoints to accept connections from clients. Each transport endpoint has a priority, which is the priority of the + thread(s) servicing the endpoint as well as all connections it accepts. When a server ORB creates an IOR for one of its objects, it embeds all of the server's listening endpoints + along with their priorities into the object's IOR. Then, a client ORB selects the priority that best matches client's need (as specified by the Client Priority Policy) from those + offered by the server, and uses the corresponding transport endpoint specified by the server to obtain the desired level of service. + <p style="line-height: 100%">For more details and performance results for <em>endpoint-per-priority</em> architecture, see <a href="http://www.cs.wustl.edu/~marina/boeing.pdf">this + paper.</a> See <tt>TAO/tao/TAO.pidl</tt> for Client Priority Policy interface definition, and <tt>TAO/tests/Endpoint_Per_Priority</tt> for example of using priority preservation + in TAO. + <p style="line-height: 100%"> + <li> + <p style="line-height: 100%">Implemented reliable one-way requests, i.e., SyncScope Policy from the Messaging specification. This is relevant to RT CORBA because of the following + feature: setting SyncScope Policy to SYNC_NONE enables buffering of one-way requests in the client ORB. Request buffering can be used to optimize message throughput, possibly at + the expense of latency. ORB buffering behavior is controlled by the Buffering Constraint Policy, which is described next. +</ul> +<p style="line-height: 100%"> +<ul> + <li> + <p style="line-height: 100%">Added support for buffered one-way and asynchronous requests in the client ORB. Buffering Constraint Policy gives users control over queueing and + flushing of requests in the ORB. A combination of the following conditions for initiating buffer flush can be specified using this policy: + <ul> + <li> + <p style="line-height: 100%">Timeout value expires. + <li> + <p style="line-height: 100%">Max byte count is exceeded. + <li> + <p style="line-height: 100%">Explicit flush by the user. + <li> + <p style="line-height: 100%">Max message count is exceeded, or + <li> + <p style="line-height: 100%">ORB shutdown.</li> + </ul> + <p style="line-height: 100%">Also supported are out-of-band requests, i.e., requests that bypass buffers and are delivered to the server immediately. + <p style="line-height: 100%">Buffering Constraint Policy is a TAO-specific feature. See <tt>TAO/tao/TAO.pidl</tt> for policy interface definition and <tt>TAO/examples/Buffered_Oneways</tt> + and <tt>TAO/examples/Buffered_AMI</tt> directories for its use. For motivation and performance of buffered one-ways see <a href="http://www.cs.wustl.edu/~marina/boeing.pdf">this + paper.</a></p> + </li> +</ul> +<p style="line-height: 100%">Known issues: +<ul> + <li> + <p style="line-height: 100%">Location forwarding does not work properly with <em>endpoint-per-priority</em> model.</li> +</ul> +<p style="line-height: 100%">Future work: +<ul> + <li> + <p style="line-height: 100%">Provide server-side RT CORBA implementation using a <em>queue-per-lane</em> approach. In this approach each threadpool lane owns a queue, while I/O + resources are being shared among all the threadpool lanes of the same priority within the server. Strategize TAO to use either <em>queue-per-lane</em> or <em>reactor-per-lane</em> + implementation, and compare the two.</li> +</ul> + +</body> + +</html> diff --git a/TAO/docs/releasenotes/index.html b/TAO/docs/releasenotes/index.html index 7cef12777a7..f079b8388cb 100644 --- a/TAO/docs/releasenotes/index.html +++ b/TAO/docs/releasenotes/index.html @@ -29,7 +29,7 @@ release</a> of <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>: <a href="#pp">Pluggable Protocols</a></li> <li> -<a href="#rtcorba">Real-Time CORBA</a></li> +<a href="RTCorba.html">Real-Time CORBA</a></li> <li> <a href="#poa">Portable Object Adapter (POA)</a></li> @@ -134,7 +134,6 @@ release</a> of <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>: </TABLE> -</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> @@ -779,134 +778,6 @@ and transport protocols for a given platform.</li> <p> <hr> -<h3> <a NAME="rtcorba"></a>Real-Time CORBA </h3> - -<h4> Last Updated: 08/25/2000 </h4> - -Points of contact: <a href="mailto:marina@cs.wustl.edu">Marina -Spivak</a> and <a href="mailto:irfan@cs.wustl.edu">Irfan -Pyarali</a> -<P> - -We are currently working on implementing RT CORBA 1.0 specification in -TAO. Our design is an extension of the <em>endpoint-per-priority</em> -architecture mentioned in the <tt>Recently Completed Work</tt> section -below. In this design, codenamed <em>reactor-per-lane</em>, each -threadpool lane owns a set of I/O resources, i.e., <tt>Reactor</tt>, -<tt>Acceptor</tt>, and <tt>Connector_Registry.</tt> Each request is -serviced by a single thread without context switches, i.e., the same -thread performs I/O and runs the servant code. -<P> - -Work in Progress: -<ul> - -<li> Client Protocol Policy (expected ~ September 10) </li> -<p> -<li> Priority Banded Connections (expected ~ September 10) </li> -<p> -<li> TAO's RTCORBA Documentation web pages (expected ~ September 10) </li> -<p> -<li> POA Threadpools & SERVER_DECLARED Priority Model </li> -</ul> - -Recently Completed Work: -<ul> - -<li> CLIENT_PROPAGATED Priority Model </li> -<p> -<li> Server Protocol Policy </li> -<p> -<li> RTORB, RTCurrent and ProrityMappingManger interfaces </li> -<p> -<li> Support for client-exposed policies </li> -<p> -<li> All RTCORBA, Policy and POA interfaces converted to local </li> -<p> -<li> Collocation-related classes are restructured to support RTCORBA </li> -<p> - - -<li> Implemented Policy framework (defined in the Messaging -specification, used in RT CORBA). </li> -<p> -<li> Added support for Real-time CORBA Priority and implemented two -Priority Mappings: <tt>Linear</tt> and <tt>Direct</tt>. </li> -<p> -<li> Added support for end-to-end CORBA request priority preservation. -This is achieved through <em>multiple listening endpoint</em> architecture, -a.k.a. <em>endpoint-per-priority</em>, on the server and a Client Priority -Policy on the client. Following is a brief description of how this is -implemented. -<p> -Server ORB uses multiple transport endpoints to accept -connections from clients. Each transport endpoint has a priority, -which is the priority of the thread(s) servicing the endpoint as well -as all connections it accepts. When a server ORB creates an IOR for -one of its objects, it embeds all of the server's listening endpoints -along with their priorities into the object's IOR. Then, a client ORB -selects the priority that best matches client's need (as specified by -the Client Priority Policy) from those offered by the server, and uses -the corresponding transport endpoint specified by the server to obtain -the desired level of service. -<p> -For more details and performance results for -<em>endpoint-per-priority</em> architecture, see <a -href="http://www.cs.wustl.edu/~marina/boeing.pdf">this paper.</a> See -<tt>TAO/tao/TAO.pidl</tt> for Client Priority Policy interface -definition, and <tt>TAO/tests/Endpoint_Per_Priority</tt> for -example of using priority preservation in TAO. </li> -<p> -<li> Implemented reliable one-way requests, i.e., SyncScope Policy from -the Messaging specification. This is relevant to -RT CORBA because of the following feature: setting SyncScope Policy to -SYNC_NONE enables buffering of one-way requests in the client ORB. -Request buffering can be used to optimize message throughput, possibly -at the expense of latency. ORB buffering behavior is controlled by -the Buffering Constraint Policy, which is described next. </li> -<p> -<li> Added support for buffered one-way and asynchronous requests in -the client ORB. Buffering Constraint Policy gives users control over -queueing and flushing of requests in the ORB. A combination of the -following conditions for initiating buffer flush can be specified -using this policy: - <ul> - <li> Timeout value expires. </li> - <li> Max byte count is exceeded. </li> - <li> Explicit flush by the user. </li> - <li> Max message count is exceeded, or </li> - <li> ORB shutdown.</li> - </ul> -<p> -Also supported are out-of-band requests, i.e., requests that bypass -buffers and are delivered to the server immediately. -<p> -Buffering Constraint Policy is a TAO-specific feature. See -<tt>TAO/tao/TAO.pidl</tt> for policy interface definition and -<tt>TAO/examples/Buffered_Oneways</tt> and -<tt>TAO/examples/Buffered_AMI</tt> directories for its use. For -motivation and performance of buffered one-ways see <a -href="http://www.cs.wustl.edu/~marina/boeing.pdf">this paper.</a> -</ul> - -Known issues: -<ul> -<li> Location forwarding does not work properly with -<em>endpoint-per-priority</em> model.</li> -</ul> - -Future work: -<ul> -<li> Provide server-side RT CORBA implementation using a -<em>queue-per-lane</em> approach. In this approach each threadpool -lane owns a queue, while I/O resources are being shared among all the -threadpool lanes of the same priority within the server. Strategize TAO -to use either <em>queue-per-lane</em> or <em>reactor-per-lane</em> -implementation, and compare the two. -</ul> - -<hr> - <h3> <a NAME="poa"></a>Portable Object Adapter (POA)</h3> diff --git a/TAO/tests/Exposed_Policies/Policy_Tester.cpp b/TAO/tests/Exposed_Policies/Policy_Tester.cpp index b16457d9bef..c400bdf4e7a 100644 --- a/TAO/tests/Exposed_Policies/Policy_Tester.cpp +++ b/TAO/tests/Exposed_Policies/Policy_Tester.cpp @@ -13,7 +13,7 @@ #include "tao/RT_Policy_i.h" //#include "tao/PortableServer/POA.h" -ACE_RCSID (tao, Policy_Tester, "$Id$"); +ACE_RCSID (tao, Policy_Tester, "$Id$") Policy_Tester::Policy_Tester (void) : rt_object_properties_ (0), diff --git a/TAO/tests/Exposed_Policies/Policy_Verifier.cpp b/TAO/tests/Exposed_Policies/Policy_Verifier.cpp index 3b98a80c913..140dc39bb96 100644 --- a/TAO/tests/Exposed_Policies/Policy_Verifier.cpp +++ b/TAO/tests/Exposed_Policies/Policy_Verifier.cpp @@ -1,6 +1,6 @@ #include "Policy_Verifier.h" -ACE_RCSID (tao, Policy_Verifier, "$Id$"); +ACE_RCSID (tao, Policy_Verifier, "$Id$") Policy_Verifier::Policy_Verifier (void) diff --git a/TAO/tests/Exposed_Policies/server.cpp b/TAO/tests/Exposed_Policies/server.cpp index 971d4bf927c..dbffd628798 100644 --- a/TAO/tests/Exposed_Policies/server.cpp +++ b/TAO/tests/Exposed_Policies/server.cpp @@ -11,10 +11,10 @@ // // -// -- App. Specific Include -- +// -- App. Specific Include -- #include "Policy_Tester.h" -ACE_RCSID(tao, server, "$Id$"); +ACE_RCSID(tao, server, "$Id$") int @@ -25,7 +25,7 @@ main (int argc, char *argv[]) ACE_TRY { Policy_Tester policy_tester; - + policy_tester.init (argc, argv, ACE_TRY_ENV); ACE_TRY_CHECK; @@ -38,7 +38,7 @@ main (int argc, char *argv[]) ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, ACE_TEXT ("CORBA Exception Raised.")); return 1; - } return 1; + } ACE_ENDTRY; |