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

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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Dernier (20)

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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
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
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

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