CN113360135B - 一种基于弹性伸缩的异构物联网应用远程编译方法 - Google Patents

一种基于弹性伸缩的异构物联网应用远程编译方法 Download PDF

Info

Publication number
CN113360135B
CN113360135B CN202110428307.1A CN202110428307A CN113360135B CN 113360135 B CN113360135 B CN 113360135B CN 202110428307 A CN202110428307 A CN 202110428307A CN 113360135 B CN113360135 B CN 113360135B
Authority
CN
China
Prior art keywords
compiling
internet
things
service
application
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.)
Active
Application number
CN202110428307.1A
Other languages
English (en)
Other versions
CN113360135A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202110428307.1A priority Critical patent/CN113360135B/zh
Publication of CN113360135A publication Critical patent/CN113360135A/zh
Application granted granted Critical
Publication of CN113360135B publication Critical patent/CN113360135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

一种基于弹性伸缩的异构物联网应用远程编译方法应用于一种基于弹性伸缩的异构物联网应用远程编译系统,该系统按照功能划分包含命令行工具、网关服务、消息队列、以及各种编译执行服务四个模块。本发明方法包括:步骤1.物联网应用的编译执行服务的配置、创建、以及接入到远程编译系统;步骤2.系统实时监控编译执行服务的资源消耗情况,并根据资源消耗情况动态扩缩容编译执行服务的副本数量;步骤3.用户通过命令行工具提交物联网应用的编译请求,并获取编译请求的结果。本发明方法支持多种物联网应用的编译执行,并且拥有较强的可扩展性,提高物联网应用的编译效率,降低开发人员配置交叉编译环境的时间,提升开发人员的开发物联网应用的效率。

Description

一种基于弹性伸缩的异构物联网应用远程编译方法
技术领域
本发明提供一种基于弹性伸缩的异构物联网应用远程编译方法。
背景技术
根据《物联网白皮书(2020年)》显示,物联网全球连接数持续上升。物联网领域仍具备巨大的发展空间,根据GSMA发布的《2020年移动经济》报告显示,2019年全球物联网总连接数达到120亿,预计2025年,全球物联网连接数规模将达到246亿,年复合增长率高达13%。物联网连接数的持续增加、物联网技术的持续进步会产生大量的物联网应用的开发和测试需求。
一般情况下,在进行一种物联网应用的开发之前,开发人员需要在本地配置相应物联网设备的交叉编译环境,不同的物联网设备可能需要不同的交叉编译环境。当开发人员在本地计算机上开发物联网应用时,需要提前配置所有物联网设备的交叉编译环境,可能还要解决不同物联网设备的交叉编译环境之间的冲突问题,这一过程会降低开发人员的效率。同时,开发人员需要在自己的计算机上编译物联网程序代码,某些物联网应用的编译过程会需要大量的计算资源,若本地计算机的资源不足会导致编译时间较长,再次降低开发人员的效率。
目前市场上推出了在线的物联网设备开发IDE,将本地的编译工具迁移到云端,并在云端进行代码编译。基于在线的IDE,用户仅使用浏览器就可以完成物联网应用的开发工作,无需配置本地编译工具,比如Arduino Web Editor和Mbed-OS Compiler等。但是基于以上平台进行物联网应用的开发工作,仍然会存在以下问题:1.所支持的物联网设备种类比较单一,基本上只支持所属厂商或者系列的设备;2.目前,现有的远程编译系统基于单体Web服务,无法高效利用服务器资源,导致物联网应用的编译时间长,用户的实际体验差。这些问题也会降低开发人员的效率。
发明内容
本发明要克服现有技术的上述缺点,对现有物联网领域的上述情况导致的物联网应用的交叉编译环境配置繁琐、远程编译系统支持的物联网设备种类单一以及无法高效利用服务器资源等问题,本发明提供一种基于弹性伸缩的异构物联网应用远程编译方法,具体可应用于本发明提供的一种基于弹性伸缩的异构物联网应用远程编译系统,该系统按照功能划分包含命令行工具、网关服务、消息队列、以及各种编译执行服务四个模块。
本发明的一种基于弹性伸缩的异构物联网应用远程编译方法,包括以下步骤:
步骤1:物联网应用的编译执行服务的配置、创建、以及接入到远程编译系统。
(1.1)整理每种物联网应用类型的交叉编译链和配置文件。
(1.2)将每种物联网应用的交叉编译链和配置文件,打包配置到每种物联网应用的编译执行服务的容器镜像中。
(1.3)分别启动每种物联网应用的编译执行服务,开始从消息队列中订阅该类型的物联网应用的编译任务。
步骤2:系统实时监控编译执行服务的资源消耗情况,并根据资源消耗情况动态扩缩容编译执行服务的副本数量。
(2.1)每种编译执行服务在启动时分别设定CPU资源消耗的期望指标Cexpect
(2.2)每隔一段时间T,系统获取每种编译执行服务的CPU资源消耗的实际测量值Creal
(2.3)系统根据每种编译执行服务的当前副本数Numbercurrent、以及CPU资源消耗的实际测量值Creal和期望指标Cexpect计算每种编译执行服务的期望副本数Numberexpect。计算期望副本数的公式为:
Numberexpect=ceil[Numbercurrent*(Creal/Cexpect)]
(2.4)系统将每种编译执行服务的副本数量调整为期望副本数量Numberexpect
步骤3:用户通过命令行工具提交物联网应用的编译请求,并获取编译请求的结果。
(3.1)用户通过命令行工具将编译请求提交至网关服务,参数包括物联网应用的源代码压缩包、编译类型和开发板类型。
(3.2)网关服务首先为编译任务创建任务编号,然后将编译任务发布至消息队列,将不同编译类型的编译任务设定为不同的消息队列话题。
(3.3)编译执行服务订阅到该类型的编译任务。解压源代码压缩包,依次编译所有源代码文件,得到该编译任务的编译结果。
(3.4)编译执行服务将任务编号和编译结果打包发布至消息队列。
(3.5)网关服务订阅到编译结果,并将编译结果返回给用户。
与现有技术相比,本发明的有益效果是:引入一种基于弹性伸缩的异构物联网应用远程编译方法,支持多种物联网应用的编译执行,并且拥有较强的可扩展性,提高物联网应用的编译效率,降低开发人员配置交叉编译环境的时间,提升开发人员的开发物联网应用的效率。
附图说明
为了更清楚地说明本发明实例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法的系统架构图。
图2是本发明方法的工作流程图。
图3是本发明方法的订阅关系图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明提供一种基于弹性伸缩的异构物联网应用远程编译方法,具体可应用于本发明提供的一种基于弹性伸缩的异构物联网应用远程编译系统。如图1,该系统包括为命令行工具、网关服务、消息队列、以及各种编译执行服务。在此系统中,用户在本地计算机上使用命令行工具,网关服务、消息队列以及各种编译执行服务需要部署在云端服务器。
具体包括以下步骤:
步骤1:物联网应用的编译执行服务的配置、创建、以及接入到远程编译系统。
(1.1)整理每种物联网应用类型的交叉编译链和配置文件。种类可包含Arduino、Contiki-NG、AliOS-Things、Mbed-OS、STM32等,配置文件具体包含编译执行服务启动时加载的编译类型和编译命令。
(1.2)将每种物联网应用的交叉编译链和配置文件,打包配置到每种物联网应用的编译执行服务的容器镜像中,容器采用的是Docker实现。
(1.3)分别启动每种物联网应用的编译执行服务,开始从消息队列中订阅该类型的物联网应用的编译任务。如图3,Mbed-OS编译执行服务的每个副本会从消息队列中订阅compile.mbed-os话题来接收Mbed-OS类型的编译任务;Arduino编译执行服务的每个副本会从消息队列订阅compile.arduino话题来接收Arduino类型的编译任务。每种类型的编译执行服务只会从消息队列中订阅到该类型的编译任务。
步骤2:系统实时监控编译执行服务的资源消耗情况,并根据资源消耗情况动态扩缩容编译执行服务的副本数量。
(2.1)每种编译执行服务在启动时分别设定CPU资源消耗的期望指标Cexpect
(2.2)每隔一段时间T,系统获取每种编译执行服务的CPU资源消耗的实际测量值Creal。具体实现时,时间T设置为5秒。系统通过Docker提供的docker stats接口获取每种编译执行服务的CPU资源消耗的实际测量值。
(2.3)系统根据每种编译执行服务的当前副本数Numbercurrent、以及CPU资源消耗的实际测量值Creal和期望指标Cexpect计算每种编译执行服务的期望副本数Numberexpect。计算期望副本数的公式为:
Numberexpect=ceil[Numbercurrent*(Creal/Cexpect)]
(2.4)系统将每种编译执行服务的副本数量调整为期望副本数量Numberexpect。如果编译执行服务的副本数量大于期望副本数量,删除多余的编译执行服务副本。如果编译执行服务的副本数量小于期望副本数量,重新创建编译执行服务副本。
步骤3:用户通过命令行工具提交物联网应用的编译请求,并获取编译请求的结果,工作流程如图2。
(3.1)用户通过命令行工具将编译请求提交至网关服务,参数包括物联网应用的源代码压缩包、编译类型和开发板类型。提交请求时会调用网关服务提供的编译请求接口,编译请求接口基于HTTP网络协议实现。
(3.2)网关服务首先为编译任务创建任务编号,然后将编译任务发布至消息队列,将不同编译类型的编译任务设定为不同的消息队列话题。编译任务的具体内容包含任务编号、编译类型、开发板类型和源代码压缩包。
(3.3)编译执行服务订阅到该类型的编译任务。解压源代码压缩包,依次编译所有源代码文件,得到该编译任务的编译结果。如果所有源代码通过编译,那编译结果是编译得到的物联网应用固件文件;如果有源代码未通过编译,那编译结果是编译输出的错误信息。
(3.4)编译执行服务将任务编号和编译结果打包发布至消息队列。
(3.5)网关服务订阅到编译结果,并将编译结果返回给用户。编译执行服务通过任务编号索引到接收编译结果的用户。

Claims (3)

1.一种基于弹性伸缩的异构物联网应用远程编译方法,包括以下步骤:
步骤1:物联网应用的编译执行服务的配置、创建、以及接入到远程编译系统;
(1.1)整理每种物联网应用类型的交叉编译链和配置文件;
(1.2)将每种物联网应用的交叉编译链和配置文件,打包配置到每种物联网应用的编译执行服务的容器镜像中;
(1.3)分别启动每种物联网应用的编译执行服务,开始从消息队列中订阅该类型的物联网应用的编译任务;
步骤2:系统实时监控编译执行服务的资源消耗情况,并根据资源消耗情况动态扩缩容编译执行服务的副本数量;
(2.1)每种编译执行服务在启动时分别设定CPU资源消耗的期望指标Cexpect
(2.2)每隔一段时间T,系统获取每种编译执行服务的CPU资源消耗的实际测量值Creal
(2.3)系统根据每种编译执行服务的当前副本数Numbercurrent、以及CPU资源消耗的实际测量值Creal和期望指标Cexpect计算每种编译执行服务的期望副本数Numberexpect;计算期望副本数的公式为:
Numberexpect=ceil[Numbercurrent*(Creal/Cexpect)]
(2.4)系统将每种编译执行服务的副本数量调整为期望副本数量Numberexpect
步骤3:用户通过命令行工具提交物联网应用的编译请求,并获取编译请求的结果;
(3.1)用户通过命令行工具将编译请求提交至网关服务,参数包括物联网应用的源代码压缩包、编译类型和开发板类型;
(3.2)网关服务首先为编译任务创建任务编号,然后将编译任务发布至消息队列,将不同编译类型的编译任务设定为不同的消息队列话题;
(3.3)编译执行服务订阅到该类型的编译任务;解压源代码压缩包,依次编译所有源代码文件,得到该编译任务的编译结果;
(3.4)编译执行服务将任务编号和编译结果打包发布至消息队列;
(3.5)网关服务订阅到编译结果,并将编译结果返回给用户。
2.如权利要求1所述的一种基于弹性伸缩的异构物联网应用远程编译方法,其特征在于:步骤(1.2)的容器采用Docker实现。
3.如权利要求1所述的一种基于弹性伸缩的异构物联网应用远程编译方法,其特征在于:步骤(3.3)编译结果通过如下步骤判断得到: 如果所有源代码通过编译,那编译结果是编译得到的物联网应用固件文件;如果有源代码未通过编译,那编译结果是编译输出的错误信息。
CN202110428307.1A 2021-04-21 2021-04-21 一种基于弹性伸缩的异构物联网应用远程编译方法 Active CN113360135B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110428307.1A CN113360135B (zh) 2021-04-21 2021-04-21 一种基于弹性伸缩的异构物联网应用远程编译方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110428307.1A CN113360135B (zh) 2021-04-21 2021-04-21 一种基于弹性伸缩的异构物联网应用远程编译方法

Publications (2)

Publication Number Publication Date
CN113360135A CN113360135A (zh) 2021-09-07
CN113360135B true CN113360135B (zh) 2022-05-24

Family

ID=77525382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110428307.1A Active CN113360135B (zh) 2021-04-21 2021-04-21 一种基于弹性伸缩的异构物联网应用远程编译方法

Country Status (1)

Country Link
CN (1) CN113360135B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9725011D0 (en) * 1996-11-26 1998-01-28 Hewlett Packard Co Remote compiling of source code for cross development
WO2015183241A1 (en) * 2014-05-27 2015-12-03 Hewlett-Packard Development Company, L.P. Distributed compilation of statically typed languages
CN106648597A (zh) * 2016-10-10 2017-05-10 许继集团有限公司 一种多用户并发式远程编译引擎架构
CN107168765A (zh) * 2017-07-07 2017-09-15 惠州Tcl移动通信有限公司 一种远程编译软件的方法及系统
CN110427189A (zh) * 2019-08-13 2019-11-08 苏州思必驰信息科技有限公司 远程动态编译Android工程的方法、服务器及系统
CN111176654A (zh) * 2019-11-18 2020-05-19 浙江大学 一种基于多用户缓存的物联网应用在线编译方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9725011D0 (en) * 1996-11-26 1998-01-28 Hewlett Packard Co Remote compiling of source code for cross development
US5881289A (en) * 1996-11-26 1999-03-09 Hewlett-Packard Company Remote compiling of source code for cross development
WO2015183241A1 (en) * 2014-05-27 2015-12-03 Hewlett-Packard Development Company, L.P. Distributed compilation of statically typed languages
CN106648597A (zh) * 2016-10-10 2017-05-10 许继集团有限公司 一种多用户并发式远程编译引擎架构
CN107168765A (zh) * 2017-07-07 2017-09-15 惠州Tcl移动通信有限公司 一种远程编译软件的方法及系统
CN110427189A (zh) * 2019-08-13 2019-11-08 苏州思必驰信息科技有限公司 远程动态编译Android工程的方法、服务器及系统
CN111176654A (zh) * 2019-11-18 2020-05-19 浙江大学 一种基于多用户缓存的物联网应用在线编译方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于异构设备的分布式远程物联网开发测试平台设计与实现;张甲栋;《中国优秀硕士学位论文全文数据库 信息科技辑》;20200815;I136-237 *

Also Published As

Publication number Publication date
CN113360135A (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
Spillner Snafu: Function-as-a-service (faas) runtime design and implementation
RU2658190C2 (ru) Управление доступом во время выполнения к интерфейсам прикладного программирования
CN109614227B (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
Garbervetsky et al. Toward full elasticity in distributed static analysis: The case of callgraph analysis
US20070240140A1 (en) Methods and systems for application load distribution
CN109196476A (zh) 共享垃圾收集器的不同类型图之间的无缝高性能互操作性
CN112269565A (zh) 基于容器的边缘设备运行方法、装置和系统
Theodoropoulos et al. Large scale distributed simulation on the grid
CN114816672A (zh) 虚拟机的创建方法、装置、电子设备和存储介质
Moreno-Vozmediano et al. Latency and resource consumption analysis for serverless edge analytics
Khochare et al. XFaaS: Cross-platform orchestration of FaaS workflows on hybrid clouds
Cugola et al. A characterization of mobility and state distribution in mobile code languages
CN113360135B (zh) 一种基于弹性伸缩的异构物联网应用远程编译方法
Chaturvedi et al. Cost-effective sharing of streaming dataflows for IoT applications
Heil et al. DCM: dynamic client-server code migration
Rodrigues-Filho et al. Hatch: Self-distributing systems for data centers
CN101604257A (zh) 虚拟化软件的执行方法及装置
Wang et al. Edge-computing-assisted intelligent processing of AI-generated image content
Ceccato et al. Implementing the Broadcast Operation in a Distributed Task-based Runtime
Yoo et al. Web services-based parallel replicated discrete event simulation for large-scale simulation optimization
da Costa Decentralized Real-time IoT Orchestration
Birnbaum et al. Grid workflow software for a high-throughput proteome annotation pipeline
Czarnul et al. Beesybees: A mobile agent-based middleware for a reliable and secure execution of service-based workflow applications in beesycluster
CN116629382B (zh) 基于Kubernetes的机器学习平台对接HPC集群的方法、装置、系统

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