(57)【要約】  データを管理するためのワークフローエンジンが提供される。より具体的には、ワークフローエンジンは、データを受信するように動作可能である受信サブシステムを備える。環境評価サブシステムがさらに設けられ、環境評価サブシステムは、環境を評価して少なくとも１つの環境パラメータを決定するように動作可能である。データ評価システムは、受信サブシステムおよび環境評価サブシステムと通信接続される。データ評価システムは、受信データから少なくとも１つのデータパラメータを決定するとともに、環境パラメータを受信するように動作可能である。データ評価システムは、ジョブ動作サブシステムによる実行のためのワークフロージョブ動作の確立において使用するために、データパラメータおよび環境パラメータを評価して、少なくとも１つの適切なワークフロールールを選択する。関連の使用方法も併せて提供される。
2010537317.tif 000002
【特許請求の範囲】
【請求項１】
データを管理するためのワークフローエンジンであって、
データを受信するように動作可能である受信サブシステムと、
環境を評価して少なくとも１つの環境パラメータを決定するように動作可能である環境評価サブシステムと、
前記受信サブシステムおよび前記環境評価サブシステムと通信接続されるデータ評価サブシステムと
を備え、
前記データ評価サブシステムは、
前記受信システムからデータを受信して、少なくとも１つのデータパラメータを決定し、
前記少なくとも１つの環境パラメータを受信し、
前記データパラメータおよび環境パラメータを評価して、少なくとも１つの適切なワークフロールールを選択し、
ジョブ動作サブシステムによる実行のためのワークフロージョブ動作を確立する
ように動作可能であるワークフローエンジン。
【請求項２】
前記データ評価サブシステムと通信接続されるワークフロー・ルール・プールをさらに含み、
前記評価サブシステムは、受信データに含まれるルール情報を前記ルールプールに供給するように動作可能であり、前記ルールプールは、システムの動作途中にルールを追加または除去するように動作可能である
請求項１に記載のワークフローエンジン。
【請求項３】
前記受信サブシステムと通信接続される変換部をさらに含み、
前記変換部は、企業のフォーマットで供給されるデータを受信し、そのデータを、前記データ評価サブシステムによる評価に適合したフォーマットに変換するように動作可能である
請求項１に記載のワークフローエンジン。
【請求項４】
前記評価サブシステムと通信接続される問題解決オプティマイザをさらに含み、
前記オプティマイザは、前記評価サブシステムから包括的な問題要求を受信し、前記少なくとも１つの適切なワークフロールールを決定するための最適化された結果を提供するように動作可能である
請求項１に記載のワークフローエンジン。
【請求項５】
前記評価システムは、複数のワークフロージョブ動作を実質的に同時に与えるように動作可能である
請求項１に記載のワークフローエンジン。
【請求項６】
ミッション管理システムのためのワークフロージョブ動作を確立する
請求項１に記載のワークフローエンジン。
【請求項７】
請求項１に記載のワークフローエンジンを備えるミッション管理システム。
【請求項８】
データを管理するためのワークフローエンジンであって、
前記ワークフローエンジンと外部の企業との間の接続を設けるために動作可能であるインターフェイスと、
前記インターフェイスに接続され、送入データを企業のフォーマットからワークフローエンジンに適合するフォーマットに変換し、送出データをワークフローエンジンに適合したフォーマットから企業のフォーマットに変換するように動作可能である変換サブシステムと、
環境を評価して少なくとも１つの環境パラメータを決定するように動作可能である環境評価サブシステムと、
少なくとも１つのワークフロールールを有しているワークフロー・ルール・プールと、
前記変換サブシステム、前記環境評価サブシステムおよび前記ワークフロー・ルール・プールと通信接続されるデータ評価サブシステムと
を備え、
前記データ評価サブシステムは、
前記インターフェイスからデータを受信して、少なくとも１つのデータパラメータを決定し、
前記少なくとも１つの環境パラメータを受信し、
前記データパラメータおよび環境パラメータを評価して、前記ワークフロー・ルール・プールから少なくとも１つの適切なワークフロールールを選択し、
ジョブ動作サブシステムによる実行のためのワークフロージョブ動作を確立する
ように動作可能であるワークフローエンジン。
【請求項９】
前記評価サブシステムは、受信データに含まれるルール情報を前記ワークフロー・ルール・プールに与えるように動作可能であり、前記ワークフロー・ルール・プールは、システムの動作途中にルールを追加または除去するように動作可能である
請求項８に記載のワークフローエンジン。
【請求項１０】
移動可能であって、企業に依存しないミッション管理システムである
請求項８に記載のワークフローエンジン。
【請求項１１】
前記変換サブシステムは、複数の変換部を含んでおり、初期または所望の企業のデータフォーマットを決定し、これに対応する変換部を選択するように動作可能である
請求項８に記載のワークフローエンジン。
【請求項１２】
前記評価システムは、複数のワークフロージョブ動作を実質的に同時に与えるように動作可能である
請求項８に記載のワークフローエンジン。
【請求項１３】
送入データの複数のインスタンスを同時に受信および実行するように動作可能である
請求項８に記載のワークフローエンジン。
【請求項１４】
前記評価サブシステムと通信接続される問題解決オプティマイザをさらに含み、
前記オプティマイザは、前記評価サブシステムから包括的な問題要求を受信し、前記少なくとも１つの適切なワークフロールールを決定するための最適化された結果を提供するように動作可能である
請求項８に記載のワークフローエンジン。
【請求項１５】
適応性を有するミッション管理方法であって、
企業のフォーマットのデータを受信する工程と、
前記受信データを、ワークフローエンジンのフォーマットに変換する工程と、
環境をサンプリングして、少なくとも１つの環境パラメータを決定する工程と、
前記変換済みのデータを評価して、少なくとも１つのデータパラメータを決定する工程と、
前記データパラメータおよび前記環境パラメータを評価して、少なくとも１つの適切なワークフロールールを特定する工程と、
少なくとも１つの特定されたワークフロールールを選択して、前記選択されたルール、変換済みのデータ、および環境パラメータに対してワークフロージョブ動作を生成する工程と、
前記ワークフロージョブ動作を実行するためにジョブ動作サブスシステムに指示する工程と
を備えるミッション管理方法。
【請求項１６】
前記変換は、変換サブシステムによって実行され、前記環境のサンプリングは、環境評価サブシステムによって実行され、前記評価および選択は、データ評価サブシステムによって実行される
請求項１５に記載のミッション管理方法。
【請求項１７】
複数のインスタンス化を同時に実行し得る
請求項１５に記載のミッション管理方法。
【請求項１８】
コンピュータ読み取り可能な媒体に、コンピュータシステムにおいて実行されるコンピュータプログラムとして保存される
請求項１５に記載のミッション管理方法。
【請求項１９】
前記ワークフローエンジンのフォーマットは、ＸＭＬである
請求項１５に記載のミッション管理方法。
【請求項２０】
適応的なミッション管理のためのコンピュータプログラムが保存されたコンピュータ読み取り可能な媒体であって、
入力デバイスに動作可能に組み合わせられ、ワークフローエンジンと外部の企業との間の接続を設けるインターフェイスルーチンと、
前記インターフェイスルーチンからデータを受信し、送入データを企業のフォーマットからワークフローエンジンに適合するフォーマットに変換し、送出データをワークフローエンジンに適合したフォーマットから企業のフォーマットに変換するように動作可能である変換ルーチンと、
環境を評価して少なくとも１つの環境パラメータを決定するための環境評価ルーチンと、
少なくとも１つのワークフロールールを有するワークフロー・ルール・プールを確立するように動作するワークフロー・ルール・プール・ルーチンと、
前記変換ルーチン、前記環境評価ルーチンおよび前記ワークフロー・ルール・プール・ルーチンと通信接続されるデータ評価ルーチンと
を備え、
前記データ評価ルーチンは、
前記インターフェイスルーチンからデータを受信して、少なくとも１つのデータパラメータを決定し、
前記少なくとも１つの環境パラメータを受信し、
前記データパラメータおよび環境パラメータを評価して、前記ワークフロー・ルール・プールから少なくとも１つの適切なワークフロールールを選択し、
ジョブ動作サブシステムによる実行のためのワークフロージョブ動作を確立する
ように動作可能であるコンピュータ読み取り可能な媒体。
【請求項２１】
前記評価サブシステムは、受信データに含まれるルール情報を前記ワークフロー・ルール・プールに供給するように動作可能であり、前記ワークフロー・ルール・プール・ルーチンは、システムの動作途中にルールを追加および除去するように動作可能である
請求項２０に記載のコンピュータ読み取り可能な媒体。
【請求項２２】
前記ワークフローエンジンは、移動可能であって、企業に依存しないミッション管理システムである
請求項２０に記載のコンピュータ読み取り可能な媒体。
【請求項２３】
前記変換ルーチンは、複数の変換部を含んでおり、初期または所望の企業のデータフォーマットを決定し、これに対応する変換部を選択するように動作可能である
請求項２０に記載のコンピュータ読み取り可能な媒体。
【請求項２４】
前記評価ルーチンは、複数のワークフロージョブ動作を実質的に同時に与えるように動作可能である
請求項２０に記載のコンピュータ読み取り可能な媒体。
【請求項２５】
前記ワークフローエンジンは、送入データの複数のインスタンスを同時に受信および実行するように動作可能である
請求項２０に記載のコンピュータ読み取り可能な媒体。
【請求項２６】
問題解決オプティマイザルーチンをさらに含み、
前記オプティマイザは、前記評価ルーチンから包括的な問題要求を受信し、前記少なくとも１つの適切なワークフロールールを決定するための最適化された結果を提供するように動作可能である
請求項２０に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、自動決定管理の分野に関し、詳しくは、複雑な決定論理を管理するためのデータ駆動ワークフローエンジンに関する。
【背景技術】
【０００２】
システムの複雑さおよび制御は、高まり続ける問題である。多くの状況において、複雑な論理が、システム内のアルゴリズムまたは実行スレッドにハードコードされている。このハードコーディングゆえに、論理を変化する状況および環境に適応させることが容易でなくなっている。多くのミッションシナリオ（mission scenario任務の筋書き）においては、生じる可能性があるイベントおよび取られるであろう反応を予期することが可能である。ちょうど同じように、ある環境におけるあるイベントにとって適切な動作は、別のイベントにおける同種のイベントにとって不適切であるかもしれないことも理解される。
【０００３】
一つ一つのイベント及び状況を個別に評価する過程は、きわめて面倒になりがちであり、有効な応答のための意思決定過程を遅延させるであろう。そのような遅延は、リソースおよび機会の両方に関して代償の大きい可能性があり、場合によっては、人間の生命を危険にさらす可能性すらある。
【０００４】
同時に、大規模なシステムにおいては、様々な異なるハードウェアおよびソフトウェアシステムを利用する様々な異なるユーザによって幅広く所望される多数の異なる態様が存在することが珍しくない。システム間の相違が、
ユーザにさらに別の負担を課す可能性があり、事実頻繁に起こる。ユーザが、異なるシステムをどのようにブリッジするかを前もって知らなければならないからである。多くの場合、このブリッジは、リアルタイムで達成するのが容易でないタスクであり、むしろあらかじめの設定を必要とする事柄である。
【０００５】
例えば、あくまでもごく一般的な意味で、Ｕｎｉｘネットワークは、データファイルのリポジトリをサポートし得るが、そのようなデータファイルのリポジトリに対し、Ｗｉｎｄｏｗｓプラットフォームのユーザが、スケジューリングイベント（ある地理的領域の上空における特定の時点の衛星の位置など）の決定においてリソース入手性の問題を解決するための探索において、急なアクセスを望むかもしれない。Ｓａｍｂａは、ＷｉｎｄｏｗｓプラットフォームのシステムがＵｎｉｘ／Ｌｙｎｘシステムとデータの交換を行うことができるよく知られたファイル・アクセス・システムであるが、そのような接続を可能にするには、ＳａｍｂａアプリケーションがＵｎｉｘ／Ｌｙｎｘシステム上にあらかじめ存在して構成されていなければならない。
【０００６】
さらに、大規模なミッションの状況では、多数の環境において同時またはほぼ同時に多数の作業が生じる可能性がある。意思決定過程やシステムを考えられる各々の環境にあわせてカスタマイズすることは、理想的な解決策からほど遠い。さらに、そのようなカスタマイズは、将来の同一でないミッションにおいて再使用することができない単一のアプリケーションシステムを提供することにもなるだろう。
【０００７】
したがって、上述した技術的課題のうちの１つ以上を克服するミッション管理システムをサポートするためのワークフローエンジンが必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、データを管理するためのワークフローエンジンシステムおよび方法を提供する。
【課題を解決するための手段】
【０００９】
詳細には、本発明の一実施の形態により、あくまでも例として、データを管理するためのワークフローエンジンが提供されるが、そのようなワークフローエンジンは、データを受信するように動作可能である受信サブシステムと、環境を評価して少なくとも１つの環境パラメータを決定するように動作可能である環境評価サブシステムと、前記受信サブシステムおよび前記環境評価サブシステムと通信接続されるデータ評価サブシステムとを備え、前記データ評価サブシステムは、前記受信システムからデータを受信して、少なくとも１つのデータパラメータを決定し、前記少なくとも１つの環境パラメータを受信し、前記データパラメータおよび環境パラメータを評価して、少なくとも１つの適切なワークフロールールを選択し、ジョブ動作サブシステムによる実行のためのワークフロージョブ動作を確立するように動作可能である。
【００１０】
少なくとも１つの別の実施の形態においては、データを管理するためのワークフローエンジンであって、前記ワークフローエンジンと外部の企業とを接続するように動作可能であるインターフェイスと、前記インターフェイスに接続され、送入データを企業のフォーマットからワークフローエンジンに適合するフォーマットに変換し、送出データをワークフローエンジンに適合したフォーマットから企業のフォーマットに変換するように動作可能である変換サブシステムと、環境を評価して少なくとも１つの環境パラメータを決定するように動作可能である環境評価サブシステムと、少なくとも１つのワークフロールールを有しているワークフロー・ルール・プールと、前記変換サブシステム、前記環境評価サブシステムおよび前記ワークフロー・ルール・プールと通信接続されるデータ評価サブシステムとを備え、前記データ評価サブシステムは、前記インターフェイスからデータを受信して、少なくとも１つのデータパラメータを決定し、前記少なくとも１つの環境パラメータを受信し、前記データパラメータおよび環境パラメータを評価して、前記ワークフロー・ルール・プールから少なくとも１つの適切なワークフロールールを選択し、ジョブ動作サブシステムによる実行のためのワークフロージョブ動作を確立するように動作可能であるワークフローエンジンが提供される。
【００１１】
さらに別の実施の形態においては、適応性を有するミッション管理方法であって、企業のフォーマットのデータを受信する工程と、前記受信データをワークフローエンジンのフォーマットに変換する工程と、環境をサンプリングして少なくとも１つの環境パラメータを決定する工程と、前記変換済みのデータを評価して、少なくとも１つのデータパラメータを決定する工程と、前記データパラメータおよび前記環境パラメータを評価して、少なくとも１つの適切なワークフロールールを特定する工程と、少なくとも１つの特定されたワークフロールールを選択して、前記選択されたルール、変換済みのデータおよび環境パラメータに対してワークフロージョブ動作を生成する工程と、前記ワークフロージョブ動作を実行するためにジョブ動作サブスシステムに指示する工程とを備えるミッション管理方法が提供される。
【図面の簡単な説明】
【００１２】
【図１】少なくとも１つの実施の形態による企業環境におけるワークフローエンジンの概念的なブロック図を示している。
【００１３】
【図２】少なくとも１つの実施の形態に従って図１のワークフローエンジンを動作させる少なくとも１つの方法を説明するフロー図である。
【００１４】
【図３】システムにおいて具現化された複数のワークフローエンジンを説明するブロック図、および少なくとも１つの実施の形態において用意することができる種々のワークフロールールである。
【００１５】
【図４】１つ以上の実施の形態によるコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１６】
詳細な説明を行うに当たって、本明細書の教示は、あくまでも例示にすぎず、本発明を限定するものではないことを理解すべきである。本発明の考え方は、特定の種類の問題解決システムにおける使用または適用に限られない。すなわち、本明細書において説明される手段は、説明の便宜上、典型的な実施の形態に関して図示および説明されるが、本発明の原理を、他の種類の問題解決システムにも同様に適用できることを理解できるであろう。
【００１７】
図１は、少なくとも１つの実施の形態によるワークフローエンジン１００の高レベルの概念図である。ワークフローエンジン１００は、プロセッサ、メモリ、記憶装置ならびに入力および出力デバイスなどといった典型的なコンピュータ構成要素を有しているコンピュータ上に実装され得る。動作時、ワークフローエンジン１００は、速度および効率の改善のために、アクティブメモリ上に維持され得る。さらに、少なくとも１つの実施の形態においては、ワークフローエンジン１００は、コンピュータネットワーク上で動作し、分散されたリソースを利用する。
【００１８】
図１に関して、少なくとも１つの実施の形態では、ワークフローエンジン１００は、インターフェイス１０２、変換部１０４、環境評価部１０６、データ評価部１０８およびワークフロー・ルール・プール１１０を含んでいる。少なくとも１つの別の実施の形態では、ワークフローエンジン１００は、ソルバー１１２をさらに有している。
【００１９】
図示のとおり、ワークフローエンジン１００は、例示される企業からデータ１１４を受信し、この受信データに応答し、適切なときにジョブ動作１１６を提供するように動作可能である。図１によって示されるとおり、ジョブ動作１１６は、典型的にはワークフローエンジン１００の一体の構成要素ではないジョブ動作サブシステム１１８に与えられる。ジョブ動作サブシステム１１８は、当然ながら、ジョブ動作を受信し、それらを実行可能になるまで保持するジョブプールを有し得る。
【００２０】
ワークフローエンジン１００がコンピュータ環境において具現化される場合など、少なくとも１つの実施の形態では、インターフェイス１０２がインターフェイスルーチンによって設けられ、変換部１０４が変換ルーチンによって設けられ、環境評価部１０６が環境評価ルーチンによって設けられ、データ評価部１０８がデータ評価ルーチンによって設けられ、ワークフロー・ルール・プール１１０がワークフロー・ルール・プール・ルーチンによって設けられ、場合によってはソルバー１１２がソルバールーチンによって設けられる。当然ながら、各々のルーチンが、サブルーチンまたは他の下位構成要素を含んでもよいことは理解および認識される。
【００２１】
簡単に述べると、インターフェイス１０２は、データを受信するように動作可能である。環境評価部１０６は、環境１２０を評価して、少なくとも１つの環境パラメータを決定するように動作可能である。データ評価部１０８は、インターフェイス１０２および環境評価部１０６と通信接続される。データ評価部１０８は、インターフェイスからデータを受信して、少なくとも１つのデータパラメータを決定するように動作可能であるとともに、環境評価部１０６から少なくとも１つの環境パラメータを受信するように動作可能である。データ評価部は、データパラメータおよび環境パラメータを評価し、少なくとも１つの適切なワークフロールールを選択する。選択されたワークフロールールは、実行のためにジョブ動作サブシステム１１８に供給されるワークフロージョブ動作を確立するために使用される。
【００２２】
より具体的には、インターフェイス１０２は、ワークフローエンジン１００が例示されている外部の企業への接続を担当する。より具体的には、この企業は、ワークフローエンジン１００の構成要素ではない任意の要素であると理解および認識される。インターフェイス１０２は、他のエンティティからのメッセージを受け付け、ワークフローエンジン１００から企業に戻る送出トラフィックの提供も担当する。インターフェイス１０２は、ワークフローエンジン１００が、当該ワークフローエンジン１００が配置されるシステムの種類について不可知のままであることを可能にする。より具体的には、企業との通信構造を抽象化することによって、ワークフローエンジン１００の残りの部分が、新規な通信パラダイム、異なる通信パラダイム、または通信パラダイムの変化に対して、都合に合わせて機敏に移動可能な状態を維持することができる。
【００２３】
企業とのやり取りを適応的に取り扱うためのこの能力は、主として変換部１０４によって補助される。変換部１０４は、例えばワークフローエンジン１００への企業からのメッセージなど、受信データを受け取り、内部での処理に適合したフォーマットに変換するように動作可能である。また、変換部１０４は、内部のワークフローオブジェクトを、企業のデータフォーマットへ変換する役目を担う。少なくとも１つの実施の形態では、ワークフローエンジンのフォーマットが、拡張マークアップ言語（ＸＭＬとしても知られる）のフォーマットであるように定義される。ＸＭＬは、情報に三元構造を記述して適用するためのテキストベースの手段を提供する。ＸＭＬコードは、エレメントおよび属性ならびに当然ながら入れ子にされたエレメントで構成されると理解および認識される。
【００２４】
構造化されたフォーマットによって、ＸＭＬは、ワークフローエンジン１００が内部データ操作のための既定のフォーマットを有することを可能にする。実際、インターフェイス１０２によって変換部１０４に与えられる入力をＸＭＬに標準化することによって、ワークフローエンジン１００は、追加のオーバーヘッドの複雑さを伴わずに、自由に動作可能である。さらに、ワークフローエンジン１００は、幅広く様々なシステムおよびプラットフォームにおいて幅広く様々なユーザを補助するように動作可能である。
【００２５】
さらに、変換部１０４は、ワークフローエンジン１００が、ワークフローエンジン１００へのデータの送信またはワークフローエンジン１００からのデータの受信を必要とする外部の者の言語で通信を行うことを可能にする。外部のメッセージング構造をコアの決定ロジックから抽象化することによって、ワークフローエンジンは、多様な環境およびシステム一式において好都合に機能する。
【００２６】
少なくとも１つの実施の形態では、ＸＭＬＢｅａｎｓおよびＸＳＬＴの組み合わせによって変換部が設けられる。ＸＭＬＢｅａｎｓは、ＪａｖａオブジェクトをＸＭＬ表現に変換するものと理解および認識される。ＸＳＬＴは、あるＭＬメッセージ／ドキュメントを別のＸＭＬメッセージ／ドキュメントに変換するために使用される。組み合わせにおいて、ＳＭＬＢｅａｎｓおよびＸＳＬＴは、メッセージレベルでの変換を与え（ＸＳＬＴ）、根底にあるワークフローシステムのオブジェクトを種々の企業システムのニーズに合致するように発展させるための効率的な手段を設ける（ＳＭＬＢｅａｎｓ）ように動作可能である変換部１０４を提供する。
【００２７】
ひとたび変換が完了すると、いまや適合したフォーマットになっている入力データが、データ評価部１０８に直接届けられる。変換済みのデータが与えられて、データ評価部１０８が、特定のタスクと行われるべき任意のトリガされる処理の定義との間の関係の構築を担当する。行われ得る処理の種類は、企業（協働して受信サブシステムとして機能するインターフェイスおよび変換部を経由）および環境評価部１０６の両者によって与えられるデータの時点に依存する。
【００２８】
本明細書において使用されるように、環境は、ワークフローエンジン１００をサポートしているノードおよびそのノードの近傍の物理領域の内部および外部状態であると理解および認識される。より具体的には、環境情報は、これらに限られるわけではないが、物理的な位置、速度、加速度、高度、姿勢、軌道、天候、味方側の勢力およびリソースの位置、相手方の勢力およびリソースの位置、現在のシステムメモリおよびリソースの状態などの状態情報を含む。
【００２９】
ワークフローエンジン１００が動作している世界の状態が変化し、かつ環境評価部１０６によって注目されているため、ワークフローエンジンは、特定のタスクに鑑みて、行われる処理の種類を調整できかつ調整していくであろう。さらに、環境を評価し、タスクおよび／またはデータ処理を適応的に変更できるという能力が、ワークフローエンジンに、好都合な適応能力を与える。
【００３０】
世界の状態の評価をデータ評価部１０８に与えるように動作するのは、環境評価部１０６である。企業の残りの部分からのデータを消費し、提供されたデータと評価された環境との間の関係を評価することによって、データ評価部１０８は、決定されたワークフローを、変化する世界環境の要求に合致するように変更することができる。
【００３１】
さらに、ワークフローエンジン１００の同一のインスタンスを、地上車両、航空機、衛星、などといったシステム全体の種々のノードとして配置することができ、それでもなおシステム内の各々のワークフローエンジン１００は、そのワークフローエンジン１００がシステム内のどこに位置するかに鑑みて、世界の状態に基づいて情報を処理し、適切なジョブ動作タスクを決定する。これは、コンピュータコードまたはコンピュータシステムとして設けられる場合に、好都合なことに、ある企業の全システムに同じコード一式を配置することができるが、それでもなお、配置された各々のインスタンスは、各々の配置ノードにおいて異なる挙動を示すことを可能にする。
【００３２】
この適応的な挙動は、データ評価部１０８と通信接続されるワークフロー・ルール・プール１１０の存在によって容易になされる。ワークフロー・ルール・プール１１０は、ワークフロージョブ動作タスクの生成のための少なくとも１つ、より好ましくは複数の既定のルールを提供する。少なくとも１つの実施の形態では、各々のワークフロールールはＸＭＬオブジェクトとして定義され、ワークフロー・ルール・プールはＸＭＬテーブルとして維持される。
【００３３】
一般に、ワークフロールールは、「Ｉｆ−Ｔｈｅｎ−Ｅｌｓｅ」構造として確立される。換言すると、第１のルールの構造を、「データパラメータがＸであり、かつ環境パラメータがＹである場合、実行すべきタスクはＡである」と記述することができる。第２のルールの構造は、「データパラメータがＸであり、かつ環境パラメータがＺである場合、実行すべきタスクはＢである」となるであろう。
【００３４】
さらに、少なくとも１つの実施の形態では、データ評価部１０８は、与えられたデータ（インターフェイスを介して受信された）をルールデータとし、ルールデータがプールに追加される新規ルールまたはプールから除去されるルールのいずれを示しているかについての指示を判断するように動作可能であることが理解および認識される。少なくとも１つの実施の形態では、既存のルールの更新が（古いルールの）削除および（新規ルールの）追加の両方として処理される。
【００３５】
次に、少なくとも１つの実施の形態によるワークフローエンジン１００の処理および動作を、図３のフロー図および図４の概念ブロック図を用いてさらに説明する。本明細書に記載される各工程を、必ずしも本明細書に記載されるとおりの順序で実行する必要はなく、この順序が、少なくとも１つの実施の形態の典型にすぎず、検討および説明を容易にするために選択されているにすぎないことがさらに理解および認識される。
【００３６】
例えば、インターフェイス１０２、変換部１０４、環境評価部１０６、データ評価部１０８、ワークフロー・ルール・プール１１０およびソルバー１１２などのワークフローエンジン１００の構成要素は、それらが直接接続される他の構成要素と、通信および利用可能性の状態を共有する。構成要素は、初期化時に、接続の状態を判断するためにハンドシェーク機構を使用する。少なくとも１つの実施の形態では、構成要素間の通信プロトコルが、自動的に決定され、相応に配置される。すなわち、単一の過程空間内の構成要素についてのオブジェクト−オブジェクト通信に対するネットワーク分散型の構成要素についてはメッセージングである。問題解決システム内の構成要素間の通信は、同期または非同期のいずれでもよい。
【００３７】
少なくとも１つの実施の形態では、ワークフローエンジン１００のこれらの要素が、互いに物理的および／または地理的に離れていてもよいが、一体の全体システムとして機能すべく直接に通信することを理解および認識すべきである。少なくとも１つの別の実施の形態では、ワークフローエンジン１００のこれらの要素はすべて同じシステムノード内に存在し、当然ながら、環境評価部１０６は、環境データを検出して少なくとも１つの環境パラメータを決定するための少なくとも１つのセンサ経路を有している。
【００３８】
図２を参照すると、あるノードにおけるワークフローエンジン１００の動作の開始において、ワークフローエンジン１００は、少なくとも１つの実施の形態においてブロック２０２のワークフロー・ルール・プールの確立である第１の工程によって、ワークフローエンジン方法２００としての具現化に進む。上述のように、少なくとも１つの実施の形態において、ワークフロールールは、各々をＸＭＬオブジェクトとして取り扱い、ＸＭＬテーブルによってワークフロー・ルール・プールの構成員として記録できるように、ＸＭＬで定められる。
【００３９】
ワークフローエンジン１００は、ワークフロー・ルール・プール１１０が確立された状態で、初期化され、企業からのデータを受信するように設定される。このデータは、人間であるユーザまたは自動システム（例えば、レーダ、熱センサ、運動センサ、水分センサ、タイマーによって開始されるイベント、など）によって与えることができる。環境評価部１０６は、現実に、この同種の自動システムに接続されたセンサを有してもよいことを理解および認識すべきである。
【００４０】
ブロック２０２では、インターフェイス１０２によってデータが受信されると、そのデータが検査され、データをワークフローエンジン１００の内部のフォーマットに変換するために、呼び出されて入力データに適用される適切な変換部が決定される。コンピュータ環境において動作可能であるシステムとして具現化される場合、好ましくは、様々な変換部が、やはりＸＭＬで定義される変換オブジェクトとして設けられる。当然ながら、データがすでに適合するフォーマットである場合には、データをデータ評価部１０８に供給する前に変換を行う必要はない。
【００４１】
適切な変換部が決定および選択されると、入力データが、ブロック２０４においてワークフローエンジンのフォーマットに変換される。データの評価および適切な変換部の選択は、インターフェイスにより行ってよいし、代わりに変換部１０４によって行ってもよい。別の実施の形態では、ワークフローエンジンは、ワークフローエンジン１００におけるデータおよび通信の流れを追跡および案内するように動作する管理部をさらに提供できる。少なくとも１つの実施の形態では、この管理部は、全体テーブルおよび受信データに付加されるメタデータの追加として設けられる。
【００４２】
図３は、いくつかのインスタンスに配置されたワークフローエンジン１００の概念化を示しており、第１には、陸上車両３００に位置するワークフローエンジン１００Ａがあり、第２には、航空機３０２に位置するワークフローエンジン１００Ｂがあり、ｎ番目には、基地３０４に位置するワークフローエンジン１００ｎがある。ワークフローエンジン１００Ａ、１００Ｂ、１００ｎの各々のインスタンスは、それぞれの環境内で、すなわち陸上車両３００およびその周囲、航空機およびその周囲、ならびに基地３０４およびその周囲の環境で完全に動作可能である。さらに、少なくとも１つの実施の形態では、ワークフローエンジン１００Ａ、１００Ｂ、１００ｎが互いに通信接続される。
【００４３】
さらに、図３には、ルール一式が示されている。具体的には、ルール３０６がルールＡ．１であり、ルールＡ．１は「データパラメータＤが『雨』であり、かつ環境パラメータＥが『移動中』である場合、タスクＴは『ワイパー作動』である」旨を記述するように定められている。ルール３０８はルールＢ．１であり、ルールＢ．１は「データパラメータＤが『前方に車両あり』であり、かつ環境パラメータＥが『二次元（すなわち、路上など）を移動中』である場合、タスクＴは『車線変更』である」旨を記述するように定められている。ルール３１０はルールＣ．１であり、ルールＣ．１は「データパラメータＤが『雨』であり、かつ環境パラメータＥが『三次元を移動中（すなわち、飛行中）』である場合、タスクＴは『上昇』である」旨を記述するように定められている。ルール３１２はルールＤ．１であり、ルールＤ．１は「データパラメータＤが『新規ターゲット』であり、かつ環境パラメータＥが『移動中』である場合、タスクＴは『新規ターゲットに進路を変更』である」旨を記述するように定められている。最初に、例として、これらのルールがワークフロー・ルール・プール１１０に存在する初期ルールであると仮定する。
【００４４】
単一のワークフロー・ルール・プール１１０として示されているが、少なくとも１つの実施の形態では、ワークフローエンジン１００の各々のインスタンスは、固有のワークフロー・ルール・プール１１０を有する。しかしながら、他の実施の形態では、ワークフローエンジン１００の１つ以上のインスタンスは、共通のワークフロー・ルール・プールを共有してもよく、多くのインスタンスでは、遠方のリソースへの接続が重荷である状況において動作を迅速にするために、各々のインスタンスがワークフロー・ルール・プールのコピーをそれぞれ有することが好ましい。
【００４５】
第１のインスタンスでは、陸上車両３００が道路に沿って走行している。図２に戻ると、入力データは、ブロック２０４において陸上車両のワークフロー１００Ａによって受信され、ブロック２０６においてワークフローエンジンのフォーマットに変換される。次いで、そのデータがワークフロールールの追加または削除に関係するものであるか、あるいはワークフロージョブの生成を必要とするタスクに関係するものであるかを判断するために、判定ブロック２０８においてそのデータが評価される。
【００４６】
この例では、データは、自身がワークフロールールに関係するものあることを示しているわけでない。したがって、ブロック２１０では、データ評価部１０８がデータを評価し、少なくとも１つのデータパラメータを決定する。この第１の例では、データパラメータ（ＤＰ）は、陸上車両３００の直前に車両が存在する旨の表示である。次いで、ブロック２１２において、データ評価部は、環境評価部１０６から少なくとも１つの環境パラメータ（ＥＰ）を取得する。この例の場合、少なくとも１つの環境パラメータは、陸上車両が移動中であって、その移動が道路に沿った二次元の走行である旨である。
【００４７】
次に、ブロック２１４では、適切なワークフロールールを特定するために、データ評価部１０８が、データパラメータ（ＤＰ）および環境パラメータ（ＥＰ）に基づいて適切なルールを選択すべく機能する。最初に例示したルールに関しては、ルール３０８がルールＢ．１であり、二次元を走行中であって前方に物体が存在している車両に関係している。ルール３１０がルールＣ．１であり、やはり走行中の車両および前方の物体に関係しているが、ルールＣ．１は、二次元ではなくて三次元の移動に関係し、したがって適用されない。
【００４８】
ルール３０８は、ワークフロー・ルール・プール１１０から選択され、ブロック２２０においてワークフロージョブの生成に使用される。なお、ワークフローエンジン１００は、ワークフロージョブを実行するエンティティではない。むしろ、ワークフローエンジン１００は、ワークフロージョブを、他のシステムまたは人間であるオペレータによって実行されるタスクとして作成するエンティティである。したがって、ブロック２２２では、ワークフロージョブが、実行のためにジョブ動作サブシステムに供給される。
【００４９】
タスクは、実際にはいくつかのサブタスクを含んでもよいことが理解および認識される。より具体的には、選択されたワークフロールールは、複数のサブルールを含んでもよく、そのうちの少なくとも部分集合が、実行可能なワークフロージョブ動作を生成するために適用されなければならない。実際のところ、ルールは現実的には複数のサブルールで構成されるメタルールであってよく、タスクも複数のサブタスクで構成されるメタタスクであってよい。
【００５０】
上述のように、少なくとも１つの実施の形態では、ワークフローエンジン１００における好ましいデータフォーマットは、ＸＭＬである。ＸＭＬは、入れ子状のエレメントのサポートを提供すると理解および認識され、「入れ子状のサブルールエレメントを有するメタルールの形成」および「入れ子状のタスクを有するメタタスクの生成」は、きわめて容易にサポートされ、ワークフローエンジン１００に複雑さという負担を負わすことがない。
【００５１】
次いで、ブロック２２２では、ワークフロージョブがジョブ動作サブシステムに供給されると、ワークフローエンジンは、判定ブロック２２４において動作の継続が望まれるか否かを確認すべく問い合わせを行ってよく、肯定である場合、ブロック２２６においてユーザの入力を待つ状態に戻る。
【００５２】
上述の例は陸上車両３００に適用可能である。その一方、航空機３０２の同様の例のワークフローエンジン１００Ｂは、やはり前方の物体を知らせるデータを受信し得る。少なくとも１つのデータパラメータ（ＤＰ）および環境パラメータ（ＥＰ）を決定する上述の工程（ブロック２１０および２１２）を辿り、この場合、特定されるルールは、航空機が三次元を移動しているためルール３１０（ルールＣ．１）であろう。
【００５３】
さらに、ワークフローエンジン１００Ａはワークフローエンジン１００Ｂと同一であるが、それぞれが別々の環境に配置されており、それゆえ異なる適切なタスクを決定するように動作することが理解される。当然ながら、各々のワークフローエンジン１００Ａおよび１００Ｂが、同じルールの選択から同じタスクを決定することも可能である（例えば、ルールＡ．１としてのルール３０４が『ＤＰが「雨」であり、ＥＰが「移動中」であること』に応答して、フロントガラスのワイパーを作動させるというワークフロージョブのタスクをもたらす、など）。
【００５４】
さらに別の例では、ルールＢ．２としてのルール３１４が、ワークフローエンジン１００に供給される。実際、ワークフローエンジン１００のすべてのインスタンス（例えば、１００Ａ、１００Ｂ、・・・、１００ｎ）によって受信されるように、ルールがシステムの全体に提供されてもよく、あるいはワークフローエンジンの特定のインスタンス（すなわち、ワークフローエンジン１００Ａ）に向けられてもよい。このインスタンスでは、判定ブロック２０８において、データがワークフロールールに関係するものであると認識される。少なくとも１つの実施の形態では、実行可能な動作は、ルールの追加またはルールの削除のいずれかである。既知のルールソースを更新するために、（古いデータソースを除去するための）削除および（新規なデータソースを加えるための）追加の両方を実行し得ることが理解される。より具体的には、ユーザデータは、ブロック２２８において照会され、指示が追加または削除（それぞれ、ブロック２３０および３３２）のいずれであるかが判断される。
【００５５】
この例では、データが評価され、指示がデータプールへのルールＢ．２の追加であると理解される。この例において、ルールＢ．２は、これまでに知られていたルールＢ．１の新バージョンであることが理解される。この実施の形態では、ワークフローエンジンは、選択のためにルールを評価するときに、ルールの最新バージョンを参照する。少なくとも１つの実施の形態では、このようにバージョンの追跡が取り入れられることで、以前のルールに応答して生成された既存のワークフロージョブが、生成時に指示されたとおりのタスクに従って実行されることが保証される。次いで、新たなルールが、その後の新たな別のタスクのためのワークフロージョブの生成を指示する。
【００５６】
例えば、ルール３１０をワークフロー・ルール・プール１１０に取り入れた後に、陸上車両３００のワークフローエンジン１００Ａが、直前の物体を示すデータパラメータを有するデータを受信する。このインスタンスでは、ＤＰおよびＥＰの判断が、やはりルールの選択につながる（ブロック２１２、２１４、および２１６）。しかしながら、今回の場合、新たなルールＢ．２が以前のルールＢ．１よりも優先し、ＷＲ、ＥＰおよびＤＰに基づいて生成されるワークフロージョブ動作は、車線変更よりもむしろ合致する速度への減速である。
【００５７】
さらに別の例では、基地３０４が、軌道上の衛星３１６と通信接続されており、衛星３１６を制御することできる。基地３０４は、自然災害、テロリスト活動または遭難者など、新たなイベント３１８を衛星３１６から知ることができる。この場合、基地３０４のワークフローエンジン１００ｎは、陸上車両３００および航空機３０４が新たなイベントに最も近い資源である旨を知らせる環境パラメータ（ＥＰ）を、環境評価部１０６から受け取り得る。さらに、ワークフローエンジン１００、より具体的には環境評価部１０６は、すでに使用されており、あるいは支持ノードシステムに接続されている他のリソースや資源を利用できることが理解および認識される。
【００５８】
このデータ情報は、「陸上車両３００および航空機３０４、より具体的にはワークフローエンジン１００Ａ、１００Ｂへのデータ通信を指示し、受信されたときに各々のワークフローエンジンにルール３１２を選択させ、新たに特定されたイベント３１８に向かう新たな進路を取らせるルールＥ．１」としてのルール３２０を発動させることができる。
【００５９】
上述の例は、検討および説明を容易にするために単純化されていることを認識および理解すべきである。特定のインスタンスでは、複数のデータパラメータおよび環境パラメータが存在してもよく、および／または追加のデータまたは既知のデータの改良が必要とされてもよい。そのようなインスタンスでは、ワークフローエンジンは、「１つ以上の入力データエレメントを取得して最適化された解を提供するよう動作可能である任意の問題解決システム」を取り入れ得る。
【００６０】
問題解決システムは、アルゴリズムの多様な集合への明快かつ単純なインターフェイスを提供する。ワークフローエンジンは、問題解決システムにより、要求に応答して実行されるアルゴリズムの種類や、１つ以上の適切なアルゴリズムを使用するために一般的に必要とされる入力エレメントの具体的詳細を知ることなく、ランタイムで問題の解または最適化を一般的に要求することを行うことができる。少なくとも１つの実施の形態では、問題解決システムは、ここでの言及によって本明細書に援用される２００７年８月２０日付出願の「Ｐｒｏｂｌｅｍ  Ｓｏｌｖｉｎｇ  Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ」という名称の米国特許出願第１１／８４１，０７３号に記載のとおりである。
【００６１】
少なくとも１つの
実施の形態では、ワークフローエンジン１００は、アクティビティをスケジュールするためのコンピュータシステムとして実装される。図４は、典型的なコンピュータシステム４００の高度なブロック図である。コンピュータシステム４００は、メイン基板４０４を収容するケース４０２を有している。メイン基板４０４は、システムバス４０６、接続ポート４０８、中央演算ユニット（ＣＰＵ）４１０などの処理ユニット、ならびにメインメモリ４１２、ハードドライブ４１４、およびＣＤ／ＤＶＤ−ＲＯＭ駆動装置４１６などの記憶装置を有している。
【００６２】
メモリバス４１８は、メインメモリ４１２をＣＰＵ４１０に接続する。システムバス４０６は、ハードドライブ４１４、ＣＤ／ＤＶＤ−ＲＯＭ駆動装置４１６および接続ポート４０８をＣＰＵ４１０に接続する。例えば、マウス４２０およびキーボード４２２など、多数の入力デバイスを設けることができる。例えば、ビデオモニタ４２４およびプリンタ（図示せず）など、多数の出力デバイスも設けることができる。
【００６３】
コンピュータシステム４００は、ＩＢＭ、Ｄｅｌｌ  Ｃｏｍｐｕｔｅｒｓ、Ｇａｔｅｗａｙ、Ａｐｐｌｅ、Ｓｕｎ  Ｍｉｃｒｏ  Ｓｙｓｔｅｍｓ、その他のコンピュータシステムプロバイダによって提供されているデスクトップ・ワークステーション・ユニットなど、市販のシステムであってよい。また、コンピュータシステム４００は、ハードドライブ４１４などのメモリ記憶コンポーネント、追加のＣＰＵ４１０およびプリンタなどの出力デバイスが、ネットワークにて普通に結び付けられた物理的に別個のコンピュータシステムによって設けられるネットワーク化されたコンピュータシステムであってよい。当業者であれば、コンピュータシステム４００を構成するコンポーネントの物理的な構成およびコンポーネントの互いの接続を理解および認識することができ、確立および維持すべきスケジュールに適したコンピュータシステム４００を選択することができるであろう。
【００６４】
コンピュータシステム４００が作動すると、好ましくはオペレーティングシステム４２６がブートストラップ起動シーケンスの一部としてメインメモリ４１２にロードされ、コンピュータシステム４００を動作可能にする。最も単純なレベルでは、最も一般的な意味で、オペレーティングシステムのタスクは、過程管理、デバイス管理（アプリケーションおよびユーザインターフェイスの管理を含む）、およびメモリ管理という具体的カテゴリに包含される。
【００６５】
このようなコンピュータシステム４００では、ＣＰＵ４１０は、上述のスケジューリングの実施の形態のうちの１つ以上を実行するように動作可能である。スケジュールにアクティビティを追加するためのコンピュータプログラム４３０を有しているコンピュータ読み取り可能な媒体４２８をコンピュータシステム４００に供給できることを、当業者であれば理解するであろう。媒体４２８の形態およびプログラム４３０の言語は、コンピュータシステム４００にとって適当であると理解される。例えば、１つ以上のハードドライブ４１４および主システムメモリ４１２などのメモリ記憶場所を利用して、動作可能なＣＰＵ４０２が、コンピュータプログラム４３０によって与えられるインストラクションを読み出し、上述のようにワークフローエンジン１００を実行するように動作する。
【００６６】
上述の方法、システムおよび構造について、それらの範囲から逸脱することなく、変更を行い得る。したがって、上記の説明に含まれ、そして／または添付の図面に示される主題は、例示として理解されるべきであり、本発明を限定する意味に理解してはならないことに注意すべきである。以下の特許請求の範囲は、本明細書に記載されるすべての包括的および具体的特徴、ならびに言葉の問題としてそれらの間に収まると言い得る本方法、システムおよび構造の範囲についてのすべての説明を包含するように意図されている。
【図１】
2010537317.tif 000003
【図２】
2010537317.tif 000004
【図３】
2010537317.tif 000005
【図４】
2010537317.tif 000006
【国際調査報告】
2010537317.tif 000007