SlideShare une entreprise Scribd logo
1  sur  41
Don't call us - we'll push – on cross tier push architecture Lucas Jellema – AMIS (Nieuwegein, The Netherlands) JavaOne 2011, Birds of a Feather
Overview Asynchronous to the max Push in enterprise architecture The harsh reality of push Web-tier to client Browser Mobile App Client to client Database tier to Business tier Cross Server Push Push All the way The future of push Real time
Asynchronous communication in the real world “I’ll get back to you” “Don’t call us,…” Low fuel warning in car “Please let me know” “Return to sender – address unknown”  Newspaper delivery Next instruction from car navigation system Telephone ringing Alarm clock buzzing Parking sensors beeping Fire alarm screaming
Asynchronous interactions and push in the IT landscape More timely information Notification as soon as possible Proactive offering Do not ask and you shall be given  Lower load on back end – don’t call us (all the time) … Stop hitting the F5 button! Multi-channel information manipulation and dissemination Changes and events come in from everywhere Decouple system components through generic infrastructure for handling events and push Yet integrate
Pushing it … into the user interface Automatically refreshing (part of) a page Update table Redrawing chart Displaying popup to alert user to an event Arrival of message (email or chat) Signing in or out of contact (presence) Lock or release of some resource Notification Changing status of items on the page Highlight change indicator Show icon Change text to italic Play a sound
3rd party Mobile Device Mobile Device Web Browser Web Browser JEE Application Server JEE Application Server Complex Event Processor Non Java Server RDBMS Email Server Chat Server RDBMS
Upstream notification Database to Middle Tier Middle Tier to Browser or Mobile device Browser to other Browser or Mobile device Mobile Device Web Browser JEE Application Server RDBMS
Typical server-to-client push scenario: CHat Web Browser JEE Application Server
And client to server (to server) Web Browser JEE Application Server
The ‘Only tell when asked’ game
Server Push challenges How to push against the ‘one way direction’ and despite limitations HTTP and JDBC are request/response – not response only Browser limit of only two channels to one server Server side ‘event handling’ Session has to have an active life beyond requests Or requests have a life beyond response Higher load on the server How to handle the (potential) volume of ‘concurrent’ channels and the number of open threads NIO, Servlet 3.0, Jetty Continuations, Tomcat Advanced I/O
Server Push challenges (2) Where do events to push actually come from? Who perceives/receives (real-time) events (on the server side) How are they tied in to the appropriate sessions? Client (consumer) side: how to asynchronously receive events and how to process them/turn them into action and UI updates How to correlate an asynchronously received message with a previously sent request or a subscription For example: mobile phone showing SMS or WhatsApp messages in a conversation thread style
Server to web client AJAX – Asynchronous Not as asynchronous as you might think Reverse AJAX – Comet , Push Comet implementations Streaming – never ending response Poll Long Poll Piggy Back (add push message to normal response) Embedded Applet doing raw TCP communications Flash with BlazeDS event streaming WebSockets
Comet – implementations Client side:  many  libraries – DOJO is most notable most AJAX/JavaScript based Applets could also be used (via Applet/JS bridge) Server Side:  plain servlets,  Servlet 3.0 to alleviate the load on the server from all the open long-lived requests … Grizzly (GlassFish) WebLogic HTTP Channel GWT? DWR – Direct Web Remoting LightStreamer Jetty Zie: http://cometdaily.com/maturity.html
Direct Web Remoting Call client side JavaScript functions from Server In multiple browser sessions Synchronously as part of request handling Asynchronously – as server (initiated) push Call server side Java methods from the Client Leading to asynchronous (“background”) AJAX calls
Server push with DWR DWR configuration: Servlet in web.xml WEB-INF/dwr.xml with beans to expose to JavaScript Web Browser HTML + JavaScript JEE Application Server Clock
Client to Server push to client Web Browser Web Browser HTML + JavaScript HTML + JavaScript JEE Application Server Servlet EventsProcessor SomeTableWithEventsCoordinator SomeTableWithEventsCoordinator
The nudge Event should have small payload – just an indication of the type of event and a key-reference to the payload Based on the information, the consumer decides to retrieve the associated payload, using the key UI Component nudge handler Payload Retriever Nudgee Nudger
websockets Protocol – TCP based, initiated with normal HTTP exchange One more transport option for Comet Finalized last week! Client and Server API JavaScript (client) Server side? Part of HTML 5 A very loose collection of proposals, concepts and specifications Supported in Chrome and Safari as well as Firefox, … Also from mobile platform Server Side Support very fragmented at this point With the protocol finalized, server support will rapidly emerge
[object Object]
Client-to-Server
and Server-to-the-other-Client push
Exception: Blue Tooth, Near-Field CommunicationMobile Device Mobile Device Web Browser Web Browser JEE Application Server Client to client
Server to mobile push:multiplexed, semi-poll based
Apple push notification service Persistent TCP/IP connection Continuously streaming TCP/IP connection is initially set up by client Passing its identifier to APNS Server side of applications can send messages to APNS with the device identifier APNS streams these messages to the device Message payload is JSON
Apple push notification service Using APNS, only one channel is used for all messages to be pushed to a device Shared by many different applications APNS does store-and-forward (to retain messages when the client is off-line) Note: the push payload is very small (< 256 bytes) just enough for the client to initiate a request for the real information
Android push notification multiplexed from the cloud
Cross gap push mechanisms Many channels are available to push messages from one entity to another across application, technology and location boundaries JMS (Java/JEE specific)  (one way) WebService (SOAP or REST) “HTTP Channel” WebSockets Http Call to Servlet XMPP
JMS (Java Message Service) == The “inter application Mail Man” Application A JMS Queue Application B Application X Application C JMS is perfect for highly decoupled, scalable, cross JVM/cross server, reliable event push JMS is available on any JEE platform JMS is Java only Mobile devices, browsers, databases and .NET do not speak JMS
JMS Queue/TOPIC Listener JMS Listener is notified asynchronously of messages Start background job on behalf of web app Note: spawn thread from Servlet or EJB is not recommended Create report, send email, execute batch job Listen to events on behalf of web application	 And inform web application of relevant stuff Web Application JMS Queue or Topic MDB JMS Queue or Topic Web Application ? MDB EJB
Live volleyball reporting Web Browser UI handler JMS Queue Listener (http channel, JMS, ..) BAM Data Object
Cross tier push – architecture pattern listener listener listener register event handler Payload Retriever Scheduled Poll Job Push Receptor ‘Events collector’
The Hollywood Principle: Query ResultSet Change Notification
Middle tier alerted by Database Oracle RDBMS invokes Java Listener with event details Register DatabaseChangeNotification SQL query
Register Database Change Listener
Query Result Change listener
Update in database triggers notification to Java Listener
Multiplexed Poll-based database-to-middle tier push When no Database Query Result Change Notification is available – a trick is needed Some databases can do HTTP calls:
Database to Middle Tier to Client notification Session cache Application Scope  event handler D 4 3 9 C 5 A servlet servlet 1 8 2 HTTP B Proce-dure 7 EMP Job 6
Demo cross tier push – database  middle tier  browser
Multiplexed Poll-based database-to-middle tier push A poll based approach can emulate the push behavior One thread in the middle tier does polling on behalfof all sessions: a single channel A single table in the database isused to collectall ‘pushableevents’ Middle tier pollretrieves new entries from thetable and publishedevents to centralevent handler Listeners registeredwith a centralevent handler Application Scope  event handler session session Scheduled Job session CD_TBL Notifications Proce-dure

Contenu connexe

Tendances

AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for ScalabilityTuenti
 
ScalabilityAvailability
ScalabilityAvailabilityScalabilityAvailability
ScalabilityAvailabilitywebuploader
 
Tef con2016 (1)
Tef con2016 (1)Tef con2016 (1)
Tef con2016 (1)ggarber
 
Introduction to NServiceBus
Introduction to NServiceBusIntroduction to NServiceBus
Introduction to NServiceBusAdam Fyles
 
Scaling CometD by Kevin Nilson
Scaling CometD by Kevin Nilson Scaling CometD by Kevin Nilson
Scaling CometD by Kevin Nilson Jug Chennai
 
NServiceBus - introduction to a message based distributed architecture
NServiceBus - introduction to a message based distributed architectureNServiceBus - introduction to a message based distributed architecture
NServiceBus - introduction to a message based distributed architectureMauro Servienti
 
An Introduction To The DMARC SMTP Validation Requirements
An Introduction To The DMARC SMTP Validation RequirementsAn Introduction To The DMARC SMTP Validation Requirements
An Introduction To The DMARC SMTP Validation RequirementsGabriella Davis
 
Enterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQEnterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQelliando dias
 
Quantifying QoS Requirements of Network Services: A Cheat-Proof Framework
Quantifying QoS Requirements of Network Services: A Cheat-Proof FrameworkQuantifying QoS Requirements of Network Services: A Cheat-Proof Framework
Quantifying QoS Requirements of Network Services: A Cheat-Proof FrameworkAcademia Sinica
 

Tendances (10)

AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for Scalability
 
ScalabilityAvailability
ScalabilityAvailabilityScalabilityAvailability
ScalabilityAvailability
 
Csc concepts
Csc conceptsCsc concepts
Csc concepts
 
Tef con2016 (1)
Tef con2016 (1)Tef con2016 (1)
Tef con2016 (1)
 
Introduction to NServiceBus
Introduction to NServiceBusIntroduction to NServiceBus
Introduction to NServiceBus
 
Scaling CometD by Kevin Nilson
Scaling CometD by Kevin Nilson Scaling CometD by Kevin Nilson
Scaling CometD by Kevin Nilson
 
NServiceBus - introduction to a message based distributed architecture
NServiceBus - introduction to a message based distributed architectureNServiceBus - introduction to a message based distributed architecture
NServiceBus - introduction to a message based distributed architecture
 
An Introduction To The DMARC SMTP Validation Requirements
An Introduction To The DMARC SMTP Validation RequirementsAn Introduction To The DMARC SMTP Validation Requirements
An Introduction To The DMARC SMTP Validation Requirements
 
Enterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQEnterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQ
 
Quantifying QoS Requirements of Network Services: A Cheat-Proof Framework
Quantifying QoS Requirements of Network Services: A Cheat-Proof FrameworkQuantifying QoS Requirements of Network Services: A Cheat-Proof Framework
Quantifying QoS Requirements of Network Services: A Cheat-Proof Framework
 

Similaire à Don't call us - we'll push - cross tier push architecture (JavaOne 2011)

Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 201...
Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 201...Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 201...
Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 201...Lucas Jellema
 
Eda on the azure services platform
Eda on the azure services platformEda on the azure services platform
Eda on the azure services platformYves Goeleven
 
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...
Push to the limit - rich and pro-active user interfaces with ADF  (Oracle Ope...Push to the limit - rich and pro-active user interfaces with ADF  (Oracle Ope...
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...Lucas Jellema
 
Asynchronous Mobile Web Services:
Asynchronous Mobile Web Services: Asynchronous Mobile Web Services:
Asynchronous Mobile Web Services: Dr. Fahad Aijaz
 
No More Hops Towards A Linearly Scalable Application Infrastructure
No More Hops Towards A Linearly Scalable Application InfrastructureNo More Hops Towards A Linearly Scalable Application Infrastructure
No More Hops Towards A Linearly Scalable Application InfrastructureConSanFrancisco123
 
Harbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 WrapHarbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 WrapHarbourIT
 
Message in a Bottle
Message in a BottleMessage in a Bottle
Message in a BottleZohar Arad
 
Comet / WebSocket Web Applications
Comet / WebSocket Web ApplicationsComet / WebSocket Web Applications
Comet / WebSocket Web ApplicationsCodemotion
 
Taking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketTaking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketShahriar Hyder
 
Server Farms and XML Web Services
Server Farms and XML Web ServicesServer Farms and XML Web Services
Server Farms and XML Web ServicesJorgen Thelin
 
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016DevOpsDays Tel Aviv
 
SWsoft Hosting Solutions for SaaS
SWsoft Hosting Solutions for SaaSSWsoft Hosting Solutions for SaaS
SWsoft Hosting Solutions for SaaSwebhostingguy
 
Building Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRBuilding Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRShravan Kumar Kasagoni
 
Cloud to hybrid edge cloud evolution Jun112020.pptx
Cloud to hybrid edge cloud evolution Jun112020.pptxCloud to hybrid edge cloud evolution Jun112020.pptx
Cloud to hybrid edge cloud evolution Jun112020.pptxMichel Burger
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetAdil Mughal
 

Similaire à Don't call us - we'll push - cross tier push architecture (JavaOne 2011) (20)

Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 201...
Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 201...Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 201...
Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 201...
 
Eda on the azure services platform
Eda on the azure services platformEda on the azure services platform
Eda on the azure services platform
 
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...
Push to the limit - rich and pro-active user interfaces with ADF  (Oracle Ope...Push to the limit - rich and pro-active user interfaces with ADF  (Oracle Ope...
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...
 
Asynchronous Mobile Web Services:
Asynchronous Mobile Web Services: Asynchronous Mobile Web Services:
Asynchronous Mobile Web Services:
 
No More Hops Towards A Linearly Scalable Application Infrastructure
No More Hops Towards A Linearly Scalable Application InfrastructureNo More Hops Towards A Linearly Scalable Application Infrastructure
No More Hops Towards A Linearly Scalable Application Infrastructure
 
Harbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 WrapHarbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 Wrap
 
Message in a Bottle
Message in a BottleMessage in a Bottle
Message in a Bottle
 
Comet / WebSocket Web Applications
Comet / WebSocket Web ApplicationsComet / WebSocket Web Applications
Comet / WebSocket Web Applications
 
Taking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketTaking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocket
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Introduction To Cloud Computing
Introduction To Cloud ComputingIntroduction To Cloud Computing
Introduction To Cloud Computing
 
Server Farms and XML Web Services
Server Farms and XML Web ServicesServer Farms and XML Web Services
Server Farms and XML Web Services
 
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
 
SWsoft Hosting Solutions for SaaS
SWsoft Hosting Solutions for SaaSSWsoft Hosting Solutions for SaaS
SWsoft Hosting Solutions for SaaS
 
Si so product 1 day technical
Si so product 1 day technicalSi so product 1 day technical
Si so product 1 day technical
 
Windows 8 BootCamp
Windows 8 BootCampWindows 8 BootCamp
Windows 8 BootCamp
 
Building Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRBuilding Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalR
 
Cloud to hybrid edge cloud evolution Jun112020.pptx
Cloud to hybrid edge cloud evolution Jun112020.pptxCloud to hybrid edge cloud evolution Jun112020.pptx
Cloud to hybrid edge cloud evolution Jun112020.pptx
 
Real-time ASP.NET with SignalR
Real-time ASP.NET with SignalRReal-time ASP.NET with SignalR
Real-time ASP.NET with SignalR
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp Net
 

Plus de Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

Plus de Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Dernier

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Dernier (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
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?
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Don't call us - we'll push - cross tier push architecture (JavaOne 2011)

  • 1. Don't call us - we'll push – on cross tier push architecture Lucas Jellema – AMIS (Nieuwegein, The Netherlands) JavaOne 2011, Birds of a Feather
  • 2. Overview Asynchronous to the max Push in enterprise architecture The harsh reality of push Web-tier to client Browser Mobile App Client to client Database tier to Business tier Cross Server Push Push All the way The future of push Real time
  • 3. Asynchronous communication in the real world “I’ll get back to you” “Don’t call us,…” Low fuel warning in car “Please let me know” “Return to sender – address unknown” Newspaper delivery Next instruction from car navigation system Telephone ringing Alarm clock buzzing Parking sensors beeping Fire alarm screaming
  • 4. Asynchronous interactions and push in the IT landscape More timely information Notification as soon as possible Proactive offering Do not ask and you shall be given Lower load on back end – don’t call us (all the time) … Stop hitting the F5 button! Multi-channel information manipulation and dissemination Changes and events come in from everywhere Decouple system components through generic infrastructure for handling events and push Yet integrate
  • 5. Pushing it … into the user interface Automatically refreshing (part of) a page Update table Redrawing chart Displaying popup to alert user to an event Arrival of message (email or chat) Signing in or out of contact (presence) Lock or release of some resource Notification Changing status of items on the page Highlight change indicator Show icon Change text to italic Play a sound
  • 6. 3rd party Mobile Device Mobile Device Web Browser Web Browser JEE Application Server JEE Application Server Complex Event Processor Non Java Server RDBMS Email Server Chat Server RDBMS
  • 7. Upstream notification Database to Middle Tier Middle Tier to Browser or Mobile device Browser to other Browser or Mobile device Mobile Device Web Browser JEE Application Server RDBMS
  • 8. Typical server-to-client push scenario: CHat Web Browser JEE Application Server
  • 9. And client to server (to server) Web Browser JEE Application Server
  • 10. The ‘Only tell when asked’ game
  • 11. Server Push challenges How to push against the ‘one way direction’ and despite limitations HTTP and JDBC are request/response – not response only Browser limit of only two channels to one server Server side ‘event handling’ Session has to have an active life beyond requests Or requests have a life beyond response Higher load on the server How to handle the (potential) volume of ‘concurrent’ channels and the number of open threads NIO, Servlet 3.0, Jetty Continuations, Tomcat Advanced I/O
  • 12. Server Push challenges (2) Where do events to push actually come from? Who perceives/receives (real-time) events (on the server side) How are they tied in to the appropriate sessions? Client (consumer) side: how to asynchronously receive events and how to process them/turn them into action and UI updates How to correlate an asynchronously received message with a previously sent request or a subscription For example: mobile phone showing SMS or WhatsApp messages in a conversation thread style
  • 13. Server to web client AJAX – Asynchronous Not as asynchronous as you might think Reverse AJAX – Comet , Push Comet implementations Streaming – never ending response Poll Long Poll Piggy Back (add push message to normal response) Embedded Applet doing raw TCP communications Flash with BlazeDS event streaming WebSockets
  • 14. Comet – implementations Client side: many libraries – DOJO is most notable most AJAX/JavaScript based Applets could also be used (via Applet/JS bridge) Server Side: plain servlets, Servlet 3.0 to alleviate the load on the server from all the open long-lived requests … Grizzly (GlassFish) WebLogic HTTP Channel GWT? DWR – Direct Web Remoting LightStreamer Jetty Zie: http://cometdaily.com/maturity.html
  • 15. Direct Web Remoting Call client side JavaScript functions from Server In multiple browser sessions Synchronously as part of request handling Asynchronously – as server (initiated) push Call server side Java methods from the Client Leading to asynchronous (“background”) AJAX calls
  • 16. Server push with DWR DWR configuration: Servlet in web.xml WEB-INF/dwr.xml with beans to expose to JavaScript Web Browser HTML + JavaScript JEE Application Server Clock
  • 17. Client to Server push to client Web Browser Web Browser HTML + JavaScript HTML + JavaScript JEE Application Server Servlet EventsProcessor SomeTableWithEventsCoordinator SomeTableWithEventsCoordinator
  • 18. The nudge Event should have small payload – just an indication of the type of event and a key-reference to the payload Based on the information, the consumer decides to retrieve the associated payload, using the key UI Component nudge handler Payload Retriever Nudgee Nudger
  • 19. websockets Protocol – TCP based, initiated with normal HTTP exchange One more transport option for Comet Finalized last week! Client and Server API JavaScript (client) Server side? Part of HTML 5 A very loose collection of proposals, concepts and specifications Supported in Chrome and Safari as well as Firefox, … Also from mobile platform Server Side Support very fragmented at this point With the protocol finalized, server support will rapidly emerge
  • 20.
  • 23. Exception: Blue Tooth, Near-Field CommunicationMobile Device Mobile Device Web Browser Web Browser JEE Application Server Client to client
  • 24. Server to mobile push:multiplexed, semi-poll based
  • 25. Apple push notification service Persistent TCP/IP connection Continuously streaming TCP/IP connection is initially set up by client Passing its identifier to APNS Server side of applications can send messages to APNS with the device identifier APNS streams these messages to the device Message payload is JSON
  • 26. Apple push notification service Using APNS, only one channel is used for all messages to be pushed to a device Shared by many different applications APNS does store-and-forward (to retain messages when the client is off-line) Note: the push payload is very small (< 256 bytes) just enough for the client to initiate a request for the real information
  • 27. Android push notification multiplexed from the cloud
  • 28. Cross gap push mechanisms Many channels are available to push messages from one entity to another across application, technology and location boundaries JMS (Java/JEE specific) (one way) WebService (SOAP or REST) “HTTP Channel” WebSockets Http Call to Servlet XMPP
  • 29. JMS (Java Message Service) == The “inter application Mail Man” Application A JMS Queue Application B Application X Application C JMS is perfect for highly decoupled, scalable, cross JVM/cross server, reliable event push JMS is available on any JEE platform JMS is Java only Mobile devices, browsers, databases and .NET do not speak JMS
  • 30. JMS Queue/TOPIC Listener JMS Listener is notified asynchronously of messages Start background job on behalf of web app Note: spawn thread from Servlet or EJB is not recommended Create report, send email, execute batch job Listen to events on behalf of web application And inform web application of relevant stuff Web Application JMS Queue or Topic MDB JMS Queue or Topic Web Application ? MDB EJB
  • 31. Live volleyball reporting Web Browser UI handler JMS Queue Listener (http channel, JMS, ..) BAM Data Object
  • 32. Cross tier push – architecture pattern listener listener listener register event handler Payload Retriever Scheduled Poll Job Push Receptor ‘Events collector’
  • 33. The Hollywood Principle: Query ResultSet Change Notification
  • 34. Middle tier alerted by Database Oracle RDBMS invokes Java Listener with event details Register DatabaseChangeNotification SQL query
  • 37. Update in database triggers notification to Java Listener
  • 38. Multiplexed Poll-based database-to-middle tier push When no Database Query Result Change Notification is available – a trick is needed Some databases can do HTTP calls:
  • 39. Database to Middle Tier to Client notification Session cache Application Scope event handler D 4 3 9 C 5 A servlet servlet 1 8 2 HTTP B Proce-dure 7 EMP Job 6
  • 40. Demo cross tier push – database  middle tier  browser
  • 41. Multiplexed Poll-based database-to-middle tier push A poll based approach can emulate the push behavior One thread in the middle tier does polling on behalfof all sessions: a single channel A single table in the database isused to collectall ‘pushableevents’ Middle tier pollretrieves new entries from thetable and publishedevents to centralevent handler Listeners registeredwith a centralevent handler Application Scope event handler session session Scheduled Job session CD_TBL Notifications Proce-dure
  • 42. Future Developments The real time enterprise The event driven enterprise Further evolution of push notification at every tier Mobile perhaps leading the way Infrastructure and frameworks providing push mechanisms Servlet 3.0, Java NIO, WebSockets,SPDY, XMPP and other lighter weight solutions for bi-directional communication over TCP And broad support in browsers and application servers For example: upcoming WebSockets supportin Glassfish and WebLogic
  • 43. Summary Asynchronous interaction is good for decoupling, decreasing load on system and increasing timeliness Push is valuable at various levels and between different components in the enterprise architecture Challenges: push is often against the [http, JDBC,..] grain correlate push notifications into right consumer handle asynchronously received push messages prevent swamping of infrastructure Server to client push will gain in scalability and ease Thanks to WebSockets and implementations thereof and libraries (e.g. Dojo) leveraging it Also used for server-to-server and client-to-client Push is an essential ingredient of modern applications – from browser and mobile to middle tier and database

Notes de l'éditeur

  1. Pushing information is a decoupled and performance effective way to ensure interested parties have the most recent information ASAP.This session looks at reasons and technology for pushing information at various points in an enterprise architecture. Databases can push to the middle tier - as a result of DML - the middle tier pushes to the browser - triggered by email, chat, JMS message or CEP event and one client can push to another. The link with Event Driven Architecture is explored.HTTP Channels and Web Sockets are demonstrated as well as AJAX based background push, database query result change notification and HTTP calls from the database. We&apos;ll look at what to send in an event and how to present  the push signal in the end.  * Introduce push in the real world: don&apos;t call us and other examples* Explain how push is good for performance (no polling), for decoupling (consumer does not need to know where the push comes from) and most up-to-date information available (as opposed to polling)* Discuss architecture and all the gaps between and within tier where push may be required and how the trigger can originate* Demonstrate how push can be implemented from a database to the middle tier (for example to refresh cache or send signal that ends up in client)* Demonstrate how push can be implemented from middle tier to client - and what it can be used for* Discussion of presentation/visualization of asynchronous, push-based refresh of client* Leveraging the server-client push, demonstrate how client-client push can be implemented (through client-server AJAX and server-client push)* Demonstrate end-to-end push: database undergoing some DML finally resulting in a browser being refreshed* Linking Push with Event Driven Architecture and Complex Event Processing* Brief future outlook* Summary
  2. AsYnchronous communication &amp; cross tier push in enterprise landscape
  3. Two participantsOne can ask questionsThe other can reply; a response is ended with ‘end of message’; after that has been said, the responder has to wait for the next question to be asked before saying anything out loudChallenge: the requestor needs to know as fast as possible and with as few questions asked as possible when the responder is tapped on the back
  4. http://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/RemoteNotificationsPG.pdf