一种基于windows服务控制器的系统自动运行方法

文档序号:6435483阅读:201来源:国知局
专利名称:一种基于windows服务控制器的系统自动运行方法
技术领域
本发明涉及计算机技术,特别是提供了一种基于WINDOWS服务控制器的自动运行系统的实现方法。
背景技术
在IT系统中,对于实时性要求很高的关键系统,如数据库、信号控制系统等,一般都会通过双机热备的方式,以保证系统的不间断运行,还有在很多IT系统中,存在一些准实时后台业务,一方面程序不需要立刻对输入进行反馈,另一方面,若用户在指定时间间隔内尚没有反馈信息,则会造成业务中断。现有技术的双机热备如图1所示,图1是现有技术保证程序不间断运行示意图。主服务器2和备服务器3的一端均连接至存储数据的磁盘阵列4上,主服务器2和备服务器3 的另一端均连接在交换机1上,任何一个服务器工作都能实现系统的正常运行。而主服务器2和备服务器3之间通过心跳线来监测对应服务器是否正常活动。若备服务器3监测到主服务器2宕机,则自动启动备服务器系统。对于此类采用双机热备的方式系统,采用此种方式,由于采用了两个相同的服务器,会导致软硬件成本的成倍增加,也就成倍增加了实施成本。

发明内容
本发明目的为了克服上述现有技术存在的不足,提供一种基于windows服务控制器的系统自动运行方法。本发明的方法可以做到对现有程序进行很小的改造,通过守护进程和被监控程序的有机结合,在不增加任何硬件情形下,保证程序不间断运行。为了实现上述发明目的,本发明提供的技术方案如下
一种基于windows服务控制器的系统自动运行方法,其特征在于,该方法将后台程序改造为windows服务程序,并在windows服务程序中创建标识程序模块运行正常的种子文件和标识程序失败的标志文件;同时创建一个监控程序模块以定时监控种子文件和标志文件;监控程序模块根据种子文件和标志文件,向windows服务控制器发送停止及运行信息, 由windows服务控制程序器重新启动相应的服务程序。在本发明的基于windows服务控制器的系统自动运行方法中,其详细运行步骤如下
①将需要自动运行的目标程序模块修改为windows服务程序,创建一个监控程序模块以监控该windows服务程序;
②在windows服务程序的关键流程中创建种子文件,该种子文件表示需要自动运行的目标程序模块运行正常,种子文件在设定的时间内定期生成;在windows服务程序的失败关键点中创建标志文件,该标志文件表示需要自动运行的目标程序模块运行异常,需要重新运行;
③所述的监控程序模块在监控windows服务程序时,要定期检查种子文件(1)若存在种子文件,则表明被监控的需要自动运行的目标程序模块运行正常,立即删除该种子文件;(2)若不存在种子文件且不存在的标志文件,表明windows服务程序未运行且未自行发现故障,监控程序模块则向windows服务控制器发送停止该种子文件所对应的windows服务程序运行的指令,以关闭该windows服务程序,随后立即发送启动该windows服务程序的指令,以重新启动该服务程序;
④若监控程序模块发现不存在种子文件但存在有标志文件,表明目标程序模块出现故障主动要求重新启动,则监控程序模块立即向windows服务控制器发送启动该windows 服务程序的指令,以重新启动该服务程序。在本发明的基于windows服务控制器的系统自动运行方法中,所述的windows服务程序为自定义windows服务程序。在本发明的基于windows服务控制器的系统自动运行方法中,将需要自动运行的后台程序模块改造为windows服务程序过程如下(1)将原后台程序主程序部分封装成1个函数,如ServiceStart ;(2)增加1个函数,如ServiceStop,处理服务中止信号时,修改对应全局变量,如程序退出标志;(3)在Windows服务框架servicejiiain中调用 krviceMart,在 service_ctrl 中若为 SERVICE_C0NTR0L_ST0P 消息码,调用 krviceStop。在本发明的基于windows服务控制器的系统自动运行方法中,所述的自定义 windows服务为至少一项程序模块。在本发明的基于windows服务控制器的系统自动运行方法中,所述的监控程序, 可同时监控多个windows服务程序。基于上述技术方案,本发明基于windows服务控制器的系统自动运行方法与现有技术相比具有如下技术优点
1.本发明的实现方法只需要将现有程序改造为服务程序,并在程序关键点中增加创建种子文件或者异常文件的代码,并不需要对原有软件做任何其它改造和扩展,因此可以保证原有程序结构,确保软件的稳定性和服务质量。2.本发明的实现方法只是加了一个监控守护进程,不需要任何其它硬件投入,同时可通过配置文件增、减被监控程序,其投入较小,实施简单方便,而且具有很强的可扩展性。3.通过本发明的方法来守护需要自动运行的程序,我们可以在用户可接受的时间范围内保证所有被监控程序7XM持续运行。


图1是现有技术中基于双机热备方式保证系统持续运行的结构示意图。图2是本发明一种基于windows服务控制器的自动运行系统的流程示意图。图3是本发明一种基于windows服务控制器的自动运行系统的实施例中短信增值服务系统结构示意图。
具体实施例方式下面我们结合附图和具体的实施例来对本发明的一种基于windows服务控制器的系统自动运行方法做进一步的详细阐述,要求更为清楚明了地明白本发明的结构和工作流程,但不能以此来限制本发明的保护范围。本发明基于windows服务控制器的系统自动运行方法的主要思路是将需要自动运行的后台程序模块改造为windows服务程序(1)将原后台程序主程序部分封装成1个函数,如ServiceStart ; (2)增加1个函数,如ServiceStop,处理服务中止信号时,修改对应全局变量,如程序退出标志;(3)在Windows服务框架servicejiiain中调用 krviceMart,在 service_ctrl 中若为 SERVICE_C0NTR0L_ST0P 消息码,调用 krviceStop。 并在改造后的windows服务程序中创建标识程序运行正常的种子文件和标识程序失败的标志文件;创建一个监控程序模块以定时监控种子文件和标志文件;监控程序模块根据种子文件和标志文件,向服务控制器发送停止、运行消息,服务控制程序根据上述指令来重新启动相应的windows服务程序。本发明的方法运行情况如图2所示,图2是本发明一种基于WINDOWS服务控制器的自动运行系统的流程示意图。上述基于windows服务控制器的系统自动运行方法的详细运行步骤如下
①将需要自动运行的目标程序模块修改为windows服务程序,创建一个监控程序模块以监控该windows服务程序;
②在windows服务程序的关键流程中创建种子文件,该种子文件表示需要自动运行的目标程序模块运行正常,种子文件在设定的时间内定期生成;在windows服务程序的失败关键点中创建标志文件,该标志文件表示需要自动运行的目标程序模块运行异常,需要重新运行;
③所述的监控程序模块在监控windows服务程序时,要定期检查种子文件(1)若存在种子文件,则表明被监控的需要自动运行的目标程序模块运行正常,立即删除该种子文件;(2)若不存在种子文件且不存在的标志文件,表明windows服务程序未运行且未自行发现故障,监控程序模块则向windows服务控制器发送停止该种子文件所对应的windows服务程序运行的指令,以关闭该windows服务程序,随后立即发送启动该windows服务程序的指令,以重新启动该服务程序;
④若监控程序模块发现不存在种子文件但存在有标志文件,表明目标程序模块出现故障主动要求重新启动,则监控程序模块立即向服务管理器发送启动该windows服务程序的指令,以重新启动该服务程序。本发明是一种基于windows服务控制器的自动运行系统的实现方法,其通过在将目标程序修改为windows服务程序,并定时生成种子文件,并通过跟监控程序进程的结合, 从而保证目标程序在系统内7XM小时运行。实施例1
基于本发明,我们为了进一步实现在windows系统下短信增值服务功能,我们设计了多个软件程序模块以保证其正常运行。如图3所示。该系统各软件组成部分及其功能简介参见表1。这里的多个后台程序按照本发明的方法保证其需要长时间正常运行。为短信增值服务系统服务的各个程序模块主要包括有短信日志过滤程序、H2接口程序、SMPP接口程序、SGIP通信程序、短信解析程序、短信指令处理程序。上述各个目标程序按照发明要求设计为windows服务程序,并在关键点创建种子文件,通过跟守护服务进程结合,从而保证整个短信增值系统的7XM小时运行。
表1短信增值服务系统程序组成部分及其功能简介
权利要求
1.一种基于windows服务控制器的系统自动运行方法,其特征在于,该方法将后台程序改造为windows服务程序,并在windows服务程序中创建标识程序模块运行正常的种子文件和标识程序失败的标志文件;同时创建一个监控程序模块以定时监控种子文件和标志文件;监控程序模块根据种子文件和标志文件,向windows服务控制器发送停止及运行信息,由windows服务控制器重新启动相应的服务程序。
2.根据权利要求1所述的一种基于windows服务控制器的系统自动运行方法,其特征在于,该方法的详细运行步骤如下①将需要自动运行的目标程序模块修改为windows服务程序,创建一个监控程序模块以监控该windows服务程序;②在windows服务程序的关键流程中创建种子文件,该种子文件表示需要自动运行的目标程序模块运行正常,种子文件在设定的时间内定期生成;在windows服务程序的失败关键点中创建标志文件,该标志文件表示需要自动运行的目标程序模块运行异常,需要重新运行;③所述的监控程序模块在监控windows服务程序时,要定期检查种子文件(1)若存在种子文件,则表明被监控的需要自动运行的目标程序模块运行正常,立即删除该种子文件;(2)若不存在种子文件且不存在的标志文件,表明windows服务程序未运行且未自行发现故障,监控程序模块则向windows服务管理器发送停止该种子文件所对应的windows服务程序运行的指令,以关闭该windows服务程序,随后立即发送启动该windows服务程序的指令,以重新启动该服务程序;④若监控程序模块发现不存在种子文件但存在有标志文件,表明目标程序模块出现故障主动要求重新启动,则监控程序模块立即向服务管理器发送启动该windows服务程序的指令,以重新启动该服务程序。
3.根据权利要求2所述的一种基于windows服务控制器的系统自动运行方法,其特征在于,所述的windows服务程序为自定义windows服务程序。
4.根据权利要求2所述的一种基于windows服务控制器的系统自动运行方法,其特征在于,监控程序模块可以同时监控多个windows服务程序。
全文摘要
本发明涉及一种基于windows服务控制器的系统自动运行方法,该方法是基于windows服务控制器,通过监控程序和windows后台服务程序文件接口,(1)windows后台服务程序定时生成标识程序运行正常的种子文件;(2)监控程序定时删除对应种子文件,若在指定时间内未发现种子文件时,(3)通过向windows服务控制器发送停止、启动消息,保证windows后台服务程序持续运行,被监控服务程序也可以主动生成程序异常标志文件,监控程序监测到异常标志文件,向windows服务控制器发送停止、启动消息,重新运行windows后台服务程序。本发明的方法以较少的改动,保证被监控的windows后台服务程序7×24小时运行。
文档编号G06F9/48GK102436397SQ20111030973
公开日2012年5月2日 申请日期2011年10月13日 优先权日2011年10月13日
发明者张国祥, 许晓晓 申请人:上海洲信信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1