Access and Feeds

Web Services: What Will the Next State of Distributed Computing Be?

By Dick Weisinger

Distributed Computing.  The ability for machines and applications to intercommunicate with each other.

Early web service technologies included RPC (Remote Procedure Call), CORBA (Common Object Request Broker Architecture) and Microsoft DCOM (Distributed COM).

CORBA, in particular, mainly because it was designed by committee, is incredibly complex and difficult to use. CORBA made external calls look like local calls and developers often weren’t defensive enough in their programming to factor in parameters like network reliability, latency and bandwidth, which led to performance issues.  CORBA methods were often very granular and required many back and forth communications, further impacting performance.

For many applications, lighter-weight solutions like SOAP web services became a better option. XML data exchange simplified and standardized communication between systems and application programming languages.  But ultimately the size of the XML payloads and the complexity when dealing with things like security led people to look for more streamlined options.

REST (Representational State Transfer) web services is an architectural style that offers a simpler approach to remote communication.  JSON payloads are typically used which provides for a more concise packet of information to process.  Over the last ten years, REST Web Services have been well accepted and become the defacto method used by businesses to expose their web service APIs.

What’s after REST?  Some people say it’s GraphQL.  By using queries as part of the request, GraphQL allows the data to included in the response to be more precisely pinpointed.  This reduces the number of back-and-forth requests and shrinks the size of the data packets transmitted.  While the approach adds value, it is not significantly different than REST.

Tim Bray, one of the original designers of XML, noted limitations that users of REST web services still need to contend with.  Bray notes that pain points include latency and difficulty in orchestrating many remote calls.

Bray said that “It seems in­evitable to me that, par­tic­u­lar­ly in the world of high-throughput high-elasticity cloud-native app­s, we’re go­ing to see a steady in­crease in re­liance on per­sis­tent con­nec­tion­s, or­ches­tra­tion, and message/event-based log­ic. If you’re not us­ing that stuff al­ready, now would be a good time to start learn­ing.”

 

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Leave a Reply

Your email address will not be published. Required fields are marked *

*