Introduction
With digital business and market competition intensifying, many companies are shifting to APIs to expose business processes and data for easy and better integration, enabling business expansion, and driving lower cost and faster time to market (TTM) through reusable services and APIs. APIs are being deployed on an unprecedented scale in broad ecosystems for social, mobile, cloud, and analytical applications as well as for the Internet of Things (IOT). This article shares what we have learned in adopting service oriented architecture (SOA) and APIs.
Our Approach to APIs
APIs are now used by most global businesses to interconnect and integrate with each other’s businesses, forming a trend called an API Economy. Since 2013, we has been promoting the adoption of API based application development practice along with our SOA effort. We standardized APIs, design patterns, and code libraries. We developed an API based application framework to help us deliver solutions and integrations faster and more flexible.
Prior we started our API journey, most of our applications were built as monolithic solutions with tight integrated architecture. A typical application was built as a closed system, with some modules compiled and linked together to run as a single process. With little ability for reuse, every capability or integration needed some new design and development effort. As we started our API journey, we created our API strategy, and developed standards, technical guidance, training, and an application framework based on the API and service concept, as illustrated in Figure 1.
We used the standards, guidance, and the API based application framework to guide our application architecture design and development. The framework helped teams shift their application development approach from building tightly coupled applications to building APIs and SOA service based applications.
Figure 1. API based application framework.
We also learned that we need to define the API taxonomy and metadata for APIs up front, see Figure 2. Having clearly defined taxonomy and metadata would allow us to communicate among business stakeholders and development teams, and help us analyze the business processes and data, and properly model the services and APIs. With a defined taxonomy and related metadata, we were able to break large business processes and data into smaller function pieces, and model them as APIs. We then implemented them as services, and exposed them as APIs.
Figure 2. The API taxonomy.
Next we knew it was important to model core APIs that could be used by many enterprise applications. To do this, we developed three categories of core APIs: Master Data APIs, Security APIs, and Utility APIs. These core APIs provided immediate value through broad reuse and shortened application development time. We have built more than 80 core APIs since developing the categories. As a result of developing the applications based on these reusable APIs, TTM has been greatly reduced. Figure 3 shows some sample of our core API usage.
Figure 3. Sample Core API usage.
Finally, we realized the importance of having an API management capability for registering, finding, and managing APIs. With the number of APIs increasing, we needed a better ability to control API calls, throttle the API call volume, track the call traffic, and measure and report the API calls. Of course, we also needed to properly secure the APIs. A good API management product would provide all these key API management capabilities. Figure 4 illustrates a conceptual diagram of API management and usage.
We developed the Enterprise API Registration Application (EARA) and the IT Developer Zone (ITDZ) Service Portal to provide some of the API management capabilities. API owners use the EARA to register their APIs. Application developers use the ITDZ Service Portal to search for, and request to use the APIs. As we continue on our API journey, we are deploying a vendor API Management tool to meet our growing needs.
Figure 4. API management and usage concept.
Lessons Learned
To embark on the API Economy journey, and start API based application development, we had to change our mindset from the traditional way of building applications to the API approach. Instead of thinking of an application as one big thing, we had to think of it as an assembly of smaller APIs and services. From there, we designed the capabilities as reusable APIs integrated together using a loosely coupled framework.
Once we built the component APIs, we designed applications as containers, and orchestrated the actions and responses of APIs to deliver the desired results for the business and customers. We also exposed selected APIs to external partners for business expansion and integration when necessary.
Changing the mindset or our development culture was much more difficult than simply planning the development process. We had chartered a dedicated program to drive our API adoption. We not only drove the architecture change, API management capability, and technology toolsets, but more importantly we also developed standards, guidance, and training courses, providing guidance and training to our development community to help anyone be successful on their API journey.
Summary
The API based application development and integration approach is useful for any company. APIs enable easier integration with customers and partners business applications, and support mobile applications better. The API approach helps reduce the cost of application development and integration through reuse, and gains the TTM advantage, which enables a business to get to market quicker. The approach is especially important for companies that want to expand business onto the Internet, and participate in the growing API Economy. We are actively using APIs in our business application integrations with internal and external partners. As our journey continues, we are beginning work on our Micro-service and Container strategy. Our API architecture framework, experience, and learnings can help other companies start their own API Economy journey.
References
Welcome to The API Economy:
http://www.forbes.com/sites/ciocentral/2012/08/29/welcome-to-the-api-economy/
API management definition:
http://searchcloudapplications.techtarget.com/definition/API-management
Top API management vendors:
http://www.informationweek.com/cloud/platform-as-a-service/forrester-names-top-api-management-vendors/d/d-id/1316520
About the Authors
Jian Wu has over 30 years of industry experience. His career spans cross the Factory Automation, Process Control, Supply Chain, Product Engineering and IT enterprise application architecture design, development and integrations. Currently, Jian is responsible for setting and governing Intel IT enterprise application integration capability strategy, standards, and technical guidance.
Mark Boucher is a 30 year veteran in large scale enterprise software. Currently Mark is a principal engineer setting the software architecture direction for sales and marketing organizations.
Don Meyers has over 30 years of industry experience leading the architecture, design, and deployment of enterprise applications, IT infrastructure, and collaboration systems. He has patent filings for various computer systems, including: Network, Data management, Collaboration, eMail, Search security, and Perceptual computing.