Index: openacs-4/packages/acs-core-docs/www/apm-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.adp,v diff -u -N -r1.1.2.2 -r1.1.2.3 --- openacs-4/packages/acs-core-docs/www/apm-design.adp 9 Jun 2016 08:44:49 -0000 1.1.2.2 +++ openacs-4/packages/acs-core-docs/www/apm-design.adp 23 Jun 2016 08:32:45 -0000 1.1.2.3 @@ -52,7 +52,7 @@ and the OpenACS Kernel, which includes APM.

An installation of the OpenACS includes the OpenACS Kernel, some -services that extend the kernel's functionality, and some +services that extend the kernel's functionality, and some applications intended for end-users. Packages function as individual pieces of subsites. A subsite can contain multiple application and service instances that provide the @@ -61,17 +61,18 @@ For example, Jane User starts a forum focusing on the merits of View Cameras by 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 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 +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 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 and resellers. Any subsite enabled package that is added to the OpenACS installation through APM is another potential package -instance that can become part of Jane's View Camera subsite.

The APM provides an architecture for packaging software, making +instance that can become part of Jane's View Camera +subsite.

The APM provides an architecture for packaging software, making instances of that software available to subsites, specifying configuration parameters for each instance, and managing the creation and release of new packages.

@@ -100,15 +101,15 @@ affect dependent packages. Rather, the package interface should provide a level of abstraction above the data model (as well as the rest of the package implementation). Then, users of the package can -take advantage of implementation improvements that don't affect the -interface (e.g., faster performance from intelligent +take advantage of implementation improvements that don't affect +the interface (e.g., faster performance from intelligent denormalization of the data model), without having to worry that code outside the package will now break.

  • A typical ACS-backed site only uses a few of the modules included in the distribution, yet there was no well-understood way to pick only what you needed when installing the ACS, or even to -uninstall what you didn't need, post-installation. Unwanted code -had to be removed manually.

  • Releasing a new version of the ACS was complicated, owing again +uninstall what you didn't need, post-installation. Unwanted +code had to be removed manually.

  • Releasing a new version of the ACS was complicated, owing again to the monolithic nature of the software. Since we released everything in the ACS together, all threads of ACS development had to converge on a single deadline, after which we would undertake a @@ -150,8 +151,8 @@

  • a standard format for APM -packages (also called "OpenACS packages"), -including:

    Authoring a Package

    Full instructions on how to prepare an OpenACS package are available in Packages. The API here can be invoked -manually by a package's data model creation script, but need not to -be used. This API is part of the APM PL/SQL package.

    +manually by a package's data model creation script, but need
    +not to be used. This API is part of the APM PL/SQL package.

     
     -- Informs the APM that this application is available for use.
     procedure register_application (
    @@ -333,8 +334,8 @@
     ) return apm_package_versions.version_id%TYPE;
     
     

    Versions can be enabled or disabled. Enabling a version -instructs APM to source the package's libraries on startup and to -make the package available to the OpenACS.

    +instructs APM to source the package's libraries on startup and
    +to make the package available to the OpenACS.

     
     procedure enable (
         version_id          in apm_package_versions.version_id%TYPE
    @@ -489,13 +490,13 @@
     for each Instance

    A parameter is a setting that can be changed on a package instance basis. Parameters are registered on each package_key, and the values are associated with each instance. Parameters can have default values and can be -of type 'string' or 'number.' There is support with this API for -setting a number of minimum and maximum values for each parameter, -but for most instances, the minimum and maximum should be 1. It is -useful to allow or require multiple values for packages that need -to store multiple pieces of information under one parameter. -Default values are automatically set when instances are created, -but can be changed for each instance.

    All of the functions below are in the APM PL/SQL package.

    +of type 'string' or 'number.' There is support with
    +this API for setting a number of minimum and maximum values for
    +each parameter, but for most instances, the minimum and maximum
    +should be 1. It is useful to allow or require multiple values for
    +packages that need to store multiple pieces of information under
    +one parameter. Default values are automatically set when instances
    +are created, but can be changed for each instance.

    All of the functions below are in the APM PL/SQL package.

     
     -- Indicate to APM that a parameter is available to the system.
     function register_parameter (
    @@ -576,7 +577,7 @@
     OpenACS instance, a corresponding row in this table is inserted
     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 +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 package_key column references the apm_package_types table to ensure that no @@ -614,9 +615,8 @@

    -User Interface

    The APM's -user interface is part of the OpenACS Administration Service. The -UI is the primary point of contact with APM by developers and +User Interface

    The APM's user interface is part of the OpenACS Administration Service. +The UI is the primary point of contact with APM by developers and administrators. It is part of OpenACS Administration, because only the site-wide administrator should be able to access it. Thus in order to develop a package, the developer must be granted site-wide