JPH11219342A - サーバからアラーム条件にアクセスする方法、装置、およびプログラム製品 - Google Patents
サーバからアラーム条件にアクセスする方法、装置、およびプログラム製品Info
- Publication number
- JPH11219342A JPH11219342A JP10304517A JP30451798A JPH11219342A JP H11219342 A JPH11219342 A JP H11219342A JP 10304517 A JP10304517 A JP 10304517A JP 30451798 A JP30451798 A JP 30451798A JP H11219342 A JPH11219342 A JP H11219342A
- Authority
- JP
- Japan
- Prior art keywords
- server
- computer
- client
- data
- client application
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
【課題】 ネットワークにおいて装置を監視するアラー
ムAPIのための装置、方法、およびコンピュータ・プ
ログラム製品を開示する。 【解決手段】 クライアント・アプリケーションが、論
理オブジェクトを含むAPIをインスタンス化する。ア
プリケーションは、サーバ上で自動的に実行される論理
オブジェクトのメソッドを呼出し、被監視装置に関する
アラーム・レコードを含む管理情報サービスに対する操
作を行う。
ムAPIのための装置、方法、およびコンピュータ・プ
ログラム製品を開示する。 【解決手段】 クライアント・アプリケーションが、論
理オブジェクトを含むAPIをインスタンス化する。ア
プリケーションは、サーバ上で自動的に実行される論理
オブジェクトのメソッドを呼出し、被監視装置に関する
アラーム・レコードを含む管理情報サービスに対する操
作を行う。
Description
【0001】
【発明の属する技術分野】本発明は、管理情報サービス
(MIS)アクセス機構の分野に関する。詳細には、本
発明はJAVAアプリケーション・プログラマに、サン
・マイクロシステムズ社のSolsticeTMEnte
rprise ManagerTMなどのMIS内のレコ
ードにアクセスするためのMISへのインタフェースを
提供する。
(MIS)アクセス機構の分野に関する。詳細には、本
発明はJAVAアプリケーション・プログラマに、サン
・マイクロシステムズ社のSolsticeTMEnte
rprise ManagerTMなどのMIS内のレコ
ードにアクセスするためのMISへのインタフェースを
提供する。
【0002】
【従来の技術】オブジェクト指向プログラミング(OO
P)言語は、オブジェクトのデータを、そのオブジェク
トのデータを操作するためのプログラム化メソッドと関
連づける。通常、OOPオブジェクトは、ヒープ・メモ
リ領域でインスタンス化され、OOPオブジェクトのプ
ログラム化メソッドを参照するクラスに基づく。インス
タンス化されたOOPオブジェクトは、その特定のイン
スタンス化OOPオブジェクトに固有の(インスタンス
変数の形の)データを含む。概念上、OOPオブジェク
トはオブジェクト関連情報(オブジェクト内のインスタ
ンス変数の数など)、インスタンス変数、およびオブジ
ェクト内のインスタンス変数の内容へのアクセスや操作
を行うプログラム化メソッドのアドレスを含む。しか
し、オブジェクトはプログラム化メソッドおよびオブジ
ェクト関連情報を共用することが多く、この共用情報は
通常、クラスの中に抽出される。したがって、インスタ
ンス化オブジェクトには、単にそのインスタンス変数
と、そのクラスを指すポインタが含まれるに過ぎない。
P)言語は、オブジェクトのデータを、そのオブジェク
トのデータを操作するためのプログラム化メソッドと関
連づける。通常、OOPオブジェクトは、ヒープ・メモ
リ領域でインスタンス化され、OOPオブジェクトのプ
ログラム化メソッドを参照するクラスに基づく。インス
タンス化されたOOPオブジェクトは、その特定のイン
スタンス化OOPオブジェクトに固有の(インスタンス
変数の形の)データを含む。概念上、OOPオブジェク
トはオブジェクト関連情報(オブジェクト内のインスタ
ンス変数の数など)、インスタンス変数、およびオブジ
ェクト内のインスタンス変数の内容へのアクセスや操作
を行うプログラム化メソッドのアドレスを含む。しか
し、オブジェクトはプログラム化メソッドおよびオブジ
ェクト関連情報を共用することが多く、この共用情報は
通常、クラスの中に抽出される。したがって、インスタ
ンス化オブジェクトには、単にそのインスタンス変数
と、そのクラスを指すポインタが含まれるに過ぎない。
【0003】Smalltalk、Java、およびC
++は、OOP言語の例である。Smalltalk
は、1970年代にゼロックス社のパロアルト研究所
(PARC)のラーニング・リサーチ・グループで開発
された。C++は、1983年にAT&Tベル研究所で
ビャルン・ストルーストラップ(Bjarne Str
oustrup)によってCプログラミング言語の拡張
板として開発された。Javaは、CおよびC++の要
素を持つOOP言語であり、インターネット環境のため
に高度に適応化されたライブラリを含む。これは、19
95年にサン・マイクロシステムズ社によって開発され
た。
++は、OOP言語の例である。Smalltalk
は、1970年代にゼロックス社のパロアルト研究所
(PARC)のラーニング・リサーチ・グループで開発
された。C++は、1983年にAT&Tベル研究所で
ビャルン・ストルーストラップ(Bjarne Str
oustrup)によってCプログラミング言語の拡張
板として開発された。Javaは、CおよびC++の要
素を持つOOP言語であり、インターネット環境のため
に高度に適応化されたライブラリを含む。これは、19
95年にサン・マイクロシステムズ社によって開発され
た。
【0004】OOPの概念に関する詳細は、ペーター・
ファン・デア・リンデン(Peter van der
Linden)による「Not Just Jav
a」(Sun Microsystems Press
/Prentice HallPTR Corp.,U
pper Saddle River,NJ,1997
年刊、ISBN 0−13−864638−4)の13
6〜149ページに記載されている。
ファン・デア・リンデン(Peter van der
Linden)による「Not Just Jav
a」(Sun Microsystems Press
/Prentice HallPTR Corp.,U
pper Saddle River,NJ,1997
年刊、ISBN 0−13−864638−4)の13
6〜149ページに記載されている。
【0005】クライアント/サーバ・コンピューティン
グ環境では、クライアント・コンピュータがサーバ、ま
たはサーバ・コンピュータによって提供される資源を使
用することができる。一般に、多くのクライアントがサ
ーバ・コンピュータを使用する。クライアント/サーバ
環境には、「Not Just Java」の199ペ
ージに記載されており、当技術分野で周知の利点があ
る。プログラミング環境を実行するために使用されるコ
ンピュータとは独立したプログラミング環境(たとえば
Java仮想計算機を含むプログラミング環境)の登場
に伴い、様々な異なるコンピュータ上で実行されるクラ
イアント・アプリケーションが開発されている。これら
のアプリケーションの実行可能コードは、そのコードを
実行するコンピュータ・アーキテクチャやオペレーティ
ング・システムとは独立しているため、実行可能コード
のコンパイルは1つ作成すれば済む。実行可能コードの
このコンパイルはサーバ上の記憶装置からネットワーク
を介してクライアントに転送することができ、そこでそ
のコードが実行される。場合によっては、アプリケーシ
ョンのクライアント部分とサーバ部分が同じコンピュー
タで実行されることもある。
グ環境では、クライアント・コンピュータがサーバ、ま
たはサーバ・コンピュータによって提供される資源を使
用することができる。一般に、多くのクライアントがサ
ーバ・コンピュータを使用する。クライアント/サーバ
環境には、「Not Just Java」の199ペ
ージに記載されており、当技術分野で周知の利点があ
る。プログラミング環境を実行するために使用されるコ
ンピュータとは独立したプログラミング環境(たとえば
Java仮想計算機を含むプログラミング環境)の登場
に伴い、様々な異なるコンピュータ上で実行されるクラ
イアント・アプリケーションが開発されている。これら
のアプリケーションの実行可能コードは、そのコードを
実行するコンピュータ・アーキテクチャやオペレーティ
ング・システムとは独立しているため、実行可能コード
のコンパイルは1つ作成すれば済む。実行可能コードの
このコンパイルはサーバ上の記憶装置からネットワーク
を介してクライアントに転送することができ、そこでそ
のコードが実行される。場合によっては、アプリケーシ
ョンのクライアント部分とサーバ部分が同じコンピュー
タで実行されることもある。
【0006】「シン・クライアント(thin-client) 」と
は、永続ローカル記憶装置を持たないネットワーク化ク
ライアント・コンピュータである。したがって、記憶サ
ービスは、「シック(thick-)」または「ファット(fat
-)」サーバと呼ばれるサーバ・コンピュータによって提
供される。シン・クライアントは、ファット・サーバに
記憶されているJavaアプリケーションを読み取って
それらをローカルで実行する。これらのアプリケーショ
ンは、さらにファット・サーバまたはインターネット上
のその他の情報源からのデータにアクセスする。シン・
クライアント/シック・サーバ環境については、「No
t Just Java」の207〜218ページに記
載されている。
は、永続ローカル記憶装置を持たないネットワーク化ク
ライアント・コンピュータである。したがって、記憶サ
ービスは、「シック(thick-)」または「ファット(fat
-)」サーバと呼ばれるサーバ・コンピュータによって提
供される。シン・クライアントは、ファット・サーバに
記憶されているJavaアプリケーションを読み取って
それらをローカルで実行する。これらのアプリケーショ
ンは、さらにファット・サーバまたはインターネット上
のその他の情報源からのデータにアクセスする。シン・
クライアント/シック・サーバ環境については、「No
t Just Java」の207〜218ページに記
載されている。
【0007】前述のように、Javaはオブジェクト指
向プログラミング言語である。したがって、クライアン
トとサーバとの間でオブジェクトを転送するのに有用で
ある。また、1つのコンピュータ上にあるオブジェクト
のメソッドを別のコンピュータ上で実行されているプロ
グラムによって呼び出すので有利である。Javaは一
般に、リモート・メソッド呼出し(RMI)インタフェ
ースを使用してこの機能を提供する。RMIインタフェ
ースについては、コーネル(Cornell)およびホ
ルストマン(Horstmann)による「Core
Java」(第2版、ISBN 0−13−59688
91−7、(C)1997 Sun Microsys
tems,Inc.)の643〜681ページに記載さ
れている。同様の機能を備えるインタフェースは他にも
ある(CORBA標準など)。
向プログラミング言語である。したがって、クライアン
トとサーバとの間でオブジェクトを転送するのに有用で
ある。また、1つのコンピュータ上にあるオブジェクト
のメソッドを別のコンピュータ上で実行されているプロ
グラムによって呼び出すので有利である。Javaは一
般に、リモート・メソッド呼出し(RMI)インタフェ
ースを使用してこの機能を提供する。RMIインタフェ
ースについては、コーネル(Cornell)およびホ
ルストマン(Horstmann)による「Core
Java」(第2版、ISBN 0−13−59688
91−7、(C)1997 Sun Microsys
tems,Inc.)の643〜681ページに記載さ
れている。同様の機能を備えるインタフェースは他にも
ある(CORBA標準など)。
【0008】
【発明が解決しようとする課題】リモート・メソッド呼
出しインタフェースの1つの難点は、アプリケーション
・プログラマが、そのオブジェクトのプログラム化メソ
ッドを呼び出す前に、リモート・オブジェクトに対する
参照を明示的に入手しなければならないことである。こ
の追加的な複雑さによって、ネットワーク化アプリケー
ションの作成に伴う困難さが増す。さらに、オブジェク
トのプログラム化メソッドは、オブジェクトの置かれた
場所に応じてクライアントまたはサーバで実行される。
したがって、オブジェクトがサーバ上にある場合、クラ
イアントは値を返すプログラム化メソッドをサーバに実
行させなければならないため、オブジェクトのデータの
値を入手するなどの単純なプログラム化メソッドがオー
バーヘッドの大きい操作になる。この値はその後、ネッ
トワークを介してクライアントに返される。このような
オーバーヘッドは、シン・クライアント上のアプリケー
ションのパフォーマンスに影響を与える。クライアント
/サーバ・インタフェースを越えて延び、そのプログラ
ム化メソッドの1つをクライアントで自動的に実行し、
そのプログラム化メソッドのうちの他の1つをサーバ上
で自動的に実行する機能を備えたオブジェクトを備えれ
ば有利であろう。本発明の一態様はこの機能を提供す
る。
出しインタフェースの1つの難点は、アプリケーション
・プログラマが、そのオブジェクトのプログラム化メソ
ッドを呼び出す前に、リモート・オブジェクトに対する
参照を明示的に入手しなければならないことである。こ
の追加的な複雑さによって、ネットワーク化アプリケー
ションの作成に伴う困難さが増す。さらに、オブジェク
トのプログラム化メソッドは、オブジェクトの置かれた
場所に応じてクライアントまたはサーバで実行される。
したがって、オブジェクトがサーバ上にある場合、クラ
イアントは値を返すプログラム化メソッドをサーバに実
行させなければならないため、オブジェクトのデータの
値を入手するなどの単純なプログラム化メソッドがオー
バーヘッドの大きい操作になる。この値はその後、ネッ
トワークを介してクライアントに返される。このような
オーバーヘッドは、シン・クライアント上のアプリケー
ションのパフォーマンスに影響を与える。クライアント
/サーバ・インタフェースを越えて延び、そのプログラ
ム化メソッドの1つをクライアントで自動的に実行し、
そのプログラム化メソッドのうちの他の1つをサーバ上
で自動的に実行する機能を備えたオブジェクトを備えれ
ば有利であろう。本発明の一態様はこの機能を提供す
る。
【0009】前述のシン・クライアント/ファット・サ
ーバのようなクライアント−サーバ・システムの他の問
題は、システムのサーバ部分が一般に、既存のサービス
に対する操作を呼び出さなければならないことである。
既存のサービスは、必ずしもマルチスレッド機能などの
最新のコンピューティング環境機能を利用するようにイ
ンプリメントされていない。したがって、プログラマは
一般に、アプリケーションのインプリメントを、既存の
サービスによって可能なプログラミング技法に制限する
ことになる。多くの既存のサーバ・アプリケーションは
スレッド・セーフAPIをサポートしないため、(同一
サーバ内、または複数のサーバにわたるもの、あるいは
その両方の)複数のクライアント・スレッドがそのサー
ビスへのアクセスを同期させなければならず、それによ
って、最新のプログラミング技法を使用してクライアン
ト・アプリケーションを作成することができるようにな
る。したがって、新しい方法を使用するようにサービス
をアップグレードする場合に、既存のクライアント・プ
ログラムはサービスの新しい機能を使用するように修正
する必要がなくなる。さらに、多くのAPIがアプリケ
ーションを書くために使用する言語とは異なるプログラ
ミング言語で書かれる。1つの言語で書かれたAPIを
別の言語に変換するのは不経済である。したがって、元
の言語で書かれた対応するAPIによって使用されるメ
ソッドを呼び出す、新しい言語で書かれたAPIを提供
すれば有利である。スレッドについては、「Not J
ustJava」の149〜156ページに記載されて
いる。
ーバのようなクライアント−サーバ・システムの他の問
題は、システムのサーバ部分が一般に、既存のサービス
に対する操作を呼び出さなければならないことである。
既存のサービスは、必ずしもマルチスレッド機能などの
最新のコンピューティング環境機能を利用するようにイ
ンプリメントされていない。したがって、プログラマは
一般に、アプリケーションのインプリメントを、既存の
サービスによって可能なプログラミング技法に制限する
ことになる。多くの既存のサーバ・アプリケーションは
スレッド・セーフAPIをサポートしないため、(同一
サーバ内、または複数のサーバにわたるもの、あるいは
その両方の)複数のクライアント・スレッドがそのサー
ビスへのアクセスを同期させなければならず、それによ
って、最新のプログラミング技法を使用してクライアン
ト・アプリケーションを作成することができるようにな
る。したがって、新しい方法を使用するようにサービス
をアップグレードする場合に、既存のクライアント・プ
ログラムはサービスの新しい機能を使用するように修正
する必要がなくなる。さらに、多くのAPIがアプリケ
ーションを書くために使用する言語とは異なるプログラ
ミング言語で書かれる。1つの言語で書かれたAPIを
別の言語に変換するのは不経済である。したがって、元
の言語で書かれた対応するAPIによって使用されるメ
ソッドを呼び出す、新しい言語で書かれたAPIを提供
すれば有利である。スレッドについては、「Not J
ustJava」の149〜156ページに記載されて
いる。
【0010】ネットワーク管理情報サービスは、サーバ
がクライアントに提供する事ができるサービスの一例で
ある。サン・マイクロシステムズ社のSolstice
TMEnterprise ManagerTMのように、
このようなサービスはネットワーク装置に関する情報を
収集し、この情報を管理情報サービス(MIS)に記憶
し、その情報を他のアプリケーションに提供する。この
情報をシン・クライアント/ファット・サーバ環境で監
視することによって、ユーザまたはネットワーク管理者
は安価なシン・クライアントから、またはJava使用
可能ウェブ・ブラウザから、ネットワークを監視するこ
とができる。クライアント上のこのようなネットワーク
管理アプリケーションは、ネットワーク管理者に関係の
あるネットワーク装置に関する情報を要求することがで
きなければならない。このようなアプリケーションは、
それらの装置に関する該当するイベントがMIS内に発
生したという通知も取らなければならない。したがっ
て、共用サービスに対するクライアントのアクセスを順
次化し、サービスによって生成されたイベントを、それ
らのイベントを受け取るように登録されているクライア
ントに配布する技法を提供すれば有利であろう。
がクライアントに提供する事ができるサービスの一例で
ある。サン・マイクロシステムズ社のSolstice
TMEnterprise ManagerTMのように、
このようなサービスはネットワーク装置に関する情報を
収集し、この情報を管理情報サービス(MIS)に記憶
し、その情報を他のアプリケーションに提供する。この
情報をシン・クライアント/ファット・サーバ環境で監
視することによって、ユーザまたはネットワーク管理者
は安価なシン・クライアントから、またはJava使用
可能ウェブ・ブラウザから、ネットワークを監視するこ
とができる。クライアント上のこのようなネットワーク
管理アプリケーションは、ネットワーク管理者に関係の
あるネットワーク装置に関する情報を要求することがで
きなければならない。このようなアプリケーションは、
それらの装置に関する該当するイベントがMIS内に発
生したという通知も取らなければならない。したがっ
て、共用サービスに対するクライアントのアクセスを順
次化し、サービスによって生成されたイベントを、それ
らのイベントを受け取るように登録されているクライア
ントに配布する技法を提供すれば有利であろう。
【0011】クライアント−サーバ・システムの他の問
題は、サーバのMISに対して操作を行うクライアント
の問題である。具体的には、クライアントとサーバが異
なるコンピュータ・システム上にある場合、MISシス
テムの中から大量のデータ・レコードをサーバからクラ
イアントに送るのにかなりのネットワーク帯域幅を必要
とする。また、クライアントがシン・クライアントの場
合、データ・レコードを適時に処理またはストアするの
に十分な資源を持たない場合がある。したがって、大量
の計算処理および入出力処理を必要とするサービスを、
サーバがAPIを介してクライアントに提供すれば有利
であろう。
題は、サーバのMISに対して操作を行うクライアント
の問題である。具体的には、クライアントとサーバが異
なるコンピュータ・システム上にある場合、MISシス
テムの中から大量のデータ・レコードをサーバからクラ
イアントに送るのにかなりのネットワーク帯域幅を必要
とする。また、クライアントがシン・クライアントの場
合、データ・レコードを適時に処理またはストアするの
に十分な資源を持たない場合がある。したがって、大量
の計算処理および入出力処理を必要とするサービスを、
サーバがAPIを介してクライアントに提供すれば有利
であろう。
【0012】
【課題を解決するための手段】本発明は、クライアント
上で実行されているアプリケーションに対して、サーバ
上で実行されているMISにインタフェースするアラー
ムAPIを供給する装置、方法、およびコンピュータ・
プログラム製品を提供する。本発明の一態様は、サーバ
が与える管理情報サービス(MIS)へのアクセスをク
ライアント・アプリケーションに与えるコンピュータ制
御方法を含む。MISには、監視されている条件に関す
るデータが含まれる。このコンピュータ制御方法は、論
理オブジェクトを含むアプリケーション・プログラマ・
インタフェース(API)をインスタンス化するクライ
アント・アプリケーションを含み、論理オブジェクトの
プログラム化メソッドを呼び出すクライアント・アプリ
ケーションを含む。さらに、サーバはMISにアクセス
するためのプログラム化メソッドを実行する。
上で実行されているアプリケーションに対して、サーバ
上で実行されているMISにインタフェースするアラー
ムAPIを供給する装置、方法、およびコンピュータ・
プログラム製品を提供する。本発明の一態様は、サーバ
が与える管理情報サービス(MIS)へのアクセスをク
ライアント・アプリケーションに与えるコンピュータ制
御方法を含む。MISには、監視されている条件に関す
るデータが含まれる。このコンピュータ制御方法は、論
理オブジェクトを含むアプリケーション・プログラマ・
インタフェース(API)をインスタンス化するクライ
アント・アプリケーションを含み、論理オブジェクトの
プログラム化メソッドを呼び出すクライアント・アプリ
ケーションを含む。さらに、サーバはMISにアクセス
するためのプログラム化メソッドを実行する。
【0013】本発明の他の態様は、中央処理装置(CP
U)と、前記CPUに結合されたメモリとを有し、サー
バが提供する管理情報サービス(MIS)へのアクセス
をクライアント・アプリケーションに提供する装置を含
む。MISには、監視されている条件に関するデータが
含まれる。この装置は、前記クライアント・アプリケー
ションに応答し、アプリケーション・プログラマ・イン
タフェース(API)をインスタンス化するように構成
されたインスタンス化機構を含む。APIは、論理オブ
ジェクトを含む。この装置は、クライアント・アプリケ
ーションによって論理オブジェクトのプログラム化メソ
ッドを呼び出すように構成されたメソッド呼出し機構も
含む。さらに、この装置は、MISにアクセスするため
にサーバでプログラム化メソッドを実行するように構成
された実行機構も含む。
U)と、前記CPUに結合されたメモリとを有し、サー
バが提供する管理情報サービス(MIS)へのアクセス
をクライアント・アプリケーションに提供する装置を含
む。MISには、監視されている条件に関するデータが
含まれる。この装置は、前記クライアント・アプリケー
ションに応答し、アプリケーション・プログラマ・イン
タフェース(API)をインスタンス化するように構成
されたインスタンス化機構を含む。APIは、論理オブ
ジェクトを含む。この装置は、クライアント・アプリケ
ーションによって論理オブジェクトのプログラム化メソ
ッドを呼び出すように構成されたメソッド呼出し機構も
含む。さらに、この装置は、MISにアクセスするため
にサーバでプログラム化メソッドを実行するように構成
された実行機構も含む。
【0014】本発明の他の態様は、コンピュータ使用可
能媒体内に入れられ、コンピュータがサーバが提供する
管理情報サービス(MIS)へのアクセスをクライアン
ト・アプリケーションに提供するようにさせるコンピュ
ータ・プログラム製品を含む。MISには、監視されて
いる条件に関するデータが含まれる。コンピュータ可読
コードは、コンピュータ上で実行されると、コンピュー
タにインスタンス化機構と、メソッド呼出し機構と、実
行機構とを実行させる。これらの各機構は、前述の装置
の対応する機構と同じ機能を有する。
能媒体内に入れられ、コンピュータがサーバが提供する
管理情報サービス(MIS)へのアクセスをクライアン
ト・アプリケーションに提供するようにさせるコンピュ
ータ・プログラム製品を含む。MISには、監視されて
いる条件に関するデータが含まれる。コンピュータ可読
コードは、コンピュータ上で実行されると、コンピュー
タにインスタンス化機構と、メソッド呼出し機構と、実
行機構とを実行させる。これらの各機構は、前述の装置
の対応する機構と同じ機能を有する。
【0015】本発明の上記およびその他の特徴は、添付
図を参照しながら以下の詳細な説明を読めば明らかにな
ろう。
図を参照しながら以下の詳細な説明を読めば明らかにな
ろう。
【0016】
【発明の実施の形態】表記および用語 本発明とその好ましい実施形態を理解しやすくするため
に「表記と用語」を以下に示す。 アプリケーション・プログラマ・インタフェース(AP
I)− APIは、プログラマがアプリケーションを実
施するために使用することができるクラスおよびプログ
ラム化メソッドのための定義である。 コンストラクタ − オブジェクトのインスタンスを初
期設定するプログラム化メソッドである。 フレームワーク − フレームワークは、フレームワー
クを使用するアプリケーション・プログラムのためにサ
ービスを行う広範囲な機能を(オブジェクト指向技法を
使用して)提供するクラスのセットである。したがっ
て、フレームワークは、本質的に、作業アプリケーショ
ンの各部分の事前作成構造体を提供する、相互接続され
たオブジェクト・クラスのグループである。フレームワ
ークはAPIの実施態様であるという点でAPIはフレ
ームワークと異なる。フレームワークはまた、APIを
使用するプログラマには見えない専用メソッドとデータ
を含んでいる。 Javaネイティブ・インタフェース(JNI) −
JavaプログラムがJavaでプログラムされていな
いプログラム化オブジェクトおよびその他の手続き(た
とえばCまたはC++手続き)を呼び出すことができる
ようにするAPIである。 論理オブジェクト − リモート・プログラム化メソッ
ドの自動ネットワーク呼出しを行うようにクライアント
/サーバ環境で協調動作する1つまたは複数のオブジェ
クトを含む複合オブジェクトである。プログラム化メソ
ッドの場所(すなわちクライアントとサーバのどちらに
あるか)はプログラマにとって透過である。 管理情報サービス(MIS) − MISはサーバ・コ
ンピュータが提供するサービスである。したがって、こ
のサービスは、クライアントにサービスを提供するライ
ブラリまたはフレームワークである。クライアントとサ
ーバが同じコンピュータ内に常駐することもできる。 プログラム化メソッド − プログラム化メソッドは、
オブジェクト指向オブジェクトまたはクラスに関連づけ
られ、オブジェクトに対して機能を実行する手続きであ
る。 リモート・メソッド呼出し(RMI) − Javaを
使用するクライアント/サーバ環境において分散プログ
ラミングを可能にする機構である。 トポロジカル・ノード − 管理情報サーバによって監
視されるネットワーク装置の論理表現である。 手続き − 所望の結果に至るステップの一貫性のある
シーケンスである。これらのステップは、物理数量の物
理操作を必要とするステップである。通常、これらの数
量は、記憶、伝送、結合、比較、およびその他の方法で
操作することができる電気信号または磁気信号の形をと
る。これらの信号は、ビット、値、要素、記号、文字、
項、数字などと呼ばれる。当業者なら、これらおよび同
様の用語はすべて適切な物理数量に関連づけられ、これ
らの数量に付された好都合な符号に過ぎないことがわか
るであろう。
に「表記と用語」を以下に示す。 アプリケーション・プログラマ・インタフェース(AP
I)− APIは、プログラマがアプリケーションを実
施するために使用することができるクラスおよびプログ
ラム化メソッドのための定義である。 コンストラクタ − オブジェクトのインスタンスを初
期設定するプログラム化メソッドである。 フレームワーク − フレームワークは、フレームワー
クを使用するアプリケーション・プログラムのためにサ
ービスを行う広範囲な機能を(オブジェクト指向技法を
使用して)提供するクラスのセットである。したがっ
て、フレームワークは、本質的に、作業アプリケーショ
ンの各部分の事前作成構造体を提供する、相互接続され
たオブジェクト・クラスのグループである。フレームワ
ークはAPIの実施態様であるという点でAPIはフレ
ームワークと異なる。フレームワークはまた、APIを
使用するプログラマには見えない専用メソッドとデータ
を含んでいる。 Javaネイティブ・インタフェース(JNI) −
JavaプログラムがJavaでプログラムされていな
いプログラム化オブジェクトおよびその他の手続き(た
とえばCまたはC++手続き)を呼び出すことができる
ようにするAPIである。 論理オブジェクト − リモート・プログラム化メソッ
ドの自動ネットワーク呼出しを行うようにクライアント
/サーバ環境で協調動作する1つまたは複数のオブジェ
クトを含む複合オブジェクトである。プログラム化メソ
ッドの場所(すなわちクライアントとサーバのどちらに
あるか)はプログラマにとって透過である。 管理情報サービス(MIS) − MISはサーバ・コ
ンピュータが提供するサービスである。したがって、こ
のサービスは、クライアントにサービスを提供するライ
ブラリまたはフレームワークである。クライアントとサ
ーバが同じコンピュータ内に常駐することもできる。 プログラム化メソッド − プログラム化メソッドは、
オブジェクト指向オブジェクトまたはクラスに関連づけ
られ、オブジェクトに対して機能を実行する手続きであ
る。 リモート・メソッド呼出し(RMI) − Javaを
使用するクライアント/サーバ環境において分散プログ
ラミングを可能にする機構である。 トポロジカル・ノード − 管理情報サーバによって監
視されるネットワーク装置の論理表現である。 手続き − 所望の結果に至るステップの一貫性のある
シーケンスである。これらのステップは、物理数量の物
理操作を必要とするステップである。通常、これらの数
量は、記憶、伝送、結合、比較、およびその他の方法で
操作することができる電気信号または磁気信号の形をと
る。これらの信号は、ビット、値、要素、記号、文字、
項、数字などと呼ばれる。当業者なら、これらおよび同
様の用語はすべて適切な物理数量に関連づけられ、これ
らの数量に付された好都合な符号に過ぎないことがわか
るであろう。
【0017】概要 プログラムされた命令を実行する際にコンピュータによ
って行われる操作は人間の操作者によって行われる知的
操作に一般的に関連づけられる加算や比較などの用語で
呼ばれることが多い。本発明では、本明細書に記載され
ているいかなる操作においてもそのような人間の操作者
の能力は不要である。操作は機械操作である。本発明の
操作を行うのに有用な計算機には、プログラム式汎用デ
ィジタル・コンピュータまたは同様の装置などがある。
あらゆる場合において、計算の方法はコンピュータを操
作する際の操作の方法とは区別される。本発明は、電気
信号またはその他の(たとえば機械的、化学的)物理信
号を処理して他の所望の物理信号を生成する際にコンピ
ュータを操作する方法ステップに関する。
って行われる操作は人間の操作者によって行われる知的
操作に一般的に関連づけられる加算や比較などの用語で
呼ばれることが多い。本発明では、本明細書に記載され
ているいかなる操作においてもそのような人間の操作者
の能力は不要である。操作は機械操作である。本発明の
操作を行うのに有用な計算機には、プログラム式汎用デ
ィジタル・コンピュータまたは同様の装置などがある。
あらゆる場合において、計算の方法はコンピュータを操
作する際の操作の方法とは区別される。本発明は、電気
信号またはその他の(たとえば機械的、化学的)物理信
号を処理して他の所望の物理信号を生成する際にコンピ
ュータを操作する方法ステップに関する。
【0018】本発明は、これらの操作を行う装置にも関
する。この装置は、必要な目的のために特別に構築する
か、または、コンピュータのメモリに記憶されたコンピ
ュータ・プログラムによって選択的に起動したり再構成
したりする汎用コンピュータとすることができる。本明
細書に記載の手続きは、本質的に特定のコンピュータま
たはその他の装置に関係しない。具体的には、本明細書
に記載の技法により作成されたプログラムと共に様々な
汎用機を使用することができる。あるいは、必要な方法
ステップを実行するように、より特殊化された装置を構
築する方がより好都合であるとわかる場合もある。様々
なこれらの機械の必要な構造は、以下説明を読めば明ら
かになろう。また、本発明はコンピュータにプログラム
論理を実行させるプログラムによってコード化されたコ
ンピュータ可読記憶媒体の形で実施することもできる。
する。この装置は、必要な目的のために特別に構築する
か、または、コンピュータのメモリに記憶されたコンピ
ュータ・プログラムによって選択的に起動したり再構成
したりする汎用コンピュータとすることができる。本明
細書に記載の手続きは、本質的に特定のコンピュータま
たはその他の装置に関係しない。具体的には、本明細書
に記載の技法により作成されたプログラムと共に様々な
汎用機を使用することができる。あるいは、必要な方法
ステップを実行するように、より特殊化された装置を構
築する方がより好都合であるとわかる場合もある。様々
なこれらの機械の必要な構造は、以下説明を読めば明ら
かになろう。また、本発明はコンピュータにプログラム
論理を実行させるプログラムによってコード化されたコ
ンピュータ可読記憶媒体の形で実施することもできる。
【0019】動作環境 本発明をサポートするように構成された、総合参照符号
100で示すコンピュータ・システムのいくつかの要素
を図1に示す。図1には、中央処理装置(CPU)10
3と、メモリ部105と、入出力(I/O)部107と
を有するプロセッサ101が図示されている。I/O部
107は、キーボード109、表示装置111、ポイン
ティング・デバイス113、ディスク記憶装置115、
およびCD−ROMドライブ装置117に接続されてい
る。CD−ROMドライブ装置117は、典型的にはプ
ログラムとデータ121が入っているCD−ROM媒体
119を読み取ることができる。CD−ROM媒体11
9と共に使用されるCD−ROMドライブ装置117と
ディスク記憶装置115とはファイル記憶機構を含む。
当業者なら、CD−ROMドライブ装置117は、フロ
ッピィ・ディスク、磁気テープ装置、またはプログラム
およびデータ121を保持することができる取り外し可
能媒体を受け入れる同様の装置に置き換えることができ
ることがわかるであろう。さらに、コンピュータ・シス
テム100は、プロセッサ101をネットワーク125
に接続するネットワーク・インタフェース123を含
む。ネットワーク125を使用して、プロセッサ101
とネットワーク化コンピュータ127との間の通信を行
うことができる。このようなコンピュータ・システム
は、本発明を実施する手続きを実行することができるシ
ステムの一例である。
100で示すコンピュータ・システムのいくつかの要素
を図1に示す。図1には、中央処理装置(CPU)10
3と、メモリ部105と、入出力(I/O)部107と
を有するプロセッサ101が図示されている。I/O部
107は、キーボード109、表示装置111、ポイン
ティング・デバイス113、ディスク記憶装置115、
およびCD−ROMドライブ装置117に接続されてい
る。CD−ROMドライブ装置117は、典型的にはプ
ログラムとデータ121が入っているCD−ROM媒体
119を読み取ることができる。CD−ROM媒体11
9と共に使用されるCD−ROMドライブ装置117と
ディスク記憶装置115とはファイル記憶機構を含む。
当業者なら、CD−ROMドライブ装置117は、フロ
ッピィ・ディスク、磁気テープ装置、またはプログラム
およびデータ121を保持することができる取り外し可
能媒体を受け入れる同様の装置に置き換えることができ
ることがわかるであろう。さらに、コンピュータ・シス
テム100は、プロセッサ101をネットワーク125
に接続するネットワーク・インタフェース123を含
む。ネットワーク125を使用して、プロセッサ101
とネットワーク化コンピュータ127との間の通信を行
うことができる。このようなコンピュータ・システム
は、本発明を実施する手続きを実行することができるシ
ステムの一例である。
【0020】当業者なら、クライアント−サーバ・アー
キテクチャによって、クライアント・プログラムとサー
バ・プログラムを同じコンピュータによって実行するこ
とも別々のネットワーク化コンピュータ・システムによ
って実行することもできることがわかるであろう。以下
の説明は、ネットワーク化コンピュータ・システム・ア
ーキテクチャ内で行うが、この説明はサーバとクライア
ントの両方を稼働させている単一のコンピュータにも適
用される。
キテクチャによって、クライアント・プログラムとサー
バ・プログラムを同じコンピュータによって実行するこ
とも別々のネットワーク化コンピュータ・システムによ
って実行することもできることがわかるであろう。以下
の説明は、ネットワーク化コンピュータ・システム・ア
ーキテクチャ内で行うが、この説明はサーバとクライア
ントの両方を稼働させている単一のコンピュータにも適
用される。
【0021】Java管理アダプタ 図2Aに、1つの言語でプログラムされたマルチスレッ
ド・クライアント・アプリケーションがサーバによって
提供されるシングル・スレッド・サービスを使用するこ
とができるようにする、総合参照符号200で示された
クライアント−サーバ・アーキテクチャを図示する。こ
のアーキテクチャ200は、多くの場合コンピュータま
たはネットワーク装置である、クライアント201を含
む。当業者なら、以下で述べる本発明は、全機能装備の
大型コンピュータにもシン・クライアントにも適用可能
であることがわかるであろう。クライアント201は、
クライアント201を稼働させているコンピュータとは
別のコンピュータで稼働していることが多いサーバ20
3と通信する。アプリケーション205は、クライアン
ト201で実行され、API207から手続きを呼び出
す。API207はオブジェクト指向フレームワークま
たは手続き型ライブラリとすることができる。API2
07は、サーバ203に常駐するJava管理アダプタ
(JMA)209と通信する。JMA209は、Jav
aネイティブ・インタフェース(JNI)211を使用
してポータブル管理インタフェース(PMI)213の
機能にアクセスする。PMI213は、管理情報サービ
ス(MIS)215(たとえばサン・マイクロシステム
ズ社のEnterprise ManagerTM)への
アクセスを提供する(C++で作成された)マルチスレ
ッド・アンセーフ・フレームワークである。
ド・クライアント・アプリケーションがサーバによって
提供されるシングル・スレッド・サービスを使用するこ
とができるようにする、総合参照符号200で示された
クライアント−サーバ・アーキテクチャを図示する。こ
のアーキテクチャ200は、多くの場合コンピュータま
たはネットワーク装置である、クライアント201を含
む。当業者なら、以下で述べる本発明は、全機能装備の
大型コンピュータにもシン・クライアントにも適用可能
であることがわかるであろう。クライアント201は、
クライアント201を稼働させているコンピュータとは
別のコンピュータで稼働していることが多いサーバ20
3と通信する。アプリケーション205は、クライアン
ト201で実行され、API207から手続きを呼び出
す。API207はオブジェクト指向フレームワークま
たは手続き型ライブラリとすることができる。API2
07は、サーバ203に常駐するJava管理アダプタ
(JMA)209と通信する。JMA209は、Jav
aネイティブ・インタフェース(JNI)211を使用
してポータブル管理インタフェース(PMI)213の
機能にアクセスする。PMI213は、管理情報サービ
ス(MIS)215(たとえばサン・マイクロシステム
ズ社のEnterprise ManagerTM)への
アクセスを提供する(C++で作成された)マルチスレ
ッド・アンセーフ・フレームワークである。
【0022】図2Bに、JMAディスパッチャ221
と、第1のサーバ・オブジェクト223と、第2のサー
バ・オブジェクト225とを含む、総合参照符号220
で示されたJMAアーキテクチャを図示する。クライア
ント201は、JMAディスパッチャ221と通信し
て、第1のサーバ・オブジェクト223や第2のサーバ
・オブジェクト225などのサーバ・オブジェクトを作
成する。JMAディスパッチャ221に登録されている
各クライアントにサーバ・オブジェクトがある。JMA
ディスパッチャ221は、各登録クライアントのために
サーバ203におけるサーバ・オブジェクトを作成する
オブジェクト・ファクトリである。
と、第1のサーバ・オブジェクト223と、第2のサー
バ・オブジェクト225とを含む、総合参照符号220
で示されたJMAアーキテクチャを図示する。クライア
ント201は、JMAディスパッチャ221と通信し
て、第1のサーバ・オブジェクト223や第2のサーバ
・オブジェクト225などのサーバ・オブジェクトを作
成する。JMAディスパッチャ221に登録されている
各クライアントにサーバ・オブジェクトがある。JMA
ディスパッチャ221は、各登録クライアントのために
サーバ203におけるサーバ・オブジェクトを作成する
オブジェクト・ファクトリである。
【0023】図2Cに、マルチスレッド・クライアント
からMIS215へのアクセスを順次化する総合参照符
号230で示されているサーバ・オブジェクト環境を図
示する。サーバ・オブジェクト環境230は、「サーバ
・イベント・ハンドラ」スレッド233と、排他ロック
237を作成する「制御PMI」スレッド235とを含
むサーバ・オブジェクト231を含む。排他ロック23
7は、JNI/PMI手続き241を操作する「PMI
操作」スレッド239などのスレッドを順次化する。
「PMI操作」スレッド239は、API207からサ
ーバ・オブジェクト231による操作実行要求を受け取
るとそれに応答して「制御PMI」スレッド235によ
って開始される。「PMI操作」スレッド239が排他
ロック237を入手すると、「PMI操作」スレッド2
39は要求されたサービスにアクセスするためにJNI
/PMI手続き241を呼び出すことができる。
からMIS215へのアクセスを順次化する総合参照符
号230で示されているサーバ・オブジェクト環境を図
示する。サーバ・オブジェクト環境230は、「サーバ
・イベント・ハンドラ」スレッド233と、排他ロック
237を作成する「制御PMI」スレッド235とを含
むサーバ・オブジェクト231を含む。排他ロック23
7は、JNI/PMI手続き241を操作する「PMI
操作」スレッド239などのスレッドを順次化する。
「PMI操作」スレッド239は、API207からサ
ーバ・オブジェクト231による操作実行要求を受け取
るとそれに応答して「制御PMI」スレッド235によ
って開始される。「PMI操作」スレッド239が排他
ロック237を入手すると、「PMI操作」スレッド2
39は要求されたサービスにアクセスするためにJNI
/PMI手続き241を呼び出すことができる。
【0024】「サーバ・イベント・ハンドラ」スレッド
233は、JNI/PMI手続き241からイベント条
件を受け取り、それらのイベントをサーバ・オブジェク
ト231に関連づけられたクライアント201に渡す。
233は、JNI/PMI手続き241からイベント条
件を受け取り、それらのイベントをサーバ・オブジェク
ト231に関連づけられたクライアント201に渡す。
【0025】図3に、JMAディスパッチャがJMAサ
ーバ・オブジェクトをインスタンス化するために使用す
る、総合参照符号300で示されたサーバ作成プロセス
を図示する。サーバ作成プロセス300は、「開始」端
301から開始し、「新規サーバ・メッセージを受け取
る」手続き303に進み、「新規サーバ」メッセージを
受け取る。「新規サーバ」メッセージは「ホストを探索
する」手続き305によって処理され、「新規サーバ」
メッセージと共に供給されるユニフォーム・リソース・
ロケータ(URL)文字列を使用してサーバ・コンピュ
ータ・システムを探し出して接続を行う。URL文字列
が与えられない場合、「ホストを探索する」手続き30
5は、そのサービスがクライアントと同じコンピュータ
上にあるものと見なす。サーバ・システムが見つかる
と、サーバ作成プロセス300は「JMAディスパッチ
ャを探索する」手続き307に進み、既知のポートに接
続するなど当技術分野で周知の方法を使用して、または
ディスパッチャを探すディレクトリを使用することによ
って、JMAディスパッチャを見つけ出す。次に、「新
規サーバをインスタンス化する」手続き309によっ
て、サーバ上のJMAディスパッチャ・アプリケーショ
ンがサーバ・システム上で新規サーバ・オブジェクトを
インスタンス化する。新規サーバ・オブジェクトは、そ
の所望のサービスをクライアントに提供する。次に、サ
ーバ作成プロセス300は「新規サーバを探索する」手
続き311に進み、サーバ・コンピュータ・システム上
で実行されている作成されたばかりのサーバ・オブジェ
クトを見つける。次に、サーバ作成プロセス300は、
「イベント・ディスパッチ・スレッドを開始する」スレ
ッド313に進み、作成したばかりのサーバが受け取っ
たイベントを、指定されたイベントを受け取るように登
録されているオブジェクトにディスパッチするために使
用するスレッドを開始する。
ーバ・オブジェクトをインスタンス化するために使用す
る、総合参照符号300で示されたサーバ作成プロセス
を図示する。サーバ作成プロセス300は、「開始」端
301から開始し、「新規サーバ・メッセージを受け取
る」手続き303に進み、「新規サーバ」メッセージを
受け取る。「新規サーバ」メッセージは「ホストを探索
する」手続き305によって処理され、「新規サーバ」
メッセージと共に供給されるユニフォーム・リソース・
ロケータ(URL)文字列を使用してサーバ・コンピュ
ータ・システムを探し出して接続を行う。URL文字列
が与えられない場合、「ホストを探索する」手続き30
5は、そのサービスがクライアントと同じコンピュータ
上にあるものと見なす。サーバ・システムが見つかる
と、サーバ作成プロセス300は「JMAディスパッチ
ャを探索する」手続き307に進み、既知のポートに接
続するなど当技術分野で周知の方法を使用して、または
ディスパッチャを探すディレクトリを使用することによ
って、JMAディスパッチャを見つけ出す。次に、「新
規サーバをインスタンス化する」手続き309によっ
て、サーバ上のJMAディスパッチャ・アプリケーショ
ンがサーバ・システム上で新規サーバ・オブジェクトを
インスタンス化する。新規サーバ・オブジェクトは、そ
の所望のサービスをクライアントに提供する。次に、サ
ーバ作成プロセス300は「新規サーバを探索する」手
続き311に進み、サーバ・コンピュータ・システム上
で実行されている作成されたばかりのサーバ・オブジェ
クトを見つける。次に、サーバ作成プロセス300は、
「イベント・ディスパッチ・スレッドを開始する」スレ
ッド313に進み、作成したばかりのサーバが受け取っ
たイベントを、指定されたイベントを受け取るように登
録されているオブジェクトにディスパッチするために使
用するスレッドを開始する。
【0026】「イベント・ディスパッチ・スレッドを開
始する」手続き313によってクライアント・イベント
・ディスパッチ・スレッドが開始されると、サーバ作成
プロセス300は「新規サーバをイベント・ハンドラ・
スレッドに接続する」手続き315に進み、イベント・
ディスパッチ・スレッドをサーバのイベント・ハンドラ
・スレッドに接続させる(図4を参照しながら後述す
る)。次に、サーバ作成プロセス300は「終了」端3
17を通って完了する。
始する」手続き313によってクライアント・イベント
・ディスパッチ・スレッドが開始されると、サーバ作成
プロセス300は「新規サーバをイベント・ハンドラ・
スレッドに接続する」手続き315に進み、イベント・
ディスパッチ・スレッドをサーバのイベント・ハンドラ
・スレッドに接続させる(図4を参照しながら後述す
る)。次に、サーバ作成プロセス300は「終了」端3
17を通って完了する。
【0027】図4に、総合参照符号400によって示さ
れているサーバ初期設定プロセスを図示する。このプロ
セスは、図3の「新規サーバをインスタンス化する」手
続き309によって呼び出される。サーバ初期設定プロ
セス400は、「サーバ・オブジェクトの開始」端40
1から始まり、「初期PMIスレッドを開始する」プロ
セス403に進み、初期PMIアクセス・スレッドを開
始する。このスレッドは、JNIを介してPMIを初期
設定するために使用される。このスレッドは、サーバ・
オブジェクト内の他のPMI操作スレッドによるPMI
フレームワークへのアクセスを順次化するために使用さ
れるロック機構も設定する。当業者なら、他のスレッド
・アンセーフ・フレームワークにもこれらの技法を使用
してアクセス可能であることがわかるであろう。初期P
MIスレッドが開始されると、サーバ初期設定プロセス
400は、MISによって生成されたイベントを適切な
クライアントに送るために使用される「イベント・ハン
ドラ・スレッドを開始する」プロセス405に進む。次
に、「クライアントをイベント・ディスパッチ・スレッ
ドに接続する」プロセス407が、「新規サーバをイベ
ント・ハンドラ・スレッドに接続する」手続き315が
「イベント・ハンドラ・スレッドを開始する」プロセス
405によって開始されたイベント・ハンドラ・スレッ
ドに接続を試みるまで待つ。サーバのイベント・ハンド
ラ・スレッドがクライアントのイベント・ディスパッチ
・スレッドに接続されると、サーバ初期設定プロセス4
00は「終了」端409を通って完了する。サーバ初期
設定プロセス400が完了すると、サーバは、クライア
ントで実行されているアプリケーションからの要求を受
け取って処理し、結果を返すことができ、サーバからク
ライアントにイベントを渡すことができる。
れているサーバ初期設定プロセスを図示する。このプロ
セスは、図3の「新規サーバをインスタンス化する」手
続き309によって呼び出される。サーバ初期設定プロ
セス400は、「サーバ・オブジェクトの開始」端40
1から始まり、「初期PMIスレッドを開始する」プロ
セス403に進み、初期PMIアクセス・スレッドを開
始する。このスレッドは、JNIを介してPMIを初期
設定するために使用される。このスレッドは、サーバ・
オブジェクト内の他のPMI操作スレッドによるPMI
フレームワークへのアクセスを順次化するために使用さ
れるロック機構も設定する。当業者なら、他のスレッド
・アンセーフ・フレームワークにもこれらの技法を使用
してアクセス可能であることがわかるであろう。初期P
MIスレッドが開始されると、サーバ初期設定プロセス
400は、MISによって生成されたイベントを適切な
クライアントに送るために使用される「イベント・ハン
ドラ・スレッドを開始する」プロセス405に進む。次
に、「クライアントをイベント・ディスパッチ・スレッ
ドに接続する」プロセス407が、「新規サーバをイベ
ント・ハンドラ・スレッドに接続する」手続き315が
「イベント・ハンドラ・スレッドを開始する」プロセス
405によって開始されたイベント・ハンドラ・スレッ
ドに接続を試みるまで待つ。サーバのイベント・ハンド
ラ・スレッドがクライアントのイベント・ディスパッチ
・スレッドに接続されると、サーバ初期設定プロセス4
00は「終了」端409を通って完了する。サーバ初期
設定プロセス400が完了すると、サーバは、クライア
ントで実行されているアプリケーションからの要求を受
け取って処理し、結果を返すことができ、サーバからク
ライアントにイベントを渡すことができる。
【0028】図5に、総合参照符号500で示されたA
PI登録プロセスを図示する。このプロセスは、アラー
ムAPIなどのAPIをJMAに登録する。API登録
プロセス500は、登録プロセスを呼び出すAPIに応
答して、「API登録の開始」端501から始まる。A
PI登録プロセス500は「APIサービスをインスタ
ンス化する」手続き503に進み、要求側APIのため
のJMAサービスをインスタンス化する。サービスがイ
ンスタンス化された後、このサービスは「APIサービ
スを開始する」手続き505でAPIサービスを開始す
る。APIサービスは、APIからJMAに対して行わ
れた要求を処理するために使用される。
PI登録プロセスを図示する。このプロセスは、アラー
ムAPIなどのAPIをJMAに登録する。API登録
プロセス500は、登録プロセスを呼び出すAPIに応
答して、「API登録の開始」端501から始まる。A
PI登録プロセス500は「APIサービスをインスタ
ンス化する」手続き503に進み、要求側APIのため
のJMAサービスをインスタンス化する。サービスがイ
ンスタンス化された後、このサービスは「APIサービ
スを開始する」手続き505でAPIサービスを開始す
る。APIサービスは、APIからJMAに対して行わ
れた要求を処理するために使用される。
【0029】APIサービスが開始された後、API登
録プロセス500は、「APIサービス・ハンドルを返
す」手続き507でAPIハンドルを返す。返されたA
PIハンドルは、「APIサービスをインスタンス化す
る」手続き503でインスタンス化されたAPIサービ
スに対応する。API登録プロセス500は、「終了」
端509を通って完了する。APIが登録されると、A
PIはJMAに対してサービス(操作)を要求すること
ができる。
録プロセス500は、「APIサービス・ハンドルを返
す」手続き507でAPIハンドルを返す。返されたA
PIハンドルは、「APIサービスをインスタンス化す
る」手続き503でインスタンス化されたAPIサービ
スに対応する。API登録プロセス500は、「終了」
端509を通って完了する。APIが登録されると、A
PIはJMAに対してサービス(操作)を要求すること
ができる。
【0030】図6に、API操作の結果のPMI呼び出
しを処理する、総合参照符号600で示されたAPI操
作プロセスを図示する。API操作プロセス600は、
PMIサービスを呼び出すJMAサービスを要求するA
PIアプリケーションに応答して、「API操作開始」
端601から開始される。API操作プロセス600
は、図4の「初期PMIスレッドを開始する」プロセス
403によって作成された初期PMIスレッドによって
設定されたPMIロックを獲得する「ロックPMIを呼
び出す」手続き603に進む。当業者なら、このスレッ
ドは、スレッドがロックを獲得することができるまで一
時停止されることがわかるであろう。さらに、当業者な
ら、APIサービス・スレッドは要求された操作を実行
するためにスレッドを割り当てることがわかるであろ
う。ロックが獲得されると、API操作プロセス600
は、「PMI操作を呼び出す」手続き605に進む。次
に「PMI操作を呼び出す」手続き605はJNIを介
してPMIフレームワークから該当するPMI操作を呼
び出す。PMI操作が返されると、「PMIロックを解
放する」手続き607がPMIロックを解放して、他の
スレッドがPMIフレームワークにアクセスできるよう
にする。PMI操作によって結果が返された場合、その
操作結果値がAPIアプリケーションに返される。最後
に、プロセスは「終了」端609を通って完了する。し
たがって、API操作プロセス600は、PMIフレー
ムワークへのアクセスを順次化し、APIによって要求
された操作を実行する。さらに、当業者なら、JMAに
よって使用される操作はPMIフレームワーク以外のサ
ービスにも適用可能であり、従来のルーチン・ライブラ
リによって実現可能であることがわかるであろう。
しを処理する、総合参照符号600で示されたAPI操
作プロセスを図示する。API操作プロセス600は、
PMIサービスを呼び出すJMAサービスを要求するA
PIアプリケーションに応答して、「API操作開始」
端601から開始される。API操作プロセス600
は、図4の「初期PMIスレッドを開始する」プロセス
403によって作成された初期PMIスレッドによって
設定されたPMIロックを獲得する「ロックPMIを呼
び出す」手続き603に進む。当業者なら、このスレッ
ドは、スレッドがロックを獲得することができるまで一
時停止されることがわかるであろう。さらに、当業者な
ら、APIサービス・スレッドは要求された操作を実行
するためにスレッドを割り当てることがわかるであろ
う。ロックが獲得されると、API操作プロセス600
は、「PMI操作を呼び出す」手続き605に進む。次
に「PMI操作を呼び出す」手続き605はJNIを介
してPMIフレームワークから該当するPMI操作を呼
び出す。PMI操作が返されると、「PMIロックを解
放する」手続き607がPMIロックを解放して、他の
スレッドがPMIフレームワークにアクセスできるよう
にする。PMI操作によって結果が返された場合、その
操作結果値がAPIアプリケーションに返される。最後
に、プロセスは「終了」端609を通って完了する。し
たがって、API操作プロセス600は、PMIフレー
ムワークへのアクセスを順次化し、APIによって要求
された操作を実行する。さらに、当業者なら、JMAに
よって使用される操作はPMIフレームワーク以外のサ
ービスにも適用可能であり、従来のルーチン・ライブラ
リによって実現可能であることがわかるであろう。
【0031】JMA−APIインタフェースは、イベン
トの扱いに関して最適化されている。RMIまたはその
他のクライアント/サーバ・オブジェクト通信パッケー
ジを使用する代わりに、このインタフェースはTCP/
IPソケットまたはそれと同等のものを使用する。
トの扱いに関して最適化されている。RMIまたはその
他のクライアント/サーバ・オブジェクト通信パッケー
ジを使用する代わりに、このインタフェースはTCP/
IPソケットまたはそれと同等のものを使用する。
【0032】図7に、総合参照符号700によって示さ
れたクライアント・イベント・ディスパッチ・プロセス
を図示する。このプロセスは、図9に関して後述するサ
ーバ・イベント・ハンドラ・スレッドによって配布され
るイベントを処理する。プロセス700は、「開始」端
701から開始され、サーバのイベント・ハンドラ・ス
レッド(図4の「イベント・ハンドラ・スレッドを開始
する」プロセス405によって呼び出される)の開始を
待つ「サーバを待って遅延する」手続き703に進む。
「サーバを待って遅延する」手続き703は、プロセス
700が「クライアントのイベント・ディスパッチ・ス
レッドに接続する」プロセス407によって開始された
接続を受け取ると完了する。プロセス700が、サーバ
・イベント・ハンドラが開始されたことを検出すると、
プロセスは「着信イベント・スレッドを開始する」手続
き705に進む。「着信イベント・スレッドを開始す
る」手続き705は、(最大で)最長のイベントを処理
するのに要する時間中に予測される最大イベント数を処
理するのに十分なスレッドを生成する。次に、「API
イベント・リスナ登録を受け取る」手続き707が、プ
ロセス700に登録するAPIを待つ。イベント・リス
ナ登録は、図3の「新規サーバのイベント・ハンドラ・
スレッドに接続する」手続き315によって送られる。
「APIイベント・リスナ登録を受け取る」手続き70
7が、APIの識別情報とAPIの対象となるイベント
・タイプを記憶する。次に、プロセス700は「イベン
ト配布」手続き708で、該当するイベント発生源(M
ISなど)からイベントが生成されて送られてくるのを
待つ。次に、「イベントをスレッドに割り当てる」手続
き709が、イベントを処理するためにスレッドに割り
当てる。イベントがスレッドに割り当てられると、その
スレッドは、どの登録済みAPI(ある場合)がそのイ
ベントについて要求された通知を持っているかを判断
し、そのイベントをそれらのAPIに配布する、「イベ
ントを登録済みAPIに渡す」手続き711を実行す
る。図9に関して後述するように、イベントはサーバの
イベント・ハンドラ・プロセスから送られる。次に、プ
ロセス700は、プロセス700を終了するかどうかを
決定する「終了が要求されたか」決定手続き713に進
む。プロセス700を続ける場合、プロセスは「イベン
トをスレッドに割り当てる」手続き709に戻り、次の
イベントを待つ。しかし、プロセスを終了する場合は、
「着信イベント・スレッドを開始する」手続き705で
開始したスレッドを強制終了する「スレッドを停止す
る」手続き715に進む。次に、プロセスは「終了」端
717を通って完了する。
れたクライアント・イベント・ディスパッチ・プロセス
を図示する。このプロセスは、図9に関して後述するサ
ーバ・イベント・ハンドラ・スレッドによって配布され
るイベントを処理する。プロセス700は、「開始」端
701から開始され、サーバのイベント・ハンドラ・ス
レッド(図4の「イベント・ハンドラ・スレッドを開始
する」プロセス405によって呼び出される)の開始を
待つ「サーバを待って遅延する」手続き703に進む。
「サーバを待って遅延する」手続き703は、プロセス
700が「クライアントのイベント・ディスパッチ・ス
レッドに接続する」プロセス407によって開始された
接続を受け取ると完了する。プロセス700が、サーバ
・イベント・ハンドラが開始されたことを検出すると、
プロセスは「着信イベント・スレッドを開始する」手続
き705に進む。「着信イベント・スレッドを開始す
る」手続き705は、(最大で)最長のイベントを処理
するのに要する時間中に予測される最大イベント数を処
理するのに十分なスレッドを生成する。次に、「API
イベント・リスナ登録を受け取る」手続き707が、プ
ロセス700に登録するAPIを待つ。イベント・リス
ナ登録は、図3の「新規サーバのイベント・ハンドラ・
スレッドに接続する」手続き315によって送られる。
「APIイベント・リスナ登録を受け取る」手続き70
7が、APIの識別情報とAPIの対象となるイベント
・タイプを記憶する。次に、プロセス700は「イベン
ト配布」手続き708で、該当するイベント発生源(M
ISなど)からイベントが生成されて送られてくるのを
待つ。次に、「イベントをスレッドに割り当てる」手続
き709が、イベントを処理するためにスレッドに割り
当てる。イベントがスレッドに割り当てられると、その
スレッドは、どの登録済みAPI(ある場合)がそのイ
ベントについて要求された通知を持っているかを判断
し、そのイベントをそれらのAPIに配布する、「イベ
ントを登録済みAPIに渡す」手続き711を実行す
る。図9に関して後述するように、イベントはサーバの
イベント・ハンドラ・プロセスから送られる。次に、プ
ロセス700は、プロセス700を終了するかどうかを
決定する「終了が要求されたか」決定手続き713に進
む。プロセス700を続ける場合、プロセスは「イベン
トをスレッドに割り当てる」手続き709に戻り、次の
イベントを待つ。しかし、プロセスを終了する場合は、
「着信イベント・スレッドを開始する」手続き705で
開始したスレッドを強制終了する「スレッドを停止す
る」手続き715に進む。次に、プロセスは「終了」端
717を通って完了する。
【0033】図8に、総合参照符号800で示された
「APIにイベントを渡す」プロセスを図示する。この
プロセスは、図7の「登録済みAPIにイベントを渡
す」手続き711によって呼び出される。プロセス80
0は、「開始」端801から開始され、イベントを検査
してその特定のタイプのイベントのためにAPIが登録
されているかどうかを判断する「イベントIDが一致す
るか」決定手続き803に進む。「イベントIDが一致
するか」決定手続き803でイベントが登録APIとの
一致に成功した場合、プロセス800は、そのタイプの
イベントを受け取るように登録されているAPIにその
イベントのコピーを渡す「イベントのコピーをAPIイ
ベント・ハンドラに渡す」手続き805に進む。好まし
い実施形態では、このイベントの通知は、TCP/IP
ソケットまたはそれと同等のものなどの低オーバーヘッ
ドの通信機構によって扱われる。次に、プロセス800
は、オリジナルのイベントを参照解除する「イベントを
参照解除する」手続き807に進む。「イベントIDが
一致するか」決定手続き803で、イベントが登録AP
Iのいずれの対象でもないと判断された場合、プロセス
は単に「イベントを参照解除する」手続き807に進
む。「イベントを参照解除する」手続き807が終了し
た後、プロセス800は「終了」端809を通って完了
する。
「APIにイベントを渡す」プロセスを図示する。この
プロセスは、図7の「登録済みAPIにイベントを渡
す」手続き711によって呼び出される。プロセス80
0は、「開始」端801から開始され、イベントを検査
してその特定のタイプのイベントのためにAPIが登録
されているかどうかを判断する「イベントIDが一致す
るか」決定手続き803に進む。「イベントIDが一致
するか」決定手続き803でイベントが登録APIとの
一致に成功した場合、プロセス800は、そのタイプの
イベントを受け取るように登録されているAPIにその
イベントのコピーを渡す「イベントのコピーをAPIイ
ベント・ハンドラに渡す」手続き805に進む。好まし
い実施形態では、このイベントの通知は、TCP/IP
ソケットまたはそれと同等のものなどの低オーバーヘッ
ドの通信機構によって扱われる。次に、プロセス800
は、オリジナルのイベントを参照解除する「イベントを
参照解除する」手続き807に進む。「イベントIDが
一致するか」決定手続き803で、イベントが登録AP
Iのいずれの対象でもないと判断された場合、プロセス
は単に「イベントを参照解除する」手続き807に進
む。「イベントを参照解除する」手続き807が終了し
た後、プロセス800は「終了」端809を通って完了
する。
【0034】図9に、総合参照符号900で示された
「サーバ・イベント・ハンドラ」プロセスを図示する。
このプロセスは、サーバで発生したイベントを受け取
り、そのイベントを図7のクライアント・イベント・デ
ィスパッチ・プロセス700に渡す。「サーバ・イベン
ト・ハンドラ」プロセス900は、「開始」端901か
ら始まり、「イベントを受け取る」手続き903に進
む。「イベントを受け取る」手続き903は、サーバで
生成されたイベントを受け取る。次に、「イベントをク
ライアントに送る」手続き905が、そのイベントを
(図7に関して前述した)クライアントのイベント・デ
ィスパッチャに送り、クライアントのイベント・ディス
パッチャではそのイベントを「イベント配布」手続き7
08で受け取る。次に、「サーバ・イベント・ハンド
ラ」プロセス900は「終了」端907で完了する。
「サーバ・イベント・ハンドラ」プロセスを図示する。
このプロセスは、サーバで発生したイベントを受け取
り、そのイベントを図7のクライアント・イベント・デ
ィスパッチ・プロセス700に渡す。「サーバ・イベン
ト・ハンドラ」プロセス900は、「開始」端901か
ら始まり、「イベントを受け取る」手続き903に進
む。「イベントを受け取る」手続き903は、サーバで
生成されたイベントを受け取る。次に、「イベントをク
ライアントに送る」手続き905が、そのイベントを
(図7に関して前述した)クライアントのイベント・デ
ィスパッチャに送り、クライアントのイベント・ディス
パッチャではそのイベントを「イベント配布」手続き7
08で受け取る。次に、「サーバ・イベント・ハンド
ラ」プロセス900は「終了」端907で完了する。
【0035】シン・クラス シン・クラスとは、クライアント上の資源使用を低減す
るためにインプリメントされる(論理オブジェクトを定
義する)論理クラスである。シン・クラスの1つの利点
は、配布アプリケーションのプログラミングに伴う複雑
さを隠蔽することである。シン・クラスはクライアント
−サーバ通信機構(必要な場合)を自動的に呼び出して
サーバ上にあるプログラム化メソッドと通信するため、
シン・クラスはオブジェクトの分散性をプログラマにと
って透過にする。クライアント−サーバ通信に使用され
る基礎トランスポート機構は、リモート・メソッド呼出
し(RMI)機構、CORBA標準によって定義されて
いるようなオブジェクト要求ブローカ機構、またはその
他の何らかの同様の機構である場合が多い。最後に、シ
ン・クラスによって、APIプログラマは、クラスで使
用されるプログラム化メソッドの場所を指定することに
よって、APIを実行するのに要する実行速度とメモリ
使用とのバランスを図ることができる。したがって、単
純なプログラム化メソッドをクライアントに置くことが
できると同時に、より複雑なプログラム化メソッドをサ
ーバに置くことができる。APIの論理オブジェクトを
使用するアプリケーションのプログラマは、その論理オ
ブジェクトのプログラム化メソッドのある場所をまった
く知らない。
るためにインプリメントされる(論理オブジェクトを定
義する)論理クラスである。シン・クラスの1つの利点
は、配布アプリケーションのプログラミングに伴う複雑
さを隠蔽することである。シン・クラスはクライアント
−サーバ通信機構(必要な場合)を自動的に呼び出して
サーバ上にあるプログラム化メソッドと通信するため、
シン・クラスはオブジェクトの分散性をプログラマにと
って透過にする。クライアント−サーバ通信に使用され
る基礎トランスポート機構は、リモート・メソッド呼出
し(RMI)機構、CORBA標準によって定義されて
いるようなオブジェクト要求ブローカ機構、またはその
他の何らかの同様の機構である場合が多い。最後に、シ
ン・クラスによって、APIプログラマは、クラスで使
用されるプログラム化メソッドの場所を指定することに
よって、APIを実行するのに要する実行速度とメモリ
使用とのバランスを図ることができる。したがって、単
純なプログラム化メソッドをクライアントに置くことが
できると同時に、より複雑なプログラム化メソッドをサ
ーバに置くことができる。APIの論理オブジェクトを
使用するアプリケーションのプログラマは、その論理オ
ブジェクトのプログラム化メソッドのある場所をまった
く知らない。
【0036】図10に、論理オブジェクトをインスタン
ス化するときに論理オブジェクトによって使用される、
総合参照符号1000で示されている「シン・クラス・
コンストラクタ」プロセスを図示する。「シン・クラス
・コンストラクタ」プロセス1000は、「開始」端1
001から始まり、「ローカル部分をインスタンス化す
る」手続き1003に進む。「ローカル部分をインスタ
ンス化する」手続き1003は、クライアントで実行さ
れる論理オブジェクトのプログラム化メソッドを提供す
るオブジェクトをクライアント上に作成する。これらの
プログラム化メソッドは一般に、シン・クライアントの
資源がオブジェクトのインスタンス化やそれに付随する
プログラム化メソッドの実行によって悪影響を受けない
ほど十分に小さく、十分に単純なメソッドである。この
ようなオブジェクトの一例は、限られた専用データを含
み、その専用データへのアクセスを提供するプログラム
化メソッドを有するオブジェクトであろう。このような
プログラム化メソッドは、一般に小さく、シン・クライ
アント上で適切にインプリメントされるのに十分な高速
度で実行される。次に、「シン・クラス・コンストラク
タ」プロセス1000は、ファット・サーバとの通信を
開始する「サーバとの通信を初期設定する」手続き10
05に進む。この手続きは一般に、サーバ・ホストを見
つけ出し、既知のプロセスに接続する。「リモート部分
のインスタンス化」手続き1007は、その既知のプロ
セスによってファット・サーバ上の論理オブジェクトの
リモート部分をインスタンス化されるようにする。この
リモート部分は、シン・クライアントの動作に影響を与
えるプログラム化メソッドを含む。API開発者は、シ
ン・クライアントとファット・サーバのどちらにこのプ
ログラム化メソッドを実行させるべきかを決定し、それ
に従ってAPIをインプリメントする。最後に、「シン
・クラス・コンストラクタ」プロセス1000は「終
了」端1009を通って完了する。当業者なら、クライ
アント−サーバ通信機構がRMIである場合、「シン・
クラス・コンストラクタ」プロセス1000によってオ
ブジェクトのスタブとスケルトンを適切に作成すること
がわかるであろう。他のクライアント−サーバ通信技法
の場合、同等の機構が存在するか、または作成すること
ができる。
ス化するときに論理オブジェクトによって使用される、
総合参照符号1000で示されている「シン・クラス・
コンストラクタ」プロセスを図示する。「シン・クラス
・コンストラクタ」プロセス1000は、「開始」端1
001から始まり、「ローカル部分をインスタンス化す
る」手続き1003に進む。「ローカル部分をインスタ
ンス化する」手続き1003は、クライアントで実行さ
れる論理オブジェクトのプログラム化メソッドを提供す
るオブジェクトをクライアント上に作成する。これらの
プログラム化メソッドは一般に、シン・クライアントの
資源がオブジェクトのインスタンス化やそれに付随する
プログラム化メソッドの実行によって悪影響を受けない
ほど十分に小さく、十分に単純なメソッドである。この
ようなオブジェクトの一例は、限られた専用データを含
み、その専用データへのアクセスを提供するプログラム
化メソッドを有するオブジェクトであろう。このような
プログラム化メソッドは、一般に小さく、シン・クライ
アント上で適切にインプリメントされるのに十分な高速
度で実行される。次に、「シン・クラス・コンストラク
タ」プロセス1000は、ファット・サーバとの通信を
開始する「サーバとの通信を初期設定する」手続き10
05に進む。この手続きは一般に、サーバ・ホストを見
つけ出し、既知のプロセスに接続する。「リモート部分
のインスタンス化」手続き1007は、その既知のプロ
セスによってファット・サーバ上の論理オブジェクトの
リモート部分をインスタンス化されるようにする。この
リモート部分は、シン・クライアントの動作に影響を与
えるプログラム化メソッドを含む。API開発者は、シ
ン・クライアントとファット・サーバのどちらにこのプ
ログラム化メソッドを実行させるべきかを決定し、それ
に従ってAPIをインプリメントする。最後に、「シン
・クラス・コンストラクタ」プロセス1000は「終
了」端1009を通って完了する。当業者なら、クライ
アント−サーバ通信機構がRMIである場合、「シン・
クラス・コンストラクタ」プロセス1000によってオ
ブジェクトのスタブとスケルトンを適切に作成すること
がわかるであろう。他のクライアント−サーバ通信技法
の場合、同等の機構が存在するか、または作成すること
ができる。
【0037】図11に、論理オブジェクトのプログラム
化メソッドを呼び出す、総合参照符号1100で示され
ている論理オブジェクト・プログラム化メソッド呼出し
プロセスを図示する。論理オブジェクト・プログラム化
メソッド呼出しプロセス1100は、「開始」端110
1から始まり、「リモート・メソッド化」決定手続き1
103に進む。「リモート・メソッド化」決定手続き1
103は、実行するプログラムメソッドが論理オブジェ
クトのクライアント部分にあるかサーバ部分にあるかを
判断する。プログラム化メソッドがクライアント部分に
ある場合、論理オブジェクト・プログラム化メソッド呼
出しプロセス1100は、クライアントにあるプログラ
ム化メソッドをディスパッチする「ローカル・メソッド
を呼び出す」手続き1105に進む。プログラム化メソ
ッドはクライアントで実行され、論理オブジェクトのク
ライアント部分にあるデータを使用する。プログラム化
メソッドが戻ると、論理オブジェクト・プログラム化メ
ソッド呼出しプロセス1100は「終了」端1107を
通って完了する。
化メソッドを呼び出す、総合参照符号1100で示され
ている論理オブジェクト・プログラム化メソッド呼出し
プロセスを図示する。論理オブジェクト・プログラム化
メソッド呼出しプロセス1100は、「開始」端110
1から始まり、「リモート・メソッド化」決定手続き1
103に進む。「リモート・メソッド化」決定手続き1
103は、実行するプログラムメソッドが論理オブジェ
クトのクライアント部分にあるかサーバ部分にあるかを
判断する。プログラム化メソッドがクライアント部分に
ある場合、論理オブジェクト・プログラム化メソッド呼
出しプロセス1100は、クライアントにあるプログラ
ム化メソッドをディスパッチする「ローカル・メソッド
を呼び出す」手続き1105に進む。プログラム化メソ
ッドはクライアントで実行され、論理オブジェクトのク
ライアント部分にあるデータを使用する。プログラム化
メソッドが戻ると、論理オブジェクト・プログラム化メ
ソッド呼出しプロセス1100は「終了」端1107を
通って完了する。
【0038】しかし、「リモート・メソッド化」決定手
続き1103で、実行するプログラム化メソッドが論理
オブジェクトのサーバ部分にあると判断された場合、論
理オブジェクト・プログラム化メソッド呼出しプロセス
1100は「スタブ・メソッドを呼び出す」手続き11
11に進む。「スタブ・メソッドを呼び出す」手続き1
111は、クライアント部分に入っている論理オブジェ
クトのインスタンス変数のコピーをサーバ部分に送り、
次に、論理オブジェクトのサーバ部分にあるスケルトン
・オブジェクトに対応するスタブ・オブジェクトを呼び
出す。
続き1103で、実行するプログラム化メソッドが論理
オブジェクトのサーバ部分にあると判断された場合、論
理オブジェクト・プログラム化メソッド呼出しプロセス
1100は「スタブ・メソッドを呼び出す」手続き11
11に進む。「スタブ・メソッドを呼び出す」手続き1
111は、クライアント部分に入っている論理オブジェ
クトのインスタンス変数のコピーをサーバ部分に送り、
次に、論理オブジェクトのサーバ部分にあるスケルトン
・オブジェクトに対応するスタブ・オブジェクトを呼び
出す。
【0039】RMI実施形態では、「スタブ・メソッド
を呼び出す」手続き1111は論理オブジェクトのサー
バ部分内にあるスケルトン・オブジェクトと通信する。
この通信によって、「スケルトン・メソッドを呼び出
す」手続き1113がリモート・プログラム化メソッド
を実行させる。「リモート・メソッドを実行する」手続
き1115は、「スタブ・メソッドを呼び出す」手続き
1111によって送られたインスタンス変数値を使用し
て、そのプログラム化メソッドをサーバで実行する。次
に、「リモート・データを送る」手続き1117が、論
理オブジェクトのサーバ部分から修正されている可能性
があるインスタンス変数データを論理オブジェクトのク
ライアント部分に送り返し、論理オブジェクトのクライ
アント部分を更新する。その後、論理オブジェクト・プ
ログラム化メソッド呼出しプロセス1100は「終了」
端1107を通って完了する。
を呼び出す」手続き1111は論理オブジェクトのサー
バ部分内にあるスケルトン・オブジェクトと通信する。
この通信によって、「スケルトン・メソッドを呼び出
す」手続き1113がリモート・プログラム化メソッド
を実行させる。「リモート・メソッドを実行する」手続
き1115は、「スタブ・メソッドを呼び出す」手続き
1111によって送られたインスタンス変数値を使用し
て、そのプログラム化メソッドをサーバで実行する。次
に、「リモート・データを送る」手続き1117が、論
理オブジェクトのサーバ部分から修正されている可能性
があるインスタンス変数データを論理オブジェクトのク
ライアント部分に送り返し、論理オブジェクトのクライ
アント部分を更新する。その後、論理オブジェクト・プ
ログラム化メソッド呼出しプロセス1100は「終了」
端1107を通って完了する。
【0040】上述の説明はJavaのRMI機能を使用
する実施形態を対象としているが、当業者なら、COR
BAなどの他のオブジェクト通信プロトコルのユーザも
本発明によって企図されることがわかるであろう。
する実施形態を対象としているが、当業者なら、COR
BAなどの他のオブジェクト通信プロトコルのユーザも
本発明によって企図されることがわかるであろう。
【0041】さらに、論理オブジェクトのローカル部分
とリモート部分を作成した後、アプリケーションは、メ
ソッドが実際にクライアントとサーバのどちらによって
実行されるかに関して透過的に、API論理オブジェク
トのメソッドを呼び出すことができる。したがって、シ
ン・クラスをインプリメントするAPIの使用によっ
て、シン・クライアントのためのアプリケーションのプ
ログラミングが簡素化される。このようなAPIは、基
礎にあるプログラム間通信のいかなる問題にも関係な
く、クライアント/サーバ通信の詳細をプログラマから
隠蔽し、プログラマがAPIを透過的に使用できるよう
にする。APIを使用するアプリケーションのプログラ
マは、オブジェクトがクライアントとサーバのどちらで
実行されるかに関して考慮せずに、APIオブジェクト
を透過的に使用することができ、メソッドは適切にサー
バ上で自動的に実行される。この考慮事項についてはA
PIのプログラマが分析し、クライアントとサーバでど
のメソッドを実行するかを決定する。APIのある種の
実施形態では、論理オブジェクトのメソッドの場所につ
いて動的な決定を行うことができる。このような実施形
態では、クライアントの機能と資源を決定し、その決定
に応じてメソッドの場所を決定する。
とリモート部分を作成した後、アプリケーションは、メ
ソッドが実際にクライアントとサーバのどちらによって
実行されるかに関して透過的に、API論理オブジェク
トのメソッドを呼び出すことができる。したがって、シ
ン・クラスをインプリメントするAPIの使用によっ
て、シン・クライアントのためのアプリケーションのプ
ログラミングが簡素化される。このようなAPIは、基
礎にあるプログラム間通信のいかなる問題にも関係な
く、クライアント/サーバ通信の詳細をプログラマから
隠蔽し、プログラマがAPIを透過的に使用できるよう
にする。APIを使用するアプリケーションのプログラ
マは、オブジェクトがクライアントとサーバのどちらで
実行されるかに関して考慮せずに、APIオブジェクト
を透過的に使用することができ、メソッドは適切にサー
バ上で自動的に実行される。この考慮事項についてはA
PIのプログラマが分析し、クライアントとサーバでど
のメソッドを実行するかを決定する。APIのある種の
実施形態では、論理オブジェクトのメソッドの場所につ
いて動的な決定を行うことができる。このような実施形
態では、クライアントの機能と資源を決定し、その決定
に応じてメソッドの場所を決定する。
【0042】シン・クラスの使用によって、アプリケー
ション・プログラムに変更を加える必要なしに、基礎に
なるプログラム間通信機構(すなわちRMI、CORB
A、またはその他の機構)を変更することもできる。
ション・プログラムに変更を加える必要なしに、基礎に
なるプログラム間通信機構(すなわちRMI、CORB
A、またはその他の機構)を変更することもできる。
【0043】アラームAPI 本発明の一態様は、アラームAPIである。アラームA
PIはプログラマに、シン・クライアントから管理情報
サービス(MIS)にアクセスする機能を提供する。し
たがって、ネットワーク化装置に関するアラーム情報を
表示するように設計されたアプリケーションは、このア
ラームAPIを使用してそれらの装置に関する情報を入
手することができる。このAPIは上述のシン・クラス
の一実施態様である。
PIはプログラマに、シン・クライアントから管理情報
サービス(MIS)にアクセスする機能を提供する。し
たがって、ネットワーク化装置に関するアラーム情報を
表示するように設計されたアプリケーションは、このア
ラームAPIを使用してそれらの装置に関する情報を入
手することができる。このAPIは上述のシン・クラス
の一実施態様である。
【0044】APIプログラマが、どのメソッドがロー
カル(クライアント上で実行する)でどのメソッドがリ
モート(サーバ上で実行する)かを決定する。APIを
使用するプログラマは、プログラム化メソッドがどこで
実行されるかを把握する必要がない。サーバ/クライア
ント通信はAPIを使用するプログラマには透過であ
る。したがって、シン・クライアントを使用するために
通常は必要なトレードオフのバランス化はAPIプログ
ラマがすでに行っているため、かなりのシン・クライア
ントであってもプログラマはトレードオフについて考え
る必要がない。
カル(クライアント上で実行する)でどのメソッドがリ
モート(サーバ上で実行する)かを決定する。APIを
使用するプログラマは、プログラム化メソッドがどこで
実行されるかを把握する必要がない。サーバ/クライア
ント通信はAPIを使用するプログラマには透過であ
る。したがって、シン・クライアントを使用するために
通常は必要なトレードオフのバランス化はAPIプログ
ラマがすでに行っているため、かなりのシン・クライア
ントであってもプログラマはトレードオフについて考え
る必要がない。
【0045】シン・クライアントは、後述するメソッド
に応答してしばしばAlarmRecordを受け取
る。シン・クライアントで使用されるメモリの量と、シ
ン・クライアントとネットワーク・データベースが入っ
ているファット・サーバとの間に必要な帯域幅を最小限
にするために、AlarmRecordの選択された部
分(対象属性)のみを転送する。プログラマは、適切な
プログラム化メソッドの呼出しの際に、AlarmRe
cordAttributeSetのタイプの引数を指
定することによって対象属性を選択する。
に応答してしばしばAlarmRecordを受け取
る。シン・クライアントで使用されるメモリの量と、シ
ン・クライアントとネットワーク・データベースが入っ
ているファット・サーバとの間に必要な帯域幅を最小限
にするために、AlarmRecordの選択された部
分(対象属性)のみを転送する。プログラマは、適切な
プログラム化メソッドの呼出しの際に、AlarmRe
cordAttributeSetのタイプの引数を指
定することによって対象属性を選択する。
【0046】以下の項で使用する「メソッド」という用
語は「プログラム化メソッド」を指す。
語は「プログラム化メソッド」を指す。
【0047】図12に、総合参照符号1200によって
示されている、クライアントにサーバ上にあるMISへ
のアクセスを提供するMISアクセス・プロセスを図示
する。このプロセス1200は、クライアントで実行さ
れているアプリケーションによって「開始」端1201
から開始され、「APIをインスタンス化する」手続き
1203に進む。「APIをインスタンス化する」手続
き1203は、クライアントでAPIをインスタンス化
する。次に、「対象属性を指定する」手続き1205
で、アプリケーションは対象属性を指定する。この対象
属性によって、サーバによって返されるレコードにどの
フィールドを含めるかを指定する。次に、アプリケーシ
ョンは、操作を行うようにサーバにメッセージを送る
「APIメソッドを呼び出す」手続き1207でAPI
内のメソッドを呼び出す。次に、「APIメソッドを実
行する」手続き1209で、サーバは呼び出されたメソ
ッドを実行する。このメソッドは、MISにアクセスし
てデータを入手し、そのデータに対して所望の操作を行
う。一般に、このメソッドは結果を生成し、その結果が
「対象属性の値を返す」手続き1211でクライアント
に返される。メソッドによっては、ネットワーク内の特
定のトポロジカル・ノードから下ってこのトポロジ・ツ
リーを再帰的にたどる。これらのメソッドは、たどった
各ノードについて結果を返す。「対象属性の値を返す」
手続き1211は、「対象属性を指定する」手続き12
05によって指定された対象属性の値を収集し、その情
報をクライアントに送り、クライアントでアプリケーシ
ョンがその情報にアクセスすることができる。アラーム
APIの場合、返される情報はアラーム・レコードの形
をとる。プロセス1200は、MIS内で監視している
条件に関するデータを返すことができる。MISがネッ
トワークMISである場合、このデータは監視されてい
る装置またはトポロジカル・ノードの状況であることが
多い。このデータは、クライアント・アプリケーション
のユーザに提供することができる。
示されている、クライアントにサーバ上にあるMISへ
のアクセスを提供するMISアクセス・プロセスを図示
する。このプロセス1200は、クライアントで実行さ
れているアプリケーションによって「開始」端1201
から開始され、「APIをインスタンス化する」手続き
1203に進む。「APIをインスタンス化する」手続
き1203は、クライアントでAPIをインスタンス化
する。次に、「対象属性を指定する」手続き1205
で、アプリケーションは対象属性を指定する。この対象
属性によって、サーバによって返されるレコードにどの
フィールドを含めるかを指定する。次に、アプリケーシ
ョンは、操作を行うようにサーバにメッセージを送る
「APIメソッドを呼び出す」手続き1207でAPI
内のメソッドを呼び出す。次に、「APIメソッドを実
行する」手続き1209で、サーバは呼び出されたメソ
ッドを実行する。このメソッドは、MISにアクセスし
てデータを入手し、そのデータに対して所望の操作を行
う。一般に、このメソッドは結果を生成し、その結果が
「対象属性の値を返す」手続き1211でクライアント
に返される。メソッドによっては、ネットワーク内の特
定のトポロジカル・ノードから下ってこのトポロジ・ツ
リーを再帰的にたどる。これらのメソッドは、たどった
各ノードについて結果を返す。「対象属性の値を返す」
手続き1211は、「対象属性を指定する」手続き12
05によって指定された対象属性の値を収集し、その情
報をクライアントに送り、クライアントでアプリケーシ
ョンがその情報にアクセスすることができる。アラーム
APIの場合、返される情報はアラーム・レコードの形
をとる。プロセス1200は、MIS内で監視している
条件に関するデータを返すことができる。MISがネッ
トワークMISである場合、このデータは監視されてい
る装置またはトポロジカル・ノードの状況であることが
多い。このデータは、クライアント・アプリケーション
のユーザに提供することができる。
【0048】表1は、AlarmRecord内のフィ
ールドからデータ値を返すために使用可能な公開メソッ
ドのリストである。クライアントに伝えられていないフ
ィールドを返そうと試みると、例外が発生する。好まし
い実施形態では、これらの各メソッドの場所はクライア
ント上である。「String」、「boolean」
および「Date」タイプは、周知のJavaデータ・
タイプである。AlarmRecordIdタイプは不
透明オブジェクトであり、EMSeverityは5個
の値(critical、major、minor、w
arning、およびindeterminate)を
含むオブジェクト列挙タイプの例であり、EMTopo
NodeDnはトポロジ・オブジェクトを固有に識別す
るオブジェクトである。
ールドからデータ値を返すために使用可能な公開メソッ
ドのリストである。クライアントに伝えられていないフ
ィールドを返そうと試みると、例外が発生する。好まし
い実施形態では、これらの各メソッドの場所はクライア
ント上である。「String」、「boolean」
および「Date」タイプは、周知のJavaデータ・
タイプである。AlarmRecordIdタイプは不
透明オブジェクトであり、EMSeverityは5個
の値(critical、major、minor、w
arning、およびindeterminate)を
含むオブジェクト列挙タイプの例であり、EMTopo
NodeDnはトポロジ・オブジェクトを固有に識別す
るオブジェクトである。
【0049】以下に、AlarmRecord内の公開
メソッドの機能について説明する。 ・ getAckOperator() − このメソ
ッドは、アラームに肯定応答したネットワーク管理者
(ユーザ)を識別する文字列を返す。 ・ getAckState() − このメソッド
は、アラームが肯定応答されたかどうかを示すブールを
返す。 ・ getAckText() − このメソッドは、
アラームの肯定応答に関するユーザのメッセージを含む
文字列を返す。 ・ getAckTime() − このメソッドは、
ユーザがアラームに肯定応答した日時を返す。 ・ getClearOperator() − この
メソッドは、アラームをクリアしたユーザを識別する文
字列を返す。 ・ getClearState() − このメソッ
ドは、アラームがクリアされたかどうかを示すブールを
返す。 ・ getClearText() − このメソッド
は、アラームをクリアしたユーザによって保存された、
アラームのクリアに関するテキストを返す。 ・ getClearTime() − このメソッド
は、ユーザがアラームをクリアした日時を返す。 ・ getDisplayOperator() −
このメソッドは、アラームにコメント文字列を付加した
ユーザを識別する文字列を返す。 ・ getDisplayState() − このメ
ソッドは、ユーザがアラームに注釈文字列を付加したか
どうかを示すブールを返す。 ・ getDisplayText() − このメソ
ッドは、アラームに付加された注釈文字列を返す。 ・ getDisplayTime() − このメソ
ッドは、アラームに注釈文字列が付加された日時を返
す。 ・ getEvenTime() − このメソッド
は、イベントが発生した日時を返す。 ・ getEvenType() − このメソッドは
アラーム・タイプを識別する。アラーム・タイプはアラ
ームのタイプを示す。アラーム・タイプは、アラームが
インターネット、通信、中枢、サービス品質、再発エラ
ー、装置、または環境など(これらには限定されない)
に関連づけられていることを示す。 ・ getLogRecordId() − このメソ
ッドは固有AlarmRecordId識別子をこのア
ラーム・レコードに返す。 ・ getLoggingTime() − このメソ
ッドはイベントが実際にMISに記録された日時を返
す。 ・ getManagedObjectInstanc
e() − このメソッドは、アラームを生じさせた装
置の完全識別名である文字列を返す。 ・ getPerceivedSeverity()
− このメソッドはイベントの重大度を返す。重大度値
はEMSeverityで定義される。 ・ getProbableCause() − この
メソッドは、アラームの考えられる原因を示す文字列を
返す。原因文字列はネットワーク管理者による自由形式
のテキスト入力である。 ・ getTopoNodeDns() − このメソ
ッドは、当該アラームによって影響を受けるノードの固
有トポロジ識別子を含むEMTopoNodeDnの配
列を返す。 ・ toString() − このメソッドは、アラ
ーム・レコードのテキスト表現である文字列を返す。
メソッドの機能について説明する。 ・ getAckOperator() − このメソ
ッドは、アラームに肯定応答したネットワーク管理者
(ユーザ)を識別する文字列を返す。 ・ getAckState() − このメソッド
は、アラームが肯定応答されたかどうかを示すブールを
返す。 ・ getAckText() − このメソッドは、
アラームの肯定応答に関するユーザのメッセージを含む
文字列を返す。 ・ getAckTime() − このメソッドは、
ユーザがアラームに肯定応答した日時を返す。 ・ getClearOperator() − この
メソッドは、アラームをクリアしたユーザを識別する文
字列を返す。 ・ getClearState() − このメソッ
ドは、アラームがクリアされたかどうかを示すブールを
返す。 ・ getClearText() − このメソッド
は、アラームをクリアしたユーザによって保存された、
アラームのクリアに関するテキストを返す。 ・ getClearTime() − このメソッド
は、ユーザがアラームをクリアした日時を返す。 ・ getDisplayOperator() −
このメソッドは、アラームにコメント文字列を付加した
ユーザを識別する文字列を返す。 ・ getDisplayState() − このメ
ソッドは、ユーザがアラームに注釈文字列を付加したか
どうかを示すブールを返す。 ・ getDisplayText() − このメソ
ッドは、アラームに付加された注釈文字列を返す。 ・ getDisplayTime() − このメソ
ッドは、アラームに注釈文字列が付加された日時を返
す。 ・ getEvenTime() − このメソッド
は、イベントが発生した日時を返す。 ・ getEvenType() − このメソッドは
アラーム・タイプを識別する。アラーム・タイプはアラ
ームのタイプを示す。アラーム・タイプは、アラームが
インターネット、通信、中枢、サービス品質、再発エラ
ー、装置、または環境など(これらには限定されない)
に関連づけられていることを示す。 ・ getLogRecordId() − このメソ
ッドは固有AlarmRecordId識別子をこのア
ラーム・レコードに返す。 ・ getLoggingTime() − このメソ
ッドはイベントが実際にMISに記録された日時を返
す。 ・ getManagedObjectInstanc
e() − このメソッドは、アラームを生じさせた装
置の完全識別名である文字列を返す。 ・ getPerceivedSeverity()
− このメソッドはイベントの重大度を返す。重大度値
はEMSeverityで定義される。 ・ getProbableCause() − この
メソッドは、アラームの考えられる原因を示す文字列を
返す。原因文字列はネットワーク管理者による自由形式
のテキスト入力である。 ・ getTopoNodeDns() − このメソ
ッドは、当該アラームによって影響を受けるノードの固
有トポロジ識別子を含むEMTopoNodeDnの配
列を返す。 ・ toString() − このメソッドは、アラ
ーム・レコードのテキスト表現である文字列を返す。
【0050】AlarmLogクラス(表2に示す)
は、MIS内のアラーム・レコードからの情報の入手と
アラーム・レコードの操作を行ういくつかのメソッドを
備える。一般に、これらのメソッドの場所はサーバにあ
る(例外は指示される)。これらのメソッドについて次
に説明する。 ・ void clearAlarms (Alarm
RecordId[])− このメソッドは、Alar
mRecordId配列内に指定されているアラームを
クリアする。 ・ void deleteAlarms (Alar
mRecordId[])− このメソッドは、Ala
rmRecordId配列内に指定されているアラーム
を削除する。 ・ void acknowledgeAlarms
(AlarmRecordId[]) − このメソッ
ドはAlarmRecordId配列内に指定されてい
るアラームに肯定応答する。 ・ AlarmRecord[] getAlarms
(AlarmRecordAttributeSet
attrs) − このメソッドは、MISからのす
べてのアラームが入っているAlarmRecord配
列を返す。各アラームには、「attrs」引数によっ
て指定されたアラーム情報のみが含まれる。 表2 public class AlarmLog { AlarmLog (Platform platform); void clearAlarms (AlarmRecordId[]); void delateAlarms (AlarmRecordId[]); void acknowledgeAlarms (AlarmRecordId[]); AlarmRecord[] getAlarms (AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (AlarmRecordId[] alarmRecordIds, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (EMSeverity severity, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (String deviceFDN, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (EMTopoNodeDn deviceTopoNodeDn, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (String deviceFDN, EMSeverity severity, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (EMTopoNodeDn deviceTopoNodeDn, EMSeverity severity, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarmsRecursive ( EMTopoNodeDn deviceTopoNodeDn, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarmsRecursive ( EMTopoNodeDn deviceTopoNodeDn, EMSeverity severity, AlarmRecordAttributeSet attrs); int getAlarmCount (String deviceFDN, EMSeverity severity); int getAlarmCount (EMTopoNodeDn deviceTopoNodeDn, EMSeverity severity); int getAlarmCount (String deviceFDN); int getAlarmCount (EMTopoNodeDn deviceTopoNodeDn, int getAlarmCount (EMSeverity severity); int getAlarmCountRecursive (EMTopoNodeDn deviceTopoNodeDn, int getAlarmCountRecursive (EMTopoNodeDn deviceTopoNodeDn, EMSeverity severity); int[] getAlarmCountRecursive (EMTopoNodeDn deviceTopoNodeDn, EMSeverity[] severity); void setDisplayText (AlarmRecordId id, string displayText); void addalarmListener (AlarmLogEventListener listener, AlarmRecordAttributeSet attrs); void removeAlarmListener (AlarmLogEventListener listener); }
は、MIS内のアラーム・レコードからの情報の入手と
アラーム・レコードの操作を行ういくつかのメソッドを
備える。一般に、これらのメソッドの場所はサーバにあ
る(例外は指示される)。これらのメソッドについて次
に説明する。 ・ void clearAlarms (Alarm
RecordId[])− このメソッドは、Alar
mRecordId配列内に指定されているアラームを
クリアする。 ・ void deleteAlarms (Alar
mRecordId[])− このメソッドは、Ala
rmRecordId配列内に指定されているアラーム
を削除する。 ・ void acknowledgeAlarms
(AlarmRecordId[]) − このメソッ
ドはAlarmRecordId配列内に指定されてい
るアラームに肯定応答する。 ・ AlarmRecord[] getAlarms
(AlarmRecordAttributeSet
attrs) − このメソッドは、MISからのす
べてのアラームが入っているAlarmRecord配
列を返す。各アラームには、「attrs」引数によっ
て指定されたアラーム情報のみが含まれる。 表2 public class AlarmLog { AlarmLog (Platform platform); void clearAlarms (AlarmRecordId[]); void delateAlarms (AlarmRecordId[]); void acknowledgeAlarms (AlarmRecordId[]); AlarmRecord[] getAlarms (AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (AlarmRecordId[] alarmRecordIds, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (EMSeverity severity, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (String deviceFDN, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (EMTopoNodeDn deviceTopoNodeDn, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (String deviceFDN, EMSeverity severity, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarms (EMTopoNodeDn deviceTopoNodeDn, EMSeverity severity, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarmsRecursive ( EMTopoNodeDn deviceTopoNodeDn, AlarmRecordAttributeSet attrs); AlarmRecord[] getAlarmsRecursive ( EMTopoNodeDn deviceTopoNodeDn, EMSeverity severity, AlarmRecordAttributeSet attrs); int getAlarmCount (String deviceFDN, EMSeverity severity); int getAlarmCount (EMTopoNodeDn deviceTopoNodeDn, EMSeverity severity); int getAlarmCount (String deviceFDN); int getAlarmCount (EMTopoNodeDn deviceTopoNodeDn, int getAlarmCount (EMSeverity severity); int getAlarmCountRecursive (EMTopoNodeDn deviceTopoNodeDn, int getAlarmCountRecursive (EMTopoNodeDn deviceTopoNodeDn, EMSeverity severity); int[] getAlarmCountRecursive (EMTopoNodeDn deviceTopoNodeDn, EMSeverity[] severity); void setDisplayText (AlarmRecordId id, string displayText); void addalarmListener (AlarmLogEventListener listener, AlarmRecordAttributeSet attrs); void removeAlarmListener (AlarmLogEventListener listener); }
【0051】・ AlarmRecord[] get
Alarms (AlarmRecordId[] a
larmRecordIds, AlarmRecor
dAttributeSet attrs) − この
メソッドは、alarmRecordIds配列によっ
て識別されたアラーム・ログ・レコードを含むAlar
mRecord配列を返す。各アラーム・ログ・レコー
ドには、「attrs」引数によって指定されたアラー
ム情報が含まれる。 ・ AlarmRecord[] getAlarms
(EMSeverity severity, Al
armRecordAttributeSetattr
s) − このメソッドは、指定された重大度を有する
アラーム・ログ・レコードを含むAlarmRecor
d配列を返す。各アラーム・ログ・レコードには、「a
ttrs」引数で指定されたアラーム情報のみが含まれ
る。 ・ AlarmRecord[] getAlarms
(String deviceFDN, Alarm
RecordAttributeSet attrs)
− このメソッドは、「deviceFDN」引数内
の完全識別名文字列によって識別された装置のアラーム
・ログ・レコードを含むAlarmRecord配列を
返す。各アラーム・ログ・レコードには、「attr
s」引数によって指定されたアラーム情報のみが含まれ
る。 ・ AlarmRecord[] getAlarms
(EMTopoNodeDn deviceTopo
NodeDn, AlarmRecordAttrib
uteSet attrs) − このメソッドは、
「deviceTopoNodeDn」引数によって識
別されたトポロジカル・ノードのアラーム・ログ・レコ
ードを含むAlaramRecord配列を返す。各ア
ラーム・ログ・レコードには、「attrs」引数によ
って指定されたアラーム情報のみが含まれる。 ・ AlarmRecord[] getAlarms
(String deviceFDN, EMSev
erity severity, AlarmReco
rdAttributeSet attrs) − こ
のメソッドは、指定された重大度を有する指定された完
全識別装置名のアラーム・ログ・レコードを含むAla
rmRecord配列を返す。各アラーム・ログ・レコ
ードには、「attrs」引数によって指定されたアラ
ーム情報のみが含まれる。 ・ AlarmRecord[] getAlarms
(EMTopoNodeDn deviceTopo
NodeDn, EMSeverity severi
ty, AlarmRecordAttributeS
et attrs) − このメソッドは、指定された
重大度を有する指定されたトポロジカル・ノードのアラ
ーム・ログ・レコードを含むAlarmRecord配
列を返す。各アラーム・ログ・レコードには、「att
rs」引数によって指定されたアラーム情報のみが含ま
れる。 ・ AlarmRecord[] getAlarms
Recursive (EMTopoNodeDn d
eviceTopoNodeDn, AlarmRec
ordAttributeSet attrs) −
このメソッドは、指定されたトポロジカル・ノードのア
ラーム・ログ・レコードと、指定されたトポロジカル・
ノードの子であるトポロジカル・ノードのアラーム・ロ
グ・レコードを含む、AlarmRecord配列を返
す。各アラーム・ログ・レコードには、「attrs」
引数によって指定されたアラーム情報のみが含まれる。 ・ AlarmRecord[] getAlarms
Recursive (EMTopoNodeDn d
eviceTopoNodeDn, EMSeveri
ty severity, AlarmRecordA
ttributeSet attrs) − このメソ
ッドは、指定されたトポロジカル・ノードのアラーム・
ログ・レコードと、指定されたトポロジカル・ノードの
子であるトポロジカル・ノードのアラーム・ログ・レコ
ードであって、指定された重大度を有するアラーム・ロ
グ・レコードを含むAlarmRecord配列を返
す。各アラーム・ログ・レコードには、「attrs」
引数によって指定されたアラーム情報のみが含まれる。
Alarms (AlarmRecordId[] a
larmRecordIds, AlarmRecor
dAttributeSet attrs) − この
メソッドは、alarmRecordIds配列によっ
て識別されたアラーム・ログ・レコードを含むAlar
mRecord配列を返す。各アラーム・ログ・レコー
ドには、「attrs」引数によって指定されたアラー
ム情報が含まれる。 ・ AlarmRecord[] getAlarms
(EMSeverity severity, Al
armRecordAttributeSetattr
s) − このメソッドは、指定された重大度を有する
アラーム・ログ・レコードを含むAlarmRecor
d配列を返す。各アラーム・ログ・レコードには、「a
ttrs」引数で指定されたアラーム情報のみが含まれ
る。 ・ AlarmRecord[] getAlarms
(String deviceFDN, Alarm
RecordAttributeSet attrs)
− このメソッドは、「deviceFDN」引数内
の完全識別名文字列によって識別された装置のアラーム
・ログ・レコードを含むAlarmRecord配列を
返す。各アラーム・ログ・レコードには、「attr
s」引数によって指定されたアラーム情報のみが含まれ
る。 ・ AlarmRecord[] getAlarms
(EMTopoNodeDn deviceTopo
NodeDn, AlarmRecordAttrib
uteSet attrs) − このメソッドは、
「deviceTopoNodeDn」引数によって識
別されたトポロジカル・ノードのアラーム・ログ・レコ
ードを含むAlaramRecord配列を返す。各ア
ラーム・ログ・レコードには、「attrs」引数によ
って指定されたアラーム情報のみが含まれる。 ・ AlarmRecord[] getAlarms
(String deviceFDN, EMSev
erity severity, AlarmReco
rdAttributeSet attrs) − こ
のメソッドは、指定された重大度を有する指定された完
全識別装置名のアラーム・ログ・レコードを含むAla
rmRecord配列を返す。各アラーム・ログ・レコ
ードには、「attrs」引数によって指定されたアラ
ーム情報のみが含まれる。 ・ AlarmRecord[] getAlarms
(EMTopoNodeDn deviceTopo
NodeDn, EMSeverity severi
ty, AlarmRecordAttributeS
et attrs) − このメソッドは、指定された
重大度を有する指定されたトポロジカル・ノードのアラ
ーム・ログ・レコードを含むAlarmRecord配
列を返す。各アラーム・ログ・レコードには、「att
rs」引数によって指定されたアラーム情報のみが含ま
れる。 ・ AlarmRecord[] getAlarms
Recursive (EMTopoNodeDn d
eviceTopoNodeDn, AlarmRec
ordAttributeSet attrs) −
このメソッドは、指定されたトポロジカル・ノードのア
ラーム・ログ・レコードと、指定されたトポロジカル・
ノードの子であるトポロジカル・ノードのアラーム・ロ
グ・レコードを含む、AlarmRecord配列を返
す。各アラーム・ログ・レコードには、「attrs」
引数によって指定されたアラーム情報のみが含まれる。 ・ AlarmRecord[] getAlarms
Recursive (EMTopoNodeDn d
eviceTopoNodeDn, EMSeveri
ty severity, AlarmRecordA
ttributeSet attrs) − このメソ
ッドは、指定されたトポロジカル・ノードのアラーム・
ログ・レコードと、指定されたトポロジカル・ノードの
子であるトポロジカル・ノードのアラーム・ログ・レコ
ードであって、指定された重大度を有するアラーム・ロ
グ・レコードを含むAlarmRecord配列を返
す。各アラーム・ログ・レコードには、「attrs」
引数によって指定されたアラーム情報のみが含まれる。
【0052】以下のメソッドは、MIS内のアラーム数
に関する情報を返す。 ・ int getAlarmCount (Stri
ng deviceFDN、EMSeverity s
everity) − このメソッドは、指定された装
置によって生成され、指定された重大度を持つアラーム
の数を示す整数値を返す。 ・ int getAlarmCount (EMTo
poNodeDn deviceTopoNodeD
n, EMSeverity severity)−
このメソッドは、指定されたトポロジカル・ノードから
の指定された重大度のアラーム数を示す整数値を返す。 ・ int getAlarmCount (Stri
ng deviceFDN) − このメソッドは、指
定された装置からのアラームの数を示す整数値を返す。 ・ int getAlarmCount (ENTo
poNodeDn deviceTopoNodeD
n) − このメソッドは、指定されたトポロジカル・
ノードからのアラームの数を示す整数値を返す。 ・ int getAlarmCount (EMSe
verity severity) − このメソッド
は、指定された重大度を有するアラームの数を示す整数
値を返す。 ・ int getAlarmCountRecurs
ive (EMTopoNodeDn deviceT
opoNodeDn) − このメソッドは、指定され
たトポロジカル・ノードの子であるトポロジカル・ノー
ドを含む指定されたトポロジカル・ノードに関するアラ
ームの数を示す整数値を返す。 ・ int getAlarmcountRecurs
ive (EMTopoNodeDn deviceT
opoNodeDn, EMSeveritysevi
rity) − このメソッドは、指定された重大度を
有する指定されたトポロジカル・ノードの子であるトポ
ロジカル・ノードを含む指定されたトポロジカル・ノー
ドに関するアラームの数を示す整数値を返す。 ・ int[] getAlarmcountRecu
rsive (ENTopoNodeDn devic
eTopoNodeDn, EMSeverity[]
severity) − このメソッドは、各整数値
が、指定された重大度のアレイによって指定された重大
度を有する指定されたトポロジカル・ノードの子である
トポロジカル・ノードを含む指定されたトポロジカル・
ノードに関するアラームの数である、整数値の配列を返
す。
に関する情報を返す。 ・ int getAlarmCount (Stri
ng deviceFDN、EMSeverity s
everity) − このメソッドは、指定された装
置によって生成され、指定された重大度を持つアラーム
の数を示す整数値を返す。 ・ int getAlarmCount (EMTo
poNodeDn deviceTopoNodeD
n, EMSeverity severity)−
このメソッドは、指定されたトポロジカル・ノードから
の指定された重大度のアラーム数を示す整数値を返す。 ・ int getAlarmCount (Stri
ng deviceFDN) − このメソッドは、指
定された装置からのアラームの数を示す整数値を返す。 ・ int getAlarmCount (ENTo
poNodeDn deviceTopoNodeD
n) − このメソッドは、指定されたトポロジカル・
ノードからのアラームの数を示す整数値を返す。 ・ int getAlarmCount (EMSe
verity severity) − このメソッド
は、指定された重大度を有するアラームの数を示す整数
値を返す。 ・ int getAlarmCountRecurs
ive (EMTopoNodeDn deviceT
opoNodeDn) − このメソッドは、指定され
たトポロジカル・ノードの子であるトポロジカル・ノー
ドを含む指定されたトポロジカル・ノードに関するアラ
ームの数を示す整数値を返す。 ・ int getAlarmcountRecurs
ive (EMTopoNodeDn deviceT
opoNodeDn, EMSeveritysevi
rity) − このメソッドは、指定された重大度を
有する指定されたトポロジカル・ノードの子であるトポ
ロジカル・ノードを含む指定されたトポロジカル・ノー
ドに関するアラームの数を示す整数値を返す。 ・ int[] getAlarmcountRecu
rsive (ENTopoNodeDn devic
eTopoNodeDn, EMSeverity[]
severity) − このメソッドは、各整数値
が、指定された重大度のアレイによって指定された重大
度を有する指定されたトポロジカル・ノードの子である
トポロジカル・ノードを含む指定されたトポロジカル・
ノードに関するアラームの数である、整数値の配列を返
す。
【0053】以下のメソッドは、各種機能を実行するた
めに使用される。 ・ void setDisplayText (Al
armRecordIdid, String dis
playText) − このメソッドは、idによっ
て識別されたレコードに表示テキスト文字列を保管す
る。これによって、オペレータは、他のユーザが取り出
せるようにテキストによるコメントをアラーム・レコー
ドに記憶することができる。 ・ void addAlarmListener
(AlarmLogEventListener li
stener, AlarmRecordAttrib
uteSet attrs) − このメソッドは、メ
ソッドをMISにアラーム・リスナとして登録し、それ
によってMISが登録されているメソッドにアラーム・
オブジェクトを送るようにする。このメソッドの置かれ
る場所はクライアントである。 ・ void removeAlarmListene
r (AlarmLogEventListener
listener) − このメソッドは、前に登録さ
れているアラーム・リスナを登録リスナのリストから削
除する。このメソッドの置かれる場所はクライアントで
ある。
めに使用される。 ・ void setDisplayText (Al
armRecordIdid, String dis
playText) − このメソッドは、idによっ
て識別されたレコードに表示テキスト文字列を保管す
る。これによって、オペレータは、他のユーザが取り出
せるようにテキストによるコメントをアラーム・レコー
ドに記憶することができる。 ・ void addAlarmListener
(AlarmLogEventListener li
stener, AlarmRecordAttrib
uteSet attrs) − このメソッドは、メ
ソッドをMISにアラーム・リスナとして登録し、それ
によってMISが登録されているメソッドにアラーム・
オブジェクトを送るようにする。このメソッドの置かれ
る場所はクライアントである。 ・ void removeAlarmListene
r (AlarmLogEventListener
listener) − このメソッドは、前に登録さ
れているアラーム・リスナを登録リスナのリストから削
除する。このメソッドの置かれる場所はクライアントで
ある。
【0054】AlarmLogEventListen
erクラス(表3)は、MIS内の特定のイベントに応
答するコールバック・メソッドを備える。
erクラス(表3)は、MIS内の特定のイベントに応
答するコールバック・メソッドを備える。
【0055】・ alarmRecordCreate
d (AlarmLogEventevent) −
このコールバック・メソッドは、MIS内で新しいアラ
ーム・レコードが作成されると、登録アラーム・リスナ
について呼び出される。イベント引数は、新たに作成さ
れたアラーム・レコードへのアクセスを提供するオブジ
ェクトである。 ・ alarmRecordDeleted (Ala
rmLogEventevent) − このコールバ
ック・メソッドは、MIS内で既存のアラーム・レコー
ドが削除されると、登録アラーム・リスナについて呼び
出される。イベント引数は、削除されたアラーム・レコ
ードを識別するオブジェクトである。 ・ alarmRecordModified (Al
armLogEventevent) − このコール
バック・メソッドは、MIS内で既存のアラーム・レコ
ードが変更されると、登録アラーム・リスナについて呼
び出される。イベント引数は変更されたアラーム・レコ
ードへのアクセスを提供するオブジェクトである。
d (AlarmLogEventevent) −
このコールバック・メソッドは、MIS内で新しいアラ
ーム・レコードが作成されると、登録アラーム・リスナ
について呼び出される。イベント引数は、新たに作成さ
れたアラーム・レコードへのアクセスを提供するオブジ
ェクトである。 ・ alarmRecordDeleted (Ala
rmLogEventevent) − このコールバ
ック・メソッドは、MIS内で既存のアラーム・レコー
ドが削除されると、登録アラーム・リスナについて呼び
出される。イベント引数は、削除されたアラーム・レコ
ードを識別するオブジェクトである。 ・ alarmRecordModified (Al
armLogEventevent) − このコール
バック・メソッドは、MIS内で既存のアラーム・レコ
ードが変更されると、登録アラーム・リスナについて呼
び出される。イベント引数は変更されたアラーム・レコ
ードへのアクセスを提供するオブジェクトである。
【0056】AlarmLogEventクラス(表4
に示す)は、MISイベントに関する情報を入手する。
これらのメソッドの置かれる場所はクライアントであ
る。 表4 public class AlarmLogEvent implements java.io. Serializable { public static final int OBJECT_CREATED = 1 public static final int OBJECT_DELETED = 2 public static final int ATTR_VALUE_CHANGED = 3 public static final int STATE_CHANGED = 4 public static final int RELATIONSHIP_CHANGED = 5 int getEventType(); AlarmRecord getAlarmRecord(); AlarmRecordId getAlarmRecordId(); }
に示す)は、MISイベントに関する情報を入手する。
これらのメソッドの置かれる場所はクライアントであ
る。 表4 public class AlarmLogEvent implements java.io. Serializable { public static final int OBJECT_CREATED = 1 public static final int OBJECT_DELETED = 2 public static final int ATTR_VALUE_CHANGED = 3 public static final int STATE_CHANGED = 4 public static final int RELATIONSHIP_CHANGED = 5 int getEventType(); AlarmRecord getAlarmRecord(); AlarmRecordId getAlarmRecordId(); }
【0057】・ int getEventTyp
e() − このメソッドは、上記の値(OBJECT
_CREATED、OBJECT_DELETED、A
TTR_VALUE_CHANGED、STATE_C
HANGED、RELATIONSHIP_CHANG
ED)のうちの1つを返すことによって、返されるイベ
ントを分類する整数を返す。 ・ int getAlarmRecord() −
このメソッドは、作成または変更されたAlarmRe
cordを返す。 ・ int getAlarmRecordId()
− このメソッドは、作成、削除、または変更されたA
larmRecordのAlarmRecordIdを
返す。
e() − このメソッドは、上記の値(OBJECT
_CREATED、OBJECT_DELETED、A
TTR_VALUE_CHANGED、STATE_C
HANGED、RELATIONSHIP_CHANG
ED)のうちの1つを返すことによって、返されるイベ
ントを分類する整数を返す。 ・ int getAlarmRecord() −
このメソッドは、作成または変更されたAlarmRe
cordを返す。 ・ int getAlarmRecordId()
− このメソッドは、作成、削除、または変更されたA
larmRecordのAlarmRecordIdを
返す。
【0058】
【発明の効果】以上から、本発明は以下の利点(これら
には限らない)を有することがわかるであろう。 1.本発明は、ネットワーク化MISにインタフェース
するAPIを提供する。 2.本発明は、プログラマが対象属性を指定することが
できるようにすることによって、サーバからクライアン
トに送られるデータの量を制限する。 3.本発明は、サーバにおける再帰的操作または計算も
しくは入出力を多用する操作を見つけ出し、それによっ
てクライアントに与える処理上の影響を制限し、クライ
アント/サーバ通信機構を会したデータ・フローを制限
する。 4.本発明は非Java MISにアクセスするJav
a APIを提供する。
には限らない)を有することがわかるであろう。 1.本発明は、ネットワーク化MISにインタフェース
するAPIを提供する。 2.本発明は、プログラマが対象属性を指定することが
できるようにすることによって、サーバからクライアン
トに送られるデータの量を制限する。 3.本発明は、サーバにおける再帰的操作または計算も
しくは入出力を多用する操作を見つけ出し、それによっ
てクライアントに与える処理上の影響を制限し、クライ
アント/サーバ通信機構を会したデータ・フローを制限
する。 4.本発明は非Java MISにアクセスするJav
a APIを提供する。
【0059】以上、本発明について、好ましい実施形態
に関して説明したが、当業者なら、本発明の範囲から逸
脱することなく、様々な修正および変更を加えることが
できることがわかるであろう。したがって、本発明の範
囲は、本明細書に記載の特定の実施形態には限定され
ず、特許請求の範囲およびそれと同等のものによっての
み規定される。
に関して説明したが、当業者なら、本発明の範囲から逸
脱することなく、様々な修正および変更を加えることが
できることがわかるであろう。したがって、本発明の範
囲は、本明細書に記載の特定の実施形態には限定され
ず、特許請求の範囲およびそれと同等のものによっての
み規定される。
【図1】好ましい実施形態による本発明を使用すること
ができるコンピュータ・システムを示す図である。
ができるコンピュータ・システムを示す図である。
【図2】好ましい実施形態によるクライアント−サーバ
・アーキテクチャを示す図(A)、好ましい実施形態に
よるオブジェクト・ファクトリを示す図(B)、好まし
い実施形態によるサーバ・オブジェクトを示す図(C)
である。
・アーキテクチャを示す図(A)、好ましい実施形態に
よるオブジェクト・ファクトリを示す図(B)、好まし
い実施形態によるサーバ・オブジェクトを示す図(C)
である。
【図3】好ましい実施形態によるサーバ・オブジェクト
作成プロセスを示す図である。
作成プロセスを示す図である。
【図4】好ましい実施形態によるサーバ・オブジェクト
・インスタンス化プロセスを示す図である。
・インスタンス化プロセスを示す図である。
【図5】好ましい実施形態によるAPI登録プロセスを
示す図である。
示す図である。
【図6】好ましい実施形態によるAPI操作呼出しプロ
セスを示す図である。
セスを示す図である。
【図7】好ましい実施形態によるクライアント・イベン
ト・ハンドラ・ディスパッチ・プロセスを示す図であ
る。
ト・ハンドラ・ディスパッチ・プロセスを示す図であ
る。
【図8】好ましい実施形態による、登録済みAPIにイ
ベントを渡すために使用するクライアント常駐イベント
配布プロセスを示す図である。
ベントを渡すために使用するクライアント常駐イベント
配布プロセスを示す図である。
【図9】好ましい実施形態による、クライアント・ディ
スパッチャにイベントを渡すサーバ・イベント・ハンド
ラ・プロセスを示す図である。
スパッチャにイベントを渡すサーバ・イベント・ハンド
ラ・プロセスを示す図である。
【図10】好ましい実施形態による論理オブジェクトの
コンストラクタ・プロセスを示す図である。
コンストラクタ・プロセスを示す図である。
【図11】好ましい実施形態による論理オブジェクトの
呼出しプロセスを示す図である。
呼出しプロセスを示す図である。
【図12】好ましい実施形態による、論理オブジェクト
を有するアプリケーション・プログラマ・インタフェー
スの動作を示す図である。
を有するアプリケーション・プログラマ・インタフェー
スの動作を示す図である。
100 コンピュータ・システム 101 プロセッサ 103 中央処理装置 105 メモリ部 107 入出力部 123 ネットワーク・インタフェース 125 ネットワーク 200 クライアント−サーバ・アーキテクチャ 205 アプリケーション 207 アプリケーション・プログラマ・インタフェー
ス 209 Java管理アダプタ 211 Javaネイティブ・インタフェース 213 ポータブル管理インタフェース 220 JMAアーキテクチャ 221 JMAディスパッチャ 223 第1のサーバ・オブジェクト 225 第2のサーバ・オブジェクト 230 サーバ・オブジェクト環境
ス 209 Java管理アダプタ 211 Javaネイティブ・インタフェース 213 ポータブル管理インタフェース 220 JMAアーキテクチャ 221 JMAディスパッチャ 223 第1のサーバ・オブジェクト 225 第2のサーバ・オブジェクト 230 サーバ・オブジェクト環境
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年12月28日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図5】
【図3】
【図4】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 スーボド・ベパット アメリカ合衆国・94303・カリフォルニア 州・パロ アルト・ヒルバー レーン・ 546 (72)発明者 ラジャスカー・ランガナサン アメリカ合衆国・94587・カリフォルニア 州・ユニオン シティ・ファイアーブリッ ク テラス・1882 (72)発明者 アキール・アロラ アメリカ合衆国・95122・カリフォルニア 州・サン ホゼ・ルクレチア アヴェニュ 1番・2346
Claims (21)
- 【請求項1】 サーバによって与えられ、ネットワーク
内で監視される条件に関するデータを含む管理情報サー
ビス(MIS)へのアクセスをクライアント・アプリケ
ーションに与えるコンピュータ制御方法であって、 (a)前記クライアント・アプリケーションによって、
論理オブジェクトを含むアプリケーション・プログラマ
・インタフェース(API)をインスタンス化するステ
ップと、 (b)前記クライアント・アプリケーションによって前
記論理オブジェクトのプログラム化メソッドを呼び出す
ステップと、 (c)前記MISにアクセスするために前記サーバにお
いて前記プログラム化メソッドを実行するステップとを
含むコンピュータ制御方法。 - 【請求項2】 前記監視される条件が被監視装置の状況
である請求項1に記載のコンピュータ制御方法。 - 【請求項3】 前記監視される条件がトポロジカル・ノ
ードの状況である請求項1に記載のコンピュータ制御方
法。 - 【請求項4】 (d)前記プログラム化メソッドの実行
後に、前記クライアント・アプリケーションに前記デー
タを戻すステップをさらに含む請求項1に記載のコンピ
ュー制御方法。 - 【請求項5】 前記データが複数の属性を含み、ステッ
プ(d)が、 (d1)前記データの対象属性を指定するステップと、 (d2)前記プログラム化メソッドの実行後に前記クラ
イアント・アプリケーションに前記対象属性を返すステ
ップとを含む請求項4に記載のコンピュータ制御方法。 - 【請求項6】 (e)前記クライアント・アプリケーシ
ョンのユーザに、前記データを提示するステップをさら
に含む請求項4に記載のコンピュータ制御方法。 - 【請求項7】 ステップ(c)が、指定されたトポロジ
カル・ノードの子ノード上で前記プログラム化メソッド
を再帰的に実行するステップをさらに含む請求項1に記
載のコンピュータ制御方法。 - 【請求項8】 中央処理装置(CPU)と前記CPUに
結合されたメモリとを有し、ネットワーク内において監
視される条件に関するデータを含むサーバによって与え
られる管理情報サービス(MIS)へのアクセスをクラ
イアント・アプリケーションに与える装置であって、 前記クライアント・アプリケーションに応答して、論理
オブジェクトを含むアプリケーション・プログラマ・イ
ンタフェース(API)をインスタンス化するように構
成されたインスタンス化機構と、 前記クライアント・アプリケーションによって前記論理
オブジェクトのプログラム化メソッドを呼び出すように
構成されたメソッド呼出し機構と、 前記MISにアクセスするために前記サーバで前記プロ
グラム化メソッドを実行するように構成された実行機構
とを含む装置。 - 【請求項9】 前記監視される条件が被監視装置の状況
である請求項8に記載の装置。 - 【請求項10】 前記監視される条件がトポロジカル・
ノードの状況である請求項8に記載の装置。 - 【請求項11】 前記サーバでの前記プログラム化メソ
ッドの実行後に前記クライアント・アプリケーションに
前記データを返すように構成されたデータ戻し機構をさ
らに含む請求項8に記載の装置。 - 【請求項12】 前記データが複数の属性を含み、ステ
ップ(d)が、 前記データの対象属性を指定するように構成された属性
指定機構と、、 前記プログラム化メソッドの実行後に前記クライアント
・アプリケーションに前記対象属性を返すように構成さ
れた属性戻し機構とをさらに含む請求項11に記載の装
置。 - 【請求項13】 前記実行機構が、指定されたトポロジ
カル・ノードの子ノード上で前記プログラム化メソッド
を再帰的に実行するように構成された再帰機構をさらに
含む請求項8に記載のコンピュータ制御方法。 - 【請求項14】 前記クライアント・アプリケーション
のユーザに前記データを提示するように構成されたデー
タ提示機構をさらに含む請求項11に記載の装置。 - 【請求項15】 コンピュータに、ネットワーク内にお
いて監視される条件に関するデータを含むサーバによっ
て与えられる管理情報サービス(MIS)へのアクセス
をクライアント・アプリケーションに与えるコンピュー
タ可読コードを有するコンピュータ使用可能記憶媒であ
って、 前記クライアント・アプリケーションに応答して、論理
オブジェクトを含むアプリケーション・プログラマ・イ
ンタフェース(API)をインスタンス化するように構
成されたインスタンス化機構を前記コンピュータに実行
させるように構成されたコンピュータ可読プログラム
と、 前記クライアント・アプリケーションによって前記論理
オブジェクトのプログラム化メソッドを呼び出すように
構成されたメソッド呼出し機構を前記コンピュータに実
施させるように構成されたコンピュータ可読プログラム
と、 前記MISにアクセスするために前記サーバで前記プロ
グラム化メソッドを実行するように構成された実行機構
を前記コンピュータに実施させるように構成されたコン
ピュータ可読プログラムとを含む記憶媒体。 - 【請求項16】 前記監視される条件が被監視装置の状
況である請求項15に記載の記憶媒体。 - 【請求項17】 前記監視される条件がトポロジカル・
ノードの状況である請求項15に記載の記憶媒体。 - 【請求項18】 前記サーバでの前記プログラム化メソ
ッドの実行後に、前記クライアント・アプリケーション
に前記データを返すように構成されたデータ戻し機構を
前記コンピュータに実施させるように構成されたコンピ
ュータ可読プログラム・コードをさらに含む請求項15
に記載の記憶媒体。 - 【請求項19】 前記データが複数の属性を含み、前記
ステップ(d)が、 前記データの対象属性を指定するように構成された属性
指定機構を前記コンピュータに実施させるように構成さ
れたコンピュータ可読プログラムと、 前記プログラム化メソッドの実行後に前記クライアント
・アプリケーションに前記対象属性を返すように構成さ
れた属性戻し機構を前記コンピュータに実施させるよう
に構成されたコンピュータ可読プログラムとをさらに含
む請求項18に記載の記憶媒体。 - 【請求項20】 前記クライアント・アプリケーション
のユーザに前記データを提示するように構成されたデー
タ提示機構を前記コンピュータに実施させるように構成
されたコンピュータ可読プログラムをさらに含む請求項
18に記載の記憶媒体。 - 【請求項21】 前記実行機構が、指定されたトポロジ
カル・ノードの子ノード上で前記プログラム化メソッド
を再帰的に実行するように構成された再帰機構を前記コ
ンピュータに実施させるように構成されたコンピュータ
可読プログラムをさらに含む請求項15に記載の記憶媒
体。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/957,357 US6185609B1 (en) | 1997-10-24 | 1997-10-24 | Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system |
| US08/957357 | 1997-10-24 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11219342A true JPH11219342A (ja) | 1999-08-10 |
Family
ID=25499467
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10304517A Pending JPH11219342A (ja) | 1997-10-24 | 1998-10-26 | サーバからアラーム条件にアクセスする方法、装置、およびプログラム製品 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US6185609B1 (ja) |
| EP (1) | EP0912014B1 (ja) |
| JP (1) | JPH11219342A (ja) |
| CA (1) | CA2251484A1 (ja) |
| DE (1) | DE69820566T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015163084A1 (ja) * | 2014-04-22 | 2015-10-29 | オリンパス株式会社 | データ処理システム及びデータ処理方法 |
Families Citing this family (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7555529B2 (en) * | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
| US6088515A (en) | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
| US7930340B2 (en) * | 1995-11-13 | 2011-04-19 | Lakshmi Arunachalam | Network transaction portal to control multi-service provider transactions |
| US6212556B1 (en) * | 1995-11-13 | 2001-04-03 | Webxchange, Inc. | Configurable value-added network (VAN) switching |
| US8037158B2 (en) | 1995-11-13 | 2011-10-11 | Lakshmi Arunachalam | Multimedia transactional services |
| US8271339B2 (en) * | 1995-11-13 | 2012-09-18 | Lakshmi Arunachalam | Method and apparatus for enabling real-time bi-directional transactions on a network |
| US6510460B1 (en) * | 1997-12-18 | 2003-01-21 | Sun Microsystems, Inc. | Method and apparatus for enforcing locking invariants in multi-threaded systems |
| US6636900B2 (en) * | 1998-06-29 | 2003-10-21 | Sun Microsystems, Inc. | Method and apparatus for executing distributed objects over a network |
| US7136919B1 (en) * | 1998-10-08 | 2006-11-14 | International Business Machines Corporation | Method and system for broadcasting alarm messages to selected users of an IP network |
| US6928469B1 (en) * | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
| US8225002B2 (en) | 1999-01-22 | 2012-07-17 | Network Disk, Inc. | Data storage and data sharing in a network of heterogeneous computers |
| US6880157B1 (en) * | 1999-04-05 | 2005-04-12 | Gateway, Inc. | System and method of providing a virtual appliance |
| US6832377B1 (en) * | 1999-04-05 | 2004-12-14 | Gateway, Inc. | Universal registration system |
| US7010792B1 (en) * | 1999-04-05 | 2006-03-07 | Gateway Inc. | Method for managing interaction between information appliances and appliance services |
| US7478403B1 (en) * | 2000-04-21 | 2009-01-13 | Sun Microsystems, Inc. | Secure access to managed network objects using a configurable platform-independent gateway providing individual object-level access control |
| US6691302B1 (en) * | 2000-05-31 | 2004-02-10 | Siemens Information & Communications Networks, Inc. | Interfacing a service component to a native API |
| US7130261B1 (en) | 2000-05-31 | 2006-10-31 | Siemens Communications, Inc. | Hierarchical dependability for open distributed environments |
| WO2002010917A1 (en) * | 2000-07-27 | 2002-02-07 | Bea Systems, Inc. | System and method for concentration and load-balancing of requests |
| US6760905B1 (en) * | 2000-09-21 | 2004-07-06 | Curl Corporation | Lazy compilation of template-generated classes in dynamic compilation execution environments |
| US7712128B2 (en) * | 2001-07-24 | 2010-05-04 | Fiberlink Communication Corporation | Wireless access system, method, signal, and computer program product |
| WO2003027878A1 (en) * | 2001-09-28 | 2003-04-03 | Fiberlink Communications Corporation | Client-side network access polices and management applications |
| US7117243B2 (en) * | 2001-10-02 | 2006-10-03 | Citrix Systems, Inc. | Methods for distributed program execution with file-type association in a client-server network |
| US7330872B2 (en) * | 2001-10-02 | 2008-02-12 | Citrix Systems, Inc. | Method for distributed program execution with web-based file-type association |
| US6952714B2 (en) * | 2001-10-02 | 2005-10-04 | Citrix Systems, Inc. | Method for distributed program execution with server-based file type association |
| US8135843B2 (en) * | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
| US6892234B2 (en) * | 2002-06-12 | 2005-05-10 | Electronic Data Systems Corporation | Multi-tiered enterprise management system and method including a presentation services unit external to the enterprise |
| JP2004272317A (ja) * | 2003-03-05 | 2004-09-30 | Hitachi Ltd | プログラム管理方法及びシステム並びにその処理プログラムを格納した記憶媒体 |
| US7082526B2 (en) | 2003-03-14 | 2006-07-25 | Elegent Technologies, Inc. | Mechanism for intuitively invoking one or more auxiliary programs during a computer booting process |
| US7124134B2 (en) | 2003-05-08 | 2006-10-17 | Eugene Buzzeo | Distributed, multi-user, multi-threaded application development system and method |
| EP1652117A4 (en) * | 2003-07-11 | 2010-07-28 | Computer Ass Think Inc | EVENT PROCESSOR FOR JOB CLASSIFICATION AND MANAGEMENT |
| WO2005020002A2 (en) * | 2003-08-15 | 2005-03-03 | Fiberlink Communications Corporation | System, method, apparatus and computer program product for facilitating digital communications |
| US7827558B2 (en) * | 2004-06-30 | 2010-11-02 | Devicevm, Inc. | Mechanism for enabling a program to be executed while the execution of an operating system is suspended |
| US7725589B2 (en) * | 2004-08-16 | 2010-05-25 | Fiberlink Communications Corporation | System, method, apparatus, and computer program product for facilitating digital communications |
| US8214461B1 (en) | 2004-11-23 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Method of processing request by server computer system |
| US7644410B1 (en) | 2004-11-23 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Resource management for shared computing environment |
| US7606833B2 (en) * | 2005-04-08 | 2009-10-20 | The Mathworks, Inc. | System and method for using an RMI activation system daemon with non-JAVA applications |
| US20070055752A1 (en) * | 2005-09-08 | 2007-03-08 | Fiberlink | Dynamic network connection based on compliance |
| US20070143851A1 (en) * | 2005-12-21 | 2007-06-21 | Fiberlink | Method and systems for controlling access to computing resources based on known security vulnerabilities |
| US20070143827A1 (en) * | 2005-12-21 | 2007-06-21 | Fiberlink | Methods and systems for intelligently controlling access to computing resources |
| US7783985B2 (en) * | 2006-01-04 | 2010-08-24 | Citrix Systems, Inc. | Systems and methods for transferring data between computing devices |
| WO2008098070A1 (en) | 2007-02-06 | 2008-08-14 | Mba Sciences, Inc. | A resource tracking method and apparatus |
| US8190707B2 (en) | 2007-10-20 | 2012-05-29 | Citrix Systems, Inc. | System and method for transferring data among computing environments |
| US9798524B1 (en) * | 2007-12-04 | 2017-10-24 | Axway, Inc. | System and method for exposing the dynamic web server-side |
| US9218218B2 (en) * | 2008-08-27 | 2015-12-22 | International Business Machines Corporation | Method and system for policy based lifecycle management of virtual software appliances |
| CN108306844B (zh) * | 2016-10-09 | 2020-07-24 | 上海思立微电子科技有限公司 | 用于服务器与客户端之间的api通信的方法 |
| CN110069042B (zh) * | 2019-03-15 | 2020-09-01 | 中车工业研究院有限公司 | 生产流程工序的控制方法、装置、软件系统及控制系统 |
| CN111526138B (zh) * | 2020-04-16 | 2023-02-24 | 行吟信息科技(上海)有限公司 | 报警实现方法、装置及系统 |
| CN113868090B (zh) * | 2021-10-09 | 2024-12-27 | 维沃移动通信有限公司 | 应用程序监控方法及装置 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09502547A (ja) * | 1992-11-13 | 1997-03-11 | マイクロソフト コーポレイション | 遠隔手続き呼び出しのためのインターフェイスポインタをマーシャリングする方法及びシステム |
| US5826085A (en) * | 1995-07-12 | 1998-10-20 | Oracle Corporation | Object oriented computer interface supporting interactive networked applications |
| US5809507A (en) * | 1996-07-01 | 1998-09-15 | Sun Microsystems, Inc. | Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework |
| US5757925A (en) * | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
| US6006230A (en) * | 1997-01-15 | 1999-12-21 | Sybase, Inc. | Database application development system with improved methods for distributing and executing objects across multiple tiers |
| US5899990A (en) * | 1997-03-31 | 1999-05-04 | Sun Microsystems, Inc. | Java-to-Database Connectivity Server |
-
1997
- 1997-10-24 US US08/957,357 patent/US6185609B1/en not_active Expired - Lifetime
-
1998
- 1998-10-16 DE DE69820566T patent/DE69820566T2/de not_active Expired - Fee Related
- 1998-10-16 EP EP98308505A patent/EP0912014B1/en not_active Expired - Lifetime
- 1998-10-22 CA CA002251484A patent/CA2251484A1/en not_active Abandoned
- 1998-10-26 JP JP10304517A patent/JPH11219342A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015163084A1 (ja) * | 2014-04-22 | 2015-10-29 | オリンパス株式会社 | データ処理システム及びデータ処理方法 |
| JPWO2015163084A1 (ja) * | 2014-04-22 | 2017-04-13 | オリンパス株式会社 | データ処理システム及びデータ処理方法 |
| US9699509B2 (en) | 2014-04-22 | 2017-07-04 | Olympus Corporation | Alternate video processing on backup virtual machine due to detected abnormalities on primary virtual machine |
Also Published As
| Publication number | Publication date |
|---|---|
| US6185609B1 (en) | 2001-02-06 |
| EP0912014B1 (en) | 2003-12-17 |
| CA2251484A1 (en) | 1999-04-24 |
| EP0912014A3 (en) | 2000-12-27 |
| EP0912014A2 (en) | 1999-04-28 |
| DE69820566D1 (de) | 2004-01-29 |
| DE69820566T2 (de) | 2004-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH11219342A (ja) | サーバからアラーム条件にアクセスする方法、装置、およびプログラム製品 | |
| JPH11242605A (ja) | マルチスレッドのクライアント・ベースapiをシングルスレッドのサーバ・ベースapiにインタフェースさせる方法、装置、およびプログラム製品 | |
| US11171897B2 (en) | Method and apparatus for composite user interface generation | |
| US7089561B2 (en) | Methods and systems for creating and communicating with computer processes | |
| US6157959A (en) | Method and apparatus for providing portable kernel-mode support for fast interprocess communication | |
| US6470375B1 (en) | System and method for managing the execution of system management tasks | |
| US7082604B2 (en) | Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents | |
| EP0880093B1 (en) | Information processing apparatus | |
| US20020059472A1 (en) | Method and apparatus for transporting behavior in an event-based distributed system | |
| JPH0916503A (ja) | コンピュータプロセスを管理する方法および装置 | |
| JPH09223116A (ja) | 複数ミドルウェアに渡る分散オブジェクトの位置透過性 | |
| JPH08272725A (ja) | 分散オブジェクト環境においてサーバの構成情報を判定し、操作するためのシステム、及び方法 | |
| JPH08115223A (ja) | コンピュータで実施する方法及びデータ処理システム | |
| JPH11327919A (ja) | オブジェクト指向割込みシステム用の方法およびデバイス | |
| JPH1083308A (ja) | スタブ検索及びローディング・サブシステム、スタブ検索及びローディング方法並びにスタブ検索及びローディング用記録媒体 | |
| WO2000045238A2 (en) | Dynamic configuration of activators in a client-server environment | |
| EP1405185A2 (en) | Method and system for passing objects in a distributed system using serialization contexts | |
| US7454758B2 (en) | Inter-process communication on a computer | |
| US6308226B1 (en) | Communication method and system for objects movable in network | |
| JPH11203259A (ja) | クライアント−サーバ環境におけるシン・クラスのための方法、装置、システム、およびプログラム製品 | |
| JP2002505472A (ja) | 分散システムにおいてリモート・オブジェクトの状態を判断するための方法および装置 | |
| US7472174B2 (en) | Abstract mechanism for constructing commands for the command pattern | |
| US20060106864A1 (en) | System, computer program product and method of narrowing an enterprise Java bean (EJB) object reference to a home implementation class name |