一种数据流转方法、装置、后端设备及存储介质与流程

文档序号:31233190发布日期:2022-08-23 22:08阅读:74来源:国知局
一种数据流转方法、装置、后端设备及存储介质与流程

1.本发明涉及数据传输领域,具体而言,涉及一种数据流转方法、装置、后端设备及存储介质。


背景技术:

2.人工智能的到来,使得机器学习技术在越来越多的领域被应用,可以通过基于大量数据进行训练,并利用训练好的模型进行预测。
3.可视化机器学习平台可以利用通过组合现有的组件去搭建模型,然后运行模型。但是当前常规的可视化机器学习平台当面对模型运行期时,模型内的大量组件会消耗服务器的计算资源以及网络带宽资源,引起的大量数据交互会大大延迟机器学习的进度,导致机器学习平台的实用性不高。


技术实现要素:

4.本发明实施例提供一种数据流转的方法、装置、后端设备及存储介质,可以提升数据流转的效率的同时节省应用开发的时间。
5.第一方面,本发明实施例提供一种数据流转方法,应用于后端设备,所述后端设备上预先创建有多个组件实例进程,所述多个组件实例进程为前端设备上安装的预设应用的多个组件实例对应的进程实体;所述方法包括:获取到针对所述多个组件实例进程中第一组件实例进程输入的调用参数;所述调用参数包括:所述第一组件实例进程中的调用端口的信息;采用所述第一组件实例进程,根据所述调用端口的信息,调用第二组件实例进程,以从所述第二组件实例进程中获取源数据;所述第二组件实例进程为所述第一组件实例进程对应的第一组件实例的上游组件的实例进程;采用所述第一组件实例进程对所述源数据进行业务处理,得到所述第一组件实例进程的目标数据。
6.可选地,所述调用参数还包括:业务请求参数;所述采用所述第一组件实例进程,根据所述调用端口的信息,调用第二组件实例进程,以从所述第二组件实例进程中获取源数据,包括:根据所述调用端口的标识,采用与所述调用端口关联的连线的信息,确定所述连线的对端的所述第二组件实例进程,以及所述第二组件实例进程上的被调用端口的信息;根据所述业务请求参数以及所述被调用端口的信息,对所述第二组件实例进程进行调用。
7.可选地,所述方法还包括:采用所述第一组件实例进程的数据输出端口,通过预设的消息队列服务,将所述目标数据传输至第三组件实例进程,其中,所述第三组件实例进程为所述第一组件实例的下游组件的实例进程。
8.可选地,所述获取到针对所述多个组件实例进程中第一组件实例进程输入的调用参数之前,所述方法还包括:接收到来自前端设备的从所述第二组件实例进程对应的第二组件实例至所述第一组件实例的第一连线信息;所述第一连线信息包括:第一目标端口的信息、第一协议的信息;将所述第一连线信息添加至所述预设应用中;若所述第一目标端口为所述第二组件实例上的端口,则将所述第一连接信息同步至所述第一组件实例进程;根据所述第一协议的信息,确定所述第一连线信息为调用连线。
9.可选地,所述采用所述第一组件实例进程的数据输出端口将所述目标数据传输至第三组件实例进程之前,所述方法还包括:接收到来自前端设备的从所述第一组件实例至所述第三组件实例进程对应的第三组件实例的第二连线信息;所述第二连线信息包括:第二目标端口的信息、第二协议的信息;将所述第二连线信息添加至所述预设应用中;若所述第二目标端口为所述第一组件实例上的端口,将所述第二连接信息同步至所述第三组件实例进程;根据所述第二协议的信息,确定所述第二连线信息为消息连线,并向所述消息队列服务订阅所述下游连线信息中所述第二目标端口的信息,以通过所述第二目标端口接收来自所述第一组件实例进程的数据。
10.可选地,所述获取到针对所述多个组件实例进程中第一组件实例进程输入的调用参数之前,所述方法还包括:接收前端设备发送的多个组件实例的信息;根据所述多个组件实例的信息,安装所述多个组件实例,并启动所述多个组件实例进程;将所述多个组件实例进程添加至所述预设应用中。
11.可选地,所述方法还包括:若所述多个组件实例中存在第四组件实例具有被调用端口,开启所述第四组件实例的所述被调用端口的远程调用服务或者超文本传输协议服务。
12.第二方面,本发明实施例还提供一种数据流转装置,应用于后端设备,所述后端设备上预先创建有多个组件实例进程,所述多个组件实例进程为前端设备上安装的预设应用的多个组件实例对应的进程实体;所述装置包括:获取模块,用于获取到针对所述多个组件实例进程中第一组件实例进程输入的调用参数;所述调用参数包括:所述第一组件实例进程中的调用端口的信息;调用模块,用于采用所述第一组件实例进程,根据所述调用端口的信息,调用第二组件实例进程,以从所述第二组件实例进程中获取源数据;所述第二组件实例进程为所述第一组件实例进程对应的第一组件实例的上游组件的实例进程;处理模块,用于采用所述第一组件实例进程对所述源数据进行业务处理,得到所述第一组件实例进程的目标数据。
13.第三方面,本发明实施例还提供一种后端设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的程序指令,当后端设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述程序指令,以执行如第一方面任一所述的数据流转方法的步骤。
14.第四方面,本发明实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一所述的数据流转方法的步骤。
15.本发明提供一种数据流转方法、装置、后端设备及存储介质,应用于后端设备,后端设备上预先创建有多个组件实例进程,多个组件实例进程为前端设备上安装的预设应用的多个组件实例对应的进程实体;获取针对多个组件实例进程中第一组件实例进程输入的调用参数;调用参数包括:第一组件实例进程中的调用端口的信息;采用第一组件实例进程,根据调用端口的信息,调用第二组件实例进程,以从第二组件实例进程中获取源数据;第二组件实例进程为第一组件实例进程对应的第一组件实例的上游组件的实例进程;采用第一组件实例进程对源数据进行业务处理,得到第一组件实例进程的目标数据。通过这种方式,利用组件进行数据流转的过程中使得数据不再局限于仅由上游组件流向下游组件,本发明中下游组件可以直接发起向上游组件进行数据的调用,可以根据下游组件的调用参数,从上游组件中获取数据,最终将获取的数据进行处理,使得下游组件在接收上游组件发送的数据时更为个性化,使得下游组件在进行数据处理时更为高效、提升数据流转的效率的同时节省应用开发的时间;并且在这种方式下,不同组件实例进程可以分别独立地进行数据流转,彼此之间不受影响,避免多个组件实例在同时运行时造成的后端设置资源拥堵。
附图说明
16.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
17.图1为本发明实施例提供的一种数据流转方法的流程示意图;图2为本发明提供的一种可视化机器学习平台;图3为本发明提供的一种数据调用的流程示意图;图4为本发明提供的一种数据调用配置方法的流程示意图;图5为本发明提供的另一种数据调用的示意图;图6为本发明提供的一种数据传输配置方法的流程示意图;图7为本发明提供的一种数据传输的示意图;图8为本发明提供的一种组件实例进程创建方法的流程示意图;图9为本发明提供的一种数据流转装置的示意图;图10为本发明提供的一种数据流转设备的示意图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
19.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
21.在对本发明进行详细地解释之前,先对本发明的应用场景予以介绍。
22.组件化的开发过程具有良好的可复用性、可拓展性和可维护性,使得开发者可以更为高效地进行应用的处理。但是,在实际应用中,尤其是在由组件构成的机器学习模型的运行期时,由于现有技术中两两组件之间仅支持数据由上游组件流转至下游组件,下游组件仅能被动地接收来自上游组件发送的全部数据并进行处理,下游组件无法对上游组件将发送的数据进行主动地调用或选择,使得下游组件在进行数据处理的过程中工作量巨大,占用大量cpu资源,影响后端设备的网络速度和吞吐量,从而导致应用的运行不畅。
23.基于此,本发明提供一种数据流转方法、装置、后端设备及存储介质,应用于后端设备,后端设备上预先创建有多个组件实例进程,多个组件实例进程为前端设备上安装的预设应用的多个组件实例对应的进程实体;获取针对多个组件实例进程中第一组件实例进程输入的调用参数;调用参数包括:第一组件实例进程中的调用端口的信息;采用第一组件实例进程,根据调用端口的信息,调用第二组件实例进程,以从第二组件实例进程中获取源数据;第二组件实例进程为第一组件实例进程对应的第一组件实例的上游组件的实例进程;采用第一组件实例进程对源数据进行业务处理,得到第一组件实例进程的目标数据。本发明下述实施例提供的数据流转方法由后端设备执行,该后端设备可以为具有处理功能的计算机设备,其可以为笔记本电脑、台式电脑、服务器等计算机设备。
24.如下结合附图通过多个实施例进行解释说明。图1为本发明实施例提供的一种数据流转方法的流程示意图。如图1所示,该方法应用于后端设备,后端设备上预先创建有多个组件实例进程,多个组件实例进程为前端设备上安装的预设应用的多个组件实例对应的进程实体,包括:s110,获取到针对多个组件实例进程中第一组件实例进程输入的调用参数。
25.调用参数包括:第一组件实例进程中的调用端口的信息。
26.在本实施例中,第一组件实例进程为多个组件实例进程中拥有调用端口的任一组件构成的实例进程。可选地,对于组件而言,可以分为如下多种组件类型:数据组件,用于代理持久化数据的组件,例如csv(comma-separated values,逗号分隔值)组件、数据库表组件等,这类组件提供被调用端口;采集组件,用于采集实时数据的组件,例如opc(ole for process control,对象链接与嵌入的过程控制)实时数据采集组件、mq(message queue,消息队列)实时数据采集组件等,这类组件提供消息输出端口;读取组件,用于从调用端口读取上游数据组件的数据,并通过数据输出端口发送数据到下游组件,这类组件提供调用端口;计算组件,用于从消息输入端口接收上游组件发送来的数据并做一定处理,然后通过消
息输出端口发送至下游组件,例如预处理组件、模型训练组件、模型运行组件,这类组件提供消息输入端口;写入组件,用于从消息输入端口接收上游组件发送来的数据,并通过调用端口将数据写入到数据组件中,这类组件提供消息输入端口。
27.不同的组件可以依据其拥有的端口执行不同的处理操作。例如,拥有调用端口的组件可以向拥有被调用端口的组件发送调用请求;拥有消息输出端口的组件可以向有用消息输入端口的组件传输数据。
28.在本发明的实施例中,组件实例以微服务的形式存在,即每个组件实例都拥有一个独立的进程,这样每个组件(包括第三方自定义组件)都可以以不同的编程语言(如java、c++、python、go等)来进行原生开发,实现不同编程语言编写的组件之间的数据流转过程,拓展组件开发的多样性,避免传统使用固定语言编写的组件进行数据流转导致的适用范围狭窄的问题。
29.后端设备会实时对多个组件实例进程进行监控,若检测到多个组件实例进程中有任一组件实例进程输入的调用参数,表明该组件实例进程需要向其上游组件进行数据的调用,则获取该调用参数,得到该组件实例进程中的调用端口的信息。
30.可选地,后端设备可以采用远程调用服务(remote procedure cal,rpc)或者超文本传输协议服务(hyper text transfer protocol,http)进行源数据的调用。
31.s120,采用第一组件实例进程,根据调用端口的信息,调用第二组件实例进程,以从第二组件实例进程中获取源数据。
32.第二组件实例进程为第一组件实例进程对应的第一组件实例的上游组件的实例进程。
33.当后端设备获取到第一组件实例进输入的调用参数后,便可以采用第一组件实例进程,根据调用端口的信息,调用第一组件实例进程对应的第一组件实例的上游组件的实例进程,即调用第二组件实例进程。在本实施例中,第一组件实例进程对应的第一组件实例,与,第二组件实例进程对应的第二组件实例为两两连接的组件实例,其中,第二组件实例为上游组件,第一组件实例为下游组件。通过调用第二组件实例进程,即可从第二组件实例进程中获取源数据,即,让源数据从第二组件实例进程中流转至第一组件实例进程中,与现有技术不同的时,虽然数据都是从上游组件发送至下游组件,但是数据的调用是由下游组件发起的,即下游组件可以自主决定需要接收到的数据,避免大量无关数据导致的数据干扰问题。
34.s130,采用第一组件实例进程对源数据进行业务处理,得到第一组件实例进程的目标数据。
35.当第一组件实例进程接收到来自第二组件实例进程发送的源数据后,便可以对源数据进行业务处理。可选地,若第一组件实例进程对应的程序功能为“数据分割”则对源数据进行数据分割处理操作;若第一组件实例进程对应的程序功能为“线性回归”则对源数据进行线性回归处理操作。
36.通过业务处理操作后,就可以得到第一组件实例进程的目标数据,该目标数据即为通过第一组件实例进程对应的程序功能处理后的数据。
37.可选地,在一种可能的实现方式中,当第二组件实例进程向第一组件实例进程发送源数据时,可以对源数据先进行分包处理,再对分包后的数据依次发送至预设数据库或
预设内存中,全部发送完成后第一组件实例进程从预设数据库或预设内存中读取数据,通过这样的方式避免在源数据过大时直接全部发送造成的数据资源拥堵现象。
38.在本实施例中,利用组件进行数据流转的过程中使得数据不再局限于仅由上游组件流向下游组件,本发明中下游组件可以直接发起向上游组件进行数据的调用,可以根据下游组件的调用参数,从上游组件中获取数据,最终将获取的数据进行处理,使得下游组件在接收上游组件发送的数据时更为个性化,使得下游组件在进行数据处理时更为高效、提升数据流转的效率的同时节省应用开发的时间;并且在这种方式下,不同组件实例进程可以分别独立地进行数据流转,彼此之间不受影响,避免多个组件实例在同时运行时造成的后端设置资源拥堵。
39.为了清楚地说明数据流转的过程,本发明还提供一种可视化机器学习平台的示意图以用于解释数据流转的过程。图2为本发明提供的一种可视化机器学习平台。如图2所示,该可视化机器学习平台包括:前端101和后端102。其中后端102包括:管理进程103,是整个平台的主要后端进程,用于管理组件镜像、组件实例、组件状态、应用模板、应用实例和应用状态,以及接收前端和第三方系统的请求;mq(message queue,消息队列)服务器104,用于平台内外的消息流转,包括组件和组件之间、组件和管理进程之间、组件和第三方系统之间、管理进程和第三方系统之间;多个组件实例进程105,是用户在前端101通过拖拽或应用模板创建出来的一个组件实例在后端102的进程实体,多个组件实例进程为前端101上安装的预设应用的多个组件实例对应的进程实体。
40.具体地,其中管理进程103包括:组件状态管理模块103a,用于从组件实例进程105接收状态心跳,以管理所有组件实例的运行状态,包括工作状态(例如空闲、单次运行、循环运行、错误、完成等)、工作进度、资源占用等。
41.组件实例管理模块103b,用于管理所有组件实例的基础信息,包括组件名、组件uuid(universally unique identifier,通用唯一识别码)、端口信息、安装路径、启动命令、停止命令等;组件镜像管理模块103c,用于管理所有组件的原始安装包。
42.应用状态管理模块103d,用于从组件状态管理模块103a获取应用内的组件的运行状态,并汇总成应用状态 。
43.应用实例管理模块103e,用于管理所有应用实例的基础信息,包括应用名、应用uuid、包含的组件列表、包含的连线列表等 。
44.应用模板管理模块103f,用于管理预设的应用模板,以便于按模板快速创建应用实例。
45.组件实例进程105的每个进程都集成一个运行时模块105a,用于接收管理进程103的指令、发送状态心跳给管理进程103、接收上游的数据和发送数据到下游。
46.可选地,管理进程103可以按微服务的方式拆分成多个进程。
47.可选地,组件实例进程105的每个进程除了集成一个运行时模块105a外,还会集成一个业务模块,用于对组件实例进程接收到的数据进行数据处理。
48.在本实施例中,当后端102获取到多个组件实例进程105中任一拥有调用端口的第一组件实例进程输入的调用参数后,该第一组件实例进程105中对应的运行时模块105a就
可以根据调用参数的信息以及与该第一组件实例进程对应的上游组件实例进程的连线信息,查找出第二组件实例进程的地址以及第二组件实例进程对应的组件包含的被调用端口的名称,进行源数据的调用;第一组件实例进程得到源数据后,在组件实例进程对应的业务模块进行源数据的业务处理,最终得到第一组件实例进程的目标数据。
49.在一种可能的实现方式中,后端102中的多个组件实例进程105的运行时模块105a可以分别向组件状态管理模块103a发送每个组件实例进程的状态心跳;当组件状态管理模块103a接收到多个组件实例进程的状态心跳后,由应用状态管理模块103d汇总多个组件实例的状态心跳,作为预设应用的状态。例如,组件实例进程的状态心跳可以为:离线、空闲、单次执行中、循环执行中、完成、错误;应用的状态可以为:离线、部分离线、空闲、执行中、错误;当多个组件实例进程中有任一组件实例进程的状态心跳为“错误”,则应用的状态为“错误”;当多个组件实例进程中所有组件实例进程的状态心跳为“离线”,则应用的状态为“离线”,当多个组件实例进程中有任一组件实例进程的状态心跳为“离线”,则应用的状态为“部分离线”;当多个组件实例进程中有任一组件实例进程的状态心跳为“单次执行中”或“循环执行中”,则应用的状态为“执行中”;当多个组件实例进程中所有组件实例进程的状态心跳为“空闲”,则应用的状态为“空闲”。
50.在本实施例中,在可视化机器学习中的多个组件实例进程之间,可以由下游组件的组件实例进程调用上游组件的组件实例进程,给予了下游组件更大的自由度,使得下游组件可以主动向上游组件调用数据,更适用于机器学习平台这种复杂的数据处理场景。
51.在上述图1提供一种数据流转方法的基础上,本发明化提供了一种数据调用的可能实现方式。图3为本发明提供的一种数据调用的流程示意图。如图3所示,调用参数还包括:业务请求参数;上述s120中,采用第一组件实例进程,根据调用端口的信息,调用第二组件实例进程,以从第二组件实例进程中获取源数据,包括:s210,根据调用端口的标识,采用与调用端口关联的连线的信息,确定连线的对端的第二组件实例进程,以及第二组件实例进程上的被调用端口的信息。
52.在本实施例中,由于在组件化开发中,两两组件进行连接,中间具有连线,发送数据的组件作为上游组件,接收数据的组件作为下游组件;当后端设备获取得到第一组件实例进程中调用端口的信息后, 则第一组件实例进程对应的第一组件实例即通过调用端口与另一组件进行连线,该连线的一端连接第一组件实例的调用端口,另一端连接另一组件实例的被调用端口,基于此,便可以根据调用端口关联的连线的信息,确定连线的对端的第二组件实例进程,该第二组件实例进程对应的第二组件实例具有被调用端口,便可以得到第二组件实例进程上的被调用端口的信息。
53.s220,根据业务请求参数以及被调用端口的信息,对第二组件实例进程进行调用。
54.在本实施例中,第一组件实例进程可以主动向第二组件实例进程进行参数的调用,可选地,第一组件实例进程可以向第二组件实例进程发送调用数据的时间范围或版本或数量,例如,向第二组件实例发送“调用过去1小时内的数据”或“调用近10000字节的数据”或“调用1.0版本的数据”作为业务请求参数,从而只向第二组件实例进程调用部分、所需的数据,使得第一组件实例进程无需对所有的数据进行处理,在进行数据处理的过程中也更为灵活,可以基于相同的组件得到不同的目标数据结果。
55.在本实施例中,通过下游组件向上游组件发送业务请求参数,使得下游组件调用
得到的上游组件的部分数据,精简下游组件接收到数据,使得下游组件无需对上游组件所有的数据进行处理,可以更有针对性地对接收到数据进行选择,提升数据流传的效率,增加组件化应用开发的多样性。
56.在上述图1提供的一种数据流转的基础上,可选地,采用第一组件实例进程的数据输出端口,通过预设的消息队列服务,将目标数据传输至第三组件实例进程。
57.其中,第三组件实例进程为第一组件实例的下游组件的实例进程。
58.在本实施例中,对于第一组件实例进程对应的第一组件实例和第三组件实例进程对应的第三组件而言,其中第一组件为上游组件,第三组件为下游组件。在本实施例中,第一组件实施例不仅具有调用端口调用其上游组件对应的第二组件实例进程的源数据,还具有数据输出端口,可以将处理得到的目标数据通过数据输出端口向其下游组件对应的第三组件实例进程进行传输。
59.其中,第一组件实例进程可以通过预设的消息队列服务(mq)将目标数据传输至第三组件实例进程。
60.则在这种方式下,虽然数据也是直接由上游组件传输至下游组件,但是数据都是通过内存进行流转的,比现有的使用数据库表表和文件来实现数据流转的机器学习平台的延时要更短,例如mqtt(mq 遥测传输)通常能达到10ms左右。并且由于mq的异步特性,使得整个应用的性能并不会受组件实例个数的影响。因此本发明提供的数据流转方法,可以满足包含了多个组件实例的应用场景,即使当下有多个组件实例进程都需要运行,但是多个组件实例进程之间不会受到影响,拓展了组件化应用的适用范围,即使是遇到复杂的、多数据流的运行场景,使用了本发明提供的数据流转方法去搭建组件平台,可以保证组件平台的流畅运行。
61.在上述图1提供的一种数据流转方式的基础上,本发明还提供一种数据调用配置的可能实现方式。图4为本发明提供的一种数据调用配置方法的流程示意图。如图4所示,上述s110中,获取到针对多个组件实例进程中第一组件实例进程输入的调用参数之前,方法还包括:s410,接收到来自前端设备的从第二组件实例进程对应的第二组件实例至第一组件实例的第一连线信息。
62.第一连线信息包括:第一目标端口的信息、第一协议的信息。
63.在本实施中,在获取到针对多个组件实例进程的第一组件实例进程输入的调用参数之前,由于需要确定第一组件实例进程的数据流转方式,所以需要先接收来自前端设备的第二组件实例进程对应的第二组件实例至第一组件实例的第一连线信息。在前端设备中,用户将第二组件实例和第一组件实例通过第一连线进行连线,即在前端设备就会生成第一连线信息。其中,第一连线信息包括:第一目标端口的信息、第一协议的信息。可选地,第一目标端口的信息为数据发送端的端口信息,第一协议的信息为两个组件之间进行数据流转需要用到的通信协议信息。
64.s420,将第一连线信息添加至预设应用中。
65.当后端得到第一连线信息后,需要将第一连线信息添加至预设应用中,使得后续应用在运行时使用第一连线信息指示第一组件实例和第二组件实例之间的连接关系。
66.s430,若第一目标端口为第二组件实例上的端口,则将第一连接信息同步至第一
组件实例进程。
67.在本实施例中,第一连线信息处理要在应用中保存以外,还需要同步给组件实例进程,如通过第一协议的信息,直接修改组件实例进程的配置文件。但并非连线两端的组件实例进程都接收该连线信息,在本实施中,仅由数据接收方,即第一组件实例进程保存连线信息。若第一目标端口为第二组件实例上的端口,则证明第二组件实例为数据发送方,第一组件实例为数据接收方,则将第一连接信息同步至第一组件实例进程。
68.s440,根据第一协议的信息,确定第一连线信息为调用连线。
69.在本实施例中,第一协议信息包括http协议、rpc协议。若第一连线信息包括第一协议信息,则代表第一连线为调用连线。
70.为了清楚地说明数据调用的过程,本发明提供另一种数据调用的可能实现方式。图5为本发明提供的另一种数据调用的示意图。如图5所示,a组件和b组件之间进行数据调用。s501,在进行数据调用的过程中,a组件作为下游组件,需要读取作为上游组件的b组件的数据,因此需要调用a组件的第一运行时模块202a的接口,该调用是一个进程内的模块间调用,输入的参数包括:a组件的调用端口的信息、业务请求参数(例如时间范围等);s502、第一运行时模块202a根据a组件的调用端口的信息以及连线信息,查找出连线对端的目标组件的服务地址和目标端口的名称,然后通过rpc或http进行调用,调用参数中除了包括业务模块传入的参数外,还包括目标端口的名称;s503、b组件的第二运行时模块201a在接收到rpc或http请求之后,根据目标端口的名称,将调用请求转发至b组件的第二业务模块201b进行处理;s504、b组件的第二业务模块201b处理完业务请求(即根据参数读取数据)后,将调用结果(即读取到的数据)返回给b组件的第二运行时模块201a;s505、b组件的第二运行时模块201a将调用结果返回给a组件的第一运行时模块202a;s506、a组件的第一运行时模块202a将调用结果返回给a组件的第一业务模块202b,最终由a组件的第一业务模块202b对接收的数据进行数据处理。
71.在本实施例中,通过确定好两个组件之间的连线信息为调用连线,即可以根据组件实例输入的调用参数,调用获取上游组件的源数据,从而进行数据的流转,提升组件开发的效率。
72.可选地,本发明实施例还提供一种数据传输的可能实现方式。图6为本发明提供的一种数据传输配置方法的流程示意图。如图6所示,上述采用第一组件实例进程的数据输出端口将目标数据传输至第三组件实例进程之前,方法还包括:s510,接收到来自前端设备的从第一组件实例至第三组件实例进程对应的第三组件实例的第二连线信息。
73.第二连线信息包括:第二目标端口的信息、第二协议的信息。
74.在前端设备中,用户将第一组件实例和第三组件实例通过第二连线进行连线,即在前端设备就会生成第二连线信息。其中,第二连线信息包括:第二目标端口的信息、第二协议的信息。可选地,第二目标端口的信息为数据发送端的端口信息,第二协议的信息为两个组件之间进行数据流转需要用到的通信协议信息。
75.s520,将第二连线信息添加至预设应用中。
76.当后端得到第二连线信息后,需要将第二连线信息添加至预设应用中,使得后续应用在运行时使用第二连线信息指示第一组件实例和第三组件实例之间的连接关系。
77.s530,若第二目标端口为第一组件实例上的端口,将第二连接信息同步至第三组件实例进程。
78.在本实施例中,第二连线信息处理要在应用中保存以外,还需要同步给组件实例进程,如通过第二协议的信息,直接修改组件实例进程的配置文件。但并非连线两端的组件实例进程都接收该连线信息,在本实施中,仅由数据接收方,即第三组件实例进程保存连线信息。若第二目标端口为第一组件实例上的端口,则证明第一组件实例为数据发送方,第三组件实例为数据接收方,则将第二连接信息同步至第三组件实例进程。
79.s540,根据第二协议的信息,确定第二连线信息为消息连线,并向消息队列服务订阅下游连线信息中第二目标端口的信息,以通过第二目标端口接收来自第一组件实例进程的数据。
80.在本实施例中,第二协议信息包括mqtt协议、rabbitmq协议。若第二连线信息包括第二协议信息,则代表第二连线为消息连线。如果是消息连线,则需要向mq服务器订阅目标端口的数据,后续就可以接收到目标端口通过mq发送出来的数据。为了能够实现端口到端口的数据收发,端口的消息主题中至少包含:发送数据的组件实例的uuid;发送数据的端口的名称;通过这种形式,通信主题和端口实现了一一对应。在使用mqtt的一些实施例中,通信主题的具体形式如下:发送数据的组件实例的uuid/发送消息的端口的名称(其中“/”是mqtt主题的分隔符);在使用rabbitmq的一些实施例中,通信主题的具体形式如下:发送消息的组件实例的uuid.发送消息的端口的名称(其中“.”是rabbitmq主题的分隔符)。
81.为了清楚地说明数据调用的过程,本发明提供一种数据传输的可能实现方式。图7为本发明提供的一种数据传输的示意图。如图7所示,a组件和c组件之间通过消息连线进行数据传输。在进行数据传输的过程中,s601、a组件的第一业务模块202b将从上游组件读取到的数据,通过a组件的第一运行时模块202a的发送接口进行发送,传入的参数包括:a组件的消息输出端口名、发送的数据;s602、a组件的第一运行时模块202a利用mq客户端将要发送的数据发送到mq服务器104,通信主题使用上述方法进行构造;s603、mq服务器104将数据转发至c组件的第三运行时模块203a;s604、c组件的第三运行时模块203a将数据转发至c组件的第三业务模块203b,最终由c组件的第三业务模块203b对接收的数据进行数据处理。
82.可选地,对于调用连线而言,调用端口所在的组件称为源组件,被调用端口所在的组件成为目标组件;对于消息连线而言,消息输入端口所在的组件称为源组件,消息输出端口所在的组件称为目标组件。连线信息还包括:目标组件的uuid(识别码),形式如“3e16488a-a42b-40a9-ae28-c18502f8a3cd”;目标组件的服务地址,形式如“ip:端口”,其中端口是rpc端口或http端口;目标端口的名称,形式如“input”、“output”;源组件的uuid,形式同目标组件的uuid;源组件的服务地址,形式同目标组件的地址;源端口的名称,形式同目标端口的名称;协议,例如调用连线的协议包括rpc、http等,消息连线的协议包括mqtt、rabbitmq等。
83.在本实施例中,通过确定好两个组件之间的连线信息为消息连线,可以将数据依据预设的通信协议,通过预设的消息队列服务进行数据传输,提升组件开发的效率。
84.在上述图1提供的数据流转方法的基础上,本发明还提供一种组件实例进程创建
的可能实现方式。图8为本发明提供的一种组件实例进程创建方法的流程示意图。如图8所示,上述s110中,获取到针对多个组件实例进程中第一组件实例进程输入的调用参数之前,方法还包括:s610,接收前端设备发送的多个组件实例的信息。
85.由于在软件开发中有大量重复使用的组件,为了便于开发者进行重复使用,可以创建预设的组件仓库。在本实施例中,用户可以直接在前端设备直接从预设的组件仓库中拖拽使用组件。在预设的组件仓库中,不同的组件按照功能描述的不同划分为若干类,可以按照需求从不同组件类中拖拽需要的组件进行数据连线,从而完成对组件的组合。在一种可能的实现方式中,组件也可以“边创建边使用”,即用户可以在组件开发环境中根据自定义功能完成组件的编写后,即创建了一个新的组件后,可以直接使用这个新的组件进行数据连线,从而完成对组件的组合。在本实施例中,每一个组件都对应一个组件实例,后端设备可以从前端设备中接收得到用户创建的多个组件实例的信息。可选地,组件实例的信息包括组件的名称、类型、位置信息等。
86.s620,根据多个组件实例的信息,安装多个组件实例,并启动多个组件实例进程。
87.在本实施例中,可选地,结合图2提供的可视化机器学习平台,可以利用组件实例管理模块103b调用组件镜像管理模块103c安装组件实例到指定的预设路径。与此同时,组件实例管理模块103b中包括各个组件的启动命令,基于对个组件实例的启动命令,启动多个组件实例进程。
88.s630,将多个组件实例进程添加至预设应用中。
89.在本实施例中,可选地,可以利用应用实例管理模块103e将各个组件实例进程加入至预设应用中,成为预设应用运行进程的一部分。
90.通过将前端设备的组件实例在后端创建组件实例进程,为后续进行数据流转提供基础。
91.可选地,上述方法还包括:s710,若多个组件实例中存在第四组件实例具有被调用端口,开启第四组件实例的被调用端口的远程调用服务或者超文本传输协议服务。
92.在上述任一实施例中,任一组件的组件实例进程都包括运行时模块和业务模块。若多个组件实例中存在第四组件实例具有被调用端口,即该第四组件实例对应的组件实例进程中的运行时模块包括被调用端口,则需要为第四组件实例的被调用端口开启rpc服务或http服务。
93.可选地,若多个组件实例中存在包括数据输出端口或数据输入端口的组件,则需要将该组件的数据输出端口或数据输入端口连接mq服务器。
94.可选地,任一组件实例进程运行时模块向业务模块开放统一接口,包括调用借口、注册被调用处理回调借口、发送消息接口、注册消息处理回调接口这4种接口,其中运行时模块的调用方式包括同步调用和异步调用。
95.在本实施例中,通过对被调用端口开启rpc服务或http服务,使得被调用端口的组件做好被调用数据的准备。
96.图9为本发明提供的一种数据流转装置的示意图。如图9所示,该数据流转装置,应用于后端设备,后端设备上预先创建有多个组件实例进程,多个组件实例进程为前端设备
上安装的预设应用的多个组件实例对应的进程实体,该装置包括:获取模块1000,用于获取到针对多个组件实例进程中第一组件实例进程输入的调用参数;调用参数包括:第一组件实例进程中的调用端口的信息;调用模块2000,用于采用第一组件实例进程,根据调用端口的信息,调用第二组件实例进程,以从第二组件实例进程中获取源数据;第二组件实例进程为第一组件实例进程对应的第一组件实例的上游组件的实例进程;处理模块3000,用于采用第一组件实例进程对源数据进行业务处理,得到第一组件实例进程的目标数据。
97.可选地,调用参数还包括:业务请求参数。
98.可选地,调用模块2000,具体还用于根据调用端口的标识,采用与调用端口关联的连线的信息,确定连线的对端的第二组件实例进程,以及第二组件实例进程上的被调用端口的信息;根据业务请求参数以及被调用端口的信息,对第二组件实例进程进行调用。
99.可选地,该数据流转装置还包括传输模块,用于采用第一组件实例进程的数据输出端口,通过预设的消息队列服务,将目标数据传输至第三组件实例进程,其中,第三组件实例进程为第一组件实例的下游组件的实例进程。
100.可选地,该数据流转装置还包括接收模块,用于接收到来自前端设备的从第二组件实例进程对应的第二组件实例至第一组件实例的第一连线信息;第一连线信息包括:第一目标端口的信息、第一协议的信息;可选地,该数据流转装置还包括添加模块,用于将第一连线信息添加至预设应用中;若第一目标端口为第二组件实例上的端口,则将第一连接信息同步至第一组件实例进程;可选地,该数据流转装置还包括确定模块,用于根据第一协议的信息,确定第一连线信息为调用连线。
101.可选地,接收模块,具体还用于接收到来自前端设备的从第一组件实例至第三组件实例进程对应的第三组件实例的第二连线信息;第二连线信息包括:第二目标端口的信息、第二协议的信息;可选地,添加模块,具体还用于将第二连线信息添加至预设应用中;若第二目标端口为第一组件实例上的端口,将第二连接信息同步至第三组件实例进程;可选地,确定模块,具体还用于根据第二协议的信息,确定第二连线信息为消息连线,并向消息队列服务订阅下游连线信息中第二目标端口的信息,以通过第二目标端口接收来自第一组件实例进程的数据。
102.可选地,接收模块,具体还用于接收前端设备发送的多个组件实例的信息;可选地,添加模块,具体还用于根据多个组件实例的信息,安装多个组件实例,并启动多个组件实例进程;将多个组件实例进程添加至预设应用中。
103.可选地,处理模块3000,具体还用于若多个组件实例中存在第四组件实例具有被调用端口,开启第四组件实例的被调用端口的远程调用服务或者超文本传输协议服务。
104.以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个数字信号处理器(digital singnal processor,简称dsp),或,一个或者多个现场可
编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
105.图10为本发明提供的一种数据流转设备的示意图。如图10所示,该后端设备10包括:处理器11、存储器12和总线13,存储器12存储有处理器11可执行的程序指令,当后端设备10运行时,处理器11与存储器12之间通过总线13通信,处理器11执行程序指令,以执行上述方法实施例。
106.可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
107.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
108.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
109.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
110.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
111.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1