专利名称:面向企业服务总线的动态服务路由方法及装置的制作方法
技术领域:
本发明涉及面向服务架构技术领域,尤其涉及基于企业服务总线的具有可靠动态消息传递能力的路由技术。
背景技术:
近年来,企业中业务流程的变更日益频繁,新的业务的增加、旧有业务的变更等诸多因素对企业中的遗留系统提出了更高的要求,包括新旧应用系统之间的整合,各部门间的信息通讯和数据共享,成为企业集成企业资源,建立核心竞争力的首要任务,企业应用集成成为必然。在企业应用集成相关技术思想逐步发展过程中,面向服务的体系架构(Service-Oriented Architecture, SOA)为企业应用集成指明了发展方向。而企业服务总线(Enterprise Service Bus, ESB)提供了一套利用中间件技术在面向服务架构中使能服务的基础功能,是实现面向服务架构的核心基础,是集成各服务的中心纽带,使基于总线实现面向服务的应用集成成为一种更灵活的企业应用集成模式。其中,服务路由是企业服务总线的核心功能,是基于总线的服务架构实现服务集成的前提,负责实现服务间的消息传递,支持服务集成和协同。基于企业服务总线的支持,服务调用实现了服务请求者和提供者的松藕合。服务请求者不再关注对服务的直接访问,而是发送服务请求消息给企业服务总线,企业服务总线接收服务请求,并交由服务路由系统处理该请求,绑定服务提供者。服务路由系统负责服务绑定,数据格式转化,负载平衡等一系列相关工作,为用户定位服务提供者,实现透明的服务访问;通过服务总线对服务的管理,服务请求者不需要再关注每个服务的具体执行,仅需与服务总线交互即可完成服务访问,屏蔽了服务访问的异构性;借助动态服务路由,服务平台能够灵活的控制服务间消息的传递同时,对服务提供者执行状态进行监测,在服务发生异常时,实现服务重定向以及服务随规模扩展后的重新路由等,最大限度地保证服务平台能够对用户提供连续的服务质量,提高了服务的可靠性。同时,利用服务状态监测和记录,服务平台还能够统计各服务的运行数据,作为服务选择等服务互操作的决策依据。但是目前大多数企业服务总线缺乏对动态路由的支持,目前的服务路由也不能承载服务的动态选择、服务容错等服务集成要求。针对服务路由的研究还比较少,点对点的紧藕合传输、配置型静态路由仍旧是各总线消息传递的主要工作方式,而且由于路由过程需要用户手动干预。随着企业业务流程频繁的变化,手动组织业务流程变成一个繁杂的任务,在很大程度上限制了服务的动态绑定和集成。因此,迫切需要ESB具有动态组织业务流程的能力。同时对于同一个服务可能会有若干个实现,如何从这些实现中找到一个最优的实现也是通过ESB来完成的,这需要ESB具有动态绑定的功能。所以具有松藕合结构,能够动态绑定服务,具有动态路由的能力,支持鲁棒的服务容错,适应分布式异构网络环境的动态服务路由技术是迫在眉睫
发明内容
本发明为了解决上述问题,提供了一种面向企业服务总线的动态服务路由方法及装置,具有松藕合结构,能够动态绑定服务,具有动态路由的能力,支持鲁棒的服务容错,适应分布式异构网络环境,大大提高企业服务总线的工作效率。为实现上述技术目的,本发明采用的技术方案是一种面向企业服务总线的动态服务路由方法,包括以下步骤服务虚拟化步骤将现实服务资源进行统一管理形成拥有基于Web服务定义语言(Web Service Description Language, WSDL)的标准接口描述的物理服务,并通过接口描述和映射规则实现将物理服务虚拟化表示为服务单元,服务单元经服务注册进入服务组件库,服务单元实现对物理服务与企业服务总线的绑定;业务流程逻辑化步骤企业用户根据业务流程需求,通过业务流程建模,定义实现业务的逻辑服务内容,形成业务流程对应的逻辑服务,由逻辑服务发起业务流程的服务请求;动态服务路由选择步骤从服务请求者接收服务请求,针对逻辑服务中对服务节点的描述,根据业务活动的内容和性能要求,启用动态路由选择机制从服务组件库中选取合适的服务单元,作为对服务节点的服务执行者。进一步的,所述方法在动态服务路由步骤之后,还包括服务执行步骤被选中的服务单元负责绑定物理服务,完成对业务流程中业务活动的执行,以实现逻辑服务的功能。优选的,服务虚拟化步骤中,物理服务能独立完成一定的业务功能,是服务交互过程中真正的服务提供者。优选的,所述逻辑服务由包括LB、LN和LF的三元组构成,其中LB表示逻辑服务LS的基本信息,LN描述逻辑服务的功能,描述逻辑服务功能内容,LF表示逻辑服务的非功能属性集合。优选的,在动态服务路由选择步骤中,通过服务容错机制实现服务单元选择;在服务提供步骤中,如果服务节点的执行发生异常,则服务容错机制利用服务替换或双冗余服务访问,保证服务单元执行的有效性。本发明的另一个目的是,提供一种面向企业服务总线的动态服务路由装置,包括服务虚拟化模块,用于将现实服务资源进行统一管理形成拥有基于WSDL的标准接口描述的物理服务,并通过接口描述和映射规则实现将物理服务虚拟化表示为服务单元,服务单元经服务注册进入服务组件库,服务单元实现对物理服务与企业服务总线的绑定;业务流程逻辑化模块,用于供企业用户根据业务流程需求,通过业务流程建模,定义实现业务应用的逻辑服务内容,形成业务流程对应的逻辑服务,并用于逻辑服务发起业务流程的服务请求;动态服务路由选择模块,用于接收逻辑服务的服务请求,针对逻辑服务中对服务节点的描述,根据业务活动的内容和性能要求,启用动态路由选择机制从服务组件库中选取合适的服务单元,作为对服务节点的服务执行者;服务执行模块用于被选中的服务单元根据绑定物理服务,完成对业务流程中业务活动的执行,以实现逻辑服务的功能。
进一步的,所述动态服务路由选择模块,包括消息增容器,用于接收服务请求消息,并根据系统的运行时序,产生唯一的任务标识码,然后将原始服务请求内容和任务标识码发送给服务选择器;服务选择器,用于接收消息增容器的服务消息,按照其中的服务描述,从服务组件库中寻找合适的服务单元,生成多个服务单元的备选服务列表,并将服务请求信息及其任务标识码存储在数据库中;然后,将发送任务标识码和备选服务列表,以及原始服务请求消息给动态过滤器;动态过滤器,用于接收服务选择器传递来的信息,从备选服务列表中选择第一个服务单元作为访问对象,然后,根据任务标识码暂存备选服务列表,声明服务状态监测器的位置,启用服务状态监测器监测服务单元的工作状态。最后,发送任务标识码、服务单元信息、原始服务请求信息给动态路由选择器;动态路由选择器,用于接收动态过滤器的服务消息,如果其中无有效服务单元信息,就通知服务状态监测器中止服务调用;反之,就发送服务请求信息给该服务单元,并通知服务状态监测器监测该服务单元的执行状态;服务状态监测器,用于接收动态过滤器或动态路由选择器的服务消息,用于对选择的服务单元的执行状态进行监测,并监听该服务单元的消息输出通道的服务响应消息。具体的,所述服务状态检测器还用于分析需要监测的服务单元的信息和任务标识码,如果在该服务单元执行过程中发现服务访问异常的情况,则利用动态路由组件的协同,通过动态变更服务访问对象,继续服务调用。优选的,所述服务状态检测器,还用于判断在允许的系统时间内是否成功返回响应消息,如是则将该消息发送给服务交互接口,结束服务调用和监测过程;否则,修改该服务单元在服务组件库中的工作状态记录,通知动态过滤器根据任务标识码从备选列表中选取第二个服务单元,启动对其的访问,进行新一轮服务监测,直至接收到服务响应消息或被选服务列表中所有服务单元全部调用完;如果备选服务列表中的所有服务单元都被访问,仍无响应结果则通知服务选择器,在原有的服务请求和任务标识码的参照下,启动第二轮服务选择。具体的,所述动态服务路由选择模块还包括服务结果比较器,用于收集具有相同的接口描述和服务功能的两个服务的响应结果,以判断两个响应结果是否存在不同;如果发现两个服务响应结果不同,则证明服务中至少有一个服务发生了异常,服务结果比较器就结合循环冗余容错算法和校验筛选服务容错算法,对服务响应结果的输出进行处理。本发明的有益效果包括本发明提出的面向企业服务总线的动态服务路由方法和装置,关注服务路由的动态性和可靠性。通过服务单元对物理服务的虚拟化,实现了服务请求者和服务提供者的松藕合;通过综合利用如动态消息聚合器,动态消息分离器,动态WireTap等多种类型的消息路由组件,完成了基于动态服务替换和服务容错(Fault Toleranceof Service)的可靠路由方法,在实现服务间多策略的消息传递的同时,对服务进行容错处理,提高服务的可靠性。
图1是本发明提供的面向企业服务总线的动态服务路由方法流程图2是本发明实施例提供的面向企业服务总线的动态服务路由装置的结构框图;图3是本发明实施例提供的动态服务路由选择模块的结构框图;图4是为本发明实施例提供的动态服务路由选择模块基于服务替换和服务容错的动态服务路由工作流程图。
具体实施例方式下面结合附图和具体实施例对本发明作进一步说明。参见图1,为本发明提供的面向企业服务总线的动态服务路由方法流程图。本发明的面向企业服务总线的动态服务路由方法,包括以下三个步骤步骤101,服务虚拟化步骤将现实服务资源进行统一管理形成拥有基于Web服务定义语言WSDL的标准接口描述的物理服务,并通过接口描述和映射规则实现将物理服务虚拟化表示为服务单元,服务单元经服务注册进入服务组件库,服务单元实现对物理服务与企业服务总线的绑定。服务虚拟化是服务集成领域的一项重要技术,其目的在于保留服务原功能不变的前提下,通过抽象手段,使之成为虚拟的服务,实现服务请求者和服务提供者的松耦合。具体包括如下4个步骤1)资源服务化封装,企业现实服务资源具有分布式,多模式和多样性等特点,对其的服务化封装是服务平台需要首先解决的问题。现实服务资源经过服务使能技术的封装,成为可被发现、被调用的物理服务。物理服务拥有基于WSDL(Web Service DescriptionLanguage)的标准接口描述,本质上是一种软件组件,是服务交互过程中真正的服务提供者。现实服务资源经过服务使能技术的封装,成为可被发现、被调用的物理服务。物理服务拥有基于WSDL的标准接口描述,能独立完成一定的业务功能,是服务交互过程中真正的服务提供者。服务和封装结束后,物理服务通过服务注册进入服务组件库,供服务请求者查询和访问。物理服务是一种仃层面的服务定义。本质上,物理服务是一种软件组件,是对某种客观存在的计算资源的服务化表现,是业务逻辑的真正提供者。2)构建服务单元,通过接口描述和映射规则实现物理服务的虚拟化表示为服务单元,组成结构主要包括服务端点(Service Endpoint),服务接口,服务绑定等。3)服务注册,服务单元经服务注册进入服务组件库,供服务请求者查询和调用。服务组件负责存储物理服务和服务单元,服务组件库的实现采用服务提供者的形式。4)服务绑定,服务单元实现对物理服务与企业服务总线的绑定,同时可以对物理服务的调用添加辅助功能,是传递服务消息的前提,支持不同的通讯协议。服务绑定,是指物理服务与企业服务总线的绑定,它是基于服务总线访问服务,传递服务消息的前提条件。服务总线中的服务绑定,实现了多种支持不同通讯协议的服务绑定组件,这些服务绑定组件能够实现物理服务与服务总线的绑定,既从总线内部传递服务消息到物理服务,同时也返回物理服务的响应结果到服务总线。服务绑定支持不同的通讯协议,相同通讯协议的物理服务,可以使用相同的服务绑定组件;新的通讯协议通过服务绑定组件的插件式增加得到支持。服务虚拟化解决了底层物理服务到标准化的服务单元的封装转换过程。服务单元是虚拟的服务,是服务虚拟化的目标,是经过服务化封装、功能聚类、转换等服务虚拟化操作后实现的对物理服务的虚拟映射。服务单元本身并不具有实际的业务处理能力,仅通过接口描述和映射规则实现物理服务的虚拟化表示。通过绑定匹配的物理服务,服务单元可以实现具体的业务处理。服务单元可以作为物理服务的代理接收服务调用,参加服务协同等服务活动。通过控制服务单元,服务总线可以控制物理服务;通过控制服务单元的协同,企业服务总线可以控制不同物理服务之间的信息流传递,进而完成服务协同。服务单元最终注册进入服务组件库,如普通服务一样接受查询和调用。步骤102,业务流程逻辑化步骤企业用户根据业务流程需求,通过业务流程建模,定义实现业务的逻辑服务内容,形成业务流程对应的逻辑服务,由逻辑服务发起业务流程的服务请求。本步骤中,企业用户根据现实业务的流程需求,进行业务流程建模,定义实现业务的逻辑服务内容,包括业务活动之间的顺序以及交互方式,得到业务流程。通过对存在的物理服务使用聚类、抽象等虚拟化操作,抽象出的业务功能的逻辑表示。所述服务节点相当于服务的物理视图,是实际服务组件。而逻辑服务相当于逻辑视图,是对具体某些个服务的排列组合以及封装调用。用户看到的是逻辑视图,而实际是由系统排列组装了若干个服务节点给用户调用。一个业务流程对应一个逻辑视图。所以逻辑服务是对具体应用的抽象描述,动态服务路由模型中担任服务请求者的角色。逻辑服务本身并不具备实际的业务处理能力,需要依靠物理服务的绑定才能够完成自身的业务功能。逻辑服务LS由一个三元组构成,即LS= (LB,LF,LN),其中LB表示逻辑服务LS的基本信息、,LN描述逻辑服务的功能,描述逻辑服务功能内容,LF(Logical form,这里用逻辑程序的缩写指代LNLF)表示逻辑服务的非功能属性集合,如性能,可靠性,可用性等。步骤103,动态服务路由选择步骤从服务请求者接收服务请求,针对逻辑服务中对服务节点的描述,根据业务活动的内容和性能要求,启用动态路由选择机制从服务组件库中选取合适的服务单元,作为对服务节点的服务执行者。本步骤具体包括如下5个步骤1)消息增容器接收服务请求消息,并根据系统的运行时序,产生唯一的任务标识码((Task-ID)。然后,将其包含的原始服务请求内容和任务标识码发送给服务选择器。2)服务选择器首先接收服务消息,按照其中的服务描述,从服务组件库中寻找合适的服务单元,生成多个服务单元的备选服务列表,并将服务请求信息及其任务标识码存储在数据库中。然后,将发送任务标识码和备选服务列表,以及原始服务请求消息给动态过
1 ' O3)动态过滤选择器接收传递来的信息,选择备选服务列表中的第一个服务单元作为访问对象。然后,根据任务标识码暂存备选服务列表,声明服务状态监测器的位置,启用服务状态监测器监测服务单元的工作状态。最后,发送任务标识码、服务单元信息、原始服务请求信息给动态路由选择器。4)动态路由选择器接收服务消息,如果其中无有效服务单元信息,就通知服务状态监测器(InListener)中止服务调用;反之,就发送服务请求信息给该服务单元,并通知服务状态监测器监测该服务单元的执行状态。5)服务状态监测器接收服务消息,分析需要监测的服务单元的信息和任务标识码,并监听该服务单元的消息输出通道的服务响应消息。本步骤中,首先从服务请求者接收服务请求,经过多策略,多模式的路由,传递服务请求消息给服务提供者,依靠多种不同功能的路由组件,实现服务的动态访问和消息传递。通常,不同服务路由组件具有不同的消息传递能力,通过综合运用各路由组件参与路由,动态服务路由系统可以实现多种功能,主要包括基于服务替换的可靠路由,基于服务容错的可靠路由。参见图2,是本发明实施例提供的面向企业服务总线的动态服务路由装置的结构框图,包括服务虚拟化模块201,用于将现实服务资源进行统一管理形成拥有Web服务定义语言WSDL的标准接口描述的物理服务,并通过接口描述和映射规则实现将物理服务虚拟化表示为服务单元,服务单元经服务注册进入服务组件库,服务单元实现对物理服务与企业服务总线的绑定;还用于被选中的服务单元根据绑定物理服务,完成对业务流程中业务活动的执行,以实现逻辑服务的功能.业务流程逻辑化模块202,用于供企业用户根据业务流程需求,通过业务流程建模,定义实现业务应用的逻辑服务内容,形成业务流程对应的逻辑服务,并用于逻辑服务发起业务流程的服务请求;本模块首先从服务请求者接收服务请求,经过多策略,多模式的路由,传递服务请求消息给服务提供者,通过综合利用如动态消息聚合器,动态消息分离器, 动态Wire Tap等多种类型的消息路由组件,完成了基于动态服务替换和服务容错(Fault Tolerance of Service)的可靠路由方法。动态服务路由选择模块203,用于接收逻辑服务的服务请求,针对逻辑服务中对服务节点的描述,根据业务活动的内容和性能要求,启用动态路由选择机制从服务组件库中选取合适的服务单元,作为对服务节点的服务执行者。参见图3,为本发明实施例提供的动态服务路由选择模块的结构框图,包括消息增容器301,用于接收服务请求消息,并根据系统的运行时序,产生唯一的任务标识码,然后将原始服务请求内容和任务标识码发送给服务选择器;服务选择器302,用于接收消息增容器的服务消息,按照其中的服务描述,从服务组件库中寻找合适的服务单元,生成多个服务单元的备选服务列表,并将服务请求信息及其任务标识码存储在数据库中;然后,将发送任务标识码和备选服务列表,以及原始服务请求消息给动态过滤器;动态过滤器303,用于接收服务选择器传递来的信息,从备选服务列表中选择第一个服务单元作为访问对象,然后,根据任务标识码暂存备选服务列表,声明服务状态监测器的位置,启用服务状态监测器监测服务单元的工作状态。最后,发送任务标识码、服务单元信息、原始服务请求信息给动态路由选择器;动态路由选择器304,用于接收动态过滤器的服务消息,如果其中无有效服务单元信息,就通知服务状态监测器中止服务调用;反之,就发送服务请求信息给该服务单元,并通知服务状态监测器监测该服务单元的执行状态;服务状态监测器305,用于接收动态过滤器或动态路由选择器的服务消息,用于对选择的服务单元的执行状态进行监测,并监听该服务单元的消息输出通道的服务响应消肩、ο参见图4,为本发明实施例提供的动态服务路由选择模块基于服务替换和服务容错的动态服务路由工作流程图。基于服务替换的可靠路由,旨在利用服务替换的方法处理消息路由路径上服务节点的异常。动态服务路由可以灵活控制服务间消息的传递,而服务消息的传递,又是服务调用和互操作的基础。因此,通过控制消息传递,可以控制服务的交互和协同。利用服务选择器,动态选择服务执行者,实现服务的动态绑定。然后,利用服务状态检测器对选择的服务提供者的执行状态进行监测。如果在该服务执行过程中发现服务访问异常的情况,则利用动态路由组件的协同,实现对异常服务的替换,使得服务系统即使是在服务错误发生的情况下,仍然可以通过动态变更服务访问对象,继续服务调用,进而完成服务协同,实现了基于服务替换的可靠路由,提高了服务访问的有效率。具体服务动态替换过程如下a)由服务状态监测器承载和执行。若在允许的系统时间内成功返回响应消息,则将该消息发送给服务交互接口,结束服务调用和监测过程;反之,修改该服务单元在服务组件库中的工作状态记录,通知动态过滤器根据任务标识码从备选列表中选取第二个服务单元,启动对其的访问,进行新一轮服务监测,直至接收到服务响应消息或被选服务列表中所有服务单元全部调用完。b)如果备选服务列表中的所有服务单元都被访问,仍无响应结果则通知服务选择器,在原有的服务请求和任务标识码的参照下,启动第二轮服务选择。这样的调用、监测重复执行,直至得到需要的响应结果或无法在服务组件库中搜索到可用的服务单元为止。通过对服务组件库中服务工作状态的记录,系统管理员可以查询失效的服务,对其进行修正。可靠路由的性能分析假设面向服务系统中服务的总数量为η。其中,有效状态的服务数量占服务总数量的比例为P,无效服务占服务总数量的比例为1 一P ;即有效服务数量为η*Ρ ;无效服务的数量为η*(1 — P)。设置一个参数3,如果3=0,则是服务选择器的第一次服务选择;如果服务选择需要进行,第一轮的三个备选服务全部失效。假设Pl为普通路由模式中服务调用成功的概率,设Ρ2为可靠路由系统中服务调用成功的概率,则^1 = ^/^,5 = 0,1,2...Ρ2 = 1-C(3 (W9) ICUd,5 = 0,1,2...可以看出随着服务查询轮次的增加,S叻的增大,可靠动态服务路由系统的服务调用有效性,比普通路由系统具有更明显的优势。服务容错技术是指动态服务路由系统利用多种动态消息路由组件,实现服务的双冗余访问。确定服务访问的对象目标服务及其副本服务。两个服务具有相同的接口描述, 服务功能,仅在运行空间上有所不同,通过动态消息路由器实现对它们的同步访问。然后, 利用服务结果比较器收集两个服务的响应结果,以判断两个响应结果是否存在不同。如果发现两个服务响应结果不同,则证明服务中至少有一个服务发生了异常,服务结果比较器就结合循环冗余容错算法和校验筛选服务容错算法,对服务响应结果的输出进行处理,从而保证路由路径中服务节点的可靠性和路由路径的完整性,实现可靠的服务路由。双冗余服务容错针对每个服务单元的描述,动态路由系统对其提供双冗余的服务容错功能。需要两个服务的参与,即两个服务副本Service A (服务提供者)与krvice B(代A的副本)。服务A的输入参数的集合用^i(A)来表示,输出数据的集合用out (A)表示。^i(A)可以为空,而一般OUt(A)不为空。输出的数据Out(A)可以被看作是服务A的结果。Out(A)与Out (B)由比较器Comparator比较a) Out (A) = Out⑶,容错系统结束监测退出;b) Out (A) Φ Out (B),A和B就被重新运算直到out (A)和out (B)相等或系统时间溢出为止;并将最终响应结果输出给服务交互接口。
双冗余容错性能分析误报率是指实际上没有出现任何错误,但是双冗余服务容错系统却仍然报告发现错误的概率。漏报率是指出现了错误,但是双冗余服务容错系统却报告没有发现错误的概率。在双冗余服务容错系统中,错误检测的误报率是0,而漏报率识小于一个小概率事件的概率,即
权利要求
1.面向企业服务总线的动态服务路由方法,其特征在于,包括以下步骤服务虚拟化步骤将现实服务资源进行统一管理形成拥有基于Web服务定义语言WSDL的标准接口描述的物理服务,并通过接口描述和映射规则实现将物理服务虚拟化表示为服务单元,服务单元经服务注册进入服务组件库,服务单元实现对物理服务与企业服务总线的绑定;业务流程逻辑化步骤企业用户根据业务流程需求,通过业务流程建模,定义实现业务的逻辑服务内容,形成业务流程对应的逻辑服务,由逻辑服务发起业务流程的服务请求;动态服务路由选择步骤从服务请求者接收服务请求,针对逻辑服务中对服务节点的描述,根据业务活动的内容和性能要求,启用动态路由选择机制从服务组件库中选取合适的服务单元,作为对服务节点的服务执行者。
2.根据权利要求1所述的方法,其特征在于,在动态服务路由步骤之后,还包括服务执行步骤被选中的服务单元负责绑定物理服务,完成对业务流程中业务活动的执行,以实现逻辑服务的功能。
3.根据权利要求1所述的方法,其特征在于,所述服务虚拟化步骤中,物理服务能独立完成一定的业务功能,是服务交互过程中真正的服务提供者。
4.根据权利要求1所述的方法,其特征在于,所述逻辑服务由包括LB、LN和LF的三元组构成,其中LB表示逻辑服务LS的基本信息,LN描述逻辑服务的功能,描述逻辑服务功能内容,LF表示逻辑服务的非功能属性集合。
5.根据权利要求1所述的方法,其特征在于,在动态服务路由选择步骤中,通过服务容错机制实现服务单元选择;在服务提供步骤中,如果服务节点的执行发生异常,则服务容错机制利用服务替换或双冗余服务访问,保证服务单元执行的有效性。
6.面向企业服务总线的动态服务路由装置,其特征在于,包括服务虚拟化模块,用于将现实服务资源进行统一管理形成拥有Web服务定义语言WSDL的标准接口描述的物理服务,并通过接口描述和映射规则实现将物理服务虚拟化表示为服务单元,服务单元经服务注册进入服务组件库,服务单元实现对物理服务与企业服务总线的绑定;还用于被选中的服务单元根据绑定物理服务,完成对业务流程中业务活动的执行,以实现逻辑服务的功能;业务流程逻辑化模块,用于供企业用户根据业务流程需求,通过业务流程建模,定义实现业务应用的逻辑服务内容,形成业务流程对应的逻辑服务,并用于逻辑服务发起业务流程的服务请求;动态服务路由选择模块,用于接收逻辑服务的服务请求,针对逻辑服务中对服务节点的描述,根据业务活动的内容和性能要求,启用动态路由选择机制从服务组件库中选取合适的服务单元,作为对服务节点的服务执行者。
7.根据权利要求6所述的装置,其特征在于,所述动态服务路由选择模块,包括消息增容器,用于接收服务请求消息,并根据系统的运行时序,产生唯一的任务标识码,然后将原始服务请求内容和任务标识码发送给服务选择器;服务选择器,用于接收消息增容器的服务消息,按照其中的服务描述,从服务组件库中寻找合适的服务单元,生成多个服务单元的备选服务列表,并将服务请求信息及其任务标识码存储在数据库中;然后,将发送任务标识码和备选服务列表,以及原始服务请求消息给动态过滤器;动态过滤器,用于接收服务选择器传递来的信息,从备选服务列表中选择第一个服务单元作为访问对象,然后,根据任务标识码暂存备选服务列表,声明服务状态监测器的位置,启用服务状态监测器监测服务单元的工作状态。最后,发送任务标识码、服务单元信息、原始服务请求信息给动态路由选择(此处的“动态路由选择器”针对“动态服务路由选择模块”所提出,这里引用“动态路由选择器”的意义在于让文档的评阅人更直观地联想“动态服务路由选择模块”所提供的功能);动态路由选择器,用于接收动态过滤器的服务消息,如果其中无有效服务单元信息,就通知服务状态监测器中止服务调用;反之,就发送服务请求信息给该服务单元,并通知服务状态监测器监测该服务单元的执行状态;服务状态监测器,用于接收动态过滤器或动态路由选择器的服务消息,用于对选择的服务单元的执行状态进行监测,并监听该服务单元的消息输出通道的服务响应消息。
8.根据权利要求7述的装置,其特征在于,所述服务状态检测器还用于分析需要监测的服务单元的信息和任务标识码,如果在该服务单元执行过程中发现服务访问异常的情况,则利用动态路由组件的协同,通过动态变更服务访问对象,继续服务调用。
9.根据要求8所述的装置,其特征在于,所述服务状态检测器,还用于判断在允许的系统时间内是否成功返回响应消息,如是则将该消息发送给服务交互接口,结束服务调用和监测过程;否则,修改该服务单元在服务组件库中的工作状态记录,通知动态过滤器根据任务标识码从备选列表中选取第二个服务单元,启动对其的访问,进行新一轮服务监测,直至接收到服务响应消息或被选服务列表中所有服务单元全部调用完;如果备选服务列表中的所有服务单元都被访问,仍无响应结果则通知服务选择器,在原有的服务请求和任务标识码的参照下,启动第二轮服务选择。
10.根据权利要求7-9任一项所述的装置,其特征在于,所述动态服务路由选择模块还包括服务结果比较器,用于收集具有相同的接口描述和服务功能的两个服务的响应结果,以判断两个响应结果是否存在不同;如果发现两个服务响应结果不同,则证明服务中至少有一个服务发生了异常,服务结果比较器就结合循环冗余容错算法和校验筛选服务容错算法,对服务响应结果的输出进行处理。
全文摘要
本发明提供了一种面向企业服务总线的动态服务路由器,通过服务单元对物理服务的虚拟化,实现了服务请求者和服务提供者的松藕合;通过综合利用动态消息聚合器,动态消息分离器等多种类型的消息路由组件,完成了基于动态服务替换和服务容错的可靠路由方法,在实现服务间多策略的消息传递的同时,对服务进行容错处理,提高服务的可靠性。本发明可应用在面向服务架构(SOA)的平台及系统中,可大大提高SOA中企业服务总线(ESB)的工作效率。
文档编号H04L12/56GK102387075SQ20111031692
公开日2012年3月21日 申请日期2011年10月18日 优先权日2011年10月18日
发明者唐雪飞, 李应洪, 汪海良, 陈科 申请人:成都康赛电子科大信息技术有限责任公司