yojikのlog

yojikのブログです

Webアプリ連携フレームワーク

http://flowr.31tools.com/
このフレームワークは非常に興味深いです。

flowr が対象とするのは、パーマネントリンクを持つ Web アプリケーションです。一般的なブログや Wiki、Amazon のような製品情報ページの URL が一定のルールで固定化できる EC サイトなどが当てはまります

flowr の最も基本的な特徴は、URI の指す各リソースに対しステートマシンでその振る舞いを定義し、また個々の URI に対してメタデータを付加・制御することができるというものです。
Web アプリケーション に flowr を使って機能を追加するために必要なことは、各リソースの URL を取得する方法を用意するだけです。例えばブログの場合はブログパーツを貼り付けることで flowr との連携を行います。

最近、既存のアプリをあまり変更せずにワークフローの機能を組み込む(ワークフローに参加させる)ことに興味を持っています。
そのときに、アプリケーション側からワークフローエンジンを呼び出してごにょごにょするという一般的なやり方では、アプリケーションとワークフローの相互依存が発生しそうだなーというのが懸念事項です。
もちろんワークフローエンジン等を使ってアプリからワークフローの部分を取り出せば、フローが変更されてもアプリを変更する必要が無くなり、システムが疎結合になるというのが建前です。でも状態遷移に必要なデータが変わったりすれば、アプリ側も影響を受ける気がします。逆にフローからアプリへの依存は、ある程度発生するはず*1なので、(明示的じゃないかもしれないけど)フローとアプリは密結合している気がします。単純にワークフローエンジンを使うだけでは何か足りないところがあるようです。
その点、このフレームワークの考え方はかなり違っていて、URIベースの連携により、少なくともアプリからフローへの依存を最小限にすることはできそうです。この考え方は業務アプリにも応用できそうな気がします。ちょっと面白いです。いい感じ。

*1:状態が変更されたタイミングでアプリ側のデータに対して、判定や更新を行うなど