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