(57)【特許請求の範囲】
【請求項１】
サーバとデバイスの間の通信の方法であって、
複数の既存のサービス又はアプリケーションを、サービス・クラウド内のサーバであって、
複数のデバイスに対応し、それぞれ前記複数のデバイスの機能及び表示をエミュレートする複数のデバイス・エミュレータと、
第１のデバイスから要求を受信し、前記要求を、前記第１のデバイスに対応するデバイス・エミュレータに送るデバイス・アプリケーション・ハンドラと
を備えたサーバにより提供することと、
前記第１のデバイスに対応する前記デバイス・エミュレータにより、前記アプリケーションの実行を表すグラフィック・イメージを生成することと、
前記デバイス・アプリケーション・ハンドラにより、前記グラフィック・イメージを前記第１のデバイスに送信することと、
前記サービス・クラウドと前記第１のデバイスとの間に配置されたサービス・ブローカにより前記第１のデバイスから取得されたデバイス情報に基づいて、前記第１のデバイスが使用できる１つ又は複数のアプリケーションを有するリストを前記サービス・ブローカにより前記第１のデバイスに送信することと、
を含む方法。
【請求項２】
前記サーバが、選択されたアプリケーションに対応するデバイス・エミュレータを選択することと、
前記サーバが、前記対応するエミュレータを実行して前記グラフィック・イメージを生成することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
表示装置が前記デバイスに配置され、前記表示装置は表示装置解像度を有し、サーバ・ベースの表示解像度に依存しないアプリケーションが前記サーバ上に配置される、請求項１に記載の方法。
【請求項４】
前記サーバが、前記表示装置に対応するグラフィック・イメージ・レイアウトを前記表示装置の解像度に基づいて選択することと、前記サーバ・ベースの表示解像度に依存しないアプリケーションを実行して前記グラフィック・イメージを生成することと、をさらに含む、請求項３に記載の方法。
【請求項５】
第１のデバイスの、アプリケーションに対応する要求に応答する情報処理システムであって、
複数の既存のサービス又はアプリケーションを提供する、サービス・クラウド内のサーバを含み、前記サーバが、
複数のデバイスに対応し、それぞれ前記複数のデバイスの機能及び表示をエミュレートする複数のデバイス・エミュレータと、
前記第１のデバイスの前記要求を受信し、前記要求を、前記第１のデバイスに対応するデバイス・エミュレータに送る、デバイス・アプリケーション・ハンドラと、
を備え、
前記第１のデバイスに対応する前記デバイス・エミュレータは、前記アプリケーションの実行を表示するグラフィック・イメージを生成し、前記デバイス・アプリケーション・ハンドラは前記グラフィック・イメージを前記第１のデバイスに送信し、
前記サービス・クラウドと前記第１のデバイスとの間に配置されたサービス・ブローカであって、前記サービス・ブローカが前記第１のデバイスから取得したデバイス情報に基づいて、前記第１のデバイスが使用できる１つ又は複数のアプリケーションを有するリストを前記第１のデバイスに送信するサービス・ブローカを含む、
情報処理システム。
【請求項６】
非一時的なコンピュータ可読ストレージ媒体に格納され、サーバとデバイスの間の通信のためのプログラム命令を含む実行可能なコンピュータ・プログラムであって、
複数のデバイスに対応し、それぞれ前記複数のデバイスの機能及び表示をエミュレートする複数のデバイス・エミュレータと、第１のデバイスから要求を受信し、前記要求を、前記第１のデバイスに対応するデバイス・エミュレータに送るデバイス・アプリケーション・ハンドラとを備えた、サービス・クラウド内のサーバにより、複数の既存のサービス又はアプリケーションを提供する手順と、
前記第１のデバイスに対応する前記デバイス・エミュレータにより、前記アプリケーションの実行を表すグラフィック・イメージを生成する手順と、
前記デバイス・アプリケーション・ハンドラにより、前記グラフィック・イメージを前記第１のデバイスに送信する手順と、
前記サービス・クラウドと前記第１のデバイスとの間に配置されたサービス・ブローカにより前記第１のデバイスから取得されたデバイス情報に基づいて、前記第１のデバイスが使用できる１つ又は複数のアプリケーションを有するリストを前記サービス・ブローカにより前記第１のデバイスに送信する手順と、
をコンピュータに実行させるためのコンピュータ・プログラム。
【請求項７】
前記コンピュータに、選択されたアプリケーションに対応するデバイス・エミュレータを選択する手順と、前記対応するエミュレータを実行して前記グラフィック・イメージを生成する手順とを実行させるための、請求項６に記載のコンピュータ・プログラム。
【請求項８】
表示装置が前記デバイスに配置され、前記表示装置は表示装置解像度を有し、サーバ・ベースの表示解像度に依存しないアプリケーションが前記サーバ上に配置される、請求項６に記載のコンピュータ・プログラム。
【請求項９】
前記コンピュータに、前記表示装置に対応するグラフィック・イメージ・レイアウトを前記表示装置の解像度に基づいて選択する手順と、前記サーバ・ベースの表示解像度に依存しないアプリケーションを実行して前記グラフィック・イメージを生成する手順とを実行させるための、請求項８に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に情報技術に関し、より具体的にはプラットフォームに依存しない通信に関する。
【背景技術】
【０００２】
ノートブック、携帯電話、携帯端末、ナビゲーション機器、ウェアラブル・コンピュータなどの携帯デバイスは、近年急速に発展してかなり普及している。今日、ユーザは携帯デバイス（携帯電話又は携帯端末（ＰＤＡ）など）を介してインターネットにアクセスし、種々の携帯デバイスにそれぞれカスタマイズされたウェブページを読むことができる。携帯デバイスは、情報管理、音声／映像エンターテイメント、及び商取引などの種々のモバイル・アプリケーションを達成することができる。
【０００３】
現在の携帯デバイスには、幾つかの大きな制限がある。第１に、携帯デバイスのＣＰＵ及びメモリの制限が、その上でのアプリケーションの実行を不利に制限するので、携帯デバイス上で複雑なアップリケーションを実行することが困難になることがある。第２に、メモリの制限のために、ユーザがラップトップ／デスクトップにおいて通常行うように多くのアプリケーションを携帯デバイスにインストールすることは容易でない、換言すれば、携帯デバイスへの多くのアプリケーションのインストールは、ラップトップ／デスクトップへの多くのアプリケーションのインストールに比べて、満足できるものではない。第３に、今日の市場には、種々のオペレーティング・システム（ＯＳ）及びハードウェア仕様（特にＣＰＵ）を有する様々な携帯デバイスが存在し、典型的には種々のアプリケーションは特定のオペレーティング・システム及び携帯デバイス上でのみ実行可能である可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、デバイス／ＯＳ／プラットフォームに依存しない情報処理システム、通信方法、及びコンピュータ・プログラムを提供して、ユーザに種々のアプリケーションを提供するための普遍的環境を提供することが有益である。
【課題を解決するための手段】
【０００５】
一態様において、本発明の一実施形態は、サーバとデバイスの間の通信方法であって、デバイスにより、選択されたアプリケーションの要求をサーバに送信することと、要求に応答して、サーバにより、選択されたアプリケーションの実行を表示するグラフィック・イメージをデバイスに送信することと、による方法を提供する。
【０００６】
さらにこの実施形態に対して、本方法は、サーバにより、デバイスが使用できる１つ又は複数のアプリケーションを有するリストを示すグラフィック・ユーザ・インタフェースを生成することと、ユーザがリストからアプリケーションを選択できるようにすることと、デバイスにより、ユーザが選択したアプリケーションへの入力を受け取ることとを更に含む。
【０００７】
さらにこの実施形態に対して、複数のデバイス・エミュレータをサーバ上に配置することができる。本方法は、サーバにより、選択されたアプリケーションに対応するデバイス・エミュレータを選択することと、サーバにより、対応するエミュレータを実行してグラフィック・イメージを生成することとをさらに含むことができる。
【０００８】
さらにこの実施形態に対して、表示装置をデバイスのために配置することができ、この表示装置は表示装置解像度を有する。サーバ・ベースの表示解像度に依存しないアプリケーションをサーバ上に配置することができる。本方法は、サーバにより、表示装置に対応するグラフィック・イメージ・レイアウトを、表示装置の解像度に基づいて選択することと、サーバ・ベースの解像度に依存しないアプリケーションを実行してグラフィック・イメージを生成することとをさらに含むことができる。
【０００９】
別の態様において、本発明の一実施形態は、第１のデバイスの要求に応答する情報処理システムを提供する。その要求はアプリケーションに対応するものとすることができる。情報処理システムは、複数のデバイスに対応して、複数のデバイスのそれぞれの機能及び表示をエミュレートする複数のデバイス・エミュレータと、第１のデバイスの要求を受け取り、その要求を第１のデバイスに対応するデバイス・エミュレータに伝送するデバイス・アプリケーション・ハンドラとをそなえることができ、ここで第１のデバイスに対応するデバイス・エミュレータはアプリケーションの実行を表示するグラフィック・イメージを生成し、デバイス・アプリケーション・ハンドラはグラフィック・イメージを第１のデバイスに送信する。
【００１０】
さらにこの実施形態に対して、サービス・ブローカをサービス・クラウドと第１のデバイスとの間に配置して、第１のデバイスからサービス・ブローカによって得られたデバイス情報に基づいて、第１のデバイスが使用できる１つ又は複数のアプリケーションを有するリストを第１のデバイスに送信することができる。
【００１１】
さらに別の態様において、本発明の一実施形態は、デバイスの要求に応答するサーバを提供する。この要求はアプリケーションに対応するものとすることができ、アプリケーションはサーバ・ベースの表示解像度に依存しないアプリケーションとすることができる。デバイスは表示装置を有することができ、表示装置は解像度を有することができる。サーバは、要求に応答してサーバ・ベースの表示解像度に依存しないアプリケーションの実行を表示するグラフィック・イメージを生成し、表示装置の解像度に基づいて表示装置に適合するようにグラフィック・イメージのサイズを調節するための対応するサーバ・ベースの表示解像度に依存しないアプリケーションと、デバイスの要求を受け取り、その要求を対応するサーバ・ベースの表示解像度に依存しないアプリケーションに送るためのデバイス・アプリケーション・ハンドラとを備えることができ、ここでデバイス・アプリケーション・ハンドラは調節されたグラフィック・イメージをデバイスに送信する。
【００１２】
さらに別の態様において本発明の一実施形態は、サーバにおいて、アプリケーションに関する要求に応答する方法を提供する。本方法は、要求に応答して、サーバにより、アプリケーションの実行を表示するグラフィック・イメージを生成することと、要求に応答するグラフィック・イメージを送信することとを含むことができる。要求はデバイスから送信することができ、グラフィック・イメージはデバイスに対して送信することができる。
【００１３】
上で略述した本発明のより具体的な説明を、添付の図面に示される特定の実施形態を参照することにより提供する。これらの図面は本発明の実施形態を示すものであり、それゆえに本発明の範囲を限定するものと考えるべきではないことを理解した上で、添付の図面を使用しながら付加的な特定性及び細部によって本発明を記述し説明することになる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態によるシステムの例示的な図である。
【図２】本発明の一実施形態による情報処理システムの例示的な図である。
【図３】本発明の一実施形態による携帯デバイスの例示的な図である。
【図４】本発明の一実施形態によるサービス・クラウドの例示的な図である。
【図５】本発明の一実施形態によるデバイスに依存しない通信方法のフロー図を示す。
【図６】本発明の一実施形態によるデバイスに依存しない通信方法のフロー図を示す。
【図７】本発明の一実施形態によるデバイスに依存しない通信方法のフロー図を示す。
【図８】本発明の一実施形態によるデバイスに依存せず且つ解像度に依存しないアプリケーションの例示的な図である。
【図９】本発明の一実施形態によるデバイスに依存せず且つ解像度に依存しないアプリケーションを取得する方法のフロー図である。
【図１０】本発明の一実施形態による、デバイスが使用できるアプリケーションのリストをデバイスに送信することの例示的な図である。
【発明を実施するための形態】
【００１５】
本明細書の全体を通じて、「１つの実施形態」、「一実施形態」、又は同様の用語への言及は、その実施形態に関連して説明する特定の特徴、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれていることを意味する。従って、「１つの実施形態において」、「一実施形態において」といった語句、又は同様の用語の出現は、本明細書の全体を通じて、必ずというわけではないが全て同一の実施形態を指すことがある。
【００１６】
当業者であれば認識するように、本発明は、システム、方法、又はコンピュータ・プログラムとして具体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、又は本明細書で一般的に全て「回路」、「モジュール」、又は「システム」と呼ぶことができるソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取るものとすることができる。さらに、本発明は、媒体内に具体化されたコンピュータ使用可能プログラム・コードを有する表現の、任意の有形媒体内に具体化されたコンピュータ・プログラムの形態をとることができる。
【００１７】
１つ又は複数のコンピュータ使用可能媒体又はコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ使用可能媒体又はコンピュータ可読媒体は、例えば、これらに限定されるものではないが、電子、磁気、光学、電磁、赤外線、又は半導体システム、装置、デバイス、或いは伝搬媒体とすることができる。コンピュータ可読媒体のより具体的な例（非網羅的なリスト）として、以下のもの、すなわち、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、インターネット又はイントラネットをサポートするような伝送媒体、又は磁気記憶装置が挙げられる。プログラムは、例えば紙又は他の媒体の光学走査を介して電子的に取り込み、次いで、必要に応じて、コンパイルするか、解釈するか、又は適切な他の方法で処理し、次いでコンピュータ・メモリに格納することができるため、コンピュータ使用可能媒体又はコンピュータ可読媒体は、プログラムが印刷された紙又は別の適切な媒体とすることさえ可能であることに留意されたい。本文書との関連においては、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置、若しくはデバイスにより、又はそれらと接続して使用するための、プログラムを含み、格納し、通信し、伝搬し、又は移送することが可能ないずれかの媒体とすることができる。コンピュータ使用可能媒体は、ベースバンド内に又は搬送波の一部分として、それにより具体化されたコンピュータ使用可能プログラム・コードを伴う伝搬データ信号を含むことができる。コンピュータ使用可能プログラム・コードは、これらに限られるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦなどを含むいずれかの適切な媒体を用いて伝送することができる。
【００１８】
本発明の操作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、ユーザのコンピュータ上で完全に実行するか、ユーザのコンピュータ上で部分的に実行するか、独立型のソフトウェア・パッケージとして実行するか、ユーザのコンピュータ上で部分的に実行し遠隔コンピュータ上で部分的に実行するか、又は、遠隔コンピュータ若しくはサーバ上で完全に実行することができる。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域エリア・ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通してユーザのコンピュータに接続するか、或いは、（例えば、インターネット・サービス・プロバイダを用いてインターネットを通して）外部のコンピュータに接続することができる。
【００１９】
本発明は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラムのフローチャート説明図及び／又はブロック図を参照して、ここに説明される。フローチャート説明図及び／又はブロック図の各ブロック、並びに、フローチャート説明図及び／又はブロック図中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに供給してマシンを形成し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図のブロック又はブロック群において指定される機能／動作を実装するための手段を生成するようにする。
【００２０】
コンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図のブロック又はブロック群において指定される機能／動作を実装する命令手段を含む製品を生成するように、コンピュータ又は他のプログラム可能なデータ処理装置に特定の方法で機能するように命令することが可能なこれらのコンピュータ・プログラム命令を、コンピュータ可読媒体内に格納することもできる。
【００２１】
コンピュータ又は他のプログラム可能な装置上で実行する命令が、フローチャート及び／又はブロック図のブロック又はブロック群において指定される機能／動作を実装するためのステップを提供するように、コンピュータ・プログラム命令をコンピュータ又は他のプログラム可能データ処理装置にロードし、一連の操作ステップをコンピュータ又は他のプログラム可能装置上で実行させて、コンピュータに実装されるプロセスを生成することもできる。
【００２２】
ここで図１乃至図３を参照すると、本発明の種々の実施形態により、デバイス、方法、及びコンピュータ・プログラムが、構造又は機能ブロック図若しくはプロセス・フローチャートとして示される。図中のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能及び動作を示す。これに関して、フローチャート又はブロック図中の各ブロックは、モジュール、セグメント、又はコードの部分を表すことができ、これは、指定された論理機能を実施するための１つ又は複数の実行可能命令を含む。また、幾つかの代替的な実施において、ブロック内に示された機能は、図中に示された順番とは異なる順番で行なうことができることに留意すべきである。例えば、連続して示される２つのブロックを、実際には、実質的に同時に実行することができ、或いは場合により、関与する機能に応じてブロックを逆の順番で実行することができる。また、ブロック図及び／又はフローチャート説明図中の各ブロック、並びにブロック図及び／又はフローチャート説明図中のブロックの組み合わせは、指定された機能又は動作を実行する専用のハードウェア・ベースのシステム、或いは専用のハードウェアとコンピュータ命令の組み合わせによって、実施することができることにも留意されたい。
【００２３】
図１は、本発明の一実施形態によるシステム１００の例示的な図を示し、システム１００は、サーバのような少なくとも１つの情報処理システム１６を有するサービス・クラウド１５と、情報処理システム１６と通信することができる複数のデバイス１０乃至１２とを含むことができる。図２は、本発明の一実施形態による情報処理システム１６の例示的な図を示す。図３は、本発明の一実施形態によるデバイス１０乃至１２のうちの１つの例示的な図を示す。
【００２４】
デバイス１０乃至１２は、有線／無線ネットワーク１４を介してサーバ１６と通信することができる。デバイス１０はユーザ２０の要求に応じてアプリケーションを実行し、デバイス１２は別のユーザ２２の要求に応じてアプリケーションを実行する。デバイス１０乃至１２は、任意のハードウェア構造体及びソフトウェア・プロトコルの任意の組み合わせによって、例えば、それに限定されないがインターネット及びＴＣＰ／ＩＰ、又は他の相互接続技術によって、本発明の実施形態に影響せずに、相互に接続され通信することができる。デバイス１０乃至１２は、それぞれ、ユーザ２０乃至２２のユーザ対話のための表示装置１７９乃至１８９を有する。
【００２５】
例示的な有線／無線ネットワーク１４は、これらに限定されるものではないが、有線ネットワーク、携帯電話ネットワーク、携帯テキストメッセージ・デバイス・ネットワーク、又はポケットベル・ネットワークなどとすることができる。有線／無線ネットワーク１４の通信規格は、それらに限定されないが、ＴＤＭＡ（Time Division Multiple Access、時分割多重アクセス）、ＣＤＭＡ（Code Division Multiple Access、符号分割多重アクセス）、ＧＳＭ（Global System for Mobile Communications、グローバル・システム・フォー・モバイル・コミュニケーションズ）、ＧＰＲＳ（General Packet Radio Service、汎用パケット無線サービス）、又はＦＤＭＡ（Frequency Division Multiple Access、周波数分割多重アクセス）などとすることができる。任意の数のデバイス１０乃至１２を有線／無線ネットワーク１４によってサポートすることができる。デバイス１０乃至１２は、これらに限定されるものではないが、携帯電話、プッシュ・トーク携帯電話、ポケットベル、テキストメッセージ・デバイス、電子メールメッセージ・デバイス、デスクトップ、ラップトップ、タブレット・コンピュータ、ハンドヘルド・コンピュータ、又はサーバなどとすることができる。デバイス１０乃至１２によって利用されるサービスは、これらに限定されるものではないが、第１世代アナログ携帯電話サービス、第２世代デジタル携帯電話サービス、第３世代インターネット携帯電話サービス（３Ｇ）、又は第４世代汎用ブロードバンド・サービス（４Ｇ）などとすることができる。
【００２６】
例示的な実施形態において有線／無線ネットワーク１４は、インターネット関連技術を用いて、種々の機能、例えばデジタル無線電話サービス、双方向デジタル・ラジオ、メッセージ及びデータ／ファックス機能などを提供することができる。有線／無線デバイス１０乃至１２は、例えば、音声命令、スピーカーフォン、電話帳、音声メール、デジタル双方向ラジオ、インターネット、電子メール、無線モデム、又は音声記録などを含む種々の機能を含むことができる。
【００２７】
例示的な実施形態において、サービス・クラウド１５はクラウド・コンピューティングの１つのソリューションであり、多数のサービス又はアプリケーションを動的に処理することができる。新規のサービス又はアプリケーションに対する要求を受信するとき、サービス・クラウド１５は幾つかの既存のサービス又はアプリケーションが要求に応えることを可能にする。他方、クラウド・コンピューティングは、最少の管理努力又はサービス・プロバイダ対話により迅速に供給し解放することができる構成可能コンピューティング・リソース（例えば、ネットワーク、サーバ、ストレージ、アプリケーション、及びサービスなど）の共用プールへの、便利なオン・デマンドのネットワーク・アクセスを可能にするためのモデルである。
【００２８】
例示的な実施形態において、サービス・クラウド１５は、サーバなどの複数の情報処理システム１６を含むことができる。図２に示すように、本発明の一実施形態による情報処理システム１６の例示的な図が描かれている。この実施例において、情報処理システム１６は汎用コンピュータであり、その中に本発明のプロセスを実施するコード又は命令を配置することができる。情報処理システム１６には、周辺コンポーネント相互接続（ＰＣＩ）ローカルバス・アーキテクチャが用いられる。描かれた実施例にはＰＣＩが用いられているが、他のバス・アーキテクチャ、例えば、アクセラレーテッド・グラフィック・ポート（ＡＧＰ）及び業界標準アーキテクチャ（ＩＳＡ）などを用いることもできる。プロセッサ１１１及び主メモリ１１２はＰＣＩブリッジ１１３を介してＰＣＩローカルバス１１４に接続される。ＰＣＩブリッジ１１３はまた、統合メモリ・コントローラ及びプロセッサ１１１用のキャッシュ・メモリを含むことができる。直接コンポーネント相互接続により又は拡張ボードにより、ＰＣＩローカルバス１１３に付加的な接続を行うことができる。
【００２９】
図示した実施例において、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ１１５、小型コンピュータ・システム用インタフェース（ＳＣＳＩ）ホストバス・アダプタ１１６、及び拡張バス・インタフェース１１７は、直接コンポーネント接続によりＰＣＩローカルバス１１４に接続される。一方、音声アダプタ１１８、グラフィック・アダプタ１１９、及び音声／映像アダプタ１２０は拡張スロットに挿入された拡張ボードによってＰＣＩローカルバス１１４に接続される。拡張バス・インタフェース１１７は、キーボード及びマウス・アダプタ１２１、モデム１２２、及び付加メモリ１２３の接続を与える。ＳＣＳＩホストバス・アダプタ１１６は、ハードディスク・ドライブ１２４、テープ・ドライブ１２５、及びＣＤ−ＲＯＭドライブ１３０の接続を与える。典型的なＰＣＩローカルバスの実装により、３つ又は４つのＰＣＩ拡張スロット又は拡張コネクタをサポートすることができる。
【００３０】
当業者であれば、図２のハードウェアは実装に応じて様々に変えることができることを認識するであろう。他の内部ハードウェア又は周辺デバイス、例えば、フラッシュ読み出し専用メモリ（ＲＯＭ）、等価な非揮発性メモリ、又は光ディスク・ドライブなどを図２に示したハードウェアに加えて、又はその代わりに用いることができる。また、本発明のプロセスはマルチプロセッサ・データ処理システムに適用することができる。例えば、第１の情報処理システム１８４は、随意にネットワーク・コンピュータとして構成された場合、ＳＣＳＩホストバス・アダプタ１１６、ハードディスク・ドライブ１２４、テープ・ドライブ１２５、及びＣＤ−ＲＯＭ１２６を省くことができる。その場合、クライアント・コンピュータと呼ぶのが適当なコンピュータは、ある型のネットワーク通信インタフェース、例えば、ＬＡＮアダプタ１１５、又はモデム１２２などを含む。図２に示した実施例及び上述の実施例は、アーキテクチャの限定を意味するものではない。オペレーティング・システムはプロセッサ１１１の上で実行され、情報処理システム１６内の種々のコンポーネントを統合し制御する。オペレーティング・システムは、ウィンドウズＸＰ（登録商標）などの市販のオペレーティング・システムとすることができる。ジャバ（Java）（登録商標）などのオブジェクト指向プログラミング・システムはオペレーティング・システムと共に実行させることができ、情報処理システム１６上で実行するジャバ（登録商標）プログラム又はアプリケーションからのオペレーティング・システムに対する呼び出しを提供する。オペレーティング・システム、オブジェクト指向プログラミング・システム、及びアプリケーション又はプログラムに関する命令は、ハードディスク・ドライブ１２４のような記憶装置上に配置され、プロセッサ１１１による実行のために主メモリ１１２内にロードすることができる。
【００３１】
本発明の好ましい実施形態により、デバイス１０乃至１２は図３に示す携帯デバイス３００とすることができるが、これに限定されるものではない。図示した実施例において、携帯デバイス３００は、例えばＴＤＭＡ、ＣＤＭＡ、ＧＳＭ、ＧＰＲＳ、又はＦＤＭＡなどの通信プロトコルに基づいて通信チャネル上で無線周波数信号を送受信することができる双方向ラジオとすることができるが、これに限定されるものではない。
【００３２】
図３のプロセッサ３１２は、以下に説明するタスクを実行するための単一のプロセッサ又は複数のプロセッサを備えることができる。携帯デバイス３００はプロセッサ３１２の制御下で動作することができるので、携帯デバイス３００は受信モードと送信モードの間で切り替えることができる。受信モードにおいてプロセッサ３１２は、アンテナ３２８を送信／受信スイッチ３３０を通してレシーバ３２６に結合させる。レシーバ３２６は受信した信号を復号し、それら復号した信号をプロセッサ３１２に供給する。送信モードにおいては、プロセッサ３１２はアンテナ３２８を、スイッチ３３０を通してトランスミッタ３３２に結合させる。一実施形態においてレシーバ３２６及びトランスミッタ３３２は、短距離無線プロトコル、例えば、ＩＥＥＥ８０２．１１（ａ）、ＩＥＥＥ８０２．１１（ｂ）、ＩＥＥＥ８０２．１１（ｇ）、ＩｒＤＡ（赤外線通信協会）又はブルートゥース（Bluetooth）などをサポートする。
【００３３】
図３はまた、本発明の全体のプロセスを通して使用することができる情報をストアするための記憶モジュール３２０を含む。さらに、プロセッサ３１２は、メモリ３１８内にストアされた命令によって、トランスミッタ３３２及びレシーバ３２６を動作させる。本発明の好ましい実施形態において、メモリ３１８は、不揮発メモリ、フラッシュ・メモリ又はランダム・アクセス・メモリの何れか１つ又は任意の組み合わせを備えることができる。タイマー・モジュール３１６はタイミング情報をプロセッサ３０２に与えて時限イベントの追跡を続ける。
【００３４】
図３に示すように、携帯電話３００は、携帯デバイス３００への音声の入力及びユーザによる聴取のための音声の出力を可能にする音声入力／出力モジュール３３４をさらに含む。携帯デバイスはまた、ユーザが携帯デバイス３００と対話すること、例えば、これらに限定されるものではないが、アドレスブック情報を修正すること、呼び出しデータ情報と対話すること、及び、呼び出しを行うこと／呼び出しに応答することなどを可能にする。携帯デバイス３００は、携帯デバイス３００のユーザに情報を表示するための表示モジュール３３８をさらに含むことができる。携帯デバイス３００はまた、携帯デバイス３００の位置及び／又は速度情報を決定するためのグローバル・ポジショニング・システム（ＧＰＳ）モジュール３５０を含むことができる。
【００３５】
図４は、本発明の一実施形態によるサービス・クラウド１５の例示的なブロック図を示す。サービス・クラウド１５は複数のサーバ１６及び１つのサービス・ブローカ４１２を含む。サービス・クラウド１５は通常、多数のサービス又はアプリケーションを動的に処理するのに用いられ、新規のサービス又はアプリケーションに対する要求４１６が受信されたことに応答して、サービス・クラウド１５は、幾つかの既存のサービス又はアプリケーションが要求４１６に応えることを可能にすることができる。他方、サービス・ブローカ４１２は、典型的には、サービス・クラウド１５内の利用可能なサービス又はアプリケーションを収集して、利用可能なサービス又はアプリケーションを要求側／クライアントに提供するコンポーネントである。図５は本発明の一実施形態による、デバイスに依存しない通信方法のブロック図を示す。図１乃至図４に基づいた一実施形態における、デバイス１０とサービス・クラウド１５中のサーバ１６との通信方法を示す。
【００３６】
図４に示すように、本発明の一実施形態により、サーバ１６は複数のデバイス・エミュレータ、例えば、これらに限定されるものではないが、デバイス（Ａ）（例えば、デバイス２０）のエミュレータ４２０、デバイス（Ｂ）（例えば、デバイス２２）のエミュレータ４２４などを含むことができる。サーバ１６はまた、１つ又は複数の、サーバ・ベースの表示解像度に依存しないアプリケーション、例えば、サーバ・ベースの表示解像度に依存しないアプリケーション（Ｄ）４２８、サーバ・ベースの表示解像度に依存しないアプリケーション（Ｅ）４３２、及びサーバ・ベースの表示解像度に依存しないアプリケーション（Ｆ）４３６などを含むことができる。サーバ１６はまた、デバイス・アプリケーション・ハンドル４４０を含むことができる。より良い説明のために、上記のコンポーネントの詳細を後で説明することになる。
【００３７】
例示的な実施形態において、エミュレータ４２０、４２４は通常、デバイス１０乃至１２の機能及び表示をまねる又は模倣する、情報処理システム（例えばサーバ１６など）上のアプリケーションである。デバイス１０乃至１２の製造者又はサードパーティは、サーバ１６上で使用するためのエミュレータを提供することができる。デバイス１０乃至１２によって実行されるあらゆる動作又はタスクはまた、サーバ１６上のエミュレータ４２０、４２４によって実行されることができる。サーバ１６上のエミュレータ４２０、４２４はまた、デバイス１０の物理的インタフェース（図１に示すように、デバイス１０の表示装置１７９の上に表示される）と同一のグラフィカル・ユーザ・インタフェース（ＧＵＩ）を含み、それによりＧＵＩはデバイス１０の物理的インタフェースと同一となる。従って、エミュレータ４２０、４２４は、デバイス１０と同じ機能及び動作に加えて、同じボタン、表示、及び他の入力／出力機構を有するＧＵＩを含む。デバイス１０の表示、ボタン及びＩ／Ｏ機構を模倣することに加えて、エミュレータ４２０、４２４は一般に、デバイス１０に用いられるカラー、フォントの型、インタフェース及びテクスチャを含むデバイス１０の外観及び雰囲気を模倣する。また図４に示すように、エミュレータ４２０はアプリケーション（Ｘ）４２１、アプリケーション（Ｙ）４２２、及びアプリケーション（Ｚ）４２３などを実行することができ、ここで、アプリケーション（Ｘ）４２１、アプリケーション（Ｙ）４２２、及びアプリケーション（Ｚ）４２３はエミュレータ４２０に基づいたアプリケーションである。同様にエミュレータ４２４は、アプリケーション（Ｘ）４２５、アプリケーション（Ｙ）４２６、及びアプリケーション（Ｚ）４２７などを実行することができ、ここで、アプリケーション（Ｘ）４２５、アプリケーション（Ｙ）４２６、及びアプリケーション（Ｚ）４２７はエミュレータ４２４に基づいたアプリケーションである。
【００３８】
さらに、サーバ１６上のエミュレータ４２０、４２４は、接続１６６を介してデバイス１０に接続してデバイス１０の動作及び機能を実時間でエミュレートすることができる。ここで、実時間でエミュレートすることは、サーバ１６とデバイス１０の表示装置１７９との両方における同一情報のほぼ即時の存在を意味する。従って、情報がキーボードなどのＩＯデバイスを介してデバイス１０に入力されると、その情報は即時にサーバ１６内のエミュレータ４２０、４２４に送られて後で処理される。より良い説明のために、上記のコンポーネントの詳細を後で説明することになる。
【００３９】
従って、デバイス１０上のボタンを押すことはエミュレータ４２０、４２４上の同じボタンを押すことと等価であり、逆の同様である。即ち、デバイス１０がタスクを実行し情報を表示するとき、エミュレータ４２０、４２４はデバイス１０の機能及び表示を反映する。従って、エミュレータ４２０、４２４と携帯デバイス１０は調和して動作する。このようにして、エミュレータ４２０、４２４は、デバイス１０のミラーとして動作する。
【００４０】
一実施形態において、サーバ・ベースの表示解像度に依存しないアプリケーション（Ｄ）４２８、サーバ・ベースの表示解像度に依存しないアプリケーション（Ｅ）４３２、又はサーバ・ベースの表示解像度に依存しないアプリケーション（Ｆ）４３６は、一般に、サーバ１６上で実行可能であるがデバイス１０乃至１２の上では実行不可能又は実行することが不適切であり、そして実行結果が表示解像度に依存しないアプリケーションを指す。例えば、上記のサーバ・ベースの表示解像度に依存しないアプリケーション４２８、４３２、４３６は、複雑な計算を必要とし、これに限定されるものではないが画像処理エディタなどの携帯デバイス上では実行することができないアプリケーションとすることができる。
【００４１】
デバイス・アプリケーション・ハンドラ４４０は、例えば、サービス・ブローカ４１２からの要求を処理し、要求を目標のアプリケーションに送り、要求に応じて目標のアプリケーションが実行された後にグラフィック・イメージを受取り、そのグラフィック・イメージをサービス・ブローカ４１２に送り返すハンドラである。デバイス・アプリケーション・ハンドラ４４０は、表示ハンドラ４４４及び表示ハンドラ・インスタンス・データベース４４８を含む。表示ハンドラ４４４は、インスタンスを生成し維持するプロセスに用いられ、携帯デバイスとアプリケーションの間の通信を担当する。表示ハンドラ・インスタンス・データベース４４８は、表示ハンドラ４４４によって用いられる情報を含む。一実施形態において表示ハンドラ・インスタンス・データベース４４８は、以下のエントリ、（１）接続されたデバイス、（２）接続されたデバイスに関する情報、（３）アプリケーションのインスタンスに関する情報、及び（４）インスタンス、のリストを含むことができる。接続されたデバイスに関する情報は、ＯＳ、解像度、及びデバイスＩＤなどを含むことができる。アプリケーションのインスタンスに関する情報は、アプリケーションＩＤ、アプリケーションの型などを含むことができる。
【００４２】
図５は、本発明の一実施形態による、サーバ１６と表示装置１７９を有するデバイス１０との間の、デバイスに依存しない通信方法のブロック図を示す。初めにデバイス１０はユーザ２０からの要求４１６を生成する（ステップ５０８）。ステップ５１２において、サービス・クラウド１５は要求４１６をサービス・クラウド内のサーバ１６にリダイレクトする。そこでサーバ１６はユーザ２０からの要求４１６を受け取る（ステップ５１６）。ステップ５２０において、デバイス・アプリケーション・ハンドラ４４０は要求４１６を処理して要求４１６をエミュレータ（Ａ）４２０、エミュレータ（Ｂ）４２４、サーバ・ベースの表示解像度に依存しないアプリケーション（Ｄ）４２８、サーバ・ベースの表示解像度に依存しないアプリケーション（Ｅ）４３２、又はサーバ・ベースの表示解像度に依存しないアプリケーション（Ｆ）４３６に送る。次にステップ５２４において、エミュレータ（Ａ）４２０、エミュレータ（Ｂ）４２４、サーバ・ベースの表示解像度に依存しないアプリケーション（Ｄ）４２８、サーバ・ベースの表示解像度に依存しないアプリケーション（Ｅ）４３２、又はサーバ・ベースの表示解像度に依存しないアプリケーション（Ｆ）４３６は、要求４１６に応答するグラフィック・イメージ応答４１８をデバイス・アプリケーション・ハンドラ４４０に送る。次にデバイス・アプリケーション・ハンドラ４４０はグラフィック・イメージ４１８をデバイス１０に送信する（ステップ５２８）。
【００４３】
図６は、本発明の一実施形態による、デバイス１０に関する方法のフロー図を示す。初めに、デバイス１０をサービス・クラウド１５に接続する（ステップ６０８）。ステップ６１２において、デバイス情報（例えば、これらに限定されるものではないが、表１に示すような表示解像度、ハードウェア仕様、オペレーティング・システム、及び認証トークンなど）をサービス・クラウド１５に送る。次にステップ６１６において、サービス・クラウド／サービス・ブローカ４１２は、デバイスが使用可能なアプリケーションのリストをデバイス１０に送る。
【表１】
0005651072.tif 000002
【００４４】
図７は、本発明の一実施形態による、サービス・クラウド１５／サーバ１６に関する方法のフロー図を示す。初めにステップ７０８において、デバイス１０からのアプリケーションの要求４１６を受け取る。次にステップ７１２において、要求４１６に関連するアプリケーションのインスタンス（４８８乃至４９８の中から）が表示ハンドラ４４４内に存在するかどうかをチェックする。イエスの場合、方法はステップ７１６に進む。ノーの場合、方法はステップ７５２に進む。ステップ７１６において、アプリケーションがサーバ・ベースの表示解像度に依存しないアプリケーション４２８、４３２、４３６であるかどうかをチェックする。イエスの場合、方法はステップ７２０に進む。ノーの場合、方法はステップ７３２に進む。ステップ７２０において、アプリケーションに対する適切なレイアウトを見出す。ステップ７２４において、デバイス１０の表示装置１７９の解像度がアプリケーションの解像度に適合するかどうかをチェックする。イエスの場合、方法はステップ７３２に進む。ノーの場合、方法はステップ７２８に進む。ステップ７２８において、アプリケーションのＧＵＩを、表示装置１７９の表示解像度に適合するように変換する。次にステップ７３２において、要求４１６を実際のローカルＧＵＩ動作に変換する。ステップ７３６において、ＧＵＩ動作を目標のアプリケーションに送る。ステップ７４０において、目標のアプリケーションについて命令を実行してグラフィック・イメージ応答４１８を生成する。ステップ７４４において、表示ハンドラ４４４からインスタンスを取得する。ステップ７４８において、グラフィック・イメージ応答４１８を目標のデバイスに送る。次いで、目標デバイスのユーザは、受け取ったグラフィック・イメージ応答４１８の上で、通常の入力技術（キーボード入力、タッチスクリーン入力など）によるユーザ対話を行うことができる。後のユーザ対話のためには、上記のステップを繰り返してユーザ対話を再度実現することができる。
【００４５】
さらにステップ７１２において、表示ハンドラ４４４が要求４１６に関連するインスタンス（４８８乃至４９８の中から）を含まない場合（これは、換言すれば、サービス・クラウド１５内の特定のアプリケーション又はサービスが、接続されたデバイスにより初めて実行されることを意味する）、方法はステップ７５２に進む。ステップ７５２において、そのアプリケーションがサーバ・ベースの表示解像度に依存しないアプリケーション４２８、４３２、４３６であるかどうかをチェックする。イエスの場合、方法はステップ７５６に進む。ノーの場合、方法はステップ７６０に進む。ステップ７６０において、アプリケーションの型に基づいてエミュレータ４２０、４２４を起動する。ステップ７６４において、起動アプリケーション命令を目標のアプリケーションに送る。ステップ７６８において、起動したアプリケーションのインスタンスを表示ハンドラ・インスタンス・データベース４４８内に登録する。方法は次に、上記のようにステップ７４０、ステップ７４４、及びステップ７４８に進む。
【００４６】
他方、ステップ７５６において、目標のサーバ・ベースの表示解像度に依存しないアプリケーションを起動する。次にステップ７６８において、起動したアプリケーションのインスタンスを表示ハンドラ・インスタンス・データベース４４８内に登録する。方法は次に、上記のようにステップ７４０、ステップ７４４、及びステップ７４８に進む。
【００４７】
図８は、本発明の一実施形態による、デバイスに依存せず且つ解像度に依存しないアプリケーション８０８の例示的な図を示す。アプリケーション８０８は、デバイス・マッピング／選択ソース・コード（Ｓ１）８１２、デバイス１のＧＵＩソース・コード（Ｕ１）８１６乃至デバイスｎのＧＵＩソース・コード（Ｕｎ）８３６、及びビジネス論理ソース・コード（Ｓ２）８４０を含む。開発者／ユーザが特定のデバイスに対するＧＵＩレイアウト設計を完成した後、次にＧＵＩソース・コードが一般的なプログラミング技術に基づいて生成される。接続されたデバイスに対して、デバイス・マッピング／選択ソース・コード（Ｓ１）８１２を用いて、適切なＧＵＩレイアウト・ソース・コード論理が選択／マッピングされる。さらに、目標のビジネス論理のためのビジネス論理ソース・コード（Ｓ２）８４０が、一般的なプログラミング技術に基づいて生成される。より良い説明のために、上記のアプリケーション８０８の詳細を後で説明することになる。
【００４８】
図９は、本発明の一実施形態による、デバイスに依存せず且つ解像度に依存しないアプリケーションを作成する方法を示すブロック図である。本方法はステップ９０４で開始する。ステップ９０８においてデバイスｎのためのＧＵＩを得る。ステップ９１２において、デバイスｎのためのＧＵＩソース・コードを生成する（Ｕ１．．．Ｕｎ）。ステップ９１６において、デバイスｎのためのデバイス・マッピング／選択ソース・コード（Ｓ１）を生成する。これは、図９に示すように、デバイス１乃至デバイスｎと表示装置１７９の解像度との間の関係を示すマッピング表９１８を含む。次にステップ９２０において、次のデバイスのためのＧＵＩを生成するかどうかをチェックする。イエスの場合、方法はステップ９０８に進み、上記のステップを繰り返す。ノーの場合、方法はステップ９２４に進む。
【００４９】
ステップ９２４はステップ９０８と並列に処理することができる。ステップ９２４において、ビジネス論理ソース・コード（Ｓ２）を作成する。ステップ９２８において、サーバ・ベースの表示解像度に依存しないアプリケーションを生成する。方法はステップ９３２で終了する。換言すれば、デバイスｎのために、開発者／ユーザがＧＵＩレイアウト、そして次にＧＵＩソース・コード（Ｕｎ）８３６を生成する。開発者／ユーザは、マッピング表９１８（マッピング表９１８はデータベース９１７内にストアされる）を用いてデバイス・マッピング／選択ソース・コード（Ｓ１）８１２を生成する。次にステップ９２０において、別のデバイスのためのＧＵＩを生成するかどうかを判断する。イエスの場合、上記のステップを繰り返す。他方、ステップ９２４において、ビジネス論理ソース・コード（Ｓ２）８４０が同様に一般的なプログラミング技術に基づいて生成される。次にステップ９２８において、上記のソース・コードに基づいて、サーバ・ベースの表示解像度に依存しないアプリケーション４２８、４３２、４３６が完成される。
【００５０】
図１０は、本発明の一実施形態による、デバイスが使用できるアプリケーションのリストをデバイス１０に送信することの例示的な図である。図１０に示すように、サービス・クラウド１５は、サービス・ブローカ４１２へのサービス登録を処理する。サービス・ブローカ４１２はデバイスが使用できるアプリケーションのリストをデバイス１０に送信し、そしてデバイス１０は、デバイスの解像度情報をサービス・ブローカ４１２に送信する。サービス・ブローカ４１２はマッピング情報リストをマッピング情報データベース１０１２にストアする。図１０はまた、例示的なマッピング情報１００８を示し、デバイスが使用できるアプリケーションのリストは、マッピング情報リスト１００８に基づいて生成される。
【００５１】
上記のステップ及びコンポーネントに基づいて、図１に示すように、デバイス１０が使用できる１つ又は複数のアプリケーションを有するリスト１５１がデバイス１０のＧＵＩ１８１の上に表示され、このリスト１５１は、例えば、使用できるアプリケーション１９１乃至１９９のアイコンを示す。そこでユーザは、リスト１５１から、通常の入力／出力技術、例えば、キーボード入力又はタッチスクリーン入力などにより、アプリケーション１９１乃至１９９の中から１つのアプリケーションを選択することができる。
【００５２】
例示的な実施形態において、上記の通信接続のための通信プロトコルを定めることができる。１つの例示的なプロトコルには、送信元ＩＰ、宛先ＩＰ、スクリーン・サイズ、解像度、ＯＳのタイプ、及びコンテンツなどを含めることができる。クライアントからサーバへの通信に関して、プロトコルはイベント（位置／動作）を含むことができ、ここで動作は種々の入力／出力デバイス、例えばキーボード、タッチスクリーン、及びマウスなどに関連し、動作には、キー入力すること、スクリーンにタッチすること、及びマウス・カーソルを動かすことなどを含めることができる。サーバからクライアントへの通信に関して、プロトコルには、グラフィック・イメージ（例えばビットマップ・イメージ）のフレーム、及び利用可能なアプリケーションのリストなどを含めることができる。
【００５３】
上記のプロトコルに基づいて、デバイス１０とサーバ１６の間の通信の例を以下に示す。例えば、デバイス１０がサーバ１６に接続するための要求を送信するとき、デバイス１０は指定のデバイス情報をサーバ１６に供給する必要があり、以下の情報が通信プロトコル内に埋込まれる。
【表２】
0005651072.tif 000003
【００５４】
サーバ１６がデバイス１０からデバイス接続要求を受信した後、サーバ１６はそれを受取り、デバイスが使用できるアプリケーションのリストをデバイス１０に送信する。例示的なプロトコルは以下のようにすることができる。
【表３】
0005651072.tif 000004
【００５５】
デバイス１０は、デバイスが使用できるアプリケーションのリストを受け取ったのち、デバイス１０はリストを復号し、デバイス１０の表示装置１７９の上にリストを表示する。ユーザ２０は、リスト上の何れかの所望のアプリケーションを選択することができる。ユーザ２０が選択したアプリケーションをクリックした後、デバイス１０はサーバ１６に要求を返信する。上記の方法及びコンポーネントに基づいて、サーバ１６は適切なエミュレータ４２０、４２４又は適切なサーバ・ベースの表示解像度に依存しないアプリケーション４２８、４３２、４３６を見出してそれを実行させることができる。次に、実行結果のグラフィック・イメージがデバイス１０に送り返される。受信されたグラフィック・イメージはデバイス１０の表示装置１７９上に表示され、ユーザ２０は、実行結果を、あたかもアプリケーションがデバイス１０によって実行されたかのよう、見ることができる。
【００５６】
上記のことを考慮して、定められたプロトコルに基づくデバイス１０とサーバ１６の間の他の通信を同様に示す。例えば、サーバ１６がデバイス１０から接続要求を受信した後、適切なアプリケーションが開始され、定められたプロトコルは以下のようにすることができる。
【表４】
0005651072.tif 000005
【００５７】
サーバ１６がグラフィック・イメージを送信するとき、定められたプロトコルは以下のようにすることができる。
【表５】
0005651072.tif 000006
【００５８】
デバイス１０が要求を送信するとき、定められたプロトコルは以下のようにすることができる。
【表６】
0005651072.tif 000007
【００５９】
例示的な一実施形態において、携帯電話ノキアＮ９７（シンビアン・ベース）のユーザは計算器アプリケーションを使用しようとするが、その計算器アプリケーションはウィンドウズ・モバイル６の上でのみ実行させることができる。本発明により、ノキアＮ９７はサービス・ブローカ４１２に接続するのに用いられ、サービス・ブローカ４１２は、デバイスが使用できるアプリケーションのリストをデバイス１０に送り返す。ユーザ２０がウィンドウ・モバイル６に基づく計算器アプリケーションを選択した後、サーバ１６のエミュレータ４２０は実行結果としてのグラフィック・イメージ（例えば、ビットマップ・イメージ）を送り返す。ユーザにより、グラフィック・イメージとのユーザ対話が通常のユーザ対話技術に基づいてなされ、対応する命令がサーバ１６に送信される。上記のステップは、ユーザ２０がアプリケーションの使用を終了するまで繰り返される。ノキアはノキア社の登録商標である。ウィンドウズ・モバイルは米国及び／又は他の国におけるマイクロソフト社の登録商標である。シンビアンはシンビアン・ファウンデーション社の登録商標である。
【００６０】
別の例示的な実施形態において、携帯電話Ｎ９７のユーザは、サービス・クラウド１５に接続要求を送信する。サービス・クラウド１５内のアプリケーションは、それぞれ、ウィンドウズ・モバイル６ベース、アンドロイド・ベース、又はｉＯＳベースのものとすることができる。アンドロイドはグーグル社の登録商標である。デバイス１０が接続要求をサーバ１６に送信するとき、通信プロトコルは以下のようにすることができる。
SourceIP（Device’s IP）= 140.112.56.32 
DestinationIP （Mobile Service Broker IP）=140.110.32.21
Screensize = 3.5 inch
Resolution= 640X360
OStype = Nokia Symbian
Event = Connect
【００６１】
サーバ１６がデバイス１０の接続要求を受信した後、サーバ１６は、デバイスが使用できるアプリケーションのリストをデバイス１０に送信することになる。通信プロトコルは以下のようにすることができる。
Destination IP（Mobile Service Broker IP）=140.110.32.21
Source IP（Device’sIP）= 140.112.56.32
Screen size = 3.5 inch
Resolution = 640X360
OS type = Nokia Symbian
application list for device n（NokiaN97）with 640X360 resolution = Calculator on Windows Mobile 6，Calendaron Android，Map on iPhone
【００６２】
サーバ１６がデバイス１０の接続要求を受信した後、選択されたアプリケーションが開始される。通信プロトコルは以下のようにすることができる。
Source IP（Device’sIP）= 140.112.56.32
Destination IP（Mobile Service Broker IP）=140.110.32.21
Screen size = 3.5 inch
Resolution = 640X360
OStype = Nokia Symbian
event = Calculator on Windows Mobile 6
【００６３】
サーバ１６がグラフィック・イメージを送信するとき、通信プロトコルは以下のようにすることができる。
Destination IP（Mobile Service Broker IP）=140.110.32.21
Source IP（Device’sIP）= 140.112.56.32 
Screen size = 3.5 inch
Resolution = 640X360
OS type = Nokia Symbian
bitmap image = 0010011000……（calculatorbitmap）
【００６４】
デバイス１０が再び要求を送信するとき、通信プロトコルは以下のようにすることができる。
Source IP（Device’sIP）= 140.112.56.32 
Destination IP（Mobile Service Broker IP）=140.110.32.21
Screen size = 3.5 inch
Resolution = 640X360
OStype = Nokia Symbian
event =Click digit “2”
【００６５】
上記の２つの実施形態において、ユーザが用いるデバイスは携帯電話である。しかし、他のデバイス、例えば、これらに限定されるものではないが、プッシュ・トーク携帯電話、ポケットベル、テキストメッセージ・デバイス、電子メールメッセージ・デバイス、デスクトップ、ラップトップ、タブレット・コンピュータ、ハンドヘルド・コンピュータ、又はサーバなどを用いることもできる。
【００６６】
本発明の例証的な実施形態により、種々のデバイスのために、要求に応じて、アプリケーションをＯＳ／プラットフォームに関わりなく実行させることができる。換言すれば、プラットフォームに依存しないアプリケーションの目的は容易に達成することができる。従って、従来の通信技術の制限、例えば、ＣＰＵ及びメモリの制限、又は以前に説明した複雑なアプリケーションから生じる問題などは、効果的に解決することができる。さらに、前述の実施形態におけるエミュレータ又はサーバ・ベースの表示解像度に依存しないアプリケーションは、種々のデバイス／オペレーティング・システム／ハードウェア仕様の上でのアプリケーションの実行に対して満足できる解決を与えることができる。サービス・クラウド１５から送信されるグラフィック・イメージは、要求を送信中のデバイス１０に実時間で適合させることができる。
【００６７】
本発明の特定の実施形態が図示され、説明されたが、本明細書の教示に基づいて、本発明とその広範囲の態様から逸脱することなく変更及び修正を加えることができることは、当業者には明らかであろう。従って、添付の特許請求の範囲は、このようなすべての変更及び修正を、本発明の真の趣旨及び範囲の内にあるものとして含むものである。さらに、本発明は、添付の特許請求の範囲によってのみ規定されることを理解されたい。導入された特許請求の要素の特定の数が意図されている場合には、このような意図は、特許請求の範囲において明示的に詳述され、そしてこのような詳述がない場合にはそうした制限がないことが、当業者により理解されるであろう。非限定的な例に関しては、理解の補助として、添付の特許請求の範囲は、特許請求項の要素を導入するために「少なくとも１つの（at least one）」及び「１つ又は複数の（one or more）」といった導入句の使用を含む。しかし、このような句の使用は、同じ特許請求項が、導入句「１つ又は複数の」又は「少なくとも１つの」などを含むときであっても、これらによる特許請求の要素の導入が、このような導入された特許請求の要素を含む特定の特許請求項を、このような要素を１つだけ含む発明に限定することを意味するものと解釈すべきではない。同様のことは、特許請求項における定冠詞の使用についても当てはまる。
【符号の説明】
【００６８】
１０−１２：デバイス
１４：有線／無線ネットワーク
１５：サービス・クラウド
１６：情報処理システム（サーバ）
２０、２２：ユーザ（デバイス）
１００：システム
１１１：プロセッサ
１１２：主メモリ
１１３：ＰＣＩブリッジ
１１４：ＰＣＩローカルバス
１１５：ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ
１１６：小型コンピュータ・システム用インタフェース（ＳＣＳＩ）ホストバス・アダプタ
１１７：拡張バス・インタフェース
１１８：音声アダプタ
１１９：グラフィック・アダプタ
１２０：音声／映像アダプタ
１２１：キーボード及びマウス・アダプタ
１２２：モデム
１２３：付加メモリ
１２４：ハードディスク・ドライブ
１２５：テープ・ドライブ
１３０：ＣＤ−ＲＯＭドライブ
１５１：リスト
１７９〜１８９：表示装置
１８１：ＧＵＩ
１９１〜１９９：使用できるアプリケーション
３００：携帯デバイス（携帯電話）
３１２：プロセッサ
３１６：タイマー・モジュール
３１８：メモリ
３２０：記憶モジュール
３２６：レシーバ
３２８：アンテナ
３３０：送信／受信スイッチ
３３２：トランスミッタ
３３４：音声入力／出力モジュール
３３６：ユーザ・インタフェース
３３８：表示モジュール
３５０：グローバル・ポジショニング・システム（ＧＰＳ）モジュール
４１２：サービス・ブローカ
４１６：要求
４１８：グラフィック・イメージ応答
４２０、４２４：エミュレータ
４２１、４２２、４２３、４２５、４２６、４２７：アプリケーション
４２８、４３２、４３６：サーバ・ベースの表示解像度に依存しないアプリケーション
４４０：デバイス・アプリケーション・ハンドラ
４４４：表示ハンドラ
４４８：表示ハンドラ・インスタンス・データベース
４８８〜４９８：インスタンス
８０８：デバイスに依存せず且つ解像度に依存しないアプリケーション
８１２：デバイス・マッピング／選択ソース・コード（Ｓ１）
８１６：デバイス１のＧＵＩソース・コード（Ｕ１）
８３６：デバイスｎのＧＵＩソース・コード（Ｕｎ）
８４０：ビジネス論理ソース・コード（Ｓ２）
１００８：マッピング情報
１０１２：マッピング情報データベース
【図１】
0005651072.tif 000008
【図２】
0005651072.tif 000009
【図３】
0005651072.tif 000010
【図４】
0005651072.tif 000011
【図５】
0005651072.tif 000012
【図６】
0005651072.tif 000013
【図７】
0005651072.tif 000014
【図８】
0005651072.tif 000015
【図９】
0005651072.tif 000016
【図１０】
0005651072.tif 000017