eFORCE
Blogs Home | Corporate Website

CommunityOne Convention Notes

2008-05-05 Wrap up from CommunityOne conference

Session: Open Sourcing Music
Summary: The panel discussed java-based music development. It noted that overall bandwidth is up, the demand for multi-media is rising, and the complexity of implementing functionality is down. It supports an open source approach, because more people contribute, it is easier to capture new ideas, and source code becomes stable quicker. Drawbacks mentioned included legal issues w/playback, and reliance on other projects.

Resources of interest: jFrets

Session: Website into OpenSocial Container
Summary: NetBeans is supporting easy widget implementation and deployment. It is possible to drag a widget into a live webapp. A widget can be implemented in both JSP and PHP. There was a "Project Socialsite" demo that illustrated some of the main concepts.

Resources of interest: OpenSocial RO; Apache Shindig (incubator.apache.org/shindig); socialsite.dev.java.net (release planned for October)

Session: PHP/RIA
Summary: Discussion about AJAX development challenges, including the reduced latency (RIA's usually require lots of asynchronous web requests), lack of a 'push' model on the web (e.g. for stock price applications), and that traditional web servers are not designed for these kind of operations. Outline of the Comet model and Bayeux protocol (using the Dojo ajax toolkit) as a possible solution. Current issues encountered are that there is no de-facto standard, that the HTTP connection can be cut by firewalls (i.e. after long idle times), and that the browsers/servers are not optimized for this model.

Resources of interest: Zend (php)

Session: Async AJAX for Revolutionary WebApps
Summary: Panel focused on development of Web 2.0 applications, specifically using so-called 'AJAX push' models. It mentioned frameworks and technologies such as NetBeans, Comet, Dojo, DWR, ICEfaces (combining JSF and AJAX), and GlassFish (a webapp server). Web 2.0 was described as "by the people, for the people", where content is mainly provided by users. It could also be called the "participation age", with examples given the development of open source software, eBay auctions, Wikipedia, Flickr and YouTube. Typcial signatures of Web 2.0 are a collaborative environment, interaction, and a powerful UI. One of the speakers announced that "AJAX is a state of mind".

Most web applications are still typically synchronous, where user events are given preference, and browser lock-ups (page-loads) are avoided. A fully asynchronous model would allow updates to be pushed from the server at all times. This is called "AJAX push", or "Reverse AJAX". AJAX Push is responsive (event driven; no frequent polling), and usually low-latency. Example applications are Meebo, jotLive, KnowNow, 4homemedia, and Gtalk. The main models are standard Ajax (polling), Ajax Push (long polling), and Ajax Push (streaming). Looking at the network level, Ajax Push basically waits for an event on the server side after a request has been made, before sending the response.

The idea is to keep an open connection, i.e. not to respond to initiating requests, and wait for events on the server-side. Polling means that the connection is keep-alive. There is no JavaScript-threading, so polling might timeout. This is also called "the long response" from the origninal 1999 push model. Long polling can be understood as HTTP message-flow inversion, where a 'GET request' is followed by a 'wait for event' and then returns a 'Response with update'. A different approach would be using the JSON publication/subscription model, which would offer good performance, but less security.

On the server-side, one of the main questions is , can push scale? Connections are basically in a waiting state, which means that additional memory is consumed by each blocked thread. Having the JVM to scale to 10k threads is not efficient. A technology solution would be a new I/O (NIO), which supports non-blocking sockets.

Server-side AJAX push would require functionality, such as asynchronous content handlers (R/W), suspendible request (suspend/resume), and a support delivery guarantee mechanism (i.e. which pushes data from one connection to another, and aggregates data before pushing it).

A future standard for these challanges is currently under way by the JSR-315 expert group.

Resources of interest: ICEfaces; GlassFish; Grizzly; Dojo; Servlet 3.0, iSpaces, WebMC, Jetty, Resin, jMaki demo, DWR

Print | posted on Monday, May 19, 2008 2:14 PM

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 7 and 6 and type the answer here:
Home
Contact
RSS 2.0 Feed
Login
October, 2008 (2)
August, 2008 (1)
May, 2008 (5)

Powered by: