The Interface Trade-off
If the world were a perfect place, all the features and functions provided by packaged applications would also be accessible through their "well-defined" application programming interfaces. Sadly, the world is not a perfect place, and the reality is a bit more sobering. Nearly every packaged application provides some interfaces, but, as we have emphasized previously, they are uneven in their scope and quality.
Some provide open interfaces based on open interface standards such as Java APIs (such as JavaBeans) or ORBs; many others provide more proprietary APIs that are useful only in a limited set of programming languages (such as COBOL and C). Most disturbing of all is the harsh reality that too many packaged applications fail to offer so much as a solitary interface. When confronted with these applications, there is no opportunity for an application or middleware layer to access services cleanly. As a result, the business processes and data contained within the application remain off-limits. In these situations, half the anticipated expense of moving forward must be dedicated to more traditional mechanisms, such as leveraging scraping screens or data-oriented B2B application integration.