next Elements of Design
up Components Taxonomy and Collaboration
previous Client Proxy
  Contents
PDF version   PostScript version

Server Module

The server module must be `plugged' into the J2EE platform--delegating HTTP handling to the Servlet engine (Apache Tomcat) that provides a multi-threaded HTTP listening facility of 20 concurrent listeners. For this purpose Tomcat has been configured to support SOAP, and the base class HttpConnector extends the Servlet API.
An outcome of the concurrency in the server module is the need to adopt a safe resource sharing strategy. A quick review of the arity of the class associations in Figure B.1 reveals that only the objects encapsulating the services' meta-information (e.g. instances of Port) need to be shared. This is the result of an architectural decision to apply a stateless object collaboration model sometimes documented as the stateless pattern. In this model most data elements are passed to the object on method call and objects do rarely share any data, removing the need for data integrity protection mechanisms, therefore leading to improved performance. This approach is utilised in many application servers, including JBoss. The model may appear to go against object-orientation, it is however essentially applied to transactional objects--that is, objects modelling a transaction as opposed to objects modelling an domain entity.
The module is not portable for two reasons. First the JBoss startup script requires the Bourne shell. Moreover, the NativeHelper class, a wrapper for the libXMLbroker.so shared-library, may be used to generate uniques servant identifiers.


next Elements of Design
up Components Taxonomy and Collaboration
previous Client Proxy
  Contents

Copyright © 2001 Jean-Marc Rosengard