Notes on PIA Architecture

DRAFT: This is a work in progress! Read at your own risk; believe at your peril!

Note that this file is not actually checked in yet; I'm still thinking about the best place to put it within the PIA documentation tree.

This document discusses the PIA's architecture, with special reference to architectural features that support the development of customizable, cross-platform web applications.

Notes on interfaces (API's and specialized protocols) supported by the PIA and their role in integrating the PIA into web servers (especially Apache) and other web applications can be found in interfaces.html.

Introduction

The PIA architecture has three main components (also referred to below as ``features''):

  1. dps -- the Document Processing System that implements the tag language. By itself, the DPS essentially provides a simple but complete ``macro language'' for XML and HTML web pages.
  2. site -- the site structure package. This provides a simple, robust, versatile, and OS-independent way of structuring the files and directories that comprise a web application.
  3. agents -- PIA agents provide the ability to operate (using the DPS) on web requests and documents as they pass through a PIA-based proxy server. It is worth noting that most PIA applications will not require agents that operate on proxied transactions; proxy agents are harder to support in most platforms.

Cross-Platform Web Applications


Customizable Web Applications


Roadmap

What follows is the implementation roadmap for cross-platform PIA applications:

  1. Implement the Java interfaces (Servlet, DOM, SAX, in that order). Even though these do not directly lead to a full-featured PIA integrated with Apache, they are very simple and we have already committed to doing them. They will give the PIA the highest possible level of interoperability with existing XML applications with minimal effort. In addition, the Servlet interface will provide a fallback position, integrating the PIA's dps and site packages with any servlet-based web server.
  2. Ensure that most major PIA applications (except, obviously, the ones in /Agents/Proxie) still operate in the Servlet version. The fundamental rule is ``you don't know whether something is portable until it is actually running on two different platforms.''

Copyright © 2000 Ricoh Innovations, Inc.
$Id: architecture.html,v 1.2 2001-01-11 23:36:53 steve Exp $
Stephen R. Savitzky <steve@rii.ricoh.com>