1 / 20

Advanced Enterprise Portal (AEP)

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)

Download Presentation

Advanced Enterprise Portal (AEP)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Advanced Enterprise Portal (AEP) Architecture and Problems (short version) Walter Kriha

  2. 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)

  3. 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

  4. 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

  5. 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

  6. Simple Model2 Architecture (MVC)

  7. 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

  8. 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

  9. Who sees what? Customer Segmentation High Value Medium Value Low Value Services Customers Access Rights Business defines the segmentation (at least initially)

  10. 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!

  11. 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

  12. Portal Problem Analysis • Reliability: Distribution Architecture • Performance: Information Architecture We won’t talk about: GUI design, Information Model, Implementation, Infrastructure, Maintenance, Management

  13. 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

  14. Service Descriptions Getting this information requires tracking backend services and writing test programs. The results determine what can be combined on a personalized homepage.

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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!

  20. 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)

More Related