具体实施方式
虽然本公开的概念易于进行各种修改和替代形式,但是其具体实施例已经通过附图中的示例示出并且将在本文中进行详细描述。然而,应当理解,并不意图将本公开的概念限制为所公开的特定形式,相反,本发明旨在涵盖与本公开和所附权利要求一致的所有修改方案、等同方案和替代方案。
说明书中对“一个实施例”,“实施例”,“说明性实施例”等的提及表明所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以包括但不一定包括特定的特征、结构或特性。此外,这样的短语不一定指代同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例来实现这样的特征、结构或特性是在本领域技术人员的知识内,无论是否明确描述。另外,应当意识到,列表中包含的“A,B和C中的至少一个”形式的项可以表示(A);(B);(C);(A和B);(B和C);(A和C);或(A,B和C)。类似地,以“A,B或C中的至少一个”形式列出的项可以表示(A);(B);(C):(A和B);(B和C);(A和C);或(A,B和C)。
在一些情况下,可以利用硬件、固件、软件或其任何组合实现所公开的实施例。所公开的实施例还可以被实现为由可由一个或多个处理器读取和执行的暂时性或非暂时机器可读(例如,计算机可读)存储介质所携带或在其上存储的指令。机器可读存储介质可以被实现为用于以机器可读的形式存储或发送信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
在附图中,可以以具体的布置和/或顺序示出一些结构或方法特征。然而,应当理解,可能不需要这种具体的布置和/或顺序。相反,在一些实施例中,这些特征可以以与说明性图中所示的不同的方式和/或顺序布置。另外,在特定图中包括结构或方法特征并不意味着是指在所有实施例中都需要这样的特征,并且在一些实施例中可以不包括这些特征或者可以与其他特征组合。
预测性分析服务可能引入提出用户隐私和/或知识产权管理问题的漏洞。例如,当终端用户的数字照片被上传到网络时,面部识别服务可以访问与照片相关联的私人信息。同时,关于面部识别服务使用的模型和/或训练数据的专有信息可能暴露给客户端设备。此外,许多当前的预测分析产品被安装为整体的垂直软件堆栈,其中预测模型与训练数据紧密耦合。这可能导致用户需要安装许多不同的垂直软件堆栈来解决不同类型的预测分析问题,甚至以不同的方式解决相同的问题。由于许多不同类型的联网计算设备(例如,智能手机、平板计算机、可穿戴设备、膝上型计算机、台式机等)的激增,这种情况恶化,每个联网计算设备可能需要不同版本的模型描述,或者可能需要针对特定平台进行了优化的不同版本的模型。
现在参考图1,计算系统100的实施例,包括受信预测分析中间件或“受信中间件”166。受信预测分析中间件166包括模型描述语言160和受信预测分析中间件服务或“中间件服务”164。示例性地,受信预测分析中间件166的组件实现在受信预测分析中间件计算设备150中;然而,受信预测分析中间件166的部分可以驻留在一个或多个其他计算设备上,如以下更详细描述的。在计算系统100中,用户计算设备110(诸如移动或可佩戴的计算设备)不时地执行用户级应用118。用户级应用程序118可以不时地请求对预测分析服务或“检测器”194的访问。说明性的预测分析服务(例如,“检测器”)194被实现在预测分析提供者计算设备180中。用户计算设备110、受信预测分析中间件计算设备150和预测分析提供者计算设备180由一个或多个网络170通信地耦合。
在示例情况下,用户级应用程序118可以是相机应用程序、照片上传服务、或到社交媒体服务例如FACEBOOK或PINTEREST的前端。用户计算设备110配置有信任执行子系统120。例如,信任执行子系统120可以实现为硬件或软件实现的受信平台模块(TPM)或使用ARM的TrustZone。当用户级应用程序118请求访问预测分析服务(例如,“检测器”)194时,信任执行子系统120在受信执行环境中启动受信预测分析中间件166。通过在受信执行环境中运行并实例化基于使用模型描述语言160创建的模型描述的可执行的受信预测分析服务(例如,“检测器”)194,受信预测分析中间件166提供公共的受信执行环境,其中可以执行预测分析服务(例如,“检测器”)194并且可以隔离敏感数据。示例性的预测分析服务(例如,“检测器”)194提供数据分析服务,诸如基于机器学习的数据分析服务或“大数据”分析服务。预测分析服务(例如,“检测器”)194的一些示例性实现在图3A-3D中示出。如下面更详细地描述的,受信预测分析中间件166使用加密技术和数字权利管理技术来保护敏感的用户数据免受预测分析服务(例如,“检测器”)194的无意的暴露或误用和/或保护与预测分析服务(例如,“检测器”)194相关的知识产权。此外,通过模型描述语言160,受信预测分析中间件166提供跨越范围从智能电话、平板计算机、膝上型计算机和个人计算机到诸如智能眼镜、智能手表的可穿戴设备到“在云中”运行的虚拟实例和/或其他的不同设备架构的用于预测分析服务的公共接口。
使用模型描述语言160,受信中间件166避免需要在中间件平台上运行多个不同的预测分析服务(例如,“检测器”)194。相反,中间件166用预测分析服务(例如,“检测器”)194的不同实例来替换不同的预测分析服务(例如,“检测器”)194,其中每个实例是从其操作是由受信中间件166支持的执行原语(execution primitive)来创建的。受信中间件166使用模型描述162解密并实例化预测分析服务(例如,“检测器”)194。模型描述162由中间件166使用模型描述语言160创建。受信中间件166的数字权利管理功能对预测分析服务(例如,“检测器”)194的使用实施许可证协议条款和限制。用户数据(例如,用户内容124)被保护,因为它被信任执行环境内的中间件原语访问(例如,使用模型描述162实例化的预测分析服务或“检测器”194),因此,用户数据不直接暴露于预测分析服务(例如,“检测器”)194。
现在更详细地参考图1,用户计算设备110可以被实现为用于执行本文所描述的功能的任何类型的电子设备。例如,用户计算设备110可以被实现为但不限于智能电话、平板计算机、可穿戴计算设备、膝上型计算机、笔记本计算机、移动计算设备、蜂窝电话、手机、消息传送设备、车辆远程信息处理设备、服务器计算机、工作站、分布式计算系统、多处理器系统、消费者电子设备和/或被配置为执行本文所描述的功能的任何其他计算设备。如图1所示,说明性的用户计算设备110包括至少一个处理器112。
用户计算设备110还包括存储器114、输入/输出子系统116、数据存储设备122、相机132、一个或多个传感器134、用户接口(UI)子系统136和通信子系统140。在其他实施例中,用户计算设备110可以包括其他或附加组件,诸如在移动和/或固定计算机中常见的那些组件。另外,在一些实施例中,一个或多个说明性组件可以并入或以其他方式形成另一组件的一部分。用户计算设备110的每个组件可以被实现为软件、固件、硬件或软件、固件和/或硬件的组合。
处理器112可以被实现为能够执行本文所描述的功能的任何类型的处理器。例如,处理器112可以被实现为多核处理器或其他多CPU处理器或处理/控制电路。用户计算设备110的存储器114可以被实现为能够执行本文所描述的功能的任何类型的易失性或非易失性存储器或数据存储设备。在操作中,存储器114可以存储在用户计算设备110的操作期间使用的各种数据和软件,以及操作系统、应用、程序、库和驱动器。
存储器114例如经由I/O子系统116通信地耦合到处理器112。I/O子系统116可以被实现为促进与处理器112、存储器114以及用户计算设备110的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统116可以被实现为或者包括存储器控制器中心、输入/输出控制中心、固件设备、通信链路(即,点对点链路,总线链路,电线,电缆,光导,印刷电路板迹线等)和/或其他促进输入/输出操作的组件和子系统。在一些实施例中,I/O子系统116可以形成片上系统(SoC)的一部分,并且与处理器112一起在单个集成电路芯片上并入用户计算设备110的存储器114和/或其他组件。
数据存储设备122可以被实现为被配置用于数据的短期或长期存储的任何类型的一个物理设备或多个物理设备,例如存储器设备和电路、存储卡、硬盘驱动器、固态驱动器、闪速存储器或其他只读存储器、作为只读存储器和随机存取存储器的组合的存储器设备、或其他数据存储设备。用户内容124(例如,数字内容,例如照片、视频、音乐文件和文档)和检测器模型190被存储在数据存储设备122中。用户内容124和/或检测器模型190的部分可以在计算设备110的操作期间不时地被复制到存储器114中,例如用于更快的处理。
相机132可以被实现为能够执行本文所描述的功能的任何类型的相机,例如使用相机硬件、软件或硬件和软件的组合捕获静态图像和/或视频图像。传感器134可以实现为能够执行本文描述的功能的任何合适类型的传感器,包括运动传感器、接近传感器、位置传感器和眼睛跟踪设备中的一个或多个。
用户接口子系统136可以包括多个附加设备,以便于与用户计算设备110的用户交互,包括物理或虚拟控制按钮或键、麦克风、扬声器、显示设备和/或其他设备。例如,显示设备可以被实现为能够显示数字信息的任何类型的显示器,例如液晶显示器(LCD)、发光二极管(LED)、等离子体显示器、阴极射线管(CRT)或其他类型的显示设备。在一些实施例中,显示设备可以耦合到触摸屏或其他人机接口设备,以允许用户与用户计算设备110交互。用户接口子系统136还可以包括其他设备,诸如运动传感器、接近传感器、眼睛跟踪设备,其可以被配置为检测、捕获和处理涉及用户计算设备110的各种其他形式的人类交互。
用户计算设备110还包括通信子系统140,其可以被实现为能够实现用户计算设备110和其他电子设备之间的通信的任何通信电路、设备或其集合。通信子系统140可以被配置为使用任何一种或多种通信技术(例如,无线、光学或有线通信)和相关联的协议(例如,以太网,
WiMAX,3G/LTE等)来实现此类通信。通信子系统140可以被实现为包括无线网络适配器的网络适配器。
说明性的用户计算设备110还包括许多计算机程序组件,诸如下面描述的用户级应用118,信任执行子系统120以及一个或多个检测器模型190。用户级应用118可以实现为经由例如显示设备或UI子系统136的另一个组件与终端用户直接或间接交互的任何计算机应用(例如,软件、固件、硬件或其组合)。用户级应用118的一些示例包括文字处理程序、文档查看器/读取器、web浏览器、电子邮件程序、消息传递服务、社交媒体服务、内容共享服务、计算机游戏、相机和视频应用等。虽未具体示出,用户计算设备110包括有助于用户级应用118与用户计算设备110的硬件组件之间的通信的特权系统组件。特权系统组件142的部分可以被实现为能够执行本文所述的功能的任何操作系统,例如微软公司的WINDOWS版本,谷歌公司的ANDROID,和/或其它。可替代地或另外地,特权系统组件142的一部分可以被实现为能够执行本文描述的功能的任何类型的虚拟机监视器(例如,I型或II型管理程序(hypervisor))。
受信预测分析中间件计算设备150和预测分析提供者计算设备180可以各自实现为用于执行本文所描述的功能的任何类型的电子设备。例如,计算设备150,180可以被实现为但不限于服务器计算机、工作站、分布式计算系统、多处理器系统、消费电子设备、智能电话、平板计算机、可穿戴计算设备、膝上型计算机、笔记本计算机、移动计算设备、蜂窝电话、手机、消息传递设备、车辆远程信息处理设备和/或被配置为执行本文所描述的功能的任何其他计算设备。如图1所示,说明性的计算设备150、180分别包括至少一个处理器152、182,存储器154,I/O子系统156,数据存储设备158、188和UI子系统168、196。具有与用户计算设备110的组件相同或相似的名称的计算设备150、180的组件可以以与上述那些组件类似的方式实现;因此,这里不再重复描述。如上所述,说明性的受信预测分析中间件计算设备150实现了受信预测分析中间件166,包括存储在数据存储设备158中的模型描述语言160和受信预测分析中间件子系统164。数据存储设备158还存储模型描述162。在操作中,模型描述语言160和/或模型描述162的部分可以被复制到存储器154,例如用于更快的处理。说明性的预测分析提供者计算设备180实现预测分析服务(例如,“检测器”)194,包括一个或多个检测器模型190和存储在数据存储设备188中的一个或多个模型训练器(例如,训练数据集)192。在操作中,检测器模型190和/或模型训练器192的部分可以被复制到存储器184,例如用于更快的处理。计算系统100的任何数据和/或计算机程序组件的部分,例如用户级应用118,信任执行子系统120,用户内容124,受信预测分析中间件166和预测分析服务(例如,“检测器”)194,可以驻留在除了图1所示的那些之外的计算设备上。此外,在一些实施例中,所有这些组件(例如,用户级应用118,信任执行子系统120,用户内容124,受信预测分析中间件166和预测分析服务(例如,“检测器”)194)可以驻留在单个计算设备(例如,计算设备110,受信预测分析中间件计算设备150或预测分析提供者计算设备180)上。
如上所述,受信中间件166包括模型描述语言160和受信预测分析中间件子系统164。模型描述语言160包括模型规范和参数信息。使用中间件子系统164的组件来解释模型描述语言160,如下面更详细地描述的。现在参考图2A和2B,示出了用于受信预测分析中间件系统164的部分的说明性架构的实施例。在图2A中,示出了高级架构200。在高抽象级别,架构200包括接口层210和执行层216。在接口层210内,架构200包括应用编程接口(API)服务212和管理接口214。API服务212提供了用户级应用118(例如,图3A-3D中的A1,A2,A3,A4)可以向受信中间件166发布预测分析服务请求的接口。管理接口214提供了操作系统或底层系统服务可以通过其完成诸如供应、审核和升级受信中间件166的组件之类的任务的接口。在执行层216内,说明性的组件在高级别包括模型执行引擎218、信任管理子系统220以及数字权利管理(DRM)子系统222。模型执行层216负责预测分析(PA)任务的整个生命周期,其包括执行活动,例如:使用模型描述汇编器模型252基于模型描述162创建PA任务,启动PA任务,并使用检测器调度器模块254调度不同的PA任务,将模型描述162中描述的操作映射到从广泛类型的预测分析任务中减去的一组原语,例如:对输入进行卷积,将输入填充到多项式公式,等等(例如,显示为PA执行原语256的此类任务)和计算资源管理(例如,存储器等,通过资源管理模块258)。
一个高度优化的PA执行原语256被实现在一个或多个平台特定执行后端260之上(执行后端260可以包括:基于平台特定指令集(例如,Intel AVX指令集)的特定实现,基于特定的图形处理单元(GPU)的实现,或者基于平台特定加速技术(例如,定制处理器(Intel的Xeon处理器)中的浮点门阵列(FPGA)的实现。信任管理子系统220负责以受信的方式监视框架200的执行。信任管理子系统220可以阻止对框架200的修改,以确保框架的行为按预期行为起作用,并且不能被运行于同一系统上的故障过程修改。信任管理子系统220可以保护隐私数据的访问,并防止敏感数据的访问,如解密的建模描述、存储器中PA任务的代码页等。
DRM子系统222负责管理模型190的所有者的数字权利访问和保护。说明性的DRM子系统222可以起到两个作用。第一个作用是管理由DRM协议定义的密钥和密码操作。第二个作用是控制框架200仅以模型所有者许可的方式(例如在固定时间,对固定大小的输入数据等)来允许访问模型190的内容。DRM子系统222操作以确保该框架200保护模型所有者在模型190中的数字权利。组件218,220,222中的每一个可以被实现为计算机硬件、固件、软件或其组合。
参考图2B,示出了执行层216的实施例的组件的更详细的图示230。说明性的执行层230包括模型描述汇编器模块252、检测器调度器模块254、预测分析执行原语256、资源管理模块258、平台特定执行后端260、信任执行监视器模块262和DRM管理器模块264。组件252,254,256,258,260,262,264中的每一个可以被实现为计算机硬件、固件、软件或其组合。
模型描述汇编器模块252将预测分析服务(例如,“检测器”)194的检测器模型190(例如,下面描述的M1,M2,M3或M4)作为输入,使用模型描述语言160解释检测器模型190,从而在模型描述语言160中生成检测器模型190的模型描述162。在一些实施例中,模型描述162的生成(例如,检测器194到模型描述162的转换被执行为可以在预测分析提供者计算设备180上执行的一次性事件。一旦创建了模型描述162(例如,在提供者计算设备180上),检测器194可被部署到受信PA中间件计算设备150或另一个计算设备(例如,通过受信预测分析中间件子系统164)。作为模型解释的结果,汇编器模块252获得关于检测器模型190的结构和相关联的参数的信息。利用该信息,汇编器模块252基于模型描述162并使用由中间件166提供的预测分析执行原语256来创建预测分析服务(例如,“检测器”)194的可执行实例。为了这样,汇编器模块252将模型结构的节点映射到预测分析执行原语256(例如,通过代码逻辑),并将执行变量映射到嵌入在模型描述162中的模型参数。汇编器模块252可以应用一个或多个优化算法(例如,以去除任何冗余操作)。以这种方式,汇编器模块252创建具有与其他预测分析服务公共的执行原语的预测分析服务(例如,“检测器”)194的“受信”版本,并使用公共描述语言160来指定模型描述162。
假设检测器将在中间件上运行,模型描述162提供可用于重构可执行检测器的最小信息集。模型描述162包括关于模型的模型结构、模型参数和模型元信息。本文中对“模型结构”的引用尤其可以指通常用于表示分析模型的图或树结构以及节点和网络结构(例如,节点和边的布置)。如本文所使用的,“节点”可以尤其指代原语连接。连接和网络结构确定组合规则,其建立通过模型网络的控制流。模型结构的一些示例包括非循环图、概率图形模型、贝叶斯网络、多层网络结构和/或其他。模型参数提供系数,如原语系数、连接系数和网络系数。元信息提供关于检测器模型的信息(例如,“注释”)。例如,元信息可以指示检测器适合的问题或应用的类型,检测器所需的输入以及关于检测器如何被训练的信息。元信息通常可以例如由目录服务公开地发布。元信息使得用户级应用118能够使用搜索引擎运行查询,以找到适合于特定任务的检测器(例如,其元信息与由用户级应用118指定的业务需求匹配的检测器)。模型元信息的一些示例包括训练数据大小(例如,训练数据集的大小)和输入格式(例如,输入数据的格式化要求(如果有的话))。
一旦汇编器模块252创建预测分析服务(例如“检测器”)194的优化的可执行文件,则可执行程序被提交给检测器调度器模块254。检测器调度器模块254调度并执行由汇编器模块252实例化的检测器,并与资源管理模块258、信任执行监视模块262和DRM管理器模块264进行交互。如果可能,调度器模块254处理数据分发并识别并消除冗余数据拷贝。调度器模块254管理实例化检测器的生命周期,并且当检测器完成执行时释放资源。
预测分析执行原语256是以有效的方式执行公共预测分析任务的可执行文件。因此,预测分析执行原语256可以形成许多类型的检测器的基础。资源管理模块258管理诸如数据存储和存储器分配之类的资源。信任执行监视模块262和DRM管理器模块264将标准信任执行和DRM管理组件公开到上面的层(例如,调度器模块254和/或管理接口214)。平台特定执行后端260使得中间件166可以跨许多不同类型的设备和计算平台与平台特定的能力进行接合。
更详细地,信任管理子系统220(图2A)确保实例化检测器的DRM并保护输入数据的隐私。受信中间件166具有与原生操作系统/特权系统组件(例如,虚拟机监视器或VMM或管理程序)的信任计算组件的原生连接。在虚拟化架构中,当中间件166以信任模式执行时,中间件166在特权系统组件(例如,VMM或管理程序)内部运行。因此,敏感数据以安全信任模式存储在页面中。数据从加密数据源或敏感传感器读取。当受信的中间件166由受信的启动(例如,由信任执行子系统120)启动时,不敏感的用户内容124(例如,由用户的web浏览器抓取的公开可用的新闻页面)将被分配给由客户操作系统管理的存储器,受信中间件166可以访问该存储器。底层信任执行机制可以实现为例如基于IntelTrusted Platform Module(TPM)机制的TXT(Intel的受信执行技术)或基于ARM的TrustZone的混合解决方案。
现在更详细地参考DRM子系统222(图2A),DRM子系统222保护检测器模型190(例如,下面讨论的M1,M2,M3,M4)和模型训练器192(例如,下面讨论的T1,T2,T3,T4)的知识产权。当用户级应用118(例如,下面讨论的A1,A2,A3,A4)想要启动中间件166时,DRM子系统222检查所请求的中间件服务的许可证协议和/或使用限制,而不是简单地直接实例化检测器实例。中间件166调用DRM代理(例如,DRM管理器模块264)来检查包括权限和访问在内的适用的数字权利。如果许可证有效,则中间件166将模型描述162解密为由信任管理子系统220建立的信任存储器区域。应当理解,诸如加密和解密等密码服务是由信任执行子系统120提供,并且在建立信任执行环境时可用。
现在参考图3A-3D,可以由中间件166处理的预测分析服务(例如,“检测器”)194的示例性的实现是各自在环境300,320,340,350的上下文中显示的(例如,原生和/或虚拟运行时或“执行”环境)。在环境300,320,340,350中描绘的各种模块可以实现为硬件、固件、软件或其组合。预测分析服务(例如,“检测器”)194的每个实现包括检测器(例如,检测器310,322,342,352)、模型(例如,模型M1,M2,M3,M4)和模型训练器(例如,模型训练器T1,T2,T3,T4)。检测器(例如,检测器310,322,342,352)是可由用户级应用118(例如,应用A1,A2,A3,A4)请求的预测分析服务。例如,检测器(例如,检测器310,322,342,352)可以响应于来自应用(例如,应用A1,A2,A3,A4)的服务请求(例如,API调用)而对由应用(例如,应用A1,A2,A3,A4)提供的数据执行分类、标记或回归分析。检测器(例如,检测器310,322,342,352)的功能(包括其精度、效率、性能等)的方面由模型(例如,型号M1,M2,M3,M4)、所使用的特定算法以及由模型训练器(例如,模型训练器T1,T2,T3,T4)使用的训练数据集确定。使用模型训练器(例如,模型训练器T1,T2,T3,T4)及其相关联的数据集来训练模型(例如,模型M1,M2,M3,M4)。在一些实现中,检测器(例如,检测器310,322,342,352)在源代码(图3A)中或作为系统级(例如,原生)库对象(图3B和3D)被发布,并且应用(例如,应用A1,A2,A4)将检测器(例如,检测器310,322,342,352)集成在用户平台(例如,用户计算设备110)上。例如,在图3A的实现中,M1可以是使用数据挖掘来提供营销分析(例如,LBM服务)的分析服务。在图3B中,M2可以是通过机器学习算法(例如,自适应增强或“Adaboost”算法)产生的模型,并且检测器库对象可以被配置为与数字信号处理器(DSP)一起使用。在图3D,M4可以是使用动态贝叶斯网络(DBN)的预测模型,并且被配置为与专用集成电路(ASIC)一起使用。这些和许多其他类型的分析服务可以受益于本文公开的受信中间件166。
利用图3A、3B和3D所示的方式集成的检测器(例如,检测器310,322,342,352),没有由中间件166提供的保护,检测器(例如,检测器310,322,342,352)将直接访问用户数据(例如,用户数据312,324,344,354),并且用户平台(例如,用户计算设备110)可以发现由检测器(例如,检测器310,322,342,352)使用的算法和/或调谐参数的潜在专有方面。图3C的实现是一种“软件即服务”或“SaaS”方式,其中M3、T3作为web服务提供。在web服务器上托管模型M3防止了应用A3或用户计算设备110的其他组件访问模型M3的专有方面。然而,在环境340中,将用户数据344上传到web服务M3、T3,从而潜在地提高用户隐私和数据控制问题。
受信中间件166解决了由图3A-3D所示的传统实现引起的如下问题。首先,受信中间件166,而不是原始模型M1,M2,M3,M4,使用如上所述的模型描述语言160生成对应的模型描述162。在每种情况下,中间件166将模型描述162(例如,由信任执行子系统120)部署在用户计算设备的受信执行环境内。利用由受信中间件166提供的公共中间件接口(例如,API服务212和管理接口214),可以跨许多不同设备使用相同的模型描述162。此外,不是针对不同的硬件配置提供优化版本的模型(例如,M1,M2,M3,M4),而是模型训练器(例如,T1,T2,T3,T4)可以使用公共模型描述162来训练模型一次,并且所得到的训练后的模型可以在任何平台上使用。
现在参考图4,示出了用于提供受信预测分析服务的方法400的示例。方法400的部分可以由计算系统100的硬件、固件和/或软件(例如,由受信预测分析中间件子系统164)执行。方法400响应于对预测分析服务的请求而开始(例如,由用户级应用进行的API调用)。在框410中,计算系统100在信任执行环境中启动受信预测分析中间件。信任执行环境由例如信任执行子系统120建立。在框412中,计算系统100获得与由用户级应用程序进行的用于预测分析服务的请求相关联的输入数据。输入数据可以是例如照片、数据集、或文本和/或非文本数据的任何组合。作为受信预测分析中间件在其中运行的信任执行环境的建立的结果,输入数据被存储在受信存储器区域(例如,通过硬件或软件与其他存储器隔离的存储器区域)。在框414中,计算系统100从存储的模型描述(例如,模型描述162)中选择或确定适当的模型描述,所述模型描述先前由受信中间件使用例如如下所述的图5所示的方法创建。作为由信任执行环境中的受信中间件创建模型描述的结果,模型描述由信任执行环境的组件加密。在框416中,计算系统100基于与用户应用请求相关联的输入数据来检查与框414中选择的模型描述相关联的许可证协议、使用许可和/或数字权利。在框418中,计算系统100确定用户级应用的请求(涉及框412中获得的输入数据)是否被适用的许可证/许可/数字权利管理数据所允许。如果未被适用的许可证/许可/数字权利管理数据所允许,则方框420中的用户请求失败。
如果计算系统100在框418中确定用户请求被允许,则计算系统100对在框414中选择的模型描述进行解密(使用例如信任执行环境的组件)。在框424中,计算系统100将解密的模型描述存储在受信存储器区域(例如,用户计算设备110的硬件或软件隔离区域)中。在框426中,计算系统100实例化解密的模型。在框428中,计算系统100执行解密模型来处理输入数据,并且在框430中,计算系统100输出在输入数据上执行模型的结果。
现在参考图5,示出了用于从预测分析服务(例如,“检测器”)194创建受信的可执行检测器的方法400的示例。方法500的部分可以由计算系统100的硬件、固件和/或软件(例如,由受信预测分析中间件子系统164)执行。方法500响应于向受信预测分析中间件166提交预测分析服务或“检测器”194而开始。在框510中,计算系统100与提交的预测分析服务相结合地创建或选择受信执行原语(例如,预测分析执行原语256)用作执行原语。在框512中,计算系统100使用公共模型描述语言(例如,模型描述语言160)将用于预测分析服务的模型(例如,检测器模型190)转换为所提交的预测分析服务的模型描述(例如,模型描述162)。示例性地,该转换由PA提供商计算设备180执行。一旦创建了模型描述162(例如,在计算设备180上),检测器194可被部署到受信PA中间件计算设备150或另一计算设备(例如,由受信预测分析中间件子系统164),如上所述。
在框514中,计算系统100基于在框512中准备的模型描述来创建模型结构(例如,节点,网络等)。在框516中,计算系统100使用在框510中创建或选择的执行原语将模型结构转换为可执行文件。在框518中,计算系统100根据需要对在框516中创建的可执行文件应用一个或多个优化。在框520中,计算系统100将可执行文件提交给受信中间件的调度模块(例如,检测器调度器模块254)。
示例
以下提供本文公开的技术的说明性的示例。技术的一个实施例可以包括以下描述的示例中的任何一个或多个,以及任何组合。
示例1包括包含一个或多个计算设备的计算系统,所述计算系统提供受信预测分析服务,所述计算系统包括:受信预测分析中间件子系统,用于响应于对预测分析服务的用户级应用请求,在所述计算系统的信任执行环境中,使所述计算系统:确定用于预测分析模型的模型描述,所述模型描述是使用预测分析模型描述语言创建的,其中所述预测分析模型描述语言使用公共语言描述多个不同的预测分析模型;将与用户级应用请求相关联的数据同指示与模型描述相关联的数字权利许可的数据进行比较;以及如果,基于与用户级应用请求相关联的数据同指示与模型描述相关联的数字权利许可的数据的比较,所述用户级应用请求被允许,则实例化与所述模型描述相关联的可执行文件。
示例2包括示例1的主题,其中所述预测分析模型描述语言包括指示预测分析模型结构、一个或多个模型参数和关于预测分析模型的元信息的数据。
示例3包括示例1或示例2的主题,其中所述受信预测分析中间件子系统由所述计算系统的用户计算设备在所述信任执行环境中启动。
示例4包括示例1或示例2的主题,其中所述受信预测分析中间件子系统获取与针对预测分析服务的用户级应用请求相关联的输入数据,并将所述输入数据存储在所述信任执行环境的受信存储器区域中。
示例5包括示例1或示例2的主题,其中如果,基于与所述用户级应用请求相关联的数据同指示与所述模型描述相关联的数字权利许可的数据的比较,所述用户级应用请求被允许,则所述受信预测分析中间件子系统对所述模型描述进行解密。
示例6包括示例5的主题,其中所述受信预测分析中间件子系统将所解密的模型描述存储在所述信任执行环境的受信存储器区域中。
示例7包括示例1或示例2的主题,其中所述受信预测分析中间件子系统基于预测分析执行原语和所述模型描述来创建所述可执行文件。
示例8包括示例1或示例2的主题,其中所述受信预测分析中间件子系统包括数字权利管理(DRM)子系统以验证与所述预测分析服务相关联的数字权利。
示例9包括示例1或示例2的主题,其中所述受信预测分析中间件子系统包括模型描述汇编器模块,以使用所述模型描述语言来解释所述模型描述,基于所述模型描述来创建所述预测分析服务的模型结构;以及基于预测分析执行原语将模型结构转换为可执行文件。
示例10包括用于提供受信预测分析服务的方法,所述方法包括利用计算系统:使用公共模型描述语言描述多个不同的预测分析模型;以及响应于针对预测分析服务的用户级应用请求,在计算系统的信任执行环境:确定针对预测分析模型的模型描述,模型描述是使用预测分析模型描述语言来创建;将与用户级应用请求相关联的数据同指示与模型描述相关联的数字权利许可的数据进行比较;以及如果,基于与用户级应用请求相关联的数据同指示与模型描述相关联的数字权利许可的数据的比较,用户级应用请求被允许,则实例化与模型描述相关联的可执行文件。
示例11包括示例10的主题,包括在所述信任执行环境中启动所述受信预测分析中间件子系统。
示例12包括示例10的主题,包括获得与针对预测分析服务的用户级应用请求相关联的输入数据,以及将所述输入数据存储在所述信任执行环境的受信存储区域中。
示例13包括示例10的主题,包括如果,基于与所述用户级应用请求相关联的数据同指示与所述模型描述相关联的数字权利许可的数据的比较,所述用户级应用请求被允许,则对所述模型描述进行解密。
示例14包括示例13的主题,包括将所解密的模型描述存储在所述信任执行环境的受信存储器区域中。
示例15包括示例10的主题,包括基于预测分析执行原语和所述模型描述来创建所述可执行文件。
示例16包括示例10的主题,包括由数字权利管理(DRM)子系统验证与所述预测分析服务相关联的数字权利。
示例17包括示例10的主题,包括使用所述模型描述语言来解释所述模型描述,基于所述模型描述创建所述预测分析服务的模型结构,以及基于预测分析执行原语将所述模型结构转换为可执行文件。
示例18包括示例10的主题,包括使用包括表示预测分析模型结构、一个或多个模型参数以及关于预测分析模型的元信息的数据的描述语言描述所述预测分析模型。
示例19包括一个或多个非暂时性机器可读存储介质,其包括存储在其上的多个指令,所述指令响应于被执行,使得计算设备执行示例10-18中任一个的方法。
示例20包括用于提供受信预测分析服务的计算系统,该系统包括用于执行权利要求10-18中任一项所述的方法的单元。