SlideShare ist ein Scribd-Unternehmen logo
1 von 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]

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

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