CN101741619B - 面向容忍入侵的自治愈j2ee应用服务器及其自治愈方法 - Google Patents
面向容忍入侵的自治愈j2ee应用服务器及其自治愈方法 Download PDFInfo
- Publication number
- CN101741619B CN101741619B CN2009102544697A CN200910254469A CN101741619B CN 101741619 B CN101741619 B CN 101741619B CN 2009102544697 A CN2009102544697 A CN 2009102544697A CN 200910254469 A CN200910254469 A CN 200910254469A CN 101741619 B CN101741619 B CN 101741619B
- Authority
- CN
- China
- Prior art keywords
- application server
- curing
- j2ee application
- component
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种面向容忍入侵的自治愈J2EE应用服务器及其自治愈方法,该应用服务器包括容忍入侵功能组件、自治愈功能组件、安全群组通信系统和J2EE应用服务器基础平台;该自治愈功能组件,用于接收容忍入侵功能组件和安全群组通信系统的输出结果进行自治愈处理,为J2EE应用服务器基础平台提供自治愈功能支持,其包括检测部件、管理部件和执行部件;检测部件检测入侵和故障,将结果上交给管理部件;管理部件对检测结果进行分析,给出治愈方案,发给执行部件;执行部件根据治愈方案对应用服务器进行治愈。该自治愈方法在容忍入侵方法的基础上加入了反应式恢复和周期性恢复,进一步提高了J2EE应用服务器的可靠性和生存性,其可用于网络安全领域。
Description
技术领域
本发明属于计算机技术领域,涉及应用服务器,具体地说是面向容忍入侵的自治愈J2EE应用服务器及其自治愈方法,它是在具有容忍入侵功能的J2EE应用服务器上加入自治愈功能组件,以进一步增强J2EE应用服务器的安全性和可靠性。
背景技术
随着国家信息化建设的不断深入,市场对基于J2EE中间件规范的应用服务器产品的需求不断增加。根据CSDN中间件调查报告,在国内,基于J2EE中间件规范的应用服务器经过多年的发展,已经成功地占据了金融、电信、电子政务、电子商务四大行业的80%以上的市场,并广泛地应用于政府、交通、证券、保险、税务、移动、教育、军事等行业或领域的信息化建设中,成为大型应用系统建设中不可缺少的一环。而目前市场上的J2EE应用服务器产品,如IBM WebSphere,BEAWebLogic和JBoss等,虽然内置了安全服务如认证及授权等,为用户提供了一定程度的安全服务保证,但是在服务可生存性方面还存在着不同程度的欠缺。
针对此问题,郭渊博、王亚弟、袁顺等人根据容忍入侵相关理论,设计开发了基于J2EE中间件规范的容忍入侵应用服务器平台-JANTM。所谓容忍入侵是一种融合了密码技术和容错技术的全新网络安全技术,它强调系统的某些部分即使已经受到攻击者破坏或被攻击者成功控制时,系统如何继续对外提供服务,并保证系统中关键数据的秘密性和完整性。容忍入侵主要考虑的是在入侵存在的情况下系统的生存能力,它总是假定系统存在一些未知的脆弱点,并且这些脆弱点总是可为攻击者所利用。其主要思想就是利用分布式系统中的硬件或者软件容错技术屏蔽任何入侵或者攻击对系统功能的影响,保证系统关键功能的安全性和连续性。上述研发的JANTM实现了容忍入侵功能在J2EE应用服务器上的无缝集成,增强了J2EE应用服务器的安全性和可靠性。
但上述的容忍入侵J2EE应用服务器也具有一定的安全隐患。首先如果入侵或攻击具有一定连续性和成功性,破坏了容忍入侵屏蔽机制的前提条件,例如,JANTM中应用的大数表决机制中的前提条件,即一共有2f+1台J2EE应用服务器,最多只能有f个J2EE应用服务器发生错误;其次入侵或攻击根本就没有被检测出来和屏蔽掉,即发生隐性入侵,这时系统将进入一种无法预测的危险状态,即未知状态;另外随着J2EE应用服务器的长时间运行,自然会出现软件老化现象,使整个系统的性能不断下降,错误也会不断增多。在这三种情况下,系统的可生存性将会大大降低,并失去对外正常服务的能力,甚至发生崩溃。
所谓软件老化是指,软件在连续运行一段时间以后,由于缺陷的累积会导致软件的性能逐渐下降,甚至会使整个系统崩溃。而引起这种老化的主要原因是软件的资源消耗,资源的碎片,数据的污染以及数值累积错误。为了抵消软件老化造成的影响,1995年AT&T贝尔实验室的Y.Huang等提出了软件自治愈技术,其基本思想是通过周期性地暂停软件的运行,清除持续运行的系统内部状态、并通过重新启动恢复系统为初始状态,以预防系统将来可能发生的更严重的故障。软件自治愈的过程包括停止应用程序的运行,释放操作系统的资源,刷新操作系统资源列表,重新初始化应用程序中的数据结构等。如果J2EE应用服务器需要长时间运行,自然会出现软件老化现象,虽然可以通过软件自治愈来消除软件老化现象,但软件自治愈却不能解决外界入侵对系统的影响,所以我们将软件自治愈和容忍入侵相结合,即能消除软件老化,又能在入侵存在的情况下保证系统的生存能力。此外,如果自治愈对象只为J2EE应用服务器或操作系统,难免会产生大量开销,使系统的性能大大降低;如果对象只为J2EE应用服务器的组件,又不能完全消除网络入侵和Byzantine错误的威胁。
现有国外的相关项目,例如,在CRUTIAL项目的支持下,Paulo Sousa,AlyssonN.Bessani设计开发了CRUTIAL Information Switches(CIS),它为关键性设施提供了容忍入侵和自治愈保护,但CIS是以无状态的防火墙为实现对象,并不是针对应用服务器设计的。此外还有一些针对J2EE应用服务器进行自治愈的研究,例如,JAGR是G Candea等人在2003年设计了一个自治愈J2EE应用服务器,但是JAGR主要针对的是J2EE应用服务器瞬时错误,面对故障只采取微重启一项恢复技术,并且只能针对单个J2EE应用服务器进行恢复。JADE是Sara Bouchenak等人在2005年设计了一个具有自治愈功能的J2EE应用服务器中间件平台,它是一个比较完整的自治愈中间件平台,但因为JADE是建立在他们自己设计的FRACTAL组件框架上的,所以通用性不强。目前学术界和市场上还没有出现一种面向容忍入侵的自治愈J2EE应用服务器。
发明内容
为克服上述已有技术的不足,本发明的目的之一是提供一种面向容忍入侵的自治愈J2EE应用服务器,在容忍入侵J2EE应用服务器基础上,增加自治愈功能到J2EE应用服务器中,进一步提高容忍入侵J2EE应用服务器的安全性和可靠性;目的之二是提供一种面向容忍入侵的自治愈方法,解决在容忍入侵前提下的隐性入侵问题以及软件甚至系统老化问题,同时防止容忍入侵屏蔽机制的前提条件遭到破坏,避免系统无法对外提供正常服务,甚至崩溃。
本发明的目的是这样实现的:
一、本发明面向容忍入侵的自治愈J2EE应用服务器,包括:
容忍入侵功能组件,用于为J2EE应用服务器提供以表决技术为主的容忍入侵支持,并将表决结果作为自治愈功能组件的输入;
安全群组通信系统,用于替换原有J2EE应用服务器的群组通信系统,其通过API接口与自治愈功能组件和容忍入侵功能组件进行交互,为它们提供一套安全可靠的群组通信机制和组成员的管理机制;
J2EE应用服务器基础平台,用于对用户提供业务逻辑服务,完成用户相应的业务请求;
自治愈功能组件,用于接收容忍入侵功能组件和安全群组通信系统的输出结果,进行自治愈处理,为J2EE应用服务器提供自治愈功能支持。
所述的自治愈功能组件包括:
检测部件,用于检测客户调用请求和J2EE应用服务器及其组件运行,发现非法入侵和J2EE应用服务器及其组件故障,该检测部件的输出作为管理部件的输入;
管理部件,用于分析检测部件的输出结果,根据输出结果给出自治愈方案,再针对自治愈方案,向各个执行部件发送命令,该管理部件的输出作为执行部件的输入;
执行部件,用于接收管理部件的执行命令,并根据执行命令对发生入侵或故障的J2EE应用服务器及其组件进行自治愈处理。
二、本发明面向容忍入侵的自治愈方法,包括:
(1)集群初始化步骤
将相同的N个冗余J2EE应用服务器组成一个对外提供统一服务的J2EE应用服务器集群,各J2EE应用服务器作为集群内的组成员,其中N=2f+k+1,f为集群系统可以容忍的入侵和故障J2EE应用服务器个数,k为同一时刻离线进行周期性恢复的J2EE应用服务器个数,在线J2EE应用服务器总数为n=2f+1;
(2)容忍入侵步骤
2a)由各组成员的主席选举器根据安全群组通信系统提供的在线成员服务器信息选举产生主J2EE应用服务器,集群中的其他J2EE应用服务器为从J2EE应用服务器;
2b)主J2EE应用服务器对来自客户端的请求进行过滤并转发;
2c)主、从J2EE应用服务器将请求的处理结果发送到主J2EE应用服务器中进行表决,并将表决出的多数相同结果视为正确结果,反馈给客户端;
2d)将请求处理结果与主J2EE应用服务器输出的正确结果不一致的J2EE应用服务器视为故障J2EE应用服务器,触发该J2EE应用服务器的管理部件对其进行自治愈处理;
(3)反应式恢复步骤
3a)判断在线J2EE应用服务器受到入侵或发生故障的个数h与同一时刻离线进行周期性恢复的J2EE应用服务器个数k的大小,并作不同处理:当h≤k时,主J2EE应用服务器的管理部件通过安全群组通信系统提前向离线J2EE应用服务器发出上线通知,如果目前k台离线J2EE应用服务器中的h台完成恢复操作,则提前上线代替已故障的h台J2EE应用服务器,若未完成,则继续等待,以确保在线J2EE应用服务器总数为n,避免表决机制的前提条件遭到迅速破坏;当h>k时,主J2EE应用服务器管理部件通过安全群组通信系统通知k’台已经完成恢复的离线J2EE应用服务器提前上线,k’<k,使当前在线J2EE应用服务器数n’=n-h+k’为奇数,满足表决机制中表决总数应为奇数的前提条件;
3b)h台受到入侵或发生故障的J2EE应用服务器离线进行恢复处理,若入侵和故障发生在J2EE应用服务器级,调用执行部件中服务器级重启器和系统级重启器对J2EE应用服务器进行重启恢复;若入侵和故障发生在组件级,调用执行部件中组件级重启器对组件进行重启恢复;
(4)周期性恢复步骤
4a)通过同步时钟周期性地发出信号触发k台J2EE应用服务器的管理部件;
4b)k台J2EE应用服务器的管理部件接收到周期性触发信号后,利用安全群组通信系统、服务器级重启器和系统级重启器对该k台J2EE应用服务器进行恢复;
4c)k台J2EE应用服务器完成恢复后重新加入安全群组时,将获得新的密钥,使该k台J2EE应用服务器对相同入侵具有一定的免疫力;
4d)k台J2EE应用服务器上线后,k台J2EE应用服务器管理部件通过联系主J2EE应用服务器的管理部件,调用检查点执行器和迁移执行器对主J2EE应用服务器的业务组件状态进行迁移操作,使k台J2EE应用服务器能够继续执行业务请求。
本发明具有如下优点:
(1)通过加入自治愈功能,进一步增强了容忍入侵J2EE应用服务器的可靠性和安全性。
本发明由于在容忍入侵J2EE应用服务器上增加了自治愈功能,有效地针对容忍入侵状态中的未知状态,进行周期性恢复,使每个J2EE应用服务器周期性的恢复到初始化状态,成功地防止了隐性入侵的发生,也避免了J2EE应用服务器软件老化现象的发生;同时又针对具有一定连续性和成功性的入侵,引入了反应式恢复,以确保J2EE应用服务器集群能满足容忍入侵表决机制的前提条件,使J2EE应用服务器的可靠性和安全性得到了进一步提高。
(2)实现了对J2EE应用服务器组件的自治愈功能,降低了自治愈的开销。
本发明由于采用了针对组件的入侵和故障检测、服务状态迁移、检查点和重启功能,根据入侵或故障的不同情况,将自治愈的恢复颗粒进一步减小,提高了J2EE应用服务器恢复的灵活性,降低了自治愈功能的开销,增强了本发明的实用性。
附图说明
图1为本发明面向容忍入侵的自治愈J2EE应用服务器结构示意图;
图2为本发明的自治愈功能组件结构示意图;
图3为本发明的入侵检测器结构示意图;
图4为本发明的故障检测器结构示意图;
图5为本发明自治愈组件中的管理部件结构示意图;
图6为本发明J2EE应用服务器业务状态迁移流程图;
图7为本发明J2EE应用服务器集群结构示意图;
图8为本发明面向容忍入侵的自治愈方法流程图。
具体实施方式
一、面向容忍入侵的自治愈J2EE应用服务器
参见图1,本发明面向容忍入侵的自治愈J2EE应用服务器包括的模块有:容忍入侵功能组件、自治愈功能组件、安全群组通信系统和J2EE应用服务器基础平台。其中:
所述的容忍入侵功能组件为J2EE应用服务器提供了以表决技术为主的容忍入侵支持,其表决结果作为自治愈功能组件的输入。其包括:请求过滤器、复制分发器、表决器、主席选举器和日志审计器,该请求过滤器,用于阻止前端客户向J2EE应用服务器端的非法调用请求,该请求过滤器的输出作为复制分发器的输入;该复制分发器,用于对前端客户的合法请求进行复制,并转发给组内可服务的J2EE应用服务器执行,可服务的J2EE应用服务器成员信息由安全群组通信系统及表决器提供;该表决器,用于从输入的多个请求处理结果中协商选出一个或多个作为正确的输出,并将表决结果反馈给各J2EE应用服务器的管理部件;该主席选举器,用于在J2EE应用服务器群组中协商随机产生主J2EE应用服务器,并将选举结果通知组内其它成员;该日志审计器,用于系统操作日志的记录,提取导致J2EE应用服务器发生故障的攻击行为特征,并通过通告此行为特征更新群组内所有成员的攻击特征库。
所述的自治愈功能组件,用于接收容忍入侵功能组件和安全群组通信系统的输出结果进行自治愈处理,为J2EE应用服务器提供自治愈功能支持,该容忍入侵功能组件和自治愈功能组件是通过J2EE应用服务器基础平台中内置的拦截器(interceptor)和Mbean(manager bean)实现对J2EE应用服务器功能的透明扩展。
所述的安全群组通信系统采用已有的Secure Spread 2.1.0安全群组通信系统,替换原有J2EE应用服务器的群组通信系统,Spread 2.1.0内部设有通用密钥协商算法和加密算法,通过认证、密钥协商和访问控制机制,实现群组成员身份的合法性认证、成员安全的加入与离开,以及组内安全可靠有序的消息发送与接收,保证数据的完整性和机密性,以及处理节点失效和网络分割问题。
所述的J2EE应用服务器基础平台,用于对用户提供业务逻辑服务,完成用户相应的业务请求。
用户请求经过J2EE应用服务器基础平台中的拦截器时,调用容忍入侵功能组件和自治愈功能组件,通过容忍入侵功能组件表决产生正确结果反馈给客户端,并将错误结果提供给自治愈功能组件,利用自治愈功能组件对产生错误结果的J2EE应用服务器进行自治愈处理,进一步增强J2EE应用服务器的安全性和可靠性,而安全群组通信系统为集群中各个J2EE应用服务器中的容忍入侵功能组件和自治愈功能组件提供安全可靠的群组通信机制和组成员的管理机制。
参照图2,本发明的自治愈功能组件包括:检测部件、管理部件和执行部件;检测部件检测入侵和故障,将结果上交给管理部件;管理部件对检测结果进行分析,给出治愈方案,发给执行部件;执行部件根据治愈方案对J2EE应用服务器进行治愈。
所述的检测部件,包括入侵检测器和故障检测器;其中的入侵检测器,通过对集群系统中J2EE应用服务器的若干关键点收集信息,并对其进行分析从中发现网络或J2EE应用服务器中是否有违反安全策略的行为和遭到入侵的迹象并做出一定的响应。入侵检测器由检测器配置表、入侵特征库、入侵分析器和入侵触发器组成,如图3所示。该检测器配置表,详细规定了入侵分析器相关功能及参数选择,检测器配置表由管理员通过Web页面设置;该入侵分析器,是入侵检测分析机制的具体化部件,用于分析前端客户对J2EE应用服务器端的调用行为,包括对每个请求的动作做出当前判断和下一步预测,入侵分析器对含有恶意及无效的调用实施阻隔,若阻隔不成功,则向入侵触发器发出入侵信号;该入侵触发器,负责接收入侵信号,触发管理部件进行处理;该入侵特征库,向入侵分析器提供已知的入侵行为特征,入侵特征库中含有两部分信息:一部分是事先定义的已知入侵信息;另一部分是J2EE应用服务器运行过程中对导致J2EE应用服务器产生故障的调用行为进行特征提取而新加入的入侵特征。
其中的故障检测器,位于集群中每一台J2EE应用服务器中,针对故障级别不同,分为服务器级故障检测器和组件级故障检测器。服务器级故障检测器利用安全群组通信系统,通过心跳技术对集群系统中的每个在线J2EE应用服务器进程进行故障检测。服务器级故障检测器由故障状态表、故障监控器和故障触发器组成,如图4所示。该故障状态表根据接收到的“心跳”来实时更新定义集群中每台J2EE应用服务器的故障状态;故障监控器根据心跳规则,负责接收和发送“心跳”;该故障触发器根据故障状态表中的故障状态信息,发送和接收J2EE应用服务器故障结果,并触发该J2EE应用服务器的管理部件。另外,在J2EE应用服务器组件级别上,本发明设计了组件级故障检测器,它通过监听J2EE应用服务器运行中产生的java异常,跟踪每个用户请求,分析请求的路径和使用的组件资源,发现其中有异常行为或故障的组件,通知本地的管理部件对其进行处理。
所述的管理部件,是一个统筹性的部件,自治愈组件中的每个部件都在管理部件中进行注册和注销,它接收入侵检测器、故障检测器和表决器的输出信号,根据其定义的各种自治愈算法对检查点执行器、迁移执行器和重启执行器进行统一调度和应用。该管理部件由自治愈配置表、组件管理器、反应式恢复器、周期性恢复器和同步时钟组成,如图5所示。该自治愈配置表中,规定有各种自治愈算法及参数选择,且针对不同需求能够进行人工修改;该组件管理器,用于对自治愈组件中的每个部件进行注册和注销;该反应式恢复器,接收入侵检测器、故障检测器和表决器的输出信号,并根据自治愈配置表中的自治愈算法对检查点执行器、迁移执行器和重启执行器进行统一调度,进行反应式恢复;该周期性恢复器,通过安全群组系统将所有的周期性恢复器联系起来,互相通信,并在系统统一同步时钟的触发下对每个J2EE应用服务器进行周期性的恢复;同步时钟负责同步系统时间并为管理部件发送统一的触发时间信号。
所述的执行部件,包括检查点执行器、迁移执行器和重启执行器。该检查点执行器,为了降低设置检查点的开销,采用在J2EE应用服务器的组件级上进行检查点设置,保存和恢复集群系统中J2EE应用服务器正确运行时的业务组件状态,供迁移执行器和重启执行器使用。检查点执行器由检查点设置器和检查点还原器组成,如图6所示。该检查点设置器,通过检查点设置规则和检查点一致性规则对J2EE应用服务器正在运行着的业务组件进行检查点设置,并将该检查点保存到存储介质中;该检查点还原器,接收到管理部件和迁移执行器发出的还原信号,从存储介质中提取检查点进行还原操作。检查点执行器的实现是通过调用J2EE应用服务器下层的JVM(Java Virtual Machine)自带的JPDA(Java Platform DebuggerArchitecture)来完成的,提高了检查点执行器的通用性。检查点执行器中设有检查点一致性规则,该规则采用了自动关联度路径推断ACPI(AutomaticCorrelation-Path Inference),具体为,在J2EE应用服务器测试和运行期间,通过注入测试任务来对J2EE应用服务器进行负载测试和任务跟踪,以得到J2EE应用服务器中各个组件之间关联度的路径图,并根据此图将相关联组件构成一个检查点组,对每个检查点组进行检查点设置,从而保证了检查点的一致性。
该迁移执行器,由于自治愈完成后的J2EE应用服务器恢复到了初始化状态,该J2EE应用服务器中没有任何用户业务在执行,视为无状态J2EE应用服务器,而本发明又采用的是N模冗余的集群模式,所以需要利用迁移执行器将当前主J2EE应用服务器的业务状态迁移到无状态J2EE应用服务器中,使其可以继续运行该业务。如图6所示。其具体迁移过程是:先由无状态J2EE应用服务器中的管理部件通知迁移执行器自治愈工作已完成,由迁移执行器向主J2EE应用服务器上的迁移执行器发出迁移请求,由主J2EE应用服务器的迁移执行器通知本机的检查点执行器进行检查点设置,设置完成后,主J2EE应用服务器的迁移执行器将保存的业务检查点发送给无状态J2EE应用服务器的迁移执行器,迁移执行器接收到该业务检查点后,通知本机的检查点执行器进行还原,这样主J2EE应用服务器上的业务就能在该无状态J2EE应用服务器上继续运行。需要指出的是,由于自治愈完成后的J2EE应用服务器进程已经启动,该迁移执行器迁移的业务状态为J2EE应用服务器中的EJB组件状态,将EJB组件状态迁移到J2EE应用服务器进程中继续执行。EJB组件状态是通过java序列化和反序列化机制进行传输的。
该重启执行器由组件级重启器、服务器级重启器和系统级重启器组成,其中组件级重启器通过接收故障检测器的输出结果,针对一个或者相关联的多个组件进行重启操作,以有效地降低了重启的开销;服务器级重启器,用于在组件级重启器无法完全清除故障,或者接收到故障检测器的服务器入侵和故障信号和周期性恢复信号时,将对J2EE应用服务器启动服务器级重启,以彻底解决J2EE应用服务器的入侵和故障问题;系统级重启器,用于在接收到周期性恢复信号,或者服务器级重启无法解决入侵和故障问题时,触发操作系统中的还原程序对操作系统进行重启还原。
二、面向容忍入侵的自治愈方法
参见图8,本发明的面向容忍入侵自治愈方法,包括如下步骤:
步骤1,集群初始化。
参加图7,将N个相同的冗余J2EE应用服务器组成一个对外提供统一服务的J2EE应用服务器集群,各J2EE应用服务器作为集群内的组成员,各组成员通过安全群组通信系统进行通信,并在安全群组通信系统中拥有唯一的ID;此外在集群中各J2EE应用服务器运行在不同操作系统上,例如Windows和Linux系列系统;其中S1为主J2EE应用服务器,S2……Sn为从J2EE应用服务器;集群中J2EE应用服务器总数为N-2f+k+1,f为集群系统可以容忍的入侵和故障J2EE应用服务器个数,k为同一时刻离线进行周期性恢复的J2EE应用服务器个数,在线J2EE应用服务器总数为n=2f+1,目前在线的J2EE应用服务器为S1……Sn,而Sn+1……Sn+k为此刻离线恢复的J2EE应用服务器。
步骤2,容忍入侵。
(2.1)选举主J2EE应用服务器
各组成员的主席选举器根据安全群组通信系统提供的在线成员J2EE应用服务器信息选举产生主J2EE应用服务器,主J2EE应用服务器向集群发送主席通告消息,告知所有从J2EE应用服务器当前的主席名称;
(2.2)请求过滤
首先,主J2EE应用服务器原有安全服务功能对来自客户端的请求进行验证,并将通过验证的请求送达主J2EE应用服务器拦截器,并由该拦截器转发给主J2EE应用服务器的请求过滤器;其次,主J2EE应用服务器的请求过滤器根据该管理器的攻击特征库对拦截器送过来的请求进行验证,非法请求将被阻止,合法请求转发给主J2EE应用服务器的复制管理器;
(2.3)请求复制分发
首先,主J2EE应用服务器的复制分发器将合法请求进行复制;然后,复制管理器根据安全群组通信系统提供的在线成员信息将请求复制品发送到各个在线的从J2EE应用服务器中;最后,主、从J2EE应用服务器处理该请求;
(2.4)大数表决处理
首先,由主、从J2EE应用服务器将请求的处理结果通过安全群组通信系统发送到主J2EE应用服务器的表决器中,在规定时间内未发送请求处理结果的J2EE应用服务器被视为故障J2EE应用服务器;然后,由主J2EE应用服务器的表决器通过大数表决算法对请求的处理结果进行表决处理,将正础结果反馈回客户端;最后,将请求处理结果与主J2EE应用服务器的输出不一致的J2EE应用服务器视为故障J2EE应用服务器,主J2EE应用服务器的表决器将故障J2EE应用服务器信息通过安全群组通信系统发送到该故障J2EE应用服务器的表决器中,以触发管理部件对其进行自治愈处理。
步骤3,反应式恢复。
(3.1)为了确保表决机制的前提条件能够一直有效,即最多只能容忍f个J2EE应用服务器发生入侵或故障,反应式恢复利用周期性恢复中的k台离线J2EE应用服务器作为硬件冗余,利用t-t0的时间差作为时间冗余。判断在线J2EE应用服务器受到入侵或发生故障的个数h与同一时刻离线进行周期性恢复的J2EE应用服务器个数k的大小,并作不同处理:当h≤k时,主J2EE应用服务器的管理部件通过安全群组通信系统提前向离线J2EE应用服务器发出上线通知,如果目前k台离线J2EE应用服务器中的h台完成恢复操作,则提前上线代替已故障的h台J2EE应用服务器,若未完成,则继续等待,以确保在线J2EE应用服务器总数为n,避免表决机制前提条件遭到迅速破坏;当h>k时,主J2EE应用服务器管理部件通过安全群组通信系统通知k’台已经完成恢复的离线J2EE应用服务器提前上线,k’<k,使当前在线J2EE应用服务器数n’=n-h+k’为奇数,满足表决机制中表决总数应为奇数的前提条件;
(3.2)h台受到入侵或发生故障的J2EE应用服务器离线进行恢复处理,若入侵和故障发生在J2EE应用服务器级,调用执行部件中服务器级重启器和系统级重启器对J2EE应用服务器进行重启恢复,具体过程如下:
通过该J2EE应用服务器中的服务器级重启器关闭J2EE应用服务器,同时系统级重启器触发系统中的重启单元进行重启还原,利用软件,例如ghost或者硬件,例如还原卡来作为系统中的重启单元,使整个J2EE应用服务器和系统能够清除未知入侵;
在系统重启还原完毕后,通过系统中的重启单元启动J2EE应用服务器,以使J2EE应用服务器和系统还原到安全的初始化状态;
若入侵和故障发生在组件级,调用执行部件中组件级重启器对组件进行重启恢复,具体过程为:首先摧毁相应的组件实例,终止这些实例的守护线程;然后释放相关的引用资源,删除维持组件的服务元数据,最后重新实例化和初始化组件。
步骤4,周期性恢复。
通过周期性恢复算法和安全群组通信系统,将集群中所有的J2EE应用服务器构成一个虚拟的环形结构,并以一定的方向和时间对每台J2EE应用服务器进行周期性恢复。具体步骤如下:
(4.1)主J2EE应用服务器的管理部件根据周期性恢复算法,通过同步时钟触发第一组k台J2EE应用服务器的管理部件进行离线操作,即在安全群组通信系统中删除这k个组成员。若当主J2EE应用服务器根据周期性恢复算法发现自己将要进行离线时,它会通知所有在线组成员进行新的一轮主席选举,选出新的主J2EE应用服务器来代替自己;
(4.2)对这k台J2EE应用服务器进行状态恢复,首先通过该J2EE应用服务器中的服务器级重启器关闭J2EE应用服务器,同时系统级重启器触发系统中的重启单元进行重启还原,使整个J2EE应用服务器和系统能够清除未知入侵;系统重启还原完毕后,通过系统中的重启单元启动J2EE应用服务器,使J2EE应用服务器和系统还原到安全的初始化状态;
(4.3)所有k台离线J2EE应用服务器恢复完毕后,当离线时间等于周期性恢复算法中规定的时间间隔t时,t要大于k台离线J2EE应用服务器同时恢复所需时间t0,k台离线J2EE应用服务器通过安全群组通信系统向主J2EE应用服务器发出上线请求,主J2EE应用服务器允许后,k台离线J2EE应用服务器申请加入组,得到新的密钥,成为在线组成员,同时主J2EE应用服务器向下一组k台J2EE应用服务器发出离线命令。
(4.4)第一组k台离线J2EE应用服务器上线后,为了可以保持与其他在线J2EE应用服务器对外业务处理的同步,它们的迁移执行器将向主J2EE应用服务器发出迁移EJB业务请求,主J2EE应用服务器将其正在运行的EJB业务状态通过检查点执行器进行保存,经过主J2EE应用服务器的迁移执行器将EJB业务状态迁移到这k台J2EE应用服务器上,又通过k台J2EE应用服务器上的检查点执行器进行还原,使EJB业务状态能够在k台J2EE应用服务器进程中继续执行。
Claims (7)
1.一种面向容忍入侵的自治愈J2EE应用服务器,包括:
容忍入侵功能组件,用于为J2EE应用服务器提供以表决技术为主的容忍入侵支持,并将表决结果作为自治愈功能组件的输入;
安全群组通信系统,用于替换原有J2EE应用服务器的群组通信系统,它通过API接口与自治愈功能组件和容忍入侵功能组件进行交互,为它们提供了一套安全可靠的群组通信机制和组成员的管理机制;
J2EE应用服务器基础平台,用于对用户提供业务逻辑服务,完成用户相应的业务请求;
自治愈功能组件,用于接收容忍入侵功能组件和安全群组通信系统的输出结果进行自治愈处理,为J2EE应用服务器提供自治愈功能支持;
所述的自治愈功能组件包括:
检测部件,用于检测客户调用请求和应用服务器及其组件运行,发现非法入侵和应用服务器及其组件故障,该检测部件的输出作为管理部件的输入;
管理部件,用于分析检测部件的输出结果,根据输出结果给出自治愈方案,再针对自治愈方案,向各个执行部件发送命令,该管理部件的输出作为执行部件的输入;
执行部件,用于接收管理部件的执行命令,并根据执行命令对发生入侵或故障的应用服务器及其组件进行自治愈处理。
2.根据权利要求1所述的自治愈J2EE应用服务器,其特征在于所述的检测部件包括入侵检测器和故障检测器;该入侵检测器,由检测器配置表、攻击特征库、入侵分析器和入侵触发器组成,用于检测前端客户向应用服务器端的所有调用请求,发现非法调用请求,进行阻隔,若无法阻隔,则通过安全群组通信系统发出应用服务器被入侵信号,触发管理部件进行处理;该故障检测器,通过心跳机制和组件检测机制分别对正在运行的应用服务器及其各个组件进行检测,如果应用服务器或其组件发生故障,则触发管理部件进行处理。
3.根据权利要求1所述的自治愈J2EE应用服务器,其特征在于管理部件由自治愈配置表、组件管理器、反应式恢复器、周期性恢复器和同步时钟组成;该自治愈配置表中,规定有各种自治愈算法及参数选择,且针对不同需求能够进行人工修改;该 组件管理器,用于对自治愈组件中的每个部件进行注册和注销;该反应式恢复器,接收入侵检测器、故障检测器的输出信号,并根据自治愈配置表中的自治愈算法对检查点执行器、迁移执行器和重启执行器进行统一调度,进行反应式恢复;该周期性恢复器,通过安全群组系统将所有的周期性恢复器联系起来,互相通信,并在系统统一同步时钟的触发下对每个应用服务器进行周期性的恢复;同步时钟负责同步系统时间并为管理部件发送统一的触发时间信号。
4.根据权利要求1所述的自治愈J2EE应用服务器,其特征在于所述的执行部件包括:
检查点执行器,用于对正常应用服务器的业务组件进行检查点设置,保存和恢复正常业务组件状态,接收迁移执行器的消息进行检查点设置,完成后,再通知迁移执行器对正常业务组件状态进行迁移;
迁移执行器,用于迁移正常应用服务器的业务组件状态到无业务状态的应用服务器中继续运行,迁移前通知检查点执行器对正常业务组件状态进行保存,迁移完成后,调用检查点执行器对正常业务组件状态进行恢复;
重启执行器,用于重启应用服务器或其组件,使之恢复到初始化状态,重启完成后,调用迁移管理器迁移正常业务组件状态到应用服务器继续运行。
5.根据权利要求4所述的自治愈J2EE应用服务器,其特征在于检查点执行器包括检查点设置器和检查点还原器;该检查点设置器,通过检查点设置规则和检查点一致性规则对应用服务器正在运行着的业务组件进行检查点设置,并将该检查点保存到存储介质中后通知管理部件和迁移执行器进行下一步操作;该检查点还原器,接收到管理部件和迁移执行器发出的还原信号,从存储介质中提取检查点进行还原操作。
6.根据权利要求4所述的自治愈J2EE应用服务器,其特征在于重启执行器包括组件级重启器、服务器级重启器和系统级重启器;该组件级重启器通过接收故障检测器的输出结果,针对一个或者相关联的多个组件进行重启操作,以有效地降低了重启的开销;该服务器级重启器,用于在组件级重启器无法完全清除故障,或者接收到故障检测器的服务器入侵和故障信号和周期性恢复信号时,将对应用服务器启动服务器级重启,以彻底解决应用服务器的入侵和故障问题;该系统级重启器,用于在接收到周期性恢复信号,或者服务器级重启无法解决入侵和故障问题时,触发操作系统中的还原程序对操作系统进行重启还原。
7.一种面向容忍入侵的自治愈方法,包括:
(1)集群初始化步骤
将N个相同的冗余J2EE应用服务器组成一个对外提供统一服务的J2EE应用服务器集群,各应用服务器作为集群内的组成员,其中N=2f+k+1,f为集群系统可以容忍的入侵和故障应用服务器个数,k为同一时刻离线进行周期性恢复的应用服务器个数,在线应用服务器总数为n=2f+1;
(2)容忍入侵步骤
2a)由各组成员的主席选举器根据安全群组通信系统提供的在线成员服务器信息选举产生主应用服务器,集群中的其他应用服务器为从应用服务器;
2b)主应用服务器对来自客户端的请求进行过滤并转发;
2c)主、从应用服务器将请求的处理结果发送到主应用服务器中进行表决,并将表决出的多数相同结果视为正确结果,反馈给客户端;
2d)将请求处理结果与主应用服务器输出的正确结果不一致的应用服务器视为故障应用服务器,触发该应用服务器的管理部件对其进行自治愈处理;
(3)反应式恢复步骤
3a)判断在线应用服务器受到入侵或发生故障的个数h与同一时刻离线进行周期性恢复的应用服务器个数k的大小,并作不同处理:当h≤k时,主应用服务器的管理部件通过安全群组通信系统提前向离线应用服务器发出上线通知,如果目前k台离线应用服务器中的h台完成恢复操作,则提前上线代替已故障的h台应用服务器,若未完成,则继续等待,以确保在线应用服务器总数为n,避免表决机制前提条件遭到迅速破坏;当h>k时,主应用服务器管理部件通过安全群组通信系统通知k’台已经完成恢复的离线应用服务器提前上线,k’<k,使当前在线应用服务器数n’=n-h+k’为奇数,满足表决机制中表决总数应为奇数的前提条件;
3b)h台受到入侵或发生故障的应用服务器离线进行恢复处理,若入侵和故障发生在应用服务器级,调用执行部件中服务器级重启器和系统级重启器对应用服务器进行重启恢复;若入侵和故障发生在组件级,调用执行部件中组件级重启器对组件进行重启恢复;
(4)周期性恢复步骤
4a)通过同步时钟周期性地发出信号触发k台应用服务器的管理部件;
4b)k台应用服务器的管理部件接收到周期性触发信号后,利用安全群组通信系统、服务器级重启器和系统级重启器对该k台应用服务器进行恢复;
4c)k台应用服务器完成恢复后重新加入安全群组时,将获得新的密钥,使该k台应用服务器对相同入侵具有一定的免疫力;
4d)k台应用服务器上线后,k台应用服务器管理部件通过联系主应用服务器的管理部件,调用检查点执行器和迁移执行器对主应用服务器的业务组件状态进行迁移操作,使k台应用服务器能够继续执行业务请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102544697A CN101741619B (zh) | 2009-12-24 | 2009-12-24 | 面向容忍入侵的自治愈j2ee应用服务器及其自治愈方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102544697A CN101741619B (zh) | 2009-12-24 | 2009-12-24 | 面向容忍入侵的自治愈j2ee应用服务器及其自治愈方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101741619A CN101741619A (zh) | 2010-06-16 |
CN101741619B true CN101741619B (zh) | 2012-05-23 |
Family
ID=42464553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102544697A Expired - Fee Related CN101741619B (zh) | 2009-12-24 | 2009-12-24 | 面向容忍入侵的自治愈j2ee应用服务器及其自治愈方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101741619B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895540B (zh) * | 2010-07-12 | 2015-08-12 | 中兴通讯股份有限公司 | 用于应用服务进程守护的系统和方法 |
CN102957563B (zh) * | 2011-08-16 | 2016-07-06 | 中国石油化工股份有限公司 | Linux集群故障自动恢复方法和Linux集群故障自动恢复系统 |
US9294572B2 (en) * | 2011-11-11 | 2016-03-22 | Calgary Scientific Inc. | Session transfer and suspension in a remote access application framework |
CN102739774B (zh) * | 2012-05-28 | 2015-05-27 | 中国科学院软件研究所 | 一种云计算环境下的取证方法及系统 |
CN103117998B (zh) * | 2012-11-28 | 2016-01-20 | 北京用友政务软件有限公司 | 一种基于JavaEE应用系统的安全加固方法 |
CN105553735B (zh) * | 2015-12-24 | 2018-10-12 | 迈普通信技术股份有限公司 | 一种堆叠系统故障处理方法、设备及堆叠系统 |
CN108710553B (zh) * | 2018-05-08 | 2021-02-26 | 国家计算机网络与信息安全管理中心 | 一种应用服务器可靠性的检测系统和方法 |
CN109669771B (zh) * | 2018-12-20 | 2021-02-19 | 中国联合网络通信集团有限公司 | 依赖环境更迭方法及装置 |
WO2020251155A1 (en) | 2019-06-13 | 2020-12-17 | Samsung Electronics Co., Ltd. | An automated system for healing faulty node in a network and method thereof |
CN110278133B (zh) * | 2019-07-31 | 2021-08-13 | 中国工商银行股份有限公司 | 由服务器执行的检查方法、装置、计算设备以及介质 |
JP7527771B2 (ja) | 2019-11-07 | 2024-08-05 | 株式会社日本総合研究所 | サーバ管理システム及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7076801B2 (en) * | 2001-06-11 | 2006-07-11 | Research Triangle Institute | Intrusion tolerant server system |
CN101159539A (zh) * | 2007-11-20 | 2008-04-09 | 中国人民解放军信息工程大学 | 基于j2ee中间件规范的容忍入侵应用服务器及容忍入侵方法 |
-
2009
- 2009-12-24 CN CN2009102544697A patent/CN101741619B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7076801B2 (en) * | 2001-06-11 | 2006-07-11 | Research Triangle Institute | Intrusion tolerant server system |
CN101159539A (zh) * | 2007-11-20 | 2008-04-09 | 中国人民解放军信息工程大学 | 基于j2ee中间件规范的容忍入侵应用服务器及容忍入侵方法 |
Non-Patent Citations (1)
Title |
---|
郭渊博等.容忍入侵的应用服务器结构设计与实现.《通信学报》.2009,第30卷(第10A期),第97-102页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101741619A (zh) | 2010-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101741619B (zh) | 面向容忍入侵的自治愈j2ee应用服务器及其自治愈方法 | |
CN100586058C (zh) | 基于j2ee中间件规范的容忍入侵应用服务器及容忍入侵方法 | |
Bouteiller et al. | Coordinated checkpoint versus message log for fault tolerant MPI | |
KR100553920B1 (ko) | 컴퓨터 클러스터 운영 방법 | |
US7725763B2 (en) | Functional continuity by replicating a software application in a multi-computer architecture | |
US20160314057A1 (en) | Triple software redundancy fault tolerant framework architecture | |
CN103853634B (zh) | 一种容灾备份系统及方法 | |
WO2021103499A1 (zh) | 一种基于多活数据中心的流量切换方法及装置 | |
CN112181660A (zh) | 一种基于服务器集群的高可用方法 | |
CN110807064A (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
CN1971577A (zh) | 许可证管理系统内的安全备份许可证服务器的方法和系统 | |
CN105511987A (zh) | 一种强一致性且高可用的分布式任务管理系统 | |
CN104008452A (zh) | 一种用于航电核心系统的容错管理系统其及容错管理方法 | |
CN113064755B (zh) | 数据恢复方法、装置、设备、介质及程序产品 | |
CN102025728A (zh) | 客户端/服务端架构下的调度方法和服务器 | |
Smara et al. | Robustness improvement of component-based cloud computing systems | |
CN109104314B (zh) | 一种修改日志配置文件的方法及装置 | |
Danilecki et al. | ReServE service: An approach to increase reliability in service oriented systems | |
CN101778091A (zh) | 可扩充式安全服务器交替系统 | |
CN111722988A (zh) | 一种数据空间节点的故障切换方法和装置 | |
Jehl et al. | Asynchronous reconfiguration for Paxos state machines | |
KR101864126B1 (ko) | 지속적인 서비스 제공을 위한 정상상태 모델 기반의 침입감내 시스템 및 그 제어방법 | |
Meng et al. | Design and implementation of an intrusion-tolerant self-healing application server | |
CN104915289A (zh) | 一种金融应用系统后台进程异常检测方法及装置 | |
CN102917015A (zh) | 一种基于云计算的虚拟化容忍入侵的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20121224 |