Advanced Enterprise Portals

Walter Kriha

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

3 May 2001

Revision History
Revision 0.911 July 2001
  • Integrated Web-mining and AEP-talk contents with figures

Revision 0.83 May 2001
  • Started chapter on information integration

Revision 0.718 Apr 2001
  • More on SSL handling and load-balancing

This paper lives at If you're reading it somewhere else, you may not have the latest version.


Written against the end of a larger project, this paper contains many ideas from my friends with whom I've been building this enterprise portal. I would like to say thanks to our project team

Andreas Kapp
Andy Binggeli
Christophe Gevaudan
Guido Lombardini
Teresa Chen
Stephan Bielmann
Joachim Matheus
Gabriel Bucher
Heinz Dürr
Kaspar Thoman
Hans-Egon Hebel
Dmitri Fertman
Gabriela Dörig
Ralf Steck
Bernhard Scheffold
Yves Thommen
Rudi Flütsch
Dani Fischer
Reto Hirt
Christoph Schwizer

and to our project leaders

Christine Keller
Marcus Weber
David Bühler
Hans Feer
Ronny Burk

Table of Contents

1. Introduction
Purpose & Scope
2. What is an Advanced Enterprise Portal?
3. Portal Conceptual Model
Building Blocks
Model2 Architecture
Request processing
4. Reliability
Simple page processing
RAS properties
Behavior in case of failures
Multi-Page (parallel) processing
Homepage-charts service
RAS properties without timeout
Behavior in case of failures
RAS properties with timeout
Effect of caching on the scheduler
A design flaw:
Another design flaw
Multiple Multi-Pages
Service Access and Reliability
5. Performance
The end-to-end dynamics of Web page retrievals
Cache invalidation
Information Architecture and Caching
Client Side Caching
Results and problems with client side caching
Proxy Side Caching
(Image) Caching and Encryption
Server Side Caching: why, what, where and how much?
Cache implementations
Physical Architecture Problems: Clones and Cache Synchronization
From Handlers to Portlets
Portlet: Application or Information?
Fragment Definitions
Fragment Chaining
Composite Fragments
Fragment Sharing
Fragment Validation
Fragment Architecture Overview
Pooling: why, what and how much?
Pooling: how?
GUI design for speed
Incremental page loading
Information ordering
The big table problem
Java Pitfalls
XML processing
XML-RPC type communication performance
Database performance
Http Compression
SSL Sessions and Acceleration
Reader/Writer Locks
Http session handling in the Application Server
Asynchronous Processing
Extreme Load Testing
6. Portal Architecture
Domain Analysis
Information Architecture
Distribution Architecture
Architecture Domains
System Architecture
Software Architecture
Physical Architecture
7. Portal Maintainability
Delegated Management
What is "Delegated management services (DMS)"?
Service Access Layer (SAL)
Service Development Kit (SDK)
Dynamically loading a new service
Necessary design changes in SEPortal
Enterprise Portal: Can there only be ONE?
One source-code base and only one installation of THE Enterprise portal.
one source-code base, different installations and configurations.
different source-code bases and different installations
Recommendation: SEPortal the template for smaller portals
8. Content Management Integration
Why use a CMS?
9. Heterogeneous and Distributed Searching
The surface web and the deep web
10. Mining the Web-House
The Portal as an information source
Collecting data: logging and the role of meta-data
How to flow the results back
External Information Sources
11. Portal Extensions
Integrated Information
Integrating heterogeneous databases
Internet Conversation
Instant Messaging
Federated Portals?
12. Personalization
Customer Segmentation
Design for change and exception
Access Control
Dynamic Segmentation
The Profile Interface
The Access Controller Interface
Rule Engine Integration
13. Resources
References & Abbreviations
A. About the paper