(57)【要約】  提供するサービスのレスポンス時間の短縮、処理時間やリソース消費の節約を行うことができるサービス制御装置、サービス制御方法及びプログラムを提供する。サービス制御装置は、外部要求又は機能要素の実行結果を受け取り、機能要素の組合せの計画を保持する制御リスト１０１を参照し、次に実行する機能要素を指示する制御部１０２と、制御部１０２から指示された機能要素を実行する実行部１０３と、機能要素の実行状況を監視し記録する監視記録部１０５と、記録された機能要素の実行状況に基づいて機能要素の活性度を計算し、活性度に基づいて制御リスト１０１を更新する活性度計算部１０６とを有している。
2016199432.tif 000002
【特許請求の範囲】
【請求項１】
外部要求又は機能要素の実行結果を受け取り、機能要素の組合せの計画を保持する制御リストを参照し、次に実行する機能要素を指示する制御手段と、
前記制御手段から指示された機能要素を実行する実行手段と、
機能要素の実行状況を監視し記録する監視記録手段と、
記録された前記機能要素の実行状況に基づいて機能要素の活性度を計算し、前記活性度に基づいて前記制御リストを更新する活性度計算手段と
を有するサービス制御装置。
【請求項２】
前記活性度計算手段は、前記記録された前記機能要素の実行状況を用いて、特定の機能要素の実行頻度を前記活性度として計算し、前記活性度と機能要素の実行時間とを用いて、前記機能要素の組合せの計画の平均実行時間を計算し、前記制御リストの更新により前記平均実行時間が短くなる場合に前記制御リストを更新する、請求項１に記載のサービス制御装置。
【請求項３】
次に実行する機能要素の指示を別ノードへ送信する通信手段をさらに有し、
前記活性度計算手段は、前記活性度と前記通信手段による通信時間を含めた前記機能要素の実行時間とを用いて、前記機能要素の組合せの計画の平均実行時間を計算する、請求項２に記載のサービス制御装置。
【請求項４】
前記活性度計算手段は、前記活性度と前記通信手段による通信にかかる消費電力と機能要素の実行にかかる消費電力とを用いて、前記機能要素の組合せの計画の平均消費電力を計算し、前記制御リストの更新により、前記平均消費電力が小さくなること、及び前記平均実行時間が短くなることの少なくとも一方を満たす場合に、前記制御リストを更新する、請求項３に記載のサービス制御装置。
【請求項５】
入力変換手段をさらに有し、
前記入力変換手段は、前記外部要求又は前記機能要素の実行結果の入力から始まる２以上の機能要素の組合せのうち、始めの入力と前記２以上の機能要素の組合せの最後の機能要素への入力の関係を学習し、前記始めの入力が前記最後の機能要素に直接入力される場合に、前記関係を用いて前記始めの入力を対応する前記最後の機能要素への入力に変換する、請求項１乃至４のいずれかに記載のサービス制御装置。
【請求項６】
外部要求又は機能要素の実行結果に対し、機能要素の組合せの計画を保持する制御リストを参照して、次に実行する機能要素を決定し、
決定した前記次に実行する機能要素を実行し、
機能要素の実行状況を監視して記録し、
記録された前記機能要素の実行状況に基づいて機能要素の活性度を計算し、
前記活性度に基づいて前記制御リストを更新する
サービス制御方法。
【請求項７】
前記記録された前記機能要素の実行状況を用いて、特定の機能要素の実行頻度を前記活性度として計算し、
前記活性度と機能要素の実行時間とを用いて、前記機能要素の組合せの計画の平均実行時間を計算し、
前記制御リストの更新により前記平均実行時間が短くなる場合に前記制御リストを更新する、請求項６に記載のサービス制御方法。
【請求項８】
次に実行する機能要素の指示を別ノードへ送信し、
前記活性度と前記送信による通信時間を含めた前記機能要素の実行時間とを用いて、前記機能要素の組合せの計画の平均実行時間を計算する、請求項７に記載のサービス制御方法。
【請求項９】
前記外部要求又は前記機能要素の実行結果の入力から始まる２以上の機能要素の組合せのうち、始めの入力と前記２以上の機能要素の組合せの最後の機能要素への入力の関係を学習し、
前記始めの入力が前記最後の機能要素に直接入力される場合に、前記関係を用いて前記始めの入力を対応する前記最後の機能要素への入力に変換する、請求項６乃至８のいずれかに記載のサービス制御方法。
【請求項１０】
外部要求又は機能要素の実行結果に対し、機能要素の組合せの計画を保持する制御リストを参照して、次に実行する機能要素を決定し、
決定した前記次に実行する機能要素を実行し、
機能要素の実行状況を監視して記録し、
記録された前記機能要素の実行状況に基づいて機能要素の活性度を計算し、
前記活性度に基づいて前記制御リストを更新する
ことをコンピュータに実行させるプログラムを格納する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス制御装置、サービス制御方法及び記録媒体に関する。
【背景技術】
【０００２】
実世界の情報を集め埋もれた価値を見出すことや、環境や個人に応じたサービスを提供するなどの、ビッグデータ活用やＩｏＴ（Internet of Things）の取り組みが注目を集めている。実際の環境から広く情報を集めるためには、センシングデバイスを備えたエッジノードの機能が重要になる。このようなエッジノードでは、単一の情報収集機能だけではなく、複数の情報収集機能を持つことや、エッジノード側で高度な情報処理を行う必要がある。【０００３】
しかし、一般的にエッジノードではリソースに制限があることが多い。エッジノードが備える電池容量や計算能力、データ転送能力は、クラウドに比べ低く、従来クラウド側で行っていた情報処理をそのままエッジノードで行うことは難しい。このため、処理の一部を省略することや、別ノードにオフロードすることにより、リソース制限のあるエッジノードで高度情報処理を行う工夫がなされている。例えば、サービスを複数のサービス機能要素の組合せで実現し、その機能要素の配置や組合せを選択することなどである。特許文献１には、複数のノードに処理機能を配置してサービスを行う手法が開示されている。また、特許文献２には、処理機能の一部を別ノードにオフロードする手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１７１９２１号公報
【特許文献２】特表２００２−５１７８５５号公報
【特許文献３】特開２０１０−２６８３４６号公報
【特許文献４】特開平０７−２９５９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
フィールドに展開された複数のエッジノードでは、それぞれに機能要素の最適な組み合わせが異なることが考えられる。しかしながら、特許文献１及び２においては、各ノードの環境に適した機能要素の必要性度合いを考慮していなかった。このため、各ノードの環境によっては、提供するサービスのレスポンス時間が長く、処理時間やリソース消費が大きいという問題点があった。【０００６】
本発明は、このような問題点を解決するためになされたものであり、提供するサービスのレスポンス時間の短縮、処理時間やリソース消費の節約を行うことができるサービス制御装置、サービス制御方法及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明にかかるサービス制御装置は、外部要求又は機能要素の実行結果を受け取り、機能要素の組合せの計画を保持する制御リストを参照し、次に実行する機能要素を指示する制御手段と、前記制御手段から指示された機能要素を実行する実行手段と、機能要素の実行状況を監視し記録する監視記録手段と、記録された前記機能要素の実行状況に基づいて機能要素の活性度を計算し、前記活性度に基づいて前記制御リストを更新する活性度計算手段とを有するものである。【０００８】
他方、本発明にかかるサービス制御方法は、外部要求又は機能要素の実行結果に対し、機能要素の組合せの計画を保持する制御リストを参照して、次に実行する機能要素を決定し、決定した前記次に実行する機能要素を実行し、機能要素の実行状況を監視して記録し、記録された前記機能要素の実行状況に基づいて機能要素の活性度を計算し、前記活性度に基づいて前記制御リストを更新するものである。
【発明の効果】
【０００９】
本発明により、提供するサービスのレスポンス時間の短縮、処理時間やリソース消費の節約を行うことができるサービス制御装置、サービス制御方法及び記録媒体を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１にかかるサービス制御装置の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる制御リストが保持する機能要素の組合せの計画の例を示す図である。
【図３】本発明の実施の形態１にかかる計画１及び２の平均実行時間の比較の例を示すグラフである。
【図４】本発明の実施の形態１にかかるサービス制御装置の処理を示すフローチャートである。
【図５】本発明の実施の形態２にかかるサービス制御装置の構成を示すブロック図である。
【図６】本発明の実施の形態２にかかる制御リストが保持する機能要素の組合せの計画の例を示す図である。
【図７】本発明の実施の形態２にかかるサービス制御装置の処理を示すフローチャートである。
【図８】一般的なコンピュータのハードウェア構成例を示すブロック図である。
【図９】本発明の実施の形態にかかる制御リストが保持する機能要素の組合せの計画の例を示す図である。
【図１０】本発明の実施の形態にかかる制御リストが保持する機能要素の組合せの計画の例を示す図である。
【発明を実施するための形態】
【００１１】
実施の形態１
まず、図１を用いて本発明の実施の形態１にかかるサービス制御装置１００の構成について説明する。サービス制御装置１００は、例えば、エッジノード内にあるセンシングデバイスを備えた装置である。サービス制御装置１００は、制御リスト１０１、制御部１０２、実行部１０３、機能要素群１０４、監視記録部１０５、活性度計算部１０６を備えている。
【００１２】
制御リスト１０１は、機能要素の組合せの計画を保持している。制御リスト１０１が保持する機能要素の組合せの計画については後に詳述する。
【００１３】
制御部１０２は、外部要求や実行部１０３による機能要素の実行結果を受け取る。ここで、外部要求とは、外部からの機能要素の実行要求、又は外部からの複数の機能要素からなるサービスの実行要求である。また、外部要求は、サービス制御装置１００を有するノード内で発生する外部要求、及び別ノードで発生する外部要求を含む。また、受け取った外部要求や実行部１０３による機能要素の実行結果を、制御部１０２への入力信号と呼ぶ。また、制御部１０２は、制御リスト１０１を参照し、制御部１０２への入力信号に対して次に実行する機能要素を決定する。制御部１０２が次に実行する機能要素を決定する手法については後に詳述する。さらに、制御部１０２は、次に実行する機能要素の指示を実行部１０３へ供給する。
【００１４】
実行部１０３は、次に実行する機能要素の指示を制御部１０２から受け取る。機能要素群１０４は、複数の機能要素を保持している。実行部１０３は、次に実行する機能要素の指示に基づいて、機能要素群１０４から次に実行する機能要素を選択する。また、実行部１０３は、選択した機能要素を実行する。さらに、実行部１０３は、機能要素の実行結果を制御部１０２へ出力する。
【００１５】
監視記録部１０５は、実行部１０３による機能要素の実行状況を監視して記録する。例えば、機能要素の実行状況は、機能要素の実行結果、機能要素の実行時間、特定の機能要素を実行したか否かの情報などである。なお、機能要素の実行結果と、特定の機能要素を実行したか否かの情報は、機能要素の活性度として、例えば特定の機能要素の実行頻度を計算するために必要な情報であり、少なくともいずれか一方を監視して記録すればよい。
また、監視記録部１０５は、記録した機能要素の実行状況を活性度計算部１０６へ出力する。
【００１６】
特定の機能要素を実行したか否かの情報を監視して記録することについて説明する。監視記録部１０５は、制御部１０２が外部要求又は機能要素の実行結果を受け取ることにより始まる複数の機能要素の組合せのうち、特定の機能要素を実行したか否かを監視する。
また、監視記録部１０５は、特定の機能要素を実行したか否かを外部要求に対応付けて記録する。また、監視記録部１０５は、特定の機能要素を実行したか否かを、特定の機能要素より前に実行した機能要素に対応づけて記録してもよい。いずれにしても、１度の外部要求に対して、特定の機能要素を実行したのか、実行しなかったのかが判別可能な情報を、特定の機能要素を実行したか否かの情報として記録する。なお、監視記録部１０５は、制御部１０２が外部要求を受け取ったこと、又は特定の機能要素より前に実行される機能要素が実行されたことについて、制御部１０２と実行部１０３のどちらを監視することにより検知してもよい。
【００１７】
活性度計算部１０６は、機能要素の実行状況を監視記録部１０５から受け取る。また、活性度計算部１０６は、機能要素の実行状況に基づいて、機能要素の活性度を計算する。
活性度計算部１０６は、機能要素の活性度として、例えば、特定の機能要素の実行頻度を算出する。
【００１８】
ここで、特定の機能要素を実行したか否かの情報に基づいて、特定の機能要素の実行頻度を算出することについて説明する。監視記録部１０５は、１度の外部要求に対して、特定の機能要素を実行したのか、実行しなかったのかが判別可能な情報を、特定の機能要素を実行したか否かの情報として記録している。活性度計算部１０６は、この情報を受け取り、各外部要求に対して、特定の機能要素を実行したのか、実行しなかったのかを判別する。そして、活性度計算部１０６は、外部要求の回数と特定の機能要素を実行した回数とから特定の機能要素の実行頻度を算出する。なお、外部要求の回数と特定の機能要素を実行した回数とを監視記録部１０５が記録し、活性度計算部１０６は、この情報を受け取り、特定の機能要素の実行頻度を算出するようにしてもよい。
【００１９】
また、活性度計算部１０６は、算出した機能要素の活性度に基づいて、制御リスト１０１を更新するか否かを決定する。制御リスト１０１を更新するか否かの決定は、例えば、機能要素の活性度が所定の閾値を超えるか否かの判定により行うようにしてもよい。また、例えば、機能要素の活性度と機能要素の実行時間を用いて、機能要素の組合せの計画の平均実行時間を計算し、制御リスト１０１の更新により平均実行時間が短くなるか否かを判定することにより行ってもよい。
【００２０】
さらに、活性度計算部１０６は、制御リスト１０１を更新すると決定した場合、制御リスト１０１の更新を実行する。つまり、制御リスト１０１が保持する機能要素の組合せの計画を変更する。活性度計算部１０６の処理については後に詳述する。
【００２１】
図１の実施の形態１にかかるサービス制御装置１００では、機能要素の実行状況に基づいて、機能要素の活性度を計算し、活性度に基づいて制御リスト１０１を更新することにより、サービス制御装置１００を有するノードが配置された環境に適した機能要素の組合せを実現することができ、提供するサービスのレスポンス時間の短縮、処理時間やリソース消費の節約を行うことができる。
【００２２】
続いて、図２を用いて、本発明の実施の形態１にかかる制御リスト１０１が保持する機能要素の組合せの計画について説明する。制御リスト１０１は、外部要求や機能要素の実行結果に対し、どの機能要素を実行するかを示す機能要素の組合せの計画を保持する。例えば、制御リスト１０１は、機能要素a,b,cを図２の実線の矢印で示すように直列に配置した計画を保持する。この計画を、計画１と呼ぶ。計画１では、機能要素aが実行されると次に機能要素bが実行されることが決められている。また、機能要素bからは、Yes/Noの判断が出力され、Yesの場合は次に機能要素cが実行され、Noの場合は機能要素cが実行されずに終了することが決められている。
【００２３】
図２の計画１を実行する場合の動作について説明する。制御部１０２は、外部要求として、外部からの機能要素aの実行要求、又は外部からの機能要素a,b,cからなるサービスの実行要求を受け取った場合、制御リスト１０１を参照し、次に実行する機能要素を機能要素aに決定する。また、制御部１０２は、機能要素aの実行結果を受け取った場合、制御リスト１０１を参照し、次に実行する機能要素を機能要素bに決定する。また、制御部１０２は、機能要素bからYesの結果を受け取った場合、制御リスト１０１を参照し、次に実行する機能要素を機能要素cに決定する。
【００２４】
活性度計算部１０６は、制御リスト１０１を更新することができる。例えば、図２の点線の矢印で示すように機能要素bを実行せずにスキップし、機能要素aの次に機能要素cを実行する計画に変更することができる。この変更後の計画を、計画２と呼ぶ。
【００２５】
図２の計画２を実行する場合の動作について説明する。制御部１０２は、外部要求として、外部からの機能要素aの実行要求、又は外部からの機能要素a,b,cからなるサービスの実行要求を受け取った場合、制御リスト１０１を参照し、次に実行する機能要素を機能要素aに決定する。また、制御部１０２は、機能要素aの実行結果を受け取った場合、制御リスト１０１を参照し、次に実行する機能要素を機能要素cに決定する。
【００２６】
ここで、計画１から計画２へ変更するか否かの判定手法について説明する。活性度計算部１０６は、計画の変更を、機能要素cの活性度に基づいて行う。活性度計算部１０６は、機能要素cの活性度として、例えば機能要素cの実行頻度を計算する。そして、活性度計算部１０６は、機能要素cの実行頻度に基づいて、計画１から計画２へ変更するか否かの判定を行う。具体的には、活性度計算部１０６は、機能要素cの実行頻度と、機能要素b及びcの実行時間とを用いて、計画１の平均実行時間と、xの確率で計画２を実行する平均実行時間を計算する。ここで、xの確率は、機能要素cの実行頻度とする。また、機能要素bがYesを出力すると次に機能要素cが実行されるため、xの確率は、機能要素bがYesを出力する確率とも言える。また、xの確率で計画２を実行する平均実行時間は、1-xの確率で計画１を実行し、xの確率で計画２を実行する場合の平均実行時間とする。そして、xの確率で計画２を実行する平均実行時間が、計画１の平均実行時間より短くなる場合に、計画１から計画２へ変更する。
【００２７】
ここで、xの確率として機能要素bがYesを出力する確率を用いる場合の計算手法を説明する。監視記録部１０５は、実行部１０３による機能要素bの実行結果として、機能要素bの出力がYesであったか、Noであったかを監視する。また、監視記録部１０５は、１度の外部要求に対して、機能要素bの出力がYesであったか、Noであったかが判別可能な情報を記録する。活性度計算部１０６は、この情報を受け取り、各外部要求に対して、機能要素bの出力がYesであったか、Noであったかを判別する。そして、活性度計算部１０６は、外部要求の回数と機能要素bの出力がYesであった回数とから機能要素bがYesを出力する確率を算出する。なお、外部要求の回数と機能要素bの出力がYesであった回数とを監視記録部１０５が記録し、活性度計算部１０６は、この情報を受け取り、機能要素bがYesを出力する確率を算出するようにしてもよい。
【００２８】
続いて、図３を用いて、計画の平均実行時間について説明する。図３の実線は、xと計画１の平均実行時間との関係を示す。また、図３の点線は、xとxの確率で計画２を実行する平均実行時間との関係を示す。ここで、説明のため、機能要素b及びcの実行時間をそれぞれT_b=10s、T_c=20sとする。また、機能要素bは当該ノードが配置されている環境に応じYes/Noを出力することとする。
【００２９】
xが0に近い、つまり機能要素bがNoを出力する確率が高い場合は、計画１の平均実行時間はT_bに近いが、Yesの確率が高くなる(xが１に近づく)と計画１の平均実行時間は増加する。図３に示す例の場合、xが1/2を超えると、xの確率で計画２を実行する平均実行時間が、計画１の平均実行時間より短くなる。計画１の平均実行時間をT1、xの確率で計画２を実行する平均実行時間をT2とすると、T1とT2は以下の式で算出することができる。
【００３０】
T1=(1-x)*T_b+x*(T_b+ T_c)=T_c*x+T_b
T2=(1-x)(T_c*x+T_b)+x*T_c=-T_c*x^2+(-T_b+2T_c)*x+T_b
【００３１】
上記の式において、T1>T2が満たされるのは、
x>1-T_b/T_c
の場合である。つまり、xが1-T_b/T_cという閾値を超えた場合に、xの確率で計画２を実行する平均実行時間が、計画１の平均実行時間より短くなる。よって、本例の場合、活性度計算部１０６は、xが1-T_b/T_cという閾値を超えた場合に、計画１から計画２へ変更する。これにより、平均実行時間を削減することができる。
【００３２】
続いて、図４のフローチャートを用いて、本発明の実施の形態１にかかるサービス制御装置の処理について説明する。まず、外部要求として、外部からの機能要素の実行要求、又は外部からの複数の機能要素からなるサービスの実行要求が発生する（Ｓ１０１）。外部要求は、サービス制御装置１００の外部からの要求であればどのような要求でもよい。
例えば、外部要求は、サービス制御装置１００を有するノード内で発生する外部要求であってもよいし、別ノードで発生する外部要求であってもよい。また、外部要求として、サービス制御装置１００を有するノードを起動した場合の初期設定による機能要素が要求されてもよい。
【００３３】
次に、制御部１０２は、外部要求又は機能要素の実行結果を受け取る（Ｓ１０２）。Ｓ１０２では、Ｓ１０１に続いて行われる場合は、外部要求を受け取る。また、Ｓ１０２では、機能要素の実行後に行われる場合は、機能要素の実行結果を受け取る。
【００３４】
次に、制御部１０２は、制御リスト１０１を参照し、次の機能要素を実行するか否かを判定する（Ｓ１０３）。Ｓ１０３により、次の機能要素を実行しないと判定された場合は、外部要求により始まる複数の機能要素からなるサービスの実行を終了する（Ｓ１０４）。ここで、次の機能要素を実行しないと判定される例としては、図２における機能要素cの実行結果を受け取った場合や、機能要素bの実行結果がNoであった場合などである。
【００３５】
Ｓ１０３により、次の機能要素を実行すると判定された場合、実行部１０３は、次の機能要素を実行する（Ｓ１０５）。実行部１０３による機能要素の実行は、次に実行する機能要素の指示を制御部１０２から受け取ることにより行われる。また、次に実行する機能要素の指示は、制御部１０２が制御リスト１０１を参照して次に実行する機能要素を決定して行う。さらに、実行部１０３は、機能要素の実行結果を制御部１０２へ出力する。
【００３６】
次に、監視記録部１０５は、実行部１０３による機能要素の実行状況を監視して記録する（Ｓ１０６）。ここで、機能要素の実行状況は、機能要素の実行結果、機能要素の実行時間、特定の機能要素を実行したか否かの情報などである。なお、機能要素の実行結果と、特定の機能要素を実行したか否かの情報は、機能要素の活性度として、例えば機能要素cの実行頻度を計算するために必要な情報であり、少なくともいずれか一方を監視して記録すればよい。
【００３７】
次に、活性度計算部１０６は、機能要素の実行状況に基づく活性度を計算するか否かを判定する（Ｓ１０７）。活性度は、１つの機能要素を実行する毎に計算してもよいが、一定数の機能要素を実行する毎、又は一定時間毎に計算してもよい。
【００３８】
Ｓ１０７により、活性度を計算すると判定された場合、活性度計算部１０６は、機能要素の実行状況に基づいて、機能要素の活性度を計算する（Ｓ１０８）。例えば、機能要素の活性度として、機能要素cの実行頻度を計算する。また、Ｓ１０７により、活性度を計算しないと判定された場合、Ｓ１０２に戻り、制御部１０２は、Ｓ１０５にて実行部１０３から出力された機能要素の実行結果に基づく処理を行う。
【００３９】
Ｓ１０８の後、活性度計算部１０６は、機能要素の活性度に基づいて、制御リスト１０１が保持する機能要素の組合せの計画を変更するか否かを判定する（Ｓ１０９）。例えば、機能要素cの実行頻度と機能要素の実行時間とを用いて、制御リスト１０１が保持する機能要素の組合せの計画の平均実行時間を計算する。そして、計画を変更することにより平均実行時間が短くなる場合に、計画を変更すると判定する。
【００４０】
Ｓ１０９により、機能要素の組合せの計画を変更すると判定された場合、活性度計算部１０６は、制御リスト１０１が保持する機能要素の組合せの計画を変更する（Ｓ１１０）。また、Ｓ１０９により、機能要素の組合せの計画を変更しないと判定された場合、Ｓ１０２に戻り、制御部１０２は、Ｓ１０５にて実行部１０３から出力された機能要素の実行結果に基づく処理を行う。
【００４１】
Ｓ１１０の後、Ｓ１０２に戻り、制御部１０２は、Ｓ１０５にて実行部１０３から出力された機能要素の実行結果に基づく処理を行う。
【００４２】
続いて、実施の形態１の具体例について説明する。この具体例は、本実施の形態にかかるサービス制御装置を、スマートフォンなどのモバイルデバイスが有するようにし、人物や動物などの移動体の検出を行うものである。なお、本実施の形態にかかるサービス制御装置を有するモバイルデバイスは、フューチャーフォン(例えば、折り畳み式の携帯電話端末) タブレットＰＣ(Personal Computer)、ノートＰＣなどであっても良い。また、本実施の形態にかかるサービス制御装置を、モバイルデバイス以外が有するようにすることも可能である。例えば、本実施の形態にかかるサービス制御装置を、ＩｏＴデバイスや、基地局、アクセスポイントが有するようにしてもよい。
【００４３】
機能要素aは、モバイルデバイスが備える赤外線センサや振動センサなどの低消費電力のセンサモジュールにより、簡易に移動体を感知する処理を行う。この処理は、処理時間は短いものの検知精度も悪い。機能要素bは、加速度センサなどのセンシングデータを基に特徴量を抽出し対象物の検出を行う。この処理は、処理時間や検知精度は中程度である。機能要素cは、カメラ画像から対象物の検出を行う。この処理は、電力消費も多く処理時間も長いが、検知精度は高い。
【００４４】
ここで、機能要素bにより、特徴量を抽出し対象物が検出できた場合の出力をYesとし、検出できない場合の出力をNoとする。例えば、外乱が多い環境では、機能要素bの出力はNoとなる。機能要素bの出力がYesの場合は機能要素cを実行し、機能要素bの出力がNoの場合は機能要素cを実行せずに終了する。また、機能要素bがYesを出力する確率が、閾値より高い場合には、機能要素bを実行せずにスキップし、機能要素aの次に機能要素cを実行するように機能要素の組合せの計画を変更する。なお、例えば、機能要素bがYesを出力する確率と比較する閾値は、計画の平均実行時間を用いて算出される。
【００４５】
この具体例では、外乱が多い環境では、不必要に高負荷の機能要素cを動作させることがないため、平均的なリソース消費を抑えることができる。また、外乱が少なく常に機能要素bがYesを出力する場合には、機能要素bを実行しないよう計画を変更するため、機能要素bの処理時間を省くことができる。
【００４６】
以上、説明したように、本発明の実施の形態１にかかるサービス制御装置１００では、機能要素の実行状況に基づいて、機能要素の活性度を計算し、活性度に基づいて制御リスト１０１を更新することにより、サービス制御装置１００を有するノードが配置された環境に適した機能要素の組合せを実現することができ、提供するサービスのレスポンス時間の短縮、処理時間やリソース消費の節約を行うことができる。
【００４７】
また、機能要素の活性度と機能要素の実行時間を用いて、機能要素の組合せの計画の平均実行時間を計算し、制御リスト１０１の更新により平均実行時間が短くなる場合に制御リスト１０１を更新することにより、計画の平均実行時間が削減できる。
【００４８】
実施の形態２
続いて、図５を用いて本発明の実施の形態２にかかるサービス制御装置２００の構成について説明する。サービス制御装置２００は、制御リスト２０１、制御部２０２、実行部２０３、機能要素群２０４、監視記録部２０５、活性度計算部２０６、通信部２０７、入力変換部２０８を備えている。
【００４９】
制御リスト２０１は、機能要素の組合せの計画を保持している。また、制御リスト２０１は、入力変換部２０８による入力の変換が必要か否かの情報も保持している。また、制御リスト２０１は、機能要素を自ノードで実行するか否かの情報も保持している。制御リスト２０１が保持する機能要素の組合せの計画については後に詳述する。
【００５０】
制御部２０２は、外部要求や実行部２０３による機能要素の実行結果を受け取る。ここで、外部要求は、サービス制御装置２００を有するノード内で発生する外部要求、及び通信部２０７から受け取る外部要求を含む。また、外部要求は、外部からの機能要素の実行要求でもよいし、外部からの複数の機能要素からなるサービスの実行要求でもよい。また、受け取った外部要求や実行部２０３による機能要素の実行結果を、制御部２０２への入力信号と呼ぶ。
【００５１】
また、制御部２０２は、制御リスト２０１を参照し、制御部２０２への入力信号に対して次に実行する機能要素を決定する。また、制御部２０２は、制御リスト２０１を参照し、次に実行する機能要素への入力について、入力の変換が必要か否かを判定する。入力の変換については後に詳述する。そして、制御部２０２は、次に実行する機能要素の指示と、制御部２０２への入力信号と、入力の変換が必要か否かの指示を、入力変換部２０８へ供給する。
【００５２】
また、制御部２０２は、制御リスト２０１を参照し、次の機能要素が別ノードで実行されるか否かも判定する。また、制御部２０２は、次の機能要素が別ノードで実行されると判定した場合、当該機能要素の実行を要求する外部要求を生成する。そして、生成した外部要求と、次の機能要素を実行するノードを示す情報とを、通信部２０７へ供給する。
【００５３】
入力変換部２０８は、次に実行する機能要素の指示と、制御部２０２への入力信号と、入力の変換が必要か否かの指示を、制御部２０２から受け取る。また、入力変換部２０８は、入力の変換が必要ない場合、制御部２０２への入力信号の関係を学習する。入力信号の関係を学習については後に詳述する。
【００５４】
また、入力変換部２０８は、入力の変換が必要な場合、過去の学習から得られた制御部２０２への入力信号の関係を用いて、受け取った制御部２０２への入力信号を、次に実行する機能要素への入力信号に変換する。
【００５５】
そして、入力変換部２０８は、次に実行する機能要素の指示を実行部２０３へ供給する。また、入力変換部２０８は、入力の変換を行った場合、次に実行する機能要素の指示とともに、次に実行する機能要素への入力信号を実行部２０３へ供給する。
【００５６】
実行部２０３は、次に実行する機能要素の指示を入力変換部２０８から受け取る。機能要素群２０４は、複数の機能要素を保持している。実行部２０３は、次に実行する機能要素の指示に基づいて、機能要素群２０４から次に実行する機能要素を選択する。また、実行部２０３は、選択した機能要素を実行する。また、実行部２０３は、次に実行する機能要素への入力信号を入力変換部２０８から受け取った場合、当該入力信号を用いて、選択した機能要素を実行する。さらに、実行部２０３は、機能要素の実行結果を制御部２０２へ出力する。
【００５７】
通信部２０７は、別ノードで発生する外部要求を受信する。そして、通信部２０７は、受信した外部要求を制御部２０２へ出力する。また、通信部２０７は、制御部２０２で生成された外部要求と、次の機能要素を実行するノードを示す情報とを受け取る。そして、通信部２０７は、制御部２０２から受け取った外部要求を、次の機能要素を実行するノードへ送信する。
【００５８】
監視記録部２０５は、実行部２０３による機能要素の実行状況に加え、通信部２０７による通信にかかる時間、実行部２０３による機能要素の実行及び通信部２０７による通信にかかる消費電力を、監視して記録する。そして、監視記録部２０５は、記録した機能要素の実行状況と、通信にかかる時間と、機能要素の実行及び通信にかかる消費電力とを、活性度計算部２０６へ出力する。
【００５９】
活性度計算部２０６は、機能要素の実行状況と、通信にかかる時間と、機能要素の実行及び通信にかかる消費電力とを、監視記録部２０５から受け取る。また、活性度計算部２０６は、機能要素の実行状況に基づいて、機能要素の活性度を計算する。活性度計算部２０６は、機能要素の活性度として、例えば、特定の機能要素の実行頻度を算出する。実行頻度の算出手法については、実施の形態１と同様である。
【００６０】
また、活性度計算部２０６は、算出した機能要素の活性度に基づいて、制御リスト２０１を更新するか否かを決定する。制御リスト２０１を更新するか否かの決定は、例えば、機能要素の活性度と通信時間を含む機能要素の実行時間を用いて、機能要素の組合せの計画の平均実行時間を計算し、制御リスト２０１の更新により平均実行時間が短くなるか否かを判定することにより行ってもよい。また、機能要素の活性度と機能要素の実行及び通信にかかる消費電力を用いて、機能要素の組合せの計画の平均消費電力を計算し、制御リスト２０１の更新により平均消費電力が小さくなるか否かを判定することにより行ってもよい。また、平均実行時間が短くなり、且つ平均消費電力が小さくなる場合に、制御リスト２０１を更新すると決定してもよい。
【００６１】
さらに、活性度計算部２０６は、制御リスト２０１を更新すると決定した場合、制御リスト２０１の更新を実行する。つまり、制御リスト２０１が保持する機能要素の組合せの計画を変更する。活性度計算部２０６の処理については後に詳述する。
【００６２】
続いて、図６を用いて、本発明の実施の形態２にかかる制御リスト２０１が保持する機能要素の組合せの計画について説明する。制御リスト２０１は、外部要求や機能要素の実行結果に対し、どの機能要素を実行するかを示す機能要素の組合せの計画を保持する。例えば、制御リスト２０１は、機能要素a,b,c’を図６の実線の矢印で示すように直列に配置した計画を保持する。この計画を、計画３と呼ぶ。計画３では、機能要素c’が自ノードで実行されるか別ノードで実行されるかについて決められている。それ以外は、計画３は実施の形態１の計画１と同じである。ここで、別ノードは、機能要素a,bが実行されるエッジノードとは別のエッジノードやサーバなどである。
【００６３】
また、活性度計算部２０６は、制御リスト２０１を更新することができる。例えば、図６の点線の矢印で示すように機能要素aの出力を、入力変換２０９を介して機能要素c’へ入力する計画に変更することができる。この変更後の計画を、計画４と呼ぶ。
【００６４】
続いて、図６を用いて、制御リスト２０１が保持する入力の変換が必要か否かの情報について説明する。機能要素の出力が、入力変換２０９を介さずに次の機能要素へ入力される場合、入力の変換は必要ない。つまり、計画３における実線の矢印は、入力変換２０９を介さずに次の機能要素へ入力されるため、入力の変換は必要ない。また、機能要素の出力が、入力変換２０９を介して次の機能要素へ入力される場合、入力の変換は必要である。つまり、計画４における機能要素aの出力は、入力変換２０９を介して機能要素c’へ入力されるため、入力の変換が必要である。
【００６５】
続いて、図６の計画３を実行する場合の動作について説明する。制御部２０２は、外部要求として、外部からの機能要素aの実行要求、又は外部からの機能要素a,b,c’からなるサービスの実行要求を受け取った場合、制御リスト２０１を参照し、次に実行する機能要素を機能要素aに決定する。そして、制御部２０２は、次に実行する機能要素aの指示と、入力の変換が必要ないことを示す指示を、入力変換部２０８へ供給する。また、制御部２０２は、機能要素aの実行結果を受け取った場合、制御リスト２０１を参照し、次に実行する機能要素を機能要素bに決定する。そして、制御部２０２は、次に実行する機能要素bの指示と、機能要素aの実行結果と、入力の変換が必要ないことを示す指示を、入力変換部２０８へ供給する。また、制御部２０２は、機能要素bからYesの結果を受け取った場合、制御リスト２０１を参照し、次に実行する機能要素を機能要素c’に決定する。また、制御部２０２は、制御リスト２０１を参照し、機能要素c’が別ノードで実行されるか否かを判定する。そして、制御部２０２は、機能要素c’が別ノードで実行されると判定した場合、機能要素c’の実行を要求する外部要求を生成する。そして、生成した外部要求と、機能要素c’を実行するノードを示す情報とを、通信部２０７へ供給する。また、制御部２０２は、機能要素c’が別ノードではなく、自ノードで実行されると判定した場合、次に実行する機能要素c’の指示と、機能要素bの実行結果と、入力の変換が必要ないことを示す指示を、入力変換部２０８へ供給する。
【００６６】
続いて、図６の計画４を実行する場合の動作について説明する。制御部２０２は、外部要求として、外部からの機能要素aの実行要求、又は外部からの機能要素a,b,c’からなるサービスの実行要求を受け取った場合、制御リスト２０１を参照し、次に実行する機能要素を機能要素aに決定する。そして、制御部２０２は、次に実行する機能要素aの指示と、入力の変換が必要ないことを示す指示を、入力変換部２０８へ供給する。また、制御部２０２は、機能要素aの実行結果を受け取った場合、制御リスト２０１を参照し、次に実行する機能要素を機能要素c’に決定する。また、制御部２０２は、制御リスト２０１を参照し、機能要素c’が別ノードで実行されるか否かを判定する。そして、制御部２０２は、機能要素c’が別ノードで実行されると判定した場合、機能要素c’の実行を要求する外部要求を生成する。そして、生成した外部要求と、機能要素c’を実行するノードを示す情報とを、通信部２０７へ供給する。また、制御部２０２は、機能要素c’が自ノードで実行されると判定した場合、次に実行する機能要素c’の指示と、機能要素aの実行結果と、入力の変換が必要であることを示す指示を、入力変換部２０８へ供給する。なお、図６の計画３及び４において、制御部２０２は、通信部２０７から機能要素c’の外部要求を受け取った場合、制御リスト２０１を参照し、次に実行する機能要素を機能要素c’に決定する。また、この場合、機能要素c’が自ノードで実行されると判定する。
【００６７】
続いて、図６を用いて、制御部２０２への入力信号の関係の学習について説明する。この学習は、入力の変換が必要ない場合に行うものである。また、学習した情報は、後に入力変換を行う際に使用される。例えば、機能要素の実行結果の入力から始まる２以上の機能要素の組合せのうち、始めの機能要素の実行結果の入力と最後の機能要素への入力の関係を学習する。具体的には、機能要素aの実行結果が制御部２０２へ入力され、その後、機能要素bの実行結果が制御部２０２へ入力される場合、入力変換部２０８には、機能要素aの実行結果及び入力の変換が必要ないことを示す指示が供給され、その後、機能要素bの実行結果及び入力の変換が必要ないことを示す指示が供給される。入力変換部２０８は、この供給された情報から機能要素aの実行結果と機能要素bの実行結果との関係を学習する。
【００６８】
続いて、図６を用いて、入力の変換について説明する。この入力変換は、機能要素c’への入力、つまり実線の矢印における機能要素bの出力と、点線の矢印における入力変換２０９の出力とを、同様の内容とするために行うものである。このために、上述の学習した関係を使用して入力変換を行う。例えば、機能要素の実行結果の入力から始まる２以上の機能要素の組合せのうち、始めの機能要素の実行結果の入力が最後の機能要素に直接入力される場合に、過去に学習した関係を用いて、始めの機能要素の実行結果の入力を対応する最後の機能要素への入力に変換する。具体的には、入力変換部２０８は、過去に学習した機能要素aの実行結果と機能要素bの実行結果との関係を使用して、機能要素aの実行結果を機能要素bの実行結果へ変換する。そして、変換後の機能要素bの実行結果を機能要素c’の入力信号とする。
【００６９】
ここで、計画３から計画４へ変更するか否かの判定手法について説明する。活性度計算部２０６は、計画の変更を、機能要素c’の活性度に基づいて行う。活性度計算部２０６は、機能要素c’の活性度として、例えば機能要素c’の実行頻度を計算する。そして、活性度計算部２０６は、機能要素c’の実行頻度に基づいて、計画３から計画４へ変更するか否かの判定を行う。具体的には、機能要素c’が自ノードで実行される場合、活性度計算部２０６は、機能要素c’の実行頻度と、機能要素b及びc’の実行時間とを用いて、計画３の平均実行時間と、xの確率で計画４を実行する平均実行時間を計算する。ここで、xの確率は、機能要素c’の実行頻度とする。また、機能要素bがYesを出力すると次に機能要素c’が実行されるため、xの確率は、機能要素bがYesを出力する確率とも言える。また、xの確率で計画４を実行する平均実行時間は、1-xの確率で計画３を実行し、xの確率で計画４を実行する場合の平均実行時間とする。そして、xの確率で計画４を実行する平均実行時間が、計画３の平均実行時間より短くなる場合に、計画３から計画４へ変更する。
なお、機能要素c’が自ノードで実行される場合における計画の平均実行時間は、実施の形態１と同様に算出することができる。
【００７０】
また、機能要素c’が別ノードで実行される場合、活性度計算部２０６は、機能要素c’の実行頻度と、機能要素bの実行時間と、通信時間を含めた機能要素c’の実行時間とを用いて、計画３の平均実行時間と、xの確率で計画４を実行する平均実行時間を計算する。
また、機能要素c’が別ノードで実行される場合、活性度計算部２０６は、機能要素c’の実行頻度と、機能要素bの実行に必要な電力と、機能要素c’の通信にかかる消費電力とを用いて、計画３の平均消費電力と、xの確率で計画４を実行する平均消費電力を計算する。そして、xの確率で計画４を実行する平均実行時間が、計画３の平均実行時間より短くなり、且つ、xの確率で計画４を実行する平均消費電力が、計画３の平均消費電力より小さくなる場合に、計画３から計画４へ変更する。また、平均実行時間の条件と平均消費電力の条件のいずれか一方を満たした場合に、計画３から計画４へ変更するようにしてもよい。
【００７１】
図６の機能要素c’が別ノードで実行される場合における平均実行時間及び平均消費電力について説明する。計画３の平均実行時間をT3、xの確率で計画４を実行する平均実行時間をT4、計画３の平均消費電力をP3、xの確率で計画４を実行する平均消費電力をP4、機能要素bの実行時間をT_b、通信時間を含めた機能要素c’の実行時間をT_c’、機能要素bの実行にかかる消費電力をP_b、機能要素c’の通信にかかる消費電力をP_c’、とすると、T3、T4、P3、P4はそれぞれ以下の式で算出することができる。
【００７２】
T3=(1-x)*T_b+x*(T_b+ T_c’)=T_c’*x+T_b
T4=(1-x)(T_c’*x+T_b)+x*T_c’=-T_c’*x^2+(-T_b+2T_c’)*x+T_b
P3=(1-x)*P_b+x*(P_b+ P_c’)=P_c’*x+P_b
P4=(1-x)(P_c’*x+P_b)+x*P_c’=-P_c’*x^2+(-P_b+2P_c’)*x+P_b
【００７３】
上記の式において、T3>T4が満たされるのは、
x>1-T_b/T_c’
の場合である。つまり、xが1-T_b/T_c’という閾値を超えた場合に、xの確率で計画４を実行する平均実行時間が、計画３の平均実行時間より短くなる。
【００７４】
また、上記の式において、P3>P4が満たされるのは、
x>1-P_b/P_c’
の場合である。つまり、xが1-P_b/P_c’という閾値を超えた場合に、xの確率で計画４を実行する平均消費電力が、計画３の平均消費電力より小さくなる。
【００７５】
よって、本例の場合、活性度計算部２０６は、xが1-T_b/T_c’という閾値を超えること、及び、xが1-Pb/P_c’という閾値を超えることの両方、又はいずれか一方が満たされた場合に、計画３から計画４へ変更する。これにより、平均実行時間及び平均消費電力の少なくともいずれか一方を削減することができる。
【００７６】
続いて、図７のフローチャートを用いて、本発明の実施の形態２にかかるサービス制御装置の処理について説明する。まず、外部要求として、外部からの機能要素の実行要求、又は外部からの複数の機能要素からなるサービスの実行要求が発生する（Ｓ２０１）。
【００７７】
次に、制御部２０２は、外部要求又は機能要素の実行結果を受け取る（Ｓ２０２）。Ｓ２０２では、Ｓ２０１に続いて行われる場合は、外部要求を受け取る。また、Ｓ２０２では、機能要素の実行後に行われる場合は、機能要素の実行結果を受け取る。
【００７８】
次に、制御部２０２は、制御リスト２０１を参照し、次の機能要素を自ノードで実行するか否かを判定する（Ｓ２０３）。Ｓ２０３により、次の機能要素を自ノードで実行しないと判定された場合、次の機能要素を別ノードで実行するか否かを判定する（Ｓ２０４）。Ｓ２０４により、次の機能要素を別ノードでも実行しないと判定された場合、外部要求により始まる複数の機能要素からなるサービスの実行を終了する（Ｓ２０５）。ここで、次の機能要素を別ノードでも実行しないと判定される例としては、図６における機能要素c’の実行結果を受け取った場合や、機能要素bの実行結果がNoであった場合などである。
【００７９】
Ｓ２０４により、次の機能要素を別ノードで実行すると判定された場合、外部要求を生成し、通信部２０７により、生成した外部要求を別ノードへ送信する（Ｓ２０６）。ここで、次の機能要素を別ノードで実行すると判定される例としては、図６において、次の機能要素が機能要素c’であり、機能要素c’が別ノードで実行されると決められている場合などである。
【００８０】
Ｓ２０３により、次の機能要素を自ノードで実行すると判定された場合、制御部２０２は、制御リスト２０１を参照し、次の機能要素への入力の変換が必要か否かを判定する（Ｓ２０７）。Ｓ２０７により、入力の変換が必要と判定された場合、入力変換部２０８は、入力の変換を実行する（Ｓ２０８）。また、Ｓ２０７により、入力の変換が必要ないと判定された場合、入力変換部２０８は、制御部２０２への入力信号の関係の学習を行う（Ｓ２０９）。
【００８１】
Ｓ２０８又はＳ２０９の後、実行部２０３は、次の機能要素を実行する（Ｓ２１０）。
実行部２０３による機能要素の実行は、次に実行する機能要素の指示を入力変換部２０８から受け取ることにより行われる。また、次に実行する機能要素の指示は、制御部２０２が制御リスト２０１を参照して次に実行する機能要素を決定して行う。また、入力変換部２０８により入力の変換が行われた場合、実行部２０３は、入力変換部２０８から受け取った、次に実行する機能要素への入力信号を用いて機能要素の実行を行う。さらに、実行部２０３は、機能要素の実行結果を制御部２０２へ出力する。
【００８２】
次に、監視記録部２０５は、実行部２０３による機能要素の実行状況と、通信部２０７による通信にかかる時間と、実行部２０３による機能要素の実行及び通信部２０７による通信にかかる消費電力とを、監視して記録する（Ｓ２１１）。Ｓ２１１では、Ｓ２１０に続いて行われる場合は、実行部２０３による機能要素の実行状況と、実行部２０３による機能要素の実行にかかる消費電力とを、監視して記録する。また、Ｓ２１１では、Ｓ２０６に続いて行われる場合は、通信部２０７による通信にかかる時間と、通信部２０７による通信にかかる消費電力とを、監視して記録する。
【００８３】
次に、活性度計算部２０６は、機能要素の実行状況に基づく活性度を計算するか否かを判定する（Ｓ２１２）。活性度は、１つの機能要素を実行する毎に計算してもよいが、一定数の機能要素を実行する毎、又は一定時間毎に計算してもよい。
【００８４】
Ｓ２１２により、活性度を計算すると判定された場合、活性度計算部２０６は、機能要素の実行状況に基づいて、機能要素の活性度を計算する（Ｓ２１３）。例えば、機能要素の活性度として、機能要素c’の実行頻度を計算する。また、Ｓ２１２により、活性度を計算しないと判定された場合、Ｓ２０２に戻り、制御部２０２は、Ｓ２１０にて実行部２０３から出力された機能要素の実行結果に基づく処理を行う。
【００８５】
Ｓ２１３の後、活性度計算部２０６は、機能要素の活性度に基づいて、制御リスト２０１が保持する機能要素の組合せの計画を変更するか否かを判定する（Ｓ２１４）。例えば、機能要素c’が別ノードで実行される場合、機能要素c’の実行頻度と、機能要素bの実行時間と、通信時間を含めた機能要素c’の実行時間とを用いて、制御リスト２０１が保持する機能要素の組合せの計画の平均実行時間を計算する。そして、計画を変更することにより平均実行時間が短くなる場合に、計画を変更すると判定する。また、機能要素c’が別ノードで実行される場合、機能要素c’の実行頻度と、機能要素bの実行に必要な電力と、機能要素c’の通信にかかる消費電力とを用いて、制御リスト２０１が保持する機能要素の組合せの計画の平均消費電力を計算し、計画を変更することにより平均消費電力が小さくなる場合に、計画を変更すると判定してもよい。さらに、計画を変更することにより、平均実行時間が短くなり、且つ平均消費電力が小さくなる場合に、計画を変更すると判定してもよい。
【００８６】
Ｓ２１４により、機能要素の組合せの計画を変更すると判定された場合、活性度計算部２０６は、制御リスト２０１が保持する機能要素の組合せの計画を変更する（Ｓ２１５）。また、Ｓ２１４により、機能要素の組合せの計画を変更しないと判定された場合、Ｓ２０２に戻り、制御部２０２は、Ｓ２１０にて実行部２０３から出力された機能要素の実行結果に基づく処理を行う。
【００８７】
Ｓ２１５の後、Ｓ２０２に戻り、制御部２０２は、Ｓ２１０にて実行部２０３から出力された機能要素の実行結果に基づく処理を行う。
【００８８】
なお、上述の例では、通信部２０７にて生成した外部要求を送信することを例示して示したが、これに限らず、通信部２０７は、生成した外部要求とともに入力変換部２０８により変換した入力信号を送信してもよい。
【００８９】
続いて、実施の形態２の具体例について説明する。この具体例は、本実施の形態にかかるサービス制御装置２００を、例えば、センサノードなどのＩｏＴデバイスが有するようにして動物の検出を行うものである。機能要素aは、実施の形態１の具体例と同様、赤外線センサや振動センサ等で低負荷、低精度の検出を行う。機能要素bは、加速度センサ等で中程度の負荷、精度で検出を行う。また、機能要素bは、検出対象の種別まで判別し出力するものとする。機能要素c’は、入力種別に特化した画像を用いた検出である。
【００９０】
ここで、機能要素bにより、検出対象の種別が判別できた場合の出力をYesとし、種別が判別できない場合の出力をNoとする。機能要素bの出力がYesの場合は機能要素c’を実行し、機能要素bの出力がNoの場合は機能要素c’を実行せずに終了する。また、機能要素bがYesを出力する確率が、閾値より高い場合には、機能要素bを実行せずにスキップし、機能要素aの次に機能要素c’を実行するように機能要素の組合せの計画を変更する。なお、機能要素bがYesを出力する確率と比較する閾値は、計画の平均実行時間を用いて算出されるものとする。
【００９１】
ＩｏＴデバイスが備える入力変換部は、機能要素aの次に機能要素bを実行する場合、機能要素aの検出結果と、機能要素bにより判別した種別との関係を学習する。また、入力変換部は、機能要素aの次に機能要素c’を実行する場合、過去の学習から得られた関係を用いて、機能要素aの検出結果を、学習に基づく種別へ変換する。そして、変換後の学習に基づく種別を機能要素c’へ入力する。
【００９２】
この具体例では、実環境において、常に、機能要素bにより検出対象の種別が判別できる場合、つまり常に機能要素bがYesを出力する場合に、機能要素bを実行しないよう計画を変更するため、機能要素bの処理時間を省くことができる。また、機能要素bを実行しない場合であっても、機能要素aの検出結果を、学習に基づく種別へ変換して機能要素c’へ入力するため、機能要素bを実行する場合と同様の正しい結果を得ることができる。
【００９３】
また、機能要素bにより、判別した検出対象の種別が特定の種別であった場合の出力をYesとし、それ以外の出力をNoとすることもできる。この場合、入力変換部は、機能要素aの次に機能要素c’を実行する場合、過去の学習から得られた関係を用いて、機能要素aの検出結果を、学習に基づく特定の種別へ変換する。そして、変換後の特定の種別を機能要素c’へ入力する。これは、実環境において、特定の種別のみの出没がある場合に効果的である。
【００９４】
また、機能要素c’は、サーバ等の別ノードで実行されるものとすることができる。この場合、機能要素bがYesを出力する確率と比較する閾値を、計画の平均消費電力を用いて算出してもよい。また、機能要素bは、検出種別を特定した後、種別に特化した画像圧縮まで行い圧縮データを出力してもよい。この場合、ＩｏＴデバイスが備える入力変換部が圧縮データに変換し出力してもよい。一般的にノード間の転送データ量は小さい方がよく、検出種別まで特定し種別に特化したデータ圧縮を行うことにより、データ量が削減できる可能性がある。
【００９５】
以上、説明したように、本発明の実施の形態２にかかるサービス制御装置では、機能要素の実行状況に基づいて、機能要素の活性度を計算し、活性度に基づいて制御リスト２０１を更新することにより、サービス制御装置２００を有するノードが配置された環境に適した機能要素の組合せを実現することができ、提供するサービスのレスポンス時間の短縮、処理時間やリソース消費の節約を行うことができる。
【００９６】
また、機能要素の活性度と機能要素の実行時間を用いて、機能要素の組合せの計画の平均実行時間を計算し、制御リスト２０１の更新により平均実行時間が短くなる場合に制御リスト２０１を更新することにより、計画の平均実行時間が削減できる。
【００９７】
また、ある機能要素をスキップする計画を実行する際、入力変換を行うことにより、ある機能要素をスキップすると正しい結果が得られないことがあるサービスであっても、機能要素をスキップしない場合と同様の正しい結果を得ることができる。
【００９８】
さらに、通信時間を含めた機能要素の実行時間や通信にかかる消費電力等を用いて計画を変更するか否かを判定することにより、別ノードへ機能要素の実行を指示する計画についても適切に計画の変更を行うことができる。
【００９９】
なお、上述の各実施の形態における、制御リスト１０１、２０１、制御部１０２、２０２、実行部１０３、２０３、機能要素群１０４、２０４、監視記録部１０５、２０５、活性度計算部１０６、２０６、通信部２０７、入力変換部２０８は、IC（Integrated Circuit）などのハードウェア若しくはソフトウェア、又はその両方を併用して構成される。例えば、サービス制御装置１００、２００は、一般的なコンピュータを用いて構成される。
図８は、一般的なコンピュータ３００のハードウェア構成例を示す。
【０１００】
コンピュータ３００は、バス３０４を介して接続された、プロセッサ３０１、インターフェース３０２、メインメモリ３０３を備える。
【０１０１】
プロセッサ３０１は、メインメモリ３０３に格納されたプログラムを実行する。また、プロセッサ３０１は、インターフェース３０２を介して、各種情報を入出力する。インターフェース３０２は、データ入出力手段によりデータのやり取りに使われる。メインメモリ３０３は、プロセッサ３０１によって実行されるプログラムを記憶する。記憶されているプログラムには、各機能部の処理を実行するために、プロセッサ３０１に処理させるための命令群が記載されている。サービス制御装置１００、２００の各機能部は、各機能部の処理のためのプログラムがプロセッサ３０１で実行されることにより実現することができる。例えば、制御リスト１０１、２０１、機能要素群１０４、２０４は、メインメモリ３０３により実現される。また、制御部１０２、２０２、実行部１０３、２０３、監視記録部１０５、２０５、活性度計算部１０６、２０６、通信部２０７、入力変換部２０８は、各機能部の処理のためのプログラムがプロセッサ３０１で実行されることにより実現することができる。
【０１０２】
このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１０３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、活性度の高い機能要素を優先的に実行するように計画を変更してもよい。
【０１０４】
また、実施の形態では、３つの機能要素からなる組合せの計画について説明したが、２つ以上の機能要素からなる組合せの計画であれば機能要素の数はいくつでもよい。例えば２つの機能要素d,eからなる組合せの計画の例を図９に示す。実線の矢印で示す計画では、外部要求があると機能要素dが実行され、機能要素dからは、Yes/Noの判断が出力され、Yesの場合は次に機能要素eが実行され、Noの場合は機能要素eが実行されずに終了する。
また、点線の矢印で示す計画では、外部要求があると機能要素dが実行されずにスキップされ、機能要素eが直接実行される。また、２つの機能要素d,e’からなる組合せの計画の例を図１０に示す。この場合、点線の矢印で示す計画では、入力変換２１０を介して入力変換が行われる。入力変換は、過去の学習から得られた関係を用いて、外部要求の入力を機能要素dの出力に変換することにより行われる。つまり、外部要求の入力が機能要素e’の入力に変換される。
【０１０５】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１０６】
この出願は、２０１５年６月１１日に出願された日本出願特願２０１５−１１８１９７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１０７】
１００、２００    サービス制御装置
１０１、２０１    制御リスト
１０２、２０２    制御部
１０３、２０３    実行部
１０５、２０５    監視記録部
１０６、２０６    活性度計算部
２０７    通信部
２０８    入力変換部
【図１】
2016199432.tif 000003
【図２】
2016199432.tif 000004
【図３】
2016199432.tif 000005
【図４】
2016199432.tif 000006
【図５】
2016199432.tif 000007
【図６】
2016199432.tif 000008
【図７】
2016199432.tif 000009
【図８】
2016199432.tif 000010
【図９】
2016199432.tif 000011
【図１０】
2016199432.tif 000012
【手続補正書】
【提出日】平成29年11月20日(2017.11.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
外部要求又は機能要素の実行結果に対し、機能要素の組合せの計画を保持する制御リストを参照して、次に実行する機能要素を決定し、
決定した前記次に実行する機能要素を実行し、
機能要素の実行状況を監視して記録し、
記録された前記機能要素の実行状況に基づいて機能要素の活性度を計算し、
前記活性度に基づいて前記制御リストを更新する
ことをコンピュータに実行させるプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、サービス制御装置、サービス制御方法及びプログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
入力変換部２０８は、次に実行する機能要素の指示と、制御部２０２への入力信号と、入力の変換が必要か否かの指示を、制御部２０２から受け取る。また、入力変換部２０８は、入力の変換が必要ない場合、制御部２０２への入力信号の関係を学習する。入力信号の関係の学習については後に詳述する。
【国際調査報告】
2016199432.tif 000013
2016199432.tif 000014
2016199432.tif 000015