对象补救系统及方法

文档序号:7951854阅读:286来源:国知局
专利名称:对象补救系统及方法
技术领域
本发明涉及一种对象补救系统及方法,例如,可适用于在提供由面向对象的程序所构建的呼叫处理服务的语音通信服务装置中,即使在呼叫处理对象中产生了障碍的情况下,也可迅速且可靠地补救该呼叫的系统及方法。
背景技术
例如,现有的语音通信服务提供装置为了保持系统的可靠性,具有ACT系服务器和SBY系服务器,具有在ACT系服务器中产生了故障的情况下,由SBY系服务器继续进行正在提供中的服务的冗余结构。
为了在ACT系服务器出现故障时由SBY系服务器提供同一服务,就需要SBY系服务器能够利用与ACT系服务器具有的数据同值的数据。
在专利文献1中公开了一种使在多个呼叫代理商(CA)之间分别搭载的呼叫控制数据一致,并且对该呼叫控制数据进行一元化管理的技术。具体而言专利文献1公开了以下技术包括具有原始数据的信息服务器,各呼叫代理商从信息服务器接收原始数据并复制该原始数据,从而安装与原始数据同值的数据(复制数据)。由此,各呼叫代理商就能够分别安装并利用一致的呼叫控制数据。
以往,在借助于面向对象的程序来提供各种服务的语音通信服务装置中,在服务提供开始前,预约为了提供服务所必要的资源。
因此,语音通信服务装置即便在对收容终端提供呼叫处理服务时,也要在进行呼叫处理之前确保呼叫处理对象的内存区等资源。然后,当进程进行生成时,在内存上生成呼叫处理服务所需要的遍及多分支的一个或多个对象,并在各个对象中设定类。
此处,一般而言,经过类设定的对象具有描述自身的对象数据和为了通过虚拟函数表调用服务提供所需要的虚拟函数而分配的变量(虚拟函数表指针(VFTPVirtual Function Table Pointer))。虚拟函数表将VFTP和虚拟函数的区域对应起来进行管理,类对象通过把该VFTP指向虚拟函数表,就可以调用对应VFTP的虚拟函数的区域。
专利文献1日本专利特开2001-345850号公报可是,若正在提供呼叫处理服务时,在硬件或软件上产生故障,就需要再次生成提供呼叫处理服务的进程并恢复呼叫。
但是,根据以往的语音通信服务装置,由于故障发生而使此前提供着的呼叫处理服务所需要的数据将消失,在进程再次生成之际就需要再一次从头开始进行处理。因此,呼叫的补救就需要时间。
此外,上述课题并不限于呼叫处理对象,对由面向对象的程序所构建的其他对象也是同样遇到的课题。
因而,就要求一种对象补救系统和方法,能够在硬件或软件中产生了故障时,快速、可靠地补救与提供中的服务有关的对象。

发明内容
为了解决这种课题,本发明的技术方案之一提供一种对象补救系统,补救在操作由面向对象的程序所构建的内存区上的一个或多个对象来实现服务提供的服务器内、产生了异常的对象,其中,各对象具有识别虚拟函数的内存区的虚拟函数识别信息、识别该对象所属的类的类识别信息、和对象数据而构成,所述对象补救系统具备实例管理单元,在服务提供时,依照功能处理的顺序在预先所确保的内存区排列并管理将提供的服务所需要的一个或多个对象;虚拟函数存储区域,每当进程生成就在不同的内存区中存储虚拟函数;以及再设定单元,在响应于异常发生再次生成了进程时,基于与有了异常的进程有关的对象的类识别信息来确定对象的类属性,从而为对象设定新生成的进程的虚拟函数的虚拟区域识别信息。
另外,本发明的技术方案之二提供一种对象补救方法,补救在操作由面向对象的程序所构建的内存区上的一个或多个对象来实现服务提供的服务器内、产生了异常的对象,其中,各对象具有识别虚拟函数的内存区的虚拟函数识别信息、识别该对象所属的类的类识别信息、和对象数据而构成,所述对象补救方法具备实例管理步骤,在服务提供时,依照功能处理的顺序在预先所确保的内存区排列并管理将提供的服务所需要的一个或多个对象;虚拟函数存储区域,每当进程生成就在不同的内存区中存储虚拟函数;以及再设定步骤,在响应于异常发生再次生成了进程时,基于与有了异常的进程有关的对象的类识别信息来确定对象的类属性,从而为对象设定新生成的进程的虚拟函数的虚拟区域识别信息。
根据本发明的对象补救系统和方法,就能够在硬件或软件中产生了故障的情况下,快速、可靠地补救与提供中的服务有关的对象。


图1是说明本实施方式的类实例管理中的多个对象的排列的示意图。
图2是说明本实施方式的具有ACT系服务器1A和SBY系服务器1B的冗余结构的图。
图3是表示本实施方式的服务器的硬件结构的方框图。
图4是表示本实施方式的服务器实现的软件结构的图。
图5是本实施方式的服务器的一般的对象模型的结构图。
图6是说明本实施方式的共享内存和用户程序之关系的说明图。
图7是表示本实施方式的共享内存上的各种呼叫处理对象的结构的图。
图8是说明本实施方式的呼叫处理对象的补救的说明图。
具体实施例方式
(A)实施方式以下,参照附图就本发明的对象补救系统和方法的实施方式进行说明。
本实施方式说明把本发明的对象补救系统和方法适用于下述系统的情况,该系统在执行用面向对象的程序所构建的对象以提供呼叫处理服务的语音通信服务装置(以下称之为服务器)中,在硬件或软件上产生了故障时,对呼叫处理对象进行补救。
本实施方式的服务器是提供呼叫处理服务的语音通信服务装置(呼叫代理商),其中,该呼叫处理服务用于建立所收容的一个或多个电话终端间的呼叫,如图2所示,该服务器包括具有ACT系服务器1A和SBY系服务器1B的冗余结构。另外,虽然在图2中将SBY系服务器1B设为一台,但也可以设为多台。
ACT系服务器1A是主要被利用的装置,SBY系服务器1B是在ACT系服务器1A中产生了故障的情况下从ACT系服务器1A切换后被利用的装置。由此,即便在ACT系服务器1A中产生了故障时,SBY系服务器1B也能够使迄今为止的处理继续以下,并能够对用户继续提供同样的服务。
另外,虽然ACT系服务器1A和SBY系服务器1B可分别具有对应的结构和功能,但在下面以ACT系服务器1A的结构和动作为代表来进行说明。
图3是表示本实施方式的服务器的硬件结构的方框图。如图3所示,与本实施方式有关的服务器10至少具有CPU11、存储器12、外部存储装置13、通信部14、维护用通信部15。
在图3中,CPU11掌管服务器10整体的控制。CPU11在通过通信部14从所收容的电话终端发出呼叫请求等的呼叫处理阶段,一边把RAM作为工作区域来利用ROM内的处理程序,一边适当使用处理所需要的固定数据来实现处理。另外,CPU11还具有检测在服务器10内的硬件或软件中是否产生故障的功能,在产生了故障时或为了防备故障,而实现再起动控制功能、系统结构管理功能、数据双重化功能、插入功能、命令控制功能等。此外,在本实施方式中,设处理程序是借助于面向对象的语言(例如,C++语言等)所构建的程序。
存储器12和外部存储装置13例如ROM、RAM、闪存等就符合要求,用于存储处理程序、固定数据等。
通信部14按照规定的通信方式在服务器10收容的多个电话终端(未图示)之间授受呼叫处理所需要的信息。另外,通信部14还为了呼叫建立而与必要的数据库服务器等进行连接。
维护用通信部15与其他服务器之间授受在故障产生时为了切换服务器系统所需要的信息。
图4是表示服务器10实现的软件结构的图。在图4中,服务器10在故障产生时或为了防备故障,在共用平台上至少具备再起动控制功能部11A、系统结构管理功能部11B、数据双重化功能部11C、插入功能部11D、命令控制功能部11E。
这些再起动控制功能部11A、系统结构管理功能部11B、数据双重化功能部11C、插入功能部11D、命令控制功能部11E位于操作系统(OS例如Linux(注册商标)等)11F的上层,并对上层的应用11G提供各自的功能。
此外,如上面所述那样,共用平台用面向对象的语言(例如,C++语言等)进行描述。另外,共用平台和用户间的起动方法例如以C语言函数调用或者函数地址调用为基准。即,共用平台和用户不进行利用套接字(socket)或信号量(semaphore)等的通信。因此,在用户进程和仅利用共用平台构成的进程之间进行通信的情况下,使对于共用平台进程的存取函数库化,并把该库链接到用户程序,从而实现通信。
再起动控制功能部11A按照规定的再起动可执行程序段(phase)进行系统的初始设定,或者如后面所述那样,进行只再起动存在异常的程序的个别初始设定,监视运行中的进程的状态,或者管理个别初始设定对象线程。此处,在系统的重新起动中大致区分有基于再起动命令、用户指示等的外部因素的重新起动,和基于硬件或软件的异常检测的自行重新起动。在ACT系服务器1A中,再起动控制功能部11A进行自行重新起动。在SBY系服务器1B中,再起动控制功能部11A通过从后述的系统结构管理功能部11B接受ACT系服务器1A的故障发生通知来进行起动。
系统结构管理功能部11B管理ACT系服务器1A和SBY系服务器1B之间的双重化(二重化)结构,进行ACT系服务器1A和SBY系服务器1B的决定,或ACT系服务器1A产生故障时的系统切换。另外,系统结构管理功能部11B在系统切换时,为了避免存在于连接到通信部14方一侧(收容的电话终端侧)的中继装置(例如路由器等)的ARP表(IP地址/MAC地址转换表)的改写延迟,设定与接口的IP地址和MAC地址不同的虚拟的IP地址和MAC地址,并使用虚拟IP地址和虚拟MAC地址来实现通信。然后,SBY系服务器1B的系统结构管理功能部11B使用虚拟IP地址和虚拟MAC地址来监视ACT系服务器1A的动作,当检测出ACT系服务器1A的故障时,将该内容通知给SBY系服务器1B内的再起动控制功能部11A。另外,若SBY系服务器1B的系统结构管理功能部11B从再起动控制功能部11A接收到系统切换指示,就设定虚拟IP地址和虚拟MAC地址,从而实现迅速且可靠的通信。
数据双重化功能部11C在ACT系服务器1A中产生了故障时,使服务提供所需要的数据同步化(使数据成为相同值),以使得SBY系服务器1B承接ACT系服务器1A正在提供的服务。利用数据双重化功能部11C的数据双重化方法,在共享内存上具有保存同步对象数据的同步对象内存区;管理同步对象内存区上的虚拟段(segment)的管理位图(bitmap)表;和同步请求队列,通过处在共享内存上即便在发生了各自不同的进程的情况下也能够共通地进行识别。然后,若随着应用进程的执行出现同步对象数据的变更,则对涉及该变更的同步对象数据的段,在管理位图表上的对应部分设置标志。另外,同时在同步请求队列上排队该段的开头地址和大小。之后,发生与应用进程不同的发送进程,发送进程取出被排在同步请求队列中的段的开头地址和大小,使用所取出的开头地址和大小并参照管理位图表,向其他系服务器发送同步对象区域上的变更后的数据。由此,即便正在执行的应用进程产生故障,与该进程不同的发送进程也能够使用共享内存上的同步请求队列和管理位图表,从同步对象区域向其他系服务器发送变更数据,所以能够谋求数据的同步化,并能够避免服务的中断。
插入功能部11D不停止系统地更新执行程序。由此,就能够实现程序的错误(BUG)处置、简单的功能变更和功能追加等。此外,该程序的更新以函数单位为基准。
命令控制功能部11E以用户程序创建的负荷减轻为目的,进行由维护人员输入的CUI命令和实际进行命令处理的进程的过渡。
接着,说明与本实施方式有关的服务器10中的呼叫处理对象的补救处理。
首先,当服务器10从所收容的电话终端(未图示)接收到呼叫请求时,为了确保包含呼叫处理服务所需要的一个或多个呼叫处理对象的类的实例,而在共享内存上进行区域确保。
然后,依次生成为了提供呼叫处理服务所需要的进程,使用处理所需要的数据等使用于其一个或多个对象动作,从而能够实现呼叫处理服务。
当服务器10在提供呼叫处理服务的过程中,在硬件或软件上产生故障时,ACT系服务器的再起动控制功能部11A基于故障检测起动规定的再起动控制进程。
在这里,图5是服务器10中的一般对象模型的示意图。
在图5中,具有通知开始再起动处理的再起动控制51;管理类编号和管理器编号的管理主52;进行对象生成及共享内存的确保等的管理的管理器53;进行内存管理的内存控制器54;管理器数据管理24;实例管理21;实例区域23。
在图5中,呼叫处理服务所需要的各呼叫处理对象位于用户对象类22中。然后,掌管呼叫处理的各对象与静态存在的装载类对象、实例管理类21、对象类(实例区域)23的基础类协作起来进行管理。
在图5中,当检测到硬件或软件的故障时,再起动控制51通知管理主52开始再起动处理。管理主52对再起动处理所需要的一个或多个类的管理器53指示进行再起动处理。由此,关于服务器10具有的各种功能的再起动处理得以进行。
管理器53管理多个类的实例管理,进行对象的生成和共享内存的确保等的管理。
其次,参照图6的示意图就服务器10中的共享内存20和用户程序30的关系进行说明。
共享内存20是在服务器10中可以在多个进程之间进行共享的内存区。用户程序30是服务器10执行的程序的区域。
在服务器10中,将要提供的服务所需要的资源需要在服务开始前预先进行预约,所以在呼叫处理发生前的阶段,在共享内存20上确保为了执行呼叫处理所需要的呼叫处理对象的内存区。
在本实施方式中,在共享内存20上设置服务提供所需要的类实例管理21,该类实例管理确保呼叫处理服务所需要的一个或多个对象并进行管理。
图1是说明类实例管理中的多个对象的排列的示意图。
在图1中,例如在提供呼叫处理服务时,为了执行呼叫处理服务,需要n+1个对象#0~#n,把这些对象#0~#n中所设定的类设为类A和类B。
以往,类的对象管理是确保各自的类的对象。因此,在调用服务提供所需要的对象时,进行跨越类来调用对象的处理。
例如,类A的实例管理来管理类A的对象,类B的实例管理来管理类B的对象,所以呼叫处理服务所需要的各自对象的调用是由类A的实例管理来进行调用,或者由类B的实例管理来进行调用。
但是,在本实施方式中,如图1所示,类的实例管理21是以规定顺序排列并确保服务提供所需要的对象的结构。通过采用这种结构,就可以对应服务提供谋求迅速的处理。
另外,本实施方式的类的实例管理21处于共享内存20上。通过将类实例管理21处在共享服务器20上,即便在故障发生后进程再次生成也可不消失地进行保持。另外,例如通过利用在ACT系服务器1A和SBY系服务器1B之间谋求数据的同步化的规定的数据双重化系统,还可以向别的主机发送未消失地得以保持的实例管理的对象,可以实现跨越主机的呼叫补救。
此外,虽然在本实施方式中,将类实例管理21设在共享服务器20上,但只要是即便进程再次生成也不会消失的内存区,则不限定于共享服务器20。
另外,例如在产生多个呼叫时,使用多个一种对象,所以类实例管理21如图1所示,采取排列服务所需要的对象的结构,由此类实例管理21可以根据呼叫处理发生时的请求,进行抽出并转交对象或者一旦不需要就将对象再次合并起来之类的管理。
进而,设为继承序列相同的类,并根据请求进行选择生成类之类的捕获,所以能够通过类实例管理21在有请求时切换内存区相同的各自的类并进行传递。
接着,参照

在服务器10中正在提供呼叫处理服务中,在硬件或软件上产生了故障时的呼叫处理对象的补救。
参照图7说明涉及本实施方式的共享内存20上的各呼叫处理对象的结构。如图7所示,各呼叫处理对象具有虚拟函数表指针(VFTP)、类编号、对象数据。图8是说明呼叫处理对象的补救的说明图。
VFTP是为了对应于各自的类的虚拟函数而指向虚拟函数表的指针。
类编号是至少能够识别类的识别信息。类编号例如能够应用对象逻辑ID(LID)。对象逻辑ID(LID)是由类编号和实例编号所构成的识别信息。另外,类编号在生成对象时选择了类之际进行设定。
在本实施方式中,除了VFTP外,还设置用于判定共享内存20上的对象是哪个类的对象的类编号。这样设置类编号是由于以下理由。
在利用面向对象的语言(例如C++语言)所生成的一般对象内,为了分别对应于类的函数,而保持着指向函数表的指针。然后,在生成了继承序列相同但继承等级不同的对象的情况下,通过切换VFTP来决定对象的动作条件。
但是,在欲使用上述方式来补救呼叫处理对象时,不能适当进行呼叫处理对象的补救。
其理由是虚拟函数表对每次生成进程将生成在内存上(在图8中为堆区域),故在进程被再次生成时,就没有被捕获在同一区域的保证。即,被分配到与以前(进程再次生成前)不同的区域。另外,由于VFTP被配置在补救内存区域中,所以以前所生成的信息(变量)仍保留着。因此,设定在VFTP中的以前的信息(变量)的对应性丢失。因而,对每次进程生成都需要再次设定VFTP自身。
但是,在本实施方式中,由于对同一内存区分配不同的类(即,在本实施方式中,使服务所需要的对象配置在类实例管理21中,所以被分配不同类的对象),故在该内存区中以前分配了哪个类的对象,无法直接进行判定,所以不能进行VFTP的再设定。
因此,能够根据与VFTP同样,在被补救的对象内与实际类相对应起来的类编号来判定类,判定应进行再设定的类,并再次设定VFTP。
然后,当VFTP被再设定时,就能够通过该VFTP调用对象具有的函数并使其动作,并能够补救呼叫处理对象。由此,即使VFTP对每个进程或每个主机不同也能够补救呼叫处理对象。
(B)其他实施方式(B-1)虽然在上述实施方式中,以把SBY系服务器设为1台服务器的情况为例进行了说明,但是SBY系服务器的设置台数也可以是2台或2台以上。
(B-2)在上述实施方式中,用户程序20A和20B、数据双重化控制部数据双重化客户端库30A和30B、数据双重化控制部40A和40B、系统结构管理部50A和50B、双重化开始/停止通知受理库60A和60B,可以作为由各自的服务器中的OS(操作系统)所管理的软件来进行实现。
权利要求
1.一种对象补救系统,补救在操作由面向对象的程序所构建的内存区上的一个或多个对象来实现服务提供的服务器内、产生了异常的对象,其特征在于,上述各对象具有识别虚拟函数的内存区的虚拟函数识别信息、识别该对象所属的类的类识别信息、和对象数据而构成,所述对象补救系统具备实例管理单元,在服务提供时,依照功能处理的顺序在预先所确保的内存区排列并管理将要提供的服务所需的一个或多个上述对象;虚拟函数存储区域,每当进程生成就在不同的内存区中存储虚拟函数;以及再设定单元,在响应于异常发生而再次生成了进程之际,基于与有了异常的进程有关的上述对象的上述类识别信息,来确定该对象的类属性,由此对上述对象设定新生成的进程的虚拟函数的虚拟区域识别信息。
2.一种对象补救方法,补救在操作由面向对象的程序所构建的内存区上的一个或多个对象来实现服务提供的服务器内、产生了异常的对象,其特征在于,上述各对象具有识别虚拟函数的内存区的虚拟函数识别信息、识别该对象所属的类的类识别信息、和对象数据而构成,所述对象补救方法具备实例管理步骤,在服务提供时,依照功能处理的顺序在预先所确保的内存区排列并管理将要提供的服务所需的一个或多个上述对象;虚拟函数存储区域,每当进程生成就在不同的内存区中存储虚拟函数;以及再设定步骤,在响应于异常发生而再次生成了进程之际,基于与有了异常的进程有关的上述对象的上述类识别信息,来确定该对象的类属性,由此对上述对象设定新生成的进程的虚拟函数的虚拟区域识别信息。
全文摘要
本发明提供一种对象补救系统,即便在产生了故障的情况下也能够快速、可靠地补救与提供服务有关的对象。其作为在操作由面向对象的程序所构建的内存区上的对象来实现服务提供的服务器中的对象补救系统。其中,各对象具有虚拟函数识别信息、类识别信息和对象数据,该对象补救系统具备实例管理单元,在服务提供之际,根据功能处理顺序在预先所确保的内存区中排列将要提供的服务所需要的一个或多个对象;存储虚拟函数的虚拟函数存储区域;以及再设定单元,在再次生成了进程之际,基于与出现了异常的进程有关的对象的类识别信息来确定对象的类属性,并为对象重新设定新进程的虚拟函数的虚拟区域识别信息。
文档编号H04L12/24GK1842025SQ200610002449
公开日2006年10月4日 申请日期2006年1月26日 优先权日2005年3月31日
发明者小池友岳 申请人:冲电气工业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1