Nodeflow 4 jビジネスプロセス構成化利器

3517 ワード

Nodeflow 4 j概要
Nodeflow 4 jは本人が最近発表したJAVAオープンソースプロジェクトであり、実際に生産プロジェクトに運用されている.ずっと1篇の中国语の绍介を书きたいと思って、ちょうど会社の美人は原稿を约束して、今回の怠け者の癌を治愈します.
Nodeflow 4 jは、JSONに基づいて軽量に定義され、フェースコンポーネントに基づいて開発されたJAVAプロセスエンジンである.
しゅとくせい
  • JSON定義
  • 他のプロセスエンジンのXMLベースとは異なり、JSONベースの定義は、プロセス構成と定義の面でより簡潔で友好的であり、プロセス解析の面でよりパフォーマンスが優れています.
  • コンポーネント向け
  • コンポーネント化に基づいて開発された柔軟で伸縮性のある構成ビジネスプロセス.組み込みコンポーネントを含め、独自のコンポーネントをカスタマイズして複数のビジネス・プロセスで使用することもできます.コンポーネントが十分に豊富であれば、ゼロプログラミングや少ないプログラミングが可能で、新しいビジネス処理プロセスを定義できます.
  • Groovy式
  • 文法の簡略化と親切さに加えて、Groovyは式の処理においてより強く、効率的である.
    JSON定義説明
    以下はJSON定義のサンプルで、式の定義と流れのジャンプを示します.
    {
     "indexs":[{"idx":"foo","type":"INT"},
    {"idx":"bar","mode":2,"type":"INT"}],
     "nodes":[
       {"id":"n1","component":"ruleset","ruleset":
          ["bar=foo*1000","bar+=24"],"next":"n2"},
       {"id":"n2","next":[{"condition":"bar==1024","next":"n3"},
       {"condition":"bar==2024","next":"n4"},{"next":"n5"}]},
       {"id":"n3","component":"testCustomComponent"},
       {"id":"n4"},
       {"id":"n5"}
     ]
    }
    
  • indexs-入出力パラメータind-パラメータ名type-パラメータタイプ、取値INT、LONG、DOUBLEまたはNUMERIC、大文字と小文字が敏感でないmode-パラメータモード、取値1、2または3はそれぞれ入力を表し、出力または入力も出力(フロー実行後の出力結果)
  • nodes-プロセスノードid-プロセス上のノードの一意性ID component-コンポーネントID next-現在のノードの次のノード.取値は、ノードのID文字列(次のノードを無条件で行う)またはオブジェクト(条件判断が必要)であり、取値がオブジェクトである場合、condition属性が必要である.対象配列である場合、すなわちデータ順に遍歴し、条件を満たす場合、後の条件は
  • と判断する.
    組み込みコンポーネント
    現在、以下の組み込みコンポーネントが提供されており、より多くの組み込みコンポーネントが続々と提供されます.もちろん自分のコンポーネントをカスタマイズすることもできます
    ruleset-groovyテーブルのセットを実行します.
    delay-次のノードの実行時に遅延します.デフォルトは2秒です.
    使用開始
  • プロセスファイル
  • の実行方法
    以下はcom.github.zzzhan.nodeflow 4 j.NodeflowTestのコード断片です.src/test/javaにあり、直接実行して結果を表示できます.
        nfJson = IOUtils.toString(NodeflowTest.class.getResourceAsStream(
    "/NodeflowTest.nf"));
        Map params = new HashMap();
        params.put("foo", 1);
        Nodeflow nf = new Nodeflow(nfJson);
        nf.execute(params);
        assertEquals("n3", nf.getCurNode());
        Map output = nf.getOutput();
        assertEquals(2048, output.get("bar"));
    
        params.put("foo", 2);
        nf = new Nodeflow(nfJson);
        nf.execute(params);
        assertEquals("n4", nf.getCurNode());
        output = nf.getOutput();
        assertEquals(2024, output.get("bar"));
    
        params.put("foo", 3);
        nf = new Nodeflow(nfJson);
        nf.execute(params);
        assertEquals("n5", nf.getCurNode());
    
  • Springで
  • を使用
    モジュールnodeflow 4 j-springを開き、使用方法を確認してください
  • Maven
  • 
        com.github.zzzhan
        nodeflow4j
        0.0.1-SNAPSHOT
    
    

    シーンの適用
    以前はいくつかの風制御モデリングにdrools(JAVAベースのルールエンジン)を採用していたが、その運行効率はともかく、その定義配置は書き込みプログラムと変わらず、業務員に友好的ではなく、メンテナンスが不便なため、Nodeflow 4 jがあった.Nodeflow 4 jは、ビジネス・プロセスの変動のニーズを満たし、プロセス定義のメンテナンスに迅速に対応します.典型的には、ユーザースコア、額測定、クロス検証などのモデル構築のために、複数のデータを接続するために適用できます.もちろん、プロセスステータスを永続化し、ワークフローエンジンの最下位として実現することもできます.従って、コンポーネント化されたプロセス定義は、実際のビジネスプロセス処理において大きな役割を果たすことができる.
    最後に
    星を加えるのを手伝って、星を加えるのは妊娠しません:https://github.com/zzzhan/nodeflow4j