企业的信息化建设是一个从无到有、从有到散的过程,分散的业务系统往往只能满足企业的基础业务管理,而随着企业业务的复杂化和多样化,必然会出现多系统业务串联和数据整合的需求,ESB企业服务总线就是为企业解决系统集成难题的一款产品。
企业服务总线(Enterprise Service BUS,ESB)作为企业信息系统的“龙骨”用于集成各业务系统,实现异构系统的互联互通。平台预置丰富的组件,可以以向导式、图形化、拖拽式的方式进行服务、流程的开发,降低开发难度以及对使用人员的技术要求。
ESB主要包含三个模块:ESB服务器、ESB设计器和SMC管理控制台,其中ESB服务器是ESB的运行基础,为服务、流程提供部署、运行的基础环境;ESB设计器是一个低代码的开发平台,支持向导式、图形化、拖拽式的服务、流程开发;SMC是一个运行在ESB服务器上的JavaWeb工程,提供对服务、流程的监控、启停、统计分析以及环境配置、变量配置等功能。本文主要对ESB的相关功能、组件进行介绍,并模拟实际业务场景介绍ESB实现集成的过程,为ESB产品的使用提供借鉴。
1总体说明
本文主要从功能和业务两个层面进行介绍,功能层面主要介绍ESB的相关组件以及平台功能;业务层面会包含两部分,一是在集成过程中常用的小的业务逻辑,如分支、循环、消息队列等,二是结合MDM基础数据平台进行基础数据同步分发的实际业务场景模拟。
1.1环境准备
环境准备主要是准备产品,首先是ESB的部署,包括服务器和设计器,保证服务器正常启动并能通过流程访问SMC管理控制台,设计器可以正常打开至开发界面,关于ESB产品的部署可以参考“使用手册”。
为了模拟实际业务场景,ESB需要和MDM基础数据平台结合使用,因此需要准备一个MDM的产品环境,数据采用MDM平台预置数据即可。
1.2数据准备
数据准备主要包括产品数据以及业务数据,产品数据主要是ESB和MDM产品的数据,直接采用初始化预置数据即可;业务数据只需要简单模拟业务系统的数据,由于涉及到基础数据的同步分发,所以分别模拟HR和ERP两个数据库,分别准备一张组织表,并在HR的组织表中预置部分数据。
1.HR预置组织表:
2.HR预置组织数据:
3.ERP预置组织表:
2功能介绍
主要对ESB平台的一些常用功能进行介绍,如服务开发、服务调用、文件读写、消息队列等常用的典型功能和业务场景。
2.1工程向导
工程向导主要提供工程的快速创建方式,通过图形化配置可以快速建立ESB工程,同时ESB支持传统和云平台两种模式,其中传统模式就是单独部署服务器的方式,而云平台模式则是通过UMC部署的方式。
2.1.1功能说明
1.点击工程创建按钮:
2.选择ESB的开发模式,平台支持传统模式和云平台模式,服务器地址为ESB Server的地址和端口,ESB支持远程开发模式,用户名和密码为系统用户,默认用户名和密码均为admin:
3.测试连接后Next,输入工程名称,选择是否创建样例,Finish:
4.工程创建后对工程进行部署操作:
5.部署后可以进行启停、卸载、删除等操作(对应下方注意事项5):
6.同时在SMC管理控制台中,可以看到部署的工程以及对应的服务、流程、模型等信息,同时也可以进行启停操作:
2.1.2注意事项
1.对于云平台模式,服务器、端口指UMC的地址和端口(默认端口为1010),配置服务器后需要选择租户和方案,具体配置参考UMC的使用手册,这里不做具体说明;
2.样例为ESB平台预置的样例工程,包括Web/Rest Service样例以及常用业务逻辑和组件样例;
3.ESB支持远程开发部署模式,所以服务器地址可以填写远程服务器地址(注意开放ESB的9090端口);
4.用户名和密码默认为admin/admin,如果需要调整,可以在SMC平台进行密码修改:
5.ESB工程部署后,不能直接进行卸载和删除操作,需要先停止,然后卸载,最后删除。
2.2服务向导
ESB平台支持Web和Rest两种服务的开发,并且都能通过服务向导快速生成服务流程。
2.2.1数据源注册
在进行服务开发前需要先注册数据库信息,注册后ESB设计器才能读取对应的数据库,获取表、视图等信息。数据库的注册在SMC中进行。
1.在SMC系统资源和数据库资源中进行添加:
2.手动在数据库中建立hr数据库,并添加数据库连接:
3.同样建立erp数据库并注册在ESB中:
4.对hr和erp数据库重新加载:
2.2.2Web服务
1.在WS服务目录上点击右键,选择创建Web服务:
2.选择Web Service,输入服务名称、别名,选择基于数据表创建,并选择单表模式,Next:
3.选择数据源、数据表、服务操作、查询字段、编码字段等信息,Finish:
1)数据源:在SMC注册的数据源,也是需要开发的服务的数据来源;
2)数据表:来源库中的具体表,是服务数据的直接来源;
3)主键字段:来源表的主键字段,选择表后自动获取;
4)服务操作:服务自动生成的操作方法;
5)查询字段:服务操作中查列表的条件字段;
6)编码字段:来源表中的编码字段,也是查单条和删除的条件字段。
4.先点击初始Web服务,进行参数初始化,再点击部署进行服务部署:
5.打开服务可以看到新增、修改、删除、查单条、查列表五个方法:
6.双击可以查看流程详情:
7.服务创建后可以通过SoapUI进行测试,也可以在SMC中查看:
2.2.3Rest服务
Rest服务的开发方式和Web服务基本相同,只是在创建时需要选择Rest Service:
同时操作的显示方式和Web服务有所不同:
也可以通过双击消息流程查看流程详情:
2.2.4注意事项
1.在进行流程过程中,如果进行数据库配置的调整,调整后需要在数据库资源的列表页面重新加载,否则数据库资源无法生效;
2.在创建服务后,要先通过初始Web服务进行参数初始化,否则后续会出现部署失败或者无法调用的问题。
2.3流程调用
流程调用是对ESB平台的子流程进行调用,在通过ESB进行流程开发的过程中,针对可复用的、相对独立的业务逻辑,可以封装成子流程,在调用流程组件中进行调用,提高流程复用率,同时实现流程的简化。
2.3.1组件说明
1.首先选择协议适配器中的调用流程组件:
2.打开调用流程组件,点击选择,弹出页会显示全部子流程:
3.选择对应的子流程后会自动获取流程的入参,在变量表达式中选择入参变量:
4.选择流程出参:
5.对流程出参配置出参变量:
2.3.2注意事项
1.调用流程组件只能调用子流程,即输入输出类型为Embed类型的流程,包括手动定义的Embed流程、异常处理流程、服务生成的消息流程等;
2.调用流程组件主要是满足内部子流程调用,在选择子流程时,只能选择当前ESB工程中的子流程,不能实现跨工程调用;
3.如果需要跨工程进行流程调用,需要在工程内将子流程封装成服务或Http流程,然后在其他工程内通过Http调用来实现。
2.4服务调用
服务调用主要通过ESB预置的Soap调用和Http调用组件实现对Web、Rest服务的调用,通过服务调用,可以实现ESB平台内多个功能、服务之间的调用,同时也可以实现对外部服务的调用,从而实现服务治理、服务整合的需求。
2.4.1Soap调用
Soap调用主要是满足对WebService的调用,但在调用前需要进行WebService的注册。
1.在工程上点击右键,选择设置ESB应用:
2.在WS应用中添加服务:
3.点击解析名称、生成代理、保存设置,生成WebService的代理服务:
4.添加后重新部署工程:
5.在流程中选择Soap调用组件,并打开组件配置:
6.选择注册的WebService服务:
7.选择服务下的对应操作:
8.创建入参和出参编码:
2.4.2Http调用
Http调用组件是一个通用性组件,它可以调用RestService、Http流程,另外也支持WebService的调用。
1.调用URL:需要调用RestService或Http流程的地址;
2.调用方式:RestService或Http流程的操作方法动词;
3.参数类型:参数列表以key-value的方式定义参数,字符文本一般用于json、xml类型的入参,其中WebService的调用就是将Soap请求头以字符文本的形式定义;
4.Next定义输出的变量信息,定义响应的类型、编码、变量等,同时可以定义请求头信息:
2.4.3注意事项
1.在注册WebService时,如果注册后无法点击“OK”按钮,则需要切换到基础信息标签,选择对应的服务器进行测试连接:
2.在注册WebService后,需要对工程进行整体部署,否则可能导致WebService的代理工程不生效:
3.如果使用Http调用WebService,注意调用方式为Post,参数为字符文本类型,参数中将Soap请求的信息全部复制进去,如下图所示:
2.5服务模型
服务模型为了便于流程的配置以及数据的转换和传输的功能,通过服务模型可以将数据库中的表、JSON/XML数据、自定义数据等转换成模型,通过模型进行数据存储、转换以及传输。
2.5.1模型配置
1.首先在SM模型上点击右键创建服务目录;
2.选择不同的类型进行模型创建:
1)Database:通过数据表生成服务模型
2)XML:通过解析XML数据生成模型
3)JSON:通过解析JSON生成服务模型
4)Manual:手动定义模型信息,可以配置集成属性,也可以引用其他模型
2.5.2模型使用
1.配置好的模型首先需要进行初始化,生成模型对象,再进行模型部署:
2.在配置流程时,选择属性类型就可以使用定义好的服务模型:
2.5.3注意事项
1.通过数据库、XML、JSON生成的模型都可以进行属性的添加和删除,并且支持模型间的应用;
2.在模型创建以及模型调整后需要对模型进行初始化,生成模型的对象,否则服务模型无法部署和使用;
3.由于服务向导在创建服务时是基于数据库表生成的,所以服务向导无法基于服务模型生成服务,如果要使用服务模型,需要手动进行服务流程的开发。
3应用集成
应用集成是ESB平台非常重要的一项功能,主要是通过SMC配置集成场景,然后通过设计器自动生成集成流程,通过应用集成配置可以更加快速、更加方便的实现业务系统间的集成。
3.1服务注册
1.首先在SMC应用集成的服务分组下添加服务的分组信息,便于对注册的服务进行管理;
2.在对应的分组下进行服务注册,服务注册有三种方式:导入原生、导入代理、注册:
1)导入原生:导入ESB平台开发的服务
2)导入代理:导入SMC中创建的代理服务
3)注册:注册外部系统服务
3.对不同的服务配置方法参数:
数据提供方(源头系统)定义出参:
数据接收方(目标系统)配置入参:
3.2场景配置
服务注册成功后需要在场景配置中配置具体的集成场景。
1.与服务注册类似,先配置场景的分组信息:
2.选择场景分组添加场景配置,选择源系统、源操作、目标系统、目标操作:
3.在映射配置中通过解析获取映射关系,并自动进行匹配:
4.根据业务的对应关系手动进行配置调整,添加校验规则:
5.配置后提交配置信息:
3.3流程生成
在SMC中配置并提交场景后,通过ESB设计器生成集成流程。
1.首先在MF服务目录下创建Http流程,选择应用集成服务:
2.Next,刷新集成场景并进行选择:
3.自动生成流程如下:
3.4异常处理
在配置集成流程时,为了增加对流程的监控,可以配置相应的监控和处理机制,可以通过邮件、短信、微信的方式进行消息提醒。
1.在SMC的场景配置中选择错误重试策略,定义报警方法、邮箱地址、短信、微信等信息:
2.保存后再次提交;
3.在ESB设计器中新增异常处理流程:
4.在应用集成的Http流程中选择刚才添加的异常处理流程:
5.流程在执行过程中出现问题就会有邮件或微信提醒。
4安全机制
为了提升ESB服务和流程的安全性,平台提供了用户名密码、IP白名单以及流程认证、应用+密码等多种安全认证机制,在进行服务和流程开发时可以通过安全策略限制服务、流程的使用。
4.1用户密码
1.在进行服务和流程开发时,选择安全策略为用户密码:
2.直接调用流程会出现流程异常:
3.在调用的请求头中加入用户名和密码认证:
4.2IP白名单
1.在服务和流程中选择安全策略为消费者认证的IP白名单:
2.调用流程时会提示IP不合法:
3.在SMC的服务消费中选择应用系统并添加服务:
4.在系统管理的应用系统中,选择关联的应用系统,配置IP白名单:
5.再次调用流程验证:
4.3其他认证
1.扩展流程:扩展流程通过ESB开发认证流程,是通过在流程中进行安全控制的一种策略:
2.应用密码:和IP白名单的配置类似,也是配置业务系统关联,只是在调用流程时使用应用系统的编码和密码:
ESB作为企业服务总线平台,在使用上偏向于技术层面,在实际项目中直接体现出的价值不够明显,因此在数通畅联的方案中,ESB一般都是和其他产品进行组合,形成一整套的治理方案。对于技术人员来说,不仅要了解产品,同时也要了解和熟悉方案,才能不断提升个人能力。
ESB作为数通畅联的核心产品,无论是产品的性能还是产品的完备性,都具有很大的优势,并且能和公司多款产品组合,如ESB+MDM的应用集成方案、ESB+MDM+DAP的数据治理分析方案等等,这些方案可以全方位满足企业IT信息化建设的需求。
ESB企业服务总线作为企业集成的龙骨,是辅助业务系统集成的重要策略,通过ESB平台的建设,可以更好的实现企业业务系统的集成,同时结合主数据时间系统数据映射的管理,实现数据的共享,满足企业数据统一的需求,为后续数据治理规范奠定基础。