jBroker Web: Web Services Development for any Application Server

Mike Foley, Quality Assurance



Among the many promises of J2EE perhaps most important is the promise of application portability

    Requires Free Membership to View

. Application portability promises that a J2EE application will run identically on any application server -- WebLogic, WebSphere, TomCat, Oracle's 9iAS, or SilverStream's Application Server. The benefit of application portability is of course simple to understand in business terms -- avoid vendor-lock and enjoy the many benefits of open standards. But is this promise of portability another case of unfufilled promises, or is someone actually delivering on this promise? Let's put this promise of portability to the test using SilverStream Software's new web services technology known as JBroker Web and development and deployment tool, SilverStream eXtend.

Web services are all the rage these days, but in some regards they are not that new. In it's essence, a web service is a servlet that can respond to an HTTP POST that contains a SOAP envelope. The SOAP envelope contains what is essentially a remote procedure call which is executed on the application server. The web service replies with an HTTP message enveloping a SOAP envelope. This communication between web service and web service client can be viewed in a tool called a TCPTunnel, as shown below.

Click to view Figure 1.

Application server independent web service request

Connection: Keep-Alive
SOAPAction: http://www.hello#sayHello
Content-Type: text/xml; charset=utf-8
Content-Length: 419
User-Agent: Java1.2.2
Host: localhost:8000
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
<Envelope xmlns:SOAP-ENV='' xmlns=
'' xmlns:xsd='' xmlns:xsi=
'' xmlns:SOAP-ENC=''><Body>
<ns1:sayHello SOAP-ENV:encodingStyle='' xmlns:ns1='urn:Hello'>

SilverStream's application server

HTTP/1.1 200 OK
Date: Wed, 08 Aug 2001 20:23:15 GMT
Set-Cookie: JSESSIONID=@4a3783:e833d7cc08;path=/
Content-Length: 496
Content-Type: text/xml;charset=utf-8
Server: SilverStream Server/10.0
<Envelope xmlns:SOAP-ENV='' xmlns=
'' xmlns:xsd='' xmlns:xsi=
'' xmlns:SOAP-ENC=''><Body>
<ns1:sayHelloResponse SOAP-ENV:encodingStyle='' xmlns:ns1='urn:Hello'>
<result xsi:type='xsd:string'>GOODBYE CRUEL WORLD!!!</result></ns1:sayHelloResponse></Body></Envelope>

BEA's WebLogic

HTTP/1.1 200 OK
Date: Mon, 09 Jul 2001 20:10:07 GMT
Server: WebLogic 6.0 Service Pack 1 03/04/2001 22:05:05 #101616
Content-Length: 496
Content-Type: text/xml; charset=utf-8
Connection: Keep-Alive
<Envelope xmlns:SOAP-ENV=''
xmlns='' xmlns:xsd=''
SOAP-ENV:encodingStyle='' xmlns:ns1='urn:Hello'>
<result xsi:type='xsd:string'>GOODBYE CRUEL WORLD!!!</result></ns1:sayHelloResponse></Body></Envelope>

It is interesting to note that the response is the same -- regardless of the application server that the web service was deployed to as observed through the microscope of TCPTunnel. Tested application servers are: BEA WebLogic, IBM WebSphere, TomCat, Sun's Reference Implementation, SilverStream's Application Server, and Oracle 9iAS.

Sometimes tools can pickup problems that the human eye cannnot. An interesting and thorough tool is the SOAP validator at . Here again, all JBroker Web's SOAP envelopes test as valid -- regardless of the application server in which the same web service is running.

Click to view Figure 2.

Additional tests were very thorough to a point where, from a code coverage analysis perspective, 90% of the classes in JBroker Web received coverage and no portability issues were detected. The code just plain runs in any application server.

J2EE's promise of portability is being delivered on by Silverstream Software, for sure!

For more information or to download jBroker Web and SilverStream eXtend Workbench, visit the eXtend site at


Copyright 2001, SilverStream Software. Reprinted by permission.


Talk back or comment on this article

The Best Web Links for J2EE

The Best Web Links for Web services

The Best Web Links for Application Servers

There are Comments. Add yours.

TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: