JP6059330B2 - アプリケーション転送システム、アプリケーション転送方法、端末、およびプログラム - Google Patents

アプリケーション転送システム、アプリケーション転送方法、端末、およびプログラム Download PDF

Info

Publication number
JP6059330B2
JP6059330B2 JP2015500077A JP2015500077A JP6059330B2 JP 6059330 B2 JP6059330 B2 JP 6059330B2 JP 2015500077 A JP2015500077 A JP 2015500077A JP 2015500077 A JP2015500077 A JP 2015500077A JP 6059330 B2 JP6059330 B2 JP 6059330B2
Authority
JP
Japan
Prior art keywords
application
terminal
transfer
transfer request
same
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015500077A
Other languages
English (en)
Other versions
JPWO2014125643A1 (ja
Inventor
満次 吉田
満次 吉田
温 臼井
温 臼井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
RayTron Inc
Original Assignee
RayTron Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by RayTron Inc filed Critical RayTron Inc
Application granted granted Critical
Publication of JP6059330B2 publication Critical patent/JP6059330B2/ja
Publication of JPWO2014125643A1 publication Critical patent/JPWO2014125643A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

この発明はアプリケーション転送システム、アプリケーション転送方法、端末、およびプログラムに関し、特に、任意の装置間でアプリケーションの転送が可能なアプリケーション転送システム、アプリケーション転送方法、端末、およびプログラムに関する。
従来から、家庭用のPCでゲームをしていて、その後、何らかの交通機関に乗ってからもそのゲームを続けたいというニーズがあった。これに対処する方法が、例えば、特開2012−517767号公報(特許文献1)に開示されている。特許文献1によれば、ユーザの携帯電話上で、コンテンツ転送のユーザインターフェース制御の操作を行うことにより、ゲームの状態情報がその電話に転送され、プレーヤは、小さな画面でゲームを再開できるようになっている。
特開2012−517767号公報
従来の、異なる機器において、ゲーム等のアプリケーションを続行する方法としては、上記のものがあった。上記の方法によれば、家庭用PCでのゲームは、ユーザの入力情報がクラウドプロセッサに送られ、そのクラウドプロセッサがゲームの通信を行い、対応するMPEGストリームをユーザのPCに返すことにより行われ、ユーザがそのゲームの送信先をユーザの携帯電話に切り替えていた。
しかしながら、この方法では、クラウドシステムに接続することが必要であり、構成が複雑になるとともに、コストが高くなるという問題があった。
この発明は上記のような問題点を解消するためになされたもので、任意の装置間でアプリケーションの転送が可能なアプリケーション転送システム、アプリケーション転送方法、端末、およびプログラムを提供することを目的とする。
アプリケーション転送システムは、それぞれが所定のOSを有する第1端末と第2端末間においてアプリケーションを転送する。第1端末は、アプリケーションの転送要求を、OSを特定する情報とともに第2端末に送信する送信手段を有する。第2端末は、自身のOSと異なるOSの動作を仮想化する仮想化ソフトウェアと、転送要求を受ける受信手段と、受信手段で受信したアプリケーションのOSが自身の有するOSと同じであるか否かを判別する判別手段と、判別手段が転送要求を受けたアプリケーションのOSが自身のOSと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するよう制御する制御手段とを含む。
好ましくは、送信手段は第2端末に対して、アプリケーションの転送時の状況を規定する付属情報を送信する。
付属情報は第1端末で停止時のプログラムの実行箇所および、停止時のアプリケーションの状態を示す情報を含むのが好ましい。
付属情報はアプリケーションが使用しているメモリサイズを含んでもよい。
第1端末が仮想化ソフトウェアを有してもよい。
この発明の他の局面はアプリケーションを転送する方法である。アプリケーション転送方法は、それぞれが所定のOSとメモリとを有する第1端末と第2端末間において、アプリケーションを転送する。方法は、第1端末からアプリケーションの転送要求を第2端末に送信するステップと、第2端末で第1端末からの転送要求を受信するステップと、第2端末において、転送要求されたアプリケーションを作動させるOSが、自身の有するOSと同じであるか否かを判別するステップと、転送要求を受けたアプリケーションのOSが自身のOSと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するステップとを含む。
この発明のさらに他の局面は、外部に設けられ、所定のOSを有する端末から、作動中のアプリケーションの転送を受けて、前記アプリケーションを作動可能な端末である。端末は、自身のOSと異なるOSの動作を仮想化する仮想化ソフトウェアと、外部に設けられた端末から前記アプリケーションの転送要求を、外部に設けられた端末のOSを特定する情報とともに受信する受信手段と、受信手段で受信したアプリケーションのOSが自身の有するOSと同じであるか否かを判別する判別手段と、判別手段が転送要求を受けたアプリケーションのOSが自身のOSと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するよう制御する制御手段とを含む。
この発明のさらに他の局面は、外部に設けられ、所定のOSを有する第1端末で作動しているアプリケーションを、コンピュータである第2端末で受信して作動させるプログラムである。第2端末は、自身のOSと異なるOSの動作を仮想化する仮想化ソフトウェアを有している。プログラムは、第1端末からアプリケーションの転送要求を第1端末のOSを特定する情報とともに受信する受信手段と、受信手段で受信したアプリケーションのOSが自身の有するOSと同じであるか否かを判別する判別手段と、判別手段が転送要求を受けたアプリケーションのOSが自身のOSと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するよう制御する制御手段として作動させる。
それぞれが所定のOSを有する第1端末と第2端末間においてアプリケーションを転送するアプリケーション転送システムにおいて、転送要求を受けた第2端末は、アプリケーションが自身の有するOSで作動可能なときはそのままアプリケーションを実行し、異なるときは、OSを仮想化するソフトウェアを起動してアプリケーションを実行する。
その結果、任意の端末間でアプリケーションの転送が可能なアプリケーション転送システム、アプリケーション転送方法、端末、およびプログラムを提供することができる。
この発明の一実施の形態に係るアプリケーションの転送状態を示す模式図である。 携帯端末およびカーナビの構成を示すブロック図である。 携帯端末のメインメモリの内容を示す図である。 携帯端末においてアプリケーションがロードされたときのメインメモリの内容を示す図である。 要求を受付けたサイズのメモリをワーク領域としてアプリケーションに割り当てたときのメインメモリの構成を示す図である。 アプリケーションの転送時の携帯端末とカーナビとのそれぞれのOSの動作を示すフローチャートである。 受信側端末がアプリケーションおよび付属情報を受信した時の処理内容を示すフローチャートである。 送信側および受信側端末のアプリケーション転送前のメインメモリの構成を示す図である。 送信側および受信側端末のアプリケーション転送後のメインメモリの構成を示す図である。 受信側端末のOSがアプリケーションを作動可能でない場合の送信側端末と受信側端末との構成を示す模式図である
以下、この発明に係るアプリケーションの転送方法の一実施の形態を、図面を参照して説明する。図1は、アプリケーションの転送の例として、ユーザが携帯電話等の携帯端末10で地図のアプリケーションを立ち上げて見ている途中から、そのアプリケーションをカーナビ20に地図のアプリケーションごと転送する場合を示す模式図である。
図2(A)は携帯端末10の構成を示すブロック図である。図2(A)を参照して、携帯端末10は、携帯端末10全体を制御するCPU11と、操作部12と、記憶装置13と、ディスプレイのような表示部14と通信部15とを含む。通信部15は送信手段として作動する。CPU11およびアプリケーションはOS(Operation System)Aで駆動されるものとする。以下、説明上、このOSを「OSA」、OSがBで駆動されるものを「OSB」で表示する。
図2(B)はカーナビ20の構成を示すブロック図である。図2(B)を参照して、カーナビ20は、カーナビ20全体を制御するCPU21と、操作部22と、記憶装置23と、ディスプレイのような表示部24と通信部25とを含む。通信部25は受信手段として作動する。CPU21はOSBで駆動されるものとする。
ここで、携帯端末10のCPU11およびOSA、ならびに、カーナビ20のCPU21およびOSBとも、地図アプリケーションを実行可能であり、通信部15,25は当該アプリケーションを送受信可能である。
まず、携帯端末10におけるOSAの内部の動作について説明する。図3はOSAの動作を説明するための記憶装置13に含まれるメインメモリ31を示す図である。メインメモリ31の一部は常にOSAによって使用されており、OSAは携帯端末10の操作部12や表示部14等の入出力の制御やメインメモリ31のメモリ管理などの基本動作を行う。このため用いるエリアがシステム領域33であり、どのようなアプリケーションを動作させても必要な領域である。メインメモリ31のシステム領域33以外の部分は未使用領域32である。
この状態で携帯端末10のユーザがゲームのアプリケーションを起動させた場合を図4に示す。図4は携帯端末10のメインメモリ31と携帯端末10に対して外付けされたSDカード40とを示す図である。ここでは、アプリケーションのプログラム自体はSDカード40に保存されているものとする。SDカード40はアプリケーションのプログラムを含むデータを記憶するアプリケーション領域41とデータが格納されていない未使用領域42とを含む。
携帯端末10においてユーザがアプリケーションを操作部12等を操作して起動させたとき、OSAはSDカード40上に存在するアプリケーションのデータをメインメモリ31中の未使用領域32にコピーする。すると、図4の左側に図示するように、メインメモリ31にアプリケーション領域35が生成される。
CPU11は、アプリケーションを起動し、初期化を行った上で各アプリケーション固有の動作を開始する。各アプリケーション特有の作業領域(ワーク領域)が必要となるため、アプリケーションはOSAに対してメモリを与えるように要求する。
OSは要求を受付けたサイズのメモリをワーク領域としてアプリケーションに割り当てる。この状態を図5に示す。図5に示すように、アプリケーション領域35に隣接してワーク領域36が設けられる。
ユーザがアプリケーションを終了させたときは、OSはワーク領域とアプリケーションに割り当てた領域を解放する。その状態におけるメインメモリの割り付けは図3と同じである。
次に、携帯端末10からカーナビ20へのアプリケーションの転送方法について説明する。図6はこの場合の携帯端末10とカーナビ20とのそれぞれのOSAとOSBとの動作を示すフローチャートである。ここ以降では、一般化のために、携帯端末10を端末A、カーナビを端末Bと呼ぶ。
図6を参照して、端末AはアプリケーションをSDカードからロード後、実行する(ステップS11,S12)。一方、端末Bはユーザからの転送要求を待機している(S21)。
ユーザがアプリケーションの転送を決定し、その旨を図2に示す端末Aの操作部12を介して入力すると、端末Aはアプリケーションの実行を停止する(S13でYES,S14)。ここで、アプリケーションの実行の停止とは、アプリケーションの終了ではなく、動作状態を保ったまま停止することをいう。その後、端末Aは端末Bに対して転送要求を送信する(S15)。すなわち、端末Aはアプリケーションを動作状態を保ったまま停止する機能を有している。
端末Bはこの転送要求を受信すると、転送要求を受付けた旨の受付信号を端末Aに送信する(S22でYES,S23)。
端末Aは転送要求受付信号を受信すると、アプリケーションおよび付属情報を端末Bに送信して、アプリケーションを終了する(S15でYES,S16、S17)。ここで、端末Aはアプリケーションおよび付属情報を有線または無線を介して、ネットワーク上のサーバ等を介することなく直接端末Bに送信する。また、付属情報は作動するOSの情報を含む。
なお、端末Aは一定期間内に端末Bからの受付信号を受信しなかったときは、S15に戻る。
端末Bはアプリケーションおよび付属情報を受信すると所定の処理を行う(S24)。なお、この付属情報については後述する。
次に、端末BのCPU21が行うS24の所定の処理について説明する。図7はこの所定の処理の内容を示すフローチャートである。図7を参照して、所定の処理においては、まず、端末Bは、付属情報を参照して、自分のOS(OSB)がアプリケーションを作動できるOSであるか否かを判断する(S31)。作動できるOSであれば(S31でYES)、アプリケーションをメインメモリの未使用の領域にコピーして図6のS25へ移行する(S32)。一方、作動できないOSであれば(S31でNO)、仮想ソフトウェアを起動して(S33)、図6のS25へ移行する。
なお、ここで判断されるのは、物理的にOSが同じか否かということではなく、アプリケーションが作動可能か否かが判断される。また、CPU21は判別手段および制御手段として作動する。
次に、端末BのOS(OSB)がアプリケーションを作動可能である場合(図7のS32と図6のS25)の具体的な処理について説明する。
図8および図9はこの場合の端末Aと端末Bとのメインメモリの詳細を示す図である。図8は端末Aと端末Bとの転送前の状態を示し、図9は転送後の状態を示す。
端末Aと端末Bとは同等なOSであるので、システム領域は同じである。端末AのOSは図8(A)に示すアプリケーションとワーク領域35,36を、無線ないし有線の回線を通じて図8(B)に示す端末Bのメインメモリ50の未使用領域52へコピーする。端末AのOSAはコピー後、アプリケーションを終了させてデータを消去する。この状態を図9(A),(B)に示す。
ここで、ユーザが端末Aにおける動作の途中から端末Bへ動作の状態を引き継ぐために、ワーク領域も一緒に転送する必要がある。仮に、アプリケーションのみを端末Bに転送すると、端末Bでアプリケーションを立ち上げたのと同じになり、アプリケーションは初期状態から起動する。
すなわち、アプリケーションとワーク領域とを一緒に転送することで、アプリケーションの動作状態を引き継いで端末Aから端末Bへ継続してアプリケーションを使用できる。
すなわち、このようにすることによって、アプリケーションから認識するメモリ内部の状況が転送前と全く同じになる。
次に、端末BのOS(OSB)がアプリケーションを作動可能でない場合(図7のS33の場合)の具体的な処理について説明する。
図10はこの場合の端末Aと端末Bとのハードウェアおよびソフトウェアを含む構成を示す模式図である。左側が端末Aを示し右側が端末Bを示す。図10を参照して、端末Aは、ハードウェアAと、その上で動作可能なOSAと、OSAとOSAの上で作動するアプリケーションフレームワーク63と、アプリケーションフレームワーク上で作動するアプリケーション64とを含む。また、OSAはOSカーネル61と、ライブラリ62とを含み、ライブラリ62は、OSAがAndroidである場合には、後に説明するAndroid ランタイム62aを含む。
同様に、端末Bは、ハードウェアBと、その上で動作可能なOSBと、OSBの上で作動する仮想化ソフトウェア73と、仮想化ソフトウェア73上で作動するアプリケーション74とを含む。OSBはOSカーネル71とライブラリ72とを含む。
ここで、端末Bに搭載の仮想化ソフトウェア73は、端末A,B間の差異を吸収する。つまり、実体は端末Bであるにも関わらず、さも端末A上でアプリケーションが実行されているかのようにアプリケーションに対して振る舞う。図において、端末Bは仮想化ソフトウェア73以下の階層(ライブラリ72、カーネル71、ハードウェア70)は端末Aと全て異なるが、仮想化ソフトウェア73が端末Aと同一の動作を行うことで、異なるハードウェアであってもプログラムの実行が可能になる。
ここで仮想化ソフトウェアとしては、Windows(登録商標)上でLinux(登録商標)のアプリケーションを、またLinux 上でWindows のアプリケーションを実行でき、ウエブサーバーの仮想化などの用途に広く使われている、VMwareや、Windows やLinux のソフトをエミュレーションできるとともに、一部の周辺ハードウェアも含めて仮想化できる、QEMUや、Android 用のアプリケーションをWindows またはMac で実行できる、BlueStacks等を含む。
なお、ここで、端末Aからゲームのアプリケーションを転送した場合は、転送されたゲームアプリケーション74は、端末B上の仮想化ソフトウェア73がアプリケーションフレームワーク63の代わりに該当アプリケーションを図示のないメモリ上に読み込み、端末Aから連続して実行する。このとき、ゲームの途中経過を保存しておくためのワーク領域についても同時に転送されているため、転送前の状況を再現してアプリケーション74にメモリを割り当てる。
なお、上記実施の形態においては、アプリケーションとしてゲームを転送した場合について説明したが、これに限らず、地図のアプリケーションでの地図表示を転送してもよい。このときは、同様に端末Bで地図アプリケーションが読み込まれ、実行される。ここでは、アプリケーションはライブラリ72を通して、現在位置を取得するよう要求する。実際にはこの要求を受けるのは仮想化ソフトウェア73である。ここでも、端末Aと全く同じ動作を行い、同じデータを返すためアプリケーション側からは仮想化ソフトウェア上で動作していることを認識はできない。端末Bにおいては仮想化ソフトウェアを通して現在位置がアプリケーションに渡される。
次に、付属情報について説明する。この実施の形態においては、アプリケーションプログラムの実行中に実行を停止させて他の端末から続きの動作を再開出来る。このためには、アプリケーションプログラムの実行を停止したときと全く同じ状況を転送先の端末で再現する必要があり、アプリケーションプログラム本体や作動OS以外にも、付随するさまざまな情報を同時に転送する必要がある。ここで、これらの情報をまとめて付属情報とよぶ。
OS以外の付属情報としては、以下を含む。
(1)アプリケーションプログラムの内部プロセス情報
他の端末でプログラムを一旦停止して、転送後に別の端末でプログラムを再開するためには、他の端末でどこまでプログラムが実行されていたのかという情報と、その時点での状態の情報が必要である。そのため停止された時点でのプログラムの実行箇所、そのときのアプリケーションの状態等の内部情報が付属情報となる。
(2)アプリケーションが確保しているワーク領域のサイズとその中身の情報
アプリケ-ションが確保したメモリの内容およびサイズが付属情報となる。これらは転送先の仮想化ソフトウェアで全く同じメモリ内容を再現するために必要である。
(3)ビデオメモリ内容
画面描画内容を転送先の仮想化ソフトウェアで引き継ぐために、ビデオメモリの内容を転送する。
(4)アプリケーションに固有のユーザID
特定のOSでは、アプリケーションはセキュリティ目的でアプリケーションごとに固有のユーザIDが割り当てられる場合がある。もし、アプリケーションソフトが、別のアプリケーションソフトに割り当てられた領域にアクセスすることができれば、容易にウィルスなどのソフトを作成することができる。そこでこの対策として特定のOSでは、アプリケーション毎にユーザIDを割り当てることとしている。あるアプリケーションに割り当てたメモリ領域は、別のユーザIDであるアプリケーションからは基本的にアクセスできず、セキュリティの面で有利となる。
このユーザIDは当然実行中に変化することはあり得ないため、本アプリ転送方法においては転送後にも同じユーザIDを割り当てて実行を再開する必要があり、このためにユーザIDを一緒に転送する。
(5)アプリケーション用のデータ保存用フォルダとその内容
各アプリケーションに割り当てたデータ保存用フォルダである。上述の(2)のワーク領域と似ているが、上記(2)はあくまで一時記憶でありアプリケーション終了時に消去されるのに対して、これは電源を切っても保持される点が異なる。例えばメールのアプリケーションであれば、メール本文データはこのエリアに保存されるため、メールのアプリケーションを一旦終了させて立ち上げ直してもメール本文が消えることはない。
(6)アプリケーションのリソース
リソースとは該当アプリケーションで用いる画像データ、音楽等のデータをいう。例えば特定のアプリケーションを示すアイコン画像、メニュー画面に表示されるキャラクタやロゴ、BGMの音楽やゲームの効果音などのデータは、アプリケーション本体とは別として取り扱われるが、実行の際には必要なデータである為、アプリケーションと同時に転送する必要がある。
なお、上記実施の形態においては、特定のOSについての説明を行わなかったが、例えば端末AがAndroid(アンドロイド)であれば、端末Aは以下のように動作する。
AndroidOSは、(a)Linuxカーネル、(b)標準的なライブラリ、(c)AndroidRuntime(アプリケーションを実行するための実行環境)、(d)アプリケーション・フレームワーク、(e)アプリケーションの5つの部分で構成される。
Linuxカーネル(a)では、メモリやプロセスの管理などの基本機能を実現する、最も基本的でハードウェアに近い部分を処理する。この部分に関しては一般的なパソコンとほぼ同じである。アプリケーションが直接カーネルとやりとりすることはない。
標準的なライブラリ(b)はさまざまな機能を実現するためのコードである。例えは、Surface Managerはグラフィックスの表示を扱い、MediaFrameWorkは動画や音声の再生を行う。FreeTypeはさまざまな文字のフォントを任意のサイズで表示するためのライブラリである。
Android Runtime(c)はアプリケーションを実行するための環境であり、基本的なAPI(Application Program Interface)を提供する。このランタイムがアプリケーションを直接実行する。
アプリケーションフレームワーク(d)はアプリケーションの起動、停止、終了などの管理を実行する。また、端末の状態をアプリケーションに通知する。ここで、アプリケーションが直接アクセスするのは各アプリケーションフレームワーク(d)およびライブラリ(b)に限られ、カーネル(a)にアクセスすることはない。
次に、図10を参照して、Androidにおける一般的なアプリケーションの動作例は以下のとおりである。
例えば、ゲームのアプリケーション64を起動する場合は次のとおりである。
ユーザがゲームアプリケーション64の起動を指示すると、アプリケーションフレームワーク63が該当アプリケーションをメモリ上に読み込み、Androidランタイム62aを通して実行する。ゲームの途中経過を保存しておくために、アプリケーションはワーク領域を必要とする。そこで、Androidランタイム62a中の仮想マシンがワーク領域としてメモリを確保して、ゲームアプリケーションに割り当てる。割り当てられたメモリはアプリケーションの実行中に使用され、アプリケーションの動作が終了した際に解放(メモリの管理をAndroidランタイム62aに返す)される。
また、地図のアプリケーションでの地図表示の動作例は次の通りである。
地図アプリケーションを起動すると、上と同様にアプリケーション64が読み込まれ、実行される。地図を表示する際には現在位置の緯度・経度をGPSから取得する必要があるため、アプリケーションはAndroidランタイム62a中のコアライブラリを通して、現在位置を取得するよう要求する。Linuxカーネルを通じてGPSのチップから現在位置が読みこまれ、Androidランタイム62aを経由して現在位置がアプリケーションに渡される。
次に受信側の端末Bについて説明する。端末Bは上記のように仮想化ソフトウェア73を有しており、仮想化ソフトウェア73はAndroidでいうアプリケーションフレームワーク、ライブラリ、コアライブラリの全ての機能を端末Bのハードウェア上で同様に実行できる。
上記のゲームのアプリケーション64を転送された場合は次のとおりである。
転送されたゲームアプリケーション74は、端末B上の仮想化ソフトウェア73がアプリケーションフレームワーク63の代わりに該当アプリケーションをメモリ上に読み込み、端末Aから連続してアプリケーションを実行する。ゲームの途中経過を保存しておくためのワーク領域についても同時に転送されており、転送前の状況を再現してアプリケーション74に割り当てる。
上記の地図のアプリケーションでの地図表示を転送された場合は次のとおりである。先の例と同様に地図アプリケーションが読み込まれ、実行される。アプリケーション74はAndroidランタイム62a中のコアライブラリを通して、現在位置を取得するよう要求する。しかしながら、実際にはこの要求を受けるのはAndroidランタイム62aではなく仮想化ソフトウェア73である。しかし、Androidランタイム62aと全く同じ動作を行い、同じデータを返すためアプリケーション側からは仮想化ソフトウェア73上で動作していることを認識できない。端末Bにおいては仮想化ソフトウェア73を通して現在位置がアプリケーションに渡される。実際に現在位置のデータをどのように実現するかは上記のように端末Bの仕様に依存する。
なお、上記実施の形態においては、端末Bのみが仮想化ソフトウェアを有する場合について説明したが、これに限らず、端末Aおよび端末Bともに仮想化ソフトウェアを搭載しておき、双方に転送元の機能を持たせることも可能である。この構成では端末A/B間の双方向に任意の転送が可能である。また、端末Aで実行したアプリケーションを端末Bに転送して実行したのち、さらに端末Aに戻すことも可能で、動作状態をすべて引き継ぐことができる。
また、上記実施の形態においては特定のOSとしてAndroidの場合について説明したが、これに限らず、任意のOSについて同様の処理が可能である。
また、上記実施の形態においては、携帯端末とカーナビ間でアプリケーションを転送する場合、および、GPSを用いて地図情報を表示する場合を例にあげて説明したが、これに限らず、携帯端末で映画を見ていて、それを大画面のTVに転送する場合や、携帯端末でゲームをしていて、それを大画面TVに転送する場合についても適用可能である。
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示した実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。
アプリケーション転送システムは、任意の端末間でアプリケーションの転送が可能であるため、アプリケーション転送システムとして有利に利用される。
10 携帯端末、20 カーナビ、11,21 CPU、12、22 操作部、13、23 記憶装置、 14、24 表示部、15、25 通信部、31 メインメモリ、32 未使用領域、33 システム領域、60,70 ハードウェア、61,71 OSカーネル、62,72 ライブラリ、64,65 アプリケーション、63 アプリケーションフレームワーク、73 仮想化ソフトウエア。

Claims (8)

  1. それぞれが所定のOSを有する第1端末と第2端末間において、アプリケーションを転送するアプリケーション転送システムであって、
    前記第1端末は
    前記アプリケーションの転送要求を、前記第1端末の有するOSを特定する情報とともに第2端末に送信する送信手段を有し、
    前記第2端末は
    自身のOSと異なるOSの動作を仮想化する仮想化ソフトウェアと、
    前記転送要求を受ける受信手段と、
    前記受信手段で受信したアプリケーションを作動できる前記第1端末の有するOSが自身の有するOSと同じであるか否かを判別する判別手段と、
    前記判別手段が転送要求を受けたアプリケーションを作動できる前記第1端末の有するOSが自身のOSと同じであると判断したときは、前記アプリケーションをそのまま実行し、異なると判断したときは、前記仮想化ソフトウェアを起動して前記アプリケーションを実行するよう制御する制御手段とを含む、
    アプリケーション転送システム。
  2. 前記送信手段は、前記第2端末に対して、前記アプリケーションの転送時の状況を規定する付属情報を送信する、請求項1に記載のアプリケーション転送システム。
  3. 前記付属情報は第1端末で停止時のプログラムの実行箇所および、停止時のアプリケーションの状態を示す情報を含む、請求項2に記載のアプリケーション転送システム。
  4. 前記付属情報は前記アプリケーションが使用しているメモリサイズを含む、請求項2または3に記載のアプリケーション転送システム。
  5. 前記第1端末は前記仮想化ソフトウェアを有する、請求項1〜4のいずれかに記載のアプリケーション転送システム。
  6. それぞれが所定のOSとメモリとを有する第1端末と第2端末間において、アプリケーションを転送する方法であって、
    第1端末からアプリケーションの転送要求を第2端末に送信するステップと、
    第2端末で第1端末からの転送要求を受信するステップと、
    第2端末において、転送要求されたアプリケーションを作動させるOSが、自身の有するOSと同じであるか否かを判別するステップと、
    転送要求を受けたアプリケーションを作動可能なOSが自身のOSと同じであると判断したときは、アプリケーションをそのまま実行し、異なると判断したときは、仮想化ソフトウェアを起動してアプリケーションを実行するステップとを含む、アプリケーション転送方法。
  7. 外部に設けられ、所定のOSを有する端末から、作動中のアプリケーションの転送を受けて、前記アプリケーションを作動可能な端末であって、
    自身のOSと異なるOSの動作を仮想化する仮想化ソフトウェアと、
    前記外部に設けられた端末から前記アプリケーションの転送要求を、前記外部に設けられた端末でアプリケーションを作動可能なOSを特定する情報とともに受信する受信手段と、
    前記受信手段で受信した、アプリケーションを作動可能なOSが自身の有するOSと同じであるか否かを判別する判別手段と、
    前記判別手段が転送要求を受けたアプリケーションを作動可能なOSが自身のOSと同じであると判断したときは、前記アプリケーションをそのまま実行し、異なると判断したときは、前記仮想化ソフトウェアを起動して前記アプリケーションを実行するよう制御する制御手段とを含む、端末。
  8. 外部に設けられ、所定のOSを有する第1端末で作動しているアプリケーションを、コンピュータである第2端末で受信して作動させるプログラムであって、
    前記第2端末は、自身のOSと異なるOSの動作を仮想化する仮想化ソフトウェアを有し、
    前記第1端末から前記アプリケーションの転送要求を前記アプリケーションを作動可能な前記第1端末のOSを特定する情報とともに受信する受信手段と、
    前記受信手段で受信したアプリケーションのOSが自身の有するOSと同じであるか否かを判別する判別手段と、
    前記判別手段が転送要求を受けたアプリケーションのOSが自身のOSと同じであると判断したときは、前記アプリケーションをそのまま実行し、異なると判断したときは、前記仮想化ソフトウェアを起動して前記アプリケーションを実行するよう制御する制御手段として前記コンピュータを作動させる、プログラム。
JP2015500077A 2013-02-18 2013-02-18 アプリケーション転送システム、アプリケーション転送方法、端末、およびプログラム Active JP6059330B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/053849 WO2014125643A1 (ja) 2013-02-18 2013-02-18 アプリケーション転送システム、アプリケーション転送方法、端末、およびプログラム

Publications (2)

Publication Number Publication Date
JP6059330B2 true JP6059330B2 (ja) 2017-01-11
JPWO2014125643A1 JPWO2014125643A1 (ja) 2017-02-02

Family

ID=51353668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015500077A Active JP6059330B2 (ja) 2013-02-18 2013-02-18 アプリケーション転送システム、アプリケーション転送方法、端末、およびプログラム

Country Status (3)

Country Link
US (1) US20150381766A1 (ja)
JP (1) JP6059330B2 (ja)
WO (1) WO2014125643A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2782316A1 (en) * 2013-03-18 2014-09-24 Koninklijke KPN N.V. Localizing and placement of network node functions in a network
KR20150065508A (ko) * 2013-12-05 2015-06-15 엘지전자 주식회사 전자기기 및 전자기기 시스템
CN106445663A (zh) * 2016-09-14 2017-02-22 广东欧珀移动通信有限公司 应用数据的迁移方法及装置
JP7016884B2 (ja) * 2017-05-11 2022-02-07 達闥機器人有限公司 ロボット制御とサービス提供方法、装置及び電子機器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005679A (ja) * 1999-06-24 2001-01-12 Hitachi Ltd 電子計算機における処理の中断/再開方法
JP2011134024A (ja) * 2009-12-23 2011-07-07 Fujitsu Ltd 計算機システム、情報処理装置、仮想計算機運用方法及びプログラム
WO2011093051A1 (ja) * 2010-01-29 2011-08-04 日本電気株式会社 仮想マシン処理システム、仮想マシン処理方法、計算機および記憶媒体
WO2011114655A1 (ja) * 2010-03-16 2011-09-22 パナソニック株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
WO2012063323A1 (ja) * 2010-11-09 2012-05-18 株式会社日立製作所 移行管理システム、管理サーバ及び管理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8056113B2 (en) * 2009-02-05 2011-11-08 Sony Corporation Mobile consumer electronic applications on internet video platform
US8930879B2 (en) * 2009-06-03 2015-01-06 Microsoft Corporation Application building
US20110246553A1 (en) * 2010-04-06 2011-10-06 Somani Mahesh K Validation of internal data in batch applications
KR101369428B1 (ko) * 2012-02-24 2014-03-26 주식회사 팬택 이종의 게스트 오퍼레이팅 시스템을 지원하는 휴대용 단말을 위한 어플리케이션 관리 장치 및 방법
US20130339871A1 (en) * 2012-06-15 2013-12-19 Wal-Mart Stores, Inc. Software Application Abstraction System and Method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005679A (ja) * 1999-06-24 2001-01-12 Hitachi Ltd 電子計算機における処理の中断/再開方法
JP2011134024A (ja) * 2009-12-23 2011-07-07 Fujitsu Ltd 計算機システム、情報処理装置、仮想計算機運用方法及びプログラム
WO2011093051A1 (ja) * 2010-01-29 2011-08-04 日本電気株式会社 仮想マシン処理システム、仮想マシン処理方法、計算機および記憶媒体
WO2011114655A1 (ja) * 2010-03-16 2011-09-22 パナソニック株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
WO2012063323A1 (ja) * 2010-11-09 2012-05-18 株式会社日立製作所 移行管理システム、管理サーバ及び管理方法

Also Published As

Publication number Publication date
JPWO2014125643A1 (ja) 2017-02-02
WO2014125643A1 (ja) 2014-08-21
US20150381766A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
EP3223151B1 (en) Hot-switching method and device for operating systems, and mobile terminal
RU2436149C2 (ru) Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство
TWI537827B (zh) 應用軟體試用系統、方法及其伺服器與使用者裝置
US8527679B2 (en) Apparatus and method for adaptation of input/output interface in virtualization environment
KR101177971B1 (ko) 보호 영역 경계들에서의 오브젝트 호출 방법, 시스템 및 장치
WO2018072713A1 (zh) 通信***和电子设备
US8893123B2 (en) Method and system for transferring the operation of a virtual machine from a server device to terminal device using operating status of the virtual machine
US7516336B2 (en) System and method for power reduction by sequestering at least one device or partition in a platform from operating system access
US9329911B2 (en) Driver initialization for a process in user mode
US9191417B2 (en) Cross-process media handling in a voice-over-internet protocol (VOIP) application platform
KR101369428B1 (ko) 이종의 게스트 오퍼레이팅 시스템을 지원하는 휴대용 단말을 위한 어플리케이션 관리 장치 및 방법
WO2013148665A1 (en) Global computing interface
US20120236012A1 (en) Method and Device for Displaying Application Image
KR20060117869A (ko) 파티션 버스
JP6059330B2 (ja) アプリケーション転送システム、アプリケーション転送方法、端末、およびプログラム
WO2018039967A1 (zh) 虚拟机切换方法、装置、电子设备和计算机程序产品
US11032342B2 (en) System and method for device audio
US9558021B2 (en) System and method for cross-platform application execution and display
GB2498045A (en) Portable storage devices with two interfaces for coupling to a display and a host
US20230336624A1 (en) Persistent storage overlay
US9253228B2 (en) Cloud computing method, computing apparatus and server using the same
WO2019042172A1 (zh) 资源配置方法及相关产品
WO2023109211A9 (zh) 业务处理方法和相关装置
CN116932234A (zh) 应用程序间通信方法、装置、存储介质及程序产品
CN114168254A (zh) 一种数据处理方法、装置及设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161208

R150 Certificate of patent or registration of utility model

Ref document number: 6059330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250