CN116521150A - 一种支持异构融合的分布式系统及通信方法 - Google Patents

一种支持异构融合的分布式系统及通信方法 Download PDF

Info

Publication number
CN116521150A
CN116521150A CN202310809192.XA CN202310809192A CN116521150A CN 116521150 A CN116521150 A CN 116521150A CN 202310809192 A CN202310809192 A CN 202310809192A CN 116521150 A CN116521150 A CN 116521150A
Authority
CN
China
Prior art keywords
terminal equipment
edge server
interface
distributed
programming interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310809192.XA
Other languages
English (en)
Other versions
CN116521150B (zh
Inventor
陈鹏
张斌
李云翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hopen Software Engineering Co ltd
Original Assignee
Hopen Software Engineering Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hopen Software Engineering Co ltd filed Critical Hopen Software Engineering Co ltd
Priority to CN202310809192.XA priority Critical patent/CN116521150B/zh
Publication of CN116521150A publication Critical patent/CN116521150A/zh
Application granted granted Critical
Publication of CN116521150B publication Critical patent/CN116521150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供了一种支持异构融合的分布式系统及通信方法,所述系统包括:边缘服务器,用于解释并运行业务逻辑代码,调用终端设备上的分布式编程接口,接收执行结果;多个终端设备,用于由所述边缘服务器调用,执行计算和/或通过执行器设备执行操作,将执行结果反馈给边缘服务器;与所述边缘服务器连接的多个所述终端设备支持不同的硬件架构和不同的操作系统;所述调用终端设备上的分布式编程接口,是将一段业务逻辑代码发送到终端设备上运行。本发明的优势在于:开发人员不需要学习嵌入式系统的开发方法;支持快速更换不同类型架构的终端设备;无需为不同架构的终端设备编写不同的执行器设备驱动;业务逻辑代码可以跨平台在异构的软硬件平台间自由流动。

Description

一种支持异构融合的分布式系统及通信方法
技术领域
本发明属于设备网络通信、工业控制、智能制造领域,具体涉及一种支持异构融合的分布式系统及通信方法。
背景技术
随着工业制造智能化和云端协同思想的发展,信息化技术不断地推广应用,在现代化的制造业工厂中,基本实现了设备的联网运行,和数据的实时监测、预警、收集、和共享。
在传统的设备协同模型中,主要重视设备间的数据通讯、动作协调等,通过私有协议传输数据和控制命令,达到协同工作的目的。在功能的相互调用和共享上,还没有成熟的架构。
在传统的工业制造服务模型中,通常采用CS架构,由服务器下达命令给终端设备,并获取返回的数据和状态。
在传统的工业制造嵌入式终端设备的软件架构中,往往以终端设备原生开发为主要手段,通常采用C语言开发本地程序软件,然后通过总线或数据接口与上位机或者服务器进行通讯。
在传统的工业制造嵌入式设备软件系统中,在异构架构的设备之间共享业务逻辑层应用软件,几乎是不可能的。同一个应用层软件,通常都要经过交叉开发,进行平台移植,然后才能在不同的软硬件平台上实现适配,可以得到正常的运行。
在传统的工业制造嵌入式设备软硬件系统中,分布式系统,通常需要在异构设备上进行原生开发,然后再共同进行联调,架构一旦确定下来,如果更换其中某一个组成单元的软硬件架构,需要进行移植开发,在新的软硬件架构上进行适配,原有软件才能得到正常运行,组成新的分布式系统。
以实际的工厂车间内的应用为例,在工厂车间内部署分布式生产环境,由服务器和终端设备组成。终端设备是由不同的硬件平台和软件平台共同组成。
当需要开发本车间独有的业务软件的时候。首先需要在服务器上开发软件的总体结构和服务模块,然后在终端设备上开发软件的终端应用软件,通过网络和服务器通讯,形成C/S结构的分布式系统。
由于业务逻辑只有本车间的工作人员比较熟悉,因此,在这种架构下,就有两种传统的开发模式:
其一,是本车间的开发人员,学习这种嵌入式终端设备的开发方法,并在其上开发终端应用软件;
本方法的问题是,本车间的工作人员需要学习各种终端设备的开发方法,比较耗时耗力。
其二,是将终端软件的开发工作外包给专业的嵌入式开发人员进行开发。
本方法的问题是,本车间的工作人员需要向外包人员解释整个业务逻辑,外包人员在充分理解该业务逻辑的基础上,才能开展开发工作。
通常,终端设备通过串口与执行器设备进行通讯,都是采用下述连接方式进行工作:
由终端设备的网口或者无线网络连接服务器再连接云平台,或者直接连接云平台,同时由终端设备的串口连接执行器设备,并通过串口对该设备进行控制。设备厂商一般会提供通过串口初始化和控制设备的一系列命令,并同时提供针对不同软硬件平台开发该设备驱动程序的指导或者源代码例程。该执行器设备的用户,则需要在自己选定的终端设备上(例如STM32平台)在特定的软件系统支持下(例如FreeRTOS、HAL库),参考执行器设备厂商提供的例程,编写代码,完成对该设备驱动程序的编写。
该执行器每连接一种新的终端设备,就需要在这种终端设备上进行原生开发,编写驱动程序,以支持对设备的操作。为此,设备厂商必须将驱动例程适配尽可能多的软硬件平台,以便支持更多的用户使用该执行器。
当本车间的业务软件开发完成并部署到分布式系统后,如果某一终端设备失效需要更换时,只能更换一模一样的主板。如果终端设备替换不同的主板,因为新主板与旧主板的架构不同或者开发环境不同,就需要重新开发移植终端业务软件。
发明内容
本发明的目的在于克服现有技术边缘服务器与终端设备进行通信与终端设备的硬件架构和操作系统紧耦合的缺陷。
为了实现上述目的,本发明提出了一种支持异构融合的分布式系统,所述系统包括:
边缘服务器,用于解释并运行业务逻辑代码,调用终端设备上的分布式编程接口,接收执行结果;和
多个终端设备,用于由所述边缘服务器调用,执行计算和/或通过执行器设备执行操作,将执行结果反馈给边缘服务器;与所述边缘服务器连接的多个所述终端设备支持不同的硬件架构和不同的操作系统;
所述调用终端设备上的分布式编程接口,是将一段业务逻辑代码发送到终端设备上运行。
作为上述系统的一种改进,所述边缘服务器和所述终端设备支持相同的分布式编程接口;
所述分布式编程接口,定义了业务逻辑代码的编写规范。
作为上述系统的一种改进,所述执行器设备的驱动代码符合分布式编程接口。
作为上述系统的一种改进,所述边缘服务器包括:
分布式边缘操作系统,用于管理边缘服务器的软、硬件资源;
分布式编程接口管理模块,用于注册和调用终端设备所支持的分布式编程接口,接收执行结果;
命令解释器,用于解释和运行业务逻辑代码,通过分布式编程接口管理模块,调用终端设备的分布式编程接口。
作为上述系统的一种改进,所述终端设备包括:
网络服务层,用于接收所述边缘服务器发送的业务逻辑代码;
分布式编程接口调度模块,用于按照业务逻辑代码的分类将业务逻辑代码分发给支持库进行业务逻辑代码的执行和结果的回送;
命令解释器,用于解释和运行业务逻辑代码;
支持库,用于实现终端设备所具有的具体功能,包括对执行器设备的操作和/或数据的计算;
嵌入式操作系统,用于管理终端设备的软、硬件资源。
作为上述系统的一种改进,所述支持库包括:
工业接口,用于实现执行器设备的操作;
功能函数,包括终端设备上支持的基本运算和操作功能的函数的封装;
服务函数,包括终端设备上支持的业务功能的服务的封装。
作为上述系统的一种改进,所述工业接口包括:
接口映射层,在业务逻辑代码的配置文件中进行配置,用于使逻辑接口支持被转向和再分配;
逻辑接口层,按照统一的规范对工业接口进行二次封装,用于使接口的名称、配置和使用方法得到统一的定义,使工业接口实现跨平台应用;
驱动支持层,用于在操作系统的驱动层面,实现对硬件接口的抽象化,按照操作系统的规范,实现对硬件接口的配置和读写动作的封装;
硬件接口层,用于实现工业接口的上电驱动和初始化操作。
作为上述系统的一种改进,所述系统还包括:
云平台,用于接收终端设备支持的分布式编程接口的注册,由边缘服务器通过云平台调用远程终端设备提供的分布式编程接口。
本发明还提供一种支持异构融合的分布式系统通信方法,基于上述系统实现,所述边缘服务器端的通信方法包括:
步骤S1:边缘服务器解释并运行业务逻辑代码;
步骤S2:边缘服务器按照业务逻辑代码的描述解析终端设备的标识,查找终端设备;
步骤S3:边缘服务器向终端设备发送连接请求,与终端设备建立连接;
步骤S4:边缘服务器向终端设备发送调用分布式编程接口的命令,接收执行结果;
步骤S5:边缘服务器向终端设备发送断开连接请求。
作为上述方法的一种改进,所述查找终端设备,具体为:根据终端设备的标识查找,或者查找空闲的支持被调用的分布式编程接口的终端设备。
作为上述方法的一种改进,所述终端设备端的通信方法包括:
步骤C1:终端设备等待边缘服务器的连接请求;
步骤C2:终端设备收到边缘服务器的连接请求,建立连接,等待命令;
步骤C3:终端设备接收到边缘服务器的调用命令,接收输入参数,执行相应的功能;需要使用硬件接口时,调用设备接口协议,进行通讯;需要执行动作时,调用本地驱动,控制执行器设备完成动作;业务逻辑代码执行完毕,通过连接返回最终的结果数据;
步骤C4:终端设备等待下一个命令;如果收到断开连接请求,则断开连接,返回执行步骤C1。
与现有技术相比,本发明的优势在于:
1、在嵌入式系统上实现分布式编程接口的支持系统,不需要了解上层的业务逻辑。而且,该支持系统无需根据终端设备的变化而变化。当上层业务逻辑发生修改,或者该终端设备拆除迁移到其他车间的工作环境中时,该支持系统仍然有效。终端设备只需要进行简单地配置后,就可以平滑接入新的环境,开展工作。
业务应用软件的开发人员只需要集中精力使用分布式编程接口开发业务软件,实现业务逻辑即可。不需要学习嵌入式系统的开发方法。
2、分布式系统中,当某一终端设备失效需要更换时,可以更换同类型不同架构的主板,而不一定要更换一模一样的主板。只要新的主板上具备分布式编程接口的支持系统就可以直接接入分布式系统。
3、采用分布式编程接口支持模块,执行器设备厂商可以摆脱大范围适配智能终端平台的问题。
在终端设备上建立分布式编程接口支持模块,是每个终端设备厂商应该完成的工作。这项工作完成后,会为很多使用分布式编程接口编程开发的用户提供方便。
执行器设备厂商,只需要使用分布式编程接口编写一份驱动代码,以文本的形式发布,提供给最终用户使用即可。
最终用户使用分布式编程接口编写业务应用软件,并直接调用执行器厂家的驱动代码,就可以操作执行器进行需要的动作。
4、用户可以在业务逻辑层的软件代码中,发送指令,动态地将该驱动程序下发到目标终端设备上去,让驱动程序在终端设备本地运行。然后远程调用其驱动程序提供的接口,完成执行器设备的初始化和读写操作等。本发明使得业务软件编程的代码可以不受限制的跨平台在异构的软硬件平台间自由流动。
附图说明
图1所示为支持异构融合的分布式系统总体架构图;
图2所示为使用支持异构融合的分布式系统构建本地工业设备示意图;
图3所示为跨区域远程调用终端设备示意图;
图4所示为边缘服务器软件系统架构图;
图5所示为终端设备软件系统架构图;
图6所示为命令解释器执行流程示意图;
图7所示为工业接口架构图;
图8所示为终端设备调用本地支持函数流程示意图。
具体实施方式
下面结合附图对本发明的技术方案进行详细的说明。
1、支持异构融合的分布式系统及通信方法的总体架构
如图1所示,系统总体架构包括边缘服务器和终端设备。
边缘服务器上运行着分布式边缘操作系统,用于管理边缘服务器的软、硬件资源;分布式边缘操作系统上运行着分布式编程接口管理模块,负责分布式编程接口的注册、发现和调用。分布式边缘操作系统通过其内置的命令解释器,解释并运行包含工业应用业务逻辑的代码,该代码由一系列的运算和命令组成,这些代码实现了工业应用软件的完整业务逻辑。这些运算和命令,指明了需要调用某一个终端设备上的某个分布式编程接口。其中,调用某一个终端设备上的某个分布式编程接口,是将一段业务代码发送到该终端设备上运行,并获取执行结果。
终端设备可以分布在不同的地方,由网络进行连接,可以与边缘服务器进行通讯,接收指令。在终端设备上,通过工业接口,连接有具体的执行器设备,可以执行数据采集或者机械动作等。由终端设备上连接的这些执行器,执行工业应用业务逻辑代码规定的动作,以实现该业务逻辑。
执行器设备厂商,只需要使用分布式编程接口编写一份驱动代码,以文本的形式发布,提供给最终用户使用即可。由于驱动代码符合分布式编程接口,因此与终端设备的硬件架构和操作系统无关。
终端设备上运行着嵌入式操作系统,嵌入式操作系统上运行着分布式编程接口支持模块和支持库。
由于每个终端设备的硬件架构和操作系统互不相同,所以,终端设备上运行的分布式编程接口支持模块,需要分别在各自的开发平台上进行原生开发,并符合本系统分布式应用编程接口(DLAPI)的标准。
DLAPI接口规范定义了描述性编程语言的规范,程序员使用该描述性编程语言编写代码,运行时代码被发送到终端设备上执行。
支持库是符合DLAPI接口规范的服务集合,包括数学库、图像处理库和工业应用支持库等。
数学库包括工业应用软件可能用到的基础数学处理,例如快速傅里叶变换(FFT)等。
图像库包括了特殊应用(例如机器视觉)所需要基础图像处理的算法支持,例如高斯模糊、拉普拉斯变换等。
工业应用支持库包含了工业应用软件中常用的数字信号处理算法、图像边缘检索、人脸识别或工业接口通信协议等。
边缘服务器和终端设备,共同组成了一个工业应用的完整模型。边缘服务器和终端设备可以通过广域网远程连接,也可以都部署在一个局域网中,组成一台完整的本地工业设备,如图2所示。
一些终端设备上的支持库,可以提供比较纯粹的计算能力,这种能力可以以服务的形式存在,并被远程调用,例如图像处理、图像匹配、模式识别、生成G代码(加工代码)等。这些能力被封装成远程编程接口的形式,突破边缘集群的限制,分享到云平台,可以提供给区域外的用户调用。云平台,用于接收终端设备支持的分布式编程接口的注册,由边缘服务器通过云平台调用远程终端设备提供的分布式编程接口。也可以进一步,设立专用的算力服务边缘集群,提供各种算力服务。由于普通嵌入式终端设备的计算能力一般都有限,这种算力服务的共享,作为算力的额外补充,可以大大提高普通终端设备的实际处理能力。如图3所示。
2、边缘服务器软件系统
边缘服务器软件系统架构如图4所示。
在边缘服务器上运行着分布式边缘操作系统,分布式边缘操作系统上运行着分布式编程接口管理模块,主要负责终端设备所支持的编程接口在边缘服务器上的注册和调用。同时分布式编程接口管理模块也可以通过广播,发现本局域网内的未注册的终端设备及其支持的分布式编程接口。
在分布式编程接口管理模块之上,运行着命令解释器。命令解释器通过词法分析和语法分析,解释用户编写的业务逻辑软件代码,形成代码执行列表。按照代码执行列表内的指令,顺序执行,通过分布式编程接口管理模块,分别调用相应的分布式编程接口。
分布式边缘操作系统,通过网络通信层,将命令和参数发送到终端设备上,由终端设备上的分布式编程接口支持模块,完成指令的执行,并返回执行结果。
3、终端设备软件系统
终端设备软件系统架构如图5所示。
1)网络服务层,作为分布式编程接口支持模块接收外接指令的入口,边缘服务器通过该层将命令和参数发送到终端设备上。终端设备将接收到的命令和参数交由分布式编程接口的调度模块进行分发和调度。其中,如果接收到边缘服务器下发的需要在本地运行的业务逻辑代码,则交由内置的命令解释器解释并执行。
不论是网络下发的还是本地解释的接口调用,不论是函数调用还是服务调用,都通过调度模块的分发,最终直接访问函数指针,实现对本地方法的调用。
2)分布式编程接口调度模块,用于通过网络服务层接收到远程调用的命令,并按照命令的分类将命令和参数分发给不同的模块进行命令的执行和返回值的回送。如果命令是远程发送到本地执行的代码,则调用命令解释器执行该段代码,并将最终结果,回送给调用者。如果是功能函数或者服务函数,则通过命令代码表查找到该命令的函数指针并组织好参数,然后进行调用,并将返回值,发送给调用者。
3)命令解释器,如图6所示,用于对远程发送到本地的代码进行解释。首先,对接收的代码进行词法分析和语法分析,构建语法结构树;然后,将语法结构翻译成可供运行的命令结构,构建命令结构树;最后,由命令解释器,遍历该命令结构树,完成程序的执行。
本系统支持的代码语法结构如下:
语句名称,
参数数组,
分支语法结构,
下一语法结构,
……
其中,命令结构包括:
语句代码,
函数指针,
执行数数组,
分支命令结构,
下一命令结构,
……
其中,语句代码定义如下:
一个语句代码为一个32位的2进制数:
最高位2字节为代码分类:
最高位2字节为00,代表保留语句;
最高位2字节为01,代表调用基础函数;
最高位2字节为10,代表调用功能函数;
最高位2字节为11,代表调用服务函数;
随后的30个字节,为具体命令代码的整数表达,便于执行时查找。
其中,函数指针,用于根据语句代码,查找到相应的函数指针,便于代码执行时访问。
本地支持系统启动时,会创建一个表,把命令代码和该命令对应的函数指针对应起来,称为命令代码表,便于命令解释器查找。
终端设备上的分布式编程接口支持模块,主要包括三部分内容的支持:工业接口、功能函数和服务函数的支持。
4)工业接口,如图7所示,包括终端设备上本身所具有的物理硬件接口的支持。包括了接口映射层、逻辑接口层和驱动支持层,这3层共同架构在操作系统的硬件接口层之上,完成对分布式编程接口中工业接口的支持,实现对工业接口的远程配置和读写访问操作。该功能需要明确指定终端设备的ID。
接口映射层,在工业应用业务逻辑代码的本地配置文件中进行配置,使得上述逻辑接口可以被转向和再分配。例如通常情况下,串口1被映射到串口1,而在某些发生冲突的情况下,可以将串口1映射到实际的串口8。这样就可以实现接口的再分配,在不改变原有业务逻辑代码的情况下,重新分配物理接口的资源。
逻辑接口层,按照统一的规范,对工业接口进行二次封装。以使得接口的名称,配置和使用方法等得到统一的定义,形成标准。使得工业接口实现跨平台应用。
驱动支持层,在操作系统的驱动层面,实现对硬件接口的抽象化,按照操作系统的规范,实现对硬件接口的配置和读写动作的封装。
硬件接口层,实现硬件平台上工业接口的上电驱动和初始化等操作。这部分工作,一般由操作系统完成。
5)功能函数,包括终端设备上能支持的基本运算和操作功能的函数封装。例如配置和读写工业接口,进行快速傅里叶变换、矩阵运算、向量运算等基本的功能。功能函数支持是实现分布式编程接口的基础,是支持业务逻辑层应用软件编程的基本功能,也是本发明区别于微服务的本质特点。
功能函数包括计算类和功能类函数:
计算类函数包括:
矩阵运算函数:输入多维矩阵,完成指定的矩阵运算。例如转置、矩阵加、矩阵减、矩阵数乘、矩阵乘、矩阵求逆、求行列式、求特征值和特征向量、矩阵的卷积等运算。
向量运算函数:输入向量,完成指定的向量运算。例如向量加、求向量的数量积、求向量的向量积等。
快速傅里叶变换函数:输入一段离散数字信号,计算并输出其在频率域的信号。或者输入一段频率域的信号,计算并输出其时间域的信号。
拉普拉斯变换函数:输入一个矩阵,使用拉普拉斯算子进行卷积运算,计算并输出其梯度矩阵。
高斯模糊函数:输入一个矩阵和系数,使用高斯分布作为权重进行卷积运算,对输入的矩阵进行平滑去噪,并输出新的矩阵。
功能类函数包括:
驱动代码:由外设厂家提供或者用户自主书写的某个外设(执行器设备)的驱动程序代码。包括了Init()、Open()、Read()、Write()、Close()等函数。需要以驱动的名称为前缀进行调用。
下发代码:由其他设备远程下发到本地终端设备的代码片段,主动注册为可远程调用函数后,就可以被其他设备远程调用。需要以该代码片段的名称为前缀进行调用。
远程调用接口形式如下:
RemoteCall(String TerminalID,String FunctionName,……);
TerminalID 表示智能终端的ID,FunctionName表示要远程调用的函数的名字。
使用该接口,其他智能终端可以远程调用本地智能终端上规范已经规定的功能函数或者自主注册的功能函数。
6)服务函数,包括终端设备上完整的业务功能的服务函数的封装。例如人脸识别、车牌识别、文字识别、语音识别等完整的服务型功能。该服务型功能对完整的业务功能实现封装,可以独立完成一定的业务逻辑,用于比较重视本地资源综合利用的相对独立的服务型功能的封装。该功能和微服务类似,但是区别于微服务的是,该功能除了重视运算结果之外,同样重视服务发生的场所,也就是具有明确的ID的终端设备。例如人脸识别,同样需要指明是在哪个闸机上的终端设备上接驳的摄像头采集到的图像,也就是发生人脸识别这个服务的终端设备是被明确指定的。
服务函数举例如人脸检测和人脸匹配功能等。
使用常规方法时,首先在终端设备上开发人脸检测的服务软件,在卡口设置摄像机,检测进出口的图像。如果发现人脸,则将人脸部分图像,发送到服务器进行人脸匹配,识别其身份。
使用本系统方法时,在终端设备端,首先在卡口的设备上完成人脸检测应用的开发,然后基于分布式编程接口支持模块,将人脸检测功能作为服务函数注册发布,最后部署到1到多台人脸匹配的服务器,做为智能终端注册到边缘服务器。在边缘服务器端,在边缘服务器上编写代码,指定ID,远程调用卡口处的人脸检测服务函数,获得人脸的图像。然后再调用人脸匹配服务函数,此时可以不指定终端ID,边缘服务器软件系统寻找空闲的终端设备之一调用人脸匹配服务函数。
7)基础函数是功能函数的较底层的支持库,包括了基本的运算,例如基础的数学库,开方运算、幂运算、对数运算等,和基础的数据操作,例如数组、链表、队列、栈等数据结构及其操作的支持库。这些函数主要用于本地计算,若非特别的需求,可以不支持远程调用。功能函数和服务函数,按需要可以调用本地的基础函数。
8)底层支持库,是嵌入式开发所必需的基本函数库。例如C库。这些函数主要用于底层支持,不支持远程调用。
4、终端设备调用本地支持函数的流程
如图8所示,在终端设备上,通过分布式编程接口,调用本地支持函数的过程如下:
在终端设备上,当网络服务层接收到边缘服务器下发的指令时,首先将命令和输入参数进行解析,进行数据格式转换和命令到本地函数指针的对应。
通过访问函数指针,实现对相应函数的调用,并将经过格式转换后的数据,作为输入参数。
获取并保存函数的返回值,包括函数本身的返回值,和按照分布式编程接口规范从参数表列返回的返回值。
最后,将准备好的返回值,通过网络连接,返回调用者。
当在本地执行下发的业务逻辑代码片段的时候,由分布式编程接口支持模块内置的命令解释器,执行数据格式的转换,并发起对函数的调用。
5、应用本系统架构的分布式系统运行流程
应用本系统架构的分布式系统运行流程如下:
在边缘服务器端:
步骤1:在边缘服务器上,开始运行边缘操作系统,启动命令解释器,解释运行编写好的分布式应用软件的描述性代码;
步骤2:边缘服务器按照代码的描述解析终端设备的标识,在本集群中找到该设备;
步骤3:边缘服务器向终端设备发送连接请求,与终端设备建立连接;
步骤4:边缘服务器解析代码,按照其程序的描述,调用远程接口,接收执行结果。
步骤5:边缘服务器向终端设备发送断开连接请求,断开连接。
边缘服务器并行调用,可以同时和多台终端设备通讯,并执行代码。
终端设备间可以直接建立连接,进行数据交换,也可以通过边缘服务器中转。
在终端设备端:
步骤1:终端设备开机初始化,等待连接请求;
步骤2:终端设备收到连接请求,建立连接,然后等待命令;
步骤3:终端设备接收到边缘服务器的调用命令,接收输入参数,执行相应的功能函数,保存或者发送输出参数;需要使用硬件接口时,调用设备接口协议,进行通讯;需要执行动作时,调用本地驱动,控制执行器设备完成动作;代码执行完,按照要求,通过连接,返回最终的结果数据;
步骤4:终端设备继续等待下一个命令;
步骤5:终端设备收到断开连接请求,断开连接。
步骤6:终端设备继续等待连接。
使用本申请的方法部署分布式生产环境具有如下优点:
1、在嵌入式系统上实现分布式编程接口的支持系统,不需要了解上层的业务逻辑。而且,该支持系统无需根据终端设备的变化而变化。当上层业务逻辑发生修改,或者该终端设备拆除迁移到其他车间的工作环境中时,该支持系统仍然有效。终端设备只需要进行简单地配置后,就可以平滑接入新的环境,开展工作。
业务应用软件的开发人员只需要集中精力使用分布式编程接口开发业务软件,实现业务逻辑即可。不需要学习嵌入式系统的开发方法。
2、分布式系统中,当某一终端设备失效需要更换时,可以更换同类型不同架构的主板,而不一定要更换一模一样的主板。只要新的主板上具备分布式编程接口的支持系统就可以直接接入分布式系统。
3、采用分布式编程接口支持模块,执行器设备厂商可以摆脱大范围适配智能终端平台的问题。
在终端设备上建立分布式编程接口支持模块,是每个终端设备厂商应该完成的工作。这项工作完成后,会为很多使用分布式编程接口编程开发的用户提供方便。
执行器设备厂商,只需要使用分布式编程接口编写一份驱动代码,以文本的形式发布,提供给最终用户使用即可。
最终用户使用分布式编程接口编写业务应用软件,并直接调用执行器厂家的驱动代码,就可以操作执行器进行需要的动作。
为了进一步提高效率,用户也可以在业务逻辑层的软件代码中,发送指令,动态地将该驱动程序下发到目标终端设备上去,让驱动程序在终端设备本地运行。然后远程调用其驱动程序提供的接口,完成执行器设备的初始化和读写操作等。
因此,本发明的核心是使得业务软件编程的代码可以不受限制的跨平台在异构的软硬件平台间自由流动。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (11)

1.一种支持异构融合的分布式系统,其特征在于,所述系统包括:
边缘服务器,用于解释并运行业务逻辑代码,调用终端设备上的分布式编程接口,接收执行结果;和
多个终端设备,用于由所述边缘服务器调用,执行计算和/或通过执行器设备执行操作,将执行结果反馈给边缘服务器;与所述边缘服务器连接的多个所述终端设备支持不同的硬件架构和不同的操作系统;
所述调用终端设备上的分布式编程接口,是将一段业务逻辑代码发送到终端设备上运行。
2.根据权利要求1所述的支持异构融合的分布式系统,其特征在于,所述边缘服务器和所述终端设备支持相同的分布式编程接口;
所述分布式编程接口,定义了业务逻辑代码的编写规范。
3.根据权利要求2所述的支持异构融合的分布式系统,其特征在于,所述执行器设备的驱动代码符合分布式编程接口。
4.根据权利要求2所述的支持异构融合的分布式系统,其特征在于,所述边缘服务器包括:
分布式边缘操作系统,用于管理边缘服务器的软、硬件资源;
分布式编程接口管理模块,用于注册和调用终端设备所支持的分布式编程接口,接收执行结果;和
命令解释器,用于解释和运行业务逻辑代码,通过分布式编程接口管理模块,调用终端设备的分布式编程接口。
5.根据权利要求2所述的支持异构融合的分布式系统,其特征在于,所述终端设备包括:
网络服务层,用于接收所述边缘服务器发送的业务逻辑代码;
分布式编程接口调度模块,用于按照业务逻辑代码的分类将业务逻辑代码分发给支持库进行业务逻辑代码的执行和结果的回送;
命令解释器,用于解释和运行业务逻辑代码;
支持库,用于实现终端设备所具有的具体功能,包括对执行器设备的操作和/或数据的计算;和
嵌入式操作系统,用于管理终端设备的软、硬件资源。
6.根据权利要求5所述的支持异构融合的分布式系统,其特征在于,所述支持库包括:
工业接口,用于实现执行器设备的操作;
功能函数,包括终端设备上支持的基本运算和操作功能的函数的封装;和
服务函数,包括终端设备上支持的业务功能的服务的封装。
7.根据权利要求6所述的支持异构融合的分布式系统,其特征在于,所述工业接口包括:
接口映射层,在业务逻辑代码的配置文件中进行配置,用于使逻辑接口支持被转向和再分配;
逻辑接口层,按照统一的规范对工业接口进行二次封装,用于使接口的名称、配置和使用方法得到统一的定义,使工业接口实现跨平台应用;
驱动支持层,用于在操作系统的驱动层面,实现对硬件接口的抽象化,按照操作系统的规范,实现对硬件接口的配置和读写动作的封装;和
硬件接口层,用于实现工业接口的上电驱动和初始化操作。
8.根据权利要求2所述的支持异构融合的分布式系统,其特征在于,所述系统还包括:
云平台,用于接收终端设备支持的分布式编程接口的注册,由边缘服务器通过云平台调用远程终端设备提供的分布式编程接口。
9.一种支持异构融合的分布式系统通信方法,基于权利要求1-8任一所述系统实现,所述通信方法包括:
步骤S1:边缘服务器解释并运行业务逻辑代码;
步骤S2:边缘服务器按照业务逻辑代码的描述解析终端设备的标识,查找终端设备;
步骤S3:边缘服务器向终端设备发送连接请求,与终端设备建立连接;
步骤S4:边缘服务器向终端设备发送调用分布式编程接口的命令,接收执行结果;
步骤S5:边缘服务器向终端设备发送断开连接请求。
10.根据权利要求9所述的支持异构融合的分布式系统通信方法,其特征在于,所述查找终端设备,具体为:根据终端设备的标识查找,或者查找空闲的支持被调用的分布式编程接口的终端设备。
11.根据权利要求9或10所述的支持异构融合的分布式系统通信方法,其特征在于,所述通信方法还包括:
步骤C1:终端设备等待边缘服务器的连接请求;
步骤C2:终端设备收到边缘服务器的连接请求,建立连接,等待命令;
步骤C3:终端设备接收到边缘服务器的调用命令,接收输入参数,执行相应的功能;需要使用硬件接口时,调用设备接口协议,进行通讯;需要执行动作时,调用本地驱动,控制执行器设备完成动作;业务逻辑代码执行完毕,通过连接返回最终的结果数据;
步骤C4:终端设备等待下一个命令;如果收到断开连接请求,则断开连接,返回执行步骤C1。
CN202310809192.XA 2023-07-04 2023-07-04 一种支持异构融合的分布式系统及通信方法 Active CN116521150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310809192.XA CN116521150B (zh) 2023-07-04 2023-07-04 一种支持异构融合的分布式系统及通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310809192.XA CN116521150B (zh) 2023-07-04 2023-07-04 一种支持异构融合的分布式系统及通信方法

Publications (2)

Publication Number Publication Date
CN116521150A true CN116521150A (zh) 2023-08-01
CN116521150B CN116521150B (zh) 2023-10-13

Family

ID=87405020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310809192.XA Active CN116521150B (zh) 2023-07-04 2023-07-04 一种支持异构融合的分布式系统及通信方法

Country Status (1)

Country Link
CN (1) CN116521150B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170006141A1 (en) * 2015-07-02 2017-01-05 Prasenjit Bhadra Cognitive Intelligence Platform for Distributed M2M/ IoT Systems
US20170053243A1 (en) * 2015-08-18 2017-02-23 Bmc Software, Inc. Extensibility of business logic shared across a business process orchestration engine, a rule engine, and a user interface
CN108255605A (zh) * 2017-12-29 2018-07-06 北京邮电大学 一种基于神经网络的图像识别协同计算方法及系统
CN111158902A (zh) * 2019-12-09 2020-05-15 广东工业大学 一种移动边缘分布式机器学习系统和方法
CN113703772A (zh) * 2021-08-23 2021-11-26 北京计算机技术及应用研究所 基于ice的异构平台高效智能计算应用架构及其构建方法
CN114153482A (zh) * 2022-02-09 2022-03-08 深圳市爱云信息科技有限公司 基于数字孪生DaaS平台的深度学习编程方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170006141A1 (en) * 2015-07-02 2017-01-05 Prasenjit Bhadra Cognitive Intelligence Platform for Distributed M2M/ IoT Systems
US20170053243A1 (en) * 2015-08-18 2017-02-23 Bmc Software, Inc. Extensibility of business logic shared across a business process orchestration engine, a rule engine, and a user interface
CN108255605A (zh) * 2017-12-29 2018-07-06 北京邮电大学 一种基于神经网络的图像识别协同计算方法及系统
CN111158902A (zh) * 2019-12-09 2020-05-15 广东工业大学 一种移动边缘分布式机器学习系统和方法
CN113703772A (zh) * 2021-08-23 2021-11-26 北京计算机技术及应用研究所 基于ice的异构平台高效智能计算应用架构及其构建方法
CN114153482A (zh) * 2022-02-09 2022-03-08 深圳市爱云信息科技有限公司 基于数字孪生DaaS平台的深度学习编程方法及系统

Also Published As

Publication number Publication date
CN116521150B (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
CN110912782B (zh) 一种数据采集方法、装置及存储介质
CN113703772A (zh) 基于ice的异构平台高效智能计算应用架构及其构建方法
Hu et al. Software-defined edge computing (SDEC): Principles, open system architecture and challenges
EP4148568A1 (en) Method for realizing live migration, chip, board, and storage medium
CN116521150B (zh) 一种支持异构融合的分布式系统及通信方法
CN111079909B (zh) 运算方法、系统及相关产品
WO2022062510A1 (zh) 实现热迁移的设备及方法
CN114461186A (zh) 一种面向华为昇腾加速卡的自动编译运行c/c++代码的方法
CN108073389A (zh) 一种基于脚本语言的引擎系统
CN111400300B (zh) 一种边缘设备管理方法、装置及管理设备
CN111078284B (zh) 运算方法、系统及相关产品
CN115794355B (zh) 任务处理方法、装置、终端设备及存储介质
CN111079914B (zh) 运算方法、系统及相关产品
CN115396305B (zh) 一种基于微服务架构的异构网络设备统一管控方法和系统
CN111079915B (zh) 运算方法、装置及相关产品
CN111078285B (zh) 运算方法、系统及相关产品
CN111078281B (zh) 运算方法、系统及相关产品
CN111079907B (zh) 运算方法、装置及相关产品
CN111078125B (zh) 运算方法、装置及相关产品
CN111078280B (zh) 运算方法、装置及相关产品
CN111079913B (zh) 运算方法、装置及相关产品
CN111079911B (zh) 运算方法、系统及相关产品
CN116450212A (zh) 作业提交方法、装置、设备及计算机可读存储介质
CN116757287A (zh) 推理引擎调用方法、装置、计算机设备、存储介质及程序
CN114610277A (zh) 分区操作系统环境下机载软件组件中间件的设计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant