Title: Advanced Enterprise Portal AEP
1Advanced Enterprise Portal (AEP)
- Architecture and Problems (short version)
Walter Kriha
2AEP Definition
- Combines several legacy backend data sources and
applications (at request-time) into one page - Provides Single-Sign-On (SSI)
- Content ist highly dynamic, personalized,
integrated and secured - gt12000 concurrent sessions, gt500 conc. Requests
- Runs on Web Cluster (load-balanced)
3Common customize, filter, contact etc.
Dynamic and personalized homepage
Welcome Mrs. Rich, We would like to point you to
our New Instrument X that fits nicely To your
current investment strategy.
Portfolio Siemens, Swisskom, Esso,
Messages 3 new From foo hi Mrs. Rich
Common Banner
News IBM invests in company Y
Quotes UBS 500, ARBA 200
Research asian equity update
Links myweather.com, UBS glossary etc.
E-Banking please provide TAN
Charts Sony
4Physical Portal Architecture Web Cluster
Host (user data)
Auth Service
App. Server Clone
Web Proxy
E-BANK App.
Load Balancer
Web Server
Market Data
Internet Client
Clone
Market Data
App. Server Clone
Web Proxy
Web Server
Portal DB
Clone
F
F
F
F
App. Server Clone
Issues load handling, SSL, fail over, vertical
and horizontal scalability, firewalls and
authentication through SSO
Intranet Client
Clone
Web Proxy
Web Server
5Portal Conceptual Model
Profile server
Customer
Service Access
Channel Access
Cache System
Integ- ration
Ren- der
Aggre- Gation Inter- Pret.
Ext. Service
Internet
Internal
SDK
Rule Engine
Ext. Service
Batch/async.
Intranet
Portal DB
Back-ends
6Simple Model2 Architecture (MVC)
7Services customize, filter, contact etc.
layout
welcome
Welcome Mrs. Rich, We would like to point you to
our New Instrument X that fits nicely To your
current investment strategy.
1 handler (command object) Per service
Portfolio
Portfolio Siemens, add X?
Messages 3 new From advisor about X inv.
Services Banner about X
ShowBanner
ShowMessages
News IBM invests in company X, X now listed on
NASDAQ
Quotes UBS 500, X 100
ShowQuotes
ShowNews
ShowLinks
Links X homepage myweather.com,.
Research X future prospects asian equity update
Charts X
ShowResearch
ShowCharts
8PortalPage Request Flow and Assembly
2
Profile
Synchronous HandlerGroup
3
Portal DB
Start()
1
Homepage Handler
5
Cache
Start()
Marketdata
Cache prefetch
Wait(timout)
Cache fetch
Research
4
Image Handler
Telebanking
Asynchronous HandlerGroup
Quotes
6
News
Telebanking
Servlet Thread
Threadpool Thread
9Who sees what? Customer Segmentation
High Value
Medium Value
Low Value
Customers
Services
Access Rights
Business defines the segmentation (at least
initially)
10Bad (hard-coded) Segmentation
GUI select background color
Access Control select service
type userObject.getUserType() If (type
LOWVALUE) backgroundColoryellow If
(type HIGHVALUE) backgroundColorpurple
type userObject.getUserType() If (type
LOWVALUE) accessNO If (type
HIGHVALUE) accessYES
If the customer segmentation changes all this
code needs to change!
11Good (dynamic) Segmentation
GUI select background
Profile
Rule Engine
backGround userProfile.getBGColor ()
If CustomerIncome gt100K Background is purple
BC
Access Control select service
If CustomerIncome gt100K ServiceX is OK
AC
access userProfile.isUserAllowed( AccessTokenFo
rServiceX)
Simple value interface to profile. Profile
elements are adapters and hide rule engine. No
open calls to rule engine. Easy to change
segmentation
12But Performance?
Hard-Coded Plug-ins!
GUI select background
Profile
backGround userProfile.getBGColor ()
If (custIncome gt100k) return purple
BC
Access Control select service
If (custIncome gt100k) return OK
AC
access userProfile.isUserAllowed( AccessTokenFo
rServiceX)
Role as a set of access rights is a concept
known only within the business (engine) part of
the portal. Services themselves do not know about
it and therefore need not change!
13Portal Problem Analysis
- Reliability Distribution Architecture
- Performance Information Architecture
- We wont talk about
- GUI design, Information Model, Implementation,
Infrastructure, Maintenance, Management
14How Information- and Distribution Architecture
drive the Portal
IA defines pieces of information to aggregate or
integrate
Profile server
Service Access
Integ- ration
Aggre- Gation Inter- Pret.
Ext. Service
Request
DA tells portal how to map/locate IA defined
fragments (separation of concerns)
Ext. Service
Portal DB
Back-ends
15Service Descriptions
Getting this information requires tracking
backend services and writing test programs. The
results determine what can be combined on a
personalized homepage.
16Distribution Architecture What, From Where and
How?
Service Descriptions
Service Access Layer
determine
- Handle interface changes
- Disable broken connections
- Add new sources
- Poll and re-enable sources
- Keep statistics on sources
- Sources, Protocols, Schemata
- Data rates
- Response times (average, over day, downtimes)
- QOS (e.g. Realtime quotes)
- Push/Pull
- Security (encryption etc.)
determines
The SAL shields the portal from external
data/application sources
Reliability/ Performance
Problem analysis
17Information Architecture Lifecycle Aspects
For every bit of information you must know how
long it is valid and what invalidates it
18Caching Why, What, Where and how much?
Information Architecture
System Architecture
- Result Objects/Value Objects
- Invalidation mechanism
- Addressing of fragments
- Cache Subsystem QOS (e.g. automatic re-load)
determine
- Lifecycle
- Fragmentation
- QOS (e.g. Realtime quotes)
Caching possibilities
The DB is usually THE bottleneck in a large-scale
portal
Throughput/ Performance
Problem analysis
19Cache fragments, locations and dependencies
(without client and proxy side caches)
Market data Cache
Domain Object Cache (charts, News, Market Data
User Etc.)
SAL
Research Result Bean cache
Hand lers
Full-Page Cache Per user
Portal DB
Quotes Result Bean cache
Controller Servlet
JSPs
Market Data service
News Result Bean cache
Fully processed Page
Page parts, processed
Distributed cache, raw data
Service Access Layer
20Common customize..
Quotes UBS 500, ARBA 100
User did not customize this service use standard
User B
Quotes default fragment
80 of users do NOT customize many services.
Using the standard (cached) quotes fragment saves
HUNDREDS of backend requests/min. and makes the
AEP possible!
21Fragment Based Information Architecture
Channel Access Layer
Normalized Request Object
AL Fragment Cache
Aggregation layer
Profile Info Personalization Rule
Engine Authorization
invalidates
Fragment Description Instance
Integration layer
IL Fragment Cache
invalidates
Fragment Request
Object Dependency Graph
Service Access layer
notifies
Datacache 1
Datacache 2
Storage manager
Storage manager
Goal minimize backend access through fragment
assembly (extension of IBM Watson research)
22Portal Architecture Option Content Management
System (CMS) and Application Server
Services and applications
Application Server
Web Server
Portal DB
Fill cache
CMS
Authoring
Cache
Who assembles complex pages? Who invalidates
cache? Can App.Server and CMS share authorization
concepts?
23Information Model???