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:
- Aggregating information from organization's internal and external data sources
- Customization of information content and layout through personal and group portals
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 $