User: jung    
  Date: 00/12/04 04:35:27

  Modified:    docs/papers soapjBoss.htm
  Log:
  adopted to latest jboss container,
  
  added decimal and date
  
  removed some problems due to forward-referencing in meta-data
  
  added serialisation policy
  
  Revision  Changes    Path
  1.2       +1025 -1025zoap/docs/papers/soapjBoss.htm
  
  Index: soapjBoss.htm
  ===================================================================
  RCS file: /products/cvs/ejboss/zoap/docs/papers/soapjBoss.htm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- soapjBoss.htm     2000/08/10 21:04:55     1.1
  +++ soapjBoss.htm     2000/12/04 12:35:26     1.2
  @@ -1,1025 +1,1025 @@
  -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  -<html xmlns:v="urn:schemas-microsoft-com:vml"
  -xmlns:o="urn:schemas-microsoft-com:office:office"
  -xmlns:w="urn:schemas-microsoft-com:office:word"
  -xmlns="http://www.w3.org/TR/REC-html40">
  -
  -<head>
  -<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  -<meta name=ProgId content=Word.Document>
  -<meta name=Generator content="Microsoft Word 9">
  -<meta name=Originator content="Microsoft Word 9">
  -<link rel=File-List href="./soapjBoss-Dateien/filelist.xml">
  -<link rel=Edit-Time-Data href="./soapjBoss-Dateien/editdata.mso">
  -<!--[if !mso]>
  -<style>
  -v\:* {behavior:url(#default#VML);}
  -o\:* {behavior:url(#default#VML);}
  -w\:* {behavior:url(#default#VML);}
  -.shape {behavior:url(#default#VML);}
  -</style>
  -<![endif]-->
  -<title>Migration Strategy</title>
  -<!--[if gte mso 9]><xml>
  - <o:DocumentProperties>
  -  <o:Subject>Technical White Paper</o:Subject>
  -  <o:Keywords>infor:CE infor:com migration technical logical</o:Keywords>
  -  <o:LastAuthor>Dr. Christoph Georg Jung</o:LastAuthor>
  -  <o:Revision>50</o:Revision>
  -  <o:Created>2000-05-25T09:22:00Z</o:Created>
  -  <o:LastSaved>2000-06-17T07:28:00Z</o:LastSaved>
  -  <o:Pages>8</o:Pages>
  -  <o:Words>4145</o:Words>
  -  <o:Characters>23627</o:Characters>
  -  <o:Category>Technical White Paper</o:Category>
  -  <o:Manager>Dr. Christoph Georg Jung</o:Manager>
  -  <o:Company>infor: business solutions AG</o:Company>
  -  <o:Lines>196</o:Lines>
  -  <o:Paragraphs>47</o:Paragraphs>
  -  <o:CharactersWithSpaces>29015</o:CharactersWithSpaces>
  -  <o:Version>9.2812</o:Version>
  - </o:DocumentProperties>
  -</xml><![endif]--><!--[if gte mso 9]><xml>
  - <w:WordDocument>
  -  <w:HyphenationZone>21</w:HyphenationZone>
  - </w:WordDocument>
  -</xml><![endif]-->
  -<style>
  -<!--
  - /* Font Definitions */
  -@font-face
  -     {font-family:Tahoma;
  -     panose-1:2 11 6 4 3 5 4 4 2 4;
  -     mso-font-charset:0;
  -     mso-generic-font-family:swiss;
  -     mso-font-pitch:variable;
  -     mso-font-signature:553679495 -2147483648 8 0 66047 0;}
  - /* Style Definitions */
  -p.MsoNormal, li.MsoNormal, div.MsoNormal
  -     {mso-style-parent:"";
  -     margin:0cm;
  -     margin-bottom:.0001pt;
  -     mso-pagination:widow-orphan;
  -     font-size:12.0pt;
  -     font-family:"Times New Roman";
  -     mso-fareast-font-family:"Times New Roman";}
  -h1
  -     {margin-right:0cm;
  -     mso-margin-top-alt:auto;
  -     mso-margin-bottom-alt:auto;
  -     margin-left:0cm;
  -     mso-pagination:widow-orphan;
  -     mso-outline-level:1;
  -     font-size:24.0pt;
  -     font-family:"Times New Roman";
  -     mso-font-kerning:18.0pt;
  -     font-weight:bold;}
  -h2
  -     {margin-right:0cm;
  -     mso-margin-top-alt:auto;
  -     mso-margin-bottom-alt:auto;
  -     margin-left:0cm;
  -     mso-pagination:widow-orphan;
  -     mso-outline-level:2;
  -     font-size:18.0pt;
  -     font-family:"Times New Roman";
  -     font-weight:bold;}
  -h3
  -     {mso-style-next:Standard;
  -     margin-top:12.0pt;
  -     margin-right:0cm;
  -     margin-bottom:3.0pt;
  -     margin-left:0cm;
  -     mso-pagination:widow-orphan;
  -     mso-outline-level:3;
  -     font-size:13.0pt;
  -     font-family:Arial;
  -     font-weight:bold;}
  -h4
  -     {mso-style-next:Standard;
  -     margin-top:0cm;
  -     margin-right:0cm;
  -     margin-bottom:0cm;
  -     margin-left:35.4pt;
  -     margin-bottom:.0001pt;
  -     text-align:center;
  -     mso-pagination:widow-orphan;
  -     mso-outline-level:4;
  -     font-size:14.0pt;
  -     mso-bidi-font-size:12.0pt;
  -     font-family:"Times New Roman";
  -     mso-ansi-language:EN-US;
  -     font-weight:bold;}
  -p.MsoCaption, li.MsoCaption, div.MsoCaption
  -     {mso-style-next:Standard;
  -     margin:0cm;
  -     margin-bottom:.0001pt;
  -     text-align:center;
  -     mso-pagination:widow-orphan;
  -     font-size:14.0pt;
  -     mso-bidi-font-size:12.0pt;
  -     font-family:"Times New Roman";
  -     mso-fareast-font-family:"Times New Roman";
  -     mso-ansi-language:EN-US;
  -     font-weight:bold;}
  -p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent
  -     {margin-top:0cm;
  -     margin-right:0cm;
  -     margin-bottom:0cm;
  -     margin-left:36.0pt;
  -     margin-bottom:.0001pt;
  -     mso-pagination:widow-orphan;
  -     font-size:12.0pt;
  -     font-family:"Times New Roman";
  -     mso-fareast-font-family:"Times New Roman";
  -     mso-ansi-language:EN-US;}
  -a:link, span.MsoHyperlink
  -     {color:blue;
  -     text-decoration:underline;
  -     text-underline:single;}
  -a:visited, span.MsoHyperlinkFollowed
  -     {color:purple;
  -     text-decoration:underline;
  -     text-underline:single;}
  -p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
  -     {margin:0cm;
  -     margin-bottom:.0001pt;
  -     mso-pagination:widow-orphan;
  -     background:navy;
  -     font-size:12.0pt;
  -     font-family:Tahoma;
  -     mso-fareast-font-family:"Times New Roman";}
  -p
  -     {margin-right:0cm;
  -     mso-margin-top-alt:auto;
  -     mso-margin-bottom-alt:auto;
  -     margin-left:0cm;
  -     mso-pagination:widow-orphan;
  -     font-size:12.0pt;
  -     font-family:"Times New Roman";
  -     mso-fareast-font-family:"Times New Roman";}
  -address
  -     {margin:0cm;
  -     margin-bottom:.0001pt;
  -     mso-pagination:widow-orphan;
  -     font-size:12.0pt;
  -     font-family:"Times New Roman";
  -     font-style:italic;}
  -pre
  -     {margin:0cm;
  -     margin-bottom:.0001pt;
  -     mso-pagination:widow-orphan;
  -     tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 
412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
  -     font-size:10.0pt;
  -     font-family:"Courier New";
  -     mso-fareast-font-family:"Courier New";
  -     color:black;}
  -tt
  -     {mso-ascii-font-family:"Courier New";
  -     mso-fareast-font-family:"Courier New";
  -     mso-hansi-font-family:"Courier New";
  -     mso-bidi-font-family:"Courier New";}
  -p.Preformatted, li.Preformatted, div.Preformatted
  -     {mso-style-name:Preformatted;
  -     margin:0cm;
  -     margin-bottom:.0001pt;
  -     mso-pagination:widow-orphan;
  -     tab-stops:0cm 47.95pt 95.9pt 143.85pt 191.8pt 239.75pt 287.7pt 335.65pt 
383.6pt 431.55pt 479.5pt;
  -     layout-grid-mode:char;
  -     font-size:10.0pt;
  -     font-family:"Courier New";
  -     mso-fareast-font-family:"Times New Roman";
  -     mso-bidi-font-family:"Times New Roman";}
  -@page Section1
  -     {size:595.3pt 841.9pt;
  -     margin:70.85pt 70.85pt 2.0cm 70.85pt;
  -     mso-header-margin:35.4pt;
  -     mso-footer-margin:35.4pt;
  -     mso-paper-source:0;}
  -div.Section1
  -     {page:Section1;}
  --->
  -</style>
  -<!--[if gte mso 9]><xml>
  - <o:shapedefaults v:ext="edit" spidmax="1034"/>
  -</xml><![endif]--><!--[if gte mso 9]><xml>
  - <o:shapelayout v:ext="edit">
  -  <o:idmap v:ext="edit" data="1"/>
  - </o:shapelayout></xml><![endif]-->
  -</head>
  -
  -<body bgcolor=white lang=DE link=blue vlink=purple style='tab-interval:35.4pt'>
  -
  -<div class=Section1>
  -
  -<p><span lang=EN-US style='mso-ansi-language:EN-US'><a
  -href="http://www.infor.de/">infor:business solutions AG</a>, Technical White
  -Paper Series<o:p></o:p></span></p>
  -
  -<h1 align=center style='text-align:center'><span lang=EN-US 
style='mso-ansi-language:
  -EN-US'>Simple Access to Complex Beans: Integrating SOAP with Enterprise
  -Java-Beans�<o:p></o:p></span></h1>
  -
  -<h2 align=center style='text-align:center'><i><span lang=EN-US
  -style='mso-ansi-language:EN-US'>A Request for Comments<o:p></o:p></span></i></h2>
  -
  -<p align=center style='text-align:center'><strong>Christoph G. Jung </strong></p>
  -
  -<address style='text-align:center'><a href="http://www.infor.de/">infor:business
  -solutions AG</a><br>
  -Vincenz-Prie�nitz-Stra�e 3, D-76131 Karlsruhe<br>
  -e-mail: <a 
href="mailto:[EMAIL PROTECTED]">Christoph.Jung</a>@infor.de,</address>
  -
  -
  -<div class=MsoNormal align=center style='text-align:center'>
  -
  -<hr size=2 width="100%" align=center>
  -
  -</div>
  -
  -
  -<h2><strong><span lang=EN-US 
style='mso-ansi-language:EN-US;font-weight:normal'>Abstract</span></strong><span
  -lang=EN-US style='mso-ansi-language:EN-US'> <o:p></o:p></span></h2>
  -
  -<p class=MsoNormal style='margin-right:36.0pt;mso-margin-top-alt:auto;
  -mso-margin-bottom-alt:auto;margin-left:36.0pt'><i><span lang=EN-US
  -style='mso-ansi-language:EN-US'>Enterprise Java-Beans�</span></i><span
  -lang=EN-US style='mso-ansi-language:EN-US'> provide a promising 
<i>object-oriented</i>
  -and declarative programming platform for business applications. Open-Source
  -projects, such as <i>jBoss</i>, reconcile this technology with the verve of a
  -skilled and motivated development community striving to state-of-the-art
  -implementations with features, such as hot-deploy, compilation-less remote
  -access, modular technical architecture, etc. On the other hand, there is a
  -trend to extend the usage of the <i>eXtensible Markup Language</i> as a
  -replacement for traditional middleware. The <i>Simple Object Access 
Protocol</i>,<span
  -style="mso-spacerun: yes">� </span>for example, that is currently supported by
  -the major players Microsoft and IBM, is close to bridge the gap between
  -inherently COM-based Desktop-Front-Ends and Java�-Based Application-Tiers. In
  -this paper we scetch a possible integration of<span style="mso-spacerun: yes">�
  -</span>XML-middleware and EJB at hand of the two products/specifications jBoss
  -and SOAP. The advantage of this approach is the possibility of a clean and
  -structured development in object-oriented terms as given by the EJB platform
  -paired with a loosely-coupled interoperability infrastructure which has not yet
  -been possible to this extent with ancestor technologies. <o:p></o:p></span></p>
  -
  -
  -<div class=MsoNormal align=center style='text-align:center'>
  -
  -<hr size=2 width="100%" align=center>
  -
  -</div>
  -
  -
  -<h2><a name=introduction><span lang=EN-US style='mso-ansi-language:EN-US;
  -font-weight:normal'>1. Introduction: </span></a><span lang=EN-US
  -style='mso-ansi-language:EN-US;font-weight:normal'>EJB versus XML-based
  -Middleware<o:p></o:p></span></h2>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>In
  -the recent decade, <i>Object-Oriented Programming</i><span style="mso-spacerun:
  -yes">� </span>(OOP) <a href="migration.htm#migration">[5]</a> has ben
  -established as a highly suitable paradigm for building business applications.
  -Besides a well-structured, formalised development cycle including massive tool
  -support, the field has brought up a new generation of<span style="mso-spacerun:
  -yes">� </span>runtime environments called <i>Transaction Processing Monitors</i>
  -(TPM) that are able to take the technical burden of distribution, transaction
  -handling, and security from the application programmers. Premier examples of
  -modern TPM�s are the <i><a href="http://www.microsoft.com/com+">Microsoft 
COM+</a></i>
  -framework (formerly known as the <i>Microsoft Transaction Server</i>, MTS), <i><a
  -href="http://www.bea.com/">Bea�s Tuxedo</a></i> and up-to-date <i><a
  -href="http://www.j2ee.com/">Enterprise JavaBeans�</a></i> (EJB) <a
  -href="migration.htm#migration">[7]</a> products. <o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>Especially
  -the latter, by relying on <i><a href="http://java.sun.com/">Java�</a></i> with
  -its clean programming model, its practical �Write Once, Run Everywhere� vision,
  -and last but not least with its the massive support by industry and individual 
engineers,
  -has developed into a prime OO-platform for the �middle tier�. Much recently,
  -Open-Source projects, such as <a href="http://www.enhydra.org/">Enhydra</a>, <a
  -href="http://www.objectweb.org/">Jonas</a>, and <a 
href="http://www.jboss.org/">jBoss</a>,
  -have entered the EJB�-market and are likely to broaden the technological vision
  -in the middle-term perspective. In <a href="#jboss">Section 2</a>, we will
  -discuss some of the leading concepts behind the jBoss application server.<span
  -style="mso-spacerun: yes">��� </span><o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>A
  -parallel thread of R&amp;D in that area is dedicated to <i>Component-Based
  -Software Engineering </i>(CBSE) <a href="migration.htm#migration">[9]</a>. The
  -basic critique that is uttered against the interface-based <i>COM</i>- or 
<i>CORBA</i>-based
  -middleware of current TPM�s is that they do not allow a loose coupling of
  -individual pieces of software, hindering the plug-and-play of business
  -components in the long run. For this purpose, failure- and versioning-tolerant
  -interaction mechanisms are pushed forwared. <i><a 
href="http://www.mom.org/">Message-Oriented
  -Middleware</a></i> (MoM) with its flexible and asynchronous publish/subscribe
  -model has been rediscovered as a suitable transport and brought up a new
  -generation of products, such as <i><a
  -href="http://www.microsoft.com/products/msmq">Microsoft Message Queue</a> 
</i>(MSMQ),
  -the <i><a href="http://java.sun.com/products/jms">Java Messaging Service</a></i>
  -(JMS), andthelike. <o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>Furthermore,
  -the incredible momentum that the <i><a href="http://www.xml.org/">eXtensible
  -Markup Language</a></i> (XML) has reached much recently and that let people
  -even rethink the future of <a href="http://www.w3c.org/">(X)HTML</a> can be
  -traced back to the question of finding a suitable exchange format between
  -application components. The upcoming <i><a href="http://www.soap.org/">Simple
  -Object Access Protocol</a></i> (SOAP) combines asynchronous HTTP-based
  -messaging with an XML-based data-binding and is backed by, e.g., <a
  -href="http://www.microsoft.com/">Microsoft</a> and <a 
href="http://www.ibm.com/">IBM</a>.
  -By relying on open standards, it has the potential to define the first real
  -cross-platform interoperability infrastructure. We will discuss some of the
  -SOAP details in Section 3.<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>Initially,
  -these two approaches seem not quite compatible being either focussed on
  -strongly-typed compile-time analysis versus weakly-tagged runtime analysis.
  -Indeed, they are however rather complementary giving us combinedly the means to
  -a) safely and comfortably develop application logic in an object-oriented
  -manner and to b) flexibly and transparently deploy this logic within a
  -loosely-coupled framework. With the example of jBoss and SOAP, we will scetch a
  -possible integrative architecture in Section 4 and its prototypical
  -implementation in Section 5 (The Zero-Effort Object Access Package � ZOAP) that
  -is currently implemented in a R&amp;D initiative of <a
  -href="http://www.infor.de/">infor:business solutions AG</a>.<span
  -style="mso-spacerun: yes">� </span>The goal of this initiative is the
  -development of a state-of-the-art runtime environment for <i>Enterprise
  -Resource-Planning</i> (ERP). Preliminary results have been already described in
  -separate technical white papers <a href="migration.htm#migration">[1]</a>, <a
  -href="#paper10">[10]</a>.<o:p></o:p></span></p>
  -
  -<h2><a name=OOP></a><a name=jboss><span style='mso-bookmark:OOP'><span
  -lang=EN-US style='mso-ansi-language:EN-US;font-weight:normal'>2. 
</span></span></a><span
  -style='mso-bookmark:jboss'><span lang=EN-US style='mso-ansi-language:EN-US;
  -font-weight:normal'>jBoss: An Open Source EJB-Server <o:p></o:p></span></span></h2>
  -
  -<span style='mso-bookmark:jboss'></span>
  -
  -<h3 style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>2.1
  -Ingredients of EJB�<o:p></o:p></span></h3>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>EJB�, rather than being a conrete product,
  -appears to be a standardised specification and logical architecture (<a
  -href="#cake">Figure 1</a>) for multi-tiered, object-oriented applications that
  -has been defined by an industrial consortium under the leadership of <a
  -href="http://www.sun.com/">Sun Microsystems Ltd.</a> (SUN), also the inventors
  -of the Java� language.<span style="mso-spacerun: yes">� </span>Each application
  -in the EJB sense consists of a set of<span style="mso-spacerun: yes">� 
</span><i>entity
  -beans</i>, such as of class </span><tt><span lang=EN-US style='font-size:10.0pt;
  -font-family:"Courier New";mso-ansi-language:EN-US'>BusinessPartner</span></tt><span
  -lang=EN-US style='mso-ansi-language:EN-US'> or </span><tt><span lang=EN-US
  -style='font-size:10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'>PurchaseOrder</span></tt><span
  -lang=EN-US style='mso-ansi-language:EN-US'>,<span style="mso-spacerun: yes">�
  -</span>that are the actual subjects or data of the application. The
  -manipulation of entitiy beans and hence the provision of business methods is
  -the task of so-called <i>session beans</i>, such as a </span><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>DocumentAdministrator</span></tt><span lang=EN-US style='mso-ansi-language:
  -EN-US'> that manages related documents of type </span><tt><span lang=EN-US
  -style='font-size:10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'>RequestForProposal</span></tt><span
  -lang=EN-US style='mso-ansi-language:EN-US'>, </span><tt><span lang=EN-US
  -style='font-size:10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'>Proposal</span></tt><span
  -lang=EN-US style='mso-ansi-language:EN-US'>, or </span><tt><span lang=EN-US
  -style='font-size:10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'>Quote</span></tt><span
  -lang=EN-US style='mso-ansi-language:EN-US'>. For example, the </span><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>DocumentAdministrator</span></tt><span lang=EN-US style='mso-ansi-language:
  -EN-US'> could have a method </span><tt><span lang=EN-US style='font-size:10.0pt;
  -font-family:"Courier New";mso-ansi-language:EN-US'>createPurchaseOrder(Quote
  -quote)</span></tt><span lang=EN-US style='mso-ansi-language:EN-US'> that
  -creates a new </span><tt><span lang=EN-US style='font-size:10.0pt;font-family:
  -"Courier New";mso-ansi-language:EN-US'>PurchaseOrder</span></tt><span
  -lang=EN-US style='mso-ansi-language:EN-US'> in the system as a reaction to an
  -incoming </span><tt><span lang=EN-US style='font-size:10.0pt;font-family:"Courier 
New";
  -mso-ansi-language:EN-US'>Quote</span></tt><span lang=EN-US style='mso-ansi-language:
  -EN-US'> given by a particular </span><tt><span lang=EN-US style='font-size:
  -10.0pt;font-family:"Courier New";mso-ansi-language:EN-US'>Vendor</span></tt><span
  -lang=EN-US style='mso-ansi-language:EN-US'> business partner <a
  -href="#footnote1">*</a>. <o:p></o:p></span></p>
  -
  -<p align=center style='margin-left:35.45pt;text-align:center'><span lang=EN-US
  -style='mso-ansi-language:EN-US'><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
  - coordsize="21600,21600" o:spt="75" o:preferrelative="t" 
path="m@4@5l@4@11@9@11@9@5xe"
  - filled="f" stroked="f">
  - <v:stroke joinstyle="miter"/>
  - <v:formulas>
  -  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
  -  <v:f eqn="sum @0 1 0"/>
  -  <v:f eqn="sum 0 0 @1"/>
  -  <v:f eqn="prod @2 1 2"/>
  -  <v:f eqn="prod @3 21600 pixelWidth"/>
  -  <v:f eqn="prod @3 21600 pixelHeight"/>
  -  <v:f eqn="sum @0 0 1"/>
  -  <v:f eqn="prod @6 1 2"/>
  -  <v:f eqn="prod @7 21600 pixelWidth"/>
  -  <v:f eqn="sum @8 21600 0"/>
  -  <v:f eqn="prod @7 21600 pixelHeight"/>
  -  <v:f eqn="sum @10 21600 0"/>
  - </v:formulas>
  - <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
  - <o:lock v:ext="edit" aspectratio="t"/>
  -</v:shapetype><v:shape id="_x0000_i1027" type="#_x0000_t75" style='width:453.75pt;
  - height:331.5pt'>
  - <v:imagedata src="./soapjBoss-Dateien/image001.gif" o:title="ejb"/>
  -</v:shape><![endif]--><![if !vml]><img border=0 width=605 height=442
  -src="./soapjBoss-Dateien/image002.gif" 
v:shapes="_x0000_i1027"><![endif]><o:p></o:p></span></p>
  -
  -<p align=center 
style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><b><span
  -lang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:
  -EN-US'>Figure 1: Logical Architecture of EJB�</span></b><span lang=EN-US
  -style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>Shipped with the proper object-oriented
  -application logic are so-called <i>deployment descriptors</i>, which are
  -meta-data that describe the envisaged transactional, persistence, security and
  -distribution behaviour of the embedded beans. This seperation into operational
  -and declarative parts of business logic has been demonstrated to incredibly
  -speed up the development process and has been overtaken as a particular
  -contribution of<span style="mso-spacerun: yes">� </span>the <i>Microsoft
  -Transaction Server</i> (MTS) and other <i>Transaction Processing Monitors</i>
  -(TPM�s). <o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>A full-fledged EJB� runtime environment, also
  -called EJB� application server, is now an extension to the Java� language
  -platform that is able to run the such packed EJB� applications by connecting
  -them to implementations of basic services, such as a data-access service to
  -contact an enterprise database, a transaction service to run distributes
  -transactions and an <i>Object Request Broker</i> (ORB) to cater for the
  -distribution of the applications. For that purpose, the EJB� specification
  -introduces another construct called the <i>container </i>that is an intercepting
  -wrapper around the deployed enterprise beans and that serves to transparently
  -contact and integrate the basic services behind the �application scenes�.<span
  -style="mso-spacerun: yes">� </span><o:p></o:p></span></p>
  -
  -<h3 style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>2.2
  -The jBoss Container Architecture<o:p></o:p></span></h3>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>As for the implementation of the basic services
  -and the container, each final EJB� product has to make its own choices,
  -providing different strengths and weaknesses with respect to different
  -application areas. The non-commercial <a href="http://www.j2ee.com/">reference
  -implementation from Sun</a>, for example, provides a means for testing the
  -specification compliance of deployed beans. For example, <a
  -href="http://www.persistence.com/">Persistence Powertier�</a>, has been
  -designed with respect to stateful data-intensive applications, while <a
  -href="http://www.bea.com/">BEA�s Weblogic suite</a>, on the other hand, is
  -clearly targetted towards stateless, highly-scalable multi-user environments
  -that have to integrate with legacy code. <o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>Hence, the EJB� approach opens up a broad
  -market where every customer can find the �ideal� server, but is nevertheless
  -given the possiblity to change the implementation platform withouth having to
  -change its application logic � a clear competition advantage. Yet, this promise
  -has however not fully come true, since for optimisation purposes, for example,
  -when running batches over enterprise databases of considerable size, one is
  -still forced to use proprietary extensions of the vendors which makes the
  -deployability in other servers impossible or at least very difficult. 
<o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>Furthermore, we could think about areas, such
  -as in building internet-aware <i>Enterprise Resource Planning</i> (ERP), in
  -which the EJB� �customer� is itself an <i>Independent Software Vendor</i> (ISV)
  -that needs to extend the basic services of the server in order to fit its
  -needs, for example, to integrate with the latest e-commerce interoperability
  -standard (and these are quite frequently changing in these days �). Opening up
  -the container structure for third-parties is of course not in the vital
  -interest of EJB� vendors.<o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>This is what brought us into looking at the <i>Open
  -Source Community </i>for EJB�-related products, where implementations of ORB�s,
  -data-access tiers, and other central parts of enterprise applications have been
  -already around for a couple of years. The advantage of choosing such a
  -development model for an ISV is that the runtime environment code is maintained
  -and shared by a large community of industry and motivated developers and that
  -it<span style="mso-spacerun: yes">� </span>is open to necessary adaptions and
  -extensions. On the other hand, the �capital� which is the application logic and
  -its deployment information, still remains the non-disclosed property of the
  -ISV. Due to the declarative approach of EJB�, such a clean seperation in
  -licensing different parts of the system (GNU public license versus a commercial
  -license) is encouraged. <o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>Much recently, we find the first functional
  -open-source TPM�s and application servers. <a 
href="http://www.enhydra.org/">Enhydra</a>
  -from <a href="http://www.lutris.com/">Lutris</a>, for example, is currently a
  -very advanced platform for e-commerce type of applications. It merged in 1999
  -with the <a href="http://www.objectweb.org/">Jonas</a> effort of <a
  -href="http://www.bull.com/">Bull</a> and <a 
href="http://www.france-telecom.fr/">France
  -Telecom</a> to provide a ful-fledged EJB1.1 compliant server. While these
  -projects did already start in 1998 and earlier, <a 
href="http://www.jboss.org/">jBoss</a>
  -is a relatively young initiative mainly sponsored by <a
  -href="http://www.telkel.com/">Telkel</a> that aims to build a
  -technologically-revolutionary container making full usage of the Java2 platform
  -(<a href="#container">Figure 2</a>).<o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  -
  -<p align=center style='margin-left:53.4pt;text-align:center'><a name=container><span
  -lang=EN-US style='mso-ansi-language:EN-US'><!--[if gte vml 1]><v:shape 
id="_x0000_i1028"
  - type="#_x0000_t75" style='width:453.75pt;height:268.5pt'>
  - <v:imagedata src="./soapjBoss-Dateien/image003.gif" o:title="jBoss"/>
  -</v:shape><![endif]--><![if !vml]><img border=0 width=605 height=358
  -src="./soapjBoss-Dateien/image004.gif" 
v:shapes="_x0000_i1028"><![endif]><o:p></o:p></span></a></p>
  -
  -<p align=center style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><span
  -style='mso-bookmark:container'><strong><span lang=EN-US style='font-size:14.0pt;
  -mso-bidi-font-size:12.0pt;mso-ansi-language:EN-US'>Figure 2: Modular Container
  -Architecture of jBoss</span></strong></span><strong><span lang=EN-US
  
-style='font-size:14.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:EN-US'><o:p></o:p></span></strong></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>The fundamental contribution of jBoss, besides
  -a plethora of useful new features, such as hot-deploy and <i>Java Management
  -eXtension</i>-compliance, is to modularize the container into a configurable
  -set of interceptors, each of which is responsible for contacting and managing a
  -different basic service integrated into the runtime. For example, there is an
  -invoker-interceptor that receives incoming method-calls over the middleware
  -(currently: Java�s built-in <i>Remote-Method-Invocation</i> over the <i>Java
  -Remote Method Protocol</i>) and derserialises data into Java objects. There
  -follows a security interceptor based on the <i>Java Authentication and
  -Authorization Service </i>that sets and checks permissions of the incoming
  -thread. jBoss provides a transaction interceptor that analyses and manages
  -transactional behaviour followed by a persistence interceptor (for entity
  -beans) that interfaces an underlying SQL database via a particular persistence
  -service (JAWS/Minerva) and JDBC-connectivity.<o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>This chain of interceptors (implemented as
  -transparent and compilation-less Java2 proxies) is now extremely configurable,
  -the actual container just being the management unit that connects them to each
  -other and that provides the meta-data for the application in a central manner.
  -Particular interceptors can be extended, replaced, removed or added, depending
  -on the actual needs of the final application. This is the key to easily
  -integrate, for example, different middleware paradigms into the EJB� platform �
  -something which is highly difficult and opaque for the application in almost
  -all other EJB� servers, today. <o:p></o:p></span></p>
  -
  -<h2 style='text-align:justify'><a name=inforCE><span lang=EN-US
  -style='mso-ansi-language:EN-US;font-weight:normal'>3. </span></a><span
  -lang=EN-US style='mso-ansi-language:EN-US;font-weight:normal'>SOAP: The Simple
  -Object Access Protocol<o:p></o:p></span></h2>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>There is exactly one place where the TPM/EJB�
  -concept currently falls short which is the possiblity of letting different
  -EJB-applications (we rather say component to such a self-contained structure)
  -depoyed in heterogeneous and globally networked enteprise systems talk to each
  -other. This is necessary if we think of the increasing level of global
  -interoperability, for example in future supply-chain management. This is also
  -necessary if we plan to break up formerly monolithic systems, such as an ERP
  -system into more easily maintainable and upgradable sub-components.<span
  -style="mso-spacerun: yes">� </span><o:p></o:p></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>The problem that is posed, then, is the style
  -of distributed object access inherent in the �traditional� concepts of
  -COM/CORBA/RMI. In both COM and CORBA, remote calls are usually handled
  -synchronously to retain a transparent programming semantics. When we think of
  -systems comprised out of several hundreds of enterprise components,<span
  -style="mso-spacerun: yes">� </span>this amounts to either a resource-consuming
  -amount of point-to-point connections or requires a sophisticated, and hence
  -potentially instable connection management builtin to the systems. Furthermore,
  -in both COM and CORBA, remote object access is done via publishing interfaces
  -and precompiled data-structures to be shared by the interacting components.
  -When incrementally changing the data-structures and interfaces in one
  -component, this often requires to recompile dependent parts, e.g., <i>remote
  -stubs, value holders, and helpers</i>, in other components as well. This will
  -be no more possible in up-scaled global systems of the future. Even dynamic
  -class loading is not a real solution to that problem since it relies on
  -proprietary runtime environments and it lacks the safety of<span
  -style="mso-spacerun: yes">� </span>precompiled information. Hence, a
  -self-contained component should be shipped with all the classes that it must
  -interact with at runtime.<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>The
  -<i><a href="http://www.w3c.org/">eXtensible Markup Language</a></i> (XML) that
  -is brought forward by the W3C consortium as <b>the </b>next standard underlying
  -even (X)HTML, promises to remedy this issue. This is because XML provides a
  -uniform and failure-tolerant method for describing and exchanging structured
  -data. Initiatives, such as <a href="http://www.bizztalk.com/">Bizztalk</a>,
  -have already adopted XML as the basis to translate between heterogenous
  -business applications. For distributed business components to connect to each
  -other seamlessly, asynchronously, and probably through existing firewall
  -structures, XML is also proposed as the encoding language within the standard,
  -lightweight HTTP and SMTP transport protocols to comprise the <i><a
  -href="http://msdn.microsoft.com/xml/general/">Simple Object Access Protocol</a></i>,
  -shortly SOAP. Both XML as well as HTTP and SMTP are in the meantime a
  -convention that is equally shared by both the Java� and the COM-world. Hence,
  -SOAP has the potential to define the first practical interoperability device
  -between these two worlds. <o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>In
  -<a href="#soap">Figure 3</a>, we have scetched an example SOAP message embedded
  -into an http-request which is taken from the SOAP 1.1 specification. We
  -recognize that it uses a quite simple POST-method to carry the actual payload,
  -which is a properly tagged XML-Document, from the client to the server. The URI
  -and a part of the http-header specify the dedicated server service more
  -precisely. In the shipped XML-document, the special namespace �SOAP� with its
  -attached Xml-Schema definition under �urn:schemas-xmlsoap-org:soap.v1�
  -decribes, how the body of the Soap-Request must be structured.<span
  -style="mso-spacerun: yes">� </span>For example, it always needs a so-called
  -envelope around the actual content of the message which is interpreted as a
  -method-call (getLastTradePrice(�DIS�)) on some target object (bound to the URL
  -/StockQuote in this example). </span><tt><span lang=EN-US style='font-size:
  -10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'><o:p></o:p></span></tt></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><a name=soap><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>POST /StockQuote HTTP/1.1<o:p></o:p></span></tt></a></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>Host: www.stockquoteserver.com<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>Content-Type: text/xml<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>Content-Length: nnnn<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>SOAPMethodName: 
Some-Namespace-URI#GetLastTradePrice<o:p></o:p></span></tt></span></p>
  -
  -<p><span style='mso-bookmark:soap'><tt><span lang=EN-US style='font-size:10.0pt;
  -font-family:"Courier New";mso-ansi-language:EN-US'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>&lt;SOAP:Envelope
  
-xmlns:SOAP=&quot;urn:schemas-xmlsoap-org:soap.v1&quot;&gt;<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'><span style="mso-spacerun: yes">��� 
</span>&lt;SOAP:Body&gt;<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'><span style="mso-spacerun: yes">������� </span>&lt;m:GetLastTradePrice 
<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'><span style="mso-spacerun: yes">����������� 
</span>xmlns:m=&quot;Some-Namespace-URI&quot;&gt;<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'><span style="mso-spacerun: yes">��������������� 
</span></span></tt></span><span
  -style='mso-bookmark:soap'><tt><span lang=FR style='font-size:10.0pt;font-family:
  -"Courier 
New";mso-ansi-language:FR'>&lt;symbol&gt;DIS&lt;/symbol&gt;<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=FR style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -FR'><span style="mso-spacerun: yes">������� </span></span></tt></span><span
  -style='mso-bookmark:soap'><tt><span lang=EN-US style='font-size:10.0pt;
  -font-family:"Courier 
New";mso-ansi-language:EN-US'>&lt;/m:GetLastTradePrice&gt;<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'><span style="mso-spacerun: yes">��� 
</span>&lt;/SOAP:Body&gt;<o:p></o:p></span></tt></span></p>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  -lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  -EN-US'>&lt;/SOAP:Envelope&gt;</span></tt></span><span 
style='mso-bookmark:soap'><span
  -lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></span></p>
  -
  -<p align=center style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><span
  -style='mso-bookmark:soap'><b><span lang=EN-US style='mso-ansi-language:EN-US'>Figure
  -3: Soap-Message via http-request<o:p></o:p></span></b></span></p>
  -
  -<span style='mso-bookmark:soap'></span>
  -
  -<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>We see that SOAP is quite neutral with respect
  -to the underlying transport since textual XML representations can be loaded
  -into nearly all IP-based transports we can think of. We also see that SOAP is
  -quite neutral with respect to the underlying object model and programming
  -platform, since the way in which the content is processed is not determined at
  -all. For example, a Java�-based recipient could deserialize the given call into
  -a proper method call by binding a string �DIS� to the embedded &lt;symbol/&gt;
  -tag. We could also imagine some other service that immediately processes the
  -XML structure without taking an object-oriented stance at all.<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>SOAP
  -is also quite neutral with respect to synchronicity. It is possible for the
  -server to send the result of the method call as an ordinary SOAP message in the
  -corresponding http-response. It is also possible that the presented request is
  -queued, persisted, routed, and later executed on a different machine such that
  -the response (including faults, etc.) is send with a delay<span
  -style="mso-spacerun: yes">� </span>to an SMTP or HTTP server on which the
  -original sender of the method call listens.<span style="mso-spacerun: yes">�
  -</span><o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>And
  -SOAP is currently supported by industry coming both from the MS-world, i.e,
  -Microsoft themselves, and the Java�-world � IBM has recently commited its
  -e-business activities tightly to this platform. Hence, the first reference
  -implementations of the latest 1.1 standard are already available as
  -COM-components or Java implementations, alternatively.<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>From
  -these considerations, it becomes clear that it would be highly desirable to
  -integrate such a simple, but powerful object access mechanism to the Enterprise
  -Java-Beans� platform as well, opening up the OO-centered application logic to
  -global Internet services. <o:p></o:p></span></p>
  -
  -<h2><a name=realisation><span lang=EN-US style='mso-ansi-language:EN-US;
  -font-weight:normal'>4</span></a><a name=technicalCoupling><span
  -style='mso-bookmark:realisation'><span lang=EN-US style='mso-ansi-language:
  -EN-US;font-weight:normal'>. </span></span></a><span 
style='mso-bookmark:realisation'><span
  -lang=EN-US style='mso-ansi-language:EN-US;font-weight:normal'>An Integration of
  -SOAP with EJB� </span></span><span lang=EN-US style='mso-ansi-language:EN-US;
  -font-weight:normal'><o:p></o:p></span></h2>
  -
  -<p style='margin-left:35.4pt'>Due to the modular and open structure of jBoss,
  -an initial support for SOAP is architecturally straightforward. Similar to the
  -already existing or planned invoker-interceptors for JRMP1.1, JRMP1.2, or
  -IIOP2.3, we could imagine an alternative SOAP-invoker (Figure 4) sitting as the
  -first interceptor in the jBoss container�s chain of responsibility. In Figure
  -4, we have even scetched the in-principle possiblity of having several parallel
  -interceptor chains leading to the same bean and<span style="mso-spacerun:
  -yes">� </span>allowing for simultanous access via different interoperability
  -protocols. SOAP-invokers are registered in a dedicated HTTP-Server that is started
  -as a separate jBoss-service (mlet) in the application server. When registering,
  -the invokers obtain a unique extension path to the root-URL of the HTTP-Server.
  -For example, if the bean�s home is normally available under the JNDI name
  -�test/TestBean�, we make it available under SOAP with the URL <tt><span
  -style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;mso-ascii-font-family:
  -"Times New Roman";mso-fareast-font-family:"Times New Roman";mso-hansi-font-family:
  -"Times New Roman";mso-bidi-font-family:"Times New Roman"'><a
  
-href="http://localhost:2121/test/TestBean/">http://localhost:2121/test/TestBean/</a>.
  -</span></tt><tt><span style='font-size:10.0pt;font-family:"Courier 
New"'><o:p></o:p></span></tt></p>
  -
  -<p align=center style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><span
  -lang=EN-US style='mso-ansi-language:EN-US'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  -
  -<p class=MsoCaption><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1029"
  - type="#_x0000_t75" style='width:453.75pt;height:319.5pt'>
  - <v:imagedata src="./soapjBoss-Dateien/image005.gif" o:title="soapInterceptor"/>
  -</v:shape><![endif]--><![if !vml]><img border=0 width=605 height=426
  -src="./soapjBoss-Dateien/image006.gif" v:shapes="_x0000_i1029"><![endif]></span></p>
  -
  -<p class=MsoCaption><span lang=EN-US><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  -
  -<p class=MsoCaption><span lang=EN-US>Figure 4: SOAP Interceptors for Providing
  -SOAP Services</span></p>
  -
  -<p class=MsoBodyTextIndent><span lang=EN-US><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'>Stateless access via SOAP now goes the following
  -route: The client (which may be a transparent SOAP-proxy that allows seemless
  -remote access via remote interfaces, see below) sends a SOAP-enabled
  -HTTP-Request to the HTTP-Server using the identifying URL as above. The server
  -then routes this request (still unparsed) to the registered invoker under the
  -relative path. The invoker is now responsible for deserialising the
  -SOAP-envelope and its contents into a proper Java-method-call using a
  -bean-specific databinding which is planned to be specified via an extende 
EJB/jBoss-meta-data
  -annotation in the future. The deserialised method call is then fed into the
  -interceptor chain as an ordinary bean-method call for further processing (for
  -SOAP, we think that we do not need any of the home-interface methods for the
  -time being). </p>
  -
  -<p style='margin-left:35.4pt'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  -
  -<p style='margin-left:35.4pt'>Similarly, the result of the method execution
  -which could also be application and app-server exceptions raised is again
  -intercepted by the invoker that derialises them into a proper SOAP-envelope
  -using its bean-attached databinding. In a first, synchronous implementation,
  -this envelope would be put into an http-response that is handed to the
  -HTTP-Server and returned to the blocked client thread. What we already gain is
  -that the client and the server data structures are completely decoupled from
  -each other � e.g., a Java-Client could use different versions of the data
  -classes than the ones that are present in the application beans where the
  -individual databindings have a common denominator that allows a tolerant and
  -useful exchange. </p>
  -
  -<p style='margin-left:35.4pt'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  -
  -<p style='margin-left:35.4pt'>In a more advanced asynchronous setting, we would
  -send this envelope in a separate message, e.g., via SMTP, to the original
  -sender of the method call. <span lang=EN-US style='mso-ansi-language:EN-US'>For
  -this purpose, the sender could identify itself in the message with a unique
  -URI. The directory- or rather home-based URI�s that we have just presented are
  -not yet enough for such a unique identification that is also needed if we like
  -to access stateful beans, such as stateful session beans and entity beans. Fror
  -this purpose, we woul like to introduce a mechanism that maps string-based
  -file-handles, e.g., <a
  
-href="http://localhost:2121/test/TestBusinessService/0815">http://localhost:2121/test/TestBusinessService/0815</a>,
  -into a uniqu EJB-handle or hash key that points to a single bean or object
  -instance in the VM. We preliminary resolve the important question of
  -Distributed Garbage Collection by persistent http-connections that, when close,
  -release all attached stateful bean instances. However, this is not yet fully
  -worked out and we rely on our experiences with a first implementation that is
  -currently under development.<o:p></o:p></span></p>
  -
  -<p align=center style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><span
  -lang=EN-US style='mso-ansi-language:EN-US'><!--[if gte vml 1]><v:shape 
id="_x0000_i1030"
  - type="#_x0000_t75" style='width:453pt;height:401.25pt'>
  - <v:imagedata src="./soapjBoss-Dateien/image007.gif" o:title="soapProxy"/>
  -</v:shape><![endif]--><![if !vml]><img border=0 width=604 height=535
  -src="./soapjBoss-Dateien/image008.gif" 
v:shapes="_x0000_i1030"><![endif]><o:p></o:p></span></p>
  -
  -<p align=center 
style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><b><span
  -lang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:
  -EN-US'>Figure 5: SOAP-Proxies for Accessing SOAP Services<o:p></o:p></span></b></p>
  -
  -<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  -mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  -"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  -"Times New Roman"'>To allow for loosely-coupled inter-bean operations and a 
transparent
  -Java-client access, we would like to propose a SOAP-proxy structure (Figure 5).
  -That is an implementation of the java.lang.reflect.InvocationHandler interface
  -which allows to hide a generic framework behind application or rather remote
  -interfaces at runtime. The application or the client will then be presented an
  -object that behaves as if it was an ordinary object implementing that
  -interface, but indeed, method calls are invoking a dedicated generic method on
  -the invocation handler that serialises them into SOAP envelopes (inversely<span
  -style="mso-spacerun: yes">� </span>to the invoker above) and sends them via
  -HTTP or SMTP. Upon reception of a response (maybe by an integrated
  -HTTP-Server), the return value is deserialised and given back as the result of
  -the method call (or raised as an exception if it was a fault message). Since a
  -SOAP-proxy is tight to a given URL, it can be easily (de-)serialised via IIOP
  -and also via XML/SOAP, again.</span></tt></p>
  -
  -<h2><span lang=EN-US style='mso-ansi-language:EN-US'>5. The ZOAP 
project<o:p></o:p></span></h2>
  -
  -<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  -mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  -"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  -"Times New Roman"'>The Zero-Effort Object Access Package (ZOAP) is a
  -prototypical implementation of SOAP for EJB� that integrates with jBoss. It
  -comes with two sub-packages which are infor:X (the infor:business solutions AG
  -XML databinding service) and jHTTP (a lightweight abstract HTTP-Server
  -implementation that can be used to implement various http-based transfer
  -mechanisms for files, XML-documents, etc.). On top of those, ZOAP provides Java
  -abstractions for SOAP messages, SOAP-enabled services and proxies, and, in
  -particular, an implementation of SOAP-over-HTTP. </span></tt><tt><span
  -lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
  -mso-ascii-font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";
  -mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:"Times New Roman";
  -mso-ansi-language:EN-US'>In addition, ZOAP provides a jBoss-compatible invoker
  -class that builds on those abstractions.<span style="mso-spacerun: yes">�
  -</span><o:p></o:p></span></tt></p>
  -
  -<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  -mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  -"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  -"Times New Roman"'>The rationale behind not using an existing and free SOAP
  -implementation, such as the one from IBM, are technically and strategically.
  -Technically, the IBM implementation relies on the resource-consuming
  -Xerces-parser and uses the costly Domain-Object-Model interface of that parser
  -to deserialise XML messages. Furthermore, the databindings have no immediate
  -support for XML-Schemas which we see as important when building generic
  -components that need meta-data to be shipped with the actual object data.
  -Strategically, we would like to provide a fully GPL-compatible module in the
  -end. The rationale behind not using a powerful servlet-engine or http-server
  -implementation, such as tomcat, is that for experimenting with the internal
  -architecture, a pure-Java implementation that is widely controllable at runtime
  -seems the better choice.<o:p></o:p></span></tt></p>
  -
  -<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  -mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  -"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  -"Times New Roman"'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></tt></p>
  -
  -<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  -mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  -"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  -"Times New Roman"'>A first version of ZOAP is already working with the usual
  -restrictions wrt. specification compatibility, robustness, and functionality.
  -We plan to release it in the near future. Planned extensions are (in order) a)
  -clean-up of<span style="mso-spacerun: yes">� </span>exception handling and the
  -meta-data structure, b) full integration with jBoss also wrt to dgc,<span
  -style="mso-spacerun: yes">� </span>c) compatibility to the MS-Soap
  -implementation, and d) asynchronous requests and message queue support. 
<o:p></o:p></span></tt></p>
  -
  -
  -<h2 align=center style='text-align:center'>
  -
  -<hr size=2 width="100%" align=center>
  -
  -</h2>
  -
  -
  -<h2><a name=conclusion><span lang=EN-US 
style='mso-ansi-language:EN-US'>Conclusion</span></a><span
  -lang=EN-US style='mso-ansi-language:EN-US'> <o:p></o:p></span></h2>
  -
  -<p class=MsoBodyTextIndent><tt><span lang=EN-US style='mso-ansi-font-size:12.0pt;
  -mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  -"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  -"Times New Roman"'>We have argumented for an integration of<span
  -style="mso-spacerun: yes">� </span>loosely-coupled Xml-based messaging
  -mechanisms, such as SOAP, into strictly-typed object-oriented business
  -programming platforms, such as EJB�. ZOAP (The Zimple Object Access Package) is
  -a prototypical implementation of SOAP for EJB� that integrates with the modular
  -Open-Source application server jBoss. It should be released under the GPL in
  -the near future. </span></tt></p>
  -
  -
  -<h2 align=center style='text-align:center'>
  -
  -<hr size=2 width="100%" align=center>
  -
  -</h2>
  -
  -
  -<h2><span lang=EN-US 
style='mso-ansi-language:EN-US;font-weight:normal'>Footnotes<o:p></o:p></span></h2>
  -
  -<p><a name=footnote1><span lang=EN-US style='mso-ansi-language:EN-US'>(*)<span
  -style='mso-tab-count:1'>������ </span>Please note that the terminology in this
  -paper is the personal interpretation of the author and is just to motivate some
  -very basic concepts. A concise and authorised introduction into EJB� is not the
  -scope of this document and should rather be obtained directly from the </span></a><a
  -href="http://www.j2ee.com/"><span style='mso-bookmark:footnote1'><span
  -lang=EN-US style='mso-ansi-language:EN-US'>official sources</span></span><span
  -style='mso-bookmark:footnote1'></span></a><span style='mso-bookmark:footnote1'><span
  -lang=EN-US style='mso-ansi-language:EN-US'>.</span></span><span lang=EN-US
  -style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
  -
  -<h2><span lang=EN-US 
style='mso-ansi-language:EN-US;font-weight:normal'>References<o:p></o:p></span></h2>
  -
  -<p style='margin-left:35.4pt'><a name=migration><span lang=EN-US
  -style='mso-ansi-language:EN-US'>[1]<span style='mso-tab-count:1'>������ 
</span></span></a><a
  -href="migration.html"><span style='mso-bookmark:migration'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>Hofmann B., Jung, C. G., Kaufmann, G., Sch�rk,
  -A., and Wolber, M.: The infor:Component Engine � A 5<sup>th</sup> Generation
  -Runtime Environment for Internet-Aware Business Applications</span></span><span
  -style='mso-bookmark:migration'></span></a><span style='mso-bookmark:migration'><span
  -lang=EN-US style='mso-ansi-language:EN-US'>, Technical White Paper,
  -infor:business solutions AG, Karlsruhe, March, 2000</span></span><span
  -lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>[2]<span
  -style='mso-tab-count:1'>������ </span></span><a
  -href="http://java.sun.com/products/ejb/pdf/zona.pdf"><span lang=EN-US
  -style='mso-ansi-language:EN-US'>Enterprise JavaBeans</span><sup><span
  -lang=EN-US style='font-size:7.5pt;mso-ansi-language:EN-US'>TM</span></sup><span
  -lang=EN-US style='mso-ansi-language:EN-US'> Technology � A Business Benefits
  -Analysis</span></a><span lang=EN-US style='mso-ansi-language:EN-US'> (pdf
  -file), A Zona Research Paper, Zona Research Inc., June, 1999<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>[3]<span
  -style='mso-tab-count:1'>������ </span></span><a 
href="http://www.forrester.com/"><span
  -lang=EN-US style='mso-ansi-language:EN-US'>Forrester Research Report 
6-99</span></a><span
  -lang=EN-US style='mso-ansi-language:EN-US'>, Forrester Research, June, 
1999<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>[4]<span
  -style='mso-tab-count:1'>������ </span>Booch, Jacobson, Rumbough: The Unfied
  -Modelling Language Reference Guide, Addison-Wesley, 1998<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>[5]<span
  -style='mso-tab-count:1'>������ </span>Coleman, D., Arnold, P., Bodoff, S.,
  -Dollin, C., Gilchrist, H., Hayes, F., and Jeremaes, P.: Object-Oriented
  -Development: The Fusion Method, Addison-Wesley, 1998<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'>[6]<span style='mso-tab-count:1'>������ </span>Prasse,
  -K., Feinkonzept f�r die Lj4-Java Kopplung, Technical White Paper,
  -infor:business solutions AG, Karlsruhe, February, 2000</p>
  -
  -<p style='margin-left:35.4pt'><span lang=FR style='mso-ansi-language:FR'>[7]<span
  -style='mso-tab-count:1'>������ </span>Monson-Haefel, R.: Enterprise Java-Beans,
  -O-Reilly, 1999<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><span lang=FR style='mso-ansi-language:FR'><span
  -style="mso-spacerun: yes">�</span></span><span lang=EN-US style='mso-ansi-language:
  -EN-US'>[9]<span style='mso-tab-count:1'>����� </span>Atkinson, C., K�hne, T.,
  -and Bunse, C.: Dimensions of Component-Based Development, Fourth International
  -Workshop on Component-Oriented Programming, 1999<o:p></o:p></span></p>
  -
  -<p style='margin-left:35.4pt'><a name=paper10><span lang=EN-US
  -style='mso-ansi-language:EN-US'>[10]<span style='mso-tab-count:1'>���� 
</span></span></a><a
  -href="migration.html"><span style='mso-bookmark:paper10'><span lang=EN-US
  -style='mso-ansi-language:EN-US'>Hofmann B., Jung, C. G., Kaufmann, G., Prasse,
  -K., Sch�rk, A., and Wolber, M.: From 4th Generation Languages to 5th Generation
  -Containers � Taking the Step into Internet-Aware Business 
Applications</span></span><span
  -style='mso-bookmark:paper10'></span></a><span style='mso-bookmark:paper10'><span
  -lang=EN-US style='mso-ansi-language:EN-US'>, Technical White Paper,
  -infor:business solutions AG, Karlsruhe, April, 2000<o:p></o:p></span></span></p>
  -
  -<span style='mso-bookmark:paper10'></span>
  -
  -<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  -
  -
  -<div class=MsoNormal align=center style='text-align:center'>
  -
  -<hr size=2 width="100%" align=center>
  -
  -</div>
  -
  -
  -<p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>� 2000 by
  -infor:business solutions AG, All rights reserved.<o:p></o:p></span></p>
  -
  -</div>
  -
  -</body>
  -
  -</html>
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  +<html xmlns:v="urn:schemas-microsoft-com:vml"
  +xmlns:o="urn:schemas-microsoft-com:office:office"
  +xmlns:w="urn:schemas-microsoft-com:office:word"
  +xmlns="http://www.w3.org/TR/REC-html40">
  +
  +<head>
  +<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  +<meta name=ProgId content=Word.Document>
  +<meta name=Generator content="Microsoft Word 9">
  +<meta name=Originator content="Microsoft Word 9">
  +<link rel=File-List href="./soapjBoss-Dateien/filelist.xml">
  +<link rel=Edit-Time-Data href="./soapjBoss-Dateien/editdata.mso">
  +<!--[if !mso]>
  +<style>
  +v\:* {behavior:url(#default#VML);}
  +o\:* {behavior:url(#default#VML);}
  +w\:* {behavior:url(#default#VML);}
  +.shape {behavior:url(#default#VML);}
  +</style>
  +<![endif]-->
  +<title>Migration Strategy</title>
  +<!--[if gte mso 9]><xml>
  + <o:DocumentProperties>
  +  <o:Subject>Technical White Paper</o:Subject>
  +  <o:Keywords>infor:CE infor:com migration technical logical</o:Keywords>
  +  <o:LastAuthor>Dr. Christoph Georg Jung</o:LastAuthor>
  +  <o:Revision>50</o:Revision>
  +  <o:Created>2000-05-25T09:22:00Z</o:Created>
  +  <o:LastSaved>2000-06-17T07:28:00Z</o:LastSaved>
  +  <o:Pages>8</o:Pages>
  +  <o:Words>4145</o:Words>
  +  <o:Characters>23627</o:Characters>
  +  <o:Category>Technical White Paper</o:Category>
  +  <o:Manager>Dr. Christoph Georg Jung</o:Manager>
  +  <o:Company>infor: business solutions AG</o:Company>
  +  <o:Lines>196</o:Lines>
  +  <o:Paragraphs>47</o:Paragraphs>
  +  <o:CharactersWithSpaces>29015</o:CharactersWithSpaces>
  +  <o:Version>9.2812</o:Version>
  + </o:DocumentProperties>
  +</xml><![endif]--><!--[if gte mso 9]><xml>
  + <w:WordDocument>
  +  <w:HyphenationZone>21</w:HyphenationZone>
  + </w:WordDocument>
  +</xml><![endif]-->
  +<style>
  +<!--
  + /* Font Definitions */
  +@font-face
  +     {font-family:Tahoma;
  +     panose-1:2 11 6 4 3 5 4 4 2 4;
  +     mso-font-charset:0;
  +     mso-generic-font-family:swiss;
  +     mso-font-pitch:variable;
  +     mso-font-signature:553679495 -2147483648 8 0 66047 0;}
  + /* Style Definitions */
  +p.MsoNormal, li.MsoNormal, div.MsoNormal
  +     {mso-style-parent:"";
  +     margin:0cm;
  +     margin-bottom:.0001pt;
  +     mso-pagination:widow-orphan;
  +     font-size:12.0pt;
  +     font-family:"Times New Roman";
  +     mso-fareast-font-family:"Times New Roman";}
  +h1
  +     {margin-right:0cm;
  +     mso-margin-top-alt:auto;
  +     mso-margin-bottom-alt:auto;
  +     margin-left:0cm;
  +     mso-pagination:widow-orphan;
  +     mso-outline-level:1;
  +     font-size:24.0pt;
  +     font-family:"Times New Roman";
  +     mso-font-kerning:18.0pt;
  +     font-weight:bold;}
  +h2
  +     {margin-right:0cm;
  +     mso-margin-top-alt:auto;
  +     mso-margin-bottom-alt:auto;
  +     margin-left:0cm;
  +     mso-pagination:widow-orphan;
  +     mso-outline-level:2;
  +     font-size:18.0pt;
  +     font-family:"Times New Roman";
  +     font-weight:bold;}
  +h3
  +     {mso-style-next:Standard;
  +     margin-top:12.0pt;
  +     margin-right:0cm;
  +     margin-bottom:3.0pt;
  +     margin-left:0cm;
  +     mso-pagination:widow-orphan;
  +     mso-outline-level:3;
  +     font-size:13.0pt;
  +     font-family:Arial;
  +     font-weight:bold;}
  +h4
  +     {mso-style-next:Standard;
  +     margin-top:0cm;
  +     margin-right:0cm;
  +     margin-bottom:0cm;
  +     margin-left:35.4pt;
  +     margin-bottom:.0001pt;
  +     text-align:center;
  +     mso-pagination:widow-orphan;
  +     mso-outline-level:4;
  +     font-size:14.0pt;
  +     mso-bidi-font-size:12.0pt;
  +     font-family:"Times New Roman";
  +     mso-ansi-language:EN-US;
  +     font-weight:bold;}
  +p.MsoCaption, li.MsoCaption, div.MsoCaption
  +     {mso-style-next:Standard;
  +     margin:0cm;
  +     margin-bottom:.0001pt;
  +     text-align:center;
  +     mso-pagination:widow-orphan;
  +     font-size:14.0pt;
  +     mso-bidi-font-size:12.0pt;
  +     font-family:"Times New Roman";
  +     mso-fareast-font-family:"Times New Roman";
  +     mso-ansi-language:EN-US;
  +     font-weight:bold;}
  +p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent
  +     {margin-top:0cm;
  +     margin-right:0cm;
  +     margin-bottom:0cm;
  +     margin-left:36.0pt;
  +     margin-bottom:.0001pt;
  +     mso-pagination:widow-orphan;
  +     font-size:12.0pt;
  +     font-family:"Times New Roman";
  +     mso-fareast-font-family:"Times New Roman";
  +     mso-ansi-language:EN-US;}
  +a:link, span.MsoHyperlink
  +     {color:blue;
  +     text-decoration:underline;
  +     text-underline:single;}
  +a:visited, span.MsoHyperlinkFollowed
  +     {color:purple;
  +     text-decoration:underline;
  +     text-underline:single;}
  +p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
  +     {margin:0cm;
  +     margin-bottom:.0001pt;
  +     mso-pagination:widow-orphan;
  +     background:navy;
  +     font-size:12.0pt;
  +     font-family:Tahoma;
  +     mso-fareast-font-family:"Times New Roman";}
  +p
  +     {margin-right:0cm;
  +     mso-margin-top-alt:auto;
  +     mso-margin-bottom-alt:auto;
  +     margin-left:0cm;
  +     mso-pagination:widow-orphan;
  +     font-size:12.0pt;
  +     font-family:"Times New Roman";
  +     mso-fareast-font-family:"Times New Roman";}
  +address
  +     {margin:0cm;
  +     margin-bottom:.0001pt;
  +     mso-pagination:widow-orphan;
  +     font-size:12.0pt;
  +     font-family:"Times New Roman";
  +     font-style:italic;}
  +pre
  +     {margin:0cm;
  +     margin-bottom:.0001pt;
  +     mso-pagination:widow-orphan;
  +     tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 
412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
  +     font-size:10.0pt;
  +     font-family:"Courier New";
  +     mso-fareast-font-family:"Courier New";
  +     color:black;}
  +tt
  +     {mso-ascii-font-family:"Courier New";
  +     mso-fareast-font-family:"Courier New";
  +     mso-hansi-font-family:"Courier New";
  +     mso-bidi-font-family:"Courier New";}
  +p.Preformatted, li.Preformatted, div.Preformatted
  +     {mso-style-name:Preformatted;
  +     margin:0cm;
  +     margin-bottom:.0001pt;
  +     mso-pagination:widow-orphan;
  +     tab-stops:0cm 47.95pt 95.9pt 143.85pt 191.8pt 239.75pt 287.7pt 335.65pt 
383.6pt 431.55pt 479.5pt;
  +     layout-grid-mode:char;
  +     font-size:10.0pt;
  +     font-family:"Courier New";
  +     mso-fareast-font-family:"Times New Roman";
  +     mso-bidi-font-family:"Times New Roman";}
  +@page Section1
  +     {size:595.3pt 841.9pt;
  +     margin:70.85pt 70.85pt 2.0cm 70.85pt;
  +     mso-header-margin:35.4pt;
  +     mso-footer-margin:35.4pt;
  +     mso-paper-source:0;}
  +div.Section1
  +     {page:Section1;}
  +-->
  +</style>
  +<!--[if gte mso 9]><xml>
  + <o:shapedefaults v:ext="edit" spidmax="1034"/>
  +</xml><![endif]--><!--[if gte mso 9]><xml>
  + <o:shapelayout v:ext="edit">
  +  <o:idmap v:ext="edit" data="1"/>
  + </o:shapelayout></xml><![endif]-->
  +</head>
  +
  +<body bgcolor=white lang=DE link=blue vlink=purple style='tab-interval:35.4pt'>
  +
  +<div class=Section1>
  +
  +<p><span lang=EN-US style='mso-ansi-language:EN-US'><a
  +href="http://www.infor.de/">infor:business solutions AG</a>, Technical White
  +Paper Series<o:p></o:p></span></p>
  +
  +<h1 align=center style='text-align:center'><span lang=EN-US 
style='mso-ansi-language:
  +EN-US'>Simple Access to Complex Beans: Integrating SOAP with Enterprise
  +Java-Beans�<o:p></o:p></span></h1>
  +
  +<h2 align=center style='text-align:center'><i><span lang=EN-US
  +style='mso-ansi-language:EN-US'>A Request for Comments<o:p></o:p></span></i></h2>
  +
  +<p align=center style='text-align:center'><strong>Christoph G. Jung </strong></p>
  +
  +<address style='text-align:center'><a href="http://www.infor.de/">infor:business
  +solutions AG</a><br>
  +Vincenz-Prie�nitz-Stra�e 3, D-76131 Karlsruhe<br>
  +e-mail: <a 
href="mailto:[EMAIL PROTECTED]">Christoph.Jung</a>@infor.de,</address>
  +
  +
  +<div class=MsoNormal align=center style='text-align:center'>
  +
  +<hr size=2 width="100%" align=center>
  +
  +</div>
  +
  +
  +<h2><strong><span lang=EN-US 
style='mso-ansi-language:EN-US;font-weight:normal'>Abstract</span></strong><span
  +lang=EN-US style='mso-ansi-language:EN-US'> <o:p></o:p></span></h2>
  +
  +<p class=MsoNormal style='margin-right:36.0pt;mso-margin-top-alt:auto;
  +mso-margin-bottom-alt:auto;margin-left:36.0pt'><i><span lang=EN-US
  +style='mso-ansi-language:EN-US'>Enterprise Java-Beans�</span></i><span
  +lang=EN-US style='mso-ansi-language:EN-US'> provide a promising 
<i>object-oriented</i>
  +and declarative programming platform for business applications. Open-Source
  +projects, such as <i>jBoss</i>, reconcile this technology with the verve of a
  +skilled and motivated development community striving to state-of-the-art
  +implementations with features, such as hot-deploy, compilation-less remote
  +access, modular technical architecture, etc. On the other hand, there is a
  +trend to extend the usage of the <i>eXtensible Markup Language</i> as a
  +replacement for traditional middleware. The <i>Simple Object Access 
Protocol</i>,<span
  +style="mso-spacerun: yes">� </span>for example, that is currently supported by
  +the major players Microsoft and IBM, is close to bridge the gap between
  +inherently COM-based Desktop-Front-Ends and Java�-Based Application-Tiers. In
  +this paper we scetch a possible integration of<span style="mso-spacerun: yes">�
  +</span>XML-middleware and EJB at hand of the two products/specifications jBoss
  +and SOAP. The advantage of this approach is the possibility of a clean and
  +structured development in object-oriented terms as given by the EJB platform
  +paired with a loosely-coupled interoperability infrastructure which has not yet
  +been possible to this extent with ancestor technologies. <o:p></o:p></span></p>
  +
  +
  +<div class=MsoNormal align=center style='text-align:center'>
  +
  +<hr size=2 width="100%" align=center>
  +
  +</div>
  +
  +
  +<h2><a name=introduction><span lang=EN-US style='mso-ansi-language:EN-US;
  +font-weight:normal'>1. Introduction: </span></a><span lang=EN-US
  +style='mso-ansi-language:EN-US;font-weight:normal'>EJB versus XML-based
  +Middleware<o:p></o:p></span></h2>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>In
  +the recent decade, <i>Object-Oriented Programming</i><span style="mso-spacerun:
  +yes">� </span>(OOP) <a href="migration.htm#migration">[5]</a> has ben
  +established as a highly suitable paradigm for building business applications.
  +Besides a well-structured, formalised development cycle including massive tool
  +support, the field has brought up a new generation of<span style="mso-spacerun:
  +yes">� </span>runtime environments called <i>Transaction Processing Monitors</i>
  +(TPM) that are able to take the technical burden of distribution, transaction
  +handling, and security from the application programmers. Premier examples of
  +modern TPM�s are the <i><a href="http://www.microsoft.com/com+">Microsoft 
COM+</a></i>
  +framework (formerly known as the <i>Microsoft Transaction Server</i>, MTS), <i><a
  +href="http://www.bea.com/">Bea�s Tuxedo</a></i> and up-to-date <i><a
  +href="http://www.j2ee.com/">Enterprise JavaBeans�</a></i> (EJB) <a
  +href="migration.htm#migration">[7]</a> products. <o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>Especially
  +the latter, by relying on <i><a href="http://java.sun.com/">Java�</a></i> with
  +its clean programming model, its practical �Write Once, Run Everywhere� vision,
  +and last but not least with its the massive support by industry and individual 
engineers,
  +has developed into a prime OO-platform for the �middle tier�. Much recently,
  +Open-Source projects, such as <a href="http://www.enhydra.org/">Enhydra</a>, <a
  +href="http://www.objectweb.org/">Jonas</a>, and <a 
href="http://www.jboss.org/">jBoss</a>,
  +have entered the EJB�-market and are likely to broaden the technological vision
  +in the middle-term perspective. In <a href="#jboss">Section 2</a>, we will
  +discuss some of the leading concepts behind the jBoss application server.<span
  +style="mso-spacerun: yes">��� </span><o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>A
  +parallel thread of R&amp;D in that area is dedicated to <i>Component-Based
  +Software Engineering </i>(CBSE) <a href="migration.htm#migration">[9]</a>. The
  +basic critique that is uttered against the interface-based <i>COM</i>- or 
<i>CORBA</i>-based
  +middleware of current TPM�s is that they do not allow a loose coupling of
  +individual pieces of software, hindering the plug-and-play of business
  +components in the long run. For this purpose, failure- and versioning-tolerant
  +interaction mechanisms are pushed forwared. <i><a 
href="http://www.mom.org/">Message-Oriented
  +Middleware</a></i> (MoM) with its flexible and asynchronous publish/subscribe
  +model has been rediscovered as a suitable transport and brought up a new
  +generation of products, such as <i><a
  +href="http://www.microsoft.com/products/msmq">Microsoft Message Queue</a> 
</i>(MSMQ),
  +the <i><a href="http://java.sun.com/products/jms">Java Messaging Service</a></i>
  +(JMS), andthelike. <o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>Furthermore,
  +the incredible momentum that the <i><a href="http://www.xml.org/">eXtensible
  +Markup Language</a></i> (XML) has reached much recently and that let people
  +even rethink the future of <a href="http://www.w3c.org/">(X)HTML</a> can be
  +traced back to the question of finding a suitable exchange format between
  +application components. The upcoming <i><a href="http://www.soap.org/">Simple
  +Object Access Protocol</a></i> (SOAP) combines asynchronous HTTP-based
  +messaging with an XML-based data-binding and is backed by, e.g., <a
  +href="http://www.microsoft.com/">Microsoft</a> and <a 
href="http://www.ibm.com/">IBM</a>.
  +By relying on open standards, it has the potential to define the first real
  +cross-platform interoperability infrastructure. We will discuss some of the
  +SOAP details in Section 3.<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>Initially,
  +these two approaches seem not quite compatible being either focussed on
  +strongly-typed compile-time analysis versus weakly-tagged runtime analysis.
  +Indeed, they are however rather complementary giving us combinedly the means to
  +a) safely and comfortably develop application logic in an object-oriented
  +manner and to b) flexibly and transparently deploy this logic within a
  +loosely-coupled framework. With the example of jBoss and SOAP, we will scetch a
  +possible integrative architecture in Section 4 and its prototypical
  +implementation in Section 5 (The Zero-Effort Object Access Package � ZOAP) that
  +is currently implemented in a R&amp;D initiative of <a
  +href="http://www.infor.de/">infor:business solutions AG</a>.<span
  +style="mso-spacerun: yes">� </span>The goal of this initiative is the
  +development of a state-of-the-art runtime environment for <i>Enterprise
  +Resource-Planning</i> (ERP). Preliminary results have been already described in
  +separate technical white papers <a href="migration.htm#migration">[1]</a>, <a
  +href="#paper10">[10]</a>.<o:p></o:p></span></p>
  +
  +<h2><a name=OOP></a><a name=jboss><span style='mso-bookmark:OOP'><span
  +lang=EN-US style='mso-ansi-language:EN-US;font-weight:normal'>2. 
</span></span></a><span
  +style='mso-bookmark:jboss'><span lang=EN-US style='mso-ansi-language:EN-US;
  +font-weight:normal'>jBoss: An Open Source EJB-Server <o:p></o:p></span></span></h2>
  +
  +<span style='mso-bookmark:jboss'></span>
  +
  +<h3 style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>2.1
  +Ingredients of EJB�<o:p></o:p></span></h3>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>EJB�, rather than being a conrete product,
  +appears to be a standardised specification and logical architecture (<a
  +href="#cake">Figure 1</a>) for multi-tiered, object-oriented applications that
  +has been defined by an industrial consortium under the leadership of <a
  +href="http://www.sun.com/">Sun Microsystems Ltd.</a> (SUN), also the inventors
  +of the Java� language.<span style="mso-spacerun: yes">� </span>Each application
  +in the EJB sense consists of a set of<span style="mso-spacerun: yes">� 
</span><i>entity
  +beans</i>, such as of class </span><tt><span lang=EN-US style='font-size:10.0pt;
  +font-family:"Courier New";mso-ansi-language:EN-US'>BusinessPartner</span></tt><span
  +lang=EN-US style='mso-ansi-language:EN-US'> or </span><tt><span lang=EN-US
  +style='font-size:10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'>PurchaseOrder</span></tt><span
  +lang=EN-US style='mso-ansi-language:EN-US'>,<span style="mso-spacerun: yes">�
  +</span>that are the actual subjects or data of the application. The
  +manipulation of entitiy beans and hence the provision of business methods is
  +the task of so-called <i>session beans</i>, such as a </span><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>DocumentAdministrator</span></tt><span lang=EN-US style='mso-ansi-language:
  +EN-US'> that manages related documents of type </span><tt><span lang=EN-US
  +style='font-size:10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'>RequestForProposal</span></tt><span
  +lang=EN-US style='mso-ansi-language:EN-US'>, </span><tt><span lang=EN-US
  +style='font-size:10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'>Proposal</span></tt><span
  +lang=EN-US style='mso-ansi-language:EN-US'>, or </span><tt><span lang=EN-US
  +style='font-size:10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'>Quote</span></tt><span
  +lang=EN-US style='mso-ansi-language:EN-US'>. For example, the </span><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>DocumentAdministrator</span></tt><span lang=EN-US style='mso-ansi-language:
  +EN-US'> could have a method </span><tt><span lang=EN-US style='font-size:10.0pt;
  +font-family:"Courier New";mso-ansi-language:EN-US'>createPurchaseOrder(Quote
  +quote)</span></tt><span lang=EN-US style='mso-ansi-language:EN-US'> that
  +creates a new </span><tt><span lang=EN-US style='font-size:10.0pt;font-family:
  +"Courier New";mso-ansi-language:EN-US'>PurchaseOrder</span></tt><span
  +lang=EN-US style='mso-ansi-language:EN-US'> in the system as a reaction to an
  +incoming </span><tt><span lang=EN-US style='font-size:10.0pt;font-family:"Courier 
New";
  +mso-ansi-language:EN-US'>Quote</span></tt><span lang=EN-US style='mso-ansi-language:
  +EN-US'> given by a particular </span><tt><span lang=EN-US style='font-size:
  +10.0pt;font-family:"Courier New";mso-ansi-language:EN-US'>Vendor</span></tt><span
  +lang=EN-US style='mso-ansi-language:EN-US'> business partner <a
  +href="#footnote1">*</a>. <o:p></o:p></span></p>
  +
  +<p align=center style='margin-left:35.45pt;text-align:center'><span lang=EN-US
  +style='mso-ansi-language:EN-US'><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
  + coordsize="21600,21600" o:spt="75" o:preferrelative="t" 
path="m@4@5l@4@11@9@11@9@5xe"
  + filled="f" stroked="f">
  + <v:stroke joinstyle="miter"/>
  + <v:formulas>
  +  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
  +  <v:f eqn="sum @0 1 0"/>
  +  <v:f eqn="sum 0 0 @1"/>
  +  <v:f eqn="prod @2 1 2"/>
  +  <v:f eqn="prod @3 21600 pixelWidth"/>
  +  <v:f eqn="prod @3 21600 pixelHeight"/>
  +  <v:f eqn="sum @0 0 1"/>
  +  <v:f eqn="prod @6 1 2"/>
  +  <v:f eqn="prod @7 21600 pixelWidth"/>
  +  <v:f eqn="sum @8 21600 0"/>
  +  <v:f eqn="prod @7 21600 pixelHeight"/>
  +  <v:f eqn="sum @10 21600 0"/>
  + </v:formulas>
  + <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
  + <o:lock v:ext="edit" aspectratio="t"/>
  +</v:shapetype><v:shape id="_x0000_i1027" type="#_x0000_t75" style='width:453.75pt;
  + height:331.5pt'>
  + <v:imagedata src="./soapjBoss-Dateien/image001.gif" o:title="ejb"/>
  +</v:shape><![endif]--><![if !vml]><img border=0 width=605 height=442
  +src="./soapjBoss-Dateien/image002.gif" 
v:shapes="_x0000_i1027"><![endif]><o:p></o:p></span></p>
  +
  +<p align=center 
style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><b><span
  +lang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:
  +EN-US'>Figure 1: Logical Architecture of EJB�</span></b><span lang=EN-US
  +style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>Shipped with the proper object-oriented
  +application logic are so-called <i>deployment descriptors</i>, which are
  +meta-data that describe the envisaged transactional, persistence, security and
  +distribution behaviour of the embedded beans. This seperation into operational
  +and declarative parts of business logic has been demonstrated to incredibly
  +speed up the development process and has been overtaken as a particular
  +contribution of<span style="mso-spacerun: yes">� </span>the <i>Microsoft
  +Transaction Server</i> (MTS) and other <i>Transaction Processing Monitors</i>
  +(TPM�s). <o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>A full-fledged EJB� runtime environment, also
  +called EJB� application server, is now an extension to the Java� language
  +platform that is able to run the such packed EJB� applications by connecting
  +them to implementations of basic services, such as a data-access service to
  +contact an enterprise database, a transaction service to run distributes
  +transactions and an <i>Object Request Broker</i> (ORB) to cater for the
  +distribution of the applications. For that purpose, the EJB� specification
  +introduces another construct called the <i>container </i>that is an intercepting
  +wrapper around the deployed enterprise beans and that serves to transparently
  +contact and integrate the basic services behind the �application scenes�.<span
  +style="mso-spacerun: yes">� </span><o:p></o:p></span></p>
  +
  +<h3 style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>2.2
  +The jBoss Container Architecture<o:p></o:p></span></h3>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>As for the implementation of the basic services
  +and the container, each final EJB� product has to make its own choices,
  +providing different strengths and weaknesses with respect to different
  +application areas. The non-commercial <a href="http://www.j2ee.com/">reference
  +implementation from Sun</a>, for example, provides a means for testing the
  +specification compliance of deployed beans. For example, <a
  +href="http://www.persistence.com/">Persistence Powertier�</a>, has been
  +designed with respect to stateful data-intensive applications, while <a
  +href="http://www.bea.com/">BEA�s Weblogic suite</a>, on the other hand, is
  +clearly targetted towards stateless, highly-scalable multi-user environments
  +that have to integrate with legacy code. <o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>Hence, the EJB� approach opens up a broad
  +market where every customer can find the �ideal� server, but is nevertheless
  +given the possiblity to change the implementation platform withouth having to
  +change its application logic � a clear competition advantage. Yet, this promise
  +has however not fully come true, since for optimisation purposes, for example,
  +when running batches over enterprise databases of considerable size, one is
  +still forced to use proprietary extensions of the vendors which makes the
  +deployability in other servers impossible or at least very difficult. 
<o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>Furthermore, we could think about areas, such
  +as in building internet-aware <i>Enterprise Resource Planning</i> (ERP), in
  +which the EJB� �customer� is itself an <i>Independent Software Vendor</i> (ISV)
  +that needs to extend the basic services of the server in order to fit its
  +needs, for example, to integrate with the latest e-commerce interoperability
  +standard (and these are quite frequently changing in these days �). Opening up
  +the container structure for third-parties is of course not in the vital
  +interest of EJB� vendors.<o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>This is what brought us into looking at the <i>Open
  +Source Community </i>for EJB�-related products, where implementations of ORB�s,
  +data-access tiers, and other central parts of enterprise applications have been
  +already around for a couple of years. The advantage of choosing such a
  +development model for an ISV is that the runtime environment code is maintained
  +and shared by a large community of industry and motivated developers and that
  +it<span style="mso-spacerun: yes">� </span>is open to necessary adaptions and
  +extensions. On the other hand, the �capital� which is the application logic and
  +its deployment information, still remains the non-disclosed property of the
  +ISV. Due to the declarative approach of EJB�, such a clean seperation in
  +licensing different parts of the system (GNU public license versus a commercial
  +license) is encouraged. <o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>Much recently, we find the first functional
  +open-source TPM�s and application servers. <a 
href="http://www.enhydra.org/">Enhydra</a>
  +from <a href="http://www.lutris.com/">Lutris</a>, for example, is currently a
  +very advanced platform for e-commerce type of applications. It merged in 1999
  +with the <a href="http://www.objectweb.org/">Jonas</a> effort of <a
  +href="http://www.bull.com/">Bull</a> and <a 
href="http://www.france-telecom.fr/">France
  +Telecom</a> to provide a ful-fledged EJB1.1 compliant server. While these
  +projects did already start in 1998 and earlier, <a 
href="http://www.jboss.org/">jBoss</a>
  +is a relatively young initiative mainly sponsored by <a
  +href="http://www.telkel.com/">Telkel</a> that aims to build a
  +technologically-revolutionary container making full usage of the Java2 platform
  +(<a href="#container">Figure 2</a>).<o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  +
  +<p align=center style='margin-left:53.4pt;text-align:center'><a name=container><span
  +lang=EN-US style='mso-ansi-language:EN-US'><!--[if gte vml 1]><v:shape 
id="_x0000_i1028"
  + type="#_x0000_t75" style='width:453.75pt;height:268.5pt'>
  + <v:imagedata src="./soapjBoss-Dateien/image003.gif" o:title="jBoss"/>
  +</v:shape><![endif]--><![if !vml]><img border=0 width=605 height=358
  +src="./soapjBoss-Dateien/image004.gif" 
v:shapes="_x0000_i1028"><![endif]><o:p></o:p></span></a></p>
  +
  +<p align=center style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><span
  +style='mso-bookmark:container'><strong><span lang=EN-US style='font-size:14.0pt;
  +mso-bidi-font-size:12.0pt;mso-ansi-language:EN-US'>Figure 2: Modular Container
  +Architecture of jBoss</span></strong></span><strong><span lang=EN-US
  
+style='font-size:14.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:EN-US'><o:p></o:p></span></strong></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>The fundamental contribution of jBoss, besides
  +a plethora of useful new features, such as hot-deploy and <i>Java Management
  +eXtension</i>-compliance, is to modularize the container into a configurable
  +set of interceptors, each of which is responsible for contacting and managing a
  +different basic service integrated into the runtime. For example, there is an
  +invoker-interceptor that receives incoming method-calls over the middleware
  +(currently: Java�s built-in <i>Remote-Method-Invocation</i> over the <i>Java
  +Remote Method Protocol</i>) and derserialises data into Java objects. There
  +follows a security interceptor based on the <i>Java Authentication and
  +Authorization Service </i>that sets and checks permissions of the incoming
  +thread. jBoss provides a transaction interceptor that analyses and manages
  +transactional behaviour followed by a persistence interceptor (for entity
  +beans) that interfaces an underlying SQL database via a particular persistence
  +service (JAWS/Minerva) and JDBC-connectivity.<o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>This chain of interceptors (implemented as
  +transparent and compilation-less Java2 proxies) is now extremely configurable,
  +the actual container just being the management unit that connects them to each
  +other and that provides the meta-data for the application in a central manner.
  +Particular interceptors can be extended, replaced, removed or added, depending
  +on the actual needs of the final application. This is the key to easily
  +integrate, for example, different middleware paradigms into the EJB� platform �
  +something which is highly difficult and opaque for the application in almost
  +all other EJB� servers, today. <o:p></o:p></span></p>
  +
  +<h2 style='text-align:justify'><a name=inforCE><span lang=EN-US
  +style='mso-ansi-language:EN-US;font-weight:normal'>3. </span></a><span
  +lang=EN-US style='mso-ansi-language:EN-US;font-weight:normal'>SOAP: The Simple
  +Object Access Protocol<o:p></o:p></span></h2>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>There is exactly one place where the TPM/EJB�
  +concept currently falls short which is the possiblity of letting different
  +EJB-applications (we rather say component to such a self-contained structure)
  +depoyed in heterogeneous and globally networked enteprise systems talk to each
  +other. This is necessary if we think of the increasing level of global
  +interoperability, for example in future supply-chain management. This is also
  +necessary if we plan to break up formerly monolithic systems, such as an ERP
  +system into more easily maintainable and upgradable sub-components.<span
  +style="mso-spacerun: yes">� </span><o:p></o:p></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>The problem that is posed, then, is the style
  +of distributed object access inherent in the �traditional� concepts of
  +COM/CORBA/RMI. In both COM and CORBA, remote calls are usually handled
  +synchronously to retain a transparent programming semantics. When we think of
  +systems comprised out of several hundreds of enterprise components,<span
  +style="mso-spacerun: yes">� </span>this amounts to either a resource-consuming
  +amount of point-to-point connections or requires a sophisticated, and hence
  +potentially instable connection management builtin to the systems. Furthermore,
  +in both COM and CORBA, remote object access is done via publishing interfaces
  +and precompiled data-structures to be shared by the interacting components.
  +When incrementally changing the data-structures and interfaces in one
  +component, this often requires to recompile dependent parts, e.g., <i>remote
  +stubs, value holders, and helpers</i>, in other components as well. This will
  +be no more possible in up-scaled global systems of the future. Even dynamic
  +class loading is not a real solution to that problem since it relies on
  +proprietary runtime environments and it lacks the safety of<span
  +style="mso-spacerun: yes">� </span>precompiled information. Hence, a
  +self-contained component should be shipped with all the classes that it must
  +interact with at runtime.<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>The
  +<i><a href="http://www.w3c.org/">eXtensible Markup Language</a></i> (XML) that
  +is brought forward by the W3C consortium as <b>the </b>next standard underlying
  +even (X)HTML, promises to remedy this issue. This is because XML provides a
  +uniform and failure-tolerant method for describing and exchanging structured
  +data. Initiatives, such as <a href="http://www.bizztalk.com/">Bizztalk</a>,
  +have already adopted XML as the basis to translate between heterogenous
  +business applications. For distributed business components to connect to each
  +other seamlessly, asynchronously, and probably through existing firewall
  +structures, XML is also proposed as the encoding language within the standard,
  +lightweight HTTP and SMTP transport protocols to comprise the <i><a
  +href="http://msdn.microsoft.com/xml/general/">Simple Object Access Protocol</a></i>,
  +shortly SOAP. Both XML as well as HTTP and SMTP are in the meantime a
  +convention that is equally shared by both the Java� and the COM-world. Hence,
  +SOAP has the potential to define the first practical interoperability device
  +between these two worlds. <o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>In
  +<a href="#soap">Figure 3</a>, we have scetched an example SOAP message embedded
  +into an http-request which is taken from the SOAP 1.1 specification. We
  +recognize that it uses a quite simple POST-method to carry the actual payload,
  +which is a properly tagged XML-Document, from the client to the server. The URI
  +and a part of the http-header specify the dedicated server service more
  +precisely. In the shipped XML-document, the special namespace �SOAP� with its
  +attached Xml-Schema definition under �urn:schemas-xmlsoap-org:soap.v1�
  +decribes, how the body of the Soap-Request must be structured.<span
  +style="mso-spacerun: yes">� </span>For example, it always needs a so-called
  +envelope around the actual content of the message which is interpreted as a
  +method-call (getLastTradePrice(�DIS�)) on some target object (bound to the URL
  +/StockQuote in this example). </span><tt><span lang=EN-US style='font-size:
  +10.0pt;font-family:"Courier 
New";mso-ansi-language:EN-US'><o:p></o:p></span></tt></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><a name=soap><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>POST /StockQuote HTTP/1.1<o:p></o:p></span></tt></a></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>Host: www.stockquoteserver.com<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>Content-Type: text/xml<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>Content-Length: nnnn<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>SOAPMethodName: 
Some-Namespace-URI#GetLastTradePrice<o:p></o:p></span></tt></span></p>
  +
  +<p><span style='mso-bookmark:soap'><tt><span lang=EN-US style='font-size:10.0pt;
  +font-family:"Courier New";mso-ansi-language:EN-US'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>&lt;SOAP:Envelope
  
+xmlns:SOAP=&quot;urn:schemas-xmlsoap-org:soap.v1&quot;&gt;<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'><span style="mso-spacerun: yes">��� 
</span>&lt;SOAP:Body&gt;<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'><span style="mso-spacerun: yes">������� </span>&lt;m:GetLastTradePrice 
<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'><span style="mso-spacerun: yes">����������� 
</span>xmlns:m=&quot;Some-Namespace-URI&quot;&gt;<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'><span style="mso-spacerun: yes">��������������� 
</span></span></tt></span><span
  +style='mso-bookmark:soap'><tt><span lang=FR style='font-size:10.0pt;font-family:
  +"Courier 
New";mso-ansi-language:FR'>&lt;symbol&gt;DIS&lt;/symbol&gt;<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=FR style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +FR'><span style="mso-spacerun: yes">������� </span></span></tt></span><span
  +style='mso-bookmark:soap'><tt><span lang=EN-US style='font-size:10.0pt;
  +font-family:"Courier 
New";mso-ansi-language:EN-US'>&lt;/m:GetLastTradePrice&gt;<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'><span style="mso-spacerun: yes">��� 
</span>&lt;/SOAP:Body&gt;<o:p></o:p></span></tt></span></p>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span 
style='mso-bookmark:soap'><tt><span
  +lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-ansi-language:
  +EN-US'>&lt;/SOAP:Envelope&gt;</span></tt></span><span 
style='mso-bookmark:soap'><span
  +lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></span></p>
  +
  +<p align=center style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><span
  +style='mso-bookmark:soap'><b><span lang=EN-US style='mso-ansi-language:EN-US'>Figure
  +3: Soap-Message via http-request<o:p></o:p></span></b></span></p>
  +
  +<span style='mso-bookmark:soap'></span>
  +
  +<p style='margin-left:36.0pt;text-indent:-.6pt'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>We see that SOAP is quite neutral with respect
  +to the underlying transport since textual XML representations can be loaded
  +into nearly all IP-based transports we can think of. We also see that SOAP is
  +quite neutral with respect to the underlying object model and programming
  +platform, since the way in which the content is processed is not determined at
  +all. For example, a Java�-based recipient could deserialize the given call into
  +a proper method call by binding a string �DIS� to the embedded &lt;symbol/&gt;
  +tag. We could also imagine some other service that immediately processes the
  +XML structure without taking an object-oriented stance at all.<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>SOAP
  +is also quite neutral with respect to synchronicity. It is possible for the
  +server to send the result of the method call as an ordinary SOAP message in the
  +corresponding http-response. It is also possible that the presented request is
  +queued, persisted, routed, and later executed on a different machine such that
  +the response (including faults, etc.) is send with a delay<span
  +style="mso-spacerun: yes">� </span>to an SMTP or HTTP server on which the
  +original sender of the method call listens.<span style="mso-spacerun: yes">�
  +</span><o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>And
  +SOAP is currently supported by industry coming both from the MS-world, i.e,
  +Microsoft themselves, and the Java�-world � IBM has recently commited its
  +e-business activities tightly to this platform. Hence, the first reference
  +implementations of the latest 1.1 standard are already available as
  +COM-components or Java implementations, alternatively.<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US style='mso-ansi-language:EN-US'>From
  +these considerations, it becomes clear that it would be highly desirable to
  +integrate such a simple, but powerful object access mechanism to the Enterprise
  +Java-Beans� platform as well, opening up the OO-centered application logic to
  +global Internet services. <o:p></o:p></span></p>
  +
  +<h2><a name=realisation><span lang=EN-US style='mso-ansi-language:EN-US;
  +font-weight:normal'>4</span></a><a name=technicalCoupling><span
  +style='mso-bookmark:realisation'><span lang=EN-US style='mso-ansi-language:
  +EN-US;font-weight:normal'>. </span></span></a><span 
style='mso-bookmark:realisation'><span
  +lang=EN-US style='mso-ansi-language:EN-US;font-weight:normal'>An Integration of
  +SOAP with EJB� </span></span><span lang=EN-US style='mso-ansi-language:EN-US;
  +font-weight:normal'><o:p></o:p></span></h2>
  +
  +<p style='margin-left:35.4pt'>Due to the modular and open structure of jBoss,
  +an initial support for SOAP is architecturally straightforward. Similar to the
  +already existing or planned invoker-interceptors for JRMP1.1, JRMP1.2, or
  +IIOP2.3, we could imagine an alternative SOAP-invoker (Figure 4) sitting as the
  +first interceptor in the jBoss container�s chain of responsibility. In Figure
  +4, we have even scetched the in-principle possiblity of having several parallel
  +interceptor chains leading to the same bean and<span style="mso-spacerun:
  +yes">� </span>allowing for simultanous access via different interoperability
  +protocols. SOAP-invokers are registered in a dedicated HTTP-Server that is started
  +as a separate jBoss-service (mlet) in the application server. When registering,
  +the invokers obtain a unique extension path to the root-URL of the HTTP-Server.
  +For example, if the bean�s home is normally available under the JNDI name
  +�test/TestBean�, we make it available under SOAP with the URL <tt><span
  +style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;mso-ascii-font-family:
  +"Times New Roman";mso-fareast-font-family:"Times New Roman";mso-hansi-font-family:
  +"Times New Roman";mso-bidi-font-family:"Times New Roman"'><a
  
+href="http://localhost:2121/test/TestBean/">http://localhost:2121/test/TestBean/</a>.
  +</span></tt><tt><span style='font-size:10.0pt;font-family:"Courier 
New"'><o:p></o:p></span></tt></p>
  +
  +<p align=center style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><span
  +lang=EN-US style='mso-ansi-language:EN-US'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  +
  +<p class=MsoCaption><span lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1029"
  + type="#_x0000_t75" style='width:453.75pt;height:319.5pt'>
  + <v:imagedata src="./soapjBoss-Dateien/image005.gif" o:title="soapInterceptor"/>
  +</v:shape><![endif]--><![if !vml]><img border=0 width=605 height=426
  +src="./soapjBoss-Dateien/image006.gif" v:shapes="_x0000_i1029"><![endif]></span></p>
  +
  +<p class=MsoCaption><span lang=EN-US><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  +
  +<p class=MsoCaption><span lang=EN-US>Figure 4: SOAP Interceptors for Providing
  +SOAP Services</span></p>
  +
  +<p class=MsoBodyTextIndent><span lang=EN-US><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'>Stateless access via SOAP now goes the following
  +route: The client (which may be a transparent SOAP-proxy that allows seemless
  +remote access via remote interfaces, see below) sends a SOAP-enabled
  +HTTP-Request to the HTTP-Server using the identifying URL as above. The server
  +then routes this request (still unparsed) to the registered invoker under the
  +relative path. The invoker is now responsible for deserialising the
  +SOAP-envelope and its contents into a proper Java-method-call using a
  +bean-specific databinding which is planned to be specified via an extende 
EJB/jBoss-meta-data
  +annotation in the future. The deserialised method call is then fed into the
  +interceptor chain as an ordinary bean-method call for further processing (for
  +SOAP, we think that we do not need any of the home-interface methods for the
  +time being). </p>
  +
  +<p style='margin-left:35.4pt'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  +
  +<p style='margin-left:35.4pt'>Similarly, the result of the method execution
  +which could also be application and app-server exceptions raised is again
  +intercepted by the invoker that derialises them into a proper SOAP-envelope
  +using its bean-attached databinding. In a first, synchronous implementation,
  +this envelope would be put into an http-response that is handed to the
  +HTTP-Server and returned to the blocked client thread. What we already gain is
  +that the client and the server data structures are completely decoupled from
  +each other � e.g., a Java-Client could use different versions of the data
  +classes than the ones that are present in the application beans where the
  +individual databindings have a common denominator that allows a tolerant and
  +useful exchange. </p>
  +
  +<p style='margin-left:35.4pt'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  +
  +<p style='margin-left:35.4pt'>In a more advanced asynchronous setting, we would
  +send this envelope in a separate message, e.g., via SMTP, to the original
  +sender of the method call. <span lang=EN-US style='mso-ansi-language:EN-US'>For
  +this purpose, the sender could identify itself in the message with a unique
  +URI. The directory- or rather home-based URI�s that we have just presented are
  +not yet enough for such a unique identification that is also needed if we like
  +to access stateful beans, such as stateful session beans and entity beans. Fror
  +this purpose, we woul like to introduce a mechanism that maps string-based
  +file-handles, e.g., <a
  
+href="http://localhost:2121/test/TestBusinessService/0815">http://localhost:2121/test/TestBusinessService/0815</a>,
  +into a uniqu EJB-handle or hash key that points to a single bean or object
  +instance in the VM. We preliminary resolve the important question of
  +Distributed Garbage Collection by persistent http-connections that, when close,
  +release all attached stateful bean instances. However, this is not yet fully
  +worked out and we rely on our experiences with a first implementation that is
  +currently under development.<o:p></o:p></span></p>
  +
  +<p align=center style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><span
  +lang=EN-US style='mso-ansi-language:EN-US'><!--[if gte vml 1]><v:shape 
id="_x0000_i1030"
  + type="#_x0000_t75" style='width:453pt;height:401.25pt'>
  + <v:imagedata src="./soapjBoss-Dateien/image007.gif" o:title="soapProxy"/>
  +</v:shape><![endif]--><![if !vml]><img border=0 width=604 height=535
  +src="./soapjBoss-Dateien/image008.gif" 
v:shapes="_x0000_i1030"><![endif]><o:p></o:p></span></p>
  +
  +<p align=center 
style='margin-left:36.0pt;text-align:center;text-indent:-.6pt'><b><span
  +lang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;mso-ansi-language:
  +EN-US'>Figure 5: SOAP-Proxies for Accessing SOAP Services<o:p></o:p></span></b></p>
  +
  +<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  +mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  +"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  +"Times New Roman"'>To allow for loosely-coupled inter-bean operations and a 
transparent
  +Java-client access, we would like to propose a SOAP-proxy structure (Figure 5).
  +That is an implementation of the java.lang.reflect.InvocationHandler interface
  +which allows to hide a generic framework behind application or rather remote
  +interfaces at runtime. The application or the client will then be presented an
  +object that behaves as if it was an ordinary object implementing that
  +interface, but indeed, method calls are invoking a dedicated generic method on
  +the invocation handler that serialises them into SOAP envelopes (inversely<span
  +style="mso-spacerun: yes">� </span>to the invoker above) and sends them via
  +HTTP or SMTP. Upon reception of a response (maybe by an integrated
  +HTTP-Server), the return value is deserialised and given back as the result of
  +the method call (or raised as an exception if it was a fault message). Since a
  +SOAP-proxy is tight to a given URL, it can be easily (de-)serialised via IIOP
  +and also via XML/SOAP, again.</span></tt></p>
  +
  +<h2><span lang=EN-US style='mso-ansi-language:EN-US'>5. The ZOAP 
project<o:p></o:p></span></h2>
  +
  +<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  +mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  +"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  +"Times New Roman"'>The Zero-Effort Object Access Package (ZOAP) is a
  +prototypical implementation of SOAP for EJB� that integrates with jBoss. It
  +comes with two sub-packages which are infor:X (the infor:business solutions AG
  +XML databinding service) and jHTTP (a lightweight abstract HTTP-Server
  +implementation that can be used to implement various http-based transfer
  +mechanisms for files, XML-documents, etc.). On top of those, ZOAP provides Java
  +abstractions for SOAP messages, SOAP-enabled services and proxies, and, in
  +particular, an implementation of SOAP-over-HTTP. </span></tt><tt><span
  +lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
  +mso-ascii-font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";
  +mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:"Times New Roman";
  +mso-ansi-language:EN-US'>In addition, ZOAP provides a jBoss-compatible invoker
  +class that builds on those abstractions.<span style="mso-spacerun: yes">�
  +</span><o:p></o:p></span></tt></p>
  +
  +<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  +mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  +"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  +"Times New Roman"'>The rationale behind not using an existing and free SOAP
  +implementation, such as the one from IBM, are technically and strategically.
  +Technically, the IBM implementation relies on the resource-consuming
  +Xerces-parser and uses the costly Domain-Object-Model interface of that parser
  +to deserialise XML messages. Furthermore, the databindings have no immediate
  +support for XML-Schemas which we see as important when building generic
  +components that need meta-data to be shipped with the actual object data.
  +Strategically, we would like to provide a fully GPL-compatible module in the
  +end. The rationale behind not using a powerful servlet-engine or http-server
  +implementation, such as tomcat, is that for experimenting with the internal
  +architecture, a pure-Java implementation that is widely controllable at runtime
  +seems the better choice.<o:p></o:p></span></tt></p>
  +
  +<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  +mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  +"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  +"Times New Roman"'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></tt></p>
  +
  +<p style='margin-left:35.4pt'><tt><span style='mso-ansi-font-size:12.0pt;
  +mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  +"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  +"Times New Roman"'>A first version of ZOAP is already working with the usual
  +restrictions wrt. specification compatibility, robustness, and functionality.
  +We plan to release it in the near future. Planned extensions are (in order) a)
  +clean-up of<span style="mso-spacerun: yes">� </span>exception handling and the
  +meta-data structure, b) full integration with jBoss also wrt to dgc,<span
  +style="mso-spacerun: yes">� </span>c) compatibility to the MS-Soap
  +implementation, and d) asynchronous requests and message queue support. 
<o:p></o:p></span></tt></p>
  +
  +
  +<h2 align=center style='text-align:center'>
  +
  +<hr size=2 width="100%" align=center>
  +
  +</h2>
  +
  +
  +<h2><a name=conclusion><span lang=EN-US 
style='mso-ansi-language:EN-US'>Conclusion</span></a><span
  +lang=EN-US style='mso-ansi-language:EN-US'> <o:p></o:p></span></h2>
  +
  +<p class=MsoBodyTextIndent><tt><span lang=EN-US style='mso-ansi-font-size:12.0pt;
  +mso-bidi-font-size:12.0pt;mso-ascii-font-family:"Times New 
Roman";mso-fareast-font-family:
  +"Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:
  +"Times New Roman"'>We have argumented for an integration of<span
  +style="mso-spacerun: yes">� </span>loosely-coupled Xml-based messaging
  +mechanisms, such as SOAP, into strictly-typed object-oriented business
  +programming platforms, such as EJB�. ZOAP (The Zimple Object Access Package) is
  +a prototypical implementation of SOAP for EJB� that integrates with the modular
  +Open-Source application server jBoss. It should be released under the GPL in
  +the near future. </span></tt></p>
  +
  +
  +<h2 align=center style='text-align:center'>
  +
  +<hr size=2 width="100%" align=center>
  +
  +</h2>
  +
  +
  +<h2><span lang=EN-US 
style='mso-ansi-language:EN-US;font-weight:normal'>Footnotes<o:p></o:p></span></h2>
  +
  +<p><a name=footnote1><span lang=EN-US style='mso-ansi-language:EN-US'>(*)<span
  +style='mso-tab-count:1'>������ </span>Please note that the terminology in this
  +paper is the personal interpretation of the author and is just to motivate some
  +very basic concepts. A concise and authorised introduction into EJB� is not the
  +scope of this document and should rather be obtained directly from the </span></a><a
  +href="http://www.j2ee.com/"><span style='mso-bookmark:footnote1'><span
  +lang=EN-US style='mso-ansi-language:EN-US'>official sources</span></span><span
  +style='mso-bookmark:footnote1'></span></a><span style='mso-bookmark:footnote1'><span
  +lang=EN-US style='mso-ansi-language:EN-US'>.</span></span><span lang=EN-US
  +style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
  +
  +<h2><span lang=EN-US 
style='mso-ansi-language:EN-US;font-weight:normal'>References<o:p></o:p></span></h2>
  +
  +<p style='margin-left:35.4pt'><a name=migration><span lang=EN-US
  +style='mso-ansi-language:EN-US'>[1]<span style='mso-tab-count:1'>������ 
</span></span></a><a
  +href="migration.html"><span style='mso-bookmark:migration'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>Hofmann B., Jung, C. G., Kaufmann, G., Sch�rk,
  +A., and Wolber, M.: The infor:Component Engine � A 5<sup>th</sup> Generation
  +Runtime Environment for Internet-Aware Business Applications</span></span><span
  +style='mso-bookmark:migration'></span></a><span style='mso-bookmark:migration'><span
  +lang=EN-US style='mso-ansi-language:EN-US'>, Technical White Paper,
  +infor:business solutions AG, Karlsruhe, March, 2000</span></span><span
  +lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>[2]<span
  +style='mso-tab-count:1'>������ </span></span><a
  +href="http://java.sun.com/products/ejb/pdf/zona.pdf"><span lang=EN-US
  +style='mso-ansi-language:EN-US'>Enterprise JavaBeans</span><sup><span
  +lang=EN-US style='font-size:7.5pt;mso-ansi-language:EN-US'>TM</span></sup><span
  +lang=EN-US style='mso-ansi-language:EN-US'> Technology � A Business Benefits
  +Analysis</span></a><span lang=EN-US style='mso-ansi-language:EN-US'> (pdf
  +file), A Zona Research Paper, Zona Research Inc., June, 1999<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>[3]<span
  +style='mso-tab-count:1'>������ </span></span><a 
href="http://www.forrester.com/"><span
  +lang=EN-US style='mso-ansi-language:EN-US'>Forrester Research Report 
6-99</span></a><span
  +lang=EN-US style='mso-ansi-language:EN-US'>, Forrester Research, June, 
1999<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>[4]<span
  +style='mso-tab-count:1'>������ </span>Booch, Jacobson, Rumbough: The Unfied
  +Modelling Language Reference Guide, Addison-Wesley, 1998<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'>[5]<span
  +style='mso-tab-count:1'>������ </span>Coleman, D., Arnold, P., Bodoff, S.,
  +Dollin, C., Gilchrist, H., Hayes, F., and Jeremaes, P.: Object-Oriented
  +Development: The Fusion Method, Addison-Wesley, 1998<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'>[6]<span style='mso-tab-count:1'>������ </span>Prasse,
  +K., Feinkonzept f�r die Lj4-Java Kopplung, Technical White Paper,
  +infor:business solutions AG, Karlsruhe, February, 2000</p>
  +
  +<p style='margin-left:35.4pt'><span lang=FR style='mso-ansi-language:FR'>[7]<span
  +style='mso-tab-count:1'>������ </span>Monson-Haefel, R.: Enterprise Java-Beans,
  +O-Reilly, 1999<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><span lang=FR style='mso-ansi-language:FR'><span
  +style="mso-spacerun: yes">�</span></span><span lang=EN-US style='mso-ansi-language:
  +EN-US'>[9]<span style='mso-tab-count:1'>����� </span>Atkinson, C., K�hne, T.,
  +and Bunse, C.: Dimensions of Component-Based Development, Fourth International
  +Workshop on Component-Oriented Programming, 1999<o:p></o:p></span></p>
  +
  +<p style='margin-left:35.4pt'><a name=paper10><span lang=EN-US
  +style='mso-ansi-language:EN-US'>[10]<span style='mso-tab-count:1'>���� 
</span></span></a><a
  +href="migration.html"><span style='mso-bookmark:paper10'><span lang=EN-US
  +style='mso-ansi-language:EN-US'>Hofmann B., Jung, C. G., Kaufmann, G., Prasse,
  +K., Sch�rk, A., and Wolber, M.: From 4th Generation Languages to 5th Generation
  +Containers � Taking the Step into Internet-Aware Business 
Applications</span></span><span
  +style='mso-bookmark:paper10'></span></a><span style='mso-bookmark:paper10'><span
  +lang=EN-US style='mso-ansi-language:EN-US'>, Technical White Paper,
  +infor:business solutions AG, Karlsruhe, April, 2000<o:p></o:p></span></span></p>
  +
  +<span style='mso-bookmark:paper10'></span>
  +
  +<p style='margin-left:35.4pt'><span lang=EN-US 
style='mso-ansi-language:EN-US'><![if 
!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  +
  +
  +<div class=MsoNormal align=center style='text-align:center'>
  +
  +<hr size=2 width="100%" align=center>
  +
  +</div>
  +
  +
  +<p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>� 2000 by
  +infor:business solutions AG, All rights reserved.<o:p></o:p></span></p>
  +
  +</div>
  +
  +</body>
  +
  +</html>
  
  
  

Reply via email to