(57)【要約】  汎用プロキシモバイルデバイス管理アーキテクチャー。このアーキテクチャーは、バックエンドシステムからのサービスを求めるモバイルクライアントのプロキシとして働く。モバイルクライアントがプロキシと対話するときに仮想イメージが最新のクライアント状態に更新されるように、モバイルクライアントに関連する状態情報の仮想クライアントイメージが格納される。状態の変更に基づいて、プロキシシステムは、モバイルクライアントのためにバックエンドシステムの１つ又は複数の任意のサービスに非同期的にアクセスする。モバイルクライアントがプロキシに接続するとき、プロキシは、仮想イメージの状態に関連する最新のサービスを有し、モバイルクライアントの状態を更新する。更新及びアクセスは、プロキシとモバイルデバイスとの間でフロントエンドで、またプロキシとバックエンドシステムとの間でバックエンドで非同期的に行われる。
2010517165.tif 000002
【特許請求の範囲】
【請求項１】
コンピューターで実施されるデバイス管理システム（１００）であって、
モバイルクライアントのためにバックエンドシステムの任意のサービスに非同期的にアクセスするためのプロキシコンポーネント（１０２）と、
前記モバイルクライアントの状態に関連する任意のタスクとして処理するために前記任意のサービスにアクセスするためのドライバーを含むドライバーコンポーネント（１０８）と、
を備えるシステム。
【請求項２】
前記プロキシコンポーネントが前記モバイルクライアントの前記状態の仮想クライアントイメージを作成し、前記仮想クライアントイメージが前記プロキシコンポーネントに関連して格納され、前記プロキシコンポーネントが、前記仮想クライアントイメージへの変更に基づいて前記任意のサービスにアクセスする、請求項１に記載のシステム。
【請求項３】
前記モバイルクライアントが、前記状態の変更を受け取るために前記プロキシコンポーネントにアクセスする、請求項１に記載のシステム。
【請求項４】
前記ドライバーコンポーネントを介して前記バックエンドシステムの前記任意のサービスへのアクセスを提供するための多重アクセスコンポーネントを更に備える、請求項１に記載のシステム。
【請求項５】
前記バックエンドシステムが、ディレクトリーサービスと更新サービスとメッセージングサービスとを備えるサービスを含む、請求項１に記載のシステム。
【請求項６】
前記ドライバーコンポーネントが、前記プロキシコンポーネントによる実行のために、任意のタスクへの前記サービスの抽象化を容易にする、請求項１に記載のシステム。
【請求項７】
前記モバイルクライアントの前記状態の変更の評価処理を容易にするキャッシュコンポーネントを更に備える、請求項１に記載のシステム。
【請求項８】
前記プロキシコンポーネントが前記タスク処理サービスにいつアクセスするかをスケジューリングするためのスケジューリングコンポーネントを更に備える、請求項１に記載のシステム。
【請求項９】
前記モバイルクライアントが、オープンモバイルアライアンスＸＭＬベースプロトコルを使用して前記プロキシコンポーネントと通信する、請求項１に記載のシステム。
【請求項１０】
自動的に実施されることが望まれる動作を予知し又は推論するために確率的の及び／又は統計ベースの解析を使用するマシン学習・推論コンポーネントを更に備える、請求項１に記載のシステム。
【請求項１１】
デバイスを管理する、コンピューターで実施される方法であって、
モバイルデバイスのためにバックエンドシステムからの任意のサービスにアクセスするステップ（７００）と、
前記任意のサービスのサービス情報を、プロキシサーバーで実行するためにサービスドライバーを介してタスクとして抽象化するステップ（７０２）と、
前記サービス情報を含む、前記モバイルデバイスのデバイス状態のイメージを前記プロキシサーバーで格納するステップ（７０４）と、
前記任意のサービスに関連する変更に基づいて前記デバイス状態の前記イメージを更新するステップ（７０６）と、
を備える方法。
【請求項１２】
前記タスクをバッチで処理するステップを更に備える、請求項１１に記載の方法。
【請求項１３】
前記イメージを最新クライアント状態で更新するために、前記モバイルデバイスがオフライン状態のときに前記タスクを実行するステップを更に備える、請求項１１に記載の方法。
【請求項１４】
前記任意のサービスに対応する前記サービスドライバーを使用して実行される前記タスクをキューに入れるステップを更に備える、請求項１１に記載の方法。
【請求項１５】
前記プロキシサーバーから、前記任意のサービスに関連する複数のバックエンドシステムに非同期的にアクセスするステップを更に備える、請求項１１に記載の方法。
【請求項１６】
前記任意のサービスが前記モバイルデバイスと互換性があるかどうかを決定するために前記デバイスイメージに対して評価テストを実施するステップを更に備える、請求項１１に記載の方法。
【請求項１７】
前記評価テストに基づいて前記モバイルデバイスの前記状態の更新を遅延させるステップ更に備える、請求項１６に記載の方法。
【請求項１８】
前記モバイルデバイスの状態を更新する前に前記デバイス状態の状態評価のためのデバイス構成値をキャッシュするステップを更に備える、請求項１１に記載の方法。
【請求項１９】
前記モバイルデバイスが前記プロキシサーバーに接続するとき、前記デバイスイメージから前記モバイルデバイスの前記デバイス状態を自動的に更新するステップを更に備える、請求項１１に記載の方法。
【請求項２０】
コンピューターで実施されるシステムであって、
モバイルデバイスのためにバックエンドシステムからの任意のサービスにアクセスするコンピューター実施手段（２０２）と、
前記任意のサービスのサービス情報をタスクとして抽象化するコンピューター実施手段（１０８）と、
前記タスクをデータベースに書き込み、前記プロキシサーバーで実行するために前記データベースから前記タスクを読み出すコンピューター実施手段（３０４）と、
前記サービス情報を含む、前記モバイルデバイスのデバイス状態のイメージを前記プロキシサーバーで格納するコンピューター実施手段（４１２）と、
前記任意のサービスに関連する変更に基づいて前記モバイルデバイスの前記デバイス状態の前記イメージを更新するコンピューター実施手段（３０４）と、
を備えるシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
セルラー技術とＩＰベースの技術の収束は、諸技術をポータブルデバイスにまとめる触媒として働く。例えば、携帯電話などのモバイルクライアントは、現在、インターネットなどのＩＰネットワーク上でＩＰベースのサービスにアクセスすることができる。同様に、ポータブルコンピューターなどのコンピューティングシステムは、インターネットを介して電話の宛先に音声通話をかけることを容易にするモバイルクライアント技術を含むことができる。これは主に、両方の体制のユーザーが互いのサービスにアクセスすることができるように、ネットワークサービスプロバイダーが主要ネットワークをつなぐ手段を含むことによる。
【０００２】
データ及びプログラムと対話するための互いに異なる要件の組をそれぞれが有する複数のコンピューティングデバイスをユーザーが持つことは一般的になっている。企業環境では、従業員の移動性が高まり、それによって、例えば移動の間、装置をオフライン状態で定期的に持ち運ぶので、最新の設定及び情報を維持することが重要になる。したがって、従業員が企業環境に恐らく新しい装置で再接続する必要があるとき、オペレーティングシステム、通信能力などの特定のデバイス特性が、従業員による必要なアクセスを妨げる制約とならないことが望ましい。
【０００３】
企業は、今日使用されている多くの異なるコンピューティングシステムに関するこの問題の解決に大きく前進している。ユーザーは、多くの異なるタイプのコンピューターを企業に持ち込むことができ、適切な許可が与えられると、バックエンドシステムによって提供されるサービスに容易にアクセスすることができる。しかし、日常業務のための透過的な接続性を提供するには、モバイルクライアントへのサポートも得ることができるべきである。例えば、スマートフォンでのデバイス及びユーザープレゼンス動作可能通信は、企業にとって、ワークフローを単純にし、生産性を向上させるのに有用であり得る。しかし、企業のこうしたモバイルクライアント能力を容易に識別し、クライアントがオンライン状態であれ、オフライン状態であれ、クライアント情報を透過的に検出し維持することができる機構が整うことが求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、企業は、多くの異なるタイプのデバイスのためのオープンスタンダードをベースとしたインフラストラクチャーの面で企業サポートを提供するために、システム統合へと移行している。しかし、従来の解決策には、異種のモバイルクライアント技術や、企業バックエンドシステムによって提供され得る多くの異なるサービスをサポートするための拡張可能で同種の且つスケーラブルなアーキテクチャーが欠如している。
【課題を解決するための手段】
【０００５】
下記は、開示された技術革新の幾つかの態様についての基本的な理解を促すために、簡略化された要約を提示している。この要約は広範な概要ではなく、また、主要な又は重要な要素を識別するものでも、その範囲を定めるものでもない。その唯一の目的は、以下に提示される一層詳細な説明の序文として、幾つかの概念を簡略化された形で提示することである。
【０００６】
開示されたアーキテクチャーは、柔軟で拡張可能且つ堅牢なモバイルクライアント（又はクライアントデバイス）管理システムである。このシステムは、バックエンドシステムからのサービスを求めるモバイルクライアントのプロキシとして働く。プロキシシステムは、モバイルクライアントに関連する状態情報の仮想クライアントイメージを含む。モバイルクライアントがプロキシと対話するとき、プロキシサーバーは、クライアントの仮想イメージを検証し、次いで、バックエンドシステムからクライアントへの最新の更新を取得するプロセスを最適化するために、仮想イメージと対話する。更に、状態の変更に基づいて、プロキシシステムは、モバイルクライアントのために、バックエンドシステムの１つ又は複数の任意のサービスに自動的且つ非同期的にアクセスする。モバイルクライアントがプロキシに接続するとき、プロキシは、仮想イメージの状態に関連する最新のサービスを有する。
【０００７】
プロキシアーキテクチャーは、抽象化コンポーネント（例えばサービスドライバー）を使用して任意のサービスにアクセスし、それを処理することができ、この抽象化コンポーネントは、異種のサービスを、仮想イメージのクライアント状態の更新のためにプロキシによって処理され得るフォーマットへと抽象化する。したがって、このアーキテクチャーは、拡張可能でスケーラブルである。更に、例えば、法人企業で使用されるとき、このアーキテクチャーは、サービスにアクセスするために多数のモバイルクライアントが接続する負荷バランシングを容易にする。クライアントサービスの需要を満たすように動的にスケールアップし、需要が減少するときにスケールダウンするように、複数のプロキシ管理システムが使用され得る。換言すると、クライアントは、特定のプロキシデバイス管理システムに接続する必要はない。
【０００８】
より具体的には、プロキシは、任意のバックエンドシステムから作業単位として提示されたタスクを受信し処理するタスク実行エンジンを含むデバイス管理システムである。モバイルクライアントの状態情報は、仮想クライアントイメージとして格納されてもよく，そのイメージは、例えば複数のプロキシシステムに関連して格納され得る。したがって、複数のプロキシ管理システムは、必要に応じてイメージにアクセスすることができる。このシステムは、例えば、仮想デバイスイメージに基づいて（また、デバイスがオフライン状態であるとき）、バックエンドシステム作業、及びネットワークアクセス保護に必要な任意の作業を評価する能力を促進する。タスクエンジンは、仮想クライアントイメージの状態の変更に基づいて所望のサービスにアクセスするために、バックエンドシステムと非同期的に動作する。
【０００９】
このシステムは、頻繁に使用され得且つ不揮発性であるデバイス構成サービスプロバイダー値のキャッシュを維持することもできる。検証に従って、キャッシュされた情報は別個に検証されても、イメージの検証と組み合わせて検証されることもできる。タスク実行エンジンは、それが「タスク」オブジェクトを使用するデバイスの反対側で実施される作業単位を抽象化するので、任意のバックエンドシステムとインターフェースすることができる。したがって、プロキシをそれぞれのバックエンドシステムに接続する任意の数のドライバーは、デバイスの反対側で実施される作業単位をキューに入れることができる。更に、エンジンは作業単位をバッチで処理することができる。
【００１０】
プロキシシステムは、関連するモバイルデバイスが接続する前に１つ又は複数のタスクへの評価テストを実施するために仮想デバイス識別を使用することができる。この機構は、例えばクライアントデバイスがいつ重要な更新を必要とし、管理エンドポイントに接触することを強制されるべきか決定することを容易にする。プロキシタスクエンジンは、複数の任意のバックエンドシステムと非同期的に対話し、それによって、クライアントがオンライン状態であれ、オフライン状態であれ、ドライバーがいつでも作業を提示することを可能にする。更に、タスクエンジンは、それが処理し始め得る前に、すべてのドライバーが応答するのを待つ必要はない。
【００１１】
上記内容及び関連の目的を達成するために、以下の説明及び添付の図面に関連して、開示された技術革新の例示的な特定の態様について本明細書に述べられる。しかし、これらの態様は、本明細書に開示された諸原理が使用され得る様々なやり方のほんの幾つかを示すものであり、こうしたすべての態様及びその等価物を含むものである。他の利点及び新規の特徴は、図面と併せて考慮されるとき、以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【００１２】
【図１】開示された技術革新に従ってモバイルクライアントプロキシサービスを提供するためのコンピューター実施プロキシデバイス管理システムを示す図である。
【図２】この技術革新によるプロキシデバイス管理のためのシステムを一層詳細に示す図である。
【図３】モバイルクライアント・プロキシサービスを容易にする代替のプロキシデバイス管理システムを示す図である。
【図４】スケジューリング及び同期処理を使用する代替のプロキシデバイス管理システムを示す図である。
【図５】この技術革新による例示的なディレクトリーサービスアクセス及び同期に関連するフローを示す図である。
【図６】１つ又は複数のプロキシ機能の自動化を容易にするマシン学習・推論コンポーネントを使用するプロキシデバイス管理システムを示す図である。
【図７】プロキシシステムを介してモバイルデバイスを管理する方法を示す図である。
【図８】プロキシによってサービス及びモバイルデバイスを処理する方法を示す図である。
【図９】モバイルデバイスに更新を適用する前にデバイスイメージ抽象化への評価テストを実施する方法を示す図である。
【図１０】この技術革新に従ってバックエンドサービスへの非同期アクセスをスケジューリングする方法を示す図である。
【図１１】プロキシデバイス管理処理のために学習・推論処理を適用する方法を示す図である。
【図１２】開示されたアーキテクチャーに従ってモバイルデバイスプロキシ処理を提供するように動作可能なコンピューティングシステムのブロック図である。
【図１３】バックエンドサービス用のプロキシサーバーによるモバイルクライアント更新を容易にする例示的なコンピューター環境の概略ブロック図である。
【発明を実施するための形態】
【００１３】
一般に、開示されたアーキテクチャーは、企業バックエンドシステムからのサービスを求めるモバイルクライアントのためのモバイルクライアントデバイス・プロキシ管理サーバーである。モバイルクライアントに関連するクライアント状態情報は、例えば、モバイルクライアントがプロキシと対話するときデバイスのクライアント状態が最新のクライアント状態に更新されるように、サーバーで格納される。状態の変更に基づいて、プロキシシステムは、モバイルクライアントのためにバックエンドシステムの１つ又は複数の任意のサービスに非同期的にアクセスする。モバイルクライアントがプロキシに接続するとき、プロキシは、仮想イメージの状態に関連する最新のサービスを有する。同様に、プロキシシステムは、クライアントがいつでも接続することができ、プロキシから最新の状態情報を受け取り、及び／又はプロキシに追加の状態情報を渡すことができるという点で、クライアントへの非同期接続を促進する。
【００１４】
次にこの技術革新について、図面を参照して述べる。図面では、全体を通して同様の要素に言及するために、同じ参照符号が使用される。以下の記述では、説明目的により、複数の具体的な詳細が、その完全な理解を促すために図示されている。しかし、この技術革新は、これらの具体的な詳細なしに実施され得ることが明らかであり得る。他の場合では、その説明を容易にするために、よく知られている構造及びデバイスがブロック図の形で図示されている。
【００１５】
最初に図面を参照すると、図１は、開示された技術革新に従ってモバイルクライアント・プロキシサービスを提供するための、コンピューターで実施されるプロキシデバイス管理システム１００を示している。システム１００は、例えばモバイルクライアント１０６のために企業バックエンドシステムの任意のサービス１０４に非同期的にアクセスするためのプロキシコンポーネント１０２を含む。システム１００は、任意のサービスにアクセスし、モバイルクライアントの状態に関連した処理のためにサービスをタスクに抽象化するためのドライバーを含むドライバーコンポーネント１０８をも備える。一つの実施の形態では、プロキシコンポーネント１０２及びドライバーコンポーネント１０８は、プロキシデバイス管理システム１００を備える。
【００１６】
代替の実装形態では、ドライバーコンポーネント１０８は、デバイス管理システム１００とは別個の、リモートのコンポーネントであり得る。例えば、ドライバーコンポーネント１０８のドライバーはそれぞれ、プロキシコンポーネント１０２がそれぞれのサービスへの接続を要求するとき、対応するサービス位置のバックエンドドライバーがそれへのアクセスを容易にするように、それぞれのバックエンドサービス（又はサービスを提供したシステム）の一部であり得る。
【００１７】
別の実装形態では、新しいバックエンドシステムがオンライン状態になり、新しいドライバーを提供し及び／又は必要とするとき、ドライバーコンポーネント１０８は、プロキシコンポーネント１０２による将来の自動化された非同期の処理のためのドライバーの自動アップロードとインストールを容易にすることができる。
【００１８】
図２は、この技術革新によるプロキシデバイス管理のためのシステム２００を一層詳細に示している。システム２００は、１つ又は複数のモバイルクライアント２０６（モバイルクライアント１、モバイルクライアント２、…、モバイルクライアントＭと示される。ただしＭは正の整数である）のために対応するサービス（サービス１、サービス２、…、サービスＮと示される）を提供する１つ又は複数のバックエンドシステム２０４（バックエンドシステム１、バックエンドシステム２、…、バックエンドシステムＮと示される。ただしＮは正の整数である）にアクセスするためのデバイスプロキシサーバー２０２を含む。クライアント２０６はそれぞれ、対応するクライアント状態（クライアント状態１，クライアント状態２、…、クライアント状態Ｍと示される）を含む。クライアント状態は、オペレーティングシステムのタイプ、バージョン、ハードウェア構成、アプリケーションバージョン、ユーザー情報、データバージョンなどのクライアント情報を含む。プロキシサーバー２０２は、バックエンドシステム２０４へのアクセスのためにプロキシサーバー２０２を駆動するプロキシコンポーネント１０２（例えばタスク実行エンジン）を含む。プロキシサーバー２０２は、ドライバーコンポーネント１０８をも含み、このドライバーコンポーネント１０８は、それぞれのバックエンドサーバー２０４（バックエンドシステム１〜Ｎ）へのアクセスを容易にする、バックエンドシステム２０４のそれぞれのためのドライバー２０８（ドライバー１〜Ｎと示される）を含む。サーバー２０２は、それぞれのクライアント２０６のクライアント状態の仮想イメージ２１２（クライアント状態イメージ１〜Ｍと示される）を格納する関連するデータ記憶部２１０を含むこともできる。データ記憶部２１０は、頻繁に必要とされ且つ不揮発性であるデバイス構成サービスプロバイダー（ＣＳＰ）値のキャッシュとして働くことができる。
【００１９】
第１の動作において、第１のモバイルクライアント２１４がプロキシ２０２に接続するとき、第１のクライアント状態２１６は、プロキシデータ記憶部２１０に転送されて格納される。プロキシコンポーネント１０２は、第１のクライアント２１４によって必要とされた又は要求されたサービスを提供するのにバックエンドシステム２０４のうちのどれにアクセスすべきかを決定する。決定されると、ドライバーコンポーネント１０８は、対応するバックエンドシステム２０４及び対応するサービスにアクセスするための関連するドライバー２０８を提供する。選択されたサービスは、ドライバーコンポーネント１０８に所望のサービス情報を提供し、ドライバーコンポーネント１０８は、サービス情報を、プロキシサーバー２０２によって実行される任意のタスクに抽象化し、プロキシサーバー２０２は、（第１のクライアント２１４が接続される場合、）格納されたイメージ２１２の格納された第１のクライアント状態と（第１のクライアント２１４が接続されていれば）第１のクライアント状態２１６とを更新する。
【００２０】
上記の第１の動作の完了後、次いで、第２の動作において、第１のクライアント２１４はオフライン状態になる（例えば、クライアントユーザーは第１のクライアント２１４の電源を切り、レンジの外に出る、…）。その後、一実装形態では、プロキシサーバー２０２は、（格納されたイメージ２１２の第１のクライアントイメージ内に格納されたドライバー情報に基づいて）第１のクライアント２１４のために以前に使用されたのと同じドライバーを使用してバックエンドシステム２０４に非同期的に接続し、格納されたイメージ２１２の既存の第１のクライアントイメージへの更新が存在することを検出し、プロキシサーバー２０２に関連して格納された第１のクライアントイメージにデータをアップロードする。最終的に、第１のクライアント２１４が、バックエンドシステム２０４へ接続するのではなく、プロキシサーバー２０２に再接続して企業バックエンドサービスを取得する場合、所望の情報は、プロキシサーバー２０２の格納されたイメージ２１２内の第１のクライアントイメージから容易に入手可能である。
【００２１】
しかし、理解されるように、第１のクライアント２１４は、プロキシサーバー２０２を介してバックエンドシステム２０４のうちの１つ又は複数にやはり接続され得る。第１のクライアント状態２１６のための格納された仮想イメージ２１２は、時間的に絶対最新のものでないことがある。これは、プロキシサーバー２０２によって更新処理を受けていることがある仮想クライアントイメージ２１２が多数あるからである。換言すると、第２のクライアント２１８のためのデータ記憶部２１０のクライアント状態の仮想イメージが処理を受けている期間、バックエンドシステム２０４は、第１のクライアント状態の仮想イメージにまだ移されていない更新を受け取ることができる。したがって、データ記憶部２１０内の第１のクライアントの仮想イメージは古くなる。第１のクライアント２１４は、（例えばユーザー設定に基づいて）第１のクライアント状態２１６が絶対的に最新であることを必要とする場合には、最新情報を取得し、或いはプロキシサーバー２０２に第１のクライアント状態２１６のすべて又は一部への更新処理を行うことを強制するために、バックエンドシステム２０４にルーティングされ得る。いずれの場合も、第１のクライアント状態２１２の仮想イメージは更新される。
【００２２】
実際の動作の一層具体的な説明においては、プロキシサーバー２０２は、（モバイルデバイスに対しては）フロントエンドで非同期的に、また（バックエンドシステムに対しては）バックエンドで非同期的に動作する。換言すると、クライアント２０６のうちの１つ又は複数が、対応する仮想クライアントイメージ２１２から更新を受け取るために接続している間、プロキシサーバー２０２はバックエンドでアクセス及び更新操作を行うことができる。それをサポートするために、プロキシサーバー２０２は、格納された仮想イメージ状態２１２への高速読取り／書出しアクセスを提供するためのキャッシュサブシステムを含むことができる。したがって、理解されるとおり、こうした作業に関連する負荷に対処するために複数のプロキシサーバーシステム２０２が使用され得る。負荷バランシング、スケーリング及びキャッシングについて、以下に述べる。
【００２３】
プロキシサーバー２０２が、「タスク」オブジェクトを使用して、モバイルクライアントの反対側で実施される作業を作業単位（又はタスク）として抽象化することができるので、プロキシサーバー２０２のプロキシコンポーネント１０２は多くの任意のバックエンドシステム２０４と共に働くことができる。したがって、プロキシコンポーネント１０２をそれぞれのバックエンドシステム２０４に接続する任意の数のドライバー２０８が、対応するモバイルクライアント（及びクライアントデバイス）のために行われる作業をキューに入れることができる。したがって、プロキシコンポーネント１０２（又はプロキシエンジン）は、タスクをバッチで処理することができる。したがって、プロキシサーバー２０２は、多くのバックエンドシステム２０４が中央のプロキシコンポーネント１０２に作業単位を提示することを可能にするタスク指向の抽象化を容易にする。
【００２４】
プロキシサーバー２０２は、それぞれのクライアントが接続する前にタスクの評価テストを行うために、仮想のクライアントイメージ２１２（デバイス識別情報を含む）を使用することができる。したがって、この機構は、クライアントが重要な更新を必要とし、管理エンドポイント（又はバックエンドシステム２０４）に直ちに接触することを強制されるべきかどうか決定するために使用され得る。
【００２５】
上に述べたように、プロキシコンポーネント１０２は複数のバックエンドシステム２０４と共に非同期的に働く。これは、クライアントが接続されている、いないにかかわらず、ドライバー２０８が作業をいつでも提示することを可能にする。更に、プロキシコンポーネント１０２は、それがバックエンドシステム２０４からのサービスを処理し始め得る前にすべてのドライバーが応答するのを待つ必要はない。換言すると、第１のバックエンドシステム２２０及び第２のバックエンドシステム２２２に関連するドライバーは、第３のバックエンドシステム２２４のドライバーが応答する前に、データ処理のために使用され得る。
【００２６】
図３は、モバイルクライアント・プロキシサービスを容易にする代替のプロキシデバイス管理システム３００を示している。システム３００のプロキシサーバー２０２は、クライアント１０６の状態更新に関連するタスクを実行するためのタスク実行エンジン（ＴＥＥ）３０４を備えるプロキシエンジン３０２を含む。プロキシエンジン３０２は、対応する複数のサービス３１０への複数のドライバー３０８を介して通信が行われ得るように、複数のアクセスコンポーネント３０６（例えばマルチプレクサー、すなわち「ｍｕｘ」）を含むこともできる。しかし、ｍｕｘ  ３０６の包含は任意選択によることを理解されたい。ここでは、少なくとも３つのサービス、即ち、ディレクトリーサービス３１２（例えばマイクロソフト社によるＡｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ（商標））及び関連するディレクトリーサービスドライバー３１４、更新サービス３１６（例えばマイクロソフト社によるＷｉｎｄｏｗ  Ｓｅｒｖｅｒ  Ｕｐｄａｔｅ  Ｓｅｒｖｉｃｅｓ（商標））及び関連する更新サービスドライバー３１８、並びに、メッセージングサービス３２０（例えばＳＭＳショートメッセージサービス、ＭＭＳマルチメディア・メッセージングサービス、インスタントメッセージング、…）及び関連するメッセージングサービス・ドライバー３２２が提供される。３つのサービス及びドライバーだけが示されているが、更に多くのサービス及び関連するドライバーが実装され得る。更に、上記に示したように、単一のプロキシエンジン３０２では効率的に対処され得ない、フロントエンドのモバイルデバイスへの変化する需要、及びバックエンドサービスの変化する需要に動的に対処するために、複数のプロキシエンジン３０２が使用され得る。
【００２７】
マルチプレクサー３０６はサービス３１０との通信を容易にする。ＴＥＥ  ３０４は、クライアント１０６からクライアント状態を取得し、どの部分が更新されるべきか決定するために状態を処理し、所望の更新に基づいて適切なサービス３１０へのアクセスを要求することができる。ＴＥＥ  ３０４は、ドライバー３０８を介してサービス３１０にルーティングするために、要求をｍｕｘ  ３０６に送信する。次いで、更新が、タスクへの抽象化処理のためにドライバー３０８に、次いでクライアント仮想イメージデータ記憶部２１０及び／又はクライアント１０２への挿入のためのＴＥＥ  ３０４による処理のためにｍｕｘ  ３０６に返される。上述のように、タスク実行は、クライアント１０２がオンライン状態であるか、オフライン状態であるかに無関係に行われ得る。オフライン状態である場合、タスク実行は、データ記憶部２１０のクライアント状態イメージに対して行われる。したがって、クライアント１０２がプロキシエンジン３０２に接続するとき、クライアント状態への更新は、サービス３１０ではなく、データ記憶部２１０の仮想クライアント状態イメージから行われる。同様に、タスク実行は、プロキシ２０２がバックエンドサービス３１０に接続されるか否かに無関係に行われ得る。実行のためにプロキシエンジン３０２でキューに入れられたタスクがある限り、イメージ更新処理が行われ得る。
【００２８】
開示されたモバイルデバイスプロキシ管理システムは、サービスを提供するバックエンドシステムのタイプに無関係に、バックエンドサービスがプロキシサーバー２０２によってホストされ又は提供され、アクセスされ処理され得るという点で、汎用システムである。例えば、バックエンドシステムは、例えば多くの異なるタイプのオペレーティングシステム（例えばＵｎｉｘ（登録商標）、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅなど）や、ファイル構造、プロトコル及びデータ形式を使用してサービスを提供することができる。ドライバー３０８は、ＴＥＥ  ３０４によって実行可能な任意のタスクにサービス情報を抽象化するために変換処理を実施する。対照的に、従来のアーキテクチャーは、拡張不可能でモバイルデバイスからバックエンドシステムへの１対１である、ハードコードされた実装を提供する。開示されたアーキテクチャーは、フロントエンドとバックエンドとの非同期操作を伴う多対多の拡張可能実装を提供する。
【００２９】
図４は、スケジューリング及び同期処理を使用する代替の汎用プロキシデバイス管理システム４００を示している。ここで、ドライバーコンポーネント１０８は、それぞれのディレクトリーサービス３１２、更新サービス３１６及びメッセージサービス３２０のためのディレクトリーサービスドライバー３１４、更新サービスドライバー３１８、メッセージサービスドライバー３２２を含む。更に、システム４００は、他のバックエンドサービス４０４用のドライバーコンポーネント１０８の一部としてサードパーティドライバー４０２が提供され得るように拡張可能である。
【００３０】
プロキシエンジン４０６はＴＥＥ  ３０４とｍｕｘ  ３０６とを含み、その機能については上に述べられている。更に、プロキシエンジン４０６は、クライアント１０６とサーバー２０２の仮想状態イメージとの間のフロントエンド上で、及び、バックエンドシステムとサーバー２０２の仮想状態イメージとの間のプロキシ２０２のバックエンド上で状態を同期するための同期コンポーネント４０８を含む。スケジューラーコンポーネント４１０は、サーバー２０２がバックエンド及び／又はフロントエンドで同期を実施するときのスケジューリングを容易にする。例えば、一実装形態によれば、同期は時間情報（例えば時間、日付、最終更新からの日数など）に基づくことができる。別の実装形態では、スケジューリングは状態データのバージョンに従う。理解されるように、スケジューリングは、それぞれのクライアント、１組のクライアント、クライアントのカテゴリー及びデバイス情報の規則にしたがい、クライアント状態、バックエンドシステムのポリシーの変更、バックエンドデータ等々にしたがって容易にされ得る。
【００３１】
ここで、ＴＥＥ  ３０４は、２つのデータ記憶部、即ちエンジンデータ記憶部４１２及び履歴データ記憶部４１４に対してインターフェースする。エンジンデータ記憶部４１２は、例えばクライアントのスケジューリング、規則、実行タスク及び同期に関する情報を保持することができる。履歴データ記憶部４１４は、このプロキシサーバー２０２に接続する複数のクライアントのクライアント仮想状態イメージデータの格納を容易にすることができる。データ記憶部（４１２及び４１４）は、高速実行及び処理のためのキャッシュメモリー（例えばＤＲＡＭ）であり得る。したがって、プロキシサーバー２０２は、複数のプロキシサーバーのためのデータを格納するリモートデータ記憶部（図示せず）にアクセスすることができ、次いで、その選択された部分は、キャッシング及び非同期処理のために、適切なプロキシサーバーにアップロードされる。
【００３２】
ユーザーの嗜好、状態、文脈又は他のメトリックスは、ユーザー体験を強化し、デスクトップコンピューターと比べてポータブルデバイスの固有の制限（例えば帯域幅、メモリー、処理能力、表示面積等）のうちの一部を相殺するので、情報のプリフェッチ及び／又はプリキャッシュなどのキャッシング機能が提供され得る。理解されるように、例えば、デバイス能力及びユーザー関連メトリックスに基づいて低価値と見なされる仮想イメージデータは、新しいコンテンツのための場所を空けるために、選択的に期限切れとされて記憶装置から出される。
【００３３】
例示的な一つの実施の形態では、プロキシサーバーは、ＯＭＡ  ＤＭ（Ｏｐｅｎ  Ｍｏｂｉｌｅ  Ａｌｌｉａｎｃｅ  ｆｏｒ  Ｄｅｖｉｃｅ  Ｍａｎａｇｅｍｅｎｔ：デバイス管理のためのオープンモバイルアライアンス）をサポートし、サーバー２０２とクライアントとの間の通信は、ＳｙｎｃＭＬプロトコルに従う。ＯＭＡ  ＤＭは、携帯電話及びモバイル対応ポータブルコンピューティングデバイスなどのモバイルクライアント及びデバイスの管理を指定する。ＳｙｎｃＭＬは、オープンシステムのために提案されたＸＭＬ（拡張可能マークアップ言語）ベースのプロトコルである。ＳｙｎｃＭＬは、任意のネットワークを介してデバイス及びアプリケーションを同期するための共通言語である。ＸＭＬを活用することによって、ＳｙｎｃＭＬは、ネットワーク化された情報を任意のモバイルデバイスと同期するために使用されることができ、モバイル情報は、ネットワーク化された任意のアプリケーションと同期され得る。電子メール、カレンダー、ｔｏ−ｄｏリスト、連絡先情報、デバイス情報、アプリケーション情報などの個人情報及び他の所望のデータが、一貫したアクセス可能な最新状態にされ得る。更に、ＳｙｎｃＭＬは、例えば固定ネットワーク、赤外線、ケーブル、ブルーツースを介した同期を可能にする。
【００３４】
図５は、この技術革新による例示的なディレクトリーサービスアクセス及び同期に関連するフローを示している。スケジューラー４１０は、プロキシエンジン４０６がディレクトリーサービスドライバー３１４に情報を通信することができるように、バックエンドシステムのディレクトリーサービス３１２への同期セッションを開始することができる。ドライバー３１４は、ドライバーラッパーモジュール５００によって情報をバンドルし、ディレクトリーサービスグループ・ポリシードライバー５０２を介してディレクトリーサービス３１２にバンドルされた情報を通信する。ディレクトリーサービス３１２は、更新された所望のサービス情報又は作業をドライバー３１４に戻し、ドライバー３１４は作業を１つ又は複数のタスクとして抽象化する。タスクは、アンラップするためにドライバーラッパー５００を介して、次いで実行するためにプロキシエンジン４０６を介して、エンジンデータベース４１２に渡される。上に述べたように、タスクのうちの１つ又は複数は、後に処理するためにキューに入れることもできる。したがって、タスク優先順位付け管理がプロキシエンジン４０６で使用され得る。
【００３５】
クライアント１０６は、プロトコル（例えばＳｙｎｃＭＬ）を介してＸＭＬベースのデータを渡すために、プロキシエンジン４０６のプロキシエンジン層５０４（例えばＳｙｎｃＭＬ）への接続を開始することができる。層５０４は、処理のためにＸＭＬデータをＴＥＥ  ３０４に転送する。ＴＥＥ  ３０４は、エンジンデータベース４１２からタスク情報をプルし、タスクを実行して、層５０４を介してクライアント１０６を更新し、活動履歴データベース４１４内に格納された仮想イメージ（図示せず）を更新する。層５０４で、実行されたタスクデータは、ＸＭＬに変換され、プロトコルを介してクライアント１０６に通信される。この時点で、クライアント１０６と仮想状態イメージの両方が、最新のクライアント状態で更新されている。一実装形態では、モバイルデバイスは、まず更新され得るが、プロキシはキャッシュ内に更新済み状態を保つことが理解されよう。次いで、キャッシュされた情報は、プロキシサーバーの仮想状態イメージに保持される。
【００３６】
図６は、１つ又は複数の特徴の自動化を容易にするマシン学習・推論（ＭＬＲ）コンポーネント６０２を使用するプロキシデバイス管理システム６００を示している。ここで、プロキシサーバー６０４は、状態関連タスクを処理するためのプロキシエンジン３０２と、関連するバックエンドシステム及びサービス１０４にアクセスするためのドライバーを提供するためのドライバーコンポーネント１０８と、同期をスケジューリングするためのスケジューラーコンポーネント４１０と、バックエンドサービス１０４の多重アクセスのためのｍｕｘ  ３０６とを含む。更に、サーバー６０２は、例えば高速データアクセス及びクライアント状態情報の処理のためのキャッシュコンポーネント６０６を含むことができる。一例では、キャッシュコンポーネント６０６は、例えば仮想イメージ状態に基づいて（及びデバイスがオフライン状態であるときに）、バックエンドシステム作業や、ネットワークアクセス保護に必要な任意の作業の事前評価テストを容易にする。事前評価テストは、クライアントが重要な更新を必要とし、管理エンドポイントに直ちに接触するように強制されるべきかどうか決定するために使用され得る。
【００３７】
キャッシュコンポーネント６０６は、頻繁に使用され得且つ不揮発性であるデバイス構成サービスプロバイダー値を維持することができる。
（例えば選択に関連する）このアーキテクチャーは、その様々な態様を実施するための様々なＭＬＲベース手法を使用することができる。例えば、バックエンドサービス１０４にいつ非同期的に接続するかを決定するプロセスは、自動分類子システム及びプロセスによって容易にされ得る。
【００３８】
分類子は、入力属性ベクトル、ｘ＝（ｘ１，ｘ２，ｘ３，ｘ４，ｘｎ）をクラスラベルｃｌａｓｓ（ｘ）にマッピングする関数である。また、分類子は、入力がクラスに属する信頼度、即ちｆ（ｘ）＝ｃｏｎｆｉｄｅｎｃｅ（ｃｌａｓｓ（ｘ））を出力することができる。こうした分類は、ユーザーが自動的に実施されることを望む動作を予知し又は推論するために、確率及び／又は他の統計解析（例えば、１つ又は複数の人の期待値を最大にするために解析の有用性及びコストを考慮に入れる解析）を使用することができる。
【００３９】
本明細書では、用語「推論する」及び「推論」は、一般に、イベント及び／又はデータを介して捕捉された１組の観察から、システム、環境及び／又はユーザーの状態について論理的に考え又は推論するプロセスを指す。推論は、例えば、特定の文脈又は動作を識別するために使用されることができ、又は、状態に関する確率分布を生成することができる。推論は確率論的である。即ち、推論はデータ及びイベントの考慮に基づく関心のある状態に関する確率分布の計算であり得る。推論は、１組のイベント及び／又はデータから一層高いレベルのイベントを構成するために使用される技術を指すこともある。こうした推論によって、イベントが時間的に接近して相関している、いないに拘わらず、また、イベント及びデータが１つのイベント及びデータソースから生じているか、複数のイベント及びデータソースから生じているかに拘わらず、１組の観察されたイベント及び／又は格納されたイベントデータから新しいイベント又は動作が構築されることになる。
【００４０】
サポートベクトルマシン（ＳＶＭ）は、使用され得る分類子の一例である。ＳＶＭは、可能な入力の空間で超曲面を見つけることによって動作し、この超曲面は、トリガー入力イベントを非トリガー入力イベントから最適なやり方で分離する。直観的には、これは、訓練データと同一ではないがそれに近いデータをテストするように分類を正確にする。他の有向（directed）及び無向（undirected）モデル分類手法には、例えば様々な形の統計回帰、単純ベイズ（naive Bayes）、ベイズネットワーク、決定木、ニューラルネットワーク、ファジィ論理モデルが含まれ、それぞれ異なるパターンの独立を表す他の統計分類モデルが使用され得る。本発明で用いられる分類もまた、ランク及び／又は優先度を割り当てるために使用される方法を含むものである。
【００４１】
本明細書から容易に理解されるように、このアーキテクチャーは、（例えば汎用訓練データによって）明示的に訓練される分類子や、（例えばユーザー振舞いを観察し、外因性情報を受け取ることによって）暗黙的に訓練される分類子を使用することができる。例えば、ＳＶＭの分類子は、分類子コンストラクター及び特徴選択モジュール内の学習又は訓練段階によって構成される。したがって、分類子は、所定の基準に従って複数の機能を自動的に学習し実施するために使用され得る。
【００４２】
例えば、クライアントデバイスのタイプに基づいて、ＭＬＲコンポーネント６０２は、同期が他のデバイスタイプと同じくらい頻繁には実施される必要がないかもしれないと学習し推論することができる。別の例では、ＭＬＲコンポーネント６０２は、どのデバイス状態が更新されるべきかの優先順位を付ける手段として、クライアントデバイスのユーザー嗜好情報を読み出すことを学習することができる。学習・推論は、帯域幅及び負荷などに基づいて別のプロキシサーバーにスケールアップするときに、他の企業プロキシサーバーに対してプロキシサーバー６０４のスケジューリング及びアドレス読込みを調整するためにも使用され得る。
【００４３】
また、同期はイベントトリガーをベースとすることもできる。このタイプの実装形態では、クライアントデバイスは、クライアント状態の変更を監視するエージェント又は類似のソフトウェアモジュールを含むことができ、変更の範囲が所定のトリガー基準又は構成されたトリガー基準を満たすとき、エージェントは、プロキシサーバー６０４への同期要求をトリガーする。次いで、状態更新は、そのクライアントのプロキシサーバー６０４の仮想状態イメージに対して行われる。対応するクライアントがサーバー６０４に接続するとき、クライアントは最新の更新を受け取る。
【００４４】
これらは、ＭＬＲコンポーネント６０２とバックエンド同期を得る方法とによって提供され得る柔軟性のほんの幾つかの例にすぎない。他の例は、所与のクライアント、又は接続されたすべてのクライアントについての更新のためにバックエンドシステムを周期的にポーリングするプロキシサーバーを含む。別の例は、サーバー６０４への更新要求をキューに入れるバックエンドシステムを含み、サーバーが先着順で要求を選択する。或いは、ＭＬＲコンポーネント６０２は、学習され推論された振舞いに基づいて要求を受け取り、優先順位付けすることができる。
【００４５】
図７は、プロキシシステムによってモバイルデバイスを管理する方法を示している。説明を単純にするために、例えばフローチャートや流れ図の形で本明細書に示された１つ又は複数の方法論は、一連の行為として図示され述べられているが、この技術革新は、それに従って一部の行為が、本明細書に示され述べられた他の行為と異なる順序で、及び／又はそれと同時に行われ得るので、行為の順序によって制限されないことを理解し、評価されたい。例えば、当業者に理解されるように、方法論は、別法として、状態図などの、相互に関連する一連の状態又はイベントとして表され得る。更に、示されたすべての行為が、この技術革新に従って方法論を実施するのに必要であるとは限らない。
【００４６】
７００で、バックエンドシステムの任意のサービスが、モバイルデバイスのためにプロキシサーバーによってアクセスされる。７０２で、バックエンドシステムからのサービス情報が、サービスドライバーを介してプロキシサーバーで実行するタスクとして抽象化される。７０４で、サービス情報を含む、モバイルデバイスのデバイス状態の抽象イメージが、プロキシサーバーに格納される。７０６で、モバイルデバイスのデバイス状態のイメージが、任意のサービスに関連する変更に基づいて更新される。
【００４７】
図８は、プロキシによってサービス及びモバイルデバイスを処理する方法を示している。８００において、プロキシサーバーで、複数のモバイルデバイスの状態のデバイス状態イメージ抽象化が作成される。８０２で、任意のバックエンドシステムへのアクセスが、イメージ抽象化のうちの１つ又は複数のためのサービスドライバーを介して開始される。８０４で、任意のバックエンドシステムに関連するサービスが、非同期的にアクセスされる。８０６で、モバイルデバイスのうちの１つ又は複数についてのサービス情報が、サービスドライバーを介して返される。８０８で、サービス情報が、プロキシサーバーで実行する任意のタスクとしてサービスドライバーを介して抽象化される。８１０で、モバイルデバイスのそれぞれのイメージ抽象化が、タスクの実行に基づいて更新される。８１２で、デバイスがプロキシサーバーに接続するとき、モバイルデバイスが、それぞれのイメージ抽象化から非同期的に更新される。８１４で、更新処理の期間、モバイルデバイスから新しいデバイス情報が受け取られる。８１６で、新しいデバイス情報に基づいて、バックエンドサービスが、オンライン状態であるとき、新しいサービス情報を求めて非同期的にアクセスされる。
【００４８】
図９は、モバイルデバイスに更新を適用する前にデバイスイメージ抽象化への評価テストを実施する方法を示している。９００において、プロキシサーバー上で、モバイルデバイスについて、モバイルデバイス状態イメージ抽象化が作成され、格納される。９０２で、イメージ抽象化のために、任意のバックエンドサービスが、サービスドライバーを介して非同期的にアクセスされる。９０４で、サービスがドライバーで受け取られ、プロキシサーバーで実行するタスクとして抽象化される。９０６で、タスクのうちの１つ又は複数がモバイルデバイスに適用されるべきかどうかを決定するために、タスクの評価テストが、イメージ抽象化に対して実施される。９０８において、モバイルデバイスのイメージ抽象化に対するテスト結果に基づいて、タスクのうちの１つ又は複数が適用され又は削除される。
【００４９】
図１０は、この技術革新に従ってバックエンドサービスへの非同期アクセスをスケジューリングする方法を示している。１０００で、プロキシで複数のモバイルデバイス状態イメージを更新するために、プロキシでスケジューリング情報が提供される。１００２で、スケジューリング情報に基づいて、プロキシサーバーが、サービスドライバーを介してバックエンドサービスへのアクセスを開始する。１００４で、バックエンドシステムのうちの１つ又は複数からのサービス情報が、サービスドライバーで受け取られ、タスクへ抽象化され、プロキシ上のタスク実行処理のためにキューに入れられる。１００６で、タスクが、既存のプロキシ状態イメージに対して実行される。１００８で、更新イメージが格納される。１０１０で、関連するモバイルデバイスのうちの１つ又は複数が、プロキシサーバーに非同期的に接続し、対応するイメージから、更新された状態を受け取る。
【００５０】
図１１は、プロキシデバイス管理処理のために学習・推論処理を適用する方法を示している。１１００で、プロキシサーバーが、イメージ生成及び非同期バックエンドサービス処理及びモバイルデバイス状態更新のために展開される。１１０２で、学習・推論がプロキシサーバープロセスに適用される。１１０４で、モバイルデバイス及びサービスアクセスの既存の非同期処理を考慮して、プロキシサーバーが、学習・推論に基づいて提供された新しいスケジューリングを自動的に採用する。１１０６で、モバイルデバイス及びサービスアクセスの既存の非同期処理を考慮して、プロキシサーバーが、学習・推論に基づいて、新しいイメージ更新処理及びサービスアクセスを自動的に採用する。１１０８で、モバイルデバイス及び第１のプロキシサーバーのサービスアクセスの既存の非同期処理を考慮して、サービス処理が、学習・推論に基づいて、追加のプロキシサーバーに合わせてスケーリングされる。
【００５１】
本出願で用いられるように、用語「コンポーネント」及び「システム」は、コンピューター関連のエンティティー、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア又は実行中のソフトウェアを指すものである。例えば、コンポーネントは、プロセッサー上で実行されるプロセス、プロセッサー、ハードディスクドライブ、（光及び／又は磁気記憶媒体の）複数の記憶装置ドライブ、オブジェクト、実行可能ファイル、実行スレッド、プログラム及び／又はコンピューターであり得るが、これに限られる訳ではない。例を挙げると、サーバー上で実行されるアプリケーション及び該サーバーがコンピューターコンポーネントであり得る。１つ又は複数のコンポーネントが、プロセス及び／又は実行スレッド内に常駐することができ、コンポーネントは、１つのコンピューター上に集中させ、及び／又は２つ以上のコンピューター間で分散させることができる。
【００５２】
次に図１２を参照すると、開示されたアーキテクチャーに従ってモバイルデバイスプロキシ処理を提供するように動作可能なコンピューティングシステム１２００のブロック図が示されている。その様々な態様についての追加の文脈を提供するために、図１２及び以下の議論は、この技術革新の様々な態様が実施され得る適切なコンピューティングシステム１２００についての簡潔な概説を提供する。上記説明は、１つ又は複数のコンピューター上で実行され得るコンピューター実行可能命令の一般的な文脈のものであるが、当業者に認識されるように、この技術革新は、他のプログラムモジュールとの組合せで、及び／又はハードウェアとソフトウェアの組合せとしても実施され得る。
【００５３】
一般に、プログラムモジュールは、特定のタスクを実施し、又は特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造体などを含む。更に、本発明の方法は、単一プロセッサーの又はマルチプロセッサーのコンピューターシステム、ミニコンピューター、メインフレームコンピューター、パーソナルコンピューター、手持ち式コンピューティングデバイス、マイクロプロセッサーベースの又はプログラマブルな家電などを含む、他のコンピューターシステム構成で実施され得、そのそれぞれは１つ又は複数の関連デバイスに動作可能に接続され得ることが理解されよう。
【００５４】
この技術革新の示された態様は、通信ネットワークを介してリンクされるリモート処理デバイスによって特定のタスクが実施される分散コンピューティング環境でも実施され得る。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートとのメモリー記憶装置に置かれ得る。
【００５５】
一般に、コンピューターは様々なコンピューター読取り可能媒体を含む。コンピューター読取り可能媒体は、コンピューターによってアクセスされ得る任意の使用可能な媒体とすることができ、揮発性と不揮発性であって取外し可能と取外し不可能の媒体を含む。限定するためではなく、例を挙げると、コンピューター読取り可能媒体は、コンピューター記憶媒体及び通信媒体を備え得る。コンピューター記憶媒体は、コンピューター読取り可能命令、データ構造体、プログラムモジュール又は他のデータなどの情報を格納するための任意の方法又は技術で実装された、揮発性と不揮発性であって取外し可能と取外し不可能の媒体を含む。コンピューター記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリーその他のメモリー技術、ＣＤ−ＲＯＭ、デジタルビデオディスク（ＤＶＤ）その他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置その他の磁気記憶装置、或いは、所望の情報を格納するために使用され且つコンピューターによってアクセスされ得る他の任意の媒体が含まれるが、これらに限られない。
【００５６】
図１２を再び参照すると、様々な態様を実施するための例示的なコンピューティングシステム１２００がコンピューター１２０２を含んでおり、コンピューター１２０２は、処理装置１２０４とシステムメモリー１２０６とシステムバス１２０８とを含む。システムバス１２０８は、システムメモリー１２０６等を含むシステムコンポーネントのために処理装置１２０４に対するインターフェースを提供する。処理装置１２０４は、様々な市販のプロセッサーのいずれかであり得る。デュアルマイクロプロセッサー及び他のマルチプロセッサーアーキテクチャーも、処理装置１２０４として使用され得る。
【００５７】
システムバス１２０８は、様々な市販のバスアーキテクチャーのいずれかを使用して、（メモリーコントローラーを備えた、又は備えない）メモリーバス、周辺バス及びローカルバスに更に相互接続し得る複数のタイプのバス構造のいずれかであり得る。システムメモリー１２０６は、読取り専用メモリー（ＲＯＭ）１２１０とランダム・アクセス・メモリー（ＲＡＭ）１２１２とを含む。基本入出力システム（ＢＩＯＳ）は、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの不揮発性メモリー１２１０内に格納され、このＢＩＯＳは、起動時などにコンピューター１２０２内の要素間で情報を転送するのに役立つ基本ルーチンを含む。ＲＡＭ  １２１２は、データをキャッシュするためのスタティックＲＡＭなどの高速ＲＡＭを含むこともできる。
【００５８】
コンピューター１２０２は更に、適切なシャーシー（図示せず）で外部使用するようにも構成され得る内部ハードディスクドライブ（ＨＤＤ）１２１４（例えばＥＩＤＥ、ＳＡＴＡ）と、（例えば取外し可能なディスク１２１８との間で読み書きを行う）磁気フロッピーディスクドライブ（ＦＤＤ）１２１６と、（例えばＣＤ−ＲＯＭディスク１２２２を読み出し、又は、ＤＶＤなどの高容量光媒体との間で読み書きを行う）光ディスクドライブ１２２０とを含む。ハードディスクドライブ１２１４、磁気ディスクドライブ１２１６及び光ディスクドライブ１２２０は、それぞれハードディスクドライブインターフェース１２２４、磁気ディスクドライブインターフェース１２２６及び光ドライブインターフェース１２２８によってシステムバス１２０８に接続され得る。外部ドライブ実装のためのインターフェース１２２４は、ユニバーサルシリアルバス（ＵＳＢ）及びＩＥＥＥ  １３９４インターフェース技術のうちの少なくとも１つ又は両方を含む。他の外部ドライブ接続技術はこの技術革新の意図の範囲内である。
【００５９】
ドライブ及びその関連のコンピューター読取り可能媒体は、データ、データ構造体、コンピューター実行可能命令などの不揮発性の記憶域を提供する。コンピューター１２０２に対して、ドライブ及び媒体は、適切なデジタル形式の任意のデータの記憶域を提供する。上記のコンピューター読取り可能媒体についての説明は、ＨＤＤ、取外し可能な磁気ディスク、ＣＤやＤＶＤなどの取外し可能な光媒体に言及するが、当業者には理解されるように、ｚｉｐドライブ、磁気カセット、フラッシュメモリーカード、カートリッジなど、コンピューターによって読取り可能な他のタイプの媒体も例示的な動作環境で使用され得、また更に、任意のこうした媒体は、開示された技術革新の諸方法を実施するためのコンピューター実行可能命令を含み得る。
【００６０】
オペレーティングシステム１２３０、１つ又は複数のアプリケーションプログラム１２３２、他のプログラムモジュール１２３４及びプログラムデータ１２３６を含む複数のプログラムモジュールが、ドライブ及びＲＡＭ  １２１２に格納され得る。オペレーティングシステム、アプリケーション、モジュール及び／又はデータのすべて又は一部もまた、ＲＡＭ  １２１２にキャッシュされ得る。理解されるように、この技術革新は様々な市販のオペレーティングシステム又はオペレーティングシステムの組合せで実現され得る。
【００６１】
アプリケーション１２３２及び／又はモジュール１２３４は、幾つか例を挙げると、プロキシコンポーネント１０２、ドライバーコンポーネント１０８、プロキシサーバー２０２、タスク実行エンジン３０４、ｍｕｘ  ３０６、プロキシエンジン４０６、ｓｙｎｃコンポーネント４０８、スケジューラーコンポーネント４１０、ドライバーラッパー５００、ポリシー・ドライバー５０２、層５０４、ＭＬＲコンポーネント６０２及びキャッシュコンポーネント６０６に関連して本明細書に述べた機能及び能力を含むことができる。
【００６２】
ユーザーは、例えばキーボード１２３８やマウス１２４０などのポインティングデバイスのような１つ又は複数の有線／無線入力デバイスを介して、コンピューター１２０２にコマンド及び情報を入力することができる。他の入力デバイス（図示せず）は、マイクロホン、ＩＲリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーンなどを含み得る。これら及び他の入力デバイスはしばしば、システムバス１２０８に結合された入力デバイスインターフェース１２４２を介して処理装置１２０４に接続されるが、パラレルポート、ＩＥＥＥ  １３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターフェースなどの他のインターフェースによって接続され得る。
【００６３】
モニター１２４４又は他のタイプのディスプレイデバイスもまた、ビデオアダプター１２４６などのインターフェースを介してシステムバス１２０８に接続される。モニター１２４４に加えて、コンピューターは一般に、スピーカー、プリンターなどの他の周辺出力デバイス（図示せず）を含む。
【００６４】
コンピューター１２０２は、リモートコンピューター１２４８などの１つ又は複数のリモートコンピューターへの有線及び／又は無線通信を介する論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピューター１２４８は、ワークステーション、サーバーコンピューター、ルーター、パーソナルコンピューター、ポータブルコンピューター、マイクロプロセッサーベースのエンターテイメント器具、ピアデバイス又は他の共通ネットワークノードとすることができ、また一般に、コンピューター１２０２に関して述べられた諸要素の多く又はすべてを含むが、簡潔にするために、メモリー／記憶装置１２５０だけが図示されている。図示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１２５２や、例えば広域ネットワーク（ＷＡＮ）１２５４のような一層大規模なネットワークへの有線／無線接続性を含む。こうしたＬＡＮ及びＷＡＮネットワーキング環境は、職場及び企業では一般的であり、そのすべてが例えばインターネット等のグローバル通信ネットワークに接続し得る、イントラネット等の企業規模のコンピューターネットワークを促進する。
【００６５】
ＬＡＮネットワーキング環境で使用されるとき、コンピューター１２０２は、有線及び／又は無線の通信ネットワークインターフェース又はアダプター１２５６を介して、ローカルネットワーク１２５２に接続される。アダプター１２５６は、ＬＡＮ  １２５２への有線又は無線通信を容易にすることができ、このＬＡＮ  １２５２は、ワイヤレスアダプター１２５６と通信するためにその上に置かれた無線アクセスポイントを含むこともできる。
【００６６】
ＷＡＮネットワーキング環境内で使用されるとき、コンピューター１２０２は、モデム１２５８を含むことができ、又はＷＡＮ  １２５４上で通信サーバーに接続され、又はインターネット等によってＷＡＮ  １２５４を介して通信を確立する他の手段を有する。内部にあっても外部にあってもよく、また有線デバイスであっても無線デバイスであってもよいモデム１２５８は、シリアルポートインターフェース１２４２を介してシステムバス１２０８に接続される。ネットワーク化された環境では、コンピューター１２０２に関して図示されたプログラムモジュール又はその一部は、リモートメモリー／記憶装置１２５０に格納され得る。図示されたネットワーク接続は例示的なものであり、コンピューター間の通信リンクを確立する他の手段が使用され得ることが理解されよう。
【００６７】
コンピューター１２０２は、任意の無線デバイスや無線通信動作可能に配置されたエンティティー、例えばプリンター、スキャナー、デスクトップ及び／又はポータブルコンピューター、携帯情報端末、通信衛星、無線で検出可能なタグに関連する任意の機器又は位置（例えばキオスク、新聞売店、化粧室）、及び電話と通信するように動作可能である。これは、少なくともＷｉ−Ｆｉ及びブルーツース（登録商標）無線技術を含む。したがって、この通信は、従来のネットワークのように事前定義された構造であっても、単に少なくとも２つのデバイス間のアドホック通信であってもよい。
【００６８】
次に図１３を参照すると、バックエンドサービスのためにプロキシサーバーによってモバイルクライアント更新を容易にする例示的なコンピューティング環境１３００の概略ブロック図が示されている。システム１３００は１つ又は複数のクライアント１３０２を含む。クライアント１３０２はハードウェア及び／又はソフトウェア（例えばスレッド、プロセス、コンピューティングデバイス）であり得る。クライアント１３０２は、例えばこの技術革新を使用することによってクッキー及び／又は関連のコンテキスト情報を収容することができる。
【００６９】
また、システム１３００は１つ又は複数のサーバー１３０４を含む。サーバー１３０４は、ハードウェア及び／又はソフトウェア（例えばスレッド、プロセス、コンピューティングデバイス）とすることもできる。サーバー１３０４は、例えばこのアーキテクチャーを使用することによって変換を実施するためのスレッドを収容することができる。クライアント１３０２とサーバー１３０４との間の１つの可能な通信は、２つ以上のコンピュータープロセス間で送信されるようになされたデータパケットの形であり得る。データパケットは、例えばクッキー及び／又は関連のコンテキスト情報を含み得る。システム１３００は、クライアント１３０２とサーバー１３０４との間の通信を容易にするために使用され得る通信フレームワーク１３０６（例えばインターネットなどのグローバル通信ネットワーク）を含む。
【００７０】
通信は、有線（光ファイバーを含む）及び／又は無線技術によって容易にされ得る。クライアント１３０２は、クライアント１３０２にローカルな情報（例えばクッキー及び／又は関連のコンテキスト情報）を格納するために使用され得る１つ又は複数のクライアントデータ記憶部１３０８に動作可能に接続される。同様に、サーバー１３０４は、サーバー１３０４にローカルな情報を格納するために使用され得る１つ又は複数のサーバーデータ記憶部１３１０に動作可能に接続される。
【００７１】
上記に開示された内容は、開示された技術革新の例を含む。当然ながら、コンポーネント及び／又は方法論の考え得るあらゆる組合せについて説明することはできないが、更なる多くの組合せ及び置換が可能であることが当業者には認識されよう。したがって、この技術革新は、添付の特許請求の範囲の精神及び範囲内にあるこうしたすべての変更、修正及び変形を包含するものである。更に、用語「含む」が発明を実施するための形態又は特許請求の範囲において使用される限りでは、こうした用語は、用語「備える」が特許請求の範囲での移行語として解釈されるので、「備える」と同様に包含的なものとする。
【図１】
2010517165.tif 000003
【図２】
2010517165.tif 000004
【図３】
2010517165.tif 000005
【図４】
2010517165.tif 000006
【図５】
2010517165.tif 000007
【図６】
2010517165.tif 000008
【図７】
2010517165.tif 000009
【図８】
2010517165.tif 000010
【図９】
2010517165.tif 000011
【図１０】
2010517165.tif 000012
【図１１】
2010517165.tif 000013
【図１２】
2010517165.tif 000014
【図１３】
2010517165.tif 000015
【国際調査報告】
2010517165.tif 000016
2010517165.tif 000017