安全的云管理内容递送计算机生态系统的制作方法

文档序号:18667549发布日期:2019-09-13 20:23阅读:115来源:国知局
安全的云管理内容递送计算机生态系统的制作方法

云计算是一种基于因特网的计算类型,其可以根据需要向计算机和其他设备提供共享的计算机处理资源和数据。云计算是用于实现对可配置计算资源(例如,计算机网络、服务器、存储、应用和服务)的共享池的普遍、按需访问的模型,可配置计算资源可以以最小的管理工作快速地供应和释放。云计算和存储解决方案为用户和企业提供各种能力,以便在位于远离用户的第三方数据中心存储和处理他们的数据;在从跨城市到全世界的距离范围。云计算依赖于资源的共享来实现规模的一致性和经济性,与电力网络上的公用事业(类似于电网)相似。

虽然云计算具有许多优点,它也存在尚未解决的缺点。因此,期望用于使用云计算的新系统和方法。



技术实现要素:

本公开的一个方面涉及一种用于安全地提供内容和/或用于安全地编写或编辑内容的系统。系统包括:数据库;以及服务器,与数据库通信连接。服务器包括:评估模块,可以接收响应信息并评估所接收的响应信息;以及内容驱动器,与评估模块和数据库通信连接。内容驱动器能够:响应于接收到启动信号而启动;生成指示在用户设备上启动第一虚拟机的信号;生成指示启动在第一虚拟机内的第二虚拟机的信号;标识用于递送到第二虚拟机的内容;生成用于递送到第二虚拟机的内容的像素数据;将像素数据发送到第二虚拟机;从第二虚拟机接收多个响应输入;基于接收到的响应输入生成响应;并将生成的响应提供到评估模块。

在一些实施例中,数据库包括用于递送到用户设备的内容和与用于递送到用户设备的内容相关联的评估内容。在一些实施例中,生成的像素数据被加密。在一些实施例中,内容驱动器包括可以加密像素数据的编解码器。在一些实施例中,服务器可以经由用户数据报协议与用户设备通信。在一些实施例中,用户数据报协议是远程显示协议。

在一些实施例中,生成响应包括聚合至少一个响应输入。在一些实施例中,评估模块可以从数据库检索评估数据并根据所检索的评估数据评估所生成的响应。在一些实施例中,内容驱动器可以生成到用户设备的通信连接。在一些实施例中,内容驱动器能够:确定向用户设备的内容递送的完成;以及终止与用户设备的通信连接。在一些实施例中,服务器和数据库能够通过通信网络与后端服务器和后端数据库通信连接。在一些实施例中,用于递送到用户设备的内容包括测试。

本公开的一个方面涉及一种安全地提供内容的方法。该方法包括:响应于接收到启动信号而启动内容驱动器;利用内容驱动器生成指示在用户设备上启动第一虚拟机的信号;利用内容驱动器生成指示第一虚拟机内的第二虚拟机的启动的信号;利用内容驱动器标识用于递送到第二虚拟机的内容;利用内容驱动器生成针对用于递送到第二虚拟机的内容的像素数据;将像素数据从内容驱动器发送到第二虚拟机;在内容驱动器接收来自第二虚拟机的多个响应输入;基于所接收的响应输入与内容驱动器一起生成响应;以及评估响应。

在一些实施例中,生成的像素数据被加密。在一些实施例中,利用编解码器对生成的像素数据加密。在一些实施例中,像素数据经由用户数据报协议被发送到第二虚拟机。在一些实施例中,用户数据报协议包括远程显示协议。在一些实施例中,生成响应增加了聚合至少一个响应输入。

在一些实施例中,该方法进一步包括检索评估数据并根据所检索的评估数据评估所生成的响应。在一些实施例中,该方法包括生成到用户设备的通信连接。在一些实施例中,该方法进一步包括:确定向用户设备的内容递送的完成;以及终止与用户设备的通信连接。

本公开的进一步适用领域将根据下文所提供的详细说明而变得明显。应当理解的是,虽然这些详细说明和具体示例指示了各种实施例,但它们仅旨在用于说明的目的而并非旨在必然地限制本公开的范围。

附图说明

结合附图描述本公开:

图1是示出了内容分发网络的示例的框图。

图2是示出内容分发网络内的计算机服务器和计算环境的框图。

图3是示出内容分发网络内的一个或多个数据存储服务器的实施例的框图。

图4是示出内容分发网络内的一个或多个内容管理服务器的实施例的框图。

图5是示出内容分发网络内的专用计算机设备的物理和逻辑组件的框图。

图6是示出通信网络的一个实施例的框图。

图7是示出用户设备和主管设备通信的一个实施例的框图。

图8是示出用于数据管理的过程的一个实施例的流程图。

图9是示出用于评估响应的过程的一个实施例的流程图。

图10是递送网络的一个实施例的示意图。

图11是示出用于呈现内容的过程的一个实施例的流程图。

图12是示出用于发起内容递送的过程的一个实施例的流程图。

图13是示出用于内容递送的过程的一个实施例的第一部分的流程图。

图14是示出用于内容递送的过程的一个实施例的第二部分的流程图。

在附图中,类同的组件和/或特征可具有相同的附图标记。在说明书中使用附图标记的情况下,该描述适用于具有相同附图标记的相似组件中的任何一个。此外,相同类型的各个组件可通过在附图标记后跟随短划线以及在类似组件之间进行区分的第二标记来加以区分。如果在说明书中仅使用第一附图标记,则该描述适用于具有相同第一附图标记的任何一个类似组件而不管第二附图标记。

具体实施方式

以下描述提供了一个或多个仅说明性实施例,并且不旨在限制本公开的范围、适用性或者配置。相反,一个或多个说明性实施例的以下的描述将为本领域技术人员提供用于实现优选示例性实施例的实现描述。应理解,在不背离所附权利要求中阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。

现在参考图1,示出了示出内容分发网络(cdn)100的各种组件的框图,内容分发网络(cdn)100实现并支持本文描述的某些实施例和特征。内容分发网络100可以包括一个或多个内容管理服务器102。如下面更详细地讨论的,内容管理服务器102可以是任何期望类型的服务器,包括例如机架式服务器、塔式服务器、微型服务器、刀片式服务器、迷你机架式服务器、移动服务器、超密度服务器、超级服务器等,并且可以包括各种硬件组件,例如,主板、处理单元、存储器系统、硬盘驱动器、网络接口、电源等。内容管理服务器102可以包括一个或多个服务器群、集群或任何其他适当的布置和/或组合或计算机服务器。内容管理服务器102可以根据位于服务器102的存储器子系统中的存储的指令来动作,并且可以运行操作系统,包括任何可商购的服务器操作系统和/或本文所讨论的任何其他操作系统。

内容分发网络100可以包括一个或多个数据存储服务器104,诸如,数据库服务器和基于文件的存储系统。数据库服务器104可以访问可以被存储在各种硬件组件上的数据。这些硬件组件可包括,例如,形成0级存储的组件,形成1级存储的组件,形成2级存储的组件和/或任何其他存储级。在一些实施例中,0级存储是指是数据库服务器104中最快的存储级的存储,并且具体地,0级存储是非ram或高速缓存存储器的最快存储。在一些实施例中,0级存储器可以体现在固态存储器中,例如固态驱动(ssd)和/或闪存存储器。

在一些实施例中,1级存储是指是存储器管理系统中的一个或多个较高性能系统的存储,并且比0级存储器相对更慢,并且比其他级存储器相对更快。1级存储器可以是一个或多个硬盘,例如可以是高性能硬盘。这些硬盘可以是物理连接或通信连接中的一个或两个,诸如,例如通过一个或多个光纤信道连接。在一些实施例中,一个或多个磁盘可以被布置在磁盘存储系统中,并且具体地可以被布置在企业级磁盘存储系统中。磁盘存储系统可以包括任何期望的级别的冗余以保护存储在其中的数据,并且在一个实施例中,磁盘存储系统可以由网格架构制成,该网格架构为系统资源的均匀分配和平衡数据分布创建并行性。

在一些实施例中,与1级存储和2级存储相比,2级存储是指包括存储器管理系统中的一个或多个相对较低性能的系统的存储。由此,2级存储器比1级存储器和0级存储器相对慢。2级存储器可以包括一个或多个sata驱动或一个或多个nl-sata驱动。

在一些实施例中,数据库服务器104的一个或多个硬件和/或软件组件可以被布置在一个或多个存储区域网络(san)中,一个或多个存储区域网络可以是提供对数据存储的访问,特别是提供对统一的块级数据存储的访问的一个或多个专用网络。san通常具有其自己的存储设备网络,其通常不能由其他设备通过局域网(lan)访问。san允许以以下方式访问这些设备,该方式使得这些设备看起来本地附连到用户设备。

数据存储104可以包括与内容分发网络100的功能有关的存储的数据。下面参考图3描述可以在内容分发网络100的某些实施例中维护的数据存储104的说明性示例。在一些实施例中,通过使用服务器104的相同的存储组件或者通过使用不同的物理存储组件,多个数据存储可以驻留在单个服务器104上,以确保数据存储之间的数据安全性和完整性。在其他实施例中,每个数据存储可以具有分开的专用数据存储服务器104。

内容分发网络100也可以包括一个或多个用户设备106和/或管理员设备110,在此也称为主管设备(supervisordevice)110。用户设备106和管理员设备110可以显示经由内容分发网络100接收的内容,并且可以支持与内容的各种类型的用户交互。用户设备106和管理员设备110可以包括移动设备,诸如智能电话、平板电脑、个人数字助理和可穿戴计算设备。这样的移动设备可以运行各种移动操作系统,并且可以启用因特网、电子邮件、短消息服务(sms)、移动射频识别(m-rfid)和/或其他通信协议。其他用户设备106和管理员设备110可以是通用个人计算机或专用计算设备,作为示例,包括个人计算机、膝上型计算机、工作站计算机、投影设备和交互式房间显示系统。另外,用户设备106和管理员设备110可以是任何其他电子设备,诸如瘦客户端计算机、支持因特网的游戏系统、商业或家用电器和/或其他设备不可用的个人设备。

用户设备106和/或一个或多个管理员设备110可以共同位于例如测试中心107、位置、诸如局域网(lan)之类的网络等中。在一些实施例中,测试中心107(包括用户设备106和/或一个或多个管理员设备110)可以远离cdn100的其他组件,并且可以通过通信网络120与cdn100的一个或多个其他组件通信连接。

如图1所示,内容管理服务器102可以与一个或多个附加服务器(诸如,内容服务器112,用户数据服务器112和/或管理员服务器116)通信。这些服务器中的每一个可以包括与一个或多个内容管理服务器102相同的一些或所有物理和逻辑组件,并且在一些情况下,这些服务器112-116的硬件和软件组件可以合并到一个或多个内容管理服务器102中,而不是作为分开的计算机服务器实现。

内容服务器112可以包括用于生成、存储和维护内容资源的硬件和软件组件,以便分发给网络100中的用户设备106和其他设备。例如,在用于专业培训和教育目的的内容分发网络100中,内容服务器112可以包括培训材料、演示文稿、计划、教学大纲、复习、评估、交互式程序和模拟、课程模型、课程大纲和各种训练界面的数据存储,对应于不同材料和/或不同类型的用户设备106。在用于媒体分发、交互式游戏等的内容分发网络100中,内容服务器112可以包括媒体内容文件,诸如音乐、电影、电视节目、游戏和广告。

用户数据服务器114可以包括存储和处理与每个用户的活动和内容分发网络100的使用相关的多个用户的数据的硬件和软件组件。例如,内容管理服务器102可以记录和跟踪每个用户的系统使用,包括他们的用户设备106、访问的内容资源以及与其他用户设备106的交互。该数据可以由用户数据服务器114存储和处理,以支持用户跟踪和分析特征。例如,在专业培训和教育的环境中,用户数据服务器114可以存储和分析每个用户观看的培训材料、参加的演示、完成的课程、交互、评估结果等。用户数据服务器114还可以包括用于用户生成的材料(诸如,由用户完成的评估和测试,以及由用户准备的文档和分配)的存储库。在媒体分发和交互式游戏的环境中,用户数据服务器114可以存储和处理多个用户的资源访问数据(例如,访问的内容标题、访问时间、数据使用量、游戏历史、用户设备和设备类型等)。

管理员服务器116可以包括用于在内容管理服务器102和内容分发网络100内的其他组件处启动各种管理功能的硬件和软件组件。例如,管理员服务器116可以监视内容分发网络100中的各种服务器、数据存储和/或用户设备106的设备状态和性能。必要时,管理员服务器116可以从网络100添加或移除设备,并执行设备维护,诸如向网络100中的设备提供软件更新。管理员服务器116上的各种管理工具可以允许授权用户设置对各种内容资源的用户访问权限,监视用户和设备106的资源使用,并且执行分析并生成关于特定网络用户和/或设备的报告(例如,资源使用跟踪报告、培训评估等)。

内容分发网络100可以包括一个或多个通信网络120。尽管在图1中仅标识了单个网络120,但是内容分发网络100可以包括图1中所示的任何计算机服务器和设备和/或本文描述的其他设备之间的任何数量的不同通信网络。通信网络120可以实现各种计算设备、服务器和内容分发网络100的其他组件之间的通信。如下文中讨论的,内容分发网络100的各种实现可以采用不同类型的网络120,例如,计算机网络、电信网络、无线网络和/或这些和/或其他网络的任何组合。

内容分发网络100可以包括一个或多个导航系统或特征(包括,例如,全球定位系统(“gps”),伽利略定位系统(galileo)等)或定位系统或特征(包括,例如,可以通过例如三角测量来确定内容分发网络100的一个或多个组件的位置的一个或多个收发器)。所有这些都被描绘为导航系统122。

在一些实施例中,导航系统122可以包括或者可以与内容分发网络100的一个或多个组件通信的一个或多个特征,包括例如与一个或多个用户设备106和/或与一个或多个管理员设备110通信。在一些实施例中,该通信可以包括来自导航系统122的信号的传输,该信号由内容分发网络100的一个或多个组件接收,并且可以用于确定内容分发网络100的一个或多个组件的位置。

参考图2,示出了说明性分布式计算环境200,包括计算机服务器202、四个客户端计算设备206以及可以实现本文描述的某些实施例和特征的其他组件。在一些实施例中,服务器202可以对应于上文在图1中讨论的内容管理服务器102,并且客户端计算设备206可以对应于用户设备106。然而,图2中示出的计算环境200可以对应于被配置为用于实现客户端-服务器模型或其他分布式计算架构的设备和服务器的任何其他组合。

客户端设备206可以被配置为用于通过一个或多个网络220接收和执行客户端应用。这种客户端应用可以是基于web浏览器的应用和/或独立软件应用,诸如,移动设备应用。服务器202可以通过一个或多个通信网络220与客户端设备206通信地耦合。客户端设备206可以从服务器202或从其他应用提供商(例如,公共或私人应用商店)接收客户端应用程序。服务器202可以被配置为用于运行一个或多个服务器软件应用或服务(例如,基于web或基于云的服务),以支持内容分发和与客户端设备206的交互。操作客户端设备206的用户可以进而利用一个或多个客户端应用(例如,虚拟客户端应用)与服务器202交互以利用由这些组件提供的服务。

可以在服务器202上实现各种不同的子系统和/或组件204。操作客户端设备206的用户可以启动一个或多个客户端应用以使用由这些子系统和组件提供的服务。服务器202和客户端设备206内的子系统和组件可以由硬件、固件、软件或其组合来实现。在不同的分布式计算系统200和内容分发网络100中有可能有各种不同的系统配置。因此,图2中所示的实施例是分布式计算系统的一个示例,并不旨在是限制性的。

尽管示出了具有四个客户端计算设备206的示例性计算环境200,但是可以支持任何数量的客户端计算设备。其他设备(诸如,专用传感器设备等)可以与客户端设备206和/或服务器202交互。

如图2所示,各种安全和集成组件208可以用于通过一个或多个通信网络220发送和管理服务器202和用户设备206之间的通信。安全和集成组件208可以包括分开的服务器,诸如,web服务器和/或认证服务器、和/或专用网络组件,诸如,防火墙、路由器、网关、负载平衡器等。在一些情况下,安全和集成组件208可以对应于在与服务器202相同的物理位置处操作并且处于与服务器202相同的实体的控制下的一组专用硬件和/或软件。例如,组件208可以包括数据中心或云基础设施中的一个或多个专用web服务器和网络硬件。在其他示例中,安全和集成组件208可以对应于可以在分开的物理位置和/或由分开的实体操作的分开的硬件和软件组件。

安全和集成组件208可以实现用于数据传输和存储的各种安全特征,诸如,认证用户和对未知或未授权用户的限制访问。在各种实现中,安全和集成组件208可以提供,例如,基于文件的集成方案或基于服务的集成方案,用于在内容分发网络100中的各种设备之间传输数据。安全和集成组件208也可以使用安全数据传输协议和/或加密来进行数据传输,例如,文件传输协议(ftp)、安全文件传输协议(sftp)和/或良好隐私(pgp)加密。

在一些实施例中,可以在安全和集成组件208内和/或内容分发网络100内的其他地方实现一个或多个web服务。可以根据各种web服务标准(诸如,restfulweb服务(即,代表性状态转移(rest)架构类型和约束))和/或根据web服务互操作性(ws-i)指南设计的web服务开发用于企业用途的这种web服务(包括跨域和/或跨平台web服务)。一些web服务可以使用安全套接字层(ssl)或传输层安全(tls)协议来提供服务器202和用户设备206之间的安全连接。ssl或tls可以使用http或https来提供认证和机密性。在其他示例中,可以使用基于https的rest以及用于认证的oauth开放标准,或使用通过使用xml加密提供安全soap消息的web服务安全标准来实现web服务。在其他示例中,安全和集成组件208可以包括用于提供安全web服务的专用硬件。例如,安全和集成组件208可以包括具有内置特征(诸如,硬件加速的ssl和https、web服务安全和防火墙)的安全网络设备。可以在任何web服务器之前安装和配置这种专用硬件,使得任何外部设备可以直接与专用硬件通信。

一个或多个通信网络220可以是本领域技术人员熟悉的可以通过使用各种可商购的协议中的任何协议来支持数据通信的任何类型的网络,包括但不限于tcp/ip(传输控制协议/互联网协议)、sna(系统网络架构)、ipx(网间分组交换协议)、安全套接字层(ssl)或传输层安全(tls)协议、超文本传输协议(http)和安全超文本传输协议(https)、近场通信(nfc)等。仅作为示例,一个或多个网络220可以是局域网(lan),诸如基于以太网、令牌环等的局域网。一个或多个网络220也可以是广域网,诸如,因特网。网络220可以包括电信网络,诸如,公共交换电话网(pstn)、或诸如内联网或外联网的虚拟网络。红外和无线网络(例如,使用电气和电子学会(ieee)802.11协议套件或其他无线协议)也可以包括在网络220中。

计算环境200也可以包括一个或多个数据存储210和/或后端服务器212。在某些示例中,数据存储210可以对应于上文在图1中讨论的一个或多个数据存储服务器104,并且后端服务器212可以对应于各种后端服务器112-116。数据存储210和服务器212可以驻留在相同的数据中心中,或者可以在距服务器202的远程位置处操作。在一些情况下,一个或多个数据存储210可以驻留在服务器202内的非瞬态存储介质上。其他数据存储210和后端服务器212可以远离服务器202并且被配置为用于通过一个或多个网络220与服务器202通信。在某些实施例中,数据存储210和后端服务器212可以驻留在存储区域网络(san)中,或者可以使用存储即服务(staas)架构模型。

参考图3,示出了一组说明性的数据存储和/或数据存储服务器,其对应于上文在图1中讨论的内容分发网络100的数据存储服务器104。一个或多个单独的数据存储301-310可以在单个实体的控制下驻留在单个计算机服务器104(或单个服务器群或集群)上的存储中,或者可以驻留在由不同实体和/或在远程位置操作的分开的服务器上。在一些实施例中,数据存储301-310可以由内容管理服务器102和/或网络100内的其他设备和服务器(例如,用户设备106、管理员设备110、管理员服务器116等)访问。可以基于过程、用户凭证和/或尝试与数据存储交互的设备来限制或拒绝对数据存储301-310中的一个或多个的访问。

以下段落描述了可以在内容分发网络100的一些实施例中实现的特定数据存储的示例。应理解,以下对数据存储301-310的描述,包括它们的功能和存储在其中的数据类型,是说明性的而非限制性的。数据存储服务器架构、设计和特定数据存储301-310的执行可以取决于内容分发网络100的环境、大小和功能要求。例如,在用于专业培训和教育目的的内容分发系统100中,可以在一个或多个数据存储服务器104中实现分开的数据库或基于文件的存储系统,以存储受训者和/或学生数据、教练和/或教授数据、训练模块数据和内容描述、训练结果、评估数据等。相比之下,在用于从内容提供商到订阅者的媒体分发的内容分发系统100中,可以在一个或多个数据存储服务器104中实现分开的数据存储,以存储可用内容标题和描述的列表、内容标题使用统计、订阅者简档、帐户数据、付款数据、网络使用统计等。

用户简档数据存储301(本文中也称为用户简档数据库301)可以包括与内容分发网络100内的终端用户有关的信息。该信息可以包括用户特征,诸如用户名、访问凭证(例如,登录和密码)、用户偏好以及与内容分发网络100内的任何先前用户交互有关的信息(例如,所请求的内容、发布的内容、完成的内容模块、培训分数或评估、其他相关用户等)。在一些实施例中,该信息可以涉及一个或多个单独的终端用户(诸如,例如,一个或多个学生、内容作者、教师、管理员等),并且在一些实施例中,该信息可以涉及一个或多个机构终端用户(诸如,例如,一个或多个学校、一组学校(诸如,一个或多个学区、一个或多个学院、一个或多个大学、一个或多个培训提供者等))。在一些实施例中,该信息可以标识一个或多个组中的一个或多个用户成员资格,诸如,例如,学生在大学、学校、项目、年级、课程、班级等中的成员资格。

在一些实施例中,用户简档数据库301可以包括与用户的状态、位置等有关的信息。该信息可以标识,例如,用户正在使用的设备、该设备的位置等。在一些实施例中,可以基于任何位置检测技术(包括,例如,导航系统122等)生成该信息。

与用户状态有关的信息可以标识,例如,登录状态信息,该登录状态信息可以指示用户当前是否登录到内容分发网络100和/或登录是否有效。在一些实施例中,与用户的状态有关的信息可以标识用户当前是否正在访问来自内容分发网络100的内容和/或正在参与来自内容分发网络100的活动。

在一些实施例中,与用户的状态有关的信息可以标识例如用户与内容分发网络100和/或由内容分发网络100分发的内容的交互的一个或多个属性。这可以包括标识用户与内容分发网络100、用户通过内容分发网络100消费的内容等的交互的数据。在一些实施例中,这可以包括标识通过内容分发网络100访问的信息的类型和/或用户通过内容分发网络100执行的活动的类型的数据、自用户上次访问内容和/或参与来自内容分发网络100的活动以来流逝的时间等。在一些实施例中,该信息可以涉及包括数据、内容和/或活动的集合的内容程序,并且可以标识例如通过内容程序,或者通过数据、内容和/或形成内容程序的活动的进度的数据的集合。在一些实施例中,该信息可以跟踪例如自从参与和/或完成一种或多种类型的活动的时间量、自从与一个或多个主管和/或管理员设备110通信的时间量等。

在一个或多个终端用户是个人,特别是学生的一些实施例中,用户简档数据库301可以进一步包括与这些学生的学术和/或教育历史有关的信息。该信息可以标识学生已经开始、完成和/或部分完成的一个或多个课程,以及在这些学习课程中收到的成绩。在一些实施例中,学生的学术和/或教育历史可以进一步包括标识学生在一个或多个测试、测验和/或作业上的表现的信息。在一些实施例中,该信息可以被存储在不是内容递送网络100中的最快的存储器的一级存储器中。

用户简档数据库301可以包括与一个或多个学生学习偏好有关的信息。在一些实施例中,例如,用户(在本文中也称为学生或学生用户)可以具有一个或多个优选学习风格、一个或多个最有效的学习风格等。在一些实施例中,学生的学习风格可以是描述学生如何最好地学习或学生如何更喜欢学习的任何学习风格。在一个实施例中,这些学习风格可以包括,例如,将学生标识为听觉学习者、视觉学习者和/或触觉学习者。在一些实施例中,标识一个或多个学生学习风格的数据可以包括基于学生的教育历史标识学习风格的数据,例如,当学生在有利于听觉学习者的任务和/或课程已经收到显著更高的等级和/或分数时将学生标识为听觉学习者。在一些实施例中,该信息可以被存储在不是内容递送网络100中的最快的存储器的某一级存储器中。

在一些实施例中,用户简档数据库301可以包括与一个或多个学生用户行为有关的信息,包括,例如:在一个或多个课程中的出席;在一个或多个学习组中的出席和/或参加;校外、学生组和/或俱乐部加入和/或参与等。在一些实施例中,与一个或多个学生用户行为有关的该信息可以包括与学生用户时间表有关的信息。

用户简档数据库301可以进一步包括与负责组织、演示和/或管理向学生呈现信息的一个或多个教师和/或教练有关的信息。在一些实施例中,用户简档数据库301可以包括标识教师已经教过的课程和/或科目的信息,标识教师当前教授的课程和/或科目的数据和/或标识教师将要教授的课程和/或科目的数据。在一些实施例中,这可以包括与一个或多个教师的一种或多种教学风格有关的信息。在一些实施例中,用户简档数据库301可以进一步包括指示由教师接收的过去的评估和/或评估报告的信息。在一些实施例中,用户简档数据库301可以进一步包括与教师接收的改进建议、教师接收的培训、教师接收的继续教育等有关的信息。在一些实施例中,该信息可以被存储在不是内容递送网络100中的最快的存储器的某一级存储器中。

账户数据存储302(本文中也称为账户数据库302)可以为内容分发网络100内的各种角色的不同用户生成和存储账户数据。例如,可以在帐户数据存储302中为各个终端用户、主管、管理员用户以及诸如公司或教育机构的实体创建账户。账户数据可以包括账户类型、当前账户状态、账户特征以及与账户相关联的任何参数、限制、约束。

内容库数据存储303(本文中也称为内容库数据库303)可以包括描述通过内容分发网络100可用的各个内容项(或内容资源或数据包)的信息。在一些实施例中,库数据存储303可以包括与存储在内容服务器112中的内容资源相关联的元数据、属性和其他特性。这样的数据可以标识相关联的内容资源的一个或多个方面或内容属性,例如,内容资源的主题、访问级别或技能级别,内容资源的许可属性(例如,对内容资源的可许可使用和/或分发的任何限制和/或约束),内容资源的价格属性(例如,用于确定内容资源的使用或分发的支付金额的价格和/或价格结构),内容资源的评级属性(例如,指示内容资源的评估或有效性的数据)等。在一些实施例中,库数据存储303可以被配置为用于允许更新内容元数据或属性,以及允许添加和/或移除与内容资源有关的信息。例如,内容关系可以实现为图形结构,其可以存储在库数据存储303中或存储在附加存储中以由选择算法与其他元数据一起使用。

在一些实施例中,内容库数据库303可以包括用于促进创作新内容的信息。该信息可以包括,例如,标识期望的新创作内容的属性和/或要求的一个或多个规范。在一些实施例中,例如,内容规范可以标识一个或多个主题;期望的新创作的内容的长度、难度等级等。

在一些实施例中,内容库数据库303可以进一步包括用于评估新创作的内容的信息。在一些实施例中,该评估可以包括确定新创作的内容是否对应于内容规范或内容规范的一些或全部要求和/或与内容规范或内容规范的一些或全部要求对应的程度。在一些实施例中,用于评估新创作的内容的该信息可以标识或定义一个或多个难度级别和/或可以标识或定义一个或多个可接受的难度级别。在一些实施例中,例如,用于评估新创作的内容的该信息可以定义多个难度级别并且可以在这些难度级别之间描绘,并且在一些实施例中,用于评估新创作的内容的该信息可以标识确定的难度级别中的哪一个是可接受的。在其他实施例中,用于评估新创作的内容的该信息可以仅包括可接受的难度级别的一个或多个定义,该可接受的难度级别可以基于一个或多个预先存在的困难度量,诸如,例如,项目反应理论(irt)值,诸如,例如,irtb值、表示一组响应中的正确响应的比例的p值、年级水平等。

在一些实施例中,用于评估新创作的内容的该信息可以进一步定义一个或多个分化和/或区分级别和/或定义一个或多个可接受的分化和/或区分级别或范围。如本文所使用的,“分化”和“区分”是指诸如问题的项目标识低能力用户与高能力用户的程度。在一些实施例中,用于评估新创作的内容的该信息可以标识一个或多个可接受的区分级别和/或范围,该级别和/或范围可以基于一个或多个当前存在的区分测量,诸如,例如,点二列相关。

定价数据存储304可以包括用于确定用于提供对内容分发网络100和/或网络100内的各个内容资源的访问的支付金额的定价信息和/或定价结构。在一些情况下,可以基于用户对内容分发网络100的访问(例如,基于时间的订阅费、或基于网络使用和/或交易量的定价)来确定定价。在其他情况下,定价可以依赖特定内容资源。某些内容资源可以具有相关联的定价信息,而其他定价确定可以基于所访问的资源、用户的简档和/或帐户以及期望的访问级别(例如,访问持续时间、网络速度等)。另外,定价数据存储304可以包括与内容资源组的汇编定价(诸如,用于资源分组的组价格和/或价格结构)有关的信息。

许可证数据存储305可以包括与内容分发网络100内的内容资源的许可证和/或许可有关的信息。例如,许可证数据存储305可以标识内容服务器112中的各个内容资源和/或内容资源的汇编的许可证和许可条款、内容资源的权利持有者和/或公共或大规模权利持有者信息,诸如内容服务器112中未包括的内容的权利持有者的联系信息。

内容访问数据存储306可以包括内容分发网络100的访问权利和安全信息以及特定内容资源。例如,内容访问数据存储306可以包括可以在对网络100的用户登录尝试期间验证的登录信息(例如,用户标识符、登录、密码等)。内容访问数据存储306也可以用于存储分配的用户角色和/或用户访问级别。例如,用户的访问级别可以对应于允许用户访问的内容资源集和/或客户端或服务器应用。基于某些用户的订阅级别、培训项目、课程/年级等,某些用户可以会被允许或拒绝访问某些应用和资源。某些用户可以具有对于一个或多个终端用户的监督访问,允许主管访问所有或部分的终端用户的内容、活动、评估等。此外,某些用户可以对于内容管理网络100中的一些用户和/或一些应用具有管理访问,从而允许这些用户添加和删除用户帐户,修改用户访问权限,在软件和服务器上执行维护更新等。

源数据存储307可以包括与通过内容分发网络可用的内容资源的源有关的信息。例如,源数据存储307可以标识内容资源的作者和发端设备、先前的数据片和/或源自相同作者或发端设备的数据组等。

评估数据存储308可以包括用于指示内容管理网络100中的用户和内容资源的评估的信息。在一些实施例中,评估数据存储308可以包含,例如,用于评估用户(例如,受训者/学生、游戏用户、媒体内容消费者等)和/或用于评估网络100中的内容资源的分析标准和分析指南。评估数据存储308也可以包括与评估处理任务有关的信息,例如,标识已经接收到某些内容资源或访问某些应用的用户和用户设备106,内容资源、用户或应用的评估或评估历史的状态等。评估标准可以被存储在评估数据存储308中,包括形式为一个或多个电子规则或评分指导的数据和/或指令,用于评估内容、用户或应用。评估数据存储308也可以包括用户、内容和应用的过去评估和/或评估分析,包括相对排名、特征、解释等。

模型数据存储309(在本文中也称为模型数据库309)可以存储与一个或多个预测模型有关的信息。在一些实施例中,这些一个或多个预测模型可以用于:生成学生用户未实现一个或多个预定结果的风险的预测;生成对学生用户的分类的预测,该分类可以指示对学生用户的一个或多个干预的预期效果;和/或生成任何标识的干预的优先级预测。

在一些实施例中,风险模型可以包括基于例如一个或多个计算机学习技术的一个或多个预测模型。在一些实施例中,风险模型可以用于为学生生成风险值,该风险值表征学生用户未达到预定结果(诸如,例如,未能完成课程或学习课程,未能毕业,未能达到期望的分数或等级等)的风险。在一些实施例中,风险模型可以包括例如决策树学习模型。在一些实施例中,风险模型可以通过将一个或多个参数输入到风险模型中来生成风险值,该参数可以是一个或多个值。可以基于学生用户的一个或多个特征或属性生成这些参数。已经接收到输入参数的风险模型然后可以生成风险值。

在一些实施例中,分类模型可以确定学生用户的分类。在一些实施例中,分类模型可以用于生成标识学生用户的分类的一个或多个分类值或标识符。在一些实施例中,该分类可以对应于干预增加或减少风险值的可能性。在一些实施例中,分类可以包括干预降低风险值的第一分类、干预增加风险值的第二分类、以及干预不会影响风险值的第三分类。在一些实施例中,该第三分类可以被进一步划分为第一组和第二组,在第一组中,无论干预,学生用户将可能无法达到期望的结果,在第二组中,无论干预,学生用户将可能达到期望的结果干预。在一些实施例中,分类模型可以通过将与学生用户相关的一个或多个参数输入到分类模型中来确定学生用户的类别。在一些实施例中,这些参数可以从学生用户的一个或多个特征或属性生成,其可以例如从与学生用户有关的数据中提取。

在一些实施例中,优先级模型可以确定优先级值,该优先级值可以是对任何确定的干预的重要性的预测。在一些实施例中,可以基于与确定了优先级值的学生用户有关的信息来确定该优先级模型。在一些实施例中,该优先级值可以受到例如与风险值相关联的课程的值的影响。在一些实施例中,例如,优先级值可以指示非必要课程中的风险的较低优先级。在这样的实施例中,可以基于课程的学分,基于课程与例如学位或专业的相关性,基于课程的作用作为后续课程的先修课程等等确定优先级。

除了上述说明性数据存储之外,一个或多个数据存储服务器104(例如,数据库服务器、基于文件的存储服务器等)可以包括一个或多个外部数据聚合器310。外部数据聚合器310可以包括能够由内容管理网络100访问但是不由内容管理网络100维护的第三方数据源内容管理网络100。外部数据聚合器310可以包括与内容分发网络100的用户、内容资源或应用有关的任何电子信息源。例如,外部数据聚合器310可以是包含人口统计数据、教育相关数据、消费者销售数据、健康相关数据等的第三方数据存储。说明性外部数据聚合器310可以包括,例如,社交网络web服务器、公共记录数据存储、学习管理系统、教育机构服务器、商业服务器、消费者销售数据存储、医疗记录数据存储等。从各种外部数据聚合器310检索的数据可以被用于验证和更新用户帐户信息,建议用户内容,以及执行用户和内容评估。

现在参考图4,示出了说明内容分发网络100内的一个或多个内容管理服务器102的实施例的框图。如上所述,一个或多个内容管理服务器102可以包括管理内容分发网络100内的内容资源并向各种用户设备106上的用户提供交互式和自适应内容的各种服务器硬件和软件组件。例如,一个或多个内容管理服务器102可以向内容分发网络100内的其他设备提供指令并从内容分发网络100内的其他设备接收信息,以便管理和传输在网络100内的内容资源、用户数据和服务器或执行的客户端应用。

内容管理服务器102可以包括内容定制系统402。可以通过使用内容分发网络100内的专用硬件(例如,内容定制服务器402)或通过使用共享内容管理服务器102内的指定的硬件和软件资源来实现内容定制系统402。在一些实施例中,内容定制系统402可以调整内容资源的选择和自适应能力以匹配用户接收内容的需求和期望。例如,内容定制系统402可以查询各种数据存储和服务器104以检索用户信息,诸如,用户偏好和特征(例如,从用户简档数据存储301)、对内容资源的用户访问限制(例如,从内容访问数据存储306)、先前用户结果和内容评估(例如,从评估数据存储308)等。基于从数据存储104和其他数据源检索的信息,内容定制系统402可以修改针对各个用户的内容资源。

在一些实施例中,内容管理系统402可以包括推荐引擎,本文中也称为自适应推荐引擎。在一些实施例中,推荐引擎可以选择一条或多条内容(本文中也称为数据包),用于提供给用户。可以基于例如从数据库服务器104(包括,例如,用户简档数据库301、内容库数据库303、模型数据库309等)检索的信息来选择这些数据包。在一个实施例中,例如,推荐引擎可以从用户简档数据库301检索标识例如用户的技能水平的信息。推荐引擎可以进一步从内容库数据库303检索信息,该信息标识例如用于向用户提供的潜在数据包以及那些数据包的难度和/或与这些数据包相关联的技能水平。

推荐引擎可以使用证据模型来生成对一个或多个用户提供对一些或所有潜在数据包的期望响应的可能性的预测。在一些实施例中,推荐引擎可以将一个或多个数据包与选择标准配对,该选择标准可以用于基于来自该学生用户的一个或多个接收到的响应来确定应该将哪个包递送给学生用户。在一些实施例中,如果预测指示期望响应的可能性太高或者期望响应的可能性太低,则可以从潜在数据包池中消除一个或多个数据分组。在一些实施例中,推荐引擎然后可以将一个或多个选择标准应用于剩余的潜在数据包以选择用于提供给用户的数据包。这些一个或多个选择标准可以基于,例如,与用于接收对数据包的响应的期望估计时间、一个或多个内容参数、一个或多个分配参数等有关的标准。

内容管理服务器102也可以包括用户管理系统404。可以使用内容分发网络100内的专用硬件(例如,用户管理服务器404)、或者使用共享内容管理管理服务器102内的指定的硬件和软件资源来实现用户管理系统404。在一些实施例中,用户管理系统404可以通过各种类型的内容资源和组(诸如,媒体汇编、培训或教育环境中的课程或课程体系、交互式游戏环境等)来监视用户的进度。例如,用户管理系统404可以查询一个或多个数据库和/或数据存储服务器104以检索用户数据,诸如,相关联的内容汇编或程序、内容完成状态、用户目标、结果等。

内容管理服务器102也可以包括评估系统406,本文中也称为响应处理器。可以使用内容分发网络100内的专用硬件(例如,评估服务器406),或者使用共享内容管理服务器102内的指定硬件和软件资源来实现评估系统406。评估系统406可以被配置为用于接收和分析来自用户设备106的信息。例如,可以汇编和分析用户提交的内容资源的各种评级,然后将其存储在与内容相关联的数据存储(例如,内容库数据存储303和/或评估数据存储308)中。在一些实施例中,评估服务器406可以分析信息以便利用例如主题、年龄组、技能水平等确定内容资源的有效性或适当性。在一些实施例中,评估系统406可以利用网络100内的一个或多个内容资源或资源组的属性向内容定制系统402或用户管理系统404提供更新。评估系统406也可以接收和分析来自用户设备106、管理员设备110和管理员服务器116等的用户评估数据。例如,评估系统406可以接收、聚合和分析不同类型的用户(例如,终端用户、主管、管理员等)在不同的环境(例如,媒体消费者评级、受训者或学生理解水平、教师效率水平、游戏者技能水平等)中的用户评估数据。

在一些实施例中,评估系统406可以进一步被配置为用于从用户接收一个或多个响应并且确定一个或多个响应是正确响应(本文中也称为期望的响应)还是不正确响应(本文中也称为不期望的响应)。在一些实施例中,可以由评估系统406生成一个或多个值以反映用户响应一个或多个数据包的表现。在一些实施例中,这些一个或多个值可以包括针对一个或多个响应和/或数据包的一个或多个分数。

内容管理服务器102也可以包括内容递送系统408。可以通过使用内容分发网络100内的专用硬件(例如,内容递送服务器408)、或通过使用共享的内容管理服务器102内的指定的硬件和软件资源来实现内容递送系统408。内容递送系统408可以包括呈现引擎,该呈现引擎可以是例如在内容传送系统上运行的软件模块。

内容递送系统408(本文中也称为呈现模块或呈现引擎)可以从内容定制系统402和/或从用户管理系统404接收内容资源,并且将资源提供给用户设备106。内容递送系统408可以基于用户特征和偏好和/或用户设备106的设备能力来确定内容资源的适当呈现格式。如果需要,内容递送系统408可以在传输之前将内容资源转换为适当的呈现格式和/或压缩该内容。在一些实施例中,内容递送系统408也可以确定用于传输内容资源的适当传输介质和通信协议。

在一些实施例中,内容递送系统408可以包括专用安全和集成硬件410、以及相应的软件组件,以便实现适当的安全特征内容传输和存储,提供支持的网络和客户端访问模型,并且支持网络的性能和可扩展性需求。安全和集成层410可以包括上面在图2中讨论的安全和集成组件208的一些或全部,并且可以控制到用户设备106、管理员设备110、管理服务器116以及网络100内的其他设备的和来自用户设备106、管理员设备110、管理服务器116以及网络100内的其他设备的内容资源和其他数据的传输,以及请求和内容交互的接收。

现在参考图5,示出了说明性计算机系统的框图。系统500可以对应于上述内容分发网络100的任何计算设备或服务器,或者本文描述的任何其他计算设备,并且具体地,可以包括例如用户设备106、管理员设备110和/或服务器102、104、108、112、114、116中的任意服务器中的一个或多个。在该示例中,计算机系统500包括处理单元504,该处理单元504通过总线子系统502与多个外围子系统通信。这些外围子系统包括,例如,存储子系统510、i/o子系统526和通信子系统532。

总线子系统502提供用于使计算机系统500的各种组件和子系统彼此按需通信的机制。虽然总线子系统502被示意性地示为单条总线,但是总线子系统的替换实施例可以利用多条总线。总线子系统502可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任一种的局部总线。这样的体系结构包括,例如,工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线和外围部件互连(pci)总线(可以实现为按照ieeep1386.1标准制造的夹层(mezzanine)总线)。

处理单元504控制计算机系统500的操作,处理单元504可以实现为一个或多个集成电路(例如,传统的微处理器或微控制器)。一个或多个处理器(包括单核和/或多核处理器)可以被包括在处理单元504中。如图所示,处理单元504可以实现为一个或多个独立处理单元506和/或508,其中每个处理单元中包括单核或多核处理器和处理器高速缓存。在其他实施例中,处理单元504也可以实现为四核处理单元或更大的多核设计(例如,六核处理器、八核处理器、十核处理器或更大)。

处理单元504可以执行体现在程序代码中的各种软件过程,并且可以维护多个同时执行的程序或过程。在任何给定时间,将被执行的程序代码中的一些或所有可以驻留在一个或多个处理器504中和/或驻留在存储器子系统510中。在一些实施例中,计算机系统500可以包括一个或多个专用处理器,诸如,数字信号处理器(dsp)、外置处理器、图形处理器、专用处理器等。

i/o子系统526可以包括用于一个或多个用户界面输入设备和/或用户界面输出设备530的设备控制器528。用户界面输入和输出设备530可以与计算机系统500(例如,集成音频/视频系统、和/或触摸屏显示器)集成,或者可以是能够从计算机系统500连接/拆卸的独立外围设备。i/o子系统526可以通过将一个或多个电信号转换为用户可感知的和/或可解释的形式来向用户提供一个或多个输出,并且可以通过基于用户引起的与i/o子系统的一个或多个交互(诸如,按下按键或按钮,移动鼠标,与触摸屏或触控板的交互,声波与话筒的交互等)生成一个或多个电信号来从用户接收一个或多个输入。

输入设备530可以包括键盘,诸如鼠标或轨迹球的指示设备、结合到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、话筒和其他类型的输入设备。输入设备530也可以包括三维(3d)鼠标、操纵杆或指点杆、游戏手柄和图形输入板、以及音频/视觉设备(诸如,扬声器)、数码相机、数字便携式摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3d扫描仪、3d打印机、激光测距仪和眼睛注视跟踪设备。附加输入设备530可以包括,例如,运动感测和/或姿势识别设备、眼镜姿势识别设备、语音识别感测设备、医学成像输入设备、midi键盘、数字乐器等,运动感测和/或姿势识别设备使得用户能够使用姿势和口头命令通过自然用户界面控制输入设备并与输入设备交互,眼睛姿势识别设备检测来自用户的眼睛活动并且将眼睛姿势转换为到输入设备的输入,语音识别感测设备使得用户能够通过语音命令与语音识别系统交互。

输出设备530可以包括一个或多个显示子系统、指示灯或诸如音频输出设备等之类的非可视显示器。显示子系统可以包括,例如,阴极射线管(crt)显示器、平板设备(诸如,那些使用液晶显示器(lcd)或等离子显示器)、发光二极管(led)显示器、投影设备、触摸屏等。通常,术语“输出设备”的使用旨在包括用于从计算机系统500向用户或其他计算机输出信息的所有可能类型的设备和机制。例如,输出设备530可以包括但不限于可视地传达文本、图形和音频/视频信息的各种显示设备,诸如,监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。

计算机系统500可以包括一个或多个存储子系统510,包括用于存储数据和程序指令的硬件和软件组件,诸如,系统存储器518和计算机可读存储介质516。系统存储器518和/或计算机可读存储介质516可以存储能够在处理单元504上加载和执行的程序指令以及在执行这些程序期间产生的数据。

根据计算机系统500的配置和类型,系统存储器318可以被存储在易失性存储器(诸如,随机存取存储器(ram)512)和/或非易失性存储驱动器514(诸如,只读存储器(rom)、闪存等)中。ram512可以包含处理单元504可立即访问和/或当前正在操作和执行的数据和/或程序模块。在一些实施例中,系统存储器518可以包括多个不同类型的存储器,诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)。在一些实施例中,包含诸如在启动期间帮助在计算机系统500内的元件之间传输信息的基本例程的基本输入/输出系统(bios)通常可以被存储在非易失性存储设备514中。作为示例而非限制,系统存储器518可以包括应用程序520(诸如,客户端应用、web浏览器、中间级应用、服务器应用等)、程序数据522和操作系统524。

存储子系统510也可以提供一个或多个有形计算机可读存储介质516,用于存储提供一些实施例的功能的基本编程和数据构造。当由处理器执行时提供本文描述的功能的软件(程序、代码模块、指令)可以被存储在存储子系统510中。这些软件模块或指令可以由处理单元504执行。存储子系统510也可以提供用于存储根据本发明使用的数据的存储库。

存储子系统300也可以包括可以进一步连接到计算机可读存储介质516的计算机可读存储介质读取器。一起并且可选地,与系统存储器518组合,计算机可读存储介质516可以综合表示远程、本地、固定的和/或可移动的存储设备加上用于临时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。

包含程序代码或程序代码的部分的计算机可读存储介质516可以包括本领域已知或已使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于存储和/或传输信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。这可以包括有形的计算机可读存储介质,诸如,ram、rom、电子可擦除可编程rom(eeprom)、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或其他有形计算机可读介质。这也可以包括非有形的计算机可读介质,诸如,数据信号、数据传输、或可以用于传输所期望的信息并且可以由计算机系统500访问的任何其他介质。

仅作为示例,计算机可读存储介质516可以包括从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器,从可移动、非易失性磁盘中读取或向其写入的磁盘驱动器,以及从诸如cdrom、dvd、和光盘或其他光学介质等可移动、非易失性光盘中读取或向其写入的光盘驱动器。计算机可读存储介质516可以包括但不限于驱动器、闪存卡、通用串行总线(usb)闪存驱动器、安全数字(sd)卡、dvd盘、数字录像带等。计算机可读存储介质516也可以包括基于非易失性存储器的固态驱动器(ssd)(诸如,基于闪存的ssd、企业级闪存驱动器、固态rom等)、基于易失性存储器的ssd(诸如,固态ram、动态ram、静态ram、基于dram的ssd、磁阻ram(mram)ssd)以及使用dram和基于闪存的ssd组合的混合ssd。盘驱动器及其相关联的计算机可读介质可以提供计算机可读指令、数据结构、程序模块、和用于计算机系统500的其它数据的非易失性存储。

通信子系统532可以通过一个或多个通信网络(包括,局域网(lan)、广域网(wan)(例如,因特网)和各种无线电信网络)提供来自计算机系统500和外部计算设备的通信接口。如图5所示,通信子系统532可以包括,例如,一个或多个网络接口控制器(nic)534(诸如,以太网卡、异步传输模式nic、令牌环nic等)以及一个或多个更多无线通信接口536(诸如,无线网络接口控制器(wnic)、无线网络适配器等)。如图5所示,通信子系统532可以包括,例如,一个或多个位置确定特征538,诸如,一个或多个导航系统特征和/或接收器等。附加地和/或替代地,通信子系统532可以包括一个或多个调制解调器(电话、卫星、电缆、isdn)、同步或异步数字用户线(dsl)单元、接口、接口等。通信子系统536也可以包括用于访问无线语音和/或数据网络的射频(rf)收发器组件(例如,使用蜂窝电话技术、高级数据网络技术(诸如,3g、4g或edge(用于全球进化的增强数据速率)、wifi(ieee802.11家庭标准)或其他移动通信技术,或其任何组合)、全球定位系统(gps)接收器组件和/或其他组件。

通信子系统532的各种物理组件可以是通过计算机网络、总线等耦合到计算机系统500的可拆卸组件,并且/或者可以物理地集成到计算机系统500的主板上。通信子系统532也可以全部或部分地由软件实现。

在一些实施例中,通信子系统532也可以代表可以使用或访问计算机系统500的一个或多个用户以结构化和/或非结构化数据馈送、事件流、事件更新等的形式接收输入通信。例如,通信子系统532可以被配置为用于从社交网络和/或其他通信服务的用户实时接收数据馈送、诸如丰富站点摘要(rss)馈送的web馈送和/或来自一个或多个第三方信息源(例如,数据聚合器310)的实时更新。附加地,通信子系统532可以被配置为用于以连续数据流的形式接收数据,其可以包括实时事件和/或事件更新的事件流(例如,传感器数据应用、金融股票、网络性能测量工具、点击流分析工具、汽车交通监控等)。通信子系统532可以将这样的结构化和/或非结构化数据馈送、事件流、事件更新等输出到可以与耦合到计算机系统500的一个或多个流数据源计算机通信的一个或多个数据存储104。

由于计算机和网络的不断变化的性质,图中描绘的计算机系统500的描述仅旨在作为具体示例。具有比图中描绘的系统更多或更少组件的许多其他配置是可能的。例如,也可以使用定制硬件,并且/或者特定元件可以以硬件、软件或其组合来实现。此外,可采用通向诸如网络输入/输出设备之类的其它计算设备的连接。基于本申请中提供的公开和教导,本领域普通技术人员将理解用于实现多个实施例的其它途径和/或方法。

现在参考图6,示出了描绘通信网络的一个实施例的框图。具体地,图6描绘了一种硬件配置,其中通过通信网络120在源中枢602和终端中枢606之间交换消息,通信网络120可以包括一个或多个中间中枢604。在一些实施例中,源中枢602可以内容分发网络的生成并发起消息的发送的任何一个或多个组件,并且终端中枢606可以是内容分发网络100的接收并且不重新发送消息的任何一个或多个组件。在一些实施例中,例如,源中枢602可以是用户设备106、管理员设备110和/或服务器102中的一个或多个,并且终端中枢606同样可以是用户设备106、管理员设备110和/或服务器102中的一个或多个。在一些实施例中,中间中枢604可以包括接收消息并将消息重新发送到下一个节点的任何计算设备。

如在图6中所示,在一些实施例中,中枢602、604、606中的每一个可以与数据存储104通信连接。在这样的实施例中,中枢602、604、606中的一些或全部可以向数据存储104发送标识接收的消息和/或任何发送的或重新发送的消息的信息。在一些实施例中,该信息可以用于确定任何发送的和/或接收的消息的完整性和/或验证终端中枢606接收的任何消息的准确性和完整性。

在一些实施例中,通信网络120可以由中间中枢604形成。在一些实施例中,通信网络120可以包括单个中间中枢604,并且在一些实施例中,通信网络120可以包括多个中间中枢。在一个实施例中,例如,如图6所示,通信网络120包括第一中间中枢604-a和第二中间中枢604-b。

现在参考图7,示出了描绘用户设备106和管理员设备110通信的一个实施例的框图。在一些实施例中,例如,用户可以具有可以与内容分发网络100连接以发送或接收信息的多个设备。在一些实施例中,例如,用户可以具有个人设备,诸如,移动设备、智能电话、平板电脑、智能手表、膝上型电脑、pc等。在一些实施例中,其他设备可以是除了个人设备之外的任何计算设备。该其他设备可以包括,例如,膝上型电脑、pc、智能电话、平板电脑、智能手表等。在一些实施例中,其他设备与个人设备的不同之处在于,个人设备在内容分发网络100内注册为个人设备,而其他设备未在内容分发网络100内注册为个人设备。

具体参考图7,用户设备106可以包括个人用户设备106-a和一个或多个其他用户设备106-b。在一些实施例中,个人用户设备106-a和一个或多个其他用户设备106-b中的一个或两个可以通信地连接到内容管理服务器102和/或导航系统122。类似地,管理员设备110可以包括个人管理员设备110-a和一个或多个其他管理员设备110-b。在一些实施例中,个人管理员设备110-a和一个或多个其他管理员设备110-b中的一个或两个可以通信地连接到内容管理服务器102和/或导航系统122。

在一些实施例中,内容分发网络可以通过例如通信网络120向一个或多个用户设备106和/或一个或多个管理员设备110发送一个或多个警报。在一些实施例中,警报的接收可以导致启动在接收设备内的应用,并且在一些实施例中,警报可以包括链接,该链接在被选择时启动应用或者将链接的选择器的设备的web浏览器导航到与警报相关联的页面或门户。

在一些实施例中,例如,提供该警报可以包括标识与学生用户相关联的一个或多个用户设备106和/或学生用户账户和/或与主管用户相关联的一个或多个管理员设备110和/或主管用户账户。在标识出这些一个或多个设备106、110和/或帐户之后,提供该警报可以包括基于确定设备106、110和/或帐户中的哪些是正在被活跃地使用的来确定设备106、110中的活跃设备,然后向该活跃设备提供警报。

具体地,如果用户正在活跃地使用诸如其他用户设备106-b和其他管理员设备110-b之类的设备106、110中的一个和/或账户,则可以通过正在被活跃地使用的该其他设备106-b、110-b和/或账户向用户提供警报。如果用户不在活跃地使用其他设备106-b、110-b和/或账户,则可以标识个人设备106-a、110-a设备(诸如,智能手机或平板电脑),并且警报可以被提供给该个人设备106-a、110-a。在一些实施例中,警报可以包括用于指示默认设备提供所接收警报的指示符(例如,警报的接收的听觉、触觉或视觉指示符)的代码。

在一些实施例中,警报的接收方设备106、110可以提供警报的接收的指示。在一些实施例中,警报的呈现可以包括控制i/o子系统526,以例如提供警报的接收的听觉、触觉和/或视觉指示符。在一些实施例中,这可以包括控制管理员设备110的屏幕以显示警报、警报中包含的数据和/或警报的指示符。

现在参考图8,示出了图示用于数据管理的过程440的一个实施例的流程图。在一些实施例中,过程440可以由内容管理服务器102执行,并且更具体地由内容递送系统408和/或由呈现模块或呈现引擎执行。过程440开始于框442,其中,标识数据包。在一些实施例中,数据包可以是用于提供给学生用户的数据包,并且可以通过确定接下来向用户(诸如,学生用户)提供哪个数据包来标识数据包。在一些实施例中,该确定可以由内容定制引擎402和/或推荐引擎执行。

在已经标识了数据包之后,过程440前进到框444,其中请求数据包。在一些实施例中,这可以包括请求与数据包有关的信息,诸如,形成数据包的数据。在一些实施例中,可以从例如内容库数据库303请求该信息。在已经请求了数据包之后,过程440前进到框446,其中接收数据包。在一些实施例中,数据包可以由内容递送系统408从例如内容库数据库303接收。

在已经接收了数据包之后,过程440前进到框448,其中标识一个或多个数据组件。在一些实施例中,例如,数据包可以包括一个或多个数据组件,其可以例如包含不同的数据。在一些实施例中,这些数据组件中的一个(本文中称为呈现组件)可以包括用于向学生用户提供的内容,该内容可以包括一个或多个请求和/或问题等。在一些实施例中,这些数据组件中的一个(本文中称为响应组件)可以包括在对响应于数据包,并且具体地响应于呈现组件和/或呈现组件的一个或多个请求和/或问题,从用户设备106接收的一个或多个响应进行评估中使用的数据。因此,在一些实施例中,数据包的响应组件可以用于确定用户是否已提供了期望的响应或不期望的响应。

在已经标识了数据组件之后,过程440前进到框450,其中标识递送数据包。在一些实施例中,递送数据包可以包括用于通过用户设备106递送给用户(诸如,学生用户)的数据包的一个或多个数据组件。在一些实施例中,递送包可以包括呈现组件,并且在一些实施例中,递送包可以排除响应包。在已经生成递送数据包之后,过程440前进到框452,其中递送数据包被提供给用户设备106,并且更具体地,提供给视图模块674。在一些实施例中,这可以包括通过例如通信网络120向用户设备106提供递送数据包。

在已经将递送数据包提供给用户设备106之后,过程440前进到框454,其中将数据包和/或其一个或多个组件发送到和/或提供给响应处理器678。在一些实施例中,这种将数据包和/或其一个或多个组件发送到响应处理器可以包括:从学生用户接收响应,并在将数据包和/或其一个或多个组件发送到响应处理器的同时将来自学生用户的响应发送到响应处理器。在一些实施例中,例如,这可以包括将响应组件提供给响应处理器。在一些实施例中,响应组件可以从内容传递系统408提供给响应处理器。

现在参考图9,示出了图示用于评估响应的过程460的一个实施例的流程图。在一些实施例中,该过程可以由评估系统406执行。在一些实施例中,过程460可以由评估系统406响应于直接或间接地从用户设备106接收到响应来执行。

过程460开始于框462,其中通过例如通信网络120从例如用户设备106接收响应。在已经接收到响应之后,过程460前进到框464,其中数据包与接收到响应相关联。在一些实施例中,这可以包括接收数据包的全部或一个或多个组件,诸如,例如,数据分包的响应组件。在一些实施例中,可以由响应处理器从呈现引擎接收数据包。

在已经接收了数据包之后,过程460前进到框466,其中标识响应类型。在一些实施例中,可以基于数据(诸如,与响应相关联的元数据)来执行该标识。在其他实施例中,可以基于数据包信息(诸如,响应组件)来执行该标识。

在一些实施例中,响应类型可以标识数据包(诸如,例如请求和/或问题类型)的一个或多个请求和/或问题的一个或多个属性。在一些实施例中,这可以包括将一个或多个请求和/或问题中的一些或全部标识为对/错、多选、简答、问答等。

在标识出响应类型之后,过程460前进到框468,其中比较数据包和响应以确定响应是否包括期望的响应和/或不期望的响应。在一些实施例中,这可以包括比较接收的响应和数据包以确定接收的响应是否匹配数据包的响应组件的全部或部分,以确定接收的响应与响应组件的全部或部分匹配的程度,以确定接收的响应体现在数据包的响应组件中标识的一个或多个质量的程度等。在一些实施例中,这可以包括根据一个或多个规则对响应进行分类。在一些实施例中,这些规则可以用于将响应分类为期望的或不期望的。在一些实施例中,这些规则可以用于标识响应中证明的一个或多个错误和/或误解。在一些实施例中,这可以包括,例如:使用自然语言处理软件和/或算法;使用一个或多个数字辞典;使用词形还原软件、词典和/或算法;等等。

在比较了数据包和响应之后,过程460前进到框470,其中确定响应合意性。在一些实施例中,这可以包括,基于数据包和响应的比较结果,响应是期望的响应还是不期望的响应。在一些实施例中,这可以进一步包括量化响应是期望响应的程度。该确定可以包括,例如,确定响应是正确响应、不正确响应、部分正确响应等。在一些实施例中,响应合意性的确定可以包括生成表征响应合意性的值以及将该值存储在数据库104(诸如,例如,用户简档数据库301)中的一个中。在确定了响应合意性之后,过程460前进到框472,其中生成评估值。在一些实施例中,评估值可以是表征一个或多个响应的响应合意性的总值。该评估值可以被存储在数据库104(诸如,用户简档数据库301)中的一个中。

现在参考图10,示出了内容分发网络100(具体地,递送网络800)的一个实施例的示意图。在一些实施例中,递送网络800可以被配置为用于将内容安全地递送到用户设备106并且安全地接收来自用户设备106的输入。在一些实施例中,例如,该内容可以包括形成一个或多个测试的一个或多个问题。根据本文公开的方法和系统的内容和/或内容作者或维护的递送可以通过防止对传输到用户设备的有意义的测试或问题数据的拦截、对从用户设备传输的有意义的回答数据的拦截、和/或用户设备106内的屏幕抓取来增加内容安全性。

递送网络包括位于测试中心107中的一个或多个用户设备106和一个或多个管理员设备110。设备106、110每个与云802通信连接,云802可以代表一个或多个云计算服务和/或云计算。递送网络800可以包括一个或多个服务器804和一个或多个数据库806,其可以诸如通过例如通信网络通过因特网与设备106,110通信连接。在一些实施例中,一个或多个服务器804和/或一个或多个数据库806可以位于云802中。

如图10所示,用户设备106可以包括在用户设备106内启动,更具体地,可以在用户设备106的操作系统内启动和/或操作的第一虚拟机801。用户设备106可以进一步包括在第一虚拟机801内启动和/或操作的第二虚拟机803。如本文所使用的,虚拟机是计算机系统的仿真,其可以例如基于计算机架构并提供物理计算机的功能。虚拟机801、803中的一个或两个可以是系统虚拟机(完全虚拟化虚拟机)或程虚拟机。

在一些实施例中,第一虚拟机801和第二虚拟机803中的一个或两个可以包括生态系统适配器,该生态系统适配器可以是例如非持久性生态系统适配器。生态系统适配器可以被配置为用于在用户设备106和内容驱动器808和/或云802之间建立和维护授权客户端连接。在一些实施例中,该连接可以连接非托管用户设备106和托管云802主机环境。在一些实施例中,该适配器可以包括被配置为用于通过用户数据报协议(udp)(诸如,远程显示协议,包括例如)创建和/或允许通信的软件和/或功能,将到i/o子系统526的和来自i/o子系统526的信号重定向以允许内容驱动器808和/或云802控制以下的全部或部分:i/o子系统526、包含第一虚拟机801和第二虚拟机803的软件等。

包括虚拟机801、803可以增加递送给用户设备106的内容的安全性。具体地,在一些实施例中,第一虚拟机和第二虚拟机中的每一个可以包括能够执行一个或多个期望的内容递送功能的特征、能力和/或软件,并且第一虚拟机801和第二虚拟机803都不包括能够执行与一个或多个期望的内容递送功能无关和/或能够便于访问、窃取和/或破坏递送的内容的任何功能的特征、能力和/或软件。通过控制第一虚拟机801和第二虚拟机803的能力,使用户设备106的用户访问、破坏和/或窃取所递送的内容的能力最小化。此外,因为第二虚拟机803在第一虚拟机801内操作,所以第二虚拟机803被隔离和/或保护免受用户设备106的任何软件、特征、能力、功能等的影响。

在一些实施例中,例如,第一虚拟机801内的第二虚拟机803的操作可以防止数据抓取,包括例如从用户设备106对第二虚拟机803的屏幕抓取和/或屏幕记录。在进行这种尝试的事件中,数据抓取尝试将仅收集递送到第一虚拟机801的数据。更具体地,在尝试对从用户设备106发起的递送内容进行屏幕抓取的情况下,对第一虚拟机801的显示进行抓取的结果显示不包括递送内容,但是在一些实施例中,可以仅提供黑色图像。因此,使用在第一虚拟机801内的第二虚拟机803使递送到第二虚拟机以及通过第二虚拟机递送的内容与用户设备106的功能、能力、操作、软件等隔离。进一步,作为功能,可以控制第一虚拟机801的功能、操作、软件等,可以限制通过第一虚拟机801访问递送的内容的能力。

在一些实施例中,第一虚拟服务器801和第二虚拟服务器803可以被配置为用于由例如一个或多个服务器804进行远程更新。在一些实施例中,第一虚拟服务器801和第二虚拟服务器803可以进一步配置为允许第一虚拟服务器801和第二虚拟服务器803在其上操作的用户设备106的修改和/或操作。

一个或多个服务器804可以包括图1中所示的服务器102、112、114、116中的任意服务器,或者一个或多个服务器804可以与图1中所示的服务器102、112、114、116不同。在一些实施例中,一个或多个服务器804可以从递送网络800的其他组件发送和接收信号,并根据计算机代码执行一个或多个处理任务,该计算机代码可以例如存储在与一个或多个服务器804通信的存储器中或者被包括在一个或多个服务器804中。

一个或多个数据库806可以包括与数据库服务器104相同或相似的组件。在一些实施例中,一个或多个数据库806可以位于云802中。一个或多个数据库可以包括用于通过一个或多个用户设备106呈现给用户的内容。

递送网络800可以包括内容驱动器808,其可以是例如启动测试驱动器。在一些实施例中,内容驱动器808可以是硬件或软件模块。在内容驱动器808是软件模块的实施例中,内容驱动器808可以驻留在一个或多个服务器804上和/或由一个或多个服务器804实现。在一些实施例中,内容驱动器808可以位于云中。

内容驱动器808可以被配置为用于指示和/或控制向测试中心107的内容的递送。在一些实施例中,内容驱动器指示和/或控制向用户设备106(具体地,向在用户设备106上操作的第二虚拟机803)的内容的传送。有利地,向第二虚拟机的内容的递送防止被用于窃取和访问递送的内容的用户设备106的任何软件或功能的使用。在一些实施例中,内容驱动器808可以被配置为用于接收访问测试的请求,控制用户设备106启动一个或多个虚拟机,识别用于递送的测试,选择用于递送的问题,基于所选择的问题生成图像,基于所生成的图像将像素数据传输到用户设备。内容驱动器808可以进一步在用户设备106处接收与一个或多个用户输入相对应的信号,并且内容驱动器808可以从这些接收的信号形成一个或多个响应和/或回答。在一些实施例中,内容驱动器808可以标识和/或检索来自数据库806的一个或多个测试和/或一个或多个问题。

递送网络800可以进一步包括评估模块810。在一些实施例中,评估模块810可以是硬件或软件模块。在评估模块810是软件模块的实施例中,评估模块810可以驻留在一个或多个服务器804上和/或由一个或多个服务器804实现。在一些实施例中,评估模块810可以位于云802中。

评估模块810可以从内容驱动器808接收响应和/或回答信息,并且可以评估所接收的响应和/或回答信息。在一些实施例中,这可以包括,例如,确定所接收的响应和/或回答信息是否对应于正确和/或期望的响应和/或回答,或者替代地确定所接收的响应和/或回答信息是否对应于错误的响应和/或回答。在一些实施例中,这可以包括从数据库806检索与对应于所接收的回答和/或响应的问题相关联的评估信息。在一些实施例中,例如,评估模块810可以接收与响应和/或回答相对应的数据,并且可以将所接收的数据与从数据库806接收和/或检索的评估信息进行比较。评估模块810可以基于接收的数据和评估信息的比较来生成接收的响应和/或回答的分数。该分数可以与提供了响应和/或回答的用户相关联。

在一些实施例中,内容驱动器808和评估模块810中的一个或两个可以驻留在一对虚拟机内,该对虚拟机包括在第一虚拟机801内部操作的第一机器801和第二机器803。在一些实施例中,当内容正在从内容驱动器808递送到用户设备106时,该通信可以在包含内容驱动器808和评估模块810中的一个或两个的一对虚拟机(具体地,该对虚拟机中的第二虚拟机803和用户设备的第二虚拟机803)之间。在一些实施例中,该通信可以通过诸如osi或tcp/ip的分层协议模型,或者通过诸如远程显示协议(包括,例如,)的用户数据报协议(udp)。

递送网络800可以进一步包括后端系统812。在一些实施例中,可以在后端系统812中生成用于递送到测试中心107,具体地,递送到测试中心中的用户设备106的内容,然后可以由后端系统812向云802和/或一个或多个服务器804和数据库806提供。在一些实施例中,后端系统812可以包括后端服务器814和后端数据库816,后端服务器814可以是图1中所示的服务器102、112、114、116中的一个或多个,后端数据库816可以是图1中所示的数据库服务器104等。后端数据库816可以与云802通信连接,使得可以从后端系统812(具体地,从后端数据库816)接收存储在云802中(具体地,在数据库806中)的内容。

后端系统812可以进一步包括创建网络818。在一些实施例中,创建网络818可以是后端系统812的一部分,其中生成、创建和/或编辑内容。在一些实施例中,创建网络818可以包括一个或多个工作站、服务器、数据库、存储器等,其可以由一个或多个内容作者用来创建、生成、编辑和/或存储新内容。由创建网络818生成的内容可以被存储在数据库816中。在一些实施例中,该创建网络可以通过分层协议模型(诸如osi或tcp/ip)或者通过用户数据报协议(udp)(诸如,远程显示协议,包括例如pcoip)与数据库816和/或云802的组件通信。在这样的实施例中,该通信协议可以增加内容创作中的通信的安全性。

现在参考图11,示出了图示用于呈现内容的过程900的一个实施例的流程图。在一些实施例中,过程900可以由包括用户设备106的递送网络800的一个或多个组件来执行。

过程900开始于框902,其中,接收启动信号。在一些实施例中,启动信号可以由用户设备106从云802和/或从内容驱动器808接收。在已经接收到启动信号之后,过程900前进到框904,其中启动第一虚拟机801。在一些实施例中,第一虚拟机801可以在用户设备106中启动,并且具体地在用户设备106的操作系统内启动。

在已经启动第一虚拟机801之后,过程900前进到框906,其中启动第二虚拟机803。在一些实施例中,第二虚拟机803可以在第一虚拟机801中和/或从第一虚拟机801的操作系统启动。作为第二虚拟机803的启动的一部分,可以在用户设备106和云802之间和/或在用户设备106和内容驱动器808之间建立通信连接。在一些实施例中,可以在内容驱动器808和第二虚拟机803之间建立该通信连接。这种连接可以是安全连接和/或基于分层协议模型(诸如osi或tcp/ip协议组)或者通过用户数据报协议(udp)(诸如,远程显示协议,包括例如)的连接。

在已经启动第二虚拟机803之后,过程900前进到框908,其中在第二虚拟机803处接收到像素数据。在一些实施例中,可以通过基于分组协议模型或通过udp的连接从内容驱动器808接收该像素数据。在一些实施例中,该像素数据可以包括识别一个或多个像素的数据以及控制该像素的照射(例如,该像素的颜色和/或亮度)的数据。在一些实施例中,像素数据可包括编码的像素数据。

在已经接收像素数据之后,过程900前进到框910,其中基于接收的像素数据形成和/或显示图像。在一些实施例中,这可以包括,例如,第二虚拟机803对接收的像素数据的解码,基于像素数据生成一个或多个信号以控制与第二虚拟机803相关联的显示和/或屏幕,以及基于像素数据利用这些一个或多个信号控制显示和/或屏幕以显示和/或形成图像。

在显示和/或形成图像之后,过程900前进到框912,其中接收用户输入信号。在一些实施例中,可以通过例如与用户设备106相关联的键盘、鼠标、触摸屏、话筒等和/或通过用户设备的i/o子系统526来接收该用户输入信号。在一些实施例中,可以响应于形成和/或显示的图像来接收该用户输入信号。在提供给用户设备的内容包括测试的实施例中,接收的用户输入可以对应于用于开始、停止或推进测试和/或对测试中的问题或提示的回答的输入。

在已经接收到用户输入信号之后,过程900前进到框914,其中用户输入信号被中继到内容驱动器808和/或评估模块810。在一些实施例中,内容驱动器808和/或评估模块810可以基于一个或多个接收的用户输入信号生成响应,然后可以评估该响应。

现在参考图12,示出了图示用于发起内容递送的过程1000的一个实施例的流程图。过程1000可以由递送网络800的全部或部分执行,并且具体地由云802、服务器804和/或内容驱动器808的全部或部分执行。在一些实施例中,过程1000的执行可以导致发起到用户设备106的内容递送。

过程1000开始于框1002,其中接收连接请求。在一些实施例中,连接请求可以由例如服务器804和/或内容驱动器808在云802接收。在一些实施例中,可以从主管设备110接收到连接请求。在已经接收到连接请求之后,过程1000前进到框1004,其中接收到认证信息。在一些实施例中,可以由例如服务器804和/或内容驱动器808在云802从主管设备110接收到认证信息。在一些实施例中,认证信息可以包括由此可以认证主管设备110的用户和/或由此可以认证主管设备的信息。在一些实施例中,这可以包括,例如,提供标识主管设备的用户的信息,诸如,例如,登录、密码、用户名、唯一用户标识符等。在一些实施例中,由此可以认证主管设备110的信息可以包括例如设备标识符,该设备标识符包括例如基于主管设备100的一个或多个属性的标识符,诸如,例如散列值。在一些实施例中,可以通过通信网络120执行测试中心107与云802或其组件之间的通信。

在已经接收到认证信息之后,过程1000进行到确定状态1006,其中确定认证是否成功。在一些实施例中,这可以包括由服务器800和/或内容驱动器808确定所接收的认证信息是否标识有效用户和/或主管设备110。如果确定认证不成功,则该过程1000前进到框1008,并且终止云802和/或云802的组件与包括主管设备110的测试中心107之间的通信。

再次返回到确定状态1006,如果认证成功,则过程1000进行到确定状态1010,其中确定是否从主管设备110接收到连接请求。在一些实施例中,这可以包括确定认证信息标识主管设备110还是用户设备106。如果确定从主管设备110接收到连接请求,则过程1000前进到框1012,其中启动登记过程。在一些实施例中,登记过程可以包括由此标识和登记预期的内容接收者以便可以提供预期给该接收者的内容的过程。登记过程可以由云802或其组件(包括服务器804和/或内容驱动器808)启动。

在一些实施例中,登记过程的启动可以包括从主管设备110请求登记数据,并且更具体地,将登记数据的请求发送到主管设备110。在一些实施例中,该登记数据可以包括,例如,预期接收者的照片、预期接收者的签名、预期接收者的名字、与预期接收者相关联的生物特征数据诸如例如手掌静脉模板等。如本文所使用的,手掌静脉模板指的是基于预期接收者身体的一部分(诸如,例如,预期接收者的手掌)中的静脉或血管的图案而产生的一个或多个值或字符串(诸如,散列)。在一些实施例中,可以以编码像素数据的形式发送对登记数据的请求,该编码像素数据可以在主管设备106的显示器上被转换成图像。具体地,在一些实施例中,模板(包括手掌静脉模板)可以从主管设备110发送到包括服务器804和/或内容驱动器808的云802的全部或部分。模板可以是加密的二进制文件,其可以例如通过诸如通过隧道通信的通信来传输。

在启动登记过程之后,过程1000前进到框1014,其中接收登记数据。在一些实施例中,登记数据可以由云802和/或其组件(诸如,服务器804和/或内容驱动器808)从例如主管设备110接收。在一些实施例中,登记数据作为一个或多个电信号被接收,该电信号对应于对主管设备和/或连接到主管设备的两个设备的用户输入。在一些实施例中,登记数据可以包括:与预期接收者的照片相对应的数据、与接收者的签名相对应的数据、与预期接收者的名字相对应的数据、与生物特征测量相对应的数据,诸如例如,预期接受者的手掌静脉等。在登记数据包括手掌静脉模板的实施例中,可以将手掌静脉模板与手掌静脉模板的数据库进行比较,以确定和/或验证预期接收者的身份。

在已经接收到登记数据之后,过程1000进行到确定状态1016,其中确定登记是否有效。在一些实施例中,这可以包括将接收的登记数据与先前接收的数据进行比较并识别预期用户。在一些实施例中,例如,为用户安排诸如测试的内容递送,可以收集该用户的登记数据并将其存储在例如数据库806中。在在块1014接收登记数据之后,可以将这个新接收的登记数据与先前存储的登记数据进行比较。如果新接收的登记数据与先前存储的登记数据之间不匹配,则登记无效,并且过程1000前进到框1018,其中终止连接并且/或者其中提供将不会递送内容的通知。

次返回到确定状态1016,如果确定登记有效,则过程1000前进到框1020,其中启动内容驱动器。在一些实施例中,可以在接收到内容驱动器的启动信号时启动内容驱动器。在一些实施例中,内容驱动器的启动可以包括对其启动内容驱动器的用户设备的标识。在一些实施例中,内容驱动器808的启动可以进一步包括将值与启动内容驱动器808的用户和/或用户设备106中的一个或多个相关联。在一些实施例中,该值可以存储在数据库806中。在一些实施例中,内容驱动器的启动可以进一步包括生成指示用户设备106启动第一虚拟机和第二虚拟机的信号。

再次返回到确定状态1010,如果确定没有从主管设备1010接收到连接请求,则过程1000前进到框1022并继续到图11的框1102。

现在参考图13和14,示出了图示用于内容递送的过程1100的一个实施例的流程图。过程1100可以由递送网络800的全部或部分执行,并且具体地由云802、服务器804和/或内容驱动器808的全部或部分执行。在一些实施例中,过程1100的执行可以导致向用户设备106的用户安全地递送内容以及从用户设备106的用户安全地接收用户输入。

过程1100开始于框1102,其中确定是否从用户设备106(本文中也称为内容设备)接收到在框1002中接收的连接请求。在一些实施例中,可以基于在框1004中接收的认证信息来做出该确定。如果确定没有从用户设备106接收到连接请求,则过程1100前进到框1104,其中终止连接。

再次返回确定状态1102,如果确定从用户设备106接收到连接请求,则过程1100进行到确定状态1106,其中确定内容驱动器808是否已经被启动。在一些实施例中,这可以包括根据框1020的步骤确定内容驱动器808是否已经被启动。在一些实施例中,确定内容驱动器808是否已经被启动可以包括确定指示用户和/或用户设备106的内容驱动器808的启动的值是否被存储在数据库806中。如果确定没有启动内容驱动器,则过程1100前进到框1104,其中终止与用户设备106的连接。

再次返回确定此昂状态1106,如果确定内容驱动器已经被启动,则过程1100前进到框1108,其中选择用于递送给用户设备106的用户的内容。在一些实施例中,这可以包括从数据库806检索标识用于递送给用户设备106的用户的内容的信息和/或检索用于从数据库递送给用户设备106的用户的内容。在一些实施例中,该内容可以包括测试、测验等。

在已经选择了用于递送给用户设备的用户的内容之后,过程1100前进到框1110,其中识别和/或选择该内容的子集。在内容包括测试的实施例中,内容的子集可以包括该测试中的一个或多个问题。在一些实施例中,可以基于例如用户的技能水平或预期技能水平、预定的顺序或排序从与测试相关联的多个问题中选择一个或多个问题,或者可以从与测试相关联的问题中随机选择这些一个或多个问题。

已经选择了内容的子集之后,过程1100前进到框1112,其中确定和/或生成用于内容的子集的图像。在一些实施例中,这可以包括生成由用户设备106向用户显示的图像。在一些实施例中,该生成的图像可以基于从用户设备106接收的信息,诸如,例如,用户设备106的显示、屏幕或监视器的大小和/或宽高比,用户设备106的颜色设置、颜色能力和/或分辨率等。在一些实施例中,可以生成图像以便基于从用户设备106接收的该信息由用户设备106适当地显示。

在生成图像之后,过程1100前进到框1114,其中生成像素数据。在一些实施例中,可以为在框1112中生成的图像中的一些或所有像素生成该像素数据。在一些实施例中,像素数据可以包括指示关联像素的一个或多个期望的照明方面的数据,包括,例如,颜色、亮度等。在一些实施例中,可以对像素数据进行编码和/或加密,可以根据一个或多个已知的像素编码方案来执行编码和/或加密。在一些实施例中,可以利用位于内容驱动器808处的编解码器对像素数据进行编码和/或加密,并且可以在由用户设备106接收时通过用户设备106上的编解码器(并且具体地,通过位于用户设备106上的第二虚拟机803中的编解码器)对像素数据顺序地解码。

在已经生成像素数据之后,过程1100前进到框1116,其中像素数据由内容驱动器808发送到用户设备106。在一些实施例中,该像素数据可以具体地从内容驱动器808发送到用户设备106的第二虚拟机803。在一些实施例中,可以通过基于分组协议模型或通过udp由内容驱动器808发送该像素数据。在一些实施例中,第二虚拟机803可以接收像素数据并且可以基于像素数据生成图像并且通过i/o子系统526向用户设备106的用户显示图像。

在已经发送像素数据之后,过程1100前进到框1118,其中从用户设备106并且具体地从第二虚拟机803接收一个或多个响应输入和/或响应信号。在一些实施例中,这些响应输入和/或响应信号对应于由用户设备106的i/o子系统526接收的用户输入。这些响应信号和/或响应输入可以由内容驱动器808通过分层协议模型或通过udp接收。在一些实施例中,这些响应信号可以通过用户设备的重定向软件传送,该重定向软件可以允许远程控制用户设备的i/o子系统526的组件。在已经接收到响应输入之后,过程1100前进到框1120并继续到图14的框1122。

在框1122,从框1118中接收的响应输入和/或响应信号生成一个或多个响应。在一些实施例中,这可以由内容驱动器808执行。在一些实施例中,可以将生成的响应提供给评估模块810。在一些实施例中,响应的生成可以包括一个或多个响应输入的聚合以及那些一个或多个响应输入的存储。在一些实施例中,响应的生成可以包括确定那些一个或多个响应输入对用户界面中的一个或多个字段、图标、按钮等的影响。在一些实施例中,例如,响应输入可以包括利用鼠标或跟踪板的输入以及鼠标或跟踪板按钮的点击。这些输入可以覆盖在生成响应输入时向用户显示的一个或多个图标、字段、按钮等上。该覆盖可以用于确定用户的响应,该响应可以是例如按钮的选择和/或点击、字段的选择以及该选择字段中的文本输入、一个或多个单词的选择、图像、文本或文本字符串等。

在生成一个或多个响应之后,过程1100前进到框1124,其中检索评估数据。在一些实施例中,例如,存储在数据库806中的内容和/或测试可以与评估数据相关联,在一些实施例中,评估数据可以同样存储在数据库中。可以通过例如内容驱动器808和/或评估模块810从数据库接收和/或检索该评估数据。

在已经接收和/或检索评估数据之后,过程1100前进到框1126,其中评估在框1102中生成的响应。在一些实施例中,这可以包括将生成的响应与检索的评估数据进行比较,以确定响应是否是正确的响应和/或期望的响应和/或响应是正确响应和/或期望响应的程度。该评估可以由评估模块810执行。

在评估响应之后,过程1100前进到框1128,其中存储响应评估。在一些实施例中,这可以包括存储指示响应是否是正确回答/或期望响应和/或响应是正确和/或期望响应的程度的一个或多个值。在一些实施例中,响应评估可以存储在数据库806中。

在存储了响应评估之后,过程1100进行到确定状态1130,其中确定是否已经递送了所有内容,并且在一些实施例中,确定测试是否完成。该确定可以由内容驱动器808进行。如果确定了测试完成和/或所有内容已经被递送,则过程1100可以前进到框1132,其中与用户设备106的连接(具体地,与第二虚拟机803的连接)终止。在一些实施例中,这可以包括向用户提供内容递送和/或测试的完整性的指示。

再次返回到确定状态1130,如果确定内容递送未完成和/或测试未完成,则过程1100前进到框1134,其中选择下一个内容子集和/或下一个问题。在一些实施例中,这可以基于已经提供给用户的内容和/或问题和/或尚未提供给用户的内容和/或问题,与框1110的步骤相似地执行。在已经选择了下一个问题之后,过程1100前进到框1136并返回到图13的框1112。

还可以使用所公开的实施例的许多变化和修改。以上说明书中给出了具体细节以提供对实施例的透彻理解。然而,应当理解,可以在没有这些具体细节的情况下实践实施例。例如,公知的电路、过程、算法、结构和技术可以未示出不必要的细节以免湮没本描述。

上述技术、框、步骤和方法的实现可以以各种方式完成。例如,这些技术、框、步骤和方法可以用硬件、软件或其组合来实现。对于硬件实现,处理单元可以在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、设计成执行本文中所描述功能的其他电子单元或其组合内实现。

而且注意到,实施例可以被描述为过程,其被绘制成流程图、流图、游图、数据流图、结构图或框图。尽管描绘可以将操作描述为按次序的过程,但很多操作可以并行地或同时地进行。另外,可以重新排列操作的顺序。过程在其操作完成时终止,但可能有其他步骤未包含在图中。过程可对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止对应于该函数返回调用方函数或主函数。

此外,各实施例可由硬件、软件、脚本语言、固件、中间件、微代码、硬件描述语言和/或其任何组合来实现。当在软件、固件、中间件、脚本语言和/或微代码中实现时,执行必要任务的程序代码或代码段可被存储在诸如存储介质之类的机器可读介质中。代码段或机器可执行指令可以表示规程、函数、子程序、程序、例程、子例程、模块、软件包、脚本、类、或是指令、数据结构、和/或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数和/或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以通过任何合适的方式传递、转发或传输,包括存储器共享、消息传递、令牌传递、网络传输等。

对于固件和/或软件实现,这些方法体系可以用执行本文中所描述功能的模块(例如,规程、函数等等)来实现。任何有形地实施指令的机器可读介质可被用来实现本文所描述的方法体系。例如,软件代码可以存储在存储器中。存储器可以在处理器内或在处理器外部实现。如本文所使用的,术语“存储器”是指任何类型的长期、短期、易失性、非易失性、或其他存储介质,而并不限于任何特定类型的存储器或存储器数目、或记忆存储在其上的介质的类型。

此外,如本文中所揭示的,术语“存储介质”可以表示用于存储数据的一个或多个存储器,包括只读存储器(rom)、随机存取存储器(ram)、磁ram、磁芯存储器、磁盘存储介质、光学存储介质、闪存设备、和/或其他用于存储信息的机器可读介质。术语“机器可读介质”包括但不限于便携式或固定存储设备、光学存储设备和/或能够存储包含或携带一个或多个指令和/或数据的各种其他存储介质。

虽然以上结合具体装置和方法描述了本公开的原理,但是应该清楚地理解,该描述仅通过示例的方式进行,而不是作为对本公开范围的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1