(57)【要約】【課題】  外部ネットワークとの通信機能を有さないセンサと接続される終端装置の運用開始までにかかる工数を削減することができるフロー管理サーバ等を提供する。【解決手段】  フロー管理サーバ２００は、外部ネットワークへの通信機能を有さない複数のセンサと接続可能な終端装置の動作を制御するフローを格納するフロー記憶部２０１と、複数のセンサの少なくとも１つによる終端装置への接続が検知された際に、接続された１つ以上のセンサの特定情報および終端装置のアーキテクチャの情報を受信し、受信する１つ以上のセンサの特定情報およびアーキテクチャの情報を基に、フロー記憶手段から１つ以上のセンサに対応するフローを取得し、取得したフローが複数である場合は複数のフローを結合させ、取得したフローまたは結合されたフローを終端装置に送信する制御部２０２とを備える。【選択図】      図６
2019168931.tif 000002
【特許請求の範囲】
【請求項１】
外部ネットワークへの通信機能を有さない複数のセンサと接続可能な終端装置の動作を制御するフローを格納するフロー記憶手段と、
前記複数のセンサの少なくとも１つによる前記終端装置への接続が検知された際に、接続された１つ以上の前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、受信する１つ以上の前記センサの情報および前記アーキテクチャの情報を基に、前記フロー記憶手段から１つ以上の前記センサに対応するフローを取得し、取得した前記フローが複数である場合は複数の前記フローを結合させ、取得したフローまたは結合されたフローを前記終端装置に送信する制御手段
とを備えるフロー管理サーバ。
【請求項２】
前記制御手段は、前記終端装置のアーキテクチャに依存するアプリケーションが前記フローに含まれている場合、前記アーキテクチャの情報を基に当該アプリケーションのソースコードを取得し、取得したソースコードのコンパイルを実行させ、コンパイル済みのアプリケーションを前記取得したフローまたは前記結合されたフローと共に、前記終端装置に送信する
請求項１に記載のフロー管理サーバ。
【請求項３】
フロー記憶手段は、使用頻度が閾値よりも高い前記アプリケーションのソースコードを格納し、
前記制御手段は、前記アプリケーションの前記使用頻度が閾値よりも高い場合は前記フロー記憶手段から前記ソースコードを取得し、前記アプリケーションの前記使用頻度が閾値よりも低い場合は外部のリポジトリから、ネットワークを介して前記ソースコードを取得する
請求項１または請求項２に記載のフロー管理サーバ。
【請求項４】
請求項１乃至３のいずれかに記載されるフロー管理サーバと、
外部のネットワークとの通信機能を有さない、対象領域を観測するための複数のセンサと、
前記複数のセンサと接続可能な終端装置
とを備えるフロー管理システムであって、
前記終端装置は、前記複数のセンサの少なくとも１つとの接続を検知したときに、自装置のアーキテクチャの情報および接続された１つ以上のセンサの特定情報を取得してネットワークを介して前記フロー管理サーバに送信し、前記フロー管理サーバから、自装置を制御するためのフローまたは複数の前記フローが結合されたフローと、前記フローまたは前記結合されたフローに含まれる自装置のアーキテクチャに依存するコンパイル済みのアプリケーションとを受信して自装置に設定し、設定後に前記複数のセンサから受信する前記対象領域の観測データを、ネットワークを介して外部の観測データ分析用サーバに送信する
フロー管理システム。
【請求項５】
外部ネットワークへの通信機能を有さない複数のセンサの少なくとも１つによる終端装置への接続が検知されたときに、接続された１つ以上の前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、
受信する１つ以上の前記センサの情報および前記アーキテクチャの情報を基に、前記終端装置の動作を制御するフローを格納するフロー記憶手段から１つ以上の前記センサに対応するフローを取得し、
取得した前記フローが複数である場合は複数の前記フローを結合させ、
取得したフローまたは結合されたフローを前記終端装置に送信する
ことを備えるフロー管理方法。
【請求項６】
前記終端装置のアーキテクチャに依存するアプリケーションが前記フローに含まれている場合、前記アーキテクチャの情報を基に当該アプリケーションのソースコードを取得し、取得したソースコードのコンパイルを実行させ、コンパイル済みのアプリケーションを前記取得したフローまたは前記結合されたフローと共に、前記終端装置に送信する
ことを更に備える請求項５に記載のフロー管理方法。
【請求項７】
前記終端装置が前記複数のセンサの少なくとも１つとの接続を検知したときに、前記終端装置のアーキテクチャの情報および接続された１つ以上のセンサの特定情報を取得してネットワークを介して前記フロー管理サーバに送信し、
前記フロー管理サーバから、前記終端装置を制御するためのフローまたは複数の前記フローが結合されたフローと、前記フローまたは前記結合されたフローに含まれる前記終端装置のアーキテクチャに依存するコンパイル済みのアプリケーションとを受信するとそれらを前記終端装置に設定し、
設定後に前記複数のセンサから受信する前記対象領域の観測データを、ネットワークを介して外部の観測データ分析用サーバに送信する
ことを更に備える請求項５または請求項６に記載のフロー管理方法。
【請求項８】
コンピュータに、
外部ネットワークへの通信機能を有さない複数のセンサの少なくとも１つによる終端装置への接続が検知されたときに、接続された１つ以上の前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、
受信する１つ以上の前記センサの情報および前記アーキテクチャの情報を基に、前記終端装置の動作を制御するフローを格納するフロー記憶手段から１つ以上の前記センサに対応するフローを取得し、
取得した前記フローが複数である場合は複数の前記フローを結合させ、
取得したフローまたは結合されたフローを前記終端装置に送信する
ことを実現させるためのフロー管理プログラム。
【請求項９】
前記終端装置のアーキテクチャに依存するアプリケーションが前記フローに含まれている場合、前記アーキテクチャの情報を基に当該アプリケーションのソースコードを取得し、取得したソースコードのコンパイルを実行させ、コンパイル済みのアプリケーションを前記取得したフローまたは前記結合されたフローと共に、前記終端装置に送信する
ことを更に備える請求項８に記載のフロー管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサに接続される終端装置を自動で管理するためのフロー管理サーバ等に関する。
【背景技術】
【０００２】
エッジゲートウェイ（以下、終端装置とも称呼する）とは、ＩｏＴ(Internet of Things)データ収集基盤装置のことを指し、情報を収集する装置をネットワーク接続可能とするためのゲートウェイである。ここで情報を収集する装置とは、監視対象エリアの環境情報を収集するための装置であるが単独では通信ネットワークに接続できない機器、例えば、監視カメラ、温度センサ、湿度センサ、気圧センサなど（以下、本願においては単に「センサ」と記載）を指す。
【０００３】
エッジゲートウェイは、多種多様なインターフェースを装備しているため、上記センサからのデータ収集が可能である。エッジゲートウェイは、更にクラウド（以下、本願においては、クラウドサービスプラットフォームからインターネット経由でコンピューティング、データベース、ストレージ、アプリケーションをはじめとした、さまざまなＩＴリソースをオンデマンドで利用することができるサービスを指す）などと連携することにより、新たなＩｏＴサービスを提供することができる。例えば、生産現場や倉庫などの現場に設置される各センサをエッジゲートウェイと接続することで、各センサが観測するデータをクラウド側で直ちに取得および分析することが可能となり、現場のリアルタイム監視および管理を可能とする。更に、エッジゲートウェイにプログラマブルな機能を付加し、エッジコンピューティングの機能を一部請け負うことも可能である。
【０００４】
実際にセンサからクラウドへデータを送信できるようにするためには、監視対象エリア（現場）において、各センサとエッジゲートウェイとを接続し、初期設定を行う必要がある。具体的には、エッジゲートウェイに、各センサからデータを取得し、取得したデータを加工（整形）し、さらにクラウドへの送信を行うプログラム(以下、本願においては「フロー」と記載)をインストールする必要がある。
【０００５】
尚、関連する技術として、特許文献１は、モバイルアプリケーションを自動で構築、コンパイルし、構成ファイルを生成する技術を開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１４−５１２６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながらフローには、使用するマシンのアーキテクチャ（ハードウェア論理構造）に依存するネイティブツール（そのアーキテクチャ内部でツール（アプリケーション）として使用することを前提として作られたソースコード）を使用するものがあるため、フローのみを配信しても動作しない場合がある。
【０００８】
さらに、複数のセンサが接続された場合、各センサに対応する複数のフローを結合して、エッジゲートウェイに配信する必要がある。
【０００９】
特許文献１の技術においては、この問題をエンジニアが遠隔地または現場にて対応する必要があるため、エッジゲートウェイの運用開始にかかる手間および工数が大きくなっていた。
【００１０】
本発明は、上述した課題に鑑みなされたものであり、外部ネットワークとの通信機能を有さないセンサと接続される終端装置（エッジゲートウェイ）の運用開始までにかかる工数を削減することが可能なフロー管理サーバ等を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記問題点を鑑みて、本発明の第１の観点であるフロー管理サーバは、
外部ネットワークへの通信機能を有さない複数のセンサと接続可能な終端装置の動作を制御するフローを格納するフロー記憶手段と、
前記複数のセンサの少なくとも１つによる前記終端装置への接続が検知された際に、接続された１つ以上の前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、受信する１つ以上の前記センサの情報および前記アーキテクチャの情報を基に、前記フロー記憶手段から１つ以上の前記センサに対応するフローを取得し、取得した前記フローが複数である場合は複数の前記フローを結合させ、取得したフローまたは結合されたフローを前記終端装置に送信する制御手段
とを備える。
【００１２】
本発明の第２の観点であるフロー管理システムは、
上記のフロー管理サーバと、
外部のネットワークとの通信機能を有さない、対象領域を観測するための複数のセンサと、
前記複数のセンサと接続可能な終端装置
とを備えるフロー管理システムであって、
前記終端装置は、前記複数のセンサの少なくとも１つとの接続を検知したときに、自装置のアーキテクチャの情報および接続された１つ以上のセンサの特定情報を取得してネットワークを介して前記フロー管理サーバに送信し、前記フロー管理サーバから、自装置を制御するためのフローまたは複数の前記フローが結合されたフローと、前記フローまたは前記結合されたフローに含まれる自装置のアーキテクチャに依存するコンパイル済みのアプリケーションとを受信して自装置に設定し、設定後に前記複数のセンサから受信する前記対象領域の観測データを、ネットワークを介して外部の観測データ分析用サーバに送信する。
【００１３】
本発明の第３の観点であるフロー管理方法は、
外部ネットワークへの通信機能を有さない複数のセンサの少なくとも１つによる終端装置への接続が検知されたときに、接続された１つ以上の前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、
受信する１つ以上の前記センサの情報および前記アーキテクチャの情報を基に、前記終端装置の動作を制御するフローを格納するフロー記憶手段から１つ以上の前記センサに対応するフローを取得し、
取得した前記フローが複数である場合は複数の前記フローを結合させ、
取得したフローまたは結合されたフローを前記終端装置に送信する
ことを備える。
【００１４】
本発明の第４の観点であるフロー管理プログラムは、
コンピュータに、
外部ネットワークへの通信機能を有さない複数のセンサの少なくとも１つによる終端装置への接続が検知されたときに、接続された１つ以上の前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、
受信する１つ以上の前記センサの情報および前記アーキテクチャの情報を基に、前記終端装置の動作を制御するフローを格納するフロー記憶手段から１つ以上の前記センサに対応するフローを取得し、
取得した前記フローが複数である場合は複数の前記フローを結合させ、
取得したフローまたは結合されたフローを前記終端装置に送信する
ことを実現させる。
【００１５】
尚、フロー管理プログラムは、非一時的なコンピュータ可読の記憶媒体に格納されていてもよい。
【発明の効果】
【００１６】
本発明によれば、外部ネットワークとの通信機能を有さないセンサと接続される終端装置の運用開始までにかかる工数を削減することが可能なフロー管理サーバ等を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態にかかるフロー管理システムの構成例を示すブロック図である。
【図２】フロー管理システムのフロー管理サーバの構成例を示す構成図である。
【図３】フロー管理サーバが備えるフロー記憶部に格納されるデータのデータリストの一例を示す図である。
【図４】フロー管理システムのエッジゲートウェイの構成例を示す構成図である。
【図５】フロー管理システムにおけるセンサ登録時の動作を示すフローチャートである。
【図６】本発明の第２の実施形態にかかるフロー管理サーバの構成例を示すブロック図である。
【図７】各実施形態において適用可能な情報処理装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
エッジゲートウェイは、工場や店舗などに多数設置されている通信ネットワークに接続できないセンサと、有線インターフェースまたは無線インターフェースを介して接続することでデータを取得し、クラウド連携により当該データが示す現在の状態または分析結果を可視化することができる。有線インターフェースとしては、例えば、RS-232C、RS-485、またはUSBがある。無線インターフェースとしては、例えば、920MHz無線、Wi-Fi（登録商標）、Bluetooth（登録商標）またはLTE（登録商標）がある。これにより、今まで把握出来なかった状況、例えば、カメラやセンサによる監視状況、工作機械の稼動状況を、エッジゲートウェイから取得したデータを基に可視化することができ、これを閲覧するオペレータが現場の状況をリアルタイムに現場の状況を把握および分析することができる。ひいては、リアルタイムの故障予知およびリモート管理などの様々な顧客サービスへ活用することができる。
【００１９】
エッジゲートウェイを介し、クラウド側から、遠隔にあるセンサ（通常複数個存在する）のプログラムの設定、更新を行うことはできる。しかし、センサがエッジゲートウェイを介し、実際にクラウドにデータを送信できるようにするためには、各センサからデータを取得し、取得したデータを加工（整形）し、さらに加工済みデータを分析用クラウド（サーバ）へ送信するためのフローを、エッジゲートウェイにインストールすることが必要である。この際、センサ毎にフローは異なることがあり、更にフローには、ネイティブツールが必要なものも有る。このネイティブツールは使用するエッジゲートウェイのアーキテクチャ（例えば、Ｘ８６アーキテクチャ、Ｘ６４アーキテクチャまたはＡＲＭアーキテクチャ）に依存する、即ち、アーキティチャ毎にネイティブツールのソースコードは異なる。さらに、１つのエッジゲートウェイに複数のセンサが接続された場合、各センサに対応するフローを自動的に結合し、更に各フローに必要なネイティブツールをコンパイルする必要がある。よって以下の実施形態においては、複数のセンサがエッジゲートウェイに接続されると、各センサに必要なフローを結合し、更にフローに必要なネイティブツールをコンパイラして、エッジゲートウェイに自動的に配信するシステムについて説明する。
【００２０】
以下、図面を参照して、本発明の各実施形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は本発明の実施形態における構成を概略的に表している。更に以下に記載される本発明の実施形態は一例であり、その本質を同一とする範囲において適宜変更可能である。
【００２１】
＜第１実施形態＞
本発明の第１実施形態に係るフロー管理システムは、エッジゲートウェイに、あるセンサが接続された際、このセンサに対応するフローをエッジゲートウェイに自動的に配信する。さらに複数のセンサが接続された場合であっても、フロー管理サーバが、複数のセンサの各々に対応するフローを自動的に結合して、エッジゲートウェイに配信する。以下、本実施形態について詳細に説明する。
【００２２】
（フロー管理システム）
図１に示すように、第１実施形態に係るフロー管理システム１００は、フロー管理サーバ１、エッジゲートウェイ２および複数のセンサ３ａ、３ｂおよび３ｃ（以下３ａ〜３ｃとも称呼する）を備える。センサ３ａ〜３ｃとエッジゲートウェイ２との間は有線通信または無線通信にて接続されており、エッジゲートウェイ２およびフロー管理サーバ１との間は、有線または無線のネットワーク４を介して接続されている。ネットワーク４には、例えばインターネット、イントラネットが含まれてもよい。
【００２３】
（フロー管理サーバ）
フロー管理サーバ１は、図２に示すように、送受信部１２、制御部１１、フロー結合部１３、コンパイル部１４およびフロー記憶部１５を備える。
【００２４】
フロー記憶部１５は、エッジゲートウェイ２に接続されているセンサ、またはこれから接続される可能性のあるセンサに対応するフローおよびこれに関連する情報を格納する。フロー記憶部１５は、例えば図３に示すように、センサ識別ＩＤ（IDentifier）、アーキテクチャ情報、フローおよびネイティブツール情報を項目とする表のデータを格納する。センサ識別ＩＤとは、接続するセンサをユニークに識別可能な識別子である。アーキテクチャ情報とは、エッジゲートウェイ２のアーキテクチャを示す情報であり、例えばＯＳ(Operating System)の種類およびＣＰＵ（Central Processing Unit）処理能力である。アーキテクチャ情報はネイティブツールのコンパイルの際に使用される。
【００２５】
フローとは、エッジゲートウェイ２がセンサ３ａ〜３ｃを実行させるためのプログラムである。フローはエッジゲートウェイのアーキテクチャには依存しない。フローは、複数のノードから成り、ノードとは１つのタスクを実行するためのプログラムである。例えば、フローは「データ取得」、「加工処理」および「クラウド送信」の３つのノードから構成される。「データ取得」は各センサから観測されたデータを取得する処理、「加工処理」は観測されたデータを整形する処理、「クラウド送信」は加工されたデータを、データ分析を実行するクラウド（サーバ）へ送信する処理を実行する。データ分析を実行するサーバはフロー管理サーバ１とは異なるサーバであってよく、エッジゲートウェイ２は、有線または無線の通信回線を介して、データ分析を実行するサーバとの間で当該データの送受信を行う。フロー管理サーバ１は、エッジゲートウェイ２に接続されるセンサ３ａ〜３ｃを想定し、これに対応するフローを予めフロー記憶部１５に格納しておく。フローは予めデプロイされて（本番環境に移行可能な状態で）フロー記憶部１５に保存されているものとする。
【００２６】
ネイティブツール情報とは、ネイティブツールのコンパイルに必要となる情報であり、例えば使用言語、コンパイラの種類またはＯＳＳ（Open Source Software）の種類である。ネイティブツールはネットワーク４を介して外部のＯＳＳライブラリから取得される。尚、よく使用されるネイティブツールは、ソースコードそのものをフロー記憶部１５に格納していてもよい。ネイティブツールは、エッジゲートウェイのアーキテクチャに依存するため、エッジゲートウェイの種類毎にコンパイラが必要となる。
【００２７】
送受信部１２は、ネットワーク４を介して、エッジゲートウェイや外部のＯＳＳライブラリ（リポジトリ）と、フローに関する情報を送受信するためのインターフェースである。フローに関する情報とは、例えば、フロー、フローに含まれるネイティブツール、結合されたフローおよびコンパイラされたネイティブツールである。この他、エッジゲートウェイの情報およびセンサの情報を含んでいても良い。
【００２８】
制御部１１は、エッジゲートウェイ２にセンサ３ａ〜３ｃが初期接続された際、エッジゲートウェイ２に対してセンサ３ａ〜３ｃに対応するフローの配信を行う。この準備として、制御部１１は、センサ３ａ〜３ｃに対応するフローを予めフロー記憶部１５に格納しておく。フローの各々は、ネイティブツールを含むこともあるため、制御部１１は各フローに対応するネイティブツールも取得し、フロー記憶部１５に格納しておいてもよい。制御部１１は、１つのエッジゲートウェイ２に対し複数のセンサ３ａ〜３ｃに対応する複数のフローを配信する場合、当該複数のフローを結合するようにフロー結合部１３に依頼する。更に制御部１１は、フロー（結合されたフローを含む）に含まれるネイティブツールをアーキテクチャ情報に対応させてコンパイルするようにコンパイル部１４に依頼する。
【００２９】
フロー結合部１３は、１つのエッジゲートウェイに複数のセンサが接続される場合に、当該複数のセンサのフローを結合して、結合フローを生成する。
【００３０】
コンパイル部１４は、フロー（結合フローを含む）に対応するネイティブツールのソースコードをフロー記憶部１５、またはネットワーク４を介して外部のＯＳＳリポジトリから取得する。コンパイル部１４は、当該ソースコードを、実行するエッジゲートウェイ２のアーキテクチャに対応するようにコンパイル(またはクロスコンパイル)する。
【００３１】
（エッジゲートウェイ）
エッジゲートウェイ２は、図４に示すように、制御部２１、送受信部２２、フロー実行部２３、フロー記憶部２４およびセンサインターフェース２５を備えている。センサインターフェース２５はセンサ３ａ〜３ｃと通信可能に接続する。
【００３２】
送受信部２２は、ネットワーク４を介して、フロー管理サーバ１とフローに関する情報を送受信するためのインターフェースである。
【００３３】
制御部２１は、センサとの初期接続時において、自装置のアーキテクチャ情報と、接続するセンサの情報とを、ネットワーク４を介して、フロー管理サーバ１０に送信する。その後制御部２１は、フロー管理サーバ１０からフロー（結合フローを含む）、およびフローにネイティブツールが含まれる場合はそのコンパイル済みソースコードを受信し、フロー実行部２３に実行を依頼する。
【００３４】
フロー実行部２３は、フローおよびコンパイル済みのネイティブツールのソースコードを取得すると、当該フローを実行する。
【００３５】
フロー記憶部２４は、フロー管理サーバ１０から受信する、フロー、およびネイティブツールが含まれる場合はそのコンパイル済みソースコードを記憶する。
【００３６】
センサインターフェース２５は、センサ３ａ〜３ｃと通信を行うための入出力インターフェースである。
【００３７】
（センサ）
複数のセンサ３ａ〜３ｃ（図１参照）は、センサインターフェース２５を介してエッジゲートウェイ２と通信可能に接続される。当該センサ３ａ〜３ｃは自らが外部と通信する機能を備えていないことを前提とする。センサの種類としては、例えば、温度センサ、湿度センサ、気圧センサ、加速度センサ、光電センサ、超音波センサなどがある。監視用のカメラもセンサに含めてよい。
【００３８】
（フロー管理システムの動作）
フロー管理システム１００の動作について説明する。フロー管理システム１００の動作には、大きく分けて「センサの初期登録時の動作」と「センサが取得した情報を取得する動作」とがある。後者の動作は、一般的な動作、即ちエッジゲートウェイを介して通信不可能なセンサと通信する動作であるため、説明を省略する。
【００３９】
以下、「センサの初期登録時の動作」について図５に示すフローチャートを参照して説明する。
【００４０】
ステップＳ１１０において、エッジゲートウェイ２にセンサ３ａ〜３ｃが接続される。
【００４１】
ステップＳ１２０において、エッジゲートウェイ２にセンサ３ａ〜３ｃが接続されたことを、センサインターフェース２５を介して制御部２１が検知すると、制御部２１は自装置（エッジゲートウェイ２）のアーキテクチャ情報を取得する。アーキテクチャ情報は、例えば自装置のＯＳから確認コマンドを介して取得される。
【００４２】
ステップＳ１３０において、制御部２１は、センサインターフェース２５を介して、接続されたセンサ３ａ〜３ｃのセンサ情報を取得する。センサ情報とは、例えば、センサを特定可能な識別子（識別ＩＤ）である。
【００４３】
ステップＳ１４０において、制御部２１は取得したアーキテクチャ情報およびセンサ情報を送受信部２２へ引き渡し、送受信部２２はアーキテクチャ情報およびセンサ情報を、ネットワーク４を介してフロー管理サーバ１０へ送信する。
【００４４】
ステップＳ１５０において、フロー管理サーバ１０の送受信部１２は、ネットワーク４を介して、アーキテクチャ情報およびセンサ情報を受信し、制御部１１へ引き渡す。
【００４５】
ステップＳ１６０において、制御部１１は、受信したアーキテクチャ情報およびセンサ情報を参照し、当該アーキテクチャ情報およびセンサ情報（センサ識別ＩＤ）に対応するフローおよびネイティブツール情報をフロー記憶部１５（図３参照）から取得する。
【００４６】
ステップＳ１７０において、制御部１１は、受信したセンサ情報の数分、データ（フローおよびネイティブツール情報）を取得したかを確認する。全てデータを取得していれば処理はステップＳ１８０へ進められる。全てのデータを取得しなければ処理はステップＳ１６０へ戻される。
【００４７】
ステップＳ１８０において、制御部１１は、受信したセンサ情報が複数であるかを確認する。複数である場合処理はステップＳ１９０へ進められる。単数である場合処理はステップＳ２１０へ進められる。
【００４８】
ステップＳ１９０において、制御部１１は、フロー結合部１３に、複数のフローを引渡し、結合を依頼する。ステップＳ２００において、当該依頼を受けたフロー結合部１３は、当該複数のフローを結合し、結合フローとして制御部１１に返す。
【００４９】
ステップＳ２１０において、制御部１１は、ネイティブツールのソースコードを取得する。当該ソースコードはフロー記憶部１５に格納されていてもよいし、ネットワーク４を介して外部のＯＳＳライブラリから取得しても良い。尚、使用頻度の高いソースコードはフロー記憶部１５に格納しておき、使用頻度の低いソースコードは外部のＯＳＳライブラリから取得するようにしても良い。制御部１１は、使用頻度を判断するために予め所定の閾値を設けておき、所定の閾値よりも高ければ使用頻度が高い、所定の閾値よりも低ければ使用頻度が低いと判断しても良い。使用頻度を計る閾値は複数存在してよく（例えば、高いほうの閾値と低いほうの閾値）、制御部１１は当該閾値をネイティブツールの利用履歴を考慮して適宜更新しても良い。
【００５０】
ステップＳ２２０において、制御部１１は、ステップＳ１４０において取得したアーキテクチャ情報と共に、ネイティブツールのソースコードのコンパイルをコンパイル部１４に依頼する。ステップＳ２３０において、当該依頼を受けたコンパイル部１４は、アーキテクチャ情報に対応するように、ネイティブツールのソースコードをコンパイルする。即ち、エッジゲートウェイ２のＯＳ環境でネイティブツールが実行可能なように準備する。
【００５１】
ステップＳ２４０において、制御部１１はフロー（結合フロー含む）とコンパイル済みのネイティブツールソースコードとを送受信部１２に引渡し、送受信部１２はフローとコンパイル済みのネイティブツールソースコードとを、ネットワーク４を介してエッジゲートウェイ２に送信する。
【００５２】
ステップＳ２５０において、エッジゲートウェイ２の送受信部２２は、ネットワーク４を介して、フローとコンパイル済みのネイティブツールソースコードとを受信する。
【００５３】
ステップＳ２６０において、制御部２１は、受信したネイティブツールのソースコードをエッジゲートウェイ２にインストールする。
【００５４】
ステップＳ２７０において、制御部２１は、受信したフローをフロー実行部２３に引き渡す。
【００５５】
ステップＳ２８０において、フロー実行部２３は引き渡されたフローを展開し、実行する。
【００５６】
ステップＳ２９０において、センサ３ａ〜３ｃの各々はフローに従い動作を実行する。例えば、図３に示すフローであると、センサから観測データを取得し、取得されたデータを加工し、クラウド側の分析サーバへ送信する動作を実行する。
【００５７】
以上で、センサの初期登録時の動作についての説明を終了する。
【００５８】
（第１実施形態の効果）
本発明の第１実施形態によると、エッジゲートウェイの運用開始にかかる工数を削減することが可能なフロー管理システム１００を提供することができる。具体的に、フロー管理システム１００は、少なくとも１つ以上のセンサをエッジゲートウェイに接続した時に、当該センサに対応したフローを自動で生成してエッジゲートウェイに配信し、直ちにフローを実行することができる。これはエッジゲートウェイ２にセンサ３ａ〜３ｃが接続された際に、フロー管理サーバ１０が、エッジゲートウェイ２から受信するアーキテクチャ情報およびセンサ情報を参照して対応するフローおよびネイティブツール情報を取得し、取得した複数のフローを結合し、結合フローに含まれるネイティブツールのソースコードを、アーキテクチャ情報を基にコンパイルし、この結合フローおよびコンパイル結果をエッジゲートウェイ２に配信するからである。
【００５９】
＜第２実施形態＞
本発明の第２実施形態にかかるフロー管理サーバ２００は、図６に示すように、フロー記憶部２０１と、制御部２０２とを備える。
【００６０】
フロー記憶部２０１は、外部ネットワークへの通信機能を有さない複数のセンサと接続可能な終端装置の動作を制御するフローを格納する。
【００６１】
制御部２０２は、複数のセンサの少なくとも１つによる終端装置への接続が検知された際に、接続された１つ以上のセンサの特定情報および終端装置のアーキテクチャの情報を受信し、受信する１つ以上のセンサの特定情報およびアーキテクチャの情報を基に、フロー記憶部２０１から１つ以上のセンサに対応するフローを取得し、取得したフローが複数である場合は複数のフローを結合させ、取得したフローまたは結合されたフローを終端装置に送信する。
【００６２】
本発明の第２実施形態にかかるフロー管理サーバ２００によると、外部ネットワークとの通信機能を有さないセンサと接続される終端装置の運用開始までにかかる工数を削減することができる。この理由は、制御部２０２が、複数のセンサがエッジゲートウェイに接続されると、各センサに必要なフローをフロー記憶部２０１から取得し、フローが複数有る場合はこれらを結合して、エッジゲートウェイに自動的に配信するからである。
【００６３】
（情報処理装置）
上述した本発明の各実施形態において、図１等に示すフロー管理システムにおける各部（フロー管理サーバ１、エッジゲートウェイ３、センサ３ａ〜３ｃ）の構成要素の一部又は全部は、例えば図７に示すような情報処理装置５００とプログラムとの任意の組み合わせを用いて実現することも可能である。情報処理装置５００は、一例として、以下のような構成を含む。
【００６４】
・ＣＰＵ５０１
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５０２
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０３
・プログラム５０４および他のデータを格納する記憶装置５０５
・記録媒体５０６の読み書きを行うドライブ装置５０７
・通信ネットワーク５０９と接続する通信インターフェース５０８
・データの入出力を行う入出力インターフェース５１０
・各構成要素を接続するバス５１１
本願の各実施形態におけるフロー管理システムの各部の構成要素は、これらの機能を実現するプログラム５０４をＣＰＵ５０１が取得して実行することで実現される。フロー管理システムの各部の構成要素の機能を実現するプログラム５０４は、例えば、予め記憶装置５０５やＲＡＭ５０３に格納されており、必要に応じてＣＰＵ５０１が読み出す。なお、プログラム５０４は、通信ネットワーク５０９を介してＣＰＵ５０１に供給されてもよいし、予め記録媒体５０６に格納されており、ドライブ装置５０７が当該プログラムを読み出してＣＰＵ５０１に供給してもよい。ドライブ装置５０７は情報処理装置５００に外付けされていてもよい。
【００６５】
記憶装置５０５は、図２に示すフロー記憶部１５などを備えている。
【００６６】
各装置の実現方法には、様々な変形例がある。例えば、フロー管理システムの各部は、構成要素毎にそれぞれ別個の情報処理装置とプログラムとの任意の組み合わせにより実現されてもよい。また、フロー管理システムの各部が備える複数の構成要素が、一つの情報処理装置５００とプログラムとの任意の組み合わせにより実現されてもよい。
【００６７】
また、フロー管理システムの各部の構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによっても実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【００６８】
フロー管理システムの各部の構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【００６９】
フロー管理システムの各部の構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【００７０】
以上、本実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００７１】
１  フロー管理サーバ
２  エッジゲートウェイ
３  エッジゲートウェイ
３ａ  センサ
３ｂ  センサ
３ｃ  センサ
４  ネットワーク
１０  フロー管理サーバ
１１  制御部
１２  送受信部
１３  フロー結合部
１４  コンパイル部
１５  フロー記憶部
２１  制御部
２２  送受信部
２３  フロー実行部
２４  フロー記憶部
２５  センサインターフェース
１００  フロー管理システム
２００  フロー管理サーバ
２０１  フロー記憶部
２０２  制御部
５００  情報処理装置
５０１  ＣＰＵ
５０３  ＲＡＭ
５０４  プログラム
５０５  記憶装置
５０６  記録媒体
５０７  ドライブ装置
５０８  通信インターフェース
５０９  通信ネットワーク
５１０  入出力インターフェース
５１１  バス
【図１】
2019168931.tif 000003
【図２】
2019168931.tif 000004
【図３】
2019168931.tif 000005
【図４】
2019168931.tif 000006
【図５】
2019168931.tif 000007
【図６】
2019168931.tif 000008
【図７】
2019168931.tif 000009
【手続補正書】
【提出日】平成31年4月24日(2019.4.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部ネットワークへの通信機能を有さない複数のセンサと接続可能な終端装置の動作を制御するプログラムであるフローを格納するフロー記憶手段と、
前記複数のセンサの少なくとも１つによる前記終端装置への接続が検知された際に、
接続された前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、
前記センサの情報を基に、前記フロー記憶手段から前記センサに対応する前記フローを取得し、
取得した前記フローが前記終端装置のアーキテクチャに依存するネイティブツールを使用する場合、前記アーキテクチャの情報を基に、前記ネイティブツールのコンパイルを実行させ、
前記フローとコンパイル済みの前記ネイティブツールとを前記終端装置に送信する制御手段と、
を備えるフロー管理サーバ。
【請求項２】
前記制御手段は、前記アーキテクチャの情報を基に前記ネイティブツールのソースコードを取得し、取得した前記ソースコードのコンパイルを実行させる請求項１に記載のフロー管理サーバ。
【請求項３】
前記フロー記憶手段は、使用頻度が閾値よりも高い前記ネイティブツールのソースコードを格納し、
前記制御手段は、前記ネイティブツールの前記使用頻度が閾値よりも高い場合は前記フロー記憶手段から前記ソースコードを取得し、前記ネイティブツールの前記使用頻度が閾値よりも低い場合は外部のリポジトリから、ネットワークを介して前記ソースコードを取得する請求項１または請求項２に記載のフロー管理サーバ。
【請求項４】
請求項１乃至３のいずれかに記載されるフロー管理サーバと、
外部のネットワークとの通信機能を有さない、対象領域を観測するための複数のセンサと、
前記複数のセンサと接続可能な終端装置とを備えるフロー管理システムであって、
前記終端装置は、前記複数のセンサの少なくとも１つとの接続を検知したときに、自装置のアーキテクチャの情報および接続された１つ以上の前記センサの特定情報を取得してネットワークを介して前記フロー管理サーバに送信し、前記フロー管理サーバから、自装置を制御するためのフローと、コンパイル済みの前記ネイティブツールとを受信して自装置に設定し、設定後に前記センサから受信する前記対象領域の観測データを、ネットワークを介して外部の観測データ分析用サーバに送信するフロー管理システム。
【請求項５】
外部ネットワークへの通信機能を有さない複数のセンサの少なくとも１つによる終端装置への接続が検知されたときに、接続された前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、
前記センサの情報を基に、前記終端装置の動作を制御するプログラムであるフローを格納するフロー記憶手段から前記センサに対応するフローを取得し、前記フローが前記終端装置のアーキテクチャに依存するネイティブツールを使用する場合、前記アーキテクチャの情報を基に、前記ネイティブツールのコンパイルを実行させ、前記フローとコンパイル済みの前記ネイティブツールとを前記終端装置に送信するフロー管理方法。
【請求項６】
前記アーキテクチャの情報を基に前記ネイティブツールのソースコードを取得し、取得したソースコードのコンパイルを実行させる請求項５に記載のフロー管理方法。
【請求項７】
前記終端装置が対象領域を観測するための前記複数のセンサの少なくとも１つとの接続を検知したときに、前記終端装置のアーキテクチャの情報および接続された１つ以上のセンサの特定情報を取得してネットワークを介してフロー管理サーバに送信し、
前記フロー管理サーバから、前記終端装置を制御するためのフローを受信するとそれらを前記終端装置に設定し、
設定後に前記複数のセンサから受信する前記対象領域の観測データを、ネットワークを介して外部の観測データ分析用サーバに送信する請求項５または請求項６に記載のフロー管理方法。
【請求項８】
コンピュータに、
外部ネットワークへの通信機能を有さない複数のセンサの少なくとも１つによる終端装置への接続が検知されたときに、接続された前記センサの情報および前記終端装置のアーキテクチャの情報を受信し、
前記センサの情報を基に、前記終端装置の動作を制御するプログラムであるフローを格納するフロー記憶手段から前記センサに対応するフローを取得し、
前記フローが前記終端装置のアーキテクチャに依存するネイティブツールを使用する場合、前記アーキテクチャの情報を基に、前記ネイティブツールのコンパイルを実行させ、
前記フローとコンパイル済みの前記ネイティブツールとを前記終端装置に送信することを実現させるためのフロー管理プログラム。
【請求項９】
前記アーキテクチャの情報を基に前記ネイティブツールのソースコードを取得し、取得した前記ソースコードのコンパイルを実行させる請求項８に記載のフロー管理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
フローとは、エッジゲートウェイ２がセンサ３ａ〜３ｃを実行させるためのプログラムである。フローは、複数のノードから成り、ノードとは１つのタスクを実行するためのプログラムである。例えば、フローは「データ取得」、「加工処理」および「クラウド送信」の３つのノードから構成される。「データ取得」は各センサから観測されたデータを取得する処理、「加工処理」は観測されたデータを整形する処理、「クラウド送信」は加工されたデータを、データ分析を実行するクラウド（サーバ）へ送信する処理を実行する。データ分析を実行するサーバはフロー管理サーバ１とは異なるサーバであってよく、エッジゲートウェイ２は、有線または無線の通信回線を介して、データ分析を実行するサーバとの間で当該データの送受信を行う。フロー管理サーバ１は、エッジゲートウェイ２に接続されるセンサ３ａ〜３ｃを想定し、これに対応するフローを予めフロー記憶部１５に格納しておく。フローは予めデプロイされて（本番環境に移行可能な状態で）フロー記憶部１５に保存されているものとする。