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:
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.
|
|||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Agency: | |||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
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:
- a web server handing back documents in response to requests from a client such as a browser
- a client requesting documents from other servers
- a proxy passing requests and responses along to the appropriate servers and clients, and possibly operating on the documents in the process
- a XML processor which operates on active XML pages and produces other XML (or HTML) pages as output.
This versatility opens the door to many possible applications:
- Applications can provide standard Web processing functions, like workgroup applications that manage the processing of purchase approval, expense reports, and other forms.
- Applications can provide process information that comes from other sources. For example, an application could make it fast and easy for you to simultaneously download many sound files from a server. The application first retrieves a page from the web server and processes that page to include a check box next to every link. The user checks off the files they want to download and when they submit the form the application automatically retrieves the specified files without requiring any further action by the user.
- An application can also operate as a personal proxy, which can keep track of all the documents you view on the web even if you use different machines to access those documents (e.g., desktop and laptop systems).
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 returntrue
, 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 (likeAgents/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:
- Standard HTML tags
- Predefined PIA tags
- User defined tags created using the PIA's tag language
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/piaWhile 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:
http://jaguar:8888
represents the machine name and port number (your Information Agency).Samples
represents the directory for this group of applicationsHelloWorld
represents the particular application you want to usehome.xh
represents the particular file in that application (one active page among possibly many).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:
- Admin is the main application that manages all other applications
- History maintains list of visited web pages
- The Toolbar applicacations
- fileTools adds a control menu to pages served by your Information Agency
- remoteTools adds a control menu to pages proxied through your agency
These applications are further described in the Application Guide.