The most popular and comprehensive Open Source ECM platform
Web Services: What Will the Next State of Distributed Computing Be?
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 inevitable to me that, particularly in the world of high-throughput high-elasticity cloud-native apps, we’re going to see a steady increase in reliance on persistent connections, orchestration, and message/event-based logic. If you’re not using that stuff already, now would be a good time to start learning.”