(57)【要約】  それぞれが所定のＯＳで作動される端末Ａと端末Ｂにおいて、アプリケーションを転送するアプリケーション転送システムである。端末Ｂは端末Ａからアプリケーションの転送要求を受けたとき（Ｓ２２）、アプリケーションのＯＳを確認し、ＯＳが同じになるように調整の上アプリケーションを実行する（Ｓ２４）。その結果、任意の端末間でアプリケーションの転送が可能なアプリケーション転送システムおよびその方法を提供できる。
2014125643.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが所定のＯＳを有する第１端末と第２端末間において、アプリケーションを転送するアプリケーション転送システムであって、
前記第１端末は
前記アプリケーションの転送要求を、前記ＯＳを特定する情報とともに第２端末に送信する送信手段を有し、
前記第２端末は
自身のＯＳと異なるＯＳの動作を仮想化する仮想化ソフトウェアと、
前記転送要求を受ける受信手段と、
前記受信手段で受信したアプリケーションのＯＳが自身の有するＯＳと同じであるか否かを判別する判別手段と、
前記判別手段が転送要求を受けたアプリケーションのＯＳが自身のＯＳと同じであると判断したときは、前記アプリケーションをそのまま実行し、異なると判断したときは、前記仮想化ソフトウェアを起動して前記アプリケーションを実行するよう制御する制御手段とを含む、
アプリケーション転送システム。
【請求項２】
前記送信手段は、前記第２端末に対して、前記アプリケーションの転送時の状況を規定する付属情報を送信する、請求項１に記載のアプリケーション転送システム。
【請求項３】
前記付属情報は第１端末で停止時のプログラムの実行箇所および、停止時のアプリケーションの状態を示す情報を含む、請求項２に記載のアプリケーション転送システム。
【請求項４】
前記付属情報は前記アプリケーションが使用しているメモリサイズを含む、請求項２または３に記載のアプリケーション転送システム。
【請求項５】
前記第１端末は前記仮想化ソフトウェアを有する、請求項１〜４のいずれかに記載のアプリケーション転送システム。
【請求項６】
それぞれが所定のＯＳとメモリとを有する第１端末と第２端末間において、アプリケーションを転送する方法であって、
第１端末からアプリケーションの転送要求を第２端末に送信するステップと、
第２端末で第１端末からの転送要求を受信するステップと、
第２端末において、転送要求されたアプリケーションを作動させるＯＳが、自身の有するＯＳと同じであるか否かを判別するステップと、
転送要求を受けたアプリケーションのＯＳが自身のＯＳと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するステップとを含む、アプリケーション転送方法。
【請求項７】
外部に設けられ、所定のＯＳを有する端末から、作動中のアプリケーションの転送を受けて、前記アプリケーションを作動可能な端末であって、
自身のＯＳと異なるＯＳの動作を仮想化する仮想化ソフトウェアと、
前記外部に設けられた端末から前記アプリケーションの転送要求を、前記外部に設けられた端末のＯＳを特定する情報とともに受信する受信手段と、
前記受信手段で受信したアプリケーションのＯＳが自身の有するＯＳと同じであるか否かを判別する判別手段と、
前記判別手段が転送要求を受けたアプリケーションのＯＳが自身のＯＳと同じであると判断したときは、前記アプリケーションをそのまま実行し、異なると判断したときは、前記仮想化ソフトウェアを起動して前記アプリケーションを実行するよう制御する制御手段とを含む、端末。
【請求項８】
外部に設けられ、所定のＯＳを有する第１端末で作動しているアプリケーションを、コンピュータである第２端末で受信して作動させるプログラムであって、
前記第２端末は、自身のＯＳと異なるＯＳの動作を仮想化する仮想化ソフトウェアを有し、
前記第１端末から前記アプリケーションの転送要求を前記第１端末のＯＳを特定する情報とともに受信する受信手段と、
前記受信手段で受信したアプリケーションのＯＳが自身の有するＯＳと同じであるか否かを判別する判別手段と、
前記判別手段が転送要求を受けたアプリケーションのＯＳが自身のＯＳと同じであると判断したときは、前記アプリケーションをそのまま実行し、異なると判断したときは、前記仮想化ソフトウェアを起動して前記アプリケーションを実行するよう制御する制御手段として作動させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はアプリケーション転送システム、アプリケーション転送方法、端末、およびプログラムに関し、特に、任意の装置間でアプリケーションの転送が可能なアプリケーション転送システム、アプリケーション転送方法、端末、およびプログラムに関する。
【背景技術】
【０００２】
従来から、家庭用のＰＣでゲームをしていて、その後、何らかの交通機関に乗ってからもそのゲームを続けたいというニーズがあった。これに対処する方法が、例えば、特開２０１２−５１７７６７号公報（特許文献１）に開示されている。特許文献１によれば、ユーザの携帯電話上で、コンテンツ転送のユーザインターフェース制御の操作を行うことにより、ゲームの状態情報がその電話に転送され、プレーヤは、小さな画面でゲームを再開できるようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−５１７７６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の、異なる機器において、ゲーム等のアプリケーションを続行する方法としては、上記のものがあった。上記の方法によれば、家庭用ＰＣでのゲームは、ユーザの入力情報がクラウドプロセッサに送られ、そのクラウドプロセッサがゲームの通信を行い、対応するＭＰＥＧストリームをユーザのＰＣに返すことにより行われ、ユーザがそのゲームの送信先をユーザの携帯電話に切り替えていた。【０００５】
しかしながら、この方法では、クラウドシステムに接続することが必要であり、構成が複雑になるとともに、コストが高くなるという問題があった。【０００６】
この発明は上記のような問題点を解消するためになされたもので、任意の装置間でアプリケーションの転送が可能なアプリケーション転送システム、アプリケーション転送方法、端末、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
アプリケーション転送システムは、それぞれが所定のＯＳを有する第１端末と第２端末間においてアプリケーションを転送する。第１端末は、アプリケーションの転送要求を、ＯＳを特定する情報とともに第２端末に送信する送信手段を有する。第２端末は、自身のＯＳと異なるＯＳの動作を仮想化する仮想化ソフトウェアと、転送要求を受ける受信手段と、受信手段で受信したアプリケーションのＯＳが自身の有するＯＳと同じであるか否かを判別する判別手段と、判別手段が転送要求を受けたアプリケーションのＯＳが自身のＯＳと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するよう制御する制御手段とを含む。【０００８】
好ましくは、送信手段は第２端末に対して、アプリケーションの転送時の状況を規定する付属情報を送信する。【０００９】
付属情報は第１端末で停止時のプログラムの実行箇所および、停止時のアプリケーションの状態を示す情報を含むのが好ましい。【００１０】
付属情報はアプリケーションが使用しているメモリサイズを含んでもよい。【００１１】
第１端末が仮想化ソフトウェアを有してもよい。【００１２】
この発明の他の局面はアプリケーションを転送する方法である。アプリケーション転送方法は、それぞれが所定のＯＳとメモリとを有する第１端末と第２端末間において、アプリケーションを転送する。方法は、第１端末からアプリケーションの転送要求を第２端末に送信するステップと、第２端末で第１端末からの転送要求を受信するステップと、第２端末において、転送要求されたアプリケーションを作動させるＯＳが、自身の有するＯＳと同じであるか否かを判別するステップと、転送要求を受けたアプリケーションのＯＳが自身のＯＳと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するステップとを含む。【００１３】
この発明のさらに他の局面は、外部に設けられ、所定のＯＳを有する端末から、作動中のアプリケーションの転送を受けて、前記アプリケーションを作動可能な端末である。端末は、自身のＯＳと異なるＯＳの動作を仮想化する仮想化ソフトウェアと、外部に設けられた端末から前記アプリケーションの転送要求を、外部に設けられた端末のＯＳを特定する情報とともに受信する受信手段と、受信手段で受信したアプリケーションのＯＳが自身の有するＯＳと同じであるか否かを判別する判別手段と、判別手段が転送要求を受けたアプリケーションのＯＳが自身のＯＳと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するよう制御する制御手段とを含む。【００１４】
この発明のさらに他の局面は、外部に設けられ、所定のＯＳを有する第１端末で作動しているアプリケーションを、コンピュータである第２端末で受信して作動させるプログラムである。第２端末は、自身のＯＳと異なるＯＳの動作を仮想化する仮想化ソフトウェアを有している。プログラムは、第１端末からアプリケーションの転送要求を第１端末のＯＳを特定する情報とともに受信する受信手段と、受信手段で受信したアプリケーションのＯＳが自身の有するＯＳと同じであるか否かを判別する判別手段と、判別手段が転送要求を受けたアプリケーションのＯＳが自身のＯＳと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するよう制御する制御手段として作動させる。
【発明の効果】
【００１５】
それぞれが所定のＯＳを有する第１端末と第２端末間においてアプリケーションを転送するアプリケーション転送システムにおいて、転送要求を受けた第２端末は、アプリケーションが自身の有するＯＳで作動可能なときはそのままアプリケーションを実行し、異なるときは、ＯＳを仮想化するソフトウェアを起動してアプリケーションを実行する。【００１６】
その結果、任意の端末間でアプリケーションの転送が可能なアプリケーション転送システム、アプリケーション転送方法、端末、およびプログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】この発明の一実施の形態に係るアプリケーションの転送状態を示す模式図である。
【図２】携帯端末およびカーナビの構成を示すブロック図である。
【図３】携帯端末のメインメモリの内容を示す図である。
【図４】携帯端末においてアプリケーションがロードされたときのメインメモリの内容を示す図である。
【図５】要求を受付けたサイズのメモリをワーク領域としてアプリケーションに割り当てたときのメインメモリの構成を示す図である。
【図６】アプリケーションの転送時の携帯端末とカーナビとのそれぞれのＯＳの動作を示すフローチャートである。
【図７】受信側端末がアプリケーションおよび付属情報を受信した時の処理内容を示すフローチャートである。
【図８】送信側および受信側端末のアプリケーション転送前のメインメモリの構成を示す図である。
【図９】送信側および受信側端末のアプリケーション転送後のメインメモリの構成を示す図である。
【図１０】受信側端末のＯＳがアプリケーションを作動可能でない場合の送信側端末と受信側端末との構成を示す模式図である
【発明を実施するための形態】
【００１８】
以下、この発明に係るアプリケーションの転送方法の一実施の形態を、図面を参照して説明する。図１は、アプリケーションの転送の例として、ユーザが携帯電話等の携帯端末１０で地図のアプリケーションを立ち上げて見ている途中から、そのアプリケーションをカーナビ２０に地図のアプリケーションごと転送する場合を示す模式図である。
【００１９】
図２（Ａ）は携帯端末１０の構成を示すブロック図である。図２（Ａ）を参照して、携帯端末１０は、携帯端末１０全体を制御するＣＰＵ１１と、操作部１２と、記憶装置１３と、ディスプレイのような表示部１４と通信部１５とを含む。通信部１５は送信手段として作動する。ＣＰＵ１１およびアプリケーションはＯＳ（Operation System）Ａで駆動されるものとする。以下、説明上、このＯＳを「ＯＳＡ」、ＯＳがＢで駆動されるものを「ＯＳＢ」で表示する。
【００２０】
図２（Ｂ）はカーナビ２０の構成を示すブロック図である。図２（Ｂ）を参照して、カーナビ２０は、カーナビ２０全体を制御するＣＰＵ２１と、操作部２２と、記憶装置２３と、ディスプレイのような表示部２４と通信部２５とを含む。通信部２５は受信手段として作動する。ＣＰＵ２１はＯＳＢで駆動されるものとする。
【００２１】
ここで、携帯端末１０のＣＰＵ１１およびＯＳＡ、ならびに、カーナビ２０のＣＰＵ２１およびＯＳＢとも、地図アプリケーションを実行可能であり、通信部１５,２５は当該アプリケーションを送受信可能である。
【００２２】
まず、携帯端末１０におけるＯＳＡの内部の動作について説明する。図３はＯＳＡの動作を説明するための記憶装置１３に含まれるメインメモリ３１を示す図である。メインメモリ３１の一部は常にＯＳＡによって使用されており、ＯＳＡは携帯端末１０の操作部１２や表示部１４等の入出力の制御やメインメモリ３１のメモリ管理などの基本動作を行う。このため用いるエリアがシステム領域３３であり、どのようなアプリケーションを動作させても必要な領域である。メインメモリ３１のシステム領域３３以外の部分は未使用領域３２である。
【００２３】
この状態で携帯端末１０のユーザがゲームのアプリケーションを起動させた場合を図４に示す。図４は携帯端末１０のメインメモリ３１と携帯端末１０に対して外付けされたＳＤカード４０とを示す図である。ここでは、アプリケーションのプログラム自体はＳＤカード４０に保存されているものとする。ＳＤカード４０はアプリケーションのプログラムを含むデータを記憶するアプリケーション領域４１とデータが格納されていない未使用領域４２とを含む。
【００２４】
携帯端末１０においてユーザがアプリケーションを操作部１２等を操作して起動させたとき、ＯＳＡはＳＤカード４０上に存在するアプリケーションのデータをメインメモリ３１中の未使用領域３２にコピーする。すると、図４の左側に図示するように、メインメモリ３１にアプリケーション領域３５が生成される。
【００２５】
ＣＰＵ１１は、アプリケーションを起動し、初期化を行った上で各アプリケーション固有の動作を開始する。各アプリケーション特有の作業領域（ワーク領域）が必要となるため、アプリケーションはＯＳＡに対してメモリを与えるように要求する。
【００２６】
ＯＳは要求を受付けたサイズのメモリをワーク領域としてアプリケーションに割り当てる。この状態を図５に示す。図５に示すように、アプリケーション領域３５に隣接してワーク領域３６が設けられる。
【００２７】
ユーザがアプリケーションを終了させたときは、ＯＳはワーク領域とアプリケーションに割り当てた領域を解放する。その状態におけるメインメモリの割り付けは図３と同じである。
【００２８】
次に、携帯端末１０からカーナビ２０へのアプリケーションの転送方法について説明する。図６はこの場合の携帯端末１０とカーナビ２０とのそれぞれのＯＳＡとＯＳＢとの動作を示すフローチャートである。ここ以降では、一般化のために、携帯端末１０を端末Ａ、カーナビを端末Ｂと呼ぶ。
【００２９】
図６を参照して、端末ＡはアプリケーションをＳＤカードからロード後、実行する（ステップＳ１１，Ｓ１２）。一方、端末Ｂはユーザからの転送要求を待機している（Ｓ２１）。
【００３０】
ユーザがアプリケーションの転送を決定し、その旨を図２に示す端末Ａの操作部１２を介して入力すると、端末Ａはアプリケーションの実行を停止する（Ｓ１３でＹＥＳ，Ｓ１４）。ここで、アプリケーションの実行の停止とは、アプリケーションの終了ではなく、動作状態を保ったまま停止することをいう。その後、端末Ａは端末Ｂに対して転送要求を送信する（Ｓ１５）。すなわち、端末Ａはアプリケーションを動作状態を保ったまま停止する機能を有している。
【００３１】
端末Ｂはこの転送要求を受信すると、転送要求を受付けた旨の受付信号を端末Ａに送信する（Ｓ２２でＹＥＳ，Ｓ２３）。
【００３２】
端末Ａは転送要求受付信号を受信すると、アプリケーションおよび付属情報を端末Ｂに送信して、アプリケーションを終了する（Ｓ１５でＹＥＳ，Ｓ１６、Ｓ１７）。ここで、端末Ａはアプリケーションおよび付属情報を有線または無線を介して、ネットワーク上のサーバ等を介することなく直接端末Ｂに送信する。また、付属情報は作動するＯＳの情報を含む。
【００３３】
なお、端末Ａは一定期間内に端末Ｂからの受付信号を受信しなかったときは、Ｓ１５に戻る。
【００３４】
端末Ｂはアプリケーションおよび付属情報を受信すると所定の処理を行う（Ｓ２４）。なお、この付属情報については後述する。
【００３５】
次に、端末ＢのＣＰＵ２１が行うＳ２４の所定の処理について説明する。図７はこの所定の処理の内容を示すフローチャートである。図７を参照して、所定の処理においては、まず、端末Ｂは、付属情報を参照して、自分のＯＳ（ＯＳＢ）がアプリケーションを作動できるＯＳであるか否かを判断する（Ｓ３１）。作動できるＯＳであれば（Ｓ３１でＹＥＳ）、アプリケーションをメインメモリの未使用の領域にコピーして図６のＳ２５へ移行する（Ｓ３２）。一方、作動できないＯＳであれば（Ｓ３１でＮＯ）、仮想ソフトウェアを起動して（Ｓ３３）、図６のＳ２５へ移行する。
【００３６】
なお、ここで判断されるのは、物理的にＯＳが同じか否かということではなく、アプリケーションが作動可能か否かが判断される。また、ＣＰＵ２１は判別手段および制御手段として作動する。
【００３７】
次に、端末ＢのＯＳ（ＯＳＢ）がアプリケーションを作動可能である場合（図７のＳ３２と図６のＳ２５）の具体的な処理について説明する。
【００３８】
図８および図９はこの場合の端末Ａと端末Ｂとのメインメモリの詳細を示す図である。図８は端末Ａと端末Ｂとの転送前の状態を示し、図９は転送後の状態を示す。
【００３９】
端末Ａと端末Ｂとは同等なＯＳであるので、システム領域は同じである。端末ＡのＯＳは図８（Ａ）に示すアプリケーションとワーク領域３５，３６を、無線ないし有線の回線を通じて図８（Ｂ）に示す端末Ｂのメインメモリ５０の未使用領域５２へコピーする。端末ＡのＯＳＡはコピー後、アプリケーションを終了させてデータを消去する。この状態を図９（Ａ），（Ｂ）に示す。
【００４０】
ここで、ユーザが端末Ａにおける動作の途中から端末Ｂへ動作の状態を引き継ぐために、ワーク領域も一緒に転送する必要がある。仮に、アプリケーションのみを端末Ｂに転送すると、端末Ｂでアプリケーションを立ち上げたのと同じになり、アプリケーションは初期状態から起動する。
【００４１】
すなわち、アプリケーションとワーク領域とを一緒に転送することで、アプリケーションの動作状態を引き継いで端末Ａから端末Ｂへ継続してアプリケーションを使用できる。
【００４２】
すなわち、このようにすることによって、アプリケーションから認識するメモリ内部の状況が転送前と全く同じになる。
【００４３】
次に、端末ＢのＯＳ（ＯＳＢ）がアプリケーションを作動可能でない場合（図７のＳ３３の場合）の具体的な処理について説明する。
【００４４】
図１０はこの場合の端末Ａと端末Ｂとのハードウェアおよびソフトウェアを含む構成を示す模式図である。左側が端末Ａを示し右側が端末Ｂを示す。図１０を参照して、端末Ａは、ハードウェアＡと、その上で動作可能なＯＳＡと、ＯＳＡとＯＳＡの上で作動するアプリケーションフレームワーク６３と、アプリケーションフレームワーク上で作動するアプリケーション６４とを含む。また、ＯＳＡはＯＳカーネル６１と、ライブラリ６２とを含み、ライブラリ６２は、ＯＳＡがAndroidである場合には、後に説明するAndroid ランタイム６２ａを含む。
【００４５】
同様に、端末Ｂは、ハードウェアＢと、その上で動作可能なＯＳＢと、ＯＳＢの上で作動する仮想化ソフトウェア７３と、仮想化ソフトウェア７３上で作動するアプリケーション７４とを含む。ＯＳＢはＯＳカーネル７１とライブラリ７２とを含む。
【００４６】
ここで、端末Ｂに搭載の仮想化ソフトウェア７３は、端末Ａ，Ｂ間の差異を吸収する。つまり、実体は端末Ｂであるにも関わらず、さも端末Ａ上でアプリケーションが実行されているかのようにアプリケーションに対して振る舞う。図において、端末Ｂは仮想化ソフトウェア７３以下の階層（ライブラリ７２、カーネル７１、ハードウェア７０）は端末Ａと全て異なるが、仮想化ソフトウェア７３が端末Ａと同一の動作を行うことで、異なるハードウェアであってもプログラムの実行が可能になる。
【００４７】
ここで仮想化ソフトウェアとしては、Windows（登録商標）上でLinux（登録商標）のアプリケーションを、またLinux 上でWindows のアプリケーションを実行でき、ウエブサーバーの仮想化などの用途に広く使われている、ＶＭｗａｒｅや、Windows やLinux のソフトをエミュレーションできるとともに、一部の周辺ハードウェアも含めて仮想化できる、QEMUや、Android 用のアプリケーションをWindows またはMac で実行できる、BlueStacks等を含む。
【００４８】
なお、ここで、端末Ａからゲームのアプリケーションを転送した場合は、転送されたゲームアプリケーション７４は、端末Ｂ上の仮想化ソフトウェア７３がアプリケーションフレームワーク６３の代わりに該当アプリケーションを図示のないメモリ上に読み込み、端末Ａから連続して実行する。このとき、ゲームの途中経過を保存しておくためのワーク領域についても同時に転送されているため、転送前の状況を再現してアプリケーション７４にメモリを割り当てる。
【００４９】
なお、上記実施の形態においては、アプリケーションとしてゲームを転送した場合について説明したが、これに限らず、地図のアプリケーションでの地図表示を転送してもよい。このときは、同様に端末Ｂで地図アプリケーションが読み込まれ、実行される。ここでは、アプリケーションはライブラリ７２を通して、現在位置を取得するよう要求する。実際にはこの要求を受けるのは仮想化ソフトウェア７３である。ここでも、端末Ａと全く同じ動作を行い、同じデータを返すためアプリケーション側からは仮想化ソフトウェア上で動作していることを認識はできない。端末Ｂにおいては仮想化ソフトウェアを通して現在位置がアプリケーションに渡される。
【００５０】
次に、付属情報について説明する。この実施の形態においては、アプリケーションプログラムの実行中に実行を停止させて他の端末から続きの動作を再開出来る。このためには、アプリケーションプログラムの実行を停止したときと全く同じ状況を転送先の端末で再現する必要があり、アプリケーションプログラム本体や作動ＯＳ以外にも、付随するさまざまな情報を同時に転送する必要がある。ここで、これらの情報をまとめて付属情報とよぶ。
【００５１】
ＯＳ以外の付属情報としては、以下を含む。
【００５２】
(1)アプリケーションプログラムの内部プロセス情報
他の端末でプログラムを一旦停止して、転送後に別の端末でプログラムを再開するためには、他の端末でどこまでプログラムが実行されていたのかという情報と、その時点での状態の情報が必要である。そのため停止された時点でのプログラムの実行箇所、そのときのアプリケーションの状態等の内部情報が付属情報となる。
【００５３】
(2)アプリケーションが確保しているワーク領域のサイズとその中身の情報
アプリケ-ションが確保したメモリの内容およびサイズが付属情報となる。これらは転送先の仮想化ソフトウェアで全く同じメモリ内容を再現するために必要である。
【００５４】
(3)ビデオメモリ内容
画面描画内容を転送先の仮想化ソフトウェアで引き継ぐために、ビデオメモリの内容を転送する。
【００５５】
(4)アプリケーションに固有のユーザＩＤ
特定のＯＳでは、アプリケーションはセキュリティ目的でアプリケーションごとに固有のユーザＩＤが割り当てられる場合がある。もし、アプリケーションソフトが、別のアプリケーションソフトに割り当てられた領域にアクセスすることができれば、容易にウィルスなどのソフトを作成することができる。そこでこの対策として特定のＯＳでは、アプリケーション毎にユーザＩＤを割り当てることとしている。あるアプリケーションに割り当てたメモリ領域は、別のユーザIDであるアプリケーションからは基本的にアクセスできず、セキュリティの面で有利となる。
【００５６】
このユーザＩＤは当然実行中に変化することはあり得ないため、本アプリ転送方法においては転送後にも同じユーザＩＤを割り当てて実行を再開する必要があり、このためにユーザＩＤを一緒に転送する。
【００５７】
(5)アプリケーション用のデータ保存用フォルダとその内容
各アプリケーションに割り当てたデータ保存用フォルダである。上述の（2）のワーク領域と似ているが、上記(2)はあくまで一時記憶でありアプリケーション終了時に消去されるのに対して、これは電源を切っても保持される点が異なる。例えばメールのアプリケーションであれば、メール本文データはこのエリアに保存されるため、メールのアプリケーションを一旦終了させて立ち上げ直してもメール本文が消えることはない。
【００５８】
(6)アプリケーションのリソース
リソースとは該当アプリケーションで用いる画像データ、音楽等のデータをいう。例えば特定のアプリケーションを示すアイコン画像、メニュー画面に表示されるキャラクタやロゴ、BGMの音楽やゲームの効果音などのデータは、アプリケーション本体とは別として取り扱われるが、実行の際には必要なデータである為、アプリケーションと同時に転送する必要がある。
【００５９】
なお、上記実施の形態においては、特定のＯＳについての説明を行わなかったが、例えば端末ＡがAndroid(アンドロイド)であれば、端末Ａは以下のように動作する。
【００６０】
AndroidOSは、(ａ)Linuxカーネル、(ｂ)標準的なライブラリ、(ｃ)AndroidRuntime（アプリケーションを実行するための実行環境）、(ｄ)アプリケーション・フレームワーク、(ｅ)アプリケーションの5つの部分で構成される。
【００６１】
Linuxカーネル(ａ)では、メモリやプロセスの管理などの基本機能を実現する、最も基本的でハードウェアに近い部分を処理する。この部分に関しては一般的なパソコンとほぼ同じである。アプリケーションが直接カーネルとやりとりすることはない。
【００６２】
標準的なライブラリ(ｂ)はさまざまな機能を実現するためのコードである。例えは、Surface Managerはグラフィックスの表示を扱い、MediaFrameWorkは動画や音声の再生を行う。FreeTypeはさまざまな文字のフォントを任意のサイズで表示するためのライブラリである。
【００６３】
Android Runtime（ｃ）はアプリケーションを実行するための環境であり、基本的なAPI（Application Program Interface）を提供する。このランタイムがアプリケーションを直接実行する。
【００６４】
アプリケーションフレームワーク（ｄ）はアプリケーションの起動、停止、終了などの管理を実行する。また、端末の状態をアプリケーションに通知する。ここで、アプリケーションが直接アクセスするのは各アプリケーションフレームワーク（ｄ）およびライブラリ（ｂ）に限られ、カーネル（ａ）にアクセスすることはない。
【００６５】
次に、図１０を参照して、Androidにおける一般的なアプリケーションの動作例は以下のとおりである。
【００６６】
例えば、ゲームのアプリケーション６４を起動する場合は次のとおりである。
【００６７】
ユーザがゲームアプリケーション６４の起動を指示すると、アプリケーションフレームワーク６３が該当アプリケーションをメモリ上に読み込み、Androidランタイム６２ａを通して実行する。ゲームの途中経過を保存しておくために、アプリケーションはワーク領域を必要とする。そこで、Androidランタイム６２ａ中の仮想マシンがワーク領域としてメモリを確保して、ゲームアプリケーションに割り当てる。割り当てられたメモリはアプリケーションの実行中に使用され、アプリケーションの動作が終了した際に解放（メモリの管理をAndroidランタイム６２ａに返す）される。
【００６８】
また、地図のアプリケーションでの地図表示の動作例は次の通りである。
【００６９】
地図アプリケーションを起動すると、上と同様にアプリケーション６４が読み込まれ、実行される。地図を表示する際には現在位置の緯度・経度をＧＰＳから取得する必要があるため、アプリケーションはAndroidランタイム６２ａ中のコアライブラリを通して、現在位置を取得するよう要求する。Linuxカーネルを通じてGPSのチップから現在位置が読みこまれ、Androidランタイム６２ａを経由して現在位置がアプリケーションに渡される。
【００７０】
次に受信側の端末Ｂについて説明する。端末Ｂは上記のように仮想化ソフトウェア７３を有しており、仮想化ソフトウェア７３はAndroidでいうアプリケーションフレームワーク、ライブラリ、コアライブラリの全ての機能を端末Ｂのハードウェア上で同様に実行できる。
【００７１】
上記のゲームのアプリケーション６４を転送された場合は次のとおりである。
【００７２】
転送されたゲームアプリケーション７４は、端末Ｂ上の仮想化ソフトウェア７３がアプリケーションフレームワーク６３の代わりに該当アプリケーションをメモリ上に読み込み、端末Ａから連続してアプリケーションを実行する。ゲームの途中経過を保存しておくためのワーク領域についても同時に転送されており、転送前の状況を再現してアプリケーション７４に割り当てる。
【００７３】
上記の地図のアプリケーションでの地図表示を転送された場合は次のとおりである。先の例と同様に地図アプリケーションが読み込まれ、実行される。アプリケーション７４はAndroidランタイム６２ａ中のコアライブラリを通して、現在位置を取得するよう要求する。しかしながら、実際にはこの要求を受けるのはAndroidランタイム６２ａではなく仮想化ソフトウェア７３である。しかし、Androidランタイム６２ａと全く同じ動作を行い、同じデータを返すためアプリケーション側からは仮想化ソフトウェア７３上で動作していることを認識できない。端末Ｂにおいては仮想化ソフトウェア７３を通して現在位置がアプリケーションに渡される。実際に現在位置のデータをどのように実現するかは上記のように端末Ｂの仕様に依存する。
【００７４】
なお、上記実施の形態においては、端末Ｂのみが仮想化ソフトウェアを有する場合について説明したが、これに限らず、端末Ａおよび端末Ｂともに仮想化ソフトウェアを搭載しておき、双方に転送元の機能を持たせることも可能である。この構成では端末A/B間の双方向に任意の転送が可能である。また、端末Ａで実行したアプリケーションを端末Ｂに転送して実行したのち、さらに端末Ａに戻すことも可能で、動作状態をすべて引き継ぐことができる。
【００７５】
また、上記実施の形態においては特定のＯＳとしてAndroidの場合について説明したが、これに限らず、任意のＯＳについて同様の処理が可能である。
【００７６】
また、上記実施の形態においては、携帯端末とカーナビ間でアプリケーションを転送する場合、および、ＧＰＳを用いて地図情報を表示する場合を例にあげて説明したが、これに限らず、携帯端末で映画を見ていて、それを大画面のＴＶに転送する場合や、携帯端末でゲームをしていて、それを大画面ＴＶに転送する場合についても適用可能である。
【００７７】
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示した実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。
【産業上の利用可能性】
【００７８】
アプリケーション転送システムは、任意の端末間でアプリケーションの転送が可能であるため、アプリケーション転送システムとして有利に利用される。
【符号の説明】
【００７９】
１０  携帯端末、２０  カーナビ、１１，２１  ＣＰＵ、１２、２２  操作部、１３、２３  記憶装置、  １４、２４  表示部、１５、２５  通信部、３１  メインメモリ、３２  未使用領域、３３  システム領域、６０，７０  ハードウェア、６１，７１  ＯＳカーネル、６２，７２  ライブラリ、６４，６５  アプリケーション、６３  アプリケーションフレームワーク、７３  仮想化ソフトウエア。
【図１】
2014125643.tif 000003
【図２】
2014125643.tif 000004
【図３】
2014125643.tif 000005
【図４】
2014125643.tif 000006
【図５】
2014125643.tif 000007
【図６】
2014125643.tif 000008
【図７】
2014125643.tif 000009
【図８】
2014125643.tif 000010
【図９】
2014125643.tif 000011
【図１０】
2014125643.tif 000012
【国際調査報告】
2014125643.tif 000013
2014125643.tif 000014
2014125643.tif 000015
2014125643.tif 000016