PageBox: servlets running in sandboxes on J2EE and OSGi PageBox

for
support@pagebox.net  Home: servlets running in sandboxes on J2EE and OSGi
Rationale Presentation News Faq Authors Dev site Mailing list


Installation

Versions

Constellations

J2EE version

Publisher

Mapper

Cocoon/SOAP

Security

Device

Configurator

Demo

Embedded version

Diskless version

Cuckoo

PHP

FAQ

What is a PageBox?

    A PageBox is an agent installed in a Java application server and able to dynamically update archives and to host them in a sandbox. A PageBox can safely maintain many archives in the same JVM because it uses a class loader per archive.
    JSPservlet is a PageBox implementation that relies on existing Java application servers and embedded servers. It is defined in a Java application server as a regular Web Archive and in an embedded server as a regular bundle. When it is hosted in an embedded server, it can be configured to not require a local disk.

Why two versions?

    To enhance granularity.

    If you want to deploy PageBoxes on an Intranet or Extranet, just use the Application Server version.
    Also use Application Server version if you want to host your presentation on ASPs. There is a number of inexpensive ASPs around the world that satisfy JSPservlet requirements - Tomcat or Resin support.
    Embedded version has a smaller footprint that can run in devices such as routers. It conforms to Open Services Gateway Initiative (OSGi) specification 1.0 you can find on http://www.osgi.org. This specification defines an open framework that enables multiple software services to be loaded and run on a services gateway such as a set top box, cable modem, DSL modem, PC or dedicated residential gateway.

Why PageBox?

    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 slow and waste bandwidth

    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 (subscribers).

With PageBoxes, presentation calls the central business logic and database access at least one time per page. If the presentation stays close to the business logic, isn't it faster?

    If the presentation runs in the same JVM as the business logic, we spare EJB and JMS invocations on the wire but we must generate and send HTML whose volume is four to ten times bigger on our central system.

    We believe HTML processing is not the most efficient way to use large computers. Their value relies in their ability to process a large number of concurrent requests on a single RDBMS. We think they should only be used to support Web services.

    PageBox allows minimizing the number of roundtrips to the Central Systems:

    • It promotes caching at PageBox level
    • It allows distributing reference data:
      1. We can package reference data in Vectors and HashTables and serialize them in resources or use XML files. Then Web Archives can download these resources through PageBox.
      2. When the PageBox host provides a database, the Web Archive can include a servlet allowing database batch update.

How can we administrate and troubleshoot remote presentation?

    Through HTTP! As a PageBox is a HTTP server, it is much simpler to administrate than a fat client.

    The current JSPservlet implementation offer the following facilities:

    • Archive remote creation, update and delete
    • Log display and cleanup
    • Statistics display and cleanup

What is the publisher?

    The value of PageBox is that it allows deploying presentation on a large number of inexpensive hosts. If we use PageBoxes we need to connect to each of them to make updates, a time-consuming process. Publisher is a tool to automate that process. We connect to a single point, submit an archive update and the tool takes care to distribute the update to all PageBoxes it knows.

    We distinguish the following roles:

    • The content provider that designed the presentation and publishes it
    • The editor that distributes the presentation to subscribed PageBoxes
    • PageBox hosts that subscribe to receive presentations

    The editor hosts a PublisherServer and the content provider uses a PublisherClient to submit its presentation.

What is the configurator?

    Configurator is a helper tool that aims to simply the remote installation of a PageBox or of a publisher. Configurator is a set of servlets that you install on the remote PageBox or publisher host. It checks your parameters and installs the PageBox or publisher.

What is the mapper?

    Thank to PageBox and Publisher your presentation is deployed on many hosts but your users know a single URL, so a single PageBox - or PageBox set if you use for instance DNS round-robbin.
    The mapper is a component embedded in PageBoxes able to route your users to the closest PageBoxes.

    How does it work?

    • Mapper requires that you store static pages - HTML or XHTML - in your archive and mark them as routing pages.
    • You don't need to include special tags or URLs. Mapper parses the routing pages and updates the URLs to point one among the closest PageBoxes.
    • To identify the closest PageBoxes, Mapper uses the Top Level Domain (TLD) of the requestor host name if it is a country code such as .fr or .de.
    • Otherwise it identify the IP address range owner that the requestor address belongs to.

What is the library support?

    Thank to the Publisher you can deploy the same presentation on many PageBoxes but it is only valuable if all PageBoxes provide the same consistent set of libraries that you used to develop the presentation.

    Library support provides such a facility. It already supports Xerces, Xalan and Apache Soap (both client and server). However it is primarily focused on Publishing frameworks. It already supports Cocoon.The reason is that Publishing frameworks ideally complement PageBox as they allow generating device-dependent flow without programming.

    A Publishing frameworks generates the data flow using a pipeline of:

    • Producers that generate a document
    • Processors that transform a document
    • Formatters that format a document

    We complemented Cocoon with Network processors. Like a regular processor a Network process receives a document, changes it and returns the resulting document. However instead of transforming a document like XSLT, it:

    1. Extracts parameters from the input document
    2. Calls a Web service with these parameters
    3. Merges the web service response with the input document and returns the resulting document

    You can combine regular and network processors as you want in a pipeline.

What is the PageBox licence?

    PageBox implementations are Open Source. But the graphical Publisher client that is under GNU General Public License, all components were developed under GNU Lesser General Public License.

    The reason is that the General Public License does not permit incorporating our program into proprietary programs. As we want to grant you the right to host PageBox in proprietary application servers and also to use proprietary libraries and product within PageBox, we chose to license PageBox in the less restrictive GNU Lesser General Public License but PublisherClient, which is not a library but a standalone application.

    In both cases it means that 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.

What are the next steps?

  1. Cocoon/SOAP support and Mapper enhancements

    Regarding Mapper, we will provide the requestor country in PageBox in order to facilitate the creation of content based on requestor location.

  2. Security enhancement

    The objective is to secure repository access:

    • For subscription
    • For publication
    • For deployment

  3. Web service processors.

    We plan to generate Cocoon network processors from WSDL documents found in UDDI repositories.

  4. Content management tool.

    Today the Content provider must create a archive tree and build the archive to publish with jar -cf.
    The Content management tool is designed to automate that process.

  5. Web caching and content adaptation.

    The idea is to combine a Web Cache with a PageBox. A Web Cache is a proxy that maintains cached static pages. When a user asks a page, the Web Cache returns a cached entry if it is still valid, or asks for it to neighbor caches. With a PageBox patch, the Web Cache will also handle dynamic pages. If it finds a PageBox can handle a request, the Web Cache forwards the request to that PageBox.

    The first implementation will rely on Squid.

    A further idea is to allow PageBox to act as a Content Adapter. For more information, see ICAP specification.

Cuckoo FAQ

Other FAQs

    PageBox FAQ database

Rationale Presentation News Faq Dev site Mailing lists Home
Installation Versions Constellations Device Demo Mapper Security Cocoon/SOAP Configurator
J2EE version Embedded version Diskless version Publisher Cuckoo PHP

Contact:support@pagebox.net
©2001 Alexis Grandemange  
Last modified