Merge pull request #2309 from mitza-oci/warnings
[ACE_TAO.git] / TAO / docs / releasenotes / amh.html
blob1989df3b73c51e1dd8d8f0a63d866c18ffddeb29
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <html>
3 <head>
4 <title>AMH Status</title>
5 <!-- -->
6 </head>
7 <body bgcolor="#FFFFFF" text="#000000">
9 <h3>TAO's Asynchronous Method Handling (AMH) Feature</h3>
10 Point of contact: <a href="mailto:coryan@uci.edu">Carlos O'Ryan, </a>
11 <a href="mailto:mayur@ics.uci.edu">Mayur Deshpande</a>
13 <p> The purpose of this document is to provide a guide to using the AMH
14 capability available in TAO. This capability is not specified by any
15 CORBA specification (as of date). This document lists the motivation for AMH,
16 how to use it and its current implementation status. </p>
18 <HR SIZE=4 WIDTH="100%">
21 <h3>Context</h3>
22 For many types of distributed systems, the CORBA asynchronous method
23 invocation
24 <a href="index.html/#ami"> (AMI) </a>
25 mechanism can improve concurrency, scalability, and
26 responsiveness significantly. AMI allows clients to invoke multiple
27 two-way requests without waiting for responses. The time normally
28 spent waiting for replies can therefore be used to perform other
29 useful work. The TAO asynchronous method handling (AMH) is a
30 mechanism, which extends the concepts of AMI from clients to
31 servers. Servers with AMH capability can return immediately
32 from (potentially) long, blocking requests. This makes the
33 servers capable of higher throughput. For a detailed description
34 for the motivation and potential use-cases of AMH, please refer to
35 <a href="http://www.dre.vanderbilt.edu/~schmidt/PDF/AMH.pdf">AMH-Motivation. </a>
37 <HR SIZE=4 WIDTH="100%">
40 <h3>Using AMH</h3>
41 Servers that want to take advantage of AMH capability must use
42 AMH-servants derived from AMH-skeletons. Invoking the
43 <a href="index.html#idl">IDL-Compiler </a>
44 with the "-GH" option causes the IDL-Compiler to generate
45 AMH-skeletons for all interfaces in the ".idl" file. The signatures
46 of the AMH-methods differ from the original interfaces as per the
47 rules described in
48 <a href="http://www.dre.vanderbilt.edu/~schmidt/PDF/DOA-02.pdf"">AMH-In-Detail. </a>
49 Servants derived from the AMH-skeletons are registered with the POA in the usual manner
50 and appear to clients as "normal" servants for the corresponding
51 interfaces; Thus even while being transparent to the client, these
52 servants are now capable of handling requests asynchronously.
53 AMH-servants can be registered in any POA and can intermix with
54 "normal" servants in the same POA. The granularity of AMH is at
55 the interface level and not at the method level; Thus for an interface
56 compiled with the "-GH" option, all operations in that interface are
57 asynchronous. Currently, AMH doesn't work in conjunction with
58 <a href="index.html#interceptor">Interceptors </a>
59 and behaviour is undefined if both are used together.
61 <HR SIZE=4 WIDTH="100%">
64 <h3>Current Status</h3>
65 <b>(As of March 3rd, 2002)</b>
66 <br>
67 <P>
68 <b>Completed:</b>
69 <ul>
70 <li>Changes to ORB for asynchronous upcalls.</li>
71 <li>Generation of AMH-skeletons.</li>
72 <li>Generation of AMH ResponseHandlers.</li>
73 <li>AMH Exceptions.</li>
74 <li>Fix the narrow method bug for AMH skeletons : Fixed
75 <li>Sending intelligent exception codes back to client in case
76 something nasty happens in the AMH server.</li>
77 <li>Example of using AMH available at ACE_wrappers/TAO/examples/AMH/Sink_Server.</li>
78 <li>Test for AMH : ACE_wrappers/TAO/performance-tests/Latency/AMH</li>
79 <li>Test for AMH Exceptions : ACE_wrappers/TAO/tests/AMH_Exceptions</li>
80 </ul>
81 </P>
83 <HR SIZE=4 WIDTH="100%">
86 <h3>Credits</h3>
87 Original idea first proposed by
88 <a href="mailto:coryan@uci.edu">Carlos O'Ryan </a>
89 and changes to ORB for AMH first attempted by
90 <a href="mailto:brucetrask@aol.com">Bruce Trask. </a>
91 First go to get the IDL-Compiler to generate AMH code attempted by
92 <a href="mailto:brunsch@doc.ece.uci.edu"> Darrell Brunsch. </a>
93 ORB changes for AMH as they stand today put in by
94 <a href="mailto:mayur@ics.uci.edu">Mayur Deshpande. </a>
95 Second go at getting IDL-compiler to generate code attempted by Mayur and
96 <a href="mailto:parsons@cs.wustl.edu">Jeff Parsons. </a>
97 Getting the IDL-Compiler beast to generate the right AMH code finally
98 achieved by Carlos.
100 <HR SIZE=4 WIDTH="100%">
103 </body>
104 </html>