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

オブジェクト管理方法

Info

Publication number
JP3527014B2
JP3527014B2 JP12049896A JP12049896A JP3527014B2 JP 3527014 B2 JP3527014 B2 JP 3527014B2 JP 12049896 A JP12049896 A JP 12049896A JP 12049896 A JP12049896 A JP 12049896A JP 3527014 B2 JP3527014 B2 JP 3527014B2
Authority
JP
Japan
Prior art keywords
oid
information
management system
client
database
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
JP12049896A
Other languages
English (en)
Other versions
JPH09305468A (ja
Inventor
挙 小林
洋一 山本
真人 浅見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP12049896A priority Critical patent/JP3527014B2/ja
Publication of JPH09305468A publication Critical patent/JPH09305468A/ja
Application granted granted Critical
Publication of JP3527014B2 publication Critical patent/JP3527014B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト管理
方法に係り、特に、クライアント−サーバ型で構成され
るオブジェクト指向データベースシステムに用いるに好
適なオブジェクト管理方法に関する。
【0002】
【従来の技術】ネットワークを介したクライアント−サ
ーバ型のシステム構成は、可用性や保守容易性を備える
ための手段として、多くの計算機システムに適用されて
いる。オブジェクト指向データベース(Object−
Oriented Database:OODB)シス
テムにおいても、クライアント−サーバ型のシステム構
成を適用することが一般的である。この場合、データベ
ース管理システム(Database Managem
ent System:DBMS)をサーバとし、デー
タベース管理システム(DBMS)で管理されるデータ
にアクセスするアプリケーションプログラム(Appl
ication Program:AP)をクライアン
トとしている。
【0003】オブジェクト指向データベース(OOD
B)システムで扱われるオブジェクトには、一般に「動
的状態」と「永続状態」がある。オブジェクトの「動的
状態」とは、通常、アプリケーションプログラム(A
P)がオブジェクトに対して操作を行なえるように、計
算機の主記憶上におかれた状態を指している。「動的状
態」は、揮発的な性質を有している。主記憶の内容が失
われるとき、例えば、アプリケーションプログラム(A
P)プロセスの終了やデータベースシステムの停止など
により、「動的状態」は失われる。
【0004】「永続状態」とは、「動的状態」を再生す
るために退避された状態であり、通常、ディスクなどの
二次記憶装置に保持される。なお、オブジェクトデータ
を「永続状態」から「動的状態」へ移すことを「活性
化」(activate)という。また、「動的状態」
でアプリケーションプログラム(AP)からの操作が可
能な状態を、「活性化状態」という。
【0005】オブジェクトの「永続状態」を可能にす
る,即ち、オブジェクトの永続性を実現するための標準
仕様として、オブジェクト・マネージメント・グループ
社(Object Management Group
Inc.(OMG))によって規定されたオブジェク
ト永続性サービス仕様(Object Persist
ence Service Specificatio
n(OPSS))が知られている。オブジェクト永続性
サービス仕様(OPSS)は、オブジェクトの永続状態
を管理するための機構とインタフェイスを与えるガイド
ラインである。例えば、オブジェクト永続性サービス仕
様(OOPS)によれば、データストア(data s
tore)とは、オブジェクトの永続状態のための記憶
を与える機構をいい、永続識別子(Persisten
t Identifier:PID)とは、オブジェク
トの永続状態の記憶場所を識別する情報を保持する値を
いう。
【0006】複数のオブジェクトを動的および永続的に
取り扱うときは、個々のオブジェクトをシステム内で一
意に識別する機構が必要になる。オブジェクト・データ
ベース・マネージメント・グループ社(Object
Database Management Group
(ODMG))が規定するオブジェクト指向データベー
ス(OODB)の標準仕様のデータモデルによれば、
“The ObjectDatabase Stand
ard:ODMG−93 Release 1.1”,
Cattel,R.G.G.ed.Morgan Ka
ufmannPublishers,1994に記載さ
れているように、データベースシステム内の個々のオブ
ジェクトを一意に識別するために、オブジェクト識別子
(Object Identifier: OID)が
用いられる。
【0007】オブジェクト間の「関連」(relati
onship)は、オブジェクト指向データモデルにお
ける特長的なモデリングの手段である。「OMT」と呼
ばれる一般的なオブジェクト設計技法によれば、「オブ
ジェクト指向方法論 OMTモデル化と設計」,J.R
umbaugh他、羽生田栄一監訳、トッパン(199
2年)に記載されているように、「関連」とは、オブジ
ェクトの関係を確立するための手段であり、「リンク」
(link)とは、オブジェクト間の物理的あるいは概
念的な結合である。「関連」は、同一の意味を持つ「リ
ンク」の集まり(定義)である。
【0008】一般的な関連(リンク)機能の実装方法と
しては、オブジェクト識別子(OID)をオブジェクト
データ内部に保持する方法がある。データ内部に保持し
ているオブジェクト識別子(OID)に一意に対応する
オブジェクトを、関連付けられたリンク先オブジェクト
と解釈する。
【0009】関連は本質的に双方向性を持つ。例えば、
「人」と「会社」の間に関連「勤務する」を定義する場
合、「勤務する」の逆関連「雇う」は「会社」と「人」
との間の関連であり、どちらの方向をたどることも等し
く意味を持ち、根底にある同一の関連を示す。
【0010】また、関連には、多対多などの「多重度」
の概念があり、いくつのオブジェクトがリンクで関連付
けられるかが示される。例えば、「会社」が複数の「従
業員」を「雇う」場合、この関連の多重度は1対多とな
る。
【0011】従来のオブジェクト指向データベース(O
ODB)システムでは、オブジェクト識別子(OID)
がシステム内で一意となることを保証する。そのため
に、オブジェクト識別子(OID)の発行管理は、オブ
ジェクト指向データベース(OODB)システム全体を
管理するデータベース管理システム(DBMS)サーバ
で行なっている。
【0012】従って、クライアントアプリケーションで
生成したオブジェクトにオブジェクト識別子(OID)
を割り付けるには、データベース管理システム(DBM
S)サーバとの通信が必要になる。
【0013】一方、オブジェクト間のリンクを管理する
ときには、一般にリンク先の情報として、オブジェクト
識別子(OID)を用いる。そのため、新規オブジェク
トにリンクを設定する際には、先にオブジェクト生成を
データベース管理システム(DBMS)サーバに伝えて
オブジェクト識別子(OID)を割り付けてから、リン
ク設定処理を行なわなければならない。
【0014】
【発明が解決しようとする課題】この一連の処理を簡潔
に行なう方式としては、まずオブジェクト生成をデータ
ベース管理システム(DBMS)サーバと通信してオブ
ジェクト識別子(OID)を発行し、発行したオブジェ
クト識別子(OID)を受け取ってクライアントでリン
ク設定を行ない、リンク設定に伴う更新要求について別
途データベース管理システム(DBMS)サーバと通信
することが考えられる。
【0015】しかし、このようにして、リンクを管理す
る方式では、通信回数が増加するという問題がある。通
信は処理コストが高いため、上記のような処理方式で
は、クライアント−サーバ型システムにおいて、クライ
アントの要求を効率良く処理することができず、高性能
で動作することができない。
【0016】オブジェクト間のリンクを効率良く扱うク
ライアント−サーバ型オブジェクト指向データベース
(OODB)システムの例として、例えば、オブジェク
トデザイン(Object Design)社の製品と
して、オブジェクト・ストア(Object Stor
e)が知られている。オブジェクト・ストアでは、オブ
ジェクトの識別については、メモリ上のポインタを用い
ており、オブジェクト間の関連については、リンク先を
ポインタで直接的に表わしている。このポインタを永続
的に使用できるように、オペレーティングシステム(O
S)のページングおよび仮想記憶の機構を応用した「仮
想記憶マッピングアーキテクチャ」と呼ばれる方法を採
用している。
【0017】この方法では、クライアントでローカルに
データページ中のオブジェクトの格納構成が決定され、
サーバではそのページの状態がそのままデータストアに
格納される。従って、それぞれのクライアント毎に扱う
オブジェクトをデータストア中で物理的に近い位置にま
とめて格納(クラスタリング)することで、個々のクラ
イアントの処理でのアクセス効率の向上が図れる。
【0018】しかし、このような格納構成では、個々の
クライアントの処理とは無関係にオブジェクト操作を行
なうような場合,例えば、データベース全体を対象にし
て、あるデータ構造を持つ(あるタイプに属する)オブ
ジェクトを全件検索する場合、物理的に離れた位置のデ
ータページへのアクセスが多く、特に、検索のためのイ
ンデクスなど特殊な機構を用いていない場合は、すべて
のデータページを検索対象にしなければならず、効率が
悪いものである。
【0019】「仮想記憶マッピングアーキテクチャ」に
よる方法では、複数のクライアントが個別に扱うオブジ
ェクト群をまとめて格納制御することは困難である。
【0020】本発明の目的は、クライアント−サーバ型
で構成されるオブジェクト指向データベースシステムに
おいて、システム内でのオブジェクト識別性を保証しつ
つ、サーバと通信を行うことなく、クライアントアプリ
ケーションでのオブジェクト操作を効率よく処理できる
オブジェクト管理方法を提供するにある。
【0021】
【課題を解決するための手段】上記の目的を達するた
め、本発明は、データベース管理システムクライアント
は、クライアントアプリケーションで生成したオブジェ
クトに対して、このデータベース管理システムクライア
ントで一意に識別する仮オブジェクト識別子を発行し、
割り付け、上記仮オブジェクト識別子を、上記データベ
ースシステムで一意に識別する正式オブジェクト識別子
に変換するための補足的な情報であり、仮オブジェクト
識別子から正式オブジェクト識別子にOID変換する位
置を示すオフセットである更新位置オフセットを有する
OID変換情報を作成し、データベース管理システムサ
ーバへ、上記オブジェクト及びこのオブジェクトに対す
る上記OID変換情報を一括して送信し、記データベ
ース管理システムサーバは、上記OID変換情報の更新
位置オフセットを用いて、上記仮オブジェクト識別子を
上記正式オブジェクト識別子に変換し、上記オブジェク
トのデータストアへの格納を制御するようにしたもので
あり、かかる方法により、クライアントアプリケーショ
ンでのオブジェクト操作を、サーバとの通信を行うこと
なく、処理し得るものとなる。
【0022】
【0023】上記オブジェクト管理方法において、好ま
しくは、上記データベース管理システムクライアント
は、上記オブジェクトを生成順の番号で管理し、この生
成順の番号に基づいて上記仮オブジェクト識別子をそれ
ぞれのオブジェクトに割り付けるようにしたものであ
り、かかる方法により、仮オブジェクト識別子の管理が
容易となる。
【0024】上記オブジェクト管理方法において、好ま
しくは、上記データベース管理システムクライアント
は、複数のオブジェクトを一括して上記データベース管
理システムサーバに送信して、反映要求をするようにし
たものであり、かかる方法により、クライアント−サー
バ間の通信回数を削減できるものとなる。
【0025】上記オブジェクト管理方法において、好ま
しくは、上記データベース管理システムクライアント
は、上記複数のオブジェクト間にリンクを設定し、上記
データベース管理システムサーバへ、リンク先情報を設
定する部分更新情報を送信するようにしたものである。
【0026】
【発明の実施の形態】以下、本発明の一実施形態による
オブジェクト管理方法について、図1乃至図19を用い
て説明する。図1は、本発明の一実施形態によるオブジ
ェクト管理方法を適用したオブジェクト指向データベー
ス(OODB)システムの構成図である。
【0027】クライアントアプリケーション101a,
101bは、ネットワーク102を介して、データベー
ス管理システム(DBMS)サーバ103と通信し、デ
ータストア104に格納されるオブジェクトにアクセス
するクライアント−サーバ型でシステムを構成してい
る。
【0028】このシステムは、通信回数を増やすことな
く、クライアントでのオブジェクト操作(特に、オブジ
ェクト生成とオブジェクト間リンク設定)を行なえるよ
うに構成されている。そして、通信を回避するための基
本的な処理方式として、以下の(1)〜(3)を備えて
いる。
【0029】(1)仮オブジェクト識別子(仮OID)
の発行 クライアントアプリケーション101a,101bは、
データベース管理システム(DBMS)サーバ103と
通信せずに、新規生成したオブジェクトに対して、仮の
オブジェクト識別子(OID)を発行し、割り付ける。
ここでは、この仮のオブジェクト識別子(OID)のこ
とを「仮OID」と呼ぶことにする。
【0030】この「仮OID」は、データベース管理シ
ステム(DBMS)サーバ103がシステム内で一意に
なるように正式に発行するオブジェクト識別子(OI
D)である「正式OID」と対比して用いるものであ
る。
【0031】仮OIDは、生成順の通番を、クライアン
トアプリケーション101a,101bが、オブジェク
ト識別子(OID)の内部データに取り込んで作成す
る。
【0032】クライアントアプリケーション101a,
101bにおいて、オブジェクト操作対象となったオブ
ジェクトを識別する値および操作要求の内容は、仮OI
Dを用いて記録される。
【0033】(2)更新反映情報の一括送信と、OID
変換情報の付加 クライアントアプリケーション101a,101bにお
けるオブジェクト操作に対応するデータベース管理シス
テム(DBMS)サーバ103へ反映要求は、トランザ
クションコミットを契機に一括して送信する。
【0034】反映要求の通信電文には、仮OIDを正式
OIDに効率良く変換するための補足的な情報(OID
変換情報)を付加しておく。
【0035】(3)オブジェクト識別子(OID)を変
換してデータストアへ反映 データベース管理システム(DBMS)サーバ103
は、上記のOID変換情報に従い、オブジェクトの生成
通番を元に、仮OIDを効率良く正式OIDに変換し、
通信電文中の仮OID中のオブジェクト操作要求をデー
タストアに反映する。
【0036】データストアへの格納は、データベース管
理システム(DBMS)サーバ103が制御し、クラス
タリングなどによりアクセス効率の向上を図る。
【0037】次に、図1に示したクライアントアプリケ
ーション101a,101b及びデータベース管理シス
テム(DBMS)サーバ103の構成について説明す
る。
【0038】最初に、クライアントアプリケーション1
01a,101bの構成について説明する。クライアン
トアプリケーション101のアプリケーションプログラ
ム(AP)105は、データベース(DB)にアクセス
する手順を指示する。アプリケーションプログラム(A
P)105は、データベース管理システム(DBMS)
クライアント106が提供するアプリケーションプログ
ラムインタフェイス(Application Pro
gram Interface:API)の関数群を用
いて記述される。クライアントアプリケーション105
には、データベース管理システム(DBMS)クライア
ント106がバインドされる。
【0039】データベース管理システム(DBMS)ク
ライアント106のオブジェクト管理部107は、クラ
イアントアプリケーション101が扱うオブジェクト1
08を管理する。オブジェクト108は、オブジェクト
管理部107のクライアントオブジェクトキャッシュ1
09上に保持される。
【0040】オブジェクト管理部107の中のオブジェ
クト状態管理テーブル110は、クライアントオブジェ
クトキャッシュ109上のオブジェクト108の状態を
管理する。オブジェクト状態管理テーブル110のエン
トリは、各オブジェクト108に、1つずつ対応付けら
れる。
【0041】データベース管理システム(DBMS)ク
ライアント106の中のディクショナリ定義管理部11
1は、オブジェクト108のデータ構造(タイプ)およ
びアクセス方法の定義の集まりであるディクショナリ情
報を管理する。アプリケーションプログラム105の動
作に必要なディクショナリ定義情報が、クライアントア
プリケーション101にバインドされるものとする。
【0042】データベース管理システム(DBMS)ク
ライアント106の中の仮OID管理部112は、クラ
イアントアプリケーション101で生成する個々のオブ
ジェクト108を識別する仮OIDの発行を管理する。
仮OIDは、仮OID管理部112で管理される生成順
による生成通番113をもとに作成される。
【0043】データベース管理システム(DBMS)ク
ライアント106の通信管理部114では、データベー
ス管理システム(DBMS)サーバ103との通信を管
理し、クライアントアプリケーション101におけるオ
ブジェクト操作をデータベース(DB)に反映させるた
めの更新電文115を管理する。
【0044】次に、データベース管理システム(DBM
S)サーバ103の構成について説明する。データベー
ス管理システム(DBMS)サーバ103は、トランザ
クション管理やオブジェクト管理など、データベースシ
ステムが提供する各機能を実現するためのプロセスの集
まりから構成されている。
【0045】データベース管理システム(DBMS)サ
ーバ103の中のシステム制御部116は、データベー
ス(DB)システムを構成するプロセス群を監視し、シ
ステム全体の制御を行なう。
【0046】システム制御部116の中のトランザクシ
ョン管理部117は、各クライアントアプリケーション
101で実行されるトランザクションの管理を行なう。
【0047】サーバアプリケーション118a,118
bは、クライアントアプリケーション101a,101
bにそれぞれ1つずつ対応するプロセスで、クライアン
トアプリケーション101からの要求を受け付け、デー
タベース管理システム(DBMS)サーバ103の各モ
ジュール(管理部,制御部)に要求を伝える。
【0048】データベース管理システム(DBMS)サ
ーバ103の中のオブジェクト管理部119は、サーバ
アプリケーション118のオブジェクト操作要求を受け
付けて処理する。サーバオブジェクト管理部119は、
クライアントアプリケーション101のオブジェクト1
08に対応するように、データベース管理システム(D
BMS)サーバ103のオブジェクトキャッシュ120
上でオブジェクト121を操作し、このオブジェクト1
21の状態は、オブジェクト管理情報テーブル122に
より管理する。
【0049】データベース管理システム(DBMS)1
03の中のサーバOID管理部123は、データベース
(DB)システムにおける正式OIDを発行し、一意性
を保証するように管理する。
【0050】データベース管理システム(DBMS)1
03の中のサーバOID変換管理部124は、クライア
ントアプリケーション101が発行した仮OIDと、正
式OIDとの対応関係を管理する。対応関係は、サーバ
OID変換管理部124の中のOID変換テーブル12
5を用いて管理する。OID変換テーブル125の詳細
については、図19を用いて後述する。
【0051】格納制御部126は、オブジェクトデータ
を格納するデータストア104とのデータ入出力を管理
する。
【0052】データストア104は、オブジェクト12
1の永続状態のための記憶を与える機構である。
【0053】通信管理部107は、クライアントアプリ
ケーション101からメッセージを受け取るバッファの
管理を行う。
【0054】次に、図2を用いて、本実施形態によるオ
ブジェクト管理方法の処理方式について説明する。図2
は、本発明の一実施形態によるオブジェクト管理方法に
おけるクライアントアプリケーションでのアプリケーシ
ョンプログラムの処理フローの概念を示すフローチャー
トである。なお、詳細な処理フローについては、図3以
下を用いて後述する。
【0055】本実施形態においては、例えば、2つのオ
ブジェクトを作成し、それらのオブジェクト間にリンク
を設定するオブジェクト操作のプログラムの処理につい
て説明する。
【0056】ステップ201において、データベース管
理システム(DBMS)クライアント106は、データ
ベース(DB)接続するためのデータベース管理システ
ム(DBMS)クライアント106のアプリケーション
プログラムインタフェイス(API)関数をコールし、
クライアントアプリケーション101とデータベース管
理システム(DBMS)サーバ103との通信を確立す
る。ステップ201の詳細については、図3を用いて後
述する。
【0057】ステップ202において、データベース管
理システム(DBMS)クライアント106は、トラン
ザクションを開始するAPI関数をコールする。ステッ
プ202の詳細については、図6を用いて後述する。こ
の後、トランザクション開始から、次のトランザクショ
ンコミットまで間の処理について、データベース(D
B)システムで整合性が保証される。
【0058】ステップ203において、データベース管
理システム(DBMS)クライアント106は、オブジ
ェクト108を生成するAPI関数をコールし、「オブ
ジェクト1」を生成する。ステップ203の詳細につい
ては、図7,8を用いて後述する。
【0059】ここで、オブジェクト生成APIの入力と
して、生成するオブジェクトのタイプを指定する手段が
あるものとする。例えば、ディクショナリ定義管理部1
11に定義されたタイプ識別子を指定するものとする。
タイプ識別子は、データベース(DB)システムの一般
的なディクショナリ定義操作により与えられ、指定され
たタイプ識別子に対応するタイプ定義に基づくデータ構
造のオブジェクトが生成されるものとする。
【0060】ステップ204において、データベース管
理システム(DBMS)クライアント106は、ステッ
プ203と同様にして、「オブジェクト2」を生成す
る。ここで、「オブジェクト1」と「オブジェクト2」
で指定するタイプは、同じであっても、異なっていても
よい。ただし、それぞれのタイプ間に1対1の双方向関
連が定義されているものとする。
【0061】ステップ205において、データベース管
理システム(DBMS)クライアント106は、オブジ
ェクト間リンク設定API関数をコールし、「オブジェ
クト1」と「オブジェクト2」の間にリンクを設定す
る。ステップ205の詳細については、図9,10,1
1を用いて後述する。ここで、リンク設定APIの入力
として、ディクショナリに定義された関連の関連識別子
を指定するものとする。この指定により、関連の定義情
報に従い、オブジェクト間のリンクが設定されるものと
する。
【0062】ステップ206において、データベース管
理システム(DBMS)クライアント106は、トラン
ザクションコミットするAPI関数をコールする。ステ
ップ206の詳細については、図12を用いて後述す
る。これにより、ステップ203以降の処理を、データ
ベース(DB)に反映させる。
【0063】ステップ207において、データベース
(DB)接続を解除するAPI関数をコールし、クライ
アントアプリケーション101とデータベース管理シス
テム(DBMS)サーバ103との通信を解除する。ス
テップ207を終えた後、アプリケーションプログラム
を終了する。
【0064】図3を用いて、図2のステップ201に示
したデータベース管理システム(DBMS)クライアン
トにおけるデータベース(DB)接続APIの処理の詳
細について説明する。図3は、本発明の一実施形態によ
るオブジェクト管理方法におけるデータベース(DB)
接続APIの処理手順を示すフローチャートである。
【0065】ステップ301において、データベース管
理システム(DBMS)クライアント106のオブジェ
クト管理部107は、制御情報のデータ領域を確保し、
初期化する。
【0066】ここで、データベース管理システム(DB
MS)クライアント106の制御データ構造について、
図4を用いて説明する。図4は、本発明の一実施形態に
よるオブジェクト管理方法において用いるデータベース
管理システム(DBMS)クライアントで取り扱う制御
データの構造の説明図である。
【0067】この制御情報の構成により、クライアント
アプリケーション101で一意となる仮OIDの発行を
管理し、トランザクションコミット時に、一括して更新
反映要求を行なうための情報を保持する。
【0068】データベース管理システム(DBMS)ク
ライアント106の機能のための制御情報として、クラ
イアント管理制御ヘッダ401,オブジェクト管理制御
ヘッダ402,仮OID管理制御ヘッダ403,通信管
理制御ヘッダ404がある。これらの制御情報のアドレ
スは、クライアント管理制御ヘッダアドレスとして、デ
ータベース管理システム(DBMS)クライアントの各
モジュールに対してグローバルな値に保持され、各モジ
ュールがこれらの制御情報にアクセスする。
【0069】クライアント管理制御ヘッダ401は、ク
ライアントアプリケーション101のプロセス全体を管
理するために必要な情報(ステータス)を保持してい
る。例えば、アプリケーションプロセスの状態(DB接
続状態,トランザクション実行状態)を保持している。
【0070】オブジェクト管理制御ヘッダ402は、オ
ブジェクト管理部107を制御する情報を保持してい
る。オブジェクト管理制御ヘッダ402は、キャッシュ
制御ヘッダ405のアドレス、およびオブジェクト状態
管理制御ヘッダ406のアドレスを保持している。
【0071】キャッシュ制御ヘッダ405は、オブジェ
クトキャッシュ109を管理するために使用し、オブジ
ェクト108のデータのキャッシングの管理に必要な情
報を保持している。キャッシュ制御ヘッダ405は、例
えば、オブジェクトキャッシュ109のキャッシュ領域
の先頭アドレス,利用可能領域の先頭アドレスを保持し
ている。
【0072】オブジェクト状態管理テーブル制御ヘッダ
406は、オブジェクト状態管理テーブル110を管理
する。オブジェクト状態管理テーブル110のエントリ
を割り付けるために、オブジェクト状態管理テーブル1
10のテーブル領域の先頭アドレス,利用可能テーブル
エントリの先頭アドレスなどの情報を保持している。
【0073】仮OID管理制御ヘッダ403は、仮OI
Dを発行するための情報を管理する。仮OIDの元とな
る生成順通番カウンタ113を保持している。
【0074】通信管理制御ヘッダ404は、通信管理情
報を制御するために用い、通信電文を保持する領域であ
る通信バッファ408の先頭アドレスなどを保持する。
【0075】本実施形態のシステムでは、クライアント
アプリケーション101で行なったオブジェクト操作の
データベース管理システム(DBMS)サーバ103に
対する反映は、コミット時に一括して行なう。反映する
要求の内容を、データベース管理システム(DBMS)
クライアント106で一時的に更新情報として保持し、
オブジェクト状態管理エントリ407からポイントして
おく。反映が必要な更新要求情報を効率良くに得るため
に、反映が必要なオブジェクト状態管理エントリ407
を、オブジェクト状態管理制御ヘッダ402からポイン
トし、さらに、複数の更新対象のオブジェクト状態管理
エントリ407を得られるように各エントリをポインタ
で連結しておく。ここでは、この連結のことを「反映要
求チェイン409」と称する。
【0076】次に、ステップ302において、オブジェ
クト管理部107は、仮OID管理部112を初期化
し、仮OID管理部112は、生成通番113を初期化
する。
【0077】ステップ303において、オブジェクト管
理部107は、通信管理部114を初期化し、以降のデ
ータベース管理システム(DBMS)サーバ103への
通信要求に備える。
【0078】ステップ304において、データベース管
理システム(DBMS)クライアント106は、データ
ベース(DB)接続要求電文を作成する。
【0079】ここで、本実施形態において用いる通信電
文のデータ構造について、図5を用いて説明する。図5
は、本発明の一実施形態によるオブジェクト管理方法に
おいてクライアントアプリケーションが作成する通信電
文のデータ構造の説明図である。
【0080】通信電文501は、電文制御ヘッダ502
と、複数(n個)のコマンドパラメタブロック503か
ら構成されている。電文制御ヘッダ502は、通信電文
501を制御するために必要な以下の情報を保持してい
る。
【0081】(1)「電文の形式」(サーバへの送信デ
ータであることを示す値など) (2)「電文のサイズ」 (3)「先頭ブロックオフセット」(先頭のコマンドパ
ラメタブロック503の位置を示すオフセット値;通信
電文501の先頭からのオフセット値として与えられて
いる) (4)「ブロック総数(n)」(電文501に保持する
コマンドパラメタブロック503の総数) コマンドパラメタブロック503は、ブロック制御ヘッ
ダ504と、ブロックデータ504から構成されてい
る。ブロック制御ヘッダ504は、各コマンドパラメタ
ブロック503を制御する情報を有している。ブロック
制御ヘッダ504は、例えば、「ブロック形式」,「ブ
ロックサイズ」(ブロックのデータ長),「コマンド識
別子」(データベース(DB)接続要求であることなど
を示す値など),「ブロックデータオフセット」(ブロ
ックデータの位置を示すオフセット値;コマンドパラメ
タブロック503の先頭からのオフセット値),「次ブ
ロックのオフセット」(次のブロックの位置を示すオフ
セット値;通信電文501の先頭からのオフセット値)
を保持している。
【0082】以上説明した構造を用いることにより、例
えば、データベース(DB)接続要求の電文メッセージ
では、電文制御ヘッダ502内の「ブロック総数」を
「1」とし、最初のブロック1のブロック制御ヘッダ5
04内の「コマンド識別子」に「DB接続」を示す値を
設定するようにしている。
【0083】ステップ305において、通信管理部11
4は、データベース管理システム(DBMS)サーバ1
03へ通信電文501を送信する。ステップ305を終
えた後、データベース(DB)接続処理を終了する。
【0084】ここで、プロセス間通信の手段および形態
については、本実施形態の方法を実装するために特別な
機能を必要とせず、周知の機構を用いてよい。
【0085】図6を用いて、図2のステップ202に示
したデータベース管理システム(DBMS)クライアン
トにおけるトランザクション開始APIの処理の詳細に
ついて説明する。図6は、本発明の一実施形態によるオ
ブジェクト管理方法におけるトランザクション開始AP
I関数コールの処理手順を示すフローチャートである。
【0086】ステップ601において、データベース管
理システム(DBMS)クライアント106は、オブジ
ェクト管理部107にリセット要求し、オブジェクト管
理部107がリセットする(制御情報を初期状態に戻
し)ことにより、後のオブジェクト操作要求に備える。
【0087】ステップ602において、オブジェクト管
理部107は、仮OID管理部112にリセット要求
し、仮OID管理部112がリセットすることにより、
後のオブジェクト生成時の仮OID発行に備える。
【0088】ステップ603において、データベース管
理システム(DBMS)クライアント106は、トラン
ザクション開始要求の通信電文を作成する。通信電文
は、通信管理部114の通信バッファ領域に作成され
る。
【0089】ステップ604において、通信管理部11
4は、作成した通信電文を、データベース管理システム
(DBMS)サーバ103へ送信する。データベース管
理システム(DBMS)サーバ103は、トランザクシ
ョン管理部117に、トランザクション開始要求が伝え
られ、クライアントアプリケーション101のプロセス
でのトランザクションが認識され、管理対象となる。
【0090】ステップ604を終えた後、この処理を終
了する。
【0091】次に、図7及び図8を用いて、図2のステ
ップ203に示したデータベース管理システム(DBM
S)クライアントにおけるオブジェクト生成APIの処
理の詳細について説明する。図7は、本発明の一実施形
態によるオブジェクト管理方法におけるオブジェクト生
成APIの処理手順を示すフローチャートであり、図8
は、生成されるオブジェクトのデータ構造の説明図であ
る。
【0092】図7に示すステップ701において、オブ
ジェクト管理部107は、ディクショナリに定義されて
いるタイプ定義情報を参照する。参照するタイプ定義対
象は、アプリケーションプログラム105からオブジェ
クト生成APIのパラメタで指定されており、このタイ
プ識別子に対応するタイプ定義情報を、ディクショナリ
定義管理部111から取得する。
【0093】ステップ702において、オブジェクト管
理部107は、オブジェクトキャッシュ109上にデー
タ領域を取得する。データ領域の大きさは、ステップ7
01で取得したタイプ定義情報を参照して、必要なサイ
ズを算出する。
【0094】ステップ703において、オブジェクト管
理部107は、ステップ701で取得したタイプ定義情
報に従って、オブジェクト108を初期化する。オブジ
ェクト108のデータ構造には、リンク先情報を保持す
る構造があり、このステップにおいて、リンク先情報を
初期化する。
【0095】ステップ704において、オブジェクト管
理部107は、このオブジェクトの状態を管理するため
に、オブジェクト状態管理テーブル110のエントリを
割り付ける。
【0096】ステップ705において、オブジェクト管
理部107は、ステップ704で取得したオブジェクト
状態管理テーブル110のエントリを初期化する。ここ
で、オブジェクト状態管理テーブル110のエントリの
中のオブジェクト状態を保持する領域のフラグを、新規
状態であることを示すONに設定する。
【0097】ステップ706において、オブジェクト管
理部107は、このオブジェクト状態管理テーブル11
0のエントリを、反映要求チェイン409につなぐ。反
映要求チェイン409は、次のエントリをポインタで指
示する。
【0098】ステップ706を終えた後、オブジェクト
生成API処理を終了する。
【0099】次に、図8を用いて。データベース管理シ
ステム(DBMS)クライアント106におけるオブジ
ェクト108のデータ構造について説明する。オブジェ
クト108は、オブジェクト制御ヘッダ801と、オブ
ジェクトデータ領域802から構成されている。オブジ
ェクト制御ヘッダ801は、オブジェクトデータを制御
情報するために、以下の情報から構成されている。
【0100】(1)「オブジェクト状態管理テーブル1
10のオブジェクト状態管理エントリ806のアドレ
ス」 (2)「オブジェクトの種別」 (3)「オブジェクト全体のデータサイズ」 (4)「自分自身のOID」(このオブジェクトに割り
付けられたOID) クライアントアプリケーション101で生成された時点
では、「自分自身のオブジェクト識別子(OID)」は
設定されていない。仮OIDは、当該オブジェクト操作
において、オブジェクト識別子(OID)が必要になる
とき、例えば、リンク設定を行なうときに発行され、割
り付けられる。リンク設定時の仮OIDの割り付けにつ
いては、図9を用いて後述する。
【0101】「自分自身のOID」の中は、「オブジェ
クト識別子(OID)の形式」(「仮」であるか「正
式」であるかを示す値)と、一意性のための「識別値」
から構成されている。
【0102】仮OID803の場合には、「OID形
式」には、仮オブジェクト識別子(OID)形式である
ことを示す値が設定され、「識別値」には、割付対象オ
ブジェクトの生成時の生成通番が設定される。
【0103】正式OID804の場合には、「OID形
式」には、正式オブジェクト識別子(OID)形式であ
ることを示す値が設定され、「識別値」には、データベ
ース管理システム(DBMS)サーバ103のOID変
換管理部124において、データベース(DB)システ
ム内で一意になるように作成された値が設定される。こ
こでは、オブジェクトデータ格納位置情報に基づく永続
識別子PIDを識別値として用いる。
【0104】オブジェクトデータ領域802には、オブ
ジェクトの内容を示す「オブジェクトデータ」を保持し
ている。この領域に、リンク先情報805も保持され
る。リンク先情報805には、「リンク先OID」(リ
ンク先オブジェクトのオブジェクト識別子(OID))
が保持される。リンク先オブジェクトが生成されてトラ
ンザクションコミットする前ならば、仮OID803を
保持することになる。リンク先オブジェクトがデータス
トアに格納されている既存のオブジェクトならば、正式
OID804を保持することになる。
【0105】オブジェクト状態管理テーブル110のオ
ブジェクト状態管理エントリ806は、オブジェクト1
08の状態を管理するために、以下の情報を保持してい
る。
【0106】(1)「管理対象のオブジェクト識別子
(OID)」 (2)「オブジェクト状態フラグ」(生成/更新の状態
であることを示す値を保持する。新規の場合には、フラ
グをONする) (3)「オブジェクトデータのアドレス」(管理対象オ
ブジェクトのオブジェクトデータ領域の先頭アドレス;
オブジェクト制御ヘッダ801の種別の欄を先頭アドレ
スとしている) (4)「部分更新情報のアドレス」(管理対象オブジェ
クトに対して要求された部分更新情報のアドレス) (5)「オブジェクト識別子(OID)変換情報のアド
レス」(管理対象オブジェクトに対して要求されたOI
D変換情報のアドレス) (6)「オブジェクト識別子(OID)変換テーブル登
録要請フラグ」 (7)「更新チェイン409の続き要素エントリのアド
レス」 次に、図9,10,11を用いて、図2のステップ20
5に示したデータベース管理システム(DBMS)クラ
イアントにおけるオブジェクト間リンク設定APIの処
理の詳細について説明する。図9は、本発明の一実施形
態によるオブジェクト管理方法におけるオブジェクト間
リンク設定APIの処理手順を示すフローチャートであ
る。
【0107】ステップ901において、オブジェクト管
理部107は、ディクショナリ定義管理部111に定義
されているオブジェクト間関連定義情報を参照する。対
象となる関連定義は、アプリケーションプログラム10
5からリンク設定APIのパラメタとして関連識別子で
指定され、この関連識別子に対応する関連定義情報を、
ディクショナリ定義管理部111から取得する。
【0108】ステップ902において、オブジェクト管
理部107は、リンク元オブジェクトが新規で、かつ仮
OIDが割り当てられていないかを判定する。新規であ
るか否かは、図8に示したオブジェクト状態管理エント
リ806内の「状態フラグ」で判定する。新規の場合に
は、「状態フラグ」がONになっている。仮OIDが割
り当てられているか否かは、図8に示したオブジェクト
制御ヘッダ801内の「自分自身のOID」で、「OI
D形式」を参照することにより判定する。「OID形
式」には、仮OID形式であることを示す値若しくは、
正式OID形式であることを示す値が設定されているの
で、これらの値が設定されていない場合には、仮OID
が割り当てられていないと判定する。
【0109】仮OIDが割り当てられていない場合は、
ステップ903に進み、仮OIDが割り当てられている
場合は、ステップ906に進む。
【0110】ステップ903において、仮OID管理部
112は、新規の仮OIDを発行する。このとき、仮O
ID管理部112は、生成通番113をインクリメント
する。
【0111】次に、ステップ904において、オブジェ
クト管理部107は、リンク元オブジェクトのオブジェ
クト制御ヘッダ801およびオブジェクト状態管理エン
トリ806内に、発行した仮OIDを設定する。即ち、
オブジェクト制御ヘッダ801の自分自身のOIDに、
仮OID803を設定する。生成通番113には、ステ
ップ903でインクリメントした生成通番を設定する。
また、オブジェクト状態管理エントリ806の「管理対
象OID」に、仮OIDを設定する。
【0112】次に、ステップ905において、オブジェ
クト管理部107は、オブジェクト状態管理エントリ8
06内の「OID変換テーブル登録要請フラグ」をON
にする。このフラグの値に従って、データベース管理シ
ステム(DBMS)サーバ103で反映処理を行なうと
きに、OID変換テーブル125に、このオブジェクト
についてのエントリを登録することにより、OID変換
テーブル125へのエントリ登録を効率良く行なうこと
ができる。ステップ905を終えた後、ステップ906
に進む。
【0113】ステップ906からステップ909におい
ては、リンク先オブジェクトについて、ステップ902
からステップ905と同様して、オブジェクト識別子
(OID)を判定し、仮OIDを割り付ける処理を行な
う。
【0114】即ち、ステップ906において、オブジェ
クト管理部107は、リンク先オブジェクトが新規で、
かつ仮OIDが割り当てられていないかを判定する。仮
OIDが割り当てられていない場合は、ステップ907
に進み、仮OIDが割り当てられている場合は、ステッ
プ910に進む。
【0115】ステップ907において、仮OID管理部
112は、新規に仮OIDを発行する。このとき、仮O
ID管理部112は、生成通番113をインクリメント
する。
【0116】次に、ステップ908において、リンク先
オブジェクトのオブジェクト制御ヘッダ801およびオ
ブジェクト状態管理エントリ806内に、発行した仮O
IDを設定する。
【0117】次に、ステップ909において、オブジェ
クト管理部107は、オブジェクト状態管理エントリ8
06内の「OID変換テーブル登録要請フラグ」をON
にする。ステップ909を終えた後、ステップ910へ
進む。
【0118】ステップ910において、オブジェクト管
理部107は、当該処理でリンク元オブジェクトに対し
て行なう更新を記録しておくための部分更新要求情報を
作成する。この更新要求情報作成処理の詳細について
は、図10,11を用いて後述する。
【0119】さらに、ステップ911において、オブジ
ェクト管理部107は、ステップ910と同様に、当該
処理でリンク先オブジェクトに対して行なう更新を記録
しておくための更新要求情報を作成する。この更新要求
情報作成処理の詳細についても、図10,11を用いて
後述する。
【0120】ステップ911を終えた後、リンク設定A
PI処理を終了する。
【0121】次に、図10,11を用いて、図9のステ
ップ910,911に示したデータベース管理システム
(DBMS)クライアントにおける更新情報作成の処理
の詳細について説明する。図10は、本発明の一実施形
態によるオブジェクト管理方法におけるリンク設定時の
更新情報作成の処理手順を示すフローチャートであり、
図11は、本発明の一実施形態によるオブジェクト管理
方法におけるリンク設定時の更新情報作成処理で扱われ
るデータ構造の説明図である。
【0122】る。
【0123】ステップ1001において、オブジェクト
管理部107は、ディクショナリ定義管理無111から
取得した関連定義情報を参照する。取得した関連定義情
報から、オブジェクト内にリンク先情報を保持する位置
のオフセットを取得し、リンク先情報をリンク元オブジ
ェクト内に埋め込む。ここで、リンク先情報とは、リン
ク先オブジェクトのOIDである。
【0124】即ち、図11において、オブジェクト11
01aをリンク先オブジェクトとし、オブジェクト11
01bをリンク元オブジェクトとすると、リンク元オブ
ジェクト110bのリンク先情報1102に、リンク先
オブジェクト1101aの「仮OIDa」を埋め込む。
【0125】ステップ1002において、オブジェクト
管理部107は、リンク元オブジェクトから、「オブジ
ェクト制御ヘッダ」に保持しているアドレスを参照し
て、オブジェクト状態管理エントリを取得する。
【0126】即ち、図11において、リンク元オブジェ
クト1101bの「オブジェクト制御ヘッダ」の先頭に
保持しているアドレスを参照して、オブジェクト状態管
理テーブル110のオブジェクト状態管理エントリ11
04bを取得する。
【0127】ステップ1003において、オブジェクト
管理部107は、リンク先オブジェクトのOIDが仮O
IDであるかを判定する。この判定は、OID内の「O
ID形式」を参照して行われる。仮OIDの場合は、ス
テップ1004に進み、仮OIDでない場合は、ステッ
プ1006に進む。
【0128】即ち、図11において、リンク先オブジェ
クト1101aの「オブジェクト制御ヘッダ」内の「自
分自身のOID」の「OID形式」(図8参照)を参照
して判定する。ここでは、リンク先オブジェクト110
1a及びリンク元オブジェクト1101bのいづれも仮
OIDであるので、ステップ1004に進むものとす
る。
【0129】ステップ1004において、オブジェクト
管理部107は、リンク先オブジェクトのOIDを埋め
込む位置(リンク元オブジェクト内のリンク先情報)の
オフセットをもとに、OID変換情報を作成する。この
OID変換情報に設定するオフセットは、データベース
管理システム(DBMS)サーバ103が、仮OIDが
埋め込まれた位置を効率良く得るために用いられる。
【0130】即ち、図11において、OID変換情報1
105には、更新位置オフセットが設定される。この更
新位置オフセットは、リンク元オブジェクト1101b
のリンク先情報11102のオフセットである。
【0131】次に、ステップ1005において、オブジ
ェクト管理部107は、リンク元オブジェクトのオブジ
ェクト管理管理エントリに、OID変換情報のアドレス
を設定する。1つのオブジェクトに対して複数の仮OI
Dが埋め込まれる場合に対処するため、OID変換情報
をアドレスポインタで連結し、オブジェクト状態管理エ
ントリには、OID変換情報のチェインの先頭の要素
(OID変換情報1105)のアドレスを保持する。
【0132】即ち、図11において、リンク元オブジェ
クト1101bのオブジェクト管理管理エントリ110
4bに、OID変換情報1105のアドレスを設定す
る。アドレスの設定位置は、図8において説明したよう
に、OID変換要請フラグの前の位置である。複数の仮
OIDが埋め込まれる場合には、図11に示すように、
次のOID変換情報を、前のOID変換情報1105の
アドレスポインタで連結するようにする。
【0133】ステップ1006において、オブジェクト
管理部107は、リンク先情報を設定するための部分更
新情報を作成する。部分更新情報は、「更新位置オフセ
ット」,「更新範囲」および「更新データ内容の先頭ア
ドレス」から構成されている。1つのオブジェクトに対
する複数の部分更新に対処するため、部分更新情報は、
「アドレスポインタ」で連結する。オブジェクト状態管
理エントリには、部分更新情報チェインの先頭要素のア
ドレスを保持する。
【0134】即ち、図11において、部分更新情報11
03は、「更新位置オフセット」,「更新範囲サイ
ズ」,「更新データ内容の先頭アドレス」及び「次の部
分更新情報のアドレスポインタ」から構成されている。
「更新データ内容の先頭アドレス」は、リンク先情報1
102の先頭アドレスである。オブジェクト状態管理エ
ントリ1104bは、部分更新情報のチェインの先頭の
要素(部分更新情報1103)のアドレスを保持してい
る。その位置は、図8において説明したように、OID
変換情報1105のアドレスの前の位置である。
【0135】ステップ1007において、オブジェクト
管理部107は、リンク元オブジェクトのオブジェクト
状態管理エントリに部分更新情報のアドレスを設定す
る。既に、部分更新情報が作成されている場合には、新
たに作成した部分更新情報を、既作成の部分更新情報の
チェインに連結する。
【0136】即ち、図11において、オブジェクト状態
管理エントリ1104bの「OID変換要請フラグ」の
2つ前の位置に、部分更新情報1103のアドレスを設
定する。
【0137】ステップ1008において、オブジェクト
管理部107は、リンク元オブジェクト状態管理エント
リを設定する。即ち、リンク元オブジェクト状態管理エ
ントリの「状態フラグ」の「更新」を示す値をONにす
る。このフラグは、後のトランザクションコミットで反
映情報電文を作成するときに、当該オブジェクトに部分
更新の反映が要求されていること判定するために用い
る。
【0138】即ち、図11において、リンク元オブジェ
クト1101bのオブジェクト状態管理エントリ110
4bのオブジェクト状態フラグの「更新」を示す値をO
Nにする。
【0139】ステップ1009において、オブジェクト
管理部107は、リンク元オブジェクト状態管理エント
リを、反映要求チェインに連結する。
【0140】即ち、図11において、リンク元オブジェ
クト1101bのオブジェクト状態管理エントリ110
4bを、反映要求チェイン409に連結する。
【0141】ステップ1009を終えた後、更新情報作
成処理を終了する。
【0142】ここで、図11において、図10において
説明した更新情報作成処理を実行した結果、リンク元オ
ブジェクト1101bのオブジェクトデータ領域内にあ
るリンク先情報1102に、リンク先オブジェクト11
01aに割り付けられたOID(仮OIDa)が設定さ
れる。この設定要求を記録しておくために、部分更新情
報1103が割り付けられる。部分更新情報1103
は、オブジェクト状態管理エントリ1104bの部分更
新情報チェインにつながれる。
【0143】また、リンク先オブジェクト1101aの
OIDが仮OIDの場合は、OID変換情報1105が
作成され、オブジェクト状態管理エントリ1104bの
OID変換情報チェインにつながれる。リンク先が正式
OIDを持つ場合は、このリンク設定に関しては、OI
D変換情報は不要となる。
【0144】なお、上述した例では、双方向関連として
いるため、リンク先オブジェクトについても、同様の構
造をとっている。
【0145】次に、図12,図13を用いて、図2のス
テップ206に示したデータベース管理システム(DB
MS)クライアントにおけるトランザクションコミット
するAPIの処理の詳細について説明する。図12は、
本発明の一実施形態によるオブジェクト管理方法におけ
るトランザクションコミットAPIの処理手順を示すフ
ローチャートであり、図13は、本発明の一実施形態に
よるオブジェクト管理方法におけるトランザクションコ
ミット要求の通信電文データ構造の説明図である。
【0146】ステップ1201において、データベース
管理システム(DBMS)クライアント106は、オブ
ジェクト制御ヘッダからオブジェクト状態管理エントリ
の反映要求チェインの先頭要素アドレスを取得する。
【0147】即ち、図11において、オブジェクト11
01bのオブジェクト制御ヘッダからオブジェクト状態
管理エントリ1104bを取得し、オブジェクト状態管
理エントリ1104bから反映要求チェイン409の先
頭アドレスを取得する。
【0148】ステップ1202において、データベース
管理システム(DBMS)クライアント106は、ステ
ップ1201で取得した反映要求チェインに要素がある
か、すなわち、反映要求がなされているかを判定する。
反映要求がなされていない場合は、ステップ1203に
進み、反映要求がなされている場合は、ステップ120
5に進む。
【0149】ここで、リンク先オブジェクト1101a
とリンク元オブジェクト1101bがリンクされている
ので、反映要求がなされているとして、ステップ120
5に進んで説明する。
【0150】ステップ1205において、データベース
管理システム(DBMS)クライアント106は、仮O
ID管理部の生成通番を、OID変換総数として、通信
電文に設定する。この値は、サーバでOID変換が必要
な総数を伝え、OID変換テーブルの領域を初期化する
ために用いられる。
【0151】ここでは、オブジェクト1101a,11
01bの2つのオブジェクトに対して仮OIDが発行さ
れており、この2つのオブジェクトを一括送信する場合
について考えると、図13に示したコミット要求の通信
電文1301の変換OID総数302には、”2”が設
定される。
【0152】ステップ1206において、データベース
管理システム(DBMS)クライアント106は、反映
要求チェイン409をたどり、反映が必要なオブジェク
ト状態管理エントリ1104bのアドレスを取得する。
【0153】ステップ1207において、データベース
管理システム(DBMS)クライアント106は、ステ
ップ1206で取得したオブジェクト状態管理エントリ
内の「状態フラグ」で「新規」を示す値がONであるか
を判定する。「新規フラグ」がONの場合には、ステッ
プ1208に進み、オブジェクト生成要求電文を作成す
る。オブジェクト生成要求電文は、図13のコマンドパ
ラメタ1303に示されるように作成されるが、このオ
ブジェクト生成要求電文作成の詳細については、図14
を用いて後述する。「新規フラグ」がONでない場合に
は、ステップ1209に進む。
【0154】ステップ1209において、データベース
管理システム(DBMS)クライアント106は、反映
要求チェインの続きがあるかを判定する。続きがある場
合には、ステップ1206に戻り、ステップ1206か
らステップ1209までの処理を繰り返すことにより、
すべての生成要求についての電文が作成される。2回目
のステップ1208において、図13のコマンドパラメ
タ1304に示されるオブジェクト生成要求電文が作成
される。ステップ1209で続きがない場合は、ステッ
プ1210に進む。
【0155】ステップ1210において、データベース
管理システム(DBMS)クライアント106は、反映
要求チェインの先頭に戻る。即ち、図11に示したオブ
ジェクト制御ヘッダ1101bを参照して、オブジェク
ト状態管理テーブル110のオブジェクト状態管理エン
トリ1104bのアドレスを取得する。
【0156】ステップ1211において、データベース
管理システム(DBMS)クライアント106は、反映
要求チェインをたどり、反映が必要なオブジェクト状態
管理エントリのアドレスを取得する。即ち、図11に示
した反映要求チェイン409をたどり、次のオブジェク
ト状態管理エントリのアドレスを取得する。
【0157】ステップ1212において、データベース
管理システム(DBMS)クライアント106は、オブ
ジェクト状態管理エントリ内の状態フラグで更新を示す
値がONであるかを判定する。更新フラグがONの場
合、ステップ1213に進み、オブジェクト更新要求電
文を作成する。オブジェクト更新要求電文は、図13の
コマンドパラメタ1305に示されるように作成される
が、このオブジェクト更新要求電文作成の詳細について
は、図15を用いて後述する。更新フラグがONでない
場合、ステップ1214に進む。
【0158】ステップ1214において、データベース
管理システム(DBMS)クライアント106は、反映
要求チェインの続きがあるかを判定する。続きがある場
合は、ステップ1211に戻り、ステップ1211から
ステップ1214までの処理を繰り返すことにより、す
べての更新要求についての電文が作成される。2回目の
ステップ1213において、図13のコマンドパラメタ
1308に示されるオブジェクト更新要求電文が作成さ
れる。ステップ1214で続きがない場合は、ステップ
1215に進む。これにより、すべての更新要求につい
ての電文が作成される。
【0159】ステップ1215において、データベース
管理システム(DBMS)クライアント106は、トラ
ンザクションコミット要求の電文を作成する。データベ
ース管理システム(DBMS)クライアント106は、
通信管理部114にコミット要求の電文領域を確保し、
図13に示すトランザクションコミット要求電文のコマ
ンドパラメタブロック1311に、コミット要求である
ことを示すコマンド識別子を設定する。なお、コマンド
識別子の後方の次ブロックオフセットには、次ブロック
があるときには、その次ブロックのオフセットが設定さ
れる。
【0160】次に、ステップ1216において、データ
ベース管理システム(DBMS)クライアント106
は、通信管理部114より、サーバ103へ電文を送信
し、トランザクションコミット要求処理を終了する。
【0161】なお、ステップ1202において、反映要
求がないとして、ステップ1203に進んだ場合に、ス
テップ1203では、ステップ1215と同様にして、
トランザクションコミット要求の電文を作成し、さら
に、ステップ1204において、データベース管理シス
テム(DBMS)クライアント106は、通信管理部1
14より、サーバ103へ電文を送信し、トランザクシ
ョンコミット要求処理を終了する。
【0162】次に、図13を用いて、トランザクション
コミット要求電文のデータ構造について説明する。通信
電文1301の電文制御ヘッダは、(1)「電文の形
式」(サーバへの送信データであることを示す値な
ど),(2)「電文のサイズ」,(3)「先頭ブロック
オフセット」(先頭のコマンドパラメタブロック130
3の位置を示すオフセット値;通信電文1301の先頭
からのオフセット値として与えられている),(4)
「ブロック総数」(通信電文1301に保持するコマン
ドパラメタブロック1303の総数),(5)「変換O
ID総数」(図12のステップ1205で設定)から構
成されている。「ブロック総数」に設定されたデータか
ら、通信電文1301が5つのコマンドパラメタブロッ
ク1303,1304,1305,1308,1311
によって構成されていることが示されている。また、
「変換OID総数1302」により、この通信電文処理
で変換OIDテーブルに登録する要素の数が”2”であ
ることが示されている。
【0163】1番目のコマンドパラメタブロック130
3には、「コマンド識別子」に”生成”が設定されてお
り、「オブジェクトデータ」として”オブジェクトa”
が設定されており、オブジェクトaの生成要求が記され
ている。コマンドパラメタブロック1303では、「O
ID変換テーブル登録要請フラグ」がONに設定されて
おり、データベース管理システム(DBMS)サーバ1
03で要求を処理するときに、OID変換テーブル12
5にこのオブジェクトについてのエントリを登録するよ
うに指示されている。また、「次ブロックオフセット」
により、コマンドパラメタブロック1304の先頭位置
を指示している。
【0164】2番目のコマンドパラメタブロック130
4には、コマンドパラメタブロック1303と同様に、
オブジェクトbについての生成要求が記されている。コ
マンドパラメタブロック1304の「OID変換テーブ
ル登録要請フラグ」がONに設定されており、また、
「次ブロックオフセット」により、コマンドパラメタブ
ロック1305の先頭位置を指示している。
【0165】3番目のコマンドパラメタブロック130
5には、「コマンド識別子」に”更新”が設定されてお
り、「更新対象データ」として”仮OIDa”が設定さ
れており、オブジェクトaの更新要求が記されている。
「次ブロックオフセット」により、コマンドパラメタブ
ロック1308の先頭位置を指示している。「部分更新
数」には、図11に示した部分更新情報1103のチェ
インの数が設定される。「部分更新情報オフセット」
は、部分更新情報1306の先頭位置を指示している。
「OID変換数」は、図11に示したOID変換情報1
105のチェインの数が設定される。「OID変換情報
オフセット」は、OID変換情報1307の先頭位置を
指示している。
【0166】さらに、部分更新情報1306には、オブ
ジェクトbへのリンク先情報の設定情報が記されてい
る。「部分更新オフセット」,「部分更新オフセット」
及び「更新データ内容」(リンク先情報)は、図11に
示した部分更新情報1103の内容が設定される。
【0167】また、OID変換情報1307には、リン
ク先情報内のオブジェクトbの仮OIDを変換するため
の情報が記されている。「OID変換位置オフセット」
は、図11に示したOID変換情報1105の内容が設
定される。
【0168】4番目のコマンドパラメタブロック130
8,部分更新情報1309,OID変換情報1310に
は、コマンドパラメタブロック1305,部分更新情報
1306,OID変換情報1307と同様にして、オブ
ジェクトbの更新要求が記されている。
【0169】5番目のコマンドパラメタブロック131
1には、コミット要求が記されている。このコマンドパ
ラメタブロック1311により、データベース管理シス
テム(DBMS)サーバ103でトランザクションコミ
ットが行なわれることにより、コマンドパラメタブロッ
ク1303からコマンドパラメタブロック1310によ
る要求が、データストアへ反映されることが保証され
る。
【0170】次に、図14を用いて、図12のステップ
1208に示したデータベース管理システム(DBM
S)クライアントにおけるオブジェクト生成要求電文作
成の処理の詳細について説明する。図14は、本発明の
一実施形態によるオブジェクト管理方法におけるオブジ
ェクト生成要求電文作成の処理手順を示すフローチャー
トである。
【0171】ステップ1401において、データベース
管理システム(DBMS)クライアント106は、オブ
ジェクト108のデータサイズをもとに電文に必要な領
域サイズを算出する。
【0172】ステップ1402において、通信管理部1
14は、ステップ1401で算出した値を元に、電文領
域を確保する。
【0173】ステップ1403において、データベース
管理システム(DBMS)クライアント106は、オブ
ジェクト状態管理エントリ1104b内の「OID変換
テーブル登録要請フラグ」がONであるかを判定する。
「OID変換テーブル登録要請フラグ」がONの場合
は、ステップ1404に進み、ONでない場合には、ス
テップ1405に進む。
【0174】ステップ1404において、データベース
管理システム(DBMS)クライアント106は、コマ
ンドパラメタ中の「OID変換テーブル登録要請フラ
グ」をONに設定する。即ち、図13に示したコマンド
パラメタブロック1303,1304中の「OID変換
テーブル登録要請フラグ」をONに設定する。
【0175】ステップ1405において、データベース
管理システム(DBMS)クライアント106は、オブ
ジェクト108のデータをコマンドパラメタ中の新規オ
ブジェクトデータ領域にコピーする。即ち、オブジェク
トデータをコマンドパラメタブロック1303,130
4の中の「オブジェクトデータ」の領域に設定する。ス
テップ1405を終えた後、生成要求電文作成の処理を
終了する。
【0176】次に、図15を用いて、図12のステップ
1213に示したデータベース管理システム(DBM
S)クライアントにおけるオブジェクト更新要求電文作
成の処理の詳細について説明する。図15は、本発明の
一実施形態によるオブジェクト管理方法におけるオブジ
ェクト更新要求電文作成の処理手順を示すフローチャー
トである。
【0177】ステップ1501において、データベース
管理システム(DBMS)クライアント106は、オブ
ジェクト状態管理エントリの部分更新情報のチェインを
たどり、更新要求数をカウントし、電文のコマンドパラ
メタブロックに必要なサイズを算出する。即ち、図11
に示した部分更新情報1103のチェインをたどり、部
分更新情報のエントリ数をカウントする。
【0178】ステップ1502において、データベース
管理システム(DBMS)クライアント106は、OI
D変換情報チェインをたどり、変換する仮OID数をカ
ウントし、電文のコマンドパラメタブロックに必要なサ
イズを算出する。即ち、図11に示したOID変換情報
1105のチェインをたどり、OIDの変換要求数をカ
ウントする。
【0179】ステップ1503において、データベース
管理システム(DBMS)クライアント106は、ステ
ップ1501およびステップ1502で得た値をもと
に、更新要求コマンドパラメタブロック全体で必要なサ
イズを算出し、通信管理部114は、電文領域を確保す
る。
【0180】ステップ1504において、データベース
管理システム(DBMS)クライアント106は、更新
対象オブジェクトのOIDを通信電文に設定する。即
ち、図11に示したオブジェクト状態管理エントリ11
04bの仮OIDbを、図13に示したコマンドパラメ
タブロック1305の「更新対象」に設定する。
【0181】ステップ1505において、データベース
管理システム(DBMS)クライアント106は、部分
更新情報1103のチェインをたどり、1つの部分更新
情報1103を取得する。
【0182】ステップ1506において、データベース
管理システム(DBMS)クライアント106は、ステ
ップ1505で得た部分更新情報を参照し、「部分更新
位置オフセット」,「更新範囲」を取得し、これを通信
電文に設定する。また、オブジェクトキャッシュ上のオ
ブジェクトの更新内容を参照し、更新データ内容を電文
に設定する。即ち、図11に示した部分更新情報110
3の「部分更新位置オフセット」,「部分更新範囲サイ
ズ」を取得し、図13に示した部分更新情報1306の
「部分更新位置オフセット」,「部分更新範囲サイズ」
に設定し、また、更新データ内容(リンク先情報)を設
定する。
【0183】ステップ1507において、データベース
管理システム(DBMS)クライアント106では、部
分更新情報チェインで続き要素があるかを判定する。続
きがある場合は、ステップ1505に戻り、ステップ1
505からステップ1507の処理を繰り返し、すべて
の部分更新情報の電文を作成する。即ち、図13に示し
た部分更新情報1306及び部分更新情報1309が作
成される。
【0184】一方、ステップ1507の判定において、
続きがない場合は、ステップ1508に進む。
【0185】ステップ1508において、データベース
管理システム(DBMS)クライアント106は、更新
情報の数および電文中で更新情報を設定した位置のオフ
セット情報を、コマンドパラメタブロックのブロック制
御ヘッダに設定する。即ち、図13に示したコマンドパ
ラメタブロック1305の「部分更新数」に、更新情報
の数を設定し、「部分更新情報オフセット」に、電文中
で更新情報を設定した位置のオフセット情報を設定す
る。
【0186】ステップ1509において、データベース
管理システム(DBMS)クライアント106は、更新
データ中にOID変換情報があるか否かを判定する。即
ち、図11に示したオブジェクト状態管理エントリ11
04bの「OID変換情報アドレス」が、OID変換情
報1105の先頭アドレスを保持しているか判定する。
このオブジェクト内に、OID変換が必要であるかを判
定する。
【0187】OID変換情報がある場合は、ステップ1
510に進み、OID変換情報がない場合は、ステップ
1512に進む。
【0188】ステップ1510において、データベース
管理システム(DBMS)クライアント106は、OI
D変換情報チェインをたどり、1つのOID変換情報を
得る。即ち、図11に示したOID変換情報1105を
取得する。
【0189】次に、ステップ1511において、データ
ベース管理システム(DBMS)クライアント106
は、OID変換情報を電文に設定する。ここで、OID
変換する位置を示すオフセットを設定する。
【0190】即ち、図13に示したOID変換情報13
07を設定する。また、このとき、「次OID変換オフ
セット」を設定する。
【0191】ステップ1512において、データベース
管理システム(DBMS)クライアント106は、OI
D変換情報チェインで続き要素があるかを判定する。続
きがある場合は、ステップ1510に戻り、ステップ1
510からステップ1512の処理を繰り返す。これに
より、すべてのOID変換情報の電文が作成される。即
ち、OID変換情報1307,1310が設定される。
続きがない場合は、ステップ1513に進む。
【0192】ステップ1513において、データベース
管理システム(DBMS)クライアント106は、ステ
ップ1509からステップ1512の処理で作成したO
ID変換情報の数,および電文中でのOID変換情報の
位置を示すオフセットをコマンドパラメタブロックのブ
ロック制御ヘッダに設定する。即ち、図13に示したコ
マンドパラメタブロック1305,1308の「OID
変換数」に、OID変換情報の数を設定し、「OID変
換情報オフセット」に、電文中でのOID変換情報の位
置を示すオフセットを設定する。
【0193】ステップ1513を終えた後、当該更新要
求電文作成処理を終了する。
【0194】次に、図16を用いて、図2のステップ2
06に示したデータベース管理システム(DBMS)サ
ーバにおけるトランザクションコミットの処理の詳細に
ついて説明する。図16は、本発明の一実施形態による
オブジェクト管理方法におけるトランザクションコミッ
トの処理手順を示すフローチャートである。
【0195】ステップ1601において、サーバアプリ
ケーション118aは、通信管理部107から、電文の
アドレスを取得する。
【0196】ステップ1602において、124は、通
信電文中の変換OID総数(図13に示した変換OID
総数1302)をもとに、総数分の要素配列を保持可能
な領域を確保し、OID変換テーブル125を初期化す
る。
【0197】ステップ1603において、サーバアプリ
ケーション118は、ステップ1601で得た通信電文
から、電文制御ヘッダの「先頭ブロックオフセット」を
参照して、コマンドパラメタブロック1303を取得す
る。
【0198】ステップ1604において、サーバアプリ
ケーション118は、コマンドパラメタブロック130
3の「コマンド識別子」が「生成」を示す値であるかを
判定する。「生成」の場合は、ステップ1605に進
む。ステップ1605において、オブジェクト管理部1
19は、生成要求の電文解析処理を行なう。生成要求の
電文解析処理の詳細については、図17を用いて後述す
る。ステップ1605を終えた後、ステップ1610に
進む。
【0199】ステップ1610において、次のコマンド
パラメタブロックを取得する。図13に示すように、コ
マンドパラメタブロック1303の「コマンド識別子」
は「生成」であり、続くコマンドパラメタブロック13
04の「コマンド識別子」も「生成」であるので、ステ
ップ1605による生成コマンド処理を実行する。
【0200】一方、ステップ1604において、「生
成」でない場合は、ステップ1606へ行き、コマンド
識別子が「更新」を示す値であるかを判定する。
【0201】図13に示したコマンドパラメタブロック
1305,1308の「コマンド識別子」は「更新」で
あるので、ステップ1607に進み、オブジェクト管理
部119は、更新要求の電文解析処理を行なう。更新要
求の電文解析処理の詳細については、図18を用いて後
述する。ステップ1607を終えた後、ステップ161
0に進む。
【0202】一方、ステップ1606で「更新」でない
場合は、ステップ1608へ行き、コマンド識別子が
「コミット」を示す値であるかを判定する。
【0203】図13に示したコマンドパラメタブロック
1311の「コマンド識別子」は「コミット」であるの
で、ステップ1609に進み、サーバアプリケーション
118は、トランザクション管理部117へトランザク
ションコミットの要求を行なう。ステップ1609を終
えた後、当該コミット処理を終了する。
【0204】一方、ステップ1608において、要求種
別が「コミット」でない場合は、ステップ1610に進
み、ステップ1610では、電文中の次のコマンドパラ
メタブロックを取得し、ステップ1604に戻る。以上
の繰り返しにより、「コミット」要求までのすべての
「生成」および「更新」の反映要求に対する処理が行な
われる。
【0205】次に、図17,図19を用いて、図16の
ステップ1605に示したデータベース管理システム
(DBMS)サーバにおけるオブジェクト生成コマンド
処理の詳細について説明する。図17は、本発明の一実
施形態によるオブジェクト管理方法における生成コマン
ドの処理手順を示すフローチャートであり、図19は、
本発明の一実施形態によるオブジェクト管理方法におけ
るDBMSサーバ内でのオブジェクトデータの構造の説
明図である。
【0206】ステップ1701において、オブジェクト
管理部119は、コマンドパラメタブロック中のオブジ
ェクトデータサイズを取得し、オブジェクトデータサイ
ズのオブジェクトを保持できるように、オブジェクトキ
ャッシュ領域を確保する。
【0207】即ち、図13に示したコマンドパラメタブ
ロック1303,1304の「オブジェクトデータ」の
構成は、図8に示したような構成になっており、図8に
示したオブジェクトデータ108のオブジェクト制御ヘ
ッダ801の中の「オブジェクトの全体のサイズ」から
オブジェクトデータサイズを取得する。
【0208】ステップ1702において、オブジェクト
管理部119は、コマンドパラメタブロック中のオブジ
ェクトデータを、ステップ1701で確保した領域にコ
ピーする。即ち、図13に示したコマンドパラメタブロ
ック1303,1304の「オブジェクトデータ」を、
図19に示したオブジェクトキャッシュ120のオブジ
ェクト1901aにコピーする。
【0209】ステップ1703において、オブジェクト
管理部119は、格納制御部126にオブジェクト格納
を要求する。格納位置が確定することにより、永続識別
子(PID)が与えられ、OID管理部124よりこの
オブジェクトに対して正式OIDが割り付けられる。こ
こで、割り付けられた正式OIDをオブジェクトキャッ
シュ120上のオブジェクト1901aの制御ヘッダの
自分自身のOIDの保持域(図19における正式OID
aの領域)に設定する。即ち、図19のオブジェクトキ
ャッシュ120上のオブジェクト1901aの「自分自
身のOID」に「正式OIDa」が設定され、オブジェ
クト1901bの「自分自身のOID」に「正式OID
b」が設定される。
【0210】ステップ1704において、オブジェクト
管理部119は、このオブジェクトデータに対して、オ
ブジェクト状態管理エントリを割り付け、初期化する。
これにより、このオブジェクトが活性化状態となる。
【0211】ステップ1705において、オブジェクト
管理部119は、コマンドパラメタブロック1303,
1304中の「OID変換テーブル登録要請フラグ」が
ONであるかを判定する。フラグがONの場合は、ステ
ップ1706に進む。
【0212】ステップ1706において、オブジェクト
管理部119は、オブジェクトの仮OID内の通番を元
に、OID変換テーブルに登録する。即ち、図13に示
したコマンドパラメタブロック1303,1304の中
の構造は、図8に示したとおりであり、図8に示したオ
ブジェクト108のオブジェクト制御ヘッダ801の中
の「自分自身のOID」の中の仮OID803内の生成
通番をもとに、図19に示したOID変換テーブル12
5において、このオブジェクトに関するエントリの登録
位置を確定し、活性化されているオブジェクトデータの
アドレスを設定する。
【0213】ステップ1706を終えた後、または、ス
テップ1705でフラグがONでない場合は、生成コマ
ンド処理を終了する。
【0214】次に、図18を用いて、図16のステップ
1607に示したデータベース管理システム(DBM
S)サーバにおけるオブジェクト更新コマンド処理の詳
細について説明する。図18は、本発明の一実施形態に
よるオブジェクト管理方法における更新コマンドの処理
手順を示すフローチャートである。
【0215】ステップ1801において、オブジェクト
管理部119は、更新対象オブジェクトをオブジェクト
キャッシュに活性化する。ここで、更新対象が新規オブ
ジェクトの場合は、先に、図17で説明した処理によ
り、すでに活性化状態になっており、OID変換テーブ
ルを参照することにより、対象オブジェクトを取得する
ことができる。また、更新対象がデータストアに格納さ
れている既存のオブジェクトの場合は、通信電文中に指
定される正式OIDにより、周知の活性化機構を用い
て、データストアから活性化されるものとする。
【0216】ステップ1802において、オブジェクト
管理部119は、ブロック制御ヘッダを参照して、ブロ
ック中の1つの部分更新情報を取得する。即ち、図13
に示したコマンドパラメタブロック1305の「部分更
新情報オフセット」から部分更新情報1306を取得す
る。
【0217】ステップ1803において、オブジェクト
管理部119は、ステップ1802で取得した部分更新
情報をもとに、ステップ1801で取得したオブジェク
トデータを書き換える。即ち、ステップ1801におい
て、初期化した領域に部分更新情報を入れる。
【0218】ステップ1804において、オブジェクト
管理部119は、更新情報のブロック制御ヘッダを参照
し、先のステップ1803で処理した部分更新情報に続
きがあるか判定する。
【0219】続きがある場合は、ステップ1802に戻
り、すべての部分更新が行なわれるようにする。即ち、
図13に示したコマンドパラメタブロック1308の
「部分更新情報オフセット」から部分更新情報1309
を取得し、取得した部分更新情報をもとに、ステップ1
801で取得したオブジェクトデータを書き換える。続
きがない場合は、ステップ1805に進み。
【0220】ステップ1805において、オブジェクト
管理部119は、ブロック制御ヘッダを参照し、ブロッ
ク中にOID変換情報を保持しているか判定する。即
ち、図13に示したコマンドパラメタブロック1305
の「OID変換情報オフセット」からOID変換情報を
保持しているか判定する。保持していない場合は、ステ
ップ1812に進み、保持している場合は、ステップ1
806に進む。
【0221】ステップ1806において、オブジェクト
管理部119は、ブロック中から1つのOID変換情報
を取得する。即ち、図13に示したOID変換情報13
07を取得する。
【0222】ステップ1807において、オブジェクト
管理部119は、ステップ1806で取得したOID変
換情報内のオフセットをもとに、オブジェクトデータ内
に埋め込まれている仮OIDを取得する。即ち、図13
に示したコマンドパラメタブロック1305の中の「更
新対象」の「仮OIDa」を取得する。
【0223】ステップ1808において、オブジェクト
管理部119は、ステップ1807で取得した仮OID
の内容を参照し、仮OIDの内部データに保持されてい
る生成通番を取得する。即ち、仮OIDの構造は、図8
に示したようであり、図8の仮OID803の「生成通
番」を取得する。
【0224】ステップ1809において、オブジェクト
管理部119は、ステップ1808で得られた値をもと
に、この値を、OID変換テーブル配列の要素位置とし
て、オブジェクトに対応するエントリを取得する。この
エントリには、図19に示したように、オブジェクトキ
ャッシュ120上に活性化されたオブジェクトのアドレ
スが設定されている。オブジェクト1901の制御ヘッ
ダには、自分自身の正式OIDが設定されているので、
これを参照することにより、正式OIDを取得する。
【0225】ステップ1810において、オブジェクト
管理部119は、オブジェクトデータ内の仮OIDを、
ステップ1809で得られた正式OIDに書き換える。
即ち、図19に示したオブジェクト1901aの中で、
図8に示したオブジェクト制御ヘッダ801の中の「リ
ンク先OID」に正式OIDbを書き込む。
【0226】ステップ1811において、オブジェクト
管理部119は、ブロック中に続きのOID変換情報が
あるか判定する。OID変換情報がある場合は、ステッ
プ1806に戻り、すべてのOID変換を処理するま
で、ステップ1806からステップ1811の処理を繰
り返す。これにより、図19に示したオブジェクト19
01bの中の「リンク先OID」に正式OIDaを書き
込まれる。
【0227】一方、ステップ1811において、OID
変換情報がない場合は、ステップ1812に進む。
【0228】ステップ1812において、オブジェクト
管理部119は、格納制御部126に対して、これまで
の更新をデータストアに反映するよう要求する。ステッ
プ1812を終えた後、当該更新コマンド処理を終了す
る。
【0229】ここで、図19を用いて、データベース管
理システム(DBMS)サーバにおけるオブジェクトデ
ータ構造について説明する。
【0230】オブジェクトa1901aとオブジェクト
b1901bが、オブジェクトキャッシュ120上に活
性化されている。OID管理部124のOID変換テー
ブル125には、オブジェクトaとオブジェクトbのそ
れぞれのエントリが登録されている。ここで、オブジェ
クトaは、生成通番でa番目に生成されたものとし、生
成順に従って、OID変換テーブル125の配列でa番
目にエントリが登録されている。同様に、オブジェクト
bについても、OID変換テーブル125の配列でb番
目にエントリが登録されている。
【0231】図17のステップ1703により、オブジ
ェクトa1901aとオブジェクトb1901bのオブ
ジェクト制御ヘッダで、「自分自身のOID」の保持領
域に、それぞれ、「正式OIDa」、「正式OIDb」
が設定されている。
【0232】また、図18のステップ1810により、
オブジェクトa1901aとオブジェクトb1901b
のリンク先情報で、「リンク先OID」に、それぞれ、
「正式OIDb」、「正式OIDa」が設定されてい
る。
【0233】以上、本発明の一実施形態について説明し
たが、これは例示したものであり、これによって本発明
が制限されるものではない。
【0234】なお、上述した例において、オブジェクト
間の関連の多重度は1対1としていたが、多対多の関連
についても、本発明を適用することができる。多対多関
連の実装方法としては、一般に、直にリンク先OIDを
保持するのではなく、OIDの集合を管理するコレクシ
ョン機能を介して実装され、コレクションの要素のOI
Dがリンク先オブジェクトのOIDであると解釈され
る。この場合、基本的にはOIDを扱うので、上記の方
式で仮OIDを正式OIDに変換すれば、実装すること
が可能である。
【0235】また、上述した例において、生成通番の一
意性を保証する期間単位をトランザクションとしている
が、サーバと通信を行なうタイミングや、データベース
(DB)接続、クライアントプロセス単位など、クライ
アントアプリケーションの形態に応じて適当に単位を設
定することも考えられる。
【0236】本実施形態によれば、クライアント−サー
バ構成のオブジェクト指向データベースシステムにおい
て、新規オブジェクトに対して生成順通番をもとにした
仮OIDを用いるにより、正式OIDを必要とするよう
なクライアントアプリケーションでのオブジェクト操作
を、データベース管理システム(DBMS)サーバとの
通信を行なうことなく(通信回数を削減して)、効率良
く処理することが可能となる。
【0237】また、複数個の仮OIDを一括してクライ
アントからサーバに送信することにより、通信回数を削
減することができる。
【0238】また、反映要求の電文にOID変換情報を
付加しておくことにより、仮OIDから正式OIDへの
変換を効率よく行えるようになる。
【0239】
【発明の効果】本発明によれば、クライアント−サーバ
型で構成されるオブジェクト指向データベースシステム
において、システム内でのオブジェクト識別性を保証し
つつ、サーバと通信を行うことなく、クライアントアプ
リケーションでのオブジェクト操作を効率よく処理でき
る。
【図面の簡単な説明】
【図1】本発明の一実施形態によるオブジェクト管理方
法を適用したオブジェクト指向データベース(OOD
B)システムの構成図である。
【図2】本発明の一実施形態によるオブジェクト管理方
法におけるクライアントアプリケーションでのアプリケ
ーションプログラムの処理フローの概念を示すフローチ
ャートである。
【図3】本発明の一実施形態によるオブジェクト管理方
法におけるデータベース(DB)接続APIの処理手順
を示すフローチャートである。
【図4】本発明の一実施形態によるオブジェクト管理方
法において用いるデータベース管理システム(DBM
S)クライアントで取り扱う制御データの構造の説明図
である。
【図5】本発明の一実施形態によるオブジェクト管理方
法においてクライアントアプリケーションが作成する通
信電文のデータ構造の説明図である。
【図6】本発明の一実施形態によるオブジェクト管理方
法におけるトランザクション開始API関数コールの処
理手順を示すフローチャートである。
【図7】本発明の一実施形態によるオブジェクト管理方
法におけるオブジェクト生成APIの処理手順を示すフ
ローチャートであり、
【図8】図7に示したオブジェクト生成APIの処理に
よって生成されるデータベース管理システム(DBM
S)クライアントのオブジェクトデータ構造の説明図で
ある。
【図9】本発明の一実施形態によるオブジェクト管理方
法におけるオブジェクト間リンク設定APIの処理手順
を示すフローチャートである。
【図10】本発明の一実施形態によるオブジェクト管理
方法におけるリンク設定時の更新情報作成の処理手順を
示すフローチャートである。
【図11】本発明の一実施形態によるオブジェクト管理
方法におけるリンク設定時の更新情報作成処理で扱われ
るデータ構造の説明図である。
【図12】本発明の一実施形態によるオブジェクト管理
方法におけるトランザクションコミットAPIの処理手
順を示すフローチャートである。
【図13】本発明の一実施形態によるオブジェクト管理
方法におけるトランザクションコミット要求の通信電文
データ構造の説明図である。
【図14】本発明の一実施形態によるオブジェクト管理
方法におけるオブジェクト生成要求電文作成の処理手順
を示すフローチャートである。
【図15】本発明の一実施形態によるオブジェクト管理
方法におけるオブジェクト更新要求電文作成の処理手順
を示すフローチャートである。
【図16】本発明の一実施形態によるオブジェクト管理
方法におけるトランザクションコミットの処理手順を示
すフローチャートである。
【図17】本発明の一実施形態によるオブジェクト管理
方法における生成コマンドの処理手順を示すフローチャ
ートである。
【図18】本発明の一実施形態によるオブジェクト管理
方法における更新コマンドの処理手順を示すフローチャ
ートである。
【図19】本発明の一実施形態によるオブジェクト管理
方法におけるDBMSサーバ内でのオブジェクトデータ
の構造の説明図である。
【符号の説明】
101a…クライアントアプリケーションa 101b…クライアントアプリケーションb 102…ネットワーク 103…データベース管理システム サーバ 104…データストア 105…アプリケーションプログラム 106…データベース管理システムクライアント 107…オブジェクト管理部 108…オブジェクト 109…オブジェクトキャッシュ 110…オブジェクト状態管理テーブル 111…ディクショナリ定義管理部 112…仮OID管理部 113…生成通番 114…通信管理部 115…更新電文 116…システム制御部 117…トランザクション管理部 118a…サーバアプリケーションa 118b…サーバアプリケーションb 119…オブジェクト管理部 120…オブジェクトキャッシュ 121…オブジェクト 122…オブジェクト状態管理テーブル 123…OID管理部 124…OID変換管理部 125…OID変換テーブル 126…格納制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 浅見 真人 神奈川県川崎市幸区鹿島田890番地の12 株式会社 日立製作所 情報・通信開 発本部内 (56)参考文献 国際公開95/032463(WO,A1) 鶴岡他,オブジェクト指向DBMSの アーキテクチャに関する考察,情報処理 学会研究報告,日本,社団法人情報処理 学会,1993年 7月,第93巻第65号(93 −DBS−94),p.109−116 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 G06F 17/30 G06F 13/00 G06F 9/44

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】データベース管理システムクライアント
    は、クライアントアプリケーションで生成したオブジェ
    クトに対して、このデータベース管理システムクライア
    ントで一意に識別する仮オブジェクト識別子を発行し、
    割り付け、 上記仮オブジェクト識別子を、上記データベースシステ
    ムで一意に識別する正式オブジェクト識別子に変換する
    ための補足的な情報であり、仮オブジェクト識別子から
    正式オブジェクト識別子にOID変換する位置を示すオ
    フセットである更新位置オフセットを有するOID変換
    情報を作成し、 データベース管理システムサーバへ、上記オブジェクト
    及びこのオブジェクトに対する上記OID変換情報を一
    括して送信し、記データベース管理システムサーバは、上記OID変
    換情報の更新位置オフセットを用いて、上記仮オブジェ
    クト識別子を上記正式オブジェクト識別子に変換し、
    記オブジェクトのデータストアへの格納を制御すること
    を特徴とするオブジェクト管理方法。
  2. 【請求項2】請求項1記載のオブジェクト管理方法にお
    いて、 上記データベース管理システムクライアントは、上記オ
    ブジェクトを生成順の番号で管理し、この生成順の番号
    に基づいて上記仮オブジェクト識別子をそれぞれのオブ
    ジェクトに割り付けることを特徴とするオブジェクト管
    理方法。
  3. 【請求項3】請求項1記載のオブジェクト管理方法にお
    いて、 上記データベース管理システムクライアントは、複数の
    オブジェクトを一括して上記データベース管理システム
    サーバに送信して、反映要求をすることを特徴とするオ
    ブジェクト管理方法。
  4. 【請求項4】請求項記載のオブジェクト管理方法にお
    いて、上記データベース管理システムクライアントは、 上記複
    数のオブジェクト間にリンクを設定し、上記データベー
    ス管理システムサーバへ、リンク先情報を設定する部分
    更新情報を送信することを特徴とするオブジェクト管理
    方法。
JP12049896A 1996-05-15 1996-05-15 オブジェクト管理方法 Expired - Fee Related JP3527014B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12049896A JP3527014B2 (ja) 1996-05-15 1996-05-15 オブジェクト管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12049896A JP3527014B2 (ja) 1996-05-15 1996-05-15 オブジェクト管理方法

Publications (2)

Publication Number Publication Date
JPH09305468A JPH09305468A (ja) 1997-11-28
JP3527014B2 true JP3527014B2 (ja) 2004-05-17

Family

ID=14787697

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12049896A Expired - Fee Related JP3527014B2 (ja) 1996-05-15 1996-05-15 オブジェクト管理方法

Country Status (1)

Country Link
JP (1) JP3527014B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4949000A (en) * 1999-05-24 2000-12-12 Sony Corporation Information processing device and method, and information processing system
JP5098950B2 (ja) * 2008-10-21 2012-12-12 株式会社島津製作所 クライアント・サーバ型分析システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522077A (en) * 1994-05-19 1996-05-28 Ontos, Inc. Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鶴岡他,オブジェクト指向DBMSのアーキテクチャに関する考察,情報処理学会研究報告,日本,社団法人情報処理学会,1993年 7月,第93巻第65号(93−DBS−94),p.109−116

Also Published As

Publication number Publication date
JPH09305468A (ja) 1997-11-28

Similar Documents

Publication Publication Date Title
US5649103A (en) Method and apparatus for managing multiple server requests and collating reponses
US5493671A (en) Method and apparatus for conversion of database data into a different format on a field by field basis using a table of conversion procedures
US6173313B1 (en) Methodology for hosting distributed objects at a predetermined node in a distributed system
JP3512910B2 (ja) 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
EP1252584B1 (en) Method for distributed transaction support using jdbc 1.0 drivers
US5519875A (en) Distributed processing system for modules, each having modularized objects
US5970488A (en) Real-time distributed database system and method
US6874061B1 (en) Method and system for implementing variable sized extents
KR100473162B1 (ko) 로그인 서비스 변수를 보관하는 방법
EP0684569B1 (en) Database system
US6314417B1 (en) Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers
KR100293795B1 (ko) 분산형데이터베이스시스템및데이터엔티티액세스방법
US6275843B1 (en) Method and apparatus for processing multiple service requests within a global transaction by a single server application program instance
EP0629960A2 (en) Extendible file system
US20070043726A1 (en) Affinity-based recovery/failover in a cluster environment
EP1021764B1 (en) I/o forwarding in a cache coherent shared disk computer system
JPH02228744A (ja) データ処理システム
JPH02201653A (ja) アプリケーシヨン・プログラム・インターフエース方法
US20040024808A1 (en) Wide area storage localization system
US6829761B1 (en) Method and apparatus for managing shared memory in a run-time environment
JP3527014B2 (ja) オブジェクト管理方法
US20080270609A1 (en) Computer-readable medium to multiplex multiple application server requests over a single database connection
US5920869A (en) Database management system
JPS61289457A (ja) マルチプロセス・コンピュータ装置における分散データ処理方法
JPH0765019A (ja) データベースサービス方法およびそれを利用したサービス制御装置

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040218

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees