In this article series we would like to build a case that API portals, with the Intel® Mashery API Management platform as the representative example, is the contemporary manifestations of the SOA movement that transformed IT in the early 2000s from IT as a cost center to an equal partner in a company’s execution of a business strategy and revenue generation. In the introductory article in Part 1 we discussed some of the business dynamics that led to cloud computing and the service paradigm. Let’s now take a closer look at the SOA transformation in the big enterprise.
If we look at the Google Webtrends graph for the term “SOA”, we can use the search popularity as an indicator of the industry we can see that the interest in SOA peaked at around 2007, just as the interest on cloud computing started rising. There was a brief burst of interest on this term at the end of 2012 which can be attributed at people looking for precedents in SOA as the industry moves to cloud services.
Figure 2. Google Webtrends graph for “Cloud Computing.
The search rate for the term “cloud computing” actually peaked in 2011, but perhaps unlike SOA, the trend is not an indication of waning interest, but that the focus of interest has shifted to more specific aspects. See for instance the graphs for “Amazon AWS” and “OpenStack”.
Figure 3. Google Webtrends graph for “Amazon AWS.”
Figure 4. Google Webtrends graph for “OpenStack.”
SOA brought a discipline of modularity that has been well known in the software engineering community for more than 30 years, but had been little applied in corporate-wide IT projects. The desired goal for SOA was to attain a structural cost reduction in the delivery of IT services through re-use and standardization. These savings needed to be weighed against significant upfront costs for architecture and planning as well as from the reengineering effort for interoperability and security. The expectation was a per instance lower cost from reuse in spite of the required initial investment.
Traditionally, corporate applications have been deployed in stovepipes, as illustrated in Figure 5 below, one application per server or server tier hosting a complete solution stack. Ironically, this trend was facilitated by the availability of low-cost Intel-based high volume servers starting fifteen years ago. Under this system physical servers need to be procured, a process that takes anywhere from two weeks to six months depending on organizational policies and asset approvals in effect. When the servers become available, they need to be configured and provisioned with an operating system, database software, middleware and the application. Multiple pipes are actually needed to support a running business. For instance, Intel IT requires as many as 15 staging stovepipes to phase in an upgrade for the Enterprise Resource Planning (ERP) SAP application. The large number of machines needed to support most any corporate application over its life cycle led to the condition affectionately called “server sprawl.” In data centers housing thousands if not tens of thousands of servers it is not difficult to lose track of these assets, especially after project and staff turnover from repeated reorganizations and M&As. This created another affectionate term: “zombies.” These are forgotten servers from projects past, still powered up, and even running an application, but serving no business purpose.
Figure 5. Traditional Application Stovepipes vs. SOA.
With SOA, monolithic applications are broken into reusable, fungible services as shown on the left side of Figure 6 below. Much in the same way server sprawl used to exist in data centers, so it was with software, with multiple copies deployed, burdening IT organizations with possibly unnecessary licensing costs, or even worse, with shelfware, that is, licenses paid for software never used. As an example, in a stovepiped environment each application that requires the employee roster of a company, namely user accounts, phone directory, expense reporting, payroll would each require a full copy of the employee information database. In addition to the expense of the extra copies, the logistics of keeping each copy synchronized would be complex.
What if instead the need to replicate the employee roster somehow it was possible to build a single copy where every application needing this information can “plug in” into this copy and use it a needed. There are some complications: the appropriate access and security mechanisms need to be in place. Locking mechanisms for updates need to be implemented to ensure integrity and consistency of the data. However the expense of habilitating the database for concurrent access is still significantly less than the expense of maintaining several copies.
If we access this new single-copy employee database through Web Services technology, using either SOAP or REST, we have just created a “service”, the “employee roster service”. If every application layer in a stack is
re-engineered as a service with possibly multiple users, the stacks in Figure 5 morph into a network as shown in the left part of Figure 6. The notion of service is recursive where most applications become composites of several services and services themselves are composites of services. Any service can be n “application” if it exposes a user interface (UI) or a service proper if it exposes an API. In fact a service can be both, exposing multiple UIs and APIs depending on the intended audience or target application: it is possible to have one API for corporate access and yet another one available to third party developers of mobile applications.
Applications structured to operate under this new service paradigm are said to follow a service oriented architecture, commonly known as SOA. The transition to SOA created new sets of dynamics whose effects are still triggering change today. For one thing, services are loosely coupled, meaning that as long as the terms of the service contract between the service consumer and the service provider does not change, one service instance can be easily replaced. This feature simplifies the logistics of deploying applications enormously: a service can be easily replaced to improve quality, or ganged together with a similar service to increase performance or throughput. Essentially applications can be assembled from services as part of operational procedures. This concept is called “late binding” of application components.
Historically binding requirements have been loosened up over time. In earlier times most applications components had to be bound together at compile time. This was really early binding. Over time it became possible to combine precompiled modules using a linker tool and precompiled libraries. With dynamically linked libraries it became possible to bind together binary objects at run time. However this operation had to be done within a given operating system, and allowed only within strict version or release limits.
We can expect even more dynamic applications in the near future. For instance, it is not hard to imagine self-configuring applications assembled on the fly and real time on demand using a predefined template. In theory these applications could recreate themselves in any geographic region using locally sourced service components.
There are also business considerations driving the transformation dynamics of application components. Business organizations are subject to both headcount and budgetary constraints for capital expenses. Under these restrictions it may be easier for an organization to convert labor and capital costs into monthly operational expenses by running their services on third party machines hiring Infrastructure as a Service (IaaS) cloud services, or take one step further and contract out the complete database package to implement the employee roster directly from a Software as a Service (SaaS) provider. All kinds of variations are possible: the software service may be hosted on infrastructure from yet another party, contracted by either the SaaS provider or the end user organization.
The effect of the execution of this strategy is the externalization of some of the services as shown in the right hand side of Figure 6. We call this type of evolution inside-out SOA where initially in-sourced service components get increasingly outsourced.
Figure 6. The transition from internal SOA to inside-out SOA.
As with any new approach, SOA transformation required an upfront investment, including the cost of reengineering the applications and breaking them up into service components, and in ensuring that new applications themselves or new capabilities were service ready or service capable. The latter usually meant attaching an API to an application to make the application usable as a component for a higher-level application.
Implementation teams found the extra work under the SOA discipline disruptive and distracting. Project participants resented the fact that while this extra work is for the “greater good” of the organization, it was not directly aligned with the goals of the project. This is part of the cultural and behavioral aspects that a SOA program needs to deal with, which can be more difficult to orchestrate than the SOA technology itself. Most enterprises that took a long term approach and persisted in these efforts eventually reached a breakeven point where the extra implementation cost of a given project was balanced by the savings by reusing past projects.
This early experience also had another beneficial side effect that would pave the way to the adoption of cloud computing a few years later: the development of a data-driven, management by numbers ethic demanding quantifiable QoS and a priori service contracts also known as SLAs or service level agreements.
While the inside-out transformation just described had a significant impact in the architecture of enterprise IT, the demand for third party service components had an even greater economic impact on the IT industry as a whole, leading to the creation of new supply chains and with these supply chains, new business models.
Large companies, such as Netflix, Best Buy, Expedia, Dun & Bradstreet and The New York Times found that the inside-out transformative process was actually a two-way street. These early adopters found that making applications
“composable” went beyond saving money; it actually helped them make money through the enablement of new revenue streams: the data and intellectual property that benefited internal corporate departments was also useful to external parties if not more. For instance an entrepreneur providing a travel service to a corporate customer did not have to start from ground zero and making the large investment to establish a travel reservation system. It was a lot simpler to link up to an established service such as Expedia. In fact, for this upstart did not have to be bound by a single service: at this level it makes more economic sense to leverage a portfolio of services, in which case the value added of this service upstart is in finding the best choices from the portfolio. This is a common pattern in product search services whose function is to find the lowest price across multiple stores, or in the case of a travel service, the lowest priced airfare.
The facilitation of the flow of information was another change agent for the industry. There was no place to hide. A very visible example is effect of these dynamics on the airline industry, and how it changed irrevocably, bringing up new efficiencies but also significant disruption. The change empowered consumers, and some occupations such as travel agents and car salespeople were severely impacted.
Another trend that underlies the IT industry transformation around services is the “democratization” of the services themselves: The cost efficiencies gained not only lowered the cost of business for some expensive applications accessible only to large corporations with deep pockets; it made these applications affordable to smaller businesses, the market segment known as SMBs or Small and Medium Businesses. The economic impact of this trend has been enormous, although hard to measure as it is still in process. A third wave has already started, which is the industry’s ability to reduce the quantum for the delivery of IT services to make it affordable to individual consumers. This includes social media, as well as more traditional services such as email and storage services such as Dropbox. We will take a look at SMBs in Part 3.