在SOA的总线型架构中,服务总线处于总体架构的核心位置,是连接银行不同应用的枢纽,银行的不同应用通过服务总线连接共享服务,服务之间的接口独立于实现服务的硬件平台、操作系统以及编程语言。
服务总线应更多地关注于解决实时或准实时的服务请求,同时具备一定的小文件交换功能,应用系统间批量数据交换通常通过数据交换总线完成,而不通过服务总线。
服务总线的架构设计,通常要制定集成原则,确定集成模式,明确组合模式等。
1.集成原则
在银行信息系统架构中,不同应用之间的通过服务总线集成,首先要明确集成原则是什么,比如可以制定如下集成原则:
1)服务请求方和服务提供方分布在不同应用分层时,原则上应当通过服务总线进行集成。
2)服务请求方和服务提供方分布在不同应用分组中时,原则上应当通过服务总线进行集成。
3)服务请求方和服务提供方部署在不同的技术平台上,原则上应当通过服务总线进行集成。
4)服务请求方和服务提供方部署在不同的地域时,原则上应当通过服务总线进行集成。
5)多个服务请求方与同一个服务提供方交互时,一般应当通过服务总线进行集成。
6)服务提供方易变性高时,一般应当通过服务总线进行集成。
7)服务请求方和服务提供方属于同一个应用,可以不通过服务总线进行集成。
实际上,具体的应用集成关系,必须考虑服务总线的技术特性和功能特点,对于服务总线不能支持或者支持效果不好的应用之间的集成,可以不通过服务总线进行集成。
2.集成模式
服务总线通常需要支持以下集成模式:
(1)同步、异步以及发布订阅模式 同步模式指服务请求方发起请求后需要等待服务提供方处理完毕后才结束本次处理。异步模式指服务请求方发起请求后,不等待服务提供方的处理即结束本次处理。发布订阅模式指特定主题的客户端都会收到服务端发布的消息。
(2)单向请求以及请求响应模式 单向请求指信息流仅从服务请求方流向服务提供方。请求响应模式指信息流是双向的,请求信息从服务请求方流向服务提供方,响应信息从服务提供方流向服务请求方。
(3)组合模式 组合模式是指通过对后端系统提供的服务进行处理、组合,发布新的服务供服务请求方使用。
3.服务总线的应用架构
从功能组件的角度来描述服务总线的应用架构,一个完善的服务总线应具备接入、调度及路由、接出、服务配置管理、系统配置管理、统一异常管理以及集中监控管理等七种功能或能力。服务总线应用架构如图3-32所示。
(1)接入能力 接入能力包括通信能力、服务交互与数据转换。
1)通信能力。服务总线必须提供通信层来支持和前后端应用的通信,包括标准通信协议以及特定产品相关的协议。标准协议包含HTTP、JMS、SOCKET等,特定产品相关的协议包含MQ消息中间件。
服务总线也应能支持不同的通信模式,基本需要支持的模式包括:请求、应答通信模式,单向请求通信模式以及发布订阅通信模式。
2)服务交互。服务交互指服务总线利用底层的通信协议访问后端应用发布的服务,或是提供服务供前端应用访问的能力。
服务交互包括两部分:一是服务接口定义,这里要强调的是服务接口的定义和底层的通信协议和服务具体实现的松耦合;二是服务的消息模型,一般需要支持SOAP、XML、自定义报文、二进制数据以及对象。若服务定义采用WebService,WebService描述语言(WSDL)会对定义服务交互能力提供了很好的支持。
图3-32 服务总线应用架构
3)数据转换。服务总线一般采用XML作为平台的标准报文实现前端应用和服务总线之间的数据转换。若采用XML,要包含XML向XML的转换、XML向自定义报文的转换、自定义报文向XML的转换、XML向对象的转换与对象向XML的转换。若不采用XML作为标准报文,则转换能力要包含平台报文向XML的转换、平台报文向自定义报文的转换、自定义报文向平台报文的转换、平台报文向对象的转换与对象向平台报文的转换。
(2)调度及路由能力 服务调度机路由能力包括服务路由和服务聚合。(www.xing528.com)
1)服务路由。服务路由完成请求从接入到接出的路由工作,具体能力包含3部分:路由匹配关系,支持1对1路由,1对多路由匹配关系;基于内容进行路由,能够基于请求报文中数据进行路由;路由规则存储,路由规则可以存储在配置文件、数据库中,也支持通过自定义代码定义路由规则。
2)服务聚合。通过对后端应用提供的服务进行处理、组合,发布新的服务供前端应用使用。服务聚合通过组合后端多个服务,这些服务可能来自同一应用,也有可能来自多个应用,然后发布新的服务供前端应用使用。
(3)接出能力 接出能力包含接入能力的全部:通信能力、服务交互以及数据转换。此外,接出能力还包含一个很重要的能力——负载均衡能力。
接入、调度及路由、接出能力可以实现前端系统接入,平台路由,然后接出到后端系统的任务,简单的能力间关系如图3-33所示。
(4)统一异常处理能力 统一异常处理能力包括异常分级、异常处理模型、异常恢复和记录异常。
1)异常分级。异常可以分为业务异常和系统异常。能够对异常区分不同的严重级别,如警告、错误、严重错误等级别的区分。
2)异常处理模型。在系统内不同的子应用、组件中采用统一的异常配置和处理方式,异常服务作为基础的共享服务为系统各个组成部分所使用。
3)异常恢复。在异常发生后以及重试失败后,系统可以对异常进行恢复,支持不同的恢复策略,包括回滚、冲正等补偿机制。需要说明的是,当系统发生异常时,如果采用事务回滚策略保证事务一致性,需要事务的所有参与方都支持两阶段提交。
4)记录异常。对于任何来自应用内、应用外的异常,都应该完整、及时地进行记录。对外部应用的异常或错误的依赖通过配置实现或通过公共转换模块将外部错误转换成内部业务规则。
(5)集中监控管理能力 集中监控管理能力包括日志管理、预警和报警、监控参数调整和流量控制。
1)日志管理。能够对应用产生的日志进行分类,例如分为调试、警告、错误、异常。提供日志的多种收集方式,例如记录到文件系统或者数据库。对于日志处理提供多种支持,例如简单展现,根据日志进行错误定位,进而将信息进行关联,甚至是产生诊断结论。
2)预警和报警。预警和报警分别对应的是应用即将发生异常以及发生异常时监控的处理策略。系统在即将发生异常时,通过预警,通知管理员,管理员通过进行错误隔离,或者其他人工介入的手段,降低异常发生的概率,甚至避免异常的发生。
3)监控参数调整。对于监控参数应能调整,例如平台当并发超过预定值的80%进行预警,“80%”就是监控参数,应能在监控平台调整。另外,管理员可以定制监控策略,例如管理员可以定制当“账务查询”交易的平均响应时间超过正常平均响应时间的30%就进行报警。也可以通过监控开关控制该监控策略是否生效。
4)流量控制。通过监视、控制企业服务总线接入、接出模块的系统、服务等流控对象的服务请求的流量,提升企业服务总线的可用、可靠性。
(6)系统配置管理能力 系统配置能力包括数据模型和安全。
1)数据模型。通过建立数据模型,企业服务总线定义了接口中各数据项的含义,所有数据模型中至少要包含如类型、格式、名称、属性名描述等元数据。对于元数据的管理包括增加、删除、修改元数据。
图3-33 接入、路由及调度、接出能力关系图
2)安全。企业服务总线必须建设和已有的安全架构集成的能力,从而提供重要的安全功能:认证、授权、访问控制、加解密、数据完整性、安全管理、故障事件的报告等。
(7)服务配置管理能力 服务配置管理包括路由配置、负载均衡配置、SLA配置以及超时管理配置。系统应能提供集中的配置界面,使得管理员可以集中修改所有相关的配置。管理员在配置界面修改相关参数后,所有服务器的相关配置参数也应相应修改,做到集中修改,一次生效。
1)路由配置能力。路由配置能力包括:路由判断的请求报文数据字段可配置;对于字符串报文数据,支持判断字符串相等条件;对于数字型数据,支持大于、小于、等于判断条件;支持与、或、非逻辑判断等。
2)负载均衡配置能力。负载均衡配置包含对后端服务提供点的增、删、改配置,以及负载均衡算法的配置,并且当配置修改后能做到动态加载。
3)SLA配置。服务级协议(SLA)用于定义有多少成功进行的服务正在接近它们性能瓶颈。可以配置服务的处理时间等性能参数的阈值,并且可以打开和关闭针对服务的监控。
4)超时管理配置。企业服务总线调用后端应用时,可以通过配置方式调整面向系统、服务的超时设置。
4.报文规范与服务库
银行在建立服务总线时,通常要制定报文规范,建立服务库。
报文规范中关键内容包括标准报文格式(报文头和报文体)、报文编码。
服务库是存储、访问和管理服务元数据的系统。服务库在服务的设计、运行阶段都提供支持,设计阶段,服务库用于选择、调用、管理和重用服务,即服务库用于存储已经在使用或计划使用的服务信息;运行阶段,服务库提供服务访问点信息。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。