Camel

CAMEL

Open Source기반으로 Enterprise에서 필요한 모든 유형의 연계 패턴을 XML 기반으로 쉽게 구현 할 수 있습니다.

제품소개

Camel은 Open Source기반으로 Enterprise에서 필요한 모든 유형의 연계 패턴을 XML 기반으로 쉽게 구현 할 수 있습니다.

Camel Context

Routing Engine

A DSL wires together endpoints and

processors to form routes

Route 1

Route 2

Route N

Message filter processor

Content based

Router Processor

File

JMS

HTTP

Processors

Handle things between endpoints

such as :

- Routing

- Transformation

- Mediation

- Enrichment

- Validation

- Interception

Components

- Provide an uniform endpoint interface

- Connect to other systems

특장점

저비용 고효율

Open Source기반으로 다양한 연계를 구현할 수 있으며 별도의 솔루션 도입

없이 모든 환경을 구성할 수 있습니다.

표준 인터페이스

OSGi, Web Service, Database, HTTP, RESTFul 등 모든 기술은 표준을 준수

하며 연계 시스템과 표준화 서비스를 구성할 수 있습니다.

DSL기반의 서비스

Routing 서비스 구성은 Domain Specific Language (DSL)형식의 XML기반

으로 모든 서비스 개발이 가능합니다.

Endpoint(Adapter) 서비스 개발은 URI 형식으로 정의하며 Routing서비스

와 함께 구성합니다.

안정적 기술지원

신기술 발전에 부합하는 지속적인 업데이트를 통해서 IT변화에 능동적으로 대

응할 수 있습니다.

라우팅과 중계 엔진

핵심 기능은 라우팅(Routing) 및 중계 (Mediation) 엔진입니다. 라우팅 엔진

은 메시지의 설정을 바탕으로 선택적으로 메시지를 이동시킵니다.

EIP (Enterprise Integration Pattern)와 DSL (Domain Specific Language)의

조합으로 라우팅을 정의합니다.

풍부한 컴포넌트 라이브러리

100여가지 이상의 컴포넌트들을 확장 라이브러리로 제공하고 있으며, 이러한

컴포넌트를 사용하여 트랜스포트(transport) 를 연결합니다. 상용 솔루션의

Adapter개념으로 사용합니다.

PLUGGABLE 아키텍처

Camel은 모듈형 아키텍처를 기반으로 하고 있습니다. Camel에 포함된 컴포

넌트, 3rd Party 컴포넌트, 자체적으로 작성한 컴포넌트에 상관 없이 모든 컴

포넌트를 Camel 에서 로드 할 수 있습니다.

POJO 모델

Beans (또는 POJO)는 Camel에서 매우 중요합니다. Camel은 통합 프로젝트

에서 언제 어디서나 Beans를 사용할 수 있도록 지원하며 많은 부분에서

Camel의 기본 기능을 사용자 지정 코드로 확장 할 수 있다는 것을 의미합니다.

손쉬운 구성

CoC (Convention Over Configuration)을 위하여 설정을 최소화합니다.

Route의 Endpoint(Adapter) 설정은 쉽고 직관적인 URI 방식을 제공합니다.

활발한 커뮤니티

Camel은 활발한 커뮤니티가 있습니다. 이 부분은 오픈소스를 사용하는 프로

젝트의 경우에 중요한 사항입니다.

자동 타입 변환

Camel은 많은 종류의 내장 타입 변환 메커니즘을 가지고 있습니다. 새로운

타입 변환이 필요한 경우 자신만의 타입 변환기를 만들 수 있으며, 가장 좋은

것은 타입 변환은 자동으로 이루어 지므로 특별히 개발자가 걱정할 필요가 없

습니다. 또한 Camel 컴포넌트들도 이러한 기능을 활용하고 있어, 컴포넌트는

다양한 형태의 타입를 받아서 사용할 수 있는 데이터 타입으로 변환이 가능합

니다.

주요기능

Enterprise에서 필요로 하는 모든 연계 유형 지원

Simple

Composed

1 message at a time

stateless

n messages at a time

stateful

Parallel

Sequential

Single message

out

n messages

out

1 message

0 or 1 message

Parallel

Sequential

Less messages out

Same number of messages

out

Split messages

Broadcast messages

Predetermined, linear

Any path

Content Based

Router

Message Filter

Recipient List

Splitter

Aggregator

Resequencer

Composed

Message Processor

Scatter-Gather

Routing Slip

Process

Manager

연계유형의 종류

Message Channel

Message

Channel

Sender

Application

Messaging

System

Receiver

Application

Message

Sender

Message

Receiver

Pipes and Filters

Incoming

Order

Pipe

Pipe

Pipe

Pipe

Filter

Filter

Filter

‘Clean’

Order

Decrypt

Authenticate

De-Dup

Message Router

inQueue

Message

Router

outQueue 1

outQueue 2

Message Translator

Incomming

Message

Translator

Translated

Message

Message Endpoint

Data

Message

Endpoint

Sender

Application

Message

Channel

Message

Endpoint

Data

Receiver

Application

Point to Point Channel

Sender

Order

#3

Order

#2

Order

#1

Order

#3

Order

#2

Order

#1

Receiver

Point-top-Point

Channel

Publish Subscribe

Channel

Publisher

Address

Changed

Address

Changed

Address

Changed

Address

Changed

Subscriber

Subscriber

Subscriber

Publish Subscribe

Channel

Dead Letter Channel

Sender

Message

Channel

Reroute Delivery

Delivery Fails

Intended

Receiver

Dead Letter

Channel

Dead

Message

Guaranteed Delivery

Sender

Receiver

Disk

Disk

Computer 01

Computer 02

Message Bus

Application

Application

Application

Message

Bus

Event Message

Subject

Event

Message

Obsever

Obsever

Obsever

= a Price Changed Event

Request Reply

Requestor

Request

Request

Channel

Reply

Channel

Reply

Replier

Correlation Identifier

Correlation

Message ID

Requests

Requestor

Relies

Replier

Correlation ID

Return Address

Requestor 1

Requestor 2

Reply

Channel1

Reply

Channel2

Reply

Channel1

Reply

Channel2

Request

Channel

Replier

Request

Reply

Reply

Content Based Router

New Order

Router

Widget

Inventory

Gadget

Inventory

Message Filter

Widget

Quote

Gadget

Quote

Widget

Quote

Message

Filter

Widget

Quote

Widget

Quote

Dynamic Router

Input Channel

Dynamic Router

Message Router

Dynamic Rule Base

Output Channel

Output Channel

Output Channel

Control Channel

Recipient List

Recipient List

Recipient Channel

Splitter

New Order

Splitter

Order

Item1

Order

Item2

Order

Item3

Aggregator

Inventory

Item1

Inventory

Item2

Inventory

Item3

Aggregator

Inventory

Order

Resequencer

Resequencer

Composed

Message Processor

New Order

Splitter

Router

Widget Inventory

Gadget Inventory

Aggregator

Validated

Order

Routing Slip

Attach Routing Slip

to Message

Route Message

According to Slip

Proc A

Proc B

Proc C

Wire Tap

Source

Wire Tap

Destination

Content Enricher

Basic Message

Enriched Message

Enricher

Resource

Content Filter

Message

Content Filter

Message

Claim Check

Message

W Data

Message

W Claim Check

Message

W Data

Check Luggage

Data Enricher

Data Store

Normalizer

Different Message

Formats

Router

Normalizer

Translators

Common Format

Event Driven Consumer

Sender

Message

Event-Driven

Consumer

Receiver

Polling Consumer

Sender

Message

Polling

Consumer

Receiver

Competing Consumers

Sender

Message

Consumer

Consumer

Receiver

Consumer

Receiver

Message Dispatcher

Sender

Messages

Message

Dispatcher

Performer

Performer

Performer

Receiver

Selective Consumer

Specifying

Producer

Messages with

Selection Values

Selective

Consumer

Receiver

컴포넌트 종류

구성도

Spring

JtaTransaction

Manager

Orchestrates

1)Begin

2)Commit

Orchestrates

JMS

broker

JMS

queue

Transform

JDBC

Transaction required

Camel

Database

Camel-Route

Order.csv

String

CSV

SPiter

Content

Based

Router

Apache Camel은 다양한 표준화 기술을 같이 활용하여

Enterprise Integration 환경 구축을 지원합니다.

Apache ActiveMQ

많은 시스템에서 사용하고있는 안정적이고 신뢰할 수 있는

Message Broker

Apache CXF

Smart web services 지원 (JAX-WS and JAX-RS)

Apache Karaf

OSGi Platform으로서 모든 종류의 Application을 운영할 수

있으며 Bundle단위 Life Cycle을 관리(Run-Time환경에서

Bundle단위로 Install, Uninstall, Start, Stop)

Apache MINA

높은 성능을 보장하는 NIO-driven networking 서비스 지원

Top button