Another abandoned server code base... this is kind of an ancestor of taskrambler.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

658 lines
23 KiB

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Web Service Management: Service Life Cycle</title>
<link rel="stylesheet" type="text/css"
href="http://www.w3.org/StyleSheets/TR/W3C-WG-NOTE" />
</head>
<body>
<div class="head">
<p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home"
alt="W3C" height="48" width="72" /></a></p>
<h1>Web Service Management: Service Life Cycle</h1>
<h2 id="Note">W3C Working Group Note 11 February 2004</h2>
<dl>
<dt>This version:</dt>
<dd><a
href="http://www.w3.org/TR/2004/NOTE-wslc-20040211/">http://www.w3.org/TR/2004/NOTE-wslc-20040211/</a></dd>
<dt>Latest version:</dt>
<dd><a href="http://www.w3.org/TR/wslc/">http://www.w3.org/TR/wslc/</a></dd>
<dt>Editors:</dt>
<dd>Hao He, The Thomson Corporation</dd>
<dd>Mark Potts, Talking Blocks, Inc.</dd>
<dd>Igor Sedukhin, Computer Associates</dd>
</dl>
<p class="copyright"><a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
© 2004 <a href="http://www.w3.org/"><acronym
title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a
href="http://www.csail.mit.edu/"><acronym
title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
href="http://www.ercim.org/"><acronym
title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a
href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
<a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
use</a> and <a
href="http://www.w3.org/Consortium/Legal/copyright-software">software
licensing</a> rules apply.</p>
</div>
<hr />
<h2 id="Abstract">Abstract</h2>
<p>This document describes the life cycle of a Web service, and of the
processing of a request by a Web service.</p>
<h2 id="Status">Status of this Document</h2>
<p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>
<p>This is a public <a href=
"http://www.w3.org/2003/06/Process-20030618/tr.html#q71">W3C
Working Group Note</a> produced by the <a href="/2002/ws/arch/">Web Services
Architecture Working Group</a>, which is part of the <a href=
"/2002/ws/Activity">Web Services Activity</a>.</p>
<p> This document captures work done by the management task force of
the W3C Web Services Architecture Working Group. The Working Group
felt this work was valuable but beyond the scope needed in the <a href='/TR/2004/NOTE-ws-arch-20040211/'>Web
Services Architecture</a> document.</p>
<p>Discussion of this document is invited on the public mailing list
<a href="mailto:www-ws-arch@w3.org">www-ws-arch@w3.org</a> (<a href=
"http://lists.w3.org/Archives/Public/www-ws-arch/">public
archives</a>).</p>
<p>Patent disclosures relevant to this specification may be found
on the Working Group's <a href=
"http://www.w3.org/2002/ws/arch/2/04/24-IPR-statements">patent
disclosure page</a>.</p>
<p>Publication as a Working Group Note does not imply endorsement by the
W3C Membership. This is a draft document and may be updated, replaced
or obsoleted by other documents at any time. It is inappropriate to
cite this document as other than work in progress. Other documents may supersede this document.</p>
<h2 id="Service">Service Life Cycle</h2>
<p>A service life cycle is expressed in the state transition diagrams below.
There are two separate transition paths: <a href="#Service1">service
itself</a> and <a href="#Request">request processing</a>.</p>
<p>The terminology used is the one defined in the <a
href='http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/'>Web Services Glossary</a>.</p>
<h2 id="Service1">Service</h2>
<p>To be used, a
service must be realized by a concrete provider agent.</p>
<p><img border="0" width="331" height="177"
src="image001.png"
alt="Life cycle of a service" /></p>
<h4 id="States">States</h4>
<ul type="disc">
<li><a name="Up" id="Up"><b>UP</b></a> (compound) &mdash; the
provider agent is
capable of accepting and processing requests (i.e. the service is available).</li>
<li><a name="Down" id="Down"><b>DOWN</b></a> (compound) &mdash; the
provider agent
is not capable of accepting any requests (i.e. the service is not available).</li>
</ul>
<h4 id="Transition">Transitions</h4>
<ul type="disc">
<li><a name="SOL" id="SOL">Start of Life (<b>SOL</b>)</a> &mdash;
the service
starts its life in <a href="#Up">UP</a> state.</li>
<li><a name="EOL" id="EOL">End of Life (<b>EOL</b>)</a> &mdash; the service
ends its life from <a href="#Down">DOWN</a> state.</li>
<li><a name="Activate" id="Activate"><b>Activate</b></a> &mdash; the
service
can become available which transitions it from <a href="#Down">DOWN</a>
to <a href="#Up">UP</a> state.</li>
<li><a name="Passivate" id="Passivate"><b>Passivate</b></a> &mdash; the
service can become unavailable (for many reasons, see <a
href="#DwonSubstates">Down Substates</a>) which transitions it from <a
href="#Up">UP</a> to <a href="#Down">DOWN</a> state.</li>
</ul>
<h4 id="State">State Transition Table</h4>
<table border="1" cellspacing="0" cellpadding="0" width="708">
<tbody>
<tr>
<td valign="top"><p><b>Action</b></p>
</td>
<td valign="top"><p><b>From State</b></p>
</td>
<td valign="top"><p><b>To State</b></p>
</td>
<td valign="top"><p><b>Sub-State</b></p>
</td>
<td valign="top"><p><b>Comment</b></p>
</td>
</tr>
<tr>
<td valign="top"><p>Activate</p>
</td>
<td valign="top"><p><a href="#SOL">None - SOL</a></p>
</td>
<td valign="top"><p><a href="#Up">UP</a></p>
</td>
<td valign="top"><p><a href="#Idle">IDLE</a></p>
</td>
<td valign="top"><p>Instantiated and able to accept requests</p>
</td>
</tr>
<tr>
<td valign="top"><p>Activate</p>
</td>
<td valign="top"><p><a href="#SOL">None - SOL</a></p>
</td>
<td valign="top"><p><a href="#Down">DOWN</a></p>
</td>
<td valign="top"><p><a href="#Stopped">STOPPED</a></p>
</td>
<td valign="top"><p><a>Instantiated but not able to accept
requests</a>&nbsp;</p>
</td>
</tr>
<tr>
<td valign="top"><p>Passivate</p>
</td>
<td valign="top"><p><a href="#Up">UP</a></p>
</td>
<td valign="top"><p><a href="#EOL">None - EOL</a></p>
</td>
<td valign="top"><p align="center">-o-</p>
</td>
<td valign="top"><p>Destroyed</p>
</td>
</tr>
<tr>
<td valign="top"><p>Passivate</p>
</td>
<td valign="top"><p><a href="#Down">DOWN</a></p>
</td>
<td valign="top"><p><a href="#EOL">None - EOL</a></p>
</td>
<td valign="top"><p align="center">-o-</p>
</td>
<td valign="top"><p>Destroyed</p>
</td>
</tr>
</tbody>
</table>
<h3 id="Substates">Up Substates</h3>
<p><img border="0" width="321" height="134"
src="image002.png"
alt="Up substrates" /></p>
<h4 id="States1">States</h4>
<ul type="disc">
<li><a name="Idle" id="Idle"><b>IDLE</b></a> &mdash; the provider agent is not
processing any requests currently.</li>
<li><a name="Busy" id="Busy"><b>BUSY</b></a> &mdash; the provider agent is
processing requests currently.</li>
</ul>
<h4 id="Transition1">Transitions</h4>
<ul type="disc">
<li>A service normally enters <a href="#Up">UP</a> state in <a
href="#Idle">IDLE</a> state.</li>
<li><b>Relieved</b> &mdash; a service enters <a href="#Up">UP</a> state in
<a href="#Busy">BUSY</a> state if it was relieved (from <a
href="#Saturated">DOWN/SATURATED</a>, see <a href="#DwonSubstates">Down
Substates</a>).</li>
<li>A service may transfer from <a href="#Idle">IDLE</a> to <a
href="#Busy">BUSY</a> and vice versa.</li>
<li>A service exits <a href="#Up">UP</a> state from either <a
href="#Idle">IDLE</a> or <a href="#Busy">BUSY</a>.</li>
</ul>
<h4 id="State1">State Transition Table</h4>
<table border="1" cellspacing="0" cellpadding="0" width="708">
<tbody>
<tr>
<td valign="top"><p><b>Action</b></p>
</td>
<td valign="top"><p><b>Super State</b></p>
</td>
<td valign="top"><p><b>Current State</b></p>
</td>
<td valign="top"><p><b>End State</b></p>
</td>
<td valign="top"><p><b>Comment</b></p>
</td>
</tr>
<tr>
<td valign="top"><p>Accepts Request</p>
</td>
<td valign="top"><p><a href="#Up">UP</a></p>
</td>
<td valign="top"><p><a href="#Idle">IDLE</a></p>
</td>
<td valign="top"><p><a href="#Busy">BUSY</a></p>
</td>
<td valign="top"><p>Currently <a href="#Processing">PROCESSING</a>
requests</p>
</td>
</tr>
<tr>
<td valign="top"><p>Completes all processing</p>
</td>
<td valign="top"><p><a href="#Up">UP</a></p>
</td>
<td valign="top"><p><a href="#Busy">BUSY</a></p>
</td>
<td valign="top"><p><a href="#Idle">IDLE</a></p>
</td>
<td valign="top"><p>All requests completed (either <a
href="#FailedDefintion">FAILED</a> or <a
href="#ProcessedDefintion">PROCESSED</a>)</p>
</td>
</tr>
</tbody>
</table>
<h3 id="Down1"><a name="DwonSubstates" id="DwonSubstates">Down
Substates</a></h3>
<p><img border="0" width="329" height="220"
src="image003.png"
alt="Down substrates" /></p>
<h4 id="States2">States</h4>
<ul type="disc">
<li><a name="Stopped" id="Stopped"><b>STOPPED</b></a> &mdash; the service was
intentionally stopped (e.g. for administrative purposes).</li>
<li><a name="Saturated" id="Saturated"><b>SATURATED</b></a> &mdash; the
provider agent has exhausted its resources and cannot accept any new
requests.</li>
<li><a name="Crashed" id="Crashed"><b>CRASHED</b></a> &mdash; the service is
unavailable because of an internal malfunction of the provider agent(e.g. environmental
problem).</li>
</ul>
<h4 id="Transition2">Transitions</h4>
<ul type="disc">
<li>A service enters <a href="#Down">DOWN</a> state in either a <a
href="#Stopped">STOPPED</a>, <a href="#Crashed">CRASHED</a> or <a
href="#Saturated">SATURATED</a> state.</li>
<li><b>Stopped</b> - A service may be <a href="#Stopped">stopped</a> from
any <a href="#Up">UP</a> or <a href="#Down">DOWN</a> state.</li>
<li><b>Relieve</b> &mdash; a service is relieved from <a
href="#Saturated">saturation</a> and exits a <a href="#Down">DOWN</a>
state (transitioning to an <a href="#Up">UP</a>/<a href="#Busy">BUSY</a>
state).</li>
<li><b>Recover</b> &mdash; a service was (automatically) recovered from
malfunction and exits the <a href="#Down">DOWN</a> state. It enters its
<a href="#Up">UP</a> state in the <a href="#Idle">IDLE</a> state</li>
<li><b>Restart</b> &mdash; a service was started again (manually) and
exists a <a href="#Down">DOWN</a> state. It naturally transitions to an
<a href="#Up">UP</a>/<a href="#Idle">IDLE</a> state.</li>
<li><b>Administrate</b> &mdash; a service can be <a
href="#Stopped">stopped</a> from being <a href="#Crashed">crashed</a>
(manually) for administration and maintenance. <b></b></li>
</ul>
<h4 id="State2">State Transition Table</h4>
<table border="1" cellspacing="0" cellpadding="0" width="708">
<tbody>
<tr>
<td valign="top"><p><b>Action</b></p>
</td>
<td valign="top"><p><b>Super State</b></p>
</td>
<td valign="top"><p><b>Current State</b></p>
</td>
<td valign="top"><p><b>End State</b></p>
</td>
<td valign="top"><p><b>Comment</b></p>
</td>
</tr>
<tr>
<td valign="top"><p>Manual Administration</p>
</td>
<td valign="top"><p><a href="#Up">UP</a></p>
</td>
<td valign="top"><p><a href="#Idle">IDLE</a> or <a
href="#Busy">BUSY</a></p>
</td>
<td valign="top"><p><a href="#Stopped">STOPPED</a></p>
</td>
<td valign="top"><p>No longer accepting requests because of
administrative action</p>
</td>
</tr>
<tr>
<td valign="top"><p>Malfunction</p>
</td>
<td valign="top"><p><a href="#Up">UP</a></p>
</td>
<td valign="top"><p><a href="#Idle">IDLE</a> or <a
href="#Busy">BUSY</a></p>
</td>
<td valign="top"><p><a href="#Crashed">CRASHED</a></p>
</td>
<td valign="top"><p>Malfunction in any <a href="#Up">UP</a> state</p>
</td>
</tr>
<tr>
<td valign="top"><p>Accepts Request</p>
</td>
<td valign="top"><p><a href="#Up">UP</a></p>
</td>
<td valign="top"><p><a href="#Busy">BUSY</a></p>
</td>
<td valign="top"><p><a href="#Saturated">SATURATED</a></p>
</td>
<td valign="top"><p>No longer accepting requests due to exhausted
resources</p>
</td>
</tr>
<tr>
<td valign="top"><p>Administrate</p>
</td>
<td valign="top"><p><a href="#Down">DOWN</a></p>
</td>
<td valign="top"><p><a href="#Crashed">CRASHED</a> or <a
href="#Saturated">SATURATED</a></p>
</td>
<td valign="top"><p><a href="#Stopped">STOPPED</a></p>
</td>
<td valign="top"><p>No longer accepting requests because of
administrative action</p>
</td>
</tr>
<tr>
<td valign="top"><p>Processed or Failed Request(s)</p>
</td>
<td valign="top"><p><a href="#Down">DOWN</a></p>
</td>
<td valign="top"><p><a href="#Saturated">SATURATED</a></p>
</td>
<td valign="top"><p><a href="#Busy">BUSY</a></p>
</td>
<td valign="top"><p>Resources available after being exhausted such that
requests can again be accepted</p>
</td>
</tr>
<tr>
<td valign="top"><p>Recovery</p>
</td>
<td valign="top"><p><a href="#Down">DOWN</a></p>
</td>
<td valign="top"><p><a href="#Crashed">CRASHED</a></p>
</td>
<td valign="top"><p><a href="#Idle">IDLE</a></p>
</td>
<td valign="top"><p>Accepting requests again after a malfunction</p>
</td>
</tr>
<tr>
<td valign="top"><p>Restart</p>
</td>
<td valign="top"><p><a href="#Down">DOWN</a></p>
</td>
<td valign="top"><p><a href="#Crashed">CRASHED</a> or <a
href="#Stopped">STOPPED</a></p>
</td>
<td valign="top"><p><a href="#Idle">IDLE</a></p>
</td>
<td valign="top"><p>Accepting requests again after being restarted</p>
</td>
</tr>
<tr>
<td valign="top"><p>Manual Administration</p>
</td>
<td valign="top"><p><a href="#Down">DOWN</a></p>
</td>
<td valign="top"><p><a href="#Crashed">CRASHED</a></p>
</td>
<td valign="top"><p><a href="#Stopped">STOPPED</a></p>
</td>
<td valign="top"><p>No longer <a href="#Crashed">CRASHED</a> but not
accepting requests</p>
</td>
</tr>
</tbody>
</table>
<p></p>
<h2 id="Request">Request Processing</h2>
<p><img border="0" width="500" height="136"
src="image004.png"
alt="Life cycle of a request processing" /></p>
<h4 id="States3">States</h4>
<ul type="disc">
<li><a name="RequestReceived" id="RequestReceived"><b>Request
Received</b></a> &mdash; the provider agent has accepted a request to perform one
of the service's functional responsibilities.</li>
<li><a name="Processing" id="Processing"><b>Processing</b></a>
&mdash; the
provider agent is doing some internal processing/execution to fulfill the
requested function.</li>
<li><a name="ProcessedDefintion"
id="ProcessedDefintion"><b>Processed</b></a> &mdash; the provider agent
successfully completed requested function returning results to the
requester agent.</li>
<li><a name="FailedDefintion" id="FailedDefintion"><b>Failed</b></a>
&mdash; the provider agent encountered an error and didn't complete the requested
function, returning error to the requester agent.</li>
</ul>
<h4 id="Transition3">Transitions</h4>
<ul type="disc">
<li>A service starts request <a href="#Processing">processing</a> when it
accepts (receives) a <a href="#RequestReceived">request</a>.</li>
<li>A service starts execution (actual <a
href="#Processing">processing</a>) after it received a <a
href="#RequestReceived">request</a>.</li>
<li>A service transitions to either <a
href="#ProcessedDefintion">processed</a> or <a
href="#FailedDefintion">failed</a> state depending on the outcome of the
<a href="#Processing">processing</a>/execution stage.</li>
<li>A service exits request <a href="#Processing">processing</a> from
either <a href="#ProcessedDefintion">processed</a> or <a
href="#FailedDefintion">failed</a> state (which are mutually exclusive
according to the previous transition).</li>
</ul>
<h4 id="State3">State Transition Table</h4>
<table border="1" cellspacing="0" cellpadding="0" width="624">
<tbody>
<tr>
<td valign="top"><p><b>Action</b></p>
</td>
<td valign="top"><p><b>Current State</b></p>
</td>
<td valign="top"><p><b>End State</b></p>
</td>
<td valign="top"><p><b>Comment</b></p>
</td>
</tr>
<tr>
<td valign="top"><p>Accepts Request</p>
</td>
<td valign="top"><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -o-</p>
</td>
<td valign="top"><p><a href="#RequestReceived">REQUEST RECEIVED</a></p>
</td>
<td valign="top"><p>Request received by the Service</p>
</td>
</tr>
<tr>
<td valign="top"><p>Process the Request</p>
</td>
<td valign="top"><p><a href="#RequestReceived">REQUEST RECEIVED</a></p>
</td>
<td valign="top"><p><a href="#Processing">PROCESSING</a></p>
</td>
<td valign="top"><p>Commence execution of service function based on
request received</p>
</td>
</tr>
<tr>
<td valign="top"><p>Completion of processing</p>
</td>
<td valign="top"><p><a href="#Processing">PROCESSING</a></p>
</td>
<td valign="top"><p><a href="#ProcessedDefintion">PROCESSED</a></p>
</td>
<td valign="top"><p>Successful completion of function executed based on
the request received</p>
</td>
</tr>
<tr>
<td valign="top"><p>Failure in processing</p>
</td>
<td valign="top"><p><a href="#Processing">PROCESSING</a></p>
</td>
<td valign="top"><p><a href="#FailedDefintion">FAILED</a></p>
</td>
<td valign="top"><p>Unsuccessful completion of function executed based
on the request received</p>
</td>
</tr>
</tbody>
</table>
<h2 id="Acknowledg">Acknowledgements</h2>
<p>This document was authored by the management task force of the Web
Services Architecture Working Group: Zulah Eckert (HP), Hao He (Thomson), Yin-Leng Husband
(HP), Heather Kreger (IBM), Mark Potts
(Talking Blocks), Igor Sedukhin (CA).</p>
<p>This document is a product of the <a href=
"http://www.w3.org/2002/ws/arch/">Web Services Architecture Working
Group</a>.</p>
<p>
Members of the Working Group are
(at the time of writing, and by alphabetical order):
Geoff
Arnold
(Sun Microsystems, Inc.), Mukund
Balasubramanian
(Infravio, Inc.), Mike
Ballantyne
(EDS), Abbie
Barbir
(Nortel Networks), David Booth
(W3C), Mike
Brumbelow
(Apple), Doug
Bunting
(Sun Microsystems, Inc.), Greg
Carpenter
(Nokia), Tom
Carroll
(W. W. Grainger, Inc.), Alex Cheng
(Ipedo), Michael
Champion
(Software AG), Martin
Chapman
(Oracle Corporation), Ugo
Corda
(SeeBeyond Technology Corporation), Roger
Cutler
(ChevronTexaco), Jonathan
Dale
(Fujitsu), Suresh
Damodaran
(Sterling Commerce(SBC)), James
Davenport
(MITRE Corporation), Paul Denning
(MITRE Corporation), Gerald
Edgar
(The Boeing Company), Shishir Garg
(France Telecom), Hugo Haas
(W3C), Hao He
(The Thomson Corporation), Dave
Hollander
(Contivo), Yin-Leng
Husband
(Hewlett-Packard Company), Mario Jeckle
(DaimlerChrysler Research and Technology), Heather
Kreger
(IBM), Sandeep
Kumar
(Cisco Systems Inc), Hal Lockhart
(OASIS), Michael
Mahan
(Nokia), Francis
McCabe
(Fujitsu), Michael
Mealling
(VeriSign, Inc.), Jeff
Mischkinsky
(Oracle Corporation), Eric Newcomer
(IONA), Mark
Nottingham
(BEA Systems), David
Orchard
(BEA Systems), Bijan Parsia
(MIND Lab), Adinarayana
Sakala
(IONA), Waqar
Sadiq
(EDS), Igor
Sedukhin
(Computer Associates), Hans-Peter
Steiert
(DaimlerChrysler Research and Technology), Katia Sycara
(Carnegie Mellon University), Bryan
Thompson
(Hicks &amp; Associates, Inc.), Sinisa
Zimek
(SAP).</p>
<p>Previous members of the Working Group were: Assaf
Arkin (Intalio, Inc.), Daniel Austin (W. W. Grainger, Inc.), Mark Baker (Idokorro Mobile, Inc. / Planetfred, Inc.),
Tom Bradford (XQRL, Inc.), Allen Brown (Microsoft Corporation), Dipto
Chakravarty (Artesia Technologies), Jun Chen (MartSoft Corp.), Alan Davies
(SeeBeyond Technology Corporation), Glen Daniels (Macromedia), Ayse Dilber
(AT&amp;T), Zulah Eckert (Hewlett-Packard Company), Colleen Evans (Sonic Software), Chris Ferris (IBM), Daniela
Florescu (XQRL Inc.), Sharad Garg (Intel), Mark Hapner (Sun Microsystems,
Inc.), Joseph Hui (Exodus/Digital Island), Michael Hui (Computer Associates),
Nigel Hutchison (Software AG), Marcel Jemio (DISA), Mark Jones (AT&amp;T),
Timothy Jones (CrossWeave, Inc.), Tom Jordahl (Macromedia), Jim Knutson
(IBM), Steve Lind (AT&amp;T), Mark Little (Arjuna), Bob Lojek (Intalio, Inc.), Anne Thomas Manes
(Systinet), Jens Meinkoehn (T-Nova Deutsche Telekom Innovationsgesellschaft),
Nilo Mitra (Ericsson), Don Mullen (TIBCO Softwar.e, Inc.), Himagiri Mukkamala (Sybase, Inc.), Joel Munter (Intel), Henrik Frystyk Nielsen (Microsoft
Corporation), Duane Nickull (XML Global Technologies), David Noor (Rogue Wave
Software), Srinivas Pandrangi (Ipedo), Kevin Perkins (Compaq), Mark
Potts
(Talking Blocks, Inc), Fabio Riccardi (XQRL, Inc.), Don Robertson
(Documentum), Darran Rolls (Waveset Technologies, Inc.), Krishna Sankar
(Cisco Systems Inc), Jim Shur (Rogue Wave Software), Patrick Thompson (Rogue
Wave Software), Steve Vinoski (IONA), Scott Vorthmann (TIBCO Software, Inc.),
Jim Webber (Arjuna), Prasad Yendluri (webMethods, Inc.),
Jin Yu (MartSoft Corp.) .</p>
</body>
</html>