JPWO2018150639A1 - データ取得装置、データ取得方法、およびデータ取得プログラム - Google Patents
データ取得装置、データ取得方法、およびデータ取得プログラム Download PDFInfo
- Publication number
- JPWO2018150639A1 JPWO2018150639A1 JP2018537684A JP2018537684A JPWO2018150639A1 JP WO2018150639 A1 JPWO2018150639 A1 JP WO2018150639A1 JP 2018537684 A JP2018537684 A JP 2018537684A JP 2018537684 A JP2018537684 A JP 2018537684A JP WO2018150639 A1 JPWO2018150639 A1 JP WO2018150639A1
- Authority
- JP
- Japan
- Prior art keywords
- data acquisition
- data
- request
- acquisition
- acquisition request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 188
- 230000008569 process Effects 0.000 claims abstract description 150
- 238000012545 processing Methods 0.000 claims description 112
- 230000004913 activation Effects 0.000 claims description 53
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 description 37
- 238000009825 accumulation Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 34
- 230000004044 response Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 235000008694 Humulus lupulus Nutrition 0.000 description 7
- 238000003491 array Methods 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 235000012489 doughnuts Nutrition 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
データ群を記憶するデータベースに対する要求元からのデータ取得要求に応じたデータをデータベースから取得して要求元に返すデータ取得装置は、要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、データ取得要求の種類と、データ取得要求の時系列順を規定する取得タイミングと、を学習し、一連のデータ取得要求以降の第1データ取得要求に先立って、 学習処理による学習結果に基づいて、要求元から取得され得るデータ取得要求である第1の次回推定データ取得要求の種類および取得タイミングを特定し、種類が特定された第1の次回推定データ取得要求に該当するデータを、データベースから取得し、第1データ取得要求が受信された場合、第1データ取得要求に含まれる種類と、特定処理によって特定された第1の次回推定データ取得要求の種類と、が一致するか否かを判断し、一致すると判断された場合、事前取得結果を、特定された第1の次回推定データ取得要求の取得タイミングで要求元に送信する。
Description
本発明は、データを取得するデータ取得装置、データ取得方法、およびデータ取得プログラムに関する。
Common Information Model(CIM)は、基幹系統Energy Management System(EMS)における電力設備(電力系統を構成する発電所、変電所、送電線など)を運用するシステムにおいて、標準情報モデルおよびシステム内/アプリケーションデータ交換を規定したモデルである。CIMで電力系統の情報を共通化することで、電力系統の監視・制御・分析用アプリケーション間におけるデータ交換が容易になる。これにより、アプリケーション間の接続性およびシステムの拡張性を高めることができる。
たとえば、関係データベース形式(Relational Database(RDB)形式)で管理している電力ネットワークモデルデータベース(以下、電力NWモデルDB)がある。電力NWモデルDBは、基幹系統EMSにおける電力設備の情報を格納する。たとえば、ユーザ操作または業務処理において、電力NWモデルDBから、位置情報が「地点A」で、その他属性が「高圧の設備」である属性の組を満たす情報が取得される。電力NWモデルDBを活用した業務ではデータ取得要求に対して素早く応答することが求められるが、データ取得要求の度にRDB形式からExtensible Markup Language(XML)形式へのデータ変換処理が行われるため、素早く応答することが困難となる。
データ取得要求に対して素早く応答するための技術として、例えば、下記特許文献1がある。特許文献1のキャッシュ方法は、クライアントからの検索要求データがキャッシュデータベース上に存在しない時、マスタデータベースは検索結果レコードを分散キャッシュデータベースに返し、参照ビットマップテーブル上の該当ビットをONにする。以後同じレコードの検索要求があった場合、特許文献1のキャッシュ方法は、分散キャッシュデータベース上のデータを返す。マスタデータベースを更新した場合には、特許文献1のキャッシュ方法は、参照ビットがONになっている分散キャッシュデータベースに対してのみデータを更新する。
しかしながら、特許文献1のキャッシュ方法でキャッシュされるデータは、電力系統で電力設備を運用するシステムでのユーザ操作または業務処理において、その時必要とされるデータとは限られない。したがって、特許文献1のキャッシュ方法は、必ずしもデータ応答の改善にはつながらない。
本発明は、要求に応じて取得するデータの応答遅延の抑制を図ることを目的とする。
本願において開示される発明の一側面となるデータ取得装置、データ取得方法、およびデータ取得プログラムは、データ群を記憶するデータベースにアクセス可能であり、前記データベースに対する要求元からのデータ取得要求に応じたデータを前記データベースから取得して前記要求元に返すデータ取得装置、データ取得方法、およびデータ取得プログラムであって、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、前記プロセッサは、前記要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、前記データ取得要求の種類と、前記データ取得要求の時系列順を規定する取得タイミングと、を学習する学習処理と、前記一連のデータ取得要求以降の第1データ取得要求に先立って、前記学習処理による学習結果に基づいて、前記要求元から取得され得るデータ取得要求である第1の次回推定データ取得要求の種類および取得タイミングを特定する特定処理と、前記特定処理によって種類が特定された第1の次回推定データ取得要求に該当するデータを、前記データベースから取得する事前取得処理と、前記第1データ取得要求が受信された場合、前記第1データ取得要求に含まれる種類と、前記特定処理によって特定された前記第1の次回推定データ取得要求の種類と、が一致するか否かを判断する判断処理と、前記判断処理によって一致すると判断された場合、前記事前取得処理による事前取得結果を、前記特定処理によって特定された前記第1の次回推定データ取得要求の取得タイミングで前記要求元に送信する送信処理と、を実行することを特徴とする。
本発明の代表的な実施の形態によれば、要求に応じて取得するデータの応答遅延の抑制を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
<データ事前取得例>
図1は、実施例1にかかるデータ事前取得例を示す説明図である。データ取得システム100は、端末101と、アプリケーション102と、データ取得機能103と、電力NWモデルDB104と、を有する。端末101は、アプリケーション102を介してデータ取得機能103にデータ取得要求を送信し、データ取得要求に該当するデータを、アプリケーション102およびデータ取得機能103を介して電力NWモデルDB104から取得する。端末101は、たとえば、電力設備(電力系統を構成する発電所、変電所)に設けられ、通信網を介してデータ取得機能103を有するサーバ(データ取得装置)に通信可能に接続される。
図1は、実施例1にかかるデータ事前取得例を示す説明図である。データ取得システム100は、端末101と、アプリケーション102と、データ取得機能103と、電力NWモデルDB104と、を有する。端末101は、アプリケーション102を介してデータ取得機能103にデータ取得要求を送信し、データ取得要求に該当するデータを、アプリケーション102およびデータ取得機能103を介して電力NWモデルDB104から取得する。端末101は、たとえば、電力設備(電力系統を構成する発電所、変電所)に設けられ、通信網を介してデータ取得機能103を有するサーバ(データ取得装置)に通信可能に接続される。
アプリケーション102は、端末101とデータ取得機能103との間のインタフェースである。アプリケーション102は、端末101、または、データ取得装置に実装される。アプリケーション102は、対応する電力設備により異なるが、いずれのアプリケーション102も電力NWモデルDB104からデータを取得するソフトウェアである。
データ取得機能103は、データアクセス機能131と、パターン学習機能132と、事前取得機能133と、を有する。データアクセス機能131は、端末101からのデータ取得要求に該当するデータを電力NWモデルDB104から取得して、要求元のアプリケーション102に返す。具体的には、たとえば、データアクセス機能131は、電力NWモデルDB104から、データ取得要求に該当する複数の属性のテーブルのエントリを取得して、1つのXMLデータに変換し、変換したXMLデータを要求元のアプリケーション102に返す。
パターン学習機能132は、端末101から入力された一連のデータ取得要求のパターンを学習する。たとえば、作業員Aは、「円(3km)」、「円錐」、「円柱」というデータ取得範囲を含む一連のデータ取得要求を端末101から送信する。したがって、パターン学習機能132は、作業員Aの場合、「円(3km)」→「円錐」→「円柱」の順にデータ取得範囲を選択することを学習する。
事前取得機能133は、端末101からデータ取得要求が受信された場合、当該端末101のユーザが次に選択するであろうデータ取得範囲をパターン学習機能132の学習結果から特定し、データアクセス機能131を制御して、特定したデータ取得範囲内のデータをデータ取得要求の前に取得する。
電力NWモデルDB104は、電力NWモデルであるCIMを格納するデータベースである。電力NWモデルは、電力設備のノードとし、電線をリンクとするネットワークモデルである。電力NWモデルは、たとえば、2次元の位置情報と、ノードが有する電圧と、で表現される3次元モデルである。電力NWモデルDB104は、系統(高圧または低圧)、設備種(発電所、変電所など)、エリア、位置といった属性ごとにテーブルを有する。これにより、データアクセス機能131は、データ取得要求に含まれる属性ごとにテーブルから該当するエントリを取得して、1つのXMLデータに変換する。なお、このXMLデータへの変換処理には時間がかかり、レスポンス性能の低下の原因となる。
ここで、(1)作業員Aがパターン入力したとする。具体的には、たとえば、作業員Aは、データ取得範囲が直径3kmの円である1回目のデータ取得要求を端末101から送信し、つぎに、データ取得範囲が円錐である2回目のデータ取得要求を端末101から送信し、つぎに、データ取得範囲が円柱である3回目のデータ取得要求を端末101から送信したとする。
(2)データアクセス機能131は、(1)データ取得要求を受け付ける都度、電力NWモデルDB104にアクセスして複数の属性のテーブルのエントリを取得して1つのXMLデータにマージする。そして、データアクセス機能131は、XMLデータを端末101に返す。
(3)パターン学習機能132は、作業員Aが選択した「円(3km)」→「円錐」→「円柱」の順のデータ取得範囲を学習する。
(4)この後、一旦作業員Aは、ログアウトし、別の機会に再度端末101にログインしたとする。そして、作業員Aは、データ取得範囲が直径3kmの円である1回目のデータ取得要求を端末101から送信したとする。この場合、上記(2)、(3)に示したように、1回目のデータ取得要求について、データアクセスおよびパターン学習が実行されるが、事前取得機能133は、これまでの作業員Aについての学習結果から、データ取得範囲が『直径3kmの円』の次に選択されるデータ取得範囲は、『円錐』であると特定し、特定したデータ取得範囲『円錐』を含む取得式を作成し、データアクセス機能131に渡して先読み指示する。これにより、データアクセス機能131は、2回目のデータ取得要求の到来前に、電力NWモデルDB104から、特定したデータ取得範囲『円錐』に含まれるデータを取得してXMLデータに変換することができる。これにより、作業員Aは、2回目のデータ取得要求をしてからその応答を受信するまでの間、データ取得処理に要する時間分待機することなく、即時応答を得ることができる。
このように、データ取得システム100は、どのようなデータ取得要求が到来するかを予測して該当するデータを先読みするため、応答性能の向上を図ることができる。また、先読み対象となるデータを予測することにより、先読みによる処理負荷の低減を図ることができる。
<システム構成例>
図2は、データ取得システム100のシステム構成例を示す説明図である。データ取得システム100は、サーバであるデータ取得装置200と、端末101と、が通信網201を介して通信可能に接続された構成である。データ取得装置200は、電力NWモデルDB104を有する。ただし、電力NWモデルDB104は、通信網201を介してデータ取得装置200からアクセス可能な他のサーバが有してもよい。
図2は、データ取得システム100のシステム構成例を示す説明図である。データ取得システム100は、サーバであるデータ取得装置200と、端末101と、が通信網201を介して通信可能に接続された構成である。データ取得装置200は、電力NWモデルDB104を有する。ただし、電力NWモデルDB104は、通信網201を介してデータ取得装置200からアクセス可能な他のサーバが有してもよい。
<ハードウェア構成例>
図3は、コンピュータのハードウェア構成例を示すブロック図である。コンピュータは、たとえば、図2に示したデータ取得装置200および端末101である。コンピュータ300は、プロセッサ301と、記憶デバイス302と、入力デバイス303と、出力デバイス304と、通信インターフェース(通信IF305)と、を有する。プロセッサ301、記憶デバイス302、入力デバイス303、出力デバイス304、および通信IF305は、バス306により接続される。プロセッサ301は、コンピュータ300を制御する。記憶デバイス302は、プロセッサ301の作業エリアとなる。また、記憶デバイス302は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス302としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス303は、データを入力する。入力デバイス303としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス304は、データを出力する。出力デバイス304としては、たとえば、ディスプレイ、プリンタがある。通信IF305は、通信網201と接続し、データを送受信する。
図3は、コンピュータのハードウェア構成例を示すブロック図である。コンピュータは、たとえば、図2に示したデータ取得装置200および端末101である。コンピュータ300は、プロセッサ301と、記憶デバイス302と、入力デバイス303と、出力デバイス304と、通信インターフェース(通信IF305)と、を有する。プロセッサ301、記憶デバイス302、入力デバイス303、出力デバイス304、および通信IF305は、バス306により接続される。プロセッサ301は、コンピュータ300を制御する。記憶デバイス302は、プロセッサ301の作業エリアとなる。また、記憶デバイス302は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス302としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス303は、データを入力する。入力デバイス303としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス304は、データを出力する。出力デバイス304としては、たとえば、ディスプレイ、プリンタがある。通信IF305は、通信網201と接続し、データを送受信する。
<電力NWモデルDB104>
図4は、電力NWモデルDB104の記憶内容例を示す説明図である。電力NWモデルDB104は、上述したように、電力NWモデルであるCIMを格納するデータベースであり、電力NWモデルは、電力設備のノードとし、電線をリンクとするネットワークモデルである。電力NWモデルDB104は、上述した記憶デバイス302により実現される。電力NWモデルDB104は、具体的には、たとえば、属性(系統、設備種、エリア、位置情報、…)ごとにノードIDを対応付けたテーブルの集合であるが、ここでは、説明上、電力NWモデルを構成するノードNおよびリンクLが有する情報に着目して説明する。
図4は、電力NWモデルDB104の記憶内容例を示す説明図である。電力NWモデルDB104は、上述したように、電力NWモデルであるCIMを格納するデータベースであり、電力NWモデルは、電力設備のノードとし、電線をリンクとするネットワークモデルである。電力NWモデルDB104は、上述した記憶デバイス302により実現される。電力NWモデルDB104は、具体的には、たとえば、属性(系統、設備種、エリア、位置情報、…)ごとにノードIDを対応付けたテーブルの集合であるが、ここでは、説明上、電力NWモデルを構成するノードNおよびリンクLが有する情報に着目して説明する。
ノードNは、ノードID401で特定され、系統402、設備種403、エリア404、位置情報405、電気特性情報406、接続リンクID407を持つ。ノードID401は、電力設備を示すノードNを一意に特定する識別情報である。系統402は、ノードNの系統を示す識別情報である。系統402とは、たとえば、高圧系統か低圧系統化を示す情報である。設備種403は、ノードNの設備の種類を示す情報である。設備種403には、たとえば、変圧器や鉄塔がある。
エリア404は、ノードNが所属する領域を示す情報である。エリア404は、たとえば、市区町村範囲で規定される。位置情報405は、XY平面で張られたノードNの位置を示す情報である。位置情報405は、たとえば、緯度(Y軸方向の値)および経度(X軸方向の値)で規定される。電気特性情報406は、ノードNのZ軸方向の値として利用される。電気特性情報406は、たとえば、ノードNにおける電圧値である。接続リンクID407は、接続リンクLを一意に特定する識別情報である。接続リンクLとは、ノードNに接続されるリンクLである。リンクLとは、ノードNである電力設備に接続される電線である。
リンクLは、リンクID411、リンク長412により特定される。リンクID411は、リンクLを一意に特定する識別情報である。リンク長412は、リンクLである電線の長さを示す情報である。
<取得パターン例>
図5は、取得パターンの一例を示す説明図である。取得パターンは、電力NWモデルの取得範囲を示す。作業者は、端末101を操作して取得パターンを選択し、選択した取得パターンを含むデータ取得要求をデータ取得装置200に送信する。図5では、例として、5種類の取得パターンについて説明する。
図5は、取得パターンの一例を示す説明図である。取得パターンは、電力NWモデルの取得範囲を示す。作業者は、端末101を操作して取得パターンを選択し、選択した取得パターンを含むデータ取得要求をデータ取得装置200に送信する。図5では、例として、5種類の取得パターンについて説明する。
取得パターンP1は、円形状の取得パターンである。取得パターンP1は、たとえば、地点Aを中心とした直径D[km]範囲の円内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、ノードNである地点Aの位置情報、円の指定、直径D、電気特性情報(電圧値)、設備種を端末101に与えることにより、端末101は、取得パターンP1を生成して、データ取得要求を送信することになる。
取得パターンP2は、円錐状の取得パターンである。取得パターンP2は、たとえば、高さが電圧(B1−B2)で、底面の円が地点Aを中心とした直径D[km]範囲の円で構成される円錐内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、地点Aの位置情報、円錐の指定、直径D、電気特性情報(電圧値の範囲)、設備種を端末101に与えることにより、端末101は、取得パターンP2を生成して、データ取得要求を送信することになる。
取得パターンP3は、円柱状の取得パターンである。取得パターンP3は、たとえば、高さが電圧Bで、底面の円が地点Aを中心とした直径D[km]範囲の円で構成される円柱内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、地点Aの位置情報、円柱の指定、直径D、電気特性情報(電圧値の範囲)、設備種を端末101に与えることにより、端末101は、取得パターンP3を生成して、データ取得要求を送信することになる。
取得パターンP4は、円錐台状の取得パターンである。取得パターンP4は、たとえば、地点Aからnホップの範囲である円錐台内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、地点Aの位置情報、円錐台の指定、ホップ数、電気特性情報(電圧値)、設備種を端末101に与えることにより、端末101は、取得パターンP2を生成して、データ取得要求を送信することになる。ホップ数とは、地点Aを出発地点としてリンクLから辿ることができるノード数である。
取得パターンP5は、球状の取得パターンである。取得パターンP5は、たとえば、電圧値がBである地点Aからnホップの範囲である球内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、地点Aの位置情報、円錐台の指定、ホップ数、電気特性情報(電圧値)、設備種を端末101に与えることにより、端末101は、取得パターンP2を生成して、データ取得要求を送信することになる。ホップ数とは、地点Aを出発地点としてリンクから辿ることができるノード数である。
なお、上記取得パターンP1〜P5は、一例である。また、地点Aからの範囲指定は、距離およびホップ数のいずれでもよい。また、取得パターンの形状は、取得パターンP1〜P5の形状に限られない。なお、取得パターンは、端末101で生成されてもよく、アプリケーション102で生成されてもよい。
<データ取得履歴蓄積テーブル>
図6は、データ取得履歴蓄積テーブル600の記憶内容例を示す説明図である。なお、以降のデータベースまたはテーブルの説明において、AAフィールドbbb(AAはフィールド名、bbbは符号)の値を、AAbbbと表記する場合がある。たとえば、ログIDフィールド601の値を、ログID601と表記する。
図6は、データ取得履歴蓄積テーブル600の記憶内容例を示す説明図である。なお、以降のデータベースまたはテーブルの説明において、AAフィールドbbb(AAはフィールド名、bbbは符号)の値を、AAbbbと表記する場合がある。たとえば、ログIDフィールド601の値を、ログID601と表記する。
データ取得履歴蓄積テーブル600は、データ取得装置200が更新するテーブルである。データ取得履歴蓄積テーブル600は、データ取得装置200が、作業者からのデータ取得要求により、電力NWモデルDB104からのデータ取得に関する履歴を蓄積するテーブルである。
データ取得履歴蓄積テーブル600は、ログIDフィールド601と、ユーザIDフィールド602と、セッションIDフィールド603と、データ取得要求時刻フィールド604と、データ処理時間フィールド605と、パターン形状フィールド606と、属性値フィールド607と、を有する。同一行における各フィールド601〜607の値により、データ取得履歴情報を示すエントリが構成される。
ログIDフィールド601は、ログIDを格納する記憶領域である。ログID601は、データ取得履歴情報を示すエントリを一意に特定する識別情報である。データ取得履歴情報は、ある作業者の1回のデータ取得に対応する。ユーザIDフィールド602は、ユーザIDを格納する領域である。ユーザID602は、ユーザである作業者を一意に特定する識別情報である。ユーザID(パスワードが含まれていてもよい)602は、事前登録により作業者に付与される。ユーザID602がデータ取得装置200(データ取得機能103またはアプリケーション102)に認証されることで、利用者は、データ取得装置200にログインすることができ、データ取得装置200を利用することができる。
セッションIDフィールド603は、セッションIDを格納する記憶領域である。セッションID603は、セッションを一意に特定する識別情報である。ここで、セッションとは、作業者がデータ取得装置200にログインしてからログアウトするまでの状態をいう。すなわち、セッションの期間中は、作業者は、何度もデータ取得要求を端末101から送信することができる。
データ取得要求時刻フィールド604は、データ取得要求時刻を格納する記憶領域である。データ取得要求時刻604は、データ取得要求があった時刻である。具体的には、たとえば、端末101からのデータ取得要求の送信時刻でもよく、データ取得装置200におけるデータ取得要求の受信時刻でもよい。図6のタイムチャートの時刻t1が、あるユーザのログイン後の1回目のデータ取得要求R1におけるデータ取得要求時刻604であり、時刻t2が、あるユーザの2回目のデータ取得要求R2におけるデータ取得要求時刻604である。
データ処理時間フィールド605は、データ処理時間を格納する記憶領域である。データ処理時間605とは、データアクセス機能131がデータ取得要求により電力NWモデルDB104にアクセスしてから、該当するデータを読み出して、XMLデータへの変換が完了して出力するまでの時間(データ変換時間)である。図6のタイムチャートの時間TP1が、あるユーザのログイン後の1回目のデータ取得要求R1におけるデータ取得要求時刻604(t1)からXMLデータの出力までのデータ処理時間605であり、時間TP2が、あるユーザの2回目のデータ取得要求R2におけるデータ取得要求時刻604(t2)からXMLデータの出力までのデータ処理時間605である。
パターン形状フィールド606は、パターン形状を格納する記憶領域である。パターン形状606は、たとえば、図5に示した図形を示す識別情報である。属性値フィールド607は、属性値を格納する記憶領域である。属性値607は、電気特性情報406である電圧と、パターン形状606の基準となる地点(図5でいう地点A)と、取得範囲と、を含む。取得範囲は、パターン形状606により包含されるXY平面の範囲である。たとえば、パターン形状606が円であれば、円の直径Dである。すなわち、パターン形状606により、取得パターンの形状が決まり、属性値607により、取得パターンの範囲が決まる。
<データ取得推定テーブル>
図7は、データ取得推定テーブルの記憶内容例を示す説明図である。データ取得推定テーブル700は、データ取得装置200が更新するテーブルである。データ取得履歴蓄積テーブル600は、データ取得装置200が、作業者からのデータ取得要求があった場合に、次のデータ取得要求の前に、当該次のデータ取得要求によるデータ取得を推定するためのテーブルである。
図7は、データ取得推定テーブルの記憶内容例を示す説明図である。データ取得推定テーブル700は、データ取得装置200が更新するテーブルである。データ取得履歴蓄積テーブル600は、データ取得装置200が、作業者からのデータ取得要求があった場合に、次のデータ取得要求の前に、当該次のデータ取得要求によるデータ取得を推定するためのテーブルである。
データ取得推定テーブル700は、ステップ番号フィールド701と、ユーザIDフィールド602と、パターン形状フィールド606と、代表属性値フィールド702と、次回取得タイミング配列フィールド703と、を有する。同一行の各フィールドの値により、次の取得パターンを推定するためのデータ取得推定情報を示すエントリが構成される。
ステップ番号フィールド701は、ステップ番号を格納する記憶領域である。ステップ番号701は、データ取得要求を一意に特定する識別情報である。代表属性値フィールド702は、代表属性値702を格納する記憶領域である。代表属性値702とは、属性値607を代表する値であり、たとえば、統計的な属性値である。統計的な属性値とは、属性値607の平均値、最小値、最大値、または、中央値である。代表属性値702は、代表電圧および代表取得範囲を含む。代表電圧は、統計的な電圧値であり、たとえば、電圧値の平均値、最小値、最大値、または、中央値である。代表取得範囲は、統計的な取得範囲であり、たとえば、取得範囲(たとえば、パターン形状606が円であれば、円の直径D)の平均値、最小値、最大値、または、中央値である。
なお、図6のデータ取得履歴蓄積テーブル600における属性値607は、電圧、地点、取得範囲を含むが、代表属性値702は、地点を含まない。初回の事前取得する場合は、データ取得履歴蓄積テーブルに蓄積されている対象ユーザの最新の取得履歴に含まれる位置情報を用いられる。また、2回目以降は、直前のデータ取得要求で指定された位置情報が用いられる。
次回取得タイミング配列フィールド703は、0個以上の次回取得タイミング配列を格納する記憶領域である。次回取得タイミング配列703は、次に到来すると推定されるデータ取得要求である次回推定データ取得要求を示すステップ番号701と、当該次回推定データ取得要求による代表取得時間(単位は、たとえば、分)と、選択確率と、からなる配列データである。たとえば、次回取得タイミング配列703が[U003][1][70]である場合、先頭の[U003]がステップ番号701であり、中央の[1]が代表取得時間であり、末尾の[70]が選択確率である。なお、次回取得タイミング配列フィールド703には、1以上の次回取得タイミング配列703が記憶されるが、最後のデータ取得要求については、次回推定データ取得要求が存在しないため、「NULL」となる。
代表取得時間とは、取得時間の代表値である。取得時間とは、ある取得要求におけるデータ取得要求時刻604(たとえば、t1)から次回推定データ取得要求が受信されるまで、すなわち、次回推定データ取得要求におけるデータ取得要求時刻604(たとえば、t2)までの時間(たとえば、Ta2)である。ただし、各セッションにおいて、ログイン時においては、ログインの時刻t0から1回目のデータ取得要求時刻604(t1)までの時間を取得時間Ta1とする。また、最後のデータ取得要求については、次のデータ取得要求が存在しないため、取得時間も存在しない。たとえば、最後のデータ取得要求がデータ取得要求R2である場合、次回推定データ取得要求R3は存在しないため、取得時間Ta3も存在しない。また、取得時間の代表値とは、統計的な取得時間であり、たとえば、取得時間の平均値、最小値、最大値または中央値である。
選択確率とは、次回推定データ取得要求で指定されるであろう取得パターン(パターン形状606および代表属性値702の組み合わせ)が、ユーザによって次回選択される確率である。たとえば、ステップ番号701が「U001」のエントリにおける次回取得タイミング配列703は、{[U003][1][70],[U004][1][30]}の2つである。先頭の次回取得タイミング配列703{[U003][1][70]}は、ステップ番号701である[U003]のデータ取得要求がログイン(パターン形状606および代表属性値702が「NULL」)から[1]の時間経過時に、[70]%の確率で選択されることを意味する。また、末尾の次回取得タイミング配列703{[U004][1][30]}は、ステップ番号701である[U004]のデータ取得要求がログイン(パターン形状606および代表属性値702が「NULL」)から[1]の時間経過時に、[30]%の確率で選択されることを意味する。
同様に、ステップ番号701が「U003」のエントリにおける次回取得タイミング配列703は、{[U008][5][90],[U010][7][10]}の2つである。先頭の次回取得タイミング配列703{[U008][5][90]}は、ステップ番号701である[U008]のデータ取得要求が、ステップ番号701である「U003」のデータ取得要求から[5]の時間経過時に、[90]%の確率で選択されることを意味する。また、末尾の次回取得タイミング配列703{[U010][7][10]}は、ステップ番号701である[U010]のデータ取得要求が、ステップ番号701である「U003」のデータ取得要求から[7]の時間経過時に、[10]%の確率で選択されることを意味する。
なお、パターン形状606および代表属性値607が「NULL」のエントリは、ユーザがデータ取得装置200とのセッション開始時に初めて参照するエントリである。また、次回取得タイミング配列703が「NULL」のエントリは、次のデータ取得要求(ステップ番号701)が存在しないことを示すエントリである。
<ステップ情報管理テーブル>
図8は、ステップ情報管理テーブルの記憶内容例を示す説明図である。ステップ情報管理テーブル800は、データ取得装置200が更新するテーブルである。ステップ情報管理テーブル800は、ユーザごとのデータ取得要求を示すステップ番号701を管理するテーブルである。
図8は、ステップ情報管理テーブルの記憶内容例を示す説明図である。ステップ情報管理テーブル800は、データ取得装置200が更新するテーブルである。ステップ情報管理テーブル800は、ユーザごとのデータ取得要求を示すステップ番号701を管理するテーブルである。
ステップ情報管理テーブル800は、ユーザIDフィールド602と、ステップ番号フィールド701と、前ステップ番号フィールド801と、を有する。同一行の各フィールドの値により、ステップ管理情報を示すエントリが構成される。
前ステップ番号フィールド801は、前ステップ番号801を格納する記憶領域である。前ステップ番号801とは、ステップ番号701に対応するデータ取得要求の1つ前のデータ取得要求を示すステップ番号701である。
<事前取得情報管理テーブル>
図9は、事前取得情報管理テーブルの記憶内容例を示す説明図である。事前取得情報管理テーブル900は、データ取得装置200が事前取得処理(図22で後述)で更新するテーブルである。事前取得情報管理テーブル900は、ユーザごとに事前取得したデータを管理するテーブルである。事前取得情報管理テーブル900は、ユーザIDフィールド602と、パターン形状フィールド606と、属性値フィールド607と、事前取得データフィールド901と、を有する。同一行の各フィールドの値により、事前取得情報を示すエントリが構成される。
図9は、事前取得情報管理テーブルの記憶内容例を示す説明図である。事前取得情報管理テーブル900は、データ取得装置200が事前取得処理(図22で後述)で更新するテーブルである。事前取得情報管理テーブル900は、ユーザごとに事前取得したデータを管理するテーブルである。事前取得情報管理テーブル900は、ユーザIDフィールド602と、パターン形状フィールド606と、属性値フィールド607と、事前取得データフィールド901と、を有する。同一行の各フィールドの値により、事前取得情報を示すエントリが構成される。
事前取得データフィールド901は、事前取得データを格納する記憶領域である。事前取得データ901は、データアクセス機能131が電力NWモデルDB104にアクセスして事前取得したデータであり、ユーザID602で特定される作業者が指定するであろう取得パターン(同一エントリのパターン形状606および属性値607の組み合わせ)に含まれるデータである。
<起動タイミング管理テーブル>
図10は、起動タイミング管理テーブルの記憶内容例を示す説明図である。起動タイミング管理テーブル1000は、データ取得装置200が更新するテーブルである。起動タイミング管理テーブル1000は、ユーザごとに起動タイミングを管理するテーブルである。起動タイミング管理テーブル1000は、ユーザIDフィールド602と、起動タイミングフィールド1001と、を有する。同一行の各フィールドの値により、起動タイミング情報を示すエントリが構成される。
図10は、起動タイミング管理テーブルの記憶内容例を示す説明図である。起動タイミング管理テーブル1000は、データ取得装置200が更新するテーブルである。起動タイミング管理テーブル1000は、ユーザごとに起動タイミングを管理するテーブルである。起動タイミング管理テーブル1000は、ユーザIDフィールド602と、起動タイミングフィールド1001と、を有する。同一行の各フィールドの値により、起動タイミング情報を示すエントリが構成される。
起動タイミングフィールド1001は、起動タイミングを格納する記憶領域である。セッションが終了すると、そのユーザID602の起動タイミングフィールド1001の値は消去される。起動タイミング1001は、データアクセス機能131に電力NWモデルDB104からデータを取得させるために事前取得機能133を起動するタイミングである。具体的には、たとえば、データ取得推定テーブル700において、該当するステップ番号701のエントリの次回取得タイミング配列703のうち、選択確率が最高となる次回取得タイミング配列703の代表取得時間が起動タイミング1001に適用される。
たとえば、図10のタイムチャートに示したように、ステップ番号701が「U001」のエントリには、2つの次回取得タイミング配列703{[U003][1][70],[U004][1][30]}がある。最高選択確率は、先頭の次回取得タイミング配列703{[U003][1][70]}の[70]であるため、先頭の次回取得タイミング配列703{[U003][1][70]}の代表取得時間[1]が起動タイミング1001に適用される。具体的には、たとえば、ログイン時からの代表取得時間[1]の経過時から、同一ユーザID602でかつ同一パターン形状606におけるデータ処理時間605の平均値分遡った時点が、ステップ番号701であるU003に対応するデータ取得要求による事前取得処理の起動タイミング1001となる。
また、ステップ番号701が「U003」のエントリには、2つの次回取得タイミング配列703{[U008][5][90],[U010][7][10]}がある。最高選択確率は、先頭の次回取得タイミング配列703{[U008][5][90]}の[90]であるため、先頭の次回取得タイミング配列703{[U008][5][90]}の代表取得時間[5]が起動タイミング1001に適用される。具体的には、たとえば、ステップ番号701である「U003」に対応するデータ取得要求によってXMLデータが出力された時刻からの代表取得時間[5]の経過時から、同一ユーザID602でかつ同一パターン形状606におけるデータ処理時間605の平均値分遡った時点が、ステップ番号701であるU008に対応するデータ取得要求による事前取得処理の起動タイミング1001となる。
図6〜図9に示したテーブル600,700,800,900は、具体的には、たとえば、図3に示した記憶デバイス302により実現される。
<データ取得装置200の機能的構成例>
図11は、データ取得装置200の機能的構成例を示すブロック図である。データ取得装置200は、受信部1101と、変換部1102と、送信部1103と、学習部1104と、特定部1105と、事前取得部1106と、設定部1107と、を有する。受信部1101〜設定部1107は、具体的には、たとえば、図3に示した記憶デバイス302に記憶されたプログラムをプロセッサ301に実行させることにより、または、通信IF305により、実現される機能である。
図11は、データ取得装置200の機能的構成例を示すブロック図である。データ取得装置200は、受信部1101と、変換部1102と、送信部1103と、学習部1104と、特定部1105と、事前取得部1106と、設定部1107と、を有する。受信部1101〜設定部1107は、具体的には、たとえば、図3に示した記憶デバイス302に記憶されたプログラムをプロセッサ301に実行させることにより、または、通信IF305により、実現される機能である。
受信部1101は、端末101からデータ取得要求を受信する。変換部1102は、電力NWモデルDB104にアクセスして、受信部1101によって受信されたデータ取得要求に該当するデータ(属性が異なる複数のデータ)を電力NWモデルDB104から取得して、異なる形式のデータ(XMLデータ)に変換する。変換部1102は、上述したデータアクセス機能131に相当する。送信部1103は、変換部1102で得られたXMLデータを、要求元、すなわち、データ取得要求の送信元である端末101に送信する。
学習部1104は、要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、データ取得要求の種類と、データ取得要求の時系列順を規定する取得タイミングと、を学習する。学習部1104は、上述したパターン学習機能132に対応する。要求元とは、作業者がデータ取得装置200へのログインに使用した端末101である。データ取得要求の種類とは、たとえば、取得パターン(パターン形状606と属性値607の組み合わせ)である。取得タイミングとは、たとえば、データ取得要求時刻604である。学習部1104は、この他、データ取得要求に含まれるユーザID602やセッションID603を特定する。また、学習部1104は、変換部1102からのXMLデータの出力完了の通知を受けて、データ処理時間605を計測する。これにより、学習部1104は、データ取得要求ごとに、データ取得履歴蓄積テーブル600にエントリを登録する。
また、学習部1104は、データ取得履歴蓄積テーブル600に登録したエントリを用いて、データ取得推定テーブル700のエントリを生成して登録する。具体的には、学習部1104は、学習結果テーブルを用いて学習結果を生成する。
図12は、学習結果テーブルの一例を示す説明図である。学習結果テーブル1200は、ユーザID602ごとに生成される。学習結果テーブル1200は、取得パターンID列フィールド1201と、選択回数フィールド1202と、選択確率フィールド1203と、代表取得時間フィールド1204と、代表属性値フィールド702と、を有する。
取得パターンID列フィールド1201は、取得パターンID列を格納する記憶領域である。取得パターンID列1201は、時系列な取得パターンを特定するID列である。たとえば、「P1」は、1回のデータ取得要求では取得パターンP1が選択されてセッションが終了したことを示す取得パターンID列1201である。また、「P1−P1−P2」は、1回のデータ取得要求では取得パターンP1、2回目のデータ取得要求では取得パターンP1、3回目のデータ取得要求では、取得パターンP2が選択されてセッションが終了したことを示す取得パターンID列1201である。
選択回数フィールド1202は、選択回数を格納する記憶領域である。選択回数1202は、その取得パターンID列1201でセッションが終了した回数、すなわち、取得パターンID列1201を選択した回数である。
選択確率フィールド1203は、選択確率を格納する記憶領域である。選択確率1203は、その取得パターンID列1201が選択される確率である。学習部1104は、先頭から1つ前までの一連の取得パターンIDが共通する取得パターンID列1201を用いて選択確率1203を算出する。ただし、取得パターンID列1201が1個の取得パターンIDのみからなる場合、先頭から1つ前までの一連の取得パターンIDは存在しないため、選択確率1203の分母は、取得パターンID列1201「P1」〜「P5」の選択回数1202の総和となり、分子は、取得パターンID列1201「P1」〜「P5」のうち対象となる取得パターンID列1201の選択回数1202である。
たとえば、取得パターンID列1201「P1」の選択確率1203は、7/10(70%)、取得パターンID列1201「P2」の選択確率1203は、3/10(30%)、取得パターンID列1201「P3」〜「P5」の選択確率1203は、それぞれ、0/10(0%)となる。
ID数が2以上の取得パターンID列1201については、たとえば、ID数が3個の場合、取得パターンID列1201は、125通り存在する。学習部1104は、このうち、先頭(1回目)から1つ前(2回目)までの取得パターンIDが共通する取得パターンID列1201でグルーピングし、各グループ内で選択確率1203を算出する。たとえば、「P1−P1−P1」、「P1−P1−P2」、「P1−P1−P3」、「P1−P1−P4」、「P1−P1−P5」は、先頭(1回目)から1つ前(2回目)までの取得パターンIDが「P1−P1」で共通する。この場合、選択確率1203の分母は、取得パターンID列1201「P1−P1−P1」〜「P1−P1−P5」の選択回数1202の総和となり、分子は、取得パターンID列1201「P1−P1−P1」〜「P1−P1−P5」のうち対象となる取得パターンID列1201の選択回数1202である。
たとえば、取得パターンID列1201「P1−P1−P1」の選択確率1203は、4/10(40%)、取得パターンID列1201「P1−P1−P2」の選択確率1203は、6/10(60%)、取得パターンID列1201「P1−P1−P3」〜「P1−P1−P5」の選択確率1203は、それぞれ、0/10(0%)となる。
代表取得時間フィールド1204は、代表取得時間を格納する記憶領域である。代表取得時間1204については、学習部1104は、データ取得履歴蓄積テーブル600を参照して、各取得パターンID列1201について、末尾の取得パターンIDに対応するデータ取得要求のデータ取得要求時刻604から、その1つ前の取得パターンIDに対応するデータ取得要求のデータ取得要求時刻604を引いた時間を、取得時間として算出する。そして、学習部1104は、たとえば、算出した各取得時間の平均値を代表取得時間1204として算出する。
たとえば、取得パターンID列1201が「P1−P2−P3」である場合、学習部1104は、そのユーザのセッションID603ごとに、取得パターンのパターン形状606が「P1」→「P2」→「P3」で終了となるエントリを、データ取得履歴蓄積テーブル600から特定する。そして、学習部1104は、末尾の取得パターンID「P3」がパターン形状606として登録されているエントリのデータ取得要求時刻604と、その1つ前の取得パターンID「P2」がパターン形状606として登録されているエントリのデータ取得要求時刻604と、を取得して、取得時間を算出する。学習部1104は、この取得時間の算出処理を、取得パターンID列1201が「P1−P2−P3」であるセッションごとに実行し、算出した取得時間の平均値を求めて、取得パターンID列1201「P1−P2−P3」の代表取得時間1204とする。
なお、ID数が1個の取得パターンID列1201については、1つ前の取得パターンIDが存在しないため、1つ前の取得パターンIDに対応するデータ取得要求のデータ取得要求時刻604の代わりにログイン時刻が適用される。
代表属性値702は、代表電圧と代表取得範囲との組み合わせである。代表属性値702は、たとえば、各取得パターンID列1201において、末尾の取得パターンIDが示す取得パターンを選択した場合における、電圧値および取得範囲のそれぞれの平均値である。
たとえば、取得パターンID列1201が「P1−P2−P3」である場合、学習部1104は、そのユーザのセッションID603ごとに、取得パターンのパターン形状606が「P1」→「P2」→「P3」で終了となるエントリを、データ取得履歴蓄積テーブル600から特定する。そして、学習部1104は、末尾の取得パターンID「P3」がパターン形状606として登録されているエントリの属性値607(地点を除く)を取得する。学習部1104は、この属性値607(地点を除く)の取得処理を、取得パターンID列1201が「P1−P2−P3」であるセッションごとに実行し、取得した属性値607(地点を除く)の平均値を求めて、取得パターンID列1201「P1−P2−P3」の代表属性値702とする。選択確率1203、代表取得時間1204および代表属性値702は、データ取得推定テーブル700のエントリ登録に用いられる。
図11に戻り、特定部1105は、一連のデータ取得要求とは異なる他の一連のデータ取得要求について第1データ取得要求が要求元から受信された場合、学習部1104の学習処理による学習結果に基づいて、第1データ取得要求の次に要求元から取得され得る次回推定データ取得要求の種類および取得タイミングを特定する。特定部1105は、上述した事前取得機能133に対応する。
特定部1105は、学習結果、具体的には、データ取得推定テーブル700の次回取得タイミング配列703から、次回推定データ取得要求のステップ番号701を選択確率1203で特定する。そして、特定部1105は、次回推定データ取得要求の種類として、次回推定データ取得要求のステップ番号701のエントリに対応するパターン形状606および代表属性値702をデータ取得推定テーブル700から特定する。また、特定部1105は、次回推定データ取得要求の取得タイミングとして、第1データ取得要求のデータ取得要求時刻604から、代表取得時間1204の経過時となる次回推定データ取得要求時刻604を特定する。
事前取得部1106は、特定部1105の特定処理によって種類が特定された次回推定データ取得要求に該当するデータを、次回推定データ取得要求の取得タイミング前に電力NWモデルDB104から取得する。事前取得部1106は、上述した事前取得機能133に対応する。具体的には、たとえば、事前取得部1106は、変換部1102を制御して、第2データ取得要求の取得タイミング前に電力NWモデルDB104からデータを取得する。
設定部1107は、次回推定データ取得要求の取得タイミングが、当該データの所定の形式(たとえば、XML形式)への変換に要するデータ処理時間605の経過時以降となるように、事前取得処理の起動タイミング1001を設定する。具体的には、たとえば、設定部1107は、図10のタイムチャートで説明したように、代表取得時間1204の経過時から、同一ユーザID602でかつ同一パターン形状606におけるデータ処理時間605の平均値分遡った時点を起動タイミング1001として設定する。これにより、事前取得部1106は、起動タイミング1001で事前取得処理を実行することができる。
判断部1108は、第1データ取得要求の次に実際に第2データ取得要求が受信された場合、第2データ取得要求に含まれる種類と、特定処理によって特定された次回推定データ取得要求の種類と、が一致するか否かを判断する。一致する場合、事前取得部1106は、事前取得結果を送信部1103に送る。不一致の場合、変換部1102は、電力NWモデルDB104から、受信部1101によって受信された第2データ取得要求に該当するデータを取得してXMLデータに変換し、送信部1103に送る。また、不一致の場合、特定部1105は、データ取得推定テーブル700の次回取得タイミング配列703から、前回選択されなかった次回推定データ取得要求のステップ番号701を選択確率1203で特定することになる。
<学習処理>
図13は、学習部1104による学習処理手順例を示すフローチャートである。学習部1104は、学習タイミングを待ち受ける(ステップS1301:No)。学習タイミングとは、たとえば、ユーザにより指定された不定期なタイミング、または、日次、週次、月次などの定期的なタイミングである。学習タイミングである場合(ステップS1301:Yes)、学習部1104は、データ取得履歴蓄積テーブル600から対象エントリ群を取得する(ステップS1302)。対象エントリ群とは、学習対象エントリ群とは、学習対象となるエントリ群であり、データ取得履歴蓄積テーブル600の全エントリでもよく、データ取得履歴蓄積テーブル600のあるフィールドの値の範囲であらかじめ制限されたエントリ群でもよい。
図13は、学習部1104による学習処理手順例を示すフローチャートである。学習部1104は、学習タイミングを待ち受ける(ステップS1301:No)。学習タイミングとは、たとえば、ユーザにより指定された不定期なタイミング、または、日次、週次、月次などの定期的なタイミングである。学習タイミングである場合(ステップS1301:Yes)、学習部1104は、データ取得履歴蓄積テーブル600から対象エントリ群を取得する(ステップS1302)。対象エントリ群とは、学習対象エントリ群とは、学習対象となるエントリ群であり、データ取得履歴蓄積テーブル600の全エントリでもよく、データ取得履歴蓄積テーブル600のあるフィールドの値の範囲であらかじめ制限されたエントリ群でもよい。
そして、学習部1104は、学習処理を実行する(ステップS1303)。学習処理(ステップS1303)の詳細については、図14で後述する。このあと、学習部1104は、データ取得推定テーブル更新処理を実行する(ステップS1304)。データ取得推定テーブル更新処理(ステップS1304)の詳細については、図18で後述する。これにより、学習部1104は、一連の処理を終了する。
<学習処理(ステップS1303)>
図14は、図13に示した学習処理(ステップS1303)の詳細な処理手順例を示すフローチャートである。学習部1104は、データ取得履歴蓄積テーブル600から取得した学習対象エントリ群について、未選択のユーザID602があるか否かを判断する(ステップS1401)。未選択のユーザID602がある場合(ステップS1401:Yes)、学習部1104は、未選択のユーザID602を選択して、当該選択ユーザID602のエントリ群を学習対象エントリ群から選択する(ステップS1402)。学習部1104は、選択ユーザID602のエントリ群について、未選択のセッションID603があるか否かを判断する(ステップS1403)。未選択のセッションID603がある場合(ステップS1403:Yes)、学習部1104は、当該選択ユーザID602のエントリ群から、未選択セッションID603を選択して、当該選択セッションID603のエントリ群を選択する(ステップS1404)。
図14は、図13に示した学習処理(ステップS1303)の詳細な処理手順例を示すフローチャートである。学習部1104は、データ取得履歴蓄積テーブル600から取得した学習対象エントリ群について、未選択のユーザID602があるか否かを判断する(ステップS1401)。未選択のユーザID602がある場合(ステップS1401:Yes)、学習部1104は、未選択のユーザID602を選択して、当該選択ユーザID602のエントリ群を学習対象エントリ群から選択する(ステップS1402)。学習部1104は、選択ユーザID602のエントリ群について、未選択のセッションID603があるか否かを判断する(ステップS1403)。未選択のセッションID603がある場合(ステップS1403:Yes)、学習部1104は、当該選択ユーザID602のエントリ群から、未選択セッションID603を選択して、当該選択セッションID603のエントリ群を選択する(ステップS1404)。
学習部1104は、ステップS1404で選択された当該選択セッションID603のエントリ群のうち未選択のエントリがあるか否かを判断する(ステップS1405)。未選択のエントリがある場合(ステップS1405:Yes)、学習部1104は、当該選択セッションID603のエントリ群から、未選択かつデータ取得要求時刻604が最古のエントリを選択する(ステップS1406)。そして、学習部1104は、ステップS1406の選択エントリから、取得パターンID(パターン形状606)、データ取得要求時刻604、および属性値607を特定し、取得パターン配列の最後尾に追加する(ステップS1407)。そして、ステップS1405に戻る。ステップS1405〜S1407のループにより、選択セッションID603のエントリごとに、取得パターン配列が生成される。
ステップS1405において、未選択エントリがない場合(ステップS1405:No)、学習部1104は、最終的に生成された、選択ユーザID602で、かつ、選択セッションID603の取得パターン配列を記憶デバイス302に保存し(ステップS1408)、ステップS1403に戻る。
ステップS1403において、選択ユーザID602について未選択セッションID603がない場合(ステップS1403:No)、学習部1104は、集計処理(ステップS1409)および代表値算出処理(ステップS1410)を実行する。集計処理(ステップS1409)および代表値算出処理(ステップS1410)の詳細については、それぞれ、図16、図17で後述する。代表値算出処理(ステップS1410)のあと、ステップS1401に戻る。
ステップS1401において、未選択のユーザID602がない場合(ステップS1401:No)、学習部1104は学習処理(ステップS1303)を終了し、データ取得推定テーブル更新処理(ステップS1304)に移行する。
<集計処理(ステップS1409)>
図15は、図14に示した集計処理(ステップS1409)の詳細な処理手順例を示すフローチャートである。集計処理(ステップS1409)は、学習結果テーブル1200において、選択回数1202を集計したり、代表取得時間1204の算出元となる取得時間を算出する処理である。
図15は、図14に示した集計処理(ステップS1409)の詳細な処理手順例を示すフローチャートである。集計処理(ステップS1409)は、学習結果テーブル1200において、選択回数1202を集計したり、代表取得時間1204の算出元となる取得時間を算出する処理である。
学習部1104は、ステップS1407で生成された取得パターン配列群について、未選択セッションID603があるか否かを判断する(ステップS1501)。未選択セッションID603がある場合(ステップS1501:Yes)、学習部1104は、未選択セッションID603を選択し、その取得パターン配列を選択する(ステップS1502)。そして、学習部1104は、選択取得パターン配列に含まれている一連の取得パターンID(以下、取得パターンID列1201)を特定する(ステップS1503)。
学習部1104は、学習結果テーブル1200において、特定した取得パターンID列1201の選択回数1202に1加算する(ステップS1504)。
つぎに、学習部1104は、変数iをi=1とする(ステップS1505)。学習部1104は、選択取得パターン配列に、先頭からi番目までの取得パターンID列1201が存在するか否かを判断する(ステップS1506)。存在する場合(ステップS1506:Yes)、学習部1104は、選択取得パターン配列のi番目のデータ取得要求時刻604から(i‐1)番目のデータ取得要求時刻604を減算して、(i−1)回目のデータ取得からi回目のデータ取得までの取得時間を算出する(ステップS1507)。
学習部1104は、選択取得パターン配列のi番目のデータ取得要求時刻604に、ステップS1507で算出した取得時間を保存する(ステップS1508)。そして、学習部1104は、iをインクリメントし(ステップS1509)、ステップS1506に戻る。
ステップS1506において、選択取得パターン配列に、先頭からi番目までの取得パターンID列1201が存在しない場合(ステップS1506:No)、ステップS1501に戻る。ステップS1501において、取得パターン配列群について、未選択セッションID603がない場合(ステップS1501:No)、学習部1104は、選択確率算出処理を実行して(ステップS1510)、代表値算出処理(ステップS1410)に移行する。
<選択確率算出処理>
図16は、図15に示した選択確率算出処理(ステップS1510)の詳細な処理手順例を示すフローチャートである。学習部1104は、iの初期値をi=1に設定する(ステップS1601)。iは、学習結果テーブル1200で規定した取得パターンID列1201に含まれるID数を示す変数である。
図16は、図15に示した選択確率算出処理(ステップS1510)の詳細な処理手順例を示すフローチャートである。学習部1104は、iの初期値をi=1に設定する(ステップS1601)。iは、学習結果テーブル1200で規定した取得パターンID列1201に含まれるID数を示す変数である。
学習部1104は、ID数がi個の取得パターンID列1201があるか否かを判断する(ステップS1602)。i個の取得パターンID列1201がある場合とは、選択回数1202が1以上あるi個の取得パターンID列1201が存在する場合をいう。
i個の取得パターンID列1201がある場合(ステップS1602:Yes)、ID数i個の取得パターンID列1201群を、先頭から(i−1)番目までの取得パターンIDが共通する取得パターンID列1201にグループ分けをする(ステップS1603)。たとえば、ID数がi=3個の場合、取得パターンID列1201「P1−P1−P1」と「P1−P1−P2」は、先頭から2番目(i−1番目)までの「P1−P1」が共通するため、同一グループにグループ分けされる。一方、取得パターンID列1201「P1−P1−P1」と「P1−P3−P2」は、先頭から2番目(i−1番目)までの取得パターンIDが「P1−P1」と「P1−P3」であるため、異なるグループにグループ分けされる。なお、ID数がi=1個の場合、先頭から(i−1)番目までの取得パターンIDが存在しないため、「P1」〜「P5」は、同一グループにグループ分けされる。
学習部1104は、未選択グループがあるか否かを判断する(ステップS1604)。未選択グループがある場合(ステップS1604:Yes)、学習部1104は、未選択グループを1つ選択する(ステップS1605)。そして、学習部1104は、選択グループ内のID数i個の各取得パターンID列1201の選択確率1203を算出し、学習結果テーブル1200に保存する(ステップS1606)。そして、ステップS1604に戻る。
ステップS1604において、未選択グループがない場合(ステップS1604:No)、学習部1104は、iをインクリメントし(ステップS1607)、ステップS1602に戻る。ステップS1602において、ID数がi個の取得パターンID列1201がない場合(ステップS1602:No)、学習部1104は、選択確率算出処理(ステップS1510)を終了して、代表値算出処理(ステップS1410)に移行する。
<代表値算出処理(ステップS1410)>
図17は、図14に示した代表値算出処理(ステップS1410)の詳細な処理手順例を示すフローチャートである。代表値算出処理(ステップS1410)では、学習部1104は、代表取得時間1204と代表属性値702を算出する。
図17は、図14に示した代表値算出処理(ステップS1410)の詳細な処理手順例を示すフローチャートである。代表値算出処理(ステップS1410)では、学習部1104は、代表取得時間1204と代表属性値702を算出する。
学習部1104は、変数iをi=1に設定する(ステップS1701)。学習部1104は、全セッションID603の取得パターン配列を対象に、先頭からi番目までの取得パターンID列1201があるか否かを判断する(ステップS1702)。
先頭からi番目までの取得パターンID列1201がある場合(ステップS1702:Yes)、学習部1104は、該当する取得パターンID列1201を選択する(ステップS1703)。たとえば、「P1−P2−P3」という取得パターンID列1201を含む取得パターン配列がある場合、i=1であれば、「P1−P2−P3」から取得パターンID列1201として「P1」が選択され、i=2であれば、「P1−P2−P3」から取得パターンID列1201として「P1−P2」が選択され、i=3であれば、「P1−P2−P3」から取得パターンID列1201として「P1−P2−P3」が選択される。
学習部1104は、同一の選択取得パターンID列1201でグループ分けする(ステップS1704)。そして、学習部1104は、未選択グループがあるか否かを判断する(ステップS1705)。未選択グループがある場合(ステップS:Yes)、学習部1104は、未選択グループを1つ選択する(ステップS1706)。
そして、学習部1104は、選択グループ内の選択取得パターンID列1201から、(i‐1)回目のデータ取得からi回目のデータ取得までの各取得時間を特定し、特定した取得時間から、代表取得時間1204を算出する(ステップS1707)。同様に、学習部1104は、選択グループ内の選択取得パターンID列1201から、i回目の各属性値607を特定し、特定した各属性値607から、代表属性値607を算出する(ステップS1708)。そして、ステップS1705に戻る。
ステップS1705において、未選択グループがない場合(ステップS1705:No)、iをインクリメント(i=i+1)として(ステップS1709)、ステップS1702に戻る。ステップS1702において、先頭からi番目までの取得パターンID列1201がない場合(ステップS1702:No)、学習部1104は、代表値算出処理(ステップS1610)を終了し、ステップS1401に戻り、ユーザID602を変更する。
<データ取得推定テーブル更新処理(ステップS1304)>
図18は、図13に示したデータ取得推定テーブル更新処理(ステップS1304)の詳細な処理手順例を示すフローチャートである。データ取得推定テーブル更新処理(ステップS1304)は、図7に示したデータ取得推定テーブル700を更新する処理である。
図18は、図13に示したデータ取得推定テーブル更新処理(ステップS1304)の詳細な処理手順例を示すフローチャートである。データ取得推定テーブル更新処理(ステップS1304)は、図7に示したデータ取得推定テーブル700を更新する処理である。
学習部1104は、未選択のユーザID602があるか否かを判断する(ステップS1801)。未選択のユーザID602がある場合(ステップS1801:Yes)、学習部1104は、未選択のユーザID602の学習結果テーブル1200を選択する(ステップS1802)。つぎに、学習部1104は、変数i=0に設定する(ステップS1803)。変数iは、取得パターンIDの時系列順を示すとともに、ステップ番号701の時系列順にも対応する。学習部1104は、初期ステップ番号701を採番し、登録対象ステップ番号701に設定する(ステップS1804)。たとえば、図7に示したように、選択ユーザID602が「A0001」の場合、初期ステップ番号701として「U001」が採番される。
学習部1104は、ステップS1802で選択した学習結果テーブル1200において、選択回数1202が1回以上で、かつ、ID数が(i+1)の取得パターンID列1201が存在するか否かを判断する(ステップS1805)。存在する場合(ステップS1805:No)、学習部1104は、選択回数1202が1回以上であり、かつ、ID数が(i+1)個の取得パターンID列1201の各々に対し次回ステップ番号701を採番し、次回取得タイミング配列703を生成する(ステップS1806)。
具体的には、たとえば、i=0とすると、ステップS1805に該当するID数が1個の取得パターンID列1201は、「P1」(選択回数1202は7回、選択確率1203は70%、代表取得時間1204は「1」)と「P2」(選択回数1202は3回、選択確率1203は30%、代表取得時間1204は「1」)である。学習部1104は、「P1」と「P2」のそれぞれに、次回ステップ番号701{U003,U004}を採番して、次回取得タイミング配列703として、{[U003][1][70],[U004][1][30]}を生成する。
このあと、学習部1104は、i=0であるか否かを判断する(ステップS1807)。i=0である場合(ステップS1807:Yes)、学習部1104は、ステップS1804で採番された初期ステップ番号701(登録対象ステップ番号701)、選択ユーザID602、取得パターンID(NULL)、代表属性値702(NULL)、およびステップS1806で生成した次回取得タイミング配列703からなるエントリを、データ取得推定テーブル700に登録する(ステップS1808)。そして、ステップS1810に移行する。
一方、ステップS1807において、i=0でない場合(ステップS1807:No)、1つ前のループのステップS1810で設定された登録対象ステップ番号701、選択ユーザID602、ステップS1805で存在が確認された取得パターンID列1201におけるi番目の取得パターンID、ステップS1805で存在が確認された取得パターンID列1201におけるi番目の代表属性値702、およびステップS1806で生成した次回取得タイミング配列703からなるエントリを、データ取得推定テーブル700に登録する(ステップS1809)。そして、そして、ステップS1810に移行する。
なお、取得パターンID列1201におけるi番目の取得パターンIDは、取得パターンID列1201の末尾の取得パターンIDとなる。ステップS1805で存在が確認された取得パターンID列1201におけるi番目の代表属性値702については、学習部1104は、当該取得パターンID列1201を含む取得パターン配列から取得する。
ステップS1810では、学習部1104は、ステップS1806で採番された次回ステップ番号701を登録対象ステップ番号701に設定する(ステップS1810)。そして、学習部1104は、iをインクリメントし(ステップS1811)、ステップS1805に戻る。ステップS1805において、ステップS1802で選択した学習結果テーブル1200において、選択回数1202が1回以上で、かつ、ID数が(i+1)の取得パターンID列1201が存在しない場合(ステップS1805:No)、ステップS1812に移行する。
ステップS1812では、学習部1104は、1つ前のループのステップS1810で設定された登録対象ステップ番号701、選択ユーザID602、1つ前のループのステップS1805で存在が確認された取得パターンID列1201におけるi番目の取得パターンID、1つ前のループのステップS1805で存在が確認された取得パターンID列1201におけるi番目の代表属性値702、および次回取得タイミング配列703(NULL)からなるエントリを、データ取得推定テーブル700に登録する(ステップS1809)。そして、ステップS1801に移行する。
ステップS1801において、未選択のユーザID602がない場合、学習部1104は、データ取得推定テーブル更新処理(ステップS1304)を終了する。
<データ取得処理>
図19は、データ取得装置200によるデータ取得処理の詳細な処理手順例1を示すフローチャートである。まず、データ取得装置200は、端末101のログイン検出を待ち受ける(ステップS1901:No)。ログインが検出された場合(ステップS1901:Yes)、データ取得装置200は、端末101からのユーザID602を取得し、セッションID603を新規発行する(ステップS1902)。このあと、データ取得装置200は、ステップS1902での取得ユーザID602のエントリが、データ取得推定テーブル700に存在するか否かを判断する(ステップS1903)。
図19は、データ取得装置200によるデータ取得処理の詳細な処理手順例1を示すフローチャートである。まず、データ取得装置200は、端末101のログイン検出を待ち受ける(ステップS1901:No)。ログインが検出された場合(ステップS1901:Yes)、データ取得装置200は、端末101からのユーザID602を取得し、セッションID603を新規発行する(ステップS1902)。このあと、データ取得装置200は、ステップS1902での取得ユーザID602のエントリが、データ取得推定テーブル700に存在するか否かを判断する(ステップS1903)。
ステップS1903において、ステップS1902での取得ユーザID602のエントリが、データ取得推定テーブル700に存在する場合(ステップS1903:Yes)、データの事前取得が可能となる。この場合、データ取得装置200は、取得パターンIDと代表属性値607がNULLで取得ユーザID602と一致するエントリを、データ取得推定テーブル700から取得する(ステップS1904)。そして、データ取得装置200は、事前取得処理(図23)の起動タイミング1001を設定する(ステップS1905)。
具体的には、たとえば、データ取得装置200は、ステップS1904で取得したエントリにおける次回取得タイミング配列フィールド703から、最高選択確率を含む次回取得タイミング配列703のステップ番号701を特定し、当該特定したステップ番号701のエントリに対応する取得パターン(パターン形状606および代表属性値702)をデータ取得推定テーブル700から特定する。データ取得装置200は、特定した取得パターンについて起動タイミング1001を設定する。設定した起動タイミング1001は、図10の起動タイミング管理テーブル1000でユーザID602ごとに管理される。事前取得処理(図23)の起動タイミング1001の設定の詳細については、図10のタイミングチャートで説明したので省略する。
そして、データ取得装置200は、ステップ情報を図8に示したステップ情報管理テーブル800に格納する(ステップS1906)。ここで、ステップ情報とは、取得ユーザID602、ステップ番号701(ステップS1904での取得エントリの次回取得タイミング配列703での最高選択確率のステップ番号701)、および、前ステップ番号801(ステップS1904での取得エントリのステップ番号701)である。
そして、データ取得装置200は、ログイン端末101からデータ取得要求が受信されたか否かを判断する(ステップS1907)。ログイン端末101からデータ取得要求が受信された場合(ステップS1907:Yes)、図20のステップS2001に移行する。
一方、ログイン端末101からデータ取得要求が受信されていない場合(ステップS1907:No)、データ取得装置200は、ログイン端末101のログアウトが検出された否かを判断する(ステップS1908)。ログイン端末101のログアウトが検出されていない場合(ステップS1908:No)、ステップS1907に戻る。一方、ログイン端末101のログアウトが検出された場合(ステップS1908:Yes)、データ取得装置200はデータ取得処理を終了する。
このように、取得ユーザID602のエントリがデータ取得推定テーブル700に存在するため、ログイン端末101からデータ取得要求を受信した場合に、データ取得装置200は、事前取得情報管理テーブル900のエントリを確認することができる(図20)。
また、ステップS1903において、ステップS1902での取得ユーザID602のエントリが、データ取得推定テーブル700に存在しない場合(ステップS1903:No)、データ取得装置200は、ログイン端末101からデータ取得要求が受信されたか否かを判断する(ステップS1909)。受信された場合(ステップS1909:Yes)、データ取得装置200は、データ取得・履歴蓄積処理を実行して(ステップS1910)、ステップS1911に移行する。データ取得・履歴蓄積処理(ステップS1910)の詳細は図21で後述する。受信されていない場合(ステップS1909:No)、ステップS1911に移行する。
ステップS1911において、データ取得装置200は、ログイン端末101のログアウトが検出された否かを判断する(ステップS1911)。ログアウトが検出されていない場合(ステップS1911:No)、ステップS1909に戻り、ログアウトが検出された場合(ステップS1911:Yes)、データ取得装置200はデータ取得処理を終了する。
このように、取得ユーザID602のエントリがデータ取得推定テーブル700に存在しないため、ログイン端末101からデータ取得要求を受信した場合に、当該要求に従って、データ取得装置200は、データ取得・履歴蓄積処理(ステップS1910)を実行することができる(図22)。
図20は、データ取得装置200によるデータ取得処理の詳細な処理手順例2を示すフローチャートである。図19のステップS1906のあと、データ取得装置200は、図9に示した事前取得情報管理テーブル900に、ステップS1907で受信したデータ取得要求に含まれるユーザID602および取得パターン(パターン形状606および属性値607)に該当するエントリがあるか否かを判断する(ステップS2001)。換言すれば、データ取得装置200は、ステップS1905およびS1906で起動タイミング1001を設定した取得パターンと、ステップS1907で受信したデータ取得要求に含まれる取得パターンと、が一致するか否かを判断することになる。
エントリがある場合(ステップS2001:Yes)、ステップS1905で起動タイミング1001が設定された事前取得処理が実行されたことを意味する。したがって、データ取得装置200は、該当する事前取得データ901を、事前取得情報管理テーブル900から取得して、ログイン端末101に送信する(ステップS2002)。
データ取得装置200は、データ取得履歴情報(ユーザID602、セッションID603、データ取得要求時刻604、データ処理時間605、パターン形状606、属性値607)を、データ取得履歴蓄積テーブル600に登録する(ステップS2003)。データ取得履歴情報のうち、ユーザID602は、ステップS1902で取得され、かつ、ステップS1907のデータ取得要求に含まれるユーザID602である。データ取得履歴情報のうち、セッションID603は、ステップS1902で発行されたセッションID603である。データ取得履歴情報のうち、データ取得要求時刻604は、ステップS1907のデータ取得要求の時刻である。データ取得履歴情報のうち、データ処理時間605は、データ取得要求時刻604からデータ取得、すなわち、XMLデータの出力が完了するまでの時間である。データ取得履歴情報のうち、パターン形状606および属性値607は、ステップS1907のデータ取得要求に含まれるパターン形状606および属性値607である。
データ取得装置200は、ステップS1905、S1906と同様、事前取得処理(図23)の次回起動タイミング1001を設定し(ステップS2004)、ステップ情報をステップ情報管理テーブル800に格納する(ステップS2005)。設定した起動タイミング1001は、図10の起動タイミング管理テーブル1000でユーザID602ごとに管理される。また、ステップS2005では、データ取得装置200は、取得ユーザID602のエントリにおいて、ステップ番号701を、当該ステップ番号701の取得エントリの次回取得タイミング配列703での最高選択確率のステップ番号701に更新し、前ステップ番号801を、当該更新前のステップ番号701に更新する。そして、図19のステップS1907に戻る。
一方、ステップS2001において、事前取得情報管理テーブル900にエントリがない場合(ステップS2001:No)とは、ステップS1907で受信されたデータ取得要求において、最高選択確率1203の取得パターンではない他の取得パターンが選択されたことを意味する。この場合(ステップS2001:No)、データ取得装置200は、データ取得・履歴蓄積処理を実行する(ステップS2006)。データ取得・履歴蓄積処理(ステップS2006)は、ステップS1910と同一処理である。
データ取得装置200は、ステップ情報管理テーブル800から取得ユーザID602のエントリにおける前ステップ番号801を取得する(ステップS2007)。そして、データ取得装置200は、ステップS2007で取得した前ステップ番号801に対応する次回取得タイミング配列703が、S1904で取得されたエントリに存在するか否かを判断する(ステップS2008)。
存在しない場合(ステップS2008:No)、図19のステップS1907に戻り、データ取得装置200は、データ取得要求を待ち受ける。一方、存在する場合(ステップS2008:Yes)、データ取得装置200は、ステップS2007で取得した前ステップ番号801に対応する次回取得タイミング配列703を1つ取得する(ステップS2009)。そして、データ取得装置200は、データ取得推定テーブル700において、ステップS2009で取得した次回取得タイミング配列703内の移行先ステップ番号701のエントリに、取得要求された取得パターンがあるか否かを判断する(ステップS2010)。
取得パターンがない場合(ステップS2010:No)、図19のステップS1907に戻り、データ取得装置200は、データ取得要求を待ち受ける。一方、取得パターンがある場合(ステップS2010:Yes)、当該取得パターンは、データ取得・履歴蓄積処理(ステップS2006)で登録されたエントリに対応する。したがって、データ取得装置200は、当該パターン形状606の次に取得されるデータについて事前取得すべく、ステップ情報管理テーブル800のステップ番号701を、ステップS2010の移行先ステップ番号701に更新し(ステップS2011)、更新後の移行先ステップ番号701を用いて、事前取得処理(図23)の次回起動タイミング1001を設定する(ステップS2012)。そして、ステップS1907に移行する。これにより、最高選択確率の取得パターンではない他の取得パターンについて事前取得処理の次回起動タイミング1001が設定されることになる。
換言すれば、最高選択確率の取得パターンではない他の取得パターンの取得パターン列に乗り換えられたことになる。このように、事前取得のために推定した取得パターンと実際にデータ取得要求された取得パターンとが異なる場合であっても、次回取得タイミング配列703に存在すれば、以降のデータ取得要求を推定してデータの事前取得を継続することができる。
<取得パターン列の乗換例>
図21は、取得パターン列の乗換例を示す説明図である。図21は、図7に示したユーザID:A001の次回取得タイミング配列703内のステップ番号701のツリー構造(ステップ番号701をノードとし、ステップ場号701の遷移をリンクとする)である。リンクに付随する数字は、選択確率である。
図21は、取得パターン列の乗換例を示す説明図である。図21は、図7に示したユーザID:A001の次回取得タイミング配列703内のステップ番号701のツリー構造(ステップ番号701をノードとし、ステップ場号701の遷移をリンクとする)である。リンクに付随する数字は、選択確率である。
最上位ノードであるステップ番号[U001]は、ユーザID:A001のユーザのログイン時のステップ番号701である。当該ユーザは、70%の確率でステップ[U003]の取得パターンを選択し、30%の確率でステップ[U004]の取得パターンを選択する。
データ取得装置200は、図19のステップS1904で図7の1行目のエントリをデータ取得推定テーブル700から取得し、ステップS1905で、最高選択確率(70%)であるステップ番号[U003]の取得パターンについて、事前取得処理の起動タイミング1001を設定する。また、データ取得装置200は、ステップS1906において、ステップ情報管理テーブル800に、ステップ番号701として、選択したステップ番号[U003]を格納し、前ステップ番号801として、当該選択前のステップ番号[U001]を格納する。
そして、データ取得装置200は、ステップS2001で、実際に受信したデータ取得要求内の取得パターンがステップ[U003]の取得パターンに一致するか否かを判断する。一致する場合(ステップS2001:Yes)、データ取得装置200は、ステップS1905において起動タイミング1001で事前取得したステップ[U003]の取得パターンに該当するデータをユーザID:A001のユーザの端末101に送信する(ステップS2002)。
一方、ステップS2001で不一致と判断された場合(ステップS2001:No)、当該ユーザが要求したデータは、ステップS1905において起動タイミング1001で事前取得したステップ[U003]の取得パターンに該当するデータではないことを意味する。したがって、データ取得装置200は、当該実際のデータ取得要求に該当するデータを電力NWモデルDB104から取得し、履歴を蓄積する(ステップS2006)。これにより、予測が外れた場合でも、過去のデータとして蓄積し、学習することで、以降の予測精度(選択確率1203)の向上を図ることができる。
このあと、データ取得装置200は、ステップS2007において、ステップ情報管理テーブル800から取得ユーザID602の前ステップ番号801として、[U001]を取得する。そして、データ取得装置200は、ステップS2008において、取得した前ステップ番号[U001]に対応する次回取得タイミング配列703がデータ取得推定テーブル700にあるか否かを判断する。
この場合、前回選択されなかった選択確率30%のステップ番号[U003]の次回取得タイミング配列703が存在するため(ステップS2008:Yes)、データ取得装置200は、当該次回取得タイミング配列703である{[U004][1][30]}から、ステップ番号[U004]を選択する(ステップS2009)。この選択されたステップ番号[U004]が「移行先ステップ番号701」である。
そして、データ取得装置200は、データ取得推定テーブル700において、次回取得タイミング配列703である{[U004][1][30]}内の移行先ステップ番号[U004]のエントリに、ステップS1907で実際にデータ取得要求がされた取得パターンが存在するか否かを判断する(ステップS2010)。存在する場合(ステップS2010:Yes)、ステップS2005でデータ取得要求された取得パターンと、ステップ番号[U004]の取得パターンとが一致することを意味する。したがって、データ取得装置200は、ステップ情報管理テーブル800の当該ユーザID:A001のエントリにおいて、ステップ番号701を、ステップ番号[U003]から移行先ステップ番号[U004]に更新する。
これにより、データ取得装置200は、ステップ番号[U004]の次回取得タイミング配列703での最高選択確率(65%)のステップ番号701([U011])に対応するエントリに対する取得パターンについて、事前取得処理の起動タイミング1001を設定する(ステップS2012)。これにより、データ取得装置200は、実際に受信したデータ取得要求に応じて、事前取得すべき[U001]→[U003]のルートから、[U001]→[U004]のルートに乗り換えることができる。このように、ユーザの実際のデータ取得要求に追従して事前取得処理を実行するため、事前取得すべき取得パターンの予測が外れた場合であって、当該乗換により、事前取得を継続することができる。
<データ取得・履歴蓄積処理>
図22は、図19および図20に示したデータ取得・履歴蓄積処理(ステップS1910、S2006、S2611)の詳細な処理手順例を示すフローチャートである。データ取得・履歴蓄積処理(ステップS1910、S2006、S2611)は、データ取得要求で選択された取得パターン(パターン形状606および属性値607の組み合わせ)に該当するデータを取得し、かつ、その履歴をデータ取得履歴蓄積テーブル600に蓄積する処理である。
図22は、図19および図20に示したデータ取得・履歴蓄積処理(ステップS1910、S2006、S2611)の詳細な処理手順例を示すフローチャートである。データ取得・履歴蓄積処理(ステップS1910、S2006、S2611)は、データ取得要求で選択された取得パターン(パターン形状606および属性値607の組み合わせ)に該当するデータを取得し、かつ、その履歴をデータ取得履歴蓄積テーブル600に蓄積する処理である。
データ取得装置200は、電力NWモデルDB104にデータ取得要求を送信し、当該データ取得要求時刻604を取得する(ステップS2201)。データ取得装置200は、電力NWモデルDB104から、データ取得要求の取得パターン(パターン形状606および属性値607)に該当するデータを取得し(ステップS2202)、XMLデータに変換する(ステップS2203)。データ取得装置200は、データ取得要求時刻604からステップS2203のXMLデータの出力までの時間をデータ処理時間605として算出する(ステップS2204)。
データ取得装置200は、変換したXMLデータをログイン端末101に送信する(ステップS2205)。そして、データ取得装置200は、データ取得履歴情報(ユーザID602、セッションID603、データ取得要求時刻604、データ処理時間605、パターン形状606、属性値607)をデータ取得履歴蓄積テーブル600に登録する(ステップS2206)。これにより、一連の処理が終了する。
<データ事前取得処理>
図23は、データ事前取得処理の詳細な処理手順例を示すフローチャートである。データ事前取得処理は、ステップS1905、S2004およびS2012で設定された起動タイミング1001で起動されて、処理を開始する。
図23は、データ事前取得処理の詳細な処理手順例を示すフローチャートである。データ事前取得処理は、ステップS1905、S2004およびS2012で設定された起動タイミング1001で起動されて、処理を開始する。
データ取得装置200は、起動タイミング1001になるまで待ち受ける(ステップS2301:No)。データ取得装置200は、ステップS1902の取得ユーザID602のエントリにおけるステップ番号701を、ステップ情報管理テーブル800から取得する(ステップS2302)。データ取得装置200は、取得ステップ番号701のエントリにおけるパターン形状606および代表属性値702を、データ取得推定テーブル700から取得する(ステップS2303)。
データ取得装置200は、パターン形状606および代表属性値702を充足するデータを、電力NWモデルDB104から取得する(ステップS2304)。そして、データ取得装置200は、取得したデータをXMLデータに変換して、事前取得データ901とする(ステップS2305)。データ取得装置200は、事前取得情報(ユーザID602、パターン形状606、属性値607、事前取得データ901)を事前取得情報管理テーブル900に登録する(ステップS2306)。
このあと、データ取得装置200は、事前取得データ901が処理される、すなわち、ステップS2002において事前取得情報管理テーブル900から読み出されて、ログイン端末101に送信されるのを待ち受ける(ステップS2307:No)。事前取得データ901が処理された場合(ステップS2307:Yes)、データ取得装置200は、当該エントリを事前取得情報管理テーブル900から削除する(ステップS2308)。これにより、一連の処理が終了する。なお、セッションが終了した場合、データ取得装置200は、当該ユーザID602のエントリを事前取得情報管理テーブル900から削除してもよい。
実施例1によれば、その時必要とされるデータを先読みするため、データ取得要求がされた場合に、要求元の端末101に即時応答することができる。また、特に、XMLデータへの変換といったデータ取得に時間がかかる場合に有用である。
実施例2は、データ取得履歴情報を蓄積していない新規ユーザが必要とするデータを推定して、必要なタイミングでデータを事前に取得する例である。具体的には、たとえば、データ取得装置200が、新規ユーザが業務で使用するアプリケーション102のIDごとに取得パターンを学習することで、新規ユーザがデータ取得要求を送信した時、アプリケーションIDごとの学習結果を基にして新規ユーザが必要とするデータを推定して必要なタイミングでデータを事前取得する。すなわち、新規ユーザの傾向がわからないため、データ取得装置200は、使用するアプリケーション102により傾向を推定して、事前取得する。これにより、新規ユーザに対するデータ応答の高速化を図る。なお、ここでは実施例1の処理をベースとして説明するため、差異のある箇所に着目して説明する。
<データ取得履歴蓄積テーブル600>
図24は、実施例2にかかるデータ取得履歴蓄積テーブル600の記憶内容例を示す説明図である。データ取得履歴蓄積テーブル600は、実施例1のデータ取得履歴蓄積テーブル600にアプリケーションIDフィールド2401が追加されたテーブルである。アプリケーションIDフィールド2401は、アプリケーションIDを格納する記憶領域である。アプリケーションID2401は、アプリケーション102を一意に特定する識別情報である。
図24は、実施例2にかかるデータ取得履歴蓄積テーブル600の記憶内容例を示す説明図である。データ取得履歴蓄積テーブル600は、実施例1のデータ取得履歴蓄積テーブル600にアプリケーションIDフィールド2401が追加されたテーブルである。アプリケーションIDフィールド2401は、アプリケーションIDを格納する記憶領域である。アプリケーションID2401は、アプリケーション102を一意に特定する識別情報である。
<第2データ取得推定テーブル>
図25は、第2データ取得推定テーブルの記憶内容例を示す説明図である。実施例2では、実施例1のデータ取得推定テーブル700を「第1データ取得推定テーブル700」と称す。第2データ取得推定テーブル2500は、第1データ取得推定テーブル700のユーザIDフィールド602を、アプリケーションIDフィールド2401に置き換えたテーブルである。
図25は、第2データ取得推定テーブルの記憶内容例を示す説明図である。実施例2では、実施例1のデータ取得推定テーブル700を「第1データ取得推定テーブル700」と称す。第2データ取得推定テーブル2500は、第1データ取得推定テーブル700のユーザIDフィールド602を、アプリケーションIDフィールド2401に置き換えたテーブルである。
<データ取得処理>
図26は、実施例2にかかるデータ取得装置200によるデータ取得処理の詳細な処理手順例1を示すフローチャートである。まず、データ取得装置200は、端末101のログイン検出を待ち受ける(ステップS2601:No)。ログインが検出された場合(ステップS2601:Yes)、データ取得装置200は、端末101からのユーザID602および利用しているアプリケーションID2401を取得し、セッションID603を新規発行する(ステップS2602)。
図26は、実施例2にかかるデータ取得装置200によるデータ取得処理の詳細な処理手順例1を示すフローチャートである。まず、データ取得装置200は、端末101のログイン検出を待ち受ける(ステップS2601:No)。ログインが検出された場合(ステップS2601:Yes)、データ取得装置200は、端末101からのユーザID602および利用しているアプリケーションID2401を取得し、セッションID603を新規発行する(ステップS2602)。
このあと、データ取得装置200は、ステップS2602での取得ユーザID602のエントリが、第1データ取得推定テーブル700に存在するか否かを判断する(ステップS2603)。存在しない場合(ステップS2603:No)、取得ユーザID602についてデータの事前取得ができず、ステップS2604に移行する。存在する場合(ステップS2603:Yes)、ステップS2605に移行する。
ステップS2604において、データ取得装置200は、取得アプリケーションID2401のエントリが第2データ取得推定テーブル2500に存在するか否かを判断する(ステップS2604)。
ステップS2603またはS2604において、ステップS2602での取得ユーザID602またはアプリケーションID2401のエントリが、第1データ取得推定テーブル700または第2データ取得推定テーブル2500に存在する場合(ステップS2603:Yes、S2604:Yes)、データの事前取得が可能となる。この場合、データ取得装置200は、取得パターンIDと代表属性値702がNULLで取得ID(ステップS2603:Yesの場合はユーザID602、ステップS2604:Yesの場合は、アプリケーションID2401)と一致するエントリを、データ取得推定テーブル700(ユーザID602の場合は、第1データ取得推定テーブル700、アプリケーションID2401の場合は、第2データ取得推定テーブル2500)から取得する(ステップS2605)。
そして、データ取得装置200は、事前取得処理(図23)の起動タイミング1001を設定する(ステップS2606)。設定した起動タイミング1001は、図10の起動タイミング管理テーブル1000でユーザID602ごとに管理される。事前取得処理(図23)の起動タイミング1001の設定の詳細については、図10のタイミングチャートで説明したので省略する。
そして、データ取得装置200は、ステップ情報を図8に示したステップ情報管理テーブル800に格納する(ステップS2607)。ここで、ステップ情報とは、取得ユーザID602、ステップ番号701(ステップS2605での取得エントリの次回取得タイミング配列703での最高選択確率のステップ番号701)、および、前ステップ番号801(ステップS2605での取得エントリのステップ番号701)である。
そして、データ取得装置200は、ログイン端末101からデータ取得要求が受信されたか否かを判断する(ステップS2608)。ログイン端末101からデータ取得要求が受信された場合(ステップS2608:Yes)、図20のステップS2001に移行する。
一方、ログイン端末101からデータ取得要求が受信されていない場合(ステップS2608:No)、データ取得装置200は、ログイン端末101のログアウトが検出された否かを判断する(ステップS2609)。ログイン端末101のログアウトが検出されていない場合(ステップS2609:No)、ステップS2608に戻る。一方、ログイン端末101のログアウトが検出された場合(ステップS2609:Yes)、データ取得装置200はデータ取得処理を終了する。
このように、取得ユーザID602が第1データ取得推定テーブル700に、または、取得アプリケーションID2401が第2データ取得推定テーブル2500に存在するため、ログイン端末101からデータ取得要求を受信した場合に、データ取得装置200は、事前取得情報管理テーブル900のエントリを確認することができる(図20)。
また、ステップS2604において、取得アプリケーションID2401のエントリが存在しない場合(ステップS2604:No)、データ取得装置200は、ログイン端末101からデータ取得要求が受信したか否かを判断する(ステップS2610)。受信されていない場合(ステップS2610:No)、ステップS2612に移行する。受信された場合(ステップS2610:Yes)、データ取得装置200は、データ取得・履歴蓄積処理を実行して(ステップS2611)、ステップS2612に移行する。データ取得・履歴蓄積処理(ステップS2611)は、図22に示したデータ取得・履歴蓄積処理(ステップS1910)において、データ取得履歴情報として、アプリケーションID2401も登録する点を除いて他は同一処理である。
このあと、データ取得装置200は、ログイン端末101のログアウトが検出されたか否かを判断する(ステップS2612)。ログアウトが検出されていない場合(ステップS2612:No)、ステップS2610に戻り、ログアウトが検出された場合(ステップS2612:Yes)、データ取得装置200はデータ取得処理を終了する。
このように、取得ユーザID602が第1データ取得推定テーブル700に、および、取得アプリケーションID2401が第2データ取得推定テーブル2500に存在しないため、ログイン端末101からデータ取得要求を受信した場合に、当該要求に従って、データ取得装置200は、データ取得・履歴蓄積処理(ステップS2611)を実行することができる(図22)。
このように、実施例2では、傾向がわからない新規ユーザについても、データ取得装置200は、使用するアプリケーション102により傾向を推定して、事前取得することで、新規ユーザに対するデータ応答の高速化を図ることができる。なお、実施例2では、アプリケーションID2401およびアプリケーションIDフィールド2401を用いて説明したが、アプリケーション102の機能IDおよび機能IDフィールドや、ユーザが所属する組織IDおよび組織IDフィールドに置き換えてもよい。
実施例3は、実施例1において、事前取得するデータに取得済みのデータがある場合に重複箇所を除いたデータを事前に取得する例(差分取得)である。次ステップにおいて事前取得するデータに取得済みのデータがある場合、前ステップのデータとの重複箇所を除いてデータを事前取得すれば、電力NWモデルDB104から取得したデータの変換処理を削減でき、データ応答の高速化が可能となる。なお、ここでは実施例1の処理をベースとして説明するため、差異のある箇所に着目して説明する。
図27は、実施例3にかかるデータ事前取得例を示す説明図である。たとえば、ユーザが、1回目のデータ取得要求において、直径3kmの円の取得パターンを選択してデータを取得したとする。2回目のデータ取得要求において、同一位置で、直径5kmの円の取得パターンを選択した場合、データ取得装置200は、直径5kmの円の取得パターンから、1回目の直径3kmの円の取得パターンを除いた範囲(この場合、ドーナツ形状となる)について、電力NWモデルDB104からデータ取得する。そして、データ取得装置200は、1回目の取得データ(XMLデータ)と今回(2回目)のXMLデータとをマージして、端末101に返す。また、3回目のデータ取得要求において、同一位置で、直径7kmの円の取得パターンを選択した場合、データ取得装置200は、直径7kmの円の取得パターンから、2回目の直径5kmの円の取得パターンを除いた範囲(この場合も、ドーナツ形状となる)について、電力NWモデルDB104からデータ取得する。そして、データ取得装置200は、2回目のマージ後の取得データ(XMLデータ)と今回(3回目)のXMLデータとをマージして、端末101に返す。
<データ事前取得処理>
図28は、実施例3にかかるデータ事前取得処理の詳細な処理手順例を示すフローチャートである。データ事前取得処理は、ステップS1905、S2004およびS2012で設定された起動タイミング1001で起動されて、処理を開始する。
図28は、実施例3にかかるデータ事前取得処理の詳細な処理手順例を示すフローチャートである。データ事前取得処理は、ステップS1905、S2004およびS2012で設定された起動タイミング1001で起動されて、処理を開始する。
データ取得装置200は、起動タイミング1001になるまで待ち受ける(ステップS2801:No)。データ取得装置200は、ステップS1902の取得ユーザID602のエントリにおけるステップ番号701および前ステップ番号801を、ステップ情報管理テーブル800から取得する(ステップS2802)。データ取得装置200は、取得ステップ番号701のエントリにおけるパターン形状606および代表属性値702(取得パターン)と、取得した前ステップ番号801のエントリにおけるパターン形状606および代表属性値702(前回取得パターン)とを、データ取得推定テーブル700から取得する(ステップS2803)。
データ取得装置200は、取得パターンと前回取得パターンとが重複するか否かを判断する(ステップS2804)。重複しない場合(ステップS2804:No)、データ取得装置200は、パターン形状606および代表属性値702を充足するデータを、電力NWモデルDB104から取得する(ステップS2805)。そして、データ取得装置200は、取得したデータをXMLデータに変換して、事前取得データ901とする(ステップS2806)。データ取得装置200は、事前取得情報(ユーザID602、パターン形状606、属性値607、事前取得データ901)を事前取得情報管理テーブル900に登録する(ステップS2807)。
一方、ステップS2804において、重複すると判定された場合(ステップS2804:Yes)、データ取得装置200は、取得パターンから前回取得パターンを引いた差分取得パターンを用いて差分取得する条件式を生成する(ステップS2808)。データ取得装置200は、差分条件式を充足するデータを、電力NWモデルDB104から取得する(ステップS2809)。そして、データ取得装置200は、取得したデータをXMLデータに変換して、前回取得したXMLデータとマージして事前取得データ901とする(ステップS2810)。データ取得装置200は、事前取得情報(ユーザID602、パターン形状606、属性値607、事前取得データ901)を事前取得情報管理テーブル900に登録する(ステップS2811)。
これにより、一連の処理が終了する。なお、セッションが終了した場合、データ取得装置200は、当該ユーザID602のエントリを事前取得情報管理テーブル900から削除してもよい。
実施例3によれば、重複部分のデータ変換が不要となり、要求元の端末101に即時応答することができる。
実施例4は、複数のユーザのデータ処理時間605が重複した場合の起動タイミング1001の調整例である。複数のデータ処理時間605が重複した場合、データ取得装置200は、そのデータ処理時間605の重複数が、調整前の重複数未満となるように、複数の起動タイミング1001(データ処理時間605の開始時刻)を調整する。これにより、調整前に比べて、事前取得処理の負荷を低減することができる。
図29は、実施例4にかかる起動タイミング1001の調整例を示す説明図である。(A)は、調整前の状態、(B)は調整後の状態を示す。図28の例では、多重度(1以上の整数)を2とする。多重度とは、重複を許容する平均データ処理時間の最大個数であり、ユーザの重複数−1以下、換言すれば、平均データ処理時間の重複数−1以下となる。ここで、dpa〜dpdは、4人のユーザの各々の平均データ処理時間(図10のタイムチャートを参照)であり、ta〜tdは、その起動タイミング1001である。なお、起動タイミング1001であるta,tbは同一時刻(たとえば、10時21分)である(異なる時刻でもよい)。(A)では、期間oltにおいて、平均データ処理時間dpa〜dpdが重複する。
多重度が2であるため、データ取得装置200は、平均データ処理時間の重複数が2以下となるように、各平均データ処理時間を調整する。(B)に示したように、データ取得装置200は、平均データ処理時間dpa,dpbを固定したままとし、平均データ処理時間dpc,dpdを平均データ処理時間dpa,dpbと重複しないようにシフトする。
また、このシフト量は、シフト前の起動タイミング1001との差が小さくなるように調整してもよい。具体的には、たとえば、シフト対象となる平均データ処理時間の終了時刻の次の時刻が、シフト対象外の平均データ処理時間の起動タイミング1001となるようにしてもよく、また、シフト対象外となる平均データ処理時間の終了時刻の次の時刻が、シフト対象の平均データ処理時間の起動タイミング1001となるようにしてもよい。これにより、データ取得装置200の処理負荷を低減しつつ、起動タイミング1001のずれを最小限に抑制することができる。
なお、多重度は2であるため、この場合、当該4人のユーザ以外の他のユーザの平均データ処理時間と重複しなければ、データ取得装置200は、多重度が1(すなわち重複しない)となるように調整してもよい。このように、データ取得装置200が起動タイミング1001のずれよりもデータ取得装置200の処理負荷を重要視するように設定されている場合は、多重度がより低くなるように調整してもよい。
なお、実施例4では、平均データ処理時間の重複を検出することにより、起動タイミング1001を調整する例について説明したが、起動タイミング1001の重複を検出することにより、起動タイミング1001を調整することとしてもよい。この場合、平均データ処理時間の算出が、重複した起動タイミング1001に限定されるため、調整処理の簡素化を図ることができる。
<調整処理手順例>
図30は、起動タイミング1001の調整処理手順例を示すフローチャートである。当該フローチャートは、たとえば、最新の起動タイミング1001が設定されたタイミングで実行される。まず、データ取得装置200は、設定済みで、かつ、また到来していない複数の起動タイミング1001に対応するユーザID602の各々について、データ取得推定テーブル700からパターン形状606を取得する(ステップS3001)。
図30は、起動タイミング1001の調整処理手順例を示すフローチャートである。当該フローチャートは、たとえば、最新の起動タイミング1001が設定されたタイミングで実行される。まず、データ取得装置200は、設定済みで、かつ、また到来していない複数の起動タイミング1001に対応するユーザID602の各々について、データ取得推定テーブル700からパターン形状606を取得する(ステップS3001)。
つぎに、データ取得装置200は、データ取得履歴蓄積テーブル600を参照して、ステップS3001で取得したパターン形状606におけるデータ処理時間605を取得し、当該ユーザについて、取得したパターン形状606における平均データ処理時間を、ユーザID602ごとに算出する(ステップS3002)。
そして、データ取得装置200は、各ユーザID602の起動タイミング1001からの平均データ処理時間が重複するか否かを判断する(ステップS3003)。ここでは、平均データ処理時間の重複数が多重度以下であれば、データ取得装置200は、重複しないと判断し(ステップS3003:No)、多重度を超えていれば、データ取得装置200は、重複すると判断する(ステップS3003:Yes)。
重複しない場合(ステップS3003:No)、データ取得装置200は、起動タイミング1001の調整処理を終了する。一方、重複する場合(ステップS3003:Yes)、データ取得装置200は、多重度に基づいて、各起動タイミング1001を調整し、調整した起動タイミング1001について起動タイミング管理テーブル1000を更新する(ステップS3004)。これにより、データ取得装置200は、起動タイミング1001の調整処理を終了する。
このように、上述したデータ取得装置200によれば、ユーザが要求するであろうデータ取得要求を推定して、当該データ取得要求に該当するデータを事前に取得することにより、データ取得要求があった場合に即座にデータをユーザに提供することができる。したがって、要求に応じて取得するデータの応答遅延の抑制を図ることができる。
また、ユーザが要求するであろうデータ取得要求が複数種類存在する場合、過去のデータ取得要求の学習結果から、ユーザが選択するであろうデータ取得要求ごとの選択確率1203を求めておくことで、データ事前取得の推定精度の向上を図ることができる。
また、選択確率1203に応じて選択されたデータ取得要求とは異なるデータ取得要求が実際に受信された場合も、データ取得装置200は、取得パターン列の乗換をすることで、データの事前取得を継続的に実行することができる。また、当該異なるデータ取得要求を学習することにより、これ以降、データ事前取得の推定精度の向上を図ることができる。
また、要求元は、ユーザ(作業者)を特定する端末であるため、ユーザに固有な取得パターンを学習することができる。また、要求元は、複数のユーザが利用するアプリケーション102でもよい。これにより、アプリケーション102に固有な取得パターンを学習することができる。また、これにより、新規ユーザであっても、利用するアプリケーション102が特定されることで、データを事前取得することが可能となる。
また、一連のデータ取得要求の取得パターンが重複する場合、重複箇所を除いて事前取得することにより、事前取得処理の高速化を図ることができる。
複数のユーザのデータ処理時間の時間帯が重複する場合、多重度に応じてユーザ数未満となるように重複数を調整することにより、データ取得装置200の負荷低減を図ることができる。
また、上述した実施例1〜4では、電力設備をノードとした電力NWモデルの例に挙げて説明したが、他のデータにも適用することができる。たとえば、小売り企業の売り上げ分析を目的に店舗別のデータを取得したい場合、ノードを店舗とし、属性を月当りの売上、月当たりの客数、最も売上額の多い顧客の年齢層、店舗位置にすればよい。これにより、たとえば、分類されたデータに対して、60歳代の顧客が最も多く、売上が1,000万円以上で、客数が1,000人以下の店舗のデータを取得して分析するといった利用方法が可能になる。また、続けて、50歳代、40歳代というように属性を変えて分析を進める場合、取得パターンのステップが推定可能である。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
Claims (12)
- データ群を記憶するデータベースにアクセス可能であり、前記データベースに対する要求元からのデータ取得要求に応じたデータを前記データベースから取得して前記要求元に返すデータ取得装置であって、
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、
前記プロセッサは、
前記要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、前記データ取得要求の種類と、前記データ取得要求の時系列順を規定する取得タイミングと、を学習する学習処理と、
前記一連のデータ取得要求以降の第1データ取得要求に先立って、前記学習処理による学習結果に基づいて、前記要求元から取得され得るデータ取得要求である第1の次回推定データ取得要求の種類および取得タイミングを特定する特定処理と、
前記特定処理によって種類が特定された第1の次回推定データ取得要求に該当するデータを、前記データベースから取得する事前取得処理と、
前記第1データ取得要求が受信された場合、前記第1データ取得要求に含まれる種類と、前記特定処理によって特定された前記第1の次回推定データ取得要求の種類と、が一致するか否かを判断する判断処理と、
前記判断処理によって一致すると判断された場合、前記事前取得処理による事前取得結果を、前記特定処理によって特定された前記第1の次回推定データ取得要求の取得タイミングで前記要求元に送信する送信処理と、
を実行することを特徴とするデータ取得装置。 - 請求項1に記載のデータ取得装置であって、
前記学習処理では、前記プロセッサは、前記要求元からの過去の一連のデータ取得要求について、前記要求元から前記一連のデータ取得要求の各々のデータ取得要求がその時系列順で前記要求元から選択される確率を算出し、
前記特定処理では、前記プロセッサは、前記第1の次回推定データ取得要求の種類を前記学習処理によって算出された確率に基づいて特定する、
ことを特徴とするデータ取得装置。 - 請求項2に記載のデータ取得装置であって、
前記特定処理では、前記プロセッサは、前記第1の次回推定データ取得要求が複数存在する場合、最も確率が高い確率を有する第1の次回推定データ取得要求の種類および取得タイミングを特定することを特徴とするデータ取得装置。 - 請求項3に記載のデータ取得装置であって、
前記特定処理では、前記プロセッサは、前記判断処理によって不一致と判断された場合、選択されなかった第1の次回推定データ取得要求の種類および取得タイミングを特定し、
前記判断処理では、前記プロセッサは、前記第1データ取得要求に含まれる種類と、前記選択されなかった第1の次回推定データ取得要求の種類と、が一致するか否かを判断し、
前記特定処理では、前記プロセッサは、前記第1データ取得要求に含まれる種類と、前記選択されなかった第1の次回推定データ取得要求の種類と、が一致すると判断された場合、前記学習結果に基づいて、前記第1データ取得要求の次に前記要求元から取得され得るデータ取得要求である第2の次回推定データ取得要求の種類および取得タイミングを特定することを特徴とするデータ取得装置。 - 請求項1に記載のデータ取得装置であって、
前記学習処理では、前記プロセッサは、前記要求元からの過去の一連のデータ取得要求の各々について、1つ前のデータ取得要求からの経過時間に基づいて、前記取得タイミングを学習する、
ことを特徴とするデータ取得装置。 - 請求項1に記載のデータ取得装置であって、
前記プロセッサは、
前記第1の次回推定データ取得要求の取得タイミングが、前記第1の次回推定データ取得要求に該当するデータの所定の形式への変換に要するデータ変換時間の経過時以降となるように、前記事前取得処理の起動タイミングを設定する設定処理を実行し、
前記事前取得処理では、前記プロセッサは、前記設定処理によって設定された起動タイミングで、前記第1の次回推定データ取得要求に該当するデータを前記データベースから取得する、
ことを特徴とするデータ取得装置。 - 請求項1に記載のデータ取得装置であって、
前記要求元は、利用者の識別情報によって特定されることを特徴とするデータ取得装置。 - 請求項1に記載のデータ取得装置であって、
前記要求元は、前記要求元で前記データ取得要求を発行するアプリケーションの識別情報によって特定されることを特徴とするデータ取得装置。 - 請求項1に記載のデータ取得装置であって、
前記事前取得処理では、前記プロセッサは、前記第1データ取得要求の次の第2データ取得要求に先立って前記要求元から取得され得るデータ取得要求である第2の次回推定データ取得要求に該当するデータが、前記第1データ取得要求に該当するデータと重複する場合、前記第2の次回推定データ取得要求に該当するデータのうち前記第1データ取得要求に該当するデータと重複しないデータを前記データベースから取得して、前記第1データ取得要求に該当するデータと重複するデータとマージする、
ことを特徴とするデータ取得装置。 - 請求項6に記載のデータ取得装置であって、
前記設定処理では、前記プロセッサは、複数の前記要求元の各々からの前記第1の次回推定データ取得要求に該当するデータを前記データベースから取得する前記事前取得処理の時間帯が重複する場合、重複する時間帯の数が前記要求元の数よりも少なくなるように、前記複数の要求元の前記事前取得処理の前記起動タイミングを調整する、
ことを特徴とするデータ取得装置。 - データ群を記憶するデータベースにアクセス可能であり、前記データベースに対する要求元からのデータ取得要求に応じたデータを前記データベースから取得して前記要求元に返すデータ取得装置によるデータ取得方法であって、
前記データ取得装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、
前記プロセッサは、
前記要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、前記データ取得要求の種類と、前記データ取得要求の時系列順を規定する取得タイミングと、を学習する学習処理と、
前記一連のデータ取得要求以降の第1データ取得要求に先立って、前記学習処理による学習結果に基づいて、前記要求元から取得され得るデータ取得要求である第1の次回推定データ取得要求の種類および取得タイミングを特定する特定処理と、
前記特定処理によって種類が特定された第1の次回推定データ取得要求に該当するデータを、前記データベースから取得する事前取得処理と、
前記第1データ取得要求が受信された場合、前記第1データ取得要求に含まれる種類と、前記特定処理によって特定された前記第1の次回推定データ取得要求の種類と、が一致するか否かを判断する判断処理と、
前記判断処理によって一致すると判断された場合、前記事前取得処理による事前取得結果を、前記特定処理によって特定された前記第1の次回推定データ取得要求の取得タイミングで前記要求元に送信する送信処理と、
を実行することを特徴とするデータ取得方法。 - データ群を記憶するデータベースにアクセス可能であり、前記データベースに対する要求元からのデータ取得要求に応じたデータを前記データベースから取得して前記要求元に返すデータ取得装置で実行されるデータ取得プログラムであって、
前記データ取得プログラムを実行するプロセッサに、
前記要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、前記データ取得要求の種類と、前記データ取得要求の時系列順を規定する取得タイミングと、を学習する学習処理と、
前記一連のデータ取得要求以降の第1データ取得要求に先立って、前記学習処理による学習結果に基づいて、前記要求元から取得され得るデータ取得要求である第1の次回推定データ取得要求の種類および取得タイミングを特定する特定処理と、
前記特定処理によって種類が特定された第1の次回推定データ取得要求に該当するデータを、前記データベースから取得する事前取得処理と、
前記第1データ取得要求が受信された場合、前記第1データ取得要求に含まれる種類と、前記特定処理によって特定された前記第1の次回推定データ取得要求の種類と、が一致するか否かを判断する判断処理と、
前記判断処理によって一致すると判断された場合、前記事前取得処理による事前取得結果を、前記特定処理によって特定された前記第1の次回推定データ取得要求の取得タイミングで前記要求元に送信する送信処理と、
を実行させることを特徴とするデータ取得プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPPCT/JP2017/005900 | 2017-02-17 | ||
PCT/JP2017/005900 WO2018150539A1 (ja) | 2017-02-17 | 2017-02-17 | データ取得装置、データ取得方法、およびデータ取得プログラム |
PCT/JP2017/038685 WO2018150639A1 (ja) | 2017-02-17 | 2017-10-26 | データ取得装置、データ取得方法、およびデータ取得プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018150639A1 true JPWO2018150639A1 (ja) | 2019-02-21 |
JP6591080B2 JP6591080B2 (ja) | 2019-10-16 |
Family
ID=63169237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018537684A Active JP6591080B2 (ja) | 2017-02-17 | 2017-10-26 | データ取得装置、データ取得方法、およびデータ取得プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6591080B2 (ja) |
WO (2) | WO2018150539A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109688121B (zh) * | 2018-12-17 | 2022-11-04 | 中国平安财产保险股份有限公司 | 资源数据获取方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1173425A (ja) * | 1997-08-29 | 1999-03-16 | Oki Electric Ind Co Ltd | 電子ファイルシステム |
JPH11120069A (ja) * | 1997-10-17 | 1999-04-30 | Hitachi Ltd | データ先読み方法 |
JP2001256099A (ja) * | 2000-03-09 | 2001-09-21 | Seiko Epson Corp | アクセス制御装置 |
JP2003150419A (ja) * | 2001-11-14 | 2003-05-23 | Hitachi Ltd | データベース管理システムの実行情報を取得する手段を有する記憶装置 |
JP2006260067A (ja) * | 2005-03-16 | 2006-09-28 | Internatl Business Mach Corp <Ibm> | 先読み装置、先読み方法、および先読みプログラム |
WO2013175625A1 (ja) * | 2012-05-25 | 2013-11-28 | 株式会社日立製作所 | データベースの管理方法、データベース管理装置及び記憶媒体 |
-
2017
- 2017-02-17 WO PCT/JP2017/005900 patent/WO2018150539A1/ja active Application Filing
- 2017-10-26 JP JP2018537684A patent/JP6591080B2/ja active Active
- 2017-10-26 WO PCT/JP2017/038685 patent/WO2018150639A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1173425A (ja) * | 1997-08-29 | 1999-03-16 | Oki Electric Ind Co Ltd | 電子ファイルシステム |
JPH11120069A (ja) * | 1997-10-17 | 1999-04-30 | Hitachi Ltd | データ先読み方法 |
JP2001256099A (ja) * | 2000-03-09 | 2001-09-21 | Seiko Epson Corp | アクセス制御装置 |
JP2003150419A (ja) * | 2001-11-14 | 2003-05-23 | Hitachi Ltd | データベース管理システムの実行情報を取得する手段を有する記憶装置 |
JP2006260067A (ja) * | 2005-03-16 | 2006-09-28 | Internatl Business Mach Corp <Ibm> | 先読み装置、先読み方法、および先読みプログラム |
WO2013175625A1 (ja) * | 2012-05-25 | 2013-11-28 | 株式会社日立製作所 | データベースの管理方法、データベース管理装置及び記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
WO2018150539A1 (ja) | 2018-08-23 |
JP6591080B2 (ja) | 2019-10-16 |
WO2018150639A1 (ja) | 2018-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2752779B1 (en) | System and method for distributed database query engines | |
JP6162781B2 (ja) | 新しい興味のある地点の位置を決定する方法及び装置 | |
CN105243169B (zh) | 一种数据查询方法及系统 | |
US8504556B1 (en) | System and method for diminishing workload imbalance across multiple database systems | |
CN104871154A (zh) | 系统级查询优化 | |
CN106874424A (zh) | 一种基于MongoDB和Redis的网页数据采集处理方法及系统 | |
WO2013183115A1 (ja) | ログ管理システム及びプログラム | |
CN105431844A (zh) | 用于搜索系统的第三方搜索应用 | |
US20190213275A1 (en) | Scalable synchronization with cache and index management | |
US10375157B2 (en) | System and method for reducing data streaming and/or visualization network resource usage | |
CN110637292B (zh) | 用于查询资源高速缓存的系统和方法 | |
US8903872B1 (en) | NoSql online analytical processing architecture | |
US20170132286A1 (en) | Query hint management for a database management system | |
CN112822298A (zh) | 业务服务扩缩容方法、装置、介质和电子设备 | |
JP6591080B2 (ja) | データ取得装置、データ取得方法、およびデータ取得プログラム | |
CN110336863A (zh) | 一种数据上报方法和系统 | |
US10528566B2 (en) | Time series data query engine | |
CN108268512A (zh) | 一种标签查询方法及装置 | |
JP2014146123A (ja) | サーバシステム、及びデータ処理方法 | |
US20230156085A1 (en) | Information processing system, information processing method and non-transitory storage medium storing information processing program thereon | |
CN113656370A (zh) | 电力量测系统数据处理方法、装置和计算机设备 | |
JP2018032245A (ja) | 計算機システム及びリソース制御方法 | |
JP2015149024A (ja) | 検索システムおよびその制御方法、並びにプログラム | |
US20180173705A1 (en) | System and method for facilitating queries via request-prediction-based temporary storage of query results | |
JP6193491B2 (ja) | 計算機システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180718 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190917 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6591080 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |