JPH08263292A - オブジェクト指向プログラミング・インターフェース及びマップする方法 - Google Patents

オブジェクト指向プログラミング・インターフェース及びマップする方法

Info

Publication number
JPH08263292A
JPH08263292A JP8025714A JP2571496A JPH08263292A JP H08263292 A JPH08263292 A JP H08263292A JP 8025714 A JP8025714 A JP 8025714A JP 2571496 A JP2571496 A JP 2571496A JP H08263292 A JPH08263292 A JP H08263292A
Authority
JP
Japan
Prior art keywords
class
interface
asn
agent
managed
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
JP8025714A
Other languages
English (en)
Inventor
Ulf Dr Hollberg
ウルフ・ホルベルグ
Ralf Stefan Ehrlich
ラルフ・ステファン・エールリッヒ
Ulrich Scheere
ウルリッヒ・シェエーレ
Olaf Zimmermann
オラフ・ツィンマーマン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08263292A publication Critical patent/JPH08263292A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Abstract

(57)【要約】 【課題】オブジェクト指向言語で書かれたネットワーク
管理アプリケーション・プログラムをネットワーク通信
プロトコルに変換するためのプログラミング・インター
フェースを提供する。 【解決手段】アプリケーション・プログラムは、例え
ば、GDMO/ASN.1 ISO標準において指定さ
れた管理オブジェクトを操作する。更に、GDMOテン
プレート及びASN.1定義のタイプをC++プログラミ
ング言語にマップするための方法が開示される。特に、
インターフェースは、管理オブジェクト・クラスに対す
るローカルの代表として代理管理オブジェクト・クラス
を与えるコードを生成するための手段と、遠隔エージェ
ントに対する代表として代理エージェント・オブジェク
ト・クラスを与えるための実行時システム手段とを含
む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワーク通信
インフラストラクチャを介して、オブジェクト・クラス
定義を有するオブジェクト指向言語で書かれたネットワ
ーク管理アプリケーション・プログラムを開発し及び実
行するためのプログラミング・インターフェースに関す
るものである。そのネットワーク通信インフラストラク
チャは、アプリケーション・プログラムが、例えば、G
DMO/ASN.1 ISO標準において指定されてい
る管理オブジェクトを操作し、その通信インフラストラ
クチャを通して遠隔の管理エージェントにおいて使用可
能にされるものである。更に、本発明は、GDMOテン
プレート及びASN.1定義のタイプからC++言語にマ
ップするための方法及びそのインターフェースの実装の
ためのプラットフォームに関するものである。
【0002】OSIネットワーク管理アプリケーション
及びCCITT通信管理ネットワーク(TMN)アプリ
ケーションは、GDMO/ASN.1において指定さ
れ、通信インフラストラクチャを通して遠隔管理エージ
ェントにおいて使用可能にされる管理オブジェクトを操
作する能力に基づいている。
【0003】現在、X/Openから[X/Open
XMP]のXMP/XOMは、管理アプリケーションの
ための通信インフラストラクチャにとって唯一の標準化
されたAPIである。XMP/XOMは使用するのが煩
わしい。XMP/XOMベースのアプリケーションは長
いものであり、書くこと、理解すること、及びデバッグ
することが困難である。更に、XMP/XOMは静的
(コンパイル時間)タイプ・チェックを許容するもので
はなく、従って、多くのタイプ・エラーが実行時に現出
する。従って、殆どのプログラマは、XMP/XOMを
使用することが煩わしく、時間消費するものである。従
って、ネットワーク管理アプリケーションの実装者は、
ユーザにとって使い不勝手なXMP/XOMインターフ
ェースに直面する。
【0004】コード品質及び再使用性を向上させるため
に、益々多くのアプリケーションがオブジェクト指向プ
ログラミング言語C++で書かれている。たとえ管理情報
がオブジェクト指向仕様言語GDMOで定義されても、
XMP/XOMはC言語を使用する。
【0005】更に、管理オブジェクトは、形式的には、
GDMO及びASN.1で指定される。従って、GDM
O及びASN.1をサポートする開発ツールは、ネット
ワーク管理アプリケーションの開発時間を徹底的に減少
させることができる。従って、C++の組込みがOSI管
理アプリケーションの開発をサポートするためにXMP
/XOM及びGDMOベースのツールの複雑さを隠蔽す
るという要求は探知し得ることである。
【0006】OSI管理フレーム[ISO 1004
0]におけるアプリケーションの開発はかなり複雑な仕
事である。新しいアプリケーションの開発のための見積
られたコストはこの認識を支持するものである。開発プ
ロセスを増進するためには、より高いレベルのインター
フェース及び対応するツールによる更なる支持が必要で
ある。
【0007】
【発明が解決しようとする課題】従って、本発明の目的
は、正規の非分散アプリケーションにおいて使用するた
めのOSI管理情報及びサービスの真のオブジェクト指
向抽象化を与えるオブジェクト指向インターフェース
(OOI)を開発することにある。
【0008】本発明のもう1つの目的は、できるだけ使
用するに簡単な管理オブジェクトへのアクセスのための
OOIを提供することにある。
【0009】本発明の更にもう1つの目的は、通信及び
XMP/XOMに関する殆どの技術的詳細からアプリケ
ーション・プログラマを解放すること、管理情報及び管
理サービスをC++に組み込んだオブジェクト指向の強タ
イプ言語を提供すること、指定された管理オブジェクト
を操作するための方法を自動的に生成すること、及びO
SF−DMEのような将来の管理パラダイム又は通信イ
ンフラストラクチャにオープンであることである。
【0010】
【課題を解決するための手段】従って、OOI設計のた
めの要件は、以下のように要約することができる。即
ち、 (1)通信及びXMP/XOMに関する殆どの技術的詳
細からアプリケーション・プログラマを解放する。 (2)管理情報及び管理サービスをC++に組み込んだオ
ブジェクト指向の強タイプ言語を提供する。 (3)指定されたMOを操作するための方法を自動的に
生成する。 (4)OSF−DMEのような将来の管理パラダイム又
は通信インフラストラクチャにオープンである。
【0011】これらの問題は、本願の特許請求の範囲に
記載された本発明の特徴によって解決される。本発明に
よるオブジェクト指向プログラミング・インターフェー
ス(OOI)は、通信ネットワークを介して管理オブジ
ェクトへのアクセスを与える。オブジェクト・インター
フェース・コンポーザ(OIC)は、GDMO及びAS
N.1に書かれた管理オブジェクト仕様に基づいてC++
クラス定義及び実装ファイルを自動的に生成する。OO
Iを使用して、ネットワーク管理アプリケーションは、
それらの生成されたクラスのメソッドを通して、遠隔の
エージェントに記憶された管理オブジェクトをアクセス
することができる。
【0012】XMP/XOMの複雑さは、C++によって
アプリケーション・プログラマからは見えなくされる。
その結果、アプリケーション・プログラマは、通信プロ
トコル或いはその通信スタックに対する低レベルのイン
ターフェースを扱う代わりに、アプリケーションを書く
ことに集中することができる。従って、アプリケーショ
ン・プログラマは、自分の能力に合った適用分野で働く
ことが可能である。OOIは通信インフラストラクチャ
の複雑さ、特に、プログラマ・フレンドリのオブジェク
ト指向C++オペレータ・インターフェースの背後のXM
P/XOMの複雑さを見えなくするであろう。
【0013】XMP/XOMベースのコードに比べて、
OOIベースのコードは簡明であり、読み取り可能であ
る。又、OICは、生成されるクラスの数及びアプリケ
ーションによって実行時に処理されるべきオブジェクト
の数を最小にするための手段を含むことが可能であり、
即ち、関連のGDMOテンプレートのみに対するC++ク
ラスを生成することが可能である。従って、OOIは、
XMP APIをC++オブジェクトの下に隠すことによ
って管理アプリケーションの開発を徹底的に単純化す
る。
【0014】更に、管理オブジェクトをC++に完全に組
み込むことはコンパイル時の強タイプのチェックを可能
にし、一方、煩雑なデバッグが、通常、XMP/XOM
ベースのアプリケーションには必要である。OOIがな
い場合、プログラマは暗号を用いたC指向のXMP/X
OM APIを使用するか、或いはプログラマ自身に関
する或種のOOIを開発する。そのような「その場限り
の」解決法は開発に時間をとり、通常、OIC同様のソ
ース・コード生成プログラムのサポートに欠けるので、
管理オブジェクト仕様は手操作で変換されなければなら
ない。それらの解決法は、勿論、時間を消費するもので
あり、エラーを生じ易い。OOIによって、更なる開発
努力及びその場限りの解決法の弱点が回避可能である。
OOI実行時システムは、共通管理情報サービス(CM
IS)への都合の良いアクセスを可能にするC++クラス
を与える。
【0015】OSI管理アプリケーションにおいて使用
するためのオブジェクト指向インターフェース(OO
I)及びその関連のオブジェクト・インターフェース・
コンポーザ(OIC)の両方とも、管理アプリケーショ
ンの通信関連機能を構築するために必要な努力を最小に
する。
【0016】OOIの最も上に書かれたアプリケーショ
ンは管理サービス提供プログラムには無関係である。O
OIの現在の版はXMP/XOM(XMP)サービスに
基づくものであるが、OOIの将来の版はOSF−DM
Eのような異なる通信手段を使用することができるであ
ろう。アプリケーションは、わずかな努力で新しいサー
ビス提供プログラムに移植可能であろう。OOI AP
Iは、OOIが他の通信インフラストラクチャに移植さ
れる時にアプリケーションを書き換える必要がないよう
に、XMP/XOMに依存していない。
【0017】本発明による好適な実施例は、特許請求の
範囲における従属項において特徴づけられる。OOIは
静的タイプのチェックを与え、使用するのが容易であろ
う。管理情報のOSI定義はオブジェクト指向であり、
従って、OOIはオブジェクト指向設計技法を利用し、
C++で書かれた真のオブジェクト指向インターフェース
を与える。
【0018】管理オブジェクト(MO)は形式的にGD
MO/ASN.1言語で記述される。これは、MO特有
のソース・コードの自動生成を可能にする。オブジェク
ト・インターフェース・コンポーザ(OIC)はGDM
O/ASN.1順応MO仕様を取り、これらのオブジェ
クトを操作するための方法を与えるC++クラスを生成す
る。更に、OOIは標準化されたMOを操作するための
方法を与える。
【0019】強タイピングは、一般に、プログラムにお
けるタイプ互換性のコンパイル時間チェックとして定義
される。それは、「静的タイピング」の副表記として使
用されることが多い。これは、C++のような強タイプの
言語における正しくコンパイル可能なプログラムはタイ
プ・セーフであることを保証されるであろうことを意味
する。タイプ・セーフは、変数が、そのタイプの値に関
する数値範囲及び許容可能なオペレーションを完全に指
定する定義された値を有する。更に、或タイプの特定値
として、定数が定義されなければならない。この主旨は
プロシージャのパラメータのタイプ・チェックにも適用
する。
【0020】強タイピングの真の効果は、コンパイラが
変数に関する未定義のメソッドの呼出し及びタイプYと
いう変数に対するタイプXという値の非合法の割当てを
検出し、禁じるであろう。ここで云う非合法は、明示的
に定義された適当なタイプ・キャストがないことを意味
する。
【0021】オブジェクト指向言語を使用するために
は、これらの言語では、多くのアプリケーション指向タ
イプを定義することが一般的であるため、強タイピング
は更に高い重要性を持つものである。書かれた分散アプ
リケーションでは、デバッグはローカル・プログラムに
対するものよりも遥かに複雑である。強タイピングがな
い場合、定義された変数の意図しない使用間違いによっ
て、エラーが引き起こされることがある。明らかに、こ
れらのエラーの回避はデバッグ時間を節約する。
【0022】更に、タイプ・セーフは、広範囲のネット
ワーク条件で導入されるアプリケーションにとって不可
欠である。強タイピングを使用すると、コンパイラは、
割当てや、プロシージャ・パラメータ等に対する互換性
チェックを行うことを可能にされる。コンパイラがタイ
プ・セーフ・プログラムを保証しない場合、タイプ・セ
ーフは、それだけでエラーを生じ易いタスクであるその
プログラムの「正しいスポット」におけるタイプ互換性
をチェックすることによって、実行時に強化されなけれ
ばならない。これらの実行時チェックのための実行時間
はかなりの分量に達し、従って、アプリケーションのパ
フォーマンスを低下させることがある。
【0023】OOIは、既知の管理情報のインベントリ
によって働く管理アプリケーションに対する強力な静的
タイピングをサポートする。更に、OOIの汎用部分は
汎用の管理アプリケーションをサポートする。結局、同
じアプリケーションにおける汎用の及び強タイプのコン
ポーネントの共存を可能にするために、OOIは、タイ
プ・セーフ及び汎用インターフェースを通して同じオブ
ジェクトを使用する備えを作る。これは、OOIを使用
することによって、オブジェクトが割り当てられそして
それらのタイプがコンパイル時に知られている限り、強
タイプの態様で使用される。更に、コンパイル時に未知
であるタイプのオブジェクトは割当可能であり、「弱」
タイプのインターフェースを介して使用可能である。
【0024】又、本発明は、GDMOテンプレート及び
ASN.1タイプをC++クラスにマップするための方法
に関するものである。本発明の主題及びプログラミング
・インターフェースそのものは、添付図面によって示さ
れた本発明の好適な実施例に関連して明らかとなるであ
ろう。
【0025】
【発明の実施の形態】OOIの設計は、OSI管理の主
要構成要素の次のようなオブジェクト指向抽象化に基づ
いている。 1.管理情報は次のものによって表される。 管理オブジェクト 通知 ASN.1タイプ 2.管理サービスは次のものによって与えられる。 代理エージェント
【0026】これらの抽象化は、OOIがプログラミン
グ・インターフェースの使用に容易性を与えることを可
能にする。更に、それらは、OOIの実装をアプリケー
ションから分離し、従って、種々の通信インフラストラ
クチャに基づくいくつかの種々のOOIの実装がアプリ
ケーションにとって透過に交換されることを可能にす
る。
【0027】図1は、本発明によるOOIの実行時環境
を示す。OOIコンポーネントは実線で示される。アプ
リケーションは代理管理オブジェクト(PMO)を通し
て(矢印1)、または直接に代理エージェント・オブジ
ェクトを通して(矢印2)、或いは通知事象待ち行列を
通して(矢印3)OOIと対話することができる。OO
Iは通信インフラストラクチャ(CI)をアクセスする
ためにXMP APIを使用し、それが管理オブジェク
ト(MO)を実装するエージェントとコミュニケートす
ることを可能にする。
【0028】代理エージェントは、ISO[ISO 9
595(CMIS)]によって標準化された共通管理情
報サービス(CMIS)を与える。代理エージェント
は、C指向XMP APIを隠蔽するC++クラスであ
る。
【0029】代理管理オブジェクト(PMO)は、遠隔
管理オブジェクトのローカル担当である。PMOは、オ
ブジェクト・インターフェース・コンポーザ(OIC)
によって自動的に生成されるC++クラスのインスタンス
である。PMOは、管理オブジェクトの属性であるAS
N.1値及びアクションのパラメータに対する強タイプ
のアクセスのための方法を与える。
【0030】着信通知は、事象待ち行列に記憶される。
通知は、オブジェクト・インターフェース・コンポーザ
(OIC)によって自動的に生成されるC++クラスのイ
ンスタンスである。通知クラスは、通知の情報及び応答
構文のASN.1値に対する強タイプのアクセスのため
のメソッドを与える。
【0031】GDMOのASN.1値、GDMOアクシ
ョン情報パラメータのASN.1値、及び通知情報及び
応答構文のASN.1値は、OICによって分析された
ASN.1定義から自動的に生成されるASN.1タイプ
C++クラスのインスタンスによって表される。そのAS
N.1タイプC++クラスは、ASN.1タイプの値を操作
するための一組のメソッドを与える。
【0032】従って、OOI実行時システム(RTS)
及びオブジェクト・インターフェース・コンポーザ(O
IC)はそれらのアプリケーションに対する最高の開発
サポートを提供する。OOI実行時システム(OOI
RTS)は、C++クラスを使用して管理情報及び管理サ
ービス(XMP/XOM)をアクセスすることを容易に
する。OIC及びRTSは密接に関連している。事実、
OICによって生成されたコードはOOI RTSにリ
ンクされて実行可能となる。
【0033】遠隔管理オブジェクトの強タイプのローカ
ル表示の使用及びオブジェクト・インターフェース・コ
ンポーザによる代理管理オブジェクト(PMO)クラス
の生成は、弱タイプのメッセージ指向通信プログラミン
グから強タイプのローカル・オブジェクト指向プログラ
ミングへのパラダイム・シフトを生じさせる。これは、
通常のプログラマの生産性を向上させ、より多くのプロ
グラマが管理アプリケーションを開発することを可能に
するであろう。
【0034】OOIは以下のような特徴を与える。即
ち、 (a)C++で書かれた管理アプリケーションをサポート
する。 (b)GDMO及びASN.1定義を抽象オブジェクト
定義として使用する。 (c)GDMO/ASN.1定義(OICによって行わ
れた)から自動的に生成されたC++クラスを使用する。 (d)アプリケーション開発者を通信インターフェース
の複雑さから開放する。 (e)アプリケーションを通信インターフェース及びテ
クノロジから分離する。 (f)強及び弱タイプ・インターフェース・サポートを
与える。 (g)実行時タイプ情報メタ情報を与える。 (h)代理エージェントと呼ばれるCMIS機能性を持
った汎用通信クラスを提示する。 (i)OMGからのCORBAのような将来の通信アー
キテクチャへの移行パスをオープンのままにする。 これらの特徴については次の項において詳述することに
する。
【0035】(1)C++クラスへのGDMOテンプレー
トのマッピング GDMOは管理情報の定義に対していくつかのテンプレ
ートを定義する。DMI又はM3100のようなドキュ
メントは、それらのテンプレートでもって管理オブジェ
クトを定義する。オブジェクト・インターフェース・コ
ンポーザ(OIC)はGDMO管理オブジェクト定義ド
キュメント(DMIのような)を分析し、それらの管理
オブジェクトを表すC++クラスを発生する。この項は
[ISO10165−4(GDMO)]において定義さ
れたテンプレートを簡単に記述し、それらのテンプレー
トでもって定義された管理オブジェクトがOICによっ
てC++にマップされる方法を説明する。
【0036】表1は、GDMOテンプレート及びそれら
の意図された用途の概要を与える。OICは、GDMO
テンプレートを使用して定義されたオブジェクトに対す
るC++の生成のための大きな融通性を与えるので、重要
な設計判断が行われなければならなかった。この方法に
よって生成されるであろうクラス数は膨大であるため、
その分析されたドキュメントにおけるすべてのテンプレ
ートの各用途に対して1つのクラスを生成しないことに
した。代わりに、OICは、生成されたクラスの数及び
実行時にアプリケーションによって処理されるべきオブ
ジェクトの数を最小にするように構成された。
【表1】
【0037】OICは関連のGDMOテンプレートのみ
に対するC++クラスを生成する。管理オブジェクトは管
理アプリケーションに対する最も関連するオブジェクト
である。C++クラスは各GDMO管理オブジェクト・ク
ラスに対して生成される。C++クラスはGDMOドキュ
メントにおいて定義された継承階層を反映する。
【0038】アプリケーション・プログラマの主な興味
は、管理オブジェクト・インスタンスの属性の値を得る
こと又はセットすることであり、それらに関するアクシ
ョンを遂行することである。GDMOパッケージ及びG
DMO属性に対するクラスを生成することは、属性の値
へのアクセスを得るために2つの追加のオブジェクトを
横切るようアプリケーションに強制するであろう。
【0039】しかし、GDMOパッケージ及びGDMO
属性に対して生成されるクラスはない。代わりに、各管
理オブジェクト・クラスはそれの属性を操作するための
メソッドを与える。属性は、ASN.1において定義さ
れた複雑な構造となり得る値を有する。C++クラスは、
OICによって分析されたGDMO/ASN.1ドキュ
メントにおいて定義された各属性タイプに対して生成さ
れる。これらのクラスは、属性値を操作するためのメソ
ッドを与える。
【0040】属性に対するアクセス・メソッドは、その
属性を含む管理オブジェクトの管理オブジェクト・クラ
スのメソッドとして生成される。C++クラスは各AS
N.1に対して生成される。これらのクラスはその属性
の値を操作するためのメソッドを与える。
【0041】又、アクションに対して生成されるクラス
はない。代わりに、アクションに対するアクセス・メソ
ッドが、更なる間接参照なしに管理オブジェクトのメソ
ッドとして生成される。
【0042】通知は不意に管理アプリケーションに到達
することがあり、ASN.1において定義された或タイ
プの構造化情報を含むものである。応答情報が、可能な
確認として、その通知に転送されなければならない。従
って、C++クラスが各GDMO通知テンプレートに対し
て生成される。このクラスはその構造化情報に対する適
当なアクセス・メソッドを与える。確認可能な通知は r
eply()−メソッドを有する。追加のアクセス・メソッド
を生成するために、オプショナル属性識別子が使用され
る。errorReply() メソッドは適当なエラー情報を通知
発生側に戻すことを可能にする。
【0043】パラメータはクラスによって表示されるの
ではない。パラメータは希にしか使用されず、代わり
に、パラメータ情報がASN.1構文を通して転送可能
である。
【0044】名前結合はクラスによって表示されない。
名前情報は管理アプリケーションにとって低い関連性の
ものであるとみなされる。
【0045】抽象構文表記法1(ASN.1)は、管理
アプリケーション及びエージェントの間で伝送されるす
べての値を定義するようにGDMOによって使用され
る。上記のように、C++クラスはすべてのASN.1タ
イプに対して生成される。
【0046】OOIの使用可能度及びパフォーマンスを
改良するために、次のような制限がその設計に導入され
る。値文節は、管理オブジェクトのGDMO属性の値範
囲を限定する。これらの文節はエージェント導入先にと
って重要であるが、アプリケーション導入先にとっては
重要ではない。OOIは属性値に関する実行時チェック
を行うことができたであろうが、このチェックは、パフ
ォーマンス・コストが正当化されないことが推定される
ようにエージェントにおいて行われなければならない。
従って、この値文節はOICによって無視される。
【0047】GDMOパッケージは、管理オブジェクト
・クラスの定義に対する援助とみなされる。GDMO標
準によれば、パッケージにおいて定義される属性、アク
ション、及び通知は管理オブジェクト・クラスそのもの
[ISO標準10165−4(GDMO)]の特性とし
て扱われなければならないため、それらは実行時におけ
る管理アプリケーションにとって無関係のものである。
【0048】GDMO属性テンプレートはASN.1に
おいて定義されたそれらの値のタイプを指し(他の属性
を通して少なくとも間接的に)、このタイプにオブジェ
クト識別子を割り当て、アプリケーションにとって使用
可能にされるべきオペレーションをリストする。タイプ
情報はGDMO属性メタ・オブジェクトに保持される。
その値は管理オブジェクトによって直接にアクセス可能
にされ、従って、余分なホップ及び分離した実行時オブ
ジェクトを回避する。
【0049】(2)強タイプ及び弱タイプ使用 任意のオブジェクト及びそれらのオブジェクトの周知の
サブセットを処理するように適合した特殊アプリケーシ
ョンを処理することができる汎用アプリケーションをサ
ポートするために、すべてのオブジェクトが強タイプ及
び弱タイプ態様でアクセス可能である。
【0050】弱タイプ・インターフェースは、そのタイ
プが未知であるオブジェクトを操作して、例えば、スコ
ープされたゲット(scoped get)の結果を分
析する(スコープされた管理リクエストがいくつかの管
理オブジェクト・インスタンスに対する管理情報を汎用
MOインスタンスのリストとして戻す)ために使用可能
である。
【0051】強タイプ・インターフェースは、可能な時
にいつも、コンパイラがCMIP−ERRORS(又
は、XMP/XOMを直接に使用するアプリケーション
におけるコア・ダンプ)を生じるタイプ・エラーを検出
すること及びパフォーマンスに影響を与える時間消費の
実行時タイプ・チェックを避けることを可能にするため
に使用されなければならない。
【0052】両タイプのインターフェースが同じアプリ
ケーション内で相互交換可能で同時に使用可能である。
【0053】(3)代理エージェント 代理エージェントはOOIの基本的抽象化の1つであ
る。代理エージェントは共通管理インターフェース・サ
ービス(CMIS)を与える。代理エージェントは、実
遠隔エージェントに対する代理として作用する。代理エ
ージェント・オブジェクトは管理アプリケーションにと
ってローカルである。エージェントは代理エージェント
・オブジェクトの存在を知らない。代理エージェント・
オブジェクトは、代理クラスの都合の良いメソッドの背
後に、XMPセッション及びXMPコンテキストC構
造、及び関連のXMPオペレーションを隠蔽する。
【0054】(4)代理管理オブジェクト 代理管理オブジェクト(PMO)は、エージェントにお
いてインスタンス化される管理オブジェクトの(状態な
しの)表示である。各PMO C++クラスは、管理アプ
リケーションがそのエージェントにおいて実管理オブジ
ェクトを照会し或いは操作するようにCMISリクエス
トを都合よく実行要求し得る一組のオブジェクト・クラ
ス特殊メソッドを与える。管理アプリケーションは、一
般には、それが対話したい各実管理オブジェクトに対す
るPMOクラスのインスタンスをインスタンス化する。
【0055】(5)メタ情報 メタ情報は、実時間で利用可能にされるタイプ情報に対
する概念である。OOIに対して、メタ情報の存在は、
強及び弱タイプ・インターフェースの混合使用をサポー
トするに不可欠である。メタ情報は、オブジェクトのバ
イナリ及びストリング表示のオブジェクト相互間での変
換のために最も使用されそうである。更に、ASN.1
オブジェクトのメタ情報はそれらの値をエンコード及び
デコードするために使用される。
【0056】OOIに対して、各GDMO/ASN.1
オブジェクトはそれのメタ情報オブジェクトに対するポ
インタを有する。1つのクラスのすべてのインスタンス
がメタ情報オブジェクトの同じインスタンスを共用す
る。
【0057】(6)OOI環境 OOI環境オブジェクトは、OOIに属するオブジェク
ト、例えば、代理エージェント又はメタ情報オブジェク
トをクラスタするために、アプリケーションにおいて単
一のインスタンスを有する。OOI環境は初期設定時に
プログラマにとって可視的になり、アプリケーション
は、既存の代理エージェント・オブジェクトのうちの何
れかにおいて、即ち、アクティブXMPセッションのう
ちの何れかにおいて生じる第1事象を待たなければなら
ない。
【0058】(7)GDMO/ASN.1オブジェクト
・インターフェース・コンポーザ オブジェクト・インターフェース・コンポーザ(OI
C)は、GDMOにおける及びASN.1における管理
情報の仕様に基づいてソース・コードの生成のためのツ
ールである。それは、ISO標準「管理オブジェクトの
定義のためのガイドライン」(GDMO)[ISO 1
0165−4(GDMO)]に従って書かれた管理オブ
ジェクトクラス定義からその入力を取り、選択されたド
キュメントにおいて定義された管理オブジェクト、AS
N.1タイプ、及び通知に対するC++クラス(ヘッダ及
び実装ファイル)を生成する。従って、オブジェクト・
インターフェース・コンポーザ(OIC)は、GDMO
/ASN.1定義からXMP/XOMに対するC++クラ
スを生成するGDMO/ASN.1コンパイラとして働
く。
【0059】OICはIBM TMN−ワークベンチ
(WorkBench)/6000[WorkBenc
h]に基づく。GDMO及びASN.1ドキュメントは
リレーショナル・データベース又は共用ライブラリにお
いてワークベンチの管理オブジェクト・コンパイラ(M
OC)によって分析されそして記憶される。そこで、ワ
ークベンチはAPIを通してGDMO及びASN.1情
報を与える。
【0060】OICは次のようなデータを生成する。 (a)各GDMO管理オブジェクト・クラスに対するC
++ (b)各ASN.1タイプに対するC++ (c)各GDMO通知に対するC++ (d)GDMO及びASN.1に対するメタ情報データ
構造 (e)一組のユーティリティ・ファイル
【0061】GDMO/ASN.1コンパイル・プロセ
スは図2においてより詳細に示され、以下で説明され
る。
【0062】(8)代理エージェント 代理エージェント・オブジェクトは管理アプリケーショ
ンに取ってローカルである。エージェントは代理オブジ
ェクトの存在を知らない。代理エージェント・オブジェ
クトはXMP−セッション及びコンテキストC−構造と
関連のXMPオペレーションとを代理エージェント・ク
ラスのコンビニエンス・メソッドの背後に隠す。
【0063】代理エージェント実装は同期メソッド及び
非同期メソッドを与える。同期メソッドは、リクエスト
が完全に処理されるまで、制御をアプリケーションに戻
さない。同期OOIメソッドを使用して、CMIPリク
エストが処理されている間、単一のプロセス・アプリケ
ーションが未定の時間をブロックする。この行為は非常
に簡単なアプリケーションにとっては適当であるかもし
れないが、ユーザ対話式であるアプリケーションにとっ
ては適当でない。
【0064】非同期メソッドは、CMIPリクエストが
送られると直ちにアプリケーションに制御を戻す。
【0065】代理エージェント・オブジェクトは、CM
ISの作成、獲得、セット、アクション、獲得取消、及
び削除オペレーションに対するサービス・インタフェー
スを与える。このサービスは、代理管理オブジェクトの
OOI実装によって及び代理管理オブジェクト抽象化を
使用することなくCMISインターフェースへの直接ア
クセスを望む汎用管理オペレーションによって内部的に
使用される。このインターフェースは、代理管理オブジ
ェクト(PMO)抽象化を通して管理情報をアクセスす
るアプリケーションによって直接には使用されない。
【0066】着信通知は、応答可能な代理エージェント
の事象待ち行列において待ち行列化される。従って、ア
プリケーションは都合のよい時に通知を処理することが
できる。OOIは、通知を受けた時、アプリケーション
・コールバックをトリガすることができる。
【0067】直接アドレシング(DA)及び非直接アド
レシング(NDAPA)のための代理エージェントの明
瞭な実装が与えられる。直接アドレシング代理エージェ
ント(DAPA)は一度に1つの特殊エージェントに接
続することができる。DAPAは、1つの特殊エージェ
ントとコミュニケートする管理アプリケーションによっ
て使用可能である。DAPAは代理エージェントDA
C++クラスにおいて実装される。非直接アドレシング代
理エージェント(NDAPA)は特殊エージェントには
接続されない。各管理リクエストに対して、エージェン
トは次の2つの方法のうちの1つで、即ち、コンテキス
ト・オブジェクトによってリクエストの一部分(XMP
応答者タイトル)としてアドレシング・パラメータを供
給することによって明示的に、又はORSを通して暗示
的にアドレスされなければならない。この場合、XMP
(及びポストマスタ)は、オブジェクト・クラス及びリ
クエストのオブジェクト・インスタンス情報に基づくO
RSディレクトリ・サービスの助けでもってエージェン
ト・アドレスを決定する。NDAPAは代理エージェン
トNDA C++クラスによって実装される。
【0068】(9)直接アドレシング代理エージェント
(DAPA) DAPAオブジェクトは実遠隔エージェントを表す。適
当なパラメータによるconnect() メソッドはこのエージ
ェントへの接続(XMP−セッション)を設定するであ
ろう。disconnect() メソッドはそのセッション結合を
開放するであろう。
【0069】特殊エージェントによる使用のための管理
アプリケーションにおける直接アドレシング代理エージ
ェント・オブジェクトの作成は、このエージェントが存
在することを意味するものではなく、それが接続可能で
あることを意味するものでもない。DAPAオブジェク
トが作成される時、検証は行われない。初期状態は接続
解除される。
【0070】管理アプリケーションは、DAPAオブジ
ェクトを実エージェントに接続するよう明示的に試みな
ければならない。この試みは失敗するかもしれない。接
続が成功した場合、DAPAオブジェクトは接続状態に
なり、管理リクエストをそのエージェントに伝送するこ
とができる。内部的には、DAPAとエージェントとの
間の接続はXMP−セッションに基づく。
【0071】管理アプリケーションはDAPAをエージ
ェントから明示的に接続解除することができる。又、接
続は、エージェントによって、又は管理情報サービス提
供者によって妨げられることがある。そこで、DAPA
オブジェクトは「接続解除」状態になり、同じエージェ
ントに又は任意の他のエージェントに再接続可能であ
る。
【0072】(10)非直接アドレシング代理エージェ
ント(NDAPA) 管理アプリケーションは1つの間接アドレシング代理エ
ージェント・オブジェクトしかインスタンス化すること
ができない。NDAPAの作成の成功は、通信に使用可
能なエージェントが存在することを意味するものではな
い。NDAPAが作成される時、検証は行われない。管
理アプリケーションはポストマスタ・デーモン・プロセ
スに接続するよう明示的に試みなければならない。conn
ect() メソッドを使用して、非直接アドレシングXMP
−セッションが設定される。このセッションは、管理ア
プリケーション又はポストマスタがそれをクローズする
まで、アクティブのままである。NDAPAオブジェク
トが接続状態にある限り、それは任意のエージェントと
コミュニケートするために使用可能である。
【0073】(11)DAPA及びNDAPAの混合 いくつかのDAPAオブジェクト及び1つのNDAPA
オブジェクトが同じ管理アプリケーションに同時に存在
することがある。接続された代理エージェントの各々は
そのエージェントとの接続(XMPセッション)を有す
る。OOI設計は、管理アプリケーションが1つの代理
エージェント・オブジェクトを特殊の実エージェントに
接続しなければならないことを意図する。アプリケーシ
ョンが2つのDAPAオブジェクトを使用して同じエー
ジェントとコミュニケート使用とする場合或いはDAP
A及びNDAPAを使用して同じエージェントとコミュ
ニケート使用とする場合、顕著な効果は、厳密には、X
MP及びポストマスタの行為に依存する。そのような場
合、1つの代理エージェント・オブジェクトに関して作
成されたEFDは通知を異なるXMPセッション上に生
じさせ、従って、異なる代理エージェント・オブジェク
トの事象待ち行列に生じさせる。
【0074】(12)代理エージェントによって与えら
れるオペレーション 1つ又は複数個のオブジェクトの1つ又は複数個の属性
に関する管理オペレーションが実行可能である。代理エ
ージェントは、標準[ISO 9595(CMIS)]
において定義されたようなすべてのパラメータによるフ
ル・セットのCMISサービスを与える。代理エージェ
ント・インターフェースのCMISオペレーションの引
数パラメータ及び結果パラメータのその結果の構造は複
雑である。従って、一組の更なるメソッド、即ち、「単
純作成」、「単純獲得」、「単純セット」、「単純アク
ション」、及び「単純削除」は、1つの管理オブジェク
トの唯一の属性に関する、或いは単一の管理オブジェク
トのいくつかの属性に関するオペレーションを実行する
ために少ない且つ単純化されたパラメータを備えてい
る。
【0075】代理エージェントの状態及び特性を照会す
るための次のようなメソッドが設けられる。即ち、 (a)connect() メソッドは、代理エージェントとエー
ジェント又はポストマスタとの間のXMP結合を設定す
る。 (b)disconnect() メソッドは、代理エージェントと
エージェント又はポストマスタとの間のXMP結合を解
消する。 (c)isconnected() メソッドは、代理エージェントが
接続済み状態にあるかどうかをチェックする。 (d)Id() メソッドは、代理エージェントに対するロ
ーカルidを戻す。そのidはこのインスタンスを同じ
アプリケーションにおける代理エージェントの他のイン
スタンスから区別するために使用可能である。 (e)fileDescriptor() メソッドは、XMPセッショ
ンと関連したファイル・デスクリプタ(例えば、AIX
における)を戻す。AIXファイル・デスクリプタは、
自身のAIX「セレクト」コールを書くこと、例えば、
OOI及びXウインドウの間を同期化することを望んで
いる拡張アプリケーションにとって必要とされる。 (f)reset() メソッドは、代理エージェントと関連し
たすべての活動を終了させ、disconnect() を含むそれ
の初期状態を再設定する。
【0076】基本となるXMPデータ構造をアクセス及
び修正するための次のようなメソッドが与えられる。即
ち、 (a)XMPSession() は、代理エージェント・インスタ
ンスと関連するXMPセッションに参照を戻す。 (b)contextControls() は、XMPコンテキスト・オ
ブジェクトに対する参照を戻す。 (c)sessionControls() は、XMPセッション・オブ
ジェクトに対する参照を戻す。 (d)setPresentationModule() は、定義されたプレゼ
ンテーション・モジュールを置換する。
【0077】代理エージェントの状態及び特性を照会す
るための次のようなメソッドが与えられる。即ち、 (a)dump() は、代理エージェント・インスタンスの
完全な内部状態を印刷する。 (b)dumpRequestQueue() は、エージェントに送られ
た(送られるべき)リクエストを記憶する待ち行列の素
子を印刷する。 (c)dumpCompleteQueue() は、エージェントが依存し
ているリクエストの待ち行列の素子を印刷する。
【0078】次のようなメソッドは十分なCMIS機能
性を提供する。 (a)MCreate() は、エージェント側において管理オブ
ジェクト・インスタンスを作成する。 (b)MDelete() は、エージェント側において1つ又は
複数個の管理オブジェクト・インスタンスを削除する。 (c)MGet() は、エージェントから1つ又は幾つかの
管理オブジェクトの属性値を獲得する。 (d)MSet() は、エージェントにおいて1つ又は幾つ
かの管理オブジェクトの属性の値を置換する。 (e)MAction() は、エージェントにおいて1つ又は幾
つかの管理オブジェクトのアクションを呼び出す。
【0079】同期CMIS機能性の使用を容易にするた
めに、次のようなメソッドが与えられる。即ち、 (a)simpleMCreate() は、エージェントの側において
管理オブジェクト・インスタンスを作成する。 (b)simpleMDelete() は、エージェントの側において
管理オブジェクト・インスタンスを削除する。 (c)simpleMGet() は、エージェントから管理オブジ
ェクトの1つの属性を獲得する。 (d)simpleMGetSome() は、エージェントから管理オ
ブジェクトの幾つかの属性を獲得する。 (e)simpleMSet() は、エージェントにおいて管理オ
ブジェクトの1つの属性を置換する。 (f)simpleMSetSome() は、エージェントにおいて管
理オブジェクトの幾つかの属性を置換する。 (g)simpleMAction() は、エージェントにおいて管理
オブジェクトのアクションを呼び出す。
【0080】リクエスト又は通知の完了を待つための次
のようなメソッドが与えられる。即ち、 (a)wait() は、指定された量の時間を待つ。 (b)poll() は、何かが到達したかどうかをXMPに
よってチェックする。
【0081】代理エージェントのローカル状態を検査す
るための次のようなメソッドが与えられる。即ち、 (a)HasNotificationQueue() は、このインスタンス
が通知待ち行列を有するかどうか、即ち、通知を受ける
用意ができているかどうかをチェックする。 (b)notificationQueue() は、代理エージェントの通
知待ち行列に対する参照を戻す。 (c)requestQueue() は、代理エージェントのリクエ
スト待ち行列に対する参照を戻す。 (d)completedQueue() は、代理エージェントの完成
した待ち行列に対する参照を戻す。
【0082】(13)事象待ち行列 代理エージェント・オブジェクトは、受信した通知がタ
イプ・オブジェクトとして記憶される外部的に可視的な
事象待ち行列オブジェクトを含む(図1における矢印
(3)を参照)。通知は、代理エージェントがそれのX
MPセッションからメッセージを受けている時の任意の
時間に受信される。管理アプリケーションは待ち行列に
おける通知を任意の時間に処理することが可能である。
【0083】事象待ち行列はオプショナルである。如何
なる通知も受けないように、モニタリングを含まないと
いう役目を持った代理エージェントに対して、異なる構
成機構が使用可能である。通知はタイプ済み通知オブジ
ェクトによって表される。それらは、それらがXMP−
セッションに到達すると、直ちにそれらの代理エージェ
ント・インスタンスの事象待ち行列に挿入される。通知
オブジェクトは、それらが Delete() メソッドによって
明瞭に削除されるまで、その待ち行列に留まる。確認可
能な通知に対して、アプリケーションは、delete() の
前に、errorReply() 又は reply() メソッドを呼び出さ
なければならない。そうしないと、確認を待っているエ
ージェントが混乱することがある。
【0084】直接アドレシング代理エージェントに対し
て、通知のソースは特殊エージェントであり、一方、間
接アドレシング代理エージェントに対して、ソースは任
意のエージェントでよい(機能モニタリングを有する直
接アドレシング代理エージェントが同じアプリケーショ
ンに存在するものを除く)。発信エージェントのリクエ
スタ・アドレス及び発信エージェントのリクエスタ・タ
イトルはXMPからは得られない。
【0085】非同期リクエストに対して、リクエスト・
オブジェクトがアプリケーションによって割り振られ、
OOIに送られる。このオブジェクトはこの特定のリク
エストに対するすべての応答を、それらの応答が成功結
果であるか或いはエラー結果であるかに関係なく、収集
するために使用されるリストを含む。アプリケーション
は、着信メッセージの受領をチェックするための或いは
それを待つためのメソッドを呼び出すことによって、O
OI RTSに制御を明示的に送る。
【0086】(14)待機メソッド 同じアプリケーションには幾つかの代理エージェント・
オブジェクトが同時に存在することがあるので、幾つか
の待機メソッドが提供される。即ち、 (a)グローバル待機メソッドは、何かが任意の代理エ
ージェント・オブジェクトにおいて受信された場合に戻
る。 (b)代理エージェントの待機メソッドは、何かがその
セッションにおいて受信された場合に戻る。 (c)リクエスト・オブジェクトの待機メソッドは、何
かがそのリクエスト・オブジェクトにおいて受信された
場合に戻る。
【0087】それは、単一の着信応答又は通知表示だけ
が受信され、関連の待ち行列に加えられ、及びアプリケ
ーションに戻される単一事象モードと、顕著なリクエス
トに対する部分的応答が待機メソッドの終了を生じさせ
ない完了待ちモードとの間で区別されなければならな
い。完了したリクエスト又は通知はアプリケーションの
待ちを終了させるであろう。
【0088】(15)リクエスト・オブジェクト リクエスト・オブジェクトは、アプリケーションが遠隔
エージェントに送ろうとしている又は送ってしまったリ
クエストを表す。これらのオブジェクトは、リクエスト
を(できるだけ速く)追跡するために、応答と同期させ
るために、及び結果又はエラー情報をアクセスするため
に必要な情報をすべて含む。
【0089】リクエスト・オブジェクトは、アプリケー
ションによって明示的に作成及び削除されなければなら
ない。リクエスト・オブジェクトは何回も再使用可能で
ある。
【0090】リクエスト・オブジェクトのステータスを
照会するための次のようなメソッドが提供される。即
ち、 (a)confirmationMode() は、リクエストの実際の確
認モードに参照を戻すであろう。 (b)toBeConfirmed() は、確認モードが「確認」をセ
ットされるかどうかをチェックする。 (c)waitMode() は、待機メソッドに対する完了モー
ドの単一事象の間を区別する。 (d)invokeId() は、呼出しidを戻す。 (e)state() は、String() が処理状態をストリング
として戻す時、処理状態を、例えば、「顕著な」状態を
戻す。 (f)isIdle() は、状態に関して、それがアイドルか
どうかを表す。 (g)isOutstanding() は、それが未決であるかどうか
を表す。 (h)isCompleted() は、それが完了したかどうかを表
す。 (i)completionState() は、完了状態を戻す。 (j)completionStateAsString() は、ストリングとし
て完了状態を戻す。 (k)isNormallyCompleted() は、完了状態に関して表
す。 (l)isCouldNotBeIssued() は、ローカル・エラーの
ためのものである。 (m)isAbandonnedByUser() は、ユーザがリクエスト
を中止したことを表す。 (n)isAbortedByProvider() は、サービス提供者、例
えば、XMPがリクエストを中止したことを表す。 (o)errorOccurred() は、エラーが生じたかどうかを
チェックする。 (p)numberOfResultElementsReceived() は、結果待
ち行列における結果の数を戻す。 (q)numberOfServiceErrorsReceived() は、処理中に
生じたサービス・エラーの数を戻す。 (r)numberOfNonServiceErrorsOccurred() は、他の
エラーの数を戻す。
【0091】データ・メンバを更新するための次のよう
なメソッド(リクエストが「未決」状態にない場合)が
与えられる。即ち、 (a)setWaitMode() は、リクエスト・オブジェクトの
待機モードの値をセットするであろう。 (b)reset() は、すべての未決の活動を中止し、オブ
ジェクトの初期状態を再設定するであろう。 (c)abandon() は、XMP放棄メソッドを呼び出すこ
とによって未決の活動を中止する。 (d)cancelGet() は、獲得リクエストの場合、それの
待機モードに依存する。 (e)wait() は、それの待機モードに依存してリクエ
ストの部分的結果又は完了を待つ。 (f)hasAttribute() は、リクエストが送られたOI
Dを持った属性を戻したかどうかをチェックする。 (g)receiveAttribute() は、送られたOIDを持っ
た属性を受ける。 (h)receiveNextAttribute() は、反復メソッドであ
る。 (i)receiveActionReply() は、アクションの応答を
受ける(リクエストがアクションを実行することであっ
た場合)。 (j)dump() は、リクエスト・オブジェクトの実際の
状態を「オストリーム(ostream)」オブジェク
トにフォーマットする。
【0092】リクエスト・オブジェクトは、たとえ関連
の代理エージェントが削除されたとしても、アプリケー
ションによって明示的に削除されなければならない。リ
クエスト・オブジェクトに含まれたすべての応答待ち行
列要素がリクエスト・オブジェクトによって自動的に削
除される。追加の着信応答も削除される。
【0093】すべての結果をクラス破壊プログラムが受
け取った後、アプリケーションが応答待ち行列を削除す
ることがある。未決オペレーションに関する放棄/取消
オペレーションは応答待ち行列を削除しない(その待ち
行列は明示的に削除されなければならない)。
【0094】代理エージェント・オブジェクトがアプリ
ケーションによって又は障害によって通信システムから
削除又は接続解除された後は、応答がそれ以上受け取ら
れることはない。
【0095】(16)着信メッセージの受領のためのコ
ールバック いくつもの非同期リクエストを同時に使用する時、応答
は任意の順序で現れることがある。到達する応答メッセ
ージの処理を容易にするために、OOIはコールバック
・メソッドを定義するための可能性を提供する。それ
は、応答メッセージ又は通知が受領されると直ちに活動
化されるであろう。OOIは単一スレッドであり、従っ
て、コールバックは wait() 又は poll() 呼出し中だけ
読み出され、アプリケーションが処理している間は読み
出されない。
【0096】OOIは応答コールバックに対して4つの
異なるタスクを、従って、1つのリクエスト当たり4つ
の異なるコールバックを登録するための可能性を区別す
る。即ち、 (a)partialReply() は、XMPから各成功の連係応
答メッセージを要求されるであろう。 (b)errorReply() は、XMPから各不成功応答メッ
セージを要求されるであろう。 (c)completed() は、XMPから各「最終」応答の受
領時に要求されるであろう。 (d)disconnect() は、XMP又はアプリケーション
によってトリがされた接続解除処理中に呼び出されるで
あろう。
【0097】未決のリクエストに対する着信応答は、C
MIPのASN.1定義から取り出されたオブジェクト
によって表される。これらのオブジェクトはリクエスト
・オブジェクトの応答待ち行列に置かれる。着信通知
は、CMIPのASN.1定義から取り出されたオブジ
ェクトによって表される。これらのオブジェクトは、そ
れらのエージェントの事象待ち行列に置かれる。そこ
で、通知待ち行列に対するアプリケーションによって定
義されたコールバック・メソッド incomingNotificati
onCallback() がパラメータとして通知オブジェクトに
より実行される。
【0098】一般に、コールバックは「事後受領」の意
味を有する。コールバックは、何かが受け取られたこと
及び待ち行列構造が更新されたことをアプリケーション
に知らせる。従って、コールバックが呼び出される時、
そのオブジェクトは既に待ち行列にある。
【0099】未決リクエストに対する部分的応答 1.応答オブジェクトがリクエスト・オブジェクトの応
答リストに加えられる。これはリクエスト・オブジェク
トのすべての関連情報、'numberOfResponse' 情報の更
新を含む。 2.しかる後、partialReplyCallback() 又は errorRep
lyCallback が呼び出される。 未決リクエストに対する最終応答
【0100】部分的応答コールバックに加えて、次のス
テップが取られる。 1.リクエスト・オブジェクトが更新される。それの状
態は「完了済み」に変更される。応答待ち行列に加えら
れる「最終応答オブジェクト」はない。 2.リクエスト・オブジェクトが requestQueue から c
ompletedQueue へ移動させられる。 3.最終コールバック requestCompletedCallback() が
呼び出される。
【0101】(17)着信通知 1.通知オブジェクトは通知待ち行列に加えられる。こ
れは通知待ち行列ヘッダにおける情報の更新を含む。 2.incomingNotificationCallback() コールバックが
呼び出される。この技法は、アプリケーションが待ち行
列構造を修正することを可能にし、例えば、コピーを回
避するためにその受け取ったオブジェクトを応答オブジ
ェクトから「連係解除」することを可能にする。或高い
レベルの受領メソッドは、待ち行列構造、例えば、応答
待ち行列のデータを代理MOのリストに変換する getSu
bordinateのようなメソッドを修正することができる。
【0102】(18)同期及び非同期リクエストの混合
処理 アプリケーションが1つ又は複数個の非同期CMISリ
クエストを発生したと仮定する。そこで、それは同期リ
クエストを送出することを決定する。同期リクエスト
中、完全なアプリケーションが待機する。一方、非同期
リクエスト又は通知に対する応答が到着する。
【0103】非同期リクエストに対する応答を受領する
ためには、OOIは、同期呼出しのために使用された代
理エージェント・オブジェクトのXMP−セッションか
らすべてのメッセージを受けなければならない。着信メ
ッセージに対して定義されたすべてのコールバック・メ
ソッドがその意味を維持するために、及び可能な最高の
応答性を保証するために実行されるであろう。
【0104】未決のリクエストを持った他の代理エージ
ェントに対して同じ方法が使用されるべきかどうかが検
討可能である。それらに対して、メッセージの不必要な
事前受領を回避することがその受領に抗して決定され
た。
【0105】(19)フロー制御 OOI設計は、コミュニケーション・スタックにおける
より低い層によって既にカバーされている再実装の機能
性を回避することを試みるものである。従って、OOI
は、XMP及び他の任意の下層のコンポーネントのフロ
ー制御機構に依存する。アプリケーションは、XMPか
ら十分に速くデータを検索するに十分に応答する責任が
ある。さもないと、XMPレベル及びそれ以下における
除去が生じることがある。できるだけ速く、得られるだ
け多くのデータを受けるように勧めるIBM XMPの
実装に関する勧告がある。OOIは、マネージャ・アプ
リケーションにおける制御不能なメモリ使用法を回避す
るために内部バッファリングを行うことはない。
【0106】非同期OOIを使用して、マネージャ・ア
プリケーションは、それがアプリケーションの観点から
アドバイス可能と思われるほど速くエージェントからメ
ッセージを受ける必要のある機構をすべて有する。OO
Iは、幾つかの待機メソッドの1つの処理中、XMPか
らメッセージを受ける。未決のリクエスト・オブジェク
トの特性及び到達するメッセージの種類に従って、1つ
又は複数個のメッセージが1つ又は複数個のXMP−セ
ッションから受領される。XMPからの各メッセージ
を、それが到着すると、直ちに処理できるコールバック
機能を設けることはアプリケーションに最大の制御を与
える。
【0107】(20)代理管理オブジェクト 特殊な管理アプリケーションは、そのアプリケーション
の開発前にGDMO及びASN.1において定義された
管理オブジェクト・クラス及びそれらの属性の特殊な知
識でもって設計され且つそれに依存するであろう。それ
らアプリケーションに対して、最高の開発サポートを提
供することが意図される。即ち、管理オブジェクト及び
GDMOで定義された属性テンプレートは、C++におけ
る完全な実装によって自動的に具体的なクラスにコンパ
イルされる。
【0108】代理管理オブジェクト(PMO)は、エー
ジェントにおいてインスタンス化される管理オブジェク
トの無国籍表示である。PMO C++クラスは、管理ア
プリケーションがエージェントにおける実管理オブジェ
クトを照会又は操作するためにCMISリクエストを都
合よく呼び出すことができる。一般に、管理アプリケー
ションは、それが対話することを望んでいる各実管理オ
ブジェクトに対するPMOクラスのインスタンスをイン
スタンス化する。PMOは、OOIメソッドの結果、例
えば、getSubordinates() としても作成可能である。
【0109】オブジェクト・インターフェース・コンポ
ーザ(OIC)は、処理されたドキュメントにおいて定
義された各管理オブジェクト・クラス(MOC)に対す
る代理管理オブジェクト(PMO)C++クラスを発生す
る。各発生されたPMOクラスは、必須の属性及びオプ
ショナル属性へのアクセスのための、及び管理オブジェ
クトのアクションの実行のためのタイプ・セーフ・メソ
ッド(Type safe method)を与える。タイプ・セーフ・
メソッドは強タイピングを強化し、生成されたPMOの
「強タイプ済み」インターフェースを形成する。
【0110】強タイプ・メソッドに加えて、各PMO
は、PMOの「弱タイプ」インターフェースと呼ばれる
一組の「汎用」メソッドを OOIProxyMO クラスから継承
する。これらのメソッドは、どのクラスの管理オブジェ
クトが実行時に或エージェントから生じるかをコンパイ
ル時にはわからない管理アプリケーション又はコンポー
ネントを意図される。これらの汎用メソッドは生成され
たPMOのためにも使用可能であるが、実行時に行われ
る必要な動的タイプ・チェッキングのためにあまり効果
的でなく実行するであろう。
【0111】C++における生成されたPMOクラス相互
間の継承関係は、GDMO/ASN.1ドキュメントに
おいて定義されたMOCの継承関係を反映する。図2に
は、DMI MOCに対する継承構造の例が示される。
図2において明らかなように、すべての生成された強タ
イプ済みPMOクラスが DMI_ProxyTop PMOクラスか
ら取り出され、一方、そのクラスは OOIProxyMO クラス
から取り出される。従って、OOIProxyMO クラス及び DM
I_ProxyTop クラスはすべての代理管理オブジェクト・
クラスによって継承される。
【0112】OOIProxyMO 及び OOIGenericMO クラス
は、OOI実行時環境の部分としてハンド・コード化さ
れた。DMI_ProxyTop クラス及びそれのサブクラスがO
ICによって生成される。
【0113】OOIGenericMO クラスは、コンパイル時に
はわからないタイプを持った管理オブジェクトを処理す
るために使用される。この特性は汎用アプリケーション
を書くことを可能にし、或いはアプリケーションが完成
した後に定義される新しいオブジェクトの処理を行うこ
とを可能にする。
【0114】(21)記憶管理 OOIの記憶管理に対して、OOIがオブジェクトを割
り当て及びそれらをアプリケーションに送ることが仮定
される。アプリケーションは、それがOOIから受けた
すべての割り当てられたオブジェクトを開放しなければ
ならない。OOIは、内部的にしか使用されず且つアプ
リケーションにとって可視的にされないオブジェクトを
管理するだけであろう。XMPからデータを受領する
時、OOIだけがそのタイプを知っており、従って、正
しいタイプのオブジェクトを割り当てなければならず、
そしてそのようなオブジェクトをアプリケーションに送
った後、OOIは、それらを使用していつそのアプリケ
ーションが終了したかを知らない。
【0115】この結果、OOIオブジェクトのデストラ
クタ(destructor)は、含まれたオブジェクトの適当な
削除を処理するであろう。
【0116】C++言語の意味に従って、すべてのメソッ
ドが OOIProxyMO クラスから継承される。
【0117】(22)OOIProxyMOのコンスト
ラクタ(constructor)及びデストラクタ コンストラクタは OOIProxyMO オブジェクトにとって使
用可能である。両方とも、MOが存在するエージェント
及びメタ情報オブジェクトに対するポインタをパラメー
タとして期待する。これらの1つはそのオブジェクトの
区別された名前をパラメータとして付加的に受け入れ
る。如何なる場合でも、その名前は setMOInstance()
メソッドによって明示的にセット可能である。直接アド
レシング代理エージェント(DAPA)及び非直接アド
レシング代理エージェント(NDAPA)の両方とも、
パラメータとして使用可能である。コピー・コンストラ
クタ及び割当コンストラクタは OOIProxyMO クラス及び
そのサブクラスに対して明示的に不能にされている。コ
ピー・コンストラクタは、1つのアプリケーション内の
同じ管理オブジェクト・インスタンスの代理管理オブジ
ェクトの多数のインスタンスの自動生成を回避するため
に設けられるのではない。
【0118】デストラクタは各 ProxyMO サブクラスに
与えられる。コンストラクタ及びデストラクタの両方と
も例外機構を通してエラーをレポートする。
【0119】次のメソッドは各PMOクラスによって O
OIProxyMO クラスから継承される。即ち、 (a)setAgent() メソッドが ProxyAgent オブジェク
トに対する参照を上書きするために使用可能である。 (b)setMOInstance() メソッドが識別名を上書きする
ために使用可能である。 (c)<<印刷演算子は、PMOのMOC及び管理オブ
ジェクト・インスタンス(MOI)値の書式化された印
刷を行う。 (d)agent() メソッドは、そのMOが存在する PROxy
AgentXX オブジェクトにポインタを戻す。 (e)moClass() メソッドは、CMIS_ObjectClass に参
照を戻す(オブジェクトがスコープトM獲得オペレーシ
ョンの結果であるかどうかをMOCは知り得ない)。 (f)moClassId() メソッドは、OOIString に対する参
照としてクラスの名前を戻す。 (g)moInstance() メソッドは、MOの識別名を CMIS
_ObjectInstance として戻す。 (h)metaInfo() アクセス・メソッドは、実行時メタ
情報(即ち、GDMOMOクラス定義において指定され
た構造的情報、MIG参照)を検索する。 (i)hasConditionalPackage() アクセス・メソッドは
条件付きパッケージの存在を決定するために使用可能で
ある(下記参照)。 (j)reset() メソッドがオブジェクトの初期状態を再
設定する。
【0120】(23)PMOの強タイプ・メソッド OICは、除去されたGDMOドキュメントにおいて定
義された各管理オブジェクト・クラスに対するC++ヘッ
ダ及び実装ファイルを生成する。各PMOクラスは、属
性に対するアクセス及び管理オブジェクトのアクション
の実行に対するタイプ・セーフ・メソッドを与える。そ
れらのメソッドは強タイプであると云われる。
【0121】それらのスーパクラスに関しては、強タイ
プPMOクラスはデフォルト、コピー、及び割当コンス
トラクタを不能にしている。タイプPMOに対するコン
ストラクタは、そのMOが存在する代理エージェント及
びMOインスタンスの識別名をパラメータとして考え
る。その両方ともヌル(NULL)にでフォルトされ、
前述のローカル・ユーティリティ・メソッド setAgent
及び setMOInstance を使用することによってその後修
正可能である。表示されたMOCのクラスは proxyMO
のタイプによって知られている。コンストラクタ及びデ
ストラクタは例外機構を通してエラーをレポートする。
【0122】(24)多重継承 GDMOは、管理オブジェクト・クラスの定義が複数の
スーパクラスから取り出されることを可能にする。この
項は、生成されたC++クラスにおける管理オブジェクト
・クラスの多重継承をOOIが表す方法を説明する。
【0123】OOI表示の基本的な特性は次のようであ
る。 1.OOI代理管理オブジェクト・クラスのクラス階層
は、厳密には、GDMO定義によって課せられた継承構
造に続く。これは多重継承を含む。 2.メタ情報の表示に対して、同じことが適用できる。
多重継承の場合、管理オブジェクト・クラスに対するメ
タ情報オブジェクトは複数の「上位」参照を有する。
【0124】たとえC++が多重継承を提供しても、C++
はいくつかの厳しい制限を有する。GDMO多重継承の
C++多重継承への単純マッピングは、後で説明するよう
に実行可能ではない。
【0125】種々の基本クラスのみから継承するために
多重継承が使用される限り、C++はよく働く。しかし、
種々の継承パスに対する共通の基本クラスの場合、C++
問題が生じる。通常必要とされるものである共通の基本
メンバ変数のうちの1つのインスタンスだけを持つため
には、基本クラスは「仮想」基本クラスにされなければ
ならない。しかし、C++は、最早、基本クラス・ポイン
タとサブクラス・ポインタとの間の役割をサポートしな
い。
【0126】この制限は、内部的な理由(デコーディン
グ)に対して及びユーザ・モデル(汎用及びタイプ・セ
ーフ使用を混合態様でサポートするためのものである)
に対して、ポインタの役を果たす能力は「必須」であ
る。更に、実験では、今日のC++コンパイラは1つのイ
ンスタンス当たり非常に大きいサイズのオーバヘッドを
課していることが示されている。
【0127】上記のように、C++の主な問題点は多重継
承そのものには関係なく、「仮想」基本クラスの注釈の
使用に関係するものである。従って、基本的な方法は、
この注釈を回避するための、及び他の手段による「仮想
基本クラス」特性を処理するためのものである。基本ク
ラスを仮想的にするという当初の目的は基本クラス・メ
ンバーの複数インスタンスを持つことを回避することで
ある。
【0128】OOI代理管理オブジェクトの場合、この
特性は必要である。代理管理オブジェクトにおける「エ
ージェント参照」又は「パッケージ・キャッシュ」メン
バの二重インスタンスは受け入れ不能である。OOI方
法は、代理管理オブジェクトの「データ・メンバ」を代
理管理オブジェクト・クラスから「代理管理オブジェク
ト・データ(PMOData)」と呼ばれる別個のオブ
ジェクトに移動することである。このPMODataオ
ブジェクトは純粋にローカル的であり、それの対応する
代理管理オブジェクトによって完全に所有される。当初
の代理管理オブジェクトは、単に、このPMOData
オブジェクトに対するポインタを含んでいる。キャステ
ィングのために必要とされるように、当初の代理管理オ
ブジェクト・クラスは、仮想基本クラスとして宣言され
ない。明らかに、多重継承の場合、これは、PMODa
taに対する二重ポインタを持つに至ることがある。O
OI実行時システムは、これらのポインタすべてがPM
ODataオブジェクトのライフタイムの間、全く同じ
オブジェクトを指すことを保証する。
【0129】その実装は、PMODataオブジェクト
に対する「使用カウント」パラダイムを使用する。即
ち、使用中、「使用カウント」は関連の代理管理オブジ
ェクトのポインタ・メンバーの数に等しく、従って、共
通基本クラスへの特殊管理オブジェクト・クラスの継承
路の数に等しい。
【0130】ユーザに対しては、この解決法は完全に隠
蔽される。ユーザは複数ポインタの存在に気付かず、代
理管理オブジェクト・データが別個のオブジェクトに記
憶されるという事実にも気付かない。すべてのデータ及
びすべてのオペレーションが代理管理オブジェクト・イ
ンターフェースから直接にアクセス可能である。
【0131】C++代理管理オブジェクト・クラスに対す
るキャスティングは、上記のOOI解決法によって得ら
れる。しかし、多重継承の場合、C++キャスティング
は、正確なキャスティング・パス(少なくとも、多重継
承パスを持った位置における)を指定する必要がある。
これを簡単にするために、OOIは、サブクラスにキャ
ストすることを可能にする narrow ()−演算子を提供す
る(他のクラスに関して)。
【0132】更に、OOIは、「OOIProxyM
O]基本クラスにキャストするためのwiden() −演算子
を代理管理オブジェクトに与える。narrow() 演算子は
実行時チェックを選択的に行い、一方、これは widen()
演算子にとって必要ない。従って、普通のC++キャス
トを直接に使用する必要がない。
【0133】(25)通知 特殊管理アプリケーションは、そのアプリケーションの
開発前に、GDMO及びASN.1において定義された
通知オブジェクト・クラスの特殊な知識に依存する。そ
れらのアプリケーションに対して、最高の開発サポート
を提供することが意図される。
【0134】GDMOにおいて定義された通知テンプレ
ートは、C++における完全な実装によって具体的なクラ
スに自動的にコンパイルされる。
【0135】通知オブジェクトはオブジェクト・インタ
ーフェース・コンポーザ(OIC)によってGDMO/
ASN.1定義から生成され、CMIS事象レポートに
よってマネージャに送られるものと仮定する。OOI
RTSは通知を受け取り、それらを責任ある代理エージ
ェント・オブジェクトの事象待ち行列に記憶される。
【0136】(26)ASN.1 特殊管理アプリケーションは、そのアプリケーションの
開発前にASN.1において定義されたGDMO/AS
N.1定義の特殊な知識でもって設計され、それに依存
するであろう。それらのアプリケーションに対して、最
高の開発サポートを提供することが意図される。抽象的
に定義されたASN.1タイプは、C++における完全な
実装によって具体的なクラスに自動的にコンパイルされ
る。
【0137】仕様言語ASN.1(「抽象構文表記法
1」に対する)は、形式的な抽象表記法[ASN.1]
における伝送されるデータのフォーマットを指定するよ
うにISOによって定義された。「ベーシック・エンコ
ーディング・ルール」(BER)のような標準化された
エンコーディング法は、「線上のビット」の正確なシー
ケンスを指定する。従って、2つのコミュニケート・パ
ートナは、ASN.1で定義され及び同じエンコーディ
ング・ルールに従ってエンコードされたデータをそれら
が交換する場合、相互に理解することができる。
【0138】ASN.1は、原始的タイプ、ストリング
・タイプ、及びアプリケーション関連のタイプを更に定
義するために使用可能なコンストラクタを提供する。表
2は、ASN.1において利用可能なタイプを示す。そ
れらのタイプに加えて、ASN.1は、或タイプに対す
る名前を付けられた値を定義するために及び幾つかの種
類のサブタイプを定義するために、その可能性を提供す
る。
【表2】
【0139】(27)マッピング原理 表1に示されるように、アプリケーション指向コンプレ
ックス・タイプを構成するために使用される一組の原始
的ASN.1及び一組のコンストラクタがある。 (a)基本ライブラリ: 各原始的ASN.1タイプ及
び各ASN.1コンストラクタに対して、ASN.1 C
++ライブラリには対応するクラス、例えば、ASN1_Integ
er 、ASN1_SetOf がある。 (b)アプリケーション・クラス: 各アプリケーショ
ン定義のASN.1タイプが1つ又は幾つかのC++クラ
スにマップされる。一般的な場合、これらのクラスのイ
ンスタンスは、ASN.1コンストラクタのインスタン
スを中間的ノードとして有し、原始的ASN.1タイプ
を葉として有するツリー構造を形成するであろう。その
ようなツリーの根オブジェクトは、最も外側のASN.
1コンストラクタ・クラス又は単純タイプから継承する
アプリケーション定義のクラスであろう。 (c)共通メソッド: 生成されたC++クラス及びライ
ブラリにおけるクラスは、単一の共通クラス「ASN1_Typ
e」から取り出される。共通の基本クラスにおける仮想
メソッドのような割当、比較、印刷、エンコーディン
グ、デコーディング、チェッキング、ASN.1値表記
への及びその表記からの変換等のような機能の宣言はA
SN.1特殊C++クラスの一般的な使用を可能にする。
【0140】(d)強及び弱タイピング:生成されたC
++クラスは、汎用ライブラリ・クラスから継承する。そ
の生成されたクラスは強タイピング・インターフェース
を提供し、一方、それらの汎用スーパクラスは同じオブ
ジェクトに対する弱タイピング・インターフェースを提
供する。次のようなテキストにおける例は、両方を使用
するよう意図する方法を示す。非常に重要な特徴は、両
インターフェースが同じオブジェクトに対して混合態様
において使用可能であることである。従って、同じアプ
リケーションにおいて汎用コンポーネントを強タイピン
グ・コンポーネントと共に使用することが可能である。 (e) メタ情報: アプリケーションにおける動的ス
タイルの使用をサポートするために、各ASN.1 C+
+クラスは実時間タイプ情報(メタ情報)に対するアク
セスを有する。汎用アプリケーション、例えば、グラフ
ィック・アプリケーション・プログラムはこのメタ情報
に依存する。
【0141】(f)ローカル・タイプ: すべての補助
タイプ定義、例えば、択一的選択のための列挙型又はセ
レクタ型の値が、全体的範囲における名前の衝突を回避
するために、それを使用するそのクラスの範囲内で定義
される。 (g)互換性: 原始的タイプに対するすべてのC++ク
ラスがその対応するC++基本タイプと互換性のあるよう
にされ、例えば、ASN.1整数がC++整数と互換性の
あるようにされる。 (h)修飾子付き識別子: 生成された名前に対する規
則は、「<ASN.1モジュール>_<ASN.1タイプ
名>_<ASN.1コンポーネント名>」である。但
し、モジュール名は大文字におけるニックネームであ
り、タイプ名はASN.1ソース・テキストにおけるも
のと同じである。コンポーネント名は無名コンポーネン
ト・タイプに対して生成されるだけである。
【0142】(28)メタ情報 メタ情報の目的は、実行時にOOIによって必要とされ
る種々のGDMO及びASN.1仕様から取り出された
タイプ情報を与えることである。そのような情報は、次
のようなアプリケーションによって直接的に又は間接的
に使用可能である。 1.OOIの汎用インターフェースを使用する(タイプ
・セーフ・インターフェースとは対照的に)。 2.ストリング・フォーマットへの及びストリング・フ
ォーマットからの変換を必要とする汎用GUIを提供す
る。 3.GDMOメタ情報をユーザに表示する。
【0143】一般に、メタ情報は、タイプ・セーフ・イ
ンターフェースを使用するだけのアプリケーションによ
って直接には使用されない。内部的には、OOI実行時
システム(RTS)はメタ情報を利用する。
【0144】GDMO標準は、管理情報の定義に対する
テンプレートを定義する。OOIRTSは、次のような
テンプレートを使用して指定された管理情報に関するメ
タ情報を与える。即ち、 (a)管理オブジェクト・クラスは、管理オブジェクト
の必須の及びオプショナル・パッケージの名前を指定す
る。 (b)パラメータは、特定の属性オペレーション及び通
知と関連し得るパラメータの構文及び行為を指定する。 (c)属性は、その属性に対する許容可能なオペレーシ
ョンを定義し、ASN.1タイプ定義を参照する。 (d)属性グループは、1つの名前の下でアクセス又は
操作可能である属性のクラスタを指定する。 (e)アクションは、発信情報又は着信情報に対するA
SN.1タイプを参照する。 (f)通知は、定義されたタイプの事象通知を送られる
情報に対するASN.1タイプを参照する。
【0145】各テンプレートに対して、C++クラスが定
義される。このクラスのインスタンスは、OICによっ
て除去されたGDMOドキュメントにおいて定義された
各GDMOテンプレートに対してインスタンス化され
る。OOIMetaInfoRepository クラスは、メタ情報に対す
るアンカ(anchor)として作用する。更に、C++
クラスのインスタンスが各ドキュメント、各ASN.1
モジュール、及びGDMO/ASN.1ドキュメントに
おいて定義された各ASN.1タイプに対して生成され
る。
【0146】OOIメタ情報は、GDMO/ASN.1
ドキュメントに含まれる情報の殆どを保持するデータ構
造として見ることができる。この情報は、特殊なメタ情
報を検索するためのメソッド及びメタ情報データ構造を
通して「ナビゲート」するためのメソッドを提供する。
例えば、OOIMetaRepository クラスは、OOIドキュメ
ント・メタ情報及びASN.1モジュール・メタ情報を
アクセスするためのメソッドを与える。ドキュメント・
メタ情報は、オブジェクト・インスタンスのリストに記
憶される。各インスタンスは、1つのGDMOドキュメ
ントに含まれた情報の殆どを保持し、又は参照する。こ
れらのインスタンスは、そのドキュメントで定義される
管理オブジェクト・クラス・メタ情報、パラメータ・メ
タ情報、属性メタ情報、属性グループ・メタ情報、アク
ション・メタ情報、通知メタ情報、及びASN.1メタ
情報に対してアクセスするためのメソッドを与える。
【0147】(29)OOIエラー処理 OOIを使用する時、次の3種類のエラーに遭遇するこ
とになる。 1.アプリケーション関連エラー 2.OOI内部エラー 3.コミュニケーション・エラー
【0148】アプリケーション関連エラーは、そのアプ
リケーションの誤ったコーディングによって生じる。O
OIは強タイピングをサポートするため、殆どのコーデ
ィング・エラーはコンパイル時に検出されるが、或エラ
ーは、例えば、24というサポートされてない値に時間
属性をセットしようとするか、又はストリング外のビッ
トをアクセスしようとする実行時に検出可能なだけであ
る。
【0149】OOI内部エラーは、システム問題(例え
ば、資源偶発障害、即ち、メモリ外)、XMPライブラ
リ、又はシステム・エラーによって生じることがある。
【0150】コミュニケーション・エラーはACSE又
はCMISサービス・エラーである。それらのエラー
は、それらがプロトコル定義の固有部分である時に期待
される。
【0151】OOIは、エラーを信号するために次の4
つの機構を使用する。 1.ブーリン戻り値 2.ヌル・ポインタ戻り値 3.機能戻りとして又は機能参照引数によって戻された
エラー・オブジェクト 4.例外によって投棄されたエラー・オブジェクト
【0152】エラー・オブジェクトは、OOIの好適な
エラー処理メソッドである。別の方法として、アプリケ
ーション・ライタに更なる快適さを与えるための機能に
よって、ブーリン又はヌル・ポインタが戻される。
【0153】ブーリン戻り値は、一般には、評価におい
て使用される機能によって使用される。ヌル・ポインタ
戻り値は、メタ情報が使用可能でない場合、メタ情報ア
クセス・メソッドによって戻される。エラー・オブジェ
クトは、呼び出されたメソッドの機能参照引数を通して
戻される。
【0154】例外は、コンストラクタが結果パラメータ
をサポートしない(従って、エラー・コードを戻すこと
ができない)ので、障害あるコンストラクタを処理する
ようにC++において使用されなければならない。更に、
例外は、内部エラーを表すために都合のよい機構を与え
る。OOIは、参照機能引数において使用されるクラス
と同じクラスのエラー・オブジェクトを投じる。
【0155】(30)エラー・オブジェクト エラー・オブジェクトは、参照引数を通してC++機能に
よって戻されるか、又はC++例外を通して投じられる。
以下では、OOIErrors の継承階層を説明する。すべての
エラー・クラスが、IBMアプリケーション・サポート
・クラスの例外クラスから得られる。
【0156】コミュニケーション・エラーは、それらが
ACSE及びCMISプロトコル・オペレーションに固
有である時に期待される。コミュニケーション・エラー
を記述するエラー・オブジェクトは、通常、戻され、投
棄されない。コミュニケーション・エラーはスタック・
インターフェースから生じるか、或いはCMISプロト
コルそのものから生じることがある。
【0157】(31)OOIエラー・オブジェクトのメ
ソッド OOIErrorオブジェクトは、通常、OOIによっ
て割り当てられ、アプリケーションへ送出される。これ
らのオブジェクトを削除することはそのアプリケーショ
ンの義務である。コンストラクタは明示的に使用不能に
されるが、アプリケーションは copy() メソッドを使用
して既存のエラー・オブジェクトのコピーを作成する。
【0158】エラーの種類を調べるための次のようなメ
ソッドが与えられる。 (a)isCommunicationsError() は、そのエラーがその
カテゴリのものであるかどうかをチェックする。 (b)isCMISError() は、そのエラーがそのカテゴリの
ものであるかどうかをチェックする。 (c)isLocalError() は、そのエラーがそのカテゴリ
のものであるかどうかをチェックする。 (d)isApplicationError() は、そのエラーがそのカ
テゴリのものであるかどうかをチェックする。 (e)isInternalError() は、そのエラーがそのカテゴ
リのものであるかどうかをチェックする。
【0159】次のような汎用サポート・メソッドが与え
られる。 (a)name() メソッドは、オブジェクト・クラスの名
前を戻す。 (b)typeCodeIndex() メソッドは、サブクラスのイン
デックスを戻す(通常は、::narrowが追従する
エラーを調べる/分類するために使用可能である)。
(それは、列挙型であるタイプコードのリストに対し
て、ヘッダ・ファイルOOIError.Hを調べる) (c)asString() は、オブジェクトのフォーマットさ
れたステータスを含むストリングを戻す。 (d)copy() は、パラメータ・オブジェクトのコピー
に対するポインタを戻す。 (e)metaInfo() は、オブジェクトのメタ情報に対す
るポインタを戻す。 (f)narrow() は、サブクラスのインスタンスへのタ
イプ・セーフ変換を行う。
【0160】(32)OOIの実装 OOIは、オブジェクト指向プログラミング言語C++で
書かれたプログラムとして実装可能であり、或いはハー
ドウエア・ツールとして導入可能である。
【0161】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0162】(1)ネットワーク通信インフラストラク
チャ上でネットワーク管理アプリケーションを開発及び
実行するためのオブジェクト指向プログラミング・イン
ターフェースにして、前記管理アプリケーションは前記
通信インフラストラクチャを介して遠隔の管理されたエ
ージェントにおいて使用可能な管理オブジェクトへのア
クセスを有し及び前記管理オブジェクトを操作すること
ができ、前記管理アプリケーション及び前記エージェン
トの間で管理情報を交換することができるものであり、
前記管理オブジェクトはオブジェクト・クラス(MO
C)によって定義され、データ・タイプを定義するオブ
ジェクト指向構文表記法で指定され、前記プログラミン
グ・インターフェースは、管理オブジェクト・クラス
(MOC)のためのローカル代表として代理管理オブジ
ェクト(PMO)クラス、構文表記法で定義されたタイ
プに対するオブジェクト・クラス、着信した通知に対す
る通知オブジェクト、及び指定された管理オブジェクト
を操作するためのメソッドを与えるコードを生成するた
めのオブジェクト・インターフェース・コンポーズ(O
IC)手段と、共通管理情報サービス(CMIS)に対
するアクセスを可能にするために、前記CMISを与え
る遠隔エージェントのための代表として代理エージェン
ト・オブジェクト(PAO)クラスを与えるための実行
時システム(RTS)手段と、を含み、前記OICによ
って生成されたコードは実行のために前記RTSに連係
されることを特徴とするインターフェース。 (2)前記OIC手段はC++コードを生成すること、前
記アプリケーション・プログラムはC++で書き込まれる
こと、及び前記PMO及びASNクラスはC++における
オブジェクト・クラスであることを特徴とする上記
(1)に記載のインターフェース。 (3)前記OIC手段は前記ISO標準GDMO及びA
SN.1で書かれた管理オブジェクトに基づいてPMO
C++クラス定義及び実装ファイルを自動的に生成する
ことを特徴とする上記(1)又は上記(2)のいずれか
一つに記載のインターフェース。 (4)前記OIC手段はGDMO及びASN.1におけ
る管理情報の仕様に基づいて管理オブジェクトのための
コードを生成するための生成手段を含むことを特徴とす
る上記(1)乃至上記(3)のいずれか一つに記載のイ
ンターフェース。 (5)前記管理オブジェクトはコンパイル時の強タイプ
・チェックを可能にするためのC++に完全に組み込まれ
ることを特徴とする上記(1)乃至上記(4)のいずれ
か一つに記載のインターフェース。 (6)前記着信通知は事象待ち行列オブジェクトに記憶
されることを特徴とする上記(1)乃至上記(5)のい
ずれか一つに記載のインターフェース。 (7)前記PAOは前記CMISのオペレーションに対
するサービス・インターフェースを与えることを特徴と
する上記(1)乃至上記(6)のいずれか一つに記載の
インターフェース。 (8)一時に1つの特殊エージェントに接続することが
できる直接アドレシング代理エージェント(DAPA)
を設けることを特徴とする上記(1)乃至上記(7)の
いずれか一つに記載のインターフェース。 (9)各管理リクエストに対して、前記エージェントは
コンテキスト・オブジェクトによって又はディレクトリ
・サービスを通して暗示的に前記リクエストの部分とし
てアドレシング・パラメータを供給することによって明
示的にアドレスされなければならない非直接アドレシン
グ代理エージェント(NDAPA)を設けることを特徴
とする上記(1)乃至上記(8)のいずれか一つに記載
のインターフェース。 (10)機能復帰として戻されたエラー・オブジェクト
によって、又は機能参照引数又は例外によって投じられ
たエラー・オブジェクトを通してエラーを信号すること
を特徴とする上記(1)乃至上記(9)のいずれか一つ
に記載のインターフェース。 (11)継承階層を含むエラー・クラスを定義すること
を特徴とする上記(10)に記載のインターフェース。 (12)前記OIC手段は各GDMO管理オブジェクト
・クラスに対するC++クラス、各ASN.1タイプに対
するC++クラス、各GDMO通知に対するC++クラス、
GDMO及びASN.1にメタ情報データ構造、及び一
組のユーティリティ・ファイルを生成することを特徴と
する上記(1)乃至上記(9)のいずれか一つに記載の
インターフェース。 (13)前記代理エージェントは、1つの管理オブジェ
クトの1つの属性のみに関するオペレーション又は1つ
の管理オブジェクトの幾つかの属性に関するオペレーシ
ョンを実行するために、少ない且つ単純化されたパラメ
ータでもって単純作成、単純獲得、単純アクション、及
び単純削除の一組の追加メソッドを与えることを特徴と
する上記(1)乃至上記(12)のいずれか一つに記載
のインターフェース。 (14)C++における生成されたPMOクラス相互間の
継承関係はGDMO/ASN.1ドキュメントにおいて
定義されたMOCの継承関係を反映することを特徴とす
る上記(1)乃至上記(13)のいずれか一つに記載の
インターフェース。 (15)前記管理オブジェクト・クラスの定義は2つ以
上の上位のクラスから取り出されることを特徴とする上
記(14)に記載のインターフェース。 (16)前記RTSは通知を受け、それらを責任あるP
AOの事象待ち行列手段に記憶することを特徴とする上
記(1)乃至上記(15)のいずれか一つに記載のイン
ターフェース。 (17)オブジェクト指向プログラミング・インターフ
ェースによってGDMOテンプレートをC++クラスにマ
ップする方法にして、管理オブジェクトクラス(MO
C)相互間の継承階層はC++に維持されること、パッケ
ージ及び属性テンプレートは前記MOCに組み合わされ
ること、属性の値へのアクセス・メソッドは前記MOC
に対して生成されること、及び各GDMOアクションに
対して、前記MOCのメソッドが与えられること、を特
徴とする方法。 (18)OIC手段は生成されたクラスの数及び実行時
にアプリケーションによって処理されるべきオブジェク
トの数を最小にすることを特徴とする上記(17)に記
載の方法。 (19)各通知テンプレートに対してC++クラスが生成
されることを特徴とする上記(17)又は上記(18)
のいずれか一つに記載の方法。 (20)各GDMO MOCに対してメタ・オブジェク
ト継承が生成されることを特徴とする上記(17)乃至
上記(19)のいずれか一つに記載の方法。 (21)GDMOパッケージ及びGDMO属性に対して
生成されるクラスはないことを特徴とする上記(17)
乃至上記(20)のいずれか一つに記載の方法。 (22)オブジェクトはコンパイラがタイプ・エラーを
検出することを可能にするために強タイプのインターフ
ェースによってアクセスされ、又は未知のタイプを持っ
たオブジェクトを操作するために弱タイプのインターフ
ェースによってアクセスされることを特徴とする上記
(17)乃至上記(21)のいずれか一つに記載の方
法。(23)オブジェクト指向プログラミング・インタ
ーフェースによってASN.1定義のタイプからC++言
語にマップするための方法にして、各原始的ASN.1
タイプ及び各ASN.1コンストラクタに対してASN.
1C++ライブラリにおける対応するクラスを生成するこ
と、各アプリケーション定義のASN.1タイプは少な
くとも1つのC++クラスにマップされること、これらの
クラスのインスタンスは中間ノードとしてASN.1コ
ンストラクタのインスタンスを持ち且つ葉として原始的
ASN.1タイプのインスタンスを持ったツリー構造を
形成すること、及び前記ツリー構造の根オブジェクトは
最も外側のASN.1コンストラクタ・クラス又は単純
タイプから継承するアプリケーション定義されたクラス
であること、を特徴とする方法。 (24)前記生成されたクラス及び前記ライブラリにお
けるクラスは単一の共通クラスから取り出されることを
特徴とする上記(23)に記載の方法。 (25)オブジェクト指向プログラミング・インターフ
ェースを実装するためのネットワーク・インターフェー
スにして、管理アプリケーションが、代理管理オブジェ
クト(PMO)を通して、代理エージェント・オブジェ
クトを通して直接に、又は通知事象待ち行列を通して、
オブジェクト指向インターフェース(OOI)と対話す
ることを特徴とするネットワーク・プラットフォーム。 (26)前記OOIは、それが管理オブジェクトを実装
するエージェントとコミュニケートすることを可能にす
る通信インフラストラクチャをアクセスするためにXM
Pを使用することを特徴とする上記(25)に記載のネ
ットワーク・プラットフォーム。
【図面の簡単な説明】
【図1】OOIコンポーネント及びそれらの実行時環境
を示す。
【図2】GDMO/ASN.1コンパイル・プロセスの
フローチャートを示す。
【図3】DMI管理オブジェクト・クラスに対する継承
構造の例である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラルフ・ステファン・エールリッヒ ドイツ連邦共和国カールスルッヘ 76131、 ルドルフストラッセ 1 (72)発明者 ウルリッヒ・シェエーレ ドイツ連邦共和国シンデルフィンゲン 71069、ヨハン−ペテル−へベルストラッ セ 8 (72)発明者 オラフ・ツィンマーマン ドイツ連邦共和国サンドハウゼン 69207、 アム・レイムバッハリング 36

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】ネットワーク通信インフラストラクチャ上
    でネットワーク管理アプリケーションを開発及び実行す
    るためのオブジェクト指向プログラミング・インターフ
    ェースにして、 前記管理アプリケーションは前記通信インフラストラク
    チャを介して遠隔の管理されたエージェントにおいて使
    用可能な管理オブジェクトへのアクセスを有し及び前記
    管理オブジェクトを操作することができ、前記管理アプ
    リケーション及び前記エージェントの間で管理情報を交
    換することができるものであり、 前記管理オブジェクトはオブジェクト・クラス(MO
    C)によって定義され、データ・タイプを定義するオブ
    ジェクト指向構文表記法で指定され、 前記プログラミング・インターフェースは、 管理オブジェクト・クラス(MOC)のためのローカル
    代表として代理管理オブジェクト(PMO)クラス、構
    文表記法で定義されたタイプに対するオブジェクト・ク
    ラス、着信した通知に対する通知オブジェクト、及び指
    定された管理オブジェクトを操作するためのメソッドを
    与えるコードを生成するためのオブジェクト・インター
    フェース・コンポーズ(OIC)手段と、 共通管理情報サービス(CMIS)に対するアクセスを
    可能にするために、前記CMISを与える遠隔エージェ
    ントのための代表として代理エージェント・オブジェク
    ト(PAO)クラスを与えるための実行時システム(R
    TS)手段と、 を含み、 前記OICによって生成されたコードは実行のために前
    記RTSに連係されることを特徴とするインターフェー
    ス。
  2. 【請求項2】前記OIC手段はC++コードを生成するこ
    と、前記アプリケーション・プログラムはC++で書き込
    まれること、及び前記PMO及びASNクラスはC++に
    おけるオブジェクト・クラスであることを特徴とする請
    求項1に記載のインターフェース。
  3. 【請求項3】前記OIC手段は前記ISO標準GDMO
    及びASN.1で書かれた管理オブジェクトに基づいて
    PMO C++クラス定義及び実装ファイルを自動的に生
    成することを特徴とする請求項1又は請求項2のいずれ
    か一つに記載のインターフェース。
  4. 【請求項4】前記OIC手段はGDMO及びASN.1
    における管理情報の仕様に基づいて管理オブジェクトの
    ためのコードを生成するための生成手段を含むことを特
    徴とする請求項1乃至請求項3のいずれか一つに記載の
    インターフェース。
  5. 【請求項5】前記管理オブジェクトはコンパイル時の強
    タイプ・チェックを可能にするためのC++に完全に組み
    込まれることを特徴とする請求項1乃至請求項4のいず
    れか一つに記載のインターフェース。
  6. 【請求項6】前記着信通知は事象待ち行列オブジェクト
    に記憶されることを特徴とする請求項1乃至請求項5の
    いずれか一つに記載のインターフェース。
  7. 【請求項7】前記PAOは前記CMISのオペレーショ
    ンに対するサービス・インターフェースを与えることを
    特徴とする請求項1乃至請求項6のいずれか一つに記載
    のインターフェース。
  8. 【請求項8】一時に1つの特殊エージェントに接続する
    ことができる直接アドレシング代理エージェント(DA
    PA)を設けることを特徴とする請求項1乃至請求項7
    のいずれか一つに記載のインターフェース。
  9. 【請求項9】各管理リクエストに対して、前記エージェ
    ントはコンテキスト・オブジェクトによって又はディレ
    クトリ・サービスを通して暗示的に前記リクエストの部
    分としてアドレシング・パラメータを供給することによ
    って明示的にアドレスされなければならない非直接アド
    レシング代理エージェント(NDAPA)を設けること
    を特徴とする請求項1乃至請求項8のいずれか一つに記
    載のインターフェース。
  10. 【請求項10】機能復帰として戻されたエラー・オブジ
    ェクトによって、又は機能参照引数又は例外によって投
    じられたエラー・オブジェクトを通してエラーを信号す
    ることを特徴とする請求項1乃至請求項9のいずれか一
    つに記載のインターフェース。
  11. 【請求項11】継承階層を含むエラー・クラスを定義す
    ることを特徴とする請求項10に記載のインターフェー
    ス。
  12. 【請求項12】前記OIC手段は各GDMO管理オブジ
    ェクト・クラスに対するC++クラス、各ASN.1タイ
    プに対するC++クラス、各GDMO通知に対するC++ク
    ラス、GDMO及びASN.1にメタ情報データ構造、
    及び一組のユーティリティ・ファイルを生成することを
    特徴とする請求項1乃至請求項9のいずれか一つに記載
    のインターフェース。
  13. 【請求項13】前記代理エージェントは、1つの管理オ
    ブジェクトの1つの属性のみに関するオペレーション又
    は1つの管理オブジェクトの幾つかの属性に関するオペ
    レーションを実行するために、少ない且つ単純化された
    パラメータでもって単純作成、単純獲得、単純アクショ
    ン、及び単純削除の一組の追加メソッドを与えることを
    特徴とする請求項1乃至請求項12のいずれか一つに記
    載のインターフェース。
  14. 【請求項14】C++における生成されたPMOクラス相
    互間の継承関係はGDMO/ASN.1ドキュメントに
    おいて定義されたMOCの継承関係を反映することを特
    徴とする請求項1乃至請求項13のいずれか一つに記載
    のインターフェース。
  15. 【請求項15】前記管理オブジェクト・クラスの定義は
    2つ以上の上位のクラスから取り出されることを特徴と
    する請求項14に記載のインターフェース。
  16. 【請求項16】前記RTSは通知を受け、それらを責任
    あるPAOの事象待ち行列手段に記憶することを特徴と
    する請求項1乃至請求項15のいずれか一つに記載のイ
    ンターフェース。
  17. 【請求項17】オブジェクト指向プログラミング・イン
    ターフェースによってGDMOテンプレートをC++クラ
    スにマップする方法にして、 管理オブジェクトクラス(MOC)相互間の継承階層は
    C++に維持されること、 パッケージ及び属性テンプレートは前記MOCに組み合
    わされること、 属性の値へのアクセス・メソッドは前記MOCに対して
    生成されること、及び各GDMOアクションに対して、
    前記MOCのメソッドが与えられること、 を特徴とする方法。
  18. 【請求項18】OIC手段は生成されたクラスの数及び
    実行時にアプリケーションによって処理されるべきオブ
    ジェクトの数を最小にすることを特徴とする請求項17
    に記載の方法。
  19. 【請求項19】各通知テンプレートに対してC++クラス
    が生成されることを特徴とする請求項17又は請求項1
    8のいずれか一つに記載の方法。
  20. 【請求項20】各GDMO MOCに対してメタ・オブ
    ジェクト継承が生成されることを特徴とする請求項17
    乃至請求項19のいずれか一つに記載の方法。
  21. 【請求項21】GDMOパッケージ及びGDMO属性に
    対して生成されるクラスはないことを特徴とする請求項
    17乃至請求項20のいずれか一つに記載の方法。
  22. 【請求項22】オブジェクトはコンパイラがタイプ・エ
    ラーを検出することを可能にするために強タイプのイン
    ターフェースによってアクセスされ、又は未知のタイプ
    を持ったオブジェクトを操作するために弱タイプのイン
    ターフェースによってアクセスされることを特徴とする
    請求項17乃至請求項21のいずれか一つに記載の方
    法。
  23. 【請求項23】オブジェクト指向プログラミング・イン
    ターフェースによってASN.1定義のタイプからC++
    言語にマップするための方法にして、 各原始的ASN.1タイプ及び各ASN.1コンストラク
    タに対してASN.1C++ライブラリにおける対応する
    クラスを生成すること、 各アプリケーション定義のASN.1タイプは少なくと
    も1つのC++クラスにマップされること、 これらのクラスのインスタンスは中間ノードとしてAS
    N.1コンストラクタのインスタンスを持ち且つ葉とし
    て原始的ASN.1タイプのインスタンスを持ったツリ
    ー構造を形成すること、及び前記ツリー構造の根オブジ
    ェクトは最も外側のASN.1コンストラクタ・クラス
    又は単純タイプから継承するアプリケーション定義され
    たクラスであること、 を特徴とする方法。
  24. 【請求項24】前記生成されたクラス及び前記ライブラ
    リにおけるクラスは単一の共通クラスから取り出される
    ことを特徴とする請求項23に記載の方法。
  25. 【請求項25】オブジェクト指向プログラミング・イン
    ターフェースを実装するためのネットワーク・インター
    フェースにして、 管理アプリケーションが、代理管理オブジェクト(PM
    O)を通して、代理エージェント・オブジェクトを通し
    て直接に、又は通知事象待ち行列を通して、オブジェク
    ト指向インターフェース(OOI)と対話することを特
    徴とするネットワーク・プラットフォーム。
  26. 【請求項26】前記OOIは、それが管理オブジェクト
    を実装するエージェントとコミュニケートすることを可
    能にする通信インフラストラクチャをアクセスするため
    にXMPを使用することを特徴とする請求項25に記載
    のネットワーク・プラットフォーム。
JP8025714A 1995-02-17 1996-02-13 オブジェクト指向プログラミング・インターフェース及びマップする方法 Pending JPH08263292A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE95102234.2 1995-02-17
EP95102234A EP0727739B1 (en) 1995-02-17 1995-02-17 Object-oriented programming interface for developing and running network management applications on a network communication infrastructure

Publications (1)

Publication Number Publication Date
JPH08263292A true JPH08263292A (ja) 1996-10-11

Family

ID=8218995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8025714A Pending JPH08263292A (ja) 1995-02-17 1996-02-13 オブジェクト指向プログラミング・インターフェース及びマップする方法

Country Status (4)

Country Link
US (1) US6182153B1 (ja)
EP (1) EP0727739B1 (ja)
JP (1) JPH08263292A (ja)
DE (1) DE69528749T2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09330287A (ja) * 1996-06-12 1997-12-22 Hitachi Ltd クライアントサーバ型システムの機能非同期呼び出し方法
JP2000066979A (ja) * 1998-08-17 2000-03-03 Nippon Telegr & Teleph Corp <Ntt> 複数管理プロトコル対応ネットワーク管理システム
JP2000339175A (ja) * 1999-05-28 2000-12-08 Nec Corp 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法
JP2011513835A (ja) * 2008-02-25 2011-04-28 マイクロソフト コーポレーション 一貫性を有するシグナリング状態の変化

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10505690A (ja) * 1994-09-01 1998-06-02 データクラフト テクノロジーズ プロプライエタリー リミテッド X.500システムおよび方法
US7315860B1 (en) * 1994-09-01 2008-01-01 Computer Associates Think, Inc. Directory service system and method with tolerance for data entry storage and output
GB2301745B (en) * 1995-06-02 1999-11-10 Dsc Communications A control system for a wireless telecommunications system
US6691299B1 (en) * 1995-07-19 2004-02-10 Ricoh Company, Ltd. Object-oriented communications framework system with support for multiple remote machine types
US8065338B2 (en) 1995-08-30 2011-11-22 Computer Associates Think, Inc. Directory searching methods and systems
US7631012B2 (en) 1997-05-22 2009-12-08 Computer Associates Think, Inc. System and method of operating a database
FR2764405B1 (fr) * 1997-06-05 2001-10-19 Alsthom Cge Alkatel Procede de traduction d'un code source gdmo en code source d'un langage de programmation, notamment oriente objet
JP2000517453A (ja) * 1997-06-18 2000-12-26 シトル プロプライエタリー リミテッド 分散型オブジェクト指向計算用システム開発ツール
EP0915419A3 (en) * 1997-10-06 2003-11-12 Sun Microsystems, Inc. Remote object access
GB2332288A (en) * 1997-12-10 1999-06-16 Northern Telecom Ltd agent enabling technology
US6466973B2 (en) * 1998-03-06 2002-10-15 Adaptec, Inc. Method and system for managing storage devices over a network
JP2002518765A (ja) * 1998-06-17 2002-06-25 テラブス・リサーチ・リミテッド 通信コントローラメッセージングシステム
US6412015B1 (en) * 1998-06-24 2002-06-25 New Moon Systems, Inc. System and method for virtualizing and controlling input and output of computer programs
US6385661B1 (en) 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies
US6466974B1 (en) * 1998-12-04 2002-10-15 Sun Microsystems, Inc. Environment for creating and managing network management software objects
US6408299B1 (en) * 1999-01-28 2002-06-18 International Business Machines Corporation Type convertor registry
US6567796B1 (en) 1999-03-23 2003-05-20 Microstrategy, Incorporated System and method for management of an automatic OLAP report broadcast system
US8321411B2 (en) 1999-03-23 2012-11-27 Microstrategy, Incorporated System and method for management of an automatic OLAP report broadcast system
US6912718B1 (en) * 1999-03-25 2005-06-28 International Business Machines Corporation Event notification channel between supplier and consumer objects in object oriented programming system with proxy consumer objects to maintain uninterrupted event transmission during consumer object off line maintenance
US9208213B2 (en) 1999-05-28 2015-12-08 Microstrategy, Incorporated System and method for network user interface OLAP report formatting
US8607138B2 (en) 1999-05-28 2013-12-10 Microstrategy, Incorporated System and method for OLAP report generation with spreadsheet report within the network user interface
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US8130918B1 (en) 1999-09-13 2012-03-06 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with closed loop transaction processing
US6836537B1 (en) * 1999-09-13 2004-12-28 Microstrategy Incorporated System and method for real-time, personalized, dynamic, interactive voice services for information related to existing travel schedule
US6829334B1 (en) 1999-09-13 2004-12-07 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with telephone-based service utilization and control
US6964012B1 (en) * 1999-09-13 2005-11-08 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, including deployment through personalized broadcasts
US6263051B1 (en) 1999-09-13 2001-07-17 Microstrategy, Inc. System and method for voice service bureau
US20050223408A1 (en) * 1999-09-13 2005-10-06 Microstrategy, Incorporated System and method for real-time, personalized, dynamic, interactive voice services for entertainment-related information
AUPQ428499A0 (en) 1999-11-26 1999-12-23 Computer Associates Pty. Ltd. A method and apparatus for operating a data base
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6947965B2 (en) 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US6883164B2 (en) * 2000-12-15 2005-04-19 International Business Machines Corporation Strategy for dynamically modeling ASN.1 data to an object model
US7127721B2 (en) * 2001-01-30 2006-10-24 Lucent Technologies Inc. Core object model for network management configuration applications in telecommunication systems
US20030009543A1 (en) * 2001-04-30 2003-01-09 Ankur Gupta Network management system and computer-based methods for network management
US6948159B2 (en) * 2001-08-01 2005-09-20 Lucent Technologies Inc. Automatic compilation of electronic telecommunications system message generation code
US7433917B2 (en) * 2001-09-28 2008-10-07 Bea Systems, Inc. Method and apparatus for using Java dynamic proxies to interface to generic, bean-like management entities
US20030084427A1 (en) * 2001-10-30 2003-05-01 Bryan Hunt Nature emulation oriented programming method
AU2003235637A1 (en) * 2002-01-16 2003-07-30 Sap Aktiengesellschaft Proxy framework
US7219328B2 (en) * 2002-08-28 2007-05-15 Honeywell International Inc. Model-based composable code generation
CN100407154C (zh) * 2004-04-29 2008-07-30 国际商业机器公司 在分布式网络体系结构中建模和动态部署服务的系统和方法
US20050278361A1 (en) * 2004-06-15 2005-12-15 Brunell Edward G View definition language for network management application development
US7555743B2 (en) * 2004-06-15 2009-06-30 Alcatel-Lucent Usa Inc. SNMP agent code generation and SNMP agent framework for network management application development
US20050278708A1 (en) * 2004-06-15 2005-12-15 Dong Zhao Event management framework for network management application development
US20050278693A1 (en) * 2004-06-15 2005-12-15 Brunell Edward G Distribution adaptor for network management application development
US20060004856A1 (en) * 2004-06-15 2006-01-05 Xiangyang Shen Data management and persistence frameworks for network management application development
US20050278709A1 (en) * 2004-06-15 2005-12-15 Manjula Sridhar Resource definition language for network management application development
US20060070082A1 (en) * 2004-06-15 2006-03-30 Manjula Sridhar Managed object framework for network management application development
US8615743B2 (en) * 2006-02-27 2013-12-24 Microsoft Corporation Adaptive compiled code
US20070274230A1 (en) * 2006-05-23 2007-11-29 Werber Ryan A System and method for modifying router firmware
US20070274314A1 (en) * 2006-05-23 2007-11-29 Werber Ryan A System and method for creating application groups
US20070274285A1 (en) * 2006-05-23 2007-11-29 Werber Ryan A System and method for configuring a router
US20080126520A1 (en) * 2006-07-28 2008-05-29 Ryan Werber Devices, systems and methods for network device conversion
US20090319982A1 (en) * 2008-06-24 2009-12-24 Microsoft Corporation Multiple Code Inheritance with Explicit Base Calling
US11307837B2 (en) * 2020-08-24 2022-04-19 International Business Machines Corporation Runtime type identification of an object utilizing class inheritance relationships
US20220103415A1 (en) * 2020-09-28 2022-03-31 MobileNOC Corporation Remote network and cloud infrastructure management

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0650489B2 (ja) 1988-02-05 1994-06-29 日本電気株式会社 Asn.1情報データ化方式
JP2591217B2 (ja) 1990-02-06 1997-03-19 日本電気株式会社 オブジェクトクラス定義情報実装装置
JP2959021B2 (ja) 1990-02-14 1999-10-06 日本電気株式会社 データ通信システム
US5291583A (en) * 1990-12-14 1994-03-01 Racal-Datacom, Inc. Automatic storage of persistent ASN.1 objects in a relational schema
US5317568A (en) * 1991-04-11 1994-05-31 Galileo International Partnership Method and apparatus for managing and facilitating communications in a distributed hetergeneous network
FR2681451B1 (fr) 1991-09-13 1993-11-12 Bull Sa Procede de gestion d'objets structures.
US5506985A (en) 1991-10-17 1996-04-09 Ricoh Company, Ltd. Method and apparatus for format conversion of a hierarchically structured page description language document
EP0567137A1 (en) 1992-04-23 1993-10-27 Nec Corporation Protocol data unit encoding/decoding device
JP3370704B2 (ja) 1992-10-12 2003-01-27 株式会社日立製作所 通信制御方法
US5530864A (en) 1992-12-23 1996-06-25 Taligent Command object system for an object-oriented software platform
US5418793A (en) 1993-06-22 1995-05-23 At&T Corp. Method and apparatus for testing a complex entity
US5491822A (en) 1993-12-30 1996-02-13 International Business Machines Corporation Multi-phase commit processing for creation and deletion of managed objects
US5519868A (en) * 1993-12-30 1996-05-21 International Business Machines Corporation Compilation of information contained in GDMO name bindings
US5568605A (en) 1994-01-13 1996-10-22 International Business Machines Corporation Resolving conflicting topology information
US5627979A (en) * 1994-07-18 1997-05-06 International Business Machines Corporation System and method for providing a graphical user interface for mapping and accessing objects in data stores
US5632035A (en) * 1994-09-20 1997-05-20 International Business Machines Corporation Process for verifying GDMO template references and for providing an ordered list of GDMO templates

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09330287A (ja) * 1996-06-12 1997-12-22 Hitachi Ltd クライアントサーバ型システムの機能非同期呼び出し方法
JP2000066979A (ja) * 1998-08-17 2000-03-03 Nippon Telegr & Teleph Corp <Ntt> 複数管理プロトコル対応ネットワーク管理システム
JP2000339175A (ja) * 1999-05-28 2000-12-08 Nec Corp 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法
JP2011513835A (ja) * 2008-02-25 2011-04-28 マイクロソフト コーポレーション 一貫性を有するシグナリング状態の変化

Also Published As

Publication number Publication date
US6182153B1 (en) 2001-01-30
DE69528749D1 (de) 2002-12-12
EP0727739A1 (en) 1996-08-21
DE69528749T2 (de) 2003-09-18
EP0727739B1 (en) 2002-11-06

Similar Documents

Publication Publication Date Title
JPH08263292A (ja) オブジェクト指向プログラミング・インターフェース及びマップする方法
US6356955B1 (en) Method of mapping GDMO templates and ASN.1 defined types into C++ classes using an object-oriented programming interface
US6633923B1 (en) Method and system for dynamic configuration of interceptors in a client-server environment
US6061721A (en) Bean-based management system
US6134581A (en) Method and system for remotely browsing objects
US6189046B1 (en) Mechanism and method for merging cached location information in a distributed object environment
US6282581B1 (en) Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
US8010967B2 (en) Method and system for dynamic configuration of interceptors in a client-server environment
US6851118B1 (en) Remote object access
US6408342B1 (en) Communications framework for supporting multiple simultaneous communications protocols in a distributed object environment
US6356931B2 (en) Method and system for remotely browsing objects
JP3929554B2 (ja) ファイル・オブジェクトの生成をバリデーションし、ファイル・オブジェクトへのメッセージをルーチングする方法
US6453356B1 (en) Data exchange system and method
EP0660234B1 (en) Method and system for executing code remotely
US6981266B1 (en) Network management system and method
US8473896B2 (en) Computer software development incorporating core and compound services
US6951022B1 (en) Delegate-based event handling
WO2017166166A1 (en) System and method for providing runtime tracing for web-based client accessing transactional middleware platform using extension interface
Festor et al. Integration of WBEM-based Management Agents in the OSI Framework
KR100270915B1 (ko) 망 관리 플랫폼 및 방법
US7805459B2 (en) Extensible controls for a content data repository
EP1122644A1 (en) A method and system for dynamically dispatching function calls from a first execution environment to a second execution environment
Ban Towards an object-oriented framework for multi-domain management
Ban Extending CORBA for multi-domain management
Edwards CORBA—An Industrial Approach to Open Distributed Computing