JPH09185542A - オブジェクト管理方法 - Google Patents

オブジェクト管理方法

Info

Publication number
JPH09185542A
JPH09185542A JP7342233A JP34223395A JPH09185542A JP H09185542 A JPH09185542 A JP H09185542A JP 7342233 A JP7342233 A JP 7342233A JP 34223395 A JP34223395 A JP 34223395A JP H09185542 A JPH09185542 A JP H09185542A
Authority
JP
Japan
Prior art keywords
class
list
objects
adjacency
adjacency list
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.)
Pending
Application number
JP7342233A
Other languages
English (en)
Inventor
Shuichi Shiohama
修一 塩濱
Katsuhisa Komatsubara
克久 小松原
Kimito Takadate
公人 高舘
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7342233A priority Critical patent/JPH09185542A/ja
Publication of JPH09185542A publication Critical patent/JPH09185542A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】オブジェクトとオブジェクトの関連を隣接リス
トを用いて一括して管理することにより、関連に対する
検索、追加、削除などの操作を行う。 【解決手段】ファイルに格納されたオブジェクトとオブ
ジェクト間の関連情報を再びメモリに復元する場合、オ
ブジェクト間の関連情報を格納した隣接リストを用い、
起点となるオブジェクトを先ずメモリ上に復元し、起点
オブジェクトがもつ隣接情報を解析しながら関連するオ
ブジェクトをメモリ上に復元し、さらに関連するオブジ
ェクトの隣接リストも同じように解析と復元を繰り返す
と、起点のオブジェクトと連鎖するオブジェクトがメモ
リ上に復元される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
技法によって開発された全てのソフトウエアに利用可能
である。特に、本発明を採用したクラスを含む複数のク
ラスをライブラリとして蓄積して提供することで、ソフ
トウエアの生産性が向上する。
【0002】
【従来の技術】オブジェクト指向技法に基づいて開発さ
れたプログラムは、オブジェクト間の関連を実装する。
例えば、金融業のプログラムにおいては、営業店オブジ
ェクトとその営業店が有する通帳オブジェクトとは、1
対多の関連がある。さらに顧客オブジェクトとその顧客
オブジェクトが有する通帳オブジェクトとは、1対多の
関連がある。
【0003】関連するオブジェクトの数はオブジェクト
単位に違うため、オブジェクト間の関連は、可変の情報
をもつことができるリスト構造によって管理される場合
が多い。営業店と通帳の関連、通帳と顧客の関連のよう
に関連は様々あり、クラス毎に関連する相手クラスの情
報を保有するリストを属性として有していた。
【0004】しかし、関連に対する操作は、関連するオ
ブジェクトの追加、削除、検索等どのリストにも類似し
ているために、似たような処理が各クラスに散在してい
た。
【0005】又、ある営業店が顧客の情報を取得するな
どの参照業務を実装する場合において、各クラス毎に実
装する方法では、営業店オブジェクトが直接顧客オブジ
ェクトの情報を有する方法で実装を行うか、あるいは顧
客情報を取得するメソッドを通帳クラスに実装するかで
あった。前者の方法では、例えば、名義変更業務などオ
ブジェクトの関連を変更するような業務が発生した場
合、営業店オブジェクトに有した顧客オブジェクトの情
報が、通帳オブジェクトと顧客オブジェクトの関連を常
に反映した情報になるよう考慮しなければならないし、
後者のような実装方法では、複数の関連をまたがって参
照するような業務ではより複雑なインタフェースと処理
を必要とする。このように、各クラスが独自の仕様で関
連を決定づける方法では、複数のオブジェクトにまたが
って動作するような業務の実装を追加するには、設計者
は追加する業務以外のオブジェクトの動きも常に把握す
る必要があり、拡張性、保守性の面で問題になる。
【0006】このような問題を解決するために、オブジ
ェクト間の関連を同じ規格のもとに一元的に管理するリ
ストを用意し、クラス毎に散在していた処理を該リスト
に対する処理に全てまとめる方法があった。
【0007】また、日経インテリジェントシステム別冊
『オブジェクト指向データベース』によれば、オブジェ
クト間の関連を不揮発性のメモリに管理するシステムと
して、オブジェクト指向DBがあった。オブジェクト指
向DBの1つObject Storeでは、Object Storeのマニュ
アルによればObject Storeを利用するアプリケーション
のクラスの宣言情報をもとに、Object Store内でオブジ
ェクトを管理するためのメモリマップを作成し、アプリ
ケーションが有する揮発性メモリ内でのオブジェクトの
値の情報を不揮発性メモリに格納する。オブジェクトを
読み出すさいには、不揮発性メモリのメモリマップとア
プリケーションが有する揮発性メモリ内でのメモリマッ
プとを対応付け、オブジェクトの関連を復元する。
【0008】
【発明が解決しようとする課題】従来のプログラムで
は、クラス毎にオブジェクト間の関連を管理していたの
で、似たような処理を各クラス毎に実装していたので、
開発工数を要するだけでなく保守工数も要していた。
【0009】オブジェクト間の関連をリンクオブジェク
トを用いて1つの関連表で表現する方法では、関連表に
対する処理は1ヶ所にまとめられるが、アプリケーショ
ン内のオブジェクト間の関連を全て1つの関連表で管理
するため、関連表内の要素の数が膨大になり、検索時間
や削除時間が遅くなる問題があった。
【0010】また従来の方法では、ファイルやDBから
揮発性メモリ上にオブジェクトを読み込んだり格納した
りする処理をアプリケーション毎に記述する必要があっ
た。
【0011】さらに、オブジェクト間の関連をプログラ
ムのコンパイル時に決定していたため、特殊な条件で必
要となるオブジェクト間の関連を必ずクラスヘッダに定
義しておく必要があった。例えば、銀行の融資オブジェ
クトは、返済期限が過ぎた場合には、延滞オブジェクト
を有する必要がある。従来の方法では、必ず延滞オブジ
ェクトとの関連を有していた。
【0012】
【課題を解決するための手段】隣接リスト管理リストを
有するクラスを設ける。このようなクラスをオブジェク
トクラスと呼ぶ。オブジェクトクラスは、隣接リスト管
理リストが有する隣接リストに対して、要素の追加/削
除/検索等の操作を有している。各アプリケーション毎
に必要となるクラスは、オブジェクトクラスを継承して
開発する。継承したクラスが必要となるオブジェクト間
の隣接リストを、隣接リスト管理リストに登録すること
で、オブジェクトクラスは、隣接リストに対する操作が
可能になる。本方法では、オブジェクト毎に隣接リスト
管理リストを有することになるので、管理するオブジェ
クト間の関連情報は1つのオブジェクトにおける情報に
限定できるため、高速に追加/削除/検索等の操作がで
きる。
【0013】さらに、本発明では、オブジェクト構築中
に隣接リストを隣接リスト管理リストに登録することで
オブジェクト間の関連をはかるため、特殊な条件で必要
な関連を、常にオブジェクトに持たせる必要がなくな
る。
【0014】
【発明の実施の形態】以下、本発明を金融関係に適用し
た場合の実施例を、詳細に説明する。
【0015】図3は本発明のハードウエア構成図を示
し、302は本発明のプログラムを実行するCPU、3
05は本発明のプログラムや解析対象となるプログラム
を記憶する外部記憶装置、301は本発明で解析するプ
ログラムを一時的に記憶する主記憶装置、303はプロ
グラムを実行するための入力装置、304は本発明の実
行結果を表示する装置である。
【0016】図2は、金融関係のクラスと本発明を含め
たクラス構造を示す。本発明に該当する部分は、コンテ
ナ管理クラス201、オブジェクト管理クラス202、
オブジェクトクラス203、隣接リスト管理リストクラ
ス204、隣接リスト205から構成されている。又金
融関係のクラスは、営業店クラス206、通帳クラス2
07、顧客クラス208の3クラスでオブジェクトクラ
スを継承している。
【0017】外部からオブジェクトを参照するためのク
ラスキーとして営業店クラスは店名を、通帳クラスは顧
客番号を、顧客クラスは顧客名とする。クラスキーの指
定方法はクラスキー登録メソッドを用いて行なう。
【0018】金融関係クラスの個々の生成オブジェクト
の管理方法は、生成したオブジェクトに対しオブジェク
トクラスの属性のオブジェクトIDに固有値を与え、そ
して動的に作成したオブジェクト管理クラスのコンテナ
に該生成オブジェクトの実体ポインタを格納する。又作
成したコンテナの管理はコンテナ管理クラスのコンテナ
管理リストで行なう。格納するコンテナを分別したい場
合は、コンテナ名登録メソッドを用いてコンテナ名を定
義する。
【0019】オブジェクトの関連情報の管理方法は、関
連する相手コンテナ単位に隣接リストを作成し、関連す
る相手オブジェクトの参照ポインタか又はオブジェクト
IDのどちらかを隣接リストに設定する。隣接リスト管
理リストは、1つ以上の隣接リストを集約して管理す
る。又隣接リスト名の定義は隣接リスト名登録メソッド
を用いて行い、定義されていない場合は、隣接リスト管
理リスト及び隣接リストは作成しない。クラスキー登録
メソッド、コンテナ名登録メソッド、隣接リスト名登録
メソッドの各メソッドはオブジェクト構築中に呼び出さ
れるので、オブジェクト単位に登録内容を変更すること
ができ、又該メソッドを仮想関数にすることによりクラ
ス単位に登録内容を変更することもできる。
【0020】3つの金融関係クラスの関連情報をどのよ
うにして保有しているかを図2と図4により説明する。
【0021】営業店クラス206は通帳クラス207と
1対多の関連をもつ。営業店オブジェクト406は、店
名は東京支店で、オブジェクトIDは01、営業店コン
テナ413に所属し、そして隣接リスト管理リスト41
0をもち、通帳隣接リスト401を有する。通帳隣接リ
ストの内容は、通帳オブジェクト407と409のそれ
ぞれのオブジェクトID02、04を有する。
【0022】通帳クラス207は、顧客クラス208に
対してただ1つの関連をもつ。通帳オブジェクト407
は、顧客番号は001で、オブジェクトIDが02、通
帳コンテナ414に所属し、そして隣接リスト管理リス
ト411と、営業店隣接リスト402と顧客隣接リスト
403を有する。営業店隣接リストは、営業店オブジェ
クト406のオブジェクトID01を有し、顧客隣接リ
スト403は、顧客オブジェクト408のオブジェクト
ID03を有する。
【0023】もう1つの通帳オブジェクト409は、顧
客番号は002で、オブジェクトIDが04、通帳コン
テナ414に所属し、そして隣接リスト管理リスト41
2と、営業店隣接リスト404と顧客隣接リスト405
を有する。営業店隣接リスト404は営業店オブジェク
ト406のオブジェクトID01を有し、顧客隣接リス
ト405は顧客オブジェクト408のオブジェクトID
03を有する。顧客クラスは、複数の通帳をもつ1対多
の関連である。顧客オブジェクト408は、顧客名が山
田太郎でオブジェクトIDが03、顧客コンテナ415
に所属する。隣接リスト管理リストと隣接リストは有し
ていない。
【0024】上記に示したようなデータ構造は、1対
1、1対多、多対多の関連を全てサポートしている。こ
のデータ構造を各オブジェクト間の関連に繰り返し適用
し、システム全体の関連を統一的に扱うことによって、
今まで各クラスが実装していた関連に対する生成/追加
/検索/探索/削除などのオブジェクト操作のメソッド
を汎化して共通化することができる。
【0025】本発明を使用してオブジェクト操作を行っ
た実施例を、メモリとファイル間のオブジェクトの状態
を示しながら図5に示す。
【0026】501から507までの点線より上半分
(Mの領域)は、メモリ上のオブジェクトの状態を示
し、下半分(Hの領域)は、ファイル上のオブジェクト
の状態を示している。又501から507の中のオブジ
ェクト図は図3にもとづき、オブジェクトIDのみを記
す。
【0027】オブジェクトが何も生成されていない状態
501から、オブジェクトID01を生成するためにオ
ブジェクトクラスの生成メソッド(ステップ508)を
呼び出すと、該オブジェクトが生成され502の状態に
なる。次に502の状態でオブジェクトID02を生成
するために追加メソッド(ステップ509)を呼び出す
と、該オブジェクトIDが生成され、オブジェクトID
01と関連付けられる。オブジェクトID03,04も
同様に繰り返し503の状態になる。続いて503の状
態で格納メソッド(ステップ510)を呼び出すと、オ
ブジェクトID01、02、03、04はファイル上に
格納され、メモリ上のオブジェクトは消去された状態5
04になる。次に504の状態でオブジェクトID01
を起点に選択して検索メソッド(ステップ511)を呼
び出すと、メモリ上にオブジェクトID01、02、0
3、04のオブジェクトが再び展開され505の状態に
なる。このとき、メモリ上に展開する隣接リストを限定
することにより、参照更新に必要なオブジェクトだけを
展開することもできる。又、メモリ上に展開されたオブ
ジェクトの上の情報は、次の格納メソッドが呼び出され
るまで展開前の情報を保存する。次に505の状態で、
オブジェクトID01と関係する顧客オブジェクトを参
照するために検索メソッド(ステップ512)を呼び出
すと、オブジェクトID03のポインタを取得した状態
506になる。506の状態で、先程取得したオブジェ
クトID03に対し削除メソッド(ステップ513)を
呼び出すと、オブジェクトID03が削除された状態5
07になる。削除されたオブジェクトは、格納時にファ
イル上に反映される。
【0028】以上のような操作を行なうメソッドのイン
タフェースを、継承したクラスに提供することにより、
継承したクラスはオブジェクト操作に関するメソッドの
実装を行なう必要がなく、又ファイルの種類に依存しな
い実装が可能になるという効果がある。
【0029】図1にオブジェクト操作の1実施例として
検索メソッドをフローチャートで示す。検索メソッド
は、既にファイルに格納されたオブジェクトとオブジェ
クト間の関連情報をもとに、呼び出し元が指定したオブ
ジェクトを起点として連鎖するオブジェクトをメモリ上
に復元するメソッドである。
【0030】最初に既にメモリ上に展開されているオブ
ジェクトを全てファイルに格納し、メモリ上のオブジェ
クトは消去する(ステップ101)。次に起点となるオ
ブジェクトを復元する(ステップ102)。復元の順序
は、該オブジェクトを生成し、該オブジェクトと一致す
るオブジェクトデータをファイルから読み込み、該オブ
ジェクトポインタに再設定する。オブジェクトデータ
は、オブジェクトID、クラス名、クラスキー、隣接リ
スト及び継承クラスの属性値データから構成されてい
る。続いて、起点オブジェクトから取得した隣接リスト
(ステップ103)の解析(ステップ104からステッ
プ109までの範囲)を開始する。隣接リストの要素か
ら隣接オブジェクトを取得し(ステップ105)、取得
した隣接オブジェクトを復元し(ステップ107)、復
元した該オブジェクトをキューに追加する(ステップ1
08)。但し、該隣接オブジェクトが復元済ならば(ス
テップ106)、ステップ107と108はスキップす
る。隣接リストの解析を終了したら(ステップ10
9)、キューの状態を確認する(ステップ110)。キ
ューが空でない場合、キューから隣接オブジェクトを取
得し(ステップ111)、取得した隣接オブジェクトの
隣接リストを取得し(ステップ112)、該隣接リスト
の解析を再び開始する(ステップ104に戻る)。キュ
ーに格納された隣接オブジェクトが全て取り出され空に
なった場合、検索メソッドは終了する。
【0031】このフローに従うと、メモリ上には起点オ
ブジェクトに対し連鎖するオブジェクトが各コンテナに
格納されている。起点オブジェクトの指定が変われば、
同じ名前のコンテナでも変更した起点オブジェクトに連
鎖したオブジェクトが入れ替わって格納される。オブジ
ェクト操作を行うメソッドの1つ探索メソッドは、取得
したいオブジェクトのコンテナ名を指定することにより
起点オブジェクトに対する該オブジェクトを取得でき
る。図4で説明すると起点を営業店オブジェクト406
にした場合、該顧客オブジェクトは顧客コンテナに格納
されている顧客オブジェクト408となる。このメソッ
ドを使用することにより、取得したいオブジェクトと起
点オブジェクトの間のオブジェクトの関連が変更になっ
ても取得したい相手が変わらない限り、同じメソッドを
使用することができるという利点がある。
【0032】
【発明の効果】本発明は、オブジェクト間の関連を定義
する実装手段がメソッドによる指定なので、関連に関す
る定義が容易に追加、変更できる。又関連に対する追
加、削除、検索等のオブジェクト操作は、メソッドイン
タフェースを呼び出すだけで実現できる。又検索時間
が、従来の方法と比較して速い。
【図面の簡単な説明】
【図1】本発明の1実施例を示すフローチャート。
【図2】本発明のハードウエア構成図。
【図3】本発明の実現するオブジェクト図。
【図4】本発明を1実施例をもとに表現したデータの構
造のイメージ図。
【図5】本発明の実施例を、メモリとファイル間でのオ
ブジェクトの状態と対比して示した図。
【符号の説明】
201…コンテナ管理リストクラス、202…オブジェ
クト管理クラス、203…オブジェクトクラス、
204…隣接リスト管理リストクラス、205…隣接リ
ストクラス。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】アプリケーションシステム実行中に、アプ
    リケーションシステム内のオブジェクトとオブジェクト
    間の関連の情報を、ファイルあるいはデータベースから
    読み込んで更新又は参照を行い、再びファイルあるいは
    データベースへ格納するシステムにおいて、オブジェク
    ト間の関連を管理する隣接リストを複数管理する隣接リ
    スト管理リストと、該隣接リスト管理リストを有するク
    ラスを用意し、アプリケーション毎に必要とするクラス
    を該クラスを継承して開発し、各継承したクラス毎に必
    要となる隣接リストを、隣接リスト管理リストに登録す
    ることで、複数のオブジェクト間の関連に対する検索、
    追加、削除等の操作を該クラスで行うことを特徴とする
    オブジェクト管理方法。
  2. 【請求項2】各継承したクラス毎に必要となる隣接リス
    トを、隣接リスト管理リストに登録することを実行時に
    行うことで、オブジェクト単位にクラス間の組み替えが
    できることを特徴とする請求項1記載のオブジェクト管
    理方法。
  3. 【請求項3】あるオブジェクトを起点とし複数の関連を
    経由して連鎖するオブジェクトの情報を取得することが
    できる操作を備えたことを特徴とする請求項1記載のオ
    ブジェクト管理方法。
JP7342233A 1995-12-28 1995-12-28 オブジェクト管理方法 Pending JPH09185542A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7342233A JPH09185542A (ja) 1995-12-28 1995-12-28 オブジェクト管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7342233A JPH09185542A (ja) 1995-12-28 1995-12-28 オブジェクト管理方法

Publications (1)

Publication Number Publication Date
JPH09185542A true JPH09185542A (ja) 1997-07-15

Family

ID=18352152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7342233A Pending JPH09185542A (ja) 1995-12-28 1995-12-28 オブジェクト管理方法

Country Status (1)

Country Link
JP (1) JPH09185542A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505849A (ja) * 2001-10-19 2005-02-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ バイトコードをネイティブコードにコンパイルする方法
WO2006041104A1 (ja) * 2004-10-13 2006-04-20 Nissay Information Technology Co., Ltd. データ管理装置およびその方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505849A (ja) * 2001-10-19 2005-02-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ バイトコードをネイティブコードにコンパイルする方法
WO2006041104A1 (ja) * 2004-10-13 2006-04-20 Nissay Information Technology Co., Ltd. データ管理装置およびその方法
JPWO2006041104A1 (ja) * 2004-10-13 2008-05-15 ニッセイ情報テクノロジー株式会社 データ管理装置およびその方法
JP2010015592A (ja) * 2004-10-13 2010-01-21 Nissay Information Technology Co Ltd データ管理装置およびその方法
JP2010015593A (ja) * 2004-10-13 2010-01-21 Nissay Information Technology Co Ltd データ管理装置およびその方法
US8554582B2 (en) 2004-10-13 2013-10-08 Nissay Information Technology Co., Ltd. Data management apparatus and method thereof
US8694344B2 (en) 2004-10-13 2014-04-08 Nissay Information Technology Co., Ltd. Data management apparatus and method thereof

Similar Documents

Publication Publication Date Title
US7308704B2 (en) Data structure for access control
US6601023B1 (en) Method for impact analysis of a model
US6240422B1 (en) Object to relational database mapping infrastructure in a customer care and billing system
US20050044396A1 (en) Managing access control information
US8738663B2 (en) Rule-based transformation of metadata
EP0978061B1 (en) Object graph editing context and methods of use
US7778899B2 (en) Method and system for object-oriented workflow management of multi-dimensional data
US5499365A (en) System and method for controlling versions of objects in an object oriented computing environment
US5557793A (en) In an object oriented repository, a method for treating a group of objects as a single object during execution of an operation
US6061689A (en) Object aggregation representation of relational database rows having nontraditional datatypes
US20050114661A1 (en) Object-based access control
CN111708895B (zh) 一种知识图谱系统的构建方法及装置
CN104854587A (zh) 主动数据库查询的维护
US5890160A (en) Object representation of relational database cells having nontraditional large object datatypes
US6859919B1 (en) Object modeling tool with meta model semantic registry (rules) a meta data manager for object(s) properties an object/property interface for instance(s) of objects/properties received via object/property interface of the object factory registry
CN112115115B (zh) 基于数据仓库的文件移动方法、设备和存储介质
JP2002342142A (ja) 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム
JPH09185542A (ja) オブジェクト管理方法
JP3484440B2 (ja) 分散型データベース更新方法
US20230237035A1 (en) Fast Skip-List Scan and Insert
EP4244731B1 (en) Storing and searching for data in data stores
JPH06215037A (ja) インデックスの自動更新装置
Jyoti et al. Salesforce Data Architecture
JP2024542000A (ja) データストアの中のデータの記憶および探索
JP2023132379A (ja) データベースシステム及びデータ管理方法