2010-12-10 14 views
0

私のアプリは、複数のソースからデータを取得する必要があります。条件(全てであれば)がデータソースを使用するか、ユーザたらそれに これはステートマシンの使用例ですか?もしそうなら、どのオープンソースをお勧めしますか?

をスキップするかどうかを決定する、オーダー内のデータ・ソース

    1. 順序をユーザが定義する次のニーズ上記の2つを定義した場合、アプリケーションはデータをプルするために後で使用する「オーケストレーション」に名前を割り当てます。

      私はそれがその後、ステートマシンを使用する場合であれば、私は順序や条件を処理するために、自分自身のコードを書くのよりよいAMまたはこれは、ステートマシンのユースケース

    2. であるかどうかを

      1. 上のいくつかのガイダンスをしたいですこれは、このサポートを提供するより良いオープンソースプロジェクトです
      2. ステートマシンの仕様はありますか? SCXML?
      3. ステートマシンのオープンソースの実装はどれですか? (この順序で)基準:標準に基づいて、デバッグに簡単に埋め込むに簡単に、積極的に開発され、ステートマシン

      ユースケースの実行時の作成のサポート:これはマルチテナント型アプリです。各顧客は自分自身のorcehstrationを設計してdbに保存します。これは私達を顧客に乗ることと呼びます。一旦顧客に搭乗すると、彼のすべての要求は彼が以前に保存した祖先を使用します。今

      私たちは

      • オーケストリオン1が3つのデータソースA、BおよびCが可能なオーケストレーションのほんの一部ですされているとしましょう:、プルBを引き、 が、そのために、Cを引い
      • Orchestrion 2:Aが返された場合はAを返し、Bを引っ張ってBを引く(基本的に(AまたはC)とB)。
      • Crchestrion 3:DOESNTを注文します。すべては(並列であってもよい)プルされるステートマシンを使用するための親指の
  • +1

    これは、データが何であるか、どのような条件、どのような作業が行われているかによってわかることは不可能です。ほとんどすべてのプログラムは状態マシンと見ることができます。ちょうどそれが意味を成す方法を書いてください。 – Falmarri

    +0

    javaまたは.net?ライブラリはそれらのライブラリとはかなり異なっています。そして、私は、あなたが国家機械を望むものは全く理解していません。あなたはスクリプト言語としてそれをしたいですか? – CodesInChaos

    +0

    @Falmarri - サンプルオーケストレーションを例としてオーダーと条件を追加しました。 –

    答えて

    1

    ルール必要があります:あなたは、プロセスの可能性が高い変更であるスタートチャート

  • としてそれを図式化することができます

    • をが、与えられた点(すなわち状態)で実行されるアルゴリズムはありません - まだOKアルゴリズムは状態
    • の影響を受けているんどのような場合は、プロセス
    を変更するのはプログラマではない人に能力を拡張したいです

    あなたの目的のために、私はJBoss Business Process Management suiteを見るでしょう。他の人が変更できるようにするためのGUIエディタを含むXML表現を使用してステートマシンを定義および管理し、実行のために「仮想マシン」に渡すことができます。定義言語は、カスタムコードの実行と、パラレル、反復アクティビティ、およびスケジュールされたイベントなどのより複雑なビヘイビアのモデリングにさまざまなフックを提供します。あなたはボックスおよびラインとしてそれを描くことができるならば、私はそれが資格だと思い、(UMLは資格でしょう)、より抽象的に言えば#1

    1. コメントに反応して

      を更新。

    2. あなたが記述したユースケースでは、各データソースを状態としてモデル化します。便宜上、この1対1マッピングを破ることができます(つまり、状態ごとに複数のデータソースを実行します)。状態間の遷移は順序を決定する。条件に基づく遷移を制限する。
    3. これを別のユーザーが運転するということは、私の意見では、ステートマシンのソリューションにとって最も魅力的な理由です。 SCXMLまたはjPDL(XML定義のjPBMが実行されます)は、XMLとしての状態遷移の直列化です。このXMLはGUIで操作できます - 両方のプロジェクトにはEclipseベースのGUIがあります。これにより、データ(すなわち、データソース)は、各ユーザに固有のプロセス(状態、遷移および条件)と共に移動することが可能になる。
    4. jPBM実行エンジンが埋め込み可能なので、重いとは思えません。 jBPMの言語 - jPDL - は、優れたツールをサポートしています。私はSCXMLをレビューしましたが、jPDLとほぼ同じように見えますが、ドキュメントと成熟度は低くなっています。また、jPBMでは、クラスパス参照インラインとして実行するクラスを定義できますが、SCXMLはXML名前空間の間接参照を使用します。

    私はSCXMLとjPDLの仕様を検討して比較します。私の印象は、SXCMLはjPDLのスーパーセットです。例えば、jPDLは定義の一部としてタスクを繰り返すことができますが、SCXMLはそのようには見えません。

  • +0

    1)それをスタートチャートとして図表することができます。私はダイアグラムは必要ありませんが、これはUMLのアクティビティ図に似ています。 2)私のユースケースの文脈でこれについてもっと詳しく説明することができます。 3)はい、私たち自身のUIを使用して、それ以外のユーザーがオーケストレーションを作成し、システムに保存します。 4)私はjBPMがこれを行うことができますが、私はこれがヘビー級だと感じています。私が見るのは、jBPMがBPMN仕様をサポートしていて、SCXML仕様をサポートしていないということです。 –

    +0

    @Pangea:私の更新された回答を見てください。 – orangepips

    関連する問題