Index: openacs-4/packages/dotlrn/www/doc/architecture-overview.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/doc/architecture-overview.adp,v
diff -u -N -r1.3 -r1.4
--- openacs-4/packages/dotlrn/www/doc/architecture-overview.adp 3 Jul 2015 10:43:58 -0000 1.3
+++ openacs-4/packages/dotlrn/www/doc/architecture-overview.adp 7 Aug 2017 23:48:09 -0000 1.4
@@ -30,23 +30,23 @@
and roles within the learning community.
a site node: this serves to define a
consistent URL for the learning community, and to segment away each
-communities from one another. An example is /dotlrn/alumni-1998.
+communities from one another. An example is /dotlrn/alumni-1998.
an instance of the dotLRN Community Manager
package: this serves to display community-specific data
in a way that is clearly segmented away from the other learning
-communities using the acs-subsite constructs.
+communities using the acs-subsite constructs.
OpenACS Group
-The core dotLRN group type is dotlrn_community. This group
+The core dotLRN group type is dotlrn_community. This group
type defines some basic attributes that all communities have:
-- a short name: a simple name with no spaces, no special
+
- a short name: a simple name with no spaces, no special
characters, usually all lowercase. e.g. finance-101
-
- a pretty name: a name that is used in pretty
+
- a pretty name: a name that is used in pretty
presentation. e.g. Finance 101
-
- start and end dates: for communities that have certain
+
- start and end dates: for communities that have certain
validity periods, a start date and end date.
@@ -62,76 +62,76 @@
future, if communities end up being multi-mounted, there will have to
remain a canonical location for the community in order to ensure
maximal modularity - specifically the ability to point to a
-community's URL using only the community_id as a starting
+community's URL using only the community_id as a starting
point.
Instance of dotLRN Community Manager
-The core dotLRN OpenACS package is called dotlrn
+The core dotLRN OpenACS package is called dotlrn
(surprisingly enough). This package is meant to be remounted to handle
-community types and specific communities. A package_id
+community types and specific communities. A package_id
corresponds to each community.
The group types for these two dotLRN Community Types are
-dotlrn_class_instance and dotlrn_club.
+dotlrn_class_instance and dotlrn_club.
Use of NPA
-dotLRN makes heavy use of the New Portal Architecture.
+dotLRN makes heavy use of the New Portal Architecture.
Each full-access user has a personal portal where all data from all
-communities is centralized in one place. This is called the dotLRN
-User Portal.
+communities is centralized in one place. This is called the dotLRN
+User Portal.
Each community has a non-member portal which displays information
to those browsing the system and wanting to find out more about a
-community before joining it. This is called the dotLRN Community
-Non-Member Portal.
+community before joining it. This is called the dotLRN Community
+Non-Member Portal.
Each community also has an administrative portal which centralizes all
administrative functionality for that community. This is called the
-dotLRN Community Admin Portal.
+dotLRN Community Admin Portal.
-Finally, each community member has her own dotlrn Community Member
-Portal. The important distinction here is that there is a
+Finally, each community member has her own dotlrn Community Member
+Portal. The important distinction here is that there is a
different portal for each member of this community. Thus, if a
community has 100 members, there are 100 individually managed
-portals. These portals are initially created from the dotLRN
-Community Portal Template that administrators of the community control.
+portals. These portals are initially created from the dotLRN
+Community Portal Template that administrators of the community control.
dotLRN Applets
dotLRN Communities have various packages of functionality. These
-packages (dotLRN applets) are much like existing OpenACS 4
+packages (dotLRN applets) are much like existing OpenACS 4
packages, but with added specifications, special callback interfaces,
and predictable APIs that not every OpenACS 4 package will have.
-Thus, a dotLRN Applet is composed of three
+Thus, a dotLRN Applet is composed of three
pieces that may each be a separate OpenACS package:
-- OpenACS raw functionality, to provide discussion
+
- OpenACS raw functionality, to provide discussion
forum functionality. As much as possible, this shouldn't depend on
other dotLRN components. (e.g. bboard)
-
- OpenACS portlet, using the New Portal Architecture (NPA),
+
- OpenACS portlet, using the New Portal Architecture (NPA),
to provide the ability to display the raw functionality in a portal
interface. This obviously depends on the the NPA, but should otherwise
be as independent as possible from dotLRN. (e.g. bboard-portlet)
-
- dotLRN functionality hooks, to link the raw functionality
+
- dotLRN functionality hooks, to link the raw functionality
into the appropriate dotLRN structure. This obviously depends on
dotLRN, but should be as thin a layer as possible on top of the the
previous two components. (e.g. dotlrn-bboard).
@@ -150,33 +150,33 @@
The relationship between dotLRN and the specific dotLRN-dependent
packages (dotlrn-bboard, dotlrn-faq, etc...) is defined using
-ACS Service Contract. ACS Service Contract defines a standard
+ACS Service Contract. ACS Service Contract defines a standard
provider/consumer interface with special contract APIs. The dotLRN
-system defines the dotLRN Applet Contract, which includes the
+system defines the dotLRN Applet Contract, which includes the
following operations:
-- GetPrettyName: Obtain a pretty, presentable name for the
+
- GetPrettyName: Obtain a pretty, presentable name for the
applet in question.
-
- AddAppletToCommunity: Add the applet to a
+
- AddAppletToCommunity: Add the applet to a
new community. This will most probably entail instantiating a new package for
this functionality, mounted below the community's main mount point. It
will also involve setting up applet-specific data structures (e.g. a
new forum inside bboard).
-
- RemoveAppletFromCommunity: Remove the applet from the
+
- RemoveAppletFromCommunity: Remove the applet from the
community. This will entail cleaning up any applet-specific data
structures, removing the mount point and package instance.
-
- AddUser: add a user to dotLRN in general. This user has
+
- AddUser: add a user to dotLRN in general. This user has
not yet joined any community, but may need user-specific functionality
enabled (a private folder for files, a personal calendar, etc..)
-
- RemoveUser: remove a user from dotLRN in general. This
+
- RemoveUser: remove a user from dotLRN in general. This
cleans up the AddUser operation.
-
- AddUserToCommunity: add a user to the community, and perform any
+
- AddUserToCommunity: add a user to the community, and perform any
applet-specific related actions. For applets that are represented via
a portlet (which is often, but not always, the case), this will add
the right portlet to the user's portal page for that community. It
will also add the generic portlet to the user's main, cross-community
workspace.
-
- RemoveUserFromCommunity: remove a user from a community,
+
- RemoveUserFromCommunity: remove a user from a community,
and thus clean up the actions of AddUserToCommunity.