专利名称:冗余系统的制作方法
技术领域:
本发明涉及一种冗余系统,可以适用于例如数据·语音综合服务提供装置中的、可以在主机间使同步对象数据实时地、准确地同步的冗余系统。
背景技术:
例如,现有的数据·语音综合服务提供装置为了保持系统的可靠性,具有ACT系统服务器和SBY系统服务器,并且具备在ACT系统服务器产生故障时,由SBY系统服务器继续提供正在提供的服务的冗余结构。
为了在ACT系统服务器产生故障时由SBY系统服务器提供同一服务,SBY系统服务器必须能够使用与ACT系统服务器具有的数据同值的数据。
专利文献1公开了一种使多个呼叫代理(コ一ルエ一ジエント)(CA)间搭载的呼叫控制数据一致并对其进行一元管理的技术。具体地说,公开了如下技术具备具有原始数据的信息服务器,例如在产生了数据变更事件等时,多个呼叫代理复制信息服务器的原始数据,并且各呼叫代理安装复制数据。这样,各呼叫代理可以分别安装并使用相一致的呼叫控制数据。
特开2001-345850号公报发明内容但是,在ACT系统服务器产生故障时,需要在不中断正在提供的服务的情况下进行安全、高速、准确的切换处理。特别是,例如在提供象语音通信等要求实时性的服务时,希望进行更高速、准确的切换处理。
因此,为了使位于存储器内的数据实时地同步,以便在ACT系统服务器产生故障时也可以进行更安全、高速、准确的切换处理,要求提供一种可以实现进行事务传送处理的上下文的分配的冗余系统。
为了解决该问题,本发明的冗余系统在ACT系统服务器中所提供的服务的执行所必需的数据发生变更时,将上述变更后的数据提供给SBY系统服务器并使其同步,其特征在于ACT系统服务器具有同步对象数据管理单元,在将同步对象数据分割成多个的每个分割区域中对其进行管理;同步请求信息设定单元,在上述同步对象数据发生变更时,在上述同步对象数据管理单元中设定针对变更后的上述各分割区域的同步请求信息;和发送单元,根据在上述同步对象数据管理单元中设定的上述同步请求信息,将作为同步对象的上述分割区域发送给SBY系统服务器,其中,上述同步对象数据管理单元配置在ACT系统服务器的共享存储器上。
根据本发明的冗余系统,为了使存储器内的数据实时地同步,以便在ACT系统服务器产生故障时也可以更安全、高速、准确进行切换处理,可以实现进行事务传送处理的上下文的分配。
图1是说明由实施方式的服务应用程序进程进行的同步请求的写入处理的说明图。
图2是表示实施方式的服务器的概略硬件结构的框图。
图3是表示实施方式的数据双重化系统的概略功能的功能框图。
图4是说明由实施方式的发送进程进行的同步请求的发送处理的说明图。
图5是说明在本实施方式的服务应用程序进程产生故障时同步请求的发送处理的说明图。
具体实施例方式
(A)实施方式以下,参考
本发明的冗余系统的实施方式。
本实施方式是将本发明的冗余系统适用于数据·语音综合服务装置中的、使用多个主机的数据双重化系统的情况。
(A-1)实施方式的结构图2是表示本实施方式的服务器的概略硬件结构的框图。如图2所示,本实施方式的服务器100至少具有CPU110、存储器120、外部存储装置130、通信部140。
本实施方式的服务器100通过由CPU110利用存储在存储器120中的数据来执行处理程序,可以实现与处理程序有关的功能。在本实施方式中,处理程序是利用目标指向语言(例如,C++语言等)构筑的程序。
图3是用于说明本实施方式的数据双重化系统的概略功能的功能图。
在图3中,本实施方式的数据双重化系统的功能是通过具有ACT系统服务器1A和SBY系统服务器1B来实现。ACT系统服务器1A是主要使用的装置,SBY服务器1B是在ACT系统服务器1A发生故障等时使用的装置。
ACT系统服务器1A和SBY系统服务器1B可以具有分别相对应的功能,但为了明确说明作为ACT系统或SBY系统的功能,在图3中示出各服务器分别具有不同功能的情况。
如图3所示,ACT系统服务器1A至少具有共享存储器10A、用户程序20A、数据双重化客户库30A、数据双重化控制部40A、系统结构管理部50A和双重化开始·停止通知接收库60A。
另一方面,SBY系统服务器1B也至少具有共享存储器10B、用户程序20B、数据双重化客户库30B、数据双重化控制部40B、系统结构管理部50B和双重化开始·停止通知接收库60B。
共享存储器10A和10B是存储用户程序的执行所必需的数据和实例的区域。另外,ACT系统的共享存储器10A至少具有管理位图(bitmap)表11A、同步请求队列12A、同步对象存储区13A。
同步对象存储区13A是存储在功能执行过程中需要同步的数据和实例的区域。在此,所谓同步是指,使ACT系统和SBY系统之间的数据成为同一值。因此,SBY系统1B的共享存储器10B中也有同步对象存储区13B,该同步对象存储区13A和13B之间的数据组同步。这样,在处理从ACT系统切换到SBY系统后,在SBY系统中也可以继续利用同一数据。
管理位图表11A管理对在同步对象存储区13A中产生的、大小分别不同的多个虚拟段的同步请求的有无。管理位图表11A在系统启动时构筑,管理在后述的每个服务应用程序进程21A的同步对象存储区13A中产生的各个段。另外,管理位图表11A在对同步对象存储区13A的段有同步请求时,对有同步请求的段设立标志,表示有同步请求。
在服务开始后发生在同步对象存储区13A中产生的各个段的存储器变更事务时,同步请求队列12A对有同步请求的段的起始地址和大小进行排队。另外,同步请求队列12A通过后述的发送进程22A以先入先出的方式取出排队后的、有同步请求的段的起始地址和大小。
用户程序20A和20B是用于执行某个固定功能的程序组的区域。另外,用户程序20A和20B在共享存储器10A中生成或写入功能执行所必需的数据或实例。另外,用户程序20A和20B进行在共享存储器10A中产生的段ID管理。
在本实施方式中,ACT系统的用户程序20A至少具有用于执行ACT系统服务器所提供的服务的服务应用程序进程21A、和进行了数据更新时向其它系统(SBY系统)服务器发送同步请求的发送进程22A。
服务应用程序进程21A是为提供某个服务所必需的用户进程,在用户程序20A中可存在与ACT系统服务器1A所提供的服务相对应的多个应用程序进程。
另外,各服务应用程序进程21A将产生了多个段的同步对象存储区13A保持在共享存储器10A上。另外,各服务应用程序进程21A在更新了同步对象存储区13A的同步数据后,对与数据更新有关的段进行对共享存储器10A上的管理位图表11A的同步请求的写入处理。
发送进程22A是以先入先出的方式取出在同步请求队列12A中排队的、有同步请求的段的起始地址和大小,根据该取出的段的起始地址和大小,将应同步的段发送给其它系统服务器。
在此,进行利用发送进程22A从同步请求队列12A中取出的取出发送处理的定时可以应用例如在同步请求队列12A中排队的同步对象段的大小总计超过阈值时或经过了规定时间时等等。
另外,利用发送进程22A进行的同步对象区域的发送方法是,由于同步对象存储区13A位于共享存储器10A中,所以发送进程22A与服务应用程序进程21A同样,可以将同步对象存储区13A保存在同一区域中,识别来自同步请求队列12A的起始地址和大小,将同步对象存储区13A的同步对象区域发送给其它系统服务器。
另外,发送进程22A将同步对象区域发送给其它系统服务器后,取得管理位图表11A的该发送的段的标志。
ACT系统和SBY系统的数据双重化客户库30A和30B例如具有利用TCP连接的相互连接功能,接收发送进程22A所提供的同步对象区域,在同步更新时执行同步数据的传送或接收。另外,数据双重化客户库30A和30B具有向用户程序20A的API提供功能。
ACT系统的数据双重化客户库30A非同步地进行从ACT系统的用户程序20A接收同步ID和同步数据的处理和传送给SBY系统服务器1的处理。因此,ACT系统数据双重化客户库30A分别各保持1个队列(TCP队列)和发送线程。另一方面,SBY系统数据双重化客户库30B同步地进行从其它系统接收同步数据的处理和向SBY系统用户程序20A通知的处理。
这样做是为了减小来自用户程序20A的、与本处理的呼出有关的处理延迟。
数据双重化客户库30A和30B具有同步数据管理表。该同步数据管理表以用于识别同步数据的同步ID、同步数据的起始地址、大小、用户接收函数、单位数据大小等作为管理项目来构成。
这样,ACT系统数据双重化客户库30A在从ACT系统用户程序20A接收到同步ID和同步数据后,将对应于同步ID的同步数据传送给SBY系统数据双重化客户库30B。另外,SBY系统数据双重化客户库30B在从ACT系统客户库30A取得同步ID和同步数据后,根据同步ID登录在同步数据管理表中。
数据双重化控制部40A和40B控制ACT系统和SBY系统间的数据双重化,例如在接收到数据双重化客户库30A和30B的端口号管理、或从后述的系统结构管理部50A和50B接收到双重化开始·停止的通知后,指示数据双重化客户库30A开始·停止数据双重化。
系统结构管理部50A和50B具有双重化开始·停止通知接收库60A和60B,通知数据双重化的开始·停止。
(A-2)实施方式的动作以下,说明在ACT系统服务器1A中,在利用服务应用程序进程21A对同步对象数据进行了数据更新时,为了实现该数据的同步,将同步对象区域(段)发送给其它系统服务器的动作。
(A-2-1)同步请求的写入处理图1是说明在服务开始后,与服务应用程序进程21A有关的同步请求的写入处理的说明图。
首先,在同步对象存储区13A中产生大小分别不同的多个虚拟段。接着,在多个虚拟段产生并且系统启动后,同步对象存储区13A的各段由管理位图表11A按段进行管理。
在此,同步对象存储区13A配置在共享存储器10A上,服务应用程序进程21A可以保持公共存储区10A上的同步对象存储区13A。
接着,在执行服务应用程序进程21A并开始服务后,在同步对象存储区13A的每个段中产生存储器变更事务。
例如,在图1中,同步对象存储区13A的段#2变更后,产生了数据的同步请求。
产生同步请求后,在管理位图表11A中的、与进行了存储器变更的段相对应的管理部分上设立标志,表示处于同步传送中的状态。另外,同时将与有同步请求的段的起始地址和大小有关的信息在同步请求队列12A中排队。在管理位图表11A中成为同步传送中的状态后,不能接受对同一段的同步请求。
例如,在图1中,段#2被变更后,在管理位图表11A中,针对段#2通过将“0”变为“1”来设立标志。另外,服务应用程序进程21A所管理的同步对象存储区13A上的段#2的起始地址和大小在同步请求队列12A中排队。
由于同步对象存储区13A、管理位图表11A和同步请求队列12A位于共享存储器10A上,所以在生成ACT系统中的其它进程时,也可以共享地识别这些信息。
(A-2-2)向其它系统服务器发送同步请求的处理接着,在ACT系统的用户程序20A中生成向其它系统服务器发送同步请求的发送进程22A。
图4是说明由发送进程22A进行的同步请求的发送处理的说明图。
生成发送进程22A后,发送进程22A按规定的定时以先入先出的方式取出在同步请求队列12A中排队的同步请求。从该同步请求队列12A中取出同步请求的定时如上所述,可以应用在同步请求队列12A中排队的同步对象段的大小总计超过了阈值时、或经过了规定时间时等等。
另外,在发送进程22A从同步请求队列12A中取出同步请求后,根据取出的段的起始地址和大小,识别同步对象存储区13A的同步对象区域,并将同步对象区域发送给其它系统服务器。
在此,由于同步对象存储区13A位于共享存储器10A上,所以发送进程22A与服务应用程序进程21A同样,可以在同一区域中保持同步对象存储区13A。这样,发送进程22A可以根据从同步请求队列12A中取出的、应同步的段的起始地址,确认同步对象存储区13A中的段,并利用来自同步请求队列12A的段的大小来确认该段的大小。
例如,在图4中,同步请求队列12A作为同步对象对段#2的同步请求进行排队。发送进程22A在从同步请求队列12A中取出段#2的同步请求后,根据取出的起始地址,确认同步对象存储区13A的段#2,并确认段#2的大小。
利用发送进程22A进行了同步对象区域的确认后,将该同步对象区域提供给数据双重化客户库30A的TCP队列,并发送给其它系统服务器。
同步对象区域发送给其它系统服务器后,发送进程22A将管理位图表11A中的段#2的标志从“1”变更为“0”。这样,成为同步请求可接受状态,可以接受针对同一段利用服务应用程序进程22A进行的同步请求写入处理。
另外,在启动由发送进程22A进行的、来自同步请求队列12A的同步请求发送处理后,变更管理位图表11A和同步请求队列12A的内容。
如图3所示,管理位图表11A和同步请求队列12A根据各服务应用程序进程21A在共享存储器10A上保持有多面,在发送进程22A启动后,切换管理位图表11A和同步请求队列12A。
这样,通过切换管理位图表11A和同步请求队列12A,服务应用程序进程21A可以在同步对象区域的传送过程中写入发送进程22A所参照的、对与该同步对象区域不同的存储区域的同步请求。
这样,通过具有管理位图表11A,并针对同步对象存储区13A管理每个段的同步请求,针对同一段的、由发送进程22A进行的同步请求发送处理与由服务应用程序进程21A进行的同步请求写入处理不产生上下文竞合,因而不会对所提供的服务产生妨碍。
接着,参考
在ACT系统的服务应用程序进程21A内发生存储器故障等软件故障时同步请求的继续。
图5是说明服务应用程序进程21A产生故障时由发送进程22A进行的同步请求发送处理的说明图。
如图5所示,在服务应用程序进程21A内产生存储器故障等软件故障。这种情况下,发送进程22A与上述情况同样,按规定的定时从同步请求队列12A中取出同步请求,发送同步对象区域。
此时,由于同步对象存储区13A、管理位图表11A和同步请求队列12A配置在共享存储器10A中,所以即使在服务应用程序进程12A发生故障,也可以继续将服务应用程序进程21A在该故障产生前写入的同步请求发送给其它系统服务器。
即,由于同步请求队列12A位于共享存储器10A上,所以即使服务应用程序进程21A产生软件故障,发送进程22A也可以从共享存储器10A上的同步请求队列12A中取出同步请求。
另外,由于同步对象存储区13A也位于共享存储器10A上,所以即使服务应用程序进程21A发生软件故障,发送进程22A也可以识别共享存储器10A上的同步对象存储区13A的同步对象区域。
另外,由于管理位图表11A也位于共享存储器10A上,所以即使服务应用程序进程21A发生软件故障,发送进程22A也可以变更共享存储器10A上的管理位图表11A的内容。
这样,可以准确地使实施了紧要使命服务的存储器区域与其它系统服务器同步。
(A-3)实施方式的效果如上所述,根据本实施方式,通过在共享存储器10A上具有同步对象存储区13A、管理位图表11A和同步请求队列12A,可以在更新同步数据时,在共享存储器10A上管理同步请求信息,因此即使在服务应用程序进程内产生故障,也可以根据故障之前的同步请求信息,继续向其它系统服务器发送同步请求,从而可以实现其它系统服务器中的数据的高速、可靠的同步化。
(B)其它实施方式(B-1)在上述实施方式中,以将SBY系统服务器设置成1台服务器的情况为例进行了说明,但SBY系统服务器的设置台数也可以是3台以上。
(B-2)在上述实施方式中,用户程序20A和20B、数据双重化客户库30A和30B、数据双重化控制部40A和40B、系统结构管理部50A和50B、双重化开始·停止通知接收库60A和60B可以实现为由各自的服务器中的OS(操作系统)管理的软件。
权利要求
1.一种冗余系统,在ACT系统服务器所提供的服务的执行所必需的数据发生变更时,将上述变更后的数据提供给SBY系统服务器并使其同步,其特征在于ACT系统服务器具有同步对象数据管理单元,在将同步对象数据分割成多个的每个分割区域中对其进行管理;同步请求信息设定单元,在上述同步对象数据发生变更时,在上述同步对象数据管理单元中设定针对变更后的上述各分割区域的同步请求信息;和发送单元,根据在上述同步对象数据管理单元中设定的上述同步请求信息,将作为同步对象的上述分割区域发送给SBY系统服务器,其中,上述同步对象数据管理单元配置在ACT系统服务器的共享存储器上。
2.如权利要求1所述的冗余系统,其特征在于上述同步对象数据管理单元具有同步对象存储区,针对上述每个分割区域存储上述同步对象数据;同步请求管理部,管理针对上述同步对象存储区的上述各分割区域的同步请求的有无;和同步信息保持部,保持由上述同步请求信息设定单元设定的上述同步请求信息。
3.如权利要求2所述的冗余系统,其特征在于上述发送单元按规定定时监视上述同步请求信息保持部,根据所保持的同步请求信息,判断出上述同步对象存储区上的同步对象的上述分割区域并发送。
4.如权利要求2或3所述的冗余系统,其特征在于上述同步请求管理部和上述同步请求信息保持部在上述发送单元启动之后,不接受利用上述同步请求信息对上述发送单元所参照的上述分割区域进行的同步请求信息的设定。
全文摘要
本发明提供了一种冗余系统,在ACT系统服务器发生故障时,也可以更安全、高速、可靠地进行切换处理。本发明的冗余系统的特征在于ACT系统服务器具有同步对象数据管理单元,在将同步对象数据分割成多个的每个分割区域中对其进行管理;同步请求信息设定单元,在上述同步对象数据发生变更时,在上述同步对象数据管理单元中设定针对变更后的上述各分割区域的同步请求信息;和发送单元,根据在上述同步对象数据管理单元中设定的上述同步请求信息,将作为同步对象的上述分割区域发送给SBY系统服务器,其中,上述同步对象数据管理单元配置在ACT系统服务器的共享存储器上。
文档编号H04L12/24GK1842026SQ20061000245
公开日2006年10月4日 申请日期2006年1月26日 优先权日2005年3月31日
发明者小池友岳 申请人:冲电气工业株式会社