JPH0916532A - 第1クラス分散オブジェクトを使用して分散オブジェクト・サーバを制御、管理するシステム、及び方法 - Google Patents

第1クラス分散オブジェクトを使用して分散オブジェクト・サーバを制御、管理するシステム、及び方法

Info

Publication number
JPH0916532A
JPH0916532A JP8079022A JP7902296A JPH0916532A JP H0916532 A JPH0916532 A JP H0916532A JP 8079022 A JP8079022 A JP 8079022A JP 7902296 A JP7902296 A JP 7902296A JP H0916532 A JPH0916532 A JP H0916532A
Authority
JP
Japan
Prior art keywords
server
file
trace
spy
objects
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.)
Granted
Application number
JP8079022A
Other languages
English (en)
Other versions
JP2915842B2 (ja
Inventor
Maurice Balick
モーリス・バリック
Hoff Arthur A Van
アーサー・エイ・ヴァン・ホフ
Roderick J Mcchesney
ロダーリック・ジェイ・マクチェスニー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0916532A publication Critical patent/JPH0916532A/ja
Application granted granted Critical
Publication of JP2915842B2 publication Critical patent/JP2915842B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 分散オフ゛シ゛ェクト・フ゜ロク゛ラミンク゛環境においてリモート・
コンヒ゜ュータ上の管理情報、及びサーハ゛処理の挙動を取得して
修正するためのシステム、及び方法を提供する。 【解決手段】 ネットワーク・コンヒ゜ュータ・システムは、ネットワーク上の分
散クライアントに様々な機能を提供するサーハ゛を備えた複数のホス
ト・コンヒ゜ュータを含んでいる。クライアントは、クライアントが各サーハ゛処
理内で実施されている第1クラス・オフ゛シ゛ェクトの存在を介す
る、サーハ゛に対するオフ゛シ゛ェクト参照しか有していない場合で
も、リモート・ホスト・コンヒ゜ュータ上のサーハ゛に関する実行時情報にアク
セスできる。第1クラス・オフ゛シ゛ェクトは、各サーハ゛処理の処理識
別、サーハ゛処理内の活動オフ゛シ゛ェクトと実施のカウントを判定し、
サーハ゛によって使用されるアフ゜リケーション・フ゜ロク゛ラム・インタフェースに
よって提供されるトレース、及びロキ゛ンク゛機能を制御するため
に使用できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
アプリケーション開発、及びオブジェクト指向オペレー
ティング・システム開発に関し、より詳しくは、分散オ
ブジェクト・プログラミング環境においてオブジェクト
指向アプリケーション動作を管理する動作を実行するた
めの方法、及びシステムに関する。
【0002】
【従来の技術】ソフトウエア・アプリケーションは通
常、必要な手続コード全てと、アプリケーション内また
はその中間動作環境に含まれるデータを有する独立言語
型プログラムとして設計されている。こうしたプログラ
ムは一般的に、特に、そのアプリケーションのアドレス
空間内にない手順を実行したり、その空間内にないデー
タにアクセスすることのできない他のアプリケーション
のコードとデータだけにアクセスするよう制限されてい
る。しかし、オブジェクト指向プログラミングの発展に
よって、アプリケーションは最小エンティティとして設
計される必要がなく、むしろ、他の動作コードとデータ
のそれぞれにアクセス可能なオブジェクトからなること
ができる。
【0003】オブジェクト指向プログラミングでは、第
1クラス・オブジェクトは、単にプログラミング環境を
定義する情報や構造を提供するものではなく、プログラ
ム内の他のエンティティに直接操作されうるエンティテ
ィである。例えば、C++では、クラス定義だけがコンパ
イラにアクセス可能であり、そのクラス定義がプログラ
ムの実際の実行の間に他のオブジェクトによって操作さ
れうるため、クラス定義は第1クラス・オブジェクトで
はない。オブジェクト指向言語の中には、Smalltalkの
ように、クラス定義がアプリケーションの実行中に操作
され得るために、そのクラス定義が第1クラス・オブジ
ェクトとなっているものがある。
【0004】オブジェクトは、通常はネットワーク化さ
れたコンピュータである、分散環境において機能するよ
うに設計可能であり、そこでは、様々なコンピュータ上
のオブジェクトが、所与のユーザに様々な機能を提供で
きる。アプリケーション開発のこうしたスタイルは、分
散オブジェクト・プログラミングと呼ばれる。
【0005】分散オブジェクト・プログラミングは、分
散コンピューティング・システムを実施するのにも使用
することができる。分散コンピューティングの代表的な
モデルは、クライアント−サーバ・モデルである。ここ
で、サーバはクライアント・アプリケーションに動作及
びデータを提供するアプリケーションである。クライア
ントとサーバはネットワーク上の様々なコンピュータに
分散することができ、あるいは単一コンピュータに常駐
することもできる。分散オブジェクト・プログラミング
環境に基づくクライアント−サーバ・システムでは、ク
ライアントは、オブジェクトを呼び出すか又は操作する
コードであり、呼び出されるエンティティはサーバであ
る。一般にオブジェクト・サーバとして知られるサーバ
は、様々な動作を実行するための複数のオブジェクトを
含むことができる。クライアント、及びサーバは、同じ
処理(process)、別の処理、同じコンピュータ、又は別
のリモート配置されたコンピュータ内でも常駐可能であ
る。クライアントは、呼び出されるオブジェクトがシス
テム内のどこに常駐しているのかに関する情報を持つこ
となく、即ち、呼び出されたオブジェクトが記憶されて
いる、またはそれが実行されているコンピュータや処理
を特に知ることなく、オブジェクト参照を介してサーバ
を呼び出す。むしろクライアントは、サーバを処理とし
て実行しているコンピュータを見つけて、サーバからク
ライアントに任意の出力を返送するオブジェクト要求ブ
ローカを介して、そのオブジェクト参照を送信する。ク
ライアントとサーバ、及び分散オブジェクトの任意のグ
ループは、たとえオブジェクトが様々なコンピュータ間
に分散されていても、ユーザに対して一体化されたアプ
リケーションとして透過的な挙動をする。分散オブジェ
クト・プログラミングに関する1つの標準は、オブジェ
クト管理グループ(OMG)によって指定されている、共通
オブジェクト要求ブローカ・アーキテクチャ(CORBA)で
ある。
【0006】サーバに関する情報は2つのカテゴリに分
類することができる。動的情報はサーバを実行している
特定の処理から生じ、その情報は、その処理識別、現在
のメモリ要件または位置、サーバ内でいくつのオブジェ
クトが活動中かなどである。この情報は、それが一時的
な現在実行中の処理に依存しているため、動的である。
静的な情報は、特定の実行または処理から伝えられるも
のではない。この情報はサーバがインストールされてい
る位置、そのパス名、そのコマンド行引数、その構成セ
ットアップ・データのような外部情報、及びサーバが提
供するインタフェースと実施の識別及び記述のような内
部情報を含む。
【0007】
【発明が解決しようとする課題】UNIXTMのようなオペレ
ーティング・システムのほとんどは、アプリケーション
が最初にどれくらいメモリを割り当てているか、そのア
ドレス空間に関するアドレス・オフセット、どのアプリ
ケーションが現在実行中か、どのマシンで実行されてい
るかなどの、現在実行中又は実行の準備ができたアプリ
ケーションに関する動的情報を判定するのに役立つシス
テム呼び出しを提供する。こうしたシステムの機能は、
開発中のアプリケーションをデバッグするためにアプリ
ケーション開発者によって、及び実際の使用の際に発生
する問題を診断し、解決するためにシステム管理者によ
って使用される。全てが単一のコンピュータ上に常駐す
るアプリケーションによって処理が作成される従来のシ
ステムでは、アプリケーションを実行している処理に関
する情報は、従来のオペレーティング・システム・ルー
チンを用いて得られる。
【0008】しかし、分散オブジェクト環境において
は、オブジェクト・サーバはオブジェクトとして存在せ
ず、むしろ関連する機能を様々なクライアントに提供す
る、独立した、リモート配置が可能なオブジェクトの集
合として存在する。この実施例では通常、リモート・サ
ーバの処理の状態を判定するための手段がない。このこ
とは2つの理由による。第1は、本質的に第1クラス・
サーバ・オブジェクトがなく、分散オブジェクトの集合
だけがあり、従って、クライアントは処理情報を得るた
めの特定のサーバを識別できない。第2は、分散オブジ
ェクト環境では、サーバが、ほとんどのコンピューティ
ング・プラットフォームでそれ自身がオブジェクトであ
る処理(例えばUNIXTM処理)によって実施され、クライ
アントはサーバを容易に管理できないため、クライアン
トが実行時に動作可能なリモート構成だけが第1クラス
・オブジェクトである。このような情報がないと、一般
デバッグ、エラー・トレース、及びロギングができず、
それによって、分散オブジェクトから作成されたアプリ
ケーションの開発、デバッグ、及び管理が妨げられる。
【0009】従って、分散オブジェクト・プログラミン
グ環境においてリモート・コンピュータ上の管理情報、
及びサーバ処理の挙動を取得して修正するためのコンピ
ュータに実装されたシステム、及び方法を提供すること
が好ましい。
【0010】
【課題を解決するための手段】本発明は、ホスト・マシ
ン上の各サーバ内に第1クラス分散オブジェクト(以降
はサーバ・スパイと呼ぶ)のインスタンスを提供し、こ
のサーバ・スパイのインタフェース及び実施を、クライ
アントがそのサーバ・スパイへのオブジェクト参照を保
持して、そのサーバの状態と挙動を管理するのに非常に
適したものにすることによって、分散オブジェクト環境
のための一般管理ツールの実施を可能にする。
【0011】各サーバ・スパイ・オブジェクトは、活動
化されたサーバを実施するよう作成された処理に関する
実行時情報を、取得し修正するための構成、及び方法を
提供する。サーバ管理者オブジェクトは、クライアント
・オブジェクトによって、この情報に関するサーバ・ス
パイ・オブジェクトにアクセスするために使用される。
サーバ・スパイ・オブジェクトは、アプリケーション開
発の間、アプリケーション開発者によってリンクされ、
開発されたサーバ・コードに格納される実行時コード
の、ライブラリ内に、サーバ・スパイ・オブジェクトを
含むことによって、各サーバ内で実施される。
【0012】サーバ・スパイ・オブジェクトによってク
ライアントは、所与のサーバを維持しているホスト・コ
ンピュータ内、及び他のリモート配置されたクライアン
ト内の両方において、特定のサーバ・スパイ・オブジェ
クトに関連づけられたサーバの動作を判定し、制御でき
る。クライアントは、サーバがネットワーク上のリモー
ト・コンピュータで実行中の場合でも、サーバ・スパイ
・オブジェクトによって、サーバの処理識別子を判定で
きる。クライアントは、サーバが、使用されていない資
源の自動割り当て解除の対象であるかどうかを制御する
ことができる。クライアントはまた、アプリケーション
開発者によってサーバ内に含められうるトレース・コマ
ンドの出力と、この情報をログ・ファイルとして出力す
る出力先も、サーバ・スパイによって制御できる。
【0013】
【発明の実施の形態】図1を参照すると、分散オブジェ
クト・プログラミング環境で、リモート配置された分散
コンピュータ上のサーバに関する実行時情報を提供する
システム100のハードウエアが示されている。システム1
00は、ネットワーク103を介して接続された複数のホス
ト・コンピュータ101を含んでいる。各ホスト・コンピ
ュータ101は、サーバ、及びクライアントその他に関す
る実施コードとデータを長期間記憶するための2次記憶
装置107、コマンド及びデータをシステム100から受け取
り、システム100に出力するための入力装置109と出力装
置115、及びプロセッサ111による実行の間に、サーバ
(図示せず)とクライアントの実施コードを記憶するた
めのアドレス指定可能メモリ113を含む。プロセッサ111
による実行の間、サーバはアドレス指定可能メモリ113
内の処理として存在する。ネットワーク103に接続され
ているものには、複数のクライアント105もある。各ク
ライアント105は、ホスト・コンピュータ101と同様の構
成の、リモート配置されたコンピュータ内で処理として
実行されているオブジェクトであるかまたは、任意のホ
スト・コンピュータ101内で別の処理として存在するオ
ブジェクトである。各クライアント105は、ネットワー
ク103上のホスト・コンピュータ101内のサーバから、サ
ービス又はデータを要求する。ホスト・コンピュータ10
1は、アメリカ合衆国カリフォルニア州、マウンテン・
ビューのSun Microsystemsによって製造される、SPARC
ステーションTMコンピュータのような、最も汎用的なコ
ンピュータによって実現されうる。他の任意の汎用コン
ピュータも、本発明の使用に適用させることができる。
各ホスト・コンピュータ101は、Sun MicrosystemsのSol
arisTMオペレーティング・システムのような汎用オペレ
ーティング・システムを実行する。更に、各ホスト・コ
ンピュータは、オブジェクト管理グループの「Common O
bject Request Broker: Architecture and Specificati
on」第1.2版、OMG TC ドキュメント番号93-12-43(匿名
(anonymous)ftpによってomg.orgから入手可能)によっ
て設定されているCORBA標準を満たす、オブジェクト要
求ブローカ環境の一部である。分散オブジェクト・シス
テムに関する他の同等の環境が使用されうる。好適実施
例では、オブジェクト要求ブローカ環境は、Sun Micros
ystemsのプロジェクトDOE(完全な分散オブジェクト)
である。
【0014】ここで図2を参照すると、特に様々なサー
バの実行時動作の間の、任意のホスト・コンピュータ10
1内のアドレス指定可能メモリ113の構成を示す、システ
ム100の論理構成図が示されている。各ホスト・コンピ
ュータ101のアドレス指定可能メモリ113は、ワープロ、
データベース管理、グラフィック・デザイン、CADエン
ジニアリング、ソフトウエア開発、財務管理その他のよ
うなユーザ・アプリケーション機能、及びメモリ管理、
資源割り当て、記憶域管理、システム評価情報、リモー
トのクライアントとホストに対するネットワーク・イン
タフェースのようなオペレーティング・システム機能を
含む様々な機能を実行するための、複数の実行可能オブ
ジェクトを含んでいる。
【0015】より詳しくは、ホスト・コンピュータ101
は、複数のサーバ201を含み、サーバのそれぞれは特殊
なタイプの機能を、ネットワーク103上に分散された
(またはホスト・コンピュータ101内でローカルに存在
する)クライアント105に提供する。各サーバ201は、様
々なオブジェクト209からなる。ホスト・コンピュータ
101上の各サーバ201毎に、サーバ管理者クラスか
ら具体化された、持続型のサーバ管理者203オブジェク
トが存在する。各サーバ管理者203は、そのサーバ管理
者203に関連づけられた特定のサーバ201に関する実行構
成情報、及びサーバ201が実行中かどうかについて知る
ことができる全ての情報を維持する。サーバ管理者203
は、サーバ201がホスト・コンピュータ101上にインスト
ールされた場合に、サーバ管理者ファクトリ205によっ
て作成される。サーバ管理者203は、前述の関連するア
プリケーションについて、より詳細に説明される。
【0016】クライアント105とホスト・コンピュータ1
01の間の通信を容易にするのは、基本オブジェクト・ア
ダプタ225、即ちBOAである。BOA 225はクライアント105
が、ネットワーク103上に分散された様々なホスト・コ
ンピュータ101上のサーバ201内に包含されたオブジェク
ト209のオブジェクト実施にアクセスするためのインタ
フェースを提供する。オブジェクト実施は、オブジェク
ト209を実施するための実際のコードである。効果的に
ホスト・コンピュータ101のアドレス指定可能メモリ113
を管理するために、BOA 225はどのサーバ201が活動中
で、どのサーバ201が非活動かを示し、各サーバ201内で
どのオブジェクト209が活動中で、どのオブジェクト209
が非活動かを示し、更にどのオブジェクト方法の実施が
活動中で、どのオブジェクト方法の実施が非活動かも示
すレコードを維持する。こうしてBOA 225は、活動中の
サーバ201、オブジェクト209、実施に対してメモリを割
り当て、非活動のエンティティからメモリを割り当て解
除することによって、必要に応じた基準で容易にアドレ
ス指定可能メモリ113内のメモリ資源を管理できる。BOA
225は、サーバ201内のオブジェクト209に関するクライ
アント105から要求を受け取り、クライアント105はオブ
ジェクト参照をBOA 225に送信する。BOA 225は、オブジ
ェクト209または方法の活動中の実施があるかどうか判
定し、あれば、BOA 225はオブジェクト209に要求を送信
し、なければ、BOA 225はオブジェクト209に関する実施
コードを、2次記憶装置107から取得し、プロセッサ111
で実施を実行する、呼び出されたオブジェクトに関する
新しい処理を開始する。BOA225はまた、BOA 225によっ
て維持されている処理又はデータベース内のオブジェク
ト209に割り当てられた資源を再度要求することで、も
はや使用されていない、またはクライアント105やサー
バ201によって明らかに終了させられたオブジェクト209
と実施の非活動化を管理する。
【0017】ホスト・コンピュータ101内の各サーバ201
は複数のオブジェクト209を含む、そのそれぞれはオブ
ジェクト209とその状態に関連づけられたデータ、及び
機能動作を実施するための実行可能コード、またはその
データや他のオブジェクト209に関するオブジェクト209
の方法を要約する。オブジェクト209は、オブジェクト2
09が提供する動作、属性、及び例外を指定するインタフ
ェース定義を介して、クライアント105または他のオブ
ジェクト209によって操作される。オブジェクト209は分
散オブジェクトであり、オブジェクト209のインタフェ
ースがインタフェース定義言語で定義され、次にそれが
C++やCのような実施言語にマッピングされると言う点
で、オブジェクト指向プログラミング言語における従来
のオブジェクトとは異なる。このことによって、オブジ
ェクト209は、持続的に定義されたインタフェースを維
持しながらも、様々な言語で複数の実施を有することが
できる。クライアント105は、オブジェクト209の基礎と
なる実施に関する任意の情報を持つべきではなく、単に
オブジェクト209に関するインタフェースを持つべきで
ある。オブジェクト209は、オブジェクト参照からオブ
ジェクト209をアクセスするための、オブジェクト209に
関するオブジェクト参照(こうしたオブジェクト参照
は、例えば名付けサーバ227を使用することによって得
ることができる)、またはホスト・コンピュータ101上
の様々なBOA 225を使用することによって、クライアン
ト105のアドレス空間内や任意の数のホスト・コンピュ
ータ内を含むネットワーク103上のどこかに存在するオ
ブジェクト209を、クライアント105が呼び出すことがで
きるという点で、分散されているといえる。
【0018】ネットワーク103によってホスト・コンピ
ュータに接続されているものには、名付けサーバ227が
ある。この名付けサーバ227は、それぞれが名前制限の
集合を含む複数の名付け情報を含む名前空間ディレクト
リ229を維持する。名前制限は任意のオブジェクト名、
サーバ201内でオブジェクト209をユニークに識別し、更
にサーバ201をユニークに識別する、オブジェクト参
照、及びそのオブジェクト209を含むホスト・コンピュ
ータ101との間の結合である。名付けサーバ227は、オブ
ジェクト参照に関連づけられたオブジェクト209が名前
でアクセスされるように、オブジェクト参照に名前をバ
インドし、クライアント105にオブジェクト参照を提供
するために、クライアント105によって提供される名前
を決定する方法を提供する。オブジェクト参照によっ
て、クライアント105は、サーバ201内でサーバ201かま
たは任意のオブジェクト209を直接呼び出すことができ
る。名付けサーバ227は、クライアント105に、クライア
ント105がオブジェクト参照を有する前に、分散サーバ2
01にアクセスできるサービスを提供する。複数の名付け
サーバ227を使用することができ、クライアント105はネ
ットワーク103上の様々な名付けサーバ227を透過的にア
クセスできる。好適実施例では、名付けサーバ227は各
ホスト・コンピュータ内に含まれ、ホスト・コンピュー
タ101内でオブジェクト209を支援し、複数の名付けサー
バ227では、連結してローカル・オブジェクト209に関す
るオブジェクト参照をクライアント105に提供するよう
機能する。
【0019】ファクトリ・オブジェクト211は、クライ
アント105によって呼び出される単一の方法を実行し
て、オブジェクト209のタイプの新しいインスタンスを
作成するために、各オブジェクト209に関連づけられ
る。ファクトリ・オブジェクト211は名付けサーバ227の
名前空間ディレクトリ229内に登録され、そのディレク
トリはクライアント105によって、オブジェクト参照を
得るためにアクセスされる。各ファクトリ・オブジェク
ト211は、ファクトリ・オブジェクト211に対して特定な
タイプの新しいオブジェクト209を作成し、オブジェク
ト参照を新しいオブジェクト209に返す、静的なメンバ
作成機能を含む。初期化機能が、作成されたオブジェク
ト209内に提供され、オブジェクトの状態に関して必要
な任意の初期化が実行される。通常、サーバ201内の各
オブジェクト209に対して、ファクトリ・オブジェクト2
11の実施のインスタンスが1つだけある。各ファクトリ
・オブジェクト211のインスタンスは、サーバ201がホス
ト・コンピュータ101内にインストールされ、名付けサ
ーバ227内に登録された場合に作成される。オブジェク
ト209は、例えば、オブジェクト209が公然(public)のも
のでなく、サーバ201にとってのみ利用可能である場
合、またはサーバ201が特定のタイプのオブジェクト209
の単一インスタンスを有するように設計されている場合
は、関連づけられたファクトリ・オブジェクト211を有
する必要がない。
【0020】各サーバ201は、例えばアプリケーション
開発及びデバッグの間に、リモート配置されたクライア
ント105が現在の処理と関連する情報を得られるよう
に、サーバ201に関する実行時情報を判定するためのサ
ーバ・スパイ213も含む。このサーバ・スパイ213は、ア
プリケーション開発の間にサーバ201内で実施される分
散第1クラス・オブジェクトである。サーバ・スパイ21
3は、サーバ・スパイ213の方法及びデータが、サーバ20
1の現在の実行時状況に基いて、及びこれを反映して動
作するが、サーバ201によって維持される他のオブジェ
クトは普通、アプリケーション方法及びデータを提供す
るという点で、サーバ201内の他のオブジェクト209とは
異なる。本明細書の残り全てを通して、「サーバ」及び
「サーバ・スパイ」への参照は、あるサーバ201及び実
施されたサーバ・スパイ213への参照であり、これらの
全てのエンティティに関して説明された機能は、ホスト
・コンピュータ101内のそれぞれのサーバ201及びサーバ
・スパイ213に適用されることが理解される。
【0021】サーバ201がプロセッサ111によって実行さ
れる場合、それはホスト・コンピュータ内の活動中の処
理であり、サーバ・スパイ213は、そのサーバ201の処理
の一部である。従って、サーバ・スパイ213のそれぞれ
の動作及び属性が、サーバ・スパイ213が実施されてい
るサーバ201の処理の現在の状態に関連している。従っ
て、ホスト・コンピュータ上で同時に実行される複数の
サーバ201の処理によって、各サーバ201の処理において
サーバ・スパイ213が存在し、こうしたそれぞれのサー
バ・スパイ213が、それが実施されている特定のサーバ2
01の処理に関する報告を行う。
【0022】サーバ・スパイ213はまた、サーバ・スパ
イ213が存在してサーバ201に関する実行時情報を提供
し、この情報は一時的で、プロセッサ111によってサー
バ201の特定の実行のために作成された処理に限定され
るので、どんな情報も持続的に維持されない。代替実施
例では、サーバ201が複数のサーバ・スパイ・オブジェ
クト213を含むことができ、例えば、サーバ201に対して
異なるアクセス・レベルを提供して、ユーザ・クラス、
ドメイン、その他を区別する。
【0023】サーバ・スパイ213は、それを分散オブジ
ェクト・プログラミング環境で開発され、コンパイルさ
れた各サーバ201にリンクされた実行時ライブラリの一
部とすることで、各サーバ201内に含まれる。そのサー
バ・スパイ213は、通常IDLファイルとして知られる、サ
ーバ・スパイ213のインタフェースを定義するインタフ
ェース定義言語ファイルを作成することによって、実行
時ライブラリ内に含まれる。このインタフェースは、シ
ステム100のユーザの要求に最も適応する、開発環境の
提供者、オペレーティング・システムの提供者、または
システム・プログラマのいずれかによって定義されう
る。次に、別々の実施定義、及び実施コード・ファイル
がサーバ・スパイ213の方法を実施するように記述され
る。これらのファイルはコンパイルされた後、リンクさ
れて実行時ライブラリに格納され、新しいサーバ201を
作成するためにアプリケーション開発者によって使用さ
れる。従って、サーバ・スパイ213は他の任意のオブジ
ェクト209に似た実施を有するが、アプリケーション開
発者はサーバ・スパイ213を明確に含む必要がない。む
しろサーバ・スパイ213は、コンパイル及びリンクの
間、サーバ213内で自動的に現れる。この実装処理によ
って、分散オブジェクト・プログラミング環境における
全てのサーバ201が、アプリケーション開発者による作
業なしに、サーバ・スパイ213のインタフェース内に定
義される既知のメッセージの組に応答することができ
る。このことによって、システム管理者は、サーバ・ス
パイ213を介して任意のサーバ201と通信できるよう保証
された、一般管理ツールを開発することができる。こう
した管理ツールがサーバ管理者203である場合について
は、前述の関連するアプリケーションにおいてより詳細
に記述される。
【0024】サーバ・スパイ213はIDLインタフェースを
実施し、従って、サーバ・スパイ213を含むサーバ201処
理の外部の処理の中に存在するクライアント105によっ
て呼び出されうる。これは、サーバ・スパイ213を、通
常、開発環境コンパイラ及びリンカによってリンクされ
てサーバ201またはアプリケーション・プログラムに格
納される、従来の言語指定オブジェクトと区別する。そ
れは、これらのオブジェクトが、サーバ201処理の一部
である他のオブジェクトに対してのみアクセス可能なた
めである。
【0025】サーバ・スパイ213の状態が、所与の任意
の時間でサーバ201の状態に影響するので、サーバ・ス
パイ213はシステム100内の分散オブジェクトとしてサー
バ201を効果的に具体化し、クライアント105に、このよ
うなクライアント105がシステム100内の他の分散オブジ
ェクト209に対して有するサーバ201の内部への同じアク
セスのタイプを提供する。サーバ・スパイ213がない場
合、通常、サーバ201またはアプリケーション・プログ
ラムは、その実行中では、単に分散環境におけるクライ
アント105によって別々にアクセスできない一時的な処
理であるため、クライアント105は他の任意の分散オブ
ジェクト209と同じ方法でサーバ201を判定し操作できな
い。従って、サーバ・スパイ213は、サーバ201の操作及
び開発において、高い柔軟性と能率を提供する。
【0026】サーバ・スパイ213は、サーバ201がオブジ
ェクト要求ブローカに登録された場合に作成される。登
録は、BOA 225に、サーバ201の存在、特にそのパス名、
引数、及びサーバ201の環境を知らせ、サーバ201の実施
とインタフェースする。登録はまた、名付けサーバ227
内のオブジェクト参照を使用し、アプリケーション・プ
ログラマによって、ファクトリ211に関して指定された
名前をバインドして、ファクトリ211が一般的に利用可
能なこれらのオブジェクト209のファクトリ・オブジェ
クト211も作成する。サーバ・スパイ213は、サーバ・ス
パイ213に関する構成者機能を呼び出すことによって作
成される。好適実施例では、構成者機能がサーバ・スパ
イ213が実施されるサーバ201に関連づけられたサーバ管
理者203を決定し、次に、サーバ管理者203に対するサー
バ・スパイ213のオブジェクト参照を提供することによ
って、サーバ・スパイ213を、そのサーバ管理者203に割
り当てる。このことによって、サーバ管理者は、必要に
応じてサーバ・スパイ213の方法を呼び出すことができ
る。サーバ管理者203のない実施例においては、サーバ
・スパイ213を一般的に利用可能とするために、他の方
法が実施されうる。登録の間、サーバ・スパイ213はそ
の機能属性(以降で説明する)を実行して、サーバ201
内で利用可能なトレース機能は何かを判定し、この情報
をサーバ管理者203に提供する。サーバ・スパイ213は、
サーバ管理者203またはクライアント105がそのオブジェ
クト参照を介してサーバ・スパイ213にアクセスできる
ように、BOA 225にも登録されうる。
【0027】図6は、サーバ・スパイ213を使用してサ
ーバ201に関する現在の状態情報を得るための呼び出し
アーキテクチャを例示している。好適実施例では、クラ
イアント105はサーバ・スパイ213に対して一般的なアク
セスを有していない。むしろ、アクセスは、サーバ管理
者203を介して間接的に得られる。クライアント105は、
呼び出されるサーバ管理者203に関連づけられたサーバ2
01に関する現在の状態情報を得るために、サーバ管理者
203に関して適当な方法を呼び出す(601)。(代替実施例
では、サーバ・スパイ213がネットワーク103上のクライ
アント105に対して一般的にアクセスされ、直接呼び出
されうる(601)。)次に、サーバ管理者203は、所望の情
報に関してサーバ・スパイ213を呼び出す(603)。サーバ
・スパイ213は、以下で説明する、BOA 225内に提供され
る追加の方法の呼び出し(605)、オペレーティング・シ
ステム(609)、または他の低レベル・オブジェクトや処
理のいずれかのような特別の方法を実行する。サーバ・
スパイ213は次に、結果の情報をサーバ管理者203に返す
(607)。サーバ管理者203は更に、クライアント105が要
求すれば、この情報をクライアント105に返すこともあ
る(611)。サーバ・スパイ213によって得られる現在の状
態情報は、サーバ201の処理識別のようなサーバ201処理
に従属する動的情報、及びサーバ201内での事前に定義
されたAPI呼び出しの動作のようなサーバ201の実行時動
作を変更する非実行時情報の両方、または、サーバ201
の実行定義のような構成情報さえも含むことができる。
【0028】各サーバ・スパイ213は、サーバ・スパイ2
13が一部を占めているサーバ201処理に関する情報を記
憶し、操作するのに用いられる複数の属性を含んでいる
が、サーバ・スパイ213の特定の機能はシステム管理者
及び他のユーザの必要性に基づいて変更することができ
る。サーバ・スパイ213のインタフェースの一実施例に
おける疑似インタフェース定義ファイルが、以降のIDL
ファイルの例に示されている。このIDLファイルの例に
開示されたインタフェースは、本明細書で記述されるよ
うに、サーバ・スパイ213の機能を定義するのに有用で
ある。サーバ・スパイ213オブジェクトを定義するため
に使用されるのに適した、他のインタフェース定義ファ
イルもありうる。同様に、様々な実施ファイルが、サー
バ・スパイ213のインタフェース定義を実施するのに用
いられうる。
【0029】サーバ・スパイ213の機能の1つが、サー
バ201を、リモート・クライアント105に対するホスト・
コンピュータ101内の監視可能な処理として利用可能と
するものであるため、サーバ・スパイ213は、サーバ・
スパイ213を含むサーバ201処理に関して、オペレーティ
ング・システムによって提供される処理識別子を識別
し、記憶するための属性を含む。この属性に関するイン
タフェースの例は、pid属性である。この属性によっ
て、サーバ201を呼び出しているクライアント105は、サ
ーバ・スパイ213を含む、サーバ201に関する情報を決定
するために、メモリ割り当て、実行時間、その他を含む
処理を検査する任意のオペレーティング・システムの機
能にアクセスできる。サーバ・スパイ213が存在しない
場合、クライアント105は、クライアント105がサーバ20
1に関する名前またはオブジェクト参照を有していない
ため、サーバ201に関する情報を得ることができない。
好適実施例では、サーバ・スパイ213のpid属性が、例え
ばUNIXTMオペレーティング・システムにおいてgetpid()
コマンドを使用することによって、サーバ201の処理識
別子を返す、既存のオペレーティング・システム機能を
呼び出す方法に対するインタフェースを提供する。pid
属性によって、サーバ・スパイ213は、サーバ201に関連
づけられたサーバ管理者203に、サーバ201処理の処理id
を返し、次に、その処理idをクライアント105に送信す
る。
【0030】サーバ・スパイ213はまた、現在実行中
で、特にアドレス指定可能メモリ113の一部が資源とし
て割り当てられている、サーバ201内の活動オブジェク
ト209のカウントを判定し記憶するための属性も含む。
この属性のインタフェースの例は、active_object属性
である。サーバ201の実施言語がC++である場合、active
_object属性は、例えばサーバ201内に存在するC++オブ
ジェクト209の数を、システム100のクライアント105か
ら得られるサービス要求に示す。active_object属性
は、サーバ201が任意の1時点でどれほどの負荷がかけ
られているかという測定値を提供し、資源管理と、クラ
イアント105及びオペレーティング・システムによる利
用を支援する。
【0031】各サーバ201は1つ以上の実施を含み、サ
ーバ201内の各オブジェクト209はこれらの実施の1つに
必ず属する。サーバ・スパイ213は、実施が実行中であ
る場合、各実施によって作成される活動オブジェクトの
数に関するカウントを別々に維持する。例はActiveObje
ct構造である。
【0032】好適実施例において、活動オブジェクト20
9のカウントは以下のように維持される。サーバ201が初
期化されたとき、全ての実施のリンク・リストが作成さ
れ、これはサーバ201内に提供されたオブジェクト209に
関する個別クラスのリストである。このリスト内の各実
施は、その実施に関する活動オブジェクト209の個別の
リンク・リストに対するヘダーであり、このリンク・リ
ストのそれぞれは、所与のクラスのオブジェクト209の
新しいインスタンスが作成、または無効になった場合に
更新される。これらのリンク・リストを作成するための
コードは、サーバ201がアプリケーション開発者によっ
てコンパイルされたときに、リンクされてサーバ201の
コード内に記憶される実行時ライブラリによって提供さ
れる。サーバ・スパイ213はこれらのリンク・リストに
対して直接アクセスできる。クライアント105によって
活動オブジェクトのカウントが要求された場合、サーバ
・スパイ213はactive_object属性を呼び出すことによっ
て、実施のリンク・リストを横断し、各実施に関して、
その実施に関連づけられているリンク・リスト内のオブ
ジェクト・インスタンスの現在の数をカウントする。こ
のカウントは、各実施の名前とともにActiveObject構造
内に記憶される。サーバ・スパイ213は全ての実施にわ
たって活動オブジェクトのカウントを合計し、これをク
ライアント105に返す。または、サーバ・スパイ213がこ
のリストだけを横断することによって、各実施毎のオブ
ジェクト・インスタンスのカウントが、実施リンク・リ
スト内に維持される。好適実施例では、サーバ・スパイ
213が、リンク・リスト構造に対して排他アクセスを有
し、それによって活動オブジェクトの正確なカウントを
保証する。排他アクセスは、リーパ217が、割り当て解
除を実行するのに必要な、活動オブジェクトのリストに
対するアクセスを得ることができないため、リーパ217
による自動割り当て解除を防止する。
【0033】サーバ・スパイ213はまた、リーパ217によ
って自動割り当て解除が実行されるかどうかを示すため
のフラグも含んでいる。この属性のインタフェースの例
は、ブール属性reapingである。クライアント105がサー
バ201のデバッグのために、リーパ217を使用不能にする
ことができ、それによって、サーバ201がリーパ217によ
ってデバッグ処理の間に終了させられることが抑止さ
れ、サーバ201は長期間非活動として存在する可能性が
ある。同様に、システム管理者は、サーバ201を検査
し、その構成情報を変更するなどのために、リーパ217
を使用不能にすることができる。
【0034】リーパ217は、各サーバ201処理内で実行さ
れる別々のスレッドである。reapingフラグがセットさ
れると、リーパ217は通常に動作し、アプリケーション
開発者によって好ましいものに設定された、指定期間の
間アイドル状態であるオブジェクト209から、自動的に
資源を割り当て解除する。どのオブジェクト209が活動
中か判定するために、リーパ217は、上述のように活動
オブジェクトのリンク・リストに対する排他アクセスを
得る。図3は、リーパ217によって実施される方法の一
実施例のフローチャートを示している。起動後、リーパ
217は、リーパが実施されたサーバ201内の全ての実施に
対してループする(300)。各実施毎の活動オブジェクト
のリンク・リストにわたってループすることによって(3
05)、リーパ217は、各起動オブジェクト209毎に、オブ
ジェクト209が指定された期間の間呼び出されていない
かどうか、即ち現在の時間と、オブジェクト209が最後
に呼び出されたときのタイムスタンプ値との差が、指定
されたアイドル時間より大きいかどうかを判定する(30
7)。大きい場合、リーパ217は、従来の方法でその解除
機能を間接的に呼び出すことで、アイドル状態のオブジ
ェクト209から資源を割り当て解除する(309)。大きくな
かった場合、reapingフラグがセットされていなけれ
ば、リーパ217はそれ自身を非活動とし、サーバ201内の
活動オブジェクトは、サーバ201の明確な終了のみによ
って割り当て解除される。また、リーパ217へのフラグ
として機能する単一の属性の代わりに、サーバ・スパイ
203は、直接リーパ217を開始、終了させる明確な方法を
含むことができ、これによって獲得(reaping)機能の直
接的な操作が可能となる。
【0035】サーバ・スパイ213は、リーパ217のサイク
ル時間、即ち各サーバ201のリーパがどれほどの頻度で
ホスト・コンピュータ101に起動されて割り当て解除を
実行しているかを判定しセットする属性を含んでいる。
この属性のインタフェースの例は、reaper_cycle_time
属性である。
【0036】サーバ・スパイ213もまた、サーバ・スパ
イ213を含むサーバ201に特有のアイドル時間、即ちサー
バ201内のオブジェクト209が呼び出されていない間の秒
数を判定しセットする。この属性のインタフェースの例
は、server_timeout属性である。サーバ201内のオブジ
ェクトが呼び出される度に、現在の時間がサーバ201に
記憶される。図3を参照すると、リーパ217がこの時間
と現在の時間を比較して(311)、その差がserver_timeou
tで指定されたアイドル時間より大きい場合、リーパ217
は、サーバ201に関連づけられたサーバ管理者203を呼び
出し、サーバ201が終了させられることを示し、シャッ
トダウンAPI 223によって提供されるシャットダウン方
法を呼び出すことによって、サーバ201を非活動化(313)
させる。
【0037】システム100で用いられている分散オブジ
ェクト・プログラミング環境は、各サーバ201が、入出
力機能、ユーザ・インタフェース管理、その他のよう
な、様々なオペレーティング・システム・コール、及び
事前に定義されたアプリケーション・ルーチンにアクセ
スできるようにする、複数のアプリケーション・プログ
ラミング・インタフェース(API)を支援する。このよう
にしてAPIは、アプリケーション開発者によって直接コ
ード化されていない、サーバ201内の機能を提供するこ
とによって、サーバ201の動作特性を変更する。むしろA
PIは、アプリケーション開発者に、実行中にAPIを呼び
出すための、オブジェクト209またはサーバ201の実施コ
ード内に含まれうる呼び出しの組を提供する。各サーバ
201内に、トレースAPI 219、ロギングAPI 221、リーパA
PI 217、及びシャットダウンAPI 223が提供される。
【0038】トレースAPI 219は、実行時に生成された
エラーの判定に有用で、エラーを含まないアプリケーシ
ョンの不適当な実行結果の原因を識別するための、サー
バ処理に関する診断情報の条件付き出力の制御を提供す
る。ロギングAPI 221は、こうした診断が出力される箇
所の指示を提供する。この別の2つの機能によって、診
断ツールの柔軟性が向上し、様々なリモート・クライア
ント105に所与のサーバ201のロギングとトレースの個別
制御を可能とする。リーパAPI 217は、非活動またはア
イドル状態のオブジェクト209と資源を自動的に割り当
て解除する方法を提供する。シャットダウンAPI 223
は、サーバ201の計画シャットダウンとクリンナップを
実施する方法を提供する。
【0039】通常、アプリケーション開発者はサーバ・
コード内に様々なAPI呼び出しを含め、永久にその動作
を構成するよう制限されており、その結果、アプリケー
ション・ユーザは、一旦サーバ201がコンパイルされて
実行可能アプリケーション内に記憶されると、どのAPI
呼び出しが実行されるかを動的に構成する方法がない。
例えば、サーバ201の実行をトレースするために、アプ
リケーション開発者は所望のトレース位置に特定のAPI
呼び出しを含み、このコードは、一旦サーバ201が実行
可能アプリケーションとしてインストールされても変更
されず、そのためこのAPIは常時動作可能で、それによ
ってこうしたトレースの特徴の柔軟性を制限する。アプ
リケーション開発者は、例えばサーバ201に記憶された
全てのデータを出力するために、トレース・ステートメ
ントの条件付き制御を提供可能であるが、これは、特定
の問題を診断しようとするときだけである。しかし、こ
うしたルーチンはサーバ201をより複雑にする。更に、
アプリケーション開発者は、サーバ201コード内で、こ
れもまた、ユーザ、またはシステム管理者がその出力を
変更する能力を制限するトレース情報を出力するための
特定のログ・ファイルを識別する。
【0040】均一のトレース機能を提供し、アプリケー
ション開発者に関する処理を単純化するために、分散オ
ブジェクト・プログラミング環境はトレース、及びロギ
ング機能に関する特定のAPIを提供する。サーバ・スパ
イ213オブジェクトは、ユーザがサーバ201を維持するホ
スト・コンピュータ101からリモート配置されている場
合であっても、実行中にこれらのサーバ201内の様々なA
PIを実行可能にし、構成することができる。
【0041】トレースAPI 217は、ある機能を用いて条
件付きのトレース制御を提供する。その機能とは、事前
に定義される組として利用可能なトレース・フラグの組
である。アプリケーション開発者は、コードをサーバ20
1内に含めるために、その機能の様々な組を定義するこ
とができる。例えば、機能はループの出入り口、ループ
実行時間、ディスクの読み書き、その他を記録するため
に定義されうる。所与の機能における各トレース・フラ
グは、分散オブジェクト・プログラミング環境の実行時
ライブラリ内に含まれるかまたは、アプリケーション開
発者によって別に提供されるトレース機能を実施する特
定の方法に関連づけられている。アプリケーション開発
者は、サーバ201コード内の様々な所望の位置に、所与
の機能を指定するトレース・メッセージ、様々なトレー
ス機能を制御するための1つ以上のフラグ、及び出力値
を指定する。機能のプロトタイプは、DOT_TRACE(char*
facility_name, char* trace_flags, char* format,
...);であり、ここで、DOT_TRACEは、トレースAPI 219
によって提供されるAPI呼び出しであり、任意の数の出
力値が、フォーマット仕様に従って指定される。
【0042】分散オブジェクト・プログラミング環境に
おいて、クライアント105は、これらのトレース、及び
ロギング機能を、リモート・サーバ201に関して直接ア
クセスすることができない。しかし、サーバ・スパイ21
3は、リモート・クライアント105に、ネットワーク103
上のあらゆるサーバ201に関するこの情報を制御する能
力を提供する。サーバ・スパイ213は、トレースAPI 21
9、及びロギングAPI 221とともに、API機能の動作を制
御するAPI呼び出しへのアクセスを提供することによっ
て、このようなユーザが、実行中にサーバ201に関する
トレース、及びロギング条件を直接操作できるようにす
る。アプリケーション開発者は、サーバ201アプリケー
ションに様々な所望のAPIを組み込む。サーバ201の実行
中に、リモート配置されたクライアント105が、サーバ
・スパイ213を呼び出して、実行時にこれらの呼び出し
の動作を構成する。
【0043】トレースを制御するために、サーバ・スパ
イ213は所与の機能と、その機能内で利用可能な特定の
トレース・フラグを呼び出し(使用可能にし/使用不能
にし)、サーバ201の実行中にトレース・メッセージが
発生した場合に、結果として出力値が生成される。所与
のサーバ201に関するトレース・メッセージの出力は、
サーバ201からのトレース出力全てを記憶するためのロ
グ・ファイルのリストを別々に維持するトレースAPI 21
7に送信される。ロギングAPI 221は、サーバ201に関す
る適当なログ・ファイル(単数、または複数)を判定す
るために使用され、そこにトレース・メッセージが出力
される。トレース制御とロギング制御の分離は、リモー
ト・クライアント105がサーバ201に関するトレース動作
と出力位置の両方を個別に操作できるようにした。
【0044】好適実施例の分散オブジェクト・プログラ
ミング環境は、以下のトレース・フラグを有する「デフ
ォルト」トレース機能を提供する。 admin 管理者の制御を提供する config 情報を構成する heartbeats サーバに送信されたハートビートを記録
する install 詳細のインストール object 詳細内部のオブジェクトのライフサイク
ル reaper 非活動オブジェクトの除去 run_verbose 新しいサーバのスタートアップ及びシャ
ットダウン情報 data 持続的データの動作 トレースAPI 219へのAPI呼び出しで、アプリケーション
開発者が望むとおりに他のトレース機能を定義できる。
【0045】従って、サーバ201内に含まれるトレース
機能にアクセスするために、サーバ・スパイ213は以下
の機能を含む。第1にサーバ・スパイ213は、クライア
ント105にサーバ201内で利用可能な機能が何かを知らせ
る。機能属性はクライアント105に、各機能毎に機能
名、機能の記述または機能の目的、機能に含まれるトレ
ース・フラグの組、及びトレース・フラグのブール値の
セットを含む、機能のリストを出力する。次に、サーバ
・スパイ213は、クライアント105がサーバ・スパイ213
の方法である、使用可能または使用不能を呼び出し、機
能名、及びセットされるトレース・フラグの組を指定す
るので、リストされた任意の機能を使用可能、又は使用
不能にできる。これらの方法に関するインタフェースの
例は、方法trace_enable()とtrace_disable()である。
【0046】例えば、クライアント105は、以下のコマ
ンドをサーバ・スパイ213に送信することによって、フ
ラグ「run」と「method」を有する「default」と呼ばれ
るデフォルト機能を使用可能にできる。 trace_enable("default","run:method");。
【0047】更に、サーバ・スパイ213によって、クラ
イアント105は、サーバ201内の全ての機能、または所与
の機能内の全てのトレース・フラグ、またはその両方を
使用可能とすることができる。 trace_enable("all","flag_name"); trace_enable("facility_name","all"); trace_enable("all","all");。
【0048】同様に、クライアント105は、以前に使用
可能にされた全ての機能を使用不能にすることができ
る。 trace_disable("all","all")。
【0049】前述のように、ロギング、及びトレース機
能を分離することによって、サーバ201の制御について
の柔軟性が向上する。通常、オペレーティング・システ
ムは、事前に定義された、制限された数のログ・ファイ
ルを支援する。これらのログ・ファイルは、全てのシス
テム情報を記録するために使用され、単に特定のサーバ
201またはホスト・コンピュータ101に関連する情報を記
録するために使用されるものではない。しかし、システ
ム管理者は、特定のホスト・コンピュータまたはサーバ
201の中だけで対象とされうる。従って、サーバ・スパ
イ213は、例えば、ユーザに指定された新しいログ・フ
ァイルを開始する方法file_start()、及びユーザに指定
されたログ・ファイルをクローズしセーブする補足的な
file_stop()を使用して、任意の個別サーバ201またはホ
スト・コンピュータ101に特有のログ・ファイルに関す
るプリントを制御するための方法を含む。サーバ・スパ
イ213の好適実施例では、ログ・ファイルの組毎に、ロ
グ・ファイルの名前、そのオープン・モード、メガバイ
ト単位の最大ファイル・サイズ、及びもしあれば交換フ
ァイルの数を記憶している、ログ・ファイル構造が維持
される。方法file_start()が呼び出された場合、このロ
グ・ファイル構造がその方法に送信され、ログ・ファイ
ル構造内で指定されたパラメータの新しいログ・ファイ
ルが作成される。ログ・ファイルの名前を送信すること
だけが必要となる方法、file_stop()が呼び出された
後、このログ・ファイルには書き込みは行われない。
【0050】新しいログ・ファイルを作成するために、
サーバ・スパイ213は、新しいログ・ファイルを作成す
るログ・ファイル・パス名を送信して、そのログ・ファ
イルを、全てのトレース・メッセージ及びエラー・メッ
セージがトレースAPI 219によって新しいログ・ファイ
ルに出力されるように、サーバ201内に記憶されるグロ
ーバル・リスト上に配置する、ロギングAPI 221を呼び
出す。ログ・ファイルの指定は、サーバ201の実行中に
使用可能にされたトレース機能が存在する場合に、サー
バ201のトレースAPI 219によって読み取られ、トレース
API 219が自動的にトレース・メッセージの出力値を新
しいログ・ファイル内に記憶する。サーバ・スパイ213
は、ファイル操作に対する従来の例外処理を支援する。
【0051】更に、システム管理者のようなユーザが、
標準システム・ログ・ファイルにログ情報を出力する可
能性があるので、サーバ・スパイ213はこのオプション
を制御するために、ブール値の属性use_syslogというフ
ラグを含む。このフラグがセットされていれば、トレー
スAPI 219及びロギングAPI 221は、サーバ201に関する
トレース出力値、エラー情報、ログ情報をオペレーティ
ング・システムのログ・ファイルにミラーリングし、セ
ットされていなければ、この情報はサーバ201に関する
指定されたログ・ファイルにだけ記憶される。
【0052】かなりの時間動作し続けているサーバ201
は、非常に大きいログ・ファイルを作成している可能性
がある一方、頻繁に使用されないサーバ201は非常に小
さなログ・ファイルを有する可能性がある。効果的に2
次記憶空間を維持しながら、このように変化する挙動を
調整するために、サーバ・スパイ213は、サーバ201に関
するログ・ファイルの最大サイズを変更する、file_set
_max_bytes()という方法を提供する。サーバ・スパイ21
3は、ロギングAPI 221を呼び出し、そのAPIは次に、サ
ーバ201の指定されたログ・ファイルの最大ファイル・
サイズを記憶する。この制限値は、図4に関連して詳細
に上述したように、情報がログ・ファイルに出力される
場合に、トレースAPI 219、及びロギングAPI 221によっ
て使用される。
【0053】所定時間を超えると、ほとんどのサーバ20
1はそれらのログ・ファイルのサイズを超える。サーバ
・スパイ213はシステム管理者に、交換基準に基づいて
交換されうる複数のログ・ファイルを指定できる機能を
提供する。この方法のインタフェース例は、方法file_s
et_swap_count()である。交換によって、サーバ201のロ
ギングに関して、活動ログ・ファイルを提供しながら、
所与のログ・ファイルを、必要に応じて、検査及び、削
除またはアーカイブできる。図4は、交換可能なログ・
ファイルをセットし、操作するために、プロセッサ111
によって実行されるロギングAPI 221の方法の一実施例
に関するフローチャートである。
【0054】交換ファイルに印刷を行うために、プロセ
ッサ111はトレース・メッセージの出力値かまたは、他
のログ情報を、以前からサーバ201内に指定されている
指定ログ・ファイルにプリントする(401)。プロセッサ1
11は、ログ・ファイルの現在のサイズを得るために、オ
ペレーティング・システム機能を呼び出す(403)。この
サイズは、サーバ・スパイ213を介してクライアント105
によって指定された最大ファイル・サイズと比較される
(405)。このファイル・サイズが、最大ファイル・サイ
ズ以上である場合、プロセッサ111は、交換に使用され
るよう指定された交換ファイルの数である交換カウント
が、ゼロより大きいかどうかチェックする(407)。ゼロ
より大きい場合、プロセッサ111は交換ファイル・ルー
チンを呼び出して(411)、物理的にログ・ファイルを交
換する。上記以外の場合、ログ・ファイルが新しいログ
またはトレース情報によって上書きされるように、プロ
セッサ111は単にファイル・ポインタの終わりをリセッ
トする(409)。
【0055】図5は、ログ・ファイルを交換する交換フ
ァイル方法の一実施例を示している。この方法では、交
換ファイルの組の中で最も古いファイルが、連続した名
前を持つ新しい交換ファイルとして上書きされる。各ロ
グ・ファイルには、ファイル名.ログ.iという形式の名
前が付けられており、ここでiは繰り返し値で、主ログ
・ファイル、即ち活動ログ・ファイルは、単にファイル
名.ログである。トレース機能、またはロギング機能が
呼び出されると、それらはユーザによって指定されたロ
グ・ファイルの組にわたってループし(501)、そのルー
プは、値(swap_count - 2)から始まり、ゼロまで繰り返
される。繰り返し値iから、新しいファイル名、ファイ
ル名.ログ.iが作成される(503)。この名前のファイルが
既に存在している場合(505)、かつ2つ以上のログ・フ
ァイルを有することができる場合、そのファイルは、フ
ァイル名.ログ.iからファイル名.ログ.(i + 1)に変更さ
れる。これは、既存のログ・ファイルのそれぞれを、最
も古いものから上書きすることになる。古いログ・ファ
イルの名前全てがこのように変更されてしまうと、主ロ
グ・ファイルの名前はファイル名.ログからファイル名.
ログ.lに変更される。
【0056】サーバ・スパイ203は、シャットダウンAPI
223を呼び出すためのシャットダウン方法を含む。この
方法によって、クライアント105はサーバ201の計画停止
を行うことができる。マルチスレッド環境においては、
オペレーティング・システムから受け取る信号を処理す
る際、及びこうした信号の適当な目標を決定する際に非
常に困難な問題が存在する。通常UNIXTMのKILLコマンド
は、所与のサーバ201をシャットダウンするのに用いら
れている。しかし、マルチスレッド環境のために、サー
バ201内の適当なスレッドがKILLコマンドを受け取る保
証がなく、従って、誤ったスレッドが終了されてしまう
可能性がある。サーバ・スパイ203のシャットダウン方
法は、この問題を、直接シャットダウンAPI 223を呼び
出すことによって回避する。これは、デバッグ中のシス
テム管理者、及び他の管理ツールによる、サーバ201の
動作制御をより良好に行う。更に、この方法によって、
サーバ201がシャットダウンの前にそれ自身をホールド
・ダウンさせることができる。クライアント105は、hol
d_down()を、shutdown()呼び出しが拒否された場合に、
任意のクライアント呼び出しとして、最初に呼び出すこ
とができないため、こうしたホールド・ダウン動作なし
に、呼び出しが、shutdown()呼び出しとhold_down()呼
び出しの間に来ないよう保証することができない。
【0057】 IDLファイルの例 // File: ServerSpy.idl // // Copyright 1994 Sun Microsystems, Inc. // #ifndef SERVER SPY IDL #define SERVER SPY IDL #pragma ident "@(#)ServerSpy.idl 1.19 95/01/16 Sun Microsystems" #include <admin/DomfServerAdmin.idl> #include <admin/DomfAdmin.idl> //全てのODFサーバ内で単一のサーバ・スパイ(ServerSpy) //インスタンスが実施される。 //それは、トレース/ロギング構成の制御を実行、支援するので、 //サーバに関する実行時情報を提供する。 //それは、domfデーモンが停止した場合に、計画シャットダウン //に関するサーバ管理者として、domfに提供される。 // module DatInt { //****************************** // //構造とタイプ定義(typedef)宣言 // //****************************** typedef unsigned long Seconds; typedef unsigned long ObjectCount; //インタフェースとサーバ・バージョン構造 struct Version { unsigned long major; unsigned long minor; string date; }; //TraceFlag:条件付き出力の制御に使用 struct TraceFlag { string name; string description; boolean enabled; }; tyepdef sequence<TraceFlag> TraceFlags; //Facility:フラグの組のグループ化に使用 struct Facility { string name; string description; TraceFlags flags; }; typedef sequence<Facility> Facilities; exception UnknownFacility {}; exception UnknownTraceFlag { string trace flag; //未知のフラグ(Unknown flag) }; //LogFile:ログが出力される単一ファイル struct LogFile { string name; string open mode; float max mbytes; long swap count; }; typedef sequence<LogFile> LogFiles; exception FileError { //UNIXファイル・エラー string details; //エラーの説明 }; exception AlreadyOpened {}; //ログ・ファイルが既に //オープンされている。 exception SpecialFile {}; //ログ・ファイルが通常 //のUNIXファイルでなく、かつmax_mbytesまたは、 //swap_count > 0 exception NotOpened {}; //このファイルに現在ログ //出力されていない。 //****************************************** // //サーバ・スパイ(ServerSpy)インタフェース // //****************************************** interface ServerSpy: DOMF ServerAdmin, ObserverAdmin { //シャットダウン void shut down hold( in BoaDbAdmin::HoldDownDuration hold down ); // //実行中のサーバに関する情報 // //活動(呼び出され獲得されていない(unreaped))オブジェクト //の数の合計 readonly attribute ObjectCount active object count; //実施に関する活動オブジェクトの数 struct ActiveObjectCount { string implementation name; ObjectCount active object count; }; typedef sequence<ActiveObjectCount> ActiveObjectCounts; readonly attribute ActiveObjectCounts active object counts; //サーバによって提供される全機能(facility)のリスト readonly attribute Facilities facilities; // //リーパの挙動の検査と変更 // //アイドル状態であると思われる第2のサーバを、リーパに //よってそれがシャットダウンされる前に得る/セットする。 attribute Seconds server timeout; //どれほどの頻度でリーパが起動して非活動チェックをするか //得る/セットする。 attribute Seconds reaper cycle time; //オブジェクト及びサーバ自身の自動非活動化を行うか //どうかを得る/セットする。 attribute boolean reaping; // //トレース制御 // //1つ以上のトレース・フラグを使用可能にする。 //フラグは空白で区切られたキーワードである。 //機能またはフラグのどちらかが「all」となりうる。 //現在の設定を無効にすることなく、現在の使用可能な組に //追加する。 void trace enable( in string facility_name, in string flags ) raises(UnknownFacility, UnknownTraceFlag); //1つ以上のフラグを使用不能にする。機能及びフラグの両方 //に関して「all」を使用し、全てのトレースを停止させる。 void trace disable( in string facility name, in string flags ) raises(UnknownFacility, UnknownTraceFlag); //機能に関するフラグが使用可能かどうかチェックする。 boolean trace is enabled( in string facility name, in string flags ) raises(UnknownFacility, UnknownTraceFlag); // //ログ出力制御 // //syslogデーモンへの出力有無を示すフラグ attribute boolean use syslog; //プリントされるログ・ファイルに関する情報 readonly attribute LogFiles log files; //新しいログ・ファイルへのプリントを開始する。 void file start( in LogFile new file ) raises(FileError, AlreadyOpened, SpecialFile); //プリントを停止し、ログ・ファイルをクローズする。 void file stop( in string name ) raises(FileError, NotOpened); //メガバイト単位でログ・ファイルの最大サイズを変更する。 //このファイルに現在ログ出力がない場合、 //NotOpenedを起動する。 void file set max mbytes( in string file name, in float max mbytes ) raises (FileError, NotOpened, SpecialFile); //交換用のログ・ファイルの最大数を変更する //(file_name.1, .2等)。 //このファイルに現在ログ出力がない場合、 //NotOpenedを起動する。 void file set swap count( in string file name, in long swap count ) raises (FileEtrror, NotOpened, SpecialFile); //このインタフェースのバージョン readonly attribute Version spy interface version; }; //サーバ・スパイ(ServerSpy)インタフェース }; #endif // _SERVER_SPY_IDL
【0058】
【発明の効果】本発明によって、分散オブジェクト・プ
ログラミング環境においてリモート・コンピュータ上の
管理情報、及びサーバ処理の挙動を取得して修正するた
めのコンピュータに実装されたシステム、及び方法が提
供される。
【図面の簡単な説明】
【図1】サーバ・スパイ・オブジェクトを使用するため
の分散コンピュータのシステムを例示する図である。
【図2】様々なサーバを支援するホスト・コンピュータ
の構成を例示する図である。
【図3】サーバ内の使用されていないオブジェクトを自
動的に割り当て解除する処理のフローチャートである。
【図4】ログ・ファイルを操作する処理のフローチャー
トである。
【図5】ログ・ファイルの集合を交換する処理のフロー
チャートである。
【図6】サーバに関する状態情報を取得する方法のデー
タフロー図である。
【符号の説明】
101 ホスト・コンピュータ 103 ネットワーク 105 クライアント 107 記憶装置 109 入力装置 111 CPU 113 アドレス指定可能メモリ 115 出力装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アーサー・エイ・ヴァン・ホフ アメリカ合衆国カリフォルニア州94306パ ロ・アルト,ナンバー19,ヴェンチュラ・ アヴェニュー・340 (72)発明者 ロダーリック・ジェイ・マクチェスニー アメリカ合衆国カリフォルニア州94063レ ッドウッド・シティ,グリーンウッド・レ イン・28

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】サーバ処理を実行しているサーバに分散オ
    ブジェクト・インタフェースを提供するためのコンピュ
    ータ・システムであって、前記システムが、 少なくとも1つの、マシン読み取り可能で実行可能な構
    造の分散オブジェクトを含み、サーバ処理を実行してい
    るサーバ、及びサーバ処理に関する実行時情報を提供す
    るよう適応された、少なくとも1つのマシン実行可能構
    造を含むサーバ内にあり、サーバの外部のオブジェクト
    に対して利用可能なインタフェースを有する、少なくと
    も1つの第1クラス・オブジェクトを含むことを特徴と
    する、前記システム。
  2. 【請求項2】サーバ処理に関する処理識別コードを決定
    するよう適応された、マシン実行可能構造を更に含むこ
    とを特徴とする、請求項1に記載のコンピュータ・シス
    テム。
  3. 【請求項3】サーバ内の各分散オブジェクトがオブジェ
    クト実施のインスタンスであり、活動、アイドル、また
    は非活動のいずれかの状態であり、 サーバ内の明確な複数のオブジェクト実施を決定するよ
    う適応された第1のマシン実行可能構造、及び各オブジ
    ェクト実施毎に、オブジェクト実施の複数の活動オブジ
    ェクトを決定するよう適応された、第2のマシン実行可
    能構造を更に含むことを特徴とする、請求項1に記載の
    コンピュータ・システム。
  4. 【請求項4】サーバ処理を記憶するための主記憶装置、 前記主記憶装置内でサーバ処理としてサーバを実行する
    ための処理装置であって、前記主記憶装置内の前記サー
    バ処理が、前記処理装置によってサーバ処理の一部とし
    て実行可能な少なくとも1つのオブジェクトを含む前記
    処理装置、及び前記主記憶装置内に記憶され、サーバ内
    に含まれるオブジェクト実施とオブジェクト・インスタ
    ンスの記憶された表現を有する記憶構造を更に含み、こ
    こで、前記処理装置が、処理識別コードを生成するサー
    バ処理を実行し、 第2のマシン実行可能構造が前記記憶構造を読み取っ
    て、明確なオブジェクト実施の数を判定し、及び第3の
    マシン実行可能構造が前記記憶構造を読み取って、活動
    オブジェクトの数を判定することを特徴とする、請求項
    3に記載のコンピュータ・システム。
  5. 【請求項5】サーバ内のアイドル状態のオブジェクトに
    よって保持されている資源の自動割り当て解除を、使用
    可能及び使用不能にするよう適用されたマシン実行可能
    構造、 アイドル状態のオブジェクトの自動割り当て解除のサイ
    クル時間を設定するよう適応されたマシン実行可能構
    造、及び時間間隔が最大時間間隔以上になった後に、サ
    ーバが自動的にシャットダウンされるように、第1クラ
    ス・オブジェクトを含むサーバがアイドル状態でありう
    る前記最大時間間隔を設定するように適応されたマシン
    実行可能構造を更に含むことを特徴とする、請求項1に
    記載の少なくとも1つの第1クラス・オブジェクト。
  6. 【請求項6】サーバ内に含まれる少なくとも1つの機能
    を識別するよう適用されたマシン読み取り可能構造、 ユーザ指定可能機能と機能内のトレース・フラグの組を
    使用可能とするよう適応されたトレース使用可能マシン
    実行可能構造、及びユーザ指定可能機能と機能内のトレ
    ース・フラグの組を使用不能とするよう適応されたトレ
    ース使用不能マシン実行可能構造を更に含むことを特徴
    とする、請求項1に記載の少なくとも1つの第1クラス
    ・オブジェクト。
  7. 【請求項7】サーバ内の機能によって出力されるトレー
    ス情報が、オペレーティング・システム・メッセージ・
    ログに組み込まれるかどうかを示すよう適用されたマシ
    ン実行可能構造、及びサーバ内の機能によって出力され
    たトレース情報を記憶するために、少なくとも1つのロ
    グ・ファイルを指定するよう適応されたマシン実行可能
    構造を更に含むことを特徴とする、請求項6に記載の少
    なくとも1つの第1クラス・オブジェクト。
  8. 【請求項8】サーバ内のオブジェクトを実施して、サー
    バを実行しているサーバ処理に関する実行時情報を提供
    する、コンピュータに実装された方法が、 第1クラス・オブジェクトに関するオブジェクト・イン
    タフェース定義言語ファイルを定義するステップであっ
    て、前記ファイルが、 サーバ処理に関する処理識別番号を得るための第1の属
    性、または動作に対するインタフェース、及びサーバ処
    理を実行しているコンピュータに関するホスト名を得る
    ための第2の属性、または動作に対するインタフェース
    を指定する、前記ステップ、 第1及び第2の属性または動作に関する第1クラス・オ
    ブジェクトのソース・コードをそれぞれ指定する実施フ
    ァイルを定義するステップ、 サーバ機能を実行するために、少なくとも1つのオブジ
    ェクトをコンパイルするステップであって、前記オブジ
    ェクトはサーバ・ファイルを作成するためにサーバに組
    み込まれている、前記ステップ、 第1クラス・オブジェクトのインタフェース定義言語フ
    ァイルをコンパイルして、第1クラス・オブジェクトの
    実施ファイルに対して第1クラス・オブジェクトのイン
    タフェース定義言語ファイルをインタフェースさせるた
    めのソース・コード・ファイルの組を作成するステッ
    プ、 前記ソース・コード・ファイルと第1クラス・オブジェ
    クトの実施ファイルをコンパイルして、第1クラス・オ
    ブジェクト・ファイルを作成するステップ、 前記第1クラス・オブジェクト・ファイルをコンパイル
    されたサーバ・ファイルに対してリンクし、実行可能サ
    ーバ・ファイルを作成するステップ、及び前記サーバ・
    ファイルを実行して、第1クラス・オブジェクトのイン
    スタンスを含むサーバ処理を作成するステップを含むこ
    とを特徴とする、前記方法。
  9. 【請求項9】分散オブジェクト環境においてサーバに関
    する現在状態情報を判定するための、コンピュータに実
    装された方法であって、 サーバ外部の第1オブジェクト内で、クライアント・オ
    ブジェクトから要求を受け取り、サーバに関する現在状
    態情報を判定するステップ、 サーバ内で実施されていることが知られている第2オブ
    ジェクトに関して、第1オブジェクトから動作を呼び出
    すステップであって、前記動作がサーバの現在状態情報
    を判定する、前記ステップ、 前記第2オブジェクトの動作を実行して、現在状態情報
    を判定するステップ、及び前記現在状態情報を前記第1
    オブジェクトに提供するステップを含むことを特徴とす
    る、前記方法。
  10. 【請求項10】前記第2オブジェクトがサーバ・スパイ
    ・オブジェクトであることを特徴とする、請求項9に記
    載の方法。
  11. 【請求項11】受け取りステップの前に、 サーバ内で少なくとも1つの第2オブジェクトを実施す
    るステップであって、各第2オブジェクトが、サーバに
    関する現在状態情報を判定するための少なくとも1つの
    動作を有する、前記ステップを更に含むことを特徴とす
    る、請求項9に記載の方法。
  12. 【請求項12】前記第2オブジェクトの動作が、サーバ
    の処理識別子を提供することを特徴とする、請求項9に
    記載の方法。
  13. 【請求項13】前記第2オブジェクトの動作が、サーバ
    内の活動オブジェクトのカウントを提供することを特徴
    とする、請求項9に記載の方法。
  14. 【請求項14】前記第2オブジェクトの動作が、サーバ
    内で実施されているオブジェクトのカウントを提供する
    ことを特徴とする、請求項9に記載の方法。
  15. 【請求項15】前記第2オブジェクトの動作が、サーバ
    内のトレース機能のリストを提供することを特徴とす
    る、請求項9に記載の方法。
  16. 【請求項16】前記第2オブジェクトの第2の動作が、
    サーバ内の少なくとも1つのトレース機能を使用可能に
    することを特徴とする、請求項15に記載の方法。
  17. 【請求項17】前記第2オブジェクトの第2の動作が、
    トレース機能内の少なくとも1つのトレース・フラグを
    選択的に使用可能にすることを特徴とする、請求項15に
    記載の方法。
  18. 【請求項18】前記第2オブジェクトの動作が、サーバ
    を実行した結果の状態に関するトレース、及びログ情報
    を出力するためのログ・ファイルを指定することを特徴
    とする、請求項9に記載の方法。
  19. 【請求項19】前記第2オブジェクトの第2の動作が、
    交換基準に基づいて使用されるログ・ファイルの数を設
    定することを特徴とする、請求項18に記載の方法。
  20. 【請求項20】前記第2オブジェクトの動作が、サーバ
    がアイドル状態となっている最大時間間隔を設定し、 前記最大時間間隔以上の時間が経過した後に、サーバを
    シャットダウンさせるステップを更に含むことを特徴と
    する、請求項9に記載の方法。
  21. 【請求項21】前記第2オブジェクトの動作が、サーバ
    内のアイドル状態のオブジェクトによって保持されてい
    る資源を自動的に割り当て解除するためのサイクル時間
    を設定することを特徴とする、請求項9に記載の方法。
  22. 【請求項22】前記第2オブジェクトの第2の動作が、
    サーバ内のアイドル状態のオブジェクトによって保持さ
    れている資源の自動割り当て解除を使用可能にすること
    を特徴とする、請求項21に記載の方法。
JP8079022A 1995-03-30 1996-04-01 第1クラス分散オブジェクトを使用して分散オブジェクト・サーバを制御、管理するシステム、及び方法 Expired - Fee Related JP2915842B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/413,402 US5802291A (en) 1995-03-30 1995-03-30 System and method to control and administer distributed object servers using first class distributed objects
US413402 1995-03-30

Publications (2)

Publication Number Publication Date
JPH0916532A true JPH0916532A (ja) 1997-01-17
JP2915842B2 JP2915842B2 (ja) 1999-07-05

Family

ID=23637082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8079022A Expired - Fee Related JP2915842B2 (ja) 1995-03-30 1996-04-01 第1クラス分散オブジェクトを使用して分散オブジェクト・サーバを制御、管理するシステム、及び方法

Country Status (5)

Country Link
US (1) US5802291A (ja)
EP (1) EP0735469B1 (ja)
JP (1) JP2915842B2 (ja)
CA (1) CA2171571C (ja)
DE (1) DE69625636T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574425B2 (en) * 2004-12-03 2009-08-11 International Business Machines Corporation System and method for query management in a database management system
JP2013539111A (ja) * 2010-08-16 2013-10-17 シマンテック コーポレーション キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3865775B2 (ja) 1995-04-11 2007-01-10 キネテック インコーポレイテッド データ処理システムにおけるデータの識別
US5809248A (en) * 1995-07-05 1998-09-15 Sun Microsystems, Inc. Method and apparatus for front end navigator and network architecture for performing functions on distributed files in a computer network
US6138140A (en) * 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US6625641B1 (en) * 1996-06-03 2003-09-23 Sun Microsystems, Inc. Method and apparatus for providing client support without installation of server software
US6272555B1 (en) * 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6710786B1 (en) 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6845505B1 (en) * 1997-02-03 2005-01-18 Oracle International Corporation Web request broker controlling multiple processes
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6631425B1 (en) * 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US6813769B1 (en) * 1997-10-28 2004-11-02 Microsoft Corporation Server application components with control over state duration
US6134594A (en) 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US6334114B1 (en) 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
US6266695B1 (en) * 1997-12-23 2001-07-24 Alcatel Usa Sourcing, L.P. Telecommunications switch management system
FR2773241B1 (fr) * 1997-12-30 2001-09-07 Bull Sa Procede d'assistance a l'administration d'une application distribuee basee sur un fichier binaire de configuration dans un systeme informatique
US8296396B2 (en) 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
US7054935B2 (en) * 1998-02-10 2006-05-30 Savvis Communications Corporation Internet content delivery network
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6260063B1 (en) 1998-03-17 2001-07-10 Sony Coporation Method and apparatus for representing devices and available information within a network of devices using object lists and object entries
US6553403B1 (en) * 1998-06-03 2003-04-22 International Business Machines Corporation System, method and computer program product for monitoring in a distributed computing environment
US6549932B1 (en) * 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6173313B1 (en) * 1998-06-24 2001-01-09 Oracle Corporation Methodology for hosting distributed objects at a predetermined node in a distributed system
US6526416B1 (en) 1998-06-30 2003-02-25 Microsoft Corporation Compensating resource managers
US6571273B1 (en) * 1998-07-13 2003-05-27 Yokogawa Electric Corporation Process control system
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US7103646B1 (en) * 1998-08-07 2006-09-05 Hitachi, Ltd. Distributed control system and information processing system
US6473791B1 (en) 1998-08-17 2002-10-29 Microsoft Corporation Object load balancing
US6425017B1 (en) 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6442620B1 (en) 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
US6286047B1 (en) * 1998-09-10 2001-09-04 Hewlett-Packard Company Method and system for automatic discovery of network services
US6272675B1 (en) * 1998-10-01 2001-08-07 Unisys Corporation Development system for automatically enabling a server application to execute with an XATMI-compliant transaction manager managing transactions within multiple environments
US6782386B1 (en) * 1998-11-09 2004-08-24 Unisys Corporation Method and apparatus for remotely debugging applications via a user terminal
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6574736B1 (en) 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
US6385724B1 (en) 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
US6738778B1 (en) * 1998-12-11 2004-05-18 International Business Machines Corporation Method and apparatus for monitoring the execution of a program
US6772207B1 (en) 1999-01-28 2004-08-03 Brocade Communications Systems, Inc. System and method for managing fibre channel switching devices
US6473894B1 (en) 1999-01-29 2002-10-29 International Business Machines Corporation Dynamic runtime and test architecture for Java applets
US6453320B1 (en) * 1999-02-01 2002-09-17 Iona Technologies, Inc. Method and system for providing object references in a distributed object environment supporting object migration
US6721898B1 (en) 1999-02-03 2004-04-13 William H. Gates, III Method and system for tracking software components
US6670934B1 (en) 1999-02-03 2003-12-30 William H. Gates, III Method and system for distributing art
US6970925B1 (en) 1999-02-03 2005-11-29 William H. Gates, III Method and system for property notification
US6993771B1 (en) 1999-02-03 2006-01-31 William H. Gates, III Method and system for managing software components
AU3357100A (en) * 1999-02-03 2000-08-25 Gates, William H. Iii Method and system for tracking software components
US6286010B1 (en) * 1999-02-19 2001-09-04 Novell, Inc. Methods and apparatuses for interaction between schemata
US6829770B1 (en) 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6748455B1 (en) 1999-02-23 2004-06-08 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events with filtering
FR2790627B1 (fr) * 1999-03-04 2001-05-04 Cit Alcatel Procede pour avertir un objet de l'inaccessibilite d'autres objets dans un environnement d'objets distribues
US6470388B1 (en) * 1999-06-10 2002-10-22 Cisco Technology, Inc. Coordinated extendable system for logging information from distributed applications
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US7200651B1 (en) 1999-07-02 2007-04-03 Cisco Technology, Inc. Dynamic configuration and up-dating of integrated distributed applications
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
AU2079701A (en) * 1999-12-08 2001-06-18 Sun Microsystems, Inc. Technique for configuring network deliverable components
US6920636B1 (en) 1999-12-15 2005-07-19 Microsoft Corporation Queued component interface passing for results outflow from queued method invocations
KR100333486B1 (ko) * 1999-12-27 2002-04-25 오길록 객체지향 고 수준 언어에서 병행객체 관리 방법
US20040259774A1 (en) * 2000-03-08 2004-12-23 Enrique Alvarez Therapeutic polypeptides, nucleic acids encoding same, and methods of use
US20010047387A1 (en) * 2000-03-27 2001-11-29 Exoplex, Inc. Systems and methods for providing distributed cross-enterprise portals
KR100357850B1 (ko) * 2000-03-29 2002-10-25 삼성전자 주식회사 코버플락시모듈을 이용한 다양한 프로토콜 공통 서비스를위한 분산객체 지향 통신시스템 및 그 방법
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US7065556B1 (en) * 2000-09-14 2006-06-20 Hewlett-Packard Development Company, L.P. Method and system for logging event data and persistently downloading the same
US6769118B2 (en) * 2000-12-19 2004-07-27 International Business Machines Corporation Dynamic, policy based management of administrative procedures within a distributed computing environment
US20030023898A1 (en) * 2001-07-16 2003-01-30 Jacobs Dean Bernard Layered architecture for data replication
US6918013B2 (en) * 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
US7571215B2 (en) * 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
US20030046230A1 (en) * 2001-08-30 2003-03-06 Jacobs Dean Bernard Method for maintaining account consistency
US7028030B2 (en) * 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US20030046335A1 (en) * 2001-08-30 2003-03-06 International Business Machines Corporation Efficiently serving large objects in a distributed computing network
WO2003023633A1 (en) * 2001-09-06 2003-03-20 Bea Systems, Inc. Exactly once cache framework
US7113980B2 (en) 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US6826601B2 (en) * 2001-09-06 2004-11-30 Bea Systems, Inc. Exactly one cache framework
US7822871B2 (en) 2001-09-28 2010-10-26 Level 3 Communications, Llc Configurable adaptive global traffic control and management
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
JP2003167862A (ja) * 2001-11-30 2003-06-13 Nec Corp 分散オブジェクト・システムにおけるオブジェクトの所在を特定するための装置、方法及びプログラム
US7930704B2 (en) * 2002-02-06 2011-04-19 Oracle International Corporation J2EE component extension architecture
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US7403996B2 (en) * 2002-02-21 2008-07-22 Bea Systems, Inc. Systems and methods for migratable services
US7275097B2 (en) * 2002-02-21 2007-09-25 Precise Software Solutions Ltd. System and method for analyzing input/output activity on local attached storage
US7506342B2 (en) * 2002-07-23 2009-03-17 Bea Systems, Inc. System and method for implementing J2EE connector architecture
US7698434B2 (en) * 2002-08-29 2010-04-13 Bea Systems, Inc. J2EE connector architecture
US7448066B2 (en) * 2002-09-19 2008-11-04 International Business Machines Corporation Application server object-level security for distributed computing domains
US7533157B2 (en) * 2002-12-24 2009-05-12 International Business Machines Corporation Method for delegation of administrative operations in user enrollment tasks
US7337318B2 (en) * 2003-02-27 2008-02-26 International Business Machines Corporation Method and apparatus for preventing rogue implementations of a security-sensitive class interface
US7756968B1 (en) 2003-12-30 2010-07-13 Sap Ag Method and system for employing a hierarchical monitor tree for monitoring system resources in a data processing environment
US7941521B1 (en) 2003-12-30 2011-05-10 Sap Ag Multi-service management architecture employed within a clustered node configuration
US7822826B1 (en) 2003-12-30 2010-10-26 Sap Ag Deployment of a web service
US8166152B1 (en) 2003-12-30 2012-04-24 Sap Ag Architecture and method for monitoring system resources within an enterprise network
US7725572B1 (en) 2003-12-30 2010-05-25 Sap Ag Notification architecture and method employed within a clustered node configuration
EP1555772A3 (en) * 2004-01-15 2013-07-17 Yamaha Corporation Remote control method of external devices
US7526550B2 (en) * 2004-03-26 2009-04-28 Sap Ag Unified logging service with a log viewer
US7721266B2 (en) * 2004-03-26 2010-05-18 Sap Ag Unified logging service with a logging formatter
GB2412755A (en) * 2004-03-30 2005-10-05 Hewlett Packard Development Co Coordination of lifecycle state changes in software components
JP2006092314A (ja) * 2004-09-24 2006-04-06 Konica Minolta Business Technologies Inc 装置管理システム及び管理サーバ
US7480678B2 (en) * 2004-10-29 2009-01-20 International Business Machines Corporation Creating reference objects
US8806490B1 (en) 2004-12-08 2014-08-12 Cadence Design Systems, Inc. Method and apparatus for managing workflow failures by retrying child and parent elements
US8244854B1 (en) 2004-12-08 2012-08-14 Cadence Design Systems, Inc. Method and system for gathering and propagating statistical information in a distributed computing environment
US8108878B1 (en) 2004-12-08 2012-01-31 Cadence Design Systems, Inc. Method and apparatus for detecting indeterminate dependencies in a distributed computing environment
US7979870B1 (en) * 2004-12-08 2011-07-12 Cadence Design Systems, Inc. Method and system for locating objects in a distributed computing environment
CA2627073A1 (en) * 2005-10-24 2007-05-03 Accenture Global Services Gmbh Dynamic server consolidation and configuration
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US20070260641A1 (en) * 2006-05-02 2007-11-08 Mypoints.Com Inc. Real-time aggregate counting in a distributed system architecture
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CA2720353C (en) 2008-04-04 2016-01-19 Level 3 Communications, Llc Handling long-tail content in a content delivery network (cdn)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
JP5228943B2 (ja) * 2009-01-27 2013-07-03 富士通株式会社 最小権限違反検出プログラム
CN102843398B (zh) * 2011-06-23 2017-08-25 索尼公司 遥控设备、远端设备、多媒体系统及其控制方法
US10009248B2 (en) * 2014-12-12 2018-06-26 International Business Machines Corporation System with on-demand state for applications
CN111061487A (zh) * 2019-12-16 2020-04-24 厦门市美亚柏科信息股份有限公司 一种基于容器的负载均衡分布式编译系统和方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68929162T2 (de) * 1989-07-21 2000-11-16 Hewlett Packard Co Verteilte auf Objekte basierende Systeme
US5335339A (en) * 1990-11-22 1994-08-02 Hitachi, Ltd. Equipment and method for interactive testing and simulating of a specification of a network system
US5475625A (en) * 1991-01-16 1995-12-12 Siemens Nixdorf Informationssysteme Aktiengesellschaft Method and arrangement for monitoring computer manipulations
US5379426A (en) * 1991-01-25 1995-01-03 Sun Microsystems, Inc. Method and apparatus for object oriented interprocess message switching
DE69216020T2 (de) * 1991-03-07 1997-07-10 Digital Equipment Corp Verbessertes fehlersuchsystem und -verfahren, besonders für die fehlersuche in einer multi-architekturumgebung
JPH07113912B2 (ja) * 1991-05-31 1995-12-06 富士ゼロックス株式会社 分散型情報処理システムのデバッグ方式
JPH0774984B2 (ja) * 1991-06-10 1995-08-09 インターナショナル・ビジネス・マシーンズ・コーポレイション システム資源利用率測定方法とデータ処理システム
JP3055970B2 (ja) * 1991-06-20 2000-06-26 富士通株式会社 オブジェクト指向言語間インタフェース実現方法および装置
US5450586A (en) * 1991-08-14 1995-09-12 Hewlett-Packard Company System for analyzing and debugging embedded software through dynamic and interactive use of code markers
US5265254A (en) * 1991-08-14 1993-11-23 Hewlett-Packard Company System of debugging software through use of code markers inserted into spaces in the source code during and after compilation
DE69220093T2 (de) * 1992-06-18 1997-12-04 Ibm Verarbeitungsnetzwerk für verteilte anwendungsprogramme.
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US5421004A (en) * 1992-09-24 1995-05-30 International Business Machines Corporation Hierarchical testing environment
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system
US5423042A (en) * 1992-10-23 1995-06-06 International Business Machines Corporation Remote procedure execution
EP0604010B1 (en) * 1992-12-21 1999-12-29 Sun Microsystems, Inc. Method and apparatus for subcontracts in distributed processing systems
EP0636985B1 (en) * 1993-07-27 1998-04-08 International Business Machines Corporation Process monitoring in a multiprocessing server
US5555376A (en) * 1993-12-03 1996-09-10 Xerox Corporation Method for granting a user request having locational and contextual attributes consistent with user policies for devices having locational attributes consistent with the user request
US5522071A (en) * 1994-01-18 1996-05-28 Sybase, Inc. Run-time message redirection for invoking object oriented methods based on alternate dispatch variable
JPH07225707A (ja) * 1994-02-10 1995-08-22 Fujitsu Ltd アプリケーションのテスト方法及びそのテスト支援装置
US5581765A (en) * 1994-08-30 1996-12-03 International Business Machines Corporation System for combining a global object identifier with a local object address in a single object pointer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574425B2 (en) * 2004-12-03 2009-08-11 International Business Machines Corporation System and method for query management in a database management system
JP2013539111A (ja) * 2010-08-16 2013-10-17 シマンテック コーポレーション キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法

Also Published As

Publication number Publication date
JP2915842B2 (ja) 1999-07-05
EP0735469A3 (en) 1997-01-22
US5802291A (en) 1998-09-01
DE69625636D1 (de) 2003-02-13
EP0735469B1 (en) 2003-01-08
DE69625636T2 (de) 2003-11-06
EP0735469A2 (en) 1996-10-02
CA2171571A1 (en) 1996-10-01
CA2171571C (en) 1999-09-21

Similar Documents

Publication Publication Date Title
JP2915842B2 (ja) 第1クラス分散オブジェクトを使用して分散オブジェクト・サーバを制御、管理するシステム、及び方法
US5857102A (en) System and method for determining and manipulating configuration information of servers in a distributed object environment
US8788569B2 (en) Server computer system running versions of an application simultaneously
US8166470B2 (en) Method for replacing code in a running object oriented program
US5692183A (en) Methods and apparatus for providing transparent persistence in a distributed object operating environment
US8984534B2 (en) Interfacing between a receiving component of a server application and a remote application
US6678883B1 (en) Apparatus and method for creating a trace file for a trace of a computer program based on loaded module information
US8095823B2 (en) Server computer component
US6988263B1 (en) Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs
US7089561B2 (en) Methods and systems for creating and communicating with computer processes
US6766511B1 (en) Apparatus and method for performing symbolic resolution of modules using static representations of a trace
US6826746B2 (en) Debugger probe for object oriented programming
US20090172636A1 (en) Interactive development tool and debugger for web services
US20030233634A1 (en) Open debugging environment
US6272518B1 (en) System and method for porting a multithreaded program to a job model
US8141104B2 (en) Integrating non-compliant providers of dynamic services into a resource management infrastructure
JPH10511202A (ja) オブジェクト指向環境における回復可能プロキシ・オブジェクト
US20040111707A1 (en) Debugger for multiple processors and multiple debugging types
US6708169B1 (en) Apparatus and method for generating a merged symbol file for verifying symbolic data
US20080034352A1 (en) System and method for determining unimportant probe locations by examination of byte code to identify method by name pattern
WO2000062160A2 (en) Method and system for dynamic injection of execution logic into a windowed operating system
CA2234796C (en) Portable object-oriented operating system
US20040010779A1 (en) Multi-module interpreter
Geist Advanced programming in PVM
Buhr et al. µSystem annotated reference manual

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees