JPH10143377A - 通信システム、コンピュータシステム及びソフトウェアコンポーネント交換方法 - Google Patents
通信システム、コンピュータシステム及びソフトウェアコンポーネント交換方法Info
- Publication number
- JPH10143377A JPH10143377A JP9115606A JP11560697A JPH10143377A JP H10143377 A JPH10143377 A JP H10143377A JP 9115606 A JP9115606 A JP 9115606A JP 11560697 A JP11560697 A JP 11560697A JP H10143377 A JPH10143377 A JP H10143377A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- exchange
- old
- application
- state
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Exchange Systems With Centralized Control (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
いソフトウェアコンポーネントの交換手順を提供する。 【解決手段】 通信システムの制御回路がメッセージベ
ースのオペレーティングシステム、アプリケーションソ
フトウェア、及びアプリケーションソフトウェアを交換
する手段を含む。アプリケーションソフトウェアが交換
される時に、古いソフトウェアコンポーネントが状態転
送を遂行し、一定の点で停止して有効なメッセージを新
しいソフトウェアコンポーネントに送る。アプリケーシ
ョンソフトウェアは、少なくとも1つのアプリケーショ
ンスレッド14及び交換スレッドを有する古いプロセスを
含み、古いプロセスのアプリケーションスレッド14が交
換点で停止した後に、交換されるべき古いプロセスが少
なくともその状態を集める。古いプロセスの交換スレッ
ド14が少なくとも状態を交換ポートを通して新しいプロ
セスに送信する。
Description
通信システムであって、該制御回路が、メッセージベー
スのオペレーティングシステム、アプリケーションソフ
トウェア及びアプリケーションソフトウェアを交換する
手段を含み、且つアプリケーションソフトウェアが交換
される時に、置換されるべき古いソフトウェアコンポー
ネントが状態転送を遂行するようにし、一定の点で停止
させて有効なメッセージを新しいソフトウェアコンポー
ネントに送るようにする通信システムに関する。
際に連続的に使用することができるコンピュータシステ
ム又は制御回路を含む。ソフトウェアにエラーがある場
合、或いは新しい要求がある場合、或るソフトウェアコ
ンポーネントを更新しなければならない場合がある。こ
のような場合には通信システムの休止時間を最小にする
必要がある。
ポーネントを交換する際に実際上休止時間のない通信シ
ステムがUS-A-5,155,837号から既知である。交換する前
に、古いソフトウェアが動作している間に、先ず、全て
のレジスタ、プロセス及びメモリーユニットの内容及び
状態を特別なメモリーにセーブする(7欄30乃至36
行)。次にソフトウェアの古いバージョンを第1部分に
ロードする。新しいソフトウェアを第2部分に連続的に
ロードする。新しいソフトウェアのロードが完了しテス
トか終了した後、全てのレジスタ、プロセス及びメモリ
ーユニットの内容及び状態をメモリーから新しいソフト
ウェアに転送する。次にこの新しいソフトウェアを動作
させる。しかしながら、従って、新しいソフトウェア
は、古いソフトウェアが停止したプロセス点ではなく、
定められたプログラム点で動作を開始する。更に、個々
のソフトウェアモジュール又はソフトウェアコンポーネ
ントが交換されるのではなく、閉じたソフトウェアが交
換される。
esen",第64巻第4号、1990年、第 327乃至333 頁」は、
例えばスイッチングセンターの動作中におけるソフトウ
ェアコンポーネントの交換を開示している。この交換の
場合、システムが古いソフトウェアコンポーネントに必
要な状態転送を遂行させる。予め定められた同期点に到
達すると、古いソフトウェアコンポーネントが停止し、
古い方から新しいソフトウェアコンポーネントにメッセ
ージが送られる。新しいソフトウェアコンポーネントが
スタートし、古いソフトウェアコンポーネントが停止
し、除去される。交換のために具えられるプログラムの
詳細な構成については、この文献からは不明である。
は、この手順の間は短時間の遅延時間を除いて動作が制
限されない、実現可能なソフトウェアコンポーネントの
交換手順を提供することにある。
節で述べた型の通信システムにおいて、アプリケーショ
ンソフトウェアが、少なくとも1つのアプリケーション
スレッド及び交換スレッドを有するプロセスを少なくと
も含み、古いプロセスのアプリケーションスレッドが交
換点で停止した後に、交換されるべき古いプロセスが少
なくともその状態を集めるために供給され、更に、古い
プロセスの交換スレッドが少なくとも状態を交換ポート
を通して新しいプロセスに転送するために用いられるこ
とによって達成される。
レッド(連続的に実行されるプログラム部分)を含み、
それらの間に交換を制御するための交換スレッドが存在
するプロセスに関する。本発明によれば、それぞれの古
いプロセスが停止したプログラム点(交換点)で新しい
プロセスがスタートする。更に、古いプロセスの全ての
状態が、古いプロセスの交換スレッドを介して新しい状
態に転送される。しかしながら、これは、ソフトウェア
コンポーネント間でメッセージを交換することを可能に
するオペレーティングシステム(例えばコーラスCHORU
S)を具えるシステムにのみ適用することができる。従
って、メッセージは、以後ポートと称するソフトウェア
インタフェースを介して種々のプロセス間で交換され
る。従って、状態は、古いプロセス及び新しいプロセス
の交換ポートを介して交換される。
与えないように行われる。交換後には、他のクライアン
ト(他のプロセス)から到着するメッセージは新しいプ
ロセスに送信され更に処理される。交換は処理の間の僅
かな遅延が存在するだけで行われる。実用的な研究によ
れば、この遅延は数ミリ秒の範囲である。
スイッチングセンター、コンピュータネットワーク、又
は例えばビデオオンデマンドサーバーのようなサーバー
であってもよい。コンピュータシステムは、少なくとも
その中のソフトウェアコンポーネントが交換されるコン
ピュータを含む。
交換されるべき古いプロセスのアプリケーションスレッ
ドの状態を集めるための第1部分を持ち、且つ集められ
た状態を古いプロセスの交換スレッドへ送るために用い
られる。新しいプロセスのアプリケーションスレッド
が、古いプロセスの交換スレッドから状態を引き継ぐた
め及び状態に関するオブジェクトを再構成するための第
2部分を持つ。
始される。このサーバーは、別のソフトウェアコンポー
ネントとして制御回路に含まれ、プロセスをロードしス
タートさせるため及び新たにスタートしたプロセスが古
いプロセスに代わるべきか否かを認識するために用いら
れる。メンテナンスデバイスが送信媒体を介して新しい
プロセスを置換サーバーへ送る。
れらが連続的に交換される。従って先ず最初のプロセス
が交換され、次に以後のプロセスが続く。複数のプロセ
スの交換が行われる場合は制御を置換サーバーに渡すこ
とができる。古いプロセスを交換するために用いられる
新しいプロセスがロードされ、スタートすると、正規の
プログラムルーティンをスキップし、先ず古いプロセス
の交換点に対応する交換点へのジャンプが行われる。
ュータを含むコンピュータシステム及びソフトウェアコ
ンポーネントを交換する方法に関する。本発明のこれら
及び他の観点は、以下に説明する実施例を参照すること
によって明瞭且つ明快になる。
ナンスデバイス2を具えるコンピュータシステムを示
す。コンピュータは、ハードウェアコンポーネント3、
オペレーティングシステム4、アプリケーションソフト
ウェア5及び置換サーバー6を含む。オペレーティング
システム4は、メッセージ(例えばオペレーティングシ
ステムに基づくメッセージ)を介して行うアプリケーシ
ョンソフトウェア5のソフトウェアコンポーネント間の
通信を可能にする。従って、メッセージ又はデータがソ
フトウェアインタフェースを介して交換される。以下に
おいては、ソフトウェアインタフェースをポートと称す
る。
であり、それによりアプリケーションソフトウェア5の
コンポーネントが交換される。交換されるべきソフトウ
ェアコンポーネントは種々のスレッドを含むプロセス
(アクター)である。スレッドは、プログラムの中の自
律的に連続的に走行する部分である。図1は、円によっ
て個々のソフトウェアコンポーネントを示している。円
の間の結合は、ソフトウェアコンポーネント間のメッセ
ージの流れを示している。
ピュータであってもよく、それから新しいソフトウェア
コンポーネントが送出される。従って、新しいソフトウ
ェアコンポーネントについて、このコンピュータで開発
されテストされることが考えられる。新しいソフトウェ
アコンポーネントを送信するために、既知の送信媒体及
びプロトコルを用いることができる。例えば、電話ネッ
トワークによる送信が可能である。しかしながら、(例
えばローカルメンテナンスデバイス(ラップトップ)に
より)新しいソフトウェアコンポーネントをコンピュー
タ1に直接ロードすることもできる。
このコンピュータシステムは、ハードウェアインタフェ
ース(例えばイーサネットインタフェース)によって相
互に結合されている種々のノード(例えばパーソナルコ
ンピュータ、ワークステーション等)を有するローカル
エリアネットワークとして構成されている。図2は、例
として種々のプロセス9を含むそれぞれのアプリケーシ
ョンソフトウェアを含むネットワークの2つのノード7
及び8を示している。このようなプロセスは、プロテク
トされたアドレス空間を持ち、多数のポート及び、上述
のように、図2に波線で示されている種々のスレッドを
管理し、それらのポートを通してプロセスが他のプロセ
スとメッセージを交換する。プロセス9は、ポート10を
介してメッセージ11のみを送信し受信することができ
る。ノード7及び8は、ネットワークの他のノード(図
示されていない)にネットワークリンク30を介して結合
される。
のそれぞれのポートを介してメッセージを交換すること
ができる。更に、例えばミューテックスMutex 及びセマ
フォールsemaphore によってもメッセージを交換するこ
とができる。ミューテックス(相互排他)は、一定の範
囲には1つのスレッドのみアクセスすることができるメ
ソッドを表す。例えばデータがスレッドからプリンター
に送信される場合である。この場合、スレッドがミュー
テックスを設定すると、このスレッドのみがプリンター
にデータを送信することができる。従って他のスレッド
はデータをプリンターに送ることができない。セマフォ
ールは、限定された数のスレッドのみが一定の範囲にア
クセスすることができる。異なるプロセスのスレッド間
では、それぞれのプロセスのポートを介してのみメッセ
ージを交換することができる。
ローカルエリアネットワークのための分布オペレーティ
ングシステムとしては、コーラスを用いることができる
(Rozier,M.;Abrossimov,V.;Armand,F.;Boule,I.;Gien,
M.;Guillemont,M.;Herrmann,F.;Kaiser,C.;Langlois,
S.;Leonard,P.:Neuhauser,W.:Overview of the CHOLUSd
istrbuted operating systems;CHOLUS system Technica
l Report CS-TR-90-25,1990参照)。アプリケーション
ソフトウェアについては、例えばC又はC++プログラ
ミング言語を選択することができる。
つのプロセス9の交換を制御するため、ノード7が更に
置換サーバー12を含む。この置換サーバー12は同様に、
ノード7以外の他のノード(例えばノード8)の部分を
形成することができる。
よって制御される少なくとも1つのプロセスが置換又は
交換される時は、新しいソフトウェアコンポーネント
(新しいプロセス)がロードされ、コンピュータ1(図
1)又はネットワークのノード7又は8(図2)でスタ
ートする。次に、古いソフトウェアコンポーネント(古
いプロセス)の全てのアプリケーションスレッドが停止
され、古いプロセスが全てのオブジェクトの状態を集め
る。新しいプロセスが、古いプロセスによって集められ
た状態を受取り、古いプロセスのポートが全てのペンデ
ィングメッセージと共に新しいプロセスに移る。古いオ
ブジェクト構造が新しいプロセスに受入れられると、次
に新しいプロセスのスレッドが、古いプロセスの点に対
応する点でスタートする。最後に古いプロセスが削除さ
れる。
ークの動作中に行われるこの交換に対し、アプリケーシ
ョンソフトウェアのコンポーネント又はプロセスにおい
て、交換不可能なコンポーネントに関する一定の変更が
行われる。交換可能である各プロセスは、交換スレッド
と呼ばれ、交換手順を遂行する付加的なスレッドを含
み、更に、交換中に通信を行うために用いられる付加的
な交換ポートを含む。
れていることを記号で表している。プロセス13が正方形
で表され、そのアプリケーションスレッド14が波線とし
て表示されている。プロセス13は1つのクライアントと
ポート15を通してデータを交換する。クライアントは、
他のソフトウェアコンポーネントである。上述のよう
に、交換可能のプロセスは付加的に交換スレッド16を含
み、付加的な交換ポート17を有する。
メッセージの流れを示す。クライアント18が、これまで
にインストールされたプロセス20のポート19(以下サー
ビスポートという)にメッセージを送る。プロセス20
(前駆コンポーネント)が新しいプロセス21(後継コン
ポーネント)に交換されることになる。後継コンポーネ
ント21がロードされ、スタートすると、後継コンポーネ
ント21の交換ポート22から、前駆コンポーネント20の交
換ポート23に対して、交換命令が送られる。図4におけ
る交換命令は参照記号(1) で表されている。前駆コンポ
ーネント20は、停止した後、その状態を集め、それらを
後継コンポーネント21の交換ポート22に送る(矢印(2)
)。全ての送信が終わると、前駆コンポーネント20が
この通知を受ける(矢印(3) )。次に、古いプロセスの
サービスポート19が、クライアント18に対して、新しい
サービスポート24として、ペンディングメッセージにつ
いてアクセス可能になる。このポートの変更は、点線矢
印(4) で表示されている。
す。クライアント18が、ここで後継コンポーネント21の
サービスポート24にメッセージを送る。前駆コンポーネ
ント20が削除される。これは、前駆コンポーネント20を
表す正方形の上の2本の交差線によって表示されてい
る。
ロセスがスタートしている。複数のプロセスを交換する
場合は、この交換手順を幾つかのステップに分けること
ができる。従って、1つのステップは各回1つのプロセ
スの交換である。この結果、これは、多数のプロセスを
同時に交換する場合に比較して、交換手順を制御するこ
とがより簡便であり、必要なメモリー容量がより少な
い。
定の新しいプロセスは、例えば他の新しい機能を含むこ
とがある。古いプロセスとの互換性を保つためには、以
前の機能を新しいプロセスでも更に使用可能にすること
が必要である。古い機能を用いていた全てのクライアン
トが無くなる場合は、古い機能を無効とし、次の交換が
導入される時に全て消去してもよい。
ウェアについて2つの応用の可能性を示す。他の応用の
可能性が、メッセージを送信するために用いられるシス
テムについて存在する。1つの例は、主ブロックが図6
に示されているスイッチングシステムである。このスイ
ッチングシステムは、入力ライン26で受信した信号を1
又は複数の出力ライン27に送出するスイッチングネット
ワーク25を含む。スイッチングネットワークを制御する
ため、必要なハードウェア部品に加えて、オペレーティ
ングシステム、アプリケーションソフトウェア及び置換
サーバーを含む制御回路28がある。アプリケーションソ
フトウェアのコンポーネントの交換のために、メンテナ
ンスデバイス2がコンピュータ1と協働する場合と同様
に、制御回路28と協働するメンテナンスデバイス29が存
在する。
の部分を構成すると共にプロセスの交換のために必要で
ある。このような交換スレッドは、プロセス中のアプリ
ケーションスレッドに対するインタフェースを具える。
このインタフェースはプロセスを交換可能にする。C+
+プログラミング言語におけるインタフェースの使用
は、例えば「ExcThread 」と呼ぶことができるクラス定
義である。アプリケーションスレッドは、このクラス
「ExcThread 」のエンティティを厳密に1つ持つ。この
クラスは3つのメソッド「getExcInfo」、「setExcInf
o」及び「restartPointReached 」を持つ。
各アプリケーションスレッドの最初に1度だけ呼出され
る。これは、アプリケーションコンポーネントが新しい
コンポーネントとしてスタートするのか又はこのコンポ
ーネントのより古いバージョンが交換されるのかの情報
を与える。交換の場合においては、メソッド「ExcThrea
d::getExcInfo 」が、古いコンポーネントのアプリケー
ションスレッドの状態、及び、新しいプロセスのアプリ
ケーションスレッドが再スタートできる点を記述するパ
ラメータを与える。
ドが全てのオブジェクトを再構成すると、それがメソッ
ド「ExcThread::restartPointReached」を呼出す。この
メソッドは、全てのアプリケーションスレッドのスター
トを同期させるために用いられる。全てのスレッドがこ
のメソッドを用いる前に、このメソッドから抜け出すア
プリケーションスレッドはないことが保証されなければ
ならない。これによって、全てのオブジェクトが、いず
れかのアプリケーションスレッドによって用いられる前
に、確実に初期化される。これは、これらのオブジェク
トが多数のアプリケーションスレッド、例えばポートを
分け合う場合即ちセマフォールの場合に特に重要であ
る。
各アプリケーションスレッドによって、アプリケーショ
ンスレッドが交換のために停止した後で1度呼出され
る。このメソッドは、このアプリケーションスレッドの
現在の状態をそのそれぞれの新しいコンポーネントに送
出するために必要である。
例えば古いプロセスから状態を引き継ぐために必要であ
る。状態転送は、古いプロセスの停止と新しいプロセス
のスタートとの間で行われる。例えば、状態転送は、古
い電話ディレクトリの状態を新しい電話ディレクトリの
状態の中に再生するために必要である。このような転送
は、例えば新しいフィールド「郵便コード」が加えられ
る場合、又はこのフィールドが他の型を含む(例えば4
桁を5桁にする)場合に必要である。
トの全ての状態が送信されることを意味する。従って各
オブジェクトは2つのメソッドを持つ。1つのメソッド
は状態をフェッチし、1つのメソッドは状態を格納す
る。
スレッドが、それらが停止できる点で停止した時に、交
換動作がスタートする。これらの点は停止点と呼ばれ
る。スレッドにおいて停止点に到達した時は、その正規
の動作がアボートされ、交換に関する動作が遂行され
る。スレッドが停止できる同期及び通信点は、停止点と
同様に選択される。
の点が、新しいプロセスにおける停止点で使用可能でな
ければならない。これらの点は再スタート点と呼ばれ
る。停止点及び再スタート点は交換点と呼ばれる。新し
いプロセスは、プログラムコード及びオブジェクト構造
で古いプロセスと区別される。新しいプロセスにおいて
は、複数のオブジェクトが消滅、付加又は変化すること
がある。
を選択している。先ず、クラス名を入力し、続いて2つ
のコロンの後にメソッド名を入力する(ClassName::Meth
odName) 。例えば「Mutex::get」は、Mutex 型の全ての
オブジェクトについて使用可能性のメソッド「get 」を
表す。
る種のアプリケーション(例えば、ソフトウェアコンポ
ーネントがスイッチングセンターで交換される場合)に
対して問題が生ずることがある。これは、次の5つの条
件が満足される場合は生起しないものと思われる。 R1)アプリケーションが1つのプロセッサを持つシステ
ム上で走行すること。 R2)プロセッサの負荷が 100%未満であること。 R3)プロセッサが所与の時間間隔内で一定のプロセッサ
時間を保証されていること。 R4)スレッドが非同期的に停止することは許可されない
こと。即ち、停止点以外では停止しないこと。 R5)交換点において、スレッドを停止し、それを停止点
に残し、正規の方法で続けることができること。
プロセッサが 100%以下の負荷を持つ (R2)場合は、1
つのプロセスの全てのスレッドが停止する時点が存在す
る。交換スレッドが使用可能であり、これがそのプロセ
スの他のアプリケーションスレッドの優先度より低い優
先度を持つ場合は、このプロセスは常に所与の時間間隔
内に使用可能なプロセッサ時間の一部分を受信している
ので (R3)、交換スレッドがこの時点で起動される。交
換スレッド自身を除いて全てのアプリケーションスレッ
ドが、一定の停止点で停止したことが保証される (R
4)。従って交換スレッドは、交換動作を実行するために
使用可能なプロセッサ時間を利用し、停止点にある全て
のアプリケーションスレッドを停止させる (R5)。
換点が使用可能であることがある。多くの交換点が単純
なミューテックス動作であり、共通データへの並行アク
セスを妨げる場合がある。多数のオペレーティングシス
テムが、ミューテックスで停止したスレッドの単純なア
ボートを許可しない。従って、「Mutex::get」でスター
トし「Mutex::rel」で終わるミューテックスは、潜在的
な交換点として除外することができる。「Mutex::get」
と「Mutex::rel」との間に他の停止点は存在しないこ
と、及びミューテックスは同一プロセスのスレッドによ
ってのみ用いられることとの条件の下に、全てのスレッ
ドが停止する時にこのミューテックスではスレッドが停
止しないことが分かる。従って、これらの条件の下に、
ミューテックスは交換点として除外することができる。
実行され、そこで交換されるべきスレッドがそれ自身ア
ボート状態に移る。この場合、オペレーティングシステ
ムが特別なリターンコードを用いてアボート状態を終了
させる。このリターンコードは、更にエラーコード「ab
ort 」を表示する。アボートの場合、このリターンコー
ドは交換のための信号として直接翻訳される。次に、C
++プログラミング言語の例が、交換できないスレッド
に属する「port::receive 」(停止点)について与えら
れる。 (08) buf.clear(); (09) errCode = servicePort.receive(buf, TimeOutPer
iod); (15) if(errCode == Port::TimeOut) { (16) error(myName, "Service is Time out"); //
リターンなし (17) }
ログラムテキストの一部分を構成するものではなく、単
にラインを識別するために用いられている。ライン(08)
においては、バッファ「buf 」は受信されるデータのた
めにクリアされる。ライン(09)の「receive 」ステート
メントでバッファ「buf 」が新しいデータで満たされ
る。第2のパラメータ「receive 」ステートメントの
「TimeOutPeriod 」は、例えばクライアントによって引
き起こされるクラッシュのような無制限の遅延時間を防
ぐための時間超過に対する値である。ライン(15)では、
時間超過に対するエラーコード(「Time out」)がテス
トされる。
「port::receive 」についての例を変更する。従って、
これが交換可能のスレッドに属する。 (01) ExcThread excThread(...); // 交換スレッドオブ
ジェクトの生成 (02) ... (08) buf.clear(); (09) errCode = servicePort.receive(buf, TimeOutPer
iod); (10) if(errCode == Port::Aborted) { // 交換の信号 (11) Bin state; state < < object1 < < object2
< < ...; (12) ... // 全ての不要オブジェクトの削除 (13) excThread.setExchangeInfo(ThreadName,Rece
iveExcPointld, state);// この点へのリターンなし (14) } (15) if(errCode == Port::TimeOut) { (16) error(myName, "Service is Time out"); //
リターンなし (17) }
ブジェクト主要点のプログラム部分を示す(ライン(0
1))。交換不可能の例「port::receive 」に比較して新
たに付加されたラインのみ説明する。ライン(10)では、
エラーコード「Port::Aborted」がテストされ、交換が
検出されたか否かを明確にする。交換が行われる場合に
は、先ずスレッドのローカルオブジェクトの状態が集め
られる(ライン(11))。状態は、オペレータ「< < 」及
び「> > 」を定義する「Bin 」型の特別なオブジェクト
に集められる。オペレータ「< < 」はオブジェクトの状
態を集め、オペレータ「> > 」はそれらを復元する。次
に、そのスレッドは、オブジェクトを削除し、他のメジ
ャーを遂行してリソースを無駄にしないようにすること
ができる(ライン(12))。最後の「ExcThread.setExcha
ngeInfo 」の呼出しの後、集められた状態は、交換スレ
ッドから新しいプロセスに送信される(ライン(13))。
第1パラメータ(ThreadName)は呼出されたスレッドを示
し、第2パラメータ(ReceiveExcPointld) は呼出された
スレッド中での交換点を表す整数変数であり、第3パラ
メータ(state) は送出されるべき状態を表す。スレッド
は決して「setExchangeInfo 」から戻ることはない。
態を集め、古いプロセスが停止した後で、それぞれの点
(再開始点)で新しいプロセスのスレッドがスタートす
る必要がある。従って、再開始点は、種々の他の機能の
呼出しが終了するまでは到達しない機能中に存在すると
いう問題がある。従って、新しいプロセスの呼出しの
後、先ず、他のステートメントを実行せずに再開始点に
到達すべきである。これは、例えばC++プログラミン
グ言語の機能では、「goto」命令によって達成すること
ができる。機能の開始時点で、先ず再開始点を含む機能
へのジャンプが行われる。これは、複数の機能レベルを
介して実現することができる。再開始点に到達した後
は、状態変数が再び設定され、古いプロセスがアボート
する前における次のステートメントであった筈のステー
トメントにより、新しいプロセスが遂行される。
示す。 (01) Static int restart; (02) void fctB(){ (03) if(restart) goto ExcPointX;// 'fctB'中に
はこの交換点のみ (04) ... (05) ExcPointX: (06) if(restart) "reset state"; (07) ... // 機能'fctB'中のローカル交換点 (08) } (09) void fctA(){ (10) if(restart) goto ExcPointX;// 'fctA'中に
はこの交換点のみ (11) ... (12) ExcPointX: fctB(); (13) ... (14) } (15) void threadBody(){ (16) restart = getExcInfo(ThreadName, excPoin
t, deliveredState); (17) if(restart) (18) switch(excPointld){ (19) ExcPointldX: goto ExcPointX; (20) ExcPointldY: goto ExcPointY; (21) ... (22) } (23) ... (24) ExcPointX: fctA(); (25) ... (26) }
「fctA」を生成させ、それが再開始点を含む機能「fct
B」を生成させる。先ず、機能「threadBody」で「resta
rt 」が真実か否かがテストされる(ライン(17))。真
実ならば、それぞれの再開始点が選択され、それぞれの
ジャンプ目的地へのジャンプが行われる(ExcPointX;
(ライン(24))。そこでは機能「fctA」が呼出される。
機能「fctA」においては(ライン(09)乃至(14))同一の
手順が繰り返される。ジャンプ目的地「ExcPointX」
(ライン(12))では機能「fctB」にジャンプする。即
ち、機能「fctB」(ライン(02)乃至(08))中のジャンプ
目的地「ExcPointX 」(ライン(05))にジャンプする。
構成されることになる。状態転送を付加的に含む上記の
例「port::receive 」を用いて説明する。この状態転送
は、以下の例のライン(01)乃至(05)に記述されている。 (01) ExcThread excThread(...); // 交換スレッドオブ
ジェクトの生成 (02) ... (03) ReceiveExcPoint: (04) if(restart){ (05) deliveredState > > object1 > > object2 >
< ...; (06) excThread.restartPointReached(deliveredSt
ate); (07) } (08) buf.clear(); (09) errCode = servicePort.receive(buf,TimeOutPeri
od); (10) if(errCode == Port::Aborted) { // 交換の信号 (11) Bin state; state < < object1 < < object2
< < ...; (12) ... // 全ての不要オブジェクトの削除 (13) excThread.setExchangeInfo(ThreadName,Rece
iveExcPointld,state);// この点へのリターンなし (14) } (15) if(errCode == Port::TimeOut) { (16) error(myName, "Service is Time out"); //
リターンなし (17) }
5)で比較する)がメソッド「ExcThread.restartPointRe
ached 」の呼出し(ライン(06))で終了する。これによ
り、新しいプロセスの全てのアプリケーションスレッド
が、確実に同時にスタートする。「restartPointReache
d 」のパラメータ「deliveredState」は、状態が正確に
読取られたか否かをテストするために必要である。
通信を行う。このため、古いプロセスのポートは、なお
新しいプロセス中に存在する(ポート変換)。コーラス
オペレーティングシステムにおいては、ポート変換は容
易に実現される。ポートの状態は、他のオブジェクトの
状態と同様の方法で送信される。その相違は、ポートの
状態が特別なメソッド「Port::migrate 」と共に転送さ
れることのみである。古いプログラムの一部分をなすプ
ログラムの例を以下に示す。 (01) Bin state (02) ... (03) state < < ... < < servicePort.migrate() < <
...; (05) ... (06) excThread.setExchangeInfo(ThreadName,ExcPoint
ld, state);
から移動されたポートが直接作り上げられる。メソッド
「Port::migrate 」を処理するために用いられる時間の
間、外部のメッセージが失われることはない。まだ到着
しつつある全てのメッセージは、ポートのキューに行列
しており、そのポートと共に新しいプロセスに送出され
る。
けるメッセージのフローチャートを示す。先ずプロセス
A1 がスタートする。プロセスA1 がプロセスA2 で置
換されるものとする。従ってプロセスA1 は前駆コンポ
ーネントを表し、プロセスA2 は後継コンポーネントを
表す。交換は、特別なソフトウェアコンポーネントとし
てノードに収容されている置換サーバーAMによって制
御される。図7においては、置換サーバーAMはAMと
表記された長方形の記号で表されている。
は、プロセスA1 及びA2 のアプリケーションスレッド
とそれぞれの交換スレッドE(A1)及びE(A2)との関係を
示す。図7のメッセージフローチャートは、各プロセス
A1 及びA2 に対して1つのアプリケーションスレッド
A(A1)及びA(A2)のみを示すことが明らかである。種々
のメカニズム(例えば「Port::send/Port::receive」、
「Semaphore::get/Semaphore::rel 」)によって実現さ
れるメッセージの流れは、それぞれの矢印で特徴付けら
れている。
プロセスA1 がロードされてスタートする(点P1 )。
このプロセスは交換スレッドE(A1)を発生し(矢印CET
1)、置換サーバーAMにメッセージを送る(矢印NACH1
)。置換サーバーAMは応答し(矢印OKS )、これに
より後続のコンポーネントがないことを表示する。続い
て、プロセスA1 のアプリケーションスレッドA(A1)
が、プロセスA1 の交換スレッドE(A1)のスタートを同
期する(矢印SYNCS1)。次に、アプリケーションスレッ
ドはそれらの元のタスク(点P2 )に移る。
A(A1)によるプロセスA1 の交換スレッドE(A1)のスタ
ートの同期の後、交換スレッドE(A1)が、アプリケーシ
ョンスレッドA(A1)の優先度より低い優先度を自身に設
定する(点P3 )。これは、アプリケーションスレッド
A(A1)に対する交換スレッドE(A1)の影響を可能な限り
小さく保つために行われる。更に、点P3 で交換スレッ
ドE(A1)が交換ポートを発生し、これにより後継コンポ
ーネント(プロセスA2 )がこのポートに到着すること
ができる。次に、交換スレッドE(A1)が、交換の準備が
完了したことを置換サーバーAMに信号する(矢印RFG
1)。
継コンポーネントとしてプロセスA2 がロードされ、ス
タートし(点P4 )、第2プロセスA2 の交換スレッド
E(A2)が発生される(矢印CET2)と、先ず置換サーバー
AMにメッセージ(矢印NACH2 )が送られる。置換サー
バーAMは、プロセスA2 のアプリケーションスレッド
A(A2)の一つに、後継コンポーネントが前駆コンポーネ
ント(プロセスA1 )を置換することを表示する応答を
送る(矢印OKR )。続いて、このプロセスA2のアプリ
ケーションスレッドA(A2)が、前駆コンポーネントの交
換ポートに対するそれぞれの参照符号を発生し(点P5
)、プロセスA1 の交換スレッドE(A1)に交換手順が
スタートしたことを知らせる(矢印STARE )。
セスの交換スレッドE(A1)を起動する。最初に、交換ス
レッドE(A1)が自身の交換ポートをアクセス不能にし、
これにより他のコンポーネント(プロセス)が交換メッ
セージを送って来ないようにする(点P6 )。全てのプ
ロセスA1 のアプリケーションスレッドA(A1)が停止し
た時に、交換スレッドE(A1)が、全てのスレッドが停止
した旨のメッセージを受取り(矢印ALLBL )、次に全て
のプロセスA1 のアプリケーションスレッドA(A1)にア
ボート命令を与える(矢印ABTHR )。交換手順の継続の
ための命令(矢印RETHR )を第1プロセスA1 の交換ス
レッドE(A1)から受信すると、プロセスA1 の各アプリ
ケーションスレッドA(A1)がその状態を集め(点P7
)、アクノリッジ信号を交換スレッドE(A1)に送り
(矢印ABCOM )、終了時点でそれ自身を消去する(点P
8 )。
第1プロセスA1 のアプリケーションスレッドA(A1)の
種々の状態を集め(点P9 )、それらを第2プロセスA
2 のアプリケーションスレッドA(A2)に送る(矢印REPA
S )。これは交換手順の開始を知らせることになる(矢
印STARE を参照)。受信された状態はアプリケーション
スレッドA(A2)に運ばれる(点P10)。この状態はそれ
らの状態の部分を引き継いでおり、これからそれらのオ
ブジェクトを再構成する(点P11)。同時に、それによ
り交換スレッドE(A2)が通知を受ける(矢印SYNCS2)。
全ての再開始点への到達が完了した後、この交換スレッ
ドE(A2)は、それらの元のタスクを実行するためにアプ
リケーションスレッドA(A2)を解放する(矢印STACO
)。
E(A2)が第1プロセスA1 の交換スレッドE(A1)に、交
換手順が完了した旨の信号を送る(矢印ALLAB )。第1
プロセスA1 の交換スレッドE(A1)は、置換サーバーに
停止メッセージを送り(矢印STOP)、自身を停止させ
る。次に、第2プロセスA2 の交換スレッドE(A2)は、
それ自身、更に後の時点で後継コンポーネントにより置
換されることになるかも知れない。続いて、交換スレッ
ドが交換ポートを発生し、自身を最も低い優先度レベル
に設定し(点P12)、置換サーバーAMに対し、交換ス
レッドが交換の準備を完了した旨の通知を行う(矢印RF
G2)。
を含むコンピュータを具えるコンピュータシステムを示
す図である。
タシステムを示す図である。
で表した図である。
態を記号で表した図である。
を含む制御回路を具えるスイッチングシステムを示す図
である。
ージの流れを示す図である。
Claims (8)
- 【請求項1】 制御回路(3;7,8;28)を具える通信システ
ムであって、該制御回路が、 メッセージベースのオペレーティングシステム(4) 、ア
プリケーションソフトウェア(5,9) 及びアプリケーショ
ンソフトウェア(5,9) を交換する手段を含み、且つアプ
リケーションソフトウェアが交換される時に、置換され
るべき古いソフトウェアコンポーネントが状態転送を遂
行するようにし、一定の点で停止させて有効なメッセー
ジを新しいソフトウェアコンポーネントに送るようにす
る通信システムにおいて、 アプリケーションソフトウェアが、少なくとも1つのア
プリケーションスレッド(14)及び交換スレッド(16)を有
するプロセスを少なくとも含み、古いプロセスのアプリ
ケーションスレッド(14)が交換点で停止した後に、交換
されるべき古いプロセスが少なくともその状態を集める
ために供給され、更に、古いプロセスの交換スレッド(1
4)が少なくとも状態を交換ポート(17;22,23)を通して新
しいプロセスに転送するために用いられることを特徴と
する通信システム。 - 【請求項2】 アプリケーションスレッド(14)が、少な
くとも交換されるべき古いプロセスのアプリケーション
スレッド(14)の状態を集めるための第1部分を持ち、且
つ集められた状態を古いプロセスの交換スレッド(16)へ
送るために用いられ、更に、新しいプロセスのアプリケ
ーションスレッド(14)が、古いプロセスの交換スレッド
(16)から状態を引き継ぐため及び状態に関するオブジェ
クトを再構成するための第2部分を持つことを特徴とす
る請求項1に記載の通信システム。 - 【請求項3】 制御回路(3;7,8;28)が、プロセスをロー
ドしスタートするため及び新たにスタートしたプロセス
が古いプロセスに代わるべきか否かを認識するために用
いられる他のソフトウェアコンポーネントとして置換サ
ーバー(6,12)を含むことを特徴とする請求項1又は2に
記載の通信システム。 - 【請求項4】 古いプロセスを交換するために用いられ
る新しいプロセスのロード及びスタートの後、正規のプ
ログラムルーティンをスキップし、先ず古いプロセスの
交換点に対応する交換点へのジャンプが行われることを
特徴とする請求項1乃至3のいずれか1項に記載の通信
システム。 - 【請求項5】 複数のプロセスが交換されるべき場合に
は、これらのプロセスが連続的に交換されることを特徴
とする請求項1乃至4のいずれか1項に記載の通信シス
テム。 - 【請求項6】 新しいソフトウェアコンポーネントを置
換サーバー(6,12)へ送信媒体を介して送るためにメンテ
ナンスデバイス(2,29)が用いられることを特徴とする請
求項1乃至5のいずれか1項に記載の通信システム。 - 【請求項7】 少なくとも1つのコンピュータ(1;7,8)
を具えるコンピュータシステムであって、 メッセージベースのオペレーティングシステム(4) 、ア
プリケーションソフトウェア(5,9) 及びアプリケーショ
ンソフトウェア(5,9) を交換する手段を含み、且つアプ
リケーションソフトウェアが交換される時に、置換され
るべき古いソフトウェアコンポーネントが状態転送を遂
行するようにし、一定の点で停止させて有効なメッセー
ジを新しいソフトウェアコンポーネントに送るようにす
るコンピュータシステムにおいて、 アプリケーションソフトウェアが、少なくとも1つのア
プリケーションスレッド(14)及び交換スレッド(16)を有
するプロセスを少なくとも含み、古いプロセスのアプリ
ケーションスレッド(14)が交換点で停止した後に、交換
されるべき古いプロセスが少なくともその状態を集める
ために供給され、更に、古いプロセスの交換スレッド(1
4)が少なくとも状態を交換ポート(17;22,23)を通して新
しいプロセスに転送するために用いられることを特徴と
するコンピュータシステム。 - 【請求項8】 メッセージベースのオペレーティングシ
ステム(4) 、アプリケーションソフトウェア(5,9) 及び
アプリケーションソフトウェア(5,9) を交換する手段を
含み、アプリケーションソフトウェアが交換される時
に、置換されるべき古いソフトウェアコンポーネントが
状態転送を遂行するようにし、一定の点で停止させて有
効なメッセージを新しいソフトウェアコンポーネントに
送るようにする、システムのためのソフトウェアコンポ
ーネントを交換する方法において、 アプリケーションソフトウェアが、少なくとも1つのア
プリケーションスレッド(14)及び交換スレッド(16)を有
するプロセスを少なくとも含み、古いプロセスのアプリ
ケーションスレッド(14)が交換点で停止した後に、交換
されるべき古いプロセスが少なくともその状態を集める
ために供給され、更に、古いプロセスの交換スレッド(1
4)が少なくとも状態を交換ポート(17;22,23)を通して新
しいプロセスに転送するために用いられることを特徴と
する方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE19617976A DE19617976A1 (de) | 1996-05-06 | 1996-05-06 | Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen |
| DE19617976:9 | 1996-05-06 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JPH10143377A true JPH10143377A (ja) | 1998-05-29 |
| JPH10143377A5 JPH10143377A5 (ja) | 2005-04-07 |
| JP3912441B2 JP3912441B2 (ja) | 2007-05-09 |
Family
ID=7793362
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11560697A Expired - Fee Related JP3912441B2 (ja) | 1996-05-06 | 1997-05-06 | 通信システム、コンピュータシステム及びソフトウェアコンポーネント交換方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US6634025B1 (ja) |
| EP (1) | EP0807883B1 (ja) |
| JP (1) | JP3912441B2 (ja) |
| DE (2) | DE19617976A1 (ja) |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE19803697C2 (de) * | 1998-01-30 | 2000-03-16 | Ericsson Telefon Ab L M | Verfahren zum Aufrüsten eines Softwaresystems und Vorrichtung zur Durchführung des Verfahrens |
| US6385770B1 (en) | 1999-01-29 | 2002-05-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Software upgrade |
| JP2001043070A (ja) * | 1999-07-29 | 2001-02-16 | Nec Corp | 設定情報自動復帰方法及び装置並びに設定情報自動復帰プログラムを記録した記録媒体 |
| FR2810423A1 (fr) * | 2000-06-16 | 2001-12-21 | Suntech | Systeme informatique modulaire et procede associe |
| GB2411995B (en) * | 2001-04-11 | 2005-10-26 | Sun Microsystems Inc | Performing upgrades of a Java platform |
| US7370322B1 (en) * | 2001-04-11 | 2008-05-06 | Sun Microsystems, Inc. | Method and apparatus for performing online application upgrades in a java platform |
| US20030005408A1 (en) * | 2001-07-02 | 2003-01-02 | Pradeep Tumati | System and method for creating software modifiable without halting its execution |
| US20030092438A1 (en) * | 2001-11-14 | 2003-05-15 | Moore Brian J. | Method and apparatus for stabilizing calls during a system upgrade or downgrade |
| AU2003209028A1 (en) * | 2002-02-07 | 2003-09-04 | Idetic, Inc. | A plug-in api for modular network transaction processing |
| US7117506B2 (en) | 2002-02-07 | 2006-10-03 | Mobitv, Inc. | Plug-in API for modular network transaction processing |
| US7234056B2 (en) * | 2002-09-24 | 2007-06-19 | Inrange Technologies Corp. | Method and apparatus for downloading executable code in a non-disruptive manner |
| US7698700B2 (en) * | 2003-04-17 | 2010-04-13 | International Business Machines Corporation | System quiesce for concurrent code updates |
| US8276136B2 (en) * | 2007-12-11 | 2012-09-25 | Red Hat, Inc. | Transparent configuration of a network appliance |
| US8418164B2 (en) | 2008-05-29 | 2013-04-09 | Red Hat, Inc. | Image install of a network appliance |
| CN101616028B (zh) * | 2009-06-25 | 2012-02-29 | 中兴通讯股份有限公司 | 一种通信程序业务不中断升级方法及系统 |
| US8171137B1 (en) | 2011-05-09 | 2012-05-01 | Google Inc. | Transferring application state across devices |
| US8224894B1 (en) | 2011-05-09 | 2012-07-17 | Google Inc. | Zero-click sharing of application context across devices |
| US8812601B2 (en) * | 2011-05-09 | 2014-08-19 | Google Inc. | Transferring application state across devices with checkpoints |
| US8819660B2 (en) * | 2011-06-29 | 2014-08-26 | Microsoft Corporation | Virtual machine block substitution |
| US9184800B2 (en) | 2012-07-16 | 2015-11-10 | Google Inc. | Automated sharing of application data over a near field communication link |
| US9125180B1 (en) | 2013-03-15 | 2015-09-01 | Google Inc. | Techniques for automatically establishing a long-lasting connection across computing devices configured for short-range wireless communication |
| US20150143354A1 (en) * | 2013-11-19 | 2015-05-21 | Suresh Mathew | Zero downtime deployment and rollback |
| CN105450782B (zh) * | 2016-01-15 | 2018-11-06 | 网宿科技股份有限公司 | 一种无丢包零停机重启网络服务的方法和系统 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5155847A (en) * | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
| US4954941A (en) * | 1988-08-31 | 1990-09-04 | Bell Communications Research, Inc. | Method and apparatus for program updating |
| US5155837A (en) | 1989-03-02 | 1992-10-13 | Bell Communications Research, Inc. | Methods and apparatus for software retrofitting |
| US5210854A (en) * | 1989-06-14 | 1993-05-11 | Digital Equipment Corporation | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version |
| JP2886961B2 (ja) * | 1990-09-19 | 1999-04-26 | 株式会社日立製作所 | プログラム入替方法 |
| JP2582956B2 (ja) * | 1991-05-07 | 1997-02-19 | 三菱電機株式会社 | プログラマブル制御装置 |
| US5410703A (en) * | 1992-07-01 | 1995-04-25 | Telefonaktiebolaget L M Ericsson | System for changing software during computer operation |
| JP2741994B2 (ja) * | 1992-08-28 | 1998-04-22 | 富士通株式会社 | ジョブ環境動的変更機能を持つ処理装置および処理方法 |
| JPH0683605A (ja) * | 1992-09-07 | 1994-03-25 | Fujitsu Ltd | 改変したプログラムを実行するデータ処理方式 |
| US5359730A (en) * | 1992-12-04 | 1994-10-25 | International Business Machines Corporation | Method of operating a data processing system having a dynamic software update facility |
| US5613133A (en) * | 1994-09-09 | 1997-03-18 | Unisys Corporation | Microcode loading with continued program execution |
| US5682533A (en) * | 1994-09-27 | 1997-10-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Updating software within a telecommunications switch without interrupting existing communication and neither moving nor converting data |
| SE504943C2 (sv) * | 1994-12-09 | 1997-06-02 | Ericsson Telefon Ab L M | Synkroniseringsförfarande som tillåter tillståndsöverföring |
| US5619698A (en) * | 1995-05-05 | 1997-04-08 | Apple Computer, Inc. | Method and apparatus for patching operating systems |
| US5764992A (en) * | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
| US5845077A (en) * | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer |
| US6161218A (en) * | 1996-01-16 | 2000-12-12 | Sun Microsystems Inc. | Software patch architecture |
| US5761504A (en) * | 1996-02-16 | 1998-06-02 | Motorola, Inc. | Method for updating a software code in a communication system |
| US6049671A (en) * | 1996-04-18 | 2000-04-11 | Microsoft Corporation | Method for identifying and obtaining computer software from a network computer |
| US5797016A (en) * | 1996-10-29 | 1998-08-18 | Cheyenne Software Inc. | Regeneration agent for back-up software |
| US6202205B1 (en) * | 1998-07-21 | 2001-03-13 | Hewlett-Packard Company | System and method for profile-based, on-the-fly optimization of library code |
-
1996
- 1996-05-06 DE DE19617976A patent/DE19617976A1/de not_active Withdrawn
-
1997
- 1997-04-25 EP EP97201240A patent/EP0807883B1/de not_active Expired - Lifetime
- 1997-04-25 DE DE59710399T patent/DE59710399D1/de not_active Expired - Fee Related
- 1997-05-05 US US08/851,305 patent/US6634025B1/en not_active Expired - Fee Related
- 1997-05-06 JP JP11560697A patent/JP3912441B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0807883A3 (de) | 2000-05-31 |
| DE19617976A1 (de) | 1997-11-13 |
| EP0807883B1 (de) | 2003-07-09 |
| DE59710399D1 (de) | 2003-08-14 |
| JP3912441B2 (ja) | 2007-05-09 |
| US6634025B1 (en) | 2003-10-14 |
| EP0807883A2 (de) | 1997-11-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3912441B2 (ja) | 通信システム、コンピュータシステム及びソフトウェアコンポーネント交換方法 | |
| Hofmeister et al. | A framework for dynamic reconfiguration of distributed programs | |
| EP0343820B1 (en) | Temporary state preservation for a distributed file service | |
| US6105074A (en) | Data processing method and device | |
| US5987511A (en) | Communication system capable of exchanging software and restarting with all information preserved | |
| US7209972B1 (en) | High speed data transfer mechanism | |
| EP0649089A1 (en) | System and method for optimizing message flows between agents in distributed computations | |
| CN111638970A (zh) | 以网络为中心的进程控制系统中的冗余 | |
| US6226694B1 (en) | Achieving consistency and synchronization among multiple data stores that cooperate within a single system in the absence of transaction monitoring | |
| CA2904253C (en) | Computer system using in-service software upgrade | |
| JP2710896B2 (ja) | 通信オートマトンセットの開発を支援する方法 | |
| US11500690B2 (en) | Dynamic load balancing in network centric process control systems | |
| EP1293900A2 (en) | External event processor system and method | |
| CN111641667B (zh) | 网络中心过程控制 | |
| JP4976128B2 (ja) | サーバ間の透過的なセッション移送 | |
| JP2017194729A (ja) | 計算機システムおよびシステム状態再現方法 | |
| CN116820430A (zh) | 异步读写方法、装置、计算机设备及存储介质 | |
| CN115567385A (zh) | 一种配置参数的管理方法及装置 | |
| JP5251197B2 (ja) | メッセージ処理方法、メッセージ処理装置、及びプログラム | |
| EP4664212A1 (en) | Managing introduction of updates in a process control function | |
| RU2815598C1 (ru) | Способ создания робототехнических систем | |
| KR100716169B1 (ko) | 네트워크 관리 시스템에서의 메시지 처리 장치 및 방법 | |
| US20240103945A1 (en) | Process image sharing across multiple programmable automation controllers | |
| JP2568374B2 (ja) | ネットワーキングコード用シミュレーション装置 | |
| Purtilo | A FRAMEWORK FOR DYNAMIC RECONFIGURATION OF DISTRIBUTED PROGRAMS |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040506 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040506 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060425 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061128 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070123 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |