Javaを使用したjBPMのガイド

  • Java

  • link:/category/programming/ [プログラミング]

1. 前書き

このチュートリアルでは、Business Process Management(BPM)システムとJavaでのその実装についてhttps://docs.jboss.org/jbpm/release/7.20.0.Final/jbpm-docs/html_single/[jBPMとして説明します]システム。

2. ビジネスプロセス管理システム

https://en.wikipedia.org/wiki/Business_process_management[Business Process Management]は、開発の範囲を超えて企業のあらゆる側面に及ぶフィールドの1つとして定義できます。
BPMは、会社の機能プロセスに対する可視性を提供します。 これにより、反復改善を使用して、フローチャートで示される最適なフローを見つけることができます。 改善されたフローは、利益を増やし、コストを削減します。
BPMは、それ自体の目的、ライフサイクル、プラクティス、およびすべての参加者間の共通言語、つまりビジネスプロセスを定義します。

3. jBPMシステム

  • jBPMは、JavaでのBPMシステムの実装です。 ビジネスプロセスフローを作成し、実行し、ライフサイクルを監視することができます。* jBPMのコアは、Javaで記述されたワークフローエンジンであり、最新のビジネスプロセスモデリング表記(BPMN)2.0仕様。

    jBPMは、主に実行可能なビジネスプロセスに焦点を当てています。 これらのプロセスには、ワークフローエンジンで実行できるように十分な詳細があります。
    以下は、理解を助けるためのBPMNプロセスモデルの実行順序のグラフィカルなフローチャートの例です。
    link:/uploads/processModel-100x22.jpg%20100w []
    1. によって示される初期コンテキストを使用してフローの実行を開始します
      緑の開始ノード

    2. まず、タスク1が実行されます

    3. タスク1が完了したら、タスク2に進みます。

    4. レッドエンドノードに到達すると実行が停止します

4. jBPMプロジェクトのIDEプラグイン

EclipseとIntelliJ IDEAでプラグインをインストールしてjBPMプロジェクトとBPMN 2.0プロセスを作成する方法を見てみましょう。

4.1. Eclipseプラグイン

jBPMプロジェクトを作成するには、プラグインをインストールする必要があります。 次の手順に従ってください。
  1. [ヘルプ]セクションで、[新しいソフトウェアのインストール]をクリックします

  2. を追加
    Drools and jBPM update site

  3. ライセンス契約の条項に同意し、プラグインを完了します
    インストール

  4. Eclipseを再起動します

    Eclipseが再起動したら、_Windows-> Preferences-> Drools-> Drools Flow Nodes_に移動する必要があります:
    link:/uploads/Drools-config-100x65.jpg%20100w []
    すべてのオプションを選択したら、「適用して閉じる」をクリックします。 これで、最初の* jBPMプロジェクト*を作成する準備ができました。

4.2. IntelliJ IDEAプラグイン

IntelliJ IDEAにはデフォルトでjBPMプラグインがインストールされていますが、これはUltimateオプションにのみ存在し、Communityオプションにはありません。
_Configure-> Settings-> Plugins-> Installed-> JBoss jBPM_をクリックして有効にする必要があります:
link:/uploads/Drools-config-IJI-100x71.jpg%20100w []
現在、このIDEにはBPMN 2.0プロセスデザイナはありませんが、他のデザイナから_ *。bpmn_ファイルをインポートして実行できます。

5. ハローワールドの例

簡単なHello Worldプロジェクトの作成に手を出しましょう。

5.1. jBPMプロジェクトを作成する

Eclipseで新しいjBPMプロジェクトを作成するには、_File-> New-> Other-> jBPM Project(Maven)_に移動します。 私たちのプロジェクトの名前を提供した後、私たちは仕上げを打つことができます。 Eclipseはすべてのハードワークを行い、必要なMaven依存関係をダウンロードしてサンプルjBPMプロジェクトを作成します。
IntelliJ IDEAで同じものを作成するには、_File-> New-> Project-> JBoss Drools_に移動します。 IDEは、必要な依存関係をすべてダウンロードし、プロジェクトの_lib_フォルダーに配置します。

5.2. Hello Worldプロセスモデルを作成する

コンソールに「Hello World」を印刷する小さなBPMプロセスモデルを作成しましょう。
このために、_src / main / resources_の下に新しいBPMNファイルを作成する必要があります。
link:/uploads/bpmn-file-100x57.jpg%20100w []
ファイル拡張子は_.bpmn_で、BPMNデザイナーで開きます。
link:/uploads/bpmn-designer-100x51.jpg%20100w []
デザイナーの左パネルには、Eclipseプラグインのセットアップ中に以前に選択したノードが一覧表示されます。 これらのノードを使用して、プロセスモデルを作成します。 中央のパネルはワークスペースであり、ここでプロセスモデルを作成します。 右側はプロパティタブで、プロセスまたはノードのプロパティを設定できます。
この_HelloWorld_モデルでは、次のものを使用します。
  • 開始イベント-プロセスインスタンスを開始するために必要

  • スクリプトタスク-Javaスニペットを有効にします

  • 終了イベント-プロセスインスタンスの終了に必要

    前述したように、IntelliJ IDEAにはBPMNデザイナーはありませんが、EclipseまたはWebデザイナーで設計された_.bpmn_ファイルをインポートできます。

5.3. ナレッジベース(kbase)の宣言と作成

*すべてのBPMNファイルはプロセスとして_kbase_にロードされます。 それらを実行するには、それぞれのプロセス_ids_をjBPMエンジンに渡す必要があります。*
__resources / META-INF_の下に_kmodule.xml_を作成し、_kbase_およびBPMNファイルパッケージ宣言を使用します。
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
    <kbase name="kbase" packages="com.baeldung.bpmn.process" />
</kmodule>
宣言が完了したら、_KieContainer_を使用して_kbase_をロードできます。
KieServices kService = KieServices.Factory.get();
KieContainer kContainer = kService.getKieClasspathContainer();
KieBase kbase = kContainer.getKieBase(kbaseId);

5.4. jBPM Runtime Managerを作成します

runtime_org.jbpm.test_パッケージの__JBPMHelper __presentを使用して、サンプルのランタイム環境を構築します。
環境を作成するには、2つのことが必要です。1つ目は_EntityManagerFactory_を作成するデータソース、2つ目は_kbase_です。
__JBPMHelper ___hasメソッドは、インメモリH2サーバーを起動し、データソースを設定します。 同じものを使用して、_EntityManagerFactory_を作成できます。
JBPMHelper.startH2Server();
JBPMHelper.setupDataSource();
EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit);
すべての準備が整ったら、_RuntimeEnvironment_を作成できます。
RuntimeEnvironmentBuilder runtimeEnvironmentBuilder =
  RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder();
RuntimeEnvironment runtimeEnvironment = runtimeEnvironmentBuilder.
  entityManagerFactory(emf).knowledgeBase(kbase).get();
_RuntimeEnvironment_を使用して、jBPMランタイムマネージャーを作成できます。
RuntimeManager runtimeManager = RuntimeManagerFactory.Factory.get()
  .newSingletonRuntimeManager(runtimeEnvironment);

5.5. プロセスインスタンスの実行

最後に、_RuntimeManager_を使用して_RuntimeEngine_を取得します。
RuntimeEngine engine = manager.getRuntimeEngine(initialContext);
__RuntimeEngineを使用して、___ナレッジセッションを作成し、プロセスを開始します。
KieSession ksession = engine.getKieSession();
ksession.startProcess(processId);
プロセスが開始され、SIDEコンソールに「** Hello World **」と印刷されます。

6. 結論

この記事では、Java実装を使用してBPMシステムを紹介しました— https://www.jbpm.org/[jBPM]。
これは、jBPMプロジェクトをキックスタートするためのクイックガイドでした。 ここで示す例では、プロセスの実行を簡単に理解するために最小限のプロセスを使用しており、https://github.com/eugenp/tutorials/tree/master/libraries-2 [GitHub]で見つけることができます。
プロセスを実行するには、__WorkflowProcessMain __classのmainメソッドを実行するだけです。