InfoQ

News

Ruboss – A Flex Framework on Rails

Posted by Moxie Zhang on Dec 01, 2008 08:41 AM

Community
Java,
Ruby
Topics
Rich Internet Apps
Tags
ActionScript ,
Rails

Ruby on Rails (ROR) is a Ruby-based open-source framework for rapid Web application development. Both Rails and RIA communities are actively seeking convergence to offer integrated solutions. The Flex framework, Ruboss, is an example. InfoQ spoke with Peter Armstrong, the co-founder and CEO of Ruboss, to learn more.

According to Armstrong, the Ruboss framework represents an attempt to simplify the integration between Flex applications and RESTful server-side frameworks. These frameworks currently include RoR and Merb. Ruboss has also built a RESTful interface to allow Ruboss to talk to Adobe AIR's embedded SQLite database. The Ruboss framework serves Rails and Merb applications in a manner that is similar to Adobe LiveCycle Data Services ES for J2EE applications.

When asked why not just live with the existing established frameworks, such as Cairngorm or PureMVC, Armstrong explains:

Quite simply, there wasn't anything that fulfilled our needs. The Ruboss framework is not an architectural framework in the same sense as Cairngorm, Mate or PureMVC. Instead, it is a data integration framework, focusing on integrating Flex with RESTful frameworks. While it is tempting to think about Ruboss as "Flex + Rails," a more accurate way to think about Ruboss is as "Flex + Simple RESTful CRUD"—of which Rails is just the most popular and currently best-integrated example.

We wanted something that seamlessly integrated Flex with RoR and brought the design principles and productivity of Rails development to Flex. We think that Rails is one of the most productive server-side frameworks and Flex is one of the best client-side RIA technologies. Naturally, we wanted the best of both worlds.

So, we're not really competing with Cairngorm, PureMVC or Mate. For example, you can write Flex code that uses Ruboss in a style very similar to Cairngorm, but which features a less verbose way of using the command pattern. However, you can also write Flex code that uses Ruboss in a much more terse way than the Cairngorm style.

Armstrong goes on to describe the features that make Ruboss special:

First, we are the only Flex framework focused on using RESTful CRUD as the common interface when talking to services as different as Rails, Merb and SQLite in AIR. This simple, elegant design lets the Ruboss framework be extended to support services that we don't have the need or the time to support at the moment. For example, one user of Ruboss is considering using it to talk to CouchDB. So, Ruboss expands the range of services that integrate extremely well with Flex.

Second, the code you write with Ruboss is not only abstracted from the transport mechanism, but also is simple and elegant.

Third, you can get up and running extremely quickly. You can create a complete Flex + Rails application in five minutes using Ruboss. No other Flex framework does this, and no other Flex framework gets you from a data model to a running application as fast as Ruboss. To see how, follow the Ruboss "pomodo" tutorial.

Finally, we realize that no framework is going to solve all your data integration needs or be the correct architecture for all applications. So, what we try to do is just make the common 80 percent a lot easier.

Armstrong shares the roadmap for the Ruboss framework explaining:

For the framework, we plan to add support for data synchronization between local and remote service providers, since this is currently something that the application developer must do themselves. We also plan to get the Merb + DataMapper support up to the level of Merb + Active Record. After this, we will consider extending Ruboss to support more services, such as SimpleDB and Google AppEngine.

Peter Armstrong is also the author of Flexible Rails and the main author of Hello! Flex 4.

Don't Forget about LCDS :) by craig w Posted Dec 1, 2008 6:53 PM
Merb support by Matt Aimonetti Posted Dec 6, 2008 2:40 AM
  1. Back to top

    Don't Forget about LCDS :)

    Dec 1, 2008 6:53 PM by craig w

    Mr. Armstrong mentions "you can get up and running extremely quickly. You can create a complete Flex + Rails application in five minutes using Ruboss. No other Flex framework does this, and no other Flex framework gets you from a data model to a running application as fast as Ruboss". I wanted to mention that the LCDS people did a 10 minute setup of a data driven Flex application at MAX recently ( http://anilchannappa.org/2008/11/18/lc-ds-max-demo-update/ ), and it looks like the future LCDS product will allow a model driven application to be created with very, very little code. I'm glad to see continued adoption of Flex and additional frameworks, but I just wanted to point out that LCDS is making things quick to get rolling as well.

  2. Back to top

    Merb support

    Dec 6, 2008 2:40 AM by Matt Aimonetti

    Thanks for supporting Merb and planning on an even better integration. I'll certainly keep an eye on this project. @craig LCDS sounds interesting, but it's not free, not open source and I didn't find an example to use it with Ruby. No offense, but as a Rubyist, Ruboss sounds very promising because of the reasons mentioned above. - Matt

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.