JP6293083B2 - データ処理プログラム、データ処理方法および情報処理装置 - Google Patents

データ処理プログラム、データ処理方法および情報処理装置 Download PDF

Info

Publication number
JP6293083B2
JP6293083B2 JP2015058757A JP2015058757A JP6293083B2 JP 6293083 B2 JP6293083 B2 JP 6293083B2 JP 2015058757 A JP2015058757 A JP 2015058757A JP 2015058757 A JP2015058757 A JP 2015058757A JP 6293083 B2 JP6293083 B2 JP 6293083B2
Authority
JP
Japan
Prior art keywords
information
data
node
path
format
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.)
Active
Application number
JP2015058757A
Other languages
English (en)
Other versions
JP2016177691A (ja
Inventor
裕子 道木
裕子 道木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Frontech Ltd
Original Assignee
Fujitsu Frontech Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Frontech Ltd filed Critical Fujitsu Frontech Ltd
Priority to JP2015058757A priority Critical patent/JP6293083B2/ja
Publication of JP2016177691A publication Critical patent/JP2016177691A/ja
Application granted granted Critical
Publication of JP6293083B2 publication Critical patent/JP6293083B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ処理プログラム、データ処理方法および情報処理装置に関する。
従来から、データ交換などで用いられる言語としてXML(eXtensible Markup Language)が知られている。
XMLは、データ交換に用いるデータ形式や、ツリー構造として表現できるデータを保存するための一般的な枠組みなどで利用されている。ツリー構造は、相互に階層的な関係を有するノードによって構成されるものである。
また、近年、XMLで作成された文書の特定の要素を指し示す記述方法を定めたXPath(XML Path Language;XMLパス言語)が知られている。XPathは、XMLで記述されたツリー構造を辿り文書中の要素や属性等にアクセスする手段である。
このような、XPathを用いて、XMLで記述された文書を検索する技術が知られている。
特開2013−175053号公報
XMLは、PCサーバとメインフレームとの間でデータ交換する際にも用いられる。XMLで記述されたツリー構造のデータを、メインフレームで用いるためには、ツリー構造のデータをメインフレームで用いられるデータ構造のデータ(フラット形式データ)にデータ変換することを要する。
データ変換において、ツリー構造のノードの値(以下、ノード値と表記)を取得しフラット形式データに設定することや、フラット形式データの値を取得しツリー構造のノードに設定することを要する。このため、データ変換においては、ツリー構造のノードにアクセスする頻度が高くなる。
ノードへアクセスするためには、ツリー構造における最上位のノードからアクセス対象のノードに至る経路(パス)を指定する。ツリー構造の階層が深くなるほどノード数が増加し、これに伴いパスの記述が長くなり、ノードのアクセスに時間を要し、データ変換の負荷を高める原因の1つとなっている。
一側面では、本発明は、データ変換の効率を向上できるデータ処理プログラム、データ処理方法および情報処理装置を提供することを目的とする。
上記目的を達成するために、以下に示すようなデータ処理プログラムを提供する。
情報処理装置に処理を実行させるデータ処理プログラムは、ツリー構造を有する形式でデータを記述する第1の情報を受信し、第1の情報のツリー構造上におけるデータを含むノードへの経路と、ツリー構造を有さない形式でデータを記述する第4の情報におけるノードに対応するデータとを対応付ける第2の情報を、記憶部から読出し、第2の情報に基づいて、ツリー構造を構成する最上位のノードから分岐ノードへの経路である第3の情報を生成し、第2の情報と第3の情報に基づいて、第1の情報から第4の情報の形式に応じた所定の位置に設定する値を取得して配置し、第4の情報を生成する。
情報処理装置に処理を実行させるデータ処理プログラムは、ツリー構造を有さない形式でデータを記述する第4の情報を受信し、ツリー構造を有する形式でデータを記述する第1の情報のツリー構造上におけるデータを含むノードへの経路と、第4の情報におけるノードに対応するデータとを対応付ける第2の情報を、記憶部から読出し、第2の情報に基づいて、ツリー構造を構成する最上位のノードから分岐ノードへの経路である第3の情報を生成し、第2の情報と第3の情報に基づいて、第4の情報から第1の情報の形式に応じた所定の位置に設定する値を取得して配置し、第1の情報を生成する。
一態様によれば、データ処理プログラム、データ処理方法および情報処理装置において、データ変換の効率を向上できる。
第1の実施形態の情報処理装置におけるデータ処理の一例を示す図である。 第2の実施形態のデータ処理システムの構成の一例を示す図である。 第2の実施形態の情報処理装置のハードウェア構成の一例を示す図である。 第2の実施形態のデータ交換のイメージの一例を示す図である。 第2の実施形態のデータ変換1のイメージの一例を示す図である。 第2の実施形態のデータ変換2のイメージの一例を示す図である。 第2の実施形態の構造化文書のイメージの一例を示す図である。 第2の実施形態のツリー形式データとフラット形式データのイメージの一例を示す図である。 第2の実施形態のマッピング情報のイメージの一例を示す図である。 第2の実施形態のツリー形式オブジェクトモデルの一例を示す図である。 第2の実施形態のフラット形式オブジェクトモデルの一例を示す図である。 第2の実施形態のパスリストとオブジェクトテーブルの一例を示す図である。 第2の実施形態のデータ変換処理1のフローチャートの一例である。 第2の実施形態のパス解析処理1のフローチャートの一例である。 第2の実施形態のデータ変換処理2のフローチャートの一例である。 第2の実施形態のパス解析処理2のフローチャートの一例である。
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態の情報処理装置におけるデータ処理について図1を用いて説明する。図1は、第1の実施形態の情報処理装置におけるデータ処理の一例を示す図である。
情報処理装置1は、第1の情報6または第4の情報7を受信し、受信したデータのデータ構造を変換するプログラムが実行される情報処理装置である。
情報処理装置1は、制御部2と記憶部3を有する。制御部2は、情報処理装置1を制御するプロセッサなどである。記憶部3は、情報を記憶するメモリやディスクなどである。記憶部3は、予め第2の情報4が記憶されている。また、記憶部3は、第3の情報5を記憶する。
第1の情報6は、ツリー構造を有するデータであり、たとえば、XMLデータなどである。図1では、第1の情報6をメモリ展開したツリー構造のイメージを図示している。
第1の情報6は、最上位のノード「Root」と、分岐ノード「A」を含む。また分岐ノード「A」は、2つの子ノード「B」と「C」を保持する。第2の情報4において、ツリー構造を構成する各ノードに至る経路は、記号「/」でノード名を繋げたパスで示す。たとえば、ノード「B」に至る経路は、「/Root/A/B」というパスで示す。パスは、ノードが保持する情報(ノード名、ノードの値、子ノードの数等)を取得するために、情報処理装置1がノードを指定する際に用いられる。
第4の情報7は、非ツリー構造を有するデータである。第4の情報7は、たとえば、メインフレームやデータベースなどで用いられるフラットな構造を有するデータであり、1以上のレコード(項目)を含む。図1では、第4の情報7をメモリ展開したフラット構造のイメージを図示している。第4の情報7は、値を保持する項目として項目「01」と「02」を有する。
第2の情報4は、データ構造が異なるデータ間においてデータ構造の変換をおこなうためのルールを定めた情報である。たとえば、第1の情報6に含まれるノードと第4の情報7に含まれる項目との対応関係を定めた情報である。
第3の情報5は、第2の情報4に含まれるパスを抽出した情報である。言い換えると、第3の情報5は、メモリ展開された第1の情報6にアクセスしやすくなるよう、第2の情報4に含まれる第1の情報6のパスを所定の条件で抽出し、抽出したパスを登録した情報である。
ここで、情報処理装置1が、受信した第1の情報6を第4の情報7にデータ形式を変換する処理について説明する。
まず、情報処理装置1は、第1の情報6を受信する。情報処理装置1は、受信した第1の情報6と対応する第2の情報4を読出す。情報処理装置1は、第2の情報4aに含まれるパスと、前方一致するパスが第3の情報5に含まれているか否か検索する。第3の情報5の初期状態において、登録されているパスは存在せず、検索した結果、一致するパスは存在しない。
情報処理装置1は、一致するパスが存在しない場合、第2の情報4aに含まれる第1の情報6のパスを解析する。
情報処理装置1は、パスを解析した結果、パスに分岐ノードが含まれる場合は、パスの最上位のノードから分岐ノードに至るパスを生成し、第3の情報5として記憶部3に記憶する。分岐ノードとは、複数の子ノードを保持するノードであり、言い換えると、ツリー構造における枝分かれする分岐点となるノードである。
第2の情報4aに分岐ノード「A」に至るパスが含まれているため、情報処理装置1は、最上位のノードから分岐ノード「A」に至るパス「/Root/A」を生成し、第3の情報5aとして設定する。
情報処理装置1は、第3の情報5aと第2の情報4aに基づき第1の情報6のノードを辿り、データ変換元のノード「B」の値を取得し、データ変換先の項目「01」へ値を設定する。
次に、情報処理装置1は、第2の情報4bに含まれるパスと、前方一致するパスが第3の情報5に含まれているか否か検索する。
情報処理装置1は、第2の情報4bに含まれるパスと第3の情報5aは「/Root/A」のパスが前方一致する。
情報処理装置1は、前方一致した第3の情報5aのパス「/Root/A」と第2の情報4bに基づき、第3の情報5aの末端のノード「A」から順に第1の情報6のノードを辿り、データ変換元のノード「C」の値を取得し、データ変換先の項目「02」へ値を設定する。
このようにして、情報処理装置1は、第2の情報4と第3の情報5に基づいて、第1の情報6から第4の情報7の形式に応じた所定の位置に設定する値を取得して配置し、第4の情報7を生成する、
次に、情報処理装置1が、受信した第4の情報7を第1の情報6にデータ形式を変換する処理について説明する。
まず、情報処理装置1は、第4の情報7を受信する。情報処理装置1は、受信した第4の情報7と対応する第2の情報4を読出す。
情報処理装置1は、第2の情報4aに含まれるパスと、前方一致するパスが第3の情報5に含まれているか否か検索する。第3の情報5の初期状態において、登録されているパスは存在せず、検索した結果、一致するパスは存在しないと判定する。
情報処理装置1は、一致するパスが存在しない場合、第2の情報4aに含まれる第1の情報6のパスを解析する。
情報処理装置1は、パスを解析した結果、パスに分岐ノードが含まれる場合は、パスの最上位のノードから分岐ノードに至るパスを生成し、第3の情報5として記憶部3に記憶する。
第2の情報4aに分岐ノード「A」に至るパスが含まれているため、情報処理装置1は、最上位のノードから分岐ノード「A」に至るパス「/Root/A」を生成し、第3の情報5aとして設定する。
情報処理装置1は、前方一致したパス(第3の情報5a)と第2の情報4aに基づき、最上位のノードではなく、第3の情報5aの末端のノード「A」から順にノードを辿り、データ変換元の項目「01」の値を取得し、データ変換先のノード「B」へ値を設定する。
情報処理装置1は、第2の情報4bに含まれるパスと、前方一致するパスが第3の情報5に含まれているか否か検索する。
情報処理装置1は、検索した結果、第2の情報4bに含まれるパスと第3の情報5aは「/Root/A」のパスが前方一致すると判定する。
情報処理装置1は、前方一致したパス(第3の情報5a)と第2の情報4bに基づき、最上位のノードではなく、第3の情報5aの末端のノード「A」から順にノードを辿り、データ変換元の項目「02」の値を取得し、データ変換先のノード「C」へ値を設定する。
このようにして、情報処理装置1は、第2の情報4と第3の情報5に基づいて、第4の情報7から第1の情報6の形式に応じた所定の位置に設定する値を取得して配置し、第1の情報6を生成する。
こうして、情報処理装置1は、ノードへのアクセスに用いられる頻度の高い分岐ノードへ至るパスを第3の情報5として生成し、第3の情報5を用いて第3の情報5に含まれる末端のノードへアクセスする。情報処理装置1は、第3の情報5に含まれる末端のノードを起点としてノードにアクセスできるため、最上位のノードから子ノードへと順にアクセスした場合に比較し、ノードへのアクセス効率を高めることができる。
なお、情報処理装置1は、ツリー構造における分岐ノードの階層の深さに応じて、第3の情報5を生成してもよい。たとえば、情報処理装置1は、第2の情報4に含まれるパスのうち、4階層以上の深さの分岐ノードに至るパスを第3の情報5として生成してもよい。
また、情報処理装置1は、分岐ノードが保持する子ノードの数に応じて、第3の情報5を生成してもよい。たとえば、情報処理装置1は、第2の情報4に含まれるパスのうち、3以上の子ノードを保持する分岐ノードに至るパスを第3の情報5として生成してもよい。
第1の情報6と第4の情報7のデータ構造の変換において、情報処理装置1は、第1の情報6のツリー構造を構成するノードの値を取得し、第4の情報7に設定することを要する。また、情報処理装置1は、第4の情報7の値を取得し、第1の情報6のツリー構造を構成するノードの値として設定することを要する。
このため、データ構造の変換において、情報処理装置1は、ツリー構造のパスを解析しノードにアクセスする頻度が高くなる。
情報処理装置1は、ノードへアクセスするためには、ツリー構造における最上位のノードからアクセス対象のノードに至る経路(パス)を辿ることを要する。ツリー構造の階層が深くなるほどノード数が増加し、これに伴いパスが長くなり、情報処理装置1は、ノードのアクセスに時間を要しデータ構造の変換の負荷を高める原因の1つとなっている。
情報処理装置1は、ノードへアクセスする利用頻度の高いパスや階層の深いパスなどを保持し、ノードへのアクセスの際に用いることで、ツリー構造のデータのノードにアクセスしやすくなり、データ構造の変換の効率を向上できる。
[第2の実施形態]
次に、第2の実施形態のデータ処理システムの構成について図2を用いて説明する。図2は、第2の実施形態のデータ処理システムの構成の一例を示す図である。
データ処理システム11は、ネットワーク12aを介して接続した複数の企業システム15a,15bを備える。
企業システム15aは、1以上の情報処理装置13aを備える。企業システム15bは、ネットワーク12bを介して接続した情報処理装置13bと、情報処理装置13cと、記憶装置14とを備える。
情報処理装置13は、コンピュータであり、たとえば、WebサーバやPCサーバやメインフレームやDBMS(DataBase Management System)が稼働する計算機などを含む。また、記憶装置14は、データを記憶する装置であり、たとえば、DB(DataBase)やRAID(Redundant Arrays of Independent Disks)装置などのストレージ装置を含む。
企業システム15aと企業システム15bは、ネットワーク12aを介してデータを交換する。たとえば、企業システム15aにおける情報処理装置13aが送信したデータは、企業システム15bにおける情報処理装置13bによって受信される。
企業システム15bにおいて、情報処理装置13bが受信したデータは、ネットワーク12bを介して情報処理装置13cに送信される場合もあれば、記憶装置14に記憶される場合もある。
企業システム15bにおけるデータ交換のイメージに関して、図4を用いて後で説明する。
次に、第2の実施形態の情報処理装置のハードウェア構成について図3を用いて説明する。図3は、第2の実施形態の情報処理装置のハードウェア構成の一例を示す図である。
情報処理装置13は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス107を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、情報処理装置13の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス107に接続されている周辺機器としては、HDD(Hard Disk Drive)103、入出力信号インタフェース104、記憶媒体インタフェース105および通信インタフェース106がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読出しをおこなう。HDD103は、情報処理装置13の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
入出力信号インタフェース104には、入出力デバイス108が接続されている。入出力デバイス108は、入力デバイスと出力デバイスを含む。入力デバイスの一例として、キーボードや、マウスや、タッチパネルなどがある。また、出力デバイスの一例には、モニタや、液晶表示や、各種パネル表示装置などがある。
入出力信号インタフェース104は、キーボードやマウスから送られてくる信号をプロセッサ101に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
入出力デバイス108の出力デバイスは、プロセッサ101からの命令にしたがって、画像をモニタ画面に表示させる。モニタとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
記憶媒体インタフェース105は、磁気やレーザなどを利用して記憶媒体109に記録されたデータの読取りや書き込みをおこなう。また、記憶媒体インタフェース105は、半導体メモリなどの記憶媒体に記録されたデータの読取りをおこなうものであってもよい。記憶媒体109とは、たとえば、光ディスクや、フラッシュメモリなどの半導体メモリなどを含む。光ディスクは、光の反射によって読取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
記憶媒体インタフェース105は、情報処理装置13に周辺機器を接続するための通信インタフェースとしても用いることができる。たとえば、記憶媒体インタフェース105には、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、記憶媒体インタフェース105との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読出しをおこなう装置である。メモリカードは、カード型の記録媒体である。
通信インタフェース106は、ネットワーク12に接続されている。通信インタフェース106は、ネットワーク12を介して、他のコンピュータまたは通信機器との間でデータの送受信をおこなう。なお、ネットワーク12は、有線ネットワークでもよいし、無線ネットワークでもよい。通信インタフェース106は、双方向デジタル通信を送受信可能なインタフェースでもよいし、一方向性の放送を受信可能なインタフェースでもよい。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。
なお、第1の実施の形態に示した情報処理装置1も、図3に示した情報処理装置13と同様のハードウェアにより実現することができる。
情報処理装置13は、たとえばコンピュータ読取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。情報処理装置13に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、情報処理装置13に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また、情報処理装置13に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読出して実行することもできる。
次に、第2の実施形態のデータ交換のイメージについて図4を用いて説明する。図4は、第2の実施形態のデータ交換のイメージの一例を示す図である。
図4は、情報処理装置13bが、情報処理装置13aからデータを受信し、データ交換をする場合のイメージの一例である。
情報処理装置13bは情報処理装置13aからデータを受信するサーバの役割を担い、情報処理装置13cはメインフレームやDBMSなど従来から用いられている情報システムの役割を担う。
情報処理装置13bは、情報処理装置13aとの間においてツリー形式データ121でデータ交換をおこなう。ツリー形式データ121は、たとえば、構造化文書データや、XMLなどのマークアップ言語で記述されたツリー構造のデータである。
情報処理装置13bは、情報処理装置13cとの間においてフラット形式データ123でデータ交換をおこなう。フラット形式データ123は、たとえば、メインフレームなどで用いられる形式のデータである。
ここで、情報処理装置13aから送信されたデータが、情報処理装置13bを介して情報処理装置13cに受信されるデータ交換の流れについて説明する。
情報処理装置13aは、ネットワーク12aを介して情報処理装置13bにツリー形式データ121を送信する。
情報処理装置13bは、受信したツリー形式データ121をフラット形式データ123にデータ形式を変換する処理をする。情報処理装置13bは、ツリー形式データ121を中間データ122に変換し、中間データ122をフラット形式データ123に変換する。
情報処理装置13bは、ネットワーク12bを介して情報処理装置13cに変換したフラット形式データ123を送信する。情報処理装置13cは、フラット形式データ123を受信する。
ここで、情報処理装置13cから送信されたデータが、情報処理装置13bを介して情報処理装置13aに受信されるデータ交換の流れについて説明する。
情報処理装置13cは、ネットワーク12bを介して情報処理装置13bにフラット形式データ123を送信する。
情報処理装置13bは、受信したフラット形式データ123をツリー形式データ121にデータ形式を変換する処理をする。情報処理装置13bは、フラット形式データ123を中間データ122に変換し、中間データ122をツリー形式データ121に変換する。
情報処理装置13bは、ネットワーク12aを介して情報処理装置13aに変換したツリー形式データ121を送信する。情報処理装置13cは、ツリー形式データ121を受信する。
このように、情報処理装置13bは、データ交換において、ツリー形式データ121とフラット形式データ123とのデータ形式を変更する処理をおこなう。
次に、第2の実施形態のデータ変換1のイメージについて図5を用いて説明する。図5は、第2の実施形態のデータ変換1のイメージの一例を示す図である。
図5は、情報処理装置13bにおいて、ツリー形式データ121aが中間データ122aを介してフラット形式データ123aにデータ変換するイメージを示した一例である。
図5は、データ変換の過程(121a,122a,123a)と、処理の過程(C131)〜(C135)と、処理実行時に生成する管理情報(151,152)とを関連付けて示している。管理情報(151,152)は、パスリスト151とオブジェクトテーブル152を含む。
なお、図示していないが、情報処理装置13bは、ツリー形式データ121aに含まれるデータと、フラット形式データ123aに含まれるデータとを対応付けたデータ変換アドレス情報を予め、たとえば、HDD103に記憶している。
情報処理装置13bは、ツリー形式データ121aを識別情報とともに受信する(C131)。識別情報は、データの種別を識別する情報である。情報処理装置13aと情報処理装置13bとの間では、各種データが送受信されており、送受信時のフォーマットはデータの種別ごとに異なる。情報処理装置13bには、各種データに合わせたツリー形式およびフラット形式のフォーマットが識別情報に対応付けて記憶されている。
情報処理装置13bは、受信したツリー形式データ121aと識別情報に基づいて、中間データ122aであるツリー形式オブジェクトを生成する。また、情報処理装置13bは、データ変換先となるフラット形式オブジェクトを、予め記憶されているフォーマットと、識別情報とに基づいて生成する。
オブジェクトは、メモリ展開されアドレスパスが付される。なおツリー形式データ121aの送信元である情報処理装置13aでは、予め決められたフォーマットに準拠してツリー形式データ121aを生成するが、この際、必要のないデータなどを削除することができる。また、受信したツリー形式データ121aを構成するノードには、値を保持しないノードが含まれる場合もある。このため、情報処理装置13bは、ツリー形式データ121aを受信するごとに、オブジェクトを生成し、アドレスパスを設定する必要がある(C132)。
中間データ122aとしてオブジェクトを生成する方法として、たとえば、JAXB(Java(登録商標) Architecture for XML Binding)クラスのオブジェクトを用いる方法がある。情報処理装置13bは、JAXBクラスのオブジェクトを用いて、ツリー形式データ121aであるXMLデータから、中間データ122aであるJavaオブジェクトを生成できる。
なお、実施例においては、中間データ122であるオブジェクトは、オブジェクトモデルと受信したデータとに基づき生成されるものとする。オブジェクトモデルについては、図10、図11を用いて後で説明する。
情報処理装置13bは、オブジェクトに付されたパスが、パスリスト151に存在するか否かを検索する(C133)。ツリー構造におけるデータ検索では、ツリー構造内の所望のノードへアクセスする際には、ツリー構造の最上位からパスに沿ってノードを順に辿っていく。ツリー構造が複雑で階層が深い場合、情報処理装置13bは、パス検索に時間がかかる。これを解消するため、パスリスト151とオブジェクトテーブル152を用いてパスを辿りツリー構造のノードへのアクセス処理を効率化する。
パスリスト151は、ツリー形式データ121に基づきメモリ展開したツリー構造を検索しやすくするため、ツリー構造に含まれるノードのアドレスを示すパス(アドレスパス)を登録した情報である。パスリスト151は、図12を用いて後で説明する。
オブジェクトテーブル152は、パスと当該パスの末端に位置するノードオブジェクトとを対応付けて登録した情報である。オブジェクトテーブル152には、ノードオブジェクトのメモリ上の位置を示す位置情報が含まれている。この位置情報に基づき、パスを辿らなくても、このノードオブジェクトに直接アクセスすることができる。オブジェクトテーブル152の詳細は、図12を用いて後で説明する。
情報処理装置13bは、検索したパスがパスリスト151に登録されていない場合、パスリスト151とオブジェクトテーブル152に登録する(C134)。次回からは、登録済みのパスリスト151とオブジェクトテーブル152を用いることで、情報処理装置13bは、パス検索の効率を高めることができる。
情報処理装置13bは、変換元のツリー形式オブジェクトから取得したノード値をフラット形式オブジェクトへ設定し(C135)、フラット形式データ123aを生成する。このようにして情報処理装置13bは、ツリー形式データ121aからフラット形式データ123aへデータ変換をおこなう。
なお、ツリー形式データ121aからフラット形式データ123aへのデータ形式変換処理は、後で図13と図14を用いて説明する。
次に、第2の実施形態のデータ変換2のイメージについて図6を用いて説明する。図6は、第2の実施形態のデータ変換2のイメージの一例を示す図である。
図6は、情報処理装置13bにおいて、フラット形式データ123bが中間データ122bを介してツリー形式データ121bにデータ変換するイメージを示した一例である。
図6は、データ変換の過程(123b,122b,121b)と、処理の過程(C141)〜(C145)と、処理で用いる管理情報(151,152)とを関連付けて示している。
情報処理装置13bは、フラット形式データ123bを識別情報とともに受信する(C141)。
情報処理装置13bは、受信したフラット形式データ123bと識別情報に基づいて、中間データ122bであるオブジェクトを生成する。情報処理装置13bは、データ変換元である値を保持したフラット形式オブジェクトと、データ変換先となる最上位ノードのみを保持するツリー形式オブジェクトとを生成する。なお、最上位のノードの配下のノードは、フラット形式データ123bの項目の値をツリー形式オブジェクトに設定する際に、子ノードとして生成される。オブジェクトは、メモリ展開されアドレスパスが付される(C142)。
情報処理装置13bは、オブジェクトに付加したパスが、パスリスト151に存在するか否かを検索する(C143)。
情報処理装置13bは、パスリスト151とオブジェクトテーブル152に検索したパスが登録されていない場合、新たに登録する(C144)。次回からは、登録済みのパスリスト151とオブジェクトテーブル152を用いることで、情報処理装置13bは、パス検索の速度を高めることができる。
情報処理装置13bは、変換元のフラット形式オブジェクトから取得した値を中間データ122bであるツリー形式オブジェクトへ設定し(C145)、ツリー形式データ121bを生成する。このようにして情報処理装置13bは、フラット形式データ123bからツリー形式データ121bへデータ変換をおこなう。
なお、フラット形式データ123bからツリー形式データ121bへのデータ形式変換処理は、後で図15と図16を用いて説明する。
次に、第2の実施形態の構造化文書のイメージについて図7を用いて説明する。図7は、第2の実施形態の構造化文書のイメージの一例を示す図である。
図7は、構造化文書のツリー構造イメージの一例を示す図であり、XMLデータを理解しやすくするための図である。図7に示す構造化文書は、企業システム15a,15b間において、株や証券の売買などのために交換されるツリー形式データ121をイメージしたものである。
構造化文書におけるツリー構造の最上位のノード名は「ドキュメント」である。日本語のノード名に併記した英文字「Document」は、XMLデータでタグに用いるタグ名である。ノード名とタグ名は、1対1で対応する。図7の説明においては、構造化文書とXMLデータとの関係が理解しやすいよう、日本語のノード名に英文字のタグ名を併記する。
最上位の「ドキュメント(Document)」ノードは、「照合データ(S-TradConf)」ノードと「取引者(ConfPties)」ノードの2つの子ノードを保持する。
「照合データ(S-TradConf)」ノードは、「約定照合キー(CmonId)」ノードと「約定データ(TradDtls)」ノードの2つの子ノードを保持するノードである。「約定照合キー(CmonId)」ノードは、ノード値「200405081」を保持する末端のノードである。
「約定データ(TradDtls)」ノードは、「約定金額(Amt)」ノードと「銘柄コード(ISIN)」ノードの2つの子ノードを有する。「約定金額(Amt)」ノードは、ノード値「137000」を保持する末端のノードである。「銘柄コード(ISIN)」ノードは、ノード値「JP123」を保持する末端のノードである。
「取引者(ConfPties)」ノードは、「買い手(Buyr)」ノードと「売り手(Sellr)」ノードの2つの子ノードを保持する。「買い手(Buyr)」ノードは、ノード値「B信託銀行」を保持する末端のノードである。「売り手(Sellr)」ノードは、ノード値「C証券会社」を保持する末端のノードである。
次に、第2の実施形態のツリー形式データとフラット形式データのイメージについて図8を用いて説明する。図8は、第2の実施形態のツリー形式データとフラット形式データのイメージの一例を示す図である。
図8(A)は、図7に対応するツリー形式データの一例を示す図である。ツリー形式データは、XMLで記述されたXMLデータである。XMLデータは、XMLデータ識別情報で識別され、HDD103などの記憶部に記憶されるデータである。
図8(A)は、図7のノード名と対応するタグで記載されている。たとえば、「Document」タグは、文書全体を囲むタグである。「S-TradConf」タグは、「S-TradConf」ノードの配下のノードを囲むタグである。「CmonId」タグは、ノード値「200405081」を囲むタグである。「CmonId」タグを指定するパスは、「/Document/S-TradConf/CmonId」で表される。
なお、XMLデータ識別情報は、マッピング識別情報と、ツリー形式オブジェクト識別情報と、フラット形式オブジェクト識別情報とを対応付けてHDD103等の記憶部に記憶される。マッピング識別情報は、マッピング情報を識別する情報であり、図9を用いて後で説明する。ツリー形式オブジェクト識別情報は、ツリー形式オブジェクトモデルを識別する情報であり、図10を用いて後で説明する。フラット形式オブジェクト識別情報は、フラット形式オブジェクトモデルを識別する情報であり、図11を用いて後で説明する。
情報処理装置13bは、受信したXMLデータを識別するXMLデータ識別情報に対応する識別情報(マッピング識別情報、ツリー形式オブジェクト識別情報、フラット形式オブジェクト識別情報)を読出す。情報処理装置13bは、読出した識別情報に基づき、ツリー形式オブジェクトとフラット形式オブジェクトとを生成し、マッピング情報を対応付ける。
図8(B)は、フラット形式データ123の一例である。フラット形式データ123は、項目名とフラット形式データの値とが対応したものを1以上ストリーム出力したデータである。
たとえば、フラットデータ項目名「0101」とフラット形式データの値「200405081」は対応している。
マッピング情報に基づき、フラットデータ項目名とフラット形式データの値とを対応させたものをストリーム出力することで一連のデータにし、フラット形式データ123が生成される。
また、フラット形式データ123は、フラットデータ項目名とフラット形式データの値だけではなく、データを管理するための情報も含むが、図では省略する。
また、フラット形式データ123は、フラット形式データ識別情報で識別される。なお、フラット形式データ識別情報は、マッピング識別情報と、ツリー形式オブジェクト識別情報と、フラット形式オブジェクト識別情報とを対応付けてHDD103等の記憶部に記憶される。マッピング識別情報は、マッピング情報を識別する情報であり、図9を用いて後で説明する。ツリー形式オブジェクト識別情報は、ツリー形式オブジェクトモデルを識別する情報であり、図10を用いて後で説明する。フラット形式オブジェクト識別情報は、フラット形式オブジェクトモデルを識別する情報であり、図11を用いて後で説明する。
情報処理装置13bは、受信したフラット形式データ123を識別するXMLデータ識別情報に対応する識別情報(マッピング識別情報、ツリー形式オブジェクト識別情報、フラット形式オブジェクト識別情報)を読出す。情報処理装置13bは、読出した識別情報に基づき、ツリー形式オブジェクトとフラット形式オブジェクトとを生成し、マッピング情報を対応付ける。
次に、第2の実施形態のマッピング情報のイメージについて図9を用いて説明する。図9は、第2の実施形態のマッピング情報のイメージの一例を示す図である。
図9は、ツリー形式データ121とフラット形式データ123とを対応付けるためのマッピング情報の一例である。マッピング情報は、マッピング識別情報で識別される情報であり、HDD103などの記憶部に予め記憶される。
マッピング情報は、ツリー形式データ121のパスとフラット形式データ123のフラットデータ項目名とを1対1で対応付けた情報や、フラット形式データ123の値を設定するためのデータ長などを含む情報である。
たとえば、パス「/Document/S-TradConf/CmonId」は、フラット形式データの項目名「0101」と対応付けられている。データ長に関しては、図示を略す。
次に、第2の実施形態のツリー形式オブジェクトモデルについて図10を用いて説明する。図10は、第2の実施形態のツリー形式オブジェクトモデルの一例を示す図である。
図10で示したオブジェクトモデルは、中間データ122であるオブジェクトを生成するために用いられる、オブジェクトのフォーマット(ひな型)である。
オブジェクトを生成する方法として、たとえば、JAXBクラスに基づいてオブジェクトを生成する方法がある。実施例においては、中間データ122であるオブジェクトは、オブジェクトモデルと受信したデータに基づき生成されるものとする。
オブジェクトを生成することにより、情報処理装置13bは、データ変換のために要するメモリ領域の確保や、データ構造の設定などができる。
図10は、ツリー形式オブジェクトモデルである。ツリー形式オブジェクトモデルは、中間データ122bであるツリー形式オブジェクトを生成するためのフォーマットである。ツリー形式オブジェクトモデルは、ツリー形式オブジェクトモデル識別情報で識別され、HDD103などの記憶装置に予め記憶される。
ツリー形式オブジェクトモデルは、ノードオブジェクトがツリー構造を有するオブジェクトモデルである。
ノードオブジェクトは、ツリー形式オブジェクトにおける個々の要素であり、ノードに関する情報を保持するオブジェクトである。ノードに関する情報とは、ノードオブジェクトのツリー構造を示す情報(ノードオブジェクトの階層構造を示すポインタ情報等)、ノードオブジェクトが保持するメモリ領域に関する情報がある。また、ノードオブジェクトが保持するメモリ領域に設定する値に関する情報、ノードオブジェクトの名前などの情報も含む。
図10において、横長の長方形でノードオブジェクトを示し、ノードオブジェクトを繋ぐ線でツリー構造を示している。ノードオブジェクトを繋ぐ線の端部に付した白抜き菱形は、親ノードとなるノードオブジェクトに付される記号である。ノードオブジェクトの名前は、「NodeName=ノードオブジェクト名」で示す。ノードオブジェクトが保持するデータ種別は、「Data=データ種別」で示す。
たとえば、S-TradConfノードオブジェクトは、CmonIdノードオブジェクトとTradDtlsノードオブジェクトの2つの子ノードオブジェクトを保持する。CmonIdノードオブジェクトは、文字列データをノードオブジェクトの値として設定される。
次に、第2の実施形態のフラット形式オブジェクトモデルについて図11を用いて説明する。図11は、第2の実施形態のフラット形式オブジェクトモデルの一例を示す図である。
図11で示したフラット形式オブジェクトモデルは、中間データ122であるオブジェクトを生成するために用いられる、オブジェクトのフォーマット(ひな型)である。
図11は、フラット形式オブジェクトモデルである。フラット形式オブジェクトモデルは、中間データ122aであるフラット形式オブジェクトを生成するためのフォーマットである。フラット形式オブジェクトモデルは、フラット形式オブジェクトモデル識別情報で識別され、HDD103などの記憶装置に予め記憶される。
フラット形式オブジェクトモデルは、フラットデータオブジェクトがフラット構造を有するオブジェクトモデルである。
フラットデータオブジェクトは、フラット形式オブジェクトにおける個々の要素であり、フラット形式データの値を保持するオブジェクトである。フラットデータに関する情報には、フラットデータのフラット構造を示す情報(データを連結するポインタ情報等)、フラットデータオブジェクトが保持するメモリ領域に関する情報などがある。また、フラットデータオブジェクトが保持するメモリ領域に設定する値に関する情報、フラットデータオブジェクトの項目名などの情報も含む。
図11において、横長の長方形でフラットデータオブジェクトを示し、オブジェクトを繋ぐ線でデータ構造を示す。フラットデータオブジェクトの項目名は、「FlatField=フラットデータオブジェクト名」で示す。フラットデータオブジェクトが保持するデータの種別は、「Data=データ種別」で示す。
たとえば、項目名「0101」フラットデータオブジェクトは、情報処理装置13bによって、文字列データをフラットデータオブジェクトの値として設定される。
なお、フラットデータオブジェクトは、図10と異なり、ツリー構造ではなく、フラットデータが順に連結した構造をとる。このため、最上位(FlatRecordAccess0123)のオブジェクトは、全てのフラットデータオブジェクトを包含し、フラットデータオブジェクト間で階層構造(ツリー構造)は有さない。
図10と図11のオブジェクトモデルから生成されたオブジェクトは、図9のマッピング情報で対応付けられるものである。たとえば、図10のツリー形式オブジェクトモデルに含まれる各ノードオブジェクトに至るパスは、図9のマッピング情報に含まれるパスと対応している。また、図11のフラット形式オブジェクトモデルに含まれるフラットデータオブジェクトの項目名は、マッピング情報に含まれるフラットデータ項目名である。
図10および図11のオブジェクトモデルに基づいて生成されたオブジェクトに対して、図9のマッピング情報で対応付けることにより、フラットデータオブジェクトとノードオブジェクトが1対1で対応する。
次に、第2の実施形態のパスリストとオブジェクトテーブルについて図12を用いて説明する。図12は、第2の実施形態のパスリストとオブジェクトテーブルの一例を示す図である。
パスリスト151とオブジェクトテーブル152は、情報処理装置13bにおいてデータ変換をおこなう際に用いられる情報であり、HDD103などの記憶装置に記憶される。
図12(A)は、パスリスト151の一例である。パスリスト151は、ツリー形式データ121に基づきメモリ展開したツリー構造を検索しやすくするため、ツリー構造に含まれるノードのパスを登録した情報である。
パスリスト151には、情報処理装置13bが受信したツリー形式データ121をメモリ展開した情報に基づき、パスが登録される。
パスリスト151に登録されるパスとして選定されるパスは、ツリー構造へのアクセス効率を高めるために効果のあるパスである。たとえば、子ノードを複数保持するノードに至るパスがパスリスト151に登録される。
また、パスリスト151に登録するノード数が増加すると、情報処理装置13bにおいて登録されたノード数に応じて検索に要する負荷が高くなる。このため、パスリスト151には、アクセスに効果の高いパス(分岐ノードに至るパス)を選定して登録する。また、検索する効率が高まるよう、パスリスト151に登録されたパスをソートして管理する。また、パスリスト151に登録するパスは、ノードが保持する子ノードの数や、パスの階層の深さなどに応じて選定してもよい。
図12(A)のパスリスト151には、3つのパスが登録されている。3つのパスは、「/Document/S-TradConf」、「/Document/S-TradConf/TradDtls」、「/Document/ConfPties」である。これらのパスは、ツリー形式データ121である図8(A)のXMLデータをメモリ展開した場合における、分岐ノード(S-TradConfノード、TradDtlsノード、ConfPtiesノード)に至るパスである。
なお、図8(A)に示したXMLデータの例において、ツリー構造における分岐ノードが有する子ノードの数は最大でノード数2であるが、企業システム15a,15bにおけるデータ交換においては数十以上の多数の子ノードを有する分岐ノードも存在し得る。
また、図8(A)に示したXMLデータの例において、ツリー構造における階層の深さは、最上位ノード(Documentノード)を0階層として数えた場合、3階層(Amtノード、ISINノード)が階層の最大深さである。しかし、企業システム15a,15bにおけるデータ交換においては、数十階層以上の深い階層を有するツリー構造も存在し得る。
ツリー構造において、階層が深いノードは、子ノードが少ない場合でも、パスリスト151に保持する効果がある。ツリー構造の階層が深いノードにアクセスするには、ツリーの最上位から順にノードを辿ることになるため、ノードの階層の深さに応じてアクセスに時間を要するためである。
しかし、階層が浅いノードにアクセスする場合はアクセスにさほど時間を要しないため、子ノードの数が少なく浅いノードであればアクセス負荷よりも検索負荷のほうが高くなる可能性がある。
これらのことを踏まえ、情報処理装置13bは、分岐ノードに至るパスをパスリスト151に登録する。また、情報処理装置13bは、パスを保持する条件を階層に応じて変更し、検索の負荷と、アクセスの負荷とのバランスを取る。
図12(B)は、オブジェクトテーブル152の一例である。オブジェクトテーブル152は、パスリストに登録されたパスと当該パスの末端に位置するノードオブジェクトとを対応付けて登録した情報である。
オブジェクトテーブル152は、分岐ノードのノードオブジェクトを取得するために用いられる情報である。オブジェクトテーブル152を用いて分岐ノードを取得することにより、情報処理装置13bは、階層が深いノードへのアクセスを早めることができる。
オブジェクトテーブル152は、パスとノードオブジェクトとを対応付けた情報である。たとえば、パス「/Document/S-TradConf」に対しては、S-TradConfノードのノードオブジェクトが格納される。
ノードオブジェクトは、ノード名、ノードのメモリアドレス、ノード値、子ノードについての情報を含む。なおこれは一例であり、必要に応じてノードオブジェクトに、ノードオブジェクトが保持するメモリ領域に関する情報などを記憶してもよい。
次に、第2の実施形態のデータ変換処理1について図13を用いて説明する。図13は、第2の実施形態のデータ変換処理1のフローチャートの一例である。
データ変換処理1は、情報処理装置12bがツリー形式データ121を受信し、フラット形式データ123へデータ変換し、フラット形式データ123を送信する処理である。情報処理装置13bのプロセッサ101は、ツリー形式データ121を受信した場合に、データ変換処理1を実行する。
[ステップS11]プロセッサ101は、ツリー形式データ121およびデータ識別情報を受信する。ツリー形式データ121は、たとえば、図8(A)で示したXMLデータである。データ識別情報とは、たとえば、XMLデータ識別情報であり、XMLデータを識別するための情報である。
[ステップS12]プロセッサ101は、受信したデータ識別情報に基づき、中間データ122を生成するために用いるオブジェクトモデルを決定する。たとえば、図10(A)(B)で示したフラット形式オブジェクトモデルが決定される。
[ステップS13]プロセッサ101は、オブジェクトモデルに基づき、オブジェクトを生成する。
プロセッサ101は、受信したツリー形式データ121に対応するツリー形式オブジェクトと、データ変換先であるフラット形式データ123に対応するフラット形式オブジェクトとを生成する。
プロセッサ101は、ツリー形式オブジェクトモデルに基づき、受信したツリー形式データ121の値が設定されたツリー形式オブジェクトを生成する。プロセッサ101は、フラット形式オブジェクトモデルに基づき、値が設定されていないフラット形式オブジェクトを生成する。
[ステップS14]プロセッサ101は、マッピング情報を用いて、オブジェクトを対応付ける。言い換えると、プロセッサ101は、ツリー形式オブジェクトに含まれる個々のノードオブジェクトとフラット形式オブジェクトに含まれる個々のフラットデータオブジェクトとをマッピング情報で対応付ける。
プロセッサ101は、生成したフラットデータオブジェクトに、マッピング情報に基づいてアドレスパスを付する。
[ステップS15]プロセッサ101は、パス解析処理1を実行する。パス解析処理1は、フラットデータオブジェクトに設定されたアドレスパスを解析し、フラットデータオブジェクトに値を設定する処理である。パス解析処理1は、図14を用いて後で説明する。
[ステップS16]プロセッサ101は、処理対象のフラットデータオブジェクトが有るか否かを判定する。言い換えると、パス解析処理が済んでいないフラットデータオブジェクトの有無を判定する。
プロセッサ101は、処理対象のフラットデータオブジェクトが有ると判定した場合はステップS15にもどり、処理対象のフラットデータオブジェクトが無いと判定した場合はステップS17にすすむ。
[ステップS17]プロセッサ101は、フラットデータオブジェクトをストリーム出力し、一連のフラット形式データ123を生成する。
[ステップS18]プロセッサ101は、生成したフラット形式データ123を送信し、処理を終了する。
次に、第2の実施形態のパス解析処理1のフローチャートについて図14を用いて説明する。図14は、第2の実施形態のパス解析処理1のフローチャートの一例である。
パス解析処理1は、フラットデータオブジェクトに設定されたアドレスパスを解析し、条件に応じて、パスリスト151とオブジェクトテーブル152にパスを登録し、フラットデータオブジェクトに値を設定する処理である。パス解析処理1は、データ変換処理1のステップS15で、情報処理装置13bのプロセッサ101が実行する処理である。
[ステップS21]プロセッサ101は、フラットデータオブジェクトに付したアドレスパスと前方一致するパスが、パスリスト151に存在するか検索する。
なお、プロセッサ101は、パスを検索するためにJavaの関数を用いることができる。
[ステップS22]プロセッサ101は、検索結果に基づき、パスリスト151にフラットデータオブジェクトに付したアドレスパスと前方一致するパスが有るか否かを判定する。
なお、前方一致するパスがパスリスト151に複数存在する場合、プロセッサ101は、階層が深い(パスに含まれるノード数が多い)パスを、前方一致したパスとする。
プロセッサ101は、前方一致するパスがパスリスト151に無い場合はステップS23にすすみ、有る場合はステップS24にすすむ。
[ステップS23]プロセッサ101は、フラットデータオブジェクトに付したアドレスパスの最上位を対象とするパス(以下、対象パスと表記)とし、パスの最上位のノードを対象とするノード(以下、対象ノードと表記)とする。
[ステップS24]プロセッサ101は、オブジェクトテーブル152から前方一致したパスと当該パスの末端に対応するノードのノードオブジェクトを取得する。
プロセッサ101は、前方一致したパスを対象パスとし、対象パスの末端のノードを対象ノードとする。
[ステップS25]プロセッサ101は、対象ノードのノードオブジェクト(以下、対象ノードオブジェクトと表記)がパスリスト151に登録するための条件(以下、登録条件と表記)を満たすか否かを判定する。
登録条件は、システム管理者が設定してもよいし、予めHDD103などの記憶装置に記憶してもよい。また、登録条件は、1つの登録条件を設定してもよいし、複数の登録条件を設定してもよい。
登録条件の具体例1としては、たとえば、対象ノードオブジェクトが分岐ノードであること、言い換えると、複数の子ノードを保持するノードであることである。分岐ノードに至るまでのパスをパスリスト151に登録することで、情報処理装置13bは、利用頻度が高いパスをパスリスト151に登録することができる。
また、登録条件の具体例2としては、たとえば、対象ノードオブジェクトが保持する子ノードの数が閾値(子ノード閾値)以上であることである。対象ノードオブジェクトが保持する子ノードの数が多いほど、当該対象ノードオブジェクトに至るパスは利用頻度が高いパスである蓋然性が高いためである。また、保持する子ノードの数が少ないノードに至るパスをも含めて、全てのパスを登録すると、パスリスト151を検索する負荷が高くなる。検索負荷が高くなることを回避し、パスリスト151に登録するパスを選別するために有効である。
また、登録条件の具体例3としては、対象ノードオブジェクトがツリー構造において深い階層に位置すること、言い換えると、階層が深いパス(階層閾値以上のパス)に位置することである。情報処理装置13bがパス検索に要する負荷は、階層数に応じて高くなる。このため、対象ノードオブジェクトが保持する子ノード数が少なくとも階層が深い場合には、パス検索の効率を高めるためパスリスト151に登録する。
なお、プロセッサ101は、ノードオブジェクトが保持する情報を取得するために、Javaや、DOM(Document Object Model)の関数(getChildNodes)などを用いることができる。
[ステップS26]プロセッサ101は、対象ノードに至るパスについてパスリスト151に登録が有るか否かを判定する。プロセッサ101は、登録が有る場合はステップS29にすすみ、登録が無い場合はステップS27にすすむ。
[ステップS27]プロセッサ101は、パスリスト151に対象パスを登録する。
[ステップS28]プロセッサ101は、オブジェクトテーブル152に対象パスと対象ノードオブジェクトとを登録する。
[ステップS29]プロセッサ101は、対象ノードがフラットデータオブジェクトに付したアドレスパスの末端のノードか否かを判定する。
プロセッサ101は、対象ノードが末端のノードでない場合はステップS32にすすみ、末端のノードである場合はステップS30にすすむ。
[ステップS30]プロセッサ101は、対象ノードにノード値が有るか否かを判定する。
プロセッサ101は、対象ノードオブジェクトにノード値が有る場合はステップS31にすすみ、ノード値が無い場合は処理を終了する。
[ステップS31]プロセッサ101は、対象ノードオブジェクトに対応するフラットデータオブジェクトに対して、対象ノードオブジェクトのノード値を設定する。言い換えると、プロセッサ101は、空であったフラットデータオブジェクトのメモリ領域に、値を設定する。
[ステップS32]プロセッサ101は、対象ノードに子ノードが有るか否かを判定する。
プロセッサ101は、対象ノードオブジェクトに子ノードが有る場合はステップS33にすすみ、無い場合は処理を終了する。
[ステップS33]プロセッサ101は、対象ノードの子ノードを対象ノードとし、子ノードに至るパスを対象パスとし、ステップS25にもどる。
このようにして、情報処理装置13bは、受信したツリー形式データ121を解析し、使用頻度の高いパスや階層の深いパスを登録し、登録したパスをフラット形式データ123へデータ変換をおこなう際に用いてパス検索の効率を高める。これにより、情報処理装置13bは、フラット形式データ123を扱うメインフレームなどのシステムに対し、速やかにデータ変換をおこなうことができる。
次に、第2の実施形態のデータ変換処理2のフローチャートについて図15を用いて説明する。図15は、第2の実施形態のデータ変換処理2のフローチャートの一例である。
データ変換処理2は、情報処理装置12bがフラット形式データ123を受信し、ツリー形式データ121へデータ変換し、ツリー形式データ121を送信する処理である。情報処理装置13bのプロセッサ101は、フラット形式データ123を受信した場合に、データ変換処理2を実行する。
[ステップS41]プロセッサ101は、フラット形式データ123およびデータ識別情報を受信する。フラット形式データ123は、たとえば、図8(B)で示したデータである。データ識別情報とは、たとえば、フラット形式データ識別情報であり、フラット形式データを識別するための情報である。
[ステップS42]プロセッサ101は、受信したデータ識別情報に基づき、中間データ122を生成するために用いるオブジェクトモデルを決定する。
[ステップS43]プロセッサ101は、オブジェクトモデルに基づき、オブジェクトを生成する。
プロセッサ101は、受信したフラット形式データ123に対応するフラット形式オブジェクトと、データ変換先であるツリー形式データ121に対応するツリー形式オブジェクトとを生成する。
プロセッサ101は、フラット形式オブジェクトモデルに基づき、受信したフラット形式データ123の値が設定されたフラット形式オブジェクトを生成する。
プロセッサ101は、ツリー形式オブジェクトモデルに基づき、最上位ノードオブジェクトのみを保持するツリー形式オブジェクトを生成する。
[ステップS44]プロセッサ101は、マッピング情報を用いて、オブジェクトを対応付ける。言い換えると、プロセッサ101は、フラット形式オブジェクトに含まれる個々のフラットデータオブジェクトをマッピング情報で対応付ける。
プロセッサ101は、生成したフラットデータオブジェクトに、マッピング情報に基づいてアドレスパスを付する。
[ステップS45]プロセッサ101は、パス解析処理2を実行する。パス解析処理2は、フラットデータオブジェクトに設定されたアドレスパスを解析し、ノードオブジェクトに値を設定する処理である。パス解析処理2は、図16を用いて後で説明する。
[ステップS46]プロセッサ101は、処理対象のフラットデータオブジェクトが有るか否かを判定する。言い換えると、パス解析処理2が済んでいないフラットデータオブジェクトの有無を判定する。
プロセッサ101は、処理対象のフラットデータオブジェクトが有ると判定した場合はステップS45にもどり、処理対象のフラットデータオブジェクトが無いと判定した場合はステップS47にすすむ。
[ステップS47]プロセッサ101は、ノードオブジェクトをツリー形式データとしてストリーム出力しツリー形式データ121を生成する。
[ステップS48]プロセッサ101は、生成したツリー形式データ121を送信し、処理を終了する。
次に、第2の実施形態のパス解析処理2のフローチャートについて図16を用いて説明する。図16は、第2の実施形態のパス解析処理2のフローチャートの一例である。
パス解析処理2は、フラットデータオブジェクトに設定されたアドレスパスを解析し、ノードオブジェクトに値を設定する処理である。パス解析処理2は、データ変換処理2のステップS45で、情報処理装置13bのプロセッサ101が実行する処理である。
[ステップS50]プロセッサ101は、フラットデータオブジェクトに値が設定されているか否かを判定する。
なお、フラットデータオブジェクトに値が設定されていない場合とは、たとえば、対応するメモリ領域に空白やヌル(0)が設定されている場合である。値が設定されていない場合、プロセッサ101は、ノードオブジェクトに値を設定しない。
プロセッサ101は、フラットデータオブジェクトに値が設定されている場合はステップS51にすすみ、設定されていない場合は処理を終了する。
[ステップS51]プロセッサ101は、フラットデータオブジェクトに付したアドレスパスと前方一致するパスが、パスリスト151に存在するか検索する。
なお、プロセッサ101は、パスを検索するためにJavaの関数を用いることができる。
[ステップS52]プロセッサ101は、検索結果に基づき、パスリスト151にフラットデータオブジェクトに付したアドレスパスと前方一致するパスが有るか否かを判定する。
なお、前方一致するパスがパスリスト151に複数存在する場合、プロセッサ101は、階層が深い(パスに含まれるノード数が多い)パスを、前方一致したパスとする。
プロセッサ101は、前方一致するパスがパスリスト151に無い場合はステップS53にすすみ、有る場合はステップS54にすすむ。
[ステップS53]プロセッサ101は、フラットデータオブジェクトに付したアドレスパスの最上位を対象とするパスとし、パスの最上位のノードを対象とするノードとする。
[ステップS54]プロセッサ101は、オブジェクトテーブル152から前方一致したパスと当該パスの末端に対応するノードのノードオブジェクトを取得する。
プロセッサ101は、前方一致したパスを対象パスとし、対象パスの末端のノードを対象ノードとする。
[ステップS55]プロセッサ101は、対象ノードのノードオブジェクトがパスリスト151に登録するための条件(以下、登録条件と表記)を満たすか否かを判定する。
登録条件は、システム管理者が設定してもよいし、予めHDD103などの記憶装置に記憶してもよい。また、登録条件は、1つの登録条件を設定してもよいし、複数の登録条件を設定してもよい。
登録条件の具体例1としては、たとえば、対象ノードオブジェクトが分岐ノードであること、言い換えると、複数の子ノードを保持するノードであることである。分岐ノードに至るまでのパスをパスリスト151に登録することで、情報処理装置13bは、利用頻度が高いパスをパスリスト151に登録することができる。
また、登録条件の具体例2としては、たとえば、対象ノードオブジェクトが保持する子ノードの数が閾値(子ノード閾値)以上であることである。対象ノードオブジェクトが保持する子ノードの数が多いほど、当該対象ノードオブジェクトに至るパスは利用頻度が高いパスである蓋然性が高いためである。また、保持する子ノードの数が少ないノードに至るパスをも含めて、全てのパスを登録すると、パスリスト151を検索する負荷が高くなる。検索負荷が高くなることを回避し、パスリスト151に登録するパスを選別するために有効である。
また、登録条件の具体例3としては、対象ノードオブジェクトがツリー構造において深い階層に位置すること、言い換えると、階層が深いパス(階層閾値以上のパス)に位置することである。情報処理装置13bがパス検索に要する負荷は、階層数に応じて高くなる。このため、対象ノードオブジェクトが保持する子ノード数が少なくとも階層が深い場合には、パス検索の効率を高めるためパスリスト151に登録する。
なお、プロセッサ101は、ノードオブジェクトが保持する情報を取得するために、Javaや、DOMの関数などを用いることができる。
[ステップS56]プロセッサ101は、対象ノードに至るパスについてパスリスト151に登録が有るか否かを判定する。プロセッサ101は、登録が有る場合はステップS59にすすみ、登録が無い場合はステップS57にすすむ。
[ステップS57]プロセッサ101は、パスリスト151に対象パスを登録する。
[ステップS58]プロセッサ101は、オブジェクトテーブル152に対象パスと対象ノードオブジェクトとを登録する。
[ステップS59]プロセッサ101は、対象ノードがフラットデータオブジェクトに付したアドレスパスの末端のノードか否かを判定する。
プロセッサ101は、対象ノードが末端のノードでない場合はステップS61にすすみ、末端のノードである場合はステップS60にすすむ。
[ステップS60]プロセッサ101は、対象ノードオブジェクトに対応するフラットデータオブジェクトから値を取得し、対象ノードオブジェクトのノード値として設定する。言い換えると、プロセッサ101は、空であったノードオブジェクトのメモリ領域に、値を設定する。
[ステップS61]プロセッサ101は、対象ノードに子ノードを生成する。
[ステップS62]プロセッサ101は、対象ノードの子ノードを対象ノードとし、子ノードに至るパスを対象パスとし、ステップS55にもどる。
このようにして、情報処理装置13bは、データ変換の対象となるツリー形式データ121を解析し、使用頻度の高いパスや階層の深いパスを登録し、登録したパスをデータ変換処理に用いることでパス検索の効率を高める。これにより、情報処理装置13bは、フラット形式データ123を扱うメインフレームなどのシステムに対し、速やかにデータ変換をおこなうことができる。
このように、情報処理装置1,13bは、データ交換の効率を高めることができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1,13bが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読取り可能な記録媒体に記録しておくことができる。コンピュータで読取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
1 情報処理装置
2 制御部
3 記憶部
4,4a,4b 第2の情報
5,5a 第3の情報
6 第1の情報
7 第4の情報
11 データ処理システム
12,12a,12b ネットワーク
13,13a,13b,13c 情報処理装置
14 記憶装置
15a,15b 企業システム
101 プロセッサ
102 RAM
103 HDD
104 入出力信号インタフェース
105 記憶媒体インタフェース
106 通信インタフェース
107 バス
108 入出力デバイス
109 記憶媒体

Claims (8)

  1. ツリー構造を有する形式でデータを記述する第1の情報を受信し、
    前記第1の情報のツリー構造上における前記データを含むノードへの経路と、前記ツリー構造を有さない形式でデータを記述する第4の情報における前記ノードに対応するデータとを対応付ける第2の情報を、記憶部から読出し、
    前記第2の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第3の情報を生成し、
    前記第2の情報と前記第3の情報に基づいて、前記第1の情報から前記第4の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第4の情報を生成する、
    処理を情報処理装置に実行させることを特徴とするデータ処理プログラム。
  2. ツリー構造を有さない形式でデータを記述する第4の情報を受信し、
    ツリー構造を有する形式でデータを記述する第1の情報のツリー構造上における前記データを含むノードへの経路と、前記第4の情報における前記ノードに対応するデータとを対応付ける第2の情報を、記憶部から読出し、
    前記第2の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第3の情報を生成し、
    前記第2の情報と前記第3の情報に基づいて、前記第4の情報から前記第1の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第1の情報を生成する、
    処理を情報処理装置に実行させることを特徴とするデータ処理プログラム。
  3. 前記データ処理プログラムは、
    前記ツリー構造における前記分岐ノードの階層の深さに応じて、前記第3の情報を生成する、
    処理を実行させることを特徴とする請求項1および請求項2に記載のデータ処理プログラム。
  4. 前記データ処理プログラムは、
    前記分岐ノードが保持する子ノードの数に応じて、前記第3の情報を生成する、
    処理を実行させることを特徴とする請求項1および請求項2に記載のデータ処理プログラム。
  5. 制御部と記憶部を有する情報処理装置におけるデータ処理方法であって、
    前記制御部は、
    ツリー構造を有する形式でデータを記述する第1の情報を受信し、
    前記第1の情報のツリー構造上における前記データを含むノードへの経路と、前記ツリー構造を有さない形式でデータを記述する第4の情報における前記ノードに対応するデータとを対応付ける第2の情報を、前記記憶部から読出し、
    前記第2の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第3の情報を生成し、
    前記第2の情報と前記第3の情報に基づいて、前記第1の情報から前記第4の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第4の情報を生成する、
    ことを特徴とするデータ処理方法。
  6. 制御部と記憶部を有する情報処理装置におけるデータ処理方法であって、
    前記制御部は、
    ツリー構造を有さない形式でデータを記述する第4の情報を受信し、
    ツリー構造を有する形式でデータを記述する第1の情報のツリー構造上における前記データを含むノードへの経路と、前記第4の情報における前記ノードに対応するデータとを対応付ける第2の情報を、前記記憶部から読出し、
    前記第2の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第3の情報を生成し、
    前記第2の情報と前記第3の情報に基づいて、前記第4の情報から前記第1の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第1の情報を生成する、
    ことを特徴とするデータ処理方法。
  7. 制御部と記憶部を有する情報処理装置であって、
    前記制御部は、
    ツリー構造を有する形式でデータを記述する第1の情報を受信し、
    前記第1の情報のツリー構造上における前記データを含むノードへの経路と、前記ツリー構造を有さない形式でデータを記述する第4の情報における前記ノードに対応するデータとを対応付ける第2の情報を、前記記憶部から読出し、
    前記第2の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第3の情報を生成し、
    前記第2の情報と前記第3の情報に基づいて、前記第1の情報から前記第4の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第4の情報を生成する、
    ことを特徴とする情報処理装置。
  8. 制御部と記憶部を有する情報処理装置であって、
    前記制御部は、
    ツリー構造を有さない形式でデータを記述する第4の情報を受信し、
    ツリー構造を有する形式でデータを記述する第1の情報のツリー構造上における前記データを含むノードへの経路と、前記第4の情報における前記ノードに対応するデータとを対応付ける第2の情報を、前記記憶部から読出し、
    前記第2の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第3の情報を生成し、
    前記第2の情報と前記第3の情報に基づいて、前記第4の情報から前記第1の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第1の情報を生成する、
    ことを特徴とする情報処理装置。
JP2015058757A 2015-03-20 2015-03-20 データ処理プログラム、データ処理方法および情報処理装置 Active JP6293083B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015058757A JP6293083B2 (ja) 2015-03-20 2015-03-20 データ処理プログラム、データ処理方法および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015058757A JP6293083B2 (ja) 2015-03-20 2015-03-20 データ処理プログラム、データ処理方法および情報処理装置

Publications (2)

Publication Number Publication Date
JP2016177691A JP2016177691A (ja) 2016-10-06
JP6293083B2 true JP6293083B2 (ja) 2018-03-14

Family

ID=57071345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015058757A Active JP6293083B2 (ja) 2015-03-20 2015-03-20 データ処理プログラム、データ処理方法および情報処理装置

Country Status (1)

Country Link
JP (1) JP6293083B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254023B (zh) * 2021-05-14 2023-08-11 网易(杭州)网络有限公司 对象读取方法、装置和电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126804A (ja) * 2002-09-30 2004-04-22 Just Syst Corp 文書管理方法および装置
JP2007265383A (ja) * 2006-01-31 2007-10-11 Victor Co Of Japan Ltd 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法
US9330149B2 (en) * 2007-12-18 2016-05-03 Oracle International Corporation Techniques for query and DML over relational tables using spreadsheet applications
WO2012117438A1 (ja) * 2011-02-28 2012-09-07 株式会社日立製作所 データベース管理装置、データベース管理方法及びデータベースシステム

Also Published As

Publication number Publication date
JP2016177691A (ja) 2016-10-06

Similar Documents

Publication Publication Date Title
US8364683B2 (en) Importing and reconciling resources from disjoint name spaces to a common namespace
US20090313208A1 (en) Sortable hash table
EP4066138B1 (en) Method and system for generating synthethic data using a regression model while preserving statistical properties of underlying data
KR20090005846A (ko) 전자 컨텐트 가이드 생성 방법 및 그 장치
WO2019139817A1 (en) Knowledge base construction
US20220156240A1 (en) Hierarchical script database and database applications
US11734241B2 (en) Efficient spatial indexing
JP6293083B2 (ja) データ処理プログラム、データ処理方法および情報処理装置
AU2022203755B2 (en) Storage structure for pattern mining
JP7381290B2 (ja) 計算機システム及びデータの管理方法
JP5972461B2 (ja) データ連携支援装置及びデータ連携支援方法
US10908924B2 (en) System and methods for loading objects from hash chains
JP6017055B2 (ja) データ連携支援装置及びデータ連携支援方法
US20220092186A1 (en) Security information analysis device, system, method and program
US11360981B2 (en) Servicing database requests using canonicalized tables
US11494400B2 (en) Servicing database requests using subsets of canonicalized tables
US11223530B2 (en) Natural language processing in modeling of network device configurations
US11360960B2 (en) Servicing database requests using derivations of canonicalized tables
US20220114189A1 (en) Extraction of structured information from unstructured documents
JP5382917B2 (ja) タクソノミ検索装置、タクソノミ検索方法およびタクソノミ検索プログラム
JP6079361B2 (ja) 文書管理装置、文書管理方法および文書管理プログラム
JP6287396B2 (ja) 情報処理装置及びプログラム
JP2011107757A (ja) データ処理装置及びデータ処理方法及びプログラム
JP2015141546A (ja) コメント管理システム、コメント管理方法、及び、そのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171215

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: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180213

R150 Certificate of patent or registration of utility model

Ref document number: 6293083

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150