blob: e0e411a3fa3aec39146194241e4a038afb91d861 [file] [log] [blame]
<!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>