(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-26
(45)【発行日】2024-02-05
(54)【発明の名称】データ処理システムによって管理されるデータオブジェクトのワークフローを実施するための有限状態機械
(51)【国際特許分類】
G06Q 10/0633 20230101AFI20240129BHJP
【FI】
G06Q10/0633
(21)【出願番号】P 2021542500
(86)(22)【出願日】2020-01-22
(86)【国際出願番号】 US2020014607
(87)【国際公開番号】W WO2020154400
(87)【国際公開日】2020-07-30
【審査請求日】2023-01-20
(32)【優先日】2019-01-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】509123208
【氏名又は名称】アビニシオ テクノロジー エルエルシー
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ロバート・パークス
(72)【発明者】
【氏名】アンソニー・イェラカリス
(72)【発明者】
【氏名】ドゥサン・ラディヴォジェヴィッチ
【審査官】宮地 匡人
(56)【参考文献】
【文献】米国特許出願公開第2014/0304380(US,A1)
【文献】米国特許出願公開第2003/0055668(US,A1)
【文献】米国特許出願公開第2015/0363175(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
データ処理システムにおけるワークフローを管理する方法であって、前記データ処理システムは、(i)複数のデータオブジェクト及びその属性の値であって、前記複数のデータオブジェクトは、第1のデータオブジェクトを含み、前記第1のデータオブジェクトは、複数の値の何れか1つを有することができる第1の属性を含む複数の属性を有する、複数のデータオブジェクト及びその属性の値と、前記複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータとを記憶する少なくとも1つのデータストアと、(ii)前記第1のデータオブジェクトに関連付けられた第1の有限状態機械(FSM)を含むFSMの実行を管理し、且つ前記第1のデータオブジェクトの第1のワークフローを管理するためのワークフロー実行エンジンを含むワークフロー管理システムとを含み、前記方法は、
前記第1のFSMの現在のワークフロー状態が第1のワークフロー状態である場合、前記ワークフロー管理システムを使用して、
前記少なくとも1つのデータストア中の前記第1の属性の現在の値にアクセスすることにより、前記第1のデータオブジェクトの前記第1の属性の前記現在の値を特定することと、
前記第1の属性の前記現在の値及び前記複数のデータオブジェクトの少なくとも幾つかの間の関係を指定する前記メタデータを使用して、前記第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、
前記第1のアクターが、前記第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、
前記第1のアクターから且つ前記GUIを通して、前記第1のワークフロータスクが実行されるべきであることを指定する入力を受信することに応答して、
前記第1のデータオブジェクトの前記第1のワークフロータスクを実行することと、
前記第1のFSMの前記現在のワークフロー状態を第2のワークフロー状態に更新することと
を実行することを含む、方法。
【請求項2】
前記複数のデータオブジェクトにおけるデータオブジェクトは、1つ又は複数の階層に編成され、前記メタデータは、前記1つ又は複数の階層を指定し、前記第1の属性の前記現在の値は、前記第1のデータオブジェクトが属する、前記1つ又は複数の階層の第1の階層を示す、請求項1に記載の方法。
【請求項3】
前記第1のアクターを識別することは、前記複数のデータオブジェクトにおける第2のデータオブジェクトの前記第1のワークフロータスクを実行する権限を有するアクターとして前記第1のアクターを識別することを含み、前記第2のデータオブジェクトは、前記第1の階層に従って前記第1のデータオブジェクトに関連する、請求項2に記載の方法。
【請求項4】
前記第2のデータオブジェクトは、前記第1の階層において前記第1のデータオブジェクトの祖先である、請求項3に記載の方法。
【請求項5】
前記第2のデータオブジェクトは、前記第1の階層において前記第1のデータオブジェクトの親である、請求項3又は4に記載の方法。
【請求項6】
前記第1の属性の前記現在の値は、前記第1のデータオブジェクトの少なくとも1つの分類を示す、請求項1に記載の方法。
【請求項7】
前記第1のワークフローを管理するための前記第1のFSMの第1の仕様にアクセスすることであって、前記第1の仕様は、ワークフロー状態及び前記ワークフロー状態における状態間の遷移を示す、アクセスすることと、
前記第1の仕様を使用して、前記第1のデータオブジェクトの前記第1のワークフローを管理するための前記第1のFSMを生成することと、
前記第1のFSMを前記第1のデータオブジェクトに関連付けることと
を更に含む、請求項1~6の何れか一項に記載の方法。
【請求項8】
前記複数のデータオブジェクトは、前記第1のデータオブジェクトと異なる第2のデータオブジェクトを含み、前記方法は、
前記第1の仕様を使用して、前記第2のデータオブジェクトの前記第1のワークフローを管理するための第2のFSMを生成することであって、前記第1のFSMは、前記第2のFSMと異なる、生成することと、
前記第2のFSMを前記第2のデータオブジェクトに関連付けることと
を更に含む、請求項7に記載の方法。
【請求項9】
前記第1のデータオブジェクトは、第2の属性を含み、前記方法は、
前記第1のデータオブジェクトの前記第2の属性の値を変更するための第2のワークフローを管理するための第2のFSMを生成することと、
前記第1のFSMを使用して、前記第1のデータオブジェクトの第1のワークフローを管理するのと同時に、前記第2のFSMを使用して、前記第1のデータオブジェクトの前記第2の属性の前記第2のワークフローを管理することと
を含む、請求項1~8の何れか一項に記載の方法。
【請求項10】
前記第1のデータオブジェクトの前記第1のワークフローは、前記第1のデータオブジェクトへの変更を管理するためのワークフローである、請求項1~9の何れか一項に記載の方法。
【請求項11】
前記第1のFSMが、前記第1のデータオブジェクトの前記第1のワークフローの前記現在のワークフロー状態が前記第1のワークフロー状態であることを示す場合、
前記第1のアクターを含む複数のアクターのそれぞれから入力を受信することであって、入力は、前記第1のワークフロータスクが実行されるべきか否かを示す、受信することと、
前記複数のアクターの過半数が、前記第1のワークフロータスクが実行されるべきであることを示す入力を提供する場合にのみ、前記第1のデータオブジェクトの前記第1のワークフロータスクを実行することと
を更に含む、請求項1~10の何れか一項に記載の方法。
【請求項12】
データ処理システムによって実行されると、前記データ処理システムに、前記データ処理システムにおけるワークフローを管理する方法を実行させるプロセッサ実行可能命令を記憶する少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記データ処理システムは、(i)複数のデータオブジェクト及びその属性の値であって、前記複数のデータオブジェクトは、第1のデータオブジェクトを含み、前記第1のデータオブジェクトは、複数の値の何れか1つを有することができる第1の属性を含む複数の属性を有する、複数のデータオブジェクト及びその属性の値と、前記複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータとを記憶する少なくとも1つのデータストアと、(ii)前記第1のデータオブジェクトに関連付けられた第1の有限状態機械(FSM)を含むFSMの実行を管理し、且つ前記第1のデータオブジェクトの第1のワークフローを管理するためのワークフロー実行エンジンを含むワークフロー管理システムとを含み、前記方法は、
前記第1のFSMの現在のワークフロー状態が第1のワークフロー状態である場合、前記ワークフロー管理システムを使用して、
前記少なくとも1つのデータストア中の前記第1の属性の現在の値にアクセスすることにより、前記第1のデータオブジェクトの前記第1の属性の前記現在の値を特定することと、
前記第1の属性の前記現在の値及び前記複数のデータオブジェクトの少なくとも幾つかの間の関係を指定する前記メタデータを使用して、前記第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、
前記第1のアクターが、前記第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、
前記第1のアクターから且つ前記GUIを通して、前記第1のワークフロータスクが実行されるべきであることを指定する入力を受信することに応答して、
前記第1のデータオブジェクトの前記第1のワークフロータスクを実行することと、
前記第1のFSMの前記現在のワークフロー状態を第2のワークフロー状態に更新することと
を実行することを含む、少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項13】
前記複数のデータオブジェクトにおけるデータオブジェクトは、1つ又は複数の階層に編成され、前記メタデータは、前記1つ又は複数の階層を指定し、前記第1の属性の前記現在の値は、前記第1のデータオブジェクトが属する、前記1つ又は複数の階層の第1の階層を示す、請求項12に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項14】
前記第1のアクターを識別することは、前記複数のデータオブジェクトにおける第2のデータオブジェクトの前記第1のワークフロータスクを実行する権限を有するアクターとして前記第1のアクターを識別することを含み、前記第2のデータオブジェクトは、前記第1の階層に従って前記第1のデータオブジェクトに関連する、請求項13に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項15】
前記第2のデータオブジェクトは、前記第1の階層において前記第1のデータオブジェクトの祖先である、請求項14に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項16】
前記第2のデータオブジェクトは、前記第1の階層において前記第1のデータオブジェクトの親である、請求項14又は15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項17】
前記第1の属性の前記現在の値は、前記第1のデータオブジェクトの少なくとも1つの分類を示す、請求項12に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項18】
前記方法は、
前記第1のワークフローを管理するための前記第1のFSMの第1の仕様にアクセスすることであって、前記第1の仕様は、ワークフロー状態及び前記ワークフロー状態における状態間の遷移を示す、アクセスすることと、
前記第1の仕様を使用して、前記第1のデータオブジェクトの前記第1のワークフローを管理するための前記第1のFSMを生成することと、
前記第1のFSMを前記第1のデータオブジェクトに関連付けることと
を更に含む、請求項12~17の何れか一項に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項19】
前記複数のデータオブジェクトは、前記第1のデータオブジェクトと異なる第2のデータオブジェクトを含み、前記方法は、
前記第1の仕様を使用して、前記第2のデータオブジェクトの前記第1のワークフローを管理するための第2のFSMを生成することであって、前記第1のFSMは、前記第2のFSMと異なる、生成することと、
前記第2のFSMを前記第2のデータオブジェクトに関連付けることと
を更に含む、請求項18に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項20】
前記第1のデータオブジェクトは、第2の属性を含み、前記方法は、
前記第1のデータオブジェクトの前記第2の属性の値を変更するための第2のワークフローを管理するための第2のFSMを生成することと、
前記第1のFSMを使用して、前記第1のデータオブジェクトの第1のワークフローを管理するのと同時に、前記第2のFSMを使用して、前記第1のデータオブジェクトの前記第2の属性の前記第2のワークフローを管理することと
を更に含む、請求項12~19の何れか一項に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項21】
前記第1のデータオブジェクトの前記第1のワークフローは、前記第1のデータオブジェクトへの変更を管理するためのワークフローである、請求項12~20の何れか一項に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項22】
前記方法は、前記第1のFSMが、前記第1のデータオブジェクトの前記第1のワークフローの現在のワークフロー状態が前記第1のワークフロー状態であることを示す場合、
前記第1のアクターを含む複数のアクターのそれぞれから入力を受信することであって、入力は、前記第1のワークフロータスクが実行されるべきか否かを示す、受信することと、
前記複数のアクターの過半数が、前記第1のワークフロータスクが実行されるべきであることを示す入力を提供する場合にのみ、前記第1のデータオブジェクトの前記第1のワークフロータスクを実行することと
を更に含む、請求項12~21の何れか一項に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項23】
データ処理システムであって、
少なくとも1つのコンピュータハードウェアプロセッサと、
複数のデータオブジェクト及びその属性の値であって、前記複数のデータオブジェクトは、第1のデータオブジェクトを含み、前記第1のデータオブジェクトは、複数の値の何れか1つを有することができる第1の属性を含む複数の属性を有する、複数のデータオブジェクト及びその属性の値と、前記複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータとを記憶する少なくとも1つのデータストアと、
前記第1のデータオブジェクトに関連付けられた第1の有限状態機械(FSM)を含むFSMの実行を管理し、且つ前記第1のデータオブジェクトの第1のワークフローを管理するためのワークフロー実行エンジンを含むワークフロー管理システムと
を含み、前記ワークフロー管理システムは、前記少なくとも1つのコンピュータハードウェアプロセッサを使用して、
前記第1のFSMの現在のワークフロー状態が第1のワークフロー状態である場合、
前記少なくとも1つのデータストア中の前記第1の属性の現在の値にアクセスすることにより、前記第1のデータオブジェクトの前記第1の属性の前記現在の値を特定することと、
前記第1の属性の前記現在の値及び前記複数のデータオブジェクトの少なくとも幾つかの間の関係を指定する前記メタデータを使用して、前記第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、
前記第1のアクターが、前記第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、
前記第1のアクターから且つ前記GUIを通して、前記第1のワークフロータスクが実行されるべきであることを指定する入力を受信することに応答して、
前記第1のデータオブジェクトの前記第1のワークフロータスクを実行することと、
前記第1のFSMの前記現在のワークフロー状態を第2のワークフロー状態に更新することと
を含む方法を実行するように構成される、データ処理システム。
【請求項24】
前記複数のデータオブジェクトにおけるデータオブジェクトは、1つ又は複数の階層に編成され、前記メタデータは、前記1つ又は複数の階層を指定し、前記第1の属性の前記現在の値は、前記第1のデータオブジェクトが属する、前記1つ又は複数の階層の第1の階層を示す、請求項23に記載のデータ処理システム。
【請求項25】
前記第1のアクターを識別することは、前記複数のデータオブジェクトにおける第2のデータオブジェクトの前記第1のワークフロータスクを実行する権限を有するアクターとして前記第1のアクターを識別することを含み、前記第2のデータオブジェクトは、前記第1の階層に従って前記第1のデータオブジェクトに関連する、請求項24に記載のデータ処理システム。
【請求項26】
前記第2のデータオブジェクトは、前記第1の階層において前記第1のデータオブジェクトの祖先である、請求項
25に記載のデータ処理システム。
【請求項27】
前記第2のデータオブジェクトは、前記第1の階層において前記第1のデータオブジェクトの親である、請求項25又は26に記載のデータ処理システム。
【請求項28】
前記第1の属性の前記現在の値は、前記第1のデータオブジェクトの少なくとも1つの分類を示す、請求項23に記載のデータ処理システム。
【請求項29】
前記方法は、
前記第1のワークフローを管理するための前記第1のFSMの第1の仕様にアクセスすることであって、前記第1の仕様は、ワークフロー状態及び前記ワークフロー状態における状態間の遷移を示す、アクセスすることと、
前記第1の仕様を使用して、前記第1のデータオブジェクトの前記第1のワークフローを管理するための前記第1のFSMを生成することと、
前記第1のFSMを前記第1のデータオブジェクトに関連付けることと
を更に含む、請求項23~28の何れか一項に記載のデータ処理システム。
【請求項30】
前記複数のデータオブジェクトは、前記第1のデータオブジェクトと異なる第2のデータオブジェクトを含み、前記方法は、
前記第1の仕様を使用して、前記第2のデータオブジェクトの前記第1のワークフローを管理するための第2のFSMを生成することであって、前記第1のFSMは、前記第2のFSMと異なる、生成することと、
前記第2のFSMを前記第2のデータオブジェクトに関連付けることと
を更に含む、請求項29に記載のデータ処理システム。
【請求項31】
前記第1のデータオブジェクトは、第2の属性を含み、前記方法は、
前記第1のデータオブジェクトの前記第2の属性の値を変更するための第2のワークフローを管理するための第2のFSMを生成することと、
前記第1のFSMを使用して、前記第1のデータオブジェクトの第1のワークフローを管理するのと同時に、前記第2のFSMを使用して、前記第1のデータオブジェクトの前記第2の属性の前記第2のワークフローを管理することと
を更に含む、請求項23~30の何れか一項に記載のデータ処理システム。
【請求項32】
前記第1のデータオブジェクトの前記第1のワークフローは、前記第1のデータオブジェクトへの変更を管理するためのワークフローである、請求項23~31の何れか一項に記載のデータ処理システム。
【請求項33】
前記方法は、前記第1のFSMが、前記第1のデータオブジェクトの前記第1のワークフローの現在のワークフロー状態が前記第1のワークフロー状態であることを示す場合、
前記第1のアクターを含む複数のアクターのそれぞれから入力を受信することであって、入力は、前記第1のワークフロータスクが実行されるべきか否かを示す、受信することと、
前記複数のアクターの過半数が、前記第1のワークフロータスクが実行されるべきであることを示す入力を提供する場合にのみ、前記第1のデータオブジェクトの前記第1のワークフロータスクを実行することと
を更に含む、請求項23~32の何れか一項に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、米国特許法第119条(e)の下で、2019年1月22日付けで出願された「FINITE STATE MACHINES FOR IMPLEMENTING WORKFLOWS FOR DATA OBJECTS MANAGED BY A DATA PROCESSING SYSTEM」という名称の米国仮特許出願第62/795,443号明細書に対する優先権の利益を主張するものであり、これは、その全体が参照により本明細書に援用される。
【背景技術】
【0002】
有限状態機械(FSM)は、ハードウェア又はソフトウェアで実装され得る計算モデルである。その名称が示すように、有限状態機械は、状態の有限の組を含み、有限状態機械は、任意の所与の時間にこれらの状態の厳密に1つの状態であり得る。有限状態機械は、状態の組における状態間の1つ又は複数の遷移も含む。有限状態機械は、例えば、条件が満たされることに応答して且つ/又は外部入力に応答して、ある状態から別の状態に幾つかの方法で遷移し得る。有限状態機械は、状態のリスト、状態間の遷移及び/又は現在の状態の指示を指定するデータを記憶する1つ又は複数のデータ構造を使用してメモリで表され得る。有限状態機械は、リアクティブシステムのモデリング、ハードウェアデジタルシステムの設計、アプリケーション挙動のモデリング、ソフトウェアエンジニアリング、ネットワークプロトコル、自然言語処理及びコンパイラを含む多くの様々な分野で使用されている。
【発明の概要】
【課題を解決するための手段】
【0003】
幾つかの実施形態は、データ処理システムにおけるワークフローを管理する方法に関し、データ処理システムは、(i)複数のデータオブジェクト及びその属性の値であって、複数のデータオブジェクトは、第1のデータオブジェクトを含み、第1のデータオブジェクトは、複数の値の何れか1つを有することができる第1の属性を含む複数の属性を有する、複数のデータオブジェクト及びその属性の値と、複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータとを記憶する少なくとも1つのデータストアと、(ii)第1のデータオブジェクトに関連付けられた第1の有限状態機械(FSM)を含むFSMの実行を管理し、且つ第1のデータオブジェクトの第1のワークフローを管理するためのワークフロー実行エンジンを含むワークフロー管理システムとを含む。本方法は、第1のFSMの現在のワークフロー状態が第1のワークフロー状態である場合、ワークフロー管理システムを使用して、少なくとも1つのデータストア中の第1の属性の現在の値にアクセスすることにより、第1のデータオブジェクトの第1の属性の現在の値を特定することと、第1の属性の現在の値及び複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータを使用して、第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のアクターが、第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、第1のアクターから且つGUIを通して、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することに応答して、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のFSMの現在のワークフロー状態を第2のワークフロー状態に更新することとを実行することを含む。
【0004】
幾つかの実施形態は、データ処理システムによって実行されると、データ処理システムに、データ処理システムにおけるワークフローを管理する方法を実行させるプロセッサ実行可能命令を記憶する少なくとも1つの非一時的コンピュータ可読記憶媒体に関し、データ処理システムは、(i)複数のデータオブジェクト及びその属性の値であって、複数のデータオブジェクトは、第1のデータオブジェクトを含み、第1のデータオブジェクトは、複数の値の何れか1つを有することができる第1の属性を含む複数の属性を有する、複数のデータオブジェクト及びその属性の値と、複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータとを記憶する少なくとも1つのデータストアと、(ii)第1のデータオブジェクトに関連付けられた第1の有限状態機械(FSM)を含むFSMの実行を管理し、且つ第1のデータオブジェクトの第1のワークフローを管理するためのワークフロー実行エンジンを含むワークフロー管理システムとを含み、方法は、第1のFSMの現在のワークフロー状態が第1のワークフロー状態である場合、ワークフロー管理システムを使用して、少なくとも1つのデータストア中の第1の属性の現在の値にアクセスすることにより、第1のデータオブジェクトの第1の属性の現在の値を特定することと、第1の属性の現在の値及び複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータを使用して、第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のアクターが、第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、第1のアクターから且つGUIを通して、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することに応答して、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のFSMの現在のワークフロー状態を第2のワークフロー状態に更新することとを実行することを含む。
【0005】
幾つかの実施形態は、データ処理システムであって、少なくとも1つのコンピュータハードウェアプロセッサと、複数のデータオブジェクト及びその属性の値であって、複数のデータオブジェクトは、第1のデータオブジェクトを含み、第1のデータオブジェクトは、複数の値の何れか1つを有することができる第1の属性を含む複数の属性を有する、複数のデータオブジェクト及びその属性の値と、複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータとを記憶する少なくとも1つのデータストアと、第1のデータオブジェクトに関連付けられた第1の有限状態機械(FSM)を含むFSMの実行を管理し、且つ第1のデータオブジェクトの第1のワークフローを管理するためのワークフロー実行エンジンを含むワークフロー管理システムとを含むデータ処理システムに関し、ワークフロー管理システムは、少なくとも1つのコンピュータハードウェアプロセッサを使用して、第1のFSMの現在のワークフロー状態が第1のワークフロー状態である場合、少なくとも1つのデータストア中の第1の属性の現在の値にアクセスすることにより、第1のデータオブジェクトの第1の属性の現在の値を特定することと、第1の属性の現在の値及び複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータを使用して、第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のアクターが、第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、第1のアクターから且つGUIを通して、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することに応答して、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のFSMの現在のワークフロー状態を第2のワークフロー状態に更新することとを含む方法を実行するように構成される。
【0006】
幾つかの実施形態は、第1の有限状態機械(FSM)を使用して、複数のデータオブジェクトにおける第1のデータオブジェクトのワークフローを管理するためのシステムに関し、第1のFSMは、第1及び第2のワークフロー状態を含むワークフロー状態の第1の組と、ワークフロー状態の第1の組間の遷移の第1の組とを有し、遷移の第1の組は、第1のワークフローにおけるタスクを表し、且つ第1のワークフローにおける第1のワークフロータスクを表す、第1の状態と第2の状態との間の第1の遷移を含む。少なくとも1つのコンピュータハードウェアプロセッサと、プロセッサ実行可能命令を記憶する少なくとも1つの非一時的コンピュータ可読記憶媒体とを含むシステムであり、プロセッサ実行可能命令は、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサに、複数のアクターの中から、且つ第1のデータオブジェクトの少なくとも1つの属性の少なくとも1つの値を使用して、第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のFSMが、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のアクターから、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することと、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のワークフローの現在のワークフロー状態が第2のワークフロー状態であることを示すように第1のFSMを更新することとを実行させる。
【0007】
幾つかの実施形態は、第1の有限状態機械(FSM)を使用して、複数のデータオブジェクトにおける第1のデータオブジェクトのワークフローを管理する方法に関し、第1のFSMは、第1及び第2のワークフロー状態を含むワークフロー状態の第1の組と、ワークフロー状態の第1の組間の遷移の第1の組とを有し、遷移の第1の組は、第1のワークフローにおけるタスクを表し、且つ第1のワークフローにおける第1のワークフロータスクを表す、第1の状態と第2の状態との間の第1の遷移を含む。本方法は、少なくとも1つのコンピュータハードウェアプロセッサを使用して、複数のアクターの中から、且つ第1のデータオブジェクトの少なくとも1つの属性の少なくとも1つの値を使用して、第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のFSMが、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のアクターから、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することと、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第2のワークフロー状態であることを示すように第1のFSMを更新することとを含む。
【0008】
幾つかの実施形態は、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサに、第1の有限状態機械(FSM)を使用して、複数のデータオブジェクトにおける第1のデータオブジェクトのワークフローを管理する方法を実行させるプロセッサ実行可能命令を記憶する少なくとも1つの非一時的コンピュータ可読記憶媒体に関し、第1のFSMは、第1及び第2のワークフロー状態を含むワークフロー状態の第1の組と、ワークフロー状態の第1の組間の遷移の第1の組とを有し、遷移の第1の組は、第1のワークフローにおけるタスクを表し、且つ第1のワークフローにおける第1のワークフロータスクを表す、第1の状態と第2の状態との間の第1の遷移を含む。方法は、複数のアクターの中から、且つ第1のデータオブジェクトの少なくとも1つの属性の少なくとも1つの値を使用して、第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のFSMが、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のアクターから、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することと、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第2のワークフロー状態であることを示すように第1のFSMを更新することとを含む。
【0009】
幾つかの実施形態は、第1のデータオブジェクトを含む複数のデータオブジェクトのワークフローを管理する方法を提供し、本方法は、少なくとも1つのコンピュータハードウェアプロセッサを使用して、第1の有限状態機械(FSM)の第1の仕様を使用して、データオブジェクトの第1の組の第1のワークフローを管理するための第1のFSMを生成することであって、第1の仕様は、第1及び第2のワークフロー状態を含むワークフロー状態の第1の組と、ワークフロー状態の第1の組間の遷移の第1の組とを示し、遷移の第1の組は、第1のワークフローにおけるタスクを表し、且つ第1のワークフローにおける第1のタスクを表す、第1の状態と第2の状態との間の第1の遷移を含む、生成することと、第1のFSMが、データオブジェクトの第1の組の第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のワークフロー状態と第2のワークフロー状態との間の第1の遷移に対応する第1のワークフロータスクを実行する権限を有する第1のアクターから、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することと、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のデータオブジェクトの第1の組の第1のワークフローの現在のワークフロー状態が第2のワークフロー状態であることを示すように第1のFSMを更新することとを実行することを含む。
【0010】
幾つかの実施形態は、プロセッサ実行可能命令を記憶する少なくとも1つの非一時的コンピュータ可読記憶媒体を提供し、プロセッサ実行可能命令は、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサに、複数のデータオブジェクトの第1のデータオブジェクトの第1のワークフローの第1の有限状態機械(FSM)を生成することと、第1のデータオブジェクトの少なくとも1つの属性の少なくとも1つの値を使用して、第1のワークフロー状態から第2のワークフロー状態への第1の遷移に関連付けられた第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のFSMが、第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のアクターが、第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、GUIを第1のアクターに提示することとを実行させる。
【0011】
幾つかの実施形態は、少なくとも1つのコンピュータハードウェアプロセッサを使用して、複数のデータオブジェクトの第1のデータオブジェクトの第1のワークフローの第1の有限状態機械(FSM)を生成することと、第1のデータオブジェクトの少なくとも1つの属性の少なくとも1つの値を使用して、第1のワークフロー状態から第2のワークフロー状態への第1の遷移に関連付けられた第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のFSMが、第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のアクターが、第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、GUIを第1のアクターに提示することとを実行することを含む方法を提供する。
【0012】
幾つかの実施形態は、システムであって、少なくとも1つのコンピュータハードウェアプロセッサと、プロセッサ実行可能命令を記憶する少なくとも1つの非一時的コンピュータ可読記憶媒体とを含み、プロセッサ実行可能命令は、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサに、複数のデータオブジェクトの第1のデータオブジェクトの第1のワークフローの第1の有限状態機械(FSM)を生成することと、第1のデータオブジェクトの少なくとも1つの属性の少なくとも1つの値を使用して、第1のワークフロー状態から第2のワークフロー状態への第1の遷移に関連付けられた第1のワークフロータスクを実行する権限を有する第1のアクターを識別することと、第1のFSMが、第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のアクターが、第1のワークフロータスクが実行されるべきであるという入力を提供することができるグラフィカルユーザインターフェース(GUI)を生成することと、GUIを第1のアクターに提示することとを実行させる、システムを提供する。
【0013】
幾つかの実施形態は、プロセッサ実行可能命令を記憶する少なくとも1つの非一時的コンピュータ可読記憶媒体を提供し、プロセッサ実行可能命令は、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサに、複数のデータオブジェクトの第1のデータオブジェクトの属性の値を変更するための第1のワークフローを管理するための第1のFSMを生成することであって、第1及び第2のワークフロー状態を含むワークフロー状態の第1の組と、ワークフロー状態の第1の組間の遷移の第1の組とを示す仕様を使用して実行され、遷移の第1の組は、第1のワークフローにおけるタスクを表し、且つ第1のワークフローにおける第1のタスクを表す、第1の状態と第2の状態との間の第1の遷移を含む、生成することと、第1のFSMが、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のワークフロー状態と第2のワークフロー状態との間の第1の遷移に対応する第1のワークフロータスクを実行する権限を有する第1のアクターから、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することと、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第2のワークフロー状態であることを示すように第1のFSMを更新することとを実行させる。
【0014】
幾つかの実施形態は、システムであって、少なくとも1つのコンピュータハードウェアプロセッサと、プロセッサ実行可能命令を記憶する少なくとも1つの非一時的コンピュータ可読記憶媒体とを含み、プロセッサ実行可能命令は、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサに、複数のデータオブジェクトの第1のデータオブジェクトの属性の値を変更するための第1のワークフローを管理するための第1のFSMを生成することであって、第1及び第2のワークフロー状態を含むワークフロー状態の第1の組と、ワークフロー状態の第1の組間の遷移の第1の組とを示す仕様を使用して実行され、遷移の第1の組は、第1のワークフローにおけるタスクを表し、且つ第1のワークフローにおける第1のタスクを表す、第1の状態と第2の状態との間の第1の遷移を含む、生成することと、第1のFSMが、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のワークフロー状態と第2のワークフロー状態との間の第1の遷移に対応する第1のワークフロータスクを実行する権限を有する第1のアクターから、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することと、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第2のワークフロー状態であることを示すように第1のFSMを更新することとを実行させる、システムを提供する。
【0015】
幾つかの実施形態は、少なくとも1つのコンピュータハードウェアプロセッサを使用して、複数のデータオブジェクトの第1のデータオブジェクトの属性の値を変更するための第1のワークフローを管理するための第1のFSMを生成することであって、第1及び第2のワークフロー状態を含むワークフロー状態の第1の組と、ワークフロー状態の第1の組間の遷移の第1の組とを示す仕様を使用して実行され、遷移の第1の組は、第1のワークフローにおけるタスクを表し、且つ第1のワークフローにおける第1のタスクを表す、第1の状態と第2の状態との間の第1の遷移を含む、生成することと、第1のFSMが、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第1のワークフロー状態であることを示す場合、第1のワークフロー状態と第2のワークフロー状態との間の第1の遷移に対応する第1のワークフロータスクを実行する権限を有する第1のアクターから、第1のワークフロータスクが実行されるべきであることを指定する入力を受信することと、第1のデータオブジェクトの第1のワークフロータスクを実行することと、第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第2のワークフロー状態であることを示すように第1のFSMを更新することとを実行することを含む方法を提供する。
【0016】
上記は、本発明の非限定的な概要であり、本発明は、添付の特許請求の範囲によって規定される。
【0017】
種々の態様及び実施形態について以下の図を参照して説明する。図が必ずしも一定の縮尺で描かれているわけではないことを理解されたい。複数の図に現れる特徴は、現れる全ての図で同じ又は同様の参照番号により示される。
【図面の簡単な説明】
【0018】
【
図1A】従来のワークフロー管理システムのブロック図である。
【
図1B】本明細書に記載される技術の幾つかの実施形態による例示的なデータ処理システム120及びデータ処理システム120と統合されたワークフロー管理システム130のブロック図である。
【
図1C】本明細書に記載される技術の幾つかの実施形態による、
図1Bに示されるデータ処理システム120の例示的な実施形態のブロック図である。
【
図1D】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトの階層についての情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別する一例を示す。
【
図1E】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトの階層についての情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別する一例を示す。
【
図1F】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトの階層についての情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別する一例を示す。
【
図1G】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトの階層についての情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別する一例を示す。
【
図1H】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトのグループについての情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別する一例を示す。
【
図1I】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトのグループについての情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別する一例を示す。
【
図2】本明細書に記載される技術の幾つかの実施形態による、有限状態機械を使用してデータオブジェクトのワークフローを管理する例示的なプロセス200のフローチャートである。
【
図3A】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトへの変更を管理するワークフローの例示的な有限状態機械300のステータス及び遷移を示す図である。
【
図3B】本明細書に記載される技術の幾つかの実施形態による、問題管理ワークフローの例示的な有限状態機械350の状態及び遷移を示す図である。
【
図3C】本明細書に記載される技術の幾つかの実施形態による、アクターが1つ又は複数のワークフロータスクを閲覧及び/又は実行することができる例示的なグラフィカルユーザインターフェース(GUI)380の図である。
【
図3D】本明細書に記載される技術の幾つかの実施形態による、アクターがデータオブジェクトの1つ又は複数のワークフロータスクを閲覧及び/又は実行することができる別のGUI390の図である。
【
図4A】本明細書に記載される技術の幾つかの実施形態による、ビジネス用語データオブジェクトを作成し、管理する例示的な有限状態機械400の図である。
【
図4B】本明細書に記載される技術の幾つかの実施形態による、
図4Aに示される有限状態機械400の部分を示す図である。
【
図4C】本明細書に記載される技術の幾つかの実施形態による、
図4Aに示される有限状態機械400の部分を示す図である。
【
図4D】本明細書に記載される技術の幾つかの実施形態による、
図4Aに示される有限状態機械400の部分を示す図である。
【
図5A】本明細書に記載される技術の幾つかの実施形態による、ビジネス用語データオブジェクトへの変更を管理する例示的な有限状態機械500の図であり、FSM500の状態の1つは、2次有限状態機械に関連付けられている。
【
図5B】本明細書に記載される技術の幾つかの実施形態による、ビジネス用語データオブジェクトへの変更を管理する1次FSMの状態及びビジネス用語データオブジェクトの属性への変更を管理する2次FSMの状態を示す例示的なGUI510の図である。
【
図5C】本明細書に記載される技術の幾つかの実施形態による、ビジネス用語データオブジェクトへの変更を行う2次FSM550を示す。
【
図6A】本明細書に記載される技術の幾つかの実施形態による、複数のデータオブジェクトに追加、変更及び/又は削除をインポートする有限状態機械600を示す。
【
図6B】本明細書に記載される技術の幾つかの実施形態による、複数のデータオブジェクトに追加、変更及び/又は削除を条件付きでインポートする有限状態機械650を示す。
【
図7A】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトを含む少なくとも1つのデータオブジェクト階層中の少なくとも1つの他のデータオブジェクトに指定された情報を使用したデータオブジェクトの1つ又は複数のワークフローアクターの識別を示す
図700である。
【
図7B】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトの分類属性の値に基づくデータオブジェクトの1つ又は複数のワークフローアクターの識別を示す
図705である。
【
図7C】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトの分類属性の値に基づくデータオブジェクトの1つ又は複数のワークフローアクターの識別を示す別の
図710である。
【
図7D】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトを含む複数のデータオブジェクト階層中の他のデータオブジェクトに指定された状態を使用したデータオブジェクトのワークフローアクターの識別を示す
図715である。
【
図7E】本明細書に記載される技術の幾つかの実施形態による、保留中の変更への承認に必要であるのが単一者のみであり得る保留中の変更の「シングル」意思決定構成を示す
図720である。
【
図7F】本明細書に記載される技術の幾つかの実施形態による、保留中の変更への承認に必要であるのが、識別されたワークフローアクターの過半数である保留中の変更の「過半数」意思決定構成を示す
図725である。
【
図7G】本明細書に記載される技術の幾つかの実施形態による、保留中の変更への承認に必要であるのが、識別されたワークフローアクターの全てである保留中の変更の「全員一致」意思決定構成を示す
図730である。
【
図7H】本明細書に記載される技術の幾つかの実施形態による、マルチオブジェクト階層に属するデータオブジェクトへの保留中の変更の意思決定構成を示し、各構成は、複数のオブジェクト階層のそれぞれに関して指定される。
【
図7I】本明細書に記載される技術の幾つかの実施形態による、マルチオブジェクト階層に属するデータオブジェクトへの保留中の変更の意思決定構成を示し、各構成は、複数のオブジェクト階層のそれぞれに関して指定される。
【
図7J】本明細書に記載される技術の幾つかの実施形態による、マルチオブジェクト階層に属するデータオブジェクトへの保留中の変更の意思決定構成を示し、各構成は、複数のオブジェクト階層のそれぞれに関して指定される。
【
図7K】本明細書に記載される技術の幾つかの実施形態による、マルチオブジェクト階層に属するデータオブジェクトへの保留中の変更の意思決定構成を示し、各構成は、複数のオブジェクト階層のそれぞれに関して指定される。
【
図7L】本明細書に記載される技術の幾つかの実施形態による、マルチオブジェクト階層に属するデータオブジェクトへの保留中の変更の意思決定構成を示し、各構成は、複数のオブジェクト階層のそれぞれに関して指定される。
【
図7M】本明細書に記載される技術の幾つかの実施形態による、マルチオブジェクト階層に属するデータオブジェクトへの保留中の変更の意思決定構成を示し、各構成は、複数のオブジェクト階層のそれぞれに関して指定される。
【
図8A】本明細書に記載される技術の幾つかの実施形態による複数のビジネス用語データオブジェクトを示すGUI800の図である。
【
図8B】本明細書に記載される技術の幾つかの実施形態による、データオブジェクト属性の値及び関連付けられた当事者を含むビジネス用語データオブジェクトについての情報を示すGUI810の図である。
【
図8C】本明細書に記載される技術の幾つかの実施形態による、ビジネス用語データオブジェクトの有限状態機械の現在のワークフロー状態を含むビジネス用語データオブジェクトについての情報を示すGUI820の図である。
【
図8D】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトの第1の属性の値へのアクターの変更が、(1)ビジネス用語データオブジェクトのワークフローを管理する有限状態機械の現在の状態への変更、及び(2)第1の属性の値の変更についての承認プロセスを管理する2次有限状態機械のインスタンス生成をどのように生じさせるかを示すGUI825の図である。
【
図8E】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトの第2の属性の値へのアクターの変更が、属性値の変更についての承認プロセスを管理する別の2次有限状態機械のインスタンス生成をどのように生じさせるかを示すGUI830の図である。
【
図8F】本明細書に記載される技術の幾つかの実施形態による、アクターがデータオブジェクトの属性の値への変更を提出した後のアクターの図を示すGUI835の図である。
【
図8G】本明細書に記載される技術の幾つかの実施形態による、データオブジェクト属性の値への提出された変更を承認するレビューアのリストを示すGUI837の図である。
【
図8H】本明細書に記載される技術の幾つかの実施形態による、レビューアのログイン、ワークキューのチェック及びアクターにより提出された変更の承認を示すGUI840の図である。
【
図8I】本明細書に記載される技術の幾つかの実施形態による、別のレビューアのログイン、ワークキューのチェック及びアクターにより提出された変更の承認を示すGUI845の図である。
【
図8J】本明細書に記載される技術の幾つかの実施形態による、レビューアの自身のワークキューにアクセスできるようにするGUI850の図を示す。
【
図8K】本明細書に記載される技術の幾つかの実施形態による、アクターの変更が承認されたか否かをアクターが調べられるようにするGUI855の図を示す。
【
図8L】本明細書に記載される技術の幾つかの実施形態による、別のレビューアのログイン、ワークキューのチェック及びアクターにより提出された変更の承認を示すGUI860の図である。
【
図8M】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトのある属性値への変更が承認されたが、データオブジェクトの別の属性値への変更の承認が保留中のままであることを示すGUI865の図である。
【
図8N】本明細書に記載される技術の幾つかの実施形態による、データオブジェクトの有限状態機械の現在の状態が「公開」状態に更新されたことを示すGUI870の図である。
【
図9A】本明細書に記載される技術の幾つかの実施形態による、有限状態機械仕様のリストを示すGUI910の図である。
【
図9B】本明細書に記載される技術の幾つかの実施形態による、
図8A~
図8Nの例におけるデータオブジェクトへの変更を管理する1次有限状対機械を示すGUI920の図である。
【
図9C】本明細書に記載される技術の幾つかの実施形態による、
図9Bに示される1次状態機械の状態表及び状態の1つの状態遷移を示すGUI930の図である。
【
図9D】本明細書に記載される技術の幾つかの実施形態による、
図9Bに示される1次状態機械の状態表及び状態の別の1つの状態遷移を示すGUI940の図である。
【
図10】本明細書に記載される技術の幾つかの実施形態による、
図8A~
図8Nの例におけるデータオブジェクトの属性への変更を管理する2次有限状態機械及び関連付けられた状態表を示すGUI1000の図である。
【
図11】本明細書に記載される技術の幾つかの実施形態を実施するうえで使用し得る例示的な計算システム環境のブロック図である。
【発明を実施するための形態】
【0019】
本明細書に記載される技術の態様は、データ処理システムにより管理されるデータオブジェクトのワークフローを実施する従来の技法を改良することにより、データ処理システムの速度、スループット及び精度を上げることに関する。データ処理システムは、数千、数百万又は数十億ものデータオブジェクトを管理し得る。本明細書に記載される技法は、従来のワークフロー実施技法を使用して、ワークフローを実施するデータ処理システムで生じるエラー及び使用される計算リソースを低減するようなそのようなデータオブジェクトのワークフローの効率的な実施を可能にする。本発明者らにより開発された技法は、誰がデータを編集でき、いつ誰がデータにアクセスでき、誰が保留中の変更を見ることができ、誰がより幅広い観衆に向けたデータの流布を承認することができ、誰が変更の通知を得ることができ(例えば、人々及びシステム)、誰がデータオブジェクトのワークフロー状態を進めることができるかに対する精密で簡潔な制御をデータ処理システムユーザに提供する。
【0020】
幾つかの実施形態では、データオブジェクトのワークフローは、データオブジェクトに関連するワークフロータスクの組を含み得、タスクの組における各タスクは、自動的に又は1人若しくは複数のアクターによって提供される入力に応答してデータ処理システムによって実行される。例えば、データオブジェクトのワークフローは、データオブジェクトの属性の値を変更するワークフローであり得る。そのようなワークフローでのタスクは、提案された変更を属性値に対して行うこと、提案された変更をレビューに提出すること、提案された変更をレビューすること及び提案された変更を承認又は拒絶することを含み得る。
図3A及び
図4A~
図4Dへの参照を含むそのようなワークフローの例が本明細書に提供される。別の例として、データオブジェクトのワークフローは、データオブジェクトにより表される問題(例えば、データエラー)を解決するワークフローであり得る。そのようなワークフローにおけるタスクは、問題を表すデータオブジェクトを編集すること、問題を提出すること、問題が解決されたことを示すこと、問題が解決されたか否かを検証することを含み得る。
図3Bへの参照を含むそのようなワークフローの説明のための例が本明細書に提供される。
【0021】
幾つかの実施形態では、ワークフロー中の1つ又は複数のワークフロータスクは、1人又は複数のアクターによって実行され得る。アクターは、ワークフロー中のワークフロータスクの実行を促進するため(例えば、実行を開始するため、実行を開始し完了するため)に1つ又は複数の動作を実行し得る。例えば、あるアクターは、データオブジェクトを編集し、変更をレビューに提出するワークフロータスクを実行し得る一方、別の1人又は複数のアクターは、変更をレビューし、変更を承認すべきか又は拒絶すべきかを判断し得る。アクターは、データ処理システムにより管理される1つ又は複数のデータオブジェクトに関する1つ又は複数の動作を実行する権限を有するデータ処理システムのユーザであり得る。
【0022】
データ処理システムにおいてワークフローを実施する従来の手法を改良し得ることを本発明者らは認識した。例えば、ワークフローを指定する従来の一手法は、ビジネスプロセスモデル及び表記(BPMN)表現と呼ばれるグラフィカル表現を使用している。しかしながら、BPMNで指定されたワークフローは、仕様にすぎない - BPMNは、データ処理システムがBPMNワークフローを実行するために使用することができる実行可能コードを含まない。更に、BPMNは、関係データベースにおいて持続するデータオブジェクトの可視性又は編集可能性を制御するいかなる機能も提供しない。BPMNワークフローを実施するソフトウェアツール(例えば、CAMUNDA BPMN)があるが、そのようなソフトウェアツールでは、BPMNワークフローを実施する低水準コードを記述する必要があり、特にデータ処理システムにより管理されている多数のデータオブジェクトに対して複数のワークフローを指定する必要がある場合、それは、時間が掛かり、エラーを生じやすく、最終的に非現実的である。
【0023】
更に、ワークフローを実施する従来のソフトウェアツールは、何れのアクターが何れのワークフロータスクを実行する権限を有しているかをデータオブジェクトレベルでカスタマイズする方法を提供しない。むしろ、従来の手法は、アクターをワークフロータスクレベルで識別することを含む。例えば、本明細書に記載される技法と異なり、BPMNは、データオブジェクト属性及び/又は関係に基づいてアクターを識別し、変更するメカニズムを提供しない。
【0024】
従来のワークフロー管理システムは、データ処理システムにおいてデータオブジェクトのワークフローを管理するために使用されることもあるが、そのような従来のワークフロー管理システムがデータ処理システムと統合されないことも本発明者らは認識した。次に説明するように、そのような開発には、実施の同期がないこと、実施の複雑性及びメンテナンスを含めて幾つかの欠点がある。更に、そのような開発は、通常、統合手法が提供することができる、ビジネスユーザに提示することができる豊富なワークフロー又は情報を提供しない。
【0025】
考えられる例示的な状況を
図1Aの潜在的な計算環境100に示し、
図1Aは、ネットワーク106(例えば、インターネット)を通してデータ処理システム104に通信可能に結合された従来のワークフロー管理システム102を示す。データ処理システム104は、複数のデータオブジェクトを記憶するデータストア106と、データストア106におけるデータオブジェクトの任意のワークフローを実施するために使用される情報を指定するビジネスルール108とを含む。例えば、ビジネスルール108は、何れのアクターがデータストア106における種々のデータオブジェクトの許可を作成、読み出し、更新及び/又は削除したか及び何れのアクターが、他のアクターにより作成されたデータオブジェクトへの更新をレビューする権限を有しているかを指定する(例えば、アクター115の中から)ことにより、アクター許可を指定し得る。ビジネスルール108は、通常、ビジネスユーザ(例えば、ビジネスユーザ107)により指定される。
【0026】
ワークフロー管理システム102は、ワークフロールール103を含み、ワークフロールール103は、データオブジェクトを含むワークフローが外部ワークフロー管理システム102によってどのように実施されるべきかを指定する。例えば、ワークフロールール103は、ワークフロー中のタスクの順序及び何れのアクターがこれらのタスクを実行する権限を有するかをワークフローアクター115の中から指定し得る。ワークフロールール103は、開発者105のような1人又は複数のソフトウェア開発者により低水準ソフトウェアコードを使用して(例えば、Camunda BPMNを使用して)実施される。
【0027】
従来のワークフロー管理システム102は、データ処理システム104と統合されないため、これらの2つの別個のシステムは、同期する必要がある。考えられる1つの同期手法は、WMS102がデータプル要求109aを介してデータへの更新についてデータ処理システム104を繰り返しポーリングする「データプル」手法である。考えられる別の同期手法は、データ処理システム104がデータ更新109bをWMS102にプッシュする「データプッシュ」手法である。しかしながら、これらの考えられる両方の手法とも大きい欠点を有し、許容可能なレベルの同期を提供することができないのみならず、ワークフローエラーを生じさせることもある。
【0028】
例えば、データプル手法では、データ処理システムは、値を更新する必要がある多数のデータオブジェクト(例えば、数千/数百万)を管理し得、そのような更新を収集し、ネットワークを介してWMS102にそのような更新を通信するのに時間が掛かるため、データ更新の受信に待ち時間がある。更に、ワークフロールール103がデータオブジェクトの値に依存する場合、それらの値への更新のいかなる遅延も、WMS102がワークフローを不正確に実施する(例えば、アクターが、実行する権限を有さないワークフロータスクを実行することを許可することにより)ことを意味し、これは、例えば、データガバナンス等の多くの用途で許容不可能である。
【0029】
他方では、データプッシュ手法では、データ処理システム104は、ワークフローの実施にワークフロールール103により何れの情報が使用されているかに認識せず、何れのデータをWMS102に提供するか又はこれらのデータをいつ提供するかを知らない(また、可能な全てのデータ変更を提供することは、各更新のコピーの送信を意味するため、非現実的である)。ワークフロールール103は、ワークフロー管理システム102により管理されるため、データ処理システム104は、ワークフロールール103へのアクセスを有さず、ワークフロールール103について推測するいかなる機能又はメカニズムも有さず、プッシュ更新の駆動に使用することができない。例えば、データストア106中のデータオブジェクトの1つが更新される場合、データ処理システム104は、そのデータオブジェクトの変更が特定のワークフロールール103をトリガーし得る(又はそれがどのように実行されるかに影響する)か否かを知る方法がなく、したがって、データ処理システムは、ワークフロー管理システム102にその変更の通知を「プッシュ」すべきか否かを判断する方法がない。その結果、WMS102は、ワークフローを正確に実施するのに必要とする情報をデータ処理システム104から受信しないことがあるか、又は大半がワークフロー管理と無関係であり得る可能な全てのデータ変更で氾濫し得る。
【0030】
同期がないことの他に、
図1Aに示される考えられるシステムの別の欠点は、そのようなシステムを展開し、更新するのに必要な時間量及び労力量である。例えば、ビジネスルール108が変わる場合、ワークフロールール103を更新する必要があり得、これには、ソフトウェア開発者107からの時間を必要とする。別の例として、ワークフロールール103への変更がある場合、データ処理システム104は、データ処理システム104がワークフローの実施にWMS102による現在必要とされているいかなるデータでも(ワークフロールール103への更新の結果として)WMS102にプッシュすることを確実にするために、更新する必要がある(恐らく1人又は複数のソフトウェア開発者の関与が伴う)。これは、特にワークフロールール103及び/又はビジネスルール108への変更間の時間が、そのような変更を実施するコードを記述し、テストし、展開するのに掛かる時間よりもはるかに短い場合、コストが掛かると共に、許容不可能な時間遅延をもたらす。WMS102におけるワークフロー論理と、データ処理システム104におけるデータ「プッシュ」論理とのいかなる不一致も、誤ったワークフロー管理に即座に繋がる。そのようなシステムの脆さは、明らかに実施において許容可能でない。
【0031】
ワークフローを実施する従来の技法の上記欠点に対処するために、データ処理システムに記憶されたデータオブジェクトの豊富なワークフローを形式的に管理するワークフロー管理システムの新しい手法を本発明者らは開発した。ワークフロー管理システムがデータ処理システムと別個である(例えば、
図1Aを参照して上述したように)従来の手法と異なり、本発明者らにより開発されたワークフロー管理システムは、データ処理システムと統合され、上述した従来の手法の複数の欠点を回避する。本発明者らにより開発されたワークフロー管理システムは、データ処理システムにより管理されるデータオブジェクトに直接アクセスすることができるのみならず(上述した同期及び待ち時間の問題を回避する)、データオブジェクト間の関係を指定するメタデータにも直接アクセスすることができ、本明細書に記載されるように、これを利用して、継承及び/又はグループメンバシップを使用してデータオブジェクトに対して授権されたアクターを効率的に識別することができる。
【0032】
本発明者らにより開発されたワークフロー管理システムは、有限状態機械を使用して、データ処理システムにより管理されるデータオブジェクトのワークフローを実施する。幾つかの実施形態では、データオブジェクトのワークフローは、有限状態機械により表され得、有限状態機械の状態は、ワークフローにおけるデータオブジェクトのワークフロー状態に対応し、有限状態機械の遷移は、ワークフロータスクに対応する。幾つかの実施形態では、特定のデータオブジェクトのワークフローを実施するために、そのデータオブジェクトの有限状態機械のインスタンスを作成し得る。ワークフロータスクが実行されると、FSMインスタンスの状態は、データオブジェクトの現在の状態を示すように更新される。データオブジェクトに対するワークフローが完了した後、そのワークフローの管理に使用されたFSMのインスタンスは、削除され得、且つ/又は続く変更のワークフローを開始し得る(例えば、1人又は複数のアクターに公開されたドキュメントを改訂する許可を与える新しいワークフローを開始することにより、ドキュメントを作成し、公開するワークフローを完了し得る)。
【0033】
有限状態機械を使用してデータオブジェクトレベルでワークフローを実施することで、他の従来のワークフロー実施技法の場合のように、低水準コードをアクターが記述する必要性がなくなることを本発明者らは認識した。代わりに、アクターは、本明細書に記載されるように状態、遷移及び関連するパラメータを指定することにより有限状態機械を構成するのみでよい。有限状態機械手法は、アクターが任意の適したプログラムコードを記述して任意のワークフローを実施する場合よりも制約が多い(特に任意の所与の時間にFSMがある状態である一方、BPMN及び関連する解決策ではワークフローが一度に複数の状態であり得る)が、FSM手法により課される構造及び制約は、新しいワークフローを指定するのに必要な時間量及び新しいワークフローにおけるエラー数を低減し、且つデータオブジェクトを管理するデータ処理システム及びデータオブジェクトのワークフローの実行の精度及び信頼性を改善する。
【0034】
本明細書に記載される本発明者らにより開発された技法は、BPMN等の従来のワークフローモデリング手法と比べて複数の他の利点も提供する。例えば、本明細書に記載される技法は、データオブジェクトの編集可能性、可視性、通知及びライフサイクルを表現する簡潔な構成/制御手段を提供する。別の例として、本明細書に記載される技法は、データオブジェクトの属性及び/又は複数のデータオブジェクト間の関係(例えば、直接的な関係、リレーショナル関係及び/又は再帰的関係を含む)に基づいてアクターを識別し、変更するメカニズムを提供する。別の例として、BPMNは、いかなる種類のユーザインターフェース(又は1つのアプリケーションでさえ)もとらず、本明細書に記載される技法は、ワークフローアクターに提示されているユーザインターフェースで生じるべきことをワークフローが表現できるようにすることにより、BPMNを改良する。これらの改良は、ワークフローについてBPMNよりも簡潔でよりエラーを受けにくく、より早く市場に出せ、より効率的な実施を可能にする。
【0035】
幾つかの実施形態では、データ処理システムは、データオブジェクトがデータ処理システムの1人又は複数のアクターにデータオブジェクトのワークフロータスクを実行できるようにするようにワークフローを管理するために、FSMインスタンスの状態を使用し得る。例えば、データ処理システムは、FSMの状態を使用して、何れの動作をデータオブジェクトに対して実行し得るかを特定し(例えば、現在のワークフロー状態からの遷移に基づいて)、1人又は複数のアクターがそのような動作を実行できるようにし得る。例えば、データ処理システムは、ワークフロー動作を実行し、且つ/又はワークフロー動作が実行されるべきであることを示す入力をアクターが提供することができるインターフェース(例えば、グラフィカルユーザインターフェース)をアクターに提示し得ることをアクターに通知し得る。
【0036】
幾つかの実施形態では、データ処理システムは、複数の有限状態機械を使用して、1つのデータオブジェクトのワークフローを管理し得る。例えば、ワークフローがデータオブジェクトへの複数の異なる変更の作成を含む場合、専用有限状態機械は、各変更の承認プロセスを管理するようにインスタンス生成し得る。複数の有限状態機械を使用して、1つのデータオブジェクトへの様々な変更を管理することで、そのような変更を行い、承認するワークフローは、並列に互いから独立して進むことができる。そのような並列化は、データ処理システムの効率を更に改善する。これは、
図5A~
図5Cの参照を含め、本明細書により詳細に説明される。加えて、各変更は、各有限状態機械により管理され得るため、そのような並列化は、管理者又は他のアクターがデータ処理システムと対話して、互いに対して並列に複数の変更を作成/変更に対して作業することをより容易にする。したがって、1つ又は複数の並列ワークフローは、データオブジェクトの1つ又は複数の各属性に対してインスタンス生成し得る。並列ワークフローの状態は、1次ワークフローに影響し得る(例えば、1次ワークフローの状態は、全ての属性変更が完了した後、並列ワークフローの完了に応答して変更され得る)。
【0037】
データオブジェクト毎のレベルで有限状態機械を使用してワークフローを管理することで、データ処理システムが、データオブジェクト毎のレベルで種々のワークフロータスクを実行する権限を有するアクターを識別することができることを本発明者らは更に認識した。したがって、幾つかの実施形態では、データ処理システムは、データオブジェクトに関連付けられた情報に基づいて、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別し得る。例えば、幾つかの実施形態では、データ処理システムは、データオブジェクトの1つ又は複数の属性の1つ又は複数の値に基づいて、データオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを識別し得る。
【0038】
幾つかの実施形態では、1つ又は複数の有限状態機械を使用して、特定のデータオブジェクトの1つ又は複数のライフサイクルステージに関連付けられた1つ又は複数のワークフローを管理し得る。例えば、データオブジェクトのライフサイクルは、データオブジェクトの作成、データオブジェクトの改訂、データオブジェクトの公開、データオブジェクトの承認、データオブジェクトへの変更の承認及びデータオブジェクトへの変更に対するコラボレーション等のステージを含み得る。各ライフサイクルステージは、本明細書に記載される技術の幾つかの実施形態により有限状態機械を使用することにより管理されるワークフローに関連付けられ得る。
【0039】
本明細書に記載される幾つかの実施形態は、データ処理システムにより管理されるデータオブジェクトのワークフローを実施する従来の技法で本発明者らが認識した上記問題の全てに対処する。しかしながら、本明細書に記載されるあらゆる実施形態がこれらの問題の全てに対処するわけではなく、幾つかの実施形態は、問題の何れかに対処しないことがある。したがって、本明細書に記載される技術の実施形態は、データ処理システムにより管理されるデータオブジェクトのワークフローを実施する従来の技法の上記問題の全て又は何れかに対処することに限定されないことを理解されたい。
【0040】
幾つかの実施形態では、データ処理システムにより管理されるデータオブジェクトは、データと、それぞれが単一値又は複数値であり得る1つ又は複数の属性とを含み得る。データオブジェクト中のデータは、例えば、テキスト、データ記録及び/又は1つ又は複数の英数字値等の内容を含み得る。一例として、データオブジェクトは、データ記録(例えば、トランザクション)を表し得、データオブジェクト中のデータは、データ記録のフィールドに記憶し得る。別の例として、データオブジェクトは、ファイルを表し得る。別の例として、データオブジェクトは、ドキュメントを表し得る。この例では、データオブジェクト中のデータは、ドキュメント中のテキストを含み得る。別の例として、データオブジェクトは、組織のビジネス用語集中のビジネス用語を表し得る(例えば、「信用リスク」、「会計公開」等)。この例では、データオブジェクト中のデータは、ビジネス用語の定義を指定するテキストを含み得る。別の例として、データオブジェクトは、解決すべき問題を表し得る(例えば、データエラー、パスワードリセット要求、購入注文、請求書又は他のドキュメントに伴う問題)。この例では、データオブジェクト中のデータは、問題を記述するテキストを含み得る。
【0041】
幾つかの実施形態では、データオブジェクトは、1つ又は複数の属性を有し得る。属性の値は、データオブジェクトについての情報を提供し得る。このため、属性値は、メタデータと見なされ得る。一例として、データオブジェクトは、その名称及び/又は他の識別子を示す属性を有し得る。別の例として、データオブジェクトは、データオブジェクトの意味論的意味を指定する定義属性を有し得る。別の例として、データオブジェクトは、データオブジェクトの1つ又は複数の階層の一部であり得、データオブジェクトが属する1つ又は複数の階層を示す属性を有し得る。別の例として、データオブジェクトは、限定ではなく、例として、データオブジェクトが属する1つ又は複数のガバナンスグループのリストを指定し得るガバナンスグループ分類属性、データオブジェクト中のデータの秘密レベルを示し得る秘密度分類属性(例えば「内部」、「公開」、「機密」、「高機密」)及びデータオブジェクト中のデータの不適切な使用、アクセス及び/又は変更から生じる有害レベル(例えば、「レベル1」、「レベル2」等)を示す個人識別可能情報(「PII」)分類属性を含む1つ又は複数の分類属性を有し得る。別の例として、データオブジェクトは、データオブジェクトに対して1つ又は複数の動作(例えば、作成、読み取り、アクセス、更新、削除)を実行する権限を有する1人又は複数のアクターを指定する属性を有し得る。別の例として、データオブジェクトは、データオブジェクトに関連付けられた別の値の有効値を示す(範囲、リストを介して)属性を有し得る。属性のこれらの例は、例示であり、非限定的であり、属性の追加の例が本明細書において提供される。
【0042】
幾つかの実施形態は、データ処理システムにおいてワークフローを管理する方法を提供し、データ処理システムは、(i)少なくとも1つのデータストアであって、複数のデータオブジェクト及びその属性の値であって、複数のデータオブジェクトは、複数の値の何れか1つを有することができる第1の属性を含む複数の属性を有する第1のデータオブジェクトを含む、複数のデータオブジェクト及びその属性の値と、複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータとを記憶する少なくとも1つのデータストアと、(ii)ワークフロー管理システムであって、第1のデータオブジェクトに関連付けられた第1の有限状態機械(FSM)を含むFSMの実行を管理し、且つ第1のデータオブジェクトの第1のワークフローを管理するためのワークフロー実行エンジンを含むワークフロー管理システムとを含む。方法は、第1のFSMの現在のワークフロー状態が第1のワークフロー状態(例えば、
図3AにおけるFSM300の「承認保留中」状態306)である場合、ワークフロー管理システムを使用して、(A)少なくとも1つのデータストア中の第1の属性の現在の値にアクセスすることにより、第1のデータオブジェクトの第1の属性の現在の値を特定し(このように、潜在的に陳腐化した前にキャッシュされた値ではなく、現在の値が使用される)、(B)第1の属性の現在の値及び複数のデータオブジェクトの少なくとも幾つかの間の関係を指定するメタデータを使用して、第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別し、(C)第1のワークフロータスクを実行すべきであるという入力を第1のアクターが提供することができるグラフィカルユーザインターフェース(GUI)を生成し、(D)第1のアクターからGUIを通して、第1のワークフロータスクを実行すべきであることを示す入力を受信することに応答して、(1)第1のデータオブジェクトの第1のワークフロータスク(例えば、変更の拒絶)を実行し、(2)第1のFSMの現在のワークフロー状態を第2のワークフロー状態に更新(例えば、現在のワークフロー状態を
図3Aの「ドラフト」状態304に変更)することを実行することを含み得る。
【0043】
幾つかの実施形態では、複数のデータオブジェクトにおけるデータオブジェクトは、1つ又は複数の階層に編成され、メタデータは、1つ又は複数の階層を指定し、第1の属性の現在の値は、第1のデータオブジェクトが属する、1つ又は複数の階層の第1の階層を示す。したがって、幾つかの実施形態では、第1のアクターを識別することは、複数のデータオブジェクト中の第2のデータオブジェクトの第1のワークフロータスクを実行する権限を有するアクターとして第1のアクターを識別することを含み、第2のデータオブジェクトは、第1の階層に従って(例えば、第1のデータオブジェクトの祖先、子孫又は兄弟の)第1のデータオブジェクトに関連する。
【0044】
幾つかの実施形態は、第1のFSMを使用して複数のデータオブジェクト中の第1のデータオブジェクトのワークフローを管理するデータ処理システムを提供し、第1のFSMは、第1及び第2のワークフロー状態を含むワークフロー状態の第1の組と、ワークフロー状態の第1の組間の遷移の第1の組とを有し、遷移の第1の組は、第1のワークフローにおけるタスクを表し、且つ第1のワークフローにおける第1のワークフロータスクを表す、第1の状態と第2の状態との間の第1の遷移を含む。幾つかの実施形態では、システムは、(1)複数のアクターの中から、第1のデータオブジェクトの属性の値を使用して、第1のデータオブジェクトの第1のワークフロータスクを実行する権限を有する第1のアクターを識別し、(2)第1のデータオブジェクトの第1のワークフローの現在のワークフロー状態が第1のワークフロー状態(例えば、
図3Aの「承認保留中」状態306)であることを第1のFSMが示す場合、(a)第1のアクターから、第1のワークフロータスクを実行すべきことを指定する入力を受信(例えば、レビューアから変更を拒絶する入力を受信)し、(b)第1のデータオブジェクトの第1のワークフロータスクを実行(例えば、変更を拒絶)し、(c)第1のワークフローの現在のワークフロー状態が第2のワークフロー状態であることを示すように第1のFSMを更新(例えば、現在のワークフロー状態を
図3Aの「ドラフト」状態304に変更)するようにプログラムされる。
【0045】
データ処理システムは、多くのタイプの何れかのデータオブジェクト属性の値を使用して、ワークフロータスクを実行する権限を有するアクターを識別し得る。例えば、幾つかの実施形態では、属性は、値がデータオブジェクトの分類を示す分類属性であり得、アクターは、分類属性の値に基づいて識別され得る。分類属性の例には、限定ではなく、ガバナンスグループ分類、秘密度分類及び個人識別可能情報分類がある。例えば、幾つかの実施形態では、秘密度分類が「公開」である場合、データオブジェクトへのワークフロー状態を実行する権限を有するものとして1人のアクターが識別され得る一方、秘密度分類が「機密」である場合、別のデータオブジェクトに対して同じワークフロータスクを実行する権限を有するものとして別のアクターが識別され得る。
【0046】
別の例として、幾つかの実施形態では、複数のオブジェクトにおけるデータオブジェクトは、1つ又は複数の階層に編成され得、属性は、データオブジェクトが属する階層の1つ又は複数を示し得る。幾つかのそのような実施形態では、データ処理システムは、ワークフロータスク「T」をデータオブジェクトAに対して実行する授権者としてアクターを、同じ階層中のデータオブジェクト「A」に関連する少なくとも1つの他のデータオブジェクト「B」に指定されたアクターであるとして識別し得る(例えば、データオブジェクト「B」は、階層中のデータオブジェクト「A」の兄弟、親、祖父母又は他の祖先であり得る)。幾つかの実施形態では、データオブジェクト「B」に指定されたアクターは、ワークフロータスク「T」をデータオブジェクト「B」に対して実行する授権者であるアクターであり得るか、又は任意の他の適したアクターであり得、本明細書に記載される技術の態様は、これに関して限定されない。これについては、
図1D~
図1Gの参照を含めて本明細書で説明する。
【0047】
幾つかの実施形態では、データ処理システムは、属性の値を使用して、データオブジェクトの作成、読み取り、更新及び/又は削除(CRUD)許可を有するアクターを識別し得る。そのようなアクターが識別されると、データ処理システムは、第1のデータオブジェクトに対するワークフローへの第1のワークフロータスクに関連する入力をアクターが入力できるようにするインターフェース(例えば、グラフィカルユーザインターフェース)へのアクセスをこのアクターに提供し得る。データ処理システムは、そのようなGUIを生成し、アクターに提示し得る。また、アクターは、GUIを使用して、第1のワークフロータスクを実行すべきであることを指定する入力をデータ処理システムに提供し得る(例えば、データオブジェクトへの変更をレビューのために提出すべきであることを示す、決定を提供する等)。データ処理システムは、GUIを通して入力を受信し、ワークフロータスクを第1のデータオブジェクトに対して実行し、第1のデータオブジェクトの現在のワークフロー状態が変更されたことを示すように、第1のデータオブジェクトへのワークフローを管理する有限状態機械を更新し得る。
【0048】
幾つかの実施形態では、データ処理システムは、有限状態機械の仕様からデータオブジェクトのワークフローを管理する有限状態機械を生成するように構成される。仕様は、FSMの状態及び遷移を示し得、任意の適したフォーマット及び/又は任意の適したデータ構造で記憶され得、本明細書に記載される技術の態様は、これに関して限定されない。
【0049】
幾つかの実施形態では、データ処理システムは、(1)ワークフローの有限状態機械のインスタンスを使用して、データオブジェクトのワークフロー、及び(2)有限状態機械の別のインスタンスを使用して、異なるデータオブジェクトの同じワークフローを実施し得る。
【0050】
幾つかの実施形態では、データ処理システムは、1つのFSMを使用してデータオブジェクトのワークフローを管理し、別のFSMを使用して、オブジェクトの属性の値への変更を承認するワークフローを管理し得る。この状況では、データオブジェクトのワークフローを管理するFSMは、「1次」FSMと呼ぶことができる一方、属性値への変更を承認するワークフローを管理するFSMは、「2次」FSMと呼ぶことができる。1次及び2次有限状態機械については、
図5A~
図5Cへの参照を含めて本明細書で説明される。
【0051】
幾つかの実施形態では、データ処理システムは、データオブジェクトの有限状態機械の現在のワークフロー状態を示す1つ又は複数のグラフィカルユーザインターフェースを生成し得る。この例については、
図8A~
図8Nへの参照を含めて本明細書で説明される。
【0052】
幾つかの実施形態では、ワークフロータスクは、1人又は複数のアクターによりなされる決定を含み得る。例えば、1人又は複数のレビューアは、データオブジェクトへの保留中の変更が承認されるべきか又は拒絶されるべきかを決定し得る。別の例として、1人又は複数のレビューアは、データオブジェクトが削除されるべきであるか否かを決定し得る。更に別の例として、1人又は複数のレビューアは、保留中の問題が解決されるべきか否かを決定し得る。幾つかの実施形態では、データ処理システムは、投票方式を利用して、複数のアクターによって提供される入力に基づいて決定を決め得る。例えば、データ処理システムは、複数のアクターの何れか1人が保留中の変更の承認を提供すると直ちに、そのような承認を決定し得る。別の例として、データ処理システムは、複数のアクターの過半数又は全てが保留中の変更への承認を提供する場合のみ、そのような承認を決定し得る。
【0053】
先に紹介し、以下に更に詳細に考察する技法が多くの方法の何れかで実施され得、本技法がいかなる特定の実施様式にも限定されないことを理解されたい。実施の詳細の例は、例示的なのみを目的として本明細書に提供される。更に、本明細書に開示される技法は、個々に又は任意の適した組合せで使用され得、本明細書に記載される技術の態様は、いかなる特定の技法又は技法の組合せの仕様にも限定されない。
【0054】
例示的なデータ処理システム
図1Bは、本明細書に記載される技術の幾つかの実施形態による、例示的なデータ処理システム120及びデータ処理システム120と統合されたワークフロー管理システム130のブロック図である。
図1Bに示されるように、データ処理システム120は、ワークフロー管理システム(WMS)130を含む。また、ワークフロー管理システム130は、構成要素の中でも特に、(1)構成モジュール131、(2)ワークフロー実行エンジン133、及び(3)データオブジェクト142を記憶するデータ層140を含む。
【0055】
ワークフロー管理システム130は、データオブジェクト142への変更を行うワークフローのインスタンス生成及び管理に関連する種々の機能を実行するように構成される。幾つかの実施形態では、WMS130は、データオブジェクト142のそれぞれへの変更を行う複数のワークフローを同時に管理するように構成される。このために、WMS130は、任意の1つのデータオブジェクトについて、そのデータオブジェクトへの変更を行うワークフローを管理する各有限状態機械をインスタンス生成するように構成され得る。このようにして、WMS130が、N個の異なるデータオブジェクト(データオブジェクト142の)への変更を行うワークフローを管理している場合、WMS130は、そうするためにN個の有限状態機械インスタンスをそれぞれ使用している(ここで、Nは、1よりも大きい整数である)。したがって、WMS130は、N個の有限状態機械についての情報をデータ処理システム120のメモリに維持するように構成され得る。
【0056】
データ処理システム120は、幾つかの実施形態では、数千、数万、数十万、数百万、数千万又は数億のデータオブジェクトを管理するように構成され得る。また、WMS130は、任意の適した数のこれらのデータオブジェクトに対して有限状態機械を適宜インスタンス生成し、維持するように構成され得る。例えば、WMS130は、各データオブジェクトの変更ワークフローを管理する数百、数千、数万、数十万、数百万、数千万又は数億の有限状態機械インスタンスを維持するように構成され得る。
【0057】
幾つかの実施形態では、従来のワークフロー管理システムで生じる同期問題を回避するために、WMS130は、データオブジェクト142への変更を行えるようにし得る唯一のシステムであり得る。したがって、幾つかの実施形態では、データオブジェクト142の少なくとも幾つかへの変更は、それらのオブジェクトの変更ワークフローを管理するFSMによって許可された動作を通してのみ行われ得る。更に、動作は、動作の実行に関してWMS130により授権されたアクターのみが実行し得る。このようにして、WMS130は、幾つかの実施形態では、データオブジェクト142の少なくとも幾つかへの変更を実施できるようにする唯一のインターフェースを提供し得る。このために、WMS130は、ワークフローにより許可された動作のみを実行するGUIを生成し得、動作を実行する権限を有するアクターのみにGUIを提示し得、データオブジェクトにアクセスする他のメカニズム(例えば、統合ウェブサービスを介して)は、WMS130によりブロックされ得る。
【0058】
図1Bの図示の実施形態では、WMS130は、データ層140に記憶された任意のデータにアクセスすることができる。例えば、WMS130は、データ層140中のデータが記憶された1つ又は複数のメモリにアクセスし得る(例えば、直接アクセス)。
【0059】
例えば、WMS130は、データ層140に維持されたデータオブジェクト142にアクセスすることができる。例えば、ワークフロー管理システム130は、例として、データオブジェクト142の何れか1つの任意の属性の現在の値を含むデータオブジェクト142の何れかに記憶された任意のデータにアクセスすることができる。データオブジェクト属性の例は、本明細書に提供され、限定ではなく、値が、特定のデータオブジェクトについて、特定のデータオブジェクトが属する1つ又は複数のグループ(例えば、データオブジェクトの階層、同じ分類を有するオブジェクトのグループ又はデータオブジェクトの任意の他の適したグループ)を識別する属性を含む。
【0060】
別の例として、WMS130は、データオブジェクト142についてのメタデータにアクセスすることができる。幾つかの実施形態では、WMS130は、データオブジェクト142の少なくとも幾つかの間の関係を指定するメタデータにアクセスすることができる。例えば、幾つかの実施形態では、データオブジェクト142の少なくとも幾つかは、1つ又は複数の階層に編成され得、WMS130は、1つ又は複数の階層を指定するメタデータにアクセスし得る。このようにして、WMS130は、特定のデータオブジェクトについて、階層に従って特定のデータオブジェクトに関連する1つ又は複数の他のデータオブジェクトを識別し得る。例えば、WMS130は、特定のデータオブジェクトについて、階層中の祖先(例えば、親データオブジェクト、祖父母データオブジェクト等)の1つ又は複数、子孫(例えば、1つ又は複数の子又は孫データオブジェクト)の1つ又は複数及び/又は兄弟データオブジェクト(例えば、特定のデータオブジェクトと少なくとも1つの共通の祖先を共有するデータオブジェクト)の1つ又は複数を識別し得る。
【0061】
有限状態機械を使用して特定のデータオブジェクトのワークフローを管理する一環として、WMS130は、ワークフロー中の種々のタスクを実行する許可を有するアクターを識別するように構成され得る。幾つかの実施形態では、WMS130は、特定のデータオブジェクトの属性の現在の値に基づいてアクターを動的に識別するように構成され得る。例えば、第1のデータオブジェクトの(ワークフローを管理する)FSMがFSMの第1の状態(例えば、
図3Aに示されるFSM300の状態306)である場合、WMS130は、第1の物体の属性の現在の値に基づいて、潜在的なワークフローアクター139の中から、ワークフロータスク(例えば、第1のデータオブジェクトへの提案された変更の承認又は拒絶)を実行する権限を有するアクターを動的に識別し得る。
【0062】
例えば、第1のデータオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを識別するために、WMS130は、(1)第1のデータオブジェクトが属する1つ又は複数の階層を示す、第1のデータオブジェクトの属性の現在の値を特定し、(2)第1のデータオブジェクトに関連する階層中の第2のデータオブジェクト(例えば、第2のオブジェクトは、第1のデータオブジェクトの祖先、子孫又は兄弟であり得る)を識別し、(3)第2のデータオブジェクトに対して同じワークフロータスクを実行する権限を有する1人又は複数のアクターを識別し、(4)第1のデータオブジェクトに対して同じワークフロータスクを実行する授権者としてもこれらのアクターを識別し得る。この例では、WMS130は、(1)データオブジェクトが属する階層を示す第1のデータオブジェクトの属性の現在の値、及び(2)第2のデータオブジェクト(及びワークフロータスクについての関連付けられたアクター)を識別し得るようにデータオブジェクトの階層を指定するメタデータの両方に基づいて、第1のデータオブジェクトのワークフロータスクを実行する者としてアクターを識別する。データ処理システム120へのWMS130の統合が、WMS130がこれらのデータの最新の値にアクセスし、これらの値を使用して、データオブジェクトレベル毎に種々のワークフロータスクを実行する者としてアクターに権限を与えられるようにするものである。この例の態様については、
図1D~
図1Gへの参照を含めて本明細書で更に説明する。
【0063】
別の例として、第1のデータオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを識別するために、WMS130は、(1)第1のデータオブジェクトの分類を示す第1のデータオブジェクトの属性の現在の値を特定し、(2)現在の値に基づいて、第1のデータオブジェクトが属するデータオブジェクトのグループ(例えば、同じ分類を有するデータオブジェクトのグループ)を識別し、(3)識別されたグループに対して同じワークフロータスクを実行する権限を有する1人又は複数のアクターを識別し、(4)第1のデータオブジェクトに対して同じワークフロータスクを実行する権限を有する者としてもこれらのアクターを識別し得る。この例でも、WMS130は、(1)データオブジェクトが属するオブジェクトグループを示す第1のデータオブジェクトの属性の現在の値、及び(2)データオブジェクト142中のデータオブジェクトのグループへの枠ターの割り当てを指定することにより、データオブジェクト間の関係を指定するメタデータの両方に基づいて、第1のデータオブジェクトのワークフロータスクを実行する者としてアクターを識別する。上記例と同様に、データ処理システム120へのWMS130の統合が、WMS130がこれらのデータの最新の値にアクセスし、これらの値を使用して、データオブジェクトレベル毎に種々のワークフロータスクを実行する者としてアクターに権限を与えられるようにするものである。この例の態様については、
図1H~
図1Iへの参照を含めて本明細書で更に説明する。
【0064】
上記例から理解することができるように、ワークフロー管理システム130は、データ処理システム120においてデータオブジェクト142に密に結合される。一方では、これにより、WMS130は、データオブジェクトへの変更を行うワークフローを管理できるようになる。他方では、WMSは、データオブジェクトの現在の値に動的にアクセスするため、データオブジェクトへのあらゆる変更は、WMSにより管理されているワークフローを変更することができる。例えば、上記例で説明されたように、データオブジェクトへの変更は、対応するFSMの状態を変え得、何れのアクターがワークフロータスクの実行を許可されるかに影響し得る。
【0065】
有限状態機械を通してワークフローを管理するワークフロー管理システムを開発することにより、本発明者らは、広範囲のユーザがワークフロー管理システムを構成できるようにした。実際に、有限状態機械を構成する(例えば、状態及び遷移を指定することにより)ことは、低水準ソフトウェアを記述する必要がなく、ソフトウェア開発者を必要としない(
図1Aに示される従来の手法での状況と異なり)。
図1Bの例では、ビジネスユーザ138は、構成モジュール131を通して有限状態機械及びそれらのパラメータを指定し得、構成モジュール131は、ビジネスユーザが有限状態機械及び任意の関連情報を指定できるようにする1つ又は複数のインターフェース(例えばグラフィカルユーザインターフェース)をビジネスユーザ138に提示するように構成され得る。ビジネスユーザ138が構成モジュール131を通して入力し得る情報の非限定的な例は、
図9A~
図9D及び
図10に示されている。
【0066】
図1Bに示されるように、ワークフロー管理システム130は、ワークフロー実行エンジン133を含み、ワークフロー実行エンジン133は、データオブジェクト142のそれぞれのワークフローを管理する有限状態機械をインスタンス生成し、有限状態機械のインスタンスを管理するように構成され得る。例えば、ワークフロー実行エンジン133は、1つ又は複数のFSM仕様(例えば、
図1Cに示されるFSM仕様モジュール132に記憶される)を使用して1つ又は複数のFSMインスタンスを生成するように構成され得る。別の例として、ワークフロー実行エンジン133は、例えば、FSMの現在の状態(例えば、FSMインスタンスが表すワークフローの現在のワークフロー状態)を更新することにより、FSMインスタンスに関連付けられた情報を更新するように構成され得る。別の例として、ワークフロー実行エンジン133は、FSMインスタンスが表すワークフローの完了後(例えば、FSMの現在の状態が終了状態である場合)、FSMインスタンスを削除するように構成され得る。ワークフロー実行エンジン133は、任意の適したデータ構造を使用して任意の適した方法でデータ処理システム120のメモリにおけるFSMインスタンスを管理し得、本明細書に記載される技術の態様は、これに関して限定されない。
【0067】
図1Bに示されるように、データ層140は、データオブジェクト142を記憶する。データ層は、限定ではなく、データオブジェクト142の属性の値を含め、データオブジェクト142の任意のデータを記憶し得る。データ層140は、データオブジェクト142を記憶する1つ又は複数の記憶装置を含み得る。各データストアは、任意の適したタイプの1つ又は複数のフォーマットでデータを記憶する1つ又は複数の記憶装置を含み得る。例えば、データストアの記憶装置部分は、1つ又は複数のデータベーステーブル、スプレッドシートファイル、平文ファイル及び/又は任意の他の適したフォーマット(例えば、メインフレームのネイティブフォーマット)のファイルを使用してデータを記憶し得る。記憶装置は、任意の適したタイプであり得、1つ又は複数のサーバ、1つ又は複数のデータベースシステム、1つ又は複数のポータブル記憶装置、1つ又は複数の不揮発性記憶装置、1つ又は複数の揮発性記憶装置及び/又はデータを電子的に記憶するように構成された任意の他のデバイスを含み得る。データストアが複数の記憶装置を含む実施形態では、記憶装置は、1つの物理的場所(例えば、1つの建物内)に配置され得るか、又は複数の物理的場所(例えば、複数の建物、異なる都市、州又は国)にわたって分散され得る。記憶装置は、任意の適したタイプの1つ又は複数のネットワークを使用して互いと通信するように構成され得、本明細書に記載される技術の態様は、これに関して限定されない。
【0068】
幾つかの実施形態では、データ層140は、
図1Cに関連しても説明されるように、限定ではなく、データオブジェクト142間の関係を指定するメタデータ及びデータオブジェクト142の中でのサーチを促進する情報(例えば、データオブジェクト142に維持されるサーチインデックス)を含む追加のタイプのデータを記憶し得る。
【0069】
図1Cは、本明細書に記載される技術の幾つかの実施形態による、
図1Bに示されるデータ処理システム120の例示的な実施形態のブロック図である。
図1Cは、
図1Bに示される同じ構成要素の幾つか(例えば、ワークフロー管理システム130、構成モジュール131、ワークフロー実行エンジン133、データ層140及びデータオブジェクト142)を含むデータ処理システム120の実施形態を示すが、
図1Bに示されていない追加の構成要素も示す。
図1Cの実施形態は、例示的であり、他の実施形態では、データ処理システム120は、
図1Cに示される構成要素への追加又は代替として、1つ又は複数の他の構成要素を含み得ることを理解されたい。
【0070】
図1Cに示されるように、データ処理システム120は、データ層140におけるデータに対して動作するように構成された1つ又は複数のコンピュータプログラム124を含む。コンピュータプログラム124は、任意の適したタイプであり得、任意の適したプログラミング言語で記述され得る。例えば、幾つかの実施形態では、コンピュータプログラム124は、少なくとも部分的に構造化クエリ言語(SQL)を使用して記述され、データ層140の1つ又は複数のデータストア中のデータにアクセスするように構成された1つ又は複数のコンピュータプログラムを含み得る。別の例として、幾つかの実施形態では、データ処理システム120は、グラフの形態のプログラムを実行するように構成され、コンピュータプログラム124は、データフローグラフとして開発された1つ又は複数のコンピュータプログラムを含み得る。データフローグラフは、入力データに対して実行されるデータ処理動作及びデータフローを表す構成要素間のリンクを表す「ノード」又は「頂点」と呼ばれる構成要素を含み得る。データフローグラフにより符号化された計算を実行する技法は、「Executing Computations Expressed as Graphs」という名称の米国特許第5,966,072号明細書に記載されており、これは、その全体が参照により本明細書に援用される。
【0071】
図1Cの図示の実施形態では、データ処理システム120は、データ層140に対して動作するコンピュータプログラム124の1つ又は複数を開発するために人(例えば、ソフトウェア開発者121)により使用され得る開発環境122を更に含む。データフローグラフとしてコンピュータプログラムを開発する環境は、「Managing Parameters for Graph-Based Applications」という名称の米国特許公開第2007/0011668号明細書に記載されており、これは、その全体が参照により本明細書に援用される。
【0072】
幾つかの実施形態では、コンピュータプログラム124の1つ又は複数は、任意の適した動作をデータ層140中のデータに対して実行するように構成され得る。例えば、コンピュータプログラム124の1つ又は複数は、1つ又は複数のソースからのデータにアクセスし、アクセスしたデータを変換し(例えば、データ値を変更、データ記録をフィルタリング、データフォーマットを変更、データをソート、複数のソースからのデータを結合、データを複数の部分に分割することにより、且つ/又は任意の他の適した方法で)、アクセスしたデータから1つ又は複数の新しい値を計算し、且つ/又はそのデータを1つ又は複数の宛先に書き込むように構成され得る。
【0073】
図1Cの図示の実施形態では、データ層140は、データオブジェクト142間の関係を指定するメタデータ144と、データオブジェクト142の中のサーチを促進する情報146とを更に含む。幾つかの実施形態では、メタデータ144は、データオブジェクト(データオブジェクト142中の)の1つ又は複数の階層を指定し得る。階層は、任意の適した方法で、任意の適したデータ構造を使用して、例えば、1つ又は複数のツリー構造、ポインタ又は任意の他の適した方法を使用して指定され得、本明細書に記載される技術の態様は、これに関して限定されない。幾つかの実施形態では、メタデータ144は、オブジェクトの1つ又は複数のグループを明示的又は黙示的に指定され得る。例えば、幾つかの実施形態では、メタデータ144は、グループ中のデータオブジェクトのワークフロータスクを実行する権限を有する共通のアクターを指定することによりオブジェクトのグループを黙示的に指定し得る。例えば、メタデータ144は、特定のアクターが、分類属性に同じ値を有する全てのデータオブジェクトに対して特定のワークフロータスクを実行する権限を有することを示し得る。アクターのそのような割り当ては、分類属性に同じ値を有するオブジェクトの黙示的なグループ化である。
【0074】
幾つかの実施形態では、データオブジェクト142の中でのサーチを促進する情報146は、1つ又は複数のサーチインデックスを含み得る。サーチインデックスは、接尾辞木、逆索引、引用検索、N-gramインデックス、文書用語行列として又は任意の他の適した方法で実施され得、本明細書に記載される技術の態様は、これに関して限定されない。
【0075】
図1Cの図示の実施形態では、ワークフロー管理システム130は、以下の構成要素も含む:有限状態機械仕様132、GUI生成モジュール134、許可モジュール135、データオブジェクトモジュール136及びサーチモジュール137。
【0076】
幾つかの実施形態では、有限状態機械仕様132は、1つ又は複数のFSM仕様を含み得る。FSM仕様132は、幾つかの実施形態では、データ層140に記憶され得るか、又はデータ処理システム120の任意の他の構成要素に記憶され得、本明細書に記載される技術の態様は、これに関して限定されない。幾つかの実施形態では、FSM仕様は、FSMの状態の組及び状態遷移の組を指定し得る。FSM仕様は、任意の適したフォーマットで任意の適したデータ構造を使用して記憶され得、本明細書に記載される技術の態様は、これに関して限定されない。本明細書に記載されるように、ワークフロー実行エンジンは、FSM仕様モジュール132に記憶される1つ又は複数のFSM仕様を使用して、1つ又は複数のFSMインスタンスを生成するように構成され得る。
【0077】
幾つかの実施形態では、GUI生成モジュール134は、アクターが1つ又は複数のワークフロータスクの実行を促進するために入力を提供することができるグラフィカルユーザインターフェースを生成するように構成され得る。例えば、GUI生成モジュール134は、意思決定する(例えば、保留中の変更を拒絶するか又は承認するか)権限を有するアクターが自身の決定を示す入力を提供することができるGUIを生成するように構成され得る。追加又は代替として、GUI生成モジュールは、オブジェクトのワークフローの現在のワークフロー状態を示すGUIを生成するように構成され得る。そのようなGUIの例は、本明細書に提供されている。
【0078】
GUI生成モジュール134により生成されるGUIは、ワークフローにより定義される編集可能性ルールを尊重し、施行することを理解されたい。例えば、ワークフロー状態から出る編集遷移がない場合、これは、データオブジェクトが編集可能ではないことを意味し、GUI生成モジュール134は、データオブジェクトを編集できるようにするインターフェースをいかなるアクターにも生成しない。更に、WMS130は、例えば、統合ウェブサービス等の任意の他のメカニズムを通してデータオブジェクトの編集をブロックする。(本明細書に記載されるシステムで実施されるように、ワークフローにより駆動されている編集可能性の表記は、BPMNに基づく等の従来のワークフローシステムに存在しない)。
【0079】
幾つかの実施形態では、許可モジュール135は、1つ又は複数のワークフローにおいて1つ又は複数のワークフロータスクを実行する権限を有する1人又は複数のアクターを識別するように構成され得る。許可モジュール135は、本明細書に記載される技法の何れかを使用してそのようなアクターを識別し得る。例えば、許可モジュール135は、(1)データ層140内の現在の属性値にアクセスすることにより、データストア140中のデータオブジェクトの1つ又は複数の現在属性値を特定し、(2)データオブジェクト間の関係を指定(例えば、オブジェクトの階層を指定、共通の分類を共有するオブジェクトのグループを指定等)するメタデータ144にアクセスし、(3)両方のタイプの情報を使用して、ワークフロータスクを実行する権限を有する1人又は複数のアクターを識別し得る。
【0080】
幾つかの実施形態では、データオブジェクトモジュール136は、データオブジェクト142を管理するように構成され得る。例えば、データオブジェクトモジュール136は、データオブジェクト142及び任意の関連付けられた情報へのアクセス、変更及び/又は記憶を行うように構成され得る。例えば、データオブジェクトモジュール136は、データ層140に記憶されたデータオブジェクトの属性の値にアクセスするために使用され得る。別の例として、データオブジェクトモジュール136は、データオブジェクト間の関係を指定するメタデータ144(例えば、データオブジェクトの階層の構造を指定する情報)にアクセスするために使用され得る。
【0081】
幾つかの実施形態では、データオブジェクトは、バージョン化され得る。例えば、変更がデータオブジェクトに対してなされた後、変更されたデータオブジェクトに新しいバージョン番号を関連付け得、データオブジェクトの前のバージョンは、記憶され得る。幾つかの実施形態では、データオブジェクトモジュール136は、データオブジェクトのバージョンを管理するように構成され得、データオブジェクトバージョンへの変更及び/又はデータオブジェクトバージョン間の差を指定する情報と共にデータオブジェクトの1つ又は複数の古いバージョンへのアクセスを提供するように構成され得る。データオブジェクトのバージョン化は、本明細書に記載されるように、データオブジェクト単位でワークフローを管理することにより可能になる(例えば、各有限状態機械インスタンスを使用して、各データオブジェクトのワークフローを管理することにより)。実際に、データオブジェクトバージョン化の管理を可能にすることは、データオブジェクト単位でワークフローを管理することの主要利点である。
【0082】
幾つかの実施形態では、データオブジェクトのワークフローを管理する有限状態機械は、ワークフローがデータオブジェクトに対して変更を生じさせる場合、変更されたデータオブジェクトはそのデータオブジェクトの新しいバージョンとして記憶され、データオブジェクトの前のバージョンが維持されるという点で「バージョン化」され得る。幾つかの実施形態では、データオブジェクトのワークフローを管理する有限状態機械は、ワークフローがデータオブジェクトに対して変更を生じさせる場合、変更されたデータオブジェクトは、記憶され、データオブジェクトの前のバージョンが維持されないという点で、「非バージョン化」され得る。
【0083】
幾つかの実施形態では、サーチモジュール137は、データ層140中のデータオブジェクト142の中でデータオブジェクトをサーチするプログラム的インターフェース(例えばAPI)及び/又はユーザインターフェース(例えばGUI)を提供し得る。幾つかの実施形態では、サーチモジュール137は、サーチインデックスを利用してサーチを実行され得る。幾つかの実施形態では、サーチモジュール137は、サーチインデックスを更新及び/又は再計算して、将来のサーチを最適化し得る(例えば、データ層140における新しいデータオブジェクトの追加、データオブジェクトの削除及び/又はデータオブジェクトの変更に応答して)。
【0084】
図1D及び
図1Eは、本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトの階層についての情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別する一例を示す。
図1Dは、データオブジェクト152がデータオブジェクト154の子孫であるデータオブジェクトの階層150を示す。この例では、データオブジェクト152の変更ワークフローを管理する有限状態機械は、ワークフロー管理システム130がデータオブジェクト152を編集する権限を有する任意のアクターを識別する必要がある状態になると考える。(そのような状況は、例えば、FSM300が状態304になる場合又はFSM400が状態402になる場合、生じ得る)。この例では、授権アクターを識別するために、WMS130は、階層150を使用して、授権編集者がいるオブジェクト152の祖先を識別する。
図1Dに示されるように、授権編集者156(ロブ及びダイアン)は、データオブジェクト152の祖先であるデータオブジェクト154を編集する権限を有する。
【0085】
図1Eに示されるように、WMS130は、授権編集者に関連付けられたデータオブジェクト152の祖先をサーチするために、リンク161、162及び163を介して階層150を巡回する。次に、WMS130は、データオブジェクト152を編集する権限も有するアクターとして、祖先データオブジェクトを編集する権限を有するアクターを識別する。この例では、第1のそのようなオブジェクトは、データオブジェクト154であり、
図1Eに示されるように、WMS130は、データオブジェクト152を編集する権限を有するアクターとしてアクター156を割り当てる。このようにして、階層150は、データオブジェクト152の授権アクターを祖先の1つから継承できるようにする。
【0086】
したがって、幾つかの実施形態では、データオブジェクトに対して特定のワークフロータスクを実行する権限を有する1人又は複数のアクターは、データオブジェクトが属する階層中のデータオブジェクトの祖先から継承され得る。幾つかの実施形態では、祖先オブジェクトは、同じワークフロータスクを実行する権限を有する1人又は複数のアクターも有する階層中のデータオブジェクトに最も近い祖先オブジェクトとして選択され得る。したがって、特定のデータオブジェクトの親オブジェクト及び祖父母オブジェクトがそれぞれ関連付けられたアクターを有する場合、親オブジェクトのアクターは、特定のデータオブジェクトに対して同じワークフロータスクを実行する権限を有するアクターとして識別され得る。
【0087】
図1F及び
図1Gは、本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトの階層についての情報を使用して、データオブジェクトのワークフローを実行する権限を有するアクターを識別する別の例を示す。この例は、同じデータオブジェクト152の異なる祖先オブジェクトから継承することにより、継承がどのように使用されて、異なるワークフロータスク(同じワークフロー中の)に異なるアクターを割り当てることができるかを示す。
図1Fに示されるように、データオブジェクト152は、階層150において祖先データオブジェクト153及び祖先オブジェクト154を有する。先の例と同様に、データオブジェクト154は、データオブジェクト154を編集する権限を有するアクター156(ロブ及びダイアン)に関連付けられる。データオブジェクト153は、データオブジェクト153に対して行われた任意の変更をレビュー(且つ承認又は拒絶)する権限を有するアクター158(デイビッド)に関連付けられる。
図1Fに示されるように、データオブジェクト152は、オブジェクトを編集(「授権編集者」)又はそのようないかなる編集もレビューする(「授権レビューア」)いかなるアクターも依然として関連付けられない。
【0088】
図1Gに示されるように、WMS130は、リンク161、162及び163を介して階層150を巡回して、データオブジェクト152の授権編集者及び授権レビューアの両方を識別し得る。この例では、WMS130は、データオブジェクト152を編集する権限を有するアクターとしてアクター156を識別する(例えば、授権アクターにも関連付けられた階層150中のリンク数に関して、データオブジェクト152に最も近いデータオブジェクトとしてデータオブジェクト154を識別することにより)。WMS130は、データオブジェクト152に対して行われた(例えば、アクター156の1人により)あらゆる変更をレビュー(例えば、許容又は拒絶)する権限を有するアクターとしてアクター158も識別する。このようにして、データオブジェクト152に対して変更を行うワークフローは、部分的に、階層150中のデータオブジェクト152に関連するデータオブジェクト(153又は154)の授権アクターにより定義される。この例から理解することができるように、データオブジェクトの同じワークフロー中の異なるタスクのアクターは、そのデータオブジェクトの異なる祖先から継承され得る。
【0089】
データ処理システムは、数千又は数百万のデータオブジェクトを管理し得、データオブジェクトレベル単位で授権アクターを手動で指定することは、可能ではないため、
図1D、
図1E、
図1F及び
図1Gに示される継承概念は、強力である。他方では、データ処理システムにより管理されるデータオブジェクトは、多くの実際用途で階層的に関連する(例えば、金融サービス会社のビジネス用語集、データガバナンスアプリケーションの展開等)。本発明者らにより開発されたワークフロー管理システムは、そのような階層関係を利用して、種々のワークフロータスクを実行する権限を有するアクターを効率的且つ動的に識別することができる。
【0090】
このタイプの機能は、管理しているワークフローのデータオブジェクトを有するデータ処理システムと統合されない従来のワークフロー管理システムを使用して実施が可能でないことも理解されたい。そのような従来のワークフロー管理システムは、データオブジェクト間の関係を指定するメタデータにアクセスすることができないか、又は仮に何らかの方法でこのアクセスが提供される場合でも、従来のワークフロー管理システムとデータ処理システムとの間でそのような情報を同期させた状態を保つことが可能ではない。
【0091】
本明細書に記載されるように、データオブジェクト間の他のタイプの関係を利用して、種々のワークフロータスクを実行する権限を有するアクターを識別することもできる。例えば、
図1H及び
図1Iは、本明細書に記載される技術の幾つかの実施形態による、データオブジェクトが属するデータオブジェクトのグループについての情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有するアクターを識別する一例を示す。
【0092】
図1Hは、データ処理システムが、秘密度分類属性に共通の値(この例では「機密」)を共有する、データオブジェクト172を含む複数のデータオブジェクトを含み得ることを示す。指定された属性に共通の値を有するデータオブジェクトは、アクター176(ロブ及びダイアン)の組が関連付けられたグループ170を形成する。この例では、アクター176は、グループ170中の任意のデータオブジェクトに対して行われた変更をレビューする権限を有し得る。データオブジェクト172に対して提案された変更の授権レビューアを識別するために、ワークフロー管理システム(例えばWMS130)は、
図1Iに示されるように、(1)データストア140中の現在の値にアクセスすることにより秘密度分類属性の現在の値を特定し、(2)データオブジェクト170が属するグループとしてグループ170を識別し、(3)データオブジェクト172への変更をレビューする権限を有する者としてアクター176を識別し得、なぜなら、これらのアクターは、グループ170中のデータオブジェクトへの変更をレビューする権限を有するためである。
【0093】
例示的な方法
図2は、本明細書に記載される技術の幾つかの実施形態による、有限状態機械を使用してデータオブジェクトのワークフローを管理する例示的なプロセス200のフローチャートである。プロセス200は、任意の適したデータ処理システムによって実行され得、例えば
図1B及び
図1Cを参照して説明したデータ処理システム120によって実行され得る。
【0094】
プロセス200は、動作202において開始され、第1のデータオブジェクトのワークフローを管理する有限状態機械がインスタンス生成される。幾つかの実施形態では、FSMは、(1)FSMの仕様にアクセスし、(2)アクセスされた仕様を使用してFSMのインスタンスを生成し、(3)FSMの生成されたインスタンスを第1のデータオブジェクトに関連付けたことによりインスタンス生成し得る。
【0095】
幾つかの実施形態では、FSMの仕様は、FSM仕様132の1つであり得、データ層140又はワークフロー管理システム130がアクセス可能な任意の他のコンピュータ可読記憶媒体(例えばメモリ)に記憶され得る。FSM仕様は、任意の適したフォーマット(例えば、表、構成ファイル、テキストファイル、構造化データファイル、XMLファイル等)であり得、本明細書に記載される技術の態様は、これに関して限定されない。
【0096】
幾つかの実施形態では、仕様は、FSMの状態及びFSMの遷移を指定し得る。幾つかの実施形態では、仕様は、FSMの状態(例えば、状態が開始状態、静止状態、最終状態であるか、状態のグラフィカル表現がどのようにレンダリングされるべきかを指定する情報等)及び/又はFSMの遷移(例えば、遷移のタイプ、遷移により表されるワークフロー中の行動をとることが許可されている1人又は複数のアクターを識別する情報等)のそれぞれの1つ又は複数のプロパティを指定し得る。
【0097】
有限状態機械インスタンスは、FSM仕様から任意の適した方法で生成され得、本明細書に記載される技術の態様は、これに関して限定されない。例えば、有限状態機械を表す1つ又は複数の変数及び/又はオブジェクトは、アクセスされた仕様中の情報を使用してインスタンス生成し得る。FSMインスタンスは、任意の適した方法で第1のデータオブジェクトに関連付けられ得、本明細書に記載される技術の態様は、これに関して限定されない。
【0098】
次に、動作204において、FSMの現在の状態が特定される。これは、任意の適した方法で行われ、例えば現在の状態を示す変数の値をチェックすることにより行われる。インスタンス生成されると、有限状態機械は、開始状態になる。すなわち、有限状態機械の現在の状態は、開始状態(又は場合によりインポート中、FSMがユーザ入力なしで自動的に開始状態から遷移する状態)であり得る。1つ又は複数の行動がとられた後、有限状態機械の状態は、例えば、動作214を参照して後述するように、新しい状態を反映するように更新され得る。
【0099】
次に、動作206において、第1のデータオブジェクトのワークフロータスクを実行する権限を有するアクターが識別される。幾つかの実施形態では、ワークフロータスクは、動作204において識別された現在のワークフロータスクから採用され得る動作に関連付けられ得る。幾つかの実施形態では、アクターは、第1のデータオブジェクトの属性の現在の値を使用して識別し得る。例えば、
図2の図示の実施形態では、アクターは、(1)動作206aにおいて、データ処理システム120における(例えばデータ層140中の)属性の現在の値にアクセスすることによりデータオブジェクトの属性の現在の値を特定し、(2)動作206bにおいて、データ処理システム120におけるデータオブジェクト間の関係を指定するメタデータ(例えばメタデータ144)にアクセスし、(3)動作206cにおいて、(a)動作206aにおいて特定されたデータオブジェクトの属性の現在の値(何らかの前にキャッシュされたバージョンではなく)、及び(b)動作206bにおいてアクセスされたメタデータの両方を使用して、ワークフロータスクを実行するアクターを識別することにより識別される。
【0100】
一例として、データオブジェクトの属性の現在の値は、第1のデータオブジェクトが属するデータオブジェクトの特定の階層を示し得る。メタデータは、この階層中の1つ又は複数の他のデータオブジェクトを指定し得、ワークフロータスクを実行する権限を有するアクターは、第1のデータオブジェクトに関連する階層中の第2のデータオブジェクト(例えば、第1のデータオブジェクトの祖先、子孫又は兄弟)に対して同じワークフロータスクを実行する権限を既に有するアクターとして識別され得る。
【0101】
別の例として、第1のデータオブジェクトの属性の現在の値は、第1のデータオブジェクトが属するオブジェクトのグループ(例えば、特定の属性に共通の値を共有するオブジェクトのグループ)を示し得る。メタデータは、グループ内の任意のデータオブジェクトのワークフロータスクを実行する権限を有するアクターを指定し得、第1のデータオブジェクトのワークフロータスクを実行する権限を有するアクターは、グループに対してワークフロータスクを実行する権限を有するアクターとして識別し得る。そのような属性の例には、限定ではなく、値がデータオブジェクトの分類を示す分類属性(例えば、ガバナンスグループ分類、秘密度分類、個人識別可能情報分類等)があり、アクターは、分類属性の値に基づいて識別され得る。
【0102】
次に、プロセス200は、動作208に進み、動作206において識別されたアクターが、GUIを通して、第1のワークフロータスクが実行されるべきことを指定する入力を提供することができるグラフィカルユーザインターフェースが生成される。例えば、
図3Aの例示的なFSMを参照して、データオブジェクトの現在のワークフロー状態がドラフト状態304である場合、動作208は、動作206において識別されたアクターが、第1のデータオブジェクトへの変更が提出されるべきであることを示す入力を提供することができるGUIを生成することを含み得る。生成されたGUIは、アクターがデータ処理システム120にログインした後に提示され得る。
【0103】
次に、動作210において、アクターは、動作208において生成されたGUIを介して、第1のワークフロータスクが実行されるべきことを指定する入力を提供し得る。例えば、アクターは、データ処理システムによりアクターに提示されたGUI中の「提出」ボタンをクリックすることにより、データオブジェクトへの変更が提出されるべきである旨の入力を提供し得る。
【0104】
第1のワークフロータスクが実行されるべきであることを指定する入力の受信に応答して、データ処理システムは、動作212において、第1のワークフロータスクを第1のデータオブジェクトに対して実行し、動作214において、第1のデータオブジェクトのFSMの現在のワークフロー状態は、第2のワークフロー状態に更新される。例えば、動作210における第1のデータオブジェクトへの変更が提出されるべきであることを示す入力の受信に応答して、データ処理システムは、FSMの現在の状態を「ドラフト」状態304から「承認保留中」状態306に更新され得る。動作214が実行された後、プロセス200は、動作204に戻る。
【0105】
プロセス200が例示的であり、変形が存在することを理解されたい。例えば、1つ又は複数ワークフロータスクに対応する動作を実行する権限を有するアクターは、プロセス200の開始前に識別され得、なぜなら、1つ又は複数のデータオブジェクトの1つ又は複数の属性が既知であり得るためである。他方では、プロセス200の実行中、1つ又は複数のデータオブジェクト属性値が変わる場合、プロセス200の実行中、データオブジェクトに関して動作を実行する権限を有するアクターを識別し得る。
【0106】
有限状態機械を使用したワークフロー管理
図3Aは、本明細書に記載される技術の幾つかの実施形態による、データオブジェクトへの変更を管理するワークフローの例示的な有限状態機械300の状態及び遷移を示す図である。例えば、FSM300は、ビジネス用語データオブジェクトへの変更を管理するために使用され得、その例が本明細書に提供される。別の例として、FSM300は、ドキュメント(例えば、記事、テキストファイル、ブログ掲示等)への変更を管理するために使用され得る。幾つかの実施形態では、FSM300の仕様は、FSM仕様ストア132の1つであり得、FSM300は、ワークフロー実行エンジン133を使用してインスタンス生成し得る。
【0107】
図3Aに示されるように、有限状態機械300は、5つのワークフロー状態を含む:開始状態302、ドラフト状態304、承認保留状態306、公開状態308及び放棄状態310。FSM300は、FSM300により支配されるワークフローがどのようにあるワークフロー状態から別のワークフロー状態に移るか及びその結果として生じる動作(例えば、提出、放棄、承認等)を制御する状態遷移を含む。
図3Aの例示的な実施形態では、2つの編集遷移(開始状態302からドラフト状態304への編集遷移312及びドラフト状態304からそれ自体への編集遷移314)、2つのアクター行動遷移(状態304から状態306への提出遷移316及び状態304から状態310への破棄遷移320)及び2つの決定遷移(状態306から状態308への承認遷移318及び状態306から状態304への拒絶遷移322)がある。
【0108】
例えば、ドキュメントがアクターにより作成される場合、ドキュメントへの変更を管理するワークフロー用の有限状態機械300のインスタンスを生成し得る。FSM300の現在の状態は、開始状態302に初期化され得る。アクターがドキュメントへの変更を完了した後、現在のワークフロー状態は、開始状態302からドラフトワークフロー状態304に更新され得る。現在のワークフロー状態が状態304であり、アクターがドキュメントを編集する場合、現在のワークフロー状態は、ドラフト状態304のままであり得る。現在のワークフロー状態が状態304である場合、アクターは、承認に向けてドキュメントを提出し得、その場合、現在のワークフロー状態は、承認保留状態306に更新されるか、又はアクターは、ドキュメントを破棄し得、その場合、現在のワークフロー状態は、放棄状態310に更新される。ドキュメントのFSMの現在の状態が承認保留状態308である場合、承認者(又は投票方式に従って動作する承認者の集合、その例は、本明細書に記載されている)は、(1)アクターにより提出されたドキュメントへの変更を拒絶し得、その場合、FSMの現在の状態は、ドラフト状態304に更新されるか、又は(2)アクターにより提出されたドキュメントへの変更を承認し得、その場合、FSMの現在の状態は公開状態310に更新される。
【0109】
上記説明から理解し得るように、異なるアクターは、データオブジェクトに関して異なるタイプの行動を実行する権限を有し得る。例えば、FSM300に関して、アクターは、データオブジェクトを作成する権限、データオブジェクトに編集を行う権限、データオブジェクトへの編集を破棄する権限及び/又は編集を承認に向けて提出する権限を有し得る。他方では、異なる1人又は複数のアクターは、データオブジェクトへの編集を承認又は拒絶する権限を有し得る。
【0110】
したがって、幾つかの実施形態では、1人又は複数のアクターの第1の組は、あるワークフロー状態に対応する1つ又は複数のワークフロータスクを実行する権限を有し得(例えば、現在のワークフロー状態がドラフト状態304である場合、人物Aは、ドキュメントを編集、ドキュメントへの編集を提出又はドキュメントへの編集を破棄する権限を有し得る)、1人又は複数のアクターの第2の組は、別のワークフロー状態に対応する1つ又は複数のワークフロータスクを実行する権限を有し得る(例えば、現在のワークフロー状態が承認保留状態306である場合、人物Bは、ドキュメントへの編集を承認又は拒絶する権限を有し得る)。
【0111】
幾つかの実施形態では、より細かい粒度の許可が可能である。例えば、幾つかの実施形態では、FSM状態からの各遷移は、1つ又は複数の授権アクターのそれぞれに関連付けられ得る。例えば、承認遷移及び拒絶遷移は、同じ授権アクターに関連付けられ得る(例えば、1人のレビューアが変更を承認又は拒絶することができる)か、又は異なる授権アクターに関連付けられ得る(例えば、1人のレビューアは、一方的に拒絶する権限を有し得るが、変更を一方的に承認する権限を有さないことがあり、なぜなら、複数の承認者からの承認が必要であり得るためである)。1つ又は複数の状態遷移に関連付けられるアクターを識別する技法は、本明細書に記載される。
【0112】
幾つかの実施形態では、有限状態機械300の現在のワークフロー状態は、アクターが1つ又は複数のワークフロータスクを実行できるようにするユーザインターフェースを生成するために使用され得る。ユーザインターフェースは、FSMが、タスクを実行し得るワークフロー状態になったことに応答して、又はFSMがそのワークフロー状態になり、且つ例えばアクターがシステムにログインし、あらゆる保留中のワークフロータスクの表示を要求する等の1つ又は複数の他のイベントが生じた後に生成され得る。
【0113】
例えば、ドキュメントの現在のワークフロー状態が編集状態304である場合、アクター(「アビーA.ウィリアムズ」)は、変更の承認又は拒絶に向けて変更を提出する権限を有し得る。したがって、この例では、アクターは、FSM300の遷移316及び320に関連付けられた行動をとる権限を有し、この情報は、データ処理システムにより使用されて(例えば、データ処理システム120のGUI生成モジュール134により)、アクターがこれらの授権行動を実行できるようにするグラフィカルユーザインターフェースを生成し得る。そのようなユーザインターフェースの説明のための例は、
図3Cに示され、
図3Cは、生成され、アクター382(「アビーA.ウィリアムズ」)に提示されたグラフィカルユーザインターフェース380を示す。
【0114】
図3Cに示されるように、GUI380は、アクター382が種々のデータオブジェクトに対して実行し得るタスクのリスト384を示す。例えば、GUI380は、アクター382が「帳簿残高」データオブジェクト386への変更を提出又は破棄し得ることを示し、アクター382がボタン387を使用してそうできるようにする。提出又は破棄されるべき変更の詳細は、パネル388に示される。このオブジェクト又は関連するオブジェクトに関して他のアクターによりとられる行動は、パネル389に示される。
【0115】
別の例が
図3Dに示され、
図3Dは、GUI要素396を使用して示される、FSM300が承認保留状態306である場合、アクター392(この例では「リサD.カドッテ」)により生成された例示的なグラフィカルユーザインターフェース390を示す。GUI390は、アクター392が投票ボタン394を使用して変更を承認又は拒絶できるようにする。
【0116】
幾つかの実施形態では、FSM300のインスタンスは、各データオブジェクトのワークフローを管理するために生成されることを理解されたい。FSM300の1つのインスタンスが複数のデータオブジェクト(例えば、複数のドキュメント)への変更を追跡するために使用されるのではなく、むしろFSM300の複数のインスタンスがそうするために使用され、データ処理システム(例えば、システム120)がそのようなインスタンスを管理する(例えば、ワークフロー実行エンジン130を使用して)。しかしながら、幾つかの実施形態では、FSMは、例えば、
図6A及び
図6Bへの参照を含めて本明細書に説明されるように、データ処理システムに複数のデータオブジェクトをインポートするプロセスを管理する場合、複数のデータオブジェクトの1つのワークフローを管理するために使用され得る。
【0117】
データオブジェクトのワークフローを管理する有限状態機械の別の例は、
図3Bに示され、
図3Bは、本明細書に記載される技術の幾つかの実施形態による、問題管理ワークフローの有限状態機械350の状態及び遷移の図を示す。FSM350は、例が本明細書に提供される、問題データオブジェクトにより表され得る問題に関連するワークフロータスクを管理するために使用され得る。幾つかの実施形態では、FSM350の仕様は、FSM仕様ストア132に記憶し得、FSM350は、ワークフロー実行エンジン130を使用してインスタンス生成し得る。
【0118】
図3Bに示されるように、有限状態機械350は、6つのワークフロー状態を含む:開始状態352、オープン状態354、進行中状態356、検証保留状態358、解決状態360及び削除状態362。FSM350は、FSM350により支配される問題解決ワークフローがどのようにあるワークフロー状態から別のワークフロー状態に移るか及びその結果として生じる動作(例えば、提出、削除)を制御する状態遷移を含む。
図3Bの例示的な実施形態では、FSM350は、状態352から状態354への遷移364、状態354からそれ自体への遷移365、状態354から状態356への遷移366、状態356からそれ自体への遷移367、状態356から状態358への遷移368、状態358から状態360への遷移370、状態358から状態356への遷移372及び状態356から状態362への遷移374を含む。
【0119】
図3Bの図示の例では、「提出及び承認」との見出しが記された状態遷移では、そのような遷移に関連付けられた変更(例えば、編集、削除)は、更なる承認なく自動的に行われる。例えば、FSM350が状態354である間、問題データオブジェクトに対して行われた編集は、自動的に行われ、データ処理システムは、変更を即座にコミットし得る。
【0120】
FSM350が以下に使用され得るかの説明のための一例として、問題データオブジェクトの作成時、問題データオブジェクトのFSMのインスタンスを生成し得、現在のワークフロー状態は、開始状態352から状態354に移る。例えば、問題データオブジェクトは、別のデータオブジェクト(例えば、ドキュメントビジネス用語データオブジェクト、アクターのアカウント番号、住所等)の内容にエラーがあることを示し得る。問題の対処に割り当てられたアクターが、適切なユーザインターフェースを通して「進行中」をクリックする(それにより、そのアクターが問題への対処を開始することを示す)場合、現在のワークフロー状態は、オープン状態354から進行中状態356に移り、その時点で、アクターは、問題データオブジェクトの編集(現在のワークフロー状態は、変わらない)、問題データオブジェクトの削除(現在のワークフロー状態は、状態362に遷移し、ワークフローのインスタンスは終了する)又は検証に向けたデータオブジェクトの提出(現在のワークフローは、状態358に遷移し、決定があるまでこの状態に留まる)等の種々の行動を実行することができる。もう1人の他のアクターが問題データオブジェクトをレビューし、問題が解決したか否かを決定し得る(例えば、他のデータオブジェクトの内容におけるエラーが対処されたと判断することにより)。この場合、承認決定は、編集が実際の問題データオブジェクトに対して行われたか否かについてではなく、土台となる問題が開発されたか否かに基づく。問題が拒絶される(例えば、問題の対処に、例えばドキュメントへの更なる編集を行うことにより追加のステップが必要であるため)場合、現在のワークフロー状態は、状態356に遷移し、状態356において、問題データオブジェクトを編集、再提出又は削除し得る。仮に問題が承認された場合、現在のワークフロー状態は、状態360に遷移し、現在のワークフローインスタンスは、終了する。
【0121】
ビジネス用語データオブジェクト(BTDO)への変更を行うワークフローを管理する有限状態機械400の別の例が
図4A~
図4Dに提供される。有限状態機械400の全体は、
図4Aに示される一方、種々の部分は、
図4B~
図4Dに示される。幾つかの実施形態では、FSM400の仕様は、FSM仕様ストア132の1つであり得、FSM400は、ワークフロー実行エンジン133を使用してインスタンス生成し得る。
【0122】
図4Aに示されるように、状態機械400は、10のワークフロー状態を含む:開始状態401、ドラフト状態402、保留ドラフト承認状態404、公開状態406、削除保留状態408、保留削除承認状態410、削除状態412、インポート状態414、承認保留状態416及び変更保留状態418。
【0123】
FSM400がどのように使用され得るかの説明のための一例として、ビジネス用語データオブジェクトの作成時、提案されている新しいビジネス用語を捕捉するために、ビジネス用語データオブジェクトのFSM400のインスタンスを生成し得、現在のワークフロー状態は、開始状態401からドラフト状態402に移る。
【0124】
図4Bに示されるように、現在のワークフロー状態が状態402である場合、授権アクターは、(1)BTDOを削除することができ(削除は、承認なしで自動コミットされる)、その場合、ワークフローは、削除状態412に遷移し、ワークフローは、終了し(これは、例えば、ワークフローの管理に使用されたFSM400のインスタンスの削除を含み得る)、又は(2)BTDOを編集することができ、その場合、現在のワークフロー状態は、状態402
1のままであり、又は(3)BTDOをレビューに向けて提出することができ、その場合、ワークフローは、保留ドラフト承認状態404に遷移する。
【0125】
1ドラフト状態402からそれ自体への遷移があるため、FSM400がドラフト状態402である限り、BTDOは編集可能なままである。この遷移なしでは、BTDOは、その初期作成後、追加の変更にオープンではない。
【0126】
幾つかの実施形態では、現在のワークフロー状態が状態404である場合、提案されたビジネス用語データオブジェクトが拒絶される(例えば、授権レビューアにより)とき、又は提案されたBTDOが、それをレビューに向けて提出したアクターにより取り下げられるとき、現在のワークフロー状態は、状態402に戻り得る。他方では、現在のワークフロー状態が状態404である場合、提案されたBTDOが承認される(例えば、授権レビューアにより)とき、現在のワークフロー状態は、公開状態406に遷移する。
【0127】
FSM400が2つの異なるシステム定義ワークフロー状態 - 開始状態401及びインポート状態414 - を含むことに留意されたい。開始状態401は、新しいビジネス用語が作成される場合に使用される。他方では、1つ又は複数のオブジェクト(前に作成された)が1つ又は複数の外部ソース(例えば、1つ又は複数の外部システム、データベース、データストア等)からデータ処理システムによりインポートされる場合、初期状態は、インポート状態414であり、インポートが完了すると、FSM400の現在のワークフロー状態は、公開状態406に移動する。幾つかの実施形態では、複数のオブジェクトをバッチとしてインポートし得、インポート全体は、「バッチ処理」と呼ばれ得る。
【0128】
図4Cに示されるように、現在のワークフロー状態が公開状態406であり、授権アクターがBTDOを編集する場合、BTDOの新しいバージョンが作成され、現在のワークフロー状態は、変更保留状態418に遷移する。現在のワークフロー状態が状態418である場合、編集を承認に向けて提出した授権アクターが編集を破棄するとき、現在のワークフロー状態は、公開状態406に戻る。現在のワークフロー状態が状態418である場合、授権アクターが変更を承認に向けて提出するとき、現在のワークフロー状態は、承認保留状態416に遷移する。
【0129】
幾つかの実施形態では、現在のワークフロー状態が承認保留状態416である場合、1人の授権アクター(又は複数のアクター)は、提案された編集を承認し得、その場合、現在のワークフロー状態は、公開状態406に遷移するか、又は提案された編集を拒絶し得、その場合、現在のワークフロー状態は、変更保留状態418に戻る。
【0130】
図4Dに示されるように、現在のワークフロー状態が公開状態406であり、授権アクターがビジネス用語データオブジェクトを削除した場合、現在のワークフロー状態は、削除状態408に遷移する。現在のワークフロー状態が状態408である場合、BTDOを削除した授権アクターが削除を破棄するとき、現在のワークフロー状態は、公開状態に戻る。他方では、アクターが承認に向けて削除要求を提出する場合現在のワークフロー状態は、保留削除承認状態410に変わる。
【0131】
幾つかの実施形態では、現在のワークフロー状態が保留削除承認状態410である場合、授権されたものは、BTDOの削除を承認し、その場合、現在のワークフロー状態は、削除保留状態408に遷移するか、又は削除を承認し得、その場合、BTDOは、削除され、現在のワークフロー状態は、削除状態412に移る。
【0132】
図4A~
図4Dを参照して上述した説明のための例では、ビジネス用語データオブジェクトに対するあらゆる変更は、一緒にまとめられ、それにより、BTDOへの任意の編集が行われる場合、BTDO全体がロックされる。BTDOのワークフロー状態が承認保留状態416から(承認時)又は変更保留状態418から(編集破棄時)公開状態406に戻るまで、追加の変更は、許可されない。
【0133】
1次及び2次有限状態機械
本発明の任意の実施形態は、共通のデータオブジェクトに対して2つ以上のタスクを並列に実施し得る。したがって、異なる各タスクを実行する1つ又は複数の対応するワークフローに向けて1つ又は複数の2次の更なる有限状態機械をインスタンス生成し得る。これにより、異なるアクターが同じデータオブジェクトに対して異なるプロセスを同時に実行することができる。例えば、幾つかの実施形態では、データオブジェクトは、2つ以上の属性を有し得、データオブジェクトの1つの属性への変更を実行するワークフローを管理するのに、1つのFSMをインスタンス生成し得る一方、データオブジェクトの別の属性への変更を実行するワークフローを管理するのに、別のFSMをインスタンス生成し得る。これにより、データオブジェクトが所与のアクターにより編集中である間、他のアクターによる編集からそのデータオブジェクトをロックする必要なく、所与のデータオブジェクトの異なる属性の変更又は編集が同時に可能になる。これは、データ処理システムが変更を管理するのに必要とする時間量を低減し、それにより、データオブジェクトの変更又は編集中、他のアクターに対してデータオブジェクトをロックする必要性を回避もしながら、データ処理システムをより効率的にする。
【0134】
所与のデータオブジェクトの異なる属性の同時変更又は編集は、ワークフロー実行エンジン133内の別個の実行スレッドを使用して2次有限状態機械をそれぞれインスタンス生成することにより達成され得る。更に、各ワークフローに関連付けられたタスクも、各ワークフローに1つ又は複数の別個の実行スレッドを使用すること等により並列に同時に実行され得る。
【0135】
一例として、本明細書に考察されるように、編集承認プロセスにより細かい粒度の制御が可能なことが有価値であることを本発明者らは認識した。したがって、幾つかの実施形態では、データオブジェクトへの異なる編集を行うための1つ又は複数の対応するワークフローを管理するために、1つ又は複数の2次有限状態機械をインスタンス生成し得る。例えば、幾つかの実施形態では、データオブジェクトは、複数の属性を有し得、データオブジェクトの1つの属性への変更を管理するワークフローを管理するために、1つのFSMをインスタンス生成し得る一方、データオブジェクトの別の属性への変更を管理するワークフローを管理するために、別のFSMをインスタンス生成し得る。これにより、異なるアクターが、ロックアウトなしで、データオブジェクトの異なる属性を同時に編集できるようになる。これは、データ処理システムが変更を管理するのに必要な時間量を低減し、それによりデータ処理システムをより効率的にする。
【0136】
この手法の一例を
図5A~
図5Cに示す。
図5Aは、本明細書に記載される技術の幾つかの実施形態による、ビジネス用語データオブジェクトへの変更を管理する例示的な有限状態機械500の図であり、FSM500の状態の1つは、「子」又は「2次」有限状態機械に関連付けられる。幾つかの実施形態では、FSM500の仕様は、FSM仕様ストア132の1つであり得、FSM500は、ワークフロー実行エンジン133を使用してインスタンス生成し得る。
【0137】
図4A及び
図5Aから理解し得るように、有限状態機械500の構造は、有限状態機械400の構造と同様である。しかしながら、現在のワークフロー状態が公開状態501であり、編集が行われる場合、FSM500は、変更保留状態502に遷移し、別の有限状態機械(例えば、FSM「A」)は、その特定の編集を承認するワークフローを管理するためにインスタンス生成される。この場合、ビジネス用語データオブジェクトは、ロックされず、他の編集を行い得る。他の編集がBTDOに対して行われる場合、それらの他の編集を承認するワークフローは、他の有限状態機械(例えば、FSM「B」、「C」、「D」)により管理される。全ての編集のワークフロー(例えば、4つの異なる編集の4つの異なるFSM - A、B、C、D - により管理されるワークフロー)が完了すると、現在のワークフロー状態は、公開状態501に戻る。この例では、有限状態機械500は、「1次」又は「親」有限状態機械と呼ぶことができる一方、ビジネス用語データオブジェクトへの編集のワークフローを管理するために生まれた有限状態機械は、「2次」又は「子」有限状態機械と呼ぶことができる。
【0138】
幾つかの実施形態では、2次有限状態機械は、互いから独立した同時変更処理を可能にする - 提案された変更を承認又は拒絶するワークフローは、並列に、互いから独立して実行され得る。例えば、
図5BのGUI510に示されるように、データオブジェクトの異なる属性に対して行われた変更は、異なる状態であり得る異なる2次有限状態機械により管理され得る。
図5BのGUI要素512により示されるように、「政府識別番号」という名称のBTDO511を管理する1次有限状態機械500の現在のワークフロー状態は、変更保留状態502である。この例では、BTDOの定義属性への変更は、GUI要素514で示されるように、ワークフロー状態が「提出」状態である1つの2次有限状態機械により管理されている一方、「秘密度」属性への変更は、GUI要素516で示されるように、ワークフロー状態が「オープン」状態である別の有限状態機械により管理されている。この例では、土台をなすデータオブジェクトへの変更を管理する3つの有限状態機械 - 1つの1次状態機械及び2つの2次状態機械 - があり、その状態は、GUI要素512、514及び516によりそれぞれ示される。2つの2次有限状態機械は、同じFSM仕様により指定された同じFSMのインスタンスであり得るか、又は異なるFSM仕様により指定された異なる有限状態機械のインスタンスであり得る。
【0139】
図5Cは、本明細書に記載される技術の幾つかの実施形態による、ビジネス用語データオブジェクトへの変更を行う例示的な2次有限状態機械550の一例を示す。参照のために1次状態機械500の一部が
図5Cに含まれている。幾つかの実施形態では、FSM550の仕様は、FSM仕様ストア132の1つであり得、FSM550は、ワークフロー実行エンジン133を使用してインスタンス生成し得る。
【0140】
図5Cに示されるように、2次FSM550は、5つの状態を有する:開始状態552、オープン状態554、提出状態556、承認状態558及び放棄状態560。公開されたデータオブジェクトの属性が変更される場合、1次FSMにより管理されるワークフローの現在の状態は、状態501から状態502に移り、この変更のライフサイクルを管理する2次FSM550のインスタンスの生成をトリガーする。2次FSM550により管理されているワークフローの現在の状態は、開始状態552からオープン状態554に移る。オープン-オープン編集遷移(状態554からそれ自体への)があるため、現在のワークフロー状態が状態554である間、属性は、編集可能なままである。現在のワークフロー状態がオープン状態554であり、授権アクターが変更を破棄する場合、現在のワークフロー状態は、放棄状態560に移る。他方では、授権アクターが提案された変更を承認に向けて提出する場合、現在のワークフロー状態は、オープン状態554から提出状態556に移る。
【0141】
幾つかの実施形態では、現在のワークフロー状態が提出状態556である場合、編集を提出したアクターが編集を取り下げるとき又はレビューアが編集を拒絶するとき、現在のワークフロー状態は、状態554に戻り得る。他方では、変更が承認される場合、現在のワークフロー状態は、承認状態558に遷移し、編集は、データ処理システムによりコミットされる。
【0142】
幾つかの実施形態では、変更保留状態502に関連付けられた全ての2次有限状態機械が終点状態(放棄状態560又は承認状態558)に達した場合、2次有限状態機械のインスタンスは、削除され、1次FSM500により管理されているワークフローの現在のワークフロー状態は、公開状態501に戻る。
【0143】
自動的にトリガーされる行動
幾つかの実施形態では、データ処理システムは、1つ又は複数のトリガーイベントに応答して1つ又は複数の行動を自動的に実行し得る。イベントは、データ処理システムにおいて定義され得(例えば、プログラミング、構成設定、ルール等を通して)、行動の実行をトリガーするために使用することができる。そのような行動の例には、限定ではなく、1人又は複数のアクター及び/又はシステム(例えば、下流システム、外部システム及び/又は任意の他のシステム)への通知(例えば、電子メール通知、SMSメッセージ、MMSメッセージ、架電又は任意の他の適したタイプの通信)の生成及び送信、別のコンピュータプログラム(例えばスクリプト)の実行のトリガー並びにデータオブジェクトのワークフローにおける状態遷移の発生がある。
【0144】
別の特定の例として、データ処理システムの管理者は、誰かがビジネス用語への変更を提出したときには常に、電子メールを関連する当事者に送信させる通知トリガーをセットアップし得る。別の特例の例として、データ処理システムの管理者は、特定のワークフロー状態になった場合、スクリプに分類をビジネス用語に自動的に追加させるトリガーをセットアップし得る。別の特定の例として、データ処理システムの管理者は、特定のワークフロー状態(例えば「保留ドラフト承認」状態)になる前、スクリプトに特定の分類(例えば「ガバナンスグループ」分類」)の存在について自動的にチェックさせ、そのような分類が指定されていなかった場合、エラーメッセージを表示させるトリガーをセットアップし得る。
【0145】
したがって、幾つかの実施形態では、データ処理システムの管理者は、通知(例えば、電子メール)、スクリプト(例えば、Apache Groovyスクリプト言語)又は状態遷移等の行動をトリガーするイベントを定義し得る。幾つかの実施形態では、イベントは、ワークフロー活動に応答して又はリモート要求の受信(例えば、RESTウェブサービスを介して受信されたHTTP要求)に応答して生じ得る(それにより、行動をトリガーする)。
【0146】
行動をトリガーし得るイベントの非限定的な例には、(1)データオブジェクトの有限状態機械が特定のワークフロー状態になる場合(例えば、ビジネス用語が特定のワークフロー状態になる場合、ビジネス用語の分類を検証するスクリプトをトリガーして実行し得る)、(2)データオブジェクトのFSMが特定のワークフロー状態から出る場合、(3)ワークフローのFSM遷移が生じる前、(4)ワークフローのFSM遷移が生じた後(例えば、データオブジェクトの新しいバージョンの開始は、1人又は複数の承認者への通知をトリガーし得る)、(5)ワークフロー決定が開始される場合、(6)ワークフロー決定が解決される場合、(7)決定参加者が投票オプションを選択する場合がある。
【0147】
通知の場合、例えば、イベントの以下のリストは、通知をトリガーし得るイベントの例の非限定的なリストである:(1)変更が指定された承認者により承認される場合、(2)変更が、オーバーライド特権を有するアクターにより承認される場合、(3)アクターがデータオブジェクトへの変更を提出し、承認決定が開始される場合、(4)変更への全ての承認が受信され、変更がデータストアに対してコミットされた後、(5)「ドラフト」状態のデータオブジェクトが削除される場合、(6)「公開」状態のデータオブジェクトが削除とマークされる場合、(7)「承認保留」状態のデータオブジェクトが破棄される場合、(8)保留中の変更が破棄される場合、(9)保留中の変更がオーバーライド特権を有するアクターにより破棄される場合、(10)指定された承認者が変更を拒絶する場合、(11)変更が提出される場合、(12)ユーザが保留中の変更を取り下げた場合、及び(13)変更がオーバーライド特権を有するユーザにより取り下げられた場合。
【0148】
インポートを管理する有限状態機械
幾つかの実施形態は、複数のデータオブジェクトをバッチでインポートすることを管理する有限状態機械を提供し、これは、インポート中、多くの(例えば、数千、数百万の)データオブジェクトが同じ承認プロセスを受け得るため、有利であり得る。個々の各データオブジェクトをインポートする異なる有限状態機械をインスタンス生成するのではなく、幾つかの実施形態では、1つの有限状態機械をこのために利用し得る。
【0149】
図6Aは、本明細書に記載される技術の幾つかの実施形態による、複数のデータオブジェクトの追加、変更及び/又は削除をインポートする有限状態機械600を示す。幾つかの実施形態では、FSM600の仕様は、FSM仕様132の1つであり得、FSM600は、ワークフロー実行エンジン133を使用してインスタンス生成し得る。
【0150】
図6Aに示されるように、FSM600は、6つのワークフローを含む:開始状態602、準備完了状態604、オープン状態606、提出状態608、承認状態610及び放棄状態612。アクターがデータ処理システムを使用してデータオブジェクトのインポートを開始する場合、FSM600のインスタンスが生成され、現在のワークフロー状態は、準備完了状態604に移る。現在のワークフロー状態が状態604であり、インポートが完了に失敗する場合、アクターは、インポートされたデータオブジェクトを放棄し得(例えば、アクターに提示されるGUI上の「破棄」ボタンをクリックすることにより)、現在のワークフロー状態は放棄状態612に遷移し、ワークフローは、完了する。他の場合、インポートが完了するとき、現在のワークフロー状態は、オープン状態606に遷移する。
【0151】
幾つかの実施形態では、現在のワークフロー状態がオープン状態606である場合、授権アクターは、インポートされたデータオブジェクトを破棄し得、その場合、現在のワークフロー状態は、放棄状態612に移り、ワークフローは、完了するか、又はインポートされたデータオブジェクトを承認に向けて提出し得、その場合、現在のワークフロー状態は、提出状態608に移る。
【0152】
幾つかの実施形態では、現在のワークフロー状態が提出状態610である場合、インポートが拒絶される(例えば、1人又は複数の授権レビューアにより)とき、現在のワークフロー状態は、オープン状態606に戻る。他方では、インポートが承認される場合、現在のワークフロー状態は、承認状態610に遷移し、ワークフローは、完了する。幾つかの実施形態では、オブジェクトのインポートがユーザインターフェースを通して管理されるべき場合、データオブジェクトに「インポート」状態が自動的に割り当てられ、データオブジェクトは、バッチインポートが完了した後、個々の1次ワークフローを継続する。
【0153】
図6Bは、本明細書に記載される技術の幾つかの実施形態による、複数のデータオブジェクトの追加、変更及び/又は削除を条件付きでインポートする有限状態機械650を示す。FSM650は、条件付き遷移を含み、それにより、予め定義された条件が満たされる場合のみ(例えば、1つ又は閾値数のエラー発生、1つ又は複数のインポートされた記録の拒絶)、インポートの承認を要求することができる。幾つかの実施形態では、FSM650の仕様は、FSM仕様132の1つであり得、FSM650は、ワークフロー実行エンジン133を使用してインスタンス生成し得る。有限状態機械での分岐能力が、本例の場合のようにワークフローインポートプロセスに限定されず、本明細書に記載される技術の実施形態によれば、データオブジェクトのワークフローを管理する任意の有限状態機械で使用し得ることを理解されたい。
【0154】
図6Bに示されるように、FSM650は、7つのワークフロー状態を含む:開始状態652、準備完了状態654、オープン状態656、レビュー必要状態658、提出状態660、承認状態662及び放棄状態664。アクターがデータ処理システムを使用してデータオブジェクトのインポートを開始する場合、FSM650のインスタンスが生成され、現在のワークフロー状態は、準備完了状態654に移る。現在のワークフロー状態が状態654であり、インポートが完了に失敗する場合、アクターは、インポートされたデータオブジェクトを放棄し得(例えば、アクターに提示されるGUI上の「破棄」ボタンをクリックすることにより)、現在のワークフロー状態は、放棄状態664に遷移し、ワークフローは、完了する。他の場合、インポートが完了するとき、現在のワークフロー状態は、オープン状態656に遷移する。
【0155】
幾つかの実施形態では、現在のワークフロー状態がオープン状態656であり、レビュー条件が満たされない(例えば、インポートにエラーなし、インポートにおいて拒絶された記録なし等)場合、現在のワークフロー状態は、承認状態662に遷移し、ワークフローは、完了する。他方では、レビュー条件が満たされる場合、現在のワークフローは、レビュー必要状態658に遷移する。
【0156】
幾つかの実施形態では、現在のワークフロー状態がレビュー必要状態658である場合、授権アクターは、インポートされたデータオブジェクトを破棄し得、その場合、現在のワークフロー状態は、放棄状態664に移り、ワークフローは、完了するか、又はインポートされたデータオブジェクトを承認に向けて提出し得、その場合、現在のワークフロー状態は、提出状態660に移る。
【0157】
幾つかの実施形態では、現在のワークフロー状態が提出状態660である場合、インポートが拒絶される(例えば、1人又は複数の授権レビューアにより)とき、現在のワークフロー状態は、レビュー必要状態658に戻る。他方では、インポートが承認される場合、現在のワークフロー状態は、承認状態662に遷移し、ワークフローは、完了する。
【0158】
ワークフロータスクを実行するアクターの識別
本明細書に記載されるように、データ処理システムは、データオブジェクトのワークフロー中の異なるワークフロータスクの実行に異なるアクターを認可し得る。例えば、異なるアクターは、データオブジェクトへの変更を行う権限及び変更をレビュー(例えば、承認又は拒絶)する権限を有し得る。一般に、1人又は複数のアクターの組は、ワークフロー中の各ワークフロータスクのワークフロータスクを実行する権限を有するアクターとして識別され得る。2つの異なるタスクは、同じ組の1人又は複数のアクター又は異なるアクターに関連付けられ得る。
【0159】
幾つかの実施形態では、データ処理システム(例えば、許可モジュール135を使用するデータ処理システム120)は、データオブジェクトのワークフロー中の1つ又は複数のワークフロータスクのそれぞれのワークフロータスクを実行する権限を有する者として、1人又は複数のアクターを識別し得る。例えば、幾つかの実施形態では、1人又は複数のアクターは、ワークフローを管理するFSMの遷移の1つ又は複数(例えば、全て)のそれぞれのワークフロータスクを実行する権限を有する者として識別され得る。例えば、1人又は複数のアクターは、アクター入力が求められる状態遷移 - 編集又は承認等 - (例えば、自動遷移ではない)により表されるワークフロータスクを実行する権限を有する者として識別され得る。
【0160】
幾つかの実施形態では、授権アクターの識別は、データ処理システムにより記憶され、ワークフロー管理を推進するために1つ又は複数の機能の実行に使用し得る。例えば、幾つかの実施形態では、データ処理システムは、ワークフロータスクを実行する権限を有するアクター(例えば、データオブジェクトへの変更を少尉人する権限を有するレビューア)に、アクターがワークフロータスクを実行できるようにするグラフィカルユーザインターフェース(例えば、レビューアが、データオブジェクトへの提案された変更を承認又は拒絶できるようにするグラフィカルユーザインターフェース)を提供し得る。別の例として、幾つかの実施形態では、データ処理システムは、アクターが1つ又は複数のワークフローに関して実行する1つ又は複数のワークフロータスクを有することをアクターに通知し得る(例えば、電子メール、テキストメッセージにより、アプリケーションプログラムを通して且つ/又は任意の他の適したタイプの通信を通して)。更に別の例として、幾つかの実施形態では、データ処理システムは、1つ又は複数のワークフロータスクを実行する権限を有する者として識別された1人又は複数のアクターの身元情報ついて1人又は複数のアクター(例えば、自身ではワークフロータスクを実行しない監督アクター)に通知し得る(例えば、監督アクターが、誰がワークフロータスクを実行する権限を有するかを認識するように)。更に別の例として、幾つかの実施形態では、データ処理システムは、1つ又は複数のタスクが実行されるべきであることを示す通知及び/又はタスクを実行する権限を有する1人又は複数のアクターを識別する情報を1つ又は複数の他のシステム(例えば下流システム)に提供し得る。
【0161】
ワークフローデータオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを識別する幾つかの技法を本発明者らは開発した。幾つかの実施形態では、ワークフローアクターは、直接選択され得る。例えば、1人又は複数のアクターは、特定のデータオブジェクトの1つ又は複数の特定の行動を実行する権限を有する者として指定され得る(例えば、グラフィカルユーザインターフェースを通してアクターにより)。例えば、特定のビジネス用語データオブジェクトに変更を行う権限を有するアクターを入力し得る。しかしながら、特に、データ処理システムが多くの(例えば、数百、数千、数百万の)データオブジェクトの非常に多くのワークフローをサポートし得ることを考えると、ワークフロー毎及びデータオブジェクト毎にアクターをワークフロー行動に割り当てることが非現実的であることを本発明者らは理解していた。大規模で動作するために、本発明者らは、データオブジェクト属性、他のオブジェクトへの関係等に基づいて、オブジェクトのターゲットグループ(例えば階層)のアクターを動的且つ自動的に識別するルールを開発した。
【0162】
したがって、幾つかの実施形態は、ワークフロータスクを実行する権限を有するアクターを識別する自動技法を提供する。幾つかの実施形態では、データ処理システムは、データオブジェクトに関連付けられた情報を使用して、データオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを識別し得る。例えば、幾つかの実施形態では、データ処理システムは、データオブジェクトの1つ又は複数の属性の値に基づいて、データオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを識別し得る。
【0163】
一例として、データ処理システムは、もう1つの階層にデータオブジェクトを編成することにより複数のデータオブジェクトを管理し得、データオブジェクトは1つ又は複数の属性を含み得、属性の値は、データオブジェクトが属する1つ又は複数の階層を示す。データ処理システムは、この1つ又は複数の属性の値を使用して、そのオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを識別し得る。例えば、データオブジェクト「A」は、データオブジェクトの階層中のデータオブジェクトBに関連し得る(例えば、データオブジェクトBの子孫であり得る)。幾つかの実施形態では、データ処理システムは、階層を使用して、1人又は複数のアクターの特定の組に、データオブジェクトBに対して特定のワークフロータスクを実行する権限が与えられていることを識別し得、データオブジェクトBに対して同じ特定のワークフロータスクを実行する権限をこのアクターの組に付与し得る。幾つかの実施形態では、データオブジェクトBは、データオブジェクトAの親又は祖先であり得る。
【0164】
この手法の一例を
図7Aの例示的な実施形態に示し、
図7Aは、データオブジェクトを含む少なくとも1つのデータオブジェクト階層中の少なくとも1つの他のデータオブジェクトに指定された情報を使用して、データオブジェクトの1つ又は複数のワークフローアクターを識別することを示す。
図7Aに示されるように、データオブジェクト701は、データオブジェクト702の子であり、及びデータオブジェクト702は、データオブジェクト703の子である。アクター704(この例では「アダム」及び「グレッグ」)は、「責任者」としてデータオブジェクト703に割り当てられており、したがって「責任者」が実行する権限を有する任意のワークフロータスクを実行する権限を有する。データ処理システムは、データオブジェクト701の「責任者」としてアクター704を識別され得る。このようにして、授権アクターは、継承を通して識別し得る。特定のデータオブジェクトのワークフロータスクを実行する許可は、オブジェクト階層中の1つ又は複数の関連するデータオブジェクトから継承され得る。
【0165】
この手法の別の例を
図7Dの例示的な実施形態に示し、
図7Dは、データオブジェクトを含む複数のデータオブジェクト階層に指定された情報を使用して、データオブジェクト716のワークフローアクターを識別することを示す
図715を示す。この例では、データオブジェクト716(ビジネス用語「信用スコア」を表すビジネス用語データオブジェクト)は、2つの階層の一部である - データオブジェクトの「住宅ローン貸付」階層717及び「自動車ローン貸付」718。これらの階層のそれぞれは、「レビューア」の各組に関連付けられ、レビューアは、「レビューア」が実行する権限を有するあらゆるワークフロータスクを実行する権限を有する。実際には、幾つかの実施形態では、ワークフロータスクは、ワークフロータスクの授権アクターが「レビューア」のメンバであるように指定し得る。その結果、データオブジェクトに「レビューア」の組を識別することは、何れのアクターが、そのデータオブジェクトを含むワークフローの「レビューア」ワークフロータスクを実行する権限を有するかを識別することに等しい。
【0166】
この例では、「住宅ローン貸付」階層717は、レビューア719a(この例ではイアン、ウィル及びリサ)に関連付けられ、「自動車ローン貸付」階層718は、レビューア719b(この例ではジョーン及びダナ)に関連付けられる。この例では、レビューアの両方の組(すなわちレビューア719a及び719b)は、レビューアワークフロータスクが適した投票ルール(例えば、過半数投票、全員一致投票、各グループから少なくとも1人のレビューア等)に従ってそれらの全てを含み得るような1次オブジェクト716の授権「レビューア」として識別され得る。例えば、変更がデータオブジェクト716に対して行われた場合、その変更に対するレビュープロセスは、5人全てのレビューアによる投票を必要とし得、レビューアの過半数が変更を承認する場合、承認が認められ得る。投票ルールについて更に詳細に後述するが、この例は、データオブジェクト(例えばデータオブジェクト716)が、データオブジェクトが属する複数のデータオブジェクト階層(例えば、階層717及び718)を指定する属性を有し得、ワークフロータスク(例えば、データオブジェクト716への変更の承認)を実行する権限を有するアクターが、指定された階層に関連付けられたアクターを識別することにより、この属性の値に基づいて識別され得ることを示す。
図1D、
図1E、
図1F及び
図1Gへの参照を含めて他の例も本明細書に記載される。
【0167】
データオブジェクトの1つ又は複数の属性の値に基づいて、データオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを自動的に識別する技法の別の例として、幾つかの実施形態では、データ処理システムは、分類属性の値に基づいて、1つ又は複数の分類属性を有するデータオブジェクトのワークフロータスクを実行する権限を有する1人又は複数のアクターを識別し得る。例えば、システムは、データオブジェクトのガバナンスグループ分類属性の値、データオブジェクトの秘密度分類属性の値、データオブジェクトの個人識別可能情報(PII)分類属性の値及び/又はデータオブジェクトの任意の他の適した分類属性の値を使用して、データオブジェクトのワークフロータスクを実行する1人又は複数のアクターを識別し得、その例を本明細書に提供する。
【0168】
この手法の一例を
図7Bの例示的な実施形態に示し、
図7Bは、データオブジェクトの分類属性の値に基づいて、データオブジェクトの1つ又は複数のワークフローアクターを識別することを示す
図705を示す。
図7Bに示されるように、データオブジェクト706は、秘密度分類属性707を有し、データ処理システムは、この属性の値に基づいて授権アクター(例えば、例えばデータオブジェクトへの変更の承認等の「レビューア」タスクを実行する)を識別し得る。この例では、秘密度分類属性707の値は、「高機密」であり、データ処理システムは、その値に基づいてアクター708を識別することに繋がる - この例で識別されるアクターは、カール、ジョン及びセキュリティオフィサー709(レネー及びイーサン)である。これとは対照的に、
図7Cに示されるように、データオブジェクト711の分類属性の値は、「公開」であり、データ処理システムは、「レビューア」タスクを実行する権限を有するアクターとして異なるアクター(アクター713 - この例ではサラ及びジェス)を識別することに繋がる)。
【0169】
幾つかの実施形態では、ワークフロータスクを実行する権限を有するアクターがデータオブジェクト属性の値に基づいて識別される場合、データオブジェクト属性の値が変わるとき、授権アクターは、変更され得る。この変更は、ワークフローの実行中にも行われ得る。例えば、データオブジェクトへの変更が秘密度分類属性の値への変更(例えば、「機密」から「高機密」)を含む場合、レビューアの異なる(例えば、より大きい)組は、この変更及び/又は他の変更をレビューする者として識別され得る。
図1H及び
図1Iへの参照を含めてこの他の例も本明細書に記載される。
【0170】
投票方式
本明細書に記載されるように、幾つかのワークフロータスクは、1人又は複数の当事者により行われる決定である。例えば、1人又は複数のレビューアは、データオブジェクトへの保留中の変更を承認すべきか又は拒絶すべきかを決定し得る(例えば、FSM400の状態416を参照して説明したように)。別の例として、1人又は複数のレビューアは、データオブジェクトを削除すべきか否かを決定し得る(例えば、FSM400の状態408を参照して説明したように)。更に別の例として、1人又は複数のレビューアは、保留中の問題が解決されたか否かを決定し得る(例えば、FSM350の状態358を参照して説明したように)。
【0171】
1人のみのアクターが意思決定に割り当てられる場合、その1人のアクターの入力が決定を完全に決める。しかしながら、幾つかの実施形態では、複数のアクターが決定への投票に割り当てられ得、投票方式を利用して、個々の投票に基づいて全体の決定を決める。例えば、幾つかの実施形態では、保留中の変更を承認するのに必要であるのは、割り当てられた意思決定者の1人のみであり得る。幾つかのそのような実施形態では、割り当てられた意思決定者の1人が変更を承認すると直ちに、保留中の変更は、承認され、意思決定者の全てが変更を拒絶する場合、変更は、拒絶される。例えば、
図7Eの
図720に示されるように、「セキュリティ承認者」のグループは、3人のレビューア(セキュリティオフィサー、カール及びジョン)を含むものとして定義されており、グループは、秘密度分類属性が「高機密」の値をとるあらゆるデータオブジェクトに「レビューア」として割り当てられ得る。グループには、投票方式パラメータ「シングル」が構成されており、3人のレビューアの何れか1人が保留中の変更を承認すると直ちに、変更が承認されることを示す。例えば、カールが保留中の変更を承認した場合、変更は、承認され、他のレビューアがログインして保留中の行動を見るとき、ワークキューに投票ボタンが提示されない。
【0172】
図7Eの例では、レビューアの2人は、個人である一方、レビューアの1人(「セキュリティオフィサー」)は、その何れか1人が「セキュリティオフィサー」グループ全体として投票し得る複数のレビューアのグループ(レネー及びイーサン)である。したがって、レネー又はイーサンの何れかが保留中の変更を承認し得る。
【0173】
幾つかの実施形態では、保留中の変更を承認するのに、割り当てられた意思決定者の過半数が必要である。例えば、
図7Fの
図725に示されるように、レネー及びジョンが両方とも保留中の変更を拒絶すると、意思決定者の過半数が変更を承認する方法がもはやないため、保留中の変更は、拒絶される。
【0174】
幾つかの実施形態では、投票は、全員一致でなければならず、保留中の変更が承認されるには、割り当てられた全ての意思決定者が保留中の変更を承認することが求められる。例えば、
図7Gの
図730に示されるように、イーサン、カール及びジョンが全て承認に投票する場合、保留中の変更は、承認される。
【0175】
幾つかの実施形態では、投票方式及び他の意思決定者の投票をオーバーライドする権限を有する意思決定者が存在し得る。例えば、そのような意思決定者は、他の意思決定者によって提供された投票を見て、それらを考慮に入れるが、最終的に、保留中の変更が承認されるか又は拒絶されるかに関して自身で最終決定を下し得る。
【0176】
幾つかの実施形態では、データオブジェクトは、複数のデータオブジェクト階層に属し得、決定ワークフロータスクには、複数の階層のそれぞれに関連付けられた意思決定者が関わり得る。幾つかのそのような実施形態では、階層投票方式を利用し得、この方式では、保留中の変更が承認されるには、個々の各階層の投票方式が満たされなければならない。
【0177】
例えば、
図7Hの
図735に示されるように、データオブジェクトへの保留中の変更は、(1)住宅ローン貸付ビジネス階層に関連付けられた意思決定者の1人が変更を承認し、且つ(2)自動車ローン貸付ビジネス階層に関連付けられた意思決定者の1人が変更を承認する場合、「LOB承認者」により承認される。例えば、ウィル(住宅ローン貸付階層における意思決定者)が、保留中の変更に投票し承認した最初の人である場合、「承認」及び「拒絶」ボタンは、イアン及びリサのワークキューから削除されることになるが、投票は、ジョーン及びダナ(自動車ローン貸付階層における意思決定者)に開かれたままである。ジョーンが保留中の変更を承認する場合、保留中の変更は、承認されるが、ジョーンが変更を拒絶した場合、
図7Hに示されるように、保留中の変更は、拒絶される。
【0178】
別の例として、
図7Iの
図740に示されるように、複数の階層のそれぞれで過半数の承認が求められる。したがって、データオブジェクトへの保留中の変更は、(1)住宅ローン貸付ビジネス階層に関連付けられた意思決定者の過半数が変更を承認し、且つ(2)自動車ローン貸付ビジネス階層に関連付けられた意思決定者の過半数が変更を承認する場合、「LOB承認者」により承認される。例えば、
図7Iの図では、イアン、リサ、ジョーン及びダナが変更を承認する場合、変更は、承認される。
【0179】
別の例として、複数の階層のそれぞれで全員一致の承認が求められる場合、データオブジェクトへの保留中の変更は、(1)住宅ローン貸付ビジネス階層に関連付けられた全ての意思決定者が変更を承認し、且つ(2)自動車ローン貸付ビジネス階層に関連付けられた全ての意思決定者が変更を承認する場合、「LOB承認者」により承認される。
【0180】
幾つかの実施形態では、意思決定者の複数のグループが決定に割り当てられ得る。例えば、
図7J~
図7Mに示されるように、レビューアの3つのグループ(「セキュリティ承認者」、「幹事承認者」及び「LOB承認者」)が決定に割り当てられ得る。シングル、過半数又はこれらのグループのそれぞれ1人からの承認が求められ得る。例えば、
図7Jの
図745に示されるように、シングルグループからの承認が求められる場合、アンネが「幹事承認者」グループの代表として保留中の変更を承認するとき、保留中の変更は、承認され、コミットされる - 承認及び拒絶ボタンは、他のあらゆる人のワークキューから削除される。
【0181】
別の例として、
図7Kの
図750に示されるように、グループの過半数からの承認が求められる場合、カール及びジョンが変更を承認し、「セキュリティ承認者」グループの過半数要件を満たすが、アンネは、「幹事承認者」グループの代表として変更を拒絶すると考える。この場合、過半数は、なお可能であるため、投票は、オープンなままである。ウィルが、次に、住宅ローン貸付階層で変更を承認し、ジョーンが自動車ローン貸付階層で変更を承認する場合、保留中の変更は、全体的に承認され、コミットされる。
【0182】
別の例として、
図7Lの
図755に示されるように、全てのグループからの承認が求められる場合、保留中の変更は、例えば、(1)カール及びジョンが保留中の変更を承認し、「セキュリティ承認者」グループの過半数要件を満たし、(2)アンネが「幹事承認者」の代表として保留中の変更を承認し、且つ(3)ウィル及びジョーンが住宅ローン貸付階層及び自動車ローン貸付階層の代表として変更を承認する場合、承認される。他方では、
図7Mの
図760に示されるように、アンネが「幹事承認者」グループの代表として保留中の変更を拒絶する場合、全員一致決定がもはや可能ではなく、保留中の変更は、拒絶される。
【0183】
1次及び2次有限状態機械を使用して管理されるワークフローの例
本明細書に記載されるように、幾つかの実施形態では、データオブジェクトのワークフローは、1つ又は複数の有限状態機械を使用して管理され得る。例えば、データオブジェクトに対して変更を行うワークフローは、1次有限状態機械及び1つ又は複数の2次有限状態機械を使用して管理し得る(例えば、データオブジェクトの属性への細かい粒度の変更を管理するために)。加えて、本明細書に記載されるように、幾つかの実施形態では、データオブジェクトのワークフローにけるワークフロータスクを実行するために、グラフィカルユーザインターフェースを生成し、種々のアクターに提示し得る。これらの実施形態の態様は、
図8A~
図8Nに示されるビジネス用語データオブジェクトへの変更を管理するワークフロー例を参照して以下に更に説明される。
【0184】
図8Aは、本明細書に記載される技術の幾つかの実施形態による、複数のビジネス用語データオブジェクトを示すグラフィカルユーザインターフェース800の図である。GUI800は、260のビジネス用語データオブジェクトを含むビジネス用語集中のビジネス用語のビジネス用語データオブジェクトについての情報を提供する。GUI800は、「口座タイプ」データオブジェクト802、「会計公開」データオブジェクト803、「会計単位」データオブジェクト804、「住所」データオブジェクト805及び「住所ライン1」データオブジェクト806を含め、英字でソートされた順に260のビジネス用語データオブジェクトの最初の少数のリストを示す「サーチ結果」ペイン801を含む。
【0185】
アクターがGUI800を通してビジネス用語データオブジェクトを選択することに応答して、データ処理システムは、選択されたビジネス用語データオブジェクトについての情報をアクターに提供し得る。例えば、アクターが「会計公開」データオブジェクト803を選択したことに応答して、データ処理システムは、例えば、
図8Bに示されるGUI810等のデータオブジェクト803についての情報をアクターに提供するGUIを生成し得る。
【0186】
図8Bに示されるように、GUI810は、特に、データオブジェクト803の属性についての情報を表示する。例えば、GUI810は、特に、以下の属性の値を含む属性の値を示す:(1)BTDOにより表されるビジネス用語が属する辞書を示す値を有する辞書属性811;(2)BTDOの識別子又は名前を示す値(この例では「会計公開」)を有する名前属性812;(3)BTDOの定義を提供する値(この例では「企業のエクイティ、資本、負債又は収益の価値が、為替レートが変わった結果として変化するリスク。これは、ファームがエクイティ、資本、負債又は収益の一部を外貨建てする場合に生じる。」)を有する定義属性813;(4)少なくとも1つの階層におけるBTDOの親データオブジェクトを示す値を有する親用語属性814;(5)BTDOが属する1つ又は複数の階層のリスト(この例では「金融リスク」、階層815a、「企業監査」階層815b及び「口座」階層815cを含む)であり得る階層属性815;(6)BTDOが属する1つ又は複数のガバナンスグループのリストであり得るガバナンスグループ属性816a(この例では「リスク」、「流動性」及び「金融」)、BTDOの秘密度レベルを示す秘密度分類属性816b(この例では「内部」、「公開」、「機密」及び「高機密」)及び個人識別可能情報(「PII」)分類属性816c(例えば、「レベル1」、「レベル2」等)を含む種々の分類属性816;(7)ビジネス所有者属性817a(この例では「ウェイドL.レジスター」)、幹事属性817b(この例では「アビーA.ウィリアムズ」)及び対象分野の専門家属性817c(この例では「ローザS.トッド」及び「ドナルドD.メース」)を含む種々の責任者属性817。
【0187】
種々のアクターは、ビジネス用語データオブジェクトに対して異なる行動を実行する権限を有し得る。この例では、「アビーA.ウィリアムズ」又は「アビー」は、「会計公開」ビジネス用語データオブジェクト803の幹事であり、このデータデータオブジェクトに対して変更を行う権限を有する。アビーは、アビーがデータ処理システムにログインすると見ることができる、例えば、
図8Cに示されるGUI820のようなグラフィカルユーザインターフェースを通してこれらの変更を行うことが可能である。この例では、「会計公開」データオブジェクトへの変更は、後述する
図9A~
図9D及び
図10に示される1次有限状態機械及び2次有限状態機械を使用して管理され得る。代替的に、変更は、
図4A~
図4D及び
図5A~
図5Cを参照して説明された有限状態機械を使用して管理され得る。
図8CにおけるGUI要素821により示されるように、データオブジェクト803への変更を管理する1次有限状態機械の現在の状態は、「公開」状態である。
【0188】
この例では、アビーは、GUIインターフェース820を通して定義属性813の値を変更する。その結果、
図8DのGUIインターフェース825におけるGUI要素826により示されるように、1次状態機械の状態は、「公開」状態から「承認保留」状態に変わる。加えて、この変更の結果として、定義属性813の値への変更を承認するワークフローを管理するために、2次有限状態機械がインスタンス生成される。GUI要素827により示されるように、2次有限状態機械の状態は、「オープン」である。2次FSMの現在のワークフロー状態が「オープン」状態である場合、アビーは、定義属性813への変更をレビューに向けて提出するか、又は変更を破棄する権限を有し、このために、データ処理システムは、アビーがこれらの行動の一方を実行できるようにするボタン828a及び828bを有するGUI部分828を生成する。
【0189】
次に、
図8EのGUI830により示されるように、アビーは、PII分類属性816cの値を変更することによりデータオブジェクト803への別の変更を行う。この変更の結果として、PII分類属性816の値への変更を承認するワークフローを管理するために、別の2次有限状態機械がインスタンス生成される。GUI要素831により示されるように、2次FSMの状態は、「オープン」状態である。2次FSMの現在のワークフロー状態が「オープン」状態である場合、アビーは、PII分類属性816cへの変更をレビューに向けて提出するか、又は変更を破棄する権限を有し、このために、データ処理システムは、アビーがこれらの行動の一方を実行できるようにするボタン832a及び832bを有するGUI部分832を生成する。
【0190】
次に、アビーは、ボタン828aを使用して定義属性813への変更をレビューに向けて提出する。その結果、この変更を管理する2次有限状態機械の状態は、
図8FのGUI835におけるGUI要素836により示されるように、「提出」状態に遷移する。
図8GのGUI837におけるペイン838に示されるように、この提出された変更は、3人のレビューア - リスクレビューア、流動性レビューア及び金融レビューア - により承認されるべきである。
【0191】
次に、この例では、リスクレビューアがログインし、定義属性813の値への提出された変更を承認又は拒絶できるようにする、
図8Hに示されるGUI840がリスクレビューアに提示される。リスクレビューアは、承認ボタン841a及び拒絶ボタン841bのそれぞれを通してこの行動をとり得る。
【0192】
次に、この例では、金融レビューアがログインし、定義属性813の値への提出された変更を承認又は拒絶できるようにする、
図8Iに示されるGUI845が金融レビューアに提示される。金融レビューアは、承認ボタン846a及び拒絶ボタン846bのそれぞれを通してこの行動をとり得る。この行動前に、金融レビューアは、GUI部分847を通して、他の1人のレビューアが変更を承認したが、2人のレビューア(すなわち金融レビューア及び流動性レビューア)が決定を依然として提出しておらず、決定がなお保留中であることを知り得る。
【0193】
定義属性813の値への提出された変更を承認した後、金融レビューアは、
図8Jに示されるGUI850を通して自身のワークキューを閲覧し得る。
【0194】
次に、この例では、アビーは、定義属性813について自身が提出した変更が承認されたか否かを見るためにログインする。
図8Kに示されるGUI855を通して、アビーは、変更が3人のレビューアのうちの2人により承認されたが、1つの承認(流動性レビューアからの)がなお保留中であることをGUI部分856において見ることができる。
【0195】
次に、この例では、流動性レビューアがログインし、定義属性813の値への提出された変更を承認又は拒絶できるようにする、
図8Lに示されるGUI860が流動性レビューアに提示される。流動性レビューアは、ペイン861に示される承認ボタン861a及び拒絶ボタン861bのそれぞれを通してこの行動をとり得る。
【0196】
3人全てのレビューアが、提出された変更を承認した結果として、変更は、承認され、この変更の承認プロセスを管理する2次有限状態機械のインスタンスは、完了し、削除される。次に、アビーが提出のステータスをチェックするためにログインし、定義属性813の値への提出された変更が承認されたことを示す、
図8Lに示されるGUI865がアビーに提示される。
【0197】
それにもかかわらず、アビーは、PII分類属性816cへの自身が提案した変更に関して何れの行動をとるか決定する必要がある。この例では、アビーは、ボタン831bを使用することにより変更を破棄する。最初に変更が承認され、次に変更が破棄された状態でそれ以上の保留中の変更はなく、1次有限状態機械の現在のワークフロー状態は、
図8Nに示されるGUI870のGUI要素871により示されるように、「承認保留」状態から「公開」状態に遷移する。
【0198】
上記例から理解し得るように、2次有限状態機械を使用することで、異なる属性への変更を行うワークフローは、互いから独立して進むことができる。
【0199】
図9Aは、本明細書に記載される技術の幾つかの実施形態による、有限状態機械仕様のリストを示すグラフィカルユーザインターフェース910の図である。グラフィカルユーザインターフェース910は、有限状態機械仕様をレビュー、編集、追加及び/又は削除するためのGUIをアクターに提供するために、データ処理システムにより(例えばGUI生成モジュール134により)生成され得る。
図9Aの説明のための例では、GUI910は、
図6A及び
図6Bを参照して説明したインポート状態機械の仕様並びに
図8A~
図8Nに示されるワークフローを可能にするために使用される1次及び2次状態機械を含む複数の異なる有限状態機械仕様のリストを示す。
【0200】
図9Bは、本明細書に記載される技術の幾つかの実施形態による、
図8A~
図8Nの例においてデータオブジェクトの変更を管理する1次有限状態機械を示すグラフィカルユーザインターフェース920の図である。GUI920は、GUI910を通してこの状態機械の状態図を見ることをアクターが選択したことに応答して、アクターに提示され得る。
【0201】
図9Cは、
図9Bに示されるFSMの状態をレビュー、追加、削除及び/又は編集できるようにするグラフィカルユーザインターフェース930の図である。例えば、ユーザインターフェース930は、状態のプロパティを編集する(例えば、2次有限状態機械に関連付けられる状態がある場合、それが何れの状態であるか等を指定することにより)ために使用され得る。また、
図9Cに示されるように、アクターは、状態を選択し、状態に関連付けられた遷移を編集し得る。例えば、
図9Cに示されるように、アクターが状態表中の「開始」状態を選択したことに応答して、アクターに、開始状態に関連付けられた遷移表を提示し得る。別の例として、
図9DのGUI940に示されるように、アクターが状態表中の「変更保留」状態を選択したことに応答して、アクターに、「変更保留」状態に関連付けられた遷移表を提示し得る。
【0202】
図10は、本明細書に記載される技術の幾つかの実施形態による、
図8A~
図8Nの例においてデータオブジェクトの属性への変更を管理する2次有限状態機械を示すグラフィカルユーザインターフェース1000の図である。GUI1000も2次有限状態機械の状態の表及びそれぞれのプロパティを示す。状態(及びそれに関連付けられた遷移)は、GUI1000を通して編集、削除、追加及び/又はレビューされ得る。
【0203】
追加の実施詳細
図11は、本明細書に記載される技術を実施し得る適した計算システム環境1100の一例を示す。計算システム環境1100は、適した計算環境の単なる一例であり、本明細書に記載される技術の使用又は機能の範囲へのいかなる限定も示唆することを意図しない。計算環境1100は、例示的な動作環境1100に示される構成要素の何れか1つ又は組合せに関連するいかなる依存性又は要件も有するものとして解釈されるべきではない。
【0204】
本明細書に記載される技術は、多くの他の汎用又は専用計算システム環境又は構成を用いて動作可能である。本明細書に記載される技術との併用に適し得る周知の計算システム、環境及び/又は構成の例には、限定ではなく、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システム又はデバイスの何れかを含む分散計算環境等がある。
【0205】
計算環境は、プログラムモジュール等のコンピュータ実行可能命令を実行し得る。一般に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本明細書に記載される技術は、タスクが、通信ネットワークを通してリンクされたリモート処理デバイスによって実行される分散計算環境で実施することもできる。分散計算環境では、プログラムモジュールは、メモリ記憶装置を含むローカルコンピュータ記憶媒体及びリモートコンピュータ記憶媒体の両方に配置され得る。
【0206】
図11を参照すると、本明細書に記載される技術を実施する例示的なシステムは、コンピュータ1110の形態の汎用計算デバイスを含む。コンピュータ1110の構成要素は、限定ではなく、処理ユニット1120と、システムメモリ1130と、システムメモリを含む種々のシステム構成要素を処理ユニット1120に結合するシステムバス1121とを含み得る。システムバス1121は、多様なバスアーキテクチャの何れかを使用したメモリバス又はメモリコントローラ、周辺機器バス及びローカルバスを含め、幾つかのタイプのバスの何れかであり得る。限定ではなく、例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクス規格協会(VESA)ローカルバス及びメザニンバスとしても知られる周辺機器相互接続(PCI)バスを含む。
【0207】
コンピュータ1110は、通常、多様なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ1110によりアクセスすることができる任意の利用可能な媒体であり得、揮発性媒体及び不揮発性媒体の両方、リムーバブル媒体及び非リムーバブル媒体の両方を含む。限定ではなく、例として、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を記憶する任意の方法又は技術で実施される揮発性及び不揮発性のリムーバブル及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、限定ではなく、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)若しくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置又は所望の情報を記憶するために使用することができ、コンピュータ1010によりアクセスすることができる任意の他の媒体を含む。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール又は搬送波若しくは他の輸送メカニズム等の変調データ信号における他のデータを具現し、任意の情報輸送媒体を含む。「変調データ信号」という用語は、1つ若しくは複数の特徴セットを有するか、又は信号に情報を符号化するように変更された信号を意味する。限定ではなく、例として、通信媒体は、有線ネットワーク又は直接配線接続等の有線媒体並びに音響、RF、赤外線及び他の無線媒体等の無線媒体を含む。上記の何れかの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0208】
システムメモリ1130は、読み取り専用メモリ(ROM)1131及びランダムアクセスメモリ(RAM)1132等の揮発性及び/又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。スタートアップ中等に情報をコンピュータ1110内の要素間で転送するのに役立つ基本ルーチンを含む基本入出力システム1133(BIOS)は、通常、ROM1131に記憶される。RAM1132は、通常、処理ユニット1120が即座にアクセス可能であり、且つ/又は処理ユニット1120により現在操作されているデータ及び/又はプログラムモジュールを含む。限定ではなく、例として、
図11は、オペレーティングシステム1134、アプリケーションプログラム1135、他のプログラムモジュール1036及びプログラムデータ1137を示す。
【0209】
コンピュータ1110は、他のリムーバブル/非リムーバブルの揮発性/不揮発性コンピュータ記憶媒体を含むこともできる。単なる例として、
図11は、非リムーバブル不揮発性磁気媒体に対して読み取り又は書き込みを行うハードディスクドライブ1141、フラッシュメモリ等のリムーバブル不揮発性メモリ1152に対して読み取り又は書き込みを行うフラッシュドライブ1151及びCD ROM又は他の光学媒体等のリムーバブル不揮発性光ディスク1156に対して読み取り又は書き込みを行う光ディスクドライブ1155を示す。例示的な動作環境で使用することができる他のリムーバブル/非リムーバブルの揮発性/不揮発性コンピュータ記憶媒体には、限定ではなく、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体状態RAM、固体状態ROM等がある。ハードディスクドライブ1141は、通常、インターフェース1140等の非リムーバブルメモリインターフェースを通してシステムバス1121に接続され、磁気ディスクドライブ1151及び光ディスクドライブ1155は、通常、インターフェース1150等のリムーバブルメモリインターフェースによりシステムバス1121に接続される。
【0210】
上述され、
図11に示されているドライブ及び関連付けられたコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びコンピュータ1110の他のデータの記憶を提供する。
図11では、例えば、ハードディスクドライブ1141は、オペレーティングシステム1144、アプリケーションプログラム1145、他のプログラムモジュール1146及びプログラムデータ1147を記憶するものとして示されている。なお、これらの構成要素は、オペレーティングシステム1134、アプリケーションプログラム1135、他のプログラムモジュール1136及びプログラムデータ1137と同じであるか又は異なり得る。オペレーティングシステム1144、アプリケーションプログラム1145、他のプログラムモジュール1146及びプログラムデータ1147には、ここでは、少なくともこれらが異なるコピーであることを示すために異なる番号が与えられている。アクターは、マウス、トラックボール又はタッチパッドと一般に呼ばれるキーボード1162及びポインティングデバイス1161等の入力デバイスを通してコンピュータ1110にコマンド及び情報を入力し得る。他の入力デバイス(図示せず)は、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ等を含み得る。これら及び他の入力デバイスは、多くの場合、システムバスに結合されるユーザ入力インターフェース1160を通して処理ユニット1120に接続されるが、パラレルポート、ゲームポート又はユニバーサルシリアルバス(USB)等の他のインターフェース及びバス構造により接続されることもある。モニタ1191又は他のタイプのディスプレイデバイスもビデオインターフェース1190等のインターフェースを介してシステムバス1121に接続される。モニタに加えて、コンピュータは、スピーカ1197及びプリンタ1196等の他の周辺出力デバイスを含むこともでき、周辺出力デバイスは、出力周辺機器インターフェース1195を通して接続され得る。
【0211】
コンピュータ1110は、リモートコンピュータ1180等の1つ又は複数のリモートコンピュータへの論理接続を使用して、ネットワーク接続された環境で動作し得る。リモートコンピュータ1180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス又は他の一般的なネットワークノードであり得、通常、コンピュータ1110に関して上述した要素の多く又は全てを含むが、メモリ記憶装置1181のみが
図11に示された。
図11に示される論理接続は、ローカルエリアネットワーク(LAN)1171及び広域ネットワーク(WAN)1173を含むが、他のネットワークを含むこともできる。そのようなネットワーキング環境は、オフィス、企業規模コンピュータネットワーク、イントラネット及びインターネットで一般的である。
【0212】
LANネットワーキング環境で使用される場合、コンピュータ1110は、ネットワークインターフェース又はアダプタ1170を通してLAN1171に接続される。WANネットワーキング環境で使用される場合、コンピュータ1110は、通常、モデム1172又はインターネット等のWAN1173を介して通信を確立する他の手段を含む。モデム1172は、内部又は外部であり得、アクター入力インターフェース1160又は他の適切な機構を介してシステムバス1121に接続され得る。ネットワーク接続環境では、コンピュータ1110に関して示されたプログラムモジュール又はその部分は、リモートメモリ記憶装置に記憶され得る。限定ではなく、例として、
図11は、メモリデバイス1181に常駐するものとしてリモートアプリケーションプログラム1185を示す。示されるネットワーク接続が例示であり、コンピュータ間に通信リンクを確立する他の手段を使用し得ることが理解されるであろう。
【0213】
本発明の少なくとも1つの実施形態の幾つかの態様を説明したが、当業者は、種々の改変形態、変更形態及び改良形態を容易に想到するであろうことを理解されたい。
【0214】
そのような改変形態、変更形態及び改良形態は、本開示の一部であることが意図され、本発明の趣旨及び範囲内にあることが意図される。更に、本発明の利点が示されたが、本明細書に記載された技術のあらゆる実施形態が、記載されたあらゆる利点を含むわけではないことを理解されたい。幾つかの実施形態は、本明細書で利点として記載された任意の特徴を実施しないこともあり、幾つかの場合、記載された特徴の1つ又は複数は、更なる実施形態を達成するために実施され得る。したがって、上記説明及び図面は、単なる例を目的としている。
【0215】
本明細書に記載される技術の上記実施形態は、多くの方法の何れかで実施することができる。例えば、実施形態は、ハードウェア、ソフトウェア又はそれらの組合せを使用して実施され得る。ソフトウェアで実施される場合、ソフトウェアコードは、1つのコンピュータに提供されるか又は複数のコンピュータに分散するかに関係なく、任意の適したプロセッサ又はプロセッサの集合で実行することができる。そのようなプロセッサは、集積回路として実施され得、1つ又は複数のプロセッサは、CPUチップ、GPUチップ、マイクロプロセッサ、マイクロコントローラ又はコプロセッサ等の名称で等技術分野において既知の市販の集積回路構成要素を含め、集積回路構成要素内にある。代替的に、プロセッサは、ASIC等のカスタム回路又はプログラマブル論理デバイスを構成することから生じるセミカスタム回路で実施され得る。更なる代替として、プロセッサは、市販であれ、セミカスタムであれ又はカスタムであれ関係なく、より大きい回路又は半導体デバイスの一部であり得る。特定の例として、幾つかの市販のマイクロプロセッサは、コアの1つ又はサブセットがプロセッサを構成され得るように、複数のコアを有する。しかしながら、プロセッサは、任意の適したフォーマットで回路を使用して実施され得る。
【0216】
更に、コンピュータは、ラックマウントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ又はタブレットコンピュータ等の多くの形態の何れかで実施され得ることを理解されたい。更に、コンピュータは、個人情報端末(PDA)、スマートフォン又は任意の他の適したポータブル若しくは固定電子デバイスを含め、コンピュータとして一般に見なされないが、適した処理能力を有するデバイスで実施され得る。
【0217】
また、コンピュータは、1つ又は複数の入力デバイス及び出力デバイスを有し得る。これらのデバイスは、特に、ユーザインターフェースの提示に使用することができる。ユーザインターフェースを提供するために使用することができる出力デバイスの例には、出力を視覚的に提示するためのプリンタ又はディスプレイ画面及び出力を可聴提示するためのスピーカ又は他の音生成デバイスがある。ユーザインターフェースに使用することができる入力デバイスの例には、キーボード及びマウス、タッチパッド及びデジタイズタブレット等のポインティングデバイスがある。別の例として、コンピュータは、発話認識を通して又は他の可聴フォーマットで入力された情報を受信し得る。
【0218】
そのようなコンピュータは、ローカルエリアネットワークとして又は企業ネットワーク若しくはインターネット等の広域ネットワークとしてのものを含め、任意の適した形態で1つ又は複数のネットワークにより相互接続され得る。そのようなネットワークは、任意の適した技術に基づき得、任意の適したプロトコルに従って動作し得、無線ネットワーク、有線ネットワーク又は光ファイバネットワークを含み得る。
【0219】
また、本明細書で概説した種々の方法又はプロセスは、多様なオペレーティングシステム又はプラットフォームの何れか1つを利用する1つ又は複数のプロセッサで実行可能なソフトウェアとしてコード化され得る。更に、そのようなソフトウェアは、幾つかの適したプログラミング言語及び/又はプログラミング若しくはスクリプトツールの何れかを使用して記述することができ、フレームワーク又は仮想マシンで実行される実行可能機械言語コード又は中間コードとしてコンパイルすることもできる。
【0220】
これに関して、本発明は、1つ又は複数のコンピュータ又は他のプロセッサで実行されると、上述した本発明の種々の実施形態を実施する方法を実行する1つ又は複数のプログラムが符号化されたコンピュータ可読記憶媒体(又は複数のコンピュータ可読媒体)(例えば、コンピュータメモリ、1つ又は複数のフロッピーディスク、コンパクトディスク(CD)、光ディスク、デジタルビデオディスク(DVD)、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ若しくは他の半導体デバイスでの回路構成又は他の有形コンピュータ記憶媒体)として実施され得る。上記例から明らかであるように、コンピュータ可読記憶媒体は、コンピュータ実行可能命令を非一時的な形態で提供するのに十分な時間にわたり情報を保持し得る。そのような1つ又は複数のコンピュータ可読記憶媒体は、記憶された1つ又は複数のプログラムを1つ又は複数の異なるコンピュータ又は他のプロセッサにロードして、上述したような本発明の種々の態様を実施することができるように輸送可能であり得る。本明細書で使用される場合、「コンピュータ可読記憶媒体」という用語は、製造(すなわち製品)又は機械であると見なすことができる非一時的コンピュータ可読媒体のみを包含する。代替又は追加として、本発明は、伝播信号等、コンピュータ可読記憶媒体以外のコンピュータ可読媒体として実施され得る。
【0221】
「プログラム」又は「ソフトウェア」という用語は、本明細書では、一般的な意味において、上述したように本発明の種々の態様を実施するようにコンピュータ又は他のプロセッサをプログラムするのに利用することができる任意のタイプのコンピュータコード又はコンピュータ実行可能命令の組を指すために使用される。更に、この実施形態の一態様によれば、実行されると、本発明の方法を実行する1つ又は複数のコンピュータプログラムは、1つのコンピュータ又はプロセッサに常駐する必要はなく、幾つかの異なるコンピュータ又はプロセッサにモジュール式で分散して、本発明の種々の態様を実施し得ることを理解されたい。
【0222】
コンピュータ実行可能命令は、1つ又は複数のコンピュータ又は他のデバイスによって実行されるプログラムモジュール等の多くの形態であり得る。一般に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。通常、プログラムモジュールの機能は、種々の実施形態では、所望のように結合又は分散され得る。
【0223】
また、データ構造は、任意の適した形態でコンピュータ可読媒体に記憶され得る。例示を簡潔にするために、データ構造は、データ構造におけるロケーションを通して関連するフィールドを有して示され得る。そのような関係は、同様に、フィールド間の関係を伝達するコンピュータ可読媒体におけるロケーションにフィールドの記憶を割り当てることにより達成され得る。しかしながら、ポインタ、タグ又はデータ要素間に関係を確立する他のメカニズムの使用を含め、データ構造のフィールドにおける情報間の関係を確立するために、任意の適したメカニズムが使用可能である。
【0224】
本発明の種々の態様は、単独で、組み合わせて又は上述された実施形態で特に考察されていない多様な構成で使用され得、したがって、その適用は、上記説明で記載されるか又は図面に示される構成要素の詳細及び配置に限定されない。例えば、一実施形態において記載された態様は、他の実施形態において記載された態様と任意の様式で結合され得る。
【0225】
また、本発明は、方法として実施され得、方法の一例が提供された。方法の一部として実行される動作は、任意の適したような順序であり得る。したがって、例示的な実施形態では順次動作として示されているにもかかわらず、幾つかの動作を同時に実行することを含み得る、動作が示されるのと異なる順序で実行される実施形態を構築し得る。
【0226】
更に、幾つかの行動は、「アクター」により行われるものとして説明されている。「アクター」が1人の個人である必要はなく、幾つかの実施形態では、「アクター」に起因する行動は、個人のチーム及び/若しくはコンピュータ支援ツール又は他のメカニズムを組み合わせて個人によって実行され得ることを理解されたい。
【0227】
特許請求の範囲におけるクレーム要素を修飾する「第1」、「第2」、「第3」等の序数詞の使用は、それ自体、あるクレーム要素に対する別のクレーム要素のいかなる優先、先行若しくは順序又は方法の動作が実行される時間的順序も含意せず、単に特定の名称を有するあるクレーム要素を、同じ名称を有する(序数詞の使用以外には)別の要素から区別して、クレーム要素を区別するためのラベルとして使用される。
【0228】
また、本明細書で使用される表現及び用語は、説明を目的としており、限定として見なされるべきではない。「包含する」、「含む」又は「有する」、「含有する」、「伴う」及びそれらの変形の本明細書での使用は、その後に列記される項目及びそれらの均等物並びに追加の項目の包含を意味する。