专利名称:服务信息的调用方法、系统以及企业服务总线服务器的利记博彩app
技术领域:
本发明涉及管理支撑技术领域,尤其涉及一种服务信息的调用方法、系统以及一种企业服务总线服务器。
背景技术:
企业服务总线(ESB, Enterprise Service Bus)服务器是面向服务的体系结构(SOA, Service Orientied Architecture)的关键组件,其是SOA互联模式下的连接中枢。SOA的结构示意图如图I所示,位于服务协作参与方(包括服务信息调用方和服务信息提供方)之间的ESB服务器提供了服务协作参与方之间的服务虚拟化交互。ESB服务器的核心功能模块是服务中介模块,服务中介模块负责协调服务信息调用方和服务信息提供方之间的消息差异,ESB服务器尤其是其包含的服务中介模块的稳定性与可用性,决定着SOA的协 作服务水平。特别地,当ESB服务器发生故障时,服务信息调用方和服务信息提供方之间的服务交互质量的保障技术对SOA基础设施的高可用性更是至关重要。目前,针对ESB服务器故障时服务交互质量保障需求,主流的解决方法是故障转移技术,该技术又包括调用方重定向和组件替换两种方式。其中,调用方重定向方式是指服务信息调用方在监测到ESB服务器发生故障后,绕过发生故障的ESB服务器而直接访问服务信息提供方;而组件替换方式则需要SOA中提供一个以上的备用ESB服务器,并要求备用ESB服务器在软硬件方面必须与当前正在使用的主用ESB服务器完全一致(因此组件替换方式也称为“对称式服务替代技术”),此外还需要将备用ESB服务器的地址信息提供给服务信息调用方,从而后续服务信息调用方才能依据该地址信息向备用ESB服务器发送服务信息调用请求。上述现有技术的缺陷在于调用方重定向方式要求服务信息调用方必须掌握服务信息提供方的地址信息、通信协议等信息,即要求服务协作参与方之间对于地址信息、通信协议是相互“透明”的,但在实际应用中服务信息提供方的地址信息和通信协议往往是不会提供给服务信息调用方的,因此该方式在实现上会有一定难度;而组件替换方式由于要求备用ESB服务器与主用ESB服务器在中间件软件、依赖软件(总线数据库)、操作系统、硬件服务器等方面的配置均相同,因此对软、硬件资源的需求较大,在主用ESB服务器故障率较低的情况下,组件替换方式实际是对软硬件资源造成了较大的闲置浪费。
发明内容
本发明实施例提供一种服务信息的调用方法和系统,用以解决现有技术提供的故障转移技术存在的对软、硬件资源需求量较大的问题。本发明实施例还提供一种企业服务总线服务器。本发明实施例采用以下技术方案一种服务信息的调用方法,包括在主用企业服务总线ESB服务器停用后,被设置为处于工作状态的备用虚拟ESB服务器接收服务信息调用方根据主用ESB服务器的地址并基于远程方法调用RMI模式提供的服务信息调用请求消息;其中,所述服务信息调用请求消息是利用Java对基于标准通用标记语言SGML的服务信息调用请求消息进行转换后得到的,所述备用虚拟ESB服务器的地址与主用ESB服务器的地址相同;备用虚拟ESB服务器获得所述服务信息调用方提供的服务信息调用请求消息中包含的服务信息标识和服务信息调用方标识;以及基于RMI模式,将所述服务信息标识提供给服务信息提供方;获得服务信息提供方根据所述服务信息标识获得并基于RMI模式提供的服务信息;并基于RMI模式,将获得的服务信息提供给所述服务信息调用方标识指示的服务信息调用方。可选的,基于RMI模式,将所述服务信息标识提供给服务信息提供方,具体包括备用虚拟ESB服务器判断预先存储的服务信息提供方所能识别的服务信息标识中是否包含获得的服务信息标识;以及在判断结果为否时,根据预先存储的服务信息调用方所能识别的服务信息的标识与服务信息提供方所能识别的服务信息的标识的对应关系,将获得的服务信息标识转换为服务信息提供方所能识别的服务信息标识后提供给服务信 息提供方;以及在判断结果为是时,将获得的服务信息标识提供给服务信息提供方。可选的,备用虚拟ESB服务器基于RMI模式,将获得的服务信息提供给服务信息调用方,具体包括备用虚拟ESB服务器根据预先获得的服务信息调用方所能识别的服务信息的属性,对获得的服务信息进行转换后,基于RMI模式提供给服务信息调用方。可选的,通过下述步骤设置所述备用虚拟ESB服务器处于工作状态备用虚拟ESB服务器监听启用指令;并在监听到所述启用指令后,将自身的状态设置为工作状态。一种企业服务总线服务器,包括消息接收单元,用于在主用企业服务总线ESB服务器停用、且所述ESB服务器被设置为处于工作状态后,接收服务信息调用方根据主用ESB服务器的地址并基于远程方法调用RMI模式提供的服务信息调用请求消息;其中,所述服务信息调用请求消息是利用Java对基于标准通用标记语言SGML的服务信息调用请求消息进行转换后得到的,所述ESB服务器的地址与主用ESB服务器的地址相同;标识获得单元,用于获得消息接收单元接收到的服务信息调用请求消息中包含的服务信息标识和服务信息调用方标识;服务信息标识提供单元,用于基于RMI模式,将标识获得单元获得的服务信息标识提供给服务信息提供方;月艮务信息获得单元,用于获得服务信息提供方根据服务信息标识提供单元提供的服务信息标识,获得并基于RMI模式提供的服务信息;服务信息提供单元,用于基于RMI模式,将服务信息获得单元获得的服务信息提供给标识获得单元获得的服务信息调用方标识指示的服务信息调用方。一种服务信息的调用系统,包括服务信息调用方和服务信息提供方,还包括与主用企业服务总线ESB服务器地址相同的备用虚拟ESB服务器,其中服务信息调用方,用于根据主用ESB服务器的地址,基于远程方法调用RMI模式提供服务信息调用请求消息,其中,所述服务信息调用请求是利用Java对基于标准通用标记语言SGML的服务信息调用请求消息进行转换后得到的;备用虚拟ESB服务器,用于接收所述服务信息调用请求消息,并获得所述服务信息调用请求消息中包含的服务信息标识和服务信息调用方标识;以及基于RMI模式,将所述服务信息标识提供给服务信息提供方;并获得服务信息提供方基于RMI模式提供的服务信息;以及基于RMI模式,将获得的服务信息提供给所述服务信息调用方标识指示的服务信息调用方;服务信息调用方,用于获取虚拟ESB服务器提供的所述服务信息标识所指示的服务信息,并基于RMI模式,将获取的服务信息提供给虚拟ESB服务器。本发明实施例提供的上述方案通过由与主用ESB服务器地址一致的备用虚拟ESB服务器对发生故障的主用ESB服务器进行接管,并基于对资源消耗较小的远程方法调用RMI模式来实现服务协作参与方之间的服务虚拟化交互,从而与现有技术提供的故障转移技术相比,大大减少了对软、硬件资源的需求量。
图I为现有技术中的SOA的结构示意图;
图2为本发明实施例提供的一种服务信息的调用方法的具体流程示意图;图3a为本发明实施例提供的服务信息的调用方法在实际应用中的实现流程示意图;图3b为图3a中各步骤与包含备用虚拟ESB服务器的SOA的对应关系示意图;图3c为本发明实施例中对主用ESB服务器的接管示意图请;图3d为基于Java的解析方式与基于XML的解析方式的性能比较示意图;图4为本发明实施例提供的一种ESB服务器的具体结构示意图;图5为本发明实施例提供的一种服务信息的调用系统的具体结构示意图。
具体实施例方式为了解决现有技术提供的故障转移技术存在的对软、硬件资源需求量较大的问题。本发明实施例提供一种服务信息的调用方案,该方案通过由与主用ESB服务器地址一致的备用虚拟ESB服务器对发生故障的主用ESB服务器进行接管,并基于对资源消耗较小的远程方法调用(RMI,Remote Method Invocation)技术来实现服务协作参与方之间的服务虚拟化交互,从而与现有技术提供的故障转移技术相比,大大减少了对软、硬件资源的需求量。以下结合附图,对本发明实施例提供的服务信息的调用方案进行具体说明。首先,本发明实施例提供一种服务信息的调用方法,该方法的具体流程示意图如图2所示,包括下述步骤步骤21,在主用ESB服务器停用后,处于工作状态的备用虚拟ESB服务器接收服务信息调用方根据主用ESB服务器的地址并基于RMI模式提供的服务信息调用请求消息,其中,服务彳目息调用请求消息是利用Java对基于标准通用标记语目(SGML, StandardGeneralized Markup Language, SGML 包括可扩展标记语言(XML, Extensible MarkupLanguage)等多种语言)的服务信息调用请求消息进行转换后得到的;需要说明的是,上述备用虚拟ESB服务器的地址与主用ESB服务器的地址是相同的。本发明实施例中,将备用虚拟ESB服务器设置为工作状态可以通过下述方式实现
备用虚拟ESB服务器可以对启用指令进行监听,当监听到启用指令后,将自身的状态设置为工作状态。其中,该启用指令可以是由不同于主用ESB服务器和备用虚拟ESB服务器的第三方设备发送的,或者,也可以是由工作人员手动输入的,还可以是主用服务器在即将停用前向备用虚拟ESB服务器发送的。步骤22,备用虚拟ESB服务器获得接收到的服务信息调用请求消息中包含的服务信息标识和服务信息调用方标识;步骤23,备用虚拟ESB服务器基于RMI模式将服务信息标识提供给服务信息提供方;由于针对同一服务信息,有可能存在服务信息调用方所能识别的该服务信息的标识与服务信息提供方所能识别的该服务信息的标识不一致的情况,因此,步骤23的具体实现过程可以为首先,备用虚拟ESB服务器判断预先存储的服务信息提供方所能识别的服务信息标识中是否包含获得的服务信息标识;若判断结果为否,则根据预先存储的服务信息调用方所能识别的服务信息的标识与服务信息提供方所能识别的服务信息的标识的对 应关系,将获得的服务信息标识转换为服务信息提供方所能识别的服务信息标识后提供给服务信息提供方;若判断结果为是,则将获得的服务信息标识提供给服务信息提供方。步骤24,备用虚拟ESB服务器获得服务信息提供方根据服务信息标识获得并基于RMI模式提供的服务信息;步骤25,基于RMI模式,将获得的服务信息提供给服务信息调用方标识所指示的服务信息调用方。类似于步骤23的上述实现方式,步骤25中,也可以是备用虚拟ESB服务器根据预先获得的服务信息调用方所能识别的服务信息的属性,对获得的服务信息进行转换后,再基于RMI模式提供给服务信息调用方的,这样就避免了服务信息调用方无法识别服务信息的问题。并且,虽然也可以由服务信息调用方来实现转换服务信息的操作,但是,本发明实施例采用的由虚拟ESB服务器进行服务信息转换的好处在于可以减轻服务信息调用方的负载,避免对服务信息调用方的功能性要求太高。相比于现有技术中提供的组件替换方式,由于备用虚拟ESB服务器与主用ESB共用的是同一地址,因此,采用本发明实施例提供的方案也无需另外向服务信息调用方提供备用虚拟ESB服务器的地址信息,因此节约了发送地址信息所需的处理资源。此外,本发明实施例提供的上述服务信息的调用方法还创新性地将Java技术和RMI模式应用到ESB服务器中。由于利用Java技术对基于Java转换后得到服务信息调用请求消息进行解析是一种对资源消耗较小的技术,因此,基于该技术来实现备用虚拟ESB服务器的一些功能可以使得本发明实施例提供的该方案对于软、硬件资源的要求大大降低。可见,相比于现有技术中提供的组件替换方式,本发明实施例提供的该方案在资源需求量上有较大的优势,因此相对于组件替换方式被称为“对称式服务替代技术”,本发明实施例提供的方案也可以称为“非对称式虚拟服务替代技术”。为了详细说明本发明实施例提供的上述方法所能达到的技术效果,以下以本发明实施例提供的上述方案在实际应用中的一个实现流程(其示意图如图3a所示)为例,对方案的具体应用进行介绍。其中,图3a中的各步骤与SOA的对应关系示意图请参照图3b。以下重点介绍图3a中包含的各步骤。
步骤31,在主用ESB服务器被停用(比如发生故障而自行停用)时,执行启用备用虚拟ESB服务器的操作;在本发明实施例中,在主用ESB服务器被停用时,可以由操作者手动执行启用备用虚拟ESB服务器的操作,也可以设置不同于主用ESB服务器和备用虚拟ESB服务器的一个第三方监控设备来实现启用备用虚拟ESB服务器。具体地,该第三方监控设备(比如可以称为接管执行设备)可以分别与主用ESB服务器和备用虚拟ESB服务器相连接,并对主用ESB服务器和备用虚拟ESB服务器的状态进行监控,一旦监控到主用ESB服务器停用后,就执行启用备用虚拟ESB服务器的操作。一般地,启用备用虚拟ESB服务器的操作即为将备用虚拟ESB服务器的状态由待机状态(或休眠状态等)设置为工作状态,可以通过接管执行设备向备用虚拟ESB服务器发送启用指令的方式,触发备用虚拟ESB服务器将自身的状态设置为工作状态。为了便于描述,本发明实施例中将主用ESB服务器被停用从而启用备用虚拟ESB服务器的过程称为“对主用ESB服务器的接管”。对主用ESB服务器的接管示意图请参照图3c。在完成对主用ESB服务器的接管后,服务信息调用方根据主用ESB服务器的接口地址 发送服务调用请求消息时,由于主用ESB服务器和备用虚拟ESB服务器共用的是同一接口地址,因此,该服务调用请求消息会自动转到当前被启用的备用虚拟ESB服务器。该过程详见下述步骤。步骤32,服务信息调用方在利用Java对基于XML格式的服务信息调用请求消息进行转换后,根据主用ESB服务器的接口地址,基于RMI模式将转换后得到的服务信息调用请求消息提供给备用虚拟ESB服务器;一般地,用专门用于描述服务信息的XML格式的网络服务描述语言(WSDL,WebServices Description Language)描述的服务信息提供方的地址等信息可以如下表I所示表I :
用WSDL描述的服务信息提供方地址等信息
<wsdl: service name= "TrainingServiceImport">
<soap:address location=
"http://10.4.121.124:9080/CMBJ_HRWcb/scmccs/TrainingScrviccImport2_TrainingScndccHttpPort"/>
</wsdl:service>而用WSDL描述的面向服务信息调用方的备用虚拟ESB服务器的地址等信息可以如下表2所示表2
用WSDL描述的备用虚拟ESB服务器的地址等信息
权利要求
1.一种服务信息的调用方法,其特征在于,包括 在主用企业服务总线ESB服务器停用后,被设置为处于工作状态的备用虚拟ESB服务器接收服务调用方根据主用ESB服务器的地址并基于远程方法调用RMI模式提供的服务信息调用请求消息;其中,所述服务信息调用请求消息是利用Java对基于标准通用标记语言SGML的服务信息调用请求消息进行转换后得到的,所述备用虚拟ESB服务器的地址与主用ESB服务器的地址相同; 备用虚拟ESB服务器获得所述服务调用方提供的服务信息调用请求消息中包含的服务信息标识和服务调用方标识;以及 基于RMI模式,将所述服务信息标识提供给服务提供方; 获得服务提供方根据所述服务信息标识获得并基于RMI模式提供的服务信息;并 基于RMI模式,将获得的服务信息提供给所述服务调用方标识指示的服务调用方。
2.如权利要求I所述的方法,其特征在于,基于RMI模式,将所述服务信息标识提供给服务提供方,具体包括 备用虚拟ESB服务器判断预先存储的服务提供方所能识别的服务信息标识中是否包含获得的服务信息标识;以及 在判断结果为否时,根据预先存储的服务调用方所能识别的服务信息的标识与服务提供方所能识别的服务信息的标识的对应关系,将获得的服务信息标识转换为服务提供方所能识别的服务信息标识后提供给服务提供方;以及 在判断结果为是时,将获得的服务信息标识提供给服务提供方。
3.如权利要求I所述的方法,其特征在于,备用虚拟ESB服务器基于RMI模式,将获得的服务信息提供给服务调用方,具体包括 备用虚拟ESB服务器根据预先获得的服务调用方所能识别的服务信息的属性,对获得的服务信息进行转换后,基于RMI模式提供给服务调用方。
4.如权利要求I所述的方法,其特征在于,通过下述步骤设置所述备用虚拟ESB服务器处于工作状态 备用虚拟ESB服务器监听启用指令;并 在监听到所述启用指令后,将自身的状态设置为工作状态。
5.一种企业服务总线服务器,其特征在于,包括 消息接收单元,用于在主用企业服务总线ESB服务器停用、且所述ESB服务器被设置为处于工作状态后,接收服务调用方根据主用ESB服务器的地址并基于远程方法调用RMI模式提供的服务信息调用请求消息;其中,所述服务信息调用请求消息是利用Java对基于标准通用标记语言SGML的服务信息调用请求消息进行转换后得到的,所述ESB服务器的地址与主用ESB服务器的地址相同; 标识获得单元,用于获得消息接收单元接收到的服务信息调用请求消息中包含的服务信息标识和服务调用方标识; 服务信息标识提供单元,用于基于RMI模式,将标识获得单元获得的服务信息标识提供给服务提供方; 服务信息获得单元,用于获得服务提供方根据服务信息标识提供单元提供的服务信息标识,获得并基于RMI模式提供的服务信息;服务信息提供单元,用于基于RMI模式,将服务信息获得单元获得的服务信息提供给标识获得单元获得的服务调用方标识指示的服务调用方。
6.如权利要求5所述的企业服务总线服务器,其特征在于,所述服务信息标识提供单元具体包括 判断模块,用于判断预先存储的服务提供方所能识别的服务信息标识中是否包含获得的服务信息标识;以及 转换模块,用于在判断模块得到的判断结果为否时,根据预先存储的服务调用方所能识别的服务信息的标识与服务提供方所能识别的服务信息的标识的对应关系,将获得的服务信息标识转换为服务提供方所能识别的服务信息标识; 提供模块,用于将转换模块转换得到的服务信息标识提供给服务提供方;以及在判断模块得到的判断结果为是时,将获得的服务信息标识提供给服务提供方。
7.如权利要求5所述的企业服务总线服务器,其特征在于,所述服务信息提供单元具体包括 转换模块,用于根据预先获得的服务调用方所能识别的服务信息的属性,对获得的服务信息进行转换; 提供模块,用于基于RMI模式,将经转换模块转换后的服务信息提供给服务调用方。
8.如权利要求5所述的企业服务总线服务器,其特征在于,通过下述单元设置所述工作状态 监听单元,用于在消息接收单元接收所述服务信息调用请求消息之前,监听启用指令; 状态设置单元,用于在监听单元监听到所述启用指令后,将所述ESB服务器的状态设置为工作状态。
9.一种服务信息的调用系统,包括服务信息调用方和服务信息提供方,其特征在于,还包括与主用企业服务总线ESB服务器地址相同的备用虚拟ESB服务器,其中 服务信息调用方,用于根据主用ESB服务器的地址,基于远程方法调用RMI模式提供服务信息调用请求消息,其中,所述服务信息调用请求是利用Java对基于标准通用标记语言SGML的服务信息调用请求消息进行转换后得到的; 备用虚拟ESB服务器,用于接收所述服务信息调用请求消息,并获得所述服务信息调用请求消息中包含的服务信息标识和服务调用方标识;以及基于RMI模式,将所述服务信息标识提供给服务提供方;并获得服务提供方基于RMI模式提供的服务信息;以及基于RMI模式,将获得的服务信息提供给所述服务调用方标识指示的服务调用方; 服务调用方,用于获取虚拟ESB服务器提供的所述服务信息标识所指示的服务信息,并基于RMI模式,将获取的服务信息提供给虚拟ESB服务器。
10.如权利要求9所述的系统,其特征在于,所述备用虚拟ESB服务器基于RMI模式,将所述服务信息标识提供给服务提供方,具体包括 备用虚拟ESB服务器判断预先存储的服务提供方所能识别的服务信息标识中是否包含获得的服务信息标识;以及 在判断结果为否时,根据预先存储的服务调用方所能识别的服务信息的标识与服务提供方所能识别的服务信息的标识的对应关系,将获得的服务信息标识转换为服务提供方所能识别的服务信息标识后提供给服务提供方;以及 在判断结果为是时,将获得的服务信息标识提供给服务提供方。
全文摘要
本发明公开了一种服务信息的调用方法和系统,以解决现有技术提供的故障转移技术存在的对软、硬件资源需求量较大的问题。方法包括备用虚拟ESB服务器接收服务调用方根据主用ESB服务器的地址并基于远程方法调用RMI模式提供的服务信息调用请求消息;备用虚拟ESB服务器获得所述服务调用方提供的服务信息调用请求消息中包含的服务信息标识和服务调用方标识;以及基于RMI模式,将所述服务信息标识提供给服务提供方;获得服务提供方根据所述服务信息标识获得并基于RMI模式提供的服务信息;并基于RMI模式,将获得的服务信息提供给所述服务调用方标识指示的服务调用方。本发明还公开一种企业服务总线服务器。
文档编号H04L12/24GK102790684SQ20111012558
公开日2012年11月21日 申请日期2011年5月16日 优先权日2011年5月16日
发明者丁健, 刘列明, 张达, 徐非, 李增辉, 李霞, 苗桥, 高鹰 申请人:中国移动通信集团北京有限公司