200 likes | 217 Views
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)
E N D
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 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 Quotes: UBS 500, ARBA 200 News: IBM invests in company Y Research: asian equity update Links: myweather.com, UBS glossary etc. E-Banking: please provide TAN Charts: Sony
Physical Portal Architecture: Web Cluster Auth Service Host (user data) 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
Portal Conceptual Model Profile server Customer Channel Access Cache System Service Access Ren- der Aggre- Gation Inter- Pret. Integ- ration Internet Ext. Service Internal SDK Rule Engine Ext. Service Batch/async. Intranet Portal DB Back-ends
Services: 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 Quotes: UBS 500, X 100 ShowQuotes News: IBM invests in company X, X now listed on NASDAQ ShowNews ShowLinks Links:X homepage myweather.com,. Research:X future prospects asian equity update Charts:X ShowCharts ShowResearch
IPOs TradingIdeas Welcome Links Charts PortalPage Request Flow and Assembly 2 Profile 3 Synchronous HandlerGroup Portal DB Start() 1 Homepage Handler 5 Cache Start() Cache prefetch Marketdata Wait(timout) Cache fetch Research 4 Image Handler Telebanking Asynchronous HandlerGroup Quotes 6 News Telebanking Servlet Thread 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 = userObject.getUserType(); If (type == LOWVALUE) backgroundColor=“yellow”; If (type == HIGHVALUE) backgroundColor=“purple”; type = userObject.getUserType(); If (type == LOWVALUE) access=NO; If (type == HIGHVALUE) access=YES; If the customer segmentation changes all this code needs to change!
Good (dynamic) Segmentation GUI: select background Profile Rule Engine backGround= userProfile.getBGColor (); If CustomerIncome >100K Background is purple BC Access Control: select service If CustomerIncome >100K ServiceX is OK AC access= userProfile.isUserAllowed(“ AccessTokenForServiceX”); 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 Profile server Service Access Aggre- Gation Inter- Pret. Integ- ration Ext. Service Request DA tells portal how to map/locate IA defined fragments (separation of concerns) Ext. Service Portal DB Back-ends
Service Descriptions 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 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
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 real-time) No, but personal selections Homepage Yes (message numbers, quotes) Question: how often? Yes (greeting etc.) Information Architecture – Lifecycle Aspects 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 • Result Objects/Value Objects • Invalidation mechanism • Addressing of fragments • Cache Subsystem QOS (e.g. automatic re-load) • Lifecycle • Fragmentation • QOS (e.g. Realtime quotes) Caching possibilities The DB is usually THE bottleneck in a large-scale portal Throughput/ Performance Problem analysis
Cache 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
Con: customize.. Quotes: UBS 500, ARBA 100 Common: 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!
Fragment 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)