Index: openacs-4/packages/acs-core-docs/www/apm-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.html,v diff -u -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/apm-design.html 11 Nov 2003 12:54:56 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/apm-design.html 19 Nov 2003 15:44:49 -0000 1.22 @@ -1,8 +1,7 @@ -OpenACS 5.0.0b1 Package Manager Design

OpenACS 5.0.0b1 Package Manager Design

-by Bryan Quinn
+OpenACS 5.0.0b1 Package Manager Design

OpenACS 5.0.0b1 Package Manager Design

By Bryan Quinn

OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

Essentials

  • OpenACS Administrator directory

  • OpenACS 5.0.0b1 Package Manager Requirements

  • Packages

  • ER diagram

  • Tcl API

    Essentials

    • OpenACS Administrator directory

    • OpenACS 5.0.0b1 Package Manager Requirements

    • Packages

    • ER diagram

    • Tcl API

      • apm-procs.tcl

      • apm-install-procs.tcl (Supports installation of packages)

      • 20-apm-load-procs.tcl (Bootstraps APM for server startup)

      • @@ -18,7 +17,7 @@

        • OpenACS Applications: a "program or group of programs designed for end users" (the Webopedia definition); also known as modules, for historical reasons. -Examples of applications include Bboard and News. +Examples of applications include Forums and News.

        • OpenACS Services: the aforementioned building blocks. @@ -31,11 +30,11 @@ application and service instances that provide the end-user with capabilities and content customized to the particular subsite.

          This architecture supports the growth of collaborative commerce. For example, Jane User starts a forum focusing on the merits of View Cameras by -creating an instance of the Bboard application for her personal subsite on an +creating an instance of the Forum application for her personal subsite on an OpenACS Installation. Jack User discovers Jane's forum and includes a link to it in his subsite. As interest in Jane's forum grows, she creates a subsite specializing in providing information about View cameras. This -subsite now includes several package instances beyond Bboard; it could +subsite now includes several package instances beyond Forum; it could potentially include its own Ecommerce capabilities (ala Yahoo! Shopping). This could include a knowledge management application that allows users to spread expertise about view cameras and a portal application that links to reliable camera models @@ -88,7 +87,7 @@ packages for other ACS users to download and install.

          For a simple illustration of the difference between ACS without APM (pre-3.3) and ACS with APM (3.3 and beyond), consider a hypothetical ACS installation that uses only two of the thirty-odd modules available circa ACS -3.2 (say, bboard and e-commerce):

          APM itself is part of a package, the OpenACS Kernel, an OpenACS +3.2 (say, bboard and e-commerce):

          APM itself is part of a package, the OpenACS Kernel, an OpenACS service that is the only mandatory component of an OpenACS installation.

        Competitive Analysis

        The OpenACS is a platform for web-based application software, and any software platform has the potential to develop problems like those described above. Fortunately, there are many precedents for systematic solutions, @@ -466,7 +465,7 @@

        Data Model Discussion

        The central piece of the data model is the apm_package_types table where each package is registered. When a new application or service is installed on an OpenACS instance, a corresponding row in this table is inserted -with information about the type of package, e.g. if the bboard package is installed on your OpenACS server, a row +with information about the type of package, e.g. if the forum package is installed on your OpenACS server, a row in apm_package_types will be created, noting that it's an application package type.

        The apm_packages table is used to contain information about the instances of packages currently created in the system. The