兰州ESB平台建设方案版本号:1.0兰州ESB平台详细设计说明书软通动力信息技术(集团)有限公司ii文档信息版本号日期说明作者兰州ESB平台详细设计说明书软通动力信息技术(集团)有限公司1目录1引言....................................................................................................21.1编写目的...............................................................................................................21.2范围.......................................................................................................................21.3术语定义、符号和缩略语...................................................................................22兰州ESB平台.......................................................................................32.1兰州ESB平台总体架构.......................................................................................32.2兰州ESB平台功能架构.......................................................................................42.2.1兰州ESB平台功能架构图..........................................................................42.2.2兰州ESB平台功能模块设计......................................................................42.3兰州ESB平台与外接系统关系...........................................................................72.4兰州ESB平台数据结构设计...............................................................................82.4.1数据库ER图...........................................................................................82.4.2数据库详细说明.....................................................................................82.5兰州ESB平台设计...............................................................................................82.5.1开发框架.................................................................................................82.5.2消息流程设计.......................................................................................102.5.3报文规范及接口设计...........................................................................222.6开发说明.............................................................................................................252.6.1兰州ESB平台项目阶段安排...............................................................252.6.2开发环境...............................................................................................252.6.3命名规范...............................................................................................262.7应用场景设计.....................................................................................................262.7.1天气查询服务场景(交互)......................................................................272.7.2天气信息推送与接收场景(下发)..........................................................272.7.3天气信息上报与数据采集场景(上报)..................................................27兰州ESB平台详细设计说明书软通动力信息技术(集团)有限公司21引言1.1编写目的依据SOA指导思想,编写本兰州ESB平台建设方案,为客户提供一个可参考的规划依据。1.2范围本平台应用于兰州ESB平台建设方案的功能建设以及场景模拟。1.3术语定义、符号和缩略语术语定义解释ESB平台如不特别指明,数据整合平台是指兰州ESB平台内的IT系统。子系统连接ESB平台参与系统集成和业务数据交换的业务系统。兰州ESB平台详细设计说明书软通动力信息技术(集团)有限公司32兰州ESB平台2.1兰州ESB平台总体架构兰州ESB平台实现各接入业务系统之间的数据传递和服务调用,其总体架构如下图:应用系统A应用系统B应用系统C外部应用系统解析消息路由传输日志记录消息发送解析消息路由传输日志记录回复请求ESB平台应用系统D应用系统E其他业务系统JMS接口WS接口JMS接口解析消息路由传输日志记录回复请求服务映射WS接口JMS接口WS接口外部应用系统如图黄色背景部分,主要包含两大模块:主处理模块a)实现服务的暴露,后台系统的集成;b)针对输入的服务消息进行解析,检索,权限校验;c)读取路由关系并进行传输,实现基于消息内容的路由;d)记录服务运行日志,记录处理异常日志。接口模块a)解析消息,识别服务类型;b)根据服务提供方提供的WEBSERVICE等消息接口调用服务;兰州ESB平台详细设计说明书软通动力信息技术(集团)有限公司42.2兰州ESB平台功能架构2.2.1兰州ESB平台功能架构图2.2.2兰州ESB平台功能模块设计2.2.2.1权限校验每个服务都应有且仅有一个服务提供方提供服务,如果出现同个服务有两个或多个系统提供,那就需将服务分版本管理,采用不同的服务名;服务的权限校验是针对主动发送类服务而言的(如静态数据服务),静态类数据服务提供方对外发送数据到了数据整合平台需校验该系统是否有权限发起该服务;校验通过则进入路由服务,检验失败则要返回给服务发起方一个反馈信息让服务发起方知晓。2.2.2.2协议转换不同的业务系统可能会使用不同的协议传递消息,ESB平台提供不同的接口类型以适应不同的入口协议或者出口,协议的转换在ESB平台的内部封装完成,不需要在接入系统端做太多相关修改。该平台支持的接口类型包括WEBSERVICE和JMS。兰州ESB平台详细设计说明书软通动力信息技术(集团)有限公司52.2.2.3服务调用ESB平台可以调用服务提供者所提供的所有服务,服务调用分为三种方式:上报服务、下发服务和服务交互。如果是服务的上报和下发,则平台将解析好的信息数据以异步的处理方式进行服务调用处理;如果是服务交互,平台将按照同步的方式进行处理,平台将取得的处理结果封装到ESBRoot/Body节点下,形成请求回复消息,返回至服务发起方。对于交互服务的调用过程中发生了异常的情况,则将异常简要说明填至ESBRoot/Header/Exception节点下,返回调用方。2.2.2.4日志记录当平台发生日志事件时,平台将发送通知到MQ日志流,该日志流以MQ队列为入口,读取日志消息,根据日志消息类型的不同,本平台分别记入服务操作日志和异常服务日志。2.2.2.5异常处理ESB平台在接收到服务请求之到服务结束期间发生一切异常都有完整处理。一方面要让服务请求方知道服务调用失败,即异常反馈;一方面数据整合平台需要知道异常情况,即记录异常日志。异常类型:数据整合平台主要可能发生的异常需要进行归类,便于辨别发生异常的问题出在哪,如消息解析异常,权限校验异常,路由检索异常,消息路由传输异常等。异常反馈:数据整合平台出现任何异常导致消息传输失败都需要以消息的方式通知服务请求方,让请求方知道服务调用失败,以作下一步处理保证事物的完整性。记录异常:数据整合平台发生以上异常都需要调用日志记录功能记入日志,便于系统管理员跟踪排除问题。2.2.2.6数据字典数据字典定义和存放了系统中各类数据的描述集合。主要存放兰州ESB平台标识数据,如‘0’正常,‘1’异常等。兰州ESB平台详细设计说明书软通动力信息技术(集团)有限公司62.2.2.7路由功能2.2.2.7.1路由缓存为了提高效率,系统初始化时,从数据库的路由关系表中读取路由关系,通过定义缓存接口,将其路由关系表信息写入缓存。初始化类定义初始化类,定义setServlet(ActionServletactionServlet)方法,系统会在启动时,默认加载该方法定义缓存接口本系统中定义缓存接口,XXXCacheService,开发人员可以继承其接口,用其他缓存技术,如JBosscache。2.2.2.7.2路由刷新当路由关系表信息发生变更时,手动发送路由关系修改通知到修改缓存的消息队列之中,通过IBMMQ获得路由变更消息后,重新读取路由关系表,刷新路由缓存。2.2.2.7.3服务路由服务路由是ESB平台的核心功能,ESB平台接收到服务发起方服务请求后,与路由关系表中请求的服务ID进行匹配,以此来决定该请求路由至哪些服务实体,为服务调用做准备。2.2.2.8消息处理2.2.2.8.1消息解析系统提供对于XML格式消息的解析功能,消息格式包括:消息头和消息体,平台把接收到的消息,按照消息格式解析出来。消息格式请参照:报文规范及接口设计章节。2.2.2.8.2内容处理报文处理支持对消息内容进行统一的处理,对消息头部分控制信息进行完善和加工,如该消息的时间信息、路由信息,服务实体校验等。兰州ESB平台详细设计说明书软通动力信息技术(集团)有限公司72.2.2.8.3消息传输消息进入消息流之后,在各个消息节点的驱动下,按照预定义的逻辑,进行路由传输。2.3兰州ESB平台与外接系统关系IT应用环境实际业务场景中,某些应用系统的业务数据会与其它系统间有交互、共享