您好,欢迎访问三七文档
北京银行ESB技术规范培训内容提纲z概述zESB整体架构z报文数据定义z服务消费者的接入z服务消费者的接出z服务组合原则概述z对ESB的接口进行约定,以协调各方的开发团队。z对相关技术和编程方法进行介绍,以便于各团队的应用开发。z内容包括:整体架构、报文格式、服务消费者的接入和服务提供者的接出。整体架构zSOA架构包括服务消费者、ESB、服务提供者三个部分。zz服务消费者服务消费者是对于ESB服务的请求发起方,包括网银,电话银行,一户通,ATM等渠道。zz服务提供者服务提供者对服务进行真实业务处理的系统,包括AS400核心,基金、三方存管等。zzESBESB在中间提供服务路由和调度,所有对服务的访问都需要通过ESB进行。整体架构业务流程业务流程ESBESB服务服务(Adaptor)服务(Adaptor)服务服务服务(Adaptor)服务服务(Adaptor)服务(Adaptor)应用系统应用系统应用系统APIAPIAPI北京银行的集成方案架构AdapterESBAdapterAdapterAdapterAdapterAdapterAdapterAdapterQueueAdapterCA报文数据结构定义¾系统头:包含交易的一些共有属性。¾应用报文头:当交易需要做多页查询时,将使用应用报文头来描述查询的公共数据,是否需要多页查询由具体服务接口约定。¾本地头:当交易发生本地授权时,使用该结构上送本地授权信息。¾报文体:存放交易相关数据。?xmlversion=1.0encoding=UTF-8?servicebodydataname=SYS_HEADstructdataname=TRAN_CODEfieldscale=0type=stringlength=100161/field/data/struct/datadataname=BODYstructdataname=CARDNOfieldscale=0type=stringlength=106221560100093072/field/datdataname=OPER_CODEfieldscale=0type=stringlength=1000426/field/datadataname=CURRfieldscale=0type=stringlength=10242/field/datadataname=BANK_ACCT_NOfieldscale=0type=stringlength=106029070000001690/field/datadataname=BANK_NOfieldscale=0type=stringlength=10001/field/datadataname=START_DATEfieldscale=0type=stringlength=1020080701/field/datadataname=TRAN_CODEfieldscale=0type=stringlength=322637/field/datadataname=ACCT1fieldscale=0type=stringlength=100016600246589/field/datadataname=END_DATEfieldscale=0type=stringlength=1020080806/field/data/struct/datadataname=APP_HEADstructdataname=PGUP_OR_PGDNfieldscale=0type=stringlength=11/field/data/struct/datadataname=LOCAL_HEADstruct//data/body/servicexmlxml报文范例报文范例报文头的说明北京银行报文头规范.doccom.dc.eai.data.CompositeData中的接口publicCompositeData():构造函数publicvoidaddField(Stringname,Fieldfield):添加域publicvoidaddArray(Stringname,Arrayarray):添加数组publicvoidaddStruct(Stringname,CompositeDatastruct):添加结构体publicFieldgetField(Stringname):获取域publicArraygetArray(Stringname):获取数组publicCompositeDatagetStruct(Stringname):获取结构体XML报文结构XML与CompositeData之间的转换com.dc.eai.conv.packconv.StandardCBSIPackageConvertercom.dc.eai.conv.packconv.StandardCBSIPackageConverterz标准报文打包拆包XML格式报文与CompositeData之间相互转换StandardCBSIPackageConverter()ConstructorSummaryunpack(InputPacket packet,CompositeData data,IOConfig config)拆包处理 voidpack(OutputPacket packet,CompositeData data,IOConfig config)组包处理 voidMethodSummaryzcom.dc.eai.conv.PacketPacket()ConstructorSummarysetOffset(int offset):设置当前的偏移值,不检查参数的合法性,由调用者检查 voidsetBuff(byte[] buff) voidgetOffset():获取当前处理的偏移值 intgetLength():获取总的数据长度 intgetBuff():获取缓冲区数据 byte[]advance(int size):增加当前的偏移值,不检查参数的合法性,由调用者检查 voidMethodSummaryzcom.dc.eai.conv.InputPacketInputPacket(byte[] buff)ConstructorSummaryexceed(int size) booleanMethodSummaryadvance,getBuff,getLength,getOffset,setBuff,setOffsetMethodsinheritedfromclasscom.dc.eai.conv.Packetzcom.dc.eai.conv.OutputPacketOutputPacket(int init_size,int inc_size)构造函数init_size用于最初创建缓冲区的大小inc_isze用于当缓冲区不够时每次至少增加的大小OutputPacket(int init_size)OutputPacket()ConstructorSummaryensure(int size)确保在offset后至少能够容纳size字节的大小 voidMethodSummaryadvance,getBuff,getLength,getOffset,setBuff,setOffsetMethodsinheritedfromclasscom.dc.eai.conv.PacketCompositeDatareq_data=newCompositeData();CompositeDatasys_head=newCompositeData();//设置相关的域...CompositeDataapp_head=newCompositeData();//设置相关的域...CompositeDatalocal_head=newCompositeData();//设置相关的域...CompositeDatabody=newCompositeData();//设置相关的域Adapteradapter=newAdapter();req_data.addStruct(Adapter.SYS_HEAD,sys_head);req_data.addStruct(Adapter.APP_HEAD,app_head);req_data.addStruct(Adapter.LOCAL_HEAD,local_head);req_data.addStruct(Adapter.BODY,body);//设置IP、端口和超时时间//进行交易请求,返回响应结果CompositeDatarsp_data=adapter.docomm(req_data);//取响应系统头,获取相关获。。。CompostieDatasp=rsp_data.getSruct(Adapter.SYS_HEAD);//取响应应用头,获取相关获。。。CompostieDataap=rsp_data.getSruct(Adapter.APP_HEAD);//取响应本地头,获取相关获。。。CompostieDatalp=rsp_data.getSruct(Adapter.LOCAL_HEAD);//取响应报文体,获取相关获。。。CompostieDatabd=rsp_data.getSruct(Adapter.BODY);//可在rsp_data中查找对应的响应信息XML到CompositeData的转换byte[]requestData=……;StandardCBSIPackageConverterspc=newStandardCBSIPackageConverter();CompositeDatacd=newCompositeData();InputPacketip=newInputPacket(requestData);spc.unpack(ip,cd,null);ESB服务消费者接入规范服务消费者接入z服务消费者通过向ESB发送BOBSD报文来调用服务,完成业务处理。z已有的、不可以改动的渠道接入ESB,需要开发Adapter,进行报文转换,将原有的报文格式转换为标准的BOBSD报文。系统接入原则z新建渠道系统接入ESB系统,需要遵照BOBSD的规范接入。z已有渠道调用ESB发布新的服务,通过ESB连接后端服务系统,需要遵照BOBSD的规范接入。z新建业务服务系统通过ESB对外发布服务,遵照BOBSD规范。z已有服务系统调用ESB发布的服务,根据系统调整范围的大小、工作量和分析结论作相应处理:¾改动工作量较小,改动较容易系统遵照BOBSD规范接入;¾改动工作量较大,对系统的影响很大则按原有服务系统的报文规范。新开发的服务消费者接入规范z连接方式:服务消费者通过HTTP协议向ESB间发送服务请求。z发送报文和响应报文均为为xml格式的报文。zESB提供服务请求客户端API,以屏蔽通讯协议。JAVA平台接入规范zPAFA系统通过调用ESBClientAPI实现与ESB间通讯处理,ESB提供请求API屏蔽通讯协议和报文格式的技术细节,提高开发效率。服务消费者客户端APIcom.dcfs.esb.client.ESBClient接口:zpublicCompositeDatarequest(CompositeDatarequest)throwsTimeOutException;以CompositeData格式发送请求zpublicbyte[]request(byte[]request)throwsTimeOutException;以xml格式发送请求服务调用流程1.构建请求组合数据CompositeData。①实例化请求组合数据CompositeData
本文标题:ESB技术规范培训
链接地址:https://www.777doc.com/doc-4250395 .html