(57)【特許請求の範囲】
【請求項１】
（１）複数の情報源端末より送信されたストリームデータを蓄積する複数のデータ蓄積装置と、（２）このデータ蓄積装置から取得した前記ストリームデータに対しフィルタ処理を実行する複数のフィルタ処理装置と、（３）前記ストリームデータの種別を示すＳＩＤごとに、このＳＩＤを持つストリームデータに対し実行すべき前記フィルタ処理およびそのフィルタ処理の適用手順を示した処理手順情報を前記フィルタ処理装置へ送信する情報管理装置とを備えるストリームデータ処理システムにおけるストリームデータ処理方法であって、
前記データ蓄積装置はそれぞれ、前記ストリームデータを蓄積する蓄積データ記憶部と、前記ストリームデータの前記蓄積データ記憶部への出力および自身のキュー部への蓄積を行う１以上の追記部と、前記蓄積データ記憶部から前記ストリームデータを取得し、この取得したストリームデータを前記追記部へ送信する蓄積データ取得部とを備え、
前記情報管理装置は、
外部装置から、前記フィルタ処理装置による前記ストリームデータの取得先となる追記部の変更と、前記取得先となる追記部が変更されるストリームデータのＳＩＤとを含むキュータイプ変更通知を受信したとき、
前記処理手順情報のうち、前記ストリームデータのＳＩＤに関する情報に前記追記部の変更内容を反映し、
前記データ蓄積装置へ、前記キュータイプ変更通知を送信し、
前記新たな取得先となる追記部を備える前記データ蓄積装置は、
前記新たな取得先となる追記部へ、前記キュータイプ変更通知を送信し、
前記キュータイプ変更通知を受信した追記部は、
当該追記部での処理中のストリームデータのＳＩＤと、前記キュータイプ変更通知の受信時刻とを前記データ蓄積装置の記憶部の追記部情報に記録し、
前記蓄積データ取得部は、
前記蓄積データ記憶部から前記ストリームデータを取得するとき、前記記憶部の追記部情報を参照し、前記取得したストリームデータの送信先となる前記追記部のキュータイプが変更されたと判断した場合、
前記追記部情報に示される前記キュータイプ変更通知の受信時刻と、前記取得したストリームデータの受信時刻とを参照して、そのストリームデータの受信時刻が前記キュータイプの変更通知の受信時刻より前の前記ストリームデータを、前記変更前の追記部へ送信し、その受信時刻が前記キュータイプの変更通知の受信時刻以降の前記ストリームデータを、前記変更前の追記部へ送信しないことを特徴とするストリームデータ処理方法。
【請求項２】
前記情報管理装置は、
前記情報源端末から、前記ＳＩＤを含む当該ストリームデータの送信先割り当て要求を受信したとき、記憶部に記憶された、前記ＳＩＤごとに、当該ＳＩＤのストリームデータの送信先であるデータ蓄積装置の識別情報を示したシステム情報を参照して、当該情報源端末へこのストリームデータの送信先である前記データ蓄積装置の識別情報を送信し、
前記情報源端末は、
前記情報管理装置から送信された識別情報に対応する前記データ蓄積装置へ前記ストリームデータを送信し、
前記データ蓄積装置の蓄積データ取得部はそれぞれ、前記ストリームデータを取得したとき、この取得したストリームデータを前記追記部に出力するとともに、前記蓄積データ記憶部に出力し、
前記フィルタ処理装置は、
前記データ蓄積装置の追記部のキュー部におけるキュー状態に基づき、前記ストリームデータの取得先となる前記データ蓄積装置を選択し、
前記選択されたデータ蓄積装置の追記部から前記ストリームデータを取得し、
前記情報管理装置から受信した前記処理手順情報と、前記取得したストリームデータに付されたＳＩＤとを参照して、前記取得したストリームデータに対し実行すべきフィルタ処理を決定し、前記決定したフィルタ処理を実行し、
前記データ蓄積装置はそれぞれ、
前記情報源端末からストリームデータを受信し、この受信したストリームデータを前記蓄積データ記憶部に出力したとき、このストリームデータのＳＩＤと、このストリームデータの受信時刻と、自データ蓄積装置の識別情報およびこのストリームデータの記憶領域を示す情報とを対応付けた追記データ位置情報を作成し、前記情報管理装置へ送信し、
前記情報管理装置は、
前記データ蓄積装置それぞれから送信された前記追記データ位置情報を記憶部に記憶し、
前記外部装置から、当該ストリームデータのＳＩＤおよび受信時刻を含む前記ストリームデータの検索要求を受信したとき、
前記検索要求に含まれる前記ＳＩＤおよび前記受信時刻をキーとして、前記記憶部から、当該ストリームデータに関する前記追記データ位置情報を検索し、
前記検索した追記データ位置情報を前記外部装置へ送信することを特徴とする請求項１に記載のストリームデータ処理方法。
【請求項３】
前記情報管理装置は、
前記情報源端末から、前記ＳＩＤを含む当該ストリームデータの送信先割り当て要求を受信したとき、記憶部に記憶された、前記ＳＩＤごとに、当該ＳＩＤのストリームデータの送信先であるデータ蓄積装置の識別情報を示したシステム情報を参照して、当該情報源端末へこのストリームデータの送信先である前記データ蓄積装置の識別情報を送信し、
前記外部装置から、前記再フィルタ処理の対象であるストリームデータに関する追記データ位置情報と前記再フィルタ処理の内容とを示した再フィルタ指示情報を受信したとき、
前記再フィルタ処理の対象とするストリームデータに用いる再フィルタ用ＳＩＤを発行し、
前記記憶部のシステム情報に、前記再フィルタ用ＳＩＤと、このＳＩＤを持つストリームデータを蓄積するデータ蓄積装置の識別情報とを対応付けた情報を追加し、
前記記憶部の前記処理手順情報に、前記発行した再フィルタ用ＳＩＤと、このＳＩＤを持つストリームデータに対する前記再フィルタ処理の内容と対応付けた情報を追加することで、前記再フィルタ処理の内容を前記処理手順情報に反映し、
前記再フィルタ処理の内容を反映した処理手順情報を、前記フィルタ処理装置へ送信し、
前記複数のデータ蓄積装置のうち、いずれか１つのデータ蓄積装置を選択し、
この選択したデータ蓄積装置へ前記発行した再フィルタ用ＳＩＤを含む前記再フィルタ処理指示情報を送信し、
前記再フィルタ処理指示情報を受信したデータ蓄積装置は、
前記受信した再フィルタ指示情報に示される前記データ蓄積装置の記憶領域から、前記再フィルタ処理の対象であるストリームデータを取得し、
前記取得した再フィルタ処理の対象であるストリームデータに前記再フィルタ用ＳＩＤを付与し、
前記再フィルタ指示情報に含まれる再フィルタ用ＳＩＤをキーとして、前記情報管理装置から、このデータ蓄積装置が接続すべき前記データ蓄積装置の識別情報を取得し、
前記取得した識別情報に示される前記データ蓄積装置へ接続して、このデータ蓄積装置へ前記ストリームデータを送信し、
前記フィルタ処理装置は、
前記データ蓄積装置の追記部から、前記再フィルタ用ＳＩＤを持つストリームデータを取得したとき、
前記情報管理装置から受信した前記再フィルタ処理の内容を反映した処理手順情報を参照して、前記フィルタ処理を実行することを特徴とする請求項２に記載のストリームデータ処理方法。
【請求項４】
前記情報管理装置は、
前記外部装置から、前記再フィルタ処理の対象とするストリームデータのＳＩＤ、受信時刻および当該ストリームデータに対し実行すべき再フィルタ処理の内容を示した再フィルタ指示情報を受信したとき、
前記再フィルタ処理の対象とするストリームデータのＳＩＤおよび受信時刻をキーとして、前記記憶部から、当該ストリームデータに関する前記追記データ位置情報を検索し、
前記検索した追記データ位置情報および前記再フィルタ処理の内容を示した再フィルタ指示情報を、前記複数のデータ蓄積装置のうち、いずれか１つのデータ蓄積装置へ送信することを特徴とする請求項３に記載のストリームデータ処理方法。
【請求項５】
前記情報管理装置は、
前記受信した再フィルタ指示情報に示される再フィルタ処理の内容が、当該ストリームデータに対するウィンドウ処理を含むか否かを判断し、
前記受信した再フィルタ指示情報に示される再フィルタ処理の内容が、当該ストリームデータに対するウィンドウ処理を含まないと判断した場合、
前記再フィルタ処理指示情報の送信先である前記データ蓄積装置を選択するとき、前記記憶部から検索された当該ストリームデータに関する追記データ位置情報を、当該ストリームデータを有するデータ蓄積装置ごとに分け、前記分けた追記データ位置情報を前記再フィルタ指示情報に含め、当該ストリームデータを有するデータ蓄積装置それぞれへ送信することを特徴とする請求項３または請求項４に記載のストリームデータ処理方法。
【請求項６】
（１）複数の情報源端末より送信されたストリームデータを蓄積する蓄積データ記憶部、前記ストリームデータの前記蓄積データ記憶部への出力と自身のキュー部への蓄積を行う１以上の追記部、および、前記蓄積データ記憶部から前記ストリームデータを取得し、この取得したストリームデータを前記追記部へ送信する蓄積データ取得部を備える複数のデータ蓄積装置と、（２）このデータ蓄積装置から取得した前記ストリームデータに対しフィルタ処理を実行する複数のフィルタ処理装置と、（３）前記ストリームデータの種別を示すＳＩＤごとに、このＳＩＤを持つストリームデータに対し実行すべき前記フィルタ処理およびそのフィルタ処理の適用手順を示した処理手順情報を前記フィルタ処理装置へ送信する情報管理装置とを備えるストリームデータ処理システムに用いられるコンピュータである前記情報管理装置において、
外部装置から、前記フィルタ処理装置による前記ストリームデータの取得先となる追記部の変更と、前記取得先となる追記部が変更されるストリームデータのＳＩＤとを含むキュータイプ変更通知を受信するステップと、
前記処理手順情報のうち、前記ストリームデータのＳＩＤに関する情報に前記追記部の変更内容を反映するステップと、
前記データ蓄積装置へ、前記キュータイプ変更通知を送信するステップと、
を実行させ、
前記新たな取得先となる追記部を備えるコンピュータである前記データ蓄積装置に、
前記新たな取得先となる追記部へ、前記キュータイプ変更通知を送信するステップと、
前記キュータイプ変更通知を受信した追記部において、
当該追記部での処理中のストリームデータのＳＩＤと、前記キュータイプ変更通知の受信時刻とを前記データ蓄積装置の記憶部の追記部情報に記録するステップと、
を実行させ
前記蓄積データ記憶部から前記ストリームデータを取得するとき、前記記憶部の追記部情報を参照し、前記取得したストリームデータの送信先となる前記追記部のキュータイプが変更されたと判断した場合、
前記追記部情報に示される前記キュータイプ変更通知の受信時刻と、前記取得したストリームデータの受信時刻とを参照して、そのストリームデータの受信時刻が前記キュータイプの変更通知の受信時刻より前の前記ストリームデータを、前記変更前の追記部へ送信させ、その受信時刻が前記キュータイプの変更通知の受信時刻以降の前記ストリームデータを、前記変更前の追記部へ送信させないことを特徴とするストリームデータ処理プログラム。
【請求項７】
（１）複数の情報源端末より送信されたストリームデータを蓄積する蓄積データ記憶部、前記ストリームデータの前記蓄積データ記憶部への出力と自身のキュー部への蓄積を行う１以上の追記部、および、前記蓄積データ記憶部から前記ストリームデータを取得し、この取得したストリームデータを前記追記部へ送信する蓄積データ取得部を備える複数のデータ蓄積装置と、（２）このデータ蓄積装置から取得した前記ストリームデータに対しフィルタ処理を実行する複数のフィルタ処理装置と、（３）前記ストリームデータの種別を示すＳＩＤごとに、このＳＩＤを持つストリームデータに対し実行すべき前記フィルタ処理およびそのフィルタ処理の適用手順を示した処理手順情報を前記フィルタ処理装置へ送信する情報管理装置とを備えるストリームデータ処理システムであって、
前記情報管理装置は、
外部装置から、前記フィルタ処理装置による前記ストリームデータの取得先となる追記部の変更と、前記取得先となる追記部が変更されるストリームデータのＳＩＤとを含むキュータイプ変更通知を受信したとき、
前記処理手順情報のうち、前記ストリームデータのＳＩＤに関する情報に前記追記部の変更内容を反映し、前記ストリームデータの新たな取得先となる前記追記部を備える前記データ蓄積装置へ、前記キュータイプ変更通知を送信するデータ再フィルタ制御部を備え、
前記データ蓄積装置は、
前記キュータイプ変更通知を受信したとき、前記新たな取得先となる追記部へ、前記キュータイプ変更通知を送信するプロセス管理部を備え、
前記追記部は、
前記キュータイプ変更通知を受信したとき、当該追記部での処理中のストリームデータのＳＩＤと、前記キュータイプ変更通知の受信時刻とを前記データ蓄積装置の記憶部の追記部情報に記録し、
前記蓄積データ取得部は、
前記蓄積データ記憶部から前記ストリームデータを取得するとき、前記記憶部の追記部情報を参照し、前記取得したストリームデータの送信先となる前記追記部のキュータイプが変更されたと判断した場合、
前記追記部情報に示される前記キュータイプ変更通知の受信時刻と、前記取得したストリームデータの受信時刻とを参照して、そのストリームデータの受信時刻が前記キュータイプの変更通知の受信時刻より前の前記ストリームデータを、前記変更前の追記部へ送信し、その受信時刻が前記キュータイプの変更通知の受信時刻以降の前記ストリームデータを、前記変更前の追記部へ送信しないことを特徴とするストリームデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータ処理技術に関する。
【背景技術】
【０００２】
従来、各種センサやＩＣタグ、携帯電話等により様々なデータを収集し、この収集したデータにフィルタ処理を行い、所定の利用先へ流通させるストリームデータ処理技術がある。このようなストリームデータ処理技術として、telegraphCQ（非特許文献１参照）が提案されている。また、このようなストリームデータ処理技術において、受信したデータをＤＢ（データベース）に蓄積し、このデータの検索を可能とする技術も提案されている（非特許文献２参照）。
【非特許文献１】Sirish Chandrasekaran,Owen Cooper,AmoIDeshpande,Michael J.Franklin,Joseph M. Hellerstein,Wei Hong,SaileshKrishnamurthy,Sam  Madden,Vijayshankar Raman,Fred Reiss,andMehul A.Shah.,“TelegraphCQ:Continuous Dataflow Processing for an Uncertain World,” CIDR(2003)
【非特許文献２】山田他、ストリーム処理とデータベースを統合した実世界情報管理基盤、電子情報通信学会、データ工学ワークショップＤＥＷＳ２００６、2006
【発明の開示】
【発明が解決しようとする課題】
【０００３】
前記した技術のいずれもが、単一のサーバがストリームデータ処理を実行するものである。つまり、前記した複数のサーバがストリームデータ処理を実行することについては考慮されていない。このため、多数の情報源からストリームデータを受信する場合、システム全体の処理能力が低下してしまうという問題があった。また、サーバが複数のストリームデータの取得先からストリームデータを取得する場合において、このストリームデータの取得先を変更した場合でも、このサーバが一連のストリームデータに対し重複や漏れのないフィルタ処理を行うことについて考慮されていなかった。
【０００４】
そこで、本発明は前記した問題を解決し、様々な情報源からストリームデータを受信する場合であっても、システム全体の処理能力が低下しないようにし、かつ、サーバが一連のストリームデータに対し重複や漏れのないフィルタ処理を行うことを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、（１）複数の情報源端末より送信されたストリームデータを蓄積する複数のデータ蓄積装置と、（２）このデータ蓄積装置から取得した前記ストリームデータに対しフィルタ処理を実行する複数のフィルタ処理装置と、（３）前記ストリームデータの種別を示すＳＩＤごとに、このＳＩＤを持つストリームデータに対し実行すべき前記フィルタ処理およびそのフィルタ処理の適用手順を示した処理手順情報を前記フィルタ処理装置へ送信する情報管理装置とを備えるストリームデータ処理システムにおけるストリームデータ処理方法であって、前記データ蓄積装置はそれぞれ、前記ストリームデータを蓄積する蓄積データ記憶部と、前記ストリームデータの前記蓄積データ記憶部への出力および自身のキュー部への蓄積を行う１以上の追記部と、前記蓄積データ記憶部から前記ストリームデータを取得し、この取得したストリームデータを前記追記部へ送信する蓄積データ取得部とを備え、前記情報管理装置は、外部装置から、前記フィルタ処理装置による前記ストリームデータの取得先となる追記部の変更と、前記取得先となる追記部が変更されるストリームデータのＳＩＤとを含むキュータイプ変更通知を受信したとき、前記処理手順情報のうち、前記ストリームデータのＳＩＤに関する情報に前記追記部の変更内容を反映し、前記データ蓄積装置へ、前記キュータイプ変更通知を送信し、前記新たな取得先となる追記部を備える前記データ蓄積装置は、前記新たな取得先となる追記部へ、前記キュータイプ変更通知を送信し、前記キュータイプ変更通知を受信した追記部は、当該追記部での処理中のストリームデータのＳＩＤと、前記キュータイプ変更通知の受信時刻とを前記データ蓄積装置の記憶部の追記部情報に記録し、前記蓄積データ取得部は、前記蓄積データ記憶部から前記ストリームデータを取得するとき、前記記憶部の追記部情報を参照し、前記取得したストリームデータの送信先となる前記追記部のキュータイプが変更されたと判断した場合、前記追記部情報に示される前記キュータイプ変更通知の受信時刻と、前記取得したストリームデータの受信時刻とを参照して、そのストリームデータの受信時刻が前記キュータイプの変更通知の受信時刻より前の前記ストリームデータを、前記変更前の追記部へ送信し、その受信時刻が前記キュータイプの変更通知の受信時刻以降の前記ストリームデータを、前記変更前の追記部へ送信しないことを特徴とするストリームデータ処理方法とした。
【０００６】
請求項６に記載の発明は、（１）複数の情報源端末より送信されたストリームデータを蓄積する蓄積データ記憶部、前記ストリームデータの前記蓄積データ記憶部への出力と自身のキュー部への蓄積を行う１以上の追記部、および、前記蓄積データ記憶部から前記ストリームデータを取得し、この取得したストリームデータを前記追記部へ送信する蓄積データ取得部を備える複数のデータ蓄積装置と、（２）このデータ蓄積装置から取得した前記ストリームデータに対しフィルタ処理を実行する複数のフィルタ処理装置と、（３）前記ストリームデータの種別を示すＳＩＤごとに、このＳＩＤを持つストリームデータに対し実行すべき前記フィルタ処理およびそのフィルタ処理の適用手順を示した処理手順情報を前記フィルタ処理装置へ送信する情報管理装置とを備えるストリームデータ処理システムに用いられるコンピュータである前記情報管理装置において、外部装置から、前記フィルタ処理装置による前記ストリームデータの取得先となる追記部の変更と、前記取得先となる追記部が変更されるストリームデータのＳＩＤとを含むキュータイプ変更通知を受信するステップと、前記処理手順情報のうち、前記ストリームデータのＳＩＤに関する情報に前記追記部の変更内容を反映するステップと、前記データ蓄積装置へ、前記キュータイプ変更通知を送信するステップと、を実行させ、前記新たな取得先となる追記部を備えるコンピュータである前記データ蓄積装置に、前記新たな取得先となる追記部へ、前記キュータイプ変更通知を送信するステップと、前記キュータイプ変更通知を受信した追記部において、当該追記部での処理中のストリームデータのＳＩＤと、前記キュータイプ変更通知の受信時刻とを前記データ蓄積装置の記憶部の追記部情報に記録するステップと、を実行させ、前記蓄積データ記憶部から前記ストリームデータを取得するとき、前記記憶部の追記部情報を参照し、前記取得したストリームデータの送信先となる前記追記部のキュータイプが変更されたと判断した場合、前記追記部情報に示される前記キュータイプ変更通知の受信時刻と、前記取得したストリームデータの受信時刻とを参照して、そのストリームデータの受信時刻が前記キュータイプの変更通知の受信時刻より前の前記ストリームデータを、前記変更前の追記部へ送信させ、その受信時刻が前記キュータイプの変更通知の受信時刻以降の前記ストリームデータを、前記変更前の追記部へ送信させないことを特徴とするストリームデータ処理プログラムとした。
【０００７】
請求項７に記載の発明は、（１）複数の情報源端末より送信されたストリームデータを蓄積する蓄積データ記憶部、前記ストリームデータの前記蓄積データ記憶部への出力と自身のキュー部への蓄積を行う１以上の追記部、および、前記蓄積データ記憶部から前記ストリームデータを取得し、この取得したストリームデータを前記追記部へ送信する蓄積データ取得部を備える複数のデータ蓄積装置と、（２）このデータ蓄積装置から取得した前記ストリームデータに対しフィルタ処理を実行する複数のフィルタ処理装置と、（３）前記ストリームデータの種別を示すＳＩＤごとに、このＳＩＤを持つストリームデータに対し実行すべき前記フィルタ処理およびそのフィルタ処理の適用手順を示した処理手順情報を前記フィルタ処理装置へ送信する情報管理装置とを備えるストリームデータ処理システムであって、前記情報管理装置は、外部装置から、前記フィルタ処理装置による前記ストリームデータの取得先となる追記部の変更と、前記取得先となる追記部が変更されるストリームデータのＳＩＤとを含むキュータイプ変更通知を受信したとき、前記処理手順情報のうち、前記ストリームデータのＳＩＤに関する情報に前記追記部の変更内容を反映し、前記ストリームデータの新たな取得先となる前記追記部を備える前記データ蓄積装置へ、前記キュータイプ変更通知を送信するデータ再フィルタ制御部を備え、前記データ蓄積装置は、前記キュータイプ変更通知を受信したとき、前記新たな取得先となる追記部へ、前記キュータイプ変更通知を送信するプロセス管理部を備え、前記追記部は、前記キュータイプ変更通知を受信したとき、当該追記部での処理中のストリームデータのＳＩＤと、前記キュータイプ変更通知の受信時刻とを前記データ蓄積装置の記憶部の追記部情報に記録し、前記蓄積データ取得部は、前記蓄積データ記憶部から前記ストリームデータを取得するとき、前記記憶部の追記部情報を参照し、前記取得したストリームデータの送信先となる前記追記部のキュータイプが変更されたと判断した場合、前記追記部情報に示される前記キュータイプ変更通知の受信時刻と、前記取得したストリームデータの受信時刻とを参照して、そのストリームデータの受信時刻が前記キュータイプの変更通知の受信時刻より前の前記ストリームデータを、前記変更前の追記部へ送信し、その受信時刻が前記キュータイプの変更通知の受信時刻以降の前記ストリームデータを、前記変更前の追記部へ送信しないことを特徴とするストリームデータ処理システムとした。
【０００８】
このようにすることで、ストリームデータ処理システムは、複数のデータ蓄積装置および複数のフィルタ処理装置を用いるので、様々な情報源からストリームデータを受信する場合であっても、システム全体の処理能力が低下しないようにすることができる。また、フィルタ処理装置がストリームデータの取得先となるデータ蓄積装置（データ蓄積装置の追記部）を変更した場合でも、フィルタ処理装置は一連のストリームデータに対し、漏れや重複なくフィルタ処理を行うことができる。
【０００９】
請求項２に記載の発明は、請求項１に記載のストリームデータ処理方法において、前記情報管理装置が、前記情報源端末から、前記ＳＩＤを含む当該ストリームデータの送信先割り当て要求を受信したとき、記憶部に記憶された、前記ＳＩＤごとに、当該ＳＩＤのストリームデータの送信先であるデータ蓄積装置の識別情報を示したシステム情報を参照して、当該情報源端末へこのストリームデータの送信先である前記データ蓄積装置の識別情報を送信し、前記情報源端末は、前記情報管理装置から送信された識別情報に対応する前記データ蓄積装置へ前記ストリームデータを送信し、前記データ蓄積装置の蓄積データ取得部はそれぞれ、前記ストリームデータを取得したとき、この取得したストリームデータを前記追記部に出力するとともに、前記蓄積データ記憶部に出力し、前記フィルタ処理装置は、前記データ蓄積装置の追記部のキュー部におけるキュー状態に基づき、前記ストリームデータの取得先となる前記データ蓄積装置を選択し、前記選択されたデータ蓄積装置の追記部から前記ストリームデータを取得し、前記情報管理装置から受信した前記処理手順情報と、前記取得したストリームデータに付されたＳＩＤとを参照して、前記取得したストリームデータに対し実行すべきフィルタ処理を決定し、前記決定したフィルタ処理を実行し、前記データ蓄積装置はそれぞれ、前記情報源端末からストリームデータを受信し、この受信したストリームデータを前記蓄積データ記憶部に出力したとき、このストリームデータのＳＩＤと、このストリームデータの受信時刻と、自データ蓄積装置の識別情報およびこのストリームデータの記憶領域を示す情報とを対応付けた追記データ位置情報を作成し、前記情報管理装置へ送信し、前記情報管理装置は、前記データ蓄積装置それぞれから送信された前記追記データ位置情報を記憶部に記憶し、前記外部装置から、当該ストリームデータのＳＩＤおよび受信時刻を含む前記ストリームデータの検索要求を受信したとき、前記検索要求に含まれる前記ＳＩＤおよび前記受信時刻をキーとして、前記記憶部から、当該ストリームデータに関する前記追記データ位置情報を検索し、前記検索した追記データ位置情報を前記外部装置へ送信することを特徴とするストリームデータ処理方法とした。
【００１０】
このような方法によれば、ストリームデータ処理システムは、複数のデータ蓄積装置および複数のフィルタ処理装置を用いるので、様々な情報源からストリームデータを受信する場合であっても、システム全体の処理能力が低下しないようにすることができる。また、このフィルタ処理装置はそれぞれ、データ蓄積装置からストリームデータを取得するとき、各データ蓄積装置におけるキュー状態に基づき、ストリームデータを取得するデータ蓄積装置を決定する。例えば、フィルタ処理装置は、より入力スループットが大きいデータ蓄積装置からストリームデータを取得するようにする。これにより、フィルタ処理装置同士で処理負荷の情報をやりとりしなくても、各フィルタ処理装置同士のフィルタ処理負荷のバランスをとることができる。さらに、データ蓄積装置はそれぞれ、この情報源端末から受信したストリームデータをキュー部に送信するとともに、蓄積データ記憶部にも蓄積する。そして、データ蓄積装置はそれぞれ、自データ蓄積装置に蓄積したストリームデータの記憶位置を情報管理装置に送信し、情報管理装置は、この記憶位置（追記データ位置情報）を記憶部に記憶する。このようにすることで、情報管理装置は外部装置から再フィルタ処理の対象となるストリームデータの検索要求を受け付けたとき、このストリームデータの記憶位置を外部装置へ応答することができる。つまり、外部装置は、再フィルタ処理の対象のストリームデータの記憶位置を知ることができる。なお、このような追記データ位置情報を受信した外部装置は、情報管理装置へ再フィルタ処理の指示を送信するとき、この追記データ位置情報をそのまま送信してしてもよいし、この追記データ位置情報に示されるストリームデータのうち、所定のストリームデータを選択して、再フィルタ処理の指示を送信してもよい。
【００１１】
請求項３に記載の発明は、請求項２に記載のフィルタ処理方法において、前記情報管理装置が、情報源端末から、前記ＳＩＤを含む当該ストリームデータの送信先割り当て要求を受信したとき、記憶部に記憶された、前記ＳＩＤごとに、当該ＳＩＤのストリームデータの送信先であるデータ蓄積装置の識別情報を示したシステム情報を参照して、当該情報源端末へこのストリームデータの送信先である前記データ蓄積装置の識別情報を送信し、前記外部装置から、前記再フィルタ処理の対象であるストリームデータに関する追記データ位置情報と前記再フィルタ処理の内容とを示した再フィルタ指示情報を受信したとき、前記再フィルタ処理の対象とするストリームデータに用いる再フィルタ用ＳＩＤを発行し、前記記憶部のシステム情報に、前記再フィルタ用ＳＩＤと、このＳＩＤを持つストリームデータを蓄積するデータ蓄積装置の識別情報とを対応付けた情報を追加し、前記記憶部の前記処理手順情報に、前記発行した再フィルタ用ＳＩＤと、このＳＩＤを持つストリームデータに対する前記再フィルタ処理の内容と対応付けた情報を追加することで、前記再フィルタ処理の内容を前記処理手順情報に反映し、前記再フィルタ処理の内容を反映した処理手順情報を、前記フィルタ処理装置へ送信し、前記複数のデータ蓄積装置のうち、いずれか１つのデータ蓄積装置を選択し、この選択したデータ蓄積装置へ前記発行した再フィルタ用ＳＩＤを含む前記再フィルタ処理指示情報を送信し、前記再フィルタ処理指示情報を受信したデータ蓄積装置は、前記受信した再フィルタ指示情報に示される前記データ蓄積装置の記憶領域から、前記再フィルタ処理の対象であるストリームデータを取得し、前記取得した再フィルタ処理の対象であるストリームデータに前記再フィルタ用ＳＩＤを付与し、前記再フィルタ指示情報に含まれる再フィルタ用ＳＩＤをキーとして、前記情報管理装置から、このデータ蓄積装置が接続すべき前記データ蓄積装置の識別情報を取得し、前記取得した識別情報に示される前記データ蓄積装置へ接続して、このデータ蓄積装置へ前記ストリームデータを送信し、前記フィルタ処理装置は、前記データ蓄積装置の追記部から、前記再フィルタ用ＳＩＤを持つストリームデータを取得したとき、前記情報管理装置から受信した前記再フィルタ処理の内容を反映した処理手順情報を参照して、前記フィルタ処理を実行することを特徴とするストリームデータ処理方法とした。
【００１２】
このような方法によれば、外部装置は、情報管理装置から、再フィルタ処理の対象のストリームデータの記憶位置を受信することができる。つまり、外部装置は、情報管理装置に、この再フィルタ処理の対象のストリームデータの記憶位置を含む再フィルタ指示情報を送信する。そして、この情報管理装置は、システム内のデータ蓄積装置に、この再フィルタ処理指示情報に示されるデータ蓄積装置から当該ストリームデータを取得させる。そして、このストリームデータを取得したデータ蓄積装置は、このストリームデータを自データ蓄積装置のキュー部に流し込む。次に、フィルタ処理装置は、このデータ蓄積装置のキュー部に流し込まれた再フィルタ処理の対象のストリームデータを取得すると、情報管理装置から受信しておいた処理手順情報（再フィルタ処理の内容を反映した処理手順情報）を参照して、このストリームデータに対し、再フィルタ処理を実行することができる。
【００１３】
請求項４に記載の発明は、請求項３に記載のストリームデータ処理方法において、前記情報管理装置が、前記外部装置から、前記再フィルタ処理の対象とするストリームデータのＳＩＤ、受信時刻および当該ストリームデータに対し実行すべき再フィルタ処理の内容を示した再フィルタ指示情報を受信したとき、前記再フィルタ処理の対象とするストリームデータのＳＩＤおよび受信時刻をキーとして、前記記憶部から、当該ストリームデータに関する前記追記データ位置情報を検索し、前記検索した追記データ位置情報および前記再フィルタ処理の内容を示した再フィルタ指示情報を、前記複数のデータ蓄積装置のうち、いずれか１つのデータ蓄積装置へ送信することを特徴とするストリームデータ処理方法とした。
【００１４】
このような方法によれば、情報管理装置は、外部装置へ再フィルタ処理の対象のストリームデータに関する追記データ位置情報を送信しなくても、フィルタ処理装置において再フィルタ処理を実行することができる。
【００１５】
請求項５に記載の発明は、請求項３または請求項４に記載のストリームデータ処理方法において、前記情報管理装置が、前記受信した再フィルタ指示情報に示される再フィルタ処理の内容が、当該ストリームデータに対するウィンドウ処理を含むか否かを判断し、前記受信した再フィルタ指示情報に示される再フィルタ処理の内容が、当該ストリームデータに対するウィンドウ処理を含まないと判断した場合、前記再フィルタ処理指示情報の送信先である前記データ蓄積装置を選択するとき、前記記憶部から検索された当該ストリームデータに関する追記データ位置情報を、当該ストリームデータを有するデータ蓄積装置ごとに分け、前記分けた追記データ位置情報を前記再フィルタ指示情報に含め、当該ストリームデータを有するデータ蓄積装置それぞれへ送信することを特徴とするストリームデータ処理方法とした。
【００１６】
このような方法によれば、情報管理装置は、再フィルタ処理の内容が、当該ストリームデータに対するウィンドウ処理を行う必要がなければ、当該ストリームデータを有するデータ蓄積装置それぞれが、自データ蓄積装置の蓄積データ記憶部からストリームデータを取得し、追記部に流し込むことになる。従って、各データ蓄積装置は再フィルタ処理の対象のストリームデータの読み出しを効率よく行うことができる。
【発明の効果】
【００１７】
本発明によれば、ストリームデータ処理システムが様々な情報源からストリームデータを受信する場合であっても、システム全体の処理能力を低下させない。また、ストリームデータ処理システムは、一連のストリームデータに対し漏れや重複なくフィルタ処理を行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を実施するための最良の形態（以下、実施の形態という）を、第１の実施の形態ないし第３の実施の形態に分けて説明する。なお、各実施の形態におけるストリームデータは、例えば、ＸＭＬ（Extensible Markup Language）形式のデータ等である。
【００１９】
≪第１の実施の形態≫
図１は、第１の実施の形態のストリームデータ処理システムを示すブロック図である。ストリームデータ処理システム（以下、適宜システムと略す）は、計測データやログデータ等の時系列で作成されるデータにサービスＩＤ（ＳＩＤ）を付し、このデータをストリームデータとして送信する追記クライアント（情報源端末）５０（５０Ａ〜５０Ｎ）と、追記クライアント５０から送信されたストリームデータを蓄積するデータ蓄積装置２０（２０Ａ〜２０Ｎ）と、このデータ蓄積装置２０からストリームデータを取得し、フィルタ処理を行うフィルタ処理装置１０（１０Ａ〜１０Ｎ）と、フィルタ処理後のストリームデータを蓄積するデータベース装置６０（６０Ａ〜６０Ｎ）と、このデータベース装置６０からデータの検索を行う参照クライアント（外部装置）７０（７０Ａ〜７０Ｎ）と、このデータ蓄積装置２０やフィルタ処理装置１０を動作させるための各種情報を管理する情報管理装置３０とを含んで構成される。なお、ＳＩＤとは、ストリームデータの種類や、このストリームデータの送信元（情報源）を識別するための識別情報である。
【００２０】
なお、（１）追記クライアント５０と、情報管理装置３０およびデータ蓄積装置２０（２０Ａ〜２０Ｎ）との間、（２）情報管理装置３０と、データ蓄積装置２０（２０Ａ〜２０Ｎ）との間、（３）データ蓄積装置２０（２０Ａ〜２０Ｎ）同士、（４）データ蓄積装置２０（２０Ａ〜２０Ｎ）と、フィルタ処理装置１０（１０Ａ〜１０Ｎ）との間、（５）フィルタ処理装置１０（１０Ａ〜１０Ｎ）と、データベース装置６０（６０Ａ〜６０Ｎ）との間、（６）データベース装置６０（６０Ａ〜６０Ｎ）と、参照クライアント７０（７０Ａ〜７０Ｎ）との間はそれぞれ、図示しないネットワークにより接続される。さらに、追記クライアント５０、データ蓄積装置２０、フィルタ処理装置１０、データベース装置６０、参照クライアント７０の数は、それぞれＮ個としたが、これに限定されない。
【００２１】
＜追記クライアント＞
追記クライアント（外部装置）５０は、通信インタフェース等を備えるコンピュータである。この追記クライアント５０は、当該追記クライアント５０に割当てられたＳＩＤを付したデータを順次ストリームデータとしてデータ蓄積装置２０へ送信する。
【００２２】
このとき送信するストリームデータは、各地の気温データや、コンピュータのログ等、時系列で計測されるデータであり、例えば、ＸＭＬ形式で記述される。また、追記クライアント５０の接続先、つまり、ストリームデータの送信先であるデータ蓄積装置２０の追記部２２１,２２２は、情報管理装置３０から指示された（割り当てられた）ものとする。
【００２３】
＜情報管理装置＞
情報管理装置３０は、フィルタ処理に用いる各種データを蓄積するともに、追記クライアント５０の接続先の割り当て、データ蓄積装置２０（２０Ａ〜２０Ｎ）におけるストリームデータの蓄積情報（追記データ位置情報）の記録、参照クライアント７０からの再フィルタ指示の受け付け等を行う。
【００２４】
このような情報管理装置３０は、記憶部３２と、接続先割当部３１と、データ再フィルタ制御部３３と、データ位置管理部３４と、情報管理部３５と、再起動処理部３６とを備える。なお、ここでは図示を省略しているが、情報管理装置３０は、各種データの入力を司る入力部と、出力を司る出力部と、ＣＰＵ（Central Processing Unit）、メモリ、通信インタフェース等を備えるコンピュータにより実現される。
【００２５】
記憶部３２は、システム情報３２１、情報源情報（ＳＩＤ情報）３２２、スキーマ情報３２３、処理手順情報３２４、データ位置管理ＤＢ（データベース）３２５および再起動情報３２６を所定領域に備える。
【００２６】
システム情報３２１は、ＳＩＤごとに、そのＳＩＤのストリームデータの送信先を示した情報である。ここでの送信先は、例えばデータ蓄積装置２０の識別情報（ＩＰアドレス等）およびそのデータ蓄積装置２０における追記部２２１，２２２の識別情報（ＩＤ）を示した情報（表１参照）である。このシステム情報３２１は、接続先割当部３１や、データ蓄積装置２０の蓄積データ取得部２５（後記）により参照される。なお、この追記部２２１，２２２のＩＤは、追記部２２１，２２２に割当てられたポート番号を用いてもよい。
【００２７】
【表１】
0004909290.tif 000002
【００２８】
図２は、図１の情報源情報およびスキーマ情報を例示した図である。
【００２９】
情報源情報（ＳＩＤ情報）３２２は、当該ＳＩＤの定義情報であり、図２の符号２０１に示すようにＳＩＤと、当該ＳＩＤを持つストリームデータのスキーマ情報の識別情報（ＳＣＨＥＭＡ）と、このストリームデータに用いるフィルタの識別情報（ＦＩＬＴＥＲ）、このストリームデータのウィンドウサイズ（ＷＩＮＤＯＷ＿ＳＩＺＥ）等を示した情報である。図２の符号２０１に示す情報源情報は、ＳＩＤ「ＤＭＬ００１」の定義情報であり、このストリームデータのスキーマは「ＤＭＬ００１＿ＳＣＨＥＭＡ」に定義されるスキーマであり、このストリームデータに用いるフィルタは「ＸｐａｔｈＦｉｌｔｅｒ（“ｕｐｄａｔｅ”）」であり、このストリームデータのウィンドウサイズは「１」であることを示す。
【００３０】
スキーマ情報３２３は、当該ＳＩＤを持つストリームデータのスキーマの定義情報である。図２の符号２０２に示すスキーマ情報は、「ＤＭＬ００１＿ＳＣＨＥＭＡ」、つまり、ＳＩＤ「ＤＭＬ００１」のスキーマ情報であり、このストリームデータのスキーマは、「ｃｏｌ＿ｔ」は「ｔｉｍｅｓｔａｍｐ」であり、「ｃｏｌ＿ｉｄ」は「ｉｎｔ」であり、「ｃｏｌ＿ｄ」は「ｘｍｌ」であることを示す。
【００３１】
処理手順情報３２４は、ＳＩＤごとに、そのＳＩＤのストリームデータに対しフィルタ処理装置１０が適用すべきフィルタ処理、つまり、フィルタオペレーション（ＦＯＰ）系列（適用すべきＦＯＰおよびそのＦＯＰの適用手順）が示される。また、この処理手順情報は、表２に例示するように、ストリームデータのスキーマ情報（スキーマ定義情報）やフィルタ処理を行うときのウィンドウサイズ（表２のスキーマ情報における括弧内の値参照）を含んでいてもよい。
【００３２】
例えば、表２に示す処理手順情報のＳＩＤ「１０」のスキーマ情報には、「NAME」に関するフィルタ処理を行うときには、１０個のデータ（レコード）が必要であることを示す。また、このストリームデータには「ＦＯＰ１０２、ＦＯＰ１０３、ＦＯＰ１０４」というＦＯＰを適用することを示す。なお、このスキーマ情報は、スキーマ情報３２３に記憶されるものと同じものである。
【００３３】
【表２】
0004909290.tif 000003
【００３４】
データ位置管理ＤＢ３２５は、システム内の各データ蓄積装置２０（２０Ａ〜２０Ｎ）に蓄積されるストリームデータの記憶位置を示した追記データ位置情報を蓄積する。この追記データ位置情報は、後記する図６に例示するように、ストリームデータのＳＩＤと、このデータ蓄積装置２０がストリームデータを受信した時刻、このストリームデータの記憶位置（追記データ位置）とを対応付けて記憶したものである。なお、追記データ位置とは、このストリームデータを記憶するデータ蓄積装置２０の識別情報およびこのデータ蓄積装置２０における記憶位置を示した情報である。
【００３５】
このように、情報管理装置３０がデータ位置管理ＤＢ３２５により、各データ蓄積装置２０に蓄積されるストリームデータの記憶位置を把握することで、情報管理装置３０は各データ蓄積装置２０に蓄積されたストリームデータから再フィルタの対象のストリームデータを効率的に見つけられる。なお、この追記データ位置情報は、各データ蓄積装置２０から受信したものである。また、この追記データ位置情報におけるストリームデータを受信した時刻（受信時刻）に代えて、このストリームデータがデータ蓄積装置２０の蓄積データ記憶部２４（後記）に記憶された時刻を用いてよい。このデータ位置管理ＤＢ３２５における追記データ位置情報の管理方法は、例えば、B-Tree、B+Tree、R-Tree、Red Black Tree等を用いる。
【００３６】
図１の説明に戻る。再起動情報３２６は、システム内において再起動を許可するフィルタ処理装置１０の数を示した情報である。例えば、システム全体において、再起動によりフィルタ処理を停止してもよいフィルタ処理装置１０の数が「１０」の場合、この再起動情報３２６の初期値として、「１０」を設定しておく。この再起動情報３２６は、再起動処理部３６（後記）がフィルタ処理装置１０の再起動を許可するか否かを判断するときに参照される。
【００３７】
接続先割当部３１は、外部装置（追記クライアント５０またはデータ蓄積装置２０）から接続先割当要求を受信すると、この接続先割当要求に含まれるＳＩＤをキーとしてシステム情報３２１から、この外部装置が接続すべき接続先（データ蓄積装置２０における追記部２２１,２２２）を検索する。そして、接続先割当部３１は、この検索した接続先（データ蓄積装置２０における追記部２２１,２２２）を、この外部装置の接続先として指示する。なお、ここで指示する接続先は、例えば、データ蓄積装置２０の識別情報（ＩＰアドレス等）と、追記部２２１,２２２のポート番号との組み合わせ等である。また、接続先割当部３１は、各データ蓄積装置２０の負荷状態を考慮して、より処理負荷の少ない接続先を選択するようにしてもよい。つまり、接続先割当部３１は、接続先を変更し、各データ蓄積装置２０間のロードバランスをとるようにしてもよい。
【００３８】
図３は、図１のストリームデータ処理システムの動作概要を示すブロック図である。データ再フィルタ制御部３３は、図３に示すように、参照クライアント７０から、再フィルタ指示（再フィルタ処理の対象のストリームデータのＳＩＤ、時区間（または、始まりの時刻）等を示した情報、再フィルタ処理の内容）を受信すると、システム内の任意のマシン（データ蓄積装置２０）を決定する。この後、データ再フィルタ制御部３３は、この決定したデータ蓄積装置２０のプロセス管理部２６（後記）へ再フィルタ指示を送信する。なお、ここでの再フィルタ処理とは、例えば、フィルタ処理に用いる閾値やパラメータの変更、フィルタ処理の手順の変更等である。また、この再フィルタ指示には、この再フィルタ処理の対象のストリームデータに関する追記データ位置情報を含める。この追記データ位置情報は、データ位置管理部３４により、データ位置管理ＤＢ３２５から取得する。
【００３９】
このとき、データ再フィルタ制御部３３は、再フィルタ処理用（再フィルタ用）に新たなＳＩＤ（再フィルタ用ＳＩＤ）を発行し、この再フィルタ指示に含める。なお、このデータ再フィルタ制御部３３は、情報管理部３５（後記）に、この再フィルタ用ＳＩＤと、当該ＳＩＤをもつストリームデータに関する情報を、システム情報３２１、情報源情報３２２、スキーマ情報３２３、処理手順情報３２４に追加登録するよう指示する。
【００４０】
例えば、データ再フィルタ制御部３３は、ＳＩＤ「１０」、時区間「Ａ〜Ｂ」（または、時刻「Ａ」）のストリームデータに対し再フィルタ処理を行うという再フィルタ指示を受信したとき、当該ストリームデータに対し再フィルタ用ＳＩＤ「３０」という新たなＳＩＤを発行する。そして、データ再フィルタ制御部３３は、情報管理部３５（後記）に、当該ＳＩＤをもつストリームデータに関する情報を、システム情報３２１、情報源情報３２２、スキーマ情報３２３、処理手順情報３２４に追加するよう指示する。また、データ再フィルタ制御部３３は、情報管理部３５（後記）に、当該再フィルタ用ＳＩＤに関する処理手順情報３２４に、この再フィルタ指示に示される再フィルタ処理の内容（例えば、フィルタにおける閾値の変更等）を書き加えるよう指示する。なお、データ再フィルタ制御部３３がこのように新たなＳＩＤ（再フィルタ用ＳＩＤ）を発行し、再フィルタ処理の対象のストリームデータに割当てるのは、もともと同じＳＩＤを持つストリームデータであっても、再フィルタ処理の対象としたいストリームデータのみに再フィルタ処理を適用することができるからである。
【００４１】
データ位置管理部３４は、各データ蓄積装置２０から受信した追記データ位置情報を、データ位置管理ＤＢ３２５に記憶する。
【００４２】
図４は、図１のストリームデータ処理システムの動作概要を示すブロック図である。例えば、図４に示すように、データ位置管理部３４は、データ蓄積装置２０の各追記部２２１，２２２（後記）からＳＩＤ、時刻および追記データ位置を含む追記データ位置情報を受信すると、この追記データ位置情報を順次、データ位置管理ＤＢ３２５に追加登録していく。また、このデータ位置管理部３４は、当該ストリームデータの時区間（受信時刻の始まりから終わりまでの時間）または、始まりの時刻とＳＩＤとを含む再フィルタ指示（または追記データ位置情報の検索要求）を受信すると、この時区間およびＳＩＤをキーとして、データ位置管理ＤＢ３２５から追記データ位置情報を検索する。つまり、再フィルタ指示に示されるストリームデータがどのデータ蓄積装置２０のどの記憶位置に記憶されているかを検索する。なお、このデータ位置管理部３４は、この検索した追記データ位置情報を追記データ位置リストとして参照クライアント７０へ送信するようにしてもよい。
【００４３】
図１の説明に戻る。情報管理部３５は、記憶部３２の各情報を追加したり変更したりする。例えば、参照クライアント７０から送信された再フィルタ処理の内容であるフィルタ処理の閾値変更情報を、処理手順情報３２４に反映する。また、各フィルタ処理装置１０の要求に応じて、情報源情報３２２、スキーマ情報３２３、処理手順情報３２４等をフィルタ処理装置１０へ送信する。これにより、この情報管理装置３０に新たに追加された再フィルタ処理の内容を、フィルタ処理装置１０へ反映させることができる。
【００４４】
再起動処理部３６は、フィルタ処理装置１０から、再起動を許可するか否かの問い合わせを受信すると、再起動情報３２６を参照して、このフィルタ処理装置１０の再起動を許可するか否かを応答する。例えば、再起動情報３２６に示される値が「１」以上であれば再起動を許可するが、「０」なら再起動を許可しない。また、再起動処理部３６が、１台のフィルタ処理装置１０の再起動を許可したとき、この再起動情報の値を「１」減らす。そして、このフィルタ処理装置１０の再起動が完了すると、再起動処理部３６は、再起動情報３２６の値を元に戻す。このようにすることで、システム内において再起動によりフィルタ処理を停止するフィルタ処理装置の数を所定数以下にすることができ、システム内のフィルタ処理の効率が極端に低下するのを防止できる。
【００４５】
なお、前記した記憶部は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）等により実現される。また、接続先割り当て部３１、データ再フィルタ制御部３３、データ位置管理部３４、情報管理部３５、再起動処理部３６は、ＣＰＵによるプログラム実行処理または専用のハードウェアにより実現される。ＣＰＵによるプログラム実行処理により実現する場合、記憶部３２はこれらのプログラムを記憶する。
【００４６】
＜データ蓄積装置＞
データ蓄積装置２０（２０Ａ〜２０Ｎ）はそれぞれ、追記クライアント５０から送信されたストリームデータを一時的に蓄積する。このようなデータ蓄積装置２０は、入力部２１と、出力部２３と、追記部２２１，２２２と、蓄積データ記憶部２４と、蓄積データ取得部２５と、プロセス管理部２６とを含む。なお、追記部２２１，２２２の数は図１に示した数に限定されない。
【００４７】
入力部２１は、追記クライアント５０からストリームデータを受信する。出力部２３は、追記部２２１，２２２から出力されたストリームデータをフィルタ処理装置１０へ出力する。また、追記部２２１，２２２はそれぞれ、受信したストリームデータをキュー部２２６（後記）に出力するとともに、蓄積データ記憶部２４に蓄積する。このような追記部２２１，２２２は、ストリーム受付部２２３と、追記データ蓄積部２２４と、キュー管理部２２５と、キュー部２２６と、追記データ位置情報送信部２２７と、を含んで構成される。
【００４８】
ストリーム受付部２２３は、追記クライアント５０から、入力部２１経由でストリームデータを受信する。そして、この受信したストリームデータを追記データ蓄積部２２４とキュー管理部２２５へ出力する。
【００４９】
追記データ蓄積部２２４は、ストリームデータを蓄積データ記憶部２４に蓄積する。なお、追記データ蓄積部２２４は、追記クライアント５０から受信したストリームデータをそのまま蓄積データ記憶部２４に蓄積するようにするのが好ましい。これは、この蓄積データ記憶部２４内のストリームデータの管理に、例えば、ＤＢＭＳ（DataBaseManagement System）等を用いると、データのトランザクション処理に伴う、各種ジャーナル、チェックポイント等が必要になり、大量のストリームデータを追記するとき、効率が悪いからである。
【００５０】
なお、この蓄積データ記憶部２４に蓄積されるデータファイルは、所定時間または所定のデータサイズで区切られる。この区切られたデータファイルそれぞれの終端には、次のデータファイルへのパスが記載される。図５は、図１の蓄積データ記憶部に蓄積されるデータファイルを例示した図である。蓄積データ記憶部２４は、Ｔｙｐｅ（データタイプ）、Ｌｅｎｇｔｈ（長さ）、Ｖａｌｕｅ（データの中身）等から構成されるデータファイルを蓄積する。例えば、追記データ蓄積部２２４は、データファイルを、所定のデータサイズでファイルＡ，Ｂ，Ｃに区切り、蓄積する。図５に示すように、ファイルＡの終端には、次のファイルであるファイルＢへのパスが記載され、ファイルＢの終端には次のファイルであるファイルＣへのパスが記載される。このようにすることで、フィルタ処理装置１０がこの蓄積データ記憶部２４に蓄積されるデータに対し再フィルタ処理を行うとき、途切れることなく再フィルタ処理を行うことができる。また、このように所定のデータサイズや、所定時間でファイルを区切ってデータファイルを蓄積することで、データファイルに障害が発生したときのリカバリやバックアップを行いやすくなる。
【００５１】
図１の説明に戻る。キュー管理部２２５はストリーム受付部２２３から出力されたデータ（ストリームデータ）をキュー部２２６に出力する。そして、フィルタ処理装置１０からストリームデータの取得要求があったとき、このキュー部２２６に蓄積されたストリームデータをフィルタ処理装置１０へ送信する。
【００５２】
追記データ位置情報送信部２２７は、この追記部２２１，２２２において、蓄積データ記憶部２４にストリームデータが蓄積（記憶）されると、このストリームデータの追記データ位置情報を作成し、この追記データ位置情報を情報管理装置３０へ送信する。なお、この追記データ位置情報に示される追記データ位置は、例えば、ＵＲＩ（Uniform Resource Identifier）、ファイルパス、ロケーションＩＤ等により記述される。
【００５３】
キュー部２２６は、キュー管理部２２５から出力されたストリームデータをキューとして蓄積する。
【００５４】
蓄積データ記憶部２４は、追記部２２１，２２２から出力されたストリームデータを蓄積する。
【００５５】
蓄積データ取得部２５は、前記した図３に示すように、プロセス管理部２６からの再フィルタ指示を受信すると、この再フィルタ指示に基づき、自データ蓄積装置２０、または他のデータ蓄積装置２０の蓄積データ記憶部２４から、ストリームデータを取得する。そして、この取得したストリームデータに、プロセス管理部２６から指示された再フィルタ用ＳＩＤを付与する。ここで、蓄積データ取得部２５は、蓄積データ記憶部２４（図５参照）のデータファイルの終端まで読み込み、次のデータファイルへのパスが記載されているときは、このパスに示される次のデータファイルを読み込んでいく。そして、この蓄積データ取得部２５は、この再フィルタ用ＳＩＤを付与したストリームデータの送信先を、前記した情報管理装置３０の接続先割当部３１に問い合わせ、この接続先割当部３１から指示されたデータ蓄積装置２０の追記部（例えば、追記部２２２）へ、このストリームデータを流し込む。そして、このストリームデータは、追記部２２１，２２２のキュー部２２６に蓄積された後、フィルタ処理装置１０が取得し、再フィルタ処理が行われる。
【００５６】
プロセス管理部２６は、データ蓄積装置２０内の蓄積データ取得部２５や、追記部２２１，２２２の制御を行う。例えば、プロセス管理部２６は、情報管理装置３０から再フィルタ指示を受信したとき、この指示内容に基づき、自データ蓄積装置２０の蓄積データ取得部２５に対し、再フィルタ処理の対象となるストリームデータの取得を指示する。
【００５７】
なお、入力部２１および出力部２３は、追記クライアント５０やフィルタ処理装置１０との間でデータ入出力可能な入出力インタフェースにより実現される。
【００５８】
このデータ蓄積装置２０もコンピュータにより実現され、蓄積データ記憶部２４は、例えば、ＲＡＭ、ＨＤＤ等により実現される。また、蓄積データ取得部２５、プロセス管理部２６、追記部２２１，２２２のストリーム受付部２２３、追記データ蓄積部２２４、キュー管理部２２５、追記データ位置情報送信部２２７は、ＣＰＵによるプログラムの実行処理または専用ハードウェア等により実現される。キュー部２２６は、このデータ蓄積装置２０のＲＡＭ等に形成される。
【００５９】
なお、このキュー管理部２２５は、キュー部２２６のキュー状態（入力スループット、出力スループットおよびＣＰＵコスト等）を監視する。そして、このキュー状態が所定の閾値以上に変化したとき、このデータ蓄積装置２０におけるキュー状態情報を各フィルタ処理装置１０へ送信するようにしてもよい。このときのキュー状態情報には、自身のデータ蓄積装置２０の識別情報が付されたものである。また、このときのキュー状態情報の送信は、各フィルタ処理装置１０への同報送信等により行われる。このようにすることで、データ蓄積装置２０は、自身のキュー状態に変化があったとき、自身のキュー状態をいち早く各フィルタ処理装置１０へ通知することができる。
【００６０】
＜フィルタ処理装置＞
フィルタ処理装置１０は、データ蓄積装置２０（２０Ａ〜２０Ｎ）から、ストリームデータを取得し、この取得したストリームデータに対しフィルタ処理を実行する。このようなフィルタ処理装置１０は、入力部１１と、出力部１３と、処理部１２（１２Ａ，１２Ｂ）を備える。なお、この処理部の数は、図１に示す数に限定されない。
【００６１】
入力部１１は、データ蓄積装置２０からストリームデータを受信する。出力部１３は、フィルタ処理後のストリームデータをデータベース装置６０へ出力する。
【００６２】
処理部１２は、キュー選択部１２１と、データ取得部１２２と、フィルタ実行制御部１２３と、フィルタ処理部１２４（１２４Ａ〜１２４Ｎ）と、再起動問い合わせ部１２５とを備える。
【００６３】
キュー選択部１２１は、ストリームデータの取得元となるデータ蓄積装置２０を選択する。このときのデータ蓄積装置２０の選択は、例えば、データ蓄積装置２０から送信されてきた、当該データ蓄積装置２０のキュー状態情報（入力スループット、出力スループット、ＣＰＵコスト（フィルタコスト）等を示した情報）をもとに、入力スループットの値の大きいデータ蓄積装置２０ほど高確率で（優先的に）選択するようにする。
【００６４】
データ取得部１２２は、キュー選択部１２１により選択されたデータ蓄積装置２０からストリームデータを取得する。なお、このストリームデータを取得するタイミングは、例えば、自身のフィルタ処理装置１０において処理しているデータがなくなったときでもよいし、処理中のデータが所定の閾値以下となったときでもよい。
【００６５】
フィルタ実行制御部１２３は、データ取得部１２２から取得したストリームデータに付されたＳＩＤと、情報管理装置３０から受信しておいた、情報源情報３２２、スキーマ情報３２３、処理手順情報３２４とを参照して、このＳＩＤを持つストリームデータに対し実行すべきフィルタ処理を決定する。なお、ここでのフィルタ処理とは、ＦＯＰおよびそのＦＯＰの適用手順を含むものである。そして、フィルタ実行制御部１２３は、決定したフィルタ処理をフィルタ処理部１２４に実行させる。なお、この情報管理装置３０から取得した、情報源情報３２２、スキーマ情報３２３、処理手順情報３２４は、フィルタ処理装置１０の図示しない記憶部に記憶され、フィルタ処理を決定するときに適宜参照される。
【００６６】
なお、このフィルタ実行制御部１２３は、このストリームデータに対し実行すべきフィルタ処理機能が自身のフィルタ処理装置１０にないとき（例えば、再フィルタ用ＳＩＤが付与されたストリームデータを受信したが、このＳＩＤに対する処理手順情報がなかったとき）、情報管理装置３０から、このフィルタ処理機能を実現するためのファイルデータ（フィルタオペレーションを含む）をダウンロードし、機能追加を行う。このようにすることで、フィルタ処理装置１０は、再フィルタ処理を確実に実行できる。
【００６７】
フィルタ処理部１２４は、フィルタ実行制御部１２３からの指示に基づき、ストリームデータに対しフィルタ処理を実行する。このフィルタ処理部１２４におけるフィルタ処理の内容はＦＯＰにより記述され、フィルタ処理部１２４は、このＦＯＰに基づきフィルタ処理を実行する。このＦＯＰは例えば「Ｘ℃以上の温度の情報を持つストリームデータを抽出する」というものや、「処理後のデータをデータベース装置６０Ａに出力する」というものである。このＦＯＰは、フィルタ処理装置１０の記憶部（図示せず）に処理手順情報の一部として記憶される。
【００６８】
なお、再起動問い合わせ部１２５は、フィルタ取得部１２７がスキーマ情報３２３を取得した後、情報管理装置３０に対し、自身のフィルタ処理装置１０の再起動を許可するか否かを問い合わせる。そして、情報管理装置３０から、自身のフィルタ処理装置１０の再起動を許可する旨の応答を受信したとき、自フィルタ処理装置１０を再起動させる。このようにすることで、ストリームデータ処理システムにおいて、所定数を超えたフィルタ処理装置１０が再起動のため停止し、システム全体のフィルタ処理能力が著しく低下することを防止できる。
【００６９】
なお、この後、フィルタ処理部１２４は、出力部１３経由でフィルタ処理後のストリームデータをデータベース装置６０へ出力する。
【００７０】
フィルタ処理装置１０も、ＣＰＵ、ＲＡＭ、ＨＤＤ、通信インタフェース等を備えるコンピュータにより実現される。キュー選択部１２１、データ取得部１２２、フィルタ実行制御部１２３、フィルタ処理部１２４、再起動問い合わせ部１２５は、ＣＰＵによるプログラムの実行処理または専用ハードウェア等により実現される。
【００７１】
＜データベース装置＞
データベース装置６０は、フィルタ処理装置１０においてフィルタ処理されたストリームデータを受け付ける受付部６２（６２Ａ〜６２Ｎ）、このストリームデータを蓄積するＤＢ（データベース）６１（６１Ａ〜６１Ｎ）、参照クライアント７０からの検索要求に応じてＤＢ６１（６１Ａ〜６１Ｎ）からデータを検索する検索部６３（６３Ａ〜６３Ｎ）を備える。このデータ蓄積装置２０も、ＣＰＵ、ＲＡＭ、ＨＤＤ、通信インタフェース等を備えるコンピュータにより実現される。なお、この受付部６２、検索部６３は、ＣＰＵによるプログラムの実行処理または専用ハードウェア等により実現される。また、ＤＢ６１は、ＨＤＤ等により実現される。なお、この検索部６３に代えて、プッシュ型で参照クライアント７０へＤＢ６１に蓄積されたデータを送信する配信部を用いるようにしてもよい。
【００７２】
＜参照クライアント＞
参照クライアント７０は、データベース装置６０からデータの検索を行ったり、情報管理装置３０に対し、再フィルタ指示（再フィルタ処理の内容、再フィルタ処理の対象のストリームデータのＳＩＤ、時区間等を示した情報）を送信し、データ蓄積装置２０に蓄積されたストリームデータの再フィルタ処理を指示したりする。この参照クライアント７０もＣＰＵ、ＲＡＭ、ＨＤＤ、通信インタフェース等を備えるコンピュータにより実現される。
【００７３】
なお、フィルタ処理装置１０（１０Ａ〜１０Ｎ）およびデータ蓄積装置２０（２０Ａ〜２０Ｎ）は、それぞれ別個のコンピュータ（装置）により実現するようにしてもよいし、これらをまとめて１つのコンピュータにより実現するようにしてもよい。
【００７４】
＜動作手順＞
次に、図１を参照しつつ、図６および図７を用いて、図１のシステムの動作手順を説明する。図６および図７は、図１のストリームデータ処理システムの動作手順を示す図である。まず、図６を用いて、情報管理装置３０が、追記データ位置情報を取得し、蓄積する手順を説明する。
【００７５】
追記クライアント５０は、情報源からデータ（ストリームデータ）１００を受信すると、このデータに付されたＳＩＤ（例えば「ＳＩＤ-ｋａｎａ９９」）を含む追記先払出し依頼を情報管理装置３０の接続先割当部３１へ送信する（Ｓ４１）。つまり、追記クライアント５０は、ストリームデータの送信先の追記部２２１，２２２（当該追記部を備えるデータ蓄積装置２０のＩＰアドレス、当該追記部と接続するためのポート番号）を情報管理装置３０に問い合わせる。
【００７６】
接続先割当部３１は、Ｓ４１で送信された追記先払出し依頼を受信すると、この追記先払出し依頼に示されるＳＩＤをキーとして、システム情報３２１を検索する。そして、接続先割当部３１は、ストリームデータの送信先の追記部（例えば、追記部２２１）のあるデータ蓄積装置２０のＩＰアドレスと、追記部２２１のＰｏｒｔ（ポート番号）を示した追記先を払出す（Ｓ４２）。
【００７７】
追記クライアント５０は、Ｓ４２で払い出された追記部（例えば、追記部２２１）へ接続する（Ｓ４３）。そして、追記クライアント５０は、例えば、「ＳＩＤ-ｋａｎａ９９」を持つ追記データ１００をこの接続した追記部２２１へ送信する。つまり、ストリームデータを追記する（Ｓ４４）。
【００７８】
追記部２２１は、ストリーム受付部２２３（図１参照）によりこの追記データ１００を受信すると、この追記データ１００の受信時刻（受取時刻）を取得する（Ｓ４５）。つまり、この追記データ１００の受信時刻を記録する。また、追記部２２１は、追記データ蓄積部２２４（図１参照）により、この受信したストリームデータ（追記データ）を蓄積データ記憶部２４へ蓄積する（Ｓ４６）。次に、追記データ位置情報送信部２２７は、この蓄積した追記データ１００の追記データ位置情報を作成する。そして、この追記データ位置情報送信部２２７は、作成した追記データ位置情報を情報管理装置３０へ送信する（Ｓ４７）。この追記データ位置情報は、この蓄積した追記データ１００のＳＩＤ（「ＳＩＤ-ｋａｎａ９９」）、Ｓ４５で取得した受信時刻（「２００７／０２／２０Ｔ  １０：００」）、追記データ位置（「ｍａｃＡ．ｎｔｔ／ａｐｐ９９／ｂ．ｌｏｇ」）を含むものである。なお、この追記データ位置は、この追記データ１００を記憶するデータ蓄積装置２０は「ｍａｃＡ．ｎｔｔ」であり、そのデータ蓄積装置２０の蓄積データ記憶部２４における記憶領域は「／ａｐｐ９９／ｂ．ｌｏｇ」であることを示す。
【００７９】
このような追記データ位置情報を受信した情報管理装置３０のデータ位置管理部３４は、この追記データ位置情報をデータ位置記憶ＤＢ６１に記憶する（図６の追記データ位置情報４０１参照）。
【００８０】
また、データ蓄積装置２０の追記部２２１は、キュー管理部２２５（図１参照）により、追記データ１００をキュー部２２６に蓄積する（Ｓ４８：キュー管理）。
【００８１】
この後、追記部２２１は、ストリーム受付部２２３（図１参照）により、同じＳＩＤ「ＳＩＤ-ｋａｎａ９９」を持つ追記データ１０１を受信すると（Ｓ４９）、前記した手順と同様に、この追記データ１０１の受信時刻（受取時刻）を取得する（Ｓ５０）。また、追記部２２１は、追記データ蓄積部２２４により、追記データ１０１を蓄積データ記憶部２４へ蓄積すると（Ｓ５１）、前記した手順と同様に、この蓄積したデータ１０１の追記データ位置情報（ＳＩＤ（「ＳＩＤ-ｋａｎａ９９」）、Ｓ５０で取得した受信時刻（「２００７／０２／２０Ｔ  １１：００」）、追記データ位置（「ｍａｃＡ．ｎｔｔ／ａｐｐ９９／ｂ．ｌｏｇ」）を含む）を作成し、この追記データ位置情報を情報管理装置３０へ送信する（Ｓ５２）。
【００８２】
このような追記データ位置情報を受信した情報管理装置３０のデータ位置管理部３４は、この追記データ位置情報をデータ位置記憶ＤＢ６１に記憶する（図６の符号４０４参照）。
【００８３】
そして、データ蓄積装置２０の追記部２２１は、受信した追記データ１０１をキュー部２２６に蓄積する（Ｓ５３：キュー管理）。
【００８４】
以上のような処理を繰り返し、各データ蓄積装置２０は、ストリームデータを蓄積し、情報管理装置３０は、各データ蓄積装置２０に蓄積されるストリームデータの追記データ位置情報をデータ位置記憶ＤＢ６１に記憶していく。
【００８５】
続いて、図７を用いて、参照クライアント７０が再フィルタ指示を送信してから、フィルタ処理装置１０で再フィルタ処理が実行されるまでの手順を説明する。
【００８６】
参照クライアント７０は、再フィルタ処理の対象とするストリームデータのＳＩＤと、時区間と、再フィルタ処理の内容とを含む再フィルタ指示を情報管理装置３０のデータ再フィルタ制御部３３へ送信する（Ｓ６１）。
【００８７】
再フィルタ指示を受信した情報管理装置３０のデータ再フィルタ制御部３３は、この再フィルタ処理用のＳＩＤ（再フィルタ用ＳＩＤ）を発行し、再フィルタ用ＳＩＤの割当を行う（Ｓ６２）。すなわち、データ再フィルタ制御部３３は、情報管理部３５に、発行した再フィルタ用ＳＩＤと、当該ＳＩＤをもつストリームデータに関する情報を、システム情報３２１、情報源情報３２２、スキーマ情報３２３、処理手順情報３２４に登録するよう指示する。
【００８８】
また、データ再フィルタ制御部３３は、処理手順情報３２４に再フィルタ処理を登録する（Ｓ６３）。つまり、データ再フィルタ制御部３３は、情報管理部３５に対し、この再フィルタ用ＳＩＤに関する処理手順情報３２４として、この再フィルタ指示に示される再フィルタ処理の内容（例えば、フィルタにおける閾値の変更等）を書き加えるよう指示する。また、データ再フィルタ制御部３３は、情報管理部３５に対し、システム情報３２１に、再フィルタ用ＳＩＤと、このＳＩＤを持つストリームデータの送信先であるデータ蓄積装置２０の追記部２２１,２２２の情報とを対応付けた情報を追加する。
【００８９】
次に、データ再フィルタ制御部３３は、データ位置管理ＤＢ３２５から、この再フィルタ処理の対象となるストリームデータの追記データ位置情報を検索する（Ｓ６４）。具体的には、データ再フィルタ制御部３３は、データ位置管理部３４（図１参照）に対し、再フィルタ指示に含まれるＳＩＤと、時区間（または、始まりの時刻）とをキーとして、追記データ位置情報を検索するよう指示する。そして、その検索結果を受け取る。
【００９０】
そして、データ再フィルタ制御部３３は、システム内のデータ蓄積装置２０の中から、再フィルタ追記クライアントとなるマシン（データ蓄積装置２０）を１つ決定する（Ｓ６５）。このときのマシン（データ蓄積装置２０）の決定は、例えばラウンドロビン等により行われる。
【００９１】
次に、データ再フィルタ制御部３３は、この決定したデータ蓄積装置２０のプロセス管理部２６に対し、Ｓ６４において検索した追記データ位置情報と、再フィルタ用ＳＩＤとを含む再フィルタ指示を送信する（Ｓ６６）。
【００９２】
データ再フィルタ制御部３３からの再フィルタ指示を受信したデータ蓄積装置２０のプロセス管理部２６は、蓄積データ取得部２５を起動させ、自データ蓄積装置２０を再フィルタ追記クライアントとして起動させる（Ｓ６７）。そして、蓄積データ取得部２５に対し、Ｓ６６で受信した追記データ位置情報と、再フィルタ用ＳＩＤとを含む再フィルタ指示を転送する（Ｓ６８）。
【００９３】
そして、蓄積データ取得部２５は、この再フィルタ指示を受信すると、情報管理装置３０の接続先割当部３１に対し、追記先払出し依頼を送信する（Ｓ６９）。このときの追記先払出し依頼は、この再フィルタ指示に含まれる再フィルタ用ＳＩＤを含むものである。つまり、蓄積データ取得部２５は、再フィルタの対象であるストリームデータを読み出した後、どの追記部２２１，２２２に流し込めばよいのかを接続先割当部３１へ問い合わせる。
【００９４】
そして、このような払出し依頼を受信した接続先割当部３１は、この再フィルタ用ＳＩＤをキーとして、システム情報３２１（図１参照）から、この再フィルタ用ＳＩＤを持つストリームデータを流し込む追記部２２１のＩＰアドレスとＰｏｒｔ（ポート番号）とを検索する。そして、接続先割当部３１は、この検索したＩＰアドレスとＰｏｒｔ（ポート番号）とを追記先として払出す（Ｓ７０）。
【００９５】
そして、蓄積データ取得部２５は、この接続先割当部３１から払出されたＩＰアドレスとＰｏｒｔ（ポート番号）に示される追記部２２１に接続する（Ｓ７１）。
【００９６】
そして、蓄積データ取得部２５は、Ｓ６８で転送された再フィルタ指示の追記データ位置情報に示される蓄積データ記憶部２４の記憶位置（記憶領域）から、再フィルタ処理の対象のデータ（ストリームデータ）を読み込む（Ｓ７２）。
【００９７】
なお、このＳ７２において、この再フィルタ処理の対象のデータが、自データ蓄積装置２０の蓄積データ記憶部２４に蓄積されていれば、自データ蓄積装置２０の蓄積データ記憶部２４から読み出し、他のデータ蓄積装置２０の蓄積データ記憶部２４に蓄積されていれば、図示しないネットワーク経由でこの他のデータ蓄積装置２０の蓄積データ記憶部２４から読み出すことになる。
【００９８】
このようにして蓄積データ取得部２５が再フィルタ処理の対象のデータを読み込むと、この読み込んだデータ（追記データ）のＳＩＤを、Ｓ６８で送信された再フィルタ指示に含まれる再フィルタ用ＩＤに付け替え、Ｓ７１で接続した追記部２２１へ流し込む。つまり、追記部２２１へストリームデータを追記する（Ｓ７３）。そして、追記部２２１は、前記した図６のＳ４８やＳ５３と同様にキュー管理を行う（Ｓ７４）。
【００９９】
この後、フィルタ処理装置１０は、データ蓄積装置２０の追記部２２１からデータを取得すると（Ｓ７５）、このデータに対しフィルタ処理を行う（Ｓ７６）。つまり、追記部２２１から取得したデータが再フィルタ用ＳＩＤを持つデータであれば、このデータに対し再フィルタ処理を行う。次に、図１を参照しつつ、図８を用いて、図７のＳ７５およびＳ７６の処理を詳細に説明する。図８は、図７のＳ７５およびＳ７６の処理を詳細に説明する図である。
【０１００】
図１のデータ取得部１２２は、自身に処理すべきデータがあるか否かをチェックし（Ｓ７０１）、処理すべきデータがないことを検知すると（Ｓ７０１のＹｅｓ）、キュー選択部１２１において次にデータを取得するデータ蓄積装置２０を選択する（Ｓ７０２）。このときのデータ蓄積装置２０の選択は、前記した通り、例えば、各データ蓄積装置２０から送信されてきたキュー状態情報をもとに、入力スループットの値の大きいデータ蓄積装置２０ほど優先的に選択する。
【０１０１】
そして、データ取得部１２２は、Ｓ７０２で選択したデータ蓄積装置２０からデータを取得する（Ｓ７０３）。取得したデータは、フィルタ実行制御部１２３に出力する。
【０１０２】
次に、フィルタ実行制御部１２３は、処理手順情報３２４を参照して、この取得したデータに付されたＳＩＤをキーとして、このデータに対し必要なフィルタ処理機能を判断する（Ｓ７０４）。そして、フィルタ実行制御部１２３は、このデータに対し必要なフィルタ処理機能が自身のフィルタ処理装置１０にあるか否かを判断する（Ｓ７０５）。ここで、必要なフィルタ処理機能が自身のフィルタ処理装置１０にないとき（Ｓ７０５のＮｏ）、フィルタ実行制御部１２３は、情報管理装置３０から、必要なフィルタ処理機能（情報源情報３２２や、スキーマ情報３２３、処理手順情報３２４等を含む）を取得する（Ｓ７０６）。例えば、フィルタ実行制御部１２３が取得したデータが、再フィルタ用ＳＩＤが付されたデータである場合、この再フィルタ用ＳＩＤに対応するフィルタ処理機能をまだフィルタ処理装置１０にダウンロード（取得）していない可能性が高い。そこで、フィルタ実行制御部１２３は、この再フィルタ用ＳＩＤを含むストリームデータを受信すると、このＳＩＤに対応するフィルタ処理機能を情報管理装置３０からダウンロードする。つまり、情報管理装置３０は、このＳＩＤに対応するフィルタ処理機能をフィルタ処理装置１０へ送信する。そして、フィルタ処理装置１０のフィルタ実行制御部１２３はフィルタ処理部１２４にフィルタ処理機能を追加する。
【０１０３】
一方、ここで、必要なフィルタ処理機能が自身のフィルタ処理装置１０にあるとき（Ｓ７０５のＹｅｓ）、Ｓ７０７へ進む。
【０１０４】
そして、フィルタ実行制御部１２３は、Ｓ７０３で取得したデータに対し、フィルタ処理を実行する（Ｓ７０７）。すなわち、フィルタ実行制御部１２３は、このストリームデータのＳＩＤと、情報源情報３２２や、スキーマ情報３２３、処理手順情報３２４とを参照して、このストリームデータに対するフィルタ処理の内容を判断し、このフィルタ処理を実行するためのＦＯＰを記憶部から読み出す。そして、フィルタ実行制御部１２３は、このＦＯＰに基づきフィルタ処理部１２４に所定の順序でフィルタ処理を実行させ、フィルタ処理部１２４はフィルタ処理後、このデータを所定のデータベース装置６０へ出力する（Ｓ７０８）。
【０１０５】
このようにすることで、情報管理装置３０は、各フィルタ処理装置１０に再フィルタ処理を実行させることができる。
【０１０６】
なお、ここでは説明を省略しているが、図８のＳ７０６で、フィルタ処理装置１０のフィルタ実行制御部１２３が情報管理装置３０から必要なフィルタ処理機能を取得した後、再起動処理部３６は、情報管理装置３０に対し、自身のフィルタ処理装置１０の再起動を許可するか否かを問い合わせる。そして、再起動処理部３６は、情報管理装置３０から、再起動許可の応答を受信したとき、自身のフィルタ処理装置１０を再起動する。次に、再起動処理部３６は、再起動を完了すると、再起動完了の通知を情報管理装置３０へ送信する。一方、再起動処理部３６は、情報管理装置３０から、再起動許可の応答を受信できなかった場合、自身のフィルタ処理装置１０は再起動させず、例えば所定時間経過後に、再起動を許可するか否かを問い合わせる。このようにすることで、他のフィルタ処理装置１０の再起動により、自身のフィルタ処理装置１０が再起動できなかった場合でも、時間をずらして、再起動することができる。従って、システム全体のフィルタ処理能力が著しく低下することを防止できる。
【０１０７】
≪第２の実施の形態≫
続いて、第２の実施の形態を説明する。第２の実施の形態は、再フィルタの対象となるストリームデータを蓄積するそれぞれのデータ蓄積装置が、自身の蓄積データ記憶部から再フィルタの対象となるストリームデータを読み出し、追記部へ流し込む（ストリームデータの追記）ことを特徴とする。つまり、再フィルタの対象となるストリームデータが複数のデータ蓄積装置にまたがって蓄積されている場合、このストリームデータの追記部への（送信）流し込みを、各データ蓄積装置それぞれが実行することを特徴とする。図９は、第２の実施の形態のストリームデータ処理システムを示すブロック図である。図９を用いて、第２の実施の形態の概要を説明する。前記した第１の実施の形態と同様の構成要素は同じ符号を付して、説明を省略する。
【０１０８】
図９に示すように、第２の実施の形態のストリームデータ処理システムにおける情報管理装置３０は、データ再フィルタ制御部３３Ａを備える。このデータ再フィルタ制御部３３Ａは、参照クライアント７０から、再フィルタ処理の対象とするストリームデータのＳＩＤおよび時区間と、再フィルタ処理の内容とを含む再フィルタ指示を受信すると、データ位置管理部３４に、データの存在するマシンを特定させる。つまり、データ位置管理部３４は、データ位置管理ＤＢ３２５の追記データ位置情報を参照して、当該再フィルタ処理の対象とするストリームデータを蓄積するデータ蓄積装置２０を検索して、このストリームデータの存在するマシン（データ蓄積装置２０）を特定する。そして、データ再フィルタ制御部３３は、このストリームデータの存在するデータ蓄積装置２０を、ストリームデータの追記を行うデータ蓄積装置２０（マシン）として決定し、このデータ蓄積装置２０のプロセス管理部２６に対し、ストリームデータの読み出しを指示する。
【０１０９】
この後、このような指示を受けたデータ蓄積装置２０はそれぞれ、蓄積データ取得部２５により、自データ蓄積装置２０の蓄積データ記憶部２４から、再フィルタ処理の対象となるストリームデータを読み出す。そして、蓄積データ取得部２５は、情報管理装置３０の接続先割当部３１にこのストリームデータを流し込む追記先を問い合わせ、この接続先割当部３１から指示された追記部２２２へ、ストリームデータを流し込む。次に、各フィルタ処理装置１０は、この再フィルタ処理の対象のストリームデータをデータ蓄積装置２０それぞれのキュー部２２６から取得し、再フィルタ処理を実行する。そして、再フィルタ処理後のデータをデータベース装置６０へ送信する。つまり、データ蓄積装置２０それぞれが、並列して再フィルタの対象となるストリームデータの読み出し、および、追記部２２２への流し込みを行う。
【０１１０】
＜動作手順＞
このような第２の実施の形態のストリームデータ処理システムの動作手順を、図１０を用いて説明する。図１０は、図９のストリームデータ処理システムの動作手順を示す図である。
【０１１１】
図１０のＳ９１の処理は、図７のＳ６１の処理と同様なので、説明を省略し、Ｓ９２から説明する。
【０１１２】
情報管理装置３０のデータ再フィルタ制御部３３Ａは、Ｓ９１で送信された再フィルタ指示に示される再フィルタ処理の内容がウィンドウ処理を含むか否かを判断する（Ｓ９２）。ここでの再フィルタ処理の内容がウィンドウ処理を含むか否かの判断は、再フィルタ指示に含まれる再フィルタ処理の内容そのものから判断してもよいし、情報源情報３２２に登録されているこの再フィルタ対象のストリームデータのＳＩＤに関する情報源情報３２２を参照して判断してもよい。情報源情報３２２を参照して判断する場合、当該ＳＩＤの情報源情報３２２（図２の符号２０１参照）に定義されているウィンドウサイズが「２」以上であるか否かにより判断すればよい。
【０１１３】
例えば、図２の符号２０１に例示したＳＩＤ「ＤＭＬ００１」の情報源情報において、ウィンドウサイズは「１」である。従って、データ再フィルタ制御部３３Ａは、再フィルタ処理の内容がウィンドウ処理を含まないと判断する。
【０１１４】
図１０のＳ９２において再フィルタ処理の内容がウィンドウ処理を含むと判断したとき（Ｓ９２のＹｅｓ）、データ再フィルタ制御部３３Ａは、前記した図７のＳ６２以降と同様の処理を行う。つまり、データ再フィルタ制御部３３Ａが選択したいずれか１つのデータ蓄積装置２０が、各データ蓄積装置２０から再フィルタ対象のストリームデータを読み出し、追記部２２１，２２２へ流し込む処理を行う。
【０１１５】
一方、Ｓ９２において再フィルタ処理の内容がウィンドウ処理を含まないと判断したとき（Ｓ９２のＮｏ）、情報管理装置３０は、前記した図７のＳ６２、Ｓ６３と同様に、再フィルタ用ＳＩＤの割当（Ｓ９３）と、再フィルタ処理の登録（Ｓ９４）とを行う。そして、Ｓ６４と同様に、データ位置管理ＤＢ３２５から、再フィルタ指示に示されるＳＩＤと時区間（または、始まりの時刻）とをキーとして、追記データ位置情報の検索を行う（Ｓ９５）。
【０１１６】
データ再フィルタ制御部３３Ａは、Ｓ９５で検索した追記データ位置情報（追記データ位置情報のリスト）における追記データ位置に示されるデータ蓄積装置２０の識別情報を参照して、この追記データ位置情報をデータ蓄積装置２０ごとに分ける（Ｓ９６）。
【０１１７】
例えば、データ再フィルタ制御部３３Ａは、再フィルタ指示においてＳＩＤ「ＳＩＤ−ｋａｎａ９９」と、時区間「２００７／０２／２０Ｔ  １０：００〜２００７／０２／２０Ｔ  １２：００」という指示が含まれていた場合、図６に例示したデータ位置管理ＤＢ３２５から、この条件に合う追記データ位置情報４０２，４０３，４０５を検索する。ここで、これらの追記データ位置情報４０２，４０３，４０５の追記データ位置の識別情報の記載部分（追記データ位置情報の冒頭の部分）を見ると、「ｍａｃＡ．ｎｔｔ」となっているものと、「ｍａｃＢ．ｎｔｔ」となっているものとがある。つまり、再フィルタ処理の対象となるストリームデータは異なるデータ蓄積装置２０に蓄積されている。したがって、データ再フィルタ制御部３３Ａは、この追記データ位置情報４０２，４０３，４０５を、「ｍａｃＡ．ｎｔｔ」から始まる追記データ位置情報４０２，４０３と、「ｍａｃＢ．ｎｔｔ」から始まる追記データ位置情報４０５とに分ける。つまり、「ｍａｃＡ．ｎｔｔ」のデータ蓄積装置２０へ送信する追記データ位置情報４０２，４０３と、「ｍａｃＢ．ｎｔｔ」のデータ蓄積装置２０へ送信する追記データ位置情報４０５とに分ける。
【０１１８】
そして、データ再フィルタ制御部３３Ａは、再フィルタ処理の対象のストリームデータを蓄積するそれぞれのデータ蓄積装置２０へ、Ｓ９６で分けた追記データ位置情報を含む再フィルタ指示を送信する（Ｓ９７）。例えば、データ再フィルタ制御部３３Ａは、「ｍａｃＡ．ｎｔｔ」のデータ蓄積装置２０へは追記データ位置情報４０２，４０３を含む再フィルタ指示を送信し、「ｍａｃＢ．ｎｔｔ」のデータ蓄積装置２０へは追記データ位置情報４０５を含む再フィルタ指示を送信する。そして、各データ蓄積装置２０における再フィルタ処理の対象のストリームデータの読み出し、追記部２２１,２２２への流し込み、フィルタ処理装置１０によるフィルタ処理の手順は、第１の実施の形態と同様なので説明を省略する。
【０１１９】
このようにすることで、再フィルタ処理の対象のストリームデータが複数のデータ蓄積装置２０にまたがって蓄積されている場合、それぞれのデータ蓄積装置２０において、蓄積データ記憶部２４から再フィルタ処理の対象のストリームデータの読み出し、キュー部２２６へ流し込むので、再フィルタ処理の対象のストリームデータの読み出しを効率よく行うことができる。
【０１２０】
≪第３の実施の形態≫
次に、本発明の第３の実施の形態を説明する。第３の実施の形態のストリームデータ処理システムは、フィルタ処理装置１０が、データの取得先である追記部（追記部２２１，２２２等）を変更した場合でも、漏れや重複なくストリームデータ（データ）のフィルタ処理を行うようにすることを特徴とする。前記した各実施の形態と同様の構成要素は同じ符号を付して、説明を省略する。
【０１２１】
図１２は、第３の実施の形態のストリームデータ処理システムを示すブロック図である。図１２に示すように、第３の実施の形態のストリームデータ処理システムのデータ蓄積装置２０は、追記部情報８１を備える。この追記部情報８１は、追記部２２１，２２２において処理中のデータのＳＩＤや、追記部２２１，２２２のキュータイプ、キュータイプの変更時刻等を示した情報である。
【０１２２】
このキュータイプについては、図１３を用いて後記するが、大きく２つのパターンがある。つまり、（１）追記部２２１，２２２が受信したデータを蓄積データ記憶部２４へデータを出力し、かつ、フィルタ処理装置１０からのデータ取得も受け付けているパターンと（このパターンを仮にキュータイプ「Ｂ」とする）、（２）追記部２２１，２２２が蓄積データ記憶部２４へデータを出力するが、フィルタ処理装置１０からのデータ取得を受け付けていないパターン（このパターンを仮にキュータイプ「Ａ」とする）である。
【０１２３】
蓄積データ取得部２５は、この追記部情報８１を参照して、各追記部２２１，２２２のキュータイプを判断し、各追記部２２１，２２２へのデータの流し込みの制御を行う。このようにすることで、フィルタ処理装置１０において、フィルタ処理対象のデータに漏れや重複が無いようにする。例えば、フィルタ処理装置１０は、データ取得先を追記部２２２から、追記部２２１へ変更した場合でも一連のストリームデータに対し、漏れや重複なくフィルタ処理を実行できる。この追記部情報８１は、各データ蓄積装置２０内のＲＡＭ等の記憶手段（図示省略）に記憶される。なお、当該ＳＩＤのストリームデータに関するキュータイプやフィルタ処理内容は、図１２の処理手順情報３２４に記録される。この処理手順情報３２４は、例えば、情報管理装置３０が外部装置（参照クライアント７０等）からキュータイプの変更通知を受信したとき、このキュータイプの変更通知に示される内容が記録される。なお、このキュータイプの変更通知には、キュータイプが変更されるストリームデータのＳＩＤを含む。
【０１２４】
図１３は、第３の実施の形態のストリームデータ処理システムの動作概要を概念的に説明する図である。図１３を用いて、第３の実施の形態のストリームデータ処理システムの動作概要を説明する。ここでは、追記部２２１により蓄積データ記憶部２４に蓄積されたデータをフィルタ処理装置１０が追記部２２２経由で取得し、フィルタ処理を行う。その後、フィルタ処理装置１０は、直接、追記部２２１からデータを取得してフィルタ処理を行い、その後、追記部２２２からのデータ取得を中止する場合を例に説明する。なお、ここでは説明の簡単のため、図１２に示した構成のうち、追記部２２１，２２２、蓄積データ記憶部２４、蓄積データ取得部２５、プロセス管理部２６、追記部情報８１およびフィルタ処理装置１０以外の構成は記載を省略している。
【０１２５】
（１）まず、追記部２２１は、ストリームデータ（データ）を受信すると、このデータを蓄積データ記憶部２４に出力（蓄積）する。なお、この段階では、図１２の処理手順情報３２４には、ＳＩＤ「１」のストリームデータを扱う追記部のキュータイプは「Ａ」であり、フィルタ処理装置１０によるフィルタ処理は「無し（ｎｕｌｌ）」であることが記録される。フィルタ処理装置１０は、このような処理手順情報３２４により、追記部２２１に対しデータ取得を行なわないことになる。また、この追記部２２１は、処理中のデータのＳＩＤ（例えば「１」）と、キュータイプ（例えば「Ａ」）を追記部情報８１に書き込む。
【０１２６】
（２）次に、追記部２２１により蓄積データ記憶部２４に蓄積されたデータに対し、フィルタ処理装置１０がフィルタ処理を開始する場合、以下のようになる。まず、図１２の処理手順情報３２４に、例えば、ＳＩＤ「２」に対し、フィルタ処理「Ｐ」を実行することを登録しておく。そして、蓄積データ取得部２５は、追記部２２１により蓄積されたデータ（ＳＩＤ「１」のデータ）を蓄積データ記憶部２４から読み出し、追記部２２２へ流し込む。そして、追記部２２２は、蓄積データ取得部２５により流し込まれたデータ（ＳＩＤ「１」のデータ）のＳＩＤを「２」に変更する。そして、フィルタ処理装置１０は、処理手順情報３２４に基づき、この追記部２２２経由で、ＳＩＤ「２」のデータを取得し、フィルタ処理（例えば「Ｐ」）を開始する。
【０１２７】
（３）プロセス管理部２６は、追記部２２１へ、キュータイプの変更を指示する。このキュータイプの変更の指示は、図１２の情報管理装置３０が参照クライアント７０等から、キュータイプの変更通知を受け付けたとき、この情報管理装置３０が各データ蓄積装置２０へこのキュータイプの変更通知を送信することにより行われる。なお、このとき、情報管理装置３０は、処理手順情報３２４に、例えば、ＳＩＤ「１」のデータに対して、キュータイプは「Ｂ」で、フィルタ処理「Ｐ」を実行するよう変更されたことを登録する。このようなキュータイプの変更指示を受けた追記部２２１は、受信したデータを蓄積データ記憶部２４に蓄積するとともに、受信したデータを図１のキュー管理部２２５に蓄積し、フィルタ処理装置１０からのデータ取得要求に応じる。そして、この追記部２２１は、変更したキュータイプ（例えば「Ｂ」）、処理中のストリームデータのＳＩＤ（例えば「１」）、キュータイプの変更時刻（例えば「２００８／０１／１１Ｔ１１：００」）を追記部情報８１に書き込む。なお、このキュータイプの変更時刻は、例えば、追記部２２１がキュータイプの変更指示を受信した時刻とする。
【０１２８】
（４）次に、蓄積データ取得部２５は、追記部情報８１を参照して、追記部２２１で処理中のＳＩＤのキュータイプが変更されたことを検知したとき、以下のような処理を行う。まず、蓄積データ取得部２５は、追記部情報８１を参照して、キュータイプが変更された時刻を読み出す。そして、蓄積データ記憶部２５からデータを読み出し、追記部２２２へ流し込むとき、データに付された受信時刻を参照しながら、その時刻（変更時刻）までのデータを流し終えたところで、この追記部２２２への流し込みを終了する。つまり、キュータイプを変更した後、所定時間、フィルタ処理装置１０は、追記部（追記部２２１，２２２）からのデータ取得をパラレルで行うことになるが、蓄積データ取得部２５は追記部２２２へのデータの流し込みをキュータイプの変更時刻までで終了するので、結果的にフィルタ処理装置１０で処理するデータの重複はなくなる。
【０１２９】
これにより、フィルタ処理装置１０は、追記部２２１が蓄積データ記憶部２４への蓄積のみを行っていた間のデータ（例えばＳＩＤ「１」のデータ）を取得しつつ、追記部２２１から直接データを取得するようにできる。つまり、フィルタ処理装置１０が結果的に特定のＳＩＤを持つデータについて、指定された時刻（キュータイプの変更時刻）以降のすべてのデータを重複なくフィルタ処理を行うことができる。
【０１３０】
＜動作手順＞
このような第３の実施の形態のストリームデータ処理システムの動作手順を、図１４を用いて説明する。図１４は、図１２のストリームデータ処理システムの動作手順を示す図である。ここでも、追記部２２１がいったん蓄積データ記憶部２４に蓄積したデータをフィルタ処理装置１０が追記部２２２経由で取得し、フィルタ処理を行う。その後、フィルタ処理装置１０は、直接、追記部２２１からデータを取得するようにし、追記部２２２からのデータ取得を中止する場合を例に説明する。
【０１３１】
なお、ここでは図示を省略しているが、追記部２２１が蓄積データ記憶部２４へ蓄積したデータを、蓄積データ取得部２５は、前記した図７のＳ６１〜Ｓ７２に示したような手順により、再フィルタ用のデータとして読み込み、追記部２２２へ追記する。
【０１３２】
つまり、参照クライアント７０が、再フィルタ処理の対象とするストリームデータのＳＩＤと、開始時刻と、再フィルタ処理の内容とを含む再フィルタ指示を情報管理装置３０のデータ再フィルタ制御部３３へ送信すると（図７のＳ６１）、これをトリガとして、データ再フィルタ制御部３３は、再フィルタ用ＳＩＤの発行、割当てと、再フィルタ処理の登録、追記データ位置情報の検索を行う（Ｓ６２〜Ｓ６４）。そして、データ再フィルタ制御部３３は、再フィルタ追記クライアントとなるマシン（データ蓄積装置２０）を決定し（Ｓ６５）、そのデータ蓄積装置２０へ再フィルタ指示を行う（Ｓ６６）。そして、このような再フィルタ指示を受け付けたプロセス管理部２６は、自データ蓄積装置２０を再フィルタ追記クライアントとして起動させ（Ｓ６７）、蓄積データ取得部２５へ再フィルタ用ＳＩＤ、追記データ位置情報を含む再フィルタ指示を行う（Ｓ６８）。そして、蓄積データ取得部２５は、情報管理装置３０の接続先割当部３１へ再フィルタ用ＳＩＤを含む追記先払出し依頼を送信し（Ｓ６９）、この応答として、追記部（追記部２２２）の払い出しを受ける（Ｓ７０）。この後、蓄積データ取得部２５は、この払い出しを受けた追記部２２２へ接続し（Ｓ７１）、蓄積データ記憶部２４から読み出した（Ｓ７２）、データに再フィルタ用ＳＩＤ（例えば「２」）を付して、追記部２２２へ追記する（Ｓ７３）準備をしておく。
【０１３３】
まず、図１２の追記部２２１は蓄積データ記憶部２４にデータを蓄積し（Ｓ１００）、蓄積データ取得部２５は、この蓄積データ記憶部２４からデータの読み込みを行う（Ｓ１０１）。この段階では、フィルタ処理装置１０は、この追記部２２１からのデータ取得は行わない。
【０１３４】
図１２のデータ蓄積装置２０のプロセス管理部２６が、情報管理装置３０からキュータイプ変更通知を受信すると、追記部２２１へキュータイプの変更を指示する情報を送信する（Ｓ１０２）。そして、このキュータイプの変更を指示する情報を受信した追記部２２１は、追記部情報８１へキュータイプの変更に関する情報を書きこむ（Ｓ１０３）。例えば、追記部２２１は、キュータイプ後のキュータイプと、ＳＩＤと、そのキュータイプの変更を指示する情報の受信時刻（キュータイプの変更時刻）とを追記部情報８１に書き込む。
【０１３５】
蓄積データ取得部２５は、この追記部情報８１を参照し（Ｓ１０４）、キュータイプの変更があるか否かを判断する（Ｓ１０５）。ここで、キュータイプの変更がなければ（Ｓ１０５のＮｏ）、Ｓ１０６，１０７をスキップして、Ｓ１０８へ進む。Ｓ１０８については後記する。一方、この追記部情報８１を参照して、キュータイプが変更されていたとき（Ｓ１０５のＹｅｓ）、このキュータイプの変更時刻を読み出し、蓄積データ記憶部２４からの当該ＳＩＤのデータの読み込み終了時刻を設定する（Ｓ１０６）。この読み込み終了時刻は、このデータ蓄積装置２０内の記憶部に記録しておく。
【０１３６】
そして、蓄積データ取得部２５は、蓄積データ記憶部２４から読み込んだデータのうち、このＳＩＤの変更を行ったデータについて、そのデータに付された時刻を参照して、Ｓ１０６で設定された終了時刻より前のデータか否かを判断する（Ｓ１０７）。ここで、蓄積データ取得部２５が、Ｓ１０６で設定された終了時刻より前のデータと判断したもの（Ｓ１０７のＹｅｓ）については、追記部２２２へ追記し（Ｓ１０８）、追記部２２２においてキュー管理を行う（Ｓ１０９）。なお、蓄積データ取得部２５は、追記部２２２へデータを追記した後、Ｓ１０１へ戻る。そして、フィルタ処理装置１０は、この追記部２２２からデータを取得し（Ｓ１１０）、フィルタ処理を実行する（Ｓ１１１）。一方、蓄積データ記憶部２４から読み込んだデータが、Ｓ１０６で設定された終了時刻以後のデータと判断したとき（Ｓ１０７のＮｏ）、追記部２２２への追記を終了する（Ｓ１１２）。これにより、フィルタ処理装置１０は、追記部２２１で受信したストリームデータを、追記部２２２から取得することがなくなる。つまり、フィルタ処理装置１０は、キュータイプ変更前に追記部２２１により蓄積されたデータを追記部２２２経由で取得しつつ、追記部２２１からも直接データを取得することができる。このようにすることで、この追記部２２１で受信した一連のストリームデータについて、フィルタ処理装置１０は、漏れなくフィルタ処理を行うことができる。また、追記部２２１から取得したものと同じデータを、追記部２２２からも重複して取得しないので、フィルタ処理を重複して行うことがなくなる。
【０１３７】
なお、本発明は前記した各実施の形態に限定されず、広く変形可能である。
【０１３８】
例えば、情報管理装置３０において参照クライアント７０から再フィルタ指示を受信した後（図７のＳ６１の後）、この再フィルタ指示の対象である追記データ位置情報（追記データ位置リスト）を参照クライアント７０へ送信するようにしてもよい。図１１は、図１および図９の情報管理装置および参照クライアントの動作手順を示す図である。
【０１３９】
すなわち、図１１に示すように、情報管理装置３０のデータ位置管理部３４は、参照クライアント７０から、ＳＩＤと時区間とを含む追記データ位置情報の検索要求を受信する（Ｓ１５１）。そして、データ位置管理部３４は、この検索要求に含まれるＳＩＤと時区間とをキーとして、データ位置管理ＤＢ３２５から追記データ位置情報を検索し、この検索結果をまとめた結果リスト（追記データ位置リスト）を作成する（Ｓ１５２）。そして、データ位置管理部３４は、この作成した追記データ位置リストを前記検索要求に対する検索結果として返却する（送信する）（Ｓ１５３）。
【０１４０】
そして、このような追記データ位置リストを受信した参照クライアント７０は、再フィルタ処理の内容と、追記データ位置リストに示される追記データ位置情報とを含む再フィルタ指示を情報管理装置３０のデータ再フィルタ制御部３３Ａへ送信する（Ｓ１５４）。
【０１４１】
この後、データ再フィルタ制御部３３Ａは、追記フィルタ用ＳＩＤの割当と、再フィルタ処理の登録とを行った後、Ｓ５４で参照クライアント７０から送信された再フィルタ指示に含まれる追記データ位置情報に従い、データ蓄積装置２０に再フィルタ指示を行う。
【０１４２】
なお、参照クライアント７０は、Ｓ５４において、情報管理装置３０から受信した追記データ位置リストに示される追記データ位置情報の中から、所定の情報を選択し、この選択した追記データ位置情報を再フィルタ指示に含めて送信するようにしてもよい。このようにすることで、参照クライアント７０は、ＳＩＤおよび時区間を指定して検索されたストリームデータが、どのデータ蓄積装置２０の、どの記憶位置に蓄積されているか、どの程度のデータ数があるか等を確認した上で、再フィルタ指示することができる。
【０１４３】
なお、このようにいったん参照クライアント７０が追記データ位置リストを受信してから再フィルタ指示を送信する場合、参照クライアント７０はこの追記データ位置リストそのものではなく、このリストを示す識別情報を送信するようにしてもよい。
【０１４４】
また、前記した各実施の形態において、データ蓄積装置２０が、自データ蓄積装置２０の追記データ位置情報を、情報管理装置３０へ送信するタイミングは、このデータ蓄積装置２０の接続先割当部３１から接続先の払い出しを受けたときでもよいし、追記クライアント５０がデータ蓄積装置２０に接続したときでもよいし、データ蓄積装置２０が追記クライアント５０からストリームデータを受信したときでもよい。
【０１４５】
さらに、前記した各実施の形態のフィルタ処理装置１０におけるウィンドウ処理は、現在のデータを基準にして、過去ｎ件分のデータを使うウィンドウ処理（Touple-based Window）のほかに、過去所定時区間分のデータを使うウィンドウ処理(Time-based Window)等、様々なウィンドウ処理を用いてよい。
【０１４６】
また、追記クライアント５０が送信するストリームデータは、ＸＭＬデータ以外でも、ＣＬＯＢ（Character Large Object)型データでもよいし、ＢＬＯＢ（Binary Large OBject）型データでもよい。
【０１４７】
さらに、前記した第１の実施の形態において、情報管理装置３０は、再フィルタ追記クライアントとして１つのデータ蓄積装置２０を選択することとしたが、複数のデータ蓄積装置２０を選択するようにしてもよい。
【０１４８】
さらに、前記した第２の実施の形態において、再フィルタ処理の内容がウィンドウ処理を含まない場合、情報管理装置３０は、再フィルタ処理の対象のストリームデータを蓄積するデータ蓄積装置２０それぞれを追記クライアントとして割り当てる（つまり、各データ蓄積装置２０における並列処理を指示する）こととしたが、これに限定されない。例えば、情報管理装置３０は、参照クライアント７０から受信した再フィルタ指示に、前記並列処理を要求するフラグが含まれていたときに、各データ蓄積装置２０を追記クライアントとして割り当て、この並列処理を要求するフラグが含まれていなかったときには、第１の実施の形態のように、いずれか１つのデータ蓄積装置２０を追記クライアントとして割り当てるようにしてもよい。
【０１４９】
また、前記した各実施の形態のシステムは、様々な分野に適用可能である。
【０１５０】
例えば、本システムを、冷蔵庫メーカのメンテナンスセンタ等において各冷蔵庫の庫内温度を監視するために用いてもよい。この場合、図１の追記クライアント５０は、所定時間ごとに冷蔵庫の庫内温度を示したストリームデータを送信し、フィルタ処理装置１０において、このストリームデータに示される庫内温度（特定のカラム（例えば、Ｃ１）に記録）が所定の閾値超えた場合、異常として検出する。そして、このメンテナンスセンタ等の参照クライアント７０は、この検出結果を、データベース装置６０経由で受信する。
【０１５１】
このような場合において、参照クライアント７０により、所定の冷蔵庫の異常検出を受信すると、冷蔵庫メーカのメンテナンスセンタ等はこのような異常が発生するまでの過程を調査したい場合もある。
【０１５２】
このような場合、以下のようにすればよい。すなわち、異常が検出された冷蔵庫の種別を示すＳＩＤ、フィルタ処理装置１０のフィルタ処理部１２４における庫内温度の異常検出のための閾値を変更する。そして、情報管理装置３０は、データ蓄積装置２０の過去のストリームデータを再度この閾値変更後のフィルタ処理装置１０に流すという処理を何度か繰り返す。
【０１５３】
具体例を用いて説明すると、過去３ヶ月分さかのぼって、庫内温度が３℃以上の頻度はどれくらいあったかを調べたい場合、参照クライアント７０から、異常が検出された冷蔵庫のＳＩＤ、過去３ヶ月分という時区間、庫内温度が３℃以上のときに異常検出という再フィルタ処理の内容を含む再フィルタ指示を情報管理装置３０へ送信する。また、同様に、過去１年分さかのぼって、庫内温度が０℃以上の頻度はどれくらいあったかを調べたい場合、参照クライアント７０から、異常が検出された冷蔵庫のＳＩＤ、過去１年分という時区間、庫内温度が０℃以上のときに異常検出という再フィルタ処理の内容を含む再フィルタ指示を情報管理装置３０へ送信する。
【０１５４】
このような処理を何度か繰り返すことで、各冷蔵庫の庫内温度が、前記異常検出の温度まで徐々に上昇していったのか、急激に上昇していったのか、またその時期はいつ頃か等の分析を行うことができる。
【０１５５】
また、本システムを全国各地の気温の監視に用いるようにしてもよい。この場合、例えば複数の追記クライアント５０はそれぞれ、１分ごとに気温を計測する。次に、この計測した気温データに、各地に割当てられたＳＩＤを付したストリームデータを、データ蓄積装置２０へ送信する。そして、フィルタ処理装置１０において、４０℃以上の気温データを検出したとき、警報を出すよう設定しておく。
【０１５６】
ここで、フィルタ処理装置１０において５年間、気温を監視していて、ある日、Ａ地点で４０℃以上の警報が出たとする。このような場合、参照クライアント７０は、Ａ地点のＳＩＤ、過去３年分という時区間、気温が３８℃以上のときに警報を出すという再フィルタ処理の内容を含む再フィルタ指示を情報管理装置３０へ送信する。このようにすることで、Ａ地点について、過去３年分の気温のデータのうち、気温が３８℃以上のデータを調べることができる。
【０１５７】
つまり、本システムによれば、複数のデータ蓄積装置２０およびフィルタ処理装置１０を用いて処理を行うので、莫大な数の冷蔵庫の庫内温度や全国の各地点の気温監視等、多数のストリームデータのフィルタ処理を効率的に実行できる。また、このように複数のデータ蓄積装置２０に過去のストリームデータを蓄積する場合でも、情報管理装置３０が追記データ位置情報により過去のストリームデータがどのデータ蓄積装置２０に蓄積されているか把握しているので、効率的に再フィルタ対象のストリームデータを探すことができる。
【０１５８】
なお、本システムは、情報管理装置３０に新しいフィルタが追加され、フィルタ処理装置１０においてこの新しいフィルタで再度過去のストリームデータを流しなおす場合にも有効である。
【０１５９】
例えば、本システムのフィルタ処理装置１０において街角の監視画像のストリームデータから人物を検出する人物検出ツール用い、その地点の人の流量を測定する場合において、人物検出ツールの人物検出精度が向上したとき（例えば、親子関係を判別できるようになった場合や、人物の移動方向も検出できるようになった場合等）、まず、フィルタ処理装置１０における人物検出ツールを、この人物検出精度の向上した人物検出ツールに入れ替える。そして、追記クライアント５０からの再フィルタ指示に基づき、本システムはこの新たな人物検出ツールで、過去のストリームデータに対し再フィルタ処理を実行する。このようにすることで、新しいフィルタができたとき、この新しいフィルタを用いて過去のストリームデータの洗い直しをすることができる。
【０１６０】
なお、このように新しいフィルタ処理を追加したフィルタ処理装置１０は、再起動のため一時的に停止するが、前記したとおり、情報管理装置３０が再起動処理部３６により、再起動するフィルタ処理装置１０の数を制限する。従って、新しいフィルタ処理の追加のため多数のフィルタ処理装置１０が停止し、システム全体のフィルタ処理能力が著しく低下することを防止できる。
【０１６１】
さらに、本システムは、前記した例以外にも、ホームゲートウェイのログの監視や、携帯電話機の機器状態の監視等に適用してもよい。
【０１６２】
本実施の形態に係る情報管理装置３０、データ蓄積装置２０、フィルタ処理装置１０は、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記憶媒体（ＣＤ−ＲＯＭ等）に記憶して提供することが可能である。また、そのプログラムを、ネットワークを通して提供することも可能である。
【図面の簡単な説明】
【０１６３】
【図１】第１の実施の形態のストリームデータ処理システムを示すブロック図である。
【図２】図１の情報源情報およびスキーマ情報を例示した図である。
【図３】図１のストリームデータ処理システムの動作概要を示す図である。
【図４】図１のストリームデータ処理システムの動作概要を示す図である。
【図５】図１の蓄積データ記憶部に蓄積されるデータファイルを例示した図である。
【図６】図１のストリームデータ処理システムの動作手順を示す図である。
【図７】図１のストリームデータ処理システムの動作手順を示す図である。
【図８】図７のＳ７５およびＳ７６の処理を詳細に説明する図である。
【図９】第２の実施の形態のストリームデータ処理システムを示すブロック図である。
【図１０】図９のストリームデータ処理システムの動作手順を示す図である。
【図１１】図１および図９の情報管理装置および参照クライアントの動作手順を示す    図である。
【図１２】第３の実施の形態のストリームデータ処理システムを示すブロック図である。
【図１３】第３の実施の形態のストリームデータ処理システムの動作概要を概念的に説明する図である。
【図１４】図１２のストリームデータ処理システムの動作手順を示す図である。
【符号の説明】
【０１６４】
１０（１０Ａ〜１０Ｎ）    フィルタ処理装置
１１，２１    入力部
１２,３２    処理部
１３,２３    出力部
２０（２０Ａ〜２０Ｎ）    データ蓄積装置
２４    蓄積データ記憶部
２５    蓄積データ取得部
２６    プロセス管理部
３０    情報管理装置
３１    接続先割当部
３３，３３Ａ    データ再フィルタ制御部
３４    データ位置管理部
３５    情報管理部
３６    再起動処理部
５０（５０Ａ〜５０Ｎ）    追記クライアント（情報源端末）
６０    データベース装置
６１    データ位置記憶ＤＢ
６２    受付部
６３    検索部
７０    参照クライアント（外部装置）
８１    追記部情報
１２１  キュー選択部
１２２  データ取得部
１２３  フィルタ実行制御部
１２４  フィルタ処理部
１２５  再起動問い合わせ部
１２６  処理手順情報
１２７  フィルタ取得部
１２４  フィルタ処理部
２２１，２２２  追記部
２２３  ストリーム受付部
２２４  追記データ蓄積部
２２５  キュー管理部
２２６  キュー部
２２７  追記データ位置情報送信部
３２１  システム情報
３２２  情報源情報
３２３  スキーマ情報
３２４  処理手順情報
３２５  データ位置管理ＤＢ
３２６  再起動情報
【図１】
0004909290.tif 000004
【図２】
0004909290.tif 000005
【図３】
0004909290.tif 000006
【図４】
0004909290.tif 000007
【図５】
0004909290.tif 000008
【図６】
0004909290.tif 000009
【図７】
0004909290.tif 000010
【図８】
0004909290.tif 000011
【図９】
0004909290.tif 000012
【図１０】
0004909290.tif 000013
【図１１】
0004909290.tif 000014
【図１２】
0004909290.tif 000015
【図１３】
0004909290.tif 000016
【図１４】
0004909290.tif 000017