(57)【要約】【課題】複数のモデリングツールの協調管理のためのコンピュータ実装方法が提供される。【解決手段】複数のモデリングツールの協調管理のためのコンピュータ実装方法（４００）は、プロセッサを介して、表計算アプリケーション内で動作するように構成されたモデリングツールに対するモデリングツール要求をユーザから受信することと（４０２）、インベントリーマネージャを介して、モデリングツール要求に一致するツール記録が存在するかどうかを判断することと（４０４）、ツール記録が存在しないと判断したことに応答して、ツール作成モジュールを介して、表計算アプリケーション内で動作するように構成された新しいモデリングツールを作成することと（４０６）、モデリングツール要求に一致するツール記録が存在しない場合、インベントリーマネージャを介して、ツール記録をインベントリーデータベース内で更新することと（４０８）、を含むことができる。【選択図】図４
2017126341.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを介して、表計算アプリケーション内で動作するように構成されたモデリングツールに対するモデリングツール要求を、ユーザから受信することと、
インベントリーマネージャを介して、前記モデリングツール要求に一致するツール記録が存在するかどうかを判断することと、
ツール記録が存在しないと判断したことに応答して、ツール作成モジュールを介して、前記表計算アプリケーション内で動作するように構成された新しいモデリングツールを作成することと、
前記モデリングツール要求に一致するツール記録が存在しない場合、前記インベントリーマネージャを介して、ツール記録をインベントリーデータベース内で更新することと、
を備える、複数のモデリングツールの協調管理のためのコンピュータ実装方法。
【請求項２】
ツール記録が存在するかどうかを判断することが、
ユーザから、少なくとも１つの属性を受信することと、
分類マネージャを介して、前記少なくとも１つの属性がツール記録内に存在するかどうかを判断することと、
出力デバイスを介して、前記少なくとも１つの属性を有する少なくとも１つのツール記録から成る選択可能な一覧を出力することと、
モデリングを、ツール選択を示すユーザ入力に基づいて読み出すことと、
を備える、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記少なくとも１つの属性が、工学的計算を備える、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記ツール作成モジュールが、新しいモデリングツールを、
プロセッサを介して、ユーザに、前記新しいモデリングツールの属性に関する情報についてプロンプトすることと、
プロセッサを介して、前記属性を示すユーザ入力を受信することと、
分類マネージャを介して、前記モデリングツールを、前記モデリングツールと共通の少なくとも１つの属性を有する、モデリングツールの一区分に分類することと、
前記インベントリーデータベース内に、前記モデリングツールを保存することであって、前記モデリングツールが、少なくとも１人の他のユーザによってアクセス可能である、保存することと、
によって作成するように構成されている、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記ツール記録が前記インベントリーデータベース内に存在するという判断に応答して、前記プロセッサを介して、既存のモデリングツールを、前記モデリングツール要求に基づいて受信すること、
をさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記既存のモデリングツールが、遠隔デバイス上にインストール可能である、請求項５に記載のコンピュータ実装方法。
【請求項７】
プロセッサを備える複数のモデリングツールの協調管理のためのシステムであって、前記プロセッサが、
前記プロセッサを介して、表計算アプリケーション内で動作するように構成されたモデリングツールに対するモデリングツール要求を、ユーザから受信することと、
インベントリーマネージャを介して、前記モデリングツール要求に一致するツール記録が存在するかどうかを判断することと、
ツール記録が存在しないと判断したことに応答して、ツール作成モジュールを介して、前記表計算アプリケーション内で動作するように構成された新しいモデリングツールを作成することと、
前記モデリングツール要求に一致するツール記録が存在しない場合、前記インベントリーマネージャを介して、ツール記録を、インベントリーデータベース内で更新することと、
を行うように構成されている、前記システム。
【請求項８】
前記プロセッサが、ツール記録が存在するかどうかを判断するように構成されていることが、
少なくとも１つの属性を受信することと、
分類マネージャを介して、前記少なくとも１つの属性がツール記録内に存在するかどうかを判断することと、
出力デバイスを介して、前記少なくとも１つの属性を有する少なくとも１つのツール記録から成る選択可能な一覧を出力することと、
モデリングツールを、ツール選択を示すユーザ入力に基づいて読み出すことと、
を備える、請求項７に記載のシステム。
【請求項９】
前記少なくとも１つの属性が、工学的計算を備える、請求項８に記載のシステム。
【請求項１０】
前記ツール作成モジュールが、
ユーザに、前記新しいモデリングツールの属性に関する情報をプロンプトすることと、
前記属性を示すユーザ入力を受信することと、
分類マネージャを介して、前記モデリングツールを、前記モデリングツールと共通の少なくとも１つの属性を有する、モデリングツールの一区分に分類することと、
前記インベントリーデータベース内に、前記モデリングツールを保存することであって、前記モデリングツールが、少なくとも１人の他のユーザによってアクセス可能である、保存することと、
を行うように構成されている、請求項７に記載のシステム。
【請求項１１】
前記プロセッサが、
前記ツール記録が前記インベントリーデータベース内に存在するという判断に応答して、既存のモデリングツールを、前記モデリングツール要求に基づいて受信すること、
を行うようにさらに構成されている、請求項７に記載のシステム。
【請求項１２】
前記既存のモデリングツールが、遠隔デバイス上にインストール可能である、請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、表計算ツールマネージャに関し、より具体的には、協調モデリングのための表計算ツールマネージャに関する。
【背景技術】
【０００２】
宇宙システムエンジニアは、新しいシステムモデリングツールと分析ツールとを迅速に作成することに対する、絶え間ない需要を有している。エンジニアがモデルを解く及び／または最適化するための表計算ツールを作成した時、他のエンジニアは、そのツールがすでに存在することに気づいていないことがある。その結果、第２のエンジニアは、同様の問題を解決する実質的に同様の分析ツールを、第１のエンジニアの作業の恩恵を受けずに、開発するかもしれない。組織は、モデリングツールを再利用し、費用をエンジニアリングの価値の流れ内で分担する機会を失うかもしれない。
【０００３】
Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）などの表計算アプリケーションは、しばしば、モデリングツール開発プロセスにおける主要プラットフォームであり、それは、表計算アプリケーションが、特別なインストールを必要とせず、低学習曲線を有し、計算を行い、情報をまとめ、データを視覚化するための強力な能力を提供することができるからである。Ｖｉｓｕａｌ  Ｂａｓｉｃ  ｆｏｒ  Ａｐｐｌｉｃａｔｉｏｎ（ＶＢＡ）は、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）内で使用される内蔵プログラミング言語拡張であり、ユーザが、ユーザ定義機能（ＵＤＦ）とマクロとを作成することを可能にする。ＶＢＡは、高速計算を行うことと、詳細なサイジング分析を行うことと、工学的問題の定常状態をモデリングすることと、過渡モデリングさえもすることと、のために使用することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の一実施形態による、複数のモデリングツールの協調管理のためのコンピュータ実装方法を、説明する。方法は、プロセッサを介して、表計算アプリケーション内で動作するように構成されたモデリングツールに対するモデリングツール要求を、ユーザから受信することと、インベントリーマネージャを介して、モデリングツール要求に一致するツール記録が存在するかどうかを判断することと、ツール記録が存在しないと判断したことに応答して、ツール作成モジュールを介して、表計算アプリケーション内で動作するように構成された新しいモデリングツールを作成することと、モデリングツール要求に一致するツール記録が存在しない場合、インベントリーマネージャを介して、ツール記録をインベントリーデータベース内で更新することと、を含むことができる。
【０００５】
別の実施形態による複数のモデリングツールの協調管理のためのシステムを、説明する。システムは、表計算アプリケーション内で動作するように構成されたモデリングツールに対するモデリングツール要求をユーザから受信するように構成されたプロセッサを、含むことができる。システムを、さらに、インベントリーマネージャを介して、モデリングツール要求に一致するツール記録が存在するかどうかを判断することと、ツール記録が存在しないと判断したことに応答して、ツール構築モジュールを介して、表計算アプリケーション内で動作するように構成された新しいモデリングツールを作成することと、モデリングツール要求に一致するツール記録が存在しない場合、インベントリーマネージャを介して、ツール記録をインベントリーデータベース内で更新することと、を行うように構成することができる。
【０００６】
さらに別の実施形態による非一時的コンピュータ可読ストレージ媒体を、説明する。非一時的ストレージ媒体は、複数のモデリングツールの協調管理のための方法を実行するようにプロセッサによって実行可能な、プログラム命令を含むことができる。方法は、プロセッサを介して、表計算アプリケーション内で動作するように構成されたモデリングツールに対するモデリングツール要求を、ユーザから受信することを含むことができる。方法は、さらに、インベントリーマネージャを介して、モデリングツール要求に一致するツール記録が存在するかどうかを判断することと、ツール記録が存在しないと判断したことに応答して、ツール作成モジュールを介して、表計算アプリケーション内で動作するように構成された新しいモデリングツールを作成することと、モデリングツール要求に一致するツール記録が存在しない場合、インベントリーマネージャを介して、ツール記録をインベントリーデータベース内で更新することと、を含むことができる。
【０００７】
本発明とみなされる主題は、本明細書の結論における特許請求の範囲において、具体的に指摘され、明確に請求される。本発明の前述の特徴、他の特徴、及び利点は、以下の詳細な説明を添付の図面と併せて考慮することで、明確になる。
【図面の簡単な説明】
【０００８】
【図１】いくつかの実施形態による、コンピューティング環境の図である。
【図２】いくつかの実施形態による、協調エンジンの図である。
【図３】いくつかの実施形態による、ファイルサーバの図である。
【図４】一実施形態による、複数のモデリングツールの協調管理のためのコンピュータ実装方法のフロー図である。
【図５】一実施形態による、ツール記録を管理するための方法のフロー図である。
【図６】本明細書の教示の実行で使用するためのコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００９】
図１は、本明細書で説明する実施形態を実行するための、例示的なコンピューティング環境１００を示している。ここで図１を参照すると、コンピューティング環境１００は、ファイルサーバ１０２を含むことができる。ファイルサーバ１０２は、協調エンジン１０４を含むことができる。
【００１０】
協調エンジン１０４を、工学的問題、設計問題、最適化問題、及び／または他のデータ駆動型問題を解くための複数のモデリングツールを管理するように構成することができる。以降でより詳細に説明するモデリングツールは、表計算アプリケーションと共に動作することができる、表計算駆動型の分析ツールであってよい。いくつかの態様によると、モデリングツール（及び、より正確には、モデリングツールを備えるコンピュータ実行可能データ）は、ファイルサーバ１０２のローカルまたは遠隔のいずれかにいる１人または複数のユーザによって、アクセス可能及び更新可能であってよい。たとえば、コンピューティング環境１００は、１つまたは複数の、遠隔に配置された、デバイス１０６とデバイス１０８とを含むことができ、それらは、ファイルサーバ１０２に、ネットワーク１１０を介して動作可能に接続され得る。
【００１１】
いくつかの実施形態によると、デバイス１０６及び／またはデバイス１０８は、特注のエンジニアリングツールを共有することによって互いに協働するために、ファイルサーバ１０２にアクセスすることができる。たとえば、いくつかの実施形態では、ファイルサーバ１０２は、モデリングツール要求を、デバイス１０６から受信することができる。要求は、特定の工学的問題を解決するために適切なエンジニアリングツールを特定することができる、少なくとも１つの属性を含むことができる。エンジニアリングツールを、分類し、１つまたは複数のツール記録内に格納することができる。
【００１２】
別の例として、ユーザが、熱力学問題において単位を変換したい場合、ユーザは、ファイルサーバ１０２に、（接続デバイス、たとえば、デバイス１０８を介して、）熱力学問題を解決することに向けられたモデリングツールに関連する１つまたは複数のツール記録に関して、問い合わせることができる。１つまたは複数のツール記録は、工学単位を変換することができる、表計算アプリケーション内で動作する特注エンジニアリングツールに関連する情報を含むことができる。その結果、協調エンジン１０４は、モデリングツール要求を受信することができ、モデリングツール要求に一致するツール記録が存在するかどうかを判断することができ、一致するツール記録をユーザのローカルの表計算アプリケーションに送信するか、または要求された動作を実行するように構成された新しいモデリングツールを作成するかのいずれかを行うことができる。協調エンジン１０４は、モデリングツールを、ツール記録として格納して、他のユーザが、そのモデリングツールの最初の作成によって実行される作業の恩恵を受けられるようにすることができる。
【００１３】
図２は、いくつかの実施形態による、協調エンジン１０４を示している。協調エンジン１０４は、インベントリーマネージャ２０２とツール構築モジュール２０４とを含むことができる。いくつかの実施形態によると、インベントリーマネージャ２０２は、分類マネージャ２１２を含むことができ、分類マネージャ２１２は、１つまたは複数の、ツール記録２１６、ツール記録２１８、ツール記録２２０、などの分類データ構造を判断するように構成され得る。たとえば、分類データ構造は、単位変換器の１つまたは複数の区分を含むことができる。別の例として、流体力学の一区分は、たとえば、入り口境界状態問題、出口境界状態問題、一定圧力問題及び動的圧力問題、などの、１つまたは複数の種類の流体力学問題及び／また属性を含むことができる。いくつかの実施形態によると、分類マネージャ２１２を、１つまたは複数のモデリングツール要求をユーザから受信することと、モデリングツール要求に一致するツール記録が存在するかどうかを判断することと、新しいツール記録をインベントリーデータベース（たとえば、図３に示したインベントリーデータベース３０８）に与えることと、を行うように構成することができる。分類マネージャ２１２は、新しいモデリングツールが協調エンジン１０４によって作成される場合、モデリングツールを分類し、目録に載せるための１つまたは複数の分類データ構造を作成することができる。
【００１４】
いくつかの実施形態では、サーバ１０２内のプロセッサ（たとえば、図６に関連して説明するプロセッサ６０１）は、ツール記録要求をユーザから受信した後、ツール記録がインベントリーデータベース２０８内に存在しないと判断することができる。その結果、プロセッサ６０１は、プロンプトを提供し、ツール作成エンジン２１４を介して、表計算アプリケーション内で動作するように構成された新しいモデリングツールを作成するという対応するユーザ入力を、受信することができる。いくつかの態様では、プロセッサ６０１は、特定の工学的問題を記述した１つまたは複数の属性を含むツール記録要求を、受信することができる。プロセッサ６０１は、ツール記録がインベントリーデータベース２０８内に存在すること、または存在しないことを、ツール記録要求内に示されたユーザ入力に基づいて判断することができる。プロセッサ６０１は、ユーザが受信した１つまたは複数の属性に基づいて、判断することができる。たとえば、熱力学問題は、それに関連して、圧力、容積、応力／ひずみペア、温度、エントロピーペア、などを含み得る変数を有することができる。プロセッサ６０１は、モデリングツール要求を受信し、要求からの少なくとも１つの属性（たとえば、計算タイプ、工学的問題の区分、など）に一致するツール記録が存在するかどうかを判断し、共通の属性を有する少なくとも１つのツール記録から成る選択可能な一覧を出力することができる。その結果、プロセッサ６０１は、モデリングツールを受信し、そのツールを要求デバイスにインストールすることができる。送信は、プロセッサ６０１が行う自動選択に基づいてよく、またはツール選択を示すユーザ入力に基づいてよい。
【００１５】
ここで図３を参照すると、いくつかの実施形態による、ファイルサーバ１０２が示されている。いくつかの態様では、ファイルサーバ１０２は、インベントリーデータベース３０８を含むことができ、それは、複数の、ツール記録３１６、ツール記録３１８、ツール記録３２０、などを含むように構成され得る。ツール記録（たとえば、ツール記録３１６）は、１つまたは複数の特定の工学的モデリング問題を解くように構成されたＭｉｃｒｏｓｏｆｔ  Ｖｉｓｕａｌ  Ｂａｓｉｃ（ＶＢＡ）コードの、１つまたは複数のコンピュータ実行可能モデルを含むことができる。３つの、ツール記録３１６とツール記録３１８とツール記録３２０とを示したが、任意の数のツール記録がインベントリーデータベース３０８内に予期される、ということを理解すべきである。
【００１６】
図４は、一実施形態による、複数のモデリングツールの協調管理のためのコンピュータ実装方法３００のフロー図である。ここで図４を参照すると、いくつかの態様では、プロセッサ６０１は、エンジニアリングツール要求を、デバイス１０８を操作しているユーザから受信することができる。決断ブロック４０４に示す通り、プロセッサ６０１は、モデリングツール要求に一致するツール記録が存在するかどうかを判断することができる。
【００１７】
記録が存在しない場合、ブロック４０６に示す通り、プロセッサ６０１は、ユーザに、新しいエンジニアリングツールを作成するように、プロンプトを提供することができる。たとえば、いくつかの態様では、プロセッサ６０１は、ユーザに、モデリング問題に関連する１つまたは複数の属性を入力するようにプロンプトすることができる。一実施形態によると、プロセッサ６０１は、ユーザに、新しいコードモジュールを、「全くの最初から」、ローカルクライアント上にインスタンス化し、それを、インベントリーデータベース３０８に、単に保存するようにプロンプトすることができる。別の態様では、プロセッサ６０１は、ユーザに、ダミーコードモジュールを、ローカルに、ツール記録テンプレートを使用して作成するようにプロンプトすることができ、それは、ユーザに情報についてプロンプトするための実行可能命令を提供するように構成され得、ユーザに、テンプレートに記入し、次いで、それを、インベントリーデータベース３０８に保存するためのプロンプトを提供する。いくつかの実施形態では、ツール記録テンプレートを、協調エンジン１０４の一部として保存することができる。他の実施形態では、ツール記録テンプレートを、ファイルサーバ１０２上に保存し、プロセッサ６０１によって呼び出された時に、デバイス１０６に送信することができる。
【００１８】
新しいモデリングツールを作成した後、プロセッサ６０１は、ブロック４０８に示す通り、分類情報を、ツール記録３１６に関連して作成し、ツール記録３１６を、インベントリーデータベース３０８内で更新することができる。ブロック４１２で、プロセスは、完了することができる。
【００１９】
他の態様では、ツール作成エンジン２１４は、表計算アプリケーション内で動作する、強力なユーザ定義機能を作成し、共有するための、ユーティリティを提供することができる。たとえば、ツール作成エンジン２１４は、新しいモジュールと機能とを、コードの記入が容易なテンプレートを用いて作成するためのシングルクリックユーティリティを提供することができ、それは、情報の区分をユーザから受信し、ツールを、ユーザが行うクリックで作成することができる。他の態様では、ツール作成エンジン２１４は既存のツール記録を分け、修正するための手段、及び、開発ライブラリ（たとえば、インベントリーデータベース３０８）に新しいモジュール（モデリングツール）を迅速に保存するためのユーティリティを提供することができる。
【００２０】
さらに他の実施形態によると、ブロック４０６で、プロセッサ６０１は、ライブラリからのツール記録（たとえば、ツール記録３１６）をインストールし、ユーザに、ツール記録３１６のローカルコピーを変更するようにプロンプトすることができる。その結果、プロセッサ６０１は、ユーザ入力を受信し、ツール記録３１６の補足バージョンを作成することができる。いくつかの態様では、プロセッサ６０１は、ツール記録３１６の補足バージョンを、インベントリーデータベース３０８内に保存されているツール記録３１６と比較し、ユーザに、修正したツール記録をインベントリーデータベース３０８内に保存するようにプロンプトすることができる。
【００２１】
他の実施形態によると、ツール作成エンジン２１４は、既存の現在の表計算ワークブックコードを、インベントリーデータベース２０８内に保存されているライブラリと比較するためのユーティリティを提供することができる。いくつかの態様では、ツール作成エンジン２１４は、変更が、インベントリーデータベース３０８内に保存されているツール記録に対して行われたかどうかを判断することができる。たとえば、ユーザが、特定のツール記録をインベントリーデータベース３０８から受信し、インストールした場合、ツール作成エンジン２１４は、変更が、保存されている記録に対して行われたかどうかを判断し、ユーザに、変更について警告することができる。他の態様では、ツール作成エンジン２１４を、依存モジュールを特定するように構成することができ、依存モジュールでは、１つのモードは、別のモジュールに依存する。その結果、ユーザは、他の作業の上に作成することができる。
【００２２】
決定ブロック４０４に示す通り、プロセッサ６０１が、モデリング要求に基づいて、ツール記録が存在すると判断した場合（たとえば、ツール記録３１８）、プロセッサ６０１は、ブロック４１０に示す通り、モデリングツールをユーザに送信することができる。モデリングツールは、ツール記録をローカルにインストールするためにデバイス１０８が使用することができるコンピュータ実行可能情報を、含むことができ、その後、ブロック４１２に示す通り、プロセスを完了することができる。
【００２３】
図５は、一実施形態による、ツール記録が存在するかどうかを判断するためのコンピュータ実装方法５００のフロー図である。ここで図５を参照すると、プロセッサ６０１は、ブロック５０２に示す通り、モデリングツール記録要求内に含まれる少なくとも１つのモデリングツール属性を受信することができる。ブロック５０４に示す通り、プロセッサ６０１は、要求されたモデリングツールと共有されている少なくとも１つの属性がツール記録内に存在するかどうかを、判断することができる。いくつかの実施形態によると、ブロック５０６に示す通り、プロセッサ６０１は、少なくとも１つの属性を有する少なくとも１つのツール記録から成る選択可能な一覧を出力し、ブロック５０８に示す通り、モデリングツールを、ユーザに、ツール選択を示すユーザ入力に基づいて送信することができる。選択可能な一覧を、ユーザに、要求デバイス（たとえば、デバイス１０６）でのユーザ選択のために出力することができる。
【００２４】
図６は、本明細書で説明する実施形態の実行で使用するための、コンピュータシステム６００（以降、「コンピュータ６００」）のブロック図である。たとえば、コンピュータシステム６００は、デバイス１０６及び／またはデバイス１０８を具現化することができる。本明細書で説明する方法を、ハードウェア、ソフトウェア（たとえば、ファームウェア）、またはそれらの組み合わせで実装することができる。例示的な実施形態では、本明細書で説明する方法は、ハードウェアで実装され、パーソナルコンピュータ、ワークステーション、ミニコンピュータ、またはメインフレームコンピュータなどの、専用デジタルコンピュータまたは汎用デジタルコンピュータのマイクロプロセッサの一部であってよい。コンピュータ６００は、したがって、汎用コンピュータを具現化することができる。別の例示的な実施形態では、本明細書で説明する方法は、たとえば、携帯電話、携帯情報端末（ＰＤＡ）、タブレットコンピュータ、ラップトップコンピュータ、などのモバイルデバイスの一部として実装される。
【００２５】
例示的な実施形態では、ハードウェアアーキテクチャの観点では、図６に示す通り、コンピュータ６００は、プロセッサ６０１を含む。コンピュータ６００は、また、プロセッサ６０１に連結されたメモリ６０２と、システムバス６０５を介して通信可能に連結され得る１つまたは複数の入力／出力アダプタ６０３と、を含む。メモリ６０２を、１つまたは複数の、内部メモリデバイスまたは外部メモリデバイスに動作可能に連結することができる。通信アダプタ６０４は、コンピュータ６００を１つまたは複数のネットワーク１１０に、動作可能に接続することができる。システムバス６０５は、また、１つまたは複数のユーザインターフェースを、インターフェースアダプタ６１２を介して接続することができる。インターフェースアダプタ６１２は、たとえば、キーボード６０９、マウス６１０、スピーカー６１３、などを含む複数のユーザインターフェースを、コンピュータ６００に接続することができる。システムバス６０５は、また、ディスプレイアダプタ６１６とディスプレイ６１７とを、プロセッサ６０１に接続することができる。プロセッサ６０１を、また、図形処理ユニット６１８に動作可能に接続することができる。
【００２６】
プロセッサ６０１は、ハードウェア命令またはソフトウェア、特に、非一時的コンピュータ可読メモリ（たとえば、メモリ６０２）内に格納されているものを実行するための、ハードウェアデバイスである。プロセッサ６０１は、任意の特注または市販のプロセッサ、中央処理装置（ＣＰＵ）、複数のＣＰＵ、たとえば、プロセッサ６０１、コンピュータ６００に関連するいくつかの他のプロセッサのうちの補助プロセッサ、（マイクロチップまたはチップセットの形態の）半導体ベースのマイクロプロセッサ、または一般的に、命令を実行するための任意のデバイスであってよい。プロセッサ６０１は、メモリキャッシュ６０６を含むことができる。
【００２７】
メモリ６０２は、ランダムアクセスメモリ（ＲＡＭ）６０７とリードオンリメモリ（ＲＯＭ）６０８とを含むことができる。ＲＡＭ６０７は、揮発性メモリ要素（たとえば、ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ、など）のうちの任意の１つ、またはそれらの組み合わせであってよい。ＲＯＭ６０８は、任意の１つまたは複数の非揮発性メモリ要素（たとえば、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、プログラマブルリードオンリメモリ（ＰＲＯＭ）、テープ、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、ディスク、カートリッジ、カセットまたは同類のもの、など）を含むことができる。さらに、メモリ６０２は、電子媒体、磁気媒体、光媒体、及び／または他の種類の非一時的コンピュータ可読ストレージ媒体を含むことができる。メモリ６０２が分散アーキテクチャを有することができ、そこでは、さまざまな構成要素が、互いに遠く離れて配置されているが、プロセッサ６０１によってアクセスされ得る、ということに留意すること。
【００２８】
メモリ６０２内の命令は、１つまたは複数の別々のプログラムを含むことができ、それらは、論理機能を実装するためのコンピュータ実行可能命令の順番になった一覧を備えることができる。図６の例では、メモリ６０２内の命令は、オペレーティングシステム６１１を含むことができる。オペレーティングシステム６１１は、他のコンピュータプログラムの実行を制御することができ、スケジューリングと、入力出力制御と、ファイル及びデータ管理と、メモリ管理と、通信制御と、関連サービスと、を提供する。
【００２９】
入力／出力アダプタ６０３は、たとえば、当技術分野で知られている、１つまたは複数のバスまたは他のワイヤード接続またはワイヤレス接続であってよいが、それらに限定されない。入力／出力アダプタ６０３は、通信を可能にするために、コントローラ、バッファ（キャッシュ）、ドライバ、リピータ、レシーバなどの追加的な要素を有することができ、それらは、簡略化のために省略されている。さらに、ローカルインターフェースは、前述の構成要素間での適切な通信を可能にするために、アドレス、制御、及び／またはデータ接続を含むことができる。
【００３０】
インターフェースアダプタ６１２を、１つまたは複数の入力／出力（Ｉ／Ｏ）デバイスをコンピュータ６００に動作可能に接続するように構成することができる。たとえば、インターフェースアダプタ６１２は、キーボード６０９とマウス６１０とを接続することができる。他の出力デバイス、たとえば、スピーカー６１３を、インターフェースアダプタ６１２に動作可能に接続することができる。他の出力デバイスも含むことができるが、図示されていない。たとえば、デバイスは、プリンタ、スキャナ、マイク、及び／または同類のものを含むことができるが、これらに限定されない。最後に、インターフェースアダプタ６１２に接続可能なＩ／Ｏデバイスは、さらに、入力と出力との両方と通信するデバイス、たとえば、（他のファイル、デバイス、システム、またはネットワークにアクセスするための）ネットワークインターフェースカード（ＮＩＣ）または変調器／復調器、高周波（ＲＦ）トランシーバまたは他のトランシーバ、電話インターフェース、ブリッジ、ルータ、などを含むことができるが、これらに限定されない。
【００３１】
コンピュータ６００は、さらに、１つまたは複数のディスプレイ６１７に連結されたディスプレイアダプタ６１６を含むことができる。例示的な実施形態では、コンピュータ６００は、さらに、ネットワーク１１０に連結するための通信アダプタ６０４を含むことができる。
【００３２】
ネットワーク１１０は、コンピュータ６００と任意の外部デバイスとの間の通信のための、ＩＰベースのネットワークであってよい。ネットワーク１１０は、データを、コンピュータ６００と、コンピュータ６００の外部のデバイス及び／またはシステムとの間で、送受信する。例示的な実施形態では、ネットワーク１１０は、サービスプロバイダによって運営されている、管理ＩＰネットワークであってよい。ネットワーク１１０は、たとえば、アビオニクスネットワークなどの、航空機の内部のネットワークであってよい。ネットワーク１１０を、ワイヤレス方法、たとえば、ＷｉＦｉ、ＷｉＭａｘ、などのワイヤレスプロトコルと技術とを使用して実装することができる。ネットワーク１１０は、また、たとえば、ＲＳ２３２接続、Ｒ５４２２接続、などを含む任意のワイヤード接続を有するワイヤードネットワーク、たとえば、イーサネットネットワーク、ＡＲＩＮＣ４２９ネットワーク、ＣＡＮ、などであってよい。ネットワーク１１５は、また、ローカルエリアネットワーク、広域ネットワーク、メトロポリタンエリアネットワーク、インターネットネットワーク、または他の類似の種類のネットワーク環境などの、パケット交換ネットワークであってよい。ネットワーク１１５は、固定ワイヤレスネットワーク、ワイヤレスローカルエリアネットワーク（ＬＡＮ）、ワイヤレス広域ネットワーク（ＷＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、イントラネット、または他の適切なネットワークシステムであってよい。
【００３３】
コンピュータ６００が、ＰＣ、ワークステーション、ラップトップ、タブレットコンピュータ、及び／または同類のものの場合、メモリ６０２内の命令は、さらに、基本入出力システム（ＢＩＯＳ）（簡略化のために省略）を含むことができる。ＢＩＯＳは、ハードウェアをスタートアップで初期化、テストし、オペレーティングシステム６１１を開始し、動作可能に接続されたハードウェアデバイス間でデータの伝達をサポートする、必須ルーチンのセットである。ＢＩＯＳは、コンピュータ６００を起動した時にＢＩＯＳを実行することができるように、ＲＯＭ６０８内に格納される。コンピュータ６００が動作中の時、プロセッサ６０１は、メモリ６０２内に格納された命令を実行して、データを、メモリ６０２に、またメモリ６０２から、伝達し、コンピュータ６００の動作を、命令に基づいて全般的に制御するように構成され得る。
【００３４】
本発明のさまざまな実施形態の説明を、例示の目的のために提示したが、それらを、網羅的にすること、または開示した実施形態に限定すること、を意図していない。多くの変更物及び変化物は、説明した実施形態の範囲と精神とから逸脱せずに、当業者に明確である。本明細書で使用した用語は、実施形態の原理、実際的なアプリケーション、または市場で見いだされる技術の技術的改善を最もよく説明するために、または本明細書で開示する実施形態を当業者が理解することを可能にするために、選択された。
【００３５】
本発明は、統合の任意の可能な技術的詳細レベルの、システム、方法、及び／またはコンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有した、コンピュータ可読ストレージ媒体（または媒体）を含むことができる。
【００３６】
コンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持、格納することができる有形デバイスであってよい。コンピュータ可読ストレージ媒体は、たとえば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または前述のうちの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的な一覧は、以下の、ポータブルコンピュータディスケットと、ハードディスクと、ランダムアクセスメモリ（ＲＡＭ）と、リードオンリメモリ（ＲＯＭ）と、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭまたはフラッシュメモリ）と、スタティックランダムアクセスメモリ（ＳＲＡＭ）と、ポータブルコンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）と、デジタル多用途ディスク（ＤＶＤ）と、メモリスティックと、フレキシブルディスクと、その上に記録された命令を有する、パンチカードまたは溝内の突起構造などの機械的に符号化されたデバイスと、前述のうちの任意の適切な組み合わせと、を含む。本明細書で使用するコンピュータ可読ストレージ媒体は、電波または他の自由に伝播する電磁波、導波管または他の伝送媒体を通って伝播する電磁波（たとえば、光ファイバケーブルを通過する光パルス）、またはワイヤを通して伝送される電気信号などの、本質的に一時的な信号であると解釈されるものではない。
【００３７】
本明細書で説明するコンピュータ可読プログラム命令を、各コンピューティングデバイス／処理デバイスに、コンピュータ可読ストレージ媒体から、または外部コンピュータまたは外部ストレージデバイスに、ネットワーク、たとえば、インターネット、ローカルエリアネットワーク、広域ネットワーク及び／またはワイヤレスネットワークを介して、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び／またはエッジサーバを備えることができる。各コンピューティング／処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、コンピュータ可読プログラム命令を、各コンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納するために、転送する。
【００３８】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、またはＳｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、または「Ｃ」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、全部をユーザのコンピュータ上で、一部をユーザのコンピュータ上で、独立型ソフトウェアパッケージとして、一部をユーザのコンピュータ上で一部を遠隔コンピュータ上で、または全部を遠隔コンピュータまたはサーバで、実行することができる。最後のシナリオでは、遠隔コンピュータを、ユーザのコンピュータに、ローカルエリアネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のネットワークを通して接続することができ、または接続を、外部コンピュータに（たとえば、インターネットサービスプロバイダを使用してインターネットを通して）行うことができる。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはプログラマブルロジックアレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令を、コンピュータ可読プログラム命令の状態情報を活用することによって実行して、電子回路をパーソナライズすることができる。
【００３９】
本発明の態様を、本明細書では、本発明の実施形態による、方法と、装置（システム）と、コンピュータプログラム製品と、のフローチャート図及び／またはブロック図に関連して説明した。フローチャート図及び／またはブロック図の各ブロックと、フローチャート図及び／またはブロック図内のブロックの組み合わせとを、コンピュータ可読プログラム命令で実装することができる、ということが理解される。
【００４０】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供して、マシンを生成し、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令が、フローチャート及び／またはブロック図のブロック内に規定される機能／動作を実装するための手段を作成することができるようにする。コンピュータ、プログラマブルデータ処理装置、及び／または他のデバイスを特定の方法で機能させることができるこれらのコンピュータ可読プログラム命令を、また、コンピュータ可読ストレージ媒体内に格納することができ、命令をその中に格納して有するコンピュータ可読ストレージ媒体が、フローチャート及び／またはブロック図のブロック内で規定される機能／動作の態様を実装する命令を含む製造品を備えるようにする。
【００４１】
コンピュータ可読プログラム命令を、また、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードし、一連の動作ステップを、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上で実行し、コンピュータ実装プロセスを生成し、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上で実行される命令が、フローチャート及び／またはブロック図のブロック内で規定される機能／動作を実装するようにすることができる。
【００４２】
図のフローチャート及びブロック図は、本発明のさまざまな実施形態による、システムと方法とコンピュータプログラム製品との可能な実装形態の、アーキテクチャと機能と動作とを示している。この点において、フローチャートまたはブロック図内の各ブロックは、モジュール、セグメント、または命令の一部を表すことができ、それは、特定の論理機能を実装するための１つまたは複数の実行可能命令を備える。いくつかの代替的な実装形態では、ブロック内に記述された機能は、図に記した順番以外で発生し得る。たとえば、連続して示された２つのブロックを、実際、実質的に同時に実行することができ、または、必要とされる機能により、ブロックを、時々、逆の順番で実行することができる。また、ブロック図及び／またはフローチャート図の各ブロック、ブロック図及び／またはフローチャート図内のブロックの組み合わせを、特定の機能または動作を実行する、または専用ハードウェア命令とコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムで実装することができる、ということに留意すること。
【００４３】
本発明のさまざまな実施形態の説明を、例示の目的のために提示したが、それらを、網羅的にすること、または開示の実施形態に限定すること、を意図していない。多くの変更物及び変化物は、説明した実施形態の範囲と精神とから逸脱せずに、当業者に明白である。本明細書で使用する用語は、実施形態の原理、実際的なアプリケーション、または市場で発見される技術の技術的改善を最もよく説明するために、または本明細書で開示する実施形態を当業者が理解することを可能にするために、選択された。
【図１】
2017126341.tif 000003
【図２】
2017126341.tif 000004
【図３】
2017126341.tif 000005
【図４】
2017126341.tif 000006
【図５】
2017126341.tif 000007
【図６】
2017126341.tif 000008