一种用于服务器系统的更新方法以及服务器系统与流程

文档序号:12786124阅读:290来源:国知局
一种用于服务器系统的更新方法以及服务器系统与流程

本发明是关于一种服务器系统,且特别是关于一种服务器系统中应用程序的更新方法。



背景技术:

近来,随着服务器系统应用层面的发展,对于服务器系统的可靠性要求越来越高。在部分应用中甚至要求服务器系统提供全天候的不间断服务。

然而,在服务器系统使用过程中,需要进行软件更新以调整功能或修复问题。如果关闭系统以进行更新,就会造成系统在更新期间内无法使用,影响使用者的工作效率。此外,对于复杂度较高的系统,有时不易找到合适的更新时机,降低了线上更新的时效性。因此,如何提高服务器系统更新时的便利性,实为本领域重要的研究课题。



技术实现要素:

本发明的一方面为一种用于服务器系统的更新方法。更新方法包含:复制一第一目录中一第一应用程序的文件至一第二目录中;复制一第一更新文件到第二目录中以新增文件或取代第二目录中相应的文件;启动第二目录中的一第二应用程序;透过路由指令将请求连接的一用户端连接至第二应用程序。

在本发明部分实施例中,更新方法还包含:当连接至第一应用程序的用户端全部退出时,关闭第一应用程序。

在本发明部分实施例中,更新方法还包含:建立第一应用程序的一第一进程,绑定第一进程至一连接端口,连接端口用以使用户端连接至第一进程。

在本发明部分实施例中,更新方法还包含:当第二应用程序启动之后,建立第二应用程序的一第一进程。

在本发明部分实施例中,更新方法还包含:建立第一应用程序的一第一进程以及一第二进程,其中第一进程处于一启动状态,第二进程处于一待机状态; 绑定处于启动状态的第一进程至一连接端口,连接端口用以使用户端连接至第一进程;以及当处于启动状态的第一进程异常时,切换第二进程处于启动状态,并建立一第三进程处于待机状态。

在本发明部分实施例中,切换第二进程处于启动状态的步骤包含:解除第一进程与连接端口的绑定;绑定第二进程至连接端口;以及关闭第一进程。

在本发明部分实施例中,更新方法还包含:当处于启动状态的第一进程异常时,判断第二进程是否就绪;以及当第二进程就绪时切换第二进程至启动状态。

在本发明部分实施例中,更新方法还包含:当处于待机状态的第二进程异常时,关闭第二进程,并建立第三进程处于待机状态。

在本发明部分实施例中,更新方法还包含:当第二应用程序启动之后,关闭第一目录中第一应用程序的第二进程;以及建立第二应用程序的一第一进程以及一第二进程,其中第一进程处于一启动状态,第二进程处于一待机状态。

在本发明部分实施例中,更新方法还包含:复制第二目录中第二应用程序的文件至一第三目录中;复制一第二更新文件到第三目录中以新增文件或取代第三目录中相应的文件;启动第三目录中的一第三应用程序;透过路由指令将请求连接的用户端连接至第三应用程序。

在本发明部分实施例中,更新方法还包含:当连接至第二应用程序的用户端全部退出时,关闭第二应用程序。

在本发明部分实施例中,更新方法还包含:验证第一更新文件以及服务器系统的状态;根据验证结果判断是否满足更新条件;以及当服务器系统判断不满足更新条件时,取消更新。

本发明的又一方面为一种服务器系统。服务器系统包含:一储存模块;一处理模块,电性连接于储存模块;以及一记忆体,电性连接于处理模块,记忆体包含用于处理模块的至少一可执行指令,可执行指令用以使处理模块执行以下操作:复制储存模块的一第一目录中一第一应用程序的文件至储存模块的一第二目录中;复制一第一更新文件到第二目录中以新增文件或取代第二目录中相应的文件;启动第二目录中的一第二应用程序;以及透过路由指令将请求连接的一用户端连接至第二应用程序。

在本发明部分实施例中,可执行指令更用以使处理模块执行以下操作:当 连接至第一应用程序的用户端全部退出时,关闭第一应用程序。

在本发明部分实施例中,可执行指令更用以使处理模块执行以下操作:建立第一应用程序的一第一进程以及一第二进程,其中第一进程处于一启动状态,第二进程处于一待机状态;绑定处于启动状态的第一进程至一连接端口,连接端口用以使用户端连接至第一进程;以及当处于启动状态的第一进程异常时,切换第二进程处于启动状态,并建立一第三进程处于待机状态。

在本发明部分实施例中,可执行指令更用以使处理模块执行以下操作:当处于启动状态的第一进程异常时,判断第二进程是否就绪;以及当第二进程就绪时,切换第二进程至启动状态。

在本发明部分实施例中,可执行指令更用以使处理模块执行以下操作:当处于待机状态的第二进程异常时,关闭第二进程,并建立第三进程处于待机状态。

在本发明部分实施例中,可执行指令更用以使处理模块执行以下操作:当第二应用程序启动之后,关闭第一目录中第一应用程序的第二进程;以及建立第二应用程序的一第一进程以及一第二进程,其中第一进程处于一启动状态,第二进程处于一待机状态。

在本发明部分实施例中,可执行指令更用以使该处理模块执行以下操作:复制第二目录中第二应用程序的文件至一第三目录中;复制一第二更新文件到第三目录中以新增文件或取代第三目录中相应的文件;启动第三目录中的一第三应用程序;以及透过一路由指令将请求连接的用户端连接至第三应用程序。

在本发明部分实施例中,可执行指令更用以使处理模块执行以下操作:验证第一更新文件以及服务器系统的状态;根据验证结果判断是否满足更新条件;以及当服务器系统判断不满足更新条件时,取消更新。

本发明的更新方法中,透过启动第一应用程序和第二应用程序,可避免用户端在服务器系统更新过程中被迫中断应用程序的连线。服务器系统也不需要等待全部使用者登出或下线后才能进行程序更新,而可提高系统升级的便利性与可靠性,服务器系统的更新也不受待更新文件的类型与更新时机的限制,提示系统升级的时效性。

附图说明

图1为根据本发明一实施例所绘示的服务器系统的示意图;

图2为根据本发明一实施例所绘示的服务器系统的更新方法的流程图;

图3A和图3B为根据本发明一实施例所绘示的服务器系统的更新示意图;

图4为根据本发明一实施例所绘示的细部流程图;

图5为根据本发明一实施例所绘示的细部流程图;

图6A和图6B为根据本发明一实施例所绘示的服务器系统的更新示意图;

图7为根据本发明另一实施例所绘示的服务器系统的更新示意图;

图8为根据本发明一实施例所绘示的步骤细部流程图。

具体实施方式

下文是举实施例配合所附附图作详细说明,以更好地理解本发明的实施方式,但所提供的实施例并非用以限制本揭露所涵盖的范围,而结构操作的描述非用以限制其执行的顺序,任何由元件重新组合的结构,所产生具有均等功效的装置,皆为本揭露所涵盖的范围。此外,根据业界的标准及惯常做法,附图仅以辅助说明为目的,并未依照原尺寸作图,实际上各种特征的尺寸可任意地增加或减少以便于说明。下述说明中相同元件将以相同的符号标示来进行说明以便于理解。

在全篇说明书与权利要求书所使用的用词(terms),除有特别注明外,通常具有每个用词使用在此领域中、在此揭露的内容中与特殊内容中的平常意义。某些用以描述本揭露的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本揭露的描述上额外的引导。

此外,在本文中所使用的用词“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指“包含但不限于”。此外,本文中所使用的“及/或”,包含相关列举项目中一或多个项目的任意一个以及其所有组合。

于本文中,当一元件被称为“连接”或“耦接”时,可指“电性连接”或“电性耦接”。“连接”或“耦接”亦可用以表示二或多个元件间相互搭配操作或互动。此外,虽然本文中使用“第一”、“第二”、…等用语描述不同元件,该用语仅是用以区别以相同技术用语描述的元件或操作。除非上下文清楚指明,否则该用语并非特别指称或暗示次序或顺位,亦非用以限定本发明。

请参考图1。图1为根据本发明一实施例所绘示的服务器系统100的示意 图。如图1所示,服务器系统100包含路由指令120、储存模块140、处理模块160,以及记忆体180。记忆体180含有用于处理模块160的可执行指令,使处理模块160对路由指令120和储存模块140执行相应的操作。用户端U1可通过相应的通讯模块(未绘示)连接至服务器系统100,并透过路由指令120连接至储存模块140中目录D1下的应用程序APP执行操作。

如图1所示,在部分实施例中,目录D1下的应用程序APP可包含进程P1a和进程P1b,其中进程P1a处于启动状态,进程P1b处于待机状态。用户端U1可通过绑定的连接端口(port)连接至处于启动状态的进程P1a执行应用程序APP。此时,处于待机状态的进程P1b不会绑定连接端口。换言之,用户端U1不会连接至进程P1b。

当处于启动状态的进程P1a发生异常,例如程序崩溃,或是硬件资源耗尽等情况发生时,处理模块160可透过相应的可执行指令切换进程P1b至启动状态,让用户端U1通过同一个连接端口连接至进程P1b。如此一来,服务器系统100便可确保用户端U1继续执行应用程序APP,提供使用者稳定的操作环境。具体来说,在部分实施例中,服务器系统100可启用独立的状态服务器。借此,用户端U1的操作状态便可储存在与应用程序APP彼此独立的应用程序当中。在进程P1a发生异常而处理模块160切换进程P1b至启动状态的过程中,状态服务器可储存并保有用户端U1的操作状态。如此一来,当用户端U1连接至进程P1b执行应用程序APP时,应用程序APP可由状态服务器取得用户端U1原先于进程P1a的应用程序APP环境下的操作状态。透过以上操作,便可以达成让用户端U1于进程P1b的应用程序APP环境下继续进行操作,用户端U1的状态不会因进程P1a的异常而遗失,进而导致操作中断。

处理模块160切换进程P1b至启动状态的具体操作将在后续段落中搭配流程图进行详细说明,故于此不再赘述。

请参考图2。图2为根据本发明一实施例所绘示的服务器系统的更新方法200的流程图。更新方法200可用以更新或升级服务器系统中的应用程序APP。为方便说明起见,图2所绘示的更新方法200将一并配合图1所绘示的服务器系统进行说明,但本发明并不以此为限。在部分实施例中,更新方法200亦可用于各种不同的服务器系统。

在本实施例中,更新方法200包含步骤S212、S214、S220、S230、S240 以及S250。首先,步骤S212和步骤S214为初始化阶段。在步骤S212中,处理模块160建立储存模块140中目录D1下应用程序APP的进程P1a和进程P1b,其中进程P1a处于启动状态,进程P1b处于待机状态。接着,在步骤S214中,为了使用户端U1可连接至进程P1a,处理模块160绑定处于启动状态的进程P1a至特定的连接端口。如此一来,使用者便可通过此连接端口连接至进程P1a执行应用程序APP。

接着,在步骤S220中,处理模块160会在服务器系统100的操作过程中判断进程P1a是否发生异常。当处理模块160判断进程P1a发生异常时,进入步骤S230。在步骤S230中,处理模块160切换进程P1b至启动状态,并建立一个新的进程处于待机状态。换言之,当原有的待机进程取代原有的启动进程,成为新的启动进程时,服务器系统100会在同一个目录D1底下建立一个新的待机进程。如此一来,即便再度发生异常导致进程P1b崩溃,处于待机状态的新的进程也可即时取代进程P1b,确保用户端U1继续执行应用程序APP。

接着,在步骤S240中,处理模块160在目录D1下的应用程序APP需要更新时进入步骤S250以进行更新流程。具体来说,在本实施例中更新流程的步骤S250包含步骤S251、S252、S253、S254。为方便说明起见,步骤S251、S252、S253、S254,将搭配图3A和图3B所示实施例进行说明。图3A和图3B为根据本发明一实施例所绘示的服务器系统100的更新示意图。

如图3A所示,首先,在步骤S251中,处理模块160复制储存模块140的目录D1中应用程序APP的文件至储存模块140的另一目录D2中。此时,用户端U1仍可透过所绑定的连接端口连接至目录D1底下的进程P1a进行操作。

接着,在步骤S252中,处理模块160复制更新应用程序APP时所需要的更新文件(patch)到目录D2中以新增文件或取代目录D2中原本相应的文件。如此一来,此时目录D2中的应用程序APP’即为新版本的应用程序。值得注意的是,在部分实施例中,复制到目录D2中的更新文件是用以取代目录D2中原本相应的旧文件。在部分实施例中,复制到目录D2中的更新文件是用以新增额外的文件至目录D2中。在另外部分实施例中,更新文件亦可能同时包含上述两者,一部分用以取代旧文件,一部分用以新增额外的文件。

如图3B所示,接着,在步骤S253中启动目录D2中的应用程序APP’, 建立处于启动状态的进程P2a。最后,在步骤S254中,便可透过路由指令120将请求连接的用户端连接至应用程序APP’。

值得注意的是,此时虽然新版本的应用程序APP’已经启用,原本在更新流程(即:步骤S250前)便连接至目录D1下原版本的应用程序APP的用户端U1仍然可以继续使用旧版本。如此一来,用户端U1便不会在服务器系统更新过程中而被迫中断应用程序APP的连线。服务器系统100也不需要等待全部使用者登出或下线后才能进行程序更新,而可提高系统升级的便利性与可靠性。

此外,在升级过程中,若进程P1a发生异常,透过先前所述的备援流程,用户端U1也仍能通过自待机状态切换至启动状态的进程P1b继续使用应用程序APP。

请参考图4。图4为根据本发明一实施例所绘示的图2中步骤230的细部流程图。如图4所示,更新方法200中切换进程P1b至启动状态的步骤S230可进一步包含步骤S232、S234以及S236。

首先,在步骤S232中,处理模块160解除进程P1a与连接端口的绑定。换言之,进程P1a此时已解除启动状态,用户端U1无法通过连接端口连接至进程P1a。接着,在步骤S234中,处理模块160绑定进程P1b至连接端口。换言之,进程P1b此时从没有绑定连接端口的待机状态,切换到绑定连接端口的启动状态。如此一来,用户端U1便可通过连接端口连接至进程P1b以使用应用程序APP。在部分实施例中,进程P1b绑定的连接端口与先前进程P1a所绑定的连接端口相同。换言之,用户端U1不需要另外调整连接端口设定便可继续使用应用程序APP。最后,在步骤S236中,处理模块160关闭发生异常的进程P1a,释放原本进程P1a所占用的系统资源。在部分实施例中,若进程P1a已因异常发生而终止,亦可直接绑定进程P1b至连接端口,上述流程仅为本案可能的实施方式之一,并非用以限制本案。

值得注意的是,在部分实施例中,处理模块160更可以在步骤S232中记录进程P1a发生异常的相关信息,回报并储存错误日志(error log),以供管理者日后查看。

此外,在部分实施例中,处理模块160更在进程P1a异常时,先判断进程P1b是否就绪,当进程P1b未就绪时进行等待,并当进程P1b就绪时切换进程 P1b至启动状态,以避免在进程P1b尚未就绪时便完成切换所导致的操作错误。

此外,在部分实施例中,当处于待机状态的进程P1b异常时,由于没有使用者连接进程P1b,因此处理模块160可直接关闭进程P1b,并建立新的进程并设置其处于待机状态。

请参考图5。图5为根据本发明一实施例所绘示的图2中步骤250的细部流程图。如图5所示,在部分实施例中,更新方法200中更新流程的步骤S250除了步骤S251、S252、S253与S254的外,可进一步包含步骤S255、S256以及S257。为方便说明起见,步骤S255、S256以及S257,将搭配图6A和图6B所示实施例进行说明。图6A和图6B为根据本发明一实施例所绘示的服务器系统100的更新示意图。

请参考图6A和图6B。如图6A所示,在步骤S254结束后,应用程序APP’启动。此时,请求连接的新用户端U2会透过路由指令120连接至目录D2底下已更新的应用程序APP’。另一方面,原本在更新流程便连接至目录D1下原版本的应用程序APP的用户端U1仍然可以继续使用旧版本。

在步骤S255中,当应用程序APP’启动之后,处理模块160关闭目录D1中应用程序APP处于待机状态的进程(即:图1中的进程P1b)。由于此时新版本的应用程序APP’已经启动,换言之,当目录D1中应用程序APP的进程P1a发生异常时,当用户端U1重新连线时,用户端U1可通过路由指令120连接至目录D2中新版本的应用程序APP’继续操作。具体来说,在部分实施例中,服务器系统100可启用独立的状态服务器。借此,用户端U1的操作状态便可储存在与应用程序APP彼此独立的应用程序当中。在升级过程中,储存用户端U1的操作状态的应用程序不会关闭,因此当用户端U1重新连接至新版本的应用程序APP’时,可由状态服务器取得用户端U1于原本应用程序APP环境下的操作状态。如此一来,便可以达成让用户端U1于新版本的应用程序APP’环境下继续进行操作,不会因为用户端U1的状态遗失导致操作中断。因此,处理模块160可关闭目录D1中的待机进程,以释放进程P1b所占用的系统资源。

接着,在步骤S256中,处理模块160建立应用程序APP’的进程P2a以及进程P2b,其中进程P2a处于启动状态,进程P2b处于待机状态。换言之,当应用程序APP’启动之后,处理模块160便启用了待机进程,以维持应用程序 APP’本身的备援操作。目录D2中应用程序APP’的备援流程与目录D1中应用程序APP的备援流程相似,已于先前段落中详细说明,故于此不再赘述。

最后,如图6B所示,在步骤S257中,当连接至应用程序APP的用户端U1全部下线时,处理模块160关闭应用程序APP,并相应对储存模块140中的目录D1进行清理以释放系统资源。如此一来,储存模块140中便可在不干扰使用者使用的情况下,将应用程序APP更新或升级至应用程序APP’。

值得注意的是,在部分实施例中,服务器系统100可同时保留三个或更多不同版本的应用程序。请参考图7。图7为根据本发明另一实施例所绘示的服务器系统100的更新示意图。

如图7所示,服务器系统100可在进行多次更新的过程中保留第一版本的应用程序APP、第二版本的应用程序APP’以及第三版本的应用程序APP”,以供在多次更新过程中不同阶段上线的用户端U1、U2、U3分别被导向至目录D1、D2、D3底下的应用程序APP、APP’、APP”。其中,应用程序APP”的进程P3a处于启动状态,进程P3b处于待机状态。值得注意的是,在第6A~6B图与图7所示的实施例中,进程P1a、P2a和P3a可由路由指令120分别绑定相异的内部连接端口,供用户端U1、U2、U3连接。

换言之,在图7所示的实施例中,处理模块160更用以复制目录D2中应用程序APP’的文件至目录D3中,复制应用程序APP”所需的相关的更新文件到目录D3中以新增文件或取代目录D3中相应的文件,启动目录D3中的应用程序APP”,并透过服务器系统100的路由指令120将请求连接的用户端U3连接至应用程序APP”。最后,当连接至应用程序APP’的终端使用者全部退出时,关闭应用程序APP’。

换言之,在部分实施例中,服务器系统100可支持多次升级并保留多个版本的应用程序。值得注意的是,图7中所述的版本数量仅为示例,并非用以限制本案的升级次数。

以上更新流程与步骤S250中的更新流程相似,已于先前实施例及相关段落中详细说明,故于此不再赘述。

请参考图8。图8为根据本发明一实施例所绘示的图2中步骤240的细部流程图。如图8所示,在部分实施例中,更新方法200中处理模块160判断是否进行更新的步骤S240可进一步包含步骤S242、S244、S246以及S248。首 先,在步骤S242中,处理模块160可验证更新文件以及服务器系统100的状态。接着,在步骤S244中,处理模块160可根据验证结果判断是否满足更新条件。若是更新条件满足,处理模块160便作出进行更新的判断。相对地,当更新条件不满足时,在步骤S246中,处理模块160可使服务器系统100发出错误信息提示用户端或管理者无法进行更新。

接着,在步骤S248中,处理模块160可进一步判断更新障碍或错误可否由使用者手动排除。若可手动排除,则回到步骤S242中,再次验证更新文件以及服务器系统100的状态。否则,处理模块160便判断不进行更新,并相应取消更新流程。

如此一来,当遇到服务器系统100无法提供足够的系统资源进行更新,例如储存空间不足、记忆体空间不足、系统效能不足等等情况时,处理模块160便可判断是否中止更新。此外,在部分实施例中,处理模块160亦可在步骤240中选择特定时间(例如:系统的离峰时段)进行更新。

值得注意的是,在部分实施例中,服务器系统100的记忆体180中包含用于处理模块160的至少一可执行指令。可执行指令可用以执行上述更新方法S200中处理模块160的相关操作。此外,更新方法S200亦可经由计算机来实作,例如前述的服务器系统100等,亦可将部分功能实作为至少一计算机程序,并储存于计算机可读取的记录媒体中。计算机程序具有多个指令,用以在计算机上执行时使计算机执行更新方法S200,但本发明并不以此为限。

此外,如上所述的处理模块160等,其具体实施方式可为软件、硬件与/或固件。举例来说,若以执行速度及精确性为首要考量,则这些模块基本上可选用硬件与/或固件为主;若以设计弹性为首要考量,则这些模块基本上可选用软件为主;或者,这些模块可同时采用软件、硬件及固件协同作业。应了解到,以上所举的这些例子并没有所谓孰优孰劣之分,亦并非用以限制本发明,熟悉此项技艺者当视当时需要,弹性选择这些模块的具体实施方式。举例来说,这些模块可整合至中央处理器(Central processing unit,CPU)执行。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1