Application integration (sometimes called Enterprise Application Integration or EAI) is the process of bringing data or a function from one application program together with that of another application program. Where these programs already exist, the process is sometimes realized by using middleware, either packaged by a vendor or written on a custom basis by development of interfaces of various applications.
These interfaces integrate those disparate applications seamlessly on a nightly batch basis and or on a real time basis to provide the data that the user needs with ease of access and still having the SINGLE TRUTH with no duplicacy of databases.
A common challenge for an enterprise is to integrate an existing (or legacy) program with a new program or with a Web service program of another company.
Business Process Management (BPM)
In general, for new applications, the use of object-oriented programming and actual or de facto standard development tools and interfaces (such as Java or .NET) will help ensure that new application programs can be easily integrated with those that may be needed in the future. The Extensible Markup Language (XML) promises to serve as a tool for exchanging data among disparate programs in a standard way.