|Table of content|
PageBox is a facility for deploying applications on remote locations. Like other deployment tools PageBox is made of a central facility where are defined the applications to be deployed and from which these applications are deployed and of agents installed on remote locations and handling central point requests. In PageBox words, the central facility is the Repository and the agent is the PageBox agent, PageBox in short.
PageBox differs from other deployment tools in that the agent is a Web application running on an Application server and in that the deployment is made with Web services. PageBox is firewall-friendly and optimized for installing Web applications.
A Web application installed with PageBox can use a PageBox API to take benefit from this deployment model:
A Web application instance can list its clones installed from the same Repository
A Web application can provide an installation class to run when the application is installed, for instance to populate a database
A Web application can send messages to its clones for instance to replicate data
When a Web application receives a request it can route this request to the clone that knows the answer to the request
The Repository is also a Web application implementing forms where the agent administrators can add (subscribe) new PageBox agents and application publishers can publish their application.
Today we have the choice between client/server and Web applications:
Client/server applications are hard to develop and even harder to deploy and maintain
Web applications are slower, waste bandwidth and require powerful and reliable servers
With PageBox, we develop Web Applications but we deploy close to the client. It is a bit like cellular phone. A PageBox is a cell and we define more or less cells for an area depending on the number of clients. The PageBox host can be a regular PC or an appliance.
We wrote PageBox also for two other reasons:
B2B relationship. A provider developed a front-end Web application that knows how to access its data. Its customers have portals. These portals could call the provider Web site. However there is no value for the provider for hosting the application and there is no value for the customer for calling the provider Web site (slower response time especially when there are many interactions between the portal pages and the Web application). PageBox addresses the issue: the customer can host a PageBox agent and the provider can publish the application on a Repository to deploy and install it automatically on the customer Web sites.
P2P. PageBox-deployed Web application can route requests and distribute work to their clones (peers).
Since August 2000 we experiment different PageBox designs:
In the first J2EE PageBox developed between August 2000 and May 2001 the PageBox agent was acting as a Web application container. There were pros and cons for this design. With this design it was possible to measure the Web application use. On the other hand we had to replicate functions already implemented by Application servers and this design requiring an extensive use of class loaders was not easily portable to other technologies like PHP or .NET.
In parallel with the J2EE we developed an OSGi version. This Java standard specifies an application container with a smaller footprint than J2EE. We used the JES 2 environment for our developments. JES 2 allowed deploying applications on hardware like routers and appliances. These applications couldn’t be standard J2EE Web applications but changes were limited.
The PHP version was designed after the first J2EE version and developed between December 2001 and May 2002. It reused the convenient publish / subscribe mechanism, abandoned the JFC publisher in favor of a simple publication page and introduced the use of Web services.
The .NET version was designed after the PHP version and developed between March and August 2002. It introduced an API allowing a Web application instance to find its clones deployed from the same Repository, a Grid API facilitating the development of distributed applications, the Web applications deployed from the same Repository acting as computation nodes, an Active Naming allowing finding the best instance for serving a request and a coordinator for control to control communication.
This experience allowed designing a new J2EE version, called PageBox for Java whose development started in September 2002 and is still ongoing. This version implements the most effective functions found in the previous versions and address their shortcomings:
Deployment with relays for a fast deployment on many agents
Delta deployment to only send the changes in case of application update
Installation step: The Web application can provide an installation class for instance to populate a database
Application server installation: the PageBox agent installs the Web application. The application is usable as soon as the installation was completed.
Token ring API: Web applications can send messages to each other and broadcast messages. This implementation minimizes the number of messages and simplifies data replication.
An improved Active Naming that uses the Token API
A better security: the agent administrator can grant deployment rights to publishers and repositories.
Extensibility: the administrators can choose the network transport layer or define their own transport layer. They can also create extensions that Web applications can use to access to normally forbidden resources, for instance using native code.
As a consequence the different versions are not interoperable and don’t have the same functions.
We froze all versions except PageBox for Java to concentrate our efforts on this version that should move to beta status in the coming months. This PageBox for Java could also be augmented for a better support of controls in the .NET version way.
PageBox implementations were developed under the GNU Lesser General Public License.
With this license we state that PageBox is copyrighted; and we add distribution terms, which are a legal instrument that gives everyone the rights to use, modify, and redistribute PageBox code or any program derived from it but only if the distribution terms are unchanged.
We wrote three other tools.
The most important is Cuckoo, a Web authoring tool allowing writing pages in Word. Cuckoo translates Word documents into XML and applies an XSL translation to the generated XML files. The XML intermediate step allows quickly changing the layout of a Web site and merging multiple contents. Almost all the PageBox site was produced with Cuckoo. Cuckoo has its own FAQ that you can find here.
Ptah is a simple JFC application to create HTML image maps. We use it in combination with Cuckoo to produce pages like the PageBox map.
We also wrote a toolkit for finding patents close to a reference document on the US Patent and Trademark Office.
PageBox FAQ database
Rationale Presentation News
FAQ Authors Dev site Mailing lists
©2001-2004 Alexis Grandemange Last modified