기업 통합 패턴(enterprise integration patterns) 강의
DESCRIPTION
기업 통합에 비동기 메시징을 이용해야 하는 이유와 기업 통합 패턴의 기본 패턴들을 소개한다.TRANSCRIPT
기업 통합 패턴
Enterprise
Integration Patterns
기업 분산 애플리케이션 통합을 위한 메시징 해결책
1Barunmo Co.,Ltd. © 2014
모든 길은 로마로 통한다.
2Barunmo Co.,Ltd. © 2014
로마의 도로
폼페이에 있는 로마의 거리.
출처) http://en.wikipedia.org/wiki/Roman_roads,http://ko.wikipedia.org/wiki/로마의_도로
A : 평평하게 다진 땅
B: 굵은 자갈 층
C: 잔자갈 콘크리트 층
D: 시멘트 층
E: 도로 블록 (거북 껍질 모양 바위, 배수 고려)
F: 인도
G: 경계석
3Barunmo Co.,Ltd. © 2014
하드리아누스 시대(재위 기원후 117~138년) 로마 제국의 도로망.
로마의 도로
출처) http://ko.wikipedia.org/wiki/로마의_도로
4Barunmo Co.,Ltd. © 2014
1차 대전 패전 직후 아우토반 고속도로 건설 시작
(세계 최초의 본격적인 고속도로 네트워크)
독일 아우토반
출처) http://ko.wikipedia.org/wiki/아우토반
5Barunmo Co.,Ltd. © 2014
1968년 2월 1일에 기공, 1970년 7월 7일 완공
대한민국 경부 고속도로
출처) http://ko.wikipedia.org/wiki/경부고속도로
6Barunmo Co.,Ltd. © 2014
이들은 모두 훌륭한
도로를 건설함으로 부강해졌다.
7Barunmo Co.,Ltd. © 2014
기업이 성공하려면?
8Barunmo Co.,Ltd. © 2014
기업도 훌륭한
통합(도로)을 건설해야 한다.
9Barunmo Co.,Ltd. © 2014
기업이 통합(도로)을 건설하는
최상의 해결책은?
10Barunmo Co.,Ltd. © 2014
비동기 메시징?
11Barunmo Co.,Ltd. © 2014
동기 호출, 비동기 호출의 의미
동기(synchronous) : 호출자가 실행 흐름 중지
비동기(asynchronous) : 호출자가 실행 흐름 계속
12Barunmo Co.,Ltd. © 2014
비동기 메시징 예 : 사람들의 대화
안녕하세요?
반갑습니다.
사람들의 뇌는 두 채널(입, 귀)로 대화한다.
다채널 비동기 메커니즘 대화(통신)
13Barunmo Co.,Ltd. © 2014
비동기 메시징 예 : 기업 업무
기업에서 부서들은 문서를 이용해
비동기 메시징 체계에 따라 업무(process)를 진행한다.
14Barunmo Co.,Ltd. © 2014
비동기 메시징 예 : 마라톤
마라톤 평원을 뛰어 승전보(메시지)를 전달한 병사를 기념하는 대회
승전보
전송 보장
15Barunmo Co.,Ltd. © 2014
편지봉투
우편 주소
편지우체통 발송 우편함
발신인 수신인
2~ 3일 뒤
비동기 메시징 예 : 우편 시스템
16Barunmo Co.,Ltd. © 2014
Internet
이메일
이메일 주소
본문
발신인 수신인SMTP SMTP/POP3
수 초 뒤 ~
비동기 메시징 예 : 이메일
17Barunmo Co.,Ltd. © 2014
사람들의 일상은
본질적으로 비동기 메시징 체계이다.
인류는 시작부터 비동기 메시징 체계를 이용해 왔다.
비동기 메시징 체계는 인간의 모든 행동 체계에 녹아 있다.
18Barunmo Co.,Ltd. © 2014
동기 메시징 체계는?
• 빠른 통신 메커니즘을 사용함으로 비동기가 동기처럼 인식되는 것이다.
• 동기 메시징 체계는 본질적으로 비동기 메시징 체계에 기반한다.
(컴퓨터 입력, 출력, 네트워크 통신, 디스크 IO, 멀티 프로세스 통신 등등)
19Barunmo Co.,Ltd. © 2014
그러므로 기업 통합(도로)에
비동기 메시징은 훌륭한 해결책이 될 수 있다.
업무 담당자(애플리케이션)들은 서류(메시지)의 접수, 작성, 기안, 보고(메시징) 등
을 통해 업무(프로세스)를 수행하고 타 부서(애플리케이션)와 협력(메시징)한다.
보존이 필요한 서류는 서류함(데이터베이스)에 보관한다.
20Barunmo Co.,Ltd. © 2014
업무를 워크플로우로 볼 것인가?
업무를 파이프와 필터로 볼 것인가?
기업 업무의 또 다른 관점
21Barunmo Co.,Ltd. © 2014
워크플로우 (총괄 집중식) 파이프 필터 (분업 자치식)
22Barunmo Co.,Ltd. © 2014
기업 통합
23Barunmo Co.,Ltd. © 2014
기업 통합의 역사
출처) 위키피디아 http://en.wikipedia.org/wiki/Enterprise_integration
Enterprise Integration Patterns
출간
24Barunmo Co.,Ltd. © 2014
기업 통합의 방향
1) 분산 환경을 지원해야 한다.
2) 서비스와 데이터를 통합해야 한다.
3) 애플리케이션들 사이 결합도를 줄여야 한다.
4) 애플리케이션들 사이 영향도를 줄여야 한다.
5) 하드웨어, 소프트웨어, 벤더의 의존성을 줄여야 한다.
6) 데이터의 적시성을 보장해야 한다.
7) 신뢰성을 보장해야 한다.
25Barunmo Co.,Ltd. © 2014
기업 통합의 유형
1) 정보 포털 (웹 사이트, …)
2) 데이터 복제 (File Copy, FTP, ETL, …)
3) 공유 비즈니스 기능 (J2EE, .NET, …)
4) 서비스 지향 아키텍처 (SOA, …)
5) 분산 비즈니스 프로세스 (N-티어 애플리케이션, MQ, …)
6) B2B 통합 (EDI, XML, 웹 서비스, …)
26Barunmo Co.,Ltd. © 2014
이상적 기업 통합
1) 단일 시스템
2) 표준 데이터
3) 표준 서비스
4) 표준 저장소
5) 표준 방법론
성공했던 사례도
성공을 위한 기술도 없었다!!!
그러나 현실은…
27Barunmo Co.,Ltd. © 2014
왜 성공하지 못했는가?
28Barunmo Co.,Ltd. © 2014
기업 애플리케이션 환경
29Barunmo Co.,Ltd. © 2014
기업 애플리케이션 환경 문제
1) 애플리케이션들은 서로 다르다.
(복잡한, 비즈니스, OS, 플랫폼, 미들웨어, 언어, 패키지, 서비스, 데이터…)
2) 변경은 피할 수 없다.
(비즈니스 변경, 개발, 유지보수, 제휴/인수/합병…)
3) 네트워크는 신뢰할 수 없다.
(기업 서비스 장애 확률은 서비스 참여 시스템들의 수에 따라 증가)
4) 네트워크 속도는 느리다.
(근접 호출보다 몇 십 배, 몇 백배 느린 원격 호출)
30Barunmo Co.,Ltd. © 2014
기업 통합 추진 문제
1) 통합에 따른 기업 정치의 변화
2) 통합의 규모
3) 한정된 권한과 역할
4) 표준의 부제
5) 패키지 솔루션 통합의 어려움
6) 개발 및 유지보수
통합이 쉽다고 주장하는 사람은 천재이거나 바보이거나 이익이 생기는 사람이다.
기업 통합 패턴(Enterprise Integration Patterns) 에이콘 출판 2014
31Barunmo Co.,Ltd. © 2014
기업 통합 수행 문제
1) 핵심 원리 부재
2) 부정확한 의사소통
3) 반복되는 시행착오
4) 최상의 방법론 부재
5) 중재 실패
32Barunmo Co.,Ltd. © 2014
전통적인 기업 통합 해결책
1) 파일 전송(File Copy, rcopy, FTP, …)
2) 공유 데이터베이스(RDBMS, NoSQL, …)
3) 원격 프로시저 호출(CORBA, J2EE, .NET, Web Service …)
4) 메시징 (Messaging) : Message Queue, 전문 통신, …
5) 솔루션 : EAI, ESB, SOA, …
사안별 기능적 접근
33Barunmo Co.,Ltd. © 2014
전통적인 기업 통합 해결책들의 문제점
1) 파일 전송 적시성
2) 공유 데이터 베이스 결합도, 영향도
3) 원격 프로시저 호출 성능, 신뢰성
4) 메시징 동기화
5) EAI 솔루션 고가, 레거시 애플리케이션 통합
사안별 기능적 접근
34Barunmo Co.,Ltd. © 2014
최상의 해결책은?
해결책을 찾기에 앞서…
35Barunmo Co.,Ltd. © 2014
사람들의 일상은
본질적으로 비동기 메시징 체계이다.
인류는 시작부터 비동기 메시징 체계를 이용해 왔다.
비동기 메시징 체계는 인간의 모든 행동 체계에 녹아 있다.
인식론적 고찰 (앞서 본)
36Barunmo Co.,Ltd. © 2014
기업 애플리케이션들도
인간의 행동 양식을 닮아야 한다.
인식론적 고찰
37Barunmo Co.,Ltd. © 2014
애플리케이션 통합에 대한 인식 전환
기능
(서비스, 데이터)
중심
소통
(메시지)
중심인식 전환
제대로 된 도로(통합)가 없다면 물자(서비스, 데이터)의 유통은 힘들어 진다.
38Barunmo Co.,Ltd. © 2014
기업 인프라
MOASOA
• SOA : Service Oriented Architecture
• MOA : Message Oriented Architecture
통합에 대한 인식 전환
기능 중심 + 소통 중심
39Barunmo Co.,Ltd. © 2014
기업 통합 패턴
40Barunmo Co.,Ltd. © 2014
기업 통합 패턴(Enterprise Integration Patterns)
기업 통합 패턴은 기업의 분산된 애플리케이션들을
통합하기 위한 해결책을 패턴 언어로 설명한다.
Gregor Hohpe, Bobby Woolf
Addison Wesley (2003).
차정호 옮김
에이콘 출판 (2014).
41Barunmo Co.,Ltd. © 2014
기업 통합 패턴
느슨한 결합 (Loose Coupling) 아키텍처
메시징 시스템 (Messaging System)의 재해석
비동기 메시징 패턴
패턴 언어 (패턴 + 패턴 관계망)
패턴 아이콘 (Pattern Icon) 도입
기업 통합 패턴 다이어그램 (EIP Diagram) 사용
42Barunmo Co.,Ltd. © 2014
느슨한 결합
느슨한 결합이란 두 당사자(컴포넌트, 애플리케이션, 서비스,
프로그램, 사용자)가 정보를 교환할 때
서로에 대한 가정을 최소화하는 원리를 말한다.
43Barunmo Co.,Ltd. © 2014
메시징이란?
메시징은 프로그램 간에 빠르고 신뢰할 수 있는 통신을 비
동기 방식으로 가능하게 하는 전송 기술이다.
메시지와 구별된다.
44Barunmo Co.,Ltd. © 2014
메시징 시스템(Messaging System) 또는 메시지 지향 미들웨어(Message-
Oriented Middleware : MOM)는 데이터베이스 시스템이 데이터를
영속적으로 관리하는 것처럼 메시지 전송을 보장하는 시스템이다.
데이터베이스
스키마
메시지
채널
메시지 서버 데이터베이스 서버전송 보장 저장 보장
메시징 시스템이란?
45Barunmo Co.,Ltd. © 2014
메시징의 장점
1) 원격 통신 메시징 계층에서 직렬화 처리
2) 플랫폼/언어 중립 범용 변환기, 메시지 버스
3) 비동기 통신 수신 여부에 무관한 발신 가능(보내고 잊기)
4) 시간 조절 발신자, 수신자 각각 독립적인 처리 시간 관리
5) 흐름 조절 수신자가 요청 처리 속도 조절
6) 신뢰 통신 메시지 전송 보장
7) 비접속 작업 네트워크 접속 시 동기화
8) 중재 고가용성, 부하 분산, 우회 연결, 이중화 제공
9) 스레드 관리 적은 수의 스레드 자원 사용
46Barunmo Co.,Ltd. © 2014
메시징의 단점
1) 복잡한 프로그래밍 모델 이벤트 기반 프로그램
2) 순서 문제 메시지 순서가 뒤바뀌는 경우 발생
3) 동기 시나리오 동기 서비스(예: 탑승권 예매)를 포함한 시나리오 고려
4) 성능 통신 부하 증가, 큰 데이터 전송 부담
5) 플랫폼 지원 메시징을 지원하지 않는 시스템 연결(REST, FTP 등)
6) 벤더 의존성 복수 통합 솔루션들 사이의 통합 (통합의 통합)
47Barunmo Co.,Ltd. © 2014
기업 통합 패턴 개요
ApplicationA
Endpoint
Message
ChannelRouter Translator
Monitoring
ApplicationB
Message Endpoint
Message Consutruction
Messaging Channels
Message Routing
Message Transformation
System Management⑥
⑤
④①
③
②
48Barunmo Co.,Ltd. © 2014
기업 통합 패턴 아이콘
Message Endpoint
?
Message Endpoint
Message DispatcherMessage Gateway
Competing Consumer
Selective Consumer
Polling Comsumer Durable Subscriber
Transactional Client
Service ActivatorEvent Driver Consumer
Message Consutruction
Request Reply
Message Sequence
Correlation ID
Return Address
A B
1 2 3
Command Message
Message
C
D
Event Message
Document Message
E Message Transformation
Message EnricherEnvelope WrapperMessage Translator
Claim CheckNornamlizerContent Filter
Messaging Channels
Channel
Messaging BridgeChannel AdapterGuaranteed Delivery
Message BusPublish-Subscribe
Channel
!
Datatype ChannelDead Letter ChannelInvalid Message
Message Routing
Recipient List
Message FilterProcess ManagerComposed Msg.
ProcesserContent Based RouterMessage Router
Rounding SlipSplitterResquencerAggregator
System Management
Wire Tap
Test MessageChannel PurgerControl Bus
DetourMessage Store
49Barunmo Co.,Ltd. © 2014
기업 통합 패턴의 기본 패턴들
50Barunmo Co.,Ltd. © 2014
메시징 시스템
애플리케이션 A
메시지
메시지 채널
메시지 라우터
메시지변환기
애플리케이션 B
메시지엔드포인트
1) 메시지 채널
2) 메시지
3) 파이프 필터
4) 메시지 라우터
5) 메시지 변환기
6) 메시지 엔드포인트
51Barunmo Co.,Ltd. © 2014
애플리케이션들은 메시징을 사용해 어떻게 통신하는가?
메시지 채널(Message Channel)
메시지 채널을 사용해 애플리케이션들을 연결한다. 애플리케이션이 정보를 채널
에 기록하면 다른 애플리케이션은 채널에서 정보를 읽는다.
52Barunmo Co.,Ltd. © 2014
메시지(Message)
정보를 메시지(Message)로 포장한다. 메시지는 메시징 시스템이 메시지 채널을
거쳐 전송하는 데이터 레코드다.
메시지 채널로 연결된 두 애플리케이션은 어떻게 정보를 교환할까?
53Barunmo Co.,Ltd. © 2014
독립성과 유연성을 유지하면서 메시지에 대한 복잡한 처리도 수행할
수 있으려면 어떻게 해야 할까?
파이프 필터(Pipes and Filters)
많은 처리 단계들을 포함하는 프로세스는 파이프 필터(Pipes and Filters) 아키텍
처스타일을 사용한다. 이 아키텍처 스타일은 프로세스를 연속되는 소규모 독립
처리 단계(필터)들로 나누고 각 처리 단계를 채널(파이프)로 연결한다.
54Barunmo Co.,Ltd. © 2014
개별 처리 단계들의 결합을 제거해 메시지를 조건에 따라 서로 다른
필터로 전달할 수 있게 하려면 어떻게 해야 할까?
메시지 라우터(Message Router)
특별한 필터인 메시지 라우터(Message Router)를 추가한다. 메시지 라우터는 메
시지 채널에서 메시지를 소비하고 조건에 따라 메시지를 그 밖의 메시지 채널로
다시 게시한다.
55Barunmo Co.,Ltd. © 2014
메시지 변환기(Message Translator)
필터나 애플리케이션들 사이에 특별한 필터인 메시지 변환기(Message
Translator)를 사용해 데이터 포맷을 변환한다.
서로 다른 데이터 포맷을 사용하는 시스템들이 메시징을 사용해 통신
하려면 어떻게 해야 할까?
56Barunmo Co.,Ltd. © 2014
애플리케이션을 메시징 시스템에 접속시키려면 어떻게 해야 할까?
메시지 엔드포인트(Message Endpoint)
메시지 엔드포인트(Message Endpoint)를 사용해 애플리케이션과 메시징 채널을
연결한다. 메시지 엔드포인트는 애플리케이션이 메시지를 발신하고 수신하는 데
사용하는 메시징 시스템의 클라이언트다.
57Barunmo Co.,Ltd. © 2014
기업 통합 패턴 다이어그램
애플리케이션 A
메시지
메시지 채널
메시지 라우터
메시지변환기
애플리케이션 B
메시지엔드포인트
메시지변환기
애플리케이션 C
전체 메시지 흐름
58Barunmo Co.,Ltd. © 2014
기본 패턴의 확장
ApplicationA
Endpoint
Message
ChannelRouter Translator
Monitoring
ApplicationB
Message Endpoint
Message Consutruction
Messaging Channels
Message Routing
Message Transformation
System Management⑥
⑤
④①
③
②
59Barunmo Co.,Ltd. © 2014
기업 통합 패턴 다이어그램 실무 예
SYSTEM
WMQSYSTEM
JMS SYSTEM
TCP SYSTEM
SPLUNK
TCP
JMS
WMQ
Container
◈ 시스템 구성도
60Barunmo Co.,Ltd. © 2014
N-티어 솔루션과 통합 패턴 솔루션의 차이
1) N-계층 분산 애플리케이션들은 독립 실행 불가능(단단한 결합)
2) 동기 메시징 체계 (시간에 민감)
N-티어 분산 애플리케이션
통합 분산 애플리케이션
1) 통합 분산 애플리케이션들은 독립 실행 가능 (느슨한 결합)
2) 비동기 메시징 체계(시간에 관대)
61Barunmo Co.,Ltd. © 2014
느슨한결합적용
기업통합패턴과통합프레임워크활용
애플리케이션중립적인메시징인프라도입
레거시애플리케이션과조화
점진적통합 (수용과개선)
기업 애플리케이션 통합 패턴 전략
62Barunmo Co.,Ltd. © 2014
▶ Apache Camel : 통합 프레임워크
▶ Apache ActiveMQ : 메시지 지향 미들웨어
▶ Apache ServiceMix : ESB 플랫폼 + 기업 통합 패턴 지원
▶ Red Hat JBoss Fuse : 오픈 소스 기반 애플리케이션 통합 제품
▶ Spring Integration : 통합 프레임워크
▶ Spring XD : 기업 통합 패턴에 기반한 데이터 통합 프레임워크
▶ Mule ESB : ESB 플랫폼 + 기업 통합 패턴 지원
▶ Talend ESB : ESB 플랫폼 + 기업 통합 패턴 지원
▶ IBM WebSphere : IBM 통합 제품
▶ Azure Service Bus : 마이크로소프트 애저 서비스 버스
기업 통합 패턴의 도구들