CN111541760B - 基于无服务器雾计算***架构的复杂任务分配方法 - Google Patents
基于无服务器雾计算***架构的复杂任务分配方法 Download PDFInfo
- Publication number
- CN111541760B CN111541760B CN202010311403.3A CN202010311403A CN111541760B CN 111541760 B CN111541760 B CN 111541760B CN 202010311403 A CN202010311403 A CN 202010311403A CN 111541760 B CN111541760 B CN 111541760B
- Authority
- CN
- China
- Prior art keywords
- task
- request
- module
- requests
- service
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种基于无服务器雾计算***架构的复杂任务分配方法,包括:步骤1,终端设备向雾节点发送任务请求,雾节点接受任务请求传输到应用层开始服务;步骤2,应用层的访问控制模块对任务请求进行访问控制;步骤3,访问控制模块将允许访问的任务请求传输到应用层的请求转发模块进行任务请求的优先级排序;步骤4,请求转发模块将排序后的任务请求传输到应用层的服务管理器,服务管理器对任务请求进行难度判断和分配。本发明所提供的基于无服务器雾计算***架构的复杂任务分配方法,能根据雾节点的自身性能进行任务请求分配,不会出现木桶效应,降低了大任务的服务延迟,有效的解决了高移动、高动态场景的任务请求。
Description
技术领域
本发明涉及雾计算通信技术领域,特别涉及一种基于无服务器雾计算***架构的复杂任务分配方法。
背景技术
随着社会高速的发展,物联网和5G技术已获得了长久的进步,针对物联网的边缘节点部署,当前研究人员对边缘计算和雾计算的***架构都有了比较深入的研究,特别是针对资源卸载和计算模式上的研究,但是仍有一些问题需要解决,传统的雾计算架构主要采用云计算方案作为主要的服务方式,虽然满足了基本的计算和存储服务,仍有以下的不足,首先,工业界一直采用虚拟化的方式为云端和雾端提供服务,虚拟化的方案有很多,最常使用是采用虚拟机作为基础服务单元,虚拟机模拟服务器和PC***有着比较好性能,一台物理服务器可以模拟多组虚拟机,既有性能上的优化也有***安全上的方案。但是目前虚拟机的启动和关闭恢复都需要比较久的加载时间,根据物理服务器的性能不同,需要加载5秒-20秒左右,当一台物理机器需要运行多台虚拟机的时候加载时间可能会增加到50秒-100秒,甚至有启动失败的风险。传统的PaaS(平台即服务:Platform as a Service),IaaS(基础设施即服务Infrastructure as a Service)采用的方案是用户通过租用的方式从服务提供商处获取基础设施服务,例如服务器,存储设备,计算中心等。在敏捷性,扩展性,经济性上都比个人或公司单独提供服务要优越的多。用户使用之前,通过租赁服务商申请资源,就会获得一台或多台虚拟机,此时用户使用远程IP地址来登陆和管理这台虚拟机。用户也可以用这台虚拟机计算任务和存储资源,服务商可根据使用时长或使用的资源流量进行收费,用户只需要维护自己的应用程序,无须管理虚拟机的部署和维护工作。虚拟机这种高延时的加载并不能满足雾计算的需求,无论是边缘计算和雾计算都有一个数据管理中心,部署了一些服务器和存储设备,多边路的云节点和雾节点对用户提供服务。同时为了服务的稳定性和覆盖范围,应用程序提供者需要在多个雾节点上部署自己的程序。IaaS此时的问题就比较明显,虚拟机加载时间过长,大量虚拟机维护成本高,企业是很难承受的,特别当用户需要短时和重复周期性的服务。
发明内容
本发明提供了一种基于无服务器雾计算***架构的复杂任务分配方法,其目的是为了解决传统的雾计算架构资源利用率不高,服务质量低的问题。
为了达到上述目的,本发明的实施例提供了一种基于无服务器雾计算***架构的复杂任务分配方法,包括:
步骤1,终端设备向雾节点发送任务请求,雾节点接受任务请求传输到应用层开始服务;
步骤2,应用层的访问控制模块对任务请求进行访问控制;
步骤3,访问控制模块将允许访问的任务请求传输到应用层的请求转发模块进行任务请求的优先级排序;
步骤4,请求转发模块将排序后的任务请求传输到应用层的服务管理器,服务管理器对任务请求进行难度判断和分配;
步骤5,服务管理器将任务请求传输到传输控制层的FaaS模块、私有云代理模块和协同管理器进行处理;
步骤6,将FaaS模块、私有云代理模块和协同管理器处理后的任务请求的结果返回终端设备。
其中,还包括:
应用开发者通过传输控制层的应用转发模块将应用程序上传到FaaS模块中进行处理。
其中,所述步骤2具体包括:
应用层的访问控制模块通过权限验证单元对任务请求进行权限验证,通过权限验证的任务请求传输到请求转发模块,未通过权限验证的任务请求拒绝访问。
其中,所述步骤3具体包括:
将通过权限验证的任务请求添加到请求转发模块的请求队列单元中进行任务请求的优先级排序。
其中,所述步骤4具体包括:
服务管理器从请求队列单元中依次取出任务请求进行难度判断和分配,服务管理器将简单任务请求分配到传输控制层的FaaS模块进行处理,将复杂任务请求分配到基础设施层的协调管理器进行处理,将困难任务请求分配到传输控制层的私有云代理模块进行处理。
其中,所述步骤5具体包括:
FaaS模块通过触发简单任务请求对应的特定事件函数来对简单任务请求进行处理,FaaS模块通过基础设施层中的Docker容器的容器API单元创建容器供简单任务请求使用,通过容器来进行FaaS模块的函数实例化运行,简单任务请求完成后将结果返回终端设备。
其中,所述步骤5还包括:
协同服务管理器将复杂任务请求分解成多个子任务请求,通过分配单元将多个子任务请求按需分配给其他雾节点进行处理,并将未分配的子任务请求进行多轮次的按需分配,直到其他雾节点全部完成子任务请求,协同服务管理器将所有子任务请求的处理结果进行合并处理后返回终端设备。
其中,所述步骤5还包括:
协同服务管理器采用指数移动平均方法预测雾节点的性能,雾计算i的前k轮的性能数据可表示为{θ1,θ2,…,θk},则k+1的预期性能为θk+1,根据指数移动平均公式计算得:
其中,所述步骤5还包括:
困难任务请求通过传输控制层的私有代理模块进行处理,困难任务请求中有隐私数据使用私有云单元进行处理,困难任务请求中没有隐私数据使用公有云单元进行处理。
本发明的上述方案有如下的有益效果:
本发明的上述实施例所述的基于无服务器雾计算***架构的复杂任务分配方法,能够帮助服务提供商更好的提供服务,帮助应用开发者节约成本,帮助终端用户缩短服务延迟,提高了整个***的资源利用率和效率,使利润最大化,有效的将大任务请求进行分解,能根据雾节点的自身性能进行任务请求分配,降低了大任务的服务延迟,有效的解决了高移动、高动态场景的任务请求。
附图说明
图1为本发明的架构图;
图2为本发明的协同服务管理器的结构示意图;
图3为本发明的协同服务管理器内任务请求按需分配示意图;
图4为本发明的雾计算服务场景架构示意图;
图5为本发明应用于无服务器雾计算平台原型示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的雾计算架构资源利用率不高,服务质量低的问题,提供了一种基于无服务器雾计算***架构的复杂任务分配方法。
如图1至图5所示,本发明的实施例提供了一种基于无服务器雾计算***架构的复杂任务分配方法,包括:步骤1,终端设备向雾节点发送任务请求,雾节点接受任务请求传输到应用层开始服务;步骤2,应用层的访问控制模块对任务请求进行访问控制;步骤3,访问控制模块将允许访问的任务请求传输到应用层的请求转发模块进行任务请求的优先级排序;步骤4,请求转发模块将排序后的任务请求传输到应用层的服务管理器,服务管理器对任务请求进行难度判断和分配;步骤5,服务管理器将任务请求传输到传输控制层的FaaS模块、私有云代理模块和协同管理器进行处理;步骤6,将FaaS模块、私有云代理模块和协同管理器处理后的任务请求的结果返回终端设备。
本发明的上述实施例所述的基于无服务器雾计算***架构的复杂任务分配方法,选取Serverless无服务器技术作为协作组件,雾计算***架构设置有三层,自上而下分别为应用层、传输控制层和基础设施层,这三层均运行在雾节点之上,如图1;应用层主要是管理和处理终端用户的请求,应用层是架构服务的最顶层,也是最解决服务终端的一层,主要对用户身份进行校验提高雾节点安全性,通过访问控制模块对租用雾节点的用户进行管理,同时,服务请求由UID、待处理数据、容器编号、请求事件等组成。请求队列单元主要负责对不同的任务请求做调度,紧急事件的任务请求优先级要高于非紧急事件的任务请求,为了避免普通的任务请求长期得不到服务,优先级调度算法会考虑等待时长,随着等待时间的增加,任务请求的事件优先级会增高;服务管理器用于验证用户信息和计算服务资费,还根据任务请求的不同,将计算量特别巨大的任务请求直接转发给私有云代理模块处理,根据任务请求的不同还会和BaaS模块和FaaS模块间传递服务,请求队列单元负载过高还会进行服务迁移。传输控制层是雾计算***架构中起协调作用的关键层,为了提高性能和资源利用率,主要采用Serverless的FaaS服务做函数处理服务,FaaS模块根据供应商定义的事件类型触发函数,此类事件一般包括文件更新、时间(计划任务)、加入总线的消息等。基础设施层是整个雾计算***架构的最底层,主要管理对象为容器。基础设施层使用跨平台的Docker容器,Docker容器可以提高雾计算***服务效率也能解决各物理机器的统一服务问题,FaaS模块可以根据Docker容器提供的容器API单元的接口使用容器服务,应用层设置有访问控制模块、请求转发模块和服务管理器,访问控制模块中设置有权限验证单元,请求转发模块中设置有请求队列单元,服务管理器收集任务请求的相关信息,如服务时间、数据量、任务类型、设备类型、紧急程度等;传输控制层设置有FaaS模块、应用转发模块和私有云代理模块;基础设施层设置有BaaS模块、物理硬件、Docker容器和内核管理器,BaaS模块中设置有协同服务管理器和DB数据库,Docker容器分配速度快,占用内存低,适合大量任务请求处理,FaaS模块有数据需要存储可直接存到BaaS模块的DB数据库中,如果数据很大可传输到云端,如果是大量的隐私数据可以存储到私有云,否则直接传入公有云。运行过程:终端设备请求启动应用程序,雾节点开始处理,雾节点与终端设备之间使用Wifi/4G/5G等移动通信进行连接,首先访问的是应用层,访问控制模块对终端设备请求进行访问控制,每个用户一个单独的UID,未授权的用户一律拒绝,保证安全性,通过权限验证之后,任务请求加入到请求转发模块的请求队列单元中,请求队列单元采用优先级对队列中的任务请求进行排序,即优先级高的任务请求先服务,如请求医疗救助的任务请求优先级大于登录游戏的任务,会优先处理医疗救助的任务请求,服务管理器从请求队列单元中依次取出任务请求进行分析,首先收集终端设备已有的信息并对任务请求进行判断,如果任务请求简单,则直接由传输控制层进行处理,传输控制层接收到任务请求会在Serverless的FaaS模块中处理,FaaS模块通过任务请求触发特定事件函数,此时FaaS模块会通过基础设施层中的容器API单元创建容器供任务请求使用,FaaS模块的函数实例化运行在容器中,当任务请求完成后将结果返回终端设备,回收容器;如果任务请求复杂,则转发到BaaS模块中的协同服务管理器进行处理,协同服务管理器中设置有分配单元,预测单元和计算单元如图2,协同服务管理器将复杂任务请求分解成多个子任务请求并通过分配单元将子任务请求分配给附近可用的其他雾节点进行处理,预测单元负责获取其他雾节点相关信息,对后续分配任务请求做分析预测,当经过多轮循环分配之后,全部雾节点完成任务,协同服务管理器将结果合并处理后返回给终端设备,每轮协同服务管理器中循环分配至附近可用的其他雾节点的子任务请求大小均不同,根据雾节点***资源进行分配;如果任务请求困难,则直接转发到云端进行处理,如果任务请求中有隐私数据则使用私有云单元处理,否则使用公有云单元处理。同时开发者专注开发应用程序,只需要上传特定的函数代码和配置文件到FaaS模块中,无须单独部署。当一轮任务请求完成后,终端设备继续任务请求,则重复上述运行过程,这样做主要为了保证请求队列单元中大部分任务请求都能有机会获得处理,而不会出现一个终端设备独享雾节点的情况。
当一个终端用户租用服务,这里假设终端用户是非恶意攻击的正常使用者,终端用户发送服务请求,此时雾节点收到请求之后由应用层验证用户身份,获得请求许可之后获得服务权限并开始收费计时,终端用户发送的任务请求加入到请求队列中,服务管理器根据服务类型的不同解析服务命令进行转发,传输控制层接收到服务命令之后,对一系列命令进行任务分配,通过内核管理器对分配的任务分别调用基础设施层的容器API单元来创建用户任务请求的单独容器,当容器创建完成之后用户的计算服务命令和存储服务命令都会被STM(无服务工具库serverless tools module)来进行服务。
其中,还包括:应用开发者通过传输控制层的应用转发模块将应用程序上传到FaaS模块中进行处理。
本发明的上述实施例所述的基于无服务器雾计算***架构的复杂任务分配方法,开发者专注开发应用程序,只需要通过应用转发模块上传应用程序到FaaS模块中,即将特定的函数代码和配置文件上传到FaaS模块中,无须单独部署。
其中,所述步骤2具体包括:应用层的访问控制模块通过权限验证单元对任务请求进行权限验证,通过权限验证的任务请求传输到请求转发模块,未通过权限验证的任务请求拒绝访问。
其中,所述步骤3具体包括:将通过权限验证的任务请求添加到请求转发模块的请求队列单元中进行任务请求的优先级排序。
其中,所述步骤4具体包括:服务管理器从请求队列单元中依次取出任务请求进行难度判断和分配,服务管理器将简单任务请求分配到传输控制层的FaaS模块进行处理,将复杂任务请求分配到基础设施层的协调管理器进行处理,将困难任务请求分配到传输控制层的私有云代理模块进行处理。
其中,所述步骤5具体包括:FaaS模块通过触发简单任务请求对应的特定事件函数来对简单任务请求进行处理,FaaS模块通过基础设施层中的Docker容器的容器API单元创建容器供简单任务请求使用,通过容器来进行FaaS模块的函数实例化运行,简单任务请求完成后将结果返回终端设备。
其中,所述步骤5还包括:协同服务管理器将复杂任务请求分解成多个子任务请求,通过分配单元将多个子任务请求按需分配给其他雾节点进行处理,并将未分配的子任务请求进行多轮次的按需分配,直到其他雾节点全部完成子任务请求,协同服务管理器将所有子任务请求的处理结果进行合并处理后返回终端设备。
其中,所述步骤5还包括:协同服务管理器采用指数移动平均方法预测雾节点的性能,雾计算i的前k轮的性能数据可表示为{θ1,θ2,...,θk},则k+1的预期性能为θk+1,根据指数移动平均公式计算得:
本发明的上述实施例所述的基于无服务器雾计算***架构的复杂任务分配方法,协同服务管理器将任务请求分解成多个子任务请求通过分配单元将子任务请求分配给附近可用的其他雾节点进行处理,预测单元负责获取其他雾节点相关信息,对后续分配任务做分析预测,当经过多轮次的子任务请求分配之后,当全部雾节点完成任务,协同服务管理器将结果合并处理后返回给终端设备。
假设雾计算有N个终端请求服务,表示为C={n1,n2,…,nN},用户终端n请求的任务为Mn,执行任务请求Mn需要的雾节点集合表示当终端设备的任务请求是当前雾节点完成不了的任务请求,则由雾节点集合F协同完成。首轮,分配单元根据雾节点的计算能力和预测单元的预测结果,向雾节点集合F中的雾节点分配多个子任务请求,预测单元根据雾节点计算资源实时情况和历史数据对后续分配子任务请求进行预测,分配单元再根据预测单元进行多轮的子任务请求分配如图3,直到所有子任务请求完成,预测单元决定分配单元的分配策略,预测单元预测的准确度直接决定了所述基于无服务器雾计算***架构的复杂任务分配方法的效率,所述基于无服务器雾计算***架构的复杂任务分配方法应用在协同服务管理器中,协同服务管理器每轮分配至各雾节点任务请求数量均不同,充分的利用计算资源来进行分配。协同服务管理器处理任务请求的步骤:第一步,每轮对任务请求进行判断,如果超过当前节点的处理能力,则将任务请求分解成多个子任务请求分配给其他雾节点,第二步,依次寻找合适的雾节点,并判断雾节点是否处于空闲状态,如果雾节点处于空闲状态则根据公式(1)预测雾节点的性能,根据雾节点的性能分配对应的任务请求量到雾节点上,第三步,循环重复第二步,直到所有子任务请求全部完成,将所有子任务请求的结果返回到初始雾节点上,第四步,初始雾节点对所有子任务请求的结果合并处理后将结果返回给终端设备,本轮任务请求结束,所述基于无服务器雾计算***架构的复杂任务分配方法充分利用FaaS服务按需加载、动态伸缩、按需加载等特点,同时避免了由于终端设备的移动性造成的任务请求重复的问题,实现了资源最大化利用,提高了***效率。
其中,所述步骤5还包括:困难任务请求通过传输控制层的私有代理模块进行处理,困难任务请求中有隐私数据使用私有云单元进行处理,困难任务请求中没有隐私数据使用公有云单元进行处理。
本发明的上述实施例所述的基于无服务器雾计算***架构的复杂任务分配方法,采用租赁的方式运行服务,优点是提高资源利用率,降低服务开发商的成本,服务架构如图4主要包含如下:终端设备、服务开发商和基础服务提供者。终端设备通过付费的方式使用雾计算服务,服务开发商专注于开发相关应用程序后租用基础服务提供者部署的服务架构中。终端设备为可连接网络的边缘设备,如手机,移动电脑,车联网,无人机等等,终端设备通过网络与雾节点进行交互请求有多种方式,最典型的方法就是通过C/S模式,但是如果终端设备计算资源有限,则通过5G/WiFi等方式连接雾节点,将计算任务请求通过雾节点来处理,由雾节点的高性能来解决终端设备不能解决和难以解决的高消耗计算问题。服务开发商为服务的提供者,提供软件服务的企业或政府,服务开发商有专用的私有云用来存储用户隐私数据等重要信息,通过开发软件服务来服务用户,通过上传必要的配置文件和应用程序代码给雾节点的Serverless FaaS组件。基础服务提供者为雾节点和服务雾节点的云服务,雾节点根据服务功能的不同也可分为公有节点和私有节点,如果一个用户想要获得服务也可以提供自己闲置的设备租赁给雾节点,如路由器、智能家居等,由于不同设备的雾节点有异构性,所以基础服务提供者需要开发一个架构平台来对不同设备统一管理,雾节点的最大特点就是在于提供服务的基础服务者数量庞大,通过大范围的覆盖可以降低延迟,也可以位置感知。
本发明的上述实施例所述的基于无服务器雾计算***架构的复杂任务分配方法,为了验证雾计算***架构的合理性和方便同行复现,设计了一个无服务器雾计算平台(Serverless Fog computer Platform,SFP)原型供参考,如图5原型的FaaS平台使用的是OpenWhisk(开源),OpenWhisk通过动态的创建、管理、回收Docker容器,是SFP原型的重要工具,通过引用内部和外部事件的规则关联的触发器来回调各种功能。为了最大程度的减少网络延迟,SFP原型通过Nginx的API网关与SFP连接移动终端与雾节点,应用程序可以部署在一个或多个本地服务器之上,后一种情况下控制器的负载均衡器负责调用程序的工作负载,每个应用程序都管理一个容器池,容器池的大小取决于可用内存的大小,当应用程序开始部署之后,预留几分钟的热检查,通过***自检来判断容器池是否可用,OpenWhisk不提供WebSocket的本机支持,所以采用反向代理方案:代理组件位于API网关与控制器之间,设置成守护进程的方式一直让WebSocket保持可连接状态,并能够返回结果和触发相应的功能。SFP的负载均衡方案将延迟敏感的应用程序内部功能直接映射到不同的命名空间中,延迟敏感的请求使用循环调度算法调度到一个或多个SFP之间。外部负载均衡器则是直接使用Nginx所具有的的最短时间算法,此方案主要是为了防止低延迟应用程序的性能遭到破坏,协调器使用以下信息来限制数据分析的并发性:
其中,CTNMEN是数据密集型功能所需要的平均内存(如158MB),SM是预设定的内存阈值(如2GB),SM的设置主要是为了防止突发的大量请求让SFP***过载,CTNMAX则是可用的容器池最大数量,FREE是当前可用的内存资源。请求队列使用基于优先级的调度算法来扩展控制器的负载均衡器,随着响应时间的增加,API网关将请求分散到FaaS平台中。
消息代理服务使用的是Mosquitto,Mosquitto是一款实现了MQTT v3.1协议的开源消息代理软件,提供轻量级的,支持发布或订阅的消息推送模式,使设备对设备之间的短消息通信简单易用,使用服务提供者模式来保持与MQTT代理的长连接,在此配置中,Feed流将触发器订阅到MQTT事件,并在事件来到时回调触发器。
本发明的上述实施例所述的基于无服务器雾计算***架构的复杂任务分配方法,使用Docker容器和Serverless等技术,结合雾计算的使用和无服务器雾计算***架构能够帮助服务提供商更好的提供服务,帮助应用开发者节约成本,帮助终端用户缩短服务延迟,提高了整个***的资源利用率和效率,使利润最大化,所述基于无服务器雾计算***架构的复杂任务分配方法有效的将大任务请求进行分解,并能根据雾节点的自身性能进行任务请求分配,不会出现木桶效应,降低了大任务的服务延迟,有效的解决了高移动、高动态场景的任务请求。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种基于无服务器雾计算***架构的复杂任务分配方法,其特征在于,包括:
步骤1,终端设备向雾节点发送任务请求,雾节点接受任务请求传输到应用层开始服务;
步骤2,应用层的访问控制模块对任务请求进行访问控制;
步骤3,访问控制模块将允许访问的任务请求传输到应用层的请求转发模块进行任务请求的优先级排序;
步骤4,请求转发模块将排序后的任务请求传输到应用层的服务管理器,服务管理器对任务请求进行难度判断和分配;
步骤5,服务管理器将任务请求传输到传输控制层的FaaS模块、私有云代理模块和协同管理器进行处理;
步骤6,将FaaS模块、私有云代理模块和协同管理器处理后的任务请求的结果返回终端设备;
还包括:
应用开发者通过传输控制层的应用转发模块将应用程序上传到FaaS模块中进行处理;
所述步骤2具体包括:
应用层的访问控制模块通过权限验证单元对任务请求进行权限验证,通过权限验证的任务请求传输到请求转发模块,未通过权限验证的任务请求拒绝访问;
所述步骤3具体包括:
将通过权限验证的任务请求添加到请求转发模块的请求队列单元中进行任务请求的优先级排序;
所述步骤4具体包括:
服务管理器从请求队列单元中依次取出任务请求进行难度判断和分配,服务管理器将简单任务请求分配到传输控制层的FaaS模块进行处理,将复杂任务请求分配到基础设施层的协调管理器进行处理,将困难任务请求分配到传输控制层的私有云代理模块进行处理;
所述步骤5具体包括:
FaaS模块通过触发简单任务请求对应的特定事件函数来对简单任务请求进行处理,FaaS模块通过基础设施层中的Docker容器的容器API单元创建容器供简单任务请求使用,通过容器来进行FaaS模块的函数实例化运行,简单任务请求完成后将结果返回终端设备;
所述步骤5还包括:
协同服务管理器将复杂任务请求分解成多个子任务请求,通过分配单元将多个子任务请求按需分配给其他雾节点进行处理,并将未分配的子任务请求进行多轮次的按需分配,直到其他雾节点全部完成子任务请求,协同服务管理器将所有子任务请求的处理结果进行合并处理后返回终端设备;
所述步骤5还包括:
协同服务管理器采用指数移动平均方法预测雾节点的性能,雾计算i的前轮的性能数据可表示为{θ1,θ2,...,θk},则k+1的预期性能为θk+1,根据指数移动平均公式计算得:
雾计算***架构包括应用层、传输控制层和基础设施层,应用层、传输控制层和基础设施层均运行在雾节点之上,应用层为雾计算***架构的最顶层,应用层用于管理和处理终端用户的服务请求,应用层包括访问控制模块、请求转发模块和服务管理器,访问控制模块包括权限验证单元,请求转发模块中包括请求队列单元,服务管理器用于收集任务请求的相关信息,其中,任务请求的相关信息包括服务时间、数据量、任务类型、设备类型和紧急程度,通过访问控制模块对租用雾节点的用户进行管理,其中,服务请求由UID、待处理数据、容器编号和请求事件组成;请求队列单元主要负责对不同的任务请求做调度,紧急事件的任务请求优先级高于非紧急事件的任务请求优先级,请求队列单元中设置的优先级调度算法根据任务请求的等待时长,增高任务请求优先级,服务管理器用于验证用户信息和计算服务资费,根据任务请求的不同,将计算量特别巨大的任务请求直接转发给私有云代理模块处理,根据任务请求的不同与BaaS模块和FaaS模块间传递服务,当请求队列单元负载过高时,服务管理器将服务进行服务迁移;传输控制层为雾计算***架构的关键层,传输控制层主要采用Serverless的FaaS服务为函数处理服务,传输控制层包括FaaS模块、应用转发模块和私有云代理模块,FaaS模块根据供应商定义的事件类型触发函数,其中,定义的事件类型包括文件更新、时间和加入总线的消息;基础设施层为雾计算***架构的最底层,主要管理对象为容器,基础设施层包括BaaS模块、物理硬件、Docker容器和内核管理器,BaaS模块包括协同服务管理器和DB数据库,FaaS模块根据Docker容器提供的容器API单元的接口使用容器服务;
运行过程:终端设备请求启动应用程序,雾节点开始处理,雾节点与终端设备之间使用Wifi或4G或5G移动通信进行连接,首先访问的是应用层,访问控制模块对终端设备请求进行访问控制,每个用户一个单独的UID,未授权的用户一律拒绝,通过权限验证之后,任务请求加入到请求转发模块的请求队列单元中,请求队列单元采用优先级对队列中的任务请求进行排序,优先级高的任务请求先服务,服务管理器从请求队列单元中依次取出任务请求进行分析,首先收集终端设备已有的信息并对任务请求进行判断,如果任务请求简单,则直接由传输控制层进行处理,传输控制层接收到任务请求会在Serverless的FaaS模块中处理,FaaS模块通过任务请求触发特定事件函数,FaaS模块通过基础设施层中的容器API单元创建容器供任务请求使用,FaaS模块的函数实例化运行在容器中,当任务请求完成后将结果返回终端设备,回收容器;如果任务请求复杂,则转发到BaaS模块中的协同服务管理器进行处理,协同服务管理器包括分配单元,预测单元和计算单元,协同服务管理器将复杂任务请求分解成多个子任务请求并通过分配单元将子任务请求分配给附近可用的其他雾节点进行处理,预测单元负责获取其他雾节点相关信息,对后续分配任务请求做分析预测,当经过多轮循环分配之后,全部雾节点完成任务,协同服务管理器将结果合并处理后返回给终端设备,每轮协同服务管理器中循环分配至附近可用的其他雾节点的子任务请求大小均不同,根据雾节点***资源进行分配;如果任务请求困难,则直接转发到云端进行处理,如果任务请求中有隐私数据则使用私有云单元处理,否则使用公有云单元处理,当一轮任务请求完成后,终端设备继续任务请求,则重复上述运行过程;
当一个终端用户租用服务,假设终端用户为非恶意攻击的正常使用者,终端用户发送服务请求,雾节点收到请求之后由应用层验证用户身份,获得请求许可之后获得服务权限并开始收费计时,终端用户发送的任务请求加入到请求队列中,服务管理器根据服务类型的不同解析服务命令进行转发,传输控制层接收到服务命令之后,对一系列命令进行任务分配,通过内核管理器对分配的任务分别调用基础设施层的容器API单元创建用户任务请求的单独容器,当容器创建完成之后用户的计算服务命令和存储服务命令均由无服务工具库进行服务;
协同服务管理器处理任务请求的步骤:
第一步,每轮对任务请求进行判断,如果超过当前节点的处理能力,则将任务请求分解成多个子任务请求分配给其他雾节点;
第二步,依次寻找合适的雾节点,并判断雾节点是否处于空闲状态,如果雾节点处于空闲状态则根据公式(1)预测雾节点的性能,根据雾节点的性能分配对应的任务请求量到雾节点上;
第三步,循环重复第二步,直到所有子任务请求全部完成,将所有子任务请求的结果返回到初始雾节点上;
第四步,初始雾节点对所有子任务请求的结果合并处理后将结果返回给终端设备,本轮任务请求结束。
2.根据权利要求1所述的基于无服务器雾计算***架构的复杂任务分配方法,其特征在于,所述步骤5还包括:
困难任务请求通过传输控制层的私有代理模块进行处理,困难任务请求中有隐私数据使用私有云单元进行处理,困难任务请求中没有隐私数据使用公有云单元进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311403.3A CN111541760B (zh) | 2020-04-20 | 2020-04-20 | 基于无服务器雾计算***架构的复杂任务分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311403.3A CN111541760B (zh) | 2020-04-20 | 2020-04-20 | 基于无服务器雾计算***架构的复杂任务分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111541760A CN111541760A (zh) | 2020-08-14 |
CN111541760B true CN111541760B (zh) | 2022-05-13 |
Family
ID=71976862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010311403.3A Active CN111541760B (zh) | 2020-04-20 | 2020-04-20 | 基于无服务器雾计算***架构的复杂任务分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111541760B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363823A (zh) * | 2020-10-10 | 2021-02-12 | 北京东方通软件有限公司 | 一种基于消息的轻量级无服务器计算方法 |
CN112748935A (zh) * | 2021-01-15 | 2021-05-04 | 中国科学院软件研究所 | 一种FaaS服务运行环境自动构建方法 |
CN113312172B (zh) * | 2021-02-23 | 2023-08-22 | 中国人民解放军国防科技大学 | 基于适变网络的多无人机集群动态任务调度模型 |
CN113176947B (zh) * | 2021-05-08 | 2024-05-24 | 武汉理工大学 | 无服务器计算中基于延迟和成本均衡的动态任务放置方法 |
CN116016644A (zh) * | 2021-10-19 | 2023-04-25 | 中兴通讯股份有限公司 | 业务请求处理方法、网络设备及计算机可读存储介质 |
TWI785931B (zh) * | 2021-12-14 | 2022-12-01 | 中華電信股份有限公司 | 用於監控無伺服器執行函式過程之系統、方法及電腦可讀媒介 |
CN114466014B (zh) * | 2021-12-28 | 2024-03-12 | 天翼云科技有限公司 | 一种服务调度方法、装置、电子设备及存储介质 |
CN114598706B (zh) * | 2022-03-08 | 2023-05-16 | 中南大学 | 基于Serverless函数的存储***弹性伸缩方法 |
CN115189996B (zh) * | 2022-09-13 | 2022-11-25 | 浙江云针信息科技有限公司 | 基于Serverless的车联网数据传输方法及装置、存储介质和终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737560A (zh) * | 2018-05-31 | 2018-11-02 | 南京邮电大学 | 云计算任务智能调度方法及***、可读存储介质、终端 |
CN108833113A (zh) * | 2018-06-08 | 2018-11-16 | 北京大学 | 一种基于雾计算的增强通讯安全的认证方法及*** |
CN109889599A (zh) * | 2019-03-07 | 2019-06-14 | 北京邮电大学 | 一种数据处理方法及*** |
CN110162390A (zh) * | 2019-05-15 | 2019-08-23 | 清华大学 | 一种雾计算***的任务分配方法及*** |
CN110351309A (zh) * | 2018-04-02 | 2019-10-18 | 中国科学院上海微***与信息技术研究所 | 网络节点间计算任务卸载平衡方法、***、介质及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11082525B2 (en) * | 2019-05-17 | 2021-08-03 | Intel Corporation | Technologies for managing sensor and telemetry data on an edge networking platform |
-
2020
- 2020-04-20 CN CN202010311403.3A patent/CN111541760B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351309A (zh) * | 2018-04-02 | 2019-10-18 | 中国科学院上海微***与信息技术研究所 | 网络节点间计算任务卸载平衡方法、***、介质及设备 |
CN108737560A (zh) * | 2018-05-31 | 2018-11-02 | 南京邮电大学 | 云计算任务智能调度方法及***、可读存储介质、终端 |
CN108833113A (zh) * | 2018-06-08 | 2018-11-16 | 北京大学 | 一种基于雾计算的增强通讯安全的认证方法及*** |
CN109889599A (zh) * | 2019-03-07 | 2019-06-14 | 北京邮电大学 | 一种数据处理方法及*** |
CN110162390A (zh) * | 2019-05-15 | 2019-08-23 | 清华大学 | 一种雾计算***的任务分配方法及*** |
Non-Patent Citations (4)
Title |
---|
Bin Cheng等.Fog Function: Serverless Fog Computing for Data.《2019 IEEE International Conference on Services Computing (SCC)》.2019, * |
Fog Function: Serverless Fog Computing for Data;Bin Cheng等;《2019 IEEE International Conference on Services Computing (SCC)》;20190829;第1-7页 * |
Parallel Scheduling of Multiple Tasks in Heterogeneous Fog Networks;Zening Liu等;《2019 25th Asia-Pacific Conference on Communications (APCC)》;20200309;第1-5页 * |
Towards a Serverless Platform for Edge Computing;Luciano Baresi等;《2019 IEEE International Conference on Fog Computing (ICFC)》;20190902;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111541760A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111541760B (zh) | 基于无服务器雾计算***架构的复杂任务分配方法 | |
US20200364608A1 (en) | Communicating in a federated learning environment | |
Ge et al. | GA-based task scheduler for the cloud computing systems | |
Téllez et al. | A tabu search method for load balancing in fog computing | |
CN110069341B (zh) | 边缘计算中结合功能按需配置的有依赖关系任务的调度方法 | |
CN101308468A (zh) | 网格计算环境下的作业跨域控制方法 | |
CN102014159A (zh) | 一种云计算环境下的分层资源预留*** | |
Tang et al. | A container based edge offloading framework for autonomous driving | |
CN110661842B (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
Nithya et al. | SDCF: A software-defined cyber foraging framework for cloudlet environment | |
CN111443990B (zh) | 一种边缘计算任务迁移仿真*** | |
Abu Sharkh et al. | Optimal and suboptimal resource allocation techniques in cloud computing data centers | |
CN109085999A (zh) | 数据处理方法及处理*** | |
US20220318071A1 (en) | Load balancing method and related device | |
CN112698925B (zh) | 一种服务器集群的容器混合运行处理方法 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、***、设备及介质 | |
CN104679594A (zh) | 一种中间件分布式计算方法 | |
CN103023936B (zh) | 一种多层次网络***及基于该网络***的任务执行方法 | |
CN108282357B (zh) | 一种网络切片方法、装置及计算机可读存储介质 | |
CN111432005A (zh) | 一种窄带弱连网络条件下服务迁移的方法 | |
Khan et al. | A cache‐based approach toward improved scheduling in fog computing | |
Cao et al. | Towards tenant demand-aware bandwidth allocation strategy in cloud datacenter | |
CN115733754A (zh) | 基于云原生中台技术的资源管理***及其弹性构建方法 | |
CN105764097A (zh) | 资源分配方法及装置 | |
Mylavarapu et al. | An optimized capacity planning approach for virtual infrastructure exhibiting stochastic workload |
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 |