(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022052904
(43)【公開日】2022-04-05
(54)【発明の名称】電子装置及びシステム
(51)【国際特許分類】
G06F 13/00 20060101AFI20220329BHJP
G06F 16/904 20190101ALI20220329BHJP
【FI】
G06F13/00 358A
G06F16/904
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2020159421
(22)【出願日】2020-09-24
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】特許業務法人スズエ国際特許事務所
(72)【発明者】
【氏名】吉本 武弘
(72)【発明者】
【氏名】千葉 恭平
(72)【発明者】
【氏名】齊川 水輝
(72)【発明者】
【氏名】村上 瑛
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175JC05
(57)【要約】
【課題】IoTシステムを実現するための多数のルール情報の中から少なくとも一つのルール情報を簡単に選択することができる電子装置を提供すること。
【解決手段】実施形態によれば、電子装置は、記憶部と表示制御部を具備する。記憶部は、複数のルール情報と、複数のルール情報に関する複数の推奨度情報と、を記憶する。表示制御部は、推奨度情報に基づいて複数のルール情報の少なくとも1つを表示する表示画面を生成する。ルール情報は、特定の状態を示す第1の情報と、第1のモジュールにより検出された状態が前記特定の状態である場合に実行される処理を示す第2の情報と、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のルール情報と、前記複数のルール情報に関する複数の推奨度情報と、を記憶する記憶部と、
前記推奨度情報に基づいて前記複数のルール情報の少なくとも1つを表示する表示画面を生成する表示制御部と、を具備する電子装置であって、
前記ルール情報は、
特定の状態を示す第1の情報と、
第1のモジュールにより検出された状態が前記特定の状態である場合に実行される処理を示す第2の情報と、を含む電子装置。
【請求項2】
前記ルール情報は、前記第1のモジュールの識別情報と前記特定の処理を実行する第2のモジュールの識別情報の少なくとも1つを含み、
前記推奨度情報は、前記第1のモジュールの推奨度と前記第2のモジュールの推奨度の少なくとも一つを示す、請求項1記載の電子装置。
【請求項3】
前記推奨度情報は、前記処理の実行回数を示し、
前記表示画面が表示する前記複数のルール情報の少なくとも1つは、前記実行回数が第1回数以上である処理を示す第2の情報を含む、請求項1記載の電子装置。
【請求項4】
前記ルール情報は、当該ルール情報の作成者を示し、
前記表示画面が表示する前記複数のルール情報の少なくとも1つは、特定の作成者が作成したルール情報を含む、請求項1記載の電子装置。
【請求項5】
前記ルール情報は、前記状態を検出する第1のモジュールの識別情報と前記処理を実行する第2のモジュールの識別情報の少なくとも1つを含み、
前記推奨度情報は、前記処理の実行回数を示し、
前記表示画面が表示する前記複数のルール情報の少なくとも1つは、実行回数が第2回数以上である処理を示す第2の情報を含む、請求項1記載の電子装置。
【請求項6】
前記実行回数は、前記処理の単位時間当たりの実行回数又は前記処理の実行回数の累計値を含む、請求項3又は請求項5記載の電子装置。
【請求項7】
前記表示画面は、前記実行回数をさらに表示する、請求項6記載の電子装置。
【請求項8】
前記ルール情報は、前記第1のモジュールの識別情報と、前記処理を実行する第2のモジュールの識別情報と、をさらに含み、
前記推奨度情報は、前記第1のモジュールの評判と、前記第2のモジュールの評判と、を含み、
前記表示画面は、前記第1のモジュールの評判と前記第2のモジュールの評判の少なくとも一つをさらに表示する、請求項1記載の電子装置。
【請求項9】
前記ルール情報は、前記処理が対象とする対象者と、前記処理が実行されるシーンと、前記処理が実行されるテーマと、前記処理により解決される課題の少なくとも一つを含み、
前記表示画面が表示する前記複数のルール情報の少なくとも1つは、特定の対象者と、特定のシーンと、特定のテーマと、特定の課題の少なくとも一つに関するルール情報を含む、請求項1記載の電子装置。
【請求項10】
前記電子装置は、第2の電子装置に接続可能であり、
前記第2の電子装置は、
前記第1のモジュールにより検出された前記状態が前記複数のルール情報の中の第1ルール情報に含まれる前記第1の情報が示す前記特定の状態である場合、前記第1ルール情報に含まれる第2の情報が示す前記処理を第2のモジュールに実行させる実行制御部と、
前記第1ルール情報の評価を入力する入力部と、を具備し、
前記表示画面は、前記評価をさらに表示する、請求項1記載の電子装置。
【請求項11】
前記電子装置は、
前記第1のモジュールにより検出された前記状態が前記複数のルール情報の中の第1ルール情報に含まれる前記第1の情報が示す前記特定の状態である場合、前記第1ルール情報に含まれる第2の情報が示す前記処理を第2のモジュールに実行させる実行制御部と、
前記第1ルール情報の評価を入力する入力部と、をさらに具備し、
前記表示画面は、前記評価をさらに表示する、請求項1記載の電子装置。
【請求項12】
サーバと、
前記サーバに接続される電子装置と、
を具備するシステムであって、
前記サーバは、
複数のルール情報と、前記複数のルール情報に関する複数の推奨度情報と、を記憶する記憶部と、
前記推奨度情報に基づいて前記複数のルール情報の少なくとも1つを表示する表示画面を生成する表示制御部と、を具備し、
前記ルール情報は、
特定の状態を示す第1の情報と、
第1のモジュールにより検出された状態が前記特定の状態である場合に実行される処理を示す第2の情報と、を含み、
前記電子装置は、前記ルール情報のダウンロードを要求する要求信号を前記サーバへ送信し、前記サーバから送信された前記表示画面を表示する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は電子装置及びシステムに関する。
【背景技術】
【0002】
インターネットを経由して実空間上の物体(デバイスと称される)を連携させるIoT(Internet of Things)システムが普及している。IoTシステムを作るためには、デバイスの制御に関するプログラミング等の高度な技術的な知識が必要であり、IoTシステムを作ることは容易ではない。
【0003】
近年、「もし何々ならば、何々する」というルール情報に従って複数のデバイスを連携させてIoTシステムを作ることが提案されている。複数のデバイスを制御できる電子装置にルール情報をインストールすることによりIoTシステムが実現される。
【0004】
IoTシステムを作りたいユーザは、予め用意され、公開されている多数のルール情報の中から自分に適したルール情報を選択して、電子装置にダウンロードする。予め用意されているルール情報の数が増えると、ルール情報を選択することは困難である。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の目的は、IoTシステムを実現するための多数のルール情報等の中から少なくとも一つのルール情報等を簡単に選択することができる電子装置及びシステムを提供することである。
【課題を解決するための手段】
【0007】
実施形態によれば、電子装置は、記憶部と表示制御部を具備する。記憶部は、複数のルール情報と、複数のルール情報に関する複数の推奨度情報と、を記憶する。表示制御部は、推奨度情報に基づいて複数のルール情報の少なくとも1つを表示する表示画面を生成する。ルール情報は、特定の状態を示す第1の情報と、第1のモジュールにより検出された状態が前記特定の状態である場合に実行される処理を示す第2の情報と、を含む。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態によるIoTシステム内のエッジコンピュータの機能ブロックの一例を示す図である。
【
図2】第1実施形態によるIoTシステムが利用するルール情報のデータ構造の一例を示す図である。
【
図3】
図2に示すルール情報の中のIF-THEN部のデータ構造の一例を示す図である。
【
図4】
図2に示すルール情報の中のルール属性のデータ構造の一例を示す図である。
【
図5】エッジコンピュータが記憶する実行履歴情報のデータ構造の一例を示す図である。
【
図6】エッジコンピュータが記憶する評価情報のデータ構造の一例を示す図である。
【
図7】第1実施形態によるIoTシステム内のクラウドサーバの機能ブロックの一例を示す図である。
【
図8】クラウドサーバが生成する利用回数ランキング情報のデータ構造の一例を示す図である。
【
図9】利用回数ランキング表の一例を示す図である。
【
図10】利用回数ランキング情報のデータ構造の他の例を示す図である。
【
図11】利用回数ランキング情報のデータ構造の他の例を示す図である。
【
図12】利用回数ランキング表の他の例を示す図である。
【
図13】クラウドサーバが生成する評価ランキング情報のデータ構造の一例を示す図である。
【
図15】利用回数ランキング表のさらに他の例を示す図である。
【
図16】利用回数ランキング表のさらに他の例を示す図である。
【
図17】評価ランキング表のさらに他の例を示す図である。
【
図18】評価ランキング表のさらに他の例を示す図である。
【
図19】第1実施形態によるエッジコンピュータによるルール作成の一例を示すフローチャートである。
【
図20】
図19に示すルール作成時のエッジコンピュータのディスプレイの画面遷移の一例を示す図である。
【
図21】
図19に示すルール作成時のディスプレイの画面遷移の他の例を示す図である。
【
図22】
図19に示すルール作成時のディスプレイの画面遷移のさらに他の例を示す図である。
【
図23】第1実施形態によるエッジコンピュータによるルール情報のダウンロード処理の一例を示すシーケンス図である。
【
図24】第1実施形態によるエッジコンピュータによるルール利用の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、形状、配置、材質等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各要素のサイズ、厚み、平面寸法又は形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、互いの寸法の関係や比率が異なる要素が含まれることもある。複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接的な接続のみならず、他の要素を介して間接的に接続されることも意味する。
【0010】
(IoTシステムの概要)
実施形態は、ルール情報に基づいて種々のデバイスを連携させるIoTシステムに関する。実施形態のIoTシステムは、デバイスに限らず、ソフトウェアにより提供されるサービスも連携させる。サービスはデバイスにインストールされているプログラムによるメールサービス、SNSサービスや、クラウドサーバにより提供されるWebサービスを含む。この明細書では、IoTシステムにより連携される単位であるデバイスとサービスはモジュールと称されることもある。ルール情報は、複数のモジュールの組み合わせ方の定義であるルールを記述する情報である。実施形態は、デバイスやサービスを自由に組み合わせることができるので、家庭、会社、社会の様々なシーンで便利な仕組みを実現できる。
【0011】
サービスは、所定の実体/状態/情報の制御を組み合わせて、有償または無償でユーザに対して所定の処理や状態の変化、あるいはコンテンツやデータ/情報を提供する能動的動作を意味する。実施形態では、ルール情報に従って、ユーザにサービスを提供する。このサービス提供の形態として、実施形態では、各種デバイスを利用した実空間上あるいは物理空間上のサービスとWebサービスなどを利用したサイバ空間上のサービス間の垣根を越えた(跨った)組み合わせ(複合化)サービスを提供してもよい。
【0012】
コンテンツは、所定機能に関係する具体的内容を意味し、他との違いが個々に識別可能な具体性を有する。例えば“映画”と言う抽象的概念は含まれず、他のコンテンツとの識別手段として“映画名(題名)”が設定された特定コンテンツが該当する。同様にWebブラウザに表示される“Web画面”と言う抽象的概念は含まれず、特定のURL上に配置された特定のWeb頁も該当する。
【0013】
モジュールは、所定機能の実現手段を含む。モジュールは、この所定機能が実現された実空間上で人間が認識可能な実体(状態又は情報とも称される)とその制御部との組み合わせで構成される。個々の制御部で制御される複数のモジュールの動作の組み合わせにより、ユーザに対してサービスが提供される。モジュールは、所定機能を実現するための実体と制御部との組み合わせの概念である。モジュールを構成する人間が認識可能な実体その制御部は、物理的に一体化されている必要は無い。例えば人間が認識可能な実体とその制御部が物理的に離れた位置に設置され、通信機能を利用して両者が連携されてもよい。モジュールを構成する人間が認識可能な実体とその制御部は、物理的実体(Physically real object)を形成している必要は無い。
【0014】
デバイスは、実空間上に実在し、所定機能の実現に利用されるあらゆるものを含む。デバイスは、処理を実行するデバイスやコンテンツを表示するデバイス、データを記憶する記憶装置を含む。デバイスは、外部のデバイスとの間の通信を行うための通信機能を内蔵してもよい。デバイスは、自然界の物理的又は化学的な状態又は現象に対して作用する機能を持ってもよい。自然界に対して受動的作用を行うデバイスは、センサ等を含む。自然界に対して能動的作用を行うデバイスは、ロボット、駆動機構及び表示装置(表示素子)等を含む。デバイスの物理的形態としては、据え置き型に限らず、移動可能な携帯型の形態でもよい。デバイスの物理的形態の例は、ユーザの腕や足に固定するバンド型センサや腰に固定するベルト型センサ、頭部に装着するVRタイプやARタイプのヘッドマウントディスプレイ等のユーザが装着可能な形態を含む。
【0015】
ルールの一例は、センサモジュールにより検出される状態が特定の状態である場合、実行モジュールが特定の処理を実行するというモジュールの連携関係を規定するものである。ルールを記述するルール情報は種々の形式があり、その一例は、特定の状態を示す条件情報(IF部とも称される)と、センサモジュールにより検出された状態が特定の状態である場合に実行モジュールにより実行される特定の処理を示す処理情報(THEN部とも称される)とを含む形式がある。しかし、ルール情報の形式は、この形式に限定されない。
【0016】
この形式のルール情報の一例は、「もし温度が26度以上であれば空調機を冷房モードで運転させる」である。この例の場合、IoTシステムが連携させるモジュール(この場合は、デバイス)は、状態の一例である温度を検出する温度センサと、処理の一例である冷房モードの運転を実行する空調機である。状態、処理の一例は上記の例に限定されない。
【0017】
この明細書では、状態を検出するモジュールはIFモジュールと称され、処理を実行するモジュールはTHENモジュールと称される。IoTシステムは、IFモジュールと、THENモジュールと、電子装置を含む。電子装置は、例えば無線によりIFモジュールとTHENモジュールに接続される。電子装置は、IFモジュールにより検出された状態が特定の状態であるかどうかを判断し、特定の状態である場合、THENモジュールに処理を実行させる指示を与える。
【0018】
電子装置の一例は、これに限定されないが、スマートフォンを含む。電子装置には、ルール情報と、ルール情報に従ってIFモジュールとTHENモジュールを制御するソフトウェアがインストールされる。電子装置は、IFモジュールに対して状態の検出を定期的に要求し、IFモジュールの出力に基づいて、IFモジュールが検出した状態が特定の状態であることを検知した場合、THENモジュールに対して特定の処理を実行するように制御する。
【0019】
一つのルール情報においてIF部とTHEN部の数、すなわち検出される状態の数と、実行される処理の数はそれぞれ一つに限定されない。例えば複数の状態がそれぞれ複数の特定の状態である場合に一つの処理が実行されてもよい。例えば、ルール情報は、第1のIFモジュールにより検出された状態が第1の特定の状態であり、かつ第2のIFモジュールにより検出された状態が第2の特定の状態である場合に実行される1つの処理を示してもよい。あるいは、一つの状態が一つの特定の状態である場合に複数の処理が実行されてもよい。さらに、複数の状態がそれぞれ複数の特定の状態である場合に複数の処理が実行されてもよい。例えば、ルール情報は、検出モジュールにより検出された状態が特定の状態である場合に第1のTHENモジュールによる実行される第1の処理と、第2のTHENモジュールにより実行される第2の処理を示してもよい。
【0020】
IoTシステムを作りたい又は使いたいユーザは、自らルール情報を作成してもよいが、他のユーザが作成したルール情報を利用することもできるようになっている。実施形態では、ルール情報を作成したユーザはルール情報をサーバへアップロードする。ルール情報を利用したいユーザは、サーバにアクセスし、多数のルール情報の中から適切なルール情報を選択して、ダウンロードする。
【0021】
(ルール情報)
電子装置は、メモリに記憶されている有効なルール情報に含まれるIFモジュールIDで識別されるIFモジュールに対して、状態を検出し、検出結果をIFサイクル毎に電子装置へ送信することを要求する要求信号を送信する。IFモジュールは、電子装置からの要求信号に応じて状態を検出し、検出した状態を示す検出信号を電子装置に送信する。
【0022】
電子装置は、IFモジュールが検出した状態がいずれかのルール情報のIF部に記載の特定の状態であるか否かを判定する。電子装置は、検出した状態が特定の状態であると判定した場合、当該ルール情報のTHEN部に記載のTHENモジュールにTHEN部に記載の処理を実行させることを要求する要求信号を送信する。
【0023】
電子装置は、このように少なくとも1つのIFモジュールと少なくとも1つのTHENモジュールを連携させることにより便利な仕組み(IoTシステム)を提供する。なお、ルール情報は、仕組みを提供するためのモジュールと、それらの連携を定義するものであるので、料理におけるレシピと対応するので、本明細書では、ルール情報はレシピ情報とも称される。
【0024】
ルール情報を用いてIoTシステムを構築するためには、ルール情報の拡充、流通が必要である。クラウドサーバは、ルール公開サイトを備え、格納しているルール情報を示すルール一覧画面を公開することが考えられる。なお、ルール情報の中には、公開が許可されていないルール情報も存在する場合がある。その場合は、ルール公開サイトは公開が許可されたルール情報のみを公開する。
【0025】
ユーザは、ルール公開サイトにアクセスすると、公開されているルール一覧画面を見ることができる。ユーザは、ルール一覧画面の中からルール情報を選択して、選択したルール情報をエッジコンピュータにダウンロードすることができる。
【0026】
ユーザは、ルール情報に記載されているIFモジュールとTHENモジュールを用意すれば、IoTシステムを簡単に構成することができる。
【0027】
ルール情報はIoTシステムを構築したいユーザが作成するが、このユーザ以外にも、業として作成する作成者や、ルール情報を構成するIFモジュールとTHENモジュールの製造者等もルール情報を作成することが可能である。
【0028】
このように多数の人が多数のルール情報をクラウドサーバへアップロードすることが予想される。クラウドサーバが格納しているルール情報の数が多くなると、適切なルール情報の選択が困難となる。そのため、クラウドサーバは、多数のルール情報の中からユーザに推奨するルール情報の一覧画面を提供する。これにより、ユーザによるルール情報の選択が容易となる。
【0029】
クラウドサーバは、ルールを推奨するために、ルール情報に関する推奨度情報を算出する必要がある。推奨度情報は、ルール情報を推奨するために用いる指標に関する情報である。推奨度情報の値はルール情報が推奨される度合いに応じている。例えば、より推奨されるルール情報に関する推奨度情報の値は、より推奨されないルール情報に関する推奨度情報の値より大きい。推奨度情報は、単一の指標ではなく、複数の指標から算出してもよい。指標の例は、利用回数や評価等を含む。利用回数は、累計の利用回数と一定期間内の利用回数を含む。一定期間内の利用回数には直近の単位期間(例えば1カ月)の利用回数を含む。利用回数が多いルール情報や評価が高いルール情報はより推奨されるルール情報であると考えてもよい。
【0030】
クラウドサーバは、利用回数や評価に関する推奨度情報の値の順(例えば、大きい順)にルール情報が並んだランキング表をルール一覧画面としてユーザに提供してもよい。ランキング表は複数の頁からなることもあるが、複数の頁は推奨度情報の値の大きい順に表示される。これにより、ルール情報の数が多くても、ユーザは短時間にルール一覧画面から所望のルール情報を選択して、ダウンロードすることができる。
【0031】
(エッジコンピュータ)
図1は、本実施形態に係るIoTシステムの構成の一例を示す図であり、特にIoTシステム内のエッジコンピュータ6の詳細の一例を示す。本実施形態に係るIoTシステムは、クラウドサーバ2、エッジコンピュータ6、IFモジュール8A、及びTHENモジュール8Bを含む。クラウドサーバ2とエッジコンピュータ6はネットワーク18を介して接続される。エッジコンピュータ6とIFモジュール8Aは、ネットワーク18を介して接続される。エッジコンピュータ6とTHENモジュール8Bは、ネットワーク18を介して接続される。エッジコンピュータ6は、ルール情報を作成する電子装置の一例である。クラウドサーバの構成は
図7に示す。エッジコンピュータ6は、ユーザ毎の電子装置の一例である。
図1は単数のエッジコンピュータ6を示すが、異なるユーザ又は同一のユーザの複数のエッジコンピュータ6がネットワーク18に接続されていても良い。
【0032】
エッジコンピュータ6は、入力装置102、表示装置104、送信部106、受信部108、マイクロサービス10A,10B、アプリケーション20、ルールメモリ28、評価メモリ122及び履歴メモリ124を備える。入力装置は、例えばきーボード、マウスである。表示装置は、例えば液晶ディスプレイやプロジェクタである。入力装置102と表示装置104は、別々のデバイスから構成する代わりに、タッチ入力機能を有する単一のディスプレイから構成してもよい。
【0033】
エッジコンピュータ6の例は、パーソナルコンピュータ、スマートフォン、タブレット、サイネージ、ゲートウェイ、ルータ、カーナビゲーションシステム、家電機器(テレビ等)、複合機(コピー機)、クラウドサーバ等を含む。
【0034】
エッジコンピュータ6の設置場所は、トラック、列車、船舶、航空機等の輸送装置、また、病院、工場、アパートメント、個人住宅(音声合成、メール、SNS等)、農業施設、漁業施設、林業施設、学校、公園等のも施設を含む。
【0035】
ルール情報に基づきIoTシステムを構築するアプリケーション20は、ルール作成部112、ルール取得部114、評価管理部116、実行履歴管理部118及びルールエンジン26を含む。アプリケーション20は、ルール情報に基づきIoTシステムを構築するプラットフォームを実現するためのプログラムである。ルールエンジン26は、ルール管理部132、状態モニタ134及び処理起動部136を含む。
【0036】
ルール作成部112は、入力装置102から入力されたテキスト情報に基づいて、ルール情報を作成し、ルール情報を送信部106へ送る。
【0037】
【0038】
図2は、ルール情報のデータ構造の一例を示す。ルール情報は、複数の項目を含む。ルール情報の項目の例は、ルールID、ルール名、作成者ID、作成日時、IF-THEN部、ルール属性、編集可否フラグ、編集者ID等を含む。ルール情報の項目の例は、
図2の例に限定されない。例えばルール属性、編集可否フラグ、編集者ID等は省略される場合もある。
【0039】
ルールIDはルール情報毎のユニークな識別情報である。ルールIDは、作成時に自動的に決められるが、作成時に決定しなくても良い。作成者は、重複しない限り、ルールIDを自由に設定してもよい。ルール名は、ルールの内容、すなわちIoTシステムの内容を表すものである。ルール名の例は、これらに限定されないが、「高温時冷房運転」、「来客通知」、「音声ガイド」、「機械故障通知」、「心拍異常通知」等を含む。作成者IDはルール情報の作成者毎のユニークな識別情報である。作成日時は自動的に入力される。
【0040】
IF-THEN部はIFモジュール8AとTHENモジュール8Bの連携を示す。IF-THEN部の一例は
図3に示す。
【0041】
ルール属性は、ルール情報がどのようなサービスを提供するのかを示す情報である。ルール属性の一例は
図4に示す。
【0042】
ルール作成者は、自分が作成したルール(具体的にはIF-THEN部、ルール属性等)を他人が編集することを許可又は禁止できる。ルール作成者は、自分が作成したルールの編集を許可する場合、編集可否フラグを例えば“1”とし、禁止する場合、編集可否フラグを例えば“0”とする。なお、編集可否フラグの具体的な値はこれに限定されない。
【0043】
このシステムは、ユーザが編集可能なルール情報をダウンロードした場合、ユーザはルール情報を編集することができるようになっている。編集可能なルール情報をダウンロードした場合、ディスプレイにルール情報の編集可を示すアイコンが表示される。このアイコンがタッチされると、ルール情報が編集可能となる。
【0044】
ユーザが編集により作成したルール情報は、新規に作成したルール情報と同様にサーバにアップロードされる。編集により作成されたルールは、編集前のオリジナルルールとは異なるルールIDを有するルールとして登録される。その場合、作成者IDは不変であるが、編集者IDが付け加えられる。編集者IDは編集者毎のユニークな識別情報である。編集可の一つのオリジナルルールから編集により複数のルールが作成され、登録されることも可能である。
【0045】
図3は、IF-THEN部のデータ構造の一例を示す。IF-THEN部は作成者により入力される又は編集者により編集されるものであり、IF部とTHEN部からなる。
【0046】
IF部は、複数の項目を含む。IF部の項目の例は、これらに限定されないが、IFモジュール8Aの識別情報であるIFモジュールID、処理の実行開始のための条件、条件の詳細を定義するIFパラメータ、条件を調べる周期を示すIFサイクル等を含む。条件は、IFモジュール8Aにより検出された状態と比較される特定の状態である。IFモジュール8Aの例は、これらに限定されないが、温度センサ、湿度センサ、ドア、アルコール検知器、開閉センサ、ビーコン、人感センサ、水漏れセンサ、発電椅子、発電床、重さセンサ、複合多機能センサ(光、温度、湿度、加速度、ジャイロ等)、体温計、重量計、マイクロフォン、湿度計、カメラ等を含む。
【0047】
THEN部も、複数の項目を含む。THEN部の項目の例は、これらに限定されないが、THENモジュール8Bの識別情報であるTHENモジュールID、THENモジュール8Bが実行する処理、処理の詳細を定義するTHENパラメータ等を含む。THENモジュール8Bの例は、これらに限定されないが、コミュニケーションロボット、電源タップ、通知用腕時計、リストバンド、LED、電子機器のリモコン、メール送信、マップ表示、音声合成等を含む。
【0048】
IF部、THEN部の組み合わせの例は、これらに限定されないが、
「トレイに〇〇グラム以上の物体が置かれたら、〇〇秒間光ってお知らせする」、
「温度が〇〇度を超えたら、〇〇モードで空調機を動作させる」、
「工作機械の振動が〇〇秒以上停止したら、警告文を〇〇秒間表示して作業員に通知する」、
「〇〇人が〇〇に来たら、○○語で○○の音声案内を開始する」、
「心拍数が〇〇を超えたら、○○により本人に知らせる」等である。
【0049】
IF部とTHEN部の中の○○はIF部、THEN部の詳細を指定する数値や選択肢であり、IFパラメータとTHENパラメータにより定義される。
【0050】
図4は、ルール属性のデータ構造の一例を示す。ルール属性は、複数の項目を含む。ルール属性の項目の例は、これらに限定されないが、対象者ID、シーンID、テーマID、課題ID等を含む。ルール属性は、後述するルール推奨処理において利用され得る。ルール属性は、ルール情報の検索においても、キーワードとして利用され得る。
【0051】
対象者IDは、ルール情報に基づき実行される処理の対象であるユーザ、すなわちルール情報により提供されるサービスの対象者を示す識別情報である。対象者の例は、これらに限定されないが、従業員(ID=P1)、管理者(ID=P2)、教授、看護師等を含む。
【0052】
シーンIDは、ルール情報に基づき処理が実行されるシーン、すなわちルール情報により提供されるサービスが利用されるシーンを示す識別情報である。シーンの例は、これらに限定されないが、会議室、レストラン、荷物梱包場所、工事現場、オフィス(ID=S1)、工場(ID=S2)、教室内、エレベータ、家の敷地、自宅のリビング、食料品店、コーヒーショップ、公園、学校の敷地、洋服店(アパレルショップ)、出入国ゲート、観光地、コンビニエンスストア、博物館(ID=S3)美術館、鉄道の駅、オフィスビル、ホテル、高速道路、ホテルロビー、物流センター、テニスコート、空港、トイレ、バスの車内等を含む。
【0053】
テーマIDは、ルール情報に基づき実行される処理のテーマ、すなわちルール情報により提供されるサービスのテーマを示す識別情報である。テーマの例は、これらに限定されないが、セキュリティ(ID=T1)、効率化(ID=T3)、快適、安心、シェア拡大(ID=T2)、自動化、お金儲け/節約、娯楽(ID=T4)、健康(ID=T5)、便利等を含む。
【0054】
課題IDは、ルール情報に基づき実行される処理により解決される課題、すなわちルール情報により提供されるサービスにより解決される課題を示す識別情報である。課題の例は、これらに限定されないが、見える化(ID=O1)、機能付加、省エネルギ(ID=O2)、エコロジー(ID=O3)等を含む。ルール属性のデータ構造は
図4に示す例に限定されない。
【0055】
ルール情報の作成時に、作成者は、ルール属性を設定してもよい。作成者は、ルール情報の作成時ではなく、任意のタイミングでルール属性を設定又は変更してもよい。なお、ルール情報の検索にルールID、ルール名、IF-THEN部内のキーワード、作成者ID、編集者ID等を利用し、ルール属性の少なくとも一つの項目を利用しない場合は、作成者は、利用しないルール属性の項目を設定しなくてもよい。ルール属性の項目を入力する代わりに、ルール属性の項目の選択肢を表示し、その中から選択肢を選択することによりルール属性の項目を設定してもよい。なお、ルール属性の項目のうち限定する必要がない項目がある場合、当該項目には全て(all)のIDが設定される。
【0056】
なお、図示の便宜上、ルール情報を3枚のテーブルに分割して示したが、実際のルール情報は、
図3に示すIF-THEN部と
図4に示すルール属性が
図2に示すテーブルに組み込まれた1枚のテーブルでもよい。
【0057】
図1の説明に戻り、送信部106は、ルール情報をネットワーク18を介してクラウドサーバ2へ送信する。
【0058】
エッジコンピュータ6のユーザがルール情報を作成する際、ルール作成部112は、ルール作成のためのガイダンス画面を表示装置104に表示してもよい。ルール作成部112は、ガイダンス画面に従って作成者が入力装置102から入力又は選択した情報に基づきルール情報を作成する。ここでは、ガイダンス画面に従ってルール情報を作成する例を示したが、ガイダンス画面を利用せずに、ユーザがルール作成に必要な情報を直接に入力して、ルール情報を作成してもよい。
【0059】
なお、ルール情報を入力装置102からテキスト情報として入力する代わりに、この情報を音声信号として入力し、音声信号を音声認識してルール情報を入力してもよい。
【0060】
送信部106は、図示せずメモリを有する。送信部106は、ルール作成部112から送信されたルール情報をメモリに書き込む。送信部106は、ユーザからのルール情報の送信要求を受け取ると、メモリ内のルール情報をクラウドサーバ2へ送信してもよいし、一定数のルール情報がメモリに格納される毎に一定数のルール情報をクラウドサーバ2へ送信してもよいし、メモリに記憶されているルール情報を一定時間毎にクラウドサーバ2へ送信してもよい。ユーザは、入力装置102を用いてルール情報の送信要求を送信部106へ送ることができる。
【0061】
複数のエッジコンピュータ6からクラウドサーバ2に送信されたルール情報は、例えば
図2乃至
図4に示す形式で、クラウドサーバ2に記憶される。
【0062】
エッジコンピュータ6のユーザがクラウドサーバ2からルール情報をダウンロードする際、ルール取得部114は、ユーザが指定した推奨度情報についてのルール情報のランキング表の表示を要求する表示要求信号又はユーザが選択したルール情報のダウンロードを要求するダウンロード要求信号を送信部106に送る。送信部106は、表示要求信号又はダウンロード要求信号をネットワーク18を介してクラウドサーバ2のルール公開サイト(図示せず)へ送信する。
【0063】
ルール公開サイトは、指定した推奨度情報についてのルール情報のランキング表の表示を要求する表示要求信号を受信すると、複数のルール情報が推奨度情報の値の大きい順に並んだランキング情報をルール一覧画面情報としてエッジコンピュータ6に送信する。
【0064】
エッジコンピュータ6の受信部108は、受信したルール一覧画面情報をルール取得部114に送信する。ルール取得部114は、ルール一覧画面情報に基づいてランキング表を表示装置104で表示する。
【0065】
表示されているランキング表の中の少なくとも一つのルール情報をユーザが選択すると、ルール取得部114は、選択したルール情報のダウンロードを要求するダウンロード要求信号を送信部106に送る。送信部106は、ダウンロード要求信号をネットワーク18を介してルール公開サイトへ送信する。
【0066】
ルール公開サイトは、選択されたルール情報のダウンロード要求信号を受信すると、選択されたルール情報をエッジコンピュータ6に送信する。
【0067】
エッジコンピュータ6の受信部108は、受信したルール情報をルールエンジン26のルール管理部132に送る。ルール管理部132は、ルール情報をルールメモリ28に書き込む。ルールメモリ28はルール情報を記憶する。
【0068】
ルール情報のダウンロードは有料でもよいし、無料でもよい。有料の場合、例えば
図2に示すルール情報のデータ構造の項目に料金を追加し、ルール管理部132がルール情報をルールメモリ28に書き込むと、課金処理が行われるように構成してもよい。
【0069】
ルールエンジン26の状態モニタ134は、マイクロサービス10A、10Bに接続される。マイクロサービス10Aは、ネットワーク18を介してIFモジュール8Aに接続される。マイクロサービス10Bは、ネットワーク18を介してTHENモジュール8Bに接続される。なお、エッジコンピュータ6とクラウドサーバ2を接続するネットワークと、エッジコンピュータ6とIFモジュール8A、THENモジュール8Bを接続するネットワークとは
図1の例では同じネットワークとして記載しているが、異なるネットワークであっても良い。マイクロサービス10A、10Bは、オブジェクト指向のプログラミング言語を用いたプログラムで構成さされたIFモジュール8A、THENモジュール8Bの制御手段である。
【0070】
説明の便宜上、
図1は単数のIFモジュール8Aと単数のTHENモジュール8Bを示すが、複数のIFモジュール8Aと、それらに対応する複数のマイクロサービス10Aが設けられてもよいし、複数のTHENモジュール8Bと、それらに対応する複数のマイクロサービス10Bが設けられてもよい。なお、一つのサービスを提供するIoTシステムを構成する場合は、少なくとも一つのIFモジュール8Aと少なくとも一つのTHENモジュール8Bの2個のモジュールがあればよい。また、一つのモジュールが状態を検出し、同じモジュールが処理を実行する機能を有するならば、一つのモジュールがあればよい。例えばLED付きの照度センサを用いれば、照度が閾値以上の場合、LEDを点灯させるというルール情報に従うIoTシステムを実現できる。
【0071】
上述したように、IFモジュール8A、THENモジュール8Bは、デバイスに限らず、処理、コンテンツ又はデータを含む。従って、マイクロサービス10A、10Bは、Web頁間の遷移制御や特定Web頁に対応した画面操作などの制御を行うためのAI技術を用いたプログラムソフトも含む。同様に、マイクロサービス10A、10Bは、AI技術を用いて特定の映像コンテンツ内に登場する人物の人数を自動抽出するアプリケーションプログラムや、取得データを、例えば統計解析などを利用して解析するアプリケーションプログラムも含む。
【0072】
IFモジュール8A、THENモジュール8B、及びマイクロサービス10A、10Bとネットワーク18との接続は、無線でも有線でもよい。無線接続の例は、ブルートゥース(登録商標)、携帯電話回線、Wi-Fi(登録商標)等がある。有線接続の例は、有線LAN、USB接続等がある。
【0073】
IFモジュール8A、THENモジュール8Bは実空間上のモジュールと、サイバ空間上のモジュールを含む。実空間上のモジュールの例は、これらに限定されないが、センサ、ビーコン、家電、スマートフォンやタブレット等の携帯端末、HMD(head mounted display)、IoT機器及びGPS衛星を含む。実空間上のモジュールは、
図1に示すようにエッジコンピュータ6の外部に配置されるモジュールと、
図1には示さないがエッジコンピュータ6に内蔵されるモジュールを含む。内蔵されるモジュールの例は、これらに限定されないが、温度センサ、圧力センサ及びジャイロを含む。
【0074】
サイバ空間上のモジュールの例は、これらに限定されないが、WebサービスサーバやIoTサービスサーバにより実現される、証券(特定銘柄の株)の自動売買、特定商品の発注と受け取った商品代金の自動振り込み(課金処理)、映画や音楽の鑑賞券の購入申し込みや旅行等の予約申し込み等のユーザサービスを含む。
【0075】
ルールエンジン26の説明に戻り、状態モニタ134は、ルール情報のIF部に記載されているIFモジュール8Aに対応するマイクロサービス10Aに状態の検出を定期的に要求し、マイクロサービス10Aから検出信号を受信する。状態モニタ134は、マイクロサービス10Aから検出要求を受信すると、IFモジュール8Aが検出した状態がルールメモリ28に記憶されている有効なルール情報の中のいずれかのルール情報のIF部に記載の特定の状態と一致するか否かを判定し、判定結果を処理起動部136へ送る。
【0076】
状態モニタ134がIFモジュール8Aの検出状態が特定の状態と一致することを検出すると、処理起動部136は、当該ルール情報のTHEN部に記載の処理をTHENモジュール8Bに実行させるための実行指示信号を、THENモジュール8Bに対応するマイクロサービス10Bに送信する。マイクロサービス10Bは制御信号を受信すると、対応するTHENモジュール8Bに処理実行コマンドを送信する。制御信号は、実行履歴管理部118にも送信される。
【0077】
ルール情報の利用は有料でもよいし、無料でもよい。有料の場合、例えば
図2に示すルール情報のデータ構造の項目に料金を追加し、処理起動部136が起動処理を行うと、課金処理が行われてもよい。
【0078】
実行履歴管理部118は、処理起動部136から出力される制御信号に基づいて実行履歴情報を作成し、実行履歴情報を履歴メモリ124に書き込むとともに、実行履歴情報を送信部106へ送る。履歴メモリ124は実行履歴情報を記憶する。実行履歴は、THEN部に記載の処理の実行の履歴を示すものであり、ルール情報の利用の履歴を示すものでもある。実行履歴情報の例は、
図5を参照して後述する。
【0079】
送信部106は、実行履歴管理部118から送信された実行履歴情報をクラウドサーバ2に送信するまで記憶するメモリを含む。送信部106は、ユーザからの実行履歴情報の送信要求を受け取ると、メモリ内の実行履歴情報をネットワーク18を介してクラウドサーバ2へ送信してもよいし、一定数の実行履歴情報がメモリに格納される毎に一定数の実行履歴情報を送信してもよいし、メモリに記憶されている実行履歴情報を一定時間毎に送信してもよい。ユーザは、入力装置102を用いて実行履歴情報の送信要求を送信部106へ送ることができる。
【0080】
ユーザは、ルール情報の評価を示すテキスト情報を入力装置102から入力することができる。評価管理部116は、入力装置102から入力されたテキスト情報に基づいてルール情報の評価情報を作成する。評価情報は、コメント等の文字列、評価の数値等を含む。評価情報の作成時期には制限がない。ユーザは、評価情報の作成又は作成時期を入力装置102を用いてエッジコンピュータ6に指示することができる。
【0081】
評価管理部116は、評価情報の作成が指示されると、エッジコンピュータ6が記憶していて、ルールメモリ28に記憶されているルール情報と履歴メモリ124に記憶されている実行履歴に基づいて、過去に利用したルール情報(THEN部に記載の処理が実行されたルール情報)の一覧を表示装置104に表示させ、その一覧の中のルール情報の評価情報を入力することを許可するとともに、評価情報の入力を促す。すなわち、ルール情報の評価情報は、そのルール情報を実際に利用したユーザのみが入力可能であり、ルール情報を利用していない人が評価情報を入力することは不可である。これにより、評価情報の信憑性を高めることができる。
【0082】
なお、過去に使用したルール情報の一覧表示は必須ではなく、ユーザがルールID、ルール名称等によりルール情報を選択して、評価情報を入力してもよい。この場合も、評価管理部116は、実際に使用していないルール情報が選択され、評価情報が入力されることを許可しない。
【0083】
評価管理部116は、作成した評価情報を評価メモリ122に書き込むとともに、送信部106へ送る。評価情報の詳細は、
図6を参照して後述する。評価メモリは評価情報を記憶する。
【0084】
なお、評価情報も入力装置102からテキスト情報として入力する代わりに、これらの情報を音声信号として入力し、音声信号を音声認識して評価情報を入力してもよい。
【0085】
送信部106は、評価管理部116から送信された評価情報をクラウドサーバ2に送信するまで記憶するメモリを含む。送信部106は、ユーザからの評価情報の送信要求を受け取ると、メモリ内の評価情報をネットワーク18を介してクラウドサーバ2へ送信してもよいし、一定数の評価情報がメモリに格納される毎に一定数の評価情報を送信してもよいし、メモリに記憶されている評価情報を一定時間毎に送信してもよい。ユーザは、入力装置102を用いて評価情報の送信要求を送信部106へ送ることができる。
【0086】
ルールメモリ28、履歴メモリ124及び評価メモリ122は、
図1に示すように、3つのメモリから構成してもよいが、1つのメモリから構成してもよい。1つのメモリから構成する場合、1つのメモリの領域を3つに分割し、分割領域それぞれにルール情報、実行履歴情報及び評価情報を記憶してもよい。3つのメモリから構成する場合、独立した3つのメモリデバイスから構成してもよいし、1つのメモリデバイスとして使用される3つのメモリから構成してもよい。
【0087】
エッジコンピュータ6がルール情報を作成すると説明したが、エッジコンピュータ6ではなくクラウドサーバ2がルール情報を作成してもよい。さらに、エッジコンピュータ6でもクラウドサーバ2でもなく、ネットワーク18を介してエッジコンピュータ6と接続される他の電子装置(例えば、パーソナルコンピュータや別のエッジコンピュータ)がルール情報を作成し、当該ルール情報を管理する構成としてもよい。エッジコンピュータ6は、ルール情報を作成し、作成したルール情報をクラウドサーバ2へ送信する機能と、ルール情報をダウンロードしてルール情報を利用する機能を備える。しかし、他の電子装置は、ルール情報を作成する機能を備えるが、利用する機能を備えなくてもよい、すなわちルールエンジンを備えなくてもよい。他の電子装置でルール情報を作成する処理は、エッジコンピュータ6でルール情報を作成する処理と同様なので、この明細書では、エッジコンピュータ6でルール情報を作成する動作を説明する。
【0088】
上記の説明は、ルール作成者とルール利用者が別の人である場合を想定したが、ルール作成者とルール利用者が同一人でもよい。この場合、エッジコンピュータ6で作成されたルール情報はクラウドサーバ2に登録しなくてもよい。しかし、上記の説明と同様に、ルール情報がエッジコンピュータ6からクラウドサーバ2に送信され、クラウドサーバ2に登録された後、クラウドサーバ2からエッジコンピュータ6にダウンロードされるようにしてもよい。
【0089】
ルールメモリ28に記憶されているルール情報は、原則自動的に利用されるが、ルールメモリ28に多数のルール情報が記憶されており、全てのルール情報を常時利用する必要が無い場合がある。例えば特定のルール情報は夜間は利用したくない場合がある。ルール管理部132は、入力装置102からのユーザの指示に基づき、ルールメモリ28に記憶されている多数のルール情報の中の利用するルール情報を有効なルール情報としてもよい。無効なルール情報は、利用されない。ユーザは、有効/無効の選択に限らず、有効とする場合、有効とする期間/時間帯等を指定することもできる。
図2に示すデータ構造のルール情報にルールの有効/無効、有効とする期間/時間帯等の欄を追加してもよい。
【0090】
図5は、実行履歴情報のデータ構造の一例を示す。実行履歴情報は、複数の項目を含む。実行履歴情報の項目の例は、これらに限られないが、実行日時、ルールID、ユーザ属性、利用デバイスID、利用位置ID等を含む。実行日時は、ルール情報の中のTHEN部が記載する処理の実行開始日時を示す。実行履歴情報の中の1行のデータが1回の処理の実行に対応する。
【0091】
ユーザ属性は、ルールを利用するユーザの属性を示すものであり、複数の項目からなる。ユーザ属性の項目の例は、これらに限定されないが、ユーザID、氏名、生年月日、性別、国籍、住所、職業等を含む。これらの項目は、エッジコンピュータ6におけるユーザ登録時に設定され得る。ユーザ属性は、後述するルール推奨処理において利用され得る。ユーザ属性は、ルール情報の検索においても、キーワードとして利用され得る。
【0092】
利用デバイスIDは、ルール情報に基づいて特定の処理を実行させるエッジコンピュータ6を識別するものであり、エッジコンピュータ6のログイン時に取得され得る。利用位置IDは、特定の処理を実行させるエッジコンピュータ6の位置を識別するものである。利用位置IDは、スマートフォンのようにエッジコンピュータ6がGPS機能を備えている場合は、GPS機能から得られる。GPS機能を備えていない場合は、利用位置IDは、エッジコンピュータ6の初期設定時に設定された設置場所情報から得られる。
図5に示す実行履歴情報は一つのエッジコンピュータ6が作成するので、ユーザID(ユーザ属性も)、利用デバイスIDはそれぞれ同じユーザ、同じ利用デバイスを示す。利用デバイスIDと利用位置IDも、後述するルール推奨処理において利用され得るし、ルール情報の検索においても、キーワードとして利用され得る。
【0093】
多数のエッジコンピュータ6からクラウドサーバ2に多数の実行履歴情報が送信されると、異なるユーザID、異なる利用デバイスIDの多数の実行履歴情報がクラウドサーバ2のサーバメモリ38に蓄積される。ユーザ属性と利用デバイスIDと利用位置IDは、クラウドサーバ2がランキング表を表示する際、ユーザにより指定されると、指定された項目に基づいて絞り込まれたランキング表の表示が可能となる。あるいは、ユーザがルール公開サイトが持っているルール情報を検索したい時に、ユーザ属性と利用デバイスIDと利用位置IDを検索キーワードとして使用し得る。
【0094】
ユーザは、自分が利用したルール情報のコメント、評価を入力することができる。コメント、評価はルール情報全体に関するルールコメント、ルール評価でも良いし、IFモジュール8Aに関するIFモジュールコメント、IF評価でもよいし、THENモジュール8Bに関するTHENモジュールコメント、TNENモジュール評価でもよい。ルールコメントの一例は、「このルールは○○という課題に対する良い解決策を実現している」である。IFモジュールコメントの例は、「このIFモジュールは精度が高い」である。THENモジュールコメントの例は、「このTHENモジュールは寿命が長い」である。評価は数値であり、例えば最大値が5.0で、0.1単位で設定可能である。数値は、評価が高い程、大きい。なお、コメントと評価のいずれか一方の入力を省略してもよい。
【0095】
評価管理部116は、
図6に示すデータ構造の評価情報を作成する。評価情報は、複数の項目からなる。評価情報の項目は、これらに限定されないが、一例として、ルールID、ユーザID、ルールコメント、ルール評価、IFモジュールコメント、IFモジュール評価、THENモジュールコメント、THENモジュール評価等を含む。コメントはテキストであり、評価は数値である。ルールコメント、ルール評価、IFモジュールコメント、IFモジュール評価、THENモジュールコメント、THENモジュール評価等は、入力装置102を介するユーザからの入力に基づいて評価管理部116が作成する。なお、ルール評価、IFモジュール評価及びTHENモジュール評価等はユーザが入力するのではなく、ルールコメント、IFモジュールコメント及びTHENモジュールコメントに含まれる文字をAIが解析して、評価を決定してもよい。
【0096】
図6に示す評価情報は、一つのエッジコンピュータ6が作成するので、ユーザIDは同じユーザを示す。評価情報の各項目は、後述するルール推奨処理において利用され得る。評価情報の各項目は、ルール情報の検索においても、キーワードとして利用され得る。
【0097】
評価管理部116は、評価メモリ122に記憶されている評価情報を送信部106を介してクラウドサーバ2へ送信する。評価管理部116は、ユーザから送信が指示されると、評価情報をクラウドサーバ2へ送信してもよいし、一定数の評価情報が評価メモリ122に格納される毎に一定数の評価情報をクラウドサーバ2へ送信してもよいし、評価メモリ122に記憶されている評価情報を一定時間毎にクラウドサーバ2へ送信してもよい。なお、同一ユーザであれば評価情報の入力は様々な機器を用いて行われ、クラウドサーバ2に当該評価情報が送信されてもよい。例えば、エッジコンピュータ6がスマートフォンであるとした場合、別機器(例えばパーソナルコンピュータ)を用いて入力された評価情報が、クラウドサーバ2に送信されてもよい。
【0098】
多数のエッジコンピュータ6からクラウドサーバ2に多数の評価情報が送信されると、同じルールに関する異なるユーザによる評価情報がクラウドサーバ2に蓄積される。ルール作成者は、自分が作成したルール情報の評価情報を閲覧することができるようになっている。
【0099】
(クラウドサーバ)
図7は、IoTシステム内のクラウドサーバ2の構成の一例を示す。
【0100】
クラウドサーバ2は、第1受信部202、ルール書き込み部204、履歴書き込み部206、評価書き込み部208、ランキング処理部210、サーバメモリ38、第2受信部232、要求判定部234、ルール選択部236、ルール一覧画面作成部238、送信部242を有する。
【0101】
サーバメモリ38は、ルールメモリ222、履歴メモリ224、評価メモリ226、ランキングメモリ228を有する。
【0102】
ルールメモリ222は、ルール情報を記憶する。履歴メモリ224は、実行履歴情報を記憶する。評価メモリ226は、評価情報を記憶する。ランキングメモリ228は、ランキング情報を記憶する。ランキング情報は、第1利用回数ランキング情報、第2利用回数ランキング情報、第3利用回数ランキング情報を含む。第1利用回数ランキング情報、第2利用回数ランキング情報、第3利用回数ランキング情報は後述する。第1受信部202は、クラウドサーバ2に接続可能な全てのエッジコンピュータ6からルール情報、実行履歴情報及び評価情報を受信する。
【0103】
クラウドサーバ2の動作は、ルール登録時の動作とルール配信時の動作を含む。ルール登録とは、全てのエッジコンピュータ6により作成され、エッジコンピュータ6からクラウドサーバ2に送信されたルール情報を受信し、ルールメモリ222に記憶させることを含む。エッジコンピュータ6ではなくクラウドサーバ2がルール情報を作成する場合、ルール登録は、クラウドサーバ2で作成したルール情報をルールメモリ222に書き込むことを含む。ルール登録は、エッジコンピュータ6からの指示により実行される。
【0104】
ルール書き込み部204は、第1受信部202で受信した全てのエッジコンピュータ6からのルール情報をルールメモリ222に書き込む。ルール書き込み部204は、ルール情報を受信すると、図示しない認証機関へルール情報を転送し、認証を依頼してもよい。認証機関は、IF部に記載の条件が成立した場合、THEN部に記載のTHENモジュールが処理を正しく実行できるか否かを判定する。ルール書き込み部204は、認証機関の認証が得られたルール情報をルールメモリ222に書き込んでもよい。
【0105】
履歴書き込み部206は、第1受信部202で受信した全てのエッジコンピュータ6からの実行履歴情報を履歴メモリ224に書き込む。評価書き込み部208は、第1受信部202で受信した全てのエッジコンピュータ6からの評価情報を評価メモリ226に書き込む。
【0106】
ランキング処理部210は、履歴メモリ224に記憶されている実行履歴情報内の実行日時情報をルール毎に集計し、ルール毎の利用回数を算出し、利用回数ランキング情報をランキングメモリ228に書き込む。ランキング処理部210は、評価メモリ226に記憶されている評価情報をルール毎に集計し、ルール毎の総合評価を算出し、総合評価ランキング情報をランキングメモリ228に書き込む。集計の一例は、平均値を算出することを含む。ランキング処理部210の詳細は後述する。
【0107】
ルールメモリ222、履歴メモリ224、評価メモリ226及びランキングメモリ228を1つのメモリから構成する場合、1つのメモリの領域を4つに分割し、分割領域それぞれにルール情報、実行履歴情報、評価情報及びランキング情報を記憶してもよい。しかし、ルールメモリ222、履歴メモリ224、評価メモリ226及びランキングメモリ228は4つのメモリから構成してもよい。4つのメモリから構成する場合、独立した4つのメモリから構成してもよい。ルールメモリ222、履歴メモリ224、評価メモリ226及びランキングメモリ228は、1つのメモリとして使用される2つ以上のメモリから構成してもよい。
【0108】
第2受信部232は、エッジコンピュータ6からの要求信号を受信する。要求信号は、ルール一覧画面の表示を要求する表示要求信号であるか又は選択したルール情報のダウンロードを要求するダウンロード要求信号である。ダウンロード要求信号は、ルール情報のダウンロードを要求する旨の情報とダウンロード対象のルール情報を特定する情報を有する。
【0109】
要求判定部234は、第2受信部232で受信した要求信号が、表示要求信号である場合は要求信号をルール一覧画面作成部238に送信し、ダウンロード要求信号である場合は要求信号をルール選択部236に送信する。
【0110】
ルール一覧画面作成部238は、要求判定部234から表示要求信号を受信すると、要求信号で指定された推奨度情報に基づくランキング情報をランキングメモリ228から読み出し、ランキング情報に基づくランキング表をルール一覧画面として作成し、ルール一覧画面情報を送信部242へ送る。すなわち、ランキング処理部210とルール一覧画面作成部238は連携して、推奨度情報に基づいて複数のルール情報の少なくとも1つのルール情報を表示する表示画面を生成する。そのため、ランキング処理部210とルール一覧画面作成部238は表示制御部と称されてもよい。なお、表示制御部はサーバメモリ38も含んでもよい。
【0111】
ルール選択部236は、要求判定部234からダウンロード要求信号を受信すると、ダウンロード対象のルール情報をルールメモリ222から読み出し、ルール情報を送信部242へ送る。
【0112】
送信部242は、要求信号の送信元であるエッジコンピュータ6へルール一覧画面情報又はルール情報を送信する。
【0113】
これにより、ルール一覧画面の表示を要求したエッジコンピュータ6の表示装置104にルール一覧画面が表示される。その後、ルール一覧画面の中の少なくとも一つのルール情報が選択されると、選択されたルール情報がエッジコンピュータ6にダウンロードされる。
【0114】
なお、エッジコンピュータ6の機能とクラウドサーバ2の機能の分担は、
図1と
図7に示した例に限定されない。
図1に示したエッジコンピュータ6の機能の少なくとも一部をクラウドサーバ2で実現してもよい。
図7に示したクラウドサーバ2の機能の少なくとも一部をエッジコンピュータ6で実現してもよい。さらに、両者の機能を含む単一の電子装置を設けてもよい。例えば、
図1におけるマイクロサービス10A,10B、アプリケーション20、ルールメモリ28、送信部106、受信部108、評価メモリ122、及び履歴メモリ124に相当する構成をクラウドサーバ2に実装してもよい。この場合、クラウドサーバ2側で、IFモジュール8Aが検出した状態がルールメモリ28に記憶されている有効なルール情報の中のいずれかのルール情報のIF部に記載の特定の状態と一致するか否かを判定し、一致した場合、当該ルール情報のTHEN部に記載の処理をTHENモジュール8Bに実行させるための実行指示信号を、THENモジュール8Bに対応するマイクロサービス10Bに送信する処理は行う。
【0115】
(ルール一覧表示)
ランキング処理部210はルール情報毎の推奨度情報を算出して、ランキングメモリ228に書き込む。ランキング処理部210は、複数のルール情報を推奨度情報に基づいてその値の大きい順に並べてランキング情報を作成する。
【0116】
ランキング処理部210は、集計タイミングになると、履歴メモリ224に記憶されている全てのエッジコンピュータ6からの実行履歴情報をルールID毎に集計して、ルール情報毎の累計の利用回数と一定期間内の利用回数を算出する。集計タイミングは、履歴メモリ224に実行履歴情報が書き込まれる毎でもよいし、一定期間毎でもよい。
【0117】
ランキング処理部210は、ルールID、累計の利用回数及び一定期間内の利用回数を対応付け、複数のルール情報を利用回数の多い順に並べて第1利用回数ランキング情報を算出し、第1利用回数ランキング情報をランキングメモリ228に書き込む。あるいは、集計タイミングは、ランキング情報が要求された時でもよい。すなわち、ランキング処理部210は、ランキング情報を予め算出し、ランキングメモリ228に書き込むことなく、要求された時にランキング情報を算出してもよい。
【0118】
図8は、第1利用回数ランキング情報の一例を示す。第1利用回数ランキング情報では、複数のルール情報が累計の利用回数の多い順に並べられているが、一定期間内の利用回数の多い順に並べられていてもよい。なお、ランキング処理部210は、ルールID、累計の利用回数及び一定期間内の利用回数を対応付けるだけで、複数のルール情報を利用回数の順に並べ直さなくてもよい。ルール一覧画面作成部238が一覧画面を作成する際に、ランキングメモリ228から読み出したランキング情報において複数のルール情報を利用回数の多い順に並べ直してから一覧画面を作成してもよい。
【0119】
利用回数に関する第1ルール一覧画面の表示要求がエッジコンピュータ6からクラウドサーバ2に送信されると、ルール一覧画面作成部238は、ランキングメモリ228から、例えば
図8に示す第1利用回数ランキング情報を読み出し、第1利用回数ランキング情報に基づき第1利用回数ランキング表信号を作成し、第1利用回数ランキング表信号をルール一覧画面信号としてエッジコンピュータ6に送信する。
【0120】
これにより、エッジコンピュータ6の表示装置104は、例えば
図9に示す第1利用回数ランキング表を表示する。第1利用回数ランキング表では、複数のルール情報(各ルール情報はルール名と利用回数からなる)が累計の利用回数の多い順に並べられているが、一定期間内の利用回数の多い順に並べられてもよい。累計の利用回数のランキング表を表示するか又は一定期間内の利用回数のランキング表を表示するかは、エッジコンピュータ6から送信される第1ルール一覧画面の表示要求で指定可能である。
【0121】
ランキング処理部210は、ルール情報毎の利用回数を算出するだけではなく、ユーザ毎の利用回数を算出してもよい。ユーザは、
図9に示す第1利用回数ランキング表からは全てのユーザについての利用回数が分かるが、特定のユーザについての利用回数は分からない。ユーザは、自分が提供したいサービスと似たようなサービスを提供しているユーザが多数回使用したルール情報を知ることができれば、ルール情報を簡単に又は迅速に選択することが可能となる。特定のユーザについての利用回数を算出するために、ランキング処理部210は、集計タイミングになると、履歴メモリ224に記憶されている実行履歴情報をルールIDとユーザIDの組み合わせ毎に集計して、ルールIDとユーザIDの組み合わせ毎の累計の利用回数と一定期間内の利用回数を算出する。
【0122】
ランキング処理部210は、ルールID、ユーザID、累計の利用回数及び一定期間内の利用回数を対応付ける第2利用回数ランキング情報を求め、第2利用回数ランキング情報をランキングメモリ228に書き込む。
【0123】
図10は、第2利用回数ランキング情報の一例を示す。エッジコンピュータ6は、第2利用回数ランキング情報に基づいて特定のユーザについての第2利用回数ランキング表を表示することができる。第2利用回数ランキング表は、
図9に示す第1利用回数ランキング表と略同じであるが、利用回数は特定のユーザについての利用回数である点が異なる。第2利用回数ランキング表中のルール情報の並び順は、累計の利用回数の多い順でも一定期間内の利用回数の多い順でもよい。どのユーザIDのユーザについて累計の利用回数のランキング表を表示するか又は一定期間内の利用回数のランキング表を表示するかは、エッジコンピュータ6から送信されるルール一覧画面の表示要求で指定可能である。
【0124】
さらに、ランキング処理部210は、ルール属性の項目(対象者、シーン、テーマ及び課題)毎の利用回数を算出してもよい。ルール作成者は、ルール情報がどのようなサービスを提供するかを示すルール属性を設定可能である。同じルール情報でも、ルール属性の項目が異なり、利用される状況が異なると、効果が異なることがある。IoTシステムにより提供したいサービスに適したルール情報を見つけるためには、ルール属性の項目を指定し、その項目についての利用回数が多いルール情報を見つけることが有用である。
【0125】
ルール属性の項目についての利用回数を算出するために、ランキング処理部210は、集計タイミングになると、履歴メモリ224に記憶されている実行履歴情報をルールIDとルール属性の各項目の組み合わせ毎に集計して、ルールIDとルール属性の各項目の組み合わせ毎の累計の利用回数と一定期間内の利用回数を算出する。ランキング処理部210は、第3利用回数ランキング情報を算出し、第3利用回数ランキング情報をランキングメモリ228に書き込む。第3利用回数ランキング情報は、ルールIDと累計の利用回数とが対応付けられた情報、ルール属性の各項目と累計の利用回数とが対応付けられた情報、ルールIDと一定期間内の利用回数とが対応付けられた情報、ルール属性の各項目と一定期間内の利用回数とが対応付けられた情報のいずれかを少なくとも含む。
【0126】
図11は、第3利用回数ランキング情報の一例を示す。なお、ルール属性の項目は、対象者、シーン、テーマ及び課題を全て含む必要は無く、これらのうちの少なくとも一つを含めばよい。
【0127】
エッジコンピュータ6は、
図11に示す第3利用回数ランキング情報に基づいて
図12に示す第3利用回数ランキング表を表示することができる。
図12に示す利用回数ランキング表では、ルール属性の項目としてシーンが選択され、複数のルール情報(各ルール情報はルール名、利用回数、ルール属性の他の項目からなる)が特定のシーンIDについての累計の利用回数の多い順に並べられているが、あるシーンについて一定期間内の利用回数の多い順に並べられてもよい。また、ルール属性の項目としてシーン以外の項目を選んでもよい。さらに、ルール属性の複数の項目を選択し、複数の項目の組み合わせについての利用回数を算出してもよい。ルール属性のどの項目(複数でもよい)のどのIDについて累計の利用回数のランキング表を表示するか又は一定期間内の利用回数のランキング表を表示するかは、エッジコンピュータ6から送信されるルール一覧画面の表示要求で指定可能である。
【0128】
図12に示す利用回数ランキング表の各ルール情報の表示領域において、対象者、テーマ又は課題がクリックされると、特定のシーンについての利用回数ランキング表は、クリックされた特定の対象者、テーマ又は課題についての利用回数ランキング表に変更される。
【0129】
図11に示す第3利用回数ランキング情報においても、
図10に示す第2利用回数ランキング情報のように、ユーザIDも含めて、ルールIDとユーザIDとルール属性の各項目の組み合わせ毎に利用回数を算出してもよい。
【0130】
ランキング処理部210が算出する推奨度情報の他の例は、評価に関する推奨度情報である。評価は、ルール評価、IFモジュール評価及びTHENモジュール評価を含む。
図6に示すように、ルール評価、IFモジュール評価及びTHENモジュール評価は評価情報に含まれる。
【0131】
ランキング処理部210は、集計タイミングになると、評価メモリ226に記憶されている評価情報のルール評価、IFモジュール評価及びTHENモジュール評価をルールID毎に集計して、ルール情報毎のルール評価集計値、IFモジュール評価集計値、THENモジュール評価集計値を算出する。集計値は、評価の平均値、評価の最大値と最小値のペア等を含む。集計タイミングは、評価メモリ226に評価情報が書き込まれる毎でもよいし、一定期間毎でもよい。
【0132】
ランキング処理部210は、ルールID、ルール評価集計値、IFモジュール評価集計値及びTHENモジュール評価集計値を対応付ける評価ランキング情報を算出し、評価ランキング情報をランキングメモリ228に書き込む。
図13は、評価ランキング情報の一例を示す。なお、評価集計値は、ルール評価集計値、IFモジュール評価集計値及びTHENモジュール評価集計値を全て含む必要は無く、これらのうちの少なくとも一つを含めばよい。
図13に示す評価ランキング情報では、ルールIDがルール評価集計値の大きい順に並べられているが、IFモジュール評価集計値又はTHENモジュール評価集計値の大きい順に並べられていてもよい。
【0133】
エッジコンピュータ6は、
図13に示す評価ランキング情報に基づいて、
図14に示すルール評価ランキング表を表示することができる。
図14に示すルール評価ランキング表では、複数のルール情報(各ルール情報は、ルール名、ルール評価集計値、IFモジュール評価集計値、THENモジュール評価集計値からなる)がルール評価集計値の大きい順に並べられているが、IFモジュール評価集計値又はTHENモジュール評価集計値の大きい順に並べられてもよい。ルール評価、IFモジュール評価及びTHENモジュール評価のいずれの大きい順のランキング表を表示するかは、エッジコンピュータ6から送信されるルール一覧画面の表示要求で指定可能である。
【0134】
図14に示すランキング表の各ルール情報の表示領域において、IFモジュール評価集計値又はTHENモジュール評価集計値がクリックされると、ルール評価ランキング表は、クリックされたIFモジュール評価集計値又はTHENモジュール評価集計値についてのランキング表に変更される。
【0135】
図13に示す評価ランキング情報においても、
図10に示す第2利用回数ランキング情報のように、ユーザIDも含めて、ルールIDとユーザIDと評価集計値の組み合わせ毎に利用回数を算出してもよい。
【0136】
なお、評価は評価情報に含まれるコメント(ルールコメント、IFモジュールコメント、THENモジュールコメント)を含んでもよい。この場合、ランキング処理部210は、形態素解析、構文解析、意味解析、文脈解析による自然言語処理を実行可能とされている。ランキング処理部210は、テキストからなるコメントを自然言語処理して、テキストをコメント内容を示すコメント値に変換する。ランキング処理部210は、コメント値をルールID毎に集計して、ルール情報のコメント集計値を算出する。ランキング処理部210は、ルールID、評価集計値及びコメント集計値を対応付ける第2評価ランキング情報を算出してもよい。
【0137】
上述の説明では、ランキング処理部210は特定の推奨度情報に関してルール情報を予め並べたランキング情報を算出し、ランキング情報をランキングメモリ228に書き込んでおき、エッジコンピュータ6からのルール一覧表示要求を受信すると、ランキングメモリ228からランキング情報を読み出している。しかし、ランキングメモリ228に記憶されているランキング情報において、ルールIDが推奨度情報の値の大きい順に並べられている必要は無い。ランキング処理部210は、ルールIDと推奨度情報とを対応付けただけのランキング情報をランキングメモリ228に書き込んでもよい。ルール一覧画面作成部238は、ランキングメモリ228から読み出したランキング情報において推奨度情報の値の大きい順にルールIDを並べ直してから一覧画面を作成してもよい。
【0138】
さらに、ランキング処理部210は、上記の情報の代わりに又は上記の情報に加えて、利用デバイスIDや利用位置IDとルールの各組み合わせについて累計の利用回数、一定期間内の利用回数又は評価集計値を算出してもよい。
【0139】
例えば
図8、
図10又は
図11に示す利用回数ランキング情報にルール作成者IDを追加してもよい。例えば
図8に示す第1利用回数ランキング情報に対してルール作成者IDが追加された場合、
図15に示す利用回数ランキング表が表示され得る。
図15に示す利用回数ランキング表は、
図9に示すランキング表に対して、各ルール情報の表示領域にルール作成者が表示されている点が異なる。
【0140】
図15に示すランキング表では、
図9に示すランキング表と同様に、ルール作成者が誰であるかに関わらず、利用回数の多い順にルール情報が並べられている。
図15に示すランキング表の各ルール情報の表示領域においてルール作成者がクリックされると、ランキング表は、例えば
図16に示すように、クリックされた特定の作成者が作成したルール情報についての利用回数ランキング表に変更される。そのため、利用回数の多いルール情報のルール作成者をクリックすることにより、利用回数の多いルール情報の作成者が作成したルール情報の利用回数ランキング表を表示することができる。利用回数の多いルール作成者が作成したルール情報を選択することは無難であると考えられるので、例えば
図16に示すように特定のルール作成者の作成したルール情報の利用回数ランキング表を表示することは、ルール情報の選択に有用である。
【0141】
なお、ルール作成者IDを
図13に示す評価ランキング情報に追加しても、同様な効果が得られる。
【0142】
また、ルール作成者IDではなく、IFモジュールIDとTHENモジュールIDをランキング情報に追加しても、同様な効果が得られる。例えば
図8に示す利用回数ランキング情報に対してIFモジュールIDとTHENモジュールIDが追加された場合、例えば
図17に示すルール評価ランキング表が表示される。
図17に示すランキング表は、
図14に示すルール評価ランキング表の各ルール情報のIFモジュール評価集計値がIFモジュールIDに、THENモジュール評価集計値がTHENモジュールIDに変更されている点が異なる。なお、IFモジュールIDとTHENモジュールIDをともにランキング情報に追加するのではなく、IFモジュールIDとTHENモジュールIDの一方のみを追加してもよい。
【0143】
図17に示すランキング表は、
図14に示すランキング表と同様に、IFモジュールやTHENモジュールが何であるかに関わらず、複数のルール情報は利用回数の多い順に並べられている。
図17に示すランキング表の各ルール情報の表示領域において、IFモジュールID又はTHENモジュールIDがクリックされると、ランキング表は、
図18に示すように、クリックされたIFモジュール又はTHENモジュールを使うルール情報に限られた利用回数ランキング表に変更される。そのため、利用回数の多いIFモジュール又はTHENモジュールを使うルール情報の利用回数ランキング表を表示することができる。利用回数の多いIFモジュール又はTHENモジュールを使うルール情報を選択することは無難であると考えられるので、
図18に示す利用回数ランキング表を表示することは、ルール情報の選択に有用である。
【0144】
IFモジュールIDとTHENモジュールIDを利用開始ランキング情報に追加するのではなく、評価ランキング情報に追加しても、同様な効果が得られる。
【0145】
以上説明したように、実施形態は、推奨度情報に基づいて最終的にユーザにお薦めするルール情報を提示する表示画面を生成する表示制御部を備える。表示制御部は、推奨度情報に基づいて最終的な表示画面を生成すればよく、表示画面とそれを生成する処理に何ら限定はない。最終的な表示画面は、上述した利用回数ランキング表、評価ランキング表に限らず、ユーザにお薦めするルール情報を表示するものであれば、その形態に何ら限定は無く、ランキング表は種々変形可能である。さらに、推奨度情報から表示画面を生成する処理も、上述したように、推奨度情報に基づくランキング情報をランキングメモリ228から読み出し、ランキング情報に基づくランキング表をルール一覧画面として作成する処理に限らず、推奨度情報からランキング表を直接求めてもよい。
【0146】
推奨度情報の変形例を説明する。
【0147】
上述の説明では、利用回数や評価に関する推奨度情報が用いられたが、作成日時に関する推奨度情報が用いられてもよい。すなわち、作成日時が新しい順に並べられたルール一覧画面を表示してもよい。この場合は、クラウドサーバ2にランキング処理部210、ランキングメモリ228を設けることは不要であり。ルール一覧画面作成部238はルールメモリ222から作成日時の新しい順にルール情報を読み出して、一覧画面を生成すればよい。
【0148】
また、エッジコンピュータ6は、所有しているIFモジュールのIDとTHENモジュールのIDを管理している。エッジコンピュータ6は、例えばルール一覧表示要求とともにこれらのIDをクラウドサーバ2へ送信してもよい。クラウドサーバ2は、ルールメモリ222が記憶しているルール情報の中からユーザが所有しているIFモジュールとTHENモジュールを使うルール情報を検索し、検索したルール情報からなるルール一覧画面を生成することができる。すなわち、ユーザが現在所有しているIFモジュールとTHENモジュールだけで利用できるルール情報をユーザへ推奨することができる。ユーザは新たにモジュールを購入することなく、IoTシステムを作成することができる。
【0149】
実行履歴情報として、実行日時や利用位置IDを含めた場合には、クラウドサーバ2は、これらを分析して、このルール情報は何月何日何時頃利用されることが多いこと又はこのルール情報は何処で利用されることが多いことを知ることができる。この知識をルール一覧作成に利用すると、より効率的なルール情報を推奨することができる。すなわち、クラウドサーバ2は、ルール一覧画面表示の要求信号の送信日時に利用されることが多いルール情報又はルール一覧画面表示の要求信号の送信場所で利用されることが多いルール情報を実行履歴情報に基づいて抽出することができる。あるいは、エッジコンピュータ6は、ルール一覧画面表示の要求信号の送信の際、利用日時又は利用場所を指定すると、クラウドサーバ2は、指定された日時又は指定された場所で利用されることが多いルール情報の一覧画面を作成することができる。
【0150】
ユーザは、エッジコンピュータ6のルール取得部114からルール情報の検索要求をルール公開サイトへ送信することもできる。検索要求は、ルール一覧画面の表示中に送信してもよいし、ルール一覧画面とは無関係に送信してもよい。
【0151】
(ルール作成)
図19はエッジコンピュータ12のルール作成部112によるルール作成処理の一例を示すフローチャートである。ここでは、エッジコンピュータ12はスマートフォンであるとする。
図20乃至
図22は、ルール作成時のエッジコンピュータ12の表示装置104の画面遷移の一例を示す。
【0152】
ルール作成部112は、ステップS104で、ルール作成メニューを表示装置104上で表示する。ルール作成メニューの一例を
図20(a)に示す。ルール作成メニューは、ルールID欄302、IFボタン306及びTHENボタン308を含む。ルールID欄302には、エッジコンピュータ12の識別番号である数10桁の英数字が入力される。識別番号は、自動的に発番されてもよい。
【0153】
ルール作成者がIFボタン306を選択すると、ルール作成部112は、ステップS106で、
図20(b)に示すIFモジュールの選択画面を表示し、IF部の設定処理を行う。選択画面は、IFモジュールのアイコンと名称のリストであり、リストは上下にスクロール可能である。IFモジュールは機能・種類毎にグループ化されていてもよい。名称の順番は「あいうえお」順でもよいし、使用回数の多い順でもよい。
【0154】
ルール作成者がいずれかのIFモジュールのアイコンを選択すると、ルール作成部112は、
図20(c)に示すIF部の条件設定画面を表示する。ここでは、IFモジュールとして「ボタン」が選択された例を説明する。条件設定画面は、条件の選択肢と「進む」ボタン312を含む。条件として「ボタンを押すと」が選択されると、IFパラメータの選択肢としてシングルクリック、ダブルクリック及びロングクリックがさらに表示される。IFパラメータが選択されると、図示していないが、IFサイクルの選択肢もさらに表示され、IFサイクルも設定される。
【0155】
ルール作成者が「進む」ボタン312を選択すると、ルール作成部112は、
図21(a)に示すIF部条件設定の終了画面を表示する。終了画面は、ルールID欄302、IFボタン306、THENボタン308及び選択されたIFモジュールのアイコン314を含む。
【0156】
例えば「温度が25度以上」と「湿度が80%以上」のような複数の条件を1つのルール情報に含めたい場合がある。この場合、ルール作成者は、終了画面でIFボタン306を選択する。IFボタン306が選択されると、上述のIF部の設定処理が再度実行され、複数の条件が1つのルール情報に設定される。なお、複数の条件はAND条件でもOR条件でもよい。IF部の設定処理が再度実行される場合、複数の条件がAND条件であるかOR条件であるかの選択肢も設定される。複数の条件がAND条件である場合、複数の条件の全てが満たされないと、THEN部に記載の処理が実行されない。複数の条件がOR条件である場合、複数の条件のいずれか一つでも満たされると、THEN部に記載の処理が実行される。
【0157】
ルール作成者が、IF部設定の終了画面でTHENボタン308を選択すると、ルール作成部112は、ステップS108で、
図21(b)に示すTHENモジュールの選択画面を表示し、THEN部の設定処理を行う。選択画面は、THENモジュールのアイコンと名称のリストであり、リストは上下にスクロール可能である。THENモジュールは機能・種類毎にグループ化されていてもよい。名称の順番は「あいうえお」順でもよいし、使用回数の多い順でもよい。
【0158】
ルール作成者がいずれかのTHENモジュールを選択すると、ルール作成部112は、
図21(c)に示すTHEN部の処理設定画面を表示する。ここでは、THENモジュールとしてLEDが選択された例を説明する。処理設定画面は、処理の選択肢と「進む」ボタン316を含む。処理として「光る」が選択されると、THENパラメータの選択肢として発光パターン、例えば「100ms毎に点滅」がさらに表示される。
【0159】
ルール作成者が「進む」ボタン316を選択すると、ルール作成部112は、
図22(a)に示すTHEN部の設定終了画面を表示する。設定終了画面は、ルールID欄302、IFボタン306、THENボタン308、IFモジュールのアイコン314、THENモジュールのアイコン318及び「進む」ボタン322を含む。
【0160】
条件の設定処理と同様に、例えば「振動によりユーザに通知」と「メールでユーザに通知」のような複数の処理を1つのルール情報に含めたい場合がある。この場合、ルール作成者は、終了画面でTHENボタン308を選択する。THENボタン308が選択されると、上述のTHEN部の設定処理が再度実行され、複数の処理が1つのルール情報に設定される。なお、複数の処理はAND処理でもOR処理でもよい。THEN部の設定処理が再度実行される場合、複数の処理がAND処理であるかOR処理であるかの選択肢も設定される。
【0161】
ルール作成者が、THEN部設定の終了画面で「進む」ボタン322を選択すると、ルール作成部112は、ステップS112で、
図22(b)に示すルール属性と編集可否フラグの設定画面を表示し、ルール属性と編集可否フラグの設定処理を行う。設定画面はルール属性の選択肢と編集可否フラグの選択肢を含む。
【0162】
これらの選択肢が選択されると、ルール作成部112は、
図22(c)に示す送信確認画面を表示する。送信確認画面は設定したルールの内容と送信ボタン326を含む。ユーザは、この画面でルール名を入力することができる。
【0163】
ルール作成者が送信ボタン326を選択すると、ルール作成部112は、ステップS114で、ルール情報を送信部106へ送る。送信部106は所定のタイミングでルール情報をクラウドサーバ2へ送信する。
【0164】
このようにクラウドサーバ2は、各エッジコンピュータ6から送信された多くのルール情報をルールメモリ222に記憶する。
【0165】
(ルールダウンロード)
ユーザはルールを利用する際、先ず、希望するルール情報をクラウドサーバ2からエッジコンピュータ6にダウンロードする。
図23は、ルール情報のダウンロードに関するエッジコンピュータ6とクラウドサーバ2の処理の流れの一例を示すシーケンスチャートである。
【0166】
エッジコンピュータ6では、ルール取得部114は、ステップS122で、クラウドサーバ2のルール配信サイトにアクセスし、ルール一覧画面の表示を要求する表示要求信号を送信部106を介してクラウドサーバ2へ送信する。表示要求信号は、どの推奨度情報に関するランキングを要求するかを指定する。
【0167】
クラウドサーバ2では、表示要求信号を受信すると、ルール一覧画面作成部238は、ステップS142で、指定された推奨度情報に関するランキング情報をランキングメモリ228から読み出し、読み出したランキング情報に基づいてルール一覧画面信号を生成し、ルール一覧画面信号を送信部242を介してエッジコンピュータ6に送信する。
【0168】
エッジコンピュータ6では、受信部108がルール一覧画面信号を受信すると、ルール取得部114は、ステップS124で、ルール一覧画面信号に基づいて
図9、
図12、
図14又は
図15に示すランキング表を表示装置104で表示する。
【0169】
ユーザは、ランキング表の中から希望するルール情報を選択する。ユーザは、場合によっては、画面をスクロールしてランキング表を見る。しかし、ランキング表からルール情報を選択できない場合、ユーザは表示されているランキング表を異なる種類のランキング表に変更することを要求することができる。ルール取得部114は、ユーザからの指示に基づいて、ステップS122を再度実行し、他の推奨度情報を指定する表示要求信号をクラウドサーバ2に送信してもよい。例えば利用回数ランキング表から評価ランキング表に変更する、またはその逆に変更することが可能である。さらに、同じ推奨度情報に関するランキング表でも、特定のユーザ、特定のルール作成者、特定のルール属性、特定のIFモジュール又はTHENモジュールについての絞り込んだランキング表に変更する場合も可能である。この場合も、ルール取得部114は、ユーザからの指示に基づいて、ステップS122を再度実行し、ランキング表を絞り込む要求信号をクラウドサーバ2に送信してもよい。
【0170】
ユーザがランキング表の中からルールを選択すると、ルール取得部114は、ステップS126で、選択されたルール情報のダウンロード要求信号を送信部106を介してクラウドサーバ2へ送信する。
【0171】
クラウドサーバ2では、ダウンロード要求信号を受信すると、ルール選択部236は、ステップS144で、ルールメモリ222から要求されたルール情報を読み出し、ルール情報を送信部242を介してエッジコンピュータ6に送信する。
【0172】
エッジコンピュータ6では、ルール情報を受信すると、ルール管理部132は、ステップS128で、ルール情報をルールメモリ28に書き込む。
【0173】
(ルール利用)
図24はエッジコンピュータ12のルールエンジン26がルールを利用する処理の一例を示すフローチャートである。ルール管理部132は、ステップS152で、ルールメモリ28に記憶されているルール情報を読み出し、読み出したルール情報を状態モニタ134と処理起動部136へ送る。ルール情報に有効/無効又は有効な期間が設定されている場合は、ルール管理部132は、現在有効なルール情報のみを読み出す。ここでは、複数のIFモジュール8AとTHENモジュール8Bが用意されているとする。複数のIFモジュール8Aにそれぞれ対応した複数のマイクロサービス10Aと、複数のTHENモジュール8Bにそれぞれ対応した複数のマイクロサービス10Bも用意されているとする。
【0174】
状態モニタ134は、ステップS154で、ルール管理部132から送信されたルール情報に規定されているIFモジュールIDに対応するマイクロサービス10AへIFモジュール8Aの状態をIFサイクルで規定の周期で検出させる状態検出要求信号を送信する。マイクロサービス10Aは対応するIFモジュール8Aへ状態検出要求信号を定期的に送信し、IFモジュール8Aに状態を検出させる。IFモジュール8Aは、要求信号に応じて状態を検出し、状態検出信号をマイクロサービス10Aへ送る。
【0175】
状態モニタ134は、ステップS156で、マイクロサービス10a~10iから送信されたIFモジュール8Aの状態検出信号を受信する。
【0176】
状態モニタ134は、ステップS158で、IFモジュール8Aにより検出された状態はいずれかのルール情報のIF部に記載の条件(IFパラメータも考慮)した条件)を満たしているか否かを判定する。状態モニタ134は、状態が条件を満たしていないと判定した場合、ステップS154の処理を再度実行する。
【0177】
状態モニタ134は、状態が条件を満たしていると判定した場合、当該ルール情報のルールIDへ送る。
【0178】
処理起動部136は、ルールIDを受信すると、ステップS160で、当該ルールIDのルール情報に規定されているTHENモジュールIDに対応するマイクロサービス10Bへルール情報に規定されている処理を実行させる制御信号を送信し、実行履歴管理部118にルールIDを送信する。マイクロサービス10Bは、ルール情報に規定されている処理を実行させるようにTHENモジュール8Bを駆動する。
【0179】
実行履歴管理部118は、ルールIDを受信すると、ステップS162で、実行履歴情報を作成し、実行履歴情報を履歴メモリ124に書き込む。
【0180】
実行履歴管理部118は、ステップS164で、実行履歴情報をクラウドサーバ2へ送信する。
【0181】
THENモジュール8Bが処理を実行した後の任意のタイミング(ステップS166)で、評価管理部116は、ルールのコメント・評価の入力画面を表示する。ユーザは、画面に従って、利用したルールのコメント・評価を入力する。これにより、評価情報が作成される。
【0182】
評価管理部116は、ステップS168で、評価情報をクラウドサーバ2へ送信する。
【0183】
なお、実行履歴情報の送信ステップS164と、評価情報の送信ステップS170の実行タイミングは、他のタイミングでもよい。
【0184】
なお、本発明は上記の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0185】
2…クラウドサーバ、6…エッジコンピュータ、8A…IFモジュール、8B…THENモジュール、10a,10B…マイクロサービス、18…ネットワーク、26…ルールエンジン、28…ルールメモリ、204…ルール書き込み部、206…履歴書き込み部、208…評価書き込み部、210…ランキング処理部、222…ルールメモリ、224…履歴メモリ、226…評価メモリ、228…ランキングメモリ、236…ルール選択部、238…ルール一覧画面作成部。