The Five Axioms of the API Economy
This blog post is the second in a series of five blog posts outlining the axioms of the API economy. The post follows on from the first Axiom posted here (also see an intro to the series). The five axioms we’re covering are as follows, in order:
- Everything and everyone will be API enabled.
- APIs are core to every cloud, social and mobile computing strategy.
- APIs are an economic imperative.
- Organizations must provide their core competence through APIs.
- Organizations must consume core competences of others through APIs.
Axiom #2 focuses on the fact that APIs are an integral part of what are arguably the three major forces currently transforming the Web and IT – The Computing Trifecta—Mobile, Social and Cloud Computing. These transformations have been underway for a while but they are combining increasingly strongly and the effects are still getting deeper.
Axiom #2: APIs are core to every cloud, social and mobile computing strategy
Early Web systems were single destinations acting as self-contained silos within which a browsing user could act – consuming information, uploading data or authorizing transactions. Many current systems still function this way. However, while this metaphor functioned credibly for a “human powered” Web, it provides no support for the software-to-software interactions that that are increasingly occurring between devices and web services.
As web interactions become more automated, higher velocity and more fragmented (many smaller transactions like sending a tweet – versus large ones like downloading and browsing an entire web page) software-to-software interactions are a clear requirement for success. Humans in the loop simply cannot effectively keep up with the velocity and accuracy required. Nowhere is this better exemplified than the implementation of what are commonly the three largest Information technology challenges faced by organizations today: cloud computing, social and mobile.
APIs in the computing trifecta — cloud, social and mobile computing
“Cloud Computing” is a term used so much that its meaning can often be obscured or misunderstood. It is generally accepted that cloud computing be thought of as a stack of services classes. The three classes of services are Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure as a Service (IaaS).
Figure 1 illustrates the idea of Cloud Computing being a stack of service classes.
Figure 1—Cloud Computing Service Classes Source: Burtonian
Here is how we view these services classes.
- SaaS—applications designed for end users, delivered over the web.
- PaaS—tools and services designed to make coding and deploying SaaS applications quick and efficient.
- IaaS—hardware and software that powers it all—servers, storage, networks, and operating systems.
While for illustration purposes, a diagram showing clear cut differences between these classes is useful, in reality the lines between these service classes is getting blurry and will continue to do so in the future. However, the distinction is still useful in understanding how cloud computing and its services classes relate to APIs. In their earliest incarnations, SaaS variants of cloud started with hosted email, blogging and other tools but quickly progressed to key enterprise applications such as CRMs, HR, accounting and other functions. Many of the earliest SaaS apps began life as a browser based alternative to desktop software – and hence human interaction with the application through the browser was their key use.
Modern SaaS apps have evolved way beyond this and providing the means for software integration with a SaaS app for customers and/or partners is table stakes in almost every sector. Further, for PaaS and IaaS layers, the means to integrate with the platform/infrastructure via APIs is in many cases the key driving factor in adoption decisions:
- SaaS: APIs are crucial for adoption since they enable customers of the service to carry out bulk operations, integrate tightly with other SaaS applications and internal processes, as well as providing an extra level of comfort with respect to platform lock-in. Almost every major SaaS offering is now deploying at least customer facing APIs to permit easy integration. Many also have or plan to have partner ecosystem APIs enabling third parties to develop add-ons and modules that benefit their customers.
- PaaS: Platforms provide compute, storage, messaging and other services and essentially act as hosted APIs onto which developers can layer their code. APIs for PaaS essentially fall into two categories – those available to the code effectively running on the provided PaaS servers themselves, and those available to push-pull data into and out of the service. This access may be for other parts of the application that are not hosted on the PaaS, mobile applications calling the PaaS or for bulk control, management or monitoring operations.
- IaaS: Last but not least, as with PaaS services, APIs play a key role in remote access to the infrastructure being provided. In this case most IaaS providers are providing raw compute power, storage and networking as a resource – so application development for code which is to run on the IaaS is often directly using the operating system primitives available (Linux, Windows etc.) rather than some higher level, more abstract API as they do in the PaaS. However the external APIs for bulk operations, control, management, monitoring remain critical.
In each of these cases, while it is still technically possible to use a cloud hosted service in a way in which everything about the application is hosted within that single cloud service and requires no external integration, this mode of operation is insufficient for almost all significant use cases. Trends in the market also shows a strong correlation between the strength of a cloud service provider’s APIs and their relative success in the market.
Social and APIs
Social media has clearly had an enormous impact on both consumer Internet usage and enterprise applications. Facebook now counts more than 1.2 billion users, Twitter 230M, Instagram 15M and popular messaging app Whatsapp was just acquired by Facebook for $19B. On the enterprise side, social integration with mainstream networks as well as “social” features to enterprise products are all now table stakes for most organizations. Diverse examples of enterprise social products include:
- In-enterprise social network products such as Salesforce Chatter, Yammer and others
- Code collaboration products such as Github and Altlassian’s Bitbucket
- Collaboration tools including wikis and task managers
Social logins such as Facebook Connect, Twitter Auth, Google Login and Github Auth are being used with increasing frequency to manage work related identities for enterprise SaaS products, media access and almost everywhere that a user login-in is required. A third dimension of social surrounds the gigantic amounts of data that are produced by social media applications. Companies such as GNIP (now part of Twitter) and DataSift have sprung up to process the real-time streams produced by large social networks. Other companies such as Marketwired’s Sysomos, Radian6 (now part of Salesforce), and Klout (now part of Lithium) analyze these data flows and provide value added aggregate information on top.
As user behavior continues to reinforce the growth and importance of social media and the value of enterprise social increases, companies and individuals are compelled to include social integration options in their own workflows and products. Such an integration or addition requires the use of APIs – either by integrating APIs provided by third parties or (in the case of products with a social dimension) providing a new API. At their core, social systems provide a range of key functions:
- Messaging and notifications
- Media sharing
- Search and monitoring
- Data aggregation
Each of these functions can be a means in itself (a discrete task carried out by an individual) or part of a large workflow:
- Tweeting out the result of a process, or arrival of a new piece of content or an opinion or comment
- Pushing out a Facebook post when an Instagram photo is published
- Updating a Github work ticket when a software integration test passes
- Regularly search on the same set of keywords for mentions of a company’s brand
- Tracking statistics of certain behaviors across different social networks
As a social strategy evolves, it invariably requires processes to be established and made replicable. Hence APIs become central as these small individual actions are strung together into a larger flow. In other words, the bite-sized nature of many of these interactions make them key components in larger processes. In a similar way, any new product with its own social features (e.g. a new code collaboration tool) will quickly run into the need for integration with existing other tools in the workflows which are already established. As a result, an API becomes an indispensable part of the product. Conversely shipping a product with pre-existing integrations to the APIs of other tools in the workflow is a major added value for a product.
Mobile Computing and APIs
For the final category, it goes without saying that mobile is a huge driver of API adoption. However, it may not be 100 percent clear as to why this is so for an individual company – after all, it is rare that an organization sets out to build an API if their focus is putting an application in a user’s hands. However, APIs are at the heart of such projects since they provide the server-side synchronization point with which applications communicate.
Going back to 2008 and the launch of the iPhone with the first generation of apps, and even further back to early feature phones Blackberry and Palm Pilot, the vast majority of apps were software that ran in a self-contained manner on the mobile device. In other words the app’s value was solely in the software executing on the device.
Through 2009, and to this day, a continuing transformation has taken place in that almost all meaningful apps are composed not only of software executing on the device, but also server-side services that provide support services. Everything from backup to live data or ecommerce transactions functions this way. This server connection requires an API to receive and respond to traffic. With the rise of Android and the proliferation of the number of device types that can run mobile apps, there are often many versions of a mobile app that are available at any one time – all of which need to be able to access server-side components.
A modern mobile strategy is therefore increasingly like the one shown in Figure 2, with an API-driven core and a wide variety of different clients calling the API.
Figure 2—API Driven Platforms Power Broad Mobile Strategies Source: 3scale
These trends in APIs are likely to be at the heart of many of the major strategic IT initiatives most companies have planned. This is becoming increasingly true as the number of end devices, operating systems and frameworks a given company wants to deliver mobile functionality to also increases, and so the value of an API increases rapidly if it can be shared by different clients.
As with the first axiom, the truth of this axiom may seem obvious – but this is part of the point. APIs are often “in the picture” of transformative strategies in mobile, social and cloud, but rarely mentioned. Every organization is evolving strategies to deal with the Trifecta—cloud, social and mobile computing— and these come in varying shapes and sizes. However, it is critical they they be viewed from a perspective of being API-centric, since APIs are a key glue which make each of them stick.
Axiom #3 will be up next.