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

More Related Content

What's hot

Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Cisco DevNet
 
Xamarin で良くやっていたあれを MAUI でする話
Xamarin で良くやっていたあれを MAUI でする話Xamarin で良くやっていたあれを MAUI でする話
Xamarin で良くやっていたあれを MAUI でする話m ishizaki
 
Python 3のWebシステムでDDDに入門してみた
Python 3のWebシステムでDDDに入門してみたPython 3のWebシステムでDDDに入門してみた
Python 3のWebシステムでDDDに入門してみたHiromu Yakura
 
スマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTCスマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTCNatsuki Yamanaka
 
Drone programming with ArduPilot
Drone programming  with ArduPilotDrone programming  with ArduPilot
Drone programming with ArduPilotLINE Corporation
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기Ian Choi
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsMarcel Birkner
 
iOS Modular Architecture with Tuist
iOS Modular Architecture with TuistiOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist정민 안
 
우아한 모노리스
우아한 모노리스우아한 모노리스
우아한 모노리스Arawn Park
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎ken_kitahara
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBAkihiro Kuwano
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について健一 辰濱
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムyuichiro nakazawa
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったchibochibo
 
業務で使うIRC
業務で使うIRC業務で使うIRC
業務で使うIRConozaty
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用Masaru Kurahayashi
 
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅Yoonsung Jung
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめTomomitsuKusaba
 
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기정민 안
 

What's hot (20)

Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
 
Xamarin で良くやっていたあれを MAUI でする話
Xamarin で良くやっていたあれを MAUI でする話Xamarin で良くやっていたあれを MAUI でする話
Xamarin で良くやっていたあれを MAUI でする話
 
Python 3のWebシステムでDDDに入門してみた
Python 3のWebシステムでDDDに入門してみたPython 3のWebシステムでDDDに入門してみた
Python 3のWebシステムでDDDに入門してみた
 
スマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTCスマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTC
 
Drone programming with ArduPilot
Drone programming  with ArduPilotDrone programming  with ArduPilot
Drone programming with ArduPilot
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
 
iOS Modular Architecture with Tuist
iOS Modular Architecture with TuistiOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist
 
우아한 모노리스
우아한 모노리스우아한 모노리스
우아한 모노리스
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になった
 
業務で使うIRC
業務で使うIRC業務で使うIRC
業務で使うIRC
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
 
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめ
 
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
 

Viewers also liked

CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?Kai Wähner
 
Asynchronous architecture (Node.js & Vert.x)
Asynchronous architecture (Node.js & Vert.x)Asynchronous architecture (Node.js & Vert.x)
Asynchronous architecture (Node.js & Vert.x)Yu Kwangjong
 
서버를 위한 동시성 모델과 Staged eventdrivenarchitecture
서버를 위한 동시성 모델과 Staged eventdrivenarchitecture서버를 위한 동시성 모델과 Staged eventdrivenarchitecture
서버를 위한 동시성 모델과 Staged eventdrivenarchitectureHyeonSeok Choi
 
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처영기 김
 

Viewers also liked (6)

CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
 
Camel vs Spring EIP JAVA DSL
Camel vs Spring EIP JAVA DSLCamel vs Spring EIP JAVA DSL
Camel vs Spring EIP JAVA DSL
 
Asynchronous architecture (Node.js & Vert.x)
Asynchronous architecture (Node.js & Vert.x)Asynchronous architecture (Node.js & Vert.x)
Asynchronous architecture (Node.js & Vert.x)
 
서버를 위한 동시성 모델과 Staged eventdrivenarchitecture
서버를 위한 동시성 모델과 Staged eventdrivenarchitecture서버를 위한 동시성 모델과 Staged eventdrivenarchitecture
서버를 위한 동시성 모델과 Staged eventdrivenarchitecture
 
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처
 

Similar to 기업 통합 패턴(Enterprise Integration Patterns) 강의

2_Design_마이크로서비스디자인_JungInLee.pdf
2_Design_마이크로서비스디자인_JungInLee.pdf2_Design_마이크로서비스디자인_JungInLee.pdf
2_Design_마이크로서비스디자인_JungInLee.pdfHanWoongLee2
 
UI/UX Technology Trends on the Next Generation Web
UI/UX Technology Trends on the Next Generation WebUI/UX Technology Trends on the Next Generation Web
UI/UX Technology Trends on the Next Generation WebJonathan Jeon
 
모바일 오피스를 검토하는 기업의 모바일 플랫폼 선정 기준
모바일 오피스를 검토하는 기업의 모바일 플랫폼 선정 기준 모바일 오피스를 검토하는 기업의 모바일 플랫폼 선정 기준
모바일 오피스를 검토하는 기업의 모바일 플랫폼 선정 기준 Bo Seong Seo
 
(주)엑슨투 회사소개서 2018년 01월
(주)엑슨투 회사소개서 2018년 01월(주)엑슨투 회사소개서 2018년 01월
(주)엑슨투 회사소개서 2018년 01월Sang Jin LEE
 
mobile business's successful paradigm
mobile business's successful paradigmmobile business's successful paradigm
mobile business's successful paradigm유승 차
 
Epicor erp 특장점 소개서 -프로젝트 엔지니어링 제조 기반 eto 설비산업 특화 솔루션
Epicor erp 특장점 소개서 -프로젝트 엔지니어링 제조 기반 eto 설비산업 특화 솔루션Epicor erp 특장점 소개서 -프로젝트 엔지니어링 제조 기반 eto 설비산업 특화 솔루션
Epicor erp 특장점 소개서 -프로젝트 엔지니어링 제조 기반 eto 설비산업 특화 솔루션종수 (Steve Kim) 김
 
플랫폼이란무엇인가
플랫폼이란무엇인가플랫폼이란무엇인가
플랫폼이란무엇인가Lim Bok Lee
 
가상기업을 SNS (SaaS)와 클라우드 (PaaS)로 구축하기
가상기업을 SNS (SaaS)와 클라우드 (PaaS)로 구축하기가상기업을 SNS (SaaS)와 클라우드 (PaaS)로 구축하기
가상기업을 SNS (SaaS)와 클라우드 (PaaS)로 구축하기uEngine Solutions
 
성공하는모바일비즈니스의5가지패러다임 082237 이학희
성공하는모바일비즈니스의5가지패러다임 082237 이학희성공하는모바일비즈니스의5가지패러다임 082237 이학희
성공하는모바일비즈니스의5가지패러다임 082237 이학희claird00
 
[비욘드시스템즈] 회사소개서 Ir 20100915
[비욘드시스템즈] 회사소개서 Ir 20100915[비욘드시스템즈] 회사소개서 Ir 20100915
[비욘드시스템즈] 회사소개서 Ir 20100915Mobileteam Mk
 
FMC 표준 연구와 표준 SDK
FMC 표준 연구와 표준 SDKFMC 표준 연구와 표준 SDK
FMC 표준 연구와 표준 SDKxenersystems
 
미래형 콘텐츠 서비스를 위한 플랫폼 경쟁력 확보 방안 (초안)
미래형 콘텐츠 서비스를 위한 플랫폼 경쟁력 확보 방안 (초안)미래형 콘텐츠 서비스를 위한 플랫폼 경쟁력 확보 방안 (초안)
미래형 콘텐츠 서비스를 위한 플랫폼 경쟁력 확보 방안 (초안)Jonathan Jeon
 
Basic study 4회차
Basic study 4회차Basic study 4회차
Basic study 4회차Seonmun Choi
 
W3C 국제표준화 대응 전략
W3C 국제표준화 대응 전략W3C 국제표준화 대응 전략
W3C 국제표준화 대응 전략Jonathan Jeon
 
Xener krp 100601_1
Xener krp 100601_1Xener krp 100601_1
Xener krp 100601_1xenersystems
 
진화된 Soa esb에 의한 애플리케이션 통합 (2)
진화된 Soa   esb에 의한 애플리케이션 통합 (2)진화된 Soa   esb에 의한 애플리케이션 통합 (2)
진화된 Soa esb에 의한 애플리케이션 통합 (2)Fusion Reactor LLC
 

Similar to 기업 통합 패턴(Enterprise Integration Patterns) 강의 (20)

FMC 활용 현황
FMC 활용 현황FMC 활용 현황
FMC 활용 현황
 
2_Design_마이크로서비스디자인_JungInLee.pdf
2_Design_마이크로서비스디자인_JungInLee.pdf2_Design_마이크로서비스디자인_JungInLee.pdf
2_Design_마이크로서비스디자인_JungInLee.pdf
 
UI/UX Technology Trends on the Next Generation Web
UI/UX Technology Trends on the Next Generation WebUI/UX Technology Trends on the Next Generation Web
UI/UX Technology Trends on the Next Generation Web
 
Mobile Application Development Platform "Morpheus"
Mobile Application Development Platform "Morpheus"Mobile Application Development Platform "Morpheus"
Mobile Application Development Platform "Morpheus"
 
모바일 오피스를 검토하는 기업의 모바일 플랫폼 선정 기준
모바일 오피스를 검토하는 기업의 모바일 플랫폼 선정 기준 모바일 오피스를 검토하는 기업의 모바일 플랫폼 선정 기준
모바일 오피스를 검토하는 기업의 모바일 플랫폼 선정 기준
 
(주)엑슨투 회사소개서 2018년 01월
(주)엑슨투 회사소개서 2018년 01월(주)엑슨투 회사소개서 2018년 01월
(주)엑슨투 회사소개서 2018년 01월
 
mobile business's successful paradigm
mobile business's successful paradigmmobile business's successful paradigm
mobile business's successful paradigm
 
Epicor erp 특장점 소개서 -프로젝트 엔지니어링 제조 기반 eto 설비산업 특화 솔루션
Epicor erp 특장점 소개서 -프로젝트 엔지니어링 제조 기반 eto 설비산업 특화 솔루션Epicor erp 특장점 소개서 -프로젝트 엔지니어링 제조 기반 eto 설비산업 특화 솔루션
Epicor erp 특장점 소개서 -프로젝트 엔지니어링 제조 기반 eto 설비산업 특화 솔루션
 
플랫폼이란무엇인가
플랫폼이란무엇인가플랫폼이란무엇인가
플랫폼이란무엇인가
 
가상기업을 SNS (SaaS)와 클라우드 (PaaS)로 구축하기
가상기업을 SNS (SaaS)와 클라우드 (PaaS)로 구축하기가상기업을 SNS (SaaS)와 클라우드 (PaaS)로 구축하기
가상기업을 SNS (SaaS)와 클라우드 (PaaS)로 구축하기
 
성공하는모바일비즈니스의5가지패러다임 082237 이학희
성공하는모바일비즈니스의5가지패러다임 082237 이학희성공하는모바일비즈니스의5가지패러다임 082237 이학희
성공하는모바일비즈니스의5가지패러다임 082237 이학희
 
[비욘드시스템즈] 회사소개서 Ir 20100915
[비욘드시스템즈] 회사소개서 Ir 20100915[비욘드시스템즈] 회사소개서 Ir 20100915
[비욘드시스템즈] 회사소개서 Ir 20100915
 
FMC 표준 연구와 표준 SDK
FMC 표준 연구와 표준 SDKFMC 표준 연구와 표준 SDK
FMC 표준 연구와 표준 SDK
 
미래형 콘텐츠 서비스를 위한 플랫폼 경쟁력 확보 방안 (초안)
미래형 콘텐츠 서비스를 위한 플랫폼 경쟁력 확보 방안 (초안)미래형 콘텐츠 서비스를 위한 플랫폼 경쟁력 확보 방안 (초안)
미래형 콘텐츠 서비스를 위한 플랫폼 경쟁력 확보 방안 (초안)
 
개방형 사물인터넷 플랫폼 기술
개방형 사물인터넷 플랫폼 기술개방형 사물인터넷 플랫폼 기술
개방형 사물인터넷 플랫폼 기술
 
Basic study 4회차
Basic study 4회차Basic study 4회차
Basic study 4회차
 
W3C 국제표준화 대응 전략
W3C 국제표준화 대응 전략W3C 국제표준화 대응 전략
W3C 국제표준화 대응 전략
 
Xener krp 100601_1
Xener krp 100601_1Xener krp 100601_1
Xener krp 100601_1
 
진화된 Soa esb에 의한 애플리케이션 통합 (2)
진화된 Soa   esb에 의한 애플리케이션 통합 (2)진화된 Soa   esb에 의한 애플리케이션 통합 (2)
진화된 Soa esb에 의한 애플리케이션 통합 (2)
 
다우오피스 클라우드 서비스 소개
다우오피스 클라우드 서비스 소개다우오피스 클라우드 서비스 소개
다우오피스 클라우드 서비스 소개
 

기업 통합 패턴(Enterprise Integration Patterns) 강의

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