Apache Camel – 기업 시스템 통합을 위한 오픈소스 Integration 프레임워크
Apache Camel은 기업 시스템 통합을 위한 강력한 오픈소스 Integration 프레임워크입니다.
Apche Camel 오픈소스 프로젝트를 소개 합니다.
최근 IT 프로젝트는 오픈 소스 프레임워크와 제품들을 이용하여 구축하는 것이 일반화되어 가고 있습니다. 아래에서 나열된 제품들은 최근 몇년 동안 많이 사용하는 오픈소스 제품이나 클라우드 기반 서비스들입니다.
- NoSQL : MongoDB, CouchDB, Hbase, Infinispan
- Messaging : ActiveMQ, ZeroMQ, JMS, RabbitMQ , AMQP
- SNS : Twitter, Facebook
- Framework : Spring, Vert.X, iBatis/MyBatis
- Networking : MINA 1/2, Netty, MQTT, SIP
- Cloud : Aamzon, Google
만약 대용량 데이터를 실시간으로 처리하면서 분석하고, 고속으로 다양한 시스템과 프로토콜로 메시지를 전달해야 하는 시스템을 개발해야 된다면 어떻게 해야 될까요?
또한 오픈소스 발전으로 인하여 더욱 많아진 제품과 기술들을 통합해야 한다면, 각각의 프로토콜과 API들을 이해해야 하기 때문에 많은 학습과 노력이 필요할 수 밖에 없습니다. 또한 IT 프로젝트의 수행기간은 짧아 졌으며, 아키텍처는 더욱 유연하고 견고해야하며 효율성을 보장할 수 있어야 합니다.
오늘날의 이러한 기업 시스템 통합문제를 예전처럼 특정 벤더 또는 특정 제품으로 해결하려는 것은 해답이 아닐것입니다.
이에 대한 해답으로 EIP (Enterprise Integration Pattern) 을 기반으로한 오픈소스 통합 (Integration) 프레임워크인 Apache Camel을 소개하려고 합니다.
EIPs(Enterprise Integration Pattern)이란?
Gregor Hohpe와 Bobby Woolf는 시스템 통합의 문제는 다양하고 많으며, 그 해결 방법이 매우 유사하다는 것을 깨닫게 됩니다. 그들은 “Enterprise Integration Pattern” 이라는 책에서 그것들을 정리하였고, 이 책은 통합(Integration) 분야에서 필독서입니다. (http://www.enterpriseintegrationpatterns.com)
엔터프라이즈 통합 패턴 (EIPs)는 문제에 대한 솔루션을 제공할 뿐만 아니라 문제 자체에 대한 정의와 커뮤니케이션에 도움을 줍니다.
Apache Camel 이란?
Apache Camel은 시스템 통합 프로젝트를 생산적으로 간편하게 하기 위한 통합 (Integration) 프레임 워크 입니다. Camel 프로젝트는 2007년에 Apache 2 오픈소스 라이센스로 시작하여 강력한 커뮤니티를 기반으로 Integration 분야에서 전세계적으로 유명한 프로젝트입니다.
CAMEL은 Concise Application Message Exchange Language의 약자로 복잡한 라우팅 규칙을 정의하는 통합을 위한 언어입니다.
Apache Camel 다음과 같이 한 줄로 정의할 수 있습니다. “Apache Camel is a powerful Open Source Integration Framework based on known Enterprise Integration Patterns”
Apache Camel 소개 자료
- Apache Camel는 EIP를 구현하는 통합 프레임워크
- Light Weight – Any 컨테이너
- DSL을 이용한 Integration 표현
- Enterprise Integration Patterns (EIP)
Apache Camel을 이용한 대출 모집인 구현
이 글은 바른모소프트 블로그에 있는 글 중, 일부를 발췌한 것입니다.
팁코 액티브엔터프라이즈(TIBCO ActiveEnterprise) 기반 통합 솔루션을 Apache Camel 기반 통합 솔루션으로 대체하는 방법을 설명합니다.
1. 들어가며
기업 통합 패턴(Enterprise Integration Patterns)의 “9장 사잇장: 복합 메시징”에서는 대출 모집인을 세가지 통합 도구를 각각 이용해 실질적인 통합 솔루션을 구현하는 예들을 설명한다. 첫째 예는 SOAP 프레임워크인 Apache Axis를 이용하고, 둘째 예는 마이크로소프트 MSMQ를 이용하고, 셋째 예는 상용 EAI 제품인 팁코 액티브엔터프라이즈(TIBCO ActiveEnterprise)를 이용한다. 이 책 9장에 등장하는 예들의 특징을 표로 보이면 다음과 같다.
구현 | 실행 방식 | 주소 지정 | 수집 전략 | 채널 형식 | 기술 |
1 | 동기 | 수신자 목록 | 채널 | 웹 서비서/SOAP | 자바/아파치 액시스 |
2 | 비동기 | 수신자 목록 | 상관관계 식별자 | 메시지 큐 | C#/마이크로소프트 MSMQ |
3 | 동기, 비동기 | 게시 구독 채널 | 상관관계 식별자 | 게시 구독 | 팁코 액티브엔터프라이즈 |
References & Related Links
- Camel 에서 지원하는 컴포넌트 그룹 – http://gliesian.com/camel/ApacheCamelComponents.jpg
- Apache 핵심 프로젝트 camel 엿보기 – http://www.slideshare.net/sup2rior/apache-camel-33666585
- 바른모소프트 “Apache Camel, Hello, world!” – http://barunmo.blogspot.kr/2013/10/apache-camel-hello-world.html
JBoss Datagrid Queue 자료구조 구현 방법: Infinispan 설명
/in JBoss, Tech Talk/by 오픈마루 마케팅0Infinispan (http://infinispan.org/)은 레드햇/JBoss의 오픈소스 분산 메모리 Key/Value 데이터 그리드 솔루션입니다.
JBoss EAP 시작 파라미터 살펴보기: Command Line 파라미터 설명
/in JBoss, Tech Talk/by 오픈마루 마케팅0JBoss EAP 6에서 인스턴스 시작 시, 참조되는 바인딩 주소와 각종 디렉터리를 지정하는 시작 파라미터들에 대해 설명한다.
Drools 6.0 성능 비교: Phreak와 Rete 알고리즘 비교
/in Tech Talk/by 오픈마루 마케팅0Drools 6.0에서는 지금까지의 ReteOO 대신 Phreak ( Lazy Matching)라는 새로운 룰 엔진 알고리즘이 도입되었다.