(57)【要約】【課題】より簡易に、同時に起動する複数のアプリケーション間で通信することが可能なシステムを提供する。【解決手段】本発明は、携帯端末装置において動作している複数のアプリケーション間における通信を行うためのシステムであって、携帯端末装置は、トークンを生成するトークン生成部と、携帯端末装置において動作する一のアプリが他のアプリへ送るための、トークン及びペイロードを含む発行メッセージをサーバへ送信する発行部と、他のアプリが発行部により送られるデータを受信可能であることを示す、トークンを含む購読メッセージをサーバへ送信する購読部と、を備え、サーバは、購読メッセージに含まれるトークンを記憶し、発行メッセージを受信したときに、発行メッセージに含まれるトークンと、記憶された購読メッセージに含まれるトークンとを照合し、該照合結果が所定条件を満たす場合、ペイロードを他のアプリへ送信する。【選択図】図１
2019125179.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバに接続された携帯端末装置において動作している複数のアプリケーション間における通信を行うためのシステムであって、
前記携帯端末装置は、
時刻情報及び前記携帯端末装置が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成する、トークン生成部と、
前記携帯端末装置において動作する一のアプリが前記携帯端末装置において動作する他のアプリへ送るための、前記トークン及びペイロードを含む発行メッセージを前記サーバへ送信する発行部と、
前記他のアプリが前記発行部により送られるデータを受信可能であることを示す、前記トークンを含む購読メッセージを前記サーバへ送信する購読部と、を備え、
前記サーバは、
前記購読メッセージに含まれる前記トークンを記憶し、
前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記他のアプリへ送信する、システム。
【請求項２】
前記トークンは、１つの行が前記時刻情報のうちの１つの時刻を示す情報及び前記センサ値情報のうちの該時刻に対応付けられた１又は複数のセンサ値を示す情報を含むトークン・マトリクスである、請求項１に記載のシステム。
【請求項３】
前記センサデバイスは、ＧＰＳセンサ、ジャイロセンサ、及び加速度センサの少なくとも１つを含む、請求項１又は２に記載のシステム。
【請求項４】
前記発行部は、前記発行メッセージから前記トークンの一部を抽出して前記ペイロードを暗号化し、前記発行メッセージのうちの抽出した該一部をマスキング又は削除し、
前記購読部は、前記発行メッセージに含まれる前記トークンと、前記トークン生成部が生成する前記トークンとを比較することにより、前記発行部が暗号化に用いた前記一部を特定し、該特定された前記一部を用いて前記ペイロードを復号する、請求項１から３のいずれか１項にシステム。
【請求項５】
前記所定条件は、照合した前記トークンの一致する比率が閾値以上であることである、請求項１から４のいずれか１項に記載のシステム。
【請求項６】
前記購読メッセージは、前記他のアプリが前記ペイロードを受信するポート番号を含み、
前記サーバは、前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記携帯端末装置の前記ポート番号に対して送信する、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
前記購読部は、前記購読メッセージを定期的に前記サーバへ送信する、請求項１から６のいずれか１項に記載のシステム。
【請求項８】
前記トークンは、前記携帯端末装置のＩＰアドレスを含み、
前記サーバは、負荷分散装置及び複数のサーバ装置から構成され、
前記負荷分散装置は、同一のＩＰアドレスから送信される前記発行メッセージ及び前記購読メッセージを、同一の前記サーバ装置に処理させる、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
ネットワークを介してサーバに接続された携帯端末装置において動作している複数のアプリケーション間における通信を行うための一組のプログラムであって、前記携帯端末装置に
時刻情報及び前記携帯端末装置が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成するステップと、
前記携帯端末装置において動作する一のアプリが前記携帯端末装置において動作する他のアプリへ送るための、前記トークン及びペイロードを含む発行メッセージを前記サーバへ送信するステップと、
前記他のアプリが前記発行メッセージに含まれるデータを受信可能であることを示す、前記トークンを含む購読メッセージを前記サーバへ送信するステップと、を実行させ、
前記サーバに、
前記購読メッセージに含まれる前記トークンを記憶するステップと、
前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記他のアプリへ送信するステップと、
を実行させる一組のプログラム。
【請求項１０】
ネットワークを介してサーバに接続された携帯端末装置において動作している複数のアプリケーション間における通信を行うための方法であって、
前記携帯端末装置において、時刻情報及び前記携帯端末装置が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成するステップと、
前記携帯端末装置において動作する一のアプリが前記携帯端末装置において動作する他のアプリへ送るための、前記トークン及びペイロードを含む発行メッセージを前記携帯端末装置から前記サーバへ送信するステップと、
前記他のアプリが前記発行メッセージに含まれるデータを受信可能であることを示す、前記トークンを含む購読メッセージを前記携帯端末装置から前記サーバへ送信するステップと、
前記サーバにおいて、前記購読メッセージに含まれる前記トークンを記憶するステップと、
前記サーバにおいて、前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記サーバから前記他のアプリへ送信するステップと、
を有する方法。
【請求項１１】
ネットワークを介してサーバに接続された携帯端末装置において動作している複数のアプリケーション間における通信を行うためのシステムにおけるサーバであって、
前記携帯端末装置は、
時刻情報及び前記携帯端末装置が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成する、トークン生成部と、
前記携帯端末装置において動作する一のアプリが前記携帯端末装置において動作する他のアプリへ送るための、前記トークン及びペイロードを含む発行メッセージを前記サーバへ送信する発行部と、
前記他のアプリが前記発行部により送られるデータを受信可能であることを示す、前記トークンを含む購読メッセージを前記サーバへ送信する購読部と、を備え、
前記サーバは、
前記購読メッセージに含まれる前記トークンを記憶し、
前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記他のアプリへ送信する、サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信を行うためのシステム等に関し、特に携帯端末装置において動作している複数のアプリケーション間における通信を行うためのシステム、プログラム、方法及びサーバに関する。
【背景技術】
【０００２】
近年、タッチパネルを備えたスマートデバイス、特にスマートフォンが広く一般に普及している。モバイル用ＣＰＵのマルチコア化やディスプレイの大型化に伴い、今日のスマートフォン用ＯＳは、同時に複数のアプリを起動するマルチタスク機能をサポートしている。一般的に、スマートフォンには複数のアプリ（アプリケーション）がインストールされており、複数のアプリを同時に使用するユーザは多い。
【０００３】
一方、同時に起動するアプリ間の連携には、セキュリティ上、一定の制約が課されている。例えば、特許文献１は、ｉＯＳ上で実行されるアプリの保護に関する技術を開示している。このようにｉＯＳなどの汎用的なＯＳにおいては、すべてのアプリはサンドボックス化され、他のアプリによって保存されたファイルへのアクセスなどができないように構成されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開第２０１７−４５２８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のような状況のため、従来、アプリ同士が自動的に連携することや通信することは難しかった。これに対して、アプリ間のデータを中継する中継サーバを導入し、この中継サーバを介してアプリ間の通信を実現する方法がある。しかしながら、中継サーバが各アプリを適切に識別・認証してアプリ間を連携する必要があり、そのために各アプリはユーザに対して明示的な認証操作等を要求することから、ユーザにとっては煩雑な操作となっていた。
【０００６】
本発明は、このような課題を解決するためになされたものであり、より簡易に、同時に起動する複数のアプリケーション間で通信することが可能なシステム等を提供することを主目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の一態様としてのシステムは、ネットワークを介してサーバに接続された携帯端末装置において動作している複数のアプリケーション間における通信を行うためのシステムであって、前記携帯端末装置は、時刻情報及び前記携帯端末装置が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成する、トークン生成部と、前記携帯端末装置において動作する一のアプリが前記携帯端末装置において動作する他のアプリへ送るための、前記トークン及びペイロードを含む発行メッセージを前記サーバへ送信する発行部と、前記他のアプリが前記発行部により送られるデータを受信可能であることを示す、前記トークンを含む購読メッセージを前記サーバへ送信する購読部と、を備え、前記サーバは、前記購読メッセージに含まれる前記トークンを記憶し、前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記他のアプリへ送信することを特徴とする。
【０００８】
また、本発明において好ましくは、前記トークンは、１つの行が前記時刻情報のうちの１つの時刻を示す情報及び前記センサ値情報のうちの該時刻に対応付けられた１又は複数のセンサ値を示す情報を含むトークン・マトリクスである。
【０００９】
また、本発明において好ましくは、前記センサデバイスは、ＧＰＳセンサ、ジャイロセンサ、及び加速度センサの少なくとも１つを含む。
【００１０】
また、本発明において好ましくは、前記発行部は、前記発行メッセージから前記トークンの一部を抽出して前記ペイロードを暗号化し、前記発行メッセージのうちの抽出した該一部をマスキング又は削除し、前記購読部は、前記発行メッセージに含まれる前記トークンと、前記トークン生成部が生成する前記トークンとを比較することにより、前記発行部が暗号化に用いた前記一部を特定し、該特定された前記一部を用いて前記ペイロードを復号する。
【００１１】
また、本発明において好ましくは、前記所定条件は、照合した前記トークンの一致する比率が閾値以上であることである。
【００１２】
また、本発明において好ましくは、前記購読メッセージは、前記他のアプリが前記ペイロードを受信するポート番号を含み、前記サーバは、前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記携帯端末装置の前記ポート番号に対して送信する。
【００１３】
また、本発明において好ましくは、前記購読部は、前記購読メッセージを定期的に前記サーバへ送信する。
【００１４】
また、本発明において好ましくは、前記トークンは、前記携帯端末装置のＩＰアドレスを含み、前記サーバは、負荷分散装置及び複数のサーバ装置から構成され、前記負荷分散装置は、同一のＩＰアドレスから送信される前記発行メッセージ及び前記購読メッセージを、同一の前記サーバ装置に処理させる。
【００１５】
また、上記の目的を達成するために、本発明の一態様としての一組のプログラムは、ネットワークを介してサーバに接続された携帯端末装置において動作している複数のアプリケーション間における通信を行うための一組のプログラムであって、前記携帯端末装置に時刻情報及び前記携帯端末装置が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成するステップと、前記携帯端末装置において動作する一のアプリが前記携帯端末装置において動作する他のアプリへ送るための、前記トークン及びペイロードを含む発行メッセージを前記サーバへ送信するステップと、前記他のアプリが前記発行メッセージに含まれるデータを受信可能であることを示す、前記トークンを含む購読メッセージを前記サーバへ送信するステップと、を実行させ、前記サーバに、前記購読メッセージに含まれる前記トークンを記憶するステップと、前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記他のアプリへ送信するステップと、を実行させることを特徴とする。
【００１６】
また、上記の目的を達成するために、本発明の一態様としての方法は、ネットワークを介してサーバに接続された携帯端末装置において動作している複数のアプリケーション間における通信を行うための方法であって、前記携帯端末装置において、時刻情報及び前記携帯端末装置が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成するステップと、前記携帯端末装置において動作する一のアプリが前記携帯端末装置において動作する他のアプリへ送るための、前記トークン及びペイロードを含む発行メッセージを前記携帯端末装置から前記サーバへ送信するステップと、前記他のアプリが前記発行メッセージに含まれるデータを受信可能であることを示す、前記トークンを含む購読メッセージを前記携帯端末装置から前記サーバへ送信するステップと、前記サーバにおいて、前記購読メッセージに含まれる前記トークンを記憶するステップと、前記サーバにおいて、前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記サーバから前記他のアプリへ送信するステップと、を有することを特徴とする。
【００１７】
また、上記の目的を達成するために、本発明の一態様としてのサーバは、ネットワークを介してサーバに接続された携帯端末装置において動作している複数のアプリケーション間における通信を行うためのシステムにおけるサーバであって、前記携帯端末装置は、時刻情報及び前記携帯端末装置が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成する、トークン生成部と、前記携帯端末装置において動作する一のアプリが前記携帯端末装置において動作する他のアプリへ送るための、前記トークン及びペイロードを含む発行メッセージを前記サーバへ送信する発行部と、前記他のアプリが前記発行部により送られるデータを受信可能であることを示す、前記トークンを含む購読メッセージを前記サーバへ送信する購読部と、を備え、前記サーバは、前記購読メッセージに含まれる前記トークンを記憶し、前記発行メッセージを受信したときに、前記発行メッセージに含まれる前記トークンと、前記記憶された前記購読メッセージに含まれる前記トークンとを照合し、該照合結果が所定条件を満たす場合、前記ペイロードを前記他のアプリへ送信することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、より簡易に、同時に起動する複数のアプリケーション間で通信することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態によるシステムの全体構成図である。
【図２】本発明の一実施形態による携帯端末装置のハードウェア構成を示すブロック図である。
【図３】本発明の一実施形態によるサーバのハードウェア構成を示すブロック図である。
【図４】本発明の一実施形態によるシステムの機能ブロック図である。
【図５】トークン・マトリクスのデータ構造の一例を示す図である。
【図６】本発明の一実施形態による携帯端末装置において動作する送信側アプリの情報処理のフローチャートを示す図である。
【図７】本発明の一実施形態による携帯端末装置において動作する受信側アプリの情報処理のフローチャートを示す図である。
【図８】本発明の一実施形態によるサーバの情報処理のフローチャートを示す図である。
【図９】発行部によるペイロード暗号化の一例を示す図である。
【図１０】図９のように暗号化されたペイロードの購読部による復号化の一例を示す図である。
【図１１】本実施形態の応用例について説明するための図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の実施形態による、システムについて説明する。本明細書において、アプリは、主としてスマートフォンやタブレット端末においてインストールされるアプリを意味するが、アプリケーション全般を意味することができる。また単にアプリと呼ぶ場合、アプリは、Ｗｅｂアプリ及びネイティブアプリを含む。
【００２１】
図１は、本発明の一実施形態によるシステム１の全体構成図である。図１に示すように、システム１は、携帯端末装置３及びサーバ４を備え、携帯端末装置３及びサーバ４は、インターネットなどのネットワーク２に接続され、互いに通信可能である。
【００２２】
図２は本発明の一実施形態による携帯端末装置３のハードウェア構成を示すブロック図である。本実施形態において、携帯端末装置４はスマートフォンである。携帯端末装置４は、プロセッサ１１、表示装置１２、入力装置１３、記憶装置１４、及び通信装置１５を備える。これらの各構成装置はバス１６によって接続される。バス１６と各構成装置との間には必要に応じてインタフェースが介在しているものとする。ただし、携帯端末装置３は、上記の構成を備えるものであれば、デスクトップ型のパソコン、ノートパソコン又はタブレット端末などとすることができる。
【００２３】
プロセッサ１１は、携帯端末装置３全体の動作を制御するものであり、例えばＣＰＵである。なお、プロセッサ１１としては、ＭＰＵ等の電子回路が用いられてもよい。プロセッサ１１は、記憶装置１４に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。１つの例では、プロセッサ１１は、複数のプロセッサから構成される。
【００２４】
表示装置（ディスプレイ）１２は、プロセッサ１１の制御に従って、アプリケーション画面などを携帯端末装置４のユーザに表示する。好ましくは液晶ディスプレイであるが、有機ＥＬを用いたディスプレイやプラズマディスプレイ等であってもよい。
【００２５】
入力装置１３は、タッチパネル、タッチパッド、入力ボタン等のようにユーザからの入力を受け付ける機能を有するものである。本実施形態では、携帯端末装置３はスマートフォンであるため、携帯端末装置３は入力装置１３としてタッチパネルを備え、タッチパネルは表示装置１２としても機能し、表示装置１２と入力装置１３は一体となった構造である。ただし、表示装置１２と入力装置１３は、別の位置に配置される別個の形態であってもよい。
【００２６】
記憶装置１４は、揮発性メモリであるＲＡＭ及び不揮発性メモリであるＲＯＭを含む、一般的なスマートフォンが備える記憶装置である。記憶装置１４は、外部メモリを含むこともできる。
【００２７】
１つの例では、記憶装置１４は、主記憶装置及び補助記憶装置を含む。主記憶装置は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ１１が情報を処理する際の記憶領域及び作業領域として用いられる。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ１１が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置は、例えば、オペレーティングシステム（ＯＳ）、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
【００２８】
通信装置１５は、ネットワーク２を介してサーバ４などの他のコンピュータとの間でデータの授受を行う。例えば通信装置１５は、移動体通信や無線ＬＡＮ等の無線通信を行い、ネットワーク２へ接続する。１つの例では、通信装置１５によって、プログラムをサーバ４からダウンロードして、記憶装置１４に格納する。ただし、通信装置１５は、イーサネット（登録商標）ケーブル等を用いた有線通信を行ってもよい。
【００２９】
図３は本発明の一実施形態によるサーバ４のハードウェア構成を示すブロック図である。サーバ４は、プロセッサ２１、表示装置２２、入力装置２３、記憶装置２４、及び通信装置２５を備える。これらの各構成装置はバス２６によって接続される。バス２６と各構成装置との間には必要に応じてインタフェースが介在しているものとする。なおサーバ４は、１つのサーバ装置から構成してもよいし、複数のサーバ装置から構成してもよい。
【００３０】
プロセッサ２１は、サーバ４全体の動作を制御するものであり、例えばＣＰＵである。なお、プロセッサ２１としては、ＭＰＵ等の電子回路が用いられてもよい。プロセッサ２１は、記憶装置２４に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。１つの例では、プロセッサ２１は、複数のプロセッサから構成される。
【００３１】
表示装置（ディスプレイ）２２は、プロセッサ２１の制御に従って、アプリケーション画面などをサーバ４の使用者に表示する。入力装置２３は、サーバ４に対するユーザからの入力を受け付けるものであり、例えば、タッチパネル、タッチパッド、キーボード、又はマウスである。
【００３２】
記憶装置２４は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えばＲＡＭのような半導体メモリである。ＲＡＭは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ２１が情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置は、読み出し専用の不揮発性記憶媒体であるＲＯＭを含んでいてもよい。この場合、ＲＯＭはファームウェア等のプログラムを格納する。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ２１が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置は、例えば、オペレーティングシステム（ＯＳ）、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
【００３３】
好適な１つの例では、記憶装置２４は各種データベース用のデータ（例えばテーブル）やプログラムを記憶する。プロセッサ２１の動作などにより、各種データベースは実現される。サーバ４は、データベースサーバ機能を備えることもできるし、１又は複数のデータベースサーバを含むこともできるし、又は他のサーバを含むこともできる。
【００３４】
通信装置２５は、ネットワーク２を介して携帯端末装置４などの他のコンピュータとの間でデータの授受を行う。例えば通信装置２５は、イーサネット（登録商標）ケーブル等を用いた有線通信や移動体通信、無線ＬＡＮ等の無線通信を行い、ネットワーク４へ接続する。
【００３５】
図４は本発明の一実施形態によるシステム１の機能ブロック図の一例を示す。これらの機能は、携帯端末装置３のプロセッサ１１及びサーバ４のプロセッサ２１によりプログラムが実行されることにより実現される。本実施形態においては、各種機能がプログラム読み込みにより実現されるため、１つのパート（機能）の一部を他のパートが有していてもよい。ただし、各機能の一部又は全部を実現するための電子回路等を構成することにより、ハードウェアによってこれらの機能は実現してもよい。
【００３６】
携帯端末装置３は、ＯＳがインストールされるとともに、当該ＯＳ上で動作させる複数のアプリがインストールされている。説明の便宜上、携帯端末装置３は、ＯＳとしてｉＯＳ（登録商標）を有するものとするが、これに限定されず、Ｗｉｎｄｏｗｓ（登録商標）やＡｎｄｒｏｉｄ（登録商標）などであってもよい。携帯端末装置３は、アプリをインストールする際に、各アプリのための特定の記憶領域を割り当てる。記憶領域は、記憶部１４の一部であり、一般的にサンドボックスと呼ばれるものである。
【００３７】
図４は、１つのサンドボックス３１が、１つのアプリ３２に対して割り当てられる様子を示す。図４に示すように、アプリ３２は、当該アプリ３２に対して割り当てられたサンドボックス３１で動作し、その他のアプリ３２に割り当てられたサンドボックス３１とアプリ間通信を行うことはできないように構成される。このように、システム１は、保護された領域であるサンドボックス３１でアプリ３２を動作させるため、当該アプリ３２において保存されたファイルに、当該サンドボックス３１外のその他のアプリ３２がアクセスすること等を防止している。したがって、例えば各アプリ３２がサンドボックス化されることで、ユーザデータは保護される。ただし、アプリ３２は、ＯＳが提供するＡＰＩを利用することはできる。
【００３８】
アプリ３２は、アプリ機能部３３、トークン生成部３４、発行部３５、及び購読部３６を備える。
【００３９】
アプリ機能部３３は、携帯端末装置３上で起動されたアプリ３２の機能を有し、当該アプリ３２によるサービスの提供を行う。アプリ３２がＷｅｂアプリである場合、サーバ４がアプリ機能部３３の一部又は全部を有し、アプリ３２は、サーバ４とデータの送受信を行う。
【００４０】
トークン生成部３４は、時刻情報及び携帯端末装置３が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成する。１つの例では、トークン生成部３４は、携帯端末装置３上で動作するアプリ３２内部のモジュールとして実装されるソフトウェアモジュールである。
【００４１】
携帯端末装置３は、センサデバイスを備え、センサデバイスは、ＧＰＳセンサ、ジャイロセンサ、及び加速度センサの少なくとも１つを含む。トークン生成部３４は、センサデバイスにアクセスし、予め定められた期間、センサ値を取得する。予め定められた期間は、例えば数百ミリ秒から１秒程度の期間である。１つの例では、トークン生成部３４は、汎用のスマートフォンに内蔵されているＧＰＳ及び６軸センサを含むセンサデバイスにアクセスし、数百ミリ秒の期間、センサ値を取得する。例えば、６軸センサは、３軸の加速センサ及びジャイロセンサから構成される。
【００４２】
トークン生成部３４は、ある特定の時間に特定の携帯端末装置３上で動作（起動）するアプリを識別するためのトークンを生成する。好適な１つの例では、トークン生成部３４は、複数のセンサからセンサ値を取得する場合、複数のセンサ値の各々を列とし、所定の単位時間を行として、センサ値の時系列的な変化を示す行列（マトリクス）を、トークンとして生成する。本実施形態では、トークンは、このようにマトリクスとして生成されるものとし、トークン・マトリクスと呼ぶこととする。例えば、予め定められた期間が数百ミリ秒である場合、所定の単位時間は１０ミリ秒程度である。
【００４３】
図５は、トークン・マトリクスのデータ構造の一例を示す。トークン・マトリクスにおける１つの行riは、以下の式１のように定義される。
2019125179.tif 000003
（式１）
式１において、timestampiは、センサデバイスからセンサ値を取得した時間を示す値であり、IPは、アプリが動作する携帯端末装置３のＩＰアドレスであり、sensornは、各センサから取得されたｎ種類のセンサ値である。１つの例では、timestampiは、ＯＳから取得可能な、いわゆるＵＮＩＸ(登録商標)時間と呼ばれる整数値であるか、又は”2017/07/14 15:48:43”のような文字列である。１つの例では、sensornが示す各センサ値は、ＧＰＳが出力する緯度(GPS(Lat))、経度(GPS(Lng))、及び６軸センサが出力する６つの値(x,y,z,r,p,y)を含む。
【００４４】
好適な１つの例では、センサデバイスごとに値の更新頻度は異なるが、トークン生成部３４が各センサデバイスから値を取得するタイミングは一定である。トークン生成部３４は、トークン・マトリクスにおける１つの行riを、センサ値を取得する周期ごとに生成する。トークン生成部３４は、例えば５０〜１００Ｈｚのサンプリング頻度で、各センサデバイスからセンサ値を取得する。ＧＰＳのように更新頻度が低いセンサデバイスについては、トークン生成部３４は、ＧＰＳのセンサ値が更新されない間、ＧＰＳのセンサ値として同じ値を取得し、トークン・マトリクスの対応する列に同じ値を格納する。
【００４５】
なお、トークン・マトリクスはＩＰアドレスを含まなくてもよい。ただし、モバイル環境では、利用者の移動やＷｉＦｉへの接続などによりＩＰアドレスは頻繁に変化するため、時間軸に沿ったＩＰアドレスの変化の履歴は、ある特定の時間に特定のスマートフォン上で起動するアプリを識別するために有益である。したがって、トークン・マトリクスはＩＰアドレスを含むことが好ましい。
【００４６】
上記のように、トークンは、１つの行が時刻情報のうちの１つの時刻を示す情報及びセンサ値情報のうちの該時刻に対応付けられた１又は複数のセンサ値を示す情報を含むトークン・マトリクスである。ただし、トークンは、ある特定の時間に特定の携帯端末装置３上で動作していることを識別可能なものであれば、トークン・マトリクスとは別のデータ構造とすることもできる。
【００４７】
発行部３５と購読部３６は、一般的な出版−購読型モデルのＰｕｂｌｉｓｈｅｒとＳｕｂｓｃｒｉｂｅｒに各々相当する。サーバ４は、サーバサイドにおいて、携帯端末装置３において動作（起動）する一のアプリ３２から送信されたメッセージを、同一の携帯端末装置３において動作（起動）する他のアプリ３２へ配送するための機能を有するメッセージバス４１を備える。本実施形態のシステム１は、アプリ３２間は直接的な通信を行わず、サーバ４を介して、具体的にはサーバ４が備えるメッセージバス４１を介して、アプリ間３２を間接的に連結する。本明細書においては、説明の便宜上、特に言及が無い限り、発行メッセージを送信するアプリ３２を送信側アプリ３２（一のアプリ３２）、購読メッセージを送信するアプリ３２を受信側アプリ３２（他のアプリ３２）と呼ぶ。アプリ３２間の双方向通信の場合、２つのアプリ３２は、両方とも、送信側アプリ３２かつ受信側アプリ３２であることができる。
【００４８】
発行部３５は、携帯端末装置３において動作する送信側アプリ３２が携帯端末装置３において動作する受信側アプリ３２へ送るための、トークン及びペイロードを含む発行メッセージをサーバ４へ送信する。１つの例では、発行部３５は、動的な通信を行うアプリ３２が、実際にデータを受信側アプリ３２に送信するための機能を提供するモジュールである。
【００４９】
１つの例では、発行メッセージは、トークン・マトリクスをヘッダとし、送信したいデータをペイロードとしたメッセージである。発行部３５は、発行メッセージをサーバ４が備えるメッセージバス４１へ送信する。具体的には、発行メッセージは、以下の式２のように定義される。
2019125179.tif 000004
（式２）
式２において、token_matrixは、図５に示す時系列データであり、payloadは、送信内容を示す任意のデータである。
【００５０】
１つの例では、発行部３５が発行メッセージをＵＤＰで送信する場合、発行部３５は、発行メッセージを複数個に分割してメッセージバス４１へ送信する。
【００５１】
購読部３６は、受信側アプリ３２が発行部３５により送られるデータを受信可能であることを示す、トークンを含む購読メッセージをサーバ４へ送信する。１つの例では、購読部３６は、アプリ３２が送信側アプリ３２からのメッセージを受信するためのモジュールである。したがって、購読メッセージは、アプリ３２が発行部３５により送られるデータを受信可能であることをメッセージバス４１に伝えるためのメッセージであり、受信側アプリ３２が、いわゆる購読処理を行うにあたって必要なものである。
【００５２】
１つの例では、購読メッセージは、トークン・マトリクス及び携帯端末装置３のエンドポイント情報を含む。例えば、エンドポイント情報は、ＩＰアドレス及びポート番号である。具体的には、購読メッセージは、以下の式３のように定義される。
2019125179.tif 000005
（式３）
式３において、token_matrixは、図５に示す時系列データであり、IPは、携帯端末装置３のＩＰアドレスであり、portは、受信側アプリ３２が受信状態にあるポート番号である。サーバ４は、発行部３５から受信した発行メッセージ又は該発行メッセージのうち少なくともペイロードを含むデータを携帯端末装置３の当該ポート番号に対して送信し、受信側アプリ３２は、当該ポート番号を用いて、サーバ４から送信されたデータを受信する。
【００５３】
購読部３６は、購読メッセージを定期的に、例えば１秒に１回、サーバ４が備えるメッセージバス４１へ送信する。本実施形態のシステム１においては、後述するようにメッセージバス４１がトークン・マトリクスを用いてメッセージの配送可否を決定するため、受信側アプリ３２は、トークン・マトリクスを含む購読メッセージを送信し、情報を更新し続ける必要がある。一方、受信側アプリ３２が購読の停止を行うときには、購読部３６が購読メッセージの送信を停止すればよい。したがって、購読部３６は、購読停止のための処理は不要である。
【００５４】
なお、本実施形態における発行部３５及び購読部３６は、サーバに対して各メッセージを送信する際に接続状態を維持する必要はないため、ＴＣＰに依存せず、ＵＤＰを用いることができる。
【００５５】
サーバ４は、メッセージバス４１及び履歴データベース４２を備える。履歴データベース４２は、定期的に購読部３６が送信する購読メッセージに含まれるトークン・マトリクスの履歴を一定期間、例えば１０秒間、保存するデータベースである。ただし、履歴データベース４２は、履歴データベース４２の記憶領域を考慮して、より多くの期間及びトークン・マトリクスの行数を記憶するように構成することもできる。
【００５６】
メッセージバス４１は、発行部３５が送信する発行メッセージ及び購読部３６が送信する購読メッセージを受信する。メッセージバス４１は、購読メッセージを受信したとき、購読メッセージに含まれるトークン・マトリクスを一定期間、例えば１０秒間、履歴データベース４２に記憶する。メッセージバス４１は、発行メッセージを受信したとき、発行メッセージに含まれるトークン・マトリクスと、履歴データベース４２に記憶された購読メッセージに含まれるトークン・マトリクスとを照合する。なお、履歴データベース４２には一定期間トークン・マトリクスが記憶されるため、発行メッセージに含まれるトークン・マトリクスよりも多くの行数のトークン・マトリクスが履歴データベース４２に記憶されることは理解される。
【００５７】
メッセージバス４１は、当該照合結果が所定条件を満たす場合、送信側アプリ３２の発行部３５から受信した発行メッセージを受信側アプリ３２へ送信する。好適な１つの例では、所定条件は、照合したトークン・マトリクスの一致する比率が閾値以上であることである。所定条件をトークン・マトリクスが完全に一致した場合としないのは、ＵＤＰ等の伝送制御を行わないプロトコルを用いたときに発生するパケットロスを考慮したためである。具体的には、一致率の計算は、以下の式４のように定義される。
2019125179.tif 000006
（式４）
式４において、Qは、発行部３５から送信されたトークン・マトリクスであり、Qiは、トークン・マトリクスのｉ（ｉ＝０〜ｎ−１）行目のデータである。Ｍは、履歴データベース４２に記憶された、Qと同一のＩＰアドレスから送信されたトークン・マトリクスから、Qと同一の開始時刻(timestamp)の行列を抽出したものである。ｎは、トークン・マトリクスQの行数である。式４では、各マトリクスの行が一致する割合を算出している。Qiがundefinedの場合とは、Qiが暗号化のためにマスクされた場合などである。メッセージバス４１は、match(M,Q)が、予め設定された閾値以上であるときにMとQが一致したと判断し、購読メッセージを送信する購読部３６を含む受信側アプリ３２へメッセージを配送する。
【００５８】
なお、メッセージバス４１は、当該照合結果が所定条件を満たす場合、送信側アプリ３２の発行部３５から受信した発行メッセージのうち少なくともペイロードを含むデータを受信側アプリ３２へ送信してもよい。
【００５９】
更なる１つの例では、サーバ４は、負荷分散装置及び複数のサーバ装置から構成される。この場合、トークン・マトリクスはＩＰアドレスを含み、負荷分散装置は、同一のＩＰアドレスから送信される発行メッセージ及び購読メッセージを、同一のサーバ装置に処理させる。このように、同一のＩＰアドレスから送信されたメッセージを同一のサーバ装置が処理するように負荷分散を行う構成とすることにより、サーバ４が高速にルーティングを行うことが可能となる。
【００６０】
例えば、負荷分散装置は、受信した発行メッセージや購読メッセージに含まれるＩＰアドレスからコンシステントハッシュを生成し、そのハッシュ値に応じて、ルーティングを担当するサーバ装置を決定する。これにより、同一のＩＰアドレスは同一のハッシュ値となることから必ず同一のサーバ装置に配送されるため、システム１は高速に処理を行うことが可能となる。
【００６１】
次に、本発明の一実施形態によるシステム１の情報処理について図６〜８に示したフローチャートを用いて説明する。図６〜８に示す情報処理は、プログラムを携帯端末装置３に実行させ、かつプログラムをサーバ４に実行させることで実現される。
【００６２】
図６は、本発明の一実施形態による携帯端末装置３において動作する送信側アプリ３２の情報処理のフローチャートを示す図である。
【００６３】
ステップ６０１で、送信側アプリ３２は、時刻情報及び携帯端末装置３が備えるセンサデバイスから取得されたセンサ値情報を含むトークン（トークン・マトリクス）を生成する。ステップ６０２で、送信側アプリ３２は、受信側アプリ３２へ送信するデータが有るか否かについて判断する。データが有る場合、本処理はステップ６０２へ進み、データが無い場合、本処理は終了する。ステップ６０３で、送信側アプリ３２は、ステップ６０１で生成されたトークン及び送信したいデータ本体のペイロードを含む発行メッセージをサーバ４へ送信する。
【００６４】
好ましくは、送信側アプリ３２は、該アプリが起動している限り、本処理が終了した後、定期的にステップ６０１が実行されるように、本処理を開始する。１つの例では、本処理は、ステップ６０１を含まず、その代わりとして本処理とは別の処理において、送信側アプリ３２は、該アプリが起動している限り、所定の単位時間ごとにトークンを生成し続けるように構成される。１つの例では、送信側アプリ３２は、送信側アプリ３２が起動している限り、常にステップ６０１においてデータが有ると判断するように構成される。
【００６５】
図７は、本発明の一実施形態による携帯端末装置３において動作する受信側アプリ３２の情報処理のフローチャートを示す図である。
【００６６】
ステップ７０１で、受信側アプリ３２は、時刻情報及び携帯端末装置３が備えるセンサデバイスから取得されたセンサ値情報を含むトークン（トークン・マトリクス）を生成する。ステップ７０２で、受信側アプリ３２は、送信側アプリ３２から送信されるメッセージを購読するか否かについて判断する。購読する場合、本処理はステップ７０２へ進み、購読しない場合、本処理は終了する。ステップ７０３で、受信側アプリ３２は、ステップ７０１で生成されたトークンを含む購読メッセージをサーバ４へ送信する。購読メッセージは、受信側アプリ３２が発行部３５により送られるデータを受信可能であることを示すものである。
【００６７】
好ましくは、受信側アプリ３２は、該アプリが起動している限り、本処理が終了した後、定期的にステップ７０１が実行されるように、本処理を開始する。１つの例では、本処理は、ステップ７０１を含まず、その代わりとして本処理とは別の処理において、受信側アプリ３２は、該アプリが起動している限り、所定の単位時間ごとにトークンを生成し続けるように構成される。１つの例では、受信側アプリ３２は、受信側アプリ３２が起動している限り、常にステップ７０１において購読すると判断するように構成してもよい。
【００６８】
図８は、本発明の一実施形態によるサーバ４の情報処理のフローチャートを示す図である。
【００６９】
ステップ８０１で、サーバ４は、購読メッセージを受信したか否かを判断し、受信した場合、本処理は８０２へ進み、受信しなかった場合、本処理はステップ８０３へ進む。ステップ８０２で、サーバ４は、受信した購読メッセージに含まれるトークンを履歴データベース４２に記憶し、本処理はステップ８０３へ進む。
【００７０】
ステップ８０３で、サーバ４は、発行メッセージを受信したか否かを判断し、受信した場合、本処理はステップ８０４へ進み、受信しなかった場合、本処理は終了する。ステップ８０４で、サーバ４は、受信した発行メッセージに含まれるトークンと、履歴データベース４２に記憶された購読メッセージに含まれるトークンとを照合し、該照合結果が所定条件を満たすか否かを判定する。照合結果が所定条件を満たす場合、本処理はステップ８０５へ進み、照合結果が所定条件を満たさなかった場合、本処理は終了する。本例示においては、所定条件は、照合したトークンの一致する比率が閾値以上であることである。
【００７１】
ステップ８０５で、サーバ４は、送信側アプリ３２の発行部３５から受信した発行メッセージを受信側アプリ３２へ送信する。
【００７２】
好ましくは、サーバ４は、起動している限り、本処理が終了した後、定期的にステップ８０１が実行されるように、本処理を開始する。ステップ８０１〜８０２の処理は、ステップ８０３〜８０５の処理の後に行うように構成することもできるが、好ましくは、サーバ４は、図８に示すとおりに情報処理を実行する。
【００７３】
次に、本発明の実施形態によるシステム１の主な作用効果について説明する。本実施形態では、携帯端末装置４にインストールされた、アプリ間通信を行う送信側アプリ３２及び受信側アプリ３２は、いずれもトークン生成部３４、発行部３５、及び購読部３６を備える。トークン生成部３４は、時刻情報及び携帯端末装置３が備えるセンサデバイスから取得されたセンサ値情報を含むトークンを生成する。ここで、携帯端末装置３が備えるセンサデバイスに同一時刻にアクセスすると、同一のセンサ値情報を取得することができるため、同一の携帯端末装置３上で起動するアプリであれば、同一時刻に取得するセンサ値は同一である。したがって本実施形態では、アプリ３２がある特定の時間に特定の携帯端末装置３上で起動していることを識別するために、センサデバイスから取得されたセンサ値情報を含むトークンを用いている。
【００７４】
発行部３５は、トークン及びペイロードを含む発行メッセージをサーバ４へ送信し、購読部３６は、トークンを含む購読メッセージをサーバ４へ送信する。一方、サーバ４は、購読メッセージに含まれるトークンを履歴データベース４２に記憶し、発行メッセージを受信したときに、発行メッセージに含まれるトークンと、該記憶された購読メッセージに含まれるトークンとを照合する。サーバ４は、照合結果が所定条件を満たす場合、発行メッセージ（又はペイロードを含むデータ）を受信側アプリ３２へ送信する。
【００７５】
このように、本実施形態のシステム１は、アプリ３２がある特定の時間に特定の携帯端末装置３上で起動していることを識別可能なトークンと、出版−購読型モデルとを組み合わせて通信を行う。これにより、明示的なユーザ登録やアプリケーション連携のための認証操作を必要とすることなく、自動的に異種アプリ間を連携させ、例えばリアルタイムのメッセージ通信を実現することが可能となる。既存の汎用的なクラウドアプリでは、事前にクラウドシステムへのログインやアカウントの連携が必要となるため、初期状態のアプリ間をすぐに通信させることができないが、本実施形態のシステム１はこれを解決するものである。例えば、ある特定のＷｅｂサイト閲覧中にそのサイトに固有の特別なＵＩを表示するカスタムキーボードアプリを表示することや、同時に２つのゲームアプリを起動したときに、各ゲームのキャラクタがお互いに挨拶をするような連携演出を実現することが可能になる。
【００７６】
また本実施形態では、アプリが標準的に有することが可能なセンサデータ取得機能やネットワーク通信機能のみを用いて実装することができるため、既存のほぼすべてのスマートフォン上で実装することが可能である。
【００７７】
また本実施形態では、トークンはＩＰアドレスを含むものであり、サーバ４は、負荷分散装置及び複数のサーバ装置から構成され、負荷分散装置は、同一のＩＰアドレスから送信される発行メッセージ及び購読メッセージを、同一のサーバ装置に処理させる。このような構成とすることにより、サーバ４は、メッセージの配送先を探索する必要がなくなるため、実質的にＯ（１）の計算量でルーティングを行うことが可能となり、高速に処理することが可能となる。
【００７８】
上記の作用効果は、特に言及が無い限り、他の実施形態や他の実施例においても同様である。
【００７９】
本発明の他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムや該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を単独で実現する電子装置とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する仮想マシンとすることもできる。
【００８０】
以下に本発明の実施形態の変形例について説明する。以下で述べる変形例は、矛盾が生じない限りにおいて、適宜組み合わせて本発明の任意の実施形態に適用することができる。
【００８１】
１つの変形例では、システム１は、ペイロード内容を完全に秘匿して、アプリ３２間通信を行う。発行部３５は、トークン・マトリクスのうちの一部を発行メッセージから抽出してペイロードを暗号化する。このとき、発行部３５は、発行メッセージのうちの当該抽出したトークン・マトリクスの一部をマスキング又は削除する。購読部３６は、発行メッセージに含まれるトークン・マトリクスと、トークン生成部３４が生成するトークン・マトリクスとを比較することにより、発行部３５が暗号化に用いた一部を特定し、該特定された一部を用いてペイロードを復号する。
【００８２】
図９は、発行部３５によるペイロード暗号化の一例を示す図である。発行メッセージは、ヘッダとしてのトークン・マトリクス５１と、ペイロード５２とを含む。発行部３５は、図９に示すように、トークン・マトリクス５１の一部を暗号化キー５３として抽出し、暗号化キー５３を用いてペイロート５２を暗号化する。暗号化キー５３は、トークン・マトリクス５１から抽出された１又は複数の行である。例えば発行部３５は、暗号化キー５３として、トークン・マトリクス５１の行のうち、３の倍数に該当する行を抽出する。
【００８３】
図１０は、図９のように暗号化されたペイロードの購読部３６による復号化の一例を示す図である。購読部３６は、図１０に示すように、メッセージバス４１から受信したメッセージのヘッダであるトークン・マトリクス５１と、受信側アプリ３２のトークン生成部３４により生成されたトークン・マトリクスとを対象として、ＸＯＲ比較を行う。ここで、送信側アプリ３２と受信側アプリ３２は、同一の携帯端末装置３上で動作しているため、各アプリ３２のトークン生成部３４が生成するトークン・マトリクスは、同一時間においては同一となる。したがって、購読部３６は、当該ＸＯＲ比較を行うことで、暗号化キー５３として使用されている部分を検出することが可能となる。購読部３６は、検出された暗号化キー５３を用いてペイロード５２を復号する。
【００８４】
前述のとおり、好適な１つの例では、メッセージバス４１は、照合したトークン・マトリクスの一致する比率が閾値以上である場合、送信側アプリ３２から受信した発行メッセージを受信側アプリ３２へ送信する。メッセージバス４１は、例えば式４を用いて照合する場合、トークン・マトリクス５１のうちマスクされた行についてはundefinedとして扱うことにより、閾値判断に影響を与えないように処理を行う。
【００８５】
このように本実施形態では、受信側アプリ３２と送信側アプリ３２は同一の携帯端末装置３上で動作するため、必ず同じセンサ値を取得して同じトークンを生成する点を利用し、暗号化における問題点の一つである、鍵交換を極めてセキュアに実現している。これにより、ペイロード内容を完全に秘匿し、特にサーバサイドモジュールに一切の情報を開示することなく、メッセージ通信を行うことが可能となる。
【００８６】
１つの変形例では、トークン生成部３４は、時刻情報、及び携帯端末装置３にインストールされたワンタイムパスワード等のソフトウェアから取得された値又は携帯端末装置３に搭載されたハードウェア乱数発生器から取得された値、を含むトークンを生成する。この場合、トークンは、センサ値の代わりに、ワンタイムパスワード等のソフトウェアから取得された値及びハードウェア乱数発生器から取得された値の少なくとも一方を含む。このように、トークンは、ある特定の時間に特定の携帯端末装置３上で動作していることを識別可能なものであればよい。
【００８７】
以下に本発明の実施形態の応用例について説明する。本実施形態のシステム１は、同時に起動する複数のアプリ３２間の連携を行うものであるため、マルチタスク機能を活用したアプリ３２間連携に適用することができる。既存のほぼすべてのスマートフォンは、サードパーティーのＩＭＥ（カスタムキーボード）をインストールすることができ、ＩＭＥはネットワークと通信することができる。そのため、アプリ間通信を行うアプリ３２がＩＭＥアプリとゲームアプリの場合、ＩＭＥアプリとゲームアプリの連携を行えば、「ゲームアカウントと連動したテキスト入力」や、「ゲームのキャンペーンと連動した専用の長いＵＲＬの入力」を、ほぼワンタップで行うことが可能となる。
【００８８】
図１１は、本実施形態の応用例について説明するための図であり、典型的なマルチタスク処理である、ゲームアプリ３２ａとキーボードアプリ３２ｂの連携例を示す。図１１上部に示すゲームアプリ３２ａ及び図１１下部に示すキーボードアプリ３２ｂは、いずれも本実施形態のアプリ３２に対応するものであり、図１１は、２つのアプリ３２ａ、３２ｂが同時に実行された状態を示している。ゲームアプリ３２ａは、キーボードアプリ３２ｂとは独立したプロセスとして動作し、キーボードアプリ３２ｂは、ゲームアプリ３２ａ等の他のアプリとは独立したプロセスとして動作する。ここで本実施形態のシステム１は、上述のとおり、事前の連携処理や認証処理を行うことなく、サーバ４を介してゲームアプリ３２ａとキーボードアプリ３２ｂの情報の送信経路を確立し、アプリ３２間の双方向通信を行うことが可能となる。この場合、例えば、送信側アプリ３２としてのキーボードアプリ３２ｂは、受信側アプリ３２としてのゲームアプリ３２ａに対して、キーボードアプリ３２ｂにおいて入力された内容「リアルタイムにキーボードとアプリは通信できる」を送信することができ、ゲームアプリ３２ａは、キーボードアプリ３２ｂにおける入力内容をリアルタイムに受け取ることができるように構成される。このようにして、安全にプロセス間通信を行うことが可能となる。なお、キーボードアプリ３２ｂは、インターネット上のサーバに独自にアクセスすることができ、またテキスト入力を行うために任意のアプリから呼び出すことができるアプリであるものとする。
【００８９】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【００９０】
１  システム
２  ネットワーク
３  携帯端末装置
４  サーバ
１１  プロセッサ
１２  表示装置
１３  入力装置
１４  記憶装置
１５  通信装置
１６  バス
２１  プロセッサ
２２  表示装置
２３  入力装置
２４  記憶装置
２５  通信装置
２６  バス
３１  サンドボックス
３２  アプリ（アプリケーション）
３３  アプリ機能部
３４  トークン生成部
３５  発行部
３６  購読部
４１  メッセージバス
４２  履歴データベース
５０  発行メッセージ
５１  ヘッダ（トークン・マトリクス）
５２  ペイロード
５３  暗号化キー
６０  トークン・マトリクス
【図１】
2019125179.tif 000007
【図２】
2019125179.tif 000008
【図３】
2019125179.tif 000009
【図４】
2019125179.tif 000010
【図５】
2019125179.tif 000011
【図６】
2019125179.tif 000012
【図７】
2019125179.tif 000013
【図８】
2019125179.tif 000014
【図９】
2019125179.tif 000015
【図１０】
2019125179.tif 000016
【図１１】
2019125179.tif 000017