Approaching Application Interfaces
Packaged applications (most often present in a typical B2B application integration problem domain) are only now beginning to open their interfaces to grant outside access and, consequently, integration. Although each application determines exactly what these interfaces should be and what services they will provide, there is an evolving consensus to provide access at the business model, data, and object levels.
In accessing the business model or the innate business processes, a set of services typically is invoked through user interfaces. For example, credit information for a particular individual can be accessed through the user interface by driving the screens, menus, or windows. (This same information can be accessed by invoking an API if it is provided by the packaged application vendor.)
As we have come to appreciate, in the world of custom applications, anything is possible. Access to the source code allows us to define a particular interface or to open the application with standard interfaces, such as CORBA, COM, or Java. For example, instead of accessing the user interface (scraping screens) to get to an existing COBOL application residing on a mainframe, we can build an application programming interface for that application simply by exposing its services through an API. In most cases, this will require mapping the business processes, once accessible only through screens and menus, directly to the API.