기업내 어플리케이션 통합을 위한, EAI
- 정보처리기술사/소프트웨어공학
- 2020. 4. 6.
EAI(Enterprise Application Integration)의 개요
EAI의 개념
EAI(Enterprise Application Integration)은 약어의 의미 그대로 전사 어플리케이션 통합을 위한 솔루션이다. 처음부터 모든 어플리케이션을 연결하기 위해서 설계되어지고 만들어졌다면 EAI가 필요하지 않겠지만, 그렇지 않은 기업들은 산재되어 각자 만들어진 수많은 어플리케이션이 있을 것인데 이것을 통합하기 위해서 솔루션이 필요했으며, 그 솔루션의 명칭을 EAI라고 한다.
표준화되거나 솔루션 기반의 통합을 사용하지 않고 직접 모든 어플리케이션을 연결할 경우 이와같이 스파게티 현상이 발생한다
참고로 가트너 그룹에서는 EAI를 아래와 같이 정의한다.
- 엔터프라이즈 미들웨어를 인프라로 하여 다양한 이질적 기업적 환경(애플리케이션, 데이터, 플랫폼 및 네트워크 등)을 통합하여 하나의 시스템으로 관리 운영할 수 있는 유기적인 시스템
EAI의 필요성
고객의 기대수준 향상
직접 주문 및 주문 모니터링, 예측 정보 등의 요구
기업내부 업무 연동 필요
시스템간 & 플랫폼간 & 비즈니스간 상호연동 필요
유지보수 비용의 급증
Point-to-Point방식의 유지보수 곤란
EAI의 특징
이기종 통합
ESB와의 차이
EAI 이후 나온 개념으로 ESB(Enterprise Service bus)가 있으며 둘의 차이는 EAI가 허브&스포크 형태의 중앙 집중식 방식이 주라면, ESB는 동적인 업무 프로세스의 통합을 위해 방식을 취하는 것이다.
현재 시점에서 EAI와 ESB에 대한 구분은 EAI는 주로 허브&스포크 형태의 중앙 집중 방식이라면 ESB는 동적인 업무 프로세스를 통합하기 위한 버스 형태를 취하고 있다는 점이다. 즉 EAI는 시스템들 사이에 위치하며 각 시스템의 연계를 중심으로 한다면, ESB는 서비스를 중심으로 하나의 업무 프로세스를 진행하기 위해 하나 이상의 시스템을 거치는 운반자적인 역할이 더 중요하다는 것이다.
- Kdata 포스팅 일부 발췌 -
EAI의 구성도와 구성요소
구성도
- application간에 데이터는 adapter로 변환되며 최종적으로 브로커를 통하여 연결되는 구조
구성요소
Middleware Platform
- 유연성이 있고 대규모 사용자 환경까지 사용 가능한 확장성, 장애에 대한 대응력이 뛰어난 고가용성의 기능을 가지고 있는 메시지 전달을 책임지는 인프라의 제공
Application Adaptor
- 다양한 패키지 어플리케이션 및 기업에서 자체적으로 개발한 어플리케이션을 신속하고 재사용성이 높은 인터페이스 지원
Data Broker
- 애플리케이션 상호간에 데이터의 포맷 등의 차이에 대한 문제해결
Business Workflow
- 비즈니스 프로세스를 설계 운용 및 모니터 하는 기능
어플리케이션의 연계 유형
- 가장 기초적인 어플리케이션 통합 방식(1:1)
- 어플리케이션 사이에 미들웨어를 두어 처리하는 방식으로 일반적인 EAI 시스템
- 단일 접점인 허브시스템을 통해 중앙 집중식으로 데이터 처리
- 모든 데이터가 허브를 통하므로 데이터 전송 보장
Messaging Bus 방식
- 어플리케이션 사이에 버스를 두어 처리하는 방식으로 ESB 방식이라 불린다
- 뛰어난 확장성과 대용량처리를 제공하는 방식
Hybrid 방식
- 현재 대다수 ESB 솔루션들은 EAI와 ESB를 구별하지 않고 통합하여 사용
- 그룹 내에는 EAI 방식의 Hub & Spoke 방식으로 통합하고, 다른 그룹 간에는 ESB 방식의 Messaging Bus를 두어 연결하는 방식
- 현재 ESB 솔루션은 대다수가 Hybrid 방식을 채택하고 있음
참고자료
연관자료
비즈니스 프로세스 최적화 도구, BPM(Business Process Management)
RTE를 위한 업무성과에 대한 모니터링, 비즈니스 활동 모니터링(BAM, Business Activity Monitoring)
'정보처리기술사 > 소프트웨어공학' 카테고리의 다른 글
분할과 정복 방식의 구조적 방법론 (0) | 2020.04.21 |
---|---|
테스트 주도 개발 방법, TDD(Test-Driven Development) (0) | 2020.01.01 |
설치 테스트(Installation Test) (0) | 2020.01.01 |
고객이 확인하는, 인수 테스트(Acceptance Test) (1) | 2020.01.01 |
요구사항의 통합적인 테스트, 시스템 테스트(System Test) (0) | 2019.12.31 |