ESB
ESB(이에스비)는 "Enterprise Service Bus"의 약자로서, 버스 방식을 이용하여 서로 다른 여러 시스템을 연계하는 것을 말한다. 기존 EAI 방식의 단점을 개선하였다. 주요 ESB 솔루션으로 메타빌드㈜의 인디고(Indigo) 솔루션, ㈜티맥스소프트의 프로버스(ProBus), ㈜케이포엠(K4M)의 비즈위버(BizWeaver) 솔루션 등이 있다.
개요
ESB는 응용 프로그램의 연결된 구성 요소 간에 작업을 배포하는 데 사용되는 미들웨어 도구이다. 이동 작업의 통일된 수단을 제공하도록 설계되었으므로 애플리케이션을 버스(bus)에 연결하고 간단한 구조 및 비즈니스 정책 규칙을 기반으로 메시지에 가입할 수 있는 기능을 제공한다.
ESB는 서비스 참여자들 사이에서 발생하는 서비스 인터랙션의 관리와 가상화를 지원하는 아키텍처 패턴이다. 서비스 공급자와 서비스 요청자들 사이를 연결하고, 정확히 매치되지 않더라도 인터랙션을 가능하게 한다. ESB 패턴은 다양한 미들웨어 기술과 프로그래밍 모델을 사용하여 구현될 수 있다. ESB 패턴에서는 직접 인터랙팅 하기보다는 SOA의 핵심 정의를 구현 및 확장하는 기능들의 가상화와 관리를 제공하는 버스를 통해 서비스 인터랙션에 참여한 사람들이 통신할 수 있고 다음과 같은 가상화를 제공한다.
- 위치와 정체성 : 참여자들은 다른 참여자들의 위치와 정체성을 알 필요가 없다.
- 인터랙션 프로토콜 : 참여자들은 공통의 통신 프로토콜이나 인터랙션 스타일을 공유할 필요가 없다.
- 인터페이스 : 요청자와 공급자는 공통 인터페이스에 동의할 필요가 없다.
- (인터랙션) 서비스의 품질(QoS) : 참여자들은 자신들의 품질에 대해 요구사항뿐만 아니라 인터랙션 서비스에 대해 선언한다.[1]
구성요소
- 어댑터 형태의 레거시 연동 컴포넌트 : ESB는 기본적으로 다양한 표준 프로토콜을 소스 형태의 라이브러리가 아닌 통합 개발 환경에서 플러거블(Pluggable)할 수 있도록 간단한 형태로 지원한다.
- 메시지의 변환, 가공 : 따라서 데이터 포맷과 형태 등을 통합 개발 환경 등을 통해 자유롭게 변화하고 가공한다.
- BPM : 다양한 시스템의 데이터와 애플리케이션과의 연동을 통해 하나의 서비스를 이용할 수 있다.
- 컨트롤과 모니터링 : 여러 과정들은 통합적인 조작과 모니터링이 가능해야 한다. 어댑터 단에서의 연결 상태부터 진행되고 있는 프로세스의 상태 및 데이터값 등이 모니터링의 대상이 될 수 있다.
- 통합개발환경 : 여러 툴을 사용하여 개발되거나 툴 자체가 제공되지 않을 경우보다 통합개발환경의 개발 효율성이 더 높다. 따라서 통합개발환경은 ESB에서 필요한 요소 중 하나이다.[2]
특징
EAI 와 ESB 는 비슷한 개념으로 이해될 수 있다. ESB는 기업 IT 환경에서 중추적인 역할을 수행하는 것으로 각 레거시 시스템과의 연동을 위한 다양한 표준 프로토콜의 지원을 기본으로, 재사용 가능한 컴포넌트들을 조립함으로써 서비스 지향적인 기업 환경을 만들 수 있는 기반이 되어야 한다.
- 광범위성 : ESB는 광범위한 그리드의 핵심을 형성하며, 지역화된 통합 프로젝트에도 적당하고 어떤 유형의 통합 환경이든 받아들일 수 있는 토대를 제공한다.
- 표준 기반 통합 : ESB의 기본개념으로 J2EE, .NET, COM, C, C++ 등의 다양한 기술을 사용하여 구현된 애플리케이션과 통합되며 SOAP과 웹서비스 API를 지원하는 어느 것과도 쉽게 통합될 수 있다.
- 고도로 분산된 통합과 선택적인 전개 : ESB는 통합 기능을 제공한다는 점에서 전통적인 EAI 브로커의 기능을 포함한다.ESB는 이들 통합 기능을 고도로 분산된 형식으로 함께 작업할 수 있고 서로에 대해 독립적으로 확장될 수 있는 개별적인 서비스로 제공한다.
- 보안성과 신뢰성 : ESB 상의 노드 사이의 연결은 방화벽 기능으로 보안성을 갖고 신뢰성은 MOM을 통해 이루어진다.
- 점진적 채택 : ESB는 각각의 작은 프로젝트가 더 큰 통합 네트워크 안에서 구축되게 할 수 있다.
- 분산 데이터 변형
- 레이어 서비스를 통한 확장성
- 이벤트 주도형 SOA
- 프로세스 흐름
- 자치적인 연합 환경
- ESB 내장 데이터타입, XML
- 비즈니스 데이터의 실시간 생성
- 운영 인식[3]
EAI와 차이점
EAI 와 ESB 는 비슷한 개념으로 이해될 수 있다. EAI는 통합에 초점을 맞춘 기술임에 비하여 ESB는 프로세스 기반의 SOA로 나아가기 위한 기반으로서 만들어진 것으로 그 모습이 유사하지만 서로가 바라보는 관점과 최종 목적지가 다르다. 유연한 비즈니스를 목적에 둔 Modeling ->Integration -> Deploy -> Business Monitoring 이 그것으로서, 이 네 가지가 계속 반복되면서 목표로 하는 비즈니스 지표를 만족시킬 때까지 끊임없이 그 모습을 유연하게 바꿔 가는 것이 프로세스 기반인 SOA의 특징이다. SOA의 최종 목적을 위해 만들어진 것이 ESB이고 ESB가 가진, EAI 솔루션과 유사해 보이는 특징들은 SOA를 만나면서 EAI 솔루션들과 다른 가치를 부여받게 되었다.[4]
ESB의 중요성
분산된 서비스 컴포넌트를 쉽게 통합 연동할 수 있어 신뢰성 있는 메시지 통신이 가능하며 각 레거시 시스템과의 연동을 위한 다양한 표준 프로토콜의 지원을 기본으로, 재사용 가능한 컴포넌트들을 조립함으로써 서비스 지향적인 기업 환경을 만들 수 있는 기반을 제공한다.
각주
- ↑ 글로벌셀링 플랫폼, 〈웹 서비스 구현을 위한 SOA 프로그래밍 모델: IBM ESB소개〉 , 《네이버 블로그》, 2006-02-24
- ↑ 몽키몽키, 〈ESB(Enterprise Service Bus) 개념잡기〉 , 《네이버 블로그》, 2007-11-18
- ↑ 잠보, 〈ESB의 특징〉 , 《네이버 블로그》, 2006-05-21
- ↑ 몽키몽키, 〈ESB(Enterprise Service Bus) 개념잡기〉 , 《네이버 블로그》, 2007-11-18
참고자료
- 글로벌셀링 플랫폼, 〈웹 서비스 구현을 위한 SOA 프로그래밍 모델: IBM ESB소개〉 , 《네이버 블로그》, 2006-02-24
- 잠보, 〈ESB의 특징〉 , 《네이버 블로그》, 2006-05-21
- Margaret Rouse, 〈Enterprise Service Bus (ESB)〉 , 《테크타겟》, 2017-02
- 몽키몽키, 〈ESB(Enterprise Service Bus) 개념잡기〉 , 《네이버 블로그》, 2007-11-18
같이 보기