Geeks With Blogs
My blog on all kinds of stuff...

A lot of time has been spent debating REST versus WS-*, examples are given based on what have been qualified as “simple” services.  For instance, a RESTian example that shows how to retrieve a list of orders (or cars) or a WS-* (dare I say SOAP?) example that shows how to consume a service that returns the current weather.

There has been a lot of banter that suggests that REST is used for “simple” web services and this has been slightly offensive to certain individuals.  In fact many a blog has been dedicated to demonstrate how REST can be used to build “complex” web services.

I'm not sure that I subscribe to the simple versus complex views.  I tend to to view services in the context of their nature i.e. how do they behave, what they require, how they interact etc.

For instance, certain services are long-running in nature i.e. they can take hours before completing business functionality.  I won't get into discussions on whether the consumer should block or not - that's an implementation issue, but we generally agree that the service shouldn't “always” force the consumer to block.  However building such services using REST is interesting (to say the least) because of the underlying protocol of choice - HTTP and its default RPC-like behavior.  What does this mean?  The developer of the RESTful service will need to override the default timeout for an ASP.NET thread (executionTimeout) to ensure that the thread managing the long-running process does not die prematurely.  It doesn't end there however, the consumer of the RESTful service also needs to override their “request“ objects default timeout also so it doesn't die while “waiting“ because by default it blocks.

Scenarios like the one above should ultimately influence service architecture and not necessarily the logic executing under the covers.


Posted on Wednesday, May 17, 2006 5:44 PM Architecture | Back to top

Comments on this post: Is there such a thing as a "simple" service?

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Ebenezer Ikonne | Powered by: