このアプリケーションの一部のコンテンツは現時点では利用できません。
このような状況が続く場合は、にお問い合わせくださいフィードバック & お問い合わせ
1. (WO2018185919) プログラム、プログラムの実行方法、および端末装置
Document

明 細 書

発明の名称 プログラム、プログラムの実行方法、および端末装置

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

発明の概要

発明が解決しようとする課題

0005   0006  

課題を解決するための手段

0007  

発明の効果

0008  

図面の簡単な説明

0009  

発明を実施するための形態

0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114  

符号の説明

0115  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11  

図面

1   2   3   4   5   6   7   8   9   10   11  

明 細 書

発明の名称 : プログラム、プログラムの実行方法、および端末装置

技術分野

[0001]
 本発明は、プログラム、プログラムの実行方法、および端末装置に関する。

背景技術

[0002]
 従来、端末装置で動作するアプリケーションにプラグインを追加することにより、そのアプリケーションの機能拡張を行うことがある。
[0003]
 先行技術としては、例えば、所定操作がなされた操作オブジェクトに対応する起動元プログラムの識別情報を取得し、その起動元プログラムの識別情報に基づき再生する動画を切り替えるものがある。また、例えば、シリアルコードを使用するユーザの属性情報を受け付けた場合、そのユーザの属性情報に予め対応付けられたリワードの特定情報を応答する技術がある。また、例えば、WebアプリケーションからWebAPIを介して取得されたOS機能の実行要求に含まれるWebAPIの識別情報を抽出し、抽出したWebAPIの識別情報と対応付いて格納された機能モジュールを実行する技術がある。

先行技術文献

特許文献

[0004]
特許文献1 : 特開2016-45639号公報
特許文献2 : 国際公開第2016/038989号
特許文献3 : 特開2014-215672号公報

発明の概要

発明が解決しようとする課題

[0005]
 しかしながら、従来技術では、端末装置で動作するアプリケーションにプラグインを追加すると、そのアプリケーションのデータサイズが増大してしまい、そのアプリケーションの配信にかかる負担の増大化を招く。一方で、アプリケーションに外部アプリケーションからデータを取得させるなど、アプリケーションを外部アプリケーションと連携させることが難しく、外部アプリにより機能拡張を行うこともできない。
[0006]
 1つの側面では、本発明は、プログラム間で連携することができるプログラム、プログラムの実行方法、および端末装置を提供することを目的とする。

課題を解決するための手段

[0007]
 1つの実施態様によれば、端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、前記動作指示に対応した動作を実行し、前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、前記端末装置上で動作するプログラムが提案される。

発明の効果

[0008]
 本発明の一態様によれば、プログラム間で連携することができるという効果を奏する。

図面の簡単な説明

[0009]
[図1] 図1は、実施の形態にかかるプログラムの実行方法の一実施例を示す説明図である。
[図2] 図2は、端末装置100のハードウェア構成例を示すブロック図である。
[図3] 図3は、指示管理DB300の記憶内容の一例を示す説明図である。
[図4] 図4は、コンテンツDB400の記憶内容の一例を示す説明図である。
[図5] 図5は、ファイルDB500の記憶内容の一例を示す説明図である。
[図6] 図6は、端末装置100の機能的構成例を示すブロック図である。
[図7] 図7は、実施例1を示す説明図(その1)である。
[図8] 図8は、実施例1を示す説明図(その2)である。
[図9] 図9は、モバイルアプリ710によって実行する連携処理手順の一例を示すフローチャート(その1)である。
[図10] 図10は、モバイルアプリ710によって実行する連携処理手順の一例を示すフローチャート(その2)である。
[図11] 図11は、外部アプリ720によって実行する動作処理手順の一例を示すフローチャートである。

発明を実施するための形態

[0010]
 以下に、図面を参照して、本発明にかかるプログラム、プログラムの実行方法、および端末装置の実施の形態を詳細に説明する。
[0011]
(実施の形態にかかるプログラムの実行方法の一実施例)
 図1は、実施の形態にかかるプログラムの実行方法の一実施例を示す説明図である。図1の例では、端末装置100は、自装置上で、複数のプログラムを動作させるコンピュータである。複数のプログラムは、例えば、複数のアプリケーションである。複数のアプリケーションは、例えば、モバイルアプリケーションと外部アプリケーションとを含む。
[0012]
 以下の説明では、モバイルアプリケーションを「モバイルアプリ」と表記する場合がある。以下の説明では、外部アプリケーションを「外部アプリ」と表記する場合がある。端末装置100は、例えば、スマートフォンやタブレット端末などである。
[0013]
 ここで、スマートフォンなどに予め導入され、または配信され、スマートフォンなどで動作するモバイルアプリについて機能拡張を行うことが望まれる場合がある。例えば、モバイルアプリにプラグインを追加することにより、そのモバイルアプリの機能拡張を行ったうえで、スマートフォンなどにそのモバイルアプリを配信することが考えられる。
[0014]
 しかしながら、この場合では、モバイルアプリにプラグインを追加することにより、モバイルアプリのデータサイズの増大化を招いてしまう。また、プラグインを変更すると、モバイルアプリのデータサイズの増大化を招いてしまうことがある。このため、モバイルアプリを配信する際に、スマートフォンなどにかかる通信負担の増大化を招いてしまう。
[0015]
 また、この場合では、モバイルアプリに追加されたプラグインは、モバイルアプリにOS(Operating System)から割り当てられたメモリ容量を、モバイルアプリのメインルーチンなどと共通して使用することになる。このため、モバイルアプリが使用するメモリ容量が、モバイルアプリにOSから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性がある。
[0016]
 これに対し、モバイルアプリを外部アプリと連携させることにより、モバイルアプリについて機能拡張を行う場合が考えられる。例えば、モバイルアプリが、URLスキーム(Uniform Resource Locator Scheme)を介して、バーコードリーダなどの外部アプリを起動する場合が考えられる。外部アプリが、URLスキームを介して、データをモバイルアプリに送信する場合が考えられる。
[0017]
 しかしながら、この場合では、外部アプリが、URLスキームを用いるため、データをモバイルアプリに送信する都度、そのモバイルアプリをフォアグラウンドに移動してしまう。このため、外部アプリが、複数のデータをモバイルアプリに送信する際には、スマートフォンなどの利便性の低下を招いてしまう可能性がある。
[0018]
 例えば、利用者が外部アプリに複数のデータを1つずつ読み取らせることが考えられるが、外部アプリは、データを読み取る都度、そのデータをモバイルアプリに送信し、バックグラウンドに移動してしまうことになる。このため、利用者は、外部アプリにデータを読み取らせる都度、外部アプリをフォアグラウンドに移動し直すことになり、スマートフォンなどの利便性は低下してしまう。
[0019]
 一方で、利用者が外部アプリに複数のデータを読み取らせた後に外部アプリがモバイルアプリに複数のデータをまとめて送信することが考えられるが、外部アプリは、複数のデータをいくつか読み取った時点で強制終了し、読み取ったデータを喪失することがある。このため、利用者は、外部アプリに複数のデータのいくつかを読み取らせた後、外部アプリが強制終了してしまうと、再び複数のデータを読み取らせることになり、スマートフォンなどの利便性は低下してしまう。
[0020]
 また、この場合では、モバイルアプリは、起動した外部アプリとは異なる不正アプリからでも、URLスキームを介して、データを受け取ってしまう可能性がある。このため、モバイルアプリが、スマートフォンなどのセキュリティの低下を招いてしまう可能性がある。
[0021]
 さらに、モバイルアプリが、外部アプリを起動する際に、モバイルアプリを識別する識別情報を外部アプリに渡しておき、受け取ったデータにその識別情報が付されていなければ、そのデータを破棄するようにする場合が考えられる。しかしながら、この場合であっても、モバイルアプリは、過去に外部アプリに渡した識別情報が不正アプリに流用された場合には、不正アプリからのデータを破棄することができない。
[0022]
 そこで、本実施の形態では、モバイルアプリがURLスキームを介して外部アプリに対して発行する指示に含まれ、その指示自体を識別する指示識別情報を利用することにより、アプリケーション間の連携を実現する外部アプリの実行方法について説明する。
[0023]
 図1の例では、端末装置100は、自装置上で、第1のアプリケーション101と第2のアプリケーション102とを動作可能である。第1のアプリケーション101は、モバイルアプリによって起動される外部アプリである。外部アプリは、例えば、バーコードリーダである。第2のアプリケーション102は、モバイルアプリである。
[0024]
 (1-1)第1のアプリケーション101は、第2のアプリケーション102からの、指示識別情報を含む動作指示に応じて起動する。例えば、モバイルアプリは、指示識別情報を含むURLスキームを実行することにより、OSを通じて外部アプリを起動する。これにより、外部アプリは、指示識別情報を取得することができる。
[0025]
 (1-2)第1のアプリケーション101は、動作指示に対応した動作を実行する。外部アプリは、例えば、利用者の操作入力に基づいて、バーコードからデータを読み取る。これにより、外部アプリは、出力対象であり、モバイルアプリに取得させるデータを読み取ることができる。
[0026]
 (1-3)第1のアプリケーション101は、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第2のアプリケーション102が参照可能である記憶領域に保存する。外部アプリは、例えば、読み取ったデータを、動作指示に含まれる指示識別情報に関連付けてモバイルアプリが参照可能である記憶領域に保存する。
[0027]
 一方で、第2のアプリケーション102は、第1のアプリケーション101によって保存されたデータを記憶領域から読み出して取得することができ、そのデータを利用することができる。これにより、外部アプリは、モバイルアプリとの連携を実現し、モバイルアプリにプラグインを追加しなくても端末装置100の機能を増やすことができる。
[0028]
 また、端末装置100は、モバイルアプリと外部アプリとの連携によって、モバイルアプリのデータサイズの増大化を抑制することができる。そして、モバイルアプリの製作者は、外部アプリを変更して外部アプリのデータサイズを増大した場合でも、モバイルアプリを変更しなくてもよくモバイルアプリのデータサイズを増大させなくてよくなる。このため、製作者は、外部アプリを配信し直せば、モバイルアプリを配信し直さなくてもよく、端末装置100にかかる通信負担を低減することができる。同様に、製作者は、モバイルアプリを変更した場合でも、外部アプリを配信し直さなくてもよい。
[0029]
 また、端末装置100は、OSによって、モバイルアプリと、外部アプリとに、それぞれ、メモリ容量を割り当てることができる。このため、端末装置100は、モバイルアプリが使用するメモリ容量が、モバイルアプリにOSから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性を低減することができる。同様に、端末装置100は、外部アプリが使用するメモリ容量が、外部アプリにOSから割り当てられたメモリ容量よりも大きくなり、メモリ容量が不足してしまう可能性を低減することができる。
[0030]
 また、外部アプリは、データを取得する都度、そのデータを保存することができる。このため、外部アプリは、強制終了された場合であっても、データを喪失する可能性を低減することができる。また、外部アプリは、データを取得する都度、そのデータをモバイルアプリに送信しなくても、データを喪失する可能性を低減することができる。
[0031]
 また、外部アプリは、データを取得する都度、そのデータをモバイルアプリに送信して、モバイルアプリをフォアグラウンドに移動させなくてもよい。このため、外部アプリは、利用者が複数のデータを連続して取得する操作入力を行おうとする場合に、データを取得する都度モバイルアプリをフォアグラウンドに移動してしまい利用者が操作入力を行いづらくしてしまう可能性を低減することができる。
[0032]
(端末装置100のハードウェア構成例)
 次に、図2を用いて、端末装置100のハードウェア構成例について説明する。
[0033]
 図2は、端末装置100のハードウェア構成例を示すブロック図である。図2において、端末装置100は、CPU(Central Processing Unit)201と、メモリ202と、ネットワークI/F(Interface)203と、記録媒体I/F204と、記録媒体205と、タッチパネル206とを有する。また、各構成部は、バス200によってそれぞれ接続される。
[0034]
 ここで、CPU201は、端末装置100の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させる。
[0035]
 ネットワークI/F203は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F203は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F203には、例えば、モデムやLANアダプタなどを採用することができる。
[0036]
 記録媒体I/F204は、CPU201の制御に従って記録媒体205に対するデータのリード/ライトを制御する。記録媒体I/F204は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体205は、記録媒体I/F204の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体205は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体205は、端末装置100から着脱可能であってもよい。記録媒体205は、実施の形態にかかるアプリケーションを記憶してもよい。
[0037]
 タッチパネル206は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示するディスプレイを有する。タッチパネル206は、ディスプレイ上、または、ディスプレイ外周部に設けられ、タッチパネル206上のユーザの接触位置を検出する検出装置を有する。検出装置は、例えば、抵抗膜方式、静電容量方式、超音波方式、光学方式、または、電磁誘導方式などを用いて、接触位置を検出する。タッチパネル206は、ユーザの接触位置に応じて、文字、数字、各種指示などの入力を行う。
[0038]
 端末装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイなどを有してもよい。また、端末装置100は、記録媒体I/F204や記録媒体205を有していなくてもよい。
[0039]
(指示管理DB(DataBase)300の記憶内容)
 次に、図3を用いて、モバイルアプリが参照可能な記憶領域に記憶される指示管理DB300の記憶内容について説明する。指示管理DB300は、例えば、図2に示した端末装置100のメモリ202や記録媒体205により実現される。
[0040]
 図3は、指示管理DB300の記憶内容の一例を示す説明図である。図3に示すように、指示管理DB300は、識別IDと、コンテンツIDと、ユーザIDと、データ格納先と、発行日時とのフィールドを有する。指示管理DB300は、動作指示ごとに各フィールドに情報を設定することにより、動作指示情報がレコードとして記憶される。
[0041]
 識別IDのフィールドは、動作指示になるURLスキームを識別する識別IDが設定される。コンテンツIDのフィールドは、モバイルアプリが提供するコンテンツであって、そのURLスキームによって起動される外部アプリによって保存された1以上のデータを利用するコンテンツを識別するコンテンツIDが設定される。ユーザIDのフィールドは、モバイルアプリの利用者を識別するユーザIDが設定される。データ格納先のフィールドは、そのURLスキームによって起動される外部アプリがデータを保存する対象ファイルのパスが設定される。発行日時のフィールドは、そのURLスキームを作成した日時が設定される。
[0042]
(コンテンツDB400の記憶内容)
 次に、図4を用いて、モバイルアプリが参照可能な記憶領域に記憶されるコンテンツDB400の記憶内容について説明する。コンテンツDB400は、例えば、図2に示した端末装置100のメモリ202や記録媒体205により実現される。
[0043]
 図4は、コンテンツDB400の記憶内容の一例を示す説明図である。図4に示すように、コンテンツDB400は、コンテンツIDと、コンテンツ名と、ユーザIDと、データとのフィールドを有する。コンテンツDB400は、コンテンツごとに各フィールドに情報を設定することにより、コンテンツ情報がレコードとして記憶される。
[0044]
 コンテンツIDのフィールドは、モバイルアプリが提供するコンテンツであって、URLスキームによって起動される外部アプリによって保存された1以上のデータを利用するコンテンツを識別するコンテンツIDが設定される。コンテンツ名のフィールドは、そのコンテンツの名称が設定される。ユーザIDのフィールドは、モバイルアプリの利用者を識別するユーザIDが設定される。データのフィールドは、コンテンツに関するパラメータが設定され、例えば、外部アプリによって保存された1以上のデータが設定される。
[0045]
(ファイルDB500の記憶内容)
 次に、図5を用いて、モバイルアプリと外部アプリが共通して参照可能な記憶領域に記憶されるファイルDB500の記憶内容について説明する。ファイルDB500は、例えば、図2に示した端末装置100のメモリ202や記録媒体205、あるいは、ネットワーク210を経由して通信可能なサーバにより実現される。
[0046]
 図5は、ファイルDB500の記憶内容の一例を示す説明図である。図5に示すように、ファイルDB500は、識別IDと、データと、入力日時とのフィールドを有する。ファイルDB500は、データごとに各フィールドに情報を設定することにより、ファイルがレコードとして記憶される。
[0047]
 識別IDのフィールドは、動作指示になるURLスキームに含まれ、そのURLスキームを識別する識別IDが設定される。データのフィールドは、そのURLスキームに基づく動作によって得られたデータが設定される。入力日時のフィールドは、データのフィールドにデータを設定した日時が設定される。
[0048]
(端末装置100の機能的構成例)
 次に、図6を用いて、端末装置100の機能的構成例について説明する。
[0049]
 図6は、端末装置100の機能的構成例を示すブロック図である。端末装置100は、起動部601と、実行部602と、出力部603とを含む。
[0050]
 起動部601~出力部603は、制御部となる機能である。起動部601~出力部603は、具体的には、例えば、図2に示したメモリ202や記録媒体205などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、ネットワークI/F203により、その機能を実現する。各機能部の処理結果は、例えば、図2に示したメモリ202や記録媒体205などの記憶領域に記憶される。
[0051]
 起動部601は、第1のアプリケーション101を起動する。第1のアプリケーション101は、端末装置100上で動作するアプリケーションである。第1のアプリケーション101は、例えば、外部アプリである。起動部601は、例えば、第2のアプリケーション102からの指示識別情報を含む動作指示に基づき、第1のアプリケーション101を起動する。第2のアプリケーション102は、端末装置100上で動作するアプリケーションである。第2のアプリケーション102は、例えば、モバイルアプリである。指示識別情報は、例えば、識別IDである。動作指示は、例えば、その動作指示を識別する識別IDを含む。動作指示は、さらに、その動作指示に対応する動作によって得られるデータを保存する保存先となる、対象ファイルのパスを含んでもよい。動作指示は、例えば、URLスキームである。
[0052]
 起動部601は、具体的には、モバイルアプリが作成した、識別IDを含むURLスキームを実行することにより、外部アプリを起動する。これにより、外部アプリは、URLスキームに基づいて、そのURLスキームを識別する識別IDを取得することができ、そのURLスキームに対応する動作を行って得られるデータを保存する保存先になる対象ファイルのパスを取得することができる。
[0053]
 実行部602は、第1のアプリケーション101を実行する。実行部602は、第1のアプリケーション101を実行することによって、動作指示に対応した動作を実行する。動作は、例えば、バーコードからのデータの読み取り、および読み取りデータの出力などである。実行部602は、例えば、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第2のアプリケーション102が参照可能である記憶領域に保存する。
[0054]
 実行部602は、例えば、外部アプリを実行することによって、モバイルアプリからのURLスキームに基づいて、バーコードからデータを読み取り、識別IDと対応付けて対象ファイルに保存する。これにより、実行部602は、モバイルアプリに、モバイルアプリが作成したURLスキームに対応し、外部アプリによって作成されたデータを特定させ、取得させることができる。
[0055]
 また、動作は、指示識別情報が所定の条件を満たさない場合に、第1のアプリケーション101の起動時に行われる処理を中断し、または、第1のアプリケーション101を終了する動作を含んでもよい。実行部602は、例えば、予め設定された形式に合致しない識別IDであれば、外部アプリの起動時に行われる処理を中断し、外部アプリを終了してもよい。形式は、例えば、識別IDの先頭文字の形式である。形式は、例えば、識別IDにパリティを含むという形式であってもよい。これにより、実行部602は、外部アプリが不正アプリによって利用されることを抑制することができる。
[0056]
 実行部602は、例えば、指示識別情報が、過去に取得したことがあり、過去に取得した時点から所定の時間が経過した指示識別情報である場合、外部アプリの起動時に行われる処理を中断し、外部アプリを終了してもよい。これにより、実行部602は、モバイルアプリが過去に作成した識別IDを不正アプリが流用した場合などであっても、外部アプリが不正アプリによって利用されることを抑制することができる。
[0057]
 また、動作指示は、さらに、第2のアプリケーション102に指定され、指示識別情報が保存される記憶領域を示す情報を含んでもよい。指示識別情報が保存される記憶領域は、例えば、対象ファイルである。実行部602は、例えば、外部アプリの起動に応じて、外部アプリによって、識別IDを対象ファイルに保存する。これにより、実行部602は、対象ファイルに、外部アプリが起動したことを示す情報として、識別IDを保存することができる。
[0058]
 実行部602は、例えば、対象ファイルにデータを保存する際、そのデータに対応付けてそのデータに関する時点情報を保存してもよい。実行部602は、具体的には、データを取得した時点、データを作成した時点、またはデータを保存する時点などを示す時点情報を保存する。これにより、実行部602は、モバイルアプリが、外部アプリの動作状態を判定するための情報を保存しておくことができる。
[0059]
 実行部602は、第2のアプリケーション102を実行する。実行部602は、第2のアプリケーション102を実行することによって、第1のアプリケーション101への動作指示に、第1のアプリケーション101が参照可能である記憶領域を示す情報と、その動作指示を識別する指示識別情報とを含めることができる。そして、実行部602は、第1のアプリケーション101への動作指示を発行することができる。
[0060]
 実行部602は、例えば、外部アプリへの動作指示となるURLスキームを、そのURLスキームを識別する識別IDと、その外部アプリによって取得されるデータの保存先になる対象ファイルのパスとを含めて発行することができる。これにより、実行部602は、外部アプリに、識別IDに対応付けて対象ファイルにデータを保存させることができる。このため、実行部602は、モバイルアプリが、発行したURLスキームに対応するデータを特定して、取得することができるようにすることができる。
[0061]
 実行部602は、第2のアプリケーション102を実行することによって、記憶領域を監視し、動作指示に応じて起動した第1のアプリケーション101によって、その記憶領域に指示識別情報に対応付けて保存されたデータを取得する。実行部602は、例えば、対象ファイルを監視し、外部アプリが識別IDに対応付けて対象ファイルに書き込んだデータを取得することができる。
[0062]
 実行部602は、さらに、動作指示を発行した時点と、記憶領域にデータが書き込まれた時点との差分が閾値以上である場合に、記憶領域からデータを削除してもよい。実行部602は、例えば、指示管理DB300の発行日時と、ファイルDB500の入力日時との差分が閾値以上である場合に、対象ファイルからデータを取得せずに削除する。これにより、実行部602は、セキュリティの低下を抑制することができる。
[0063]
 実行部602は、さらに、データを取得した場合、記憶領域からデータを削除してもよい。実行部602は、例えば、対象ファイルからデータを取得した場合、コンテンツDB400にデータを複製して、対象ファイルからはそのデータを削除する。これにより、実行部602は、外部アプリが書き込んだデータが、のちに不正利用されないようにして、セキュリティの低下を抑制することができる。
[0064]
 出力部603は、第1のアプリケーション101や第2のアプリケーション102が取得したデータを出力する機能を有する。また、出力部603は、さらに、第1のアプリケーション101と第2のアプリケーション102との起動状態や連携状態を示す情報を出力する機能を有してもよい。出力形式は、例えば、ディスプレイへの表示、タッチパネル206への表示、プリンタへの印刷出力、ネットワークI/F203による外部装置への送信、または、メモリ202や記録媒体205などの記憶領域への記憶などである。
[0065]
(実施例1)
 次に、図7および図8を用いて、実施例1について説明する。
[0066]
 図7および図8は、実施例1を示す説明図である。図7および図8の例では、端末装置100は、自装置上で、モバイルアプリ710と外部アプリ720を動作させることができる。モバイルアプリ710は、UI処理部711と、アプリ管理部713とを有する。
[0067]
 UI処理部711は、ブラウザ712を介して1以上のコンテンツを提供する。UI処理部711は、ブラウザ712を介して、利用者701からの操作入力を受け付ける。アプリ管理部713は、外部アプリ720を起動する。アプリ管理部713は、監視部714を有する。監視部714は、外部アプリ720が保存するデータを監視する。
[0068]
 図7の例では(7-1)モバイルアプリ710は、UI処理部711によって、ブラウザ712の提供するいずれかのコンテンツにおいて、タッチパネル206などを用いた利用者701からの外部アプリ720の起動を要求する操作入力を受け付ける。モバイルアプリ710は、UI処理部711からアプリ管理部713へと、外部アプリ720の起動を要求する操作入力を通知する。
[0069]
 また、モバイルアプリ710は、UI処理部711からアプリ管理部713へと、その操作入力を受け付けたコンテンツのコンテンツIDを通知する。これにより、モバイルアプリ710は、アプリ管理部713に、どの外部アプリ720を起動するかを通知し、どのコンテンツが外部アプリ720が保存するデータを利用するかを通知することができる。
[0070]
 (7-2)モバイルアプリ710は、アプリ管理部713によって、次に発行する動作指示を識別する識別IDを生成する。また、モバイルアプリ710は、アプリ管理部713によって、次に発行する動作指示によって起動される外部アプリ720によってデータが保存される対象ファイルをファイルDB500に生成し、その対象ファイルのパスを生成する。また、モバイルアプリ710は、アプリ管理部713によって、操作入力を受け付けたコンテンツのコンテンツIDを生成する。
[0071]
 モバイルアプリ710は、アプリ管理部713によって、生成した識別IDとパスとコンテンツIDとを対応付けて指示管理DB300に記憶する。モバイルアプリ710は、アプリ管理部713によって、生成した識別IDとパスとを含む動作指示になるURLスキームを作成する。モバイルアプリ710は、監視部714によって、生成した対象ファイルへのデータの書き込み状況を監視し始める。これにより、モバイルアプリ710は、外部アプリ720がデータを対象ファイルに書き込んでから、そのデータを取得するまでにかかる時間の低減化を図ることができる。また、モバイルアプリ710は、コンテンツIDをURLスキームに含めないため、コンテンツIDが不正アプリに流用される可能性を低減することができる。
[0072]
 (7-3)モバイルアプリ710は、アプリ管理部713によって、作成したURLスキームを実行する。これにより、モバイルアプリ710は、OSを通じて、外部アプリ720を起動することができる。また、モバイルアプリ710は、外部アプリ720に、動作指示に対応した所定の動作を行わせ、対象ファイルにデータを保存させることができる。また、モバイルアプリ710は、コンテンツIDを外部アプリ720に渡さないため、コンテンツIDが不正アプリに流用される可能性を低減することができる。
[0073]
 (7-4)外部アプリ720は、OSを通じて、起動される。外部アプリ720は、起動すると、URLスキームに含まれる識別IDと対象ファイルのパスとを取得する。外部アプリ720は、取得したパスに基づいて、取得した識別IDと、入力日時とを対応付けて、ファイルDB500の対象ファイルに保存する。モバイルアプリ710は、監視部714によって、対象ファイルに書き込まれた識別IDや入力日時などのデータを取得し、コンテンツDB400に記憶する。
[0074]
 これにより、モバイルアプリ710は、監視部714によって、外部アプリ720からURLスキームに対して応答されなくても、外部アプリ720が起動したことを検出することができる。また、モバイルアプリ710は、監視部714によって、外部アプリ720が起動した日時を取得することができる。モバイルアプリ710は、監視部714によって、外部アプリ720が起動に成功したか否かを把握することができる。次に、図8の説明に移行する。
[0075]
 図8の例では(8-1)外部アプリ720は、タッチパネル206などを用いた、利用者701からの操作入力に応じて、データを取得する。外部アプリ720は、例えば、バーコードリーダの機能を実現し、バーコードからデータを読み取る。
[0076]
 (8-2)外部アプリ720は、識別IDを用いて、読み取ったデータを暗号化する。外部アプリ720は、取得したパスに基づいて、取得した識別IDと、暗号化により得られた暗号化データと、入力日時とを対応付けて、ファイルDB500の対象ファイルに保存する。ここで、外部アプリ720は、対象ファイルに保存する識別IDや入力日時も暗号化してもよい。これにより、外部アプリ720は、セキュリティの向上を図ることができる。
[0077]
 (8-3)モバイルアプリ710は、監視部714によって、対象ファイルに書き込まれた識別IDと暗号化データと入力日時とを取得し、暗号化データを復号する。モバイルアプリ710は、指示管理DB300の発行日時に基づいて、取得した識別IDが、生成してから所定時間が経過した識別IDであれば、暗号化データを復号せずに削除してもよい。また、モバイルアプリ710は、暗号化データを取得すると、対象ファイルから暗号化データを削除する。これにより、モバイルアプリ710は、取得済みの暗号化データが不正アプリに利用されることを防止し、セキュリティの向上を図ることができる。
[0078]
 (8-4)モバイルアプリ710は、監視部714によって、取得した識別IDが、生成してから所定時間が経過していない識別IDであれば、指示管理DB300に基づいて、取得した識別IDに対応するコンテンツIDを特定する。モバイルアプリ710は、監視部714によって、取得した識別IDと、復号により得られたデータと、特定したコンテンツIDとを対応付けて、コンテンツDB400に記憶する。これにより、モバイルアプリ710は、どのコンテンツに、取得したデータを利用させるかを特定することができる。
[0079]
 (8-5)モバイルアプリ710は、UI処理部711によって、タッチパネル206などを用いた、利用者701からの操作入力に応じて、フォアグラウンドに移動する。これにより、モバイルアプリ710は、外部アプリ720が連続して複数のデータを取得する動作を行う場合などには、フォアグラウンドに移動せず、外部アプリ720を介した利用者701の操作入力を行いやすくすることができる。
[0080]
 (8-6)モバイルアプリ710は、UI処理部711によって、コンテンツDB400からデータを取得するAPI(Application Programming Interface)を呼び出して、実行する。モバイルアプリ710は、UI処理部711によって、データを取得する。これにより、モバイルアプリ710は、操作入力を受け付けたコンテンツに、取得したデータを利用させることができる。
[0081]
 (8-7)モバイルアプリ710は、UI処理部711によって、操作入力を受け付けたコンテンツにおいて、取得したデータを処理する。これにより、端末装置100は、外部アプリ720と、モバイルアプリ710との連携を実現することができる。また、端末装置100は、モバイルアプリ710と外部アプリ720との連携によって、モバイルアプリ710のデータサイズの増大化を抑制することができる。
[0082]
 また、端末装置100は、OSによって、モバイルアプリ710と、外部アプリ720とに、それぞれ、メモリ容量を割り当てることができる。また、外部アプリ720は、データを取得する都度、そのデータを保存することができる。また、外部アプリ720は、データを取得する都度、そのデータをモバイルアプリ710に送信して、モバイルアプリ710をフォアグラウンドに移動させなくてもよい。
[0083]
 このように、モバイルアプリ710は、識別IDを確認することにより、起動した外部アプリ720と、対象ファイルにデータを保存した外部アプリ720とが同一であることを確認することができる。このため、モバイルアプリ710は、識別IDを含む動作指示を発行した外部アプリ720とは異なる不正アプリによって保存されたデータを、誤って取得してしまうことを抑制することができる。
[0084]
 また、モバイルアプリ710は、識別IDを確認することにより、同じ外部アプリ720が保存したデータが、識別IDに対応する動作指示に基づく動作によって保存されたデータであるか否かを判別することができる。このため、モバイルアプリ710は、識別IDに対応する動作指示とは異なる動作指示に基づく動作によって保存されたデータを、誤って取得してしまうことを抑制することができる。また、モバイルアプリ710は、フォアグラウンドに移動しなくても、バックグラウンドのまま、外部アプリ720が保存したデータを取得することができる。
[0085]
 また、外部アプリ720は、データを取得する都度、モバイルアプリ710に送信しておかなくても、モバイルアプリ710が、ファイルDB500の入力日時に基づいて、データを取得した順番を特定可能なようにすることができる。モバイルアプリ710は、ファイルDB500の入力日時に基づいて、外部アプリ720がデータを取得した順番を特定することができる。
[0086]
 また、外部アプリ720は、同時に複数のモバイルアプリ710から動作指示を受け付けても、データを保存するファイルを、それぞれのモバイルアプリ710が指定した対象ファイルに分けることができる。このため、外部アプリ720は、それぞれのモバイルアプリ710が取得するデータが混在してしまうことを防止し、複数のモバイルアプリ710の競合を抑制することができる。
[0087]
 外部アプリ720は、不正アプリが識別IDを流用してURLスキームを用いて起動した場合でも、過去に用いたことがある識別IDによるURLスキームであれば、起動時処理を中断することができ、セキュリティの向上を図ることができる。また、外部アプリ720は、対象ファイルが作成されていない場合に、起動時処理を中断し、セキュリティの向上を図ってもよい。
[0088]
 また、製作者は、外部アプリ720を変更する場合には、モバイルアプリ710を変更しなくてもよい。同様に、製作者は、モバイルアプリ710を変更する場合には、外部アプリ720を変更しなくてもよい。このため、製作者は、モバイルアプリ710や外部アプリ720を管理しやすくなる。
[0089]
(連携処理手順の一例)
 次に、図9および図10を用いて、端末装置100がモバイルアプリ710によって実行する連携処理手順の一例について説明する。
[0090]
 図9および図10は、モバイルアプリ710によって実行する連携処理手順の一例を示すフローチャートである。図9において、端末装置100は、外部アプリ720を起動する操作入力を、利用者701から受け付ける(ステップS901)。
[0091]
 端末装置100は、操作入力を受け付けると、識別IDと、外部アプリ720によるデータの保存先になるファイルとを作成する(ステップS902)。端末装置100は、作成した識別IDと、作成したファイルの識別情報とを対応付けて、モバイルアプリ710内の指示管理DB300に記憶する(ステップS903)。
[0092]
 端末装置100は、外部アプリ720の動作指示になるURLスキームを作成する(ステップS904)。端末装置100は、作成したファイルの監視を開始する(ステップS905)。端末装置100は、作成したURLスキームを実行する(ステップS906)。端末装置100は、図10のステップS1001の処理に移行する。
[0093]
 図10において、端末装置100は、作成したファイルの監視によって、そのファイルに暗号化データが書き込まれたか否かを判定する(ステップS1001)。ここで、暗号化データが書き込まれていない場合(ステップS1001:No)、端末装置100は、ステップS1001の処理に戻る。
[0094]
 一方で、暗号化データが書き込まれている場合(ステップS1001:Yes)、端末装置100は、識別IDを用いて、ファイルに書き込まれた暗号化データを復号する(ステップS1002)。端末装置100は、復号によりデータを取得すると、ファイルから暗号化データを削除する(ステップS1003)。
[0095]
 端末装置100は、復号により取得したデータが識別IDと一致するか否かを判定する(ステップS1004)。ここで、一致しない場合(ステップS1004:No)、端末装置100は、識別IDが有効であるか否かを判定する(ステップS1005)。ここで、有効ではない場合(ステップS1005:No)、端末装置100は、連携処理を終了する。
[0096]
 一方で、有効である場合(ステップS1005:Yes)、端末装置100は、復号により取得したデータを、モバイルアプリ710内のコンテンツDB400に記憶する(ステップS1006)。
[0097]
 端末装置100は、モバイルアプリ710を、フォアグラウンドに移動する(ステップS1007)。端末装置100は、コンテンツDB400からデータを取得するAPIを実行する(ステップS1008)。端末装置100は、データを反映する(ステップS1009)。端末装置100は、ステップS1001の処理に戻る。
[0098]
 一方で、一致する場合(ステップS1004:Yes)、端末装置100は、入力日時-発行日時が、閾値未満であるか否かを判定する(ステップS1010)。ここで、閾値以上である場合(ステップS1010:No)、端末装置100は、識別IDを無効化する(ステップS1011)。端末装置100は、連携処理を終了する。
[0099]
 一方で、閾値未満である場合(ステップS1010:Yes)、端末装置100は、識別IDを有効化する(ステップS1012)。端末装置100は、ステップS1001の処理に戻る。これにより、端末装置100は、外部アプリ720がファイルに書き込んだデータを、モバイルアプリ710で取得することができ、モバイルアプリ710と外部アプリ720との連携を実現することができる。
[0100]
(動作処理手順の一例)
 次に、図11を用いて、端末装置100が外部アプリ720によって実行する動作処理手順の一例について説明する。
[0101]
 図11は、外部アプリ720によって実行する動作処理手順の一例を示すフローチャートである。図11において、端末装置100は、URLスキームを用いた動作指示を受け付ける(ステップS1101)。端末装置100は、動作指示を受け付けると、その動作指示に割り振られた識別IDを、日時に対応付けてファイルに保存する(ステップS1102)。
[0102]
 端末装置100は、受け付けた動作指示に応じた動作を行う(ステップS1103)。端末装置100は、動作指示に応じた動作を行った結果、データを取得する(ステップS1104)。端末装置100は、取得したデータを識別IDで暗号化する(ステップS1105)。
[0103]
 端末装置100は、暗号化により得られた暗号化データを、日時に対応付けてファイルに保存する(ステップS1106)。これにより、端末装置100は、モバイルアプリ710が取得可能な状態でデータを保存することができ、モバイルアプリ710と外部アプリ720との連携を実現することができる。
[0104]
 以上説明したように、端末装置100上で動作する第1のアプリケーション101によれば、端末装置100上で動作する第2のアプリケーション102からの、指示識別情報を含む動作指示に応じて起動することができる。また、第1のアプリケーション101によれば、動作指示に対応した動作を実行し、動作にデータの出力が含まれる場合は、データと指示識別情報とを関連付けて第2のアプリケーション102が参照可能である記憶領域に保存することができる。これにより、第1のアプリケーション101は、第2のアプリケーション102が取得可能なようにデータを保存することができ、第2のアプリケーション102との連携を実現することができる。
[0105]
 結果として、端末装置100は、第1のアプリケーション101と第2のアプリケーション102との連携によって、第2のアプリケーション102のデータサイズの増大化を抑制することができる。また、端末装置100は、OSによって、第1のアプリケーション101と、第2のアプリケーション102とに、それぞれ、メモリ容量を割り当てることができる。また、第1のアプリケーション101は、データを取得する都度、そのデータを保存することができる。また、第1のアプリケーション101は、データを取得する都度、そのデータを第2のアプリケーション102に送信して、第2のアプリケーション102をフォアグラウンドに移動させなくてもよい。
[0106]
 また、第1のアプリケーション101によれば、指示識別情報が所定の条件を満たさない場合に、第1のアプリケーション101の起動時に行われる処理を中断し、または、第1のアプリケーション101を終了する動作を実行することができる。これにより、第1のアプリケーション101は、不正アプリによる動作指示によって動作することを防止することができる。
[0107]
 また、第1のアプリケーション101によれば、第2のアプリケーション102からのURLスキームによってOSを通じて起動することができる。これにより、第1のアプリケーション101は、第2のアプリケーション102に応答しなくてもよい。
[0108]
 また、第1のアプリケーション101によれば、起動に応じて、指示識別情報を、動作指示に含まれ、第2のアプリケーション102に指定された第1の記憶領域に保存することができる。これにより、第1のアプリケーション101は、第2のアプリケーション102が、第1のアプリケーション101の起動成功を把握可能にすることができる。
[0109]
 また、第1のアプリケーション101によれば、データと指示識別情報とを関連付けて動作指示に含まれ、第2のアプリケーション102に指定された第2の記憶領域に保存することができる。これにより、第1のアプリケーション101は、第2のアプリケーション102が取得可能であり、第2のアプリケーション102以外の不正アプリなどが特定していない記憶領域に、データを保存することができ、セキュリティの向上を図ることができる。
[0110]
 また、第1のアプリケーション101によれば、データと指示識別情報とデータに関する時点情報とを関連付けて保存することができる。これにより、第1のアプリケーション101は、第2のアプリケーション102がデータを管理しやすくすることができる。
[0111]
 また、第2のアプリケーション102によれば、第1のアプリケーション101への動作指示を、第2のアプリケーション102が参照可能である記憶領域を示す情報と、動作指示を識別する指示識別情報とを含めて発行することができる。また、第2のアプリケーション102によれば、その記憶領域を監視し、動作指示に応じて起動した第1のアプリケーション101によって指示識別情報に対応付けて保存されたデータを取得することができる。これにより、第2のアプリケーション102は、第1のアプリケーション101と連携することができる。
[0112]
 また、第2のアプリケーション102によれば、動作指示を発行された時点と、記憶領域にデータが書き込まれた時点との差分が閾値以上である場合には、記憶領域からデータを削除することができる。これにより、第2のアプリケーション102は、セキュリティの向上を図ることができる。
[0113]
 また、第2のアプリケーション102によれば、データを取得した場合、記憶領域からデータを削除することができる。これにより、第2のアプリケーション102は、セキュリティの向上を図ることができる。
[0114]
 なお、本実施の形態で説明したプログラムの実行方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したプログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したプログラムは、インターネット等のネットワークを介して配布してもよい。

符号の説明

[0115]
 100 端末装置
 101,102 アプリケーション
 200 バス
 201 CPU
 202 メモリ
 203 ネットワークI/F
 204 記録媒体I/F
 205 記録媒体
 206 タッチパネル
 210 ネットワーク
 300 指示管理DB
 400 コンテンツDB
 500 ファイルDB
 601 起動部
 602 実行部
 603 出力部
 701 利用者
 710 モバイルアプリ
 711 UI処理部
 712 ブラウザ
 713 アプリ管理部
 714 監視部
 720 外部アプリ

請求の範囲

[請求項1]
 端末装置上で動作するプログラムであって、
 前記端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
 前記動作指示に対応した動作を実行し、
 前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
 処理を前記端末装置に実行させることを特徴とするプログラム。
[請求項2]
 前記動作は、前記指示識別情報が所定の条件を満たさない場合に、前記プログラムの起動時に行われる処理を中断し、または、前記プログラムを終了する動作を含む、ことを特徴とする請求項1に記載のプログラム。
[請求項3]
 前記動作指示は、Uniform Resource Locator SchemeによってOperating Systemを通じて行われる、ことを特徴とする請求項1または2に記載のプログラム。
[請求項4]
 前記動作指示は、さらに、前記他のプログラムに指定され、前記指示識別情報が保存される第1の記憶領域を示す情報を含み、
 前記保存する処理は、さらに、前記プログラムの起動に応じて、前記動作指示に基づいて、前記指示識別情報を前記第1の記憶領域に保存する、ことを特徴とする請求項1~3のいずれか一つに記載のプログラム。
[請求項5]
 前記動作指示は、さらに、前記他のプログラムに指定され、前記データが保存される第2の記憶領域を示す情報を含み、
 前記保存する処理は、前記動作指示に基づいて、前記データと前記指示識別情報とを関連付けて前記第2の記憶領域に保存する、ことを特徴とする請求項1~4のいずれか一つに記載のプログラム。
[請求項6]
 前記保存する処理は、前記データと前記指示識別情報と前記データに関する時点情報とを関連付けて保存する、ことを特徴とする請求項1~5のいずれか一つに記載のプログラム。
[請求項7]
 端末装置上で動作するプログラムであって、
 前記端末装置上で動作する他のプログラムへの動作指示を、前記プログラムが参照可能である記憶領域を示す情報と、前記動作指示を識別する指示識別情報とを含めて発行し、
 前記記憶領域を監視し、前記動作指示に応じて起動した前記他のプログラムによって前記記憶領域に前記指示識別情報に対応付けて保存されたデータを取得する、
 処理を前記端末装置に実行させることを特徴とするプログラム。
[請求項8]
 前記取得する処理は、
 前記動作指示を発行された時点と、前記記憶領域に前記データが書き込まれた時点との差分が閾値以上である場合には、前記記憶領域から前記データを削除する、ことを特徴とする請求項7に記載のプログラム。
[請求項9]
 前記取得する処理は、
 さらに、前記データを取得した場合、前記記憶領域から前記データを削除する、ことを特徴とする請求項7または8に記載のプログラム。
[請求項10]
 端末装置上で動作するプログラムの実行方法であって、
 前記端末装置上で動作する他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
 前記動作指示に対応した動作を実行し、
 前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
 処理を前記端末装置が実行することを特徴とするプログラムの実行方法。
[請求項11]
 プログラムと他のプログラムとを動作させる端末装置であって、
 前記プログラムを、前記他のプログラムからの、指示識別情報を含む動作指示に応じて起動し、
 前記プログラムによって、前記動作指示に対応した動作を実行し、
 前記プログラムによって、前記動作にデータの出力が含まれる場合は、前記データと前記指示識別情報とを関連付けて前記他のプログラムが参照可能である記憶領域に保存する、
 制御部を有することを特徴とする端末装置。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]