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の主な特徴
Apache Camelの特徴を以下に示します。
- 広く使用されているEIPの実装
- 多種多様なトランスポートプロトコルおよびAPIへの接続
- EIPとコンポーネントを連携させるためのドメイン固有言語(DSL)
※EIP: Enterprise Integration Patterns(エンタープライズ統合パターン)エンタープライズシステムの統合ソリューションを設計・文書化するため、パターンを規定したもの。
Camelの概要を表したものが図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 |
Apache Camelのコンポーネント
Apache Camelで使用可能なコンポーネントは、現在200種類以上あります。
コンポーネントの一覧は、下記のURLを参照してください。
https://github.com/apache/camel/blob/master/components/readme.adoc
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が必要)
Apache Camelのライセンス
Apache Camel は、Apache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。
Apache Camel ダウンロードページ
http://camel.apache.org/download.html
参考URL
Apache Camel
http://camel.apache.org/index.html
Enterprise Integration Patterns - Messaging Patterns
http://www.enterpriseintegrationpatterns.com/patterns/messaging/toc.html
Apache Camelのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。