ActionFS coming to Roxen WebServer
2011-03-11, 13:15 by Jonas Wallden in Development
During our extensive refactoring of Roxen Editorial Portal v5 we laid the groundwork for creating highly dynamic web applications on a large scale. We wanted to create a server/client messaging system that is more lightweight than a full page request while providing a number of powerful capabilities:
- Both server and client can initiate message sending at any time. The client can also subscribe to server messages of known types and be notified when something has happened server-side.
- It is possible to return structured data (arrays, hash tables etc) to the client.
- Multiple requests and responses can be in-flight simultaneously and arrive in any order.
- The code needed to make a request or implement an action is minimal thanks to object-oriented framework classes that carry the heavy work.
Some people may recognize that a lot of this is captured in the buzzword Comet. Much like Ajax became the coolest technology a few years back we're now approaching a new buzzword wave. I haven't compared our implementation to the alternatives but it's been running solidly for quite some time. When this was developed we also added a native JSON library to Pike 7.8, and of course the HTTP compression used in Roxen 5.1 improves efficiency further.
The full implementation of ActionFS shipped with Roxen Editorial Portal v5 end of last year. It's probably easiest to point to a couple of YouTube movies to show how EP's web interface takes full advantage of ActionFS to populate panels, refresh previews pushed from the server, chain request/response pairs asynchronously and so on. It's all happening in a single browser window that never needs to be reloaded.
The technology here is understandably useful in many other situations, and future versions of Roxen CMS will gradually start to take advantage of it. To enable that we're now moving the bulk of the ActionFS server-side code to Roxen WebServer which is underpinning all of Roxen's commercial products. Even if you aren't doing Web 2.0 client-side programming today it's good to know that once this is complete you'll have a very appealing framework at your disposal. It also lowers the threshold for us to infuse modern web technology in the existing code base.
Adventurous developers can get the bits directly from the Roxen WebServer 5.2 CVS repository and start experimenting now! It's not yet decided how the client-side libraries will be distributed but that's hopefully just a matter of time. At this point they are leveraging Yahoo's YUI library for some functions but that's mostly an internal issue.