맨위로가기

엔터프라이즈 서비스 버스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

엔터프라이즈 서비스 버스(ESB)는 여러 서비스, 애플리케이션 및 데이터를 연결하는 지능형 메시징 레이어이다. WSDL 기반 표준 인터페이스를 통해 API나 프로토콜에 관계없이 서비스를 사용 및 호출할 수 있도록 하며, 소프트웨어 어댑터를 통해 메시지 형식 변환을 수행한다. ESB는 이기종 시스템 통합, 유연성, 확장성, 재사용성을 향상시키지만, 도입 초기 복잡성 증가, 통신 속도 저하, 구성 및 유지 관리의 어려움과 같은 단점도 있다. 주요 기능으로는 호출, 라우팅, 조정, 복합 이벤트 처리 등이 있으며, IBM App Connect, Oracle Enterprise Service Bus, Apache Camel 등이 대표적인 제품이다.

더 읽어볼만한 페이지

  • 서비스 지향 - 멀티테넌시
    멀티테넌시는 단일 애플리케이션 인스턴스로 여러 고객에게 서비스를 제공하여 SaaS 및 클라우드 환경에서 비용과 관리 효율성을 높이고 데이터 활용 가치를 창출하는 소프트웨어 아키텍처 방식이다.
  • 서비스 지향 - 서비스 지향 아키텍처
    서비스 지향 아키텍처(SOA)는 기능들을 독립적인 서비스 단위로 분리하여 느슨하게 결합함으로써, 네트워크를 통해 접근 가능한 서비스를 재사용하고 결합하여 응용 프로그램을 구축하는 소프트웨어 아키텍처이다.
  • 메시지 지향 미들웨어 - 마이크로소프트 비즈토크 서버
    마이크로소프트 비즈토크 서버는 다양한 시스템 통합 및 비즈니스 프로세스 자동화를 지원하는 서버 소프트웨어로, 여러 버전이 출시되었으며 어댑터, 가속기 등의 기능을 제공하고 대한민국 여러 산업 분야에서 활용되었으나 클라우드 기반 솔루션의 등장으로 입지가 변화하고 있다.
  • 메시지 지향 미들웨어 - ZeroMQ
    ZeroMQ는 다양한 메시징 패턴을 지원하고 높은 성능을 제공하는 메시지 라이브러리이다.
  • 시스템 소프트웨어 - 유틸리티 소프트웨어
    유틸리티 소프트웨어는 컴퓨터의 운영 체제, 하드웨어, 응용 소프트웨어를 관리하고 성능을 향상시키거나 특정 작업을 수행하는 프로그램으로, 시스템 관리, 파일 관리, 데이터 복구, 보안 등의 기능을 제공하며 백업 소프트웨어, 바이러스 백신 등이 대표적이다.
  • 시스템 소프트웨어 - 가상 사설 서버
    가상 사설 서버(VPS)는 공유 웹 호스팅과 전용 호스팅의 중간 단계 서비스로, 가상화 기술을 기반으로 슈퍼유저 수준의 접근 권한, 높은 운용 자유도와 향상된 보안성을 제공하지만, 환경 유지 관리 필요성, 상대적으로 높은 비용, 회선 공유 문제 등의 단점도 가진다.
엔터프라이즈 서비스 버스
개요
유형미들웨어
기반서비스 지향 아키텍처 (SOA)
주요 기능서비스 간 통신
메시지 변환
라우팅
프로토콜 변환
보안
특징
목표이기종 시스템 간 통합 및 상호 운용성 확보
아키텍처 스타일분산 시스템 아키텍처
통신 방식메시지 큐
웹 서비스
REST
구현 기술Apache Camel
Spring Integration
Mule ESB
장점시스템 간 결합도 감소
유연성 및 확장성 향상
재사용성 증대
중앙 집중식 관리
단점복잡성 증가
성능 저하 가능성
단일 실패 지점
활용 사례
엔터프라이즈 애플리케이션 통합 (EAI)여러 애플리케이션 간 데이터 및 기능 공유
비즈니스 프로세스 관리 (BPM)비즈니스 프로세스 자동화 및 최적화
클라우드 통합온프레미스 시스템과 클라우드 서비스 간 통합
참고 자료
관련 기술웹 서비스
REST
메시지 큐
SOA
표준WS-*
JMS
추가 정보
주의사항ESB 도입 시 신중한 계획 및 설계 필요

2. 정의

ESB는 다양한 애플리케이션 간의 통합을 위한 미들웨어 역할을 수행하며, 메시지 기반 통신, 프로토콜 변환, 라우팅, 서비스 중개 등 다양한 기능을 제공한다.[1] [2] [3] [4] [5]

ESB는 전사 컴퓨팅 인프라스트럭처에 분산되어 있는 여러 서비스, 애플리케이션, 데이터 등을 연결하는 지능형, 분산형, 트랜잭션형, 메시징 레이어이다. 또한 지능형 전송 기능과 라우팅 기능으로 동기 및 비동기 메시징 백본을 형성하여 메시지를 신뢰성 있게 전달한다.

ESB는 개발자가 WSDL(Web Service Description Language) 기반 표준 인터페이스로 정의된 서비스, 즉 컴포넌트화된 비즈니스 기능을 API 또는 프로토콜에 관계없이 사용 및 호출할 수 있게 한다.

엔터프라이즈 서비스 버스(ESB)의 개념은 컴퓨터 아키텍처의 버스 개념과 고성능 컴퓨터 운영 체제의 모듈식 및 동시 설계가 결합된 것과 유사하다.

ESB는 비즈니스 애플리케이션 간에 작동하는 소프트웨어로 구현되어 애플리케이션 간의 통신을 가능하게 한다. 이상적으로 ESB는 버스상의 모든 애플리케이션과의 직접적인 접촉을 대체하여 모든 통신이 ESB를 통해 이루어지도록 해야 한다. 이를 위해 ESB는 구성 요소 애플리케이션이 제공하는 기능을 의미 있는 방식으로 캡슐화해야 한다. 이는 일반적으로 엔터프라이즈 메시지 모델을 사용하여 이루어진다. 메시지 모델은 ESB가 송수신하는 표준 메시지 집합을 정의한다. ESB가 메시지를 수신하면 해당 메시지를 적절한 애플리케이션으로 라우팅한다. 종종 해당 애플리케이션이 동일한 메시지 모델 없이 진화했기 때문에 ESB는 메시지를 애플리케이션이 해석할 수 있는 형식으로 변환해야 한다. 소프트웨어 어댑터는 물리적 어댑터와 유사하게 이러한 변환을 수행한다.

ESB는 일련의 기능을 총칭하는 용어이며, 그 구현은 다양하다. ESB가 실체적인 제품인지, 아키텍처적인 스타일인지에 대해서는 논쟁이 있으며, ESB의 구현도 정해져 있지 않다(핵심 서버를 갖는 경우도 있고, 갖지 않는 구성도 있다).

카테고리기능
호출동기 및 비동기 전송 프로토콜 지원
라우팅주소 지정 가능성, 콘텐츠 기반 라우팅
조정어댑터, 프로토콜 변환, 데이터 변환/번역
복합 이벤트 처리이벤트 변환, 상관 관계, 패턴 매칭, 발행-구독
기타 서비스 품질보안(암호화 및 인증), 고신뢰 데이터 전송, 트랜잭션
관리모니터링, 감사, 로깅


3. 아키텍처

엔터프라이즈 서비스 버스(ESB)는 컴퓨터 아키텍처의 버스 개념과 고성능 컴퓨터 운영 체제의 모듈식 및 동시 설계가 결합된 것과 유사하다. 이 아키텍처 개발의 동기는 네트워크 내에서 독립적으로 배포, 실행, 이기종 및 분산될 것으로 예상되는 느슨한 결합 소프트웨어 구성 요소(서비스)의 구현을 설명하기 위한 표준화되고 구조화된 범용 개념을 찾는 것이었다. ESB는 서비스 지향 아키텍처의 일반적인 구현 패턴이며, 월드 와이드 웹의 네트워크 설계를 포함한다.

ESB는 전사 컴퓨팅 인프라스트럭처에 분산되어 있는 여러 서비스, 애플리케이션, 데이터 등을 연결하는 지능형, 분산형, 트랜잭션형, 메시징 레이어로 작용한다. 또한 지능형 전송 기능과 라우팅 기능으로 동기 및 비동기 메시징 백본을 형성하여 메시지를 신뢰성 있게 전달한다.

ESB는 개발자가 WSDL(Web Service Description Language) 기반 표준 인터페이스에 의해 정의한 서비스, 즉 컴포넌트화된 비즈니스 기능을 API 또는 프로토콜에 관계없이 사용 및 호출하는 것을 가능하게 한다. WSDL은 추상화된 서비스 인터페이스 정의 부분, 재사용 가능한 프로토콜 바인딩 부분, 서비스를 제공하는 종단점(endpoint) 부분으로 나뉘어 있다. 이것은 본질적으로 확장 가능하며 필요에 따라 다양한 프로토콜을 동일한 서비스에 연결할 수 있도록 포트 및 바인딩을 위한 확장 요소를 제공한다.

엔터프라이즈 서비스 버스 개념 또는 구현에 대한 전역 표준은 존재하지 않는다.[1] 대부분의 메시지 지향 미들웨어 제공업체는 서비스 지향 아키텍처에 대한 ''사실상의'' 표준으로 엔터프라이즈 서비스 버스 개념을 채택했다. ESB의 구현은 이벤트 기반 아키텍처와 표준 기반 메시지 지향 미들웨어를 메시지 큐와 함께 기술 프레임워크로 사용한다.[2] 그러나 일부 소프트웨어 제조업체는 버스 개념의 중요한 측면을 채택하지 않고 기존 미들웨어 및 통신 솔루션을 ESB로 재명명하기도 한다.

3. 1. 구성 요소

ESB는 여러 구성 요소들로 이루어져 있으며, 각 구성 요소는 특정 역할을 담당한다. ESB의 핵심 기능은 다음과 같다.

카테고리기능
호출동기 및 비동기 전송 프로토콜 지원
라우팅주소 지정 가능성, 콘텐츠 기반 라우팅
조정어댑터, 프로토콜 변환, 데이터 변환/번역
복합 이벤트 처리이벤트 변환, 상관 관계, 패턴 매칭, 발행-구독
기타 서비스 품질보안(암호화 및 인증), 고신뢰 데이터 전송, 트랜잭션
관리모니터링, 감사, 로깅, 계측 등



또한, ESB는 다음과 같은 특징을 갖는 경우가 많다.


  • 프로세스 편성, 비즈니스 프로세스 정의 기능(별도 제품으로 제공되는 경우도 있다).
  • 대규모 구현을 위한 부품이며, 이기종 혼합 시스템을 SOA(Service-Oriented Architecture)를 통해 관리 가능하게 한다. 다만, ESB Mule과 같은 오픈 소스 ESB는 중소 규모를 위한 부품이다.
  • 운영체제프로그래밍 언어에 종속되지 않는다. 예를 들어, Java와 .NET 애플리케이션의 상호 운용을 가능하게 한다.
  • XML을 통신 언어로 사용한다.
  • 웹 서비스 표준 규격을 지원한다.
  • 각종 메시지 교환 패턴(MEP)을 지원(동기, 비동기, send-and-forget, 발행-구독 등)
  • 표준 기반 어댑터(J2EE Connector Architecture 및 SAP 등)로 기존 시스템과의 통합 지원
  • 컴포넌트 지향 설계를 통한 모듈형 아키텍처
  • 데이터 형식 변환을 위해, 변환 서비스(XSLT 및 XQuery)를 갖추고, 메시지 송신 측 애플리케이션과 수신 측 애플리케이션에서 필요한 형식이 다른 경우에도 대응한다.
  • 메시지 송수신을 위한 스키마에 대한 유효성 검사
  • 핵심이 없는 구성의 경우, 메시지를 상황에 따라 라우팅하거나 변환한다.
  • SLA(서비스 수준 협약)에 따라, 메시지 지연 등을 모니터링한다.
  • 사용자의 우선 순위 지정을 따라 서비스를 분류한다.
  • 애플리케이션이 일시적으로 작동하지 않는 경우, 메시지를 큐에 보관한다.

3. 2. 기능

ESB는 서비스 간의 메시지 라우팅, 변환, 중개, 보안, 모니터링 등 다양한 기능을 제공한다.[1] 이러한 기능은 다음과 같이 분류할 수 있다.

분류기능
호출동기 및 비동기 전송 프로토콜 지원, 서비스 매핑(위치 및 바인딩)
라우팅주소 지정 가능성, 정적/결정적 라우팅, 내용 기반 라우팅, 규칙 기반 라우팅, 정책 기반 라우팅
데이터 중재어댑터, 프로토콜 변환, 서비스 매핑
메시징메시지 처리, 메시지 변환 및 메시지 향상
프로세스 오케스트레이션¹복잡한 비즈니스 프로세스 구현
서비스 오케스트레이션²단일 집합 서비스로 노출되는 여러 구현 서비스의 조정
복합 이벤트 처리이벤트 해석, 상관 관계, 패턴 일치
기타 서비스 품질보안(암호화 및 서명), 신뢰할 수 있는 전송, 트랜잭션 관리
시스템 관리모니터링, 감사, 로깅, 계량, 관리 콘솔, BAM
애그노스틱운영 체제 및 프로그래밍 언어에 대한 일반적인 애그노스틱 (예: Java와 .NET 응용 프로그램 간의 상호 운용성)
프로토콜 변환최신 통신 프로토콜 서비스 표준 지원
메시지 교환 패턴다양한 MEPs (예: 동기식 요청/응답, 비동기식 요청/응답, 보내고 잊기, 게시/구독) 지원
어댑터JCA와 같은 표준 기반 레거시 시스템 통합 지원 어댑터
보안ESB 사용 인증, 권한 부여 및 감사를 위한 표준화된 보안 모델
변환전송 및 수신 애플리케이션 형식 간 데이터 형식 및 값 변환 용이성, 변환 서비스 (대개 XSLT 또는 XQuery)
유효성 검사메시지 송수신 스키마 유효성 검사
거버넌스비즈니스 규칙 균일 적용 기능
강화다른 소스에서 메시지 강화
분할 및 병합여러 메시지 분할 및 결합, 예외 처리
추상화여러 계층에 걸친 통일된 추상화 제공
라우팅 및 변환분산되지 않은 정책 기반 메시지 라우팅 또는 조건부 변환 (중앙 규칙 엔진 불필요)
상품 서비스컨텍스트에 따라 공유 서비스로 일반적으로 사용되는 기능 제공



¹ 일부에서는 프로세스 오케스트레이션을 ESB 기능으로 간주하지 않는다.[6]

² 프로세스 오케스트레이션은 여러 비즈니스 서비스 조정을 필요로 하는 복잡한 비즈니스 프로세스 (일반적으로 BPEL 사용) 구현을 지원하지만, 서비스 오케스트레이션은 개별 요청 처리를 위해 여러 구현 서비스 (집합 서비스로 노출됨) 조정을 가능하게 한다.[7]

ESB는 다음과 같은 주요 역할을 수행한다.[5]


  • 서비스 간 메시지 라우팅
  • 서비스 간 메시지 교환 라우팅 모니터링 및 제어
  • 통신 서비스 구성 요소 간 경합 해결
  • 서비스 배포 및 버전 관리 제어
  • 중복 서비스 사용 조정
  • 이벤트 처리, 데이터 변환 및 매핑, 메시지 및 이벤트 대기열 및 시퀀싱, 보안 또는 예외 처리, 프로토콜 변환, 적절한 통신 서비스 품질 시행 등 일반 서비스 제공


ESB는 비즈니스 애플리케이션 간 통신을 가능하게 하는 소프트웨어로 구현된다. 모든 통신이 ESB를 통해 이루어지도록 하여 애플리케이션 간 직접 접촉을 대체하는 것이 이상적이다. ESB는 엔터프라이즈 메시지 모델을 사용하여 구성 요소 애플리케이션 기능을 캡슐화한다. ESB는 표준 메시지 집합을 정의하고, 메시지 수신 시 적절한 애플리케이션으로 라우팅하며, 필요한 경우 메시지를 변환한다.[5]

ESB의 장점은 플랫폼에 구애받지 않고 어떤 조건에서도 무엇과든 통합할 수 있다는 것이다.

4. 핵심 인프라스트럭처 서비스

ESB는 전송, QoS 기반 라우팅, 중개, 웹 서비스 게이트웨이 등의 핵심 서비스를 제공하여 애플리케이션 통합을 지원한다. 이러한 서비스들은 기업 환경에서 다양한 시스템과 애플리케이션이 서로 효율적으로 통신하고 데이터를 교환할 수 있도록 돕는 핵심적인 역할을 수행한다.

각 핵심 서비스에 대한 자세한 내용은 다음과 같다.


  • '''전송''': 전송
  • '''QoS 기반 라우팅''': QoS 기반 라우팅
  • '''중개''': 중개
  • '''웹 서비스 게이트웨이''': 웹 서비스 게이트웨이

4. 1. 전송

서비스 요청을 처리하기 위해 가장 적절한 전송 프로토콜이 선택되어야 한다. 산업 표준이 중요해짐에 따라 웹 서비스의 경우 SOAP over HTTP, SOAP over HTTPS, SOAP over JMS가 필수적인 전송 계층이 되었다. J2EE 애플리케이션 서버 기반 노드의 경우 RMI/IIOP 기술을 지원하며 CORBA 기반 구성 요소와의 상호 운용성도 지원한다. 표준 Java2 Connector Achitecture 또는 JMS를 통해 접근 가능한 기타 일반 어댑터를 사용하면, ESB는 TCP/IP를 사용하는 애플리케이션을 포함하여 거의 모든 애플리케이션을 연결할 수 있다.[1]

4. 2. QoS(Quality of Service) 기반 라우팅

ESB에서 QoS(서비스 품질)는 정의된 서비스 수준 협약(SLA)에 따라 서비스를 제공하고 지원하는 것을 의미한다. 이러한 협약은 서비스 사용 과정 전반에 걸쳐 서비스 제공 방식에 대한 매개변수를 설정한다. 여기에는 응답 시간, 동기화, 역할 기반 제공, 협약에 정의된 기타 요인 등 여러 요인에 대한 정책이 포함될 수 있다.

ESB는 공통적으로 다음과 같은 기능을 갖는다.[1]

카테고리기능
기타 서비스 품질보안 (암호화 및 인증), 고신뢰 데이터 전송, 트랜잭션



또한, ESB는 다음과 같은 특징을 갖는 경우가 많다.[1]


  • SLA(서비스 수준 협약)에 따라 메시지 지연 등을 모니터링한다.[1]
  • 사용자 우선 순위에 따라 서비스를 분류한다.[1]
  • 애플리케이션이 일시적으로 작동하지 않는 경우 메시지를 큐에 보관한다.[1]

4. 3. 중개

ESB의 중개 기능은 서비스 요청 및 응답, 이벤트, 메시지에 대한 지능형 처리를 가능하게 한다. 이러한 중개 기능은 애플리케이션 서비스 종단점(요청자 또는 제공자)에서 구현되거나 버스의 인프라 스트럭처 전반에 분포될 수 있다.[1]

중개 기능은 다음과 같다.

  • 변환: XML-XML 변환, 데이터베이스(DB) 조회 및 취합[1]
  • 메시지 검증: 데이터 필드 검증 또는 특정 규칙 기반하의 필드 조합 검증[1]
  • 콘텐츠 또는 서비스 품질 선택: 콘텐츠 또는 요구되는 QoS 기반 서비스 선택. 예를 들어, 높은 우선순위 고객은 낮은 우선순위 고객보다 우선하여 처리량이 많은 서버에 라우팅되어야 한다.[1]
  • 콘텐츠 기반 라우팅: 서비스 매개 변수에 국가 정보가 포함되어 있다면 해당 요청은 해당 국가의 서비스 제공자로 라우팅될 수 있다.[1]
  • 사용자 정의 로깅: 법적 요건으로 서비스 상호작용의 로깅 및 감사 추적이 요구될 수 있다.[1]
  • 측정 및 모니터링: 버스는 작업 행위 및 통합 서비스 제어를 가능하게 하는 관리 포인트를 모두 가지고 있어야 한다.[1]
  • 자율 작업: 특정 이벤트 감지 시 자체 구성, 치유, 최적화와 같은 대응을 한다.[1]
  • 정책 관리: XML로 구체화한 정책 정의를 통해 위에 기술된 항목에서 필요한 작업 규칙에 대한 설명을 제공한다.[1]


중개자(Mediator)는 요청자와 제공자 간의 논리적인 웹 서비스 SOAP 메시지 표현 시 중간 컴포넌트로서 작용한다.[1] 이러한 중개자 컴포넌트는 제공자 측, 요청자 측, 또는 그 중간 지점에 위치하여 해당 기능을 제공할 수 있다.[1] SOAP 메시지에는 중개 처리자(Mediation Handler)가 처리해야 하는 헤더를 포함하는 것이 일반적이나, 중개 컴포넌트는 SOAP 처리 및 라우팅 외의 목적으로도 사용될 수 있다.[1]

4. 4. 웹 서비스 게이트웨이

웹 서비스 게이트웨이는 협력업체에 버스에 대한 제한된 접근을 제공하는 추가적인 버스 컴포넌트이다. 이는 개별적인 내부 서비스의 세부사항을 숨기고 사용자 접근 권한을 검증하며 접근을 제어하고 요청을 감사(audit)한다. 게이트웨이는 중개와 보안 등의 핵심 버스 컴포넌트를 사용하여 라우팅 및 관리 서비스를 구현한다.

5. 특징

ESB는 다양한 특징을 갖는다. 동기 및 비동기 전송 프로토콜을 지원하고, 서비스 매핑(위치 및 바인딩) 기능을 통해 서비스를 호출한다. 주소 지정, 정적/결정적 라우팅, 내용 기반 라우팅, 규칙 기반 라우팅, 정책 기반 라우팅 등 다양한 라우팅 기능을 제공한다.[1] 어댑터, 프로토콜 변환, 서비스 매핑을 통해 데이터를 중재하며, 메시지 처리, 변환, 향상 등의 메시징 기능을 수행한다.[1]

ESB는 복잡한 비즈니스 프로세스 구현을 위한 프로세스 오케스트레이션과 단일 집합 서비스로 노출되는 여러 구현 서비스의 조정을 위한 서비스 오케스트레이션 기능을 제공한다.[1] 또한, 이벤트 해석, 상관 관계, 패턴 일치 등의 복합 이벤트 처리 기능과 보안(암호화 및 서명), 신뢰할 수 있는 전송, 트랜잭션 관리와 같은 기타 서비스 품질 기능도 제공한다.[1]

시스템 관리를 위해 모니터링, 감사, 로깅, 계량, 관리 콘솔, BAM 등의 기능을 제공하며, 운영 체제 및 프로그래밍 언어에 독립적인 특성을 갖는다. 예를 들어, Java와 .NET 응용 프로그램 간의 상호 운용성을 지원한다.[1]

ESB는 최신 통신 프로토콜 서비스 표준에 대한 포괄적인 지원과 함께 프로토콜 변환 기능을 제공하며, 다양한 메시지 교환 패턴(동기식 요청/응답, 비동기식 요청/응답, 보내고 잊기, 게시/구독)을 지원한다.[1] JCA와 같은 표준 기반 어댑터를 통해 레거시 시스템과의 통합을 지원하며, 표준화된 보안 모델을 통해 ESB 사용을 인증, 인증 및 감사한다.[1]

전송 애플리케이션과 수신 애플리케이션의 형식 간의 데이터 형식 및 값의 변환을 용이하게 하고, 변환 서비스(XSLT 또는 XQuery)를 통해 변환을 수행한다. 메시지 송수신에 대한 스키마 유효성 검사 기능을 제공하며, 거버넌스 기능을 통해 비즈니스 규칙을 균일하게 적용한다.[1]

ESB는 다른 소스에서 메시지 강화를 수행하고, 여러 메시지의 분할 및 결합과 예외 처리를 지원하며, 여러 계층에 걸쳐 통일된 추상화를 제공한다. 분산되지 않은 정책을 기반으로 메시지 라우팅 또는 조건부 변환을 수행하며(중앙 규칙 엔진 불필요), 컨텍스트에 따라 공유 서비스로 일반적으로 사용되는 기능을 제공한다.[1]

ESB의 주요 기능은 다음과 같이 요약할 수 있다.

카테고리기능
호출동기 및 비동기 전송 프로토콜 지원
라우팅주소 지정 가능성, 콘텐츠 기반 라우팅
조정어댑터, 프로토콜 변환, 데이터 변환/번역
복합 이벤트 처리이벤트 변환, 상관 관계, 패턴 매칭, 발행-구독
기타 서비스 품질보안(암호화 및 인증), 고신뢰 데이터 전송, 트랜잭션
관리모니터링, 감사, 로깅, 계측 등


6. 장단점

엔터프라이즈 서비스 버스(ESB)는 다음과 같은 장단점을 가진다.[5]
장점


  • 확장성: 개별 솔루션에서 전사적 규모로 확장(분산 버스)할 수 있다.
  • 구성 중심: 통합 코딩보다 더 많은 구성을 통해 시스템을 구축할 수 있다.
  • 느슨한 결합: 중앙 규칙 엔진이나 브로커 없이, 플러그인/플러그아웃이 쉬운 느슨한 결합 시스템을 지원한다.

단점

  • 속도 저하: 특히 이미 호환되는 서비스 간 통신에서 속도가 저하될 수 있다.
  • 단일 실패 지점: ESB에 문제가 생기면 엔터프라이즈 내 모든 통신이 중단될 수 있다.
  • 복잡성: 구성 및 유지 관리가 복잡하다.

6. 1. 장점


  • 개별 솔루션에서 전사적 규모의 구축으로 확장(분산 버스)이 가능하다.
  • 통합 코딩보다는 더 많은 구성을 할 수 있다.
  • 중앙 규칙 엔진, 중앙 브로커가 불필요하다.
  • 쉬운 플러그인 및 플러그 아웃, 느슨한 결합 시스템을 지원한다.
  • 기존 시스템을 빠르고 저렴하게 이용할 수 있다.
  • 유연성이 향상되어 요구 사항이 변경되어도 쉽게 대응할 수 있다.
  • 표준 사양을 기반으로 한다.
  • 기업 내 일부 부서에서 시작하여 전체에 적용할 수 있는 확장성을 제공한다.
  • 핵심 서버 등이 불필요하다.
  • 시스템을 중단하지 않고 장비 추가 등이 가능하다.[5]

ESB 상품 구성 요소의 허브

6. 2. 단점


  • 통신 속도가 저하될 수 있으며, 특히 이미 호환되는 서비스의 경우에는 더욱 그렇다.[5]
  • 단일 실패 지점이 될 수 있어, 엔터프라이즈 내의 모든 통신을 중단시킬 수 있다.[5]
  • 구성 및 유지 관리가 복잡하다.[5]
  • 엔터프라이즈 메시지 모델은 일반적으로 강제적이다.[5]
  • ESB의 가치를 높이기 위해서는 다수의 서로 다른 시스템이 메시지 표준에 따라 협력해야 한다.[5]
  • 벤더에 따라 구현을 위해 추가적인 하드웨어 투자가 필요하다.[5]
  • ESB를 구성하기 위한 새로운 기술이 필요하다.[5]
  • 기존 메시지 지향 시스템에 비해 변환(번역) 계층이 새롭게 추가되었다.[5]

7. 도입 시 고려 사항

ITIL 등 IT 거버넌스 모델을 통해 기업 전략을 명확히 해야 효과적으로 구현할 수 있다. 장기적인 관점에서 시스템 통합 계획을 수립해야 한다. 향후 계획 없이 메시지 버전을 계속해서 겹쳐나가면 시스템 간의 결합도가 강해진다.[5]

8. 주요 제품

엔터프라이즈 서비스 버스(ESB)는 기업 환경에서 애플리케이션 간의 통합을 지원하는 소프트웨어 아키텍처이다. ESB는 다양한 상용 및 오픈 소스 제품으로 제공되며, 기업은 자신의 요구 사항에 맞는 제품을 선택하여 도입할 수 있다. ESB는 아래 표와 같이 다양한 기능을 제공한다.

카테고리기능
호출동기 및 비동기 전송 프로토콜 지원
라우팅주소 지정 가능성, 콘텐츠 기반 라우팅
조정어댑터, 프로토콜 변환, 데이터 변환/번역
복합 이벤트 처리이벤트 변환, 상관 관계, 패턴 매칭, 발행-구독
기타 서비스 품질보안(암호화 및 인증), 고신뢰 데이터 전송, 트랜잭션
관리모니터링, 감사, 로깅



ESB 제품에는 상용 제품과 오픈 소스 제품이 있다. 대표적인 상용 제품으로는 IBM App Connect, 오라클 엔터프라이즈 서비스 버스, SAP 프로세스 통합, TIBCO 소프트웨어 ActiveMatrix BusinessWorks 등이 있으며, 오픈 소스 제품으로는 아파치 카멜, 아파치 서비스믹스, WSO2 ESB 등이 있다.[1]

8. 1. 상용 제품

다음은 주목할 만한 상용 엔터프라이즈 서비스 버스(ESB) 제품들이다.

  • IBM App Connect: 이전의 IBM Integration Bus 및 IBM WebSphere ESB이다.
  • 오라클 엔터프라이즈 서비스 버스: 오라클에서 제공하는 ESB 제품이다.
  • SAP 프로세스 통합: SAP에서 제공하는 프로세스 통합 솔루션이다.
  • TIBCO 소프트웨어 ActiveMatrix BusinessWorks: TIBCO 소프트웨어의 ESB 제품이다.


이 외에도 마이크로소프트 애저 서비스 버스, 마이크로소프트 비즈토크 서버, 뮬 ESB 등 다양한 제품이 존재한다.[1]

8. 1. 1. 대한민국 벤더


  • 유료 소프트웨어
  • * 마이크로소프트
  • ** Microsoft Azure Service Bus
  • ** Microsoft BizTalk Server
  • * IBM
  • ** IBM Integration Bus
  • ** IBM WebSphere ESB
  • * 오라클 Enterprise Service Bus

8. 2. 오픈 소스 제품


  • 아파치 카멜
  • 아파치 서비스믹스
  • 아파치 시냅스
  • 레드햇 Fuse ESB
  • JBoss ESB
  • NetKernel
  • Open ESB
  • Petals ESB
  • Spring Integration
  • UltraESB
  • WSO2 ESB
  • [https://zato.io Zato] (파이썬)

9. 역사

"엔터프라이즈 서비스 버스"(ESB)라는 용어는 2002년 가트너 그룹의 로이 W. 슐테와 데이비드 채플의 저서 ''엔터프라이즈 서비스 버스''에서 비롯된 것으로 알려져 있다. 여러 회사가 이 용어를 처음 사용했다고 주장하지만, 슐테는 인터뷰에서 Candle이라는 회사에서 처음 이 용어를 들었으며 "ESB의 가장 직접적인 선조는 1998년 Candle의 Roma 제품이었다"고 말했다.[3] Roma의 수석 아키텍트이자 특허 출원자는 게리 에이븐이었다. Roma는 1998년에 처음 판매되어 시장에 출시된 최초의 상업용 ESB였지만, 2002년 Sonic의 제품 역시 초기 ESB 중 하나였다.[4]


  • 서비스 - 메시지 교환을 통해 다른 서비스와 통신하는, 반복적이지 않고 자율적으로 실행되는 프로그램을 나타낸다.
  • 버스 - 컴퓨터 하드웨어 버스에 비유하여 사용된다.
  • 엔터프라이즈 - 이 개념은 원래 기업 내에서 엔터프라이즈 애플리케이션 통합의 복잡성을 줄이기 위해 고안되었으나, 현대 인터넷 통신이 더 이상 기업 실체에 국한되지 않으므로 이 제약은 쓸모없게 되었다.

10. 관련 기술

ESB는 서비스 지향 아키텍처(SOA), 웹 서비스, 메시지 지향 미들웨어(MOM) 등 다양한 기술과 관련되어 있다.[1][2] ESB의 구현은 이벤트 기반 아키텍처와 표준 기반 메시지 지향 미들웨어를 메시지 큐와 함께 기술 프레임워크로 사용한다.

ESB는 다음과 같은 핵심 기능을 제공한다.

카테고리기능
호출동기 및 비동기 전송 프로토콜 지원
라우팅주소 지정 가능성, 콘텐츠 기반 라우팅
조정어댑터, 프로토콜 변환, 데이터 변환/번역
복합 이벤트 처리이벤트 변환, 상관 관계, 패턴 매칭, 발행-구독
기타 서비스 품질보안(암호화 및 인증), 고신뢰 데이터 전송, 트랜잭션
관리모니터링, 감사, 로깅, 계측 등



또한, ESB는 다음과 같은 특징을 갖는 경우가 많다.


  • 프로세스 편성, 비즈니스 프로세스 정의 기능 (별도 제품으로 제공되는 경우도 있음)
  • 대규모 구현을 위한 부품이며, 이기종 혼합 시스템을 SOA(서비스 지향 아키텍처)를 통해 관리 가능하게 한다. 다만, ESB Mule과 같은 오픈 소스 ESB는 중소 규모를 위한 부품이다.
  • 운영체제프로그래밍 언어에 종속되지 않는다. 예를 들어, Java와 .NET 애플리케이션의 상호 운용을 가능하게 한다.
  • XML을 통신 언어로 사용한다.
  • 웹 서비스 표준 규격을 지원한다.
  • 각종 메시지 교환 패턴(MEP)을 지원(동기, 비동기, send-and-forget, 발행-구독 등)
  • 표준 기반 어댑터(J2EE Connector Architecture 및 SAP 등)로 기존 시스템과의 통합 지원
  • 컴포넌트 지향 설계를 통한 모듈형 아키텍처
  • 데이터 형식 변환을 위해, 변환 서비스(XSLT 및 XQuery)를 갖추고, 메시지 송신 측 애플리케이션과 수신 측 애플리케이션에서 필요한 형식이 다른 경우에도 대응한다.
  • 메시지 송수신을 위한 스키마에 대한 유효성 검사
  • 핵심이 없는 구성의 경우, 메시지를 상황에 따라 라우팅하거나 변환한다.
  • SLA(서비스 수준 협약)에 따라, 메시지 지연 등을 모니터링한다.
  • 사용자의 우선 순위 지정을 따라 서비스를 분류한다.
  • 애플리케이션이 일시적으로 작동하지 않는 경우, 메시지를 큐에 보관한다.

참조

[1] 웹사이트 ESB is an architectural style, a software product, or a group of software products? http://www.consultor[...] Artifact Consulting 2010-04-16
[2] 간행물 "Message-Oriented Middleware" http://www.mendeley.[...] John Wiley and Sons 2004
[3] 웹사이트 The great ESB squabble of 2005 https://www.zdnet.co[...] 2020-12-31
[4] 웹사이트 Difference between a Message Broker and an ESB https://stackoverflo[...] 2017-07-19
[5] 웹사이트 Enterprise Service Bus [Book] http://shop.oreilly.[...]
[6] 웹사이트 The Role of the Enterprise Service Bus (presentation) http://www.infoq.com[...] 2009-06-04
[7] 웹사이트 How to: choosing between lightweight and traditional ESBs http://blog.octo.com[...] Octo 2011-06-06
[8] 웹사이트 Learn How to Embrace Lightweight ESBs http://www.forrester[...] Fo2014 2007-09-12



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com