InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Ruboss – A Flex Framework on Rails

Posted by Moxie Zhang on Dec 01, 2008

Sections
Development
Topics
Java ,
Rich Internet Apps ,
Ruby
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
Merb support by Matt Aimonetti Posted
  1. Back to top

    Don't Forget about LCDS :)

    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 ( anilchannappa.org/2008/11/18/lc-ds-max-demo-upd... ), 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

    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

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.

Polyglot Persistence for Java Developers - Moving Out of the Relational Comfort Zone

Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.

The Golden Circle – Why How What

Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?