(57)【要約】【課題】同一ユーザが複数の利用環境を使い分けることができるアプリケーションの実行にあたり、ユーザに意識させることなく利用環境をシームレスに切り替えることを目的とする。【解決手段】デバイスグループＤＢ９は、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末ＩＤを記憶する。また、情報処理システム１は、端末装置２がアプリケーションを実行している際に、端末装置３がアプリケーションを実行する場合は、端末装置３を示す端末ＩＤをデバイスグループＤＢ９が記憶しているか否かを判定する。また、情報処理システム１は、端末装置３を示す端末ＩＤを記憶していると判定した場合は、端末装置３がアプリケーションを継続して実行するためのアプリケーションデータを端末装置２から取得する。そして、情報処理システム１は、取得したアプリケーションデータを端末装置３へ送信する。【選択図】        図１
2014164566.tif 000002
【特許請求の範囲】
【請求項１】
サーバと協調してアプリケーションを実行する端末装置のうち、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末識別子を記憶する記憶部と、
第１の端末装置が前記アプリケーションを実行している際に、第２の端末装置が前記アプリケーションを実行する場合は、前記第２の端末装置を示す端末識別子を前記記憶部が記憶しているか否かを判定する判定部と、
前記第２の端末装置を示す端末識別子を前記記憶部が記憶していると前記判定部が判定した場合は、前記第２の端末装置が前記アプリケーションを継続して実行するためのアプリケーションデータを前記第１の端末装置から取得する取得部と、
前記取得部が取得したアプリケーションデータを前記第２の端末装置へ送信する送信部と
を有することを特徴とするアプリケーション管理装置。
【請求項２】
前記第２の端末装置を示す端末識別子を前記記憶部が記憶していると前記判定部が判定した場合は、前記第１の端末装置に前記アプリケーションに対する操作を停止させる操作権管理部をさらに有することを特徴とする請求項１に記載のアプリケーション管理装置。
【請求項３】
前記第２の端末装置を示す端末識別子を前記記憶部が記憶していると前記判定部が判定した場合は、前記第１の端末装置が前記アプリケーションの実行を終了するまでの間前記第２の端末装置に前記アプリケーションの操作を停止させ、前記第１の端末装置が前記アプリケーションの実行を終了した後で前記第２の端末装置に前記アプリケーションの操作を許可する操作権管理部をさらに有し、
前記取得部は、前記第１の端末装置が前記アプリケーションの実行を終了した後で、前記第１の端末装置から前記アプリケーションデータを取得することを特徴とする請求項１に記載のアプリケーション管理装置。
【請求項４】
前記記憶部は、各端末を識別する端末識別子と、各端末の所有者を識別する端末所有者識別子とを対応付けて記憶し、
前記判定部は、前記記憶部が前記第２の端末装置を示す端末識別子と対応付けて記憶する端末所有者識別子が、複数の端末識別子と対応付けられているか否かを判定し、
前記取得部は、前記第２の端末装置を示す端末識別子と対応付けて記憶する端末所有者識別子が、複数の端末識別子と対応付けられていると前記判定部が判定した場合は、前記アプリケーションを継続して実行するためのアプリケーションデータを前記第１の端末装置から取得する
ことを特徴とする請求項１〜３のいずれか１つに記載のアプリケーション管理装置。
【請求項５】
前記記憶部は、各端末装置を識別する端末識別子と、当該端末装置が実行するアプリケーションを示すアプリケーション識別子と、前記アプリケーションデータを同期させるグループを示すグループ識別子とを対応付けて記憶し、
前記判定部は、前記記憶部を参照し、前記第２の端末装置を示す端末識別子と前記第２の端末装置が実行するアプリケーションを示すアプリケーション識別子との組に対応付けられたグループ識別子が、複数の前記端末識別子と前記アプリケーション識別子との組に対応付けられているか否かを判定し、
前記取得部は、前記第２の端末装置を示す端末識別子と前記第２の端末装置が実行するアプリケーションを示すアプリケーション識別子との組に対応付けられたグループ識別子が、複数の前記端末識別子と前記アプリケーション識別子との組に対応付けられている場合は、前記アプリケーションを継続して実行するためのアプリケーションデータを前記第１の端末装置から取得する
ことを特徴とする請求項１〜３のいずれか１つに記載のアプリケーション管理装置。
【請求項６】
情報処理装置で実行されるアプリケーション管理方法であって、
第１の端末装置がサーバと協調してアプリケーションを実行している際に、第２の端末装置が同じアプリケーションを実行する場合は、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末識別子を記憶する記憶装置が、前記第２の端末装置を示す端末識別子を記憶しているか否かを判定する判定工程と、
前記第２の端末装置を示す端末識別子を前記記憶装置が記憶していると前記判定工程で判定した場合は、前記第２の端末装置が前記アプリケーションを継続して実行するためのアプリケーションデータを前記第１の端末装置から取得する取得工程と、
前記取得工程で取得したアプリケーションデータを前記第２の端末装置へ送信する送信工程と
を有することを特徴とするアプリケーション管理方法。
【請求項７】
コンピュータに、
第１の端末装置がサーバと協調してアプリケーションを実行している際に、第２の端末装置が同じアプリケーションを実行する場合は、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末識別子を記憶する記憶装置が前記第２の端末装置を示す端末識別子を記憶しているか否かを判定する判定ステップと、
前記第２の端末装置を示す端末識別子を前記記憶装置が記憶していると前記判定ステップで判定した場合は、前記第２の端末装置が前記アプリケーションを継続して実行するためのアプリケーションデータを前記第１の端末装置から取得する取得ステップと、
前記取得ステップで取得したアプリケーションデータを前記第２の端末装置へ送信する送信ステップと
を実行させることを特徴とするアプリケーション管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラムに関する。
【背景技術】
【０００２】
近年、コンテンツやアプリケーションプログラム（ＡＰ）等は、高機能化、複雑化しており、通信環境や実行環境は、多様化している。係るコンテンツやＡＰを実行するには、高性能な端末を利用することが望ましい。一方、一般的な端末を利用すると、性能が追いつかず、端末側でコンテンツの表示や、ＡＰの処理の迅速な実行が困難になる。
【０００３】
このため、端末側で実行する処理を分割し、分割した複数の処理を端末とサーバとの間で分担、連動させることにより、性能の低い端末であっても安定した品質でアプリケーションを実行する技術が開示されている。また、端末の性能や、通信環境の状況に応じて、アプリケーションを実行する端末やサーバをシームレスに切り替える技術も開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“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
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、単体の端末とサーバとが処理を連携して実行することは可能であるが、同一ユーザが複数の端末を使用する際の各端末間の連携については考慮されていない。このため、あるユーザが使用する端末を変更した際に、各端末が実行するアプリケーションの連携に不便が生じてしまう。
【０００６】
開示の実施形態は、上記に鑑みてなされたものであり、同一ユーザが複数の利用環境を使い分けることができるアプリケーションの実行にあたり、ユーザに意識させることなく利用環境をシームレスに切り替えることを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施形態では、サーバと協調してアプリケーションを実行する端末装置のうち、他の端末装置が実行するアプリケーションを継続して実行する端末装置を示す端末識別子を記憶するアプリケーション管理装置である。また、アプリケーション管理装置は、第１の端末装置がアプリケーションを実行している際に、第２の端末装置がアプリケーションを実行する場合は、第２の端末装置を示す端末識別子を記憶しているか否かを判定する。また、アプリケーション管理装置は、第２の端末装置を示す端末識別子を記憶していると判定した場合は、第２の端末装置がアプリケーションを継続して実行するためのアプリケーションデータを第１の端末装置から取得する。そして、アプリケーション管理装置は、取得したアプリケーションデータを第２の端末装置へ送信する。
【発明の効果】
【０００８】
１つの実施形態では、同一ユーザが複数の利用環境を使い分けることができるアプリケーションの実行にあたり、ユーザに意識させることなく利用環境をシームレスに切り替えることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態に係る情報処理システムを説明する図である。
【図２】図２は、第１の実施形態に係るデバイスグループＤＢが記憶する情報を説明する図である。
【図３】図３は、第１の実施形態に係る端末装置の機能構成を説明する図である。
【図４】図４は、第１の実施形態に係るデバイス管理サーバの機能構成を説明する図である。
【図５】図５は、第１の実施形態に係るアプリケーション管理サーバの機能構成を説明する図である。
【図６】図６は、第１の実施形態に係る情報処理システムがアプリケーション起動時に実行する処理の流れを説明するためのシーケンス図である。
【図７】図７は、第１の実施形態に係る情報処理システムが端末装置の切替を行う際に実行する処理の流れを説明するためのシーケンス図である。
【図８】図８は、第２の実施形態に係る情報処理システムがアプリケーションデータの同期を行うグループを説明するための図である。
【図９】図９は、第２の実施形態に係るデバイス管理サーバの機能構成を説明するための図である。
【図１０】図１０は、第２の実施形態に係るデバイスグループＤＢの一例を説明するための図である。
【図１１】図１１は、第２の実施形態に係るアプリケーション管理サーバを説明する図である。
【図１２】図１２は、第２の実施形態に係る操作権管理情報の一例を説明する図である。
【図１３】図１３は、第２の実施形態に係る情報処理システムが端末装置の切替を行う際に実行する処理の流れを説明するためのシーケンス図である。
【図１４】図１４は、第２の実施形態に係る情報処理システムの適用例を説明するための図である。
【図１５】図１５は、アプリケーション管理プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照してアプリケーション管理装置、アプリケーション管理方法およびアプリケーション管理プログラムについて説明する。
【００１１】
（第１の実施形態）
以下、図１を用いて、アプリケーションを実行する端末装置をシームレスに切り替えることができる情報処理システムの一例を説明する。図１は、第１の実施形態に係る情報処理システムを説明する図である。図１に示す例では、情報処理システム１は、複数の端末装置２〜４、ネットワーク５、分散実行環境６、デバイスグループＤＢ（Data  Base）９、デバイス管理サーバ１０、アプリケーションＤＢ１１、アプリケーション管理サーバ１２を有する。また、分散実行環境６は、複数のサーバ７、８を有する。
【００１２】
なお、図１では省略したが、情報処理システム１は、他にも端末装置２〜４と同様の機能を発揮する複数の端末装置および各サーバ７、８と同様の機能を発揮するサーバを有するものとする。また、端末装置３、４は、端末装置２と同様の機能を発揮するものとして、以下の説明を省略する。
【００１３】
また、図１に示す例では、各端末装置２〜４、サーバ７、８、デバイス管理サーバ１０、アプリケーション管理サーバ１２は、ネットワーク５を介して接続されている。ここでネットワーク５は、ＷＷＷ（World  Wide  Web）、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等任意の通信ネットワークである。
【００１４】
各端末装置２〜４は、各種アプリケーションを実行する情報処理装置である。例えば、端末装置２〜４は、ＰＣ（Personal  Computer）やサーバ等の情報処理装置、またはスマートフォン、携帯端末装置、ＰＤＡ（Personal  Digital  Assistant）等の携帯端末装置である。また、各端末装置２〜４は、有線、無線を問わず任意の通信形態でネットワーク５に接続する。
【００１５】
また、各端末装置２〜４は、分散実行環境６が有する各サーバ７、８と協調してアプリケーションを実行する。例えば、端末装置２は、アプリケーションを複数のスレッドに分割し、各スレッドの複雑さや、端末装置２が有する演算処理装置の処理能力等に応じて、自装置が実行するスレッドと、サーバ７、８に実行を委譲する委譲スレッドとを選択する。
【００１６】
そして、端末装置２は、委譲スレッドをサーバ７、８に送信する。すると、サーバ７、８は、端末装置２から受信した委譲スレッドを実行し、委譲スレッドの実行結果を端末装置２へ送信する。その後、端末装置２は、受信した委譲スレッドの実行結果および自装置によるスレッドの実行結果を組み合わせて、アプリケーションの実行を行う。
【００１７】
なお、以下の説明では、各端末装置２〜４が分散実行環境６が有する各サーバ７、８と協調してアプリケーションを実行する情報処理システム１について説明するが、情報処理システム１は、このような実施形態に限定されるものではない。例えば、各サーバ７、８は、各端末装置２〜４と同様に、利用者が所有する端末装置であってもよい。すなわち、情報処理システム１では、各端末装置２〜４、および各サーバ７、８等の実行環境の種類や、実行するアプリケーションの種別が同一であっても、分散実行することができる。このため、例えば、各端末装置２〜４は、あるアプリケーションについて分散実行を行うような実施形態であってもよい。
【００１８】
また、各端末装置２〜４は、任意の利用者が使用する端末装置である。例えば、端末装置２、３は、利用者Ａが使用する端末装置であり、端末装置４は、利用者Ｂが使用する端末装置である。ここで、利用者Ａは、端末装置２と分散実行環境６とがアプリケーションを分散実行している際に、端末装置３を起動させ、端末装置３に端末装置２と同じアプリケーションを実行させる場合がある。しかしながら、従来のアプリケーションを分散実行する技術では、利用者が使用する端末装置を切り替えた際のアプリケーションの連携が考慮されていない。
【００１９】
そこで、情報処理システム１では、利用者が使用する端末装置を切り替えた際に、アプリケーションを継続して実行するためのアプリケーションデータを端末装置間で同期する。以下、アプリケーションデータを端末装置間で同期させるため、デバイスグループＤＢ９、デバイス管理サーバ１０、アプリケーションＤＢ１１、アプリケーション管理サーバ１２が発揮する機能について説明する。
【００２０】
デバイスグループＤＢ９は、端末装置２〜４のうち、アプリケーションデータを同期させる端末装置を記憶するデータベースである。例えば、デバイスグループＤＢ９は、各端末装置２〜４のうち、同一の利用者が使用する端末装置間でアプリケーションデータを同期させる場合は、各端末装置を識別する端末ＩＤ（Identifier）と、各端末装置の所有者を識別する端末所有者ＩＤとを対応付けて記憶する。
【００２１】
図２は、第１の実施形態に係るデバイスグループＤＢが記憶する情報を説明する図である。例えば、デバイスグループＤＢ９は、図２に示すように、端末所有者ＩＤと端末ＩＤとを対応付けて記憶する。詳細な例を挙げると、デバイスグループＤＢ９は、端末所有者ＩＤ「０１２３」と複数の端末ＩＤ「ａ０１ｄ」、「ａ０ｅ３」、「８ｅ３１」とを対応付けて記憶する。また、デバイスグループＤＢ９は、端末所有者ＩＤ「１４３０」と複数の端末ＩＤ「９ｅａａ」、「０１ｆｆ」とを対応付けて記憶する。また、デバイスグループＤＢ９は、端末所有者ＩＤ「１９９３」と端末ＩＤ「４２ｂｃ」とを対応付けて記憶する。
【００２２】
図１に戻って、デバイス管理サーバ１０は、端末装置２がアプリケーションを実行する際に、デバイスグループＤＢ９が記憶する情報を用いて、端末装置２がアプリケーションデータを同期させる端末装置であるか否かを判定する。そして、デバイス管理サーバ１０は、端末装置２がアプリケーションの同期対象である場合は、アプリケーションの同期を行うよう端末装置２に通知する。
【００２３】
例えば、デバイス管理サーバ１０は、端末装置２がアプリケーションを実行している際に、端末装置３からアプリケーションを同期させるか否かの問い合わせを受信する。すると、デバイス管理サーバ１０は、デバイスグループＤＢ９を参照し、端末装置２の端末ＩＤと端末装置３の端末ＩＤとが同一の端末所有者ＩＤと対応付けられているか否かを判定する。
【００２４】
そして、デバイス管理サーバ１０は、端末装置２の端末ＩＤと端末装置３の端末ＩＤとが同一の端末所有者ＩＤと対応付けられている場合は、端末装置３に対して、アプリケーションを同期するよう指示する同期判定情報を送信する。このように、アプリケーションを同期するよう指示する同期判定情報を受信した場合は、端末装置３は、アプリケーション管理サーバ１２に対して、アプリケーションデータの同期を求める接続要求を送信する。
【００２５】
一方、デバイス管理サーバ１０は、端末装置２の端末ＩＤと端末装置３の端末ＩＤとが同一の端末所有者ＩＤと対応付けられていない場合は、端末装置３に対して、アプリケーションを同期せずともよい旨を指示する同期判定情報を送信する。このように、アプリケーションを同期せずともよい旨を指示する同期判定情報を受信した場合は、端末装置３は、アプリケーション管理サーバ１２に対して接続要求を送信せずに、自装置が記憶するアプリケーションデータを用いて、分散実行環境６とアプリケーションを分散実行する。
【００２６】
アプリケーションＤＢ１１は、通常、各端末装置２〜４が自装置内のローカルストレージ内に保持するアプリケーションデータを各端末装置間で同期させるために保持するストレージサーバである。例えば、アプリケーションＤＢ１１は、各端末装置２〜４がＡｎｄｒｏｉｄ（登録商標）  ＯＳ（Operating  System）を稼動させ、「Offloading  Android  Applications  to  the  Cloud  without  Customizing  Android」（非特許文献１）を利用した技術を用いてアプリケーションを分散実行する場合は、各端末装置２〜４内で動作するアプリケーションに対し、割り当てられたファイルストレージの内容をアプリケーションデータとして保持する。
【００２７】
また、例えば、アプリケーションＤＢ１１は、各端末装置２〜４が「Executing  Client-Side  Web  Workers  in  the  Cloud」（非特許文献２）を利用した技術を用いてアプリケーションを分散実行する場合は、各端末装置２〜４が実行するＷｅｂサービスに関し、各端末装置２〜４に対して発行されたクッキーの情報および各端末装置２〜４がアプリケーションを実行する際に用いるローカルストレージの内容をアプリケーションデータとして保持する。
【００２８】
なお、アプリケーションＤＢ１１は、各アプリケーションデータを、同期対象となる端末装置の所有者を示す端末所有者ＩＤと対応付けて記憶する。すなわち、アプリケーションＤＢ１１は、アプリケーションデータを同期させる端末装置の組ごとに、アプリケーションデータを記憶する。
【００２９】
また、アプリケーションＤＢ１１は、アプリケーションの操作権を管理するための操作権管理情報を記憶する。例えば、アプリケーションＤＢ１１は、端末所有者ＩＤとアプリケーションを操作中の端末装置を示す端末ＩＤとを対応付けた操作権管理情報を記憶している。
【００３０】
図１に戻り、アプリケーション管理サーバ１２は、各端末装置２〜４のアプリケーションデータを同期させる。例えば、アプリケーション管理サーバ１２は、端末装置２から接続要求を受信すると、端末装置２の所有者を示す端末所有者ＩＤと対応付けられた端末ＩＤをアプリケーションＤＢ１１が記憶する操作権管理情報から検索する。
【００３１】
そして、アプリケーション管理サーバ１２は、操作権管理情報から端末装置２の所有者を示す端末所有者ＩＤと対応付けられた端末ＩＤを検出しなかった場合は、端末装置２の所有者を示す端末所有者ＩＤと対応付けられたアプリケーションデータをアプリケーションＤＢ１１から取得する。すなわち、アプリケーション管理サーバ１２は、端末装置２の所有者がいずれかの端末装置で実行していた際のアプリケーションデータをアプリケーションＤＢ１１から取得する。
【００３２】
その後、アプリケーション管理サーバ１２は、取得したアプリケーションデータを端末装置２に送信することで、端末装置２のローカルストレージの同期を行う。そして、アプリケーション管理サーバ１２は、端末装置２がアプリケーションを操作中であることを示す操作権管理情報として、端末装置２の所有者を示す端末所有者ＩＤと、端末装置２の端末ＩＤとをアプリケーションＤＢ１１に格納する。
【００３３】
また、アプリケーション管理サーバ１２は、操作権管理情報から端末装置２の所有者を示す端末所有者ＩＤと対応付けられた端末ＩＤを検出した場合、検出した端末ＩＤが示す端末装置に対して、操作権の剥奪を通知する。そして、アプリケーション管理サーバ１２は、操作権を剥奪した端末装置からアプリケーションデータを取得し、取得したアプリケーションデータと、操作権を剥奪した端末装置の所有者を示す端末所有者ＩＤとを対応付けてアプリケーションＤＢ１１に格納する。
【００３４】
その後、アプリケーション管理サーバ１２は、端末装置２に対して、操作権を剥奪した端末装置から取得したアプリケーションデータを送信することで、端末装置２のローカルストレージを同期させる。また、アプリケーション管理サーバ１２は、端末装置２の所有者を示す端末所有者ＩＤと端末装置２の端末ＩＤとを操作権管理情報としてアプリケーションＤＢ１１に格納する。
【００３５】
また、アプリケーション管理サーバ１２は、アプリケーションを実行中の端末装置から、任意のタイミングでアプリケーションデータを取得する。例えば、アプリケーション管理サーバ１２は、所定の時間間隔で、アプリケーションデータを取得する。また、例えば、アプリケーション管理サーバ１２は、アプリケーションＤＢ１１へ格納対象となっているデータの追加や削除及び更新等の実行を監視し、データの追加や削除及び更新等が実行された場合は、アプリケーションを実行中の端末装置から、データの追加や削除及び更新等が実行された後のアプリケーションデータを取得する。そして、アプリケーション管理サーバ１２は、取得したアプリケーションデータと、アプリケーションを実行中の端末装置の所有者を示す端末所有者ＩＤとをアプリケーションＤＢ１１に格納する。
【００３６】
また、アプリケーション管理サーバ１２は、端末装置２〜４と分散実行環境６とがアプリケーションの分散実行を行うことができるよう、必要に応じてアプリケーションＤＢ１１に格納されたアプリケーションデータを分散実行環境６と同期させてもよい。
【００３７】
［端末装置２の機能構成］
次に、図３を用いて、端末装置２が有する機能構成について説明する。図３は、第１の実施形態に係る端末装置の機能構成を説明する図である。図３に示す例では、端末装置２は、通信部１３、入力部１４、表示部１５、制御部１６、記憶部２１を有する。また、制御部１６は、問い合わせ部１７、判定部１８、同期部１９、分散実行部２０を有する。また、記憶部２１は、同期判定情報２２、アプリケーションデータ２３を記憶する。
【００３８】
同期判定情報２２は、端末装置２がアプリケーションＤＢ１１に記憶されたアプリケーションデータと、アプリケーションデータ２３との同期を行うか否かを判定するための情報であり、端末装置２がデバイス管理サーバ１０から受信する情報である。また、アプリケーションデータ２３は、端末装置２がアプリケーションを分散実行環境６と分散実行する際に用いるデータである。
【００３９】
通信部１３は、ネットワーク５を介して、デバイス管理サーバ１０、アプリケーション管理サーバ１２および分散実行環境６と通信を行う通信装置である。また、入力部１４は、端末装置２に対して各種情報を入力するための入力装置であり、例えば、キーボードやマウス、タッチパネル等である。また、表示部１５は、端末装置２によるアプリケーションの実行結果等を表示するための表示装置であり、例えば、ディスプレイやタッチパネル等である。
【００４０】
問い合わせ部１７は、デバイス管理サーバ１０に対して、アプリケーションを同期させるか問い合わせを行う。具体的には、問い合わせ部１７は、端末装置２がアプリケーションを実行する際に、通信部１３を介して、アプリケーションを同期させるか否かの問い合わせをデバイス管理サーバ１０に送信する。詳細には、問い合わせ部１７は、端末装置２の端末ＩＤを含む問い合わせをデバイス管理サーバ１０に送信する。
【００４１】
この結果、問い合わせ部１７は、デバイス管理サーバ１０からアプリケーションの同期の可否を示す同期判定情報を受信する。そして、問い合わせ部１７は、同期判定情報２２を記憶部２１に格納する。
【００４２】
判定部１８は、同期判定情報２２に基づいて、アプリケーションデータの同期を行うか否かを判定する。例えば、判定部１８は、記憶部２１に格納された同期判定情報２２の読み出しを行う。そして、判定部１８は、読み出した同期判定情報がアプリケーションデータの同期を求めている場合は、同期部１９にアプリケーションデータの同期を指示する。一方、判定部１８は、読み出した同期判定情報がアプリケーションデータを同期せずともよい旨を示す場合は、分散実行部２０に対して、アプリケーションの実行を指示する。
【００４３】
なお、上述した例では、判定部１８が、デバイス管理サーバ１０による判定結果に従って、アプリケーションの同期を行うか否かを判定する例について説明した。しかしながら、実施例はこれに限定されるものではない。すなわち、判定部１８は、デバイス管理サーバ１０から受信した同期判定情報２２だけではなく、例えば、端末装置２がアプリケーションを新規に実行する場合や、他の端末装置が実行したアプリケーションの状態を引き継がずに実行する場合には、同期判定情報２２が同期を求める場合であっても、同期部１９にアプリケーションデータの同期を指示せず、分散実行部２０にアプリケーションの実行を指示してもよい。
【００４４】
同期部１９は、アプリケーションデータ２３の同期を行う。例えば、同期部１９は、判定部１８からアプリケーションデータの同期の指示を受信すると、アプリケーション管理サーバ１２に対し、端末装置２の端末ＩＤと端末所有者ＩＤとを含む接続要求を送信し、アプリケーションＤＢ１１が記憶するアプリケーションデータを取得する。そして、同期部１９は、受信したアプリケーションデータをアプリケーションデータ２３として、記憶部２１に格納し、分散実行部２０に、アプリケーションの実行を指示する。
【００４５】
また、同期部１９は、端末装置２がアプリケーションを実行している場合は、一定の時間間隔、もしくはアプリケーションデータの追加や削除及び更新等が発生した際に、アプリケーションデータ２３を記憶部２１から読み出し、読み出したアプリケーションデータ２３をアプリケーション管理サーバ１２に送信する。また、同期部１９は、端末装置２がアプリケーションの実行を終了した場合には、アプリケーションデータ２３を記憶部２１から読み出し、読み出したアプリケーションデータ２３を操作終了通知とともにアプリケーション管理サーバ１２に送信する。
【００４６】
分散実行部２０は、分散実行環境６と協調して、アプリケーションの実行を行う。詳細には、分散実行部２０は、判定部１８、または同期部１９からアプリケーションの実行指示を受信した場合は、アプリケーションデータ２３の読み出しを行う。そして、分散実行部２０は、読み出したアプリケーションデータ２３を用いて、分散実行環境６とアプリケーションを分散実行する。
【００４７】
なお、分散実行部２０は、アプリケーションを分割した各スレッドの複雑さや、端末装置２が有する演算処理装置の処理能力等に応じて、サーバ７、８に実行を委譲する委譲スレッドを選択し、委譲スレッドを分散実行環境６に送信する。ここで、分散実行部２０は、端末装置２の処理能力のみならず、例えば通信状態やスレッドの内容等、任意の情報を用いて委譲スレッドを選択することができる。
【００４８】
また、分散実行部２０は、アプリケーション管理サーバ１２から、操作権の剥奪の通知を受信すると、アプリケーションの実行を終了する。例えば、分散実行部２０は、操作権の剥奪の通知を受信すると、イベントハンドラを全て一時的に上書きする等によってアプリケーションが意図するイベントハンドラまで到達しないようにすることで、アプリケーションに対する入力を無効化する。そして、分散実行部２０は、アプリケーションを終了させる。
【００４９】
［デバイス管理サーバ１０の機能構成］
次に、図４を用いて、デバイス管理サーバ１０の機能構成について説明する、図４は、第１の実施形態に係るデバイス管理サーバの機能構成を説明する図である。図４に示す例では、デバイス管理サーバ１０は、通信部３１、認証部３２、同期判定部３３、同期判定情報送信部３４を有する。なお、通信部３１は、図３に示した通信部１３と同様の機能を発揮するものとして、説明を省略する。
【００５０】
認証部３２は、あらかじめ設定された任意の認証方法を用いて、各端末装置２〜４の認証を行う。例えば、認証部３２は、端末装置２から問い合わせを受信すると、パスワード方式等任意の認証方法を用いて端末装置２の認証を行う。そして、認証部３２は、端末装置２の認証が成功した場合は、端末装置２から受信した問い合わせを同期判定部３３に出力する。
【００５１】
同期判定部３３は、認証部３２から受信した問い合わせの送信元となる端末装置が、アプリケーションの同期を行うか否かを判定する。具体的には、同期判定部３３は、問い合わせを受信すると、受信した問い合わせに含まれる端末ＩＤを取得し、取得した端末ＩＤと対応付けられた端末所有者ＩＤをデバイスグループＤＢ９から識別する。そして、同期判定部３３は、識別した端末所有者ＩＤが複数の端末ＩＤと対応付けられているか否かを判定する。
【００５２】
その後、同期判定部３３は、識別した端末所有者ＩＤが複数の端末ＩＤと対応付けられていると判定した場合は、アプリケーションデータの同期を要する旨の同期判定情報を同期判定情報送信部３４に出力する。一方、同期判定部３３は、識別した端末所有者ＩＤが複数の端末ＩＤと対応付けられていないと判定した場合は、同期せずともよい旨の同期判定情報を同期判定情報送信部３４に出力する。
【００５３】
同期判定情報送信部３４は、同期判定部３３から同期判定情報を受信すると、問い合わせ元の端末装置に対して、同期判定情報を送信する。
【００５４】
［アプリケーション管理サーバ１２の機能構成］
次に、図５を用いて、アプリケーション管理サーバ１２の機能構成について説明する。図５は、第１の実施形態に係るアプリケーション管理サーバの機能構成を説明する図である。図５に示す例では、アプリケーション管理サーバ１２は、通信部４１、操作権制御部４２、同期部４３を有する。なお、通信部４１は、図３に示す通信部１３と同様の機能を発揮するものとして、説明を省略する。
【００５５】
操作権制御部４２は、操作権の制御を行う。例えば、操作権制御部４２は、端末装置２から接続要求を受信すると、受信した接続要求から端末装置２の端末ＩＤと端末所有者情報とを取得する。そして、操作権制御部４２は、取得した端末所有者ＩＤと対応付けられた端末ＩＤをアプリケーションＤＢ１１が記憶する操作権管理情報から取得する。その後、操作権制御部４２は、接続要求から取得した端末所有者ＩＤと操作権管理情報から取得した端末ＩＤを同期部４３に出力するとともに、操作権の剥奪を通知するよう同期部４３に指示する。
【００５６】
また、操作権制御部４２は、操作権管理情報から取得した端末ＩＤが示す端末装置、すなわち操作権の剥奪を通知した端末装置からアプリケーションデータと操作終了通知を受信すると、以下の処理を実行する。まず、操作権制御部４２は、操作終了通知とアプリケーションデータとを同期部４３に出力する。そして、操作権制御部４２は、端末装置２の端末所有者情報と端末ＩＤとを対応付けた操作権管理情報をアプリケーションＤＢ１１に格納する。そして、操作権制御部４２は、端末装置２の端末所有者情報と端末ＩＤとを同期部４３に出力するとともに、アプリケーションデータの同期を行うよう指示する。
【００５７】
また、操作権制御部４２は、操作権管理情報に端末装置２から受信した端末所有者ＩＤと端末ＩＤとが対応付けられていない場合は、端末装置２の端末所有者情報と端末ＩＤとを同期部４３に出力するとともに、アプリケーションデータの同期を行うよう指示する。
【００５８】
同期部４３は、アプリケーションＤＢ１１と各端末装置２〜４との同期を行う。例えば、同期部４３は、端末所有者ＩＤと端末ＩＤとを操作権の剥奪を通知する旨の指示とともに操作権制御部４２から受信する。このような場合は、同期部４３は、受信した端末ＩＤが示す端末装置に対して、操作権の剥奪を通知する。この結果、同期部４３は、操作権制御部４２を介して、アプリケーションの実行を終了した端末装置から操作終了通知とともにアプリケーションデータを受信する。そして、同期部４３は、受信したアプリケーションデータとアプリケーションデータの送信元となる端末装置の端末所有者ＩＤとを対応付けてアプリケーションＤＢ１１に格納する。
【００５９】
また、例えば、同期部４３は、端末装置２の端末所有者情報と端末ＩＤとをアプリケーションデータの同期を行う旨の指示とともに、操作権制御部４２から受信する。すると、同期部４３は、受信した端末所有者情報と対応付けられたアプリケーションデータをアプリケーションＤＢ１１から読み出す。そして、同期部４３は、読み出したアプリケーションデータを操作権制御部４２から受信した端末ＩＤが示す端末装置、すなわち端末装置２へ送信する。
【００６０】
なお、同期部４３は、各端末装置２〜４がアプリケーション実行中に所定の時間間隔で送信したアプリケーションデータを受信する。すると、同期部４３は、アプリケーションデータの送信元となる端末装置の端末所有者ＩＤと受信したアプリケーションデータとを対応付けたアプリケーションＤＢ１１に格納する。
【００６１】
［情報処理システム１が実行する処理の流れ］
以下、図６、図７を用いて、情報処理システム１が実行する処理の流れについて説明する。まず、図６を用いて、端末装置２がアプリケーションを起動させた際に情報処理システム１が実行する処理の流れの概要について説明する。図６は、第１の実施形態に係る情報処理システムがアプリケーション起動時に実行する処理の流れを説明するためのシーケンス図である。
【００６２】
まず、端末装置２がアプリケーションを起動する（ステップＳ１）。すると、端末装置２は、問い合わせをデバイス管理サーバ１０へ送信する（ステップＳ２）。すると、デバイス管理サーバ１０は、端末装置２の認証を実行し（ステップＳ３）、デバイスグループＤＢ９を参照し、端末装置２とアプリケーションデータの同期を行うか否かを判定する（ステップＳ４）。そして、デバイス管理サーバ１０は、判定結果として同期判定情報を端末装置２へ送信する（ステップＳ５）。
【００６３】
一方、端末装置２は、受信した同期判定情報を用いて、アプリケーションデータの同期を行うか否かを判断する（ステップＳ６）。ここで、端末装置２は、アプリケーションデータの同期を行う場合は（ステップＳ６肯定）、接続要求をアプリケーション管理サーバ１２に送信する（ステップＳ７）。この結果、アプリケーション管理サーバ１２は、アプリケーションＤＢ１１からアプリケーションデータを取得し、取得したアプリケーションデータを端末装置２へ送信することで、端末装置２のローカルストレージとアプリケーションＤＢ１１とを同期させる（ステップＳ８）。そして、端末装置２は、分散実行環境６とともに、アプリケーションの分散処理を行う（ステップＳ９）。
【００６４】
一方、端末装置２は、アプリケーションデータの同期を行わない場合は（ステップＳ６否定）、自装置内のローカルストレージに接続し（ステップＳ１０）、ローカルストレージ内のアプリケーションデータを用いてアプリケーションを分散実行する（ステップＳ１１）。
【００６５】
次に、図７を用いて、アプリケーションを実行する端末装置を端末装置２から端末装置３に切り替える際に情報処理システム１が実行する処理の流れについて説明する。図７は、第１の実施形態に係る情報処理システムが端末装置の切替を行う際に実行する処理の流れを説明するためのシーケンス図である。
【００６６】
なお、図７に示す例では、アプリケーションの実行端末を端末装置２から端末装置３に切り替える際に情報処理システム１が実行する処理の流れについて記載した。また、図７に示す例では、各端末装置２、３を認証する処理については、記載を省略した。また、図７に示す例では、端末装置２、３が同期を行わない場合の処理の流れについては、記載を省略した。
【００６７】
例えば、図７に示す例では、端末装置２は、アプリケーションを起動し（ステップＳ１０１）、デバイス管理サーバ１０に問い合わせを送信する（ステップＳ１０２）。すると、デバイス管理サーバ１０は、端末装置２とアプリケーションデータの同期を行うか判定し（ステップＳ１０３）、同期を行うと判定した場合は（ステップＳ１０３肯定）、同期判定情報を端末装置２に送信する。詳細には、デバイス管理サーバ１０は、端末装置２の端末ＩＤと対応付けられた端末所有者ＩＤが、複数の端末ＩＤと対応付けられているか判定する。そして、デバイス管理サーバ１０は、端末装置２の端末ＩＤと対応付けられた端末所有者ＩＤが、複数の端末ＩＤと対応付けられている場合は、同期を求める同期判定情報を端末装置２へ送信する。
【００６８】
すると、端末装置２は、同期判定情報に従って同期するか判断し（ステップＳ１０４）、接続要求をアプリケーション管理サーバ１２へ送信する（ステップＳ１０５）。次に、アプリケーション管理サーバ１２は、接続要求を端末装置２から受信すると、アプリケーションＤＢ１１が記憶するアプリケーションデータを端末装置２へ送信することで、アプリケーションＤＢ１１と端末装置２のローカルストレージとを同期させる（ステップＳ１０６）。そして、端末装置２は、アプリケーションデータの同期後、分散実行環境６とアプリケーションを分散実行する（ステップＳ１０７）。
【００６９】
次に、端末装置３は、アプリケーションを起動すると（ステップＳ１０８）、デバイス管理サーバ１０に問い合わせを送信する（ステップＳ１０９）。すると、デバイス管理サーバ１０は、端末装置３とアプリケーションデータの同期を行うか判定し（ステップＳ１１０）、同期すると判定した場合は（ステップＳ１１０肯定）、同期判定情報を端末装置３に送信する。詳細には、デバイス管理サーバ１０は、端末装置３の端末ＩＤと対応付けられた端末所有者ＩＤが、複数の端末ＩＤと対応付けられているか判定する。そして、デバイス管理サーバ１０は、端末装置３の端末ＩＤと対応付けられた端末所有者ＩＤが、複数の端末ＩＤと対応付けられている場合は、同期を求める同期判定情報を端末装置３へ送信する。
【００７０】
すると、端末装置３は、同期判定情報に従って同期を行うか否かを判断し（ステップＳ１１１）、接続要求をアプリケーション管理サーバ１２に送信する（ステップＳ１１２）。このような場合には、アプリケーション管理サーバ１２は、端末装置２に対して操作権の剥奪を通知する（ステップＳ１１３）。また、端末装置２は、操作権の剥奪の通知を受信した場合は、実行中のアプリケーションに対する入力を無効化する（ステップＳ１１４）。そして、端末装置２は、アプリケーションデータと操作終了通知をアプリケーション管理サーバ１２に送信する（ステップＳ１１５）。
【００７１】
一方、アプリケーション管理サーバ１２は、端末装置２からアプリケーションデータと操作終了通知を受信すると、端末装置２から受信したアプリケーションデータをアプリケーションＤＢ１１に格納し、アプリケーションＤＢ１１と端末装置３のローカルストレージとを同期させる（ステップＳ１１６）。そして、端末装置３は、分散実行環境６とアプリケーションを分散実行する（ステップＳ１１７）。
【００７２】
［情報処理システム１の効果］
上述したように、情報処理システム１は、分散実行環境６と協調してアプリケーションを実行する端末装置２〜４のうち、アプリケーションを同期させる端末装置を示す端末ＩＤを記憶する。そして、情報処理システム１は、端末装置２がアプリケーションを実行している際に端末装置３がアプリケーションを実行する場合は、端末装置３の端末ＩＤをデバイスグループＤＢ９が記憶しているか判定する。そして、情報処理システム１は、端末装置３の端末ＩＤをデバイスグループＤＢ９が記憶している場合は、端末装置２からアプリケーションデータを取得する。その後、情報処理システム１は、端末装置２から取得したアプリケーションデータを端末装置３へ送信する。
【００７３】
例えば、情報処理システム１は、あるユーザが端末装置２がアプリケーションを分散実行している際に、端末装置３を立ち上げてアプリケーションを起動させた場合は、端末装置２のアプリケーションデータを取得し、取得したアプリケーションデータを端末装置３に送信する。この結果、端末装置３は、アプリケーションを継続して実行することができる。このため、情報処理システム１は、同一ユーザが複数の利用環境を使い分けることができるアプリケーションの実行にあたり、ユーザに意識させることなく利用環境をシームレスに切り替えることができる。
【００７４】
また、情報処理システム１は、端末装置３の端末ＩＤがデバイスグループＤＢ９に記憶されている場合は、端末装置２に操作権の剥奪を通知し、アプリケーションに対する操作を停止させる。このため、情報処理システム１は、アプリケーションを実行する端末装置が端末装置２から端末装置３に切り替わった際も、各端末装置２、３による操作がアプリケーションに反映されるのを防ぐことができる。
【００７５】
また、情報処理システム１は、各端末装置２〜４の端末ＩＤと、各端末装置の所有者を示す端末所有者ＩＤとを対応付けて記憶する。また、情報処理システム１は、端末装置２がアプリケーション実行中に、端末装置３がアプリケーションを起動する際は、端末装置３の端末ＩＤと対応付けられた端末所有者ＩＤが複数の端末ＩＤと対応付けられているか否かを判定する。
【００７６】
そして、情報処理システム１は、端末装置３の端末ＩＤと対応付けられた端末所有者ＩＤが複数の端末ＩＤと対応付けられている場合は、端末装置２からアプリケーションデータを取得し、取得したアプリケーションデータを端末装置３へ送信する。このため、情報処理システム１は、各端末装置のアプリケーションデータを各端末装置の所有者ごとに同期させることができる。
【００７７】
（第２の実施形態）
上述した実施形態では、情報処理システム１は、アプリケーションを継続して実行する端末装置を各端末装置の所有者ごとに管理し、所有者ごとに各端末装置のアプリケーションデータを同期していた。しかしながら、実施例はこれに限定されるものではない。例えば、第２の実施形態に係る情報処理システム１ａは、端末装置とアプリケーションとの組をグループ分けし、同一グループの端末装置とアプリケーションとの組については、アプリケーションデータの同期を行う。
【００７８】
例えば、図８は、第２の実施形態に係る情報処理システムがアプリケーションデータの同期を行うグループを説明するための図である。例えば、図８に示す例では、端末装置の所有者であるユーザ、アプリケーションの同期を行うグループのグループ識別子、各所有者が所有するデバイス、各デバイスが実行するアプリケーションを記載した。
【００７９】
例えば図８に示す例では、ユーザ「さとう」は、アプリケーション「（１）」〜「（３）」を実行するデバイス「Ａ」、アプリケーション「（２）」、「（３）」を実行するデバイス「Ｂ」、アプリケーション「（１）」、「（３）」を実行するデバイス「Ｃ」を所有する。また、ユーザ「すずき」は、アプリケーション「（２）」を実行するデバイス「Ｄ」〜「Ｆ」と、アプリケーション「（１）」、「（２）」を実行するデバイス「Ｇ」とを所有する。また、ユーザ「かとう」は、アプリケーション「（２）」、「（３）」を実行するデバイス「Ｈ」と、アプリケーション「（３）」を実行するデバイス「Ｉ」とを所有する。また、ユーザ「いとう」は、アプリケーション「（３）」を実行するデバイス「Ｊ」と、アプリケーション「（１）」を実行するデバイス「Ｋ」とを所有する。
【００８０】
ここで、ユーザ「さとう」が有する各デバイス「Ａ」〜「Ｃ」と、各デバイス「Ａ」〜「Ｃ」が実行するアプリケーションの組は、グループ「α」およびグループ「β」に組み分けされている、また、ユーザ「かとう」が有する各デバイス「Ｈ」、「Ｉ」と、各デバイス「Ｈ」、「Ｉ」が実行するアプリケーションの組は、グループ「α」に組み分けされている。
【００８１】
このような場合には、情報処理システム１は、切替元のデバイスおよび切替元のデバイスが実行しているアプリケーションとの組と、切替先のデバイスおよび切替先のデバイスが実行するアプリケーションの組とが同一のグループに組み分けられておりかつ、各デバイスが実行するアプリケーションが同一のアプリケーションである場合に、アプリケーションデータの同期を行う。
【００８２】
例えば、情報処理システム１は、ユーザ「さとう」のデバイス「Ａ」がアプリケーション「（２）」を実行中に、ユーザ「さとう」のデバイス「Ｂ」がアプリケーション「（２）」を実行する場合は、アプリケーションデータの同期を行う。また、情報処理システム１は、ユーザ「さとう」のデバイス「Ｂ」がアプリケーション「（２）」を実行中に、ユーザ「かとう」のデバイス「Ｈ」がアプリケーション「（２）」を実行する場合は、アプリケーションデータの同期を行う。一方、情報処理システム１は、ユーザ「さとう」のデバイス「Ｂ」がアプリケーション「（２）」を実行中にユーザ「かとう」のデバイス「Ｉ」がアプリケーション「（３）」を実行する場合は、アプリケーションが異なるので、アプリケーションデータの同期を行わない。
【００８３】
以下、上述した処理を行うため、第２の実施形態に係るデバイス管理サーバ１０ａおよびアプリケーション管理サーバ１２ａが実行する処理について説明する。まず、図９を用いて、デバイス管理サーバ１０ａについて説明する。図９は、第２の実施形態に係るデバイス管理サーバの機能構成を説明するための図である。なお、図９に示す各部のうち、図４に示す各部と同様の機能を発揮するものについては、同一の符号を付し、説明を省略する。
【００８４】
［デバイス管理サーバ１０ａの機能構成］
図９に示すように、デバイス管理サーバ１０ａは、同期判定部３３ａを有する。同期判定部３３ａは、デバイスグループＤＢ９ａが記憶する情報を用いて、各端末装置２〜４のアプリケーションデータを同期させるか否かを判定する。
【００８５】
ここで、図１０を用いて、デバイスグループＤＢ９ａが記憶する情報の一例について説明する。図１０は、第２の実施形態に係るデバイスグループＤＢの一例を説明するための図である。図１０に示す例では、デバイスグループＤＢ９ａは、端末ＩＤと協調動作対象アプリケーションとグループＩＤとを対応付けて記憶する。ここで、協調動作対象アプリケーションとは、各端末装置２〜４が実行するアプリケーションのうち、分散実行環境６と分散実行するアプリケーションを示すアプリケーションＩＤである。
【００８６】
例えば、図１０に示す例では、デバイスグループＤＢ９ａは、端末ＩＤ「ａ０１ｄ」と協調動作対象アプリケーションのＩＤ「４ｅ２ａ」とグループＩＤ「α」とを対応付けて記憶する。また、デバイスグループＤＢ９ａは、端末ＩＤ「９ｅａａ」と協調動作対象アプリケーションのＩＤ「４ｅ２ａ」とグループＩＤ「α」とを対応付けて記憶する。
【００８７】
また、デバイスグループＤＢ９ａは、端末ＩＤ「９ｅａａ」と協調動作対象アプリケーションのＩＤ「７１９４」とグループＩＤ「β」とを対応付けて記憶する。また、デバイスグループＤＢ９ａは、端末ＩＤ「０１ｆｆ」と協調動作対象アプリケーションのＩＤ「４ｅ２ａ」とグループＩＤ「β」とを対応付けて記憶する。また、デバイスグループＤＢ９ａは、端末ＩＤ「０１ｆｆ」と協調動作対象アプリケーションのＩＤ「７１９４」とグループＩＤ「β」とを対応付けて記憶する。ここで、端末ＩＤと協調動作対象アプリケーションのＩＤとの組は、デバイスグループＤＢ９ａ上において一意の組み合わせとなる。
【００８８】
図９に戻り、同期判定部３３ａは、例えば、端末装置２から、端末ＩＤと実行するアプリケーションを示すアプリケーションＩＤとが含まれた問い合わせ情報を受信する。すると、同期判定部３３ａは、受信した問い合わせ情報から端末ＩＤとアプリケーションＩＤとを取得し、取得した端末ＩＤとアプリケーションＩＤとの組に対応付けられたグループＩＤをデバイスグループＤＢ９ａから検索する。そして、同期判定部３３ａは、検索したグループＩＤが他の端末ＩＤとアプリケーションＩＤとの組に対応付けられている場合は、同期を求める同期判定情報を同期判定情報送信部３４に出力する。
【００８９】
すなわち、同期判定部３３ａは、問い合わせに含まれる端末ＩＤとアプリケーションＩＤとの組が、アプリケーションデータの同期を行う対象である場合は、同期を求める同期判定情報を同期判定情報送信部３４に出力する。一方、同期判定部３３ａは、検索したグループＩＤが他の端末ＩＤとアプリケーションＩＤとの組に対応付けられていない場合は、同期せずともよい旨の同期判定情報を出力する。また、同期判定部３３ａは、問い合わせに含まれる端末ＩＤとアプリケーションＩＤとの組がデバイスグループＤＢ９ａに格納されていない場合は、同期せずともよい旨の同期判定情報を出力する。
【００９０】
［アプリケーション管理サーバ１２ａの機能構成］
次に、図１１を用いて、第２の実施形態に係るアプリケーション管理サーバ１２ａについて説明する。図１１は、第２の実施形態に係るアプリケーション管理サーバを説明する図である。なお、図１１に示す各部のうち、図５に示す各部と同様の機能を発揮するものについては、同一の符号を付し、説明を省略する。
【００９１】
図１１に示す例では、アプリケーション管理サーバ１２ａは、操作権制御部４２ａを有する。操作権制御部４２ａは、操作権制御部４２と同様に、アプリケーションの操作権を制御する。例えば、操作権制御部４２ａは、アプリケーションごとに、アプリケーションを実行中の端末装置を示す端末ＩＤと、アプリケーションの実行を求める端末装置を示す端末ＩＤとを対応付けた操作権管理情報をアプリケーションＤＢ１１に格納する。
【００９２】
ここで、図１２は、第２の実施形態に係る操作権管理情報の一例を説明する図である。図１２に示す例では、操作権管理情報には、アプリケーションを示すアプリケーションＩＤと、アプリケーションを実行する端末装置の端末ＩＤおよびアプリケーションの実行を求める端末装置の端末ＩＤとが対応付けて格納されている。
【００９３】
詳細には、図１２に示す操作権管理情報には、アプリケーションＩＤ「４ｅ２ａ」に端末ＩＤ「ａ０１ｄ」、「９ｅａａ」が対応付けられており、アプリケーションＩＤ「７１９４」に端末ＩＤ「０１ｆｆ」が対応付けられている。このような操作権管理情報は、アプリケーションＩＤ「４ｅ２ａ」が示すアプリケーションを端末ＩＤ「ａ０１ｄ」が示す端末装置が実行中であり、端末ＩＤ「９ｅａａ」が示す端末装置が実行待ちである旨を示す。また、操作権管理情報は、アプリケーションＩＤ「７１９４」が示すアプリケーションを端末ＩＤ「０１ｆｆ」が示す端末装置が実行中である旨を示す。
【００９４】
図１１に戻り、操作権制御部４２ａは、端末装置２から端末ＩＤと端末装置２が実行するアプリケーションＩＤとを含む接続要求を受信する。このような場合は、操作権制御部４２ａは、接続要求から端末ＩＤとアプリケーションＩＤとを取得し、操作権管理情報に接続要求から取得したアプリケーションＩＤと端末ＩＤとが対応付けられているか否かを判定する。
【００９５】
そして、操作権制御部４２ａは、操作権管理情報に接続要求から取得したアプリケーションＩＤと端末ＩＤとが対応付けられている場合は、接続要求から取得したアプリケーションＩＤに対応付けられた端末ＩＤの末尾に接続要求から取得した端末ＩＤを追加する。また、操作権制御部４２ａは、接続要求の送信元となる端末装置に対して、他の端末装置がアプリケーションを起動中である旨を通知する。
【００９６】
なお、端末装置２は、アプリケーション管理サーバ１２ａから他の端末装置がアプリケーションを起動中である旨の通知を受信すると、起動したアプリケーションの入力を無効化する。ここで、端末装置２は、アプリケーションの入力を無効化した後に、他の端末装置が分散実行環境６へ送信した委譲プロセスの一部を実行することで、アプリケーションの分散実行に参加する。
【００９７】
一方、端末装置２は、アプリケーションの実行を終了した場合は、端末装置２の端末ＩＤと、実行を終了したアプリケーションのアプリケーションＩＤとを含む操作終了通知と、アプリケーションデータとをアプリケーション管理サーバ１２ａへ送信する。操作権制御部４２ａは、操作終了通知をアプリケーションデータとを受信すると、受信した操作終了通知とアプリケーションデータとを同期部４３に出力する。
【００９８】
また、操作権制御部４２ａは、操作終了通知からアプリケーションＩＤと端末ＩＤとを取得する。そして、操作権制御部４２ａは、操作権管理情報を参照し、操作終了通知から取得したアプリケーションＩＤと対応付けられた端末ＩＤのうち、先頭の端末ＩＤを削除する。また、操作権制御部４２は、端末ＩＤを削除した結果、新たに先頭となる端末ＩＤを取得する。そして、操作権制御部４２ａは、操作権管理情報から取得した端末ＩＤと操作終了通知から取得したアプリケーションＩＤとを同期部４３に出力するとともに、アプリケーションデータの同期を行うよう指示する。
【００９９】
このように、デバイス管理サーバ１０ａとアプリケーション管理サーバ１２ａとが動作する結果、情報処理システム１ａは、同一グループ内において、同一のアプリケーションを実行する端末同士のアプリケーションデータを同期する。例えば、デバイスグループＤＢ９ａが図１０に示す情報を記憶する場合は、情報処理システム１ａは、端末ＩＤ「ａ０１ｄ」が示す端末装置と、端末ＩＤ「９ｅａａ」が示す端末装置とが、アプリケーションＩＤ「４ｅ２ａ」が示すアプリケーションを実行する際に、アプリケーションデータの同期を行う。また、情報処理システム１ａは、端末ＩＤ「９ｅａａ」が示す端末装置と、端末ＩＤ「０１ｆｆ」が示す端末装置とが、アプリケーションＩＤ「７１９４」が示すアプリケーションを実行する際に、アプリケーションデータの同期を行う。
【０１００】
［情報処理システム１ａの処理の流れ］
次に、図１３を用いて、アプリケーションを実行する端末装置を端末装置２から端末装置３に切り替える際に情報処理システム１ａが実行する処理の流れについて説明する。図１３は、第２の実施形態に係る情報処理システムが端末装置の切替を行う際に実行する処理の流れを説明するためのシーケンス図である。
【０１０１】
なお、図１３に示す例では、アプリケーションの実行端末を端末装置２から端末装置３に切り替える際に情報処理システム１ａが実行する処理の流れについて記載した。また、図１３に示す例では、各端末装置２、３を認証する処理については、記載を省略した。また、図１３に示す例では、端末装置２、３が同期を行わない場合の処理の流れについては、記載を省略した。また、図１３に示すステップＳ２０１〜Ｓ２０４およびステップＳ２０９〜Ｓ２１２の処理は、図７に示すステップＳ１０１〜Ｓ１０４、ステップＳ１０８〜Ｓ１１１の処理と同様の処理であるものとして、説明を省略する。
【０１０２】
例えば、端末装置２は、同期判断の後（ステップＳ２０４）、端末ＩＤとアプリケーションＩＤとを含む接続要求をアプリケーション管理サーバ１２ａに送信する（ステップＳ２０５）。すると、アプリケーション管理サーバ１２ａは、操作権管理情報としてアプリケーションＩＤごとに端末ＩＤの接続順序を記録し（ステップＳ２０６）、アプリケーションＤＢ１１と端末装置２のローカルストレージとを同期させる（ステップＳ２０７）。そして、端末装置２は、アプリケーションデータの同期後、分散実行環境６とアプリケーションを分散実行する（ステップＳ２０８）。
【０１０３】
一方、端末装置３は、同期判断の後（ステップＳ２１２）、端末ＩＤとアプリケーションＩＤとを含む接続要求をアプリケーション管理サーバ１２ａに送信する（ステップＳ２１３）。このような場合には、アプリケーション管理サーバ１２ａは、操作権管理情報としてアプリケーションＩＤごとに端末ＩＤの接続順序を記録する（ステップＳ２１４）。
【０１０４】
ここで、操作権管理情報には、同一のアプリケーションＩＤに端末装置２の端末ＩＤが対応付けられているのでアプリケーション管理サーバ１２ａは、端末装置３に対して他端末がアプリケーション起動中である旨を通知する（ステップＳ２１５）。このため、端末装置３は、アプリケーションの入力を無効化し（ステップＳ２１６）、分散実行に参加する（ステップＳ２１７）。
【０１０５】
一方、端末装置２は、アプリケーションの実行が終了すると、分散実行が終了した旨を分散実行環境６に通知する（ステップＳ２１８）。このような場合は、分散実行環境６は、端末装置２を分散実行環境から切断する（ステップＳ２１９）。その後、端末装置２は、端末装置２のアプリケーションデータと操作終了通知とをアプリケーション管理サーバ１２ａに送信する（ステップＳ２２０）。
【０１０６】
このような場合は、アプリケーション管理サーバ１２ａは、アプリケーションＩＤ毎の端末ＩＤ接続順から選択の端末ＩＤ、すなわち端末装置２の端末ＩＤを削除する（ステップＳ２２１）。そして、アプリケーション管理サーバ１２ａは、アプリケーションＤＢ１１と端末装置３のローカルストレージとを同期させる（ステップＳ２２２）。この結果、端末装置３は、アプリケーションの入力無効化を解除し（ステップＳ２２３）、分散実行を開始する（ステップＳ２２４）。
【０１０７】
［情報処理システム１ａの効果］
上述したように、情報処理システム１ａは、端末ＩＤとアプリケーションＩＤとの組に、アプリケーションデータを同期させるグループを示すグループＩＤとを対応付けて記憶する。また、情報処理システム１ａは、アプリケーションを実行する端末装置の端末ＩＤと実行するアプリケーションのアプリケーションＩＤとの組に対応付けられたグループＩＤが、他の端末ＩＤとアプリケーションＩＤとの組に対応付けられているか否かを判定する。
【０１０８】
その後、情報処理システム１ａは、アプリケーションを実行する端末装置の端末ＩＤと実行するアプリケーションのアプリケーションＩＤとの組に対応付けられたグループＩＤが、他の端末ＩＤとアプリケーションＩＤとの組に対応付けられている場合は、アプリケーションの同期を行う。このため、情報処理システム１ａは、複数の所有者が利用する端末装置間で、アプリケーションの分散実行を行う端末装置の切替をシームレスに行うことができる。また、アプリケーションを実行する端末装置の切替を行った際に、利用者間でのデータ及び操作の同期を意識する必要がなくなり、アプリケーション利用に際するユーザビリティを改善させることができる。
【０１０９】
また、情報処理システム１ａは、処理能力が低廉な端末装置が実行するアプリケーションを分散実行する際に、異なるユーザ同士でアプリケーションの同期を望む利用者の端末装置と、同期を望まない利用者の端末装置とをシステム内に混在させることができる。例えば、図１４は、第２の実施形態に係る情報処理システムの適用例を説明するための図である。
【０１１０】
例えば、処理能力が低廉な端末装置のユーザは、分散実行環境の提供者に対して、利用料を払うことで、分散実行環境を用いたアプリケーションを実行する。ここで、ユーザの中には、異なるユーザ間でアプリケーションの状態を共有したいユーザと、分散実行環境さえあれば十分で、同期を行わなくてもよいユーザとが存在する場合がある。そこで、情報処理システム１ａは、図１４に示す例では、ユーザＡとユーザＢとを同一グループに含めることで、アプリケーションの状態を同期させ、ユーザＣの端末については、アプリケーションの状態を同期させない。
【０１１１】
また、分散実行環境の提供者は、例えば、異なるユーザ同士のアプリケーションデータを同期させるサービスを付加機能として提供してもよい。このような提供を行った場合は、例えば、分散実行環境の提供者は、アプリケーションを同期させるユーザＡとユーザＢに対して負荷機能使用料を上乗せ課金し、ユーザＣに対しては、分散実行環境の使用料のみを課金するといった様態が考えられる。
【０１１２】
また、情報処理システム１ａは、例えば、端末装置２がアプリケーションを実行中に端末装置３がアプリケーションを起動させると、端末装置３にアプリケーションの操作を停止させる。また、情報処理システム１ａは、端末装置２がアプリケーションの実行を終了した後で端末装置２のアプリケーションデータを取得し、取得したアプリケーションデータを端末装置３へ送信する。その後、情報処理システム１ａは、端末装置３にアプリケーションデータの操作を許可する。
【０１１３】
このため、情報処理システム１ａは、複数の所有者が利用する端末装置間で、アプリケーションの分散実行を行う端末装置を切り替える際に、複数の端末装置による同一アプリケーションへの操作を防止することができる。この結果、情報処理システム１ａは、適切にアプリケーションデータの同期を行うことができる。
【０１１４】
（他の実施形態）
これまで第１の実施形態について説明したが、開示する発明は上述した実施形態以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では他の実施形態について説明する。
【０１１５】
（１）各実施形態の組み合わせについて
上述した情報処理システム１は、端末装置２がアプリケーションを実行中に端末装置３がアプリケーションを実行すると、端末装置２の操作権を剥奪した。しかし、実施形態はこれに限定されるものではない。例えば、情報処理システム１は、情報処理システム１ａと同様に、同一アプリケーションに対する接続順序を管理しても良い。
【０１１６】
例えば、アプリケーション管理サーバ１２は、所有者ごとに、接続要求を受信した端末装置の端末ＩＤを順に並べた操作権管理情報をアプリケーションＤＢ１１に格納する。すなわち、アプリケーション管理サーバ１２は、アプリケーションデータを同期させる端末装置ごとに、接続要求を送信した端末装置のキューを操作権管理情報としてアプリケーションＤＢ１１に格納する。そして、アプリケーション管理サーバ１２は、操作権管理情報の先頭となる端末ＩＤが示す端末装置に対して操作権を付与する。
【０１１７】
また、アプリケーション管理サーバ１２は、操作権を付与した端末装置からアプリケーションの操作終了を受信すると、端末装置から最新のアプリケーションデータを取得するとともに、操作権管理情報の先頭となる端末ＩＤを削除する。そして、アプリケーション管理サーバ１２は、新たに操作権管理情報の先頭となる端末ＩＤが示す端末装置に対して、操作権を付与し、取得したアプリケーションデータを送信して同期を行っても良い。
【０１１８】
（２）各装置の構成について
上述した情報処理システム１は、デバイス管理サーバ１０およびアプリケーション管理サーバ１２とを有していた。しかし、実施例はこれに限定されるものではない。例えば、情報処理システム１は、デバイス管理サーバ１０およびアプリケーション管理サーバ１２の機能を発揮する１台の同期サーバを有していても良い。また、情報処理システム１ａも、デバイス管理サーバ１０ａおよびアプリケーション管理サーバ１２ａの機能を発揮する１台の同期サーバを有していてもよい。また、図示した各端末装置２〜４、デバイス管理サーバ１０、１０ａ、アプリケーション管理サーバ１２、１２ａの各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【０１１９】
すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、認証部３２、同期判定部３３、同期判定情報送信部３４を統合してもよい。さらに、各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２０】
また、第１の実施形態および第２の実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１２１】
（３）同期タイミングについて
上述したアプリケーション管理サーバ１２は、所定の時間間隔、もしくは、アプリケーションＤＢ１１へ格納対象となっているデータの追加や削除及び更新等が発生した場合は、アプリケーションを実行中の端末装置からアプリケーションデータを取得した。また、同期部１９は、一定の時間間隔、もしくはアプリケーションデータの追加や削除及び更新等が発生した際に、アプリケーションデータ２３を記憶部２１から読み出し、読み出したアプリケーションデータ２３をアプリケーション管理サーバ１２に送信した。しかしながら、実施形態は、これに限定されるものではない。
【０１２２】
すなわち、同期を行う最適なタイミングについては、情報処理システム１の形態や、各端末装置２〜４、およびサーバ７、８が実行するアプリケーションの処理内容等によって異なる。このため、アプリケーション管理サーバ１２は、各端末装置２〜４と任意のタイミングでアプリケーションデータの同期を行ってもよい。
【０１２３】
（４）プログラム
また、上記実施形態において説明したデバイス管理サーバ１０およびアプリケーション管理サーバ１２が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施例１に係るデバイス管理サーバ１０およびアプリケーション管理サーバ１２が実行する処理をコンピュータが実行可能な言語で記述したストレージプログラムを作成することもできる。この場合、コンピュータがストレージプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるストレージプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたストレージプログラムをコンピュータに読み込ませて実行することにより上記第１の実施形態と同様の処理を実現してもよい。以下に、図４、図５に示したデバイス管理サーバ１０およびアプリケーション管理サーバ１２と同様の機能を実現するアプリケーション管理プログラムを実行するコンピュータの一例を説明する。
【０１２４】
図１５は、本実施形態に係るアプリケーション管理プログラムを実行するコンピュータ１０００を示す図である。図１５に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【０１２５】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【０１２６】
ここで、図１５に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。本実施形態に係るアプリケーション管理プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０９０に記憶される。具体的には、上記実施例で説明した同期判定部３３が実行する判定ステップ、同期部４３が実行する取得ステップ、および送信ステップとが記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【０１２７】
また、上記実施例で説明したデータベースに記憶されるデータのように、アプリケーション管理プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュールやプログラムデータを必要に応じてＲＡＭ１０１２に読み出して、判定ステップと取得ステップと送信ステップとを実行する。
【０１２８】
なお、アプリケーション管理プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、情報送受信プログラムに係るプログラムモジュールやプログラムデータは、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１２９】
これまでいくつかの実施形態を説明したが、本願が開示する技術はこれらの実施形態に限定されるものではない。すなわち、これらの実施形態は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
【０１３０】
例えば、各装置の分散・統合の具体的形態（例えば、図４、図５の形態）は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、同期判定部３３と同期判定情報送信部３４とを一つの部として統合してもよい。
【０１３１】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともできる。また、認証部３２をサーバ７、デバイス管理サーバ１０の外部装置としてネットワーク経由で接続し、例えばＯＡｕｔｈ等のネットワーク上における認証をおこなうこととしてもよい。
【０１３２】
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１３３】
１、１ａ  情報処理システム
２〜４  端末装置
５  ネットワーク
６  分散実行環境
７、８  サーバ
９  デバイスグループＤＢ
１０、１０ａ  デバイス管理サーバ
１１  アプリケーションＤＢ
１２、１２ａ  アプリケーション管理サーバ
１３、３１、４１  通信部
１４  入力部
１５  表示部
１６  制御部
１７  問い合わせ部
１８  判定部
１９  同期部
２０  分散実行部
２１  記憶部
２２  同期判定情報
２３  アプリケーションデータ
３２  認証部
３３、３３ａ  同期判定部
３４  同期判定情報送信部
４２、４２ａ  操作権制御部
４３  同期部
【図１】
2014164566.tif 000003
【図２】
2014164566.tif 000004
【図３】
2014164566.tif 000005
【図４】
2014164566.tif 000006
【図５】
2014164566.tif 000007
【図６】
2014164566.tif 000008
【図７】
2014164566.tif 000009
【図８】
2014164566.tif 000010
【図９】
2014164566.tif 000011
【図１０】
2014164566.tif 000012
【図１１】
2014164566.tif 000013
【図１２】
2014164566.tif 000014
【図１３】
2014164566.tif 000015
【図１４】
2014164566.tif 000016
【図１５】
2014164566.tif 000017