ESB(Enterprise Service Bus) 2504
q1: ESB(Enterprise Service Bus)
a1:
ESB(Enterprise Service Bus)란?
ESB는 Enterprise Service Bus의 약자로, 기업 내·외부의 다양한 시스템을 느슨하게(loose-coupled) 연계하고 메시지를 중앙에서 관리·중계해 주는 미들웨어 통합 플랫폼입니다.
⸻
1. 핵심 개념
• 버스(Bus) 모델: 컴퓨터 내부의 버스처럼, 여러 애플리케이션이 ESB라는 “버스”에 연결되어 통신
• 서비스 지향 아키텍처(SOA) 지원: 서비스 단위로 인터페이스를 정의하고, 재사용 가능한 서비스로 관리
• 미들웨어 역할: 시스템 간의 직접 연결(point-to-point)이 아닌 ESB를 통한 간접 연결로 복잡도를 줄임
⸻
2. 주요 기능
메시지 라우팅
- 콘텐츠 기반 라우팅, 조건문·룰(rule) 기반 메시지 전달
프로토콜 변환
- HTTP↔JMS, SOAP↔REST, FTP, JDBC 등 이기종 프로토콜 상호 변환 지원
데이터 변환(매핑)
- XML↔JSON, CSV↔XML, 커스텀 포맷 간 변환과 필드 매핑
서비스 오케스트레이션
- 복수 서비스 호출 순서·트랜잭션 관리, 워크플로우 정의
보안·인증·암호화
- SSL/TLS, OAuth, WS-Security, SAML 등 표준 보안 프로파일 적용
모니터링·관리
- 메시지 흐름 추적(트래싱), 성능·장애 모니터링, 재시도·DLQ(사망 큐) 지원
⸻
3. ESB 아키텍처 구성 요소
1. 메시지 버스
• 메시지 브로커 또는 경량 메시징 시스템(JMS, AMQP 등)을 기반으로 구현
2. 커넥터(어댑터)
• ERP, CRM, 레거시 DB, 파일 시스템 등 다양한 엔드포인트와 통신하기 위한 플러그인
3. 통합 레지스트리/레포지토리
• 서비스 메타데이터·WSDL·XSD·변환 맵 등 중앙 저장소
4. 오케스트레이션 엔진
• BPEL, BPMN 같은 워크플로우 언어로 프로세스를 정의·실행
5. 관리·모니터링 콘솔
• 실시간 모니터링, 장애·성능 알람, 메시지 재처리 기능 제공
⸻
4. 장점 vs. 단점
유연성
- 새로운 시스템 추가 시 포인트-투-포인트 연결 불필요, 커넥터만 추가
- 구축 초기 설계·설정 복잡도가 높음
확장성
- 수평적 확장 가능, 메시지 기반이므로 부하 분산·클러스터링 용이
- 고성능이 필요한 초저지연 애플리케이션엔 부적합할 수도 있음
관리성
- 중앙화된 모니터링·관리가 가능, 장애·트랜잭션 추적 용이
- 미들웨어 자체가 장애 시 전체 연계 흐름이 중단될 위험