Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5248290B2 - プログラム更新システム、方法及びプログラム、並びに、呼制御サーバ - Google Patents
[go: Go Back, main page]

JP5248290B2 - プログラム更新システム、方法及びプログラム、並びに、呼制御サーバ - Google Patents

プログラム更新システム、方法及びプログラム、並びに、呼制御サーバ Download PDF

Info

Publication number
JP5248290B2
JP5248290B2 JP2008306235A JP2008306235A JP5248290B2 JP 5248290 B2 JP5248290 B2 JP 5248290B2 JP 2008306235 A JP2008306235 A JP 2008306235A JP 2008306235 A JP2008306235 A JP 2008306235A JP 5248290 B2 JP5248290 B2 JP 5248290B2
Authority
JP
Japan
Prior art keywords
module
program
new
partial
old
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.)
Active
Application number
JP2008306235A
Other languages
English (en)
Other versions
JP2010130620A (ja
Inventor
祐二 川崎
宜正 野澤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2008306235A priority Critical patent/JP5248290B2/ja
Publication of JP2010130620A publication Critical patent/JP2010130620A/ja
Application granted granted Critical
Publication of JP5248290B2 publication Critical patent/JP5248290B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)

Description

本発明はプログラム更新システム、方法及びプログラム、並びに、呼制御サーバに関し、例えば、IPセントレックスシステムにおけるIPテレフォニーサーバ等の呼制御サーバのプログラムの一部を更新する場合に適用し得るものである。
企業内音声ネットワークシステムとして、1又は複数の主たる拠点にメイン呼制御サーバを配置して全ての拠点の交換機能や呼制御機能を集中管理するIPセントレックス方式のシステムが既に実用に供している。今日においては、メイン呼制御サーバが高性能になってきており、そのため、取り扱うことが可能な加入者数も多くなっている。また、企業内音声ネットワークシステムを導入した企業も、電話通信事業者並みの高信頼性を要求するようになりつつある。
メイン呼制御サーバは、主として、ソフトウェアによって交換機能や呼制御機能等を提供するものであるが、プログラムに軽微なバグ(例えばプログラムの1行の記述にミス)が発生していることもあり得る。軽微なバグを修正する場合であっても、通話を強制的に切断して、バグを有するプログラム部分を更新しなければならず、運用に与える影響が大きいと共に、信頼性を損なってしまう。
そのため、システムを停止することがなく、システム稼働中に、修正対象のプログラム部分を修正することが求められている。
このような要求に応える従来技術として、特許文献1に記載のものがある。特許文献1の記載技術は、主記憶装置に常駐化され動作中のプログラムを構成する機能的に閉じた各処理プログラムモジュール毎に、それぞれ固有の識別名を付けて、常時、この識別名により各処理プログラムモジュールが動作中か否かを判断できる動作状態管理テーブルを有し、この動作状態管理テーブルにより、修正対象の処理プログラムモジュールが不動作中であることを確認して主記憶装置上で修正する常駐化モジュール修正方式である。
特開平2−161523
しかしながら、特許文献1の記載技術は、メイン呼制御サーバ等の多くのセッションを取り扱う呼制御サーバのプログラム部分の修正には適用し難いものである。
メイン呼制御サーバは、例えば、数百、数千というセッション(呼)を取り扱うものであり、修正対象のプログラム部分がいずれのセッションについても不動作中であることはまずあり得ない。仮に、修正対象のプログラム部分が適用されることが少ない部分であって、全てのセッションで不動作中であって修正を開始したとしても、その修正期間で、そのプログラム部分の実行を求めるセッションが生じたとしてもそれに答えることができず、修正期間でアクセスを禁止することを要する。すなわち、特許文献1の記載技術は、システムを切断してモジュール修正を行って再起動することをなくし、システムの切断時間や再起動時間を削減しているが、システムの無停止を実現することができないものであり、呼制御サーバのプログラム部分の修正には適用し難いものである。
そのため、システムを停止することなく、プログラムの一部を更新することができるプログラム更新システム、方法及びプログラム、並びに、呼制御サーバが望まれている。
第1の本発明は、主メモリにロードされている処理プログラムを更新するプログラム更新システムにおいて、(1)上記処理プログラムを、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割すると共に、(2)更新される旧部分モジュールに置き換えられる新部分モジュールを上記主メモリにアップロードする新モジュールアップロード手段と、(3)上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替える新旧モジュール切り替え手段と、(4)上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする旧モジュールアンロード手段と、(5)上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理する部分モジュール位置情報管理手段とを有し、(6)上記切り替え手段は、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新し、(7)上記新モジュールアップロード手段は、アップロードしようとする新部分モジュールが常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合にはアップロードを実行し、処理プログラムの更新処理を継続させることを特徴とする。
第2の本発明は、主メモリにロードされている処理プログラムを更新するプログラム更新方法において、(1)上記処理プログラムを、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割しておくと共に、部分モジュール位置情報管理手段及び新モジュールアップロード手段、新旧モジュール切り替え手段及び旧モジュールアンロード手段を備え、(2)上記部分モジュール位置情報管理手段は、上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理し、(3)上記新モジュールアップロード手段は、更新される旧部分モジュールに置き換えられる新部分モジュールが、常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合には主メモリ上にアップロードし、処理プログラムの更新処理を継続させ、(4)上記新旧モジュール切り替え手段は、上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替えると共に、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新し、(5)上記旧モジュールアンロード手段は、上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードすることを特徴とする。
第3の本発明は、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割されている、主メモリにロードされている処理プログラムを更新させるためのプログラム更新プログラムであって、コンピュータを、(1)上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理する部分モジュール位置情報管理手段と、(2)更新される旧部分モジュールに置き換えられる新部分モジュールが、常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合には主メモリ上にアップロードし、処理プログラムの更新処理を継続させる新モジュールアップロード手段と、(3)上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替えると共に、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新する新旧モジュール切り替え手段と、(4)上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする旧モジュールアンロード手段として機能させることを特徴とする。
第4の本発明は、交換機能を担う呼制御サーバにおいて、第1の本発明のプログラム更新システムを有することを特徴とする。
本発明によれば、システムを停止することなく、プログラムの一部を更新することができるプログラム更新システム、方法及びプログラム、並びに、呼制御サーバを提供できる。
(A)主たる実施形態
以下、本発明によるプログラム更新システム、方法及びプログラム、並びに、呼制御サーバの一実施形態を、図面を参照しながら詳述する。ここで、実施形態の呼制御サーバは、IPセントレックスシステムにおけるIPテレフォニーサーバ等の交換機能や呼制御機能を担うメインの呼制御サーバである。
(A−1)実施形態の構成
図1は、実施形態のメイン呼制御サーバのIPセントレックスシステムにおける位置付けの一例を示す説明図である。
図1において、実施形態のメイン呼制御サーバを適用しているIPセントレックスシステム1は、IP−VPN、広域イーサネットサービス(イーサネットは登録商標)、インターネットVPNなどのIPネットワーク2を介して、複数(図1では5つ)の拠点3−1〜3−5が相互に接続されている。
拠点3−1は、本社などのセンターが該当し、内部ネットワーク10がルータ11を介してIPネットワーク2に接続されている。内部ネットワーク10には、実施形態の呼制御サーバ(メイン呼制御サーバ)12や、システム監視サーバや課金情報集計サーバなどの管理用サーバ13や、アプリケーションサーバやIP公衆電話網接続サーバやプロトコル変換サーバやユニファイドメッセージサーバなどのサービス用サーバ14が接続されている。図1では省略しているが、主たる拠点3−1にも、各種端末が設けられていても良い。
拠点3−2〜3−5は、支店や営業所などが該当し、それぞれ、内部ネットワーク20、…、50がルータ21、…、51を介してIPネットワーク2に接続されている。
拠点3−2の内部ネットワーク20には、PHS端末22を収容したPHS基地局(IP非対応)23や固定電話機(IP非対応)24を接続したIP遠隔ユニット25や、IP公衆電話網接続サーバ26や、IP公衆電話網接続サーバ26の障害時の代替用サバイバルゲートウェイ27が接続されている。
拠点3−3の内部ネットワーク30には、内線端末32を収容したPBX33がVoIPゲートウェイ34を介して接続されている。
拠点3−4の内部ネットワーク40には、IPソフトフォン42やIP固定電話機43を収容したIP−PBX44が接続されている。
拠点3−5の内部ネットワーク50には、PHS端末52を収容したPHS基地局(IP対応)53や、IP固定電話機54や、無線LAN端末55を収容した無線LANアクセスポイント56や、パソコンベース中継台57や、IPソフトフォン58や、IP遠隔ユニット59や、メイン呼制御サーバ12の障害時の代替用サバイバルサーバ60が接続されている。
上述した各種の内線端末や外線との交換機能や呼制御機能を担っているメイン呼制御サーバ12は、ハードウェア的には、図2に示すような構成を有する。
メイン呼制御サーバ12は、制御部70に対し、インタフェース部(IF)71を介して、入力部72、出力部73、通信部74、外部記憶装置75等が接続されているものである。また、入出力ポート76を備え、図示しない保守端末等が接続できるようになされている。制御部70は、CPUや、CPUが処理を実行する際にアクセスする各種のメモリ(ROM、RAMなど)からなり、メモリの一部はいわゆる主メモリとして利用される。外部記憶装置75は、例えば、ハードディスクやCD−ROMなどの記録媒体とそのアクセス構成とでなり、当該メイン呼制御サーバ12の主メモリにロードされるプログラム等が記憶されているものである。
外部記憶装置75には、当該メイン呼制御サーバ12の立ち上げ時に主メモリにロードすべき交換・呼制御用プログラムが格納されている。図3は、外部記憶装置75に記憶されている交換・呼制御用プログラムの構成の説明図である。
交換・呼制御用プログラム80は、複数のモジュールに分割されている。交換・呼制御用プログラム80は、モジュールとして、メインモジュール81と、ダイナミックリンクライブラリモジュール(以下、DLLモジュールと呼ぶ)82(82−a〜82−n)を有する。メインモジュール81は、いわゆる実行可能ファイルであり、OSによって主メモリにロードされるものである。DLLモジュール82は、メインモジュール81(実行可能ファイル)によって読み出されて主メモリにロードされるものである。
外部記憶装置75に格納されている段階のDLLモジュール82は、常駐プログラム、非常駐プログラム、サブルーチンという3種類の要素のうちの1種類以上の要素を含むものとなっている。常駐プログラムは、当該メイン呼制御サーバ12が立ち上げられているときには、常に主メモリ上に存在して動作するプログラムである。非常駐プログラムは、主メモリにロードされているが、システムの稼働している間に常に動作しているものではなく、必要時に常駐プログラムのように一定時間だけ動作をし続けた後、処理が完了した時点で動作を停止するプログラムである。サブルーチンは、常駐プログラム、非常駐プログラムのいずれかによって読み出されて動作するプログラムである。また、DLLモジュール82は、処理面からは、交換処理用として利用されるモジュール、局データ設定・コマンド受付用として利用されるモジュール、障害処理用として利用されるモジュールに分類することができる。
なお、DLLモジュール82の識別子(名称)から、交換処理用、局データ設定・コマンド受付用、障害処理用のいずれであるかを区別できるようになされている。また、DLLモジュール82を構成する各要素についての識別子から、その要素が、常駐プログラム、非常駐プログラム、サブルーチンのいずれであるかを区別できるようになされている。
メインモジュール81は、DLLモジュール82の操作用の処理ルーチンとして、図3に示すように、当該メイン呼制御サーバ12が新規に立ち上げられた際に、自己に記述されている所定のDLLモジュールを主メモリにロードするための初期立上げ時ロードルーチン81Aや、修正された新モジュール(若しくは新プログラム)を主メモリにロードしたり、修正により不要となった旧モジュール(若しくは旧プログラム)を主メモリからアンロードしたりするための更新ルーチン81B等を備えている。
(A−2)実施形態の動作
次に、実施形態の特徴と関係する、メイン呼制御サーバ12の動作を、図面を参照しながら順に説明する。
(A−2−1)メイン呼制御サーバ12の新規立ち上げ時の処理
まず、当該メイン呼制御サーバ12が新規に立ち上げられた際における主メモリへのロード処理を、図4のシーケンス図を参照しながら説明する。
当該メイン呼制御サーバ12の電源がオンされて新規に立ち上げられると、当該メイン呼制御サーバ12におけるOS(そのIPL機能)により、外部記憶装置75からメインモジュール81が主メモリにロードされる(S100、S101)。ここで、ロードするメインモジュール81の名称(ファイル名)は、IPL用プログラム部分に記述されていても良く、また、保守オペレータに入力させるようにしても良い。
メインモジュール81には主メモリに新規にロードされた際には、初期立上げ時ロードルーチン81Aを実行するように記述されており(なお、保守オペレータによる手動起動であっても良い)、当該メイン呼制御サーバ12のCPUが、主メモリにロードされた初期立上げ時ロードルーチン81Aを実行することにより、外部記憶装置75から所定のDLLモジュール(82)を読み出して主メモリにロードさせる処理を繰り返し実行する(S102、S103)。
初期立上げ時ロードルーチン81Aは、このようなCPUの実行時に、呼び出し関係がある交換・呼制御用プログラム80の部分間のリンクを記述したプログラム管理テーブルを作成するようになされている。ここで、プログラム管理テーブルは、呼び出し元プログラム部分(以下、プログラム部分も単にプログラムと呼ぶ)が、呼び出し先プログラムにアクセスできるように、呼び出し先プログラムの主メモリの位置(例えば先頭アドレス)を記述したものである。
図5は、主メモリに存在するプログラムとプログラム間に張られるリンク例の説明図である。例えば、当該メイン呼制御サーバ12の架キャビネット単位にメインモジュール81が設けられており、そのメインモジュール81にはファイル名「rt」が付されている。メインモジュール81は、内部に1つのサブシステムを有し、ファイル名「rt」を呼び出し元とし、サブシステム名「ST」を呼び出し先とするリンクが張られる。上述のサブシステムは、局データ設定・コマンド受付用としてのサブシステム部分admistration、交換処理用としてのサブシステム部分call switching、障害処理用としてのサブシステム部分maintenanceを有し、各サブシステムadmistration、call switching、maintenanceはそれぞれ、当該サブシステムが利用する全てのDLLモジュールにリンクを張る。図5では、交換処理用としてのサブシステムcall switchingから識別子「MT」を有するDLLモジュールMod−x.DLLにリンクが張れている様子を示している。DLLモジュールMod−x.DLLは、自己が所有する全ての要素プログラム(関数)の識別子PT1、PT2、PT3、…を管理しており、その識別子PT1、PT2、PT3、…に対応付けて、その要素プログラム(関数)の実体が格納されている主メモリの位置(例えば先頭アドレス)を記述されている。また、要素プログラム(関数)が、常駐プログラムや非常駐プログラムではなく、サブルーチンである場合には、その要素プログラム(関数)の実体が格納されている主メモリの位置に加え、そのサブルーチンのその時点で有効な実行数(プログラム実行カウンタ)も記述されている。図5では、サブルーチンである要素プログラム(関数)func−xの実体が格納されている主メモリの位置POSと、有効な実行数CNTが、要素プログラム(関数)func−xの識別子PT3に対応付けられて記述されている。
主メモリの位置の情報は、プログラム管理テーブルに記述されている。プログラムの更新の単位がDLLモジュールの場合には、例えば、サブシステムが呼び出し元プログラムでDLLモジュールが呼び出し先プログラムであるので、サブシステムに、モジュールの主メモリの位置(アドレス)の情報を記述したプログラム管理テーブルが設けられる。
交換機能を有するメイン呼制御サーバ12の場合、取り扱うセッション(呼)の数も種々変化するものであり、また、呼制御の段階によって必要とするサブルーチンも異なるものである。また、複数のセッションを処理するため、同一のサブルーチンが複数のセッションのために並行して実行されることもあり得る。有効な実行数CNTは、そのサブルーチンが並行して実行されている数を表している。
(A−2−2)メイン呼制御サーバ12のプログラム参照呼び出し処理
次に、メイン呼制御サーバ12が新規に立ち上げられた際に作成されたプログラム管理テーブルを利用した、プログラム参照呼び出し処理を説明する。上述のようにして主メモリにロードされた交換・呼制御用プログラム80をCPUが実行することにより、メイン呼制御サーバ12としての交換機能や呼制御機能を実行する。この際、DLLモジュールの要素プログラム(関数;サブルーチンとする)をアクセスする際には、プログラム管理テーブルを利用したプログラム参照呼び出し処理を行う。
図6は、プログラム参照呼び出し処理の説明図である。一般的には、図6(A)に示すように、呼び出し元のプログラムに呼び出し先のプログラム(例えばDLLモジュール)のアドレスが含まれており、呼び出し元のプログラムが呼び出し先のプログラムを直接呼び出すものであった。この実施形態では、図6(B)に示すように、呼び出し元のプログラムには、呼び出し先のプログラムの識別子が含まれており、呼び出し元のプログラムは、プログラム管理テーブルを参照し、呼び出し先のプログラムの識別子から、呼び出し先のプログラムの位置(アドレス)を得て呼び出すものである。
ここで、図示は省略しているが、呼び出し先のプログラムがサブルーチンである場合には、この呼出時に、上述した有効な実行数(プログラム実行カウンタ)を1インクリメントする。なお、呼び出されたサブルーチンの実行が終了して処理が呼び出し元のプログラムに戻った際には、上述した有効な実行数が1デンクリメントされる。
(A−2−3)プログラムの更新処理
次に、実施形態のプログラムの更新処理を説明する。
まず、プログラムの更新処理の概要を、図7を参照しながら説明する。なお、プログラムの更新単位は、DLLモジュールとなされている。
外部記憶装置75に更新後のDLLモジュール(新モジュール)を格納しておく。ここで、新モジュールの識別子は、更新されるDLLモジュール(旧モジュール)の識別子とほぼ同様であり、バージョンなどを示す一部だけが異なっている。
保守オペレータは、メインモジュール81の更新ルーチン81B(図7)を起動させ、新モジュールのアップロードを指示する。このとき、メインモジュール81の更新ルーチン81Bは、アップロードが指示された新モジュールがアップロードしても良いものかを確認する(S200)。メインモジュール81の更新ルーチン81Bは、このような新モジュールのアップロード時には、メイン呼制御サーバ12の新規立ち上げ時のアップロードとは異なり、新モジュールがアップロードしても良いものかを確認する。例えば、この確認時には、交換処理用又は局データ設定・コマンド受付用であって(言い換えると、障害処理用モジュールは拒否される)、常駐プログラムや非常駐プログラムを含まないサブルーチンだけを含むものであることを確認する。新モジュールが、障害処理用モジュールであったり、常駐プログラム若しくは非常駐プログラムを含むものであったりすると、アップロードが拒否され、図7に示す一連の処理を終了する。
新モジュールを外部記憶装置75から主メモリにアップロードしても良いものである場合には、アップロードさせる(S201)。
新モジュールのアップロードが終了すると、新モジュールを使用できるように、旧モジュールからの新モジュールへの切り替えを実行する(S202)。この切り替え方法については後述する。なお、新モジュールのアップロード時には、新モジュール内の全てのサブルーチンについての有効な実行数(プログラム実行カウンタ)を初期化(0)することを行う。
その後、保守オペレータは新モジュールが適用される呼制御などが実行される操作を行って、新モジュールが適切に実行されていることを確認する。例えば、新モジュールがリンギングバックトーンの音色に関するものであれば、保守オペレータは発呼操作を行い、リンギングバックトーンの音色が適切であることを確認する。
メインモジュール81の更新ルーチン81Bは、新モジュールをアップロードした後では、入力部72を介した保守オペレータからの指示を待ち受け、その指示内容を判別する(S203)。保守オペレータは新モジュールが適切に動作することを確認すると、旧モジュールのアンロード(消滅)を指示し、新モジュールが適切に動作しないことを認識すると、旧モジュールへの切り戻しを指示する。
メインモジュール81の更新ルーチン81Bは、旧モジュールのアンロード(消滅)が指示されると、アンロードを実行できる条件が成立するのを待ち受けた後(S204)、旧モジュールを主メモリから消滅させ(S205)、図7に示す一連の処理を終了させる。ここで、アンロードを実行できる条件とは、旧モジュールに含まれている全てのサブルーチンについての有効な実行数(プログラム実行カウンタ)が0であることである。従って、旧モジュールに含まれている全てのサブルーチンについての有効な実行数(プログラム実行カウンタ)が0になる前では、旧モジュールと新モジュールとが共に実行していることもあり得る。
これに対して、メインモジュール81の更新ルーチン81Bは、旧モジュールへの切り戻しが指示されると、新モジュールからの旧モジュールへの切り替えを実行し(S206)、新モジュールを主メモリから消滅させ(S207)、図7に示す一連の処理を終了させる。なお、新モジュールを主メモリから消滅させる際にも、新モジュールに含まれている全てのサブルーチンについての有効な実行数(プログラム実行カウンタ)が0であることを待ち受けて行うようにしても良く、また、そのような条件成立を待つことなく、直ちに消滅させるようにしても良い。ここで、新モジュールから旧モジュールへの切り戻し方法は、旧モジュールからの新モジュールへの切り替え方法と同様である。
新旧モジュール間の切り替えは、プログラム管理テーブルの操作によって実行される。図8は、プログラム管理テーブルの構成例を示す説明図である。プログラム管理テーブルは、上述したように、呼び出し先のプログラムの識別子(DLLモジュール)と、呼び出し先のプログラムの主メモリ上の位置(アドレス)とを対応付けたものである。例えば、呼び出し先のプログラムAが旧モジュールであり、呼び出し先のプログラムA’が新モジュールである場合であれば、プログラム管理テーブルにおける呼び出し先のプログラムAの識別子に、新モジュールである呼び出し先のプログラムA’の主メモリ上の位置(アドレス)を対応付けるように書き換えることにより、新旧モジュール間の切り替えを行う。このようなプログラム管理テーブルの書換えにより、呼び出し元のプログラムが、旧モジュールである呼び出し先のプログラムAの識別子でプログラム管理テーブルを参照した場合には、新モジュールである呼び出し先のプログラムA’が呼び出される。
例えば、プログラムの更新処理前における主メモリの記憶状態及びリンク状態が上述した図5に示すような場合において、新モジュールをアップロードすると、主メモリの記憶状態及びリンク状態は図9に示すようになる。新モジュールをアップロードした状態では、まだ、サブシステムcall switchingから識別子「MT」を有する旧モジュールMod−x.DLLにリンクが張れている。新モジュールMod−x.DLL’への切り替えがなされ、サブシステムcall switching内のプログラム管理テーブルが書き換えられると、主メモリの記憶状態及びリンク状態は図10に示すようになり、サブシステムcall switchingから識別子「MT」を有する新モジュールMod−x.DLL’にリンクが張れるが旧モジュールMod−x.DLLも主メモリ上に残存している。その後、旧モジュールMod−x.DLLをアンロードすると、主メモリの記憶状態及びリンク状態は図11に示すようになり、旧モジュールMod−x.DLLは主メモリ上から消滅する。
(A−3)実施形態の効果
上記実施形態によれば、交換・呼制御用ログラムを、実行可能ファイルであるメインモジュールと、メインモジュールによってアップロードされる複数のDLLモジュールとで構成し、いずれかのDLLモジュールを更新する際には、新DLLモジュールをアップロードして主メモリに新旧のDLLモジュールを併存させた後、新DLLモジュールへの切り替えを行い、その後、旧DLLモジュールをアンロードさせるようにしたので、システムを無停止でDLLモジュールを更新(修正)することができる。
また、上記実施形態によれば、アップロードする新DLLモジュールに常駐プログラム若しくは非常駐プログラムが含まれている場合にはアップロードを禁止するようにしたので、DLLモジュールの更新(修正)によって、システムが誤動作したり更新時間が徒に長くなったりすることを未然に防止することができる。因みに、常駐プログラムや非常駐プログラムはサブルーチンに比べ、実行時間が長かったり、ループが多かったりし、常駐プログラムや非常駐プログラムを含むDLLモジュールを更新対象とした場合には、新DLLモジュールの実行確認に長い時間がかかって更新時間が長くなったり、実行確認時に無限ループに入ったりする恐れがある。
さらに、上記実施形態によれば、DLLモジュール内のサブルーチンに対応付けてプログラム実行カウンタを設け、旧DLLモジュール内の全てのサブルーチンに対応付けられているプログラム実行カウンタが0になったことを条件に旧DLLモジュールをアンロードするようにしたので、新DLLモジュールがアップロードした際に、旧DLLモジュールのサブルーチンを利用していたセッションがあったとしても、そのセッションに悪影響を与えることはない。
さらにまた、上記実施形態によれば、新DLLモジュールが正常動作を保証できず、旧DLLモジュールに切り戻す際にも、システムを停止させずに実行することができる。
(B)他の実施形態
上記実施形態においても種々変形実施形態に言及したが、さらに、以下に例示するような変形実施形態を挙げることができる。
上記実施形態では、全てのサブルーチンに対応付けられているプログラム実行カウンタが0になることを、旧DLLモジュールのアンロードの条件としているものを示したが、他の条件を適用するようにしても良い。例えば、新DLLモジュールがアップロードされた時点から、所定時間を経過したときに、旧DLLモジュールをアンロードするようにしても良い。
上記実施形態では、当該メイン呼制御サーバ12を新規に立ち上げる際にアップロードされるモジュールを記憶している記憶装置も、更新のための新モジュールを記憶している記憶装置も同じものであったが、これらの外部記憶装置が異なっていても良い。例えば、更新のための新モジュールを記憶している記憶装置として、保守用端末に設けられている記憶装置を適用するようにしても良い。
上記実施形態では、1つのモジュール毎に更新するように説明したが、複数種類の新モジュールを同時にアップロードし、複数種類のモジュールの更新を並行して行うようにしても良い。
上記実施形態では、IPセントレックスシステムにおけるIPテレフォニーサーバ等の交換機能や呼制御機能を担うメインの呼制御サーバのプログラム更新に適用した場合を示したが、他の呼制御サーバや交換機(特許請求の範囲では呼制御サーバや交換機をまとめて呼制御サーバと呼んでいる)に本発明を適用するようにしても良い。さらに、呼制御サーバや交換機以外の装置におけるプログラムの更新に、本発明を適用するようにしても良い。
実施形態のメイン呼制御サーバのIPセントレックスシステムにおける位置付けの一例を示す説明図である。 実施形態のメイン呼制御サーバのハードウェア的構成例を示すブロック図である。 図2の外部記憶装置に記憶されている交換・呼制御用プログラムの構成の説明図である。 実施形態のメイン呼制御サーバが新規に立ち上げられた際における主メモリへのロード処理を示すシーケンス図である。 実施形態における主メモリに存在する交換・呼制御用プログラムのプログラムとプログラム間に張られたリンクの例を示す説明図である。 実施形態におけるプログラム参照呼び出し処理の説明図である。 実施形態におけるプログラムの更新処理の概要を示すフローチャートである。 実施形態におけるプログラム管理テーブルの構成例を示す説明図である。 実施形態のプログラム更新時における主メモリの記憶状態及びリンク状態を示す説明図(1)である。 実施形態のプログラム更新時における主メモリの記憶状態及びリンク状態を示す説明図(2)である。 実施形態のプログラム更新時における主メモリの記憶状態及びリンク状態を示す説明図(3)である。
符号の説明
1…IPセントレックスシステム、12…メイン呼制御サーバ、70…制御部、75…外部記憶装置、80…交換・呼制御用プログラム、81…メインモジュール、81A…初期立上げ時ロードルーチン、81B…更新ルーチン、82−a〜82−n…ダイナミックリンクライブラリモジュール(DLLモジュール)。

Claims (6)

  1. 主メモリにロードされている処理プログラムを更新するプログラム更新システムにおいて、
    上記処理プログラムを、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割すると共に、
    更新される旧部分モジュールに置き換えられる新部分モジュールを上記主メモリにアップロードする新モジュールアップロード手段と、
    上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替える新旧モジュール切り替え手段と、
    上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする旧モジュールアンロード手段と
    上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理する部分モジュール位置情報管理手段とを有し、
    上記切り替え手段は、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新し、
    上記新モジュールアップロード手段は、アップロードしようとする新部分モジュールが常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合にはアップロードを実行し、処理プログラムの更新処理を継続させる
    ことを特徴とするプログラム更新システム。
  2. 上記部分モジュールは、自己に含まれているサブルーチンの実行数を管理するカウンタを有し、
    上記旧モジュールアンロード手段は、上記主メモリ上の旧部分モジュール内の全てのサブルーチンに係る実行数が0であることを条件として、上記主メモリ上の旧部分モジュールをアンロードする
    ことを特徴とする請求項1に記載のプログラム更新システム。
  3. 上記メインモジュールは、コンピュータが実行することにより新モジュールアップロード手段として機能するプログラム部分を有することを特徴とする請求項1又は2に記載のプログラム更新システム。
  4. 主メモリにロードされている処理プログラムを更新するプログラム更新方法において、
    上記処理プログラムを、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割しておくと共に、部分モジュール位置情報管理手段及び新モジュールアップロード手段、新旧モジュール切り替え手段及び旧モジュールアンロード手段を備え、
    上記部分モジュール位置情報管理手段は、上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理し、
    上記新モジュールアップロード手段は、更新される旧部分モジュールに置き換えられる新部分モジュールが、常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合には主メモリ上にアップロードし、処理プログラムの更新処理を継続させ、
    上記新旧モジュール切り替え手段は、上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替えると共に、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新し、
    上記旧モジュールアンロード手段は、上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする
    ことを特徴とするプログラム更新方法。
  5. 実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割されている、主メモリにロードされている処理プログラムを更新させるためのプログラム更新プログラムであって、
    コンピュータを、
    上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理する部分モジュール位置情報管理手段と、
    更新される旧部分モジュールに置き換えられる新部分モジュールが、常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合には主メモリ上にアップロードし、処理プログラムの更新処理を継続させる新モジュールアップロード手段と、
    上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替えると共に、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新する新旧モジュール切り替え手段と、
    上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする旧モジュールアンロード手段として機能させる
    ことを特徴とするプログラム更新プログラム。
  6. 交換機能を担う呼制御サーバにおいて、
    請求項1〜3のいずれかに記載のプログラム更新システムを有することを特徴とする呼制御サーバ。
JP2008306235A 2008-12-01 2008-12-01 プログラム更新システム、方法及びプログラム、並びに、呼制御サーバ Active JP5248290B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008306235A JP5248290B2 (ja) 2008-12-01 2008-12-01 プログラム更新システム、方法及びプログラム、並びに、呼制御サーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008306235A JP5248290B2 (ja) 2008-12-01 2008-12-01 プログラム更新システム、方法及びプログラム、並びに、呼制御サーバ

Publications (2)

Publication Number Publication Date
JP2010130620A JP2010130620A (ja) 2010-06-10
JP5248290B2 true JP5248290B2 (ja) 2013-07-31

Family

ID=42330615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008306235A Active JP5248290B2 (ja) 2008-12-01 2008-12-01 プログラム更新システム、方法及びプログラム、並びに、呼制御サーバ

Country Status (1)

Country Link
JP (1) JP5248290B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3572932A4 (en) * 2017-02-28 2020-12-23 Nippon Telegraph and Telephone Corporation COMMUNICATION PROCESSING DEVICE, INFORMATION PROCESSING DEVICE AND COMMUNICATION PROCESSING DEVICE CONTROL PROCESS
JP7440822B2 (ja) * 2019-10-31 2024-02-29 京セラドキュメントソリューションズ株式会社 情報処理システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02161523A (ja) * 1988-12-14 1990-06-21 Hitachi Ltd 常駐化モジュール修正方式
JPH05307478A (ja) * 1992-04-30 1993-11-19 Nippon Telegr & Teleph Corp <Ntt> データベース管理システムの構成法
TW518513B (en) * 2001-03-28 2003-01-21 Synq Technology Inc System and method to update an executing application software by modular way

Also Published As

Publication number Publication date
JP2010130620A (ja) 2010-06-10

Similar Documents

Publication Publication Date Title
US6697858B1 (en) Call center
US20090252063A1 (en) Method &amp; system for configuring a network communications device
CN111966519B (zh) 一种调整日志级别的方法、装置、设备及可读介质
CN101771769B (zh) 呼叫控制的方法、装置和系统
US20060256789A1 (en) Mobile use of a PBX system
EP3257231A1 (en) Distributed gateways
US8775673B2 (en) Routing a session initiation protocol (SIP) message in a communication system
JP5248290B2 (ja) プログラム更新システム、方法及びプログラム、並びに、呼制御サーバ
US20090085916A1 (en) Method and Apparatus for Performing Non Service Affecting Software Upgrades in Place
US20090089770A1 (en) Method and Apparatus for Performing Non Service Affecting Software Upgrades in Place
JP4399014B2 (ja) 電話システムとその端末装置
US20040032833A1 (en) Load testing for IP PBX systems
KR20120019054A (ko) 기업통신 환경에서의 원 넘버 서비스 제공 방법 및 그 장치
US7415103B2 (en) Method and configuration for controlling and/or monitoring a terminal connected to a communications system
JP6314592B2 (ja) 呼制御サーバ、サーバ移行システム及び呼制御プログラム
CN118646704B (zh) VoIP呼叫路由方法和系统、计算机存储介质和程序产品
US20050182763A1 (en) Apparatus and method for on-line upgrade using proxy objects in server nodes
US12074922B2 (en) Communication sessions in cluster computing environment
JP4262121B2 (ja) オブジェクトの管理方法、システム、およびプログラム
JP5999763B2 (ja) 加入者収容呼制御装置、および、加入者収容呼制御装置の通話規制方法、ならびに、プログラム
JP2020078000A (ja) 通話録音システムおよび通話録音方法
US8041013B2 (en) Transferring multiple dialogs of a call
CN119031071A (zh) 一种基于ippbx的远程通话操作方法及系统
US8813068B2 (en) Software replacement method and related software replacement system
Tips ShoreTel 12.2 GA Version 17.41. 2420.0 Software Release Notice (Build Notes)

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110620

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20120813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130215

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: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130410

R150 Certificate of patent or registration of utility model

Ref document number: 5248290

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3