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
Application number
JP9115606A
Other languages
English (en)
Other versions
JPH10143377A5 (ja
JP3912441B2 (ja
Inventor
Steffen Hauptmann
ハウプトマン シュテフェン
Josef Wasel
ヴァーゼル ヨゼフ
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.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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 Philips Electronics NV filed Critical Philips Electronics NV
Publication of JPH10143377A publication Critical patent/JPH10143377A/ja
Publication of JPH10143377A5 publication Critical patent/JPH10143377A5/ja
Application granted granted Critical
Publication of JP3912441B2 publication Critical patent/JP3912441B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network 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

(57)【要約】 (修正有) 【課題】 短時間の遅延時間を除いて動作が制限されな
いソフトウェアコンポーネントの交換手順を提供する。 【解決手段】 通信システムの制御回路がメッセージベ
ースのオペレーティングシステム、アプリケーションソ
フトウェア、及びアプリケーションソフトウェアを交換
する手段を含む。アプリケーションソフトウェアが交換
される時に、古いソフトウェアコンポーネントが状態転
送を遂行し、一定の点で停止して有効なメッセージを新
しいソフトウェアコンポーネントに送る。アプリケーシ
ョンソフトウェアは、少なくとも1つのアプリケーショ
ンスレッド14及び交換スレッドを有する古いプロセスを
含み、古いプロセスのアプリケーションスレッド14が交
換点で停止した後に、交換されるべき古いプロセスが少
なくともその状態を集める。古いプロセスの交換スレッ
ド14が少なくとも状態を交換ポートを通して新しいプロ
セスに送信する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、制御回路を具える
通信システムであって、該制御回路が、メッセージベー
スのオペレーティングシステム、アプリケーションソフ
トウェア及びアプリケーションソフトウェアを交換する
手段を含み、且つアプリケーションソフトウェアが交換
される時に、置換されるべき古いソフトウェアコンポー
ネントが状態転送を遂行するようにし、一定の点で停止
させて有効なメッセージを新しいソフトウェアコンポー
ネントに送るようにする通信システムに関する。
【0002】通信システムは、ソフトウェアを長期間実
際に連続的に使用することができるコンピュータシステ
ム又は制御回路を含む。ソフトウェアにエラーがある場
合、或いは新しい要求がある場合、或るソフトウェアコ
ンポーネントを更新しなければならない場合がある。こ
のような場合には通信システムの休止時間を最小にする
必要がある。
【0003】スイッチングシステムのソフトウェアコン
ポーネントを交換する際に実際上休止時間のない通信シ
ステムがUS-A-5,155,837号から既知である。交換する前
に、古いソフトウェアが動作している間に、先ず、全て
のレジスタ、プロセス及びメモリーユニットの内容及び
状態を特別なメモリーにセーブする(7欄30乃至36
行)。次にソフトウェアの古いバージョンを第1部分に
ロードする。新しいソフトウェアを第2部分に連続的に
ロードする。新しいソフトウェアのロードが完了しテス
トか終了した後、全てのレジスタ、プロセス及びメモリ
ーユニットの内容及び状態をメモリーから新しいソフト
ウェアに転送する。次にこの新しいソフトウェアを動作
させる。しかしながら、従って、新しいソフトウェア
は、古いソフトウェアが停止したプロセス点ではなく、
定められたプログラム点で動作を開始する。更に、個々
のソフトウェアモジュール又はソフトウェアコンポーネ
ントが交換されるのではなく、閉じたソフトウェアが交
換される。
【0004】更に、文献「"Elektrisches Nachrichtenw
esen",第64巻第4号、1990年、第 327乃至333 頁」は、
例えばスイッチングセンターの動作中におけるソフトウ
ェアコンポーネントの交換を開示している。この交換の
場合、システムが古いソフトウェアコンポーネントに必
要な状態転送を遂行させる。予め定められた同期点に到
達すると、古いソフトウェアコンポーネントが停止し、
古い方から新しいソフトウェアコンポーネントにメッセ
ージが送られる。新しいソフトウェアコンポーネントが
スタートし、古いソフトウェアコンポーネントが停止
し、除去される。交換のために具えられるプログラムの
詳細な構成については、この文献からは不明である。
【0005】
【発明が解決しようとする課題】従って、本発明の目的
は、この手順の間は短時間の遅延時間を除いて動作が制
限されない、実現可能なソフトウェアコンポーネントの
交換手順を提供することにある。
【0006】
【課題を解決するための手段】上記の目的は、冒頭の文
節で述べた型の通信システムにおいて、アプリケーショ
ンソフトウェアが、少なくとも1つのアプリケーション
スレッド及び交換スレッドを有するプロセスを少なくと
も含み、古いプロセスのアプリケーションスレッドが交
換点で停止した後に、交換されるべき古いプロセスが少
なくともその状態を集めるために供給され、更に、古い
プロセスの交換スレッドが少なくとも状態を交換ポート
を通して新しいプロセスに転送するために用いられるこ
とによって達成される。
【0007】本発明による交換手順は、例えば複数のス
レッド(連続的に実行されるプログラム部分)を含み、
それらの間に交換を制御するための交換スレッドが存在
するプロセスに関する。本発明によれば、それぞれの古
いプロセスが停止したプログラム点(交換点)で新しい
プロセスがスタートする。更に、古いプロセスの全ての
状態が、古いプロセスの交換スレッドを介して新しい状
態に転送される。しかしながら、これは、ソフトウェア
コンポーネント間でメッセージを交換することを可能に
するオペレーティングシステム(例えばコーラスCHORU
S)を具えるシステムにのみ適用することができる。従
って、メッセージは、以後ポートと称するソフトウェア
インタフェースを介して種々のプロセス間で交換され
る。従って、状態は、古いプロセス及び新しいプロセス
の交換ポートを介して交換される。
【0008】プロセスの交換は、他のプロセスに影響を
与えないように行われる。交換後には、他のクライアン
ト(他のプロセス)から到着するメッセージは新しいプ
ロセスに送信され更に処理される。交換は処理の間の僅
かな遅延が存在するだけで行われる。実用的な研究によ
れば、この遅延は数ミリ秒の範囲である。
【0009】通信システムは、コンピュータシステム、
スイッチングセンター、コンピュータネットワーク、又
は例えばビデオオンデマンドサーバーのようなサーバー
であってもよい。コンピュータシステムは、少なくとも
その中のソフトウェアコンポーネントが交換されるコン
ピュータを含む。
【0010】アプリケーションスレッドは、少なくとも
交換されるべき古いプロセスのアプリケーションスレッ
ドの状態を集めるための第1部分を持ち、且つ集められ
た状態を古いプロセスの交換スレッドへ送るために用い
られる。新しいプロセスのアプリケーションスレッド
が、古いプロセスの交換スレッドから状態を引き継ぐた
め及び状態に関するオブジェクトを再構成するための第
2部分を持つ。
【0011】プロセスの交換は置換サーバーによって開
始される。このサーバーは、別のソフトウェアコンポー
ネントとして制御回路に含まれ、プロセスをロードしス
タートさせるため及び新たにスタートしたプロセスが古
いプロセスに代わるべきか否かを認識するために用いら
れる。メンテナンスデバイスが送信媒体を介して新しい
プロセスを置換サーバーへ送る。
【0012】複数のプロセスの交換が行われる場合はそ
れらが連続的に交換される。従って先ず最初のプロセス
が交換され、次に以後のプロセスが続く。複数のプロセ
スの交換が行われる場合は制御を置換サーバーに渡すこ
とができる。古いプロセスを交換するために用いられる
新しいプロセスがロードされ、スタートすると、正規の
プログラムルーティンをスキップし、先ず古いプロセス
の交換点に対応する交換点へのジャンプが行われる。
【0013】本発明は、更に、少なくとも1つのコンピ
ュータを含むコンピュータシステム及びソフトウェアコ
ンポーネントを交換する方法に関する。本発明のこれら
及び他の観点は、以下に説明する実施例を参照すること
によって明瞭且つ明快になる。
【0014】
【発明の実施の形態】図1はコンピュータ1及びメンテ
ナンスデバイス2を具えるコンピュータシステムを示
す。コンピュータは、ハードウェアコンポーネント3、
オペレーティングシステム4、アプリケーションソフト
ウェア5及び置換サーバー6を含む。オペレーティング
システム4は、メッセージ(例えばオペレーティングシ
ステムに基づくメッセージ)を介して行うアプリケーシ
ョンソフトウェア5のソフトウェアコンポーネント間の
通信を可能にする。従って、メッセージ又はデータがソ
フトウェアインタフェースを介して交換される。以下に
おいては、ソフトウェアインタフェースをポートと称す
る。
【0015】置換サーバー6はソフトウェアプログラム
であり、それによりアプリケーションソフトウェア5の
コンポーネントが交換される。交換されるべきソフトウ
ェアコンポーネントは種々のスレッドを含むプロセス
(アクター)である。スレッドは、プログラムの中の自
律的に連続的に走行する部分である。図1は、円によっ
て個々のソフトウェアコンポーネントを示している。円
の間の結合は、ソフトウェアコンポーネント間のメッセ
ージの流れを示している。
【0016】メンテナンスデバイス2は、リモートコン
ピュータであってもよく、それから新しいソフトウェア
コンポーネントが送出される。従って、新しいソフトウ
ェアコンポーネントについて、このコンピュータで開発
されテストされることが考えられる。新しいソフトウェ
アコンポーネントを送信するために、既知の送信媒体及
びプロトコルを用いることができる。例えば、電話ネッ
トワークによる送信が可能である。しかしながら、(例
えばローカルメンテナンスデバイス(ラップトップ)に
より)新しいソフトウェアコンポーネントをコンピュー
タ1に直接ロードすることもできる。
【0017】図2はコンピュータの他の実施例を示す。
このコンピュータシステムは、ハードウェアインタフェ
ース(例えばイーサネットインタフェース)によって相
互に結合されている種々のノード(例えばパーソナルコ
ンピュータ、ワークステーション等)を有するローカル
エリアネットワークとして構成されている。図2は、例
として種々のプロセス9を含むそれぞれのアプリケーシ
ョンソフトウェアを含むネットワークの2つのノード7
及び8を示している。このようなプロセスは、プロテク
トされたアドレス空間を持ち、多数のポート及び、上述
のように、図2に波線で示されている種々のスレッドを
管理し、それらのポートを通してプロセスが他のプロセ
スとメッセージを交換する。プロセス9は、ポート10を
介してメッセージ11のみを送信し受信することができ
る。ノード7及び8は、ネットワークの他のノード(図
示されていない)にネットワークリンク30を介して結合
される。
【0018】プロセスのスレッドは、更に、それら自身
のそれぞれのポートを介してメッセージを交換すること
ができる。更に、例えばミューテックスMutex 及びセマ
フォールsemaphore によってもメッセージを交換するこ
とができる。ミューテックス(相互排他)は、一定の範
囲には1つのスレッドのみアクセスすることができるメ
ソッドを表す。例えばデータがスレッドからプリンター
に送信される場合である。この場合、スレッドがミュー
テックスを設定すると、このスレッドのみがプリンター
にデータを送信することができる。従って他のスレッド
はデータをプリンターに送ることができない。セマフォ
ールは、限定された数のスレッドのみが一定の範囲にア
クセスすることができる。異なるプロセスのスレッド間
では、それぞれのプロセスのポートを介してのみメッセ
ージを交換することができる。
【0019】図2にその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++プログラ
ミング言語を選択することができる。
【0020】図2のネットワークにおける少なくとも1
つのプロセス9の交換を制御するため、ノード7が更に
置換サーバー12を含む。この置換サーバー12は同様に、
ノード7以外の他のノード(例えばノード8)の部分を
形成することができる。
【0021】置換サーバー6(図1)又は12(図2)に
よって制御される少なくとも1つのプロセスが置換又は
交換される時は、新しいソフトウェアコンポーネント
(新しいプロセス)がロードされ、コンピュータ1(図
1)又はネットワークのノード7又は8(図2)でスタ
ートする。次に、古いソフトウェアコンポーネント(古
いプロセス)の全てのアプリケーションスレッドが停止
され、古いプロセスが全てのオブジェクトの状態を集め
る。新しいプロセスが、古いプロセスによって集められ
た状態を受取り、古いプロセスのポートが全てのペンデ
ィングメッセージと共に新しいプロセスに移る。古いオ
ブジェクト構造が新しいプロセスに受入れられると、次
に新しいプロセスのスレッドが、古いプロセスの点に対
応する点でスタートする。最後に古いプロセスが削除さ
れる。
【0022】コンピュータ又はローカルエリアネットワ
ークの動作中に行われるこの交換に対し、アプリケーシ
ョンソフトウェアのコンポーネント又はプロセスにおい
て、交換不可能なコンポーネントに関する一定の変更が
行われる。交換可能である各プロセスは、交換スレッド
と呼ばれ、交換手順を遂行する付加的なスレッドを含
み、更に、交換中に通信を行うために用いられる付加的
な交換ポートを含む。
【0023】図3は、交換に適しているプロセスが含ま
れていることを記号で表している。プロセス13が正方形
で表され、そのアプリケーションスレッド14が波線とし
て表示されている。プロセス13は1つのクライアントと
ポート15を通してデータを交換する。クライアントは、
他のソフトウェアコンポーネントである。上述のよう
に、交換可能のプロセスは付加的に交換スレッド16を含
み、付加的な交換ポート17を有する。
【0024】図4は、プロセスの交換又は置換のための
メッセージの流れを示す。クライアント18が、これまで
にインストールされたプロセス20のポート19(以下サー
ビスポートという)にメッセージを送る。プロセス20
(前駆コンポーネント)が新しいプロセス21(後継コン
ポーネント)に交換されることになる。後継コンポーネ
ント21がロードされ、スタートすると、後継コンポーネ
ント21の交換ポート22から、前駆コンポーネント20の交
換ポート23に対して、交換命令が送られる。図4におけ
る交換命令は参照記号(1) で表されている。前駆コンポ
ーネント20は、停止した後、その状態を集め、それらを
後継コンポーネント21の交換ポート22に送る(矢印(2)
)。全ての送信が終わると、前駆コンポーネント20が
この通知を受ける(矢印(3) )。次に、古いプロセスの
サービスポート19が、クライアント18に対して、新しい
サービスポート24として、ペンディングメッセージにつ
いてアクセス可能になる。このポートの変更は、点線矢
印(4) で表示されている。
【0025】図5は、交換の後のメッセージの流れを示
す。クライアント18が、ここで後継コンポーネント21の
サービスポート24にメッセージを送る。前駆コンポーネ
ント20が削除される。これは、前駆コンポーネント20を
表す正方形の上の2本の交差線によって表示されてい
る。
【0026】上述の交換手順においては、交換可能なプ
ロセスがスタートしている。複数のプロセスを交換する
場合は、この交換手順を幾つかのステップに分けること
ができる。従って、1つのステップは各回1つのプロセ
スの交換である。この結果、これは、多数のプロセスを
同時に交換する場合に比較して、交換手順を制御するこ
とがより簡便であり、必要なメモリー容量がより少な
い。
【0027】更に、古いプロセスを置換しようとする一
定の新しいプロセスは、例えば他の新しい機能を含むこ
とがある。古いプロセスとの互換性を保つためには、以
前の機能を新しいプロセスでも更に使用可能にすること
が必要である。古い機能を用いていた全てのクライアン
トが無くなる場合は、古い機能を無効とし、次の交換が
導入される時に全て消去してもよい。
【0028】図1及び2は、動作中に交換可能なソフト
ウェアについて2つの応用の可能性を示す。他の応用の
可能性が、メッセージを送信するために用いられるシス
テムについて存在する。1つの例は、主ブロックが図6
に示されているスイッチングシステムである。このスイ
ッチングシステムは、入力ライン26で受信した信号を1
又は複数の出力ライン27に送出するスイッチングネット
ワーク25を含む。スイッチングネットワークを制御する
ため、必要なハードウェア部品に加えて、オペレーティ
ングシステム、アプリケーションソフトウェア及び置換
サーバーを含む制御回路28がある。アプリケーションソ
フトウェアのコンポーネントの交換のために、メンテナ
ンスデバイス2がコンピュータ1と協働する場合と同様
に、制御回路28と協働するメンテナンスデバイス29が存
在する。
【0029】上述のように、交換スレッドは、プロセス
の部分を構成すると共にプロセスの交換のために必要で
ある。このような交換スレッドは、プロセス中のアプリ
ケーションスレッドに対するインタフェースを具える。
このインタフェースはプロセスを交換可能にする。C+
+プログラミング言語におけるインタフェースの使用
は、例えば「ExcThread 」と呼ぶことができるクラス定
義である。アプリケーションスレッドは、このクラス
「ExcThread 」のエンティティを厳密に1つ持つ。この
クラスは3つのメソッド「getExcInfo」、「setExcInf
o」及び「restartPointReached 」を持つ。
【0030】メソッド「ExcThread::getExcInfo 」は、
各アプリケーションスレッドの最初に1度だけ呼出され
る。これは、アプリケーションコンポーネントが新しい
コンポーネントとしてスタートするのか又はこのコンポ
ーネントのより古いバージョンが交換されるのかの情報
を与える。交換の場合においては、メソッド「ExcThrea
d::getExcInfo 」が、古いコンポーネントのアプリケー
ションスレッドの状態、及び、新しいプロセスのアプリ
ケーションスレッドが再スタートできる点を記述するパ
ラメータを与える。
【0031】新しいプロセスのアプリケーションスレッ
ドが全てのオブジェクトを再構成すると、それがメソッ
ド「ExcThread::restartPointReached」を呼出す。この
メソッドは、全てのアプリケーションスレッドのスター
トを同期させるために用いられる。全てのスレッドがこ
のメソッドを用いる前に、このメソッドから抜け出すア
プリケーションスレッドはないことが保証されなければ
ならない。これによって、全てのオブジェクトが、いず
れかのアプリケーションスレッドによって用いられる前
に、確実に初期化される。これは、これらのオブジェク
トが多数のアプリケーションスレッド、例えばポートを
分け合う場合即ちセマフォールの場合に特に重要であ
る。
【0032】メソッド「ExcThread::setExcInfo 」は、
各アプリケーションスレッドによって、アプリケーショ
ンスレッドが交換のために停止した後で1度呼出され
る。このメソッドは、このアプリケーションスレッドの
現在の状態をそのそれぞれの新しいコンポーネントに送
出するために必要である。
【0033】状態の転送は、新しいプロセスにとって、
例えば古いプロセスから状態を引き継ぐために必要であ
る。状態転送は、古いプロセスの停止と新しいプロセス
のスタートとの間で行われる。例えば、状態転送は、古
い電話ディレクトリの状態を新しい電話ディレクトリの
状態の中に再生するために必要である。このような転送
は、例えば新しいフィールド「郵便コード」が加えられ
る場合、又はこのフィールドが他の型を含む(例えば4
桁を5桁にする)場合に必要である。
【0034】プロセスの状態転送とは、そのオブジェク
トの全ての状態が送信されることを意味する。従って各
オブジェクトは2つのメソッドを持つ。1つのメソッド
は状態をフェッチし、1つのメソッドは状態を格納す
る。
【0035】1つのプロセスの全てのアプリケーション
スレッドが、それらが停止できる点で停止した時に、交
換動作がスタートする。これらの点は停止点と呼ばれ
る。スレッドにおいて停止点に到達した時は、その正規
の動作がアボートされ、交換に関する動作が遂行され
る。スレッドが停止できる同期及び通信点は、停止点と
同様に選択される。
【0036】新しいプロセスがスタートできるそれぞれ
の点が、新しいプロセスにおける停止点で使用可能でな
ければならない。これらの点は再スタート点と呼ばれ
る。停止点及び再スタート点は交換点と呼ばれる。新し
いプロセスは、プログラムコード及びオブジェクト構造
で古いプロセスと区別される。新しいプロセスにおいて
は、複数のオブジェクトが消滅、付加又は変化すること
がある。
【0037】次の点は、交換点の例である。 Port::call Port::receive Semaphore::get Mutex::get Thread::delay
【0038】ここではプログラミング言語C++の表記
を選択している。先ず、クラス名を入力し、続いて2つ
のコロンの後にメソッド名を入力する(ClassName::Meth
odName) 。例えば「Mutex::get」は、Mutex 型の全ての
オブジェクトについて使用可能性のメソッド「get 」を
表す。
【0039】交換のための時間が長過ぎる場合には、或
る種のアプリケーション(例えば、ソフトウェアコンポ
ーネントがスイッチングセンターで交換される場合)に
対して問題が生ずることがある。これは、次の5つの条
件が満足される場合は生起しないものと思われる。 R1)アプリケーションが1つのプロセッサを持つシステ
ム上で走行すること。 R2)プロセッサの負荷が 100%未満であること。 R3)プロセッサが所与の時間間隔内で一定のプロセッサ
時間を保証されていること。 R4)スレッドが非同期的に停止することは許可されない
こと。即ち、停止点以外では停止しないこと。 R5)交換点において、スレッドを停止し、それを停止点
に残し、正規の方法で続けることができること。
【0040】プロセッサが使用可能であり (R1)、この
プロセッサが 100%以下の負荷を持つ (R2)場合は、1
つのプロセスの全てのスレッドが停止する時点が存在す
る。交換スレッドが使用可能であり、これがそのプロセ
スの他のアプリケーションスレッドの優先度より低い優
先度を持つ場合は、このプロセスは常に所与の時間間隔
内に使用可能なプロセッサ時間の一部分を受信している
ので (R3)、交換スレッドがこの時点で起動される。交
換スレッド自身を除いて全てのアプリケーションスレッ
ドが、一定の停止点で停止したことが保証される (R
4)。従って交換スレッドは、交換動作を実行するために
使用可能なプロセッサ時間を利用し、停止点にある全て
のアプリケーションスレッドを停止させる (R5)。
【0041】各停止点が交換点である場合は、多数の交
換点が使用可能であることがある。多くの交換点が単純
なミューテックス動作であり、共通データへの並行アク
セスを妨げる場合がある。多数のオペレーティングシス
テムが、ミューテックスで停止したスレッドの単純なア
ボートを許可しない。従って、「Mutex::get」でスター
トし「Mutex::rel」で終わるミューテックスは、潜在的
な交換点として除外することができる。「Mutex::get」
と「Mutex::rel」との間に他の停止点は存在しないこ
と、及びミューテックスは同一プロセスのスレッドによ
ってのみ用いられることとの条件の下に、全てのスレッ
ドが停止する時にこのミューテックスではスレッドが停
止しないことが分かる。従って、これらの条件の下に、
ミューテックスは交換点として除外することができる。
【0042】交換点が実現されると、1つのメソッドが
実行され、そこで交換されるべきスレッドがそれ自身ア
ボート状態に移る。この場合、オペレーティングシステ
ムが特別なリターンコードを用いてアボート状態を終了
させる。このリターンコードは、更にエラーコード「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) }
【0043】例において括弧中に与えられた数字は、プ
ログラムテキストの一部分を構成するものではなく、単
にラインを識別するために用いられている。ライン(08)
においては、バッファ「buf 」は受信されるデータのた
めにクリアされる。ライン(09)の「receive 」ステート
メントでバッファ「buf 」が新しいデータで満たされ
る。第2のパラメータ「receive 」ステートメントの
「TimeOutPeriod 」は、例えばクライアントによって引
き起こされるクラッシュのような無制限の遅延時間を防
ぐための時間超過に対する値である。ライン(15)では、
時間超過に対するエラーコード(「Time out」)がテス
トされる。
【0044】この停止点を交換点に変換するために、
「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) }
【0045】上述の例は、交換のための交換スレッドオ
ブジェクト主要点のプログラム部分を示す(ライン(0
1))。交換不可能の例「port::receive 」に比較して新
たに付加されたラインのみ説明する。ライン(10)では、
エラーコード「Port::Aborted」がテストされ、交換が
検出されたか否かを明確にする。交換が行われる場合に
は、先ずスレッドのローカルオブジェクトの状態が集め
られる(ライン(11))。状態は、オペレータ「< < 」及
び「> > 」を定義する「Bin 」型の特別なオブジェクト
に集められる。オペレータ「< < 」はオブジェクトの状
態を集め、オペレータ「> > 」はそれらを復元する。次
に、そのスレッドは、オブジェクトを削除し、他のメジ
ャーを遂行してリソースを無駄にしないようにすること
ができる(ライン(12))。最後の「ExcThread.setExcha
ngeInfo 」の呼出しの後、集められた状態は、交換スレ
ッドから新しいプロセスに送信される(ライン(13))。
第1パラメータ(ThreadName)は呼出されたスレッドを示
し、第2パラメータ(ReceiveExcPointld) は呼出された
スレッド中での交換点を表す整数変数であり、第3パラ
メータ(state) は送出されるべき状態を表す。スレッド
は決して「setExchangeInfo 」から戻ることはない。
【0046】交換スレッドが交換点で古いプロセスの状
態を集め、古いプロセスが停止した後で、それぞれの点
(再開始点)で新しいプロセスのスレッドがスタートす
る必要がある。従って、再開始点は、種々の他の機能の
呼出しが終了するまでは到達しない機能中に存在すると
いう問題がある。従って、新しいプロセスの呼出しの
後、先ず、他のステートメントを実行せずに再開始点に
到達すべきである。これは、例えばC++プログラミン
グ言語の機能では、「goto」命令によって達成すること
ができる。機能の開始時点で、先ず再開始点を含む機能
へのジャンプが行われる。これは、複数の機能レベルを
介して実現することができる。再開始点に到達した後
は、状態変数が再び設定され、古いプロセスがアボート
する前における次のステートメントであった筈のステー
トメントにより、新しいプロセスが遂行される。
【0047】この場合の実際の動作を以下の例によって
示す。 (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) }
【0048】機能「threadBody」(ライン(15))が機能
「fctA」を生成させ、それが再開始点を含む機能「fct
B」を生成させる。先ず、機能「threadBody」で「resta
rt 」が真実か否かがテストされる(ライン(17))。真
実ならば、それぞれの再開始点が選択され、それぞれの
ジャンプ目的地へのジャンプが行われる(ExcPointX;
(ライン(24))。そこでは機能「fctA」が呼出される。
機能「fctA」においては(ライン(09)乃至(14))同一の
手順が繰り返される。ジャンプ目的地「ExcPointX」
(ライン(12))では機能「fctB」にジャンプする。即
ち、機能「fctB」(ライン(02)乃至(08))中のジャンプ
目的地「ExcPointX 」(ライン(05))にジャンプする。
【0049】再開始点に到達すると、オブジェクトが再
構成されることになる。状態転送を付加的に含む上記の
例「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) }
【0050】交換の後における状態の再構成(ライン(0
5)で比較する)がメソッド「ExcThread.restartPointRe
ached 」の呼出し(ライン(06))で終了する。これによ
り、新しいプロセスの全てのアプリケーションスレッド
が、確実に同時にスタートする。「restartPointReache
d 」のパラメータ「deliveredState」は、状態が正確に
読取られたか否かをテストするために必要である。
【0051】上述のように、プロセスはポートを通して
通信を行う。このため、古いプロセスのポートは、なお
新しいプロセス中に存在する(ポート変換)。コーラス
オペレーティングシステムにおいては、ポート変換は容
易に実現される。ポートの状態は、他のオブジェクトの
状態と同様の方法で送信される。その相違は、ポートの
状態が特別なメソッド「Port::migrate 」と共に転送さ
れることのみである。古いプログラムの一部分をなすプ
ログラムの例を以下に示す。 (01) Bin state (02) ... (03) state < < ... < < servicePort.migrate() < <
...; (05) ... (06) excThread.setExchangeInfo(ThreadName,ExcPoint
ld, state);
【0052】新しいプロセスにおいて、送出された状態
から移動されたポートが直接作り上げられる。メソッド
「Port::migrate 」を処理するために用いられる時間の
間、外部のメッセージが失われることはない。まだ到着
しつつある全てのメッセージは、ポートのキューに行列
しており、そのポートと共に新しいプロセスに送出され
る。
【0053】図7は、以下に説明する交換プロセスにお
けるメッセージのフローチャートを示す。先ずプロセス
A1 がスタートする。プロセスA1 がプロセスA2 で置
換されるものとする。従ってプロセスA1 は前駆コンポ
ーネントを表し、プロセスA2 は後継コンポーネントを
表す。交換は、特別なソフトウェアコンポーネントとし
てノードに収容されている置換サーバーAMによって制
御される。図7においては、置換サーバーAMはAMと
表記された長方形の記号で表されている。
【0054】図7におけるメッセージフローチャート
は、プロセスA1 及びA2 のアプリケーションスレッド
とそれぞれの交換スレッドE(A1)及びE(A2)との関係を
示す。図7のメッセージフローチャートは、各プロセス
A1 及びA2 に対して1つのアプリケーションスレッド
A(A1)及びA(A2)のみを示すことが明らかである。種々
のメカニズム(例えば「Port::send/Port::receive」、
「Semaphore::get/Semaphore::rel 」)によって実現さ
れるメッセージの流れは、それぞれの矢印で特徴付けら
れている。
【0055】図7のフローチャートにおいては、最初に
プロセスA1 がロードされてスタートする(点P1 )。
このプロセスは交換スレッドE(A1)を発生し(矢印CET
1)、置換サーバーAMにメッセージを送る(矢印NACH1
)。置換サーバーAMは応答し(矢印OKS )、これに
より後続のコンポーネントがないことを表示する。続い
て、プロセスA1 のアプリケーションスレッドA(A1)
が、プロセスA1 の交換スレッドE(A1)のスタートを同
期する(矢印SYNCS1)。次に、アプリケーションスレッ
ドはそれらの元のタスク(点P2 )に移る。
【0056】プロセスA1 のアプリケーションスレッド
A(A1)によるプロセスA1 の交換スレッドE(A1)のスタ
ートの同期の後、交換スレッドE(A1)が、アプリケーシ
ョンスレッドA(A1)の優先度より低い優先度を自身に設
定する(点P3 )。これは、アプリケーションスレッド
A(A1)に対する交換スレッドE(A1)の影響を可能な限り
小さく保つために行われる。更に、点P3 で交換スレッ
ドE(A1)が交換ポートを発生し、これにより後継コンポ
ーネント(プロセスA2 )がこのポートに到着すること
ができる。次に、交換スレッドE(A1)が、交換の準備が
完了したことを置換サーバーAMに信号する(矢印RFG
1)。
【0057】プロセスA1 (前駆コンポーネント)の後
継コンポーネントとしてプロセスA2 がロードされ、ス
タートし(点P4 )、第2プロセスA2 の交換スレッド
E(A2)が発生される(矢印CET2)と、先ず置換サーバー
AMにメッセージ(矢印NACH2 )が送られる。置換サー
バーAMは、プロセスA2 のアプリケーションスレッド
A(A2)の一つに、後継コンポーネントが前駆コンポーネ
ント(プロセスA1 )を置換することを表示する応答を
送る(矢印OKR )。続いて、このプロセスA2のアプリ
ケーションスレッドA(A2)が、前駆コンポーネントの交
換ポートに対するそれぞれの参照符号を発生し(点P5
)、プロセスA1 の交換スレッドE(A1)に交換手順が
スタートしたことを知らせる(矢印STARE )。
【0058】プロセスA2 のこのメッセージが第1プロ
セスの交換スレッド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 )。
【0059】第1プロセスA1 の交換スレッドE(A1)が
第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
)。
【0060】最後に、第2プロセスA2 の交換スレッド
E(A2)が第1プロセスA1 の交換スレッドE(A1)に、交
換手順が完了した旨の信号を送る(矢印ALLAB )。第1
プロセスA1 の交換スレッドE(A1)は、置換サーバーに
停止メッセージを送り(矢印STOP)、自身を停止させ
る。次に、第2プロセスA2 の交換スレッドE(A2)は、
それ自身、更に後の時点で後継コンポーネントにより置
換されることになるかも知れない。続いて、交換スレッ
ドが交換ポートを発生し、自身を最も低い優先度レベル
に設定し(点P12)、置換サーバーAMに対し、交換ス
レッドが交換の準備を完了した旨の通知を行う(矢印RF
G2)。
【図面の簡単な説明】
【図1】メンテナンスデバイス及び交換可能のプロセス
を含むコンピュータを具えるコンピュータシステムを示
す図である。
【図2】ローカルエリアネットワークを含むコンピュー
タシステムを示す図である。
【図3】プロセスを記号で表した図である。
【図4】新しいプロセスと古いプロセスとの交換を記号
で表した図である。
【図5】新しいプロセスと古いプロセスとの交換後の状
態を記号で表した図である。
【図6】メンテナンスデバイス及び交換可能のプロセス
を含む制御回路を具えるスイッチングシステムを示す図
である。
【図7】古いプロセスと新しいプロセスとの間のメッセ
ージの流れを示す図である。
【符号の説明】
1 コンピュータ 2 メンテナンスデバイス 3 ハードウェアコンポーネント 4 オペレーティングシステム 5 アプリケーションソフトウェア 6 置換サーバー 7、8 ノード 9 プロセス 10 ポート 11 メッセージ 12 置換サーバー 13 プロセス 14 アプリケーションスレッド 15 ポート 16 交換スレッド 17 交換ポート 18 クライアント 19 ポート 20、21 プロセス 22、23 交換ポート 24 サービスポート 25 スイッチングネットワーク 26 入力ライン 27 出力ライン 28 制御回路 29 メンテナンスデバイス 30 ネットワークリンク

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 制御回路(3;7,8;28)を具える通信システ
    ムであって、該制御回路が、 メッセージベースのオペレーティングシステム(4) 、ア
    プリケーションソフトウェア(5,9) 及びアプリケーショ
    ンソフトウェア(5,9) を交換する手段を含み、且つアプ
    リケーションソフトウェアが交換される時に、置換され
    るべき古いソフトウェアコンポーネントが状態転送を遂
    行するようにし、一定の点で停止させて有効なメッセー
    ジを新しいソフトウェアコンポーネントに送るようにす
    る通信システムにおいて、 アプリケーションソフトウェアが、少なくとも1つのア
    プリケーションスレッド(14)及び交換スレッド(16)を有
    するプロセスを少なくとも含み、古いプロセスのアプリ
    ケーションスレッド(14)が交換点で停止した後に、交換
    されるべき古いプロセスが少なくともその状態を集める
    ために供給され、更に、古いプロセスの交換スレッド(1
    4)が少なくとも状態を交換ポート(17;22,23)を通して新
    しいプロセスに転送するために用いられることを特徴と
    する通信システム。
  2. 【請求項2】 アプリケーションスレッド(14)が、少な
    くとも交換されるべき古いプロセスのアプリケーション
    スレッド(14)の状態を集めるための第1部分を持ち、且
    つ集められた状態を古いプロセスの交換スレッド(16)へ
    送るために用いられ、更に、新しいプロセスのアプリケ
    ーションスレッド(14)が、古いプロセスの交換スレッド
    (16)から状態を引き継ぐため及び状態に関するオブジェ
    クトを再構成するための第2部分を持つことを特徴とす
    る請求項1に記載の通信システム。
  3. 【請求項3】 制御回路(3;7,8;28)が、プロセスをロー
    ドしスタートするため及び新たにスタートしたプロセス
    が古いプロセスに代わるべきか否かを認識するために用
    いられる他のソフトウェアコンポーネントとして置換サ
    ーバー(6,12)を含むことを特徴とする請求項1又は2に
    記載の通信システム。
  4. 【請求項4】 古いプロセスを交換するために用いられ
    る新しいプロセスのロード及びスタートの後、正規のプ
    ログラムルーティンをスキップし、先ず古いプロセスの
    交換点に対応する交換点へのジャンプが行われることを
    特徴とする請求項1乃至3のいずれか1項に記載の通信
    システム。
  5. 【請求項5】 複数のプロセスが交換されるべき場合に
    は、これらのプロセスが連続的に交換されることを特徴
    とする請求項1乃至4のいずれか1項に記載の通信シス
    テム。
  6. 【請求項6】 新しいソフトウェアコンポーネントを置
    換サーバー(6,12)へ送信媒体を介して送るためにメンテ
    ナンスデバイス(2,29)が用いられることを特徴とする請
    求項1乃至5のいずれか1項に記載の通信システム。
  7. 【請求項7】 少なくとも1つのコンピュータ(1;7,8)
    を具えるコンピュータシステムであって、 メッセージベースのオペレーティングシステム(4) 、ア
    プリケーションソフトウェア(5,9) 及びアプリケーショ
    ンソフトウェア(5,9) を交換する手段を含み、且つアプ
    リケーションソフトウェアが交換される時に、置換され
    るべき古いソフトウェアコンポーネントが状態転送を遂
    行するようにし、一定の点で停止させて有効なメッセー
    ジを新しいソフトウェアコンポーネントに送るようにす
    るコンピュータシステムにおいて、 アプリケーションソフトウェアが、少なくとも1つのア
    プリケーションスレッド(14)及び交換スレッド(16)を有
    するプロセスを少なくとも含み、古いプロセスのアプリ
    ケーションスレッド(14)が交換点で停止した後に、交換
    されるべき古いプロセスが少なくともその状態を集める
    ために供給され、更に、古いプロセスの交換スレッド(1
    4)が少なくとも状態を交換ポート(17;22,23)を通して新
    しいプロセスに転送するために用いられることを特徴と
    するコンピュータシステム。
  8. 【請求項8】 メッセージベースのオペレーティングシ
    ステム(4) 、アプリケーションソフトウェア(5,9) 及び
    アプリケーションソフトウェア(5,9) を交換する手段を
    含み、アプリケーションソフトウェアが交換される時
    に、置換されるべき古いソフトウェアコンポーネントが
    状態転送を遂行するようにし、一定の点で停止させて有
    効なメッセージを新しいソフトウェアコンポーネントに
    送るようにする、システムのためのソフトウェアコンポ
    ーネントを交換する方法において、 アプリケーションソフトウェアが、少なくとも1つのア
    プリケーションスレッド(14)及び交換スレッド(16)を有
    するプロセスを少なくとも含み、古いプロセスのアプリ
    ケーションスレッド(14)が交換点で停止した後に、交換
    されるべき古いプロセスが少なくともその状態を集める
    ために供給され、更に、古いプロセスの交換スレッド(1
    4)が少なくとも状態を交換ポート(17;22,23)を通して新
    しいプロセスに転送するために用いられることを特徴と
    する方法。
JP11560697A 1996-05-06 1997-05-06 通信システム、コンピュータシステム及びソフトウェアコンポーネント交換方法 Expired - Fee Related JP3912441B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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