Application and Data Integration (ADI) is the use of software and architectural principles to bring together (integrate) a set of enterprise computer applications, with an emphasis on decoupling the data integration (application adaptors and message transformations) from the business processes that use the data. ADI uses middleware technologies such as an Enterprise Service Bus (ESB) as part of a service-oriented architecture as a means of integration. Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... In computing, middleware consists of software agents acting as an intermediary between different application components. ... In computing, an enterprise service bus refers to a category of middleware infrastructure products or technologies, based on Web services standards, that enable a service-oriented architecture via an event-driven and XML-based¹ messaging engine (the bus). ... In computing, the term Service-Oriented Architecture (SOA) expresses a software architectural concept that defines the use of services to support the requirements of software users. ...
Without integration, enterprise computing often takes the form of islands of automation, where the value of individual systems is not maximised because they are working in partial or full isolation. However if integration is carried out without following a structured ADI approach, many point-to-point connections grow up across an organisation. Dependencies are added on an ad-hoc basis, resulting in a tangled unmaintainable mess, commonly referred to as spaghetti, a comparison to the programming equivalent known as spaghetti code.