(57)【要約】  動作環境内のソフトウェアコントロールの識別、認可、および調整を行うソフトウェアコントロールマネージャが開示される。動作環境はコンピューティングプラットフォームに存在することができる。コントロールは機能を動作環境に提供し、情報の検索または収集に使用される。マネージャがコントロールへの情報を制御する。マネージャはまた、コントロールが動作環境内に配置されると、そのコントロールを登録する。登録されたコントロールはマネージャ内のコントロールリストに列挙される。マネージャは、コントロールを登録するにあたりセキュリティプロセスを実行することができる。マネージャはまた、動作環境および他のコントロールについての情報を、動作環境に追加されたコントロールに提供する。マネージャは、その他のコントロールが情報を検索し、その情報をコンピューティングプラットフォーム上の既存のデータへ関連付けることをやりやすくする。
2005515562.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのコントロールを有するコンピューティングプラットフォームの動作環境であって、前記コンピューティングプラットフォームはプロセッサおよびメモリを備え、前記動作環境は、
機能を提供する第１のコントロールと、
前記第１のコントロールを識別し、前記第１のコントロールへの情報を調整するマネージャと、
を含み、前記機能は前記情報を使用する、動作環境。
【請求項２】
前記マネージャにより識別される第２のコントロールをさらに含み、前記マネージャは前記第２のコントロールと前記情報を調整する、請求項１記載の動作環境。
【請求項３】
前記マネージャ内にコントロールリストをさらに含み、前記コントロールリストは前記第１のコントロールおよび前記第２のコントロールを参照する、請求項２記載の動作環境。
【請求項４】
前記マネージャはコントロールリストを含み、前記コントロールリストは前記少なくとも１つのコントロールを参照する、請求項１記載の動作環境。
【請求項５】
前記マネージャは前記コントロールリストを前記第１のコントロールに転送する、請求項３記載の動作環境。
【請求項６】
前記機能と併せて実行されるアプリケーションをさらに含む請求項１記載の動作環境。
【請求項７】
前記マネージャは前記第１のコントロールからデータ構造情報を検索する、請求項１記載の動作環境。
【請求項８】
コンピューティングプラットフォームであって、
前記コンピューティングプラットフォーム上の動作環境内の少なくとも１つのコントロールであって、前記少なくとも１つのコントロールは、前記コンピューティングプラットフォーム上のプロセッサに接続されたメモリに格納されているグラフィカルデータを操作する、少なくとも１つのコントロール
を識別する自己実行可能なコントロールマネージャを含む動作環境を有するコンピューティングプラットフォーム。
【請求項９】
前記コントロールマネージャを介して前記少なくとも１つのコントロールと通信する別のコントロールをさらに含む請求項８記載のコンピューティングプラットフォーム。
【請求項１０】
前記少なくとも１つのコントロールは、前記動作環境内のアプリケーションに機能を提供する、請求項８記載のコンピューティングプラットフォーム。
【請求項１１】
動作環境内の複数のコントロールのマネージャであって、前記複数のコントロールは、格納データを操作し、受け取ったデータを前記格納データに関連付け、前記マネージャは、
前記動作環境に対して前記マネージャを識別するタイプストリングと、
前記複数のコントロールを識別するコントロールリストと、
前記動作環境によって表示すべきデータフィールドを決定する情報フィールドと、
を含み、前記データフィールドは前記複数のコントロールに相関する、マネージャ。
【請求項１２】
前記コントロールのｔｗｉｐ幅をさらに含む請求項１１記載のマネージャ。
【請求項１３】
前記コントロールのｔｗｉｐ高さをさらに含む請求項１１記載のマネージャ。
【請求項１４】
ストレージディレクトリのロケーションを示すストレージディレクトリフィールドをさらに含む請求項１１記載のマネージャ。
【請求項１５】
前記動作環境内のデータを追跡するトラックアレイをさらに含む請求項１１記載のマネージャ。
【請求項１６】
動作環境内のコントロールを調整する方法であって、
前記動作環境内のマネージャ上のコントロールリストを照会することと、
前記制御リストからコントロールを識別することと、
前記コントロールの情報を検索することと、
前記マネージャを使用して、前記コントロールを前記動作環境内の別のコントロールと調整することであって、前記別のコントロールは前記制御リスト上にある、前記コントロールを別のコントロールと調整することと、
を含む動作環境内のコントロールを調整する方法。
【請求項１７】
前記コントロールとのアクションを実行することをさらに含む請求項１６記載の動作環境内のコントロールを調整する方法。
【請求項１８】
前記マネージャにおいて前記アクションを受け取ることをさらに含む請求項１７記載の動作環境内のコントロールを調整する方法。
【請求項１９】
前記コントロールが前記制御リスト上にない場合、エラーを生成することをさらに含む請求項１６記載の動作環境内のコントロールを調整する方法。
【請求項２０】
前記アクションがメッセージを含むか否かを判断することをさらに含む請求項１６記載の動作環境内のコントロールを調整する方法。
【請求項２１】
前記動作環境内に前記メッセージを表示することをさらに含む請求項２０記載の動作環境内のコントロールを調整する方法。
【請求項２２】
動作環境内のコントロールを管理する方法であって、前記動作環境はデータ交換をやりやすくし、
前記動作環境内の前記コントロールをマネージャに通知することと、
前記マネージャにより認識されたコントロールを前記マネージャに登録することと、
前記マネージャから前記登録されたコントロールへの情報を提供することと、
前記マネージャを介して前記コントロールと前記動作環境の間の通信をやりやすくすることと、
を含む動作環境内のコントロールを管理する方法。
【請求項２３】
前記情報を提供することは、前記登録されたコントロール内のポインタを初期化することを含む、請求項２２記載の動作環境内のコントロールを管理する方法。
【請求項２４】
前記登録することは、前記マネージャを使用して前記コントロールに対してセキュリティプロセスを実行することを含む、請求項２２記載の動作環境内のコントロールを管理する方法。
【請求項２５】
前記登録することは、前記登録されたコントロールを前記マネージャ内のコントロールリストに追加することを含む、請求項２２記載の動作環境内のコントロールを管理する方法。
【請求項２６】
前記提供することは、前記マネージャからサポートされるコントロールのリストを提供することを含む、請求項２２記載の動作環境内のコントロールを管理する方法。
【請求項２７】
前記提供することは、前記マネージャに参照を提供することを含む、請求項２２記載の動作環境内のコントロールを管理する方法。
【請求項２８】
動作環境内のコントロールとのアクションを実行する方法であって、
前記動作環境内のマネージャに置いて、前記アクションに関するコマンドを受け取ることであって、前記マネージャは前記コントロールを調整する、コマンドを受け取ることと、
前記アクションの制御メソッドを識別することであって、前記マネージャが前記制御メソッドを開始する、制御メソッドを識別することと、
前記制御メソッドと併せて実行する少なくとも１つのコントロールを識別することと、
前記少なくとも１つのコントロールにおいて前記マネージャから情報を受け取ることと、
前記情報を使用して、前記少なくとも１つのコントロールとともに前記アクションを実行することと、
を含む動作環境内のコントロールとのアクションを実行する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の背景］
［発明の分野］
本発明は、電子対話式通信システムに関し、特に、本発明は、動作環境（operating environment）内のマネージャを使用してソフトウェアコントロール（software control）を管理するシステムおよび方法に関する。
【０００２】
［関連出願の相互参照］
本願は、２００１年１２月２１日に出願され、参照により本明細書に援用される米国仮特許出願第６０／３４１，８６２号、名称「Electronic Interactive Communication System and the Method Therefor」の利益を主張するものである。
【０００３】
［関連分野の考察］
近年、コンピューティングプラットフォームの数は著しく増大した。手のひらサイズのコンピューティング装置および／または可搬式コンピューティング装置が一般になった。さらに、特定のオペレーティングシステムをそれぞれ有する、バージョンの異なる特定のプラットフォームの数も同様に増大した。コンピューティングプラットフォーム上で実行する様々なソフトウェアプログラムも作成された。従来のコンピューティング装置は、情報およびプログラムコードをメモリに予め格納したり、プログラムを実行できるようにする情報を別の装置から受け取ったりすることができる。複数のコンピューティングプラットフォームおよびオペレーティングシステムを使用する場合、プログラムおよび情報は、多くの動作環境で実行する能力を使用して理解する必要がある。
【０００４】
ソフトウェアコントロールは、異なるプラットフォーム上で動作している異なるプログラムを使用可能に、または起動することができる。ソフトウェアコントロールは、既存のプログラムの機能を高めるプログラムモジュールであることができる。コントロール（control）は、ユーザがコンピューティングプラットフォームのメモリに格納されている情報を操作できるようにするユーザインタフェース機能としての役割を果たすことができる。コントロールは、統合され、プログラムの通常部分として見える既存の構成要素を呼び出すことにより機能を追加することが可能である。しかし一般に、これらコントロールは起動されるまで休止しており、受け身的にコンピューティング環境内に存在していない場合がある。この欠点により、コントロールの有効性が低減し、ソフトウェア環境内で、また他のプログラムおよびコントロールと対話するコントロールの能力が制限される恐れがある。さらに、従来のコントロールは、他のコントロールの属性（property）およびメソッドを、そのコントロールをアクティブにさせずにアクセスすることができないものがある。
【０００５】
コントロールは、上に述べたように、可搬式装置であるコンピューティングプラットフォーム上にあることが望ましい場合がある。コントロールは、可搬式装置の機能を向上させ、装置に格納されているプログラムを越えてさらなる情報をユーザに提供することができる。しかし、メモリ資源がコントロールによりプログラムを犠牲にして要求されるため、同時にアクティブになっているコントロールが多すぎる場合に問題が発生する可能性がある。さらに、コントロールは、互いに、または装置のオペレーティングシステムと対話することができない場合がある。その結果、コントロールは、コンピューティングプラットフォームの機能を高めるそれぞれの能力を失う。
【０００６】
［発明の概要］
したがって、開示される実施形態は、動作環境内のソフトウェアコントロールのソフトウェアコントロールマネージャを使用可能にするシステム、装置、または方法に向けられる。
【０００７】
本発明のさらなる特徴および利点は、以下の説明に示し、説明から明らかになる部分もあれば、本発明の実施により学ぶことができるものもある。本発明の目的および他の利点は、本明細書の書面での説明および特許請求の範囲、ならびに添付図面において特に指摘される構造によって認識し達成されるであろう。
【０００８】
これらおよび他の利点を達成するため、本発明の目的によれば、具現され広く説明されるように、少なくとも１つのコントロールを有するコンピューティングプラットフォームの動作環境について開示する。コンピューティングプラットフォームは、プロセッサおよびメモリを備える。動作環境は、機能を提供する第１のコントロールを備える。動作環境は、第１のコントロールを識別し、第１のコントロールへの情報を調整するマネージャも備える。機能はこの情報を使用する。
【０００９】
一実施形態によれば、動作環境内のコントロールを調整する方法が開示される。この方法は、動作環境内のマネージャ上のコントロールリストを照会することを含む。この方法は、コントロールリストからコントロールを識別することも含む。この方法は、コントロールの情報を検索することも含む。この方法は、マネージャを使用して、コントロールを動作環境内の別のコントロールと調整することも含む。他のコントロールはコントロールリスト上にある。
【００１０】
一実施形態によれば、動作環境内のコントロールを管理する方法が開示される。動作環境は、データ交換をやりやすくする。この方法は、動作環境内のコントロールをマネージャに通知することを含む。この方法は、マネージャにより認識されるコントロールをマネージャに登録することも含む。この方法は、登録されたコントロールへの情報をマネージャから提供することも含む。この方法は、マネージャを介してコントロールと動作環境の間の通信をやりやすくすることも含む。
【００１１】
一実施形態によれば、動作環境内のコントロールとのアクションを実行する方法が開示される。この方法は、アクションに関するコマンドを動作環境内のマネージャにおいて受け取ることを含む。マネージャはコントロールを調整する。この方法は、アクションの制御メソッド（control method）を識別することも含む。マネージャは制御メソッドを開始する。この方法は、制御メソッドと併せて実行する少なくとも１つのコントロールを識別することも含む。この方法は、少なくとも１つのコントロールにおいてマネージャからの情報を受け取ることも含む。この方法は、少なくとも１つのコントロールとともに情報を使用してアクションを実行することも含む。
【００１２】
上記概説および以下の詳細な説明は両方とも例示的かつ説明的なものであり、特許請求される本発明のさらなる説明の提供を意図することを理解されたい。
【００１３】
添付図面は、本発明のさらなる理解を提供するために包含され、本明細書に組み込まれ、本明細書の一部をなす。添付図面は、本発明の実施形態を示し、説明と併せて本発明の原理を説明する役割を果たす。
【００１４】
［好ましい実施形態の詳細な説明］
これより、本発明の好ましい実施形態を詳細に参照し、その例を添付図面に示す。
【００１５】
図１は、本発明の一実施形態による、コントロールマネージャ１０２、ならびにコントロール１０４、１０６、１０８、および１１０を有する動作環境１００を示す。動作環境１００は、プロセッサ、メモリ、およびソフトウェアコード等のプラットフォーム上で動作の命令を実行する手段を備えた任意のコンピューティングプラットフォームに存在し得る。コンピューティングプラットフォームは、デスクトップ、ポータブルコンピュータ、ラップトップ、個人情報端末（「ＰＤＡ」）等、任意のコンピュータを含むユニットまたは装置として知られている場合もある。コンピューティングプラットフォームは、コンピュータネットワークまたは他のデータ交換装置であってもよい。好ましくは、動作環境１００は、プログラムおよびアプリケーションを実行するハンドヘルドコンピュータ等、ポータブルコンピューティング装置に存在する。
【００１６】
可搬式コンピューティング装置は、送信器または他の情報記憶資源と対話して、装置上のプログラムおよびアプリケーションにとって関心のある情報を受け取ることができる。動作環境１００は、コンピューティング装置上で実行されているコントロール、プログラム、およびアプリケーションの更新およびデータ送出を調整することができる。
【００１７】
コントロール１０４、１０６、１０８、および１１０は、動作環境１００内のプログラムおよびアプリケーションを強化するのに用いられる、タイプの異なるコントロールであることができる。たとえば、コントロール１１０が地図を装置上に表示する機能を提供する場合、そのコントロール１０は地図コントロールであることができる。さらに、コントロール１０４はコンパスコントロール等であることができる。コントロール１０４はモードコントロールまたはデータコントロールであってもよい。コントロール１０４は、情報コントロール、データトラックコントロール、またはツリーコントロールであってもよい。コントロール１０４、１０６、１０８、および１１０は、動作環境１００内のソフトウェアプログラムによりアクセスされるメモリ内に格納されているデータを操作するユーザインタフェースとしての役割を果たすこともできる。たとえば、地図コントロール１１０はユーザと対話して、ハンドヘルド装置に格納されている地図を操作することができる。コントロール１０４、１０６、１０８、および１１０の弁別的な面は、それぞれの構造ではなくそれぞれの機能であるべきである。コントロール１０４、１０６、１０８、および１１０は、動作環境１００内で動作している構成要素に機能を提供する。したがって、コントロール１０４、１０６、１０８、および１１０は、動作環境１００または動作環境１００で実行されているプログラムに提供されるそれぞれの機能に限定されない。さらに、コントロール数はコントロール１０４、１０６、１０８、および１１０に限定されない。動作環境１００は、任意の数のコントロールを備えることが可能であり、コントロール１０４、１０６、１０８、および１１０に限定されない。
【００１８】
動作環境１００は、ソフトウェアコントロールマネージャ１０２も備える。マネージャ１０２は、動作環境１００内のコントロール１０４、１０６、１０８、および１１０を認識して調整する。コントロール１０４、１０６、１０８、および１１０は、動作環境１００からマネージャ１０２を通して情報を受け取る。この情報は、動作環境１００をホストしている装置上で受け取っても、または動作環境１００内で実行されているプログラムおよびアプリケーションから受け取ってもよい。マネージャ１０２は、コントロール１０４、１０６、１０８、および１１０、またはマネージャ１０２によって認識された任意の他のコントロールの間での通信をやりやすくする。マネージャ１０２は、動作環境１００内で自動的に起動することが可能であるという点で自己実行可能であることができる。マネージャ１０２は、起動にコマンドを必要としなくてもよい。
【００１９】
マネージャ１０２は、動作環境１００に導入されるコントロール、または動作環境１００内で実行されているプログラムおよびアプリケーションによってイネーブル（enable）されたコントロールも認識する。たとえば、コントロール１０８は、動作環境１００内で使用する指示（designation）または名称に関してマネージャ１０２にコンタクトをとることができる。コントロール１０８は、コントロールの全体のタイプを指定するストリングを含むことができる。マネージャ１０２は、コントロール１０８がその他のコントロールと情報を交換することができるように、コントロール１０８に対するコントロールのリストおよびそれぞれの指示を送ることができる。したがって、動作環境１００内で、コントロールは互いを認識し、通信することが可能である。
【００２０】
たとえば、地図コントロール１１０が動作環境１００内に存在する。コントロール１０８はコンパスコントロールであることができる。地図コントロール１１０はコンパスコントロール１０８を必要としなくてもよいが、コンパスコントロール１０８は、動作環境１００内のプログラムおよびアプリケーションのいずれから使用されるにも地図コントロール１１０が必要であり得る。ユーザがコンパスコントロール１０８により提供されるインタフェース上の「Ｎｏｒｔｈ（北）」を押下する場合、コンパスコントロール１０８は北を操作するために地図グラフィックを要求する。そして、コントロール１０６は動作環境１００内に配置されたマクロコントロールであることができる。コントロール１０６は、地図コントロール１１０に直接関係するものではないかもしれないが、地図コントロール１１０はマネージャ１０２によりコントロール１０６を認識するようにされている。マネージャ１０２は、コントロール１１０、１０８、および１０６についての初期情報を受け取り、コントロールが互いに情報を交換できることを確保することにより、上に開示した関係を助ける。さらに、マネージャ１０２は、コンパスコントロール１０８が地図コントロール１１０に依存することを確認する。動作環境１００内にコントロール１０４、１０６、１０８、および１１０を配置する順序は、マネージャ１０２がコントロール自体と動作環境１００の間のアクセスおよび調整を制御するため、重要な要因ではない。したがって、コントロール１０４、１０６、１０８、および１１０は、動作環境１００内に動的かつ自動的に、また存在しているプログラムおよびアプリケーションによる使用のために「アクティブ」になる必要なく、組み込むことができる。
【００２１】
コントロール１０４、１０６、１０８、および１１０は、マネージャ１０２に情報を提供する特定の属性を有することができる。属性はシステム設計に従って作成することができ、コントロールそれ自体内に示される。１つの属性はコントロールタイプであることができる。コントロールタイプは、コントロールの全体的なタイプを表す、「地図」または「コンパス」等のデータストリングであることができる。この属性により、マネージャ１０２は、動作環境１００内のその他のコントロールからコントロールを識別することができる。別の属性はサポートメンバであることができる。サポートメンバは、上に述べたコンパスコントロール１０８等、識別されたコントロールが使用する必要があり得るその他のコントロールを列挙したストリングであってもよい。マネージャ１０２はまた、さらに詳細に以下開示する様々な属性を含むことができる。
【００２２】
マネージャ１０２は、動作環境１００内に配置されたコントロールに対してセキュリティまたは確認プロセスも実施してもよい。マネージャ１０２は、動作環境１００内で新しいコントロールを識別して登録するときに、「ハンドシェイク」としても知られるセキュリティプロセスを呼び出してもよい。マネージャ１０２は、動作環境１００内に存在するための認可およびデータ構造を有するコントロールを登録する。新しいコントロールが認可を有していない、または互換性がない場合、マネージャ１０２はコントロールをディセーブルし、そのコントロールを非アクティブ状態にするか、またはそのコントロールを動作環境１００から削除してもよい。
【００２３】
セキュリティプロセスは、動作環境１００内に追加されたコントロールからマネージャ１０２に最初に送られる鍵に添付されている乱数（randomly generated number）を使用することを含み得る。最初の鍵にストリングを付加して、追加されたコントロールにマネージャ１０２から返送することができる。鍵が、マネージャ１０２が望む正確なシーケンスではない場合、マネージャ１０２はそれでも、追加されたコントロールの使用を許すが、「登録されていない」コントロールが動作環境１００内にあることをユーザまたは装置に通知するメッセージボックスを表示することが可能である。鍵が、ある許容可能な誤差範囲内にない場合、マネージャ１０２は、追加されたコントロールが他のコントロールまたは動作環境１００に応答しないように、害がなくなるよう追加されたコントロールに通知することができる。ユーザ、装置、または動作環境１００には、偽物、すなわち認識されていないコントロールが動作環境１００内にあることをプロンプト表示することができる。
【００２４】
マネージャ１０２は、追加されたコントロールを受け入れる場合、追加されたコントロールのデータ構造から情報を検索して、動作環境１００内の他のコントロール、プログラム、およびアプリケーションとの通信に役立てる。たとえば、コントロール１０４は動作環境１００内で受け身的なままであることができる。コントロール１０６がコントロール１０４の機能を望む場合、コントロール１０６はマネージャ１０２からコントロール１０４の指示を受け取ることができる。コントロール１０６は指示をそれぞれのデータ構造に格納してもよく、またはコントロール１０４についてマネージャ１０２に問い合わせてもよい。しかし、コントロール１０４は「起動」されない。すなわち、コンピューティングプラットフォームのディスプレイまたは他の構成要素を占有しないという点でアクティブにされない。
【００２５】
図２は、本発明の一実施形態によるソフトウェア制御マネージャ２００のデータ構造のブロック図を示す。マネージャ２００は、動作環境１００等の動作環境内に配置され、その環境において実行されるソフトウェアコードのブロックであることができる。マネージャ２００は、コードストリングおよびメモリロケーションポインタを含むことができる。具体的には、マネージャ２００は、通常のコントロールとは異なる属性を有するコントロールである。マネージャ２００は、電子的再利用可能情報技術環境（e-Reusable Information Technology Environment）（「ｅＲＩＴＥ」）コントロールマネージャとして知られてもいる。マネージャ２００は、コンピューティングプラットフォームのメモリ内に格納することができる。代替として、マネージャ２００は、コンピューティングプラットフォームのメモリ中にダウンロードされることにより、動作環境に「投下されて」（drop into）もよい。動作環境に投下される場合、マネージャ２００は動作環境と互換性を有するべきである。
【００２６】
マネージャ２００は、その構造に具現される様々な属性を含むことができるが、これに限定されない。マネージャ２００は、マネージャ２００の全体的なタイプを表すｅＲＩＴＥタイプストリング２０２を含む。タイプストリング２０２は、マネージャ２００を動作環境および他のコントロールに対するマネージャコントロールとして識別する。タイプストリング２０２は、入力機能および出力機能を有し得る。
【００２７】
マネージャ２００は、動作環境内のその他のコントロールを列挙した、カンマで区切られたストリングであるコントロールリスト２０４も含む。代替として、コントロールリスト２０４は特定のプロジェクト内で使用するコントロールを列挙してもよい。マネージャ２００はコントロールリスト２０４中のコントロールを認識し、それらコントロールに対して調整、通信、およびデータ交換を行う。コントロールリスト２０４は、マネージャ２００がコントロールを受け入れるセキュリティプロセスの一部であることができる。コントロールリスト２０４は入れ替えたり修正したりすることが難しいものであることができる。たとえば、コントロールリスト２０４の修正には、埋め込まれたパスワードを使用して一時的にファイルを作成することを含む一連の骨の折れるステップが関わり得る。パスワードは、属性、またはコントロールリスト２０４への呼び出しに使用される。コントロールリスト２０４は一度のみ修正可能である。コントロールリスト２０４を閲覧する、またはさらに修正する試みが行われた場合、マネージャ２００は一時ファイルを削除し、その後、エラーメッセージを表示することができる。さらに変更するには、上に開示した修正プロセスを繰り返す必要があり得る。
【００２８】
ｔｗｉｐ幅２０６は、ｔｗｉｐ単位でのマネージャ２００の幅を示す。ｔｗｉｐ高さ２０８は、ｔｗｉｐ単位でのマネージャ２００の高さを示す。ｔｗｉｐ係数２１０は、ピクセルへの変換値を与える値を示す。マネージャ２００を表示する場合、ピクセルが望ましい場合がある。Ｖｉｓｕａｌ  Ｂａｓｉｃ等のｔｗｉｐに基づく形では、ｔｗｉｐ係数２１０は１５であり得るが、ピクセルに基づく形では、ｔｗｉｐ係数２１０は１であり得る。ｔｗｉｐ幅２０６、ｔｗｉｐ高さ２０８、およびｔｗｉｐ係数２１０は出力機能を有し得る。背景色２１２はマネージャ２００の背景の色値を示す。好ましくは、背景色２１２の値はＲＧＢ値で与えられる。背景スタイル２１４は、マネージャ２００の背景の透明性についての値を返す、またはセットする。たとえば、背景スタイル２１４が値０を有する場合、マネージャ２００は透明であり得る。背景スタイル２１４が値１を有する場合、マネージャ２００は不透明であり得る。背景色２１２および背景スタイル２１４は入力／出力機能を有し得る。
【００２９】
情報フィールド２１６は、動作環境内のポップアップメッセージボックスに表示するデータフィールドの名称を返す、またはセットするストリングであることができる。さらに、情報フィールド２１６を使用して、動作環境内の情報に関する、コントロール内のデータフィールドの名称を返す、またはセットすることができる。ストレージディレクトリ２１８は、マネージャ２００のストレージディレクトリの名称を返す、またはセットすることができる。好ましくは、ストレージディレクトリはコンピューティングプラットフォームの「Ｃ」ドライブに配置される。ストレージディレクトリ２１８は、マネージャ２００が特定のプロジェクトについての情報を検索するストレージディレクトリロケーションを認識するように、マネージャ２００が作成されるとすぐにセットされるフィールドである。トラックアレイ２２０は、動作環境内にアクティブトラックを構築するにあたり、データを追跡するコントロールが使用するテンプレートコントロールのアレイである。トラックアレイ２２０はコントロールアレイとして知られている場合もあり、出力機能を有し得る。
【００３０】
マネージャ２００は、ここに述べた属性に加えて他の属性も含み得る。属性は、動作環境内のコントロールの調整を容易にすることができる。さらに、マネージャ２００は、コントロールそれ自体から異なる属性も組み込むことができる。たとえば、マネージャ２００は様々なコントロールへのポインタアレイを含むことができる。
【００３１】
再び図１を参照すると、コントロール１０４、１０６、１０８、および１１０は、マネージャ１０２を指すポインタをアレイ内に有することができる。これらポインタはコントロール１０４、１０６、１０８、および１１０のデータ構造内にあることができる。さらに、動作環境１００内のコントロールは、コントロールリスト２０４等、マネージャ１０２のコントロールリストに列挙されるべきである。
【００３２】
図３は、本発明の一実施形態による、動作環境内で実行されているソフトウェアコントロールマネージャ３００のブロック図を示す。マネージャ３００は、動作環境を介して、特定の制御メソッドまたはアクションを実行するコマンドをユーザから受け取ることができる。制御メソッドまたはアクションを実行するにあたり、マネージャ３００はデータ構造内のストリングおよびフィールドを使用して、動作環境内の他の構成要素またはコントロールにアクセスすることができる。より具体的には、マネージャ３００は、以下述べるメソッドまたはアクションを開始するコマンドを受け取ることができる。そしてマネージャ３００は、他のコントロールを照会またはアクセスして、メソッドまたはアクションを完了することができる。リフレッシュ（ｒｅｆｒｅｓｈ）３０２は、マネージャ３００上のいずれの図表示もリペイントさせるリフレッシュメソッドを表す。リフレッシュメソッドは、ディスプレイが、移動しているターゲットまたはアイコンを示すなど現在のものに更新されるときに使用されるべきである。再初期化（ｒｅｉｎｉｔｉａｌｉｚｅ）３０４は、マネージャ３００自身を「スタートアップ」状態にリセットさせる再初期化メソッドを表す。スタートアップ状態は、マネージャ３００がデータ構造内に値を持たない、またはメモリから検索された事前設定値を有する状態であることができる。たとえば、すべてのカウンタをリセットすることができ、グラフィックスおよび属性がそれぞれの元の状態に戻る。代替として、スタートアップ状態は、共通デフォルトであるマネージャ３００の任意の状態を示すこともできる。再初期化メソッドは、マネージャ３００のユーザが変わる場合に使用することができる。
【００３３】
除去（Ｒｅｍｏｖｅ）３０６は、マネージャ３００において受け取った引数をコントロールへのポインタとして受け入れる除去メソッドを表す。マネージャ３００は、コントロールリスト２０４等のコントロールリストからコントロールを除去する。コントロールリストは、マネージャ３００により認識されたコントロールからなる。除去３０６は、動作環境からコントロールを除去する場合に使用することができる。除去３０６は、他のコントロールが「接続されている」コントロールを、そのコントロールが存在しなくなる場合に探索しないようにする。以下の特徴は、「アクティブトラック」、すなわち動作環境内の選択されたコントロールに関することができる。アクティブトラック情報クリア（ａｃｔｉｖｅ  ｔｒａｃｋ  ｉｎｆｏｒｍａｔｉｏｎ  ｃｌｅａｒ）３０８は、情報コントロール上のテキストボックスをすべてクリアするメソッドを表す。アクティブトラック情報表示（ａｃｔｉｖｅ  ｔｒａｃｋ  ｉｎｆｏｒｍａｔｉｏｎ  ｄｉｓｐｌａｙ）３１０は、引数として渡されたインデックスを有するトラックについての情報をとり、トラックを情報コントロール上の対応するテキストボックスに配置するメソッドを表す。
【００３４】
アクティブトラックマウスアップ（ａｃｔｉｖｅ  ｔｒａｃｋ  ｍｏｕｓｅ  ｕｐｐｅｄ）３１２は、表示されている情報ポップアップメッセージボックスを閉じるメソッドを表す。アクティブトラックマウスアップ３１２は、カーソルがアクティブトラックアイコン上にある間にマウスボタンが解放された結果であることができる。アクティブトラックマウスダウン（ａｃｔｉｖｅ  ｔｒａｃｋ  ｍｏｕｓｅ  ｄｏｗｎｅｄ）３１４は、メッセージボックスまたはオブジェクトピクチャを表示するメソッドを表す。アクティブトラックマウスダウン３１４は、カーソルがアクティブトラックアイコン上にある間にマウスボタンが押下されている結果であり得る。たとえば、マウスの右側のボタンが押下されている場合、すべてのトラック情報を列挙したメッセージボックスを表示することができる。メッセージボックスが表示されている間にマウスの左側のボタンが押下される場合、オブジェクトに関連するピクチャを表示することができる。
【００３５】
アクティブトラックダブルクリック（ａｃｔｉｖｅ  ｔｒａｃｋ  ｄｏｕｂｌｅ  ｃｌｉｃｋｅｄ）３１６は、地図表示上でアクティブトラックをセンタリングし、アクティブトラックをハイライトするメソッドを表す。さらに、トラック情報がいずれも情報コントロールに配置される。アクティブトラッククリック（ａｃｔｉｖｅ  ｔｒａｃｋ  ｃｌｉｃｋｅｄ）３１８は、アクティブトラックをハイライトするメソッドを表す。トラック情報は情報コントロールに格納される。アクティブトラッククリック３１８は、アクティブトラックアイコン上でマウスをクリックすることから発生し得る。
【００３６】
ユーザ情報ボックス（ｕｓｅｒ  ｉｎｆｏｒｍａｔｉｏｎ  ｂｏｘ）３２０は、メッセージボックスを動作環境に表示するまたはメッセージボックスを動作環境から除去するメソッドを表す。たとえば、マネージャ３００が受け取った引数が空ストリングではない場合、引数をメッセージとしてメッセージボックスを表示することができる。受け取った引数が空ストリングである場合、メッセージボックスを除去することができる。シャットダウン（ｓｈｕｔｄｏｗｎ）３２２は、マネージャ３００および動作環境のセキュリティプロセスの特徴であるメソッドを表す。シャットダウン３２２が呼び出されると、このメソッドはプロジェクトまたは動作環境をディセーブルする。再開するには、プログラムまたはコンピューティングプラットフォームを再スタートする必要があり得る。シャットダウン３２２は、タイマおよびユーザ識別／パスワードダイアログと併せて使用されて、放置されているユニット、装置、またはコンピューティングプラットフォームが未許可の人物に使用されないようにすることができる。
【００３７】
パスワードストリング（ｐａｓｓｗａｒｄ  ｓｔｒｉｎｇ）３２４は、マネージャ３００および動作環境のセキュリティプロセスの別の特徴であるメソッドを表す。パスワードストリング３２４は、特別な一時ファイルを読み出し、そのファイルからパスワードを検索する。そして、このメソッドはファイルを削除する。パスワードストリング３２４が、特別なファイルを利用できない状態で呼び出される場合、このメソッドはエラーをマネージャ３００に対して生成する。再調査（ｒｅｐｌｕｍｂ）３２６は、マネージャ３００に、動作環境内、または代替としてプロジェクト内のコントロールを探索させ、マネージャ３００と互換性のあるコントロールをすべて識別させるメソッドを表す。好ましくは、これらのコントロールは上に述べたようなｅＲＩＴＥコントロールである。識別後、このメソッドはコントロール内のデータストリングに従ってコントロールをともに接続する。
【００３８】
入力ロック（ｌｏｃｋ  ｉｎｐｕｔ）３２８は、動作環境、または代替としてプロジェクトへのいずれのユーザ入力も一時的にディセーブルするメソッドを表す。入力ロック３２８は、データへの要求が生成された場合に呼び出すことができる。データの送受信期間中、プロジェクトまたは動作環境は、同じボタンを複数回クリックしないようにディセーブルされるべきである。入力ロック３２８は、マネージャ３００または動作環境が、ワイヤレス送信器等、リモートソースからのデータを待っている場合に有用であり得る。入力ロック解除（ｕｎｌｏｃｋ  ｉｎｐｕｔ）３３０は、入力をプロジェクトまたは動作環境内で受け取れるようにするメソッドを表す。入力ロック解除３３０は入力ロック３２８をオーバーライドすることができる。
【００３９】
モードセットアップ（Ｓｅｔｕｐ  ｍｏｄｅ）３３２は、ストレージディレクトリ中のテキストファイルを読み出し、動作環境内のモードコントロールをセットするメソッドを表す。好ましくは、モードセットアップ３３２は、モードコントロール上のボタンをセットすることができる。サブスクリプションセットアップ（ｓｅｔｕｐ  ｓｕｂｓｃｒｉｐｔｉｏｎ）３３４は、モード変更の際に、サブスクリプションコントロールが選択されたモードに確実に適するようにするために使用されるメソッドを表す。たとえば、戦場のシナリオの場合、敵性をもった、または友好的なフィルタをセットすることができ、または時限シナリオの場合はプログレスバーをセットすることができる。
【００４０】
マネージャ３００は、さらなるメソッドを実行するさらなるコマンドを受け取ることができる。さらに、マネージャ３００は、動作環境内のコントロールの調整、検証、および通信の機能に関連するいずれのメソッドも実行することが可能である。マネージャ３００は、上に開示したメソッドを完了するにあたり、他のコントロールおよびそれぞれの属性にアクセスすることができる。さらに、マネージャ３００は、開示したメソッドを完了するにあたり、動作環境内、またはコンピューティングプラットフォーム上の構成要素、プログラム、特徴、データ、プロトコル、アプリケーション等のいずれにもアクセスすることが可能である。
【００４１】
図４は、本発明の一実施形態によるソフトウェアコントロールマネージャを使用してアクションを実行するフローチャートを示す。アクションとしては、データ要求、受け取ったデータの処理、アプリケーションのためのデータ検索、メモリ内データへのアクセス、プログラムまたはアプリケーションの実行等を挙げることができる。たとえば、受け取るアクションは、ＰＤＡ上の、地図等のグラフィック上に受け取ったデータを重ねることであり得る。好ましくは、アクションは、ユーザまたはメモリのいずれか一方からのデータを受け取る、計算する、検索する、またはアクセスするコントロールを使用して実行される。そして、実行中のプログラムまたはアプリケーションがそのデータを利用することができる。
【００４２】
ステップ４０２が、動作環境内の少なくとも１つのコントロールに関するアクションを受け取ることにより実行される。アクションに対する要求は、図１中のマネージャ１０２等、コントロールのソフトウェアコントロールマネージャにおいて受け取ることができる。マネージャは、コントロールおよび動作環境と以下に開示するステップを調整することによりアクションに応答する。ステップ４０４が実行され、マネージャ内のコントロールリストを照会する。コントロールリストは、マネージャにより動作環境内に存在することを認可された、またはアクションをサポートする特定のプロジェクトにアクセスを有する、マネージャにより登録されたコントロールを含む。
【００４３】
ステップ４０６が、コントロールがマネージャのコントロールリスト内にあるか否かを判断することにより実行される。ない場合、ステップ４０８が、マネージャ、動作環境、またはディスプレイにエラーを生成することによって実行される。さらに、マネージャは、そのアクションの動作環境内での実行を拒絶することができる。そのアクションは実行すべきではない。
【００４４】
ステップ４１０が、アクションを実行する１つまたは複数のコントロールを識別することにより実行される。たとえば、アクションがコンピューティング装置に表示されている地図グラフィックの更新である場合、地図コントロール、コンパスコントロール等を、地図グラフィックの更新に望むものとして識別することができる。ステップ４１２が、ポップアップメッセージをアクションの解決に使用すべきか否かを判断することにより実行される。メッセージは、図３を参照して上に開示したコマンドおよびメソッドを使用して表示することができる。はいの場合、ステップ４１４が、マネージャと協力してメッセージを表示することにより実行される。
【００４５】
ステップ４１６が、アクションの完了に望まれる情報を検索することにより実行される。情報は、メモリに格納されているデータであっても、または別の装置もしくはロケーションから検索されるデータもしくはデータパケットであってもよい。さらに、情報は、コンピューティングプラットフォームのユーザにより入力され、プロンプト、ディスプレイ、または動作環境内のメッセージで導いてもよい。したがって、アクションを完了するための情報は、当業者に既知のいずれのプロセス、メソッド、またはアプリケーションに従って検索してもよい。ステップ４１８が、動作環境内のマネージャを使用して、コントロールとアクションを調整することにより実行される。コントロールは、互いに直接通信可能なデータ構造および構成を有し得るが、それでもマネージャを使用して、コントロールを認可し、コンピューティングメモリのメモリまたは他の構成要素にアクセスすることにより通信をやりやすくすることができる。ステップ４２０が、マネージャにより識別されたコントロールおよび検索された情報を使用してアクションを行うことにより実行される。ステップ４１２〜４１４、４１６、および４１８は、同時に実行しても、または所望のいずれの順序で実行してもよい。これらステップは互いに依存しなくてよい。代替として、ステップを開示した順序とは異なる順序で実行してもよい。
【００４６】
図５は、本発明の一実施形態によるソフトウェアコントロールマネージャを使用してコントロールを調整するフローチャートを示す。マネージャは、動作環境内に既存のコントロールまたは新しいコントロールに対するアクセスおよび認可を調整することができる。マネージャは、動作環境内でイネーブルされているすべてのコントロール、または新しいコントロールをダウンロードすること、もしくはリモートロケーションから新しいコントロールを受け取ることによって追加された新しいコントロールのいずれも認識すべきである。マネージャがコントロールを認識していない、またはコントロールを認可しない場合、コントロールの機能を動作環境内で制限または拒絶することができる。
【００４７】
ステップ５０２が、マネージャにより認識されていない、動作環境内のコントロールを識別することにより実行される。好ましくは、マネージャは、識別されたコントロールをコントロールリスト内に列挙しない。ステップ５０４が、識別されたコントロールが新しいものであるか否かを判断することにより実行される。識別されたコントロールは、リモート装置等、別のソースから追加されたばかりである、またはメモリ内に格納されていたという点で新しいものであることができる。代替として、識別されたコントロールは、指定期間中休止していたものであり得る。マネージャは、不活動によりコントロールとのいずれのアクションも停止した場合もある。ステップ５０４がいいえの場合、ステップ５０６が、識別されたコントロールがマネージャのコントロールリスト内に列挙されているか否かを判断することにより実行される。はいの場合、ステップ５１８が、マネージャおよび動作環境内の他のコントロールがそのコントロールを利用できるようにすることにより実行される。いいえの場合、ステップ５０８がそのコントロールを拒絶することにより実行される。コントロールは、動作環境内での機能を制限することにより拒絶してもよい。代替として、コントロールをシャットダウンしても、またはそのコントロールの、動作環境内の他のコントロールへのいずれのアクセスも拒絶してもよい。さらに、マネージャがコントロールを認識しない場合、そのコントロールを削除してもよい。
【００４８】
ステップ５０４がはいの場合、ステップ５１０が、マネージャを使用してセキュリティプロセスを行い、新しいコントロールを認可することにより実行される。セキュリティプロセスは以下のように実行することができる。マネージャが、ストリングを新しいコントロールに送ることができる。ストリングは、マネージャにより生成されたデータであり得る。コントロールはデータストリングを変更または追加し、そのデータストリングをマネージャに返送する。変更されたデータストリングがマネージャが探し求めているストリングに合致する場合、コントロールは動作環境に関して認可される。したがって、ステップ５１２が、新しいコントロールが認可されているか否かを判断することにより実行される。はいの場合、ステップ５１４が、新しいコントロールをマネージャのコントロールリストに登録することにより実行される。新しいコントロールは、コントロールリストに追加されることによって登録することができる。いいえの場合、ステップ５０８が、動作環境内での新しいコントロールの認可を拒絶することにより実行される。
【００４９】
ステップ５１６が、登録された新しいコントロールについての情報を使用して、既存のコントロールを更新することにより実行される。更新に関する情報はマネージャから受け取ることができる。このステップについては、図６を参照してさらに詳細に開示する。ステップ５１８が、そのコントロールをマネージャ、他のコントロール等が利用できるようにすることにより実行される。
【００５０】
図６は、本発明の一実施形態によるソフトウェアコントロールマネージャを使用して新しいコントロールを組み込むフローチャートを示す。図６は図５中のステップ５１６に対応することができるが、ステップ５１６は図６に開示する実施形態によって制限されない。さらに、図６はステップ５１６または図５に開示する実施形態によって制限されない。
【００５１】
図６を参照して実行されるステップは、マネージャが新しいコントロールをセキュリティプロセスにより検証して登録し、そのコントロールを動作環境およびその他のコントロールに導入する準備が整った後に行われるべきである。しかし、開示されるステップはしかるべきときにいつでも行うことができる。
【００５２】
ステップ６０２が、コントロールへの参照を提供することにより実行される。マネージャは、その他のコントロールが動作環境内のコントロールを識別する場合があるときに、そのコントロールにそれ自体をどのように参照するかを教える。コントロールは、それ自体内からでは位置を調整することができないが、他のコントロールは、そのコントロールを別様に見るため、そのコントロールを移動させることができる。参照により、コントロールは、自身を「別の」コントロールとして取り扱うことができる。マネージャは、他のコントロールがそのコントロールに対して実行可能なアクションと同じアクションを、そのコントロールが自身に対して行うことができるように、参照を提供する。
【００５３】
ステップ６０４が、マネージャへの参照をコントロールに提供することにより実行される。マネージャは、マネージャからデータを受け取るため、またマネージャにデータを送るために、マネージャをどのように参照するかをコントロールに教える。ステップ６０６が、コントロールから、コントロールがサポートしているその他のコントロールのマネージャに、ファイルまたはデータストリングとしてリストを提供することにより実行される。サポートされるコントロールとは、そのコントロールが通信し得るコントロールのことである。コントロールは、マネージャにより認識される、カンマで区切られたコントロール名ストリングであるサポートメンバのリストを有することができる。ストリングは、新しいコントロールと通信するコントロールを列挙する。たとえば、コンパスコントロールは地図コントロールを認識する必要があったり、またはツリーコントロールがデータコントロールを認識する必要があったりする。サポートされるコントロールのリストは、処理および格納のためにマネージャに与えられる。
【００５４】
ステップ６０８が、要求されたコントロールへの参照を提供することにより実行される。要求されたコントロールが存在する限り、要求されたコントロールへの参照はマネージャから新しいコントロールに提供される。要求されたコントロールは、上に開示したサポートされるコントロールのリストに相関付けることができる。各コントロールが追加されると、コントロールがマネージャのコントロールリストに追加される。コントロールのサポートメンバストリングが、コントロールリスト中のコントロール名を含む場合、そのコントロールへの参照が、新しい、または要求しているコントロールに提供される。コントロールが、コントロールリスト中に存在しないエントリをサポートメンバストリングに含む場合、新しいコントロールは存在しないコントロールの呼び出しまたは使用をいずれも無視することができる。たとえば、地図コントロールは、サポートメンバとしてマクロコントロールを使用したい場合がある。地図コントロールが追加され、マクロコントロールが存在しない場合、地図コントロール内からのマクロコントロールの使用はいずれも無視することができる。ステップ６１０が、新しいコントロールおよびマネージャを使用してアクションを行うことにより実行される。
【００５５】
本発明の精神または範囲から逸脱することなく、様々な変更を本発明において行い得ることが当業者には明らかであろう。したがって、添付の特許請求の範囲およびそれらの等価物の範囲内にある場合、開示した実施形態が本発明の変更および変形を保護範囲に含むことを意図する。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施形態によるソフトウェアコントロールマネージャおよびソフトウェアコントロールを有する動作環境を示す。
【図２】本発明の一実施形態によるソフトウェアコントロールマネージャのデータ構造のブロック図を示す。
【図３】本発明の一実施形態による動作環境内で実行されているソフトウェアコントロールマネージャのブロック図を示す。
【図４】本発明の一実施形態によるソフトウェアコントロールのソフトウェアコントロールマネージャを使用してアクションを実行するフローチャートを示す。
【図５】本発明の一実施形態によるソフトウェアコントロールマネージャを使用してコントロールを調整するフローチャートを示す。
【図６】本発明の一実施形態によるソフトウェアコントロールマネージャに新しいコントロールを組み込むフローチャートを示す。
【図１】
2005515562.tif 000003
【図２】
2005515562.tif 000004
【図３】
2005515562.tif 000005
【図４】
2005515562.tif 000006
【図５】
2005515562.tif 000007
【図６】
2005515562.tif 000008
【国際調査報告】
2005515562.tif 000009