资源描述
企业服务总线系统(ESB)技术白皮书V1.0.1115厦门博立特有限公司版权所有保留所有权利目录1.前言42 .ESB简介43. ESB主要功能和特点63.1.ESB主要功能:63.1.ESB主要特点:74.ESB接口设计84.1 总体设计框图84.2 技术规范84.3 消息传输流程84.4 文件传输流程84.5 MsgService接口说明84.5.1 登陆到ESB(Login)84.5.1.1 服务.NET原型84.5.1.2 传入参数94.5.1.3 返回参数94.5.1.4 服务说明94.5.2 发送消息到ESB(SendMessage)94.5.2.1 服务.NET原型94.5.2.2 传入参数104.5.2.3 返回参数104.5.2.4 服务说明104.5.3 从ESB接收消息(ReceiveMessage)104.5.3.1 服务.NET原型104.5.3.2 传入参数114.5.3.3 返回参数114.5.3.4 服务说明114.5.4 发送确认消息到ESB(AcknowledgeMessage)114.5.4.1 服务.NET原型114.5.4.2 传入参数114.5.4.3 返回参数124.5.4.4 服务说明125.附录A 返回代码对照表121.前言随着信息技术的不断发展,企业、政府部门等在信息化建设上投入了大量的资金、人力,逐步形成了适合自身某些部门或某些业务需要的管理信息系统,如办公自动化、客户关系管理CRM、企业资源计划ERP、生产制造系统等,这些管理信息系统,在企业和政府某些部门或业务的管理上,发挥了信息电子化、流程自动化、管理科学化的重要作用。但是,企业和政府现有的管理信息系统,由于投入的时间、使用的部门、生产的厂家及实现技术等各不相同,造成企业和政府现有的应用信息系统各自独立运行,数据不能共享,各自业务流程不能自动衔接,造成企业和政府内部许多自成体系的信息化孤岛,各个应用系统不能相互协作,形成统一高效的有机整体。企业应用集成,英文名称为Enterprise Application Integration,简称EAI,是为了解决企业和政府现有多种应用系统不能互连互通、数据共享、业务流程协调统一的问题,将异构的两个或更多的硬件、平台及应用系统进行无缝集成,使它们形成一个统一的整体。企业服务总线(Enterprise Service Bus,缩写ESB),是面向服务架构的骨干,在完成服务的接入,服务间的通信和交互基础上,还提供安全性、可靠性、高性能的服务能力保障。采用SOA架构,基于ESB总线进行企业应用集成,应用系统之间的交互通过总线进行,这样可以降低应用系统、各个组件及相关技术的耦合度,消除应用系统点对点集成瓶颈,降低集成开发难度,提高复用,增进系统开发和运行效率,便于业务系统灵活重构,快速适应业务及流程变化需要。2 .ESB简介ESB作为博立特科技公司的企业应用集成产品,主要功能是在两个或更多的异构系统(如不同的数据库、消息中间件、ERP或CRM等)之间进行资源整合,实现互连互通、数据共享、业务流程协调统一等功能,构建灵活可扩展的分布式企业应用。相比传统的企业应用集成软件平台,ESB是一个全新的符合SOA架构的应用服务整合平台,内置了企业服务总线(Enterprise Service Bus,简称ESB),基于工业标准,用于构建可管理、可扩展及经济高效的EAI解决方案。图1为其架构图。图1.基于ESB总线的企业应用集成模式ESB提供了从企业应用集成的设计、开发、部署,到运行、管理、监控各个生命周期阶段的工具和完整解决方案。它提供的开发工具,简单、经济、可扩展,并全面支持服务及服务常用形式Web Service,简化了服务的创建与封装,并能够使用户灵活地编排服务,以满足不断变化地业务需要和业务处理流程。ESB基于工业标准,如遵循.NET规范、完全支持XML数据交换、支持Web服务常用规范(如SOAP、WSDL等)。为了方便用户进行异构系统接入,ESB还提供了大量的基于.NET规范的适配器,如文件系统、各种数据库、消息中间件等系统的适配器。3. ESB主要功能和特点3.1.ESB主要功能:l 提供企业服务总线ESB功能基于开放式标准,内置提供了ESB常用功能,如服务的查找、访问、路由等,还内置了基于XML的数据对象,便于服务之间数据交互和互操作支持信息(数据)集成,流程集成与应用集成。l 支持企业级服务质量支持的企业级服务质量,包括消息安全、失败恢复、状态诊断、服务管理、服务审计及消息可靠传输、事务的完整性等,提供数据交换过程和数据的跟踪能力。l 提供数据格式转换功能提供图形可视化的异构数据格式转换映射工具,能够将数据从一种格式简便快速地转换成另一种格式。输入数据和输出数据可进行不同格式间的转换 (如结构化的XML、非 XML 或 .net 对象数据) ,从而可快速集成异构应用,无需考虑表示数据采用的格式。 l 支持多种服务/组件通讯方式ESB支持多种服务/组件通讯方式,如同步和异步等,用户可以按照自己的需要,灵活定义通讯方式。l 提供对Web Service的完整支持既支持不同外系统提供的Web Service访问,又能够将现有业务应用封装成Web Service供复用。支持Web Service常用标准协议,如SOAP、WSDL等。l 集成多种常用系统适配器并提供适配器定制开发能力集成了多种企业应用中常见的适配器,如支持结构化和非结构化文件读写的文件类适配器,支持多种数据库访问如Oracle、DB2、SQLServer、SyBase、MySql、Excel、Access等数据库类适配器,支持多种通讯协议如FTP、SMTP/POP3、WebService等通讯类适配器等,通过现成的适配器,减少程序员开发工作量,实现快速应用集成能力。l 监控与管理提供了基于浏览器的管理控制台,能够对监控节点、服务、组件及业务流程进行状态查询和监控管理。l 支持分布式应用及部署基于.NET规范,支持分布式应用及部署,开发的服务、组件及业务流程,可以分布式部署到网络上的多个逻辑节点,实现分布式运算和应用。3.1.ESB主要特点:l 符合SOA架构内部集成了企业服务总线功能,支持服务的查找、访问、路由及服务的治理。集成开发工具TI Studio,支持服务的开发封装、消费、服务编排、消息路由、及业务流程构建与部署,覆盖了服务开发的多个环节。l 基于开放式标准,高度可扩展ESB的技术架构及实现基于开放式标准,支持SOAP、WSDL等规范。基于开放式标准,便于系统迁移并便于将来扩展。l 全面支持Web Service支持Web服务的封装和访问,并支持Web服务的常用协议,如SOAP、WSDL等。提供的集成开发工具,支持Web服务的编排及不同粒度的服务封装,便于创建松耦合及可复用的面向服务架构。l 远程统一部署和管理ESB 能够使业务过程即时部署于分布网络上,对比中央服务器(central-server)架构的平台,大大降低了部署成本。 ESB 允许网络动态安装和启动软件服务,使分布式应用的部署时间和成本显著减少。l 集成一体化的监控、跟踪和日志管理ESB是专为分布式应用设计的,对监控、跟踪和日志具有平台一级的支持。服务通过网络被实时监控,平台还提供远程跟踪和日志。ESB 平台允许对服务特有的属性进行实时监控。l 无可比拟的高性能 ESB提供了一个完全分布式的(fully distributed)、端对端的(peer-to-peer)、事件驱动的(event-driven)架构来建立可参与分布式应用的服务。4.ESB接口设计4.1 总体设计框图4.2 技术规范ESB 采用标准的Web Service 进行数据交互。标准的WebService 是一种比较成熟的适合跨平台的数据交换方式;能够降低连接到ESB的系统的技术要求和操作平台限制;Web Service底层采用XML 进行数据交换,便于维护和交互。目前 ESB 提供的服务有:名词说明备注MsgService处理消息通讯的服务FileService处理文件传输的服务4.3 消息传输流程4.4 文件传输流程4.5 MsgService接口说明4.5.1 登陆到ESB(Login)4.5.1.1 服务.NET原型public MsgRespObj Login(string projectID,string userName,string userPasswd)4.5.1.2 传入参数用来进行用户的验证的对象成员类型说明备注projectIDString项目代号必填userNameString用户名必填userPasswdString密码必填4.5.1.3 返回参数MsgRespObj存放此次调用返回的登录结果。成员类型说明备注retNoInteger返回代码如果调用成功返回0,否则返回的值大于0;有关具体的值的含义,请查看附录AretMsgString返回消息如果 retNo0,则该值存有具体的错误内容msgString从ESB 返回的消息请查看消息规范checkpointString时间戳为空4.5.1.4 服务说明该接口负责外部系统登录到 ESB。用户必须在授权的IP所在的服务器上发送ESB 授权的用户名和密码到ESB。ESB 在进行合法性验证后,将登录的结果反馈给外部系统。4.5.2 发送消息到ESB(SendMessage)4.5.2.1 服务.NET原型public MsgRespObj SendMessage(string msgs)4.5.2.2 传入参数传递的消息数组成员类型说明备注msgsString存储发送到ESB 的消息格式请查看消息规范4.5.2.3 返回参数MsgRespObj存放此次调用返回的结果。成员类型说明备注retNoInteger返回代码如果调用成功返回0,否则返回的值大于0;有关具体的值的含义,请查看附录AretMsgString返回消息如果 retNo0,则该值存有具体的错误内容msgString从ESB 返回的消息请查看消息规范checkpointString时间戳为空4.5.2.4 服务说明 该接口负责接收外部系统发送到ESB的消息。消息的格式必须遵循ESB和对应系统之间达成的接口规范所描述的格式,否则该消息将不能通过验证,也不会分发到指定的接口。该接口的调用必须要首先登录到 ESB 上。4.5.3 从ESB接收消息(ReceiveMessage)4.5.3.1 服务.NET原型public MsgRespObj ReceiveMessage()4.5.3.2 传入参数无4.5.3.3 返回参数MsgRespObj存放此次调用返回的结果。成员类型说明备注retNoInteger返回代码如果调用成功返回0,否则返回的值大于0;有关具体的值的含义,请查看附录AretMsgString返回消息如果 retNo0,则该值存有具体的错误内容msgString从ESB 返回的消息请查看消息规范checkpointString时间戳该值将作为消息确认接口调用的传入参数4.5.3.4 服务说明该服务负责发送 ESB 的消息到外部系统。消息的格式遵循ESB和对应系统之间达成的接口规范所描述的格式。该接口的调用必须要首先登录到 ESB 上。4.5.4 发送确认消息到ESB(AcknowledgeMessage)4.5.4.1 服务.NET原型public MsgRespObj AcknowledgeMessage(string checkPoint)4.5.4.2 传入参数传递的消息数组成员类型说明备注checkpointString上次取到的消息时ESB返回的时间戳必填4.5.4.3 返回参数MsgRespObj存放此次调用返回的结果。成员类型说明备注retNoInteger返回代码如果调用成功返回0,否则返回的值大于0;有关具体的值的含义,请查看附录AretMsgString返回消息如果 retNo0,则该值存有具体的错误内容msgString从ESB 返回的消息为空checkpointString时间戳为空4.5.4.4 服务说明外部系统从ESB接收消息后,在正常处理之后,需要调用消息确认服务,以便通知ESB将其消息删除。传入的参数要和最近一次调用获取消息服务获取的时间戳要一致,否则ESB将不会删除已发送的消息。该服务和 ReceiveMessage 服务配对使用。该接口的调用必须要首先登录到ESB上。5.附录A 返回代码对照表返回代码值代表的含义中文描述0RetCode_SUCCESS成功1000RetCode_User_Need_Login用户需要登录1001RetCode_UserInfo_Null用户对象不能为空1002RetCode_UserName_Null用户名不能为空1003RetCode_UserPasswd_Null密码不能为空1004RetCode_UserInfo_Not_Found没有找到用户配置信息1005RetCode_UserPasswd_Not_Match用户密码错误1006RetCode_UserIP_Not_Allowed用户Ip不允许1007RetCode_User_Is_Disable用户目前不允许连接到ESB1008RetCode_User_Snd_Msg_NOt_Allowed用户不允许发送消息1009RetCode_User_Rcv_Msg_NOt_Allowed用户不允许接收消息1010RetCode_Error_Not_Known不知名错误1011RetCode_Req_TOO_Fast请求速度过快1012RetCode_Req_CK_NullCheckpoint不能为空
展开阅读全文