ESB应用集成配置心得

Posted 数通畅联

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESB应用集成配置心得相关的知识,希望对你有一定的参考价值。

企业的信息化建设是一个从无到有、从有到散的过程,分散的业务系统往往只能满足企业的基础业务管理,而随着企业业务的复杂化和多样化,必然会出现多系统业务串联及数据整合的需求,AEAI ESB企业服务总线就是为企业解决系统集成难题的一款产品

AEAI ESB主要作用是作为企业信息系统的“龙骨”来集成各业务系统,实现异构系统的互联互通,用来拉取、调度各个业务系统的数据,一般被称为企业服务总线。本文档主要介绍了AEAI ESB应用集成的具体配置步骤,以及本人对配置ESB应用集成的心得体会。

1.背景说明 

AEAI ESB主要作用是作为企业信息系统的“龙骨”来集成各业务系统,实现异构系统的互联互通,用来拉取、调度各个业务系统的数据,一般被称为企业服务总线。 

1.1产品说明 

AEAI ESB主要包含三个模块:服务器ESBServer、设计器ESBDesigner以及管理控制中心。服务器ESBServer是运行环境,基于定制的Tomcat 扩展开发;设计器ESBDesigner是基于Eclipse Plugin开发的图形化、拖拽式的设计Web服务、消息流程的构建工具;管理控制中心则是部署在ESBServer的Java Web应用,基于开发平台构建的。 

1.2工作说明 

本次工作内容是将人力服务中心作为源数据系统,项目管理中心作为目标数据系统,通过数据同步分发实现原系统到目标系统的数据迁移。 

2环境部署 

1.解压ESBServer安装介质esb_server_x64_v3.5.6.20200630.zip。 

2.双击esb_server中bin目录下的startconfigtool.cmd进行流程平台设置。 

 

3.设置JDK路径,还有数据库的配置。 

 

4. 设置好自己的数据库然后进行测试连接,记住要点击初始化数据(如果不初始化数据就会导致出错),最后点击应用即可关闭。 

5. 点击startup.bat。 

3控制台介绍 

控制台能够看到在设计器中创建的流程,显示当前工程的基本信息,web服务等,也可以响应客户需要对服务器文件进行快速传输的需求。在我们每次执行ESB服务流程时,流程的执行信息是被监控统计的,当流程调度后可以用控制台来对消息调度次数,是否报警等进行查看和统计。还有对系统资源的增加修改删除,系统进行管理等。 

3.1登录界面 

AEAI ESB管理控制台的默认端口为9090,打开浏览器访问地址http://localhost:9090/SMC,即可显示登录界面,如下图所示: 

用户名和密码都是统一的admin,登陆后即可看到界面,左侧为当前在ESB Designer中的所有工程,和ESB Designer列表中一样,可以看到项目的基本信息,Web服务和消息流程等: 

3.2服务工程 

在服务工程中点击具体某个工程后(通过设计器创建工程后在管理控制台SMC才可以看到工程列表),会显示当前工程的基本信息、Web服务、消息流程,也可以通过本界面来管理工程。 

3.3应用集成 

服务分组功能是定义服务中心左侧显示的分组树, 服务中心功能是将各个系统服务在ESB进行管理的功能, 场景配置功能是将已注册的系统间接口进行对接, 流程日志用于记录业务集成时,流程的执行情况,支持根据日期、流程名称、流程编码、类型等多种形式的查询功能,以及失败后的重发功能。 

3.4文件传输 

文件传输功能主要是为了响应客户需要对服务器文件进行快速传输的需求。比如可以通过服务器管理来添加编辑不同服务器的地址和端口。可以通过发送任务管理来添加编辑要发送给不同服务器的文件,用发送任务日志来查看文件发送的历史日志信息。可以通过发送任务统计来查看不同任务发送文件统计信息。包括发送速度最快文件统计、发送速度最慢文件统计等。 

3.5监控统计 

监控统计可以监控当前项目一段时间内被访问的流程信息,统计显示最活跃和最缓慢的流程统计,各个服务之间的关系及详细信息,监控当前项目一段时间内被访问的服务等。 

例如在服务监控中: 

回到SoapUI中,多运行几次后,会看到运行次数的增加; 

 

  

也支持对Rest服务以及Web服务进行统计,包含服务的执行时间、运行次数、成功次数等。 

3.6系统资源 

可以在应用系统中对各个应用系统系统进行操作,通过共享资源来添加设计器中的FTP上传和下载,还可以管理添加设计器中MQSender调用所需要的消息路由以及主题对应的队列信息。 

3.6.1属性配置 

可以通过“系统资源”下的“属性配置”来添加ESB Designer中HttpInvoker组件在采用参数列表调用接口时所需要用到的调用属性。点击“新增”按钮,添加具体信息,即可配置ESB Designer中所用到的调用属。 

点击保存按钮后可以配置具体的变量信息如编码、名称、是否加密以及变量的初始值。 

3.6.2数据库模板 

数据库模板一般都是预置好的(预置了常用的数据库,支持扩展),因为每种数据库都有自己的驱动,扩展数据库要在产品中引入对应的jar。

在“系统资源”下的“数据库模板”来添加数据库连接定义模板以便使用时参考,如图: 

3.6.3数据库连接 

在“系统资源”下的“数据库资源”中添加ESB设计器需要使用到的数据库资源,如图: 

可以通过“新增”按钮来添加新的数据库资源,或者查看数据库详情,新增页面如图: 

 

点击“测试连接”后会弹出连接成功的提示信息,点击“保存”返回列表页面。 

注意:在修改数据源配置信息或者新增后,需要点击列表页面中的“重新加载”按钮,这样ESB设计器使用的数据源才是修改后的数据源。 

4设计器介绍 

在设计器上连接过多个ESB服务器的多个ESB应用。一个ESB应用下有两类目录:Web服务目录、消息流程目录。只有在目录下才能创建Web服务或者消息流程,一个Web服务每个操作 Operation对应一个消息流程。消息流程有不同类型,现在主要有4类包括:Timer 触发消息流程、Http接入消息流程、队列/主题监听触发流程、基本Basic触发流程(一种特殊的流程,用于实现子流程以及Web服务的Soap流程)。组件是构成消息流程的基本单元,主要分为:输入、输出、转换、适配、调用、分支、合并等几类组件,在ESB设计器类别划分为路由和转换、数据适配器、协议适配器、流程接入器等。 

4.1创建应用 

打开ESB设计器后,可以通过“File”中的“new”去创建ESB项目,在弹出的“基本配置”页面中点击“测试连接”按钮(不需要修改信息),即可点“Next”进入“应用配置”页面,“是否创建样例”可自选是否勾选,勾选后会创建ESB设计器预置的样例,不勾选则无,点击“FInish”即可完成创建。 

4.2基础样例 

本例为简单的Http样例,从HttpRequest请求开始,通过数据转换,到HttpResponse响应结束。将HttpRequest节点请求时传入的参数param通过数据转换利用HttpResponse节点将其在页面打印。 

4.2.1流程配置 

流程图如下: 

 

双击“HttpRequest”节点,添加参数param;点击空白处,在“Properties”栏中会显示出流程的信息,点击变量配置,添加变量“repText”并设置对应的类型,如下图: 

 

双击“数据转换”节点,选择“赋值”类别中的“自定义代码模板赋值”,点击“Next”,如下图: 

跳转到“信息配置”页面,本流程需要通过扩展代码转换变量故不填写“来源变量”和“目标变量”,如图: 

扩展代码如下: 

“数据转换”节点配置的功能时将传入的参数“param”封装到“repText”中;双击“HttpRequest”节点,配置响应内容,如图: 

4.2.2测试 

测试效果如下图: 

4.3MQ样例 

主要是用于建立MQ队列或主题。包括异步主题发送,异步主题接收,异步队列发送和异步队列接收。 

4.3.1发送流程配置 

主题和队列的发送流程图如下: 

 

双击“HttpREquest”在弹出页面中点击“添加”添加参数名称param,如下图: 

 

双击“发送消息”节点,详细配置,如图: 

双击“HttpResponse”节点,配置打印信息,如图: 

 

打印信息可以任意配置。 

4.3.2接收流程配置 

主题和队列的接收流程图,如图: 

 

双击“QueueRequest”节点,配置信息如下图: 

对“打印信息”节点进行代码扩展,只需要修改invoke方法,代码如下: 

4.3.3测试 

双击“HttpRequest”节点,复制访问地址,将访问地址复制到浏览器地址栏中,回车返回如下图所示: 

  

在地址后接param参数等于2后,效果如下图,不添加参数为null:  

4.4定时样例 

样例为简单定时Timer样例,通过TimerRequest节点,定时、间隔或者直接自定义,执行下面的内容。可以通过TimerRequest节点来实现定时抽取、同步数据等功能需求。 

4.4.1流程配置 

流程图如下: 

 

双击“TimerRequest”节点,可以选择间隔、定时、自定义。选择对应的时长以及时长的单位点击Finish按钮,如下图: 

 

双击“JavaInvoker1”节点,勾选“生成Request类”,扩展代码如下: 

4.4.2测试 

如果间隔长度设为1秒,控制台就会显示每个一秒流程执行一次,效果如图: 

注意:此流程开启后会一致执行,在不需要时关闭此流程以免影响其他流程测试。 

4.5异常处理 

当一个方法当中出现错误引发异常时,方法会创建异常对象,并交付给运行时系统进行处理。异常对象中会包含异常类型、异常出现时程序状态等信息。 

4.5.1异常处理主流程 

样例为在主流程中抛出异常,在ESB流程中可以将所捕获的异常抛出,此异常可以在后台查看,确保程序的正确执行。 

4.5.1.1流程配置 

流程图如下: 

 

双击“抛出异常节点”,进行代码扩展,代码如下: 

4.5.1.2测试

结果如下图: 

注意:此抛出异常非真正的异常报错,而是创建异常故意抛出。 

4.5.2异常处理子流程 

样例为在子流程中处理异常,在ESB流程执行时可以不将获得的异常抛出,而是作为反馈提示信息的方式处理。这样可以方便系统维护人员的维护,保证流程的正确运行而不是流程直接崩溃。 

4.5.2.1流程配置 

流程图如下: 

 

双击“处理异常”节点进行代码扩展,扩展的代码如下: 

4.5.2.2测试 

子流程的运行时通过调用WS时绑定的子流程来对应执行的,调用WS方法可参见样例WS服务,测试结果如下图: 

 

4.6WS服务 

样例用于建立WebService服务,样例为HelloWorld。本WebService服务里面只有一个操作sayHello,与HelloWorldSayHello子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。 

4.6.1配置说明 

右键WS服务文件夹创建Web服务,如下图: 

右键点击“添加操作”,填写操作名称sayHello,入参words、出参RESULT设置对应的类型,如下图: 

 

填写修改完毕后点击上图“绑定流程” ,在弹出的页面中选择需要绑定流程的位置(可自行创建文件夹),点击OK后,将在对应位置自动生成基本的流程,可到对应位置进行流程的编辑,如下图: 

4.6.2流程配置 

流程如下图: 

 

点击数据转换节点选择“生成Request类”以及“生成Response类”点击Finish按钮,如下图: 

在invoke方法中扩展代码,代码如下: 

4.6.3SoapUI测试 

第一步,复制创建的WS服务的服务地址,如下图: 

打开SoapUI软件,点击“SOAP”按钮,将之前复制的地址粘贴到弹出框的Initial WSDL框中,点击“OK”完成,如下图: 

点击“OK”后会弹出如下列表,如图: 

 

双击Request1,在words标签中填写想要输出的内容,然后点击绿色执行箭头即可在右侧显示结果,如图: 

注意:服务创建或修改后需要初始化,否则在配置流程的时候可能会出错。 

5实现步骤 

接下来在源工程创建Web服务和Rest服务,在HR内创建Rest服务,HR系统作为数据源,这里只需要对数据源的数据进行查询,生成流程时主要勾选查询流程,即可生成对应的ESB流程。 

接下来在目标工程创建Web服务大致一样,和源业务系统不同的是,目标业务系统是在本次演示作为数据服务的消费者,而源业务系统作为数据的提供者。在源工程中是对数据进行查询操作,这里是数据的插入或变更操作。 

在ESB设计器中创建两个应用,将“人力服务中心”作为原工程,“项目管理中心”作为目标工程,创建完成之后部署两个应用。 

5.1创建应用 

创建人力服务中心和项目管理中心,配置如下: 

 

部署成功后,会在AEAI ESB管理控制台“服务工程”模块中显示新建的两个应用。 

在设计器中,右键人力服务中心的WS服务,创建Rest Service服务,勾选“基于数据表创建”,选择“单标模式”,之后点击next,如图: 

在配置中选择security_group表选择查列表,查询字段为编码字段,按照编码操作,编码字段也选择为CODE。 

创建完成后首先右键初始化Web服务,然后再部署Web服务。 

 

右键项目管理中心的WS服务,创建Web Service服务,勾选“基于数据表创建”,选择“单标模式”,之后点击next,如图所示: 

设置相关数据表信息。 

初始化和部署Web服务。 

新建第三个应用“应用集成中心”,用来将HR的数据传输到Pm的数据库中。 

 

5.2服务测试 

到ESB管理控制台服务工程模块中,找到对应的工程,复制服务的地址,然后到SoapUI中测试对应的功能是否能正常运行。 

5.2.1Rest服务 

到ESB管理控制台,在“服务工程”中复制HRRest服务的地址。 

 

到SoapUI中选择Rest服务,点击Inport,粘贴HRRest服务的地址。 

双击“Request1”,在Value处填写security_group表中对应的编码值后运行,如果右侧显示对应组织的相关信息则表示运行成功。 

5.2.2Web服务 

到ESB管理控制台,在“服务工程”中复制PmWeb服务的地址。 

 

到SoapUI中选择Soap,将地址粘贴到对应位置,会自动生成工程的名称,点击OK。 

选择retrieve,在问号处填写sample_organization表中对应的编码值后运行。 

如果右侧显示对应编码的那条数据则表示运行成功。

5.3集成配置 

先在ESB控制台的服务中心模块中导入原生,然后配置对应的出参入参信息;之后到场景配置模块新增一条数据并填写对应的基本信息和映射关系。 

5.3.1服务中心 

回到ESB控制台,在“API服务”模块导入。 

 

双击HRRest服务,点击“API列表”按钮进行配置。 

 

点击API列表。 

双击”Get”请求。 

跳转到API接口页面,双击get方法。 

显示如下: 

选择出参信息,到SoapUI中复制刚刚运行HRRest服务生成的信息,然后粘贴至出参信息中。 

双击PmWeb服务,点击“API列表”按钮进行配置。 

双击PmWeb服务。 

点击调用参数,到SoapUI中复制刚刚运行PmWeb服务生成的信息中“<![CDATA[  ]]>”中的信息。 

5.3.2场景配置 

在“场景配置”模块点击“新增”按钮,填写相关配置信息,如图: 

基本信息配置完成后点击“保存”按钮,然后到映射配置模块,点击“解析”按钮,左边为目标字段,右边为源字段,选择对应的名称,然后双击源字段,即可将数据存储到目标字段中。 

完成后点击“返回”,到集成配置页面,提交该条记录。 

5.4创建流程 

回到ESB设计器,右键应用集成中心的MF服务,创建一个消息流程,如图: 

 

刷新目标表,选择刚刚在场景配置模块中配置的编码。 

 

5.5配置流程 

在HttpRequest中新增一个名为code的参数。 

双击“源数据调用”,删除调用URL后面的code,点击“变量”。 

选择code参数后点击next。 

 

显示如下: 

内容类型选择application/xml。 

双击“目标接口调用”。 

回到SoapUI中选择create中的Request1中复制代码到变量中,问号处用“<![CDATA[@desReqText]]>”代替,点击next。 

内容类型调整为json。 

保存之后对“组织同步”流程进行部署。 

5.6集成流程 

到ESB控制台,在“集成流程”模块可以看到之前部署的组织同步流程,选择该流程,点击“发布”。 

发布后双击该流程进入明细页面,点击“调用”按钮。 

到security_group表中找到sample_organization表没有的数据,复制其编码值,点击“调用”按钮。 

当相应输出为下图所示时,表示调用成功。 

 

6心得总结 

通过本次学习公司核心产品AEAI ESB应用集成平台,发现ESB在公司产品中占有很大的分量,公司所有的解决方案都用到ESB平台,他是公司集成的核心,也是企业的服务总线。 

6.1能力提升 

通过对AEAI ESB应用集成配置学习的过程中,使我掌握了ESB设计器的流程配置以及Rest服务和Web服务的配置,同时让我了解到GET、PUT、POST、DELETE方法的区别,还学会了使用SoupUI调用服务地址进行功能测试。在对AEAI ESB应用集成配置的过程中,使我对AEAI ESB设计器的使用更加熟练,业务流程更加熟悉。 

6.2个人总结 

通过对AEAI ESB配置应用集成的过程中,深深的体会到了AEAI ESB功能的强大、扩展性的灵活和多功能性,既可以通过图形化的拖拽方式设计流程,还可以通过地址对流程进行访问及测试,可以快速实现设计的功能,AEAI ESB配置了一些内置样例,可以使操作人员快速上手操作,快速理解AEAI ESB的使用方式。 

6.3心得体会 

通过最近对 AEAI ESB的使用,让我真正的知道了为什么AEAI ESB可以作为 “龙骨”来集成各个业务,因为它的功能很全面。由于先接触的AEAI BPM,在刚开始学习AEAI ESB的时候感觉这两个流程图比较类似,后来通过对AEAI ESB的深入了解,发现他们主要的区别在于AEAI BPM中的流程图是业务流程、工作流程;而AEAI ESB中的流程图是通过图来模拟程序的运行:顺序、分支判断、异常处理等,还有强大的扩展模块,预制了大量的样例,便于快速学习和了解扩展功能应该的操作。 

在对AEAI ESB的学习过程中,让我意识到了工作文档的重要性,在学习过程中将重要的知识点记录在工作文档中,不仅可以帮助自己巩固学习,在日后遇到相同问题时也可以及时定位问题,找到解决方法,提高工作效率;还可以锻炼自己的逻辑思维能力,提高自身的整体素质,并不断的提升自己的能力。因此养成撰写工作文档的习惯非常重要。 

以上是关于ESB应用集成配置心得的主要内容,如果未能解决你的问题,请参考以下文章

阿里云的消息服务怎么集成spring boot

ESB基础样例前置资源配置

基于ESB的业务集成业务梳理

医院信息集成平台(ESB)实施建设方案

对 ESB 作为点对点集成的解决方案感到困惑

ESB设计器各组件使用说明