SlideShare una empresa de Scribd logo
1 de 10
Server push



Leveraging server push technologies (Comet) in
WebBee framework

Dmitriy Rogatkin
January 2012
Introduction in server push

     What is server push for a web application?
            • Capability of a server to deliver new content to a browser without
              user interaction
     Is it well known or something new?
            • Pure HTML multipart x-mixed-replace request type (Netscape, MS)
              seems supported from 1998
            • multipart x-mixed-replace has limited support of browser vendors
              and has different behavior for Netscape (Mozila) and MS (IE)
            • multipart x-mixed-replace is not JS friendly and useless for Ajax
            • XML-HTTP object can be used for server push more efficiently with
              some challenges, this approach is relatively -new 5 years old
     Where server push is useful?
            • Update a user about status of long running processes
            • Alerting a user that system state changed
            • Collaborative work as chat, concurrent update resources and so on
2    © 2011 Progress Software Corporation. All rights reserved.
Challenges of server push

     Four approaches are widely used
            1. Keeping active connection with server (multipart x-mixed-replace
               or XML-HTTP, or XMLHTPP awaiting for response)
            2. Polling a server in setTimeout or setInterval, or refresh
            3. Piggy back ride of any user interaction (not really push)
            4. Utilizing HTML5 Websockets (will be presented separately)
    1. Holding a thread servicing request – challenge is to serve
       hundreds concurrent users can overload thread capacity of a
       server OS
    2. Polling requests – challenge is multiple requests from
       hundreds concurrent users can overload a server performance
       capacity
    3. Load additional information to any response to reflect server
       push items updates, the challenge is more complex responses
       and still requires user interaction (not truly server push)

3    © 2011 Progress Software Corporation. All rights reserved.
Dealing with challenges

     Avoid using polling mechanism
     Release a servicing thread and keep just connection allowing a
      separate thread pushing data in it asynchronously
     How is it implemented
            • Vendor specific ;Tomcat, Jetty, AsyncWeb and other provide
              proprietary mechanism of releasing or not involving a servicing
              thread per request
            • JSR315 AsyncContext is a standard
     JSR 315 is standard releases a dependency on a particular
      vendor, it is flexible and simple
     Where JSR315 is supported
            • TJWS
            • Jetty
            • Tomcat, JBOSS and Oracle WebLogic and IBM WebSphere

4    © 2011 Progress Software Corporation. All rights reserved.
How to make server push simple for use

     Detach all async request specific machinery in a framework
     Provide simple and flexible way to use it
     How has it done for WebBee?
            • Base servlet framework is extended to manage asynchronous
              requests and additional common Ajax handlers and services were
              added
     How to use it?
            1. Identify set of users interested in a certain event UI update
            2. For those users who are currently online push UI notification event
               to AsyncUpdater service queue
            3. Provide JS event handlers in View implementation to show UI
               updates corresponding for the pushed events
            4. Done




5    © 2011 Progress Software Corporation. All rights reserved.
Server push framework architecture




6   © 2011 Progress Software Corporation. All rights reserved.
Implementation highlights

     Developed on top of Aldan 3 servlet framework
     Small foot print JavaScript push event dispatcher
     Async update Ajax handler connected to base page service
     Registry of push event consumer pile
     Async updater service (component)
            • Manages queue of push UI event
            • Dispatches available events to piled async requests




7    © 2011 Progress Software Corporation. All rights reserved.
Room for improvements

     Won’t work in clustering environment unless Async updater
      service manages a distributed event queue
            • Resolution can be providing distributed event queue
     Container managed session timeout can not work as expected
      since server push activities may keep session valid all time
            • Resolution can be in own client or server session timeout
              implementation




8    © 2011 Progress Software Corporation. All rights reserved.
Demo

     WebBee chat application




9    © 2011 Progress Software Corporation. All rights reserved.
Server side push in Aldan 3

Más contenido relacionado

La actualidad más candente

Mule management console Architecture
Mule management console ArchitectureMule management console Architecture
Mule management console ArchitectureShanky Gupta
 
Anypoint connector dev kit
Anypoint connector dev kitAnypoint connector dev kit
Anypoint connector dev kitSon Nguyen
 
Mule anypoint connector dev kit
Mule  anypoint connector dev kitMule  anypoint connector dev kit
Mule anypoint connector dev kitD.Rajesh Kumar
 
Cloud hub and mule
Cloud hub and muleCloud hub and mule
Cloud hub and muleSon Nguyen
 
Deployment of Mule ESB Application using MMC
Deployment of Mule ESB Application using MMCDeployment of Mule ESB Application using MMC
Deployment of Mule ESB Application using MMCSanjeet Pandey
 
Mulesoft Filters
Mulesoft FiltersMulesoft Filters
Mulesoft Filtersmdfkhan625
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Srikanth N
 
Service oriented online architecture using mule
Service oriented online architecture using muleService oriented online architecture using mule
Service oriented online architecture using mulemdfkhan625
 
Mule esb for beginners
Mule esb for beginnersMule esb for beginners
Mule esb for beginnersSindhu VL
 
Mule ESB - Intra application communication
Mule ESB - Intra application communicationMule ESB - Intra application communication
Mule ESB - Intra application communicationkrishananth
 
Mule ESB session day 1
Mule ESB session day 1Mule ESB session day 1
Mule ESB session day 1kkk_f17
 
Emad Younis - Keynote
Emad Younis - Keynote Emad Younis - Keynote
Emad Younis - Keynote VMUG IT
 
Mule chapter2
Mule chapter2Mule chapter2
Mule chapter2mha4
 
Mule anypoint data gateway
Mule  anypoint data gatewayMule  anypoint data gateway
Mule anypoint data gatewayD.Rajesh Kumar
 
Mule mule runtime engine
Mule  mule runtime engineMule  mule runtime engine
Mule mule runtime engineD.Rajesh Kumar
 

La actualidad más candente (20)

Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
 
Mule management console Architecture
Mule management console ArchitectureMule management console Architecture
Mule management console Architecture
 
Anypoint connector dev kit
Anypoint connector dev kitAnypoint connector dev kit
Anypoint connector dev kit
 
Mule anypoint connector dev kit
Mule  anypoint connector dev kitMule  anypoint connector dev kit
Mule anypoint connector dev kit
 
Cloud hub and mule
Cloud hub and muleCloud hub and mule
Cloud hub and mule
 
Deployment of Mule ESB Application using MMC
Deployment of Mule ESB Application using MMCDeployment of Mule ESB Application using MMC
Deployment of Mule ESB Application using MMC
 
Mule testing
Mule testingMule testing
Mule testing
 
Mulesoft Filters
Mulesoft FiltersMulesoft Filters
Mulesoft Filters
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2
 
Mule any pointstudio
Mule any pointstudioMule any pointstudio
Mule any pointstudio
 
Service oriented online architecture using mule
Service oriented online architecture using muleService oriented online architecture using mule
Service oriented online architecture using mule
 
Mule esb for beginners
Mule esb for beginnersMule esb for beginners
Mule esb for beginners
 
Mule 3.8
Mule 3.8Mule 3.8
Mule 3.8
 
Mule ESB - Intra application communication
Mule ESB - Intra application communicationMule ESB - Intra application communication
Mule ESB - Intra application communication
 
Mule ESB session day 1
Mule ESB session day 1Mule ESB session day 1
Mule ESB session day 1
 
Emad Younis - Keynote
Emad Younis - Keynote Emad Younis - Keynote
Emad Younis - Keynote
 
Mule chapter2
Mule chapter2Mule chapter2
Mule chapter2
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule anypoint data gateway
Mule  anypoint data gatewayMule  anypoint data gateway
Mule anypoint data gateway
 
Mule mule runtime engine
Mule  mule runtime engineMule  mule runtime engine
Mule mule runtime engine
 

Destacado

Google Opening up to Developers - From 2 to 55 APIs in 3 years
Google Opening up to Developers - From 2 to 55 APIs in 3 yearsGoogle Opening up to Developers - From 2 to 55 APIs in 3 years
Google Opening up to Developers - From 2 to 55 APIs in 3 yearsPatrick Chanezon
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stackALDAN3
 
Google I/0 2009 Google Friend Connect In The Real World
Google I/0 2009 Google Friend Connect In The Real WorldGoogle I/0 2009 Google Friend Connect In The Real World
Google I/0 2009 Google Friend Connect In The Real WorldPatrick Chanezon
 
Cloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServiceCloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServicePatrick Chanezon
 
Porting Xen Paravirtualization to MIPS Architecture
Porting Xen Paravirtualization to MIPS ArchitecturePorting Xen Paravirtualization to MIPS Architecture
Porting Xen Paravirtualization to MIPS ArchitectureThe Linux Foundation
 
Devoxx France 2012 - Portrait du développeur en "The Artist"
Devoxx France 2012 - Portrait du développeur en "The Artist"Devoxx France 2012 - Portrait du développeur en "The Artist"
Devoxx France 2012 - Portrait du développeur en "The Artist"Patrick Chanezon
 
AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adopti...
AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adopti...AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adopti...
AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adopti...Patrick Chanezon
 
Sphinx: Leveraging Scalable Search in Drupal
Sphinx: Leveraging Scalable Search in DrupalSphinx: Leveraging Scalable Search in Drupal
Sphinx: Leveraging Scalable Search in Drupalelliando dias
 
Not Only Drupal
Not Only DrupalNot Only Drupal
Not Only Drupalmcantelon
 
Portrait of the developer as The Artist - SpringOne India 2012
Portrait of the developer as The Artist - SpringOne India 2012Portrait of the developer as The Artist - SpringOne India 2012
Portrait of the developer as The Artist - SpringOne India 2012Patrick Chanezon
 
Ux overview fxworkweek_april2012
Ux overview fxworkweek_april2012Ux overview fxworkweek_april2012
Ux overview fxworkweek_april2012Madhava Enros
 
VMware Developer Relations Team Culture
VMware Developer Relations Team CultureVMware Developer Relations Team Culture
VMware Developer Relations Team CulturePatrick Chanezon
 
Basic Crud In Django
Basic Crud In DjangoBasic Crud In Django
Basic Crud In Djangomcantelon
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteChristian Heilmann
 
Protecting Your Data In Office 365
Protecting Your Data In Office 365Protecting Your Data In Office 365
Protecting Your Data In Office 365Elastica Inc.
 
IAB Hungary Adex 2012 (Hungarian)
IAB Hungary Adex 2012 (Hungarian)IAB Hungary Adex 2012 (Hungarian)
IAB Hungary Adex 2012 (Hungarian)IAB Hungary
 
Google App Engine - Devfest India 2010
Google App Engine -  Devfest India 2010Google App Engine -  Devfest India 2010
Google App Engine - Devfest India 2010Patrick Chanezon
 

Destacado (20)

Google Opening up to Developers - From 2 to 55 APIs in 3 years
Google Opening up to Developers - From 2 to 55 APIs in 3 yearsGoogle Opening up to Developers - From 2 to 55 APIs in 3 years
Google Opening up to Developers - From 2 to 55 APIs in 3 years
 
Adam FitzGerald 2013
Adam FitzGerald 2013Adam FitzGerald 2013
Adam FitzGerald 2013
 
Java on Azure
Java on AzureJava on Azure
Java on Azure
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stack
 
Google I/0 2009 Google Friend Connect In The Real World
Google I/0 2009 Google Friend Connect In The Real WorldGoogle I/0 2009 Google Friend Connect In The Real World
Google I/0 2009 Google Friend Connect In The Real World
 
Cloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServiceCloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A Service
 
Porting Xen Paravirtualization to MIPS Architecture
Porting Xen Paravirtualization to MIPS ArchitecturePorting Xen Paravirtualization to MIPS Architecture
Porting Xen Paravirtualization to MIPS Architecture
 
Devoxx France 2012 - Portrait du développeur en "The Artist"
Devoxx France 2012 - Portrait du développeur en "The Artist"Devoxx France 2012 - Portrait du développeur en "The Artist"
Devoxx France 2012 - Portrait du développeur en "The Artist"
 
AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adopti...
AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adopti...AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adopti...
AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adopti...
 
Sphinx: Leveraging Scalable Search in Drupal
Sphinx: Leveraging Scalable Search in DrupalSphinx: Leveraging Scalable Search in Drupal
Sphinx: Leveraging Scalable Search in Drupal
 
Not Only Drupal
Not Only DrupalNot Only Drupal
Not Only Drupal
 
Portrait of the developer as The Artist - SpringOne India 2012
Portrait of the developer as The Artist - SpringOne India 2012Portrait of the developer as The Artist - SpringOne India 2012
Portrait of the developer as The Artist - SpringOne India 2012
 
Ux overview fxworkweek_april2012
Ux overview fxworkweek_april2012Ux overview fxworkweek_april2012
Ux overview fxworkweek_april2012
 
VMware Developer Relations Team Culture
VMware Developer Relations Team CultureVMware Developer Relations Team Culture
VMware Developer Relations Team Culture
 
RubyWorld 2011
RubyWorld 2011RubyWorld 2011
RubyWorld 2011
 
Basic Crud In Django
Basic Crud In DjangoBasic Crud In Django
Basic Crud In Django
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynote
 
Protecting Your Data In Office 365
Protecting Your Data In Office 365Protecting Your Data In Office 365
Protecting Your Data In Office 365
 
IAB Hungary Adex 2012 (Hungarian)
IAB Hungary Adex 2012 (Hungarian)IAB Hungary Adex 2012 (Hungarian)
IAB Hungary Adex 2012 (Hungarian)
 
Google App Engine - Devfest India 2010
Google App Engine -  Devfest India 2010Google App Engine -  Devfest India 2010
Google App Engine - Devfest India 2010
 

Similar a Server side push in Aldan 3

JavaOne Conference, 2008
JavaOne Conference, 2008JavaOne Conference, 2008
JavaOne Conference, 2008Sean Dawson
 
Intorduction to struts
Intorduction to strutsIntorduction to struts
Intorduction to strutsAnup72
 
WEB TECHNOLOGY Unit-3.pptx
WEB TECHNOLOGY Unit-3.pptxWEB TECHNOLOGY Unit-3.pptx
WEB TECHNOLOGY Unit-3.pptxkarthiksmart21
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDoris Chen
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?NGINX, Inc.
 
Ppt for Online music store
Ppt for Online music storePpt for Online music store
Ppt for Online music storeADEEBANADEEM
 
IT2255 Web Essentials - Unit V Servlets and Database Connectivity
IT2255 Web Essentials - Unit V Servlets and Database ConnectivityIT2255 Web Essentials - Unit V Servlets and Database Connectivity
IT2255 Web Essentials - Unit V Servlets and Database Connectivitypkaviya
 
Reverse ajax in 2014
Reverse ajax in 2014Reverse ajax in 2014
Reverse ajax in 2014Nenad Pecanac
 
Enterprise java unit-1_chapter-2
Enterprise java unit-1_chapter-2Enterprise java unit-1_chapter-2
Enterprise java unit-1_chapter-2sandeep54552
 
enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfenterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfEidTahir
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC vipin kumar
 
V mware v fabric 5 - what's new technical sales training presentation
V mware v fabric 5 - what's new technical sales training presentationV mware v fabric 5 - what's new technical sales training presentation
V mware v fabric 5 - what's new technical sales training presentationsolarisyourep
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EEJ On The Beach
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EEMarkus Eisele
 
Liit tyit sem 5 enterprise java unit 1 notes 2018
Liit tyit sem 5 enterprise java  unit 1 notes 2018 Liit tyit sem 5 enterprise java  unit 1 notes 2018
Liit tyit sem 5 enterprise java unit 1 notes 2018 tanujaparihar
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxPINGXIONG3
 
SERVER SIDE PROGRAMMING
SERVER SIDE PROGRAMMINGSERVER SIDE PROGRAMMING
SERVER SIDE PROGRAMMINGPrabu U
 
Intro to Microservices Architecture
Intro to Microservices ArchitectureIntro to Microservices Architecture
Intro to Microservices ArchitecturePeter Nijem
 
Microservice 微服務
Microservice 微服務Microservice 微服務
Microservice 微服務YOU SHENG CHEN
 

Similar a Server side push in Aldan 3 (20)

JavaOne Conference, 2008
JavaOne Conference, 2008JavaOne Conference, 2008
JavaOne Conference, 2008
 
Intorduction to struts
Intorduction to strutsIntorduction to struts
Intorduction to struts
 
WEB TECHNOLOGY Unit-3.pptx
WEB TECHNOLOGY Unit-3.pptxWEB TECHNOLOGY Unit-3.pptx
WEB TECHNOLOGY Unit-3.pptx
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
 
Ppt for Online music store
Ppt for Online music storePpt for Online music store
Ppt for Online music store
 
IT2255 Web Essentials - Unit V Servlets and Database Connectivity
IT2255 Web Essentials - Unit V Servlets and Database ConnectivityIT2255 Web Essentials - Unit V Servlets and Database Connectivity
IT2255 Web Essentials - Unit V Servlets and Database Connectivity
 
Reverse ajax in 2014
Reverse ajax in 2014Reverse ajax in 2014
Reverse ajax in 2014
 
Enterprise java unit-1_chapter-2
Enterprise java unit-1_chapter-2Enterprise java unit-1_chapter-2
Enterprise java unit-1_chapter-2
 
enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdfenterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdf
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 
V mware v fabric 5 - what's new technical sales training presentation
V mware v fabric 5 - what's new technical sales training presentationV mware v fabric 5 - what's new technical sales training presentation
V mware v fabric 5 - what's new technical sales training presentation
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EE
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EE
 
Servlet programming
Servlet programmingServlet programming
Servlet programming
 
Liit tyit sem 5 enterprise java unit 1 notes 2018
Liit tyit sem 5 enterprise java  unit 1 notes 2018 Liit tyit sem 5 enterprise java  unit 1 notes 2018
Liit tyit sem 5 enterprise java unit 1 notes 2018
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
SERVER SIDE PROGRAMMING
SERVER SIDE PROGRAMMINGSERVER SIDE PROGRAMMING
SERVER SIDE PROGRAMMING
 
Intro to Microservices Architecture
Intro to Microservices ArchitectureIntro to Microservices Architecture
Intro to Microservices Architecture
 
Microservice 微服務
Microservice 微服務Microservice 微服務
Microservice 微服務
 

Último

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Último (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Server side push in Aldan 3

  • 1. Server push Leveraging server push technologies (Comet) in WebBee framework Dmitriy Rogatkin January 2012
  • 2. Introduction in server push  What is server push for a web application? • Capability of a server to deliver new content to a browser without user interaction  Is it well known or something new? • Pure HTML multipart x-mixed-replace request type (Netscape, MS) seems supported from 1998 • multipart x-mixed-replace has limited support of browser vendors and has different behavior for Netscape (Mozila) and MS (IE) • multipart x-mixed-replace is not JS friendly and useless for Ajax • XML-HTTP object can be used for server push more efficiently with some challenges, this approach is relatively -new 5 years old  Where server push is useful? • Update a user about status of long running processes • Alerting a user that system state changed • Collaborative work as chat, concurrent update resources and so on 2 © 2011 Progress Software Corporation. All rights reserved.
  • 3. Challenges of server push  Four approaches are widely used 1. Keeping active connection with server (multipart x-mixed-replace or XML-HTTP, or XMLHTPP awaiting for response) 2. Polling a server in setTimeout or setInterval, or refresh 3. Piggy back ride of any user interaction (not really push) 4. Utilizing HTML5 Websockets (will be presented separately) 1. Holding a thread servicing request – challenge is to serve hundreds concurrent users can overload thread capacity of a server OS 2. Polling requests – challenge is multiple requests from hundreds concurrent users can overload a server performance capacity 3. Load additional information to any response to reflect server push items updates, the challenge is more complex responses and still requires user interaction (not truly server push) 3 © 2011 Progress Software Corporation. All rights reserved.
  • 4. Dealing with challenges  Avoid using polling mechanism  Release a servicing thread and keep just connection allowing a separate thread pushing data in it asynchronously  How is it implemented • Vendor specific ;Tomcat, Jetty, AsyncWeb and other provide proprietary mechanism of releasing or not involving a servicing thread per request • JSR315 AsyncContext is a standard  JSR 315 is standard releases a dependency on a particular vendor, it is flexible and simple  Where JSR315 is supported • TJWS • Jetty • Tomcat, JBOSS and Oracle WebLogic and IBM WebSphere 4 © 2011 Progress Software Corporation. All rights reserved.
  • 5. How to make server push simple for use  Detach all async request specific machinery in a framework  Provide simple and flexible way to use it  How has it done for WebBee? • Base servlet framework is extended to manage asynchronous requests and additional common Ajax handlers and services were added  How to use it? 1. Identify set of users interested in a certain event UI update 2. For those users who are currently online push UI notification event to AsyncUpdater service queue 3. Provide JS event handlers in View implementation to show UI updates corresponding for the pushed events 4. Done 5 © 2011 Progress Software Corporation. All rights reserved.
  • 6. Server push framework architecture 6 © 2011 Progress Software Corporation. All rights reserved.
  • 7. Implementation highlights  Developed on top of Aldan 3 servlet framework  Small foot print JavaScript push event dispatcher  Async update Ajax handler connected to base page service  Registry of push event consumer pile  Async updater service (component) • Manages queue of push UI event • Dispatches available events to piled async requests 7 © 2011 Progress Software Corporation. All rights reserved.
  • 8. Room for improvements  Won’t work in clustering environment unless Async updater service manages a distributed event queue • Resolution can be providing distributed event queue  Container managed session timeout can not work as expected since server push activities may keep session valid all time • Resolution can be in own client or server session timeout implementation 8 © 2011 Progress Software Corporation. All rights reserved.
  • 9. Demo  WebBee chat application 9 © 2011 Progress Software Corporation. All rights reserved.