<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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">
<title>WebServices - Axis</title>
</head>
<body bgcolor="white" class="composite">
<div id="banner">
<table width="100%" cellpadding="0" cellspacing="0" summary="banner" border="0">
<tbody>
<tr>
<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.png"></a>
</div>
</td><td nowrap="1" width="100%" align="left">
<div class="projectTitleImg">
<br>
<a href=""><img border="0" class="logoImage" alt="Web Services - Axis" src="../images/wsaxis.png"></a>
</div>
</td><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/axis3.jpg"></a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
<tbody>
<tr class="status">
<td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.apache.org/">Apache</a> | <a href="http://ws.apache.org/">Web Services</a> | <a href="http://ws.apache.org/axis/">Axis</a></td><td nowrap="1" align="right">
<form method="get" action="http://www.google.com/search" target="_blank">Search <input type="hidden" name="sitesearch" value="ws.apache.org"><input type="text" id="query" name="q" size="10"><img class="spacer" src="skin/images/spacer.gif" alt="" width="5" height="1"><input type="submit" value="Go" name="Search">
</form>
</td>
</tr>
</tbody>
</table>
<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
<tbody>
<tr valign="top">
<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://wiki.apache.org/ws/FrontPage/Axis">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">SVN 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 class="menuItem">
<a href="../howtobuild.html">HowToBuildSite</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/releases.html">Releases</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="http://ws.apache.org/axis/cpp/index.html">Home</a>
</div>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/cpp/documentation.html">Documentation</a>
</div>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/cpp/download.html">Download</a>
</div>
  
<div class="menuItem">
<a href="http://wiki.apache.org/ws/FrontPage/AxisCPP">Wiki Pages</a>
</div>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/cpp/who.html">Who we are</a>
</div>
 
</div>

<div class="menu">
<span class="menuLabel">Downloads</span>
  
<div class="menuItem">
<a href="../interim.html">Interim Drops</a>
</div>
  
<div class="menuItem">
<a href="http://svn.apache.org/viewcvs.cgi/webservices/axis/trunk/">Source Code</a>
</div>

</div>

<div class="menu">
<span class="menuLabel">Translation</span>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/ja/index.html">Japanese</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://ws.apache.org/juddi/">jUDDI</a>
</div>
  
<div class="menuItem">
<a href="http://wsdl4j.sourceforge.net">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="../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><td>
<div id="bodycol">
<div class="app">
<div class="h3"> 
   
   
    
<div class="h3">
<h3>WebServices - Axis - SOAPVerse</h3>
</div>
      

<p>
Hi folks!
</p>

<p>
This is a quick writeup of an idea that a bunch of folks had last week while
discussing interoperability demos and tests. It's a pretty simple system
which we thought was a) fun, b) technically interesting, and c) quite a
compelling demo. I'd like to know what people think of the idea - is this
too ambitious, is it something you'd be psyched to help design/implement,
is it cool?
</p>

<p>
The SOAPVerse : A long-term SOAP interoperability demo<br>
------------------------------------------------------<br>

</p>

<p>
[1.0 Introduction - the view from outside]
</p>

<p>
I'll start explaining the idea by giving a brief scenario. You connect a
browser to SOAPVerse.org, which gives you three choices - 1) enter the
SOAPVerse, 2) look at the map, and 3) learn about joining. You choose #1,
and are offered a list of available clients and "entry portals" (i.e.
clients (no, not "IE clients", necessarily...)) on the web. You choose a
local entry portal, and a Java applet appears, primarily composed of a text
window:
</p>

<p>
--------------<br>
SOAP Tower<br>

</p>

<p>
You stand in the SOAP tower. The floor's a bit slippery here, but you
suspect you could make it to the exits to the NORTH or EAST if you walked
slowly.
</p>

<p>
There is a briefcase sitting here.
</p>

<p>
(this room lives at foo.ibm.com, and is powered by Tomcat/Apache-SOAP 2.1!)
--------------<br>

</p>

<p>
It's a text adventure, much like Zork or Colossal Cave, but a lot simpler.
The interesting part happens when you move to the East:
</p>

<p>
--------------<br>
[a strange feeling overcomes you for a moment as you pass through the door]
</p>

<p>
Campus West
</p>

<p>
You stand on the Microsoft campus, near building 33. You may ENTER, or
travel WEST or SOUTH down the main road.
</p>

<p>
Others in this room : KeithB
</p>

<p>
There is a rubber ducky sitting here.
</p>

<p>
(this room lives at bar.microsoft.com, and is powered by IIS/ASP.NET!)<br>
---------------<br>

</p>

<p>
What just happened is that you smoothly and transparently moved from one
SOAP-based server to another. The servers had to interoperate to "pass you
off", and anyone who wants to go check out the website can see the deeper
technical explanation of what's going on.
</p>

<p>
If you'd selected the "map" option, you'd see a cool graphical depiction of
the whole graph of rooms currently connected to the SOAPVerse, color-coded
by host/server technology.
</p>

<p>
[2.0 Digging a little deeper]
</p>

<p>
That's the basic idea - a totally distributed text adventure game that
demonstrates SOAP interoperability at a number of levels. The actual APIs
are pretty simple, and should be implementable in few days at the most.
</p>

<p>
So if you go to the "join us" section of the site, you end up with several
things. First, a description of the structure of the application, in
enough
detail that you could implement it on your own site. This can (and should)
be in as many forms as possible - english text, WSDL, SDL, IDL, etc....
So you build the server to the spec, in any language/environment/platform
you happen to have handy.
</p>

<p>
Next, you find a form which allows you to test your server once you've got
it up. This causes the SOAPVerse server to run a series of tests against
your endpoint, to see if you can interoperate with it. Assuming that
works,
you can click "hook me up!" and the SOAPVerse server randomly picks a place
on the graph to add your area, and matchmakes a connection between your
server and whoever you're connecting to. The tests should get run again
between you and this new guy, to make sure you two interoperate (you don't
want to just prove interoperation between the "main" server and your impl),
and then if everything looks good, you're now a part of the world, and your
rooms appear on the master map.
</p>

<p>
There's some more detail about which kinds of things we're testing with a
system like this (data serialization, headers, intermediaries?), actual
APIs,
etc. but I'll convey my thoughts about that in a design discussion if
there's
enough community interest in this project.
</p>

<p>
[3.0 Musings]
</p>

<p>
This kind of thing serves at least two purposes. First, it can stay up in
perpetuity, demonstrating SOAP interoperability in a fun way. This should
be something you can always find, and hook new servers into. Second, it's
a
good demo for tradeshow-type events.
</p>

<p>
Obviously there's a lot of opportunity for errors to happen here, so the
system shouldn't assume too much about robustness, and should gracefully
fail in the face of problems. It's meant as an interoperability demo,
not a full-scale game.
</p>

<p>
None of this is at all carved in stone, we just liked the basic idea. It
shouldn't get too complicated, and it shouldn't rely on any particular
implementation.
</p>

<p>
If this could get done by late next month, this could be the actual
technolgy
for the "interopathon" demo which has been discussed for NetWorld/Interop
in May.
</p>

<p>
What do you think?
</p>

<p>
--Glen
</p>
    
  

<div id="pdf" align="right">
<a href="SOAPVerse.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" class="skin"><br>
          PDF</a>
</div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div id="footer">
<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
<tbody>
<tr>
<td colspan="2">
<div align="center">
<div class="copyright">
              Copyright &copy; 2000-2005&nbsp;The Apache Software Foundation. All rights reserved.
            </div>
</div>
</td>
</tr>
<tr>
<td align="left"></td><td align="right">
<div align="right">
<div class="credit"></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
