Elements of Design
Components Taxonomy and Collaboration
Client Proxy
  Contents
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.
Elements of Design
Components Taxonomy and Collaboration
Client Proxy
  Contents
Copyright © 2001 Jean-Marc Rosengard