Building Powerful WebSocket, Comet, and RESTful Applications Using Atmospherehttp://twitter.com/atmo_frameworkJeanfrancois Arcandhttp://twitter.com/jfarcandPaul Sandozhttp://twitter.com/PaulSandoz
Creator of  the Grizzly Framework Creatpr of GlassFish v3 Grizzly Micro KernelCreator and Co-Leader of  AtmosphereJeanfrancois9 years @ Sun MicrosystemCreator Async Http ClientCo-leader  of AtmosphereCreator and Lead of JerseyPaul13 years @ Sun MicrosystemJava Champion
News and UpdateComet and WebSocket ProtocolThe Atmosphere FrameworkYa Ya Ya That’s ImpossibleHigh-level RESTful and asynchronous applicationsTwitter SearchConclusion 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 JQueryAtmosphere 0.6.2New! Atmosphere Gaming Framework
LongPollingWebSocketStreamingBrowserServerBrowserServerBrowserServerRequestRequestRequestRequestResponseResponseResponseResponseResponseUpgradeDataData
AtmosphereJava WebServer
WebSocketNothingCometJava WebServerAtmosphere
AtmosphereWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereAtmosphere ApplicationAtmosphere RuntimeWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereAtmosphere ApplicationAtmosphere RuntimeGuiceWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereServletAtmosphere ApplicationServlet runnerAtmosphere RuntimeGuiceWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereAtmosphere AnnotationsServletAtmosphere ApplicationServlet runnerAtmosphere RuntimeGuiceWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereClusterAtmosphere AnnotationsServletAtmosphere ApplicationServlet runnerAtmosphere RuntimeGuiceWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereAtmosphere ApplicationClusterAtmosphere AnnotationsJerseyServletAtmosphere ApplicationServlet runnerAtmosphere RuntimeGuiceWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereAtmosphere JQueryAtmosphere ApplicationClusterAtmosphere AnnotationsJerseyServletAtmosphere ApplicationServlet runnerAtmosphere RuntimeGuiceWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereAtmosphere JQueryAtmosphere ApplicationClusterAtmosphere AnnotationsJerseyServletAtmosphere ApplicationServlet runnerAtmosphere RuntimeGuiceWebSocketComet APIServlet 3.0 APINothingCometJava WebServer
AtmosphereAtmosphere JQueryAtmosphere ApplicationAtmosphere ApplicationAtmosphere Spade ServerPowered by GrizzlyEmbedGuiceWebSocketComet APIServlet 3.0 APINothingComet
Why
ClusteringWhy
JMSJGroupsClusteringWhy
JMSJGroupsClusteringGuarantee DeliveryWhy
CacheJMSJGroupsOOM ManagerClusteringGuarantee DeliveryEvents AggregationProxyWhy
CacheJMSJGroupsOOM ManagerClusteringGuarantee DeliveryEvents AggregationProxyWhyPortable & Unified
CacheJMSJGroupsOOM ManagerClusteringGuarantee DeliveryEvents AggregationProxyWhyServlet 3.0Blocking I/OPortable & UnifiedComet NativeWebSocketNew protocol
CacheJMSJGroupsOOM ManagerClusteringGuarantee DeliveryEvents AggregationProxyWhyServlet 3.0Blocking I/OPortable & UnifiedClientComet NativeWebSocketNew protocol
CacheJMSJGroupsOOM ManagerClusteringGuarantee DeliveryEvents AggregationProxyWhyServlet 3.0Blocking I/OGWTJQueryPortable & UnifiedClientJava EEComet NativeWebSocketGrailsJSFNew protocol
CacheJMSJGroupsOOM ManagerClusteringGuarantee DeliveryEvents AggregationProxyWhyJRubyServlet 3.0Blocking I/OGWTJQueryPortable & UnifiedClientJava EEComet NativeWebSocketGrailsJSFNew protocol
CacheJMSJGroupsOOM ManagerClusteringGuarantee DeliveryEvents AggregationProxyWhyJRubyGroovyServlet 3.0Blocking I/OGWTJQueryPortable & UnifiedClientJava EEComet NativeWebSocketGrailsJSFNew protocol
CacheJMSJGroupsOOM ManagerClusteringGuarantee DeliveryEvents AggregationProxyWhyJRubyScalaGroovyServlet 3.0Blocking I/OGWTJQueryPortable & UnifiedClientJava EEComet NativeWebSocketGrailsJSFNew protocol
Same API everywhere. No need to learn the protocol!
CometWebSocketIEChromeJQuery PluginAuto detect best transport to use! Emulate WebSocket!CometWebSocketWebSocketServer Side EventsSafariFirefoxOperaCometCometComet
Ya Ya YaThat’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 JAX-RS is the Java API for RESTful Web services
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 annotationsHigh-level Atmosphere conceptsLeveraging the power of REST, JAX-RS/Jersey @Suspend or SuspendResponse API

The Atmosphere Framework