ArsDigita Archives
 
 
   
 
spacer

Portals Requirements

by Tarik Alatovic

I. Introduction

This document records the requirements for portals package v2.0 compatible with ACS 3.4.x series.

II. Vision Statement

Arsdigita portals solve two major problems of presenting information to the users:

  1. Aggregating information from organization's internal and external data sources
  2. Customization of information content and layout through personal and group portals

Portal Interface

As figure above shows, portals are an interface between the information content distributed among multiple databases and clients who are presented with the information relevant to them.

III. System/Application Overview

The portal system is built out of five entities:

  • portals
  • portal domains
  • portal pages
  • portlets
  • portlet data feeds

Portal is a user interface that presents information collected from multiple data sources to the user. Every portal belongs to either user or a group. User portals aggregate information that is personalized for user's needs. Group portal aggregate information that is of interest to group members.

Portal domain is a collection of portals that share the default configuration, display settings, and authorization procedures. One portal domain can be defined for all of the user portals, and one portal domain can be defined for each of the group types, such as, suppliers or customers.

Portal page is a component of the portal corresponding to a single web page. Every portal consists of one or more portal pages. (screenshot of a typical portal page)

Portlet is a user interface component displaying information that has something in common. For example, the announcement portlet displays the latest news headlines. Every portal page consists of one or more portlets. (screenshot of a typical portlet)

Portal data feed is a piece of tcl or adp code that generates content to be served inside the portlet. This code makes a connection to an internal or external database, retrieves the data, and returns the information user is interested in.

IV. User Classes

There are three classes of users in the portal system:
  • portal users
  • portal managers
  • ACS administrators

Portal users use portals to either access their personalized information through user portals, or group customized information through group portals.

Portal managers customize the layout and content of the portal. Notice that portal users are in fact portal managers for their own personal portals. Portal managers of group portals are usually group administrators, although this can be changed through portal authorization mechanism (see requirement 80.10.20).

ACS Administrators are the primary administrators of the ACS installation. They are in charge of creating portal domains, setting up default portal configurations, setting domain level display settings for all portals in the domain, and setting the root URLs for portal domains (see requirements 30.10.10 and 30.10.20 for the specification of portal URLs).

V.A Portal User Scenarios

Viewing content aggregated from multiple data sources

It's 15 minutes before John's marketing meeting where last month sales are discussed. John visits marketing department portal at http://xyz.com/departments/marketing and takes a look at the quarter sales portlet. He goes to the meeting with the grin on his face because the quarter sales report shows a 7% increase over the last year sales for the same quarter.

After the meeting, John is in very good mood and feels like driving to Mt. Washington to get some fresh mountain air. He goes to his personal portal and checks the weather in New Hampshire. Unfortunately, there is a storm coming, and John drops the idea of mountain adventure.

While he was checking the weather on the portal page, his eye was caught by a red colored text on the calendar portlet. The text read: "Meeting with Tom, the new CEO of XYZ corporation at 4:30PM." John glimpses at his watch and expression on his face changes from exuberant to grave serious. "How could I forget the most important meeting of my career," he speaks to himself". "Calendar portlet, thank you so much for reminding me." John rushes out of the office and makes it to the meeting where he is promoted to the vice president of sales.

Customizing portlet information

The quarter sales portlet of the marketing department portal shows only the sales figures from the last period. For the next meeting, John is supposed to talk about fluctuations in sales between consecutive quarters, and John would really like to see figures for the last four quarters instead of only the last one.

John clicks the portal customization link in the upper right corner of the quarter sales portlet and gets to the screen for customizing the quarter sales portlet. He changes option "Number of quarters displayed" from 1 to 4 and click OK button. Now, the quarter sales portlet shows figures for the last four quarters and John goes to the meeting pleased with his new ability to get the useful information out of the computer.

Switching between portal pages

The first page of John's home portal shows his calendar, news and reports from company's departments. John's address book portlet is on the second page of the portal. To access the second page of the portal, John clicks the link in the portal navigation bar and gets to the second page with his address book on it.

Submitting a bug to the portal administrator

Oops, the quarter sales portlet shows zero sales for all the four quarters. John knows that's not right and immediately sends a bug report to the portal administrator by clicking a link at the bottom of the portal page.

V.B Portal Manager Scenarios

Customizing the content and layout of portals

Now, that John was convinced that portals are very useful tool for accessing the information of interest to him, he decides to spend some time and personalize his portal. He clicks on the portal customization link, which takes him to the customization page for portal content and layout.

Adding a portlet to the portal page

Since, John likes to keep in touch with the latest news, he selects company news portlet and places it at the upper left corner of his first portal page.

Removing a portlet from the portal page

John is a very cautious person and has no interest in risky stock market, so he removes the stock quotes portlet provided by default from the portal page.

Moving portlets around

In recent times, John noticed that he is using address book portlet very often and would like it to be more readily accessible. Therefore, he moves the address book portlet from the second to the first page.

Creating a new portal page

John realizes that his first page is now too cluttered. He decides to create a new page "Reports" and move all the company reports from the first page to the newly created "Reports" page.

Reverting a portal to the default portal configuration

After spending half an hour customizing his portal, John is not satisfied at all with the new portal configuration he produced. Being a conservative person, he decides to scrap his changes and return to the portal configuration provided by default. He clicks "revert portal" link on the portal customization page and gets the default portal configuration back.

V.C ACS Administrator Scenarios

Creating a portal domain

Jessica, the ACS administrator, is instructed to set up a new portal domain for all suppliers of XYZ corporation. She clicks "add domain" link on the main admin page, specifies suppliers as a group type, and chooses the URL root "suppliers" for this new portal domain.

Removing an existing portal domain

Jessica who is skeptic in nature defines a test domain in order to test the features of portal domains. After studying the test portal domain and realizing how useful portal domains really are, she wants to get rid of the test portal domain. She goes to the administration page for managing the test domain and clicks "remove this domain" button. Portal system responds with a confirmation window asking Jessica to confirm the removal of the whole portal domain. Jessica confirms her decision, and the test portal domain is gone forever.

Changing the root URL of the portal domain

John complains to Jessica that portal URLs are too long. To access his home page John has to type http://xyz.com/my-home-portal/. Jessica says no problem and changes the portal URL root "my-home-portal" to "home" through admin interface. Now, John can access his personal portal at http://xyz.com/home.

Adding a portlet to the portal domain

After creating the suppliers portal domain, Jessica is instructed to make an auction portlet where suppliers can make their bids for delivery of XYZ corporation materials. Jessica creates an auction portlet by using auction data feed available for free from Arsdigita. She names the portlet "Auction", and provides an administration URL where users can customize the auction portlet display options.

Removing a portlet from the portal domain

New company policy is to avoid supplier auctions and instead built strong alliances with suppliers. As a result, all of the company's supply is obtained through direct sales and auction portlet in not used anymore. Jessica goes to suppliers domain administration page and removes auction module from the domain. Auction module is automatically removed from all the portals in the suppliers domain.

Setting a default portal for the portal domain

Jessica reviews the notes from her MIT class on the user interface design, and comes across very important point: "Users are not going to go through the pain of customizing the portals if they are not offered with a sensible default configuration". "Hmm ...," Jessica murmurs, "I can do that. Setting a default portal for the portal domain is not any more complicated than customizing a regular portal."

She goes to the admin page, and sets up the default portal for the suppliers domain. The next time members of ABC Supplier Co. (supplier group) log in, they will be immediately presented with the default portal. The portal manager of ABC Supplier Co can now further customize the portal starting from the default portal configuration specified by Jessica.

Reverting all portals in the portal domain

Jessica's boss Tom has a new idea of how department portals should look like and demands that all department portals be changed. Jessica is not very happy with Tom's proposal but has no choice, and ends up modifying default department portal, so that Tom is satisfied with it. After sending an email to all departments alerting them of new change to their portals, she clicks the "Revert all portals in this domain" button and all of the department portals are reverted to new portal configuration.

Making required portlets

After 2 months, Tom accesses marketing department portal and to his surprise, the portal doesn't look like the one he designed. He immediately calls Jessica on the cell phone and orders her to quit whatever she is doing and come to his office immediately. "What's happening Jessica?," Tom asks, "Why is marketing portal different from what I gave you 2 months ago ?" "Well, the portal manager of the marketing department customized the portal," Jessica answers, "Two months ago, we just changed the default configuration and replaced old department portals with new ones."

Tom nods his head in understanding and tells Jessica: "OK, let marketing department customize their department as they wish, but they must have the company announcement portlet. All of us make a community and everybody has to be informed about company events." Jessica agrees: "OK, that's easy. I'll make announcement portlet a required portlet, and no department will be able to remove it from its portal configuration." Jessica goes to the admin page and makes announcement portal a required portal for the department portal domain.

Setting domain level display properties

At the same meeting, Tom notices that personal portals and department portals look the same: "Jessica, this is so confusing. I have a hard time distinguishing between my personal portal and the marketing department portal. Both of them use the same red color for portlet backgrounds. Can't you make portlets on personal portals have a blue background and portlets on department portals have a green background." Jessica answers: "Sure, just give me a minute and I'll change display settings for personal and marketing portals." Jessica goes to the portal admin pages and sets blue background for portlets on personal portals and green background for portlets on department portals.

Changing the name of the portlet

XYZ corporation has just introduced "industry news" portlet. In order, to distinguish the old company news portlet named "announcements" from the new "industry news" portlet, Tom wants to change the name of company news portlet from "announcements" to "company news". He sends email to Jessica asking her to make the change. Jessica delighted that she finally got a task from Tom that makes sense, goes to the admin page and changes name of the company news portlet to "company news".

VI. Related Links

VII.A Requirements: Data Model

Portal Data Feeds

10.10.10 Data feeds are identified by unique data feed id

10.10.20 Data feed consists of either tcl or adp code

10.10.30 There are two types of data feeds: (1) predefined data feeds are defined by developers and cannot be subsequently modified through the web interface, and (2) user-defined data feeds are created and modified through the web interface

10.10.40 Predefined data feeds are identified by unique name, so that ACS administrator can create portlets from admin interface by specifying the name of the predefined data feed

Portals

10.20.10 Portals are identified by unique portal id

10.20.20 Portal is owned by either a user (identified by user_id) or a group (identified by group_id). Default portals are not owned by anybody, and they define default portal configurations for all portals within a domain. Every portal belongs to exactly one portal domain identified by domain id

10.20.30 A name can be associated with every portal

Portal Domains

10.30.10 Portal domains are identified by unique portal domain id

10.30.20 Portal domain can be either user or a group portal domain. There is only one user domain to which all the user portals belong. One portal domain can be defined for every group type.

10.30.30 Unique URL root is associated with each portal domain (see 30.10.10 and 30.10.20 for specification of portal URLs)

10.30.40 Optionally, a control panel can be specified for the portal domain by providing data feed id of the data feed that contains control panel code.

10.30.50 Domain level display properties can be specified for a domain.

Portal Pages

10.40.10 Portal pages are identified by unique portal page id

10.40.20 Each portal page belongs to exactly one portal identified by the portal id

10.40.30 Each portal page may have a pretty name

10.40.40 Each portal page has a page number that is unique across the portal to which the portal page belongs. This page number is used for two purposes: (1) for portal URL construction (see 30.10.10 and 30.10.20), and (2) for construction of pretty name of portal pages where pretty name is not provided by the user

Portlets

10.50.10 Portlets are identified by unique portlet id

10.50.20 Every portlet belongs to exactly one domain identified by the domain id

10.50.30 Every portlet has a name associated with it. This name is unique across the domain that the portlet belongs to.

10.50.40 Every portlet uses exactly one data feed that generates portlet's html content.

10.50.50 Portlet may be specified as required. If portlet is specified as required, then users cannot remove it from their portal configurations.

10.50.60 An optional link URL may be specified for a portlet. Link URL is commonly used for accessing the portlet administration page. Link URL can consist of adp or html code.

Placement of portlets on portal pages

10.60.10 A portlet can belong to one or more portal pages that share the same domain as the portlet.

10.60.20 The horizontal position of a portlet on the page is either the left side or the right side.

10.60.30 The vertical position of a portlet on the page is specified relative to the position of other portlets on the page.

VII.B Requirements: API

API of the portal system is object-based. As a result, portal system API has methods for creating, destroying, modification, and getting information about all of the portal objects: portals, portal domains, portal pages, portlets, and portal data feeds.

Portal API

20.10.10 Method for creating the user portal for given user_id and the group portal for given group_id

20.10.20 Method for destroying portal

20.10.30 Method for modifying portal

20.10.40 Method for getting information about the portal

Portal Domain API

20.20.10 Method for creating the users domain and the group type domain for given group_type

20.20.20 Method for destroying portal domain

20.20.30 Method for modifying portal domain

20.20.40 Method for getting information about the portal domain

Portal Page API

20.30.10 Method for creating portal page

20.30.20 Method for destroying portal page

20.30.30 Method for modifying portal page

20.30.40 Method for getting information about the portal page

Portlet API

20.40.10 Method for creating portlet

20.40.20 Method for destroying portlet

20.40.30 Method for modifying portlet

20.40.40 Method for getting information about the portlet

Portal Data Feed API

20.50.10 Method for creating portal data feed

20.50.20 Method for destroying portal data feed

20.50.30 Method for modifying portal data feed

20.50.40 Method for getting information about the portal data feed

User Interface Widgets API

20.60.10 Method for generating portlet html

20.60.20 Method for generating portal page html

20.60.30 Method for generating navigation bar that includes link to all of the portal pages

Authorization API

20.70.10 Method that returns permission (administer, view, or none) for portal identified by portal id and user identified by user id

20.70.20 Method for registering domain specific authorization procedure

Portal Info API

20.80.10 Method for getting the information about the currently served portal page: portal id, portal page id, portal type (user or a group), domain id to which the portal belongs, URL root of that domain, and whether user has administrative privilege for that portal

VII.C Requirements: Portal User Interface

Portal URL Specification

30.10.10 User portal URL is of the form /root_url/page-number. For example, John accesses the second page of his personal portal from http://xyz.com/home/page-2. The first page of the portal doesn't need page-number part of url. Therefore, John can access the first page of his portal at http://xyz.com/home.

30.10.20 Group portal URL is of the form /root_url/short_name/page-number. To access the second page of portal for the marketing department of XYZ corporation, John uses the following URL http://xyz.com/deparment/marketing/page-3 where department is root_url, and marketing is the short_name of the marketing. The first page of the group portal doesn't need page-number part of the URL. Therefore, John can access the first page of marketing portal at http://xyz.com/department/marketing.

Portal User Interface

30.20.10 Portal user interface consists of one or more portal pages. Each portal page is a single html page consisting of four elements: header, footer, navigation bar and one or more portlets.

30.20.20 Header contains appropriate name for the portal. For example, a combination of user's first and last name can be used for the header of a user portal, and a group name for the header of a group portal.

30.20.30 Footer contains email of the portal administrator.

30.20.40 Navigation bar consists of links to portal pages other than the portal page currently selected. Navigation bar also includes a link to the control panel if one exists.

30.20.50 Each portlet is a box with two parts: header and body. Header of the portlet displays the name of the portlet and optionally a link to the page where contents of the portlet are administered. Body of the portlet displays information generated by portlet's data feed.

30.20.60 Portal user is not allowed to remove the portlets that ACS admin designates as required portlets

VII.D Requirements: Portal Manager Interface

Notice that for user portals, portal manager is user himself. For a group portal, manager is usually the group administrator.

Portal Customization

40.10.10 Portal manager can easily customize the portal content by specifying which portlets are displayed in the portal

40.10.20 Portal manager can easily customize the layout of the portal by specifying the number of portal pages, names of portal pages, deciding which portlets go to each of the portal pages, and specifying vertical and horizontal position of the portlet

VII.E Requirements: ACS Administrator Interface

Portal Domain Management

50.10.10 ACS admin can create one user portal domain

50.10.20 ACS admin can create one portal domain for each of the defined user group types

50.10.30 ACS admin can change the root URL of the portal domain

50.10.40 ACS admin can remove the portal domain

50.10.50 ACS admin can change domain level display settings for a portal domain

Portlet Management

50.20.10 ACS admin can create a new portlet for the domain by specifying portlet name, portlet data feed (predefined, or new adp code), and optionally specifying the link URL, which is used for accessing the administration page of the portlet

50.20.20 ACS admin can remove the portlet from the portal domain

50.20.30 ACS admin can change name, portal data feed, and link URL of the portlet

Default Configurations

50.30.10 ACS admin can set up a default portal configuration for every portal domain

50.30.20 ACS admin can revert all of the portals in one portal domain to the default portal configuration for that domain

VII.F Requirements: Usability

60.10.10 User and group portals are automatically created and set to default the first time these portals are accessed

VII.G Requirements: Reliability and Robustness

70.10.10 Portlets whose data feed raises an error are not displayed on the portal page.

VII.H Requirements: Authorization

80.10.10 Portal system provides default authorization procedure. For user portals, the default authorization procedure grants users a right to view and administer their portals. For group portals, the default authorization procedure grants group administrators a right to administer their group portals, and group members right to view their group portals.

80.10.20 Portal system provides means for registering domain specific authorization procedures. For each domain, a procedure can be registered that determines whether the user has a right to view or administer the portal.

VII.I Requirements: Performance

90.10.10 Portal system serves two important roles: (1) it provides entry point for accessing all the information, and (2) it serves new and relevant information at the spot. As a result, portal pages are frequently accessed and must have an excellent performance. In order to achieve a high level of performance, the portal system cannot query the database. Instead, the portal system should have all the data necessary to generate portals cached in memory.

VIII Implementation Notes

Take a look at the Historical Considerations section of the design document.

IX Revision History

Document Revision # Action Taken, Notes When? By Whom?
0.1 Creation 10/13/2000 Tarik Alatovic

tarik@alatovic.com
Last modified: $Id: portals,v 1.1 2001/01/19 21:36:46 jmileham Exp $
spacer