summaryrefslogtreecommitdiff
path: root/ACE/bin/FOCUS/docs/FOCUS.html
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/bin/FOCUS/docs/FOCUS.html')
-rw-r--r--ACE/bin/FOCUS/docs/FOCUS.html165
1 files changed, 165 insertions, 0 deletions
diff --git a/ACE/bin/FOCUS/docs/FOCUS.html b/ACE/bin/FOCUS/docs/FOCUS.html
new file mode 100644
index 00000000000..ca0c85a0a28
--- /dev/null
+++ b/ACE/bin/FOCUS/docs/FOCUS.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<!-- $Id$ -->
+ <title>FOCUS</title>
+</head>
+<body bgcolor="#ffffff" link="#000fff" vlink="#ff0f0f" text="#000000">
+<hr>
+<p></p>
+<h2 align="center">Feature Oriented Customizer for Middleware (FOCUS)</h2>
+<h3>Table of Contents</h3>
+<ul>
+ <li><a href="#MOT">Introduction</a> </li>
+ <li><a href="#FCS-OVR">FOCUS Options overview</a> </li>
+ <li><a href="#FCS-USAGE">FOCUS Sample Usage</a> </li>
+ <li><a href="#FCS-ORG">FOCUS Structure & Organization</a> </li>
+ <li><a href="#FCS-ORG">Extending FOCUS</a> </li>
+</ul>
+
+<hr>
+<h3><b><a name="MOT">Introduction</a></b></h3>
+TAO is a highly flexible ORB that contains a wide range of ORB
+configuration options. One or more of these options can be combined
+to meet various application requirements, such as low-latency,
+predictable real-time behavior, or small memory footprint. TAO's ORB
+configuration options are managed by an object-oriented framework
+within the ORB Core. TAO ORB internally uses several objects called
+<b>Resources</b>, such
+as a <em>reactor</em> framework that demultiplexes new connection and
+data requests from a client or <em>pluggable protocol</em> framework
+to seamlessly work across different protocols. <b>Strategies</b>, are
+objects that use the <b>Resource</b> entities to perform various ORB tasks,
+such as connection management, concurrency, and demultiplexing.
+The <b>Service Configurator</b> is a framework that can be used
+to statically and dynamically configure components into middleware and
+applications.
+
+Most often, applications that run on top of TAO use only one concrete type
+of each resource. For example, predominantly TAO applications use the IIOP
+protocol for communication. In this case, the underlying framework that
+realizes the feature can be specialized to remove dynamic dispatching
+overheads. The Feature Oriented Customizer (FOCUS) tool provides a
+generic approach to enable middleware developers to specialize middleware
+Frameworks when the concrete resource type is known a priori.
+FOCUS provides an XML based transformation engine, where the
+specialization transformations are captured in XML file and a
+weaver specializes the code. Some important points to note about FOCUS
+and specialization:
+<ul>
+ <li>It does not modify an interface. So no application level changes are
+ necessary.
+ </li>
+ <li>Once a framework has been customized using FOCUS for a concrete component,
+ other components do not work. For example, specializing the protocol
+ framework with IIOP, precludes the ability to plug-in other protocol
+ implementations.
+ </li>
+ <li>It provides a source-to-source transformations that require re-compiling
+ the source.
+ </li>
+</ul>
+
+<hr>
+<h3><b><a name="FCS-OVR">FOCUS Options Usage</a></b></h3>
+<table border="2" cellpadding="0" cellspacing="2">
+ <tbody>
+ <tr>
+ <th>Option</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>--prefix-path</td>
+ <td>prefix-path to the ACE+TAO source distribution location. For example,
+ in most situations this path is same as the ACE_ROOT environment
+ variable.
+ </td>
+ </tr>
+ <tr>
+ <td>--reactor-spl <em>select-st</em>, <em>select-mt</em>, <em>tp-reactor</em></td>
+ <td>Option to specialize the reactor framework with the
+ concrete reactor type.
+ <p>select-st: select reactor which no locking. Single threaded case.</p>
+ <p>select-mt: select reactor with locking enabled, multi-threaded case.
+ </p>
+ <p>tp-reactor: Thread-pool reactor</p>
+ </td>
+ </tr>
+ <tr>
+ <td>--protocol-spl <em>iiop</em></td>
+ <td>Option to specialize the pluggable protocol framework in TAO for the
+ IIOP protocol.
+ </tr>
+ <tr>
+ <td>--messaging-spl <em>giop</em></td>
+ <td>Option to specialize the messaging strategy in TAO with GIOP
+ messaging protocol.
+ </td>
+ </tr>
+ <tr>
+ <td>--wait-strategy <em>rw</em></td>
+ <td>Specialize the Wait Strategy with the concrete Wait Strategy in TAO.
+ This specialization corresponds to the <em>-ORBWaitStrategy</em>
+ option in TAO.
+ </td>
+ </tr>
+ <td>--output-prefix</td>
+ <td>Option to copy over the specialized files to an output directory. This
+ option works only when a single specialization is chose. If multiple
+ specializations are chosen, then this copies the files corresponding
+ to the last specialization.
+ </td>
+ </tbody>
+</table>
+
+<hr>
+<h3><b><a name="FCS-USAGE">FOCUS Sample Usage</a></b></h3>
+cmd>$ACE_ROOT/bin/FOCUS/FOCUS.pl --reactor-spl=select-st \
+ --prefix-path=/build/arvindk/ACE_wrappers
+ --output-prefix=/build/arvindk/spl-files
+
+<hr>
+<h3><b><a name="FCS-ORG">FOCUS Tool Organization</a></b></h3>
+FOCUS tool structure is organized as follows:
+<ul>
+ <li>Parser directory has all parser related modules</li>
+ <li>specializations: Rules data base that has the XML files required for
+ performing the individual specialization transformations. For each
+ specialization we have the following sub directories:
+ <ul>
+ <li>Reactor_Family: Specializations for ACE_Reactor family</li>
+ <li>Protocol_Family: Specializations for TAO's protocol family</li>
+ <li>Messaging_Strategy: Specializations for TAO's Messaging Strategy</li>
+ <li>Wait_Strategy: Specializations for TAO's Wait strategies</li>
+ </ul>
+ </li>
+</ul>
+
+A detailed overview of the FOCUS specialization language, that specifies the
+different types for specialization transformations supported in FOCUS is
+discussed here: {To be updated shortly!}
+
+<hr>
+<h3><b><a name="FCS-ORG">Extending FOCUS</a></b></h3>
+To add a new specializations, to FOCUS, one needs to do the following:
+<ol>
+ <li>Use the FOCUS specification language to model the different specialization
+ Transformations required. Add this to the repository under
+ FOCUS/specializations. Current convention is to use a directory for each
+ family or specific type of specialization and add specialization files
+ for each type in the family.
+ </li>
+ <li>Annotate the middleware source code where ever applicable to perform the
+ transformations.
+ </li>
+ <li>Modify the FOCUS.pl script to add a specific option similar to --reactor-spl
+ option for executing the specializations. Also update the specialization
+ table that maps the command-line option to the appropriate specialization
+ file within the repository.
+ </li>
+</ol>
+
+<hr>
+
+</body>
+</html>