In order to streamline business processes and increase efficiency beyond current benchmarks, a new level of automation is required. Enterprise systems will need to know when, where, and how to direct data. This requires a lot of work when designing a system, and of course, if a new component is added to the system the amount of work increases. In order for all components of a large enterprise system to co-operate completely, each component will need intimate knowledge of its partners - unless individual components can ask for exactly what they need. Giving back-end system components the freedom to request information on a need basis increases system efficiency, and overall visibility of information.