SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Push to the limit – rich and pro-active user interfaces with ADF Lucas Jellema – AMIS (Nieuwegein, The Netherlands) Oracle  Open World 2011
Overview Real time architecture Push – ADF middle tier to browser Active Data Service Custom Push Push triggering pull Push – Database to middle tier Push all the way across the tiers Client to Client Push
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
The ‘Only tell when asked’ game
Introducing ADF Active Data Service Built in mechanism in ADF to push updates from the middle tier to the browser active UI components that refresh upon reception of the push (table, image, output text, DVT graphs) client side infrastructure to process received push messages  a multiplexed (multi-event) channel to push to client – leveraging WebLogic Server push capabilities Long poll today, WebSockets or SPDY tomorrow server side infrastructure to manage active beans and turn events into pushed messages Active data control:  BAM Data Control for push from BAM’s Active Data Cache all the way to data bound UI components
Overview of ADS infrastructure
Using ADF active Data Service to embed chat client in web application Instant Messaging should be instant Requirement to push incoming messages to client Common IM protocol is XMPP (over TCP) Extensible Messaging and Presence Protocol XMPP Java Libraries help to connect to and communicate with XMPP servers For example Smack To embed chat in in ADF application we need to consume messages over XMPP  and push them to the Web Client The ADS approach: Use ‘active’ UI Components Bind them to bean that implements ActiveDataModel Turning the IM messages into entries in ActiveDataModel
Example of ADS: Google Talk Web Browser JEE Application Server
Example of ADS: Google Talk Web Browser JEE Application Server
Push trough Active Data Service Web Browser ADS MessageReceiver
Push trough Active Data Service Web Browser ADS MessageReceiver
Introducing Business Activity Monitoring Operational Business Intelligence Data fed in from many sources: RFID sensors, BPEL, Database Triggers, RSS, ODI Real Time insight  Dashboard Live updates Looking for threshold crossing, exceptions, trends, missing events Display visually and turn into alerts & notifications
Introducing Business Activity Monitoring ADF Application
Embedding real time displays in ADF based on BAM Data Control Configure connection to BAM Server Create BAM Data Control Based on Data Objects inActive Data Cache Drag & Drop Data Control’scollections & attributes toADF Faces pages Just like ADF BC Data Control However:  BAM Data Control is active
Live volleyball reporting Web Browser JMS Queue BAM Data Object
Create BAM Data control
Programmatic cross tier interaction  Web Browser JEE Application Server
Client JavaScript Components manipulate component user action JavaScript Function component clientListener component userorprogrammaticaction partialSubmitautoSubmit Load JSON, CSS, Image, XML, JS property change Requestdata orPush message poll setPropertyListener partial triggers, added targets Queue Custom Event serverListener activeOutputText ERKS ‘ppr script’ partial page refresh Full pagereload push add JS toexecute (ERKS) Server (middle tier) component activeOutputText component add componentsas partial target actionListener, valueChangeListener, …Listener Bean serverListener Active DataModel Object Components Beans & Objects push (DB QRCN) Database Client Server interactions vv.
The push-to-nudge trick(Matthias Wessendorf) Client Listener Function ,[object Object]
Update field value
Modify style property
Call Server (PPR)activeOutputText clientListener type=propertyChange Servlet Active Bean Active data register Event Handler JMS Listener Scheduled Job &  Event Listener
Simple nudge to client
Simple nudge to client
Client to client push – slide synchronization
Client to client push – slide synchronization
activeImageBean activeImageBean
Cross tier push – architecture pattern listener listener listener register event handler Payload Retriever Scheduled Poll Job Push Receptor ‘Events collector’
Cross gap push mechanisms Many channels are available to push messages from one entity to another,  across application, technology and location boundaries JMS (one way) WebService (SOAP or REST) “HTTP Channel” WebSockets Http Call to Servlet XMPP
Client to Client pusH Usually really a combination of Client-to-Server and Server-to-the-other-Client push Exception: Blue Tooth, Near-Field Communication
Server to mobile push:multiplexed, semi-poll based
Push from Database to middle tier  Middle tier asks database – through JDBC, ODBC, SQL*Net, HTTP, … The database is reactive only – not pushy at all Some mechanisms allow the database to take the initiative and start to push Database Query Result Change Notification Http calls from utl_http or JSP Table with Multiplexed Poll
The Hollywood Principle: Query ResultSet Change Notification POJO / ADF BC
Cache Refresh triggered by DB Oracle RDBMS invokes Java Listener with event details POJO / ADF BC Register DatabaseChangeNotification SQL query PL/SQL
Shared Application Modules Regular Application Module instances are session level – i.e. not shared across (web) sessions Shared Application Module instances are shared across sessions like an Application Scope Managed Bean Used for Static Data Sets: Look Up Data and Reference Tables Sessions can reuse the data from a shared Application Module without having to access the database And without loading the data in session level memory scope View Accessors can be used to access data in the Shared Application Module’s VOs For example for use in LOVs or Validation Rules
Shared Application Module Instance
Auto Refresh for View Objects ViewObjects in a Shared Application Module can be registered for auto refresh Typically such application wide VOs are near-static Whenever the underlying data set changes (in the database), the VO rowset should be refreshed By setting Auto Refresh (to true) for the ViewObject, the VO will be refreshed whenever the database is changed ADF registers the VO query with the Database (11g) Result Set Change Notification mechanism through JDBC Note: the VO should not have an Order By clause nor select a Date column
Steps for auto refresh enabling Create Shared Application Module New application module that is added to list of Application Level instances in the Project properties Create the ViewObject that queries the ‘static data’ and add to Shared Application Module Set the Auto Refresh property to true for VO instance Database must be 11g (and have parameter compatible set to 11.1.0 or above) database user must have the Change Notification privilege To piggy back changes to page, set changeEventPolicy to autoPPR on data binding
Set Auto Refresh for ViewObject Set Auto Refresh for ViewObject Grant Change Notification todatabase user
Demo: Database push to View Object in action DBQRCN
Auto-PPR for immediate refresh of Data Bound components To have ADF automatically refresh data bound components when underlying value binding has changed its value Set changeEventPolicy=ppr on iterator Refresh as piggy back on any request cycle No partialTriggers attribute required!
JEE Application Server Alternative Database to middle tier push implementation Session scope bean listener listener listener register Application scope bean event handler servlet Payload Retriever Scheduled Poll Job Push Receptor utl_http RDBMS ‘Events collector’ trigger
Cross Tier Push Web Browser table activeOT Cache refresher JEE Application Server evtlsnr servlet RDBMS job trg
Initiate ‘normaL’ PPR cycle in which to refresh ui components Client Listener Function component queue event activeOutputText someComponent serverListener clientListener type=propertyChange refresh page PPR request Bean Iterator Auto ppr retrieve data View clear cache Entity RDBMS
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
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 Such as Active Data Service 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

Weitere ähnliche Inhalte

Was ist angesagt?

Integrating Your Site With Internet Explorer 8
Integrating Your Site With Internet Explorer 8Integrating Your Site With Internet Explorer 8
Integrating Your Site With Internet Explorer 8goodfriday
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineIMC Institute
 
Davivienda - Exceptional Web Experiences
Davivienda - Exceptional Web ExperiencesDavivienda - Exceptional Web Experiences
Davivienda - Exceptional Web ExperiencesDjalma Britto
 
Building Asynchronous Services With Sca
Building Asynchronous Services With ScaBuilding Asynchronous Services With Sca
Building Asynchronous Services With ScaLuciano Resende
 
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
 
Designing a Language and System for REST-oriented service composition,as a se...
Designing a Language and System for REST-oriented service composition,as a se...Designing a Language and System for REST-oriented service composition,as a se...
Designing a Language and System for REST-oriented service composition,as a se...raniakhalaf
 
Bite: Workflow Composition for the Web. Presented at the ICSOC Conference 2007
Bite: Workflow Composition for the Web. Presented at the ICSOC Conference 2007Bite: Workflow Composition for the Web. Presented at the ICSOC Conference 2007
Bite: Workflow Composition for the Web. Presented at the ICSOC Conference 2007raniakhalaf
 
A Flow Based Approach for End to End Mashups
A Flow Based Approach for End to End MashupsA Flow Based Approach for End to End Mashups
A Flow Based Approach for End to End Mashupsraniakhalaf
 
ECM Technical Solution
ECM Technical SolutionECM Technical Solution
ECM Technical SolutionThanh Nguyen
 
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008Edoardo Schepis
 
Fishbowl Webinar - Windchill Performance: You can't manage what you can't mea...
Fishbowl Webinar - Windchill Performance: You can't manage what you can't mea...Fishbowl Webinar - Windchill Performance: You can't manage what you can't mea...
Fishbowl Webinar - Windchill Performance: You can't manage what you can't mea...Fishbowl Solutions
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applicationsManish Corriea
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azureManish Corriea
 
Sp2010 high availlability_sql
Sp2010 high availlability_sqlSp2010 high availlability_sql
Sp2010 high availlability_sqlSamuel Zürcher
 
Integrating sps 2010 and windows azure
Integrating sps 2010 and windows azureIntegrating sps 2010 and windows azure
Integrating sps 2010 and windows azureManish Corriea
 
WebLogic JMS System Best Practices
WebLogic JMS System Best PracticesWebLogic JMS System Best Practices
WebLogic JMS System Best PracticesTrivadis
 
SQLUG event: An evening in the cloud: the old, the new and the big
 SQLUG event: An evening in the cloud: the old, the new and the big  SQLUG event: An evening in the cloud: the old, the new and the big
SQLUG event: An evening in the cloud: the old, the new and the big Mike Martin
 

Was ist angesagt? (17)

Integrating Your Site With Internet Explorer 8
Integrating Your Site With Internet Explorer 8Integrating Your Site With Internet Explorer 8
Integrating Your Site With Internet Explorer 8
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
Davivienda - Exceptional Web Experiences
Davivienda - Exceptional Web ExperiencesDavivienda - Exceptional Web Experiences
Davivienda - Exceptional Web Experiences
 
Building Asynchronous Services With Sca
Building Asynchronous Services With ScaBuilding Asynchronous Services With Sca
Building Asynchronous Services With Sca
 
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
 
Designing a Language and System for REST-oriented service composition,as a se...
Designing a Language and System for REST-oriented service composition,as a se...Designing a Language and System for REST-oriented service composition,as a se...
Designing a Language and System for REST-oriented service composition,as a se...
 
Bite: Workflow Composition for the Web. Presented at the ICSOC Conference 2007
Bite: Workflow Composition for the Web. Presented at the ICSOC Conference 2007Bite: Workflow Composition for the Web. Presented at the ICSOC Conference 2007
Bite: Workflow Composition for the Web. Presented at the ICSOC Conference 2007
 
A Flow Based Approach for End to End Mashups
A Flow Based Approach for End to End MashupsA Flow Based Approach for End to End Mashups
A Flow Based Approach for End to End Mashups
 
ECM Technical Solution
ECM Technical SolutionECM Technical Solution
ECM Technical Solution
 
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
 
Fishbowl Webinar - Windchill Performance: You can't manage what you can't mea...
Fishbowl Webinar - Windchill Performance: You can't manage what you can't mea...Fishbowl Webinar - Windchill Performance: You can't manage what you can't mea...
Fishbowl Webinar - Windchill Performance: You can't manage what you can't mea...
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azure
 
Sp2010 high availlability_sql
Sp2010 high availlability_sqlSp2010 high availlability_sql
Sp2010 high availlability_sql
 
Integrating sps 2010 and windows azure
Integrating sps 2010 and windows azureIntegrating sps 2010 and windows azure
Integrating sps 2010 and windows azure
 
WebLogic JMS System Best Practices
WebLogic JMS System Best PracticesWebLogic JMS System Best Practices
WebLogic JMS System Best Practices
 
SQLUG event: An evening in the cloud: the old, the new and the big
 SQLUG event: An evening in the cloud: the old, the new and the big  SQLUG event: An evening in the cloud: the old, the new and the big
SQLUG event: An evening in the cloud: the old, the new and the big
 

Ähnlich wie Push to the limit - rich and pro-active user interfaces with ADF (Oracle Open World 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)
Don't call us - we'll push - cross tier push architecture (JavaOne 2011)Lucas Jellema
 
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)Lucas Jellema
 
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptxTransform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptxkmani5
 
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx (3).ppt
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx (3).pptTransform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx (3).ppt
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx (3).pptHusseinWassof
 
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Lucas Jellema
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...Lucas Jellema
 
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1Lucas Jellema
 
Windows Phone 7 Unleashed Session 2
Windows Phone 7 Unleashed Session 2Windows Phone 7 Unleashed Session 2
Windows Phone 7 Unleashed Session 2Wes Yanaga
 
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceExperiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceLucas Jellema
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션Amazon Web Services Korea
 
5 Years of Progress in Active Data Warehousing
5 Years of Progress in Active Data Warehousing5 Years of Progress in Active Data Warehousing
5 Years of Progress in Active Data WarehousingTeradata
 
Roles y Responsabilidades en SQL Azure
Roles y Responsabilidades en SQL AzureRoles y Responsabilidades en SQL Azure
Roles y Responsabilidades en SQL AzureEduardo Castro
 
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Lucas Jellema
 
Spicing up SharePoint web parts
Spicing up SharePoint web partsSpicing up SharePoint web parts
Spicing up SharePoint web partsRandy Williams
 
Content-Driven Apps with React
Content-Driven Apps with ReactContent-Driven Apps with React
Content-Driven Apps with ReactNetcetera
 
Dh2 Apps Training Part2
Dh2   Apps Training Part2Dh2   Apps Training Part2
Dh2 Apps Training Part2jamram82
 
Parallelminds.asp.net with sp
Parallelminds.asp.net with spParallelminds.asp.net with sp
Parallelminds.asp.net with spparallelminder
 
Microsoft Windows Azure - Cloud Computing Hosting Environment Presentation
Microsoft Windows Azure - Cloud Computing Hosting Environment PresentationMicrosoft Windows Azure - Cloud Computing Hosting Environment Presentation
Microsoft Windows Azure - Cloud Computing Hosting Environment PresentationMicrosoft Private Cloud
 

Ähnlich wie Push to the limit - rich and pro-active user interfaces with ADF (Oracle Open World 2011) (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)
 
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
 
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptxTransform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx
 
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx (3).ppt
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx (3).pptTransform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx (3).ppt
Transform-to-Smart-ERP-using-Custom-Mobile-Apps.pptx (3).ppt
 
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
 
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
Jsf On Rails Ejb Jpa Jsf Adf11g Demo1
 
Windows Phone 7 Unleashed Session 2
Windows Phone 7 Unleashed Session 2Windows Phone 7 Unleashed Session 2
Windows Phone 7 Unleashed Session 2
 
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceExperiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
 
5 Years of Progress in Active Data Warehousing
5 Years of Progress in Active Data Warehousing5 Years of Progress in Active Data Warehousing
5 Years of Progress in Active Data Warehousing
 
Roles y Responsabilidades en SQL Azure
Roles y Responsabilidades en SQL AzureRoles y Responsabilidades en SQL Azure
Roles y Responsabilidades en SQL Azure
 
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
 
Spicing up SharePoint web parts
Spicing up SharePoint web partsSpicing up SharePoint web parts
Spicing up SharePoint web parts
 
Content-Driven Apps with React
Content-Driven Apps with ReactContent-Driven Apps with React
Content-Driven Apps with React
 
Dh2 Apps Training Part2
Dh2   Apps Training Part2Dh2   Apps Training Part2
Dh2 Apps Training Part2
 
Windows 8 BootCamp
Windows 8 BootCampWindows 8 BootCamp
Windows 8 BootCamp
 
Parallelminds.asp.net with sp
Parallelminds.asp.net with spParallelminds.asp.net with sp
Parallelminds.asp.net with sp
 
Census Bureau PBOCS
Census Bureau PBOCSCensus Bureau PBOCS
Census Bureau PBOCS
 
Microsoft Windows Azure - Cloud Computing Hosting Environment Presentation
Microsoft Windows Azure - Cloud Computing Hosting Environment PresentationMicrosoft Windows Azure - Cloud Computing Hosting Environment Presentation
Microsoft Windows Azure - Cloud Computing Hosting Environment Presentation
 

Mehr von 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
 

Mehr von 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 ...
 

Kürzlich hochgeladen

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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Kürzlich hochgeladen (20)

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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
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?
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Push to the limit - rich and pro-active user interfaces with ADF (Oracle Open World 2011)

  • 1. Push to the limit – rich and pro-active user interfaces with ADF Lucas Jellema – AMIS (Nieuwegein, The Netherlands) Oracle Open World 2011
  • 2. Overview Real time architecture Push – ADF middle tier to browser Active Data Service Custom Push Push triggering pull Push – Database to middle tier Push all the way across the tiers Client to Client Push
  • 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. The ‘Only tell when asked’ game
  • 8. Introducing ADF Active Data Service Built in mechanism in ADF to push updates from the middle tier to the browser active UI components that refresh upon reception of the push (table, image, output text, DVT graphs) client side infrastructure to process received push messages a multiplexed (multi-event) channel to push to client – leveraging WebLogic Server push capabilities Long poll today, WebSockets or SPDY tomorrow server side infrastructure to manage active beans and turn events into pushed messages Active data control: BAM Data Control for push from BAM’s Active Data Cache all the way to data bound UI components
  • 9. Overview of ADS infrastructure
  • 10. Using ADF active Data Service to embed chat client in web application Instant Messaging should be instant Requirement to push incoming messages to client Common IM protocol is XMPP (over TCP) Extensible Messaging and Presence Protocol XMPP Java Libraries help to connect to and communicate with XMPP servers For example Smack To embed chat in in ADF application we need to consume messages over XMPP and push them to the Web Client The ADS approach: Use ‘active’ UI Components Bind them to bean that implements ActiveDataModel Turning the IM messages into entries in ActiveDataModel
  • 11. Example of ADS: Google Talk Web Browser JEE Application Server
  • 12. Example of ADS: Google Talk Web Browser JEE Application Server
  • 13. Push trough Active Data Service Web Browser ADS MessageReceiver
  • 14. Push trough Active Data Service Web Browser ADS MessageReceiver
  • 15. Introducing Business Activity Monitoring Operational Business Intelligence Data fed in from many sources: RFID sensors, BPEL, Database Triggers, RSS, ODI Real Time insight Dashboard Live updates Looking for threshold crossing, exceptions, trends, missing events Display visually and turn into alerts & notifications
  • 16. Introducing Business Activity Monitoring ADF Application
  • 17. Embedding real time displays in ADF based on BAM Data Control Configure connection to BAM Server Create BAM Data Control Based on Data Objects inActive Data Cache Drag & Drop Data Control’scollections & attributes toADF Faces pages Just like ADF BC Data Control However: BAM Data Control is active
  • 18. Live volleyball reporting Web Browser JMS Queue BAM Data Object
  • 19. Create BAM Data control
  • 20. Programmatic cross tier interaction Web Browser JEE Application Server
  • 21. Client JavaScript Components manipulate component user action JavaScript Function component clientListener component userorprogrammaticaction partialSubmitautoSubmit Load JSON, CSS, Image, XML, JS property change Requestdata orPush message poll setPropertyListener partial triggers, added targets Queue Custom Event serverListener activeOutputText ERKS ‘ppr script’ partial page refresh Full pagereload push add JS toexecute (ERKS) Server (middle tier) component activeOutputText component add componentsas partial target actionListener, valueChangeListener, …Listener Bean serverListener Active DataModel Object Components Beans & Objects push (DB QRCN) Database Client Server interactions vv.
  • 22.
  • 25. Call Server (PPR)activeOutputText clientListener type=propertyChange Servlet Active Bean Active data register Event Handler JMS Listener Scheduled Job & Event Listener
  • 26. Simple nudge to client
  • 27. Simple nudge to client
  • 28. Client to client push – slide synchronization
  • 29. Client to client push – slide synchronization
  • 30.
  • 32. Cross tier push – architecture pattern listener listener listener register event handler Payload Retriever Scheduled Poll Job Push Receptor ‘Events collector’
  • 33. Cross gap push mechanisms Many channels are available to push messages from one entity to another, across application, technology and location boundaries JMS (one way) WebService (SOAP or REST) “HTTP Channel” WebSockets Http Call to Servlet XMPP
  • 34. Client to Client pusH Usually really a combination of Client-to-Server and Server-to-the-other-Client push Exception: Blue Tooth, Near-Field Communication
  • 35. Server to mobile push:multiplexed, semi-poll based
  • 36. Push from Database to middle tier Middle tier asks database – through JDBC, ODBC, SQL*Net, HTTP, … The database is reactive only – not pushy at all Some mechanisms allow the database to take the initiative and start to push Database Query Result Change Notification Http calls from utl_http or JSP Table with Multiplexed Poll
  • 37. The Hollywood Principle: Query ResultSet Change Notification POJO / ADF BC
  • 38. Cache Refresh triggered by DB Oracle RDBMS invokes Java Listener with event details POJO / ADF BC Register DatabaseChangeNotification SQL query PL/SQL
  • 39. Shared Application Modules Regular Application Module instances are session level – i.e. not shared across (web) sessions Shared Application Module instances are shared across sessions like an Application Scope Managed Bean Used for Static Data Sets: Look Up Data and Reference Tables Sessions can reuse the data from a shared Application Module without having to access the database And without loading the data in session level memory scope View Accessors can be used to access data in the Shared Application Module’s VOs For example for use in LOVs or Validation Rules
  • 41. Auto Refresh for View Objects ViewObjects in a Shared Application Module can be registered for auto refresh Typically such application wide VOs are near-static Whenever the underlying data set changes (in the database), the VO rowset should be refreshed By setting Auto Refresh (to true) for the ViewObject, the VO will be refreshed whenever the database is changed ADF registers the VO query with the Database (11g) Result Set Change Notification mechanism through JDBC Note: the VO should not have an Order By clause nor select a Date column
  • 42. Steps for auto refresh enabling Create Shared Application Module New application module that is added to list of Application Level instances in the Project properties Create the ViewObject that queries the ‘static data’ and add to Shared Application Module Set the Auto Refresh property to true for VO instance Database must be 11g (and have parameter compatible set to 11.1.0 or above) database user must have the Change Notification privilege To piggy back changes to page, set changeEventPolicy to autoPPR on data binding
  • 43. Set Auto Refresh for ViewObject Set Auto Refresh for ViewObject Grant Change Notification todatabase user
  • 44. Demo: Database push to View Object in action DBQRCN
  • 45. Auto-PPR for immediate refresh of Data Bound components To have ADF automatically refresh data bound components when underlying value binding has changed its value Set changeEventPolicy=ppr on iterator Refresh as piggy back on any request cycle No partialTriggers attribute required!
  • 46. JEE Application Server Alternative Database to middle tier push implementation Session scope bean listener listener listener register Application scope bean event handler servlet Payload Retriever Scheduled Poll Job Push Receptor utl_http RDBMS ‘Events collector’ trigger
  • 47. Cross Tier Push Web Browser table activeOT Cache refresher JEE Application Server evtlsnr servlet RDBMS job trg
  • 48. Initiate ‘normaL’ PPR cycle in which to refresh ui components Client Listener Function component queue event activeOutputText someComponent serverListener clientListener type=propertyChange refresh page PPR request Bean Iterator Auto ppr retrieve data View clear cache Entity RDBMS
  • 49. 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
  • 50. 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
  • 51. 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 Such as Active Data Service 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
  • 52. Summary Push Pro active or at least real time user interface Real time user to user interaction Decrease load on infrastructure (refresh over and over) Real push hardly exists Smart poll/pull is often underlying implementation Piggy backing, Multiplexing, decoupling etc. are required to scale ADS is powerful Especially with the ‘nudge now you do a fine grained fetch or refresh’ pattern Database can push too – using DBQRCN, HTTP, …. ADF can push to Android or iOS Using Google and Apple Push Notification Services ADF Mobile should support push notification as well
  • 53. Session Plugging Sunday – Gold Nuggets in ADF (S32502)3.15-4.15, Moscone West-2000 Tuesday – Reaching Out from PL/SQL (S08625 )10.15-11.15, Mariott Marquis, Salon 7 Tuesday – (JavaOne) Cross Tier Push Architecture (Don’t call us, we’ll push you) (S24722)4.30-5.15 PM, Hotel Nikko, Monterey I/II Wednesday – Push to the Limit: Rich and Proactive User Interfaces with Oracle ADF (S08620)5-6 PM, Mariott Marquis, Golden Gate A Thursday –Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (S08623)4-5 PM, Moscone West – 2020

Hinweis der Redaktion

  1. Push to the limit - rich and pro-active user interfaces with ADF Visual appeal and desktop-like reaction to user input were key elements in Web 2.0, powered by AJAX. The next generation user interface is active - presenting data and events in real time, driven by server push technology. This session demonstrates how ADF Active Data Service (ADS) and the BAM Data Control are leveraged to create an active UI. Messages arriving on JMS, through HTTP, from Complex Event Processing and from email servers are pushed to the browser, updating charts, tables and even causing popups to open. The session demonstrates a Chat implementation integrated in a Fusion Web application. It also shows how Database Query Result Change Notification and ADS allow events to be pushed from database all the way to user interface.Demo: http://technology.amis.nl/blog/12353/leveraging-html-5-navigator-api-to-show-the-browsers-current-location-on-an-adf-faces-11gr2-thematic-map-component
  2. AsYnchronous communication & 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://www.oracle.com/technetwork/articles/jellema-googletalk-094343.html
  5. http://www.oracle.com/technetwork/articles/jellema-googletalk-094343.html