(57)【要約】  セキュアな動作環境内のソフトウェアコントロールを登録するシステムおよび方法が開示される。ソフトウェアコントロールは、コントロールマネージャにより調整されて動作環境内に存在する。マネージャは、新しいコントロールの登録および認可をやりやすくする。マネージャは、新しいコントロールが動作環境内に配置されたことを検出する。マネージャはコントロールのタイプを読み取る。マネージャはコントロールとの符号化／復号化シーケンスを開始する。マネージャとコントロールの間でキーストリングが交換され、変更される。好ましくは、マネージャにより乱数が生成され、キーストリングに付加される。マネージャは、コントロールから符号化／復号化シーケンスの結果を読み取る。結果が許容可能なものである場合、マネージャはコントロールをコントロールリストに追加し、動作環境内のすべてのコントロールを調査する。結果が許容可能なものではない場合、マネージャはそのコントロールを無視するか、またはシャットダウンする。
2005515533.tif 000002
【特許請求の範囲】
【請求項１】
動作環境内のソフトウェアコントロールを登録するシステムであって、
前記動作環境内に配置された新しいコントロールと、
前記新しいコントロールを識別するソフトウェアコントロールマネージャと、
前記新しいコントロールのタイプを決定する符号化／復号化シーケンスと
を備え、
前記マネージャは前記タイプに従って前記新しいコントロールを認可する、動作環境内のソフトウェアコントロールを登録するシステム。
【請求項２】
前記マネージャを使用して登録された古いコントロールをさらに備え、前記マネージャは前記古いコントロールに前記新しいコントロールについて通知する、請求項１記載の動作環境内のソフトウェアコントロールを登録するシステム。
【請求項３】
前記マネージャは前記新しいコントロールをコントロールリストに追加する請求項１記載の動作環境内のソフトウェアコントロールを登録するシステム。
【請求項４】
前記新しいコントロールは前記マネージャに送るキーストリングを含む請求項１記載の動作環境内のソフトウェアコントロールを登録するシステム。
【請求項５】
前記新しいコントロールは前記新しいコントロールを識別するタイプストリングを含む、請求項１記載の動作環境内のソフトウェアコントロールを登録するシステム。
【請求項６】
前記動作環境はコンピューティングプラットフォームに存在する請求項１記載の動作環境内のソフトウェアコントロールを登録するシステム。
【請求項７】
データを記憶するメモリに接続された動作環境内のコントロールを登録する方法であって、
マネージャから前記動作環境内の前記コントロールに符号化／復号化シーケンスを開始することと、
前記コントロールから前記シーケンスの結果を読み取ることと、
前記結果に従って、前記コントロールを前記動作環境内において動作できるようにすることと
を含む動作環境内のコントロールを登録する方法。
【請求項８】
前記コントロールを前記マネージャ内のコントロールリストに追加することをさらに含む請求項７記載の動作環境内のコントロールを登録する方法。
【請求項９】
前記マネージャに前記コントロールについて通知することをさらに含む請求項７記載の動作環境内のコントロールを登録する方法。
【請求項１０】
前記通知することは、タイプストリングを前記コントロールから前記マネージャに送ることを含む請求項９記載の動作環境内のコントロールを登録する方法。
【請求項１１】
前記結果が許容可能範囲内にあるか否かを判断することをさらに含む請求項７記載の動作環境内のコントロールを登録する方法。
【請求項１２】
前記結果が前記範囲内である場合、前記マネージャから情報を受け取ることをさらに含む請求項１１記載の動作環境内のコントロールを登録する方法。
【請求項１３】
前記結果が前記範囲内にない場合、前記コントロールをシャットダウンすることをさらに含む請求項１１記載の動作環境内のコントロールを登録する方法。
【請求項１４】
前記結果が前記範囲内にない場合、警告を表示することをさらに含む請求項１１記載の動作環境内のコントロールを登録する方法。
【請求項１５】
前記動作環境内のコントロールを、前記コントロールを含めて調査することをさらに含む請求項７記載の動作環境内のコントロールを登録する方法。
【請求項１６】
コントロールマネージャによりコントロールを許容する方法であって、
前記マネージャにおいて、前記コントロールからキーストリングを受け取ることと、
前記マネージャに従って前記キーストリングを変更することと、
前記コントロールにおいて、前記変更されたキーストリングを受け取ることと、
前記コントロールから前記変更されたキーストリングを読み取ることと
を含むコントロールマネージャによりコントロールを許容する方法。
【請求項１７】
前記変更することは、数を使用して前記キーストリングを変更することを含む請求項１６記載のコントロールマネージャによりコントロールを許容する方法。
【請求項１８】
前記数は乱数である、請求項１７記載のコントロールマネージャによりコントロールを許容する方法。
【請求項１９】
前記乱数を生成することをさらに含む請求項１８記載のコントロールマネージャによりコントロールを許容する方法。
【請求項２０】
前記読み取りに進み、それによって結果を生成する前に、前記コントロールにおいて、前記変更されたキーストリングを変更することをさらに含む請求項１６記載のコントロールマネージャによりコントロールを許容する方法。
【請求項２１】
前記結果が許容可能範囲内にあるか否かを判断することをさらに含む請求項２０記載のコントロールマネージャによりコントロールを許容する方法。
【請求項２２】
前記結果が前記範囲内にある場合、前記コントロールを登録することをさらに含む請求項２１記載のコントロールマネージャによりコントロールを許容する方法。
【請求項２３】
動作環境内のコントロールを登録する方法であって、
前記動作環境内のマネージャにおいて、前記コントロールを検出することと、
前記マネージャにおいて、前記コントロールからのキーストリングを変更することと、
前記変更されたキーストリングが許容可能である場合、前記マネージャ内のコントロールリストに前記コントロールを追加することと、
前記マネージャにより前記動作環境内の他のコントロールを調査することと
を含む動作環境内のコントロールを登録する方法。
【請求項２４】
前記変更することは、符号化／復号化シーケンスを実行することを含む請求項２３記載の動作環境内のコントロールを登録する方法。
【請求項２５】
前記変更されたキーストリングが許容可能ではない場合、コントロールを無視することをさらに含む請求項２３記載の動作環境内のコントロールを登録する方法。
【請求項２６】
変更することは、乱数を使用して前記キーストリングを変更することを含む請求項２３記載の動作環境内のコントロールを登録する方法。
【請求項２７】
前記コントロールにおいて、前記変更されたキーストリングを変更することをさらに含む請求項２３記載の動作環境内のコントロールを登録する方法。
【請求項２８】
前記コントロールから前記キーストリングを読み取ることをさらに含む請求項２７記載の動作環境内のコントロールを登録する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の背景］
［発明の分野］
本発明は電子対話式通信システムに関し、特に、本発明は、セキュアな動作環境内のマネージャを使用してソフトウェアコントロールを登録し調整するシステムおよび方法に関する。
【０００２】
［関連出願の相互参照］
本願は、「Electronic Interactive Communication System and the Method Therefor」という名称の２００１年１２月２１日出願の米国仮特許出願第６０／３４１，８６２号、および「Method and System For Registering A Control Within An Operating Environment Using A Control Manager」という名称の２００２年１２月１８日出願の米国非仮特許出願の利益を主張するものであり、これらを両方とも参照により本明細書に援用する。
【０００３】
［関連分野の考察］
近年、コンピューティングプラットフォームの数は著しく増大した。手のひらサイズのコンピューティング装置および／または可搬式コンピューティング装置が一般になった。さらに、特定のオペレーティングシステムをそれぞれ有する、バージョンの異なる特定のプラットフォームの数も同様に増大した。コンピューティングプラットフォーム上で実行する様々なソフトウェアプログラムも作成された。従来のコンピューティング装置は、情報およびプログラムコードをメモリに予め格納し、そのプログラムを実行できるようにする情報を別の装置から受け取ることができる。複数のコンピューティングプラットフォームおよびオペレーティングシステムを使用する場合、プログラムおよび情報は、多くの動作環境で実行する能力を使用して理解する必要がある。
【０００４】
ソフトウェアコントロールは、異なるプラットフォーム上で動作している異なるプログラムを使用可能に、または起動することができる。ソフトウェアコントロールは、既存のプログラムの機能を高めるプログラムモジュールであることができる。コントロールは、ユーザがコンピューティングプラットフォームのメモリに格納されている情報を処理できるようにするユーザインタフェース機能としての役割を果たすことができる。コントロールは、統合され、プログラムの通常部分として見える既存の構成要素を呼び出すことにより機能を追加することが可能である。しかしながら、一般に、これらコントロールは起動されるまで休止しており、受動的にコンピューティング環境内に存在していない場合がある。この欠点により、コントロールの有効性が低減し、ソフトウェア環境内で、また他のプログラムおよびコントロールと対話するコントロールの能力が制限されるおそれがある。さらに、従来のコントロールは、他のコントロールの属性およびメソッドを、そのコントロールをアクティブにさせずにアクセスすることができないものがある。
【０００５】
コントロールは、上に述べたように、可搬式装置であるコンピューティングプラットフォーム上にあることが望ましい場合がある。コントロールは、可搬式装置の機能を強化し、装置に格納されているプログラムを越えてさらなる情報をユーザに提供する。しかし、コンピューティングプラットフォームがセキュアまたはプロプライエタリ（proprietary）情報、プログラム、アプリケーション、またはコントロールを備える場合に問題が生じ得る。さらに、セキュアな動作環境には、アプリケーションまたはプログラムの動作を危険に曝すおそれのあるコントロールを受け入れたくない。セキュアな動作環境にダウンロードしたまたは「立ち寄った」（dropped in）コントロールが、他のコントロール、動作環境、アプリケーション等にダメージを与えるおそれがある。
【０００６】
［発明の概要］
したがって、開示される実施形態は、マネージャが動作環境内のソフトウェアコントロールを登録できるようにするシステムおよび方法を対象とする。
【０００７】
本発明のさらなる特徴および利点は、以下の説明に示し、説明から明らかになる部分もあれば、本発明の実施により学ぶことができるものもある。本発明の目的および他の利点は、本明細書の書面での説明および特許請求の範囲、ならびに添付図面において特に指摘される構造によって認識され達成されるであろう。
【０００８】
これらおよび他の利点を達成するため、また開示される実施形態に従って、実施され広く説明された本発明の目的によれば、動作環境内のソフトウェアコントロールを登録するシステムが開示される。このシステムは、動作環境内およびに配置された新しいコントロールを備える。システムは、新しいコントロールを識別するソフトウェアコントロールマネージャも備える。システムは、新しいコントロールのタイプを決定する符号化／復号化シーケンスも備える。マネージャは、タイプに従って新しいコントロールを認可する。
【０００９】
開示される実施形態によれば、メモリに接続された動作環境中のコントロールを登録する方法。メモリはデータを記憶する。この方法は、マネージャから動作環境内のコントロールに符号化／復号化シーケンスを開始することを含む。方法は、コントロールからシーケンスの結果を読み取ることも含む。方法は、結果に従って、コントロールを動作環境内において動作できるようにすることも含む。
【００１０】
開示される実施形態によれば、コントロールマネージャによりコントロールを許容する方法が開示される。この方法は、マネージャにおいて、コントロールからキーストリングを受け取ることを含む、方法は、マネージャに従ってキーストリングを変更することも含む。方法は、コントロールにおいて、変更されたキーストリングを受け取ることも含む。方法は、コントロールから変更されたキーストリングを読み取ることも含む。
【００１１】
開示される実施形態によれば、動作環境内のコントロールを登録する方法が開示される。この方法は、動作環境内のマネージャにおいて、コントロールを検出することを含む。方法は、マネージャにおいて、コントロールからのキーストリングを変更することも含む。方法は、変更されたキーストリングが許容可能である場合、マネージャ内のコントロールリストにコントロールを追加することも含む。方法は、マネージャにより動作環境内の他のコントロールを調査することも含む。
【００１２】
上記概説および以下の詳細な説明は両方とも例示的かつ説明的なものであり、特許請求される本発明のさらなる説明の提供を意図することを理解されたい。
【００１３】
添付図面は、本発明のさらなる理解を提供するために包含され、本明細書に組み込まれ、本明細書の一部をなす。添付図面は、本発明の実施形態を示し、説明と併せて本発明の原理を説明する役割を果たす。
【００１４】
［好ましい実施形態の詳細な説明］
これより、本発明の好ましい実施形態を詳細に参照し、その例を添付図面に示す。
【００１５】
図１は、本発明の一実施形態による、コントロールマネージャ１０２、ならびにコントロール１０４、１０６、１０８、および１１０を有する動作環境１００を示す。動作環境１００は、プロセッサ、メモリ、およびソフトウェアコード等のプラットフォーム上で動作の命令を実行する手段を備えた任意のコンピューティングプラットフォームに存在し得る。コンピューティングプラットフォームは、デスクトップ、ポータブルコンピュータ、ラップトップ、個人情報端末（「ＰＤＡ」）等、任意のコンピュータを含むユニットまたは装置として知られている場合もある。コンピューティングプラットフォームは、コンピュータネットワークまたは他のデータ交換装置であってもよい。好ましくは、動作環境１００は、プログラムおよびアプリケーションを実行するハンドヘルドコンピュータ等、ポータブルコンピューティング装置に存在する。
【００１６】
可搬式コンピューティング装置は、送信器または他の情報記憶資源と対話して、装置上のプログラムおよびアプリケーションにとって関心のある情報を受け取ることができる。動作環境１００は、コンピューティング装置上で実行されているコントロール、プログラム、およびアプリケーションの更新およびデータ送出を調整することができる。さらに、コンピューティング装置は、動作環境１００がアクセスし得るプロプライエタリ情報を備えることができる。
【００１７】
コントロール１０４、１０６、１０８、および１１０は、動作環境１００内のプログラムおよびアプリケーションを強化するのに用いられる、タイプの異なるコントロールであることができる。たとえば、コントロール１１０が地図を装置上に表示する機能を提供する場合、そのコントロール１１０は地図コントロールであることができる。さらに、コントロール１０４はコンパスコントロール等であることができる。コントロール１０４はモードコントロールまたはデータコントロールであってもよい。コントロール１０４、１０６、１０８、および１１０は、動作環境１００内のソフトウェアプログラムによりアクセスされるメモリ内に格納されているデータを処理するユーザインタフェースとしての役割を果たすこともできる。たとえば、地図コントロール１１０はユーザと対話して、ハンドヘルド装置に格納されている地図を操作することができる。コントロール１０４、１０６、１０８、および１１０の別個の態様は、それぞれの構造ではなく、それぞれの機能であるべきである。したがって、コントロール１０４、１０６、１０８、および１１０は、動作環境１００または動作環境１００で実行されているプログラムに提供されるそれぞれの機能に限定されない。さらに、コントロール数はコントロール１０４、１０６、１０８、および１１０に限定されない。動作環境１００は、任意の数のコントロールを備えることが可能であり、コントロール１０４、１０６、１０８、および１１０に限定されない。
【００１８】
動作環境１００は、ソフトウェアコントロールマネージャ１０２も備える。マネージャ１０２は、動作環境１００内のコントロール１０４、１０６、１０８、および１１０を認識して調整する。コントロール１０４、１０６、１０８、および１１０は、動作環境１００からマネージャ１０２を通して情報を受け取ってもよい。この情報は、動作環境１００をホストしている装置上で受け取っても、または動作環境１００内で実行されているプログラムおよびアプリケーションから受け取ってもよい。マネージャ１０２は、コントロール１０４、１０６、１０８、および１１０、またはマネージャ１０２によって認識された任意の他のコントロールの間での通信をやりやすくする。
【００１９】
マネージャ１０２は、動作環境１００に導入されるコントロール、または動作環境１００内で実行されているプログラムおよびアプリケーションによってイネーブルされたコントロールも認識し登録する。たとえば、コントロール１０８は、動作環境１００内で使用する指示または名称に関してマネージャ１０２にコンタクトをとることができる。コントロール１０８は、コントロールの全体のタイプを指定するストリングを含むことができる。マネージャ１０２は、コントロール１０８がその他のコントロールと情報を交換することができるように、コントロール１０８に対するコントロールのリストおよびそれぞれの指示を送ることができる。したがって、動作環境１００内で、コントロールは互いを認識し、通信することが可能である。
【００２０】
たとえば、地図コントロール１１０が動作環境１００内に存在する。コントロール１０８はコンパスコントロールであることができる。地図コントロール１１０はコンパスコントロール１０８を必要としないくてもよいが、コンパスコントロール１０８は、動作環境１００内のプログラムおよびアプリケーションのいずれを使用するにも地図コントロール１１０が必要であり得る。ユーザがコンパスコントロール１０８により提供されるインタフェース上の「Ｎｏｒｔｈ（北）」を押下する場合、コンパスコントロール１０８は北処理に地図グラフィックを要求する。そして、コントロール１０６は動作環境１００内に配置されたマクロコントロールであることができる。コントロール１０６は、地図コントロール１１０に直接関係するものではないかもしれないが、地図コントロール１１０はマネージャ１０２によりコントロール１０６を認識するようにされている。マネージャ１０２は、コントロール１１０、１０８、および１０６についての初期情報を受け取り、コントロールが互いに情報を交換できることを確保することにより、上に開示した関係を助ける。さらに、マネージャ１０２は、コンパスコントロール１０８が地図コントロール１１０に依存することを確認する。動作環境１００内にコントロール１０４、１０６、１０８、および１１０を配置する順序は、マネージャ１０２がコントロール自体と動作環境１００の間のアクセスおよび調整を制御するため、重要な要因ではない。したがって、コントロール１０４、１０６、１０８、および１１０は、動作環境１００内に動的かつ自動的に、また存在しているプログラムおよびアプリケーションによる使用のために「アクティブ」になる必要なく、組み込むことができる。
【００２１】
コントロール１０４、１０６、１０８、および１１０は、マネージャ１０２に情報を提供する特定の属性を有することができる。属性はシステム設計に従って作成することができ、コントロールそれ自体内に示される。１つの属性はコントロールタイプであることができる。コントロールタイプは、コントロールの全体的なタイプを表す、「地図」または「コンパス」等のデータストリングであることができる。この属性により、マネージャ１０２は、動作環境１００内のその他のコントロールからコントロールを識別することができる。別の属性はサポートメンバであることができる。サポートメンバは、上に述べたコンパスコントロール１０８等、識別されたコントロールが使用する必要があり得るその他のコントロールを列挙するストリングであってもよい。
【００２２】
マネージャ１０２は、動作環境１００内に配置されたコントロールに対してセキュリティまたは確認プロセスも実施する。マネージャ１０２は、動作環境１００内で新しいコントロールを識別して登録するときに、「ハンドシェイク」としても知られるセキュリティプロセスを呼び出してもよい。マネージャ１０２は、動作環境１００内に存在する認可およびデータ構造を有するコントロールを受け入れる。新しいコントロールが認可を有していない、または互換性がない場合、マネージャ１０２はコントロールをディセーブル（disable）し、そのコントロールを非アクティブ状態にするか、またはそのコントロールを動作環境１００から削除してもよい。
【００２３】
セキュリティプロセスは、動作環境１００内に追加されたコントロールからマネージャ１０２に最初に送られるキーストリングに添付されている乱数（randomly generated number）を使用することを含み得る。最初の鍵にストリングを付加して、追加されたコントロールにマネージャ１０２から返送することができる。変更されたキーストリングは、コントロールから読み出されてもよい。キーストリングが、マネージャ１０２が望む正確なシーケンスではない場合、マネージャ１０２はそれでも、追加されたコントロールの使用を許すが、「登録されていない」コントロールが動作環境１００内にあることをユーザまたは装置に通知するメッセージボックスを表示することが可能である。鍵が、ある許容可能な誤差範囲内にない場合、マネージャ１０２は、追加されたコントロールが他のコントロールまたは動作環境１００に応答しないように、追加されたコントロールに害がなくなるように知らせることができる。ユーザ、装置、または動作環境１００には、偽物、すなわち認識されていないコントロールが動作環境１００内にあることをプロンプト表示することができる。
【００２４】
マネージャ１０２は、追加されたコントロールを受け入れる場合、追加されたコントロールのデータ構造から情報を検索して、動作環境１００内の他のコントロール、プログラム、およびアプリケーションとの通信に役立てる。たとえば、コントロール１０４は動作環境１００内で受動的なままであることができる。コントロール１０６がコントロール１０４の機能を望む場合、コントロール１０６はマネージャ１０２からコントロール１０４の指示を受け取ることができる。コントロール１０６は指示をそれぞれのデータ構造に格納してもよく、またはコントロール１０４についてマネージャ１０２に問い合わせてもよい。しかし、コントロール１０４は「起動」されない。すなわち、コンピューティングプラットフォームのディスプレイまたは他の構成要素を占有しないという点でアクティブにされない。
【００２５】
マネージャ１０２またはその他のコントロールと互換性のないコントロールが動作環境１００内に配置される場合、問題が発生する可能性がある。たとえば、コントロール１０８が、電子再使用可能情報技術環境（e-Reusable Information Technology Environment）（「ｅＲＩＴＥ」）に適応できるコントロールではない場合がある。マネージャ１０２および動作環境１００が、いずれの機能、アプリケーション、およびプログラムの機能または保全性も危険に曝すことなくコントロール１０８を統合できるように、コントロール１０８が起動可能になる前に、その状態を決定しなければならない。
【００２６】
マネージャ１０２は、コントロール１０８に対して登録プロセスを実行して、動作環境１００内でのコントロール１０８の状態を決定することができる。コントロール１０８が登録プロセスに失敗する場合、マネージャ１０２は、コントロール１０８が登録されないことをその他のコントロールに通知することができる。通知により、動作環境１００の構成要素およびコントロールにアクセスしているユーザがコントロール１０８を適宜処理できるようになる。登録されないコントロール１０８は、コントロールへの非認可アクセス、セキュアデータへのアクセス、非登録状態によるエラーの発生、動作環境１００内の資源の使用等を含め、いくつかの問題を呈し得る。したがって、マネージャ１０２および動作環境１００は、コントロールを登録し認可することを望む。さらに、特定の非登録コントロールが特定の基準に合う場合、これらのコントロールを動作環境１００への制限付きアクセスを許可することができる。しかし、大半の非登録コントロールはシャットダウンされ、動作環境１００から除去されるであろう。
【００２７】
図２は、本発明の一実施形態によるソフトウェアコントロールマネージャを使用して新しいコントロールを登録するフローチャートを示す。コントロールが動作環境内に配置されると、ソフトウェアコントロールマネージャは、新しいコントロールに問い合わせ、そこから情報を受け取り、動作環境内のそれぞれの状態を決定することができる。マネージャは基準に合ったコントロールを登録する。非登録コントロールは、他のコントロールへのアクセスを取得しない、または動作環境内で機能しないようにすることができる。
【００２８】
ステップ２０２が、動作環境内の新しいコントロールを通知することによって実行される。新しいコントロールは、ソフトウェアコントロールマネージャに通知するように促すか、またはコントロールの起動に先立ってコントロールの状態を決定するように要求することができる。代替として、動作環境は、コントロールがロードされているときにマネージャに通知してもよい。新しいコントロールは、別のロケーションからコントロールをダウンロードすることにより、または動作環境に接続された、コントロールを記憶しているメモリにアクセスすることにより、動作環境内に配置することができる。
【００２９】
マネージャが新しいコントロールのタイプを読み取ることにより、ステップ２０４が実行される。たとえば、新しいコントロールがｅＲＩＴＥコントロールである場合、新しいコントロールはマネージャに、ｅＲＩＴＥタイプコントロールであることを通知することができる。マネージャまた、定期的間隔でコントロールの特定のタイプを探索することもできる。新しいコントロールのタイプが与えられた上で、新しいコントロールが適したコントロールであるか否かを判断することにより、ステップ２０６が実行される。適したコントロールではない場合、エラーをマネージャ、動作環境、ユーザ等に示すことにより、ステップ２０８が実行される。拒絶されたコントロールに対してさらなるアクションをとってもよい。
【００３０】
ステップ２０６がはいの場合、新しいコントロールとマネージャの間で符号化／復号化シーケンスを開始することにより、ステップ２１０が実行される。このプロセスについては以下さらに詳細に開示する。符号化／復号化シーケンスにより、新しいコントロールの状態を示す結果が新しいコントロールから生成される。符号化／復号化シーケンスは、マネージャと新しいコントロールの間での情報の交換を含むことができる。次に、マネージャが情報を読み取ることができる。この情報が正しいか否かを判断することにより、ステップ２１２が実行される。新しいコントロールから値を読み取り、この値をマネージャ内の値と比較することができる。値が整合する場合、新しいコントロールからの応答が「正しい」と判断することができる。値が整合しない場合、応答は「正しくない」と判断することができる。
【００３１】
ステップ２１２がいいえの場合、新しいコントロールからの応答が許容可能範囲内にあるか否かを判断することにより、ステップ２１４が実行される。応答の部分が正しい場合、新しいコントロールは、マネージャおよび動作環境への制限付きアクセスを受けることができる。たとえば、応答の定められた「第１の部分」が正しい場合、新しいコントロールは、能力を制限した状態で動作環境内に存在することができる。ステップ２１４がはいの場合、非登録コントロールが存在するという警告をユーザに表示することにより、ステップ２１６が実行される。マネージャは警告を表示することができる。さらに、マネージャは、動作環境および他の登録されているコントロールに通知することもできる。
【００３２】
ステップ２１４がいいえの場合、動作環境内の不当なコントロールについての警告を表示することにより、ステップ２１８が実行される。符号化／復号化シーケンスへの応答が許容可能範囲内にない場合、不当なコントロールは動作環境内でいずれのアクセスまたは機能も享受することができないという点で、新しいコントロールは不当である。マネージャは警告を表示することができる。新しいコントロールに対してシャットダウン属性を起動することにより、ステップ２２０が実行される。マネージャはシャットダウン属性を起動することができる。シャットダウン属性により、新しいコントロールをマネージャ内のいずれのコントロールリストからも除去することができる。新しいコントロールを無視することにより、ステップ２２２が実行される。マネージャはコントロールを無視する。
【００３３】
再びステップ２１２を参照すると、応答が正しい場合、マネージャを使用して新しいコントロールを登録することによりステップ２２４が実行される。新しいコントロールをマネージャ内のコントロールリストに追加することができる。動作環境内のコントロールを「調査」して、互換性のあるコントロールをマネージャに対して識別することにより、ステップ２２６が実行される。さらに、マネージャは、他のコントロール、マネージャ、およびそれ自体への参照等、情報を新しいコントロールに提供することができる。調査プロセスは、マネージャにより登録されたすべてのコントロールをともに繋げることができ、コントロールが追加されるときにリアルタイムで実行することができる。
【００３４】
図３は、本発明の一実施形態による符号化／復号化シーケンスを実行するフローチャートを示す。図３は図２のステップ２１０に相関することができるが、ステップ２１０は図３の開示により制限されない。ソフトウェアコントロールマネージャにおいて、新しいコントロールからのキーストリングを受け取ることにより、ステップ３０２が実行される。キーストリングは、新しいコントロールに特定のデータストリングであることができる。マネージャにおいて乱数を生成することにより、ステップ３０４が実行される。乱数を使用して、受け取ったキーストリングを変更することにより、ステップ３０６が実行される。たとえば、マネージャは乱数をキーストリングの末尾に付加することができる。
【００３５】
新しいコントロールにおいて、変更されたキーストリングを受け取ることにより、ステップ３０８が実行される。変更されたキーストリングは新しいコントロール内のフィールドに配置することができる。新しいコントロール内のフィールドから結果を読み取ることにより、ステップ３１０が実行される。マネージャは結果を読み取ることができる。新しいコントロールは、マネージャにより送られた乱数に応答する、コントロールそれ自体内のアルゴリズムに従って、受け取ったキーストリングを変更することができる。代替として、受け取ったキーストリングは、すでに値を有するコントロールのフィールドにストリングを配置することにより変更してもよい。マネージャは値を読み取り、その値が正しいか否かを判断する。値がマネージャにより予期されるパラメータ内にない場合、コントロールを許容可能としないことができる。たとえば、コントロールはｅＲＩＴＥコントロールではない場合がある。
【００３６】
本発明の精神および範囲から逸脱することなく、本発明に様々な変更を行い得ることが当業者に理解されるであろう。したがって、添付の特許請求の範囲およびそれらの等価物の範囲内にある場合、開示した実施形態が本発明の変更および変形を保護範囲に含むことを意図する。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施形態によるコントロールマネージャおよびコントロールを有する動作環境を示す。
【図２】本発明の一実施形態によるソフトウェアコントロールマネージャを使用して新しいコントロールを登録するフローチャートを示す。
【図３】本発明の一実施形態による符号化／復号化シーケンスを実行するフローチャートを示す。
【図１】
2005515533.tif 000003
【図２】
2005515533.tif 000004
【図３】
2005515533.tif 000005
【国際調査報告】
2005515533.tif 000006