1. Field
This disclosure generally relates to software integration. More particularly, the disclosure relates to connectivity to Enterprise systems.
2. General Background
A variety of middleware products are currently utilized to support business software applications. Examples of such middleware products include transaction processing systems, message processing systems, and Extract, Transform, Load (“ETL”) systems. The various middleware systems have different performance profiles and requirements. Some middleware systems deal with relatively small amounts of data, but need to process requests very quickly. Other middleware systems deal with very large amounts of data and need to access this data in pieces of manageable size.
As a result, a business software environment may include a large number of runtimes, which are engine, servers, or software applications performing a function that need to access data from external resources. In many cases, adapters have been developed for these products to access an external Enterprise Information System (“EIS”) such as a database, transaction processing system, etc. As a result, a multitude of adapters have been built using various technologies to provide access to the same resources. This overlap provides tremendous expense, e.g., development costs and maintenance costs, for the software developer. Further, end users are exposed to inconsistencies in the tools and capabilities of the connectivity solutions provided by different products.
Current approaches do not allow for standard connectivity to Enterprise systems from different runtime environments because the current standards are defined for specific environments, e.g., Java™ Platform, Enterprise Edition (“Java™ EE”). Accordingly, these current approaches do not permit the reuse of adapters between different runtime environments, e.g., Application Server, Information Management, or System Management.
Attempts have been made to share adapters between products. However, these attempts have failed for a multitude of reasons. One reason is that the interfaces are often incompatible with one another. Further, additional infrastructure that is foreign to the software environment often needs to be utilized. In addition, data and/or format conversions, which can be costly with respect to central processing unit (“CPU”) performance, may need to be utilized.