Welcome to the PIA!

This document introduces the Platform for Information Applications (PIA). There are other documents with more details and "how-to" information on specific aspects of the PIA:

Introduction

The PIA (Platform for Information Applications) defines a new kind of document-oriented, web-accessible application platform. Information designers (authors, webmasters, programmers, and others) can use the PIA framework to build complete, information intensive applications, which some people call infoware, that can be used via any web browser.

For the information developer, the PIA provides a core software base on which to build information applications without having to learn a programming language. Applications consist entirely of active web pages written in HTML with extensions in XML. Developers benefit because they can much more easily create, deliver, and maintain infoware applications.

                             
  App 1       App 2       App 3       App 4  
                             
Agency:
 
  • The software base is stable
  • ...and shared by all applications
 
Software  

For the infoware user, the PIA just looks like a regular web server that gives them access to information applications -- collections of active pages that form a web site (or several sub-sites). Infoware provides users with the information and functions they require in the convenient and familiar form of web pages. The PIA further benefits users by extending the open standard of the web to include not only content and layout, but also the processing associated with documents. This standard reduces costs and complexity of managing their documents, and ensures that multiple infoware applications in an office will work together.

The PIA design includes a core web-serving and document-processing engine, which we call the agency, and task specific collections of active XML web pages that we call applications. The applications contain all the knowledge required for a particular document processing task, and they are supported by the agency.

The slides accompanying the open source announcement of the PIA give the best overview of the benefits of this technology and the goals of the PIA project. This presentation was given at the LinuxWorld Conference & Expo, March 4, 1999.

The full potential of the PIA will be realized as users and developers build useful, task-oriented applications. The PIA provides a solid foundation that enables rapid development and customization of applications. The PIA group has provided a number of example applications to demonstrate some possibilities. See the Application Guide for a description of those applications that are currently available.

Topics covered in this document include:

The rest of this document is dangerously obsolete!

Working with PIA Agency

The PIA Agency is a program (e.g. PIA/bin/pia) that manages a collection of applications. Those applications operate on and communicate by means of messages called transactions. Transactions are of two types: requests and responses. A response is generated by an application or external server in reply to some request

An agency can operate on behalf of an individual user, a group of users, or a peripheral device. Thus an agency can operate as:

This versatility opens the door to many possible applications:

Outside the agency, requests and responses are transmitted using HTTP, a standard, widely used Internet protocol which is operating-system and programming-language independent.

An agency provides a means of examining, modifying and re-routing transactions among the various clients and servers. At times it operates as a client, as a server, as a cache, and as a proxy server depending upon the task it undertakes. As such, it provides a new platform for document-oriented computing.

There are broadly two types of applications: (1) passive ones, which act like static web pages or CGI scripts, waiting for a specific request and responding to it with an HTML page, and (2) active ones, which which actively monitor and sometimes modify requests and responses passing through the Agency's port.

How Active Agencies Work

This section is optional reading for those who just want to use the agency; it refers to the special type of active application we call "agents".

Each transaction processed by an agency has a set of named features with corresponding values (mostly boolean) which are computed as needed. Each active application (or agent) has a set of criteria that are matched against a transaction's features. Agents that match a transaction's criteria are allowed to act on it, that is perform whatever operation the agent is designed to do.

A transaction also has a queue of objects (mainly agents and transactions) called "satisfiers." After every agent has operated on a transaction, the agency attempts to satisfy the transaction by invoking the handle method of each object in the queue. If none of the methods return true, the agency performs a default action, generating an error transaction for an unsatisfied request or forwarding a response to its destination.

Any passive application can be run by making a request for it via the PIA's port, just as a web page or CGI script could be run (unless you specifically instruct the PIA to block that application). But an active agent must be deliberately run (or initialized), to be ready to perform these monitor-and-modify operations by itself; that setup is done by means of a document called initialize.xh. Further information on these files can be found in the document Author's Guide.

Working with Applications

The PIA agency acts as a platform for computing using a collection of "applications." An application's files are organized as a "sub-site" of the agency's URL, with each application simply a collection of documents. These documents can include standard HTML tagging or make use of an extended set of tags which allows them to function as active documents.

This section provides a basic introduction to the use of these applications. For a more advanced examples, see the samples applications, which are ready-made for modification and customization. Additional ideas and inspiration might come from a close look at the other applications (such as those in the Agents directory) that ship with the PIA.

Topics covered in this section include:

Applications and Agents

The PIA is called an ``Information Agency'' because it serves as a platform for ``information agents'' -- pieces of semi-autonomous code that operate behalf of the PIA's user. For example, each HTTP transaction (request or response) that passes through it can be operated on by agents whose ``criteria'' match features of the transaction. Other agents can be set to operate at a particular time or time interval. Some just look for requests to particular ``shorthand'' URL's (like ~Calendar) and redirect them someplace else (like Agents/SimpleCalendar).

Earlier in the PIA's development, every application was associated with an agent, so the two terms have come to be used almost interchangeably. This can be seen most clearly in the continued use of Agents as the name for the directory that contains the PIA's standard set of applications. Since most applications are associated with an agent, and since in any case it's difficult to distinguish those that are from those that aren't, the custom continues.

State maintenance along with the agency framework allows agents to be more flexible, and much easier to generate and maintain than traditional web processes such as CGI scripts.

The basis for each application is a location (the application's ``home resource'') that contains active XML documents that can include one or more:

When an application receives a request for a document, it looks for the file that matches that request. Once the file is found, it is interpreted and the result returned.

For the end user, these files provide a form-based interface for interacting with the application. By convention, active documents are given the .xh filename extension, reflecting the fact that they contain an extended set of HTML tags. The PIA allows the user to leave off the extension; this lets the application designer hide from the user such details as which files are active and which are ordinary HTML.

The simplest applications consist of a small number of pages where each page is defined using a combination of HTML, XML and extended XML tags. There are also a number of predefined PIA tags available for use. See the Basic Tagset Manual for more on these tags.

Running the PIA

To run the PIA, it must be installed at your site. Even if it has been installed in a shared location, you can customize your own PIA by means of its configuration file.

Once it is installed, you can start the PIA by executing the command PIA_HOME/bin/pia, where PIA_HOME is the PIA's ``home directory'' -- the directory it was installed in. If you installed it in your home directory, for example, the command to run the PIA would be:

  ~/PIA/bin/pia

While the PIA is starting up, you will see a sequence of messages something like this:

<jaguar:717> ~/PIA/bin/pia
PIA version 2.0.6
    / Loaded system tagset 'pia-config' in 3.70 seconds.
  / Loaded tagset 'pia-xhtml' in 2.67 seconds.
Running initialize.xh in PIA
Admin agent initialized  authenticated with /etc/passwd 
SimpleCalendar agent initialized
Proxie agent initializing
History agent initializing
remoteTools agent initializing
Point your browser to <URL: http://jaguar.crc.ricoh.com:8888>

At this point you can browse to the URL specified on the last line.

Viewing an Application's Home Page

As soon as an agency is running, you can view that agency's home page at http://YOUR.HOST.NAME.HERE:8888/using any browser.

Or you can visit one of the standard applications (say the calendar) by viewing SimpleCalendar , or one of the ready-to-customize sample applications by viewing HelloWorld .

Notice the URL for this page. If your machine name is jaguar, you might see the following:

http://jaguar:8888/Samples/HelloWorld/home.xh

Note that the URL for the agency home page has four parts:

This URL constitutes a request to the HelloWorld application running on your local Information Agency.

On your agency's home page, you should see a listing of all the applications currently running on your Information Agency. Click on one of the application links to see the home page for that application. By default, your agency is configured to start up with the following applications:

These applications are further described in the Application Guide.


Copyright © 1999 Ricoh Innovations, Inc.. Open Source at <RiSource.org/PIA>.
$Id: intro.html,v 1.13 2001-01-11 23:36:46 steve Exp $