Spring Integration 정리

2018. 8. 5. 17:27IT/SW

Spring Integration



Sping Integration이란

자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크인 SpringEAI(Enterprise Application Integration)을 이용한

애플리케이션 내부-외부 사이의 메시징을 가능하게 하는 프레임워크이다.


EAI(Enterprise Application Integration)

개발자들은 시스템 통합에 대해 프로그램 간에 빠르고 신뢰할 수 있는 Messaging을 통해 해결해 왔으며

이를 패턴화한 것이 EAI, 기업 통합 패턴이라 한다.


EAI 패턴을 구현한 프레임워크가 Spring Integration이며 같은 프레임워크인 Aapache Camel이 있다.

스프링 기반의 어플리케이션 내에 가벼운 메시징 기반의 서비스를 제공하며

어댑터를 사용해 외부 시스템과의 통합을 쉽게 할 수 있도록 한다.


스프링 프레인뭐크의 기본 기능에 Messages, Channel, End Point라는 3가지 핵심 컴포넌트가 있다.

 


특징으로는

메세지 기반의 Architectures, 메시지 routing transformation을 지원한다.

Spring 기반의 Application내에서의 메세지 기반의 비동적 행위 구현을 수월하게 하며 기존 Spring 사용자들을 위해 직관적이다.

Component들은 모듈성과 테스트 용이성을 위해 약한 의존성을 가져야 한다.

비즈니스 로직과 통합 로직 간 관심사의 분리를 강제해야 하며 호가장이 필요한 곳은 되도록 추상화를 해야한다.

이때 이식성과 재사용성에 초점을 맞추어 설계하여야 한다.



Camel과 Spring Integration

 

Apache Camel

Spring Integration

When to use

Largest community

JAVA DSLs

Spring Project

JVM, JMS

DSL

DSL 표 제공

Context로 구현해야함

Integration test

다양한 테스트 경로 지원

테스트 프레임워크가 Spring test의 일부로 구축되어 있음

Spring 자체 테스트 프레임 워크 지원



Apache CamelSpring Integration은 둘다 EIP를 기반으로 한 통합 프레임워크이다.


Camel에 대한 이전 포스팅

2018/08/05 - [IT/SW] - Apache Camel 정리

DSL, 테스트 지원, 다양한 커뮤니티 등 Apache camelSpring Integration보다 사용자 입장에서 쉽게 사용할 수 있지만

Spring Project에 기반을 둔다는 점에서 Spring Integration이 더 많이 사용되고 있다. 


 

 



Spring Integration의 컨셉

 


Message전송할 데이터가 담긴 Wrapper Classcomsumer가 메시지 요청 시 providerinstance화 된 Message를 생성한다.

Header : 메시지의 메타데이터ex) id, expriedDate

Payload : 전송하고자 하는 실제 데이터ex) Serialized Date

Pipe (Message Channel)어댑터 개념으로 비즈니스 로직과 엔드포인트 사이에서 송수신을 하기위한 창구

Point to Point Channel : 1:1 전송용도의 Channel

Publish/Subscribe Channe : 1:N 전송용도의 Channel

Filter (Message Endpoint)Message 오브젝트를 발신/수신하는 목적지




'IT > SW' 카테고리의 다른 글

타이젠 스튜디오 설치  (0) 2020.12.20
버그란 무엇인가 - 버그에 대한 고찰  (0) 2019.03.01
JVM 크래시 - java core dump의 원인 및 해결방법  (0) 2018.08.12
Apache Camel 정리  (0) 2018.08.05