SlideShare une entreprise Scribd logo
1  sur  39
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]

Contenu connexe

Tendances

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.comIlya 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 JavaJames 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 WebSocketsSergi 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 2011David Troy
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serializationGWTcon
 
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 MonitoringIlya Grigorik
 
Event Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya GrigorikEvent Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya GrigorikIlya Grigorik
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkFabio Tiriticco
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCLFastly
 
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 AnalysisFastly
 
Implementing Comet using PHP
Implementing Comet using PHPImplementing Comet using PHP
Implementing Comet using PHPKing Foo
 
[1D1]신개념 N스크린 웹 앱 프레임워크 PARS
[1D1]신개념 N스크린 웹 앱 프레임워크 PARS[1D1]신개념 N스크린 웹 앱 프레임워크 PARS
[1D1]신개념 N스크린 웹 앱 프레임워크 PARSNAVER 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 WebsocketsNaresh Chintalcheru
 
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 socketLe Kien Truc
 

Tendances (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
 

Similaire à 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 EngineAndy 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 ScalaYevgeniy Brikman
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesJohn 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 FluxJirat 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 & ExpressChristian Joudrey
 
sMash at May NYPHP UG
sMash at May NYPHP UGsMash at May NYPHP UG
sMash at May NYPHP UGProject 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 EngineRicardo Silva
 
Web program-peformance-optimization
Web program-peformance-optimizationWeb program-peformance-optimization
Web program-peformance-optimizationxiaojueqq12345
 
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 2014Ngoc 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 devicesciklum_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
 

Similaire à 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
 

Dernier

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Dernier (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

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