You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ch...@apache.org on 2005/02/17 09:41:38 UTC

svn commit: r154141 [2/4] - in webservices/axis/trunk/java/dev/scratch/prototype2/xdocs: ./ Axis 2 OM Tutorial_files/ Axis2 Archteture Guide_files/ images/

Added: webservices/axis/trunk/java/dev/scratch/prototype2/xdocs/Axis2ArchitectureGuide.html
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/xdocs/Axis2ArchitectureGuide.html?view=auto&rev=154141
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/xdocs/Axis2ArchitectureGuide.html (added)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/xdocs/Axis2ArchitectureGuide.html Thu Feb 17 00:41:34 2005
@@ -0,0 +1,1726 @@
+<html>
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=Generator content="Microsoft Word 11 (filtered)">
+<title>Axis 2 Architecture Guide</title>
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;}
+@font-face
+	{font-family:Verdana;
+	panose-1:2 11 6 4 3 5 4 4 2 4;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{margin:0in;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:12.0pt;
+	font-family:"Times New Roman";}
+h1
+	{margin-top:12.0pt;
+	margin-right:0in;
+	margin-bottom:3.0pt;
+	margin-left:0in;
+	line-height:normal;
+	page-break-after:avoid;
+	font-size:16.0pt;
+	font-family:Arial;
+	font-weight:bold;}
+h2
+	{margin-top:12.0pt;
+	margin-right:0in;
+	margin-bottom:3.0pt;
+	margin-left:0in;
+	line-height:normal;
+	page-break-after:avoid;
+	font-size:14.0pt;
+	font-family:Arial;
+	font-weight:bold;
+	font-style:italic;}
+h3
+	{margin-top:12.0pt;
+	margin-right:0in;
+	margin-bottom:3.0pt;
+	margin-left:0in;
+	line-height:normal;
+	page-break-after:avoid;
+	font-size:13.0pt;
+	font-family:Arial;
+	font-weight:bold;}
+p.MsoToc1, li.MsoToc1, div.MsoToc1
+	{margin:0in;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:12.0pt;
+	font-family:"Times New Roman";}
+p.MsoToc2, li.MsoToc2, div.MsoToc2
+	{margin-top:0in;
+	margin-right:0in;
+	margin-bottom:0in;
+	margin-left:12.0pt;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:12.0pt;
+	font-family:"Times New Roman";}
+p.MsoToc3, li.MsoToc3, div.MsoToc3
+	{margin-top:0in;
+	margin-right:0in;
+	margin-bottom:0in;
+	margin-left:24.0pt;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:12.0pt;
+	font-family:"Times New Roman";}
+p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
+	{margin:0in;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:10.0pt;
+	font-family:"Times New Roman";}
+p.MsoFooter, li.MsoFooter, div.MsoFooter
+	{margin:0in;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:12.0pt;
+	font-family:"Times New Roman";}
+a:link, span.MsoHyperlink
+	{color:blue;
+	text-decoration:underline;}
+a:visited, span.MsoHyperlinkFollowed
+	{color:purple;
+	text-decoration:underline;}
+p
+	{margin-top:6.0pt;
+	margin-right:0in;
+	margin-bottom:12.0pt;
+	margin-left:18.75pt;
+	line-height:18.0pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman";}
+pre
+	{margin:0in;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:10.0pt;
+	font-family:"Courier New";}
+p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
+	{margin:0in;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:10.0pt;
+	font-family:"Times New Roman";
+	font-weight:bold;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+	{margin:0in;
+	margin-bottom:.0001pt;
+	line-height:normal;
+	font-size:8.0pt;
+	font-family:Tahoma;}
+span.msoins0
+	{text-decoration:underline;}
+span.msodel0
+	{color:red;
+	text-decoration:line-through;}
+ins
+	{text-decoration:none;}
+span.msoIns
+	{text-decoration:underline;}
+span.msoDel
+	{text-decoration:line-through;
+	color:red;}
+@page Section1
+	{size:595.35pt 842.0pt;
+	margin:28.35pt 28.35pt 28.35pt 56.7pt;}
+div.Section1
+	{page:Section1;}
+ /* List Definitions */
+ ol
+	{margin-bottom:0in;}
+ul
+	{margin-bottom:0in;}
+-->
+</style>
+
+</head>
+
+<body lang=EN-US link=blue vlink=purple>
+
+<div class=Section1>
+
+<h1 style='text-align:justify'><a name="_Toc95620155"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>Axis 2 Architecture
+Guide</span></a></h1>
+
+<h1 style='text-align:justify'><a name="_Toc95620156"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>Table of contents</span></a></h1>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620155">Axis 2
+Architecture Guide<span style='color:windowtext;display:none;text-decoration:
+none'>. i</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620156">Table of
+contents<span style='color:windowtext;display:none;text-decoration:none'>. i</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620157">1.1<span
+style='color:windowtext;text-decoration:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Introduction<span style='color:windowtext;display:none;text-decoration:
+none'>. 1</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620158">1.2
+Architecture overview<span style='color:windowtext;display:none;text-decoration:
+none'>.. 1</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620159">1.3 Axis2 sub
+components<span style='color:windowtext;display:none;text-decoration:none'>. 1</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620160">2.0 Axis
+Engine<span style='color:windowtext;display:none;text-decoration:none'>. 1</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620161">3.0 Engine
+Registry<span style='color:windowtext;display:none;text-decoration:none'>. 2</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620162">4.0 Message Context<span
+style='color:windowtext;display:none;text-decoration:none'> 3</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620163">5.0
+Deployment<span style='color:windowtext;display:none;text-decoration:none'> 3</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620164"><span
+lang=EN>5.1 Module deployment:</span><span style='color:windowtext;display:
+none;text-decoration:none'> 3</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620165"><span
+lang=EN>5.2 Service Deployment</span><span style='color:windowtext;display:
+none;text-decoration:none'> 3</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620166"><span
+lang=EN>5.4 Scheduler</span><span style='color:windowtext;display:none;
+text-decoration:none'> 5</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620167"><span
+lang=EN>5.5 Listener</span><span style='color:windowtext;display:none;
+text-decoration:none'> 5</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620168"><span
+lang=EN>5.6 Repository</span><span style='color:windowtext;display:none;
+text-decoration:none'>. 5</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620169"><span
+lang=EN>5.7 DeploymentEngine</span><span style='color:windowtext;display:none;
+text-decoration:none'>. 6</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620170"><span
+lang=EN>5.8 DeploymentParser</span><span style='color:windowtext;display:none;
+text-decoration:none'> 6</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620171"><span
+lang=EN>5.8 Deployment Engine initialization</span><span style='color:windowtext;
+display:none;text-decoration:none'>. 6</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620172"><span
+lang=EN>5.9 Adding new web service</span><span style='color:windowtext;
+display:none;text-decoration:none'>. 7</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620173">6.0 AXIOM –
+AXIs Object Model<span style='color:windowtext;display:none;text-decoration:
+none'> 8</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620174">6.1
+Introduction<span style='color:windowtext;display:none;text-decoration:none'>.
+8</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620175">6.2 High
+Level Architecture<span style='color:windowtext;display:none;text-decoration:
+none'>. 8</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620176">7.0 Handler
+Frame work and Phase Rules<span style='color:windowtext;display:none;
+text-decoration:none'>. 9</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620177">7.1 Phase<span
+style='color:windowtext;display:none;text-decoration:none'>. 9</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620178">7.2 Handler
+chain<span style='color:windowtext;display:none;text-decoration:none'>. 10</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620179">8.0 WSDL
+Object model.<span style='color:windowtext;display:none;text-decoration:none'>
+10</span></a></span></p>
+
+<p class=MsoToc1><span class=MsoHyperlink><a href="#_Toc95620180">9.0 Client
+API.<span style='color:windowtext;display:none;text-decoration:none'> 10</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620181">9.1 sendAsync
+Invocation<span style='color:windowtext;display:none;text-decoration:none'>. 12</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620182">9.2 send
+Invocation<span style='color:windowtext;display:none;text-decoration:none'>. 12</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620183">9.3 sendReceive
+Invocation<span style='color:windowtext;display:none;text-decoration:none'>. 12</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620184">9.4
+sendReceiveAsync Invocation<span style='color:windowtext;display:none;
+text-decoration:none'>. 13</span></a></span></p>
+
+<p class=MsoToc2><span class=MsoHyperlink><a href="#_Toc95620185">9.5
+sendReceiveAsync Invocation with One way transport<span style='color:windowtext;
+display:none;text-decoration:none'> 14</span></a></span></p>
+
+<p class=MsoNormal style='text-align:justify'><span style='font-size:14.0pt'>&nbsp;</span></p>
+
+<span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all
+style='page-break-before:always'>
+</span>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<h1 style='margin-left:21.0pt;text-align:justify;text-indent:-21.0pt'><a
+name="_Toc95620157"><span style='font-size:14.0pt;font-family:"Times New Roman";
+font-weight:normal'>1.1</span></a><span style='font-size:7.0pt;font-family:
+"Times New Roman";font-weight:normal'>&nbsp;&nbsp; </span><span
+style='font-size:14.0pt;font-family:"Times New Roman";font-weight:normal'>Introduction</span><span
+style='font-size:14.0pt;font-family:"Times New Roman";font-weight:normal'> </span></h1>
+
+<p class=MsoNormal style='text-align:justify'>This document describes some of
+the rationale behind the architecture and design of Axis2. </p>
+
+<h1 style='text-align:justify'><a name="_Toc95620158"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>1.2 Architecture
+overview</span></a><span style='font-size:14.0pt;font-family:"Times New Roman";
+font-weight:normal'> </span></h1>
+
+<p class=MsoNormal style='text-autospace:none'>Axis consists of several sub
+components working together, as we shall see later. In this section we will
+give you an overview of how the core of Axis works.</p>
+
+<p class=MsoNormal style='text-autospace:none'>&nbsp;</p>
+
+<h1 style='text-align:justify'><a name="_Toc95620159"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>1.3 Axis2 sub components</span></a></h1>
+
+<p class=MsoNormal style='text-autospace:none'>Axis2 consists of the following
+high level sub components, and those are described one by one in the document. </p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;text-autospace:
+none'><span style='font-family:Symbol'>·</span><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Engine</p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;text-autospace:
+none'><span style='font-family:Symbol'>·</span><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Engine Registry</p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;text-autospace:
+none'><span style='font-family:Symbol'>·</span><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Message Context</p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;text-autospace:
+none'><span style='font-family:Symbol'>·</span><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Deployment</p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;text-autospace:
+none'><span style='font-family:Symbol'>·</span><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Axis Object Model (AXIOM)</p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;text-autospace:
+none'><span style='font-family:Symbol'>·</span><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Handler framework and Phase rules </p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;text-autospace:
+none'><span style='font-family:Symbol'>·</span><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>WSDL Object model.</p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;text-autospace:
+none'><span style='font-family:Symbol'>·</span><span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span>Client API.</p>
+
+<p class=MsoNormal style='margin-left:21.0pt;text-autospace:none'>&nbsp;</p>
+
+<h1 style='text-align:justify'><a name="_Toc95620160"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>2.0 Axis Engine</span></a></h1>
+
+<p class=MsoNormal style='text-align:justify'>The Exaction Model or the Engine
+in Axis terminology, addresses how the components of Apache Axis2 are executed
+or how control is passed from one component to another. The Axis Execution
+Model does not assume any specific “<i>Message Exchange Patterns</i>” or <i>“synchronous,
+Asynchronous behavior”</i> in its<span class=msoins0><span style='text-decoration:
+none'><span class=msoIns><ins cite="mailto:%20" datetime="2005-02-11T11:28"> </ins></span></span></span>execution.</p>
+
+<p class=MsoNormal style='text-align:justify;text-indent:.5in'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>The Axis Engine is built on top
+of two <i>flows,</i> they are called <i>in-flow</i> and <i>out-flow </i>respectively
+(in addition to that there is a flow called fault flow which is used when the
+engine gets processing errors). Each flow encompasses a set of components,
+namely<span class=msodel0><span class=msoDel><del cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T09:57"> </del></span></span>&nbsp;“<i>Handlers”</i>, “<i>Transport
+Senders”</i>, <i>“Transport Receivers”</i>, “<i>Receivers”</i>, “<i>Senders</i>”
+and <i>“Providers”.</i></p>
+
+<p class=MsoNormal><span class=msoins0><i><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:31">&nbsp;</ins></span></span></i></span></p>
+
+<p class=MsoNormal><span class=msoins0><b><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:31">Handlers</ins></span></span></b></span></p>
+
+<p class=MsoNormal><s><span style='color:red'>·</span></s>The “<i>Handlers”</i>
+are the extension mechanism for Axis and represents an <i>“atomic unit of
+execution logic”</i> which can be configured with the deployment. Each handler
+is executed in the order specified by the configuration at the time of
+deployment. </p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:34">&nbsp;</ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><b><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:34">Transport
+Senders</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:35">/</ins></span></span></b></span><b>Receivers</b></p>
+
+<p class=MsoNormal><s><span style='color:red'>·</span></s>The <i>“Transport
+senders</i>” and “<i>Transport Receivers</i>” handle the sending and receiving
+of a SOAP message via specific transport. </p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:35">&nbsp;</ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><b><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:35">Senders/</ins></span></span></b></span><b>Receivers</b></p>
+
+<p class=MsoNormal><s><span style='color:red'>·</span></s>The <i>“Senders”</i>
+and “<i>Receivers”</i> control the Message Exchange patterns and Synchronous
+and Asynchronous behavior.</p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:35">&nbsp;</ins></span></span></span></p>
+
+<p class=MsoNormal><b>Provider</b></p>
+
+<p class=MsoNormal><s><span style='color:red'>·</span></s>The <i>“Provider”</i>
+takes care of the real <i>“java implementation” </i>invocation of the Web
+Service (this does not refer to the java object, but refers to the
+implementation of the web service in the form of java, that can be a java
+class, XSLT engine ETC...).&nbsp;&nbsp;&nbsp; </p>
+
+<p class=MsoNormal style='margin-left:.25in'>&nbsp;</p>
+
+<p class=MsoNormal><img border=0 width=576 height=120
+src="Axis2%20Archteture%20Guide_files/image001.gif"></p>
+
+<p class=MsoNormal>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>The Axis2 Execution Model is not
+aware of the Message Exchange patterns or the Synchronous or Asynchronous
+Behavior. All it does is to construct an inflow or out flow or both, by picking
+the right components using WSDL or Deployment information and executing
+them.&nbsp; </p>
+
+<p class=MsoNormal style='text-align:justify'><span class=msoins0><span
+style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:18">&nbsp;</ins></span></span></span></p>
+
+<p class=MsoNormal style='text-align:justify'>Implementation<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:18"> of the above
+logical flow is </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:19">achieved</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:18">
+using </ins></span></span></span>an<span class=msoins0><span style='text-decoration:
+none'><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:18"> architecture that consists of “Handlers</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:19">”,
+“</ins></span></span></span>Phases<span class=msoins0><span style='text-decoration:
+none'><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:19">” and </ins></span></span></span>Execution Chain<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:19">.&nbsp; </ins></span></span></span></p>
+
+<p class=MsoNormal style='text-align:justify'><span class=msoins0><span
+style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:35">&nbsp;</ins></span></span></span></p>
+
+<p class=MsoNormal style='text-align:justify'><span class=msoins0><b><span
+style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:35">Phases</ins></span></span></b></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:28">The
+Phases </ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:30">are Mechanism</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25"> to specify the
+order of the handlers without knowing the *absolute position* of each handler
+in the </ins></span></span></span>Handler Chain<span class=msoins0><span
+style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">. </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:40">The
+Phase is a defined area (place holder for the handlers) in the Execution Chain.</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:41"> </ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">For
+an example </ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:36">say the </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">handler </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:36">Developer
+want</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:37">s</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:36"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">(RM),
+</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:37">the Handler </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">to run after the
+&quot;Encryption</ins></span></span></span>” and<span class=msoins0><span
+style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25"> before the</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:36"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">&quot;</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:37">T</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">ransaction&quot;.
+But </ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:37">as the </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:30">Handler</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:37">is
+</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:25">A can be </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:38">used in</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">
+different Web Services </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:38">the developer </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">do
+not know the absolute position the </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:38">Handler at the
+Execution Chain</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:25">.</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:28"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:39">Phases
+will handle</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:38"> this by </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:39">following</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:38"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:39">declaration.
+</ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:39">&lt;handler
+name=&quot;A&quot; ..... before=&quot;Transaction&quot;
+after=&quot;Encryption&quot; ../&gt;</ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:28">Then
+the Axis</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T12:29"> </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:39">will</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:28">
+make sure the rules are met</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:40">, but please note
+the support for the before and after is not implemented in M1. </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:28">&nbsp;</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:39"> </ins></span></span></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25"><br>
+</ins></span><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:41">As
+far as the implementation is concerned a </ins></span></span></span>Phase<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:41"> is </ins></span></span></span>an<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:41"> ordered collection
+of Handlers that are arranged </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:42">according</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:41"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:42">to
+the Phase rules. This can be viewed as </ins></span></span></span>an<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:42"> “<i>improved</i>” </ins></span></span></span>Handler
+Chain<span class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:42"> from Axis 1.x.</ins></span></span></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25"><br>
+<span class=msoins0><span style='text-decoration:none'>&nbsp;</span></span></ins></span></p>
+
+<p class=MsoNormal><span class=msoins0><b><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:40">Module</ins></span></span></b></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">&nbsp;</ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:26">- </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">Module
+is a logical collection of Handlers that act together but expected to have
+little bit more than being </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:43">just</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">
+“Package”. One such possibility is WSDL “Code Generation” extension</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:43">s</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">.
+For an example the users would like to have ability to have Service ref</ins></span></span></span>er<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25"> a module and have
+it enabled as the j2ee does.</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:27"> </ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">&lt;service
+name=&quot;foo&quot;&gt;</ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">&lt;module
+ref=&quot;Authentication&quot;/&gt;</ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:25">&lt;/service&gt;</ins></span></span></span></p>
+
+<p class=MsoNormal style='text-align:justify'><span class=msoins0><span
+style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:43">Then the service foo
+has the authentication enabled, but those things are not in the lines of M1 </ins></span></span></span>release<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T12:43">.</ins></span></span></span></p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal>&nbsp;</p>
+
+<h1 style='text-align:justify'><a name="_Toc95620161"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>3.0 Engine Registry</span></a></h1>
+
+<p style='margin-left:0in'><span lang=EN style='color:black'>The Engine
+registry is the runtime registry of the current state of the Axis engine. It
+contains the real objects like Handlers etc. By changing them at runtime the
+user can change the engine configuration. </span></p>
+
+<p style='margin-left:0in'><span lang=EN style='color:black'>The deployment
+provides the implementation of </span><span class=msodel0><span lang=EN><span
+class=msoDel><del cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:05">this
+interface. </del></span></span></span><span class=msoins0><span lang=EN
+style='color:black;text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:01">Engine Registry out
+of the Deployment </ins></span></span></span><span lang=EN style='color:black'>Descriptors<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:01"> and keep the Engine
+Registry in sync with the </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:03">Deployment
+configuration </ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:01">repository</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:03">. In this way the Engine
+does not aware about the deployment </ins></span></span></span>mechanism<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:03"> and all the Engine
+knows in that there is </ins></span></span></span>an<span class=msoins0><span
+style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:03"> Engine </ins></span></span></span>Registry<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:03"> that is </ins></span></span></span>maintained<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:03">. </ins></span></span></span></span></p>
+
+<p style='margin-left:0in'><span lang=EN style='color:black'>Default<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:09"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:06">Engine
+Registry</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:09"> implementation </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:06">is synchr</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:08">o</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:06">nized
+</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:08">, and this is necessary for the support the hot
+deployment. </ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:09">It is possible to have not synchronized Engine</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:10">
+give that the hot deployment feature is not disabled. </ins></span></span></span></span></p>
+
+<p style='margin-left:0in'><span class=msodel0><span lang=EN><span
+class=msoDel><del cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:10">&nbsp;</del></span></span></span></p>
+
+<p class=MsoNormal>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'><span class=msodel0><span
+class=msoDel><del cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:10">&nbsp;&lt;&lt;&lt;
+Srinath will complete &gt;&gt;&gt;</del></span></span></p>
+
+<h1 style='text-align:justify'><a name="_Toc95620162"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>4.0 <span
+class=msodel0><span class=msoDel><del cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:11">Message </del></span></span>Context</span></a></h1>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:39">The
+Axis2 has three Contexts, Global context, Session Contexts and the </ins></span></span></span>Message
+Context<span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:44"> and
+they are the placeholders for the information in the Axis2</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:39">.</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:45">
+They follow the mediator pattern and all the </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:46">components</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:45">
+interact</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:46"> and share the information with</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:45"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:46">each
+other though the </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:48">three</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:47">
+context</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:50">s</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:47">. </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:49">The
+contexts enable the Axis to be </ins></span></span></span>built<span
+class=msoins0><span style='text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:49"> on loosely coupled
+Components. </ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:45">&nbsp;</ins></span></span></span></p>
+
+<p class=MsoNormal><span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:39">&nbsp;</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:42">Most</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:39"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:40">components</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:39">
+of the </ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:40">Axis2 are stateless across the two invocations of
+the </ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:41">component</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:40">. </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:41">(The
+Engine Registry is part of the Global Context.) . The developer should store
+all st</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:42">a</ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:41">tes in the </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:42">in
+one of the context and the All the context are </ins></span><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:43">accessible</ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:42"> </ins></span><span
+class=msoIns><ins cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:43">across
+the Message context which would be pass through the Handlers in the Execution
+Chain.</ins></span><span class=msoIns><ins cite="mailto:Srinath%20Perera"
+datetime="2005-02-15T10:44"> </ins></span></span></span><span class=msodel0><span
+class=msoDel><del cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:11">&lt;&lt;&lt;
+Srinath will complete &gt;&gt;&gt;</del></span></span></p>
+
+<p class=MsoNormal><a name="_Toc95620163"><span class=msoins0><b><span
+style='font-size:14.0pt;text-decoration:none'><span class=msoIns><ins
+cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:11">&nbsp;</ins></span></span></b></span></a></p>
+
+<h1 style='text-align:justify'><span style='font-size:14.0pt;font-family:"Times New Roman";
+font-weight:normal'>5.0 Deployment</span></h1>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN style='color:black'>There
+are two types of deployment in Axis2, namely; service deployment and module
+deployment. </span></p>
+
+<h2><a name="_Toc95620164"><span lang=EN style='font-size:12.0pt;font-family:
+"Times New Roman";font-style:normal'>5.1 Module deployment:</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN style='color:black'>Axis
+2 provides a J2EE like deployment (An axis archive file has to be created and
+dropped into the correct directory) for both modules and services. A user can
+deploy a module or a service as an “.aar” file (module1.aar, service1.aar).
+Module hot deployment will not be supported in M1, but will be supported in
+later releases. When the axis engine is started all the .aar files in the
+WEB-INF/Repository/modules will get deployed. But if someone wants to add a new
+module or service, a restarting of the engine is required, after putting the
+new .aar file in the above mentioned folder.</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN style='font-size:
+9.5pt;font-family:Verdana;color:black'>&nbsp;</span></p>
+
+<h2><a name="_Toc95620165"><span lang=EN style='font-size:12.0pt;font-family:
+"Times New Roman";font-style:normal'>5.2 Service Deployment</span></a><span
+lang=EN style='font-size:12.0pt;font-family:"Times New Roman";font-style:normal'>
+</span></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN style='color:black'>One
+of the key improvements introduced with Axis 2 is the capability to “hot deploy”
+web services. And in this M1 release only a J2EE like deployment is supported.
+That is a user has to create an axis archive file that includes all the files
+that he/she wants and drop that archive file into the
+WEB-INF/Repository/services directory. The following three features are
+associated with service deployment; </span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:66.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='font-family:Symbol;color:black'>·</span><span lang=EN style='font-size:
+7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+lang=EN style='color:black'>Hot Deployment </span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:66.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='font-family:Symbol;color:black'>·</span><span lang=EN style='font-size:
+7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+lang=EN style='color:black'>Hot un deployment </span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:66.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='font-family:Symbol;color:black'>·</span><span lang=EN style='font-size:
+7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
+lang=EN style='color:black'>Hot update </span></p>
+
+<p class=MsoNormal style='margin-bottom:3.0pt;text-align:justify'><span
+lang=EN style='color:black'>Hot Deployment is all about the ability to deploy a
+new web service while the axis engine is up and running.&nbsp; </span></p>
+
+<p class=MsoNormal style='margin-bottom:3.0pt;text-align:justify'><span
+lang=EN style='color:black'>Hot un-deployment is the ability to remove a web
+service (services) while the system is running.</span></p>
+
+<p class=MsoNormal style='margin-bottom:3.0pt;text-align:justify'><span
+lang=EN style='color:black'>Hot update is the ability to deploy a new version
+of an existing web service without restarting the server. It is handled as un
+-deployment followed by a hot deployment. </span></p>
+
+<p class=MsoNormal style='margin-bottom:3.0pt;text-align:justify'><span
+lang=EN style='color:black'>The directory structure to which modules and
+services should deployed to be: </span></p>
+
+<ul style='margin-top:0in' type=disc>
+ <li class=MsoNormal style='color:black;margin-bottom:3.0pt;text-align:justify'><span
+     lang=EN>WEB-INF/<span class=msoins0><span style='text-decoration:none'><span
+     class=msoIns><ins cite="mailto:Srinath%20Perera"
+     datetime="2005-02-15T10:52"> </ins></span></span></span></span><span
+     class=msodel0><span lang=EN><span class=msoDel><del
+     cite="mailto:Srinath%20Perera" datetime="2005-02-15T10:52">Repository/</del></span></span></span><span
+     lang=EN>modules</span></li>
+ <li class=MsoNormal style='color:black;margin-bottom:3.0pt;text-align:justify'><span
+     lang=EN style='color:windowtext'>WEB-INF/</span><span class=msodel0><span
+     lang=EN><span class=msoDel><del cite="mailto:Srinath%20Perera"
+     datetime="2005-02-15T10:52">Repository/</del></span></span></span><span
+     lang=EN style='color:windowtext'>services</span></li>
+</ul>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><b><i><span lang=EN>The required
+directory structure for a modules archive file is as follows;</span></i></b></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>m1.aar</span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>&nbsp;&nbsp;&nbsp;
+META-INF/module.xml</span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>&nbsp;&nbsp;&nbsp;
+lib/</span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>&nbsp;&nbsp;&nbsp;
+classes/</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN style='font-size:
+9.5pt;font-family:Verdana;color:black'>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><b><i><span lang=EN
+style='color:black'>The required directory structure for a service archive file
+is as follows; </span></i></b></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>s1.aar</span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>&nbsp;&nbsp;&nbsp;
+META-INF/service.xml</span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>&nbsp;&nbsp;&nbsp;
+lib/</span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>&nbsp;&nbsp;&nbsp;
+classes/</span></p>
+
+<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><b><i><span lang=EN
+style='color:black'>The structure of module.xml file is &nbsp;as follows; </span></i></b></p>
+
+<p class=MsoNormal style='text-align:justify'><b><i><span lang=EN
+style='color:black'>&nbsp;</span></i></b></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><b><i><span
+lang=EN style='color:black'><img border=0 width=680 height=195
+src="Axis2%20Archteture%20Guide_files/image002.gif"></span></i></b><s><span
+lang=EN style='font-size:9.5pt;font-family:Verdana;color:red'><img border=0
+width=510 height=106 src="Axis2%20Archteture%20Guide_files/image003.jpg"></span></s></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><b><i><span
+lang=EN style='color:black'>The structure of service.xml file is as follows; </span></i></b></p>
+
+<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0>
+ <tr style='height:139.5pt'>
+  <td width=438 valign=top style='width:328.5pt;border:solid white 1.0pt;
+  background:white;padding:0in 0in 0in 0in;height:139.5pt'><span
+  style='left:0pt;position:absolute;z-index:6'><span style='left:55px;
+  position:absolute;top:-251px'>
+  <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="100%"
+   style='width:100.0%'>
+   <tr>
+    <td style='padding:0in 0in 0in 0in'>
+    <div>
+    <p class=MsoNormal><span style='position:relative;z-index:6'><span
+    style='font-size:10.0pt;font-family:"Courier New"'>&lt;module
+    name=”xs:anyURI”&gt;</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+    &lt;parameter/&gt;*</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+    &lt;typeMapping/&gt;*</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+    &lt;inflow/&gt;?</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+    &lt;outflow/&gt;?</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+    &lt;faultflow/&gt;?</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;/module&gt;</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>OR
+    module can be specified as </span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;module
+    ref=”xs:anyURI”/&gt;</span></p>
+    <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;</span></p>
+    </div>
+    </td>
+   </tr>
+   </span>
+  </table>
+  <p class=MsoNormal>&nbsp;</p>
+  </td>
+ </tr>
+ </span>
+</table>
+
+</span>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><b><i><span
+lang=EN style='color:black'><img border=0 width=680 height=195
+src="Axis2%20Archteture%20Guide_files/image004.gif"></span></i></b></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><s><span
+lang=EN style='color:red'><img border=0 width=655 height=153
+src="Axis2%20Archteture%20Guide_files/image005.jpg"></span></s></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><a
+name=head-54798dc9598f237260f809f79bb08abb199></a><span lang=EN
+style='font-size:9.5pt;font-family:Verdana;color:black'>&nbsp;</span></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN
+style='font-size:9.5pt;font-family:Verdana;color:black'>&nbsp;</span></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN
+style='font-size:9.5pt;font-family:Verdana;color:black'>&nbsp;</span></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN
+style='font-size:9.5pt;font-family:Verdana;color:black'>&nbsp;</span></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN
+style='font-size:9.5pt;font-family:Verdana;color:black'>&nbsp;</span></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><b><i><span
+lang=EN style='color:black'>The architecture of hot deployment consists of the
+following components; </span></i></b></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN
+style='font-size:9.5pt;font-family:Verdana;color:black'><img border=0
+width=423 height=304 src="Axis2%20Archteture%20Guide_files/image006.jpg"></span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:48.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='color:black'>1.</span><span lang=EN style='font-size:7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN style='color:black'>The Scheduler periodically invokes the
+Listener to check for updates</span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:48.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='color:black'>2.</span><span lang=EN style='font-size:7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN style='color:black'>If the Listener finds an update, it
+passes that information to the Repository </span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:48.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='color:black'>3.</span><span lang=EN style='font-size:7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN style='color:black'>The Repository hands over the document
+to the Deployment Parser </span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:48.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='color:black'>4.</span><span lang=EN style='font-size:7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN style='color:black'>Having parsed the document, the
+Deployment Parser returns the corresponding object</span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:48.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='color:black'>5.</span><span lang=EN style='font-size:7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN style='color:black'>The Repository updates the toDeploy
+and toUnDeploy list </span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:48.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='color:black'>6.</span><span lang=EN style='font-size:7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN style='color:black'>The Repository informs the Listener to
+update the system </span></p>
+
+<p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:3.0pt;
+margin-left:48.0pt;text-align:justify;text-indent:-.25in'><span lang=EN
+style='color:black'>7.</span><span lang=EN style='font-size:7.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN style='color:black'>The Listener informs the Deployment
+Engine to do the update (both deploy and undeploy) </span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<h2><a name="_Toc95620166"><span lang=EN style='font-size:12.0pt;font-family:
+"Times New Roman";font-style:normal'>5.4 Scheduler</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>This component
+itself is a thread that performs a specific task forever in a given time
+interval. In this case it periodically asks the Listener to listen to the file
+system events. Here the file system is not the entire file system, it is only
+the sub directories of WEB_INF/Repository where the modules and services
+reside.</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<h2><a name="_Toc95620167"><span lang=EN style='font-size:12.0pt;font-family:
+"Times New Roman";font-style:normal'>5.5 Listener</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'><a
+name=head-37ea46b5942beaeb21bb4e06a14e4f7232d></a><span lang=EN>As mentioned
+above the Listener listens for file system events. In order to do this it
+checks both the modules and services directories. Then it lists all the archive
+files in those two directories and compares those against the repository to
+check if a new service(s) has been added or if any service(s) has been
+modified. Then it informs DeploymentEngine to execute the required methods. </span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN style='font-size:
+9.5pt;font-family:Verdana;color:black'>&nbsp;</span></p>
+
+<h2><a name="_Toc95620168"><span lang=EN style='font-size:12.0pt;font-family:
+"Times New Roman";font-style:normal'>5.6 Repository</span></a><span lang=EN
+style='font-weight:normal'> </span></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The Repository
+stores data about modules and services that have already been deployed. At the
+initialization process this loads data about all the modules and services into
+the module and service directories. It then deploys all those loaded modules
+and services. The repository stores the name of the archive file and its’ last
+modified date. It is possible to perform the following operations to the
+Repository; </span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<ul style='margin-top:0in' type=disc>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>Add a new entry
+     to the Repository </span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>Remove an entry from
+     the Repository </span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>Modify an entry
+     in the Repository. </span></li>
+</ul>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN>These
+operations correspond to Hot Deployment, Hot unDeployment and Hot Update. </span></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN>In
+the add operation it checks whether the entry which is going to be added already
+exists in the Repository. If so it ignores the operation else it will add the
+entry to the Repository and add an entry to a list maintained in the
+DeploymentEngine (toDeploy list). </span></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN>In
+the remove operation it directly removes the entry from the repository and adds
+an entry to a list maintained in the DeploymentEngine (toUnDeploy list) </span></p>
+
+<p style='margin-left:0in;text-align:justify;line-height:normal'><span lang=EN>In
+the modify operation it adds entries to both lists in the DeploymentEngine. </span></p>
+
+<h2><a name="_Toc95620169"><span lang=EN style='font-size:12.0pt;font-family:
+"Times New Roman";font-style:normal'>5.7 DeploymentEngine</span></a><a
+name=head-c22edd7a305a0a97447ce349e4733cfa6d5></a></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The
+DeploymentEngine is the main component of the deployment sub component. It
+interacts with the axis engine and the engine registry by updating the engine
+registry when a new service is added or an existing service is removed. The
+deployment procedure is as follows;</span></p>
+
+<ul style='margin-top:0in' type=disc>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>Check the
+     toUnDeploy list. If it is not empty then remove the corresponding web
+     service from the engine registry.</span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>Check the
+     toDeploy list. If it is not empty then add the corresponding web service
+     to the engine registry.</span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>For each and
+     every item in the list that is passed to the DeploymentParser, create a corresponding
+     axis service object and add it to the engine registry. </span></li>
+</ul>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<h2><a name="_Toc95620170"><span lang=EN style='font-size:12.0pt;font-family:
+"Times New Roman";font-style:normal'>5.8 DeploymentParser</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The following three
+types of xml document are parsed by the DeploymentParser<span class=msoins0><span
+style='text-decoration:none'><span class=msoIns><ins cite="mailto:%20"
+datetime="2005-02-11T12:04">.</ins></span></span></span> Its’ underlying parser
+is StAX.</span></p>
+
+<ul style='margin-top:0in' type=disc>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>server.xml </span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>service.xml </span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>module.xml </span></li>
+</ul>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>Parsing of server.xml
+is done as follows;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The
+DeploymentEngine will create an AxisGlobal object and pass that to the
+DeploymentParser. Then the DeploymentParser will modify the object according to
+server.xml.</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>Parsing of
+service.xml is done as follows;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The DeploymentEngine
+will create an AxisService object and pass that to the DeploymentParser. Then
+it will be updated according to service.xml.</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>Parsing module.xml
+is the same as above except for it been passed an AxisModule object instead of
+an AxisService object. </span></p>
+
+<p class=MsoNormal style='text-align:justify'><a name="_Toc95620171"><span
+lang=EN>5.8 Deployment Engine initialization</span></a></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The Initialization
+process of the DeploymentEngine consists of the following steps:</span></p>
+
+<ul style='margin-top:0in' type=disc>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>Checks whether
+     server.xml is located in the repository directory. If it exists, then it
+     is loaded and parsed. If not then a default server.xml is created and
+     placed in the repository.</span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>Checks whether
+     modules and services directories are available under the repository. If
+     not they will be created.</span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>After server.xml
+     is parsed, an AxisGlobal object is created.</span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>Load all the axis
+     archive files to both the modules and services directories, parse them and
+     create AxisService and AxisModule objects.</span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>If server.xml has
+     references to modules, then it checks whether those modules are valid, (it
+     is valid if it is in the modules directory), If it is not valid an
+     exception is thrown.</span></li>
+ <ul style='margin-top:0in' type=circle>
+  <li class=MsoNormal style='text-align:justify'><span lang=EN>If those modules
+      are valid, the GlobalChains are built by the PhaseResolver (GlobalInChain
+      , GlobalOutChain , and GlobalFaultChain) using phase rules.</span></li>
+ </ul>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>All the available
+     services and modules will be added to the engineRegistry.</span></li>
+ <li class=MsoNormal style='text-align:justify'><span lang=EN>The
+     engineRegistry is returned.</span></li>
+</ul>
+
+<h2><span lang=EN style='font-size:12.0pt;font-family:"Times New Roman";
+font-style:normal'>&nbsp;<a name="_Toc95620172">5.9 Adding a new web service</a></span></h2>
+
+<p class=MsoNormal style='text-align:justify;text-indent:21.0pt'><span lang=EN>Adding
+a new web service consists of the following steps;</span></p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-align:justify;text-indent:
+-.25in'><span lang=EN>1.</span><span lang=EN style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN>Unzip the aar file and take its’ service.xml and parse it
+using the DeploymentParser. </span></p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-align:justify;text-indent:
+-.25in'><span lang=EN>2.</span><span lang=EN style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN>While processing the service.xml an AxisService object
+gets created and that object will be updated.</span></p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-align:justify;text-indent:
+-.25in'><span lang=EN>3.</span><span lang=EN style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN>The created object is deployed to the DeploymentEngine.</span></p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-align:justify;text-indent:
+-.25in'><span lang=EN>4.</span><span lang=EN style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN>Using the DeploymentEngine the service classLoader and the
+provider class will be added to the AxisService object.</span></p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-align:justify;text-indent:
+-.25in'><span lang=EN>5.</span><span lang=EN style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN>The Handler chain will be built by resolving the phase
+rules.<br>
+(It should be noted here that the Handler Chain consists of the HandlerMetadata
+which has &nbsp;all the phase rules data&nbsp; and the actual executable
+handler )</span></p>
+
+<p class=MsoNormal style='margin-left:39.0pt;text-align:justify;text-indent:
+-.25in'><span lang=EN>6.</span><span lang=EN style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><span lang=EN>The created object will be added to the EngineRegistry. </span></p>
+
+<h1 style='text-align:justify'><span style='font-size:14.0pt;font-family:"Times New Roman";
+font-weight:normal'>&nbsp;</span></h1>
+
+<h1 style='text-align:justify'><span style='font-size:14.0pt;font-family:"Times New Roman";
+font-weight:normal'>&nbsp;</span></h1>
+
+<h1 style='text-align:justify'><span style='font-size:14.0pt;font-family:"Times New Roman";
+font-weight:normal'>&nbsp;</span></h1>
+
+<h1 style='text-align:justify'><span style='font-size:14.0pt;font-family:"Times New Roman";
+font-weight:normal'>&nbsp;</span></h1>
+
+<b><span style='font-size:14.0pt;font-family:Arial'><br clear=all
+style='page-break-before:always'>
+</span></b>
+
+<h1 style='text-align:justify'><a name="_Toc95620173"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>6.0 AXIOM – AXIs
+Object Model</span></a></h1>
+
+<h2><a name="_Toc95620174"><span style='font-size:12.0pt;font-family:"Times New Roman";
+font-style:normal'>6.1 Introduction</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'>AXIOM (also know as OM –<b>O</b>bject
+<b>M</b>odel) is used to refer to the new and efficient XML info set model that
+has been developed for Axis 2. Most of the XML object models used today are
+based on two major methods, namely;</p>
+
+<ol style='margin-top:0in' start=1 type=1>
+ <li class=MsoNormal style='text-align:justify'>DOM based – where the whole
+     document is parsed and held in the memory</li>
+ <li class=MsoNormal style='text-align:justify'>Event based (SAX like) – where
+     the whole document is parsed at once, but no model is created in the
+     memory and where the user has to catch the relevant events, which can not
+     be stopped or reversed.</li>
+</ol>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>AXIOM gets the best from both
+these options and builds a better object model on top of a pull parsing
+methodology. It controls the phase of the parsing and builds a memory model if
+required from the information that’s being parsed so far. That means at a given
+instance, AXIOM does not have a fully built object model with the rest of the
+information still in the stream.</p>
+
+<p class=MsoNormal style='text-align:justify'>The most important feature of
+this OM is that it is lightweight and is differed built based on <a
+href="http://www.jcp.org/en/jsr/detail?id=173">StAX (JSR 173)</a>, the
+streaming pull parser. </p>
+
+<p class=MsoNormal style='text-align:justify'>The object model can be
+manipulated like any other object model (Such as jdom), but underneath the
+objects will be created only when they are absolutely required. Hence this
+model is much more efficient.</p>
+
+<p class=MsoNormal style='text-align:justify'>AXIOM interacts with the outside
+world using the StAX API, that means it serializes and de-serializes using the
+StAX writer and StAX reader interfaces.</p>
+
+<p class=MsoNormal style='text-align:justify'><span style='font-size:9.0pt'>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span style='font-size:9.0pt'><img
+border=0 width=552 height=217
+src="Axis2%20Archteture%20Guide_files/image007.jpg"></span></p>
+
+<p class=MsoNormal style='text-align:justify'><span style='font-size:9.0pt'>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'>Since most of the data binding
+tools support <span class=msoins0><span style='text-decoration:none'><span
+class=msoIns><ins cite="mailto:%20" datetime="2005-02-11T14:19">&nbsp;</ins></span></span></span>SAX
+based interfaces, AXIOM comes with an adapter to be used between StAX and SAX.</p>
+
+<h2><a name="_Toc94950521"></a><a name="_Toc95620175"></a><span
+style='font-size:12.0pt;font-family:"Times New Roman";font-style:normal'>6.2
+High Level Architecture</span></h2>
+
+<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 align=left>
+ <tr>
+  <td width=64 style='width:48.0pt;padding:0in 0in 0in 0in'>
+  <p class=MsoNormal>&nbsp;</p>
+  </td>
+ </tr>
+ <tr>
+  <td style='padding:0in 0in 0in 0in'>
+  <p class=MsoNormal>&nbsp;</p>
+  </td>
+  <td style='padding:0in 0in 0in 0in'>
+  <p class=MsoNormal><img border=0 width=490 height=282
+  src="Axis2%20Archteture%20Guide_files/image008.jpg"></p>
+  </td>
+ </tr>
+</table>
+
+<p class=MsoNormal align=center style='text-align:center'><br clear=all>
+</p>
+
+<p class=MsoNormal style='text-align:justify'><span style='font-size:9.0pt'>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'>AXIOM “sees” the XML input stream
+through the StAX stream reader, which is being wrapped by a builder interface
+provided. Current implementation has two builders, namely; </p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<ul style='margin-top:0in' type=disc>
+ <li class=MsoNormal style='text-align:justify'>OM Builder – This will build a
+     full XML info-set supported general XML model. But the current
+     implementation lacks the support for Processing Instructions and DTD’s.</li>
+ <li class=MsoNormal style='text-align:justify'>SOAP Builder – This will build
+     a SOAP XML specific object model. The Object model will contain
+     SOAP-Specific objects like the SOAPEnvelope, SOAPHeader etc. </li>
+</ul>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>Each of these builders has the
+support for differed building and caching. User has the option of building the
+memory model or not. He can control this via setting the cache on or off. </p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>( Since the object model is pull
+based, the StAX API is tightly bound to OM. To work with OM a StAX compliant
+parser and the API <b><i>must</i></b> be present in the classpath. )</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal>The OM API works on top of the builder interface and
+provides for users, be they an engine developer, handler developer or anyone else.
+This will provide the highest flexibility as one can change builders and object
+model implementations completely independent to one another.</p>
+
+<p class=MsoNormal style='text-align:justify'>The OM has a defined set of APIs
+and one can implement his/her own memory model based on that. The current AXIS
+2, comes with a linked list based implementation of those set of APIs. (There
+was an effort to build another OM on a table based model. It’s now on hold.) </p>
+
+<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0>
+ <tr>
+  <td width=72 style='width:.75in;padding:0in 0in 0in 0in'>
+  <p class=MsoNormal>&nbsp;</p>
+  </td>
+ </tr>
+ <tr>
+  <td style='padding:0in 0in 0in 0in'>
+  <p class=MsoNormal>&nbsp;</p>
+  </td>
+  <td style='padding:0in 0in 0in 0in'>
+  <p class=MsoNormal><img border=0 width=420 height=246
+  src="Axis2%20Archteture%20Guide_files/image009.jpg"></p>
+  </td>
+ </tr>
+</table>
+
+<p class=MsoNormal style='text-align:justify'><br clear=all>
+Therefore one can find a factory to create OM objects, which will help to
+switch between different implementations of the object model.</p>
+
+<p class=MsoNormal style='text-align:justify'><span style='font-size:9.0pt;
+font-family:Tahoma'>&nbsp;</span></p>
+
+<p class=MsoNormal style='text-align:justify'><span style='font-size:9.0pt;
+font-family:Tahoma'>&nbsp;</span></p>
+
+<p class=MsoNormal>&nbsp;</p>
+
+<h1 style='text-align:justify'><a name="_Toc95620176"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>7.0 Handler Frame work
+and Phase Rules</span></a><span style='font-size:14.0pt;font-family:"Times New Roman";
+font-weight:normal'> </span></h1>
+
+<h2><a name="_Toc95620177"><span style='font-size:12.0pt;font-family:"Times New Roman";
+font-style:normal'>7.1 Phase</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'>Phase is a logically ordered
+collection of handlers. The handler inside a phase is ordered by phase rules.
+By using phase rules a user can specify where the handler should be logically
+placed. Some of the valid attributes associated with phase rules are listed in
+the following table;</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<div align=center>
+
+<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
+ style='border-collapse:collapse'>
+ <tr>
+  <td width=139 valign=top style='width:1.45in;border:solid black 1.0pt;
+  background:black;padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'><b>Attribute Name</b></p>
+  </td>
+  <td width=348 valign=top style='width:261.0pt;border:solid black 1.0pt;
+  border-left:none;background:black;padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'><b>Value</b></p>
+  </td>
+ </tr>
+ <tr>
+  <td width=139 valign=top style='width:1.45in;border:solid black 1.0pt;
+  border-top:none;padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>Before</p>
+  </td>
+  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
+  none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;
+  padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>Can be either a handler or a
+  phase *</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=139 valign=top style='width:1.45in;border:solid black 1.0pt;
+  border-top:none;padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>After</p>
+  </td>
+  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
+  none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;
+  padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>Can be either a handler or a
+  phase&nbsp; *</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=139 valign=top style='width:1.45in;border:solid black 1.0pt;
+  border-top:none;padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>Phase </p>
+  </td>
+  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
+  none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;
+  padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>Valid phase name **</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=139 valign=top style='width:1.45in;border:solid black 1.0pt;
+  border-top:none;padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>PhaseFirst </p>
+  </td>
+  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
+  none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;
+  padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>Boolean ***</p>
+  </td>
+ </tr>
+ <tr>
+  <td width=139 valign=top style='width:1.45in;border:solid black 1.0pt;
+  border-top:none;padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>PhaseLast</p>
+  </td>
+  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
+  none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;
+  padding:0in 5.4pt 0in 5.4pt'>
+  <p class=MsoNormal style='text-align:justify'>Boolean ***</p>
+  </td>
+ </tr>
+</table>
+
+</div>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>* - If the “before” or “after”
+attribute of a handler is another handler, then the referenced handler must
+belong to the same phase.&nbsp; If the before or after attribute is a phase,
+there cannot be a phase attribute of that handler. If one of before or after is
+a handler other can not be a phase. </p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>** - valid phase is a phase that
+is listed in the server.xml. If the phase name is not there then the phase name
+is not a valid phase.</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>*** - If both the PhaseFirst and
+PhaseLast attributes of some handler are true, then the case phase only has one
+handler. </p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>N:B : If the user going to use
+handles and attributes as before , then there is no need to use PhaseFirst and
+PhaseLast &nbsp;because those are ignored by the rule engine.</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<h2><a name="_Toc95620178"><span style='font-size:12.0pt;font-family:"Times New Roman";
+font-style:normal'>7.2 Handler chain</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'>The Handler chain is a collection
+of phases and handlers. The order of phases in the chain is described in
+server.xml. One service can have three handler chains;</p>
+
+<ol style='margin-top:0in' start=1 type=1>
+ <li class=MsoNormal style='text-align:justify'>Inflow</li>
+ <li class=MsoNormal style='text-align:justify'>Outflow</li>
+ <li class=MsoNormal style='text-align:justify'>Faultflow.</li>
+</ol>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>For each and every handler chain,
+handlers can come in different ways as follows<span class=msoins0><span
+style='text-decoration:none'><span class=msoIns><ins cite="mailto:%20"
+datetime="2005-02-11T16:07">:</ins></span></span></span></p>
+
+<ol style='margin-top:0in' start=3 type=1>
+ <ul style='margin-top:0in' type=disc>
+  <li class=MsoNormal style='text-align:justify'>Corresponding flow of
+      service.xml</li>
+  <li class=MsoNormal style='text-align:justify'>If there are any references to
+      modules then the handlers from correspondence flow.</li>
+  <li class=MsoNormal style='text-align:justify'>Operation specific handlers
+      corresponding flow</li>
+ </ul>
+</ol>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;&nbsp; </p>
+
+<h1 style='text-align:justify'><a name="_Toc95620179"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>8.0 WSDL Object model.</span></a></h1>
+
+<p class=MsoNormal style='text-align:justify'>&lt;&lt;&lt; Chathura will be
+completed &gt;&gt;&gt;</p>
+
+<h1 style='text-align:justify'><a name="_Toc95620180"><span style='font-size:
+14.0pt;font-family:"Times New Roman";font-weight:normal'>9.0 Client API.</span></a></h1>
+
+<p class=MsoNormal style='text-align:justify'>Types of Client programming
+models that Axis 2 support<span class=msoins0><span style='text-decoration:
+none'><span class=msoIns><ins cite="mailto:%20" datetime="2005-02-11T16:16">:</ins></span></span></span>
+</p>
+
+<ol style='margin-top:0in' start=1 type=1>
+ <li class=MsoNormal style='text-align:justify'>Synchronous Invocation</li>
+ <li class=MsoNormal style='text-align:justify'>Asynchronous invocation using
+     callback , with two way transport</li>
+ <li class=MsoNormal style='text-align:justify'>Asynchronous invocation using
+     callbacks, transport is also one way (Addressing information is
+     required.)&nbsp; </li>
+</ol>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>The following diagram described
+all the invocations between subcomponents in the client side.</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'><img border=0 width=576
+height=315 src="Axis2%20Archteture%20Guide_files/image010.jpg">&nbsp; </p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'><b><i>Call Class consist of following
+methods (Call API)</i></b></p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<p class=MsoNormal style='text-align:justify'><img border=0 width=582
+height=200 src="Axis2%20Archteture%20Guide_files/image011.jpg"></p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<pre style='text-align:justify'><b><i><span lang=EN>Callback Interface</span></i></b></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre><pre
+style='text-align:justify'><span lang=EN><img border=0 width=499 height=56
+src="Axis2%20Archteture%20Guide_files/image012.jpg"></span></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre><pre
+style='text-align:justify'><b><i><span lang=EN style='font-size:12.0pt;
+font-family:"Times New Roman"'>AyncResult </span></i></b></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre><pre
+style='text-align:justify'><span lang=EN><img border=0 width=430 height=48
+src="Axis2%20Archteture%20Guide_files/image013.jpg"></span></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre><pre
+style='text-align:justify'><b><i><span lang=EN>Correlator</span></i></b></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre>
+
+<p class=MsoNormal style='text-align:justify'><img border=0 width=539
+height=73 src="Axis2%20Archteture%20Guide_files/image014.jpg"></p>
+
+<h2><a name="_Toc95620181"><span style='font-size:12.0pt;font-family:"Times New Roman";
+font-style:normal'>9.1 sendAsync Invocation</span></a><span style='font-size:
+12.0pt;font-family:"Times New Roman";font-style:normal'> </span></h2>
+
+<p class=MsoNormal style='text-align:justify'>This invocation is similar to
+fire and forget where a request is sent and an acknowledgement is not
+expected.. An invocation will consist of the following steps;&nbsp;&nbsp; </p>
+
+<p class=MsoNormal style='text-align:justify'><img border=0 width=318
+height=53 src="Axis2%20Archteture%20Guide_files/image015.jpg"></p>
+
+<p style='margin-left:0in;text-align:justify'><i><span lang=EN>Code Snippet: </span></i></p>
+
+<pre style='text-align:justify'><span lang=EN><img border=0 width=318
+height=59 src="Axis2%20Archteture%20Guide_files/image016.jpg"></span></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre><pre
+style='text-align:justify'><i><span lang=EN style='font-size:12.0pt;font-family:
+"Times New Roman"'>Sequence diagram</span></i></pre><pre style='text-align:
+justify'><span lang=EN>&nbsp;</span></pre><pre style='text-align:justify'><span
+lang=EN><img border=0 width=434 height=147
+src="Axis2%20Archteture%20Guide_files/image017.jpg"></span></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre>
+
+<h2><a name="_Toc95620182"><span style='font-size:12.0pt;font-family:"Times New Roman";
+font-style:normal'>9.2 send Invocation</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The service
+invocation is a void invocation. There is no return value, but there is a wait
+for an acknowledgment or a SOAP Fault, It consists of the following steps. </span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<pre style='text-align:justify'><span lang=EN>a -&gt; call.send(SOAPEnvelope)</span></pre><pre
+style='text-align:justify'><span lang=EN>b -&gt; engine.send( ..)</span></pre><pre
+style='text-align:justify'><span lang=EN>c -&gt; Send the SOAP message</span></pre>
+
+<p style='margin-left:0in;text-align:justify'><i><span lang=EN>Code Snippet: </span></i></p>
+
+<pre style='text-align:justify'><span lang=EN>call.setTargetURL(URL)</span></pre><pre
+style='text-align:justify'><span lang=EN>call.setAction(String)</span></pre><pre
+style='text-align:justify'><span lang=EN>call.send(SOAPEnvelope)</span></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre>
+
+<p style='margin-left:0in;text-align:justify'><i><span lang=EN>Sequence diagram</span></i></p>
+
+<p class=MsoNormal style='text-align:justify'><img border=0 width=416
+height=149 src="Axis2%20Archteture%20Guide_files/image018.jpg"></p>
+
+<p class=MsoNormal style='text-align:justify'>&nbsp;</p>
+
+<h2><a name="_Toc95620183"><span style='font-size:12.0pt;font-family:"Times New Roman";
+font-style:normal'>9.3 sendReceive Invocation</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The service method
+has a response and the communication happens synchronously using a
+bi-directional protocol. The Client hangs until the response (or fault) is
+returned. </span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+
+<pre style='text-align:justify'><span lang=EN>a -&gt; call.sendReceive(SOAPEnvelope)</span></pre><pre
+style='text-align:justify'><span lang=EN>b- &gt; engine.send (..)</span></pre><pre
+style='text-align:justify'><span lang=EN>c -&gt; Send the SOAP message</span></pre><pre
+style='text-align:justify'><span lang=EN>d -&gt; Receive the response over the synchronous transport</span></pre><pre
+style='text-align:justify'><span lang=EN>w -&gt; ProviderX will be called as the last step in engine.receive(..) </span></pre><pre
+style='text-align:justify'><span lang=EN>e -&gt; provider returns&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></pre><pre
+style='text-align:justify'><span lang=EN>f -&gt; Call hand over the response to the client</span></pre><pre
+style='text-align:justify'><span lang=EN>&nbsp;</span></pre>
+
+<p class=MsoNormal style='text-align:justify'><i><span lang=EN>Code Snippet: </span></i></p>
+
+<pre style='text-align:justify'><span lang=EN>call.setTargetURL(URL)</span></pre><pre
+style='text-align:justify'><span lang=EN>call.setAction(String)</span></pre><pre
+style='text-align:justify'><span lang=EN>SOAPEnvelope env=call.sendReceive(SOAPEnvelope)</span></pre>
+
+<p class=MsoNormal><a name=head-78ed36ab5d1e55c1107e22dbdd97f57656a></a><i><span
+lang=EN>&nbsp;</span></i></p>
+
+<p class=MsoNormal><i><span lang=EN>Sequence diagram</span></i></p>
+
+<p class=MsoNormal><span lang=EN><img border=0 width=439 height=199
+src="Axis2%20Archteture%20Guide_files/image019.jpg"></span></p>
+
+<h2><a name="_Toc95620184"><span style='font-size:12.0pt;font-family:"Times New Roman";
+font-style:normal'>9.4 sendReceiveAsync Invocation</span></a></h2>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>The service method
+has a response and the communication happens synchronously using a bi-directional
+protocol. Client DOES NOT hangs until the response (or fault) is returned. The
+Client uses a callback mechanism to retrieve the response. The Call API uses
+threads from a thread pool for each invocation. </span></p>
+
+<p class=MsoNormal style='text-align:justify'><span lang=EN>&nbsp;</span></p>
+

[... 70 lines stripped ...]