FogBus Translation
Intro
物联网范式支持不同的感知器,极其和物体接收外界环境和通过互联网交换数据。 它支持了数据整合和分析通过使用应用来识别事件和出发必要的动作。 如此,物联网帮助我们建立有有限人工干预的不同应用下的物理网络系统比如医保交通等。让人们注意到智能环境可以支持实时决策。
通过为不同应用部署不同的智能系统,现在的云数据中心提供一种解决大量物理分布的物联网设备的方法。然而,云数据中心和物联网设备存在多跳距离(multi-hop distance),导致更高的数据通信和应用服务延迟。对于延迟敏感应用比如远程病人监控等,这种高延迟通信是的服务质量大幅降低。 此外物联网设备会在短时间产生大量数据。当大量数据上传到云端数据中心的时候,会产生严重的网络堵塞。为了解决这些限制,出现了雾和边缘计算范式。两者都是使用了边缘计算资源进行实时决策。带有计算处理器的智能设备比如树莓派,pc,手机,路由器,卫星数据中心等都能提供潜在的边缘计算资源,基于在边缘设备上进行操作,有些人认为雾计算和边缘计算范式类似,并且可以进行互换;而有些人认为边缘计算是雾计算的一个子集,这也是我们这篇文章的观点。
雾环境管理物联网和云数据中心之间的中间层,支持不同特性的物联网应用。其中一些应用是计算密集的,一些事网络或者存储密集的。这些雾计算实例被称为雾节点,分布式地部署在边缘网络上。雾节点中的计算资源,面向不同服务的框架和不同的应用程序帮助雾拓展到类云的计算服务模型,比如SaaS, PaaS, IaaS。因此,减少了服务延迟和网络堵塞,提高服务质量和用用户体验。然而,这些雾节点大多是受到资源限制和从计算能力,操作系统,同级通信标准角度讲各不相同的。由于资源有限,无法在雾计算层容纳所有的物联网应用。因此,支持物联网的系统与雾和云基础设施的无缝集成是必要的,这样才能根据应用需要利用边缘和远程资源。再次集成中,以云为中心的自上而下的方法来管理基于雾的资源是不可行的,当物联网数据的输入频域大于处理的时候。在这种情况下,预期依赖于中心化的资源管理策略,本地进行决策和资源分配利用分布式的自底向上方法是有效的。此外,在集成环境中部署和执行应用时,内部和外部操作操作都会受到计算实例的异构性的阻碍。在这种情况下,与平台无关的技术可以客服对同级通信和应用程序运行环境的阻碍。然而,通过分散的资源管理策略实施不只是基础设施和平台级多样性的集成环境是一项具有挑战性的任务。它的复杂性更是被共存的多重决策实体、未知的网络拓扑安全和尺度拓展性加剧。
已经存在了很多关于实现为物联网系统,云和雾基础设施的应用框架。然而,这些框架很少支持多任务和独立于平台的同时处理。此外,他们提供给应用开发者和用户狭小的框架调整尺度。这些框架利用云资源进行数据存储并且经常使用能源首先的物联网设备来处理原始数据。为了减少管理小号,当前存在的框架使用中心化技术,当降低了服务质量。它们也限制了在单独一些安全方面的关注,导致了集成环境的脆弱性。为了克服这些现有网络的限制,我们开发了一个轻量级框架 FogBus。
_FogBus_利用各种边缘网络资源提供了一个端到端的集成物联网-雾云环境。它支持独立于平台的应用执行和节点到节点的互动。它被设计用于帮助实现
- 不同并发/应用程序编程模型,例如SPMD(Single Program and Multiple Data),工作流和流
- 资源管理和在雾和云集成的计算环境下执行这些应用的调度策略
为了保证数据完整性,保护和隐私,Fogbus同样实现了区块链并应用了授权和加密技术来提高可靠性。
主要贡献:
- 提出轻量级框架FogBus用于集成的物联网系统、雾云基础设施,以此来按照应用要求利用边缘和远程资源。它使用了区块链来在传输保密数据时确保数据完整性。
- 我们设计了一个独立于平台的应用执行和节点到节点互动架构来克服集成环境中的异构。
- 我们开发了一个原型应用环境系统为Sleep Apnea数据分析,评估FogBus性能并展示使用SPMD模型构建的应用如何使用FogBus不同的设置实现并用于在集成环境中处理物联网数据。
Related Work
没空先不讲
FogBus框架
FogBus通过提供使用结构化通信和独立于平台应用执行的软件组件集成了多种硬件工具。高层级展示如图:
包含如下元素
硬件设备
物联网设备,雾网关节点等硬件设备,雾计算节点和云数据中心组成FogBus基础
**物联网设备:物联网设备包含基础的接受外界环境的传感器和将给定指令转换成物理动作的执行器。一般来说,物联网设备是能源和资源受限的,仅能作为数据生产者或者消费者。在一些情况下,物联网设备装备了有限的计算能力进行原始数据预处理。FogBus使得物联网设备通过无线或者有线通信协议与附近的网关连接。物联网设备感受频率可以根据系统环境进行调整,其中数据格式因设备而异。
雾网关节点:在FogBus中,雾网关节点是分布式计算设施的入口。雾网关节点帮助物联网设备在集成环境中配置,用于防止和处理相应的应用。通过雾网关节点,FogBus提供前端应用程序让用户设置权限验证,访问后端程序,传达服务期望,接受服务结果,管理物联网设备和根据负载能力请求资源。此外,雾网关节点进行数据过滤并把数据组织到一个通用格式。雾网关节点同样将一个智能系统中不同来源的数据集成。对于大规模计算,雾网关节点转发数据到集成环境中的其它计算实例。雾网关节点通过受约束应用协议(Constrained Application Protocol)或者简单网络管理协议(Simple Network Management Protocol)和可见雾节点进行快速且动态的通信。
雾计算节点:**FogBus可以同时处理多种异构雾计算节点。雾计算节点装备了处理核心,内存,储存和带宽来进行多种FogBus操作。基于这些操作,雾计算节点执行3种角色。
- 经纪人节点:为了运行物联网应用的后端程序,FogBus促进了相应的雾网关节点与任何可访问的雾计算节点的连接。该雾计算节点启动数据处理,前提是该应用所需的资源在其内部可用。如果它不能满足应用程序的要求,作为一个中介节点,它与其他FCN和云数据中心进行沟通,为执行后端程序提供必要的资源。在这种情况下,它将计算任务分配给计算实例,无缝监控和协调它们的活动,并进行负载平衡。FogBus支持这种经纪人节点具有足够的安全功能和容错技术,如区块链和复制,以便它们在与雾计算节点、雾网关节点和云数据中心互动时能够确保可靠性。
- 通用计算节点:出于安全问题,FogBus没有将所有雾计算节点直接暴露给雾网关节点。它们被用于一般的计算目的,并通过代理节点访问。在这种情况下,经纪人节点作为通用计算节点的防火墙工作。此外,经纪人节点明确地管理他们的资源,并转发数据和可执行的后端应用程序进行处理。在执行分布式应用时,通用计算节点在特定的经纪人节点的监督下形成集群。一个通用计算节点可以与多个经纪人节点相关联。在这种情况下,基本的矢量时钟被用于同步 系统。矢量时钟帮助通用计算节点识别由不同经纪人节点向其发出的并发命令。之后,并发的命令由通用计算节点任意排序,并通知相应的经纪人节点。在执行命令时,通用计算节点以一对一的方式与相关的经纪人节点互动。此外,为了确保应用层面的一致性,一个GCN一次最多执行一个应用。
- 仓库节点:除了进行中介和计算操作,一些雾计算节点管理分布式数据库,以促进数据共享、复制、恢复和安全存储。仓库节点提供即时访问和分析历史数据的接口。它们维护各种应用的元数据,包括应用模型、运行时要求和依赖关系。此外,这些节点可以在应用执行过程中保存一些中间数据,以便从任何异常驱动的停止点开始进行数据处理。此外,为了确保数据层面的一致性,存储库节点以日志结构的方式管理所有数据,这是由它们的更新时间戳和来源驱动的。
**云数据中心:**当Fog基础设施过载或服务要求容许延迟时,FogBus从云数据中心扩展资源以执行后端物联网应用。通过云数据中心,FogBus为全球的物联网应用扩展了计算平台。在与雾仓库节点的联系中,它促进了广泛的数据存储和分配,使数据的访问和处理变得不受地点限制。
软件组件
为了简化物联网-雾-云的整合,FogBus提供了各种相互关联的软件组件,可以处理不同硬件设备的操作系统(OS)和点对点(P2P)通信层面的异质性。这些组件大致分为三种类型的系统服务。经纪人服务管理经纪人节点的功能,并根据需要启动其他软件组件,而计算服务则负责控制通用计算节点的运行。当经纪人节点本身开始执行后端应用程序时,计算服务在其中被触发。相反,存储库服务可以跨所有的Fog节点运行,以管理存储库的相关操作。图2展示了不同FogBus软件组件之间的互动。
经纪人服务
**经纪人安全管理器:在收到来自FGN的用户认证凭证后,经纪人安全管理器与存储库服务的凭证档案一起对其进行验证。凭证档案还协助该组件提供远程云整合所需的安全证书。经纪人安全管理器生成公钥和私钥值对,以促进端口敲击、特权端口认证和基于属性的加密,以确保相应的经纪人节点与其他Fog节点的通信安全。此外,该组件作为区块链接口,在与多个实体交换数据时确保完整性。在这种情况下,在数据管理器的帮助下,它从收到的数据中创建新的区块。每个区块的哈希值和工作证明被发送到Credential Archive,以便在其他节点中分发,这样就可以确保在不同的目的地对链进行一致的验证。经纪人安全管理器与计算服务的凭证档案和执行者安全管理器一起管理FogBus内部的进一步安全问题,并为其他组件提供对所需信息的灵活访问。
资源管理器:这个组件负责选择合适的资源来执行应用程序。它从存储库服务的应用目录中识别不同应用的需求,并通过计算服务的资源监控器感知每个代理和GCN中的资源状态。云整合器协助资源管理器获得基于云的实例(如虚拟机和容器)的上下文数据。获得所有信息后,资源管理器在FCN和云上为应用提供所需的资源。在这种情况下,资源管理器明确考虑了计算实例在其处理能力方面的异质性。来自计算服务的应用执行者和FCN及云的内部软件系统分别帮助资源管理器提供资源。FogBus帮助服务提供商在资源供应期间与资源管理器一起应用各种政策。此外,该组件还维护一个资源配置文件,跟踪FCN和云实例的地址以及部署的应用程序,以便随后的数据流可以直接发送到分配的资源进行处理。该文件也与云计算共享,以便在相应节点发生故障时恢复放置信息。
数据管理器:该组件接收来自物联网设备的感应和预处理数据。它还可以从多个来源汇总数据,并根据上下文校准数据接收频率。然而,有了这些数据,区块和它们的链被创建,以保持与经纪人安全管理器的完整性。之后,它将数据转发给计算服务的应用执行者进行处理,并将它们以加密的方式存储在存储库服务的数据容器中,以供进一步使用。在分配的资源上部署应用程序后,资源管理器将资源配置文件共享给数据管理器,这样它就可以直接将后续数据流发送到处理目的地。
云整合器:**FogBus与云的所有互动都由云整合器处理。它将云实例的上下文通知给框架,并将存储和资源配置的命令转发给云。通过这个组件,FogBus不仅为供应商提供了开发定制的云整合脚本的接口,还允许第三方软件系统使用其应用编程接口(API)同时处理多个云数据中心。
仓库服务
**凭证档案:在物联网设备配置期间设置的用户认证凭证被保存在凭证档案中。它将经纪人服务产生的每个数据块的安全密钥和细节分发给其他人。该组件还提供安全套接字层(SSL)和传输层安全(TLS)证书,用于云整合。此外,它还支持用于加密和解密存储数据的数据容器。通过存储库服务的云稀释器,它定期更新其在云上的图像,以便在不确定的故障发生后,安全属性可以很容易地被恢复和分配给其他人。
应用程序目录:这个组件负责维护各种类型的应用程序的细节,包括他们的操作,他们的开发者推荐的系统属性,执行和编程模型。此外,它还规定了资源要求和应用程序及其成员任务的依赖性。应用目录可以通过云计算Dilator从云端扩展这些信息。根据其提供的规格,经纪人服务的资源管理器为一个应用程序提供资源。根据资源管理器的命令,它还与计算服务的应用执行器一起在分配的资源上组装应用。
数据容器:从物联网设备收到的数据被存储在数据容器中,以便可以用于长期分析。在这里,数据隐私通过应用加密技术得到了保证。在应用执行过程中,它也从应用执行者那里接收一些中间数据,帮助FogBus从任何停止点重新开始处理数据。此外,在FogBus中,基于数据容器的数据库模式可以根据不同物联网系统的要求进行定制和共享。此外,数据容器同时与云扩张器保持联系,以掌握远程数据并通过云端分散本地数据。
云扩张器:**该组件为存储库服务的其他软件组件与云进行交互提供便利。在这种情况下,经纪人服务的云集成器用所需的命令协助云扩张器扩展应用规范、传输安全属性和交换数据。
计算服务
**执行者安全管理器:在进行计算操作时,FCN与其他人的无缝安全互动由执行者安全管理器管理。存储库服务的凭证档案协助该组件提供所需的安全属性。与凭证档案和经纪人安全管理器一起,这个组件在验证区块链方面发挥着重要作用。
资源监控器:繁忙和空闲状态(例如计算资源的繁忙和空闲状态(例如:CPU使用率、内存占用、网络利用率、电力消耗等)都由该组件与应用执行器联合监控。基于这些感知的信息,资源管理器为不同的应用程序提供资源。它还跟踪分配的资源在运行期间满足应用程序的服务质量要求的性能。每当资源的负载超过服务提供者定义的阈值或发生不确定的故障时,该组件会立即通知资源管理器。为了应对这种情况,资源管理器可以启动一些行动,如动态资源配置、应用执行迁移和中间数据存储。然而,在当前版本的FogBus中,这些行动是以抽象的形式保留的,以便FogBus用户可以根据系统的上下文定制他们的资源管理策略。尽管如此,这个组件还是进行了必要的操作,以实现系统的同步。
应用执行器:**根据资源管理器发出的配置指令,该组件为相应FCN上的不同应用分配资源。它还从应用目录中扩展出应用可执行文件,以便在分配的资源上进行部署。一旦应用部署完成,它就开始接收由数据管理器转发的数据进行处理。此外,该组件定期向资源监控器通报资源的状态。当检测到或预测到任何异常时,该组件被资源管理器要求从应用程序的执行中提取中间数据并存储在数据容器中,以使框架具有容错性。
网络结构
FogBus的软件组件之间共享许多数据和信息。为了促进它们之间的相互作用,该框架的硬件设备之间必须进行持久而稳定的网络通信。还需要确保硬件设备不会因通信负担而不堪重负。此外,FogBus网络应该是安全的、可扩展的和容错的。考虑到这些事实,我们设计了FogBus网络结构,如图3所示。
**拓扑结构:在设计FogBus框架的网络结构时,采用了主-从拓扑结构。在这里,经纪人节点是主站,而其他FCN则作为工人发挥作用。作为主站,经纪人节点接收来自FCN的数据流和用户信息,并发现工人来处理和存储它们。在应用程序运行期间,它管理工人的功能,并将应用程序执行所产生的服务结果交付给FGNs。此外,它还将支持FogBus的系统的Fog基础设施与云基础设施连接起来。为了促进数据共享和减少主控器的开销,工人节点也在主控器的明确监督下相互通信。启用FogBus的系统的主站、工人和FGN都与一个共同的无线局域网(WLAN)有关,该网络由一个或多个路由器管理。
可扩展性:FogBus框架允许服务提供商根据系统的情况扩大活跃的Fog节点的数量。与同一WLAN连接的FCN可以通过使自己可以访问相应的主控器而简单地成为一个工作者。之后,主站在该FCN上配置所需的软件组件以进行所需的操作。FogBus支持一个WLAN中多个主站的共存,这样FCN就可以获得不同的选择来分配数据流进行处理。主站之间也共享工人。在这种情况下,数据的完整性和私密性不会受到影响,因为每个主站都维护自己的区块链和独立的工人数据库。此外,在主站运行的软件组件有助于Fog基础设施同时与多个云数据中心整合。
可靠性:运行多个主站的设施隐含地消除了FogBus内主站-工作站模型的固有单点故障限制。在应用执行和数据管理过程中,基于矢量时钟的同步和一对一的互动支持不同工作节点上各自操作的明确隔离和一致性。该框架允许每个主站将其镜像复制到一个工作节点上。如图4所示,在该主站不确定的故障期间,这种复制有助于相应的工作器获得主站的权限,并防止通信网络的崩溃。在这里,FogBus软件组件独立于平台的特性起到了关键作用。主站也会定期检查其工作者的状态,并存储他们的中间数据和配置,包括在不同地方部署的应用程序。当一个工作器发生故障时,主站与其他工作器共享工作器的信息,以便剩余的数据处理可以立即开始。如果一个主站的所有工作器都过载了,就会考虑其他主站的工作器。在这种情况下,所有的主站都在它们之间保持内部通信。因此,计算设施在框架内始终保持可用。![)_T}9D(UY[8C}67F{N$~}6.png
安全性:FGN和FCN纳入FogBus提供的网络中需要适当的认证。这是由管理WLAN的路由器明确处理的。主站还应用网络级访问控制和数据包过滤技术,以防止网络基础设施被破坏,并消除恶意内容。在FogBus中,还存在多个通信链路以到达不同的Fog节点。它最终有助于在发现任何网络异常时重新调整路由路径。在FogBus框架中进一步使用云提供的网络安全策略,同时与不同的云基础设施进行互动。
性能:**FogBus框架专门为一个特定的系统利用网络带宽。由于网络资源不与外部实体共享,从网络角度来看,系统的整体性能不会下降。如果服务提供商打算增加框架中FCN的数量,对额外的网络资源的要求也不会很高。此外,它有利于雾节点的轻松部署和更快地向用户提供服务。作为一个本地化的网络,它的吞吐量也随着时间的推移保持在一个可接受的水平。此外,FogBus支持网络资源的定期调整,因此它可以处理任何频率和数量的传入流量。此外,FogBus的网络结构在管理和配置网络运行方面并不太依赖外部硬件设备,这就隐含着减少服务提供商的资本和运营支出。
设计与实现
FogBus中使用的API、执行环境、脚本和编程语言,可以被集成环境的每个硬件所支持。它最终有助于FogBus的功能超越其操作系统和P2P通信层面的异质性。
系统服务
FogBus的每个系统服务(经纪人服务、存储库服务和计算服务)都分为服务接口和管理活动。在主站,服务接口协助接收来自网关设备的数据和用户的规格,并展示服务结果。服务提供者也通过这个接口向主站通知工作者的IP地址。主站内的管理活动包含资源配置和负载平衡策略,并更新配置文件。此外,它还生成并转发命令给工人。工人处的服务接口作为相应节点的受体,负责将应用程序的输出文件解码给主站。基于主站的命令,工人的管理活动发挥资源分配、监控和状态共享的功能。它还在关系型数据库中存储数据,并为应用程序的后端程序创建输入文件。除了区块链,不同系统服务的服务接口和管理活动共同处理其他安全问题,如FogBus中主站和工人的加密和认证。
在FogBus中,每个系统服务的服务接口都以网络程序的形式实现。它们是在PHP上开发的,PHP是一种嵌入HTML的服务器端脚本语言,使用基于HTTP协议的RESTful API来交换数据并在WLAN内的不同FCN之间共享信息。基于PHP的网络程序可以在每个操作系统中运行,如Unix、Windows、Linux和NetWare。另一方面,HTTP是一个应用层协议,可以适应不同的传输层协议,如TCP和UDP的运行。此外,大多数嵌入式、网络和物联网设备要么设计有用于HTTP通信的内置协议栈,要么支持其轻松安装。因此,FogBus系统服务的服务接口可以在不同类型的操作系统和P2P通信标准中运行。在FogBus中,每个FCN中还部署了一个Apache服务器,以运行相应的系统服务的网络程序。此外,在FogBus中,每个系统服务的管理活动是用Java编程语言开发的。编译的Java程序在Java虚拟机(JVM)上运行,可以很容易地在各种操作系统上安装。因此,FogBus系统服务的管理活动在广泛的平台上运作。此外,MySQL服务器被安装在FogBus的不同FCN中,以管理数据库及其操作。
区块链
保持数据的完整性,确保数据不被未注册的来源发送,对系统的可信度非常重要。为了数据的完整性和防止数据被篡改,区块链技术最近在许多实时系统中被采用。理论上,区块链是一组分布式账本,可以通过编程来记录和跟踪任何事物的价值。在区块链中,每当分布式系统的一个实体收到新的数据,它就会将数据形成一个区块。这个区块拥有一个哈希值,这个哈希值通常是通过使用相应的数据、链中区块的索引、数据接收的时间戳和它在链中的前一个区块的哈希值来创建的。此外,节点将该区块与链上的其他区块进行挖掘,为该区块创建一个工作证明,使其哈希值与其他区块有相似的模式。后来,该区块的数据、副本被发送到其他节点,以便与他们的本地链相连接。在这个操作中,节点挖掘区块以证明工作证明。数字签名也被用来在目的地验证区块的来源。然而,如果任何区块的数据在一个节点上被改变,该区块的哈希值将改变并与保存在下一个区块的哈希值不匹配。因此,链的后面部分将变得无效。为了使链再次有效,无效区块的哈希值需要重新计算。此外,每个区块的工作证明也需要重新生成。这两项操作都很耗时,而且计算量很大。此外,对区块链中数据的这种欺诈性操作不会成功,除非其50%的分布式副本通过相同的操作被单独改造。因此,在严格的时间限制内很难改变区块链中的任何数据。
在FogBus中,主控者根据收到的数据创建区块,并根据数据、前一个区块的哈希值、时间戳和使用SHA256算法的非ce值计算每个区块的哈希值(Brownworth,2017)。master还创建了随机的公钥/私钥对,帮助生成具有原始数据的唯一签名。后来,他们与工人分享区块链细节、数字签名属性和Base64编码格式的数据。通过收到的主人的公钥,工人可以验证数据来自合法来源。如果使用任何其他密钥,该数据将被拒绝。在这种情况下,每个区块的公钥和私钥对是保持动态的,以防止使用暴力技术生成私钥。此外,每个区块和它的哈希值在工人处通过挖掘支持工作证明的nonce值进行验证。如果任何工人在区块链篡改或签名伪造方面报告错误,那么大多数网络中的区块链就会被复制到该节点。FogBus还为用户和供应商提供了跟踪数据/区块流的机会,通过显示每个工作者的区块链副本的最新哈希值来跟踪在主站运行的服务接口。因此,它帮助用户和供应商对FogBus网络中的可疑活动采取必要的行动。在FogBus中,区块链是用Java编程语言开发的,在FogBus的不同FCN中,这个工具直接与相应的系统服务进行交互。
云端插件
在FogBus中,运行在主站的服务接口提示用户指定他们在数据处理方面的云整合意图。如果用户希望将云资源用于计算,那么部署在主站的FogBus的云插件才会被激活。对于其他操作,如存储和分配,主站的管理活动直接与云进行通信。然而,FogBus为供应商提供了灵活性,可以使用不同的定制或第三方云插件服务来整合云和Fog基础设施,以达到计算的目的。在运行第三方云计算插件服务的情况下,主站会根据该插件的要求进行配置。然而,要开发定制的插件,最好是使用跨平台的编程语言。在当前版本的FogBus中,Aneka是一个用于云计算集成的第三方软件,用于执行计算操作。
应用
FogBus支持不同物联网系统的应用程序的执行和部署。在FogBus中,这些应用程序被划分为前端和后端程序。尽管应用程序不是FogBus软件组件的一部分,但FogBus为开发者提供了一些指导方针,以建立符合FogBus框架特征的前端和后端程序。应用程序的前端和后端程序的必要规格描述如下。
前端
应用程序的前端程序在FGNs中运行。大多数FGN的底层平台是Android、iOS、Windows、Tizen、WebOS和RTOS。在这种情况下,开发前端程序的编程语言应该被这些平台所支持。此外,对于某些应用,前端程序需要临时存储数据。在这一点上,开发人员应该使用与这些平台兼容的数据库系统和模式。此外,前端程序要处理来自物联网设备的传入数据。大多数物联网设备运行蓝牙低能量网络技术进行通信,因为它们有能量限制。为了处理这个问题,前端程序应该同时支持普通和低能蓝牙互动。在FogBus框架中,前端程序与运行在主站的服务接口直接相关,用于转发物联网数据和用户信息,并接收服务结果。为了简化这些互动,前端程序的用户界面可以被设计成能够轻松解析主站的服务接口的网络程序。
后端
在FogBus中,应用程序的后端程序是在FCN中执行的。由于FCN是分布式的,为了充分利用其能力,最好以分布式的方式建立后端程序。在这种情况下,开发人员可以对后端程序进行模块化开发。此外,后端程序的执行不应受到FCN的操作系统级异质性的阻碍。为了解决这个问题,开发人员可以使用跨平台编程语言,如Java来开发后端程序。在开发后端程序时,应指定脚本中的一些特定点,以便在执行过程中可以存储这些点上的应用程序的中间数据。此外,后端程序应该能够提取输入文件并在工人处更新输出文件。