four approaches to integrate aem with external systems by jan kuzniak

37
Integrating AEM with External Systems Review of all four possible scenarios Jan Kuźniak

Upload: aem-hub-2014

Post on 25-May-2015

918 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Four approaches to integrate aem with external systems by Jan Kuzniak

Integrating AEMwith External SystemsReview of all

fourpossible scenarios Jan Kuźniak

Page 2: Four approaches to integrate aem with external systems by Jan Kuzniak

Agenda

• Why would you want to do that?• Who takes a beating?• Designers’ heaven• External content’s lifecycle and caching• Let’s fuel apps!• Go Home IE6!• Performance heaven• Summary

Page 3: Four approaches to integrate aem with external systems by Jan Kuzniak

Why would you want to do that?

Page 4: Four approaches to integrate aem with external systems by Jan Kuzniak

Why?

• Dedicated systems• eSales• Media publishing

• Transactional systems• Banking• Insurance

• Legacy systems

Page 5: Four approaches to integrate aem with external systems by Jan Kuzniak

Why?

• 3rd party content on AEM page• Prices• Stock• Geo targeting

• AEM content on third party apps• Transactional sites• Mobile apps

• Integrating various content sources

Page 6: Four approaches to integrate aem with external systems by Jan Kuzniak

Who takesa beating?

Page 7: Four approaches to integrate aem with external systems by Jan Kuzniak
Page 8: Four approaches to integrate aem with external systems by Jan Kuzniak

DesignersHeaven

Page 9: Four approaches to integrate aem with external systems by Jan Kuzniak
Page 10: Four approaches to integrate aem with external systems by Jan Kuzniak

Let’s hit AEM – Pros

• Simple• Natural to AEM (per design)• Great authoring experience• Quick optimisation / short time to market• Easy to integrate with AEM features

Page 11: Four approaches to integrate aem with external systems by Jan Kuzniak

Let’s hit AEM – Cons

• Performance challenges• Caching challenges

• Security challenges• Shared authorisation• Security audits

Page 12: Four approaches to integrate aem with external systems by Jan Kuzniak

Use Case – Internet Banking

• Small, throttled traffic• External authorisation• Sealed inside secure network• Back-end being replaced during the project• Agile customer

• Focus on short time to market• Need to release early and optimise

Page 13: Four approaches to integrate aem with external systems by Jan Kuzniak

Use Case – Store

• „Static” site about products• Only prices and stock is dynamic

• No authorisation• No customer-related data in CMS• Product data cacheable in AEM

• Short time to live

• Dispatcher invalidation on external content changes

Page 14: Four approaches to integrate aem with external systems by Jan Kuzniak

External Content’sLifecycle & Caching

Page 15: Four approaches to integrate aem with external systems by Jan Kuzniak

Content Added / Removed

• Can 3rd party notify AEM?• If not - comparing cached data

• Does it require approval?• Workflows for creation, publication, deactivation

• Will that impact author performance?

Page 16: Four approaches to integrate aem with external systems by Jan Kuzniak

Content Changed

• Can 3rd party send invalidation to dispatcher?• If not - comparing cached data

• How long can the content be outdated?• Invalidate one page or whole site?• How often can that happen?• Will cache be effective at all?

Page 17: Four approaches to integrate aem with external systems by Jan Kuzniak

Let’s fuel apps!

Page 18: Four approaches to integrate aem with external systems by Jan Kuzniak
Page 19: Four approaches to integrate aem with external systems by Jan Kuzniak

3rd Party Assembly – Pros

• Performance• No user management in CMS

• Users belong to third party system (eSales)• No authorisation in CMS

• Natural for systems that provide own flow• Natural for mobile apps

Page 20: Four approaches to integrate aem with external systems by Jan Kuzniak

3rd Party Assembly – Cons

• How to deliver authoring via 3rd party?• Switching between author and publish• Parallel stack and synchronisation• Mocking live data

• Double rendering• HTML for author, PHP for publish

• Where are my static assets (css/js)?• General entanglement

Page 21: Four approaches to integrate aem with external systems by Jan Kuzniak

Use Case – eSales checkout

• Existing eSales backend handles checkout• Non-cacheable, session-bound data• Checkout form not changing often

• When it changes – it’s a code release anyway

• AEM managing „furniture” around forms• One UX team driving all designs

Page 22: Four approaches to integrate aem with external systems by Jan Kuzniak

Go HomeIE6!

Page 23: Four approaches to integrate aem with external systems by Jan Kuzniak
Page 24: Four approaches to integrate aem with external systems by Jan Kuzniak
Page 25: Four approaches to integrate aem with external systems by Jan Kuzniak

Browser Assembly – Pros

• Performance• Easy to cache - AEM serves static content• 3rd party serves only data

• AEM implementation owns look and feel• 3rd party stays unaware of AEM• Simple to implement

Page 26: Four approaches to integrate aem with external systems by Jan Kuzniak

Browser Assembly – Cons

• Exposing back-end “magic”• Delay in serving content• Content grabbing• Old / Exotic browser challenges• Extra requests (mobile)

Page 27: Four approaches to integrate aem with external systems by Jan Kuzniak

Use Case – Forms + Web Service• Static form served by AEM

• JS POSTs to web service• JS displays response (or redirects)

Page 28: Four approaches to integrate aem with external systems by Jan Kuzniak

Use Case – Share Price Ticker

• Visually small area on home page• Non-critical – loading could be delayed

• Could never be outdated (legal reasons)• Short time-to-live• Home page was heavy and had to be cached

Page 29: Four approaches to integrate aem with external systems by Jan Kuzniak

PerformanceHeaven

Page 30: Four approaches to integrate aem with external systems by Jan Kuzniak
Page 31: Four approaches to integrate aem with external systems by Jan Kuzniak
Page 32: Four approaches to integrate aem with external systems by Jan Kuzniak

Edge Assembly – Pros

• Performance• Caching as with JavaScript approach• 3rd party renders only snippets of HTML

• Scalability• Lightweight servers take the hit

• Safer than Browser assembly• API exposed only to the edge

• No iFrames

Page 33: Four approaches to integrate aem with external systems by Jan Kuzniak

Edge Assembly – Cons

• Requires the edge to render at all• Edge for all DTAP environments?• Mocking possible but challenging

• Limited application• Feasible for visual blocks, not for values (prices)

Page 34: Four approaches to integrate aem with external systems by Jan Kuzniak

Use Case – eSales User Profile

• Personalised content served outside AEM• Login / logout• My profile / history

• Brochureware managed by AEM• Some pages served directly from eSales app

• See: checkout

Page 35: Four approaches to integrate aem with external systems by Jan Kuzniak

Summary

Page 36: Four approaches to integrate aem with external systems by Jan Kuzniak

Summary

• No right or wrong – all depends on use case• Choose who takes a hit based on:

• Performance (server and client side)• Availability (DoS, TTL)• Content lifecycle

• Don’t re-invent the wheel• Remember “Sling Dynamic Includes” from adaptTo()?• Fight duplication – reuse (and include)• ... But avoid entanglement

Page 37: Four approaches to integrate aem with external systems by Jan Kuzniak