JP2014164566A - アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラム - Google Patents

アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラム Download PDF

Info

Publication number
JP2014164566A
JP2014164566A JP2013035767A JP2013035767A JP2014164566A JP 2014164566 A JP2014164566 A JP 2014164566A JP 2013035767 A JP2013035767 A JP 2013035767A JP 2013035767 A JP2013035767 A JP 2013035767A JP 2014164566 A JP2014164566 A JP 2014164566A
Authority
JP
Japan
Prior art keywords
application
terminal
terminal device
management server
identifier
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.)
Pending
Application number
JP2013035767A
Other languages
English (en)
Inventor
Shunsuke Kurumaya
駿介 車谷
Shoji Toyama
将司 外山
Kazutomo Tomita
千智 富田
Kazufuka Chiba
一深 千葉
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013035767A priority Critical patent/JP2014164566A/ja
Publication of JP2014164566A publication Critical patent/JP2014164566A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】同一ユーザが複数の利用環境を使い分けることができるアプリケーションの実行にあたり、ユーザに意識させることなく利用環境をシームレスに切り替えることを目的とする。
【解決手段】デバイスグループDB9は、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末IDを記憶する。また、情報処理システム1は、端末装置2がアプリケーションを実行している際に、端末装置3がアプリケーションを実行する場合は、端末装置3を示す端末IDをデバイスグループDB9が記憶しているか否かを判定する。また、情報処理システム1は、端末装置3を示す端末IDを記憶していると判定した場合は、端末装置3がアプリケーションを継続して実行するためのアプリケーションデータを端末装置2から取得する。そして、情報処理システム1は、取得したアプリケーションデータを端末装置3へ送信する。
【選択図】 図1

Description

本発明は、アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラムに関する。
近年、コンテンツやアプリケーションプログラム(AP)等は、高機能化、複雑化しており、通信環境や実行環境は、多様化している。係るコンテンツやAPを実行するには、高性能な端末を利用することが望ましい。一方、一般的な端末を利用すると、性能が追いつかず、端末側でコンテンツの表示や、APの処理の迅速な実行が困難になる。
このため、端末側で実行する処理を分割し、分割した複数の処理を端末とサーバとの間で分担、連動させることにより、性能の低い端末であっても安定した品質でアプリケーションを実行する技術が開示されている。また、端末の性能や、通信環境の状況に応じて、アプリケーションを実行する端末やサーバをシームレスに切り替える技術も開示されている。
"Offloading Android Applications to the Cloud without Customizing Android", Eric Chen, Satoshi Ogata, Keitaro Horikawa, Eighth IEEE PerCom Workshop on Pervasive Wireless Networking 2012, Lugano (23 March 2012) "Executing Client-Side Web Workers in the Cloud",Shunsuke Kurumatani, Masashi Toyama, Eric Y. Chen, Information and Telecommunication Technologies (APSITT), 2012 9th Asia-Pacific Symposium, 5-9 Nov. 2012
しかしながら、上述した従来技術では、単体の端末とサーバとが処理を連携して実行することは可能であるが、同一ユーザが複数の端末を使用する際の各端末間の連携については考慮されていない。このため、あるユーザが使用する端末を変更した際に、各端末が実行するアプリケーションの連携に不便が生じてしまう。
開示の実施形態は、上記に鑑みてなされたものであり、同一ユーザが複数の利用環境を使い分けることができるアプリケーションの実行にあたり、ユーザに意識させることなく利用環境をシームレスに切り替えることを目的とする。
1つの実施形態では、サーバと協調してアプリケーションを実行する端末装置のうち、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末識別子を記憶するアプリケーション管理装置である。また、アプリケーション管理装置は、第1の端末装置がアプリケーションを実行している際に、第2の端末装置がアプリケーションを実行する場合は、第2の端末装置を示す端末識別子を記憶しているか否かを判定する。また、アプリケーション管理装置は、第2の端末装置を示す端末識別子を記憶していると判定した場合は、第2の端末装置がアプリケーションを継続して実行するためのアプリケーションデータを第1の端末装置から取得する。そして、アプリケーション管理装置は、取得したアプリケーションデータを第2の端末装置へ送信する。
1つの実施形態では、同一ユーザが複数の利用環境を使い分けることができるアプリケーションの実行にあたり、ユーザに意識させることなく利用環境をシームレスに切り替えることができる。
図1は、第1の実施形態に係る情報処理システムを説明する図である。 図2は、第1の実施形態に係るデバイスグループDBが記憶する情報を説明する図である。 図3は、第1の実施形態に係る端末装置の機能構成を説明する図である。 図4は、第1の実施形態に係るデバイス管理サーバの機能構成を説明する図である。 図5は、第1の実施形態に係るアプリケーション管理サーバの機能構成を説明する図である。 図6は、第1の実施形態に係る情報処理システムがアプリケーション起動時に実行する処理の流れを説明するためのシーケンス図である。 図7は、第1の実施形態に係る情報処理システムが端末装置の切替を行う際に実行する処理の流れを説明するためのシーケンス図である。 図8は、第2の実施形態に係る情報処理システムがアプリケーションデータの同期を行うグループを説明するための図である。 図9は、第2の実施形態に係るデバイス管理サーバの機能構成を説明するための図である。 図10は、第2の実施形態に係るデバイスグループDBの一例を説明するための図である。 図11は、第2の実施形態に係るアプリケーション管理サーバを説明する図である。 図12は、第2の実施形態に係る操作権管理情報の一例を説明する図である。 図13は、第2の実施形態に係る情報処理システムが端末装置の切替を行う際に実行する処理の流れを説明するためのシーケンス図である。 図14は、第2の実施形態に係る情報処理システムの適用例を説明するための図である。 図15は、アプリケーション管理プログラムを実行するコンピュータを示す図である。
以下に添付図面を参照してアプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラムについて説明する。
(第1の実施形態)
以下、図1を用いて、アプリケーションを実行する端末装置をシームレスに切り替えることができる情報処理システムの一例を説明する。図1は、第1の実施形態に係る情報処理システムを説明する図である。図1に示す例では、情報処理システム1は、複数の端末装置2〜4、ネットワーク5、分散実行環境6、デバイスグループDB(Data Base)9、デバイス管理サーバ10、アプリケーションDB11、アプリケーション管理サーバ12を有する。また、分散実行環境6は、複数のサーバ7、8を有する。
なお、図1では省略したが、情報処理システム1は、他にも端末装置2〜4と同様の機能を発揮する複数の端末装置および各サーバ7、8と同様の機能を発揮するサーバを有するものとする。また、端末装置3、4は、端末装置2と同様の機能を発揮するものとして、以下の説明を省略する。
また、図1に示す例では、各端末装置2〜4、サーバ7、8、デバイス管理サーバ10、アプリケーション管理サーバ12は、ネットワーク5を介して接続されている。ここでネットワーク5は、WWW(World Wide Web)、LAN(Local Area Network)、WAN(Wide Area Network)等任意の通信ネットワークである。
各端末装置2〜4は、各種アプリケーションを実行する情報処理装置である。例えば、端末装置2〜4は、PC(Personal Computer)やサーバ等の情報処理装置、またはスマートフォン、携帯端末装置、PDA(Personal Digital Assistant)等の携帯端末装置である。また、各端末装置2〜4は、有線、無線を問わず任意の通信形態でネットワーク5に接続する。
また、各端末装置2〜4は、分散実行環境6が有する各サーバ7、8と協調してアプリケーションを実行する。例えば、端末装置2は、アプリケーションを複数のスレッドに分割し、各スレッドの複雑さや、端末装置2が有する演算処理装置の処理能力等に応じて、自装置が実行するスレッドと、サーバ7、8に実行を委譲する委譲スレッドとを選択する。
そして、端末装置2は、委譲スレッドをサーバ7、8に送信する。すると、サーバ7、8は、端末装置2から受信した委譲スレッドを実行し、委譲スレッドの実行結果を端末装置2へ送信する。その後、端末装置2は、受信した委譲スレッドの実行結果および自装置によるスレッドの実行結果を組み合わせて、アプリケーションの実行を行う。
なお、以下の説明では、各端末装置2〜4が分散実行環境6が有する各サーバ7、8と協調してアプリケーションを実行する情報処理システム1について説明するが、情報処理システム1は、このような実施形態に限定されるものではない。例えば、各サーバ7、8は、各端末装置2〜4と同様に、利用者が所有する端末装置であってもよい。すなわち、情報処理システム1では、各端末装置2〜4、および各サーバ7、8等の実行環境の種類や、実行するアプリケーションの種別が同一であっても、分散実行することができる。このため、例えば、各端末装置2〜4は、あるアプリケーションについて分散実行を行うような実施形態であってもよい。
また、各端末装置2〜4は、任意の利用者が使用する端末装置である。例えば、端末装置2、3は、利用者Aが使用する端末装置であり、端末装置4は、利用者Bが使用する端末装置である。ここで、利用者Aは、端末装置2と分散実行環境6とがアプリケーションを分散実行している際に、端末装置3を起動させ、端末装置3に端末装置2と同じアプリケーションを実行させる場合がある。しかしながら、従来のアプリケーションを分散実行する技術では、利用者が使用する端末装置を切り替えた際のアプリケーションの連携が考慮されていない。
そこで、情報処理システム1では、利用者が使用する端末装置を切り替えた際に、アプリケーションを継続して実行するためのアプリケーションデータを端末装置間で同期する。以下、アプリケーションデータを端末装置間で同期させるため、デバイスグループDB9、デバイス管理サーバ10、アプリケーションDB11、アプリケーション管理サーバ12が発揮する機能について説明する。
デバイスグループDB9は、端末装置2〜4のうち、アプリケーションデータを同期させる端末装置を記憶するデータベースである。例えば、デバイスグループDB9は、各端末装置2〜4のうち、同一の利用者が使用する端末装置間でアプリケーションデータを同期させる場合は、各端末装置を識別する端末ID(Identifier)と、各端末装置の所有者を識別する端末所有者IDとを対応付けて記憶する。
図2は、第1の実施形態に係るデバイスグループDBが記憶する情報を説明する図である。例えば、デバイスグループDB9は、図2に示すように、端末所有者IDと端末IDとを対応付けて記憶する。詳細な例を挙げると、デバイスグループDB9は、端末所有者ID「0123」と複数の端末ID「a01d」、「a0e3」、「8e31」とを対応付けて記憶する。また、デバイスグループDB9は、端末所有者ID「1430」と複数の端末ID「9eaa」、「01ff」とを対応付けて記憶する。また、デバイスグループDB9は、端末所有者ID「1993」と端末ID「42bc」とを対応付けて記憶する。
図1に戻って、デバイス管理サーバ10は、端末装置2がアプリケーションを実行する際に、デバイスグループDB9が記憶する情報を用いて、端末装置2がアプリケーションデータを同期させる端末装置であるか否かを判定する。そして、デバイス管理サーバ10は、端末装置2がアプリケーションの同期対象である場合は、アプリケーションの同期を行うよう端末装置2に通知する。
例えば、デバイス管理サーバ10は、端末装置2がアプリケーションを実行している際に、端末装置3からアプリケーションを同期させるか否かの問い合わせを受信する。すると、デバイス管理サーバ10は、デバイスグループDB9を参照し、端末装置2の端末IDと端末装置3の端末IDとが同一の端末所有者IDと対応付けられているか否かを判定する。
そして、デバイス管理サーバ10は、端末装置2の端末IDと端末装置3の端末IDとが同一の端末所有者IDと対応付けられている場合は、端末装置3に対して、アプリケーションを同期するよう指示する同期判定情報を送信する。このように、アプリケーションを同期するよう指示する同期判定情報を受信した場合は、端末装置3は、アプリケーション管理サーバ12に対して、アプリケーションデータの同期を求める接続要求を送信する。
一方、デバイス管理サーバ10は、端末装置2の端末IDと端末装置3の端末IDとが同一の端末所有者IDと対応付けられていない場合は、端末装置3に対して、アプリケーションを同期せずともよい旨を指示する同期判定情報を送信する。このように、アプリケーションを同期せずともよい旨を指示する同期判定情報を受信した場合は、端末装置3は、アプリケーション管理サーバ12に対して接続要求を送信せずに、自装置が記憶するアプリケーションデータを用いて、分散実行環境6とアプリケーションを分散実行する。
アプリケーションDB11は、通常、各端末装置2〜4が自装置内のローカルストレージ内に保持するアプリケーションデータを各端末装置間で同期させるために保持するストレージサーバである。例えば、アプリケーションDB11は、各端末装置2〜4がAndroid(登録商標) OS(Operating System)を稼動させ、「Offloading Android Applications to the Cloud without Customizing Android」(非特許文献1)を利用した技術を用いてアプリケーションを分散実行する場合は、各端末装置2〜4内で動作するアプリケーションに対し、割り当てられたファイルストレージの内容をアプリケーションデータとして保持する。
また、例えば、アプリケーションDB11は、各端末装置2〜4が「Executing Client-Side Web Workers in the Cloud」(非特許文献2)を利用した技術を用いてアプリケーションを分散実行する場合は、各端末装置2〜4が実行するWebサービスに関し、各端末装置2〜4に対して発行されたクッキーの情報および各端末装置2〜4がアプリケーションを実行する際に用いるローカルストレージの内容をアプリケーションデータとして保持する。
なお、アプリケーションDB11は、各アプリケーションデータを、同期対象となる端末装置の所有者を示す端末所有者IDと対応付けて記憶する。すなわち、アプリケーションDB11は、アプリケーションデータを同期させる端末装置の組ごとに、アプリケーションデータを記憶する。
また、アプリケーションDB11は、アプリケーションの操作権を管理するための操作権管理情報を記憶する。例えば、アプリケーションDB11は、端末所有者IDとアプリケーションを操作中の端末装置を示す端末IDとを対応付けた操作権管理情報を記憶している。
図1に戻り、アプリケーション管理サーバ12は、各端末装置2〜4のアプリケーションデータを同期させる。例えば、アプリケーション管理サーバ12は、端末装置2から接続要求を受信すると、端末装置2の所有者を示す端末所有者IDと対応付けられた端末IDをアプリケーションDB11が記憶する操作権管理情報から検索する。
そして、アプリケーション管理サーバ12は、操作権管理情報から端末装置2の所有者を示す端末所有者IDと対応付けられた端末IDを検出しなかった場合は、端末装置2の所有者を示す端末所有者IDと対応付けられたアプリケーションデータをアプリケーションDB11から取得する。すなわち、アプリケーション管理サーバ12は、端末装置2の所有者がいずれかの端末装置で実行していた際のアプリケーションデータをアプリケーションDB11から取得する。
その後、アプリケーション管理サーバ12は、取得したアプリケーションデータを端末装置2に送信することで、端末装置2のローカルストレージの同期を行う。そして、アプリケーション管理サーバ12は、端末装置2がアプリケーションを操作中であることを示す操作権管理情報として、端末装置2の所有者を示す端末所有者IDと、端末装置2の端末IDとをアプリケーションDB11に格納する。
また、アプリケーション管理サーバ12は、操作権管理情報から端末装置2の所有者を示す端末所有者IDと対応付けられた端末IDを検出した場合、検出した端末IDが示す端末装置に対して、操作権の剥奪を通知する。そして、アプリケーション管理サーバ12は、操作権を剥奪した端末装置からアプリケーションデータを取得し、取得したアプリケーションデータと、操作権を剥奪した端末装置の所有者を示す端末所有者IDとを対応付けてアプリケーションDB11に格納する。
その後、アプリケーション管理サーバ12は、端末装置2に対して、操作権を剥奪した端末装置から取得したアプリケーションデータを送信することで、端末装置2のローカルストレージを同期させる。また、アプリケーション管理サーバ12は、端末装置2の所有者を示す端末所有者IDと端末装置2の端末IDとを操作権管理情報としてアプリケーションDB11に格納する。
また、アプリケーション管理サーバ12は、アプリケーションを実行中の端末装置から、任意のタイミングでアプリケーションデータを取得する。例えば、アプリケーション管理サーバ12は、所定の時間間隔で、アプリケーションデータを取得する。また、例えば、アプリケーション管理サーバ12は、アプリケーションDB11へ格納対象となっているデータの追加や削除及び更新等の実行を監視し、データの追加や削除及び更新等が実行された場合は、アプリケーションを実行中の端末装置から、データの追加や削除及び更新等が実行された後のアプリケーションデータを取得する。そして、アプリケーション管理サーバ12は、取得したアプリケーションデータと、アプリケーションを実行中の端末装置の所有者を示す端末所有者IDとをアプリケーションDB11に格納する。
また、アプリケーション管理サーバ12は、端末装置2〜4と分散実行環境6とがアプリケーションの分散実行を行うことができるよう、必要に応じてアプリケーションDB11に格納されたアプリケーションデータを分散実行環境6と同期させてもよい。
[端末装置2の機能構成]
次に、図3を用いて、端末装置2が有する機能構成について説明する。図3は、第1の実施形態に係る端末装置の機能構成を説明する図である。図3に示す例では、端末装置2は、通信部13、入力部14、表示部15、制御部16、記憶部21を有する。また、制御部16は、問い合わせ部17、判定部18、同期部19、分散実行部20を有する。また、記憶部21は、同期判定情報22、アプリケーションデータ23を記憶する。
同期判定情報22は、端末装置2がアプリケーションDB11に記憶されたアプリケーションデータと、アプリケーションデータ23との同期を行うか否かを判定するための情報であり、端末装置2がデバイス管理サーバ10から受信する情報である。また、アプリケーションデータ23は、端末装置2がアプリケーションを分散実行環境6と分散実行する際に用いるデータである。
通信部13は、ネットワーク5を介して、デバイス管理サーバ10、アプリケーション管理サーバ12および分散実行環境6と通信を行う通信装置である。また、入力部14は、端末装置2に対して各種情報を入力するための入力装置であり、例えば、キーボードやマウス、タッチパネル等である。また、表示部15は、端末装置2によるアプリケーションの実行結果等を表示するための表示装置であり、例えば、ディスプレイやタッチパネル等である。
問い合わせ部17は、デバイス管理サーバ10に対して、アプリケーションを同期させるか問い合わせを行う。具体的には、問い合わせ部17は、端末装置2がアプリケーションを実行する際に、通信部13を介して、アプリケーションを同期させるか否かの問い合わせをデバイス管理サーバ10に送信する。詳細には、問い合わせ部17は、端末装置2の端末IDを含む問い合わせをデバイス管理サーバ10に送信する。
この結果、問い合わせ部17は、デバイス管理サーバ10からアプリケーションの同期の可否を示す同期判定情報を受信する。そして、問い合わせ部17は、同期判定情報22を記憶部21に格納する。
判定部18は、同期判定情報22に基づいて、アプリケーションデータの同期を行うか否かを判定する。例えば、判定部18は、記憶部21に格納された同期判定情報22の読み出しを行う。そして、判定部18は、読み出した同期判定情報がアプリケーションデータの同期を求めている場合は、同期部19にアプリケーションデータの同期を指示する。一方、判定部18は、読み出した同期判定情報がアプリケーションデータを同期せずともよい旨を示す場合は、分散実行部20に対して、アプリケーションの実行を指示する。
なお、上述した例では、判定部18が、デバイス管理サーバ10による判定結果に従って、アプリケーションの同期を行うか否かを判定する例について説明した。しかしながら、実施例はこれに限定されるものではない。すなわち、判定部18は、デバイス管理サーバ10から受信した同期判定情報22だけではなく、例えば、端末装置2がアプリケーションを新規に実行する場合や、他の端末装置が実行したアプリケーションの状態を引き継がずに実行する場合には、同期判定情報22が同期を求める場合であっても、同期部19にアプリケーションデータの同期を指示せず、分散実行部20にアプリケーションの実行を指示してもよい。
同期部19は、アプリケーションデータ23の同期を行う。例えば、同期部19は、判定部18からアプリケーションデータの同期の指示を受信すると、アプリケーション管理サーバ12に対し、端末装置2の端末IDと端末所有者IDとを含む接続要求を送信し、アプリケーションDB11が記憶するアプリケーションデータを取得する。そして、同期部19は、受信したアプリケーションデータをアプリケーションデータ23として、記憶部21に格納し、分散実行部20に、アプリケーションの実行を指示する。
また、同期部19は、端末装置2がアプリケーションを実行している場合は、一定の時間間隔、もしくはアプリケーションデータの追加や削除及び更新等が発生した際に、アプリケーションデータ23を記憶部21から読み出し、読み出したアプリケーションデータ23をアプリケーション管理サーバ12に送信する。また、同期部19は、端末装置2がアプリケーションの実行を終了した場合には、アプリケーションデータ23を記憶部21から読み出し、読み出したアプリケーションデータ23を操作終了通知とともにアプリケーション管理サーバ12に送信する。
分散実行部20は、分散実行環境6と協調して、アプリケーションの実行を行う。詳細には、分散実行部20は、判定部18、または同期部19からアプリケーションの実行指示を受信した場合は、アプリケーションデータ23の読み出しを行う。そして、分散実行部20は、読み出したアプリケーションデータ23を用いて、分散実行環境6とアプリケーションを分散実行する。
なお、分散実行部20は、アプリケーションを分割した各スレッドの複雑さや、端末装置2が有する演算処理装置の処理能力等に応じて、サーバ7、8に実行を委譲する委譲スレッドを選択し、委譲スレッドを分散実行環境6に送信する。ここで、分散実行部20は、端末装置2の処理能力のみならず、例えば通信状態やスレッドの内容等、任意の情報を用いて委譲スレッドを選択することができる。
また、分散実行部20は、アプリケーション管理サーバ12から、操作権の剥奪の通知を受信すると、アプリケーションの実行を終了する。例えば、分散実行部20は、操作権の剥奪の通知を受信すると、イベントハンドラを全て一時的に上書きする等によってアプリケーションが意図するイベントハンドラまで到達しないようにすることで、アプリケーションに対する入力を無効化する。そして、分散実行部20は、アプリケーションを終了させる。
[デバイス管理サーバ10の機能構成]
次に、図4を用いて、デバイス管理サーバ10の機能構成について説明する、図4は、第1の実施形態に係るデバイス管理サーバの機能構成を説明する図である。図4に示す例では、デバイス管理サーバ10は、通信部31、認証部32、同期判定部33、同期判定情報送信部34を有する。なお、通信部31は、図3に示した通信部13と同様の機能を発揮するものとして、説明を省略する。
認証部32は、あらかじめ設定された任意の認証方法を用いて、各端末装置2〜4の認証を行う。例えば、認証部32は、端末装置2から問い合わせを受信すると、パスワード方式等任意の認証方法を用いて端末装置2の認証を行う。そして、認証部32は、端末装置2の認証が成功した場合は、端末装置2から受信した問い合わせを同期判定部33に出力する。
同期判定部33は、認証部32から受信した問い合わせの送信元となる端末装置が、アプリケーションの同期を行うか否かを判定する。具体的には、同期判定部33は、問い合わせを受信すると、受信した問い合わせに含まれる端末IDを取得し、取得した端末IDと対応付けられた端末所有者IDをデバイスグループDB9から識別する。そして、同期判定部33は、識別した端末所有者IDが複数の端末IDと対応付けられているか否かを判定する。
その後、同期判定部33は、識別した端末所有者IDが複数の端末IDと対応付けられていると判定した場合は、アプリケーションデータの同期を要する旨の同期判定情報を同期判定情報送信部34に出力する。一方、同期判定部33は、識別した端末所有者IDが複数の端末IDと対応付けられていないと判定した場合は、同期せずともよい旨の同期判定情報を同期判定情報送信部34に出力する。
同期判定情報送信部34は、同期判定部33から同期判定情報を受信すると、問い合わせ元の端末装置に対して、同期判定情報を送信する。
[アプリケーション管理サーバ12の機能構成]
次に、図5を用いて、アプリケーション管理サーバ12の機能構成について説明する。図5は、第1の実施形態に係るアプリケーション管理サーバの機能構成を説明する図である。図5に示す例では、アプリケーション管理サーバ12は、通信部41、操作権制御部42、同期部43を有する。なお、通信部41は、図3に示す通信部13と同様の機能を発揮するものとして、説明を省略する。
操作権制御部42は、操作権の制御を行う。例えば、操作権制御部42は、端末装置2から接続要求を受信すると、受信した接続要求から端末装置2の端末IDと端末所有者情報とを取得する。そして、操作権制御部42は、取得した端末所有者IDと対応付けられた端末IDをアプリケーションDB11が記憶する操作権管理情報から取得する。その後、操作権制御部42は、接続要求から取得した端末所有者IDと操作権管理情報から取得した端末IDを同期部43に出力するとともに、操作権の剥奪を通知するよう同期部43に指示する。
また、操作権制御部42は、操作権管理情報から取得した端末IDが示す端末装置、すなわち操作権の剥奪を通知した端末装置からアプリケーションデータと操作終了通知を受信すると、以下の処理を実行する。まず、操作権制御部42は、操作終了通知とアプリケーションデータとを同期部43に出力する。そして、操作権制御部42は、端末装置2の端末所有者情報と端末IDとを対応付けた操作権管理情報をアプリケーションDB11に格納する。そして、操作権制御部42は、端末装置2の端末所有者情報と端末IDとを同期部43に出力するとともに、アプリケーションデータの同期を行うよう指示する。
また、操作権制御部42は、操作権管理情報に端末装置2から受信した端末所有者IDと端末IDとが対応付けられていない場合は、端末装置2の端末所有者情報と端末IDとを同期部43に出力するとともに、アプリケーションデータの同期を行うよう指示する。
同期部43は、アプリケーションDB11と各端末装置2〜4との同期を行う。例えば、同期部43は、端末所有者IDと端末IDとを操作権の剥奪を通知する旨の指示とともに操作権制御部42から受信する。このような場合は、同期部43は、受信した端末IDが示す端末装置に対して、操作権の剥奪を通知する。この結果、同期部43は、操作権制御部42を介して、アプリケーションの実行を終了した端末装置から操作終了通知とともにアプリケーションデータを受信する。そして、同期部43は、受信したアプリケーションデータとアプリケーションデータの送信元となる端末装置の端末所有者IDとを対応付けてアプリケーションDB11に格納する。
また、例えば、同期部43は、端末装置2の端末所有者情報と端末IDとをアプリケーションデータの同期を行う旨の指示とともに、操作権制御部42から受信する。すると、同期部43は、受信した端末所有者情報と対応付けられたアプリケーションデータをアプリケーションDB11から読み出す。そして、同期部43は、読み出したアプリケーションデータを操作権制御部42から受信した端末IDが示す端末装置、すなわち端末装置2へ送信する。
なお、同期部43は、各端末装置2〜4がアプリケーション実行中に所定の時間間隔で送信したアプリケーションデータを受信する。すると、同期部43は、アプリケーションデータの送信元となる端末装置の端末所有者IDと受信したアプリケーションデータとを対応付けたアプリケーションDB11に格納する。
[情報処理システム1が実行する処理の流れ]
以下、図6、図7を用いて、情報処理システム1が実行する処理の流れについて説明する。まず、図6を用いて、端末装置2がアプリケーションを起動させた際に情報処理システム1が実行する処理の流れの概要について説明する。図6は、第1の実施形態に係る情報処理システムがアプリケーション起動時に実行する処理の流れを説明するためのシーケンス図である。
まず、端末装置2がアプリケーションを起動する(ステップS1)。すると、端末装置2は、問い合わせをデバイス管理サーバ10へ送信する(ステップS2)。すると、デバイス管理サーバ10は、端末装置2の認証を実行し(ステップS3)、デバイスグループDB9を参照し、端末装置2とアプリケーションデータの同期を行うか否かを判定する(ステップS4)。そして、デバイス管理サーバ10は、判定結果として同期判定情報を端末装置2へ送信する(ステップS5)。
一方、端末装置2は、受信した同期判定情報を用いて、アプリケーションデータの同期を行うか否かを判断する(ステップS6)。ここで、端末装置2は、アプリケーションデータの同期を行う場合は(ステップS6肯定)、接続要求をアプリケーション管理サーバ12に送信する(ステップS7)。この結果、アプリケーション管理サーバ12は、アプリケーションDB11からアプリケーションデータを取得し、取得したアプリケーションデータを端末装置2へ送信することで、端末装置2のローカルストレージとアプリケーションDB11とを同期させる(ステップS8)。そして、端末装置2は、分散実行環境6とともに、アプリケーションの分散処理を行う(ステップS9)。
一方、端末装置2は、アプリケーションデータの同期を行わない場合は(ステップS6否定)、自装置内のローカルストレージに接続し(ステップS10)、ローカルストレージ内のアプリケーションデータを用いてアプリケーションを分散実行する(ステップS11)。
次に、図7を用いて、アプリケーションを実行する端末装置を端末装置2から端末装置3に切り替える際に情報処理システム1が実行する処理の流れについて説明する。図7は、第1の実施形態に係る情報処理システムが端末装置の切替を行う際に実行する処理の流れを説明するためのシーケンス図である。
なお、図7に示す例では、アプリケーションの実行端末を端末装置2から端末装置3に切り替える際に情報処理システム1が実行する処理の流れについて記載した。また、図7に示す例では、各端末装置2、3を認証する処理については、記載を省略した。また、図7に示す例では、端末装置2、3が同期を行わない場合の処理の流れについては、記載を省略した。
例えば、図7に示す例では、端末装置2は、アプリケーションを起動し(ステップS101)、デバイス管理サーバ10に問い合わせを送信する(ステップS102)。すると、デバイス管理サーバ10は、端末装置2とアプリケーションデータの同期を行うか判定し(ステップS103)、同期を行うと判定した場合は(ステップS103肯定)、同期判定情報を端末装置2に送信する。詳細には、デバイス管理サーバ10は、端末装置2の端末IDと対応付けられた端末所有者IDが、複数の端末IDと対応付けられているか判定する。そして、デバイス管理サーバ10は、端末装置2の端末IDと対応付けられた端末所有者IDが、複数の端末IDと対応付けられている場合は、同期を求める同期判定情報を端末装置2へ送信する。
すると、端末装置2は、同期判定情報に従って同期するか判断し(ステップS104)、接続要求をアプリケーション管理サーバ12へ送信する(ステップS105)。次に、アプリケーション管理サーバ12は、接続要求を端末装置2から受信すると、アプリケーションDB11が記憶するアプリケーションデータを端末装置2へ送信することで、アプリケーションDB11と端末装置2のローカルストレージとを同期させる(ステップS106)。そして、端末装置2は、アプリケーションデータの同期後、分散実行環境6とアプリケーションを分散実行する(ステップS107)。
次に、端末装置3は、アプリケーションを起動すると(ステップS108)、デバイス管理サーバ10に問い合わせを送信する(ステップS109)。すると、デバイス管理サーバ10は、端末装置3とアプリケーションデータの同期を行うか判定し(ステップS110)、同期すると判定した場合は(ステップS110肯定)、同期判定情報を端末装置3に送信する。詳細には、デバイス管理サーバ10は、端末装置3の端末IDと対応付けられた端末所有者IDが、複数の端末IDと対応付けられているか判定する。そして、デバイス管理サーバ10は、端末装置3の端末IDと対応付けられた端末所有者IDが、複数の端末IDと対応付けられている場合は、同期を求める同期判定情報を端末装置3へ送信する。
すると、端末装置3は、同期判定情報に従って同期を行うか否かを判断し(ステップS111)、接続要求をアプリケーション管理サーバ12に送信する(ステップS112)。このような場合には、アプリケーション管理サーバ12は、端末装置2に対して操作権の剥奪を通知する(ステップS113)。また、端末装置2は、操作権の剥奪の通知を受信した場合は、実行中のアプリケーションに対する入力を無効化する(ステップS114)。そして、端末装置2は、アプリケーションデータと操作終了通知をアプリケーション管理サーバ12に送信する(ステップS115)。
一方、アプリケーション管理サーバ12は、端末装置2からアプリケーションデータと操作終了通知を受信すると、端末装置2から受信したアプリケーションデータをアプリケーションDB11に格納し、アプリケーションDB11と端末装置3のローカルストレージとを同期させる(ステップS116)。そして、端末装置3は、分散実行環境6とアプリケーションを分散実行する(ステップS117)。
[情報処理システム1の効果]
上述したように、情報処理システム1は、分散実行環境6と協調してアプリケーションを実行する端末装置2〜4のうち、アプリケーションを同期させる端末装置を示す端末IDを記憶する。そして、情報処理システム1は、端末装置2がアプリケーションを実行している際に端末装置3がアプリケーションを実行する場合は、端末装置3の端末IDをデバイスグループDB9が記憶しているか判定する。そして、情報処理システム1は、端末装置3の端末IDをデバイスグループDB9が記憶している場合は、端末装置2からアプリケーションデータを取得する。その後、情報処理システム1は、端末装置2から取得したアプリケーションデータを端末装置3へ送信する。
例えば、情報処理システム1は、あるユーザが端末装置2がアプリケーションを分散実行している際に、端末装置3を立ち上げてアプリケーションを起動させた場合は、端末装置2のアプリケーションデータを取得し、取得したアプリケーションデータを端末装置3に送信する。この結果、端末装置3は、アプリケーションを継続して実行することができる。このため、情報処理システム1は、同一ユーザが複数の利用環境を使い分けることができるアプリケーションの実行にあたり、ユーザに意識させることなく利用環境をシームレスに切り替えることができる。
また、情報処理システム1は、端末装置3の端末IDがデバイスグループDB9に記憶されている場合は、端末装置2に操作権の剥奪を通知し、アプリケーションに対する操作を停止させる。このため、情報処理システム1は、アプリケーションを実行する端末装置が端末装置2から端末装置3に切り替わった際も、各端末装置2、3による操作がアプリケーションに反映されるのを防ぐことができる。
また、情報処理システム1は、各端末装置2〜4の端末IDと、各端末装置の所有者を示す端末所有者IDとを対応付けて記憶する。また、情報処理システム1は、端末装置2がアプリケーション実行中に、端末装置3がアプリケーションを起動する際は、端末装置3の端末IDと対応付けられた端末所有者IDが複数の端末IDと対応付けられているか否かを判定する。
そして、情報処理システム1は、端末装置3の端末IDと対応付けられた端末所有者IDが複数の端末IDと対応付けられている場合は、端末装置2からアプリケーションデータを取得し、取得したアプリケーションデータを端末装置3へ送信する。このため、情報処理システム1は、各端末装置のアプリケーションデータを各端末装置の所有者ごとに同期させることができる。
(第2の実施形態)
上述した実施形態では、情報処理システム1は、アプリケーションを継続して実行する端末装置を各端末装置の所有者ごとに管理し、所有者ごとに各端末装置のアプリケーションデータを同期していた。しかしながら、実施例はこれに限定されるものではない。例えば、第2の実施形態に係る情報処理システム1aは、端末装置とアプリケーションとの組をグループ分けし、同一グループの端末装置とアプリケーションとの組については、アプリケーションデータの同期を行う。
例えば、図8は、第2の実施形態に係る情報処理システムがアプリケーションデータの同期を行うグループを説明するための図である。例えば、図8に示す例では、端末装置の所有者であるユーザ、アプリケーションの同期を行うグループのグループ識別子、各所有者が所有するデバイス、各デバイスが実行するアプリケーションを記載した。
例えば図8に示す例では、ユーザ「さとう」は、アプリケーション「(1)」〜「(3)」を実行するデバイス「A」、アプリケーション「(2)」、「(3)」を実行するデバイス「B」、アプリケーション「(1)」、「(3)」を実行するデバイス「C」を所有する。また、ユーザ「すずき」は、アプリケーション「(2)」を実行するデバイス「D」〜「F」と、アプリケーション「(1)」、「(2)」を実行するデバイス「G」とを所有する。また、ユーザ「かとう」は、アプリケーション「(2)」、「(3)」を実行するデバイス「H」と、アプリケーション「(3)」を実行するデバイス「I」とを所有する。また、ユーザ「いとう」は、アプリケーション「(3)」を実行するデバイス「J」と、アプリケーション「(1)」を実行するデバイス「K」とを所有する。
ここで、ユーザ「さとう」が有する各デバイス「A」〜「C」と、各デバイス「A」〜「C」が実行するアプリケーションの組は、グループ「α」およびグループ「β」に組み分けされている、また、ユーザ「かとう」が有する各デバイス「H」、「I」と、各デバイス「H」、「I」が実行するアプリケーションの組は、グループ「α」に組み分けされている。
このような場合には、情報処理システム1は、切替元のデバイスおよび切替元のデバイスが実行しているアプリケーションとの組と、切替先のデバイスおよび切替先のデバイスが実行するアプリケーションの組とが同一のグループに組み分けられておりかつ、各デバイスが実行するアプリケーションが同一のアプリケーションである場合に、アプリケーションデータの同期を行う。
例えば、情報処理システム1は、ユーザ「さとう」のデバイス「A」がアプリケーション「(2)」を実行中に、ユーザ「さとう」のデバイス「B」がアプリケーション「(2)」を実行する場合は、アプリケーションデータの同期を行う。また、情報処理システム1は、ユーザ「さとう」のデバイス「B」がアプリケーション「(2)」を実行中に、ユーザ「かとう」のデバイス「H」がアプリケーション「(2)」を実行する場合は、アプリケーションデータの同期を行う。一方、情報処理システム1は、ユーザ「さとう」のデバイス「B」がアプリケーション「(2)」を実行中にユーザ「かとう」のデバイス「I」がアプリケーション「(3)」を実行する場合は、アプリケーションが異なるので、アプリケーションデータの同期を行わない。
以下、上述した処理を行うため、第2の実施形態に係るデバイス管理サーバ10aおよびアプリケーション管理サーバ12aが実行する処理について説明する。まず、図9を用いて、デバイス管理サーバ10aについて説明する。図9は、第2の実施形態に係るデバイス管理サーバの機能構成を説明するための図である。なお、図9に示す各部のうち、図4に示す各部と同様の機能を発揮するものについては、同一の符号を付し、説明を省略する。
[デバイス管理サーバ10aの機能構成]
図9に示すように、デバイス管理サーバ10aは、同期判定部33aを有する。同期判定部33aは、デバイスグループDB9aが記憶する情報を用いて、各端末装置2〜4のアプリケーションデータを同期させるか否かを判定する。
ここで、図10を用いて、デバイスグループDB9aが記憶する情報の一例について説明する。図10は、第2の実施形態に係るデバイスグループDBの一例を説明するための図である。図10に示す例では、デバイスグループDB9aは、端末IDと協調動作対象アプリケーションとグループIDとを対応付けて記憶する。ここで、協調動作対象アプリケーションとは、各端末装置2〜4が実行するアプリケーションのうち、分散実行環境6と分散実行するアプリケーションを示すアプリケーションIDである。
例えば、図10に示す例では、デバイスグループDB9aは、端末ID「a01d」と協調動作対象アプリケーションのID「4e2a」とグループID「α」とを対応付けて記憶する。また、デバイスグループDB9aは、端末ID「9eaa」と協調動作対象アプリケーションのID「4e2a」とグループID「α」とを対応付けて記憶する。
また、デバイスグループDB9aは、端末ID「9eaa」と協調動作対象アプリケーションのID「7194」とグループID「β」とを対応付けて記憶する。また、デバイスグループDB9aは、端末ID「01ff」と協調動作対象アプリケーションのID「4e2a」とグループID「β」とを対応付けて記憶する。また、デバイスグループDB9aは、端末ID「01ff」と協調動作対象アプリケーションのID「7194」とグループID「β」とを対応付けて記憶する。ここで、端末IDと協調動作対象アプリケーションのIDとの組は、デバイスグループDB9a上において一意の組み合わせとなる。
図9に戻り、同期判定部33aは、例えば、端末装置2から、端末IDと実行するアプリケーションを示すアプリケーションIDとが含まれた問い合わせ情報を受信する。すると、同期判定部33aは、受信した問い合わせ情報から端末IDとアプリケーションIDとを取得し、取得した端末IDとアプリケーションIDとの組に対応付けられたグループIDをデバイスグループDB9aから検索する。そして、同期判定部33aは、検索したグループIDが他の端末IDとアプリケーションIDとの組に対応付けられている場合は、同期を求める同期判定情報を同期判定情報送信部34に出力する。
すなわち、同期判定部33aは、問い合わせに含まれる端末IDとアプリケーションIDとの組が、アプリケーションデータの同期を行う対象である場合は、同期を求める同期判定情報を同期判定情報送信部34に出力する。一方、同期判定部33aは、検索したグループIDが他の端末IDとアプリケーションIDとの組に対応付けられていない場合は、同期せずともよい旨の同期判定情報を出力する。また、同期判定部33aは、問い合わせに含まれる端末IDとアプリケーションIDとの組がデバイスグループDB9aに格納されていない場合は、同期せずともよい旨の同期判定情報を出力する。
[アプリケーション管理サーバ12aの機能構成]
次に、図11を用いて、第2の実施形態に係るアプリケーション管理サーバ12aについて説明する。図11は、第2の実施形態に係るアプリケーション管理サーバを説明する図である。なお、図11に示す各部のうち、図5に示す各部と同様の機能を発揮するものについては、同一の符号を付し、説明を省略する。
図11に示す例では、アプリケーション管理サーバ12aは、操作権制御部42aを有する。操作権制御部42aは、操作権制御部42と同様に、アプリケーションの操作権を制御する。例えば、操作権制御部42aは、アプリケーションごとに、アプリケーションを実行中の端末装置を示す端末IDと、アプリケーションの実行を求める端末装置を示す端末IDとを対応付けた操作権管理情報をアプリケーションDB11に格納する。
ここで、図12は、第2の実施形態に係る操作権管理情報の一例を説明する図である。図12に示す例では、操作権管理情報には、アプリケーションを示すアプリケーションIDと、アプリケーションを実行する端末装置の端末IDおよびアプリケーションの実行を求める端末装置の端末IDとが対応付けて格納されている。
詳細には、図12に示す操作権管理情報には、アプリケーションID「4e2a」に端末ID「a01d」、「9eaa」が対応付けられており、アプリケーションID「7194」に端末ID「01ff」が対応付けられている。このような操作権管理情報は、アプリケーションID「4e2a」が示すアプリケーションを端末ID「a01d」が示す端末装置が実行中であり、端末ID「9eaa」が示す端末装置が実行待ちである旨を示す。また、操作権管理情報は、アプリケーションID「7194」が示すアプリケーションを端末ID「01ff」が示す端末装置が実行中である旨を示す。
図11に戻り、操作権制御部42aは、端末装置2から端末IDと端末装置2が実行するアプリケーションIDとを含む接続要求を受信する。このような場合は、操作権制御部42aは、接続要求から端末IDとアプリケーションIDとを取得し、操作権管理情報に接続要求から取得したアプリケーションIDと端末IDとが対応付けられているか否かを判定する。
そして、操作権制御部42aは、操作権管理情報に接続要求から取得したアプリケーションIDと端末IDとが対応付けられている場合は、接続要求から取得したアプリケーションIDに対応付けられた端末IDの末尾に接続要求から取得した端末IDを追加する。また、操作権制御部42aは、接続要求の送信元となる端末装置に対して、他の端末装置がアプリケーションを起動中である旨を通知する。
なお、端末装置2は、アプリケーション管理サーバ12aから他の端末装置がアプリケーションを起動中である旨の通知を受信すると、起動したアプリケーションの入力を無効化する。ここで、端末装置2は、アプリケーションの入力を無効化した後に、他の端末装置が分散実行環境6へ送信した委譲プロセスの一部を実行することで、アプリケーションの分散実行に参加する。
一方、端末装置2は、アプリケーションの実行を終了した場合は、端末装置2の端末IDと、実行を終了したアプリケーションのアプリケーションIDとを含む操作終了通知と、アプリケーションデータとをアプリケーション管理サーバ12aへ送信する。操作権制御部42aは、操作終了通知をアプリケーションデータとを受信すると、受信した操作終了通知とアプリケーションデータとを同期部43に出力する。
また、操作権制御部42aは、操作終了通知からアプリケーションIDと端末IDとを取得する。そして、操作権制御部42aは、操作権管理情報を参照し、操作終了通知から取得したアプリケーションIDと対応付けられた端末IDのうち、先頭の端末IDを削除する。また、操作権制御部42は、端末IDを削除した結果、新たに先頭となる端末IDを取得する。そして、操作権制御部42aは、操作権管理情報から取得した端末IDと操作終了通知から取得したアプリケーションIDとを同期部43に出力するとともに、アプリケーションデータの同期を行うよう指示する。
このように、デバイス管理サーバ10aとアプリケーション管理サーバ12aとが動作する結果、情報処理システム1aは、同一グループ内において、同一のアプリケーションを実行する端末同士のアプリケーションデータを同期する。例えば、デバイスグループDB9aが図10に示す情報を記憶する場合は、情報処理システム1aは、端末ID「a01d」が示す端末装置と、端末ID「9eaa」が示す端末装置とが、アプリケーションID「4e2a」が示すアプリケーションを実行する際に、アプリケーションデータの同期を行う。また、情報処理システム1aは、端末ID「9eaa」が示す端末装置と、端末ID「01ff」が示す端末装置とが、アプリケーションID「7194」が示すアプリケーションを実行する際に、アプリケーションデータの同期を行う。
[情報処理システム1aの処理の流れ]
次に、図13を用いて、アプリケーションを実行する端末装置を端末装置2から端末装置3に切り替える際に情報処理システム1aが実行する処理の流れについて説明する。図13は、第2の実施形態に係る情報処理システムが端末装置の切替を行う際に実行する処理の流れを説明するためのシーケンス図である。
なお、図13に示す例では、アプリケーションの実行端末を端末装置2から端末装置3に切り替える際に情報処理システム1aが実行する処理の流れについて記載した。また、図13に示す例では、各端末装置2、3を認証する処理については、記載を省略した。また、図13に示す例では、端末装置2、3が同期を行わない場合の処理の流れについては、記載を省略した。また、図13に示すステップS201〜S204およびステップS209〜S212の処理は、図7に示すステップS101〜S104、ステップS108〜S111の処理と同様の処理であるものとして、説明を省略する。
例えば、端末装置2は、同期判断の後(ステップS204)、端末IDとアプリケーションIDとを含む接続要求をアプリケーション管理サーバ12aに送信する(ステップS205)。すると、アプリケーション管理サーバ12aは、操作権管理情報としてアプリケーションIDごとに端末IDの接続順序を記録し(ステップS206)、アプリケーションDB11と端末装置2のローカルストレージとを同期させる(ステップS207)。そして、端末装置2は、アプリケーションデータの同期後、分散実行環境6とアプリケーションを分散実行する(ステップS208)。
一方、端末装置3は、同期判断の後(ステップS212)、端末IDとアプリケーションIDとを含む接続要求をアプリケーション管理サーバ12aに送信する(ステップS213)。このような場合には、アプリケーション管理サーバ12aは、操作権管理情報としてアプリケーションIDごとに端末IDの接続順序を記録する(ステップS214)。
ここで、操作権管理情報には、同一のアプリケーションIDに端末装置2の端末IDが対応付けられているのでアプリケーション管理サーバ12aは、端末装置3に対して他端末がアプリケーション起動中である旨を通知する(ステップS215)。このため、端末装置3は、アプリケーションの入力を無効化し(ステップS216)、分散実行に参加する(ステップS217)。
一方、端末装置2は、アプリケーションの実行が終了すると、分散実行が終了した旨を分散実行環境6に通知する(ステップS218)。このような場合は、分散実行環境6は、端末装置2を分散実行環境から切断する(ステップS219)。その後、端末装置2は、端末装置2のアプリケーションデータと操作終了通知とをアプリケーション管理サーバ12aに送信する(ステップS220)。
このような場合は、アプリケーション管理サーバ12aは、アプリケーションID毎の端末ID接続順から選択の端末ID、すなわち端末装置2の端末IDを削除する(ステップS221)。そして、アプリケーション管理サーバ12aは、アプリケーションDB11と端末装置3のローカルストレージとを同期させる(ステップS222)。この結果、端末装置3は、アプリケーションの入力無効化を解除し(ステップS223)、分散実行を開始する(ステップS224)。
[情報処理システム1aの効果]
上述したように、情報処理システム1aは、端末IDとアプリケーションIDとの組に、アプリケーションデータを同期させるグループを示すグループIDとを対応付けて記憶する。また、情報処理システム1aは、アプリケーションを実行する端末装置の端末IDと実行するアプリケーションのアプリケーションIDとの組に対応付けられたグループIDが、他の端末IDとアプリケーションIDとの組に対応付けられているか否かを判定する。
その後、情報処理システム1aは、アプリケーションを実行する端末装置の端末IDと実行するアプリケーションのアプリケーションIDとの組に対応付けられたグループIDが、他の端末IDとアプリケーションIDとの組に対応付けられている場合は、アプリケーションの同期を行う。このため、情報処理システム1aは、複数の所有者が利用する端末装置間で、アプリケーションの分散実行を行う端末装置の切替をシームレスに行うことができる。また、アプリケーションを実行する端末装置の切替を行った際に、利用者間でのデータ及び操作の同期を意識する必要がなくなり、アプリケーション利用に際するユーザビリティを改善させることができる。
また、情報処理システム1aは、処理能力が低廉な端末装置が実行するアプリケーションを分散実行する際に、異なるユーザ同士でアプリケーションの同期を望む利用者の端末装置と、同期を望まない利用者の端末装置とをシステム内に混在させることができる。例えば、図14は、第2の実施形態に係る情報処理システムの適用例を説明するための図である。
例えば、処理能力が低廉な端末装置のユーザは、分散実行環境の提供者に対して、利用料を払うことで、分散実行環境を用いたアプリケーションを実行する。ここで、ユーザの中には、異なるユーザ間でアプリケーションの状態を共有したいユーザと、分散実行環境さえあれば十分で、同期を行わなくてもよいユーザとが存在する場合がある。そこで、情報処理システム1aは、図14に示す例では、ユーザAとユーザBとを同一グループに含めることで、アプリケーションの状態を同期させ、ユーザCの端末については、アプリケーションの状態を同期させない。
また、分散実行環境の提供者は、例えば、異なるユーザ同士のアプリケーションデータを同期させるサービスを付加機能として提供してもよい。このような提供を行った場合は、例えば、分散実行環境の提供者は、アプリケーションを同期させるユーザAとユーザBに対して負荷機能使用料を上乗せ課金し、ユーザCに対しては、分散実行環境の使用料のみを課金するといった様態が考えられる。
また、情報処理システム1aは、例えば、端末装置2がアプリケーションを実行中に端末装置3がアプリケーションを起動させると、端末装置3にアプリケーションの操作を停止させる。また、情報処理システム1aは、端末装置2がアプリケーションの実行を終了した後で端末装置2のアプリケーションデータを取得し、取得したアプリケーションデータを端末装置3へ送信する。その後、情報処理システム1aは、端末装置3にアプリケーションデータの操作を許可する。
このため、情報処理システム1aは、複数の所有者が利用する端末装置間で、アプリケーションの分散実行を行う端末装置を切り替える際に、複数の端末装置による同一アプリケーションへの操作を防止することができる。この結果、情報処理システム1aは、適切にアプリケーションデータの同期を行うことができる。
(他の実施形態)
これまで第1の実施形態について説明したが、開示する発明は上述した実施形態以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では他の実施形態について説明する。
(1)各実施形態の組み合わせについて
上述した情報処理システム1は、端末装置2がアプリケーションを実行中に端末装置3がアプリケーションを実行すると、端末装置2の操作権を剥奪した。しかし、実施形態はこれに限定されるものではない。例えば、情報処理システム1は、情報処理システム1aと同様に、同一アプリケーションに対する接続順序を管理しても良い。
例えば、アプリケーション管理サーバ12は、所有者ごとに、接続要求を受信した端末装置の端末IDを順に並べた操作権管理情報をアプリケーションDB11に格納する。すなわち、アプリケーション管理サーバ12は、アプリケーションデータを同期させる端末装置ごとに、接続要求を送信した端末装置のキューを操作権管理情報としてアプリケーションDB11に格納する。そして、アプリケーション管理サーバ12は、操作権管理情報の先頭となる端末IDが示す端末装置に対して操作権を付与する。
また、アプリケーション管理サーバ12は、操作権を付与した端末装置からアプリケーションの操作終了を受信すると、端末装置から最新のアプリケーションデータを取得するとともに、操作権管理情報の先頭となる端末IDを削除する。そして、アプリケーション管理サーバ12は、新たに操作権管理情報の先頭となる端末IDが示す端末装置に対して、操作権を付与し、取得したアプリケーションデータを送信して同期を行っても良い。
(2)各装置の構成について
上述した情報処理システム1は、デバイス管理サーバ10およびアプリケーション管理サーバ12とを有していた。しかし、実施例はこれに限定されるものではない。例えば、情報処理システム1は、デバイス管理サーバ10およびアプリケーション管理サーバ12の機能を発揮する1台の同期サーバを有していても良い。また、情報処理システム1aも、デバイス管理サーバ10aおよびアプリケーション管理サーバ12aの機能を発揮する1台の同期サーバを有していてもよい。また、図示した各端末装置2〜4、デバイス管理サーバ10、10a、アプリケーション管理サーバ12、12aの各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、認証部32、同期判定部33、同期判定情報送信部34を統合してもよい。さらに、各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、第1の実施形態および第2の実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(3)同期タイミングについて
上述したアプリケーション管理サーバ12は、所定の時間間隔、もしくは、アプリケーションDB11へ格納対象となっているデータの追加や削除及び更新等が発生した場合は、アプリケーションを実行中の端末装置からアプリケーションデータを取得した。また、同期部19は、一定の時間間隔、もしくはアプリケーションデータの追加や削除及び更新等が発生した際に、アプリケーションデータ23を記憶部21から読み出し、読み出したアプリケーションデータ23をアプリケーション管理サーバ12に送信した。しかしながら、実施形態は、これに限定されるものではない。
すなわち、同期を行う最適なタイミングについては、情報処理システム1の形態や、各端末装置2〜4、およびサーバ7、8が実行するアプリケーションの処理内容等によって異なる。このため、アプリケーション管理サーバ12は、各端末装置2〜4と任意のタイミングでアプリケーションデータの同期を行ってもよい。
(4)プログラム
また、上記実施形態において説明したデバイス管理サーバ10およびアプリケーション管理サーバ12が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施例1に係るデバイス管理サーバ10およびアプリケーション管理サーバ12が実行する処理をコンピュータが実行可能な言語で記述したストレージプログラムを作成することもできる。この場合、コンピュータがストレージプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるストレージプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたストレージプログラムをコンピュータに読み込ませて実行することにより上記第1の実施形態と同様の処理を実現してもよい。以下に、図4、図5に示したデバイス管理サーバ10およびアプリケーション管理サーバ12と同様の機能を実現するアプリケーション管理プログラムを実行するコンピュータの一例を説明する。
図15は、本実施形態に係るアプリケーション管理プログラムを実行するコンピュータ1000を示す図である。図15に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
ここで、図15に示すように、ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。本実施形態に係るアプリケーション管理プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。具体的には、上記実施例で説明した同期判定部33が実行する判定ステップ、同期部43が実行する取得ステップ、および送信ステップとが記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
また、上記実施例で説明したデータベースに記憶されるデータのように、アプリケーション管理プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み出して、判定ステップと取得ステップと送信ステップとを実行する。
なお、アプリケーション管理プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、情報送受信プログラムに係るプログラムモジュールやプログラムデータは、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
これまでいくつかの実施形態を説明したが、本願が開示する技術はこれらの実施形態に限定されるものではない。すなわち、これらの実施形態は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
例えば、各装置の分散・統合の具体的形態(例えば、図4、図5の形態)は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、同期判定部33と同期判定情報送信部34とを一つの部として統合してもよい。
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともできる。また、認証部32をサーバ7、デバイス管理サーバ10の外部装置としてネットワーク経由で接続し、例えばOAuth等のネットワーク上における認証をおこなうこととしてもよい。
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1、1a 情報処理システム
2〜4 端末装置
5 ネットワーク
6 分散実行環境
7、8 サーバ
9 デバイスグループDB
10、10a デバイス管理サーバ
11 アプリケーションDB
12、12a アプリケーション管理サーバ
13、31、41 通信部
14 入力部
15 表示部
16 制御部
17 問い合わせ部
18 判定部
19 同期部
20 分散実行部
21 記憶部
22 同期判定情報
23 アプリケーションデータ
32 認証部
33、33a 同期判定部
34 同期判定情報送信部
42、42a 操作権制御部
43 同期部

Claims (7)

  1. サーバと協調してアプリケーションを実行する端末装置のうち、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末識別子を記憶する記憶部と、
    第1の端末装置が前記アプリケーションを実行している際に、第2の端末装置が前記アプリケーションを実行する場合は、前記第2の端末装置を示す端末識別子を前記記憶部が記憶しているか否かを判定する判定部と、
    前記第2の端末装置を示す端末識別子を前記記憶部が記憶していると前記判定部が判定した場合は、前記第2の端末装置が前記アプリケーションを継続して実行するためのアプリケーションデータを前記第1の端末装置から取得する取得部と、
    前記取得部が取得したアプリケーションデータを前記第2の端末装置へ送信する送信部と
    を有することを特徴とするアプリケーション管理装置。
  2. 前記第2の端末装置を示す端末識別子を前記記憶部が記憶していると前記判定部が判定した場合は、前記第1の端末装置に前記アプリケーションに対する操作を停止させる操作権管理部をさらに有することを特徴とする請求項1に記載のアプリケーション管理装置。
  3. 前記第2の端末装置を示す端末識別子を前記記憶部が記憶していると前記判定部が判定した場合は、前記第1の端末装置が前記アプリケーションの実行を終了するまでの間前記第2の端末装置に前記アプリケーションの操作を停止させ、前記第1の端末装置が前記アプリケーションの実行を終了した後で前記第2の端末装置に前記アプリケーションの操作を許可する操作権管理部をさらに有し、
    前記取得部は、前記第1の端末装置が前記アプリケーションの実行を終了した後で、前記第1の端末装置から前記アプリケーションデータを取得することを特徴とする請求項1に記載のアプリケーション管理装置。
  4. 前記記憶部は、各端末を識別する端末識別子と、各端末の所有者を識別する端末所有者識別子とを対応付けて記憶し、
    前記判定部は、前記記憶部が前記第2の端末装置を示す端末識別子と対応付けて記憶する端末所有者識別子が、複数の端末識別子と対応付けられているか否かを判定し、
    前記取得部は、前記第2の端末装置を示す端末識別子と対応付けて記憶する端末所有者識別子が、複数の端末識別子と対応付けられていると前記判定部が判定した場合は、前記アプリケーションを継続して実行するためのアプリケーションデータを前記第1の端末装置から取得する
    ことを特徴とする請求項1〜3のいずれか1つに記載のアプリケーション管理装置。
  5. 前記記憶部は、各端末装置を識別する端末識別子と、当該端末装置が実行するアプリケーションを示すアプリケーション識別子と、前記アプリケーションデータを同期させるグループを示すグループ識別子とを対応付けて記憶し、
    前記判定部は、前記記憶部を参照し、前記第2の端末装置を示す端末識別子と前記第2の端末装置が実行するアプリケーションを示すアプリケーション識別子との組に対応付けられたグループ識別子が、複数の前記端末識別子と前記アプリケーション識別子との組に対応付けられているか否かを判定し、
    前記取得部は、前記第2の端末装置を示す端末識別子と前記第2の端末装置が実行するアプリケーションを示すアプリケーション識別子との組に対応付けられたグループ識別子が、複数の前記端末識別子と前記アプリケーション識別子との組に対応付けられている場合は、前記アプリケーションを継続して実行するためのアプリケーションデータを前記第1の端末装置から取得する
    ことを特徴とする請求項1〜3のいずれか1つに記載のアプリケーション管理装置。
  6. 情報処理装置で実行されるアプリケーション管理方法であって、
    第1の端末装置がサーバと協調してアプリケーションを実行している際に、第2の端末装置が同じアプリケーションを実行する場合は、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末識別子を記憶する記憶装置が、前記第2の端末装置を示す端末識別子を記憶しているか否かを判定する判定工程と、
    前記第2の端末装置を示す端末識別子を前記記憶装置が記憶していると前記判定工程で判定した場合は、前記第2の端末装置が前記アプリケーションを継続して実行するためのアプリケーションデータを前記第1の端末装置から取得する取得工程と、
    前記取得工程で取得したアプリケーションデータを前記第2の端末装置へ送信する送信工程と
    を有することを特徴とするアプリケーション管理方法。
  7. コンピュータに、
    第1の端末装置がサーバと協調してアプリケーションを実行している際に、第2の端末装置が同じアプリケーションを実行する場合は、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末識別子を記憶する記憶装置が前記第2の端末装置を示す端末識別子を記憶しているか否かを判定する判定ステップと、
    前記第2の端末装置を示す端末識別子を前記記憶装置が記憶していると前記判定ステップで判定した場合は、前記第2の端末装置が前記アプリケーションを継続して実行するためのアプリケーションデータを前記第1の端末装置から取得する取得ステップと、
    前記取得ステップで取得したアプリケーションデータを前記第2の端末装置へ送信する送信ステップと
    を実行させることを特徴とするアプリケーション管理プログラム。
JP2013035767A 2013-02-26 2013-02-26 アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラム Pending JP2014164566A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013035767A JP2014164566A (ja) 2013-02-26 2013-02-26 アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013035767A JP2014164566A (ja) 2013-02-26 2013-02-26 アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラム

Publications (1)

Publication Number Publication Date
JP2014164566A true JP2014164566A (ja) 2014-09-08

Family

ID=51615105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013035767A Pending JP2014164566A (ja) 2013-02-26 2013-02-26 アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラム

Country Status (1)

Country Link
JP (1) JP2014164566A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016057894A (ja) * 2014-09-10 2016-04-21 株式会社東芝 電子機器、システム、および同期方法
JPWO2017099184A1 (ja) * 2015-12-09 2018-10-04 Agc株式会社 硬化性組成物および硬化物

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016057894A (ja) * 2014-09-10 2016-04-21 株式会社東芝 電子機器、システム、および同期方法
US10432715B2 (en) 2014-09-10 2019-10-01 Toshiba Client Solutions CO., LTD. Electronic apparatus, system and synchronization method
JPWO2017099184A1 (ja) * 2015-12-09 2018-10-04 Agc株式会社 硬化性組成物および硬化物

Similar Documents

Publication Publication Date Title
JP5582344B2 (ja) 接続管理システム、及びシンクライアントシステムにおける接続管理サーバの連携方法
US10212228B2 (en) Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner
US8386536B2 (en) Gateway server, file management system, and file management method and program
US9659170B2 (en) Securing data on untrusted devices
CN109889424B (zh) 信息处理方法、装置及存储介质
JP5831205B2 (ja) データ共有プログラム、情報処理装置、及びデータ共有システム
JP2007200089A (ja) バックアップシステム、ファイルサーバ、及びバックアップ方法
US20180046488A1 (en) Thin client system, method, and non-transitory computer-readable storage medium
CN102684970A (zh) 瘦客户端环境提供系统、服务器和瘦客户端环境管理方法
US20070160080A1 (en) Computer resource allocation system and method thereof
JP2011238073A (ja) サーバ群統合管理システム
JP2014164566A (ja) アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラム
JP2012137874A (ja) 権限管理装置、その制御方法及びプログラム
JP6289879B2 (ja) 通信端末、通信方法及びプログラム
US9860313B2 (en) Maintaining state synchronization of an application between computing devices as well as maintaining state synchronization of common information between different applications without requiring perioidic synchronization
JP5682932B2 (ja) 制御サーバ、制御方法及び制御プログラム
US20210256600A1 (en) Connector leasing for long-running software operations
EP3860081B1 (en) Data access control program, data access control method, and authorization server
JP6062809B2 (ja) 資産管理システム及び資産管理方法
US20160357588A1 (en) Queue management method, non-transitory computer-readable recording medium and queue management device
CN110324370B (zh) 服务端向客户端推送数据的方法和装置
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
KR20190074723A (ko) 원격 컴퓨팅 서비스 제공 시스템 및 방법
JP6090406B2 (ja) 送信側情報処理装置、データ共有システム、情報処理方法、及びプログラム
US20160098290A1 (en) Information sharing program, information sharing system and information sharing method