特許第6490780号(P6490780)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社インテリジェンス・ワークスの特許一覧

特許6490780情報部品実行装置、及び情報部品実行方法
<>
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000002
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000003
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000004
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000005
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000006
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000007
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000008
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000009
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000010
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000011
  • 特許6490780-情報部品実行装置、及び情報部品実行方法 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6490780
(24)【登録日】2019年3月8日
(45)【発行日】2019年3月27日
(54)【発明の名称】情報部品実行装置、及び情報部品実行方法
(51)【国際特許分類】
   G06F 9/54 20060101AFI20190318BHJP
   G06F 9/455 20060101ALI20190318BHJP
【FI】
   G06F9/54 C
   G06F9/455 100
【請求項の数】4
【全頁数】15
(21)【出願番号】特願2017-213754(P2017-213754)
(22)【出願日】2017年11月6日
【審査請求日】2018年8月21日
【早期審査対象出願】
(73)【特許権者】
【識別番号】509068644
【氏名又は名称】株式会社インテリジェンス・ワークス
(74)【代理人】
【識別番号】110002055
【氏名又は名称】特許業務法人JAZY国際特許事務所
(72)【発明者】
【氏名】荒木 貴代美
(72)【発明者】
【氏名】矢島 正樹
【審査官】 北元 健太
(56)【参考文献】
【文献】 特開平6−324879(JP,A)
【文献】 特開2010−49630(JP,A)
【文献】 特開2009−37589(JP,A)
【文献】 特開2006−163612(JP,A)
【文献】 特表2005−531053(JP,A)
【文献】 特開2007−79957(JP,A)
【文献】 特開2000−200178(JP,A)
【文献】 特開2008−84182(JP,A)
【文献】 林信行,Scripter AppleScript専用エディター,月刊マックパワー,日本,株式会社アスキー,2001年 5月 1日,第12巻,第5号,p.132
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00 − 8/77
G06F 9/44 − 9/54
(57)【特許請求の範囲】
【請求項1】
スクリプトからなる複数の情報部品の解釈実行による協働により、神経系アルゴリズムに基づく一連のタスクを実行する情報部品実行装置であって、
前記情報部品を記憶する記憶部と、
前記情報部品をグループ毎に管理する情報部品管理部と、
トリガ待ちリストに基づいてトリガ情報を管理するもので、前記トリガ情報を受信すると、前記トリガ待ちリストを参照して、当該トリガ情報に対応する前記情報部品に対して実行要求を行うトリガ管理部と、
前記情報部品に対する起動要求があると、所定のスレッドを生成し、前記情報部品の実行から終了まで待機するスレッド管理部と、
前記情報部品のスクリプトを順に解釈実行する命令実行部と、を備え、
前記命令実行部による前記情報部品のスクリプトの解釈実行の過程で、擬似トリガ情報の発信がなされると、当該擬似トリガ情報は前記トリガ管理部に送信され、
前記トリガ管理部は、前記トリガ待ちリストを参照して、対応する他の情報部品に対する実行要求を前記スレッド管理部に対して行い、
前記トリガ情報、及び前記擬似トリガ情報は、制御対象と制御内容を特定するトリガ番号とトリガ値からなる
情報部品実行装置。
【請求項2】
前記命令実行部は、複数の情報部品に基づきマルチタスキングでの処理を実行する
請求項1に記載の情報部品実行装置。
【請求項3】
スクリプトからなる複数の情報部品の解釈実行による協働により、神経系アルゴリズムに基づく一連のタスクを実行する情報部品実行装置による方法であって、
情報部品管理部が、前記情報部品をグループ毎に管理する第1のステップと、
トリガ管理部が、トリガ待ちリストに基づいてトリガ情報を管理するもので、前記トリガ情報を受信すると、前記トリガ待ちリストを参照して、当該トリガ情報に対応する前記情報部品に対して実行要求を行う第2のステップと、
スレッド管理部が、前記情報部品に対する起動要求があると、所定のスレッドを生成し、前記情報部品の実行から終了まで待機する第3のステップと、
命令実行部が、前記情報部品のスクリプトを順に解釈実行する第4のステップと、を有し、
前記命令実行部による前記情報部品のスクリプトの解釈実行の過程で、擬似トリガ情報の発信がなされると、当該擬似トリガ情報は前記トリガ管理部に送信され、
前記第2のステップでは、トリガ管理部は、前記トリガ待ちリストを参照して、対応する他の情報部品に対する実行要求を前記スレッド管理部に対して行い、
前記トリガ情報、及び前記擬似トリガ情報は、制御対象と制御内容を特定するトリガ番号とトリガ値からなる
情報部品実行方法。
【請求項4】
前記第4のステップでは、命令実行部が、複数の情報部品に基づきマルチタスキングでの処理を実行する請求項3に記載の情報部品実行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スクリプトからなる情報部品が協働して神経系アルゴリズムに基づく処理を実行する情報部品実行装置、及び情報部品実行方法に関する。
【背景技術】
【0002】
従来、IoT(Internet of Things)は市場に拡がりを見せており、各種情報家電等がインターネットを介して連携することで、情報の授受をはじめ、遠隔操作等にも対応可能となっている。そのような拡がりの中、各種センサ信号に基づいてハードウェアの挙動を統括的に制御するようなシステムについても種々の提案がなされている。
【0003】
例えば、IoTによれば、室内照明の照明状態を各種センサ信号に基づいて統括的に制御することや、照明状態を遠隔制御することも可能となっている。
【0004】
この種の技術として、例えば特許文献1では、プロセッサにより、照明データから環境の照明状態を判定し、1又は複数の感知装置を使用して、環境内にいる1又は複数の個人の存在に対応する存在データを取得し、存在データから環境内に存在する個人の数を判定し、環境の照明状態並びに環境内にいる登録された個人及び1又は複数の追加的な個人の両方の存在に基づいて照明装置を起動するために、環境内に存在する照明装置により受信可能な起動信号を生成するシステム及び方法が開示されている。
【0005】
また、今日では、接客をはじめとする各種サービスもITシステムにより実現されている。例えば、店舗のエントランスのドアの開閉を検知するセンサからのセンサ信号に基づいて、店舗に設けられたディスプレイによる各種サービスに関わる案内表示を切り替えるようなシステムも、ITシステムによれば実現することが可能である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2017−50280号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記のようなITシステムを従来技術で構築する場合には、その用途(上記の例では、店舗案内等)に合わせた個別の仕様に基づいて、制御側のシステムを個別に構築する必要があり、汎用性や拡張性が十分ではなかった。
【0008】
しかるに、制御側システムで実行するスクリプトからなる情報部品を追加するだけで各種の用途に対応可能とすれば、制御側システムの汎用性や拡張性は向上されるが、そのような情報部品を協働させて処理を実行する技術は従来存在しない。
【0009】
また、複数の情報部品を追加するだけで、IoTの種々の用途に対応可能となれば、そのような情報部品自体の流通市場も構築され、国内のIoT化がより簡便化され、一気に浸透することが予見されるが、そのような技術は、従来存在していない。
【0010】
本発明は、このような課題に鑑みてなされたものであり、その目的とするところは、スクリプトからなる情報部品が協働して神経系アルゴリズムに基づく処理を実行する情報部品実行装置、及び情報部品実行方法を提供することにある。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明の第1の態様に係る情報部品実行装置は、スクリプトからなる複数の情報部品の解釈実行による協働により、神経系アルゴリズムに基づく一連のタスクを実行する情報部品実行装置であって、前記情報部品を記憶する記憶部と、前記情報部品をグループ毎に管理する情報部品管理部と、トリガ待ちリストに基づいてトリガ情報を管理するもので、前記トリガ情報を受信すると、前記トリガ待ちリストを参照して、当該トリガ情報に対応する前記情報部品に対して実行要求を行うトリガ管理部と、前記情報部品に対する起動要求があると、所定のスレッドを生成し、前記情報部品の実行から終了まで待機するスレッド管理部と、前記情報部品のスクリプトを順に解釈実行する命令実行部と、を備え、前記命令実行部による前記情報部品のスクリプトの解釈実行の過程で、擬似トリガ情報の発信がなされると、当該擬似トリガ情報は前記トリガ管理部に送信され、前記トリガ管理部は、前記トリガ待ちリストを参照して、対応する他の情報部品に対する実行要求を前記スレッド管理部に対して行い、前記トリガ情報、及び前記擬似トリガ情報は、制御対象と制御内容を特定するトリガ番号とトリガ値からなる。
【0012】
本発明の第2の態様に係る情報部品実行方法は、スクリプトからなる複数の情報部品の解釈実行による協働により、神経系アルゴリズムに基づく一連のタスクを実行する情報部品実行装置による方法であって、情報部品管理部が、前記情報部品をグループ毎に管理する第1のステップと、トリガ管理部が、トリガ待ちリストに基づいてトリガ情報を管理するもので、前記トリガ情報を受信すると、前記トリガ待ちリストを参照して、当該トリガ情報に対応する前記情報部品に対して実行要求を行う第2のステップと、スレッド管理部が、前記情報部品に対する起動要求があると、所定のスレッドを生成し、前記情報部品の実行から終了まで待機する第3のステップと、命令実行部が、前記情報部品のスクリプトを順に解釈実行する第4のステップと、を有し、前記命令実行部による前記情報部品のスクリプトの解釈実行の過程で、擬似トリガ情報の発信がなされると、当該擬似トリガ情報は前記トリガ管理部に送信され、前記第2のステップでは、トリガ管理部は、前記トリガ待ちリストを参照して、対応する他の情報部品に対する実行要求を前記スレッド管理部に対して行い、前記トリガ情報、及び前記擬似トリガ情報は、制御対象と制御内容を特定するトリガ番号とトリガ値からなる。
【発明の効果】
【0013】
本発明によれば、スクリプトからなる情報部品が協働して神経系アルゴリズムに基づく処理を実行する情報部品実行装置、及び情報部品実行方法を提供することができる。
【図面の簡単な説明】
【0014】
図1】本発明の一実施形態に係る情報部品実行装置の概念図である。
図2】同情報部品実行装置のハードウェア構成を示す図である。
図3】同情報部品実行装置の制御系の構成を示す概念図である。
図4】トリガ管理部の動作を説明する概念図である。
図5】トリガ待ちリストへのバッファリングの考え方を示す図である。
図6】トリガ待ちリストの一例を示す図である。
図7】情報部品のスクリプトの一例による命令実行について説明する図である。
図8】同命令実行の処理手順を示すフローチャートである。
図9】情報部品のスクリプトの他例による命令実行について説明する図である。
図10】同命令実行の処理手順を示すフローチャートである。
図11】複数の情報部品の協働による神経系アルゴリズムを示す概念図である。
【発明を実施するための形態】
【0015】
以下、図面を参照しつつ本発明の一実施形態について説明する。
【0016】
図1には、本発明の一実施形態に係る情報部品実行装置の概念図を示し説明する。
【0017】
同図に示されるように、情報部品実行装置は、スクリプトからなる複数の情報部品50が同期して、神経系アルゴリズムに基づく動作を実行することが可能となっている。各情報部品50では、そのスクリプトにおいて、動作実行の契機となるトリガ情報を定義している。詳細は後述するが、トリガ情報は、トリガ番号とトリガ値からなる。外部のアプリケーションプログラム等から、スクリプトで定義されたトリガ情報と同一のトリガ情報を受けると、それが契機となって、対応する情報部品のスクリプトの対応箇所から解釈実行され、他の情報部品、或いは他のアプリケーションプログラム等に対して、指令が送られる。このとき、情報部品同士の同期がとられながら、複数の情報部品が協働して、アプリケーションプログラムや外部機器等の動作を制御することができる。
【0018】
このように、1つのトリガ情報の入力が契機となって、情報部品の間でもトリガ情報のやりとりがなされ、複数の情報部品が協働して外部のアプリケーションプログラムや外部機器等の動作制御を行うことから、そのような処理手順を、本願では「神経系アルゴリズム」と定義している。
【0019】
ここで、トリガ情報は、前述したように、トリガ番号とトリガ値で構成されている。例えば、制御対象が照明器具である場合に、照明器具に対する点灯動作制御を実行する情報部品に対する契機は、トリガ番号「100」、トリガ値「1」とし、消灯動作制御を実行する情報部品に対する契機は、トリガ番号「100」、トリガ値「2」といった具合に、動作契機となるトリガ情報を各スクリプトで定義することが可能である。また、トリガ番号のほかにトリガ値を含めることで、トリガ情報のコンフリクトを未然防止することも本実施形態の特徴の1つとなっている。
【0020】
情報部品は、神経系アルゴリズムの中に適宜追加することが可能であり、その場合でも他の情報部品との同期を簡単にとることが可能である。例えば、IoTでは、様々な用途に応じて、外部機器の動作制御することが所望されるが、その場合でも、スクリプトで構成された情報部品を追加するだけで、当該用途に対応可能となる。例えば、室温に合わせて室内の空調機の動作制御を実行したい場合には、温度センサからのトリガ情報を契機として動作制御を実行する情報部品を追加するだけで実現可能となる。
【0021】
図2には、本発明の一実施形態に係る情報部品実行装置のハードウェア構成を示し説明する。同図に示されるように、情報部品実行装置1は、パーソナルコンピュータ等で構成されており、全体の制御を司るCPU(Central Processing Unit)2を備えている。CPU2は、ハードディスクドライブ(HDD;Hard Disc Drive)3、ROM(Read Only Memory)4、RAM(Random Access Memory)5、通信インタフェース(I/F)6、外部I/F7、表示デバイス8、及び操作デバイス9と、制御バス10を介して通信自在に接続されている。
【0022】
HDD3、ROM4、及びRAM5は、記憶部を構成しており、本実施形態の主要な要素となる情報部品50は、例えばHDD3に記憶される。通信I/F6は、外部のサーバ装置、各種センサユニット、及び制御対象の外部機器(例えば、照明ユニット)等と、インターネット等のネットワーク等を介して通信するためのインタフェースである。外部I/F7は、各種センサユニット等からのセンサ信号等の入力を受け付けるインタフェースである。表示デバイス8は、液晶ディスプレイ等からなる。操作デバイス9は、キーボードやマウス等からなる。尚、表示デバイス8と操作デバイス9とを、タッチパネルとして一体に成型してもよい。
【0023】
このような構成において、情報部品50は、例えばHDD3に記憶されている。CPU2は、情報部品50を読み出し、スクリプトで定義されたトリガ情報に基づいて、各情報部品50をトリガ待ちリストにエントリさせておく。トリガ待ちリストの生成は、例えば1つの特定の情報部品50のスクリプトの解釈実行により実現される。
【0024】
通信I/F6、又は外部I/F7よりトリガ情報が入力されると、CPU2は、トリガ待ちリストにエントリされた情報部品50の中で、当該トリガ情報を動作の契機とする情報部品50を特定し、そのスクリプトの実行により、外部機器又は他の情報部品に対する動作指令を出力する。これにより、外部機器が動作制御され、あるいは他の情報部品に対するトリガ情報の提供により当該情報部品が起動され、神経系アルゴリズムに基づく動作が実現されることになる。
【0025】
図3には、情報部品実行装置の制御系の構成を概念図で示し説明する。
【0026】
尚、図2で前述したCPU2は、プログラム実行により制御部20として機能し、HDD3、ROM4、RAM5等は、記憶部40として機能する。
【0027】
同図において、制御部20は、より詳細には、アプリケーション管理部(インタフェース管理部21aを含む)21、マイクロステージ管理部22、情報部品管理部23、スレッド管理部24、命令実行部25、変数管理部26、日付/時間管理部27、実行環境管理部28、トリガ管理部29として機能する。記憶部40には、複数の情報部品50が記憶されている。Windows(登録商標)のアプリケーションプログラム30、本システム専用のアプリケーションプログラム31、及び通常のアプリケーションプログラム32等からは、トリガ情報(トリガ番号、及びトリガ値)が入力される。情報部品50は、前述したようにスクリプトで構成されており、制御部20で読み込まれて、トリガ情報を契機として実行されることで、外部機器等を制御する。
【0028】
以下、制御部20を構成する各部の構成、及び作用を詳述する。
【0029】
1.アプリケーション管理部21
【0030】
(1)システム起動時の動作
アプリケーション管理部21は、既にインストールされているWindows(登録商標)アプリケーションプログラム30を探索し、内部リストに追加する。さらに、アプリケーション管理部21は、本装置専用のアプリケーションプログラム31を内部リストに追加する。そして、アプリケーション管理部21は、ユーザが登録した通常のアプリケーションプログラム32も内部リストに追加する。なお、例えば、センサユニットには、本装置専用のアプリケーションプログラム31が実装されてよい。また、制御対象の外部機器には本装置との情報のやり取りを可能とするインタフェース機能を備えた専用のアプリケーションプログラム31が実装されてよい。
【0031】
(2)情報部品とのリンク
表示デバイス8に表示された情報部品50上で、例えば操作デバイス9としてのマウス右ボタンプレスでメニューを表示させ、「インテリジェント情報部品の編集」を選ぶと、表示デバイス8に編集パネルが表示される。編集パネルの左隅にある「アプリケーションの起動」を追加すると、表示デバイス8にコマンド編集パネルが表示される。続いて、内部リストから起動するアプリケーションを選び、任意のハンドル名を入力する。これ以降、この情報部品50内では、当該アプリケーションはこの「ハンドル名」で識別される。
【0032】
(3)アプリケーションの実体化
アプリケーション管理部21は、アプリケーションを、情報部品50が動作して命令を見つけたときから、アプリケーションの強制終了命令を見つけたとき、あるいは当該情報部品50が終了した(スクリプトの最後の行に達したとき)間だけ実体化させる。このため、アプリケーション管理部21は、アプリケーションを、いくつでも起動でき、各々はハンドルによって別のものとして特定され、互いが無関係に動作する。
【0033】
(4)インタフェース管理部21a
インタフェース管理部21aによれば、本装置専用のインタフェースを備えているアプリケーションに対して、以下のコマンドを利用可能とする。
・インタフェースアプリデータ読込依頼命令
・インタフェースアプリ実行依頼命令
・インタフェースアプリ同期確認命令
・インタフェース青売り変数読込依頼命令
当該アプリケーションは、編集時に当該アプリケーションが利用するバイナリデータをコマンドに埋め込むことができる。そして、実行時には、「データ読込依頼命令」が処理されるタイミングで、その埋め込みデータがロードされる。また、「実行依頼命令」は再生や停止をはじめ、ウィンドウを隠したりすることができる。
【0034】
2.マイクロステージ管理部22
【0035】
マイクロステージ管理部22は、マイクロステージアプリケーション専用のものとして実装されている。マイクロステージ管理部22は、専用のアプリケーションの中でも特別な機能を備えている。このため、専用の命令と動的なデータ交換機能を有する。動的データ交換は内部変数「@変数」を介して行われる。
【0036】
3.情報部品管理部23
【0037】
情報部品管理部23は、情報部品50をグループ毎に管理し、情報部品50の実行と編集要求を処理する。
【0038】
(1)情報部品の種類
情報部品50には、イージー情報部品とインテリジェント情報部品がある。イージー情報部品は、単一のアプリケーションを起動するためのもので、所謂ランチャーである。これに対して、インテリジェント情報部品は、自由な命令群つまりプログラムを収めることができる。
【0039】
(2)情報部品の実行
情報部品50は、例えば、表示デバイス8に表示されている情報部品のアイコンを操作デバイス9であるマウスでクリックするか、インテリジェント情報部品内の実行コマンドによって起動する。但し、同じ情報部品は同時には単一個しか動作しない。
【0040】
(3)情報部品の取り出し/取り込み
情報部品50はファイルとして取り出すことができる。そして、取り出したファイルは取り込むことができる。取り出した情報部品は、他のユーザに渡すことができる。
【0041】
4.スレッド管理部24
【0042】
スレッド管理部24は、情報部品50に対して起動要求がなされると、所定のスレッドを生成し、情報部品50内のスクリプトを命令実行に委ねた後、タイマ割込みタイミングでスクリプトが終了するまで待機する。このように、複数の情報部品50は、スレッド管理部24により、マルチタスキングで実行可能となる。
【0043】
5.命令実行部25
【0044】
命令実行部25は、命令(スクリプト)を、上から順に一行ずつ解釈実行するインタープリタ形式で実行する。命令は、命令リストから選択し、現れたダイアログパネルに必要なパラメータを入力することで、生成される。更に命令内容は日本語で表記されるので、初心者が扱いやすいものになっている。
【0045】
(1)ラベル定義命令
処理の流れを変えるために、ラベル定義命令が用意されている。この命令を使って任意のラベル名を定義すると、分岐処理はこのラベル名を対象に行われる。
【0046】
(2)ラベルジャンプ命令
命令実行部25は、この命令を見つけると、命令実行は無条件にラベル行に実行位置を設定する。
【0047】
(3)復帰ジャンプ/復帰命令
命令実行部25は、この命令を見つけると、次の行を戻り先として記憶し、指定されたラベル行に実行位置を設定する。その先で復帰命令を見つけると、記憶していた行に実行位置を設定する。
【0048】
6.変数管理部26
【0049】
変数管理部26は、変数として、整数型、時数型、文字列型の3つを管理する。これらに加えて0から99までの番号で管理される特殊な「@変数」というものがある。これは型を持っておらず、代入や演算相手の型に自動的に合わせられる。
【0050】
(1)変数の操作
変数の演算には、様々なものが用意されている。すなわち、数値型の場合、代入/加算/減算/乗算/除算/剰余/論理積/論理和/排他的論理和などが用意されており、文字列型の場合、代入等が用意されており、@変数の場合、代入等が用意されている。
【0051】
(2)変数の比較
比較には、以下の比較方法が用意されている。すなわち、比較/否定/小なり/以下/大なり/以上などである。比較が成立した場合は、成立ラベルで指定した行に制御が移行する。一方、非成立の場合は、次の行に進む。
【0052】
7.日付/時間管理部27
【0053】
日付/時間管理部27は、様々な方法で日付や時を扱う。比較については、以下のような項目が用意されている。すなわち、日付+時間が一致/日付+時間が範囲内/日付+時間が以前/日付+時間が以降/日付が一致/日付が範囲内/日付が以前/日付が以降等である。これらは一例にすぎない。
【0054】
8.実行環境管理部28
【0055】
実行環境管理部28は、情報部品実行装置1が実現するプラットフォームを固有に識別する。プラットフォームは、ユーザに固有のIDを有する。コードには2種類あり、一つは、一般向けのコード帯が割り振られている。このコードを持つプラットフォーム上で作成された情報部品50を他のユーザが取り込もうとするとエラーで弾かれる。もう一つは代理店名コードで、このコードを持つプラットフォームで作られた情報部品50は誰でも利用することができる。自動起動の設定は、プラットフォームが起動するタイミングで自動的に動かす情報部品を1つだけ設定することができる。
【0056】
9.トリガ管理部29
【0057】
図4に示されるように、情報部品実行装置1が実現するプラットフォーム内部では、トリガ管理部29が、アプリケーション30〜32、及び情報部品50との間で、0から4095番までのトリガ番号を含むトリガ情報を、プロセス間通信を使って非同期にやり取りする。トリガ情報は、整数値(−32768〜+32767まで)を持つ。但し、本システムでは通信は1方向だけである。
【0058】
トリガ管理部29は、受け取ったトリガ情報を、順番を考慮しながら、トリガ待ちリストの最後尾に付け加える。つまり、図5に示されるようなFIFO型のバッファリングを行う。トリガ待ちリストの一例は、図6に示される。トリガ待ちリストは、特定の情報部品50のスクリプトに基づく命令実行により生成され、トリガ管理部29に登録され、待ち状態となる。トリガ管理部29は、トリガ待ちリストに基づいて、トリガ情報に基づく対応する情報部品の命令実行を管理することになる。
【0059】
図6に示されるように、トリガ待ちリストでは、リスト名(この場合はメイン処理というリスト名になる)で表わされる台帳に、1行ずつ、待ち受けるトリガ番号とトリガ値、その予定に対応する分岐先ラベル名、番号要変数名、及び値用変数名がリストされている。従って、このトリガ待ちリストを参照すれば、送られてきたトリガ番号、トリガ値に対応する分岐先を特定して、分岐実行させることが可能となる。
【0060】
このように、情報部品実行装置1では、記憶部40にスクリプトからなる複数の情報部品50が記憶されており、情報部品管理部23により、当該情報部品50がグループ毎に管理されており、その実行等が管理されている。トリガ管理部29は、アプリケーション30〜32、及び情報部品50との間でトリガ情報のやり取りを行う。特定の情報部品50の実行により、トリガ待ちリストが生成され、トリガ登録部29に登録される。
【0061】
トリガ管理部29は、アプリケーション30〜32等からのトリガ情報(トリガ番号及びトリガ値)を受信すると、トリガ待ちリストを参照して、対応する情報部品50に対する実行要求を、スレッド管理部24に対して行う。スレッド管理部24は、情報部品50に対する実行要求があると、情報部品50の命令実行に対して、リストで特定された分岐先に、命令実行位置を切り替えてから、動作を再開する。情報部品50の実行は、命令実行部25が、情報部品50のスクリプトの切り替えられた位置から再び順に解釈実行することで実現される。
【0062】
命令実行部25において、情報部品50のスクリプトの解釈事項の過程で、トリガ情報の発信がなされると、当該トリガ情報はトリガ管理部29に送信される。そして、トリガ管理部29では、上記同様にトリガ待ちリストを参照して、対応する情報部品50に対する実行要求を、スレッド管理部24に対して行う。
【0063】
このように、命令実行部25による一の情報部品50の実行の結果が、他の情報部品50の実行につながる、つまり複数の情報部品50の協働による神経系アルゴリズムに基づく処理が実現されることになる。そして、複数の情報部品50が命令実行部25により同時に実行されることで、所謂マルチタスキングが実現される。
【0064】
従って、本実施形態に係る情報部品実行装置1によれば、例えば、室内環境を制御する情報部品50が実行された結果、室内照明のオン/オフを制御する情報部品50、室内空調機のオン/オフを制御する情報部品50等を同時に実行することで、室内環境を統括的に制御することも可能となる。
【0065】
次に、図7には情報部品50に係るスクリプトの一例を示し説明する。
【0066】
図7に示されるスクリプトは、1クリックまたは1命令で日報処理を実施するものである。このスクリプトを1行ごとに説明すると、1行目は「ファイルの複写」に関するもので、“日報.docx”というファイルを複製する命令が記述されている。2行目は「アプリ実行」に関するもので、この例では、ワードを実行し、複製した“日報.docx”のファイルを開く命令が記述されている。3行目は、「アプリ終了待ち」に関するもので、この例では、ワードが実行終了されるまで待機する命令が記述されている。
【0067】
4行目は、「パス定義」に関するもので、<ファイル>という変数が定義されている。5行目は、「パス文字列の生成」に関するもので、日付をフォルダ名とする命令が記述されている。6行目は、「フォルダの作成」に関するものである。7行目は、「パス文字列の生成」に関するものである。そして、8行目は「ファイルの移動」に関するもので、日付をフォルダ名としたフォルダに、作業を終えた“日報.docx”のファイルを移動する命令が記述されている。
【0068】
以下、図8のフローチャートを参照して、図7の情報部品50の実行に係る処理手順を詳細に説明する。
【0069】
表示されている情報部品50のアイコンがクリックされるなどして、情報部品50が起動すると、命令実行部25が情報部品50のスクリプトを実行する。この例では命令実行により日報.docxのファイルが複製される(S1)。続いて、アプリケーションプログラム(この例では、ワード)が起動され(S2)、ユーザにより入力完了の指示(例えばワードの終了)等がなされるまで待機し(S3)、指示がなされると(S3をYes)、日付をフォルダ名とする新規フォルダを作成し(S4)、作業を終えたファイルを新規フォルダに移動させ(S5)、情報部品50に基づく一連の処理を終了する。
【0070】
従って、以上の処理によれば、所定の情報部品50を起動させるだけで、日報処理を簡易且つ迅速に行うことが可能となる。
【0071】
次に、図9には情報部品50に係るスクリプトの他の例を示し説明する。
【0072】
図9に示されるスクリプトは、この情報部品50が動作しているときは、外部の情報部品やアプリケーションプログラムがトリガ情報(トリガ番号500、トリガ値1)のトリガをかけると、営業終了時間でなくても、日報処理が自動的に始まるような命令が記述されたものである。
【0073】
スクリプトを1行ごとに説明すると、1行目は、「日付定義」に関するもので、営業時間を17:30:00と定義している。2行目は、「日時定義」に関するもので、現在時刻が変数として定義されている。3行目は、「トリガ待ち情報生成」に関するもので、時間間隔が変数として定義されている。4行目は、「トリガ待ち情報セット」に関するもので、トリガ番号として500、トリガ値として1がセットされている。5行目は、「LABEL」に関するものである。6行目は、「指定時間待ち」に関するもので、3000msecごとにトリガ番号500、トリガ値1を出力する命令が記述されている。
【0074】
7行目は、「トリガ待ち宣言」に関するもので、トリガ番号500、トリガ値1を受け取るまでは、待機する命令が記述されている。8行目は、「日時の設定」に関するもので、変数「現在」に現在時刻がセットされている。9行目は、日時の比較に関するもので、営業終了時刻と現在時刻とが比較され、営業終了時刻より現在時刻が後である場合には、日報処理(図7)を実行するように命令がなされている。10行目は、「ラベルジャンプ」に関するものであり、11行目は「LABEL」に関するものであり、日報処理実行と記述されている。そして、12行目は、「シード(情報部品の意)」に関するもので、日報処理(図7)の実行が非同期モードで定められている。
【0075】
以下、図10のフローチャートを参照して、図9の情報部品50の実行に係る処理手順を詳細に説明する。
【0076】
情報部品50は、スクリプトの中で定義したトリガ情報(トリガ番号、トリガ値)を受信するまで待機し(S11)、トリガ情報を受信すると(S11をYes)、現在時刻が営業時間より後であるかを判断し(S12)、現在時刻が営業時間より後でなければ、ステップS12に戻り、現在時刻が営業時間より後である場合には、図8で前述した日報処理を実行し(S13)、一連の処理を終了する。
【0077】
従って、以上の処理によれば、情報部品50を起動させるだけで、トリガ情報の受信タイミングで営業時間終了後であるか確認がなされ、営業時間の終了後であれば、前述した日報処理を自動的に行うことが可能となるので、日報の付け忘れ等を未然防止することが可能となる。
【0078】
次に、図11の概念を参照して、複数の情報部品50の協働による神経系アルゴリズムに基づく外部機器制御について詳細に説明する。
【0079】
同図に示されるようなウィンドウ100では、各情報部品が示されている。このウィンドウ100で、「開始」がクリックされると、第1情報部品50Aに対して起動要求がなされる。この起動要求がなされると、スレッド管理部24はスレッドを立ち上げ、命令実行部25は第1情報部品50Aのスクリプトを解釈実行する。この例では、第1情報部品50Aのスクリプトにおいて、第2情報部品50B、第3情報部品50Cの起動処理が定められているので、上記解釈実行により、第2情報部品50B、第3情報部品50Cに対して起動要求がなされることになる。
【0080】
第2情報部品50Bが、第1情報部品50Aからの起動要求を受けると、スレッド管理部24がスレッドを立ち上げ、命令実行部25が第2情報部品50Bのスクリプトを解釈実行する。この例では、第2情報部品50Bは、初期設定において、トリガ待ち条件が以下のように設定されている。
トリガ番号100、トリガ値1(ドアが開いたとき):処理1
トリガ番号100、トリガ値2(ドアが閉まった、又はマットが離れたとき):処理2
トリガ番号100、トリガ値3(マットが踏まれたとき):処理3
トリガ番号100、トリガ値4(ドアが閉まった、又はマットが踏まれたとき)
:処理4
従って、第2情報部品50Bは,上記トリガ情報(トリガ番号、トリガ値)を受信するまでは、処理の実行待ちとなる。トリガ管理部29は、トリガ待ちリストにおいて第2情報部品50Bのトリガ待ちを管理する。
【0081】
第3情報部品50Cが、第1情報部品50Aからの起動要求を受けると、スレッド管理部24がスレッドを立ち上げ、命令実行部25が第3情報部品50Cのスクリプトを解釈実行する。この例では、第2情報部品50Cは、初期設定において、トリガ待ち条件が以下のように設定されている。
トリガ番号200、トリガ値1(入室):処理5
トリガ番号200、トリガ値2(退室):処理6
従って、第3情報部品50Cは,上記トリガ情報(トリガ番号、トリガ値)を受信するまでは、処理の実行待ちとなる。トリガ管理部29は、トリガ待ちリストにおいて第3情報部品50Cのトリガ待ちを管理する。
【0082】
こうして、例えば店舗のエントランス等に設けられたセンサユニット70の第1センサ71(例えば、ドア開閉センサ)、第2センサ72(例えばマットセンサ)が、センサ信号を出力すると、アプリケーションプログラム60の実行により実現されるトリガ機能により、各センサ信号の状態、組み合わせに合致したトリガ情報(トリガ番号、トリガ値)をトリガ管理部29に出力する。トリガ管理部29はトリガ待ちリストを参照して、受信したトリガ情報が第2情報部品50Bに対応するものであると認識すると、スレッド管理部24に通知し、命令実行部25が第2情報部品50Bのスクリプトで定義された処理を実行する。そして、店舗への人の出入りの状態に基づいて第3情報部品50Cに対するトリガ情報(トリガ番号、トリガ値)を出力する。この情報部品間のトリガ情報を、外部ユニットからのトリガ情報と厳密に区別する場合には当該トリガ情報を「擬似トリガ情報」と称する。
【0083】
トリガ管理部29はトリガ待ちリストを参照して、受信した擬似トリガ情報が第3情報部品50Cに対応するものであると認識すると、スレッド管理部24に通知し、命令実行部25が第3情報部品50Cのスクリプトで定義された処理を実行する。そして、店舗への人の出入りの状態に基づいて、照明ユニット80に対する制御情報を出力する。照明ユニット80では、アプリケーションプログラム83の機能により、この制御情報を解読し、第1発光部81、第2発光部82…のオン/オフ状態等を制御する。以上の処理により、店舗への人の出入りの状態に基づく照明ユニット80のオン/オフ制御が、複数の情報部品により構築される神経系アルゴリズムにより実現されることになる。
【0084】
以上説明したように、本発明の一実施形態によれば、スクリプトからなる情報部品50に基づきタスクを実行する情報部品実行装置1であって、情報部品50を記憶する記憶部40と、情報部品50をグループ毎に管理する情報部品管理部23と、トリガ待ちリストに基づいてトリガ情報を管理するもので、トリガ情報を受信すると、トリガ待ちリストを参照して、当該トリガ情報に対応する情報部品50に対して実行要求を行うトリガ管理部29と、情報部品50に対する起動要求があると、所定のスレッドを生成し、情報部品50の実行から終了まで待機するスレッド管理部24と、情報部品50のスクリプトを順に解釈実行する命令実行部25とを備えた情報部品実行装置が提供される。従って、IoTの多様な用途に対しても、当該用途に合った情報部品を用意するだけで対応可能となるので、汎用性、拡張性にすぐれた環境を提供することができる。
【0085】
ここで、命令実行部25による情報部品50のスクリプトの解釈実行の過程で、トリガ情報の発信がなされると、トリガ情報はトリガ管理部29に送信され、トリガ管理部29は、トリガ待ちリストを参照して、対応する情報部品50に対する起動要求を前記スレッド管理部24に対して行うようにしてよい。従って、一の情報部品の実行が契機となって第2、第3の情報部品の起動をもたらし、それらを協働させることで、所望とする用途のタスクを実行させることが可能となる。
【0086】
さらに、命令実行部25は、複数の情報部品50に基づきマルチタスキングでの処理を実行するようにしてよい。従って、複数のタスクを並行して実行できる。
【0087】
また、トリガ情報は、トリガ番号とトリガ値からなり、トリガ情報は、外部のアプリケーションプログラム30〜32又は外部機器から入力されるようにしてよい。従って、例えば、室内環境の制御等については、照明のオン/オフを司る情報部品と、空調機のオン/オフを司る情報部品等を、同じトリガ番号としても、トリガ値を替えるだけで、他の用途のトリガ情報とコンフリクトすることなく制御可能となる。
【0088】
そして、命令実行部25による複数の情報部品50の解釈実行による協働により、神経系アルゴリズムに基づく一連の処理を実行するようにしてよい。従って、一つの情報部品の起動が契機となり、第2、第3の情報部品が連鎖的に起動され、全体として神経系を模したようなアルゴリズムでタスク実行することが可能となる。
【0089】
以上、本発明の一実施形態について説明したが、本発明はこれに限定されることなく、その趣旨を逸脱しない範囲で種々の改良・変更が可能である。
【0090】
例えば、複数の情報部品実行装置で管理されている情報部品を同期させ、それらを協働させて、マルチタスキングを実行することも可能である。
【符号の説明】
【0091】
1…情報部品実行装置、2…CPU、3…HDD、4…ROM、5…RAM、6…通信I/F、7…外部I/F、8…表示デバイス、9…操作デバイス、10…制御バス、20…制御部、21…アプリケーション管理部、21a…インタフェース管理部、22…マイクロステージ管理部、23…情報部品管理部、24…スレッド管理部、25…命令実行部、26…変数管理部、27…日付/時間管理部、28…実行環境管理部、29…トリガ管理部、30…Windows(登録商標)アプリケーションプログラム、31…専用のアプリケーションプログラム、32…通常のアプリケーションプログラム、40…記憶部、50…情報部品、60…アプリケーションプログラム。
【要約】
【課題】スクリプトからなる情報部品が有機的につながった神経系アルゴリズムを実行する情報部品実行装置、及び情報部品実行方法を提供する。
【解決手段】本発明は、スクリプトからなる情報部品50に基づきタスクを実行する情報部品実行装置であって、情報部品を記憶する記憶部40と、情報部品をグループ毎に管理する情報部品管理部23と、トリガ待ちリストに基づいてトリガ情報を管理するものでトリガ情報を受信するとトリガ待ちリストを参照して当該トリガ情報に対応する情報部品に対して起動要求を行うトリガ管理部29と、情報部品に対する起動要求があると所定のスレッドを生成し情報部品の実行から終了まで待機するスレッド管理部24と、情報部品のスクリプトを順に解釈実行する命令実行部25とを備えた情報部品実行装置である。
【選択図】図3
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11