모듈연계 란 내부 모듈과 외부 모듈 또는 내부 모듈 간 데이터 교환을 위해 관계를 설정하는 것을말한다.
EAI 는 기업 애플리케이션 통합 이라는 의미이다.
이종(따른) 시스템들 사이에 위치하여 각 시스템간의 필요한 정보를 서로 소통하여 관리의 효율성을 증대 시킨다. 이종 시스템들이 연결되어 전체적으로 하나의 흐름처럼 움직이게 하기에 통합이라고 부른다.
즉, EAI 는 기업 내 필요한 여러 어플리케이션이 있을 때, 이런 각종 어플리케이션 간에 상호 연동이 가능하도록 통합하는 솔루션을 말한다.
기업 내 서비스를 담당하고 있는 모듈을 연계하기 위해서는 EAI 가 필수적이다. 서비스간의 연동은 작게보면 MSA 로 인한 문제 같지만, 그 이전에도 자주 있어왔던 전통적인 문제이다. 이러한 문제를 소프트웨어 개발 프레임웍이 아니라, 솔루션 차원에서 풀기 위한 여러가지 노력들이 있었다.
세 가지 방식은 P2P(Point to Point) 방식, EAI(Hub & Spoke) 방식, ESB 방식이라고 분니되기도 하며, 과거 EAI 방식의 단점을 보완하면서 진화된 형태로 모두 EAI 방식이라고 한다.
좀 더 세부적으로 살펴 봤을땐, 어플리케이션을 서비스를 중심으로 다룰 경우 ESB라고 따로 부르는 것이다. 어쨋든 여기서 중요한 것은 기술의 진화 방향, 즉 트랜드는 어플리케이션의 경우 ESB 방식으로 연계되고 있다는 것이다.
메인 프레임 시대에서 유닉스 시스템으로 내려오면서부터 시스템들은 업무 단위로 분리가 되기 시작 햇다. ERP(전사적자원관리), CRM(고객관계관리), SCP(공급망계획) 등과 같은 시스템으로, 은행은 대내, 대외, 정보계와 같이 시스템으로 잘게 잘게 나눠지기 시작했다. 당연히 이렇게 나눠진 시스템 사이에는 통신이 필요하게 되었고, 시스템이 거대화 되가면서, 시스템간에 직접 P2P 로 통신하는 구조는 한계에 다다르기 시작하였다.
그리고 위와같은 문제를 해결하기 위해 등장한 솔루션이 'Hub&Spoke' 이다.
통합을 원하는 시스템을 기존에는 직접 1:1로 붙였다면, Hub&Spoke 는 EAI 가 중앙에 허브 역할을 하면서, 모든 통신을 EAI를 거치도록 하였다.
EAI의 가장 큰 특징은 표준화 되지 않은 이기종(다른) 시스템간의 연동을 가능하게해준다는 것이다. 메인 프레임에서 Unix ERP 시스템으로 데이터를 전송하게 한다던지 Oracle 에서 CRM 시스템으로 데이터를 전송해주는 것과 같은 시스템 통합을 지원한다. 이는 이기종간에 통신 프로토콜이나 통합 방식을 변경할 수 있는 어댑터를 제공하기 때문이다.
EAI 는 복잡한 메세지 처리나 변동, 라우팅 같은 다양한 기능을 가지고 있었지만, 주로 이기종간의 메시지 변환이 가장 많이 사용되었다.어쨋거나 Hub&Spoke 는 중앙 통제를 통해서 1:1 / 다:다 로 통신되는 복잡한 토폴로지를 통합하는 의미가 있다.
EAI 시스템이 점점 많아지자, 시스템 아키텍쳐도 패턴화(Enterprice Integration Pattern) 되었다.
이 기종같의 통합이 많아지고, 시스템이 점점 분리되다 보니, 아예 이를 표준화 하고자 하는 작업이 진행 되었다. 이것이 바로 SOA 이다. SOA 아키텍쳐의 컨셉 자체는 MSA와 유사하지만, XML 기반의 웹 서비스와 맞춰져서 웹 서비스를 대표하는 아키텍쳐가 되어버렸다.
사실 SOA 는 아키텍쳐 구현 컨셉이지 XML/HTTP 를 대표하는 것이 아니지만, 시대적으로 벤더들에 의해 웹 서비스로 포장되었다. SOA 는 시스템을 서비스로 나눈 다음 표준화된 인터페이스로 통신한다는 컨셉으로, 요즘의 MSA도 SOA의 부분 집합이라고 할 수 있다.
웹 서비스 기반으로 통신이 표준화 되었기 때문에 서비스 간의 통신은 EAI 처럼 별도의 어댑터가 필요 없어졌다. 대신 서비스 간의 통신을 서비스 버스 라는 통신 백본을 이용하여 통신을 하는 구조가 되었다.