SlideShare a Scribd company logo
Building Powerful WebSocket, Comet, and RESTful Applications Using Atmosphere http://twitter.com/atmo_framework Jeanfrancois Arcand http://twitter.com/jfarcand Paul Sandoz http://twitter.com/PaulSandoz
Creator of  the Grizzly Framework  Creatpr of GlassFish v3 Grizzly Micro Kernel Creator and Co-Leader of  Atmosphere Jeanfrancois 9 years @ Sun Microsystem Creator Async Http Client Co-leader  of Atmosphere Creator and Lead of Jersey Paul 13 years @ Sun Microsystem Java Champion
News and Update Comet and WebSocket Protocol The Atmosphere Framework Ya Ya Ya That’s Impossible High-level RESTful and asynchronous applications Twitter Search Conclusion  Q & A
PrimeFaces (JSF) Spring IntegrationAkka (Scala/Actor) GWT-Comet Apache Tuscany Grails (Plug In)Atlassian (JIRA) Ning (Social Network)AutoDesk (AutoCad) Fabric3 (3D) Thinked (Journie), Sonatype (Secret) Wink Wicket Struts JQuery Atmosphere 0.6.2 New! Atmosphere Gaming Framework
LongPolling Web Socket Streaming Browser Server Browser Server Browser Server Request Request Request Request Response Response Response Response Response Upgrade Data Data
Atmosphere Java WebServer
WebSocket Nothing Comet Java WebServer Atmosphere
Atmosphere WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Atmosphere Application Atmosphere Runtime WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Atmosphere Application Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Atmosphere Annotations Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Cluster Atmosphere Annotations Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Atmosphere Application Cluster Atmosphere Annotations Jersey Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Atmosphere JQuery Atmosphere Application Cluster Atmosphere Annotations Jersey Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Atmosphere JQuery Atmosphere Application Cluster Atmosphere Annotations Jersey Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
Atmosphere Atmosphere JQuery Atmosphere Application Atmosphere Application Atmosphere Spade Server Powered by Grizzly Embed Guice WebSocket Comet API Servlet 3.0 API Nothing Comet
Why
Clustering Why
JMS JGroups Clustering Why
JMS JGroups Clustering Guarantee Delivery Why
Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why
Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why Portable & Unified
Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why Servlet 3.0 Blocking I/O Portable & Unified Comet Native Web Socket New protocol
Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why Servlet 3.0 Blocking I/O Portable & Unified Client Comet Native Web Socket New protocol
Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why Servlet 3.0 Blocking I/O GWT JQuery Portable & Unified Client Java EE Comet Native Web Socket Grails JSF New protocol
Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why JRuby Servlet 3.0 Blocking I/O GWT JQuery Portable & Unified Client Java EE Comet Native Web Socket Grails JSF New protocol
Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why JRuby Groovy Servlet 3.0 Blocking I/O GWT JQuery Portable & Unified Client Java EE Comet Native Web Socket Grails JSF New protocol
Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why JRuby Scala Groovy Servlet 3.0 Blocking I/O GWT JQuery Portable & Unified Client Java EE Comet Native Web Socket Grails JSF New protocol
Same API everywhere. No need to learn the protocol!
Comet Web Socket IE Chrome JQuery Plugin Auto detect best transport to use! Emulate WebSocket! Comet Web Socket Web Socket Server Side Events Safari Firefox Opera Comet Comet Comet
Ya Ya Ya That’s impossible!
@Path("/pubsub/{topic}") @Produces("text/html;charset=ISO-8859-1") public class JQueryPubSub {     private @PathParam("topic") Broadcaster topic;     @GET     public SuspendResponse<String> subscribe() {  return new SuspendResponse.SuspendResponseBuilder<String>()                 .broadcaster(topic)                 .outputComments(true)                 .addListener(new EventsLogger())                 .build();     }     @POST @Broadcast     public Broadcastable publish(@FormParam("message") String message) {         return new Broadcastable(message, "", topic);     }
 function subscribe()             {                 function callback(response)                 {                     if (response.transport != 'polling' && response.state != 'connected'                                  && response.state != 'closed') {                         if (response.status == 200) {                             var data = response.responseBody                             if (data.length > 0) {                                 $('ul').prepend($('<li></li>').text(" Message Received: " + data + " using transport: " + response.transport));                             }                         }                     }                 }                 $.atmosphere.subscribe(document.location.toString() + 'pubsub/'  							+ getElementByIdValue('topic'), callback : callback,                         			         $.atmosphere.request = {transport: getElementByIdValue('transport')});             }
JAX-RS and Jersey with AtmosphereRESTful and asynchronous Web applications  ,[object Object]
Jersey is the reference implementation and provides additional functionality
Atmosphere leverages the extensibility of Jersey
Atmosphere and Jersey can evolve at their own rates
Combine JAX-RS and Atmosphere annotations,[object Object]

More Related Content

What's hot

Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.comRuby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ilya Grigorik
 
0-60 with Goliath: High performance web services
0-60 with Goliath: High performance web services0-60 with Goliath: High performance web services
0-60 with Goliath: High performance web servicesIlya Grigorik
 
Asynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaAsynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and Java
James Falkner
 
Building Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSocketsBuilding Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSockets
Sergi Almar i Graupera
 
Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011
David Troy
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serialization
GWTcon
 
Ruby Proxies for Scale, Performance, and Monitoring
Ruby Proxies for Scale, Performance, and MonitoringRuby Proxies for Scale, Performance, and Monitoring
Ruby Proxies for Scale, Performance, and Monitoring
Ilya Grigorik
 
Event Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya GrigorikEvent Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya Grigorik
Ilya Grigorik
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
Fabio Tiriticco
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
Fastly
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
Andrew Conner
 
Spring Boot & WebSocket
Spring Boot & WebSocketSpring Boot & WebSocket
Spring Boot & WebSocketMing-Ying Wu
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
Fastly
 
Implementing Comet using PHP
Implementing Comet using PHPImplementing Comet using PHP
Implementing Comet using PHP
King Foo
 
[1D1]신개념 N스크린 웹 앱 프레임워크 PARS
[1D1]신개념 N스크린 웹 앱 프레임워크 PARS[1D1]신개념 N스크린 웹 앱 프레임워크 PARS
[1D1]신개념 N스크린 웹 앱 프레임워크 PARS
NAVER D2
 
Building Next Generation Real-Time Web Applications using Websockets
Building Next Generation Real-Time Web Applications using WebsocketsBuilding Next Generation Real-Time Web Applications using Websockets
Building Next Generation Real-Time Web Applications using Websockets
Naresh Chintalcheru
 
Dancing with websocket
Dancing with websocketDancing with websocket
Dancing with websocket
Damien Krotkine
 
Large scale web socket system with AWS and Web socket
Large scale web socket system with AWS and Web socketLarge scale web socket system with AWS and Web socket
Large scale web socket system with AWS and Web socket
Le Kien Truc
 
Speedy TDD with Rails
Speedy TDD with RailsSpeedy TDD with Rails
Speedy TDD with Rails
PatchSpace Ltd
 

What's hot (20)

Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.comRuby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
Ruby Proxies for Scale, Performance, and Monitoring - GoGaRuCo - igvita.com
 
0-60 with Goliath: High performance web services
0-60 with Goliath: High performance web services0-60 with Goliath: High performance web services
0-60 with Goliath: High performance web services
 
Asynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaAsynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and Java
 
Building Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSocketsBuilding Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSockets
 
Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serialization
 
Ruby Proxies for Scale, Performance, and Monitoring
Ruby Proxies for Scale, Performance, and MonitoringRuby Proxies for Scale, Performance, and Monitoring
Ruby Proxies for Scale, Performance, and Monitoring
 
Event Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya GrigorikEvent Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya Grigorik
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Spring Boot & WebSocket
Spring Boot & WebSocketSpring Boot & WebSocket
Spring Boot & WebSocket
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
 
Implementing Comet using PHP
Implementing Comet using PHPImplementing Comet using PHP
Implementing Comet using PHP
 
[1D1]신개념 N스크린 웹 앱 프레임워크 PARS
[1D1]신개념 N스크린 웹 앱 프레임워크 PARS[1D1]신개념 N스크린 웹 앱 프레임워크 PARS
[1D1]신개념 N스크린 웹 앱 프레임워크 PARS
 
Building Next Generation Real-Time Web Applications using Websockets
Building Next Generation Real-Time Web Applications using WebsocketsBuilding Next Generation Real-Time Web Applications using Websockets
Building Next Generation Real-Time Web Applications using Websockets
 
Ws
WsWs
Ws
 
Dancing with websocket
Dancing with websocketDancing with websocket
Dancing with websocket
 
Large scale web socket system with AWS and Web socket
Large scale web socket system with AWS and Web socketLarge scale web socket system with AWS and Web socket
Large scale web socket system with AWS and Web socket
 
Speedy TDD with Rails
Speedy TDD with RailsSpeedy TDD with Rails
Speedy TDD with Rails
 

Similar to The Atmosphere Framework

Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
Andy McKay
 
Play Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaPlay Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and Scala
Yevgeniy Brikman
 
I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
John Quaglia
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
John Brunswick
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and FluxTPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and Flux
Jirat Kijlerdpornpailoj
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationAjax Experience 2009
 
Real-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioReal-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioRick Copeland
 
Building your first Node app with Connect & Express
Building your first Node app with Connect & ExpressBuilding your first Node app with Connect & Express
Building your first Node app with Connect & Express
Christian Joudrey
 
REST made simple with Java
REST made simple with JavaREST made simple with Java
REST made simple with Java
Niklas Gustavsson
 
sMash at May NYPHP UG
sMash at May NYPHP UGsMash at May NYPHP UG
sMash at May NYPHP UG
Project Zero
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
Ricardo Silva
 
Web program-peformance-optimization
Web program-peformance-optimizationWeb program-peformance-optimization
Web program-peformance-optimization
xiaojueqq12345
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
scalaconfjp
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014
Ngoc Dao
 
Scalalable Language for a Scalable Web
Scalalable Language for a Scalable WebScalalable Language for a Scalable Web
Scalalable Language for a Scalable WebTimothy Perrett
 
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices
ciklum_ods
 
REST made simple with Java
REST made simple with JavaREST made simple with Java
REST made simple with Javaelliando dias
 
Developing RESTful WebServices using Jersey
Developing RESTful WebServices using JerseyDeveloping RESTful WebServices using Jersey
Developing RESTful WebServices using Jerseyb_kathir
 

Similar to The Atmosphere Framework (20)

JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
 
Play Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaPlay Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and Scala
 
I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
 
huhu
huhuhuhu
huhu
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and FluxTPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and Flux
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
 
Real-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioReal-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.io
 
Building your first Node app with Connect & Express
Building your first Node app with Connect & ExpressBuilding your first Node app with Connect & Express
Building your first Node app with Connect & Express
 
REST made simple with Java
REST made simple with JavaREST made simple with Java
REST made simple with Java
 
sMash at May NYPHP UG
sMash at May NYPHP UGsMash at May NYPHP UG
sMash at May NYPHP UG
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
 
Web program-peformance-optimization
Web program-peformance-optimizationWeb program-peformance-optimization
Web program-peformance-optimization
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014
 
Scalalable Language for a Scalable Web
Scalalable Language for a Scalable WebScalalable Language for a Scalable Web
Scalalable Language for a Scalable Web
 
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices
 
REST made simple with Java
REST made simple with JavaREST made simple with Java
REST made simple with Java
 
Developing RESTful WebServices using Jersey
Developing RESTful WebServices using JerseyDeveloping RESTful WebServices using Jersey
Developing RESTful WebServices using Jersey
 

Recently uploaded

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 

Recently uploaded (20)

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 

The Atmosphere Framework

  • 1. Building Powerful WebSocket, Comet, and RESTful Applications Using Atmosphere http://twitter.com/atmo_framework Jeanfrancois Arcand http://twitter.com/jfarcand Paul Sandoz http://twitter.com/PaulSandoz
  • 2. Creator of the Grizzly Framework Creatpr of GlassFish v3 Grizzly Micro Kernel Creator and Co-Leader of Atmosphere Jeanfrancois 9 years @ Sun Microsystem Creator Async Http Client Co-leader of Atmosphere Creator and Lead of Jersey Paul 13 years @ Sun Microsystem Java Champion
  • 3. News and Update Comet and WebSocket Protocol The Atmosphere Framework Ya Ya Ya That’s Impossible High-level RESTful and asynchronous applications Twitter Search Conclusion Q & A
  • 4. PrimeFaces (JSF) Spring IntegrationAkka (Scala/Actor) GWT-Comet Apache Tuscany Grails (Plug In)Atlassian (JIRA) Ning (Social Network)AutoDesk (AutoCad) Fabric3 (3D) Thinked (Journie), Sonatype (Secret) Wink Wicket Struts JQuery Atmosphere 0.6.2 New! Atmosphere Gaming Framework
  • 5. LongPolling Web Socket Streaming Browser Server Browser Server Browser Server Request Request Request Request Response Response Response Response Response Upgrade Data Data
  • 7. WebSocket Nothing Comet Java WebServer Atmosphere
  • 8. Atmosphere WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 9. Atmosphere Atmosphere Application Atmosphere Runtime WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 10. Atmosphere Atmosphere Application Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 11. Atmosphere Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 12. Atmosphere Atmosphere Annotations Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 13. Atmosphere Cluster Atmosphere Annotations Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 14. Atmosphere Atmosphere Application Cluster Atmosphere Annotations Jersey Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 15. Atmosphere Atmosphere JQuery Atmosphere Application Cluster Atmosphere Annotations Jersey Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 16. Atmosphere Atmosphere JQuery Atmosphere Application Cluster Atmosphere Annotations Jersey Servlet Atmosphere Application Servlet runner Atmosphere Runtime Guice WebSocket Comet API Servlet 3.0 API Nothing Comet Java WebServer
  • 17. Atmosphere Atmosphere JQuery Atmosphere Application Atmosphere Application Atmosphere Spade Server Powered by Grizzly Embed Guice WebSocket Comet API Servlet 3.0 API Nothing Comet
  • 18. Why
  • 21. JMS JGroups Clustering Guarantee Delivery Why
  • 22. Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why
  • 23. Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why Portable & Unified
  • 24. Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why Servlet 3.0 Blocking I/O Portable & Unified Comet Native Web Socket New protocol
  • 25. Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why Servlet 3.0 Blocking I/O Portable & Unified Client Comet Native Web Socket New protocol
  • 26. Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why Servlet 3.0 Blocking I/O GWT JQuery Portable & Unified Client Java EE Comet Native Web Socket Grails JSF New protocol
  • 27. Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why JRuby Servlet 3.0 Blocking I/O GWT JQuery Portable & Unified Client Java EE Comet Native Web Socket Grails JSF New protocol
  • 28. Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why JRuby Groovy Servlet 3.0 Blocking I/O GWT JQuery Portable & Unified Client Java EE Comet Native Web Socket Grails JSF New protocol
  • 29. Cache JMS JGroups OOM Manager Clustering Guarantee Delivery Events Aggregation Proxy Why JRuby Scala Groovy Servlet 3.0 Blocking I/O GWT JQuery Portable & Unified Client Java EE Comet Native Web Socket Grails JSF New protocol
  • 30. Same API everywhere. No need to learn the protocol!
  • 31. Comet Web Socket IE Chrome JQuery Plugin Auto detect best transport to use! Emulate WebSocket! Comet Web Socket Web Socket Server Side Events Safari Firefox Opera Comet Comet Comet
  • 32. Ya Ya Ya That’s impossible!
  • 33. @Path("/pubsub/{topic}") @Produces("text/html;charset=ISO-8859-1") public class JQueryPubSub { private @PathParam("topic") Broadcaster topic; @GET public SuspendResponse<String> subscribe() { return new SuspendResponse.SuspendResponseBuilder<String>() .broadcaster(topic) .outputComments(true) .addListener(new EventsLogger()) .build(); } @POST @Broadcast public Broadcastable publish(@FormParam("message") String message) { return new Broadcastable(message, "", topic); }
  • 34. function subscribe() { function callback(response) { if (response.transport != 'polling' && response.state != 'connected' && response.state != 'closed') { if (response.status == 200) { var data = response.responseBody if (data.length > 0) { $('ul').prepend($('<li></li>').text(" Message Received: " + data + " using transport: " + response.transport)); } } } } $.atmosphere.subscribe(document.location.toString() + 'pubsub/' + getElementByIdValue('topic'), callback : callback, $.atmosphere.request = {transport: getElementByIdValue('transport')}); }
  • 35.
  • 36. Jersey is the reference implementation and provides additional functionality
  • 37. Atmosphere leverages the extensibility of Jersey
  • 38. Atmosphere and Jersey can evolve at their own rates
  • 39.
  • 46. Schedule execution of periodic broadcast
  • 48.
  • 49. Conclusion Write Powerfull Asynchronous Web Application using Atmosphere Write once, Run Anywhere Transport free! Browser nightmare free Extremely Simple! Join the community http://github.com/Atmosphere/atmosphere
  • 50. THANKS YOU! http://twitter.com/atmo_framework Jeanfrancois Arcand jfarcand@apache.org Paul Sandoz Paul.sandoz@oracle.com