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.
More on the general topic: Web Services Articles
- Web Services Definition
- Service-Oriented Architecture (SOA) Definition
- Web Services Explained
- Web Services Specifications
- Prior Service-Oriented Architecture Specifications
- Service-Oriented Architecture (SOA) Governance
- Article Suggestions