(57)【特許請求の範囲】
【請求項１】
外部装置から時系列なデータが入力されるデータ入力部と、
指定された時間内に処理を行うリアルタイムオペレーティングシステム上で、前記データ入力部から取得したデータに時間情報を付加し、前記時間情報を付加した前記データを処理する第１処理部と、
非リアルタイムオペレーティングシステム上で、前記時間情報が付加された前記データを処理する第２処理部と、
前記第１処理部と前記第２処理部との間で送信するデータ、複数の前記第１処理部の間で送信するデータ、または複数の前記第２処理部の間で送信するデータの送信前に、同じ宛先に送信される複数の種類のデータの間で同じ時間情報のデータとして取り扱われるデータを対応づけて、前記時間情報に基づいて整列させるデータ整列部と、
を備え、
前記データ整列部は、前記時間情報の値を保持したまま、異なる時間情報のデータを対応づけ、
複数の前記第１処理部からそれぞれ出力されたデータが１つの前記第２処理部へ入力される場合、前記第２処理部へ複数の前記第１処理部から入力されるデータが前記時間情報に基づいて同期されることを特徴とする情報処理装置。
【請求項２】
前記データ整列部は、複数の種類のデータの間で、前記時間情報の対応するデータが欠損している場合、欠損しているデータを補う補間処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記データ整列部は、複数の種類のデータの間で、前記時間情報の対応するデータが欠損している場合、異なる前記時間情報のデータを対応づけて前記欠損しているデータを補うことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記第１処理部および前記第２処理部は、前記時間情報に基づいてデータを処理することを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１処理部の動作タイミングを制御する第１管理部と、
前記第２処理部の動作タイミングを制御する第２管理部と、
をさらに備え、
前記第１管理部および前記第２管理部は、前記時間情報に基づいて前記第１処理部および前記第２処理部への入力データを選択することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記データ入力部と接続される前記第１処理部は、前記外部装置からデータを収集するデータ収集処理を行うことを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記データ入力部と接続される前記第１処理部は、前記外部装置にデータの収集を指示した時間または前記外部装置からデータを受信した時間を前記時間情報とすることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
指定された時間内に処理を行うリアルタイムオペレーティングシステムと、非リアルタイムオペレーティングシステムとを有する情報処理装置が、
前記リアルタイムオペレーティングシステム上で動作する第１処理部において、外部装置から入力されたデータに時間情報を付加するステップと、
前記第１処理部と前記非リアルタイムオペレーティングシステム上で動作する第２処理部との間で送信するデータ、複数の前記第１処理部の間で送信するデータ、または複数の前記第２処理部の間で送信するデータの送信前に、同じ宛先に送信される複数の種類のデータの間で同じ時間情報のデータとして取り扱われるデータを対応づけて、前記時間情報に基づいて整列させるステップと、
を含み、
前記整列させるステップでは、前記時間情報の値を保持したまま、異なる時間情報のデータを対応づけ、
複数の前記第１処理部からそれぞれ出力されたデータが１つの前記第２処理部へ入力される場合、前記第２処理部へ複数の前記第１処理部から入力されるデータが前記時間情報に基づいて同期されることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＯＳ（Operating  System）を備えた情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
リアルタイムオペレーティングシステム（以下、リアルタイムＯＳと称する）は、指定された時間内に処理を行うことが可能なＯＳであり、時間制約を保証する必要がある各種の処理を行う場合に主に用いられている。特許文献１には、リアルタイムＯＳを含む複数のＯＳを有するコンピュータシステムが開示されている。１つの情報処理装置にリアルタイムＯＳと非リアルタイムＯＳとを搭載することで、リアルタイム性と汎用性とを兼ね備えることが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２５７６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の技術を用いて複数のＯＳ間に渡る一連の処理を実行する場合には、処理が開始されるまでの待ち時間、処理にかかる時間などデータの伝送先ＯＳの特性を考慮してデータを伝送する必要があるため、データ処理のタイミングやデータ伝送のタイミングを調整する必要があった。すなわち、複数のＯＳ間で同期のとれたデータ処理を行う必要があった。【０００５】
本発明は、上記に鑑みてなされたものであって、複数のＯＳ間で同期のとれたデータ処理を行うことが可能な情報処理装置および情報処理方法を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係る情報処理装置は、外部装置から時系列なデータが入力されるデータ入力部と、指定された時間内に処理を行うリアルタイムオペレーティングシステム上で、データ入力部から取得したデータに時間情報を付加し、時間情報を付加したデータを処理する第１処理部と、非リアルタイムオペレーティングシステム上で、時間情報が付加されたデータを処理する第２処理部と、第１処理部と第２処理部との間で送信するデータ、複数の第１処理部の間で送信するデータ、または複数の第２処理部の間で送信するデータの送信前に、同じ宛先に送信される複数の種類のデータの間で同じ時間情報のデータとして取り扱われるデータを対応づけて、時間情報に基づいて整列させるデータ整列部と、を備え、データ整列部は、時間情報の値を保持したまま、異なる時間情報のデータを対応づけ、複数の第１処理部からそれぞれ出力されたデータが１つの第２処理部へ入力される場合、第２処理部へ複数の第１処理部から入力されるデータが時間情報に基づいて同期されることを特徴とする。
【発明の効果】
【０００７】
本発明にかかる情報処理装置は、複数のＯＳ間で同期のとれたデータ処理を行うことが可能であるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態にかかる情報処理装置の機能構成を示す図
【図２】図１に示す時間情報付加部が出力する処理データを示す図
【図３】図１に示す情報処理装置内におけるデータの流れを示す図
【図４】図１に示すデータ整列部が行う処理データの整列処理の第１の例を示す図
【図５】図１に示すデータ整列部が行う処理データの整列処理の第２の例を示す図
【図６】図１に示すデータ整列部が行う処理データの整列処理の第３の例を示す図
【図７】図１に示す情報処理装置のハードウェア構成を示す図
【発明を実施するための形態】
【０００９】
以下に、本発明の実施の形態にかかる情報処理装置および情報処理方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態．
図１は、本発明の実施の形態にかかる情報処理装置１の機能構成を示す図である。情報処理装置１は、生産現場における製造装置の稼働に関連する産業データを処理するデータ処理装置である。産業データは、生産現場で生成されるあらゆるデータであり、生産設備の各部の温度、電圧、電流、生産設備の複数の部位の間の距離、生産設備に備わる駆動部を動かす速度、生産設備の稼働時間、生産設備のエラー回数など生産設備の状態を示すデータ、生産設備の稼働準備作業を行う作業員の状態、人数などを示すデータ、生産予定数量をはじめとした生産計画を示すデータである。また、本実施の形態でいう産業とは、工業、農業、水産業等広義の意味での産業をいう。また、産業データは、産業において扱われるデータであるが、工業分野においては、例えば、工場、インフラ管理、倉庫、ビル、オフィス、家庭で扱われるデータをいう。また、これに伴い生産現場とは、各産業における装置が設置された現場をいい、工場の生産現場に限定されるものでは無い。情報処理装置１は、産業データの収集、加工、診断、通知などのデータ処理を行う。情報処理装置１は、リアルタイムＯＳと非リアルタイムＯＳとを有している。
【００１１】
ここで、リアルタイムＯＳは、指定された処理時間内にデータを処理することが可能であり、優先的に処理する必要がある処理を行うために主に用いられる。非リアルタイムＯＳは、リアルタイムＯＳのように処理時間を指定することができない。しかしながら、拡張性に優れており、非リアルタイムＯＳ上で動作可能な様々なアプリケーションソフトウェアが既に存在しているため、これらの既存のアプリケーションソフトウェアを利用して、情報処理装置１が実行する機能の開発の手間を低減することができる。また、非リアルタイムＯＳは、複雑な解析処理などを行うために主に用いられる。
【００１２】
情報処理装置１は、リアルタイムＯＳ上で動作するリアルタイム処理部１０と、非リアルタイムＯＳ上で動作する非リアルタイム処理部２０とを有する。リアルタイム処理部１０は、データ入力部１１と、第１処理部１２−１と、第１処理部１２−２と、第１処理部１２−３と、第１ＯＳ内通信部１３と、第１管理部１４と、第１送信部１５と、第１受信部１６と、データ出力部１７とを有する。非リアルタイム処理部２０は、第２処理部２１−１と、第２処理部２１−２と、第２ＯＳ内通信部２２と、第２管理部２３と、第２送信部２４と、第２受信部２５とを有する。第１ＯＳ内通信部１３、第１送信部１５、第２ＯＳ内通信部２２および第２送信部２４のそれぞれは、データ整列部１３０を有する。
【００１３】
なお、以下の説明中において、第１処理部１２−１、第１処理部１２−２および第１処理部１２−３のそれぞれを特に区別する必要がない場合、まとめて第１処理部１２と称する。同様に、第２処理部２１−１および第２処理部２１−２のそれぞれを特に区別する必要がない場合、まとめて第２処理部２１と称する。
【００１４】
データ入力部１１は、外部装置から入力された時系列なデータを時系列データとして受信する入力インタフェースである。データ入力部１１は、受信したデータを、データ入力部１１と接続される第１処理部１２−１に入力する。第１処理部１２は、リアルタイムＯＳ上で入力されたデータを処理する。リアルタイム処理部１０が有する第１処理部１２の数は、図１の例に限られない。第１処理部１２の数は、１つまたは２つであってもよいし、４つ以上であってもよい。複数の第１処理部１２のうち、データ入力部１１と接続される第１処理部１２−１は、時間情報付加部１２０を有しており、データ入力部１１から入力されたデータに時間情報であるタイムスタンプを付加する。なお、時間情報は、データ整列部１３０がデータの整列に利用できる情報であれば良く、例えば、＊時＊分＊秒という日時で表される時間情報だけでなく、既定の時間に経過時間を積算して表されるもの、単なる経過時間（例えば、１１１１秒や、１１１１からなるカウント値）からなる時間情報などであっても良い。
【００１５】
図２は、図１に示す時間情報付加部１２０が出力する処理データ５０を示す図である。時間情報付加部１２０は、データ入力部１１から入力されるデータ５２にタイムスタンプ５１を付加して、処理対象のデータである処理データ５０を生成する。処理データ５０は、処理データ５０の先頭ビットにタイムスタンプ５１が付加されている。処理データ５０に含まれるタイムスタンプ５１の値は、以降の情報処理装置１内の処理において付け替えられることはなく、一貫して同じ値に保持される。時間情報付加部１２０は、第１処理部１２−１がデータの収集を指示する場合には、データの収集を指示したタイミングの日時を示すタイムスタンプ５１をデータ５２に付加することができる。また時間情報付加部１２０は、第１処理部１２−１にデータ５２が入力された日時を示すタイムスタンプ５１をデータ５２に付加してもよい。なお、本実施の形態では、処理データ５０の先頭ビットにタイムスタンプ５１を付加しているが、タイムスタンプ５１は、処理データ５０の先頭ビット以外に付加されていても良い。
【００１６】
第１処理部１２のそれぞれは、データの収集、加工、診断、診断結果の通知などを行う。データ入力部１１と接続された第１処理部１２−１は、データの収集処理を行い、第１処理部１２−１が有する時間情報付加部１２０は、収集したデータにタイムスタンプ５１を付加する。データ入力部１１と接続されていない第１処理部１２−２，第１処理部１２−３は、データの加工、診断、診断結果の通知などを行う。第１処理部１２が行う加工処理としては、収集されたデータのスケーリング処理、端数処理などが挙げられる。第１処理部１２のそれぞれは、リアルタイムＯＳ上でそれぞれが独立して動作するアプリケーションソフトウェアにより実現される。第１ＯＳ内通信部１３は、複数の第１処理部１２の間の通信を中継する。これにより、第１処理部１２−１の出力データは、第１処理部１２−２および第１処理部１２−３の入力データとなる。第１ＯＳ内通信部１３のデータ整列部１３０は、第１処理部１２の間で中継した処理データ５０が、後段の第１処理部１２において効率的に処理されるように、タイムスタンプ５１に基づいて処理データ５０を整列させる整列処理を行う。整列処理は、同じ宛先に出力する複数の種類の処理データ５０の間で、同じ日時のデータとして取り扱われるデータである「対応するデータ」が欠損していない状態に整える処理であり、処理データ５０の補間、破棄、タイムシフトなどが用いられる。整列処理の詳細については後述する。
【００１７】
第１管理部１４は、第１処理部１２および第１ＯＳ内通信部１３を制御しており、複数の第１処理部１２の実行順と動作タイミングとを管理している。第１管理部１４は、タイムスタンプ５１に基づいて、それぞれの第１処理部１２への入力データを選択する。この構成により、第１処理部１２は、タイムスタンプ５１に基づいてデータ５２を処理することになる。第１送信部１５は、リアルタイムＯＳと非リアルタイムＯＳとの間でデータを伝送し、リアルタイムＯＳから非リアルタイムＯＳにデータを送信する送信部である。第１送信部１５は、第１処理部１２から入力された処理データ５０を第２受信部２５に送信する。第１送信部１５のデータ整列部１３０は、受信側の非リアルタイム処理部２０において、処理データ５０の処理を効率よく行えるように、整列処理を行う。整列処理の詳細については後述する。
【００１８】
第１受信部１６は、ＯＳ間で伝送される処理データ５０を受信する機能を有する。第１受信部１６は、非リアルタイム処理部２０の第２送信部２４が送信した処理データ５０を受信する。本実施の形態では、第１受信部１６は、受信した処理データ５０を第１処理部１２−３に入力し、第１処理部１２−３は、処理後の処理データ５０をデータ出力部１７に入力する。データ出力部１７は、処理データ５０を外部装置に出力する出力インタフェースである。第１処理部１２−３は、例えば処理データ５０に基づく診断処理の結果を通知する通知処理の機能を有しており、データ出力部１７は、例えば外部装置である製造装置などに、診断結果を通知する。
【００１９】
なお、第１送信部１５は、第２受信部２５に処理データ５０を送信し、第２送信部２４は、第１受信部１６に処理データ５０を送信しているが、実際には、情報処理装置１が有するメモリ４２（図７参照）内に、リアルタイム処理部１０用のメモリ領域と、非リアルタイム処理部２０用のメモリ領域とを設け、メモリ領域間で処理データ５０を移動することによりデータ送信を行っている。第１送信部１５から第２受信部２５に処理データ５０を送信する場合は、プロセッサ４１（図７参照）が、リアルタイム処理部１０用のメモリ領域に記憶された処理データ５０を、非リアルタイム処理部２０用のメモリ領域に移動させる。なお、本実施の形態では、リアルタイム処理部１０用のメモリ領域と、非リアルタイム処理部２０用のメモリ領域とを共通のメモリに設けているが、リアルタイム処理部１０用のメモリと非リアルタイム処理部２０用のメモリとを別個に設けても良い。
【００２０】
第２処理部２１は、非リアルタイムＯＳ上で処理データ５０を処理するデータ処理機能を有する。図１に示す非リアルタイム処理部２０は、２つの第２処理部２１を有している。非リアルタイム処理部２０が有する第２処理部２１の数は、図１に示す例に限らず、１つであってもよいし、３つ以上であってもよい。第２処理部２１は、例えば、入力されたデータの加工、および診断処理を行う。第２処理部２１は、第１処理部１２で行うデータ処理よりも複雑な処理であって、リアルタイム性を要求されない処理を行うことが望ましい。第２処理部２１が行う処理としては、ノイズ処理、可変量解析、ＦＦＴ（Fast  Fourier  Transform）処理、ディープラーニングを用いたデータ処理などが挙げられる。また第２処理部２１のそれぞれの機能は、非リアルタイムＯＳ上で動作するアプリケーションソフトウェアにより実現される。非リアルタイムＯＳは、汎用性に優れるため、他から流用して様々なアプリケーションソフトウェアを非リアルタイムＯＳ上で動作させることができる。
【００２１】
第２ＯＳ内通信部２２は、複数の第２処理部２１の間の通信を中継する。第２ＯＳ内通信部２２は、例えば第２処理部２１−１から第２処理部２１−２への通信を中継する。これにより、第２処理部２１−１の出力データは、第２処理部２１−２の入力データになる。第２ＯＳ内通信部２２のデータ整列部１３０は、後段の第２処理部２１において処理データ５０の処理を効率よく行えるように、整列処理を行う。整列処理の詳細については後述する。
【００２２】
第２管理部２３は、第２処理部２１および第２ＯＳ内通信部２２を制御しており、複数の第２処理部２１の実行順と動作タイミングとを管理している。第２管理部２３は、タイムスタンプ５１に基づいて、第２処理部２１への入力データを選択する。これにより、第２処理部２１は、タイムスタンプ５１に基づいてデータを処理することになる。第２送信部２４は、リアルタイムＯＳと非リアルタイムＯＳとの間でデータを送信する送信部であり、非リアルタイムＯＳからリアルタイムＯＳにデータを送信する。第２送信部２４は、第２処理部２１から入力されたデータを第１受信部１６に送信する。第２送信部２４のデータ整列部１３０は、受信側のリアルタイム処理部１０において、処理データ５０の処理を効率よく行えるように、整列処理を行う。整列処理の詳細については後述する。第２受信部２５は、リアルタイム処理部１０の第１送信部１５が送信した処理データ５０を受信する受信部である。第２受信部２５は、受信した処理データ５０を第２処理部２１に入力する。本実施の形態では、第２受信部２５は、受信した処理データ５０を第２処理部２１−１に入力する。
【００２３】
また本実施の形態では、データ入力部１１および時間情報付加部１２０をリアルタイム処理部１０に設けているが、本発明はこれに限らず、データ入力部１１および時間情報付加部１２０を非リアルタイム処理部２０に設け、非リアルタイム処理部２０で時間情報を付加した処理データに対して処理することも可能である。
【００２４】
図３は、図１に示す情報処理装置１内におけるデータの流れを示す図である。図３は、データ入力部１１から第１処理部１２および第２処理部２１を介してデータ出力部１７に至るまでのデータの流れを示している。
【００２５】
情報処理装置１のデータ入力部１１に入力されたデータは、第１処理部１２−１に入力される。第１処理部１２−１の時間情報付加部１２０は、入力されたデータにタイムスタンプ５１を付加して処理データ５０とする。第１処理部１２−１が出力した処理データ５０は、第１処理部１２−２および第１処理部１２−３に入力される。第１処理部１２−２および第１処理部１２−３のそれぞれは、入力された処理データ５０を処理して出力する。第１処理部１２−２および第１処理部１２−３のそれぞれが出力した処理データ５０は、第２処理部２１−１に入力される。第２処理部２１−１は、入力された処理データ５０を処理して、処理後の処理データ５０を出力する。第２処理部２１−１が出力した処理データ５０は、第２処理部２１−２に入力される。第２処理部２１−２は、入力された処理データ５０を処理して、処理後の処理データ５０を出力する。第２処理部２１−２が出力した処理データ５０は、第１処理部１２−３に入力される。第１処理部１２−３は、入力された処理データ５０を処理して、処理後の処理データ５０を出力する。第１処理部１２−３が出力した処理データ５０は、データ出力部１７に入力される。データ出力部１７は、入力された処理データ５０を外部装置に出力する。
【００２６】
図３に示したように、情報処理装置１は、処理データ５０を分岐させて複数の処理を並行して実行してもよいし、複数の処理結果を集約して１つの処理の入力としてもよい。各処理の実行順は、第１管理部１４および第２管理部２３において決定され、必ずしも図３に示す順に実行されるとは限らない。したがって、第１ＯＳ内通信部１３および第２ＯＳ内通信部２２は、前段の処理からの出力データがない場合、後段の処理にデータを渡さない。この場合、後段の処理は処理を省略することになる。また、複数の送信データが滞留している場合、第１管理部１４および第２管理部２３は、最も若いタイムスタンプ５１のデータを後段の処理に渡す。図３に示す第２処理部２１−１のように処理データ５０の集約が起こる部分では、第２管理部２３は、第１処理部１２−２からの出力データと第１処理部１２−３からの出力データとのうち同じタイムスタンプ５１の処理データ５０を第２処理部２１−１に入力することで、複数の入力データの間の同期をとる。これにより、データ入力部１１からデータ出力部１７までの一連の処理において、処理データ５０の間の同期をとったストリーミング処理を行うことが可能になる。
【００２７】
以下、第１ＯＳ内通信部１３、第１送信部１５、第２ＯＳ内通信部２２および第２送信部２４が有するデータ整列部１３０が行う整列処理の具体例について説明する。以下の説明中における後段の処理部は、データ整列部１３０が第１ＯＳ内通信部１３または第２送信部２４に備えられる場合には、第１処理部１２を指し、データ整列部１３０が第２ＯＳ内通信部２２または第１送信部１５に備えられる場合には、第２処理部２１を指す。なお、第１ＯＳ内通信部１３および第２ＯＳ内通信部２２のデータ整列部１３０は省略されてもよい。
【００２８】
図４は、図１に示すデータ整列部１３０が行う処理データ５０の整列処理の第１の例を示す図である。第１の例は、欠損データを補間処理によって補う処理である。データ整列部１３０は、後段の処理部に入力する複数の種類の処理データ５０の中で、同一の日時を示すタイムスタンプ５１の処理データ５０が欠損している場合、欠損データを補う補間処理を行うことにより、処理データ５０を整列させることができる。なお、タイムスタンプ５１の示す日時が同一の処理データ５０は、タイムスタンプ５１の示す日時の差が予め定められた範囲内の処理データ５０を含む。図４の破線の矩形は、補間により補われたデータを示している。データ＃１およびデータ＃２の２種類の処理データ５０が同じ宛先に送信される場合であって、データ＃１と日時の差が予め定められた範囲内のデータ＃２が存在しないとき、データ整列部１３０は、データ＃１と同じ日時と見做されるデータを補う。補間処理は、例えば過去の処理データ５０のコピー、０次補間、１次補間などの方法を用いることができる。０次補間、１次補間などは、欠損データよりも後のタイムスタンプ５１のデータを用いる必要があるため、処理時間が長くなる。このため、リアルタイム性を重視するストリーミング処理を行いたい場合には、過去の送信データをコピーする方法を用いることが望ましい。
【００２９】
図５は、図１に示すデータ整列部１３０が行う処理データ５０の整列処理の第２の例を示す図である。第２の例は、処理データ５０を破棄することにより、同一の日時を示すタイムスタンプ５１の処理データ５０が存在する処理データ５０のみを残す処理である。データ整列部１３０は、後段の処理部に入力する複数の種類の処理データ５０の間で、同一の日時を示すタイムスタンプ５１の処理データ５０が欠損している場合、処理データ５０を破棄して、同一の日時を示すタイムスタンプ５１の処理データ５０が存在している処理データ５０を残す処理を行うことにより、処理データ５０を整列させることができる。図５中の破線の矩形は、破棄したデータを示している。
【００３０】
図６は、図１に示すデータ整列部１３０が行う処理データ５０の整列処理の第３の例を示す図である。第３の例は、タイムシフトにより処理データ５０を対応づける処理である。データ整列部１３０は、後段の処理部に入力する複数の種類の処理データ５０の間で、同一の日時を示すタイムスタンプ５１の処理データ５０が欠損している場合、処理データ５０をタイムシフトして、処理データ５０を対応付けることにより、処理データ５０を整列させることができる。なお、図６の例では、タイムシフトと合わせて、処理データ５０の破棄が行われている。ここでタイムシフトとは、処理データ５０のタイムスタンプ５１をずらすのではなく、フラグなどを用いて、異なる日時を示すタイムスタンプ５１を含む処理データ５０を対応付けて、同一の日時のデータとして取り扱ってよいデータであることを示すことを意味する。
【００３１】
補間処理を行う場合、処理データ５０が減らないという利点があるが、データ量が増えるため、処理間の通信量が増えてしまう。処理データ５０を破棄する場合、データ量が減るため、処理間の通信量を減らすことができるという利点があるが、同一の日時を示すタイムスタンプ５１の処理データ５０がない場合、処理データ５０が全く伝送されない場合がある。また、複数の種類の処理データ５０の間で処理データ５０が取得されるタイミングが周期的に一致する場合であっても、この周期が長い場合、処理データ５０のデータ量が大きく減少してしまう場合がある。データ整列部１３０は、送信データの補間、破棄、およびタイムシフトのうち少なくとも２つを組み合わせて用いてもよい。
【００３２】
図７は、図１に示す情報処理装置１のハードウェア構成を示す図である。情報処理装置１の機能は、プロセッサ４１と、メモリ４２と、通信装置４３とを用いて実現することができる。
【００３３】
プロセッサ４１は、ＣＰＵ（Central  Processing  Unit）であり、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、ＤＳＰ（Digital  Signal  Processor）などとも呼ばれる。メモリ４２は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ（Electrically  ＥＰＲＯＭ）などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ（Digital  Versatile  Disk）などである。通信装置４３は、外部装置との通信インタフェースであり、有線の通信インタフェースであってもよいし、無線の通信インタフェースであってもよい。
【００３４】
情報処理装置１が有するデータ入力部１１、第１処理部１２、第１ＯＳ内通信部１３、第１管理部１４、第１送信部１５、第１受信部１６およびデータ出力部１７のそれぞれの機能は、プロセッサ４１が、メモリ４２に記憶されたコンピュータプログラムをリアルタイムＯＳ上で実行することにより、実現することができる。プロセッサ４１は、プログラムの実行中に通信装置４３を用いることで、外部装置と通信することができる。第２処理部２１、第２ＯＳ内通信部２２、第２管理部２３、第２送信部２４、第２受信部２５のそれぞれの機能は、プロセッサ４１がメモリ４２に記憶されたコンピュータプログラムを非リアルタイムＯＳ上で実行することにより、実現することができる。
【００３５】
情報処理装置１のハードウェア構成については、特定の実施の形態に限定されることはない。例えば、情報処理装置１は、複数のプロセッサ４１を有していてもよいし、マルチコアの単一のプロセッサ４１を有していてもよい。或いは、シングルコアの単一のプロセッサ４１において、時分割でリアルタイムＯＳと非リアルタイムＯＳとを動作させてもよい。
【００３６】
以上説明したように、本発明の実施の形態によれば、情報処理装置１は、リアルタイムＯＳと非リアルタイムＯＳとを有するため、リアルタイム性と汎用性を兼ね備えることができる。このため、リアルタイムにデータを処理することが可能であると共に、既存資産を活用したり、外部ツールとの連携処理を行うことが可能である。
【００３７】
この情報処理装置１では、リアルタイムＯＳ上で動作する第１処理部１２であって、外部装置からデータが入力されるデータ入力部１１と接続される第１処理部１２−１が時間情報付加部１２０を有する。時間情報付加部１２０は、入力されるデータに時間情報であるタイムスタンプ５１を付加する。このタイムスタンプ５１の値は、情報処理装置１内の以降の処理において付け替えられることはなく、一貫した値が保持される。
【００３８】
上記の構成により、タイムスタンプ５１が付加されていないデータが情報処理装置１に入力されたり、外部装置においてタイムスタンプ５１が付加されたデータと、タイムスタンプ５１が付加されていないデータとが混在して情報処理装置１に入力されたりしたとしても、時間情報付加部１２０において情報処理装置１に入力される全てのデータに統一された基準でタイムスタンプ５１が付加されるため、正確なタイムスタンプ５１をデータに付加することができる。後段の処理において正確なタイムスタンプ５１に基づいて処理を行うことで、複数の処理データ５０間または複数の種類の処理間で同期をとることが可能になる。
【００３９】
外部装置から収集されたデータにタイムスタンプ５１が付加されたデータである処理データ５０は、情報処理装置１内で、第１処理部１２、第２処理部２１などの複数のデータ処理部において処理される。具体的には、第１ＯＳ内通信部１３、第１送信部１５、第２ＯＳ内通信部２２および第２送信部２４のそれぞれは、後段の処理に渡す処理データ５０をタイムスタンプ５１に基づいて選択する。したがって、タイムスタンプ５１に基づいてリアルタイムＯＳと非リアルタイムＯＳとに渡る一連の処理が行われることになり、複数のＯＳ間で同期のとれたストリーミング処理が可能になる。
【００４０】
また、第１ＯＳ内通信部１３、第１送信部１５、第２ＯＳ内通信部２２および第２送信部２４のそれぞれは、複数の種類の処理データ５０を整列させる整列処理を実行する。整列処理により、同じレコードとして扱うことが可能な複数の処理データ５０が組み合わせられる。これにより、後段の処理では、どのデータの組み合わせで処理を実行すればよいかを意識することなく処理を実行することが可能になる。したがって、効率的なデータ処理を実行することが可能になる。
【００４１】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００４２】
１  情報処理装置、１０  リアルタイム処理部、１１  データ入力部、１２，１２−１，１２−２，１２−３  第１処理部、１３  第１ＯＳ内通信部、１４  第１管理部、１５  第１送信部、１６  第１受信部、１７  データ出力部、２０  非リアルタイム処理部、２１，２１−１，２１−２  第２処理部、２２  第２ＯＳ内通信部、２３  第２管理部、２４  第２送信部、２５  第２受信部、４１  プロセッサ、４２  メモリ、４３  通信装置、５０  処理データ、５１  タイムスタンプ、５２  データ、１２０  時間情報付加部、１３０  データ整列部。
【要約】
情報処理装置（１）は、外部装置から時系列なデータが入力されるデータ入力部（１１）と、指定された時間内に処理を行うリアルタイムオペレーティングシステム上で、データ入力部（１１）から取得したデータに時間情報を付加し、時間情報を付加したデータを処理する第１処理部（１２）と、非リアルタイムオペレーティングシステム上で、時間情報が付加されたデータを処理する第２処理部（２１）とを備えることを特徴とする。【図１】
0006467555.tif 000002
【図２】
0006467555.tif 000003
【図３】
0006467555.tif 000004
【図４】
0006467555.tif 000005
【図５】
0006467555.tif 000006
【図６】
0006467555.tif 000007
【図７】
0006467555.tif 000008