企业的信息化建设是一个从无到有、从有到散的过程,分散的业务系统往往只能满足企业的基础业务管理,而随着企业业务的复杂化和多样化,必然会出现多系统业务串联和数据整合的需求,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预置组织表:

AEAI ESB开发入门手册_数据库

2.HR预置组织数据:

AEAI ESB开发入门手册_ESB_02

AEAI ESB开发入门手册_ESB_03

3.ERP预置组织表:

AEAI ESB开发入门手册_ESB_04

2功能介绍

主要对ESB平台的一些常用功能进行介绍,如服务开发、服务调用、文件读写、消息队列等常用的典型功能和业务场景。

2.1工程向导

工程向导主要提供工程的快速创建方式,通过图形化配置可以快速建立ESB工程,同时ESB支持传统和云平台两种模式,其中传统模式就是单独部署服务器的方式,而云平台模式则是通过UMC部署的方式。

2.1.1功能说明

1.点击工程创建按钮:

AEAI ESB开发入门手册_ESB_05

2.选择ESB的开发模式,平台支持传统模式和云平台模式,服务器地址为ESB Server的地址和端口,ESB支持远程开发模式,用户名和密码为系统用户,默认用户名和密码均为admin:

AEAI ESB开发入门手册_服务器_06

3.测试连接后Next,输入工程名称,选择是否创建样例,Finish:

AEAI ESB开发入门手册_数据库_07

4.工程创建后对工程进行部署操作:

AEAI ESB开发入门手册_数据_08

5.部署后可以进行启停、卸载、删除等操作(对应下方注意事项5)

AEAI ESB开发入门手册_企业服务总线_09

6.同时在SMC管理控制台中,可以看到部署的工程以及对应的服务、流程、模型等信息,同时也可以进行启停操作:

AEAI ESB开发入门手册_企业服务总线_10

2.1.2注意事项

1.对于云平台模式,服务器、端口指UMC的地址和端口(默认端口为1010),配置服务器后需要选择租户和方案,具体配置参考UMC的使用手册,这里不做具体说明;

2.样例为ESB平台预置的样例工程,包括Web/Rest Service样例以及常用业务逻辑和组件样例;

3.ESB支持远程开发部署模式,所以服务器地址可以填写远程服务器地址(注意开放ESB的9090端口);

4.用户名和密码默认为admin/admin,如果需要调整,可以在SMC平台进行密码修改:

AEAI ESB开发入门手册_ESB_11

5.ESB工程部署后,不能直接进行卸载和删除操作,需要先停止,然后卸载,最后删除。

2.2服务向导

ESB平台支持Web和Rest两种服务的开发,并且都能通过服务向导快速生成服务流程。

2.2.1数据源注册

在进行服务开发前需要先注册数据库信息,注册后ESB设计器才能读取对应的数据库,获取表、视图等信息。数据库的注册在SMC中进行

1.在SMC系统资源和数据库资源中进行添加:

AEAI ESB开发入门手册_企业服务总线_12

2.手动在数据库中建立hr数据库,并添加数据库连接:

AEAI ESB开发入门手册_数据_13

3.同样建立erp数据库并注册在ESB中:

AEAI ESB开发入门手册_数据_14

4.对hr和erp数据库重新加载:

AEAI ESB开发入门手册_数据_15

2.2.2Web服务

1.在WS服务目录上点击右键,选择创建Web服务:

AEAI ESB开发入门手册_ESB_16

2.选择Web Service,输入服务名称、别名,选择基于数据表创建,并选择单表模式,Next:

AEAI ESB开发入门手册_ESB_17

3.选择数据源、数据表、服务操作、查询字段、编码字段等信息,Finish:

1)数据源:在SMC注册的数据源,也是需要开发的服务的数据来源;

2)数据表:来源库中的具体表,是服务数据的直接来源;

3)主键字段:来源表的主键字段,选择表后自动获取;

4)服务操作:服务自动生成的操作方法;

5)查询字段:服务操作中查列表的条件字段;

6)编码字段:来源表中的编码字段,也是查单条和删除的条件字段。

AEAI ESB开发入门手册_数据库_18

4.先点击初始Web服务,进行参数初始化,再点击部署进行服务部署:

AEAI ESB开发入门手册_服务器_19

5.打开服务可以看到新增、修改、删除、查单条、查列表五个方法:

AEAI ESB开发入门手册_企业服务总线_20

6.双击可以查看流程详情:

AEAI ESB开发入门手册_企业服务总线_21

7.服务创建后可以通过SoapUI进行测试,也可以在SMC中查看:

AEAI ESB开发入门手册_数据库_22

2.2.3Rest服务

Rest服务的开发方式和Web服务基本相同,只是在创建时需要选择Rest Service:

AEAI ESB开发入门手册_数据_23

同时操作的显示方式和Web服务有所不同:

AEAI ESB开发入门手册_企业服务总线_24

也可以通过双击消息流程查看流程详情:

AEAI ESB开发入门手册_企业服务总线_25

2.2.4注意事项

1.在进行流程过程中,如果进行数据库配置的调整,调整后需要在数据库资源的列表页面重新加载,否则数据库资源无法生效

2.在创建服务后,要先通过初始Web服务进行参数初始化,否则后续会出现部署失败或者无法调用的问题。

2.3流程调用

流程调用是对ESB平台的子流程进行调用,在通过ESB进行流程开发的过程中,针对可复用的、相对独立的业务逻辑,可以封装成子流程,在调用流程组件中进行调用,提高流程复用率,同时实现流程的简化

2.3.1组件说明

1.首先选择协议适配器中的调用流程组件:

AEAI ESB开发入门手册_数据_26

2.打开调用流程组件,点击选择,弹出页会显示全部子流程:

AEAI ESB开发入门手册_数据_27

3.选择对应的子流程后会自动获取流程的入参,在变量表达式中选择入参变量:

AEAI ESB开发入门手册_服务器_28

4.选择流程出参:

AEAI ESB开发入门手册_企业服务总线_29

5.对流程出参配置出参变量:

AEAI ESB开发入门手册_服务器_30

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应用:

AEAI ESB开发入门手册_数据库_31

2.在WS应用中添加服务:

AEAI ESB开发入门手册_数据库_32

3.点击解析名称、生成代理、保存设置,生成WebService的代理服务:

AEAI ESB开发入门手册_数据_33

4.添加后重新部署工程:

AEAI ESB开发入门手册_企业服务总线_34

5.在流程中选择Soap调用组件,并打开组件配置:

AEAI ESB开发入门手册_数据_35

6.选择注册的WebService服务:

AEAI ESB开发入门手册_数据库_36

7.选择服务下的对应操作:

AEAI ESB开发入门手册_数据_37

8.创建入参和出参编码:

AEAI ESB开发入门手册_企业服务总线_38

2.4.2Http调用

Http调用组件是一个通用性组件,它可以调用RestService、Http流程,另外也支持WebService的调用。

AEAI ESB开发入门手册_数据_39

1.调用URL:需要调用RestService或Http流程的地址;

2.调用方式:RestService或Http流程的操作方法动词;

3.参数类型:参数列表以key-value的方式定义参数,字符文本一般用于json、xml类型的入参,其中WebService的调用就是将Soap请求头以字符文本的形式定义;

4.Next定义输出的变量信息,定义响应的类型、编码、变量等,同时可以定义请求头信息:

AEAI ESB开发入门手册_服务器_40

2.4.3注意事项

1.在注册WebService时,如果注册后无法点击“OK”按钮,则需要切换到基础信息标签,选择对应的服务器进行测试连接:

AEAI ESB开发入门手册_数据_41

AEAI ESB开发入门手册_数据库_42

2.在注册WebService后,需要对工程进行整体部署,否则可能导致WebService的代理工程不生效:

AEAI ESB开发入门手册_ESB_43

3.如果使用Http调用WebService,注意调用方式为Post,参数为字符文本类型,参数中将Soap请求的信息全部复制进去,如下图所示:

AEAI ESB开发入门手册_服务器_44

2.5服务模型

服务模型为了便于流程的配置以及数据的转换和传输的功能,通过服务模型可以将数据库中的表、JSON/XML数据、自定义数据等转换成模型,通过模型进行数据存储、转换以及传输

2.5.1模型配置

1.首先在SM模型上点击右键创建服务目录;
 

AEAI ESB开发入门手册_数据_45

2.选择不同的类型进行模型创建:

AEAI ESB开发入门手册_数据_46

1)Database:通过数据表生成服务模型

AEAI ESB开发入门手册_ESB_47

AEAI ESB开发入门手册_企业服务总线_48

2)XML:通过解析XML数据生成模型

AEAI ESB开发入门手册_ESB_49

AEAI ESB开发入门手册_企业服务总线_50

3)JSON:通过解析JSON生成服务模型

AEAI ESB开发入门手册_服务器_51

AEAI ESB开发入门手册_企业服务总线_52

4)Manual:手动定义模型信息,可以配置集成属性,也可以引用其他模型

AEAI ESB开发入门手册_数据_53

AEAI ESB开发入门手册_数据库_54

2.5.2模型使用 

1.配置好的模型首先需要进行初始化,生成模型对象,再进行模型部署:

AEAI ESB开发入门手册_服务器_55

2.在配置流程时,选择属性类型就可以使用定义好的服务模型:

AEAI ESB开发入门手册_服务器_56

2.5.3注意事项

1.通过数据库、XML、JSON生成的模型都可以进行属性的添加和删除,并且支持模型间的应用;

2.在模型创建以及模型调整后需要对模型进行初始化,生成模型的对象,否则服务模型无法部署和使用;

3.由于服务向导在创建服务时是基于数据库表生成的,所以服务向导无法基于服务模型生成服务,如果要使用服务模型,需要手动进行服务流程的开发。

3应用集成

应用集成是ESB平台非常重要的一项功能,主要是通过SMC配置集成场景,然后通过设计器自动生成集成流程,通过应用集成配置可以更加快速、更加方便的实现业务系统间的集成

3.1服务注册

1.首先在SMC应用集成的服务分组下添加服务的分组信息,便于对注册的服务进行管理;

AEAI ESB开发入门手册_ESB_57

2.在对应的分组下进行服务注册,服务注册有三种方式:导入原生、导入代理、注册

1)导入原生:导入ESB平台开发的服务

AEAI ESB开发入门手册_ESB_58

2)导入代理:导入SMC中创建的代理服务

AEAI ESB开发入门手册_ESB_59

3)注册:注册外部系统服务

AEAI ESB开发入门手册_数据_60

3.对不同的服务配置方法参数:

数据提供方(源头系统)定义出参:

AEAI ESB开发入门手册_服务器_61

数据接收方(目标系统)配置入参:

AEAI ESB开发入门手册_ESB_62

3.2场景配置

服务注册成功后需要在场景配置中配置具体的集成场景。

1.与服务注册类似,先配置场景的分组信息:

AEAI ESB开发入门手册_服务器_63

2.选择场景分组添加场景配置,选择源系统、源操作、目标系统、目标操作:

AEAI ESB开发入门手册_服务器_64

3.在映射配置中通过解析获取映射关系,并自动进行匹配:

AEAI ESB开发入门手册_服务器_65

4.根据业务的对应关系手动进行配置调整,添加校验规则:

AEAI ESB开发入门手册_数据_66

5.配置后提交配置信息:

AEAI ESB开发入门手册_服务器_67

3.3流程生成

在SMC中配置并提交场景后,通过ESB设计器生成集成流程。

1.首先在MF服务目录下创建Http流程,选择应用集成服务:

AEAI ESB开发入门手册_数据库_68

2.Next,刷新集成场景并进行选择:

AEAI ESB开发入门手册_企业服务总线_69

3.自动生成流程如下:

AEAI ESB开发入门手册_企业服务总线_70

3.4异常处理

在配置集成流程时,为了增加对流程的监控,可以配置相应的监控和处理机制,可以通过邮件、短信、微信的方式进行消息提醒

1.在SMC的场景配置中选择错误重试策略,定义报警方法、邮箱地址、短信、微信等信息:

AEAI ESB开发入门手册_服务器_71

2.保存后再次提交;

3.在ESB设计器中新增异常处理流程:

AEAI ESB开发入门手册_数据库_72

4.在应用集成的Http流程中选择刚才添加的异常处理流程:

AEAI ESB开发入门手册_ESB_73

5.流程在执行过程中出现问题就会有邮件或微信提醒。

4安全机制

为了提升ESB服务和流程的安全性,平台提供了用户名密码、IP白名单以及流程认证、应用+密码等多种安全认证机制,在进行服务和流程开发时可以通过安全策略限制服务、流程的使用

4.1用户密码

1.在进行服务和流程开发时,选择安全策略为用户密码:

AEAI ESB开发入门手册_服务器_74

2.直接调用流程会出现流程异常:

AEAI ESB开发入门手册_数据库_75

3.在调用的请求头中加入用户名和密码认证:

AEAI ESB开发入门手册_服务器_76

4.2IP白名单

1.在服务和流程中选择安全策略为消费者认证的IP白名单:

AEAI ESB开发入门手册_企业服务总线_77

2.调用流程时会提示IP不合法:

AEAI ESB开发入门手册_服务器_78

3.在SMC的服务消费中选择应用系统并添加服务:

AEAI ESB开发入门手册_服务器_79

4.在系统管理的应用系统中,选择关联的应用系统,配置IP白名单:

AEAI ESB开发入门手册_服务器_80

5.再次调用流程验证:

AEAI ESB开发入门手册_企业服务总线_81

4.3其他认证

1.扩展流程:扩展流程通过ESB开发认证流程,是通过在流程中进行安全控制的一种策略:

AEAI ESB开发入门手册_数据库_82

2.应用密码:和IP白名单的配置类似,也是配置业务系统关联,只是在调用流程时使用应用系统的编码和密码:

AEAI ESB开发入门手册_企业服务总线_83

ESB作为企业服务总线平台,在使用上偏向于技术层面,在实际项目中直接体现出的价值不够明显,因此在数通畅联的方案中,ESB一般都是和其他产品进行组合,形成一整套的治理方案。对于技术人员来说,不仅要了解产品,同时也要了解和熟悉方案,才能不断提升个人能力。

ESB作为数通畅联的核心产品,无论是产品的性能还是产品的完备性,都具有很大的优势,并且能和公司多款产品组合,如ESB+MDM的应用集成方案、ESB+MDM+DAP的数据治理分析方案等等,这些方案可以全方位满足企业IT信息化建设的需求

ESB企业服务总线作为企业集成的龙骨,是辅助业务系统集成的重要策略,通过ESB平台的建设,可以更好的实现企业业务系统的集成,同时结合主数据时间系统数据映射的管理,实现数据的共享,满足企业数据统一的需求,为后续数据治理规范奠定基础。