Index: openacs-4/packages/acs-core-docs/www/rp-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-requirements.html,v diff -u -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/rp-requirements.html 12 Jul 2009 01:08:29 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/rp-requirements.html 13 Sep 2009 23:54:41 -0000 1.29 @@ -1,26 +1,26 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Request Processor Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="security-notes.html" title="Security Notes"><link rel="next" href="rp-design.html" title="Request Processor Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-notes.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="rp-design.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Request Processor Requirements"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rp-requirements"></a>Request Processor Requirements</h2></div></div></div><div class="authorblurb"><p>By <a class="ulink" href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Request Processor Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="security-notes.html" title="Security Notes"><link rel="next" href="rp-design.html" title="Request Processor Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-notes.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="rp-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rp-requirements"></a>Request Processor Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" title="Introduction"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-intro"></a>Introduction</h3></div></div></div><p>The following is a requirements document for the OpenACS 4.0 request + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-intro"></a>Introduction</h3></div></div><div></div></div><p>The following is a requirements document for the OpenACS 4.0 request processor. The major enhancements in the 4.0 version include a more sophisticated directory mapping system that allows package pageroots to be mounted at arbitrary urls, and tighter integration with the database to allow -for flexible user controlled url structures, and subsites.</p></div><div class="sect2" title="Vision Statement"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-vision"></a>Vision Statement</h3></div></div></div><p>Most web servers are designed to serve pages from exactly one static +for flexible user controlled url structures, and subsites.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-vision"></a>Vision Statement</h3></div></div><div></div></div><p>Most web servers are designed to serve pages from exactly one static pageroot. This restriction can become cumbersome when trying to build a web -toolkit full of reusable and reconfigurable components.</p></div><div class="sect2" title="System Overview"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-system-overview"></a>System Overview</h3></div></div></div><p>The request processor's functionality can be split into two main -pieces.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Set up the environment in which a server side script expects to run. This -includes things like:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Initialize common variables associated with a request.</p></li><li class="listitem"><p>Authenticate the connecting party.</p></li><li class="listitem"><p>Check that the connecting party is authorized to proceed with the -request.</p></li><li class="listitem"><p>Invoke any filters associated with the request URI.</p></li></ul></div></li><li class="listitem"><p>Determine to which entity the request URI maps, and deliver the content +toolkit full of reusable and reconfigurable components.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-system-overview"></a>System Overview</h3></div></div><div></div></div><p>The request processor's functionality can be split into two main +pieces.</p><div class="orderedlist"><ol type="1"><li><p>Set up the environment in which a server side script expects to run. This +includes things like:</p><div class="itemizedlist"><ul type="disc"><li><p>Initialize common variables associated with a request.</p></li><li><p>Authenticate the connecting party.</p></li><li><p>Check that the connecting party is authorized to proceed with the +request.</p></li><li><p>Invoke any filters associated with the request URI.</p></li></ul></div></li><li><p>Determine to which entity the request URI maps, and deliver the content provided by this entity. If this entity is a proc, then it is invoked. If this entitty is a file then this step involves determining the file type, and the manner in which the file must be processed to produce content appropriate for the connecting party. Eventually this may also require determining the capabilities of the connecting browser and choosing the most appropriate form for the delivered content.</p></li></ol></div><p>It is essential that any errors that occur during the above steps be -reported to developers in an easily decipherable manner.</p></div><div class="sect2" title="Related Links"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-links"></a>Related Links</h3></div></div></div><p><a class="xref" href="rp-design.html" title="Request Processor Design">OpenACS 4 Request Processor Design</a></p></div><div class="sect2" title="Requirements"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-req"></a>Requirements</h3></div></div></div><p><span class="strong"><strong>10.0 Multiple Pageroots</strong></span></p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong"><strong>10.10</strong></span> Pageroots may be combined into one URL space.</p><p><span class="strong"><strong>10.20</strong></span> Pageroots may be mounted at more than one location in the URL -space.</p></blockquote></div><p><span class="strong"><strong>20.0 Application Context</strong></span></p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong"><strong>20.10</strong></span> The request processor must be able to determine a primary context +reported to developers in an easily decipherable manner.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-links"></a>Related Links</h3></div></div><div></div></div><p><a href="rp-design.html">OpenACS 4 Request Processor Design</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-req"></a>Requirements</h3></div></div><div></div></div><p><span class="strong">10.0 Multiple Pageroots</span></p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong">10.10</span> Pageroots may be combined into one URL space.</p><p><span class="strong">10.20</span> Pageroots may be mounted at more than one location in the URL +space.</p></blockquote></div><p><span class="strong">20.0 Application Context</span></p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong">20.10</span> The request processor must be able to determine a primary context or state associated with a pageroot based on it's location within the URL -space.</p></blockquote></div><p><span class="strong"><strong>30.0 Authentication</strong></span></p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong"><strong>30.10</strong></span> The request processor must be able to verify that the connecting -browser actually represents the party it claims to represent.</p></blockquote></div><p><span class="strong"><strong>40.0 Authorization</strong></span></p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong"><strong>40.10</strong></span> The request processor must be able to verify that the party the -connecting browser represents is allowed to make the request.</p></blockquote></div><p><span class="strong"><strong>50.0 Scalability</strong></span></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="security-notes.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="rp-design.html">Next</a></td></tr><tr><td width="40%" align="left">Security Notes </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Request Processor Design</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/rp-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> +space.</p></blockquote></div><p><span class="strong">30.0 Authentication</span></p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong">30.10</span> The request processor must be able to verify that the connecting +browser actually represents the party it claims to represent.</p></blockquote></div><p><span class="strong">40.0 Authorization</span></p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong">40.10</span> The request processor must be able to verify that the party the +connecting browser represents is allowed to make the request.</p></blockquote></div><p><span class="strong">50.0 Scalability</span></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="security-notes.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="rp-design.html">Next</a></td></tr><tr><td width="40%" align="left">Security Notes </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Request Processor Design</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/rp-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>