shannon     2002/10/19 06:43:23

  Added:       targets/cocoon/userdocs/generators wsproxy-generator.html
  Log:
  site update
  
  Revision  Changes    Path
  1.1                  
xml-site/targets/cocoon/userdocs/generators/wsproxy-generator.html
  
  Index: wsproxy-generator.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Portal Syndication with Web Services and Cocoon</title>
  <STYLE type="text/css">
  a.menu {
        color: #FFFFFF;
      text-align:left;               
      font-size:12px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:plain;
      text-decoration:none;
      padding-left: 14px
  }
  
  A.menu:hover {
        color: #FFCC00
  }
  
  
  .menutitle {
        color: #000000;
      text-align:left;               
      font-size:10px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:bold;
      padding-left: 8px
  }
  .menuselected {
        color: #FFCC00;
      text-align:left;               
      font-size:12px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:bold;
      padding-left: 14px
  }
  </STYLE>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" 
topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img 
border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" 
width="135"></td><td background="images/line.gif" rowspan="1" colSpan="2" 
align="left" valign="top" height="0" width="100%"></td><td align="left" 
valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" 
hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" 
width="100%"><font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" 
size="5">Portal Syndication with Web Services and Cocoon</font></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" colspan="2" width="100%" valign="top" 
height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a target="new" 
href="http://xml.apache.org/";><img border="0" vspace="0" hspace="0" name="xml" 
src="images/button-xml-lo.gif" height="20" width="96" 
alt="http://xml.apache.org/";></a></td><td align="left" valign="top" height="20" 
width="96"><a target="new" href="http://www.apache.org/";><img border="0" 
vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" 
width="96" alt="http://www.apache.org/";></a></td><td align="left" valign="top" 
height="20" width="96"><a target="new" href="http://www.w3.org/";><img 
border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" 
height="20" width="96" alt="http://www.w3.org/";></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td align="left" valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0" 
bgcolor="#a0a0a0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" 
src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="../../index.html">Main</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="../index.html">User Documentation</a></td>
  </tr>
  <tr>
  <td background="images/label-background_b.gif" bgcolor="#959595" 
valign="top"><img width="120" height="6" src="images/separator.gif"><br>
  <span class="menutitle">Generators</span></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="generators.html">Overview</a></td>
  </tr>
  <tr>
  <td background="images/label-background_b.gif" bgcolor="#959595" 
valign="top"><img width="120" height="6" src="images/separator.gif"><br>
  <span class="menutitle">Default</span></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="file-generator.html">File Generator</a></td>
  </tr>
  <tr>
  <td background="images/label-background_b.gif" bgcolor="#959595" 
valign="top"><img width="120" height="6" src="images/separator.gif"><br>
  <span class="menutitle">Core</span></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="html-generator.html">HTML Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="directory-generator.html">Directory Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="imagedirectory-generator.html">Image Directory Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="extractor-generator.html">Fragment Extractor Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="jsp-generator.html">JSP Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="script-generator.html">Script Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="serverpages-generator.html">Server Pages Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="velocity-generator.html">Velocity Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="request-generator.html">Request Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="status-generator.html">Status Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="stream-generator.html">Stream Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="profile-generator.html">Profile Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="error-generator.html">Error Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="search-generator.html">Search Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="linkstatus-generator.html">LinkStatus Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><span class="menuselected">Web 
Service Proxy Generator</span></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="textparser-generator.html">Text Parser Generator</a></td>
  </tr>
  <tr>
  <td background="images/label-background_b.gif" bgcolor="#959595" 
valign="top"><img width="120" height="6" src="images/separator.gif"><br>
  <span class="menutitle">Optional</span></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="php-generator.html">Php Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="xmldb-generator.html">XML:DB Generator</a></td>
  </tr>
  <tr>
  <td valign="top" bgcolor="#959595" 
background="images/label-background_a.gif"><a class="menu" 
href="xmldbcollection-generator.html">XML:DB Collection Generator</a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" 
src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="15" cellpadding="0" border="0">
  <tr>
  <td>
    
    
      <font face="verdana, helvetica, sans serif" size="+2" 
color="#0086b2">What Is Web Syndication?</font>
  <hr style="color: #0086b2" size="1">
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  Web Site Syndication has gained popularity as more and more web sites cross 
reference each other, not only by a single hyperlink, but also by embedding 
parts of their content. The idea was pioneered by Netscape with their Rich Site 
Summary (RSS) (<a 
href="http://www.oasis-open.org/cover/rss.html";>http://www.oasis-open.org/cover/rss.html</a>)
 XML format. RSS was developed in early 1999 to populate Netscape's My Netscape 
portal with external newsfeeds ("channels"). Since then RSS has taken on a life 
of its own and now thousands of Web sites use RSS as a "what's new" mechanism 
to drive traffic their way.      
        </font>
  </p>
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  The current RSS 1.0 standard is an application of Resource Description 
Framework (RDF) (<a 
href="http://www.w3.org/TR/rdf-schema/";>http://www.w3.org/TR/rdf-schema/</a>). 
RDF is a framework for describing and interchanging metadata. The RDF framework 
is extensible and allows adding new types of entities. It also gives meaning to 
resources to enable automated processing of Web resources.
  </font>
  </p>
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  RSS is unarguably an example of an organically grown and widely accepted 
standard. For long it was not endorsed by any of the popular standards 
committees. Even so it quickly became popular and found a large number of 
creative uses. Lately though it has reached its limits. There is a demand for 
more advanced portal syndication which RSS cannot satisfy.
  </font>
  </p>
  
      
  
  
      
  <font face="verdana, helvetica, sans serif" size="+2" color="#0086b2">Going 
beyond RSS with Web services </font>
  <hr style="color: #0086b2" size="1">
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  Latest generation web portals demand more than simply posting cross linked 
news stories from RSS. Embedding and personalizing rich content and behavior 
from remote portals is becoming necessity. Limited success has been achieved 
through complex and sophisticated backend integration via proprietary or Web 
Services compliant protocols. Recognizing the growing demand, influential 
organizations have attempted to develop new languages such as:
  </font>
  </p>
  
  
  <font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Web 
Services Experience Language (WSXL)</b></font>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
        (<a 
href="http://www.webservices.org/index.php/article/articleview/345/";>http://www.webservices.org/index.php/article/articleview/345/</a>)
        </font>
  </p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
          "WSXL is a Web services centric component model for interactive Web 
applications. WSXL   is designed to achieve two main goals: enable businesses 
to distribute Web applications   through       multiple revenue channels, and 
enable new services or applications to be created by   leveraging       
existing applications across the Web."       
          </i>
        </font>
  </p>
  
  
  
  <font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Web 
Services Inspection Language (WSIL)</b></font>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
        (<a 
href="http://www.webservices.org/index.php/article/articleview/85/";>http://www.webservices.org/index.php/article/articleview/85/</a>)
        </font>
  </p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
         "The specification allows a Web services provider to publish a 
WS-Inspection (WSIL) document which lists the services on offer and their 
corresponding WSDL (Web services description language) files. The convention is 
that the WSIL document should be called "inspection.wsil" and be located at a 
common entry point to the web site. This paves the way for future Web services 
"crawlers" to locate and parse WSIL documents for Web service search engines."  
      
          </i>
        </font>
  </p>
  
  
  
  
  <font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Web 
Services for Remote Portals (WSRP)</b></font>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
        (<a 
href="http://www.oasis-open.org/committees/wsrp/";>http://www.oasis-open.org/committees/wsrp/</a>)
        </font>
  </p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
        "Defining an XML and Web services standard that will allow the 
plug-n-play of visual, user-facing Web services with portals or other 
intermediary Web applications"         
          </i>
        </font>
  </p>
  
  
  
  
  <font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Web 
Services for Interactive Applications </b></font>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
        (<a 
href="http://www.oasis-open.org/committees/wsia/";>http://www.oasis-open.org/committees/wsia/</a>)
        </font>
  </p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
        "Create an XML and web services centric framework for interactive web 
applications. The designs must achieve two main goals: enable businesses to 
distribute web applications through multiple revenue channels, and enable new 
services or applications to be created by leveraging existing applications 
across the Web. "       
          </i>
        </font>
  </p>
  
  
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  While these efforts are certainly worthwhile and promising, it will most 
likely take years before they pass the filters of real life use before they can 
claim widespread adoption. All of them ask for a thick infrastructure layer to 
support implementations. While possible, it is unlikely that mainstream 
deployment will be achieved instantly.
  </font>
  </p>
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  Not all is lost though. Fortunately, there is way to satisfy a large portion 
of the syndication requirements by applying already established technologies 
and tools. We will illustrate the architecture of a possible solution using an 
open source framework for XML Publishing - Apache Cocoon.
  </font>
  </p>
  
  
  
  
  
  <font face="verdana, helvetica, sans serif" size="+2" color="#0086b2">Apache 
Cocoon</font>
  <hr style="color: #0086b2" size="1">
  
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
        (<a 
href="http://xml.apache.org/cocoon/index.html";>http://xml.apache.org/cocoon/index.html</a>)
        </font>
  </p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
        "Apache Cocoon is an XML publishing framework that raises the usage of 
XML and XSLT technologies for server applications to a new level. Designed for 
performance and scalability around pipelined SAX processing, Cocoon offers a 
flexible environment based on a separation of concerns between content, logic, 
and style. To top this all off, Cocoon's centralized configuration system and 
sophisticated caching help you to create, deploy, and maintain rock-solid XML 
server applications"    
          </i>
        </font>
  </p>
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  First, let's describe a typical use case scenario: User logs in to a familiar 
portal and happily surfs about. At some point the user clicks on a link which 
leads to a strange page. It has the portal logo, even shows the same login id 
but still looks very different and unfriendly... After some time and 
frustration the user gets used to switching back and forth between the two 
faces of the portal... while looking for another provider which offers both 
services in a coherent graphical interface.
        </font>
  </p>
        
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  For those who have never had similar experience, we will give a popular 
example. Yahoo! Autos (<a 
href="http://autos.yahoo.com/finance.html?refsrc=autos/insurance";>http://autos.yahoo.com/finance.html?refsrc=autos/insurance</a>)
 
  offers an easy to use interactive catalog of cars. However when it comes to 
insuring an automobile, applying for a loan or buying a car, the web site 
hyperlinks to a co-branded page of another company. For example Lending Tree 
  (<a 
href="https://www.lendingtree.com/newauto/secure/ctl_borrower.asp?page=loan_selection&verb=continue&O_loan_type=LOAN_TYPE_AUTO&bp=yahooautos&source=40050&alliance=true&SITEID=&templxlname=&templxssn1=&templxssn2=&templxssn3=";>https://www.lendingtree.com/newauto/.....</a>
 )
   will show Yahoo! Autos logo at the top of the screen, however the rest of 
the page looks very different than any other Yahoo! page. All the 
personalization spoils that a Yahoo! user enjoys are lost as soon as the 
application for a loan begins. Not only the colors and layout are different. A 
login session with Yahoo! does not carry over to Lending Tree. On top of that a 
pop-up window appears when switching between the two sites, which reads "You 
are about to view pages over a secure connection...". When added up these 
"negligible" inadequacies, lead to an overall poor experience, which is 
certainly not the original intent of the Yahoo! content producers.
  </font>
  </p>
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  Now as we have an idea of how things are not supposed to work, we will show 
that outsourcing interactive components to a third party site, while preserving 
the look &amp; feel of the original portal is still possible when done right. 
As we mentioned Cocoon offers a solution. Since Cocoon is a very sophisticated 
framework, an indepth analysis of its features is beyond the scope of this text 
to cover. 
  </font>
  </p>
      
      
      
      
  <font face="verdana, helvetica, sans serif" size="+2" color="#0086b2">Web 
Services Proxy to the rescue</font>
  <hr style="color: #0086b2" size="1">
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  The latest version of Cocoon is 2.1, and it has a new Web Service Proxy 
component. It is this component which we shall focus on for the reminder of the 
text. To follow the rest of the article, it will be useful (but not essential) 
to have a basic knowledge of Cocoon 2.
  </font>
  </p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  Combined with the <a 
href="../../howto/xmlform-wizard/howto-xmlform-wizard.html">XMLForm</a> 
component of Cocoon 2 and XSLT, the Web Service Proxy component allows vendors 
to share interactive content with little effort. The Web Service Proxy takes 
advantage of the fact that a Cocoon web application produces XML content which 
is later translated into multiple presentation formats, like HTML or WML. Once 
the proxy is plugged in the Cocoon sitemap, it transparently pipes browser 
requests to a remote web application and returns the response back to the 
sitemap for local styling. Receiving a client independent XML format, allows 
the local site to pull content and style it with XSLT with the desired Look 
&amp; Feel.
  </font>
  </p>
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <b>
            Q. Ok, styling presentation is easy to understand, but how is a 
form submitted to the original site? 
          </b>
        </font>
  </p>
        
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
        The XMLForm component is the answer. It uses W3C XForms included in the 
XML content which allows the end user to directly interact with the remote 
server through the embedding site. The form markup in the XML content of an 
embedded page uses relative URL address for the target action, when the end 
user submits, the form data is sent to the containing site, which captures the 
form data and the relative URL. The Web Service Proxy then takes this 
information and re-submits it to the original site. It then reads the XML 
response and makes it available to the sitemap for styling again.
        </font>
  </p>
  
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <b>
            Q. Hmm... a typical web application maintains a user session while 
navigating. How is the containing site propagating the end user session to the 
embedded site? 
          </b>
        </font>
  </p>
        
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  The answer is simple. The Web Service Proxy simply hooks to the end user 
session, and automatically starts its own session with the remote site. If the 
remote site requires authentication, then the developer of the local web site 
has to pass the user credentials as parameters to the WebServiceProxyGenerator.
        </font>
  </p>
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <b>
            Q. What transport protocols are supported? 
          </b>
        </font>
  </p>
        
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  HTTP 1.0, HTTP 1.1, HTTPS.
        </font>
  </p>
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  Below we will illustrate the architecture of the solution with some example 
code and figures.
        </font>
  </p>
  
        
  <p align="center">
  <img hspace="4" vspace="4" border="0" alt="Figure 1 - Traditional Http Proxy 
vs Cocoon Web Service Proxy" src="images/wsproxy_Proxies.png"></p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
  Figure 1 - Architecture of the Web Service Proxy Solution. As opposed to a 
traditional proxy server, the Web Services Proxy captures user input and allows 
the web site to remain coherent even when the functionality for some of its 
components is delivered remotely.       
          </i>
        </font>
  </p>
  
  
        
        
  <p align="center">
  <img hspace="4" vspace="4" border="0" alt="Figure 2 - Illustration of the 
data flow for a composite page" src="images/wsproxy_CompositePage.png"></p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
  Figure 2 - Illustration of the data flow for a composite page. Some of the 
content is locally constructed, the rest is obtained remotely. Finally the same 
styling is applied and the user facing page appears consistent.       
          </i>
        </font>
  </p>
        
        
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
        Now we will show a snippet of the sitemap which employs the Web Service 
Proxy. Notice its brevity! The Web Service Proxy completely handles the content 
and navigation logic between the two portals. Only stylesheets are additionally 
required to translate the remotely retrieved documents into a user friendly 
format.
        </font>
  </p>
  
  
        
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" 
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" 
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" 
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img 
border="0" hspace="0" vspace="0" height="1" width="1" 
src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" 
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;?xml version="1.0"?&gt;
    &lt;map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"&gt;
  
      &lt;!-- =========================== Components ==================   --&gt;
      &lt;map:components&gt;
        &lt;map:generators default="file"&gt;
          &lt;map:generator name="wsproxy"
            src="org.apache.cocoon.generation.WebServiceProxyGenerator"
            logger="webapp.wsproxy"/&gt;
        &lt;/map:generators&gt;
      &lt;/map:components&gt;
  
    ....
  
      &lt;!-- =========================== Pipelines ======================      
 --&gt;
      &lt;map:pipelines&gt;
        &lt;map:pipeline&gt;
  
          &lt;!-- Interactive Web Application Syndication  --&gt;
          &lt;map:match pattern="*"&gt;
            &lt;map:generate type="wsproxy"
              
src="http://{header:host}/cocoon/samples/xmlform/wizard?cocoon-view=xml";
              label="xml"/&gt;
            &lt;map:transform src="stylesheets/newWizard2html.xsl" /&gt;
            &lt;map:transform 
src="context://samples/stylesheets/xmlform/xmlform2html.xsl"/&gt;
            &lt;map:serialize type="html"/&gt;
          &lt;/map:match&gt;
        &lt;/map:pipeline&gt;
      &lt;/map:pipelines&gt;
    &lt;/map:sitemap&gt;
    &lt;!-- end of file --&gt;
   
  </pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" 
height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" 
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" 
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" 
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img 
border="0" hspace="0" vspace="0" height="1" width="1" 
src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  
  
        
        
  <p align="center">
  <img hspace="4" vspace="4" border="0" alt="Figure 3 - sequence diagram " 
src="images/wsproxy_Sequence.png"></p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
  Figure 3 - Above is a sequence diagram outlining the interaction between the 
key participants in a syndication session.     
          </i>
        </font>
  </p>
        
        
        
  <p align="center">
  <img hspace="4" vspace="4" border="0" alt="screen shot 1" 
src="images/wsproxy_Screenshot1.png"></p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
  Figure 4 - Sample screenshot from a remotely enabled application as it 
appears standalone.     
          </i>
        </font>
  </p>
        
        
        
  <p align="center">
  <img hspace="4" vspace="4" border="0" alt="screen shot 2" 
src="images/wsproxy_Screenshot2.png"></p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          <i>
  Figure 5 - Sample screenshot from the same application, embedded in another 
web application.   
          </i>
        </font>
  </p>
        
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  The content of the original XML page behind these two screenshot follows:
        </font>
  </p>
        
        
        
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" 
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" 
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" 
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img 
border="0" hspace="0" vspace="0" height="1" width="1" 
src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" 
height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  
   &lt;?xml version="1.0"?&gt;
    &lt;document xmlns:xf="http://xml.apache.org/cocoon/xmlform/2002"&gt;
      &lt;xf:form id="form-feedback" view="userIdentity" action="wizard" 
method="GET"&gt;
        &lt;xf:caption&gt;Personal Information&lt;/xf:caption&gt;
        &lt;error&gt;
          &lt;xf:violations class="error"/&gt;
        &lt;/error&gt;
        &lt;xf:textbox ref="firstName"&gt;
          &lt;xf:caption&gt;First Name&lt;/xf:caption&gt;
          &lt;xf:violations class="error"/&gt;
        &lt;/xf:textbox&gt;
  
        ....
  
        &lt;xf:selectMany ref="role" selectUIType="listbox"&gt;
          &lt;xf:caption&gt;Professional roles&lt;/xf:caption&gt;
          &lt;xf:item&gt;
            &lt;xf:caption&gt;Geek&lt;/xf:caption&gt;
            &lt;xf:value&gt;Geek&lt;/xf:value&gt;
          &lt;/xf:item&gt;
          &lt;xf:item&gt;
            &lt;xf:caption&gt;Hacker&lt;/xf:caption&gt;
            &lt;xf:value&gt;Hacker&lt;/xf:value&gt;
          &lt;/xf:item&gt;
          ....
        &lt;/xf:selectMany&gt;
        ...
        &lt;!-- hidden model attribute --&gt;
        &lt;xf:hidden ref="hidden"&gt;
          &lt;xf:value&gt;true&lt;/xf:value&gt;
        &lt;/xf:hidden&gt;
        ...
        &lt;xf:submit id="next" class="button"&gt;
          &lt;xf:caption&gt;Next&lt;/xf:caption&gt;
        &lt;/xf:submit&gt;
      &lt;/xf:form&gt;
  
      &lt;xf:output ref="count" id="show_count" form="form-feedback" 
class="info"&gt;
        &lt;xf:caption&gt;Visits Count&lt;/xf:caption&gt;
      &lt;/xf:output&gt;
  
    &lt;/document&gt;
  
   
  </pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" 
height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" 
vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" 
bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" 
src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img 
border="0" hspace="0" vspace="0" height="1" width="1" 
src="images/void.gif"></td>
  </tr>
  </table>
  </div>
        
  
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  The listing above contains markup in the XMLForm namespace. It is a 
presentation independent way to specify input controls. Being XForms compliant 
it is easy to learn and use. The XSLT stylesheets used to convert the XML above 
are very simple and will not be listed here. They can found in the Cocoon 2.1 
distribution.
  </font>
  </p>
  
      
      
  <font face="verdana, helvetica, sans serif" size="+2" 
color="#0086b2">Conclusion</font>
  <hr style="color: #0086b2" size="1">
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
  The Web Service Proxy component is tightly integrated with the Cocoon 
framework and is particularly convenient to use in combination with XMLForm to 
enable syndication of Web site functionality. With the presented sample, we 
only scratched the service of the possible applications. It is easy to see 
though for a creative mind how it can be extended in multiple directions. 
Although the solution we offered is conveniently applied with Cocoon, the 
concepts are generally applicable outside the framework as well. Exposing a Web 
Application functionality via XML is not just a "neat" feature any more. It 
opens the gates to a constellation of opportunities, not possible with the 
classical Model-2 approach where the business logic is directly tied to a 
graphical output like HTML.
      </font>
  </p>
      
  <font face="verdana, helvetica, sans serif" size="+1" color="#0086b2"><b>Have 
more questions? </b></font>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          Look at the online demo available in the Cocoon distribution via: 
  <code><font face="courier, 
monospaced">http://localhost:8080/cocoon/samples/webserviceproxy/</font></code>
        </font>
  </p>
        
  <p>
  <font color="black" face="verdana,helvetica,sanserif">
          Then study the source code and if you still have questions, join the 
cocoon users email list and ask. If you have ideas for improvement then you are 
more than welcome to discuss it on the cocoon development email list and 
eventually submit a patch through the Apache bug tracking system.
        </font>
  </p>
      
    
    
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" 
color="#0086b2"><i>Copyright &copy; 1999-2002 The Apache Software Foundation. 
All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to