{"id":581,"date":"2014-02-26T06:38:32","date_gmt":"2014-02-25T19:38:32","guid":{"rendered":"http:\/\/www.coffeescroll.com\/?p=581"},"modified":"2014-02-26T06:41:08","modified_gmt":"2014-02-25T19:41:08","slug":"is-the-cloud-just-web-services","status":"publish","type":"post","link":"http:\/\/www.coffeescroll.com\/index.php\/is-the-cloud-just-web-services\/","title":{"rendered":"Is the cloud just… web services?"},"content":{"rendered":"

My work colleague turned around to me and said, \u201cWeb Services aren\u2019t APIs\u201d. That didn\u2019t sound right so I started investigating. What is the difference and why is it important?<\/p>\n

Applications have been built and constructed from re-usable and shared components since the bloody epoch<\/a>. It\u2019s why software is eating everything<\/a>. Once a standard interface – and usually a corresponding library – is agreed upon there’s little reason to go back to first principles again. It\u2019s division of labour, driven by pure need, evolving organically.<\/p>\n

Then along came ubiquitous, always-available connectivity and expanding bandwidth. Why bother compiling and distributing an API\/Library when the same API call could be made to a shared network service? A web service.<\/p>\n

So a web service is<\/em> a type of API. Not all APIs are web services though. APIs are the public interface for a piece of code – it is what you can call from within your code. It may be a web service, but it could also be a Java library or similar.<\/p>\n

Wikipedia has a web services<\/a> as \u201c\u2026 a software function provided at a network address over the web\u201d. That\u2019s a pretty good definition. It must also be loosely coupled<\/a>, which means that both the service caller and owner agree on the interface but know little about each other. The back end class can be substituted as needed.<\/p>\n

Companies are themselves creating their own web service APIs. Here\u2019s an API for business listings at Australia\u2019s Yellow Pages <\/a>and here\u2019s one I\u2019m looking at now to do some useful work on my expanding Evernote database.<\/a> Both of these are web services with some extra API management capabilities. Grab yourself key and start developing!<\/p>\n

Amazon was miles ahead of the curve on this. This famous post by Steve Yegge<\/a> describes the famous Jeff Bezos<\/a> mandate (in 2002!) that all teams at Amazon must:<\/p>\n

    \n
  1. Expose their data and functionality through data services,<\/li>\n
  2. Teams must communicate only through these interfaces (no direct database links etc.),<\/li>\n
  3. All interfaces must be designed to be accessed externally<\/li>\n<\/ol>\n

    and a few other things. Talk about ahead of the curve.<\/p>\n

    It\u2019s the future mesh of interconnectivity. One big “programmatical” mash-up.<\/p>\n

    There are the web services you own and the ones you don\u2019t. With regards to the ones you do own, you\u2019ll have to think about how you maintain some control of the integration. Two possible models are shown below. Do you have an integration bus\/relay\/proxy in each cloud so as to minimise network traversals, or do you have a few centralised integration points to make control and standards (and non-functional requirements like logging, access control, templates etc.) easier.<\/p>\n

    \"Web<\/a><\/p>\n

    For the web services you don\u2019t own but use, how much do you rely on single vendors, how do you manage keys and how do you manage different standards\/skill sets etc.<\/p>\n

    I\u2019ve always thought of \u201cThe Cloud\u201d as a technology theme<\/em> that is behind many new implementations, but I\u2019m starting to think \u201cthe Cloud\u201d is just a biblical plague of web services. It’s even hidden the in term “as-a-service”! All SaaS, PaaS and IaaS providers have public web service APIs built in from day one.<\/p>\n","protected":false},"excerpt":{"rendered":"

    My work colleague turned around to me and said, \u201cWeb Services aren\u2019t APIs\u201d. That didn\u2019t sound right so I started investigating. What is the difference and why is it important? Applications have been built and constructed from re-usable and shared components since the bloody epoch. It\u2019s why software is eating everything. Once a standard interface […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,4],"tags":[],"yoast_head":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n