2018. 8. 5. 17:27ㆍIT/SW
Spring Integration
Sping Integration이란
자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크인 Spring과 EAI(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 Camel과 Spring Integration은 둘다 EIP를 기반으로 한 통합 프레임워크이다.
Camel에 대한 이전 포스팅
DSL, 테스트 지원, 다양한 커뮤니티 등 Apache camel이 Spring Integration보다 사용자 입장에서 쉽게 사용할 수 있지만
Spring Project에 기반을 둔다는 점에서 Spring Integration이 더 많이 사용되고 있다.
Spring Integration의 컨셉
Message전송할 데이터가 담긴 Wrapper Class로 comsumer가 메시지 요청 시 provider는 instance화 된 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 |