(57)【要約】  分析システムは、それぞれ時刻及び値を含む複数の値データの時系列データと、過去の分析処理により出力されたデータを含む分析データとのうちの少なくとも一部を入力データとした分析処理を、分析対象範囲が関連付けられた１以上のオブジェクトの各々をノードとしたグラフ構造の分析チェーンに従い実行する。１以上のオブジェクトの各々は、ユーザ操作に従う処理定義である。分析処理において、分析システムは、いずれかの過去のオブジェクトと一致のオブジェクトに従う処理の実行と、分析対象範囲を構成する複数の範囲ブロックのうちいずれかの格納済データブロックに関連付いている範囲ブロック及び処理内容と一致の範囲ブロック及び処理内容についてオブジェクトに従う処理の実行と、いずれかの格納済データブロックと一致のデータブロックの格納とのうちの少なくとも１つをスキップする。
2017145386.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ時刻及び値を含む複数の値データの時系列データと、過去の分析処理により出力されたデータを含む分析データとのうちの少なくとも一部を入力データとした分析処理を実行する分析システムであって、
１以上のユーザインターフェース装置に接続された１以上のインターフェースを含むインターフェース部と、
複数のプログラムが格納された１以上のメモリを含む記憶部と、
前記インターフェース部及び前記記憶部に接続され前記複数のプログラムのうちの少なくとも１つを実行する１以上のプロセッサを含むプロセッサ部と
を有し、
前記プロセッサ部は、分析対象範囲が関連付けられた１以上のオブジェクトの各々をノードとしたグラフ構造の分析チェーンに従い分析処理を実行し、
前記１以上のオブジェクトの各々は、前記１以上のユーザインターフェース装置のうちのいずれかである対象ユーザインターフェース装置のユーザのユーザ操作に従う処理定義であり、
前記分析処理において、前記プロセッサ部は、重複排除処理を実行し、
前記重複排除処理は、下記の（Ａ）乃至（Ｃ）のうちの少なくとも１つである、
（Ａ）前記１以上のオブジェクトのうち、１以上の過去のオブジェクトのいずれかと一致のオブジェクトに従う処理を実行せず、前記１以上の過去のオブジェクトのいずれとも不一致のオブジェクトに従う処理を実行する、
（Ｂ）前記分析対象範囲を構成する複数の範囲ブロックのうち、いずれかの格納済データブロックに関連付いている範囲ブロック及び処理内容と一致の範囲ブロック及び処理内容について、前記分析対象範囲が関連付けられたオブジェクトに従う処理を実行せず、いずれの格納済データブロックに関連付いている範囲ブロック及び処理内容と不一致の範囲ブロック及び処理内容について、前記分析対象範囲が関連付けられたオブジェクトに従う処理を実行し、その処理の結果として出力されたデータブロックを格納する、
（Ｃ）オブジェクトに従う処理の実行結果として出力されたデータである出力データを構成する複数のデータブロックのうち、いずれかの格納済データブロックと一致のデータブロックを格納せず、いずれの格納済データブロックとも不一致のデータブロックを格納する、
分析システム。
【請求項２】
前記分析処理において、前記プロセッサ部は、
（Ａ）を実行し、
（Ａ）の後に、（Ｂ）又は（Ｃ）を実行する、
請求項１記載の分析システム。
【請求項３】
前記入力データが、それぞれが時刻又は時区間と値とを含む１以上のデータを含み、
前記プロセッサ部は、（Ｂ）において、
第１の条件が満たされている場合、前記分析対象範囲を第１の範囲分割方式で複数の範囲ブロックに分割し、
第２の条件が満たされている場合、前記分析対象範囲を第２の範囲分割方式で複数の範囲ブロックに分割し、
前記第１の範囲分割方式によれば、前記複数の範囲ブロックの各々のサイズは、所定サイズであり、
前記第２の範囲分割方式によれば、前記複数の範囲ブロックの各々のサイズは、その範囲ブロックが属する時刻又は時区間に対応した値に応じたサイズであり、
前記プロセッサ部は、（Ｃ）において、
前記第１の条件が満たされている場合、前記出力データを第１のデータ分割方式で複数のデータブロックに分割し、
前記第２の条件が満たされている場合、前記分析対象範囲を第２のデータ分割方式で複数のデータブロックに分割し、
前記第１のデータ分割方式によれば、前記複数のデータブロックの各々のサイズは、所定サイズであり、
前記第２のデータ分割方式によれば、前記複数のデータブロックの各々のサイズは、そのデータブロックに対応した時刻又は時区間に対応した値に応じたサイズである、
請求項２記載の分析システム。
【請求項４】
前記第１の条件は、前記入力データが、前記時系列データの少なくとも一部であり、
前記第２の条件は、前記入力データが、前記分析データの少なくとも一部である、
請求項３記載の分析システム。
【請求項５】
前記分析対象範囲は、時区間であり、
前記１以上のオブジェクトの各々に、分析対象範囲、入力ＩＤ、親ＩＤ、子ＩＤ、プログラム及びパラメータである複数のオブジェクト値のうちの少なくとも分析対象範囲、入力ＩＤ、親ＩＤ及び子ＩＤが関連付けられ、
入力ＩＤは、前記時系列データ及び前記分析データの少なくとも１つのうち前記入力データの少なくとも一部として入力される部分のＩＤであり、
親ＩＤは、オブジェクトのリンク元のオブジェクトのＩＤであり、
子ＩＤは、オブジェクトのリンク先のオブジェクトのＩＤであり、
（Ａ）において、前記一致のオブジェクトは、いずれかの過去のオブジェクトに関連付いている全てのオブジェクト値と同じオブジェクト値が関連付いているオブジェクトであり、
（Ｂ）において、前記一致の範囲ブロック及び処理内容は、いずれかの格納済データブロックに関連付いているタグと一致のタグに関連付いている範囲ブロック及び処理内容であり、
前記タグに、範囲ブロックを含む２以上のオブジェクト値が関連付けられており、
前記一致のタグは、前記タグに関連付いている全てのオブジェクト値と同じオブジェクト値が関連付いているタグである、
請求項４記載の分析システム。
【請求項６】
前記一致のオブジェクトに従う処理と前記一致の範囲ブロックについて処理とのうちの少なくとも１つが実行されないために出力の少なくとも一部が無い場合、前記出力の少なくとも一部が、前記一致のオブジェクト及び前記一致の範囲ブロックに関連付いている格納済データブロックである、
請求項１記載の分析システム。
【請求項７】
前記分析データは、下記の（ｘ１）及び（ｘ２）の少なくとも１つを含んだデータである、
（ｘ１）それぞれ時刻及び値を含んだ１以上のデータで構成された第１のデータ、
（ｘ２）それぞれ時区間とその時区間に属する値とを含んだ１以上のデータで構成された第２のデータ、
請求項１記載の分析システム。
【請求項８】
前記分析データの少なくとも一部が、前記プロセッサ部によりデータブロック毎に圧縮されている、
請求項７記載の分析システム。
【請求項９】
前記１以上のオブジェクトの各々に、前記分析対象範囲を含む複数のオブジェクト値のうちの１以上のオブジェクト値が関連付けられ、
（Ａ）において、前記一致のオブジェクトは、いずれかの過去のオブジェクトに関連付いている全てのオブジェクト値と同じオブジェクト値が関連付いているオブジェクトであり、
（Ｂ）において、前記一致の範囲ブロック及び処理内容は、いずれかの格納済データブロックに関連付いているタグと一致のタグに関連付いている範囲ブロック及び処理内容であり、
前記タグに、範囲ブロックを含む１以上のオブジェクト値が関連付けられており、
前記一致のタグは、前記タグに関連付いている全てのオブジェクト値と同じオブジェクト値が関連付いているタグである、
請求項１記載の分析システム。
【請求項１０】
前記２以上のオブジェクト値が、前記分析対象範囲と、そのオブジェクトのリンク元のオブジェクトのＩＤである親ＩＤと、そのオブジェクトのリンク先のオブジェクトのＩＤである子ＩＤと、プログラムと、プログラムのパラメータとのうちの少なくとも前記分析対象範囲を含む、
請求項９記載の分析システム。
【請求項１１】
前記プロセッサ部は、（Ａ）において、前記一致のオブジェクトに対応した過去のオブジェクトに、前記ユーザのアクセス許可を関連付ける、
請求項１記載の分析システム。
【請求項１２】
前記分析チェーンを構成する１以上のオブジェクトのうちの少なくとも１つのオブジェクトは、前記ユーザのアクセス許可が関連付けられている過去のオブジェクトである、
請求項１１記載の分析システム。
【請求項１３】
前記対象ユーザインターフェース装置のユーザのユーザ操作に応答して前記分析チェーンが構築され、
前記分析チェーンの構築において、前記対象ユーザインターフェース装置に、ユーザ操作に応答してツリー状にＵＩ（ユーザインターフェース）が展開され、展開されたＵＩのうちの所定種類のＵＩ経由で、オブジェクトにオブジェクト値が関連付けられる、
請求項１記載の分析システム。
【請求項１４】
それぞれ時刻及び値を含む複数の値データの時系列データと、過去の分析処理により出力されたデータを含む分析データとのうちの少なくとも一部を入力データとした分析処理を実行する分析方法であって、
分析対象範囲が関連付けられた１以上のオブジェクトの各々をノードとしたグラフ構造の分析チェーンに従い分析処理を実行し、
前記１以上のオブジェクトの各々は、前記１以上のユーザインターフェース装置のうちのいずれかである対象ユーザインターフェース装置のユーザのユーザ操作に従う処理定義であり、
前記分析処理において、重複排除処理を実行し、
前記重複排除処理は、下記の（Ａ）乃至（Ｃ）のうちの少なくとも１つである、
（Ａ）前記１以上のオブジェクトのうち、１以上の過去のオブジェクトのいずれかと一致のオブジェクトに従う処理を実行せず、前記１以上の過去のオブジェクトのいずれとも不一致のオブジェクトに従う処理を実行する、
（Ｂ）前記分析対象範囲を構成する複数の範囲ブロックのうち、いずれかの格納済データブロックに関連付いている範囲ブロック及び処理内容と一致の範囲ブロック及び処理内容について、前記分析対象範囲が関連付けられたオブジェクトに従う処理を実行せず、いずれの格納済データブロックに関連付いている範囲ブロック及び処理内容と不一致の範囲ブロック及び処理内容について、前記分析対象範囲が関連付けられたオブジェクトに従う処理を実行し、その処理の結果として出力されたデータブロックを格納する、
（Ｃ）オブジェクトの実行結果として出力されたデータである出力データを構成する複数のデータブロックのうち、いずれかの格納済データブロックと一致のデータブロックを格納せず、いずれの格納済データブロックとも不一致のデータブロックを格納する、
分析方法。
【請求項１５】
それぞれ時刻及び値を含む複数の値データの時系列データと、過去の分析処理により出力されたデータを含む分析データとのうちの少なくとも一部を入力データとした分析処理を、分析対象範囲が関連付けられた１以上のオブジェクトの各々をノードとしたグラフ構造の分析チェーンに従い実行することをコンピュータに実行させ、
前記１以上のオブジェクトの各々は、前記１以上のユーザインターフェース装置のうちのいずれかである対象ユーザインターフェース装置のユーザのユーザ操作に従う処理定義であり、
前記分析処理において、下記の（Ａ）乃至（Ｃ）のうちの少なくとも１つである重複排除処理を前記コンピュータに実行させる、
（Ａ）前記１以上のオブジェクトのうち、１以上の過去のオブジェクトのいずれかと一致のオブジェクトに従う処理を実行せず、前記１以上の過去のオブジェクトのいずれとも不一致のオブジェクトに従う処理を実行する、
（Ｂ）前記分析対象範囲を構成する複数の範囲ブロックのうち、いずれかの格納済データブロックに関連付いている範囲ブロック及び処理内容と一致の範囲ブロック及び処理内容について、前記分析対象範囲が関連付けられたオブジェクトに従う処理を実行せず、いずれの格納済データブロックに関連付いている範囲ブロック及び処理内容と不一致の範囲ブロック及び処理内容について、前記分析対象範囲が関連付けられたオブジェクトに従う処理を実行し、その処理の結果として出力されたデータブロックを格納する、
（Ｃ）オブジェクトに従う処理の実行結果として出力されたデータである出力データを構成する複数のデータブロックのうち、いずれかの格納済データブロックと一致のデータブロックを格納せず、いずれの格納済データブロックとも不一致のデータブロックを格納する、
コンピュータプログラムを記録した前記コンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、データの分析に関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet of Things）やＩＣＴ（Information and Communication Technology）という言葉に象徴される様に、様々な機器がネットワークに接続され、相互にデータ通信や制御を行うことができる。例えば、電力の分野では、各家庭の家電機器に取り付けられた電力センサの計測データを収集し、計測データの時系列データを基に、家電制御をスケジューリングしたり、電力の全体需要を予測したりすることができる。また、例えば、交通の分野では、各車両に取り付けられた加速度センサの計測データを収集し、計測データの時系列データを基に、道路整備の計画を作成したり、保険料策定の指針を作成したりすることができる。【０００３】
このようなデータ分析では、同一のデータソースに対して複数のユーザが分析を行い、多様な観点での知見を抽出又は集約する場合が多い。例えば、社会インフラ機器に稼働上の不具合が生じた場合、同一の稼働監視データを用いて、第１のユーザ（例えば設計者）は設計上のミスが原因であるか分析を行い、第２のユーザ（例えば運用者）は運用上のミスが原因であるか分析を行う。これらの分析は、一般に、各ユーザにより、個別にローカル環境において、自身が得意とするツールや言語を用いて行う。分析過程で生成される分析データは、様々な形式（例えばファイル形式）で様々な場所に保存される。このため、ユーザ間で分析データが受け渡しされても、分析データを受け取ったユーザは、分析データ（例えば、分析データの生成条件と時系列データの分析箇所）を把握することができない。受け渡しされる分析データをデータ変換することも考えられるが、データ変換に手間がかかる。【０００４】
このような理由から、複数のユーザがそれぞれ行う分析に使用されるデータソースが同一であっても、各ユーザは、一から分析を行う。【０００５】
分析に関する技術として、例えば、分析ソリューションを共有する技術（特許文献１）、XMLの受渡しにより分析処理を共有する技術（非特許文献１）、及び、MapReduceの遅延評価により分析処理を統合する技術（非特許文献２）が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】WO15／186249
【非特許文献】
【０００７】
【非特許文献１】MR Berthold, “KNIME:The Konstanz information miner,” Springer, 2008.
【非特許文献２】A Thusoo, “Hive: a warehousing solution over a map-reduce framework,” Proceedings of the VLDB Endowment vol2 issue2, August 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
分析効率を向上するために、処理及びデータのうちの少なくとも１つを共有することが考えられる。しかし、下記のうちの少なくとも１つの理由により、そのような共有の実現は容易ではない。
（１）通常、時系列データの量は膨大であり、分析の対象とされる時区間が少しでも違えば、生成される分析データが異なる。
（２）分析の対象とされる時区間が同じであっても、分析の対象とされるセンサ、分析処理の手順、分析処理で使用されるプログラム、及び、分析処理で使用されるパラメータ、のうちの少なくとも１つが違えば、生成される分析データは、異なる。
【課題を解決するための手段】
【０００９】
分析システムは、それぞれ時刻及び値を含む複数の値データの時系列データと、過去の分析処理により出力されたデータを含む分析データとのうちの少なくとも一部を入力データとした分析処理を、分析対象範囲が関連付けられた１以上のオブジェクトの各々をノードとしたグラフ構造の分析チェーンに従い実行する。１以上のオブジェクトの各々は、１以上のユーザインターフェース装置のうちのいずれかである対象ユーザインターフェース装置のユーザのユーザ操作に従う処理定義である。分析処理において、分析システムは、重複排除処理を実行する。重複排除処理は、下記の（Ａ）乃至（Ｃ）のうちの少なくとも１つである。
（Ａ）１以上のオブジェクトのうち、１以上の過去のオブジェクトのいずれかと一致のオブジェクトに従う処理を実行せず、１以上の過去のオブジェクトのいずれとも不一致のオブジェクトに従う処理を実行する。
（Ｂ）分析対象範囲を構成する複数の範囲ブロックのうち、いずれかの格納済データブロックに関連付いている範囲ブロック及び処理内容と一致の範囲ブロック及び処理内容について、分析対象範囲が関連付けられたオブジェクトに従う処理を実行せず、いずれの格納済データブロック及び処理内容に関連付いている範囲ブロックと不一致の範囲ブロック及び処理内容について、分析対象範囲が関連付けられたオブジェクトに従う処理を実行し、その処理の結果として出力されたデータブロックを格納する。
（Ｃ）オブジェクトに従う処理の実行結果として出力されたデータである出力データを構成する複数のデータブロックのうち、いずれかの格納済データブロックと一致のデータブロックを格納せず、いずれの格納済データブロックとも不一致のデータブロックを格納する。【００１０】
つまり、分析システムは、（Ａ）を実行する第１機能、（Ｂ）を実行する第２機能、及び、（Ｃ）を実行する第３機能のうちの少なくとも１つの機能を有している。例えば、分析システムは、第１機能乃至第３機能のうち、第１機能のみを有していてもよいし、第２機能のみを有していてもよいし、第３機能のみを有していてもよいし、第１機能及び第２機能のみを有していてもよいし、第１機能及び第３機能のみを有していてもよい。
【発明の効果】
【００１１】
オブジェクトとデータブロックとのうちの少なくとも１つが共有される。これにより、分析システムの負荷軽減とデータ量削減とのうちの少なくとも１つを実現できる。
【図面の簡単な説明】
【００１２】
【図１】実施例１に係るシステム全体の構成を示す。
【図２】実施例１の概要を示す。
【図３】時系列データの構成を示す。
【図４】分析データの構成を示す。
【図５】分析サーバが保持する分析チェーンデータの構成と分析クライアントが保持する分析チェーンデータの構成とを示す。
【図６】分析画面の一例を示す。
【図７】実施例１に係る分析チェーンデータ更新処理のフローを示す。
【図８】分析制御処理のフローを示す。
【図９】実施例２の概要を示す。
【図１０】開示要求画面の一例を示す。
【図１１】開示制御処理のフローを示す。
【図１２】実施例２に係る分析チェーンデータ更新処理のフローを示す。
【図１３】実施例３に係る分析制御処理のフローを示す。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の幾つかの実施例を説明する。但し、それらの実施例は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではない。
【００１４】
以下の説明では、「インターフェース部」は、１以上のインターフェースを含む。１以上のインターフェースは、１以上の同種のインターフェースデバイス（例えば１以上のＮＩＣ（Network Interface Card））であってもよいし２以上の異種のインターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００１５】
また、以下の説明では、「記憶部」は、１以上のメモリを含む。少なくとも１つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。記憶部は、１以上のメモリに加えて、１以上のＰＤＥＶを含んでもよい。「ＰＤＥＶ」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス（例えば補助記憶デバイス）でよい。ＰＤＥＶは、例えば、ＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）でよい。
【００１６】
また、以下の説明では、「プロセッサ部」は、１以上のプロセッサを含む。少なくとも１つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
【００１７】
また、以下の説明では、「分析システム」は、１以上の計算機、例えば、１以上のユーザが使用可能なスタンドアロンの計算機であってもよいし、サーバ計算機及びクライアント計算機のうちの少なくともサーバ計算機でよい。このため、「ユーザインターフェース装置」は、計算機の１以上のユーザインターフェースデバイス（入力デバイスと出力デバイスのうちの少なくとも１つ）でもよいし、１以上のユーザインターフェースデバイスを有するクライアント計算機であってもよい。また、以下の説明では、「ユーザ操作」とは、ユーザが入力デバイスを使用して行う操作を言う。また、以下の説明によれば、分析システムは、分析結果のような情報を表示することができるが、「情報を表示する」とは、ユーザインターフェース装置に表示対象の情報を送りユーザインターフェース装置によりその情報が表す表示対象（例えば分析結果）が表示されることであってよい。
【００１８】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも１つを用いながら行うため、処理の主語が、プロセッサ部（或いは、プロセッサ部を有する計算機又は計算機システム）とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記録媒体（例えば非一時的な記録媒体）であってもよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。
【００１９】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号（又は参照符号における共通部分）を使用し、同種の要素を区別して説明する場合は、要素のＩＤ（又は要素の参照符号）を使用することがある。
【実施例１】
【００２０】
図１は、実施例１に係るシステム全体の構成を示す。【００２１】
分析サーバ１００に、通信ネットワーク（例えばＷＡＮ（Wide Area Network））１２０を介して、分析サーバ１００の複数のユーザが使用する複数（又は１つ）の分析クライアント１１０Ａ、１１０Ｂ、…が接続されている。【００２２】
分析クライアント１１０は、ユーザインターフェース装置の一例である。分析クライアント１１０は、計算機であり、ネットワークインターフェース１１５、入力デバイス１１６、出力デバイス１１７、ＰＤＥＶ１１４、メモリ１１３、及び、それらに接続されたプロセッサ１１２を有する。【００２３】
ネットワークインターフェース１１５は、通信ネットワーク１２０を介して通信するためのインターフェースデバイスである。入力デバイス１１６及び出力デバイス１１７は、１以上のユーザインターフェースデバイスの一例である。入力デバイス１１６は、例えば、キーボード及びポインティングデバイスである。出力デバイス１１７は、例えば、表示デバイスである。ＰＤＥＶ１１４は、例えば、ＨＤＤ又はＳＳＤである。メモリ１１３は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）であり、プロセッサ１１２により実行される１以上のプログラムを記憶する。プロセッサ１１２が、１以上のプログラムのうちの少なくとも１つを実行する。【００２４】
分析サーバ１００は、分析システムの一例である。分析サーバ１００は、計算機であり、ネットワークインターフェース１０５、複数のセンサ１０１、ＰＤＥＶ１０４、メモリ１０３及びプロセッサ１０２を有する。【００２５】
ネットワークインターフェース１０５は、インターフェース部の一例であり、通信ネットワーク１２０を介して通信するためのインターフェースデバイスである。【００２６】
センサ１０１から、定期的（又は不定期）に後述の値データが収集される。本実施例では、分析サーバ１００が、１以上のセンサ１０１が属している測定システムを兼ねる。しかし、それに代えて又は加えて、分析サーバ１００が、それぞれ１以上のセンサ１０１が属している１以上の測定システムの各々から通信ネットワーク（通信ネットワーク１２０又は他の通信ネットワーク）経由で値データを収集してもよい。値データは、プル型で収集されてもよいし（分析サーバ１００からの問合せに応答して受信されてもよいし）、プッシュ型で収集されてもよい（分析サーバ１００からの問合せ無しに受信されてもよい）。【００２７】
メモリ１０３及びＰＤＥＶ１０４のうちの少なくともメモリ１０３が記憶部の一例である。ＰＤＥＶ１０４は、例えば、ＨＤＤ又はＳＳＤであるが、外部ストレージ装置であってもよい。メモリ１０３は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）であり、プロセッサ１０２により実行される１以上のプログラムを記憶する。１以上のプログラムは、後述の分析プログラムを含んでよい。【００２８】
プロセッサ１０２が、プロセッサ部の一例であり、１以上のプログラムのうちの少なくとも１つを実行する。【００２９】
図２は、実施例１の概要を示す。なお、図２では、複数の分析クライアント１１０のうちの分析クライアント１１０Ａを例に取るが、他の分析クライアント１１０も分析クライアント１１０と同様である。【００３０】
分析サーバ１００において、分析チェーン更新プログラム２１１、分析実行プログラム２１２及び値データ収集プログラム２１３が、それぞれ、メモリ１０３に記憶され、プロセッサ１０２に実行される。分析チェーン更新プログラム２１１及び分析実行プログラム２１２が、ネットワークインターフェース１０５経由で、分析クライアント１１０Ａと通信する。ＰＤＥＶ１０４に、時系列データ２０３、分析データ２０２及び分析チェーンデータ２０１が格納される。時系列データ２０３は、複数のセンサ１０１から収集された複数の値データが時系列になったデータである。分析データ２０２は、分析処理において出力されたデータを含んだデータである。分析チェーンデータ２０１は、分析チェーンの構成要素となるオブジェクトを含んだデータである。「分析チェーン」とは、分析対象時区間が関連付けられた１以上のオブジェクトの各々をノードとしたグラフデータである。「分析対象時区間」は、分析対象範囲の一例である。「オブジェクト」は、分析クライアント１１０Ａのユーザのユーザ操作に従う処理定義である。オブジェクトは、どのようなデータソースからデータを入力しそのデータについてどんな処理を行うかを表すが、それを、以下、「処理内容」と表現する。オブジェクトは、後に図５を参照して説明するように、分析対象時区間（開始時刻５０２及び終了時刻５０３）入力ＩＤ５０４、プログラム５０７及びパラメータ５０８等を含むが、処理内容は、入力ＩＤ５０４、プログラム５０７及びパラメータ５０８に相当する。【００３１】
分析チェーン更新プログラム２１１は、分析チェーンデータ２０１を更新したり、オブジェクトに従う処理の実行を分析実行プログラム２１２に命じたりする。具体的には、例えば、分析チェーン更新プログラム２１１は、分析チェーンを構成する各オブジェクトを分析クライアント１１０Ａから受信する。分析チェーン更新プログラム２１１は、受信したオブジェクトがいずれかの過去のオブジェクト（分析チェーンデータ２０１に登録済のいずれかのオブジェクト）と一致か否かを判定する。受信したオブジェクトが不一致のオブジェクトの場合、分析チェーン更新プログラム２１１は、その不一致のオブジェクトを分析チェーンデータ２０１に登録し、且つ、その不一致のオブジェクトに従う処理の実行を分析実行プログラム２１２に命じる。一方、受信したオブジェクトが一致のオブジェクトの場合、分析チェーン更新プログラム２１１は、その一致のオブジェクトを登録すること、及び、その一致のオブジェクトに従う処理の実行を分析実行プログラム２１２に命じることを、スキップする。【００３２】
分析実行プログラム２１２は、分析チェーン更新プログラム２１１から命じられたオブジェクト（この段落において「対象オブジェクト」と言う）に従う処理を実行する。具体的には、例えば、分析実行プログラム２１２は、対象オブジェクトに従い、時系列データ２０３と分析データ２０２とのうちの少なくとも一部を入力データとした処理を実行する。分析実行プログラム２１２は、対象オブジェクトに関連付けられている分析対象範囲を、範囲分割方式で、複数の範囲ブロックに分割する。複数の範囲ブロックの各々について、次の処理が実行される。すなわち、分析実行プログラム２１２は、範囲ブロック及び処理内容（対象オブジェクトが表す処理内容）が、いずれかの格納済データブロック（例えば、分析データ２０２内のいずれかのデータブロック）に関連付いている範囲ブロック及び処理内容と一致か否かを判定する。範囲ブロック及び処理内容の少なくとも１つが不一致の場合、判定の結果は偽である。範囲ブロック及び処理内容が不一致の場合、分析実行プログラム２１２は、その範囲ブロックについて対象オブジェクトに従う処理を実行する。一方、範囲ブロック及び処理内容が一致の場合、分析実行プログラム２１２は、その範囲ブロックについて、対象オブジェクトに従う処理の実行をスキップする。本実施例では、一致のオブジェクトに従う処理と一致の範囲ブロック及び処理内容についての処理とのうちの両方の処理の実行がスキップされるが、それらの一方の処理のみの実行がスキップされてもよい。【００３３】
値データ収集プログラム２１３は、定期的（又は不定期）にセンサ１０１から値データを収集し、収集された値データを時系列データ２０３に追加する。【００３４】
分析クライアント１１０Ａにおいて、ＵＩ（User Interface）制御プログラム２２１が、メモリ１１３に記憶され、プロセッサ１１２に実行される。ＵＩ制御プログラム２２１は、ネットワークインターフェース１１５経由で、分析サーバ１００と通信する。ＵＩ制御プログラム２２１は、入力デバイス１１６のユーザのユーザ操作に応答した処理を実行し（例えばオブジェクトを分析サーバ１００に送信し）、処理の結果（例えば、分析サーバ１００の分析処理の結果として受信した情報）を出力デバイス１１７に出力する。ＵＩ制御プログラム２２１の処理において、分析チェーンデータ２５１が、ＰＤＥＶ１１４に格納、更新又は参照される。なお、分析チェーンデータ２５１がＰＤＥＶ１０４に格納されず、分析サーバ１００が管理する分析チェーンデータ２０１が分析サーバ１００経由で更新又は参照されてよい。【００３５】
以下、実施例１を詳細に説明する。なお、以下の説明では、複数のセンサ１０１は、風力発電のために設置されている風車の風速の計測データを出力するセンサ１０１と、発電制御に関するメッセージを含んだ制御データを出力するセンサ１０１とのうちの少なくとも１つを含む。【００３６】
図３は、時系列データ２０３の構成を示す。【００３７】
時系列データ２０３は、値データが時系列になったデータである。値データは、時刻、入力ＩＤ及び値を含む。入力ＩＤは、入力データの少なくとも一部としてのデータに割り振られたＩＤ（識別子）である。時系列データ２０３は、例えばテーブルであり、テーブルにおけるレコードが、値データに相当する。【００３８】
本実施例では、時系列データ２０３は、時系列計測データ３００と時系列制御データ３１０とのうちの少なくとも１つを含んだデータである。【００３９】
時系列計測データ３００は、計測データが時系列になったデータである。計測データは、値データの一例である。計測データにおいて、時刻３０１は、計測された時刻を表し、入力ＩＤ３０２は、計測データを出力したセンサ１０１（又は値を計測したセンサ１０１）のＩＤを表し、値３０３は、計測された値を表す。【００４０】
時系列制御データ３１０は、制御データが時系列になったデータである。制御データも、値データの一例である。制御データにおいて、時刻３１１は、メッセージが取得された時刻を表し、入力ＩＤ３１２は、制御データを出力したセンサ１０１のＩＤを表し、値３１３は、メッセージ（文字列）を表す。【００４１】
時系列データ２０３の構成は、図３に示す構成に限られない。例えば、値データは、時刻、入力ＩＤ及び値の他に、他の情報を含んでもよい。また、時系列データ２０３の少なくとも一部が、所定の単位（例えば分割方式）で圧縮されてもよい。【００４２】
図４は、分析データ２０２の構成を示す。【００４３】
分析データ２０２は、分析実行プログラム２１２の処理の結果として出力された出力データのデータブロックを含む。例えば、分析データ２０２には、第１のデータ４００及び第２のデータ４５０が含まれる。【００４４】
第１のデータ４００は、それぞれ時刻及び値を含んだ１以上のデータで構成され、例えばテーブルである。具体的には、例えば、図４に示すように、第１のデータ４００は、１以上の第１のデータブロック４１０である。第１のデータブロック４１０において、各レコードが、時刻４２１、入力ＩＤ４２２及び値４２３を保持する。第１のデータブロック４１０における値４２３は、オブジェクトに従う処理において算出された値であってもよいし、時系列データ２０３から抽出された値であってもよい。入力ＩＤ４２２は、値４２３に対応したセンサ１０１のＩＤであってよい。少なくとも１つの第１のデータブロック４１０（例えば４１０Ｂ）が、分析実行プログラム２１２により圧縮されてよい。圧縮は、データブロック毎に行われる。圧縮により、分析データ２０２の容量を削減できる。圧縮は、データブロック（分割方式）毎でよい。これにより、差分計算時の解凍やレコード抽出の効率化が図れる。既記録判定の差分が単位時間の倍数で抽出されやすいためである（具体例は後述）。第１のデータブロック４１０を得るための範囲分割方式は、第１の範囲分割方式でよい。具体的には、例えば、第１の範囲分割方式によれば、分析対象時区間を構成する複数の範囲ブロックの各々のサイズは、所定サイズ（単位時間）でよい。複数の第１のデータブロック４１０（圧縮された第１のデータブロック４１０が含まれていてもよい）の各々には、タグ４３０が関連付けられる。タグ４３０には、そのタグ４３０が関連付けられる第１のデータブロック４１０を出力とした処理についての全てのオブジェクト値（範囲ブロックを含む）が関連付けられる。オブジェクト値は、オブジェクトに関連付けられる値である（詳細は後述）。【００４５】
第２のデータ４５０は、それぞれ時区間とその時区間に属する値とを含んだ１以上のデータで構成され、例えばテーブルである。具体的には、例えば、図４に示すように、第２のデータ４５０は、１以上の第２のデータブロック４６０である。第２のデータブロック４６０において、各レコードが、時区間、入力ＩＤ４７３及び値４７４を保持する。時区間は、例えば、開始時刻４７１と終了時刻４７２との組で表現されるが、基準時刻（例えば開始時刻及び終了時刻の一方）と時間長とで表現されてもよい。入力ＩＤ４７３は、データ（レコード）に割り振られたＩＤである。値４７４は、時区間に属する複数の時刻（例えば計測時刻）にそれぞれ対応した複数の値（例えば計測値）に基づき算出された値と、その算出値に従う評価結果（例えばテキスト）とで表現される。例えば、時区間に属する複数の時刻にそれぞれ対応した複数の値を基に、評価結果として、「Extreme」及び「Normal」のいずれかが決定される。少なくとも１つの第２のデータブロック４６０（例えば４６０Ｂ）が、分析実行プログラム２１２により圧縮されてよい。圧縮は、データブロック単位で行われる。圧縮により、分析データ２０２の容量を削減できる。圧縮は、分割方式（データブロック）毎でよい。既記録判定の差分計算の効率化が図れるためである。 第２のデータブロック４６０を得るための範囲分割方式は、第２の範囲分割方式でよい。具体的には、例えば、第２の範囲分割方式によれば、複数の範囲ブロックの各々のサイズは、その範囲ブロックが属する時区間に対応した値（評価結果）に応じたサイズでよい。複数の第２のデータブロック４６０（圧縮された第２のデータブロック４６０が含まれていてもよい）の各々には、タグ４８０が関連付けられる。タグ４８０には、そのタグ４８０が関連付けられる第２のデータブロック４６０を出力とした処理についての全てのオブジェクト値（範囲ブロックを含む）が関連付けられる。【００４６】
分析データ２０２には、少なくとも１つの描画データ４８３（例えば描画されたグラフのデータ）が含まれてもよい。描画データ４８３が表す情報は、描画され出力デバイス１１７に表示された分析結果の一例である。分析処理では、分析データ２０２から描画データ４８３が読み出されて表示されてよい。これにより、分析処理において描画をスキップできる。描画データ４８３も、データブロック単位で格納されてよい。なお、描画データ４８３の格納に代えて、時系列データ２０３、第１のデータ４００及び第２のデータ４５０のうちの少なくとも１つに、描画される範囲が関連付けられてもよく、分析処理では、関連付けから特定された範囲に従い描画がされてもよい。これにより、分析データ２０２のデータ量を削減できる。なお、描画データ４８３にも、その描画データ４８３を出力とした処理についてのオブジェクト値が関連付けられたタグ４９０が関連付けられる。タグ４９０は、データブロック毎に関連付けられる。【００４７】
分析データ２０２には、少なくとも１つの分析プログラム４８１が含まれてもよい。分析プログラム４８１は、分析のためのプログラムであり、予め用意された又はユーザ操作に従い作成されたプログラムである。分析プログラム４８１は、入力データ（時系列データ２０３及び分析データ２０２の少なくとも一部）を用いた処理を施すための命令文を含んでよい。分析プログラム４８１の構成（例えば記述）は、図４に示す構成に限られない。【００４８】
分析データ２０２には、少なくとも１つのパラメータ４８２が含まれてもよい。パラメータ４８２は、分析プログラム４８１に使用される。パラメータ４８２は、例えば、入力へ処理を施す際の実行条件文を含んでよい。パラメータ４８２の構成（例えば記述）は、図４に示す構成に限られない。【００４９】
図５は、分析サーバ１００が保持する分析チェーンデータ２０１の構成と分析クライアント１１０が保持する分析チェーンデータ２５１の構成とを示す。【００５０】
分析チェーンデータ２０１は、分析チェーンに関する情報が登録されるテーブルである。分析チェーンは、上述したように、１以上のオブジェクトの各々をノードとしたグラフデータである。１以上のオブジェクトの各々は、分析クライアント１１０のユーザのユーザ操作に従う処理定義である。以下の説明では、オブジェクト間の関係を意味するために、「親オブジェクト」、「上位オブジェクト」、「子オブジェクト」及び「下位オブジェクト」のうちの少なくとも１つの用語を使用することがある。「親オブジェクト」とは、オブジェクトの１つ上位のオブジェクト（オブジェクトのリンク元のオブジェクト）を意味する。「上位オブジェクト」とは、オブジェクトより上位のオブジェクトを意味する。従って、親オブジェクトは、上位オブジェクトのうちの１つである。「子オブジェクト」とは、オブジェクトの１つ下位のオブジェクト（オブジェクトのリンク先のオブジェクト）を意味する。「下位オブジェクト」とは、オブジェクトより下位のオブジェクトを意味する。従って、子オブジェクトは、下位オブジェクトのうちの１つである。親オブジェクト（リンク元のオブジェクト）に従う処理の結果として出力されたデータの少なくとも一部が、オブジェクトに入力され得る。オブジェクトに従う処理の結果として出力されたデータの少なくとも一部が、子オブジェクト（リンク先のオブジェクト）に入力され得る。オブジェクト間の関係は、相対的なものであるため、各オブジェクトが、「親オブジェクト」、「上位オブジェクト」、「子オブジェクト」及び「下位オブジェクト」のいずれになるかは、当然に、着目されるオブジェクトによって変わる。【００５１】
分析チェーンデータ２０１（テーブル）におけるレコードと、分析チェーンにおけるオブジェクトとが、例えば、１対１で対応している。各レコードが、ＲＩＤ５０１、分析対象時区間（開始時刻５０２及び終了時刻５０３）、入力ＩＤ５０４、親ＩＤ５０５、子ＩＤ５０６、プログラム５０７、パラメータ５０８及びアクセス５０９を保持する。以下、１つのレコードを例に取る。その１つのレコードに対応したオブジェクトを、図５の説明において、「対象オブジェクト」と言う。【００５２】
対象オブジェクトに、分析対象時区間（開始時刻及び終了時刻）、入力ＩＤ、親ＩＤ、子ＩＤ、プログラム及びパラメータを含む複数のオブジェクト値のうち時区間を含む少なくとも１つのオブジェクト値が関連付けられる。「オブジェクト値」とは、オブジェクトに関連付けられる値である。【００５３】
ＲＩＤ５０１は、レコードのＩＤ（例えばレコード通し番号）を表す。開始時刻５０２及び終了時刻５０３は、対象オブジェクトに関連付けられている時区間を表す。分析対象時区間は、時刻（例えば開始時刻）と時区間の長さとにより表現されてもよい。入力ＩＤ５０４は、対象オブジェクトに関連付けられている入力ＩＤを表す。親ＩＤ５０５は、対象オブジェクトの親オブジェクトのＩＤ、具体的には、対象オブジェクトの親オブジェクトに対応したレコードのＲＩＤを表す。子ＩＤ５０６は、対象オブジェクトの子オブジェクトのＩＤ、具体的には、対象オブジェクトの子オブジェクトに対応したレコードのＲＩＤを表す。親ＩＤ５０５が「０」であるオブジェクトが、ルートオブジェクトであり、子ＩＤ５０６が空欄であるオブジェクトが、リーフオブジェクトである。プログラム５０７は、対象オブジェクトに関連付けられている分析プログラム４８１へのポインタ（又は分析プログラム４８１それ自体）を表す。パラメータ５０８は、対象オブジェクトに関連付けられているパラメータ４８２へのポインタ（又はパラメータ４８２それ自体）を表す。アクセス５０９は、対象オブジェクトへのアクセスが許可されているユーザのＩＤと許可されているアクセス種別（例えば更新（ｗ）又は参照（ｒ））とを表す。【００５４】
分析チェーンデータ２０１は、例えば下記４つの分析チェーンを表現する。なお、下記において、「処理Ｎ」（Ｎは自然数）は、ＲＩＤ５０１「Ｎ」のレコードに対応したオブジェクトに従う処理を意味する。
（１）第１の分析チェーン
処理１として、時区間（2015/12/24 18:00:00〜2015/12/25 18:00:00）に属し入力ＩＤ「Ｓ１」を含んだ全てのレコードが時系列データ２０３から読み出される。処理１に続き、処理２として、処理１で読み出されたレコードとパラメータ４８２（周期）とを用いて分析プログラム４８１（リサンプリング）が実行され、処理２に続き、処理３として、パラメータ４８２（ビン幅）を用いて分析プログラム４８１（レインフロー法に従う計算）が実行される。一方、処理１に続き、処理８として、処理１で読み出されたレコードを用いて分析プログラム４８１（クラスタリング）が実行される。
（２）第２の分析チェーン
処理４として、時区間（2016/1/1 00:00:00〜2016/1/1 01:00:00）に属し入力ＩＤ「Ｓ２」を含んだ全てのレコードが時系列データ２０３から読み出される。処理４に続き、処理５として、処理４で読み出されたレコードを用いて分析プログラム４８１（異常判定）が実行される。
（３）第３の分析チェーン
処理６として、（2015/12/25 00:00:00〜2015/12/26 00:00:00）に属し入力ＩＤ「Ｓ１」を含んだ全てのレコードが時系列データ２０３から読み出される。処理６に続き、処理７として、処理６で読み出されたレコードとパラメータ４８２（周期）とを用いて分析プログラム４８１（リサンプリング）が実行される。
（４）第４の分析チェーン
処理９として、時区間（2016/1/1 00:00:00〜2016/1/1 01:00:00）に属し入力ＩＤ「Ｍ１」及び「Ｍ２」を含んだ全てのレコードが時系列データ２０３から読み出される。処理９に続き、処理１０として、処理９で読み出されたレコードを用いて分析プログラム４８１（メッセージ変換）が実行される。結果として、入力ＩＤ「Ｍ１」を含んだレコードのメッセージ変換後のレコードとして入力ＩＤ「Ｍ３」を含んだレコードが出力され、入力ＩＤ「Ｍ２」を含んだレコードのメッセージ変換後のレコードとして入力ＩＤ「Ｍ４」を含んだレコードが出力される。【００５５】
分析クライアント１１０における分析チェーンデータ２５１は、分析チェーンデータ２０１からアクセス５０９のカラムを除いた構成となる。【００５６】
以下、実施例１で行われる処理の一例を詳細に説明する。【００５７】
図６は、分析画面の一例を示す。【００５８】
分析画面６００は、分析クライアント１１０Ａの出力デバイス１１７に表示される。分析画面６００は、ＧＵＩ（Graphical User Interface）である。分析画面６００に対するユーザ操作に応答して、分析チェーンが構築される。【００５９】
分析チェーンの構築において、分析画面６００に、ＵＩ制御プログラム２２１により、ユーザ操作に応答してツリー状にＵＩが展開され、展開されたＵＩのうちの設定ＵＩ経由で、オブジェクトにオブジェクト値が関連付けられる。「設定ＵＩ」とは、オブジェクト値の入力を受け付けるＵＩである。【００６０】
図６に例示するＵＩツリーは、例えば以下の処理により展開されたツリーである。なお、以下の処理において、ＵＩの展開は、ＵＩ制御プログラム２２１により行われる。
（Ｓ１）ルートＵＩ６１１に対するユーザ操作（例えば右クリックメニュー）に応答して、入力ＩＤ（例えばセンサＩＤ）及び時区間の入力を受け付ける第１の設定ＵＩ６２１が展開される。
（Ｓ２）第１の設定ＵＩ６２１に入力ＩＤ及び時区間が入力されて所定のユーザ操作がされると、ルートＵＩ６１１からリンクした入力ＵＩ６１２が展開される。入力ＵＩ６１２に、第１の設定ＵＩ６２１に入力された情報と、割り振られたＲＩＤとが表示されている。ＲＩＤは、例えば、分析サーバ１００から割り振られたＲＩＤでよい。
（Ｓ３）入力ＵＩ６１２に対するユーザ操作（例えば右クリックメニュー）に応答して、分析プログラム４８１へのポインタとパラメータ４８２へのポインタとの入力を受け付ける第２の設定ＵＩ６２２が展開される。
（Ｓ４）第２の設定ＵＩ６２２に少なくとも分析プログラム４８１へのポインタが入力されて所定のユーザ操作がされると、入力ＵＩ６１２からリンクした出力ＵＩ６１３が展開される。出力ＵＩ６１３に、第２の設定ＵＩ６２２に入力された情報と、割り振られたＲＩＤとが表示されている。
（Ｓ５）出力ＵＩ６１３に対するユーザ操作（例えば右クリックメニュー）に応答して、分析結果が表示されるＵＩである結果ＵＩ６２３が展開される。結果ＵＩ６２３には、分析結果の一例として、グラフが表示される。表示される分析結果は、分析サーバ１００からの情報（１以上のデータブロック）に従う。【００６１】
分析画面６００を介して構築される分析チェーンのオブジェクトは、分析クライアント１１０が管理する分析チェーンデータ２５１から読み出されたレコードに従うオブジェクトでもよいし、分析サーバ１００が管理する分析チェーンデータ２０１から読み出されたレコード（但し、ユーザについて少なくとも参照が許可されているレコード）に従うオブジェクトでもよいし、ユーザ操作に応答して新規に生成されたオブジェクトでもよい。ＵＩ制御プログラム２２１は、分析画面６００に対するユーザ操作に応答して決定されたオブジェクトを分析サーバ１００に送信する。【００６２】
さて、本実施例では、上述したように、一致のオブジェクトに従う処理と一致の範囲ブロック及び処理内容についての処理とのうちの両方の処理の実行がスキップされる。本実施例では、１つの分析処理において、２段階の重複判定が行われる。１段階目の重複判定において、一致のオブジェクトの有無が判定される。１段階目の重複判定において不一致と判定されたオブジェクトについては、そのオブジェクトに従う処理が実行されることになるが、２段階目の重複判定において、不一致のオブジェクトに関連付いた分析対象時区間を構成する複数の範囲ブロックの各々について、一致の範囲ブロック及び処理内容か否かが判定される。１段階目の重複判定は、分析チェーン更新プログラム２１１により実行される分析チェーンデータ更新処理において行われる。２段階目の重複判定は、分析実行プログラム２１２により実行される分析制御処理において行われる。【００６３】
図７は、分析チェーンデータ更新処理のフローを示す。【００６４】
分析チェーン更新プログラム２１１が稼働している間、ループＡ（Ｓ７０１〜Ｓ７０６）が実行される。【００６５】
分析チェーン更新プログラム２１１は、オブジェクトを受信した場合（Ｓ７０１：Ｙｅｓ）、分析チェーンデータ２０１を参照し（Ｓ７０２）、受信したオブジェクトが、分析チェーンデータ２０１に登録済みのいずれかのオブジェクトと一致のオブジェクトか否かを判定する（Ｓ７０３）。Ｓ７０３の判定が、１段階目の重複判定に相当する。ここで、「一致のオブジェクト」は、いずれかの登録済オブジェクトに関連付いている全てのオブジェクト値と同じオブジェクト値が関連付いているオブジェクトである。関連付けられ得るオブジェクト値は、分析対象時区間（開始時刻及び終了時刻）、入力ＩＤ、親ＩＤ、子ＩＤ、プログラム及びパラメータであり、ユーザアクセス権限は、オブジェクト値ではない。従って、例えば、受信したオブジェクトに、時区間、入力ＩＤ、親ＩＤ、子ＩＤ、プログラム及びパラメータが関連付けられている場合、それら全てのオブジェクト値にそれぞれ一致するオブジェクト値が関連付いている登録済オブジェクトが無ければ、受信したオブジェクトは、不一致のオブジェクトである。【００６６】
受信したオブジェクトが一致のオブジェクトの場合（Ｓ７０３：Ｙｅｓ）、分析チェーン更新プログラム２１１は、一致のオブジェクトに対応した登録済オブジェクトのアクセスに、ユーザのアクセス許可を含める（Ｓ７０４）。一致のオブジェクトに従う実行を分析実行プログラム２１２に命じることは、スキップされる。なお、Ｓ７０４では、ユーザのＩＤと、許可されたアクセス種別（例えば「参照」）との組が追加されるが、ユーザＩＤは、例えば、分析サーバ１００へのログイン時等の所定のタイミングで識別済である。【００６７】
一方、受信したオブジェクトが不一致のオブジェクトの場合（Ｓ７０３：Ｎｏ）、分析チェーン更新プログラム２１１は、その不一致のオブジェクトに対応したレコードを分析チェーンデータ２０１に追加し（Ｓ７０５）、且つ、その不一致のオブジェクトに従う処理の実行を分析実行プログラム２１２に命じる（Ｓ７０６）。【００６８】
図８は、分析制御処理のフローを示す。【００６９】
分析実行プログラム２１２は、オブジェクトに従う処理の実行命令を分析チェーン更新プログラム２１１から受ける（Ｓ８０１）。分析実行プログラム２１２は、分析チェーンデータ２０１のうち、実行対象のオブジェクトに対応したレコードを参照する（Ｓ８０２）。例えば、実行命令が、実行対象のオブジェクトに対応したＲＩＤを含み、Ｓ８０２では、そのＲＩＤをキーに見つかったレコードが参照される。【００７０】
分析実行プログラム２１２は、第１の条件が満たされているか否かを判定する（Ｓ８０３）。第１の条件が満たされているとは、本実施例では、下記（ｆ１）であるが、（ｆ２）であってよい。
（ｆ１）実行対象オブジェクトに従う処理の入力データが、時系列データ２０３の少なくとも一部である。
（ｆ２）分析処理が、第１の分析チェーンに従う分析処理である。第１の分析チェーンは、少なくとも１つの不一致オブジェクト（新規オブジェクト）を含む分析チェーンであってもよいし、第１の分析（例えば、詳細に分析すべき分析対象時区間を特定するための粗い分析）を意味する情報が関連付けられているオブジェクトを含んだ分析チェーンであってもよい。【００７１】
Ｓ８０３の判定結果が真の場合（Ｓ８０３：Ｙｅｓ）、分析実行プログラム２１２は、実行対象オブジェクトに関連付いている分析対象時区間を、第１の範囲分割方式で複数の範囲ブロックに分割する（Ｓ８０５）。【００７２】
Ｓ８０３の判定結果が偽の場合（Ｓ８０３：Ｎｏ）、分析実行プログラム２１２は、第２の条件が満たされているか否かを判定する（Ｓ８０４）。第２の条件が満たされているとは、本実施例では、下記（ｇ１）であるが、（ｇ２）であってよい。
（ｇ１）実行対象オブジェクトに従う処理の入力データが、分析データ２０２の少なくとも一部である。
（ｇ２）分析処理が、第２の分析チェーンに従う分析処理である。第２の分析チェーンは、不一致のオブジェクトを含まない分析チェーン（すなわち、その分析チェーンにおける各オブジェクトが一致のオブジェクト）であってもよいし、第２の分析（例えば、第１の分析の結果を基に特定された詳細に分析すべき分析対象時区間についての分析）を意味する情報が関連付けられているオブジェクトを含んだ分析チェーンであってもよい。【００７３】
Ｓ８０４の判定結果が真の場合（Ｓ８０４：Ｙｅｓ）、分析実行プログラム２１２は、実行対象オブジェクトに関連付いている分析対象時区間を、第２の範囲分割方式で複数の範囲ブロックに分割する（Ｓ８０６）。【００７４】
第１の範囲分割方式によれば、複数の範囲ブロックの各々のサイズは、所定サイズである。第２の範囲分割方式によれば、複数の範囲ブロックの各々のサイズは、その範囲ブロックが属する時刻又は時区間に対応した値（例えば評価結果）に応じたサイズである。すなわち、第１の範囲分割方式によれば、範囲ブロックのサイズは同じであり、第２の範囲分割方式によれば、範囲ブロックのサイズは、対応する値によって異なり得る。【００７５】
複数の範囲ブロックの各々について、ループＢ（Ｓ８０７〜Ｓ８１１）が実行される。以下、１つの範囲ブロックを例に取る（図８の説明において、「対象範囲ブロック」と言う）。【００７６】
分析実行プログラム２１２は、対象範囲ブロック及び処理内容（実行対象オブジェクトの処理内容）が一致の範囲ブロック及び処理内容か否かを判定する（Ｓ８０７）。実行対象オブジェクトに関連付いている全てのオブジェクト値（対象範囲ブロックを含む）と一致するオブジェクト値が関連付いているタグ（４３０、４８０又は４９０）がいずれかの格納済データブロック（分析データ２０２におけるいずれかのデータブロック）に関連付けられていれば、Ｓ８０７の判定結果は真となる。【００７７】
Ｓ８０７の判定結果が真の場合（Ｓ８０７：Ｙｅｓ）、分析実行プログラム２１２は、対象範囲ブロックについて、実行対象オブジェクトに従う処理の実行をスキップする。つまり、Ｓ８０８〜Ｓ８１１がスキップされる。【００７８】
Ｓ８０７の判定結果が偽の場合（Ｓ８０７：Ｎｏ）、分析実行プログラム２１２は、対象範囲ブロックについて、実行対象オブジェクトに従う処理を実行する。すなわち、分析実行プログラム２１２は、実行対象オブジェクトに関連付いている入力ＩＤ（及び対象範囲ブロック）に従うデータを入力する（Ｓ８０８）。また、分析実行プログラム２１２は、実行対象オブジェクトに関連付いている分析プログラム４８１及びパラメータ４８２を読み出す（Ｓ８０９）。分析実行プログラム２１２は、Ｓ８０８の入力データとＳ８０９のパラメータ４８２とを用いてＳ８０９の分析プログラム４８１を実行する（Ｓ８１０）。分析実行プログラム２１２は、実行結果としての出力があればその出力であるデータブロックを分析データ２０２に格納する（Ｓ８１１）。Ｓ８１１で格納されるデータブロックに、実行対象オブジェクトに関連付いている全てのオブジェクト値（対象範囲ブロックを含む）が関連付けられたタグが、分析実行プログラム２１２により関連付けられる。【００７９】
さて、Ｓ８０４の判定結果が偽の場合（Ｓ８０４：Ｎｏ）、分析実行プログラム２１２は、実行対象オブジェクトに従う処理を実行する。具体的には、分析実行プログラム２１２は、実行対象オブジェクトに関連付いている入力ＩＤ及び分析対象時区間に従うデータを入力する（Ｓ８１２）。また、分析実行プログラム２１２は、実行対象オブジェクトに関連付いている分析プログラム４８１及びパラメータ４８２を読み出す（Ｓ８１３）。分析実行プログラム２１２は、Ｓ８１２の入力データとＳ８１３のパラメータ４８２とを用いてＳ８１３の分析プログラム４８１を実行する（Ｓ８１４）。分析実行プログラム２１２は、実行結果としての出力があればその出力であるデータを、複数のデータブロックに分割すること無しに（或いは複数のデータブロックに分割して）分析データ２０２に格納する（Ｓ８１５）。Ｓ８１５において、データが複数のデータブロックに分割された場合、下記の（Ｓ８１５−１）及び（Ｓ８１５−２）のうちの少なくとも（Ｓ８１５−１）が行われてよい。
（Ｓ８１５−１）分析実行プログラム２１２は、格納されるデータブロックに、実行対象オブジェクトに関連付いている全てのオブジェクト値が関連付けられたタグを、関連付ける。
（Ｓ８１５−２）分析実行プログラム２１２は、実行対象オブジェクトに従う処理の実行結果として出力されたデータを構成する複数のデータブロックのうち、いずれかの格納済データブロックと一致のデータブロックを格納せず、いずれの格納済データブロックとも不一致のデータブロックを格納する。【００８０】
分析実行プログラム２１２は、分析チェーンにおける少なくとも１つのオブジェクトに従う処理の実行が終了した場合、必要に応じて（例えば、表示要求を受けた場合）、分析結果を出力デバイス１１７に表示してよい。その分析結果は、この分析処理において格納されたデータブロックと、この分析処理の前から存在していた格納済データブロックとのうちの少なくとも１つに従う。分析結果の表示に使用されるデータブロックは、その少なくとも１つのオブジェクトに関連付いているデータブロックである。【００８１】
また、分析実行プログラム２１２は、データブロックを格納する場合、そのデータブロックを圧縮し、圧縮されたデータブロックに、上述したタグを関連付けてもよい。【００８２】
実施例１によれば、一致のオブジェクトに従う処理と一致の範囲ブロック及び処理内容についての処理とのうちのいずれの処理の実行もスキップされる。このため、分析サーバ１００（プロセッサ１０２）の負荷を軽減できる。また、実施例１によれば、一致の範囲ブロック及び処理内容についての処理の実行がスキップされるので、分析データ２０２に格納されるデータブロックを減らすことができる。結果として、分析データ２０２のデータ量を削減できる。このように、実施例１では、登録済のオブジェクトと格納済のデータブロックとの共有が可能である。【００８３】
また、実施例１によれば、オブジェクトにアクセス（つまりユーザとそのユーザについて許可されたアクセス種別）が関連付けられる。このため、登録済のオブジェクトの開示範囲を制限できる。【００８４】
また、実施例１によれば、分析データ２０２の少なくとも一部も、オブジェクトに従う処理の入力となり得る。つまり、分析データ２０２の少なくとも一部が、中間データとして使用され得る。中間データは、一連の複数の処理（例えば木構造の処理）のうちの先頭の処理以外の処理で入力とされ得るデータである。中間データの形式として、複数種類の形式が定義されており、オブジェクトに従う処理の実行の結果として出力されるデータの形式は、その複数種類の形式のうちのいずれかの形式とされる。本実施例では、複数種類の形式として、第１のデータ４００の形式（時刻と時刻に対する値（例えば数値又は文字列）とを持った形式の一例）と、第２のデータ４５０の形式（時区間（幅）と時区間に対する値（例えば数値又は文字列）とを持った形式の一例）とがある。分析データ２０２の少なくとも一部の形式が決まっていることは、オブジェクトの共有、データブロックの共有、及び、分析チェーンの構築（オブジェクトの決定）のうちの少なくとも１つの容易化に貢献する。【００８５】
また、実施例１によれば、第１の分析（例えば、詳細に分析すべき分析対象時区間を特定するための粗い分析）のための分析チェーンに従う分析処理の後に、第２の分析（例えば、第１の分析の結果を基に特定された詳細に分析すべき分析対象時区間についての分析）のための分析チェーンに従う分析処理が可能である。そして、本実施例では、分析チェーンに応じた範囲分割方式の設定が可能である。例えば、第１の分析については、第１の範囲分割方式が採用され、第１の範囲分割方式によれば、複数の範囲ブロックの各々のサイズは第１サイズでよい。一方、第２の分析については、第２の範囲分割方式が採用され、第２の範囲分割方式によれば、通常（“Noraml”）を意味する値（評価結果）に対応した時区間が属する範囲ブロックのサイズは第２サイズであり、強風（“Extreme”）異常を意味する値（評価結果）に対応した時区間が属する範囲ブロックのサイズは、第２サイズより小さい第３サイズでよい（なお、第２サイズは、例えば、第１サイズ未満でよい）。これにより、第１の分析で特定された分析対象時区間について第２の分析で詳細に分析するといったことが可能である。【００８６】
第１の範囲分割方式と第２の範囲分割方式とが用意される意義の一例として、以下の例が考えられる。【００８７】
すなわち、大量の時系列データの分析では、例えば、機械制御に変更を加えるＸ間隔（例えばＸ＝１０分）といった意味のある「固定時区間」と、風速から強風と分類された時区間といった意味のある「可変時区間」とのいずれかを単位として、各々の時区間への集計加工処理が行われる。そのため、分析で入力として指定する「分析対象時区間」は、１以上の固定時区間の結合と、１以上の可変時区間の結合とのいずれかである「倍数時区間」となると考えられる。【００８８】
本実施例では、処理内容は同一だが範囲ブロック（時区間）が異なることが特定され、特定された範囲ブロックについてのみ処理が行われる。このとき、過去に対象となった範囲ブロック（時区間）も今回対象とする範囲ブロックも、いずれも、倍数時区間におけるいずれかの時区間である可能性が高いため、それらの時区間の差分として抽出される、まだ処理されたことがない時区間も、倍数時区間におけるいずれかの時区間である可能性が高い。【００８９】
圧縮が、固定時区間や可変時区間の単位で行われていれば、解凍するブロックの中に必要としないレコードが含まれることが少なくなり効率が良い。
【実施例２】
【００９０】
実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略又は簡略する。【００９１】
図９は、実施例２の概要を示す。なお、実施例２では、複数の分析クライアント１１０のうちの分析クライアント１１０Ａ及び１１０Ｂを例に取る。また、分析クライアント１１０Ａのユーザを「ユーザＡ」と言い、分析クライアント１１０Ｂのユーザを「ユーザＢ」と言う。また、以下の説明では、分析クライアント１１０Ａ内の構成要素の参照符号の末尾を「Ａ」とし、分析クライアント１１０Ｂ内の構成要素の参照符号の末尾を「Ｂ」とする。【００９２】
分析クライアント１１０ＡのＵＩ制御プログラム２２１Ａは、ユーザＡからの要求に応答して、オブジェクトＸ（ユーザＡに対して参照が許可されていないオブジェクトの一例）をユーザＡが参照することの許可を要求する開示要求を分析サーバ１００に送信する。分析サーバ９００の分析チェーン更新プログラム９１１が、開示要求を受け、その開示要求の通知を、その開示要求で指定されているオブジェクトＸについてアクセス（例えば更新）が許可されているユーザＢの分析クライアント１１０Ｂに送信する。開示要求の通知は、例えば、開示要求対象のオブジェクトに対応したレコードを含んでよい。分析クライアント１１０ＢのＵＩ制御プログラム２２１Ｂが、オブジェクトＸの開示要求の通知を分析サーバ９００から受け、その通知を出力デバイス１１７Ｂに表示し、開示許否の回答をユーザＢから受ける。ＵＩ制御プログラム２２１Ｂは、その回答を分析サーバ９００に送信する。分析チェーン更新プログラム９１１が、その回答を受信し、回答を反映する。例えば、回答が「許可」であれば、分析チェーン更新プログラム９１１は、オブジェクトＸの参照許可を分析クライアント１１０Ａに通知する。【００９３】
図１０は、開示要求画面の一例を示す。【００９４】
上記の例によれば、開示要求画面１０００は、要求元である分析クライアント１１０Ａの出力デバイス１１７Ａに表示される。【００９５】
ＵＩ制御プログラム２２１Ａが、分析チェーンデータ２０１のうち、ユーザＡについて参照が許可されていないオブジェクトに対応したレコードの一覧（但し、アクセスのカラムを除く）を、分析チェーン更新プログラム９１１から受信する。開示要求画面１０００には、そのレコード一覧が表示される。【００９６】
ＵＩ制御プログラム２２１Ａは、レコード一覧のうちユーザＡの所望のオブジェクトに対応したレコードの選択を受け、所定のユーザ操作（例えばＯＫボタン１００５の押下）に応答して、選択されたレコードに対応したオブジェクトの開示要求を、分析サーバ９００に送信する。開示要求には、例えば、選択されたレコードのＲＩＤが含まれる。【００９７】
図１１は、開示制御処理のフローを示す。【００９８】
要求元である分析クライアント１１０ＡのＵＩ制御プログラム２２１Ａが、開示要求画面を表示する（Ｓ１１０１）。すなわち、ＵＩ制御プログラム２２１Ａは、ユーザＡに対して参照が許可されていないオブジェクトに対応したレコードの一覧を受信し表示する。【００９９】
ＵＩ制御プログラム２２１Ａは、開示要求対象のオブジェクトに対応したレコードの選択を受け（Ｓ１１０２）、そのオブジェクトの開示要求を分析サーバ９００に送信する（Ｓ１１０３）。分析サーバ９００の分析チェーン更新プログラム９１１が、その開示要求を受け、開示要求の通知を、要求先である分析クライアント１１０Ｂに送信する。【０１００】
分析クライアント１１０ＢのＵＩ制御プログラム２２１Ｂが、その通知を受信し（Ｓ１１０４）、その通知を表示する。ＵＩ制御プログラム２２１Ｂは、開示要求対象のオブジェクトの参照を許可するか否かの回答をユーザＢから受け（Ｓ１１０５）、その回答を分析サーバ９００に送信する（Ｓ１１０６）。分析チェーン更新プログラム９１１が、その回答を、分析クライアント１１０Ａに送信する。ＵＩ制御プログラム２２１Ａが、その回答を受信し、その回答を表示する（Ｓ１１０７）。【０１０１】
図１２は、実施例２に係る分析チェーンデータ更新処理のフローを示す。【０１０２】
分析チェーン更新プログラム９１１は、開示要求を受信した場合（Ｓ７０１：Ｎｏ、Ｓ１２０１：Ｙｅｓ）、開示要求の通知を、要求先（分析クライアント１１０Ｂ）に送信する（Ｓ１２０２）。【０１０３】
分析チェーン更新プログラム９１１は、開示要求に対する回答を受信した場合（Ｓ７０１：Ｎｏ、Ｓ１２０１：Ｎｏ）、回答が許可であるか否かを判定する（Ｓ１２０３）。回答が許可の場合（Ｓ１２０３：Ｙｅｓ）、分析チェーン更新プログラム９１１は、開示要求対象のオブジェクトに対応したレコードにおけるアクセスに、要求元のユーザＡのＩＤと、許可されたアクセス種別「参照」とを含める（Ｓ１２０４）。【０１０４】
Ｓ１２０４の後、又は、回答が拒否の場合（Ｓ１２０３：Ｎｏ）、分析チェーン更新プログラム９１１は、回答の通知を、要求元（分析クライアント１１０Ａ）に送信する（Ｓ１２０５）。【０１０５】
実施例２によれば、分析サーバ９００を経由したユーザ間のやり取りにより、オブジェクトの参照の許否を制御することができる。
【実施例３】
【０１０６】
実施例３を説明する。その際、実施例１及び２との相違点を主に説明し、実施例１及び２との共通点については説明を省略又は簡略する。なお、分析実行プログラム２１２を、実施例３では、「分析実行プログラム１３１２」と呼ぶ。【０１０７】
実施例３によれば、分析対象時区間に代えて又は加えて、分析実行プログラム１３１２は、オブジェクトに従う処理の実行の結果として出力されたデータが複数のデータブロックに分割され、複数のデータブロックの各々について、いずれかの格納済データブロックと一致するか否かの重複判定を行う。【０１０８】
図１３は、実施例３に係る分析制御処理のフローを示す。【０１０９】
分析実行プログラム１３１２は、Ｓ８０１及びＳ８０２の後、Ｓ１３０２〜Ｓ１３０４を行う。すなわち、分析実行プログラム１３１２は、実行対象オブジェクトに関連付いている入力ＩＤ及び分析対象時区間に従うデータを入力する（Ｓ１３０２）。また、分析実行プログラム１３１２は、実行対象オブジェクトに関連付いている分析プログラム及びパラメータを読み出す（Ｓ１３０３）。分析実行プログラム１３１２は、Ｓ１３０２の入力データとＳ１３０３のパラメータとを用いてＳ１３０３の分析プログラムを実行する（Ｓ１３０４）。【０１１０】
分析実行プログラム１３１２は、第１の条件が満たされているか否かを判定する（Ｓ１３０５）。第１の条件は、実施例１と同じでよい。【０１１１】
Ｓ１３０５の判定結果が真の場合（Ｓ１３０５：Ｙｅｓ）、分析実行プログラム１３１２は、Ｓ１３０４の結果としての出力データを、第１のデータ分割方式で複数のデータブロックに分割する（Ｓ１３０９）。【０１１２】
Ｓ１３０５の判定結果が偽の場合（Ｓ１３０５：Ｎｏ）、分析実行プログラム１３１２は、第２の条件が満たされているか否かを判定する（Ｓ１３０６）。第２の条件も、実施例１と同じでよい。【０１１３】
Ｓ１３０６の判定結果が真の場合（Ｓ８０４：Ｙｅｓ）、分析実行プログラム１３１２は、Ｓ１３０４の結果としての出力データを、第２のデータ分割方式で複数のデータブロックに分割する（Ｓ１３０８）。【０１１４】
第１のデータ分割方式によれば、複数のデータブロックの各々のサイズは、所定サイズである。第２のデータ分割方式によれば、複数のデータブロックの各々のサイズは、そのデータブロックに対応した時刻又は時区間に対応した値（例えば評価結果）に応じたサイズである。すなわち、第１の範囲分割方式によれば、データブロックのサイズは同じであり、第２のデータ分割方式によれば、データブロックのサイズは、対応する値によって異なり得る。【０１１５】
複数のデータブロックの各々について、ループＣ（Ｓ１３１０及びＳ１３１１）が実行される。以下、１つのデータブロックを例に取る（図１３の説明において、「対象データブロック」と言う。）【０１１６】
分析実行プログラム１３１２は、対象データブロックがいずれかの格納済データブロックと一致のデータブロックか否かを判定する（Ｓ１３１０）。Ｓ１３１０では、対象データブロックが圧縮され、圧縮前の対象データブロックと、圧縮後の対象データブロックの両方を用いて、Ｓ１３１０の判定が行われてもよい。【０１１７】
Ｓ１３１０の判定結果が偽の場合（Ｓ１３１０：Ｎｏ）、分析実行プログラム１３１２は、対象データブロックを分析データに格納する（Ｓ１３１１）。【０１１８】
一方、Ｓ１３１０の判定結果が偽の場合（Ｓ１３１０：Ｙｅｓ）、分析実行プログラム１３１２は、対象データブロックの格納をスキップする。【０１１９】
さて、Ｓ１３０６の判定結果が偽の場合（Ｓ１３０６：Ｎｏ）、分析実行プログラムは、Ｓ１３０４の結果としての出力データを、複数のデータブロックに分割すること無しに（或いは複数のデータブロックに分割して）分析データに格納する（Ｓ１３０７）。【０１２０】
実施例３によれば、いずれかの格納済データブロックと一致のデータブロックの格納を回避することができる。これにより、分析データのデータ量を削減できる。【０１２１】
以上、本発明の幾つかの実施例を説明したが、それらは本発明の説明のための例示であって、本発明の範囲をそれらの実施例に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。例えば、上述したように、分析対象時区間は、分析対象範囲の一例であるが、分析対象範囲は、ＲＩＤ範囲のように他種の方法で表現されてよい。
【符号の説明】
【０１２２】
１００、９００：分析サーバ
【図１】
2017145386.tif 000003
【図２】
2017145386.tif 000004
【図３】
2017145386.tif 000005
【図４】
2017145386.tif 000006
【図５】
2017145386.tif 000007
【図６】
2017145386.tif 000008
【図７】
2017145386.tif 000009
【図８】
2017145386.tif 000010
【図９】
2017145386.tif 000011
【図１０】
2017145386.tif 000012
【図１１】
2017145386.tif 000013
【図１２】
2017145386.tif 000014
【図１３】
2017145386.tif 000015
【国際調査報告】
2017145386.tif 000016
2017145386.tif 000017
2017145386.tif 000018