トップ OSS紹介 Apache Camel

Apache Camel

NRIのOpenStandiaが提供するApache Camel最新情報

Apache Camel情報

Apache Camelとは

Apache Camel(アパッチ キャメル)は、オープンソースのJava製フレームワークです。 複数システム統合の簡便化を目的として開発されました。

Apache Camel は、Apache Active MQ のサブプロジェクトとして開発が始められ、2007年5月15日に開発者の一人である James Strachan(ジェームス・ストラカン) 氏のブログ上で発表され、2007年7月2日 に Apache Camel 1.0 がリリースされました。2009年1月にはApacheのトップレベルプロジェクトの一つに指定されています。

Apache Camelを使用することで、システム統合の際のデータフォーマット・プロトコルの差異への対応工数の削減や、データフローの一元管理によるメンテナンス性の向上などが期待できます。

Apache Camelは、HTTP・ActiveMQ・JMS・JBI・SCA・MINA・CXFなど、様々なトランスポートプロトコル、メッセージングモデル、およびプラグイン可能なコンポーネント、データフォーマットオプションで動作します。
リクエストを受け取る・メッセージを送信するなどの接続は、様々なコンポーネントを介して行います。コンポーネントは200種類以上あり、SSH・FTP・HTTPなどのプロトコルや、AWS・GitHub・FacebookなどのサービスAPIなどをサポートしています。
また、Apache Camelは、CDI、Spring、Blueprint、Guiceといったフレームワークとの統合をサポートしています。

主な特徴

Apache Camelの特徴を以下に示します。

  • 広く使用されているEIPの実装
  • 多種多様なトランスポートプロトコルおよびAPIへの接続
  • EIPとコンポーネントを連携させるためのドメイン固有言語(DSL)

※EIP: Enterprise Integration Patterns(エンタープライズ統合パターン)エンタープライズシステムの統合ソリューションを設計・文書化するため、パターンを規定したもの。 Camelの概要を表したものが図1です。

図 1
図 1

コンポーネントはCamelから他のシステムへの接続部分で、エンドポイントインターフェイスを提供します。"jms:Queue"や"file:/tmp"のようなURIを使用することで、メッセージの送受信が可能です。

プロセッサは、エンドポイント間のメッセージを操作・仲介するために使用されます。

Camelでは、プロセッサとエンドポイントを結ぶためのルーティングルールを、Java、Scala、GroovyなどのDSLで定義します。 また、XMLでルーティングルールを定義することも可能です。

Apache Camelで使用できるDSLは以下の通りです。

Java DSL

Fluent APIを使用したJava DSL

Spring XML

Spring XML形式のDSL

Blueprint XML

OSGi BluePrint XML形式のDLS

Rest DSL

Restサービスを定義する JavaまたはXML形式のDSL

Annotation DSL

JavaBeansのアノテーションを使用したDSL

XML DSL

Camel XMLファイルのみのXML形式のDSL

Yaml DSL

YAML形式のDSL

Groovy DSL

特定のGroovy拡張モジュールを利用したGroovy形式のDSL

Kotlin DSL

Kotlin形式のDSL

Apache Camelのコンポーネント

Apache Camelで使用可能なコンポーネントは、現在200種類以上あります。
コンポーネントの一覧は、下記のURLを参照してください。

Apache Camelのシステム要件

プラットフォーム要件

  • JDK 6 をサポートするプラットフォーム

JDK要件

  • バージョン 2.x JDK8
  • バージョン 3.0 - 3.4 JDK 8、JDK 11
  • バージョン 3.5 以上 JDK 8、JDK 11、JDK 14 (リリース時のバージョン3.8は、JFRを含むJDK8.0.272が必要)
  • バージョン 4 以上 JDK17

Apache Camelのライセンス

Apache Camel は、Apache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

製品ダウンロード

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Spring Batch
    サポート対象

    Spring Batch

    スプリングバッチ。Javaプラットフォーム向けのパッチ処理フレームワークです。

  • Apache Kafka
    サポート対象

    Apache Kafka

    アパッチ カフカ。分散ストリーミングプラットフォームです。

  • Apache Tomcat
    サポート対象

    Apache Tomcat

    アパッチトムキャット。JavaサーブレットやJSPを実行するためのソフトウェア

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。