JPH0934700A - 通信システム及びコンピュータシステム - Google Patents

通信システム及びコンピュータシステム

Info

Publication number
JPH0934700A
JPH0934700A JP8123090A JP12309096A JPH0934700A JP H0934700 A JPH0934700 A JP H0934700A JP 8123090 A JP8123090 A JP 8123090A JP 12309096 A JP12309096 A JP 12309096A JP H0934700 A JPH0934700 A JP H0934700A
Authority
JP
Japan
Prior art keywords
component
software
state
message
exchange
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
JP8123090A
Other languages
English (en)
Inventor
Martin Elixmann
エリックスマン マルチン
Ralf Guenther
ギュンター ラルフ
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 JPH0934700A publication Critical patent/JPH0934700A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 ソフトウェア成分を交換する間に、短時間の
遅延を除き、動作が強制的な影響を受けることのない、
ソフトウェア成分の交換を実現する。 【解決手段】 制御回路3,9 は、メッセージ及びユーザ
ーソフトウェア5 を交換するためのオペレーティングシ
ステム4 及びソフトウェアを交換するための手段11を具
える。交換されるべきソフトウェア成分について、数ミ
リ秒で、新しくロードされたソフトウェア成分(後継成
分)が、置換される停止したソフトウェア成分(先行成
分)のサービスポートから、状態及びメッセージを獲得
する。後継成分は、転送された状態及びメッセージによ
って再スタートする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、制御回路を有し、
該回路がオペレーティングシステム及びユーザーソフト
ウェア及びソフトウェアを交換する手段を具える通信シ
ステムに関する。
【0002】通信システムは、永続性があり実用上常に
利用可能であるソフトウェアを持つコンピュータシステ
ム又は制御回路を具える。ソフトウェアにエラーが存在
した場合及び新しい要求が発生した場合、或る種のソフ
トウェア成分は更新されなければならない。このような
場合には、通信システムのダウンタイムを最小にしなけ
ればならない。
【0003】スイッチングシステムの成分のソフトウェ
アを交換する時に実用上ダウンタイムのないシステム
が、US-A-5,155,837から既知である。交換の前に、古い
ソフトウェアが用いられている間に、最初に全てのレジ
スタ、プロセッサ及びメモリーユニットの内容及び状態
を特別のメモリーにセーブする(第7カラム、30乃至
36行)。
【0004】従って、ソフトウェアの古いバージョンが
第1区分にロードされる。続いて、新しいソフトウェア
が第2区分にロードされる。新しいソフトウェアがロー
ドされて試験が行われた後で、全てのレジスタ、プロセ
ッサ及びメモリーユニットの内容及び状態が、新しいソ
フトウェアにコピーされる。次に、この新しいソフトウ
ェアが動作状態に入る。しかしながら、新しいソフトウ
ェアは、古いソフトウェアが停止した処理の点で動作を
開始することはなく、所定のプログラム点で開始する。
個々のソフトウェアモジュール又は交換されたソフトウ
ェア成分ではなく、ただそこで混合されたソフトウェア
があるだけである。
【0005】
【発明が解決しようとする課題】従って、本発明の目的
は、ソフトウェア成分を交換する間に、短時間の遅延を
除き、動作が強制的な影響を受けることのない、ソフト
ウェア成分の交換を実現することにある。
【0006】
【課題を解決するための手段】この目的は、冒頭に述べ
た型の通信システムにおいて、オペレーティングシステ
ムがメッセージを交換し、新しくロードされたソフトウ
ェア成分(後継成分)が、置き換えられるべき停止した
ソフトウェア成分(先行成分)のサービスポートから状
態及びメッセージを受信し、コピーされた状態及びメッ
セージにより再スタートすることを特徴とする通信シス
テムによって達成される。
【0007】本発明は、古いソフトウェア成分が停止し
たプログラム点で、新しいソフトウェア成分が再スター
トすることを可能にする。更に、全ての古いソフトウェ
ア成分の状態が新しいソフトウェア成分にコピーされ
る。しかしながら、これは、ソフトウェア成分間でメッ
セージを交換することを可能にするオペレーティングシ
ステムを具えるシステムにのみ適用できる。メッセージ
は、次に、以後はポートと記すソフトウェアインタフェ
ースを介して種々の処理間で交換される。
【0008】本発明によれば、サービスポートで利用で
きる全ての状態及び全てのメッセージは、古いソフトウ
ェア成分中に収集され、新しいソフトウェア成分にコピ
ーされる。ソフトウェア成分は、サービスポートを通し
て他の処理から全てのメッセージを受信する。新しいソ
フトウェア成分は、新しい状態を引き継ぎ、必要に応じ
て状態を変換し、古いソフトウェア成分の1つに対応す
る新しいソフトウェア成分のプログラム点で新しいソフ
トウェアをスタートさせる。
【0009】次に、ソフトウェア成分は、それによって
他のソフトウェア成分が影響を受けないような方法で交
換される。他のソフトウェア成分から来るメッセージが
新しいソフトウェア成分にコピーされ、交換後に更に処
理される。従って、交換は、処理の間に短い遅延しか起
こらないように行われる。実際の試験では、遅延は数ミ
リ秒の範囲に留まることが確認された。
【0010】通信システムはコンピュータシステム、ス
イッチングセンター、コンピュータネットワークであっ
てもよく、また、例えばビデオ−オン−デマンドサーバ
ーのようなサーバーシステムであってもよい。コンピュ
ータシステムは、少なくともソフトウェア成分を交換で
きるコンピュータを具える。
【0011】ソフトウェア成分又は処理は、厳密に1つ
のスレッドを含む。スレッドは、自律的に連続して走る
基本ブロックである。スレッドは、古いソフトウェア成
分のサービスポートの状態及びメッセージを引き継ぎ適
当に変換する第1部分、及び、そのサービスポートの処
理の状態及びメッセージを収集するための第2部分を具
える。
【0012】ソフトウェア成分の交換は、ソフトウェア
成分をロードしスタートさせるために用いられる交換マ
ネージャーによって制御される。同様にして、メンテナ
ンスデバイスで、更に交換マネージャーに新しいソフト
ウェア成分を供給するために新しいソフトウェア成分を
開発することもできる。例えば、電話ネットワークを伝
送媒体として用いることができる。
【0013】
【発明の実施の形態】本発明のこれら及び他の観点は、
以下に述べる実施例によって明らかになり、解明され
る。
【0014】図1は、コンピュータシステムを示す図で
あり、コンピュータ1及びメンテナンスデバイス2を具
える。コンピュータは、ハードウェア成分3、オペレー
ティングシステム4、ユーザーソフトウェア5及び交換
マネージャー11を含む。オペレーティングシステム4
は、メッセージを介してユーザーソフトウェア5のソフ
トウェア成分間の通信を可能にする(例えば、メッセー
ジベースのオペレーティングシステム)。次に、メッセ
ージ又はデータがソフトウェアインタフェースを介して
交換される。以下においては、ソフトウェアインタフェ
ースをポートと呼ぶこととする。
【0015】交換マネージャーはソフトウェアプログラ
ムであり、その助力によってユーザーソフトウェア5の
成分が交換される。図1においては、個々のソフトウェ
ア成分が円によって表示されている。円の間の線は、ソ
フトウェア成分間のメッセージの流れを表す。
【0016】メンテナンスデバイス2はリモートコンピ
ュータであり、これから新しいソフトウェア成分が供給
されてもよい。そのコンピュータで新しいソフトウェア
成分が開発され試験されることも考えられる。新しいソ
フトウェア成分を伝送するために、既知の伝送媒体及び
プロトコルを用いることができる。例えば、電話ネット
ワークによる伝送が可能である。しかしながら、新しい
ソフトウェア成分を、コンピュータ1に(例えば、ロー
カルメンテナンスデバイス(ラップトップ)を介して)
直接ロードすることもできる。
【0017】交換マネージャー11は、新しいソフトウェ
ア成分をコンピュータ1にロードし、そこでそれをスタ
ートさせる。新しい成分は、交換マネージャー11に報告
し、存在する古い成分を置換すべきか否かの情報を受取
る。肯定の場合、後継成分を表す新しい成分が先行成分
を表す古い成分に交換要求を送る。先行成分は、その状
態情報を収集し、この状態情報を後継成分に伝送する。
更に、先行成分は交換マネージャー11にそれが停止した
旨を報告する。続いて、後継成分は、先行成分が停止し
たその点で動作を実行する。コンピュータなしで実行さ
れるこの交換のために、ユーザーソフトウェア成分は更
に、交換不可能な成分は行わないような特別な変化を含
む。
【0018】上述のように、交換可能であるべきソフト
ウェア成分は、従来のソフトウェア成分に比べて拡張部
分を含む。ソフトウェア成分は、顧客からのメッセージ
を受信するサービスポート及び顧客のメッセージに応答
する部分を持つ、厳密に1つのスレッドである。スレッ
ドは、自律的に連続的に走るプログラム点である。顧客
は他のソフトウェア成分(処理)である。ソフトウェア
成分が交換可能になるためには、成分がスレッドに交換
点又は再スタート点を持たなければならない。規則とし
て、交換点と再スタート点とは同一である。
【0019】図2は、交換マネージャー11(ここではA
Mと表示される)、先行成分VK及び後継成分NKの間
のメッセージの流れのダイアグラムを示す。交換マネー
ジャーによって新しい成分NKがスタートした後(矢印
ST)、この成分から特別な情報信号が取出される(P
1 点)。先行成分VKが、点P2 でそのタスク、即ち例
えば利用できる外部のメッセージの処理を完結すること
を可能にする。次に、後継成分NKが、交換マネージャ
ー11(AM)に報告し(矢印AN)、続いてマネージャ
ーが後継成分NKに、成分の交換を実行することを指示
する(矢印EX1 )。この指示は、後継成分NKによっ
て先行成分VKに転送される(矢印EX2 )。次に、先
行成分VKがその状態を収集し(P3 点)、この状態を
後継成分NKに供給する(矢印ZU)。
【0020】後継成分NKは受信した状態からオブジェ
クトを再構成し、必要に応じて状態を変換する。交換動
作の間、先行成分VKのサービスポートに向けての全て
のメッセージが、このように後継成分NKのサービスポ
ートに転送される。続いて先行成分VKが交換マネージ
ャー11(AM)に、それが既に停止した旨を報告し(矢
印VG)、それ自体を削除する(P4 点)。次に新しい
成分NKが外部メッセージの処理を引き継ぐ(P5
点)。
【0021】コンピュータ1は更に例えばコンピュータ
ネットワークにおけるサーバーであってもよい。更に、
メッセージを伝送するために設けられるシステムのため
のアプリケーションオプションがある。その例は、主要
ブロックが図3に示されるようなスイッチングシステム
である。このスイッチングシステムは、入力線7で受信
した信号を1又は複数の出力線8に転送するスイッチン
グネットワーク6を具える。必要なハードウェア成分ば
かりでなくオペレーティングシステム、ユーザーソフト
ウェア及び交換マネージャーを具える制御回路9が、ス
イッチングネットワークを制御するために用いられる。
ユーザーソフトウェアの成分を交換するために、メンテ
ナンスデバイス2がコンピュータ1と共働するのと同様
の方法で制御回路9と共働するメンテナンスデバイス10
が存在する。
【0022】以下に、プログラミング言語C++で書か
れた処理により、交換可能のソフトウェア成分の構造が
更に詳細に更に説明される。最初に、交換のために必要
な本発明による処置なしの、従来構造の処理を説明す
る。この処理は、音声のエントリーによる電話ディレク
トリの管理を可能にする処理である。電話ディレクトリ
(電話帳)処理は、他の処理に利用できる3つのメソッ
ドを与える。その第1は、電話帳へのエントリーの付加
であり、第2は電話帳からの削除であり、第3は予め定
められた音声のデータからのエントリーの決定である。
このため、処理が電話帳処理にメッセージを供給し、こ
のメッセージからそれぞれ望ましいメソッドが決定され
る。電話帳処理の実行例は次のとおりである。
【0023】 (1) #include "audiodat.hxx" // 音声表示のためのクラス 'audiodata' #include "bin.hxx" // メッセージバッファのクラス 'bin' #include "port.hxx" // ポートのクラス 'port' #include "s.hxx" // ストリングのクラス 'S' #include "thread.hxx" // スレッドのクラス 'thread' (3) class PhoneBook { //...ここは電話帳の内部データ構造の定義 public: void enter(S name,unsigned phoneNumber,AudioData reference) { //...名前と共に電話番号及び音声情報の電話帳へのエントリー } void remove(S name) { //...名前によって参照されるエントリーの電話帳からの削除 } void give(AudioData reference,S& name,unsigned& phoneNumber){ //...音声情報に基づく電話帳でのエントリーの探索 } }; (8) enum Request{Enter,Remove,Give }; (9) Port* phoneBookEntry; //顧客のためのメッセージアドレス PhoneBook * phoneBook; //電話帳の表示 (10)void phoneBookService() { (13) phoneBookEntry = new Port("phoneBookEntry",Port::Overtype); phoneBook = new PhoneBook; (14) while(1){ (15) Bin message;phoneBookEntry->receive(message); int request; message>>request; //受信したデータから呼び出されるメソッドの型の抽出 (16) switch(request) { case Enter: { S name;unsigned phoneNumber;AudioData reference; message>>name>>phoneNumber>>reference; phoneBook->enter(name,phoneNumber,reference); } break; case Remove:{ S name; message>>name; phoneBook->remove(name); } break; case Give:{ AudioData reference;S name;unsigned phoneNumber; message>>reference; phoneBook->give(reference,name,phoneNumber); message.clear(); //メッセージが回答のために使用されたので削除 message<<name<<phoneNumber; //回答の合成 reply(message); } break; } } } (18)Tread pBS(phoneBookService); //音声制御される電話帳のスレッドの宣言とスタート
【0024】上述の実行例においては、電話帳処理を理
解するために必要な宣言のみが示されている。参照を行
うためにプログラムがセクション番号を持つが、このセ
クション番号はプログラムテキストの一部分を形成する
ものではない。個々の制御セクションが行の先頭の括弧
内の番号によってそれぞれ特徴付けられる。
【0025】セクション(1) 及び(3) では、電話帳処理
に用いられるオブジェクトのクラスの意味及び宣言が含
まれる。セクション(1) においては、若干のライブラリ
(ヘッダーデータファイル)が処理に含まれ、種々の他
の利用できるクラスを与える。個々のライブラリの意味
は、コメントの行に説明されている。
【0026】セクション(3) は、内部電話帳クラス"pho
neBook" の定義を示す。"Enter" 、"Remove"及び"Give"
の実行は個別には示されていない。"Enter" メソッド
は、電話番号及び音声情報(音声サンプル)と共に名前
をエントリーすることを可能にし、"Remove"メソッド
は、名前によって参照されたエントリーを電話帳から削
除することを可能にし、"Give"メソッドは、電話帳内で
音声情報に基づくエントリーを探索することを可能にす
る。この場合、発音される名前によってエントリーを探
索する。"Enter" 、"Remove"及び"Give"各メソッドは、
それぞれのメソッドについて括弧で示されたパラメータ
ーを獲得して転送する。
【0027】セクション(8) では、電話帳処理によって
他の処理に利用可能になるメソッドが示されている。セ
クション(9) では、ポート(サービスポート)を定義
し、これにより電話帳処理が他の処理によって呼出され
る。ポートは、他の処理にメッセージを送信するために
用いられる。セクション(9) において、電話帳オブジェ
クト"phoneBook" が宣言され、前のポートの宣言と同様
に、これがソフトウェアオブジェクトの状態を形成す
る。オブジェクト"phoneBook" は、電話帳の全ての関連
データを管理する。
【0028】セクション(10)乃至(16)において、電話帳
処理の主な関数が記述されている。この関数はスレッド
と呼ばれる。スレッドは、セクション(13)の初期化部分
及びエンドレスループ(セクション(14)から)を含み、
このループの中でメソッドの呼出しが受信され(セクシ
ョン(15))、このループの中でメソッドが実行される
(セクション(16))。セクション(13)での初期化部分に
おいては、ソフトウェアオブジェクトの初期状態が設定
される。セクション(14)で始まるループにおいては、要
求に対して待機が行われる。サービスポートからメッセ
ージが受信されると(セクション(15))、このメッセー
ジがメッセージバッファに格納される。メッセージは通
常第1に呼出されるメソッドの型を含み、追加のパラメ
ーターはメソッドに依る。
【0029】型(要求)により、"Enter" メソッド又
は"Remove"メソッドのいずれかにジャンプする。"Ente
r" メソッドは、電話帳オブジェクトの名前、電話番号
及び音声情報にエントリーする。"Remove"メソッドは、
電話帳オブジェクト"phoneBook"から、エントリーに対
応する名前を削除する。"Give"メソッドについては、例
えば音声情報が送られ、これが"AudioData" 型の変数"r
eference" に格納される。内部オブジェクト"phoneBoo
k" の"Give"メソッドの呼出しを経て、ユーザー名"nam
e"及び電話番号"phoneNumber" が決定され、"reply" 命
令により、それぞれの電話番号を探している顧客に送ら
れる。セクション(18)においては、スレッドが具体的に
示される宣言が記述され、これにより"phoneBookServic
e"関数が結合されスタートする。"phoneBookService"関
数はセクション(10)からスタートする。
【0030】図4に示された状態図によれば、スレッド
の手順が一層明確になる。ブロック23は、交換マネージ
ャー11により、全てのソフトウェアオブジェクトがコン
ピュータ1又は制御回路9のワーキングメモリーにロー
ドされた状態(状態L、ロード済)を示す。初期化の
後、スレッドは初期化状態に移り(状態I、初期化
済)、これがブロック24によって示されている。次の状
態RAC(アプリケーションコードのラン)がスレッド
の実際の実行を示し(ブロック25)、セクション(14)乃
至(16)によりプログラムに記述される。
【0031】状態RACは更に、サブ状態WFR(ブロ
ック26、要求の待機)、ME(ブロック27、"enter" 処
理)、MR(ブロック28、"remove"処理)及びMG(ブ
ロック29、"give"処理)を持つ。ブロック26の左にある
点が付いた矢印は、プログラムがより高い状態で開始す
る時にとるサブ状態を表している。具体例においては、
これは、状態RACが通常サブ状態WFRでスタートす
ることを意味する。状態WFRにおいてはメッセージが
待たれる。メッセージが到着した後、状態ME、MR又
はMGの1つにジャンプする。これらの状態は、"Ente
r" 、"Remove"及び"Give"の実行に対応する。これらの
メソッドのうちの1つの後、ジャンプして状態WFRに
戻る。
【0032】ソフトウェア成分の交換を行うため、上述
の電話帳処理は他の宣言によって拡張され得る。これら
の追加のセクション及び電話帳処理の既に上述したセク
ションのリストを次に示す。
【0033】 (1) #include "audiodat.hxx" // 音声表示のためのクラス 'AudioData' #include "bin.hxx" // メッセージバッファのクラス 'Bin' #include "port.hxx" // ポートのクラス 'Port' #include "s.hxx" // ストリングのクラス 'S' #include "thread.hxx" // スレッドのクラス 'Thread' (2) #include "exchange.hxx" //'getExcInfo' 及び'setExcInfo'の定義 (3) class PhoneBook { //...ここで宣言された電話帳の内部データ構造が変換される public: void enter(S name,unsigned phoneNumber,AudioData reference) { //...名前と共に電話番号及び音声情報の電話帳へのエントリー } void remove(S name) { //...名前によって参照されるエントリーの電話帳からの削除 } void give(AudioData reference,S& name,unsigned& phoneNumber){ //...このメソッドの実行が改善された(ここでは図示されない) } PhoneBook() {}; //標準コンストラクタ (4) PhoneBook(Bin buf){ //...バッファイメージからオブジェクトを発生するために // 付加的に要求されたコンストラクタ } (5) static Bin& operator<<(Bin& buf){ //...バッファにオブジェクト状態を格納するために // 付加的に要求されたメソッド return buf; } }; (6) class OldPhoneBook{ public: OldPhoneBook(Bin buf) { //...受信した状態から古いオブジェクトを発生するため } //...残りのインタフェースは // 交換されるソフトウェアオブジェクトと同一 }; (7) PhoneBook stateTransformation(OldPhoneBook phoneBook) { PhoneBook newPhoneBook; //...この関数は古い'phoneBook' から新しい'newPhoneBook'へ // 必要な変換を行う return newPhoneBook; } (8) enum Request{Enter,Remove,Give,Exchange}; (9) Port* phoneBookEntry; //顧客のためのメッセージアドレス PhoneBook * phoneBook; //電話帳の表示 (10)void phoneBookService() { Bin state; (11) if(getExcInfo("phoneBookEntry",Bin()<<(int)Exchange,10000, state)) { (12) phoneBookEntry = new Port(state); OldPhoneBook oldPhoneBook(state); phoneBook = new PhoneBook(stateTransformation(oldPhoneBook)); }else{ (13) phoneBookEntry = new Port("phoneBookEntry",Port::Overtype); phoneBook = new PhoneBook; } (14) while(1){ (15) Bin message;phoneBookEntry->receive(message); int request; message>>request; //受信したデータから呼び出されるメソッドの型の抽出 (16) switch(request) { case Enter: //... 変化なし case Remove: //... 変化なし case Give: //... 変化なし (17) case Exchange: { Bin state state<<phoneBookEntry->migrate()<<phoneBook; //状態収集 delete phoneBookEntry;delete phoneBook; //まだ存在するオブジェクトを削除 setExcInfo(state);//この関数からリターンしない } } } } (18)Tread pBS(phoneBookService); //音声制御される電話帳のスレッドの宣言とスタート
【0034】上述のプログラムランは、このソフトウェ
ア成分が他の成分(先行成分)を置換する場合、及びこ
のソフトウェア成分が他の新しいソフトウェア成分(後
継成分)によって置換される場合のために具えられてい
る。本発明による処置を含むソフトウェア成分は、2つ
のメソッド"getExcInfo"及び"setExcInfo"を利用可能に
する付加的なモジュール"exchange.hxx"(セクション
(2) )を用いる。メソッド"getExcInfo"は、置換される
成分の状態情報信号を新しい成分で利用できるようにす
る。対照的に、メソッド"setExcInfo"は、実際の成分の
状態情報信号を新しい置換成分に与える。それぞれのス
レッドは、それらの処理の開始点においてメソッド"get
ExcInfo"を厳密に1回呼出し、"setExcInfo"でその処理
を終了する(下記のプログラムランを参照)。
【0035】セクション(3) での宣言は、セクション
(3) に続くセクション(4) 及び(5) で定義される付加的
なメソッド呼出しによって拡張される。原理的に、全て
の内部オブジェクトは、それらがまだ利用できないうち
は、2つの他のメソッドによって拡張される。1つのメ
ソッドは、先行成分の同一オブジェクトの状態から後継
成分のオブジェクトの新しい状態を構成するために必要
であり(セクション(4))、他のメソッドは、先行成分
の状態をメッセージとして送ることができる形式にパッ
クすることである(セクション(5) )。
【0036】メソッド呼出し"PhoneBook(Bin buf)"が、
バッファイメージからオブジェクトを形成するために用
いられる(セクション(4) )。このメソッド呼出しは、
記述されたソフトウェア成分が先行成分の"phoneBook"
の送られた状態からその内部オブジェクト"phoneBook"
の状態を導出する時に必要である。更に、セクション
(5) において、オブジェクト状態をバッファに格納する
ことを可能にするメソッドが呼出される。このメソッド
は、ここで記述されたソフトウェア成分(先行成分)が
その内部オブジェクト"phoneBook" の状態を後継成分に
送りたい時に必要である。
【0037】原理的には、後継成分の内部オブジェクト
と、置換される成分(先行成分)の内部オブジェクトと
が同一でなくてもよい。説明のための実施例において
は、これは内部オブジェクト"phoneBook" についての場
合である。この矛盾は、変換関数"stateTransformatio
n" (セクション(7) )が利用可能になることによって
消滅する。この関数は、内部オブジェクト"phoneBook"
のセクション(6) の古い型の"OldPhoneBook"をその新し
い表示に変換することができる。これは、古いオブジェ
クトの状態が受信された後直ちに行われる(セクション
(12)参照)。
【0038】セクション(8) はオブジェクトによって利
用可能になる他のサービスを示す。このサービス"excha
nge"は、ソフトウェア成分の交換を可能にする。
【0039】電話帳処理のスレッドは更に2つのプログ
ラム部分を持つ。その1つは、先行成分の状態を引き継
ぐためのものであり、他の部分は、後継成分に状態を移
すためのものである。先行成分が存在するか否かの事実
がメソッド"getExcInfo"(下記参照)によって試験され
る。この成分が存在する場合、"getExcInfo"が更に後継
成分の状態を伝える。この状態は、内部オブジェクト"p
honeBookEntry"及び"phoneBook" の再構成に用いられる
(セクション(12))。
【0040】先行成分が存在しない場合、その成分は従
来の方法でスタートされる(セクション(13))。セクシ
ョン(12)及び(13)の表示を経て新しいサービスポートが
発生される。古いソフトウェア成分のサービスポートの
全ての未処理のメッセージがこの状態の部分を形成し、
転送される。更に、セクション(12)において、電話帳の
以前の状態が状態バッファから抽出され、"oldPhoneBoo
k"変数に格納される。古い電話帳の状態を新しい電話帳
の状態に反映させる上述の状態変換関数が、セクション
(12)で用いられる。この変換は、例えば新しい"postcod
es" のフィールドが加えられる場合、又はこのフィール
ドが他の型(例えば4桁ではなく5桁)を含む場合に必
要である。
【0041】第2の新しいプログラム部分(セクション
(17))は、後継成分に対する成分の交換のために必要
な"exchange"サービスを実行する。最初に、セクション
(17)で、以前のソフトウェア成分(先行成分)の瞬間的
な状態が"state" バッファに格納される。例えば、"pho
neBookEntry"サービスポートのメッセージを含む状態
が、状態バッファに格納される。この状態バッファに格
納された以前のソフトウェア成分の状態が、"setExcInf
o"によって新しいソフトウェア成分(後継成分)に送ら
れ利用される。"setExcInfo"メソッドは同時にソフトウ
ェア成分をアボートする。
【0042】本発明による処置を有するソフトウェア成
分におけるスレッドのランが、更に、図5に示された状
態図によって説明される。図4と同一の全ての状態には
同一の参照番号が付されている。状態RS(ブロック3
0、受信状態)は、ソフトウェア成分の新しい状態の後
の状態を示す。これは、前の成分の状態の受信を待って
いる状態である。従って、ソフトウェア成分自体がその
寿命の終期に交換信号を生成する場合は、それが状態C
Sに変わる(ブロック31、収集状態)。この状態におい
ては、それは、その内部オブジェクトの状態を収集す
る。状態TS(ブロック32、転送状態)は、古いソフト
ウェア成分から新しいソフトウェア成分への状態の転送
を表す。ソフトウェア成分の終了は状態TE(ブロック
33、終了)で表される。
【0043】メソッド"getExcInfo"及び"setExcInfo"を
定義するモジュール"exchange.hxx"のリストは以下の通
りである。
【0044】 (1) #ifndef FLYER_EXCHANGE #define FLYER_EXCHANGE (2) #include "bin.hxx" (3) int getExcInfo(const char * portName,const Bin& excReqCode, int maxState,Bin& state); (4) void setExcInfo(const Bin& state); #endif
【0045】セクション(1) では、シンボル"FLYER_EX
CHANGE" が試験され、まだ定義されていない場合は設定
される。これはこのモジュールの多重包含(挿入)を防
ぐ。セクション(2) は"bin" クラスの定義を含む。後継
成分についての情報の状態を生成する"getExcInfo"メソ
ッドはセクション(3) で定義される。このメソッドは、
パラメーター"portName"、"excReqCode"、"maxStat
e"、"state" 及び"return"を持つ。"portName"は、それ
を通してこのソフトウェア成分の実行が考察されるポー
トの名前を表す。"excReqCode"は、交換操作への導入と
して交換されるべき古いソフトウェア成分に送られる要
求コードである。期待される状態の最大サイズのバイト
数が"maxState"によって与えられる。"state" には転送
されるスレッド状態が格納される。"getExcInfo"関数の
リターン値は、交換が行われない場合、即ち、その成分
が単に再スタートされる場合は0(FALSE) に等しい。
【0046】セクション(4) においては、先行成分の以
前のスレッドの状態情報を後継成分に転送するメソッド
を定める。その情報は"state" に格納される。"setExcI
nfo"関数はリターンしない。呼出しスレッドは削除され
る。
【0047】"exchange.cxx"モジュールのプログラムの
ランを以下に示す。このモジュールは、"exchange.hxx"
モジュールに記載されたインタフェースとして実行され
る。
【0048】 (1) #include "exchange.hxx" //自身のインタフェースの記述 #include "excstub.hxx" //交換マネージャー'ExcStub' に対する //インタフェース #include "port.hxx" // 'port' の定義 #include "thread.hxx" // 'mySelf' の定義 (2) const int False = 0, True = !0; (3) static ExcStub excStub; //内部名転送のためのみの //交換マネージャーに対するインタフェース (4) static S servicePortName; //内部名転送のためのみ (5) int getExcInfo(const char * portName,const Bin& excReqCode, int maxState,Bin& state){ servicePortName = portName; //'setExcInfo'のためのマーク (6) //交換マネージャーへの報告: ExcStub::ReplyCode rc = excStub.announce(servicePortName); if(rc == ExcStub::OkStart)return False; //交換なし、再スタート (7) //交換されるべき成分に交換要求を送出 Port servicePort(portName,Port::Reference); servicePort.call(excReqCode,maxState,state); //要求が送出され古い状態を受信 return True; } (8) void setExcInfo(const Bin& state) { reply(state); excStub.stopped(servicePortName); //交換マネージャーに対する準備済メッセージ mySelf()->deletes(); }
【0049】セクション(1) はそれぞれ用いられるクラ
スの意味及び宣言を含む。例えば"excStub_.hxx" が、
利用できる交換マネージャー11に対するインタフェース
になる。セクション(2) は、定数"False" 及び"True"を
定義する。
【0050】セクション(3) はオブジェクト"excStub"
を宣言し、これを経て交換マネージャー11がアドレスさ
れる。セクション(4) は、"getExcInfo"と"setExcInfo"
との間の情報転送(名前の転送)のためにのみ用いられ
るストリングオブジェクトを宣言する。
【0051】セクション(5) においては"getExcInfo"メ
ソッドの実行が始まる。セクション(6) ではそのソフト
ウェア成分が交換マネージャー11に報告し、それが再ス
タートするか否か、又はそれが存在する成分(先行成
分)を置換するか否かを学習する。
【0052】先行成分が置換される場合は、セクション
(7) で参照ポートが作られ、この参照ポートが置換され
る成分のサービスポートを参照する。先行成分には、こ
こで"servicePort.call"を介して交換コマンドが送られ
る。続いて、先行成分がその状態を返送し、これは"sta
te" に格納され、"getExcInfo"の"state" パラメーター
として転送される。
【0053】セクション(8) は、"setExcInfo"を実行す
る。最初、収集した"state" が交換コマンドの送り側に
返送される("reply(state)")。次に交換マネージャー
11が、ソフトウェア成分(先行成分)が停止した旨の通
知を受け("excStub.stopped(servicePortName)")、ソ
フトウェア成分がそれ自身を削除する。
【図面の簡単な説明】
【図1】メンテナンスデバイス及び交換できるソフトウ
ェア成分を含むコンピュータを具えるコンピュータシス
テムを示す図である。
【図2】交換マネージャー、先行成分及び後継成分の間
のメッセージの流れのダイアグラムである。
【図3】メンテナンスデバイス及び交換できるソフトウ
ェア成分を含む制御回路を含むスイッチングシステムを
示す図である。
【図4】交換可能ではないソフトウェア成分の状態図で
ある。
【図5】交換可能なソフトウェア成分の状態図である。
【符号の説明】
1 コンピュータ 2、10 メンテナンスデバイス 3 ハードウェア成分 4 オペレーティングシステム 5 ユーザーソフトウェア 6 スイッチングネットワーク 7 入力線 8 出力線 9 制御回路 11、AM 交換マネージャー 23〜33 状態図の各ブロック VK 先行成分 NK 後継成分 L ロード I 初期化 RAC アプリケーションコードのラン WFR 要求待機 ME "enter" 処理 MR "remove"処理 MG "give"処理 RS 受信状態 CS 収集状態 TS 転送状態 TE 終了
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラルフ ギュンター ドイツ連邦共和国 52066 アーヘン ポ ントシュトラーセ 50 (72)発明者 シュテファン ハウプトマン ドイツ連邦共和国 52066 アーヘン カ ペレンシュトラーセ 12 (72)発明者 ヨゼフ ヴァーゼル ドイツ連邦共和国 52074 アーヘン ヴ ェレクンラテールシュトラーセ 80

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 制御回路(3、9)を有し、該回路がオ
    ペレーティングシステム(4)及びユーザーソフトウェ
    ア(5)及びソフトウェアを交換する手段(11) を具え
    る通信システムにおいて、オペレーティングシステム
    (4)がメッセージを交換し、新しくロードされたソフ
    トウェア成分(後継成分)が、置き換えられるべき停止
    したソフトウェア成分(先行成分)のサービスポートか
    ら状態及びメッセージを受信し、コピーされた状態及び
    メッセージにより再スタートすることを特徴とする通信
    システム。
  2. 【請求項2】 交換可能のソフトウェア成分がスレッド
    を具え、スレッドが、古いソフトウェア成分のサービス
    ポートの状態及びメッセージを引き継ぎ適当に変換する
    第1部分、及び、そのサービスポートの処理の状態及び
    メッセージを収集するための第2部分を具えることを特
    徴とする請求項1に記載の通信システム。
  3. 【請求項3】 交換マネージャー(11)がソフトウェア
    成分をロードしスタートさせることを特徴とする請求項
    1又は2に記載の通信システム。
  4. 【請求項4】 メンテナンスデバイス(2、10)が伝送
    媒体を介して交換マネージャー(11)に新しいソフトウ
    ェア成分を供給することを特徴とする請求項1、2又は
    3に記載の通信システム。
  5. 【請求項5】 先行成分に比較して後継成分に構造の変
    化が存在する場合は、後継成分が状態変換を実行するこ
    とを特徴とする請求項1乃至4のいずれか1項に記載の
    通信システム。
  6. 【請求項6】 少なくともオペレーティングシステム
    (4)及びユーザーソフトウェア(5)及びソフトウェ
    アを交換する手段(11)を含むコンピュータ(1)を具
    えるコンピュータシステムにおいて、オペレーティング
    システムがメッセージを交換し、新しくロードされたソ
    フトウェア成分(後継成分)が、置き換えられるべき停
    止したソフトウェア成分(先行成分)のサービスポート
    から状態及びメッセージを受信し、コピーされた状態及
    びメッセージにより再スタートすることを特徴とするコ
    ンピュータシステム。
JP8123090A 1995-05-18 1996-05-17 通信システム及びコンピュータシステム Pending JPH0934700A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19518266:9 1995-05-18
DE19518266A DE19518266A1 (de) 1995-05-18 1995-05-18 Kommunikationssystem mit Mitteln zum Austausch von Software

Publications (1)

Publication Number Publication Date
JPH0934700A true JPH0934700A (ja) 1997-02-07

Family

ID=7762252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8123090A Pending JPH0934700A (ja) 1995-05-18 1996-05-17 通信システム及びコンピュータシステム

Country Status (4)

Country Link
US (1) US5987511A (ja)
EP (1) EP0743595B1 (ja)
JP (1) JPH0934700A (ja)
DE (2) DE19518266A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
JP3612105B2 (ja) * 1995-03-13 2005-01-19 株式会社東芝 Atm通信システムとatm通信システムにおけるプロセスマイグレーション方法
US7895076B2 (en) 1995-06-30 2011-02-22 Sony Computer Entertainment Inc. Advertisement insertion, profiling, impression, and feedback
US8574074B2 (en) 2005-09-30 2013-11-05 Sony Computer Entertainment America Llc Advertising impression determination
EP2323288A2 (en) * 1996-12-25 2011-05-18 Sony Corporation Game machine system, broadcasting system, data distribution system and method, program executing apparatus and method
DE19701322C2 (de) * 1997-01-16 2002-10-10 Abb Patent Gmbh Verfahren zur Aktualisierung der Betriebssoftware
US6321258B1 (en) * 1997-12-11 2001-11-20 Hewlett-Packard Company Administration of networked peripherals using particular file system
DE19810784B4 (de) * 1998-03-12 2006-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem
DE19843048C2 (de) * 1998-09-19 2000-08-17 Nokia Networks Oy Verfahren für einen Softwarezugriffswechsel in einem Netzwerkknoten eines Telekommunikationsnetzwerkes sowie ein zum Durchführen eines solchen Verfahrens geeigneter Netzwerkknoten
US6237091B1 (en) * 1998-10-29 2001-05-22 Hewlett-Packard Company Method of updating firmware without affecting initialization information
DE19856975A1 (de) * 1998-12-10 2000-06-21 Alcatel Sa Verfahren, System, Rechner und Vermittlungsstelle zum Betreiben eines Rechners
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US7213061B1 (en) 1999-04-29 2007-05-01 Amx Llc Internet control system and method
US6609127B1 (en) * 1999-06-09 2003-08-19 Amx Corporation Method for dynamically updating master controllers in a control system
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
US6850973B1 (en) 1999-09-29 2005-02-01 Fisher-Rosemount Systems, Inc. Downloadable code in a distributed process control system
GB2362064A (en) * 2000-05-04 2001-11-07 Marconi Comm Ltd Switching of software in a communications system
US6691070B1 (en) 2000-11-03 2004-02-10 Mack Information Systems System and method for monitoring a controlled environment
US8751310B2 (en) 2005-09-30 2014-06-10 Sony Computer Entertainment America Llc Monitoring advertisement impressions
DE10254531A1 (de) * 2002-11-22 2004-06-09 Abb Research Ltd. Verfahren und System zur Transformation von Programmen, die sich auf die Softwarekonfiguration eines verteilten Leitsystems beziehen
US8763157B2 (en) 2004-08-23 2014-06-24 Sony Computer Entertainment America Llc Statutory license restricted digital media playback on portable devices
US9063739B2 (en) 2005-09-07 2015-06-23 Open Invention Network, Llc Method and computer program for device configuration
US8626584B2 (en) 2005-09-30 2014-01-07 Sony Computer Entertainment America Llc Population of an advertisement reference list
US20070118425A1 (en) 2005-10-25 2007-05-24 Podbridge, Inc. User device agent for asynchronous advertising in time and space shifted media network
US8676900B2 (en) 2005-10-25 2014-03-18 Sony Computer Entertainment America Llc Asynchronous advertising placement based on metadata
US11004089B2 (en) 2005-10-25 2021-05-11 Sony Interactive Entertainment LLC Associating media content files with advertisements
US10657538B2 (en) 2005-10-25 2020-05-19 Sony Interactive Entertainment LLC Resolution of advertising rules
JP5313882B2 (ja) 2006-05-05 2013-10-09 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー 主要コンテンツと補助コンテンツを表示する装置
US8416247B2 (en) 2007-10-09 2013-04-09 Sony Computer Entertaiment America Inc. Increasing the number of advertising impressions in an interactive environment
US8769558B2 (en) 2008-02-12 2014-07-01 Sony Computer Entertainment America Llc Discovery and analytics for episodic downloaded media
US8763090B2 (en) 2009-08-11 2014-06-24 Sony Computer Entertainment America Llc Management of ancillary content delivery and presentation
US10846779B2 (en) 2016-11-23 2020-11-24 Sony Interactive Entertainment LLC Custom product categorization of digital media content
US10860987B2 (en) 2016-12-19 2020-12-08 Sony Interactive Entertainment LLC Personalized calendar for digital media content-related events
US10931991B2 (en) 2018-01-04 2021-02-23 Sony Interactive Entertainment LLC Methods and systems for selectively skipping through media content

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
DE59309391D1 (de) * 1993-01-18 1999-04-01 Siemens Ag Realzeit-Steuerungssystem
US5613133A (en) * 1994-09-09 1997-03-18 Unisys Corporation Microcode loading with continued program execution
US5764992A (en) * 1995-06-06 1998-06-09 Apple Computer, Inc. Method and apparatus for automatic software replacement
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software

Also Published As

Publication number Publication date
EP0743595A3 (de) 1997-04-02
US5987511A (en) 1999-11-16
EP0743595B1 (de) 2004-10-13
EP0743595A2 (de) 1996-11-20
DE59611113D1 (de) 2004-11-18
DE19518266A1 (de) 1996-11-21

Similar Documents

Publication Publication Date Title
JPH0934700A (ja) 通信システム及びコンピュータシステム
US5551035A (en) Method and apparatus for inter-object communication in an object-oriented program controlled system
US5838923A (en) Method and system for synchronizing computer mail user directories
US5930503A (en) System and method for on demand registration of tasks
JP3912441B2 (ja) 通信システム、コンピュータシステム及びソフトウェアコンポーネント交換方法
AU667559B2 (en) System for changing software during computer operation
EP0006216B1 (en) Improvements in digital data processing systems
US5805886A (en) Method for notifying client applications of events in a shared application in a computer system
EP0613274B1 (en) Socket structure for concurrent multiple protocol access
US5564051A (en) Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
US5327560A (en) Method of updating network reconfiguration information exchanged between a host computer and a communication control processor
EP0536073A2 (en) Method and process for interprocess communication using named pipes
EP0436559A1 (en) DATA PROCESSING NETWORK.
US6226694B1 (en) Achieving consistency and synchronization among multiple data stores that cooperate within a single system in the absence of transaction monitoring
CN109597604B (zh) 基于iOS平台的APP模块化开发方法、装置和设备
EP0405829A2 (en) Object oriented software system architecture
JP3599364B2 (ja) ネットワーク装置
CN112328406A (zh) 一种基于tcc的微服务分布式事务系统以及业务处理方法
JPH11161530A (ja) トランザクション処理システム
JPH11312154A (ja) 協同作業支援システム及び記録媒体
US6922834B1 (en) Data processing apparatus, data processing method, and program providing medium
JP2001067214A (ja) コンピュータシステム及びプログラムファイル更新方法
KR0162761B1 (ko) 네트워크 파일 시스템 상에서의 이동통신 교환기 소프트웨어 컴파일 관리방법
JPH09305390A (ja) ソフトウェア仕様作成支援システム
JP2679427B2 (ja) 計算機システムのプロセス制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060509

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060906

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060912

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061117

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070314