(57)【要約】  例示的な方法は、ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションによって表示された、ユーザ固有情報を除外したコンテンツのサブセットを決定するステップを含む。この方法は、さらに、アプリケーションについてのオートフィル要求をリモートプロバイダに送信するステップを含む。また、方法は、ＵＩ上にアプリケーションによって表示されるテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値を受け付けるステップを含む。方法は、さらに、テキスト入力フィールドにユーザ入力値を検出するステップと、１つ以上の候補ユーザ値の各々に対するユーザ入力値の比較に基づいて１つ以上の候補ユーザ値の各々についての類似度メトリックを決定するステップとを含む。また、方法は、１つ以上の候補ユーザ値のうちの少なくとも１つの候補ユーザ値についての類似度メトリックを含んだ、フィールド分類要求に対する応答を、リモートプロバイダに送信するステップを含む。
2021517297.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションによって表示されるコンテンツのサブセットを決定するステップを含み、前記サブセットは、ユーザ固有情報を除外しており、前記方法は、さらに、
前記アプリケーションについてのオートフィル要求をリモートプロバイダに送信するステップを含み、前記オートフィル要求は、前記ＵＩ上に表示されるコンテンツの前記サブセットを含み、前記方法は、さらに、
前記オートフィル要求に応答して、前記ＵＩ上で前記アプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値を前記リモートプロバイダから受け付けるステップと、
前記テキスト入力フィールドにユーザ入力値を検出するステップと、
前記テキスト入力フィールドに前記ユーザ入力値を検出することに応答して、前記１つ以上の候補ユーザ値の各々に対する前記ユーザ入力値の比較に基づいて前記１つ以上の候補ユーザ値の各々についての類似度メトリックを決定するステップと、
前記フィールド分類要求に対する応答を前記リモートプロバイダに送信するステップとを含み、前記応答は、前記１つ以上の候補ユーザ値の少なくとも１つについての前記類似度メトリックを含む、方法。
【請求項２】
前記１つ以上の候補ユーザ値の各々についての前記類似度メトリックを決定するステップは、基盤となる比較モデルを適用するステップを含み、前記基盤となる比較モデルは、オートフィル要求間で更新可能である、請求項１に記載の方法。
【請求項３】
基盤となる比較モデルのリストを前記リモートプロバイダに送信するステップと、
前記基盤となる比較モデルのリストから選択された基盤となる比較モデルを前記リモートプロバイダから受け付けるステップとを含み、前記１つ以上の候補ユーザ値の各々についての前記類似度メトリックを決定するステップは、前記選択された基盤となる比較モデルを適用するステップを含む、請求項１または２に記載の方法。
【請求項４】
前記１つ以上の候補ユーザ値の各々についての前記類似度メトリックを決定するステップは、編集距離モデルを適用するステップを含む、先行する請求項のいずれか１項に記載の方法。
【請求項５】
前記１つ以上の候補ユーザ値は、複数の候補ユーザ値を含み、前記応答は、前記複数の候補ユーザ値のうち最も一致するユーザ値についての前記類似度メトリックを含む、先行する請求項のいずれか１項に記載の方法。
【請求項６】
前記１つ以上の候補ユーザ値は、複数の候補ユーザ値を含み、前記応答は、前記複数の候補ユーザ値の各々についての前記類似度メトリックを含む、請求項１〜４のいずれか１項に記載の方法。
【請求項７】
前記フィールド分類要求は、追加のテキスト入力フィールドをさらに示し、前記方法は、さらに、
前記追加のテキスト入力フィールドに追加のユーザ入力値を検出するステップと、
前記追加のテキスト入力フィールドに前記追加のユーザ入力値を検出することに応答して、前記１つ以上の候補ユーザ値の各々に対する前記追加のユーザ入力値の比較に基づいて前記１つ以上の候補ユーザ値の各々についての追加の類似度メトリックを決定するステップと、
前記リモートプロバイダに追加の応答を送信するステップとを含み、前記追加の応答は、前記１つ以上の候補ユーザ値の少なくとも１つについての追加の類似度メトリックを含む、先行する請求項のいずれか１項に記載の方法。
【請求項８】
前記フィールド分類要求は、追加のテキスト入力フィールドをさらに示し、前記方法は、さらに、
前記オートフィル要求に応答して、前記１つ以上の候補ユーザ値とは異なる１つ以上の追加の候補値を前記リモートプロバイダから受け付けるステップと、
前記追加のテキスト入力フィールドに追加のユーザ入力値を検出するステップと、
前記追加のテキスト入力フィールドに前記追加のユーザ入力値を検出することに応答して、前記１つ以上の追加の候補値の各々に対する前記追加のユーザ入力値の比較に基づいて前記１つ以上の追加の候補値の各々についての追加の類似度メトリックを決定するステップと、
前記リモートプロバイダに追加の応答を送信するステップとを含み、前記追加の応答は、前記１つ以上の追加の候補値のうち少なくとも１つについての追加の類似度メトリックを含む、請求項１〜６のいずれか１項に記載の方法。
【請求項９】
前記１つ以上の候補ユーザ値は、候補ユーザ値の総数を候補ユーザ値の所定最大数に限定するインターフェースを介して受け付けられる、先行する請求項のいずれか１項に記載の方法。
【請求項１０】
前記１つ以上の候補ユーザ値は、テキスト入力フィールドごとの候補ユーザ値の数を候補ユーザ値のフィールド当たりの所定最大数に限定するインターフェースを介して受け付けられる、請求項１〜８のいずれか１項に記載の方法。
【請求項１１】
前記１つ以上の候補ユーザ値は、前記１つ以上の候補ユーザ値の各々を所定最小文字数に限定するインターフェースを介して受け付けられる、請求項１〜８のいずれか１項に記載の方法。
【請求項１２】
前記１つ以上の候補ユーザ値は、前記候補ユーザ値が数字のみを含む場合に前記１つ以上の候補ユーザ値の各々を第１の所定最小文字数に限定し、前記候補ユーザ値が少なくとも１つの数値以外の文字を含む場合に第２の所定最小文字数に限定するインターフェースを介して受け付けられる、請求項１〜８のいずれか１項に記載の方法。
【請求項１３】
前記フィールド分類要求は、前記フィールド分類要求についてのユーザ入力フィールドの数をユーザ入力フィールドの所定最大数に限定するインターフェースを介して受け付けられる、先行する請求項のいずれか１項に記載の方法。
【請求項１４】
前記フィールド分類要求は、前記リモートプロバイダによる前記アプリケーションについてのフィールド分類要求の頻度を所定最大頻度に限定するインターフェースを介して受け付けられる、請求項１〜１２のいずれか１項に記載の方法。
【請求項１５】
前記フィールド分類要求は、前記リモートプロバイダによる前記アプリケーションについてのフィールド分類要求の総数をフィールド分類要求の所定最大数に限定するインターフェースを介して受け付けられる、請求項１〜１２のいずれか１項に記載の方法。
【請求項１６】
前記フィールド分類要求は、前記リモートプロバイダによる前記アプリケーションのテキスト入力フィールドごとのフィールド分類要求の数をフィールド分類要求のフィールド当たりの最大数に限定するインターフェースを介して受け付けられる、請求項１〜１２のいずれか１項に記載の方法。
【請求項１７】
前記オートフィル要求に応答して、前記アプリケーションによって表示される追加のテキスト入力フィールドのオートフィル値を前記リモートプロバイダから受け付けるステップと、
前記オートフィル値を受け付けることに応答して、前記オートフィル値を前記追加のテキスト入力フィールドに表示させるステップとをさらに含む、先行する請求項のいずれか１項に記載の方法。
【請求項１８】
所定のオペレーティングシステムリソース割り当てが超過したと判断するステップと、
前記所定のオペレーティングシステムリソース割り当てが超過したと判断することに応答して、さらなる候補ユーザ値またはフィールド分類要求を前記リモートプロバイダから受け付けることを拒否するステップとをさらに含む、先行する請求項のいずれか１項に記載の方法。
【請求項１９】
前記１つ以上の候補ユーザ値を含むキャッシュされたオブジェクトを一時的に格納するステップと、
前記キャッシュされたオブジェクトを使用して、前記リモートプロバイダから受け付ける前記アプリケーションについての１つ以上の後続のフィールド分類要求を満たすステップとをさらに含む、先行する請求項のいずれか１項に記載の方法。
【請求項２０】
ユーザデバイスであって、
ユーザインターフェース（ＵＩ）と、
オペレーティングシステムとを備え、前記オペレーティングシステムは、
前記ユーザデバイスの前記ＵＩ上にアプリケーションによって表示されるコンテンツのサブセットを決定するように構成され、前記サブセットは、ユーザ固有情報を除外しており、前記オペレーティングシステムは、さらに、
前記アプリケーションについてのオートフィル要求をリモートプロバイダに送信するように構成され、前記オートフィル要求は、前記ＵＩ上に表示されるコンテンツの前記サブセットを含み、前記オペレーティングシステムは、さらに、
前記オートフィル要求に応答して、前記ＵＩ上で前記アプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値を前記リモートプロバイダから受け付け、
前記テキスト入力フィールドにユーザ入力値を検出し、
前記テキスト入力フィールドに前記ユーザ入力値を検出することに応答して、前記１つ以上の候補ユーザ値の各々に対する前記ユーザ入力値の比較に基づいて前記１つ以上の候補ユーザ値の各々についての類似度メトリックを決定し、
前記フィールド分類要求に対する応答を前記リモートプロバイダに送信するように構成され、前記応答は、前記１つ以上の候補ユーザ値の少なくとも１つについての前記類似度メトリックを含む、ユーザデバイス。
【請求項２１】
１つ以上のプロセッサによって実行可能な命令を格納した非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、前記１つ以上のプロセッサに機能を実行させ、前記機能は、
ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションが表示するコンテンツのサブセットを決定することを含み、前記サブセットは、ユーザ固有情報を除外しており、前記機能は、さらに、
前記アプリケーションについてのオートフィル要求をリモートプロバイダに送信することを含み、前記オートフィル要求は、前記ＵＩ上に表示されるコンテンツの前記サブセットを含み、前記機能は、さらに、
前記オートフィル要求に応答して、前記ＵＩ上で前記アプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値を前記リモートプロバイダから受け付けることと、
前記テキスト入力フィールドにユーザ入力値を検出することと、
前記テキスト入力フィールドに前記ユーザ入力値を検出することに応答して、前記１つ以上の候補ユーザ値の各々に対する前記ユーザ入力値の比較に基づいて前記１つ以上の候補ユーザ値の各々についての類似度メトリックを決定することと、
前記フィールド分類要求に対する応答を前記リモートプロバイダに送信することとを含み、前記応答は、前記１つ以上の候補ユーザ値の少なくとも１つについての前記類似度メトリックを含む、非一時的なコンピュータ読み取り可能な媒体。
【請求項２２】
機械読み取り可能な命令を含むコンピュータプログラムであって、前記命令は、演算装置によって実行されると、前記演算装置に、請求項１〜１９のいずれかに記載の方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１８年３月６日に出願された米国仮出願第６２／６３９，４７１号に基づく優先権を主張し、当該出願のすべての記載内容を、本明細書に完全に記載されているかのように引用により本明細書に援用する。
【背景技術】
【０００２】
背景
モバイル機器、携帯電話、パーソナルコンピュータ、およびタブレット端末を含む多くの最新コンピューティングデバイスは、ユーザがコンピューティングデバイスとやり取りすることを可能にするユーザインターフェース（ＵＩ）を提供する。たとえば、このＵＩを使って、アプリケーションプログラムは、画像、テキスト、ならびに、ウインドウ、ダイアログボックス、ポップアップ画面、画像、ボタン、スクロールバー、およびアイコンなどのグラフィカル要素を利用しているユーザとコミュニケーションをとることができる。また、ＵＩは、タッチスクリーン、存在感知ディスプレイ、コンピュータマウス、キーボードなどのデバイス、および、その他のデバイスからの入力を受け付けて、ユーザがＵＩを、そしてそれによって、アプリケーションプログラムを制御できるようにする。
【０００３】
場合によっては、オペレーティングシステムとやり取りをしてコンピューティングデバイスを管理するためにＵＩを利用することができる。たとえば、オペレーティングシステムは、オーディオコントロール、映像出力、コンピュータメモリ、およびオペレーティングシステムが使用するヒトの言語（複数可）（たとえば、英語、フランス語、マンダリン、ヒンディー語、ロシア語などで情報を受け付けるために選択される）など、コンピューティングデバイスのいくつかの態様（複数可）についての制御設定に関する１つ以上のウインドウをＵＩを使用して描く操作パネルまたは設定用アプリケーションを有し得る。操作パネル／設定用アプリケーションは、ＵＩを使用して、ウインドウ（複数可）に関する次の入力を受け付けることができる。ＵＩは、操作パネル／設定用アプリケーションを介してオペレーティングシステムへの入力を行ってコンピューティングデバイスを管理することができる。
【０００４】
しかしながら、ＵＩにデータを手入力することは、ユーザにとって不便であったり、時間がかかったり、および／または面倒であり得、特に、ＵＩが小さいモバイル機器上では間違いが起こる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
例示的な実施の形態は、ユーザデバイスのオペレーティングシステムが、ユーザが入力したデータをユーザデバイスに格納することなくクラウドソーシングおよび採点（スコアリング）することに基づいて、リモートプロバイダの助けを借りてアプリケーションのオートフィル（自動入力）データを提供できるようにするシステムに関する。より具体的には、ユーザがセンシティブなまたは機密情報を入力すると分かった上で、ユーザデバイスのオペレーティングシステムは、ユーザデバイスのユーザインターフェース（ＵＩ）上でアプリケーションによって表示される、そのユーザに固有の固有情報を除外したコンテンツのサブセットを決定してもよい。次に、別の態様では、オペレーティングシステムは、このコンテンツのサブセットを使用してオートフィル要求を生成し、アプリケーションのリモートプロバイダに送信してもよい。これに加えて、この要求に基づいて、オペレーティングシステムは、ＵＩ上にアプリケーションによって表示されるテキスト入力フィールドについてのフィールド分類要求と少なくとも１つ以上の候補ユーザ値とを含んだ応答をリモートプロバイダから受け付けてもよい。さらには、オペレーティングシステムは、テキスト入力フィールドにユーザ入力を検出し、テキスト入力フィールドにユーザ入力値を検出することに応答して１つ以上の候補ユーザ値の各々に対するユーザ入力値の比較に基づいて１つ以上の候補ユーザ値の各々についての類似度メトリックを決定してもよい。さらに別の態様では、オペレーティングシステムは、フィールド分類要求に対する応答をリモートプロバイダに送信してもよい。この応答は、１つ以上の候補値のうちの少なくとも１つの候補値についての類似度メトリックを含む。
【０００６】
一態様では、ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションによって表示されるコンテンツのサブセットを決定するステップを含む方法を提供し、サブセットは、ユーザ固有情報を除外している。この方法は、さらに、アプリケーションについてのオートフィル要求をリモートプロバイダに送信するステップを含み、オートフィル要求は、ＵＩ上に表示されるコンテンツのサブセットを含む。またｈ、方法は、オートフィル要求に応答して、ＵＩ上でアプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値をリモートプロバイダから受け付けるステップを含む。これに加えて、方法は、テキスト入力フィールドにユーザ入力値を検出するステップを含む。方法は、さらに、記テキスト入力フィールドにユーザ入力値を検出することに応答して、１つ以上の候補ユーザ値の各々に対するユーザ入力値の比較に基づいて１つ以上の候補ユーザ値の各々についての類似度メトリックを決定するステップを含む。また、方法は、フィールド分類要求に対する応答をリモートプロバイダに送信するステップとを含み、応答は、１つ以上の候補ユーザ値の少なくとも１つについての類似度メトリックを含む。
【０００７】
別の態様では、ユーザデバイスを提供する。このユーザデバイスは、ユーザインターフェース（ＵＩ）と、ユーザデバイスのＵＩ上にアプリケーションによって表示されるコンテンツのサブセットを決定するように構成されるオペレーティングシステムとを備え、サブセットは、ユーザ固有情報を除外している。オペレーティングシステムは、さらに、アプリケーションについてのオートフィル要求をリモートプロバイダに送信するように構成され、オートフィル要求は、ＵＩ上に表示されるコンテンツのサブセットを含む。また、オペレーティングシステムは、オートフィル要求に応答して、ＵＩ上でアプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値をリモートプロバイダから受け付けるように構成される。これに加えて、オペレーティングシステムは、テキスト入力フィールドにユーザ入力値を検出するように構成される。オペレーティングシステムは、さらに、テキスト入力フィールドにユーザ入力値を検出することに応答して、１つ以上の候補ユーザ値の各々に対するユーザ入力値の比較に基づいて１つ以上の候補ユーザ値の各々についての類似度メトリックを決定するように構成される。また、オペレーティングシステムは、フィールド分類要求に対する応答をリモートプロバイダに送信するように構成され、応答は、１つ以上の候補ユーザ値の少なくとも１つについての類似度メトリックを含む。
【０００８】
別の態様では、１つ以上のプロセッサによって実行可能な命令を格納した非一時的なコンピュータ読み取り可能な媒体を提供し、命令は、ユーザデバイスのオペレーティングシステムに機能を実行させる。機能は、ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションが表示するコンテンツのサブセットを決定することを含み、サブセットは、ユーザ固有情報を除外している。また、これらの機能は、アプリケーションについてのオートフィル要求をリモートプロバイダに送信することを含み、オートフィル要求は、ＵＩ上に表示されるコンテンツのサブセットを含む。これに加えて、これらの機能は、オートフィル要求に応答して、ＵＩ上でアプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値をリモートプロバイダから受け付けることを含む。また、これらの機能は、テキスト入力フィールドにユーザ入力値を検出することを含む。これらの機能は、さらに、テキスト入力フィールドにユーザ入力値を検出することに応答して、１つ以上の候補ユーザ値の各々に対するユーザ入力値の比較に基づいて１つ以上の候補ユーザ値の各々についての類似度メトリックを決定することを含む。これに加えて、これらの機能は、フィールド分類要求に対する応答をリモートプロバイダに送信することとを含み、応答は、１つ以上の候補ユーザ値の少なくとも１つについての類似度メトリックを含む。
【０００９】
別の態様では、ＵＩと、少なくとも１つのプロセッサと、（少なくとも１つのプロセッサによって実行されると、少なくとも１つのプロセッサに機能を実行させる）命令を格納した非一時的なコンピュータ読み取り可能な媒体とを備えるシステムを提供する。このシステムは、ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションによって表示されるコンテンツのサブセットを決定する手段を含み、サブセットは、ユーザ固有情報を除外している。このシステムは、さらに、アプリケーションについてのオートフィル要求をリモートプロバイダに送信する手段を含み、オートフィル要求は、ＵＩ上に表示されるコンテンツのサブセットを含む。またｈ、システムは、オートフィル要求に応答して、ＵＩ上でアプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値をリモートプロバイダから受け付ける手段を含む。これに加えて、システムは、テキスト入力フィールドにユーザ入力値を検出する手段を含む。システムは、さらに、記テキスト入力フィールドにユーザ入力値を検出することに応答して、１つ以上の候補ユーザ値の各々に対するユーザ入力値の比較に基づいて１つ以上の候補ユーザ値の各々についての類似度メトリックを決定する手段を含む。また、システムは、フィールド分類要求に対する応答をリモートプロバイダに送信する手段とを含み、応答は、１つ以上の候補ユーザ値の少なくとも１つについての類似度メトリックを含む。
【００１０】
以上の概要は、例示にすぎず、限定ではない。例示の態様、実施の形態、および特徴に加えて、別の態様、実施の形態、および特徴は、図ならびに下記の詳細な説明および添付の図面を参照することによって明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】例示的な実施の形態に係る、分散コンピューティングアーキテクチャを示す図である。
【図２】例示的な実施の形態に係る、方法のフローチャートである。
【図３Ａ】例示的な実施の形態に係る、オートフィル要求をリモートプロバイダに送信し、リモートプロバイダから候補ユーザデータおよびフィールド分類要求を受け付ける第１デバイスのオペレーティングシステムを示す図である。
【図３Ｂ】例示的な実施の形態に係る、第１モバイル機器上におけるアプリケーションのテキスト入力フィールドへの手作業によるデータのユーザ入力、およびオペレーティングシステムがユーザ入力データに基づいて１つ以上の類似度メトリックを生成してリモートプロバイダに送信する図を示す図である。
【図４Ａ】例示的な実施の形態に係る、オートフィル要求をリモートプロバイダに送信し、リモートプロバイダから候補ユーザデータおよびフィールド分類要求を受け付ける第２モバイル機器のオペレーティングシステムを示す図である。
【図４Ｂ】例示的な実施の形態に係る、第２モバイル機器上におけるアプリケーションのテキスト入力フィールドへの手作業によるデータのユーザ入力、およびオペレーティングシステムがユーザ入力データに基づいて１つ以上の類似度メトリックを生成してリモートプロバイダに送信する図を示す図である。
【図５】例示的な実施の形態に係る、オートフィル要求をリモートプロバイダに送信し、リモートプロバイダからオートフィル値を受け付けて表示する第３ユーザデバイスのオペレーティングシステムを示す図である。
【図６】例示的な実施の形態に係る、例示的なコンピューティングデバイスの機能ブロック図である。
【発明を実施するための形態】
【００１２】
詳細な説明
本明細書において、例示的な方法およびシステムを説明する。本明細書に記載する例示的な実施の形態もしくは特徴は、その他の実施の形態もしくは特徴よりも好ましいまたは有利であると必ずしも解釈されない。本明細書に記載の例示的な実施の形態は、限定ではない。本開示のシステムおよび方法の特定の態様を、本明細書において考えられる様々な異なる構成に配置したり組み合わせたりすることができることは、容易に理解されるであろう。
【００１３】
さらには、図に示す特定の配置は、限定と考えられるべきではない。その他の実施の形態が図に示す各要素をより多くまたは少なく含み得ることを理解されたい。さらには、例示の要素のいくつかが組み合わされてもよく、省略されてもよい。さらには、例示的な実施の形態が図示されていない要素を含んでもよい。
【００１４】
本明細書において一般的に説明し図示した本開示の態様を、本明細書において考えられる様々な異なる構成で配置したり、置き換えたり、組み合わせたり、分けたり、設計したりすることができることは、容易に理解されるであろう。
【００１５】
Ｉ．概要
モバイル機器、携帯電話、パーソナルコンピュータ、およびタブレット端末を含むユーザデバイスが最新の通信ネットワークにおいて広く普及している。これらのデバイスの多くは、このようなネットワーク内での通信を容易にしつつ、１つ以上のアプリケーションを実行可能である。さらには、これらのデバイスの多くは、ユーザがユーザデバイスとやり取りすることを可能にする１つ以上のＵＩも提供する。
【００１６】
たとえば、ユーザは、画像、テキスト、およびその他のグラフィカル要素の使用を通してユーザデバイス上のアプリケーションによって使用される情報を、ＵＩを使って伝達してもよい。また、ＵＩは、タッチスクリーン、存在感知ディスプレイ、コンピュータマウス、キーボードなど、ユーザデバイスに接続された非常に多くのデバイス、および、ＵＩ、つまり、アプリケーションをユーザが制御することを可能にするその他のデバイスから、入力を受け付けることができる。
【００１７】
最良のシナリオでは、ユーザは、効果的かつ効率的にＵＩを使用してこのような情報を伝達できるようになる。しかしながら、ユーザがそのようにできることに対して、１つ以上の要因が限定を加えてしまう可能性がある。よって、このような限定のもとで操作している場合、より多くの情報を伝達する必要が高まると、これらの情報を効果的かつ効率的に伝達できることが制限される可能性がある。
【００１８】
一例として、スクリーンが小さいユーザデバイスの場合、アプリケーションが使用する情報を伝達するために膨大な量のテキストをＵＩにキー入力することは、特に、ユーザが記憶し難いテキストでもある場合、非常に難しい。したがって、アプリケーションがこの情報を記憶できることは、アプリケーションが次回ユーザによって使われるときに情報を再伝達する必要がなくなるため、有利になるであろう。しかしながら、ユーザが通信しようと試みるアプリケーションの数が増えると、これらのアプリケーションに膨大な量のテキストを（初回時またはそれ以外の場合に）ＵＩを利用して伝達することによって課される負担がユーザの重荷になる可能性があることは妥当であると思われる。また、これは、ユーザが入力した情報を個々のアプリケーションが記憶していたとしても当てはまる。その結果、このような情報を入力するよう要求されると、ユーザは、これらのアプリケーションにあまり関わらなくなる（または、その使用を完全にあきらめてしまう）であろう。
【００１９】
これらの問題のいくつかは、ユーザデバイスのオペレーティングシステムを関与させて橋渡しとして機能させ、リモートプロバイダの助けを借りて複数のアプリケーション間のオートフィル（自動入力）を容易にするによって、このようなアプリケーションが使用する情報をユーザデバイスのユーザが効果的かつ効率的に伝達できるようにする方法、システム、およびデバイスを利用することによって対処できるであろう。具体的には、いくつかの例では、部分的に、オートフィル有効にし、認証されたリモートプロバイダがオートフィルにデータを提供できるようにし、オートフィルデータを取り出し、オートフィルデータを将来使用するために保存することによって、ユーザは、ユーザデバイスのオペレーティングシステムレベルでオートフィルを利用してもよい。
【００２０】
しかしながら、オートフィル候補や要求と絶えずやり取りをしてオペレーティングシステムまたはリモートプロバイダによるオートフィルに関与させられることに苛立ったり疲労したりしてしまうユーザもいるであろう。この問題は、特に、ユーザがオートフィル処理およびオートフィルリモートプロバイダと以前やり取りを経験したことがある場合、ユーザに提供されるオートフィル候補が誤っていたり、誤って出されていたりすると、さらに浮き彫りになる。よって、ユーザのデバイス上に表示されたアプリケーションのどこにユーザのデータを自動入力するかをオートフィルリモートプロバイダが正確に分かっていることが理想である。
【００２１】
残念ながら、ほとんどのオペレーティングシステム、アプリケーション、およびオートフィルリモートプロバイダはこのように動作せず、現在のところ、極めて信頼性が低いオプションにのみ依拠しているおそれがある。一例では、これらのサービスは、ヒューリスティクスおよびヒューリスティックデータを使用して、ユーザ入力データの正しい意味と、ユーザがこのデータを入力するまたは入力すべきテキスト入力フィールドとを考え出している可能性がある（たとえば、リモートプロバイダは、ビューのリソース識別子にユーザ名またはパスワードの部分文字列を探しているであろう）。しかし、これらのヒューリスティクスおよびヒューリスティックデータの問題としては、これらの信頼性が低く、データを単に手入力した場合よりも多くの時間と手間を無駄にしてしまうという、ユーザが通常避けたい真の問題につながることである。この非効率は、様々な局面で生じる。
【００２２】
一例では、ユーザは、頻繁に誤って推測されるオートフィル入力データおよびテキスト入力フィールドを訂正するのに時間と手間を掛けている（たとえば、リモートプロバイダがユーザ名についてのオートフィルデータをパスワードフィールドに送信してしまう）。その他の例では、オペレーティングシステムまたはリモートプロバイダが自動入力可能なフィールドをまったく検出しないとユーザが認識している。これもまた、特に、ユーザがやり取りしている１つ以上のリモートプロバイダまたはアプリケーションの入力データが以前に保存済みであることをユーザが分かっている場合、ユーザには非常に苛立たしいであろう。
【００２３】
しかし、詳細を上述したように、ユーザが入力するデータが将来のオートフィル利用のために使用されることについてユーザの同意が得られるまでは、リモートプロバイダは、将来のオートフィル利用のためにそのデータにアクセスすることができないので、ユーザが入力したデータの種類、程度、詳細、さらには、ユーザが入力したデータが将来のオートフィル利用のためにどのように使われるかについての見通しや方向性をリモートプロバイダがオペレーティングシステムに提供することは、難しい。
【００２４】
さらには、セキュリティおよび／またはその他の理由で、自動入力されたユーザデータをユーザの同意なしにオペレーティングシステムがアプリケーションから公開してリモートプロバイダに提供（その逆も然り）しないであろう。よって、ユーザの固有情報をうっかり漏らしてしまったり、繰り返されるオートフィルプロンプトもしくは誤ったオートフィル入力要求でユーザに面倒をかけてしまったりすることなく、オペレーティングシステムがリモートプロバイダと動的にやり取りをし、インテリジェントに候補に挙げられたオートフィルデータを取得できるようになることについて、直接的ニーズがある。
【００２５】
ユーザが入力したデータをユーザデバイスに格納したりユーザが同意する前に漏らしたりすることなくクラウドソーシングおよび（採点）スコアリングすることに基づいて、ユーザデバイスがリモートプロバイダの助けを借りてアプリケーションのオートフィルデータを用いてユーザに入力要求を行わせる方法、システム、およびデバイスに関する例示的な実施の形態を、本明細書に開示する。具体的には、本明細書に開示の例示的な実施の形態によって、ユーザに同意を求めるまたは同意する面倒をかけたり、モバイル機器の小さいＵＩフットプリントに基づいて理解したり伝えたりすることは非常に難しいであろう蓄積されたオプションを提示したりすることなく、ユーザに使用するようリモートプロバイダが提案するオートフィルデータをインテリジェントに知らせることができるようになる。同時に、ユーザを取り巻く固有情報を、最大限の配慮、守秘性、およびセキュリティで扱う必要もあるであろう。
【００２６】
本明細書において提案するオートフィルのソリューションでは、ユーザのデータをクラウドソーシングのためにオートフィルサービスまたはリモートプロバイダに勝手気ままに送信する代わりに、これらのパーティが候補データをオペレーティングシステムに送信した後、ユーザがそのデータを入力したかどうかをオペレーティングシステムが確認する。言い換えると、高い近似レベルにおいて、例示的な実施の形態は、次のように動作し得る（１）モバイル機器のＵＩ上に表示されるコンテンツのセキュアなサブセットに基づいて、モバイル機器のオペレーティングシステムがオートフィル要求をリモートプロバイダに送信する。（２）リモートプロバイダが一般的なユーザデータをモバイル機器のオペレーティングシステムに送信し、フィールド分類を要求していると入力要求に印を付ける。（３）ユーザがアプリケーションに入力した任意のデータに対する類似度メトリックに基づいて、さらなるオートフィル利用のためのフィールド分類結果を、オペレーティングシステムが返す。
【００２７】
一例示的な実施の形態では、オペレーティングシステムは、ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションによって表示されるコンテンツのサブセットを決定してもよい。サブセットは、ユーザ固有情報を除外している。特に、ユーザは、コンピューティングデバイスとやり取りを行っていてもよく、そのデバイス上のアプリケーションとやり取りすると決めてもよい。オペレーティングシステムは、ユーザがアプリケーションとやり取りをしていることを認識し、かつ、当該アプリケーションに自動入力することに関連するとオペレーティングシステムが分かっているコンテンツが存在することを認識してもよい。
【００２８】
一般に、ＵＩ上にアプリケーションによって表示されるコンテンツは、オペレーティングシステムが把握可能なアプリケーションに関する任意の情報を指す。一例では、このコンテンツは、ユーザデバイスのＵＩ上に表示されるコンテンツの現在のビュー階層を含んでもよく、またはセンシティブおよび／もしくはプライベートな情報を含んでもよく、オペレーティングシステムは、ユーザ固有情報を除外したコンテンツのサブセットのみを決定する。
【００２９】
別の態様では、オペレーティングシステムは、アプリケーションについてのオートフィル要求をリモートプロバイダに送信してもよい。オートフィル要求は、ＵＩ上に表示されるコンテンツのサブセットを含む。具体的には、ユーザ固有情報を除外した表示コンテンツのサブセットに基づいて、オペレーティングシステムは、このコンテンツのサブセット内の情報を含んだ要求またはこのコンテンツのサブセットに関連する情報を含んだ要求をこれらのリモートプロバイダに送信し、ＵＩに表示された、特に、入力可能と思われるフィールドをリモートプロバイダに知らせてもよい。いずれのイベントにおいても、この要求は、ＵＩ上に表示されたコンテンツをリモートプロバイダにセキュアかつプライベートに構文解析させて、アプリケーションの自動入力を容易にするためにはどのような情報が有用であるかを判断させる（たとえば、アプリケーション上のどのテキスト入力フィールドを自動入力するかを決定する）ことができるので、オペレーティングシステムにとってもユーザにとっても有益であるであろう。
【００３０】
また、いずれの場合であっても、オペレーティングシステムは、アプリケーションとともに使用するためのオートフィル要求（ＵＩ上に表示されるコンテンツのサブセットを含む）を送信してもよい。いくつかの例では、この要求は、アプリケーションの起動に応答して送信されてもよい。いくつかの例では、この要求は、アプリケーションのテキスト入力フィールドの選択に応答して送信されてもよい。
【００３１】
さらに別の態様では、オペレーティングシステムは、オートフィル要求に応答して、ＵＩ上にアプリケーションによって表示されるテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値をリモートプロバイダから受け付けてもよい。一般に、リモートプロバイダから受け付けた応答は、自動入力を容易にする際にオペレーティングシステムにもリモートプロバイダにも役立つデータを提供してもよい。
【００３２】
一例では、応答は、以前にユーザによって入力されたおよび／またはアプリケーションまたはその他のアプリケーションにおいて自動入力されたユーザ値と相関しているとリモートプロバイダが判断する１つ以上の候補ユーザ値に基づいて自動入力を容易にする際にオペレーティングシステムにとって役立つデータを含んでもよい。これにより、リモートプロバイダは、アプリケーションおよびＵＩを介してユーザにオートフィル値を提案しようと試みる前に、ユーザに面倒をかけたり身動き出来なくさせたりすることなくアプリケーションにおいてオートフィルテキストフィールドを正確に特定できるようになることを期待して、オペレーティングシステムに候補ユーザ値を提供してもよい。しかし、同時に、オペレーティングシステムは、リモートプロバイダによる、（たとえば、特に、規模を多くのユーザに拡げた場合、過剰な量の候補ユーザ値を、それらのいくつかが最終的にアプリケーション上の表示テキストフィールドに一致するであろうと期待して送信することによって）オートフィル値をユーザに提案するための最良の方法を特定するために行われる「ブルートフォース（総当たり）」攻撃に圧倒されたくはないであろう。このブルートフォース攻撃を根絶するために、例示的な実施の形態では、オペレーティングシステムは、複数の戦術を利用し得る。
【００３３】
たとえば、オペレーティングシステムは、以下のように限定するインターフェース（たとえば、アプリケーションプログラミングインターフェースまたはＡＰＩ）を介して、リモートプロバイダから候補ユーザ値および／またはフィールド分類要求を受け付け得る。（１）１つ以上の予め定められた要因に基づいて、リモートプロバイダから受け付ける候補ユーザ値の総数を限定する、（２）候補ユーザ値自体の特徴を、候補ユーザ値の１つ以上の特性または特徴に基づいて限定する、（３）フィールド分類要求の全体数を、フィールド分類要求の所定最大数またはフィールド分類要求が受け付けられる頻度に基づいて限定する、（４）ユーザ入力フィールドの所定最大数に基づいて、フィールド分類要求のためのユーザ入力フィールドの数を限定する、および／または（５）テキスト入力フィールドごとのフィールド分類要求の数を、フィールド分類要求のフィールド当たりの所定最大数に限定する（たとえば、インターフェースは、テキスト入力フィールド当たり３個を超えるフィールド分類要求を認めない）。
【００３４】
候補ユーザ値およびフィールド分類要求に加えて、リモートプロバイダは、オペレーティングシステムのオートフィル要求に応答して、オペレーティングシステムがオートフィルを容易にする際に有用な追加情報を提供してもよい。たとえば、候補ユーザ値およびフィールド分類要求に加えて、リモートプロバイダは、アプリケーションが表示する追加のテキスト入力フィールドに対するオートフィル値を提供してもよい。ここで、追加のテキストフィールドとは、すでにリモートプロバイダが正しく識別したテキストフィールドである。また、これに応答して、いくつかの例では、オペレーティングシステムは、追加のテキスト入力フィールドにオートフィル値を表示させてもよい。
【００３５】
しかしながら、これらのシナリオのいずれにおいても、リモートプロバイダは、オペレーティングシステムの期待またはインターフェースの限定に応えられていない可能性がある。そして、いずれの場合も、リモートプロバイダによるアクセスを限定してしまう方法でオペレーティングシステムが対応してしまうことにつながり得る。たとえば、オペレーティングシステムのリソースまたはその一部の所定の割り当て分が、本明細書に記載の処理に充てられていてもよく、この所定のリソース割り当てが超過したと判断した場合、オペレーティングシステムは、それを改善する動作を行ってもよい（たとえば、１つ以上のリモートプロバイダから候補ユーザ値またはフィールド分類要求をさらに受け付けることを拒否する）。
【００３６】
また、別の態様では、オペレーティングシステムは、フィールド分類要求が受け付けられたテキスト入力フィールドにユーザ入力値を検出し、これに応答して、１つ以上の候補ユーザ値の各々に対するユーザ入力値の比較に基づいて１つ以上の候補ユーザ値の各々についての類似度メトリックを決定してもよい。いくつかの例では、この類似度メトリックは、リモートプロバイダが提供する候補ユーザ値のうちの１つ以上にユーザ入力された値がどれくらい類似しているかに基づいて生成されるスコアで表されてもよい。さらには、これらの類似度メトリックの演算の基盤となる方法（たとえば、基盤となる比較モデルまたはアルゴリズム）は、異なってもよく（たとえば、文字列マッチングモデルまたは編集距離モデル）、それどころか、動的であってもよい（たとえば、基盤となる比較モデルがオートフィル要求間で更新可能であり、それどころか、関連ソースまたはサードパーティソース（たとえば、Ｇｏｏｇｌｅ  Ｐｌａｙストア）を通して取得されてもよい）。そして、これらの方法は、リモートプロバイダによって選択可能であってもよく（たとえば、オペレーティングシステムは、基盤となる比較モデルのリストをリモートプロバイダに送信し、リモートプロバイダが選択した基盤となる比較モデルに基づいて、当該選択された基盤となる比較モデルを適用することによって１つ以上の候補ユーザ値の各々についての類似度メトリックを決定してもよい）、および／または、デフォルトで設定されてもよい。
【００３７】
さらに別の態様では、オペレーティングシステムは、フィールド分類要求に対する応答をリモートプロバイダに送信してもよい。この応答は、１つ以上の候補ユーザ値のうちの少なくとも１つの候補ユーザ値についての類似度メトリックを含む。いくつかの例では、この類似度メトリックの送信は、判断を行わない送信であってもよく（たとえば、オペレーティングシステムは、候補ユーザ値のすべてについて類似度メトリックを生成し、複数の候補ユーザ値の各々についての類似度メトリックを送信してもよい）、または、より対象を絞ったアナリティカルな送信であってもよい（たとえば、オペレーティングシステムは、候補ユーザ値のすべてについて類似度メトリックを生成するが、複数の候補ユーザ値のうち最も一致するユーザ値についての類似度メトリックのみを送信してもよい）。いずれの場合であっても、類似度メトリックは、自動入力可能と思われるアプリケーションのフィールドをより良く特定するためにリモートプロバイダによって利用されてもよく、アプリケーションが同一ユーザまたは異なるユーザによって将来実行された場合に、より優れたオートフィルサービスをリモートプロバイダが提供できるようになる。
【００３８】
ＩＩ．分散コンピューティングアーキテクチャ
ここで、様々な実施の形態の詳細について言及する。実施の形態の例は、添付の図面に示す。下記の詳細な説明では、本開示および記載の実施の形態の十分な理解のために数々の具体的な詳細を説明する。しかしながら、これらの具体的な詳細がなくても本開示を実施することができる。その他、実施の形態の態様を不必要に曖昧にしないよう、周知の方法、プロシージャ、構成要素、および回路は、詳細に説明しない。
【００３９】
図１は、例示的な実施の形態に係る、ネットワーク１０６を介してユーザデバイス１０４ａ、１０４ｂ、１０４ｃ、１０４ｄ、１０４ｅ、ならびにリモートプロバイダ１１２および１１４と通信を行うように構成されたサーバ装置１０８、１１０を有する分散コンピューティングアーキテクチャ１００を示す。ネットワーク１０６は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、企業のイントラネット、公共インターネット、または、ネットワーク化されたコンピューティングデバイス間の通信経路を提供するように構成されたその他の種類のネットワークに相当し得る。また、ネットワーク１０６は、１つ以上のＬＡＮ、ＷＡＮ、企業のイントラネット、および／または公共インターネットの組合せに相当し得る。
【００４０】
図１ではユーザデバイスの小さな集合しか示していないが、分散アプリケーションアーキテクチャは、何十、何百、何千ものユーザデバイスにサービスを提供し得る。また、ユーザデバイス１０４ａ、１０４ｂ、１０４ｃ、１０４ｄ、１０４ｅ（または、任意の追加のプログラム可能なデバイス）は、リモートプロバイダの助けを借りて複数のアプリケーション間の自動入力を容易にすることにコンピューティングデバイスのオペレーティングシステムをユーザが関与させることができる任意の種類のコンピューティングデバイスであってもよく、一般的なラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス、モバイルコンピューティングデバイス、ヘッドマウントデバイス（ＨＭＤ）、ネットワーク端末、ワイヤレス通信装置（たとえば、スマートフォンまたは携帯電話）などである。いくつかの実施の形態では、ユーザデバイス１０４ａ、１０４ｂ、および１０４ｃで示されているように、ユーザデバイスは、ネットワーク１０６に直接接続することができる。その他の実施の形態では、ユーザデバイス１０４ｄおよび１０４ｅで示されているように、ユーザデバイスは、ユーザデバイス１０４ｃなど、関連コンピューティングデバイスを介してネットワーク１０６に間接的に接続することができる。このような実施の形態では、ユーザデバイス１０４ｃは、ユーザデバイス１０４ｄおよび１０４ｅとネットワーク１０６との間で電子通信を通過させる関連コンピューティングデバイスとして動作することができる。図１に示されていないさらに別の実施の形態では、ユーザデバイスは、ネットワーク１０６に直接および間接的に接続することができる。
【００４１】
サーバ装置１０８、１１０は、要求に基づいてコンピュータおよびその他のデバイスにコンピュータ処理リソースおよびデータを分配するクラウドベースのサーバシステムの一部として動作し得る。特に、サーバ装置１０８、１１０は、ユーザデバイス１０４ａ〜１０４ｅが要求する１つ以上のサービスを実行するように構成することができる。たとえば、サーバ装置１０８および／または１１０は、コンテンツをユーザデバイス１０４ａ〜１０４ｅに提供することができる。別の態様では、サーバ装置１０８および／または１１０は、コンテンツをユーザデバイス１０４ａ〜１０４ｅに直接提供してもよく、サードパーティから要求されたコンテンツ送信を容易にすることによって提供してもよい。このコンテンツは、ウェブページ、ハイパーテキスト、スクリプト、コンパイルされたソフトウェアなどのバイナリデータ、画像、音声、および／または映像を含み得るが、これらに限定されない。コンテンツは、圧縮されたコンテンツおよび／または圧縮されていないコンテンツを含み得る。コンテンツは、暗号化されていてもよく、および／または暗号化されていなくてもよい。
【００４２】
また、リモートプロバイダ１１２、１１４は、要求に基づいてコンピュータおよびその他のデバイスにコンピュータ処理リソースおよびデータを分配するクラウドベースのサーバシステムの一部として動作し得る。特に、リモートプロバイダ１１２、１１４は、例示的な実施の形態に従って、ネットワーク１０６上でコンテンツを提供、受け付け、格納、管理、および送信してもよい。たとえば、リモートプロバイダ１１２および／または１１４は、ユーザデバイス１０４ａ〜１０４ｅが使用するコンテンツの要求を受け付け、コンテンツを含んだ応答を生成し、ネットワークに接続されたデバイスに送信することができる。
【００４３】
例では、サーバ装置１０８および／または１１０は、リモートプロバイダ１１２および／または１１４の助けを借りてユーザデバイス１０４ａ〜１０４ｅ上の複数のアプリケーション間の自動入力を容易にするコンテンツを提供してもよい。これに加えて、サーバ装置１０８および／または１１０は、データベース、検索、演算、グラフィック、音声、映像、ＷｏｒｌｄＷｉｄｅＷｅｂ／インターネット利用、および／またはその他の機能のためのソフトウェアへのアクセスを、ユーザデバイス１０４ａ〜１０４ｅに提供することができる。その他多くのコンテンツの応用例も可能である。
【００４４】
ＩＩＩ．方法のフローチャートおよび例示的な実施の形態
図２は、方法２００を示すフローチャートを例示する。方法２００は、ＵＩを介してユーザデバイスのオペレーティングシステムによって表示されるアプリケーションのオートフィルサービスをリモートプロバイダがより適切に提供できるようにするために実行され得る。方法２００は、図１で例示および説明するように、ユーザデバイス１０４ａ〜１０４ｅならびにリモートプロバイダ１１２および／または１１４、ならびに、場合によっては、サーバ１０８および／または１１０など、１つ以上のコンピューティングデバイスによって実行されてもよい。別の例では、方法２００は、クラウドベースのシステムの一部として動作するユーザデバイス１０４ａ〜１０４ｅならびにリモートプロバイダ１１２および／または１１４、場合によっては、サーバ１０８および／または１１０によって実行されてもよい。これに加えて、方法２００は、図１に具体的に例示したコンピューティングデバイス以外に、１つ以上のその他の種類のコンピューティングデバイスによって実行されてもよい。
【００４５】
これに加えて、方法２００のステップは、オペレーティングシステムによって完了されると下記に説明されるが、ユーザデバイスに関するその他の構成要素、アプリケーション、および／または技術が方法２００のステップを実行できる。
【００４６】
さらには、本明細書に記載のフローチャートに関連して説明する機能は、図２に示すフローチャートに関連して説明する特殊機能ハードウェアモジュールおよび／もしくは構成済みの一般機能ハードウェアモジュール、専用の論理関数を実現するための、プロセッサによって実行されるプログラムコードの一部、決定、ならびに／またはステップとして実装され得ることを留意されたい。プログラムコードは、使用される場合、任意の種類のコンピュータ読み取り可能な媒体、たとえば、ディスクまたはハードドライブを含む記憶装置上などに格納され得る。
【００４７】
これに加えて、図２に示すフローチャートの各ブロックは、有線で接続され、処理において専用の論理関数を実行する回路を表し得る。別段の指定がない限り、図２に示すフローチャートの機能は、記載の方法の全体的な機能が維持されている限り、関係する機能に応じて、図示した順序や説明した順序とは異なる順序で実行されてもよく、別々に説明された機能を実質的に同時に実行したり、いくつかの例では逆の順序で実行したりすることを含む。
【００４８】
ブロック２１０において、方法２００は、ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションによって表示されるコンテンツのサブセットを決定するステップを含んでもよい。サブセットは、ユーザ固有情報を除外している。特に、ユーザは、コンピューティングデバイスとやり取りを行っていてもよく、そのデバイス上のアプリケーションとやり取りすると決めてもよい。オペレーティングシステムは、ユーザがアプリケーションとやり取りをしていることを認識し、かつ、当該アプリケーションに自動入力することに関連するとオペレーティングシステムが分かっているコンテンツが存在することを認識してもよい。
【００４９】
一般に、オペレーティングシステムは、共通してオートフィルに対応付けられた特定のデータを認識することができる。一例において、オペレーティングシステムは、アプリケーションに対応付けられたテキスト入力フィールドが共通のオートフィル記述子（たとえば、「Ｅｍａｉｌ」または「Ｕｓｅｒｎａｍｅ」）を含むまたは共通のオートフィル記述子に対応付けられていると認識し得る。
【００５０】
一例では、オペレーティングシステムは、イベントのトリガ、たとえばオートフィルトリガイベントによって、ＵＩ上にアプリケーションによって表示されるコンテンツのサブセットの決定を開始し得る。このようなイベントは、デバイスとのユーザのやり取りの状態を含む、ユーザデバイスの現在の状態またはユーザデバイス上のアプリケーションに関する情報を提供し得る。また、オートフィルトリガイベントは、認証されたオートフィルに関与するタイミングをオペレーティングシステムに正しい時点で知らせるために使われてもよい。いくつかの例では、オートフィルトリガイベントは、デバイスとの直接または間接的なユーザのやり取りであり得る。しかしながら、一般に、オートフィルがユーザによって承認されると、デバイスとのユーザのやり取りは、オペレーティングシステムによって監視されるであろう。
【００５１】
一実施の形態において、例示的なオートフィルトリガイベントは、シナリオの中でも、ユーザによるアプリケーションの起動またはユーザによるアプリケーションのテキスト入力フィールドの選択など、ユーザデバイスとのユーザの直接のやり取りに関連するデータによって示され得る。
【００５２】
その他の例では、オートフィルトリガイベントは、シナリオの中でも、アプリケーションが起動されたことを示すシグナル、または、アプリケーションのテキスト入力フィールドもしくはユーザデバイスのＵＩ上に表示されるコンテンツのその他のパラメータにフォーカスがセットされたことを示すシグナルなど、ユーザデバイスとのユーザの間接的なやり取りに関連するデータを含んでもよい。別の態様では、ユーザデバイスとのユーザの間接的なやり取りは、ＵＩ上に表示されたキーボードなどのグラフィックまたはＧＵＩによって反映され得る。
【００５３】
一般に、ＵＩ上にアプリケーションによって表示されるコンテンツは、オペレーティングシステムが把握可能なアプリケーションに関する任意の情報を指す。一例では、このコンテンツは、ユーザデバイスのＵＩ上に表示されるコンテンツの現在のビュー階層を含んでもよい。しかしながら、コンテンツがセンシティブおよび／またはプライベートな情報も含んでいる可能性があるので、オペレーティングシステムは、ユーザ固有情報を除外したコンテンツのサブセットのみを決定する。
【００５４】
いくつかの例では、ユーザ固有情報は、個人を特定できる情報またはその他の情報を含み得る。その他の情報とは、それ自体でまたはその他の情報とともに１人の人間を識別する、連絡をとる、もしくは位置を特定する、または、その他の情報またはデータの状況から個人を特定するために利用できる情報である。別の例では、ユーザ固有情報は、センシティブおよび／またはプライベートであるとユーザが指定した情報を含み得る。
【００５５】
さらに別の例では、ユーザ固有情報は、ユーザに関連する１つ以上の要因に基づいてセンシティブおよび／またはプライベートであると指定された情報を含み得る。たとえば、ユーザ固有情報は、中でも、ユーザ、ユーザデバイス、および／もしくはリモートプロバイダが位置する地域に基づいてセンシティブおよび／またはプライベートであると指定された情報を含み得る。その他の例では、ユーザ固有情報は、ユーザの属性（たとえば、ユーザの年齢）に基づいてセンシティブおよび／またはプライベートであると指定された情報を含み得る。
【００５６】
ブロック２２０において、方法２００は、アプリケーションについてのオートフィル要求をリモートプロバイダに送信するステップをさらに含む。オートフィル要求は、ＵＩ上に表示されるコンテンツのサブセットを含む。この要求は、予め選択されたリモートプロバイダに送信されて、ユーザが以前にやり取りをしたことがあるもしくはやり取りしたことがないユーザデバイスまたは複数のリモートプロバイダ上でのオートフィル利用を容易にするのに役立てられてもよい。具体的には、ユーザ固有情報を除外した表示コンテンツのサブセットに基づいて、オペレーティングシステムは、このコンテンツのサブセット内の情報を含んだ要求またはこのコンテンツのサブセットに関連する情報を含んだ要求をこれらのリモートプロバイダに送信し、ＵＩに表示された、特に、入力可能と思われるフィールドをリモートプロバイダに知らせてもよい。いずれのイベントにおいても、この要求は、ＵＩ上に表示されたコンテンツをリモートプロバイダにセキュアかつプライベートに構文解析させて、アプリケーションの自動入力を容易にするためにはどのような情報が有用であるかを判断させる（たとえば、アプリケーション上のどのテキスト入力フィールドを自動入力するかを決定する）ことができるので、オペレーティングシステムにとってもユーザにとっても有益であるであろう。
【００５７】
いくつかの例では、要求は、ＵＩ上に表示されるテキスト入力フィールドに関連する情報を含んでもよい。一態様では、この情報は、テキスト入力フィールドに関連する１つ以上の記述子を含んでもよい。たとえば、これらの記述子は、中でも、「ｎａｍｅ」、「ｕｓｅｒｎａｍｅ」、「ｅｍａｉｌ」、「ｐａｓｓｗｏｒｄ」、「ａｄｄｒｅｓｓ」、「ｃｉｔｙ」、「ｓｔａｔｅ」、「ｚｉｐ  ｃｏｄｅ」、「ｃｏｕｎｔｒｙ」、「ａｃｃｏｕｎｔ  ｎｕｍｂｅｒ」、および／または「ｃａｒｄ  ｎｕｍｂｅｒ」などの用語を含んでもよい。
【００５８】
その他の例では、要求は、ユーザデバイスの現在のビュー階層に関連する情報を含んでもよい。一態様では、この情報は、ＵＩ上に表示されるコンテンツのサブセットをコンパイルすることまたは保持することに関連する情報（たとえば、基盤となるスクリプトおよび／またはコード）を含んでもよい。別の態様では、この情報は、ＵＩ上に表示されるコンテンツのサブセットの特定の概算に関連する情報（たとえば、コンテンツのサブセットのワイヤーフレームを表すもの）を含んでもよい。さらに別の態様では、この情報は、ＵＩ上に表示されるコンテンツのサブセットのアーキテクチャに関連する情報（たとえば、リラティブレイアウト、リニアレイアウト、ボタンテーブルレイアウト、テーブル行、チェックボックス、および／またはその他の要素に関連する情報）を含んでもよい。
【００５９】
いずれの場合であっても、オペレーティングシステムは、アプリケーションとともに使用するためのオートフィル要求（ＵＩ上に表示されるコンテンツのサブセットを含む）を送信してもよい。いくつかの例では、この要求は、アプリケーションの起動に応答して送信されてもよい。いくつかの例では、この要求は、アプリケーションのテキスト入力フィールドの選択に応答して送信されてもよい。
【００６０】
さらに別の例では、この要求は、１つ以上のテキスト入力フィールドに関連するメタデータを含んでもよい。このメタデータは、その他のデータについての情報を提供するデータまたは情報であってもよい（たとえば、記述メタデータ（発見および識別などの目的でリソースを記述しており、タイトル、要約、作者、およびキーワードなどの要素を含み得る）、構造メタデータ（データのコンテナについての構造メタデータであり、複合オブジェクトがどのように組み立てられているか、たとえば、章を構成してデジタル素材および管理メタデータ（リソースがいつ、どのように作られたか、ファイルタイプおよびその他の技術情報、ならびにリソースにアクセスできる人物など、リソースを管理するのに役立つ情報を提供し得る）のタイプ、バージョン、関係性、およびその他の特徴を記述するために頁がどのように順序付けされているかなど、を示してもよい。）。
【００６１】
ブロック２３０において、方法２００は、オートフィル要求に応答して、ＵＩ上にアプリケーションによって表示されるテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値をリモートプロバイダから受け付けるステップをさらに含んでもよい。一般に、リモートプロバイダから受け付けた応答は、自動入力を容易にする際にオペレーティングシステムにもリモートプロバイダにも役立つデータを提供してもよい。
【００６２】
一例では、応答は、以前にユーザによって入力されたおよび／またはアプリケーションまたはその他のアプリケーションにおいて自動入力されたユーザ値と相関しているとリモートプロバイダが信じる１つ以上の候補ユーザ値に基づいて自動入力を容易にする際にオペレーティングシステムにとって役立つデータを含んでもよい。これにより、リモートプロバイダは、将来、ユーザに面倒をかけたりユーザの入力に頼ることなく、アプリケーションおよびＵＩを介してユーザにオートフィル値を提案しようと試みる前に入力フィールドに自動入力を行えるようにアプリケーションにおいてテキスト入力フィールドを特定できるようになることを期待して、オペレーティングシステムに候補ユーザ値を提供してもよい。
【００６３】
しかしながら、同時に、オペレーティングシステムは、リモートプロバイダによる、（過剰な量の候補ユーザ値を、それらのいくつかが最終的にアプリケーション上の表示テキスト入力フィールドに一致するであろうと期待して送信することによって）オートフィル値をユーザに提案するための最良の方法を特定するために行われる「ブルートフォース（総当たり）」攻撃に圧倒されたくはないであろう。このブルートフォース攻撃を根絶するために、オペレーティングシステムは、複数の戦術を利用し得る。
【００６４】
一例では、オペレーティングシステムは、１つ以上の予め定められた要因に基づいてリモートプロバイダから受け付ける候補ユーザ値の総数を限定するインターフェースを介してリモートプロバイダから候補ユーザ値を受け付けることができる。たとえば、このようなインターフェースは、候補ユーザ値の所定最大数に基づいて候補ユーザ値の全体数を限定し得る（たとえば、インターフェースは、任意の１つのリモートプロバイダから１０個を超える候補ユーザ値を認めない）。別の例では、インターフェースは、テキスト入力フィールドごとの候補ユーザ値の数を、候補ユーザ値のフィールド当たりの所定最大数に限定し得る（たとえば、インターフェースは、テキスト入力フィールド当たり３個を超える候補ユーザ値を認めない）。
【００６５】
さらに他の例では、インターフェースは、候補ユーザ値自体の特徴を、候補ユーザ値の１つ以上の特性または特徴に基づいて限定し得る。たとえば、インターフェースは、１つの特徴（たとえば、所定最小文字数）または複数の特徴（たとえば、インターフェースは、候補ユーザ値が数字のみを含む場合、１つ以上の候補ユーザ値の各々を第１の所定最小文字数に限定し、候補ユーザ値が少なくとも１つの数値以外の文字を含む場合、第２の所定最小文字数に限定し得る）に基づいて１つ以上の候補ユーザ値の各々を限定し得る。
【００６６】
また、リモートプロバイダの候補ユーザ値と同様に、オペレーティングシステムは、オペレーティングシステムのオートフィル要求に応答してリモートプロバイダから受け付けるフィールド分類要求の種類または数を限定したいと思うであろう。たとえば、インターフェースは、フィールド分類要求の所定最大数（たとえば、インターフェースは、任意の１つのリモートプロバイダから１０個を超えるフィールド分類要求を認めない）または、リモートプロバイダがフィールド分類要求を提供する頻度（インターフェースは、いずれのリモートプロバイダからも、１時間当たり１０個を超えるフィールド分類要求を認めない）に基づいてフィールド分類要求の全体数を限定し得る。
【００６７】
別の例では、インターフェースは、フィールド分類要求の数を、アプリケーションのユーザ入力フィールドの数に基づいて限定し得る（たとえば、インターフェースは、２つのユーザ入力フィールドしか存在しないことを理由に、１０個を超えるフィールド分類要求を認めない。）。また、同様に、インターフェースは、テキスト入力フィールドごとのフィールド分類要求の数を、フィールド分類要求のフィールド当たりの所定最大数に限定し得る（たとえば、インターフェースは、テキスト入力フィールド当たり３個を超えるフィールド分類要求を認めない）。
【００６８】
候補ユーザ値およびフィールド分類要求に加えて、リモートプロバイダは、オペレーティングシステムのオートフィル要求に応答して、オペレーティングシステムがオートフィルを容易にする際に有用な追加情報を提供してもよい。たとえば、候補ユーザ値およびフィールド分類要求に加えて、リモートプロバイダは、アプリケーションが表示する追加のテキスト入力フィールドに対するオートフィル値を提供してもよい（たとえば、リモートプロバイダは、さらに解析を行うことなく特定の追加のテキスト入力フィールドに対して自動入力するよう提案され得るオートフィル値を有していると分かっていてもよい）。また、これに応答して、いくつかの例では、オペレーティングシステムは、追加のテキスト入力フィールドにオートフィル値を表示させてもよい。
【００６９】
しかしながら、これらのシナリオのいずれにおいても、リモートプロバイダは、オペレーティングシステムの期待もしくはインターフェースの限定、またはその両方に応えられていない可能性がある。そして、そうすることによって、リモートプロバイダによるアクセスを限定してしまうようにオペレーティングシステムが対応してしまうことにつながり得る。たとえば、オペレーティングシステムのリソースまたはその一部の所定の割り当て分が、本明細書に記載の処理に充てられていてもよい（たとえば、リモートプロバイダから候補ユーザ値およびフィールド分類要求を受け付けるために、オペレーティングシステムの所定システムリソース割り当て５％が充てられている）。さらには、いくつかの例では、この所定のリソース割り当てが超過したと判断した場合、オペレーティングシステムは、それを改善する動作を行ってもよい（たとえば、所定のリソース割り当て５％が超過したと判断することに応答して、オペレーティングシステムは、リモートプロバイダから候補ユーザ値またはフィールド分類要求をさらに受け付けることを拒否してもよい）。
【００７０】
ブロック２４０において、方法２００は、テキスト入力フィールドにユーザ入力値を検出するステップをさらに含んでもよい。ユーザ入力値は、ユーザが個々の文字、数字、または単語を入力（たとえば、キー入力）した場合に一定期間受け付けられてもよい。また、いつオペレーティングシステムが採点メトリックを生成してフィールド分類要求に対する応答を提供することができるかを判断するために、オペレーティングシステムは、フィールド分類要求を受け付けたテキスト入力フィールドを監視してもよい。
【００７１】
ブロック２５０において、方法２００は、テキスト入力フィールドにユーザ入力値を検出することに応答して、１つ以上の候補ユーザ値の各々に対するユーザ入力値の比較に基づいて当該１つ以上の候補ユーザ値の各々についての類似度メトリックを決定するステップをさらに含んでもよい。
【００７２】
いくつかの例では、この類似度メトリックは、リモートプロバイダが提供する候補ユーザ値のうちの１つ以上にユーザ入力された値がどれくらい類似しているかに基づいて生成されるスコアで表されてもよい（たとえば、マッチがどれくらい正確であったかを伝えるスコア。ここで、このスコアは、テキスト入力フィールドＩｄに対応付けられたすべての候補ユーザ値の中で最高スコアである）。すなわち、１つのユーザ入力された値が（たとえば、ｅｍａｉｌ値が提案されている）第１のフィールド分類要求に対応する候補ユーザ値と完全一致（１００％）であり、第２のフィールド分類要求（たとえば、ユーザ名が提案されている）に対応する別の候補ユーザ値に部分的にのみ一致（たとえば、４０％）した場合、第１のフィールド分類要求に対応する類似度メトリックのほうが優れた一致であるとリモートプロバイダによって認識され得る。そのため、リモートプロバイダは、このフィールドがユーザ名フィールドよりもｅｍａｉｌフィールドである可能性が高いと結論付け得る。
【００７３】
さらには、これらの類似度メトリックの演算の基盤となる方法（たとえば、基盤となる比較モデルまたはアルゴリズム）は、異なってもよい（たとえば、文字列マッチングモデルまたは編集距離モデル）。別の態様では、これらの方法は、動的であってもよい（たとえば、基盤となる比較モデルがオートフィル要求間で更新可能であり、それどころか、関連ソースまたはサードパーティソース（たとえば、Ｇｏｏｇｌｅ  Ｐｌａｙストア）を通して取得されてもよい）。
【００７４】
また、これに加えて、リモートプロバイダによって選択可能であってもよい（たとえば、オペレーティングシステムは、基盤となる比較モデルのリストをリモートプロバイダに送信し、リモートプロバイダが選択した基盤となる比較モデルに基づいて、当該選択された基盤となる比較モデルを適用することによって１つ以上の候補ユーザ値の各々についての類似度メトリックを決定してもよい）。別の態様では、設定されていない場合、１つ以上の要因に基づいてオペレーティングシステムによってデフォルト方法（たとえば、アルゴリズム）が使われてもよい（たとえば、最も一般的に使われるモデルは、編集距離に基づくモデルであり得るため、デフォルトのマッチング方法として使われ得る）。
【００７５】
ブロック２６０において、方法２００は、フィールド分類要求に対する応答をリモートプロバイダに送信するステップをさらに含んでもよい。この応答は、１つ以上の候補ユーザ値のうちの少なくとも１つの候補ユーザ値についての類似度メトリックを含む。いくつかの例では、この類似度メトリックの送信は、判断を行わない送信であってもよい（たとえば、オペレーティングシステムは、リモートプロバイダによって送信された候補ユーザ値ごとにスコアを生成し、さらなる解析を行うことなくリモートプロバイダに送り返す）。言い換えると、いくつかの例では、リモートプロバイダから受け付けた１つ以上の候補ユーザ値は、複数の候補ユーザ値を含んでいる場合があり、これに応答して、オペレーティングシステムは、候補ユーザ値のすべてについて類似度メトリックを生成し、複数の候補ユーザ値の各々についての類似度メトリックを送信してもよい。しかしながら、その他のいくつかの例では、この送信は、より対象を絞ったアナリティカルな送信であってもよい。
【００７６】
たとえば、いくつかの実施の形態では、リモートプロバイダから受け付けた１つ以上の候補ユーザ値は、複数の候補ユーザ値を含んでもよく、これに応答して、オペレーティングシステムは、候補ユーザ値のすべてについて類似度メトリックを生成するが、複数の候補ユーザ値のうち最も一致するユーザ値についての類似度メトリックのみを送信してもよい。
【００７７】
ＩＶ．別の例示的な実施の形態
さらに別の例では、フィールド分類要求は、複数のテキスト入力フィールドを示し得る。いくつかの例では、同じセットの候補ユーザ値を使用して、テキスト入力フィールドの各々についての類似度メトリックを生成してもよい。オペレーティングシステムは、追加のテキスト入力フィールドに追加のユーザ入力値を検出してもよい。次に、追加のテキスト入力フィールドに追加のユーザ入力値を検出することに応答して、オペレーティングシステムは、１つ以上の候補ユーザ値の各々に対する追加のユーザ入力値の比較に基づいて当該１つ以上の候補ユーザ値の各々についての追加の類似度メトリックを決定し得る。これに加えて、オペレーティングシステムは、追加の応答をリモートプロバイダに送信してもよい。この追加の応答は、１つ以上の候補ユーザ値のうちの少なくとも１つについての追加の類似度メトリックを含む。
【００７８】
その他の例では、異なるセットの候補ユーザ値を使用して、テキスト入力フィールドの各々についての類似度メトリックを生成してもよい。オペレーティングシステムは、オートフィル要求に応答して、１つ以上の追加の候補値をリモートプロバイダから受け付ける。当該１つ以上の追加の候補値は、１つ以上の候補ユーザ値とは異なる。また、別の態様では、オペレーティングシステムは、追加のテキスト入力フィールドに追加のユーザ入力値を検出してもよい。次に、追加のテキスト入力フィールドに追加のユーザ入力値を検出することに応答して、オペレーティングシステムは、１つ以上の追加の候補値の各々に対する追加のユーザ入力値の比較に基づいて当該１つ以上の追加の候補値の各々についての追加の類似度メトリックを決定してもよい。また、さらに別の態様では、オペレーティングシステムは、追加の応答をリモートプロバイダに送信してもよい。この追加の応答は、１つ以上の追加の候補値の少なくとも１つについての追加の類似度メトリックを含む。
【００７９】
Ｖ．追加の説明図および例示的な実施の形態
第１モバイル機器上のアプリケーションとの第１のユーザのやり取りに基づいて、図３Ａは、例示的な実施の形態に係る、オペレーティングシステムがオートフィル要求をリモートプロバイダに送信し、フィールド分類要求と１つ以上の候補ユーザ値とをリモートプロバイダから受け付ける様子を示す。特に、携帯電話などのユーザデバイス３０２は、アプリケーション３０４の一部をユーザデバイス上に表示してもよい。また、アプリケーション３０４は、ユーザデバイス３０２のＵＩ上に表示された共通のオートフィル記述子３０６（たとえば、「Ｅｍａｉｌ」）を含んだまたはこれに対応付けられたテキスト入力フィールドを含んでもよい。この例では、ユーザデバイス３０２のオペレーティングシステムが共通のオートフィル記述子３０６を認識すると、オペレーティングシステムは、オートフィル要求３０８をリモートプロバイダ３１０に送信してもよい。
【００８０】
これに加えてこの例では、上述したように、このオートフィル要求３０８は、何らかのフォーカスがセットされたアプリケーションのテキスト入力フィールド（ここでは、表示キーボードを介してフィールドにテキストをキー入力することができることを示す縦線が「Ｅｍａｉｌ」テキスト入力フィールドにある）および／またはこのようなフォーカスがないテキスト入力フィールド（ここでは、「パスワード」テキスト入力フィールドは、このような縦線を有さない）に応答する要求であってもよい。
【００８１】
しかしながら、これらのシナリオのいずれにおいても、オペレーティングシステムは、このようなオートフィル要求を送信する前に、ＵＩ上に表示された、ユーザ固有情報を除外したコンテンツのサブセットを決定する。このサブセットがオペレーティングシステムによって決定され、オペレーティングシステムがオートフィル要求を生成して送信するための何らかのイベントがトリガされると、オペレーティングシステムは、このオートフィル要求（ここでは、オートフィル要求３０８として示され、ＵＩ上に表示されるコンテンツのサブセットを含んでいる）を生成してリモートプロバイダに送信する。
【００８２】
リモートプロバイダがオートフィル要求を受け付けると、少なくとも２つの情報をオペレーティングシステムに提供してもよい。（１）候補ユーザデータ３１２（候補ユーザ値「ｆｅｌｉｐｅ＠ｘ．ｃｏｍ」および「ＬｅｍｅＦ」を含む）、および（２）フィールド分類要求３１４（ここでは、「ａｕｔｏｆｉｌｌＩｄ１」と示す）。
【００８３】
第１のポイントを考えると、１つ以上の候補ユーザ値は、オペレーティングシステムがオートフィル要求３０８を送信するアプリケーションを自動入力することに関連し得るデータとしてリモートプロバイダによって提供され得る。ここでも、この例では、２つの候補ユーザ値は、「ｆｅｌｉｐｅ＠ｘ．ｃｏｍ」および「ＬｅｍｅＦ」と示す。
【００８４】
本実施の形態の文脈において、以前に入力された候補ユーザデータ３１２がＵｓｅｒＤａｔａオブジェクトによって定義され、ｉｄと、ｆｉｅｌｄ＿ｉｄ→ｌｉｓｔ＿ｏｆ＿ｖａｌｕｅｓのマップとのペアを含んでもよい。ここで、ｉｄは、ユーザデータ全体を識別し（そのため、新バージョンの作成に使用され得る）、ｆｉｅｌｄ＿ｉｄは、フィールドタイプを表し、ｌｉｓｔ＿ｏｆ＿ｖａｌｕｅｓは、そのフィールドに対応付けられたユーザ入力値のリストである。この例では、ｆｉｅｌｄ＿ｉｄ「ｅｍａｉｌ」が「ｆｅｌｉｐｅ＠ｘ．ｃｏｍ」という値にマッピングされ、ｆｉｅｌｄ＿ｉｄ「ｕｓｅｒｎａｍｅ」が「ＬｅｍｅＦ」にマッピングされる。
【００８５】
また、本実施の形態の文脈において、ｉｄおよびｆｉｅｌｄ＿ｉｄの両方は、リモートプロバイダによって設定される任意の値であり、オペレーティングシステムによってブラックボックスとして扱われてもよいが、これらの処理をデバッグするのに役立つ意味のある値を含んでもよい。たとえば、そのような値を含んでいる場合、オペレーティングシステムは、この処理を下記に例示するコードを介して解析し得る。
【００８６】
【数１】
2021517297.tif 000003
【００８７】
さらには、いくつかの実施の形態では、ＵｓｅｒＤａｔａは、リモートプロバイダに関連する、キャッシュされたオブジェクトであってもよいため、複数の要求において使われてもよい。別の態様では、そうしないことを選択する１つ以上の理由があり得るため（たとえば、セキュリティ目的）、ＵｓｅｒＤａｔａは、永続化されなくてもよく（すなわち、一時的に格納される）、代わりに、オペレーティングシステムの再起動時または現在のユーザのリモートプロバイダが変更されたときもしくはリモートプロバイダがＵｓｅｒＤａｔａをリセットするときにクリアされてもよい。この点に関して、リモートプロバイダは、自動入力処理をさらに進める前に、ＵｓｅｒＤａｔａが設定されているかどうかをチェックしてもよい。例を以下に示す。
【００８８】
【数２】
2021517297.tif 000004
【００８９】
また、さらに別の実施の形態では、リモートプロバイダは、新バージョンの作成にｉｄを使用してもよい。例を以下に示す。
【００９０】
【数３】
2021517297.tif 000005
【００９１】
また、第２のポイントを説明すると、オペレーティングシステムが同一ユーザまたは異なるユーザに関するオートフィル要求３０８を送信したアプリケーションの自動入力を容易にすることを促進する際にリモートプロバイダによってフィールド分類要求３１４が提供されてもよい。この例では、フィールド分類要求は、「ａｕｔｏｆｉｌｌＩｄ１」と示す。
【００９２】
本実施の形態の文脈において、リモートプロバイダは、ＦｉｌｌＲｅｓｐｏｎｓｅオブジェクトにおいてフィールド分類を明示的に要求してもよく、どのフィールドにおいてこのオブジェクトが使われるかを指定する。例を以下に示す。
【００９３】
【数４】
2021517297.tif 000006
【００９４】
別の態様では、オートフィルコンテキストがコミットされたとき、オペレーティングシステムは、リモートプロバイダが提供する２つの候補ユーザ値（「ｆｅｌｉｐｅ＠ｘ．ｃｏｍ」および「ＬｅｍｅＦ」として示されている）のいずれかが、ユーザが指示されたフィールド分類要求（ここでは、「ａｕｔｏｆｉｌｌＩｄ１」として示されている）に対して手入力する値のいずれかと一致するかどうかを検証してもよい。しかしここでも、オートフィル値を提案するための最良の方法を特定するために行われるブルートフォース攻撃に圧倒されたくないので、オペレーティングシステムは、リモートプロバイダが送信した過剰な量の候補ユーザ値またはフィールド分類要求を、詳細を上述したような複数の戦術によって削減してもよい。
【００９５】
図３Ｂを参照すると、図３Ｂは、第１モバイル機器上のアプリケーションのテキスト入力フィールドへのユーザの第１のデータ手入力を示す。これに加えて、図３Ｂは、結果として生じる、ユーザ入力データに基づいてオペレーティングシステムによって行われる１つ以上の類似度メトリックの生成およびリモートプロバイダへの送信を示す。
【００９６】
特定的には、図３Ｂは、ユーザが第１テキスト入力フィールド３０６（ここでは、「Ｅｍａｉｌ」テキスト入力フィールド）にユーザ入力値３１６（ここでは、「ｆｅｌｉｐｅ＠ｘ．ｃｏｍ」）を手入力し得る様子を示す。これに応答して、オペレーティングシステムは、テキスト入力フィールド３０６にユーザ入力値３１６を検出し、このユーザ入力値３１６と候補ユーザデータ３１２の１つ以上の値の各々との比較に基づいてこれらの１つ以上の値の各々についての類似度メトリックの決定を開始してもよい。この点に関して、オペレーティングシステムは、ユーザが入力したデータを、ユーザデバイスに格納することなく解析および採点してもよい。これは、リモートプロバイダ３１０の将来の自動入力作業への手助けとなり得る（ユーザデバイス３０２上または異なるユーザデバイス上でアプリケーション３０４が動作するという両方の状況において）。
【００９７】
特に、本実施の形態の文脈において、リモートプロバイダは、既存のＦｉｌｌＥｖｅｎｔＨｉｓｔｏｒｙメカニズムを利用することによってこの処理の結果を検証してもよい。ＦｉｌｌＥｖｅｎｔＨｉｓｔｏｒｙとは、以前のオートフィルセッションで発生したイベントについてリモートプロバイダがオペレーティングシステムに問い合わせることを可能にするＡＰＩである。ＴＹＰＥ＿ＣＯＮＴＥＸＴ＿ＣＯＭＭＩＴＴＥＤというタイプのイベントは、ユーザが画面上で送信した（コミットした）イベントを表す。その画面上でサービスプロバイダがフィールド分類を要求してその要求が受け付けられた場合、結果がＦｉｌｌＥｖｅｎｔＨｉｓｔｏｒｙオブジェクトで入手可能になる。また、リモートプロバイダは、ｇｅｔＦｉｅｌｄｓＣｌａｓｓｉｆｉｃａｔｉｏｎ（）を呼び出すことによって結果を検証してもよい。ｇｅｔＦｉｅｌｄｓＣｌａｓｓｉｆｉｃａｔｉｏｎ（）は、「ａｕｔｏｆｉｌｌＩｄ１」などの識別子によって連想配列されたＦｉｅｌｄＣｌａｓｓｉｆｉｃａｔｉｏｎオブジェクトのマップを返してもよい。これらの識別子（たとえば、連番の識別子）は、ビューを特定するためにオペレーティングシステムによって提供されてもよく、リモートプロバイダは、識別子を利用して、リモートプロバイダがフィールド分類を要求しているビューがどのビューであるかをオペレーティングシステムに知らせてもよい。
【００９８】
また、別の態様では、ＦｉｅｌｄＣｌａｓｓｉｆｉｃａｔｉｏｎオブジェクトは、自動入力されたｉｄにどのテキスト入力フィールド（そのｆｉｅｌｄＩｄによって識別される）が一致するのかを表し得るＭａｔｃｈオブジェクトを含んでもよい。また、Ｍａｔｃｈオブジェクトは、一致がどれくらい正確であったかを知らせるスコアも含んでもよい（たとえば、このスコアは、テキスト入力フィールドｉｄに対応付けられたすべてのユーザ値の中で最高スコアである）。たとえば、ユーザが「ｆｅｌｉｐｅ＠ｘ．ｃｏｍ」を「ａｕｔｏｆｉｌｌＩｄ１」フィールドに入力した場合、オペレーティングシステムによって返される結果は、下記の例で表されてもよい。
【００９９】
【数５】
2021517297.tif 000007
【０１００】
言い換えると、この例では、「ａｕｔｏｆｉｌｌＩｄ１」フィールドのスコアは、「ｅｍａｉｌ」というｆｉｅｌｄ＿ｉｄに対応するユーザ値と１００％マッチであった（すなわち、ユーザが入力したユーザ入力値３１６「ｆｅｌｉｐｅ＠ｘ．ｃｏｍ」は、候補ユーザデータ３１２およびフィールド分類要求３１４で提示された「ｆｅｌｉｐｅ＠ｘ．ｃｏｍ」と完全に一致した）。
【０１０１】
別の態様では、マッチスコアを定義するために用いられるメソッドおよびアルゴリズムは、ＵｓｅｒＤａｔａ．Ｂｕｉｌｄｅｒ．ｓｅｔＦｉｅｌｄＣｌａｓｓｉｆｉｃａｔｉｏｎＡｌｇｏｒｉｔｈｍ（）メソッド（アルゴリズムおよびオプションの引数の名前をとる）によって定義されてもよいが、特に、リモートプロバイダによって指定されない場合、デフォルトアルゴリズムが使われてもよい。
【０１０２】
さらに別の態様では、オペレーティングシステムは、フィールド分類要求３１４に対する応答を生成してリモートプロバイダ３１０に送信してもよい。この応答は、類似度メトリック３１８を含む。リモートプロバイダ３１０は、アプリケーションに対する将来の自動入力を向上させるために類似度メトリック３１８を使用してもよい。
【０１０３】
図３Ａと同様に、第２モバイル機器上のアプリケーションとの第２のユーザのやり取りに基づいて、図４Ａは、例示的な実施の形態に係る、オペレーティングシステムがオートフィル要求をリモートプロバイダに送信し、フィールド分類要求と１つ以上の候補ユーザ値とをリモートプロバイダから受け付ける様子を示す。特に、（ユーザデバイス３０２と同様に）ユーザデバイス４０２は、アプリケーション３０４の一部をユーザデバイス４０２上に表示してもよい。また、アプリケーション３０４は、ユーザデバイス４０２のＵＩ上に表示された共通のオートフィル記述子３０６（たとえば、「Ｅｍａｉｌ」）を含んだまたはこれに対応付けられたテキスト入力フィールドを含んでもよい。
【０１０４】
図３Ａと同様に、図４Ａのオペレーティングシステムは、このオートフィル要求（ここでは、オートフィル要求４０８として示され、ＵＩ上に表示されるコンテンツのサブセットを含んでいる）を生成してリモートプロバイダに送信する。また、図３Ａと同様に、図４Ａのオペレーティングシステムは、少なくとも２つの情報をリモートプロバイダから提供されてもよい。（１）候補ユーザデータ４１２（ここでは、「ｊａｓｏｎ＠ｙ．ｃｏｍ」および「ＬｏｎｇＪ」と示す）および（２）フィールド分類要求４１４（ここでは、「ａｕｔｏｆｉｌｌＩｄ１」と示す）。
【０１０５】
図４Ｂを参照すると、第１モバイル機器上のアプリケーションのテキスト入力フィールドへのユーザの第２のデータ手入力が示されている。図３Ｂと同様に、図４Ｂは、ユーザが第１テキスト入力フィールド３０６（ここでは、「Ｅｍａｉｌ」テキスト入力フィールド）にユーザ入力値４１６（ここでは、「ｊａｓｏｎ＠ｘ．ｃｏｍ」）を手入力し得る様子を示す。図３Ｂと同様に、テキスト入力フィールド３０６にユーザ入力値４１６を検出することに応答して、オペレーティングシステムは、このユーザ入力値４１６と候補ユーザデータ４１２の１つ以上の値の各々との比較に基づいてこれらの１つ以上の値の各々についての類似度メトリックの決定を開始してもよい。
【０１０６】
ここでも、この点に関して、オペレーティングシステムは、ユーザが入力したデータを、ユーザデバイスに格納することなく解析して採点してもよい。これは、リモートプロバイダ３１０の将来の自動入力の試みへの手助けとなる（ユーザデバイス３０２上、ユーザデバイス４０２上、または異なるユーザデバイス上でアプリケーション３０４が動作するといういずれの状況において）。
【０１０７】
しかしながら、図３Ｂとは異なり、候補ユーザデータ４１２およびユーザ入力値４１６の状況における「ａｕｔｏｆｉｌｌＩｄ１」フィールドのスコアは、９０％のスコアを出す（すなわち、ユーザが入力した４１６「ｊａｓｏｎ＠ｘ．ｃｏｍ」は、ユーザ候補データ４１２およびフィールド分類要求４１４で提示された「ｊａｓｏｎ＠ｙ．ｃｏｍ」とわずか９０％マッチである）。
【０１０８】
これに加えて、図３Ｂと同様に、図４Ｂのオペレーティングシステムは、フィールド分類要求に対する応答４１４を生成してリモートプロバイダ３１０に送信してもよい。この応答は、類似度メトリック４１８を含んでもよい。リモートプロバイダ３１０は、少なくとも類似度メトリック３１８と４１８とを使用してアプリケーション３０４のために自動入力サービスを提供してもよい。このように、例示的な実施の形態は、複数のユーザからのユーザ入力データを用いたクラウドソーシングを活用して、ユーザの同意なしにセンシティブなユーザ情報を漏らすことなくリモートプロバイダを素早く訓練してアプリケーションのフィールドを理解させる。さらにこの点に関して、リモートプロバイダがユーザに提案するための候補ユーザ値を有するためには、リモートプロバイダは、ユーザの同意を予め得ておかなければならない。したがって、本実施の形態は、ユーザの同意なしに不明または手当たり次第のリモートプロバイダを支援するオペレーティングシステムを対象としない。
【０１０９】
図３Ａおよび図４Ａと同様に、第３のモバイル機器上のアプリケーションとの第３のユーザのやり取りに基づいて、図５は、例示的な実施の形態に係る、オペレーティングシステムがオートフィル要求をリモートプロバイダに送信する様子を示す。特に、（ユーザデバイス３０２および４０２と同様に）ユーザデバイス５０２は、アプリケーション３０４の一部をユーザデバイス５０２上に表示してもよい。同様に、アプリケーション３０４は、ユーザデバイス５０２のＵＩ上に表示された共通のオートフィル記述子３０６（たとえば、「Ｅｍａｉｌ」）を含んだまたはこれに対応つかられたテキスト入力フィールドを含んでもよい。
【０１１０】
図５を参照すると、オペレーティングシステムは、（ここでは、５０８と示され、ＵＩ上に表示されるコンテンツのサブセットを含んでいる）オートフィル要求を生成し、ここでもリモートプロバイダ３１０に送信してもよい。しかしながら、図３Ａおよび図４Ａの例示的な実施の形態とは異なり、図５の例示的な実施の形態におけるオペレーティングシステムは、フィールド分類要求や１つ以上の候補ユーザ値を提示しないが、代わりに、オートフィル値（ここでは、「ｅｍａｉｌ」フィールドの「ｊｉｍ＠ｙ．ｃｏｍ」と示す）が提示され、その後、この値がテキスト入力フィールド３０６に自動入力されてもよい。
【０１１１】
具体的には、この例示的な実施の形態では、リモートプロバイダ３１０は、オペレーティングシステムの少なくとも２つの類似度メトリック（３１８および４１８）の恩恵を受けていた可能性があるので、具体的な候補ユーザ値（ここでは、「ｊｉｍ＠ｙ．ｃｏｍ」）、およびこの値が入力される具体的なテキスト入力フィールド（ここでは、「ｅｍａｉｌ」フィールド）の両方を含んだオートフィル値５１０を候補に挙げることができる信頼を築き上げている可能性がある。よって、本実施の形態での結果として、ユーザデバイス５０２のオペレーティングシステムは、ユーザデバイス３０２および４０２のオペレーティングシステムの作業および解析ならびにリモートプロバイダ３１０のすべてを、ユーザデバイス３０２、４０２、または５０２の具体的なユーザコンテンツを漏らすことなくセキュアに活用している。
【０１１２】
また、別の態様では、図５において、オペレーティングシステムは、ＵＩ上に表示されたアプリケーションのテキスト入力フィールドが自動入力されたことをユーザに知らせるための確認メッセージ５１２を表示してもよい。また、別の例では、オペレーティングシステムは、オートフィル処理中にオペレーティングシステムによって入力されたアプリケーションのテキスト入力フィールドのデータがクリアされ得ることをユーザに知らせるためのやり直しプロンプト５１４を表示してもよい。
【０１１３】
ＶＩ．さらなる課題および提案ソリューション
しかしながら、いくつかの別の態様では、オートフィル処理の実行が相当な負担であると思われるため、オペレーティングシステムの全体的な性能に悪影響である可能性がある。上述した例のうちの１つでは、フィールド分類機能は、下記の理由のうち１つ以上を理由にユーザデバイスの調子および性能に悪影響を与え得る。（１）リモートプロバイダがある作業についての自動入力を出来ずにＮｕｌｌ応答を返した場合、オペレーティングシステムは、その作業についてのオートフィルを一時的に無効化し得る。しかし、リモートプロバイダがＮｕｌｌを返す代わりにフィールド分類を設定した場合、セッションは開かれたままであってもよい。（２）オペレーティングシステムが、ユーザの入力値をメモリに保持してもよい。（３）オペレーティングシステムがコミット時にフィールド分類マッチを演算してからリモートプロバイダに送信してもよい。これは、Ｏ（Ｎ×Ｍ）演算（およびデータ構造）であってもよい（ここで、Ｎは、ユーザ入力値の入力の数であり、Ｍは、分類可能なフィールドの数である）。
【０１１４】
オペレーティングシステムの性能に与える影響を全体的に軽減させるために、オペレーティングシステムによって下記の緩和措置のうちの１つ以上が自動入力処理時に採り入れられてもよい。（１）候補ユーザ値の所定最大数に基づいて候補ユーザ値の全体数を限定する（たとえば、インターフェースは、いずれのリモートプロバイダからも、１０個を超える候補ユーザ値を認めない）。（２）テキスト入力フィールドごとの候補ユーザ値の数を、候補ユーザ値のフィールド当たりの所定最大数に限定する（たとえば、インターフェースは、テキスト入力フィールド当たり３個を超える候補ユーザ値を認めない）。（３）候補ユーザ値自体の特徴を、候補ユーザ値の１つ以上の特性または特徴に基づいて限定する（たとえば、所定最小文字数。１つ以上の候補ユーザ値の各々が数字のみを含む場合、当該候補ユーザ値を第１の所定最小文字数に限定し、少なくとも１つの数値以外の文字を含む場合、第２の所定最小文字数に限定する）。（４）フィールド分類要求の全体数を、フィールド分類要求の所定最大数に基づいて限定する（たとえば、インターフェースは、いずれのリモートプロバイダからも、１０個を超えるフィールド分類要求を認めない）。リモートプロバイダがフィールド分類要求を提供する頻度を限定する（たとえば、インターフェースは、いずれのリモートプロバイダからも、１時間当たり１０個を超えるフィールド分類要求を認めない）。（５）フィールド分類要求の数を、ユーザ入力フィールドの数に基づいて限定する（たとえば、インターフェースは、２つのユーザ入力フィールドしか存在しない場合、１０個を超えるフィールド分類要求を認めない）。（６）テキスト入力フィールドごとのフィールド分類要求の数を、フィールド分類要求のフィールド当たりの所定最大数に限定する（たとえば、インターフェースは、テキスト入力フィールド当たり３個を超えるフィールド分類要求を認めない）。（７）応答がフィールド分類のみを有する場合（たとえば、上述したＮｕｌｌ応答のシナリオ）、ワークフローを最適化する。
【０１１５】
また、別の態様において、これらのシナリオでは、リモートプロバイダは、異なるサービスまたは関連サービス（たとえば、ＵｓｅｒＤａｔａ．ｇｅｔＭａｘＦｉｅｌｄｓＳｉｚｅ（）、ＵｓｅｒＤａｔａ．ｇｅｔＭａｘＵｓｅｒＤａｔａＳｉｚｅ（）、ＵｓｅｒＤａｔａ．ｇｅｔＭａｘＦｉｅｌｄＣｌａｓｓｉｆｉｃａｔｉｏｎＩｄｓＳｉｚｅ（）、およびＵｓｅｒＤａｔａ．ｇｅｔＭａｘＶａｌｕｅＬｅｎｇｔｈ（））のホストと通信を行うまたは当該ホストを通して通信を行うことによって受け付けられる最大値をチェックしてもよい。また、これらの値は、ユーザ設定によって定義されてもよく、リモートサーバによる実行中に調整されてもよく、その他の方法によって設定されてもよい。また、同様に、リモートプロバイダは、ＡｕｔｏｆｉｌｌＭａｎａｇｅｒ．ｉｓＦｉｅｌｄＣｌａｓｓｉｆｉｃａｔｉｏｎＥｎａｂｌｅｄ（）を呼び出して、機能が本当に利用可能であるかどうかをチェックしてもよい（たとえば、速度制限違反などが原因で自動的にオペレーティングシステムを無効化している可能性がある）。
【０１１６】
しかしながら、これらのシナリオのいずれにおいても、リモートプロバイダは、オペレーティングシステムの期待またはインターフェースの限定に応えられていない可能性があり、自身の保全のために、オペレーティングシステムは、それに従って応えてもよい。たとえば、オペレーティングシステムのリソースまたはその一部の所定の割り当て分が、本明細書に記載の処理に充てられていてもよい（たとえば、リモートプロバイダから候補ユーザ値およびフィールド分類要求を受け付けるために、オペレーティングシステムの所定システムリソース割り当て５％が充てられている）。さらには、いくつかの例では、この所定のリソース割り当てが超過したと判断した場合、オペレーティングシステムは、それを改善する動作を行ってもよい（たとえば、所定のリソース割り当て５％が超過したと判断することに応答して、オペレーティングシステムは、リモートプロバイダから候補ユーザ値またはフィールド分類をさらに受け付けることを拒否してもよい）。
【０１１７】
さらに別の態様では、自動入力処理におけるオペレーティングシステムのユーザデータの解析および採点を理由に、セキュリティがユーザの課題である場合がある。ここでも、ユーザが入力した値をオペレーティングシステムがリモートプロバイダに直接知らせることはないが、リモートプロバイダは、粘り強くブルートフォースを使ってこれらの値を算出しようと試みたり、算出したりするであろう。
【０１１８】
一例では、リモートプロバイダは、共通ＰＩＮコード（たとえば、ｐｉｎ１＝｛１１１１｝、ｐｉｎ２＝｛００００｝、ｐｉｎ３＝｛１２３４｝など）のリストおよび候補ユーザ値を送信してから、これらの値のうちの１つが１００％マッチの場合に確認を得ることができる。さらには、この点に関して、リモートプロバイダがこの処理を多くのユーザ（たとえば、数千人のユーザ）に対して繰り返し実行した場合、リモートプロバイダは、一致するものを最終的に見つけるであろう。この「ブルートフォース」攻撃のリスクを軽減させるために、いくつかの実施の形態では、オペレーティングシステムは、詳細を上述した保護作業のうちの１つ以上の作業に取りかかってもよい。
【０１１９】
また、別の態様では、いくつかの実施の形態では、オペレーティングシステムは、（たとえば、ＵｓｅｒＤａｔａに追加できるフィールドの数を（ＵｓｅｒＤａｔａ．ｇｅｔＭａｘＦｉｅｌｄＳｉｚｅ（）によって限定し、最小文字数を（ＵｓｅｒＤａｔａ．ｇｅｔＭｉｎＶａｌｕｅＬｅｎｇｔｈ（）によって）設定することによって）これらの課題を様々な特定のレベルで（たとえば、これらの値をそれぞれ１０および３に限定する））、複数のその他の方法で軽減させてもよい。最後に、上述したＵｓｅｒＤａｔａにＰＩＩが含まれている可能性があるので、複数の追加対策によってさらに保護されてもよい（たとえば、メモリにのみ保持されてもよい（すなわち、デバイスが再起動した時にディスク上に残らない）。その値は、（ｔｏＳｔｒｉｎｇ（）、ｄｕｍｐ（）、ｌｏｇ（）上などに）ログ記録されない）。
【０１２０】
ＶＩＩ．コンピューティングデバイス
ここで図６を参照すると、図６は、例示的な実施の形態に係る、コンピューティングデバイス６００の機能ブロック図である。特に、図６に示すコンピューティングデバイス６００は、上述したように、サーバ装置１０８および／もしくは１１０、ならびに／またはリモートプロバイダ１１２および／もしくは１１４、ユーザデバイス１０４ａ〜１０４ｅのいずれか、方法２００、ユーザデバイス３０２、ユーザデバイス４０２、および／もしくはユーザデバイス５０２の少なくとも１つの機能を実行するように構成され得る。
【０１２１】
コンピューティングデバイス６００は、ユーザインターフェースモジュール６０１と、ネットワーク通信インターフェースモジュール６０２と、１つ以上のプロセッサ６０３と、データストレージ６０４と、１つ以上のセンサ６２０とを備えてもよく、これらはすべて、システムバス、ネットワーク、またはその他の接続機構６０５を介して互いにリンクされている。
【０１２２】
ユーザインターフェースモジュール６０１は、外部のユーザ入出力装置とデータを送受信するように動作可能であり得る。たとえば、ユーザインターフェースモジュール６０１は、キーボード、キーパッド、タッチスクリーン、存在感知ディスプレイ、コンピュータマウス、トラックボール、ジョイスティック、カメラ、音声認識モジュール、および／またはその他の同様のデバイスなど、ユーザ入力装置とデータを送受信するように構成され得る。また、ユーザインターフェースモジュール６０１は、１つ以上のブラウン管（ＣＲＴ）、液晶ディスプレイ、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）、ＤＬＰ（Ｄｉｇｉｔａｌ  Ｌｉｇｈｔ  Ｐｒｏｃｅｓｓｉｎｇ）技術を採用したディスプレイ、プリンター、電球、および／または現在知られているまたは今後開発されるその他の同様のデバイスなど、ユーザディスプレイデバイスに出力を行うように構成され得る。また、ユーザインターフェースモジュール６０１は、スピーカー、スピーカージャック、オーディオ出力ポート、音声出力装置、イヤホン、および／またはその他の同様のデバイスなど、耳に聞こえる出力（複数可）を生成するように構成することができる。ユーザインターフェースモジュール６０１は、さらに、振動および／またはコンピューティングデバイス６００へのタッチおよび／または物理的な接触によって検出可能なその他出力など、ハプティック出力（複数可）を生成できる１つ以上のハプティックデバイスを有して構成され得る。いくつかの実施の形態では、ユーザインターフェースモジュール６０１を使用して、コンピューティングデバイス６００を利用するためのＧＵＩを提供することができる。
【０１２３】
ネットワーク通信インターフェースモジュール６０２は、ネットワークを介して通信するように構成可能な１つ以上のワイヤレスインターフェース６０７および／または１つ以上の有線インターフェース６０８を含み得る。ワイヤレスインターフェース６０７は、１つ以上のワイヤレストランスミッタ、レシーバ、および／または、Ｂｌｕｅｔｏｏｔｈ（登録商標）トランシーバ、Ｚｉｇｂｅｅ（登録商標）トランシーバ、Ｗｉ−Ｆｉトランシーバ、ＷｉＭＡＸトランシーバ、および／もしくはワイヤレスネットワークを介して通信するように構成可能なその他同様の種類のワイヤレストランシーバなど、トランシーバを含み得る。有線インターフェース６０８は、１つ以上の有線トランスミッタ、レシーバ、および／または、Ｅｔｈｅｒｎｅｔ（登録商標）トランシーバ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）トランシーバ、または、ツイストペア線、同軸ケーブル、光ファイバーリンク、もしくは有線ネットワークへの同様の物理的な接続を介して通信を行うように構成可能な同様のトランシーバなど、トランシーバを含み得る。
【０１２４】
いくつかの実施の形態では、ネットワーク通信インターフェースモジュール６０２は、信頼性が高く、セキュリティ保護され、および／または認証された通信を提供するように構成され得る。各々の通信について、信頼性が高い通信（すなわち、保証されたメッセージ配信）を約束するための情報が、たとえば、メッセージヘッダーおよび／またはフッターの一部として提供され得る（たとえば、パケット／メッセージ配列情報、カプセル化ヘッダー（複数可）および／またはフッター（複数可）、サイズ／時間情報、およびＣＲＣおよび／またはパリティチェック値などの送信検証情報）。通信は、セキュリティ保護され得（たとえば、符号化または暗号化される）、および／または、ＤＥ、ＡＥ、ＲＳＡ、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ、および／またはＤＳＡ（これらに限定されない）など、１つ以上の暗号プロトコルおよび／またはアルゴリズムを用いて復号化／デコードされ得る。本明細書にリストアップしたものに加えて、その他の暗号プロトコルおよび／またはアルゴリズムも用いて通信をセキュリティ保護し、（その後、復号化／デコード）することができる。
【０１２５】
１つ以上のプロセッサ６０３は、１つ以上の汎用プロセッサ、および／または１つ以上の特定用途向けプロセッサ（たとえば、デジタル信号プロセッサ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、特定用途向け集積回路など）を含み得る。１つ以上のプロセッサ６０３は、データストレージ６０４に含まれるコンピュータ読み取り可能なプログラム命令６０６および／または本明細書に記載したようなその他の命令を実行するように構成され得る。
【０１２６】
データストレージ６０４は、１つ以上のプロセッサ６０３のうちの少なくとも１つが読み出しおよび／またはアクセスできる１つ以上のコンピュータ読み取り可能な記憶媒体を含み得る。１つ以上のコンピュータ読み取り可能な記憶媒体は、光、磁気、有機、またはその他のメモリもしくはディスク記憶媒体など、揮発性および／または不揮発性ストレージコンポーネントを含み得、そのすべてまたは一部は、１つ以上のプロセッサ６０３のうちの少なくとも１つに組み込むことができる。いくつかの実施の形態では、データストレージ６０４は、１つの物理デバイス（たとえば、１つの光、磁気、有機、またはその他のメモリもしくはディスク記憶部）を使用して実装され得る一方、その他の実施の形態では、データストレージ６０４は、２つ以上の物理デバイスを用いて実装され得る。
【０１２７】
データストレージ６０４は、コンピュータ読み取り可能なプログラム命令６０６と、たとえば追加データとを含み得る。いくつかの実施の形態では、データストレージ６０４は、本明細書において記載した方法、シナリオ、および技術の少なくとも一部、ならびに／または本明細書において記載したデバイスおよびネットワークの機能の少なくとも一部を実行するために必要なストレージをさらに含み得る。
【０１２８】
いくつかの実施の形態では、コンピューティングデバイス６００は、１つ以上のセンサ６２０を含み得る。センサ（複数可）６２０は、コンピューティングデバイス６００の環境における状況を測定し、その環境についてのデータを提供するように構成され得る。たとえば、センサ（複数可）６２０は、次のうちの１つ以上を含み得る：（ｉ）ＲＦＩＤリーダー、近接センサ、１次元バーコードリーダー、２次元バーコード（たとえば、ＱＲ（Ｑｕｉｃｋ  Ｒｅｓｐｏｎｓｅ）コード）リーダー、およびレーザートラッカー（これらに限定されない）など、その他のオブジェクトおよび／またはデバイスを識別するための識別センサ。この識別センサ（複数可）は、ＲＦＩＤタグ、バーコード、ＱＲコード（登録商標）、ならびに／または、読み出されて少なくとも識別情報を提供するように構成されたその他のデバイスおよび／もしくはオブジェクトなど、識別子を読み取るように構成され得る。；（ｉｉ）傾斜センサ、ジャイロスコープ、加速度計、Ｄｏｐｐｌｅｒセンサ、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）デバイス、ソナーセンサ、レーダー装置、レーザー変位センサ、およびコンパス（これらに限定されない）など、コンピューティングデバイス６００の位置および／または移動を測定するためのセンサ；（ｉｉｉ）赤外線センサ、光センサ、光検出子、カメラ、バイオセンサ、生体センサ、静電容量型センサ、タッチセンサ、温度センサ、ワイヤレスセンサ、無線センサ、動作感知器、マイクロフォン、音センサ、超音波センサ、および／または煙感知器（これらに限定されない）など、コンピューティングデバイス６００の環境を示すデータを取得するための環境センサ；（ｉｖ）１つ以上の次元、トルク、地面にかかる力、摩擦における力を測定する１つ以上のセンサ、ならびに／またはＺＭＰおよび／もしくはＺＭＰの位置を特定するＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）センサ（これらに限定されない）など、コンピューティングデバイス６００に作用する１つ以上の力（たとえば、慣性力および／またはＧ力（Ｇ−ｆｏｒｃｅ））を測定するための力覚センサ。センサ（複数可）６２０の多くの応用例も可能である。
【０１２９】
本開示は、本出願において説明した特定の実施の形態によって限定されない。当該特定の実施の形態は、様々な態様の例示にすぎない。本開示の趣旨および範囲から逸脱することなく多くの変更および変形が可能であり、これは、当業者であれば容易に分かるであろう。本明細書に列挙したものに加えて、本開示の範囲に含まれる機能的に均等な方法および装置は、当業者であれば以上の説明から容易に分かるであろう。このような変更および変形は、添付の特許請求の範囲に含まれる。
【０１３０】
上記詳細な説明において、開示のシステム、デバイス、および方法の様々な特徴および機能について、図面を参照して説明した。図面において、同様の記号は、文脈が特に規定しない限り、通常は、同様の構成要素を特定する。詳細な説明に記載の実施の形態、図面、および特許請求の範囲は、限定ではない。本明細書に提示する発明の主題の趣旨および範囲から逸脱することなく、その他の実施の形態を利用することができ、その他の変更が可能である。本明細書において一般的に説明し図に示した本開示の態様を、様々な異なる構成に配置したり、置き換えたり、組み合わせたり、分けたり、設計したりすることができることは、容易に理解されるであろう。これらのすべては、本明細書において明確に予想されている。
【０１３１】
図のおよび本明細書に記載したラダー図、シナリオ、およびフローチャートの一部またはすべてについて、各ブロックおよび／または通信は、例示的な実施の形態に係る情報の処理および／または情報の送信を表してもよい。これらの例示的な実施の形態の範囲には、別の実施の形態が含まれる。これらの別の実施の形態では、たとえば、ブロックとして記載された機能、送信、通信、要求、応答、および／またはメッセージは、関係する機能に応じて、図示した順序や説明した順序とは異なる順序で実行されてもよく、実質的に同時または逆の順序を含む。さらには、本明細書に記載のラダー図、シナリオ、およびフローチャートを用いてより多いまたは少ない数のブロックおよび／または機能を使用してもよく、これらのラダー図、シナリオ、およびフローチャートは、互いにその一部または全体を組み合わせてもよい。
【０１３２】
情報の処理を表すブロックは、本明細書に記載の方法または技術の特定の論理関数を実行するように構成され得る回路に相当してもよい。代替的にまたは追加的に、情報の処理を表すブロックは、モジュール、セグメント、またはプログラムコード（関連データを含む）の一部に相当してもよい。プログラムコードは、方法または技術に含まれる特定の論理的機能または動作を実施するためのプロセッサによって実行可能な１つ以上の命令を含んでもよい。プログラムコードおよび／または関連データは、ディスクもしくはハードドライブを含む記憶装置など、任意の種類のコンピュータ読み取り可能な媒体、またはその他の記憶媒体上に格納されてもよい。
【０１３３】
また、コンピュータ読み取り可能な媒体は、レジスタメモリ、プロセッサキャッシュ、およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのようにデータを短期間格納する非一時的なコンピュータ読み取り可能な媒体など、非一時的なコンピュータ読み取り可能な媒体を含んでもよい。また、コンピュータ読み取り可能な媒体は、たとえば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、光ディスクもしくは磁気ディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ−Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）のような補助記憶装置または永続的長期記憶装置など、プログラムコードおよび／またはデータをより長い期間格納する非一時的なコンピュータ読み取り可能な媒体を含んでもよい。また、コンピュータ読み取り可能な媒体は、その他の揮発性または不揮発性記憶システムであってもよい。コンピュータ読み取り可能な媒体は、たとえばコンピュータ読み取り可能な記憶媒体または有形の記憶装置と考えられてもよい。
【０１３４】
また、１つ以上の情報の送信を表すブロックは、同じ物理デバイスに含まれるソフトウェアおよび／またはハードウェアモジュール間の情報の送信に相当してもよい。しかしながら、その他の情報の送信は、それぞれ異なる物理デバイスにあるソフトウェアモジュールおよび／またはハードウェアモジュール間であってもよい。
【０１３５】
本明細書において様々な態様および実施の形態を開示したが、その他の態様および実施の形態は、当業者であれば容易に分かるであろう。本明細書に開示の様々な態様および実施の形態は、説明のために提供されており、限定ではなく、添付のクレームが示す範囲に含まれる。
【図１】
2021517297.tif 000008
【図２】
2021517297.tif 000009
【図３Ａ】
2021517297.tif 000010
【図３Ｂ】
2021517297.tif 000011
【図４Ａ】
2021517297.tif 000012
【図４Ｂ】
2021517297.tif 000013
【図５】
2021517297.tif 000014
【図６】
2021517297.tif 000015
【手続補正書】
【提出日】令和3年1月12日(2021.1.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションによって表示されるコンテンツのサブセットを決定するステップを含み、前記サブセットは、ユーザ固有情報を除外しており、前記方法は、さらに、
前記アプリケーションについてのオートフィル要求をリモートプロバイダに送信するステップを含み、前記オートフィル要求は、前記ＵＩ上に表示されるコンテンツの前記サブセットを含み、前記方法は、さらに、
前記オートフィル要求に応答して、前記ＵＩ上で前記アプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値を前記リモートプロバイダから受け付けるステップと、
前記テキスト入力フィールドにユーザ入力値を検出するステップと、
前記テキスト入力フィールドに前記ユーザ入力値を検出することに応答して、前記１つ以上の候補ユーザ値の各々に対する前記ユーザ入力値の比較に基づいて前記１つ以上の候補ユーザ値の各々についての類似度メトリックを決定するステップと、
前記フィールド分類要求に対する応答を前記リモートプロバイダに送信するステップとを含み、前記応答は、前記１つ以上の候補ユーザ値の少なくとも１つについての前記類似度メトリックを含む、方法。
【請求項２】
前記１つ以上の候補ユーザ値の各々についての前記類似度メトリックを決定するステップは、基盤となる比較モデルを適用するステップを含み、前記基盤となる比較モデルは、オートフィル要求間で更新可能である、請求項１に記載の方法。
【請求項３】
基盤となる比較モデルのリストを前記リモートプロバイダに送信するステップと、
前記基盤となる比較モデルのリストから選択された基盤となる比較モデルを前記リモートプロバイダから受け付けるステップとを含み、前記１つ以上の候補ユーザ値の各々についての前記類似度メトリックを決定するステップは、前記選択された基盤となる比較モデルを適用するステップを含む、請求項１または請求項２に記載の方法。
【請求項４】
前記１つ以上の候補ユーザ値の各々についての前記類似度メトリックを決定するステップは、編集距離モデルを適用するステップを含む、請求項１〜請求項３のいずれか１項に記載の方法。
【請求項５】
前記１つ以上の候補ユーザ値は、複数の候補ユーザ値を含み、前記応答は、前記複数の候補ユーザ値のうち最も一致するユーザ値についての前記類似度メトリックを含む、請求項１〜請求項４のいずれか１項に記載の方法。
【請求項６】
前記１つ以上の候補ユーザ値は、複数の候補ユーザ値を含み、前記応答は、前記複数の候補ユーザ値の各々についての前記類似度メトリックを含む、請求項１〜請求項４のいずれか１項に記載の方法。
【請求項７】
前記フィールド分類要求は、追加のテキスト入力フィールドをさらに示し、前記方法は、さらに、
前記追加のテキスト入力フィールドに追加のユーザ入力値を検出するステップと、
前記追加のテキスト入力フィールドに前記追加のユーザ入力値を検出することに応答して、前記１つ以上の候補ユーザ値の各々に対する前記追加のユーザ入力値の比較に基づいて前記１つ以上の候補ユーザ値の各々についての追加の類似度メトリックを決定するステップと、
前記リモートプロバイダに追加の応答を送信するステップとを含み、前記追加の応答は、前記１つ以上の候補ユーザ値の少なくとも１つについての追加の類似度メトリックを含む、請求項１〜請求項６のいずれか１項に記載の方法。
【請求項８】
前記フィールド分類要求は、追加のテキスト入力フィールドをさらに示し、前記方法は、さらに、
前記オートフィル要求に応答して、前記１つ以上の候補ユーザ値とは異なる１つ以上の追加の候補値を前記リモートプロバイダから受け付けるステップと、
前記追加のテキスト入力フィールドに追加のユーザ入力値を検出するステップと、
前記追加のテキスト入力フィールドに前記追加のユーザ入力値を検出することに応答して、前記１つ以上の追加の候補値の各々に対する前記追加のユーザ入力値の比較に基づいて前記１つ以上の追加の候補値の各々についての追加の類似度メトリックを決定するステップと、
前記リモートプロバイダに追加の応答を送信するステップとを含み、前記追加の応答は、前記１つ以上の追加の候補値のうち少なくとも１つについての追加の類似度メトリックを含む、請求項１〜請求項６のいずれか１項に記載の方法。
【請求項９】
前記１つ以上の候補ユーザ値は、候補ユーザ値の総数を候補ユーザ値の所定最大数に限定するインターフェースを介して受け付けられる、請求項１〜請求項８のいずれか１項に記載の方法。
【請求項１０】
前記１つ以上の候補ユーザ値は、テキスト入力フィールドごとの候補ユーザ値の数を候補ユーザ値のフィールド当たりの所定最大数に限定するインターフェースを介して受け付けられる、請求項１〜請求項８のいずれか１項に記載の方法。
【請求項１１】
前記１つ以上の候補ユーザ値は、前記１つ以上の候補ユーザ値の各々を所定最小文字数に限定するインターフェースを介して受け付けられる、請求項１〜請求項８のいずれか１項に記載の方法。
【請求項１２】
前記１つ以上の候補ユーザ値は、前記候補ユーザ値が数字のみを含む場合に前記１つ以上の候補ユーザ値の各々を第１の所定最小文字数に限定し、前記候補ユーザ値が少なくとも１つの数値以外の文字を含む場合に第２の所定最小文字数に限定するインターフェースを介して受け付けられる、請求項１〜請求項８のいずれか１項に記載の方法。
【請求項１３】
前記フィールド分類要求は、前記フィールド分類要求についてのユーザ入力フィールドの数をユーザ入力フィールドの所定最大数に限定するインターフェースを介して受け付けられる、請求項１〜請求項１２のいずれか１項に記載の方法。
【請求項１４】
前記フィールド分類要求は、前記リモートプロバイダによる前記アプリケーションについてのフィールド分類要求の頻度を所定最大頻度に限定するインターフェースを介して受け付けられる、請求項１〜請求項１２のいずれか１項に記載の方法。
【請求項１５】
前記フィールド分類要求は、前記リモートプロバイダによる前記アプリケーションについてのフィールド分類要求の総数をフィールド分類要求の所定最大数に限定するインターフェースを介して受け付けられる、請求項１〜請求項１２のいずれか１項に記載の方法。
【請求項１６】
前記フィールド分類要求は、前記リモートプロバイダによる前記アプリケーションのテキスト入力フィールドごとのフィールド分類要求の数をフィールド分類要求のフィールド当たりの最大数に限定するインターフェースを介して受け付けられる、請求項１〜請求項１２のいずれか１項に記載の方法。
【請求項１７】
前記オートフィル要求に応答して、前記アプリケーションによって表示される追加のテキスト入力フィールドのオートフィル値を前記リモートプロバイダから受け付けるステップと、
前記オートフィル値を受け付けることに応答して、前記オートフィル値を前記追加のテキスト入力フィールドに表示させるステップとをさらに含む、請求項１〜請求項１６のいずれか１項に記載の方法。
【請求項１８】
所定のオペレーティングシステムリソース割り当てが超過したと判断するステップと、
前記所定のオペレーティングシステムリソース割り当てが超過したと判断することに応答して、さらなる候補ユーザ値またはフィールド分類要求を前記リモートプロバイダから受け付けることを拒否するステップとをさらに含む、請求項１〜請求項１７のいずれか１項に記載の方法。
【請求項１９】
前記１つ以上の候補ユーザ値を含むキャッシュされたオブジェクトを一時的に格納するステップと、
前記キャッシュされたオブジェクトを使用して、前記リモートプロバイダから受け付ける前記アプリケーションについての１つ以上の後続のフィールド分類要求を満たすステップとをさらに含む、請求項１〜請求項１８のいずれか１項に記載の方法。
【請求項２０】
ユーザデバイスであって、
ユーザインターフェース（ＵＩ）と、
オペレーティングシステムとを備え、前記オペレーティングシステムは、
前記ユーザデバイスの前記ＵＩ上にアプリケーションによって表示されるコンテンツのサブセットを決定するように構成され、前記サブセットは、ユーザ固有情報を除外しており、前記オペレーティングシステムは、さらに、
前記アプリケーションについてのオートフィル要求をリモートプロバイダに送信するように構成され、前記オートフィル要求は、前記ＵＩ上に表示されるコンテンツの前記サブセットを含み、前記オペレーティングシステムは、さらに、
前記オートフィル要求に応答して、前記ＵＩ上で前記アプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値を前記リモートプロバイダから受け付け、
前記テキスト入力フィールドにユーザ入力値を検出し、
前記テキスト入力フィールドに前記ユーザ入力値を検出することに応答して、前記１つ以上の候補ユーザ値の各々に対する前記ユーザ入力値の比較に基づいて前記１つ以上の候補ユーザ値の各々についての類似度メトリックを決定し、
前記フィールド分類要求に対する応答を前記リモートプロバイダに送信するように構成され、前記応答は、前記１つ以上の候補ユーザ値の少なくとも１つについての前記類似度メトリックを含む、ユーザデバイス。
【請求項２１】
１つ以上のプロセッサによって実行可能な命令を格納した非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、前記１つ以上のプロセッサに機能を実行させ、前記機能は、
ユーザデバイスのユーザインターフェース（ＵＩ）上にアプリケーションが表示するコンテンツのサブセットを決定することを含み、前記サブセットは、ユーザ固有情報を除外しており、前記機能は、さらに、
前記アプリケーションについてのオートフィル要求をリモートプロバイダに送信することを含み、前記オートフィル要求は、前記ＵＩ上に表示されるコンテンツの前記サブセットを含み、前記機能は、さらに、
前記オートフィル要求に応答して、前記ＵＩ上で前記アプリケーションが表示するテキスト入力フィールドについてのフィールド分類要求および１つ以上の候補ユーザ値を前記リモートプロバイダから受け付けることと、
前記テキスト入力フィールドにユーザ入力値を検出することと、
前記テキスト入力フィールドに前記ユーザ入力値を検出することに応答して、前記１つ以上の候補ユーザ値の各々に対する前記ユーザ入力値の比較に基づいて前記１つ以上の候補ユーザ値の各々についての類似度メトリックを決定することと、
前記フィールド分類要求に対する応答を前記リモートプロバイダに送信することとを含み、前記応答は、前記１つ以上の候補ユーザ値の少なくとも１つについての前記類似度メトリックを含む、非一時的なコンピュータ読み取り可能な媒体。
【請求項２２】
機械読み取り可能な命令を含むコンピュータプログラムであって、前記命令は、演算装置によって実行されると、前記演算装置に、請求項１〜請求項１９のいずれか１項に記載の方法を実行させる、コンピュータプログラム。
【国際調査報告】
2021517297.tif 000016
2021517297.tif 000017