Integration at the Application Programming Interface (API) uses the interfaces provided by packaged and custom applications as the point of integration. Depending on the APIs exposed, access to business logic and processes are available as well as data. Developers can use these APIs to build glue between many applications so they can share business logic and data. This approach to EAI is most appropriate for large packaged applications containing complex business logic and complicated external database metadata that is undocumented or difficult to understand.
For example, SAP R/3 can use a number of external relational databases for its data store. But the database metadata is complex, making it difficult to integrate using just data sources without potentially jeopardizing the integrity of the SAP R/3 system. SAP provides a number of APIs that are used as the point of integration.
The primary drawback of this approach for packaged applications is that you are limited to what the vendor provides for APIs. Some packaged applications may expose rich interfaces that provide access to the complete business logic used internally. Other applications may only expose very limited interfaces that offer only access to data. Fortunately in order to stay competitive, most vendors are exposing more of the application logic through APIs for external use. While vendors may expose a number of APIs that are used for integration, it is often the case that these interfaces are of older design, complex to understand, and difficult to use correctly. For example, SAP traditionally exposed interfaces based on the Common Programming Interface for Communications (CPI-C), a legacy API used for program-to-program communications on IBM mainframes and minicomputers. While SAP now exposes other object-oriented interfaces for remote function calls, these other procedures may ultimately still call the older legacy APIs.
The following figure shows a conceptual overview of integration using APIs.
Integration using Application Programming Interfaces