一种基于WebAssembly的边缘计算方法及装置与流程

文档序号:25601542发布日期:2021-06-25 11:52阅读:236来源:国知局
一种基于WebAssembly的边缘计算方法及装置与流程
一种基于webassembly的边缘计算方法及装置
技术领域
1.本发明涉及边缘计算技术领域,尤其涉及一种基于webassembly的边缘计算方法及装置。


背景技术:

2.边缘计算过程中需要根据不同的系统平台(linux、android、windows等)集成对应的边缘计算容器,改造用于边缘计算的设备;
3.由于必须对边缘计算设备进行改造以集成边缘计算容器,会带来了一些安全隐患,这是部分设备拥有者无法接受的。另外,改造带来的额外工作量会造成系统整体算力的潜在损失,同时,边缘计算容器的开发需要针对不同平台开发,给边缘计算平台的提供方也带来了额外的开发工作量。


技术实现要素:

4.有鉴于此,本发明提供了一种基于webassembly的边缘计算方法及装置,用以解决现有技术中由于必须对边缘计算设备进行改造以集成边缘计算sdk,会带来了一些安全隐患,这是部分设备拥有者无法接受的。另外,改造带来的额外工作量会造成系统整体算力的潜在损失,同时,边缘计算容器的开发需要针对不同平台开发,给边缘计算平台的提供方也带来了额外的开发工作量的问题,具体方案如下:
5.一种基于webassembly的边缘计算方法,包括:
6.将边缘计算容器转换成webassembly格式,得到目标边缘计算容器;
7.将所述目标边缘计算容器发送给各个边缘计算设备,接收所述各个边缘计算设备的算力;
8.在接收到计算请求的情况下,依据所述各个边缘计算设备的算力,将所述计算请求分解为至少一个微任务;
9.将所述微任务分配给对应的边缘计算设备中的目标边缘计算容器进行计算,接收各个计算结果;
10.将所述各个计算结果进行整合,得到目标计算结果。
11.上述的方法,可选的,将边缘计算容器转换成webassembly格式,得到目标边缘计算容器之前,还包括:
12.连接到预设的下载网站;
13.在连接成功的情况下,采用websocket方式在所述预设的下载网站上下载所述边缘计算容器。
14.上述的方法,可选的,将所述目标边缘计算容器发送给各个边缘计算设备,接收所述各个边缘计算设备的算力,还包括:
15.将边缘计算设备和其对应的算力存储到算力库中。
16.上述的方法,可选的,在接收到计算请求的情况下,依据所述各个边缘计算设备的
算力,将所述计算请求分解为至少一个微任务,包括:
17.计算所述各个边缘计算设备的总算力和所述计算请求的目标算力;
18.在所述总算力大于等于所述目标算力的情况下,依据所述各个边缘计算设备的算力将所述计算请求分解为至少一个微任务。
19.上述的方法,可选的,还包括:
20.在所述总算力小于所述目标算力的情况下,依据所述总算力,确定目标计算请求;
21.依据所述各个边缘计算设备的算力将所述目标计算请求分解为至少一个微任务。
22.上述的方法,可选的,将所述各个计算结果进行整合,得到目标计算结果,包括:
23.获取所述各个计算结果的标识;
24.将标识相同的计算结果进行整合,得到目标计算结果。
25.一种基于webassembly的边缘计算装置,包括:
26.转换模块,用于将边缘计算容器转换成webassembly格式,得到目标边缘计算容器;
27.发送和接收模块,用于将所述目标边缘计算容器发送给各个边缘计算设备,接收所述各个边缘计算设备的算力;
28.分解模块,用于在接收到计算请求的情况下,依据所述各个边缘计算设备的算力,将所述计算请求分解为至少一个微任务;
29.分配和接收模块,用于将所述微任务分配给对应的边缘计算设备中的目标边缘计算容器进行计算,接收各个计算结果;
30.整合模块,用于将所述各个计算结果进行整合,得到目标计算结果。
31.上述的装置,可选的,所述分解模块包括:
32.计算单元,用于计算所述各个边缘计算设备的总算力和所述计算请求的目标算力;
33.第一分解单元,用于在所述总算力大于等于所述目标算力的情况下,依据所述各个边缘计算设备的算力将所述计算请求分解为至少一个微任务。
34.上述的装置,可选的,还包括:
35.确定单元,用于在所述总算力小于所述目标算力的情况下,依据所述总算力,确定目标计算请求;
36.第二分解单元,用于依据所述各个边缘计算设备的算力将所述目标计算请求分解为至少一个微任务。
37.上述的装置,可选的,所述整合模块包括:
38.获取单元,用于获取所述各个计算结果的标识;
39.整合单元,用于将标识相同的计算结果进行整合,得到目标计算结果。
40.与现有技术相比,本发明包括以下优点:
41.本发明公开了一种基于webassembly的边缘计算方法及装置,该方法包括:将边缘计算容器转换成webassembly格式,得到目标边缘计算容器;将所述目标边缘计算容器发送给各个边缘计算设备,接收所述各个边缘计算设备的算力;在接收到计算请求的情况下,依据所述各个边缘计算设备的算力,将所述计算请求分解为至少一个微任务;将所述微任务分配给对应的边缘计算设备中的目标边缘计算容器进行计算,接收各个计算结果;将所述
各个计算结果进行整合,得到目标计算结果。上述方法,将边缘计算容器转化为webassembly格式的目标边缘计算容器,可以兼容不同的系统平台,因此不需要针对不同的系统平台开发计算容器和对边缘计算设备进行改造。
42.当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本申请实施例公开的一种基于webassembly的边缘计算方法交互示意图;
45.图2为本申请实施例公开的一种基于webassembly的边缘计算方法流程图;
46.图3为本申请实施例公开的一种基于webassembly的边缘计算装置结构框图。
具体实施方式
47.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
49.本发明公开了一种基于webassembly的边缘计算方法及装置,应用在边缘计算过程中,充分利用空闲算力进行边缘计算,可以用于人工智能、模式识别等计算密集型应用,现有技术中,需要根据不同的系统平台(linux、android、windows等)集成对应的边缘计算容器,改造用于边缘计算的设备,由于必须对边缘计算设备进行改造以集成边缘计算容器,会带来了一些安全隐患,这是部分设备拥有者无法接受的。另外,改造带来的额外工作量会造成系统整体算力的潜在损失,同时,边缘计算容器的开发需要针对不同平台开发,给边缘计算平台的提供方也带来了额外的开发工作量
50.因此,本发明提供了一种基于webassembly的边缘计算方法及装置,在边缘计算之前首先需要确定边缘计算设备和边缘计算容器,其中,所述边缘计算设备必须具备:采集边缘数据的能力、智能运算能力和可操作的决策反馈。所述边缘计算容器是通过用户浏览器连接到预设的下载网站,在连接成功的情况下,采用websocket方式在所述预设的下载网站上下载所述边缘计算容器,下载过程如下:
51.1.客户端
52.1).创建websocket实例
53.2).建立连接后回调函数
54.3).收到服务端消息后回调函数
55.4).关闭连接后回调函数
56.5).连接错误后回调函数
57.6).发送数据
58.7).查看当前连接状态
59.2.服务端
60.1).创建服务端websocket对象,等待客户端接入
61.2).从websocket中读取数据
62.3).当收到客户端首次连接请求后,生成握手信息并回复
63.4).连接后,即可接收并解析出客户端的数据
64.5).接收到用户数据后,直接回复客户端
65.6).断开连接
66.7).以上6步完成全双工通信
67.进一步的,具有长连接的方式都是可以的。例如http,将所述边缘计算容器转化为webassembly格式的目标计算容器,在所述边缘计算容器不需要升级的情况下,本操作只需要执行一次。其中,针对webassembly在不同平台上能够以接近本地速度运行,实现快速、高效、可移植,webassembly被限制运行在一个安全的沙箱执行环境中,像其他网络代码一样,它遵循浏览器的同源策略和授权策略。webassembly是一门低阶语言,但是它有确实有一种人类可读的文本格式,这允许通过手工来写代码,看代码以及调试代码。webassembly的设计原则是与其他网络技术和谐共处并保持向后兼容。
68.所述边缘计算方法用于边缘计算设备、边缘计算云端和计算任务请求方之间,三者交互的示意图如图1所示,其中,所述边缘计算云端和所述边缘计算设备采用websocket进行连接。所述边缘计算云端将目标边缘计算容器下载到边缘计算设备的浏览器器中,边缘计算设备中的浏览器加载这个包目标边缘计算容器的网页后,通过相应的javascript胶接代码就启动了所述目标边缘计算容器,
69.将所述边缘计算设备和其对应的算力注册到所述边缘计算云端中的算力库中,当计算请求方提交计算请求时,分配边缘计算微任务到边缘计算设备,边缘计算设备将计算结果反馈至边缘计算云端,边缘计算云端对计算结果进行整合,得到目标计算结果,将所述目标计算结果反馈给计算任务请求方。
70.所述边缘计算方法的执行流程如图2所示,包括步骤:
71.s101、将边缘计算容器转换成webassembly格式,得到目标边缘计算容器;
72.本发明实施例中,针对所述边缘计算容器emscripten首先把c/c++提供给clang+llvm(开源c/c++编译器工具链),比如,在osx上是xcode的一部分。emscripten将clang+llvm编译的结果转换为一个.wasm目标边缘计算容器。
73.就自身而言,webassembly当前不能直接的存取dom;它只能调用javascript,并且只能传入整形和浮点型的原始数据类型作为参数。这就是说,为了可以使用任何web api,webassembly需要调用到javascript,然后由javascript调用web api。因此,emscripten创建了html和javascript胶水代码以便完成这些功能。
74.s102、将所述目标边缘计算容器发送给各个边缘计算设备,接收所述各个边缘计
算设备的算力;
75.本发明实施例中,将所述目标边缘计算容器发送到各个边缘计算设备的浏览器中,针对每一个边缘计算容器计算其所述边缘计算设备的算力,并将其发送到边缘计算云端,将边缘计算设备和其对应的算力注册到所述边缘计算云端的算力库中。
76.s103、在接收到计算请求的情况下,依据所述各个边缘计算设备的算力,将所述计算请求分解为至少一个微任务;
77.本发明实施例中,计算所述各个边缘计算设备的总算力和所述计算请求的目标算力,其中,所述计算请求的目标算计算方法与所述各个边缘计算设备的计算方法相同,本发明实施例中对算力的具体计算方法不进行限定。在所述总算力大于等于所述目标算力的情况下,依据所述各个边缘计算设备的算力将所述计算请求分解为至少一个微任务。
78.进一步的,还包括,在所述总算力小于所述目标算力的情况下,依据所述总算力,确定目标计算请求,其中,所述目标计算请求的算力与所述总算力相同或者小于所述总算力,可以依据具体的情况或者经验进行设定,本发明实施例中对所述目标计算请求包含的具体算力不进行限定。依据所述各个边缘计算设备的算力将所述目标计算请求分解为至少一个微任务。
79.其中,分解过程,计算各个边缘计算设备的算力比值,采用java提供的forkjoinpool来支持所述计算请求或者所述目标计算请求对应的任务拆分成多个“微任务”并行计算,优选的,针对同一个计算任务在分配给各个边缘计算设备时需要分配统一的标识。
80.s104、将所述微任务分配给对应的边缘计算设备中的目标边缘计算容器进行计算,接收各个计算结果;
81.本发明实施例中,任务的分配采用websocket技术传输,并采用效率较高的压缩算法在不影响算力的基础上减少网络传输量,优选的,将所述微任务发送给目标边缘计算设备接收到计算任务,在目标边缘计算容器中进行计算。单次微任务计算不能超过200ms,计算容器由定时线程中计算线程打断超时的计算并返回计算失败,接收所述边缘计算设备反馈的计算结果。其中,所述200ms为举例说明,不进行具体的限定。
82.s105、将所述各个计算结果进行整合,得到目标计算结果。
83.本发明实施例中,运用java提供的forkjoinpool再把多个“小任务”的结果合成总的计算结果。例如,所述边缘计算云端将一个计算任务f1()+f2()分解为两个微任务f1()和f2(),并为f1()和f2()通过边缘计算设备计算得到的计算结果分配标识,依据标识将计算结果汇总到边缘计算云端计算和的目标计算结果,其中,所述标识可以为数字、字母或者其它优选的标识,本发明实施例中,对标识的具体存在形式不进行限定。
84.本发明公开了一种基于webassembly的边缘计算方法,该方法包括:将边缘计算容器转换成webassembly格式的目标边缘计算容器;将目标边缘计算容器发送给各个边缘计算设备,接收各个边缘计算设备的算力;在接收到计算请求的情况下,依据各个边缘计算设备的算力,将计算请求分解为至少一个微任务;将微任务分配给对应的边缘计算设备中的目标边缘计算容器进行计算,接收各个计算结果;将所述各个计算结果进行整合得到目标计算结果。上述的计算方法,将边缘计算容器转化为webassembly格式的目标边缘计算容器,可以兼容不同的系统平台,因此不需要针对不同的系统平台开发计算容器和对边缘计
算设备进行改造。
85.本发明实施例中,利用目前大部分平台(linux、android、windows等)都具备的浏览器技术作为边缘计算容器,从而避免了设备进行改造的工作量。由于直接基于浏览器技术,其安全性也由浏览器背书,使得客户对计算的安全性更加放心。最后,由于基于浏览器的webassembly技术,所以也不需要为每个平台开发单独的边缘计算容器。因此,大大提升可以用于进行边缘计算的设备范围和数量,从而充分调动客户拥有的算力。例如某省运营商拥有超过3万台营业厅pc机,这些pc机大部分算力都是闲置的,利用本方案则可以充分利用这些空闲算力进行边缘计。
86.基于上述的一种基于webassembly的边缘计算方法,本发明实施例中提供了一种基于webassembly的边缘计算装置,所述计算装置的结构框图如图3所示,包括:
87.转换模块201、发送和接收模块202、分解模块203、分配和接收模块204和整合模块205。
88.其中,
89.所述转换模块201,用于将边缘计算容器转换成webassembly格式,得到目标边缘计算容器;
90.所述发送和接收模块202,用于将所述目标边缘计算容器发送给各个边缘计算设备,接收所述各个边缘计算设备的算力;
91.所述分解模块203,用于在接收到计算请求的情况下,依据所述各个边缘计算设备的算力,将所述计算请求分解为至少一个微任务;
92.所述分配和接收模块204,用于将所述微任务分配给对应的边缘计算设备中的目标边缘计算容器进行计算,接收各个计算结果;
93.所述整合模块205,用于将所述各个计算结果进行整合,得到目标计算结果。
94.本发明公开了一种基于webassembly的边缘计算装置,包括:将边缘计算容器转换成webassembly格式,得到目标边缘计算容器;将所述目标边缘计算容器发送给各个边缘计算设备,接收所述各个边缘计算设备的算力;在接收到计算请求的情况下,依据所述各个边缘计算设备的算力,将所述计算请求分解为至少一个微任务;将所述微任务分配给对应的边缘计算设备中的目标边缘计算容器进行计算,接收各个计算结果;将所述各个计算结果进行整合,得到目标计算结果。上述的计算装置,将边缘计算容器转化为webassembly格式的目标边缘计算容器,可以兼容不同的系统平台,因此不需要针对不同的系统平台开发计算容器和对边缘计算设备进行改造。
95.本发明实施例中,所述分解模块203包括:
96.计算单元206和第一分解单元207。
97.其中,
98.所述计算单元206,用于计算所述各个边缘计算设备的总算力和所述计算请求的目标算力;
99.所述第一分解单元207,用于在所述总算力大于等于所述目标算力的情况下,依据所述各个边缘计算设备的算力将所述计算请求分解为至少一个微任务。
100.本发明实施例中,所述分解模块203还包括:
101.确定单元208和第二分解单元209。
102.其中,
103.所述确定单元208,用于在所述总算力小于所述目标算力的情况下,依据所述总算力,确定目标计算请求;
104.所述第二分解单元209,用于依据所述各个边缘计算设备的算力将所述目标计算请求分解为至少一个微任务。
105.本发明实施了紫红,所述整合模块205包括:
106.获取单元210和整合单元211,。
107.其中,
108.所述获取单元210,用于获取所述各个计算结果的标识;
109.所述整合单元211,用于将标识相同的计算结果进行整合,得到目标计算结果。
110.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
111.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
112.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
113.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
114.以上对本发明所提供的一种基于webassembly的边缘计算方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1