|PageBox site||Cuckoo||Java PageBox||Pagebox for PHP||PageBox for .NET||PageBox for Java||Resume|
PageBox for Java|
PageBox for Java is a version of PageBox written in Java.
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:
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 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:
PageBox for Java can be easily ported to other Application servers that support:
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:
In most cases, PageBox installs a form of Java Web application. However PageBox can be used to deploy any kind of archive, for instance:
Dynamic content cache
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:
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:
In a PageBox constellation (set of PageBoxes subscribed to the same repository)
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.
The documentation above has been created using Cuckoo that you can also download on the PageBox site.
You can also find on this site the documentation generated from the sources with JavaDoc for