トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 ネットワ―ク管理演算のトランザクション支援のための装置、方法及びコンピュ―タプログラム製品
【発明者】 【氏名】トニー・ティ・ボング

【氏名】スボド・バパット

【氏名】ジェラルド・ホラン

【要約】 【課題】ユーザーが勝手な一連の異種管理要求の周りにトランザクション境界を規定することが可能となる。

【解決手段】アプリケーショントランザクション(AT)サーバーが、多数のユーザー定義アプリケーション演算を単一アプリケーショントランザクションとして処理するため集結し、データベースで実行中の各トランザクションについての重要情報を記録する。前記記録により、特定のアプリケーショントランザクションにより目標とされたオブジェクトのトランザクションの完了前の値が、アプリケーショントランザクションの失敗した演算の場合に復元可能になる。
【特許請求の範囲】
【請求項1】 アプリケーショントランザクションサーバー及びネットワーク管理プラットホームを含むコンピュータシステムにおいて、特定のアプリケーションが要求し、少なくとも一つの所定の単独目標オブジェクトを指すアプリケーショントランザクションの取扱いに関するコンピュータに実装した方法であって、特定の初期オブジェクト値を有する少なくとも単独のオブジェクトを目標とする所望のアプリケーション演算を規定する少なくとも単独の要求メッセージの実行のための要求を受領するステップ、受領したアプリケーション演算要求を組み合わせて一つのアプリケーショントランザクションを構築するステップ、及びアプリケーショントランザクション処理が失敗したときオブジェクト値の初期設定への復元を可能にするために、目標オブジェクト毎に現在のオブジェクト値を記憶するステップ、の各ステップを含むコンピュータに実装した方法。
【請求項2】 アプリケーショントランザクション処理の所在位置を判定するステップ、をさらに含む請求項1記載のコンピュータに実装した方法。
【請求項3】 アプリケーショントランザクション処理を、選択されたネットワーク管理プラットホームにおいて行う請求項1記載のコンピュータに実装した方法。
【請求項4】 アプリケーショントランザクション処理を、選択されたアプリケーショントランザクションサーバーにおいて行う請求項1記載のコンピュータに実装した方法。
【請求項5】 前記記憶するステップが、選択されたデータベースにおいてなされる請求項1記載のコンピュータに実装した方法。
【請求項6】 コンピュータ読取可能なコード手段を有するコンピュータ使用可能な媒体内に具体化されたアプリケーショントランザクション管理のためのコンピュータプログラム製品であって、少なくとも一つの目標オブジェクトに関する所望のアプリケーション演算を規定する要求メッセージを受領するよう構成された第一コンピュータ読取可能コード構成体、ユーザーのアプリケーション要求メッセージが規定するアプリケーション演算を、単一アプリケーショントランザクションに結合するよう構成された第二コンピュータ読取可能コード構成体、及びアプリケーショントランザクションを局所的に実行するか否か、又は構築されたアプリケーショントランザクションを実行するのに特定のアプリケーショントランザクションサーバーを選定するか否かを判定するよう構成された第三コンピュータ読取可能コード構成体、を含むコンピュータプログラム製品。
【請求項7】 ネットワーク管理プラットホーム(NMP)及び前記NMPに関連付けられたアプリケーショントランザクション(AT)サーバーを含むコンピュータシステム内でアプリケーショントランザクションを支援するコンピュータに実装した方法であって、選択されたアプリケーションを実行するユーザーからの第一メッセージを用いて第一アプリケーショントランザクションの開始を確立するステップ、前記第一アプリケーショントランザクション内で、前記第一メッセージに続く少なくとも第二の選択メッセージを前記第一メッセージに結合するステップ、及び前記第一トランザクションへのメッセージの追加結合を停止する終了メッセージを受領するステップ、を含むコンピュータに実装した方法。
【請求項8】 特定のアプリケーショントランザクション演算を前記NMPと接続して実行するか又はATサーバーと接続して実行するかを選択するステップをさらに含む請求項7記載のコンピュータに実装した方法。
【請求項9】 第一アプリケーショントランザクションの試行を失敗するステップを含む請求項7記載のコンピュータに実装した方法。
【請求項10】 前記第一トランザクションがその従属演算の全部を完全に完了しなかったとき、第一トランザクションの実行済演算をロールバックするステップを含む請求項7記載のコンピュータに実装した方法。
【請求項11】 アプリケーショントランザクションの受領に応答してアプリケーショントランザクションマネージャを作動させるよう構成されたアプリケーショントランザクションサーバー(ATS)、及び前記アプリケーショントランザクションサーバーが実行したアプリケーショントランザクションの逆実行を可能にする取消ログを記憶するためATSに結合されたデータベース、を含むコンピュータシステム。
【請求項12】 選択されたサーバーで処理するために、特定のアプリケーショントランザクション演算を選択的に配送する配送機構を備えて構成されたデータ処理システム、をさらに含む請求項11記載のコンピュータシステム。
【請求項13】 ネットワーク管理に関しコンピュータに実装した方法であって、対応するメッセージ要求演算の実行のための複数の要求メッセージを、複合アプリケーショントランザクションに結合するステップ、及び前記複合アプリケーショントランザクションを実行するステップ、を含むコンピュータに実装した方法。
【請求項14】 所定の初期値を有する選択されたオブジェクト上で、所定の要求演算を個々に実行するステップを含む請求項13記載のコンピュータに実装した方法。
【請求項15】 前記選択されたオブジェクトの前記初期値を記録するステップを含む請求項14記載のコンピュータに実装した方法。
【請求項16】 前記初期値の記録が選択されたデータベース内に記憶されるものである請求項15記載のコンピュータに実装した方法。
【請求項17】 アプリケーショントランザクション内に結合されたメッセージ要求演算の一部のみがそれを完了する能力があるものである請求項13記載のコンピュータに実装した方法。
【請求項18】 アプリケーショントランザクション全体の原子的実行の失敗に応答して、トランザクションが変更したオブジェクト値を初期状態に復元するステップを含む請求項17記載のコンピュータに実装した方法。
【請求項19】 選択されたオブジェクトのためのトランザクションセマンティックを、それらのエージェントが特定のトランザクション能力を有するか否かに関係なく提供するステップを含む請求項18記載のコンピュータに実装した方法。
【請求項20】 選択されたオブジェクトのためのトランザクションサービスをそれらのエージェントを通じて提供するステップを含み、このサービスがエージェントの位置に関し透過的である請求項19記載のコンピュータに実装した方法。
【請求項21】 ATサーバーによりATメッセージ及びAT演算を、それらのメッセージ及び演算にマッピングするステップであって、それらのメッセージ及び演算が、それぞれによって規定される行動を具現しそれに合致するオブジェクトのためのX.702/X.860/X.861/X.862プロトコルに文書化されたものとして、OSIトランザクションプロトコルに規定されたものを含む請求項20記載のコンピュータに実装した方法。
【請求項22】 ATサーバーによりATメッセージ及びAT演算を、メッセージ及び演算にマッピングするステップであって、それらのメッセージ及び演算が、それによって規定される行動を具現しそれに合致するオブジェクトのためのXAプロトコルで規定されたものである請求項21記載のコンピュータに実装した方法。
【請求項23】 ATサーバーによりATメッセージ及びAT演算を、メッセージ及び演算にマッピングするステップであって、それらのメッセージ及び演算が、それによって規定される行動を具現しそれに合致するオブジェクトのための選択されたトランザクションプロトコルで規定されたものを含む請求項22記載のコンピュータに実装した方法。
【請求項24】 管理演算のための取消記録を構築するステップであって、該演算が、選択されたCMIPプロトコルのためのX.711に規定された行動を具現しそれに合致するオブジェクトのためのCMIPプロトコルにおけるM-SET、M-CREATE、及びM-DELETE演算に等価のものを含む請求項23記載のコンピュータに実装した方法。
【請求項25】 M-SET演算に等価の、管理された演算用の取消記録を準備するため、及び前記演算を取り込んだトランザクションがアボートされた場合に前記演算の効果をロールバックするためのステップ群であって、実際のM-SETが上書きするオブジェクト及び属性の元の値を得るために、別のM-GET要求を呼び出すステップ、前記要求の結果を取消ログ内のM-SET記録に記憶して、実際のM-SET演算が成功したときこの記録をコミットするステップ、及びアボートの場合に、実際の演算の効果をロールバックするために前記取消記録を呼び出すステップ、の各ステップをさらに含む請求項24記載の方法。
【請求項26】 M-CREATE演算に等価の、管理された演算用の取消記録を準備するため、及び前記演算を取り込んだトランザクションがアボートされた場合に前記演算の効果をロールバックするためのステップ群であって、新しいM-DELETE記録を目標オブジェクトのために前記取消ログ内に作成し、実際のM-CREATE演算が成功したときその記録をコミットするステップ、及びアボートの場合に、実際の演算の効果をロールバックするために前記取消記録を呼び出すステップ、の各ステップをさらに含む請求項24記載の方法。
【請求項27】 M-DELETE演算に等価の、管理演算用の取消記録を準備するため、及び前記演算を取り込んだトランザクションがアボートされた場合に前記演算の効果をロールバックするためのステップ群であって、実際のM-DELETEによって除去可能なオブジェクト及び属性の元の値を得るために別のM-GET要求を呼び出すステップ、前記要求の結果を取消ログ内のM-CREATE記録に記憶し、特定のM-SET演算が成功したときこの記録をコミットするステップ、及びアボートの場合に、実際の演算の効果をロールバックするために取消記録を呼び出すステップ、の各ステップをさらに含む請求項24記載の方法。
【請求項28】 管理演算用の取消記録を構築するステップであって、該演算が、SNMP(RFC1157及び関連RFC)及びSNMP V2(RFC 1905及び関連RFC)に規定された通りの行動を具現しそれに合致するオブジェクトのための、SNMP-SET PDU、列オブジェクトを作成するための単純オブジェクトインスタンス演算用SNMP-SET演算、列オブジェクトを抹消するためのSNMP-SET演算に等価のものを含む請求項24記載のコンピュータに実装した方法。
【請求項29】 単純オブジェクトインスタンスのためのSNMP-SET演算に等価の管理演算用の取消記録を準備するため、及び前記演算を取り込んだトランザクションがアボートされた場合に前記演算の効果をロールバックするためのステップ群であって、実際のSNMP-SETが上書き可能なオブジェクト及び属性の元の値を得るために、別のSMNP-GET要求を呼び出すステップ、前記要求の結果を前記取消ログ内のSNMP-SET記録に記憶し、実際のSNMP-SET演算が成功したときこの記録をコミットするステップ、及びアボートの場合に、取消記録を呼び出して実際の演算の効果をロールバックするステップ、の各ステップをさらに含む請求項28記載の方法。
【請求項30】 列オブジェクトを作るためのSNMP-SET演算に等価の管理演算用の取消記録を準備するため、及び前記演算を取り込んだトランザクションがアボートされた場合に前記演算の効果をロールバックするためのステップ群であって、新しいSnmpDelReq記録を目標列オブジェクト用に前記取消ログ内に作り、列オブジェクトを作る実際のSNMP-SET演算が成功したときこの記録をコミットするステップ、及びアボートの場合に、前記取消記録を呼び出して実際の演算の効果をロールバックするステップ、の各ステップをさらに含む請求項28記載の方法。
【請求項31】 列オブジェクトを抹消するためのSNMP-SET演算に等価の管理演算用の取消記録を準備するため、及び前記演算を取り込んだトランザクションがアボートされた場合に前記演算の効果をロールバックするためのステップ群であって、実際のSNMP-SET演算が成功したとき抹消される列オブジェクトの行の元の値を得るために、別のSNMP-GET要求を呼び出すステップ、前記要求の結果を、前記取消ログ内の目標列オブジェクト用SnmpCreReq記録に記憶し、新オブジェクトを抹消する実際のSNMP-SET演算が成功したときこの記録をコミットするステップ、及びアボートの場合に、前記取消記録を呼び出して実際の演算の効果をロールバックするステップ、の各ステップをさらに含む請求項28記載の方法。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本出願の分野は、ネットワーク管理演算に関する装置、方法及びコンピュータプログラム製品に関し、詳細にはネットワーク管理演算のためトランザクション支援を提供するための装置、方法及びコンピュータプログラム製品に関する。
【0002】
【従来の技術】現在の特定のネットワーク管理アプリケーションは、個々のネットワーク管理演算を一度に一つだけ取得されるリモートネットワークオブジェクト上で実行する。リモートネットワークオブジェクトは、従って飛び飛びの別々の時間にのみ個々の注目を受ける。目標ネットワークオブジェクトは、しかし、多数で、複雑で、相互に関連している。ネットワークオブジェクトを一度に一つだけ扱うことは、残念ながら遅くて効率の悪いことが多い。多くの場合に、目標オブジェクトを個々に他の目標オブジェクトから隔離してアドレスするのでは、所望のオブジェクト間相互作用を共同作用に導くことはできない。この技術的問題を克服するため、目標オブジェクトは、相互関連し相互依存する多様なリモートネットワークオブジェクト上でリアルタイム調整をおこなって、一層包括的にアドレスする必要がある。
【0003】
【発明が解決しようとする課題】現在、ネットワーク管理アプリケーションは、ネットワーク管理演算を一度に一つの演算づつ構築してネットワークオブジェクトに送る。現在の特定のネットワーク管理プロトコルは、管理される多数のオブジェクトに向かって一連の異種のネットワーク管理を実施する能力に欠けているので、この一連の演算は、原子的にコミットされるか又は全くコミットされないかのいずれかである。従って、一連の異種のネットワーク管理の周りにトランザクションの統合性を作ろうと試みることはネットワーク管理プラットホームの役割となる。しかし、公知のネットワーク管理プロトコルも、プラットホームも、製品も、単一トランザクションのコンテキスト内で勝手な一連のネットワーク管理演算の原子的実行に備えた組み込み機構は持っていない。
【0004】
【課題を解決するための手段】本発明によれば、アプリケーショントランザクションは、単一の原子的にコミットされたトランザクションにまとめて結束されたネットワーク管理要求演算のグループとして実装される。アプリケーショントランザクションはこのように、幾つかのメッセージ要求演算を結束して、原子的にコミットされる。結合されたトランザクションはさらに、ネットワーク管理アプリケーションの要求に際し、本発明によれば原子的にアボートされる。一実施例によるアプリケーショントランザクションは、複数のネットワーク管理要求を、セマンティック開始命令及びコミット又はロールバックいずれかの命令により境界を定められた単一の包括的結束アプリケーショントランザクションに結合し、これが、これらのアプリケーションに関連する複数のネットワーク管理要求及び単一アプリケーショントランザクションに結束されたメッセージ演算を含んで、多重ユーザー・アプリケーションのトランザクション統合性を維持する。
【0005】本発明によれば、ネットワーク管理プラットホーム用の機構により、ユーザーは勝手な一連の異種管理要求の周りにトランザクション境界を規定することができる。本発明に従うプラットホームは、これらの要求が原子的にコミットされることを保証する(つまり全部まとめてコミットするか又はコミットしないか)。
【0006】
【発明の実施の形態】図1は、本発明に従うネットワーク管理プラットホームと通信する選択されたユーザー・アプリケーションのブロック図である。詳説すると、図1は、選択されたユーザーアプリケーション100が、その各種演算に基づいて多様な要求メッセージをネットワーク管理プラットホーム(NMP)102に送るのを示す。メッセージは、選択されたアプリケーショントランザクション演算の、選択された目標オブジェクト、例えば104〜114、に向けられた所定の作業を要求する。NMP102 は、アプリケーショントランザクション(AT)103を実行するための処理実体(ソフトウエア、ハードウエア、ファームウエア又はそれらの複合)を含む。アプリケーショントランザクション103は、本発明に従う機構であり、「アプリケーショントランザクション(AT)開始:」メッセージを後述のように構築することにより組み立てられる。組み立てられたATメッセージは次いで、本発明に従う取り扱いのため組み立てられたネットワーク管理プラットホーム(NMP)102に送られる。NMP102 は、多様な要求メッセージを多数のアプリケーションから本発明の一実施例に従って受領する。NMP102は、多様なメッセージが定義する演算をまとめて、本発明に従う単一ATに結束し、これをアプリケーショントランザクションコミットメッセージを受け取るまで続ける。コミットメッセージは、受信したメッセージ演算の同期結合コミットメントを生じさせる。「ATロールバック」メッセージを受け取った場合は、演算相互の結束及びメッセージ演算自体をアボートする。ユーザーには、本発明の一実施例に従って、例えば、「AT開始」、「ATコミット」、及び「ATロールバック」のようなAT情況メッセージが提供される。処理実体103は、本発明の一実施例に従ってデータベース105との通信環境にある。ユーザーアプリケーション101は要求メッセージを、下記の例に従ってNMP102に送る。
【0007】例//アプリケーショントランザクション開始・・・//オブジェクトA、属性a1のセット・・・//オブジェクトC、属性c1のセット・・・//アプリケーショントランザクションコミット【0008】こうして、本発明に従って、複数の要求が構築され(つまり結合され)原子的な単一アプリケーショントランザクションとして送られる。原子的であることは、トランザクションをコミットするときも失敗するときも、単一原子的トランザクションに結合されたすべてのその演算が一斉にコミットまたは失敗することを意味する。トランザクションは、個々に規定されていても間接的に参照されていても、すべての演算可能オブジェクトに結束される。
【0009】図2は、本発明の実施例を実装するためのコンピュータシステムのブロック図であって、ここでは、各サーバー及びアプリケーションは、結合的に又は別々に一つ以上のコンピュータシステム上に実装される。コンピュータシステム160は、詳説すると、ランダムアクセス・メモリ(RAM)170、リードオンリー・メモリ(ROM)171、RAM170及びROM171に接続されたメモリ・バス172、メモリ・バス172に接続されたマイクロプロセッサ173、モニタ176、プリンタ177、ディスク駆動装置178、コンパクト・ディスク・リードオンリー・メモリ(CD−ROM)駆動装置179、モニタ176、プリンタ177、ディスク駆動装置178並びにCD−ROM駆動装置179に接続された周辺機器バス180、固定ディスク駆動装置181、及びネットワーク・インターフェイスを含み、図2に示すようにそれぞれが周辺機器バス180に接続されている。ディスク駆動装置178及びCD−ROM駆動装置179は、それぞれ磁気的又は光学的ディスク又はフロッピー178'及びCD−ROM媒体179'などの媒体上に埋め込むことのできるコンピュータプログラム製品(図示せず)を含めた情報を、それぞれ読み取る能力がある。選択された装置及び媒体に従って、選択された媒体上への書込が読取と同様に達成される。
【0010】図3は、本発明に従うネットワーク管理プラットホーム(NMP)のブロック図である。詳説すると、図3は、上述のような処理実体103を一つ以上のアプリケーショントランザクションのため含むNMP102を示す。処理実体103は、他方で本発明に従うアプリケーショントランザクションマネージャ110(ATM)を含む。本発明に従うATM110は、図7との関連で後述する取消ログに連結されている。取消ログは、例えばDB105などの選択されたデータベース(DB)に記憶されている。取消ログのデータにより、不完了又は失敗アプリケーショントランザクションの一部を取り消しできる。例えば、処理された失敗ATは、例えば、トランザクションで影響を受けた目標オブジェクト、例えば104〜114、の元の値へのロールバックにより取り消される。ATM110は、取消ログのロード及びロールバック演算において以前の目標オブジェクト値に復元するための記入値を制御する。NMP102は、所定のネットワーク配置に従ってネットワーク管理任務及び機能を課せられたサーバー又はコンピュータである。
【0011】図4は、本発明に従うアプリケーショントランザクションマネージャ(ATM)110の図である。詳説すると、図4は、それぞれ121から123の、一番から三番(符号121〜123)までの一連の演算をリンク又はスレッドするATM110を示し、これらの演算は、複合アプリケーショントランザクションとしてまとめてリンクされており、集合的に目標オブジェクト104としてあらわされた一つ以上の目標オブジェクトの上で働く。目標オブジェクト104は、ユーザー又はその代理が構成又は選択するものとして、ATM110と同じ競合プラットホーム(つまりコンピュータシステム)の上又は別のプラットホームかシステムの上で、定在するか又は呼び出される。
【0012】図5は、エージェントX及びY(それぞれ符号150及び151)のような、異なるエージェントに定在する目標オブジェクト(TOA、TOB、TOI)の周りに、ATM110がトランザクションセマンティックを作る方法を示す図である。エージェント150、151自体が特定のトランザクションを支援するか否かに関わりなく、目標オブジェクトTOA及びTOBはエージェントXに定在し、TOIはエージェントYに定在する。ネットワーク管理トランザクション演算をここでは「アプリケーショントランザクション」又は「AT」と称する。これらが、図5に参照したアプリケーション及び演算100のような一つ以上のネットワーク管理アプリケーションを呼び出す。サービス・プロバイダ又はエージェント150、151の中のアプリケーショントランザクション実行実体103は、ATトランザクションの手順を扱う。この実体103は、「アプリケーショントランザクションマネージャ」すなわち「ATマネージャ」110を含み、ATトランザクションサービスを必要とする管理実体にそれを提供するために、独立の計算手順として実装される。しかし、本発明の一般的応用性は上述の実用のみに限られない。本発明の一実施例によると、ユーザーは「AT開始」メッセージをAT実行実体103に構築してこのメッセージをAT実行実体103及びサービス・プロバイダ又はエージェントX及びYに送る。このメッセージを受け取ると、サービス・プロバイダはその要求をATマネージャ110に連絡して、継続の管理演算すべてをまとめて連結することによって結束を作る。この作用は、本発明の一実施例に従って、何のユーザー知識も無しで起こる。ユーザーは次いで、他のすべての管理演算を構築し続けてサービス・プロバイダに送る。サービス・プロバイダはこのとき、それらを実体103のATマネージャ110に向ける。この手順は、ATマネージャ110が「ATコミット」メッセージ又は「ATアボート」メッセージを受けるまで続く。「ATコミット」メッセージを受け取った場合、サービス・プロバイダは、ATマネージャと協力してこのトランザクションに含まれるすべての演算の同時コミットを起こす。「ATアボート」メッセージを受けた場合は、結束AT及びメンバー演算をアボートするか、又はアボート要求以前に実行した演算の「取消」と同様の方法で完全にロールバックする。すべての演算は、演算に失敗するか若しくは上記の命令を受領したとき、単一トランザクションとして一括してコミットされるか又は一括してアボートされる。
【0013】図6は、本発明に従ってユーザーが選択されたアプリケーショントランザクションを行う方法の流れ図である。詳説すると、図6は、ユーザーが400でアプリケーショントランザクション開始メッセージを構築することを示す。次に、アプリケーショントランザクションを開始する要求が401でネットワーク管理プラットホーム(NMP)に送られる。その後、ネットワーク管理プラットホームが402で、そのメッセージを受け取って結束処理を開始し、NMPがアプリケーショントランザクションコミットメッセージ又はアプリケーションロールバックメッセージを受け取るまで、継続の演算すべてをまとめてリンクする。このとき、アプリケーショントランザクションコミットメッセージを受け取ると、NMPは406でアプリケーショントランザクション実行実体を探し、それにすべての演算をアプリケーショントランザクションコミットメッセージとともに渡して、全スレッド演算の同時コミットを起こす。一方、アプリケーションロールバックメッセージを受け取ると、演算の結束又はスレッド化及びトランザクションはアボートされる。
【0014】図7は、本発明に従ってアプリケーショントランザクションマネージャ(ATM)がアプリケーションから要求メッセージを受け取る方法の流れ図である。詳説すると、図7は、アプリケーショントランザクションマネージャが500でアプリケーションから、実行を要する特定の演算に関する要求メッセージを、アプリケーショントランザクションサーバーとネットワーク管理プラットホームとの間のアプリケーショントランザクションヘルパー装置内の配送機構を通して、受け取ることを示す。本発明に従ってアプリケーショントランザクションマネージャ(ATM)は501で、要求メッセージから導出メッセージを作る。アプリケーショントランザクションマネージャ(ATM)はさらに、502でネットワーク管理プラットホーム(NMP)から回答を受け取って、その回答を、影響を受けたオブジェクトのスナップショットとして恒久的取消ログ内に記憶するためにリンクして、コミットできない特定のトランザクションをその際にロールバックして目標オブジェクトをトランザクション手順が始まる前に保持していた値に再設定できるようにし、そして元の要求を実行のためネットワーク管理プラットホームに送り返す。アプリケーショントランザクションマネージャ(NMP)は次に、503で、個々の各導出演算がそのまま全体として原子的にうまく完遂されたか否かについて、ネットワーク管理プラットホームからOK及び非OKの回答を受け取る。ATMはここで、OK回答を送ってアプリケーショントランザクションを許し、また非OKトランザクションをアボートして関連する取消ログを逆順でやり直し、以前にコミットした演算をロールバックして目標オブジェクト内に元のオブジェクト値を復元する。
【0015】図9〜図11は、CMIPプロトコル用にX.711で規定された行動に合致するオブジェクトを扱うATアプリケーションのため取消ログを構築する方法を示す図である。M-SETメッセージフローの部分で、アプリケーションが目標オブジェクトXに対する設定要求をネットワーク管理プラットホーム(NMP)102に送る。これはプログラミング・インターフェイスにおいて、CMIP M-SETプロトコル・データ・ユニット(PDU)を抽出する関数「CmipSetReq」を経由してなされる。NMP132において、AT実行実体がこの要求をバッファし、トランザクションがアボートされた場合のM-SET要求用に取消記録を構築するため、多数のM-GETメッセージを目標オブジェクトXに先ず送出する。この取消記録は基本的に、同一だが元の値がついている目標オブジェクトに対する別のM-SET要求である。これは変更された目標オブジェクトを、現在要求されている変更を前日付にする元の値に、復元することができる。取消記録が構築された後、NMPは目標オブジェクトにM-SET要求を送る。M-SET要求が成功すると、AT実行実体はその対応取消記録を取消ログ内にセーブし、次いでトランザクションの中の次の要求に進む。そうでないときは、現在の取消記録を移動して、取消ログを逆順で実行することにより特定のトランザクションをアボートする。図9〜図11はさらに、NMP102によりM-CREATE要求が扱われる方法の一例を示す。これは、M-CREATEメッセージフローに関連する。特定のアプリケーション実体は、関数「CmiCreReq」を送出してCMIP M-SETプロトコル・データ・ユニット(PDU)を抽出する。詳説すると、M-CREATE要求毎に取消記録が構築される。トランザクションアボートの場合に先行のM-CREATE要求を除去又は取消するのは、実質的にM-DELETE要求である。最後に、M-DELETE要求を扱う方法の一例を、M-DELETEメッセージフローの部分で示す。この場合、アプリケーション実体は、「CmipDelReq」関数を送出し、これがCMIP M-DELETEプロトコル・データ・ユニット(PDU)を抽出する。次にNMP中のAT実行実体は、多数のGET要求を目標オブジェクトに送出し、回答を得て、それらをM-DELETE要求の取消記録に構築する。この取消記録は、例えば抹消前に持っていたのと同一または類似の組の属性値を持つ、まさに同一のオブジェクトを再生するM-CREATE要求である。
【0016】図12〜図13は、取消ログを使用して特定のトランザクションをアボートする方法の図面である。ここでは、取消ログは逆順で実行され、回答はすべて非OKで返され、アボート回答が返される。「アボートメッセージ」を処理するためのステップは、本発明の一実施例に従って、(i)アプリケーションから明示的なアボート要求を受けた、(ii)ATサーバーが内部アボート条件を認識した、のいずれかの場合に、同一トランザクション内でそのサーバーが処理した先行のM-SET、M-CREATE、又はM-DELETE要求のいずれかの失敗を原因として、実行されることに注意しなければならない。本発明の一実施例に従って、CMIP M-SET、CMIP M-CREATE、CMIP M-DELETE又はSNAP GET要求にはロールバックがないことにもまた言及しなければならない。これらの要求は、本発明の一実施例に従うと、ATサーバーにより透過的に通過して、これらの要求を処理するための取消ログ内の記録は作られない。
【0017】図14〜図15は、所定の動作および SNMPプロトコルに合致するオブジェクトを扱うATアプリケーションのために、取消ログをATアプリケーション用に構築する方法の図面である。SNAP-SETのメッセージフローの部分で、アプリケーション実体は、プログラミング関数「SnmpSetSimple」要求をNMP102に送出する。この関数はSNAP-SETプロトコル・データ・ユニット(PDU)を抽出する。NMP102において、AT実行実体は多数のSNMP -SET要求を目標オブジェクトに送出し、回答を得て、それらを取消記録に構築する。続いて、AT実行実体は実際のSNMP-SET PDUを構築して目標オブジェクトに送る。要求が成功したときは、その対応取消記録を取消ログ内にセーブし、次いでトランザクション中の次の要求に進む。それ以外の場合、現在の取消記録を削除し、取消記録を逆順で実行することによりトランザクションをアボートする。次に、アプリケーション実体中のSNMP-CREATE-ROW-OBJECTメッセージフローが「SnmpSetCreateRow」関数を送出してSNAP-SETプロトコル・データ・ユニット(PDU)を抽出し、これが列オブジェクト全体の作成に用いられる。この場合、取消記録が上述の要求用に作られる。特定のトランザクションがアボートされたとき、create演算の逆が実行できるよう前記列オブジェクト全体を抹消できるのは、SNAP-SET PDUにマップできる「DelReq」である。最後に、図面の最終部分のSNMP-DELETE-ROW-OBJECTメッセージフローの下で、アプリケーション実体はプログラミング関数「SnmpSetDestroyRow」を送出する。この関数は列オブジェクト全体の抹消に用いられる。従って、多数のSNMP-GET要求が目標オブジェクトに送出されて、列オブジェクトの全行の値を復旧する。これらの値は、SNMP-SET PDUにマップできる「CreReq」を構築するのに用いられ、これが一方で全列オブジェクトを、トランザクションアボートの場合にdeleteオペレーションの逆が実行できるよう再生する。
【0018】
【実施例】以下、本発明の実施例を、付属書A〜Cに従って、説明する。
【0019】[付属書A]ATサーバーは同時並行的に走る多数のトランザクションを持つことがある。メッセージが所属する特定のトランザクションを識別するため、特定のトークン情報がユーザー・メッセージとともに渡されてそのトランザクションを一義的に識別する。この情報は、トランザクショントークン情報として知られている。本発明の特定の具体例に従ってこのトークンに関し三つの表現がある。
【0020】本発明に従う一つのトークン表現は、全面的なトランザクション情報を必要とする。詳説すると、このトークンは、新たなトランザクションを作るため又は既存のトランザクションに関連させるためトランザクションを広域的に一義的に識別する情報を含む。
【0021】本発明に従う別のトークン表現は、広域的トランザクション識別子を必要とする。詳説すると、全トランザクション情報にマップできる導出識別子を作る。この広域的トランザクション処理識別子は、要求/回答メッセージ中で同一トランザクションの反復参照のため、全トランザクション情報の代わりに使える。この識別子は、広域的に唯一であって、NMPのものような良く知られた実体を通じて、全トランザクション情報へ又は該情報から広域的に翻訳でき、広域的トランザクション処理マッピング機能へのアクセスを提供するか又はこの情報自体を供給する。
【0022】本発明に従う別のトークン表現は、トランザクション識別子を必要とする。詳説すると、導出識別子を用いて、ATマネージャの領域内で局所的に唯一のトランザクションを識別する。本発明にしたがえば、トランザクショントークン情報は下記のASN.1文法に従って表現される。
【0023】
CHOICE { transInfo [1] TransactionInfo, grobalTransId [2] Integer, localTransId [3] Integer } TransactionInfo ::= SEQUENCE { userName GraphicString, applicationId INTEGER (0..MAX), misId AET, threadId [0] INTEGER OPTIONAL, enclosingTransaction [1] TransactionInfo OPTIONAL }【0024】本発明の一実施例によれば、選択されたトランザクション情報は、AT開始(BeginAT)コンテキスト・メッセージ中で渡される。ATサーバーが、局所的トランザクション識別子又は広域的トランザクション識別子のいずれを返すか選択し、それをアプリケーションがATサーバーと通信するため続いて使用する。
【0025】[付属書B]アプリケーショントランザクションAPIの明細「AppTrans」−ATヘルパーオブジェクト【0026】AppTransは、アプリケーショントランザクションをサポートするC++オブジェクト・クラスである。AppTransのコンストラクタは、選択されたAppTrans変数を特定のPlatform変数に次のように関連付ける。
【0027】AppTrans(Platform& <plat> = Platform::def_platform);【0028】ATの非同期限定モードをEM中でサポートするため、次のメソッドが本発明の一実施例に従って実装される。
・ Begin ATメソッド(同期バージョン)
・ Commit ATメソッド(同期バージョンのみ)
・ Abort ATメソッド(同期バージョンのみ)
・ Get Result メソッド・ Get Result Stringメソッド【0029】次のメソッドは、本発明の範囲内のものである。
【0030】アプリケーショントランザクション開始Result AppTrans::begin_trans(CDU <atm_name>); //ATマネージャ名【0031】このメソッドは、新たなトランザクションのため開始境界を規定する。このメッセージに続くすべてのメッセージは、トランザクション終了又はトランザクションアボートを指示するメッセージまで、このトランザクションに拘束される。このメソッドは、同期モードで走りトランザクション開始要求の処理結果を返す。結果がNOT_OKであるとき呼び出し人は、本発明に従ってget_result()又はget_result_string()メソッドを呼び出し本発明に従ってさらに詳しいエラーを受け取ることができる。
【0032】アプリケーショントランザクション終了Result AppTrans::commit_trans();
【0033】本発明に従うこのメソッドは、現在アクティブなトランザクションの終了を意味し、そのトランザクションのコミット処理を要求する。このメソッドは、同期モードで走り、トランザクション終了要求処理の最終結果を返す。メソッドがNOT_OKと返されたとき呼び出し人は、get_result()又はget_result_string()メソッドを呼び出して、さらに詳しいエラーを受け取ることができる。他の場合、現在アクティブなトランザクションの状態がAT_SUCCESSに変更される。
【0034】アプリケーショントランザクションアボートResult AppTrans::abort_trans();
【0035】本発明に従うこのメソッドは、現在アクティブなトランザクションに関し、トランザクションアボートの開始を要求する。このメソッドは、同期モードで走り、トランザクションアボート要求処理の最終結果を返す。メソッドがNOT_OKと返されたとき呼び出し人は、get_result()又はget_result_string()メソッドを呼び出して、さらに詳しいエラーを受け取ることができる。他の場合、現在アクティブなトランザクションの状態がAT_ABORTEDに変更される。
【0036】アプリケーショントランザクション取得及びエラー文字列AT_Result AppTrans::get_result()Char *AppTrans::get_result_string(void)【0037】これらの関数は現在アクティブなトランザクションの状態及びこのトランザクションに関連した状態文字列を返す。状態の型及びその文字列を下表に示す。
【0038】
【表1】

【0039】本発明の一実施例に従う典型的ネットワーク管理演算順序は下記の通りである。
DELETE router1;
DELETE router2;
DELETE circuit1;
SET alarm.status = "historical" WHERE alarm.originator = router1;SET alarm.status = "historical" WHERE alarm.originator = router2;【0040】このような実施例の制約は下記の通りである。
1.router1又はrouter2のいずれかのDELETEに成功したときは、circuit1のDELETEに必ず成功する。そうでなければ、「懸垂回路(dangling circuit)」を生じる。
2.いずれかのrouterのDELETEに失敗したときは、他のrouter及びcircuitのDELETEを処理することはできない。そうでなければ、ネットワークが矛盾する状態(つまり誤配置の形態)になるからである。
3.任意のrouterのDELETEに成功したときは、そのalarm状態の "historical"へのSETに必ず成功する。そうでなければ、システム内に矛盾するアラームが生じる(つまり、アラームを発する装置がもはや存在しない時アラームが作動する)。
4.任意のrouterのDELETEに失敗したときは、そのalarm状態の "historical"へのSETを進めることはできない。未だネットワーク内でアクティブで固定を要する装置が発するアラームをアーカイブに保管するのは望ましくないからである。router1及びrouter2が異なるネットワーク管理エージェントにより制御されているときは、一つのエージェントがダウンしている間に、他のエージェントが起動していることがある。従って、一つのrouterのDELETEには成功し別のものには失敗する。
【0041】本発明に従うと、次の要求は、それゆえ、原子的に実行される。
BEGIN TRANSACTION;
DELETE router1;
DELETE router2;
DELETE circuit1;
SET alarm.status = "historical" WHERE alarm.originator = router1;SET alarm.status = "historical" WHERE alarm.originator = router2;COMMIT TRANSACTION;
【0042】このとき、トランザクションの原子的実行は本発明の下で保証される。下記は、アプリケーショントランザクションの一例である。
【0043】
#include <pmi/app_trans.hh> main (int argc, char **argv) { Platform Plat (duEM); // MIS.への接続を設定// Plat = Platform(duEM); If (plat.get_error_type() != PMI_SUCCESS) { cout << plat.get_error_string() << endl; } // トランザクションの前に全てのimageを局所的に準備 // アプリケーション側でrouter1、router2、cicuit1 image をブート Image router1 = Image (router1_dn, router1_class); If (!router1.boot()) { exit(1); } Image router2 = Image (router2_dn, router2_class); If (!router2.boot()) { exit(1); } Image circuit1 = Image (circuit1_dn, circuit1_class); If (!dircuit1.boot()) { exit(1); } //発信場所がrouter1又はrouter2のいずれかである場合は //すべてのアラームをブート Album the_alarms = Album("The_Alarms"); Timeout to; the_alarms.set.derivation ("/synstemId = \"sys\"/ log = \"AlarmLog\" /LV(1) /CMISFilter(or:{item:equality:(routerId, \"router1\"}, {item:equality;(routerId, \"router2\"}) "); if (!the_arams.all_boot(to)) { // ブートは失敗?
cout << "all_boot():を使ったimageのブート失敗)"; exit (2); } //アプリケーショントランザクション要求を構築して呼び出す// AppTrans at(plat); //同期 アプリケーショントランザクション開始 if (!at.begin_trans("/systemId=\"sys\"/subsystemId=\"aux\"")) { cout << "AT開始トランザクション失敗! 原因 = " << at.get_error_string() <<endl; exit(7); } //非同期 router1、router2、circuit1を破棄 if (!router1.start_destroy()) { cout << "router1の破棄失敗" << router1.get_error_string() <<endl; exit (7); } if (!router2.start_destroy()) { cout << "router2の破棄失敗" << router2.get_error_string() <<endl; exit (7); } if (!circuit1.start_destroy()) { cout << "circuit1の破棄失敗" << circuit1.get_error_string() <<endl; exit (7); } //非同期 全アラームを"historical"に設定 if (!the_alarn.all_set("status","historical")) { cout << "セット失敗! 原因 = " << the_alarm.get_error_string() << endl; exit (7) ; } if (!the_alarn.all_start_store()) { cout << "セット失敗! 原因 = " << the_alarm.get_error_string() <<endl; exit (7) ; } //同期 アプリケーショントランザクションをコミット AT_Result = at.commit_tarans(); //トランザクションの結果を点検// if (result != AT _SUCCESS) { cout << "AT終了トランザクション失敗! 原因 = " << at.get_result_string() <<endl; exit (7); } exit(0); }【0044】[付属書C]本発明の一実施例に従って、ネットワーク管理のためのOSIトランザクション処理サービス(OSI Transaction Processing service for Network Management)のプリミティブをネットワーク管理アプリケーションとアプリケーション・サーバーとの間のダイアログ実行のため用いる。
【0045】TMNネットワーク管理のためのOSIトランザクション処理サービス利用は、下記の国際基準でサポートされている。
ITU 勧告 X.702: Information Technology−Open Systems Interconnection−Application Context for Systems Management with Transaction Processing(情報技術−オープンシステム相互接続−トランザクションプロセスを伴うシステム管理のためのアプリケーションコンテキスト)[ISO/IEC 11587も]。
【0046】ネットワーク管理のためのOSIトランザクション処理サービス自体は、下記の国際基準でサポートされている。
ITU 勧告 X.860: Open Systems Interconnection−Distributed Transaction Processing: Mode1(オープンシステム相互接続−分散トランザクションプロセス:モード1)
ITU 勧告 X.861: Open Systems Interconnection−Distributed Transaction Processing:Servece Definition(オープンシステム相互接続−分散トランザクションプロセス:サービス定義)
ITU 勧告 X.862: Open Systems Interconnection−Distributed Transaction Processing:Protcol specification(オープンシステム相互接続−分散トランザクションプロセス:プロトコル仕様書)
【0047】コミットメント、一貫性及び復旧に関する関連国際基準は、ITU 勧告 X.851: Information Technology−Open Systems Interconnection−Service Definition for Commitment, Concurrency and Recovery Service Element(情報技術−オープンシステム相互接続−コミットメント、一貫性及び復旧サービス要素に関するサービス定義)[ISO/IEC IS 9804 も]。
【0048】上記基準のすべてが、アプリケーションとトランザクション処理サービスプロバイダ(TPSP、本実施例においては アプリケーショントランザクションサーバー)との間で、トランザクションセマンティック実行のため、交換しなければならないメッセージ・セットを規定するけれども、矛盾のない状態でトランザクションの結束データを捕捉することにより、TPSPがトランザクションに関して内部的に原子的性格をそれにより保証できる機構を上述の基準のどれも示唆又は規定していないことに言及しておく。本明細書において記述したのは、正にこの機構であり、これが本発明の請求項の一つを構成する。
【0049】ここに記述された実施例は単に、アプリケーショントランザクションサーバー内のこの機構が、X.711 CMIP TMN管理プロトコルのX.702基準により規定されたX.860/X.861/X.862トランザクション処理サービスへのマッピングに定義された通りの、ネットワーク管理トランザクション手順メッセージ・セットを用いて、外部アプリケーションにより働かされる方法を説明するのみである。
【0050】本発明のX.702に合致する実施例においては、ネットワーク管理アプリケーション及びアプリケーショントランザクションサーバ双方が、X.860/X.861/X.862に合致するトランザクション処理サービスユーザ発動(TPSUI)である。これはそれらの間で交換されるすべてのCMISE、SMASE、及びROSE PDUが、X.861 TP サービスにより定義された通りのTP-DATAプリミティブ内に包括されることを意味する。
【0051】非X.702処理にサービスする能力もあるX.702に合致するTPサーバーを持つことが可能であることに言及しておく。例えば、本発明のX.702に合致する実施例は、前述した本発明の他の実施例(非X.702に合致)と同一の物理的コンピュータシステム及び同一のソフトウエア・プロセス内に共存できる。これは、非X.702に基づくネットワーク管理トランザクションが、X.860/X.861/X.862に基づくTPSPにより扱われるTP結合のプールの中にない結合の上で実行されるとき可能である。
【0052】この実施例において、ネットワーク管理アプリケーション及びアプリケーショントランザクションサーバーの双方が、TPSUIであり、TSPU-Titleを持つ。アプリケーションは、ネットワーク管理プラットホームがトランザクションにサービスするため別個のアプリケーショントランザクションサーバー・プロセスを持つか否かを必ずしも知る必要はないので、アプリケーショントランザクションサーバーのTSPU-Titleは、ネットワーク管理プラットホーム全体のTSPU-Titleと見なされる、つまり、全体としてのプラットホームがTPサーバーと見なされる。しかし、このTSPU-Titleに向けられたメッセージは、アプリケーショントランザクションサーバーに直接送り出される。
【0053】アプリケーションがBegin-Transactionプリミティブにより境界を決められたトランザクションを開始するときは、APIライブラリ(PMI)が点検して、ACSEアプリケーションの関連付けが、X.702に合致するするアプリケーショントランザクションサーバーとともに確立されているか否かを検査し、そうでないときは、このような関係づけを確立する。次に、これはTPダイアログがX.702に合致するアプリケーショントランザクションサーバーとともに確立されているか否かを検査し、そうでないときは、TP-BEGIN-DIALOGUEをアプリケーション・サーバーに発行する。最後に、これはTP-BEGIN-TRANSACTION を発行してトランザクションの始点の境界を定める。
【0054】TPダイアログがネットワーク管理アプリケーションとX.702に合致するアプリケーショントランザクションサーバーとの間に確立している場合は、TPダイアログの一部として下記の機能単位が選択される。
−そのダイアログのため「コミットメント」の整合水準を選び、ネットワーク管理アプリケーションをそれにより結束データ自体のコミットを整合することから解放する。
−コミット機能単位(Commit Functional Unit)及び非連鎖トランザクション機能単位(Unchained Transactons Functional Unit)が選ばれる。
−ハンドシェイク機能単位(Handshake Functional Unit)は選ばれることも選ばれないこともある。
【0055】この実施例においては、トランザクションの境界を定めるためアプリケーションが呼び出した手順呼出と同時に、アプリケーションが呼び出したネットワーク管理演算が、X.702 基準に規定の通りX.860/X.861/X.862TPサービスプリミティブへの下記のマッピングを用いてX.702に合致するアプリケーショントランザクションサーバーに送られる。
【0056】
Begin Transaction A-ASSOCIATE (必要あれば) TP-BEGIN-DIALOGUE (必要あれば) TP-BEGIN-TRANSACTION M-CREATE TP-DATA wrapping CMISE/ROSE M-CRATE PDU M-DELETE TP-DATA wrapping CMISE/ROSE M-DELETE PDU M-CANCEL-GET TP-DATA wrapping CMISE/ROSE M-CANCEL-GET PDU M-GET TP-DATA wrapping CMISE/ROSE M-GET PDU M-SET TP-DATA wrapping CMISE/ROSE M-SET PDU Commit Transaction TP-COMIT Abort Transaction TP-ROLLBACK END TRANSACTION TP-COMIT (先行するTP-COMMITの発送がない場合) TP-END-TRANSACTION【0057】ハンドシェイク機能単位が選ばれているときは、ネットワーク管理アプリケーションが送出するプリミティブTP-HANDSHAKEが、TP-COMMITプリミティブの等価物と見なされる。
【0058】本発明の一実施例に従うと、X.702に合致するアプリケーショントランザクションサーバーは、いずれかのTP-COMMIT指示が成功裡に完全にサービスされたとき、TP-COMMIT-COMPLETEプリミティブを、ネットワーク管理アプリケーションに発行する。これは、またTP-ROLLBACK指示が成功裡に完全にサービスされたとき、TP-ROLLBACK-COMPLETEプリミティブを、ネットワーク管理アプリケーションに送出する。
【0059】本発明の一実施例に従うと、X.702に合致するアプリケーショントランザクションサーバーはこれらのメッセージ・セットを、外界(ネットワーク管理アプリケーション)と相互作用するための外部通信機構として用いる。これはまた、続いて取消ログ機構を利用して、必要なときロールバックできるようトランザクションの初期状態についての適切なデータの捕捉を実行することをそのトランザクションに保証する。
【0060】以上、本発明の一実施形態を図面に沿って説明した。しかしながら本発明は上記実施形態に示した事項に限定されず、特許請求の範囲の記載に基いてその変更、改良等が可能であることは明らかである。また、本明細書の一部には、著作権法の制約を受ける文書が含まれる。著作権者は、それが特許庁の書類又は記録にあらわれるときは、その複写に反対しないが、それ以外の場合は、これに関連する全権を保有する。
【0061】
【発明の効果】以上の如く本発明によれば、ネットワーク管理プラットホーム用の機構により、ユーザーは勝手な一連の異種管理要求の周りにトランザクション境界を規定することができる。本発明に従うプラットホームは、これらの要求が原子的にコミットされることを保証する。
【出願人】 【識別番号】398014344
【氏名又は名称】サン・マイクロシステムズ・インコーポレーテッド
【出願日】 平成11年(1999)3月18日
【代理人】 【弁理士】
【氏名又は名称】遠藤 恭
【公開番号】 特開平11−328066
【公開日】 平成11年(1999)11月30日
【出願番号】 特願平11−74138