An enterprise has multiple applications that are being built independently, with different languages and platforms.
How can I integrate multiple applications so that they work together and can exchange information?
Have each application produce files containing information that other applications need to consume. Integrators take the responsibility of transforming files into different formats. Produce the files at regular intervals according to the nature of the business.
An important decision with files is what format to use. Very rarely will the output of one application be exactly what's needed for another, so you'll have to do a fair bit of processing of files along the way. Not just do all the applications that use a file have to read it, you also have to be able to use processing tools on it. As a result, standard file formats have grown up over time. Mainframe systems commonly use data feeds based on the file system formats of COBOL. Unix systems use text based files. The modern fashion is to use XML. An industry of readers, writers, and transformation tools has built up around each of these formats.
... Read the entire pattern in the book Enterprise Integration Patterns
Related patterns:
Remote Procedure Invocation, Messaging, Shared Database