CN117651935A - FaaS控制器及用于FaaS系统的方法 - Google Patents

FaaS控制器及用于FaaS系统的方法 Download PDF

Info

Publication number
CN117651935A
CN117651935A CN202180100567.4A CN202180100567A CN117651935A CN 117651935 A CN117651935 A CN 117651935A CN 202180100567 A CN202180100567 A CN 202180100567A CN 117651935 A CN117651935 A CN 117651935A
Authority
CN
China
Prior art keywords
function
faas
controller
scope
access
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.)
Pending
Application number
CN202180100567.4A
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies 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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Publication of CN117651935A publication Critical patent/CN117651935A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

提供了一种配置成用于FaaS系统的FaaS控制器。所述FaaS控制器用于从实体接收表示函数的计算机指令,并确定所述函数的作用域。所述FaaS控制器还用于基于所述作用域验证所述函数是否安全,如果所述函数被验证为安全,则将所述函数部署到一个或多个工作进程。因此,所述FaaS控制器隔离不同作用域的函数,并且只接受安全的函数。此外,单个FaaS工作线程可以执行来自多个租户的函数,并且不使用运行时插桩或沙盒技术,并按原样运行提供的函数,从而提高了计算资源(例如CPU周期)利用的效率。

Description

FaaS控制器及用于FaaS系统的方法
技术领域
本发明大体上涉及云计算领域;更具体地,涉及一种配置成用于FaaS系统的函数即服务(Function-as-a-Service,FaaS)控制器,以及一种用于FaaS系统的方法。
背景技术
通常,云计算是指在没有用户直接主动管理的情况下,计算机系统资源的按需可用性,尤其是数据存储(如云存储)和计算能力。高容量网络、低成本计算机和存储设备的可用性,以及硬件虚拟化、面向服务的架构、自主和效用计算的广泛采用,促进了云计算的发展。云计算提供商通常根据不同的模型提供其“服务”,如基础设施即服务(Infrastructure-as-a-Service,IaaS)、平台即服务(Platform-as-a-Service,PaaS)和软件即服务(Software-as-a-Service,SaaS)。通常,函数即服务(Function-as-a-Service,FaaS)模型已成为云计算环境中流行的产品。FaaS模型也称为无服务器计算。FaaS模型或FaaS基础设施负责管理用户提供的任意小程序(即函数),并在用户定义的事件上调用这些小程序。典型的函数是在网络请求时调用的(或由某个计时器/超时触发)。此外,典型的函数是短时间运行的,即,在数秒内。此外,典型的函数响应请求或调用其它函数。例如,当请求到达时,FaaS基础设施创建工作线程(例如,容器、虚拟机或进程),所述工作线程具有足够的运行时和用户提供的代码来服务请求(以及任何其它类似性质的传入请求)。
传统上,不同的实体使用云来实现自己的目标。在典型的公有云中,有许多不同类型的实体,如组织/租户、项目(特定组织内)、用户、(多个用户的)团队和基础设施特定实体(例如函数或虚拟机)。此外,策略控制不同类型实体之间的关系和访问。例如,策略可以支持函数访问同一项目中的所有其它函数;或者,不同的策略可以支持函数访问组织中的所有函数。此外,同样的方法也适用于私有云,其中,在单个组织中,访问会基于组织单元或其它方式受到限制。因此,最重要的是确保一个函数无法以安全的方式了解其它函数可用的信息。
在某些场景中,传统的无服务器计算平台使用开源虚拟化技术在沙盒(即,将未测试的代码更改和彻底实验与生产环境或存储库隔离的测试环境)内运行用户代码。但是,运行每个实体或实体组的沙盒成本相当高,而且沙盒引入了大量的重复,因为每个沙盒都绑定相关的运行时。此外,沙盒只有在空闲了一段定义时段之后才会终止。因此,存在与传统的无服务器计算平台关联的效率低下和不可靠的技术问题,以及如何安全地隔离使用同一平台的不同实体的函数的技术问题。
因此,根据上述讨论,需要克服与传统的无服务器计算平台关联的上述缺点。
发明内容
本发明提供了一种配置成用于FaaS系统的函数即服务(Function-as-a-Service,FaaS)控制器,以及一种用于FaaS系统的方法。本发明提供了一种方案,解决了与传统的无服务器计算平台关联的效率低下和不可靠的现有问题,以及如何安全地隔离使用同一计算平台的不同实体的函数的现有问题。本发明的目的是提供一种至少部分克服现有技术中遇到的问题的方案,并提供一种用于FaaS系统的改进的FaaS控制器和方法,其仅接受那些安全的函数。此外,单个FaaS工作线程可以执行来自多个租户的函数,并且不使用运行时插桩或沙盒技术,并按原样运行提供的函数,从而提高了计算资源(例如CPU周期)利用的效率。
本发明的一个或多个目的是通过所附独立权利要求中提供的方案实现的。在从属权利要求中进一步定义本发明的有利实现方式。
根据一个方面,本发明提供了一种FaaS控制器,配置成用于FaaS系统。所述FaaS控制器用于从实体接收表示函数的计算机指令,并确定所述函数的作用域。所述FaaS控制器还用于基于所述作用域验证所述函数是否安全,如果所述函数被验证为安全,则将所述函数部署到一个或多个工作进程。
本发明的FaaS控制器提供了一种高效可靠的无服务器计算平台,以隔离不同作用域的函数。FaaS控制器确保函数的安全性,并仅接受那些根据预定标准可证明安全的函数。此外,FaaS控制器不需要用于函数执行的沙盒,因此,用于执行函数的软件层较少。此外,由于更多的函数可以共享运行时,因此资源(例如,用于初始化的CPU周期)被高效利用。
在一种实现方式中,所述FaaS控制器还用于通过以下操作基于所述作用域验证所述函数是否安全:确定所述函数的一个或多个访问作用域;基于用户定义的策略确定所有访问作用域与所述函数的所述作用域是否相同,如果相同,则验证所述函数安全。
在另一种实现方式中,所述FaaS控制器还用于通过以下操作确定所述一个或多个访问作用域中的至少一个访问作用域:确定所述函数调用的至少一个函数;将所述函数调用的所述至少一个函数中的每个函数的作用域确定为访问作用域。
在另一种实现方式中,所述FaaS控制器还用于通过以下操作确定所述一个或多个访问作用域中的至少一个访问作用域:确定所述函数访问的至少一个内存区域;将所述函数访问的所述至少一个内存区域中的每个内存区域的作用域确定为访问作用域。
因此,对于几种实现方式,不同作用域的函数被成功隔离,并成功验证了函数的安全性。
在另一种实现方式中,所述FaaS控制器还用于确定至少一个内存访问包括在所述函数执行期间确定的运行时内存访问,并响应于此,将默认错误作用域分配为所述运行时内存访问的所述访问作用域,所述默认错误作用域不同于所述函数的所述作用域。
通过运行时内存访问,与函数作用域不同的默认错误作用域被分配为函数的访问作用域。
在另一种实现方式中,所述FaaS控制器还用于确定所述函数不安全,并响应于此,避免验证所述函数是否安全;向所述实体提供关于所述确定所述函数不安全的详细信息。
因此,不安全函数连同被视为不安全函数的原因被发送回用户进行校正。因此,只有那些可证明安全的函数才存储在FaaS系统中。
在另一种实现方式中,所述FaaS控制器还用于,如果所述函数调用的所述至少一个函数中的至少一个函数的所述访问作用域不同于所述函数的所述作用域,则确定所述函数不安全,并响应于此,确定关于所述确定所述函数不安全的所述详细信息包括具有不同作用域的被调用函数。
因此,如果函数的作用域与函数调用的函数的作用域不同,则函数被确定为不安全,并被发送回用户进行校正。
在另一种实现方式中,所述FaaS控制器还用于,如果所述函数访问的所述至少一个内存区域中的至少一个内存区域的所述访问作用域不同于所述函数的所述作用域,则确定所述函数不安全,并响应于此,确定关于所述确定所述函数不安全的所述详细信息包括具有不同作用域的所述内存区域访问。
因此,如果函数的作用域与函数访问的内存区域的作用域不同,则函数被确定为不安全,并被发送回用户进行校正。
在另一种实现方式中,所述FaaS控制器还用于确定所述函数包括运行时内存访问,并响应于此,确定所述函数不安全,并且确定关于所述确定所述函数不安全的所述详细信息包括所述运行时内存访问。
因此,如果函数的作用域与运行时内存访问的访问作用域不相同,则函数被确定为不安全,并被发送回用户进行校正。
在另一种实现方式中,所述FaaS控制器还用于通过以下操作将所述函数部署到所述一个或多个工作进程:存储所述函数;从实体接收对所述函数的请求;并响应于此,使所述一个或多个工作进程执行所述函数。
通过一个或多个工作进程,通知FaaS工作线程将从FaaS存储器检索到的函数加载到进程内存中以便执行。
在另一种实现方式中,所述FaaS控制器还用于进一步通过以下操作将所述函数部署到所述一个或多个工作进程:生成和启动所述一个或多个工作进程,并为每个工作进程生成用于由所述一个或多个工作进程执行的所述函数的运行时环境。
因此,单个FaaS工作线程中的所有函数都可以在单个工作进程中运行。
在另一种实现方式中,所述FaaS控制器包括前端、函数验证器和函数管理器。所述前端用于从所述实体接收表示所述函数的所述计算机指令。所述函数验证器用于确定所述函数的所述作用域,并基于所述作用域验证所述函数是否安全。所述函数管理器用于将所述函数部署到一个或多个工作进程。
通过前端、函数验证器和函数管理器,FaaS控制器的所有操作都可以成功执行。
在另一种实现方式中,所述FaaS系统包括第一设备和第二设备。所述第一设备用于执行所述前端、所述函数验证器和所述函数管理器中的至少一个。所述第二设备用于执行所述前端、所述函数验证器和所述函数管理器中的至少一个。
通过第一设备和第二设备,FaaS控制器可以分布在不同的服务器上。因此,单个FaaS工作线程可以执行来自多个租户的函数。
在另一方面,本发明提供了一种用于FaaS系统的方法。所述方法包括:从实体接收表示函数的计算机指令;确定所述函数的作用域;基于所述作用域验证所述函数是否安全,如果所述函数被验证为安全,则将所述函数部署到一个或多个工作进程。
本发明的方法提供了一种高效可靠的无服务器计算进程,以隔离不同作用域的函数。所述方法确保函数的安全性,并仅接受那些根据预定标准可证明安全的函数。此外,所述方法不需要用于函数执行的沙盒,因此,用于执行函数的软件层较少。此外,由于更多的函数可以共享运行时,因此资源(例如,用于初始化的CPU周期)被高效利用。
在又一方面,本发明提供了一种计算机可读介质,包括指令,当所述指令加载到FaaS控制器中并由所述FaaS控制器执行时,使所述FaaS控制器能够执行上述方面的方法。
计算机可读介质实现了本发明的相应方法的所有优点和效果。
需要说明的是,本申请中描述的所有设备、元件、电路、单元和模块可以通过软件或硬件元件或其任何类型的组合实现。本申请中描述的各种实体执行的所有步骤以及所描述的将由各种实体执行的功能旨在表明相应的实体适于或用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的特定功能或步骤没有在执行该特定步骤或功能的该实体的具体详述元件的描述中反映,但是技术人员应该清楚,这些方法和功能可以在相应的硬件或软件元件或其任何组合中实现。可以理解的是,本发明的特征易于以各种组合进行组合,而不脱离由所附权利要求书所定义的本发明的范围。
本发明的附加方面、优点、特征和目的从附图和结合以下所附权利要求书解释的说明性实现方式的详细描述中变得显而易见。
附图说明
当结合附图阅读时,可以更好地理解以上发明内容以及说明性实施例的以下详细描述。为了说明本发明,本发明的示例性结构在附图中示出。但是,本发明不限于本文公开的具体方法和工具。此外,本领域技术人员应理解,附图不是按比例绘制的。在可能的情况下,相同的元件用相同的数字表示。
现在参考下图仅作为示例来描述本发明的实施例,其中:
图1是函数即服务(Function-as-a-Service,FaaS)系统的图;
图2是用于FaaS系统的方法的流程图;
图3A是描述在隔离运行时下FaaS工作线程的概念架构的示例图;
图3B是描述在共享运行时下FaaS工作线程的概念架构的示例图;
图4A是描述由FaaS系统的FaaS控制器执行的提交流的各种操作的过程的流程图;
图4B是描述由FaaS系统的FaaS控制器执行的加载流的各种操作的过程的流程图;
图5A是描述由FaaS系统的FaaS控制器执行的提交流的各种操作的过程的流程图;
图5B是描述由FaaS系统的FaaS控制器执行的加载流的各种操作的过程的流程图。
在附图中,带下划线的数字用于表示带下划线的数字所在的项目或与带下划线的数字相邻的项目。不带下划线的数字与由将不带下划线的数字与项目关联的线标识的项目有关。当一个数字不带下划线并具有关联的箭头时,不带下划线的数字用于标识箭头指向的一般项目。
具体实施方式
以下详细描述说明了本发明的实施例以及可以实施这些实施例的方式。虽然已经公开了实施本发明的一些模式,但本领域技术人员应认识到,也可存在用于实施或实践本发明的其它实施例。
图1是本发明的实施例提供的函数即服务(Function-as-a-Service,FaaS)系统的图。参考图1,示出了网络环境图100,包括由云表示所表示的FaaS系统102(云表示仅用于说明目的)。FaaS系统102包括由虚线框表示的FaaS控制器104(虚线框仅用于说明目的)。在一种实现方式中,FaaS控制器104包括前端104A、函数验证器104B和函数管理器104C。FaaS系统102还包括FaaS存储器106和FaaS工作线程108。还示出了第一实体110和第二实体112。
FaaS系统102是指使用户能够开发应用程序和部署功能,并且仅在函数执行时计费的云计算模型。或者,FaaS系统102为用户提供运行单个函数、逻辑片段或应用程序的一部分的能力,并且仅在代码执行时收费。FaaS系统102也可以称为无服务器计算模型。与始终在至少一台服务器上运行的其它云计算模型不同,FaaS系统102仅在执行函数时运行,然后关闭。FaaS系统102包括用于在FaaS控制器104、FaaS存储器106和FaaS工作线程108之间通信的合适的逻辑、电路、接口和/或代码。
FaaS控制器104是指执行FaaS控制进程的一个或多个处理器。FaaS控制器104也可以简称为控制器。FaaS控制器104包括用于在前端104A、函数验证器104B和函数管理器104C之间通信的合适的逻辑、电路、接口和/或代码。前端104A是支持用户添加新函数并管理现有函数的FaaS系统102的面向用户的部分。函数验证器104B负责根据预定标准判断给定函数是否安全。函数管理器104C是FaaS系统102的内部部分,负责函数生命周期(例如将函数持久化到FaaS存储器106,将函数调度到FaaS工作线程108)。FaaS控制器104配置成用于FaaS系统102,并用于从实体接收表示函数的计算机指令,确定函数的作用域,并基于作用域验证函数是否安全,如果函数被验证为安全,则将函数部署到一个或多个工作进程。
FaaS存储器106是指包括函数工件的云存储元件。FaaS存储器106的示例包括但不限于基于磁盘的对象存储服务、基于随机存储器存取(random memory access,RAM)的缓存服务、块存储服务等。
FaaS工作线程108是指执行一个或多个工作进程的元件。一个或多个工作进程是指在运行时环境中执行FaaS请求的进程。一个或多个工作进程从FaaS存储器106检索函数,并执行因经由第二实体112发送的外部触发器产生的函数。
第一实体110是指希望通过前端104A在FaaS系统102中添加新函数或管理现有函数的用户。用户在智能手机、笔记本电脑、物联网(Internet-of-Things,IoT)设备、机器类通信(machine type communication,MTC)设备或任何其它便携式或非便携式电子设备等设备的帮助下执行其任务。第一实体110的示例包括但不限于用户、团队(由几个用户组成的组)、组织/租户等。
第二实体112是指希望执行或运行存储在FaaS系统102的FaaS存储器106中的函数的用户。用户在智能手机、笔记本电脑、物联网(Internet-of-Things,IoT)设备、机器类通信(machine type communication,MTC)设备或任何其它便携式或非便携式电子设备等设备的帮助下执行其任务。第二实体112向FaaS工作线程108发送FaaS请求,FaaS工作线程108外部触发在运行时环境中执行FaaS请求。第二实体112的示例包括但不限于用户、团队(由几个用户组成的组)、组织/租户等。
在操作中,FaaS控制器104用于从实体接收表示函数的计算机指令。计算机指令通过实体(例如第一实体110)发送。计算机指令通过FaaS控制器104的前端104A接收。计算机指令对应于提交新函数或管理存储在FaaS系统102的FaaS存储器106中的现有函数的指令。函数是指用编译器语言或解释语言编写的用户提供的任意小程序。
FaaS控制器104还用于确定函数的作用域。术语作用域是指可以在它们之间共享信息的特定实体组。例如,作用域可以是同一项目的函数。函数验证器104B确定用户提交的函数的作用域。函数验证器104B确保不同作用域(例如,租户、项目等)的函数被隔离,使得一个函数无法了解其它函数可用的信息。
FaaS控制器104还用于基于作用域验证函数是否安全,如果函数被验证为安全,则将函数部署到一个或多个工作进程。用户提交的函数的验证通过FaaS控制器104的函数验证器104B完成。函数的安全性由函数在运行时访问的资源来判断。允许函数使用基础设施提供的应用程序编程接口和函数。还允许函数访问同一作用域的其它安全函数和同一作用域的全局数据。此外,不支持函数调用不同作用域的函数、访问不同作用域的变量或访问任意内存地址。例如,虽然第一函数可以是第一项目作用域的一部分,第二函数可以是第二项目作用域的一部分,但第一函数对第二函数的访问不一定是不安全的,因为对作用域的访问受云(例如FaaS系统102)和用户定义的策略的约束。例如,云始终禁止跨组织访问,但组织可以选择允许或禁止跨项目访问。用户定义的策略控制不同类型实体之间的关系和访问。因此,一个用户定义的策略可以允许函数访问同一项目中的所有其它函数;或者,另一个用户定义的策略可以允许函数访问组织中的所有函数。如果函数被成功验证并被认为是安全的,则它被部署到FaaS工作线程108(主动或按需)。可选地,函数验证器104B产生一个反例,如果函数不安全,该反例可以提供给用户。
根据一个实施例,FaaS控制器104还用于通过以下操作基于作用域验证函数是否安全:确定函数的一个或多个访问作用域;基于用户定义的策略确定所有访问作用域与函数的所述作用域是否相同,如果相同,则验证函数安全。函数的一个或多个访问作用域对应于执行函数所需的作用域。另一方面,函数的作用域对应于由函数验证器104B为函数指定的作用域(即,函数的允许作用域)。用户定义的策略控制不同类型实体之间的访问作用域。因此,一个用户定义的策略可以允许函数访问同一项目中的所有其它函数;或者,另一个用户定义的策略可以允许函数访问组织中的所有函数。此外,函数验证器104B仅在函数的所有访问作用域与函数的作用域相同时,才认为函数是安全的。例如,假设函数的作用域是项目1,但函数的一个或多个访问作用域来自项目2或项目3。在这种情况下,函数的访问作用域与函数的作用域不同。因此,函数验证器104B将不认为该函数是安全的。因此,不同作用域的函数被成功隔离。
根据一个实施例,FaaS控制器104还用于通过以下操作确定一个或多个访问作用域中的至少一个访问作用域:确定函数调用的至少一个函数;将函数调用的至少一个函数中的每个函数的作用域确定为访问作用域。函数的一个或多个访问作用域对应于执行函数所需的作用域。函数的一个或多个访问作用域是通过确定函数调用的每个函数的作用域来确定的。或者,主函数中可以包括一个或多个函数调用。如果调用的一个或多个函数的作用域与主函数的作用域相同,则主函数被视为安全函数。例如,假设函数的作用域是项目1,而函数调用的一个或多个函数的作用域是项目2和项目3。在这种情况下,函数的访问作用域被确定为项目2和项目3,这与函数的作用域不同。因此,函数验证器104B将不认为该函数是安全的。因此,不同作用域的函数被成功隔离。
根据一个实施例,FaaS控制器104还用于通过以下操作确定一个或多个访问作用域中的至少一个访问作用域:确定函数访问的至少一个内存区域;将函数访问的至少一个内存区域中的每个内存区域的作用域确定为访问作用域。函数的一个或多个访问作用域对应于执行函数所需的作用域。函数的一个或多个访问作用域是通过确定函数访问的每个内存区域的作用域来确定的。例如,假设函数的作用域是内存区域访问1,函数访问的一个或多个内存区域的作用域是内存区域访问2和内存区域访问3。在这种情况下,函数的访问作用域被确定为内存区域访问2和内存区域访问3,这与函数的作用域不同。因此,函数验证器104B将不认为该函数是安全的。因此,不同作用域的函数被成功隔离。
根据一个实施例,FaaS控制器104还用于确定至少一个内存访问包括在函数执行期间确定的运行时内存访问,并响应于此,将默认错误作用域分配为运行时内存访问的访问作用域,默认错误作用域不同于函数的作用域。数据存储在变量中,变量被声明为具有特定的作用域(例如,函数)。访问内存地址处的数据,而不是通过引用变量,会忽略数据与声明所述数据的作用域之间的关系。因此,在实际执行函数之前,不可能确定内存访问区域是否在作用域内。
根据一个实施例,FaaS控制器104还用于确定函数不安全,并响应于此,避免验证函数是否安全;向实体提供关于确定函数不安全的详细信息。函数验证器104B标注函数的安全性,并产生一个反例,如果函数不安全,该反例可以提供给用户。例如,假设函数验证器104B发现函数的作用域与函数的一个或多个访问作用域不同。因此,函数验证器104B将确定函数不安全,并向用户设备(即操作用户设备的用户)发送确认,所述确认描述认为函数不安全的原因,并请求用户相应地修改该函数。
根据一个实施例,FaaS控制器104还用于,如果函数调用的至少一个函数中的至少一个函数的访问作用域不同于函数的作用域,则确定函数不安全,并响应于此,确定关于确定函数不安全的详细信息包括具有不同作用域的被调用函数。函数验证器104B标注函数的安全性,并产生一个反例,如果函数不安全,该反例可以提供给用户。例如,假设函数验证器104B发现函数的作用域与函数调用的函数的作用域不同。因此,函数验证器104B将确定函数不安全,并向用户设备(即操作用户设备的用户)发送确认,所述确认描述认为函数不安全的原因,并请求用户相应地修改该函数。
根据一个实施例,FaaS控制器104还用于,如果函数访问的至少一个内存区域中的至少一个内存区域的访问作用域不同于函数的作用域,则确定函数不安全,并响应于此,确定关于确定函数不安全的详细信息包括具有不同作用域的内存区域访问。函数验证器104B标注函数的安全性,并产生一个反例,如果函数不安全,该反例可以提供给用户。例如,假设函数验证器104B发现函数的作用域与函数访问的内存区域的作用域不同。因此,函数验证器104B将确定函数不安全,并向用户设备(即操作用户设备的用户)发送确认,所述确认描述认为函数不安全的原因,并请求用户相应地修改该函数。
根据一个实施例,FaaS控制器104还用于确定函数包括运行时内存访问,并响应于此,确定函数不安全,并且确定关于确定函数不安全的详细信息包括运行时内存访问。函数验证器104B标注函数的安全性,并产生一个反例,如果函数不安全,该反例可以提供给用户。例如,假设函数验证器104B发现函数的作用域与运行时内存访问的访问作用域不同。因此,函数验证器104B将确定函数不安全,并向用户设备(即操作用户设备的用户)发送确认,所述确认描述认为函数不安全的原因,并请求用户相应地修改该函数。
根据一个实施例,FaaS控制器104还用于通过以下操作将函数部署到一个或多个工作进程:存储函数;从实体接收对函数的请求;并响应于此,使一个或多个工作进程执行函数。当函数被确定为安全时,它存储在FaaS存储器106中,或调度在FaaS工作线程108中。执行或运行函数的FaaS请求由实体(例如第二实体112)发送,所述实体主动或按需触发一个或多个工作进程。通过一个或多个工作进程,通知FaaS工作线程将从FaaS存储器106检索到的函数加载到进程内存中以便执行。
根据一个实施例,FaaS控制器104还用于进一步通过以下操作将函数部署到一个或多个工作进程:生成和启动一个或多个工作进程,并为每个工作进程生成用于由一个或多个工作进程执行的函数的运行时环境。FaaS工作线程108中的每个FaaS工作线程可以包括一个或多个工作进程。一个或多个工作进程由FaaS控制器104启动以执行函数。FaaS控制器104还为一个或多个工作进程中的每一个工作进程生成运行时环境。因此,单个FaaS工作线程中的所有函数都可以在单个工作进程中运行。
根据一个实施例,FaaS控制器104包括前端104A、函数验证器104B和函数管理器104C。前端104A用于从实体接收表示函数的计算机指令。函数验证器104B用于确定函数的作用域,并基于作用域验证函数是否安全。函数管理器104C用于将函数部署到一个或多个工作进程。前端104A是支持用户添加新函数并管理现有函数的FaaS控制器104的面向用户的部分。函数验证器104B负责根据预定标准判断给定函数是否安全。函数管理器104C是FaaS控制器104的内部部分,负责函数生命周期(例如将函数持久化到FaaS存储器106,或将函数调度到FaaS工作线程108)。
根据一个实施例,FaaS系统102包括第一设备和第二设备。第一设备用于执行前端104A、函数验证器104B和函数管理器104C中的至少一个。第二设备用于执行前端104A、函数验证器104B和函数管理器104C中的至少一个。FaaS控制器104可以分布在不同的服务器上。例如,一个服务器(例如,第一设备)可以包括前端104A、函数验证器104B和函数管理器104C中的至少一个;另一个服务器(例如,第二设备)可以包括前端104A、函数验证器104B和函数管理器104C中的至少一个。因此,FaaS控制器104的一个组件(例如,前端104A)可以同时存在于两个服务器中。因此,单个FaaS工作线程可以执行来自多个租户的函数。
因此,FaaS控制器104提供了高效可靠的无服务器计算平台,以隔离不同作用域的函数。FaaS控制器104确保函数的安全性,并仅接受那些根据预定标准可证明安全的函数。此外,FaaS控制器104不需要用于函数执行的沙盒,因此,用于执行函数的软件层较少。此外,由于更多的函数可以共享运行时,因此资源(例如,用于初始化的CPU周期)被高效利用。
图2是本发明的实施例提供的用于FaaS系统的方法的流程图。结合图1的元件描述图2。结合图2示出了方法200。方法200用于例如图1中描述的FaaS系统102。方法200包括步骤202至206。
在另一方面,本发明提供了用于FaaS系统102的方法200。方法200包括:
从实体接收表示函数的计算机指令;
确定所述函数的作用域;
基于所述作用域验证所述函数是否安全,如果所述函数被验证为安全,则将所述函数部署到一个或多个工作进程。
在步骤202中,方法200包括从实体接收表示函数的计算机指令。函数是指用编译器语言或解释语言编写的用户提供的任意小程序。计算机指令通过实体(例如第一实体110)发送。计算机指令通过FaaS控制器104的前端104A接收。计算机指令对应于提交新函数或管理存储在FaaS系统102的FaaS存储器106中的现有函数的指令。
在步骤204中,方法200还包括确定函数的作用域。术语作用域是指可以在它们之间共享信息的特定实体组。例如,作用域可以是同一项目的函数。函数验证器104B确定用户提交的函数的作用域。函数验证器104B确保不同作用域(例如,租户、项目等)的函数被隔离,使得一个函数无法了解其它函数可用的信息。
在步骤206中,方法200还包括基于作用域验证函数是否安全,如果函数被验证为安全,则将函数部署到一个或多个工作进程。用户提交的函数的验证通过FaaS控制器104的函数验证器104B完成。函数的安全性由函数在运行时访问的资源来判断。允许函数使用基础设施提供的应用程序编程接口和函数。还允许函数访问同一作用域的其它安全函数和同一作用域的全局数据。此外,不支持函数调用不同作用域的函数、访问不同作用域的变量或访问任意内存地址。例如,虽然第一函数可以是第一项目作用域的一部分,第二函数可以是第二项目作用域的一部分,但第一函数对第二函数的访问不一定是不安全的,因为对作用域的访问受云(例如FaaS系统102)和用户定义的策略的约束。例如,云始终禁止跨组织访问,但组织可以选择允许或禁止跨项目访问。用户定义的策略控制不同类型实体之间的关系和访问。因此,一个用户定义的策略可以允许函数访问同一项目中的所有其它函数;或者,另一个用户定义的策略可以允许函数访问组织中的所有函数。如果函数被成功验证并被认为是安全的,则它被部署到FaaS工作线程108(主动或按需)。可选地,函数验证器104B产生一个反例,如果函数不安全,该反例可以提供给用户。
步骤202至206仅仅是说明性的,还可以提供其它替代方案,其中添加一个或多个步骤,删除一个或多个步骤,或以不同的顺序提供一个或多个步骤,而不脱离本文权利要求的范围。
方法200使用FaaS控制器104提供高效可靠的无服务器计算进程,以隔离不同作用域的函数。方法200确保函数的安全性,并仅接受那些根据预定标准可证明安全的函数。此外,方法200不需要用于函数执行的沙盒,因此,用于执行函数的软件层较少。此外,由于更多的函数可以共享运行时,因此资源(例如,用于初始化的CPU周期)被高效利用。
在又一方面,本发明提供了一种计算机可读介质,包括指令,当所述指令加载到FaaS控制器104中并由FaaS控制器104执行时,使FaaS控制器104能够执行方法200。计算机可读介质是指非瞬时性计算机可读存储介质。计算机可读介质的实现示例包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、硬盘驱动器(hard disk drive,HDD)、闪存、安全数字(secure digital,SD)卡、固态硬盘(solid-state drive,SSD)、计算机可读存储介质和/或CPU高速缓冲存储器。
图3A是描述本发明的实施例提供的在隔离运行时下FaaS工作线程的概念架构的示例图。结合图1和图2的元件描述图3A。参考图3A,示出了描述在隔离运行时下FaaS工作线程108的概念架构的示例图300A。还示出了用户函数302和运行时开销304。用户函数302(也由大括号表示)表示在运行时中加载单个函数的开销。运行时开销304(也由循环箭头表示)表示单个运行时的开销。隔离运行时对应于当FaaS工作线程108中的每一个FaaS工作线程分别执行单个函数时的运行时,所述单个函数由每个用户函数302与每个对应的运行时开销304的关联表示。根据示例图300A,隔离运行时表明每个函数都需要运行时开销。可以观察到,隔离运行时消耗更多的资源,而提供的函数较少。
图3B是描述本发明的实施例提供的在共享运行时下FaaS工作线程的概念架构的示例图。结合图1和图2的元件描述图3B。参考图3B,示出了描述在共享运行时下FaaS工作线程的概念架构的示例图300B。还示出了用户函数302和运行时开销304。在这种情况下,共享运行时对应于单个FaaS工作线程同时执行部署到它的所有函数时的运行时。根据示例图300B,共享运行时表明,许多函数仅需要一个运行时,该运行时由与多个用户函数(例如用户函数302)相关联的仅一个运行时开销304表示。因此,与图3A中描述的隔离运行时相比,共享运行时消耗的资源明显更少,同时服务更多的函数。
图4A是本发明的另一个实施例提供的描述由FaaS系统的FaaS控制器执行的提交流的各种操作的过程的流程图。结合图1和图2的元件描述图4A。参考图4A,示出了过程400A。过程400A描述了编译语言的提交流的各种操作。过程400A包括操作402至410。操作402至410由(图1的)FaaS系统102的FaaS控制器104执行。过程400A可以对应于(图2的)方法200或可能是方法200的一部分。
在操作402中,用户向FaaS控制器104提交函数。换句话说,函数从用户操作的用户设备提交到FaaS控制器104。用户将以编译语言(例如,C++、C、JAVA)编写的函数提交到FaaS控制器104的前端104A。编译语言是其实现方式通常为编译器的编程语言,即在编写完整的源代码之后,源代码直接翻译成机器码。
在操作404中,FaaS控制器104编译函数。FaaS控制器104将语言编译为中间表示,例如,低级虚拟机中间表示(low-level virtual machine intermediaterepresentation,LLVM IR)。LLVM是指一种称为LLVM项目的编译技术,它是模块化和可重用的编译器和工具链技术的集合。可选地,中间表示(intermediate representation,IR)由用户提交,而不是由函数提交。
在操作406中,FaaS控制器104分析函数。FaaS控制器104使用已知的方法,例如符号执行、有界模型检查和抽象解释,分析所需属性的函数。符号执行是指分析程序以确定使程序的每个部分执行的输入的一种方式。有界模型检查是指检查系统的有限状态模型是否满足给定规范(也称为正确性)的方法。抽象解释是指基于有序集(尤其是格)上的单调函数的计算机程序语义的可靠近似理论。
如果操作404和操作406的结果成功,则控制直接移动到操作410;否则,控制移动到操作408。
在操作408中,用户校正函数。在FaaS控制器104编译和分析函数并确定函数不安全之后,它向用户设备(即操作用户设备的用户)发送确认,所述确认说明确定函数不安全的原因,并相应地请求校正。然后,用户校正错误,并再次将函数提交到FaaS控制器104。
在操作410中,将函数存储在FaaS存储器106中。如果验证通过,则将编译后的函数提交到FaaS存储器106中。假设FaaS工作线程从IR执行函数的即时(just-in-time,JIT)编译。或者,函数被提前编译为函数的所有所需变体,以便由FaaS工作线程108直接执行(例如,不同的操作系统、CPU架构/特征)。
操作402至410仅仅是说明性的,还可以提供其它替代方案,其中添加一个或多个操作,删除一个或多个操作,或以不同的顺序提供一个或多个操作,而不脱离本文权利要求的范围。
图4B是本发明的另一个实施例提供的描述由FaaS系统的FaaS控制器执行的加载流的各种操作的过程的流程图。结合图1和图2的元件描述图4B。参考图4B,示出了过程400B。过程400B描述了编译语言的加载流的各种操作。过程400B包括操作412至416。操作412至416由(图1的)FaaS系统102的FaaS控制器104执行。过程400B可以对应于(图2的)方法200或可能是方法200的一部分。
在操作412中,通知FaaS工作线程108加载函数。FaaS工作线程108由FaaS请求通知:特定函数需要因特定函数的外部触发而加载或由云策略主动加载。
在操作414中,FaaS工作线程108从FaaS存储器106检索函数。FaaS存储器106存储FaaS系统102的所有函数。当接收到FaaS请求时,FaaS工作线程108从FaaS存储器106加载所请求的特定函数。
在操作416中,FaaS工作线程108将加载的函数加载到存储器中。FaaS工作线程108将函数从工件加载到进程存储器中,从而执行或运行函数。
因此,FaaS工作线程108以经典的反应器模式实现:传入的请求由FaaS工作线程108接收;查找与请求相关的函数(如果不存在,则加载),并且服务请求的函数调用被调度到线程之一。
操作412至416仅仅是说明性的,还可以提供其它替代方案,其中添加一个或多个操作,删除一个或多个操作,或以不同的顺序提供一个或多个操作,而不脱离本文权利要求的范围。
图5A是本发明的又一个实施例提供的描述由FaaS系统的FaaS控制器执行的提交流的各种操作的过程的流程图。结合图1和图2的元件描述图5A。参考图5A,示出了描述解释语言的提交流的各种操作502至508的过程500A。操作502至508由(图1的)FaaS系统102的FaaS控制器104执行。过程500A可以对应于(图2的)方法200或可能是方法200的一部分。
在操作502中,用户向FaaS控制器104提交函数。用户通过用户设备将以解释语言(例如Python、Perl、JavaScript、Ruby)编写的函数提交到FaaS控制器104的前端104A。解释语言是其实现方式通常是解释器的编程语言,即源代码逐行翻译为机器码。
在操作504中,FaaS控制器104分析函数。FaaS控制器104使用已知的方法,例如符号执行、有界模型检查和抽象解释,分析所需属性的函数。符号执行是指分析程序以确定使程序的每个部分执行的输入的一种方式。有界模型检查是指检查系统的有限状态模型是否满足给定规范(也称为正确性)的方法。抽象解释是指基于有序集(尤其是格)上的单调函数的计算机程序语义的可靠近似理论。
如果操作504的结果成功,则控制直接移动到操作508;否则,控制移动到操作506。
在操作506中,用户校正函数。在FaaS控制器104分析函数并确定函数不安全之后,它向用户设备(即操作用户设备的用户)发送确认,所述确认说明确定函数不安全的原因,并相应地请求校正。然后,用户校正错误,并再次将函数提交到FaaS控制器104。
在操作508中,将函数存储在FaaS存储器106中。如果验证通过,则将编译后的函数提交到FaaS存储器106中。FaaS存储器106包括存储在FaaS系统102中的所有函数。
操作502至508仅仅是说明性的,还可以提供其它替代方案,其中添加一个或多个操作,删除一个或多个操作,或以不同的顺序提供一个或多个操作,而不脱离本文权利要求的范围。
图5B是本发明的又一个实施例提供的描述由FaaS系统的FaaS控制器执行的加载流的各种操作的过程的流程图。结合图1和图2的元件描述图5B。参考图5B,示出了描述解释语言的加载流的各种操作的过程500B。过程500B包括由(图1的)FaaS系统102的FaaS控制器104执行的操作510至514。过程500B可以对应于(图2的)方法200或可能是方法200的一部分。
在操作510中,通知FaaS工作线程108加载函数。FaaS工作线程108由FaaS请求通知:特定函数需要因特定函数的外部触发而加载或由云策略主动加载。
在操作512中,FaaS工作线程108从FaaS存储器106检索函数。FaaS存储器106存储FaaS系统102的所有函数。当接收到FaaS请求时,FaaS工作线程108从FaaS存储器106加载所请求的特定函数。
在操作514中,FaaS工作线程108将加载的函数加载到存储器中。FaaS工作线程108将函数从工件加载到进程存储器中,从而执行或运行函数。
因此,FaaS工作线程108以经典的反应器模式实现:传入的请求由FaaS工作线程108接收;查找与请求相关的函数(如果不存在,则加载),并且服务请求的函数调用被调度到线程之一。
操作510至514仅仅是说明性的,还可以提供其它替代方案,其中添加一个或多个操作,删除一个或多个操作,或以不同的顺序提供一个或多个操作,而不脱离本文权利要求的范围。
本发明的FaaS控制器104和方法200具有许多实际应用,例如可以用于视频流平台、文件托管服务、个人数据的安全存储、聊天机器人,以及系统、站点和软件的备份方案。在一个实际应用中,FaaS控制器104可以用于按需功能,并且有益地,支持任何基础设施的断电特征,从而以安全的方式降低成本和优化资源。在另一个实际应用中,FaaS控制器104可用于简化开发人员逻辑,这可以实现更快的开发、更快的更新和对用户的响应。
在不脱离所附权利要求书所定义的本发明范围的情况下,可以对上文描述的本发明的实施例进行修改。如“包括”、“结合”、“具有”、“是/为”等用于描述和要求保护本发明的表述旨在以非排他性的方式解释,即允许未明确描述的项目、组件或元件也存在。对单数的引用也应解释为与复数有关。本文使用的词“示例性的”表示“作为一个例子、示例或说明”。任何描述为“示例性的”实施例并不一定解释为相比其它实施例是优选或有利的,和/或并不排除结合其它实施例的特征。本文所使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。应当理解,为了清楚起见而在单独实施例的上下文中描述的本发明的某些特征还可通过组合提供在单个实施例中。相反地,为了清楚起见而在单个实施例的上下文中描述的本发明的各种特征也可单独地或以任何合适的组合或作为本发明的任何其它描述的实施例提供。

Claims (15)

1.一种FaaS控制器(104),其特征在于,配置成用于FaaS系统(102),所述FaaS控制器(104)用于:
从实体接收表示函数的计算机指令;
确定所述函数的作用域;
基于所述作用域验证所述函数是否安全,如果所述函数被验证为安全,则将所述函数部署到一个或多个工作进程。
2.根据权利要求1所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于通过以下操作基于所述作用域验证所述函数是否安全:
确定所述函数的一个或多个访问作用域;
基于用户定义的策略确定所有访问作用域与所述函数的所述作用域是否相同,如果相同,则验证所述函数安全。
3.根据权利要求2所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于通过以下操作确定所述一个或多个访问作用域中的至少一个访问作用域:
确定所述函数调用的至少一个函数;
将所述函数调用的所述至少一个函数中的每个函数的作用域确定为访问作用域。
4.根据权利要求2或3所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于通过以下操作确定所述一个或多个访问作用域中的至少一个访问作用域:
确定所述函数访问的至少一个内存区域;
将所述函数访问的所述至少一个内存区域中的每个内存区域的作用域确定为访问作用域。
5.根据权利要求4所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于确定至少一个内存访问包括在所述函数执行期间确定的运行时内存访问,并响应于此,将默认错误作用域分配为所述运行时内存访问的所述访问作用域,所述默认错误作用域不同于所述函数的所述作用域。
6.根据上述权利要求中任一项所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于确定所述函数不安全,并响应于此,
避免验证所述函数是否安全;
向所述实体提供关于所述确定所述函数不安全的详细信息。
7.根据权利要求3和6所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于,如果所述函数调用的所述至少一个函数中的至少一个函数的所述访问作用域不同于所述函数的所述作用域,则确定所述函数不安全,并响应于此,
确定关于所述确定所述函数不安全的所述详细信息包括具有不同作用域的被调用函数。
8.根据权利要求4和6所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于,如果所述函数访问的所述至少一个内存区域中的至少一个内存区域的所述访问作用域不同于所述函数的所述作用域,则确定所述函数不安全,并响应于此,
确定关于所述确定所述函数不安全的所述详细信息包括具有不同作用域的内存区域访问。
9.根据权利要求6、7或8所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于确定所述函数包括运行时内存访问,并响应于此,确定所述函数不安全,并且确定关于所述确定所述函数不安全的所述详细信息包括所述运行时内存访问。
10.根据上述权利要求中任一项所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于通过以下操作将所述函数部署到所述一个或多个工作进程:
存储所述函数;
从实体接收对所述函数的请求;并响应于此,
使所述一个或多个工作进程执行所述函数。
11.根据权利要求10所述的FaaS控制器(104),其特征在于,所述控制器(104)还用于进一步通过以下操作将所述函数部署到所述一个或多个工作进程:
生成和启动所述一个或多个工作进程,并为每个工作进程生成用于由所述一个或多个工作进程执行的所述函数的运行时环境。
12.根据上述权利要求中任一项所述的FaaS控制器(104),其特征在于,所述控制器(104)包括前端(104A)、函数验证器(104B)和函数管理器(104C),其中,
所述前端(104A)用于从所述实体接收表示所述函数的所述计算机指令;
所述函数验证器(104B)用于确定所述函数的所述作用域,并基于所述作用域验证所述函数是否安全;
所述函数管理器(104C)用于将所述函数部署到一个或多个工作进程。
13.根据权利要求12所述的FaaS控制器(104),其特征在于,所述FaaS系统(102)包括第一设备和第二设备,其中,
所述第一设备用于执行所述前端(104A)、所述函数验证器(10AB)和所述函数管理器(104C)中的至少一个;
所述第二设备用于执行所述前端(104A)、所述函数验证器(104B)和所述函数管理器(104C)中的至少一个。
14.一种用于FaaS系统(102)的方法(200),其特征在于,所述方法(200)包括:
从实体接收表示函数的计算机指令;
确定所述函数的作用域;
基于所述作用域验证所述函数是否安全,如果所述函数被验证为安全,则将所述函数部署到一个或多个工作进程。
15.一种计算机可读介质,其特征在于,包括指令,所述指令当加载到FaaS控制器(104)中并由所述FaaS控制器(104)执行时,使所述FaaS控制器(104)能够执行根据权利要求14所述的方法(200)。
CN202180100567.4A 2021-08-12 2021-08-12 FaaS控制器及用于FaaS系统的方法 Pending CN117651935A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/072444 WO2023016644A1 (en) 2021-08-12 2021-08-12 FaaS CONTROLLER AND METHOD FOR USE IN FaaS SYSTEM

Publications (1)

Publication Number Publication Date
CN117651935A true CN117651935A (zh) 2024-03-05

Family

ID=77447911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180100567.4A Pending CN117651935A (zh) 2021-08-12 2021-08-12 FaaS控制器及用于FaaS系统的方法

Country Status (2)

Country Link
CN (1) CN117651935A (zh)
WO (1) WO2023016644A1 (zh)

Also Published As

Publication number Publication date
WO2023016644A1 (en) 2023-02-16

Similar Documents

Publication Publication Date Title
Akkus et al. {SAND}: Towards {High-Performance} serverless computing
US10768994B2 (en) Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
US10459822B1 (en) Iterative static analysis using stored partial results
US10884787B1 (en) Execution guarantees in an on-demand network code execution system
US11327821B2 (en) Systems and methods to facilitate infrastructure installation checks and corrections in a distributed environment
US9401835B2 (en) Data integration on retargetable engines in a networked environment
US10831458B2 (en) Latency-aware host-agnostic runtime
US9996331B1 (en) Customized application state transition
US10310900B2 (en) Operating programs on a computer cluster
WO2014035309A1 (en) Re-configuration in cloud computing environments
WO2022213850A1 (zh) 安卓运行环境构建的方法及装置
US11928489B2 (en) Extension application mechanisms through intra-process operation systems
US11294729B2 (en) Resource provisioning for multiple invocations to an electronic design automation application
US20200310828A1 (en) Method, function manager and arrangement for handling function calls
CN116028163A (zh) 一种容器组的动态链接库调度方法、装置及存储介质
WO2023056793A1 (en) Optimizing a just-in-time compilation process
CN117651935A (zh) FaaS控制器及用于FaaS系统的方法
US11513841B2 (en) Method and system for scheduling tasks in a computing system
US10303531B2 (en) Console application through web service
US12079595B2 (en) Runtime support for role types that extend underlying types
CN116680688A (zh) 设备控制指令的检测方法、装置、电子设备及存储介质
CN115756514A (zh) 一种软件自动化编译方法及系统
CN111563132A (zh) 数据处理方法和装置
Brady et al. Smart RPC‐Based Computing in Grids and on Clouds

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