ESB产品调用场景分析

随着企业服务总线ESB产品功能的逐渐完善,对用户来说,使用时流畅便捷是对产品的基本需求。那么对于数通畅联来说,让用户使用产品时更便捷是产品不断完善的前进方向。在产品功能实现的基础上,提升应是交互越简单越好,丰富场景也可让客户多一种选择

AEAI ESB作为我们公司的一款核心产品,用于解决各个业务系统之间的异构集成难题。对于服务流程的集成调用在产品中也是一个很重要的功能,为了方便对于产品的整个使用感受更流畅,对于调用功能进行重新调整,对不同类型的服务和流程都可进行调用。现对ESB产品服务接口和集成流程不同场景下的调用功能进行分析总结。 

1总体概述 

本篇文档将对于SMC控制台中的调用场景,整体进行介绍说明,方便后续客户以及公司同事进行调用功能的使用。在使用的过程中,也希望其他人提出意见,从而使调用功能可以更加完善。 

1.1 整体说明

为方便客户减少打开其他调用软件的次数,在SMC控制台内可直接进行接口与流程的调用查看,对于HTTP调用页面和流程调用页面都进行了调整,本篇文档将对于调整后的调用模块功能进行调用操作的说明。 

1.2场景分析 

调用功能主要分为两种,一种是服务接口的调用,另一种是流程的调用,而流程的调用又分为集成流程和HTTP流程。对于服务接口调用,主要是主要在API管理的调用模块中,接口若要调用成功,需要进行如下步骤的操作,在后面的文档(服务调用部分)中会详细介绍说明。 

流程调用分为两块,集成流程的调用主要在应用集成模块,流程调用需要对入参进行配置,不同请求类型的入参设置不同,具体的操作在后面文档中(流程调用部分)也会详细介绍说明。 

普通HTTP流程的调用可在服务工程中的消息流程进行调用,也需要配置入参。具体调用方式跟集成流程一样。 

1.3调用说明 

服务调用是将程序的执行交给其他的代码段,通常是一个流程或者接口,同时保存必要的信息,从而使被调用段执行完毕后返回到调用点继续执行。当操作系统不允许用户直接操作各种硬件资源时,用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。 

IP地址提供了在互联网上找到这台机器的凭证,协议以及服务端口提供了在这台机器上找到提供服务的进程的凭证,根据IP地址在互联网上查到要访问的服务所在的机器,根据协议和端口查到服务进程,再根据服务名查询到对应的服务,完成服务调用。 

ESB产品调用场景分析_第1张图片

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由以下3部分组成: 

1.请求方法URI协议/版本:请求的第一行是“方法URI协议/版本”。 

例如:GET/sample.jsp HTTP/1.1。 

以上代码中“GET”代表请求方法,“/sample.jsp”表示URI,“HTTP/1.1代表协议和协议的版本。 

2.请求头(Request Header):请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。 

3.请求正文:请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息,如:username=jinqiao&password=1234。 

在以上的例子的HTTP请求中,请求的正文只有一行内容。当然,在实际应用中,HTTP请求正文可以包含更多的内容。 

2服务工程 

在服务工程模块是通过设计器创建工程后在SMC管理控制台服务工程模块才可以看到工程列表,点击具体某个工程后会显示当前工程的基本信息、Web服务、消息流程,也可以通过本界面来管理工程。在该模块场景下可以对创建的工程应用中的流程进行调用,并可对服务流程进行启停操作。 

2.1调用位置 

调用位置可在消息流程中调用,选择一个流程就可进行调用。 

ESB产品调用场景分析_第2张图片

点击“调用”按钮,会弹出一个手工调用的弹窗。 

ESB产品调用场景分析_第3张图片

该弹窗可以对调用流程的入参信息进行填写,调用后可查看相应输出的内容。 

ESB产品调用场景分析_第4张图片

HTTP流程的调用也可以直接选择工程的MF服务下的流程进行直接调用。 

ESB产品调用场景分析_第5张图片

点击“调用”按钮会弹出对应流程的手动调用页面,调用后可查看相应输出的内容。 

ESB产品调用场景分析_第6张图片

2.2调用内容 

在服务工程中只可对类型为“Http”的流程进行手动调用,对于所有类型的流程,可以对流程进行“启动”和“停止”。 

ESB产品调用场景分析_第7张图片

在消息流程下也可对定时流程进行启停。 

ESB产品调用场景分析_第8张图片

2.3调用结果 

选择一个http流程进行调用,填写入参,并点击调用按钮,展现调用结果如下。 

ESB产品调用场景分析_第9张图片

3API服务 

API服务是在SMC管理控制台的API管理模块下的功能页面,API服务功能主要是对是将各个系统的服务在ESB进行管理的模块,管理的方式包括导入、注册和配置。ESB产品中的服务调用也可对这些服务进行调用,共有四类,分别是导入、注册、代理、配置服务。 

3.1调用位置 

在API服务中,不同服务的调用位置都是在对应服务的接口中,有两个方式进到调用页面。 

第一种方式,在API服务可先选择一个服务,点击进去。 

ESB产品调用场景分析_第10张图片

来到服务的API列表页面,选择调用的服务接口,再点击“调用样例”按钮。 

ESB产品调用场景分析_第11张图片

可以直接跳转到接口的调用样例页面,该部分有三种调用,分别是HTTP调用、CURL调用、JAVA调用。HTTP调用页面显示接口信息,可以支持调用;CURL调用中CURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等,在CURL调用页面中的调用URL的语句就可以直接在服务器中调用。JAVA调用页面,可直接复制JAVA代码,粘贴到开发工具类中调用,也可直接下载工程,把工程放在设计器的workspace文件夹,导入到设计器即可。

ESB产品调用场景分析_第12张图片

第二种方式是可直接双击进入API列表服务接口的基础信息页面。 

ESB产品调用场景分析_第13张图片

在接口基本信息页面点击右上角的“调用样例”标签按钮,同样可以来到接口调用样例的模块。 

ESB产品调用场景分析_第14张图片

3.2调用接口 

对于想要调用的接口进行入参出参的配置,入参和出参有不同的创建方法,下图为模板创建。 

ESB产品调用场景分析_第15张图片

对于该接口的出参,配置的是以模型进行创建的。 

ESB产品调用场景分析_第16张图片

3.3调用展示 

接下来对配置好的接口进行调用展示。以Web服务的服务查单条接口为例,点击接口基本信息页面的“调用样例”,来到调用页面。如果入参显示方式为“文本”,需调整入参数据,再点击“调用”按钮,就可以得到出参信息。 

ESB产品调用场景分析_第17张图片

如果入参数据的显示方式为“表格”,则可调整下图入参位置再进行调用。 

ESB产品调用场景分析_第18张图片

4API超市 

API超市同样是在SMC管理控制台的API管理模块下的功能页面,API超市主要是对是将注册到API服务中的每个API接口进行直接的调用。其中,API分组查询,以API分组方式对服务接口进行归类;API应用查询,以应用系统方式对服务接口进行归类;API调用查询,以调用系统方式对服务接口进行归类。 

4.1调用位置 

API超市的调用位置,在详情页面包括HTTP调用、CURL调用以及JAVA调用的三种调用方式。 

ESB产品调用场景分析_第19张图片

CURL调用页面,显示接口信息,支持调用: 

ESB产品调用场景分析_第20张图片

JAVA调用页面,显示代码信息,支持复制代码、下载工程、调用: 

ESB产品调用场景分析_第21张图片

4.2接口配置 

对于想要调用的接口进行入参出参的配置,这里以预置服务中的认证服务为例。该服务下只有一个服务接口,是用来获取tokenId的。该接口入参类型为QueryParam,出参类型为String。 

ESB产品调用场景分析_第22张图片

那对应入参设置页面需要进行“添加根节点”如下。 

ESB产品调用场景分析_第23张图片

添加之后如下图显示,继续添加入参信息字段,需选中根节点,点击“添加节点”的操作。 

ESB产品调用场景分析_第24张图片

添加对应所需入参数据,对于该接口需要一个“appCode”和“appPwd”,如下图。 

ESB产品调用场景分析_第25张图片

该接口出参数据只是一个tokenId的值,可以不添加出参数据。如服务接口需添加可参照“调用接口”中的出参数据进行添加。 

4.3调用演示 

对HTTP调用、JAVA调用、CURL调用进行调用演示。首先HTTP调用与API服务的调用一样,这里就不多介绍了。 

对于CURL调用,点击“复制调用URL”,把复制的内容直接到服务器中执行,即可输出对应响应内容。 

ESB产品调用场景分析_第26张图片

JAVA调用页面,可直接复制JAVA代码,粘贴到开发工具类中调用,也可直接下载工程,把工程放在设计器的workspace文件夹,导入到设计器即可。 

点击下载工程后,对下载的压缩文件进行解压。 

ESB产品调用场景分析_第27张图片

对于解压的文件夹放在ESB设计器的workspace文件夹中。 

ESB产品调用场景分析_第28张图片

接下来在新版本设计器中导入该工程; 

ESB产品调用场景分析_第29张图片

选择刚刚导入到/workspace目录下的工程文件: 

ESB产品调用场景分析_第30张图片

点击确定按钮后直接Finish即可。在“com.xcorp.api.test”分组下,是调用的代码,在“com.xcorp.api.utils”中的RequestUrlHelper.java文件,是在模板中创建一个公共类,公共类内封装包含获取tokenId以及动态获取调用URL等一些固定的方法。代码中的24行和25行,是需要调整成对应工程应用的编码和密码(图中27、28行为对应调整)。 

ESB产品调用场景分析_第31张图片

调用方法为在代码页面单击右键,选择“Run As”-“Java Application”进行调用。 

ESB产品调用场景分析_第32张图片

出参的信息显示在“console”中,这就是JAVA调用的方法。 

ESB产品调用场景分析_第33张图片

5应用集成 

应用集成部分主要是场景配置和集成流程两个模块。场景配置功能是将已注册的系统间接口进行对接,实现系统集成逻辑,是实现集成工作的关键配置。集成流程则为设计器开发的业务集成类流程,点击单条可查看或编辑集成流程,手工调用页面点击调用按钮可以直接调用当前流程。接下来对应用集成流程如何配置、调用进行介绍。 

5.1调用位置

对于流程调用的逻辑以及调用位置进行简单介绍说明,应用集成的流程调用功能在应用集成下的集成流程模块中,可选择一个集成流程。 

ESB产品调用场景分析_第34张图片

在详情页面选择对应的HTTP流程的“查看”按钮。 

ESB产品调用场景分析_第35张图片

会弹出HTTP流程的详情页面,点击“调用”按钮。 

ESB产品调用场景分析_第36张图片

会再弹出一个“手工调用”弹窗页面,输入入参信息,再点击调用即可完成在响应输出中看到调用结果。 

ESB产品调用场景分析_第37张图片

5.2场景配置 

基于接口的调用,来配置集成场景,设置来源数据与目标数据。首先,新增场景配置,填写名称和编码,来源选择Rest服务的Retrieve接口,目标选择Web服务的Create接口,然后点击保存。 

ESB产品调用场景分析_第38张图片

来到映射参数页面,进行参数解析。 

ESB产品调用场景分析_第39张图片

解析完毕后,回到基本信息页面进行场景提交。 

5.3流程配置 

接下来可在设计器中,对于提交的场景配置进行创建。在应用集成中心的MF服务中,创建一个消息流程。 

ESB产品调用场景分析_第40张图片  

选择“HTTP请求响应消息流程”-“应用服务集成”。 

ESB产品调用场景分析_第41张图片 

点击Next,刷新目标表,可查看刚刚提交的流程,选择刚刚在场景配置中配置的集成流程完成创建。 

ESB产品调用场景分析_第42张图片

创建完成后,流程图大致如下: 

ESB产品调用场景分析_第43张图片

首先,在httpRequest中添加一个入参,参数为code。如下图: 

ESB产品调用场景分析_第44张图片

初始化操作节点,就是为了获取值。此样例中没有需要修改的部分。接下来处理源数据调用接口,在调用URL中删除自身带的code值,并且在变量中选择刚刚httpRequest节点中设置的入参参数code。如下: 

ESB产品调用场景分析_第45张图片

ESB产品调用场景分析_第46张图片

接下来,对于映射转换组件进行配置,主要就是把源数据映射到对应的目标数据字段中。 

ESB产品调用场景分析_第47张图片

然后对目标接口调用组件进行配置修改,主要就是对入参数据进行修改,具体入参配置如下。 

ESB产品调用场景分析_第48张图片

点击“Next”,解析策略选择“提取报文CDATA”,如下图。 

ESB产品调用场景分析_第49张图片

点击完成后,对流程进行部署,就完成了本次流程的配置。  

5.4调用演示 

接下来,对于配置好的流程进行调用测试,可到集成流程模块,选择查看流程详情。 

ESB产品调用场景分析_第50张图片

点击调用,填写入参数据,对其进行调用即可,如下即为调用成功。 

ESB产品调用场景分析_第51张图片

6分析总结 

对于ESB产品服务流程的调用通过HTTP网络传输协议进行的,调用的场景也是多样的。接下来会从场景应用、调用总结以及心得总结三个方面介绍本次撰写ESB场景分析的心得体会。 

6.1调用应用 

GET和POST是HTTP请求的两种最基本的方法,GET和POST也是传输数据最基本的方法,虽然两者都是传输数据,但是这两种方法有很大区别,比如: 

1.请求数据的不同: 

GET请求方法的数据可URL中,而POST请求方法的数据不在URL中。 

2.数据大小的不同: 

GET最大不超过32k(头文件空间32k,一般GET大小不超过1k),而POST最大可达1G。 

3.用途不同: 

在浏览器中:GET是从指定的资源请求数据;POST则是向指定的资源提交要被处理的数据。 

4.其他不同: 

a)GET在浏览器回退时是无害的,而POST会再次提交请求; 

b)GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留; 

c)GET请求会被浏览器主动cache,而POST不会,除非手动设置; 

d)对参数的数据类型,GET只接受ASCII字符,而POST没有限制。 

GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。 

6.2调用总结 

作为产品的开发者,随着对产品开发工作的逐渐深入,对于各个的功能也慢慢熟悉。通过本次调用功能场景的梳理分析,对ESB产品的业务逻辑了解得更深入。调用功能会有一些涉及底层的逻辑,需要去了解并理解。在后续产品使用中,对调用功能部分的完善以及进一步开发也更得心应手,通过不断测试来暴露问题,才能慢慢解决问题。 

6.3心得总结 

本文对每个调用功能的场景进行说明,有关调用方面还包含很多的知识,需要后续不断学习,需要不断积累夯实基础。本次对调用模块功能的场景分析后,对于整体ESB产品的使用逐渐能够串联起来,对于HTTP调用以及底层接口的实现逻辑有掌握了一些。 

在之前调用功能开发升级的过程中,在代码方面的能力有所提升,学习到很多新知识。在工作学习中,不断完善知识体系,扫除知识盲点,不断提升自身的技术能力。工作时要认真仔细,开发时要全方面考虑问题,只有这样才能把工作做得更好,打造出更完善的产品。 

你可能感兴趣的:(产品文档,应用集成,流程集成)