技术特征:
1.一种基于应用控制状态管理的无服务器计算应用执行方法,其特征在于,包括:步骤1、无服务器计算平台获取待执行的无服务器计算应用,无服务器应用包括至少一个云函数,该云函数通过引入控制状态管理程序库实现控制状态管理功能,该控制状态管理程序库启动控制状态管理客户端;步骤2、该控制状态管理客户端根据函数使用该控制状态管理程序库提供的应用程序编程接口创建控制状态对象,为控制状态对象创建全局唯一的字符串,作为该控制状态对象的对象引用;步骤3、该控制状态管理客户端使用该应用程序编程接口传入函数名和该对象引用,启动该函数名对应的目标函数,并将该对象引用作为参数传递,使该目标函数共享该控制状态对象;步骤4、重复该步骤2和3,直到该无服务器计算应用执行完毕后,保存当前该控制状态对象作为执行结果,该控制状态管理程序库关闭该控制状态管理客户端。2.如权利要求1所述的基于应用控制状态管理的无服务器计算应用执行方法,其特征在于,该无服务器计算平台为该函数的运行实例运行一个守护进程,该守护进程用于在该函数引用请求到来时执行用户代码;该控制状态管理客户端的生命周期和该守护进程一致;该控制状态管理客户端保存该控制状态对象的引用和函数调用的标识符。3.如权利要求1所述的基于应用控制状态管理的无服务器计算应用执行方法,其特征在于,该控制状态对象包括基本数据对象、无冲突复制对象和互斥量;该基本数据对象包括浮点数和字符串,任何持有其对象引用的函数均可读写该基本数据对象;并采用最后写入者获胜策略处理写冲突,每一个持有者的对象副本都将异步更新获胜的写操作;该无冲突复制对象包括计数器、列表和文本对象,该无冲突复制对象的所有操作均可交换,任何持有其对象引用的函数均可读写该无冲突复制对象,但是不会出现写冲突;每一个持有者的对象副本将会异步更新所有对相同该无冲突复制对象的操作;该互斥量为被锁住的浮点数和字符串,函数持有互斥锁后才能读写该互斥量。4.如权利要求1所述的基于应用控制状态管理的无服务器计算应用执行方法,其特征在于,该控制状态管理客户端保存控制状态管理功能的函数的调用标识符,函数的每次调用都生成一个全局唯一的标识符,以区分同一个函数的不同调用;且所有共享同一控制状态对象的函数通过该控制状态管理客户端构成全连接网络,以去中心化的实现方式存取该控制状态对象。5.一种基于应用控制状态管理的无服务器计算应用执行系统,其特征在于,包括:初始模块,用于发送无服务器计算应用至无服务器计算平台,无服务器应用包括至少一个云函数,该云函数通过引入控制状态管理程序库实现控制状态管理功能,该控制状态管理程序库启动控制状态管理客户端;创建模块,用于使该控制状态管理客户端根据函数使用该控制状态管理程序库提供的应用程序编程接口创建控制状态对象,为控制状态对象创建全局唯一的字符串,作为该控制状态对象的对象引用;传递模块,用于使该控制状态管理客户端使用该应用程序编程接口传入函数名和该对象引用,启动该函数名对应的目标函数,并将该对象引用作为参数传递,使该目标函数共享
该控制状态对象;执行模块,用于重复该创建模块和该传递模块,直到该无服务器计算应用执行完毕后,保存当前该控制状态对象作为执行结果,该控制状态管理程序库关闭该控制状态管理客户端。6.如权利要求5所述的基于应用控制状态管理的无服务器计算应用执行方法,其特征在于,该无服务器计算平台为该函数的运行实例运行一个守护进程,该守护进程用于在该函数引用请求到来时执行用户代码;该控制状态管理客户端的生命周期和该守护进程一致;该控制状态管理客户端保存该控制状态对象的引用和函数调用标识符。7.如权利要求5所述的基于应用控制状态管理的无服务器计算应用执行方法,其特征在于,该控制状态对象包括基本数据对象、无冲突复制对象和互斥量;该基本数据对象包括浮点数和字符串,任何持有其对象引用的函数均可读写该基本数据对象;并采用最后写入者获胜策略处理写冲突,每一个持有者的对象副本都将异步更新获胜的写操作;该无冲突复制对象包括计数器、列表和文本对象,该无冲突复制对象的所有操作均可交换,任何持有其对象引用的函数均可读写该无冲突复制对象,但是不会出现写冲突;每一个持有者的对象副本将会异步更新所有对相同该无冲突复制对象的操作;该互斥量为被锁住的浮点数和字符串,函数持有互斥锁后才能读写该互斥量。8.如权利要求5所述的基于应用控制状态管理的无服务器计算应用执行方法,其特征在于,该控制状态管理客户端保存控制状态管理功能的函数的调用标识符,函数的每次调用都生成一个全局唯一的标识符,以区分同一个函数的不同调用;且所有共享同一控制状态对象的函数通过该控制状态管理客户端构成全连接网络,以去中心化的实现方式存取该控制状态对象。9.一种存储介质,用于存储执行如权利要求1到4所述任意一种基于应用控制状态管理的无服务器计算应用执行方法的程序。10.一种客户端,用于权利要求5至8中任意一种基于应用控制状态管理的无服务器计算应用执行系统。
技术总结
本发明提出一种基于应用控制状态管理的无服务器计算应用执行方法和系统,包括:无服务器计算平台获取无服务器计算应用,其云函数通过引入控制状态管理程序库实现控制状态管理功能;根据函数使用该控制状态管理程序库提供的应用程序编程接口创建控制状态对象,为控制状态对象创建全局唯一的字符串,作为该控制状态对象的对象引用;使用该应用程序编程接口传入函数名和该对象引用,启动该函数名对应的目标函数,并将该对象引用作为参数传递,使该目标函数共享该控制状态对象;直到该无服务器计算应用的用户代码全部执行完毕,得到无服务器计算应用的执行结果。器计算应用的执行结果。器计算应用的执行结果。
技术研发人员:雷正宇 史骁 赵晓芳
受保护的技术使用者:中国科学院计算技术研究所
技术研发日:2022.07.22
技术公布日:2022/11/22