10.2. SOAP, XML-RPC, and ActionWebService

In the previous chapters you learned about creating RESTful Rails applications, which effortlessly allow you to expose a Web Service as well. In this chapter, you learned about how to consume these Web Services from Ruby, through ActiveResource. It's fair to state that as far as REST is concerned, Rails gets you covered from both the publishing and the consuming ends.

The bad news is that REST is not the most popular type of architectural style for Web Services, yet. In fact, a good part of the Enterprise world is still using and adopting "Big Web Services" or SOA (Service-Oriented Architecture) Web Services. In fact, REST Web Services are not currently very popular among .NET and Java development teams. Though this is bound to change, at the present, you may be forced at times to step outside of the REST boundaries, where things are less smooth and simple.

Thankfully both Ruby and Rails provide tools to interoperate with these other types of Web Services. When you need to publish a SOAP-based or XML-RPC Web Service from Rails, you can use the ActionWebService plugin, available as the actionwebservice gem (online at http://rubyforge.org/projects/aws). ActionWebService used to be part of the Rails core, before REST found its way to the heart of the framework and the community.

AWS tries to simplify the process of publishing APIs via WSDL (Web Service Definition Language), based on the SOAP or XML-RPC protocols.

A fairly complete manual used to be available online at http://manuals.rubyonrails.com/read/book/10 but at the time of writing, this is only available through the Google Cache. Checking the "raw" documentation may be the best bet at this stage.

Please note that AWS does not implement the full W3C specification, but it's limited to the basic functionalities required to interoperate with Java and .NET.

If you need to consume a SOAP-based Web Service written in .NET or Java from Ruby/Rails, you can either still use the abstractions provided by ActionWebService or, perhaps more simply, use Ruby's SOAP library. You can find an example of this online in this blog post: http://webgambit.com/blog/calling-a-net-web-service-from-rails-original.

If you have an interest in Web Services, you should definitely check out the Atom Publishing Protocol (APP) as well. You can start from http://www.atomenabled.org.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.98.148