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