2004년부터 SOA(Service Oriented Architecture:서비스 지향 아키텍쳐)가 활발히 제창되어 왔다. 미국에서는 최근 SOA의 중요한 기술로서 ESB가 급속히 주목받고 있다. 대기업 벤더, 시스템 인터그레이터의 대부분이 ESB(Enterprise Service Bus)도입을 표방하기 시작했다. ESB란 다른 애플리케이션들을 통합해 데이터의 원활한 연동을 실현하는 기술인 EAI(Enterprise Application Integration,엔터프라이즈 애플리케이션 통합:기업내의 컴퓨터 애플리케이션들을 현대화 하고 통합하고 조정하는 것을 목표로 세운 계획, 방법 및 도구)의 하나이다. ESB는 표준화•분산화라고 하는 개방적인 개념을 이용한 새로운 EAI의 수법이다.SOA와 EAI와의 관계ESB를 이해하기 위해서 EAI의 기술적인 발전의 역사를 말하고 싶다. 그 전에 SOA와 EAI에 대한 관계를 분명히 하겠다.SOA를 설명할 때에 종래의 시스템에 자주 비유할 수 있는 것이 「사일로(silo)형」시스템 개발이란 표현이다. 이것은 90년대에 유행한 거대한 통합 패키지의 도입에 의한 폐해를 나타내는 말이다. ERP, CRM, SCM 등 엔터프라이즈계 솔루션 벤더는 하나의 시스템으로 모든 요구와 기능이 완결되는 것을 목표로 거대화가 진행되었다. 기업은 확실히 그것들을 도입하면서 매우 편리하게 되었다. 그러나 그것은 일부의 경우이다. 대기업에서는 사업부문마다 독자적으로 시스템 도입을 진행시켜 버렸기 때문에 부문을 제휴하려 할 때 수집된 장표나 파일로부터 수작업으로 다른 시스템에 데이터를 다시 입력하는 등의 작업이 빈번히 발생해 데이터의 교환을 원활히 실시할 수 없었던 것이다. 그것을 무리하게 접속하려고 하면 엉망이 되어 애플리케이션 접속은 실타래처럼 복잡하게 얽혀버린다. 시간도 걸리고 비용도 비싸기 때문에 시스템의 기반에서 결합되는 것이 아니라 보다 큰 묶음의 서비스 단위로 엉성하게 결합하는 SOA라고 하는 개념이 나왔던 것이다. 그것을 실현하는 기술로서 EAI가 이용되는 것이다.원시적인 애플리케이션 통합 - 1대1의 통합가장 원시적인 통합은 2개의 시스템에서의 데이터 교환의 접속으로 1대1 대응이다. 처음엔 애플리케이션끼리 직접 연결해 데이터 교환을 실시하는 것이었다. 그러나 이것에는 동기(同期:둘 이상의 주기 현상이 그들 사이의 상호 작용이나 외부로부터의 신호 작용에 의하여, 같은 위상 또는 일정한 위상차가 되는 일) 가 있었다. 다른 벤더간 혹은 자사개발의 시스템과 패키지를 조합하는 경우에 양쪽 모두의 시스템을 이해할 필요가 있어 큰 곤란을 겪어 왔다. 이 데이터의 수수 부분 통합에 따르는 문제를 해결하기 위해서 메세지큐잉(Message cueing)이란 기법이 등장했다. 이것은 시스템끼리 직접 교환되는 것이 아니라 일종의 보관 장소를 만들어 한쪽의 시스템이 다른 한쪽의 시스템의 동작에 관계없이 보관 장소에 데이터를 출력해 거기에 축적된 데이터를 다른 한쪽의 시스템이 받으러 가도록 한 것이다. 비동기(非同期:앞에서 행하여진 사상이나 연산이 완료되었다는 신호를 받고 비로소 특정한 사상이나 연산이 시작되는 방식)로서 간접적으로 메세지를 교환하기 때문에 서로의 시스템을 이해하지 않아도 데이터 교환의 룰만 결정하면 통합이 가능해졌다.종래의 EAI -「허브•앤드•스포크형」통합 그러나 시스템이 복잡해져 부문간에서 데이터 통합을 실시할 필요성이 증가함에 따라 1대 1이라고 할 수는 없고 1대 N의 교환이나 N대 N으로 교환을 실시하는 경우가 많아졌다. 그 때문에 메시지 큐(cue:신호)를 만들어 넣는 수가 방대해졌던 것이다. N대 N에서는 N개 만들면 좋은 것이 아니고 N×(N-1)ו••×1으로 머나먼 이야기가 되어 현실적이지 않고 비용도 많이 든다.그것을 해결할 방법으로서 허브•앤드•스포크(hub-and-spoke:(여러 항공 노선이)대도시 터미널 집중 방식)형이 만들어졌다. 자전거의 차바퀴에 비유하면 주축에 공통 허브(입수한 데이터를 일단 축적하는 스토리지)를 만들고 각 하부조직이 허브에 통하는 어댑터(데이터•포맷의 변환이나 행선지를 제어하는 메세지•브로커 등을 통해서 접속)를 경유해 접속되어 데이터를 수신한다. 이것을 이용하여 수많은 교환이 이루어져 데이터 제휴의 세계가 크게 발달했다. 이것은 일반적으로 말하는 EAI의 세계에서 EAI 툴은 대기업에서 벤처까지 다양한 기업이 제공했다. 통합되는 기업간의 시스템을 연결하는 것도 여러 가지의 통합책이 필요해 벤처기업이 발전했다. 또한 대기업도 자사개발에 가세해 이러한 벤처기업들을 매수하는 등 2000년 이후 많은 M&A(기업인수합병)가 일어났다.원칙적으로는 설계자가 논리만을 만들고 나머지가 EAI 툴을 사용해 어댑터가 자동적으로 코딩되는 것까지 가능하게 되었다. 물론 현실적으로 다양한 시스템 환경마련을 위해 대응할 수 있는 것과 할 수 없는 것이 발생하므로 툴도 만능은 아니다. 그때마다 최적의 툴을 선택해야 하고 생성과정도 필요하고 실제로는 그렇게 간단한 이야기는 아니다.허브•앤드•스포크형의 문제 그러나 종래의 허브•앤드•스포크형은 점차 시대가 변화함에 따라 변화되지 않았다. 예를 들면 기업간의 시스템 통합을 들 수 있다. M&A 진전에 의해 동업자끼리의 수평통합이나 흡수합병, 수직통합 등 다양한 경우가 발생했다. 그 때문에 시스템의 통합 요구가 필요했다. 새롭게 패키지를 도입하면 좋겠지만 비용이 많이 발생한다. 기존의 시스템을 살리면서 어떻게든 재빠르게 통합해야 했다. 그리고 최근 인터넷의 발달에 의해 기업간 업무의 제휴에 관련해서 인터넷 상에서 실시간으로 업무 통합을 실시하려는 요구가 증대되어 왔다. 그러기 위해 시스템도 기업간에 접속하고 자동 처리도 실시해야하는 필요성이 촉구되었다. 특정 2社간에만 이야기를 한다면 상관없지만 인터넷상에서 많은 기업과 접속을 하려고 하면 아무래도 표준화가 필요하다. 그리고 허브•앤드•스포크라는 방법으로는 대응할 수 없어 분산에 대한 필요성도 일어났다새로운 EAI -「ESB」이것들에 대응해 나온 것이 ESB (Enterprise Service Bus)라는 방식이다. 종래의 허브•앤드•스포크의 문제점을 해결하는 것으로 표준화, 분산화를 도입한 것이다. ‘버스’라는 단어에서도 알 수 있듯이 랜(LAN)과 같은 개념을 의미하는 것으로 거기에 업무 애플리케이션을 접속하여 사내의 다양한 서비스를 제휴해 나가는 방식이다. 현재 이것이 주류가 되고 있기 때문에 앞으로도 SOA를 실현하는 중요한 열쇠가 될 것이다. @