(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら実施例について詳細に説明する。
【0011】
<情報処理装置の機能構成例>
図1は、情報処理装置の機能構成の一例を示す図である。
図1に示す情報処理装置10は、入力手段11と、出力手段12と、記憶手段13と、事前実行手段14と、アプリ管理手段15と、アプリ実行手段16と、画面生成手段17と、送受信手段18と、制御手段19とを有する。
【0012】
入力手段11は、情報処理装置10を使用するユーザ等からの各種指示の開始や終了、設定の入力等の各種入力を受け付ける。入力手段11は、例えば本実施形態における事前実行処理、アプリ管理処理、アプリ実行処理、画面生成処理、送受信処理等の各指示を受け付ける。
【0013】
入力手段11は、例えばデータ単体の操作(閲覧、編集等)の場合は、事前実行手段13に入力情報を出力する。入力手段11は、例えばアプリケーション選択要求、選択操作の場合は、アプリ管理手段15等に出力する。
【0014】
入力手段11により取得される情報の入力は、例えばキーボードやマウス等でもよく、また画面を用いたタッチパネル形式等でもよく、或いは例えばマイクロフォン等でもよい。
【0015】
出力手段12は、入力手段11により入力された内容や、入力内容に基づいて実行された内容等の出力を行う。出力手段12は、例えば画面表示により出力する場合には、ディスプレイやモニタ等の表示手段を有し、音声により出力する場合には、例えばスピーカ等の音声出力手段を有する。出力手段12は、例えばバイブレータ等のように、所定の刺激をユーザに与える触覚提示手段を有する。入力手段11と出力手段12とは、例えばタッチパネル等のように入出力が一体型であってもよい。
【0016】
記憶手段13は、本実施形態において必要となる各種情報を記憶する。記憶手段13は、例えば情報処理装置10にインストールされた各種のアプリや、アプリの管理情報、連携情報、アプリの事前実行内容、生成された画面情報、入出力や各種の処理実行結果に対する履歴情報等の各種情報を記憶することができる。
【0017】
本実施形態において、記憶手段13は、アプリの実体及びアプリ管理情報等を記憶する。アプリ管理情報としては、例えば連携元アプリ(第1のアプリ)や連携先アプリ(第2のアプリ)等のアプリ識別子、連携データの処理種別、データ形式、事前処理データ(例えば、時間情報)、連携回数等のうち、少なくとも1つが含まれるがこれに限定されるものではない。
【0018】
記憶手段13は、本実施形態における連携処理が実現可能な各処理を実行するための設定情報、各種処理の実行経過や結果等を記憶する。なお、記憶手段13に記憶される情報は、上述した情報に限定されるものではない。
【0019】
また、記憶手段13は、記憶された各種情報を必要に応じて所定のタイミングで読み出したり、書き込んだりすることができる。また、記憶手段13は、上述したような多種の情報の集合物であり、それらの情報を、例えばキーワード等を用いて検索し、抽出することができるように体系的に構成されているデータベースとしての機能を有していてもよい。記憶手段13は、例えばハードディスクやメモリ等であるが、これに限定されるものではない。
【0020】
事前実行手段14は、例えばユーザ(利用者)がアプリ連携の要求前に、表示又は編集中のデータが将来連携されることを予測する事前実行検知手段を有する。また、事前実行手段14は、例えば、上述した事前実行検知手段により得られたそのデータに対応して次に実行されるアプリの候補を検索する事前実行検索手段を有する。また、事前実行手段14は、例えば、データをアプリ候補に渡して事前に所定の処理を実行することで連携処理ができる可能性を評価する事前実行評価手段を有する。
【0021】
アプリ管理手段15は、入力手段11から選択要求操作を受け取ると、例えば連携元アプリ識別子及び連携データ等を用いて、記憶手段13に記憶されたアプリ管理情報から、連携先アプリ及び事前処理データのリストを取得する。取得したリストは、画面生成手段17により生成された画面上に表示される。
【0022】
アプリ実行手段16は、アプリ管理手段15により提示されたリストからユーザが入力手段11から入力した選択操作を受け取ると、その操作に対応させて、例えばOperating System(OS)のアプリの起動機能を利用し、所定のアプリを起動する。また、アプリ実行手段16は、実行されたアプリを連携履歴情報として記憶手段13に記憶することができる。
【0023】
画面生成手段17は、本実施形態における各処理を実行するための設定情報を入力する入力画面や、事前実行手段14による実行結果の表示画面、アプリ管理手段15による1又は複数のアプリ情報を表示するための画面等を生成する。なお、生成される画面例は、これに限定されるものではない。生成された画面は、例えば出力手段12によりユーザに出力される。
【0024】
送受信手段18は、例えばインターネットやLocal Area Network(LAN)等の通信ネットワークを介して外部装置と各種情報の送受信を行うための通信手段である。送受信手段18は、外部装置等にすでに記憶されている各種情報等を受信することができ、また情報処理装置10で処理された結果を、通信ネットワーク等を介して外部装置等に送信することもできる。
【0025】
制御手段19は、情報処理装置10の各構成部全体の制御を行う。制御手段19は、例えばユーザ等による入力手段11からの指示等に基づいて、連携処理に関する各制御を行う。ここで、各制御とは、例えば上述した事前実行手段14によるアプリ連携の事前実行、アプリ管理手段15によるアプリ管理、アプリ実行手段16によりアプリ実行、画面生成手段17による画面生成等があるが、これに限定されるものではない。
【0026】
上述した情報処理装置10の例としては、例えばPersonal Computer(PC)やサーバ、スマートフォンやタブレット端末等の通信端末、携帯電話等があるが、これに限定されるものではない。また、情報処理装置10の例としては、例えばゲーム機器、音楽再生装置等にも利用することができる。
【0027】
ここで、本実施形態におけるアプリとは、例えば画像や文書等の印刷、ウェブブラウザの閲覧、ワープロソフトや表計算ソフトによるファイルの編集、メール機能、Social Networking Service(SNS)の起動や終了等があるが、これに限定されるものではなく、プログラム等により実行される各種処理が含まれる。また、連携元のアプリとは第1のアプリであり、連携先のアプリとは第1のアプリの後に連携して実行される第2のアプリである。
【0028】
<情報処理装置10のハードウェア構成例>
各機能をコンピュータに実行させることができる実行プログラム(連携処理プログラム)を例えば情報処理装置10にインストールすることにより、本実施形態における連携処理を実現することができる。ここで、本実施形態における連携処理が実現可能なコンピュータのハードウェア構成例について図を用いて説明する。
【0029】
図2は、連携処理が実現可能なハードウェア構成の一例を示す図である。
図2におけるコンピュータ本体には、入力装置21と、出力装置22と、ドライブ装置23と、補助記憶装置24と、主記憶装置25と、Central Processing Unit(CPU)26と、ネットワーク接続装置27とを有するよう構成されており、これらはシステムバスBで相互に接続されている。
【0030】
入力装置21は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスや、マイクロフォン等の音声入力デバイスを有しており、ユーザ等からのプログラムの実行指示、各種操作情報、ソフトウェア等を起動するための情報等の入力を受け付ける。
【0031】
出力装置22は、本実施形態における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイを有し、CPU26が有する制御プログラムによりプログラムの実行経過や結果等を表示する。
【0032】
ここで、本実施形態においてコンピュータ本体にインストールされる実行プログラムは、例えば、Universal Serial Bus(USB)メモリやCD−ROM、DVD等の可搬型の記録媒体28等により提供される。プログラムを記録した記録媒体28は、ドライブ装置23にセット可能であり、CPU26からの制御信号に基づき、記録媒体28に含まれる実行プログラムが、記録媒体28からドライブ装置23を介して補助記憶装置24にインストールされる。
【0033】
補助記憶装置24は、例えばハードディスクドライブやSolid State Drive(SSD)等のストレージ手段等である。補助記憶装置24は、CPU26からの制御信号に基づき、本実施形態における実行プログラムや、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行うことができる。補助記憶装置24は、CPU26からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
【0034】
主記憶装置25は、CPU26により補助記憶装置24から読み出された実行プログラム等を格納する。主記憶装置25は、例えばRead Only Memory(ROM)やRandom Access Memory(RAM)等であるが、これに限定されるものではない。補助記憶装置24及び主記憶装置25は、例えば上述した記憶手段13に対応している。
【0035】
CPU26は、オペレーティングシステム等の制御プログラム、及び主記憶装置25に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現することができる。プログラムの実行中に必要な各種情報等は、例えば補助記憶装置24から取得することができ、また実行結果等を補助記憶装置24に格納することもできる。
【0036】
CPU26は、例えば入力装置21から得られるプログラムの実行指示等に基づき、補助記憶装置24にインストールされたプログラムを実行させることにより、主記憶装置25上でプログラムに対応する処理を行う。例えば、CPU26は、連携処理プログラムを実行させることで、上述した事前実行手段14によるアプリケーション連携の事前実行、アプリ管理手段15によるアプリ管理、アプリ実行手段16によりアプリ実行、画面生成手段による画面生成等の処理を行う。CPU26における処理内容は、これに限定されるものではない。CPU26により実行された内容は、必要に応じて補助記憶装置24に記憶させることができる。
【0037】
ネットワーク接続装置27は、CPU26からの制御信号に基づき、インターネットやLAN等の通信ネットワークと接続することにより、実行プログラムやソフトウェア、設定情報等を、通信ネットワークに接続されている外部装置等から取得する。また、ネットワーク接続装置27は、プログラムを実行することで得られた実行結果又は本実施形態における実行プログラム自体を外部装置等に提供することができる。
【0038】
上述したようなハードウェア構成により、本実施形態における連携処理を実行することができる。また、プログラムをインストールすることにより、汎用のPCや通信端末等で本実施形態における連携処理を容易に実現することができる。
【0039】
なお、情報処理装置10が、スマートフォン等の通信端末である場合には、上述の構成に加えて、例えばGlobal Positioning System(GPS)機能を用いた測位装置や、加速度センサ、角速度センサ等を有していてもよい。ネットワーク接続装置27は、例えば、Wi−Fi(登録商標)やBluetooth(登録商標)等による通信を可能にする通信手段を有していてもよい。ネットワーク接続装置27は、電話端末との通話を可能にする通話手段を有していてもよい。
【0040】
<連携処理の例>
ここで、本実施形態における連携処理の一例について、フローチャートを用いて説明する。なお、連携処理は、事前実行処理と、連携アプリ実行処理とに大別されるため、それぞれの処理に分けて説明する。
【0041】
<事前実行処理>
図3は、事前実行処理の一例を示すフローチャートである。
図3の例に示す事前実行処理において、入力手段11は、ユーザによる情報処理装置10に対する現在実行しているアプリに対する操作入力を取得する(S01)。
【0042】
次に、事前実行手段14は、事前実行検知処理を行う(S02)。また、事前実行手段14は、S02の処理により得られる結果から、事前実行検索処理を行う(S03)。S03の処理では、例えばS02の処理により得られる対象データ処理種別と、記憶手段13から得られるアプリ管理情報や連携履歴情報等に基づいて、例えば連携元アプリ(第1のアプリ)、連携先アプリ(第2のアプリ)、対象データに対するアプリ候補の組み合わせ情報等を出力する。
【0043】
また、事前実行手段14は、S03の処理により得られる結果から事前実行評価を行う(S04)。S04の処理では、連携元アプリ及び連携先アプリの組み合わせに対して、アプリ候補毎に対象データを実際に実行して評価を行い、その評価結果の一例として処理コストを取得する。また、取得した処理コストを評価結果から得られる連携情報(例えば、アプリ連携情報等)として記憶手段13に記憶する(S05)。
【0044】
<連携アプリ実行処理>
図4は、連携アプリ実行処理の一例を示すフローチャートである。
図4の例に示す連携アプリ実行処理において、アプリ管理手段15は、ユーザから連携アプリの選択要求があったか否かを判断し(S11)、連携アプリの選択要求があった場合(S11において、YES)、予め記憶手段13に記憶されている連携情報を取得する(S12)。連携情報は、例えば上述した事前実行処理で得られた評価結果のリストであるが、これに限定されるものではない。
【0045】
次に、画面生成手段17は、S12で得られた連携情報(リスト)を、推薦される連携アプリ情報(アプリ候補)として、出力手段12の画面に表示する(S13)。また、入力手段11がユーザからの選択指示を取得すると(S14)、アプリ実行手段16は、選択されたアプリを実行する(S15)。このとき、アプリ実行手段16は、実行されたアプリを連携履歴情報として記憶する(S16)。
【0046】
ここで、制御手段19は、連携アプリ実行処理を終了するか否かを判断し(S17)、処理を終了しない場合(S17において、NO)、S11の処理に戻る。また、制御手段19は、ユーザからの指示等により処理を終了する場合(S17において、YES)、連携アプリ実行処理を終了する。
【0047】
<具体例>
次に、本実施形態の具体例について説明する。
図5は、本実施形態におけるアプリ連携の一例を示す図である。なお、
図5の例では、情報処理装置10における入力手段11と、出力手段12と、記憶手段13と、事前実行手段14と、アプリ管理手段15とが示されている。事前実行手段14は、事前実行検知手段14−1と、事前実行検索手段14−2と、事前実行評価手段14−3とを有する。
【0048】
上述した事前実行処理では、例えばユーザ30がアプリを実行中に、入力手段11により何らかの操作内容を入力すると、事前実行検知手段14−1が、その操作内容を検知し、検知した操作内容に対応する対象データ処理種別を設定する。事前実行検知手段14−1により得られる対象データ処理種別は、事前実行検索手段14−2に入力される。
【0049】
事前実行検索手段14−2は、記憶手段13を参照して、対象データ処理種別に対応するアプリ管理情報や連携履歴情報等を取得し、連携元アプリ、連携先アプリ、対象データ等を事前実行評価手段14−3に出力する。
【0050】
事前実行評価手段14−3は、連携元アプリから連携先アプリへの対象データの連携を実際に実行し、その評価結果を取得する。この事前実行評価処理は、例えばユーザ30が、連携元のアプリを実行している間に、その裏の処理(内部処理)として実行される。
【0051】
図5の例では、記憶手段13に記憶される「アプリ−1」、「アプリ−2」等の複数のアプリについて事前実行評価を行い、その評価結果がアプリ毎に付与される。このようにして得られた実行結果は、アプリ連携情報として記憶手段13に記憶される。
【0052】
連携アプリ実行処理では、ユーザ30が入力手段11より連携要求があると、アプリ管理手段15は、記憶手段13からアプリ連携情報を取得する。また、アプリ管理手段15は、アプリ連携情報(例えば、処理コスト、データ)等の情報を出力手段12によりユーザ30に提示する。これにより、ユーザ30は、出力手段12により表示されたアプリ連携情報の推薦情報に基づいて、適切なアプリを選択して実行することができる。実行された情報は、連携履歴情報として記憶手段13に記憶される。
【0053】
<事前実行検知手段14−1について>
次に、上述した事前実行検知手段14−1について具体的に説明する。
図6は、事前実行検知の内容を説明するための図である。また、
図7は、事前実行検知処理の一例を示すフローチャートである。
【0054】
事前実行検知手段14−1は、アプリ間で連携する可能性を予測し、事前実行のタイミングを決定する。例えば、
図6に示すように、情報処理装置の一例である通信端末40において、ユーザが連携元アプリの一例であるメールアプリの実行中に、何らかのデータ単体に対する処理(例えば、閲覧(表示)、編集等)をした時点で、事前実行処理を開始する。
【0055】
図6の例では、処理の一例として、メールアプリ(連携元アプリ)で受信したメールを参照し、メールに添付されたデータの選択を検知した時点で、事前実行処理を開始する。また、
図6の例では、ユーザがアプリの「表示」ボタンを押下すると、事前実行により得られる連携先アプリの候補を表示する。
図6の例では、推薦された連携候補として添付データに対応する商品購入アプリ(商品情報)と、閲覧アプリ(写真)が表示されている。
【0056】
ここで、ユーザが商品購入アプリ(連携先アプリ)を選択すると、選択されたアプリが実行される。
【0057】
なお、上述の例において、情報処理装置が通信端末40である場合には、アクティブなアプリケーションが1つであるため、検知対象のデータを絞り込むことが可能となる。また、データ自体を選択した場合だけでなく、データ中の一部を選択した場合(例えば、文章中の単語を選択等)においても、連携データが確定したとみなし、事前実行を開始することができる。
【0058】
図7の例に示す事前実行検知処理において、事前実行検知手段14−1は、実行中のアプリに対する操作内容を検知したか否かを判断し(S21)、操作内容を検知した場合(S21において、YES)、入力データを取得し(S22)、画面から処理種別を取得する(S23)。また、事前実行検知処理は、対象データ処理種別を事前実行検索手段14−2へ出力する(S24)。
【0059】
ここで、事前実行検知手段14−1は、S24の処理後、又はS21の処理において、例えば操作内容以外のイベント等を検知した場合(S21において、NO)、処理を終了するか否かを判断し(S25)、処理を終了しない場合(S25において、NO)、S21の処理に戻る。また、事前実行検知手段14−1は、アプリ終了イベント等のユーザの指示等により処理を終了する場合(S25において、YES)、連携アプリ実行処理を終了する。
【0060】
<事前実行検索手段14−2について>
次に、上述した事前実行検索手段14−2について具体的に説明する。事前実行検索手段14−2は、連携データを扱えるアプリ群を検索し、その実行順序を決定する。つまり、事前実行検索手段14−2は、例えば記録手段13に記憶されたアプリ管理情報等から、連携するデータ処理種別、データ形式等を用いて、条件に適合するアプリ(群)を検索する。
【0061】
図8は、記憶手段に記憶されるデータ例を示す図である。
図8(A)は、アプリ管理情報の一例を示し、
図8(B)は、連携履歴情報の一例を示している。
【0062】
図8(A)に示すアプリ管理情報の項目としては、例えば「アプリ識別子」、「データ処理種別」、「データ形式」、「事前処理時間」等があるが、これに限定されるものではなく、例えば「連携回数」を有していてもよい。アプリ識別子は、アプリを一意に識別する情報である。データ処理種別は、アプリ内での処理の種類(例えば閲覧(表示)、編集等)を示す情報である。データ形式は、各処理で扱えるデータ形式(例えば、MIME−Type等を想定)である。なお、データ形式中の「*」は、どんな形式でもよいことを示す。例えば「image/*」は、イメージデータであれば、例えばjpeg形式でも、bmp形式でも、GIF形式でもよいことを示している。また、事前処理時間は、事前実行処理にかかる時間情報である。なお、アプリ管理情報には、上述したようにアプリ識別子毎に過去に連携した回数を示す「連携回数」を有していてもよい。
【0063】
本実施形態では、記憶手段13から実行中アプリケーションの連携履歴情報を取得し、所定の条件に適合したアプリ群に対して、所定の方式を用いて事前実行順序を決定する。
【0064】
事前実行検索手段14−2における検索条件の一例としては、例えば連携元アプリのデータ処理種別が、アプリ管理情報のデータ処理種別に適合し、かつ、連携元データのデータ形式がアプリ管理情報のデータ形式に適合すること等があるが、これに限定されるものではない。
【0065】
また、
図8(B)に示す連携履歴情報の項目としては、例えば「アプリ識別子」、「連携先アプリ識別子」、「データ処理種別」、「データ形式」、「連携までの時間」、「連携回数」、「アプリ連携情報」等があるが、これに限定されるものではない。
【0066】
アプリ識別子は、アプリを一意に識別する情報であり、連携先アプリ識別子は、アプリ識別子のアプリに対して連携したアプリを一意に識別する情報である。データ処理種別は、連携先アプリ内での処理の種類(例えば閲覧(表示)、編集等)を示す情報である。データ形式は、処理で扱ったデータ形式である。例えば「image/jpeg」は、イメージデータのjpeg形式に対して連携したことを意味している。連携までの時間は、データ取得からアプリ連携までに要した時間である。また、連携回数は、アプリ識別子と連携先アプリ識別子とが、過去に連携した回数である。また、アプリ連携情報とは、アプリ連携に対する付加的な情報である。
【0067】
<事前実行順序の決定方法について>
ここで、事前実行順序の決定方法について、図を用いて説明する。
図9は、事前実行順序の決定方法について説明するための図である。
図9の例では、連携までの時間(t
pre)と、事前処理時間(t
exe)から、連携余裕時間(t
slack)を算出し、算出した連携余裕時間に基づいて事前実行する順序を決定する。
【0068】
連携までの時間及び事前処理時間は、連携元アプリ及び連携先アプリに定義されているものとする。事前実行処理及び連携処理が行われた場合、各時間を事前に定義されている時間情報に上書き又は所定の学習処理を行うことで、ユーザ毎の時間差に対応することができる。
【0069】
例えば、
図9の例では、ネットワーク状況把握やユーザ認証等の処理を行う必要がある場合に、SNSアプリ(App3)、印刷アプリ(App1)、画像認識アプリ(App2)の順序で事前処理時間(t
exe)が大きい。また、
図9の例では、連携までにかかる時間(t
pre)は、過去の統計等から、印刷アプリとSNSアプリより画像認識アプリの方が短い(すぐに連携している)。このような場合には、連携余裕時間(t
slack)の短い順に画像認識アプリ、SNSアプリ、印刷アプリの順序で事前実行が行われる。なお、
図9の例では、画像認識アプリとSNSアプリは、t
slackが同じだが、例えば事前処理時間が短い画像認識アプリが優先される。優先方法は、これに限定されるものではない。
【0070】
<事前実行処理の効率化について>
ここで、事前実行処理の効率化について説明する。事前実行処理の効率化は、例えば過去に同じデータを用いたデータ連携が行われた場合、事前実行を行わずに処理コスト及び処理後データを再利用する。なお、同じデータとは、例えば連携データのデータ形式と、上述した
図8(B)に示す連携履歴情報に含まれるデータ形式が同じ場合等であるが、これに限定されるものではない。また、同じデータを用いたデータ連携とは、同じデータに対するデータ処理種別が、上述した
図8(B)に示す連携履歴情報のデータ処理種別と同じ場合等であるが、これに限定されるものではない。連携履歴情報を用いることで、事前実行処理を省略して推薦する連携アプリ候補を取得することができる。
【0071】
また、本実施形態は、常に異なるデータを用いる等、事前実行のデータを再利用したくない場合には、連携履歴情報を記憶(キャッシュ)せずに、常に事前実行処理を行ってもよい。例えば、画像データの連携先が「編集」の場合に、連携履歴情報がないため、事前実行を行い、更に事前実行後に連携履歴情報のアプリ連携情報を追加更新しないことで、その後の連携時にもデータの再利用を行わないようにすることができる。また、連携先が「認識」の場合には、
図8(B)に示す連携履歴情報のデータ処理種別に対応するデータ処理種別がある。そのため、次に連携データのデータ形式と連携履歴情報のデータ形式とを比較し、同じ形式の場合には事前実行したものとみなし、そのアプリ連携情報(連携先アプリ識別子のアプリ)を再利用する。
【0072】
本実施形態における連携先のアプリ候補としては、例えば1回のデータ連携だけではなく、別のアプリを介したデータ連携を行うことができる。ここで、
図10は、アプリ候補の取得例を説明するための図である。
【0073】
図8(B)に示すような連携履歴情報にアプリ連携情報がある場合に、例えば連携されるアプリの処理後データに対して、更にアプリ連携情報を検索することもできる。これにより、連携先アプリ候補を増やすと共に、階層的にユーザに提示することができる。
【0074】
例えば、
図10に示すように、メールアプリで画像ファイルを閲覧していた場合に、画像認識アプリの事前実行処理で、画像データを処理し、エンコードされた文字列(Uniform Resource Locator(URL))に変換する。この文字列は、連携履歴情報に事前処理結果としてアプリ連携情報等に記憶される。
【0075】
その後(2回目以降)、メールアプリで同じ画像ファイルを閲覧していた場合には、既に生成されたURLを連携できるWebブラウザを事前実行処理の対象とすることができる。
【0076】
<事前実行評価手段14−3について>
次に、上述した事前実行評価手段14−3について具体的に説明する。
図11は、事前実行評価処理の一例を示すフローチャートである。
図11の例に示す事前実行評価処理において、事前実行評価手段14−3は、所定のデータ評価処理を行った後(S31)、所定のデータ処理に成功したか否かを判断する(S32)。事前実行評価手段14−3は、データ処理に成功した場合(S32において、YES)、処理後データを生成し(S33)、処理コストを算出し(S34)、処理コストの正規化を行う(S35)。なお、S35の処理では、例えば0〜100の整数に正規化するが、これに限定されるものではなく、正規化を行わなくてもよい。
【0077】
また、事前実行評価手段14−3は、データ処理に成功していない場合(S32において、NO)、処理の失敗理由等を追加情報として生成し(S36)、処理コストは全てなし(空欄)とする(S37)。
【0078】
次に、事前実行評価手段14−3は、S35又はS36の処理により得られた結果をアプリ連携情報として、記憶手段13に記憶する(S38)。
【0079】
上述した事前実行評価処理では、連携先アプリで所定のデータ処理を行い、データ処理が可能な場合はその処理内容を処理コストとして点数化し、データ処理が不可能な場合は改善内容を生成して、記録手段13に格納する。所定のデータ処理とは、例えば上述したデータ処理種別毎に予め設定されている処理内容等であるが、これに限定されるものではない。データ処理内容の点数化では、アプリ内での処理を、連携データを用いて呼び出すことで、正しくデータが処理されることを確認する。また、アプリは、処理の結果として処理後データと、複数の処理コストをシステムに返す。
【0080】
また、本実施形態では、ユーザが指定した処理コスト項目を用いてアプリの順位付けを行ってもよい。処理コストが同じ場合には、例えば過去の連携回数等を用いて順位付けを行ってもよいが、これに限定されるものではない。また、本実施形態では、各アプリで実行された事前実行処理後のデータも合わせてアプリ候補を表示することでユーザにアプリの選択を適切かつ容易に行わせることができる。
【0081】
上述したように、事前実行処理では、連携データを基にした実処理における複数の処理コストを算出し、算出されたコストを用いてユーザの選択指標の基準とすることができる。
【0082】
<事前処理に失敗した場合について>
ここで、上述したS32の処理において、事前処理に失敗した場合、処理コストは0となる。この場合に、S36の処理として、処理データにどのような変更を加えれば連携できるかをアプリが返すこともできる。これにより、ユーザが連携先のアプリを起動する前にデータ修正を促すことができる。
【0083】
また、事前実行評価手段14−3で計算された評価コストは、例えば、
図8(B)に示す連携履歴情報のアプリ連携情報として記憶手段13に記憶し、最終的に推薦されるアプリ候補で利用される。
【0084】
ここで、
図12は、アプリ連携情報の一例を示す図である。また、
図12に示すアプリ連携情報は、評価結果のリストの一例でもある。
図12(A)、
図12(B)に示すアプリ連携情報は、記憶手段13に記憶されるデータ例である。項目としては、例えば「アプリ識別子」、「データ識別子」、「データ処理種別」、「データ形式」、「処理コスト(時間、リソース、結果数)」、「処理後データ識別子」、「追加情報」等があるが、これに限定されるものではない。例えば、上述した
図8(B)に示す連携履歴情報に含まれる「アプリ識別子」、「データ処理種別」、「データ形式」等については、アプリ連携情報から省略することができる。また、アプリ連携情報は、連携履歴情報に含まれずに別データとして記憶手段13等に記憶されていてもよい。
【0085】
データ識別子は、連携データ等を識別するための情報である。データ形式は、連携データのデータ形式である。処理コストは、事前実行評価手段14−3で算出した処理コストである。処理後データ識別子は、事前処理によって生成されたデータを識別するための情報である。追加情報は、処理失敗時の改善内容等である。
【0086】
事前実行評価処理において、各アプリでの事前実行結果は、実行が終わり次第、アプリ連携情報として記憶手段13に記憶される。ここで、
図12(A)の例では、追加アプリ(データ処理種別が「追加」)の場合に、その事前実行の時間帯に別の予定があったため、処理コストがなく、追加情報にエラー情報が記憶される。エラー情報としては、例えば「10:00〜11:00は別の予定があります」等があるが、これに限定されるものではない。
【0087】
また、
図12(B)の例では、画像認識アプリ(データ処理種別が「認識」)の場合に、画像データ内に認識可能な画像がなかったため、処理コストはなく、追加情報にエラー情報が記憶される。エラー情報としては、例えば「認識できない画像データです」等があるが、これに限定されるものではない。
【0088】
<処理コストの例>
上述した
図12に示す処理コストは、例えば時間、リソース、及び結果数から算出しているが、これに限定されるものではなく、例えば上述した各項目のうち少なくとも1つの情報を用いて算出されてもよく、他の項目を用いてもよい。
【0089】
時間は、実際の処理にかかる時間の予測値であり、例えば「初期処理時間+単位処理時間×データサイズ」等から算出することができるが、これに限定されるものではない。また、リソースとは、例えばアクセスリソース数である。アクセスリソース数は、連携データを処理する際に利用されるリソースの数である。リソースとは、例えばネットワーク、ファイル、位置情報、連絡先、カレンダ等であるが、これに限定されるものではない。また、結果数とは、連携データを処理した場合に結果として得られる数である。
【0090】
ここで、上述した処理コストとユーザの選択指標とについて説明する。選択指標としては、例えば「安全性」、「迅速性」、「正確性」、及び「多様性」等があるが、これに限定されるものではなく、例えば上述した指標のうち少なくとも1つであってもよい。
【0091】
安全性とは、上述したアクセスリソース数により取得することができる。アクセスリソース数が少ないほど、端末内の情報や外部(例えば、クラウド等)の情報をアプリが利用していないため、安全であるといえる。また、迅速性は、上述した時間(処理時間)及び結果数により取得することができる。時間及び結果数が少ないほど、目的の処理終了までの時間が短くなるといえる。また、正確性は、結果数及びアクセスリソース数により取得することができる。アクセスリソース数が多いと元となるデータが多いことを示し、また結果数の少ないほど、検索結果が精査されているため正確であるといえる。
【0092】
また、多様性は、結果数及びアクセスリソース数により取得することができる。アクセスリソース数が多いと元となるデータが多いことを示し、結果数が多いことで多様であるといえる。
【0093】
例えば、SNSアプリ等では、ネットワーク接続、情報処理装置10内のアドレス帳やカレンダのリソース等が利用されるため、リソース数は3となる。また、印刷アプリではネットワーク接続のリソースだけを利用するため、リソース数は1となる。
【0094】
<事前実行評価の具体例>
ここで、事前実行評価の具体例について図を用いて説明する。
図13、
図14は、事前実行評価の具体例を示す図(その1,その2)である。
図13の具体例では、受信メールを印刷する場合の例を示し、
図14の具体例では、カメラ等の撮像手段で撮った写真を画像認識する場合の例を示している。
【0095】
図13の具体例では、入力される対象データ(アプリ識別子「com.fff.Mail」、データ形式「text/plain」)に対して、印刷を行えるアプリが複数存在することがアプリ管理情報から分かる。したがって、本実施形態では、複数のアプリに対して、それぞれ事前実行を行い、その結果を評価する。
【0096】
ここで、
図13の実行例1では、両プリンタ(「com.fff.Printer」、「com.abc.BTPrinter」)とも利用可能な場合のアプリ連携情報を示しており、実行例2では、「com.abc.BTPrinter」アプリで失敗する場合のアプリ連携情報を示している。実行例1、実行例2における時間は、各アプリが算出した処理時間を示し、リソースは、ネットワークを利用するため、使用リソースを1としている。また、処理後データ識別子は、事前実行で生成されたデータであり、アプリ推薦時に使用される。
【0097】
実行例2においては、「com.abc.BTPrinter」で事前処理に失敗しているため、各コスト処理の部分は空欄(なし)となる。また、追加情報では、「com.abc.BTPrinter」アプリによるエラーの原因が記憶される(例えば、「BTネットワークでプリンタがみつかりません」等)。
【0098】
また、
図14の具体例では、入力される対象データ(アプリ識別子「com.fff.Camera」、データ形式「image/jpeg」)に対して、アプリ管理情報内に意味的に異なる連携であってもデータ処理種別が同一(
図14の例では、「変換」)の場合がある。このような場合には、それぞれに対して事前実行処理を行い、処理コストを算出してアプリ毎の評価を行う。
【0099】
更に、本実施形態では、アプリ連携情報において処理コストが同じ場合に、
図14に示すアプリ管理情報に含まれる連携回数等を用いて順位付けすることができる。例えば、連携回数の多い順に順位付けすることができるが、これに限定されるものではない。本実施形態では、処理コストの項目によって、推薦するアプリの順序を入れ替えることができる。
【0100】
<画面例>
次に、画面生成手段17により生成される画面例について、図を用いて説明する。
図15〜
図17は、画面例を示す図(その1〜その3)である。
【0101】
画面生成手段17は、アプリ管理部15からアプリ連携情報等のリストを受け取り、ユーザにアプリ選択を促す提示を行う画面を生成する。生成した画面は、出力手段12により表示される。
【0102】
また、画面生成手段17は、ユーザが指定した選択指標に基づいてアプリの並べ替えを行うことができる。画面生成手段17は、アプリ毎に実行可能や実行不可を表示するための画面を生成する。画面生成手段17は、実行可能なアプリの場合に、そのアプリの事前実行後データを表示するための画面を生成してもよい。また、画面生成手段17は、実行不可なアプリの場合に、その不可理由を表示するための画面を生成してもよい。
【0103】
また、画面生成手段17は、事前実行中や事前実行前のアプリに対して未処理のアイコンを生成して表示させてもよく、実行が終わり次第、リストを更新して表示してもよい。実際に連携が行われた場合には、例えばアプリ管理手段15によって連携履歴情報の連携回数及び連携までの時間等が更新される。
【0104】
図15の例では、出力手段12の画面50に処理コスト順にアプリ候補が表示されている。ここで、画面50において、「Web」アプリが選択されると、選択された「Web」アプリに対する連携が開始され、画面52に示すように、事前実行で生成された処理後データが表示される。また、画面50において、「写真表示」のアプリが選択されると、事前実行処理が終わっていない場合ため、表示がされない。この場合には、事前実行が終ってない旨の表示を行ってもよい。また、画面50において、「プリンタ」のアプリが選択されると、事前実行後の処理コストがなく連携できないため、画面53に示すように連携できない理由がエラーメッセージとして表示される。なお、
図15の例では、エラーメッセージとして、「プリンタがみつかりません。プリンタの設定を行ってください。」と表示されているが、表示内容についてはこれに限定されるものではない。
【0105】
また、画面50に示す連携先の選択表示については、
図15に示すように予め設定された選択指標51によって順序を変更することができる。例えば、
図16(A)に示すように、ユーザが「安全性」の指標を選択すると、画面50にアクセスリソース数の少ない「印刷」アプリが優先して表示され、その後に「SNS」アプリ、「画像認識」アプリの順序で表示される。また、
図16(B)に示すように、ユーザが「迅速性」の指標を選択すると、画面50に処理時間や結果数が少ない「SNS」アプリが優先して表示され、その後に「印刷」アプリ、「画像認識」アプリの順序で表示される。
【0106】
本実施形態では、処理中のデータを連携できるアプリを推薦する際に、事前に連携先アプリでデータ処理を行うことで、
図17(A)に示すように、連携させる次のアプリを事前実行の成功の度合いによって順に表示することができる。
図17(A)の例では、カメラアプリで撮影された画像に連携してQRコード(登録商標)やバーコード等を読み取るバーコードアプリが実行される。これにより、ユーザは処理に成功する適切なアプリを選択することができる。
【0107】
また、本実施形態では、
図17(B)に示すように、事前実行に成功した結果のデータを表示することができる。
図17(B)の例では、カメラアプリで撮影された画像に対してバーコードアプリが事前実行され、その読み取った結果が表示される。これにより、ユーザはアプリの処理内容を予想でき、適切なアプリ選択が容易になる。
【0108】
また、本実施形態では、
図17(C)に示すように、事前実行処理に失敗する場合に、その理由や改善方法等を表示することができる。
図17(C)の例では、メールアプリから印刷アプリへの実行ができなかった場合に、その改善方法として、「プリンタを接続してください」が表示される。これにより、ユーザはアプリを起動する前に問題点を把握し、修正することができる。
【0109】
上述したように本実施形態によれば、アプリケーションの連携を適切に行うことができる。また、本実施形態によれば、アプリケーション連携でのユーザの操作コストを抑えることが可能となる。
【0110】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。
【0111】
なお、以上の実施例に関し、更に以下の付記を開示する。
(付記1)
第1のアプリケーションで処理されているデータに基づいて、次に実行される第2のアプリケーションの候補を抽出し、抽出した第2のアプリケーションの候補毎に事前処理を実行し、実行結果を評価する事前実行手段と、
前記事前実行手段により得られる評価結果に基づいて、前記第2のアプリケーションの候補を表示する画面を生成する画面生成手段とを有することを特徴とする情報処理装置。
(付記2)
前記事前実行手段は、
前記データに対するユーザの操作内容を検知する事前実行検知手段と、
前記事前実行検知手段により得られる操作内容に対応する対象データ処理種別から、事前実行が可能な前記第2のアプリケーションの候補を検索する事前実行検索手段と、
前記事前実行検索手段により得られる前記第2のアプリケーションの候補毎に前記データを用いた処理を実行し、その結果を評価する事前実行評価手段とを有することを特徴とする付記1に記載の情報処理装置。
(付記3)
前記事前実行手段は、
前記ユーザが前記データに対する所定の処理を開始した時点、又は、前記データに含まれる所定の部分を選択した時点で、前記事前処理を実行することを特徴とする付記1又は2に記載の情報処理装置。
(付記4)
前記事前実行評価手段は、
前記第2のアプリケーションの候補毎に得られる処理コストに基づいて評価することを特徴とする付記2に記載の情報処理装置。
(付記5)
前記画面生成手段は、
前記処理コストに基づいて、前記第2のアプリケーションの候補の表示順序を変更した画面を生成することを特徴とする付記4に記載の情報処理装置。
(付記6)
前記処理コストは、前記第2のアプリケーションの候補に対して事前処理を実行したときの時間、リソース、結果数のうち、少なくとも1つの指標を有することを特徴とする付記4又は5に記載の情報処理装置。
(付記7)
第1のアプリケーションで処理されているデータに基づいて、次に実行される第2のアプリケーションの候補を抽出し、抽出した第2のアプリケーションの候補毎に事前処理を実行し、実行結果を評価する事前実行ステップと、
前記事前実行ステップにより得られる評価結果に基づいて、前記第2のアプリケーションの候補を表示する画面を生成する画面生成ステップとを有することを特徴とする連携方法。
(付記8)
第1のアプリケーションで処理されているデータに基づいて、次に実行される第2のアプリケーションの候補を抽出し、抽出した第2のアプリケーションの候補毎に事前処理を実行し、実行結果を評価し、評価結果に基づいて、前記第2のアプリケーションの候補を表示する画面を生成する、処理をコンピュータに実行させるための連携プログラム。