엔터프라이즈 서비스 버스
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/ESB.svg/220px-ESB.svg.png)
엔터프라이즈 서비스 버스(영어: Enterprise service bus, 약칭 ESB)는 서비스들을 컴포넌트화된 논리적 집합으로 묶는 핵심 미들웨어이며, 비즈니스 프로세스 환경에 맞게 설계 및 전개할 수 있는 아키텍처 패턴이다.
정의
[편집]이 버스는 기본적인 메시징, EAI, 중개 기술을 사용하거나 J2EE시스템의 서비스 통합 버스와 같은 플랫폼 내의 구성요소를 사용하는 등 다양한 방법으로 구현될 수 있다. 또한 ESB는 EAI와 애플리케이션 서버 기술을 함께 조합하여 구현 가능하지만 이러한 구현 방식이 전반적인 아키텍처에 영향을 미치지 않아야 한다.
ESB는 전사 컴퓨팅 인프라스트럭처에 공통적으로 분산되어 있는 여러 서비스, 애플리케이션, 다양한 데이터 등을 연결하는 지능형, 분산형, 트랜잭션형, 메시징 레이어로 작용한다. 또한 지능형 전송 기능과 라우팅 기능으로 동기 및 비동기 메시징 백본을 형성하여 메시지를 신뢰성있게 전달한다.
ESB는 개발자가 WSDL(Web Service Description Language)기반 표준 인터페이스에 의해 정의한 서비스, 즉 컴포넌트화된 비즈니스 기능을 API 또는 프로토콜에 관계없이 사용 및 호출하는 것을 가능하게 한다. WSDL은 추상화된 서비스 인터페이스 정의 부분, 재사용 가능한 프로토콜 바인딩 부분, 서비스를 제공하는 종단점(endpoint)부분으로 나뉘어 있다. 이것은 본질적으로 확장 가능하며 필요에 따라 다양한 프로토콜을 동일한 서비스에 연결할 수 있도록 포트 및 바인딩을 위한 확장 요소를 제공한다.
핵심 인프라스트럭처 서비스
[편집]전송
[편집]서비스 요청을 처리하기 위해서는 가장 적절한 전송 프로토콜이 선택되어야 한다. 산업 표준이 필수가 되어감에 따라 웹서비스의 경우 SOAP over HTTP, SOAP over HTTPS, SOAP over JMS가 필수적인 전송층이 된다. 또한 J2EE 애플리케이션 서버 기반 노드의 경우 RMI/IIOP 기술을 지원하며 CORBA기반 구성요소와의 상호운용성도 지원한다. 표준 Java2 Connector Achitecture 또는 JMS를 통해 접근 가능한 기타 일반 어댑터를 사용함으로써, ESB는 TCP/IP를 사용하는 애플리케이션을 포함하여 거의 모든 애플리케이션을 연결할 수 있다.
QoS(Quality of Service) 기반 라우팅
[편집]ESB에서의 QoS는 정의된 서비스 수준 협약에 따른 서비스를 제공 및 지원하는 것을 말한다. 이러한 협약은 사용과정 전반에 대해 서비스가 제공되는 방식에 대한 매개변수를 설정한다. 여기에는 응답 시간, 동기화, 역할 기반 제공, 협약에 정의된 기타 요인과 같은 여러 가지 요인들에 대한 정책을 포함할 수 있다.
중개
[편집]ESB의 중개 기능은 서비스 요청 및 응답, 이벤트 및 메시지에 대한 지능형 처리를 가능하게 한다. 이러한 중개 기능은 애플리케이션 서비스 종단점(요청자 또는 제공자)에서 구현되거나 버스의 인프라 스트럭처 전반에 분포될 수 있다.
중개 기능에는 다음과 같은 것들이 있다.
- 변환 : XML-XML 변환, 데이터베이스(DB)조회 및 취합
- 메시지 검증 : 데이터 필드의 검증 또는 특정 규칙 기반하의 필드 조합 검증
- 콘텐츠 또는 서비스 품질 선택 : 콘텐츠 또는 요구되는 QoS 기반 서비스 선택이 필요하다. 예를 들어 높은 우선순위 고객은 낮은 우선순위 고객보다 우선하여 처리량이 많은 서버에 라우팅되어야 한다.
- 콘텐츠 기반 라우팅 : 예를 들어 서비스 매개 변수에 국가 정보가 포함되어 있다면 해당 요청은 해당 국가의 서비스 제공자로 라우팅될 수 있다.
- 사용자 정의 로깅 : 법적 요건으로 서비스 상호작용의 로깅 및 감사 추적이 요구될 수도 있다.
- 측정 및 모니터링 : 버스는 작업 행위 및 통합 서비스 제어를 가능하게 하는 관리 포인트를 모두 가지고 있어야 한다.
- 자율 작업 : 특정 이벤트 감지 시 자체 구성, 치유, 최적화와 같은 대응을 한다.
- 정책 관리 : XML로 구체화한 정책 정의를 통해 위에 기술된 항목에서 필요한 작업 규칙에 대한 설명을 제공한다.
중개자(Mediator)는 요청자와 제공자 간의 논리적인 웹 서비스 SOAP 메시지 표현 시 중간 컴포넌트로서 작용한다. 이러한 중개자 컴포넌트는 제공자 측, 요청자 측, 또는 그 중간 지점에 위치하여 해당 기능을 제공할 수 있다. SOAP 메시지에는 중개 처리자(Mediation Handler)가 처리해야 하는 헤더를 포함하는 것이 일반적이나, 중개 컴포넌트는 SOAP 처리 및 라우팅 외의 목적으로도 사용될 수 있다.
웹 서비스 게이트웨이
[편집]웹 서비스 게이트웨이는 협력업체에 버스에 대한 제한된 접근을 제공하는 추가적인 버스 컴포넌트로, 개별적인 내부 서비스의 세부사항을 숨기고 사용자 액세스 권한을 검증하며 액세스를 제어하고 요청을 감시(audit)한다. 게이트웨이는 중개와 보안 등의 핵심 버스 컴포넌트를 사용하여 라우팅 및 관리 서비스를 구현한다.