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 sa...@apache.org on 2004/09/08 09:44:36 UTC

cvs commit: ws-axis/c/docs/arch WSDL2Ws.html ArchitectureGuide.html wsdl2ws.html

samisa      2004/09/08 00:44:36

  Modified:    c/docs/arch ArchitectureGuide.html
  Added:       c/docs/arch WSDL2Ws.html
  Removed:     c/docs/arch wsdl2ws.html
  Log:
  Made the case of file name in sync with that of web site
  
  Revision  Changes    Path
  1.2       +7 -242    ws-axis/c/docs/arch/ArchitectureGuide.html
  
  Index: ArchitectureGuide.html
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/docs/arch/ArchitectureGuide.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ArchitectureGuide.html	6 Sep 2004 06:46:26 -0000	1.1
  +++ ArchitectureGuide.html	8 Sep 2004 07:44:35 -0000	1.2
  @@ -3,10 +3,10 @@
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <!--*** This is a generated file.  Do not edit.  ***-->
  -<link rel="stylesheet" href="../../skin/tigris.css" type="text/css">
  +<!--link rel="stylesheet" href="../../skin/tigris.css" type="text/css">
   <link rel="stylesheet" href="../../skin/mysite.css" type="text/css">
   <link rel="stylesheet" href="../../skin/site.css" type="text/css">
  -<link media="print" rel="stylesheet" href="../../skin/print.css" type="text/css">
  +<link media="print" rel="stylesheet" href="../../skin/print.css" type="text/css"-->
   <title>Architecture Guide</title>
   </head>
   <body bgcolor="white" class="composite">
  @@ -15,258 +15,26 @@
   <table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0">
   <tbody>
   <tr>
  -<!--================= start Group Logo ==================-->
  -<td align="left">
  -<div class="groupLogo">
  -<a href="http://ws.apache.org/"><img border="0" class="logoImage" alt="The Apache WebServices Project" src="../../images/project-logo.jpg"></a>
  -</div>
  -</td>
  -<!--================= end Group Logo ==================-->
  +
   <!--================= start Project Logo ==================--><td align="right">
   <div class="projectLogo">
  -<a href="http://ws.apache.org/axis/"><img border="0" class="logoImage" alt="The Apache Axis Project" src="../../images/axis.jpg"></a>
  +<a href="http://ws.apache.org/axis/"><img border="0" class="logoImage" alt="The Apache Axis Project" src="../images/axis.jpg"></a>
   </div>
   </td>
   <!--================= end Project Logo ==================-->
  -<!--================= start Search ==================--><td valign="top" rowspan="2" align="right" class="search">
  -<form target="_blank" action="http://www.google.com/search" method="get">
  -<table summary="search" border="0" cellspacing="0" cellpadding="0">
  -<tr>
  -<td bgcolor="#a5b6c6" colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  -</tr>
  -<tr>
  -<td colspan="3"><img height="8" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  -</tr>
  -<tr>
  -<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="ws.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit">
  -<br>
  -                          Search WS</td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  -</tr>
  -<tr>
  -<td colspan="3"><img height="7" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  -</tr>
  -<tr>
  -<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td>
  -</tr>
  -</table>
  -</form>
  -</td>
  +<!--================= start Search ==================-->
   <!--================= end Search ==================-->
   </tr>
   </tbody>
   </table>
   </div>
  -<!--================= end Banner ==================-->
  -<!--================= start Main ==================-->
  -<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
  -<tbody>
  -<!--================= start Status ==================-->
  -<tr class="status">
  -<td>
  -<!--================= start BreadCrumb ==================--><a href="http://www.apache.org/">Apache</a> | <a href="http://ws.apache.org/">WS</a><a href=""></a>
  -<!--================= end BreadCrumb ==================--></td><td id="tabs">
  -<!--================= start Tabs ==================-->
  -<div class="tab">
  -<span class="selectedTab"><a class="base-selected" href="../../index.html">WebServices-Axis</a></span>
  -</div>
  -<!--================= end Tabs ==================-->
  -</td>
  -</tr>
  -</tbody>
  -</table>
  +
   <!--================= end Status ==================-->
   <table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
   <tbody>
   <tr valign="top">
   <!--================= start Menu ==================-->
  -<td id="leftcol">
  -<div id="navcolumn">
  -<div class="menuBar">
  -<div class="menu">
  -<span class="menuLabel">Axis</span>
  - 
  -<div class="menuItem">
  -<a href="../../index.html">Introduction</a>
  -</div>
  - 
  -<div class="menuItem">
  -<a href="../../news.html">News</a>
  -</div>
  -
  - 
  -<div class="menuItem">
  -<a href="http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages">FAQ/Wiki</a>
  -</div>
  - 
  -<div class="menu">
  -<span class="menuLabel">Get Involved</span>
  -  
  -<div class="menuItem">
  -<a href="../../overview.html">Overview</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../cvs.html">CVS Repository</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../mail.html">Mailing Lists</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../ref.html">Reference Library</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../bugs.html">Bugs</a>
  -</div>
  - 
  -</div>
  - 
  -<div class="menu">
  -<span class="menuLabel">Axis (Java)</span>
  -  
  -<div class="menuItem">
  -<a href="../../java/index.html">Documentation</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../java/install.html">Installation</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../java/user-guide.html">User's Guide</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../java/developers-guide.html">Developer's Guide</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../java/integration-guide.html">Integration Guide</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../java/architecture-guide.html">Architecture Guide</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../java/reference.html">Reference Guide</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../java/reading.html">Reading Guide</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../java/requirements.html">Requirements</a>
  -</div>
  - 
  -</div>
  - 
  -<div class="menu">
  -<span class="menuLabel">Axis (C++)</span>
  -  
  -<div class="menuItem">
  -<a href="../../cpp/index.html">Latest Axis C++ Release!</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../cpp/documentation.html">Documentation</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../cpp/download.html">Download</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="http://nagoya.apache.org/wiki/apachewiki.cgi?AxisCPPProjectPages">Wiki Pages</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../cpp/who.html">Who we are</a>
  -</div>
  -  
  -</div>
  -
  -<div class="menu">
  -<span class="menuLabel">Downloads</span>
  -  
  -<div class="menuItem">
  -<a href="../../releases.html">Releases</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../interim.html">Interim Drops</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="http://cvs.apache.org/viewcvs/ws-axis/">Source Code</a>
  -</div>
  -
  -</div>
  -
  -<div class="menu">
  -<span class="menuLabel">Translation</span>
  -  
  -<div class="menuItem">
  -<a href="http://ws.apache.org/~toshi/jp-site/axis/index.html">Japanese (Unofficial)</a>
  -</div>
  -
  -</div>
  -
  -<div class="menu">
  -<span class="menuLabel">Related Projects</span>
  -  
  -<div class="menuItem">
  -<a href="http://ws.apache.org/wsif/">WSIF</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="http://cvs.apache.org/viewcvs/*checkout*/ws-wsil/java/README.htm">WSIL</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="http://www-124.ibm.com/developerworks/projects/wsdl4j/">WSDL4J</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="http://www.uddi4j.org/">UDDI4J</a>
  -</div>
  -
  -</div>
   
  -<div class="menu">
  -<span class="menuLabel">Misc</span>
  -  
  -<div class="menuItem">
  -<a href="../../site.html">Whole Site</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../who.html">Who We Are</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../contact.html">Contact</a>
  -</div>
  -  
  -<div class="menuItem">
  -<a href="../../legal.html">Legal</a>
  -</div>
  -
  -  
  -<div class="menuItem">
  -<a href="../../docs.html">Notes/Docs</a>
  -</div>
  -
  -</div>
  -
  -
  -</div>
  -</div>
  -</div>
  -</td>
   <!--================= end Menu ==================-->
   <!--================= start Content ==================--><td>
   <div id="bodycol">
  @@ -464,10 +232,7 @@
   <h4>Open Issues</h4>
   </div>
   <hr noshade="noshade" size="1">
  -<div id="pdf" align="right">
  -<a href="ArchitectureGuide.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
  -          PDF</a>
  -</div>
  +
   </div>
   </div>
   </div>
  
  
  
  1.1                  ws-axis/c/docs/arch/WSDL2Ws.html
  
  Index: WSDL2Ws.html
  ===================================================================
  <html>
    <head>
      <title>WSDL2Ws Tool </title>
  
      <link href="axis.css" rel=stylesheet type=text/css>
    </head>
  
    <body>
  <b>
  Contents
  </b>
  
  <p>
  <a href="#intro">1.Functionality</a> 
  </p>
  
  <p><a href="#webapp">1.1Types Of Classes</a>
  </p>
  
  <p><a href="#depend">1.2Programming Languages</a>
  </p>
  
  <p><a href="#websvc">1.3Encoding Style</a>
  </p>
  
  <p><a href="#start">1.4Style Of the Service</a>
  </p>
  
  <p><a href="#install-test">1.5Supports for Making Simple Custom Types </a>
  </p>
  
  <p><a href="#test">2.Architecture</a>
  </p>
  
  <p><a href="#test1">2.1 Out Line</a>
  </p>
  
  <p><a href="#test2">2.2 Mediator WsContext</a>
  </p>
  
  <p><a href="#test3">2.3 Generator</a>
  </p>
  
  <p><a href="#test4">2.4 Flow Of Execution</a>
  </p>
  
  <p><a href="#test5">2.5 Sequence Diagram</a>
  </p>
  
  <p><a href="#test6">3.Dependencies on Axis Java tool</a>
  </p>
  
  <p class="MsoNormal"><span style="font-family:Verdana;color:black">
      <a name="intro"></a>
        <h1>1. Functionality </h1></P>
  
  <p class="MsoNormal">
  
        <p>The tool should be able to generate different types of Wrappers and Skeletons for the server side and client�s stubs for the client�s Side.WSDL2Ws tool in Axis C++  is written in  Java.
      
        
        
        <a name= "webapp"/></a>    
      <h2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1 Types Of Classes</h2></p>
  
  
  
      <p>The tool should start with a WSDL document and generate following classes.</p>
       
  
  <P class=MsoNormal style="MARGIN-LEFT: 76pt; TEXT-INDENT: -18pt">
  �&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  WSDL2WS tool is used for building the following C/C++ components<p>
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   o Server side � Skeletons and Wrappers</p>
  <p>
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  o Client side � Stubs</p>
  </P>
  
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;> 
  <b>WSDL2WS tool</b> that generates wrappers which are used to deploy the Service in the Axis C++ engine. (Please refer the Wrapper Specification for more information)
  
    <p>The generated Wrappers perform the following functions. These wrappers act as RPC Providers. </p>
  
  <p>o  Serialization</p>
  <p>o  Deserialization</p>
  <p>o  Method invocation</p>
  
  
  
  
  
  
  
      <a name="depend"/></a>
      <h2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.2  Programming Languages </h2>
      
  <p> The tool should be able to generate classes for 
  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; �	C++ </p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; �	C </p>
    </p>  
  
  <p><b>The tool should be extensible to support other programming languages if required.</b></p>
  
  
  
      
      <a name="websvc"/></a>
      <h2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.3 encoding style</h2>
  
      <p>The tool should be able to support SOAP1.2 encoding style and extensible to support other encoding styles as well.
   </p>
  
  
      <a name="start"/></a>
      <h2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.4 Style Of the Service</h2>
  
      <p>The tool should be able to generate classes for following styles</p>
  <p>�	RPC </p>
  <p>�	Document </p>
  <p>�	Messaging </P>
   
  
   
          <a name="install-test"/></a>
      <h2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.5 Supports for making simple custom types</h2>
  
  
  
     
       <p>Tool generates Wrappers for custom types in following conditions</p>
  <p>�	Generates the method signatures of the types (serialize(), deserialize()) so that developer &nbsp;&nbsp; can write serialize desirialize code in most efficient way.</P> 
  <p>�	Generates the complete wrappers for WSDL types like struts
     </p>
  
  <p>�	Generates the complete wrappers for Array of any simple or WSDL types like struts </p> 
  
  
      
  
  
  
  
        <a name="test"/></a>
      <h1>2.Architecture</h1>
      
     
   <a name="test1"/></a>
      <h2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1 Outline</h2>
  
  
  <p>The tool takes a top down approach. It starts with a wsdl document and generates all the classes necessary to deploy the web service. It generates </p>
  <p>�	Skeleton (wrapper class) </p>
              
  <p>�	Wrapper classes for complex types </p>
  <p>�	Server side and client Side stubs 
  <br>
  The tool can be extensible to generate Service classes to be published 
  For more information about the generated classes please refer to the architecture documentation.
  <align="left">
  <img SRC="../images/c/ag/wsdl2ws.jpg" ></align></p>
  
  
  <a name="test2"/></a>
      <h2>&nbsp;&nbsp;2.1 Mediator WsContext</h2>
  
  
  
  <p>The WSDL file and the user options are processed by the WSDLWs. The WSDL creates a class called wsContext(WebServiceContext) which is the runtime representation of the processed data. This wsContext passes to the generators.  The generators extract the information from the wsContext and creates the files.The wsContext acts as a mediator and creates a loosely coupled system.</p>
  
  <h3>wsContext has following components</h3>
  
  <p>1.  ServiceInfo �  information about service </p>
  <p>2.  WrapperInfo � information about wrapper options</p> 
  <p>3.  TypeMap � information about custom types </p>
  
  
  
  <a name="test3"/></a>
      <h2>&nbsp;&nbsp;&nbsp;2.2 Genarator
  </h2>
  
  <p>Generator generates a class which depends on the options, It contains a class called SourceWriter and the concrete implementation of the SourceWriter decides what the Genarator generates. The SourceWriter factory creates a correct type of generator which depends on the options.</p>
  
  <a name="test4"/></a>
      <h2>&nbsp;&nbsp;&nbsp;2.4 flow of execution
  </h2>
  
  <p>1.WSDL file and user options are processed by the WSDL2Ws and WSContext object is created.</p> 
  <p>2. WebServiceGenaratorFactory will create WebServiceGenarator which depends on the service style </p>
  <p>3. Then the WebServiceGenarator will create a right set of Generators to create the set of files</p> 
  <p>4.Each generator will invoke SourceWriter which is capable of writing each type of file. 
  Rest of the logic is upto the developer to decide (He has all the needed info as WsContext). 
  
  </p>
  
  
  <a name="test5"/></a>
      <h2>&nbsp;&nbsp;&nbsp;2.5 Sequence Diagram
  </h2>
  
  <p><center>
  
  <img SRC="../images/c/ag/sequence.jpg" ></center></p>
  
  <a name="test6"></a>
  <h1>Dependencies on Axis Java tool</h1>
  
  <p>The document below describes the areas where Apache Axis C++ is dependant upon the Axis Java tool. </p>
  <p>The Axis jars given below are used as they are in the Axis Java tool:</p>
  <br>
  <p> &nbsp &nbsp axis.jar <br>
  &nbsp &nbsp commons-discovery.jar <br>
  &nbsp &nbsp commons-logging.jar <br>
  &nbsp &nbsp jaxrpc.jar <br>
  &nbsp &nbsp saaj.jar <br>
  &nbsp &nbsp wsdl4j.jar <br>
  &nbsp &nbsp xml-apis.jar <br> </p>
  <p>"SchemaUtils.java" and "ElementDecl.java" files have been overridden and their original implementations are no longer used even though they exist in the above mentioned jars.</p>
  
  <p>No classes have been extended at the present time.</p>
  
  <p>Except for "SchemaUtils.java" and "ElementDecl.java" the rest of the code has been developed for the Axis C++ tool and is not present in the current Axis Java tool.</p>  </body>
  </html>