JP2001188704A - 時間の制約を持つ分散アプリケーションのためのガーベージコレクション方法 - Google Patents

時間の制約を持つ分散アプリケーションのためのガーベージコレクション方法

Info

Publication number
JP2001188704A
JP2001188704A JP2000335299A JP2000335299A JP2001188704A JP 2001188704 A JP2001188704 A JP 2001188704A JP 2000335299 A JP2000335299 A JP 2000335299A JP 2000335299 A JP2000335299 A JP 2000335299A JP 2001188704 A JP2001188704 A JP 2001188704A
Authority
JP
Japan
Prior art keywords
time interval
garbage collection
device server
call
hibernation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000335299A
Other languages
English (en)
Inventor
Prakash Iyer
イアー プラカッシュ
Murali Aravamudan
アラバムダン ムーラリ
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies 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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of JP2001188704A publication Critical patent/JP2001188704A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 本発明は、時間に制約を持つ分散アプリケー
ションに対するガーベージコレクション方法に関する。 【解決手段】 ガーベージコレクティング仮想マシーン
上で分散プロセスを実行するための方法が開示される。
より詳細には、ガーベージコレクションが、幾つかのタ
イミング変数、例えば、あるプロセスが次のガーベージ
コレクションサイクルを必要とするまでの時間、プロセ
ス冬眠時間、およびプロセス当たりの実際の総ガーベー
ジコレクション時間の関数として配布される。長所とし
て、分散アプリケーションプログラムはガーベージコレ
クティング仮想マシーン上で、ガーベージコレクション
プロセスの結果としての処理上の悪影響を受けることな
く実行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散システムにお
けるメモリ管理、より詳細には、このようなシステムに
おけるガーベージコレクションに関する。
【0002】
【従来の技術】従来のコンピュータシステムにおいて
は、アプリケーションはマイクロプロセッサによって実
行され、マイクロプロセッサは、必然的に、データおよ
びインストラクションを格納するためにメモリ位置を使
用する。メモリの内容は時間とともに変化し、このた
め、様々な異なる時刻において、あるメモリ位置は、割
り当てられていると、つまり、使用されていると呼ばれ
たり、あるいは割り当てられていないと、つまり、使用
されていないと呼ばれたりする。より具体的には、割り
当てられているメモリ位置とは、通常のプログラムの実
行の際に他の割り当てられているメモリ位置によって参
照されるデータあるいはインストラクションを含むメモ
リ位置を意味する。
【0003】例えば、近年のオブジェクト指向コンピュ
ーティングにおいては、“オブジェクト(object)”と
は、特定の属性を共有し、メモリの連続する領域を占拠
するデータを意味する。ある与えられたコンピュータシ
ステム内の全てのオブジェクトが永久的なものである場
合は、メモリの管理に関する実際的な関心は存在しな
い。つまり、プログラムの実行の開始時に各オブジェク
トに割り当てられたメモリ空間は決して変化することは
ない。ただし、殆どの従来のオブジェクト指向システム
においては、オブジェクトは事前に予測することが不可
能な変化する寿命を持ち、このため、メモリ位置は、割
り当てられている状態と割り当てられてない状態の間を
遷移する。メモリの効率的な利用を促すためには、割り
当てられてないメモリ位置を“再生(reclaimed)”し、
後に必要に応じて割り当てることができるようにするこ
とが要求される。
【0004】“ガーベージ(garbage)”は、コンピュ
ータ科学においては良く知られた用語であり、これは、
例えば、アプリケーションプログラムの実行においても
はや使用されなくなったデータを含むメモリ格納位置を
指す。“ガーベージコレクション(garbage collectio
n)”も、当分野において良く知られている用語であ
り、ガーベージを識別し、これらメモリ位置を将来の割
り当てのために再生するための自動的な技法を記述する
ために用いられる。アクセス可能であり、従って、潜在
的に使用中のデータ(potentially in-use data)、例
えばオブジェクトを自動的に識別することで、ガーベー
ジコレクションルーチンは、コンピュータプログラマに
代わって、メモリの割り当て/再割り当てというエラー
を犯しやすいタスクを引き受ける。コンピュータプログ
ラマをこのような下位の細部から解放することで、ガー
ベージコレクションは、少なくとも、プログラムコード
の品質の向上、プログラマの生産性の向上、およびプロ
グラム開発コストの削減に寄与する。
【0005】勿論、ガーベージコレクションと関連する
多くの長所は、計算資源の観点からは“無料(free)”
ではない。従来のガーベージコレクション技法、例え
ば、“ストップ&コピー(stop & copy)”、“ マーク
&スイープ(mark & sweep)”、および“参照カウンテ
ィング(reference counting)”が、例えば、Paul Wil
son,“Uniprocessor Garbage Collection Technique
s”,In International Workshop on Memory Manegemen
t,SpringerュVerlag,1992、およびRichard Jones et a
l.,Garbage Collection Algorithms for Automatic Dyn
amic Memory Manegement,John Wiley & Sons,1996、に
おいて述べられている。これら伝統的なガーベージコレ
クション技法と関連するコストは、例えば、メモリ使用
の増加、データアクセスの際の実行時間オーバーヘッ
ド、およびプログラムの実行における破壊的な遅延の組
合せとしてその姿を現す。例えば、ストップ&コピーガ
ーベージコレクションは、生きた、つまり、割り当てら
れているデータのコピーを作成するために、多量の追加
のメモリを必要とする。これは、このようなガーベージ
コレクタが、第一のメモリ空間全体を再生するために、
定期的に全ての到達可能なオブジェクトを第二のメモリ
空間にコピーするという事実のために起こる。
【0006】上述のようなガーベージコレクション技法
に生来的なコストの問題を解決するために、ガーベージ
コレクションルーチンの開発者は、ガーベージコレクシ
ョンがアプリケーションの実行と同時的に発生するよう
に、それらの設計に同時性を組み込む。より具体的に
は、同時ガーベージコレクション技法は、大別すると以
下の2つのクラスのどちから一方に入る:(1)マーク
&スイープコレクタの変種。これに関しては、例えば、
E.W.Dijkstra et al.“Onュtheュfly garbage collectio
n: An exercise in cooperation”,Communications of
the ACM,21(11):966-975,November 1978、およびG.L.St
eele,Jr.,“Multiprocessing compactifying garbage c
ollection”,Communications of the ACM,18(9):495-50
8,September1975を参照されたい。(2)増分的生成コ
レクタ。これに関しては、例えば、G.H.Baker,“List p
rocessing in real time on serial computer”,Commun
ications of the ACM,21(4):280-294,April 1978、A.W.
Appel et al.,“Real-time concurrent collection on
stock multiprocesors”,In Conference on Programmin
g Language Design and Implementation,pp.11ュ20,June
1998, およびS.Nettles et al.,“Replicationュbased
real-time garbage collection”,In Conference on Pr
ogramming Language Design and Implementation,Assoc
iation for Computing Machunery,June 1993を参照され
たい。
【0007】理解できるように、上で詳細に述べられた
ようなガーベージコレクションルーチンを、従来の関数
プログラミング言語、例えば、CあるいはC++を用いて定
義および実装するタスクは、最終的にはプログラム開発
者に委ねられる。例えば、周知のワールドワイドウエブ
(“WWW”)を介してプログラムを実行するための、
新に出現中の、いわゆるJava(登録商標)バイトコード
の、特に、アプレットの形式での使用は、巨大なプログ
ラミング上の成長および技術的焦点の一つのエリアを構
成する。周知のように、Javaは、ユーザが、プラッ
トホームの能力や網のセキュリティについて心配するこ
となく、周知のインターネットを横断して使用および実
行することができるアプリケーションを作成することを
可能とするポピュラーなプログラミング言語である。つ
まり、Javaは、プラットホームに中立な言語であ
り、これは、Javaを用いて開発されたプログラム
は、いかなる修正も必要とされることなく、任意のコン
ピュータシステム上で実行できることを意味する。この
ようなプラットホーム独立性は、“バイトコード(byte
codes)”と呼ば れるコンパイルされたJavaプログ
ラムに対する特別なフォーマットを用いることに由来す
る。これらは、従来のマシーンコードと類似するが、た
だし、任意の一つのプロセッサに限定されないセットの
インストラクションから成り、このため、Javaバイ
トコードは、Javaインタプリッタを備えるあらゆる
コンピュータシステムによって読み出し、実行すること
ができる。
【0008】これは、非Javaプログラミング言語、
例えば、周知のCプログラミング言語に対するコンパイ
ラとは対照的であり、これらコンパイラは、ソースプロ
グラムを特定のプロセッサあるいはコンピュータシステ
ムに限定されたマシーンコードあるいはプロセッサイン
ストラクションに翻訳する。このような非Javaシス
テムにおいては、ある人が同一のプログラムを別のコン
ピュータシステム上で使用することを希望する場合、ソ
ースプログラムを見つけ、これを、再コンパイルのため
に、別のシステムに対するコンパイラに入力として提供
することが必要となる。その後、再コンパイルされたプ
ログラムは、別のコンピュータシステム上で実行するこ
とが可能となる。これとは対象的に、Javaプログラ
ムを実行するためには、JavaバイトコードがJav
aコンパライによって生成され(ソースプログラムをJ
avaバイトコードにコンパイルすることでJavaプログ
ラムが生成され)、次に、これらがJavaインタプリ
ッタ、つまり、バイトコードインタプリッタによって実
行される。こうして、Javaプログラムをバイトコー
ドの形式にすることで、これらプログラムを、Java
インタプリッタが利用できる限り、あらゆるプラットホ
ーム、オペレーティングシステム、あるいはウインドウ
イングシステムを横断して実行することが可能となる。
こうして、複数のプラットホームを横断して実行可能な
単一の二進ファイル、つまり、Javaバイトコードフ
ァイルを持つ能力は、Javaバイトコードを、特に、
アプレットの形式にて、ワールドワイドウエブを横断し
てプログラムを実行するための共通なやり方とするため
の重要な属性となる。
【0009】理解できるように、クラスファイル(用語
“クラスファイル”と“バイトコードファイル”はここ
では互換的に用いられることに注意する)は、典型的に
は、Javaファイルをコンパイルすることで得られ、
これは、周知のJava仮想マシーン(Java Virtual M
achine、“JVM”)に適当する形式の単一のクラスを表
すバイトトのストリームから成る。Java仮想マシー
ンはバイトコードを実行することで、Javaにオブジ
ェクトの生成およびガーベージコレクションなどの幾つ
かの基本的な能力を提供する。より具体的には、Jav
aは、仮想マシーンベースの言語として、メモリ管理の
全ての曲面を自動的に扱い、こうして、プログラマのタ
スクを軽減する。例えば、ガーベージコレクションを遂
行するために特定のコードモジュールを書く必要性を排
除する。ガーベージコレクションとの関連では、Jav
aにおいてはオブジェクトは自動的にガーベージコレク
トされるために、プログラマは、あるオブジェクトに割
り当てられていたメモリを、あるプロセスによってその
オブジェクトの使用がもはや不要となったとき、手動に
て解放する必要性はなくなり、プログラマはこの作業か
ら解放される。より具体的には、Java仮想マシーン
(JVM)は、パラレルなガーベージコレクションを、
Java環境のガーベージを掃除するための専用の別個
のスレッドを、サイレントに、背景内で、実行すること
で実現する。本質的には、Java仮想マシーン(JVM)
は、このパラレルなガーベージコレクションを、少なく
とも以下の3つの従来のやり方で実現する:(1)Ja
va仮想マシーンは現在のプロセス実行レベルを調べ、
実行レベルが相対的に“低い”場合、使用されなくなっ
たメモリオブジェクトを集めるための別個のガーベージ
コレクションスレッドをスピンオフする;(2)Jav
a仮想マシーン(JVM)はそれが全ての利用可能なメ
モリをもう少しで使い尽くしてしまうことを決定し、使
用されなくなったメモリオブジェクトを集めるための別
個のガーベージコレクションスレッドをスピンオフす
る;(3)プログラム開発者がJava仮想マシーン
(JVM)に対してガーベージコレクションを開始する
ようにリクエストする。
【0010】
【発明が解決しようとする課題】Javaのパラレルガ
ーベージコレクション手法は、ガーベージコレクション
を実現する点、およびメモリ管理動作をほとんど全ての
アプリケーションにおいてプログラマから隠す点におい
ては有効である。ただし、幾つかの時間に敏感なリアル
タイム分散アプリケーションにおいては、Javaのガ
ーベージコレクション動作に幾らかな遅延が伴うため
に、これらアプリケーション(例えば、電話通信システ
ム)内での他の動作に重大な悪影響を及ぼすことがあ
る。
【0011】より具体的には、Javaの従来のガーベ
ージコレクション手続きによると、ガーベージコレクシ
ョンプロセスは、多量のプロセッサ時間、つまり、CP
Uサイクルを消費し、幾らかのメモリ領域をロックする
ために、同一のJava仮想マシーン(JVM)内の他
の現在ランしているスレッドの実行を阻害する。このた
め、このガーベージコレクションプロセスは、幾らかの
非決定論的処理遅延をJava仮想マシーン内で現在実
行中のスレッドに導入する。このような遅延は、アプリ
ケーションの処理に厳しいタイミング要件を課す時間に
敏感なリアルタイムアプリケーションに重大な悪影響を
及ぼす。従って、時間に制約があるプロセスの実行に悪
影響を及ぼすことのない、仮想マシーン上にガーベージ
コレクションを実装するための技法に対する必要性が存
在する。
【0012】
【課題を解決するための手段】本発明の一面は、ガーベ
ージコレクティング仮想マシーン上で分散プロセスを実
行するための方法に向けられる。より詳細には、ガーベ
ージコレクションが、分散プロセス、つまり、アプリケ
ーションに、ガーベージコレクションプロセスがリアル
タイム処理と同時にはランしないようなやり方で配布さ
れる。
【0013】本発明の好ましい実施例によると、資源の
集まりを採用する分散アーキテクチャが定義され、各資
源はガーベージコレクティング仮想マシーン上で実行す
る階層名前空間を陳列(エクスポーズ)する。この好ま
しい実施例のアーキテクチャは、電話サービスを提供す
ることに向けられ、2つの基本的な資源のタイプ、つま
り、1)デバイスサーバと、2)呼コーディネータを備
え、これらが、共通のプロトコル、例えば、“TCP/
IP(伝送制御プロトコル/インターネットプロトコ
ル)を採用する網によって相互接続される。各資源は、
一つ以上の呼に参加することができる。つまり、各資源
は、それに提出された様々なリクエストを仲裁すること
ができる分散ファイルシステムとして機能する。利用可
能な資源間の相互作用は、これらは実質的に独立である
が、従来の“クライアント−サーバ(client-serve
r)”アーキテクチャの原理に従ってエンド・ツウ・エ
ンド通信を実現する。
【0014】より詳細には、呼コーディネータは、従来
の“クライアント−サーバ”アーキテクチャの“クライ
アント”の役割を担い、例えば、これは、様々なデバイ
スサーバに対して、サービスのリクエストを送信する。
呼コーディネータはクライアントであるために、これ
は、これらサーバ、つまり、デバイスサーバあるいはゲ
ートウェイサーバの内の、特定の呼に関して提供されて
いるサービスに対して適当な一つからのサービスをリク
エストすることができる。これらデバイスサーバは、複
数のデバイスサーバ間の相互作用であるいわゆる通信状
態は意識しない。代わりに、通信状態は、呼コーディネ
ータによって維持され、呼コーディネータは、この通信
状態を階層名前空間として陳列する。階層名前空間は、
コンピュータディスクベースの階層ファイルシステムと
類似するが、ただし、階層内に現われる節点と葉が実際
のダイレクトリとファイルではなく、ファイルシステム
の形式にて提供されるメモリ内の他のデータ構造である
点が異なる。加えて、呼コーディネータは、呼の処理を
ステップのシーケンスとして扱い、各ステップは“機能
アプレット(feature applet)”と呼ばれるコンピュー
タにて実行可能なコードの小片にて実現される。
【0015】より詳細には、典型的なデバイスサーバ
は、物理/論理電話デバイスを表し、これは、エンドポ
イントデバイスサーバとゲートウェイデバイスサーバを
含む。エンドポイントデバイスサーバは、通信に対する
コントロール、例えば、キーパッド、インジケータラン
プ、ディスプレイを表し、媒体レンダリング、例えば、
音声のデジタル化、輸送および再構成を遂行する。エン
ドポイントデバイスサーバは、電話デバイスサーバを含
む。ゲートウェイデバイスサーバは、2つのいわゆる
“サイド(sides)”を持つ。一方のサイドは、呼コー
ディネータにとってあたかもそれがデバイスサーバであ
るかのように見えるように実現され、他方のサイドは、
電話サービスの既に存在するアイランド(機能集団)と
インターワークするように適合化されたインタフェース
を備える。ゲートウェイデバイスサーバは、回線デバイ
スサーバを含むこともある。“デバイスサーバ(device
sever)”なる用語において、“サーバ(server)”
は、“クライアント−サーバ”アーキテクチャにおける
従来の意味で用いられ、サーバは、クライアントからの
リクエストを処理し、クライアントリクエストに応答す
るものでないない限り、いかなる行動も起こさない。
【0016】本発明の原理によると、ガーベージコレク
ションが、n個の呼コーディネータがk個の呼を同時に
処理し、有効呼処理容量として(n×k)呼が達成され
るように提供される。本発明の一面によると、少なくと
も2つの呼コーディネータのグループが、負荷共有モー
ドにて展開される。つまり、好ましい実施例によると、
デバイスサーバは、呼リクエストを、グループ内の呼コ
ーディネータの内のアクティブな呼コーディネータとし
て決定された任意の一つに送信する(つまり、任意のア
クティブな状態の呼コーディネータは、呼コーディネー
タのグループの中から決定される)。さらに、任意の特
定の呼コーディネータがある閾値TIに達すると、その
呼コーディネータは、いわゆる“冬眠(hibernatio
n)”状態に入る。TIは、ガーベージコレクションが必
要となるまでの呼コーディネータに割り当て可能な総処
理時間の尺度を表す。冬眠状態に入った呼コーディネー
タは、デバイスサーバに対してそれが現在非アクティブ
であることを示す。デバイスサーバは、こうして、さら
なる通知があるまで、その特定な呼コーディネータを用
いることを差し控え、新たな呼リクエストをルーティン
グするために利用可能なアクティブな呼コーディネータ
を呼コーディネータのグループから選択する。冬眠に入
った呼コーディネータは、ガーベージコレクションを始
動し、ガーベージコレクションサイクルが完了した後
に、デバイスサーバに対して、それが現在新たな呼処理
リクエストを受けることができるようになったことを示
す。こうして、この呼コーディネータは、デバイスサー
バによって現在アクティブであるとマークされる。
【0017】本発明の一面によると、仮想マシーン上の
ガーベージコレクションは、少なくとも、閾値TI(つ
まり、ガーベージコレクションが要求されるまでの呼コ
ーディネータに割り当て可能な総処理時間の尺度)、プ
ロセス冬眠時間TH、およびプロセスに対して要求され
る総ガーベージコレクション時間TGCI、によって支配
される。より具体的には、本発明の好ましい実施例によ
ると、仮想マシーン上のガーベージコレクションは、
(n−1)TI>TH+TGCIなる関係に従って発生す
る。ここで、nは呼コーディネータの総数を表す。重要
なことに、われわれは、TI、TH、およびTGCIの実験
的な導出を通じて、ガーベージコレクションを仮想マシ
ーン上に、現在実行中のプロセスに重大な悪影響を及ぼ
すことなく、配布できることを認識した。
【0018】長所として、本発明によると、分散アプリ
ケーションプログラムは、ガーベージコレクティング仮
想マシーン上で、ガーベージコレクションの結果として
処理への悪影響なしに実行される。
【0019】以下の説明を通じて、特記されない限り、
図面内の類似のエレメント、ブロック、コンポーネント
あるいはセクションは、同一の参照符号によって示され
る。
【0020】
【発明の実施の形態】以下の説明は、本発明の様々な曲
面を、一例として通信サービスの例を用いて詳細に解説
する。ただし、本発明は任意の特定のシステム構成とと
もに用いることに制限されるものではない。本発明は、
代わりに、一般的に、ガーベージコレクティング仮想マ
シーン上で実行される任意の分散型プログラムのアプリ
ケーションであって、ガーベージコレクションの結果と
しての悪い処理影響を除去することが必須である場合に
も適用する。
【0021】ここで用いられる階層名前空間は、木構造
として表現されるコンピュータディスクベースの階層フ
ァイルシステムと類似するが、階層の節点と葉に出現す
るものが実際のダイレクトリとファイルではなく、代わ
りにファイルシステムの形式にて提供されるメモリ内の
他のデータ構造である点が異なる。こうして、階層名前
空間は、いわゆる“RAMディスク”と類似するが、名
前空間がディスクファイルシステムに制限される点が異
なる。
【0022】本発明の好ましい実施例によると、シーム
レス電話サービスが、おのおのが階層名前空間を少なく
とも一つの他の資源に陳列する資源の集まりを採用する
分散アーキテクチャを用いて電話サービスを供給するこ
とで、電話法機能の様々なアイランド(集団)を横断し
て提供される。このような分散型呼システムの詳細な説
明に関しては、本発明と譲受人を同一とする、1998年6
月5日付けで出願された、“Distributed Call System”
なる名称の合衆国特許出願第09/092,495号において開示
されているために、これを参照されたい。
【0023】本発明のコンテキストを提示し、本発明の
理解を完全なものとするために、以下では、上で参照の
分散型呼システムの幾つかの機能について、本発明の好
ましい実施例のコンテクスト内で説明する。好ましい実
施例のアーキテクチャは、2つの基本的な資源タイプ、
すなわち、1)デバイスサーバと、2)コールコーディ
ネータから構成され、これらが共通のプロトコル、例え
ば、TCP/IPを採用するネットワークによって相互
接続される。各資源は一つ以上の呼に参加することがで
きる。つまり、各資源は、それに提出された様々なリク
エストを仲裁することができる分散ファイルシステムと
して機能する。利用可能な様々な資源間の、実質的に独
立な相互作用は、従来の“クライアント−サーバ”アー
キテクチャの原理に従って、エンド・ツウ・エンド通信
を実現する。こうして、階層名前空間を用いることで、
分散アーキテクチャの資源の間の全ての通信はファイル
システム通信のように見える。
【0024】より具体的には、“デバイスサーバ(devi
ce server)”なる用語において、“サーバ(serve
r)”は、“クライアント−サーバ(client-server)”
アーキテクチャにおける従来のやり方で用いられる。つ
まり、サーバは、クライアントからのリクエストに応じ
て動作し、クライアントからのリクエストがない限りい
かなる行動も起こさない。デバイスサーバは、それが呼
コーディネータと通信するために用いるプロトコルに対
するプロトコル状態情報を維持する。各デバイスサーバ
は、自身を階層名前空間として陳列し、デバイスサーバ
によって提供されるサービスを用いたいと希望する任意
のクライアントは、デバイスサーバに、それがあたかも
分散ファイルシステムにアクセスするかのようにアクセ
スする。典型的なデバイスサーバは、物理/論理電話デ
バイスを表し、これは、エンドポイントデバイスサーバ
とゲートウェイデバイスサーバを含む。
【0025】エンドポイントデバイスサーバは、通信に
対に対するコントロール、例えば、キーパッド、インジ
ケータランプおよびディスプレイを表し、媒体レンダリ
ング、例えば、音声のデジタル化、輸送および再構成を
遂行する。エンドポイントデバイスサーバには、電話デ
バイスサーバ;自動アテンダント(例えば、音声メッセ
ージング)サーバ;知能パーソナル通信に対するサー
バ、いゆわる知能エージェント;その他が含まれる。エ
ンドポイントデバイスサーバの一例としては、電話デバ
イスサーバがある。電話デバイスサーバは、典型的に
は、a)ユーザによって、呼の開始、終話、および制御
動作のために用いられる制御表層(サーフェス)と、
b)媒体レンダリングエンジン、例えば、オーディオア
プリケーションに対するスピーカおよび/あるいはマク
イロホン、ビデオアプリケーションに対するディスプレ
イ画面等から構成される電話機をモデル化する。
【0026】実際の制御表層と媒体レンダリングの細部
は、様々な特定の実現、例えば、個々の電話機あるいは
通信デバイスによって異なる。例えば、標準の旧来の簡
易電話サービス(“POTS”)の電話機は、ディスプ
レイは備えず、この制御表層の多くの機能は、実際に
は、POTS電話機自身のインバンドシグナリングの媒
体を用いて実現される。これとは対照的に、いわゆるパ
ーソナルコンピュータ(“PC”)ソフトホーンは制御
表層として多数のメニュー/ウインドウを用い、オーデ
ィオレンダリングはPCの音響カードを通じて遂行され
る。他のタイプの電話デバイスとして、標準のH.32
3プロトコルクライアントをランするPCもある。
【0027】標準の電話法概念、例えば、ダイアルトー
ン、呼び出し、その他は、特定の電話デバイスにローカ
ルな細部であることに注意する。こうして、POTS電
話をサポートする電話デバイスサーバは、ダイアルトー
ンを供給するが、他方、PCユーザインタフェースは、
ダイアルトーンの直接の類似物は持たず、このため、P
C電話をサポートする電話デバイスサーバは、ダイアル
トーンは供給しない。重要な概念は、電話デバイスサー
バを使用している他のクライアント、例えば、呼コーデ
ィネータは、エンドポイントデバイスの個々の/ローカ
ルな細部には気付かないことである。
【0028】POTS電話機の場合は、電話デバイスサ
ーバは、POTS電話機への接続のためのPOTSイン
タフェースカードと、TCP/IP接続性のためのネッ
トワークカードを備えるPCの形式にて実装される。T
CP/IPに対して用いられる場合は、ネットワークカ
ードは、TCP/IP接続性を得るために用いることが
できる任意のタイプの通信デバイス、例えば、ネットワ
ークインタフェースカード(“NIC”)、従来のアナ
ログモデム、光ファイバインタフェースカード、サービ
ス統合デジタル網(“ISDN”)モデム、任意の形式
のデジタル加入者ループ(“DSL”)、その他、であ
り得る。電話デバイスサーバは、加入者ループキャリア
の形式にて実現することも、呼コーディネータおよび他
のデバイスサーバによって用いられるネットワークへの
接続のためのインタフェース、例えば、TCP/IPイ
ンタフェースカードを備える構内交換機(“PBX”)
の形式にて実現することもできる。
【0029】ゲートウェイデバイスサーバは、2つのい
ゆわる“サイド”を持つ。一方のサイドは、呼コーディ
ネータにとって、あたかもれそがデバイスサーバのよう
に見えるように実現され、ゲートウェイデバイスサーバ
を呼コーディネータおよび他のデバイスサーバによって
使用されるネットワークに接続するために用いられる。
ゲートウェイデバイスサーバの他方の“サイド”は、電
話サービスの既に存在するアイランドの要素とインタフ
ェースするため、並びに、これらを制御および動作する
ために適合化されたインタフェースを備える。一例とし
てのゲートウェイサービスサーバとして回線デバイスサ
ーバがある。
【0030】回線デバイスサーバは、典型的には、電話
サービスの既に存在するアイランド、例えば、周知の公
衆電話網(“PSTN”)、を通じて一つあるいは複数
の電話呼をサポートする能力を持つ伝統的な(レガシ
ー)網インタフェースとしてモデル化される。伝統的な
網インタフェースは、呼コントロールと、媒体レンダリ
ングの両方の曲面を含む。一例としての伝統的な網イン
タフェースには:a)POTS網接続に対する一つある
いは複数のアナログループ開始インタフェースをサポー
トする電話カード;b)ISDN網接続に対して用いる
ための一つあるいは複数のISDNプライマリレートイ
ンタフェース(“PRI”)をサポートする電話カー
ド;c)アクセス可能なインタフェースを介して制御す
ることができる標準のPBX;d)H.323プロトコ
ルをH.323ゲートウェイと交換する代理(プロキシ)回
線デバイスサーバ;およびe)セッション開始プロトコ
ル(Session Initiation Protocol、“SIP”)サーバを
実現する代理電話/回線デバイスサーバが含まれる。
【0031】ゲートウェイデバイスサーバの主要な機能
は、デバイスサーバおよび呼コーディネータと幾つかの
他の外部網、例えば電話法のアイランドの一つである網
を接続する網との間のゲートウェイとして機能すること
にある。この目的に対して、ゲートウェイデバイスサー
バは、網内の正当なエンティティであり、その網の適当
なプロトコルを採用する。個々のゲートウェイデバイス
サーバは、名前空間をそのクライアント、すなわち呼コ
ーディネータに陳列することで、呼コーディネータを網
の特定のシグナリングプロトコルから隠蔽する。これ
は、ゲートウェイデバイスサーバ内にプロトコルの特定
の状態を維持することで達成される。デバイスサーバ
は、単一の呼コーディネータからの複数の呼を扱うこと
ができるばかりか、このような呼コーディネータを複数
扱うことができる。このような複数の対話および多重化
を扱うために、デバイスサーバはローカルな状態を維持
する。
【0032】呼コーディネータは、様々なデバイスサー
バの間の通信を達成する。呼コーディネータは、デバイ
スサーバが接続されている網に接続されたコンピュータ
にて実行されるソフトウエアモジュールとして実現され
る。呼コーディネータを実行するコンピュータは、デバ
イスサーバのコンピュータとは別個のコンピュータとす
ることも、一つあるいは複数のデバイスサーバのコンピ
ュータと処理能力を共有することも、あるいは網に接続
された他のコンピュータとすることもできる。別の方法
として、呼コーディネータの機能を複数のコンピュータ
に分散させることもでき、これらコンピュータは、デバ
イスサーバのコンピュータとは別個のものとすること
も、デバイスサーバとコンピュータを共有することも、
あるいは、この任意の組合せとすることもできる。単一
の網がそれに接続された複数の呼コーディネータを持つ
ことも考えられる。
【0033】重要なことは、上述の様々な機能、例えば
アプレット、呼コーディネ ータ、デバイスサーバ等上
であるいはこれとともに実行している様々なプロセス、
その処理システム内での適正な実行を確保するために、
ガーベージコレクションのアプリケーションを必要とす
ることである。上述のように、本発明は、このようなガ
ーベージコレクションを、時間の制約を持つアプリケー
ションに配布するための様々な曲面に関する。
【0034】呼/通信、および任意の関連する管理タス
クの概念は、全て呼コーディネータによって扱われる。
呼コーディネータは、従来の“クライアント−サーバ”
アーキテクチャの“クライアント”の役割を果たす。例
えば、呼コーディネータは、様々なデバイスサーバにサ
ービスをリクエストを発信する。典型的には、これらリ
クエストは、呼コーディネータによって検出されるいわ
ゆる“イベント(event)”に応答して行なわれる。呼
コーディネータはクライアントであるため、呼コーディ
ネータは、様々なサーバ、つまり、デバイスサーバある
いはゲートウェイサーバの内の、特定の呼に関して提供
されているサービスに対して適当であり、格納されてい
る規則あるいは登録と一貫する一つから、サービスをリ
クエストすることができる。
【0035】デバイスサーバは、複数のデバイスサーバ
間の相互作用である通信状態は意識しない。代わりに、
通信状態は、呼コーディネータによって維持され、呼コ
ーディネータは、通信状態を階層名前空間として陳列す
る。呼コーディネータは、デバイスサーバのクライアン
トとしてデバイスサーバを操作することで通信を達成す
る。呼コーディネータは、さらに“呼セッション(call
session)”として知られる相互作用を捕捉し、これを
階層名前空間としてイクスポートする。
【0036】呼コーディネータは、呼の処理を、おのお
のが“機能アプレット(feature applet)”と呼ばれる
コンピュータにて実行可能なコードの小片によって実現
されるステップのシーケンスとして扱う。機能アプレッ
トは、呼処理における特定のステップを遂行し、典型的
には、呼コーディネータによって陳列された名前空間の
呼トリーを操作する。つまり、機能アプレットのローデ
ィング以外は、呼コーディネータと機能アプレットは、
全て、呼トリーを通じて通信する。機能アプレットは、
呼コーディネータによって動的にローディングし、実行
される。本発明の一面によると、機能アプレットコード
は、網の任意の場所に配置しておくことも、網からオン
−ザ−フライにローディングすることも、あるいは、機
能アプレット自身を網内のどこかで実行することもでき
る。セッションの状態は、呼コーディネータによって階
層名前空間として陳列される呼トリーを用いて操作され
るために、機能アプレット自身の配置あるいは現在の呼
セッションの処理の一部としてのその実行は重要ではな
い。
【0037】呼コーディネータは、イクスプリシットな
ユーザモデルをサポートする。つまり、システムのユー
ザは、呼コーディネータによって身元を確認され、特定
のサービスに制限される。システムのユーザは、呼が処
理されている間、自身に代わって、どのような機能アプ
レットが呼コーディネータによって実行されるべきかを
指示することもできる。これを達成するために、機能ア
プレットは、システムの個々のユーザに対して論理的に
グループ化される。長所として、呼コーディネータは、
各ユーザに対してシステムを増分的に進化させるための
施設を提供する。重要なことは、上述の機能、例えばア
プレット、呼コーディネータ、デバイスサービス等上で
実行するあるいはこれとともに実行される様々なプロセ
スは、その処理システム内での適正な実行を確保するた
めにガーベージコレクションのアプリケーションを必要
とすることである。
【0038】本発明は、以下に詳細に説明するように、
このようなガーベージコレクションを時間の制約を持つ
アプリケーションに配布する様々な曲面に関する。より
詳細には、図1は、本発明の原理によるガーベージコレ
クションを配布するための一例としての通信サービスア
ーキテクチャを示す。示されるように、一例としてのア
ーキテクチャは:POTS電話機105、110、電話
デバイスサーバ115、呼コーディネータ120、12
5、回線デバイスサーバ130、データ網135、PS
TN140、およびデータリンク145−160から構
成される。POTS電話機105は、POTSインタフ
ェースを介して電話デバイスサーバ115に接続され
る。電話デバイスサーバ115、呼コーディネータ12
0、および回線デバイスサーバ130は、データリン
ク、例えば、データリンク150〜160によって、例
えば、インターネット様の網、すなわち、いわゆるイン
トラネットから成るデータ網135に接続される。回線
デバイスサーバ130とPOTS電話機110は、例え
ば、従来のチップ−リング回線によって公衆網(PST
N)140にも接続される。
【0039】電話呼がPOTS電話機105から発信さ
れるとき、POTS電話機105は、例えば、発呼者に
よって通常のやり方でオフフックされる。すると、PO
TS電話機105は信号を電話デバイスサーバ115に
送り、電話デバイスサーバ115はダイアルトーンをP
OTS電話機105に供給するもしくは供給することを
指令する。POTS電話機105の所で行なわれるダイ
アリング動作に応答して、電話デバイスサーバ115
は、ダイアルトーンを除去もくしは除去を指令し、ダイ
アルされた数字を得る。その後、電話デバイスサーバ1
15は、一つのイベントを立ち上げる。これは、電話デ
バイスサーバの階層名前空間を表すトリーのイベントコ
ントロールファイルに書き込むことによって達成され
る。上述のように、電話デバイスサーバ115の階層名
前空間はトリーデータ構造として表現される。
【0040】図2は、デバイスサーバ、例えば、電話デ
バイスサーバ115に対する単純化された名前空間トリ
ー200を示す。ファイルシステムにおいて通常行なわ
れるように、名前空間トリー200の根節点210が
“#/”と指定される。イベントコントロール220は
ファイルであり、この中に、呼コーディネータ120に
示されるべきイベントが書き込まれ、また、この中に、
呼コーディネータ120からのサービスリクエストが書
き込まれる。こうして、呼が発信されるべきであるとい
うインジケータと、ダイヤルされた数字は、イベントコ
ントロール220内に書き込まれる。節点データ230
は、呼がいったん設定された後、媒体の協議のために用
いられる。図2は、一例として、イベントコントロール
220と節点データ230を、節点240を通じてアク
セス可能な別個のエンティティとして示すが、理解でき
るように、本発明の代替実施例として、これら2つのエ
ンティティを単一の節点に併合することもできる。上の
説明は、呼コーディネータ120に焦点を置くが、理解
できるように、同一の原理および議論が呼コーディネー
タ125にも適用するものである。
【0041】図3は、呼コーディネータ、例えば呼コー
ディネータ120あるいは125の一例としての名前空
間300を示す。名前空間300の場合は、名前空間の
根節点310が“#/”として指定される。根節点31
0の下には、グローバルなイベントコントロールファイ
ル320が存在する。グローバルなイベントコントロー
ルファイル320は、全ての呼に関する全てのイベン
ト、例えば大域的な関連がある課金情報、例えば、時間
の変更による課金レートスケジュールの変更などを維持
する。加えて、グローバルなイベントファイル320
は、ある特定の呼コーディネータ内で行なわれている全
ての呼処理イベントを知ることを希望するプログラム、
例えば、イベントディテールレコーディングによって
も、開いて、読まれる。
【0042】これも根節点310の下に位置する呼トリ
ー節点330は、アクティブな呼コーディネータ、例え
ば、呼コーディネータ120の支配下にある現在アクテ
ィブな全ての呼を含む。こうして、各アクティブな呼に
対して、一つのアクティブ呼節点340が存在する。図
3においては、説明の明快さのために、たった1つのア
クティブな呼が示されるが、本発明の原理によると、複
数の呼コーディネータおよびアクティブな呼が存在する
ことに注意する。各アクティブ呼節点340の下には、
コールワイドなイベントコントロールファイル350
と、その呼と関係する各デバイスに対する番号節点36
0が存在する。コールワイドなイベントコントロールフ
ァイル350は、その呼に全体として関連があるイベン
トに対して用いられる。コールワイドなイベントコント
ロールファイル350は、特定の呼と関連する全ての呼
処理イベントを提供する。呼コーディネータと機能アプ
レットは、コールワイドなイベントコントロールファイ
ル350を通じて通信する。各番号節点360は、それ
が表すデバイスのネットワークルータブルアドレスによ
って識別される。番号節点は、実際には、識別されたデ
バイスによって陳列される全名前空間を表す。こうし
て、番号節点は、実際には、単一の節点ではなく、代わ
りに、これ自身が、そのトリーの根節点が番号節点36
0に位置するデバイスサーバの名前空間のトリーを表
す。
【0043】図1に戻り、アクティブな呼コーディネー
タは、それがサポートする全てのデバイスサーバの名前
空間のイベントコントロールファイルを調べる。この目
的のために、呼コーディネータ120(並びに呼コーデ
ィネータ125)は、デバイスサーバ並びにこれら背後
の特定のデバイス位置、例えば、アドレスを含めて、デ
ータ網135の構成あるいはトポロジーを知っている。
こうして、例えば、呼コーディネータ120は、電話デ
バイスサーバによって扱われる電話機の所有者、存在す
る場合は、それら電話機の電話番号、および回線デバイ
スサーバによって直接に扱われる回線もしくは回線デバ
イスサーバによって到達可能な電話機の識別を格納す
る。呼コーディネータ120にこの知識を提供するため
に必要な情報は、呼コーディネータ120内に事前にプ
ログラミングすることも、呼コーディネータ120によ
って既知のプロセスを用いて動的に見つけることも、あ
るいはこれらの組合せを用いてこれを達成することもで
きる。本発明によると、呼コーディネータ120、12
5は、それぞれ、上述の機能を用いて、アクティブな呼
コーディネータとして、及び/或いは、以下により詳細
に説明するように、実行中のプロセスにガーベージコレ
クションを配布するためのバックアップ呼コーディネー
タとして機能する。
【0044】イベントコントロールファイル220の読
出しに応答して、呼コーディネータ120は、どのよう
なイベントが存在し、存在する場合、どのような動作が
要求されるかを決定する。上述の具体的な例において
は、呼コーディネータ120は、POTS電話機105
の所のユーザが、ダイヤルした数字によって示される電
話番号に向けて呼を発信することを希望していることを
知る。これを発呼者が希望するやり方で達成するため
に、呼コーディネータ120は、必要なアプレットの実
行を指令する。ここでも、上述の議論は呼コーディネー
タ120に焦点を置くが、同一の原理および議論がこの
開示を通じて呼コーディネータ125にも同様に適用す
ることに注意する。
【0045】本発明の実施例によると、呼を設定するた
めに実行される具体的なアプレットには:発呼者に対す
る単一アプレットカスタム(sigle applet custom);
発呼者に対する総称アプレット(generic applet);発
呼者に対するカスタムであるアプレットのシーケンス
(sequence of applets);発呼者に対するアプレット
の総称シーケンス(generic sequence of applets);
被呼者に対する単一アプレットカスタム;被呼者に対す
るカスタムであるアプレットのシーケンス;被呼者に対
するアプレットの総称シーケンス;上述の任意の組合
せ;および/あるいはこれらアプリケーションに対して
書かれた他のアプレットが含まれる。これらアプレット
は、呼コーディネータ120内に置くことも、呼コーデ
ィネータ120の外部に置くことも、あるいは、これら
両方の組合せとすることもできる。さらに、これらアプ
レットは、全て呼コーディネータ120によって実行す
ることも、あるいは、他の資源、例えば、データ網13
5に接続されたサーバあるいは呼コーディネータによっ
て実行することもできる。
【0046】例えば、発呼者は、発呼者がダイヤルした
番号の関数として被呼者と接触することを可能にする複
数の電話番号のシーケンスを識別するためのアプレット
を指定することがある。この場合、呼コーディネータ1
20は、この機能に対するアプレットを実行し、このア
プレットは、ダイヤルされた番号が複数の電話番号のシ
ーケンスと関連するか決定する。ダイヤルされた電話番
号が複数の電話番号のシーケンスと関連しない場合は、
呼コーディネータ120は、デフォルトコールプレース
メントアプレット(default call placement applet)
を実行する。ダイアルされた電話番号が複数の電話番号
のシーケンスと関連する場合は、呼コーディネータ12
0は、そのシーケンスの最初の電話番号を得て、デフォ
ルトコールプレースメントアプレットを実行する。呼が
接続できなかった場合は、制御はシーケンスアプレット
(sequence applet)に戻され、このアプレットは、存
在する場合は、次の番号を得て、再びデフォルトコール
プレースメントアプレットを実行する。呼がこのシーケ
ンス内の電話番号の任意の一つに接続できなかった場合
は、シーケンスアプレットは、制御を呼コーディネータ
120に戻し、呼コーディネータ120は、別のアプレ
ットを実行する。例えば、発呼者に対して、被呼者と連
絡がつかなかったことを伝えるメッセージを流す。
【0047】単一の音声接続を単一の電話番号に向ける
ことが試みられているものと想定すると、呼コーディネ
ータ120は、データ網135に対する、得られた数字
に対応する被呼者のネットワークルータブルアドレスを
決定する。これは、呼コーディネータ120内のあるい
はこれと関連するマッパによって遂行される。マッパの
機能は、アプレット、例えば、現在実行中のアプレット
に、呼を完結することができそうなゲートウェイデバイ
スサーバあるいは電話デバイスサーバに対するアドレス
の限定されたリストを供給することにある。
【0048】単一音声接続の場合は、マッパは、回線デ
バイスサーバ130のアドレスを返す。呼コーディネー
タ120は、クライアントとして、回線デバイスサーバ
130に、サービスをリクエストする。より具体的に
は、呼コーディネータ120は、回線デバイスサーバ1
30に対して、POTS電話機105から得られた電話番号
に向けて接続を設定するようにリクエストする。これ
は、適当なコマンド、例えば、接続設定コマンド(esta
blish connection command)を回線デバイスサーバ13
0の名前空間トリーのイベントコントロールファイル内
に書き込むことで達成される。
【0049】呼コーディネータ120からの、例えば、
そのTCP/IPインタフェースを介しての、サービス
に対するリクエストに応答して、回線デバイスサーバ1
30は、要請された自身からPOTS電話機110への
接続を設定するプロセスを開始する。これは、PSTN
140の従来の利用可能なプロトコルを用いて達成さ
れ、呼コーディネータ120には完全に透過的である。
POTS電話機110への接続が達成され、あるいは、
少なくともPSTN140内のPOTS電話機105と
の媒体接続を設定するのに値するポイントへの接続が達
成されると(例えば、呼び出しあるいはビジー信号がP
STN140によって回線デバイスサーバ130に供給
されていると)、呼コーディネータ120は、電話デバ
イスサーバ115と回線デバイスサーバ130との間の
媒体経路の設定を指令する。これは、呼コーディネータ
120によって、媒体接続性に対するサービスリクエス
トを、電話デバイスサーバ115と回線デバイスサーバ
130の各々の名前空間トリーのイベントコントロール
ファイル内に書き込むことによって達成される。
【0050】呼の接続の設定が成功すると、呼コーディ
ネータ120は、呼を、その呼に対してさらなるサービ
スが要求されないか監視する。例えば、電話機105あ
るいは110の一方がオンフックとなることで、呼の切
断がリクエストされることも、あるいは、追加の機能処
理、例えば、保留(call waiting)、転送、あるいは課
金シェアリングなどがリクエストされることもある。呼
の設定の場合と同様に、このようなサービスを提供する
必要性は、電話デバイスサーバ115あるいは回線デバ
イスサーバ130の該当する一つの名前空間トリーのイ
ベントコントロールファイル内にリクエストを書き込む
ことによって示される。呼コーディネータ120は、イ
ベントコントロールファイルを読み出し、適当なアプレ
ットをランし、クライアントとして、サービスリクエス
トを適当なサーバに発行する。
【0051】呼を終話するためには、例えば、POTS
電話機105がオンフックとなる。このイベントは、電
話デバイスサーバ115の名前空間トリーのイベントコ
ントロールファイル内に書き込まれ、呼コーディネータ
120は、このイベントに気付く。このイベントに応答
して、呼コーディネータ120によって、アプレットが
ランされる。本発明の一つの実施例においては、このア
プレットは、電話デバイスサーバ115と回線デバイス
サーバからの切断サービスをリクエストする。これは、
各々のイベントコントロールファイル内に切断コマンド
を書き込むとともに、切断されるべき各々の電話番号を
指定することで達成される。
【0052】同様に、POTS電話機110がオフフッ
クとなって終話する場合は、このイベントの指標は回線
デバイスサーバ130の名前空間トリーのイベントコン
トロールファイル内に書き込まれる。回線デバイスサー
バ130のイベントコントロールファイル内にこのイベ
ントを検出すると、呼コーディネータ120はそれと関
連するアプレットを実行する。本発明のもう一つの実施
例においては、このアプレットは、電話デバイスサーバ
115と回線デバイスサーバ130からの切断サービス
をリクエストする。これは、切断コマンドを、各々のイ
ベントコントロールファイル内に書き込むとともに、切
断されるべき電話番号を指定することで行なわれる。
【0053】上述の好ましい実施例の説明から明らかな
ように、一例としての電話サービスの配布は、複数のプ
ロセスあるいはスレッド、例えば、呼コーディネータ、
電話デバイスサーバ、回線デバイスサーバ、および機能
アプレットの実行を伴う。上で詳細に述べたように、好
ましい実施例は、仮想マシーン、例えば、Java仮想
マシーン(JVM)を採用するシステムを用いて実行さ
れる。このため、これらプロセスの効果的な実行のた
め、さらには、例えば、上で説明した一例としての電話
サービスの実施例のようなリアルタイムの時間に制約を
持つアプリケーションの配布には、ガーベージコレクシ
ョンの配布が必須となる。
【0054】本発明の原理によると、ガーベージコレク
ションが、n個の呼コーディネータがk個の呼を同時に
処理し、有効呼処理容量として(n×k)呼が達成され
るように提供される。本発明の一面によると、少なくと
も2つの呼コーディネータのグループが、負荷共有モー
ドにて展開される。つまり、好ましい実施例によると、
デバイスサーバは、呼リクエストを、グループ内の呼コ
ーディネータの内のアクティブな呼コーディネータとし
て決定された任意の一つに送信する(つまり、任意のア
クティブな状態の呼コーディネータは、呼コーディネー
タのグループの中から決定される)。さらに、任意の特
定の呼コーディネータがある閾値TIに達すると、その呼
コーディネータは、いわゆる“冬眠(hibernation)”
状態に入る。TIは、ガーベージコレクションが必要と
なるまでの呼コーディネータに割り当て可能な総処理時
間の尺度を表す。冬眠状態に入った呼コーディネータ
は、デバイスサーバに対してそれが現在非アクティブで
あることを示す。デバイスサーバは、こうして、さらな
る通知があるまで、その特定な呼コーディネータを用い
ることを差し控え、新たな呼リクエストをルーティング
するために利用可能なアクティブな呼コーディネータを
呼コーディネータのグループから選択する。冬眠に入っ
た呼コーディネータは、ガーベージコレクションを始動
し、ガーベージコレクションサイクルが完了した後に、
デバイスサーバに対して、それが現在新たな呼処理リク
エストを受けることができるようになったことを示す。
こうして、この呼コーディネータは、デバイスサーバに
よって現在アクティブであるとマークされる。
【0055】本発明の一面によると、仮想マシーン上の
ガーベージコレクションは、少なくとも、閾値TI(つ
まり、ガーベージコレクションが要求されるまでの呼コ
ーディネータに割り当て可能な総処理時間の尺度)、プ
ロセス冬眠時間TH、およびプロセスに対して要求され
る総ガーベージコレクション時間TGCI、によって支配
される。より具体的には、本発明の好ましい実施例によ
ると、仮想マシーン上のガーベージコレクションは、
(n−1)TI>TH+TGCIなる関係に従って発生す
る。ここで、nは呼コーディネータの総数を表す。重要
なことに、われわれは、TI、TH、およびTGCIの実験
的な導出を通じて、ガーベージコレクションを仮想マシ
ーン上に、現在実行中のプロセスに重大な悪影響を及ぼ
すことなく、配布できることを認識した。こうして、本
発明によると、ガーベージコレクションが分散プロセ
ス、つまりアプリケーションに、ガーベージコレクショ
ンプロセスがリアルタイム処理と同時にランしないよう
なやり方で配布される。
【0056】図4は、本発明の原理に従ってガーベージ
コレクションを提供するための一例としての動作400
の流れ図を示す。より詳細には、それぞれ、上で詳細に
述べられたタイミング変数TI、TH、およびTGCIに対
するタイミング値が選択される(ブロック405)。例
えば、図1に示す2つの呼コーディネータを含む実施例
においては、実験結果は、それぞれ、タイミング変数T
I、TH、およびTGCIに対してタイミング値4秒、1
秒、および2秒を用いた場合、ガーベージコレクション
の効果的な配布が達成されることを示す。より具体的に
は、TGCIの導出はプロセッサ、システムアーキテクチ
ャ(例えば、利用可能なプロセッサ、メモリ、オペレー
ティングシステムなどの数)および仮想マシーンのバー
ジョンナンバー(例えば、JVM1.1.6)に対して
特定である。こうして、上に指定されたパラメータに対
する良く知られている値を用いることで、TGCIは経験
的に計算できる。THは、期待される網の遅延(ラテン
シー)に依存する。従って、当業者においては容易に理
解できるように、これら遅延値は、特定の網が与えられ
た場合、容易に計算することができる。TIは、仮想マ
シーンの設定、特に、利用可能なメモリに依存する。利
用可能なメモリの量が与えられた場合、この値は、呼コ
ーディネータプロセスによって消費されるメモリとして
計算することができる。例えば、あるイベントの処理が
100バイトのガーベージを生成し、利用可能なメモリ
が1000バイトである場合、ガーベージコレクション
を必要とすることなく処理できるイベントの総数は10
となる。
【0057】問題のタイミング変数の選択は、呼処理リ
クエストがデバイスサーバ、例えば、回線デバイスサー
バ130によって生成され(ブロック410)、第一の
呼コーディネータ(“CC1”)、例えば、呼コーディ
ネータ120によって処理されるために重要となる。第
一の、つまり、アクティブな呼コーディネータは、間隔
I(つまり、ガーベージコレクションが必要となるま
で呼コーディネータ上で呼を処理できる経験的な時間)
に渡って呼リクエストの処理を継続する。この時間TI
の終端において、状態の変化、つまり、第一の呼コーデ
ィネータ(CC1)が非アクティブとなったことを示す
メッセージが全てのデバイスサーバに送られる(ブロッ
ク415)。このため、デバイスサーバは、全ての将来
の呼リクエストに対して、第二の呼コーディネータ
(“CC2”)、例えば、呼コーディネータ125をア
クティブな呼コーディネータとして選択する。
【0058】上述の説明および本発明のガーベージコレ
クションの原理をさらに解説するために、図5は、本発
明の原理による、図1の一例としてのアーキテクチャの
コンテクスト内でガーベージコレクションを配布するた
めの、一例としてのガーベージコレクションシナリオを
示す。以下の詳細な説明は図4および図5の両方を参照
しながら行なわれる。一例としてのシナリオ500は、
上述の図1の実施例の2つの呼コーディネータの各々に
対する第一の呼コーディネータ(CC1)の時間ライン5
70と、第二の呼コーディネータ(CC2)の時間ライ
ン580を示す。一例としてのシナリオ500は、T0
510において開始し、この時刻において呼処理リクエ
ストが開始される。時間間隔TI520(一例として4
秒として示される)は、アクティブな呼コーディネー
タ、例えば、第一の呼コーディネータ(CC1)が、デ
バイスサーバからの全てのリクエストをガーベージコレ
クションを必要とすることなく処理する期間を定義す
る。TI520の終端において、このアクティブな呼コ
ーディネータに対してガーベージコレクションを開始す
ることが必要となる。
【0059】好ましい実施例によると、アクティブなコ
ーディネータ、例えば、第一の呼コーディネータ(CC
1)は、時間TH(図4のブロック420および図5の一
例として1秒として示されるTH530を参照)の間、
冬眠段階に入り、この時間において、状態の変化、つま
り、第一の呼コーディネータ(CC1)が非アクティブ
となったことを示すメッセージ(図5のメッセージm1
550参照)がデバイスドライバ(サーバ)に送られ
る。このために、デバイスサーバは、全ての将来の呼リ
クエストに対して、第二の呼コーディネータ、例えば、
CC2(例えばCC2時間ライン参照)をアクティブな呼
コーディネータとして選択する。冬眠期間、つまり、T
H530が満了した後、ガーベージコレクションが第一
の呼コーディネータに関して開始され(図4のブロック
425参照)、時間期間TGCI(例えば、図5のTGCI
40)だけ遂行される。第二の呼コーディネータ(図5
のTI585参照)は、時間TH+TGCIによって定義され
る時間だけアクティブにとどまる(図4のブロック43
0参照)。理解できるように、図5に示すように、それ
ぞれ、待ち期間515、525が周知の網遅延効果のた
めに発生する。
【0060】時間期間TH+TGCIの満了において、第一
の呼コーディネータに対するガーベージコレクションが
完了し(図4のブロック435参照)、この呼コーディ
ネータは、デバイスドライバ(サーバ)からの入り呼処
理リクエストを処理する準備が整う。こうして、デバイ
スドライバに、デバイスサーバに対して、状態の変化、
つまり、第一の呼コーディネータ(CC1)がアクティ
ブになったことを示すメッセージ(例えば図5のメッセ
ージm2560)が送られる(図4のブロック440
参照)。その後、好ましい実施例によると、第一の呼コ
ーディネータ(CC1)は、デバイスサーバが、自身を
アクティブな呼コーディネータとして選択するのを待つ
(図4のブロック445参照)。選択された後、第一の
呼コーディネータ(CC1)はアクティブにとどまり
(図5のTI505参照)、このサイクルを再び開始す
る。その後、第二の呼コーディネータ(CC2)が冬眠
に入り(図5のTH590参照)、第一の呼コーディネ
ータ(CC1)との関連で詳細に説明しのやり方でガー
ベージコレクション(図5のTGCI595参照)を開始
する。
【0061】上でも詳しく述べたが、われわれは、それ
ぞれ、クリティカルなタイミング値、つまり、TI
H、およびTGCIを割り当てることを通じて、ガーベー
ジコレクションを仮想マシーン上に、現在実行中のプロ
セスに大きな悪影響を及ぼすことなく、配布できること
を認識した。こうして、ガーベージコレクションは、分
散プロセス、つまり、アプリケーションに、ガーベージ
コレクションプロセスがリアルタイム処理と同時に実行
しないようなやり方で配布される。長所として、本発明
によると、分散アプリケーションプログラムは、ガーベ
ージコレクティング仮想マシーン上で、ガーベージコレ
クションプロセスの結果としての悪影響なしに実行され
る。
【0062】上で詳細に述べたように、本発明は、これ
ら方法を実施するための方法および装置の形態として具
現される。本発明は、さらに、有形媒体、例えば、フロ
ッピディスク、CD−ROM、ハードドライバ、あるい
は任意の他のマシーンによって読み出すことが可能な記
憶媒体内に実装された、マシーン、例えばコンピュータ
内にロードされ実行された場合、そのマシーンが本発明
を実施する装置となるようなプログラムコードの形式に
て具現することも、本発明は、さらに、例えば記憶媒体
内に格納された、マシーン内にロードされるおよび/あ
るいはマシーンによって実行される、あるいはある種の
伝送媒体、例えば電気配線もしくはケーブル上を、ある
いは光ファイバを通じてあるいは電磁放射を介して伝送
される、マシーン、例えばコンピュータ内にロードされ
実行された場合、そのマシーンが本発明を実施する装置
となるようなプログラムコードの形式にて具現すること
もできる。汎用プロセッサ上に実装された場合、このプ
ログラムコードセグメントは、プロセッサと協同して特
定論理回路と類似に動作するユニークなデバイスを提供
する。
【0063】さらに、ここで述べられた全ての実施例お
よび条件的な表現は、もっぱら本発明の原理および本発
明が当分野の進歩にどのように貢献できるかの概念の理
解を助ける目的で示されたものであり、本発明は、これ
ら具体的な実施例および条件に制限されるものではな
い。さらに、上の説明における本発明の原理、様々な曲
面および実施例に関する全ての記述、並びにこれらの具
体例は、これらの構造上および機能上の両方の同等物も
包含するものである。加えて、これら同等物は、現在知
られている同等物並びに将来開発されるであろう同等物
の両方、つまり具体的な構造とは関係なく、同一の機能
を遂行する開発されたあらゆる要素を包含するものであ
る。
【0064】こうして、例えば、当業者においては理解
できるように、上の説明におけるブロック図は、単に、
本発明の原理を利用する回路の概念図を示すものであ
る。同様に、フローチャート、フローダイヤグラム、状
態遷移図、疑似コード、プログラムコード、その他も、
単にコンピュータにて読み出し可能な媒体内に実装さ
れ、コンピュータ、マシーンあるいはプロセッサ(それ
らコンピュータ、マシーンあるいはプロセッサが明示さ
れているか否かに関係なく)によって実行される様々な
プロセスの概要を示すものである。
【0065】上述の説明は単に本発明の原理を示すもの
である。従って、当業者においては、ここでは明確な形
では説明あるいは示されなかったが本発明の原理を利用
し本発明の精神および範囲内に入る様々な構成を考案で
きるものと解されるものである。
【図面の簡単な説明】
【図1】本発明の原理による通信サービスを実現するた
めの一例としてのアーキテクチャを示す図である。
【図2】例えば、図1に示すようなデバイスサーバに対
する一例としての名前空間トリーを示す図である。
【図3】例えば、図1に示すような呼コーディネータの
一例としての名前空間トリーを示す図である。
【図4】本発明の原理によるガーベージコレクションを
提供するための一例としての動作の流れ図である。
【図5】図1の一例としてのアーキテクチャのコンテク
スト内でガーベージコレクションを配布するための、本
発明の原理による、一例としてのガーベージコレクショ
ンのシナリオを示す図である。
【符号の説明】
105、110 POTS電話機 115 電話デバイスサーバ 120、125 呼コーディネータ 130 回線デバイスサーバ 135 データ網 140 PSTN
フロントページの続き (72)発明者 ムーラリ アラバムダン アメリカ合衆国 07974 ニュージャーシ ィ,ムルレイ ヒル,マーサー ロード 6

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 前記通信システムが、少なくとも一つの
    デバイスサーバ、少なくとも2つの呼コーディネータ、
    および複数のオブジェクトを持つメモリを備えるよう
    な、電気通信システム内でサービスを提供するための方
    法であって、 前記電気通信システム内で少なくとも一つのサービスを
    配布するために、前記デバイスサーバ内の第一のプロセ
    スをその実行の際に前記メモリ内の複数のオブジェクト
    からの複数の利用可能なオブジェクトの特定の一つを用
    いて実行する動作;前記少なくとも一つのサービスの配
    布において、前記デバイスサーバからのリクエストを受
    信し、それに関して動作するために、第一の呼コーディ
    ネータ内の第二のプロセスを実行する動作;および前記
    電気通信システム内で、複数の使用されてないオブジェ
    クトを識別および回収するために、ガーベージコレクシ
    ョンサイクルのシーケンスを実行する動作を含み、この
    ガーベージコレクションサイクルのシーケンスが:プロ
    セス実行時間間隔、プロセス冬眠時間間隔、およびガー
    ベージコレクション時間間隔を確立する動作;前記少な
    くとも一つのサービスの配布において前記デバイスサー
    バからのリクエストを受信し、これに関して動作するた
    めに、第二の呼コーディネータ内の第三のプロセスを定
    義する動作;前記第一の呼コーディネータ内の第二のプ
    ロセスが前記プロセス実行時間間隔に等しい時間期間だ
    け実行したか決定し、そうである場合、前記第二のプロ
    セスを前記プロセス冬眠時間間隔に等しい時間期間だけ
    冬眠状態に入れ、このプロセス冬眠時間間隔の際に前記
    第二のプロセスが前記デバイスサーバからのさらなるリ
    クエストを受理しないようにする動作;前記第一のプロ
    セスおよび第二のプロセスと同時的に、前記第二の呼コ
    ーディネータ内の前記第三のプロセスを、デバイスサー
    バからの全てのリクエストを受信し、これに関して動作
    するために実行する動作;前記ガーベージコレクション
    時間間隔と等しい時間期間に渡って前記メモリ内の複数
    のオブジェクトを横断し、前記複数のオブジェクトの内
    の使用されてない特定の幾つかを集めることで複数の使
    用されてないオブジェクトを形成し、これら使用されて
    ない複数のオブジェクトを前記複数の利用可能なオブジ
    ェクトに戻す動作;前記プロセス冬眠時間間隔とガーベ
    ージコレクション時間間隔の総和に等しい時間間隔の後
    に、実行を、前記サーバからのリクエストを受信し、こ
    れに関して動作するために前記第一の呼コーディネータ
    内の前記第二のプロセスに戻す動作を含むことを特徴と
    する方法。
  2. 【請求項2】 前記実行を戻す動作が、前記第三のプロ
    セスを前記プロセス冬眠時間間隔に等しい時間期間だけ
    冬眠状態に入れ、このプロセス冬眠時間期間の際に前記
    第三のプロセスがデバイスサーバからさらなるリクエス
    トを受理しないようにする動作を含むことを特徴とする
    請求項1記載の方法。
  3. 【請求項3】 前記ガーベージコレクションサイクルの
    シーケンスを実行する動作が: (nュ1)TI>TH+TGCI なる関係に従って遂行され、ここで、nは呼コーディネ
    ータの総数を表し、TIはプロセス実行時間間隔を表し、
    THはプロセス冬眠時間間隔を表し、そしてTGCIはガーベ
    ージコレクション時間間隔を表すことを特徴とする請求
    項1記載の方法。
  4. 【請求項4】 前記電気通信システムが、前記第一のプ
    ロセス、第二のプロセス、あるいは第三のプロセスの少
    なくとも一つの実行においてJava仮想マシーン(JV
    M)を採用することを特徴とする請求項3記載の方法。
  5. 【請求項5】 前記デバイスサーバと呼コーディネータ
    がクライアント−サーバ構成に結合されることを特徴と
    する請求項4記載の方法。
  6. 【請求項6】 前記デバイスサーバと、前記呼コーディ
    ネータの少なくとも一つが、階層名前空間を陳列するこ
    とを特徴とする請求項5記載の方法。
  7. 【請求項7】 前記呼コーディネータの少なくとも一つ
    が機能アプレットを実行することを特徴とする請求項4
    記載の方法。
  8. 【請求項8】 前記デバイスサーバと前記呼コーディネ
    ータが互いに網によって結合されることを特徴とする請
    求項6記載の方法。
  9. 【請求項9】 さらに:前記第二のプロセスが冬眠状態
    に入ったことを示す第一のメッセージを前記デバイスサ
    ーバに送信する動作、および前記第三のプロセスが冬眠
    状態に入ったことを示す第二のメッセージを前記デバイ
    スサーバに送信する動作を含むことを特徴とする請求項
    2記載の方法。
  10. 【請求項10】 コンピュータシステムの複数のオブジ
    ェクトを格納する、メモリを管理するための方法であっ
    て、このコンピュータシステムがデバイスサーバと少な
    くとも2つのクライアントを備えているような方法にお
    いて、 前記コンピュータシステム内で少なくとも一つのアプリ
    ケーションを配布するために、前記デバイスサーバ内の
    第一のプロセスを、その実行の際に前記メモリ内の複数
    のオブジェクトからの複数の利用可能なオブジェクトの
    特定の一つを用いて実行する動作;前記少なくとも一つ
    のアプリケーションの配布において、前記デバイスサー
    バからのリクエストを受信し、それに関して動作するた
    めに、第一のクライアント内の第二のプロセスを実行す
    る動作;および前記コンピュータシステム内で、複数の
    使用されてないオブジェクトを識別および回収するため
    に、ガーベージコレクションサイクルのシーケンスを実
    行する動作を含み、このガーベージコレクションサイク
    ルのシーケンスが:プロセス実行時間間隔、プロセス冬
    眠時間間隔、およびガーベージコレクション時間間隔を
    確立する動作;前記少なくとも一つのアプリケーション
    の配布において、前記デバイスサーバからのリクエスト
    を受信し、これに関して動作するために、第二のクライ
    アント内の第三のプロセスを定義する動作;前記第一の
    クライアント内の第二のプロセスが前記プロセス実行時
    間間隔に等しい時間期間だけ実行したか決定し、そうで
    ある場合、前記第二のプロセスを前記プロセス冬眠時間
    間隔に等しい時間期間だけ冬眠状態に入れ、このプロセ
    ス冬眠時間間隔の際に前記第二のプロセスがデバイスサ
    ーバからのさらなるリクエストを受理しないようにする
    動作;前記第一のプロセスおよび第二のプロセスと同時
    的に、前記デバイスサーバからの全てのリクエストを受
    信し、これに関して動作するために、前記第二のクライ
    アント内の前記第三のプロセスを実行する動作;前記ガ
    ーベージコレクション時間間隔と等しい時間期間に渡っ
    て、前記メモリ内の複数のオブジェクトを横断し、前記
    複数のオブジェクトの内の使用されてない特定の幾つか
    を集めることで複数の使用されてないオブジェクトを形
    成し、これら使用されてない複数のオブジェクトを前記
    複数の利用可能なオブジェクトに戻す動作;前記プロセ
    ス冬眠時間間隔とガーベージコレクション時間間隔の総
    和に等しい時間間隔の後に、実行を、前記サーバからの
    リクエストを受信し、これに関して動作するために前記
    第一のクライアント内の前記第二のプロセスに戻す動作
    を含むことを特徴とする方法。
  11. 【請求項11】 前記実行を戻す動作が、前記第三のプ
    ロセスを前記プロセス冬眠時間間隔に等しい時間期間だ
    け冬眠状態に入れ、このプロセス冬眠時間期間の際に前
    記第三のプロセスがデバイスサーバからさらなるリクエ
    ストを受理しないようにする動作を含むことを特徴とす
    る請求項10記載の方法。
  12. 【請求項12】 さらに:前記第二のプロセスが冬眠状
    態に入ったことを示す第一のメッセージを前記デバイス
    サーバに送信する動作、および前記第三のプロセスが冬
    眠状態に入ったことを示す第二のメッセージを前記デバ
    イスサーバに送信する動作を含むことを特徴とする請求
    項11記載の方法。
  13. 【請求項13】 前記ガーベージコレクションサイクル
    のシーケンスを実行する動作が: (n−1)TI>TH+TGCI なる関係に従って遂行され、ここで、nは呼コーディネ
    ータの総数を表し、TIはプロセス実行時間間隔を表
    し、THはプロセス冬眠時間間隔を表し、そしてTG CI
    ガーベージコレクション時間間隔を表すことを特徴とす
    る請求項10記載の方法。
  14. 【請求項14】 前記コンピュータシステムが前記第一
    のプロセス、第二のプロセス、あるいは第三のプロセス
    の少なくとも一つの実行においてJava仮想マシーン
    (JVM)を採用することを特徴とする請求項13記載
    の方法。
  15. 【請求項15】 前記デバイスサーバとクライアントが
    クライアント−サーバ構成に結合されることを特徴とす
    る請求項14記載の方法。
  16. 【請求項16】 その上に格納された複数のインストラ
    クションを持つマシーンにて読み出し可能な媒体であっ
    て、これら複数のインストラクションがマシーンによっ
    て実行されたとき、マシーンに対して、電気通信システ
    ム内でサービスを提供するための方法を遂行するように
    指令し、この電気通信システムが、デバイスサーバ、少
    なくとも2つの呼コーディネータおよび複数のオブジェ
    クトを持つメモリを備え、前記方法が、前記電気通信シ
    ステム内で少なくとも一つのサービスを配布するため
    に、前記デバイスサーバ内の第一のプロセスを、その実
    行の際に前記メモリ内の複数のオブジェクトからの複数
    の利用可能なオブジェクトの特定の一つを用いて実行
    し;前記少なくとも一つのサービスの配布において、前
    記デバイスサーバからのリクエストを受信し、それに関
    して動作するために、第一の呼コーディネータ内の第二
    のプロセスを実行し;前記電気通信システム内で、複数
    の使用されてないオブジェクトを識別および回収するた
    めに、ガーベージコレクションサイクルのシーケンスを
    実行することで遂行され;このガーベージコレクション
    サイクルのシーケンスが:プロセス実行時間間隔、プロ
    セス冬眠時間間隔、およびガーベージコレクション時間
    間隔を確立する動作;前記少なくとも一つのサービスの
    配布において前記デバイスサーバからのリクエストを受
    信し、これに関して動作するために、第二の呼コーディ
    ネータ内の第三のプロセスを定義する動作;前記第一の
    呼コーディネータ内の第二のプロセスが前記プロセス実
    行時間間隔に等しい時間期間だけ実行したか決定し、そ
    うである場合、前記第二のプロセスを前記プロセス冬眠
    時間間隔に等しい時間期間だけ冬眠状態に入れ、このプ
    ロセス冬眠時間間隔の際に前記第二のプロセスが前記デ
    バイスサーバからのさらなるリクエストを受理しないよ
    うにする動作;前記第一のプロセスおよび第二のプロセ
    スと同時的に、前記第二の呼コーディネータ内の前記第
    三のプロセスを、デバイスサーバからの全てのリクエス
    トを受信し、これに関して動作するために実行する動
    作;前記ガーベージコレクション時間間隔と等しい時間
    期間に渡って前記メモリ内の複数のオブジェクトを横断
    し、前記複数のオブジェクトの内の使用されてない特定
    の幾つかを集めることで複数の使用されてないオブジェ
    クトを形成し、これら使用されてない複数のオブジェク
    トを前記複数の利用可能なオブジェクトに戻す動作;前
    記プロセス冬眠時間間隔とガーベージコレクション時間
    間隔の総和に等しい時間間隔の後に、実行を、前記サー
    バからのリクエストを受信し、これに関して動作するた
    めに前記第一の呼コーディネータ内の前記第二のプロセ
    スに戻す動作を含むことを特徴とするマシーンにて読み
    出し可能な媒体。
  17. 【請求項17】 前記実行を戻す動作が、前記第三のプ
    ロセスを前記プロセス冬眠時間間隔に等しい時間期間だ
    け冬眠状態に入れ、このプロセス冬眠時間期間の際に前
    記第三のプロセスがデバイスサーバからさらなるリクエ
    ストを受理しないようにする動作を含むことを特徴とす
    る請求項16記載のマシーンにて読み出し可能な媒体。
  18. 【請求項18】 前記ガーベージコレクションサイクル
    のシーケンスを実行する動作が: (n−1)TI>TH+TGCI なる関係に従って遂行され、ここで、nは呼コーディネ
    ータの総数を表し、TIはプロセス実行時間間隔を表
    し、THはプロセス冬眠時間間隔を表し、そしてTG CI
    ガーベージコレクション時間間隔を表すことを特徴とす
    る請求項17記載のマシーンにて読み出し可能な媒体。
  19. 【請求項19】 前記電気通信システムが、前記第一の
    プロセス、第二のプロセス、あるいは第三のプロセスの
    少なくとも一つの実行においてJava仮想マシーン
    (JVM)を採用することを特徴とする請求項18記載
    のマシーンにて読み出 し可能な媒体。
  20. 【請求項20】 前記デバイスサーバと、前記呼コーデ
    ィネータの少なくとも一つが、階層名前空間を陳列する
    ことを特徴とする請求項19記載のマシーンにて読み出
    し可能な媒体。
JP2000335299A 1999-11-05 2000-11-02 時間の制約を持つ分散アプリケーションのためのガーベージコレクション方法 Pending JP2001188704A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/434,931 US6611858B1 (en) 1999-11-05 1999-11-05 Garbage collection method for time-constrained distributed applications
US09/434931 1999-11-05

Publications (1)

Publication Number Publication Date
JP2001188704A true JP2001188704A (ja) 2001-07-10

Family

ID=23726296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000335299A Pending JP2001188704A (ja) 1999-11-05 2000-11-02 時間の制約を持つ分散アプリケーションのためのガーベージコレクション方法

Country Status (4)

Country Link
US (1) US6611858B1 (ja)
EP (1) EP1104897A2 (ja)
JP (1) JP2001188704A (ja)
CA (1) CA2323371A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007034769A1 (ja) * 2005-09-20 2007-03-29 National Institute Of Advanced Industrial Science And Technology ゼロガベージコレクション通信仲介装置

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324685B1 (en) 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
CA2273657C (en) * 1999-05-05 2010-09-21 Nortel Networks Corporation Telephony and data network services at a telephone
US6502111B1 (en) * 2000-07-31 2002-12-31 Microsoft Corporation Method and system for concurrent garbage collection
US6701464B2 (en) * 2001-03-01 2004-03-02 International Business Machines Corporation Method and system for reporting error logs within a logical partition environment
US7000102B2 (en) * 2001-06-29 2006-02-14 Intel Corporation Platform and method for supporting hibernate operations
US6959309B2 (en) * 2002-01-31 2005-10-25 Freescale Semiconductor, Inc. Interface between programming languages and method therefor
KR100528973B1 (ko) * 2003-11-05 2005-11-16 한국전자통신연구원 가비지 콜렉션 방법 및 그 장치
US7596788B1 (en) * 2004-05-11 2009-09-29 Platform Computing Corporation Support of non-trivial scheduling policies along with topological properties
US7769974B2 (en) 2004-09-10 2010-08-03 Microsoft Corporation Increasing data locality of recently accessed resources
US8060543B1 (en) * 2005-04-29 2011-11-15 Micro Focus (Ip) Limited Tracking software object use
US20070033240A1 (en) * 2005-08-04 2007-02-08 International Business Machines Corporation Scheduling garbage collection
US7467278B2 (en) * 2006-05-08 2008-12-16 International Business Machines Corporation Memory tuning for garbage collection and central processing (CPU) utilization optimization
WO2008007385A2 (en) * 2006-07-13 2008-01-17 Venkat Srinivas Meenavalli Method for controlling advanced multimedia features and supplementary services in sip-based phones and a system employing thereof
DE102006038877B4 (de) * 2006-08-18 2018-01-25 Giesecke+Devrient Mobile Security Gmbh Manipulationsgesicherte Einheit, Verfahren für eine manipulationsgesicherte Einheit sowie Speichermedium
US20080162709A1 (en) * 2006-12-27 2008-07-03 International Business Machines Corporation System for processing application protocol requests
US8868623B2 (en) * 2007-10-30 2014-10-21 International Business Machines Corporation Enhanced garbage collection in a multi-node environment
KR101355193B1 (ko) * 2007-12-11 2014-01-27 삼성전자주식회사 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법
US20090228537A1 (en) * 2008-03-07 2009-09-10 Branda Steven J Object Allocation System and Method
US7870257B2 (en) * 2008-06-02 2011-01-11 International Business Machines Corporation Enhancing real-time performance for java application serving
US8527558B2 (en) 2010-09-15 2013-09-03 Sepation, Inc. Distributed garbage collection
KR102053865B1 (ko) * 2013-03-15 2019-12-09 삼성전자주식회사 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템
WO2016003412A1 (en) * 2014-06-30 2016-01-07 Hewlett-Packard Development Company, L.P. Concurrent dead actor collection
US10642663B2 (en) * 2014-09-10 2020-05-05 Oracle International Corporation Coordinated garbage collection in distributed systems
US9971683B1 (en) * 2014-10-20 2018-05-15 Sprint Communications Company L.P. Automatic computer memory management coordination across a group of servers

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914586A (en) * 1987-11-06 1990-04-03 Xerox Corporation Garbage collector for hypermedia systems
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US5293614A (en) * 1991-04-08 1994-03-08 Texas Instruments Incorporated System and method for hard real-time garbage collection requiring a write barrier but no read barrier
US5355483A (en) * 1991-07-18 1994-10-11 Next Computers Asynchronous garbage collection
US5485613A (en) * 1991-08-27 1996-01-16 At&T Corp. Method for automatic memory reclamation for object-oriented systems with real-time constraints
US5535390A (en) * 1994-07-22 1996-07-09 Hildebrandt; Thomas H. Method for reusing temporaries and reclaiming shared memory
US5832529A (en) * 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5842016A (en) * 1997-05-29 1998-11-24 Microsoft Corporation Thread synchronization in a garbage-collected system using execution barriers
US6199075B1 (en) * 1997-05-30 2001-03-06 Sun Microsystems, Inc. Method and apparatus for generational garbage collection of a heap memory shared by multiple processors
US6256637B1 (en) * 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US6381735B1 (en) * 1998-10-02 2002-04-30 Microsoft Corporation Dynamic classification of sections of software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007034769A1 (ja) * 2005-09-20 2007-03-29 National Institute Of Advanced Industrial Science And Technology ゼロガベージコレクション通信仲介装置

Also Published As

Publication number Publication date
EP1104897A2 (en) 2001-06-06
US6611858B1 (en) 2003-08-26
CA2323371A1 (en) 2001-05-05

Similar Documents

Publication Publication Date Title
US6611858B1 (en) Garbage collection method for time-constrained distributed applications
US6502109B1 (en) Distributed communications system having garbage collecting virtual processes
US5551035A (en) Method and apparatus for inter-object communication in an object-oriented program controlled system
US6584186B1 (en) Protecting communications network integrity
US6425005B1 (en) Method and apparatus for managing local resources at service nodes in an intelligent network
US6832238B1 (en) Local transaction management
US6804711B1 (en) Method and apparatus for managing call processing services in an intelligent telecommunication network
KR100629088B1 (ko) 분산 호출 시스템
US4782517A (en) System and method for defining and providing telephone network services
JP3317405B2 (ja) プログラム可能なネットワーク・プロトコルと通信サービスを備えた電気通信スイッチ
MXPA01003975A (es) Metodo y aparato para proporcionar servicios de procesamiento de llamadas en tiempo real en una red inteligente.
EP0405829B1 (en) Object oriented software system architecture
JP3924279B2 (ja) 統合ネットワーク・サービス・プロバイダ向けのサービス・アプリケーション・アーキテクチャ
US6914969B2 (en) Service logic execution environment for telecommunications service components
JP2000137605A (ja) 交換機サービス制御方法、交換機、及び交換機サービス制御プログラムを記録した記録媒体
EP0782812B1 (en) A flexible call record mechanism
JP3936172B2 (ja) 交換システム
JP2001268229A (ja) 電話サービス装置、電話サービス方法及びその記録媒体
US20010032233A1 (en) Efficient implementation of several independent state machines in the same process
CN1082320C (zh) 构成呼叫处理的方法和电话呼叫处理的交换系统
CN116991575A (zh) 线程池管理方法及装置、介质、设备
MXPA97002003A (en) A flexi call registration mechanism
CA2198344A1 (en) Simplified multi-call processing
MXPA97001999A (en) A method for structuring the processing of calls and a transmission system of processing calls for telefo
Liu Object design for communication protocol software

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060227