1. Overview

In this section, we provide an overview, from a developer's perspective, of some of the Metadot Portal Server's functionality and components. For some of the Perl modules described in this guide, Perl POD documentation is also available to the developer. The POD documentation can provide additional information about some of the specific methods referenced.

1.1 Dynamic Generation of Site Content

Pages delivered by the the Metadot Portal Server software are all dynamically generated from content stored in a relational database. The content may include static HTML fragments, but all of the delivered pages are built dynamically.

There are two basic types of pages. The first type of page can be labeled, in Metadot terminology, a "Category" page. These are pages for which users, if they have the appropriate permissions, can create new content, such as sub-pages (sub-categories), discussions, polls, news items, etc. The second type of page provides a customized set of information channels for each user. These are the "My Page" site pages. For their "My Page", a user does not create content directly, but builds his/her page from pre-existing content channels.

A Metadot site supports a community of registered users. Once a user has registered and created an account, they may log on. A logged-in user can typically view more of a site than a non-logged in user, and can add and modify site content. Metadot supports a variety of models for authenticating and registering a user, including use of LDAP directories; and for browsing information about the user base.

In conjunction with the code that generates site content, the Metadot Portal Platform includes "backend" functionality, which runs asynchronously to its portal requests. The backend scripts gather information from the internet, process it, manage user subscriptions (described below) and perform various site cleaning tasks.

1.1.1 Gizmos and "Category" pages

Most of the pages generated by a Metadot Portal Server are populated by an information class called a "Gizmo". Categories are a subclass of Gizmo, and other content objects such as Items, Discussions, NewsItems, Tables, etc., are Gizmos as well. Categories are the primary organizational/container metaphor for this type of page: a category can have any number of child gizmos added to it, including sub-categories; and this creates a `tree' of gizmo objects. Site pages are then dynamically built from this content tree, with a category object's children contributing to the rendered content of the category as a web page. For example, if a user creates a child Discussion for a Category page, then a `summary' view of the Discussion info will typically be included when the Category page is rendered.

A gizmo may be a child of only one parent, but shortcuts (essentially, symbolic links) can be created to allow a gizmo to appear to be associated with more than one parent.

Gizmos are subject to the Metadot Portal Server's access control scheme (as described in Section 3); their visibility and editability can be controlled with respect to each user. This means that a page may `render' differently for different users, depending upon what page content the user has permission to view or modify.

When a user account is created, a set of Category pages is created for the new user, over which they have editorial control. This area is called the user's "My Website" pages. On these pages, they can create new content, including child pages, and set the permissions of the content to determine who can edit or view it. There may be other parts of the site, in addition to the "My Website" area, for which others have given a user edit permissions as well.

Some types of Gizmos can export their information as channels (see below).

1.1.2 "MyPage" pages and channels

The `MyPage' pages built for each user of the portal, are different than the rest of the portal. Conceptually, each MyPage displays the information from a set of information channels , where the channels can be selected and arranged on the page according to the user's specifications. A user can also subscribe to change notifications on the channels.

Nearly all of the information pushed to the MyPage channels is locally warehoused (cached) so that it is available quickly on demand. Behind the scenes, the information delivered to a MyPage is of four different types:

A user's MyPage is built by accessing the user's page preferences (selected channels and page layout), in conjunction with the cached channel content. The same channel content may be accessed and shared by many users. Internally-derived channels respect the permissions settings of their original information sources and thus not all channels may be viewable by all site users.

In addition to channels, users may also select to display on their MyPage other information sources such as weather indicators and webserver monitors.

A portal 'backend' script runs periodically to perform channel management tasks. It fetches the external channels, then converts all the information sources, internal and external, to an html channel format, and stores the html channel content in the database (thus locally warehousing or caching the content so that it is available quickly on demand). The refresh interval for the cached information is configurable by the portal administrator. In addition, the script checks user subscriptions and sends out change notifications on the channel content as appropriate. The change notifications can be delivered through various media such as email and pager.

1.2 Levels of Administrative Access

A Metadot site has two levels of administrative access: Site Managers , and Admins . Typically there is one Admin per site, and multiple Site Managers. Site Managers have a subset of the capabilities of the Admin. They can edit any site content, and manage users and groups. They can add and edit "My Page" content, and change the site look and feel. However, the Admin has access to a number of site configuration parameters that the Site Managers can not access.

1.3 "Backend" portal management

A portal site runs two server-side scripts periodically. The first performs channel management tasks, as described in the section above. The tasks are scheduled, with run times stored in the database. Some tasks run just once a day, others run every hour, etc. The second script performs various cleanup tasks.

If virtual servers are in use, as described in the Administrator's guide, then this means that several different content databases are set up, each accessed by a different virtual server. In this case, the scripts run through their set of scheduled tasks for each database in turn.

1.4 Layout and Configuration

Much of the "look and feel" of a Metadot site is configurable through the browser interface. High-level layout (the way the content of each page is rendered) is determined by selecting one of several basic layout modes. It is possible to switch a site back and forth between styles dynamically.

Two of the layout modes provide a relatively fixed, non-template-based layout style, and two use HTML templates . Embedded in the templates are Metadot tags called GizmoTags. The GizmoTags allow various content to be inserted into the HTML page, resulting in more control over what goes where and how the page looks, than is possible with the fixed layout styles. One of the template-based modes is the Themes mode, in which a fixed layout template is used for each page type, and the site manager has the ability to change logos and colors for the pages1. The second template mode is Metadot's "Style 4", in which a site manager has the ability to tailor the set of templates used by the site to their own specifications. This provides more control, but also typically requires a higher initial outlay of effort in setting up the sites, than is required with the fixed layout styles. Section 8 describes template and gizmo tag use in more detail.

It is also possible to configure, through a browser interface, many of the table cell colors used on the site (in order to render object frames, etc.), and to configure the style rules used for the site pages. More info is provided in the Administrator's guide.

 

In the remainder of this guide, we provide more detail about the aspects of the Metadot Portal Server system that a developer must be familiar with in order to generate new Gizmos and gizmo-based "applications".


1. Currently, there is no browser-based interface for modifying the Themes layout.