SlideShare a Scribd company logo
1 of 37
Download to read offline
In	
  feedback,	
  please	
  refer	
  to	
  this	
  *mestamp.	
  20091008-­‐11:50am	
  
                              •	
  
Integra*on	
  of	
  complex	
  external	
  applica*ons	
  
    with	
  mul*-­‐site	
  CMS	
  implementa*ons	
  
            Ben Peter, Day Ignite Zürich, October 2009
Agenda
  Setting   the scene
  Application   Integration
     Approaches    and Selection Criteria
                                             2
     Web    Clipping in detail
  Upstream    data in the content domain
  Team
Setting the Scene   3
What applications?

 CQ    is content centric,
 and great for implementing resource oriented applications as
 well

                                                                4
 But   what do you do about applications like….
   “Phone    and Plan Advisor” on a telco website
   “Meal    Planner” on a canned goods website
   “Book    a flight” on an airline’s website
   “Build   your own vehicle” on an automotive website
Challenges

 State

  Many   applications assume state, either by nature or because of
  underlying application architecture
  CQ   is designed to be stateless
                                                                      5
  Applications   that need to share state between them
  Managed   Content in Applications
  Upstream   Data in the middle of managed content
So, what do we do to…
     Have   a “Build your own vehicle” on our CQ enabled
     website?
     Be   able to show a flight schedule on a content page   6

     Be   able to manage the text on our application’s
     “Next step” button from within CQ?
Application Integration


Approaches and                7

Criteria
Evaluation Criteria
  Integration     with CQ5 content model
 Applications are embedded in content pages that provide layout, navigation and surrounding content.
    Consider: placement and arrangement, editorial control

  User      Experience / Look and Feel
 Consider: uniformity of the UI and user experience, reuse of global resources (e.g. CSS)

  Links     and Navigation
 CQ5 and Applications each have their own URL patterns / addressing schemes.
    Consider: links from apps to content, links into apps (including “deep links”, initiating state), links from the application to
    itself                                                                                                                            8

  Page      Flows and State Transition
 Applications need the capability to implement their own page flows / state models without changing the CQ page

  Shared      Model Access
 Applications and CQ need to share context through a model (e.g. brand, region, market, language). How well can that be
    achieved?

  Service     Access
 How well can required services (SOAP, REST, others) be accessed?

  Delineation
 Can applications be developed, tested, and operated independently of the WCMS implementation?

  Required      skill sets / complexity
 How long does it take, and are the required resources available?
Integration Approaches Considered

A.    UI-Level (Pop-Up, iframe)

B.    JSR-286

C.    AJAX

D.    Directly in CQ5
                                    9

E.    Webclipping
Approaches: UI-Level (Pop-Up, iframe)




                                                               CQ

                                                                         10




                                                            App Server




Confidential and Proprietary Information of MRM Worldwide
Approaches: UI-Level (Pop-Up, iframe)


✦  Immediately   rejected
 ✦  Unsatisfactory   user experience
 ✦  No   formal approach for shared model possible
 ✦  Search   engine optimization malus
                                                              11




                                                      CQ




                                                      App
                                                     Server
Approaches: JSR-286



                        CQ



                                12




                      Portlet
Approaches: JSR-286

✦  The   Application’s UI is created as a Portlet (Portlet-API 2.0)
✦  The   controller in this case is the portlet itself and individual views are usually JSPs
✦  Requests   are routed to the controller by CQ. The controller wraps results in request beans
  and dispatches to the appropriate view.
✦  State   transitions are propagated through HTTP Submits and require a page reload.
                                                                                                         13
✦  allows   linking back to the same page
  (render parameter + resource URLs)
✦  No   support for complex state models.
✦  Access   to services is handled through OSGi integration.

                                                                                                   CQ



                                                                                                  Port
                                                                                                   let
Approaches: AJAX




                                                  CQ
                   UI and App Content Assets                14




               Application Logic & Data



                                               App Server
Approaches: AJAX


✦  The   application UI is created as a combination of Javascript controls. These can be
  intermixed with content.
✦  State   transitions of applications are implemented as asynchronous XmlHttpRequests. No
  page reload is required for state transitions in applications.
✦  Model   access and service access are similar in this approach. Both use HTTP Requests for                           15

  Resource URLs that live in the same web context but potentially different web
  applications.
✦  No   separation of views and controllers.
✦  Services   need to be publicly exposed
  (browser needs to access the service)
                                                                                   UI and App Content Assets    CQ


                                                                                   Application Logic & Data

                                                                                                                App
                                                                                                               Server
Approaches: Directly in CQ5


                              CQ




                                               User Funnel API




                                                                 App Code
                                                                            16

                                   Component
                                    Template
                                      Code
Approaches: Directly in CQ5


✦  UI   is composed of several page components.
✦  One    component acts as the front controller (state controller).
✦  Other   components represent views for each application state.
✦  Model    access:
 ✦  Either   apps deduct context from JCR context                                                                         17

 ✦  Or    requires session in CQ
✦  Front   controller can augment the model by creating request-level beans shared between
  components of a single application.
✦  The    CQ5 OSGi model is used for access                                            CQ




                                                                                             User Funnel API
  to services.




                                                                                                               App Code
✦  This   design is comparable to the Model1
  Architecture for Servlet and JSP applications.
Approaches: Webclipping




                             CQ

                                       18




                          App Server
Approaches: Webclipping


✦  Web    applications are created using traditional technologies (like Struts or other MVC
  frameworks).
✦  A   CQ5 component includes the application through a subrequest.
✦  URLs    for submits and other links need to be redirected to the enclosing content page, and
  any parameters need to be maintained in this process.                                           19

✦  State   transitions are communicated through page reloads (but AJAX is still possible).
✦  Embedded     applications need to follow some restrictions to be easily embeddable.
✦  Most    readily ingtegrateable are applications that deliver XHTML and are formatted through
  CSS alone.
Evaluation


✦  The   portlet solution and direct CQ integration share the same characteristics in the
  evaluation criteria.
✦  Access   to the model is available in all approaches. Level of complexity for model access is
  similar.
✦  Access   to services also is similar. Ideally, services should be accessed through an adapter.   20

  Architecturally it is not significant whether that is achieved through OSGi, a resource
  servlet or directly.
✦  The   AJAX approach will probably offer the best user experience.
✦  Direct   CQ5 integration requires CQ5 knowledge in the application developers.
✦  Direct   CQ5 integration offers the best integration between content and applications.
✦  Complex    state models can only be handled appropriately through AJAX or external web
  applications (web clipping)
Evaluation: CQ5 integration vs Flow and State

CQ5 Integration:

•  JSR-286 can use Portlet
integration
•  AJAX through Embedded JS
•  CQ5 through Page Components
•  Clipping through HTTP subrequest

Page Flow, State transitions
                                                                                         21

•  JSR-286 and CQ5 direct restricted
to Model 1
•  AJAX can use application            CQ5 Integration
controller
•  Clipping can follow traditional
MVC patterns


    JSR-286
    AJAX
    CQ5 Direct
                                                         Page Flow & State Transitions
    Web
    Clipping
Evaluation: Look & Feel vs Links & Navigation

Look and Feel

•  All offer coherent look and feel
•  For JSR-286 and CQ5 direct, a
coherent look and feel is integral
to the model

Links and Navigation
                                                                             22
•  JSR-286 and CQ5 direct:
Programmatic
•  AJAX: Mixed Content + JS
•  Clipping: URL convention           Look and Feel




    JSR-286
    AJAX
    CQ5 Direct
                                                      Links and Navigation
    Web
    Clipping
Evaluation: Delineation vs Skill Requirements

Delineation:

•  JSR 286 offers standard API
•  AJAX requires controller in Frontend
•  No delineation with direct CQ5
integration
•  Physical delineation for Web Clipping

Skill Requirements:
                                                                              23
•  AJAX: Few experts that combine JEE
and AJAX skills
•  JSR-286: new standard, few experts
•  CQ5: CQ5 experts required
•  Web Clipping: Standard Approach
                                           Delineation




     JSR-286
     AJAX
     CQ5 Direct
                                                         Skill Requirements
     Web
     Clipping
Evaluation: Model Access vs Service Access

Model Access:

•  Uniformely through Beans
•  AJAX must use JS variables

Service Access:

•  OSGI-Adapter for JSR286 and CQ5
direct integration
                                                                      24
•  Resource Servlet + Adapter for
AJAX
•  Direct access or Adapter for Web
Clipping                              Model Access




    JSR-286
    AJAX
    CQ5 Direct
                                                     Service Access
    Web
    Clipping
Application Integration


Web Clipping in Detail    25
Webclipping in detail

  Stand-Alone   Applications!
    Addressing   resources: bypass URL
                                          26
    Self-references:   base URL
  HTML,   CSS, Javascript
  Operational   Aspects
Web Clipping in Detail

  Implemented     as an OSGi Service + CQ5 Component

  Clipping   component makes HTTP sub request to Application that should be included

  Relevant    Content Context is transported through HTTP Headers

   Country,    Language (, Brand, Product Line, Affiliate Program, etc)

   =>   Multisite capable!                                                               27


  Clipping   Component passes prefix-URL as a header

   Application   prepends this prefix to each link generated

   =>   Application can run stand alone + no rewriting in clipping component

   (Clipping   Component can optionally include only the HTML Body)

  Scheme     defined for GET-Parameters that the application passes to itself

   =>   Clipping component needs to extract application parameters and include them in
   the sub request
Webclipping: Resources and References

How does an application reference its own resources, like images and other assets?


    This should not go through the clipping component (overhead for subrequest)
    Possible solution is a “bypass URL” configured as a reverse proxy on the webserver
     that directly points to the application
                                                                                          28
Webclipping: HTML, CSS, Javascript
  Need   to make sure HTML and CSS for surrounding content are aligned
    Our   approach:
      define   HTML for overall page up-front, irrespective of whether it’s application or
      content
      CMS   team uses surrounding HTML to build templates and components
      Application   team uses HTML from application parts and uses surrounding HTML as       29

      placeholder
      CSS   is globally defined
Webclipping: Operational Aspects



                Publish

                 Reverse Proxy (bypass)         30




   Webserver
                                          JEE




                 Author
Webclipping: Operational Aspects

     Publish and Author both use the same JEE Server
     JEE Server should be physically independent from Publish and Author
          (stability, scalability) Publish
   Webclipping can leverage Proxy between CQ and JEE application
                                  Reverse Proxy (bypass)                    31
  


      Webserver
                                                                JEE




                                  Author
Data Integration


  Upstream Data in the   32

  Content Domain
Upstream Data in Content

How do we include application data in content pages where required?


Scenario: a flight booking application is available and integrated into an airline website
  as described above. Flight schedules can be extracted through the application’s API
  (Web Service, whatever).
  There’s an “Airports” section on the website with all the airports that the airline’s      33

  flights start from. Next to general information, floor plans, etc, a flight schedule is
  shown for each airport.


Challenge: how can we avoid maintaining the flight schedules as content when a
  backend system already has that information available?
Upstream Data: Approaches Considered

  CQ   Component that extracts the information from the backend system on publication.
    Pros:   Easy, straightforward
    Cons:   Consistency – flight schedules can only be updated if the page can be
        published
  View   of the web-clipped application
   Pros:   Existing mechanism, just another view in the JEE application                     34

   Cons:   Performance – although data changes infrequently, a hit is incurred on the JEE
   application for each view
  Make   data available as Sling resources
   This is a variation of the CQ component, but with a different data access model
   Same Cons: requires page publish to show new data on flight schedule


 hang on….
Upstream Data: Gold Approach

  New    data in backend application triggers deployment process
  All   views required for the flight schedules are pre-rendered at this point
     HTML    Fragments
     Deployed    in JEE flight booking application
  CQ    Component for Flight Schedule writes Server Side Include that points to the HTML
  Fragment                                                                                  35

  HTML    Fragment is included on web server level through SSI
   Reverse    Proxy with Cache for these fragments on Webserver, Expiry 5 seconds
   (Don’t    let Tomcat serve 100s of requests per second)


  Variation:   Prerender JSON, not HTML.
   Does    not require SSIs if you don’t like them, but
   Creates    a latency before the data is shown, as the browser needs to render it
Team


 Benjamin   Peter                       Jeff   Gilliard

 Senior IT Consultant, MRM Worldwide     Andy    Jacobs
                                         Frank   Ladner
                                         Karsten   Lauth
 Uwe   Wardenbach
                                         Heiko   Maass        36
 Beratender IT Architekt
                                         John   Mozayani
                                         Kai   Müller
 Robert   Prech                         Timo    Münkenwarf
 Senior Software Engineer, namics
Thank you   37

More Related Content

Similar to Integration of complex external applications with multi-site CMS implementations: MRM

Single Page Applications in SharePoint with Angular
Single Page Applications in SharePoint with AngularSingle Page Applications in SharePoint with Angular
Single Page Applications in SharePoint with AngularSparkhound Inc.
 
5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIsWSO2
 
Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6Knoldus Inc.
 
Modern webtechnologies
Modern webtechnologiesModern webtechnologies
Modern webtechnologiesBesjan Xhika
 
Angular js
Angular jsAngular js
Angular jsymtech
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfLuca Mattia Ferrari
 
Nginx Conference 2016 - Learnings and State of the Industry
Nginx Conference 2016 - Learnings and State of the IndustryNginx Conference 2016 - Learnings and State of the Industry
Nginx Conference 2016 - Learnings and State of the IndustryBenjamin Scholler
 
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage [WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage WSO2
 
apidays LIVE Australia - Data with a Mission by Matt McLarty
apidays LIVE Australia -  Data with a Mission by Matt McLarty apidays LIVE Australia -  Data with a Mission by Matt McLarty
apidays LIVE Australia - Data with a Mission by Matt McLarty apidays
 
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...apidays
 
Angular from Zero to Mastery - Training (Intermediate)
Angular from Zero to Mastery - Training (Intermediate)Angular from Zero to Mastery - Training (Intermediate)
Angular from Zero to Mastery - Training (Intermediate)Smail LOUNES
 
apidays LIVE New York 2021 - Managing the usage of Asynchronous APIs: What do...
apidays LIVE New York 2021 - Managing the usage of Asynchronous APIs: What do...apidays LIVE New York 2021 - Managing the usage of Asynchronous APIs: What do...
apidays LIVE New York 2021 - Managing the usage of Asynchronous APIs: What do...apidays
 
[APIdays NY] Managing the usage of Asynchronous APIs: What does it take?
[APIdays NY] Managing the usage of Asynchronous APIs: What does it take?[APIdays NY] Managing the usage of Asynchronous APIs: What does it take?
[APIdays NY] Managing the usage of Asynchronous APIs: What does it take?WSO2
 
Spring vs. asp.net mvc
Spring vs. asp.net mvcSpring vs. asp.net mvc
Spring vs. asp.net mvcUmar Ali
 
Kubernetes: Dive into the Future of Infrastructure
Kubernetes: Dive into the Future of InfrastructureKubernetes: Dive into the Future of Infrastructure
Kubernetes: Dive into the Future of InfrastructureGlobalLogic Ukraine
 
Backend for Frontend in Microservices
Backend for Frontend in MicroservicesBackend for Frontend in Microservices
Backend for Frontend in MicroservicesIRJET Journal
 
Open Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshOpen Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshCloudOps2005
 

Similar to Integration of complex external applications with multi-site CMS implementations: MRM (20)

Single Page Applications in SharePoint with Angular
Single Page Applications in SharePoint with AngularSingle Page Applications in SharePoint with Angular
Single Page Applications in SharePoint with Angular
 
5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs5 Pillars of Building Enterprise0grade APIs
5 Pillars of Building Enterprise0grade APIs
 
Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6
 
Microservices
MicroservicesMicroservices
Microservices
 
Angularjs basic part01
Angularjs basic part01Angularjs basic part01
Angularjs basic part01
 
Modern webtechnologies
Modern webtechnologiesModern webtechnologies
Modern webtechnologies
 
Angular js
Angular jsAngular js
Angular js
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdf
 
Nginx Conference 2016 - Learnings and State of the Industry
Nginx Conference 2016 - Learnings and State of the IndustryNginx Conference 2016 - Learnings and State of the Industry
Nginx Conference 2016 - Learnings and State of the Industry
 
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage [WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
 
apidays LIVE Australia - Data with a Mission by Matt McLarty
apidays LIVE Australia -  Data with a Mission by Matt McLarty apidays LIVE Australia -  Data with a Mission by Matt McLarty
apidays LIVE Australia - Data with a Mission by Matt McLarty
 
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...
 
Angular from Zero to Mastery - Training (Intermediate)
Angular from Zero to Mastery - Training (Intermediate)Angular from Zero to Mastery - Training (Intermediate)
Angular from Zero to Mastery - Training (Intermediate)
 
apidays LIVE New York 2021 - Managing the usage of Asynchronous APIs: What do...
apidays LIVE New York 2021 - Managing the usage of Asynchronous APIs: What do...apidays LIVE New York 2021 - Managing the usage of Asynchronous APIs: What do...
apidays LIVE New York 2021 - Managing the usage of Asynchronous APIs: What do...
 
[APIdays NY] Managing the usage of Asynchronous APIs: What does it take?
[APIdays NY] Managing the usage of Asynchronous APIs: What does it take?[APIdays NY] Managing the usage of Asynchronous APIs: What does it take?
[APIdays NY] Managing the usage of Asynchronous APIs: What does it take?
 
Spring vs. asp.net mvc
Spring vs. asp.net mvcSpring vs. asp.net mvc
Spring vs. asp.net mvc
 
Kubernetes: Dive into the Future of Infrastructure
Kubernetes: Dive into the Future of InfrastructureKubernetes: Dive into the Future of Infrastructure
Kubernetes: Dive into the Future of Infrastructure
 
Backend for Frontend in Microservices
Backend for Frontend in MicroservicesBackend for Frontend in Microservices
Backend for Frontend in Microservices
 
Open Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshOpen Source Networking Days- Service Mesh
Open Source Networking Days- Service Mesh
 
AngularJS is awesome
AngularJS is awesomeAngularJS is awesome
AngularJS is awesome
 

More from Day Software

AND: Using CRX technology to build an enterprise-scale content management and...
AND: Using CRX technology to build an enterprise-scale content management and...AND: Using CRX technology to build an enterprise-scale content management and...
AND: Using CRX technology to build an enterprise-scale content management and...Day Software
 
IlSole24Ore: Business Information and CQ5, the missing link
IlSole24Ore: Business Information and CQ5, the missing linkIlSole24Ore: Business Information and CQ5, the missing link
IlSole24Ore: Business Information and CQ5, the missing linkDay Software
 
European Southern Observatory: Implementing Day CQ5 at ESO
European Southern Observatory: Implementing Day CQ5 at ESOEuropean Southern Observatory: Implementing Day CQ5 at ESO
European Southern Observatory: Implementing Day CQ5 at ESODay Software
 
Adobe Omniture: Real-Time Marketing Optimization
Adobe Omniture: Real-Time Marketing OptimizationAdobe Omniture: Real-Time Marketing Optimization
Adobe Omniture: Real-Time Marketing OptimizationDay Software
 
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media WorldDay Software
 
Namics: From Conten-Centric to User-Centric
Namics: From Conten-Centric to User-CentricNamics: From Conten-Centric to User-Centric
Namics: From Conten-Centric to User-CentricDay Software
 
Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5Day Software
 
Day: Ignite iPad App - The making of...
Day: Ignite iPad App - The making of...Day: Ignite iPad App - The making of...
Day: Ignite iPad App - The making of...Day Software
 
Day: Web Development Goes Social
Day: Web Development Goes SocialDay: Web Development Goes Social
Day: Web Development Goes SocialDay Software
 
MTV: CRX As A Solution For Complex Content Sharing and Distribution Needs
MTV: CRX As A Solution For Complex Content Sharing and Distribution NeedsMTV: CRX As A Solution For Complex Content Sharing and Distribution Needs
MTV: CRX As A Solution For Complex Content Sharing and Distribution NeedsDay Software
 
Hyatt Hotels: A Vision for E-Commerce and Online Travel Innovation
Hyatt Hotels: A Vision for E-Commerce and Online Travel InnovationHyatt Hotels: A Vision for E-Commerce and Online Travel Innovation
Hyatt Hotels: A Vision for E-Commerce and Online Travel InnovationDay Software
 
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media WorldDay Software
 
Day: What's New in CQ5 - Sneak-Peek into CQ 5.4
Day: What's New in CQ5 - Sneak-Peek into CQ 5.4Day: What's New in CQ5 - Sneak-Peek into CQ 5.4
Day: What's New in CQ5 - Sneak-Peek into CQ 5.4Day Software
 
SapientNitro: Multi-channel and the Convergence of Marketing, Commerce & Cust...
SapientNitro: Multi-channel and the Convergence of Marketing, Commerce & Cust...SapientNitro: Multi-channel and the Convergence of Marketing, Commerce & Cust...
SapientNitro: Multi-channel and the Convergence of Marketing, Commerce & Cust...Day Software
 
Ignite iPad App: The Making Of....
Ignite iPad App: The Making Of.... Ignite iPad App: The Making Of....
Ignite iPad App: The Making Of.... Day Software
 
Translations.com: Managing Global Content - Day CQ5 and GlobalLink™
Translations.com: Managing Global Content - Day CQ5 and GlobalLink™Translations.com: Managing Global Content - Day CQ5 and GlobalLink™
Translations.com: Managing Global Content - Day CQ5 and GlobalLink™Day Software
 
Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5Day Software
 
Adobe: Real-time Marketing Optimization
Adobe: Real-time Marketing OptimizationAdobe: Real-time Marketing Optimization
Adobe: Real-time Marketing OptimizationDay Software
 
Adobe: Intrapreneurs and the Digital Customer Experience
Adobe: Intrapreneurs and the Digital Customer ExperienceAdobe: Intrapreneurs and the Digital Customer Experience
Adobe: Intrapreneurs and the Digital Customer ExperienceDay Software
 

More from Day Software (20)

Investec
InvestecInvestec
Investec
 
AND: Using CRX technology to build an enterprise-scale content management and...
AND: Using CRX technology to build an enterprise-scale content management and...AND: Using CRX technology to build an enterprise-scale content management and...
AND: Using CRX technology to build an enterprise-scale content management and...
 
IlSole24Ore: Business Information and CQ5, the missing link
IlSole24Ore: Business Information and CQ5, the missing linkIlSole24Ore: Business Information and CQ5, the missing link
IlSole24Ore: Business Information and CQ5, the missing link
 
European Southern Observatory: Implementing Day CQ5 at ESO
European Southern Observatory: Implementing Day CQ5 at ESOEuropean Southern Observatory: Implementing Day CQ5 at ESO
European Southern Observatory: Implementing Day CQ5 at ESO
 
Adobe Omniture: Real-Time Marketing Optimization
Adobe Omniture: Real-Time Marketing OptimizationAdobe Omniture: Real-Time Marketing Optimization
Adobe Omniture: Real-Time Marketing Optimization
 
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
 
Namics: From Conten-Centric to User-Centric
Namics: From Conten-Centric to User-CentricNamics: From Conten-Centric to User-Centric
Namics: From Conten-Centric to User-Centric
 
Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5
 
Day: Ignite iPad App - The making of...
Day: Ignite iPad App - The making of...Day: Ignite iPad App - The making of...
Day: Ignite iPad App - The making of...
 
Day: Web Development Goes Social
Day: Web Development Goes SocialDay: Web Development Goes Social
Day: Web Development Goes Social
 
MTV: CRX As A Solution For Complex Content Sharing and Distribution Needs
MTV: CRX As A Solution For Complex Content Sharing and Distribution NeedsMTV: CRX As A Solution For Complex Content Sharing and Distribution Needs
MTV: CRX As A Solution For Complex Content Sharing and Distribution Needs
 
Hyatt Hotels: A Vision for E-Commerce and Online Travel Innovation
Hyatt Hotels: A Vision for E-Commerce and Online Travel InnovationHyatt Hotels: A Vision for E-Commerce and Online Travel Innovation
Hyatt Hotels: A Vision for E-Commerce and Online Travel Innovation
 
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
 
Day: What's New in CQ5 - Sneak-Peek into CQ 5.4
Day: What's New in CQ5 - Sneak-Peek into CQ 5.4Day: What's New in CQ5 - Sneak-Peek into CQ 5.4
Day: What's New in CQ5 - Sneak-Peek into CQ 5.4
 
SapientNitro: Multi-channel and the Convergence of Marketing, Commerce & Cust...
SapientNitro: Multi-channel and the Convergence of Marketing, Commerce & Cust...SapientNitro: Multi-channel and the Convergence of Marketing, Commerce & Cust...
SapientNitro: Multi-channel and the Convergence of Marketing, Commerce & Cust...
 
Ignite iPad App: The Making Of....
Ignite iPad App: The Making Of.... Ignite iPad App: The Making Of....
Ignite iPad App: The Making Of....
 
Translations.com: Managing Global Content - Day CQ5 and GlobalLink™
Translations.com: Managing Global Content - Day CQ5 and GlobalLink™Translations.com: Managing Global Content - Day CQ5 and GlobalLink™
Translations.com: Managing Global Content - Day CQ5 and GlobalLink™
 
Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5
 
Adobe: Real-time Marketing Optimization
Adobe: Real-time Marketing OptimizationAdobe: Real-time Marketing Optimization
Adobe: Real-time Marketing Optimization
 
Adobe: Intrapreneurs and the Digital Customer Experience
Adobe: Intrapreneurs and the Digital Customer ExperienceAdobe: Intrapreneurs and the Digital Customer Experience
Adobe: Intrapreneurs and the Digital Customer Experience
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Integration of complex external applications with multi-site CMS implementations: MRM

  • 1. In  feedback,  please  refer  to  this  *mestamp.  20091008-­‐11:50am   •   Integra*on  of  complex  external  applica*ons   with  mul*-­‐site  CMS  implementa*ons   Ben Peter, Day Ignite Zürich, October 2009
  • 2. Agenda   Setting the scene   Application Integration   Approaches and Selection Criteria 2   Web Clipping in detail   Upstream data in the content domain   Team
  • 4. What applications?  CQ is content centric, and great for implementing resource oriented applications as well 4  But what do you do about applications like….  “Phone and Plan Advisor” on a telco website  “Meal Planner” on a canned goods website  “Book a flight” on an airline’s website  “Build your own vehicle” on an automotive website
  • 5. Challenges  State  Many applications assume state, either by nature or because of underlying application architecture  CQ is designed to be stateless 5  Applications that need to share state between them   Managed Content in Applications   Upstream Data in the middle of managed content
  • 6. So, what do we do to…   Have a “Build your own vehicle” on our CQ enabled website?   Be able to show a flight schedule on a content page 6   Be able to manage the text on our application’s “Next step” button from within CQ?
  • 8. Evaluation Criteria   Integration with CQ5 content model Applications are embedded in content pages that provide layout, navigation and surrounding content. Consider: placement and arrangement, editorial control   User Experience / Look and Feel Consider: uniformity of the UI and user experience, reuse of global resources (e.g. CSS)   Links and Navigation CQ5 and Applications each have their own URL patterns / addressing schemes. Consider: links from apps to content, links into apps (including “deep links”, initiating state), links from the application to itself 8   Page Flows and State Transition Applications need the capability to implement their own page flows / state models without changing the CQ page   Shared Model Access Applications and CQ need to share context through a model (e.g. brand, region, market, language). How well can that be achieved?   Service Access How well can required services (SOAP, REST, others) be accessed?   Delineation Can applications be developed, tested, and operated independently of the WCMS implementation?   Required skill sets / complexity How long does it take, and are the required resources available?
  • 9. Integration Approaches Considered A.  UI-Level (Pop-Up, iframe) B.  JSR-286 C.  AJAX D.  Directly in CQ5 9 E.  Webclipping
  • 10. Approaches: UI-Level (Pop-Up, iframe) CQ 10 App Server Confidential and Proprietary Information of MRM Worldwide
  • 11. Approaches: UI-Level (Pop-Up, iframe) ✦  Immediately rejected ✦  Unsatisfactory user experience ✦  No formal approach for shared model possible ✦  Search engine optimization malus 11 CQ App Server
  • 12. Approaches: JSR-286 CQ 12 Portlet
  • 13. Approaches: JSR-286 ✦  The Application’s UI is created as a Portlet (Portlet-API 2.0) ✦  The controller in this case is the portlet itself and individual views are usually JSPs ✦  Requests are routed to the controller by CQ. The controller wraps results in request beans and dispatches to the appropriate view. ✦  State transitions are propagated through HTTP Submits and require a page reload. 13 ✦  allows linking back to the same page (render parameter + resource URLs) ✦  No support for complex state models. ✦  Access to services is handled through OSGi integration. CQ Port let
  • 14. Approaches: AJAX CQ UI and App Content Assets 14 Application Logic & Data App Server
  • 15. Approaches: AJAX ✦  The application UI is created as a combination of Javascript controls. These can be intermixed with content. ✦  State transitions of applications are implemented as asynchronous XmlHttpRequests. No page reload is required for state transitions in applications. ✦  Model access and service access are similar in this approach. Both use HTTP Requests for 15 Resource URLs that live in the same web context but potentially different web applications. ✦  No separation of views and controllers. ✦  Services need to be publicly exposed (browser needs to access the service) UI and App Content Assets CQ Application Logic & Data App Server
  • 16. Approaches: Directly in CQ5 CQ User Funnel API App Code 16 Component Template Code
  • 17. Approaches: Directly in CQ5 ✦  UI is composed of several page components. ✦  One component acts as the front controller (state controller). ✦  Other components represent views for each application state. ✦  Model access: ✦  Either apps deduct context from JCR context 17 ✦  Or requires session in CQ ✦  Front controller can augment the model by creating request-level beans shared between components of a single application. ✦  The CQ5 OSGi model is used for access CQ User Funnel API to services. App Code ✦  This design is comparable to the Model1 Architecture for Servlet and JSP applications.
  • 18. Approaches: Webclipping CQ 18 App Server
  • 19. Approaches: Webclipping ✦  Web applications are created using traditional technologies (like Struts or other MVC frameworks). ✦  A CQ5 component includes the application through a subrequest. ✦  URLs for submits and other links need to be redirected to the enclosing content page, and any parameters need to be maintained in this process. 19 ✦  State transitions are communicated through page reloads (but AJAX is still possible). ✦  Embedded applications need to follow some restrictions to be easily embeddable. ✦  Most readily ingtegrateable are applications that deliver XHTML and are formatted through CSS alone.
  • 20. Evaluation ✦  The portlet solution and direct CQ integration share the same characteristics in the evaluation criteria. ✦  Access to the model is available in all approaches. Level of complexity for model access is similar. ✦  Access to services also is similar. Ideally, services should be accessed through an adapter. 20 Architecturally it is not significant whether that is achieved through OSGi, a resource servlet or directly. ✦  The AJAX approach will probably offer the best user experience. ✦  Direct CQ5 integration requires CQ5 knowledge in the application developers. ✦  Direct CQ5 integration offers the best integration between content and applications. ✦  Complex state models can only be handled appropriately through AJAX or external web applications (web clipping)
  • 21. Evaluation: CQ5 integration vs Flow and State CQ5 Integration: •  JSR-286 can use Portlet integration •  AJAX through Embedded JS •  CQ5 through Page Components •  Clipping through HTTP subrequest Page Flow, State transitions 21 •  JSR-286 and CQ5 direct restricted to Model 1 •  AJAX can use application CQ5 Integration controller •  Clipping can follow traditional MVC patterns JSR-286 AJAX CQ5 Direct Page Flow & State Transitions Web Clipping
  • 22. Evaluation: Look & Feel vs Links & Navigation Look and Feel •  All offer coherent look and feel •  For JSR-286 and CQ5 direct, a coherent look and feel is integral to the model Links and Navigation 22 •  JSR-286 and CQ5 direct: Programmatic •  AJAX: Mixed Content + JS •  Clipping: URL convention Look and Feel JSR-286 AJAX CQ5 Direct Links and Navigation Web Clipping
  • 23. Evaluation: Delineation vs Skill Requirements Delineation: •  JSR 286 offers standard API •  AJAX requires controller in Frontend •  No delineation with direct CQ5 integration •  Physical delineation for Web Clipping Skill Requirements: 23 •  AJAX: Few experts that combine JEE and AJAX skills •  JSR-286: new standard, few experts •  CQ5: CQ5 experts required •  Web Clipping: Standard Approach Delineation JSR-286 AJAX CQ5 Direct Skill Requirements Web Clipping
  • 24. Evaluation: Model Access vs Service Access Model Access: •  Uniformely through Beans •  AJAX must use JS variables Service Access: •  OSGI-Adapter for JSR286 and CQ5 direct integration 24 •  Resource Servlet + Adapter for AJAX •  Direct access or Adapter for Web Clipping Model Access JSR-286 AJAX CQ5 Direct Service Access Web Clipping
  • 26. Webclipping in detail   Stand-Alone Applications!   Addressing resources: bypass URL 26   Self-references: base URL   HTML, CSS, Javascript   Operational Aspects
  • 27. Web Clipping in Detail   Implemented as an OSGi Service + CQ5 Component   Clipping component makes HTTP sub request to Application that should be included   Relevant Content Context is transported through HTTP Headers   Country, Language (, Brand, Product Line, Affiliate Program, etc)   => Multisite capable! 27   Clipping Component passes prefix-URL as a header   Application prepends this prefix to each link generated   => Application can run stand alone + no rewriting in clipping component   (Clipping Component can optionally include only the HTML Body)   Scheme defined for GET-Parameters that the application passes to itself   => Clipping component needs to extract application parameters and include them in the sub request
  • 28. Webclipping: Resources and References How does an application reference its own resources, like images and other assets?   This should not go through the clipping component (overhead for subrequest)   Possible solution is a “bypass URL” configured as a reverse proxy on the webserver that directly points to the application 28
  • 29. Webclipping: HTML, CSS, Javascript   Need to make sure HTML and CSS for surrounding content are aligned   Our approach:   define HTML for overall page up-front, irrespective of whether it’s application or content   CMS team uses surrounding HTML to build templates and components   Application team uses HTML from application parts and uses surrounding HTML as 29 placeholder   CSS is globally defined
  • 30. Webclipping: Operational Aspects Publish Reverse Proxy (bypass) 30 Webserver JEE Author
  • 31. Webclipping: Operational Aspects   Publish and Author both use the same JEE Server   JEE Server should be physically independent from Publish and Author (stability, scalability) Publish   Webclipping can leverage Proxy between CQ and JEE application Reverse Proxy (bypass) 31   Webserver JEE Author
  • 32. Data Integration Upstream Data in the 32 Content Domain
  • 33. Upstream Data in Content How do we include application data in content pages where required? Scenario: a flight booking application is available and integrated into an airline website as described above. Flight schedules can be extracted through the application’s API (Web Service, whatever). There’s an “Airports” section on the website with all the airports that the airline’s 33 flights start from. Next to general information, floor plans, etc, a flight schedule is shown for each airport. Challenge: how can we avoid maintaining the flight schedules as content when a backend system already has that information available?
  • 34. Upstream Data: Approaches Considered   CQ Component that extracts the information from the backend system on publication.   Pros: Easy, straightforward   Cons: Consistency – flight schedules can only be updated if the page can be published   View of the web-clipped application   Pros: Existing mechanism, just another view in the JEE application 34   Cons: Performance – although data changes infrequently, a hit is incurred on the JEE application for each view   Make data available as Sling resources This is a variation of the CQ component, but with a different data access model Same Cons: requires page publish to show new data on flight schedule hang on….
  • 35. Upstream Data: Gold Approach   New data in backend application triggers deployment process   All views required for the flight schedules are pre-rendered at this point   HTML Fragments   Deployed in JEE flight booking application   CQ Component for Flight Schedule writes Server Side Include that points to the HTML Fragment 35   HTML Fragment is included on web server level through SSI   Reverse Proxy with Cache for these fragments on Webserver, Expiry 5 seconds   (Don’t let Tomcat serve 100s of requests per second)   Variation: Prerender JSON, not HTML.   Does not require SSIs if you don’t like them, but   Creates a latency before the data is shown, as the browser needs to render it
  • 36. Team  Benjamin Peter   Jeff Gilliard Senior IT Consultant, MRM Worldwide   Andy Jacobs   Frank Ladner   Karsten Lauth  Uwe Wardenbach   Heiko Maass 36 Beratender IT Architekt   John Mozayani   Kai Müller  Robert Prech   Timo Münkenwarf Senior Software Engineer, namics
  • 37. Thank you 37