ESB (Enterprise Service Bus)는 기업에 여러 서비스들을 논리적으로 서로 연결하여 상호 조합, 연계, 운용하는 인프라 시스템입니다. ESB는 표준화된 플랫폼 위에서 서로 다른 서비스나 애플리케이션을 상호 통합 연결하는 기술을 사용합니다. 이 문서에서는 ESB의 중요성과 구성요소 그리고 EAI와 비교한 차이점에 대해 정리해보겠습니다.
ESB (Enterprise Service Bus)
개념
ESB는 물리적으로 분산된 서비스 component 들을 통합여여 연동할 수 있도록 표준화된 메시지 버스와 프로토콜을 이용해서 서로 연동할 수 있는 시스템입니다. ESB는 아래 그림과 같이 Legacy System을 Adapter를 통해 ESB 버스상에서 다양한 Component들과 통신할 수 있는 인프라 시스템으로 이해할 수 있습니다.
또한 ESB 버스는 다른 ESB와 상호 연결되어 구성될 수 있습니다. 이런 다양한 시스템과 동시에 연동하기 위한 멀티 프로토콜을 지원하며, 모듈간의 결합도를 낮춰 loosely coupled 연결을 구성합니다. 결합도가 낮으면 서비스 간의 의존성이 낮아져 상호 연결성 측면에서 유리합니다.
ESB 특징
ESB의 특징을 간단히 정리하면 다음과 같습니다. ESB는 기존의 기업 내 자산을 연결하여 재활용 및 새로운 서비스로 재구성할 수도 있습니다.
- 기존의 분산된 서비스 들을 상호 연결시킬 수 있다.
- 재사용가능한 compoenent 들을 연결하여 기존의 서비스를 재활용할 수 있다.
- 표준화된 이벤트 기반의 시스템이다.
- 신뢰성있는 프로토콜과 메시지를 이용해 통신할 수 있다.
ESB 구성요소
ESB는 웹기술과 기능적 라우팅 그리고 데이터 Transformation 기술을 기반으로 SOA (서비스기반 아키텍처)를 지원하는 미들웨어 플랫폼입니다. ESB는 SW 서비스 컴포넌트 간 연동을 하는 백본으로서의 역할을 합니다. 이를 위해 웹서비스기술, Adater 기술, Legacy Component, J2EE, .NET 등의 IT 기술을 활용해 구성됩니다.
분산아키텍처
ESB는 각 부서나 업무의 프로세스를 분산처리가 가능하도록 지원하는 프레임워크입니다. 이를 위해 이기종간 통합이나 중앙 모니터링을 위한 웹서비스 기술을 사용합니다. ESB 시스템은 분산 서비스 아키텍처 기반위에 다음과 같은 세부 구성요소를 통해 구축할 수 있습니다.
1. 프로세스
프로세스는 위의 그림과 같이 여러 서비스들의 흐름으로 구성됩니다. 프로세스는 하위 서브 프로세스를 가질수 있으며, 시작부터 종료시까지 ESB 기반위에서 실행됩니다. 다양한 Process 들을 관리하기위해 ESB 내부에 BPM과 같은 프로세스 관리자를 둘 수 있습니다.
2. 서비스 컴포넌트
프로세스를 구성하는 단위로 하나의 Activity를 의미합니다. 이런 서비스는 그 자체만으로 하나의 독립된 처리를 수행할 수 있으며, 메시지를 통해 다른 외부의 서비스를 호출하는 것도 가능합니다. ESB 내부의 대표적인 서비스의 기능은 다음과 같습니다.
- Transformation: 정해진 XSLT를 기반으로 메시지를 변환하여 출력한다.
- 컨텐츠 기반 라우팅: 정해진 Rule에 따라 프로세스상의 경로는 분기하며 처리한다.
- 워크리스트: 사람이 업무를 처리하는 것과 같이 이를 지원할 수 있다.
3. Adapter
기존의 자사 시스템과 연동하거나 특정 애플리케이션과 통합을 할 경우 이를 서로 연결해주는 어댑터 역할을 합니다. 일반적으로 Legacy System을 연동할 때 많이 사용되며 메시지를 기반으로 통신합니다.
4. Message Layer
ESB는 기본적으로 BUS에 여러 프로세스나 서비스가 연결된 형태입니다. 이런 구성요소들은 메시지를 이용해 통신하는데, 이런 메시지의 안전하고 신뢰성 있는 전송을 지원하는 계층입니다. 이는 마치 시스템의 백본과 같은 여갈을 하며, 메시지의 전송이 어렵거나 재전송 처리가 필요한 경우 등을 제어하는 역할을 합니다.
EAI와 차이점
ESB가 전사 시스템의 통합이라면 EAI는 Application 레벨의 통합입니다. EAI는 시스템 별 별도의 어댑터 사용으로 연동하는 시스템이 늘어날 수록 복잡도도 증가하지만, ESB는 표준화된 어댑터 및 메시지로 복잡도가 낮습니다.
위와 같이 ESB는 EAI의 단점을 보완한 솔루션으로 각종 프로토콜 지원을 통해 회사의 다양한 프로세스와 서비스를 상호 운용할 수 있는 이점을 갖습니다.
이상으로 ESB (Enterprise Service Bus) 개념 및 EAI와 차이점에 대해 정리해보았습니다.
댓글