完整word版,ESB平台建设方案_第1页
完整word版,ESB平台建设方案_第2页
完整word版,ESB平台建设方案_第3页
完整word版,ESB平台建设方案_第4页
完整word版,ESB平台建设方案_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

兰州ESB平台

建设方案

文档信息版本号日期说明作者目录TOC\o"1-5"\h\z引言2\o"CurrentDocument"编写目的2范围2\o"CurrentDocument"术语定义、符号和缩略语2\o"CurrentDocument"兰州ESB平台3\o"CurrentDocument"兰州ESB平台总体架构3\o"CurrentDocument"兰州ESB平台功能架构4\o"CurrentDocument"兰州ESB平台功能架构图4兰州ESB平台功能模块设计4\o"CurrentDocument"兰州ESB平台与外接系统关系7\o"CurrentDocument"兰州ESB平台数据结构设计8\o"CurrentDocument"数据库ER图8\o"CurrentDocument"数据库详细说明8\o"CurrentDocument"兰州ESB平台设计8\o"CurrentDocument"开发框架8消息流程设计10\o"CurrentDocument"报文规范及接口设计22\o"CurrentDocument"开发说明25\o"CurrentDocument"兰州ESB平台项目阶段安排25\o"CurrentDocument"开发环境25命名规范26\o"CurrentDocument"应用场景设计26\o"CurrentDocument"天气查询服务场景(交互)27\o"CurrentDocument"天气信息推送与接收场景(下发)27\o"CurrentDocument"天气信息上报与数据采集场景(上报)27

iSdftStone—萌口—1引言编写目的依据SOA指导思想,编写本兰州ESB平台建设方案,为客户提供一个可参考的规划依据。1.2范围1.2范围本平台应用于兰州ESB平台建设方案的功能建设以及场景模拟。1.3术语定义、符号和缩略语术语定义解释ESB平台如不特别指明,数据整合平台是指兰州ESB平台内的IT系统。子系统连接ESB平台参与系统集成和业务数据交换的业务系统。iSoftStdne—雅通可门—2兰州ESB平台兰州ESB平台总体架构兰州ESB平台实现各接入业务系统之间的数据传递和服务调用,其总体架构如下图:如图黄色背景部分,主要包含两大模块:>主处理模块a)实现服务的暴露,后台系统的集成;b)针对输入的服务消息进行解析,检索,权限校验;c)读取路由关系并进行传输,实现基于消息内容的路由;d)记录服务运行日志,记录处理异常日志。>接口模块a)解析消息,识别服务类型;b)根据服务提供方提供的WEBSERVICE等消息接口调用服务;兰州ESB平台功能架构2.2.1兰州|ESB平台功能架构图兰州ESB平言2.2.2兰州ESB平台功能模块设计权限校验每个服务都应有且仅有一个服务提供方提供服务,如果出现同个服务有两个或多个系统提供,那就需将服务分版本管理,采用不同的服务名;服务的权限校验是针对主动发送类服务而言的(如静态数据服务),静态类数据服务提供方对外发送数据到了数据整合平台需校验该系统是否有权限发起该服务;校验通过则进入路由服务,检验失败则要返回给服务发起方一个反馈信息让服务发起方知晓。协议转换不同的业务系统可能会使用不同的协议传递消息,ESB平台提供不同的接口类型以适应不同的入口协议或者出口,协议的转换在ESB平台的内部封装完成,不需要在接入系统端做太多相关修改。该平台支持的接口类型包括WEBSERVICE和JMS。服务调用ESB平台可以调用服务提供者所提供的所有服务,服务调用分为三种方式:上报服务、下发服务和服务交互。如果是服务的上报和下发,则平台将解析好的信息数据以异步的处理方式进行服务调用处理;如果是服务交互,平台将按照同步的方式进行处理,平台将取得的处理结果封装到ESBRoot/Body节点下,形成请求回复消息,返回至服务发起方。对于交互服务的调用过程中发生了异常的情况,则将异常简要说明填至ESBRoot/Header/Exception节点下,返回调用方。日志记录当平台发生日志事件时,平台将发送通知到MQ日志流,该日志流以MQ队列为入口,读取日志消息,根据日志消息类型的不同,本平台分别记入服务操作日志和异常服务日志。异常处理ESB平台在接收到服务请求之到服务结束期间发生一切异常都有完整处理。一方面要让服务请求方知道服务调用失败,即异常反馈;一方面数据整合平台需要知道异常情况,即记录异常日志。异常类型:数据整合平台主要可能发生的异常需要进行归类,便于辨别发生异常的问题出在哪,如消息解析异常,权限校验异常,路由检索异常,消息路由传输异常等。异常反馈:数据整合平台出现任何异常导致消息传输失败都需要以消息的方式通知服务请求方,让请求方知道服务调用失败,以作下一步处理保证事物的完整性。记录异常:数据整合平台发生以上异常都需要调用日志记录功能记入日志,便于系统管理员跟踪排除问题。数据字典数据字典定义和存放了系统中各类数据的描述集合。主要存放兰州ESB平台标识数据,如‘0’正常,‘1’异常等。路由功能.1路由缓存为了提高效率,系统初始化时,从数据库的路由关系表中读取路由关系,通过定义缓存接口,将其路由关系表信息写入缓存。•初始化类定义初始化类,定义setServlet(ActionServletactionServlet)方法,系统会在启动时,默认加载该方法•定义缓存接口本系统中定义缓存接口,XXXCacheService,开发人员可以继承其接口,用其他缓存技术,如JBosscache。・2路由刷新当路由关系表信息发生变更时,手动发送路由关系修改通知到修改缓存的消息队列之中,通过IBMMQ获得路由变更消息后,重新读取路由关系表,刷新路由缓存。.3服务路由服务路由是ESB平台的核心功能,ESB平台接收到服务发起方服务请求后,与路由关系表中请求的服务ID进行匹配,以此来决定该请求路由至哪些服务实体,为服务调用做准备。消息处理.1消息解析系统提供对于XML格式消息的解析功能,消息格式包括:消息头和消息体,平台把接收到的消息,按照消息格式解析出来。消息格式请参照:报文规范及接口设计章节。.2内容处理报文处理支持对消息内容进行统一的处理,对消息头部分控制信息进行完善和加工,如该消息的时间信息、路由信息,服务实体校验等。.3消息传输消息进入消息流之后,在各个消息节点的驱动下,按照预定义的逻辑,进行路由传输。兰州ESB平台与外接系统关系IT应用环境实际业务场景中,某些应用系统的业务数据会与其它系统间有交互、共享,同时,某些应用系统也会作为服务的提供方向外暴露服务,供其它消费方应用系统调用。根据不同业务系统互相之间有数据交互,异构环境等特点,兰州ESB平台建设以SOA架构为指导,为有业务需要的应用系统提供了一个透明的、无差异的集成实现;该平台以ESB企业服务总线为技术实现,分解业务系统之间的互联关系,为参与服务的各应用系统间的服务及数据交互提供安全、高性能、可扩展的集成平台。根据现有掌握的业务情况,平台综合逻辑架构如下图:/匚1/匚1/1/I\行业应用A|〔行业应用B其他应用A|,其他应用B|IJIJI:■■■.■」I」WS协议WS协议JMS协议WS协议ESB平台消息路由格式转换记录日志消息传输异常处理WS协议JMS协议WS协议/数据处理!,系统/基础数据J"服务系统1/其他行业[1数据处理1兰州ESB平台数据结构设计2.4.1数据库ER图明蛉茁0SERIALOWJESERVICEOTDEREQDITmiORKEMTiniDSIATU8REQVSGREPM5Q成时ET眺MLMEERWARCKM⑵)MLNEEKMVMEERNUWERGLOSGLWWTEIQ<Jk>SERPALDBDE明蛉茁0SERIALOWJESERVICEOTDEREQDITmiORKEMTiniDSIATU8REQVSGREPM5Q成时ET眺MLMEERWARCKM⑵)MLNEEKMVMEERNUWERGLOSGLWWTEIQ<Jk>SERPALDBDEIO£ERSERVlCEDODE婀CHAR120〕RBsniniDWJWSERRECENTJnEOMLW8ERSTATUSMWHSERREWSSCLUBREPMSGCLO8CREVETr瞄DATEFBLLtNGDATEDATE12SHWICECOOEVjmiMJ'20)REWJiTinWRECfKTinriOH»ieoRE伽吸ctoe:HEPHWCLOBEKPCTWTLKTFAKWiRilSOJBA^TETJJXS.EXRFLOW理HH£E5£ffvieEeoo£MARCW倾HEQEKT1H10SEOEJCliniB^IWEHREQVSfiGLQfiiBEMEfiaa&EJWCOWTEJiTmawi(1K)<3®ATTTlltEMTEFILLINGeUMET.L虹EXRFUW.11陆TLOT.EXPFL-M0心'OPRATSOMNAUEWROWffi:湖:lognr陛DESCRIPTIONwwowriMi)C15EE10GHEAILTIi®BATELLSEKViCSID皂叩州口CREA7ETINE.LASJUPHAIETIkE6〉IDAILDIEQWWIlfWMBEJiTALBEHAVEr/fiWWt;EDJCOLJWEw«&wt刮|wutTAHCg阊IEAAV质CH尊,性切DE&CHIPTION网VWlt:昵,t5WECE&ITITYT点补1庄IFFOr_«BUl«_3l#O坦垒y典心IBMMEfl3^esvicecflw皿gt峭⑩sesviwcooe"sgs〕EMiro加gg®seftvjCECNV/iftCHMiSQ)佣泌£WARCHAR(\艘)SERgRPEFM££ASfiWIKTVPEfjynMVARCHAR{1DDsatinceunt帅衲uio®SEEV1CEURtTAJEflitM)CONTACTWARCHAR(»9DJSETH9O5捆A啊KTHOO-VARaggRECEfEURl.WKSifiR“EEHTlTYIDFM6中EMTiHID如*RMETHtHWAfitHAR导Tg曲映fiMB出RESISTEMaTEdate眶SOHPTiMvAfltttAfl(1MJ旺心回皿TAfitHflflIM)LAETuPDATETtM£DATED£l£TE0tmt£RDELETE版燧保DESCRIPTrONVARCHANCOD)RfaiS-TEflSMEM恨REQiSTERDATEDATEDELETEDMUMBEREMIELA&TUPtJATETIliEOAT£2.4.2数据库详细说明参见《兰州ESB平台数据库设计.xlsx》兰州ESB平台设计2.5.1开发框架兰州ESB平台,主要是负责参与服务交互的各业务系统之间的数据传递和消息转换。如各业务系统将数据上报行业数据处理中心、行业数据处理中心下发数据于各业务系统、各业务系统向行业数据处理中心发出请求消息,行业数据处理中心针对其请求,进行数据下发等。本系统采用IBMMB作为传输组件,IBMMQ作为消息组件,Log4j作为日志组件。外围业务应用系统...IBMMB(传输组件)Log4j(日志组件)外围业务应用系统其中,IBMMB:将服务提供方和消费方系统间的行业数据进行传输、解析、简单逻辑处理、转换;IBM外围业务应用系统...IBMMB(传输组件)Log4j(日志组件)外围业务应用系统2.5.2消息流程设计消息服务主流程.1逻辑示意图.2流程实现图出CorrectLogFIow出CorrectLogFIow.3流程描述该流程的核心节点为路由节点和消息处理节点节点,该流程具体描述如下:ESB平台接收请求方的XML消息(格式说明请见接口规范);ESB平台解析所获取的XML消息取得消息头数据(ESBRoot/Header)取得请求输入参数数据(ESBRoot/Body)将ESBRoot/Header/CreateTime值设为当前时间点取得路由数据。根据ESBRoot/Header/ServiceName和ESBRoot/Header/Sender进行路由选择,取得服务提供者URLSERVICETYPE=0或SERVICETYPE=1表示为数据上报或下发操作请求,ESBRoot/Header/ServiceName代表数据发送方WEB服务名,URL取值为ESBRoot/Header/Sender所代表数据接收方接收数据WEB服务URL,由T_SERVICE_ENTITY.RECEVEURL取得。SERVICETYPE=2表示为服务交互请求,URL取值为ESBRoot/Header/ServiceName所代表的注册WEB服务所提供的URL,由T_SERVICE_INFO.SERVICEURL取得。ESB平台通过URL调用服务提供者所提供的WEB服务。a)如果SERVICETYPE=0或SERVICETYPE=1则以异步方式调用WEB服务,将解析好的请求消息发至异步服务处理消息队列中,供异步服务处理监听器处理。b)如果SERVICETYPE=2则以同方式调用WEB服务,取得服务响应结果,并将结果更新至ESBRoot/Body节点下,形成请求回复消息返回至服务发起方。c)如果期间出现异常情况则将异常简要说明填至ESBRoot/Header/Exception节点下。d)如果调用成功,则检查目标服务状态,T_SERVICE_INFO表中的STATE字段值,如果当前值为1(不可用),则将其改为0(可用)。5)服务提供者响应来自ESB平台的服务调用,如果是交互调用(SERVICETYPE=2)则结果数据将XML格式返回至ESB平台,最终ESB平台将结果返回至服务发起方。6)平台生成此次服务请求执行日志,记录下服务请求完成的时间信息及完成状态。日志的处理流将以异步处理方式进行,将日志发至日志处理消息队列供日志监听器处理。刷新路由缓存消息流程.1流程图示.2流程实现图RouteR&freshMsglriputRoutdrifoReadRouteR&fr'etshRouteR&freshMsglriputRoutdrifoReadRouteR&fr'etsh.3流程描述则在系统启动时,将其路由关系写入缓存,当路由关系表修改后,手动向路由更新监听队列发送路由变更消息,刷新路由缓存消息流程收到该消息后,自动读取变更后的路由关系,重新刷新缓存,以便于系统在传输时,读取最新路由关系。详细流程如下:1)平台接收到IBMMQ接收队列中的修改缓存通知的消息;RouteInfoRead节点根据路由变更消息,读取路由关系表中变化了路由关系,将其服务ID,服务名称,缓存对象,设置成XML字符串;RouteRefresh节点调用缓存组件及刷新对象,对系统刷新缓存。.4报文格式定义<xs:schemaxmlns:xs=〃/2001/XMLSchema〃elementFormDefault=〃qualified〃attributeFormDefault=〃unqualified〃><xs:elementname=〃ENTER_NAME_OF_ROOT_ELEMENT_HERE〃><xs:annotation><xs:documentation>Commentdescribingyourrootelement</xs:documentation></xs:annotation></xs:element><xs:complexType><xs:sequence><xs:elementname=〃ESBCache〃><xs:complexType><xs:sequence><xs:elementname=〃ServiceID〃type=〃StringNotNull〃><xs:annotation><xs:documentation>服务ID</xs:documentation></xs:annotation></xs:element><xs:elementname=〃ServiceName〃type=〃StringNotNull〃><xs:annotation><xs:documentation>服务名称</xs:documentation></xs:annotation></xs:element><xs:elementname=〃CacheObjectName〃type=〃StringNotNull〃><xs:annotation><xs:documentation>缓存对象名称</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:schema>日志记录流程.1逻辑示意图本系统中消息日志分为两种,消息服务日志、异常服务日志日志记录都由IBMMQ配置入口,根据类型不同,由ESB平台后台根据其类型,操作类型消息日志处理工具,将其消息日志信息写入数据库。.2流程实现图.3流程描述事件日志消息流负责将经过总线的消息进行记录,以便对消息的处理过程进行监控;每个消息正常情况下都会在消息主流中未处理前和处理后两次进入事件日志消息流。HandleLogMsg节点会检查消息体<Header>下是否有元素<FlowOut>,如果没有,则添加元素<LogType>,并设定其值0,表示消息刚进入主流尚未经过处理;如果有,则添加元素<LogType>,并设定其值1,表示消息已经过处理即将要发往Output队列。.4报文格式定义消息服务流水日志<?xmlversion="1.0"encoding=〃UTF-8〃?><xs:schemaxmlns:xs=〃/2001/XMLSchema〃elementFormDefault=〃qualified〃attributeFormDefault=〃unqualified〃><xs:import/><xs:elementname=〃ENTER_NAME_OF_ROOT_ELEMENT_HERE〃><xs:annotation><xs:documentation>Commentdescribingyourrootelement</xs:documentation></xs:annotation></xs:element><xs:complexType><xs:sequence><xs:elementname="head"><xs:complexType><xs:sequence><xs:elementname=〃HEAD〃><xs:annotation><xs:documentation>消息头</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:elementname=〃request〃><xs:complexType><xs:sequence><xs:elementname="SERVICENAME"type="StringNotNull"><xs:annotation><xs:documentation>服务名称</xs:documentation></xs:annotation></xs:element><xs:elementname="REQETTNAME"type="StringNotNull"><xs:annotation><xs:documentation>发送方</xs:documentation></xs:annotation></xs:element><xs:elementname=〃RECETTNAME〃type="StringNotNull"><xs:annotation><xs:documentation>接收方</xs:documentation></xs:annotation></xs:element><xs:elementname="CREATETIME"type="StringNotNull"><xs:annotation><xs:documentation>日志产生时间</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:elementname="response"><xs:complexType><xs:sequence><xs:elementname="REPMSG"><xs:annotation><xs:documentation>返回消息体</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:schema>消息服务日志是记录其发生消息上报,下发,交互时所产生的消息日志,报文中需要包含服务ID、服务名称、消息名称、消息类型、发送方、接收方、消息体等信息异常消息日志<?xmlversion="1.0"encoding=〃UTF-8〃?><!—editedwithXMLSpyv2011()byweimu(polisman)—><xs:schemaxmlns:xs=〃/2001/XMLSchema〃elementFormDefault=〃qualified〃attributeFormDefault=〃unqualified〃><xs:import/><xs:elementname=〃ENTER_NAME_OF_ROOT_ELEMENT_HERE〃><xs:annotation><xs:documentation>Commentdescribingyourrootelement</xs:documentation></xs:annotation></xs:element><xs:complexType><xs:sequence><xs:elementname="head"><xs:complexType><xs:sequence><xs:elementname="HEAD"><xs:annotation><xs:documentation>消息头</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:elementname="request"><xs:complexType><xs:sequence><xs:elementname=〃SERVICENAME〃type="StringNotNull"><xs:annotation>

<xs:documentation>服务名称</xs:documentation></xs:annotation></xs:element><xs:elementname="REQMSG"type="StringNotNull"><xs:annotation><xs:documentation>消息类型</xs:documentation></xs:annotation></xs:element><xs:elementname="REQETTNAME"type="StringNotNull"><xs:annotation><xs:documentation>发送方</xs:documentation></xs:annotation></xs:element><xs:elementname=〃RECETTNAME〃type="StringNotNull"><xs:annotation><xs:documentation>接收方</xs:documentation></xs:annotation></xs:element><xs:elementname="CREATETIME"type="StringNotNull"><xs:annotation><xs:documentation>日志产生时间</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:elementname="response"><xs:complexType><xs:sequence><xs:elementname="EXPCONTEXT"><xs:annotation><xs:documentation>异常描述</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:schema>异常消息日志是当发生消息上报,下发,交互时,所发生的异常信息的记录。iSdftStone可n异常处理.1逻辑示意图ES晔台异甯处理业获噩平台异部场异常矗曜结束结束.2流程实现图MsglnputLogOutputMsglnputLogOutput.3流程描述1)ESB在接收请求消息后,在对消息进行处理时捕获异常2)ErrorMsgCompute节点封装异常信息至请求消息中,形成异常简述及详细说明。a)异常信息简述将记录至ESBRoot/Header/Exception节点。3)将记录异常后的消息发至处理消息队列,供异常监听器处理4)如果由.ConnectException引发的异常.更新服务注册状态数据,将T_SERVICE_INFO表中的STATE字段值,如果当前值为0(可用),则将其改为1(不可用)。.4报文格式定义报文格式请见接口规范2.5.3报文规范及接口设计基本原则ESB以统一的WEB服务接口接受和响应接入子系统服务请求请求和响应消息格式为XMLXML消息中分别定义了消息头和消息体两部分>消息头必须遵循ESB所指定的规范>消息体部分各子系统可自行扩展,但必须位于ESBRoot/Body节点之下>参与ESB平台进行交互的各个子系统及其服务必须向ESB注册{SdftStone.1报文形式ESB请求及回复报文将以XML为格式,XML结构见下节报文内容所述。.2报文内容节点名称上级节点说明是否业务系统组装备注ESBRoot无根节点是HeaderESBRoot消息头定义是ServiceNameHeader服务名称是SenderHeader服务请求发起系统名称或者下发上报数据的系统名称是CreateTimeHeader消息创建时间格式为YYYY-MM-DDhh:mm:ss是ExceptionHeader异常描述,出否现异常时ESB需要组装该XML节点BodyESBRoot请求或回复消息内容,各子系统可将各自的输入参数或输出结果以XML的格式置于此节点之内是.3服务发布>ESB公布平台接受各个子系统请求的WEB服务接口>各子系统向ESB注册系统信息及所公布的WEB服务信息>注册各WEB服务输入参数XML结构接口规范>输入参数为一个,格式为XML,具体参数信息置于<Body>节点之下,通过解析<Body>节点来取得参数。>输出结果格式为XML,结果数据置,于<Body>节点之下,请求方通过解析<Body>节点来取得返回结果.1请求报文头请见报文内容一节说明,在请求报文中无ESBRoot/Header/Response节点,或节点值为false。.2应答报文头请见报文内容一节说明,在应答报文中ESBRoot/Header/Response节点值为true。

开发说明2.6.1兰州ESB平台项目阶段安排阶段开始时间结束时间内容备注设计阶段2012/9/132012/9/17详细设计说明书2012/9/182012/9/18详细设计说明书评审编码2012/9/192012/10/19消息流程、应用场景开发测试、部署2012/10/222012/10/31ESB平台、应用场景测试2.6.2开发环境个人开发配置操作系统开发工具应用服务器应用软件版本控制数据库JDKWINDOWSECLIPSEWebsphereIBMMB、MQSVNIBMDB2JD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论