(57)【要約】【課題】通信ネットワーク上に分散した、複数のオブジェクトインスタンスの属性を、更新するトランザクション処理システムに関する。トランザクションを指定時刻に実行する予約に基づく、トランザクションを実行を可能にする事と、予約時に、該トランザクションの実行可能性を判断する事。【解決手段】トランザクションに実行予定時刻を付加して、蓄積する手段を備え、これとデータ保持装置が現在保持するデータとを組合せる事により、任意時刻のデータ参照を可能とする。更に、予約受付時に、予約実行時刻におけるデータと要求された予約を評価する事により、該トランザクションを実行可能であるか否かを判断し、競合解消する。これによりトランザクションの実行時刻を予約可能、実行可否を予約時点で判断可能、予約の受入が既存の予約の実行を妨げるか否かを判断可能、既存予約より重要度の高い新規予約を受入可能となる。【選択図】  図１
2004164450.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのオペレータコンソール装置と、一つのトランザクション予約管理装置と、少なくとも一つのデータ保持装置から構成される、トランザクション予約実行システムであって、
前記トランザクション予約管理装置は、
トランザクションに実行予定時刻を付加して保持する手段と、
トランザクションを実行するトランザクション管理手段と、
保持した前記トランザクションの実行予定時刻の実行を制御する予約実行管理手段と、
トランザクションに実行予定時刻にトランザクションを実行する手段を備えることを特徴とする、トランザクション予約実行システム。
【請求項２】
請求項１記載のトランザクション予約実行システムであって、
前記トランザクション予約管理装置は、前記保持したトランザクションと、現在の確定データを評価する事により、任意の指定時刻の確定データを参照可能とする、任意時刻インスタンス取得手段を備え、
予約の受付時に、前記トランザクションの実行予定時刻データを前記オペレータコンソール装置が参照することを特徴とする、トランザクション予約実行システム。
【請求項３】
請求項１又は２の通信路管理システムであって、
前記トランザクション予約管理装置は、トランザクションの実行により、実行予定時刻に確定しているデータとの競合により一貫性が失われるか否かを判断する、制約条件検証部とを備え、
トランザクションの実行予定時刻に、該トランザクションを実行可能であるか否かを判断する手段を備えることを特徴とする、トランザクション予約実行システム。
【請求項４】
請求項１又は２の通信路管理システムであって、
前記トランザクション予約管理装置は、トランザクションの実行により、実行予定時刻以降の既存予約がとの競合により一貫性が失われるか否かを判断する、制約条件検証部と、
トランザクションの実行予定時刻に、該トランザクションを実行可能であるか否かを判断する手段を備えることを特徴とする、トランザクション予約実行システム。
【請求項５】
請求項３又は４のトランザクション予約実行システムであって、
要求されたトランザクションを拒絶することにより、競合を解消する手段を備えることを特徴とする、トランザクション予約実行システム。
【請求項６】
請求項４のトランザクション予約実行システムであって、
要求されたトランザクションと競合する既存予約を取り消すにより、競合を解消する手段を備えることを特徴とする、トランザクション予約実行システム。
【請求項７】
請求項１ないし６いずれか一に記載のトランザクション予約実行システムであって、
前記データ保持装置は、データベースシステムおよび／又はネットワーク機器であり、
前記データベースシステムのデータおよび／又は前記ネットワーク機器の設定情報を、前記トランザクションが更新することを特徴とする、トランザクション予約実行システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信ネットワーク上に分散した、複数のオブジェクトインスタンスの属性を更新するトランザクション処理システムに関する。
【０００２】
【従来の技術】
ルータ等のネットワーク機器を、オペレータからの設定要求に基づいて設定する、ネットワーク機器設定システムは、通信ネットワーク上に分散した、ネットワーク機器上の設定ファイルに対する、少なくとも一つのレコード又はオブジェクトインスタンスを新規作成、一部のフィールド又は属性の更新、あるいは削除することを処理するである。
【０００３】
このようなシステムは、トランザクション処理システムと呼ばれ、そのシステム技術は、データベースシステムと共に発展してきた。トランザクションとは、データベース等のデータ保持装置が保持するデータの、少なくとも一つのレコード又はオブジェクトインスタンスを新規作成、一部のフィールド又は属性の更新、あるいは削除することの要求の組である。
【０００４】
一般にデータベースシステムは、レコード或いはオブジェクトクラス間に、相互に関連を持っており、システム全体としてのデータが常に意味を成すことを、保証しなければならない。非特許文献１では、これを保証する為には、トランザクションの原子性（Ａｔｏｍｉｃｉｔｙ）、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）、トランザクションの独立性（Ｉｓｏｌａｔｉｏｎ）、トランザクションの結果の耐久性（Ｄｕｒａｂｉｌｉｔｙ）を保証する必要があるとしている。
【０００５】
上記のネットワーク機器設定システムを、通信事業者が用いて、顧客からの回線のサービスオーダに基づいて、ネットワーク機器を設定して回線を開通させる等の場合、回線開通予定日にトランザクションを実行する事を、予め予約できることが、業務効率上有効である。
【０００６】
予約を管理するシステムの例として、特許文献１がある。このシステムでは、会議室の予約システム等、一つの管理対象オブジェクトインスタンスに対する予約可否を判断する。また、予約に競合が生じた時点で、ユーザの個人情報等を用いて予約の重要度を算出し、これに基づいて予約の受付可否を判定することで、競合解消を行っている。このような、一つの管理対象オブジェクトインスタンスに対する予約可否を判定する手段を、複数組合せると、複数の資源を同時に使用する予約管理システムを、実現可能である。例えば、会議にて画像投影機を使用する場合、会議室と画像投影機を同時に使用する予約を管理する必要があるが、これは会議室の予約システムと画像投影機の予約システムを組合せる事により、実現可能である。
【０００７】
【非特許文献１】
“Ｘ／Ｏｐｅｎ  ＤＴＰ（Ｘ／Ｏｐｅｎ  ｄｉｓｔｒｉｂｕｔｅｄ  ｔｒａｎｓａｃｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ  ｒｅｆｅｒｅｎｃｅ  ｍｏｄｅｌ  Ｖｅｒｓｉｏｎ３”、１９９６年２月、Ｔｈｅ  Ｏｐｅｎ  Ｇｒｏｕｐ、ＩＳＢＮ１−８５９１２−１７０−５
【特許文献１】
特開平８−２９２９８７号公報
【０００８】
【発明が解決しようとする課題】
ネットワーク機器設定システムでは、通信インタフェースや帯域等のネットワークの資源の空き状況や、設定項目間の相互依存性などの制約が存在し、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）の保障が重要となる。
【０００９】
しかしながら、従来の予約管理システムでは、個々の管理対象オブジェクトインスタンスの空き状況は管理しているが、複数のインスタンス間の相互依存性を管理していない為、予約の実行時刻にならないと、実際のそのトランザクションを実行可能であるか否かを判断できない。
【００１０】
例えば、管理対象のオブジェクトクラスとして、顧客クラスと専用線クラスを考える。ここで、或る顧客が複数の専用線を契約している事を表現する為に、顧客クラスのインスタンスが、複数の専用線クラスのインスタンスの識別子を保持する、情報モデルで表現することとし、専用線は必ず顧客クラスから参照されているという、制約が設けられていると仮定する。この情報モデルに対して、顧客クラスと専用線クラスのインスタンスを、予約に基づき新規生成、属性変更、削除を行う場合、顧客インスタンスと専用線インスタンスの間で、制約条件を保証できない場合が生ずる。
【００１１】
例えば、７月１日時点で顧客Ａが専用線Ａを使用している時に、８月１日に顧客Ａが専用線Ｂを使用し始める予約をし、７月２日に顧客Ａが専用線Ａを即日解約したとする。すると、７月２日の削除トランザクションにより、顧客Ａが失われる為、８月１日の回線新設トランザクションは制約条件を充たさなくなり、トランザクションは失敗する。このような不都合は、予約に基づく新規生成、属性変更、削除の任意の組合わせで発生する。
【００１２】
【課題を解決するための手段】
本発明は、トランザクションに実行予定時刻を付加して、蓄積する手段を備えることにより上記課題を解決する。
【００１３】
本発明は、更に、データ保持装置が現在保持するデータと、現在から指定時刻までの予約トランザクションによる更新予定のデータとの中から最新のものを選択することにより、任意の時刻にデータ保持装置が保持する予定であるデータを取得する、任意時刻インスタンス取得手段を備える。
【００１４】
本発明は、更に、予約受付時に、任意時刻インスタンス取得手段を用いて、予約実行時刻のデータ保持装置が保持する予定であるデータを取得し、これに対して予約トランザクションを適用したと仮定して、制約条件を評価する事により、トランザクションの一貫性を保証可能であるかを判断する、制約条件評価手段を備える。
【００１５】
本発明は、更に、新規予約受付時に、該トランザクションの予約実行時刻以降に実行予定の、既に予約が成立したトランザクションについて制約条件評価手段を適用することにより、新規予約を受付ける事により、既存予約の実行を妨げることがあるか否かを判断する、競合検出手段を備える。
【００１６】
更に、要求された予約トランザクションは、予約実行時刻においてトランザクションの一貫性を保証できなくなると判断した際には、該予約トランザクションを拒絶するか、または、競合する他の予約を取り消す事により、競合解消する手段を備える。
【００１７】
これにより、トランザクションの実行時刻を予約する事が可能となる。また、トランザクションの実行可否を、予約時点で判定する事が可能となる。また、新たな予約トランザクションを受け入れる事により、既存の予約の実行を妨げるか否かを、新たな予約トランザクションの受入時に判断し、トランザクションの一貫性を保つ事が可能となる。
【００１８】
【発明の実施の形態】
本発明の実施の形態の構成及び動作の概略を、図を用いて説明する。
【００１９】
図１に示す本発明によるシステムは、少なくとも一つのオペレータコンソール装置（１０）、少なくとも一つのトランザクション予約管理装置（２０）、少なくとも一つのデータ保持装置（３１〜３３）が相互に接続されたものである。本図では、一つのオペレータコンソール装置（１０）、一つのトランザクション予約管理装置（２０）、四つのデータ保持装置（３１〜３３）が接続されているが、これらの個数は任意である。
【００２０】
オペレータコンソール装置（１０）は、その内部に属性値入力部（１０１）を持つ。属性値入力部（１０１）は、本システムを操作するオペレータから、トランザクションの予約要求をグラフィカルユーザインタフェース等にて受取り、これをトランザクション予約管理装置（２０）のトランザクション管理部（２０１）に転送する。また、トランザクション管理部（２０１）からトランザクションの予約結果を受取り、オペレータに表示する。
【００２１】
トランザクション予約管理装置（２０）は、オペレータコンソール装置（１０）からトランザクションの予約を受取って保持し、該予約トランザクションの実行時刻にトランザクションの実行を試みる。トランザクションの実行に失敗した場合には、トランザクションをアボート（Ａｂｏｒｔ）する。
【００２２】
トランザクションとは、データテーブル（３１２〜３３２）が保持する一つ以上のインスタンスを更新する要求の組である。トランザクションの実行とは、トランザクションに含まれる前記要求の組の全てを実行する事である。トランザクションをアボート（Ａｂｏｒｔ）するとは、トランザクションに含まれる前記要求の組の実行の途中で、トランザクションの実行する事を中止する事である。トランザクションの予約するとは、トランザクションを指定された実行予定時刻の指定時刻の近傍に実行する事を、予約する事である。
【００２３】
予約トランザクションの実行時刻とは、トランザクションの予約した事によって予約されたトランザクションの事である。予約トランザクションの実行時刻は、属性として実行予定時刻を持つ。予約トランザクションの実行するとは、該予約トランザクションの実行時刻の実行予定時刻の指定時刻の近傍に、該トランザクションの実行する事である。
【００２４】
トランザクション予約管理装置（２０）は、トランザクション管理部（２０１）、制約条件検証部（２０２）、任意時刻インスタンス取得部（２０３）、トランザクションテーブル（２０４）、ＶＰＮクラスインスタンステーブル（２０５）、ｉｎｔｅｒｆａｃｅクラスインスタンステーブル（２０６）、予約実行管理部（２０７）から構成される。
【００２５】
トランザクション管理部（２０１）は、トランザクションの原子性（Ａｔｏｍｉｃｉｔｙ）、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）、トランザクションの独立性（Ｉｓｏｌａｔｉｏｎ）を保証する。
【００２６】
インスタンステーブル（２０８）は、データ保持装置（３１〜３３）に既に設定された、或いは予約に基づき設定予定の、オブジェクトインスタンスが格納される。
【００２７】
本実施の一形態では、インスタンステーブル（２０８）はＶＰＮクラスインスタンステーブル（２０５）とｉｎｔｅｒｆａｃｅクラスインスタンステーブル（２０６）から構成され、それぞれ管理対象ＶＰＮとｉｎｔｅｒｆａｃｅのインスタンスを保持する。インスタンステーブル（２０８）がどのようなクラスのインスタンスを保持するかは、本実施形態の適用システムの目的に依存し、そのクラス数や属性種別は任意である。例えば、銀行口座の振込トランザクション処理システムならば、口座クラスのインスタンステーブルを持つことは自然である。
【００２８】
以下の説明では、ＶＰＮクラスインスタンステーブル（２０５）とｉｎｔｅｒｆａｃｅクラスインスタンステーブル（２０６）の区別が必要な場合を除き、インスタンステーブル（２０８）と総称する。即ち、インスタンステーブル（２０８）の複数のインスタンスという表現は、該複数のインスタンスが全てＶＰＮクラスインスタンステーブル（２０５）とｉｎｔｅｒｆａｃｅクラスインスタンステーブル（２０６）の片方であっても良いし、両方の組合わせであっても構わないものとする。
【００２９】
インスタンステーブル（２０８）が保持する各インスタンスは、トランザクションテーブル（２０４）の一つのインスタンスに、必ず関連付けられている。一方、トランザクションテーブル（２０４）の一つのインスタンスには、インスタンステーブル（２０８）の任意数のインスタンスが関連付けられている。
【００３０】
インスタンステーブル（２０８）が保持する各インスタンスは、クラス共通の属性として、少なくとも予約実行時刻属性を持つ。即ち、或るインスタンスが、何時どのように更新されたか、或いはいつどのように更新されたかを、保持している。インスタンステーブル（２０８）の詳細に付いては、図５と図６を用いて、後に説明する。
【００３１】
任意時刻インスタンス取得部（２０３）は、トランザクション管理部（２０１）又は制約条件検証部（２０２）から、指定時刻のデータテーブル（３１２〜３３２）の状態を取得する事の要求を受付ける。引続き、指定された時刻以前の最新の予約実行時刻属性を持つインスタンスを、インスタンステーブル（２０８）から取出す事により、指定時刻のデータテーブル（３１２〜３３２）の状態を導き出し、結果を返す。受付ける時刻は、過去、現在、未来の区別を問わない。
【００３２】
制約条件検証部（２０２）は、トランザクション管理部（２０１）からの要求に基づき、指定されたトランザクションの実行したと仮定した時に、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）を保証可能であるか否かを検証する。トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）は、システムの目的に依存し、論理式、ソフトウェア又はハードウェアによりプログラムされているものとする。
【００３３】
トランザクションは実行予定時刻属性を持つ為、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）を保証可能であるかを判断する為には、実行予定時刻におけるデータテーブル（３１２〜３３２）の状態を汁必要が或る。これは、任意時刻インスタンス取得部（２０３）を介してインスタンステーブル（２０８）を参照する事により、実現する。
【００３４】
トランザクションの原子性（Ａｔｏｍｉｃｉｔｙ）の保証とは、或るトランザクションの実行又はトランザクションをアボート（Ａｂｏｒｔ）が完了した時点では、該トランザクションに含まれる要求の全てがデータベースに反映されるか、又は一つも反映されないかの、どちらかであることを保証する事である。即ち、該トランザクションに含まれる要求の一部のみがデータ保持装置（３１〜３３）に反映される事が無い事を保証する事である。
【００３５】
トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）の保証とは、トランザクションの実行完了した時点で、データ保持装置（３１〜３３）のデータが、全体として相互に整合している事を、システム全体として意味を成す事を保証する事である。例えば、或仮想私設網の管理オブジェクトＶＰＮ１の属性値が、或ルータインタフェースを使用していることを表現している時に、該ルータインタフェースオブジェクトは必ず存在する事を保証する事は、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）保証の一例である。
また、別の例として、本システムを銀行口座の振替処理のトランザクションの処理に適用したならば、２つの預金口座の合計金額が、トランザクションの実行前後で同じであることを保証することは、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）保証の一例である。
【００３６】
トランザクションの独立性（Ｉｓｏｌａｔｉｏｎ）の保証とは、或るトランザクションによる更新結果は、そのトランザクションの実行が完了するまでは、並走する他のトランザクションから参照できない事を保証する事である。
【００３７】
トランザクションの結果の耐久性（Ｄｕｒａｂｉｌｉｔｙ）の保証とは、或るトランザクションにより更新された結果であるデータは、再び他のトランザクションによって更新されるまで、半永久的に保持される事を保証する事である。一般的には、ハードディスク装置に書き込まれる事を示す。更に、ハードウェアの冗長構成、バックアップ装置等により、例え電源やハードウェアに障害が発生した場合でも、そのデータを保証する事を含む場合も有る。
【００３８】
予約実行管理部（２０７）は、トランザクションテーブル（２０４）に登録されているトランザクションの実行予定時刻属性を参照することにより、次に実行すべきトランザクションを判断する。現在時刻が予約トランザクションの実行時刻に達したならば、該トランザクションの実行を、トランザクション管理部（２０１）に要求する。
【００３９】
データ保持装置１（３１）は、要求受信部（３１１）とデータテーブル（３１２）から構成される。要求受信部（３１１）は、トランザクション予約管理装置（２０）のトランザクション管理部（２０１）からの要求に基づき、データテーブル（３１２）の更新の可否の検証又は更新を行う。また、データ保持装置１（３１）は、データテーブル（３１２）が保持するデータについて、ハードディスク装置等に書き込む事により、トランザクションの結果の耐久性（Ｄｕｒａｂｉｌｉｔｙ）を保証する。データ保持装置２（３２）とデータ保持装置３（３３）の構成は、データ保持装置１（３１）と同様である。
【００４０】
データ保持装置（３１〜３３）は、データベース装置でも良いし、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ルータやＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）スイッチ等のネットワーク機器であっても良い。また、これらが混在しても良い。図１の例では、データ保持装置１（３１）はデータベースシステム、データ保持装置２（３２）とデータ保持装置３（３３）はＩＰルータにより構成されている。
【００４１】
図２に示すように、オペレータコンソール装置（１０）は、ＣＰＵ（２００１）、メモリ（２００２）、内部バス等の通信線（２００３）、ハードディスクやフラッシュメモリ等の二次記憶装置（２００４）、通信インタフェース（２００５）、表示部（２００６）から構成される。通信インタフェース（２００５）は、通信ネットワークに接続されており、これを介してトランザクション予約管理装置（２０）と通信可能である。また、メモリ（２００２）には、プログラム（２００２１）とデータ（２００２２）が必要に応じて格納されている。プログラム（２００２１）は予めメモリ（２００２）に格納されていてもよいし、必要に応じて、着脱可能な記憶媒体または通信媒体を経由して他の装置から導入されてもよい。
【００４２】
トランザクション予約管理装置（２０）は、オペレータコンソール装置（１０）と同様の構成要素を備える。通信インタフェース（２００５）は、オペレータコンソール装置（１０）及びデータ保持装置（３１〜３３）と通信するために用いられる。表示部（２００６）は無くても良い。
【００４３】
データ保持装置（３１〜３３）は、オペレータコンソール装置（１０）と同様の構成要素を備える。通信インタフェース（２００５）は、トランザクション予約管理装置（２０）と通信するために用いられる。表示部（２００６）は無くても良い。また、データ保持装置（３１〜３３）の種別がＩＰルータやＡＴＭスイッチ等の通信機器である場合、パケットやＡＴＭセル等を処理する為の専用ハードウェアが接続される場合もある。
【００４４】
次に、データ保持装置（３１〜３３）が保持するデータテーブル（３１２〜３３２）の管理項目を図３を用いて説明する。データ保持装置１（３１）は顧客データベースであり、ｃｕｓｔｏｍｅｒクラスのデータテーブル（３１２）を保持する。個々のインスタンスはデータテーブル（３１２）の行として、インスタンス識別子（３１２１）とデータ（３１２２）の組で表現され、インスタンス識別子（３１２１）により識別される。データ（３１２２）は、ＶＰＮ名称（３１２３）、ＶＰＮ種別（３１２４）、ＶＬＡＮ識別子（３１２５）、所属するインタフェース（３１２６）から構成される。
【００４５】
データテーブル（３１２）の各行の更新は、インスタンス識別子（３１２１）、更新種別と更新後のデータ（３１２２）を含む更新要求を、要求受信部（３１１）に対して、トランザクション管理部（２０１）が発行する事により行う。更新種別とは、インスタンスに対して行う操作の種別であり、「新規生成」「上書き」「削除」のいずれか一つである。更新種別が削除である場合は、更新後のデータは任意である。
【００４６】
要求受信部（３１１）はまた、データテーブル（３１２）の各行を更新するに先立って、更新可能であるか否かの検証のみ行う事の要求を受付ける事も出来る。トランザクション管理部（２０１）は、この機能を用いて、２フェーズコミットプロトコルを実行する事により、複数のオブジェクトインスタンスを更新するトランザクションの原子性（Ａｔｏｍｉｃｉｔｙ）を保証することが出来る。
【００４７】
データ保持装置２（３２）はＩＥＥＥ  ８０２．１Ｑ  Ｖｉｒｔｕａｌ  ＬＡＮ準拠のブリッジであり、ｉｎｔｅｒｆａｃｅクラスのデータテーブル（３２２）を保持する。個々のインスタンスはデータテーブル（３２２）の行として、インスタンス識別子（３２２１）とデータ（３２２２）の組で表現され、インスタンス識別子（３２２１）により識別される。データ（３２２２）は、物理ポート番号（３２２３）、回線速度（３２２４）、ＶＬＡＮ識別子（３２２５）、タギング（３２２６）から構成される。データテーブル（３２２）の更新手順は、データテーブル（３１２）の場合と同様である。
【００４８】
データ保持装置３（３３）はＩＥＥＥ  ８０２．１Ｑ  Ｖｉｒｔｕａｌ  ＬＡＮ準拠のブリッジであり、ｉｎｔｅｒｆａｃｅクラスのデータテーブル（３３２）を保持する。データテーブル（３３２）が管理する項目及びその更新手順は、データテーブル（３２２）と同様である。
【００４９】
次に、トランザクション予約管理装置（２０）が保持するトランザクションテーブル（２０４）の管理項目を図４を用いて説明する。
【００５０】
トランザクションテーブル（２０４）は、トランザクション識別子（２０４１）、予約実行時刻（２０４２）、トランザクション状態（２０４３）、コメント（２０４４）、更新対象インスタンスのクラス名及びインスタンス内部識別子（２０４５）を保持する。各行は、更新対象インスタンスのクラス名及びインスタンス内部識別子（２０４５）の値により、インスタンステーブル（２０８）の任意の個数のインスタンスと関連付けられている。
【００５１】
トランザクション状態（２０４３）欄の値は、「実行済み」「実行中」「未実行」の何れかである。「実行済み」は、トランザクションの実行が完了し、該トランザクションに関連付けられた、データ保持装置（３１〜３３）への更新要求が、全て更新された事を示す。「実行中」は、該トランザクションに関連付けられた、データ保持装置（３１〜３３）への更新要求を実行中である事を示す。「未実行」は、該トランザクションは予約されているが、現在時刻が実行予定時刻に達していない等の理由により、未だ実行されていない事を示す。
【００５２】
図４の例では、トランザクション識別子（２０４１）が１００１のトランザクションは、ＶＰＮクラスのインスタンス内部識別子１、ｉｎｔｅｒｆａｃｅクラスのインスタンス内部識別子１、２、３、４の、５つのインスタンスと関連付けられている事を示している。インスタンス内部識別子については、図５を用いて後に述べる。
【００５３】
次に、トランザクション予約管理装置（２０）が保持するＶＰＮクラスインスタンステーブル（２０５）の管理項目を図５を用いて説明する。
【００５４】
ＶＰＮクラスインスタンステーブル（２０５）は、クラス共通部（２０５１）とクラス属性部（２０５２）から構成される。
【００５５】
クラス共通部（２０５１）は、インスタンス内部識別子（２０５１１）、更新対象データ保持装置（２０５１２）、インスタンス識別子（２０５１３）、更新種別（２０５１４）、インスタンス有効性（２０５１５）、予約実行時刻（２０５１６）から構成される。
【００５６】
あるオブジェクトインスタンスは、時刻により異なる属性値を取り得る。インスタンス識別子（２０５１３）は時刻に依存せずにオブジェクトインスタンスを用いる為の識別子である。一方、インスタンス内部識別子（２０５１１）は、時刻毎のインスタンスの属性値の組を保持する為レコードの、識別子であり、トランザクションテーブル（２０４）のトランザクションとの関連付けにのみ用いられ、トランザクション管理部（２０１）はその値を関知しない。
【００５７】
更新対象データ保持装置（２０５１２）は、トランザクションの実行時に更新を要求すべきデータ保持装置（３１〜３３）の識別子を示す。
【００５８】
更新種別（２０５１４）は、このインスタンスに関連付けられたトランザクションにより、データテーブル（３１２〜３３２）に対して発行する要求の種別を示し、「新規生成」「上書き」「削除」の何れかをとる。
【００５９】
インスタンス有効性（２０５１５）は、このインスタンスに関連付けられたトランザクションの状態を示し、「確定」、「更新中」、「予約」の何れかをとる。「確定」が格納されている場合、該トランザクションの実行が完了している事を示す。「更新中」の場合は、トランザクションの実行処理中であることを示すため、トランザクションの独立性（Ｉｓｏｌａｔｉｏｎ）を保証する為には、該トランザクション以外からは参照されない様にする。この判断は任意時刻インスタンス取得部（２０３）が行う。
【００６０】
クラス属性部（２０５２）は、ＶＰＮクラスに依存した属性が保持され、トランザクションの実行時に、データテーブル（３１２〜３３２）の何れかに反映される。ＶＰＮクラスの場合、クラス属性部（２０５２）は、ＶＰＮ名称（２０５２１）、ＶＰＮ種別（２０５２２）、ＶＬＡＮ識別子（２０５２３）、所属するインタフェース（２０５２４）から構成される。
【００６１】
本図５の例では、ＶＰＮ名称（２０５２１）がＶＬＡＮ−Ｈｉｔａｃｈｉ００１のＶＰＮは、ＶＰＮ種別（２０５２２）がＶＬＡＮであり、ＶＬＡＮ識別子（２０５２３）が１０１であり、このＶＰＮには、ｒｏｕｔｅｒ１の０１番物理ポートと２０番物理ポート、ｒｏｕｔｅｒ２の０１番物理ポートと２０番物理ポートの、４つの物理ポートが属している事を示している。また、時刻２００２／７／１  ００：００に既に新規生成され、時刻２００２／７／１０  ２０／３０に削除される事が予約されていることを示している。
【００６２】
次に、トランザクション予約管理装置（２０）が保持するｉｎｔｅｒｆａｃｅクラスインスタンステーブル（２０６）の管理項目を図６を用いて説明する。ｉｎｔｅｒｆａｃｅクラスインスタンステーブル（２０６）は、クラス共通部（２０５１）とクラス属性部（２０６２）から構成される。クラス共通部（２０５１）の管理項目は、ＶＰＮクラスインスタンステーブル（２０５）の場合と同様である。クラス属性部（２０６２）は、物理ポート番号（２０６２１）、回線速度（２０６２２）、ＶＬＡＮ識別子（２０６２３）、タギング（２０６２４）から構成される。
【００６３】
次に、トランザクション予約管理装置（２０）が保持するトランザクションテーブル（２０４）と、インスタンステーブル（２０８）の関連について、図４、図５、図６の例で説明する。
【００６４】
図４において、トランザクション識別子（２０４１）が１００２であるトランザクション（以下トランザクション１００２）は、現在時刻が予約実行時刻（２０４２）に示された２００２／７／２  １２：００になると実行が開始される。トランザクション１００２は、ＶＰＮ−Ｈｉｔａｃｈｉ００２を新設するトランザクションである事が、コメント（２０４４）から類推されるが、この欄は単なるコメントであり、処理には影響しない。
【００６５】
トランザクション１００２は、更新対象インスタンスのクラス名及びインスタンス内部識別子（２０４５）欄から、ＶＰＮクラスのインスタンス内部識別子２と関連付けられている事が分かる。図５にてインスタンス内部識別子（２０５１１）欄の値が２である行を検索する事により、以下が分かる。
【００６６】
即ち、第一に、更新対象データ保持装置（２０５１２）欄から識別子がｃｕｓｔｏｍｅｒ＿ｄａｔａｂａｓｅである、データ保持装置１（３１）に対する更新要求である事が分かる。第二に、インスタンス識別子（２０５１３）から、更新対象のインスタンスのインスタンス識別子が２である事が分かる。第三に、インスタンス識別子（２０５１３）から、オブジェクトを新規に生成することをデータ保持装置に要求する事が分かる。
【００６７】
以上及びクラス属性部（２０５２）欄より、データ保持装置１（３１）に対して、インスタンス識別子が２であるインスタンスの新規生成要求を、ＶＰＮ名称“ＶＬＡＮ−Ｈｉｔａｃｈｉ００１“、ＶＰＮ種別”ＶＬＡＮ”、ＶＬＡＮ識別子“１０１”、所属するインタフェース“｛ｒｏｕｔｅｒ１，０１｝，  ｛ｒｏｕｔｅｒ２，０１｝，｛ｒｏｕｔｅｒ１，２１｝，  ｛ｒｏｕｔｅｒ２，２１｝”にて行うことが分かる。
【００６８】
同様に、トランザクション１００２は、更新対象インスタンスのクラス名及びインスタンス内部識別子（２０４５）欄から、ｉｎｔｅｒｆａｃｅクラスのインスタンス内部識別子５，６，７，８とも関連付けられている事が分かり、その詳細もまた同様に、図６から分かる。
【００６９】
次に、任意時刻インスタンス取得部（２０３）が、トランザクション管理部（２０１）からの要求に基づき、指定時刻のインスタンスを取得する処理を、図６を例に取って説明する。
【００７０】
任意時刻インスタンス取得部（２０３）は、検索対象クラス名、時刻と、クラス属性とインスタンス識別子に対する検索式を受取る。例えば、検索対象クラス名がｉｎｔｅｒｆａｃｅ、時刻が２００２／７／５  ０：００、検索式が”ＶＬＡＮ識別子  ｃｏｎｔａｉｎｓ  １０１”であると仮定する。検索対象クラス名がｉｎｔｅｒｆａｃｅであるので、ｉｎｔｅｒｆａｃｅクラスインスタンステーブルを検索対象とする事が決まる。
【００７１】
次に、与えられた時刻と検索式を組合せる事により、”（予約実行時刻  ＜  ２００２／７／５  ０：００）  ＡＮＤ  （ＶＬＡＮ識別子  ｃｏｎｔａｉｎｓ  １０１）”が決まる。この条件式により検索を行うと、インスタンス内部識別子（２０５１１）が１〜６の行が条件に合致する。
【００７２】
次に、それらから、更新対象データ保持装置（２０５１２）とインスタンス識別子（２０５１３）が共に一致する行について、予約実行時刻（２０５１６）の値が最新のものを残して残りを除外する。この例では、インスタンス内部識別子（２０５１１）１と５及び２と６が、夫々更新対象データ保持装置（２０５１２）とインスタンス識別子（２０５１３）共に一致する。これらについて、予約実行時刻（２０５１６）を比較すると、インスタンス内部識別子（２０５１１）が１と２の行が除外され、３〜６が残る。
【００７３】
以上より、要求元には、図７に示すインスタンスが返される。
【００７４】
次に、トランザクションの予約生成時の概略シーケンスを、図８を用いて説明する。
【００７５】
属性値入力部（１０１）がオペレータからのトランザクションの予約開始要求を受付けると、トランザクション管理部（２０１）にその要求を送信する（８００１）。トランザクションの予約開始要求には、実行予定時刻とコメントが含まれている。トランザクション管理部（２０１）は、トランザクション識別子を生成し（８００２）、トランザクションテーブル（２０４）に新たな行を追加する（８００３）。追加した行の各列の内、トランザクション識別子（２０４１）には生成したトランザクション識別子を、予約実行時刻（２０４２）欄とコメント（２０４４）欄には、受信した要求に含まれる実行予定時刻とコメントを格納する。他の欄には空白を格納する。引続きトランザクション識別子を返す（８００４）。
【００７６】
一般に、オペレータコンソール装置（１０）は、既にデータ保持装置（３１〜３３）が保持しているインスタンスの属性値をオペレータに提示し、これをオペレータが編集し、トランザクション管理部（２０１）に対して更新要求する。
【００７７】
そこで、属性値入力部（１０１）は、必要に応じてインスタンスの参照を属性値入力部（１０１）に要求する（８０１１）。この際の検索対象の母集団は、要求中の予約トランザクションの実行時刻に存在するインスタンス群である必要がある。そこで、トランザクション管理部（２０１）は、トランザクション識別子をキーに、実行予定時刻を取得する（８０１２）。
【００７８】
引続き、その時刻のインスタンスの検索を、任意時刻インスタンス取得部（２０３）に要求する（８０１３）。任意時刻インスタンス取得部（２０３）は、既に図６及び図７を用いて説明した手順により、指定された時刻に存在するインスタンスを、指定された検索式に基づいて取得し（８０１４）、結果を返す（８０１５）。トランザクション管理部（２０１）は、それを属性値入力部（１０１）に返す。
【００７９】
インスタンスを参照するシーケンス（８０１１〜８０１６）は、必要に応じて、任意回数、任意のクラス、任意のインスタンスに対して繰返される。
【００８０】
次に、属性値入力部（１０１）は、オペレータからのデータ更新要求の入力を受付ける（８０２０）。この要求に含まれる、更新対象のクラス数、インスタンス数は任意である。また、更新種別も、「新規生成」「上書き」「削除」の内の任意であり、これらの組合わせも許される。
【００８１】
属性値入力部（１０１）は、受付けた更新要求を、トランザクション管理部（２０１）に要求する（８０２１）。
【００８２】
この要求は、インスタンステーブル（２０８）に記録されるが、その際に、予約実行時刻を記録する必要がある。そのため、トランザクション管理部（２０１）は、トランザクション識別子をキーに、実行予定時刻を取得する（８０２２）。
【００８３】
トランザクション管理部（２０１）は、受付けた更新要求を、指定されたクラスのインスタンステーブル（２０８）に新たな行として登録する。インスタンス内部識別子（２０５１１）欄にはクラス毎に一意な識別子を生成して格納する。更新対象データ保持装置（２０５１２）欄とインスタンス識別子（２０５１３）欄は、要求に含まれる値をそのまま格納する。インスタンス有効性欄には「予約」を格納する。予約実行時刻（２０５１６）欄には、（８０２２）にて取得した時刻を格納する。クラス属性部（２０５２）又はクラス属性部（２０６２）には、要求に含まれる値をそのまま格納する。但し、更新種別が「削除」である場合には、クラス属性部（２０６２）欄は全て空にしておく。
【００８４】
次にトランザクション管理部（２０１）は、インスタンステーブル（２０８）に登録したインスタンス更新要求の、クラス名とインスタンス内部識別子を、トランザクションテーブル（２０４）の更新対象インスタンスのクラス名及びインスタンス内部識別子（２０４５）欄に追記する（８０２４）。追記先の行は、指定されたトランザクション識別子の行である。
【００８５】
８０２１〜８０２５は、必要に応じて、任意回数、任意のクラス、任意のインスタンスに対して繰返される。
【００８６】
次に、属性値入力部（１０１）は、トランザクション管理部（２０１）に対して、トランザクションの予約を要求する（８０３１）。トランザクション管理部（２０１）は、制約条件検証部（２０２）に対して、指定されたトランザクションの実行したと仮定した時に、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）を保証可能であるか否かの検証を要求する（８０３２）。
【００８７】
制約条件検証部（２０２）は、トランザクション識別子をキーに実行予定時刻を取得する（８０３３）。次に、指定されたトランザクションに関連付けられたインスタンスのクラス名とインスタンス内部識別子を取得し（８０３４）、これにより、予約トランザクションの実行時刻におけるインスタンスを取得する（８０３５，  ８０３６，  ８０３７）。
【００８８】
引き続き、取得したインスタンスを用いて、トランザクションの実行したと仮定した時に、予め制約条件検証部（２０２）にプログラムされた制約条件を充たすか否かを検証する（８０３９）。
【００８９】
その際には、該トランザクションに関連付けられたインスタンス単体の属性値の範囲を検証する。更に、該トランザクションに関連付けられたインスタンスが複数存在する場合には、その相互の参照関係に矛盾が無いか、検証する。更に、該トランザクションに関連付けられたインスタンスが参照するインスタンスが存在する場合には、それらの間の参照関係に矛盾を生じ無いかを検証する。更に、該トランザクション実行前に、該トランザクションに関連付けられたインスタンスを参照するインスタンスが存在する場合には、それらの間の参照関係に矛盾を生じないかを検証する。これらの検証事項の内、一つでも矛盾を検出したなら検証結果は失敗（ＮＧ）であると見なし、そうでないなら成功（ＯＫ）と見なす。引続き、検証結果を返す（８０４０）。
【００９０】
検証結果がＮＧであった場合、予約トランザクションの行をトランザクションテーブル（２０４）から削除し（８０４１）、該トランザクションに関連付けられたインスタンスもインスタンステーブル（２０８）から削除する（８０４２）。
【００９１】
検証結果がＯＫであった場合、該トランザクションのトランザクション状態（２０４３）欄を「予約」にし（８０４３）、該トランザクションに関連付けられたインスタンスのインスタンス有効性（２０５１５）欄を「予約」にする（８０４４）。引続き、予約実行管理部（２０７）に予約実行時刻（２０４２）とトランザクション識別子（２０４１）を通知する。
【００９２】
予約実行管理部（２０７）は、予約実行時刻（２０４２）とトランザクション識別子（２０４１）を保持し、次のトランザクションの実行に備える（８０４６）。
【００９３】
トランザクション管理部（２０１）は、検証結果がＮＧの場合は予約生成が失敗（ＮＧ））である事を、検証結果がＯＫの場合は予約生成が成功（ＯＫ）であることを、属性値入力部（１０１）に返す（８０４７）。
【００９４】
次に、予約トランザクションの実行時の概略シーケンスを、図９を用いて説明する。
【００９５】
先ず、予約実行管理部（２０７）は、現在時刻が予約トランザクションの実行時刻に達するまで待機する（９００１）。予約トランザクションの実行時刻に達したならば、該トランザクションのトランザクション識別子をトランザクション管理部（２０１）に渡す事により、トランザクションの実行を要求する（９００２）。
【００９６】
トランザクション管理部（２０１）は、制約条件検証部（２０２）に対して、該トランザクションを実行した際に、トランザクションの一貫性（Ｃｏｎｓｉｓｔｅｎｃｙ）を保証可能であるかの検証を要求し（９０１１）、制約条件検証部（２０２）は検証を実行し（９０１２〜９０１８）、その結果を返す（９０１９）。この手続は、トランザクションの予約要求時と同様である。
【００９７】
検証結果が失敗（ＮＧ）の場合、該トランザクションのトランザクション状態（２０４３）欄を「エラー」にし（９０２１）、該トランザクションに関連付けられたインスタンスのインスタンス有効性（２０５１５）欄を「エラー」にする（９０２２）。
【００９８】
検証結果が成功（ＯＫ）の場合、該トランザクションに関連付けられた全てのインスタンスを取得し（９０３０）、該インスタンスの更新対象データ保持装置（２０５１２）に記載されたデータ保持装置（３１〜３３）の要求受信部（３１１、３２１，３３１）に対し、データテーブル（３１２〜３３２）の更新可否を問合せる（９０３１）。
【００９９】
全ての回答が成功であるなら、データテーブル（３１２〜３３２）の更新を要求し（９０４１）、該トランザクションのトランザクション状態（２０４３）欄を「実行済み」にし、該トランザクションに関連付けられたインスタンスのインスタンス有効性（２０５１５）欄を「確定」にし（９０２２）、トランザクション実行結果として成功（ＯＫ）を返す（９００３）。
【０１００】
一つでも回答が失敗であったならシーケンス９０２１，  ９０２２と同様に、該トランザクションのトランザクション状態（２０４３）欄を「エラー」にし、該トランザクションに関連付けられたインスタンスのインスタンス有効性（２０５１５）欄を「エラー」にし（９０２２）、トランザクション実行結果として失敗（ＮＧ）を返す（９００３）。
【０１０１】
一つの予約トランザクションの実行の実行が終了すると、次のトランザクションの実行予定時刻とトランザクション識別子を取出して保持し、シーケンス９００１に戻る。
【０１０２】
【発明の効果】
本発明に依れば、トランザクションの実行時刻を予約する事、トランザクションの実行可否を、予約時点で判定する事、新たな予約トランザクションを受け入れる事が既存の予約の実行を妨げるか否かを新たな予約トランザクションの受入時に判断しトランザクションの一貫性を保つ事、が可能となる。
【図面の簡単な説明】
【図１】本実施形態におけるシステム構成を表す図である。
【図２】オペレータコンソール装置、トランザクション予約管理装置のハードウェア構成を表す図である。
【図３】データテーブルを表す図である。
【図４】トランザクションテーブルを表す図である。
【図５】ＶＰＮクラスのインスタンステーブルを表す図である。
【図６】ｉｎｔｅｒｆａｃｅクラスのインスタンステーブルを表す図である。
【図７】指定された時刻のインスタンスの取得結果の例を表す図である。
【図８】予約生成時の概略シーケンスを表す図である。
【図９】予約実行時の概略シーケンスを表す図である。
【符号の説明】
１０１…属性値入力部、２０１…トランザクション管理部、２０２…制約条件検証部、２０３…任意時刻インスタンス取得部、２０４…トランザクションテーブル、２０７…予約実行管理部、２０８…インスタンステーブル、３１１、３２１、３３１…要求受信部。
【図１】
2004164450.tif 000003
【図２】
2004164450.tif 000004
【図３】
2004164450.tif 000005
【図４】
2004164450.tif 000006
【図５】
2004164450.tif 000007
【図６】
2004164450.tif 000008
【図７】
2004164450.tif 000009
【図８】
2004164450.tif 000010
【図９】
2004164450.tif 000011