SOA on rails


#1

We are in the process of evaluating new development frameworks for our
future development platform. We currently use php and are evaluating
Java, Ruby, Mono and .NET.

We really like Ruby but unfortunately, we are having a hard time
implementing our layered Service Oriented Architecture using Ruby due to
the view being tightly bound to the ActiveRecord objects.

Although we love all the great functionality ActiveRecord provides for
free we like to bury the domain objects under a Facade Layer to promote
a higher level of abstraction between the Core Business Logic and the
higher level Application Logic. This allows us to provide a service
oriented API that can be used to build various applications.

Any thoughts on how one might achieve this in Ruby without giving up too
much of the “get it for free” stuff in ActiveRecord?

Thanks!

Shawn


#2

On 3/17/06, shawn removed_email_address@domain.invalid wrote:

a higher level of abstraction between the Core Business Logic and the
higher level Application Logic. This allows us to provide a service
oriented API that can be used to build various applications.

Any thoughts on how one might achieve this in Ruby without giving up too
much of the “get it for free” stuff in ActiveRecord?

Could you be a little more specific? Are you talking about the
ActiveRecord-aware form helpers, like text_field and select?
I can’t think of anything coupling ActiveRecord to the view
components. Many people are using ActiveRecord entirely outside of the
rest of Rails, in fact.

A decent number of folks are also exposing ActiveRecord functionality
directly or indirectly through SOAP and REST.

–Wilson.


#3

I don’t understand how you feel Rails is limiting your SOA
capabilities - IMHO it’s a great SOA enabling technology - but if you
want to abstract your “application” from your model/controller, you
could use ActiveWebServices to a “facade” layer to your data. Put an
abstraction layer into the Web service, and have your app call the AWS
interfaces for all access to the data.

Regards

Dave M.