百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

AEAI ESB 开发入门手册

toyiye 2024-06-21 12:32 8 浏览 0 评论

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

企业服务总线(Enterprise Service BUS,ESB)作为企业信息系统的“龙骨”用于集成各业务系统,实现异构系统的互联互通。平台预置丰富的组件,可以以向导式、图形化、拖拽式的方式进行服务、流程的开发,降低开发难度以及对使用人员的技术要求。

ESB主要包含三个模块:ESB服务器、ESB设计器和SMC管理控制台,其中ESB服务器是ESB的运行基础,为服务、流程提供部署、运行的基础环境;ESB设计器是一个低代码的开发平台,支持向导式、图形化、拖拽式的服务、流程开发;SMC是一个运行在ESB服务器上的JavaWeb工程,提供对服务、流程的监控、启停、统计分析以及环境配置、变量配置等功能。本文主要对ESB的相关功能、组件进行介绍,并模拟实际业务场景介绍ESB实现集成的过程,为ESB产品的使用提供借鉴。

总体说明

本文主要从功能业务两个层面进行介绍,功能层面主要介绍ESB的相关组件以及平台功能;业务层面会包含两部分,一是在集成过程中常用的小的业务逻辑,如分支、循环、消息队列等,二是结合MDM基础数据平台进行基础数据同步分发的实际业务场景模拟。

1.环境准备

环境准备主要是准备产品,首先是ESB的部署,包括服务器和设计器,保证服务器正常启动并能通过流程访问SMC管理控制台,设计器可以正常打开至开发界面。

为了模拟实际业务场景,ESB需要和MDM基础数据平台结合使用,因此需要准备一个MDM的产品环境,数据采用MDM平台预置数据即可。

2.数据准备

数据准备主要包括产品数据以及业务数据,产品数据主要是ESB和MDM产品的数据,直接采用初始化预置数据即可;业务数据只需要简单模拟业务系统的数据,由于涉及到基础数据的同步分发,所以分别模拟HR和ERP两个数据库,分别准备一张组织表,并在HR的组织表中预置部分数据。

1)HR预置组织表:

2)HR预置组织数据:

3)ERP预置组织表:

功能介绍

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

1.工程向导

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

> > > > 功能说明

1)点击工程创建按钮:

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

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

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

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

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

> > > > 注意事项

1)对于云平台模式,服务器、端口指UMC的地址和端口(默认端口为1010),配置服务器后需要选择租户和方案;

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

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

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

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

2.服务向导

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

> > > > 数据源注册

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

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

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

3)同样建立ERP数据库并注册在ESB中:

4)对HR和ERP数据库重新加载:

> > > > Web服务

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

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

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

  • 数据源:在SMC注册的数据源,也是需要开发的服务的数据来源;
  • 数据表:来源库中的具体表,是服务数据的直接来源;
  • 主键字段:来源表的主键字段,选择表后自动获取;
  • 服务操作:服务自动生成的操作方法;
  • 查询字段:服务操作中查列表的条件字段;
  • 编码字段:来源表中的编码字段,也是查单条和删除的条件字段。

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

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

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

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

> > > > Rest服务

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

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

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

> > > > 注意事项

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

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

3.流程调用

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

> > > > 组件说明

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

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

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

4)选择流程出参:

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

> > > > 注意事项

1)调用流程组件只能调用子流程,即输入输出类型为Embed类型的流程,包括手动定义的Embed流程、异常处理流程、服务生成的消息流程等;

2)调用流程组件主要是满足内部子流程调用,在选择子流程时,只能选择当前ESB工程中的子流程,不能实现跨工程调用;

3)如果需要跨工程进行流程调用,需要在工程内将子流程封装成服务或Http流程,然后在其他工程内通过Http调用来实现。

4.服务调用

服务调用主要通过ESB预置的Soap调用和Http调用组件实现对Web、Rest服务的调用,通过服务调用,可以实现ESB平台内多个功能、服务之间的调用,同时也可以实现对外部服务的调用,从而实现服务治理、服务整合的需求

> > > > Soap调用

Soap调用主要是满足对WebService的调用,但在调用前需要进行WebService的注册。

1)在工程上点击右键,选择设置ESB应用:

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

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

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

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

6)选择注册的WebService服务:

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

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

> > > > Http调用

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

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

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

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

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

> > > > 注意事项

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

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

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

5.服务模型

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

> > > > 模型配置

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

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

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

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

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

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

> > > > 模型使用

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

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

> > > > 注意事项

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

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

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

应用集成

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

1.服务注册

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

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

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

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

  • 注册:注册外部系统服务

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

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

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

2.场景配置

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

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

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

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

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

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

3.流程生成

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

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

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

3)自动生成流程如下:

4.异常处理

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

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

2)保存后再次提交;

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

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

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

安全机制

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

1.用户密码

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

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

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

2.IP白名单

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

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

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

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

5)再次调用流程验证:

3.其他认证

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

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

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

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

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

本文由@数通畅联原创,欢迎转发,仅供学习交流使用,引用请注明出处!谢谢~

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码