<!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 - Summary of Apache/Microsoft Interoperability Meeting</h3>
</div>
      

<p>
Summary of Apache/Microsoft Interoperability Meeting<br>
March 12-14, 2001
</p>

<p>
From Apache: Glen Daniels, Jim Stearns, Doug Davis<br>
From MS: (main contacts) Keith Ballinger, Andrew Layman, Eric Andrae
</p>

<p>
Most of the 3 days were spent testing Apache SOAP v2.1 and Axis against
the 5 different versions of SOAP MS has (one being an IE client).
Since Axis doesn't have serialization support yet (just Strings) it
was limited in what it could do, but for those simple tests that
did NOOPs or tested Strings it did ok as a client and a server (just
a few minor tweaks were needed).
</p>

<p>
Apache SOAP v2.1 did much better.  There were a few bugs (and holes)
that were discovered but Glen was able to track them down and, I think,
fix all of them.  He's in the process of trying to see if the
fixes can be integrated back into the cvs tree, but is unsure about
one of the fix's impact on the MIME support - but we'll see.
</p>

<p>
MS has 5 different versions of SOAP and they've been doing some of
their own interoperability testing internally so I think they were
able to flush out most(all) of their differences before we got there.
However, we did manage to find a bug (or two?) in their code 8-)
but overall they had things pretty well covered.
</p>

<p>
For better or worse, MS is very WSDL dependent. If the industry is
headed down the path of basically requiring WSDL then Apache might
need to do so as well.
</p>

<p>
We had two strategy meetings in which we discussed how to improve
interoperability testing/conformance in the future, not just between
Apache and MS but everyone.  We decided to set-up a consortium in
which different SOAP implementations can join and test their version
of SOAP against the others in the group.  The main purpose of the
group would be to focus attention on interoperability issues and not
necessarily prove conformance to the SOAP spec.  While we will have
testcases that we "believe" test some aspects of conformance we can
not be the defining authority on who is, or is not, spec compliant.
All we can do is pretty much help people say that their SOAP code
can, or can not, play nicely with others in the group.  That being
said, there are some definite MUSTs and MUST NOTs in the spec and
we will have some tests that test those so we'll be walking a fine
line.
</p>

<p>
We will also group tests based on sections of the SOAP spec.  Not
everyone will want to implement all sections of the spec but will
still want to test conformance based on what they have implemented.
</p>

<p>
To help this "consortium" we're going to set-up a web site
(Jim has already reserved wsinterop.org and soapinterop.org) where
people can post their testcases and test results.  We also talked about
having pointers to "live" servers that people can hit to test their
SOAP implementations.  It wasn't decided how Apache will work this.
<br>
<b>****TODO*****</b>
<br>
We need to get someone to volunteer to set this up/host it.
</p>

<p>
Along the lines of getting interoperability, we discussed showcasing
how nicely we're all playing together.  8-)  In particular we
discussed having a live demo at a conference (maybe NetWorld Interop
in May) where people can hook up their machines in our network of
computers and join in "the game".  "The game" will consist of a fairly
simple maze type of game - each server will own a certain number of
rooms and clients will be able to walk from room to room examining,
and placing, objects in each one.  We'll define a set of base SOAP 
interfaces that people will need to implement and if they do then
they should be able hook-in their server and extend the maze.
</p>

<p>
Glen is working on the write-up of the overall idea and will
distribute it once it's done.  In order to help things along we
agreed to try to have another F2F around the end of April where we
will all get together in a room to hash-out the details of the
game/interfaces and to actually code it up.  I (Dug) have agreed to
see if IBM will host it in Raleigh.  Glen is going to see if 
Allaire (aka Macromedia) will be willing to work on the GUI that
the main-server will use to display the status of the game.
</p>
    
  

<div id="pdf" align="right">
<a href="ms-interop.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>
