JP3984553B2 - Data processing apparatus, data processing system, and recording medium - Google Patents

Data processing apparatus, data processing system, and recording medium Download PDF

Info

Publication number
JP3984553B2
JP3984553B2 JP2003016005A JP2003016005A JP3984553B2 JP 3984553 B2 JP3984553 B2 JP 3984553B2 JP 2003016005 A JP2003016005 A JP 2003016005A JP 2003016005 A JP2003016005 A JP 2003016005A JP 3984553 B2 JP3984553 B2 JP 3984553B2
Authority
JP
Japan
Prior art keywords
context
client
entity
data
parent
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.)
Expired - Fee Related
Application number
JP2003016005A
Other languages
Japanese (ja)
Other versions
JP2003248609A (en
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.)
NS Solutions Corp
Original Assignee
NS Solutions Corp
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 NS Solutions Corp filed Critical NS Solutions Corp
Priority to JP2003016005A priority Critical patent/JP3984553B2/en
Publication of JP2003248609A publication Critical patent/JP2003248609A/en
Application granted granted Critical
Publication of JP3984553B2 publication Critical patent/JP3984553B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、試行錯誤的な計算や、データ更新がなされている中でのシミュレーション的な計算等に用いられるデータ処理装置、データ処理システム、及びコンピュータ読み取り可能な記録媒体に関するものである。
【0002】
【従来の技術】
従来より、試行錯誤的な計算や、データ更新がなされている中でのシミュレーション的な計算等は、ビジネス関係では、金融や、マーケットのリスク評価処理等、産業関係では、物流や流通、プロセス制御のシミュレーション、計画等において多く行われている。
【0003】
しかしながら、例えば、データ更新が頻繁に行われるようなデータベース(DB)内のデータを用いて、多くのクライアント(ユーザ)が、上述したような計算やシミュレーション等を行う場合(ここでは説明の簡単のために、プロセス制御等のシミュレーションを行う場合を一例として挙げて説明する)、DB内のデータの一致性を確保するためには、1人のクライアントが該データを利用している間、他のクライアントは該データを利用することができない。
【0004】
そこで、上記の問題を解決するために、例えば、図15に示すようなデータ処理システム500が提案されている。
このデータ処理システム500は、上記図15に示すように、DB510内のデータのコピー(DBコピー)510'(C1),510'(C2),510'(C3),・・・を、シミュレーションを行うクライアントC1,C2,C3,・・・に対して個々に設けると共に、シミュレーションを行うための処理プログラム(シミュレーションプログラム)520(C1),520(C2),520(C3),・・・についても、DBコピー510'(C1),510'(C2),510'(C3),・・・に対応して個々に設けた構成としている。
このような構成により、それぞれのクライアントC1,C2,C3,・・・は、他のクライアントが現在シミュレーションを行っているか否かにかかわらず、自専用のDBコピーを用いて自由にシミュレーションを行うことができる。また、並行して様々なシミュレーションを行うこともできる。
【0005】
【発明が解決しようとする課題】
しかしながら、上記図15のデータ処理システム500では、DB510のDBコピー510'(C1),510'(C2),510'(C3),・・・と共に、処理プログラム520(C1),520(C2),520(C3),・・・を、シミュレーションを行うクライアントC1,C2,C3,・・・毎にそれぞれ設ける構成としているため、その分の多くのメモリが必要であり、システム構成が複雑になり、さらにその管理や保守も困難になる、という問題があった。
【0006】
また、それぞれのクライアントC1,C2,C3,・・・は、自専用のDBコピーを用いてシミュレーションを行う構成としているため、それぞれが異なるデータ内容でシミュレーションが行われてしまう場合もあった。
例えば、クライアントC1にてシミュレーションが終了し、その結果を他のクライアントに伝えるために、そのシミュレーション結果によって、基のDB510の内容を更新したとする。このとき、他のクライアントC2,C3,・・・では、それぞれ自専用のDBコピー510'(C2),510'(C3),・・・を用いて、すなわち更新前のDB510の内容を用いて、シミュレーションが行われることになってしまう。
【0007】
そこで、上記図15のデータ処理システム500での問題を解決するために、例えば、図16に示すようなデータ処理システム600が提案されている。
このデータ処理システム600は、上記図15に示すように、DB610内のデータの1つのコピー(DBコピー)610と、シミュレーションを行うための1つの処理プログラム(シミュレーションプログラム)620とを設けた構成としており、それぞれのC1,C2,C3,・・・は、DBコピー610を共有して、それぞれシミュレーションを行えるようになされている。
このような構成により、メモリを多く必要とすることなく、それぞれのC1,C2,C3,・・・は、同じデータ内容でシミュレーションを行うことができる。
【0008】
しかしながら、シミュレーションを行うクライアントの中には、更新前のデータ内容でシミュレーションを行いたいクライアントが存在することも考えられる。
このような場合、例えば、上記図15のデータ処理システム500では、クライアントC1のシミュレーション結果によって基のDB510の内容が更新されても、他のクライアントC2,C3,・・・のDBコピー510'(C2),510'(C3),・・・の内容は更新されないため、更新前のデータ内容でシミュレーションを行いたいクライアントにとっては都合がよい。
これに対して、上記図16のデータ処理システム600では、クライアントC1のシミュレーション結果によってコピーDB610'の内容が更新されると、他のクライアントC2,C3,・・・の全ては、その変更後のコピーDB610'を用いてのシミュレーションしか行うことができない。これは、更新前のデータ内容でシミュレーションを行いたいクライアントにとっては問題である。
【0009】
すなわち、シミュレーションを行うクライアントの中には、変更前のデータ内容(他のクライアントのシミュレーション結果を反映させないデータ内容)でシミュレーションを行いたいクライアント、変更後のデータ内容(他のクライアントのシミュレーション結果を反映させたデータ内容)でシミュレーションを行いたいクライアント、それらのシミュレーションを状況に応じて切り替えて行いたいクライアント、というような様々なクライアントが存在するが、従来では、全てのクライアントの要望を満足させるシミュレーションを、簡単な構成で実現することができなかった。
【0010】
そこで、本発明は、上記の欠点を除去するための成されたもので、全てのクライアントの要望を満足させる、試行錯誤的な計算や、データ更新がなされている中でのシミュレーション的な計算等を、簡単な構成で且つ効率的に実現できるようにすることを目的とする。
【0011】
【課題を解決するための手段】
斯かる目的下において、本発明のデータ処理装置は、複数のクライアントが識別性を有する複数のオブジェクトデータをアクセスして任意の処理を実行するためのデータ処理装置において、上記任意の処理にて対象となるオブジェクトデータの集合であって、クライアントの要求に基づいて生成され、クライアントが上記複数のオブジェクトデータを用いた上記任意の処理を実行するために必要なコンテキストを、クライアント毎に管理する第1の管理手段と、上記コンテキスト毎に、該オブジェクトデータ各々に対応するエンティティを管理する第2の管理手段と、上記クライアント毎のコンテキストの親子関係を管理する第3の管理手段と、アクセス要求のあったクライアントに対し、上記第1の管理手段による管理情報から該クライアントが現在使用しているコンテキストを識別し、該コンテキストと上記第2の管理手段による管理情報から該クライアントがアクセス対象としたオブジェクトデータに対応するエンティティを取得し、該取得したエンティティの内容に対してアクセスする処理を含むアクセス処理を行うアクセス手段とを備え、上記アクセス手段は、上記第2の管理手段による管理情報において上記対象オブジェクトデータに対応するエンティティが空である場合、上記第3の管理手段によるコンテキストの親子関係に基づいて、上記クライアントが現在使用しているコンテキストの親の関係にあるコンテキストを取得し、上記第2の管理手段による管理情報から該親の関係にあるコンテキストでのエンティティを取得して、該エンティティの内容に対してアクセス処理を行うことを特徴とする。
本発明のデータ処理システムは、複数のクライアントと、複数のオブジェクトデータが格納されたメモリとが、上記複数のクライアントが上記メモリ内のデータを用いて任意の処理を実行するためのデータ処理装置を介して接続可能になされたデータ処理システムであって、上記データ処理装置は、本発明のデータ処理装置の機能を有することを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、複数のクライアントが識別性を有する複数のオブジェクトデータをアクセスして任意の処理を実行するためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体において、上記任意の処理にて対象となるオブジェクトデータの集合であって、クライアントの要求に基づいて生成され、クライアントが上記複数のオブジェクトデータを用いた上記任意の処理を実行するために必要なコンテキストを、クライアント毎に管理する第1の管理手段と、上記コンテキスト毎に、該オブジェクトデータ各々に対応するエンティティを管理する第2の管理手段と、上記クライアント毎のコンテキストの、親子関係を管理する第3の管理手段と、アクセス要求のあったクライアントに対し、上記第1の管理手段による管理情報から該クライアントが現在使用しているコンテキストを識別し、該コンテキストと上記第2の管理手段による管理情報から該クライアントがアクセス対象としたオブジェクトデータに対応するエンティティを取得し、該取得したエンティティの内容に対してアクセスする処理を含むアクセス処理を行うアクセス手段としてコンピュータを機能させるコンピュータプログラムを記録し、上記アクセス手段は、上記第2の管理手段による管理情報において上記対象オブジェクトデータに対応するエンティティが空である場合、上記第3の管理手段によるコンテキストの親子関係に基づいて、上記クライアントが現在使用しているコンテキストの親の関係にあるコンテキストを取得し、上記第2の管理手段による管理情報から該親の関係にあるコンテキストでのエンティティを取得して、該エンティティの内容に対してアクセス処理を行うことを特徴とする。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【0028】
本発明は、例えば、図1に示すようなデータ処理システム100に適用される。
このデータ処理システム100は、上記図1に示すように、複数のクライアントC1,C2,C3,・・・が、データベース(DB)120内のデータを用いて、試行錯誤的な計算や、データ更新がなされている中でのシミュレーション的な計算等を行えるようになされている(ここでは説明の簡単のために、シミュレーションを行う場合を一例として挙げて説明する)。
そして、このときのクライアントC1,C2,C3,・・・のDB120へのアクセス管理は、データ処理装置110によって行われるようになされている。すなわち、クライアントC1,C2,C3,・・・のDB120へのアクセスは、データ処理装置110を介して行われる。
【0029】
データ処理装置110は、エンティティ管理部111、接続管理部112、及び処理プログラム(ここでは、シミュレーションプログラム)113を含んでおり、DB120内のデータ(オブジェクトデータ)から、データアクセス要求のあったクライアントに基づいた後述するコンテキストを構成し、これを管理するようになされている。
以下、このようなデータ処理装置110について具体的に説明する。
【0030】
まず、ここでのクライアントC1,C2,C3,・・・はそれぞれ、DB120をアクセスするもの、すなわちデータ処理装置110によるDB120内のオブジェクトデータの読み書きのサービスを受けるもの全てを含む。ここでは、例えば、パーソナルコンピュータ等の端末装置からなるものとする。
DB120には、例えば、図2に示すように、種々のオブジェクトデータA,B,C,・・・が存在するものとする。これらのオブジェクトデータA,B,C,・・・から、アクセス要求のあったクライアントに基づいたコンテキストが構成される。
【0031】
ここでの”コンテキスト”とは、ある条件に従ったデータの集合を意味する。例えば、クライアントC1が、あるシミュレーションを実行する際、そのシミュレーションにて対象となるオブジェクトデータの集合(クライアントC1にとってのオブジェクトデータの集合の”世界”)が、コンテキストである。
このため、接続管理部112は、シミュレーションするために接続要求がなされたクライアントのコンテキストをクライアント毎に管理し、エンティティ管理部111は、上記図2の”Tb”に示すようなテーブルにより、コンテキスト、後述するオブジェクト、及びエンティティの関係をクライアント毎に管理するようになされている。
【0032】
そこで、詳細は後述するが、上記図2に示すTbの状態でのクライアント毎のコンテキストの管理、及びこれによるクライアントでのシミュレーションの実行についての概要を説明すると、先ず最初に、DB120のオブジェクトデータA,B,C,・・・のコピーであるイニシャルエンティティa0,b0,c0,・・・が、コンテキスト#0(イニシャルコンテキスト)として定義される。
【0033】
次に、クライアントC1からの要求により、コンテキスト#1が生成される。したがって、クライアントC1は、コンテキスト#1にてシミュレーションを行うことになる。このシミュレーションでは、例えば、オブジェクトデータAの更新については、イニシャルエンティティa0のコピーであるエンティティa1に対して行われ、オブジェクトデータB,C,・・・の参照は、親の関係にあるイニシャルエンティティb0,c0,・・・に対して行われる。
尚、コンテキストを生成するとき、どのコンテキストを親とするか、指定して生成する。ここでは、コンテキスト#1は、コンテキスト#0を親として生成される。
【0034】
また、クライアントC1が、コンテキスト#1とは異なる環境での新たなシミュレーションを行いたい等の要求により、コンテキスト#2が生成される。これにより、クライアントC1は、コンテキスト#2でのシミュレーションをも行うことができる。
このシミュレーションでは、コンテキスト#2が、コンテキスト#1を親として生成されたならば、オブジェクトデータA,C,・・・の参照は、エンティティa1,c0,・・・となり、オブジェクトデータBの参照や更新については、イニシャルエンティティのコピーであるエンティティb2に対して行われる。また、コンテキスト#2が、コンテキスト#0を親として生成されたならば、オブジェクトデータA,C,・・・の参照は、イニシャルエンティティa0,c0,・・・となり、オブジェクトデータBの参照や更新については、エンティティb2に対して行われる。
【0035】
また、クライアントC2からの要求により、コンテキスト#0を親としてコンテキスト#3が生成される。したがって、クライアントC2は、コンテキスト#3にてシミュレーションを行うことになる。このシミュレーションでは、例えば、オブジェクトデータA及びBの参照や更新は、イニシャルエンティティa0及びb0のコピーであるエンティティa4及びb4に対して行われ、オブジェクトデータC,・・・の参照は、親の関係にあるイニシャルエンティティc0,・・・に対して行われる。このとき、エンティティa1(コンテキスト#1でのシミュレーションにて更新がなされたデータ)や、エンティティb2(コンテキスト#2でのシミュレーションにて更新がなされたデータ)の参照も可能なようになされている。
このように、各クライアントには、ある時点で参照しているコンテキストが必ず1つ存在する。また、コンテキストの中には、どのクライアントからも参照されていないものもあり得る。さらに、複数のクライアントが同じコンテキストを参照する場合もある。
【0036】
上述のような、それぞれのクライアントC1,C2,C3,・・・に対するコンテキストの生成や管理等のための処理は、例えば、図3及び図4のフローチャートにて示される。すなわち、データ管理装置110は、上記図3及び図4の処理を繰り返し実行することで、次のようにして、それぞれのクライアントC1,C2,C3,・・・に対するコンテキストの生成や管理等を実施する。
尚、ここでは説明の簡単のために、DB120内には、3つのオブジェクトデータA,B,Cが存在するものとする。また、3つのクライアントC1,C2,C3が、DB120内のオブジェクトデータA,B,Cをアクセスするものとする。
【0037】
(1)メイン処理:上記図3参照
【0038】
ステップS201,S202:
先ず、初期状態において、クライアントからの接続要求であるか否かを判別する(ステップS201)。この判別の結果、接続要求である場合、図5に示すように、基のオブジェクトデータA,B,Cのコピーであるエンティティa0,b0,c0の集合をコンテキストとするイニシャルコンテキスト#0を生成する(ステップS202)。その後、本処理終了となる。
一方、接続要求でない場合、次のステップS203へと進む。
尚、説明の簡単のために、上記図5から後述の説明にて用いる図13までの各図において、”親コンテキスト”の欄は省略する。
【0039】
ステップS203,S204:
クライアントからのコンテキストの生成要求であるか否かを判別する(ステップS203)。この判別の結果、コンテキスト生成要求である場合、例えば、クライアントC1から、新たなシミュレーションを実行したいこと等による新たなコンテキストの生成要求である場合、図6に示すように、イニシャルコンテキスト#0を親とするコンテキスト#1を生成する(ステップS204)。このとき、どのコンテキストを親とするか指定する。これにより、クライアントC1は、エンティティa0,b0,c0を参照しながらのシミュレーションが実行可能となる。その後、本処理終了となる。
一方、コンテキスト生成要求でない場合、次のステップS205へと進む。
【0040】
ステップS205,S206:
クライアントからのコンテキストの切換要求であるか否かを判別する(ステップS205)。この判別の結果、コンテキスト切換要求である場合、その要求元のクライアントの現在のコンテキストを、その要求により示されるコンテキストに切り換える(ステップS206)。
例えば、図7に示すように、コンテキスト#2にてシミュレーションを実行しているクライアントC2から、コンテキスト#1にてシミュレーションを実行しているクライアントC1の該コンテキスト#1に切り換える要求がなされた場合、コンテキスト#2をコンテキスト#1に切り換える。これにより、クライアントC2は、クライアントC1と同じ環境でのシミュレーションを実行することができる。このようなコンテキストの切り換え終了後、本処理終了となる。
一方、コンテキスト切換要求でない場合、次のステップS207へと進む。
【0041】
ステップS207,S208:
クライアントからのコンテキストのコピー要求であるか否かを判別する(ステップS207)。この判別の結果、コンテキストコピー要求である場合、その要求元のクライアントの現在のコンテキストの内容に対して、その要求により示されたコンテキストの内容をコピーする(ステップS208)。
例えば、図8(実線矢印参照)に示すように、コンテキスト#5にてシミュレーションを実行しようとしているクライアントC2から、コンテキスト#4の内容のコピー要求がなされた場合、エンティティa4のコピーであるエンティティa5、エンティティb4のコピーであるエンティティa5、及びイニシャルエンティティc0のコピーであるエンティティc5の集合をコンテキスト#5とする。これにより、例えば、コンテキスト#4でのシミュレーションにより、エンティティa4やエンティティb4が更新されても、コンテキスト#5では、更新前のデータ内容が保持されることになるため、コンテキスト#4でのシミュレーションの結果に影響されることなく、コンテキスト#5でのシミュレーションを実行することができる。また、コンテキスト#4でのシミュレーションでのある瞬間の状態からのシミュレーションを、コンテキスト#4でのシミュレーションと、コンテキスト#5でのシミュレーションとの異なるシミュレーション形態で実行することができる。このようなコンテキストの内容のコピー終了後、本処理終了となる。
一方、コンテキストコピー要求でない場合、次のステップS209へと進む。
【0042】
尚、ステップS208でのコンテキストコピー要求による処理では、例えば、上記図8(点線矢印参照)に示すように、コンテキスト#5の内容を、親の関係にあるコンテキスト#4の内容へコピーすること等も可能となっている。この場合、エンティティa5及びb5をエンティティa4及びb4へコピーすると共に、エンティティc5については、該エンティティc5のコピーをエンティティc4とする。
【0043】
ステップS209,S210:
クライアントからのコンテキストの廃棄要求であるか否かを判別する(ステップS209)。この判別の結果、コンテキスト廃棄要求である場合、その要求により指定されたコンテキストの内容を廃棄する(ステップS210)。
例えば、図9に示すように、クライアントC2から、現在のコンテキスト#5の廃棄要求がなされた場合、エンティティa5,b5,c5を破棄する。その後、コンテキスト#5を参照しているクライントがデータAをアクセスすると、コンテキスト#5の親がコンテキスト#1であれば、その親コンテキスト#1のエンティティa1を参照する。
また、上記の処理の他の処理として、コンテキスト自身を破棄することが可能であり、この場合には、コンテキスト#5自体は破棄されることになる。
このようなコンテキストの廃棄終了後、本処理終了となる。
一方、コンテキスト廃棄要求でない場合、次のステップS211へと進む。
【0044】
ステップS211,S212:
クライアントからのデータアクセス要求であるか否かを判別する(ステップS211)。この判別の結果、データアクセス要求である場合、詳細は後述する、その要求元のクライアントにて実行されているシミュレーションでのデータの読み書き(参照及び更新)のための処理を行う(ステップS212)。その後、本処理終了となる。
一方、データアクセス要求でない場合、本処理終了となる。
【0045】
(2)データアクセス処理(ステップS212):上記図4参照
【0046】
ステップS301:
先ず、データアクセス要求を発行したクライアントを認識する。
ステップS302:
次に、ステップS301にて認識したクライアントのコンテキスト(現在使用しているコンテキスト)を接続管理部112において、クライアント毎に管理されているコンテキストから認識する。
ステップS303:
次に、ステップS302にて認識したコンテキストにおいて、どのデータを対象としているか(オブジェクトデータA,B,Cの何れのデータを参照又は更新の対象としているか)を認識する。
ステップS304:
次に、ステップS303にて認識した対象オブジェクトデータに対応するエンティティを取得する。エンティティ管理部111において、コンテキスト、オブジェクト、及びエンティティの関係が管理されており(例えば図2の”Tb”)、ステップS302にて認識したコンテキストとステップS303で認識した対象としているオブジェクトデータからエンティティを取得することができる。ここでの”エンティティ”とは、例えば、図10に示すように、クライアントC1が、コンテキスト#2でのシミュレーションにおいて、オブジェクトデータCを参照(read)又は更新(write)の対象としている場合、図中斜線部分(#2,C)を意味する。以下、このようなエンティティを、「エンティティ(コンテキスト番号#x,対象オブジェクト)」で表す。
ステップS305:
そして、ステップS304にて取得したエンティティが空であるか否かを判別する。この判別の結果、空である場合にはステップS306からの処理を実行し、空でない場合にはステップS312からの処理を実行する。
【0047】
ステップS306:
例えば、ステップS304にて対象となったエンティティが、上記図10の斜線部に示すエンティティ(#2,C)であった場合、エンティティ(#2,C)は空であるため、先ず、その親の関係にあるエンティティ(#1,C)を参照する。
ステップS307:
次に、ステップS306にて参照の対象となったエンティティ(#1,C)が空であるか否かを判別する。上記図10では、エンティティ(#1,C)は空であるため、再びステップS306へ戻り、その親の関係にあるエンティティ(#0,C)を参照することになる。このエンティティ(#0,C)は、空でないため(エンティティc0が存在)、本ステップS307の判別によって、次のステップS308へと進む。
【0048】
ステップS308:
ステップS307での判別の結果、参照対象のエンティティが空でない場合(ここでは、エンティティ(#0,C)とする)、データアクセス要求の内容が「参照(read)」であるか「更新(write)」であるかを判別する。
【0049】
ステップS309:
ステップS308での判別の結果、readアクセス要求であった場合、ステップS306にて参照の対象となったエンティティ(#0,C)の内容(=エンティティc0)を読み出して、これを要求元のクライアントC1へと供給する。その後、本処理終了となる。
【0050】
ステップS310:
ステップS308での判別の結果、writeアクセス要求であった場合、図11に示すように、ステップS306にて参照の対象となった(#0,C)の内容(=エンティティc0)を、ステップS304にて取得したエンティティ(#2,C)へとコピーする。
ステップS311:
したがって、ステップS310にて生成されたコピーデータを、コンテキスト#2でのエンティティc2として、更新の対象とする。その後、本処理終了となる。
【0051】
ここで、ステップS310及びS311において、例えば、図12に示すように、クライアントC2にてコンテキスト#4によるシミュレーションが実行されており、オブジェクトデータAのwrite要求がなされた場合(このときエンティティ(#4,A)は空とする)、その親の関係にあるエンティティ(#1,A)の内容が、エンティティa4として、エンティティ(#4,A)へとコピーされることになる。このとき、コンテキスト#1のエンティティ(#1,A)に対しても、クライアントC1からwrite要求がなされていた場合、予め設定されている条件(クライアントC1でのシミュレーションの結果を他のクライアントに反映させるか否か等の条件)に従って、エンティティ(#1,A)の内容更新後、それをエンティティ(#4,A)へコピーする、或いは、エンティティ(#1,A)をエンティティ(#4,A)へコピーした後に、エンティティ(#1,A)の内容を更新する。
すなわち、ここでは、あるエンティティ(エンティティ(#1,A)等)の内容を更新する際、該エンティティを親とする子のエンティティ(エンティティ(#4,A)等)が存在するか否かを認識し、その子エンティティが、親エンティティの内容更新の影響を受けるモード(透過モード)であるか、親エンティティの内容更新の影響を受けないモード(非透過モード)であるのかを認識する。そして、子エンティティが透過モードである場合には、そのまま親エンティティの内容更新を行い、子エンティティが非透過モードである場合には、子エンティティに対して更新前の親エンティティ内容をコピーした後に、該親エンティティの内容更新を行う。その後、子エンティティの内容更新は、親エンティティの内容に影響しない。
これにより、それぞれのクライアントは、他のクライアントでのシミュレーションの影響を受けながらのシミュレーションの実行と、他のクライアントでのシミュレーションの影響を受けないシミュレーションの実行との、何れの形態でのシミュレーションをも実行可能となる。
【0052】
ステップS312:
一方、ステップS304にて取得したエンティティが空でない場合、上述したステップS308と同様に、readアクセス要求であるかwriteアクセス要求であるかを判別する。
【0053】
ステップS313:
ステップS312での判別の結果、readアクセス要求であった場合、ステップS304にて取得した空でないエンティティの内容を読み出して、これを要求元のクライアントC1へと供給する。
例えば、ステップS304にて対象となったエンティティが、図13に示すようなエンティティ(#4,B)であった場合、エンティティ(#4,B)は空でないため、この内容(=エンティティb4)を読み出す(参照)ことになる。
このような処理後、本処理終了となる。
【0054】
ステップS314:
ステップS312での判別の結果、writeアクセス要求であった場合、ステップS3にて取得した空でないエンティティの内容を、更新の対象とする。
例えば、上記図13に示したように、ステップS304にて対象となったエンティティがエンティティ(#4,B)であった場合、この内容(=エンティティb4)を更新する。このとき、上述したステップS311と同様に、エンティティ(#4,B)を親とする子のエンティティが存在するか否かを認識し、その子エンティティが透過モードであるか、非透過モードであるのかを認識し、そして、子エンティティが透過モードである場合には、そのままエンティティ(#4,B)の内容更新を行い、子エンティティが非透過モードである場合には、子エンティティに対して更新前のエンティティ(#4,B)の内容(=エンティティb4)をコピーした後に、エンティティ(#4,B)の内容更新を行う。
このような処理後、本処理終了となる。
【0055】
上述のように、本実施の形態では、シミュレーションに使用されているコンテキスト、オブジェクトデータ、エンティティ、及びコンテキストの関係、コンテキストのツリー関係(親子関係)を、それぞれクライアント毎に管理するように構成したので、他のクライアントのシミュレーション結果を反映させないデータ内容でシミュレーションを行いたいクライアント、他のクライアントのシミュレーション結果を反映させたデータ内容でシミュレーションを行いたいクライアント、それらのシミュレーションを状況に応じて切り替えて行いたいクライアント、というような様々なクライアントの要望を同時に満足させたシミュレーションが実行可能となる。すなわち、それぞれのクライアントが、自分専用のデータベースにアクセスしているかのように、並行してシミュレーションを実行することができ、また、コンテキスト切換要求を発行することで、他のクライアントでのシミュレーションと協調したシミュレーションも実行すること等ができる。
また、クライアント毎に、現在使用されているコンテキストを認識するように構成したので、例えば、あるクライアントがシミュレーション結果を出力(プリント出力や表示出力等)したい場合、該クライアントは、現在使用しているコンテキストを意識することなく、シミュレーション結果の出力を指示するのみで(出力コマンドの入力等)、シミュレーション結果を出力させることができる。
また、シミュレーションの基となるDB120のコピーや、シミュレーションプログラム113は、それぞれ1つの構成としているため、メモリを節約することができると共に、システム構成を簡略化することができる。
【0056】
尚、上述した実施の形態において、上記図2では、クライアント毎のコンテキストの管理を説明するための一例として1つのテーブルを示したが、これに限られることはなく、例えば、図14に示すような、クライアントが現在どのコンテキストを使用しているかを示すクライアント・コンテキスト対応テーブルと、コンテキストとそれに対応するオブジェクトのエンティティを示すコンテキスト・エンティティ対応テーブルとの2つのテーブルに分けて設ける構成としてもよい。
【0057】
また、本発明の目的は、上述した実施の形態のホスト及び端末の機能を実現するソフトウェアのプログラムコードを記憶した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムコードを読みだして実行することによっても、達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラムコード自体が本実施の形態の機能を実現することとなり、そのプログラムコードを記憶した記録媒体は本発明を構成することとなる。
プログラムコードを供給するための記録媒体としては、ROM、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード等を用いることができる。
また、コンピュータが読みだしたプログラムコードを実行することにより、本実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって本実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって本実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0058】
【発明の効果】
以上説明したように本発明では、それぞれのクライアント(オブジェクトデータへアクセスするもの等)にて実行される任意の処理(試行錯誤的な計算や、データ更新がなされている中でのシミュレーション的な計算等)の対象となるオブジェクトデータの集合(クライアントにとってのオブジェクトデータの集合の”世界”であるコンテキスト)を、クライアント毎に管理する。また、コンテキスト毎に、それを構成するオブジェクトデータ、及びそのオブジェクトデータに対応するエンティティの関係を管理する。さらに、クライアント毎に管理されたコンテキストの親子関係(コンテキストツリー)を管理する。そして、これらの管理情報から、アクセス要求のあったクライアントに対応するエンティティを取得して、そのエンティティに対してアクセス処理を行う。
【0059】
このような構成により、それぞれのクライアントは、自分専用のオブジェクトデータにアクセスしているかのように、並行して任意の処理を実行することができる。また、例えば、あるクライアントがシミュレーション結果を出力(プリント出力や表示出力等)したい場合、該クライアントは、現在使用しているコンテキストを意識することなく、シミュレーション結果の出力を指示するのみで(出力コマンドの入力等)、シミュレーション結果を出力させることができる。さらに、クライアント毎に、オブジェクトデータや任意の処理を実行するためのプログラム等を設ける必要がないため、メモリを有効に利用することができると共に、装置或いはシステム構成を簡略化することができる。
【0060】
また、クライアントからの要求に基づいて、コンテキストを生成するように構成すれば、クライアントは、様々な形態での任意の処理を実行することができる。
また、アクセス対象のエンティティが存在しない場合(空である場合)、その親の関係にあるエンティティに対してアクセス処理を行うように構成すれば、エンティティを効率良く管理することができる。
また、コンテキスト間で、エンティティのコピーを可能とするように構成すれば、他のコンテキストでの任意の処理の結果に影響されることのない処理を実行することができる。また、他のコンテキストでの任意の処理でのある瞬間の状態からの処理を、異なる形態で実行することができる。
また、コンテキストの切換を可能とするように構成すれば、他のクライアントでの任意の処理と協調した処理を実行することができる。
【0061】
よって、本発明によれば、それぞれのクライアントの要望を満足させる、試行錯誤的な計算や、データ更新がなされている中でのシミュレーション的な計算等を、簡単な構成で且つ効率的に実現することができる。
【図面の簡単な説明】
【図1】本発明を適用したデータ処理システムの構成を示すブロック図である。
【図2】上記データ処理システムでのクライアント毎のコンテキストの管理を説明するための図である。
【図3】上記データ処理システムのメイン処理を説明するためのフローチャートである。
【図4】上記メイン処理のデータアクセス処理を説明するためのフローチャートである。
【図5】上記メイン処理において、接続要求時の処理を説明するための図である。
【図6】上記メイン処理において、コンテキスト生成要求時の処理を説明するための図である。
【図7】上記メイン処理において、コンテキスト切換要求時の処理を説明するための図である。
【図8】上記メイン処理において、コンテキストコピー要求時の処理を説明するための図である。
【図9】上記メイン処理において、コンテキスト廃棄要求時の処理を説明するための図である。
【図10】上記データアクセス処理において、空のエンティティに対する参照(read)処理を説明するための図である。
【図11】上記データアクセス処理において、空のエンティティに対する更新(write)処理を説明するための図である。
【図12】上記更新(write)処理の詳細を説明するための図である。
【図13】上記データアクセス処理において、空でないエンティティに対する参照(read)処理及び更新(write)処理を説明するための図である。
【図14】上記コンテキストの管理の他の構成例を説明するための図である。
【図15】従来のデータ処理システムの例1の構成を示すブロック図である。
【図16】従来のデータ処理システムの例2の構成を示すブロック図である。
【符号の説明】
100 データ処理システム
110 データ処理装置
111 エンティティ管理部
112 接続管理部112
113 処理プログラム
120 データベース
C1,C2,C3,・・・ クライアント
[0001]
BACKGROUND OF THE INVENTION
  The present invention is used for trial and error calculations, simulation calculations while data is being updated, and the like.Data processing apparatus, data processing system, and computer-readable recording mediumIt is about.
[0002]
[Prior art]
Traditionally, trial-and-error calculations and simulation-based calculations while data is being updated are used in business relations such as finance and market risk assessment processing, and in industry relations such as logistics, distribution, and process control. Is often used in simulations and planning.
[0003]
However, for example, when many clients (users) perform calculations and simulations as described above using data in a database (DB) in which data is frequently updated (here, a simple explanation) Therefore, in order to ensure the consistency of the data in the DB, other clients can use other data while using the data. The client cannot use the data.
[0004]
Therefore, in order to solve the above problem, for example, a data processing system 500 as shown in FIG. 15 has been proposed.
As shown in FIG. 15, the data processing system 500 performs a simulation of data copy (DB copy) 510 ′ (C1), 510 ′ (C2), 510 ′ (C3),. The processing programs (simulation programs) 520 (C1), 520 (C2), 520 (C3),... Are provided for the clients C1, C2, C3,. , DB copies 510 ′ (C1), 510 ′ (C2), 510 ′ (C3),...
With such a configuration, each client C1, C2, C3,... Can freely perform simulation using its own DB copy regardless of whether other clients are currently performing simulation. Can do. In addition, various simulations can be performed in parallel.
[0005]
[Problems to be solved by the invention]
However, in the data processing system 500 of FIG. 15 described above, the processing programs 520 (C1) and 520 (C2) together with the DB copies 510 ′ (C1), 510 ′ (C2), 510 ′ (C3),. , 520 (C3),... Are provided for each of the clients C1, C2, C3,... That perform the simulation, so that much memory is required and the system configuration becomes complicated. Furthermore, there was a problem that its management and maintenance became difficult.
[0006]
In addition, since each client C1, C2, C3,... Is configured to perform a simulation using its own DB copy, there are cases where the simulation is performed with different data contents.
For example, it is assumed that the simulation is completed at the client C1, and the contents of the base DB 510 are updated with the simulation result in order to transmit the result to other clients. At this time, the other clients C2, C3,... Use their own DB copies 510 ′ (C2), 510 ′ (C3),..., That is, use the contents of the DB 510 before update. A simulation will be performed.
[0007]
Therefore, in order to solve the problem in the data processing system 500 of FIG. 15, for example, a data processing system 600 as shown in FIG. 16 has been proposed.
As shown in FIG. 15, the data processing system 600 has a configuration in which one copy (DB copy) 610 of data in the DB 610 and one processing program (simulation program) 620 for performing simulation are provided. The C1, C2, C3,... Share the DB copy 610 and can perform simulations.
With such a configuration, each of C1, C2, C3,... Can perform a simulation with the same data contents without requiring a large amount of memory.
[0008]
However, it is conceivable that among clients that perform simulation, there is a client that wants to perform simulation with data contents before update.
In such a case, for example, in the data processing system 500 of FIG. 15, even if the contents of the base DB 510 are updated by the simulation result of the client C1, the DB copy 510 ′ () of the other clients C2, C3,. Since the contents of C2), 510 ′ (C3),... Are not updated, it is convenient for the client who wants to perform simulation with the data contents before the update.
On the other hand, in the data processing system 600 of FIG. 16, when the contents of the copy DB 610 ′ are updated by the simulation result of the client C1, all of the other clients C2, C3,. Only a simulation using the copy DB 610 ′ can be performed. This is a problem for a client who wants to perform simulation with the data contents before update.
[0009]
In other words, among the clients that perform the simulation, the client that wants to perform the simulation with the data content before the change (data content that does not reflect the simulation results of other clients), the data content after the change (the simulation results of other clients are reflected) There are various clients, such as clients who want to perform simulation with the data content) and clients who want to switch those simulations according to the situation. Conventionally, simulations that satisfy the demands of all clients are performed. , Could not be realized with a simple configuration.
[0010]
  Therefore, the present invention is made to eliminate the above-mentioned drawbacks, and satisfies trials and errors that satisfy the needs of all clients, simulation calculations while data is being updated, etc. Can be realized efficiently with a simple configuration.To doFor the purpose.
[0011]
[Means for Solving the Problems]
  Under such purpose,The data processing apparatus of the present inventionIn a data processing apparatus for a plurality of clients to access a plurality of object data having distinctiveness and execute arbitrary processing, it is a set of object data to be processed in the above arbitrary processing, and the client requests Generated based onThe clientExecute the arbitrary process using the plurality of object dataNecessary forA first management means for managing a context for each client; a second management means for managing an entity corresponding to each object data for each context; and a context for each client.,Third management means for managing the parent-child relationship and the client that requested the accessOn the other hand, from the management information by the first management meansThe context that the client is currently usingAnd the object data to be accessed by the client from the context and the management information by the second management means.Get the corresponding entityAnd access to the contents of the acquired entityAccess means for performing access processing including processing,When the entity corresponding to the target object data is empty in the management information by the second management unit, the access unit is currently used by the client based on the parent-child relationship of the context by the third management unit. A context in the context of the parent of the current context, acquire an entity in the context in the context of the parent from the management information by the second management means, and perform access processing on the contents of the entityIt is characterized by that.
  A data processing system according to the present invention includes a data processing apparatus for a plurality of clients and a memory in which a plurality of object data is stored, for the plurality of clients to execute arbitrary processing using data in the memory. The data processing system is configured to be connectable via the data processing device, and the data processing device has a function of the data processing device of the present invention.
  The computer-readable recording medium according to the present invention is a computer-readable recording medium in which a computer program for allowing a plurality of clients to access a plurality of object data having distinctiveness and execute arbitrary processing is recorded. A set of object data to be processed in the above process, and is generated on the basis of a client request, and a context necessary for the client to execute the arbitrary process using the plurality of object data is determined for each client. A first management unit that manages each entity, a second management unit that manages an entity corresponding to each of the object data for each context, and a third management unit that manages a parent-child relationship of the context for each client To the client that requested access Then, the context currently used by the client is identified from the management information by the first management means, and the object data to be accessed by the client is managed from the context and the management information by the second management means. A computer program that causes a computer to function as an access unit that performs an access process including a process of acquiring an entity and accessing the content of the acquired entity is recorded, and the access unit includes management information by the second management unit If the entity corresponding to the target object data is empty, based on the parent-child relationship of the context by the third management means, obtain a context that is in the context of the parent of the context that the client is currently using, Second management means It acquires the entity of the management information in the context of the relationship of the parent with, and performs access processing for the contents of the entity.
[0027]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0028]
The present invention is applied to, for example, a data processing system 100 as shown in FIG.
As shown in FIG. 1, the data processing system 100 allows a plurality of clients C1, C2, C3,... To use trial and error calculations and data updates using data in the database (DB) 120. In this case, a simulation calculation or the like can be performed (in this case, for the sake of simplicity of explanation, a case where simulation is performed will be described as an example).
The access management of the clients C1, C2, C3,... To the DB 120 at this time is performed by the data processing device 110. That is, the clients C1, C2, C3,... Access the DB 120 through the data processing device 110.
[0029]
The data processing device 110 includes an entity management unit 111, a connection management unit 112, and a processing program (in this case, a simulation program) 113. From the data (object data) in the DB 120 to the client that requested the data access. Based on the later-described context, it is configured to manage this.
Hereinafter, the data processing apparatus 110 will be described in detail.
[0030]
First, each of the clients C1, C2, C3,... Here includes all that access the DB 120, that is, all that receive a service for reading / writing object data in the DB 120 by the data processing apparatus 110. Here, for example, it is assumed to be composed of a terminal device such as a personal computer.
Assume that various object data A, B, C,... Exist in the DB 120 as shown in FIG. From these object data A, B, C,..., A context based on the client that has requested access is constructed.
[0031]
Here, “context” means a set of data according to a certain condition. For example, when the client C1 executes a certain simulation, a set of object data (a “world” of a set of object data for the client C1) that is a target of the simulation is a context.
Therefore, the connection management unit 112 manages the client context for which a connection request is made for simulation, for each client, and the entity management unit 111 uses the table as shown in “Tb” in FIG. The relationship between objects and entities described later is managed for each client.
[0032]
Therefore, although the details will be described later, the outline of the context management for each client in the state of Tb shown in FIG. 2 and the execution of the simulation by the client will be described. First, the object data A of the DB 120 , B, C,... Are defined as context # 0 (initial context).
[0033]
Next, context # 1 is generated by a request from the client C1. Therefore, the client C1 performs simulation in the context # 1. In this simulation, for example, the update of the object data A is performed on the entity a1 which is a copy of the initial entity a0, and the reference of the object data B, C,. , C0,...
When generating a context, it is generated by designating which context is the parent. Here, context # 1 is generated with context # 0 as the parent.
[0034]
In addition, the context # 2 is generated when the client C1 requests to perform a new simulation in an environment different from the context # 1. Thereby, the client C1 can also perform a simulation in the context # 2.
In this simulation, if context # 2 is generated with context # 1 as a parent, references to object data A, C,... Become entities a1, c0,. The update is performed on the entity b2 that is a copy of the initial entity. If the context # 2 is generated with the context # 0 as a parent, the reference to the object data A, C,... Becomes the initial entity a0, c0,. Is performed on the entity b2.
[0035]
Further, in response to a request from the client C2, the context # 3 is generated with the context # 0 as a parent. Therefore, the client C2 performs simulation in the context # 3. In this simulation, for example, the reference and update of the object data A and B are performed on the entities a4 and b4 which are copies of the initial entities a0 and b0, and the reference of the object data C,. Are performed on the initial entities c0,. At this time, the entity a1 (data updated in the simulation in the context # 1) and the entity b2 (data updated in the simulation in the context # 2) can be referred to.
In this way, each client always has one context that is referenced at a certain time. Some contexts may not be referenced by any client. In addition, multiple clients may reference the same context.
[0036]
The processing for generating and managing the context for each of the clients C1, C2, C3,... As described above is shown in the flowcharts of FIGS. That is, the data management device 110 repeatedly executes the processes shown in FIGS. 3 and 4 to generate and manage contexts for the clients C1, C2, C3,. To do.
Here, for simplicity of explanation, it is assumed that three object data A, B, and C exist in the DB 120. Further, it is assumed that three clients C1, C2, and C3 access object data A, B, and C in the DB 120.
[0037]
(1) Main processing: See FIG. 3 above
[0038]
Steps S201 and S202:
First, in the initial state, it is determined whether or not it is a connection request from a client (step S201). If the result of this determination is a connection request, as shown in FIG. 5, an initial context # 0 is generated with a set of entities a0, b0, c0, which are copies of the original object data A, B, C as contexts. (Step S202). Thereafter, this process ends.
On the other hand, if it is not a connection request, the process proceeds to the next step S203.
For the sake of simplicity of explanation, the “parent context” column is omitted in each of the drawings from FIG. 5 to FIG. 13 used in the following description.
[0039]
Steps S203 and S204:
It is determined whether or not the request is a context generation request from the client (step S203). As a result of this determination, if it is a context generation request, for example, if it is a request for generating a new context from the client C1 for executing a new simulation, the initial context # 0 is set as the parent context as shown in FIG. Context # 1 is generated (step S204). At this time, specify which context is the parent. As a result, the client C1 can execute a simulation while referring to the entities a0, b0, and c0. Thereafter, this process ends.
On the other hand, if it is not a context generation request, the process proceeds to the next step S205.
[0040]
Steps S205 and S206:
It is determined whether the request is a context switching request from the client (step S205). If the result of this determination is a context switching request, the current context of the requesting client is switched to the context indicated by the request (step S206).
For example, as illustrated in FIG. 7, when a request is made to switch from the client C2 executing the simulation in the context # 2 to the context # 1 of the client C1 executing the simulation in the context # 1. Switch context # 2 to context # 1. As a result, the client C2 can execute a simulation in the same environment as the client C1. After such context switching is completed, this processing is completed.
On the other hand, if it is not a context switching request, the process proceeds to the next step S207.
[0041]
Steps S207 and S208:
It is determined whether the request is a context copy request from the client (step S207). If it is determined that the request is a context copy request, the content of the context indicated by the request is copied to the current context content of the requesting client (step S208).
For example, as shown in FIG. 8 (see solid line arrow), when a request for copying the content of context # 4 is made from the client C2 that is going to execute the simulation in context # 5, entity a5 that is a copy of entity a4 Assume that a set of an entity a5 that is a copy of the entity b4 and an entity c5 that is a copy of the initial entity c0 is a context # 5. Thereby, for example, even if the entity a4 and the entity b4 are updated by the simulation in the context # 4, the data content before the update is held in the context # 5. The simulation in context # 5 can be executed without being affected by the result. In addition, a simulation from a certain moment in the simulation in the context # 4 can be executed in a different simulation form between the simulation in the context # 4 and the simulation in the context # 5. After the copying of the contents of the context is completed, this processing ends.
On the other hand, if it is not a context copy request, the process proceeds to the next step S209.
[0042]
In the process by the context copy request in step S208, for example, as shown in FIG. 8 (see the dotted arrow), the content of context # 5 is copied to the content of context # 4 in the parent relationship. Is also possible. In this case, the entities a5 and b5 are copied to the entities a4 and b4, and for the entity c5, the copy of the entity c5 is set as the entity c4.
[0043]
Steps S209 and S210:
It is determined whether or not the request is a context discard request from the client (step S209). If it is determined that the request is a context discard request, the contents of the context designated by the request are discarded (step S210).
For example, as shown in FIG. 9, when a request for discarding the current context # 5 is made from the client C2, the entities a5, b5, and c5 are discarded. Thereafter, when a client that refers to the context # 5 accesses the data A, if the parent of the context # 5 is the context # 1, the entity a1 of the parent context # 1 is referred to.
As another process of the above process, the context itself can be discarded. In this case, the context # 5 itself is discarded.
After discarding such a context, the process ends.
On the other hand, if it is not a context discard request, the process proceeds to the next step S211.
[0044]
Steps S211, S212:
It is determined whether it is a data access request from the client (step S211). If the result of this determination is a data access request, processing for reading / writing (referring to and updating) data in a simulation executed by the requesting client, which will be described in detail later, is performed (step S212). Thereafter, this process ends.
On the other hand, if the request is not a data access request, this processing ends.
[0045]
(2) Data access processing (step S212): See FIG. 4 above
[0046]
  Step S301:
  First, the client that issued the data access request is recognized.
  Step S302:
  Next, the client context (currently used context) recognized in step S301 is displayed.From the context managed for each client in the connection management unit 112recognize.
  Step S303:
  Next, in the context recognized in step S302, it is recognized which data is targeted (which data of object data A, B, and C is targeted for reference or update).
  Step S304:
  Next, an entity corresponding to the target object data recognized in step S303 is acquired.In the entity management unit 111, the relationship between the context, the object, and the entity is managed (for example, “Tb” in FIG. 2), and the entity is determined from the context recognized in step S302 and the target object data recognized in step S303. Can be acquired.The “entity” here is, for example, as shown in FIG. 10 when the client C1 refers to the object data C in the simulation in the context # 2 as a reference (read) or update (write) target. This means the middle hatched part (# 2, C). Hereinafter, such an entity is represented by “entity (context number #x, target object)”.
  Step S305:
  And it is discriminate | determined whether the entity acquired in step S304 is empty. As a result of the determination, if it is empty, the processing from step S306 is executed, and if it is not empty, the processing from step S312 is executed.
[0047]
Step S306:
For example, if the target entity in step S304 is the entity (# 2, C) indicated by the shaded area in FIG. 10 above, the entity (# 2, C) is empty. Entity (# 1, C) in the relationship of
Step S307:
Next, it is determined whether or not the entity (# 1, C) to be referred to is empty in step S306. In FIG. 10, since the entity (# 1, C) is empty, the process returns to step S306 again, and the entity (# 0, C) in the parent relationship is referred to. Since this entity (# 0, C) is not empty (entity c0 exists), the process proceeds to the next step S308 according to the determination in step S307.
[0048]
Step S308:
As a result of the determination in step S307, if the reference target entity is not empty (here, entity (# 0, C)), the content of the data access request is “reference” (read) or “update (write)”. ) ”.
[0049]
Step S309:
If the result of determination in step S308 is a read access request, the content (= entity c0) of the entity (# 0, C) to be referenced is read in step S306, and this is read out by the requesting client. Supply to C1. Thereafter, this process ends.
[0050]
Step S310:
If the result of determination in step S308 is a write access request, as shown in FIG. 11, the contents (= entity c0) of (# 0, C) to be referred to in step S306 are changed to step S304. Copy to the entity (# 2, C) acquired in step # 2.
Step S311:
Therefore, the copy data generated in step S310 is set as an update target as the entity c2 in the context # 2. Thereafter, this process ends.
[0051]
Here, in steps S310 and S311, for example, as shown in FIG. 12, when a simulation is executed by the context # 4 in the client C2 and a write request for the object data A is made (at this time, the entity (# 4 , A) is empty), and the content of the entity (# 1, A) in the parent relationship is copied to the entity (# 4, A) as the entity a4. At this time, if a write request is made from the client C1 to the entity (# 1, A) of the context # 1, the preset condition (the simulation result in the client C1 is reflected to other clients). The content of the entity (# 1, A) is updated to the entity (# 4, A) or the entity (# 1, A) is copied to the entity (# 4, A). After copying to A), the content of entity (# 1, A) is updated.
That is, here, when updating the contents of a certain entity (entity (# 1, A), etc.), it is determined whether or not there is a child entity (entity (# 4, A), etc.) whose parent is the entity. Recognizing and recognizing whether the child entity is a mode affected by the content update of the parent entity (transparent mode) or a mode not affected by the content update of the parent entity (non-transparent mode). If the child entity is in transparent mode, update the content of the parent entity as it is. If the child entity is in non-transparent mode, after copying the parent entity content before update to the child entity, Update the contents of the parent entity. Thereafter, the content update of the child entity does not affect the content of the parent entity.
As a result, each client can perform simulation in either form of simulation execution while being affected by simulations in other clients, and simulation execution not affected by simulations in other clients. It becomes executable.
[0052]
Step S312:
On the other hand, if the entity acquired in step S304 is not empty, it is determined whether it is a read access request or a write access request, as in step S308 described above.
[0053]
Step S313:
If the result of determination in step S312 is a read access request, the content of the non-empty entity acquired in step S304 is read and supplied to the requesting client C1.
For example, if the target entity in step S304 is an entity (# 4, B) as shown in FIG. 13, the entity (# 4, B) is not empty, so this content (= entity b4) Is read (referenced).
After such processing, this processing ends.
[0054]
Step S314:
If the result of determination in step S312 is a write access request, the contents of the non-empty entity acquired in step S3 are subject to update.
For example, as shown in FIG. 13 above, when the target entity in step S304 is an entity (# 4, B), this content (= entity b4) is updated. At this time, similarly to step S311 described above, it is recognized whether there is a child entity whose parent is the entity (# 4, B), and whether the child entity is in the transparent mode or the non-transparent mode. If the child entity is in the transparent mode, the content of the entity (# 4, B) is updated as it is. If the child entity is in the non-transparent mode, the update is performed on the child entity before the update. After the content (= entity b4) of the entity (# 4, B) is copied, the content of the entity (# 4, B) is updated.
After such processing, this processing ends.
[0055]
As described above, in this embodiment, the context, object data, entity, context relationship, and context tree relationship (parent-child relationship) used for simulation are managed for each client. Clients who want to simulate with data contents that do not reflect the simulation results of other clients, clients who want to simulate with data contents that reflect the simulation results of other clients, and want to switch between these simulations according to the situation It is possible to execute a simulation satisfying various client requests such as a client at the same time. In other words, each client can execute a simulation in parallel as if it is accessing its own database, and by issuing a context switch request, it can collaborate with simulations in other clients. The simulation can also be executed.
In addition, since each client recognizes a context that is currently used, for example, when a client wants to output a simulation result (print output, display output, etc.), the client is currently using it. The simulation result can be output only by instructing the output of the simulation result (input of an output command or the like) without being conscious of the context.
In addition, since the copy of the DB 120 and the simulation program 113, which are the basis of the simulation, have a single configuration, it is possible to save memory and simplify the system configuration.
[0056]
In the above-described embodiment, FIG. 2 shows one table as an example for explaining context management for each client. However, the present invention is not limited to this. For example, as shown in FIG. In addition, a configuration may be provided in which the client context correspondence table indicating which context is currently used by the client and the context / entity correspondence table indicating the context and the entity of the object corresponding thereto are separately provided.
[0057]
Another object of the present invention is to supply a recording medium storing software program codes for realizing the functions of the host and terminal according to the above-described embodiment to a system or apparatus, and the computer (or CPU or CPU) of the system or apparatus. Needless to say, this can also be achieved by the MPU) reading and executing the program code stored in the recording medium.
In this case, the program code itself read from the recording medium realizes the function of the present embodiment, and the recording medium storing the program code constitutes the present invention.
As a recording medium for supplying the program code, a ROM, flexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, or the like can be used.
Further, by executing the program code read by the computer, not only the functions of the present embodiment are realized, but also an OS or the like running on the computer based on an instruction of the program code performs actual processing. It goes without saying that a case where the function of this embodiment is realized by performing part or all of the above and the processing thereof is included.
Further, after the program code read from the recording medium is written to the memory provided in the extension function board inserted in the computer or the function extension unit connected to the computer, the function extension is performed based on the instruction of the program code. It goes without saying that the CPU or the like provided in the board or function expansion unit performs part or all of the actual processing, and the functions of the present embodiment are realized by the processing.
[0058]
【The invention's effect】
As described above, according to the present invention, arbitrary processing (trial and error calculation performed by each client (such as one that accesses object data) or simulation calculation while data is updated) is executed. Etc.) is managed for each client (a context that is the “world” of the set of object data for the client). For each context, the object data constituting the context and the relationship between the entities corresponding to the object data are managed. Furthermore, the parent-child relationship (context tree) of the context managed for each client is managed. Then, an entity corresponding to the client that has requested access is acquired from these management information, and an access process is performed on the entity.
[0059]
With such a configuration, each client can execute arbitrary processing in parallel as if it is accessing its own object data. Also, for example, when a client wants to output a simulation result (print output, display output, etc.), the client simply instructs to output the simulation result without being aware of the context currently used (output command). The simulation result can be output. Furthermore, since it is not necessary to provide object data, a program for executing an arbitrary process, or the like for each client, the memory can be used effectively and the apparatus or system configuration can be simplified.
[0060]
Moreover, if it is configured to generate a context based on a request from the client, the client can execute arbitrary processing in various forms.
Further, when an entity to be accessed does not exist (when it is empty), the entity can be managed efficiently if it is configured to perform the access process on the entity having the parent relationship.
Further, if the entity can be copied between contexts, it is possible to execute a process that is not affected by the result of an arbitrary process in another context. Moreover, the process from the state of the moment in the arbitrary processes in another context can be performed in a different form.
Moreover, if it is configured to enable context switching, it is possible to execute a process in cooperation with an arbitrary process in another client.
[0061]
Therefore, according to the present invention, trial-and-error calculation that satisfies each client's request, simulation-like calculation while data is updated, and the like are efficiently realized with a simple configuration. be able to.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a data processing system to which the present invention is applied.
FIG. 2 is a view for explaining context management for each client in the data processing system;
FIG. 3 is a flowchart for explaining main processing of the data processing system;
FIG. 4 is a flowchart for explaining data access processing of the main processing;
FIG. 5 is a diagram for explaining processing at the time of a connection request in the main processing.
FIG. 6 is a diagram for explaining processing at the time of context generation request in the main processing.
FIG. 7 is a diagram for explaining a process when a context switching request is made in the main process.
FIG. 8 is a diagram for explaining processing at the time of context copy request in the main processing;
FIG. 9 is a diagram for explaining a process at the time of a context discard request in the main process.
FIG. 10 is a diagram for explaining a read process for an empty entity in the data access process;
FIG. 11 is a diagram for explaining an update process for an empty entity in the data access process;
FIG. 12 is a diagram for explaining the details of the update process.
FIG. 13 is a diagram for explaining reference (read) processing and update (write) processing for a non-empty entity in the data access processing;
FIG. 14 is a diagram for explaining another configuration example of the context management;
FIG. 15 is a block diagram showing a configuration of Example 1 of a conventional data processing system.
FIG. 16 is a block diagram showing a configuration of Example 2 of a conventional data processing system.
[Explanation of symbols]
100 Data processing system
110 Data processing device
111 Entity Management Department
112 Connection management unit 112
113 Processing program
120 database
C1, C2, C3 ... Client

Claims (7)

複数のクライアントが識別性を有する複数のオブジェクトデータをアクセスして任意の処理を実行するためのデータ処理装置において、
上記任意の処理にて対象となるオブジェクトデータの集合であって、クライアントの要求に基づいて生成され、クライアントが上記複数のオブジェクトデータを用いた上記任意の処理を実行するために必要なコンテキストを、クライアント毎に管理する第1の管理手段と、
上記コンテキスト毎に、該オブジェクトデータ各々に対応するエンティティを管理する第2の管理手段と、
上記クライアント毎のコンテキストの親子関係を管理する第3の管理手段と、
アクセス要求のあったクライアントに対し、上記第1の管理手段による管理情報から該クライアントが現在使用しているコンテキストを識別し、該コンテキストと上記第2の管理手段による管理情報から該クライアントがアクセス対象としたオブジェクトデータに対応するエンティティを取得し、該取得したエンティティの内容に対してアクセスする処理を含むアクセス処理を行うアクセス手段とを備え、
上記アクセス手段は、上記第2の管理手段による管理情報において上記対象オブジェクトデータに対応するエンティティが空である場合、上記第3の管理手段によるコンテキストの親子関係に基づいて、上記クライアントが現在使用しているコンテキストの親の関係にあるコンテキストを取得し、上記第2の管理手段による管理情報から該親の関係にあるコンテキストでのエンティティを取得して、該エンティティの内容に対してアクセス処理を行うことを特徴とするデータ処理装置。
In a data processing apparatus for a plurality of clients to access a plurality of object data having distinctiveness and execute arbitrary processing,
A set of object data to be processed in the arbitrary process, which is generated based on a client request, and a context necessary for the client to execute the arbitrary process using the plurality of object data, A first management means for managing each client;
Second management means for managing an entity corresponding to each of the object data for each context;
Third managing means for managing the context for each said client, a parent-child relationship,
For the client that has made an access request, the context currently used by the client is identified from the management information by the first management means, and the client is the access target from the management information by the context and the second management means An access unit that acquires an entity corresponding to the object data and performs an access process including a process of accessing the content of the acquired entity ,
When the entity corresponding to the target object data is empty in the management information by the second management unit, the access unit is currently used by the client based on the parent-child relationship of the context by the third management unit. A context in the context of the parent of the current context, acquire an entity in the context in the context of the parent from the management information by the second management means, and perform access processing on the contents of the entity A data processing apparatus.
上記アクセス手段は、上記第2の管理手段による管理情報において上記対象オブジェクトデータに対応するエンティティが空であり、アクセス要求の内容が参照である場合、上記第3の管理手段によるコンテキストの親子関係に基づいて、上記クライアントが現在使用しているコンテキストの親の関係にあるコンテキストを取得し、上記第2の管理手段による管理情報から該親の関係にあるコンテキストでのエンティティの内容を読み出して、これをアクセス要求のあったクライアントへ供給することを特徴とする請求項1記載のデータ処理装置。When the entity corresponding to the target object data is empty in the management information by the second management unit and the content of the access request is a reference, the access unit sets the parent-child relationship of the context by the third management unit. On the basis of the context of the parent of the context currently used by the client , read the content of the entity in the context of the parent from the management information by the second management means , The data processing apparatus according to claim 1, wherein the data is supplied to a client that has made an access request. 上記アクセス手段は、上記第2の管理手段による管理情報において上記対象オブジェクトデータに対応するエンティティが空であり、アクセス要求の内容が更新である場合、上記第3の管理手段によるコンテキストの親子関係に基づいて、上記クライアントが現在使用しているコンテキストの親の関係にあるコンテキストを取得し、上記第2の管理手段による管理情報から該親の関係にあるコンテキストでのエンティティの内容を、上記アクセス処理の対象のエンティティにコピーすることを特徴とする請求項1記載のデータ処理装置。When the entity corresponding to the target object data is empty in the management information by the second management unit and the content of the access request is update, the access unit sets the context parent-child relationship by the third management unit. Based on the management information obtained by the second management means , the content of the entity in the context in the parent relationship is obtained from the management information by the second management means. The data processing apparatus according to claim 1, wherein the data processing apparatus is copied to a target entity. クライアントからの要求に基づいて、上記コンテキスト間で、上記コンテキストに含まれるオブジェクトデータに対応するエンティティのコピー処理を行うコピー手段を備えることを特徴とする請求項1記載のデータ処理装置。  The data processing apparatus according to claim 1, further comprising a copy unit configured to perform a copy process of an entity corresponding to object data included in the context between the contexts based on a request from a client. クライアントからの要求に基づいて、上記コンテキストの切り換えを行う切換手段を備えることを特徴とする請求項1記載のデータ処理装置。  The data processing apparatus according to claim 1, further comprising switching means for switching the context based on a request from a client. 複数のクライアントと、複数のオブジェクトデータが格納されたメモリとが、上記複数のクライアントが上記メモリ内のデータを用いて任意の処理を実行するためのデータ処理装置を介して接続可能になされたデータ処理システムであって、上記データ処理装置は、請求項1〜の何れかに記載のデータ処理装置の機能を有することを特徴とするデータ処理システム。Data in which a plurality of clients and a memory storing a plurality of object data can be connected to each other via a data processing device for performing arbitrary processing by using the data in the memory. It is a processing system, Comprising: The said data processing apparatus has a function of the data processing apparatus in any one of Claims 1-5 , The data processing system characterized by the above-mentioned. 複数のクライアントが識別性を有する複数のオブジェクトデータをアクセスして任意の処理を実行するためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体において、
上記任意の処理にて対象となるオブジェクトデータの集合であって、クライアントの要求に基づいて生成され、クライアントが上記複数のオブジェクトデータを用いた上記任意の処理を実行するために必要なコンテキストを、クライアント毎に管理する第1の管理手段と、
上記コンテキスト毎に、該オブジェクトデータ各々に対応するエンティティを管理する第2の管理手段と、
上記クライアント毎のコンテキストの親子関係を管理する第3の管理手段と、
アクセス要求のあったクライアントに対し、上記第1の管理手段による管理情報から該クライアントが現在使用しているコンテキストを識別し、該コンテキストと上記第2の管理手段による管理情報から該クライアントがアクセス対象としたオブジェクトデータに対応するエンティティを取得し、該取得したエンティティの内容に対してアクセスする処理を含むアクセス処理を行うアクセス手段としてコンピュータを機能させるコンピュータプログラムを記録し、
上記アクセス手段は、上記第2の管理手段による管理情報において上記対象オブジェクトデータに対応するエンティティが空である場合、上記第3の管理手段によるコンテキストの親子関係に基づいて、上記クライアントが現在使用しているコンテキストの親の関係にあるコンテキストを取得し、上記第2の管理手段による管理情報から該親の関係にあるコンテキストでのエンティティを取得して、該エンティティの内容に対してアクセス処理を行うことを特徴とするコンピュータ読み取り可能な記録媒体。
In a computer-readable recording medium in which a computer program for accessing a plurality of object data having a distinctiveness by a plurality of clients to execute arbitrary processing is recorded.
A set of object data to be processed in the arbitrary process, which is generated based on a client request, and a context necessary for the client to execute the arbitrary process using the plurality of object data, A first management means for managing each client;
Second management means for managing an entity corresponding to each of the object data for each context;
Third managing means for managing the context for each said client, a parent-child relationship,
For the client that has made an access request, the context currently used by the client is identified from the management information by the first management means, and the client is the access target from the management information by the context and the second management means A computer program that causes the computer to function as an access unit that performs an access process including a process of acquiring an entity corresponding to the object data and accessing the contents of the acquired entity ;
When the entity corresponding to the target object data is empty in the management information by the second management unit, the access unit is currently used by the client based on the parent-child relationship of the context by the third management unit. A context in the context of the parent of the current context, acquire an entity in the context in the context of the parent from the management information by the second management means, and perform access processing on the contents of the entity A computer-readable recording medium.
JP2003016005A 2003-01-24 2003-01-24 Data processing apparatus, data processing system, and recording medium Expired - Fee Related JP3984553B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003016005A JP3984553B2 (en) 2003-01-24 2003-01-24 Data processing apparatus, data processing system, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003016005A JP3984553B2 (en) 2003-01-24 2003-01-24 Data processing apparatus, data processing system, and recording medium

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP09992999A Division JP3535413B2 (en) 1999-04-07 1999-04-07 Data processing device, data processing system, data processing method, and recording medium

Publications (2)

Publication Number Publication Date
JP2003248609A JP2003248609A (en) 2003-09-05
JP3984553B2 true JP3984553B2 (en) 2007-10-03

Family

ID=28672833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003016005A Expired - Fee Related JP3984553B2 (en) 2003-01-24 2003-01-24 Data processing apparatus, data processing system, and recording medium

Country Status (1)

Country Link
JP (1) JP3984553B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002477B (en) * 2018-06-19 2022-04-12 深圳市元征科技股份有限公司 Information processing method, device, terminal and medium

Also Published As

Publication number Publication date
JP2003248609A (en) 2003-09-05

Similar Documents

Publication Publication Date Title
CN105027068B (en) Duplication is executed within the storage system
CN102929786B (en) The volatile memory of non-volatile memory device set represents
TWI480803B (en) Shared file system management between independent operating systems
US20060174074A1 (en) Point-in-time copy operation
CN103597440A (en) Method for creating clone file, and file system adopting the same
CN108369577A (en) Content is shared between electronic document
CN107851089A (en) Distortion document
JPH10254748A (en) Distributed common memory consistency optimum control method
JP4937863B2 (en) Computer system, management computer, and data management method
US10721305B2 (en) Presenting content using decoupled presentation resources
CN100405295C (en) System and method for providing in situ execution function
JP6193406B2 (en) Serialization for differential encoding
KR20120037381A (en) Controlling access to software component state
US9313239B2 (en) Information processing apparatus, electronic meeting system, and program
JP2005321953A (en) Storage controller, operation program therefor and access control method
US7752232B2 (en) Data processing apparatus, data processing system, data processing method, and recording medium
JP3984553B2 (en) Data processing apparatus, data processing system, and recording medium
JP2007025928A (en) Device control system, device control processing method and device control program
CN109614383A (en) Data copy method, device, electronic equipment and storage medium
JP7196502B2 (en) Information processing device, information processing system, file list display method and program
JP2019128867A (en) Design information managing system, design information managing method, and program
JP5963313B2 (en) Information processing apparatus, method, and program
JPH05181582A (en) Display data transfer system and pen adaptor device
Agarwal Fundamentals of Computer
JP2006215829A (en) Document management device, document management method and computer program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070522

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070706

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130713

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees