具体实施方式
下面,参照附图对本发明的实施方式进行说明。
(第一实施方式)
本发明的第一实施方式的通信系统由连接于网络的多个服务器装置和客户端装置构成,这些服务器装置具有相同的功能和构成、形成冗余化结构,在这些服务器装置和一台客户端装置之间进行经由网络的信息数据的收发。
如图1所示,本实施方式的通信系统1由连接于网络A并构成冗余化结构的、两台服务器装置a10-1和b10-2以及与这些服务器装置进行信息数据的收发的客户端装置11构成。这些服务器装置和客户端装置是具有通信功能的计算机等通信设备,作为本发明的节点发挥作用。以下有时将服务器装置和客户端装置简单地统称为“节点”。
这些节点具备:分别通过网络A进行以信息数据的收发为首的数据通信的控制的通信控制部100,和在与网络A之间进行数据的收发的网络I/F110。而且,还分别具备对使各节点作为服务器装置或客户端装置发挥功能的应用程序进行控制的服务器应用程序控制部120或客户端应用程序控制部130。
这里,通信控制部100由虚拟节点ID管理部101、状态管理部102、通信模式管理部103以及收发控制部104构成。该通信控制部100的构成通用于各节点。
虚拟节点ID管理部101管理将构成冗余化结构的服务器装置a10-1和服务器装置b10-2指定为一个组的虚拟节点ID。
状态管理部102将自身节点的动作状态作为节点状态存储于自身装置的未图示的存储部中。
并且,属于一个组并构成冗余化结构的服务器装置a10-1和服务器装置b10-2的状态管理部102通过相互收发自身节点的节点状态而进行交换,并将相互的节点状态作为节点状态管理表102a分别进行存储。而且,状态管理部102的更新部102b定期地对该节点状态管理表102a进行更新。
另外,服务器装置a10-1和服务器装置b10-2的状态管理部102的动作模式决定部102d使用该节点状态管理表102a,基于动作模式决定表102c选择切换使自身节点的动作模式作为工作服务器进行动作的优先模式或使之作为待机模式进行动作的待机模式中的任一个。
通信模式管理部103基于自身节点所收发的数据的内容选择切换对虚拟节点ID管理部101中所管理的虚拟节点ID的数据通信和对固有的单点传送地址的数据通信中的任一个通信模式。
收发控制部104根据自身节点的动作模式控制被通信模式管理部103选择的通信模式下的数据通信动作。
上述通信系统1从客户端装置11实施使用了将服务器装置a10-1和服务器装置b10-2指定为一个组的虚拟节点ID的信息数据的多点传送。并且,服务器装置a10-1和服务器装置b10-2通过使用节点状态管理表102a并基于动作模式决定表102c决定自身节点的动作模式,设定使自身节点作为工作服务器进行动作还是使之作为待机服务器进行动作,实现服务器装置10-1~10-2的冗余化结构。
另外,对本实施方式的通信系统1的各节点而言,是通过在由CPU(中央运算装置)、存储器、接口构成的计算机中安装计算机程序而实现的,上述各节点的各种功能通过使上述计算机的各种硬件资源和上述计算机程序(软件)协作来实现。
<节点状态>
接着,参照图2对本实施方式的通信系统1中的节点状态进行说明。
节点状态是表示各节点的动作状态的状态信息。在本实施方式中,如图2所示,以“正常”、“小故障”、“大故障”三种状态信息表示各节点的动作状态。
在此,“正常”是指自身节点在系统中可进行正常的继续动作的状态,“小故障”是指发生了自身节点在系统中可继续动作程度的轻微异常的状态,“大故障”是指发生了自身节点在系统中不能继续动作而需要重启动这样的程度的异常的状态。
节点状态根据自身节点的动作状态可以从“正常”向“小故障”(图2的(a))转换、从“小故障”向“正常”(图2的(b))转换、从“正常”或“小故障”向“大故障”(图2的(c))转换。而且,节点在连续动作中的情况下、具有“大故障”的节点状态的节点的节点状态不会向“正常”或“小故障”转换,而要对该节点进行重启动等之后才向“小故障”或“正常”转换。
例如,正常动作中的节点发生了可继续动作程度的故障时、该节点的节点状态从“正常”向“小故障”转换,在状态管理部102中将该“小故障”的状态信息作为最新的节点状态进行管理。
<节点状态的管理方法>
参照图3所示的节点状态管理表102a的一例对节点状态的管理方法进行说明。
节点状态管理表102a是以将被冗余化的多个服务器装置a10-1、b10-2的节点状态作成一个表的方式相互建立关联地记述的数据。例如,如图3所示,将表示作为自身节点信息的“自身节点标记”、指定服务器节点的“节点信息”、以及表示服务器节点的动作状态的“状态信息”即节点状态建立相关联地记述。
而且,也可构成为将表示服务器节点的动作模式的设定信息的“动作模式信息”相关联地记述。
在该例中,存储于服务器装置a10-1的状态管理部102的节点状态管理表102a,是表示服务器装置a10-1和服务器装置b10-2的状态信息都是“正常”,服务器装置a10-1的动作模式设定为优选模式、服务器装置b10-2的动作模式设定为待机模式而进行动作的表。
<动作模式的选择>
接着对基于节点状态管理表102a的动作模式的选择进行说明。
在本实施方式的通信系统中,对实现了冗余化结构的服务器装置10-1~10-2中的工作服务器和待机服务器的变更、即动作中的服务器装置10-1~10-2的动作模式的转换来说,是通过使用节点状态管理表102a并基于服务器装置10-1~10-2的状态管理表102所存储的动作模式决定表102c,各服务器装置自主地选择自身节点的动作模式来进行的。
使用了上述的各服务器装置的节点状态管理表102a的动作模式的转换是基于动作模式决定表102c来进行的。
图4表示该动作模式决定表102c的一例。图4所示的动作模式决定表102c是将保持或转换(从优先模式向待机模式、或从待机模式向优先模式对动作模式进行切换)自身节点的动作模式的操作,与动作模式按优先模式的设定而进行动作的服务器装置(应用类服务器装置)的状态信息和动作模式作为待机模式进行动作的服务器装置(待机类服务器装置)的状态信息的组合建立关联的表。
例如,如图3所示,服务器装置a10-1的动作模式的设定是作为工作服务器节点进行动作的“优先模式”,服务器装置b10-2是作为待机服务器节点进行动作的“待机模式”,并且双方的节点状态的状态信息是以“正常”进行动作,因此基于图4所示的动作模式决定表102c选择的动作模式的设定操作为“保持”。因此各服务器装置维持自身节点的动作模式的设定。
在此,若工作服务器节点的服务器装置a10-1发生故障等,节点状态管理表102a中的服务器装置a10-1的状态信息转换到“小故障”,则基于图4所示的动作模式决定表102c选择的动作模式的设定操作、即根据工作服务器的节点状态是“小故障”并且待机服务器的节点状态是“正常”而选择的动作模式的设定操作为“转换”。
因此,各服务器装置将自身节点的动作模式的设定从动作模式向待机模式或从待机模式向动作模式切换。对该例中的各服务器装置的动作模式的设定而言,服务器装置a10-1从优先模式向待机模式切换,服务器装置b10-2从待机模式向优先模式切换。
<服务器节点的节点状态管理及动作模式选择动作的说明>
接着,参照图5的流程图对服务器节点中的节点状态的管理及动作模式的选择动作进行说明。
如图5所示,服务器节点的状态管理部102的更新部102b,确认自身节点的当前时刻的动作状态(S11-a),在图3所示的节点状态管理表102a符合的“状态信息”中更新最新的自身节点的节点状态的信息并进行存储(S12-a)。
接着,更新部102b向其他服务器节点发送最新的自身节点的节点状态(S13-a)。
另一方面,若接收到从其他服务器节点发送来的节点状态(S11-b),则更新部102b在图3所示的节点状态管理表102a符合的“状态信息”中更新接收到的节点状态的信息并存储(S12-b)。
接着状态管理部102的动作模式决定部102d进行节点状态管理表102a的“状态信息”的记述内容中是否存在变更的判断(S14)。
在节点状态管理表102a的“状态信息”的记述内容中存在变更的情况下(S14中的“是”),动作模式决定部102d使用其节点状态管理表102a并根据动作模式决定表102c判断是否变更自身节点的动作模式(S15)。
在变更自身节点的动作模式的情况下(S15中的“是”),动作模式决定部102d变更自身节点的动作模式(S16)。
例如,在服务器装置a10-1的状态信息转换到“大故障”的情况下,由各服务器节点的状态管理部102所管理的节点状态管理表102a的记述内容中的服务器装置a10-1的“状态信息”从“正常”变更到“大故障”。若节点状态管理表102a的“状态信息”发生变更,则各服务器节点的动作模式决定部102d基于被更新的节点状态管理表102a从图4所示的动作模式决定表102c中选择动作模式的设定操作,判断是否变更自身节点的动作模式的设定。
在该例子中,服务器装置a10-1的状态信息是“大故障”而动作模式信息是“优先”,服务器装置b10-2的状态信息是“正常”而动作模式信息是“待机”,因此基于图4所示的动作模式决定表102c选择的动作模式的设定操作变为“转换”。因此,各服务器节点的动作模式决定部102d将自身节点的动作模式的设定从优先模式向待机模式变更,或从待机模式向优先模式变更。
另外,在节点状态管理表102a的记述内容没有变更的情况下(S14中的“否”),或即使节点状态存在变更自身节点的动作模式也未变更的情况下(S15中的“否”),状态管理部102的动作模式决定部102d维持自身节点的动作模式的设定。
经过规定时间之后(S17)接下来进行自身节点的动作状态的确认或从其他服务器节点发送来的节点状态的接收(S11-a或S11-b)。
<各服务器节点间的动作模式的转换动作的说明>
接着,参照图6所示的时序图,对通过使用上述节点状态管理表102a的管理及服务器节点的动作模式的选择功能而在具有相同功能的服务器装置a10-1和服务器装置b10-2之间进行的动作模式的转换动作进行说明。
如图6所示,服务器装置a10-1的动作模式为“优先模式”并处于正常动作中,服务器装置b10-2的动作模式是“待机模式”并处于正常动作中,由这些服务器装置构成冗余化结构。
首先,服务器装置a10-1和服务器装置b10-2将自身节点的节点状态向对方服务器节点、即服务器装置a10-1向服务器装置b10-2发送而服务器装置b10-2向服务器装置a10-2发送(S101、S102)。
各服务器节点,基于各自接收到的节点状态所包含的信息,更新在自身节点所管理的节点状态管理表102a中记述的信息(S103)。在被更新的节点状态管理表102a没有变更的情况下,各服务器节点的动作模式的设定不进行变更而自身节点的动作模式维持现状(S104)。
经过规定时间后(S105),各服务器节点进行自身节点的动作状态的确认,更新自己节点所管理的自身节点的节点状态(S106)。
此时,如图6所示,由于服务器装置a10-1发生了故障,所以服务器装置a10-1的更新后的节点状态的状态信息变更为“小故障”或“大故障”。
若各服务器节点完成自身节点所管理的节点状态的更新,则向其他服务器节点发送该更新后的节点状态(S107、S108)。各服务器节点基于各自接收到的节点状态所包含的信息,更新自身节点所管理的节点状态管理表102a中记述的信息(S109)。此时,由于服务器装置a10-1的节点状态存在变更地方,所以节点状态管理表102a也发生变更。
各服务器节点根据节点状态管理表102a和动作模式决定表102c选择动作模式的设定操作,通过选择自身节点的动作模式的设定(S110)切换具有相同功能的各服务器节点的动作模式,从而再次构成冗余化结构。
另外,在本实施方式的通信系统1中,也可具有相同功能的服务器节点可为两台以上的多台结构,由上述的节点状态管理表102a和动作模式决定表102c构成冗余化结构。此时的节点状态管理表102a共用具有相同功能的多个服务器节点的所有的节点状态的信息,使用该节点状态管理表102a并根据动作模式决定表102c来决定服务器节点的动作模式。
在此,说明在由多台服务器节点构筑冗余化结构的通信系统中服务器节点的动作模式的设定动作。
在由多台服务器节点构筑冗余化结构的情况下,作为工作服务器节点进行动作的是一个服务器节点,而其他的服务器节点都作为待机服务器节点进行动作。
在工作服务器节点因故障等发生了状态信息的转换时,各服务器节点使用节点状态管理表102a并根据动作模式决定表102c选择自身节点的动作模式的设定,变更自身节点的动作模式。例如,进行工作服务器节点向作为待机服务器节点动作的待机模式、将待机服务器节点中的一个服务器节点作为工作服务器节点进行动作的优先模式的动作模式的切换。此时,可以在待机类服务器节点中预先安排优先顺序,基于该优先顺序选择执行将动作模式从待机模式向优先模式的变更的服务器节点。
<关于通信系统的各节点间的信息数据的收发动作>
接着参照图7所示的流程图对从本实施方式的通信系统的客户端装置11向服务器装置(10-1或10-2中的任一个)的信息数据的收发动作进行说明。
如图7所示,当从客户端装置11向该服务器装置发送处理请求时,客户端装置11的客户端应用程序控制部220生成包含了针对各服务器装置10-1~10-2的处理请求的信息数据(S21)。
为了发送由客户端应用程序控制部220所生成的信息数据,客户端装置11的通信控制部100将自身节点的通信模式设定为与虚拟节点ID对应的数据通信(S22)。此时,对由客户端装置11的通信模式选择部103设定的通信模式而言,由于发送的信息数据是对服务器节点的处理请求,因此设定进行与能够向服务器装置10-1~10-2统一发送信息数据的虚拟节点ID对应的数据通信的通信模式。
若通信模式的设定结束,则客户端装置11的收发控制部104向虚拟节点ID发送包含针对服务器节点的处理请求的信息数据(S23)。通过向虚拟节点ID而不是向装置固有的单点传送地址发送信息数据,由此可同时向由该虚拟节点ID指定为一个组的服务器装置a10-1和服务器装置b10-2两者发送信息数据。
这样信息数据的发送例如能够通过与多点传送对应的路由器装置等中继装置向与虚拟节点ID对应的多点传送地址所指定的多个节点、即由虚拟节点ID指定为一个组的多个服务器节点配送信息数据来实现。
接着,对与在本实施方式的通信系统的服务器节点和客户端节点之间收发的信息数据的种类相对应的处理动作进行说明。
图8表示在本实施方式的通信系统中的服务器装置10-1~10-2和客户端装置11之间收发的信息数据的一例。如图8所示,在各信息中具有“请求”和与该“请求”对应的“应答”,而且还包含无需“应答”的“请求”信息。本实施方式的通信系统中的被冗余化的服务器节点根据自身节点的动作模式执行这样的信息数据的收发动作。
例如,具有相同功能的服务器装置a10-1和服务器装置b10-2若自身节点的动作模式为“优先模式”,则执行与图8所示的信息数据对应的通常收发的处理动作,若为“待机模式”则适当地选择与信息数据的种类对应的处理动作并执行。
在此,参照图9表示的对应表对与待机服务器节点中的信息数据种类对应的处理动作进行说明。图9是按照各信息种类对待机服务器节点的接收处理动作的内容和发送处理动作的内容进行表示。
例如,从本实施方式的通信系统的客户端装置11使用虚拟节点ID多点传送发送“Write Request”的信息数据时,各服务器节点都接收“Write Request”的信息数据。此时,作为工作服务器节点而进行动作的服务器装置a10-1执行与接收到的“Write Request”对应的接收处理后,向客户端装置11发送“Write Response”。另一方面,作为待机服务器节点而进行动作的服务器装置b10-2,如图9所示,执行与服务器装置a10-1相同的接收处理后,不向客户端装置11发送“WriteResponse”成为待机状态。
另外,通过服务器节点内的服务器应用程序向外部节点发送“WriteRequest”的信息数据的请求发生时,作为工作服务器节点的服务器装置a10-1向成为接收方的外部节点发送信息数据。另一方面,作为待机服务器节点的服务器装置b10-2如图9所示,不向外部发送“WriteRequest”的信息数据而在自身节点内向服务器应用程序通知假的应答,使服务器应用程序的通信请求结束。
参照图10所示时序图对与上述动作模式相应的信息数据的收发处理动作进行说明。
如图10所示,作为工作服务器节点进行动作(以下称为“应用类服务器节点”)的服务器装置a10-1和作为待机服务器节点进行动作(以下称为“待机类服务器节点”)的服务器装置b10-2经由网络A从客户端装置11使用虚拟节点ID多点传送“请求”信息数据时,服务器装置a10-1和服务器装置b10-2都接收到该“请求”信息数据(S201)。
接收到从客户端装置11发送来的“请求”信息数据的各服务器节点分别执行与该“请求”信息数据对应的接收处理(S202)。若该接收处理结束,则应用类服务器节点的服务器装置a10-1向客户端装置11发送与接收到的“请求”信息数据对应的“应答”信息数据(S203)、使来自客户端装置11的通信结束。另一方面,作为待机类服务器节点的服务器装置b10-2若与接收到的信息数据对应的接收处理结束,则不向客户端装置11发送“应答”信息数据变成待机(S204)。
在此,由于应用类服务器节点发生故障等而各服务器节点的动作模式发生了变更时(S205),服务器装置b10-2向应用类服务器节点切换,服务器装置a10-1向待机类服务器节点切换。
之后,各服务器节点都从客户端装置11接收到使用了虚拟节点ID的多点传送发送来的“请求”信息数据(S206),各自执行与接收到“请求”信息数据对应的接收处理(S207)。
服务器装置a10-1因作为待机类服务器节点进行动作,所以不向客户端装置11发送与该“请求”信息数据对应的“应答”信息数据变成待机(S208),另一方面,服务器装置b10-2因转换到应用类服务器节点,所以向客户端装置11发送“应答”信息数据(S209)。向服务器节点发送了“请求”信息数据的客户端装置11若接收到来自服务器节点的“应答”信息数据,则结束该通信。
这样,通过将客户端节点发送的信息数据的接收方作为使用了虚拟节点ID的多点传送,从而利用该虚拟节点ID被编组的所有的节点能够接收该信息数据,所以客户端节点无需指定成为信息数据的接收方的服务器节点。
另一方面,被冗余化的具有相同功能的多个服务器节点基于全部共用了自身节点的节点状态和属于相同组的其他具有相同功能的服务器节点的节点状态的节点状态管理表102a、和动作模式决定表102c,能够将自身节点的动作模式的设定决定为优先模式或待机模式,从而能够构筑具有相同功能的多个服务器节点的冗余化结构。
因此,发送作为针对服务器节点的处理请求的信息数据的客户端节点能够无需判断作为该信息数据的接收方的服务器节点是否为冗余化结构,通过使用接收方具有的虚拟节点ID进行多点传送发送,向成为冗余化结构的服务器节点正常发送信息数据。
因此,能够分离共有具有相同功能的多个服务器节点而安装的服务器功能和决定构筑冗余化结构的自身节点的动作模式的处理功能,使构筑冗余化结构的处理功能的安装变得简单。
(第二实施方式)
接着,参照图11说明本发明的第二实施方式。
本实施方式的通信系统是由连接于网络的多个节点构成的通信系统,由作为具有相同功能和结构的服务器节点进行动作的任意的节点以及作为具有相同功能和结构的客户端节点进行动作的任意的节点构成,这些任意的节点中多个节点构成冗余化结构,这些任意的服务器节点和客户端节点通过网络进行信息数据的收发。
另外,关于本实施方式的通信系统涉及的构成要素,对具有与第一实施方式中说明了的构成要素相同的结构和功能的部分标记相同的附图标记以省略其详细说明。
而且,本实施方式的通信系统2的各节点通过在由CPU(中央运算装置)、存储器、接口构成的计算机上安装计算机程序来实现,上述各节点的各种功能通过使上述计算机的各种硬件资源和上述计算机程序(软件)协作而实现。
如图11所示,本实施方式的通信系统2由连接于网络A的、服务器装置20-1~20-n和客户端装置21-1~21-m构成。
服务器装置20-1~20-n及客户端装置21-1~21-m(以下称为“各节点”)由经由网络A进行信息数据的收发为首的数据通信的控制的通信控制部200、网络I/F110、以及服务器应用程序控制部120或客户端应用程序控制部130构成。
并且,各节点中共用的通信控制部200由虚拟节点ID管理部201、状态管理部102、通信模式管理部103、以及收发控制部104构成。
虚拟节点ID管理部201管理虚拟节点ID表,该虚拟节点ID表是将构成本实施方式的通信系统2的服务器装置20-1~20-n及客户端装置21-1~21-m所具有的固有的单点传送地址与虚拟节点ID建立关联后进行存储的表。
在此,图12表示由虚拟节点ID管理部201管理的虚拟节点ID表的一例。
虚拟节点ID表是将与虚拟节点ID对应的节点建立关联地记述的表。而且,虚拟节点ID管理部201也可按各节点不同的条件存储该虚拟节点ID表。
例如,如图12所示,多点传送地址是“□□□□”的虚拟节点ID“A”是客户端装置a和客户端装置m、即将构成通信系统2的所有客户端节点作为相同组进行指定的。
并且,在服务器装置a20-1的虚拟节点ID管理部201所管理的虚拟节点ID表中对该虚拟节点ID“A”进行记述并管理,但也可在服务器装置b20-2中不记述虚拟节点ID“A”而记述并管理其他的虚拟节点ID“X”。
使用上述那样的虚拟节点ID表进行信息数据的收发时,例如,从服务器装置a20-1向作为通信系统2的构成要素的所有客户端节点一同发送信息数据的情况下,服务器装置a20-1通过向与从由服务器装置a20-1的虚拟节点ID管理部201管理的虚拟节点ID表中指定为一个组的所有的客户端节点的虚拟节点ID“A”对应的多点传送地址“□□□□”发送信息数据来实现。
而且,多个服务器节点、例如服务器装置a~服务器装置n构筑冗余化结构时,客户端装置m21-m通过向与从由虚拟节点ID管理部201管理的虚拟节点ID表中将从服务器装置a到服务器装置n指定为一个组的虚拟节点ID“B”对应的多点传送地址“△△△△”发送信息数据,即使服务器节点是任意多台的冗余化结构,也可实现向构成冗余化结构的所有的服务器节点发送信息数据。
这样,通过任意组合与虚拟节点ID对应的节点并且按各节点不同的条件管理虚拟节点ID表,从而能够根据通信系统内的通信用途执行灵活的数据的收发。即、能够容易且灵活地进行数据通信的状况确认和构筑冗余化结构的节点的替换这样的通信系统的维护作业。
产业上的可利用性
能够利用在为了实现制品生产中的制造高效而进行生产线的控制管理的通信系统或进行以成套设备那样的大规模连续工作的设备的动作监视和保养管理的通信系统等以稳定连续工作为要件的通信系统中。而且,能够不需要复杂的特殊的功能和结构而容易地实现冗余化结构,因此也可利用在廉价的通信系统中。