Few enterprise environments, applications or systems exist in isolation. Most are connected to other applications and services by data feeds and common reference data. Others are connected through elaborate integration networks. An enterprise’s integration architecture should balance the requirements of the business and the requirements of individual applications.

Looking above the level of single applications and focus on an enterprise’s whole software portfolio, there emerge a complex collection of silo applications, heterogeneous platforms, and islands of sometimes duplicated data and services that are interconnected by messages, objects, file transfers, batch feeds, and human interactions.