(57)【要約】  モバイルデバイス上に存在する汎用シッククライアントを使用して、モバイルデバイスコンテンツを提供する多数のサービスのためのユーザインタフェース生成サポートを提供するデバイス仮想化サービス（ＤＶＳ）が提供される。当該ＤＶＳはサービスからのデバイス特性を抽象化して、前記サービスによって表されて前記デバイスでレンダリングされるべきデバイス非依存ユーザ経験を提供する。
2009541894.tif 000002
【特許請求の範囲】
【請求項１】
モバイルデバイス上でネットワーク化されたサービスのためのユーザインタフェースを提供するためのコンピュータで実行される方法であって、
モバイルデバイスに汎用シッククライアントを提供するステップ（３０８）であって、前記汎用シッククライアントはネットワーク化されたサービスのために前記モバイルデバイス上にユーザインタフェースを提供するように構成されている、ステップと、
前記モバイルデバイスからのデータの要求を受信するステップ（３２４、３２６）と、
サービスプロバイダからのデータを要求するステップ（３２８、３３０）であって、前記サービスプロバイダから受信した前記データはデバイス非依存である、ステップと、
前記サービスプロバイダからのデータを最適なフォーマットにコンパイルするステップ（４０４）と、
前記最適なフォーマットのデータを前記デバイスに応答するステップ（４０６）と
を備えることを特徴とする方法。
【請求項２】
請求項１記載のコンピュータで実行される方法であって、モバイルデバイスへの汎用シッククライアントを提供ステップ（３０８）は、ＳＭＳメッセージ内でＵＲＬを送信して前記汎用シッククライアントのダウンロードのための場所を示すステップを含むことを特徴とする方法。
【請求項３】
請求項２記載のコンピュータで実行される方法であって、前記汎用シッククライアントをダウンロードステップ（３０８）は、モバイルデバイスを認証して暗号化されたユーザＩＤ及びハッシュを含むクッキーを送信するステップを含むことを特徴とする方法。
【請求項４】
請求項３記載のコンピュータで実行される方法であって、前記クッキーを確認して（３１４）前記モバイルデバイスが前記データを要求したときにサービスデータの閲覧を承認されているかどうかを判定するステップをさらに備えることを特徴とする方法。
【請求項５】
請求項１記載のコンピュータで実行される方法であって、前記汎用シッククライアント（３０８）は、サービスが提供したデータテーブルに関連する値を含むウィジェットを含むことを特徴とする方法。
【請求項６】
請求項１記載のコンピュータで実行される方法であって、前記最適なフォーマット（４０６）は、前記モバイルデバイスの特性と関連するフォーマットを含むことを特徴とする方法。
【請求項７】
請求項７記載のコンピュータで実行される方法であって、前記モバイルデバイスの特性（２０６）は、画面サイズ、オーディオＣＯＤＥＣ、ビデオＣＯＤＥＣ、ピクセル解像度及びサポートされているメディアフォーマットの少なくとも１つを含むことを特徴とする方法。
【請求項８】
サービスからモバイルデバイスの仕様を抽象化してモバイルデバイス上のＵＩをレンダリングするデバイス非依存のユーザ経験を提供するコンピュータ実行可能命令を有するコンピュータ読み取り可能媒体であって、前記命令は、
前記モバイルデバイスの特性（２０６）を取得する命令と、
前記モバイルデバイスからのデータの要求を受信する命令（３２４、３２６）と、
サービスプロバイダからの前記データを要求する命令（３２８、３３０）であって、前記サービスプロバイダから受信した前記データはデバイス非依存である、命令と、
前記サービスプロバイダからの前記データを最適なフォーマットにコンパイルする命令（４０４）であって、前記最適なフォーマットは前記モバイルデバイスの特性に関連するフォーマットを含む、命令と、
前記最適なフォーマットのデータで、前記受信したデータ要求に応答する命令（４０６）であって、当該最適なフォーマットのデータは、前記モバイルデバイスの汎用シッククライアントとの関連するように構成されている、命令と
を備えることを特徴とするコンピュータ読み取り可能媒体。
【請求項９】
請求項８記載のコンピュータ読み取り可能方法であって、前記モバイルデバイスの特性（２０６）は、画面サイズ、オーディオＣＯＤＥＣ、ビデオＣＯＤＥＣ、ピクセル解像度及びサポートされているメディアフォーマットの少なくとも１つを含むことを特徴とする方法。
【請求項１０】
請求項８記載のコンピュータ読み取り可能方法であって、モバイルデバイスからのデータの要求の受信命令は、前記要求に関連したクッキーを確認することよって前記要求を認証する命令（３１４）を含むことを特徴とする方法。
【請求項１１】
請求項８記載のコンピュータ読み取り可能方法であって、デバイス非依存データ（４０２）は、モバイルデバイスのタイプに対して最適フォーマット化されていないデータを含むことを特徴とする方法。
【請求項１２】
請求項８記載のコンピュータ読み取り可能方法であって、前記モバイルデバイスにデータテーブルを提供して前記汎用シッククライアントに関連するウィジェットの少なくとも１つと前記データテーブルとを結合する命令（３０８）をさらに備えることを特徴とする方法。
【請求項１３】
請求項８記載のコンピュータ読み取り可能方法であって、前記サービスプロバイダからの前記データを最適なフォーマットにコンパイルする命令は、前記サービスプロバイダと前記モバイルデバイスとの間に抽象化の層を提供することを特徴とする方法。
【請求項１４】
モバイルデバイス上のネットワーク化されたサービスのためのユーザインタフェースを提供するためのコンピュータで実行される方法であって、
汎用シッククライアントをモバイルデバイスに提供するステップ（３０８）であって、前記シッククライアントは前記モバイルデバイス上のデータプロセシング装置を動作させかつ前記モバイルデバイスの外部のストレージを保持するように構成された、ステップと、
モバイルデバイスの特性を取得するステップ（２０６）と、
前記モバイルデバイスからのデータの要求を受信するステップ（３２４、３２６）と、
サービスプロバイダから前記データを要求するステップ（３２８、３３０）であって、前記サービスプロバイダはデバイス非依存フォーマットでデータを提供する、ステップと、
前記サービスプロバイダからの前記データを最適なフォーマットにコンパイルするステップ（４０４）であって、前記最適なフォーマットは前記モバイルデバイスの特性に関連したフォーマットを含む、ステップと、
前記最適なフォーマットのデータを前記汎用シッククライアントへ送信することで、前記受信されたデータ要求に応答するステップ（４０６）と
を備えることを特徴とする方法。
【請求項１５】
請求項１４記載のコンピュータで実行される方法であって、汎用シッククライアントをモバイルデバイスに提供するステップ（３０８）は、ＳＭＳメッセージでＵＲＬを送信して前記汎用シッククライアントのダウンロードのための場所を示すステップを含むことを特徴とする方法。
【請求項１６】
請求項１５記載のコンピュータで実行される方法であって、前記汎用シッククライアントをダウンロードするステップは、モバイルデバイスを認証して暗号化されたユーザＩＤ及びハッシュを含むクッキーを送信するステップを含むことを特徴とする方法。
【請求項１７】
請求項１４記載のコンピュータで実行される方法であって、前記汎用シッククライアント（３０８）は、サービスが提供するデータテーブルに関連した値を含むウィジェットを含むことを特徴とする方法。
【請求項１８】
請求項１４記載のコンピュータで実行される方法であって、前記モバイルデバイスにデータテーブルを提供して前記汎用シッククライアントに関連するウィジェットの少なくとも１つと前記データテーブルとを結合するステップ（３０８）をさらに備えることを特徴とする方法。
【請求項１９】
請求項１４記載のコンピュータで実行される方法であって、前記サービスプロバイダからの前記データを最適なフォーマットにコンパイルするステップ（４０４）は、前記サービスプロバイダと前記モバイルデバイスとの間の抽象化層を提供することを特徴とする方法。
【請求項２０】
請求項１４記載のコンピュータで実行される方法であって、前記モバイルデバイスの前記特性（２０６）は、画面サイズ、オーディオＣＯＤＥＣ、ビデオＣＯＤＥＣ、ピクセル解像度及びサポートされているメディアフォーマットの少なくとも１つを含むことを特徴とする方法。
【発明の詳細な説明】
【背景技術】
【０００１】
モバイルデバイス上で実行されるプログラム、アプリケーションまたはサービスのユーザ満足度は、しばしばモバイルデバイスに付随するユーザインターフェース（ＵＩ）に依存する。いくつかのモバイルデバイスにおいて、ユーザインタフェース（ＵＩ）はインターネットを介してモバイルデバイスに供給される。ユーザインタフェースのウェブベースの提供において、ウェブページはサーバ上に構築されて、モバイルデバイス上で使用可能なウェブブラウザを介してユーザに提供される。ユーザとウェブページとの間の双方向性（ｉｎｔｅｒａｃｔｉｖｉｔｙ）はブラウザのレンダリング能力に制限される。このことはユーザとプログラムとの間の双方向性も制限する。モバイルデバイスは制限された通信帯域幅も有する。低い帯域幅は、ユーザのモバイルデバイス上に形成されるウェブページと外部サーバにあるアプリケーションとの間の受信及び送信に長い待ち時間を生じさせ得る。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
ＵＩは、モバイルデバイスにプログラム全体又はアプリケーション全体をダウンロードすることによってもモバイルデバイスと関連付けられていてもよい。プログラム全体はモバイルデバイスのメモリの大きな部分を消費することがある。ＵＩは、モバイルデバイスに「シッククライアント（ｔｈｉｃｋ  ｃｌｉｅｎｔ）」をダウンロードすることでモバイルデバイスと関連していてもよい。入手可能な様々なモバイルデバイス及び様々なシッククライアントはコンパティビリティの問題があり、その問題はこれらのタイプのクライアントが使用される場合に生ずる。様々なモバイルデバイスの各々のためにシッククライアントを構築することは、開発、テスト及び経済非効率性を招く。
【課題を解決するための手段】
【０００３】
本概要は、詳細な説明において以下でさらに説明されるコンセプトの抜粋を単純化された形式で紹介するために提供される。本概要は特許請求された発明の重要な特徴または本質的な特徴を特定することを意図するものではなく、また特許請求された発明の範囲の決定の目的に使用されることを意図したものでもない。
【０００４】
デバイス仮想化サービスは、業界標準（ｇｅｎｅｒｉｃ）のシッククライアントをモバイルデバイスに提供する。業界標準のシッククライアントは、開発者がユーザインタフェースを生成して各々のモバイルデバイスモデルに特化したコードを書く必要無しに、複数のモバイルデバイスにおいてカスタマイズ可能なユーザインタフェースを提供することを容易にする。このような方法で、インターネットサービスは、情報がレンダリングされるデバイスのタイプを考慮すること無しにデータ及び情報をモバイルデバイスに提供し得る。
【０００５】
本発明の、非制限的かつ非包括的な実施例は以下の図を参照しつつ説明される。ここにおいて、特別に言及しない限り、種々の図に亘って同様の参照符は同様の部分を示す。
【発明を実施するための最良の形態】
【０００６】
実施形態は添付図面を参照して以下でより完全に説明され、本明細書の一部を形成し、実施形態を実施するための特定の例を示す。しかしながら、実施形態は種々の異なる形態で実施されてもよく、本明細書で説明される実施例に制限されると解釈されるべきではない。むしろ、これらの実施形態が提供されて、本開示は詳細及び完全になり、並びに全体として当業者に本発明の範囲を完全に伝えるであろう。開示された実施形態は、方法、システムまたはデバイスとして実施されるであろう。従って、開示された実施例は、ハードウェア全体の実施形態、ソフトウェア全体の実施形態またはソフトウェア面及びハードウェア面を組み合わせる実施形態をとるであろう。よって、以下の詳細な説明は制限の意味を持たない。
【０００７】
本明細書で示されたルーチンの議論を読む場合、様々な実施形態の論理演算は（１）コンピュータが実行する動作もしくはコンピュータシステム上で実行されるプログラムモジュールのシーケンスとして、及び／または（２）相互接続したマシンの論理回路またはコンピュータシステム内の回路モジュールとして実装されると理解されるべきである。当該実装は、本発明を実行するコンピュータシステムの性能要求に依存する選択事項である。従って、示された論理演算及び本明細書に説明された実施形態を構成することは、操作、構造デバイス（ｓｔｒｕｃｔｕｒａｌ  ｄｅｖｉｃｅｓ）、動作またはモジュールとして様々にみなされる。これらの操作、構造デバイス、動作またはモジュールは、ソフトウェアによって、ファームウェアによって、特定の目的のデジタルロジックによって及びそれらの任意の組み合わせによって実行されてもよい。
【０００８】
ここで図を参照するに、同様の参照符は同様の要素を表し、本発明の様々な態様が説明される。特に、図１及びそれに対応する議論は、本発明の実施形態が実装され得る適当なコンピューティング環境の一般的な説明の概要を提供する。
【０００９】
一般的に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、及び特定のタスクを実施しまたは特定の抽象データタイプを実行する他のタイプの構造を含む。ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能なコンシューマー電子機器、ミニコンピュータ、メインフレームコンピュータ等を含む他のコンピュータシステム構成も使用され得る。分散型のコンピューティング環境も使用され得、そこにおいてタスクはコミュニケーションネットワークでリンクしているリモートプロセシングデバイスによって実行される。分散型コンピューティング環境において、プログラムモジュールはローカルおよびリモートメモリストレージデバイスの両方に存在し得る。
【００１０】
図１をここで参照すると、様々な実施形態において使用されるコンピューティングデバイス１００の例示的コンピュータアーキテクチャが図示されている。当該コンピュータはパーソナルコンピュータ、モバイルコンピュータ及びその他同様なものとして構成され得る。示されているように、コンピューティングデバイス１００は、セントラルプロセシングユニット１０２（ＣＰＵ）、ランダムアクセスメモリ１０６（ＲＡＭ）及びリードオンリーメモリ１０８（ＲＯＭ）を含むシステムメモリ１０４、並びにメモリとＣＰＵ１０２を結合するシステムバス１１６を含む。コンピューティングデバイス１００は、さらにオペレーティングシステム１２２、アプリケーションプログラム及び他のプログラムモジュールを保存するマスストレージデバイス１２０を含み、このことは以下で詳細に説明される。
【００１１】
マスストレージデバイス１２０及びそれに関連するコンピュータ読み取り可能媒体は、コンピューティングデバイス１００の揮発性及び不揮発性ストレージを提供する。当該コンピュータ読み取り可能媒体は任意のタイプのリムーバブル及び／または非リムーバブル媒体を含んでもよい。
【００１２】
コンピューティングデバイス１００は、インターネットなどのネットワーク１１２を介したリモートコンピュータとの論理接続を使用するネットワーク化された環境において動作する。コンピューティングデバイス１００は、バス１１６に接続されたネットワークインタフェイスユニット１１０を介してネットワーク１１２と接続してもよい。
【００１３】
コンピューティングデバイス１００は、例えば、キーボード、マウス、電子スタイラスなど、多くのデバイスからの入力を受信して演算するための入力／出力コントローラ１１４も含んでいてもよい。同様に、入力／出力コントローラ１１４は、ディスプレイスクリーン、プリンタまたは他のタイプのデバイス（図示せず）へ出力を提供してもよい。
【００１４】
上記で簡単に言及したように、ネットワーク化されたコンピュータの動作をコントロールするのに適したオペレーティングシステム１２２を含む多くのプログラムモジュール及びデータファイルが、コンピュータデバイス１００のマスストレージデバイス１２０及びＲＡＭ１０６内に保存されていてもよい。マスストレージデバイス１２０及びＲＡＭ１０６は、１つまたは複数のプログラムモジュールを保存してもよい。特に、マスストレージデバイス１２０及びＲＡＭ１０６はデバイス仮想化サービス（ＤＶＳ）モジュール１２４を保存していてもよい。
【００１５】
ＤＶＳモジュール１２４の構成は、コンピューティングデバイスがサービスデータおよびインタラクション(ｉｎｔｅｒａｃｔｉｏｎ)を提供するサービスプロバイダサーバとして、モバイルデバイスに送信するためのデータを構成するＤＶＳサーバとして、またはモバイルデバイス自体として構成されたかに依存する。サービスプロバイダコンピューティングデバイスに対して、ＤＶＳモジュール１２４は、ＤＶＳサーバと汎用フォーマットでデータを通信するための構成ファイル及び通信プロトコルを提供する。ＤＶＳサーバに対して、ＤＶＳモジュール１２４は、サービスサーバから受信したデータを変換するための変換及びパッケージング構成データを提供する。ＤＶＳモジュール１２４はモバイルデバイスへの効率的な送信のためにデータをパッケージングする。モバイルデバイス自体に対して、ＤＶＳモジュール１２４は、モバイルデバイスのスクリーン上に表示される結果のユーザインタフェースをレンダリングするためのシッククライアントアプリケーションを含んでもよい。シッククライアント（ファットクライアントまたはリッチクライアントしても知られている）はデータ演算動作を実行し、かつデータストレージを関連するサーバに依存するクライアントである。
【００１６】
本願明細書及び特許請求の範囲を通して、文中で明らかな指示がある場合を除いて、以下の用語は本明細書において明示的な意味を有する。
【００１７】
いくつかの態様において、「デバイス仮想化サービス」または「（ＤＶＳ）」は、通信のサーバ側またはクライアント側に言及する場合であっても、ＤＶＳサーバを通過した汎用データからモバイルデバイス上のユーザインタフェースを生成するためのネットワーク構成の任意の部分をいう。
【００１８】
いくつかの態様において、「ＤＶＳサーバ」はサービスからの汎用データを取得し、汎用データを最適なフォーマットに変換及びパッケージングすることを容易にし、モバイルデバイスと当該サービスとの間の通信のイベントハンドリングを容易にし、かつその他の追加的なタスクも実行するように構成されたサーバをいう。
【００１９】
いくつかの態様において、「イベント（Ｅｖｅｎｔ）」は、ユーザインタフェースと関連するサービスへ通信を返す及び当該サービスから通信を受けることをトリガする、モバイルデバイス上でレンダリングされたユーザインタフェースのインタラクションをいう。
【００２０】
いくつかの態様において、「ウィジェット（ｗｉｄｇｅｔ）」は、ユーザ経験（ｕｓｅｒ  ｅｘｐｅｒｉｅｎｃｅ：ＵＸ）を提供するためのユーザインタフェース要素をいう。ウィジェットの１つの例示的定義として、ウィジェットはディスプレイフレーム及びテキストボックスのようなインタフェースコンポーネントであってもよい。
【００２１】
デバイス仮想化サービス（ＤＶＳ）はモバイルデバイス上へのユーザ経験（ＵＸ）の表示を容易にする。１つの実施例において、ＤＶＳはインタフェース（ＡＰＩ）を提供して、ユーザインタフェース（ＵＩ）ページのウィジェットを順に配置するユーザインタフェースページのセットをサービスが提供することを可能にする。当該ウィジェットは当該ページ上に含まれたデータの効率的なストレージのためのデータテーブルを含んでいてもよい。当該デバイス仮想化サービス（ＤＶＳ）は、当該デバイスにおけるエンドユーザ経験を表示したいサービスからデバイスの仕様を抽象化する。当該ＤＶＳは当該サービスによって表されて当該デバイス上でレンダリングされるべきデバイス非依存ＵＸを提供する。当該ＤＶＳは、スクリーンサイズ、サポートされているオーディオ及びビデオＣＯｍｐｒｅｓｓ／ＤＥＣｏｍｐｒｅｓｓ技術（ＣＯＤＥＣ）の様なデバイス性能を取得し、当該サービスは適切なメディアを当該デバイスに提供可能である。
【００２２】
図２は、本開示に従ったデバイス仮想化サービスを提供するための例示的システムを示している。当該システムはサービス２０２、ＤＶＳサーバ（群）２０４及びモバイルデバイス（例えば２０６）を含む。
【００２３】
サービス２０２は、メディアを提供するサービスまたはニュースもしくはスポーツヘッドラインを提供する他のサービスに対応してもよい。特定のタイプのサービスは本開示の範囲または適用性に影響することなく変化してもよい。サービス２０２は、サービスに特化したデータを保存及び管理しかつ他のデバイスとのデータ通信の役割を持つサーバ又はその他のコンピューティングデバイスによって物理的に表わされてもよい。
【００２４】
ＤＶＳサーバ２０４は、サービス２０２からのデータを受信し、当該データを送信のためにパッケージングし、レンダリングのために当該データをモバイルデバイス（例えば２０６）へ送信し、当該モバイルデバイス上で起きるイベントをハンドリングしてこれらのイベントを通信するように構成される。ＤＶＳサーバ２０４の動作のさらに詳細な議論は、以下の図３の議論において提供される。
【００２５】
パッケージされたデータをモバイルデバイス（例えば２０６）が受信すると、当該モバイルデバイスはＤＶＳ汎用シッククライアントを使用して当該データをレンダリングする。汎用シッククライアントは、当該モバイルデバイス上に存在する各々のサービスのためのカスタマイズプログラミング無しに、複数のサービスのためのユーザインタフェースをレンダリングする。システム２００を含むプロセスのさらに詳細な議論は、以下の図４の議論において提供される。
【００２６】
図２は、ＤＶＳと関連する要素の完全な表現を示してはいない。追加の、つまりいくらかの要素が含まれてもよく、当該ＤＶＳはその意図された目的のために動作する。例えば、代替実施形態において、サービスはＤＶＳサーバ上のストレージのためのプログラムを提供し、それによって当該ＤＶＳとサービスに加入しているモバイルデバイスとの間の通信がダイレクトに提供される。この様な代替実施形態において、当該ＤＶＳサーバは、サービスプロバイダにデータを転送する必要はない。
【００２７】
アプリケーションプログラミングインタフェース（ＡＰＩ）によって、サービスはデバイスの特性のセットを取得して、特定のモバイルデバイスへ提供されるデータをカスタマイズすることが可能である。例えば、サービスがデバイスのピクセル解像度を判定すると、メディアはデバイスサポートをフォーマットし、このメディア設定は最適なデバイス再生及びそれに類したものを提供する。
【００２８】
音楽サービスのような典型的なサービスは、しばしば、それらのサービス経験の様々な異なる部分のための一連のページレイアウトを提供する。例えば、ミュージックサービスは、アーティストページによる閲覧、ジャンルページによる閲覧及びそれらに類したものを含んでいてもよい。音楽サービスはメディアプレビューページ及び購入確認ページを提供してもよい。当該ページ間のナビゲーションは、当該ページ上の１つまたは複数のウィジェットに付随する動作によって定められる。このようにして、サービスはＵＩのフロー全体の実質的なコントロールをする。
【００２９】
図３は、デバイス仮想化サービス（ＤＶＳ）を使用したサービスデータの受け入れのためのモバイルデバイスをプロビジョニング（ｐｒｏｖｉｓｉｏｎｉｎｇ）する動作フローダイアグラムを示している。モバイルデバイスのユーザが特定のサービスに加入することを選択すると、プロセス３００が開始する。プロセスは動作３０２おいて継続する。
【００３０】
動作３０２において、メッセージは、モバイルデバイスが汎用シッククライアントを探してダウンロード可能なネットワークアドレスを伴ってモバイルデバイスに送信される。１つの実施形態においてＤＶＳサーバは、汎用シッククライアントをダウンロードするための場所を示したＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を含むショートメッセージングサービス（ＳＭＳ）メッセージをモバイルデバイスに送信する。プロセスは動作３０４において継続する。
【００３１】
動作３０４において、当該ＳＭＳメッセージで送信されたＵＲＬ上でユーザが選択、つまりクリックして、モバイルデバイスに汎用シッククライアントをダウンロードするダウンロードプロセスが開始する。プロセスは動作３０６において継続する。
【００３２】
動作３０６において、インターネットサービスサーバつまりＨＴＴＰＳサーバは、ユーザのモバイルデバイスに送信されたＵＲＬにおいてエンコードされたユーザＩＤを認証（ａｕｔｈｅｎｔｉｃａｔｅ）する。認証はＳＭＳメッセージを送信されたモバイルデバイスがダウンロードされたクライアントアプリケーションを受信するデバイスであることを保証する。暗号化されたユーザＩＤ及びハッシュ（ｈａｓｈ）を含むクッキー（ｃｏｏｋｉｅ）がモバイルデバイスに送信され、当該モバイルデバイスは将来における通信を認証されたモバイルデバイスとして認識される。クッキーと共に汎用シッククライアントがモバイルデバイスにダウンロードされる。プロセスはブロック３０８において継続する。
【００３３】
ブロック３０８において、汎用シッククラインアントがモバイルデバイスにインストールされる。１つまたは複数のイントールウィザードがインストールに使用されてもよく、その他のイントール方法が使用されてもよい。汎用シッククライアントがインストールされて、プロセスは動作３１０に続く。
【００３４】
動作３１０において、シッククライアントは、サービスに関連するデータを受信するためにユーザによってアクティブ化される。シッククライアントがアクティブ化されて、プロセスは動作３１２に続く。
【００３５】
動作３１２において、デバイスキーが要求されて、モバイルデバイスのユーザ及びモバイルデバイスがサービスデータへのアクセスを承認される（ａｕｔｈｏｒｉｚｅｄ）認証が行われる。プロセスは動作３１４において継続する。
【００３６】
動作３１４において、クッキーが確認（ｖａｌｉｄａｔｅ）されて、当該モバイルデバイスがサービスデータの閲覧を承認されたモバイルデバイスであることが保証される。他の実施形態において、ユーザネーム／パスワードが、モバイルデバイスのユーザをサービスデータ閲覧可能と確認するために使用されてもよい。認証が失敗した場合、ユーザの信用証明書つまりモバイルデバイスの信用証明書がチャレンジ（ｃｈａｌｌｅｎｇｅ）されてもよい。チャレンジされた場合、プロセスは動作３１６に進む。
【００３７】
動作３１６において、サービスデータのレンダリングされたバージョンを生成するユーザインタフェースは、信用チャレンジの結果としてユーザの信用証明書の要求のための遷移をしてもよい。ユーザインタフェース画面が認証のためのユーザＩＤ及びパスワードの入力のために表示されてもよい。当該証明書が提供されると、プロセスはモバイルデバイスがサービスサーバによって再度認証される動作３１２に戻る。認証されると、プロセスは動作３１８において継続する。
【００３８】
動作３１８において、デバイスキーの複数のペアがモバイルデバイスとのサービスの通信を保護するために生成される。現在デバイスがサービスデータにアクセスしている事を示すデバイスレコードが生成される。プロセスは動作３２０において継続する。
【００３９】
動作３２０において、デバイスプライベートキー、デバイスＩＤ及び次のシーケンス番号がモバイルデバイスに返送される。当該デバイスプライベートキーは、データがモバイルデバイスによって受信されたときに当該データのソースを認証するために使用される。当該デバイスＩＤは、サービスのためのデバイス固有の識別子を提供してサービスデータプロビジョニングを促進するために将来の通信において使用されてもよい。当該次のシーケンス番号は、サービスデータの受信に関連するデバイスが現在どこにあるかを示す。例えば、サービスは、モバイルデバイスへニュースアイテムを送信するニュースサービスであってもよい。ユーザがニュースサービスアイテムをしばらく受信しなかった場合、このことは当該シーケンス番号に反映される。シーケンス番号によって示された時点以降の全てのニュースアイテムの各々は、モバイルデバイスに転送されてもよい。プロセスは動作３２２において継続する。
【００４０】
動作３２２において、プライベートキー、デバイスＩＤ及びシーケンス番号はモバイルデバイスに保存される。プロセスは動作３２４において継続する。
【００４１】
動作３２４において、サービスのための実データがＤＶＳサーバに要求される。当該ＤＶＳサーバは、暗号化されたデバイスプライベートキー、デバイスＩＤ、シーケンスナンバ及びハッシュを、モバイルデバイスが実行している汎用シッククライアントのバージョンナンバと共に送信を受ける。当該要求がＤＶＳサーバに与えられると、プロセスは動作３２６を継続する。
【００４２】
動作３２６において、当該ＤＶＳサーバは、当該デバイスＩＤ、シーケンスナンバ、ハッシュ及びバージョンナンバを、プライベート／パブリックキーペアのパブリックキーを使用して復号し、それらを確認する。プロセスは動作３２８に続く。
【００４３】
動作３２８において、当該ＤＶＳサーバは、パブリックキーを使用して暗号化された次のシーケンスナンバ、実サービスデータ及び任意の特定動作（例えば、デバッグモード有効化）をモバイルデバイスに返送する。プロセスは動作３３０に続く。
【００４４】
動作３３０において、汎用シッククライアントはサービスデータを解釈して、サービスのための最上位のページを表示する。完了すると、ユーザは当該データに触れ、プロセスは他のタスクに進む。
【００４５】
プロセス３００は、モバイルデバイス上でレンダリングするサービスデータを受信するためのモバイルデバイスをプロビジョニングする１つの態様である。他の方法も使用され得る。ＤＶＳサーバとモバイルデバイスとの間のインタラクションのさらに高いレベルの説明は、以下の図４の議論においてさらに提供される。しかし、プロセス３００において表わされている認証プロセスは、本明細書に説明されている他のプロセスに同様に適用できる。
【００４６】
図４は、ＤＶＳサーバの動作のための例示プロセスの動作フローダイアグラムを示している。ユーザ経験（ＵＸ）定義がサービスによって生成された時にプロセス４００が開始され、当該ＵＸ定義の当該ＤＶＳサーバへの送信が開始される。プロセスは動作４０２に進む。
【００４７】
動作４０２において、ＵＸ定義がＤＶＳサーバによって受信される。１つの実施例において、当該ＵＸ定義はＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイルとして提供される。その他の実施形態は、他のフォーマットによるＵＸ定義を受信してもよい。プロセスは動作４０４に進む。
【００４８】
動作４０４において、サービスから受信されたＵＸ定義ファイルはバイナリコードにコンパイルされる。当該バイナリコードは、制限された通信帯域幅を保ちつつモバイルデバイスに送信され得るコンパクトな形式のデータである。当該バイナリデータが生成されると、プロセスは動作４０６に進む。
【００４９】
動作４０６において、当該バイナリコードは、サービスのためのユーザインタフェースをレンダリングするモバイルデバイスへ送信される。１つの実施形態において、当該バイナリコードは、図３に関連して上記されている認証プロセスに従って送信される。プロセスは判定動作４０８に進む。
【００５０】
判定動作４０８において、サービスデータによってレンダリングされるユーザインタフェースに関連してイベントが発生しているかどうかの判定が行われる。イベント通知は、そのようなイベント（例えばマウスクリック）を示すＤＶＳサーバによって受信されてもよい。イベントが発生した場合、プロセスは動作４１０に進む。
【００５１】
動作４１０において、イベントはハンドリングのためにサービスサーバにルーティングされる。当該イベントがサービスサーバにルーティングされると、プロセス４００は終了し、モバイルデバイスへのルーティング応答、さらなるイベントの受信またはモバイルデバイスのサービスセッションからのログアウト等の他のタスクに移動する。
【００５２】
図５は、本開示において説明されている汎用シッククライアントによってレンダリングされたサービスユーザインタフェース画面のスクリーンショットを図示している。当該レンダリングされた画面はサービスのページに対応している。特定のページの各々は、一連のウィジェット定義によって定義される。当該一連のウィジェット定義は、ウィジェットのページ上での場所、ウィジェットの一部に使用されているビットマップ、使用されているフォント並びに動作及び表示に影響を与えるその他の特性を含むウィジェットの特性を示したものである。イベントをハンドリングするために０又は１以上の振る舞いが各々のウィジェットに加えられ、当該ウィジェットはクリック認識イベントまたはその他の値変化の様なものを生成してもよい。当該作用は、他のウィジェットへの焦点の移動、他のページへの移動、サービスへのカタログまたはメディア要求の送信及びそれに類するものといった操作に対応する。ウィジェットのレイアウトは絶対ピクセル軸において特定される、すなわち拘束ベースのレイアウトが使用される。拘束は、他のウィジェットに対する位置またはディメンション、スクリーン／ページディメンションまたはテキストフォントディメンションを特定するために使用されてもよい。このことは、サービスが異なったデバイスのスクリーン解像度の各々に対するページレイアウトを提供する必要がないように、デバイス仮想化の調整を可能とする。
【００５３】
多くのウィジェットは、サービスが提供したデータテーブルと結合することによって値を取得する。テーブルフォーマット及びデータはサービスによって特定される。前述の音楽サービスの例は、アーティスト、アルバム、ジャンル及びトラックを含んでいてもよい。テーブルは、他のテーブルにおける行（ｒｏｗ）に関連する値をもつ１つまたは複数の領域を含んでいてもよい。例えば、アーティスト及びアルバムのテーブルは、ジャンルテーブルと関連して、特定のアーティストまたはアルバムのジャンルを表示するのが好ましい。同様に、アルバムテーブルはアーティストテーブルと関連して特定のアルバムのアーティストを表示する。
【００５４】
当該結合はページ定義と関連していてもよい。データ結合は、特定のデータテーブルにリンクするようにウィジェットに提供される。当該テーブルはフィルタリングされて、当該テーブル内の領域内の特定の値を入力となってもよい。例えば特定のアーティストによるアルバムを表示するために、当該アルバムテーブルはフィルタリングされて行を形成し、当該行は選択されたアーティストＩＤを含むアーティストＩＤ領域を有する。テーブル内に保存された値をユーザに表示可能なテキストに変換するために、選択的なフォーマット仕様が提供されてもよい。例えば、タイムスタンプ値（数値的に保存されている）は様々に異なった方法（ｈ：ｍｍ、ｈｈ：ｍｍ、ｈｈ：ｍｍ：ｓｓ等）で表示されてもよい。
【００５５】
前述したように、サービスがこのＤＶＳデータをＤＶＳサーバに既に提供している場合、当該データはユーザのモバイルデバイスに適したバイナリフォーマットに「コンパイル」される。このことは、ＤＶＳを使用するサービスとデバイスクライアントとの間の抽象化層を許容する。従って、当該ＤＶＳは、特定のモバイルデバイスクライアントの形態の間にある多くの相違を隠蔽するであろう。例えば、いくらかのデバイスは、汎用シッククライアントによって提供されたユーザインタフェースウィジェットを介してネイティブメディアプレイヤー（ｎａｔｉｖｅ  ｍｅｄｉａ  ｐｌａｙｅｒ）を表示する機能を有していてもよい。他のデバイスは、サービスが提供したユーザインタフェースから分離したネイティブプレイバックユーザインタフェース（ｎａｔｉｖｅ  ｐｌａｙｂａｃｋ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を介してオーディオを再生する機能のみが提供されてもよい。これらの差異は抽象化されるので、サービスはデバイスの特性の「知識」を要求しない。
【００５６】
デバイス仮想化サービスは、携帯電話、携帯ＰＤＡ、ラップトップ及びデスクトップ、テレビ並びにネットワークに接続されてユーザインタフェースを有する任意のその他のデバイスをサポートしていてもよい。当該ユーザインタフェースは、モバイルデバイスに送信する前のデータのバイナリパッケージングによる帯域幅のより良い使用及びモバイルデバイスの外部のサービスコンテンツを提供するためのデータストレージの保持によるメモリのより良い使用を伴って生成される。さらに、サービスプロバイダは、現在使用できる様々なモバイルデバイスタイプのためのカスタマイズされたコード無しに、カスタマイズされたユーザインタフェースを提供することが可能である。
【００５７】
以上の仕様、例示及びデータは本発明の製品及び構成の使用の完全な説明を提供する。本発明の多くの実施例は、本発明の趣旨及び範囲から逸脱することなく行うことができるので、本発明は以下に添付の特許請求の範囲内にある。
【図面の簡単な説明】
【００５８】
【図１】コンピュータの例示的コンピューティングアーキテクチャを示す図である。
【図２】デバイス仮想化サービスを提供する例示的システムを示す図である。
【図３】デバイス仮想化サービスを使用したサービスデータ受け入れのためにモバイルデバイスをプロビジョニングする例示的システムを示す図である。
【図４】ＤＶＳサーバを動作のための例示的プロセスの動作フローダイアグラムである。
【図５】本開示に従った、汎用シッククライアントによってレンダリングされたサービスユーザインタフェースのスクリーンショットを示す図である。
【図１】
2009541894.tif 000003
【図２】
2009541894.tif 000004
【図３】
2009541894.tif 000005
【図４】
2009541894.tif 000006
【図５】
2009541894.tif 000007
【国際調査報告】
2009541894.tif 000008
2009541894.tif 000009