JP3630697B2 - Data management system and method - Google Patents

Data management system and method Download PDF

Info

Publication number
JP3630697B2
JP3630697B2 JP06604292A JP6604292A JP3630697B2 JP 3630697 B2 JP3630697 B2 JP 3630697B2 JP 06604292 A JP06604292 A JP 06604292A JP 6604292 A JP6604292 A JP 6604292A JP 3630697 B2 JP3630697 B2 JP 3630697B2
Authority
JP
Japan
Prior art keywords
application
semi
persistent
volatile
instance
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
JP06604292A
Other languages
Japanese (ja)
Other versions
JPH05265837A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP06604292A priority Critical patent/JP3630697B2/en
Priority to EP93302196A priority patent/EP0562822B1/en
Priority to DE69328800T priority patent/DE69328800D1/en
Priority to US08/035,572 priority patent/US5504895A/en
Publication of JPH05265837A publication Critical patent/JPH05265837A/en
Application granted granted Critical
Publication of JP3630697B2 publication Critical patent/JP3630697B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
本発明は、複雑な構造を持ったデータを利用するデータベースアプリケーションを管理する方法に関する。
【0002】
特に、マルチメディアデータ処理のように、データベース上に存在する永続的なデータと、アプリケーション内にのみ存在する一時的なデータとが、複雑な関係をもって絡み合うアプリケーションにおいて、データを矛盾なく共有する方法に関する。
【0003】
【従来の技術】
一般に、データベースアプリケーションにおいては、データベース上に置かれ複数のアプリケーションから共有される永続的なオブジェクト(以下、永続オブジェクト)と、アプリケーションの実行中のみ存在しアプリケーションプロセスと共に消滅してしまう一時的なオブジェクト(以下、揮発オブジェクト)とが混在している。
【0004】
ここで「オブジェクト」とは、従来のレコードデータ、あるいは、関係型データベースのタプルなどを含み、一つの意味をもつまとまりとして扱えるデータ構造全般を指す。
【0005】
一般にデータベースを利用するアプリケーションを作ろうとする場合、永続オブジェクトと揮発オブジェクトはアプリケーション中で混在したものとなる。特に、永続オブジェクトが揮発オブジェクトをリンクなどの手段で指す状況が発生する。このような状況では、アプリケーションプロセスの終了と共に揮発オブジェクトが消滅し、揮発オブジェクトを含んだ永続的なデータ構造に欠損ができるので、データ構造全体としての意味がなくなってしまう、という問題が発生する。例えば、ビットマップディスプレイとマウスを用いて、図形のドローイングを行う場合、それによって作成した描画データをデータベース管理する例の場合には、その描画データを表示するためのウインドウサーバとの通信情報が、揮発オブジェクトであり、アプリケーションの終了と共にカラー情報やフォント情報が欠損する。したがって、描画データとしての意味が失われてしまう。
【0006】
従来、オブジェクトの混在から発生するこの問題を回避するため、計算機上でデータベースシステムを用いて蓄えられる永続オブジェクトは、揮発オブジェクトとの関係を記述せず、そのデータベース内に保存されるデータとの関係のみを保存してきた。つまり、データベース内のデータの明示的なもしくは暗に示された参照関係は、この意味においてデータベース内に閉じていた。そして、これにより、データベースの整合性を保っていた。この整合性の保持のために、例えば、典型的な関係型データベースシステム上の永続オブジェクトは、揮発オブジェクトとの関係を保存することを禁止していた。
【0007】
このため、揮発オブジェクトとの関係を記述する必要があるアプリケーションにおいては、永続オブジェクトをアプリケーションのメモリ空間にコピーしてから、揮発オブジェクトとの関係を記述するといった処理を、アプリケーションプログラマが記述していた。
そのようなアプリケーションの記述の例として、ワークステーション上の一般的なウインドウシステムであるXウインドウシステムを用いて表示される描画データをデータベース管理する例について説明する。Xウインドウシステムでは、ウインドウに表示される描画データは、実際に表示が行われるウインドウサーバとの通信情報(フォント情報やカラー情報のリソース識別子など)を含んでいる。この時、それぞれのウインドウサーバとのコネクションは、アプリケーションプロセスごとに確立されるので、ウインドウサーバとの通信情報は、アプリケーションプロセスごとに異なる。したがって、この描画データは、揮発オブジェクトをその属性として持つ。一方、ここでは、ウインドウ上の描画データを、データベースによって管理しようとしているので、これは、永続オブジェクトである。ここにおいて、従来の方法では、次のような手順を用いて、永続オブジェクトが、揮発オブジェクトと混ざる事を回避している。(1)データベース中に格納するデータ構造と、アプリケーションプロセス内に保持するデータ構造とを分離し、データベース中には、描画データから、ウインドウサーバとの通信情報などの揮発オブジェクトを除いた描画図形固有のデータ部分のみを格納する。(2)アプリケーションプロセスが、描画データを利用する場合には、通信情報を含んだ図形データのデータ構造を確保し、そこにデータベースから取り出した描画データを埋め込み、描画データの複製を作成する。そして、この複製について、ウインドウサーバとの通信情報を確立する。
そして、これらの手順をアプリケーションプログラマの責任において記述することが必要であった。
【0008】
【発明が解決しようとしている課題】
本発明では、上記従来例に示した課題、すなわち、データベースを用いない実現でのプログラミングでは必要のなかった手続きの追加やデータモデルの変更などのため、アプリケーションプログラマがその責任においてアプリケーション毎に永続オブジェクトと揮発オブジェクトとを矛盾なく扱うプログラムを作成する必要が生じ、アプリケーション作成の生産性が落ちてしまうという課題を解決する。
【0009】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、複数のアプリケーションに共有される永続オブジェクトと、特定のアプリケーションの実行中に存在し、そのアプリケーションの終了と共に消滅するアプリケーション固有の揮発オブジェクトを含む半永続オブジェクトを扱うデータ管理システムにおいて、各アプリケーションがデータベース上の永続オブジェクトに関する半永続オブジェクトに含まれるアプリケーション固有の揮発オブジェクトをメモリ上に作成する作成手段と、作成された前記揮発オブジェクトへのポインタを、当該揮発オブジェクトを作成したアプリケーションと当該揮発オブジェクト含む半永続オブジェクトのインスタンス対応付けて、前記複数のアプリケーションで共有する登録表に登録する登録手段と、各アプリケーションが前記永続オブジェクトを参照する際に、前記登録表を参照して、当該アプリケーション固有の揮発オブジェクトを同定する同定手段と、各アプリケーションが前記永続オブジェクトを更新する際に、前記登録表を参照して、当該永続オブジェクトの永続部分を共有する他のアプリケーションを識別する識別手段と、該識別手段により識別された他のアプリケーションに前記永続オブジェクトの更新を通知する通知手段とを備える。
また、本発明の他の態様によれば、複数のアプリケーションに共有される永続オブジェクトと、特定のアプリケーションの実行中に存在し、そのアプリケーションの終了と共に消滅するアプリケーション固有の揮発オブジェクトを含む半永続オブジェクトを扱うデータ管理方法において、各アプリケーションがデータベース上の永続オブジェクトに関する半永続オブジェクトに含まれるアプリケーション固有の揮発オブジェクトをメモリ上に作成する作成工程と、作成された前記揮発オブジェクトへのポインタを、当該揮発オブジェクトを作成したアプリケーションと当該揮発オブジェクト含む半永続オブジェクトのインスタンス対応付けて、前記複数のアプリケーションで共有する登録表に登録する登録工程と、各アプリケーションが前記永続オブジェクトを参照する際に、前記登録表を参照して、当該アプリケーション固有の揮発オブジェクトを同定する同定工程と、各アプリケーションが前記永続オブジェクトを更新する際に、前記登録表を参照して、当該永続オブジェクトの永続部分を共有する他のアプリケーションを識別する識別工程と、該識別工程により識別された他のアプリケーションに前記永続オブジェクトの更新を通知する通知工程とを備える。
【0010】
【実施例】
以下、本特許の実施例について、図を用いて説明する。本実施例では、ウインドウシステムを用いた描画アプリケーションにおいて、その描画情報をデータベース管理する例について説明する。
図1は、本実施例におけるシステム構成を表した図である。図中、
1は、描画アプリケーションの利用者が、描画アプリケーションにコマンドやデータを入力するための入力装置で、例えばキーボードやマウスである。
【0011】
2は、入力装置1より入力された指令に基づいて、本実施例における処理を行うためのCPUで、後述するメモリに存在するプログラムを実行する。
【0012】
3は、CPU2の処理結果、あるいは描画アプリケーションからのメッセージを印刷あるいは表示するための出力装置で、例えばプリンタやCRTディスプレイである。
【0013】
4は、描画データを保存し管理するためのデータベースで、例えばオブジェクト指向データベースである。
【0014】
5は、本実施例で扱うデータ、処理プログラム、後述する図2、3、4、8、9、10、11、12に示すごときプログラムおよび処理に要するデータ等を一時的に記憶するための記憶装置である。ここに含まれる各データは、それぞれが独立の記憶装置に分けられていてもよい。
【0015】
6は、以上の構成要素を結合しデ−タ、アドレス、制御デ−タなどを授受する計算機バスである。
【0016】
図2は、上記描画アプリケーションで扱われる描画プリミティブの内、円の定義部分を表した図である。図中、
1は、円の属性と振舞いを記述するクラス定義であり、begin 〜end の範囲の記述から成る。以下、円を表すクラスをCircle、CircleのあるインスタンスをaCircle とする。2は、Circleの永続性インスタンス属性の定義であり、座標や長さを表すDimension クラスのインスタンスx−center、y−center、radius、および色情報を表すColor クラスの永続性インスタンスへの参照color から構成される。永続オブジェクトの永続性インスタンス属性は、全て永続オブジェクトである。なお、クラスColor のインスタンスへの参照を^Colorと表すが、color は^Colorクラスのインスタンスと見なすこともできるため、以下そのように扱うものとする。
【0017】
3は、Circleの揮発性インスタンス属性の定義であり、描画属性を表すPen クラスのインスタンスpen と、aCircle が描画されるウインドウ群を表すWindowListへの参照windows から成る。揮発性インスタンス属性は、2の永続性インスタンス属性と同様クラスのデータ構造を与えるものであるが、永続性インスタンス属性は個々のインスタンスタンス毎に1つ作成される永続オブジェクトであるのに対して、揮発性インスタンス属性は、それが含まれている永続オブジェクトを参照しているアプリケーション毎に作成される揮発オブジェクトである。
【0018】
4は、Circleの永続性クラス属性の定義である。永続性あるいは揮発性インスタンス属性が個々のインスタンス毎に固有の値を持つのに対し、クラス属性は全てのインスタンスに共通の値を持つ。本実施例では、Circleの全インスタンスの個数を表す、
Integer クラスのインスタンスnum−of−Circlesが定義されている。
【0019】
5は、Circleの揮発性クラス属性の定義である。3の揮発性インスタンス属性と同様に、揮発性クラス属性はアプリケーション毎に所定のクラスに属するインスタンスに共通な値を持つ。本実施例における、ウインドウシステムの制御情報への参照を表す^WindowSystem クラスのインスタンスwindow−system は、アプリケーションの動作中のみ存在し、かつCircleクラスの全インスタンスに共通な揮発オブジェクトである。6は、Circleのインスタンスメソッドの宣言であり、aCircle が受け付ける一連のメッセージと、別途定義されるメソッド本体の返値を表すインスタンスのクラスが定義される。但し、返値がない場合はVoidとして表す。本実施例では、aCircle を表示するdisplay メソッド、aCircle のX 座標をDimension クラスのインスタンスx に変更し、変更後のaCircle への参照を返値とするset−x メソッド、set−x と同様にY 座標、半径、色を変更するset−y 、set−r 、set−c メソッド、aCircle の変更を通知するchanged メソッド、aCircle を破壊するdestroy メソッドが定義されている。
【0020】
7は、Circleのクラスメソッドの定義である。クラスメソッドは特定のインスタンスに作用するものではなく、インスタンス生成やクラス属性の初期化などに用いられる。本実施例では、Circleのインスタンスを生成し、引数x 、y 、r 、c に従ってインスタンス属性を設定した後、生成したインスタンスの参照を返すcreateメソッドが定義されている。
なお、図2における永続属性と揮発属性の定義は、本実施例のようにインスタンス変数を一括して指定する方法と、例えば「transient Dimension 」のように、型を修飾する形式で指定するする方法の2種類があるが、これらは意味的に同等である。以下では、図2の定義に従って説明する。
図3は、Circleクラスのクラス属性を初期化する手順を示す流れ図である。
Circleクラスのクラス属性としては、永続性クラス属性num−of−Circlesと、揮発性クラス属性window−system がある。まず永続性クラス属性は、他のアプリケーションが検索に失敗した場合は、Circleクラスがどのアプリケーションからも使用されたことがないと見なして、永続オブジェクトnum−of−Circlesを作成し、値を0に初期化する(ステップS2)。次に揮発性クラス属性window−system は、既知の手法によるウインドウシステムの初期化の結果得られるウインドウシステム制御情報への参照を用いて初期化する(ステップS3)。以上の処理は、アプリケーションがCircleクラスを初めて使用する時点で一度だけ行われる。
【0021】
図4は、CircleクラスのインスタンスaCircle を生成する手順を示すフローチャートで、処理部CPUにより実行される。上記のように、Circleクラスのインスタンス生成はcreateメソッドによって行われる。まずデータベース上にaCircle を格納する記憶領域を確保した後、引数を用いて永続性インスタンス属性の初期化を行う(ステップS1)。次いで揮発性インスタンス属性を表す揮発オブジェクトを作成する(ステップS2)。揮発オブジェクトの作成は、本発明実施においてはアプリケーションの仮想空間に作成したが、実現上はこの限りでなく、データベース上に作成してもよい。以上の処理の後に、揮発性インスタンス属性変換表を作成し(ステップS3)、上記揮発オブジェクトをインスタンス属性変換表に登録して(ステップS4)、処理を終了する。
図5〜図7は、上記揮発性インスタンス属性変換表を表した図である。
【0022】
変換表の構成方法は、インスタンス毎に設ける方法、クラス毎に設ける方法、全体で1つの大域的な表を設ける方法の3種類がある。更に後者2種類については、変換表をデータベース上におくか、記憶装置の記憶領域のアプリケーションの仮想空間上におくかの2種類がある。以下、各方法について説明する。
【0023】
図5は、インスタンス毎の変換表をデータベース上に設ける方法を示した図である。
【0024】
変換表は、アプリケーション識別子をキー、揮発オブジェクトの参照を値とする辞書として構成される。アプリケーション識別子は、オペレーティングシステムにより提供される識別子であって、例えばホスト識別子とプロセス識別子の組である。
【0025】
図6は、クラス毎または大域的な変換表をデータベース上に設ける方法を示した図である。変換表は、アプリケーション識別子とオブジェクト識別子をキー、揮発オブジェクトの参照を値とする辞書として構成される。アプリケーション識別子は、第5図と同様である。またオブジェクト識別子は、揮発オブジェクトとして表現されている揮発性インスタンス属性毎に、クラス毎の変換表では同一クラス内で重複の無い番号、大域的な変換表ではデータベース内で重複の無い番号として割り振られる。アプリケーションは、一般にあるクラスの複数のインスタンスを用いるため、同一クラスの揮発性インスタンス属性も一般に複数存在する。オブジェクト識別子は、これらを互いに区別するために必要である。なおオブジェクト識別子としては、データベースシステムによって与えられる識別子を用いてもよく、データベースシステムとは独立に、既知の手法による発番機構によって得られる番号等を用いても良い。
【0026】
図7は、クラス毎または大域的な変換表をアプリケーションの仮想空間上に設ける方法を示した図である。変換表は、オブジェクト識別子をキー、揮発オブジェクトの参照を値とする辞書として構成される。変換表示体がアプリケーション固有の情報であるため、データベースにおけるアプリケーションの識別は不要となり、図6に較べてアプリケーション識別子が不要になっている。逆に、アプリケーション識別子がない場合、他のアプリケーションによる同一オブジェクトの参照に関する情報が得られるかどうかは、用いているデータベースシステムに依存する。データベースシステムが該参照情報を提供しない場合は、図5または図6の変換表のうち、揮発オブジェクトの参照に関する列を除いた変換表を設けることにより、同等の機能を提供することができる。
【0027】
図8は、既に作成済みのaCircle をアプリケーションが検索して、アプリケーション固有の揮発インスタンス属性を設定する手順を示すフローチャートで、処理部CPUにより実行される。初めにデータベースに保存されているCircleオブジェクトの検索を行う(ステップS1)。検索に成功すれば、揮発性インスタンス属性を作成して(ステップS2)、変換表への登録を行う(ステップS3)。検索に失敗した場合は、エラーを通知した後(ステップS4)終了する。
【0028】
図9は、aCircle をウインドウに表示する手順を示すフローチャートである。初めにインスタンスaCircle を検索し(ステップS1)、成功すれば揮発属性windows 、pen 、window−system を取り出し(ステップS2)、成功すれば上記揮発属性を用いて
aCircle を描画する(ステップS 3)。以上の処理で何からのエラーが発生した場合は、エラーを通知した後(ステップS4)終了する。
【0029】
図10は、上記図9ステップS2における、揮発属性のとりだし手順を示すフローチャートである。ここで揮発性クラス属性は、既知のプログラミング言語で用いられる大域変数として実現され、本発明実施においてもそのように扱っている。一方揮発性インスタンス属性は、図5〜図7で示したいずれかの変換表を用いて登録および参照が行われる。以下では、揮発性インスタンス属性pen を図5の変換表を用いて取り出す手順について説明する。
【0030】
図10において、初めに揮発属性pen が登録されている変換表の取り出しを行う(ステップS1)。取り出しは、図5または図6に示した形式の変換表であれば、既知のデータベース検索手法を用いて行い、図7に示した形式の変換表であれば、アプリケーションのメモリ空間から直接行う。この取り出しに成功すれば、変換表を検索して揮発属性pen に対応する項目を取り出す(ステップS2)。この取り出しに成功すれば、上記項目より揮発オブジェクトpen を取り出す(ステップS 3)。以上の処理で何らかのエラーが発生した場合は、エラーを通知した後(ステップS4)終了する。図11は、半永続オブジェクトが変更される際に、該半永続オブジェクトの永続部分を共有する各アプリケーションに、変更を通知する手段を示すフローチャートである。上記のように、aCircle の変更通知はchanged メソッドによって行われる。初めに、半永続オブジェクトaCircle の永続部分を参照しているアプリケーション識別子のリストを作成する(ステップS1)。これは、図5または図6に示した変換表から作成
することが可能であり、またデータベースシステムの機能を用いて作成することが可能である場合もある。次に、上記リストが空でなければ、他にaCircle を参照しているアプリケーションが存在することになるので、アプリケーション識別子をリストから取り出す(ステップS2)。更に、オペレーティングシステム等によって提供される既知のプロセス間通信機能を用いて、上記アプリケーション識別子に対応するアプリケーションと通信可能であるかどうかを調べ、通信可能であればアプリケーションに変更を通知する(ステップS3)。以上の処理をリストが空になるまで繰り返した後、処理を終了する。なお、該変更通知を受け取った側のアプリケーションは、例えば第9図に示した手順に従って、aCircle の再表示を行う。
【0031】
図12は、半永続オブジェクトが破壊される際に、該半永続オブジェクトの永続部分を共有する各アプリケーションに、破壊を通知する手段を示すフローチャートである。半永続オブジェクトの破壊通知を行う場合、破壊を行ってから通知する方法と、通知を行ってから破壊する方法とがある。前者は、図11に示した手順で処理を行う。一方後者は、破壊を行う以前に図11と同様の処理を行った後(ステップ1〜3)、破壊通知を行っている途中で他のアプリケーションによって破壊され、データベースから抹消されていないかどうかを調べ、未だ破壊されておらず、データベース中に存在している場合は破壊処理を行った後、処理を終了する。なお、アプリケーション間で破壊通知を行う場合、通知を受けとったアプリケーションが、図11に示した手法で変更通知を発効し、図12の処理と連動させることにより、複数のアプリケーション間で破壊処理を協調的に行うことが可能である。さらに、図11の手法を組み合わせることにより、破壊処理に限らず、任意の協調処理を実現することも可能である。
【0032】
【発明の効果】
以上説明したように、本発明によれば、マルチメディアデータベースのように、複数のプロセスに共有される永続データと、特定のプロセスの実行中に存在し、そのプロセスの終了と共に消滅するプロセス固有の一時データとを扱うデータ管理において、次のような利点がある。
(1)永続データが一時データを含んでいたとしても、アプリケーション・プロセスでの利用時点では、欠けのない状態に保つことができる。
(2)複数のアプリケーション・プロセスによって共有される永続データの整合性を保つことができる。
(3)複数のアプリケーション・プロセスの協調動作が容易に実現できる。
【図面の簡単な説明】
【図1】本発明における実施例を説明するためのシステム構成図、
【図2】実施例における半永続オブジェクトの定義を説明するためのクラス定義図、
【図3】半永続オブジェクトのクラス属性の初期化を説明するためのフローチャート、
【図4】半永続オブジェクトのインスタンス生成手順を説明するためのフローチャート、
【図5】半永続オブジェクトの揮発性インスタンス属性の設定および取り出しを行うための変換表を、半永続オブジェクトのインスタンス毎に、データベース上に設ける場合の構造を説明するための図、
【図6】半永続オブジェクトの揮発性インスタンス属性の設定および取り出しを行うための変換表を、半永続オブジェクトのクラス毎に、または大域的に、データベース上に設ける場合の構造を説明するための図、
【図7】半永続オブジェクトの揮発性インスタンス属性の設定および取り出しを行うための変換表を、半永続オブジェクトのクラス毎に、または大域的に、アプリケーションの仮想空間上に設ける場合の構造を説明するための図、
【図8】半永続オブジェクトの揮発性インスタンス属性の設定手順を説明するためのフローチャート、
【図9】半永続オブジェクトの揮発属性を用いた処理を行う場合の手順を説明するためのフローチャート、
【図10】半永続オブジェクトの揮発属性を取り出す手順を説明するためのフローチャート、
【図11】半永続オブジェクトの変更を、該半永続オブジェクトを参照しているアプリケーションに通知する手順を説明するためのフローチャート、
【図12】半永続オブジェクトを破壊する際、破壊に先だって、該半永続オブジェクトを参照しているアプリケーションに破壊を通知する手順を説明するためのフローチャート。
【符号の説明】
1 入力装置
2 CPU
3 出力装置
4 デ−タベ−ス
5 記憶装置
[0001]
[Industrial application fields]
The present invention relates to a method for managing a database application that uses data having a complicated structure.
[0002]
In particular, the present invention relates to a method for sharing data without contradiction in an application in which persistent data existing in a database and temporary data existing only in an application are intertwined with each other in a complicated relationship, such as multimedia data processing. .
[0003]
[Prior art]
In general, in a database application, a persistent object (hereinafter referred to as a persistent object) that is placed on the database and shared by multiple applications, and a temporary object that exists only during the execution of the application and disappears with the application process ( Hereinafter, volatile objects) are mixed.
[0004]
Here, the “object” refers to all data structures that can be handled as a single unit having a single meaning, including conventional record data or a tuple of a relational database.
[0005]
In general, when creating an application that uses a database, persistent objects and volatile objects are mixed in the application. In particular, a situation occurs where a persistent object points to a volatile object by means such as a link. In such a situation, the volatile object disappears with the termination of the application process, and a permanent data structure including the volatile object can be lost, so that the meaning of the entire data structure is lost. For example, when drawing a figure using a bitmap display and a mouse, in the example of managing database of drawing data created thereby, communication information with a window server for displaying the drawing data is: It is a volatile object, and color information and font information are lost when the application ends. Therefore, the meaning as drawing data is lost.
[0006]
Conventionally, in order to avoid this problem caused by the mixture of objects, persistent objects stored using a database system on a computer do not describe the relationship with volatile objects, but with the relationship with the data stored in the database. Have only saved. In other words, the explicit or implicit reference relationship of data in the database has been closed in the database in this sense. As a result, the consistency of the database was maintained. To maintain this consistency, for example, persistent objects on a typical relational database system are prohibited from storing relationships with volatile objects.
[0007]
For this reason, in an application that needs to describe the relationship with the volatile object, the application programmer has described the process of copying the persistent object to the application memory space and then describing the relationship with the volatile object. .
As an example of such application description, an example of database management of drawing data displayed using an X window system, which is a general window system on a workstation, will be described. In the X window system, the drawing data displayed in the window includes communication information (such as font information and color information resource identifiers) with the window server that is actually displayed. At this time, since a connection with each window server is established for each application process, communication information with the window server differs for each application process. Therefore, this drawing data has a volatile object as its attribute. On the other hand, here, since the drawing data on the window is to be managed by the database, this is a permanent object. Here, in the conventional method, the following procedure is used to prevent the persistent object from being mixed with the volatile object. (1) The data structure stored in the database is separated from the data structure held in the application process. In the database, the drawing figure is unique from the drawing data excluding volatile objects such as communication information with the window server. Only the data part of is stored. (2) When the application process uses drawing data, it secures a data structure of graphic data including communication information, embeds drawing data extracted from the database, and creates a copy of the drawing data. Then, communication information with the window server is established for this copy.
And it was necessary to describe these procedures at the responsibility of the application programmer.
[0008]
[Problems to be solved by the invention]
In the present invention, the application programmer is responsible for the persistent object for each application for the purpose shown in the above conventional example, that is, for the addition of a procedure and the change of the data model which are not necessary for programming without using a database. It is necessary to create a program that handles volatile objects and volatile objects consistently, and solves the problem that productivity of creating applications falls.
[0009]
[Means for Solving the Problems]
In order to solve the above problems, according to the present invention, including a persistent object that is shared by multiple applications, present in the execution of a particular application, an application-specific volatile object disappears at the end of the application in the data management system that handles semi persistent objects, and creating means for each application creates an application specific volatile objects included in the semi-persistent objects about the persistent objects in the database in memory, to the volatile object created pointers, registration means in association with the instance of the semi-persistent object containing an application and the volatile object that created the volatile object is registered in the registration table to be shared by the plurality of applications, each When the application refers to the semi-persistent objects, by referring to the registration table, and identifying means for identifying the application-specific volatile object, when each application updates the semi-persistent object, said registration table see, comprises identification means for identifying other applications sharing the permanent portion of the semi-persistent objects, and notification means for notifying the updating of the semi-persistent objects in other applications identified by the identification means .
According to another aspect of the present invention, the semi-persistent including a persistent object that is shared by multiple applications, present in the execution of a particular application, an application-specific volatile object disappears at the end of the application in the data management method of handling objects, and creating steps each application creates an application specific volatile objects included in the semi-persistent objects about the persistent objects in the database in memory, a pointer to the volatile object created , in association with the instance of the semi-persistent object containing an application and the volatile object that created the volatile object, a registration step of registering the registration table to be shared by the plurality of applications, each application To but when referring to the semi-persistent objects, by referring to the registration table, the identification step of identifying the application-specific volatile object, when each application updates the semi-persistent object, referring to the registration table to comprise the said semi-persistent object persistence partial identification step of identifying the other applications that share, and a notification step of notifying the updating of the semi-persistent objects in other applications identified by the identifying step.
[0010]
【Example】
Examples of this patent will be described below with reference to the drawings. In the present embodiment, an example of managing the drawing information in a database in a drawing application using a window system will be described.
FIG. 1 is a diagram showing a system configuration in the present embodiment. In the figure,
Reference numeral 1 denotes an input device for a user of a drawing application to input commands and data to the drawing application, for example, a keyboard or a mouse.
[0011]
Reference numeral 2 denotes a CPU for performing processing in the present embodiment based on a command input from the input device 1 and executes a program existing in a memory described later.
[0012]
Reference numeral 3 denotes an output device for printing or displaying the processing result of the CPU 2 or a message from the drawing application, for example, a printer or a CRT display.
[0013]
Reference numeral 4 denotes a database for storing and managing drawing data, for example, an object-oriented database.
[0014]
5 is a memory for temporarily storing data, processing programs, programs shown in FIGS. 2, 3, 4, 8, 9, 10, 11 and 12 described later, data required for processing, and the like. Device. Each data included here may be divided into independent storage devices.
[0015]
Reference numeral 6 denotes a computer bus that combines the above components to exchange data, addresses, control data, and the like.
[0016]
FIG. 2 is a diagram showing a definition part of a circle among drawing primitives handled by the drawing application. In the figure,
Reference numeral 1 denotes a class definition that describes the attributes and behaviors of a circle, and includes a description in the range from begin to end. Hereinafter, a class representing a circle is referred to as “Circle”, and an instance having a circle is referred to as “aCircle”. 2 is a definition of the persistence instance attribute of the Circle. The instance of the Dimension class representing coordinates and length x-center, y-center, radius, and the reference color to the persistence instance of the Color class representing color information Composed. All persistent instance attributes of a persistent object are persistent objects. Note that a reference to an instance of the class Color is represented as ^ Color. However, since the color can be regarded as an instance of the ^ Color class, it will be treated as follows.
[0017]
Reference numeral 3 denotes a definition of a volatile instance attribute of a Circle, which includes an instance pen of a Pen class representing a rendering attribute and a reference window to a WindowList representing a window group in which a Circle is rendered. A volatile instance attribute gives a data structure of the same class as two persistent instance attributes, whereas a persistent instance attribute is a persistent object created for each instance instance, whereas A volatile instance attribute is a volatile object created for each application that references a persistent object that contains it.
[0018]
4 is the definition of the persistence class attribute of Circle. A persistent or volatile instance attribute has a unique value for each instance, whereas a class attribute has a common value for all instances. In this embodiment, this represents the number of all instances of Circle.
An instance class num-of-Circles of the Integer class is defined.
[0019]
5 is the definition of the volatile class attribute of Circle. Similar to the volatile instance attribute 3, the volatile class attribute has a value common to instances belonging to a predetermined class for each application. In this embodiment, an instance window-system of the ^ SystemSystem class representing a reference to the control information of the window system is a volatile object that exists only during the operation of the application and is common to all instances of the Circle class. 6 is a declaration of the instance method of Circle, and a series of messages accepted by aCycle and an instance class representing a return value of a method body defined separately are defined. However, when there is no return value, it is expressed as “Void”. In this embodiment, the display method for displaying aCircle, the X coordinate of aCircle is changed to an instance x of the Dimension class, and the set-x method that returns a reference to the changed aCircle as a return value. The set-y, set-r, and set-c methods for changing the coordinates, radius, and color, the changed method for notifying the change of aCycle, and the destroy method for destroying the aCycle are defined.
[0020]
7 is the definition of the Circle class method. Class methods do not operate on specific instances, but are used for instance creation and initialization of class attributes. In the present embodiment, a create method is defined in which an instance of Circle is generated, an instance attribute is set according to arguments x 1, y 2, r 3, and c 2, and then a reference to the generated instance is returned.
In addition, the definition of the persistent attribute and the volatile attribute in FIG. 2 is a method of specifying the instance variables collectively as in the present embodiment, and a method of specifying in a form-qualifying format such as “transient dimension”, for example. These are semantically equivalent. Below, it demonstrates according to the definition of FIG.
FIG. 3 is a flowchart showing a procedure for initializing the class attribute of the Circle class.
As class attributes of the Circle class, there are a persistent class attribute num-of-Circles and a volatile class attribute window-system. First, if the other class fails in the search, the persistent class attribute assumes that the Circle class has never been used by any application, creates a persistent object num-of-Cycles, and sets the value to 0. Initialization is performed (step S2). Next, the volatile class attribute window-system is initialized using a reference to the window system control information obtained as a result of initialization of the window system by a known method (step S3). The above processing is performed only once when the application uses the Circle class for the first time.
[0021]
FIG. 4 is a flowchart showing a procedure for generating an instance aCycle of the Circle class, which is executed by the processing unit CPU. As described above, the instance generation of the Circle class is performed by the create method. First, after securing a storage area for storing aCycle on the database, the persistent instance attribute is initialized using an argument (step S1). Next, a volatile object representing a volatile instance attribute is created (step S2). The creation of the volatile object is created in the virtual space of the application in the embodiment of the present invention. However, the creation of the volatile object is not limited to this, and may be created on the database. After the above process, a volatile instance attribute conversion table is created (step S3), the volatile object is registered in the instance attribute conversion table (step S4), and the process ends.
5 to 7 are diagrams showing the volatile instance attribute conversion tables.
[0022]
There are three types of conversion table construction methods: a method for each instance, a method for each class, and a method for providing one global table as a whole. Furthermore, there are two types of the latter two types: the conversion table is placed on the database or the application virtual space in the storage area of the storage device. Hereinafter, each method will be described.
[0023]
FIG. 5 is a diagram showing a method of providing a conversion table for each instance on the database.
[0024]
The conversion table is configured as a dictionary having application identifiers as keys and volatile object references as values. The application identifier is an identifier provided by the operating system, for example, a set of a host identifier and a process identifier.
[0025]
FIG. 6 is a diagram showing a method for providing a conversion table for each class or globally on a database. The conversion table is configured as a dictionary having application identifiers and object identifiers as keys and volatile object references as values. The application identifier is the same as in FIG. An object identifier is assigned to each volatile instance attribute expressed as a volatile object as a unique number in the same class in the conversion table for each class, or a unique number in the database in the global conversion table. . Since an application generally uses a plurality of instances of a certain class, there are generally a plurality of volatile instance attributes of the same class. Object identifiers are necessary to distinguish them from each other. As the object identifier, an identifier given by the database system may be used, or a number obtained by a numbering mechanism using a known method may be used independently of the database system.
[0026]
FIG. 7 is a diagram showing a method of providing a class-by-class or global conversion table on the virtual space of the application. The conversion table is configured as a dictionary having object identifiers as keys and volatile object references as values. Since the conversion display body is application-specific information, it is not necessary to identify the application in the database, and an application identifier is unnecessary compared to FIG. On the other hand, if there is no application identifier, whether or not information related to reference to the same object by another application is obtained depends on the database system used. When the database system does not provide the reference information, an equivalent function can be provided by providing a conversion table that excludes the column related to the reference of the volatile object from the conversion table of FIG. 5 or FIG.
[0027]
FIG. 8 is a flowchart showing a procedure in which an application searches for an already created aCircle and sets an application-specific volatile instance attribute, and is executed by the processing unit CPU. First, a search is made for a Circle object stored in the database (step S1). If the search is successful, a volatile instance attribute is created (step S2) and registered in the conversion table (step S3). If the search fails, an error is notified (step S4) and the process ends.
[0028]
FIG. 9 is a flowchart showing a procedure for displaying aCycle on a window. First, the instance aCycle is searched (step S1), and if successful, the volatile attributes windows, pen, and window-system are extracted (step S2), and if successful, the acycle is drawn using the volatile attributes (step S3). If any error occurs in the above processing, the error is notified (step S4) and the process ends.
[0029]
FIG. 10 is a flowchart showing a procedure for extracting a volatile attribute in step S2 of FIG. Here, the volatile class attribute is realized as a global variable used in a known programming language, and is treated as such in the embodiment of the present invention. On the other hand, the volatile instance attribute is registered and referred to using any one of the conversion tables shown in FIGS. Hereinafter, a procedure for extracting the volatile instance attribute pen using the conversion table of FIG. 5 will be described.
[0030]
In FIG. 10, first, a conversion table in which the volatile attribute pen is registered is extracted (step S1). If the conversion table has the format shown in FIG. 5 or 6, the retrieval is performed using a known database search technique, and if the conversion table has the format shown in FIG. 7, the retrieval is performed directly from the memory space of the application. If this extraction is successful, the conversion table is searched to extract an item corresponding to the volatile attribute pen (step S2). If this extraction is successful, the volatile object pen is extracted from the above item (step S3). If any error occurs in the above processing, the error is notified (step S4) and the process ends. FIG. 11 is a flowchart showing a means for notifying each application sharing the permanent part of the semi-persistent object when the semi-persistent object is changed. As described above, the change notification of aCycle is performed by the changed method. First, a list of application identifiers that refer to the persistent part of the semi-persistent object aCycle is created (step S1). This can be created from the conversion table shown in FIG. 5 or FIG. 6, or can be created using the function of the database system. Next, if the list is not empty, there are other applications that refer to aCircle, so an application identifier is taken out from the list (step S2). Further, using a known inter-process communication function provided by the operating system or the like, it is checked whether or not communication with the application corresponding to the application identifier is possible. If communication is possible, the change is notified to the application (step S3). ). The above process is repeated until the list becomes empty, and then the process ends. Note that the application on the side that received the change notification redisplays aCycle according to the procedure shown in FIG. 9, for example.
[0031]
FIG. 12 is a flowchart showing a means for notifying each application sharing the permanent part of the semi-persistent object when the semi-persistent object is destroyed. There are two methods of notifying destruction of semi-persistent objects: a method of notifying after destroying and a method of destroying after notifying. The former performs processing according to the procedure shown in FIG. On the other hand, in the latter case, after performing the same processing as FIG. 11 before the destruction (steps 1 to 3), whether or not it has been destroyed by another application and deleted from the database during the destruction notification. If it is not yet destroyed and exists in the database, the destruction process is performed and the process is terminated. In addition, when performing destruction notification between applications, the application that has received the notification activates the change notification by the method shown in FIG. 11, and cooperates with the processing in FIG. 12 to coordinate the destruction processing among a plurality of applications. Can be done automatically. Furthermore, by combining the methods shown in FIG. 11, it is possible to realize not only destruction processing but also arbitrary cooperation processing.
[0032]
【The invention's effect】
As described above, according to the present invention, persistent data shared by a plurality of processes, such as a multimedia database, and a process-specific data that exists during execution of a specific process and disappears when the process ends. In data management handling temporary data, there are the following advantages.
(1) Even if the persistent data includes temporary data, it can be kept intact when used in the application process.
(2) It is possible to maintain the consistency of persistent data shared by a plurality of application processes.
(3) A cooperative operation of a plurality of application processes can be easily realized.
[Brief description of the drawings]
FIG. 1 is a system configuration diagram for explaining an embodiment of the present invention;
FIG. 2 is a class definition diagram for explaining the definition of a semi-persistent object in the embodiment;
FIG. 3 is a flowchart for explaining initialization of a class attribute of a semi-persistent object;
FIG. 4 is a flowchart for explaining a procedure for creating an instance of a semi-persistent object;
FIG. 5 is a diagram for explaining a structure when a conversion table for setting and retrieving a volatile instance attribute of a semi-persistent object is provided on a database for each instance of the semi-persistent object;
FIG. 6 is a diagram for explaining a structure when a conversion table for setting and retrieving a volatile instance attribute of a semi-persistent object is provided on a database for each semi-persistent object class or globally. ,
FIG. 7 illustrates a structure when a conversion table for setting and retrieving a volatile instance attribute of a semi-persistent object is provided in the virtual space of an application for each semi-persistent object class or globally. Illustration for the
FIG. 8 is a flowchart for explaining a procedure for setting a volatile instance attribute of a semi-persistent object;
FIG. 9 is a flowchart for explaining a procedure when processing using a volatile attribute of a semi-persistent object;
FIG. 10 is a flowchart for explaining a procedure for extracting a volatile attribute of a semi-persistent object;
FIG. 11 is a flowchart for explaining a procedure for notifying an application that refers to the semi-persistent object of a change of the semi-persistent object;
FIG. 12 is a flowchart for explaining a procedure for notifying an application that refers to a semi-persistent object before destroying the semi-persistent object.
[Explanation of symbols]
1 Input device 2 CPU
3 Output device 4 Database 5 Storage device

Claims (6)

複数のアプリケーションに共有される永続オブジェクトと、特定のアプリケーションの実行中に存在し、そのアプリケーションの終了と共に消滅するアプリケーション固有の揮発オブジェクトを含む半永続オブジェクトを扱うデータ管理システムにおいて、
アプリケーションがデータベース上の永続オブジェクトに関する半永続オブジェクトに含まれるアプリケーション固有の揮発オブジェクトをメモリ上に作成する作成手段と、
作成された前記揮発オブジェクトへのポインタを、当該揮発オブジェクトを作成したアプリケーションと当該揮発オブジェクト含む半永続オブジェクトのインスタンス対応付けて、前記複数のアプリケーションで共有する登録表に登録する登録手段と、
アプリケーションが前記永続オブジェクトを参照する際に、前記登録表を参照して、当該アプリケーション固有の揮発オブジェクトを同定する同定手段と、
アプリケーションが前記永続オブジェクトを更新する際に、前記登録表を参照して、当該永続オブジェクトの永続部分を共有する他のアプリケーションを識別する識別手段と、
該識別手段により識別された他のアプリケーションに前記永続オブジェクトの更新を通知する通知手段とを有することを特徴とするデータ管理システム。
A persistent object that is shared by multiple applications, present during the execution of a specific application, the data management system that handles semi-persistent object that contains the application-specific volatile object disappears at the end of the application,
And creation means for each application creates an application specific volatile objects included in the semi-persistent objects about the persistent objects in the database in memory,
The pointer to the created the volatile object, in association with the instance of the semi-persistent object containing an application and the volatile object that created the volatile object, and registering means for registering in the registration table to be shared by the plurality of application ,
When each application refers to the semi- persistent object , referring to the registration table, identification means for identifying the application- specific volatile object ;
As each application updates the semi-persistent object, by referring to the registration table, and identifying means for identifying the other applications sharing the permanent portion of the semi-persistent object,
A data management system comprising: notification means for notifying other applications identified by the identification means of the update of the semi- persistent object .
前記登録表が、前記永続オブジェクトのインスタンス毎に設けられ、前記ポインタがアプリケーションの識別子と対応付けて登録されていることを特徴とする請求項1に記載のデータ管理システム。The data management system according to claim 1, wherein the registration table is provided for each instance of the semi- persistent object , and the pointer is registered in association with an application identifier. 前記永続オブジェクトの変更が当該永続オブジェクトの破壊を含むことを特徴とする請求項1に記載のデータ管理システム。Data management system of claim 1, change of the semi-persistent object is characterized in that it comprises a disruption of the semi-persistent objects. 複数のアプリケーションに共有される永続オブジェクトと、特定のアプリケーションの実行中に存在し、そのアプリケーションの終了と共に消滅するアプリケーション固有の揮発オブジェクトを含む半永続オブジェクトを扱うデータ管理方法において、
アプリケーションがデータベース上の永続オブジェクトに関する半永続オブジェクトに含まれるアプリケーション固有の揮発オブジェクトをメモリ上に作成する作成工程と、
作成された前記揮発オブジェクトへのポインタを、当該揮発オブジェクトを作成したアプリケーションと当該揮発オブジェクト含む半永続オブジェクトのインスタンス対応付けて、前記複数のアプリケーションで共有する登録表に登録する登録工程と、
アプリケーションが前記永続オブジェクトを参照する際に、前記登録表を参照して、当該アプリケーション固有の揮発オブジェクトを同定する同定工程と、
アプリケーションが前記永続オブジェクトを更新する際に、前記登録表を参照して、当該永続オブジェクトの永続部分を共有する他のアプリケーションを識別する識別工程と、
該識別工程により識別された他のアプリケーションに前記永続オブジェクトの更新を通知する通知工程とを有することを特徴とするデータ管理方法。
A persistent object that is shared by multiple applications, present during the execution of a specific application, the data management method of handling semi-persistent object that contains the application-specific volatile object disappears at the end of the application,
A creation step of each application creates an application specific volatile objects included in the semi-persistent objects about the persistent objects in the database in memory,
The pointer to the created the volatile object registration process in association with the instance of the semi-persistent object containing an application and the volatile object that created the volatile object is registered in the registration table to be shared by the plurality of application ,
When each application refers to the semi- persistent object , an identification step for identifying a volatile object specific to the application with reference to the registration table;
As each application updates the semi-persistent object, by referring to the registration table, an identification step of identifying the other applications sharing the permanent portion of the semi-persistent object,
And a notification step of notifying the other application identified by the identification step of the update of the semi- persistent object .
前記登録表が、前記永続オブジェクトのインスタンス毎に設けられ、前記ポインタがアプリケーションの識別子と対応付けて登録されていることを特徴とする請求項に記載のデータ管理方法。5. The data management method according to claim 4 , wherein the registration table is provided for each instance of the semi- persistent object , and the pointer is registered in association with an application identifier. 前記永続オブジェクトの変更が当該永続オブジェクトの破壊を含むことを特徴とする請求項に記載のデータ管理方法。The data management method according to claim 4 which changes the semi-persistent object comprising the destruction of the semi-persistent objects.
JP06604292A 1992-03-24 1992-03-24 Data management system and method Expired - Fee Related JP3630697B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP06604292A JP3630697B2 (en) 1992-03-24 1992-03-24 Data management system and method
EP93302196A EP0562822B1 (en) 1992-03-24 1993-03-23 Method of managing data structure containing both persistent data and transient data
DE69328800T DE69328800D1 (en) 1992-03-24 1993-03-23 Process and administration of a data structure containing both permanent and temporary data
US08/035,572 US5504895A (en) 1992-03-24 1993-03-23 Method of managing data structure containing both persistent data and transient data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06604292A JP3630697B2 (en) 1992-03-24 1992-03-24 Data management system and method

Publications (2)

Publication Number Publication Date
JPH05265837A JPH05265837A (en) 1993-10-15
JP3630697B2 true JP3630697B2 (en) 2005-03-16

Family

ID=13304428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06604292A Expired - Fee Related JP3630697B2 (en) 1992-03-24 1992-03-24 Data management system and method

Country Status (1)

Country Link
JP (1) JP3630697B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0955577B1 (en) * 1998-05-04 2011-11-30 International Business Machines Corporation Method and device for creating an object in a non-persistent memory and/or keeping accessibility to said object
JP3535413B2 (en) 1999-04-07 2004-06-07 新日鉄ソリューションズ株式会社 Data processing device, data processing system, data processing method, and recording medium
KR101868173B1 (en) * 2013-12-16 2018-06-15 에릭슨엘지엔터프라이즈 주식회사 Method and apparatus for sharing application database

Also Published As

Publication number Publication date
JPH05265837A (en) 1993-10-15

Similar Documents

Publication Publication Date Title
US6366916B1 (en) Configurable and extensible system for deploying asset management functions to client applications
US5950190A (en) Dynamic, self-modifying graphical user interface for relational database applications
US5459860A (en) Computerized system and process for managing a distributed database system
US5729739A (en) Persistent object mapping system and method with abstract schema mapper
US6279008B1 (en) Integrated graphical user interface method and apparatus for mapping between objects and databases
US6704743B1 (en) Selective inheritance of object parameters in object-oriented computer environment
US5937409A (en) Integrating relational databases in an object oriented environment
US5535389A (en) Business process objects with associated attributes such as version identifier
EP0529844B1 (en) Method and apparatus for deriving object type
EP0562822B1 (en) Method of managing data structure containing both persistent data and transient data
JPH07175730A (en) System and method for transfer of data in object-oriented environment
EP1073953B1 (en) Computer architecture using self-manipulating trees
JPH04172542A (en) Function extension system for data base management system
US5940820A (en) GUI apparatus for generating an object-oriented database application
US20050114863A1 (en) Method for associating data bearing objects with user interface objects
US6917939B1 (en) Method and apparatus for configurable mapping between data stores and data structures and a generalized client data model using heterogeneous, specialized storage
Dearle On the construction of persistent programming environments
JP3630697B2 (en) Data management system and method
US7133875B1 (en) Method and apparatus for redefining a group of related objects in a relational database system
US6658425B1 (en) Generic data centric object structure and implementation
JP2006512633A (en) Method and apparatus for generating a distributed Java application with a central XML configuration file
US6230315B1 (en) Data processing method and apparatus
WO2004073239A2 (en) Time-critical filtering of information using domain ontologies
US6826571B1 (en) Method and apparatus for dynamically customizing and extending functions of a server program to enable and restrict functions of the server
US7509341B2 (en) Stateless-object software environment

Legal Events

Date Code Title Description
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: 20041130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041215

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees