 |
Notice
|
To access the demo you will require a password
(monitor
application requires no password).
Click here to ask for a password to be sent
If a tier appears to be off-line click here
and describe the error. Please note that components may be unavailable from time to time as the service is developed
and evaluated
|
Introduction
These pages present an on-line demonstration of REFLEX RComponents and their integration in enterprise
class applications, using the
REFLEX RComponent API.
The objective of the demonstration is to show the flexibility, and support for
service evolution in web services that can be achieved through the use of RComponents. Web services are
increasingly important for information dissemination within organisations. Architectures such as Microsoft
.NET addresses the provision of software objects as web services. With RComponents the services are
fully adaptable without service withdrawal allowing dynamic reconfiguration of the presented service,
as demonstrated in these pages. The service is implemented as an N-tier architecture integrated
with Enterprise Java.
The demonstration shows a simple share pricing service, where the service is dynamically reconfigurable.
The service itself is simple displaying a share price as it changes to the user. For the purposes of
demonstration we are interested in the reconfiguration of this service, which is illustrated in the demonstration
in a number of ways,
- Through data source switching to track the share price of another company
- The additional display of information to the user of the service, allowing for the tracking of
gain or loss in share price since the last valuation. This is displayed graphically within one
of the service configurations. The visualisation code is separated from other tiers enabling replacement
and evolution. The configuration also tracks peak high/low prices and percentage losses/gains.
- The evolution of the service to support logging of interactions with the service. This feature
can be added to the service dynamically to log client interactions and service time to serve client
requests. Technically, this is implemented as an RComponent intercession (see
the RComponent API for further details).
- A service monitor can be dynamically plugged into the application in the form of a Java application.
This allows the monitoring of content sent to client browsers in real-time. This is implemented as an
RComponent notification listener (see the RComponent API for further details).
Note, other types of service monitor could be added. For example, to sound an alarm if a component
became unreachable.
- The service can be re-initialised from the administration interface to restore behaviour
Technical Detail
The service is built around an N-tier architecture with diagnostic support through drivers at each
tier. The tiers comprise of (back-end first),
- Data Tier - Containing the persistence engine used for the persistence of service data
(Inprise Cloudscape).
- Business Logic Tier - Contains the RComponents and EJB components that deal with the
processing behind the service (Sun J2EE Application Server/RComponents).
- Distribution Tier - Contains the components dealing with disseminating the service to clients
and dealing with client requests (Apache Tomcat/Servlets).
- Presentation Tier - Presents data to the user. In this service we have three clients in the
presentation tier (Webclients/Java2 applications).
- The pricing display, to show the current share price to the user
- The administration display, to reconfigure the service between two valid configurations
- The monitor client to show client interactions with the service (i.e. snoop client output)
Using such an N-tier architecture allows easy migration of the service to new technologies. For example,
from a relational to object-oriented data tier. It also allows for separation of concerns, an important
concept when building evolvable systems.
Accessing The Demo
To access the demo please contact
Dr. Duncan Pemberton
where a password and username will be sent to allow you to reconfigure the service and view the results with
the web client. The pages to access the service are available below,
If the service is not available contact Dr. Duncan Pemberton
describing the problem
Source Code
The source code for the REFLEX enterprise demo is available
here (1.04 MB).
Source code is provided for information purposes, illustrating how to combine RComponents with EJBs.
The source code requires integration with the specific J2EE application server it is implemented within.
For example, installation on the Sun J2EE reference server and Weblogic requires a different deployment
procedure. Also the BMP entity bean may require changes to suit the specific data tier used within a
local installation. The N-tier architecture localises any changes that are necessary to a single tier.
It should also be noted that some of the code within the demonstration requires privileged VM access.
This requires the installer to use/modify either/or application server/VM security policy files. To
ensure that the installation is secure a sound knowledge of JVM security policies is required.
Note although the "server" tier requires some installation configuration with respect to the above issues,
at the "client" side the service is zero-install (J2 application application clients use webstart).
Source Code Tree
The following directories in the source bundle contain,
- EJBs - directory contains source code for the enterprise Java beans used by the demo, plus
a J2EE EAR file for application server deployment (J2EE).
- Monitor - directory contains the source for the service monitor
- RComponents - the source code for the RComponent tier, which requires the RMID daemon to be running
(see startup scripts) & a copy of the RMI registry. The code providing the delegated behaviour can be
re-compiled and any changes will be picked up by the RComponent and hence no re-registration of the
components is necessary to ensure that the current version of the application is running (behavioural
changes take immediate effect).
- Servlets - The client side servlets, for this service some servlets require privileged VM access and
therefore security policy configuration within the webserver.
The root directory of the source tree contains a script to setup the persistence data table this will require
modification to suit specific installations. Security policy files are not provided as these are installation
specific. To check your installation and note any security exceptions run the tiers incrementally using their associated
test drivers located within the EJB & RComponents directory. These can be used to build up the tiers
in working order, i.e. entity EJB tier, then session EJB, then RComponent tier, then servlet tier, therefore
working from back to front deploying the service.
Note, batch files suppiled will need editing
if the service is to be re-deployed. The code may also contain references to machine names that will need
to be changed upon installation.