ApacheCamel-概要
Camelは、あるエンドポイントからメッセージを受信し、それを別のエンドポイントに送信するブラックボックスです。ブラックボックス内で、メッセージは処理されるか、単にリダイレクトされます。
では、なぜこのためのフレームワークがあるのでしょうか。導入のケーススタディに見られるような実際の状況では、ftp、http、jmsなどの独自のプロトコルに従う多くの送信者と多くの受信者が存在する可能性があります。システムでは、送信者AからのメッセージをB&Cにのみ配信する必要があるなど、多くの複雑なルールが必要になる場合があります。状況によっては、受信者が期待する別の形式にメッセージを変換する必要があります。この翻訳は、メッセージの内容に基づいて特定の条件の対象となる場合があります。したがって、基本的に、プロトコル間で変換し、コンポーネントを結合し、ルーティングルールを定義し、メッセージの内容に基づいてフィルタリングを提供する必要がある場合があります。これを次の図に示します-
上記の要件を満たし、そのような多くの状況に適したソフトウェアアーキテクチャを設計するために、エンタープライズ統合パターン(EIP)は2003年にGregorHohpeとBobbyWoolfによって文書化されました。ApacheCamelはこれらのパターンの実装を提供し、このチュートリアルの目的は教えることです。はじめに説明したような状況でCamelを使用する方法。
ApacheCamelはオープンソースフレームワークです。これは、ルールベースのルーティングおよびメディエーションエンジンを提供するメッセージ指向ミドルウェアです。「牛乳」注文の場合は牛乳ベンダーにリダイレクトし、「石油」注文の場合は石油ベンダーにリダイレクトするなどのルールを定義できます。Camelを使用すると、これらのルールを実装し、使い慣れたJavaコードでルーティングを行うことができます。これは、使い慣れたJava IDEを使用して、タイプセーフな環境でこれらのルールを定義できることを意味します。通常はかさばる傾向があるXML構成ファイルを使用する必要はありません。ただし、ルールの構成にXMLを使用する場合は、CamelはSpringフレームワークを介したXML構成をサポートします。Scalaが好きな場合は、BlueprintXML構成ファイルやScalaDSLを使用することもできます。また、お気に入りのJava、Scala IDE、または単純なXMLエディターを使用してルールを構成できることも意味します。
このエンジンへの入力は、コンマ区切りのテキストファイル、POJO(Plain Old Java Object)、XMLはCamelでサポートされている他のいくつかの形式のいずれかです。同様に、エンジンの出力をファイル、メッセージキュー、またはモニター画面にリダイレクトして、それぞれのベンダーに送信された注文を表示することもできます。これらはエンドポイントと呼ばれ、CamelはメッセージエンドポイントEIPパターンをサポートします。Camelエンドポイントについては、エンドポイントの章で後述します。
Camelは通常、Apache ServiceMix、Apache ActiveMQ、およびApache CXFとともに使用され、サービス指向アーキテクチャーを実装します。