(57)【要約】  第１のアプリケーション（１０１）は、第２のアプリケーション（１０２）からの、指示識別情報を含む動作指示に応じて起動する。動作指示は、例えば、ＵＲＬスキームである。第１のアプリケーション（１０１）は、動作指示に対応した動作を実行する。第１のアプリケーション（１０１）は、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第２のアプリケーション（１０２）が参照可能である記憶領域に保存する。これにより、第１のアプリケーション（１０１）と第２のアプリケーション（１０２）とは連携する。
2018185919.tif 000002
【特許請求の範囲】
【請求項１】
端末装置上で動作するプログラムであって、
前記端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記動作指示に対応した動作を実行し、
前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
処理を前記端末装置に実行させることを特徴とするプログラム。
【請求項２】
前記動作は、前記指示識別情報が所定の条件を満たさない場合に、前記プログラムの起動時に行われる処理を中断し、または、前記プログラムを終了する動作を含む、ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記動作指示は、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ  ＳｃｈｅｍｅによってＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍを通じて行われる、ことを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記動作指示は、さらに、前記他のプログラムに指定され、前記指示識別情報が保存される第１の記憶領域を示す情報を含み、
前記保存する処理は、さらに、前記プログラムの起動に応じて、前記動作指示に基づいて、前記指示識別情報を前記第１の記憶領域に保存する、ことを特徴とする請求項１〜３のいずれか一つに記載のプログラム。
【請求項５】
前記動作指示は、さらに、前記他のプログラムに指定され、前記データが保存される第２の記憶領域を示す情報を含み、
前記保存する処理は、前記動作指示に基づいて、前記データと前記指示識別情報とを関連付けて前記第２の記憶領域に保存する、ことを特徴とする請求項１〜４のいずれか一つに記載のプログラム。
【請求項６】
前記保存する処理は、前記データと前記指示識別情報と前記データに関する時点情報とを関連付けて保存する、ことを特徴とする請求項１〜５のいずれか一つに記載のプログラム。
【請求項７】
端末装置上で動作するプログラムであって、
前記端末装置上で動作する他のプログラムへの動作指示を、前記プログラムが参照可能である記憶領域を示す情報と、前記動作指示を識別する指示識別情報とを含めて発行し、
前記記憶領域を監視し、前記動作指示に応じて起動した前記他のプログラムによって前記記憶領域に前記指示識別情報に対応付けて保存されたデータを取得する、
処理を前記端末装置に実行させることを特徴とするプログラム。
【請求項８】
前記取得する処理は、
前記動作指示を発行された時点と、前記記憶領域に前記データが書き込まれた時点との差分が閾値以上である場合には、前記記憶領域から前記データを削除する、ことを特徴とする請求項７に記載のプログラム。
【請求項９】
前記取得する処理は、
さらに、前記データを取得した場合、前記記憶領域から前記データを削除する、ことを特徴とする請求項７または８に記載のプログラム。
【請求項１０】
端末装置上で動作するプログラムの実行方法であって、
前記端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記動作指示に対応した動作を実行し、
前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
処理を前記端末装置が実行することを特徴とするプログラムの実行方法。
【請求項１１】
プログラムと他のプログラムとを動作させる端末装置であって、
前記プログラムを、前記他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記プログラムによって、前記動作指示に対応した動作を実行し、
前記プログラムによって、前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
制御部を有することを特徴とする端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、プログラムの実行方法、および端末装置に関する。
【背景技術】
【０００２】
従来、端末装置で動作するアプリケーションにプラグインを追加することにより、そのアプリケーションの機能拡張を行うことがある。【０００３】
先行技術としては、例えば、所定操作がなされた操作オブジェクトに対応する起動元プログラムの識別情報を取得し、その起動元プログラムの識別情報に基づき再生する動画を切り替えるものがある。また、例えば、シリアルコードを使用するユーザの属性情報を受け付けた場合、そのユーザの属性情報に予め対応付けられたリワードの特定情報を応答する技術がある。また、例えば、ＷｅｂアプリケーションからＷｅｂＡＰＩを介して取得されたＯＳ機能の実行要求に含まれるＷｅｂＡＰＩの識別情報を抽出し、抽出したＷｅｂＡＰＩの識別情報と対応付いて格納された機能モジュールを実行する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−４５６３９号公報
【特許文献２】国際公開第２０１６／０３８９８９号
【特許文献３】特開２０１４−２１５６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、端末装置で動作するアプリケーションにプラグインを追加すると、そのアプリケーションのデータサイズが増大してしまい、そのアプリケーションの配信にかかる負担の増大化を招く。一方で、アプリケーションに外部アプリケーションからデータを取得させるなど、アプリケーションを外部アプリケーションと連携させることが難しく、外部アプリにより機能拡張を行うこともできない。【０００６】
１つの側面では、本発明は、プログラム間で連携することができるプログラム、プログラムの実行方法、および端末装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、前記動作指示に対応した動作を実行し、前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、前記端末装置上で動作するプログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、プログラム間で連携することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるプログラムの実行方法の一実施例を示す説明図である。
【図２】図２は、端末装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、指示管理ＤＢ３００の記憶内容の一例を示す説明図である。
【図４】図４は、コンテンツＤＢ４００の記憶内容の一例を示す説明図である。
【図５】図５は、ファイルＤＢ５００の記憶内容の一例を示す説明図である。
【図６】図６は、端末装置１００の機能的構成例を示すブロック図である。
【図７】図７は、実施例１を示す説明図（その１）である。
【図８】図８は、実施例１を示す説明図（その２）である。
【図９】図９は、モバイルアプリ７１０によって実行する連携処理手順の一例を示すフローチャート（その１）である。
【図１０】図１０は、モバイルアプリ７１０によって実行する連携処理手順の一例を示すフローチャート（その２）である。
【図１１】図１１は、外部アプリ７２０によって実行する動作処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかるプログラム、プログラムの実行方法、および端末装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかるプログラムの実行方法の一実施例）
図１は、実施の形態にかかるプログラムの実行方法の一実施例を示す説明図である。図１の例では、端末装置１００は、自装置上で、複数のプログラムを動作させるコンピュータである。複数のプログラムは、例えば、複数のアプリケーションである。複数のアプリケーションは、例えば、モバイルアプリケーションと外部アプリケーションとを含む。
【００１２】
以下の説明では、モバイルアプリケーションを「モバイルアプリ」と表記する場合がある。以下の説明では、外部アプリケーションを「外部アプリ」と表記する場合がある。端末装置１００は、例えば、スマートフォンやタブレット端末などである。
【００１３】
ここで、スマートフォンなどに予め導入され、または配信され、スマートフォンなどで動作するモバイルアプリについて機能拡張を行うことが望まれる場合がある。例えば、モバイルアプリにプラグインを追加することにより、そのモバイルアプリの機能拡張を行ったうえで、スマートフォンなどにそのモバイルアプリを配信することが考えられる。
【００１４】
しかしながら、この場合では、モバイルアプリにプラグインを追加することにより、モバイルアプリのデータサイズの増大化を招いてしまう。また、プラグインを変更すると、モバイルアプリのデータサイズの増大化を招いてしまうことがある。このため、モバイルアプリを配信する際に、スマートフォンなどにかかる通信負担の増大化を招いてしまう。
【００１５】
また、この場合では、モバイルアプリに追加されたプラグインは、モバイルアプリにＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）から割り当てられたメモリ容量を、モバイルアプリのメインルーチンなどと共通して使用することになる。このため、モバイルアプリが使用するメモリ容量が、モバイルアプリにＯＳから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性がある。
【００１６】
これに対し、モバイルアプリを外部アプリと連携させることにより、モバイルアプリについて機能拡張を行う場合が考えられる。例えば、モバイルアプリが、ＵＲＬスキーム（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ  Ｓｃｈｅｍｅ）を介して、バーコードリーダなどの外部アプリを起動する場合が考えられる。外部アプリが、ＵＲＬスキームを介して、データをモバイルアプリに送信する場合が考えられる。
【００１７】
しかしながら、この場合では、外部アプリが、ＵＲＬスキームを用いるため、データをモバイルアプリに送信する都度、そのモバイルアプリをフォアグラウンドに移動してしまう。このため、外部アプリが、複数のデータをモバイルアプリに送信する際には、スマートフォンなどの利便性の低下を招いてしまう可能性がある。
【００１８】
例えば、利用者が外部アプリに複数のデータを１つずつ読み取らせることが考えられるが、外部アプリは、データを読み取る都度、そのデータをモバイルアプリに送信し、バックグラウンドに移動してしまうことになる。このため、利用者は、外部アプリにデータを読み取らせる都度、外部アプリをフォアグラウンドに移動し直すことになり、スマートフォンなどの利便性は低下してしまう。
【００１９】
一方で、利用者が外部アプリに複数のデータを読み取らせた後に外部アプリがモバイルアプリに複数のデータをまとめて送信することが考えられるが、外部アプリは、複数のデータをいくつか読み取った時点で強制終了し、読み取ったデータを喪失することがある。このため、利用者は、外部アプリに複数のデータのいくつかを読み取らせた後、外部アプリが強制終了してしまうと、再び複数のデータを読み取らせることになり、スマートフォンなどの利便性は低下してしまう。
【００２０】
また、この場合では、モバイルアプリは、起動した外部アプリとは異なる不正アプリからでも、ＵＲＬスキームを介して、データを受け取ってしまう可能性がある。このため、モバイルアプリが、スマートフォンなどのセキュリティの低下を招いてしまう可能性がある。
【００２１】
さらに、モバイルアプリが、外部アプリを起動する際に、モバイルアプリを識別する識別情報を外部アプリに渡しておき、受け取ったデータにその識別情報が付されていなければ、そのデータを破棄するようにする場合が考えられる。しかしながら、この場合であっても、モバイルアプリは、過去に外部アプリに渡した識別情報が不正アプリに流用された場合には、不正アプリからのデータを破棄することができない。
【００２２】
そこで、本実施の形態では、モバイルアプリがＵＲＬスキームを介して外部アプリに対して発行する指示に含まれ、その指示自体を識別する指示識別情報を利用することにより、アプリケーション間の連携を実現する外部アプリの実行方法について説明する。
【００２３】
図１の例では、端末装置１００は、自装置上で、第１のアプリケーション１０１と第２のアプリケーション１０２とを動作可能である。第１のアプリケーション１０１は、モバイルアプリによって起動される外部アプリである。外部アプリは、例えば、バーコードリーダである。第２のアプリケーション１０２は、モバイルアプリである。
【００２４】
（１−１）第１のアプリケーション１０１は、第２のアプリケーション１０２からの、指示識別情報を含む動作指示に応じて起動する。例えば、モバイルアプリは、指示識別情報を含むＵＲＬスキームを実行することにより、ＯＳを通じて外部アプリを起動する。これにより、外部アプリは、指示識別情報を取得することができる。
【００２５】
（１−２）第１のアプリケーション１０１は、動作指示に対応した動作を実行する。外部アプリは、例えば、利用者の操作入力に基づいて、バーコードからデータを読み取る。これにより、外部アプリは、出力対象であり、モバイルアプリに取得させるデータを読み取ることができる。
【００２６】
（１−３）第１のアプリケーション１０１は、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第２のアプリケーション１０２が参照可能である記憶領域に保存する。外部アプリは、例えば、読み取ったデータを、動作指示に含まれる指示識別情報に関連付けてモバイルアプリが参照可能である記憶領域に保存する。
【００２７】
一方で、第２のアプリケーション１０２は、第１のアプリケーション１０１によって保存されたデータを記憶領域から読み出して取得することができ、そのデータを利用することができる。これにより、外部アプリは、モバイルアプリとの連携を実現し、モバイルアプリにプラグインを追加しなくても端末装置１００の機能を増やすことができる。
【００２８】
また、端末装置１００は、モバイルアプリと外部アプリとの連携によって、モバイルアプリのデータサイズの増大化を抑制することができる。そして、モバイルアプリの製作者は、外部アプリを変更して外部アプリのデータサイズを増大した場合でも、モバイルアプリを変更しなくてもよくモバイルアプリのデータサイズを増大させなくてよくなる。このため、製作者は、外部アプリを配信し直せば、モバイルアプリを配信し直さなくてもよく、端末装置１００にかかる通信負担を低減することができる。同様に、製作者は、モバイルアプリを変更した場合でも、外部アプリを配信し直さなくてもよい。
【００２９】
また、端末装置１００は、ＯＳによって、モバイルアプリと、外部アプリとに、それぞれ、メモリ容量を割り当てることができる。このため、端末装置１００は、モバイルアプリが使用するメモリ容量が、モバイルアプリにＯＳから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性を低減することができる。同様に、端末装置１００は、外部アプリが使用するメモリ容量が、外部アプリにＯＳから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性を低減することができる。
【００３０】
また、外部アプリは、データを取得する都度、そのデータを保存することができる。このため、外部アプリは、強制終了された場合であっても、データを喪失する可能性を低減することができる。また、外部アプリは、データを取得する都度、そのデータをモバイルアプリに送信しなくても、データを喪失する可能性を低減することができる。
【００３１】
また、外部アプリは、データを取得する都度、そのデータをモバイルアプリに送信して、モバイルアプリをフォアグラウンドに移動させなくてもよい。このため、外部アプリは、利用者が複数のデータを連続して取得する操作入力を行おうとする場合に、データを取得する都度モバイルアプリをフォアグラウンドに移動してしまい利用者が操作入力を行いづらくしてしまう可能性を低減することができる。
【００３２】
（端末装置１００のハードウェア構成例）
次に、図２を用いて、端末装置１００のハードウェア構成例について説明する。
【００３３】
図２は、端末装置１００のハードウェア構成例を示すブロック図である。図２において、端末装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５と、タッチパネル２０６とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００３４】
ここで、ＣＰＵ２０１は、端末装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００３５】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３６】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、端末装置１００から着脱可能であってもよい。記録媒体２０５は、実施の形態にかかるアプリケーションを記憶してもよい。
【００３７】
タッチパネル２０６は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示するディスプレイを有する。タッチパネル２０６は、ディスプレイ上、または、ディスプレイ外周部に設けられ、タッチパネル２０６上のユーザの接触位置を検出する検出装置を有する。検出装置は、例えば、抵抗膜方式、静電容量方式、超音波方式、光学方式、または、電磁誘導方式などを用いて、接触位置を検出する。タッチパネル２０６は、ユーザの接触位置に応じて、文字、数字、各種指示などの入力を行う。
【００３８】
端末装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイなどを有してもよい。また、端末装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００３９】
（指示管理ＤＢ（ＤａｔａＢａｓｅ）３００の記憶内容）
次に、図３を用いて、モバイルアプリが参照可能な記憶領域に記憶される指示管理ＤＢ３００の記憶内容について説明する。指示管理ＤＢ３００は、例えば、図２に示した端末装置１００のメモリ２０２や記録媒体２０５により実現される。
【００４０】
図３は、指示管理ＤＢ３００の記憶内容の一例を示す説明図である。図３に示すように、指示管理ＤＢ３００は、識別ＩＤと、コンテンツＩＤと、ユーザＩＤと、データ格納先と、発行日時とのフィールドを有する。指示管理ＤＢ３００は、動作指示ごとに各フィールドに情報を設定することにより、動作指示情報がレコードとして記憶される。
【００４１】
識別ＩＤのフィールドは、動作指示になるＵＲＬスキームを識別する識別ＩＤが設定される。コンテンツＩＤのフィールドは、モバイルアプリが提供するコンテンツであって、そのＵＲＬスキームによって起動される外部アプリによって保存された１以上のデータを利用するコンテンツを識別するコンテンツＩＤが設定される。ユーザＩＤのフィールドは、モバイルアプリの利用者を識別するユーザＩＤが設定される。データ格納先のフィールドは、そのＵＲＬスキームによって起動される外部アプリがデータを保存する対象ファイルのパスが設定される。発行日時のフィールドは、そのＵＲＬスキームを作成した日時が設定される。
【００４２】
（コンテンツＤＢ４００の記憶内容）
次に、図４を用いて、モバイルアプリが参照可能な記憶領域に記憶されるコンテンツＤＢ４００の記憶内容について説明する。コンテンツＤＢ４００は、例えば、図２に示した端末装置１００のメモリ２０２や記録媒体２０５により実現される。
【００４３】
図４は、コンテンツＤＢ４００の記憶内容の一例を示す説明図である。図４に示すように、コンテンツＤＢ４００は、コンテンツＩＤと、コンテンツ名と、ユーザＩＤと、データとのフィールドを有する。コンテンツＤＢ４００は、コンテンツごとに各フィールドに情報を設定することにより、コンテンツ情報がレコードとして記憶される。
【００４４】
コンテンツＩＤのフィールドは、モバイルアプリが提供するコンテンツであって、ＵＲＬスキームによって起動される外部アプリによって保存された１以上のデータを利用するコンテンツを識別するコンテンツＩＤが設定される。コンテンツ名のフィールドは、そのコンテンツの名称が設定される。ユーザＩＤのフィールドは、モバイルアプリの利用者を識別するユーザＩＤが設定される。データのフィールドは、コンテンツに関するパラメータが設定され、例えば、外部アプリによって保存された１以上のデータが設定される。
【００４５】
（ファイルＤＢ５００の記憶内容）
次に、図５を用いて、モバイルアプリと外部アプリが共通して参照可能な記憶領域に記憶されるファイルＤＢ５００の記憶内容について説明する。ファイルＤＢ５００は、例えば、図２に示した端末装置１００のメモリ２０２や記録媒体２０５、あるいは、ネットワーク２１０を経由して通信可能なサーバにより実現される。
【００４６】
図５は、ファイルＤＢ５００の記憶内容の一例を示す説明図である。図５に示すように、ファイルＤＢ５００は、識別ＩＤと、データと、入力日時とのフィールドを有する。ファイルＤＢ５００は、データごとに各フィールドに情報を設定することにより、ファイルがレコードとして記憶される。
【００４７】
識別ＩＤのフィールドは、動作指示になるＵＲＬスキームに含まれ、そのＵＲＬスキームを識別する識別ＩＤが設定される。データのフィールドは、そのＵＲＬスキームに基づく動作によって得られたデータが設定される。入力日時のフィールドは、データのフィールドにデータを設定した日時が設定される。
【００４８】
（端末装置１００の機能的構成例）
次に、図６を用いて、端末装置１００の機能的構成例について説明する。
【００４９】
図６は、端末装置１００の機能的構成例を示すブロック図である。端末装置１００は、起動部６０１と、実行部６０２と、出力部６０３とを含む。
【００５０】
起動部６０１〜出力部６０３は、制御部となる機能である。起動部６０１〜出力部６０３は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００５１】
起動部６０１は、第１のアプリケーション１０１を起動する。第１のアプリケーション１０１は、端末装置１００上で動作するアプリケーションである。第１のアプリケーション１０１は、例えば、外部アプリである。起動部６０１は、例えば、第２のアプリケーション１０２からの指示識別情報を含む動作指示に基づき、第１のアプリケーション１０１を起動する。第２のアプリケーション１０２は、端末装置１００上で動作するアプリケーションである。第２のアプリケーション１０２は、例えば、モバイルアプリである。指示識別情報は、例えば、識別ＩＤである。動作指示は、例えば、その動作指示を識別する識別ＩＤを含む。動作指示は、さらに、その動作指示に対応する動作によって得られるデータを保存する保存先となる、対象ファイルのパスを含んでもよい。動作指示は、例えば、ＵＲＬスキームである。
【００５２】
起動部６０１は、具体的には、モバイルアプリが作成した、識別ＩＤを含むＵＲＬスキームを実行することにより、外部アプリを起動する。これにより、外部アプリは、ＵＲＬスキームに基づいて、そのＵＲＬスキームを識別する識別ＩＤを取得することができ、そのＵＲＬスキームに対応する動作を行って得られるデータを保存する保存先になる対象ファイルのパスを取得することができる。
【００５３】
実行部６０２は、第１のアプリケーション１０１を実行する。実行部６０２は、第１のアプリケーション１０１を実行することによって、動作指示に対応した動作を実行する。動作は、例えば、バーコードからのデータの読み取り、および読み取りデータの出力などである。実行部６０２は、例えば、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第２のアプリケーション１０２が参照可能である記憶領域に保存する。
【００５４】
実行部６０２は、例えば、外部アプリを実行することによって、モバイルアプリからのＵＲＬスキームに基づいて、バーコードからデータを読み取り、識別ＩＤと対応付けて対象ファイルに保存する。これにより、実行部６０２は、モバイルアプリに、モバイルアプリが作成したＵＲＬスキームに対応し、外部アプリによって作成されたデータを特定させ、取得させることができる。
【００５５】
また、動作は、指示識別情報が所定の条件を満たさない場合に、第１のアプリケーション１０１の起動時に行われる処理を中断し、または、第１のアプリケーション１０１を終了する動作を含んでもよい。実行部６０２は、例えば、予め設定された形式に合致しない識別ＩＤであれば、外部アプリの起動時に行われる処理を中断し、外部アプリを終了してもよい。形式は、例えば、識別ＩＤの先頭文字の形式である。形式は、例えば、識別ＩＤにパリティを含むという形式であってもよい。これにより、実行部６０２は、外部アプリが不正アプリによって利用されることを抑制することができる。
【００５６】
実行部６０２は、例えば、指示識別情報が、過去に取得したことがあり、過去に取得した時点から所定の時間が経過した指示識別情報である場合、外部アプリの起動時に行われる処理を中断し、外部アプリを終了してもよい。これにより、実行部６０２は、モバイルアプリが過去に作成した識別ＩＤを不正アプリが流用した場合などであっても、外部アプリが不正アプリによって利用されることを抑制することができる。
【００５７】
また、動作指示は、さらに、第２のアプリケーション１０２に指定され、指示識別情報が保存される記憶領域を示す情報を含んでもよい。指示識別情報が保存される記憶領域は、例えば、対象ファイルである。実行部６０２は、例えば、外部アプリの起動に応じて、外部アプリによって、識別ＩＤを対象ファイルに保存する。これにより、実行部６０２は、対象ファイルに、外部アプリが起動したことを示す情報として、識別ＩＤを保存することができる。
【００５８】
実行部６０２は、例えば、対象ファイルにデータを保存する際、そのデータに対応付けてそのデータに関する時点情報を保存してもよい。実行部６０２は、具体的には、データを取得した時点、データを作成した時点、またはデータを保存する時点などを示す時点情報を保存する。これにより、実行部６０２は、モバイルアプリが、外部アプリの動作状態を判定するための情報を保存しておくことができる。
【００５９】
実行部６０２は、第２のアプリケーション１０２を実行する。実行部６０２は、第２のアプリケーション１０２を実行することによって、第１のアプリケーション１０１への動作指示に、第１のアプリケーション１０１が参照可能である記憶領域を示す情報と、その動作指示を識別する指示識別情報とを含めることができる。そして、実行部６０２は、第１のアプリケーション１０１への動作指示を発行することができる。
【００６０】
実行部６０２は、例えば、外部アプリへの動作指示となるＵＲＬスキームを、そのＵＲＬスキームを識別する識別ＩＤと、その外部アプリによって取得されるデータの保存先になる対象ファイルのパスとを含めて発行することができる。これにより、実行部６０２は、外部アプリに、識別ＩＤに対応付けて対象ファイルにデータを保存させることができる。このため、実行部６０２は、モバイルアプリが、発行したＵＲＬスキームに対応するデータを特定して、取得することができるようにすることができる。
【００６１】
実行部６０２は、第２のアプリケーション１０２を実行することによって、記憶領域を監視し、動作指示に応じて起動した第１のアプリケーション１０１によって、その記憶領域に指示識別情報に対応付けて保存されたデータを取得する。実行部６０２は、例えば、対象ファイルを監視し、外部アプリが識別ＩＤに対応付けて対象ファイルに書き込んだデータを取得することができる。
【００６２】
実行部６０２は、さらに、動作指示を発行した時点と、記憶領域にデータが書き込まれた時点との差分が閾値以上である場合に、記憶領域からデータを削除してもよい。実行部６０２は、例えば、指示管理ＤＢ３００の発行日時と、ファイルＤＢ５００の入力日時との差分が閾値以上である場合に、対象ファイルからデータを取得せずに削除する。これにより、実行部６０２は、セキュリティの低下を抑制することができる。
【００６３】
実行部６０２は、さらに、データを取得した場合、記憶領域からデータを削除してもよい。実行部６０２は、例えば、対象ファイルからデータを取得した場合、コンテンツＤＢ４００にデータを複製して、対象ファイルからはそのデータを削除する。これにより、実行部６０２は、外部アプリが書き込んだデータが、のちに不正利用されないようにして、セキュリティの低下を抑制することができる。
【００６４】
出力部６０３は、第１のアプリケーション１０１や第２のアプリケーション１０２が取得したデータを出力する機能を有する。また、出力部６０３は、さらに、第１のアプリケーション１０１と第２のアプリケーション１０２との起動状態や連携状態を示す情報を出力する機能を有してもよい。出力形式は、例えば、ディスプレイへの表示、タッチパネル２０６への表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶などである。
【００６５】
（実施例１）
次に、図７および図８を用いて、実施例１について説明する。
【００６６】
図７および図８は、実施例１を示す説明図である。図７および図８の例では、端末装置１００は、自装置上で、モバイルアプリ７１０と外部アプリ７２０を動作させることができる。モバイルアプリ７１０は、ＵＩ処理部７１１と、アプリ管理部７１３とを有する。
【００６７】
ＵＩ処理部７１１は、ブラウザ７１２を介して１以上のコンテンツを提供する。ＵＩ処理部７１１は、ブラウザ７１２を介して、利用者７０１からの操作入力を受け付ける。アプリ管理部７１３は、外部アプリ７２０を起動する。アプリ管理部７１３は、監視部７１４を有する。監視部７１４は、外部アプリ７２０が保存するデータを監視する。
【００６８】
図７の例では（７−１）モバイルアプリ７１０は、ＵＩ処理部７１１によって、ブラウザ７１２の提供するいずれかのコンテンツにおいて、タッチパネル２０６などを用いた利用者７０１からの外部アプリ７２０の起動を要求する操作入力を受け付ける。モバイルアプリ７１０は、ＵＩ処理部７１１からアプリ管理部７１３へと、外部アプリ７２０の起動を要求する操作入力を通知する。
【００６９】
また、モバイルアプリ７１０は、ＵＩ処理部７１１からアプリ管理部７１３へと、その操作入力を受け付けたコンテンツのコンテンツＩＤを通知する。これにより、モバイルアプリ７１０は、アプリ管理部７１３に、どの外部アプリ７２０を起動するかを通知し、どのコンテンツが外部アプリ７２０が保存するデータを利用するかを通知することができる。
【００７０】
（７−２）モバイルアプリ７１０は、アプリ管理部７１３によって、次に発行する動作指示を識別する識別ＩＤを生成する。また、モバイルアプリ７１０は、アプリ管理部７１３によって、次に発行する動作指示によって起動される外部アプリ７２０によってデータが保存される対象ファイルをファイルＤＢ５００に生成し、その対象ファイルのパスを生成する。また、モバイルアプリ７１０は、アプリ管理部７１３によって、操作入力を受け付けたコンテンツのコンテンツＩＤを生成する。
【００７１】
モバイルアプリ７１０は、アプリ管理部７１３によって、生成した識別ＩＤとパスとコンテンツＩＤとを対応付けて指示管理ＤＢ３００に記憶する。モバイルアプリ７１０は、アプリ管理部７１３によって、生成した識別ＩＤとパスとを含む動作指示になるＵＲＬスキームを作成する。モバイルアプリ７１０は、監視部７１４によって、生成した対象ファイルへのデータの書き込み状況を監視し始める。これにより、モバイルアプリ７１０は、外部アプリ７２０がデータを対象ファイルに書き込んでから、そのデータを取得するまでにかかる時間の低減化を図ることができる。また、モバイルアプリ７１０は、コンテンツＩＤをＵＲＬスキームに含めないため、コンテンツＩＤが不正アプリに流用される可能性を低減することができる。
【００７２】
（７−３）モバイルアプリ７１０は、アプリ管理部７１３によって、作成したＵＲＬスキームを実行する。これにより、モバイルアプリ７１０は、ＯＳを通じて、外部アプリ７２０を起動することができる。また、モバイルアプリ７１０は、外部アプリ７２０に、動作指示に対応した所定の動作を行わせ、対象ファイルにデータを保存させることができる。また、モバイルアプリ７１０は、コンテンツＩＤを外部アプリ７２０に渡さないため、コンテンツＩＤが不正アプリに流用される可能性を低減することができる。
【００７３】
（７−４）外部アプリ７２０は、ＯＳを通じて、起動される。外部アプリ７２０は、起動すると、ＵＲＬスキームに含まれる識別ＩＤと対象ファイルのパスとを取得する。外部アプリ７２０は、取得したパスに基づいて、取得した識別ＩＤと、入力日時とを対応付けて、ファイルＤＢ５００の対象ファイルに保存する。モバイルアプリ７１０は、監視部７１４によって、対象ファイルに書き込まれた識別ＩＤや入力日時などのデータを取得し、コンテンツＤＢ４００に記憶する。
【００７４】
これにより、モバイルアプリ７１０は、監視部７１４によって、外部アプリ７２０からＵＲＬスキームに対して応答されなくても、外部アプリ７２０が起動したことを検出することができる。また、モバイルアプリ７１０は、監視部７１４によって、外部アプリ７２０が起動した日時を取得することができる。モバイルアプリ７１０は、監視部７１４によって、外部アプリ７２０が起動に成功したか否かを把握することができる。次に、図８の説明に移行する。
【００７５】
図８の例では（８−１）外部アプリ７２０は、タッチパネル２０６などを用いた、利用者７０１からの操作入力に応じて、データを取得する。外部アプリ７２０は、例えば、バーコードリーダの機能を実現し、バーコードからデータを読み取る。
【００７６】
（８−２）外部アプリ７２０は、識別ＩＤを用いて、読み取ったデータを暗号化する。外部アプリ７２０は、取得したパスに基づいて、取得した識別ＩＤと、暗号化により得られた暗号化データと、入力日時とを対応付けて、ファイルＤＢ５００の対象ファイルに保存する。ここで、外部アプリ７２０は、対象ファイルに保存する識別ＩＤや入力日時も暗号化してもよい。これにより、外部アプリ７２０は、セキュリティの向上を図ることができる。
【００７７】
（８−３）モバイルアプリ７１０は、監視部７１４によって、対象ファイルに書き込まれた識別ＩＤと暗号化データと入力日時とを取得し、暗号化データを復号する。モバイルアプリ７１０は、指示管理ＤＢ３００の発行日時に基づいて、取得した識別ＩＤが、生成してから所定時間が経過した識別ＩＤであれば、暗号化データを復号せずに削除してもよい。また、モバイルアプリ７１０は、暗号化データを取得すると、対象ファイルから暗号化データを削除する。これにより、モバイルアプリ７１０は、取得済みの暗号化データが不正アプリに利用されることを防止し、セキュリティの向上を図ることができる。
【００７８】
（８−４）モバイルアプリ７１０は、監視部７１４によって、取得した識別ＩＤが、生成してから所定時間が経過していない識別ＩＤであれば、指示管理ＤＢ３００に基づいて、取得した識別ＩＤに対応するコンテンツＩＤを特定する。モバイルアプリ７１０は、監視部７１４によって、取得した識別ＩＤと、復号により得られたデータと、特定したコンテンツＩＤとを対応付けて、コンテンツＤＢ４００に記憶する。これにより、モバイルアプリ７１０は、どのコンテンツに、取得したデータを利用させるかを特定することができる。
【００７９】
（８−５）モバイルアプリ７１０は、ＵＩ処理部７１１によって、タッチパネル２０６などを用いた、利用者７０１からの操作入力に応じて、フォアグラウンドに移動する。これにより、モバイルアプリ７１０は、外部アプリ７２０が連続して複数のデータを取得する動作を行う場合などには、フォアグラウンドに移動せず、外部アプリ７２０を介した利用者７０１の操作入力を行いやすくすることができる。
【００８０】
（８−６）モバイルアプリ７１０は、ＵＩ処理部７１１によって、コンテンツＤＢ４００からデータを取得するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を呼び出して、実行する。モバイルアプリ７１０は、ＵＩ処理部７１１によって、データを取得する。これにより、モバイルアプリ７１０は、操作入力を受け付けたコンテンツに、取得したデータを利用させることができる。
【００８１】
（８−７）モバイルアプリ７１０は、ＵＩ処理部７１１によって、操作入力を受け付けたコンテンツにおいて、取得したデータを処理する。これにより、端末装置１００は、外部アプリ７２０と、モバイルアプリ７１０との連携を実現することができる。また、端末装置１００は、モバイルアプリ７１０と外部アプリ７２０との連携によって、モバイルアプリ７１０のデータサイズの増大化を抑制することができる。
【００８２】
また、端末装置１００は、ＯＳによって、モバイルアプリ７１０と、外部アプリ７２０とに、それぞれ、メモリ容量を割り当てることができる。また、外部アプリ７２０は、データを取得する都度、そのデータを保存することができる。また、外部アプリ７２０は、データを取得する都度、そのデータをモバイルアプリ７１０に送信して、モバイルアプリ７１０をフォアグラウンドに移動させなくてもよい。
【００８３】
このように、モバイルアプリ７１０は、識別ＩＤを確認することにより、起動した外部アプリ７２０と、対象ファイルにデータを保存した外部アプリ７２０とが同一であることを確認することができる。このため、モバイルアプリ７１０は、識別ＩＤを含む動作指示を発行した外部アプリ７２０とは異なる不正アプリによって保存されたデータを、誤って取得してしまうことを抑制することができる。
【００８４】
また、モバイルアプリ７１０は、識別ＩＤを確認することにより、同じ外部アプリ７２０が保存したデータが、識別ＩＤに対応する動作指示に基づく動作によって保存されたデータであるか否かを判別することができる。このため、モバイルアプリ７１０は、識別ＩＤに対応する動作指示とは異なる動作指示に基づく動作によって保存されたデータを、誤って取得してしまうことを抑制することができる。また、モバイルアプリ７１０は、フォアグラウンドに移動しなくても、バックグラウンドのまま、外部アプリ７２０が保存したデータを取得することができる。
【００８５】
また、外部アプリ７２０は、データを取得する都度、モバイルアプリ７１０に送信しておかなくても、モバイルアプリ７１０が、ファイルＤＢ５００の入力日時に基づいて、データを取得した順番を特定可能なようにすることができる。モバイルアプリ７１０は、ファイルＤＢ５００の入力日時に基づいて、外部アプリ７２０がデータを取得した順番を特定することができる。
【００８６】
また、外部アプリ７２０は、同時に複数のモバイルアプリ７１０から動作指示を受け付けても、データを保存するファイルを、それぞれのモバイルアプリ７１０が指定した対象ファイルに分けることができる。このため、外部アプリ７２０は、それぞれのモバイルアプリ７１０が取得するデータが混在してしまうことを防止し、複数のモバイルアプリ７１０の競合を抑制することができる。
【００８７】
外部アプリ７２０は、不正アプリが識別ＩＤを流用してＵＲＬスキームを用いて起動した場合でも、過去に用いたことがある識別ＩＤによるＵＲＬスキームであれば、起動時処理を中断することができ、セキュリティの向上を図ることができる。また、外部アプリ７２０は、対象ファイルが作成されていない場合に、起動時処理を中断し、セキュリティの向上を図ってもよい。
【００８８】
また、製作者は、外部アプリ７２０を変更する場合には、モバイルアプリ７１０を変更しなくてもよい。同様に、製作者は、モバイルアプリ７１０を変更する場合には、外部アプリ７２０を変更しなくてもよい。このため、製作者は、モバイルアプリ７１０や外部アプリ７２０を管理しやすくなる。
【００８９】
（連携処理手順の一例）
次に、図９および図１０を用いて、端末装置１００がモバイルアプリ７１０によって実行する連携処理手順の一例について説明する。
【００９０】
図９および図１０は、モバイルアプリ７１０によって実行する連携処理手順の一例を示すフローチャートである。図９において、端末装置１００は、外部アプリ７２０を起動する操作入力を、利用者７０１から受け付ける（ステップＳ９０１）。
【００９１】
端末装置１００は、操作入力を受け付けると、識別ＩＤと、外部アプリ７２０によるデータの保存先になるファイルとを作成する（ステップＳ９０２）。端末装置１００は、作成した識別ＩＤと、作成したファイルの識別情報とを対応付けて、モバイルアプリ７１０内の指示管理ＤＢ３００に記憶する（ステップＳ９０３）。
【００９２】
端末装置１００は、外部アプリ７２０の動作指示になるＵＲＬスキームを作成する（ステップＳ９０４）。端末装置１００は、作成したファイルの監視を開始する（ステップＳ９０５）。端末装置１００は、作成したＵＲＬスキームを実行する（ステップＳ９０６）。端末装置１００は、図１０のステップＳ１００１の処理に移行する。
【００９３】
図１０において、端末装置１００は、作成したファイルの監視によって、そのファイルに暗号化データが書き込まれたか否かを判定する（ステップＳ１００１）。ここで、暗号化データが書き込まれていない場合（ステップＳ１００１：Ｎｏ）、端末装置１００は、ステップＳ１００１の処理に戻る。
【００９４】
一方で、暗号化データが書き込まれている場合（ステップＳ１００１：Ｙｅｓ）、端末装置１００は、識別ＩＤを用いて、ファイルに書き込まれた暗号化データを復号する（ステップＳ１００２）。端末装置１００は、復号によりデータを取得すると、ファイルから暗号化データを削除する（ステップＳ１００３）。
【００９５】
端末装置１００は、復号により取得したデータが識別ＩＤと一致するか否かを判定する（ステップＳ１００４）。ここで、一致しない場合（ステップＳ１００４：Ｎｏ）、端末装置１００は、識別ＩＤが有効であるか否かを判定する（ステップＳ１００５）。ここで、有効ではない場合（ステップＳ１００５：Ｎｏ）、端末装置１００は、連携処理を終了する。
【００９６】
一方で、有効である場合（ステップＳ１００５：Ｙｅｓ）、端末装置１００は、復号により取得したデータを、モバイルアプリ７１０内のコンテンツＤＢ４００に記憶する（ステップＳ１００６）。
【００９７】
端末装置１００は、モバイルアプリ７１０を、フォアグラウンドに移動する（ステップＳ１００７）。端末装置１００は、コンテンツＤＢ４００からデータを取得するＡＰＩを実行する（ステップＳ１００８）。端末装置１００は、データを反映する（ステップＳ１００９）。端末装置１００は、ステップＳ１００１の処理に戻る。
【００９８】
一方で、一致する場合（ステップＳ１００４：Ｙｅｓ）、端末装置１００は、入力日時−発行日時が、閾値未満であるか否かを判定する（ステップＳ１０１０）。ここで、閾値以上である場合（ステップＳ１０１０：Ｎｏ）、端末装置１００は、識別ＩＤを無効化する（ステップＳ１０１１）。端末装置１００は、連携処理を終了する。
【００９９】
一方で、閾値未満である場合（ステップＳ１０１０：Ｙｅｓ）、端末装置１００は、識別ＩＤを有効化する（ステップＳ１０１２）。端末装置１００は、ステップＳ１００１の処理に戻る。これにより、端末装置１００は、外部アプリ７２０がファイルに書き込んだデータを、モバイルアプリ７１０で取得することができ、モバイルアプリ７１０と外部アプリ７２０との連携を実現することができる。
【０１００】
（動作処理手順の一例）
次に、図１１を用いて、端末装置１００が外部アプリ７２０によって実行する動作処理手順の一例について説明する。
【０１０１】
図１１は、外部アプリ７２０によって実行する動作処理手順の一例を示すフローチャートである。図１１において、端末装置１００は、ＵＲＬスキームを用いた動作指示を受け付ける（ステップＳ１１０１）。端末装置１００は、動作指示を受け付けると、その動作指示に割り振られた識別ＩＤを、日時に対応付けてファイルに保存する（ステップＳ１１０２）。
【０１０２】
端末装置１００は、受け付けた動作指示に応じた動作を行う（ステップＳ１１０３）。端末装置１００は、動作指示に応じた動作を行った結果、データを取得する（ステップＳ１１０４）。端末装置１００は、取得したデータを識別ＩＤで暗号化する（ステップＳ１１０５）。
【０１０３】
端末装置１００は、暗号化により得られた暗号化データを、日時に対応付けてファイルに保存する（ステップＳ１１０６）。これにより、端末装置１００は、モバイルアプリ７１０が取得可能な状態でデータを保存することができ、モバイルアプリ７１０と外部アプリ７２０との連携を実現することができる。
【０１０４】
以上説明したように、端末装置１００上で動作する第１のアプリケーション１０１によれば、端末装置１００上で動作する第２のアプリケーション１０２からの、指示識別情報を含む動作指示に応じて起動することができる。また、第１のアプリケーション１０１によれば、動作指示に対応した動作を実行し、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第２のアプリケーション１０２が参照可能である記憶領域に保存することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２が取得可能なようにデータを保存することができ、第２のアプリケーション１０２との連携を実現することができる。
【０１０５】
結果として、端末装置１００は、第１のアプリケーション１０１と第２のアプリケーション１０２との連携によって、第２のアプリケーション１０２のデータサイズの増大化を抑制することができる。また、端末装置１００は、ＯＳによって、第１のアプリケーション１０１と、第２のアプリケーション１０２とに、それぞれ、メモリ容量を割り当てることができる。また、第１のアプリケーション１０１は、データを取得する都度、そのデータを保存することができる。また、第１のアプリケーション１０１は、データを取得する都度、そのデータを第２のアプリケーション１０２に送信して、第２のアプリケーション１０２をフォアグラウンドに移動させなくてもよい。
【０１０６】
また、第１のアプリケーション１０１によれば、指示識別情報が所定の条件を満たさない場合に、第１のアプリケーション１０１の起動時に行われる処理を中断し、または、第１のアプリケーション１０１を終了する動作を実行することができる。これにより、第１のアプリケーション１０１は、不正アプリによる動作指示によって動作することを防止することができる。
【０１０７】
また、第１のアプリケーション１０１によれば、第２のアプリケーション１０２からのＵＲＬスキームによってＯＳを通じて起動することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２に応答しなくてもよい。
【０１０８】
また、第１のアプリケーション１０１によれば、起動に応じて、指示識別情報を、動作指示に含まれ、第２のアプリケーション１０２に指定された第１の記憶領域に保存することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２が、第１のアプリケーション１０１の起動成功を把握可能にすることができる。
【０１０９】
また、第１のアプリケーション１０１によれば、データと指示識別情報とを関連付けて動作指示に含まれ、第２のアプリケーション１０２に指定された第２の記憶領域に保存することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２が取得可能であり、第２のアプリケーション１０２以外の不正アプリなどが特定していない記憶領域に、データを保存することができ、セキュリティの向上を図ることができる。
【０１１０】
また、第１のアプリケーション１０１によれば、データと指示識別情報とデータに関する時点情報とを関連付けて保存することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２がデータを管理しやすくすることができる。
【０１１１】
また、第２のアプリケーション１０２によれば、第１のアプリケーション１０１への動作指示を、第２のアプリケーション１０２が参照可能である記憶領域を示す情報と、動作指示を識別する指示識別情報とを含めて発行することができる。また、第２のアプリケーション１０２によれば、その記憶領域を監視し、動作指示に応じて起動した第１のアプリケーション１０１によって指示識別情報に対応付けて保存されたデータを取得することができる。これにより、第２のアプリケーション１０２は、第１のアプリケーション１０１と連携することができる。
【０１１２】
また、第２のアプリケーション１０２によれば、動作指示を発行された時点と、記憶領域にデータが書き込まれた時点との差分が閾値以上である場合には、記憶領域からデータを削除することができる。これにより、第２のアプリケーション１０２は、セキュリティの向上を図ることができる。
【０１１３】
また、第２のアプリケーション１０２によれば、データを取得した場合、記憶領域からデータを削除することができる。これにより、第２のアプリケーション１０２は、セキュリティの向上を図ることができる。
【０１１４】
なお、本実施の形態で説明したプログラムの実行方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したプログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１１５】
１００  端末装置
１０１，１０２  アプリケーション
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２０６  タッチパネル
２１０  ネットワーク
３００  指示管理ＤＢ
４００  コンテンツＤＢ
５００  ファイルＤＢ
６０１  起動部
６０２  実行部
６０３  出力部
７０１  利用者
７１０  モバイルアプリ
７１１  ＵＩ処理部
７１２  ブラウザ
７１３  アプリ管理部
７１４  監視部
７２０  外部アプリ
【図１】
2018185919.tif 000003
【図２】
2018185919.tif 000004
【図３】
2018185919.tif 000005
【図４】
2018185919.tif 000006
【図５】
2018185919.tif 000007
【図６】
2018185919.tif 000008
【図７】
2018185919.tif 000009
【図８】
2018185919.tif 000010
【図９】
2018185919.tif 000011
【図１０】
2018185919.tif 000012
【図１１】
2018185919.tif 000013
【手続補正書】
【提出日】令和1年7月19日(2019.7.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
端末装置上で動作するプログラムであって、
前記端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記動作指示に対応した動作を実行し、
前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
処理を前記端末装置に実行させることを特徴とするプログラム。
【請求項２】
前記動作は、前記指示識別情報が所定の条件を満たさない場合に、前記プログラムの起動時に行われる処理を中断し、または、前記プログラムを終了する動作を含む、ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記動作指示は、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ  ＳｃｈｅｍｅによってＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍを通じて行われる、ことを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記動作指示は、さらに、前記他のプログラムに指定され、前記指示識別情報が保存される第１の記憶領域を示す情報を含み、
前記保存する処理は、さらに、前記プログラムの起動に応じて、前記動作指示に基づいて、前記指示識別情報を前記第１の記憶領域に保存する、ことを特徴とする請求項１〜３のいずれか一つに記載のプログラム。
【請求項５】
前記動作指示は、さらに、前記他のプログラムに指定され、前記データが保存される第２の記憶領域を示す情報を含み、
前記保存する処理は、前記動作指示に基づいて、前記データと前記指示識別情報とを関連付けて前記第２の記憶領域に保存する、ことを特徴とする請求項１〜４のいずれか一つに記載のプログラム。
【請求項６】
前記保存する処理は、前記データと前記指示識別情報と前記データに関する時点情報とを関連付けて保存する、ことを特徴とする請求項１〜５のいずれか一つに記載のプログラム。
【請求項７】
端末装置上で動作するプログラムの実行方法であって、
前記端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記動作指示に対応した動作を実行し、
前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
処理を前記端末装置が実行することを特徴とするプログラムの実行方法。
【請求項８】
プログラムと他のプログラムとを動作させる端末装置であって、
前記プログラムを、前記他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記プログラムによって、前記動作指示に対応した動作を実行し、
前記プログラムによって、前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
制御部を有することを特徴とする端末装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、プログラムの実行方法、および端末装置に関する。
【背景技術】
【０００２】
従来、端末装置で動作するアプリケーションにプラグインを追加することにより、そのアプリケーションの機能拡張を行うことがある。
【０００３】
先行技術としては、例えば、所定操作がなされた操作オブジェクトに対応する起動元プログラムの識別情報を取得し、その起動元プログラムの識別情報に基づき再生する動画を切り替えるものがある。また、例えば、シリアルコードを使用するユーザの属性情報を受け付けた場合、そのユーザの属性情報に予め対応付けられたリワードの特定情報を応答する技術がある。また、例えば、ＷｅｂアプリケーションからＷｅｂＡＰＩを介して取得されたＯＳ機能の実行要求に含まれるＷｅｂＡＰＩの識別情報を抽出し、抽出したＷｅｂＡＰＩの識別情報と対応付いて格納された機能モジュールを実行する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−４５６３９号公報
【特許文献２】国際公開第２０１６／０３８９８９号
【特許文献３】特開２０１４−２１５６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、端末装置で動作するアプリケーションにプラグインを追加すると、そのアプリケーションのデータサイズが増大してしまい、そのアプリケーションの配信にかかる負担の増大化を招く。一方で、アプリケーションに外部アプリケーションからデータを取得させるなど、アプリケーションを外部アプリケーションと連携させることが難しく、外部アプリにより機能拡張を行うこともできない。
【０００６】
１つの側面では、本発明は、プログラム間で連携することができるプログラム、プログラムの実行方法、および端末装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、前記動作指示に対応した動作を実行し、前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、前記端末装置上で動作するプログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、プログラム間で連携することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるプログラムの実行方法の一実施例を示す説明図である。
【図２】図２は、端末装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、指示管理ＤＢ３００の記憶内容の一例を示す説明図である。
【図４】図４は、コンテンツＤＢ４００の記憶内容の一例を示す説明図である。
【図５】図５は、ファイルＤＢ５００の記憶内容の一例を示す説明図である。
【図６】図６は、端末装置１００の機能的構成例を示すブロック図である。
【図７】図７は、実施例１を示す説明図（その１）である。
【図８】図８は、実施例１を示す説明図（その２）である。
【図９】図９は、モバイルアプリ７１０によって実行する連携処理手順の一例を示すフローチャート（その１）である。
【図１０】図１０は、モバイルアプリ７１０によって実行する連携処理手順の一例を示すフローチャート（その２）である。
【図１１】図１１は、外部アプリ７２０によって実行する動作処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかるプログラム、プログラムの実行方法、および端末装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかるプログラムの実行方法の一実施例）
図１は、実施の形態にかかるプログラムの実行方法の一実施例を示す説明図である。図１の例では、端末装置１００は、自装置上で、複数のプログラムを動作させるコンピュータである。複数のプログラムは、例えば、複数のアプリケーションである。複数のアプリケーションは、例えば、モバイルアプリケーションと外部アプリケーションとを含む。
【００１２】
以下の説明では、モバイルアプリケーションを「モバイルアプリ」と表記する場合がある。以下の説明では、外部アプリケーションを「外部アプリ」と表記する場合がある。端末装置１００は、例えば、スマートフォンやタブレット端末などである。
【００１３】
ここで、スマートフォンなどに予め導入され、または配信され、スマートフォンなどで動作するモバイルアプリについて機能拡張を行うことが望まれる場合がある。例えば、モバイルアプリにプラグインを追加することにより、そのモバイルアプリの機能拡張を行ったうえで、スマートフォンなどにそのモバイルアプリを配信することが考えられる。
【００１４】
しかしながら、この場合では、モバイルアプリにプラグインを追加することにより、モバイルアプリのデータサイズの増大化を招いてしまう。また、プラグインを変更すると、モバイルアプリのデータサイズの増大化を招いてしまうことがある。このため、モバイルアプリを配信する際に、スマートフォンなどにかかる通信負担の増大化を招いてしまう。
【００１５】
また、この場合では、モバイルアプリに追加されたプラグインは、モバイルアプリにＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）から割り当てられたメモリ容量を、モバイルアプリのメインルーチンなどと共通して使用することになる。このため、モバイルアプリが使用するメモリ容量が、モバイルアプリにＯＳから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性がある。
【００１６】
これに対し、モバイルアプリを外部アプリと連携させることにより、モバイルアプリについて機能拡張を行う場合が考えられる。例えば、モバイルアプリが、ＵＲＬスキーム（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ  Ｓｃｈｅｍｅ）を介して、バーコードリーダなどの外部アプリを起動する場合が考えられる。外部アプリが、ＵＲＬスキームを介して、データをモバイルアプリに送信する場合が考えられる。
【００１７】
しかしながら、この場合では、外部アプリが、ＵＲＬスキームを用いるため、データをモバイルアプリに送信する都度、そのモバイルアプリをフォアグラウンドに移動してしまう。このため、外部アプリが、複数のデータをモバイルアプリに送信する際には、スマートフォンなどの利便性の低下を招いてしまう可能性がある。
【００１８】
例えば、利用者が外部アプリに複数のデータを１つずつ読み取らせることが考えられるが、外部アプリは、データを読み取る都度、そのデータをモバイルアプリに送信し、バックグラウンドに移動してしまうことになる。このため、利用者は、外部アプリにデータを読み取らせる都度、外部アプリをフォアグラウンドに移動し直すことになり、スマートフォンなどの利便性は低下してしまう。
【００１９】
一方で、利用者が外部アプリに複数のデータを読み取らせた後に外部アプリがモバイルアプリに複数のデータをまとめて送信することが考えられるが、外部アプリは、複数のデータをいくつか読み取った時点で強制終了し、読み取ったデータを喪失することがある。このため、利用者は、外部アプリに複数のデータのいくつかを読み取らせた後、外部アプリが強制終了してしまうと、再び複数のデータを読み取らせることになり、スマートフォンなどの利便性は低下してしまう。
【００２０】
また、この場合では、モバイルアプリは、起動した外部アプリとは異なる不正アプリからでも、ＵＲＬスキームを介して、データを受け取ってしまう可能性がある。このため、モバイルアプリが、スマートフォンなどのセキュリティの低下を招いてしまう可能性がある。
【００２１】
さらに、モバイルアプリが、外部アプリを起動する際に、モバイルアプリを識別する識別情報を外部アプリに渡しておき、受け取ったデータにその識別情報が付されていなければ、そのデータを破棄するようにする場合が考えられる。しかしながら、この場合であっても、モバイルアプリは、過去に外部アプリに渡した識別情報が不正アプリに流用された場合には、不正アプリからのデータを破棄することができない。
【００２２】
そこで、本実施の形態では、モバイルアプリがＵＲＬスキームを介して外部アプリに対して発行する指示に含まれ、その指示自体を識別する指示識別情報を利用することにより、アプリケーション間の連携を実現する外部アプリの実行方法について説明する。
【００２３】
図１の例では、端末装置１００は、自装置上で、第１のアプリケーション１０１と第２のアプリケーション１０２とを動作可能である。第１のアプリケーション１０１は、モバイルアプリによって起動される外部アプリである。外部アプリは、例えば、バーコードリーダである。第２のアプリケーション１０２は、モバイルアプリである。
【００２４】
（１−１）第１のアプリケーション１０１は、第２のアプリケーション１０２からの、指示識別情報を含む動作指示に応じて起動する。例えば、モバイルアプリは、指示識別情報を含むＵＲＬスキームを実行することにより、ＯＳを通じて外部アプリを起動する。これにより、外部アプリは、指示識別情報を取得することができる。
【００２５】
（１−２）第１のアプリケーション１０１は、動作指示に対応した動作を実行する。外部アプリは、例えば、利用者の操作入力に基づいて、バーコードからデータを読み取る。これにより、外部アプリは、出力対象であり、モバイルアプリに取得させるデータを読み取ることができる。
【００２６】
（１−３）第１のアプリケーション１０１は、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第２のアプリケーション１０２が参照可能である記憶領域に保存する。外部アプリは、例えば、読み取ったデータを、動作指示に含まれる指示識別情報に関連付けてモバイルアプリが参照可能である記憶領域に保存する。
【００２７】
一方で、第２のアプリケーション１０２は、第１のアプリケーション１０１によって保存されたデータを記憶領域から読み出して取得することができ、そのデータを利用することができる。これにより、外部アプリは、モバイルアプリとの連携を実現し、モバイルアプリにプラグインを追加しなくても端末装置１００の機能を増やすことができる。
【００２８】
また、端末装置１００は、モバイルアプリと外部アプリとの連携によって、モバイルアプリのデータサイズの増大化を抑制することができる。そして、モバイルアプリの製作者は、外部アプリを変更して外部アプリのデータサイズを増大した場合でも、モバイルアプリを変更しなくてもよくモバイルアプリのデータサイズを増大させなくてよくなる。このため、製作者は、外部アプリを配信し直せば、モバイルアプリを配信し直さなくてもよく、端末装置１００にかかる通信負担を低減することができる。同様に、製作者は、モバイルアプリを変更した場合でも、外部アプリを配信し直さなくてもよい。
【００２９】
また、端末装置１００は、ＯＳによって、モバイルアプリと、外部アプリとに、それぞれ、メモリ容量を割り当てることができる。このため、端末装置１００は、モバイルアプリが使用するメモリ容量が、モバイルアプリにＯＳから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性を低減することができる。同様に、端末装置１００は、外部アプリが使用するメモリ容量が、外部アプリにＯＳから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性を低減することができる。
【００３０】
また、外部アプリは、データを取得する都度、そのデータを保存することができる。このため、外部アプリは、強制終了された場合であっても、データを喪失する可能性を低減することができる。また、外部アプリは、データを取得する都度、そのデータをモバイルアプリに送信しなくても、データを喪失する可能性を低減することができる。
【００３１】
また、外部アプリは、データを取得する都度、そのデータをモバイルアプリに送信して、モバイルアプリをフォアグラウンドに移動させなくてもよい。このため、外部アプリは、利用者が複数のデータを連続して取得する操作入力を行おうとする場合に、データを取得する都度モバイルアプリをフォアグラウンドに移動してしまい利用者が操作入力を行いづらくしてしまう可能性を低減することができる。
【００３２】
（端末装置１００のハードウェア構成例）
次に、図２を用いて、端末装置１００のハードウェア構成例について説明する。
【００３３】
図２は、端末装置１００のハードウェア構成例を示すブロック図である。図２において、端末装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５と、タッチパネル２０６とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００３４】
ここで、ＣＰＵ２０１は、端末装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００３５】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３６】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、端末装置１００から着脱可能であってもよい。記録媒体２０５は、実施の形態にかかるアプリケーションを記憶してもよい。
【００３７】
タッチパネル２０６は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示するディスプレイを有する。タッチパネル２０６は、ディスプレイ上、または、ディスプレイ外周部に設けられ、タッチパネル２０６上のユーザの接触位置を検出する検出装置を有する。検出装置は、例えば、抵抗膜方式、静電容量方式、超音波方式、光学方式、または、電磁誘導方式などを用いて、接触位置を検出する。タッチパネル２０６は、ユーザの接触位置に応じて、文字、数字、各種指示などの入力を行う。
【００３８】
端末装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイなどを有してもよい。また、端末装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００３９】
（指示管理ＤＢ（ＤａｔａＢａｓｅ）３００の記憶内容）
次に、図３を用いて、モバイルアプリが参照可能な記憶領域に記憶される指示管理ＤＢ３００の記憶内容について説明する。指示管理ＤＢ３００は、例えば、図２に示した端末装置１００のメモリ２０２や記録媒体２０５により実現される。
【００４０】
図３は、指示管理ＤＢ３００の記憶内容の一例を示す説明図である。図３に示すように、指示管理ＤＢ３００は、識別ＩＤと、コンテンツＩＤと、ユーザＩＤと、データ格納先と、発行日時とのフィールドを有する。指示管理ＤＢ３００は、動作指示ごとに各フィールドに情報を設定することにより、動作指示情報がレコードとして記憶される。
【００４１】
識別ＩＤのフィールドは、動作指示になるＵＲＬスキームを識別する識別ＩＤが設定される。コンテンツＩＤのフィールドは、モバイルアプリが提供するコンテンツであって、そのＵＲＬスキームによって起動される外部アプリによって保存された１以上のデータを利用するコンテンツを識別するコンテンツＩＤが設定される。ユーザＩＤのフィールドは、モバイルアプリの利用者を識別するユーザＩＤが設定される。データ格納先のフィールドは、そのＵＲＬスキームによって起動される外部アプリがデータを保存する対象ファイルのパスが設定される。発行日時のフィールドは、そのＵＲＬスキームを作成した日時が設定される。
【００４２】
（コンテンツＤＢ４００の記憶内容）
次に、図４を用いて、モバイルアプリが参照可能な記憶領域に記憶されるコンテンツＤＢ４００の記憶内容について説明する。コンテンツＤＢ４００は、例えば、図２に示した端末装置１００のメモリ２０２や記録媒体２０５により実現される。
【００４３】
図４は、コンテンツＤＢ４００の記憶内容の一例を示す説明図である。図４に示すように、コンテンツＤＢ４００は、コンテンツＩＤと、コンテンツ名と、ユーザＩＤと、データとのフィールドを有する。コンテンツＤＢ４００は、コンテンツごとに各フィールドに情報を設定することにより、コンテンツ情報がレコードとして記憶される。
【００４４】
コンテンツＩＤのフィールドは、モバイルアプリが提供するコンテンツであって、ＵＲＬスキームによって起動される外部アプリによって保存された１以上のデータを利用するコンテンツを識別するコンテンツＩＤが設定される。コンテンツ名のフィールドは、そのコンテンツの名称が設定される。ユーザＩＤのフィールドは、モバイルアプリの利用者を識別するユーザＩＤが設定される。データのフィールドは、コンテンツに関するパラメータが設定され、例えば、外部アプリによって保存された１以上のデータが設定される。
【００４５】
（ファイルＤＢ５００の記憶内容）
次に、図５を用いて、モバイルアプリと外部アプリが共通して参照可能な記憶領域に記憶されるファイルＤＢ５００の記憶内容について説明する。ファイルＤＢ５００は、例えば、図２に示した端末装置１００のメモリ２０２や記録媒体２０５、あるいは、ネットワーク２１０を経由して通信可能なサーバにより実現される。
【００４６】
図５は、ファイルＤＢ５００の記憶内容の一例を示す説明図である。図５に示すように、ファイルＤＢ５００は、識別ＩＤと、データと、入力日時とのフィールドを有する。ファイルＤＢ５００は、データごとに各フィールドに情報を設定することにより、ファイルがレコードとして記憶される。
【００４７】
識別ＩＤのフィールドは、動作指示になるＵＲＬスキームに含まれ、そのＵＲＬスキームを識別する識別ＩＤが設定される。データのフィールドは、そのＵＲＬスキームに基づく動作によって得られたデータが設定される。入力日時のフィールドは、データのフィールドにデータを設定した日時が設定される。
【００４８】
（端末装置１００の機能的構成例）
次に、図６を用いて、端末装置１００の機能的構成例について説明する。
【００４９】
図６は、端末装置１００の機能的構成例を示すブロック図である。端末装置１００は、起動部６０１と、実行部６０２と、出力部６０３とを含む。
【００５０】
起動部６０１〜出力部６０３は、制御部となる機能である。起動部６０１〜出力部６０３は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００５１】
起動部６０１は、第１のアプリケーション１０１を起動する。第１のアプリケーション１０１は、端末装置１００上で動作するアプリケーションである。第１のアプリケーション１０１は、例えば、外部アプリである。起動部６０１は、例えば、第２のアプリケーション１０２からの指示識別情報を含む動作指示に基づき、第１のアプリケーション１０１を起動する。第２のアプリケーション１０２は、端末装置１００上で動作するアプリケーションである。第２のアプリケーション１０２は、例えば、モバイルアプリである。指示識別情報は、例えば、識別ＩＤである。動作指示は、例えば、その動作指示を識別する識別ＩＤを含む。動作指示は、さらに、その動作指示に対応する動作によって得られるデータを保存する保存先となる、対象ファイルのパスを含んでもよい。動作指示は、例えば、ＵＲＬスキームである。
【００５２】
起動部６０１は、具体的には、モバイルアプリが作成した、識別ＩＤを含むＵＲＬスキームを実行することにより、外部アプリを起動する。これにより、外部アプリは、ＵＲＬスキームに基づいて、そのＵＲＬスキームを識別する識別ＩＤを取得することができ、そのＵＲＬスキームに対応する動作を行って得られるデータを保存する保存先になる対象ファイルのパスを取得することができる。
【００５３】
実行部６０２は、第１のアプリケーション１０１を実行する。実行部６０２は、第１のアプリケーション１０１を実行することによって、動作指示に対応した動作を実行する。動作は、例えば、バーコードからのデータの読み取り、および読み取りデータの出力などである。実行部６０２は、例えば、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第２のアプリケーション１０２が参照可能である記憶領域に保存する。
【００５４】
実行部６０２は、例えば、外部アプリを実行することによって、モバイルアプリからのＵＲＬスキームに基づいて、バーコードからデータを読み取り、識別ＩＤと対応付けて対象ファイルに保存する。これにより、実行部６０２は、モバイルアプリに、モバイルアプリが作成したＵＲＬスキームに対応し、外部アプリによって作成されたデータを特定させ、取得させることができる。
【００５５】
また、動作は、指示識別情報が所定の条件を満たさない場合に、第１のアプリケーション１０１の起動時に行われる処理を中断し、または、第１のアプリケーション１０１を終了する動作を含んでもよい。実行部６０２は、例えば、予め設定された形式に合致しない識別ＩＤであれば、外部アプリの起動時に行われる処理を中断し、外部アプリを終了してもよい。形式は、例えば、識別ＩＤの先頭文字の形式である。形式は、例えば、識別ＩＤにパリティを含むという形式であってもよい。これにより、実行部６０２は、外部アプリが不正アプリによって利用されることを抑制することができる。
【００５６】
実行部６０２は、例えば、指示識別情報が、過去に取得したことがあり、過去に取得した時点から所定の時間が経過した指示識別情報である場合、外部アプリの起動時に行われる処理を中断し、外部アプリを終了してもよい。これにより、実行部６０２は、モバイルアプリが過去に作成した識別ＩＤを不正アプリが流用した場合などであっても、外部アプリが不正アプリによって利用されることを抑制することができる。
【００５７】
また、動作指示は、さらに、第２のアプリケーション１０２に指定され、指示識別情報が保存される記憶領域を示す情報を含んでもよい。指示識別情報が保存される記憶領域は、例えば、対象ファイルである。実行部６０２は、例えば、外部アプリの起動に応じて、外部アプリによって、識別ＩＤを対象ファイルに保存する。これにより、実行部６０２は、対象ファイルに、外部アプリが起動したことを示す情報として、識別ＩＤを保存することができる。
【００５８】
実行部６０２は、例えば、対象ファイルにデータを保存する際、そのデータに対応付けてそのデータに関する時点情報を保存してもよい。実行部６０２は、具体的には、データを取得した時点、データを作成した時点、またはデータを保存する時点などを示す時点情報を保存する。これにより、実行部６０２は、モバイルアプリが、外部アプリの動作状態を判定するための情報を保存しておくことができる。
【００５９】
実行部６０２は、第２のアプリケーション１０２を実行する。実行部６０２は、第２のアプリケーション１０２を実行することによって、第１のアプリケーション１０１への動作指示に、第１のアプリケーション１０１が参照可能である記憶領域を示す情報と、その動作指示を識別する指示識別情報とを含めることができる。そして、実行部６０２は、第１のアプリケーション１０１への動作指示を発行することができる。
【００６０】
実行部６０２は、例えば、外部アプリへの動作指示となるＵＲＬスキームを、そのＵＲＬスキームを識別する識別ＩＤと、その外部アプリによって取得されるデータの保存先になる対象ファイルのパスとを含めて発行することができる。これにより、実行部６０２は、外部アプリに、識別ＩＤに対応付けて対象ファイルにデータを保存させることができる。このため、実行部６０２は、モバイルアプリが、発行したＵＲＬスキームに対応するデータを特定して、取得することができるようにすることができる。
【００６１】
実行部６０２は、第２のアプリケーション１０２を実行することによって、記憶領域を監視し、動作指示に応じて起動した第１のアプリケーション１０１によって、その記憶領域に指示識別情報に対応付けて保存されたデータを取得する。実行部６０２は、例えば、対象ファイルを監視し、外部アプリが識別ＩＤに対応付けて対象ファイルに書き込んだデータを取得することができる。
【００６２】
実行部６０２は、さらに、動作指示を発行した時点と、記憶領域にデータが書き込まれた時点との差分が閾値以上である場合に、記憶領域からデータを削除してもよい。実行部６０２は、例えば、指示管理ＤＢ３００の発行日時と、ファイルＤＢ５００の入力日時との差分が閾値以上である場合に、対象ファイルからデータを取得せずに削除する。これにより、実行部６０２は、セキュリティの低下を抑制することができる。
【００６３】
実行部６０２は、さらに、データを取得した場合、記憶領域からデータを削除してもよい。実行部６０２は、例えば、対象ファイルからデータを取得した場合、コンテンツＤＢ４００にデータを複製して、対象ファイルからはそのデータを削除する。これにより、実行部６０２は、外部アプリが書き込んだデータが、のちに不正利用されないようにして、セキュリティの低下を抑制することができる。
【００６４】
出力部６０３は、第１のアプリケーション１０１や第２のアプリケーション１０２が取得したデータを出力する機能を有する。また、出力部６０３は、さらに、第１のアプリケーション１０１と第２のアプリケーション１０２との起動状態や連携状態を示す情報を出力する機能を有してもよい。出力形式は、例えば、ディスプレイへの表示、タッチパネル２０６への表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶などである。
【００６５】
（実施例１）
次に、図７および図８を用いて、実施例１について説明する。
【００６６】
図７および図８は、実施例１を示す説明図である。図７および図８の例では、端末装置１００は、自装置上で、モバイルアプリ７１０と外部アプリ７２０を動作させることができる。モバイルアプリ７１０は、ＵＩ処理部７１１と、アプリ管理部７１３とを有する。
【００６７】
ＵＩ処理部７１１は、ブラウザ７１２を介して１以上のコンテンツを提供する。ＵＩ処理部７１１は、ブラウザ７１２を介して、利用者７０１からの操作入力を受け付ける。アプリ管理部７１３は、外部アプリ７２０を起動する。アプリ管理部７１３は、監視部７１４を有する。監視部７１４は、外部アプリ７２０が保存するデータを監視する。
【００６８】
図７の例では（７−１）モバイルアプリ７１０は、ＵＩ処理部７１１によって、ブラウザ７１２の提供するいずれかのコンテンツにおいて、タッチパネル２０６などを用いた利用者７０１からの外部アプリ７２０の起動を要求する操作入力を受け付ける。モバイルアプリ７１０は、ＵＩ処理部７１１からアプリ管理部７１３へと、外部アプリ７２０の起動を要求する操作入力を通知する。
【００６９】
また、モバイルアプリ７１０は、ＵＩ処理部７１１からアプリ管理部７１３へと、その操作入力を受け付けたコンテンツのコンテンツＩＤを通知する。これにより、モバイルアプリ７１０は、アプリ管理部７１３に、どの外部アプリ７２０を起動するかを通知し、どのコンテンツが外部アプリ７２０が保存するデータを利用するかを通知することができる。
【００７０】
（７−２）モバイルアプリ７１０は、アプリ管理部７１３によって、次に発行する動作指示を識別する識別ＩＤを生成する。また、モバイルアプリ７１０は、アプリ管理部７１３によって、次に発行する動作指示によって起動される外部アプリ７２０によってデータが保存される対象ファイルをファイルＤＢ５００に生成し、その対象ファイルのパスを生成する。また、モバイルアプリ７１０は、アプリ管理部７１３によって、操作入力を受け付けたコンテンツのコンテンツＩＤを生成する。
【００７１】
モバイルアプリ７１０は、アプリ管理部７１３によって、生成した識別ＩＤとパスとコンテンツＩＤとを対応付けて指示管理ＤＢ３００に記憶する。モバイルアプリ７１０は、アプリ管理部７１３によって、生成した識別ＩＤとパスとを含む動作指示になるＵＲＬスキームを作成する。モバイルアプリ７１０は、監視部７１４によって、生成した対象ファイルへのデータの書き込み状況を監視し始める。これにより、モバイルアプリ７１０は、外部アプリ７２０がデータを対象ファイルに書き込んでから、そのデータを取得するまでにかかる時間の低減化を図ることができる。また、モバイルアプリ７１０は、コンテンツＩＤをＵＲＬスキームに含めないため、コンテンツＩＤが不正アプリに流用される可能性を低減することができる。
【００７２】
（７−３）モバイルアプリ７１０は、アプリ管理部７１３によって、作成したＵＲＬスキームを実行する。これにより、モバイルアプリ７１０は、ＯＳを通じて、外部アプリ７２０を起動することができる。また、モバイルアプリ７１０は、外部アプリ７２０に、動作指示に対応した所定の動作を行わせ、対象ファイルにデータを保存させることができる。また、モバイルアプリ７１０は、コンテンツＩＤを外部アプリ７２０に渡さないため、コンテンツＩＤが不正アプリに流用される可能性を低減することができる。
【００７３】
（７−４）外部アプリ７２０は、ＯＳを通じて、起動される。外部アプリ７２０は、起動すると、ＵＲＬスキームに含まれる識別ＩＤと対象ファイルのパスとを取得する。外部アプリ７２０は、取得したパスに基づいて、取得した識別ＩＤと、入力日時とを対応付けて、ファイルＤＢ５００の対象ファイルに保存する。モバイルアプリ７１０は、監視部７１４によって、対象ファイルに書き込まれた識別ＩＤや入力日時などのデータを取得し、コンテンツＤＢ４００に記憶する。
【００７４】
これにより、モバイルアプリ７１０は、監視部７１４によって、外部アプリ７２０からＵＲＬスキームに対して応答されなくても、外部アプリ７２０が起動したことを検出することができる。また、モバイルアプリ７１０は、監視部７１４によって、外部アプリ７２０が起動した日時を取得することができる。モバイルアプリ７１０は、監視部７１４によって、外部アプリ７２０が起動に成功したか否かを把握することができる。次に、図８の説明に移行する。
【００７５】
図８の例では（８−１）外部アプリ７２０は、タッチパネル２０６などを用いた、利用者７０１からの操作入力に応じて、データを取得する。外部アプリ７２０は、例えば、バーコードリーダの機能を実現し、バーコードからデータを読み取る。
【００７６】
（８−２）外部アプリ７２０は、識別ＩＤを用いて、読み取ったデータを暗号化する。外部アプリ７２０は、取得したパスに基づいて、取得した識別ＩＤと、暗号化により得られた暗号化データと、入力日時とを対応付けて、ファイルＤＢ５００の対象ファイルに保存する。ここで、外部アプリ７２０は、対象ファイルに保存する識別ＩＤや入力日時も暗号化してもよい。これにより、外部アプリ７２０は、セキュリティの向上を図ることができる。
【００７７】
（８−３）モバイルアプリ７１０は、監視部７１４によって、対象ファイルに書き込まれた識別ＩＤと暗号化データと入力日時とを取得し、暗号化データを復号する。モバイルアプリ７１０は、指示管理ＤＢ３００の発行日時に基づいて、取得した識別ＩＤが、生成してから所定時間が経過した識別ＩＤであれば、暗号化データを復号せずに削除してもよい。また、モバイルアプリ７１０は、暗号化データを取得すると、対象ファイルから暗号化データを削除する。これにより、モバイルアプリ７１０は、取得済みの暗号化データが不正アプリに利用されることを防止し、セキュリティの向上を図ることができる。
【００７８】
（８−４）モバイルアプリ７１０は、監視部７１４によって、取得した識別ＩＤが、生成してから所定時間が経過していない識別ＩＤであれば、指示管理ＤＢ３００に基づいて、取得した識別ＩＤに対応するコンテンツＩＤを特定する。モバイルアプリ７１０は、監視部７１４によって、取得した識別ＩＤと、復号により得られたデータと、特定したコンテンツＩＤとを対応付けて、コンテンツＤＢ４００に記憶する。これにより、モバイルアプリ７１０は、どのコンテンツに、取得したデータを利用させるかを特定することができる。
【００７９】
（８−５）モバイルアプリ７１０は、ＵＩ処理部７１１によって、タッチパネル２０６などを用いた、利用者７０１からの操作入力に応じて、フォアグラウンドに移動する。これにより、モバイルアプリ７１０は、外部アプリ７２０が連続して複数のデータを取得する動作を行う場合などには、フォアグラウンドに移動せず、外部アプリ７２０を介した利用者７０１の操作入力を行いやすくすることができる。
【００８０】
（８−６）モバイルアプリ７１０は、ＵＩ処理部７１１によって、コンテンツＤＢ４００からデータを取得するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を呼び出して、実行する。モバイルアプリ７１０は、ＵＩ処理部７１１によって、データを取得する。これにより、モバイルアプリ７１０は、操作入力を受け付けたコンテンツに、取得したデータを利用させることができる。
【００８１】
（８−７）モバイルアプリ７１０は、ＵＩ処理部７１１によって、操作入力を受け付けたコンテンツにおいて、取得したデータを処理する。これにより、端末装置１００は、外部アプリ７２０と、モバイルアプリ７１０との連携を実現することができる。また、端末装置１００は、モバイルアプリ７１０と外部アプリ７２０との連携によって、モバイルアプリ７１０のデータサイズの増大化を抑制することができる。
【００８２】
また、端末装置１００は、ＯＳによって、モバイルアプリ７１０と、外部アプリ７２０とに、それぞれ、メモリ容量を割り当てることができる。また、外部アプリ７２０は、データを取得する都度、そのデータを保存することができる。また、外部アプリ７２０は、データを取得する都度、そのデータをモバイルアプリ７１０に送信して、モバイルアプリ７１０をフォアグラウンドに移動させなくてもよい。
【００８３】
このように、モバイルアプリ７１０は、識別ＩＤを確認することにより、起動した外部アプリ７２０と、対象ファイルにデータを保存した外部アプリ７２０とが同一であることを確認することができる。このため、モバイルアプリ７１０は、識別ＩＤを含む動作指示を発行した外部アプリ７２０とは異なる不正アプリによって保存されたデータを、誤って取得してしまうことを抑制することができる。
【００８４】
また、モバイルアプリ７１０は、識別ＩＤを確認することにより、同じ外部アプリ７２０が保存したデータが、識別ＩＤに対応する動作指示に基づく動作によって保存されたデータであるか否かを判別することができる。このため、モバイルアプリ７１０は、識別ＩＤに対応する動作指示とは異なる動作指示に基づく動作によって保存されたデータを、誤って取得してしまうことを抑制することができる。また、モバイルアプリ７１０は、フォアグラウンドに移動しなくても、バックグラウンドのまま、外部アプリ７２０が保存したデータを取得することができる。
【００８５】
また、外部アプリ７２０は、データを取得する都度、モバイルアプリ７１０に送信しておかなくても、モバイルアプリ７１０が、ファイルＤＢ５００の入力日時に基づいて、データを取得した順番を特定可能なようにすることができる。モバイルアプリ７１０は、ファイルＤＢ５００の入力日時に基づいて、外部アプリ７２０がデータを取得した順番を特定することができる。
【００８６】
また、外部アプリ７２０は、同時に複数のモバイルアプリ７１０から動作指示を受け付けても、データを保存するファイルを、それぞれのモバイルアプリ７１０が指定した対象ファイルに分けることができる。このため、外部アプリ７２０は、それぞれのモバイルアプリ７１０が取得するデータが混在してしまうことを防止し、複数のモバイルアプリ７１０の競合を抑制することができる。
【００８７】
外部アプリ７２０は、不正アプリが識別ＩＤを流用してＵＲＬスキームを用いて起動した場合でも、過去に用いたことがある識別ＩＤによるＵＲＬスキームであれば、起動時処理を中断することができ、セキュリティの向上を図ることができる。また、外部アプリ７２０は、対象ファイルが作成されていない場合に、起動時処理を中断し、セキュリティの向上を図ってもよい。
【００８８】
また、製作者は、外部アプリ７２０を変更する場合には、モバイルアプリ７１０を変更しなくてもよい。同様に、製作者は、モバイルアプリ７１０を変更する場合には、外部アプリ７２０を変更しなくてもよい。このため、製作者は、モバイルアプリ７１０や外部アプリ７２０を管理しやすくなる。
【００８９】
（連携処理手順の一例）
次に、図９および図１０を用いて、端末装置１００がモバイルアプリ７１０によって実行する連携処理手順の一例について説明する。
【００９０】
図９および図１０は、モバイルアプリ７１０によって実行する連携処理手順の一例を示すフローチャートである。図９において、端末装置１００は、外部アプリ７２０を起動する操作入力を、利用者７０１から受け付ける（ステップＳ９０１）。
【００９１】
端末装置１００は、操作入力を受け付けると、識別ＩＤと、外部アプリ７２０によるデータの保存先になるファイルとを作成する（ステップＳ９０２）。端末装置１００は、作成した識別ＩＤと、作成したファイルの識別情報とを対応付けて、モバイルアプリ７１０内の指示管理ＤＢ３００に記憶する（ステップＳ９０３）。
【００９２】
端末装置１００は、外部アプリ７２０の動作指示になるＵＲＬスキームを作成する（ステップＳ９０４）。端末装置１００は、作成したファイルの監視を開始する（ステップＳ９０５）。端末装置１００は、作成したＵＲＬスキームを実行する（ステップＳ９０６）。端末装置１００は、図１０のステップＳ１００１の処理に移行する。
【００９３】
図１０において、端末装置１００は、作成したファイルの監視によって、そのファイルに暗号化データが書き込まれたか否かを判定する（ステップＳ１００１）。ここで、暗号化データが書き込まれていない場合（ステップＳ１００１：Ｎｏ）、端末装置１００は、ステップＳ１００１の処理に戻る。
【００９４】
一方で、暗号化データが書き込まれている場合（ステップＳ１００１：Ｙｅｓ）、端末装置１００は、識別ＩＤを用いて、ファイルに書き込まれた暗号化データを復号する（ステップＳ１００２）。端末装置１００は、復号によりデータを取得すると、ファイルから暗号化データを削除する（ステップＳ１００３）。
【００９５】
端末装置１００は、復号により取得したデータが識別ＩＤと一致するか否かを判定する（ステップＳ１００４）。ここで、一致しない場合（ステップＳ１００４：Ｎｏ）、端末装置１００は、識別ＩＤが有効であるか否かを判定する（ステップＳ１００５）。ここで、有効ではない場合（ステップＳ１００５：Ｎｏ）、端末装置１００は、連携処理を終了する。
【００９６】
一方で、有効である場合（ステップＳ１００５：Ｙｅｓ）、端末装置１００は、復号により取得したデータを、モバイルアプリ７１０内のコンテンツＤＢ４００に記憶する（ステップＳ１００６）。
【００９７】
端末装置１００は、モバイルアプリ７１０を、フォアグラウンドに移動する（ステップＳ１００７）。端末装置１００は、コンテンツＤＢ４００からデータを取得するＡＰＩを実行する（ステップＳ１００８）。端末装置１００は、データを反映する（ステップＳ１００９）。端末装置１００は、ステップＳ１００１の処理に戻る。
【００９８】
一方で、一致する場合（ステップＳ１００４：Ｙｅｓ）、端末装置１００は、入力日時−発行日時が、閾値未満であるか否かを判定する（ステップＳ１０１０）。ここで、閾値以上である場合（ステップＳ１０１０：Ｎｏ）、端末装置１００は、識別ＩＤを無効化する（ステップＳ１０１１）。端末装置１００は、連携処理を終了する。
【００９９】
一方で、閾値未満である場合（ステップＳ１０１０：Ｙｅｓ）、端末装置１００は、識別ＩＤを有効化する（ステップＳ１０１２）。端末装置１００は、ステップＳ１００１の処理に戻る。これにより、端末装置１００は、外部アプリ７２０がファイルに書き込んだデータを、モバイルアプリ７１０で取得することができ、モバイルアプリ７１０と外部アプリ７２０との連携を実現することができる。
【０１００】
（動作処理手順の一例）
次に、図１１を用いて、端末装置１００が外部アプリ７２０によって実行する動作処理手順の一例について説明する。
【０１０１】
図１１は、外部アプリ７２０によって実行する動作処理手順の一例を示すフローチャートである。図１１において、端末装置１００は、ＵＲＬスキームを用いた動作指示を受け付ける（ステップＳ１１０１）。端末装置１００は、動作指示を受け付けると、その動作指示に割り振られた識別ＩＤを、日時に対応付けてファイルに保存する（ステップＳ１１０２）。
【０１０２】
端末装置１００は、受け付けた動作指示に応じた動作を行う（ステップＳ１１０３）。端末装置１００は、動作指示に応じた動作を行った結果、データを取得する（ステップＳ１１０４）。端末装置１００は、取得したデータを識別ＩＤで暗号化する（ステップＳ１１０５）。
【０１０３】
端末装置１００は、暗号化により得られた暗号化データを、日時に対応付けてファイルに保存する（ステップＳ１１０６）。これにより、端末装置１００は、モバイルアプリ７１０が取得可能な状態でデータを保存することができ、モバイルアプリ７１０と外部アプリ７２０との連携を実現することができる。
【０１０４】
以上説明したように、端末装置１００上で動作する第１のアプリケーション１０１によれば、端末装置１００上で動作する第２のアプリケーション１０２からの、指示識別情報を含む動作指示に応じて起動することができる。また、第１のアプリケーション１０１によれば、動作指示に対応した動作を実行し、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第２のアプリケーション１０２が参照可能である記憶領域に保存することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２が取得可能なようにデータを保存することができ、第２のアプリケーション１０２との連携を実現することができる。
【０１０５】
結果として、端末装置１００は、第１のアプリケーション１０１と第２のアプリケーション１０２との連携によって、第２のアプリケーション１０２のデータサイズの増大化を抑制することができる。また、端末装置１００は、ＯＳによって、第１のアプリケーション１０１と、第２のアプリケーション１０２とに、それぞれ、メモリ容量を割り当てることができる。また、第１のアプリケーション１０１は、データを取得する都度、そのデータを保存することができる。また、第１のアプリケーション１０１は、データを取得する都度、そのデータを第２のアプリケーション１０２に送信して、第２のアプリケーション１０２をフォアグラウンドに移動させなくてもよい。
【０１０６】
また、第１のアプリケーション１０１によれば、指示識別情報が所定の条件を満たさない場合に、第１のアプリケーション１０１の起動時に行われる処理を中断し、または、第１のアプリケーション１０１を終了する動作を実行することができる。これにより、第１のアプリケーション１０１は、不正アプリによる動作指示によって動作することを防止することができる。
【０１０７】
また、第１のアプリケーション１０１によれば、第２のアプリケーション１０２からのＵＲＬスキームによってＯＳを通じて起動することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２に応答しなくてもよい。
【０１０８】
また、第１のアプリケーション１０１によれば、起動に応じて、指示識別情報を、動作指示に含まれ、第２のアプリケーション１０２に指定された第１の記憶領域に保存することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２が、第１のアプリケーション１０１の起動成功を把握可能にすることができる。
【０１０９】
また、第１のアプリケーション１０１によれば、データと指示識別情報とを関連付けて動作指示に含まれ、第２のアプリケーション１０２に指定された第２の記憶領域に保存することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２が取得可能であり、第２のアプリケーション１０２以外の不正アプリなどが特定していない記憶領域に、データを保存することができ、セキュリティの向上を図ることができる。
【０１１０】
また、第１のアプリケーション１０１によれば、データと指示識別情報とデータに関する時点情報とを関連付けて保存することができる。これにより、第１のアプリケーション１０１は、第２のアプリケーション１０２がデータを管理しやすくすることができる。
【０１１１】
また、第２のアプリケーション１０２によれば、第１のアプリケーション１０１への動作指示を、第２のアプリケーション１０２が参照可能である記憶領域を示す情報と、動作指示を識別する指示識別情報とを含めて発行することができる。また、第２のアプリケーション１０２によれば、その記憶領域を監視し、動作指示に応じて起動した第１のアプリケーション１０１によって指示識別情報に対応付けて保存されたデータを取得することができる。これにより、第２のアプリケーション１０２は、第１のアプリケーション１０１と連携することができる。
【０１１２】
また、第２のアプリケーション１０２によれば、動作指示を発行された時点と、記憶領域にデータが書き込まれた時点との差分が閾値以上である場合には、記憶領域からデータを削除することができる。これにより、第２のアプリケーション１０２は、セキュリティの向上を図ることができる。
【０１１３】
また、第２のアプリケーション１０２によれば、データを取得した場合、記憶領域からデータを削除することができる。これにより、第２のアプリケーション１０２は、セキュリティの向上を図ることができる。
【０１１４】
なお、本実施の形態で説明したプログラムの実行方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したプログラムは、インターネット等のネットワークを介して配布してもよい。
【０１１５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１６】
（付記１）端末装置上で動作するプログラムであって、
前記端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記動作指示に対応した動作を実行し、
前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
処理を前記端末装置に実行させることを特徴とするプログラム。
【０１１７】
（付記２）前記動作は、前記指示識別情報が所定の条件を満たさない場合に、前記プログラムの起動時に行われる処理を中断し、または、前記プログラムを終了する動作を含む、ことを特徴とする付記１に記載のプログラム。
【０１１８】
（付記３）前記動作指示は、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ  ＳｃｈｅｍｅによってＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍを通じて行われる、ことを特徴とする付記１または２に記載のプログラム。
【０１１９】
（付記４）前記動作指示は、さらに、前記他のプログラムに指定され、前記指示識別情報が保存される第１の記憶領域を示す情報を含み、
前記保存する処理は、さらに、前記プログラムの起動に応じて、前記動作指示に基づいて、前記指示識別情報を前記第１の記憶領域に保存する、ことを特徴とする付記１〜３のいずれか一つに記載のプログラム。
【０１２０】
（付記５）前記動作指示は、さらに、前記他のプログラムに指定され、前記データが保存される第２の記憶領域を示す情報を含み、
前記保存する処理は、前記動作指示に基づいて、前記データと前記指示識別情報とを関連付けて前記第２の記憶領域に保存する、ことを特徴とする付記１〜４のいずれか一つに記載のプログラム。
【０１２１】
（付記６）前記保存する処理は、前記データと前記指示識別情報と前記データに関する時点情報とを関連付けて保存する、ことを特徴とする付記１〜５のいずれか一つに記載のプログラム。
【０１２２】
（付記７）端末装置上で動作するプログラムであって、
前記端末装置上で動作する他のプログラムへの動作指示を、前記プログラムが参照可能である記憶領域を示す情報と、前記動作指示を識別する指示識別情報とを含めて発行し、
前記記憶領域を監視し、前記動作指示に応じて起動した前記他のプログラムによって前記記憶領域に前記指示識別情報に対応付けて保存されたデータを取得する、
処理を前記端末装置に実行させることを特徴とするプログラム。
【０１２３】
（付記８）前記取得する処理は、
前記動作指示を発行された時点と、前記記憶領域に前記データが書き込まれた時点との差分が閾値以上である場合には、前記記憶領域から前記データを削除する、ことを特徴とする付記７に記載のプログラム。
【０１２４】
（付記９）前記取得する処理は、
さらに、前記データを取得した場合、前記記憶領域から前記データを削除する、ことを特徴とする付記７または８に記載のプログラム。
【０１２５】
（付記１０）端末装置上で動作するプログラムの実行方法であって、
前記端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記動作指示に対応した動作を実行し、
前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
処理を前記端末装置が実行することを特徴とするプログラムの実行方法。
【０１２６】
（付記１１）プログラムと他のプログラムとを動作させる端末装置であって、
前記プログラムを、前記他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
前記プログラムによって、前記動作指示に対応した動作を実行し、
前記プログラムによって、前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
制御部を有することを特徴とする端末装置。
【符号の説明】
【０１２７】
１００  端末装置
１０１，１０２  アプリケーション
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２０６  タッチパネル
２１０  ネットワーク
３００  指示管理ＤＢ
４００  コンテンツＤＢ
５００  ファイルＤＢ
６０１  起動部
６０２  実行部
６０３  出力部
７０１  利用者
７１０  モバイルアプリ
７１１  ＵＩ処理部
７１２  ブラウザ
７１３  アプリ管理部
７１４  監視部
７２０  外部アプリ
【国際調査報告】
2018185919.tif 000014
2018185919.tif 000015
2018185919.tif 000016
2018185919.tif 000017