(57)【要約】コードは、第１の装置により受信すること及び第２の装置により送信することが可能である。該第１の装置は、該第２の装置からの該コードを実行してクライアントサイドデータを生成することができる。該クライアントサイドデータが該第１の装置及び該第２の装置の少なくとも一方に格納されているか否かが判定される。【選択図】図２
2014505278.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
少なくとも一部がスクリプト言語であるコードを第２の装置から受信する受信手段と、
該コードからのクライアントサイドデータを格納する記憶手段と、
該コードを実行し、及び前記クライアントサイドデータが該記憶手段と前記第２の装置との少なくとも一方に格納されているか否かを判定する、コントローラと
を備えている装置。
【請求項２】
前記スクリプト言語がハイパーテキストマークアップ言語である、請求項１に記載の装置。
【請求項３】
前記コードの出所を判定するためのロジックを更に含む、請求項１に記載の装置。
【請求項４】
前記クライアントサイドデータが前記コードの出所に基づいて前記記憶手段と前記第２の装置との少なくとも一方に格納される、請求項３に記載の装置。
【請求項５】
該装置の前記コントローラにより実行することができるウェブブラウザを更に含む、請求項１に記載の装置。
【請求項６】
前記クライアントサイドデータを格納するためのデータベースを更に含む、請求項１に記載の装置。
【請求項７】
第１の装置に接続された場合に第２の装置を動作させる方法であって、
該第２の装置から該第１の装置へハイパーテキストマークアップ言語コードを送信し、
該ハイパーテキストマークアップ言語コードが実行された場合に該第１の装置から生成されたクライアントサイドデータを該第２の装置により受信し、
該第１の装置から受信した該クライアントサイドデータを該第２の装置により格納する、
という各ステップを含む方法。
【請求項８】
前記第２の装置により格納されている前記クライアントサイドデータを前記第１の装置へ送信するステップを更に含む、請求項７に記載の方法。
【請求項９】
前記クライアントサイドデータを格納するためのデータベースを前記第１の装置上に生成するステップを更に含む、請求項７に記載の方法。
【請求項１０】
前記第１の装置からのハイパーテキストマークアップ言語コードの要求を前記第２の装置により受信するステップを更に含む、請求項７に記載の方法。
【請求項１１】
実行時に、
第１の装置上でコードを実行してクライアントサイドデータを生成し、
該クライアントサイドデータを生成した該コードが第２の装置を出所とするものである場合に該クライアントサイドデータをその格納を行うべく該第２の装置へ送信し、
該クライアントサイドデータを生成した該コードが前記第１の装置を出所とするものである場合に該クライアントサイドデータを該第１の装置に格納する、
という各ステップを該第１の装置のプロセッサに実行させる命令を含む、コンピュータ読み取り可能媒体。
【請求項１２】
実行時に、前記クライアントサイドデータを格納するためのデータベースを前記第１の装置上に生成するステップを該第１の装置のプロセッサに実行させる命令を更に含む、請求項１１に記載のコンピュータ読み取り可能媒体。
【請求項１３】
実行時に、前記クライアントサイドデータのフォーマットを、該クライアントサイドデータを前記第２の装置へ送信するためのフォーマットへと変換するステップを、前記第１の装置のプロセッサに実行させる命令を更に含む、請求項１１に記載のコンピュータ読み取り可能媒体。
【請求項１４】
実行時に、第２の装置からの実行すべきコードを要求するステップを、前記第１の装置のプロセッサに実行させる命令を更に含む、請求項１１に記載のコンピュータ読み取り可能媒体。
【請求項１５】
実行時に、前記第１の装置に格納されている前記クライアントサイドデータを前記第２の装置に送信されるクライアントサイドデータと同期させるステップを、前記第１の装置のプロセッサに実行させる命令を更に含む、請求項１１に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータは、タスクを実行するアプリケーションを実行する。該アプリケーションは、Ｃ、Ｃ++、Java、又はその他等の言語を使用してプログラムすることが可能である。アプリケーション、例えばワードプロセッサ又はデータベースは、該ワードプロセッサにより生成されたテキストドキュメント等のデータ又はデータエントリをデータベースのテーブル内に格納することが可能である。ウェブページは、ハイパーテキストマークアップ言語（HTML）等の言語を使用してプログラムすることができる。HTMLは、ウェブページにアクセスしているユーザに対してテキスト、写真、リンクを提示する態様を規定するスクリプト言語である。ウェブブラウザは、WebKit（登録商標）等のレイアウトエンジンを使用してHTMLドキュメントをその閲覧のためにレンダリングすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
アプリケーションは、多数の言語を使用してタスクを完遂することが可能であり、例えば、Javaでのテキストのプログラミングは、HTMLでのテキストのプログラミング及びレイアウトエンジンを用いた該HTMLのレンダリングよりも効率が悪いものとなり得る。
【図面の簡単な説明】
【０００３】
【図１】一実施形態による装置のブロック図である。
【図２】一実施形態によるシステムのブロック図である。
【図３】一実施形態による方法のフローチャートである。
【図４】一実施形態による方法のフローチャートである。
【図５】一実施形態によるシステムのブロックである。
【発明を実施するための形態】
【０００４】
オペレーティングシステムは、コンピュータの動作を制御し、プログラムの処理を指示する。プログラムの指示及び処理は、メモリ内に記憶空間を割り当て、及び入出力機能を制御することにより行うことができる。オペレーティングシステムは、スクリプト言語レイアウトエンジン（例えば、WebKit（登録商標））を有することが可能である。レイアウトエンジンは、マークアップコンテンツ（HTML、XML、イメージファイル等）を取得し、及び情報（CSS、XSL等）をフォーマットして、該フォーマットされたコンテンツを画面上に表示させる。レイアウトエンジンを含むオペレーティングシステムの一例が、Palm WebOS（登録商標）である。
【０００５】
データのダウンロードを一層効率良くするために、オペレーティングシステムを実行している装置は、該データをレンダリングするためのレイアウトエンジンを含むことが可能である。少なくとも部分的に該装置上でレイアウトエンジンによりレンダリングされるスクリプト言語であるアプリケーションは、その格納に一層少ないメモリを使用するものであり、このため、装置間で一層効率よく転送することが可能である。例えば、HTMLコードを少なくとも部分的に含むアプリケーションは、サーバからクライアント装置へ又は第１の装置から第２の装置へ転送してその受信側の装置上のレイアウトエンジンによりレンダリングすることが可能であり、かかるアプリケーションは、レイアウトエンジンを使用しないプログラムよりも一層効率の良いものとなる。
【０００６】
ウェブベースアプリケーションとは、ウェブブラウザに所定のURL（Uniform Resource Locator）を指示することにより実行されるアプリケーションである。ウェブベースアプリケーションは、ウェブブラウザによりレンダリングされる。ウェブベースアプリケーションは、コンピュータ上で実行されるアプリケーションに類似した外観を有し得るものであり、例えば、ブラウザ内で実行されているウェブベースワードプロセッサは、オペレーティングシステム上で動作しているワードプロセッサと類似した外観を有することが可能である。ウェブブラウザ内で実行されているウェブベースアプリケーションは、該ウェブブラウザに該ウェブベースアプリケーションを提供しているシステム上の記憶手段にアクセスすることができるものである。例えば、ウェブベースアプリケーションは、該ウェブベースアプリケーションにより生成されたデータを、該ウェブベースアプリケーションを提供しているシステム上に格納することが可能である。ウェブブラウザがクライアントサイドデータを格納できる場合には、ウェブベースアプリケーションは、クライアント上で実行しているアプリケーションと同様のものとなり得る。
【０００７】
HTMLを含むアプリケーションをレンダリングするためのレイアウトエンジンを含むオペレーティングシステムを有する装置は、他の装置に接続することができる。該装置上のアプリケーションは、該他の装置により実行することが可能である。アプリケーションに応じて、クライアントサイドデータは、該装置又は該他の装置に格納することが可能である。例えば、ゲームに関するクライアントサイドデータを該装置上に格納し、ワードプロセッサアプリケーションからのクライアントサイドデータを該他の装置上に格納することが可能である。クライアントサイドデータを格納すべき場所は、アプリケーションのユーザが、前記装置及び前記他の装置の容量、アプリケーション、又はその他の判定基準に基づいて決定することが可能である。
【０００８】
一実施形態では、装置は、第２の装置からコードを受信するための受信手段を含む。該コードの少なくとも一部をスクリプト言語とすることが可能である。記憶手段は、該コードからのクライアントサイドデータを格納することができる。コントローラは、該コードを実行して、該クライアントサイドデータが前記記憶手段及び前記第２の装置の少なくとも一方に格納されているか否かを判定することができる。
【０００９】
ここで図面を参照する。図１は、一実施形態による第１の装置100のブロック図である。該第１の装置100は、第２の装置からコード125を受信するための受信手段120を含む。該第１の装置100は、携帯電話等の携帯型装置又はノートブックコンピュータとすることが可能である。第２の装置は、携帯電話等の携帯型装置又はノートブックコンピュータとすることが可能であり、又はタワーもしくはオールインワン型等の固定型装置とすることが可能である。コード125は、アプリケーションとすることが可能であり、該コード125の少なくとも一部はスクリプト言語である。該スクリプト言語は、レイアウトエンジンによりレンダリングされる言語である。該スクリプト言語は、例えば、HTML、XML、又はその他のスクリプト言語とすることが可能である。該スクリプト言語がHTMLである場合、レイアウトエンジンは例えばWebKit（登録商標）とすることが可能である。
【００１０】
第１の装置100内の記憶手段115は、コード125からのクライアントサイドデータ110を格納することができる。該クライアントサイドデータ110は、該コード125がコントローラ105により実行される場合に該コントローラ105により生成することが可能である。該コントローラ105は、例えば、汎用プロセッサ、グラフィクスプロセッサ、又はASIC（Application Specific Integrated Circuit）とすることが可能である。汎用プロセッサは、第１の装置100上でコントローラ105により実行されている様々なオペレーティングシステムからの様々な命令、又は、第１の装置100上でコントローラ105により実行されているウェブブラウザ、第１の装置100上でコントローラ105により実行されているワードプロセッサ、もしくは第１の装置100上でコントローラ105により実行されているその他のアプリケーションといった様々なアプリケーションからの様々な命令を処理することができる。
【００１１】
コントローラ105はまた、クライアントサイドデータ110が前記記憶手段115及び前記第２の装置の少なくとも一方に格納されているか否かを判定することができる。該記憶手段115は、例えば、ランダムアクセスメモリ（RAM）等の揮発性メモリ、又はハードディスクドライブ、光媒体、フラッシュメモリ、もしくはその他の記憶装置等の不揮発性メモリとすることが可能である。
【００１２】
第１の装置は、コードの出所を判定するためのロジックを含むことが可能である。該ロジックは、ハードウェア、ファームウェア、又はコンピュータ読み取り可能命令とすることが可能である。コードの出所が第１の装置と第２の装置等の外部装置との一方であることを判定することが可能である。該ロジックは、コードの出所に基づいてクライアントサイドデータを格納すべき場所を判定することが可能である。例えば、該ロジックは、コードが第２の装置から受信された場合に、該コードを実行することにより生成されたクライアントサイドデータを該第２の装置に格納すべきと判定し、コードが第２の装置等の外部ソースから受信されたものでない場合には、クライアントサイドデータを記憶手段115に格納すべきと判定することが可能である。該ロジックはまた、ユーザにより制御される判定基準、アプリケーションにより制御される判定基準、またはその他の判定基準を用いて、クライアントサイドデータを格納すべき場所を判定することが可能である。ユーザにより制御される判定基準は、クライアントサイドデータを格納すべき場所を選択するためのユーザに対するメッセージといった、ユーザへの指示を含むことが可能である。該ユーザへの指示は、例えば、アプリケーションの実行が開始したとき、アプリケーションがクライアントサイドデータを生成したとき、アプリケーションがクローズするとき、又はその他の時点で行うことが可能である。該判定基準がアプリケーションにより制御されるものである場合には、アプリケーションは、クライアントサイドデータを格納すべき場所を、該アプリケーションの作者により予め決定された場所と判定することが可能であり、又は該アプリケーションにより動的に決定することが可能である。
【００１３】
一実施形態では、レイアウトエンジンは、データベースを生成すること又は既存のデータベースを使用することが可能である。クライアントサイドデータは、第１の装置上又は第２の装置等の外部装置上のデータベースに格納することが可能である。
【００１４】
図２は、一実施形態によるシステムのブロックである。該システムは、第２の装置210に接続された第１の装置200を含む。該第１の装置200は、アプリケーション205を実行するランタイム230を有する。該アプリケーションは、第２の装置210から第１の装置200へとコピーし又は転送することが可能である。
【００１５】
前記ランタイム230は、HTMLウェブストレージ235及びストレージルータ240を含むことが可能である。該HTMLウェブストレージ235は、該ランタイム230により生成されたデータを格納する。該ストレージルータ240は、アプリケーション205により生成されたクライアントサイドデータを送信すべき場所を判定する。該ストレージルータ240は、第１の装置200上の記憶手段255へクライアントサイドデータを送信することが可能である。該第１の装置上の記憶手段255は、該記憶手段255上にデータを格納するために使用されるデータベース250を含むことが可能である。
【００１６】
ストレージルータ240は、アプリケーション205により生成されたクライアントサイドデータが第２の装置210内に格納されることを判定した場合に、該ストレージルータ240は、該第２の装置210内の別の送受信手段265に接続された送受信手段260へクライアントサイドデータを送信する。該送受信手段260及び送受信手段265は、802.11 Wi-Fi（登録商標）、Bluetooth（登録商標）、ワイヤレスUSB（Universal Serial Bus）、セルラーデータプロトコル又はその他の無線プロトコル、並びにUSB、IEEE1394、SATA（Serial Advanced Technology Attachment）、又はその他の有線プロトコルといった有線プロトコルを用いたものとすることが可能である。一実施形態では、クライアントサイドデータは、送受信手段260,265による第２の装置210への送信に先立って再フォーマットされる。
【００１７】
第２の装置210内の送受信手段265は、該第２の装置210上のHTMLウェブストレージ270及びストレージ275にバスにより接続されていることが可能である。クライアントサイドデータをデータベースに格納することができる場合には、該クライアントサイドデータを格納するためのデータベース280を生成することが可能である。
【００１８】
送受信手段260,265は、アプリケーション205を送信するために使用することが可能である。例えば、第１の装置200が第２の装置210からのアプリケーション205を要求する場合に、送受信手段260,265が第２の装置210から第１の装置200へアプリケーション205をコピーすることが可能である。アプリケーションはまた、その送信後に第２の装置210上に格納されない場合に、第２の装置210から第１の装置200へ送信することが可能である。一実施形態では、アプリケーションの一部を第２の装置210から第１の装置200へ送信することが可能である。
【００１９】
アプリケーション205が第１の装置200上でランタイム230により実行された後、該アプリケーション205は、例えば、その将来的な実行に備えて第１の装置200上に残留することが可能であり、又は第１の装置200から削除することが可能であり、又は第２の装置210へ送信して返すことが可能である。アプリケーション205は、該アプリケーション205を第２の装置210へ返すべく送信する前に、第１の装置200により更新させることが可能である。
【００２０】
第１の装置200と第２の装置210との間の接続が切断された場合、該第１の装置は、実行すべきことを判定することが可能である。例えば、第１の装置は、第２の装置210上に格納されるべきクライアントサイドデータが該第２の装置210上に格納されるように、該第１の装置200が該第２の装置210に接続されるまでアプリケーション205の実行を中断することが可能である。第１の装置200はまた、第２の装置210に格納されるべきクライアントサイドデータを、該クライアントサイドデータを第２の装置210に格納することができるようになるまで、記憶手段255内に格納することが可能である。
【００２１】
図３は、一実施形態による方法のフローチャートである。該方法は、第１の装置に接続された場合に第２の装置を動作させるためのものである。ステップ305で、第２の装置は、ハイパーテキストマークアップ言語（HTML）コードを該第２の装置から第１の装置へ送信することができる。該第２の装置はまた、第１の装置が該HTMLコードを要求した場合に該第１の装置へ該HTMLコードを送信することが可能である。該HTMLコードは、所定のタスクを実行するためのアプリケーションとすることが可能である。第１の装置は、HTMLコードを実行することが可能である。該第１の装置における該HTMLコードの実行は、クライアントサイドデータを生成することが可能である。該第１の装置は、該クライアントサイドデータを第２の装置上に格納すべきことを判定することが可能である。
【００２２】
ステップ310で、第２の装置は、前記ハイパーテキストマークアップ言語コードが実行された場合に第１の装置から生成されたクライアントサイドデータを受信することができる。該クライアントサイドデータは、例えば、送受信手段により第２の装置へ通信することが可能である。
【００２３】
ステップ315で、第２の装置は、第１の装置から受信したクライアントサイドデータを格納することができる。該第２の装置は、該クライアントサイドデータを揮発性又は不揮発性メモリに格納することが可能である。
【００２４】
図４は、一実施形態による方法のフローチャートである。該方法は、第１の装置に接続された場合に第２の装置を動作させるためのものである。ステップ405で、第２の装置は、該第２の装置からのHTMLコードの第１の装置による要求を受信することができる。
【００２５】
ステップ410で、第２の装置は、該第２の装置から第１の装置へハイパーテキストマークアップ言語（HTML）コードを送信することができる。該HTMLコードは、所定のタスクを実行するためのアプリケーションとすることが可能である。第１の装置は該HTMLコードを実行することが可能である。第１の装置上での該HTMLコードの実行は、クライアントサイドデータを生成することが可能である。第１の装置は、クライアントサイドデータが第２の装置上に格納されるべきことを判定することが可能である。
【００２６】
ステップ415で、第２の装置は、前記ハイパーテキストマークアップ言語コードが実行された場合に第１の装置から生成されたクライアントサイドデータを受信することができる。該クライアントサイドデータは、例えば、送受信手段により第２の装置へ通信することが可能である。
【００２７】
ステップ420で、第２の装置は、該第２の装置内にクライアントサイドデータを格納するためのデータベースを生成することが可能である。ステップ425で、第２の装置は、第１の装置から受信したクライアントサイドデータを格納することができる。第２の装置は該クライアントサイドデータを揮発性又は不揮発性メモリに格納することが可能である。
【００２８】
第１の装置においてHTMLコードを実行することにより、第２の装置からのクライアントサイドデータを該第１の装置に要求させることが可能である。第２の装置は、該第２の装置により格納されているクライアントサイドデータを第１の装置へ送信することができる。例えば、HTMLコードは、ユーザが第２の装置上でプレーすることができ、又は第１の装置へコピーしてプレーすることができる、ゲームとすることが可能である。該ゲームがユーザプリファレンス及びゲームステータス等のクライアントサイドデータを生成する場合、第１の装置が該クライアントサイドデータを第２の装置に格納して、該第１の装置及び該第２の装置が切断された後に該第２の装置により該ゲームが実行される場合に前記ユーザプリファレンス及びゲームステータスが利用可能となるようにすることが可能である。第１の装置が第２の装置に再接続された場合に、該第２の装置が該第１の装置へクライアントサイドデータを送信して、該第１の装置で該ゲームが実行される場合に該ゲームに該クライアントサイドデータが利用可能となるようにすることが可能である。
【００２９】
図５は、一実施形態による装置500のブロック図である。例えば、装置500は、他の実施形態に関して説明した第１の装置又は第２の装置とすることが可能である。装置500は、コントローラハブ510に接続されたプロセッサ505を含むことが可能である。該コントローラハブ510は、グラフィクスコントローラ520、入出力コントローラ525、又はコンピュータ読み取り可能媒体515又は516に接続することが可能である。プロセッサ505、コントローラハブ510、入出力コントローラ525、及びグラフィクスコントローラ520の少なくとも１つは、１つの回路パッケージ内又は１つの回路ダイ上に配設することが可能である。
【００３０】
プロセッサ505は、様々なタスクを実行することができる汎用プロセッサとすることが可能である。コントローラハブ510は、該プロセッサ505をコントローラへ接続することが可能である。入出力コントローラ525は、例えば、USBコントローラ、IEEE1394コントローラ、Wi-Fi（登録商標）コントローラ、又はその他の入出力コントローラを含むことが可能である。該入出力コントローラは、キーボード及びマウス等の周辺機器を装置500に接続することが可能であり、又は該装置500を他の装置に接続することが可能である。前記グラフィクスコントローラ520は、グラフィクスを処理してディスプレイ530上に表示させることが可能である。キーボード、マウス、及びディスプレイは、装置500のその他の構成要素と同じ筐体内に配設することが可能であり、又は例えば該装置500の外部に配設することが可能である。
【００３１】
前記コントローラハブ510はまた、コンピュータ読み取り可能媒体515又は516に接続することが可能である。例えば、装置500が第１の装置である場合、コンピュータ読み取り可能媒体は、プロセッサによる実行時に該装置にクライアントサイドデータを生成するコードを実行させる命令を含むことが可能である。該命令は、クライアントサイドデータを生成したコードが第２の装置を出所とするものである場合に該クライアントサイドデータを該第２の装置へ送信して格納させることが可能である。該命令は、クライアントサイドデータを生成したコードが第１の装置を出所とするものである場合に該クライアントサイドデータを該第１の装置上に格納することが可能である。
【００３２】
該命令は、クライアントサイドデータを格納するためのデータベースを第１の装置上に生成することが可能である。該命令は、クライアントサイドデータのフォーマットを、第２の装置へ該クライアントサイドデータを送信するためのフォーマットに変換することが可能である。該命令は、第２の装置から実行するコードを要求することが可能である。該命令は、第１の装置上に格納されているクライアントサイドデータを、第２の装置へ送信されるクライアントサイドデータと同期させることが可能である。
【００３３】
上述した技術は、該方法を実行するコンピューティングシステムを構成するためのコンピュータ読み取り可能媒体という形で実施することが可能である。該コンピュータ読み取り可能媒体は、例えば、任意の個数の：ディスク及びテープ式記憶媒体を含む磁気記憶媒体、コンパクトディスク媒体（例えば、CD-ROM、CD-R等）及びディジタルビデオディスク記憶媒体といった光記憶媒体、ホログラムメモリ、FLASHメモリ、EEPROM、EPROM、ROM等の半導体ベースの記憶装置を含む不揮発性記憶媒体、強磁性ディジタルメモリ、レジスタ、バッファ又はキャッシュ、メインメモリ、RAM等を含む揮発性記憶媒体、及びインターネットを含むことが可能である（但し、これらには限定されない）。その他の新たな様々なタイプのコンピュータ読み取り可能媒体を使用して、本書で説明したソフトウェアモジュールを格納し及び／又は送信することが可能である。コンピューティングシステムは、多くの形態で見いだすことが可能なものであり、例えば、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、ノートパッド、PDA（Personal Digital Assistant）、様々なワイヤレス装置、及び埋め込み型システムが挙げられる（但し、これらには限定されない）。
【００３４】
上記説明では、本発明の理解を提供すべく多数の細部を提示した。しかし、本発明は、それら細部なしで実施することが可能である、ということが当業者には理解されよう。限られた数の実施形態に関して本発明を開示したが、該実施形態の様々な修正例又は変更例が当業者には理解されよう。特許請求の範囲は、かかる修正例及び変更例を本発明の真の思想及び範囲に包含させることを意図したものである。
【図１】
2014505278.tif 000003
【図２】
2014505278.tif 000004
【図３】
2014505278.tif 000005
【図４】
2014505278.tif 000006
【図５】
2014505278.tif 000007
【国際調査報告】
2014505278.tif 000008
2014505278.tif 000009