(57)【要約】【課題】呼び出されるサービスの詳細を知らなくても、該サービスを含む複数のサービスを連携させた呼び出しを可能とする。【解決手段】サービス情報格納部204に登録された複数のサービスがサービス表示部202に表示され、サービス選択部203で呼び出し対象となる対象サービスを選択する。そして、グループ取得部205が、サービス情報格納部204に登録された複数のサービスから、対象サービスを含むサービスグループの情報を取得する。するとサービス呼出部208が、該取得されたサービスグループに属する全てのサービスを順次あるいは同時に呼び出す。【選択図】図2
2014174929.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービスの連携を制御するサービス連携装置であって、
複数のサービスを登録している登録手段と、
前記登録手段に登録された複数のサービスから、呼び出し対象となる1つの対象サービスを選択するサービス選択手段と、
前記登録手段に登録された複数のサービスから、前記対象サービスを含むサービスグループの情報を取得するグループ取得手段と、
該取得されたサービスグループに属する全てのサービスを呼び出すサービス呼出手段と、
を有することを特徴とするサービス連携装置。
【請求項２】
さらに、呼び出し元サービスからのサービス連携の起動を検出する検出手段と、
前記サービス呼出手段で呼び出した全てのサービスの実行結果を取得する結果取得手段と、
前記実行結果を前記呼び出し元サービスに返す返却手段と、を有し、
前記検出手段でサービス連携の起動が検出された後に、前記サービス選択手段による前記対象サービスの選択を行うことを特徴とする請求項1に記載のサービス連携装置。
【請求項３】
さらに、前記登録手段に登録された複数のサービスを一覧表示するサービス表示手段を有し、
前記サービス選択手段は、前記サービスの一覧表示から、前記対象サービスを選択することを特徴とする請求項1または2に記載のサービス連携装置。
【請求項４】
さらに、前記グループ取得手段で取得された複数のサービスグループを一覧表示するグループ表示手段と、
前記サービスグループの一覧表示から、前記サービス呼出手段で呼び出すサービスグループを選択するグループ選択手段と、
を有することを特徴とする請求項1乃至3のいずれか1項に記載のサービス連携装置。
【請求項５】
前記グループ表示手段は、前記対象サービスも加えた一覧表示を行い、
前記グループ選択手段は、前記対象サービスも選択可能とすることを特徴とする請求項4に記載のサービス連携装置。
【請求項６】
前記サービス呼出手段は、前記グループ取得手段でサービスグループの情報が取得されなかった場合、または前記グループ選択手段で前記対象サービスが選択された場合に、前記対象サービスを呼び出すことを特徴とする請求項5に記載のサービス連携装置。
【請求項７】
前記サービス呼出手段は、前記グループ取得手段で取得されたサービスグループの属性に応じて、該サービスグループに属するサービスについて同時呼び出しを行うか、または順次呼び出しを行うかを決定することを特徴とする請求項1乃至6のいずれか1項に記載のサービス連携装置。
【請求項８】
さらに、サービスグループの情報を予め保持するグループ情報保持手段を有し、
前記グループ取得手段は、前記グループ情報保持手段からサービスグループの情報を取得することを特徴とする請求項1乃至7のいずれか1項に記載のサービス連携装置。
【請求項９】
前記サービス呼出手段によるサービス呼び出しの履歴情報を保持する履歴保持手段を有し、
前記グループ取得手段は、前記履歴保持手段に保持された履歴情報を用いて、サービスの順次呼び出し属性を有するサービスグループの情報を取得することを特徴とする請求項1乃至8のいずれか1項に記載のサービス連携装置。
【請求項１０】
前記グループ取得手段は、前記対象サービスが実行される位置を示す位置情報を用いて、サービスの同時呼び出し属性を有するサービスグループの情報を取得することを特徴とする請求項1乃至8のいずれか1項に記載のサービス連携装置。
【請求項１１】
前記グループ取得手段は、前記対象サービスと他のサービスとの関係を示すソーシャル情報を用いて、サービスの同時呼び出し属性を有するサービスグループの情報を取得することを特徴とする請求項1乃至8のいずれか1項に記載のサービス連携装置。
【請求項１２】
前記対象サービスは、Webサイト、アプリケーション、デバイス、のいずれかによって提供されるサービスであることを特徴とする請求項1乃至11のいずれか1項に記載のサービス連携装置。
【請求項１３】
登録手段、サービス選択手段、グループ取得手段、およびサービス呼出手段を有し、複数のサービスの連携を制御するサービス連携装置の制御方法であって、
前記登録手段に複数のサービスが登録され、
前記サービス選択手段が、前記登録手段に登録された複数のサービスから、呼び出し対象となる1つの対象サービスを選択し、
前記グループ取得手段が、前記登録手段に登録された複数のサービスから、前記対象サービスを含むサービスグループの情報を取得し、
前記サービス呼出手段が、該取得されたサービスグループに属する全てのサービスを呼び出すことを特徴とするサービス連携装置の制御方法。
【請求項１４】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至12のいずれか1項に記載のサービス連携装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して提供される複数のサービスを呼出すサービス連携装置およびその制御方法に関する。
【背景技術】
【０００２】
従来、サービス利用装置において、外部のサービス提供装置が提供するサービスを順番に呼び出す方法として、サービスの実行順を定義したファイルを用意し、該ファイルを用いてサービスを順番に呼び出す方法が知られている(例えば、特許文献1参照)。
【０００３】
また近年、サービス利用装置においてWebサービスを呼び出して利用する方法として、WebIntentsが知られている。WebIntentsの仕様には、サービスの呼び出し元であるサービス利用装置が、呼び出すサービスについて詳細に知らなくても、サービス間連携が実現できるという特徴がある。WebIntentsを、Webサービスだけでなくデバイス間のサービス連携に利用する仕様も提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2008-250928号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記WebIntentsでは、サービスを1つずつ実行することしかできないため、複数のサービスを実行するには煩雑な制御を行う必要があった。また上記特許文献1に記載の技術では、複数のサービスについて予めその実行順を設定しておく必要があり、すなわちサービスの呼び出し元は予め、呼び出すサービスの詳細を知っていることが前提であった。したがって、サービスの呼び出し元が、呼び出すサービスの詳細を知らないまま、複数のサービスを順番に、または同時に呼び出して実行することはできなかった。
【０００６】
本発明は上記問題に鑑み、呼び出されるサービスの詳細を知らなくても、該サービスを含む複数のサービスを連携させた呼び出しを可能とするサービス連携装置およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための一手段として、本発明に係るサービス連携装置は以下の構成を備える。すなわち、複数のサービスの連携を制御するサービス連携装置であって、複数のサービスを登録している登録手段と、前記登録手段に登録された複数のサービスから、呼び出し対象となる1つの対象サービスを選択するサービス選択手段と、前記登録手段に登録された複数のサービスから、前記対象サービスを含むサービスグループの情報を取得するグループ取得手段と、該取得されたサービスグループに属する全てのサービスを呼び出すサービス呼出手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、呼び出されるサービスの詳細を知らなくても、該サービスを含む複数のサービスを連携させた呼び出しを可能とするサービス連携装置およびその制御方法を提供することを目的とする。
【図面の簡単な説明】
【０００９】
【図１】第1実施形態に係るサービス連携装置のハードウェア構成を示すブロック図、
【図２】第1実施形態に係るサービス連携装置の機能構成を示すブロック図、
【図３】第1実施形態におけるサービス呼び出し処理を示すフローチャート、
【図４】第1実施形態においてサービス情報格納部に保持されている情報例を示す図、
【図５】第1,2実施形態におけるユーザインタフェースの一例を示す図、
【図６】第1,2実施形態におけるグループ情報取得処理を示すフローチャート、
【図７】第1,2実施形態におけるグループ情報取得処理の詳細を示すフローチャート、
【図８】第1実施形態におけるサービス実行結果の受け取り処理を示すフローチャート、
【図９】第2実施形態に係るサービス連携装置の機能構成を示すブロック図、
【図１０】第2実施形態におけるサービス呼び出し処理を示すフローチャート、
【図１１】第2実施形態におけるユーザインタフェースの一例を示す図、
【図１２】第2実施形態におけるグループ情報取得処理の詳細を示すフローチャート、
【図１３】第2実施形態におけるグループ情報取得処理の詳細を示すフローチャート、
【図１４】第2実施形態におけるサービス実行結果の受け取り処理を示すフローチャート、である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一な構成については、同じ符号を付して説明する。
【００１１】
＜第1実施形態＞
本実施形態では、ネットワークを介して提供されるサービスを呼び出すサービス連携装置において、複数サービスの呼び出しを、そのサービスの詳細を知らないまま実行可能とする。具体的には、複数のサービスを登録しておき、該登録された複数のサービスから呼び出し対象となる対象サービスを選択する。そして、該登録された複数のサービスから前記対象サービスを含むサービスグループの情報を取得し、該取得されたサービスグループに属する全てのサービスを呼び出す。以下、その詳細について説明する。
【００１２】
●装置構成
図1は、本実施形態におけるサービス連携装置100のハードウェア構成例を示すブロック図である。同図において、CPU(中央処理装置)101はマイクロプロセッサ等で構成され、サービス連携装置100の全体を制御する。ROM102はプログラム等を格納する。RAM103は実行中のプログラムを記憶すると共に実行中のプログラムに用いられるデータ等を一時的に記憶する。補助記憶装置106はハードディスクやフラッシュメモリ、メモリーカード等から構成され、プログラムやデータ等を記憶する。出力部104はディスプレイ、プリンタ、スピーカ等で構成され、情報を出力する。入力部105は、キーボード、マウス、タッチパッド、カメラ等で構成され、情報を入力する。ネットワークI/F107は、サービスを提供する外部のデバイス等との接続を行う。なお入力部105では、ネットワークI/F107を介して受信された情報の入力も行う。
【００１３】
図2は、本実施形態におけるサービス連携装置200の機能構成例を示すブロック図である。図2に示すサービス連携装置200が、図1に示すサービス連携装置100に相当する。サービス連携装置200は、検出部201、サービス表示部202、サービス選択部203、グループ取得部205、サービス呼出部208、結果取得部209、返却部210、およびサービス情報格納部204、から構成される。
【００１４】
サービス連携装置200の外部には、呼び出し元サービス214と、サービスa,サービスb,…,サービスnといった、サービス連携装置200が連携可能なサービス群212が存在する。呼び出し元サービス214としては、Webサイトやアプリケーション、デバイスの機能等が考えられ、サービス群212に含まれるサービスであることも考えられる。なお、呼び出し元サービス214とサービス連携装置200は一体化していても良い。
【００１５】
サービス連携装置200の機能は、CPU101がROM102等から読み出したプログラムを実行することによって実現される。検出部201は、一般的には入力部105において、呼び出し元サービス214によって表示されたサービス連携を開始するボタンをユーザが押下する等により、サービス連携を開始する意図の入力(起動)があったことを検出する。サービス連携を開始する意図の入力があった旨を検出すると、検出部201はインテント(intent)を発行する。ここでインテントとは、ユーザが実行を期待するサービス連携の種類(action)と、サービスが処理するデータの型(type)、およびデータ自身、の3つを合わせたものを指す。
【００１６】
サービス表示部202は出力部104に、サービス情報格納部204に登録されたサービス群212のうち、検出部201が発行したインテントを処理できるサービスの一覧表示を行う。サービス選択部203は、検出部201が発行したインテントを処理可能なサービス一覧の中から、1つのサービスを選択する。このサービスの選択方法としては、例えばサービス表示部202が表示したサービス一覧の中から、ユーザが入力部105を用いて選択する。グループ取得部205は、サービス選択部203で選択されたサービスを含む、インテントの処理を同時に或いは順番に実行できるサービスのグループ(サービスグループ)を自身で作成し、該グループの情報を取得する。このグループの作成には、サービス情報格納部204に格納された情報を利用しても良い。グループ取得部205はさらに、複数のグループが存在する場合であれば、呼び出すグループを決める。なおインテントによっては、グループを取得できない場合もある。
【００１７】
サービス呼出部208は、グループ取得部205で取得されたグループを構成するサービスまたはサービス単体を、サービス群212から呼び出す。実際に、サービス群212から該当するサービス単体または複数のサービスに対し、検出部201が発行したインテントや、結果取得部209が発行するインテントを渡して処理を行わせる。グループの呼び出し方法としては、グループを構成する複数サービスについて、あるサービスの処理完了を待たずに他の複数のサービスを同時に呼び出す場合と、直前に呼び出されたサービスの処理終了後に、他のサービスを呼び出すことを順次行う場合がある。
【００１８】
結果取得部209は、サービス呼出部208によって呼び出されたサービスの実行結果を取得する。複数サービスの順次呼び出しを行うことによって次に呼び出すサービスが存在する場合には、実行結果に基づいて新たなインテントを発行し、サービス呼出部208に渡す。一方、複数のサービスが同時に呼び出されていた場合には、全ての実行結果を取得するまで待つ。次に呼び出すサービスが無く、全ての実行結果が得られた場合に、実行結果を返却部210に渡す。返却部210は、結果取得部209から受け取った実行結果を、呼び出し元サービス214に返却する。一般には、実行結果はさらに出力部104に表示されることでユーザに提示される。
【００１９】
サービス情報格納部204は、サービス群212のうち、登録された連携可能なサービスへのURL等のアクセス情報を、action、typeの各情報と関連付けた一覧として格納しているデータベースである。ここで図4に、サービス情報格納部204に保持されている情報例を示す。同図に示す例に加えて、サービスが扱う位置情報(サービスが実行されるデバイス位置等の情報)等を格納しても良い。サービス情報格納部204には、これらのサービス情報の追加や削除、または更新が可能である。
【００２０】
●サービス呼び出し処理
以下、本実施形態のサービス連携装置200が、呼び出し元サービス214からの要求に応じて複数のサービスを呼び出す処理について、図3のフローチャートを用いて詳細に説明する。
【００２１】
サービスの呼び出し処理を開始する際には、予めサービス情報格納部204に、例えば図4に示されるようなサービスが登録されている必要がある。サービスを登録する方法としては例えば、サービスが提供されているURLにアクセスし、サービス名と、そのサービスが処理可能なaction、typeといったサービスの種類を表す宣言を、htmlから読み取る方法がある。また別の方法としては、サービスを提供するアプリケーションパッケージの中にある宣言ファイルに書かれたサービス名と、そのサービスが処理可能なaction、typeの宣言を読み取る方法がある。もちろん、サービスを登録するさらに別の方法を用いても良い。加えて、サービスが扱う位置情報を取得してサービス情報格納部204に登録しても良い。なお、サービス情報格納部204へのサービス登録の際には、各サービスの処理内容を知る必要はない。
【００２２】
図3ではまず検出部201が、呼び出し元サービス214が表示しているサービス連携を開始するボタンをユーザが押下する等によって、サービス連携を開始する意図の入力があった旨を検出し、インテントを発行する(S311)。なおインテントの内容は、呼び出し元サービス214からそのまま引き継ぐ。
【００２３】
次にサービス表示部202が、サービス情報格納部204から、S311で発行されたインテントを処理可能とするサービスを抽出し、一覧表示によりユーザに提示する(S301)。ここで、インテントのactionが"view"、typeが"画像"であり、サービス情報格納部204の内容が図4に示す通りであったとする。この場合、図4においてactionが"view"、typeが"画像"である、第1行目から第7行目に記載された7つのサービス(「Aさんのテレビ画面」〜「Fさんのフォトフレーム」)が提示される。提示方法としては、例えば図5(a)に示すようなポップアップウィンドウを表示することが考えられる。
【００２４】
次にサービス選択部203は、サービス表示部202が表示したサービス一覧の中から、連携対象となる1つの対象サービスをユーザ指示に応じて選択する(S302)。例えば、図5(a)のようなポップアップウィンドウが表示されている場合には、ユーザが呼び出したいサービスの横にある選択ボタンを押下することで、対象サービスを選択することができる。次にグループ取得部205は、S302で選択された対象サービスが属するグループの情報を取得する(S303)。このグループ情報の取得処理の詳細については後述するが、インテントの種類に応じて、同時呼び出し属性あるいは順次呼び出し属性を有するグループとして取得される。
【００２５】
次にサービス呼出部208は、S303で取得されたグループに属するサービスを呼び出す(S304)。なお、グループが取得できなかった場合には、対象サービスを呼び出す。ここで呼び出されるのは、サービス情報格納部204からサービスが提供されている位置(URI等)を参照したサービス群212に含まれるサービス実体である。この際、呼び出すサービスに対してインテントを渡す。
【００２６】
次に、同時に呼び出すサービスがまだあるか否かを判定する(S305)。ここではすなわち、S303で取得されたグループが同時呼び出し属性を有するグループであった場合に、まだ呼び出していないサービスがあるか否かを判定する。なお、順次呼び出し属性を有するグループであった場合には、同時に呼び出すサービスは無いため、ここでの判定はNoとなる。同時に呼び出すサービスがまだあると判定された場合には、S304に戻って次のサービスを呼び出すが、同時に呼び出すサービスが無ければサービスの呼び出し処理を終了する。
【００２７】
ここで、サービス呼び出し処理について、上記具体例を用いて説明する。S303で取得されたグループが、「Bさんのカメラ画面」、「Cさんのカメラ画面」、「Dさんのカメラ画面」、から成る、同時呼び出し属性を有するサービスのグループであったとする。この場合、まず1回目のS304において「Bさんのカメラ画面」を呼び出した後、S305を経由してS304に戻り、2回目のS304で「Cさんのカメラ画面」を呼び出す。そして同様に3度目のS304で「Dさんのカメラ画面」を呼び出す。なお、呼び出し順については不同である。
【００２８】
また、S303で取得されたグループが、「シャープネス加工サービス」、「セピア加工サービス」、「文字入れ加工サービス」から成る、該順番での順次呼び出し属性を有するグループであったとする。この場合、S304で「シャープネス加工サービス」を呼び出した後にS305に進み、S304に戻ることなく、そのままサービスの呼び出し処理を終了する。
【００２９】
●グループ情報取得処理(S303)
以下、上記S303におけるグループ情報取得処理について、図6(a)のフローチャートを用いて詳細に説明する。本実施形態では、インテントの種類によってグループの取得方法を変更することを特徴とする。ここではactionが"view"である場合、すなわち、複数の画面で同時にview(閲覧)することを目的とする例を示す。
【００３０】
まず、発行されたインテントのactionが"view"であるか否かを判定する(S601)。"view"である場合には、S602でグループ情報を取得した後、処理を終了する。なお、S602の詳細については後述する。actionが"view"でない場合は、そのままS303の処理を終える。この場合、グループを取得できなかったことになる。
【００３１】
なおここでは、発行されたインテントのactionが"view"である場合を例として説明したが、もちろんactionが他の定義であっても同様に、その内容に応じてグループの取得が行われる。また、S601の後にさらに別の定義であるインテントの判定処理を加えても良い。この場合、全ての判定とそれに伴うグループ情報取得処理を終えてもグループ情報を取得できなかった場合に、グループが取得できなかったことになる。
【００３２】
●グループ情報取得処理詳細(S602)
以下、上記S602におけるグループ情報の取得処理として、サービスの位置情報に基づくグループ情報取得を行う場合を例として、図7(a)のフローチャートを用いて説明する。
【００３３】
まず、対象サービスが扱う位置情報を取得する(S701)。具体的には、対象サービスに問い合わせて取得しても良いし、サービス情報格納部204から取得しても良い。
【００３４】
次に、対象サービス以外の、サービス情報格納部204に登録されたサービスが扱う位置情報を取得する(S702)。ここで、サービス情報格納部204が図4に示すデータを格納しており、S311で発行されたインテントのactionが"view"でtypeが"画像"であるとする。この時、「Bさんのカメラ画面」が対象サービスであれば、「Aさんのテレビ画面」から「Fさんのフォトフレーム」までの全7つのサービスから「Bさんのカメラ画面」を除いた6つのサービスが、対象サービス以外の登録されたサービスとなる。以下、対象サービス以外の登録されたサービスを登録サービスと称する。すなわちS702では、対象サービス以外の登録サービスのうちの1つについて、その位置情報を取得する。残りの登録サービスについてももちろん、S702の繰り返し実行によって順次処理される。
【００３５】
次に、S702で取得した登録サービスの位置情報を、S701で取得した、対象サービスの位置情報と比較することで、これらサービスが互いに近い位置関係にあるか否かを判定する(S703)。ここで近い位置関係とは、サービス同士が同じ部屋等の同じ空間に存在している、または所定距離内に存在する、等を示す。近い位置関係にあると判定された場合はS704に進むが、そうでなければS707に進む。
【００３６】
S704では、対象サービスと近い位置関係にあるサービスから構成されるグループ、すなわち対象サービスが属する、位置関係に応じて設定されたグループ(近辺グループ)が既に存在しているか否かを判定する。近辺グループが存在する場合にはS706に進むが、存在しない場合にはS705に進んで、対象サービスの近辺グループを作成する。この近辺グループは、サービスが同時実行される同時属性を有するグループとして作成され、もちろん対象サービスを含む。そしてS706では、S702で選択された登録サービスを、対象サービスの近辺グループに加える。
【００３７】
そして最後に、未処理の登録サービスがあるか否かを判定し(S707)、存在する場合はS702に戻って次のサービスについて上記と同様の処理を行い、未処理の登録サービスが存在しない場合にはS602の処理を終える。この処理終了時に、S705で新たな近辺グループが作成されていれば該グループの情報が取得されたとし、S704で近辺グループが既に存在していたと判定されていれば該グループの情報が取得されたとする。
【００３８】
●サービス実行結果処理
本実施形態のサービス連携装置200においては、上述した図3のS304でサービス呼出部208がサービス群212のあるサービスを呼び出すと、該呼び出されたサービスは、自身の処理を実行した後にその結果を返してくる。サービス連携装置200では結果取得部209で該サービス実行結果を取得する際に、複数のサービスについての実行結果が返されることを想定する。以下、本実施形態におけるサービス実行結果の受け取り処理について、図8のフローチャートを用いて説明する。
【００３９】
まず結果取得部209が、呼び出したサービスの実行結果を取得する(S801)。なお、ここで取得される実行結果としては、呼び出したのが複数サービスであれば該複数サービスの実行結果であり、1つのサービスであれば該サービスの実行結果である。実行結果の取得後、同時にサービスを呼び出していたか否かを判定する(S802)。これは、上記S305で同時に呼び出すサービスがあると判定されてS304が複数回実行されたか否か、を判定することに他ならない。同時にサービスを呼び出していた場合はS803に進むが、そうでなければS808に進む。
【００４０】
S803では、実行結果を格納する配列(以下、結果配列と称する)が既に存在するか否かを判定し、結果配列が既に作成済みであればS805に進むが、未作成であればS804に進んで結果配列を新規に作成する。そしてS805で、S801で取得した複数サービスの実行結果を結果配列に収納する。
【００４１】
その後、同時に呼び出していたサービスのうち、未だ結果を取得していないサービスがあるか否かを判定する(S806)。仮に、「Bさんのカメラ画面」、「Cさんのカメラ画面」、「Dさんのカメラ画面」の3つのサービスを同時に実行していた場合に、「Bさんのカメラ画面」の実行結果のみを受け取っていれば、未だ結果を取得していないサービスがあることになる。結果を取得していないサービスがあると判定された場合にはS801に戻るが、該サービスが無いと判定された場合にはS807に進む。
【００４２】
S807では結果配列を返すことで、サービス実行結果処理を終了する。S807ではすなわち、結果取得部209が結果配列を返却部210に渡し、返却部210が結果配列を呼び出して元サービス214に返す。すると呼び出し元サービス214では、そこでの処理を介してユーザに結果を提示する。本実施形態では複数サービスによる実行結果を1つの配列に詰めて返すことにより、呼び出し元サービス214が1つの結果しか受け取れない仕様であっても対応可能となる。
【００４３】
一方、S802で同時にサービスを呼び出していないと判定された場合、S808で呼び出すべきサービスが未だあるか否かを判定する。例えば、「シャープネス加工サービス」、「セピア加工サービス」、「文字入れ加工サービス」から成る、この順番に実行できるサービスのグループを実行している場合であれば、先のS304では最初の「シャープネス加工サービス」だけが呼ばれる。このため、まだ「セピア加工サービス」と「文字入れ加工サービス」を実行する必要があり、S808の判定は真になる。S808が真判定であればS811に進むが、呼び出すサービスがもうない、すなわち偽判定であればS809に進む。なお、グループではなくサービス単体が呼び出された場合も同様に、呼び出すサービスがもうないものと判定される。
【００４４】
S809では1サービスの実行結果を返して、サービス実行結果処理を終了する。S809ではすなわち、結果取得部209が1サービスの実行結果を返却部210に渡し、返却部210が該実行結果を呼び出し元サービス214に返す。すると呼び出し元サービス214では、呼び出し元サービス214での処理を通じてユーザに結果を提示する。
【００４５】
また、S808で呼び出すサービスがまだあると判定された場合には、S811で実行結果の型と、次に呼び出すサービスの"type"が一致するか否かを判定する。これらが一致している場合にはS812に進み、結果取得部209は該実行結果を新たなインテントとして発行してサービス呼出部208に渡す。するとサービス呼出部208では次のサービスを呼び出す。S812で呼び出したサービスの実行結果の受け取りは、図8に示す処理をS801から開始することで行う。
【００４６】
一方、S811で結果と"type"が一致していなかった場合には、次のサービスを呼び出すことができない。そこでS813で返却部210が、該実行結果を失敗として、呼び出し元サービス214に返す。すると呼び出し元サービス214では、呼び出し元サービス214での処理を通じてユーザに失敗という結果を提示する。
【００４７】
このように本実施形態では、複数のサービスを呼び出した場合でも、それらの実行結果を配列にまとめることで、ひとつの結果として一度に受け取ることができる。
【００４８】
以上説明したように本実施形態によればサービス連携装置において、複数のサービスが互いの関係を密にすることなく、それら複数のサービスを同時に、或いは順番に呼び出し、実行することができる。
【００４９】
＜第2実施形態＞
以下、本発明に係る第2実施形態について説明する。第2実施形態においては、上述した第1実施形態における複数サービスの実行順を、さらに柔軟に制御する。
【００５０】
●装置構成
第2実施形態におけるサービス連携装置のハードウェア構成は、上述した第1実施形態で示した図1と同様であり、その機能構成例を図9に示す。図9において、第1実施形態で示した図2と同様の構成について同一番号を付し、説明を省略する。
【００５１】
図9に示すサービス連携装置900が、図1に示すサービス連携装置100に相当する。サービス連携装置900は、図2に示す構成に対し、さらにグループ表示部906、グループ選択部907、グループ情報格納部911、サービス履歴格納部913を含む。
【００５２】
以下、サービス連携装置900における特徴的な構成について説明する。第2実施形態におけるグループ取得部205では、サービス選択部203で選択されたサービスを含む、インテントの処理を同時に或いは順番に実行できるサービスのグループ情報を取得する。このグループ情報は、グループ取得部205が作成しても良いし、後述するグループ情報格納部911から抽出しても良い。グループ取得部205がグループ情報を作成する場合には、サービス情報格納部204やサービス履歴格納部913に格納された情報を利用しても良い。グループ取得部205はさらに、複数のグループが存在する場合であれば、グループの優先度を決めても良い。なおインテントによっては、グループを取得できない場合もある。
【００５３】
グループ表示部906は出力部104に、グループ取得部205が取得したグループの一覧表示を行う。この一覧における表示順としては、グループ取得部205で決定された優先度に従っても良い。さらに、グループの一覧の他に、サービス選択部203で選択されたサービス単体を表示しても良い。
【００５４】
グループ選択部907は、グループ表示部906が表示したサービス一覧の中から、1つのグループを選択する。グループ表示部906がサービス単体を表示している場合であれば、該サービスを選択しても良い。なおグループの選択は、例えばユーザが入力部105を用いて行うとする。
【００５５】
サービス呼出部208は、グループ取得部205あるいはグループ選択部907で取得されたグループを構成するサービスまたはサービス単体を、サービス群212から呼び出す。実際に、サービス群212から該当するサービス単体または複数のサービスに対し、検出部201が発行したインテントや、結果取得部209が発行するインテントを渡して処理を行わせる。グループの呼び出し方法としては、グループを構成するサービスの処理完了を待たずに、複数のサービスを同時に呼び出す場合と、グループを構成するサービスの処理完了を待って、複数のサービスを順次呼び出す場合がある。
【００５６】
グループ情報格納部911は、グループ情報、すなわちサービス情報格納部204に格納されるサービスをある基準に従ってグループ分けした情報を保持しているデータベース(グループ情報保持手段)である。このグループ分けは、サービスの登録時やサービスの呼び出し完了時等の、サービスの情報が更新された際に行っても良い。なお、1つのサービスが複数のグループに含まれていても良い。またグループ分けの際に、サービス履歴格納部913に格納された履歴情報を利用しても良い。
【００５７】
サービス履歴格納部913は、サービス群212からサービスを呼び出して利用した際のアクセス日時、累積アクセス回数、応答時間、操作回数、呼び出し順、等のサービス利用履歴を格納しているデータベース(サービス履歴保持手段)である。
【００５８】
●サービス呼び出し処理
以下、第2実施形態における複数サービスの呼び出し処理について、図10のフローチャートを用いて詳細に説明する。図10において、上述した第1実施形態で示した図3と同様の処理には同一ステップ番号を付し、説明を省略する。
【００５９】
サービスの呼び出し処理を開始する際には、予めサービス情報格納部204に、例えば図4に示すようなサービスが登録されている必要がある。サービスを登録する方法としては第1実施形態で説明した通りであるが、さらにサービスを登録したタイミングで該サービスをグループ分けして、そのグループ情報をグループ情報格納部911に登録しても良い。
【００６０】
図10のS301でも第1実施形態と同様に、サービス表示部202がサービス情報格納部204から、S311で発行されたインテントを処理可能とするサービスを抽出し、一覧としてユーザに提示する。ここで、インテントのactionが"edit"、typeが"画像"であれば、図4において第8行目から第12行目に記載された5つのサービス(「モノクロ加工サービス」〜「文字入れ加工サービス」)が提示される。提示方法としては、例えば図5(b)に示すようなポップアップウィンドウを表示することが考えられる。
【００６１】
次にサービス選択部203は、サービス表示部202が表示したサービス一覧の中から、連携対象となる1つの対象サービスを選択する(S302)。次にグループ取得部205は、S302で選択された対象サービスが属するグループの情報を取得する(S303)。このグループ情報の取得処理の詳細については後述する。
【００６２】
第2実施形態ではその後、対象サービスが属するグループが存在するか否かを判定する(S1012)。存在する場合にはS1013に進むが、存在しない場合、つまり、S303でグループを取得できなかった場合には、対象サービスを呼び出し対象に設定してS304に進む。
【００６３】
S1013では、優先して実行すべきグループ(優先実行グループ)が存在するか否かを判定する。優先実行グループが存在すれば、そのグループを呼び出し対象に設定してS304に進むが、優先実行グループが存在しない場合にはS1014に進む。
【００６４】
S1014ではグループ表示部906が、S303で取得したグループの一覧をユーザに提示する。このとき、対象サービスも表示することで、対象サービス単体を選択可能としても良い。グループ一覧の提示方法としては、例えば図11(a)のように、対象サービス名やグループを構成するサービス名を示して選択できるようにしたポップアップウィンドウを表示することが考えられる。また、図11(b)のようにサービスがグループに分類された理由を示すことで、ユーザに選択の判断基準を与えても良い。また、順番に実行されるグループであれば、図11(c)のように、グループごとにサービスの実行順が分かるように表示しても良い。さらに、図11(d)のようにサービスの実行順により得られる効果、すなわちグループごとの特徴を示すことで、ユーザに選択の判断基準を与えても良い。
【００６５】
次にグループ選択部907は、S1014で表示されたグループ一覧の中から、ユーザ指示に応じて1つのグループまたはサービスを選択する(S1015)。そして、該選択されたグループまたはサービスを呼び出し対象として設定する。
【００６６】
そしてS304においてサービス呼出部208が、上記処理において呼び出し対象として設定されたグループに属するサービス、またはサービス単対を呼び出す。ここで呼び出されるのは、サービス情報格納部204からサービスが提供されている位置(URI等)を参照したサービス群212に含まれるサービス実体である。この際、呼び出すサービスに対してインテントを渡す。
【００６７】
そして、S304,S305で全ての呼び出し対象サービスを呼び出した後、サービス呼出部208は、サービス履歴格納部913に対してサービス呼び出し情報を記録する(S1016)。この情報は、後述するS303において、グループ取得部205がサービスのグループ情報を取得する際に利用される。具体的には、あるサービスが最後に呼ばれた日時や、累積呼び出し回数等の情報を記録しておく。また、あるサービスが呼ばれる前に呼ばれたサービス、すなわちあるサービスが呼ばれる直前に実行が終了したサービスの情報を記録しておいても良い。
【００６８】
●グループ情報取得処理(S303)
以下、第2実施系形態のS303におけるグループ情報取得処理について、図6(b)のフローチャートを用いて詳細に説明する。第2実施形態においても、インテントの種類によってグループの取得方法を変更することを特徴とする。この例ではactionが"view"である場合と"edit"である場合について示す。すなわち、複数の画面で同時にview(閲覧)すること、および複数のサービスを連結してedit(編集)することを目的とする例を示す。
【００６９】
まず、発行されたインテントのactionが"view"であるか否かを判定する(S601)。"view"である場合には、S605,S606でグループ情報を取得し、処理を終了する。S605とS606におけるグループ情報取得処理の詳細については後述する。なお、S605とS606の処理順は逆であっても良いし、処理を効率化するためにS605とS606を同時に実行しても良い。
【００７０】
一方、actionが"view"でない場合は、S603でactionが"edit"であるか否かを判定する(S603)。"edit"である場合にはS604でグループ情報を取得し、処理を終了する。S604におけるグループ情報取得処理の詳細については後述する。
【００７１】
また、actionが"view"でも"edit"でもない場合は、そのままS303の処理を終了する。この場合、グループを取得できなかったことになる。
【００７２】
なお、S603の後にさらに別の定義であるインテントの判定処理を加えても良い。この場合、全ての判定とそれに伴うグループ情報取得処理を終えてもグループ情報を取得できなかった場合に、グループが取得できなかったことになる。このように第2実施形態では、上述した第1実施形態に対してさらに、インテントの種類によるグループ情報の呼び出し制御が多様化されている。
【００７３】
●グループ情報取得処理詳細(S605;位置情報に基づく)
上記S605におけるグループ情報の取得処理は、第1実施形態で示したS602と同様に、サービスの位置情報に基づいて行われる。このグループ情報の取得処理について、図7(b)のフローチャートを用いて説明するが、第1実施形態でS602の詳細を示す図7(a)と重複する処理については説明を省略する。
【００７４】
図7(b)では、S703で登録サービスと対象サービスが近い位置関係にあると判定された場合に、サービスの処理に要する時間(サービス処理時間)が閾値以下であるか否かを判定する(S708)。サービス処理時間は、サービス履歴格納部913に格納された、当該サービスの応答時間情報を参照すれば良い。S708でサービス処理時間が閾値よりも大きければ、対象サービスのグループ情報を取得することなく、そのままS707に進む。すなわちS708の判定により、処理時間がかかるサービスについてはグルーピング対象から除外される。
一方、S708でサービス処理時間が閾値以下であればS704に進む。S704では図7(a)と同様に、対象サービスとその近隣にあるサービスによって構成された近辺グループが既に存在しているか否かを判定する。そして以降は第1実施形態と同様に、同時実行属性を有する近辺グル―プの作成、該グループへの登録サービスの追加処理を行う。
【００７５】
すなわちS605では、あるサービスがグループに追加される1つの条件(図7(b)の例では位置関係)を満たしていても、さらに別の条件(同、サービス処理時間)を満たさない場合にはグループへの追加を行わない。もちろん、追加される別の条件としてはこの例に限定されず、ユーザの要求に応じて決定することができる。
【００７６】
このように図7(b)では、サービスの位置情報に応じてグループへの登録を行う際に、さらに除外条件(S708)を追加することで、登録条件をより厳しくする例を示した。
【００７７】
●グループ情報取得処理詳細(S606;ソーシャル情報に基づく)
上記S606におけるグループ情報の取得処理は、サービスのソーシャル情報に基づいて行われる。このグループ情報の取得処理について、図12のフローチャートを用いて説明する。
【００７８】
グループ取得部205はまず、対象サービスのソーシャル情報を取得する(S1201)。ここでソーシャル情報とは、人やサービス同士の繋がりを示す情報であり、対象サービスに問い合わせて取得しても良いし、サービス情報格納部204から取得しても良い。また、別途ソーシャル情報を持つサーバに問い合わせても良い。
【００７９】
次に、対象サービス以外の、サービス情報格納部204に登録されたサービス(以下、登録サービス)のソーシャル情報を取得する(S1202)。
【００８０】
次に、登録サービスと対象サービスのソーシャル情報を比較することで、これらサービスが互いに関係するものであるか否かを判定する(S1203)。両者に関係があると判定された場合はS1204に進むが、そうでなければS1207に進む。
【００８１】
S1204では、対象サービスと関係のあるサービスから構成されるグループ(ソーシャルグループ)が既に存在しているか否かを判定し、該グループが存在する場合にはS1206に進むが、存在しない場合にはS1205に進む。
【００８２】
S1205では、対象サービスのソーシャルグループを作成する。このグループはサービスが同時実行される同時実行属性を有するグループとして作成され、もちろん対象サービスを含む。ここで作成されるソーシャルグループは、上記S705で作成された近辺グループとはもちろん異なる。
【００８３】
そしてS1206では、S1202で選択された登録サービスを、対象サービスのソーシャルグループに加える。
【００８４】
そして最後に、未処理の登録サービスがあるか否かを判定し(S1207)、存在する場合はS1202に戻って次のサービスについて上記と同様の処理を行い、未処理の登録サービスが存在しない場合にはS606の処理を終える。この処理終了時に、S1205で新たなソーシャルグループが作成されていれば該グループの情報が取得されたとし、S1204でソーシャルグループが既に存在していたと判定されていれば該グループの情報が取得されたとする。
【００８５】
このように図12では、サービスのソーシャル情報に応じたグループ情報を取得可能とする例を示した。
【００８６】
●グループ情報取得処理詳細(S604;呼び出し履歴に基づく)
上記S604におけるグループ情報の取得処理は、サービスの呼び出し情報履歴に基づいて行われる。このグループ情報の取得処理について、図13のフローチャートを用いて説明する。
【００８７】
グループ取得部205はまず、対象サービスを先頭として過去に呼び出されたサービス群を、サービス履歴格納部913に保持された情報から取得する(S1301)。例えば、対象サービスが「シャープネス加工サービス」であり、サービス履歴格納部913に、以前、「セピア加工サービス」が、「シャープネス加工サービス」の直後に呼び出されたという履歴情報があるとする。ここで「シャープネス加工サービス」の直後に呼び出された、とはすなわち、「シャープネス加工サービス」の終了から所定時間内に呼び出された、ということを示す。この場合、まず「シャープネス加工サービス」、次に「セピア加工サービス」というサービス群が取得される。さらに、サービス履歴格納部913に「セピア加工サービス」の直後に「文字入れ加工サービス」が呼び出された情報があれば、「シャープネス加工サービス」の次に「セピア加工サービス」、その次に「文字入れ加工サービス」というサービス群が取得される。
【００８８】
次に、S1301でサービス群が取得できたか否か、すなわち履歴情報に応じたサービス群が存在したか否かを判定し(S1302)、存在した場合にはS1303に進む。
【００８９】
S1303では、S1301で取得されたサービス群でグループを作成する。このグループはサービスが順次実行される順次実行属性を有するグループとして作成され、もちろん対象サービスを含む。そして、S1301に戻り、別のサービス群の取得を試みる。例えば、対象サービスが「シャープネス加工サービス」であり、1回目のS1301で、まず「シャープネス加工サービス」、次に「セピア加工サービス」、さらに次に「文字入れ加工サービス」というサービス群を取得していたとする。そしてこの時、サービス履歴格納部913には、「シャープネス加工サービス」の次に呼び出されたサービスの情報として、「セピア加工サービス」だけでなく、「モノクロ加工サービス」も保持されているとする。この場合、2回目のS1301では前記サービス群とは別のサービス群として、まず「シャープネス加工サービス」、次に「モノクロ加工サービス」というサービス群が取得される。
【００９０】
そして、S1302でサービス群が存在しないと判定された時点で、S604の処理を終える。この時、S1303でグループの作成が行われていれば、該作成されたグループの情報が取得されたとする。
【００９１】
このように図13では、サービスの呼び出し履歴情報に応じたグループ情報を取得可能とする例を示した。
【００９２】
●サービス実行結果処理
第2実施形態のサービス連携装置900においても、上述した図10のS304でサービスを呼び出すと、該呼び出されたサービスは、自身の処理を実行した後にその結果を返してくる。したがって、サービス連携装置900では結果取得部209で該サービス実行結果を取得する際に、複数のサービスについての実行結果が返されることを想定する。以下、第2実施形態におけるサービス実行結果の受け取り処理について、図14のフローチャートを用いて説明する。なお、上述した第1実施形態で示した図8と同様の処理については説明を省略する。
【００９３】
第2実施形態では、S801で呼び出したサービスの実行結果を取得すると、結果取得部209が、サービス履歴格納部913にサービス呼び出し情報を記録する(S1414)。上記図10のS1016ではサービス履歴格納部913に対し、サービス呼び出し時の情報を記録するが、S1414では、サービスの実行結果が返ってきた時点で分かる情報を記録する。例えば、呼び出されたサービスの処理に要した時間(応答時間)や、サービスが返す値の型、サービスでマウスやキーボードを利用した回数、等の情報が履歴情報として記録される。ここで記録された履歴情報を、S303でグループ情報を取得する際に利用しても良い。
【００９４】
このように第2実施形態でも、複数のサービスを呼び出した際に、その履歴を保持しつつ、実行結果を配列にまとめて一度に受け取る。
【００９５】
以上説明したように第2実施形態によれば、サービス連携装置における複数のサービスの呼び出しを、より柔軟に、ユーザの所望するように制御することが可能となる。
【００９６】
＜その他の実施形態＞
本発明は、上述した第1および第2実施形態の例に限定されず、各種の変形例も有効である。例えば、グループ取得部205が複数のグループを取得した際に、それぞれのグループに優先度を付けても良い。ここで、ある画像を"view"のactionで閲覧する場合を考える。このとき、「Bさんのカメラ画面」が選択されたサービスであり、仮に「Cさんのカメラ画面」と「Dさんのカメラ画面」が近い位置情報を持っている場合、「Bさんのカメラ画面」と「Cさんのカメラ画面」と「Dさんのカメラ画面」のグループが取得できる。さらに仮に、閲覧対象の画像にBさんとCさんとDさんが写っていると判別できた場合、このグループを優先実行グループとして設定することで、S1013の判定で真判定がなされる。また、優先実行グループとしての設定を行わなくとも、グループに優先度番号を割り振っておくことで、グループ表示部906がグループを表示する際に、優先度の高い順にソートした表示を行っても良い。優先度は、例えばソーシャル情報からより親しい関係のあるグループであると判定した場合や、履歴情報から最近呼び出したグループであると判定した場合等に高く設定することが考えられる。
【００９７】
また、第2実施形態で図6(b)のS601,S603のように、actionの種類によってグループのサービスが同時に呼び出されるか、順番に呼び出されるかを判別する例を示した。本発明の呼び出し設定はこの例に限らず、呼び出すサービスが実行されるデバイスによって、同時呼び出し/順次呼び出しのいずれを選択すべきかを判断しても良い。例えば、呼び出すサービスがWebサービスであり、呼び出し元サービスが実行されるのと同じ環境で実行される場合には、これらを同時に実行することは難しいため、順番に実行することになる。一方、呼び出すサービスがデバイスが提供する機能であり、呼び出し元サービスとは異なるデバイス側の環境で実行される場合には、これらを同時に呼び出して実行することが可能である。
【００９８】
また、上記第1および第2実施形態においてS602、S604、S605、S606に示したグループ情報取得方法はあくまでも一例に過ぎず、他の方法によってグループ情報を取得しても良い。
【００９９】
また、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)等としての実施態様をとることが可能である。例えば、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコード(コンピュータプログラム)を記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【図１】
2014174929.tif 000003
【図２】
2014174929.tif 000004
【図３】
2014174929.tif 000005
【図４】
2014174929.tif 000006
【図５】
2014174929.tif 000007
【図６】
2014174929.tif 000008
【図７】
2014174929.tif 000009
【図８】
2014174929.tif 000010
【図９】
2014174929.tif 000011
【図１０】
2014174929.tif 000012
【図１１】
2014174929.tif 000013
【図１２】
2014174929.tif 000014
【図１３】
2014174929.tif 000015
【図１４】
2014174929.tif 000016