SOA

Spring Integration を使った標準出力

Spring Integration は ESB Mule と同様のオープンソース ESB。 簡単に使ってみた限りでは、多少分かり難い印象あり。今回は、以下の環境を使って文字列を加工して標準出力へ出力するような簡単なサンプルを作ってみた。 Spring Integration 1.0.2 SR1 サン…

ESB Mule を使った標準入出力

オープンソース ESB ツール Mule の基本的な使い方を記述しておく。使用した環境は以下の通り。 Mule Community Edition 2.2.1 使い方としては、XML でサービスの構成を記述し、mule コマンドでサーバーを起動するようになっており、OSGi ベースになる前の S…

Google App Engine 上で Apache Camel を使用

id:fits:20080922 で作成した Apache Camel のサンプルを簡易化して Google App Engine for Java 上で動作させてみた。使用した環境は以下の通り。ただし、特に 2.0 の機能は使っていないはずなので 1.x でも動作すると思う。 Apache Camel 2.0M1 Google App…

Project Fuji を使った ESB - jruby, file

OpenESB v3 のカーネルコンポーネント Fuji に自作の処理フローを登録してみる事にする。 Fuji は JBI・OSGi をベースとした軽量マイクロカーネルコンテナ(ServiceMix Kernel と同じようなもの)で、IFL (Integration Flow Language) と呼ばれる DSL で処理…

Apache Camel で Esper を使ったイベント処理2 - Time・Length batch window

前回(id:fits:20081203)作成した Apache Camel + Esper コンポーネントの環境を使って、ちょっとだけ高度なイベント処理を試してみる。とりあえず、Esper のビルトイン Data Window Views の中から以下のようなものを使う。 Length batch window "win:leng…

Apache Camel で Esper を使ったイベント処理 - Esper コンポーネント使用

Apache Camel の Camel Extra プロジェクトには Camel 上で Esper のイベント処理を行うための Esper コンポーネント(camel-esper ライブラリ)が用意されているので、これを使って Camel 上で簡単な Esper を使ったイベントのフィルタリング処理を試してみ…

ServiceMix Kernel 上で Camel を使用

前回(id:fits:20080929)は ServiceMix 3.2.2 上で Camel を実行してみたが、今回は ServiceMix 4.0 のカーネルを担う ServiceMix Kernel 1.0.0 を使って Camel を実行してみる。(ServiceMix Kernel は OSGi ベースの軽量コンテナ) Camel 実行に必要なパ…

ServiceMix 上で Camel を使用

オープンソース ESB の Apache ServiceMix では、Apache Camel を使用するための servicemix-camel コンポーネントが用意されている。 そこで今回は、ServiceMix 3.2.2 上で Camel のルーティングルールを実行してみる事にする。 servicemix.xml の作成 Serv…

(Java版) Apache Camel を使った HTTP 処理とファイル入出力 - Jettry, File コンポーネント、Gant の利用

id:fits:20080919 で作成したサンプルの Java版は以下の通り。動作は Groovy 版と基本的に同じ。Groovy 版との違いで注目すべき点は getOut().setBody() で String.class の指定が不要なところ。 SampleRoute.java package sample; import java.io.FileInput…

Apache Camel を使った HTTP 処理とファイル入出力 - Jettry, File コンポーネント使用

Apache Camel の Jetty コンポーネントで HTTP リクエストを処理できるようなので、簡単なサンプルを作ってみる事にした。(ついでに File コンポーネントも使う)なお、Jetty コンポーネントを使うには Apache Camel に同梱されている jar ファイル以外に以…

Apache Camel の使用

Apache Camel は Apache ActiveMQ プロジェクトの一部、Spring を基盤とした統合フレームワークで EIP (Enterprise Integration Patterns) を実現するためのクラスライブラリが用意されている。 なお、EIP ではエンタープライズアプリケーションを連携させる…

Apache ODE 用に作成した BPEL を SCA 化して実行 - Apache Tuscany 利用

Apache ODE 1.2 用に作成した BPEL ファイルを SCA 化して Apache Tuscany 1.3 上での実行を試みる。 ただし、Apache Tuscany 1.3 がサポートしている(同梱している)のは ODE 1.1 のため、BPEL や WSDL ファイルの名前空間を変更する必要あり。なお、今回…

invoke を使って別 BPEL の同期実行を実施する BPEL プロセスの実行 - Apache ODE を使って

以下の BPMN で表されるようなビジネスプロセスを BPEL で実現してみた。(今回は「レンタカーを予約」のみを別の BPEL として定義した) 「予約」処理の概要 「ホテルを予約する」と「レンタカーを予約する」を並列実行 「レンタカーを予約する」は「レンタ…

Apache ODE で簡単な BPEL を実行

以下のサイトを参考にして、Apache ODE 1.2 上で簡単な BPEL(WS-BPEL)を実行してみた。 Eclipse BPEL プラグインを使って WS-BPEL V2.0 ビジネス・プロセスを開発し、実行する 開発・実行環境は以下の通り。 Eclipse 3.3, BPEL Visual Designer 0.3.0 Apac…

Tuscany SCA で独自の Implementation Types を使用

Tuscany SCA では、比較的容易に SCA アセンブリモデルを拡張できるアーキテクチャが採用されており、モジュールを追加する事によって以下のような型を拡張する事ができる。 Implementation types Binding types Data binding types Interface types 実際、T…

Tuscany で JSONRPC とスクリプトのサンプル作成

Tuscany SCA 0.99 を使って JSONRPC の簡単なサンプルを作成する。 Tuscany SCA のサンプル helloworld-jsonrpc を参考に、サービスの実装を Groovy スクリプトにしてみた。手順は以下の通り。 Java でサービスインターフェース作成 Groovy でサービスインタ…

Tuscany を JavaSE 6 で実行する

Tuscany SCA 0.9.9 の場合 Tuscany 0.9.1 と同様に 0.9.9 も JavaSE 6 で実行できない。 実装も変更されており、Tuscany 0.9.1 よりも動作させるのに手間どった。一応、以下のようなアスペクトクラスを使う事で動作するようにはなったが、なんとなく実用的と…

JavaScript や Groovy を使った SCA のサンプルを作成

Tuscany SCA 0.9.9 の場合 Tuscany SCA 0.9.9 では、後述の 0.9.1 のような .componentType ファイルが不要になり、.composite ファイルを記述するだけでよくなった。また、.composite ファイルでは tuscany ネームスペースの implementation.script を使う…

SCA の簡単なサンプルを作成

Tuscany 0.9 でスタンドアロン実行可能な簡単なサンプルを作成する。手順は以下の通り。 サービスの作成 アセンブリモデルの構成ファイル作成 クライアントの作成 コンパイルと実行 サービスの作成 サービスインターフェースとその実装クラスを Java で記述…