Application Program Interfaces (APIs)
The concept of an application program interface (API) has been around for a long time. For example, the concept was used in the 1988 POSIX defintion for compatibility among variants of Unix and other operating systems. CORBA and DCOM both used the concept starting in the 1980s. ODBC used the concept for database connectivity starting in the late 1980s.
The concept of APIs is related to informaton hiding from software engineering that goes back to at least the early 1980s:
The term "hiding" implies that effective modularity can be achieved by defining a set of independent modules that communicate with one another only that information that is necessary to achieve software function.1
APIs/information hiding allow for the creation of a minimal interface that is relatively stable that can be used by other software systems to access or manipulate the underlying systems or data. This allows for enhancements to the underlying systems or data without disturbing the software systems that use the API.
Most APIs in Cloud Computing are associated with Software as a Service (SaaS) Cloud Providers. They usually implemented using Web Services such as SOAP, REST, or JSON. The figure below illustrates an API for services that could be part of a service-oriented architecture (SOA) which could be hosted internally or in the Cloud.
1. Roger S. Pressman, Softare Engineering: A Practitioner's Approach, (McGraw-Hill, Inc., 1982), pg. 156.
Context for Application Program Interfaces (APIs)
Related Articles for Application Program Interfaces (APIs)
The Savvy Manager's Guide
Douglas K Barry is also the author of a book that explains Web Services, service-oriented architecture, and Cloud Computing in an easy-to-understand, non-technical manner.
Web Services, Service-Oriented Architectures, and Cloud Computing: The Savvy Manager's Guide (Second Edition)
by Douglas K Barry with David Dick
This is a guide for the savvy manager who wants to capitalize on the wave of change that is occurring with Web Services, service-oriented architecture, and—more recently—Cloud Computing. The changes wrought by these technologies will require both a basic grasp of the technologies and an effective way to deal with how these changes will affect the people who build and use the systems in our organizations. This book covers both issues. Managers at all levels of all organizations must be aware of both the changes that we are now seeing and ways to deal with issues created by those changes.