Service-oriented architecture (SOA) in the enterprise can benefit from selective use of Ruby on Rails, according
to Joe Niski, senior application platform analyst at Burton Group Inc.
The trick is knowing where the popular Ruby scripting language and Rails framework fits into the larger enterprise SOA picture, says Niski, author of "Ruby on Rails Revisited", a Burton report released this past week.
Noting that SOA is about architecture and application design that is independent of specific tools and technologies, he said it is important to understand where Ruby on Rails fits and where it doesn't.
Cutting to the chase, Ruby on Rails is not a one-tool-does-it-all for SOA, but offers strengths for developing RESTful services, data services applications and Ajax as part of a larger service-oriented approach, the analyst said.
"The problem domain of Rails is narrowly focused on Web applications with a relational database back end," Niski writes in his report. "Rails does not aim to replace general-purpose platforms like Java EE and .NET."
Specifically, the analyst said, development of Web services based on SOAP and the WS-* standards is not a strength for Rails, as it is known in its developer community where the "Ruby on" has been dropped the way Sears dropped Roebuck.
"Rails is pretty weak in the area of the Web services framework and the whole family of standards around SOAP," Niski said in an interview with SearchSOA.com. "However, right now with Rails 2.0, Rails probably offers the best and most comprehensive framework for building Web-based services that follow the REST application architecture. If you want to create RESTful Web services, but not necessarily SOAP-based Web services then Rails is a good choice."
REST-based data services applications in the larger SOA context is one area where Niski said developers and architects may want to consider Rails.
"Certain kinds of data services lend themselves to a RESTful architecture," he explained. "Especially for data retrieval and data reading and reporting, those lend themselves to a RESTful architecture because you can create a resource model that maps to your backend data. If you're not doing transactions, but just doing reads, you can scale a RESTful data service fairly easily."
The other area where Rails can be a "compelling" tool is in Ajax development, Niski said.
For organizations considering bringing in Rails for specific applications in a larger SOA context, Niski advises starting with a pilot project. One plus is the Ruby language does not have a steep learning curve for coders used to working in Java or C#, he said.
"Take it slowly," he suggested. "Invest a little time in training, and do some proofs of concepts."