Enterprise Application Integration (EAI) is een term die vooral in de bedrijfswereld wordt gebruikt om technologie aan te duiden die bedoeld is om verschillende bedrijfsapplicaties te laten samenwerken. Dit is gerelateerd aan het begrip middleware.

In de technische systeemarchitectuur zit EAI in het midden tussen meerdere applicatieservers, bijvoorbeeld tussen een webserver (Front-end) en een andere server of een mainframe (Back-end). Deze applicaties kunnen de EAI gebruiken om berichten (messages) uit te wisselen. Hiervoor is een standaard taal nodig, zoals XML of een andere standaard. Het voordeel van EAI is een soort van coördinatorfunctie: de applicaties hoeven niets van elkaar te weten en hoeven alleen maar met de EAI te communiceren. Ze hoeven zelfs niet te weten waar een samenwerkend programma zich bevindt of wat het precies doet.

EAI kan ook gebruikt worden om de applicaties van verschillende bedrijven met elkaar te laten communiceren.

De boodschappen kunnen de meest uiteenlopende dingen bevatten: een vraag om informatie, het antwoord daarop, een foutmelding, een update, etcetera.

Een voorbeeld van een architectuur is gegeven in de figuur hiernaast. Op de webserver kan een gebruiker bijvoorbeeld een formulier invullen dat een opzoeking doet in de database, via de EAI-server.

De webserver zet je aanvraag om in een boodschap (bijvoorbeeld in XML) en stuurt dit naar de EAI-server. Deze server bekijkt de boodschap, vertaalt indien nodig en stuurt het vervolgens naar de database. De database server stuur een antwoord terug naar de EAI, en deze weer naar de webserver die dan het resultaat laat zien.

Voordeel ten opzichte van directe communicatie
EAI heeft een belangrijk voordeel ten opzichte van directe communicatie.

Stel je voor, je hebt 200 web-servers en 200 database servers, die onderling met elkaar moeten kunnen spreken. Je kan deze rechtstreeks met elkaar verbinden of je kan via de EAI gaan. Als je rechtstreeks gaat, dan heb je binnen de korste keren een warboel van protocollen die je moet ondersteunen op elke server. Dan heb je zelfs nog geen rekening gehouden met updates die je moet doen als er een patch voor een bepaald stuk software komt. Daar komt nog bij dat alle servers alle protocollen moeten 'kennen' als ze met al de andere servers gegevens willen uitwisselen. Softwareproducenten rekenen voor dit soort zaken hoge tarieven.

De andere manier is om via de EAI te gaan (één of meerdere servers) die alle nodige protocollen kennen. De Web-servers en de database servers hoeven dan maar één protocol te kennen, namelijk hun eigen protocol. Tegelijk heb je het voordeel dat alle verbindingen naar deze EAI-servers gaan.

Je kan het als een soort algemene taal zien. Stel, je spreekt Nederlands en je wil communiceren met Engelsen, Spanjaarden, Chinezen en Arabieren. In een normale situatie zou je nu Engels, Spaans, Chinees en Arabisch moeten leren. De EAI is dan een soort van tolk die Nederlands spreekt. Je levert je berichten in het Nederlands aan en de EAI-server vertaalt dat in de taal van de ontvanger. Deze antwoord in zijn eigen taal, de EAI-server vertaalt weer, en je krijgt het in het Nederlands terug.

Natuurlijk zou het ook mogelijk zijn om alle applicaties een gezamenlijke standaardtaal te leren (een soort van Esperanto, om het tolk-voorbeeld te volgen). Het probleem is echter dat er al zoveel applicaties op de markt zijn van verschillende producenten, dat het aanleren van gemeenschappelijke standaarden ondoenlijk zou zijn, en zou kunnen ontaarden in een machtssspelletje van de grootste producenten.

nl.wikipedia.org/wiki/Enterprise_Appl...