aslom       2002/12/10 10:33:52

  Modified:    java     readme.htm
  Log:
  factored out readme into smaller pieces
  
  Revision  Changes    Path
  1.9       +160 -161  xml-axis-wsif/java/readme.htm
  
  Index: readme.htm
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/readme.htm,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- readme.htm        7 Dec 2002 12:33:57 -0000       1.8
  +++ readme.htm        10 Dec 2002 18:33:52 -0000      1.9
  @@ -3,209 +3,208 @@
   <meta name="Author" content="Ant Elder">
   <meta http-equiv="Content-Style-Type" content="text/css"><title>Web Services 
Invocation Framework for Java API - Overview</title>
   
  -<link rel="stylesheet" href="README_files/wsif.txt" type="text/css"></head>
  +<link rel="stylesheet" href="doc/wsif.css" type="text/css"></head>
   
   <body alink="#0000ff" bgcolor="#ffffff" leftmargin="2" topmargin="2" 
marginwidth="2" marginheight="2">
   
   <h1><a name="WSIF Overview">WSIF: <br>
   Web Services Invocation Framework</a></h1>
   
  -The Web Services Invocation Framework (WSIF) is a simple Java API for invoking Web 
services, 
  +The Web Services Invocation Framework (WSIF) is a simple Java API for invoking Web 
services,
   no matter how or where the services are provided.<BR>
   
   <BR>WSIF enables developers to interact with representations
  -of Web services instead of working directly with the Simple Object Access 
  +of Web services instead of working directly with the Simple Object Access
   Protocol (SOAP) APIs, which is the usual programming model. With WSIF, developers
  -can work with the same programming model regardless of how the Web service is 
  -implemented and accessed. It frees the developer from the constraints of having 
  -to develop services for particular transport protocols or service environments. 
  +can work with the same programming model regardless of how the Web service is
  +implemented and accessed. It frees the developer from the constraints of having
  +to develop services for particular transport protocols or service environments.
   Thus, it has an API that provides binding-independent access to any Web service.<BR>
   
  -<BR>WSIF allows stubless or completely dynamic invocation of a Web service, based 
  -upon examination of the meta-data about the service at runtime. It also allows 
  -updated implementations of a binding to be plugged into WSIF at runtime, and it 
  +<BR>WSIF allows stubless or completely dynamic invocation of a Web service, based
  +upon examination of the meta-data about the service at runtime. It also allows
  +updated implementations of a binding to be plugged into WSIF at runtime, and it
   allows the calling service to defer choosing a binding until runtime. <BR>
   
  -<BR>Finally, WSIF is closely based upon WSDL, so it can invoke any service 
  -that can be described in WSDL. 
  +<BR>Finally, WSIF is closely based upon WSDL, so it can invoke any service
  +that can be described in WSDL.
   
  -<H3>Whats new with WSIF?</H3>
  +<H3>What is new with WSIF?</H3>
   
  -The first Apache WSIF realease candidate is currently being worked on and 
  +The first Apache WSIF release candidate is currently being worked on and
   should be available in the near future. Check back here and watch the
   <A href="http://xml.apache.org/axis/mail.html";>mailing lists</A> for news<BR>
   <BR>
  -The WSIF documentation is slowly coming together with descriptions of the WSIF
  -<A 
href="http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-axis-wsif/java/README_files/wsdl_extensions/java_extension.html";>Java</A>
  -and 
  -<A 
href="http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-axis-wsif/java/README_files/wsdl_extensions/ejb_extension.html";>EJB</A>
  -bindings now available.<BR>
  -<BR> 
  -WSIF has been changed so the Apache Axis provider is now used for the default SOAP 
binding. 
  -WSIF has two SOAP providers, one based on Apache SOAP, the other on Apache Axis.   
  +WSIF has been changed so the Apache Axis provider is now used for the default SOAP 
binding.
  +WSIF has two SOAP providers, one based on Apache SOAP, the other on Apache Axis.
  +
  +    <a name="WhatIsIt"></a><h2>What is WSIF?</h2>
  +    <p>WSIF stands for the Web Services Invocation Framework. It supports a simple 
Java
  +      API for invoking Web services, no matter how or where the
  +      services are provided. The framework allows maximum
  +      flexibility for the invocation of any WSDL-described service.</p>
  +
  +    <p>In the WSDL specification, Web service binding descriptions are
  +      <em>extensions</em> to the specification. So the SOAP binding,
  +      for example, is one way to expose the abstract functionality
  +      (<em>and there could be others</em>). Since WSIF mirrors WSDL
  +      very closely, it also views SOAP as just one of several ways you
  +      might wish to expose your software's functionality. WSDL thus
  +      becomes a normalized description of software, and WSIF is the
  +      natural client programming model.</p>
  +
  +    <p>The WSIF API allows clients to invoke services focusing on the
  +      abstract service description - the
  +      portion of WSDL that covers the port types, operations and
  +      message exchanges without referring to real protocols. The
  +      <em>abstract invocations</em> work because they are backed up by
  +      protocol-specific pieces of code called <em>providers</em>. A
  +      provider is what conducts the actual message exchanges according
  +      to the specifics of a particular protocol - for example, the
  +      SOAP provider that is packaged with WSIF uses a specific SOAP
  +      engine like Axis to do the real work.</p>
  +
  +    <p>The decoupling of the abstract invocation from the real
  +      provider that does the work results in a flexible programming
  +      model that allows dynamic invocation, late binding, clients
  +      being unaware of large scale changes to services - such as
  +      service migration, change of protocols, etc. WSIF also allows
  +      new providers to be registered dynamically, so you could enhance
  +      your client's capability without ever having to recompile its
  +      code or redeploy it.</p>
  +
  +    <p>Using WSIF, WSDL can become the centerpiece of an integration
  +    framework for accessing software running on diverse platforms and
  +    using widely varying protocols. The only precondition is that you
  +    need to describe your software using WSDL, and include in its
  +    description a binding that your client's WSIF framework has a
  +    provider for. WSIF defines and comes packaged with providers for
  +    local java, EJB, JMS, and JCA protocols. That means you can define
  +    an EJB or a JMS-accessible service directly as a WSDL binding and
  +    access it transparently using WSIF, using the same API you would
  +    for a SOAP service or even a local java class.</p>
  +
  +    <p>TODO: Put a picture showing WSIF client with pluggable providers to
  +      access service using different protocols.</p>
  +
   
   <H3>WSIF Structure</H3>
   
  -In WSDL a binding defines how to map between the abstract PortType and a 
  -real service format and protocol. For example, the SOAP binding defines 
  -the encoding style, the SOAPAction header, the namespace of the body 
  +In WSDL a binding defines how to map between the abstract PortType and a
  +real service format and protocol. For example, the SOAP binding defines
  +the encoding style, the SOAPAction header, the namespace of the body
   (the targetURI), and so forth.<BR>
   <BR>
  -WSDL allows there to be multiple implementations for a Web Service, 
  -and multiple Ports that share the same PortType. In other words, WSDL 
  -allows the same interface to have bindings to for example, SOAP and 
  -IIOP.<BR> 
  +WSDL allows there to be multiple implementations for a Web Service,
  +and multiple Ports that share the same PortType. In other words, WSDL
  +allows the same interface to have bindings to for example, SOAP and
  +IIOP.<BR>
   
  -<BR>WSIF provides an API to allow the same client code to access any 
  +<BR>WSIF provides an API to allow the same client code to access any
   available binding. As the client code can then be written to the PortType
  -it can be a deployment or configuration setting (or a code choice) 
  +it can be a deployment or configuration setting (or a code choice)
   which port and binding it uses.<BR>
   <BR>
  -WSIF uses 'providers' to support these multiple WSDL bindings. A provider 
  -is a piece of code that supports a WSDL extension and allows invocation of 
  -the service through that particular implementation. WSIF providers use the 
  +WSIF uses 'providers' to support these multiple WSDL bindings. A provider
  +is a piece of code that supports a WSDL extension and allows invocation of
  +the service through that particular implementation. WSIF providers use the
   J2SE JAR service provider specification making them discoverable at runtime.<BR>
  -<BR>Clients can then utilize any new implementations and can delegate the 
  -choice of port to the infrastructure and runtime, which allows the 
  -implementation to be chosen on the basis of quality of service 
  -characteristics or business policy.<BR>
  +<BR>Clients can then utilize any new implementations and can delegate the
  +choice of port to the infrastructure and runtime, which allows the
  +implementation to be chosen on the basis of quality of service
  +characteristics or business policy.<h2>WSIF User Guide</h2>
  +<p><b>Quick start: </b>If you have downloaded binary package then you are ready to 
use WSIF: the 
  +very first thing to do is to check provided samples. However before you start 
  +please read <a href="doc/faq.htm">WSIF FAQ</a>. Then read about <a 
href="doc/samples.html">
  +how to run the samples</a>. Otherwise if you downloaded source code or accessed it 
from CVS you will need 
  +to build WSIF. First <a href="doc/requirements.html">check that all 
  +prerequisites</a> are available. Then <a href="doc/build.htm">proceed with 
  +building</a>.</p>
  +    <p>After you have successfully downloaded and installed WSIF, you
  +      can test your installation by <a href="doc/samples.html">running the
  +     samples</a>. If you are able to run all the samples
  +      successfully you should have a very good idea of what you can do
  +      with WSIF. Essentially once you have a WSDL file with a binding
  +      that WSIF understands (such as SOAP, EJB, Java, JMS, JCA, etc.)
  +      you can write a client that uses WSIF's APIs - the dynamic
  +      invocation API or the stub-based invocation - to use this
  +      service.</p>
  +    <p>Traditionally, the burden of dealing with new protocols has
  +      been a carried by the server-side. Software has to morph itself
  +      (through the addition of wrappers) to look like something the
  +      client expects to see. With WSIF, the software remains exactly
  +      the same - we just get the client to use WSIF's binding
  +      independent API, and through the addition of providers, we can
  +      mix and match protocols as we please.</p>
  +    <p><em>Service</em> is a very liberal term for WSIF!
  +      Anything that can be described in WSDL qualifies as a service
  +      and is something you can access using the WSIF API. Moreover,
  +      since WSDL is extensible, potentially everything can be
  +      described using WSDL. The next section describes how you can
  +      define your own bindings and write your own WSIF providers.</p>
  +
  +
  +<h2>WSIF Developer Guide</h2>
  +<h3>
  +
  +    <a name="CustomisingIt"></a>How can I customize my WSIF
  +    installation?</h3>
  +<p>This part of documentation is meant to help developers who want to modify 
  +WSIF by adding or changing its providers and implementing new protocols.</p>
  +    <p>There are many points within the WSIF API that allow for
  +    customization. <a href="doc/samples.html">An advanced WSIF sample</a>
  +    demonstrates how to write your own WSIF service factory so that
  +    dynamic binding selection follows your own customized
  +      algorithm. The user can discover other customization points by
  +      examining <a
  +                
href="http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-axis-wsif/java/docs/apidocs/index.html";>WSIF's
 core API</a>.</p>
  +    <p>Larger scale customization involves finding ways to expose
  +      software that uses your proprietary protocols through WSDL, so
  +      that you can then access this software using WSIF's APIs. To do
  +      this, you need to take care of the following:</p>
  +    <ol>
  +      <li><a href="doc/how_to_wsdl_extensions.htm">Writing your own WSDL
  +       extensions to support new protocols</a></li>
  +      <li><a href="doc/how_to_provider.htm">Writing your own WSIF
  +       providers to support customized WSIF extensions</a></li>
  +    </ol>
  +<p>You may find also useful read&nbsp; WSIF documentation is with descriptions of 
the WSIF
  +<a href="doc/wsdl_extensions/java_extension.html">Java</a>
  +and <a href="doc/wsdl_extensions/ejb_extension.html">EJB</a>
  +bindings.</p>
  +<p>You may find also useful to read about using <a 
href="doc/mime_attachments.htm">Soap
  +  Attachments using WSIF</a> and always important when debugging on&nbsp; <a 
href="doc/trace.htm">
  +how to use tracing in WSIF</a>.<BR>
   <BR>
   
  -<h3>Prerequisites</h3>
  -<P>A J2SE v1.3 SDK (eg from <A href="http://java.sun.com/j2se";>Java J2SE site</A>) 
and the Apache Jakarta Ant tool to build wsif. Ant is available at the <A 
href="http://jakarta.apache.org/ant";>Apache ANT website</A>.
  -To build WSIF the jars from the following packages are 
required:</P><BLOCKQUOTE><TABLE width="90%">
  -     <TBODY>
  -             
  -     <TR>
  -                     <TD width="573">JAXP compliant XML parser, such as <A 
href="http://xml.apache.org/xerces2-j/index.html";>Apache Xerces</A>.</TD>
  -                     <TD width="367">xercesImpl.jar xmlParserAPIs.jar</TD>
  -             </TR>
  -     <TR>
  -                     <TD width="573">WSDL for Java API (WSDL4J),  from the <A 
href="http://www-124.ibm.com/developerworks/projects/wsdl4j/";>IBM developerWorks 
site</A>.
  -  </TD>
  -                     <TD width="367">wsdl4j.jar qname.jar</TD>
  -             </TR>
  -     <TR>
  -                     <TD width="573">Apache SOAP,  from  the <A 
href="http://xml.apache.org/soap";>Apache SOAP site</A></TD>
  -                     <TD width="367">soap.jar</TD>
  -             </TR>
  -     <TR>
  -                     <TD width="573">Apache Axis,  from  the <A 
href="http://xml.apache.org/axis";>Apache Axis site</A></TD>
  -                     <TD width="367">axis.jar saaj.jar jaxrpc.jar 
commons-logging.jar</TD>
  -             </TR>
  -     <TR>
  -                     <TD width="573">J2EE  1.3 from the <A 
href="http://java.sun.com/j2ee/";>Java J2EE site</A></TD>
  -                     <TD width="367">j2ee.jar</TD>
  -             </TR>
  -     
  -     </TBODY>
  -</TABLE>
  -</BLOCKQUOTE>
  -<P>Currently, in order to successfully build WSIF, all the above prerequisites 
  -are required no matter which providers are going to be used.</P>
  -
  -<h2><a name="sourcecode">Accessing Builds and Source Code</a></h2>
  -<p>The source code for this package is available on the Apache web site. Individual 
  -files can be accessed using the web-based 
  -<a href="http://cvs.apache.org/viewcvs.cgi/xml-axis-wsif/"; target="_blank">CVS 
interface</a>. 
  -The entire package can be downloaded using the following instructions.</p>
  -
  -<h3><b><font size="+1">Accessing the Nightly Builds</font></b></h3>
  -<p>This package is built nightly along with Axis. The build will create two
  -zip files: wsif-bin-1.2.zip and xml-axis.wsif-src.zip. The first file contains a
  -complete build image, which includes wsif.jar and the API Javadoc. The second file 
contains  a copy of the source code, which could
  -be built using Ant. Both of these files can be accessed at the same location
  -as the <a href="http://cvs.apache.org/dist/axis/nightly/"; target="_blank">Axis 
nightly builds</a>.</p>
  -
  -<H3><B><FONT size="+1">Accessing the Source Tree (AnonCVS)</FONT></B></H3>
  -<p>So, you've decided that you need access to the source tree to see the latest
  -and greatest code. There's two different forms of CVS access. The first
  -is anonymous and anybody can use it. The second is not and you must have
  -a login to the development server. If you don't know what this means, join
  -the <a href="http://xml.apache.org/axis/mail.html";>mailing list</a> and find 
out.</p>
  -<p>Anyone can checkout source code from our anonymous CVS server. To do so, 
  -simply use the following commands (if you are using a GUI CVS client, configure 
  -it appropriatly): 
  -
  -</p><blockquote>
  -<table width="90%">
  -<tbody>
  -<tr bgcolor="#f2c0f6">
  -<td>
  -      <pre>cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic login
  -password: anoncvs
  -
  -cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic checkout xml-axis-wsif</pre>
  -      </td>
  -    </tr>
  -  </tbody>
  -</table>
  -</blockquote>
  -<h3><b><font size="+1">Full Remote CVS Access</font></b> </h3>
  -<p>If you are a <i>Committer</i> and have a login on the 
  -Apache development server, this section is for you. If you are not a Committer, 
  -but you want to submit patches or even request commit privelages, please see the 
  -<a href="http://jakarta.apache.org/site/guidelines.html"; target="newone">Jakarta 
  -GuideLines </a>page (we follow the same rules) for more information. 
   </p>
  -<p>To have full access to the CVS server, you need to follow the links depending 
  -on the operating system you are using: 
  -
  -</p><ul>
  -<li><a href="http://jakarta.apache.org/site/cvsonunix.html"; target="new">Unix</a> 
  -</li><li><a href="http://jakarta.apache.org/site/cvsonwin32.html"; 
target="new">Windows</a> </li>
  -</ul>
  -<h2>Building wsif</h2>
  -<ul>
  -  <li>Obtain all the necessary jar files as listed in the prerequisites.
  -  </li><li>Set required environment variables, including,
  -  JAVA_HOME, ANT_HOME.
  -  </li><li>From the root directory of wsif (where build.xml is located), run
  -  <pre>ant -Dwsif.build.classpath=&lt;classpath&gt; &lt;target&gt;</pre>
  -  where &lt;classpath&gt; contains the location of the preequisite JAR files<br>
  -  <br>
  -  and, where &lt;target&gt; is one of the following:
  -  <ul>
  -    <li>compile: Compiles the API
  -    </li><li>samples: Compiles the samples
  -    </li><li>javadocs: Builds the javadoc
  -    </li><li>srcdist: Creates the source distribution
  -    zip file.
  -    </li><li>dist: Creates the binary distribution zip
  -    file.
  -    </li><li>clean: Removes built files.
  -    </li><li>all: Cleans, creates source and binary distribution
  -    zip files.
  -  </li></ul>
  -</li></ul>
   
   <h2>More documentation</h2>
   <P>More documentation is available in <a href="doc">doc/ subdirectory</a> and 
   includes:</P>
   
  -<ul>
  -  <li><a href="doc/faq.htm">WSIF FAQ</a></li>
  -  <li><a href="doc/build.htm">How to build WSIF</a></li>
  -  <li>How to run tests WSIF</li>
  -  <li><a href="doc/how_to_provider.htm">How To Write WSIF Provider</a></li>
  -  <li><a href="doc/how_to_wsdl_extensions.htm">How to write your own WSDL 
  -  extensions and plug them into WSDL4J</a></li>
  -  <li>Information about using <a href="doc/mime_attachments.htm">Soap 
  -  Attachments using WSIF</a> and about <a href="doc/trace.htm">using trace</a></li>
  -  <li><a href="doc/samples.html">How to run the samples</a></li>
  -</ul>
  -
   <h2>Getting help</h2>
  -<P>WSIF shares the Apache AIXS <A 
href="http://xml.apache.org/axis/mail.html";>mailing lists</A> 
  -axis-user and axis-dev. To aid identifying posts about WSIF, the prefix [WSIF] 
should be added to each posts subject line.</P>
  +<P>WSIF shares the Apache AXIS <a 
href="http://xml.apache.org/axis/mail.html";>mailing lists</a>
  +axis-user and axis-dev. To aid identifying posts about WSIF, the prefix 
<b>[wsif]</b> should be added to each posts subject line.</P>
  +
  +    <a name="ContributingToIt"></a><h2>How can I contribute to WSIF?</h2>
  +    <p>You can contribute to WSIF by participating in discussions on
  +      the <A href="http://xml.apache.org/axis/mail.html";>axis-user and
  +     axis-dev mailing lists</A>. Be sure to prefix the subject of your
  +      WSIF-related emails with <tt>[wsif]</tt>. If you find something
  +      that outstanding issue or bug that interests you, feel free to
  +      download WSIF's source code and work on it. Below you will find
  +      instructions for accessing the source code.</p>
  +    <p>You can find a list of outstanding bugs from <a
  +                                                    
href="http://nagoya.apache.org/bugzilla/buglist.cgi?long_desc=wsif&long_desc_type=allwordssubstr";>Bugzilla</a>.</p>
   
   <h2>Reference</h2>
   <ul>
     <li><a href="http://www.research.ibm.com/people/b/bth/OOWS2001/duftler.pdf";>WSIF 
Framework proposal</a>
  -  </li><LI><A href="http://www.alphaworks.ibm.com/tech/wsif";>IBM's original 
alphaWorks WSIF site</A></LI>    
  -     <LI>The W3C <A href="http://www.w3.org/TR/wsdl";>Web Services Description 
Language (WSDL) specification</A>, 
  -         <A href="http://www.jcp.org/jsr/detail/110.jsp";>JSR110</A> describing the 
Java APIs for WSDL, and the   
  -         <A 
href="http://oss.software.ibm.com/developerworks/projects/wsdl4j";>WSDL4J</A> 
opensource site.</LI>
  +  </li><LI><A href="http://www.alphaworks.ibm.com/tech/wsif";>IBM's original 
alphaWorks WSIF site</A></LI>
  +     <LI>The W3C <A href="http://www.w3.org/TR/wsdl";>Web Services Description 
Language (WSDL) specification</A>,
  +         <A href="http://www.jcp.org/jsr/detail/110.jsp";>JSR110</A> describing the 
Java APIs for WSDL, and the
  +         <A 
href="http://oss.software.ibm.com/developerworks/projects/wsdl4j";>WSDL4J</A> open 
source site.</LI>
        <LI>IBM developerWorks articles <A 
href="http://www-106.ibm.com/developerworks/webservices/library/ws-wsif.html";>Web 
service invocation sans SOAP</A>
            and <A 
href="http://www-106.ibm.com/developerworks/webservices/library/ws-appwsif.html?loc=dwmain";>Applying
 the Web services invocation framework</A></LI>
        <LI><A 
href="http://www.ericleach.com/sa2002/presentations/PFremantle-IBM.pdf";>A presentation 
from Paul Fremantle at the 2002 Software Architecture conference</A></LI>
  
  
  


Reply via email to