(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022080799
(43)【公開日】2022-05-30
(54)【発明の名称】データ処理装置、プログラム、及びデータ処理方法
(51)【国際特許分類】
G06F 9/48 20060101AFI20220523BHJP
【FI】
G06F9/48 300H
【審査請求】有
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2020192098
(22)【出願日】2020-11-18
(71)【出願人】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】大和田 稔
(57)【要約】 (修正有)
【課題】複合イベント処理で、同時並列で大量のデータと処理を並行することができるデータ処理装置、プログラム、システム及びデータ処理方法を提供する。
【解決手段】処理対象のデータを、複数のデバイスからネットワークを介して受信するデータ処理装置100は、データをプログラムによって処理することにより生成されるデータを表す事象に、事象を含む複数の事象が揃ったときに起動して複数の事象を処理するプログラムを組み合わせた組データを記録する組データ記録部と、組データ記録部によって記録された複数の組データによって、複数のプログラムを実行するデータ処理実行部と、を備える。
【選択図】
図5
【特許請求の範囲】
【請求項1】
データをプログラムによって処理することにより生成されるデータを表す事象に、当該事象を含む複数の事象が揃ったときに起動して当該複数の事象を処理するプログラムを組み合わせた組データを記録する組データ記録部と、
前記組データ記録部によって記録された複数の組データによって、複数のプログラムを実行するデータ処理実行部と
を備えるデータ処理装置。
【請求項2】
前記組データ記録部は、第1の事象に、前記第1の事象及び第2の事象が揃ったときに起動して前記第1の事象及び前記第2の事象を処理する第1のプログラムを組み合わせた第1の組データと、前記第2の事象に、前記第2の事象及び前記第1の事象が揃ったときに起動して前記第2の事象及び前記第1の事象を処理する前記第1のプログラムを組み合わせた第2の組データとを記録する、請求項1に記載のデータ処理装置。
【請求項3】
複数の組データのそれぞれをノードとしたグラフデータベースによって、前記複数の組データを管理する組データ管理部
を備える、請求項1又は2に記載のデータ処理装置。
【請求項4】
データに対してCEP(Complex Event Processing)を実行するCEP実行部と、
データに対してバッチ処理を実行するバッチ処理実行部と
予め定められた条件に応じて、データを処理する実行部を、前記データ処理実行部、前記CEP実行部、及び前記バッチ処理実行部から選択する選択部と
を備える請求項1から3のいずれか一項に記載のデータ処理装置。
【請求項5】
前記選択部は、処理対象のデータ量に応じて、データを処理する実行部を、前記データ処理実行部、前記CEP実行部、及び前記バッチ処理実行部から選択する、請求項4に記載のデータ処理装置。
【請求項6】
前記選択部は、対象となる処理の応答性能に応じて、データを処理する実行部を、前記データ処理実行部、前記CEP実行部、及び前記バッチ処理実行部から選択する、請求項4に記載のデータ処理装置。
【請求項7】
コンピュータを、請求項1から6のいずれか一項に記載のデータ処理装置として機能させるためのプログラム。
【請求項8】
請求項1から3のいずれか一項に記載のデータ処理装置と、
データに対してCEP(Complex Event Processing)を実行可能なCEP装置と、
データに対してバッチ処理を実行可能なバッチ処理装置と、
予め定められた条件に応じて、データを処理する装置を、前記データ処理装置、前記CEP装置、及び前記バッチ処理装置から選択する選択部と
を備えるシステム。
【請求項9】
コンピュータによって実行されるデータ処理方法であって、
データをプログラムによって処理することにより生成されるデータを表す事象に、当該事象を含む複数の事象が揃ったときに起動して当該複数の事象を処理するプログラムを組み合わせた組データを組データ記録部に記録する記録ステップと、
前記組データ記録部に記録された複数の組データによって、複数のプログラムを実行する実行ステップと
を備えるデータ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、プログラム、システム、及びデータ処理方法に関する。
【背景技術】
【0002】
特許文献1には、ストリーム処理を行う技術としてCEP(Complex Event Processing)が記載されている。
[先行技術文献]
[特許文献]
[特許文献1]特開2019-023791号公報
【発明の概要】
【0003】
本発明の一実施態様によれば、データ処理装置が提供される。データ処理装置は、データをプログラムによって処理することにより生成されるデータを表す事象に、当該事象を含む複数の事象が揃ったときに起動して当該複数の事象を処理するプログラムを組み合わせた組データを記録する組データ記録部を備えてよい。データ処理装置は、組データ記録部によって記録された複数の組データによって、複数のプログラムを実行する組データ処理実行部を備えてよい。
【0004】
上記組データ記録部は、第1の事象に、上記第1の事象及び第2の事象が揃ったときに起動して上記第1の事象及び上記第2の事象を処理する第1のプログラムを組み合わせた第1の組データと、上記第2の事象に、上記第2の事象及び上記第1の事象が揃ったときに起動して上記第2の事象及び上記第1の事象を処理する上記第1のプログラムを組み合わせた第2の組データとを記録してよい。上記データ処理装置は、複数の組データのそれぞれをノードとしたグラフデータベースによって、上記複数の組データを管理する組データ管理部を備えてよい。上記データ処理装置は、データに対してCEP(Complex Event Processing)を実行するCEP実行部と、データに対してバッチ処理を実行するバッチ処理実行部と、予め定められた条件に応じて、データを処理する実行部を、上記データ処理実行部、上記CEP実行部、及び上記バッチ処理実行部から選択する選択部を備えてよい。上記選択部は、処理対象のデータ量に応じて、データを処理する実行部を、上記データ処理実行部、上記CEP実行部、及び上記バッチ処理実行部から選択してよい。上記選択部は、対象となる処理の応答性能に応じて、データを処理する実行部を、上記データ処理実行部、上記CEP実行部、及び上記バッチ処理実行部から選択してよい。
【0005】
本発明の一実施態様によれば、コンピュータを、上記データ処理装置として機能させるためのプログラムが提供される。
【0006】
本発明の一実施態様によれば、上記データ処理装置と、データに対してCEP(Complex Event Processing)を実行可能なCEP装置と、データに対してバッチ処理を実行可能なバッチ処理装置と、予め定められた条件に応じて、データを処理する装置を、上記データ処理装置、上記CEP装置、及び上記バッチ処理装置から選択する選択部とを備えるシステムが提供される。
【0007】
本発明の一実施態様によれば、コンピュータによって実行されるデータ処理方法が提供される。データ処理方法は、データをプログラムによって処理することにより生成されるデータを表す事象に、当該事象を含む複数の事象が揃ったときに起動して当該複数の事象を処理するプログラムを組み合わせた組データを組データ記録部に記録する記録ステップを備えてよい。上記組データ記録部に記録された複数の組データによって、複数のプログラムを実行する実行ステップを備えてよい。
【0008】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0009】
【
図1】データ処理装置100の通信環境の一例を概略的に示す。
【
図2】複合イベント処理について説明するための説明図である。
【
図5】データ処理装置100の機能構成の一例を概略的に示す。
【
図6】グラフデータベース80の一例を概略的に示す。
【
図8】データ処理装置100の機能構成の一例を概略的に示す。
【
図9】データ処理装置100として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。
【発明を実施するための形態】
【0010】
複数の事象が、ある条件群を満たしたかどうかの判断処理を行う手法として、CEP及びバッチ処理が知られている。バッチ処理は、扱える時間範囲が非常に長いが、リアルタイム性は非常に低い。CEPは、リアルタイム性は高いが、扱える時間範囲が非常に狭い。本実施形態に係るデータ処理装置100は、リアルタイム性が従来のCEPよりも低いが、バッチ処理よりも高く、扱える時間範囲がバッチ処理並みに長い複合イベント処理を実現する。
【0011】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
図1は、データ処理装置100の通信環境の一例を概略的に示す。データ処理装置100は、複数のデータに対して複合イベント処理を実行する。
【0013】
データ処理装置100は、処理対象のデータをデバイス30から受信してよい。データ処理装置100は、ネットワーク20を介してデバイス30からデータを受信してよい。データ処理装置100は、複数のデバイス30のそれぞれからデータを受信してよい。データ処理装置100は、一のデバイス30から複数のデータを受信してよい。
【0014】
ネットワーク20は、例えば、移動体通信ネットワークを含んでよい。ネットワーク20は、5G(5th Generation)通信方式に準拠してよい。ネットワーク20は、LTE(Long Term Evolution)通信方式に準拠してよい。ネットワーク20は、3G(3rd Generation)通信方式に準拠してよい。ネットワーク20は、6G(6th Generation)通信方式以降の通信方式に準拠してよい。
【0015】
データ処理装置100は、MEC(Mobile Edge Computing)として機能してもよい。デバイス30は、移動体通信ネットワークと通信可能であれば、どのようなデバイスであってもよい。デバイス30は、いわゆるIoT(Internet of Things)デバイスであってよい。デバイス30は、スマートフォン、タブレット端末、及びウェアラブル端末等であってもよい。
【0016】
ネットワーク20は、インターネットを含んでよい。ネットワーク20は、LAN(Local Area Network)を含んでよい。ネットワーク20は、その他、任意のネットワークを含んでよい。デバイス30は、ネットワーク20に無線接続してよく、有線接続してもよい。
【0017】
図2は、複合イベント処理について説明するための説明図である。既存のCEPは、上述したように、扱える時間範囲が非常に狭い。CEPが長期間に亘る複雑な条件を扱えない理由として、複数の事象を高速に評価するには、事象を全てメモリ上に持たざるを得ないことと、データとプログラムは分離されているので、多数のプログラムをロードしておけないこととが挙げられる。
【0018】
コンピュータは、データとプログラムの両方がメモリ上にあるときにその処理を行うことができる。バッチ処理は、複数のデータをメモリ上に配置して、1つのプログラムに1つのデータを連続して作用させる方式である。Web等のオンライン処理は、多数のプログラムに1つのデータを作用させている。それに対して、CEPは、多数のプログラムと多数のデータをメモリ上に配置して、それらが作用し合う方式である。CEPでは、データがプログラムで処理されて事象が検知され、それもメモリ上にデータとして蓄積される。
【0019】
例えば、データa40の発生と、データb41の発生が近い時間で生じていれば、事象EA60及び事象EB61はどちらも同時にメモリ上に存在でき、プログラムC53によって処理されて事象EC62を検知することができる。しかし、都合よくデータが揃うとは限らない。
【0020】
データa40とデータb41の発生時間が離されている場合、事象EA60と事象EB61の両方がメモリ中に存在する事ができず、プログラムC53は作動できない。メモリの量は有限なので、より長い期間を扱おうとすれば、処理できる対象は細く限られてくる。
【0021】
実際の複合イベント処理では、同時並列で大量のデータと処理が並行することになる。しかし、メモリに載る分しか処理することができない。例えば、対象の期間を長くとれば、狭い事象数しか扱えない。事象数を多くすれば期間が短くなる。期間と事象数を多くしようとしても、どちらも少なくなる。処理を複雑にすれば、期間も事象数も小さくなる。
【0022】
それに対して、本実施形態に係るデータ処理装置100は、番いになる事象とプログラムを組にして保存し、相互に繋がりを持たせる。例えば、プログラムA50は事象EA60を記録するときに、番いになる事象EB61と、番いが揃ったときに起動するプログラムがプログラムC53であることを共に記録する。また、プログラムB51は事象EB61を記録するときに、番いになる事象EA60と、番いが揃ったときに起動するプログラムがプログラムC53であることを共に記録する。
【0023】
本実施形態において、このように、データとプログラムを組にして記録することを、データとプログラムのtuple化と記載する場合がある。また、tuple化されたデータを組データと記載する場合がある。
【0024】
図3は、組データ70の一例を概略的に示す。
図3は、データa40をプログラムA50によって処理することにより生成される事象EA60に、事象EA60及び事象EB61が揃ったときに起動して事象EA60及び事象EB61を処理するプログラムC53を組み合わせた組データ70を例示している。
【0025】
図4は、組データ71の一例を概略的に示す。
図4は、データb41をプログラムB51によって処理することにより生成される事象EB61に、事象EA60及び事象EB61が揃ったときに起動して事象EA60及び事象EB61を処理するプログラムC53を組み合わせた組データ71を例示している。
【0026】
データ処理装置100は、例えばまずデータa40が入ってきた場合に、データa40をプログラムA50で処理する。これにより、事象EA60が記録される。続いて、データ処理装置100は、事象EA60と組みにして記録されたstart()を実行する。このとき、事象EB61はまだ無いので、プログラムC53はcallされない。
【0027】
そして、データb41が入ってきた場合に、データ処理装置100は、データb41をプログラムB51で処理する。これにより、事象EB61が記録される。続いて、データ処理装置100は、事象EB61と組みにして記録されたstart()を実行する。このとき、事象EA60は既にあるので、プログラムC53がcallされる。データ処理装置100が組データ70及び組データ71を記録しておくことによって、事象EA60の発生と、事象EB61の発生とは、どちらが先であってもよく、時間的に離れていてもよいことになる。
【0028】
従来、データとプログラムとは切り離して管理されていた。そのため、事象EA60及び事象EB61を処理するプログラムが動くときに、事象EA60及び事象EB61の両方がメモリにある必要があった。もしくは、リアルタイム性は捨ててバッチ処理をするしか無かった。
【0029】
それに対して、本実施形態に係るデータ処理装置100によれば、tuple化した組データを記録するようにすることによって、事象の発生の順番や時間間隔に依存することなく、複合イベント処理を実行可能にできる。そして、必要なメモリ量を抑えることができる。例えば、データ処理装置100は、データa40を受信した場合には、データa40及びプログラムA50をメモリに配置して、データa40をプログラムA50によって処理することによって事象EA60を生成する。そして、事象EA60をハードディスク及びSSD(Solid State Disk)等の記憶媒体に記憶させ、データa40及びプログラムA50をメモリから削除する。
【0030】
次に、データ処理装置100は、データb41を受信した場合に、データb41及びプログラムB51をメモリに配置して、データb41をプログラムB51によって処理することによって、事象EB61を生成する。そして、データb41及びプログラムB51をメモリから削除し、事象EA60及びプログラムC53をメモリに配置して、事象EA60及び事象EB61をプログラムC53によって処理する。
【0031】
このように、事象EA60の処理時には、事象EB61のためのメモリの必要を無くし、事象EB61の処理時には、事象EA60のためのメモリの必要を無くすことができ、従来のCEPよりも長期間に亙る複合イベント処理を実現することができる。
【0032】
図5は、データ処理装置100の機能構成の一例を概略的に示す。データ処理装置100は、UI実行部102、組データ記録部104、組データ管理部106、データ受信部108、及びデータ処理実行部122を備える。
【0033】
UI(User Interface)実行部102は、プログラミングのためのUIを実行する。UI実行部102は、データ処理装置100の表示部にUIを表示してよく、プログラミングを行うユーザが用いる通信装置にUIを表示してもよい。ユーザは、UI実行部102によって提供されるUIを介して、組データを登録し得る。組データは、上述したように、データをプログラムによって処理することにより生成されるデータを表す事象に、当該事象を含む複数の事象が揃ったときに起動して当該複数の事象を処理するプログラムを組み合わせたデータであってよい。
【0034】
組データ記録部104は、UI実行部102によって提供されるUIを介して登録された組データを記録する。組データ記録部104は、複数の事象のそれぞれについて、組データを記録してよい。
【0035】
例えば、組データ記録部104は、第1の事象に、第1の事象及び第2の事象が揃ったときに起動して第1の事象及び第2の事象を処理する第1のプログラムを組み合わせた第1の組データを記録する。また、組データ記録部104は、第2の事象に、第2の事象及び第1の事象が揃ったときに起動して第2の事象及び第1の事象を処理する第1のプログラムを組み合わせた第2の組データを記録する。このように、第1のプログラムを起動する条件となる第1の事象及び第2の事象のそれぞれに対して、第1のプログラムを組み合わせた組データを記録することによって、どちらの事象が先に発生した場合であっても、正常に処理を進めることを可能とすることができる。
【0036】
組データ管理部106は、複数の組データのそれぞれをノードとしたグラフデータベースによって、複数の組データを管理する。組データ管理部106は、ノードとノードのつながりを扱うことができる、任意のグラフデータベースを用いてよい。
【0037】
実際のデータ処理の場面においては、
図2に例示したような単純な構成ではなく、非常に複雑になり、複数の事象と複数のプログラムとが複雑に組み合わさることになる。それに対して、グラフデータベースを用いることによって、管理の効率を向上できるとともに、ユーザによるプログラミングを支援することができる。
【0038】
データ受信部108は、処理対象のデータを受信する。データ受信部108は、1又は複数のデバイス30から、ネットワーク20を介してデータを受信する。
【0039】
データ処理実行部122は、データ受信部108が受信するデータを対象として、組データ記録部104に記録された複数の組データによって、複数のプログラムを実行する。データ処理実行部122は、例えば、処理結果をデータ処理装置100の表示部に表示させる。また、データ処理実行部122は、処理結果を、他の装置に送信してもよい。
【0040】
図6は、グラフデータベース80の一例を概略的に示す。組データ管理部106は、複数の組データ82をノードとして、グラフデータベース80によって複数の組データ82を管理する。組データ管理部106は、
図6に示すようなUIをユーザに提供してもよい。ユーザは、組データ82や、ノード間の矢印をポインティングデバイス等によって操作することによって、プログラミングを行い得る。
【0041】
図7は、システム10の一例を概略的に示す。システム10は、データ処理装置100を備える。システム10は、CEP装置200を備えてよい。システム10は、バッチ処理装置300を備えてよい。システム10は、選択装置400を備えてよい。
【0042】
CEP装置200は、データに対してCEPを実行可能である。CEP装置200は、処理対象のデータをデバイス30から受信してよい。CEP装置200は、ネットワーク20を介してデバイス30からデータを受信してよい。CEP装置200は、複数のデバイス30のそれぞれからデータを受信してよい。CEP装置200は、一のデバイス30から複数のデータを受信してよい。
【0043】
バッチ処理装置300は、データに対してバッチ処理を実行可能である。バッチ処理装置300は、処理対象のデータをデバイス30から受信してよい。バッチ処理装置300は、ネットワーク20を介してデバイス30からデータを受信してよい。バッチ処理装置300は、複数のデバイス30のそれぞれからデータを受信してよい。バッチ処理装置300は、一のデバイス30から複数のデータを受信してよい。
【0044】
選択装置400は、データを処理する装置を、データ処理装置100、CEP装置200、及びバッチ処理装置300から選択する。選択装置400は、予め定められた条件に応じて、データを処理する装置を、データ処理装置100、CEP装置200、及びバッチ処理装置300から選択してよい。選択装置400は、選択部の一例であってよい。
【0045】
選択装置400は、例えば、処理対象のデータ量に応じて、データを処理する装置を、データ処理装置100、CEP装置200、及びバッチ処理装置300から選択する。例えば、選択装置400は、処理対象のデータ量が第1の閾値よりも少ない場合、CEP装置200を選択する。また、例えば、選択装置400は、処理対象のデータ量が第1の閾値よりも多い第2の閾値より多い場合、バッチ処理装置300を選択する。また、例えば、選択装置400は、処理対象のデータ量が第1の閾値よりも多く、第2の閾値よりも少ない場合、データ処理装置100を選択する。
【0046】
また、選択装置400は、例えば、対象となる処理の応答性能に応じて、データを処理する装置を、データ処理装置100、CEP装置200、及びバッチ処理装置300から選択する。例えば、選択装置400は、求められる応答性能が第1の閾値よりも速い場合、CEP装置200を選択する。また、例えば、選択装置400は、求められる応答性能が第1の閾値よりも遅い第2の閾値より遅い場合、バッチ処理装置300を選択する。また、例えば、選択装置400は、求められる応答性能が第1の閾値よりも遅く、第2の閾値よりも速い場合、データ処理装置100を選択する。
【0047】
選択装置400は、処理対象のデータ量と、対象となる処理の応答性能との両方に応じてデータを処理する装置をデータ処理装置100、CEP装置200、及びバッチ処理装置300から選択してもよい。
【0048】
システム10により、高速、中速、低速の複合イベント処理を実現可能になり、応答性能やデータ量に合わせた柔軟な構成が可能となる。
【0049】
なお、データ処理装置100が選択装置400の機能を備えてもよい。また、CEP装置200が選択装置400の機能を備えてもよい。また、バッチ処理装置300が選択装置400の機能を備えてもよい。これらの場合、システム10は選択装置400を備えなくてよい。
【0050】
図8は、データ処理装置100の機能構成の他の一例を概略的に示す。ここでは、
図5とは異なる点を主に説明する。データ処理装置100は、UI実行部102、組データ記録部104、組データ管理部106、データ受信部108、選択部110、及び実行部120を備える。実行部120は、データ処理実行部122、CEP実行部124、及びバッチ処理実行部126を含む。選択部110は、予め定められた条件に応じて、データを処理する実行部を、データ処理実行部122、CEP実行部124、及びバッチ処理実行部126から選択する。
【0051】
選択部110は、例えば、処理対象のデータ量に応じて、データを処理する実行部を、データ処理実行部122、CEP実行部124、及びバッチ処理実行部126から選択する。例えば、選択部110は、処理対象のデータ量が第1の閾値よりも少ない場合、CEP実行部124を選択する。また、例えば、選択部110は、処理対象のデータ量が第1の閾値よりも多い第2の閾値より多い場合、バッチ処理実行部126を選択する。また、例えば、選択部110は、処理対象のデータ量が第1の閾値よりも多く、第2の閾値よりも少ない場合、データ処理実行部122を選択する。
【0052】
また、選択部110は、例えば、対象となる処理の応答性能に応じて、データを処理する実行部を、データ処理実行部122、CEP実行部124、及びバッチ処理実行部126から選択する。例えば、選択部110は、求められる応答性能が第1の閾値よりも速い場合、CEP実行部124を選択する。また、例えば、選択部110は、求められる応答性能が第1の閾値よりも遅い第2の閾値より遅い場合、バッチ処理実行部126を選択する。また、例えば、選択部110は、求められる応答性能が第1の閾値よりも遅く、第2の閾値よりも速い場合、データ処理実行部122を選択する。
【0053】
選択部110は、処理対象のデータ量と、対象となる処理の応答性能との両方に応じてデータを処理する実行部をデータ処理実行部122、CEP実行部124、及びバッチ処理実行部126から選択してもよい。
【0054】
図8に示すデータ処理装置100によれば、高速、低速の複合イベント処理に加えて、中速の複合イベント処理を実行することができる。これにより、応答性能やデータ量に合わせた柔軟な構成が可能となる。また、短期間しか扱えない従来のCEPと、長期間を扱えるがリアルタイム性が皆無なバッチ処理しかなかった従来技術では、いわゆるデジタルツインの実現は困難と考えられるが、データ処理装置100によれば、短期間かつ高速なイベント処理、長期間かつ中速なイベント処理、及び統計分析を行うバッチ処理を行うことができるので、デジタルツインの実現に貢献することができる。
【0055】
図9は、データ処理装置100、CEP装置200、バッチ処理装置300、又は選択装置400として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0056】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブは、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
【0057】
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
【0058】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブは、プログラム又はデータをDVD-ROM等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0059】
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
【0060】
プログラムは、DVD-ROM又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0061】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0062】
また、CPU1212は、記憶装置1224、DVDドライブ(DVD-ROM)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0063】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0064】
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0065】
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0066】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0067】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0068】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0069】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0070】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0071】
10 システム、20 ネットワーク、30 デバイス、40 データa、41 データb、42 データx、50 プログラムA、51 プログラムB、52 プログラムX、53 プログラムC、54 プログラムY、60 事象EA、61 事象EB、62 事象EC、63 事象EX、64 事象EY、70 組データ、71 組データ、80 グラフデータベース、82 組データ、100 データ処理装置、102 UI実行部、104 組データ記録部、106 組データ管理部、108 データ受信部、110 選択部、120 実行部、122 データ処理実行部、124 CEP実行部、126 バッチ処理実行部、200 CEP装置、300 バッチ処理装置、400 選択装置、1200 コンピュータ、1210 ホストコントローラ、1212 CPU、1214 RAM、1216 グラフィックコントローラ、1218 ディスプレイデバイス、1220 入出力コントローラ、1222 通信インタフェース、1224 記憶装置、1230 ROM、1240 入出力チップ
【手続補正書】
【提出日】2022-03-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データをプログラムによって処理することにより生成されるデータを表す事象に、当該事象を含む複数の事象が揃ったときに起動して当該複数の事象を処理するプログラムを組み合わせた組データを記録する組データ記録部と、
前記組データ記録部によって記録された複数の組データによって、複数のプログラムを実行するデータ処理実行部と
を備え、
前記組データ記録部は、第1の事象に、前記第1の事象及び第2の事象が揃ったときに起動して前記第1の事象及び前記第2の事象を処理する第1のプログラムを組み合わせた第1の組データと、前記第2の事象に、前記第2の事象及び前記第1の事象が揃ったときに起動して前記第2の事象及び前記第1の事象を処理する前記第1のプログラムを組み合わせた第2の組データとを記録する、
データ処理装置。
【請求項2】
複数の組データのそれぞれをノードとしたグラフデータベースによって、前記複数の組データを管理する組データ管理部
を備える、請求項1に記載のデータ処理装置。
【請求項3】
コンピュータを、請求項1又は2に記載のデータ処理装置として機能させるためのプログラム。
【請求項4】
コンピュータによって実行されるデータ処理方法であって、
データをプログラムによって処理することにより生成されるデータを表す事象に、当該事象を含む複数の事象が揃ったときに起動して当該複数の事象を処理するプログラムを組み合わせた組データを組データ記録部に記録する記録ステップと、
前記組データ記録部に記録された複数の組データによって、複数のプログラムを実行する実行ステップと
を備え、
前記記録ステップは、第1の事象に、前記第1の事象及び第2の事象が揃ったときに起動して前記第1の事象及び前記第2の事象を処理する第1のプログラムを組み合わせた第1の組データと、前記第2の事象に、前記第2の事象及び前記第1の事象が揃ったときに起動して前記第2の事象及び前記第1の事象を処理する前記第1のプログラムを組み合わせた第2の組データとを記録する、データ処理方法。