PhOSCo - the Pharma Open Source Community
PhOSCo Web Server

PhOSCo Web Server

PhOSCo Web Server is an addition to the existing PhOSCo product, using the same customisation tools and models, so can be used alongside and together with "classical" PhOSCo. This gives the user organisation the option of mixing and matching client/server with web services deployment of clinical trials without any artificial restrictions.

It extends the set of delivery methods of PhOSCo to:
Delivery
Standalone Single User Standard Client PhOSCo products
Online - LAN Standard Client PhOSCo products with single LAN database
Online - WAN Standard Client PhOSCo products plus single central database
Client/Server Standard Client PhOSCo products plus PhOSCo Trial Server (multiple levels of branching if required)
Web Server PhOSCo Web Server
Web via Terminal Server Standard Client PhOSCo products plus Open Source or commercial Terminal Server
Diskless workstations Standard Client PhOSCo products plus Linux Terminal Server
"PhOSCo on a stick" Standard Client PhOSCo products plus Knoppix on USB memory stick (just add a computer)

all with the same build tool, operating metadata, and database connectivity, and most of which can be mixed within the same trial if required.

PhOSco Web Server updates a standard PhOSCo database with data from remote users who have input it into CRF pages via standard Web browsers. These pages look and behave virtually identically to those displayed by PhOSCo. PhOSCo Web Server is written 100% in Java; the server side code is standard Java servlets, and web browser functionality is provided by standard Java applets; any browser supporting the standard Java plug-in can be used; the server will work with any web server software supporting standard Java servlets. Testing and development is being done with Apache/Tomcat and Mozilla.

There will obviously be functional restrictions, but using good design we think we have reduced these to an absolute minimum, and we will be delivering a very large proportion of classical PhOSCo functionality via the web. There will also be unavoidable performance limitations; no web server can meet the speed and availability of the local database client design of classical PhOSCo.

However, there will be situations, such as large phase IV trials where large numbers of remote users are reporting relatively small amounts of data each, or where ultra-rapid deployment and closure is required, where these fundamental limitations of the web server architecture are outweighed.

Together with the new Autovalidation capability of PhOSCo 1.3, which essentially eliminates validation and regression testing, where there is an existing PhOSco Web Server active it will be possible to customise and deploy a new clinical trial within 24 hours of receiving the final protocol design.

With PhOSCo Web Server, we are providing the ultimate solution; a single customisation and trial design, which can be deployed as client/server, via web server, or even as a mixture if the situation warrants.

PhOSco Web Server will be available as an "add-on" to standard PhOSCo, using a subscription licence model.

Trial and CRF design

Within the functional limits (see the unsupported functions section below) Web Server will work with any trial set up by Trial Builder. There are no special design requirements.

If you want to have dynamic sites/users, you have to set up a "webmaster" site/id (see below), but that's it.

Installation

How this is done will depend on your web server middleware. The PhOSCo Web Server consists of a Java Servlet together with a set of supporting classes, a set of Java Applets with their supporting classes, and some support data and HTML files. These will be packaged into two separate jars and a zip file.

Tomcat (the web server we use for development and testing) requires these to be placed in the right place in a specific directory structure, the data files unzipped and the classes to be in appropriate classpaths. Other software may require a different unpackaging.

Configuration of the HTML pages delivered is performed by modifying the supplied HTML and data files. The main one of these is the PhWebHtmlControl.data file. This is essentially a set of HTML page definitions packaged in a single file. Modifying these changes the HTML served by the PhOSCo Web Server. The file also contains some control parameters within HTML comment lines. The HTML may be changed as much as is required, to contain whatever standard HTML elements are desired and supported by appropriate browsers.

Monitoring Web Server

The initial release of Web Server has data entry functions only, and we're not intending to change that for a while. Monitoring can quite easily be performed using client/server Trial Monitor talking to a Trial Server running against the same database as Web Server.

If you really have to have monitor functions delivered via web, then there are alternatives. You can use Terminal Server software such as RealVNC or tightVNC, both of which can deliver the screen console of "Classical" Trial Monitor via a web page while actually running it under a server daemon on your Linux server - this could itself be a client talking to a PhOSco Trial Server on the Web Server machine, or it could be on the Web Server machine itself. We have run PhOSCo modules using VNC. There are also other alternatives - we hear Microsoft has a terminal server product, though we've not used it.

Sites and Users

One possible difference between the use of PhOSCo in "classic" PhOSCo and via the Web Server is with regard to Sites and Users.

Classic PhOSCo requires Sites and Users to be predefined, and for Users to logon giving a current password.

It may be appropriate for the Web Server to allow access to Users who are not defined at the start of the trial, and for whom a more flexible addition policy is required. For example, a population of potential users may be given information about the trial and connection procedures, and they may be permitted to logon and report data as self-selected Users.

Web Server Phosco can use standard PhOSCo Site and User setup. This is also the only way Web Server PhOSCo can have multiple users at a single site.

The other method of user setup for Web Server PhOSCo is by dynamic user/site definition. Either or both of these methods can be used as required.

Dynamic Web Server User/Site definition

In Trial Builder, a "Webmaster" user id may be defined (a user with an id and site name of "Webmaster").

PhOSCo Web Server will allow the user to sign on to this id provided the user knows the password, but will not be allowed to log subject data under this id; instead, they will be presented with a dialog which will prompt them for an email address, a user name, and a site name. The site and user name will be created in the database, provided the site name is unique, with a system-generated password which will be sent in an email to the email address provided.

The User will not be able to logon to PhOSCo Web Server without this password. Therefore, within sensible limits, it is certain that the email id is linked to the user, who will to that degree be identifiable. It is up to the Trial sponsor to put in place appropriate procedures to secure this process, and any additional email or other confirmatory processes to establish the actual identity of the user.

For example, "Site specific" widget fields may be designed into the trial and required before any further entry can take place.

In any case, the Web interface will in no way prompt the potential user. A user must know the name of the Trial and the name of the Site as well as passwords, and key them in accurately, before he or she will be accepted.

Where multiple web servers are being used to run a single trial (it is possible to link a set of Web Servers together using PhOSCo Trial Server, just as it is possible to set up a hierarchy of Trial Servers in classical client/server PhOSCo) Dynamic User/Site definitions will only be active on the web server where the external user originally created their definition.

Functions unsupported in the initial release.

Time restrictions have led to some functionality not being supported in the initial (1.3) release of the Web Server software.

It is the intention to add these functions in a later release, provided that the Web Server software is used, and users request the functionality.

Significant functions known to be unsupported include:

Users requiring these functions within a trial must have access to client/server PhOSCo software. If defined in a trial, PhOSCo Web Server will ignore them.

Server Software

Guillemot have developed the PhOSCo Web Server Servlets and supporting software under Linux using the "Tomcat" server in native mode. We understand this server can be used as a service by Apache for running servlets, leaving Apache to service other HTTP requests. For testing we have used the Linux Konqueror and Mozilla web browsers, using the standard Java plug-in.

As our Servlets, Applets, and all supporting software are all written in standard Java to the published standards for Servlets and Applets, we believe that all standards-conforming Servers and Browsers (particularly those browsers supporting the standard Java plug-in) should work with PhOSCo Web Server. However, we are unable to provide advice and support for any such systems software, and recommend that users test PhOSCo Web Server in the environment they intend to use it, and acquire expert support where necessary.

All configuration of Tomcat, Apache, or other Server software is entirely the responsibility of the user. However, we have found that the following considerations should be taken:

Browser commands

With Tomcat, the application is called from a browser via the URL string:

http://hostname:8080/phw/PhWebServlet

where, of course, "hostname" is the name of the server host machine. In this case, "phw" is the webapps subdirectory used under Tomcat; in your case this may have been installed under another named subdirectory or path.

Other server software may have other conventions.

"PhOSCo" and "Pharma Open Source Community" are registered Trade Marks of Guillemot Design Ltd.
Copyright © 2004 Guillemot Design Ltd.