This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Do we forsee any interopability issues in using the REST Architecture?
For example, We have a resource deployed in a heterogeneous environment using the ROA Architecture, the resource returns a custom (.Net) object. Our JavaStruts Client makes a GET request to the resource and is returned the Custom object. So how well are autotying issues handled for these kind of web services or are we back again with the same casting issues that we find in our traditional web services when it comes to using custom return types and parameter values.
In my opinion the interoperability problems that you are describing are of your own choosing. If you desire to publish an interoperable representation then do so, for example through a reasonable XML representation that complies with a publicly available schema. This may require that your forego the convenience of some kind of tooled platform-specific serialization protocol.
Ultimately the object model of the resource representation can differ considerably between the server the client independently of whether different hosting platforms are used. The client and the server may overlay differing semantics over the same resource representation.
Take a Purchase Order (PO) for example. The client needs to build the Purchase Order in order to fulfill some requirements of a business task. The client's Purchase Order object model is geared towards assembling the PO and should possibly make it easy to determine whether a PO (or a set of POs) fulfills the requirements of the business task. The server on the other hand will want an object model of the PO that makes it easy to process it through the various stages of approval and fulfillment. A shared data representation between client and server doesn't automatically imply a shared object model. [ June 12, 2007: Message edited by: Peer Reynders ]
Continuing with a purchase order example, purchase orders often contain fields like dates and decimal numbers. When I was younger and less cynical I found that interoperability was hard, and wrote this.
This lead to my joining a group called SOAP Builders and hosting or co-hosting the first three interop events. This ultimately lead to the formation of WS-I, and my coming to the realization that layering on of greater and greater abstractions doesn't solve these problems; instead what you find is that abstractions leak.