Advanced Enterprise Portal AEP Architecture and Problems short
Advanced Enterprise Portal (AEP) Architecture and Problems (short version) Walter Kriha
AEP 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 • >12000 concurrent sessions, >500 conc. Requests • Runs on Web Cluster (load-balanced)
Common: customize, filter, contact etc. Dynamic and personalized Portfolio: Siemens, homepage Swisskom, Esso, Messages: 3 new From foo: hi Mrs. Rich Welcome Mrs. Rich, We would like to point you to our New Instrument X that fits nicely To your current investment strategy. Common: Banner Quotes: UBS 500, ARBA 200 News: IBM invests in company Y Links: myweather. com, UBS glossary etc. Research: asian equity update Charts: Sony E-Banking: please provide TAN
Physical Portal Architecture: Web Cluster Auth Service Web Proxy Internet Client Web Server Load Balancer Web Proxy F Web Server App. Server Clone E-BANK App. Market Data App. Server Clone F Issues: load handling, SSL, fail over, vertical and horizontal scalability, firewalls and authentication through SSO Host (user data) App. Server Clone Web Server Portal DB F F Web Proxy Intranet Client
Portal Conceptual Model Customer Internet Internal Cache System Aggre. Ren- Gation Integ. Channel der Inter- ration Service Access Pret. SDK Profile server Ext. Service Rule Engine Batch/async. Intranet Portal DB Ext. Service Back-ends
Simple Model 2 Architecture (MVC)
layout Services: customize, filter, contact etc. welcome Portfolio: Siemens, add X? 1 handler (command object) Per service Messages: 3 new From advisor: about X inv. Show. Messages Quotes: UBS 500, X 100 Links: X homepage myweather. com, . Charts: X Show. Charts Show. Quotes Welcome Mrs. Rich, We would like to point you to our New Instrument X that fits nicely To your current investment strategy. Services: Banner about X Show. Banner News: IBM invests in company X, X now listed on NASDAQ Show. News Show. Links Research: X future prospects asian equity update Show. Research
Portal. Page Request Flow and Assembly 2 Profile Trading. Ideas Synchronous Handler. Group Start() 1 IPOs 3 Welcome Links 5 Portal DB Charts Homepage Handler Start() Cache prefetch Cache Wait(timout) 4 Image Handler 6 Asynchronous Handler. Group Cache fetch Research Quotes News Telebanking Servlet Thread Marketdata Telebanking Threadpool Thread
Who sees what? Customer Segmentation High Value Medium Value Low Value Services Customers Access Rights Business defines the segmentation (at least initially)
Bad (hard-coded) Segmentation GUI: select background color Access Control: select service type = user. Object. get. User. Type(); If (type == LOWVALUE) background. Color=“yellow”; If (type == LOWVALUE) access=NO; If (type == HIGHVALUE) background. Color=“purple”; access=YES; If the customer segmentation changes all this code needs to change!
Good (dynamic) Segmentation GUI: select background Profile back. Ground= If Customer. Income >100 K user. Profile. get. BGColor (); Access Control: select service access= user. Profile. is. User. Allowed(“ Rule Engine BC AC Background is purple If Customer. Income >100 K Service. X is OK Access. Token. For. Service. X”); Simple value interface to profile. Profile elements are adapters and hide rule engine. No open calls to rule engine. Easy to change segmentation
Portal Problem Analysis • Reliability: Distribution Architecture • Performance: Information Architecture We won’t talk about: GUI design, Information Model, Implementation, Infrastructure, Maintenance, Management
How Information- and Distribution Architecture drive the Portal IA defines pieces of information to aggregate or integrate Request Aggre. Gation Integ. Inter- ration Pret. DA tells portal how to map/locate IA defined fragments (separation of concerns) Profile server Service Access Ext. Service Portal DB Ext. Service Back-ends
Service Descriptions Source Protocol Port host. X http/xml Research host. Y Quotes Personal News Avg. Resp. Worst Resp. Downtimes Loadbal. Security Contact/ SLA 3000 100 ms 6 sec. 17. 0017. 20 client plain Mrs. X/N ews. SLA RMI 80 50 ms 500 ms. 0. 001. 00 server SSL Mr. Y/res -SLA host. Z Corba/ IDL 8080 40 ms 25 sec. Ev. Monday 1 hour Client plain Mr. Z/qu otes. SLA host. W JDBC 7000 30 ms 70 ms 2 times Per week server Oracle JDBC dr. Mrs. W/p ers-SLA Getting this information requires tracking backend services and writing test programs. The results determine what can be combined on a personalized homepage.
Distribution Architecture: What, From Where and How? Service Descriptions determine • Handle interface changes • Sources, Protocols, Schemata • Disable broken connections • Data rates • Response times (average, over day, downtimes) • Add new sources determines • Security (encryption etc. ) Problem analysis • Poll and re-enable sources • Keep statistics on sources • QOS (e. g. Realtime quotes) • Push/Pull Service Access Layer Reliability/ Performance The SAL shields the portal from external data/application sources
Information Architecture – Lifecycle Aspects Data / changed by Time Personalization Country Codes No (not often, reference data) No News Yes (aging only) No, but personal selections Greeting No Yes Message Yes (slowly aging) Yes Stock quotes Yes (close to realtime) No, but personal selections Homepage Yes (message numbers, quotes) Question: how often? Yes (greeting etc. ) For every bit of information you must know how long it is valid and what invalidates it
Caching: Why, What, Where and how much? Information Architecture System Architecture determine • Lifecycle • Fragmentation • QOS (e. g. Realtime quotes) Caching possibilities Throughput/ Performance Problem analysis • Result Objects/Value Objects • Invalidation mechanism • Addressing of fragments • Cache Subsystem QOS (e. g. automatic re-load) The DB is usually THE bottleneck in a large-scale portal
Cache fragments, locations and dependencies (without client and proxy side caches) Full-Page Cache Per user Hand lers Research Result Bean cache Quotes Result Bean cache Controller Servlet Fully processed Page JSPs News Result Bean cache Page parts, processed Domain Object Cache (charts, News, Market Data User Etc. ) Market data Cache SAL Portal DB Market Data service Distributed cache, raw data Service Access Layer
Common: customize. . Con: customize. . Quotes: UBS 500, ARBA 100 User B User did not customize this service: use standard 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!
Fragment Based Information Architecture Channel Access Layer Normalized Request Object AL Fragment Cache Aggregation layer Profile Info Personalization Fragment Description Instance invalidates Rule Engine Authorization Integration layer IL Fragment Cache invalidates Fragment Request Service Access layer Datacache 1 Storage manager Datacache 2 Object Dependency Graph notifies Storage manager Goal: minimize backend access through fragment assembly (extension of IBM Watson research)
- Slides: 20