集合上の二項関係を使用して実用的な問題を解決する

ビジネスプロセスを管理するコンピューターシステムを開発する際、特定のパフォーマーを任命するという問題に直面しました。

この目的の実装には、2つの従来のアプローチがあります。

これらのアプローチには両方とも重大な欠点があります。

この場合のセットに対するバイナリ関係の使用により、ロール初期化子の構築の問題に対する非常にシンプルだが非常に効果的なソリューションを開発できることが判明しました。



有限セットAとBのバイナリ関係は、最初の要素がセットAに属し、2番目がセットBに属する順序付きペアのセットを定義することにより定義できます。以下に、この単純な概念がビジネスプロセスの役割を初期化するタスクを解決する方法を示します。

プロセス制御自動化システムは、ビジネスプロセススキームに従ってエグゼキュータにタスクを配布し、実装を監視します

ビジネスプロセスのロールは、ビジネスプロセスノードをジョブ実行者に関連付けるために使用されます。 ビジネスプロセスを開発すると、ロールが作成され、ビジネスプロセス図の特定のノードに対応します。 ロールの初期化は、特定のエグゼキューターのロールへの割り当てです。

ビジネスプロセスでは、原則として、起動時に、一部のロールの値はすでにわかっています。 たとえば、どのユーザーがビジネスプロセスを開始したかがわかっています。 ほとんどの場合、既知のロール値から他のロールの値を見つける必要があります。 企業の従業員が何らかのリソースの申請書に記入するビジネスプロセスを開始した場合、この従業員の長はこの申請書を確認または拒否する必要があります。 つまり、すでに初期化されているロールの値に従って新しいロールを初期化するには、何らかの方法で企業の従業員間の関係を設定する必要があります。

この問題を熟考して、私はモスクワ州立大学で2年目に、集合に関する二項関係を研究したことを思い出しました。 企業の従業員が多数の要素と見なされる場合、この構築の助けを借りて、従業員間の秩序ある関係を定義することができます。

次に、ロールを次のように初期化できます。

1.企業の多くの従業員に対してバイナリ関係を設定します。これは、従業員の順序付けられたペアのセットです。

2.バイナリ関係を使用して初期化されたビジネスプロセスのロールについては、初期化時に既知のロールを示します。

3.エグゼキューターをロールに割り当てる手順では、イニシャライザーに関連付けられている既知のロールのエグゼキューターの値を取得します。 この値は、バイナリ関係の右側に対応します。 関係ペアのすべての左要素の値のセットを作成します。右要素は、既知の役割の実行者と一致します。

4.このセットにより、ロールを初期化します。 この場合、役割には複数の実行可能エグゼキューターがいる可能性があります。対応するタスクはすべての実行可能エグゼキューターに送信されますが、タスクを最初に実行する実行者は1人だけです。

ただし、それを定義するアーティストのすべてのペアをリストしてバイナリ関係を指定することは、そのようなペアが多数ある可能性があるため、必ずしも便利ではありません。 したがって、バイナリ関係が決定されるセットを拡張します。 パフォーマーに加えて、パフォーマーグループをペアで使用することもできます。

次に、既知のロールに従って、エグゼキューター(このロールの値、またはこのアーティストを含むグループ)が存在する右側のペアを選択します。 したがって、比率を定義するペアの数を大幅に減らすことができます。

ロール初期化アルゴリズムの実装


アルゴリズムは実際に実装されました-無料のオープンソースシステムRunaWFEで。 別のアイテムがシステムのメインメニューに追加されました-リレーション:

画像

この時点で、リレーションを表示/追加/削除し、リレーションを開いて、そのコンポーネントの多くのペアを編集できます。

画像

ビジネスプロセスエディターでバイナリ関係を使用してロールを初期化する


ビジネスプロセスのエディターでは、ロール初期化子を編集するときに、「関係を使用してロールを定義する」タブを選択できます。 この場合、サーバー接続設定を構成し、関係をエディターにインポートできます。

画像

さらに、関係を役割に合わせることができます。 フォームは、関係の名前と、ユーザーまたはユーザーのグループを定義する関係の右側に対応する変数または定数を選択します。

画像







All Articles