Apache Camel 정리

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

Apache Camel 정리



Apache camel이란

Concise Application Message Exchange Laguage직역하면 간결한 어플리케이션 메시지 교환 언어라는 뜻으로

일반 어플리케이션에 내장 가능한 경량 프레임워크(JVM/java 환경의 오픈 소스 프레임워크)이다.


Camel이라는 이름은 프로젝트 멤버들이 Camel 담배를 즐겨 피우기 때문이다.

Camel은 처리하고자 하는 데이터 타입에 어떤 가정도 하지 않으며 높은 레벨의 추상화를 제공한다.

, 시스템에서 사용하는 데이터 타입이나 프로토콜에 상관없이 동일한 API를 사용해 상호 작용할 수 있다.

 


특징으로는

통합 프레임워크로 일반적인 어플리케이션에 내장 가능한 경량 프레임워크이다.

프레임워크 내부에 라우터 엔진, 프로세서, 컴포넌트, 메시징 시스템을 포함, 어플리케이션 내부 - 외부 간의 인터페이스 역할을 한다.


[ ex) Auto java to C++ by using Camel ]


다른 솔루션을 연동하기 위한 어댑터가 있다.

Camel에서는 Component라 하며 DB, FTP, HTTP 등 일반적인 APP개발에 사용되는 v2.13.0기준 150여 가지의 Component를 제공한다.

오픈 소스인 만큼 기업에서 많이 사용되는 솔루션의 Component는 부족하다.

CamelEAI(기업 응용프로그램 통합 솔루션) 같은 솔루션이 아닌 이를 개발하기 위한 Framework이다.


EAICamel의 차이점

 

기존 EAI

Camel

컨테이너 유무

 메시지 연동 기능을 위한 컨테이너 필요  라이브러리이므로 컨테이너 불필요

인터페이스

개발 유무

 DB, FTP, mail 등의 서비스를 위해 별로의 인터페이스 연동 및 호출 필요  Jar import150여 가지의 Component 사용 가능


어플리케이션 개발자는 내부-외부 간 인터페이스 기술을 모두 알아야하는 번거로움이 있고 많은 어려움을 호소한다.

실제 인터페이스가 연결되지 않아 비즈니스 로직의 개발이 지연되는 경우가 상당히 많다.


Camel을 사용하는 경우 인터페이스 역할을 Camel이 맞게 되므로

비즈니스 어플리케이션 개발자는 Camel 개발자와, Camel 개발자는 인터페이스를 하려는 외부 시스템 개발자와 소통하게 되며

어플리케이션 개발자의 개발 부담과 비용, 시간이 현저하게 줄어들게 된다.


[ 좌측 기존 방식과 우측 Camel 방식 ]


Camel은 서로 다른 기술, 다른 프로토콜을 쓰는 어플리케이션들을 통합 할 때 쓰는 것이 좋으며

하나 혹은 두 가지 또는 너무 많은 어플리케이션을 통합 할 때는 사용하지 않는 것이 좋다.

EBS : Enterprise Bus Service, 서비스들을 컴포넌트화된 논리적 집합으로 묶는 핵심 솔루션으로 다양한 부가적 자원(디자인, 실행, 모니터링, 집계 등)을 제공.


[ 어플리케이션 통합 시 사용해야할 적합한 툴 ]




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

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