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 - Program update system, method and program, and call control server - Google Patents
[go: Go Back, main page]

JP5248290B2 - Program update system, method and program, and call control server - Google Patents

Program update system, method and program, and call control server 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
Japanese (ja)
Other versions
JP2010130620A (en
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/en
Publication of JP2010130620A publication Critical patent/JP2010130620A/en
Application granted granted Critical
Publication of JP5248290B2 publication Critical patent/JP5248290B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)

Description

本発明はプログラム更新システム、方法及びプログラム、並びに、呼制御サーバに関し、例えば、IPセントレックスシステムにおけるIPテレフォニーサーバ等の呼制御サーバのプログラムの一部を更新する場合に適用し得るものである。 The present invention relates to a program update system, method and program, and a call control server , and can be applied to, for example, updating a part of a program of a call control server such as an IP telephony server in an IP Centrex system.

企業内音声ネットワークシステムとして、1又は複数の主たる拠点にメイン呼制御サーバを配置して全ての拠点の交換機能や呼制御機能を集中管理するIPセントレックス方式のシステムが既に実用に供している。今日においては、メイン呼制御サーバが高性能になってきており、そのため、取り扱うことが可能な加入者数も多くなっている。また、企業内音声ネットワークシステムを導入した企業も、電話通信事業者並みの高信頼性を要求するようになりつつある。   As an in-house voice network system, an IP Centrex system has been put into practical use in which a main call control server is arranged at one or a plurality of main sites to centrally manage switching functions and call control functions at all sites. Today, the main call control server has become high performance, and therefore, the number of subscribers that can be handled has increased. In addition, companies that have introduced an in-house voice network system are also demanding high reliability equivalent to that of a telecom carrier.

メイン呼制御サーバは、主として、ソフトウェアによって交換機能や呼制御機能等を提供するものであるが、プログラムに軽微なバグ(例えばプログラムの1行の記述にミス)が発生していることもあり得る。軽微なバグを修正する場合であっても、通話を強制的に切断して、バグを有するプログラム部分を更新しなければならず、運用に与える影響が大きいと共に、信頼性を損なってしまう。   The main call control server mainly provides a switching function, a call control function, etc. by software, but a minor bug (for example, a mistake in the description of one line of the program) may occur in the program. . Even when a minor bug is corrected, the call must be forcibly disconnected to update the program part having the bug, which has a great influence on the operation and deteriorates the reliability.

そのため、システムを停止することがなく、システム稼働中に、修正対象のプログラム部分を修正することが求められている。   Therefore, it is required to correct the program portion to be corrected while the system is operating without stopping the system.

このような要求に応える従来技術として、特許文献1に記載のものがある。特許文献1の記載技術は、主記憶装置に常駐化され動作中のプログラムを構成する機能的に閉じた各処理プログラムモジュール毎に、それぞれ固有の識別名を付けて、常時、この識別名により各処理プログラムモジュールが動作中か否かを判断できる動作状態管理テーブルを有し、この動作状態管理テーブルにより、修正対象の処理プログラムモジュールが不動作中であることを確認して主記憶装置上で修正する常駐化モジュール修正方式である。
特開平2−161523
There exists a thing of patent document 1 as a prior art which meets such a request | requirement. The technology described in Patent Document 1 assigns a unique identification name to each functionally closed processing program module that constitutes an operating program that is resident in the main storage device. It has an operation state management table that can determine whether or not a processing program module is in operation. This operation state management table confirms that the processing program module to be corrected is not operating and corrects it on the main storage device. This is a resident module correction method.
JP-A-2-161523

しかしながら、特許文献1の記載技術は、メイン呼制御サーバ等の多くのセッションを取り扱う呼制御サーバのプログラム部分の修正には適用し難いものである。   However, the technique described in Patent Document 1 is difficult to apply to correction of a program part of a call control server that handles many sessions such as a main call control server.

メイン呼制御サーバは、例えば、数百、数千というセッション(呼)を取り扱うものであり、修正対象のプログラム部分がいずれのセッションについても不動作中であることはまずあり得ない。仮に、修正対象のプログラム部分が適用されることが少ない部分であって、全てのセッションで不動作中であって修正を開始したとしても、その修正期間で、そのプログラム部分の実行を求めるセッションが生じたとしてもそれに答えることができず、修正期間でアクセスを禁止することを要する。すなわち、特許文献1の記載技術は、システムを切断してモジュール修正を行って再起動することをなくし、システムの切断時間や再起動時間を削減しているが、システムの無停止を実現することができないものであり、呼制御サーバのプログラム部分の修正には適用し難いものである。   The main call control server handles, for example, hundreds or thousands of sessions (calls), and it is unlikely that the program part to be modified is inactive for any session. Even if the program part to be modified is rarely applied and it is inactive in all sessions and modification is started, there is a session that requests execution of the program part during the modification period. Even if it occurs, it cannot be answered, and access must be prohibited during the modification period. In other words, the technology described in Patent Document 1 eliminates the need to disconnect the system, modify the module, and restart the system, thereby reducing the system disconnection time and the restart time. However, it is difficult to apply to the modification of the program part of the call control server.

そのため、システムを停止することなく、プログラムの一部を更新することができるプログラム更新システム、方法及びプログラム、並びに、呼制御サーバが望まれている。   Therefore, a program update system, a method and a program, and a call control server that can update a part of a program without stopping the system are desired.

第1の本発明は、主メモリにロードされている処理プログラムを更新するプログラム更新システムにおいて、(1)上記処理プログラムを、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割すると共に、(2)更新される旧部分モジュールに置き換えられる新部分モジュールを上記主メモリにアップロードする新モジュールアップロード手段と、(3)上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替える新旧モジュール切り替え手段と、(4)上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする旧モジュールアンロード手段と、(5)上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理する部分モジュール位置情報管理手段とを有し、(6)上記切り替え手段は、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新し、(7)上記新モジュールアップロード手段は、アップロードしようとする新部分モジュールが常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合にはアップロードを実行し、処理プログラムの更新処理を継続させることを特徴とする。 According to a first aspect of the present invention, in a program update system for updating a processing program loaded in a main memory, (1) the processing program is divided into a main module of an executable file and other partial modules; (2) New module uploading means for uploading a new partial module to be replaced with the old partial module to be updated to the main memory; and (3) switching the valid partial module on the main memory from the old partial module to the new partial module. Old and new module switching means; (4) old module unloading means for unloading the old partial module on the main memory after switching between the old and new module switching means; and (5) an identifier of the partial module and its partial module. And the main memory location And (6) the switching means is the old partial module in the partial module position information management means. The position information on the main memory associated with the identifier is updated to the position information on the main memory of the new partial module. (7) The new module uploading means Check whether the resident program, non-resident program, or subroutine is included. If the new partial module contains a resident program or non-resident program, the update processing of the processing program is terminated without executing the upload, and the new partial module executes the subroutine. If so, upload it, Characterized in that to continue the updating process of the management program.

第2の本発明は、主メモリにロードされている処理プログラムを更新するプログラム更新方法において、(1)上記処理プログラムを、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割しておくと共に、部分モジュール位置情報管理手段及び新モジュールアップロード手段、新旧モジュール切り替え手段及び旧モジュールアンロード手段を備え、(2)上記部分モジュール位置情報管理手段は、上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理し、(3)上記新モジュールアップロード手段は、更新される旧部分モジュールに置き換えられる新部分モジュールが、常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合には主メモリ上にアップロードし、処理プログラムの更新処理を継続させ、(4)上記新旧モジュール切り替え手段は、上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替えると共に、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新し、(5)上記旧モジュールアンロード手段は、上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードすることを特徴とする。 The second aspect of the present invention is a program update method for updating a processing program loaded in a main memory. (1) The processing program is divided into a main module of an executable file and other partial modules. And a partial module position information management means, a new module upload means, an old and new module switching means, and an old module unload means. (2) The partial module position information management means includes an identifier of the partial module, and Managing partial module position information used in the reference call of the partial module in association with the position on the main memory, and (3) the new module upload means is a new part replaced with the old partial module to be updated Module is resident program, non-resident program If the new partial module contains a resident program or non-resident program, the update processing of the processing program is terminated without executing the upload, and if the new partial module contains a subroutine uploaded to the main memory, to continue the updating process of the program, (4) the old and new modules switching means switches the active sub-module on the main memory to the new sub-module from the old sub-module Rutotomoni, said portion Updating the position information on the main memory associated with the identifier of the old partial module in the module position information management means to the position information on the main memory of the new partial module; (5) the old module unloading means After switching the above-mentioned old and new module switching means Characterized in that it unload the old part module on the main memory.

第3の本発明は、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割されている、主メモリにロードされている処理プログラムを更新させるためのプログラム更新プログラムであって、コンピュータを、(1)上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理する部分モジュール位置情報管理手段と、(2)更新される旧部分モジュールに置き換えられる新部分モジュールが、常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合には主メモリ上にアップロードし、処理プログラムの更新処理を継続させる新モジュールアップロード手段と、(3)上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替えると共に、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新する新旧モジュール切り替え手段と、(4)上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする旧モジュールアンロード手段として機能させることを特徴とする。 A third aspect of the present invention is a program update program for updating a processing program loaded in a main memory, which is divided into a main module of an executable file and other partial modules. (1) a partial module position information management means for managing partial module position information used in a reference call of a partial module, in which the identifier of the partial module is associated with the position of the partial module on the main memory; (2) Check whether the new partial module to be replaced with the old partial module to be updated contains a resident program, a non-resident program, or a subroutine. If the new partial module contains a resident program or a non-resident program, execute upload. Finish processing program update processing Allowed, if the new partial module comprises a subroutine uploaded to the main memory, and new modules upload means to continue the updating process of the program, from the old sub-module valid part module (3) on the main memory switching Rutotomoni the new sub-module, associated with the identifier of the old sub-module in the sub-module position information management means, the position information on the main memory, and updates the position information on the main memory of the new sub-module An old and new module switching means; and (4) functioning as an old module unloading means for unloading the old partial module on the main memory after the switching of the old and new module switching means.

第4の本発明は、交換機能を担う呼制御サーバにおいて、第1の本発明のプログラム更新システムを有することを特徴とする。   According to a fourth aspect of the present invention, a call control server having an exchange function includes the program update system according to the first aspect of the present invention.

本発明によれば、システムを停止することなく、プログラムの一部を更新することができるプログラム更新システム、方法及びプログラム、並びに、呼制御サーバを提供できる。   According to the present invention, it is possible to provide a program update system, a method and a program, and a call control server that can update a part of a program without stopping the system.

(A)主たる実施形態
以下、本発明によるプログラム更新システム、方法及びプログラム、並びに、呼制御サーバの一実施形態を、図面を参照しながら詳述する。ここで、実施形態の呼制御サーバは、IPセントレックスシステムにおけるIPテレフォニーサーバ等の交換機能や呼制御機能を担うメインの呼制御サーバである。
(A) Main Embodiment Hereinafter, an embodiment of a program update system, method and program, and a call control server according to the present invention will be described in detail with reference to the drawings. Here, the call control server of the embodiment is a main call control server responsible for an exchange function and a call control function such as an IP telephony server in the IP Centrex system.

(A−1)実施形態の構成
図1は、実施形態のメイン呼制御サーバのIPセントレックスシステムにおける位置付けの一例を示す説明図である。
(A-1) Configuration of the Embodiment FIG. 1 is an explanatory diagram illustrating an example of the positioning of the main call control server of the embodiment in the IP Centrex system.

図1において、実施形態のメイン呼制御サーバを適用しているIPセントレックスシステム1は、IP−VPN、広域イーサネットサービス(イーサネットは登録商標)、インターネットVPNなどのIPネットワーク2を介して、複数(図1では5つ)の拠点3−1〜3−5が相互に接続されている。   In FIG. 1, an IP Centrex system 1 to which the main call control server of the embodiment is applied includes a plurality of (FIG. 1) via IP networks 2 such as IP-VPN, wide area Ethernet service (Ethernet is a registered trademark), and Internet VPN. 1), 5) bases 3-1 to 3-5 are connected to each other.

拠点3−1は、本社などのセンターが該当し、内部ネットワーク10がルータ11を介してIPネットワーク2に接続されている。内部ネットワーク10には、実施形態の呼制御サーバ(メイン呼制御サーバ)12や、システム監視サーバや課金情報集計サーバなどの管理用サーバ13や、アプリケーションサーバやIP公衆電話網接続サーバやプロトコル変換サーバやユニファイドメッセージサーバなどのサービス用サーバ14が接続されている。図1では省略しているが、主たる拠点3−1にも、各種端末が設けられていても良い。   The base 3-1 corresponds to a center such as a head office, and the internal network 10 is connected to the IP network 2 via the router 11. The internal network 10 includes a call control server (main call control server) 12 according to the embodiment, a management server 13 such as a system monitoring server and a billing information totaling server, an application server, an IP public telephone network connection server, and a protocol conversion server. And a service server 14 such as a unified message server are connected. Although omitted in FIG. 1, various terminals may also be provided at the main base 3-1.

拠点3−2〜3−5は、支店や営業所などが該当し、それぞれ、内部ネットワーク20、…、50がルータ21、…、51を介してIPネットワーク2に接続されている。   The bases 3-2 to 3-5 correspond to branches and sales offices, and the internal networks 20,..., 50 are connected to the IP network 2 via routers 21,.

拠点3−2の内部ネットワーク20には、PHS端末22を収容したPHS基地局(IP非対応)23や固定電話機(IP非対応)24を接続したIP遠隔ユニット25や、IP公衆電話網接続サーバ26や、IP公衆電話網接続サーバ26の障害時の代替用サバイバルゲートウェイ27が接続されている。   The internal network 20 of the base 3-2 includes an IP remote unit 25 connected to a PHS base station (IP non-compatible) 23 accommodating a PHS terminal 22 and a fixed telephone (non-IP compatible) 24, and an IP public telephone network connection server. 26 and an alternative survival gateway 27 in case of failure of the IP public telephone network connection server 26 are connected.

拠点3−3の内部ネットワーク30には、内線端末32を収容したPBX33がVoIPゲートウェイ34を介して接続されている。   A PBX 33 accommodating an extension terminal 32 is connected to the internal network 30 of the base 3-3 via a VoIP gateway 34.

拠点3−4の内部ネットワーク40には、IPソフトフォン42やIP固定電話機43を収容したIP−PBX44が接続されている。   An IP-PBX 44 accommodating an IP soft phone 42 and an IP fixed telephone 43 is connected to the internal network 40 of the base 3-4.

拠点3−5の内部ネットワーク50には、PHS端末52を収容したPHS基地局(IP対応)53や、IP固定電話機54や、無線LAN端末55を収容した無線LANアクセスポイント56や、パソコンベース中継台57や、IPソフトフォン58や、IP遠隔ユニット59や、メイン呼制御サーバ12の障害時の代替用サバイバルサーバ60が接続されている。   The internal network 50 of the base 3-5 includes a PHS base station (IP compatible) 53 that accommodates a PHS terminal 52, an IP fixed telephone 54, a wireless LAN access point 56 that accommodates a wireless LAN terminal 55, and a PC-based relay. A stand 57, an IP soft phone 58, an IP remote unit 59, and an alternative survival server 60 in the event of a failure of the main call control server 12 are connected.

上述した各種の内線端末や外線との交換機能や呼制御機能を担っているメイン呼制御サーバ12は、ハードウェア的には、図2に示すような構成を有する。   The main call control server 12 that is responsible for the exchange functions and call control functions with the various extension terminals and external lines described above has a hardware configuration as shown in FIG.

メイン呼制御サーバ12は、制御部70に対し、インタフェース部(IF)71を介して、入力部72、出力部73、通信部74、外部記憶装置75等が接続されているものである。また、入出力ポート76を備え、図示しない保守端末等が接続できるようになされている。制御部70は、CPUや、CPUが処理を実行する際にアクセスする各種のメモリ(ROM、RAMなど)からなり、メモリの一部はいわゆる主メモリとして利用される。外部記憶装置75は、例えば、ハードディスクやCD−ROMなどの記録媒体とそのアクセス構成とでなり、当該メイン呼制御サーバ12の主メモリにロードされるプログラム等が記憶されているものである。   The main call control server 12 has an input unit 72, an output unit 73, a communication unit 74, an external storage device 75, and the like connected to the control unit 70 via an interface unit (IF) 71. In addition, an input / output port 76 is provided so that a maintenance terminal (not shown) can be connected. The control unit 70 includes a CPU and various memories (ROM, RAM, etc.) that are accessed when the CPU executes processing. A part of the memory is used as a so-called main memory. The external storage device 75 includes, for example, a recording medium such as a hard disk or a CD-ROM and its access configuration, and stores a program and the like loaded into the main memory of the main call control server 12.

外部記憶装置75には、当該メイン呼制御サーバ12の立ち上げ時に主メモリにロードすべき交換・呼制御用プログラムが格納されている。図3は、外部記憶装置75に記憶されている交換・呼制御用プログラムの構成の説明図である。 The external storage device 75, the main call control server 12 rising exchange call control program to be loaded into the main memory at the time is stored. FIG. 3 is an explanatory diagram of the configuration of the exchange / call control program stored in the external storage device 75.

交換・呼制御用プログラム80は、複数のモジュールに分割されている。交換・呼制御用プログラム80は、モジュールとして、メインモジュール81と、ダイナミックリンクライブラリモジュール(以下、DLLモジュールと呼ぶ)82(82−a〜82−n)を有する。メインモジュール81は、いわゆる実行可能ファイルであり、OSによって主メモリにロードされるものである。DLLモジュール82は、メインモジュール81(実行可能ファイル)によって読み出されて主メモリにロードされるものである。 The exchange / call control program 80 is divided into a plurality of modules. The exchange / call control program 80 includes a main module 81 and a dynamic link library module (hereinafter referred to as a DLL module) 82 (82-a to 82-n) as modules. The main module 81 is a so-called executable file and is loaded into the main memory by the OS. The DLL module 82 is read by the main module 81 (executable file) and loaded into the main memory.

外部記憶装置75に格納されている段階のDLLモジュール82は、常駐プログラム、非常駐プログラム、サブルーチンという3種類の要素のうちの1種類以上の要素を含むものとなっている。常駐プログラムは、当該メイン呼制御サーバ12が立ち上げられているときには、常に主メモリ上に存在して動作するプログラムである。非常駐プログラムは、主メモリにロードされているが、システムの稼働している間に常に動作しているものではなく、必要時に常駐プログラムのように一定時間だけ動作をし続けた後、処理が完了した時点で動作を停止するプログラムである。サブルーチンは、常駐プログラム、非常駐プログラムのいずれかによって読み出されて動作するプログラムである。また、DLLモジュール82は、処理面からは、交換処理用として利用されるモジュール、局データ設定・コマンド受付用として利用されるモジュール、障害処理用として利用されるモジュールに分類することができる。 The DLL module 82 at the stage stored in the external storage device 75 includes one or more elements among the three kinds of elements, that is, a resident program, a non-resident program, and a subroutine. The resident program is a program that always exists and operates on the main memory when the main call control server 12 is started up. A non-resident program is loaded into the main memory, but it is not always running while the system is running, and after it has been running for a certain period of time like a resident program when necessary, the processing is completed It is a program that stops the operation when it is done. Subroutine resident program, a program for operating any crab Accordingly read and non-resident program. Further, the DLL module 82 can be classified into a module used for exchange processing, a module used for station data setting / command reception, and a module used for fault processing from the processing aspect.

なお、DLLモジュール82の識別子(名称)から、交換処理用、局データ設定・コマンド受付用、障害処理用のいずれであるかを区別できるようになされている。また、DLLモジュール82を構成する各要素についての識別子から、その要素が、常駐プログラム、非常駐プログラム、サブルーチンのいずれであるかを区別できるようになされている。   It should be noted that the identifier (name) of the DLL module 82 can be distinguished from one for exchange processing, one for station data setting / command reception, and one for failure processing. In addition, it is possible to distinguish whether the element is a resident program, a non-resident program, or a subroutine from the identifier of each element constituting the DLL module 82.

メインモジュール81は、DLLモジュール82の操作用の処理ルーチンとして、図3に示すように、当該メイン呼制御サーバ12が新規に立ち上げられた際に、自己に記述されている所定のDLLモジュールを主メモリにロードするための初期立上げ時ロードルーチン81Aや、修正された新モジュール(若しくは新プログラム)を主メモリにロードしたり、修正により不要となった旧モジュール(若しくは旧プログラム)を主メモリからアンロードしたりするための更新ルーチン81B等を備えている。   As shown in FIG. 3, the main module 81 is a processing routine for operating the DLL module 82. When the main call control server 12 is newly started up, the main module 81 stores a predetermined DLL module described in itself. The initial startup load routine 81A for loading into the main memory, the modified new module (or new program) is loaded into the main memory, or the old module (or old program) that has become unnecessary due to the modification is loaded into the main memory. And an update routine 81B for unloading from.

(A−2)実施形態の動作
次に、実施形態の特徴と関係する、メイン呼制御サーバ12の動作を、図面を参照しながら順に説明する。
(A-2) Operation of Embodiment Next, the operation of the main call control server 12 related to the features of the embodiment will be described in order with reference to the drawings.

(A−2−1)メイン呼制御サーバ12の新規立ち上げ時の処理
まず、当該メイン呼制御サーバ12が新規に立ち上げられた際における主メモリへのロード処理を、図4のシーケンス図を参照しながら説明する。
(A-2-1) Processing at the time of new startup of the main call control server 12 First, load processing to the main memory when the main call control server 12 is newly started up is shown in the sequence diagram of FIG. The description will be given with reference.

当該メイン呼制御サーバ12の電源がオンされて新規に立ち上げられると、当該メイン呼制御サーバ12におけるOS(そのIPL機能)により、外部記憶装置75からメインモジュール81が主メモリにロードされる(S100、S101)。ここで、ロードするメインモジュール81の名称(ファイル名)は、IPL用プログラム部分に記述されていても良く、また、保守オペレータに入力させるようにしても良い。   When the main call control server 12 is powered on and newly started up, the OS (its IPL function) in the main call control server 12 loads the main module 81 from the external storage device 75 into the main memory ( S100, S101). Here, the name (file name) of the main module 81 to be loaded may be described in the IPL program part, or may be input by the maintenance operator.

メインモジュール81には主メモリに新規にロードされた際には、初期立上げ時ロードルーチン81Aを実行するように記述されており(なお、保守オペレータによる手動起動であっても良い)、当該メイン呼制御サーバ12のCPUが、主メモリにロードされた初期立上げ時ロードルーチン81Aを実行することにより、外部記憶装置75から所定のDLLモジュール(82)を読み出して主メモリにロードさせる処理を繰り返し実行する(S102、S103)。   The main module 81 is described so as to execute an initial startup load routine 81A when it is newly loaded into the main memory (note that it may be manually started by a maintenance operator). The CPU of the call control server 12 repeats the process of reading a predetermined DLL module (82) from the external storage device 75 and loading it into the main memory by executing the initial startup load routine 81A loaded into the main memory. Execute (S102, S103).

初期立上げ時ロードルーチン81Aは、このようなCPUの実行時に、呼び出し関係がある交換・呼制御用プログラム80の部分間のリンクを記述したプログラム管理テーブルを作成するようになされている。ここで、プログラム管理テーブルは、呼び出し元プログラム部分(以下、プログラム部分も単にプログラムと呼ぶ)が、呼び出し先プログラムにアクセスできるように、呼び出し先プログラムの主メモリの位置(例えば先頭アドレス)を記述したものである。   The initial startup load routine 81A is configured to create a program management table in which links between portions of the exchange / call control program 80 having a call relationship are described during execution of the CPU. Here, the program management table describes the location (for example, start address) of the main memory of the call destination program so that the call source program portion (hereinafter, the program portion is also simply referred to as a program) can access the call destination program. Is.

図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に対応付けられて記述されている。   FIG. 5 is an explanatory diagram of a link example established between programs existing in the main memory. For example, a main module 81 is provided for each rack cabinet of the main call control server 12, and the file name “rt” is assigned to the main module 81. The main module 81 has one subsystem inside, and a link is established with the file name “rt” as the caller and the subsystem name “ST” as the callee. The above-described subsystem has a subsystem part administration for station data setting / command reception, a subsystem part call switching for exchange processing, and a subsystem part maintenance for failure processing. Each subsystem administration, call Each of switching and maintenance links all DLL modules used by the subsystem. In FIG. 5, the DLL module Mod-x. Having the identifier “MT” from the subsystem call switching for the exchange process is used. A state is shown in which a link is established in the DLL. DLL module Mod-x. The DLL manages the identifiers PT1, PT2, PT3,... Of all the element programs (functions) owned by itself, and associates the identifiers PT1, PT2, PT3,. The position (for example, the start address) of the main memory where the entity is stored is described. In addition, when the element program (function) is not a resident program or non-resident program but a subroutine, in addition to the location of the main memory where the entity of the element program (function) is stored, at that time of the subroutine The number of effective executions (program execution counter) is also described. In FIG. 5, the position POS in the main memory where the entity of the element program (function) func-x, which is a subroutine, is stored, and the effective execution number CNT are associated with the identifier PT3 of the element program (function) func-x. Has been described.

主メモリの位置の情報は、プログラム管理テーブルに記述されている。プログラムの更新の単位がDLLモジュールの場合には、例えば、サブシステムが呼び出し元プログラムでDLLモジュールが呼び出し先プログラムであるので、サブシステムに、モジュールの主メモリの位置(アドレス)の情報を記述したプログラム管理テーブルが設けられる。   Information on the position of the main memory is described in the program management table. When the unit of program update is a DLL module, for example, since the subsystem is a caller program and the DLL module is a callee program, information on the location (address) of the main memory of the module is described in the subsystem. A program management table is provided.

交換機能を有するメイン呼制御サーバ12の場合、取り扱うセッション(呼)の数も種々変化するものであり、また、呼制御の段階によって必要とするサブルーチンも異なるものである。また、複数のセッションを処理するため、同一のサブルーチンが複数のセッションのために並行して実行されることもあり得る。有効な実行数CNTは、そのサブルーチンが並行して実行されている数を表している。   In the case of the main call control server 12 having an exchange function, the number of sessions (calls) to be handled changes variously, and the required subroutine differs depending on the call control stage. Also, to process multiple sessions, the same subroutine may be executed in parallel for multiple sessions. The effective execution number CNT represents the number of the subroutines being executed in parallel.

(A−2−2)メイン呼制御サーバ12のプログラム参照呼び出し処理
次に、メイン呼制御サーバ12が新規に立ち上げられた際に作成されたプログラム管理テーブルを利用した、プログラム参照呼び出し処理を説明する。上述のようにして主メモリにロードされた交換・呼制御用プログラム80をCPUが実行することにより、メイン呼制御サーバ12としての交換機能や呼制御機能を実行する。この際、DLLモジュールの要素プログラム(関数;サブルーチンとする)をアクセスする際には、プログラム管理テーブルを利用したプログラム参照呼び出し処理を行う。
(A-2-2) Program Reference Call Processing of Main Call Control Server 12 Next, program reference call processing using a program management table created when the main call control server 12 is newly started will be described. To do. When the CPU executes the exchange / call control program 80 loaded in the main memory as described above, the exchange function and call control function as the main call control server 12 are executed. At this time, when accessing an element program (function; subroutine) of the DLL module, a program reference calling process using a program management table is performed.

図6は、プログラム参照呼び出し処理の説明図である。一般的には、図6(A)に示すように、呼び出し元のプログラムに呼び出し先のプログラム(例えばDLLモジュール)のアドレスが含まれており、呼び出し元のプログラムが呼び出し先のプログラムを直接呼び出すものであった。この実施形態では、図6(B)に示すように、呼び出し元のプログラムには、呼び出し先のプログラムの識別子が含まれており、呼び出し元のプログラムは、プログラム管理テーブルを参照し、呼び出し先のプログラムの識別子から、呼び出し先のプログラムの位置(アドレス)を得て呼び出すものである。   FIG. 6 is an explanatory diagram of the program reference calling process. In general, as shown in FIG. 6A, the address of the call destination program (for example, DLL module) is included in the call source program, and the call source program directly calls the call destination program. Met. In this embodiment, as shown in FIG. 6B, the call source program includes an identifier of the call destination program, and the call source program refers to the program management table to call the call destination program. The position (address) of the called program is obtained from the program identifier and called.

ここで、図示は省略しているが、呼び出し先のプログラムがサブルーチンである場合には、この呼出時に、上述した有効な実行数(プログラム実行カウンタ)を1インクリメントする。なお、呼び出されたサブルーチンの実行が終了して処理が呼び出し元のプログラムに戻った際には、上述した有効な実行数が1デンクリメントされる。   Although not shown in the figure, when the called program is a subroutine, the above-mentioned effective execution number (program execution counter) is incremented by 1 at the time of calling. When the execution of the called subroutine is completed and the process returns to the calling program, the effective execution number described above is decremented by 1.

(A−2−3)プログラムの更新処理
次に、実施形態のプログラムの更新処理を説明する。
(A-2-3) Program Update Processing Next, program update processing according to the embodiment will be described.

まず、プログラムの更新処理の概要を、図7を参照しながら説明する。なお、プログラムの更新単位は、DLLモジュールとなされている。   First, the outline of the program update process will be described with reference to FIG. The program update unit is a DLL module.

外部記憶装置75に更新後のDLLモジュール(新モジュール)を格納しておく。ここで、新モジュールの識別子は、更新されるDLLモジュール(旧モジュール)の識別子とほぼ同様であり、バージョンなどを示す一部だけが異なっている。   The updated DLL module (new module) is stored in the external storage device 75. Here, the identifier of the new module is almost the same as the identifier of the updated DLL module (old module), and only a part indicating the version is different.

保守オペレータは、メインモジュール81の更新ルーチン81B(図7)を起動させ、新モジュールのアップロードを指示する。このとき、メインモジュール81の更新ルーチン81Bは、アップロードが指示された新モジュールがアップロードしても良いものかを確認する(S200)。メインモジュール81の更新ルーチン81Bは、このような新モジュールのアップロード時には、メイン呼制御サーバ12の新規立ち上げ時のアップロードとは異なり、新モジュールがアップロードしても良いものかを確認する。例えば、この確認時には、交換処理用又は局データ設定・コマンド受付用であって(言い換えると、障害処理用モジュールは拒否される)、常駐プログラムや非常駐プログラムを含まないサブルーチンだけを含むものであることを確認する。新モジュールが、障害処理用モジュールであったり、常駐プログラム若しくは非常駐プログラムを含むものであったりすると、アップロードが拒否され、図7に示す一連の処理を終了する。   The maintenance operator activates the update routine 81B (FIG. 7) of the main module 81 and instructs to upload a new module. At this time, the update routine 81B of the main module 81 confirms whether the new module instructed to upload can be uploaded (S200). The update routine 81B of the main module 81, when uploading such a new module, confirms whether the new module can be uploaded, unlike the upload when the main call control server 12 is newly started up. For example, at the time of this confirmation, it is for exchange processing or for station data setting / command reception (in other words, the failure processing module is rejected), and it is confirmed that it contains only subroutines that do not include resident programs or non-resident programs. To do. If the new module is a failure processing module or includes a resident program or a non-resident program, the upload is rejected and the series of processing shown in FIG. 7 is terminated.

新モジュールを外部記憶装置75から主メモリにアップロードしても良いものである場合には、アップロードさせる(S201)。   If the new module can be uploaded from the external storage device 75 to the main memory, it is uploaded (S201).

新モジュールのアップロードが終了すると、新モジュールを使用できるように、旧モジュールからの新モジュールへの切り替えを実行する(S202)。この切り替え方法については後述する。なお、新モジュールのアップロード時には、新モジュール内の全てのサブルーチンについての有効な実行数(プログラム実行カウンタ)を初期化(0)することを行う。   When uploading of the new module is completed, switching from the old module to the new module is executed so that the new module can be used (S202). This switching method will be described later. When a new module is uploaded, the number of effective executions (program execution counter) for all subroutines in the new module is initialized (0).

その後、保守オペレータは新モジュールが適用される呼制御などが実行される操作を行って、新モジュールが適切に実行されていることを確認する。例えば、新モジュールがリンギングバックトーンの音色に関するものであれば、保守オペレータは発呼操作を行い、リンギングバックトーンの音色が適切であることを確認する。   Thereafter, the maintenance operator performs an operation such as call control to which the new module is applied, and confirms that the new module is being executed appropriately. For example, if the new module relates to a ringing back tone tone, the maintenance operator performs a call operation to confirm that the ringing back tone tone is appropriate.

メインモジュール81の更新ルーチン81Bは、新モジュールをアップロードした後では、入力部72を介した保守オペレータからの指示を待ち受け、その指示内容を判別する(S203)。保守オペレータは新モジュールが適切に動作することを確認すると、旧モジュールのアンロード(消滅)を指示し、新モジュールが適切に動作しないことを認識すると、旧モジュールへの切り戻しを指示する。   After uploading the new module, the update routine 81B of the main module 81 waits for an instruction from the maintenance operator via the input unit 72 and determines the contents of the instruction (S203). When the maintenance operator confirms that the new module operates properly, the maintenance operator instructs unloading (disappearance) of the old module. When the maintenance operator recognizes that the new module does not operate properly, the maintenance operator instructs switching back to the old module.

メインモジュール81の更新ルーチン81Bは、旧モジュールのアンロード(消滅)が指示されると、アンロードを実行できる条件が成立するのを待ち受けた後(S204)、旧モジュールを主メモリから消滅させ(S205)、図7に示す一連の処理を終了させる。ここで、アンロードを実行できる条件とは、旧モジュールに含まれている全てのサブルーチンについての有効な実行数(プログラム実行カウンタ)が0であることである。従って、旧モジュールに含まれている全てのサブルーチンについての有効な実行数(プログラム実行カウンタ)が0になる前では、旧モジュールと新モジュールとが共に実行していることもあり得る。   When an instruction to unload (disappear) the old module is instructed, the update routine 81B of the main module 81 waits for the condition for executing the unload to be satisfied (S204), and then deletes the old module from the main memory ( S205), a series of processes shown in FIG. Here, the condition under which unloading can be executed is that the effective number of executions (program execution counter) for all subroutines included in the old module is zero. Therefore, before the effective number of executions (program execution counter) for all subroutines included in the old module becomes 0, the old module and the new module may be executed together.

これに対して、メインモジュール81の更新ルーチン81Bは、旧モジュールへの切り戻しが指示されると、新モジュールからの旧モジュールへの切り替えを実行し(S206)、新モジュールを主メモリから消滅させ(S207)、図7に示す一連の処理を終了させる。なお、新モジュールを主メモリから消滅させる際にも、新モジュールに含まれている全てのサブルーチンについての有効な実行数(プログラム実行カウンタ)が0であることを待ち受けて行うようにしても良く、また、そのような条件成立を待つことなく、直ちに消滅させるようにしても良い。ここで、新モジュールから旧モジュールへの切り戻し方法は、旧モジュールからの新モジュールへの切り替え方法と同様である。   On the other hand, when the update routine 81B of the main module 81 is instructed to switch back to the old module, the update routine 81B executes switching from the new module to the old module (S206), and deletes the new module from the main memory. (S207), a series of processes shown in FIG. Note that when the new module is deleted from the main memory, it may be performed while waiting for the effective number of executions (program execution counter) for all the subroutines included in the new module to be zero. Further, it may be immediately extinguished without waiting for such a condition to be satisfied. Here, the switching method from the new module to the old module is the same as the switching method from the old module to the new module.

新旧モジュール間の切り替えは、プログラム管理テーブルの操作によって実行される。図8は、プログラム管理テーブルの構成例を示す説明図である。プログラム管理テーブルは、上述したように、呼び出し先のプログラムの識別子(DLLモジュール)と、呼び出し先のプログラムの主メモリ上の位置(アドレス)とを対応付けたものである。例えば、呼び出し先のプログラムAが旧モジュールであり、呼び出し先のプログラムA’が新モジュールである場合であれば、プログラム管理テーブルにおける呼び出し先のプログラムAの識別子に、新モジュールである呼び出し先のプログラムA’の主メモリ上の位置(アドレス)を対応付けるように書き換えることにより、新旧モジュール間の切り替えを行う。このようなプログラム管理テーブルの書換えにより、呼び出し元のプログラムが、旧モジュールである呼び出し先のプログラムAの識別子でプログラム管理テーブルを参照した場合には、新モジュールである呼び出し先のプログラムA’が呼び出される。   Switching between the old and new modules is performed by operating the program management table. FIG. 8 is an explanatory diagram showing a configuration example of the program management table. As described above, the program management table associates the identifier (DLL module) of the called program with the location (address) of the called program on the main memory. For example, if the call destination program A is an old module and the call destination program A ′ is a new module, the identifier of the call destination program A in the program management table is the call destination program that is the new module. Switching between the old and new modules is performed by rewriting so that the position (address) of A ′ on the main memory is associated. By such rewriting of the program management table, when the call source program refers to the program management table with the identifier of the call destination program A which is the old module, the call destination program A ′ which is the new module is called. It is.

例えば、プログラムの更新処理前における主メモリの記憶状態及びリンク状態が上述した図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は主メモリ上から消滅する。   For example, when the storage state and link state of the main memory before the program update process are as shown in FIG. 5 described above, when a new module is uploaded, the storage state and link state of the main memory are as shown in FIG. . In the state where the new module is uploaded, the old module Mod-x.x having the identifier “MT” from the subsystem call switching is still present. There is a link to the DLL. New module Mod-x. When switching to DLL ′ is performed and the program management table in the subsystem call switching is rewritten, the storage state and link state of the main memory are as shown in FIG. 10, and the identifier “MT” is included from the subsystem call switching. New module Mod-x. DLL 'can be linked, but the old module Mod-x. The DLL also remains on the main memory. Thereafter, the old module Mod-x. When the DLL is unloaded, the storage state and the link state of the main memory are as shown in FIG. 11, and the old module Mod-x. The DLL disappears from the main memory.

(A−3)実施形態の効果
上記実施形態によれば、交換・呼制御用ログラムを、実行可能ファイルであるメインモジュールと、メインモジュールによってアップロードされる複数のDLLモジュールとで構成し、いずれかのDLLモジュールを更新する際には、新DLLモジュールをアップロードして主メモリに新旧のDLLモジュールを併存させた後、新DLLモジュールへの切り替えを行い、その後、旧DLLモジュールをアンロードさせるようにしたので、システムを無停止でDLLモジュールを更新(修正)することができる。
(A-3) Effects of the Embodiment According to the above embodiment, the exchange / call control program is composed of a main module that is an executable file and a plurality of DLL modules that are uploaded by the main module. When updating a new DLL module, upload the new DLL module and have the old and new DLL modules coexist in the main memory, then switch to the new DLL module, and then unload the old DLL module. Therefore, the DLL module can be updated (corrected) without stopping the system.

また、上記実施形態によれば、アップロードする新DLLモジュールに常駐プログラム若しくは非常駐プログラムが含まれている場合にはアップロードを禁止するようにしたので、DLLモジュールの更新(修正)によって、システムが誤動作したり更新時間が徒に長くなったりすることを未然に防止することができる。因みに、常駐プログラムや非常駐プログラムはサブルーチンに比べ、実行時間が長かったり、ループが多かったりし、常駐プログラムや非常駐プログラムを含むDLLモジュールを更新対象とした場合には、新DLLモジュールの実行確認に長い時間がかかって更新時間が長くなったり、実行確認時に無限ループに入ったりする恐れがある。 In addition, according to the above embodiment, when a resident program or a non-resident program is included in the new DLL module to be uploaded, the upload is prohibited, so that the system malfunctions due to the update (correction) of the DLL module. It is possible to prevent the update time from becoming long. By the way, the resident programs and non-resident program is compared to a subroutine, or longer execution time, loop or many, in the case where the DLL module that contains the resident programs and non-resident program and update target, long to perform the confirmation of the new DLL module There is a possibility that it takes time and update time becomes long, or an infinite loop is entered when execution is confirmed.

さらに、上記実施形態によれば、DLLモジュール内のサブルーチンに対応付けてプログラム実行カウンタを設け、旧DLLモジュール内の全てのサブルーチンに対応付けられているプログラム実行カウンタが0になったことを条件に旧DLLモジュールをアンロードするようにしたので、新DLLモジュールがアップロードした際に、旧DLLモジュールのサブルーチンを利用していたセッションがあったとしても、そのセッションに悪影響を与えることはない。   Furthermore, according to the above-described embodiment, a program execution counter is provided in association with the subroutine in the DLL module, and the program execution counter associated with all the subroutines in the old DLL module is set to 0. Since the old DLL module is unloaded, even if there is a session using the subroutine of the old DLL module when the new DLL module is uploaded, the session is not adversely affected.

さらにまた、上記実施形態によれば、新DLLモジュールが正常動作を保証できず、旧DLLモジュールに切り戻す際にも、システムを停止させずに実行することができる。   Furthermore, according to the above embodiment, the new DLL module cannot guarantee normal operation, and can be executed without stopping the system when switching back to the old DLL module.

(B)他の実施形態
上記実施形態においても種々変形実施形態に言及したが、さらに、以下に例示するような変形実施形態を挙げることができる。
(B) Other Embodiments Although various modified embodiments have been mentioned in the above embodiment, further modified embodiments as exemplified below can be given.

上記実施形態では、全てのサブルーチンに対応付けられているプログラム実行カウンタが0になることを、旧DLLモジュールのアンロードの条件としているものを示したが、他の条件を適用するようにしても良い。例えば、新DLLモジュールがアップロードされた時点から、所定時間を経過したときに、旧DLLモジュールをアンロードするようにしても良い。   In the above embodiment, the program execution counter associated with all the subroutines has been shown to be 0 as the condition for unloading the old DLL module. However, other conditions may be applied. good. For example, the old DLL module may be unloaded when a predetermined time has passed since the new DLL module was uploaded.

上記実施形態では、当該メイン呼制御サーバ12を新規に立ち上げる際にアップロードされるモジュールを記憶している記憶装置も、更新のための新モジュールを記憶している記憶装置も同じものであったが、これらの外部記憶装置が異なっていても良い。例えば、更新のための新モジュールを記憶している記憶装置として、保守用端末に設けられている記憶装置を適用するようにしても良い。   In the above embodiment, the storage device storing the module uploaded when the main call control server 12 is newly started up is the same as the storage device storing the new module for update. However, these external storage devices may be different. For example, a storage device provided in a maintenance terminal may be applied as a storage device that stores a new module for update.

上記実施形態では、1つのモジュール毎に更新するように説明したが、複数種類の新モジュールを同時にアップロードし、複数種類のモジュールの更新を並行して行うようにしても良い。   In the above-described embodiment, it has been described that each module is updated. However, a plurality of types of new modules may be uploaded at the same time, and a plurality of types of modules may be updated in parallel.

上記実施形態では、IPセントレックスシステムにおけるIPテレフォニーサーバ等の交換機能や呼制御機能を担うメインの呼制御サーバのプログラム更新に適用した場合を示したが、他の呼制御サーバや交換機(特許請求の範囲では呼制御サーバや交換機をまとめて呼制御サーバと呼んでいる)に本発明を適用するようにしても良い。さらに、呼制御サーバや交換機以外の装置におけるプログラムの更新に、本発明を適用するようにしても良い。   In the above embodiment, the case where the present invention is applied to the program update of the main call control server responsible for the exchange function and call control function of the IP telephony server in the IP Centrex system is shown. In the range, the present invention may be applied to a call control server and an exchange together called a call control server). Furthermore, the present invention may be applied to program updates in devices other than call control servers and exchanges.

実施形態のメイン呼制御サーバのIPセントレックスシステムにおける位置付けの一例を示す説明図である。It is explanatory drawing which shows an example of the position in the IP Centrex system of the main call control server of embodiment. 実施形態のメイン呼制御サーバのハードウェア的構成例を示すブロック図である。It is a block diagram which shows the hardware structural example of the main call control server of embodiment. 図2の外部記憶装置に記憶されている交換・呼制御用プログラムの構成の説明図である。FIG. 3 is an explanatory diagram of a configuration of an exchange / call control program stored in an external storage device of FIG. 2. 実施形態のメイン呼制御サーバが新規に立ち上げられた際における主メモリへのロード処理を示すシーケンス図である。It is a sequence diagram which shows the load process to the main memory when the main call control server of embodiment is newly started. 実施形態における主メモリに存在する交換・呼制御用プログラムのプログラムとプログラム間に張られたリンクの例を示す説明図である。It is explanatory drawing which shows the example of the link extended between the program of the program for exchange / call control which exists in the main memory in embodiment, and a program. 実施形態におけるプログラム参照呼び出し処理の説明図である。It is explanatory drawing of the program reference call process in embodiment. 実施形態におけるプログラムの更新処理の概要を示すフローチャートである。It is a flowchart which shows the outline | summary of the update process of the program in embodiment. 実施形態におけるプログラム管理テーブルの構成例を示す説明図である。It is explanatory drawing which shows the structural example of the program management table in embodiment. 実施形態のプログラム更新時における主メモリの記憶状態及びリンク状態を示す説明図(1)である。It is explanatory drawing (1) which shows the memory | storage state and link state of the main memory at the time of the program update of embodiment. 実施形態のプログラム更新時における主メモリの記憶状態及びリンク状態を示す説明図(2)である。It is explanatory drawing (2) which shows the memory state and link state of the main memory at the time of the program update of embodiment. 実施形態のプログラム更新時における主メモリの記憶状態及びリンク状態を示す説明図(3)である。It is explanatory drawing (3) which shows the memory | storage state and link state of the main memory at the time of the program update of embodiment.

符号の説明Explanation of symbols

1…IPセントレックスシステム、12…メイン呼制御サーバ、70…制御部、75…外部記憶装置、80…交換・呼制御用プログラム、81…メインモジュール、81A…初期立上げ時ロードルーチン、81B…更新ルーチン、82−a〜82−n…ダイナミックリンクライブラリモジュール(DLLモジュール)。   DESCRIPTION OF SYMBOLS 1 ... IP Centrex system, 12 ... Main call control server, 70 ... Control part, 75 ... External storage device, 80 ... Exchange / call control program, 81 ... Main module, 81A ... Initial startup load routine, 81B ... Update Routine, 82-a to 82-n Dynamic link library module (DLL module).

Claims (6)

主メモリにロードされている処理プログラムを更新するプログラム更新システムにおいて、
上記処理プログラムを、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割すると共に、
更新される旧部分モジュールに置き換えられる新部分モジュールを上記主メモリにアップロードする新モジュールアップロード手段と、
上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替える新旧モジュール切り替え手段と、
上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする旧モジュールアンロード手段と
上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理する部分モジュール位置情報管理手段とを有し、
上記切り替え手段は、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新し、
上記新モジュールアップロード手段は、アップロードしようとする新部分モジュールが常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合にはアップロードを実行し、処理プログラムの更新処理を継続させる
ことを特徴とするプログラム更新システム。
In a program update system for updating a processing program loaded in a main memory,
The above processing program is divided into a main module of an executable file and other partial modules,
A new module upload means for uploading a new partial module to be replaced with the old partial module to be updated to the main memory;
A new / old module switching means for switching a partial module valid on the main memory from an old partial module to a new partial module;
Old module unloading means for unloading the old partial module on the main memory after the switching of the new and old module switching means ;
A partial module position information managing means for managing partial module position information used in the reference call of the partial module, in which the identifier of the partial module is associated with the position of the partial module on the main memory;
The switching means updates the position information on the main memory associated with the identifier of the old partial module in the partial module position information management means to the position information on the main memory of the new partial module,
The new module upload means checks whether the new partial module to be uploaded includes a resident program, a non-resident program, or a subroutine, and if the new partial module includes a resident program or a non-resident program, the upload is not executed. A program update system for ending processing program update processing, executing upload when a new partial module includes a subroutine, and continuing processing program update processing .
上記部分モジュールは、自己に含まれているサブルーチンの実行数を管理するカウンタを有し、
上記旧モジュールアンロード手段は、上記主メモリ上の旧部分モジュール内の全てのサブルーチンに係る実行数が0であることを条件として、上記主メモリ上の旧部分モジュールをアンロードする
ことを特徴とする請求項1に記載のプログラム更新システム。
The partial module has a counter for managing the number of executions of subroutines included in the partial module.
The old module unloading means unloads the old partial module on the main memory on condition that the number of executions related to all subroutines in the old partial module on the main memory is zero. The program update system according to claim 1 .
上記メインモジュールは、コンピュータが実行することにより新モジュールアップロード手段として機能するプログラム部分を有することを特徴とする請求項1又は2に記載のプログラム更新システム。3. The program update system according to claim 1, wherein the main module has a program part that functions as a new module upload unit when executed by a computer. 主メモリにロードされている処理プログラムを更新するプログラム更新方法において、
上記処理プログラムを、実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割しておくと共に、部分モジュール位置情報管理手段及び新モジュールアップロード手段、新旧モジュール切り替え手段及び旧モジュールアンロード手段を備え、
上記部分モジュール位置情報管理手段は、上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理し、
上記新モジュールアップロード手段は、更新される旧部分モジュールに置き換えられる新部分モジュールが、常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合には主メモリ上にアップロードし、処理プログラムの更新処理を継続させ、
上記新旧モジュール切り替え手段は、上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替えると共に、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新し、
上記旧モジュールアンロード手段は、上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする
ことを特徴とするプログラム更新方法。
In a program update method for updating a processing program loaded in a main memory,
The processing program is divided into an executable file main module and other partial modules, and includes partial module position information management means and new module upload means, old and new module switching means and old module unloading means,
The partial module position information management means manages the partial module position information used in the reference call of the partial module in which the identifier of the partial module is associated with the position of the partial module on the main memory,
The new module upload means checks whether the new partial module to be replaced with the old partial module to be updated includes a resident program, a non-resident program, or a subroutine, and if the new partial module includes a resident program or a non-resident program. End the update process of the processing program without executing the upload. If the new partial module contains a subroutine, upload it to the main memory and continue the update process of the processing program.
The old module switching means, associated with the main switch valid sub-module on the memory from the old sub-module to the new sub-module Rutotomoni, the old sub-module in the sub-module position information management means identifier, the main Update the location information on the memory to the location information on the main memory of the new partial module,
The program updating method, wherein the old module unloading means unloads the old partial module on the main memory after the switching of the new and old module switching means.
実行可能ファイルのメインモジュールと、その他の部分モジュールとに分割されている、主メモリにロードされている処理プログラムを更新させるためのプログラム更新プログラムであって、
コンピュータを、
上記部分モジュールの識別子と、その部分モジュールの上記主メモリ上の位置とを対応付けた、部分モジュールの参照呼び出しで利用される部分モジュール位置情報を管理する部分モジュール位置情報管理手段と、
更新される旧部分モジュールに置き換えられる新部分モジュールが、常駐プログラム、非常駐プログラム及びサブルーチンのいずれを含むか確認し、新部分モジュールが常駐プログラム若しくは非常駐プログラムを含む場合にはアップロードを実行せずに処理プログラムの更新処理を終了させ、新部分モジュールがサブルーチンを含む場合には主メモリ上にアップロードし、処理プログラムの更新処理を継続させる新モジュールアップロード手段と、
上記主メモリ上で有効な部分モジュールを旧部分モジュールから新部分モジュールに切り替えると共に、上記部分モジュール位置情報管理手段における旧部分モジュールの識別子に対応付けられた、上記主メモリ上の位置情報を、新部分モジュールの上記主メモリ上の位置情報に更新する新旧モジュール切り替え手段と、
上記新旧モジュール切り替え手段の切り替え後に、上記主メモリ上の旧部分モジュールをアンロードする旧モジュールアンロード手段として機能させる
ことを特徴とするプログラム更新プログラム。
A program update program for updating a processing program loaded in a main memory, which is divided into a main module of an executable file and other partial modules,
Computer
A partial module position information managing means for managing partial module position information used in the reference call of the partial module, in which the identifier of the partial module is associated with the position of the partial module on the main memory;
Check whether the new partial module to be replaced with the old partial module to be updated contains a resident program, non-resident program, or subroutine. If the new partial module contains a resident program or non-resident program, processing is performed without executing upload. New module upload means for ending the program update process, uploading the main module if the new partial module includes a subroutine, and continuing the process program update process ;
The main switches the effective portion modules in memory from the old sub-module to the new sub-module Rutotomoni, associated with the identifier of the old sub-module in the sub-module position information management means, the position information on the main memory, A new / old module switching means for updating the position information on the main memory of the new partial module ;
A program update program that functions as an old module unloading means for unloading an old partial module on the main memory after the switching of the new and old module switching means.
交換機能を担う呼制御サーバにおいて、
請求項1〜3のいずれかに記載のプログラム更新システムを有することを特徴とする呼制御サーバ。
In the call control server responsible for the switching function,
Call control server characterized in that it comprises a program update system according to claim 1.
JP2008306235A 2008-12-01 2008-12-01 Program update system, method and program, and call control server Active JP5248290B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008306235A JP5248290B2 (en) 2008-12-01 2008-12-01 Program update system, method and program, and call control server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008306235A JP5248290B2 (en) 2008-12-01 2008-12-01 Program update system, method and program, and call control server

Publications (2)

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

Family

ID=42330615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008306235A Active JP5248290B2 (en) 2008-12-01 2008-12-01 Program update system, method and program, and call control server

Country Status (1)

Country Link
JP (1) JP5248290B2 (en)

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 CONTROL METHODS FOR COMMUNICATION PROCESSING DEVICES
JP7440822B2 (en) * 2019-10-31 2024-02-29 京セラドキュメントソリューションズ株式会社 information processing system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02161523A (en) * 1988-12-14 1990-06-21 Hitachi Ltd Resident module correcting system
JPH05307478A (en) * 1992-04-30 1993-11-19 Nippon Telegr & Teleph Corp <Ntt> Constituting method for data base management system
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 (en) 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 (en) A method, device, equipment and readable medium for adjusting log level
CN101771769B (en) Method, device and system for call control
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 (en) Program update system, method and program, and call control server
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 (en) Telephone system and its terminal device
US20040032833A1 (en) Load testing for IP PBX systems
KR20120019054A (en) Method and apparatus for providing one number service in enterprise communication environment
US7415103B2 (en) Method and configuration for controlling and/or monitoring a terminal connected to a communications system
JP6314592B2 (en) Call control server, server migration system, and call control program
CN118646704B (en) VoIP call routing method and system, computer storage medium and program product
US20050182763A1 (en) Apparatus and method for on-line upgrade using proxy objects in server nodes
US12074922B2 (en) Communication sessions in cluster computing environment
JP4262121B2 (en) Object management method, system, and program
JP5999763B2 (en) Subscriber accommodation call control device, call restriction method for subscriber accommodation call control device, and program
JP2020078000A (en) Call recording system and call recording method
US8041013B2 (en) Transferring multiple dialogs of a call
CN119031071A (en) A remote call operation method and system based on 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