为落实人民银行《金融科技发展规划(2022-2025年)》关于“探索建立跨主体数据安全共享隐私计算平台,在保障原始数据不出域前提下规范开展数据共享应用”的要求,北京金融科技产业联盟数据专委会在2022年度组织设立了2项重点课题。2023年5月,《金融业隐私计算互联互通技术研究报告》正式发布,为实现行业级隐私计算互联互通,保障金融数据要素安全有序流通提供坚实保障。
(资料图)
已于5月6日由北京金融科技产业联盟(以下简称“联盟”)正式发布。本次共发布3篇文章介绍流程调度与算法容器加载子课题的3项关键技术点。本文主要介绍流程调度互通设计,另外2项关键技术点为“组件容器化加载”“基于最小化约束的算法容器设计”。
遵循 所阐述的研究目标及实现思路,课题组开展了流程调度互通设计。在调研业界现有隐私计算任务对平台底座资源的常见请求访问方式基础上,课题组抽象出流程调度互通逻辑及模式,为异构平台数据面间资源动态协作奠定了坚实基础。
本文主要撰写人员:上海浦东发展银行股份有限公司(王梦鸽、龚乐诚、刘瑞)、深圳前海微众银行股份有限公司(范涛、万志辉)、深圳市洞见智慧科技有限公司(王湾湾、靳新、赵永坤)
一、关键技术点概述
本关键技术点系北京金融科技产业联盟数据专委会“隐私计算互联互通”课题中“流程调度接口与算法容器加载”子课题的组成部分,由上海浦东发展银行股份有限公司、北京百度网讯科技有限公司、深圳前海微众银行股份有限公司、上海富数科技有限公司、深圳市洞见智慧科技有限公司牵头,联合13家单位共同研究攻关(完整参与单位名单见附录)。
隐私计算是一个涉及双方数据协同的运算过程,在互联互通的过程中会涉及双方网络传输以及异步运算等关键步骤,网络延迟或者计算资源调度异常都会导致隐私计算任务等待或者失败,影响隐私计算跨平台协同。因此在异构情况下,需要明确标准化作业及任务的核心调度流程,确定调度面的基本要素及相互关系,设计节点内及节点间调度面的核心流程方案,标准化设计作业及任务的调度和协同接口,来统一协调异构双方隐私计算任务的执行。可见,隐私计算跨平台的流程调度互通机制是隐私计算跨平台互联互通的核心。图1展示了流程调度互通设计在隐私计算互联互通中所处的层次。
图1 流程调度互通设计在隐私计算互联互通整体框架中所处层次
二、关键技术点研究思路、内容及相关成果
01、研究思路
在一个完整的隐私计算作业执行过程中,流程调度的目的在于将隐私计算作业配置(DAG格式)下发到各个参与方,在多个参与方之间协调资源、同步状态,按照流程编排顺序协同完成作业的执行。流程调度处于作业编排和作业执行之间,起到承上启下的作用,因此在隐私计算行业内,不同平台在流程调度上的设计也会因上下游组件的一些设计差异而各不相同。为了实现互联互通的总体设计目标,本子课题在流程调度互通设计关键技术上,采用“概念抽象、共性打通”的思想,抽象出流程调度在设计模式上的共性,并将共性部分统一规范定义,仅约定作业调度执行最小必需的流程步骤,实现彼此打通。
图2 流程调度互通设计研究思路图
02、研究内容
流程调度互通设计方案由流程调度概念定义、流程调度时序设计和流程调度系统建设三部分组成。流程调度概念定义,明确了流程调度环节涉及的流程、作业、任务、组件、资源5大基本实体及实体属性。流程调度时序设计,对调度操作进行规范化定义,设计了简明的作业参与方角色,约定了作业执行的全生命周期管理规范。流程调度系统扩展,在满足流程调度互通需求之外,提供了隐私计算作业执行的扩展性建议。
03、研究成果
1.流程调度相关概念定义
隐私计算流程调度过程中的概念(或称为实体)包含静态和动态两类,静态的实体包括:组件、流程和资源,可以类比为面向对象编程中的“类(Class)”,动态的实体包括:作业、任务,可以类比为面向对象编程中的“对象(Object)”,是一个运行时的概念。
各实体的相关定义可参见隐私计算互联互通关键技术点(1)管理面最小必要元素设计。
2.流程调度时序设计
流程调度系统接收上层的作业请求,协调各个参与方节点运行作业,通过将一个作业拆分成若干个任务,按照任务的组合顺序来执行每一个任务。在任务被调度开始执行前,由每个任务的配置驱动,启动对应的算法组件容器,实现隐私计算平台对异构算法组件的调用。
在流程调度环节,隐私计算参与方分为两类角色:
隐私计算作业执行必需的流程调度操作包括:创建作业、启动作业、查询作业状态、停止作业、任务回调、任务异常停止。
(1) 创建作业
由发起方创建作业配置,下发到调度方的流程调度层,流程调度层在接收到该作业后,将其分发给各个参与方的流程调度层。然后由调度方协调每个参与方节点,进行作业的下一步启动运行。
图3 创建作业关键操作时序图
(2) 启动作业
各个参与方接收到创建作业后,由调度方来协调各个参与方并发起启动作业请求,每个参与方的调度层接收到该请求后,将作业拆分成若干个任务,然后将每个任务下发到对应的算法组件服务。
图4 启动作业关键操作时序图
(3) 查询作业状态
由某个参与方发起作业状态查询请求,发送到调度方的流程调度层,调度方在接收到该请求后,向各个参与方发起查询作业状态的请求,然后汇总所有节点的作业状态后,返回给请求的发起方。
图5 查询作业关键操作时序图
(4) 停止作业
由某个参与方发起作业停止请求,发送到调度方的流程调度层,流程调度层在接收到该请求后,向各个参与方发起停止作业请求,每个参与方接收到停止作业请求后,向正在运行的任务所对应的算法组件发起停止任务请求,然后将作业停止结果返回给请求发起方。
图6 停止作业关键操作时序图
(5) 任务回调(poll)
主动查询(轮询)方式的任务执行结果获取:各个参与方在运行过程中将任务的状态、运行的中间结果等等,通过回调的方式反馈给己方的流程调度层,然后由调度方向各个参与方主动查询任务的回调结果。
图7 任务回调(poll)关键操作时序图
(6) 任务回调(callback)
被动等待回调方式的任务执行结果获取:各个参与方在运行过程中将任务的状态、运行的中间结果等,通过回调的方式,反馈给己方的流程调度层,然后主动推送任务的回调结果给调度方。
图8 任务回调(callback)关键操作时序图
(7) 任务异常停止
当任务运行过程中,由于各种原因导致当前运行的任务失败时,运行任务的算法组件将失败的任务状态同步给流程调度层,然后流程调度层再将该失败状态同步给调度方,然后由调度方再发起停止作业请求。
图9 任务异常停止关键操作时序图
3.流程调度系统扩展
流程调度除了保障隐私计算作业的多参与方协同顺利执行,在很大程度上也决定了作业执行的并行度、系统总体容量。因此平台在满足基本作业调度功能之外,建议可通过作业队列、动态调度等机制实现隐私计算作业的高效执行。
流程调度可以支持多种调度策略,如:FIFO、Capacity、Fair、优先级保障等,满足在生产应用时对调度策略的灵活要求。同时,流程调度作为作业执行的指挥官,需要保证系统的高可用性,通过分布式的子系统负载共同维护统一的调度服务能力,保证整体系统的稳定运行。
本关键技术点联系人:王梦鸽 wangmg@spdb.com.cn
附:流程调度与算法容器加载子课题参与单位(按贡献度排序)
本文来源:数据专委会
投稿邮箱:News@bfia.org.cn
关键词: