SlideShare a Scribd company logo
1 of 41
Delivering Collaborative Applications with AIR and LiveCycle Data Services Alistair McLeod Xavier Agnetti
What we aim to cover in the next 45 minutes… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Collaborative Applications
What do we mean by Collaborative Applications?
BlazeDS and LiveCycle Data Services
BlazeDS Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],BlazeDS is the remoting and HTTP-based messaging technology which Adobe is contributing to the community under LGPL BlazeDS Data Management RPC Services Messaging Service Adapters Data Synchronization Off-line Applications Data Paging Web Service HTTP Service Remote Object Service Publish & Subscribe Collaboration Real Time Data Push Proxy Service Web-tier Compiler Portal Deployment RIA-PDF Generation LiveCycle ColdFusion Hibernate SQL JMS Java Custom
LiveCycle Data Services ES Overview LiveCycle Data Services is a set of Java EE components and APIs used to: ,[object Object],[object Object],[object Object],[object Object],[object Object],Service Adapters LiveCycle Data Services ES Data Management RPC Services Messaging Data Synchronization Off-line Applications Data Paging Web Service HTTP Service Remote Object Service Publish & Subscribe Collaboration Real Time Data Push Proxy Service Web-tier Compiler Portal Deployment RIA-PDF Generation LiveCycle ColdFusion Hibernate SQL JMS Java Custom
Feature Comparison Feature BlazeDS LiveCycle Data Services ES Java Remoting √ √ Web Proxy √ √ JMS Adapter √ √ AJAX Client Libraries √ √ Administrative Console √ √ Clustered Messaging √ √ Pub/Sub Messaging √ √ Web container-based messaging service (100’s of clients/CPU) √ √ Dedicated messaging service (1000’s of clients/CPU) √ Per-client Quality of Service √ Data Management Service √ Data Paging √ Flex-LiveCycle Integration √ RIA-to-PDF Generation √ Offline Data Synchronization (AIR) √ WSRP/Portal Integration √ SiteMinder Integration √
Application Demo
Application Features
Application Demonstration
Building a Collaborative Application ,[object Object],[object Object],[object Object]
Building a Collaborative Application ,[object Object],[object Object],[object Object]
Application Architecture
Application Structure Microphone Client Layer Adobe Integrated Runtime Adobe Cairngorm Alternativa 3D WiiMote Keyboard Application Layer FMS LCDS DMS Messaging Persistence Layer HSQL DB
Building a Collaborative Application ,[object Object],[object Object],[object Object]
Use of Adobe AIR
Use of LiveCycle Data Services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Service Adapters LiveCycle Data Services ES Data Management RPC Services Messaging Data Synchronization Off-line Applications Data Paging Web Service HTTP Service Remote Object Service Publish & Subscribe Collaboration Real Time Data Push Proxy Service Web-tier Compiler Portal Deployment RIA-PDF Generation LiveCycle ColdFusion Hibernate SQL JMS Java Custom
Use of Flash Media Server ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Displaying 3D model ,[object Object],[object Object],[object Object]
Using the Wii Remote as a Control Device ,[object Object],[object Object],[object Object]
Speech recognition on AIR ,[object Object],[object Object],[object Object]
Building a Collaborative Application ,[object Object],[object Object],[object Object]
Challenges in Building Collaborative Applications
Deep Dive into Application Code ,[object Object],[object Object],[object Object],[object Object]
Deep Dive into Application Code ,[object Object],[object Object],[object Object],[object Object]
What is a Presentation Model? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cairngorm and the Presentation Model Domain Layer Integration Tier View Layer Presentation Layer Arthur [email_address] Ford- ford@perfect.com Zaphod – zaphod@email.com Arthur – arthur@dent.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact Presentation Model + contacts : ContactDomain + addContact (name, email) CMD CMD ContactVO model.addContact (firstname, email) ContactVO ContactsDomain + contacts : List CMD Business Delegate ServiceLocator Cairngorm Event Service Service Service Service Service Service Service FrantController
Cairngorm and Presentation Models - Differences
Deep Dive into Application Code ,[object Object],[object Object],[object Object],[object Object]
Data Management Services (DMS) ,[object Object],[object Object],[object Object],[object Object]
Cairngorm and Data Management Services Domain Layer Integration Tier View Layer Presentation Layer model.addContact (firstname, email) Data Model + contacts : List + addItem( item ) Presentation Model + contacts : ContactDataModel + addContact (name, email) Data Model + contacts : List + addItem( item ) Presentation Model + contacts : ContactDataModel + addContact (name, email) Arthur [email_address] Ford- ford@perfect.com Zaphod – zaphod@email.com Arthur – arthur@dent.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact ServiceLocator Client DataServices Service Service Ford- ford@perfect.com Zaphod – zaphod@email.com Arthur – arthur@dent.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact ServiceLocator Client DataServices Service Service Remote DataServices Service Service Ford- ford@perfect.com Zaphod – zaphod@email.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact Arthur [email_address] Ford- ford@perfect.com Zaphod – zaphod@email.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact
Deep Dive into Application Code ,[object Object],[object Object],[object Object],[object Object]
How to deal with large dataset?
Deep Dive into Application Code ,[object Object],[object Object],[object Object],[object Object]
Message Broker ,[object Object],[object Object],[object Object],Local Producer Local Consumer Messaging Destination Listener / Producer Message Broker Listener Listener Listener
Miscellaneous tips ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Summary and Questions
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Any Questions Questions? (simple please)

More Related Content

What's hot

Ukfs Snr Dev Arch Forum Pres1 Jb
Ukfs Snr Dev Arch Forum Pres1 JbUkfs Snr Dev Arch Forum Pres1 Jb
Ukfs Snr Dev Arch Forum Pres1 Jb
AllyWick
 
Omar Nisar Projects
Omar Nisar ProjectsOmar Nisar Projects
Omar Nisar Projects
Omar Nisar
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web Applications
Microsoft ArcReady
 
Pro Dev Briefing Irvine Wesyppt23
Pro Dev Briefing Irvine Wesyppt23Pro Dev Briefing Irvine Wesyppt23
Pro Dev Briefing Irvine Wesyppt23
Wes Yanaga
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a Service
AM Publications
 

What's hot (20)

ad.ppt
ad.pptad.ppt
ad.ppt
 
Dot net training-navimumbai
Dot net training-navimumbaiDot net training-navimumbai
Dot net training-navimumbai
 
Symposium Cloud En Grid Computing Microsoft Online Strategy - 21-4-2009
Symposium Cloud En Grid Computing   Microsoft Online Strategy - 21-4-2009Symposium Cloud En Grid Computing   Microsoft Online Strategy - 21-4-2009
Symposium Cloud En Grid Computing Microsoft Online Strategy - 21-4-2009
 
Financial Services Component Library
Financial Services Component LibraryFinancial Services Component Library
Financial Services Component Library
 
Ukfs Snr Dev Arch Forum Pres1 Jb
Ukfs Snr Dev Arch Forum Pres1 JbUkfs Snr Dev Arch Forum Pres1 Jb
Ukfs Snr Dev Arch Forum Pres1 Jb
 
How to ‘embrace’ the cloud and become a hybrid organisation - Koen Van Oost
How to ‘embrace’ the cloud and become a hybrid organisation - Koen Van OostHow to ‘embrace’ the cloud and become a hybrid organisation - Koen Van Oost
How to ‘embrace’ the cloud and become a hybrid organisation - Koen Van Oost
 
Azure Services Platform Oc Event Ned
Azure Services Platform Oc Event NedAzure Services Platform Oc Event Ned
Azure Services Platform Oc Event Ned
 
Omar Nisar Projects
Omar Nisar ProjectsOmar Nisar Projects
Omar Nisar Projects
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
 
The path towards pervasive computing
The path towards pervasive computingThe path towards pervasive computing
The path towards pervasive computing
 
Embrace network
Embrace networkEmbrace network
Embrace network
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web Applications
 
Salesforce complete overview
Salesforce complete overviewSalesforce complete overview
Salesforce complete overview
 
Integrating IBM Business Process Manager with a hybrid MobileFirst application
Integrating IBM Business Process Manager with a hybrid MobileFirst applicationIntegrating IBM Business Process Manager with a hybrid MobileFirst application
Integrating IBM Business Process Manager with a hybrid MobileFirst application
 
Short Sales Overview of EmpowerID
Short Sales Overview of EmpowerIDShort Sales Overview of EmpowerID
Short Sales Overview of EmpowerID
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client Tier
 
Pro Dev Briefing Irvine Wesyppt23
Pro Dev Briefing Irvine Wesyppt23Pro Dev Briefing Irvine Wesyppt23
Pro Dev Briefing Irvine Wesyppt23
 
Cloud Identity and Access Management
Cloud Identity and Access ManagementCloud Identity and Access Management
Cloud Identity and Access Management
 
Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a Service
 

Similar to MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm

Cloud Circle Talk - Enterprise Architecture, Cloud Computing and Integrations
Cloud Circle Talk - Enterprise Architecture, Cloud Computing and IntegrationsCloud Circle Talk - Enterprise Architecture, Cloud Computing and Integrations
Cloud Circle Talk - Enterprise Architecture, Cloud Computing and Integrations
paulfallon
 
Building Enterprise Interoperability Applications Using Microsoft
Building Enterprise Interoperability Applications Using MicrosoftBuilding Enterprise Interoperability Applications Using Microsoft
Building Enterprise Interoperability Applications Using Microsoft
webhostingguy
 
Microsoft cloud strategic_overview_vu
Microsoft cloud strategic_overview_vuMicrosoft cloud strategic_overview_vu
Microsoft cloud strategic_overview_vu
Pham Anh Vu
 
Kony Development Cloud
Kony Development CloudKony Development Cloud
Kony Development Cloud
Dipesh Mukerji
 
San Diego Clound Computing Sep 9th
San Diego Clound Computing Sep 9thSan Diego Clound Computing Sep 9th
San Diego Clound Computing Sep 9th
Woody Pewitt
 

Similar to MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm (20)

Azure Services Platform_Partner_Briefing
Azure Services Platform_Partner_BriefingAzure Services Platform_Partner_Briefing
Azure Services Platform_Partner_Briefing
 
Cloud Circle Talk - Enterprise Architecture, Cloud Computing and Integrations
Cloud Circle Talk - Enterprise Architecture, Cloud Computing and IntegrationsCloud Circle Talk - Enterprise Architecture, Cloud Computing and Integrations
Cloud Circle Talk - Enterprise Architecture, Cloud Computing and Integrations
 
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...
Dynamics 365 Saturday - London 2018 - New Features and Deprecations with Dyna...
 
Building Enterprise Interoperability Applications Using Microsoft
Building Enterprise Interoperability Applications Using MicrosoftBuilding Enterprise Interoperability Applications Using Microsoft
Building Enterprise Interoperability Applications Using Microsoft
 
Microsoft cloud strategic_overview_vu
Microsoft cloud strategic_overview_vuMicrosoft cloud strategic_overview_vu
Microsoft cloud strategic_overview_vu
 
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
 
Hybrid Integration with Dynamics CRM Online, Microsoft Azure Service Bus and ...
Hybrid Integration with Dynamics CRM Online, Microsoft Azure Service Bus and ...Hybrid Integration with Dynamics CRM Online, Microsoft Azure Service Bus and ...
Hybrid Integration with Dynamics CRM Online, Microsoft Azure Service Bus and ...
 
Kony Development Cloud
Kony Development CloudKony Development Cloud
Kony Development Cloud
 
Combining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful HybridsCombining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful Hybrids
 
The Cloud as Opportunity: Invitation to Entrepreneurs
The Cloud as Opportunity: Invitation to EntrepreneursThe Cloud as Opportunity: Invitation to Entrepreneurs
The Cloud as Opportunity: Invitation to Entrepreneurs
 
Cics Connectivity
Cics ConnectivityCics Connectivity
Cics Connectivity
 
Lixsql port enterprise integration
Lixsql port   enterprise integrationLixsql port   enterprise integration
Lixsql port enterprise integration
 
San Diego Clound Computing Sep 9th
San Diego Clound Computing Sep 9thSan Diego Clound Computing Sep 9th
San Diego Clound Computing Sep 9th
 
Unit 3-SOA Technologies
Unit 3-SOA TechnologiesUnit 3-SOA Technologies
Unit 3-SOA Technologies
 
.NET RIA Services Architecture Overview
.NET RIA Services Architecture Overview .NET RIA Services Architecture Overview
.NET RIA Services Architecture Overview
 
Biz Talk Server
Biz Talk ServerBiz Talk Server
Biz Talk Server
 
Microservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration finalMicroservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration final
 
Office 365 introduction and technical overview
Office 365 introduction and technical overviewOffice 365 introduction and technical overview
Office 365 introduction and technical overview
 
Migrating Apps To Azure
Migrating Apps To AzureMigrating Apps To Azure
Migrating Apps To Azure
 
Cloud 12 08 V2
Cloud 12 08 V2Cloud 12 08 V2
Cloud 12 08 V2
 

MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm

  • 1. Delivering Collaborative Applications with AIR and LiveCycle Data Services Alistair McLeod Xavier Agnetti
  • 2.
  • 3.
  • 5. What do we mean by Collaborative Applications?
  • 6. BlazeDS and LiveCycle Data Services
  • 7.
  • 8.
  • 9. Feature Comparison Feature BlazeDS LiveCycle Data Services ES Java Remoting √ √ Web Proxy √ √ JMS Adapter √ √ AJAX Client Libraries √ √ Administrative Console √ √ Clustered Messaging √ √ Pub/Sub Messaging √ √ Web container-based messaging service (100’s of clients/CPU) √ √ Dedicated messaging service (1000’s of clients/CPU) √ Per-client Quality of Service √ Data Management Service √ Data Paging √ Flex-LiveCycle Integration √ RIA-to-PDF Generation √ Offline Data Synchronization (AIR) √ WSRP/Portal Integration √ SiteMinder Integration √
  • 13.
  • 14.
  • 16. Application Structure Microphone Client Layer Adobe Integrated Runtime Adobe Cairngorm Alternativa 3D WiiMote Keyboard Application Layer FMS LCDS DMS Messaging Persistence Layer HSQL DB
  • 17.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. Challenges in Building Collaborative Applications
  • 26.
  • 27.
  • 28.
  • 29. Cairngorm and the Presentation Model Domain Layer Integration Tier View Layer Presentation Layer Arthur [email_address] Ford- ford@perfect.com Zaphod – zaphod@email.com Arthur – arthur@dent.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact Presentation Model + contacts : ContactDomain + addContact (name, email) CMD CMD ContactVO model.addContact (firstname, email) ContactVO ContactsDomain + contacts : List CMD Business Delegate ServiceLocator Cairngorm Event Service Service Service Service Service Service Service FrantController
  • 30. Cairngorm and Presentation Models - Differences
  • 31.
  • 32.
  • 33. Cairngorm and Data Management Services Domain Layer Integration Tier View Layer Presentation Layer model.addContact (firstname, email) Data Model + contacts : List + addItem( item ) Presentation Model + contacts : ContactDataModel + addContact (name, email) Data Model + contacts : List + addItem( item ) Presentation Model + contacts : ContactDataModel + addContact (name, email) Arthur [email_address] Ford- ford@perfect.com Zaphod – zaphod@email.com Arthur – arthur@dent.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact ServiceLocator Client DataServices Service Service Ford- ford@perfect.com Zaphod – zaphod@email.com Arthur – arthur@dent.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact ServiceLocator Client DataServices Service Service Remote DataServices Service Service Ford- ford@perfect.com Zaphod – zaphod@email.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact Arthur [email_address] Ford- ford@perfect.com Zaphod – zaphod@email.com Tricia– tricia@mcmillan.com Marvin = marvin@email.com Add a Contact Contact list Add a Contact
  • 34.
  • 35. How to deal with large dataset?
  • 36.
  • 37.
  • 38.
  • 40.
  • 41. Any Questions Questions? (simple please)

Editor's Notes

  1. Find out how LiveCycle Data Services ES and Data Management Services enable the creation of highly collaborative multiuser applications that leverage data-push, synchronization, collaboration, and application-sharing features. Adobe Consulting will share examples and code for including collaboration functionality in rich Internet applications running on Adobe AIR. Come discover this innovative new breed of rich Internet applications.
  2. Ali – 2 mins
  3. Ali – 1 mins
  4. Xavier – 3 minutes
  5. Multiple Users/group working with the same data. Data push in order to make a decision. Notifications about other people Adobe technologies (LCDS, BlazeDS) will boost developer productivity
  6. Ali –3 minutes Who here has used BlazeDS? Who has used any part of LiveCycle Data services that’s not available in BlazeDS Who understands the differences between the two?
  7. Blaze is a fully functional open source messaging technology. It has two main areas, RPC services and messaging - RPC is probably used most, with RemoteObject, HTTP Service and Web Service It also has messaging services, include real time data push, pub sub and some real time collaboration features. These are all implemented over HTTP. - AMF – utilities like Charles
  8. All of blaze ds plus… Data Sync – allows you to automatically synchronised your data between your server and any number of connected clients. No need to poll from the client. As well as requiring less code and therefore making your application development simpler, it also reduces network traffic as updates are pushed to connected clients - We know that AIR provides offline support via its embedded SQL-lite database and encrypted local store, but when tied to data management services, we also get additional features. If you use data management services to manage your data, and the user goes offline, then any changes can be automatically stored in AIRs client side SQL-lite database. Then, when the user next connects, those changes can be synchronised to the server. LCDS also has a data paging feature, to help you deal with large data sets. If you have thousands of records to be displayed in your client, LCDS can be used to only fetch the first, say, 100 records, display those to the user, and then fetch the other records in the background. Its incredibally flexibe, so, for example, if you provide the dataset as a data provider to a datagrid, scrolling the datagrid will cause on-demand request for the data if it hasn’t already been loaded. The other major feature in LCDS that’s not in Blaze is the ability to generate PDF documents, based on a template and a set of data. This is a sub-set of the features available in the full LC Enterprise Suite, but its good for simple pdf generation in smaller applications. LCDS also has other features, such as more in-build service adapters. More highly scalable protocol – HTTP/AMV v RTMP
  9. Here’s a summary of the differences between the 2 products. Which one to choose is never an easy decision, and a number of factors are taking into account Buy versus build – will it take more to implement the features yourself? I’d say yes expected users – LCDS scales to 1000s of users per CPU whereas Blaze out of the box is 100s of users per CPU and the features I mentioned on the previous slide – do you need to use any of those
  10. Back to Xavier
  11. Application sharing between the retailer and the customer Chat between the users Video conference Export customer configuration to PDF through LCDS Store local changes while offline, and commit them when back online What is the application about?????????? Xavier – give overview of application before showing – 2 minutes
  12. Xavier – give demo – 5-8 minutes
  13. Xavier – 3 minutes
  14. Xavier – 3 minutes
  15. Are we using FMS? If so, can have a slide on it in technologies used Need Xaviers input once we have code Add diagram of client side architecture Front the glass: -         Air + WiiMote Between the glasses :) -         LCDS + FMS (for the one way visio conferencing) Behind the glass -         LCDS for PDF generation (car quote) -         Spring/Hivernate to store changes (maybe not necessary to store anything actually)
  16. Are we using FMS? If so, can have a slide on it in technologies used Need to add voice to client side Some details on application code layout, how it all fits together, package structure, To add an architecture diagram here.
  17. Ali– 3 minutes
  18. Show how AIR was used in the application – any AIR specific code, what AIR brought to the table Offline – used to store all data, cant show because of single machine being used Encrypted local store – used to store any security information Toast alerts and custom chrome
  19. Call out where LCDS is used in solution, what it added, what it would have taken had LCDS not been available Messaging for – chat and screen sharing using data management services Data management for pushing data to client and also synchronization of view Conflict resolution – if 2 users change color at same time, get notified and can programmatically decide what to do Offline support – using data management services, data is automatically stored in SQ lite when user goes offline, no need to write any code Adapter technology – assembler to fetch data Paging data – efficient fetching of large data sets Pdf generation – basic here but can extend using livecycle enterprise suite, offline signature via barcode, scan, start a workflow, add security via digital rights Each of these could be built by hand,and blazeds used, it’s a build versus buy decision Xavier will be going into more details on each of these, showing code examples
  20. Better performance than papervision 3D, but not as feature rich – either platform could be used. We won’t be showing code in the deep dive, but can if we have time at the end
  21. Wiimote is a bluetooth device, speaking to an activex control Need a description here Wiiflash has an AS3 API We won’t be showing code in the deep dive, but can if we have time at the end
  22. Xavier – 3 minutes
  23. Xavier to note challenges when building Xavier, can we show more challenges here and split over 2-3 slides?
  24. Show how a presentation model is structured. How is it unit-tested? How does it work with DataService? DataModel pattern Xavier – 7-8 mins
  25. How does it work
  26. Show how a presentation model is structured. How is it unit-tested? How does it work with DataService? DataModel pattern Xavier – 7-8 mins
  27. It is data-driven (not request-response paradigm) The user gesture/command pair does fit well here DataModel is responsible to talk to the DataService, and store the data retrieved from it Ability to bind to DataService attributes like commitRequired. How is it reset on logging off?
  28. Ali – 1 minutes
  29. Xavier and Ali