PageBox |
|
|
|
|
|
Presentation | Install | User guide | Developer guide | Programming | Port | Repository | PageBox | Release notes |
PageBox for Java
PageBox for Java is a version of PageBox written in Java.
PageBox for Java reuses the design of PageBox for PHP and PageBox for .NET plus:
A more scalable deployment model described in the Grid API V2. You can find details about this model in the Deployment with relays section.
A delta deployment. Only the difference between the current version and the installed version is sent to the target PageBox.
An installation API allowing fully automated deployments and updates.
A better security model.
Don’t confuse PageBox for Java with the initial Java PageBox, still available on this site, whose design is completely different.
PageBox for Java was compiled with Sun JDK 1.4. You can download the JDK (or J2SE SDK as it is called now) from http://java.sun.com/j2se/1.4/download.html.
Starting with version 0.0.10 PageBox for Java runs on:
Java Web Services Developer pack (JWSDP)
Tomcat 4.1 and above with Xalan and Axis
The Java WSDP is "an all-in-one download containing key technologies to simplify building of Web services using the Java 2 Platform." You can download the Java WSDP from http://java.sun.com/webservices/downloads/webservicespack.html.
PageBox for Java uses the following components of the Java WSDP:
The Tomcat servlet container
The Java API for XML Processing (JAXP)
Java API for XML-based RPC (JAX-RPC)
The main drawback of JWSDP is its license. In case of the JWSDP 1.2: "Sun grants to you, a non-exclusive, non-transferable, royalty-free and limited license to use one (1) copy of the Software internally for the purposes of evaluation only for sixty (60) days after the date you download the Software from Sun ("Evaluation Period"). No license is granted to you for any other purpose. You may not sell, rent, loan or otherwise encumber or transfer the Software in whole or in part, to any third party. Licensee shall have no right to use the Software for productive or commercial use."
It is a bit surprising because (1) JWSDP is mostly made of programs (Tomcat, Xalan, Xerces, Ant...) distributed with an Open source license, the Apache Software License (2) such restrictions didn’t exist in JWSDP 1.0.1 (used in PageBox for Java up to version 0.0.9).
PageBox 0.1.1 runs on top of JWSDP 1.3 and 1.5 (Tomcat 5).
JWSDP is useful to check that PageBox conforms to Sun standards. However its license is a showstopper. Therefore we built a distribution using:
The latest stable version of Tomcat (4.1.26 to 5.0.28 in PageBox for Java 0.1.1) as servlet container
The latest stable version of Axis (1.1 in PageBox for Java 0.1.1) for the JAX-RPC implementation and SOAP support
The latest stable version of Xalan-Java that includes Xerces-Java (2.5.1 to 2.5.2 in PageBox for Java 0.1.1) for the JAXP implementation
PageBox for Java can be easily ported to other Application servers that support:
JavaServer Page (JSP) specification 1.2 and above
Servlet specification 2.3 and above
JAXP
COS, the com.oreilly.servlet package written by Jason Hunter for the Web archive upload (MultipartRequest class)
PageBox for Java is 100% written in Java and should run on all systems supporting a Java runtime >= 1.4.
We put comments when we used JDK 1.4 specific methods and objects. So it should be easy to recompile PageBox for Java with JDK 1.3.
Starting with version 0.0.10 the invocation of remote procedures is plug-able. For interoperability between Internet PageBoxes we recommend using JAX-RPC and the SOAP 1.2 protocol. For Intranet or Extranet you can develop a remote invocation driver for another protocol like raw TCP or RMI. We wrote a raw HTTP implementation suitable for Internet use.
PageBox is a set of components allowing the seamless deployment of Web applications, Web services, Controls, portlets...
The publisher – maybe the author of an Application – packages a PageBox archive and uploads this archive on a Repository. A PageBox archive is a regular Web archive that can include an Installation class. The Installation class describes the post-installation steps of the archive, for instance create a database table. This Installation class runs under the control of the target PageBox that defines the installation environment and runs the Installation class in a sandbox.
The publisher can publish or unpublish a Web archive.
The subscriber registers one or more Pageboxes as agents interested by all or some archives available on a Repository.
The subscriber can subscribe or unsubscribe a PageBox.
In case of regular subscription, the PageBox will receive all the archives published on the Repository. If an archive is published after the subscription the PageBox will automatically receive it.
In case of archive subscription, the subscriber must also select the archives to send to the PageBox. The PageBox still automatically receive archive updates.
The Repository is a Web application.
The Repository is a rendez-vous point that handles publication and subscription request.
When the Repository receives a subscription request it sent the requested archives to the subscribed PageBox.
When a new archive is published the Repository sends the archive to the subscribed PageBoxes.
When a new version of an archive is published the Repository sends the differences between the old and new version of the archive to the subscribed PageBoxes.
The repository deploys and undeploys Web archives on the PageBox.
Deployments and undeployments are triggered by publications and subscriptions.
A PageBox is a Web application.
A PageBox is an agent that handles requests of Repository.
The PageBox inflates the archive and can run the Installation class included in the archive and call the Application server to dynamically add or update the Web application.
When a PageBox receives a deployment request it:
Copies the Web archive on a location defined by the PageBox administrator
Runs the installation class of the archive if allowed by the PageBox administrator
Calls the Application server to dynamically deploy the Web application
In most cases, PageBox installs a form of Java Web application. However PageBox can be used to deploy any kind of archive, for instance:
PHP, .NET, Perl Web applications
Database updates
Configuration updates
Like HTTP proxy caches for static content, PageBox reduces bandwidth requirement for dynamic content. PageBox acts like reverse caching where Web sites pre-load caches. An application deployed by PageBox can implement different models:
Autonomous application managing its own data. If such an application talks to peer instances we can call the instance set "distributed application."
Graphical interface to one or many Web services. We describe this model in more detail in the next section "Subscribed components."
A mix of the models above
An application can be an assembly of components from different providers. With PageBox providers can automatically update their components, for instance to support a newer version of a Web service or to fix a bug.
A portal displays portlets that can have been installed by a PageBox. It is useful in two scenarios:
The portal owner can subscribe to a repository to get off-the-shelf portlets.
An organization can choose to deploy Webtop portals in its branch offices. In this case PageBox allows deploying and maintaining the portlets of the branch offices.
In a PageBox constellation (set of PageBoxes subscribed to the same repository)
All PageBox hosts have the same version of the deployed Web archives
A Web archive can retrieve its peer instances
Therefore a Web archive can safely call and get called by its peer instance. This function is useful to distribute work, synchronize caches and databases, route requests to the instance that owns the data... To facilitate the development of distributed applications we designed a Grid API. We plan to port this Grid API from .NET to Java.
Question | URL | Audience |
---|---|---|
What is PageBox for Java? | PageBox presentation (this document) | Everybody |
Where to find PageBox? How to install and configure PageBox? How to diagnose PageBox problems? | Administrator | |
How to publish and subscribe? | Administrator, publisher | |
How to write a PageBox archive? | Java programmer | |
How to port PageBox for Java to another Application server? | Java programmer | |
How does Java deployment work? | Java programmer | |
How does the PageBox repository work? | Java programmer | |
How does PageBox work? | Java programmer | |
How to modify PageBox and contribute to the PageBox development | Java programmer |
The documentation above has been created using Cuckoo that you can also download on this site.
You can also find on this site the documentation generated from the sources with JavaDoc for
The Repository
PageBoxLib (an archive used by PageBox and implementing the PageBox API)
Contact:support@pagebox.net
©2002-2004 Alexis Grandemange.
Last modified
.