Flux(サイト・英語)はJavaで記述された製品で、ジョブのスケジューリング、ファイルの転送およびワークフロー管理機能がある。Java、J2EEおよびWebサー ビス環境でスタンドアロンのアプリケーションとしても、 内蔵可能なソフトウェアコンポーネントとしても使用可能である。Quartzや同様の機能を実行するオープンソースフレームワークと比較すると(ブログ・英語)、Flux はデベロッパだけでなくWebやDesktop Interfaceを使用してワークフローを設計したりOperations Consoleでジョブフローの実行をモニターする非技術系のユーザによっても使用可能である。
Fluxは適宜複雑なフローチャートを作成するために結合されるトリガー、アクションおよびフローを使用して、非常に柔軟なプロセスフローの設定を助ける。
- アクションは、バッチジョブの開始、ファイルの転送、データベースの更新やJ2EEアプリケーションの呼び出しなどの機能を実行する。ジョブが実行可能な とき、ユーザ定義のコールバックを呼び出すことでFluxはJavaと統合し、J2EE環境でセッションやメッセージ駆動のBeanを起動したり、JMS メッセージを送信することができる。
- 再発時またはイベント駆動の頻度でトリガーは起動可能である。Fluxは事前に定義されたトリガーやアクションの一式を提供するが、カスタムなものはフローチャートにもビルドやプラグ可能である。
- フローはトリガーやアクションをそれぞれ別のものと関連付ける。いったんトリガーが起動されると、フローがその実行を適切なアクションへと導く。これは、 無条件(たとえば、メールのトリガーが起動され、実行が無条件でデータベースアクションに流れ込むとき)または条件付き(たとえば、実行がメールの送信者 次第で別のアクションに分岐する場合)のどちらかで実行することができる。
フローチャートはFlux APIを通じプログラムで設定されるか、Web Designerでグラフィックに設定することができる。Web Desingnerは先行リリースで導入されているが、既存のDesktop Designerに取って代わるものである(Swingに内蔵)。主としてJava環境をターゲットとしているが、他の言語で記述されたバッチプロセスや 実行ファイルもリモートマシンでスクリプトの実行を許可するFlux Agents(source)を使用することで、Fluxで起動しモニターすることができる。
7.7のリリース(source)で、Web Designerは拡張され、サポート対象のファイル転送のさまざまな特色に関連したアクションやトリガーの設定を可能にする。証明書ベースの認証が SFTPホストによるパスワード認証に代わるものとして追加され、B2Bファイル転送のセキュリティを保証している。Web Designerに新たに追加された機能はその他に、ランタイムデータマッピングでデベロッパがジョブやワークフローでのアクション間において、データの 移動を可能にさせるものである。
InfoQとのインタビューでFluxの社長であるDavid Sims氏は語った。「デスクトップ実装とWeb Designerが肩を並べるまでになるには、およそあと半年間の開発作業が必要である」。その違いはメッセージング、信号およびビジネスカレンダーに主 に関連している。Webアプリケーション(Operations Console)に組み込み可能なコンポーネントは、7.7のリリースではますますスケーラブルになった。今や何千ものジョブやチャートフローがモニター 可能である。
Sims氏はWeb DesignerおよびOperations Consoleが内蔵可能なコンポーネントとして使用可能な場合の、一般的なシナリオについて話した。
概して金融機関や金融ソフトウェア会社またはその他の企業で働くJavaの開発チーム(「Enterprise」と呼ぶことにする)はアプリケーションを 開発し、Fluxのジョブやワークフロー、ファイルの転送機能を自分たちのアプリケーションに組み込む。それからそのEnterpriseがアプリケー ションをデプロイし、ITスタッフはモニター、制御、そしてたいていそのアプリケーションを使用するという任務を負う。
ここでOperations Consoleの出番である。EnterpriseのITオペレーションスタッフは、それを使ってジョブやワークフローやファイルの転送を制御することができるが、それらはEnterpriseのアプリケーションに特有のものである。
単純な例としてEnterpriseがFluxエンジンを中心に資金および口座管理ソフトウェアアプリケーションをビルドするケースを考えてみる。 Javaアプリケーションは資金や口座を開始し、追跡し、そして大概管理するであろうが、ITオペレーションスタッフが自ら介入し自分たちで管理しなけれ ばならない場合もあるだろう。この場合ITスタッフはFlux Operations Consoleを使用し、システムに対しリアルタイムな調整をおこなうだろう。
7.7は先行リリースに完全準拠しており、オプションで永続的なジョブやワークフロー定義やランタイムジョブ実行情報向けに使用可能な、データベースに対 するスキーマの変更を必要としていない。またSims氏は、新たなWebコンポーネントの追加と共にFluxに導入されたテクノロジーについても詳細情報 を共有した。
さまざまなJavaScriptライブラリやテクノロジー(GWT、Dojo、 Prototype+Scriptaculousなど)を使用してきた。そしてわれわれはExtJSウィジェットの助けを借りながら、RESTfulアーキテクチャーに向けた移行の過程にいる。
XPathを使用して大きな(5MB) XMLワークフローをブラウザで直接読むことで、拡張容易性を拡大してきた。これによってブラウザとサーバ間における双方向のAjax通信が削減される。 その理由はブラウザがワークフローXMLを操作することができ、すべての修正がほどこされたときに、その結果をサーバに送信することができるからである。 それによって、サーバ側の作業を実行するためにさらに多いAjax要求を使用する同等のインターフェイスよりも90%以上も高速なインターフェイスを提供 することを可能にした。
David Sims氏との対話は、彼がFluxの次回のリリースに向けたロードマップを提示することで完結した。
I今年の5月もしくは6月に、Flux 8.0がリリースされる予定である。FluxのAPIはPOJOモデルとなり、2000年以来続いていた当初のファクトリー設計パターンに取って代わる。 POJOモデルにより、Springに代表されるフレームワークへの統合がさらに容易になる。
Flux 8.0においても、FluxエンジンのためのJavaScriptウィ ジェットがある。BPMダッシュボード、フローチャート(ジョブ/ワークフロー/ビジネス処理)であり、フローチャート、ログ、監査証跡、リポジトリ、 エージェント、ユーザ管理を実行する。新たなデータベースはトリガーし、データベーステーブルを照会したり更新するアクションをとる。
HSQLからDerbyへ更新。Java 5への更新は、特に業界標準の部品を使って組み立てられたものを最大限に利用し、コレクションを使用するドキュメントFlux APIへの更新。顧客のフィードバックによって保証される場合の可能性のあるFlux REST API。一般的に言って、現在4ケ月ごとに新しいFluxバージョンをリリースしている。
Fluxに関する詳細は、Webサイトや製品マニュアル(PDF・英語)で参照できる。