SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Lucas Jellema – AMIS (Nieuwegein)
DON'T CALL US - WE'LL PUSH –
ON CROSS TIER PUSH ARCHITECTURE




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
Mobile        Mobile
                                   Device        Device
Web Browser       Web Browser




                                                                      Non
  Complex Event        JEE Application          JEE Application
                                                                      Java
    Processor               Server                  Server
                                                                     Server




                                            Email
          RDBMS                                             Chat Server
                        RDBMS               Server
UPSTREAM NOTIFICATION

• Database to Middle Tier
• Middle Tier to Browser                Mobile Device
  or Mobile device
• Browser to other           Web Browser
  Browser or Mobile device




                             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 are 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
   – 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




 HTML +      Web Browser                            Web Browser    HTML +
JavaScript                                                        JavaScript




                                  Servlet
                           JEE Application Server
                                 Events
                                Processor

         SomeTableWithEvents                SomeTableWithEvents
             Coordinator                        Coordinator
ASYNCHRONOUS JOB
PROGRESS INDICATOR
SPIN OFF ANOTHER THREAD TO DO THE
     WORK AND INFORM ON PROGRESS


             Web Browser
 HTML +
JavaScript




                               Servlet


         ServerSide DWR Bean

                                         Perform long running
                                         job & report progress
DEMO
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

            nudge handler          UI Component


                        Payload
      Nudgee           Retriever




       Nudger
CLIENT TO CLIENT

 •   Usually really a combination of
      – Client-to-Server
      – and Server-to-the-other-Client push
 •   Exception: Blue Tooth, Near-Field Communication



                                       Mobile     Mobile
                                       Device     Device
Web Browser           Web Browser




                           JEE Application
                                Server
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
WEB SOCKETS

• Protocol – TCP based, initiated with normal HTTP
  exchange
   – One more transport option for Comet
   – Finalized last month
• 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
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”
     • 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




Application A                                Application B
                          JMS
                         Queue
Application C                                Application X
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

          Web                  JMS Queue or
                                   Topic               MDB
        Application


   • Listen to events on behalf of web application
      – And inform web application of relevant stuff
JMS Queue or                    ?          Web
    Topic             MDB
                                         Application
                              EJB
LIVE VOLLEYBALL REPORTING




                         Web Browser


       JMS Queue



                                  UI handler


                   Listener
                     (http
                   channel,
                    JMS, ..)
CROSS TIER PUSH –
ARCHITECTURE PATTERN


    listener        listener       listener
  register

                   event handler


    Scheduled         Payload        Push
     Poll Job        Retriever     Receptor




                 ‘Events
                collector’
THE HOLLYWOOD PRINCIPLE:
QUERY RESULTSET CHANGE NOTIFICATION
MIDDLE TIER ALERTED BY DATABASE




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          Application Scope
            cache            event handler
      D
      5   3 C     4                  9
                        A
  1       servlet            servlet
          2                                8
              B                                  HTTP




                                         Proce
                                 7       -dure

                  EMP   6
                                     Job
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 behalf
     of all sessions: a single channel
   – A single table in
     the database is            Application Scope
     used to collect             event handler                session
     all „pushable                                        session
                               Scheduled
     events‟                                      session
                                  Job
   – Middle tier poll
     retrieves new
     entries from the
     table and published                     CD_TBL
     events to central
     event handler
                                  Notificat
   – Listeners registered           ions                Proce
                                                        -dure
     with a central
     event handler
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 support
      in Glassfish and WebLogic
   – Project Avatar
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
Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 2011, The Netherlands)

Contenu connexe

Tendances

Zimbra Collaboration Suite Vs Microsoft Exchange 2007
Zimbra Collaboration Suite Vs Microsoft Exchange 2007Zimbra Collaboration Suite Vs Microsoft Exchange 2007
Zimbra Collaboration Suite Vs Microsoft Exchange 2007agileware
 
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...Amazon Web Services
 
Subversion Edge Overview
Subversion Edge OverviewSubversion Edge Overview
Subversion Edge OverviewLotharSchubert
 
Architecture of a Modern Web App - SpringOne India
Architecture of a Modern Web App - SpringOne IndiaArchitecture of a Modern Web App - SpringOne India
Architecture of a Modern Web App - SpringOne IndiaJeremy Grelle
 
Couchbase - orbitz use case - nyc meetup
Couchbase - orbitz use case - nyc meetupCouchbase - orbitz use case - nyc meetup
Couchbase - orbitz use case - nyc meetupsharonyb
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By DesignTim Morrow
 
VMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric
 
FastView acceleration overview
FastView acceleration overviewFastView acceleration overview
FastView acceleration overviewYaron_Radware
 
Amazon CloudFront - Delivering Dynamic Content From The Edge
Amazon CloudFront - Delivering Dynamic Content From The EdgeAmazon CloudFront - Delivering Dynamic Content From The Edge
Amazon CloudFront - Delivering Dynamic Content From The EdgeAmazon Web Services
 
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The CloudTricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The CloudMySQLConference
 
Don't Lose Your Viewers: Keep Their Attention With High Performance Streaming
Don't Lose Your Viewers:  Keep Their Attention With High Performance StreamingDon't Lose Your Viewers:  Keep Their Attention With High Performance Streaming
Don't Lose Your Viewers: Keep Their Attention With High Performance StreamingCompuware APM
 
Aptimize SharePoint Datasheet
Aptimize SharePoint DatasheetAptimize SharePoint Datasheet
Aptimize SharePoint DatasheetArmand Sultantono
 
Performance Implications of Mobile Design
Performance Implications of Mobile DesignPerformance Implications of Mobile Design
Performance Implications of Mobile DesignGuy Podjarny
 
Why Traditional Databases Fail so Miserably to Scale with E-Commerce Site Growth
Why Traditional Databases Fail so Miserably to Scale with E-Commerce Site GrowthWhy Traditional Databases Fail so Miserably to Scale with E-Commerce Site Growth
Why Traditional Databases Fail so Miserably to Scale with E-Commerce Site GrowthClustrix
 
JNUC 2017: Open Distribution Server
JNUC 2017: Open Distribution ServerJNUC 2017: Open Distribution Server
JNUC 2017: Open Distribution ServerBryson Tyrrell
 

Tendances (20)

2018 jk
2018 jk2018 jk
2018 jk
 
Zimbra Collaboration Suite Vs Microsoft Exchange 2007
Zimbra Collaboration Suite Vs Microsoft Exchange 2007Zimbra Collaboration Suite Vs Microsoft Exchange 2007
Zimbra Collaboration Suite Vs Microsoft Exchange 2007
 
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
 
Subversion Edge Overview
Subversion Edge OverviewSubversion Edge Overview
Subversion Edge Overview
 
Architecture of a Modern Web App - SpringOne India
Architecture of a Modern Web App - SpringOne IndiaArchitecture of a Modern Web App - SpringOne India
Architecture of a Modern Web App - SpringOne India
 
Couchbase - orbitz use case - nyc meetup
Couchbase - orbitz use case - nyc meetupCouchbase - orbitz use case - nyc meetup
Couchbase - orbitz use case - nyc meetup
 
EMAIL
EMAIL EMAIL
EMAIL
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By Design
 
VMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al Sargent
 
Slide 1
Slide 1Slide 1
Slide 1
 
FastView acceleration overview
FastView acceleration overviewFastView acceleration overview
FastView acceleration overview
 
Amazon CloudFront - Delivering Dynamic Content From The Edge
Amazon CloudFront - Delivering Dynamic Content From The EdgeAmazon CloudFront - Delivering Dynamic Content From The Edge
Amazon CloudFront - Delivering Dynamic Content From The Edge
 
Language Weaver
Language WeaverLanguage Weaver
Language Weaver
 
AWS Simple Work Flow
AWS Simple Work FlowAWS Simple Work Flow
AWS Simple Work Flow
 
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The CloudTricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
 
Don't Lose Your Viewers: Keep Their Attention With High Performance Streaming
Don't Lose Your Viewers:  Keep Their Attention With High Performance StreamingDon't Lose Your Viewers:  Keep Their Attention With High Performance Streaming
Don't Lose Your Viewers: Keep Their Attention With High Performance Streaming
 
Aptimize SharePoint Datasheet
Aptimize SharePoint DatasheetAptimize SharePoint Datasheet
Aptimize SharePoint Datasheet
 
Performance Implications of Mobile Design
Performance Implications of Mobile DesignPerformance Implications of Mobile Design
Performance Implications of Mobile Design
 
Why Traditional Databases Fail so Miserably to Scale with E-Commerce Site Growth
Why Traditional Databases Fail so Miserably to Scale with E-Commerce Site GrowthWhy Traditional Databases Fail so Miserably to Scale with E-Commerce Site Growth
Why Traditional Databases Fail so Miserably to Scale with E-Commerce Site Growth
 
JNUC 2017: Open Distribution Server
JNUC 2017: Open Distribution ServerJNUC 2017: Open Distribution Server
JNUC 2017: Open Distribution Server
 

En vedette

The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012Lucas Jellema
 
Hadoop, oracle and the industrial revolution of data
Hadoop, oracle and the industrial revolution of data Hadoop, oracle and the industrial revolution of data
Hadoop, oracle and the industrial revolution of data Guy Harrison
 
Big datacamp2013 share
Big datacamp2013 shareBig datacamp2013 share
Big datacamp2013 shareGuy Harrison
 
Mega trends in information management
Mega trends in information managementMega trends in information management
Mega trends in information managementGuy Harrison
 
Speedy perception trumps speedy reception–smart asynchronous interactions (N...
Speedy perception trumps speedy reception–smart asynchronous interactions  (N...Speedy perception trumps speedy reception–smart asynchronous interactions  (N...
Speedy perception trumps speedy reception–smart asynchronous interactions (N...Lucas Jellema
 
Thinking Through Enterprise Performance - JavaOne 2012
Thinking Through Enterprise Performance - JavaOne 2012Thinking Through Enterprise Performance - JavaOne 2012
Thinking Through Enterprise Performance - JavaOne 2012Lucas Jellema
 
Hadoop, Oracle and the big data revolution collaborate 2013
Hadoop, Oracle and the big data revolution collaborate 2013Hadoop, Oracle and the big data revolution collaborate 2013
Hadoop, Oracle and the big data revolution collaborate 2013Guy Harrison
 
Thriving and surviving the Big Data revolution
Thriving and surviving the Big Data revolutionThriving and surviving the Big Data revolution
Thriving and surviving the Big Data revolutionGuy Harrison
 
Fontys Lecture - The Evolution of the Oracle Database 2016
Fontys Lecture -  The Evolution of the Oracle Database 2016Fontys Lecture -  The Evolution of the Oracle Database 2016
Fontys Lecture - The Evolution of the Oracle Database 2016Lucas Jellema
 
ADF DVT Speed Dating - Meeting the Gantt Charts
ADF DVT Speed Dating - Meeting the Gantt ChartsADF DVT Speed Dating - Meeting the Gantt Charts
ADF DVT Speed Dating - Meeting the Gantt ChartsLucas Jellema
 
Introducing Oracle Real-Time Integration Business Insight
Introducing Oracle Real-Time Integration Business InsightIntroducing Oracle Real-Time Integration Business Insight
Introducing Oracle Real-Time Integration Business InsightLucas Jellema
 
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Lucas Jellema
 
The AMIS Report from Oracle Open World and JavaOne 2011
The AMIS Report from Oracle Open World and JavaOne 2011The AMIS Report from Oracle Open World and JavaOne 2011
The AMIS Report from Oracle Open World and JavaOne 2011Lucas Jellema
 
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Lucas Jellema
 
Slides for Oracle OpenWorld 2015 Wednesday Keynote by Jown Fowler and Juan Lo...
Slides for Oracle OpenWorld 2015 Wednesday Keynote by Jown Fowler and Juan Lo...Slides for Oracle OpenWorld 2015 Wednesday Keynote by Jown Fowler and Juan Lo...
Slides for Oracle OpenWorld 2015 Wednesday Keynote by Jown Fowler and Juan Lo...Lucas Jellema
 
Oracle LOB Internals and Performance Tuning
Oracle LOB Internals and Performance TuningOracle LOB Internals and Performance Tuning
Oracle LOB Internals and Performance TuningTanel Poder
 
SOA - klein en meeslepend (Waternetwerkdag, 17 november 2011, Nieuwegein)
SOA - klein en meeslepend (Waternetwerkdag, 17 november 2011, Nieuwegein)SOA - klein en meeslepend (Waternetwerkdag, 17 november 2011, Nieuwegein)
SOA - klein en meeslepend (Waternetwerkdag, 17 november 2011, Nieuwegein)Lucas Jellema
 
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...Lucas Jellema
 
Java ain't scary - introducing Java to PL/SQL Developers
Java ain't scary - introducing Java to PL/SQL DevelopersJava ain't scary - introducing Java to PL/SQL Developers
Java ain't scary - introducing Java to PL/SQL DevelopersLucas Jellema
 
Everything That Is Really Useful in Oracle Database 12c for Application Devel...
Everything That Is Really Useful in Oracle Database 12c for Application Devel...Everything That Is Really Useful in Oracle Database 12c for Application Devel...
Everything That Is Really Useful in Oracle Database 12c for Application Devel...Lucas Jellema
 

En vedette (20)

The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012
 
Hadoop, oracle and the industrial revolution of data
Hadoop, oracle and the industrial revolution of data Hadoop, oracle and the industrial revolution of data
Hadoop, oracle and the industrial revolution of data
 
Big datacamp2013 share
Big datacamp2013 shareBig datacamp2013 share
Big datacamp2013 share
 
Mega trends in information management
Mega trends in information managementMega trends in information management
Mega trends in information management
 
Speedy perception trumps speedy reception–smart asynchronous interactions (N...
Speedy perception trumps speedy reception–smart asynchronous interactions  (N...Speedy perception trumps speedy reception–smart asynchronous interactions  (N...
Speedy perception trumps speedy reception–smart asynchronous interactions (N...
 
Thinking Through Enterprise Performance - JavaOne 2012
Thinking Through Enterprise Performance - JavaOne 2012Thinking Through Enterprise Performance - JavaOne 2012
Thinking Through Enterprise Performance - JavaOne 2012
 
Hadoop, Oracle and the big data revolution collaborate 2013
Hadoop, Oracle and the big data revolution collaborate 2013Hadoop, Oracle and the big data revolution collaborate 2013
Hadoop, Oracle and the big data revolution collaborate 2013
 
Thriving and surviving the Big Data revolution
Thriving and surviving the Big Data revolutionThriving and surviving the Big Data revolution
Thriving and surviving the Big Data revolution
 
Fontys Lecture - The Evolution of the Oracle Database 2016
Fontys Lecture -  The Evolution of the Oracle Database 2016Fontys Lecture -  The Evolution of the Oracle Database 2016
Fontys Lecture - The Evolution of the Oracle Database 2016
 
ADF DVT Speed Dating - Meeting the Gantt Charts
ADF DVT Speed Dating - Meeting the Gantt ChartsADF DVT Speed Dating - Meeting the Gantt Charts
ADF DVT Speed Dating - Meeting the Gantt Charts
 
Introducing Oracle Real-Time Integration Business Insight
Introducing Oracle Real-Time Integration Business InsightIntroducing Oracle Real-Time Integration Business Insight
Introducing Oracle Real-Time Integration Business Insight
 
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
 
The AMIS Report from Oracle Open World and JavaOne 2011
The AMIS Report from Oracle Open World and JavaOne 2011The AMIS Report from Oracle Open World and JavaOne 2011
The AMIS Report from Oracle Open World and JavaOne 2011
 
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
 
Slides for Oracle OpenWorld 2015 Wednesday Keynote by Jown Fowler and Juan Lo...
Slides for Oracle OpenWorld 2015 Wednesday Keynote by Jown Fowler and Juan Lo...Slides for Oracle OpenWorld 2015 Wednesday Keynote by Jown Fowler and Juan Lo...
Slides for Oracle OpenWorld 2015 Wednesday Keynote by Jown Fowler and Juan Lo...
 
Oracle LOB Internals and Performance Tuning
Oracle LOB Internals and Performance TuningOracle LOB Internals and Performance Tuning
Oracle LOB Internals and Performance Tuning
 
SOA - klein en meeslepend (Waternetwerkdag, 17 november 2011, Nieuwegein)
SOA - klein en meeslepend (Waternetwerkdag, 17 november 2011, Nieuwegein)SOA - klein en meeslepend (Waternetwerkdag, 17 november 2011, Nieuwegein)
SOA - klein en meeslepend (Waternetwerkdag, 17 november 2011, Nieuwegein)
 
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
 
Java ain't scary - introducing Java to PL/SQL Developers
Java ain't scary - introducing Java to PL/SQL DevelopersJava ain't scary - introducing Java to PL/SQL Developers
Java ain't scary - introducing Java to PL/SQL Developers
 
Everything That Is Really Useful in Oracle Database 12c for Application Devel...
Everything That Is Really Useful in Oracle Database 12c for Application Devel...Everything That Is Really Useful in Oracle Database 12c for Application Devel...
Everything That Is Really Useful in Oracle Database 12c for Application Devel...
 

Similaire à Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 2011, The Netherlands)

Don't call us - we'll push - cross tier push architecture (JavaOne 2011)
Don't call us - we'll push - cross tier push architecture (JavaOne 2011)Don't call us - we'll push - cross tier push architecture (JavaOne 2011)
Don't call us - we'll push - cross tier push architecture (JavaOne 2011)Lucas Jellema
 
SignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersSignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersShivanand Arur
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotchaphegaro
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...confluent
 
How Applications Manager helps with application performance monitoring
How Applications Manager helps with application performance monitoringHow Applications Manager helps with application performance monitoring
How Applications Manager helps with application performance monitoringManageEngine, Zoho Corporation
 
New Approaches to Faster Oracle Forms System Performance
New Approaches to Faster Oracle Forms System PerformanceNew Approaches to Faster Oracle Forms System Performance
New Approaches to Faster Oracle Forms System PerformanceCorrelsense
 
Service workers and their role in PWAs
Service workers and their role in PWAsService workers and their role in PWAs
Service workers and their role in PWAsIpsha Bhidonia
 
(ARC206) Architecting Reactive Applications on AWS | AWS re:Invent 2014
(ARC206) Architecting Reactive Applications on AWS | AWS re:Invent 2014(ARC206) Architecting Reactive Applications on AWS | AWS re:Invent 2014
(ARC206) Architecting Reactive Applications on AWS | AWS re:Invent 2014Amazon Web Services
 
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...Lucas Jellema
 
Realtime Messaging und verteilte Systeme mit SharePoint und Windows Azure Ser...
Realtime Messaging und verteilte Systeme mit SharePoint und Windows Azure Ser...Realtime Messaging und verteilte Systeme mit SharePoint und Windows Azure Ser...
Realtime Messaging und verteilte Systeme mit SharePoint und Windows Azure Ser...Damir Dobric
 
Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DayTechMaster Vietnam
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishKoombea
 
Server-Side Programming Primer
Server-Side Programming PrimerServer-Side Programming Primer
Server-Side Programming PrimerIvano Malavolta
 
Server Farms and XML Web Services
Server Farms and XML Web ServicesServer Farms and XML Web Services
Server Farms and XML Web ServicesJorgen Thelin
 
Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloudAnand B Narasimhan
 
QCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentQCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentChris Bailey
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application developmentEngin Hatay
 
SignalR With ASP.Net part1
SignalR With ASP.Net part1SignalR With ASP.Net part1
SignalR With ASP.Net part1Esraa Ammar
 

Similaire à Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 2011, The Netherlands) (20)

Don't call us - we'll push - cross tier push architecture (JavaOne 2011)
Don't call us - we'll push - cross tier push architecture (JavaOne 2011)Don't call us - we'll push - cross tier push architecture (JavaOne 2011)
Don't call us - we'll push - cross tier push architecture (JavaOne 2011)
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
 
SignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersSignalR for ASP.NET Developers
SignalR for ASP.NET Developers
 
Aerobatic Introduction
Aerobatic IntroductionAerobatic Introduction
Aerobatic Introduction
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotcha
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
 
How Applications Manager helps with application performance monitoring
How Applications Manager helps with application performance monitoringHow Applications Manager helps with application performance monitoring
How Applications Manager helps with application performance monitoring
 
New Approaches to Faster Oracle Forms System Performance
New Approaches to Faster Oracle Forms System PerformanceNew Approaches to Faster Oracle Forms System Performance
New Approaches to Faster Oracle Forms System Performance
 
Service workers and their role in PWAs
Service workers and their role in PWAsService workers and their role in PWAs
Service workers and their role in PWAs
 
(ARC206) Architecting Reactive Applications on AWS | AWS re:Invent 2014
(ARC206) Architecting Reactive Applications on AWS | AWS re:Invent 2014(ARC206) Architecting Reactive Applications on AWS | AWS re:Invent 2014
(ARC206) Architecting Reactive Applications on AWS | AWS re:Invent 2014
 
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...
Push to the limit - rich and pro-active user interfaces with ADF - V2 (UKOUG,...
 
Realtime Messaging und verteilte Systeme mit SharePoint und Windows Azure Ser...
Realtime Messaging und verteilte Systeme mit SharePoint und Windows Azure Ser...Realtime Messaging und verteilte Systeme mit SharePoint und Windows Azure Ser...
Realtime Messaging und verteilte Systeme mit SharePoint und Windows Azure Ser...
 
Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech Day
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - English
 
Server-Side Programming Primer
Server-Side Programming PrimerServer-Side Programming Primer
Server-Side Programming Primer
 
Server Farms and XML Web Services
Server Farms and XML Web ServicesServer Farms and XML Web Services
Server Farms and XML Web Services
 
Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloud
 
QCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentQCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application Development
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application development
 
SignalR With ASP.Net part1
SignalR With ASP.Net part1SignalR With ASP.Net part1
SignalR With ASP.Net part1
 

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

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 

Dernier (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 

Don't call us - we'll push - on cross tier push architecture (NLJUG JFall 2011, The Netherlands)

  • 1. Lucas Jellema – AMIS (Nieuwegein) DON'T CALL US - WE'LL PUSH – ON CROSS TIER PUSH ARCHITECTURE 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. Mobile Mobile Device Device Web Browser Web Browser Non Complex Event JEE Application JEE Application Java Processor Server Server Server Email RDBMS Chat Server RDBMS Server
  • 7. UPSTREAM NOTIFICATION • Database to Middle Tier • Middle Tier to Browser Mobile Device or Mobile device • Browser to other Web Browser Browser or Mobile device 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 are 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 – 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 HTML + Web Browser Web Browser HTML + JavaScript JavaScript Servlet JEE Application Server Events Processor SomeTableWithEvents SomeTableWithEvents Coordinator Coordinator
  • 19. SPIN OFF ANOTHER THREAD TO DO THE WORK AND INFORM ON PROGRESS Web Browser HTML + JavaScript Servlet ServerSide DWR Bean Perform long running job & report progress
  • 20. DEMO
  • 21. 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 nudge handler UI Component Payload Nudgee Retriever Nudger
  • 22. CLIENT TO CLIENT • Usually really a combination of – Client-to-Server – and Server-to-the-other-Client push • Exception: Blue Tooth, Near-Field Communication Mobile Mobile Device Device Web Browser Web Browser JEE Application Server
  • 23. SERVER TO MOBILE PUSH: MULTIPLEXED, SEMI-POLL BASED
  • 24. 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
  • 25. 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. WEB SOCKETS • Protocol – TCP based, initiated with normal HTTP exchange – One more transport option for Comet – Finalized last month • 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
  • 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” • 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 Application A Application B JMS Queue Application C Application X
  • 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 Web JMS Queue or Topic MDB Application • Listen to events on behalf of web application – And inform web application of relevant stuff JMS Queue or ? Web Topic MDB Application EJB
  • 31. LIVE VOLLEYBALL REPORTING Web Browser JMS Queue UI handler Listener (http channel, JMS, ..)
  • 32. CROSS TIER PUSH – ARCHITECTURE PATTERN listener listener listener register event handler Scheduled Payload Push Poll Job Retriever Receptor ‘Events collector’
  • 33. THE HOLLYWOOD PRINCIPLE: QUERY RESULTSET CHANGE NOTIFICATION
  • 34. MIDDLE TIER ALERTED BY DATABASE 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 Application Scope cache event handler D 5 3 C 4 9 A 1 servlet servlet 2 8 B HTTP Proce 7 -dure EMP 6 Job
  • 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 behalf of all sessions: a single channel – A single table in the database is Application Scope used to collect event handler session all „pushable session Scheduled events‟ session Job – Middle tier poll retrieves new entries from the table and published CD_TBL events to central event handler Notificat – Listeners registered ions Proce -dure with a central event handler
  • 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 support in Glassfish and WebLogic – Project Avatar
  • 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://127.0.0.1:7101/DWRPushBasic/eventprocessor?payload=dododohttp://127.0.0.1:7101/DWRPushBasic/EventsTableDemo.html
  5. http://technology.amis.nl/blog/13823/adf-faces-handle-task-in-background-process-and-show-real-time-progress-indicator-for-asynchronous-job-using-server-push-in-adf
  6. http://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/RemoteNotificationsPG.pdf