CN111788600A - 用于教室环境中的进度跟踪的软件框架 - Google Patents
用于教室环境中的进度跟踪的软件框架 Download PDFInfo
- Publication number
- CN111788600A CN111788600A CN201980016106.1A CN201980016106A CN111788600A CN 111788600 A CN111788600 A CN 111788600A CN 201980016106 A CN201980016106 A CN 201980016106A CN 111788600 A CN111788600 A CN 111788600A
- Authority
- CN
- China
- Prior art keywords
- progress
- identifier
- service
- tracking information
- progress tracking
- 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
Links
- 238000009826 distribution Methods 0.000 claims abstract description 247
- 230000000694 effects Effects 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims abstract description 89
- 230000008569 process Effects 0.000 claims abstract description 45
- 230000008520 organization Effects 0.000 claims description 38
- 230000004044 response Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 20
- 238000001914 filtration Methods 0.000 claims description 15
- 238000007726 management method Methods 0.000 description 26
- 239000008186 active pharmaceutical agent Substances 0.000 description 20
- 230000002452 interceptive effect Effects 0.000 description 12
- 239000000463 material Substances 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 238000013475 authorization Methods 0.000 description 8
- 230000036541 health Effects 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013503 de-identification Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000269821 Scombridae Species 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 235000020640 mackerel Nutrition 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000009528 vital sign measurement Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/08—Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations
- G09B5/14—Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations with provision for individual teacher-student communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/02—Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/08—Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B7/00—Electrically-operated teaching apparatus or devices working with questions and answers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Tourism & Hospitality (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Electrically Operated Instructional Devices (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本专利申请涉及一种客户端‑服务器架构,所述客户端‑服务器架构使得能够进行与由教师生成的分配相关的进度跟踪。分发可包括指定提交占位符的附件和/或将作为所述分配的一部分的由学生执行的活动。可使用第三方应用程序来执行一些活动,所述第三方应用程序实现软件框架的至少一部分,所述软件框架的至少一部分使得所述应用程序生成向在客户端设备的后台执行的守护进程提供的进度跟踪信息。所述守护进程和/或客户端应用程序与一个或多个网络服务进行交互以使教师能够利用所述进度跟踪信息。所述网络服务可包括用于生成分配给一组学生的分发的分发服务。所述网络服务还可包括进度流水线,所述进度流水线包括被配置为处理从多个客户端设备接收的进度跟踪信息的多个服务。
Description
技术领域
所述实施方案整体涉及被配置为在教室环境中实现各种技术的软件框架。更具体地,本发明的实施方案涉及跟踪和报告与多个学生的在线分配的完成进度相关的信息。
背景技术
自从发明了音频视频(AV)设备诸如电视、投影系统和录音机以来,学区和教师便将这些设备结合到他们的课程计划中,利用这些设备来以全新且有趣的方式向学生提供信息。教师传授知识不仅限于教科书、讲义和书面分配。随着信息化时代的到来,互联网已经打开了课堂教学的新世界。现在教师可从海量的信息资源中获取信息,以便开发有趣且有效的交互式课程计划。
然而,教师在开发这些课程计划时可用的工具有限。例如,一篇文章可能会提供关于特定科目的有用背景资料。然而,教师可能无法很好地与其学生共享这篇文章。将这些教学资料分发给学生的传统方式是教师可将这篇文章打印在纸上。然而,这种方式不仅造成了资源浪费,而且丢失了在线呈现的文章的交互式元素(例如,动画、超链接等)中的一些元素。另选地,教师可通过电子邮件将这篇文章的超链接发送给其学生中的每个学生,以供学生在家中或由学校提供的计算设备上阅读该文章。虽然此类方法允许学生在适当上下文中阅读该文章以与嵌入该文章中的交互式元素进行交互,但是教师既无法跟踪每个学生是否打开了超链接,也无法跟踪甚至每个学生是否真的阅读了整篇文章。
发明内容
本文描述了涉及客户端-服务器架构的各种实施方案,该客户端-服务器架构实现与教师所生成的分配相关的进展跟踪。分发可包括指定提交占位符的附件和/或将作为所述分配的一部分的由学生执行的活动。可使用第三方应用程序来执行一些活动,所述第三方应用程序实现软件框架的至少一部分,所述软件框架的至少一部分使得所述应用程序生成向在客户端设备的后台执行的守护进程提供的进度跟踪信息。所述守护进程和/或客户端应用程序与一个或多个网络服务进行交互以使教师能够利用所述进度跟踪信息。所述网络服务可包括用于生成分配给一组学生的分发的分发服务。所述网络服务还可包括进度流水线,所述进度流水线包括被配置为处理从多个客户端设备接收的进度跟踪信息的多个服务。
在一些实施方案中,客户端设备包括处理器、存储器和显示器。存储器可包括操作系统、客户端应用程序、守护进程和一个或多个第三方应用程序,此类应用程序包括实现软件框架的至少一部分的至少一个进度应用程序。软件框架使进度应用程序能够生成与进度应用程序向客户端应用程序和/或守护进程提供的一个或多个上下文相关的进度跟踪信息。上下文通常定义进度应用程序的至少一部分的结构,使得客户端应用程序可定义进度应用程序内的学生可完成的活动。
在一些实施方案中,守护进程作为后台进程执行,并且被配置为从一个或多个应用程序接收进度跟踪信息,对该进度跟踪信息进行过滤,将该进度跟踪信息存储在远程数据库中,生成与该进度跟踪信息相关联的元数据,并将该元数据传输到至少一个服务。守护进程还可以实现同步机制,该同步机制将本地存储在客户端设备上的资源的版本与存储在远程数据库中的版本协调。同步机制使资源能够在两个或更多个客户端设备上被访问。
在一些实施方案中,软件框架使进度应用程序生成传输到守护进程的包括进度跟踪信息的API调用。守护进程可被配置为基于针对一个或多个进度应用程序是启用进度跟踪还是禁用进度跟踪来对该进度跟踪信息进行过滤。另选地,守护进程可被配置为基于活动上下文的列表来对进度跟踪信息进行过滤。
在一些实施方案中,远程数据库是分配到存储不同数据的多个区域中的基于网络的存储服务,每个区域的范围被限制为组织标识符、类标识符、用户标识符、上下文标识符或分发标识符中的至少一者的任何组合。对应于进度跟踪信息的元数据由守护进程生成并传输到进度流水线。元数据包括对远程数据库中的进度跟踪信息的引用以及类标识符、分发标识符、用户标识符或上下文标识符中的至少一者。
在一些实施方案中,进度流水线包括流水线架构中结构化的多个服务。进度流水线可包括被配置为执行以下操作的可接入服务:接收对应于进度跟踪信息的元数据;通过用目录服务标识符或内部标识符替换用户标识符来对包括在元数据中的用户标识符取消引用;确定针对用户标识符、目录服务标识符或内部标识符中的一者是启用进度跟踪还是禁用进度跟踪;以及基于该确定来对元数据进行过滤。进度流水线可包括富集服务,该富集服务被配置为:利用组织标识符、目录服务标识符、用户标识符或分发标识符中的至少一者来富集元数据。进度流水线可包括汇总器服务,该汇总器服务被配置为:从包括至少一个日志节点的分布式文件系统检索与跟踪窗口对应的元数据的子集,生成包括与包括在元数据的子集中的特定组织标识符相关联的元数据的子集的数据结构,将该数据结构存储在存储器中,并且将对应于该数据结构的引用推送到队列中。进度流水线可包括可退出服务,该可退出服务被配置为:处理数据结构以基于类标识符、分发标识符、上下文标识符、用户标识符、目录服务标识符或内部标识符中的至少一者来生成经排序的元数据。进度流水线可包括存放服务,该存放服务被配置为:将进度跟踪信息与和用户标识符或目录服务标识符中的一者相关联的进度标识符相关联;以及将进度跟踪信息和进度标识符存储在基于网络的存储服务中。
客户端-服务器架构和/或软件框架(单独地或组合地)可使教师和学生能够使用包含一个或多个第三方应用程序的功能的交互式课程计划进行交互以增强学习体验。根据结合以举例的方式示出所述实施方案的原理的附图而进行的以下详细描述,本发明的其他方面和优点将变得显而易见。
提供本发明内容仅用于概述一些示例性实施方案的目的,以便提供对本文所述主题的一些方面的基本理解。因此,应当理解,上述特征仅为示例,并且不应解释为以任何方式缩窄本发明所描述的主题的范围或实质。本文所描述的主题的其它特征、方面和优点将通过以下具体实施方式、附图和权利要求书而变得显而易见。
附图说明
本公开通过下面结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构元件。
图1示出了根据一些实施方案的被设计成在教室环境内操作的网络环境。
图2示出了根据一些实施方案的被实现为启用教室环境中的客户端设备的进度跟踪的客户端-服务器架构。
图3示出了根据一些实施方案的客户端应用程序的图形用户界面。
图4示出了根据一些实施方案的分发服务与客户端应用程序和/或守护进程之间的客户端-服务器关系。
图5示出了根据一些实施方案的由守护进程实现的同步机制。
图6A至图6E示出了根据一些实施方案的客户端应用程序的图形用户界面。
图7示出了根据一些实施方案的分发服务与和班级中的多个学生相关联的多个客户端应用程序和/或守护进程之间的客户端-服务器关系。
图8A至图8C示出了根据一些实施方案的由客户端应用程序在与学生相关联的客户端设备上实现的图形用户界面。
图9示出了根据一些实施方案的提交服务与班级中多个学生的多个客户端应用程序和/或守护进程之间的客户端-服务器关系。
图10示出了根据一些实施方案的进度流水线和客户端应用程序和/或守护进程之间的客户端-服务器关系。
图11示出了根据一些实施方案的守护进程对进度跟踪信息的过滤。
图12示出了根据一些实施方案的进度流水线。
图13示出了根据一些实施方案的报告服务与客户端应用程序和/或守护进程之间的客户端-服务器关系。
图14A至图14B示出了根据一些实施方案的客户端应用程序的图形用户界面。
图15是根据一些实施方案的用于跟踪客户端设备上的学生活动的方法的流程图。
图16是根据一些实施方案的用于利用通过网络可用的一个或多个服务来处理进度跟踪信息的方法的流程图。
图17示出了根据一些实施方案的可被用于实现本文所述的各种装置和/或方法的示例性计算设备的详细视图。
具体实施方式
在该部分描述了根据本申请的方法与装置的代表性应用。提供这些示例仅为了添加上下文并有助于理解所描述的实施方案。因此,对于本领域的技术人员而言将显而易见的是,可在没有这些具体细节中的一些或全部的情况下实践所述实施方案。在其他情况下,为了避免不必要地模糊所述实施方案,未详细描述熟知的处理步骤。其他应用是可能的,使得以下示例不应被当作是限制性的。
在以下具体实施方式中,参考了形成说明书的一部分的附图,并且在附图中以例示的方式示出了根据所述实施方案的具体实施方案。虽然这些实施方案被描述得足够详细,以使本领域的技术人员能够实践所述实施方案,但是应当理解,这些示例不是限制性的;使得可以使用其他实施方案,并且可以在不脱离所述实施方案的实质和范围的情况下作出修改。
数字教室为学生提供了在丰富的交互式应用程序环境中学习的新机会,该交互式应用程序安装在提供给学生的计算设备上。虽然设备可允许学生与通过浏览器访问或通过专门应用程序提供的在线信息进行交互,但是由于跟踪这些活动比较困难,因此对这些活动的益处通常会丢失。因此,需要用于将这些教学资料结合到统一的教室架构中的新技术。
教室环境可为教师和学生提供多个设备和应用程序,该设备和应用程序使教师能够使用这些应用程序分配学生活动,这些学生活动可被教师轻易监视。教师创建分发以分配给学生,这些学生结合了由实现软件框架的一个或多个第三方应用程序提供的上下文所定义的活动。第三方应用程序被配置为跟踪学生完成与这些上下文相关联的活动的进度并向设备的后台进程提供进度跟踪信息。后台进程和/或客户端应用程序可与被设计成处理进度跟踪信息的一个或多个网络服务进行交互。可查询经处理的进度跟踪信息以生成报告数据以显示给教师,该教师可示出分配了分发的学生中的每个学生的进度。
以下参考图1至图17来论述这些实施方案和其他实施方案;然而,本领域的技术人员将容易地理解,本文相对于这些附图的所给出的详细描述仅出于说明性目的并且不应理解为限制性的。
图1示出了根据一些实施方案的被设计成在教室环境内操作的网络环境100。该网络环境100包括被配置为通过网络150进行通信的多个独立且不同的计算设备。网络环境100包括服务器设备110和客户端设备120。如图1所示,客户端设备120可包括但不限于膝上型计算机120-1和120-5、平板电脑120-2、120-3和120-4以及移动设备120-6。应当理解,网络环境100可包括其他类型的客户端设备120,诸如台式计算机、可穿戴设备(例如,智能手表)、个人数字助理等。
在本文中可使用以下术语。班级是指定期会面以被教授特定科目或活动的一组个体。班级可包括一个或多个教师以及登记在该班级中的多个学生。教室环境是指与班级相关联的一组用户所利用的一组相关设备。学校是指由一组教师教授的多个班级的管理集合。学区是指管理一个或多个学校的组织。
在一些实施方案中,教师利用一个或多个设备将资料分发给班级内的学生。如图1所示,教师可利用膝上型计算机诸如客户端设备120-1或平板电脑诸如客户端设备120-2来为学生创建资料。在一些实施方案中,膝上型计算机和/或平板电脑包括被配置为给学生创建交互式分配的应用程序。这些分配可包括获取通过网络150可用的资料的链接,诸如连接可从第一服务器设备110-1访问到的网站或获取存储在第二服务器设备110-2上的文档的超链接。该应用程序还可使教师能够轻易地将该分配分配给学生。学生可利用平板电脑诸如客户端设备120-3和120-4、膝上型计算机诸如客户端设备120-5和/或移动设备诸如客户端设备120-6来访问分配并查看包括在每个分配中的资料。
在一些实施方案中,第三服务器设备110-3托管由包括在各种客户端设备120上的应用程序利用的一个或多个服务。例如,第三服务器设备110-3可托管用于上传定义分配给基于网络存储资源的分配的数据结构或文件的服务。又如,第三服务器设备110-3可托管跟踪哪些客户端设备120注册到特定教室环境的服务。再如,第三服务器设备110-3可托管跟踪与特定分配对应的每个学生的进度的服务。在一些实施方案中,应用程序所利用的服务可被托管在多于一个服务器设备110上。此外,服务可由不同的服务提供方托管。例如,由第一服务提供方维护的第一服务器设备110可被配置为托管基于网络存储服务,并且由第二服务提供方维护的第二服务器设备110-2可被配置为托管学校管理服务。
下文描述了由教室环境内的各种客户端设备120执行的应用程序的软件框架。此外,下文描述了由本文所述的应用程序利用并托管在一个或多个服务器设备110上的各种服务。
图2示出了根据一些实施方案的被实现为启用教室环境中的客户端设备120的进度跟踪的客户端-服务器架构200。客户端-服务器架构200包括客户端应用程序205,该客户端应用程序在客户端设备120上实现并且被配置为与在服务器设备110上实现的可通过网络150访问的多个服务进行交互。客户端-服务器架构200使教师能够创建分配,该分配包括由安装在客户端设备120上的一个或多个第三方应用程序提供的丰富的交互式资料,并且能够集成对进度的无缝跟踪,使教员能够在保持与课堂中的分配同步的情况下监视学生的努力。
在一些实施方案中,客户端应用程序205是被配置为由包括在客户端设备120中的处理器执行的二进制可执行程序。该二进制可执行程序可被设计成在特定操作环境诸如被设计成执行目标操作系统的目标硬件平台内工作。因此,客户端应用程序205可使用针对不同操作环境编译的源代码的多个版本来实现。例如,客户端应用程序205的第一版本可被设计用于膝上型计算机120-1,并且客户端应用程序205的第二版本可被设计用于平板电脑120-2。
在一些实施方案中,客户端应用程序205被设计成通过网络150与一个或多个服务连接。服务可包括但不限于分发服务220、提交服务230、学校管理服务240、进度流水线250、身份服务260和报告服务270。客户端应用程序205可被配置为经由通过这些服务实现的应用程序编程接口(API)访问服务。例如,基于网络的服务可使用简单对象访问协议(SOAP)或表述性状态转移协议(REST)来实现API,该API使客户端应用程序205能够访问和/或操作与服务相关联的资源。API可使客户端应用程序205能够向服务传输数据和/或接收来自该服务的数据。API调用还可使得服务执行各种操作和/或使用附加的API调用来调用附加的服务。
在其他实施方案中,客户端应用程序205是显示在客户端设备120的浏览器内的基于网络的应用程序。客户端应用程序205可包括从与网站相关联的服务器所请求的一系列资源(例如,超文本标记语言(HTML)文档、图像、脚本等)。该浏览器接收资源并且对该资源进行解析以将该网站的表示显示在显示设备120上。因此,客户端应用程序205与平台无关,因为客户端应用程序205被显示在运行不同操作系统的多个不同的客户端设备120上。
在一些实施方案中,客户端应用程序205通过API网关210与一个或多个服务进行交互。API网关210由服务器设备110实现,并且将从客户端设备120接收的API调用重定向到客户端-服务器架构200中的各种服务。在其他实施方案中,API网关210被省略或选择性地绕过,并且客户端设备120直接向服务传输API调用。
在一些实施方案中,客户端应用程序205使教师能够为班级创建分发。分发是指包括与旨在发布给班级内学生的分配相关的信息的文件或数据结构。分发可包括多个字段,这些字段包括:分发标识符、分配标题、包括针对学生关于如何完成该分配的基于文本的指令的分配主体、分配的截止日期以及与分配相关联的附件列表。可在特定客户端设备120上创建并本地存储该分发。附件可包括文件(例如,文档、图像、视频等)、学生要上交文件的占位符以及学生要完成的作为分配的一部分的活动。使用第三方应用程序来执行该活动,该第三方应用程序实现类工具包软件框架的一部分。该活动的示例可包括但不限于阅读电子书或教科书的章节、参加测验或回答一组问题、跟踪执行任务诸如玩互动式游戏或进行电子实验所花费的时间等。
在一些实施方案中,客户端-服务器架构200包括分发服务220。该分发服务220被配置为管理分发。在一些实施方案中,分发服务220被配置为使在一个客户端设备120上创建的分发与在另一个客户端设备120上创建的分发同步,以使教师能够在多个设备上工作。在一些实施方案中,分发服务220被配置为使分发能够被发布给学生列表。发布分发是指使分发中的信息可供学生在单独的客户端设备120上查看,以及处理与分发的附件相关的各种后端操作。
在一些实施方案中,客户端-服务器架构200还可包括提交服务230。提交是指文件或数据结构的占位符,该提交指示学生被指导创建文件或数据结构以上交以便完成分配。学生可创建文件或数据结构并将该文件或数据结构提交给提交服务230以满足完成分配的要求。
在一些实施方案中,客户端-服务器架构200还可包括学校管理服务240,该学校管理服务被配置为管理学区的与班级结构相关的管理信息。例如,学校管理服务240可维护指示哪些教师被分派到多个班级中的每个班级的记录。该记录还可指示多个班级中的每个班级中登记了哪些学生。每个教师或学生可分别被分配教师标识符或学生标识符。学区创建的每个班级可与类标识符相关联。然后可为每个类标识符创建单独的记录,该记录列出登记在该班级的学生的学生标识符的名单。在一些实施方案中,相关数据库将教师标识符和/或学生标识符与一个或多个表中的类标识符相关联。可使用结构化查询语言(SQL)或一些其他类型的查询语言查询相关数据库以返回识别各个班级结构的信息。
在一些实施方案中,学校管理服务240包括管理界面,该管理界面使学区管理员能够创建班级并指定登记在该班级中的学生。管理界面可以是例如基于网络的界面,其要求管理员提供凭证以更改每个班级的名单。在其他实施方案中,学校管理服务240包括用于从学区与客户端-服务器架构200分开维护的独立且不同的学校信息系统下载数据的界面。班级和名单可从该学校信息系统自动下载。
在一些实施方案中,客户端-服务器架构200还可包括进度流水线250。该进度流水线250提供安全架构,该安全架构用于在学生完成由教师发布的分发中所述的分配时管理与进度跟踪相关的信息。学生的客户端设备120可包括后台进程(即,守护进程),该后台进程被配置为监测与安装在客户端设备120上的一个或多个第三方应用程序相关的活动。守护进程跟踪学生在完成一个或多个已公布的分发中指定的分配的进度并将与每个学生的进度相关的信息传输到进度流水线250。进度流水线250汇总并存储进度信息,以使教师能够查看班级中的一个或多个学生的综合报告。
在一些实施方案中,进度流水线250被实现为在不同服务器设备110上执行的多个独立服务并且被结构化为以流水线方式处理数据流中的进度信息。在其他实施方案中,进度流水线250可利用在单个服务器设备110上执行的多个服务来实现。
在一些实施方案中,客户端-服务器架构200还可包括身份服务260。该身份服务260使得与特定客户端设备120相关的数据能够与教室环境内的特定人群(例如,教师或学生)相关联。在一些实施方案中,身份服务260将各种用户标识符或设备标识符与范围限制在客户端-服务器架构200的服务器端的目录服务标识符相关联。身份服务260的使用通过将守护进程收集的个人识别信息与在特定范围(例如,教室环境)之外使用的任何标识符解除关联来保护数据的完整性。因此,用户在测试中得到的分数等数据不能与上述范围之外的其他信息相绑定,该其他信息比如学生喜欢在同一服务提供方提供的音乐共享服务上收听什么类型的音乐。鉴于大多数学生都是未成年人,此类个人识别信息的完整性尤其重要,在保护某个年龄段的易受伤害用户的数据时,可能需要特别考虑。
在一些实施方案中,目录服务标识符是由特定服务提供方与一个或多个设备的用户相关联的静态标识符。目录服务标识符可与客户端设备用来将用户与特定用户账户相关联的用户标识符相关联。目录服务标识符可与外部标识符相关联,该外部标识符与特定用户账户的用户相关联并且暴露于客户端设备。目录服务标识符可与特定用户的内部标识符相关联。可将内部标识符与目录服务标识符解除关联,然后可将新的内部标识符与该目录服务标识符相关联。在一些实施方案中,用新的内部标识符替换内部标识符可被用于打破某些存储数据与特定用户或用户账户之间的关联,而无需从一个或多个服务器设备110删除数据。
在一些实施方案中,客户端-服务器架构200还可包括报告服务270,该报告服务使得与由多个学生完成的活动的进度相关的汇总数据能够被编译并提供给客户端设备120以供教师审查。报告服务270也可分析从多个学生接收的进度信息以便生成与进度信息相关的统计数据。例如,报告服务270可生成与完成特定活动的学生数量相关的统计数据。报告服务270还可跟踪与活动相关的结果(例如,正确回答测验活动中的问题的数量、完成该测验的时间等)。在其他实施方案中,客户端应用程序205从报告服务270接收关于各个学生的报告数据,并且客户端应用程序205汇总报告数据和/或计算班级的统计数据。
应当理解,客户端应用程序205可被配置为与客户端-服务器架构200中的所述服务中的一些或全部进行交互。例如,客户端应用程序205可被配置为生成对分发服务220、提交服务230、进度流水线250和报告服务270的调用。在一些实施方案中,客户端应用程序205未被配置为与服务诸如学校管理服务240和/或身份服务260的子集进行交互。相反,其他服务可响应于从客户端应用程序205接收到调用而生成对这些服务的调用。
图3示出根据一些实施方案的客户端应用程序205的GUI 300。该GUI 300可在客户端设备120的显示器302上呈现给教师。如图3所示,GUI 300显示在平板电脑诸如客户端设备120-2上。GUI 300可包括多个元素,该多个元素包括图形、文本、图标、形状、输入字段、输出字段、显示区域等。
在一些实施方案中,GUI 300包括第一显示区域310、第二显示区域320和第三显示区域330。第一显示区域310用于显示教师先前创建的分发的表示。第二显示区域320用于显示与特定教师相关联的班级的表示。如图3所示,第一显示区域310占据包括在显示器302中的像素的第一部分,并且第二显示区域320占据包括在显示器302中的像素的第二部分。
第一显示区域310包括标头,该标头指示元素312表示与用户账户相关联的独立且不同的分发。该分发可由教师、管理员或与其他角色相关联的帐户创建。在一些实施方案中,每个元素312由框限定,该框包括分发的标题、与分发相关联的截止日期的描述符以及完成该分发的学生数量的指示。例如,第一元素312-1与针对“动植物”分配的第一分发相关联,该分配的截止日期是3月12日并且已由学生中的全部完成;并且第二元素312-2与针对“测试准备”分配的第二分发相关联,该分配的截止日期是3月15日并且仅由分配了该第二分发的二十二个学生中的七个学生完成。应当理解,在其他实施方案中,元素312可采用不同的形式。例如,元素312可省略截止日期和/或完成指示符。另选地,元素312可包括除截止日期和/或完成指示符之外或代替该截止日期和/或完成指示符的信息。另外,元素312可包括图形诸如表示在分发中分配的不同活动的图像或图标。在一些情况下,图形可被动画化诸如通过播放视频或示出作为元素312背景的附加到分发的图像的幻灯片放映。
第二显示区域320包括标头,该标头指示元素322表示与特定教师的用户帐户相关联的独立且不同的班级。在一些实施方案中,每个元素322由框定义,该框包括班级名称和分配给班级的分发数量的描述符。例如,第一元素322-1与“科学A”班级相关联,该“科学A”班级具有分配的两个分发;第二元素322-2与“数学A”班级相关联,该“数学A”班级具有分配的三个分发;并且第三元素322-3与“数学B”班级相关联,该“数学B”班级不具有分配的分发。应当理解,在其他实施方案中,元素322可采用不同的形式。例如,元素322可省略分配给班级的分发数量的指示符。另选地,元素322可包括除班级名称和分配给该班级的分发数量的指示符之外或代替该班级名称和分配给该班级的分发数量的指示符的信息。例如,元素322可包括登记在该班级中的学生数量。另外,元素322可包括图形诸如图像或被编码以指示与班级相关的特定科目或部门的背景颜色。
在一些实施方案中,教师可使用客户端设备120的输入界面来选择特定班级(或多个班级)。例如,教师可使用触摸界面来选择与可用班级中的一个班级相关联的元素322,该班级与该教师相关联。在选择特定元素322时,所选择的元素322被激活,并且第一显示区域310中的元素312可被更新以反映与由第二显示区域320中的所选择的元素322所表示的班级相关联的分发。突出显示所选择的元素322(例如,当前激活的元素)以指示元素322是活动的。突出显示可通过以下方式来实现:增大该元素的尺寸、改变与元素322相关联的颜色或改变元素322边界的颜色或权重、显示所选择的元素322周围的框等。如图3所示,第一元素322-1被激活并且被示出为大于第二元素322-2和第三元素322-3。
应当理解,在一些实施方案中,第一显示区域310和/或第二显示区域320内可能没有足够的空间来呈现班级中的全部和/或为显示器302的范围内的特定班级分配的分发中的全部。在此类情况下,客户端设备205的用户可使用输入命令诸如触摸手势来显示附加元素。例如,可显示指示一些元素未被显示的图标。附加元素将响应于用户选择图标而被显示在第一显示区域310或第二显示区域320中。又如,在其他元素在特定显示区域内移动或从该特定显示区域移除时,用户可使用轻扫触摸手势水平滚动以显示附加元素。
第三显示区域330位于邻近显示器302的顶部边缘。第三显示区域330包括使客户端应用程序205的用户能够登录到用户帐户、为特定班级生成新的分发或编辑本地存储在客户端设备120上和/或远程存储在服务器设备110上的先前生成的分发的元素。在一些实施方案中,第三显示区域330被隐藏并且可响应于用户输入诸如通过使用竖直轻扫触摸手势来使第三显示区域330未被隐藏而被显示。
第一图标332被显示邻近第三显示区域330的左侧。第一图标332在被用户选择时可使得客户端应用程序205提示用户输入凭证以登录到与教师相关联的用户帐户。在一些实施方案中,第一显示区域310和第二显示区域320被隐藏,直到用户使用第一图标332登录到特定用户账户。在一些实施方案中,在启动客户端应用程序205时,向用户显示单独的界面,该界面提示用户输入凭证以登录到用户账户。一旦用户成功登录到特定用户账户,GUI300仅被显示在显示器302上。然后第一图标332可用于退出用户账户和/或登录不同的用户账户。
第二图标334被显示邻近第三显示区域330的右侧。第二图标334在被用户选择时可使得客户端应用程序205在客户端设备120的文件系统中生成文件或数据结构,以便存储与新分发相关的信息。在一些实施方案中,新文件或数据结构自动与在第二显示区域320中选择的活动班级相关联。然后教师可使用不同的GUI将信息添加至文件或数据结构,这将在下文中参考图6A至图6E更详细地描述。
第三图标336被显示邻近第三显示区域330的右侧。第三图标336在被用户选择时可使得客户端应用程序205检索存储在文件或数据结构中针对先前生成的分发的信息。在一些实施方案中,第一显示区域310中的元素312中的一个被激活,或者基于选择标准自动激活或者响应于用户提供的输入手动激活。例如,可基于当前日期和截止日期之间的最小差值来自动选择要激活的元素312,以用于在激活表示该班级的元素322时针对特定班级存储的所有分发中的单个分发。另选地,可响应于显示器302的对应于特定元素312的区域中的触摸手势输入(例如,轻击输入)而手动选择要激活的元素312。虽然在图3中未明确示出,但是第一显示区域310内的所选择的元素312(例如,当前激活的元素)可被突出显示以指示所选择的元素312是活动的。响应于选择第三图标336,下文参考图6A至图6E更详细地描述不同的GUI,该GUI可由客户端设备120显示并填充有来自与活动元素312相关联的文件或数据结构的数据。
在一些实施方案中,第一显示区域310包括正在准备的分发以及已发布给学生列表的分发的表示。在一些情况下,元素312可包括元素312所表示的分发是已发布还是尚未发布(即,仍由教师准备)的指示。
应当理解,上文所述和图3所示的GUI 300仅仅是为客户端应用程序205设计的GUI的示例性实施方案。在其他实施方案中,用于客户端应用程序205的GUI可采用其他形式。GUI的外观和用户体验还可对应于与特定操作系统或目标环境相关联的标准显示元素。此外,在其他实施方案中,客户端应用程序205是显示在客户端设备120的浏览器中的基于网络的应用程序。在此类实施方案中,GUI 300可包括多个超文本标记语言(HTML)元素,该HTML元素包括在一个或多个HTML文档中。此类元素的表示可取决于客户端设备120中浏览器应用程序的具体实施,并且在一些情况下,取决于与浏览器应用程序相关联的用户偏好。
图4示出了根据一些实施方案的分发服务220与客户端应用程序205和/或守护进程440之间的客户端-服务器关系。分发服务220为教师提供创建分发并将该分发分配给在与该教师相关联的班级中登记的学生列表的方式。如上所述,客户端应用程序205被配置为提示用户提供与用户账户相关联的凭证。如果该用户帐户与教师相关联,则客户端应用程序205使教师能够生成用于在客户端设备120的存储器420内的分发的文件或数据结构。在一些实施方案中,这些文件或数据结构可同步到基于网络的存储服务,这使教师能够访问与来自多个客户端设备120的分发相关的信息。
如图4所示,客户端设备120包括处理器410、显示器302和存储器420。该存储器420包括操作系统430、客户端应用程序205、守护进程440和本地数据库445。守护进程440是实现API的后台进程,该API使客户端应用程序205能够与守护进程440异步通信以执行某些任务。这些任务中的一个操作以在本地数据库445中创建文件。
在一些实施方案中,守护进程440维护本地数据库450。在一些实施方案中,教师可使用客户端应用程序205创建用于分发的新文件或数据结构。客户端应用程序205请求守护进程440在由守护进程440维护的本地数据库450中创建用于分发的文件或数据结构。教师可使用GUI 600填充用于分发的文件或数据结构,如下文参考图6A至图6E更详细地讨论。
在一些实施方案中,守护进程440被配置为将本地数据库450中的文件或数据结构同步到远程数据库460。远程数据库460可以是在多个服务器设备110上实现的分布式数据库,诸如基于云的数据库服务。守护进程440与远程数据库460交互,以便将本地数据库450中的文件或数据结构与文件或数据结构的远程版本同步,使得可使用多个客户端设备120访问和/或修改该文件或数据结构。将在下文参考图5更详细地描述同步机制。
一旦已将分发同步到远程数据库460,教师就可使用客户端应用程序205的另一版本切换至不同的客户端设备120,并使用新的客户端设备120访问存储在远程服务器110上的分发的版本。存储在新客户端设备120上的资源的本地副本的任何更改将同步到远程数据库460,以更新远程数据库上的分发的版本。然后将这些更改推送到先前客户端设备120上的客户端应用程序205,以更新初始客户端设备120上的本地数据库450中的本地资源的副本。
例如,教师可打开膝上型计算机120-1上的客户端应用程序205并创建存储在膝上型计算机120-1的存储器中的分发的本地版本。膝上型计算机120-1上的守护进程440将分发的本地版本副本传输到远程数据库460,以将分发与存储在远程数据库460中的分发版本同步。然后教师在平板电脑120-2上打开单独的客户端应用程序205,并且为教师的用户帐户提供凭证。打开平板电脑120-2上的客户端应用程序205使得守护进程440将存储在远程数据库460上的分发的远程版本下载到平板电脑120-2的存储器,其中平板电脑120-2上的客户端应用程序205可访问该分发的本地副本并修改平板电脑120-2的存储器中的分发的本地副本。可将对分发的本地副本的任何修改同步回远程数据库460,使得存储在远程数据库460上的分发的版本是最新的。下次教师在膝上型计算机120-1上打开客户端应用程序205时,客户端应用程序205将使得守护进程440从远程数据库460请求分发的当前版本,该膝上型计算机将存储在远程数据库460上的分发的版本传输到膝上型计算机120-1中的守护进程440,以作为该分发的本地版本存储在膝上型计算机120-1的存储器中。
在一些实施方案中,分发服务220被实现为存储在服务器设备110的存储器中的指令集,该指令集被配置为由服务器设备110的处理器执行。分发服务220管理与教师和学生相关联的客户端设备120之间的分发的分配。在一些实施方案中,分发服务220使用远程数据库460实现分发的分配。分发服务220在远程数据库460中创建区域465。每个区域465的范围是特定班级。另选地,每个区域465的范围是一组学生组。与教师相关联的每个班级可与不同组的学生相关联。
教师可在客户端设备的本地数据库450中创建分发。将该分发同步到针对远程数据库460中的教师的个人区域465-1。一旦准备好特定的分发并准备好分配给一组学生,教师就可利用客户端应用程序205发布分发以将该分发分配给该组学生。客户端应用程序205请求分发服务220发布分发。然后分发服务220使得将分发的副本复制到远程数据库460中的新区域465-2,该新区域的范围是分发中指定的一组学生。新区域465-2范围内的学生中的每个学生都订阅了新区域465-2,使得由一组学生中的学生中的每个学生控制的客户端设备120中的守护进程440将所发布的分发的副本同步到该学生的客户端设备120的本地存储器。
应当理解,分发服务220还生成可被用于识别存储在远程数据库460中的分发资源的分发标识符。在一些实施方案中,当发布分发时,生成分发标识符。在其他实施方案中,当创建分发时,生成分发标识符。然后将用于分发的资源被复制到新区域465-2,并在发布分发时从教师的个人区域465-1删除。
图5示出了根据一些实施方案的由守护进程440实现的同步机制。如图5所示,守护进程440被配置为经由网络150与为远程数据库460提供前端的数据库服务510进行交互。该数据库服务510可在服务器设备110上实现。在一些实施方案中,远程数据库460被限制在特定组织或学区的范围。因此,存储在远程数据库460内的信息中的全部都用于特定学区。在此类实施方案中,数据库服务510被配置为管理不同组织或学区的多个远程数据库460。在各种实施方案中,远程数据库460是由服务提供方管理的基于云的分布式数据库服务。
在一些实施方案中,数据库服务510被配置为将文件存储在远程数据库460内实现的多个不同区域465中。学区的每个教师和/或学生可被分配不同的区域465作为远程数据库460内的个人区域。该个人区域465可存储与特定用户账户相关联的文件或数据结构。此外,学区创建的每个班级可被分配班级区域465,以和与班级相关联的所有学生和教师共享资源。在另选的实施方案中,可为多组学生和/或教师创建区域465,该组学生和/或教师可以是班级的子集或在两个或更多个班级中登记的子集。班级区域465可被用于向与特定班级相关联的学生和/或其他教师发布分发。区域465的范围可以是组织、班级或个人(例如,教师或学生)。区域465也可用于不同的数据。
在一些实施方案中,数据库服务510保持每个区465的订阅,该订阅指示每个区域465范围内的用户(例如,教师和/或学生)的列表。每当更新区域465内的资源时,数据库服务510可以向订阅区域465的用户的客户端设备120中的每个客户端设备推送通知。特定客户端设备120上的守护进程440接收该通知并将从区域465下载更新的资源,以更新本地数据库450中的资源522的本地副本。
应当理解,可创建不同类型的区域以利用同步机制,以便实现客户端-服务器架构200中的一个或多个服务所需的一些功能。例如,可创建区域以存储分发、提交、与第三方应用程序相关联的加书签的上下文、班级的名单信息、进度跟踪信息等。此外,上述区域中的每个区域的范围可以是单个用户(即作为个人区域)或多个用户。例如,创建分发区域465以存储与分发相关的数据(例如,附件、由学生上传的用于提交的资源等),并且该分发区域的范围可以是在分发中识别的一组学生。创建进度区域465以存储多个学生的进度信息。该进度区域465的范围可以是班级或针对班级发布的特定分发。创建名单区域465以存储与组织的班级结构相关的数据。该名单区域465的范围可以是组织。
图6A至图6E示出了根据一些实施方案的客户端应用程序205的GUI 600。该GUI600可被用于编辑存储在教师准备分配给班级的分发中的信息。该GUI 600可呈现在客户端设备120的显示器302上。如图6A所示,GUI 600显示在平板电脑诸如客户端设备120-2上。GUI 600可包括多个元素,该多个元素包括图形、文本、图标、形状、输入字段、显示区域等。在一些实施方案中,GUI 600响应于教师选择GUI 300中的第二图标334或第三图标336而显示。
GUI 600包括第一显示区域610、第二显示区域620和第三显示区域630。第一显示区域610用于显示与教师为特定班级或特定的一组学生创建的分发相关的信息。第二显示区域620用于显示分发的附件。如图6所示,第一显示区域610占据包括在显示器302中的像素的第一部分,并且第二显示区域620占据包括在显示器302中的像素的第二部分。第三显示区域630占据包括在显示器302中的像素的第三部分。在一些实施方案中,第三显示区域630可被隐藏,并且响应于用户输入诸如使用轻扫触摸手势而显示第三显示区域630以使该第三显示区域630出现在显示器302的顶部边缘附近。
如图6A所示,第一显示区域610包括界面以指示将被分配分发的一组学生。该界面示出了标签(例如,“收件人”)、用户界面元素612和用户界面元素614。教师可通过在用户界面元素612中键入学生的标识符或选择用户界面元素614并从列表中选择改组学生来指定要分配分发的一组学生。
在一些实施方案中,选择用户界面元素614使得客户端应用程序205请求与登录到客户端应用程序205中的教师相关联的班级的名单数据。该名单数据包括在与教师相关联的任何班级中登记的所有学生的标识符。客户端应用程序205可从学校管理服务240请求标识符列表。另选地,客户端应用程序205可从客户端设备120的本地存储器420检索标识符列表。例如,名单服务可周期性地从学校管理服务240请求名单数据,该学校管理服务将该名单数据存储在远程数据库460的名单区域465中。名单区域465的范围可以是特定班级,并且教师订阅了与该教师相关联的那些班级的名单区域465。因此,通过同步机制,守护进程440将把名单数据下载至客户端设备120的本地数据库450中,在该本地数据库中,该名单数据可由客户端应用程序205访问。
第一显示区域610也包括界面以指示学生完成附加到分发的活动并且提交分配在分发中的任何提交的截止日期。该界面示出了标签(例如,“截止日期:”)和用户界面元素616。该用户界面元素616可显示用于完成分配的日期(例如,时间段)。选择该用户界面元素616可使得显示日历的表示,该表示让教师选择日期。
第一显示区域610还包括可由教师编辑以改变分发的标题和主体的多个文本字段。例如,如图6A所示,教师已为分发指定标题“动植物”,并编写向学生提供的关于如何完成该分配的指令集。
第二显示区域620包括被称为第一图标622和第二图标624的一对用户界面元素。教师可选择第一图标622以向分发添加提交的占位符。教师可选择第二图标624以向分发添加活动。可在第一图标622和第二图标624下方列出分发的任何附件。如图6A所示,不存在提交的占位符和当前附加到该分发的活动。
如图6B所示,将提交的占位符附加到分发处用多个用户界面元素填充第二显示区域620的框640。例如,第一用户界面元素642使提交选项能够被编辑,第二用户界面元素644显示与该提交相关的信息,第三用户界面元素646使用户能够显示关于该提交的更详细信息,并且第四用户界面元素648使用户能够将附件重新布置到分发或从分发处删除(例如,取消附加)提交的占位符。在一些实施方案中,第二用户界面元素644包括提交资源的表示的缩略图和位于该缩略图旁边的文本,该缩略图提供与该提交相关的信息。例如,文本可指示提交的标题和将为该提交生成的资源的类型。应当理解,可省略该信息或者可包括代替本文所述的信息的附加信息。
返回图6A,选择第二图标624使得客户端应用程序205显示包括用户界面元素的界面,该用户界面元素使教师能够将活动附加到分发。活动的类型可包括利用第三方应用程序所完成的活动、通过查看或编辑附件所执行的活动、通过查看与浏览器应用程序内的书签或链接相关联的网络资源所完成的活动、以及通过查看多媒体文件(例如,图像、视频等)所完成的活动。
如图6C所示,可响应于用户选择GUI 600中的第二图标624来显示框650。该框650包括第一用户界面元素652,该第一用户界面元素使教师能够将应用程序活动与分发相关联。例如,第三方应用程序可被配置为向学生呈现测验并提示学生回答包括在该测验中的问题。又如,第三方应用程序可为学生提供交互式课程,该交互式课程包括学生遵循执行任务(例如,编写程序的源代码、玩游戏、用外语将图像与字词匹配等)的指令。再如,第三方应用程序可向学生呈现电子书或教科书的文本以供该学生阅读电子书或教科书的一个或多个部分。
框650包括第二用户界面元素654,该第二用户界面元素使教师能够将文件附加分发。该文件可包括文档、电子表格、展示(例如,幻灯片平台)、源代码或可与客户端设备120上的应用程序一起查看的任何其他类型的文件。所附文件使教师能够分配通常由学生阅读或查看的资料。在一些实施方案中,教师可指定班级中的所有学生是否共享单个文件(称为协作选项),或者是否与每个学生单独共享文件的复制版本(例如,副本)。教师还可指定与该文件相关联的权限,使得所附文件只读或允许学生读写访问以编辑文件。
框660包括第三用户界面元素666,该第三用户界面元素使教师能够将书签或链接附加到分发。书签或链接是指指定可通过网络诸如互联网访问的资源的统一资源定位符(URL)的超链接。该链接可使学生能够查看可与该课程相关的网站。
框650包括第四用户界面元素658,该第四用户界面元素使教师能够将多媒体文件附加到分发。该多媒体文件可包括图片、幻灯片放映、视频或其他类型的多媒体诸如虚拟现实数据或三维模型。然后学生可使用安装在客户端设备120上的应用程序诸如图像查看器应用程序来查看该多媒体文件。
当用户选择第一用户界面元素652以将与第三方应用程序相关联的活动附加到分发时,可用框660替换框650,如图6D所示。框660为教师提供从应用程序列表中选择用于活动的第三方应用程序的能力。
在一些实施方案中,框660包括第一用户界面元素662以从可用应用程序列表中选择任何应用程序。然而,在一些情况下,一些第三方应用程序可实现类工具包软件框架的至少一部分,该类工具包软件框架的至少一部分使第三方应用程序能够向一个或多个服务提供进度数据,以用于跟踪完成第三方应用程序内的活动的学生的进度。这些实现类工具包软件框架的至少一部分的第三方应用程序在本文中可被称为进度应用程序。可在第一用户界面元素662下方的各个用户界面元素中单独列出实现软件框架的至少一部分的进度应用程序。例如,第二用户界面元素664使教师能够为第一进度应用程序附加活动,第三用户界面元素666使教师能够为第二进度应用程序附加活动,并且第四用户界面元素668使教师能够为第三进度应用程序附加活动。
在一些实施方案中,第三方应用程序实现类工具包软件框架的至少一部分,该类工具包软件框架的至少一部分提供用于在第三方应用程序中构建交互式特征的方式。例如,类工具包软件框架使软件开发者能够定义与应用程序相关联的上下文。如本文所用,上下文是指描述应用程序的结构的元数据。例如,可以使用定义电子教科书内的章节、部分、页面、问题集和类似结构的上下文来描述该电子教科书。一般来讲,上下文定义使能够为第三方应用程序定义活动的元数据。
该上下文还使能够跟踪应用程序内的活动的进度。例如,重新参见电子教科书示例,教师可以定义与阅读教科书的章节相关的活动。上下文使教师能够在定义活动时指定教师想要分配的电子教科书中的特定章节或部分。因此,当使用GUI 600指定活动时,客户端应用程序205可查询上下文以确定可在第三方应用程序内完成哪些活动。
在一些实施方案中,教师可手动搜索与一个或多个第三方应用程序相关联的可用上下文的列表,并且选择该教师想要分配给各个分发的一组上下文。该组上下文可保存在存储器420中并与客户端应用程序205相关联,以便教师能够将与那些上下文相关联的活动附加到分发。
在其他实施方案中,安装在客户端设备120上的每个进度应用程序可向守护进程440通知进度应用程序提供的可用上下文。教师可以利用客户端应用程序205浏览由一个或多个进度应用程序发布的可用上下文的列表,并选择多个上下文作为最喜欢的上下文。例如,通过选择框660中的第一用户界面元素662,教师能够浏览由安装在客户端设备120上的进度应用程序提供的所有可用上下文。然后教师可选择特定上下文作为该教师最喜欢的上下文。由教师选择作为收藏夹的可用上下文的子集可存储在客户端设备120的本地数据库450中。教师所选择的最喜欢的上下文也可同步到范围是该教师的远程数据库460中的个人区域465。然后框660中的附加用户界面元素可以与对应于特定最喜欢的上下文的每个用户界面元素一起显示。然后教师可选择特定的最喜欢的上下文来附加到分发。
如图6E所示,选择第二用户界面元素654使客户端应用程序205显示包括两个用户界面元素的框670,这两个用户界面元素使教师能够指定与所附文件相关联的选项。在一些实施方案中,该选项包括共享文件的权限以及文件是否为协作的。例如,如图6E所示,用户界面元素672使教师能够指示文件是否是协作的。该选项确定文件是否作为单个资源在多个用户之间共享,或者文件的副本是否单独地与每个用户共享。用户界面元素674使教师能够改变对文件的资源的许可。如果资源是只读的,则学生将不能够编辑资源;然而,如果资源是读写的,则学生可编辑文件。
应当理解,图6E中未明确示出的附加用户界面元素可包括在框670中。例如,其他用户界面元素可使教师能够指定存储在本地存储器420中的文件以附加到分发。
图7示出了根据一些实施方案的分发服务220与和班级中的多个学生相关联的多个客户端应用程序205和/或守护进程440之间的客户端-服务器关系。如图7所示,班级可包括在该班级中登记的L名学生,每个学生具有对一个或多个客户端设备120的访问权限。如上所述,分发服务220被配置为使教师能够使用由该教师控制的多个不同的客户端设备120来创建和管理分发。此外,分发服务220还被配置为帮助将分发分配到包括在与一组学生相关联的多个附加客户端设备120中的客户端应用程序205。
在一些实施方案中,教师可完成准备分发,然后发布分发以将该分发分配给该组学生以供其查看和完成。分发服务220将分发复制到远程数据库460中的分发区域465中,该分发区域的范围是分发中指定的一组学生。响应于教师发布分发,该分发服务220通过各种路径710通知与学生相关联的客户端设备120中的每个客户端设备已更新远程数据库460中的分发区域465。路径710可以指与特定客户端设备120的网络接口的目的地地址相关联的网络路径。
通知可由包括在客户端设备120中每个客户端设备的守护进程440接收。该守护进程440然后将数据从分发区域465下载到客户端设备120中的本地数据库450。在一些实施方案中,分发服务220利用学校管理服务240以便检索班级中学生的用户标识符。该用户标识符可被用于使用单独的通知服务将通知传输到与给定班级中的学生相关联的客户端设备120中的每个客户端设备。
在一些实施方案中,该组学生可由学校管理服务240识别,该学校管理服务响应于接收到来自分发服务220的请求而被配置为返回在特定班级中登记的学生的标识符列表。在其他实施方案中,名单服务可与学校管理服务240进行交互,以在远程数据库460的范围是组织的名单区域465中创建名单数据。然后,分发服务220可以从远程数据库460访问名单数据,而不直接从学校管理服务240获得名单数据。
响应于发布分发的请求,分发服务220可将分发从范围是教师的个人区域465复制到范围是班级中一组学生的分发区域465。一旦分发的副本被存储在分发区域465中,分发服务220就向与订阅分发区域465的学生相关联的任何客户端设备传输改变的通知。包括在学生的客户端设备120中的与分发区域465相关联的守护进程440将响应于从分发服务220接收到通知而自动将存储在分发区域465中的分发的副本下载到客户端设备120的本地存储器。然后可由客户端设备120的客户端应用程序205查看针对学生的分发,使得学生可完成附加到该分发的活动并且/或者查看附加到该分发的资料。
图8A至图8C示出了根据一些实施方案的由客户端应用程序210在与学生相关联的客户端设备120上实现的GUI 800。该GUI 800与GUI 600不同。客户端应用程序210可被配置为响应于用户登入与学生而非教师相关联的用户账户而显示GUI 800。GUI 800使学生能够查看该班级教师分配给一组学生的班级分发。
在一些实施方案中,GUI 800包括第一显示区域810、第二显示区域820和第三显示区域830。第一显示区域810用于显示分配给特定班级的学生的分发表示。第二显示区域820用于显示学生登记在其中的班级表示。如图8A所示,第一显示区域810占据包括在显示器302中的像素的第一部分,并且第二显示区域820占据包括在显示器302中的像素的第二部分。
第一显示区域810包括标头,该标头指示元素812表示分配给所选择的班级中的学生的独立且不同的分发。在一些实施方案中,每个元素812由框限定,该框包括分发的标题、与分发相关联的截止日期的描述符以及学生是否已完成分发的指示。例如,第一元素812-1与针对“动植物”分配的第一分发相关联,该分配的截止日期是3月12日并且已由学生完成;并且第二元素812-2与针对“测试准备”分配的第二分发相关联,该分配的截止日期是3月15日并且还未被学生完成。应当理解,在其他实施方案中,元素812可采用不同的形式。例如,元素812可省略截止日期和/或完成指示符。另选地,元素812可包括除截止日期和/或完成指示符之外或代替该截止日期和/或完成指示符的信息。另外,元素812可包括图形诸如表示在分发中分配的不同活动的图像或图标。在一些情况下,图形可被动画化诸如通过播放视频或示出作为元素812背景的附加到分发的图像的幻灯片放映。
第二显示区域820包括标头,该标头指示元素822表示学生所登记的独立且不同的班级。学生可选择特定元素822,以便查看教师针对第一显示区域810中的班级已将哪些分发分配给学生。在一些实施方案中,每个元素822由框定义,该框包括班级名称和分配给班级学生的多个分发的描述符。例如,第一元素822-1与“科学A”班级相关联,该“科学A”班级具有两个分发未提交;第二元素822-2与“数学A”班级相关联,该“数学A”班级的分发已全部提交;并且第三元素822-3与“英语A”班级相关联,该“英语A”班级具有一个分发未提交。应当理解,在其他实施方案中,元素822可采用不同的形式。例如,元素822可省略分配给班级学生的分发次数的指示符。
在一些实施方案中,学生可使用客户端设备120的输入界面来选择特定班级。例如,学生可使用触摸界面来选择与学生所登记的可用班级中的一个班级相关联的元素822。在选择元素822时,该元素822被激活,并且第一显示区域810中的元素812可被更新以反映与由第二显示区域820中的所选择的元素822所表示的班级相关联的分发。突出显示所选择的元素822(例如,当前激活的元素)以指示元素822是活动的。突出显示可通过以下方式来实现:增大该元素的尺寸、改变与元素822相关联的颜色或元素822边界、显示所选择的元素822周围的框等。如图8A所示,第一元素822-1被激活并且被示出为大于第二元素822-2和第三元素822-3。
第三显示区域830位于邻近显示器302的顶部边缘。第三显示区域830包括使客户端应用程序210的用户能够登录到学生的用户帐户的元素。在一些实施方案中,第三显示区域830被隐藏并且可响应于用户输入诸如通过使用竖直轻扫触摸手势来使第三显示区域830未被隐藏而被显示。
第一图标832被显示邻近第三显示区域830的左侧。第一图标832在被用户选择时可使得客户端应用程序210提示用户输入凭证以登录到学生的用户账户。在一些实施方案中,第一显示区域810和第二显示区域820被隐藏,直到用户使用第一图标832登录到特定用户账户。在一些实施方案中,在启动客户端应用程序210时,向用户显示单独的界面,该界面提示用户输入凭证以登录到用户账户。一旦用户成功登录到特定用户账户,GUI 800仅被显示在显示器302上。然后第一图标832可用于退出用户账户和/或登录不同的用户账户。
选择表示特定班级中的分发的特定元素812使得GUI 800利用表示分发的数据进行更新,如图8B所示。第一显示区域840呈现包括在分发中的信息,诸如分发的标题、分发的截止日期、分发所分配的班级的指示以及包括在由教师分配的分发中的指令。第二显示区域850呈现与任何分发和/或由教师附加到该分发的活动相关的信息。
选择第二显示区域850内的活动将打开不同应用程序中的活动。如果该活动是特定文件类型的附件,则对应于该文件类型的应用程序将被打开以查看附件。如果该活动是书签或链接,则web浏览器应用程序将被打开,并且由该书签或链接中的URL所指定的资源将被检索。如果该活动是多媒体文件,则多媒体应用程序将被打开以查看该多媒体文件。然而,如果该活动与进度应用程序相关联(例如,如果该活动与进度应用程序提供的并且由教师选择作为最喜欢的上下文相关联),则进度应用程序将被打开以完成该活动。在一些实施方案中,进度应用程序实现类工具包软件框架的至少一部分以在完成活动时跟踪学生的进度。
如图8C所示,第一进度应用程序的GUI 860在显示器302上呈现给学生。该GUI 860可以作为像素数据呈现的信息的形式提供输出。如图8C所示,第一进展应用程序的GUI 860可提供帮助学生学习特定主题的文本和图形。GUI 860可包括元素,这些元素中的一些元素可以是交互式的。例如,学生可选择树的图像以显示关于该树的更详细信息。应当理解,图8C所示的第三方软件仅为了进行示意性的说明而示出,并且软件的设计不限于任何特定类型的学习软件。事实上,可实现类工具包软件框架的各种软件是广泛的。
图9示出了根据一些实施方案的提交服务230与班级中多个学生的多个客户端应用程序210和/或守护进程440之间的客户端-服务器关系。如图9所示,班级可包括在该班级中登记的L名学生,每个学生具有对一个或多个客户端设备120的访问权限。提交服务230被配置为帮助管理包括在分配给对应多组学生的一个或多个分发中的提交。
在一些实施方案中,当发布包括提交占位符的分发时,分发中的占位符指示需要学生上交对应于该分发的文件。同样,学生使用客户端设备120上的一个或多个应用程序生成用于提交的文件。学生然后可使用客户端应用程序205提交该提交。另选地,客户端应用程序205可创建被添加至第三方应用程序(例如,应用程序扩展)的GUI元素,该GUI元素使学生能够从第三方应用程序提交该提交。
在一些实施方案中,由学生创建的文档可同步到远程数据库460的个人区域465-1,使得学生可从不同的客户端设备120访问该文档。当学生选择上交该文档作为提交时,提交服务可将该文档从范围是学生的个人区域465-1复制到范围是班级的提交区域465-2,并且任选地特定分发对应于该提交。通过将该文档从学生的个人区域465-1移动到提交区域465-2中,教师可查看该文档。在一些实施方案中,文档还被从范围是学生的个人区域465-1删除,并且学生被授予对存储在提交区域465-2中的文档的副本的只读访问权限。因此,当文档作为提交被提交时,学生就不能再编辑该文档。
在一些实施方案中,与特定分发相关联的该组学生可由学校管理服务240识别,该学校管理服务响应于接收到来自提交服务230的请求而被配置为返回在特定班级中登记的学生的标识符列表。在其他实施方案中,名单服务可与学校管理服务240进行交互,以在远程数据库460的范围是组织的区域465中创建名单数据。然后,提交服务230可以从远程数据库460访问名单数据,而不直接从学校管理服务240获得名单数据。
图10示出了根据一些实施方案的进度流水线250与客户端应用程序210和/或守护进程440之间的客户端-服务器关系。为了完全实现教室环境内类工具包软件框架的益处,需要用于使用相关联的客户端设备120跟踪每个学生的活动的装置。守护进程440和进度流水线250为实现类工具包软件框架的至少一部分的任何第三方应用程序提供此类功能。
如图10所示,客户端设备120包括处理器410和包括软件和数据的存储器420。客户端设备120的存储器420包括操作系统430、客户端应用程序210、守护进程440和一个或多个进度应用程序1010。守护进程440实现API以经由类工具包软件框架与进度应用程序1010通信。
在一些实施方案中,一个或多个进度应用程序1010中的每个实现类工具包软件框架的至少一部分,以用于跟踪与由进度应用程序1010提供的一个或多个上下文相关联的进度。类工具包软件框架包括添加到进度应用程序1010的源代码的源代码、进度应用程序1010所利用的函数的库的源代码以及可链接到进度应用程序1010的源代码的编译函数的库中的至少一者。软件框架提供包括在进度应用程序1010的源代码中的函数,该函数生成对在客户端设备120的后台执行的守护进程440的API调用。该API调用包括与用户在进度应用程序1010中执行的操作相关的进度跟踪信息。
软件开发者可在进度应用程序1010的源代码内实现API调用,以便在进度应用程序1010内实现进度跟踪功能。例如,在文档查看应用程序中,源代码可被配置为生成API调用,该API调用指示每当用户导航到新页面时用户已读取该文档的特定页面。软件开发者还可为进度应用程序1010定义指定进度应用程序1010的结构的一个或多个上下文,以便允许教师创建附加到客户端应用程序210内的利用进度应用程序1010的分发的活动。每个上下文是使用标准语言(例如,预定义关键字)和/或格式定义进度应用程序1010的结构的数据结构。
应当理解,单个进度应用程序1010可与多于一个上下文相关联。例如,可以实现教科书应用以查看存储在不同文件或数据结构中的多个教科书。可以为不同教科书中的每一者定义不同的上下文。每个上下文可以定义对应教科书的具体布局,诸如定义教科书的标题、教科书作者、教科书版本、教科书中的章节数量,教科书的包括对该教科书的每一章的描述的内容表、对每一章所包括的部分的描述、对每一部分所包括的每一页的描述、对每一章节或部分内的问题集的描述等。教师然后可使用这些上下文来选择与特定上下文相关联的特定活动,并将这些所选择的活动附加到分配给班级中学生的分发。
守护进程440被配置为从进度应用程序1010接收API调用。该API调用可包括在进度应用程序1010内生成的进度跟踪信息。在一些实施方案中,可启用或禁用进度跟踪。守护进程440被配置为在禁用进度跟踪时忽略从进度应用程序1010接收的进度跟踪信息。然而,如果启用进程跟踪,则守护进程440被配置为处理进度跟踪信息。在一些实施方案中,守护进程440在处理从一个或多个进度应用程序1010接收的汇总进度跟踪信息之前汇总从两个或更多个API调用接收的进度跟踪信息。
在一些实施方案中,可启用或禁用针对各个进度应用程序1010的进度跟踪。因此,可启用针对第一应用程序的进度跟踪,同时可禁用针对第二应用程序的进度跟踪。因此,守护进程440被配置为从禁用进度跟踪的任何应用程序中滤除任何进度跟踪信息,并且仅处理启用进度跟踪的应用程序的进度跟踪信息。
在一些实施方案中,在安装客户端应用程序210时,自动启用对安装在客户端设备120上的所有进度应用程序1010的进度跟踪。因此,客户端设备120的用户被要求禁用针对客户端设备120或安装在客户端设备120上的各个第三方应用程序的进度跟踪,以便防止收集进度跟踪信息,这可被称为选择性退出策略。在其他实施方案中,在安装客户端应用程序210时,自动禁用对安装在客户端设备120上的所有第三方应用程序1010的进度跟踪。因此,客户端设备120的用户被要求针对客户端设备120或安装在客户端设备120上的各个第三方应用程序能够进行进度跟踪,以便允许收集进度跟踪信息,这可被称为选择性加入策略。
进度跟踪信息可包括但不限于识别由客户端设备120的用户使用进度应用程序1010完成的操作的信息。例如,进度跟踪信息可包括指示用户已经查看或阅读电子教科书的特定章节、完成通过进度应用程序1010的GUI呈现给用户的多个问题、完成操作诸如点击链接或与进度应用程序1010的交互式元素交互等的信息。
进度跟踪信息可包括个人识别信息(PII)。该PII可被认为是敏感的,因此守护进程440注意在从客户端设备120传输到服务器设备110时保护该信息。在一些实施方案中,范围是特定学生的进度区域465用于存储与用户账户相关联的每个学生的进度跟踪信息。该进度跟踪信息在客户端设备120的存储器420中本地存储和加密。也可在远程数据库460的进度区域465中远程加密该进度跟踪信息。可用不同加密密钥本地或远程加密进度跟踪信息。此外,守护进程440可被配置为加密传输到远程数据库460的进度跟踪信息。用于传输中加密的加密密钥可不同于本地或远程使用的加密密钥。因此,可使用各种形式的认证(例如,生物识别认证、要求用户输入密码等)在本地保护进度跟踪信息,并且可使用附加形式的认证诸如作为安全传输机制的相互TLS远程(即,在服务器侧端)保护进度跟踪信息。
图11示出了根据一些实施方案的守护进程440对进度跟踪信息的过滤。在一些实施方案中,守护进程440被配置为基于与由一个或多个教师分配给学生的一个或多个分发相关联的一组活动上下文来对从进度应用程序1010接收的进度跟踪信息进行过滤。守护进程440可基于当前分配给学生(或班级)的一个或多个分发中的附件来跟踪活动上下文1170的列表。在一些实施方案中,可由教师关闭(例如,去激活)并从活动上下文列表1170中移除具有已经通过的截止日期的分发中的附件。守护进程440被配置为基于活动上下文1170的列表来过滤从进度应用程序1010接收的进度跟踪信息。
例如,第一教师可将第一分发分配给特定学生,该第一分发包括与第一进度应用程序1010-1的第一上下文相关联的活动;并且第二教师可将第二分发分配给特定学生,该第二分发包括与第二进度应用程序1010-2的第二上下文相关联的活动的。第一进度应用程序1010-1的第一上下文和第二进度应用程序1010-2的第二上下文被认为是活动上下文。然而,学生可使用不与任何活动上下文相关联的第三进度应用程序1010-3,并且守护进程440可被配置为滤除(例如,忽略)从第三进度应用程序1010-3接收的任何进度跟踪信息1140以避免收集任何不必要的进度跟踪数据。同样,守护进程440还可滤除从与不同的非活动上下文相关联的第一进度应用程序1010-1和/或第二进度应用程序1010-2接收的任何进度跟踪信息。例如,活动上下文可定义《麦克白》电子书的结构,而非活动上下文可定义《罗密欧与朱丽叶》电子书的结构。当在进度应用程序1010中打开《麦克白》电子书时接收的任何进度跟踪信息将由守护进程440处理,而当在进度应用程序1010中打开用《罗密欧与朱丽叶》电子书时接收的进度跟踪信息将被滤除并忽略。
如图11所示,从第一进度应用程序1010-1接收并与第一上下文相关联的第一进度跟踪信息1110由守护进程440处理,其中第一上下文包括在活动上下文1170的列表中。在一些实施方案中,守护进程440将第一进度跟踪信息1110存储为本地数据库450中的进度跟踪信息1150-1。该进度跟踪信息1150-1经由同步机制被上传范围是学生的远程数据库460中的进度区域465。类似地,从第二进度应用程序1010-2接收并与第二上下文相关联的第二进度跟踪信息1120由守护进程440处理,其中第二上下文包括在活动上下文1170的列表中。第二进度跟踪信息1120作为进度跟踪信息1150-2存储在本地数据库450中。同样,进度跟踪信息1150-2经由同步机制被上传到范围是学生的远程数据库460中的进度区域465。
然而,从第二进度应用程序1010-2接收并与第三上下文相关联的第三进度跟踪信息1130被守护进程440忽略,其中第三上下文不包括在活动上下文1170的列表中。类似地,从第三进度应用程序1010-3接收并与第四上下文相关联的第四进度跟踪信息1140也被守护进程440忽略,其中第四上下文不包括在活动上下文1170的列表中。
守护进程440还创建与加密的进度跟踪信息1150相关联的元数据1160。该元数据1160可包括对远程数据库460中的加密的进度跟踪信息1150的引用以及与进度跟踪信息相关联的上下文的上下文标识符。在一些实施方案中,元数据1160包括可由进度流水线250利用的附加信息,诸如类标识符、对应于上下文的分发标识符、对应于生成进度跟踪信息1150的进度应用程序1010的应用程序标识符或与用户登录到客户端设备120上的用户账户相关联的用户标识符。因此,进度流水线250不处理可能包含PII的实际进度跟踪信息。相反,进度流水线250仅处理与进度跟踪信息相关联的元数据1160,并且实际进度跟踪信息保持被加密并存储在远程数据库460的个人进度区域465中。
应当理解,在其他实施方案中,实际进度跟踪信息可被加密或未加密地提供给进度流水线250而非元数据1160。然而,这些实施方案可为包括在进度跟踪信息中的PII提供安全性较低。
应当理解,活动上下文的接收隐式地授权守护进程440跟踪与该特定上下文相关的进度。一旦将上下文从活动上下文列表1170中移除,隐式授权就被退出,因此守护进程不跟踪与该上下文相关联的进度。
图12示出了根据一些实施方案的进度流水线250。该进度流水线250在一个或多个服务器设备110上实现。在一些实施方案中,进度流水线250的每个组成部分在不同的服务器设备110上实现。在一些情况下,进度流水线250的特定组成部分在服务器节点的集群上实现,该服务器节点的集群在本文中可被称为集群。
如图12所示,进度流水线250经由网络150从包括在一个或多个客户端设备120上的守护进程440接收进度跟踪元数据1202。进度流水线250可被实现为与网络地址相关联的一个或多个服务。发送到网络地址的消息由对应的服务处理。
在一些实施方案中,可接入服务1210从一个或多个守护进程440接收进度跟踪元数据1202。该进度跟踪元数据1202包括与特定学生的进度跟踪信息1150相关的信息。在一些实施方案中,进度跟踪元数据1202包括与客户端应用程序210的用户账户相关联的用户标识符和与进度跟踪信息1150对应的特定上下文的上下文标识符。
在一些实施方案中,可接入服务1210被配置为检查是否为特定用户启用进度跟踪。管理员可经由学校管理服务240改变特定学生在授权方面的偏好,以跟踪给定学生的进度。可接入服务1210可在特定客户端设备120的守护进程440处接收到给定学生的授权偏好的状态变化之前接收关于该变化的通知。因此,即使在学生已全局地禁用进度跟踪之后,守护进程440也可继续为给定学生收集进度跟踪信息。因此,可接入服务1210基于存储在远程数据库460中的一组标记来执行由进度流水线250接收的进度跟踪元数据的门控功能。
在一些实施方案中,名单服务被配置为周期性地为使用学校管理服务240的特定学区中的每个学生拉引该组授权标记,并将该组授权标记存储在远程数据库460中的授权区域465中,该授权区域的范围是组织。然后,可接入服务1210可针对使用包括在进度跟踪元数据1202中的用户标识符接收的进度跟踪元数据1202的每个项目查询该组授权标记。
在一些实施方案中,可接入服务1210调用身份服务260并且使用在进度跟踪元数据1202中接收的用户标识符来请求目录服务标识符。当创建用户账户时,目录服务标识符可被注册为与用户标识符相关联。目录服务标识符对于用户账户的寿命是恒定的,并且仅在客户端-服务器架构200的服务器端内使用,使得客户端应用程序210和/或守护进程440从不接收目录服务标识符。因此,窥探守护进程440与进度流水线250之间的业务的任何人都不能获取目录服务标识符,以将存储在一个或多个服务器中的某些PII与特定用户的标识符相关联。身份服务260将目录服务标识符返回到可接入服务1210,该可接入服务取消引用包括在进度跟踪元数据1202中的用户标识符并且用目录服务标识符替换用户标识符。在一些实施方案中,该组授权标记对应于目录服务标识符,而非用户账户的用户标识符。因此,在可接入服务1210执行门控功能之前取消引用用户标识符。一旦可接入服务1210已完成对进度跟踪元数据1202的处理,就将进度跟踪元数据1202传输到队列1215。
在其他实施方案中,可利用内部标识符来代替目录服务标识符。因此,使用内部标识符而非目录服务标识符在整个进度流水线250中跟踪进度跟踪元数据1202。这使得进度流水线250能够简单地通过删除内部标识符和目录服务标识符之间的关联来切断进度跟踪信息和特定用户之间的所有关联。
在一些实施方案中,队列1215是在服务器设备110上实现的队列服务。队列1215可在与可接入服务1210相同的服务器设备110或不同的服务器设备110内实现。在一些实施方案中,队列1215被实现为分布式流式服务,诸如Kafka分布式流式平台。队列1215使可接入服务1210和富集服务1220能够异步运行。
在一些实施方案中,富集服务1220在一个或多个服务器设备110上实现。富集服务1220被配置为从队列1215接收进度跟踪元数据1202,并且利用附加信息富集该进度跟踪元数据1202。在一些实施方案中,富集服务1220基于包括在进度跟踪元数据1202中的目录服务标识符而从学校管理服务240请求名单数据。该名单数据可包括登记学生的任何班级的一个或多个类标识符以及登记在每个班级中的学生的学生标识符列表。学校管理服务240可利用学生的目录服务标识符,而不是在原始进度跟踪元数据1202内由守护进程440提供的用户标识符。在其他实施方案中,用户标识符可被用于查询学校管理服务240而非内部标识符。
富集服务1220还可从远程数据库460中的对应区域465检索特定班级的所有活动分发。与包括在进程跟踪元数据1202中的类标识符和目录服务标识符交叉引用名单数据和分发,以便将附加信息附加到进程跟踪元数据1202(如果尚未包括在进程跟踪元数据1202中)。在一些实施方案中,富集服务1220确保进度跟踪元数据1202包括:组织标识符、类标识符、分发标识符和上下文标识符以及对加密的进度跟踪信息1150的引用。
在一些实施方案中,进度跟踪元数据1202可与多个类标识符和/或多个分发标识符相关联。例如,如果来自两个不同班级的两个不同教师在引用相同上下文的两个不同分发中将活动分配给特定学生,则学生在完成一个班级的活动时也将被认为完成另一个班级的相同活动。一旦富集服务1220已富集进度跟踪元数据1202,富集服务1220就将富集的进度跟踪元数据1202传输到队列1225。
在一些实施方案中,队列1225类似于队列1215。队列1225可在与富集服务1220相同的服务器设备110或不同的服务器设备110内实现。
在一些实施方案中,进度跟踪元数据1202从队列1225中填充并存储在分布式文件系统1230中。在一些实施方案中,分布式文件系统1230是如在服务器节点集群上实现的Hadoop分布式文件系统(HDFS)。每个服务器节点包括可在其上存储数据的一组廉价磁盘驱动器。在一些事件中,分布式文件系统1230包括至少一个日志节点,该至少一个日志节点被配置为跟踪存储在分布式文件系统1230中的进度跟踪元数据1202的变化。在服务器节点崩溃的情况下,日志节点保护进度跟踪元数据1202的完整性。
应当理解,进度流水线250可由多个组织使用,即使每个组织的数据被存储在独立且不同的远程数据库460中,该远程数据库的范围上被限制为特定组织。因此,分布式文件系统1230正在存储用于一个或多个组织的大量进度跟踪元数据1202。汇总器服务1240被设计成对进度跟踪元数据1202中的全部进行排序,并且组织在跟踪窗口期间由组织接收的进度跟踪元数据1202。在一些实施方案中,汇总器服务1240是用于处理大规模数据集的计算服务。例如,汇总器服务1240可被实现为但不限于服务器节点集群上实现的Spark服务。然后在由汇总器服务1240生成的一个或多个火花作业中处理进度跟踪元数据1202。
在一些实施方案中,跟踪窗口可以是例如分钟数或小时数。例如,汇总器服务1240可对在分布式文件系统1230处在十分钟窗口内接收的进度跟踪元数据1202进行排序。在一些实施方案中,汇总器服务1240被配置为基于跟踪窗口来在定时器集的到期时运行例程。一旦运行例程,定时器就被复位以等待下一个跟踪窗口的到期。
在一些实施方案中,汇总器服务1240查询分布式文件系统1230的日志节点以在跟踪窗口期间收集与存储在分布式文件系统1230中的进度跟踪元数据1202中的全部相关的信息。日志节点跟踪分布式文件系统1230的变化,并且可通过先前跟踪窗口返回已存储在分布式文件系统1230中的所有进度跟踪元数据1202的列表。汇总器服务1240被配置为拉引在跟踪窗口期间接收的进度跟踪元数据1202,并且为在跟踪窗口期间将进度跟踪元数据1202提交给进度流水线250的一个或多个组织中的每个组织生成数据结构。该数据结构在本文中可称为立方体。
在一些实施方案中,汇总器服务1240生成范围是单个组织的独立且不同的立方体。对应于特定组织标识符的进度跟踪元数据1202中的全部被分选到对应的立方体中。存储在给定立方体中的进度跟踪元数据1202可通过类标识符、分发标识符、上下文标识符和学生标识符(例如,用户标识符、目录服务标识符等)来排序。
在一些实施方案中,立方体存储在块存储1250中。在一些实施方案中,该块存储1250可以是包括在实现汇总器服务1240的服务器设备110中的HDD。在其他实施方案中,块存储1250可以是在包括在一个或多个服务器设备110中的一组一个或多个物理存储设备上实现的虚拟块存储设备。在其他实施方案中,块存储1250可被分布式数据库服务诸如在服务器节点集群上实现的Cassandra替换。在其他实施方案中,块存储1250可被类似于上述分布式文件系统1230的分布式文件系统替换。
汇总器服务1240生成包括在一个或多个对应组织的跟踪窗口期间接收的进度跟踪元数据1202的一个或多个立方体。汇总器服务1240将对每个立方体的引用添加到队列1245。在一些实施方案中,队列1245类似于队列1215和1225,并且使得可退出服务1260能够与汇总器服务1240异步操作。
在一些实施方案中,可退出服务1260被配置为在从队列1245中填充每个立方体参考时处理该立方体。在一些实施方案中,可退出服务1260仅被配置为读取存储在块存储1250中的给定立方体中的进度跟踪元数据1202,并且将每个进度跟踪元数据1202条目写入到远程数据库460中的特定区域465,该远程数据库的范围是特定班级、上下文以及可选地不基于包括在进度跟踪元数据1202中的类标识符、上下文标识符和/或目录服务标识符/用户标识符的学生。因此,可退出服务1260将进度跟踪元数据1202分选到比立方体更小的粒度。
在其他实施方案中,可退出服务1260通过替换进度流水线250中的先前服务所利用的目录服务身份来对进度跟踪元数据1202取消引用,并且用进度标识符替换目录服务标识符。进度标识符可与身份服务260内的目录服务标识符相关联;然而,进度标识符可与目录服务标识符解除关联,以断开进度跟踪数据1150和特定用户之间的任何连接。在一些实施方案中,响应于用户选择退出进度跟踪(例如,全局禁用进度跟踪)而丢弃进度标识符。例如,用于组织的管理员可使用学校管理服务240禁用对特定学生、班级、学校和/或整个学区的进展跟踪。这些改变可使得身份服务260将进度标识符与已禁用进度跟踪的那些学生的目录服务标识符解除关联。即使进度跟踪信息仍可存在于远程数据库460中,但一旦进度标识符和目录服务标识符之间的关联已被打破,进度跟踪信息就不能与特定学生相关联。
一旦可退出服务1260已完成对进度跟踪元数据1202的处理,就将进度跟踪元数据1202传输到存放服务1270。在一些实施方案中,存放服务1270在至少一个服务器设备110上实现。存放服务1270被配置为通过进度跟踪元数据1202条目拉引加密的进度跟踪信息1150参考并将进度跟踪信息1150存储在进度存储1280中。在一些实施方案中,进度存储1280是基于网络的存储服务。进度跟踪信息1150被存储在类似于区域465的区域中,该区域的范围是特定类标识符、上下文标识符、进度标识符和(任选地)分发标识符。
在一些实施方案中,进度存储1280与远程数据库460分开且不同,并且只能在客户端-服务器架构200的服务器端访问。因此,守护进程440对已由进度流水线250存档的进度跟踪信息1150不具有直接可见性。在其他实施方案中,进度存储1280可在远程数据库460中的新区域465中实现,并且使用报告服务270同步到客户端设备120。
尽管未明确示出,但进度流水线250中的各种服务可被配置为在处理期间遇到某些问题的情况下再循环由服务处理的特定进度跟踪元数据1202。在一些实施方案中,重试队列与每个服务相关联,并且进度跟踪元数据1202可被推送到重试队列中以在稍后的时间进行处理。例如,服务诸如身份服务260可正在经历阻止进度流水线250完成特定操作的停机时间。在此类情况下,由服务处理的数据可被存储在重试队列中,以便在停机服务可能可用的稍后时间尝试处理。另选地,服务可被简单地配置为将进度跟踪元数据1202添加回与服务的输入交互的队列中。例如,富集服务1220可被配置为将进度跟踪元数据1202推送回队列1215以在稍后的时间点进行处理。
报告服务270然后可响应于来自客户端应用程序210和/或守护进程440的请求而从进度存储1280拉引进度跟踪信息1204以生成提供给客户端应用程序210和/或守护进程440的报告数据。
图13示出了根据一些实施方案的报告服务270与客户端应用程序210和/或守护进程440之间的客户端-服务器关系。包括在客户端设备120中的客户端应用程序210和/或守护进程440与服务器设备110中的报告服务270进行交互。在将分发分配给学生班级后,教师可能希望跟踪学生完成该分配的进度。更具体地讲,客户端应用程序210中的GUI可显示与特定分发相关的进度跟踪信息的表示。附件、提交和/或活动中的每一者可与学生中的每一个的完成进度相关的信息一起显示。
在一些实施方案中,客户端应用程序210接收输入以在客户端设备120的显示器302上显示分发的表示。响应于该输入,客户端应用程序210从报告服务270请求报告。如本文所用,报告可指包括来源于从进度存储1280拉引的进度跟踪信息1204的报告数据的文件或数据结构。
在一些实施方案中,报告服务270从客户端应用程序210接收对报告的请求。该请求可包括类标识符、上下文标识符、用户标识符和(任选地)分发标识符。报告服务270可利用身份服务260找到对应于用户标识符的进度标识符,然后查询进度存储1280以检索对应于类标识符、上下文标识符、进度标识符和(任选地)分发标识符的进度跟踪信息1204。
此外,该请求可指定与该请求相关联的时间帧。例如,该请求可指定查询是否应将进度跟踪信息限制在分发的截止日期之前的时间、分发的截止日期之后的时间或直到分发的关闭日期并包括该关闭日期的时间。如本文所用,关闭日期可指附加到分发的上下文被取消激活的时间,从而阻止在关闭日期之后与该上下文相关的进一步进度跟踪,除非将另一个分发分配给包括该上下文的学生。因此,报告服务270生成一组进度跟踪信息1204,该组进度跟踪信息对应于特定班级中的学生并且对于在特定分发中分配的特定上下文。
在一些实施方案中,守护进程440汇总班级的进度跟踪信息1204以基于报告数据而计算班级的各种统计数据。例如,守护进程440可计算班级中学生的总数,以及已完成提交或活动的学生的总数。守护进程440还可使用与不同进度跟踪信息1204相关联的时间戳来计算每个学生完成提交或活动的总时间(例如,通过计算针对特定活动或提交的所有进度跟踪信息的第一时间戳和最后时间戳之间的差值)。又如,守护进程440可基于在测验或问题集上提供的正确/不正确响应来计算每个学生的分数。守护进程440可计算合格分数与不合格分数的比率、具有合格分数的学生的数量或具有不合格分数的学生的数量与班级中的总学生的数量的比率、班级的平均分数、班级的最小分数及最大分数,分数集合的中位分数和标准分布、映射到字母等级(的分数分布例如,分数A的数量、分数B的数量等)以及与分数和/或进度跟踪信息1204相关的任何其他相关统计数据。
在一些实施方案中,学生可多次尝试完成特定活动。例如,学生可多次参加测验。在此类实施方案中,对报告的请求可指定报告数据是否应包括针对学生完成的每次尝试或仅学生完成的最后一次尝试的进度跟踪信息1204。如果该进度跟踪信息包括多次尝试的数据,则守护进程440可被配置为计算与多次尝试相关的统计数据诸如平均分数、所有尝试的最高分数、通过尝试与未通过尝试的比率等。
在一些实施方案中,守护进程440还可被配置为从远程数据库460中的名单区域465名单信息,以便将与进度跟踪信息相关联的用户标识符与例如学生姓名相关联。
在其他实施方案中,客户端应用程序210被配置为执行汇总进度跟踪信息1204和/或计算与本地数据库450中的进度跟踪信息1204相关的统计数据的功能。守护进程440仅促进将进度跟踪信息1204从远程数据库460中的区域465下载到本地数据库450,以允许客户端应用程序210访问进度跟踪信息1204。然后,客户端应用程序210被配置为使用进度跟踪信息1204执行任何必要的分析,以便生成要填充在呈现给教师的GUI的字段中的值。
图14A至14B示出了根据一些实施方案的客户端应用程序210的GUI 1400。该GUI1400可被用于将与所分配的分发相关的报告数据呈现给教师。该GUI 1400可呈现在客户端设备120的显示器302上。如图14A所示,GUI 1400显示在平板电脑诸如客户端设备120-2上。GUI 1400可包括多个元素,该多个元素包括图形、文本、图标、形状、输入字段、显示区域等。在一些实施方案中,GUI 1400响应于教师选择用于GUI 300中的分配的分发的元素312而显示。
GUI 1400包括第一显示区域1410和第二显示区域1420。该第一显示区域1410呈现包括在分发中的信息,诸如分发的标题、分发的截止日期、分发所分配的班级的指示以及包括在由教师分配的分发中的指令。该第二显示区域1420呈现与任何分发和/或由教师附加到该分发的活动相关的信息。
附加到分发并呈现在第二显示区域1420中的每个提交或活动也可与提交或活动相关的报告数据一起呈现。该报告数据可显示在一个或多个元素1422内。例如,如图14A所示,与应用程序二相关联的活动包括:第一元素1422-1,该第一元素显示已完成活动的学生的通过分数与未通过分数的比率;第二元素1422-2,该第二元素显示学生完成活动的平均时间;以及第三元素1422-3,该第三元素显示已完成活动的学生数量与班级中学生总数的比率。
此外,图标1424被呈现邻近提交或活动,该图标使教师能够查看关于报告数据的更详细信息。如图14B所示,选择图标1424可使得GUI 1400被更新以在邻近提交或活动的第二显示区域1420中显示详细信息。应当理解,可自动调节第二显示区域1420以覆盖显示器302中先前被第一显示区域1410和第二显示区域1420两者覆盖的像素。当然,第二显示区域1420的范围可以保持与图14A相同,或者响应于将第一显示区域1410和/或第二显示区域1420相对于显示器302的像素向上或向下重定位的触摸输入手势而手动更新。例如,轻扫手势可被用于向上或向下滚动第一显示区域1410和/或第二显示区域1420。
如图14B所示,可在GUI 1400中呈现与登记在班级的每个单独学生相关的报告数据。例如,详细信息的条目1426包括学生姓名、学生是否通过活动或未通过活动的指示、(如果已完成)每个学生在第三方应用程序中完成活动的时间以及活动是否已完成的指示。应当理解,图14B所示的信息仅仅是可在GUI 1400中呈现的详细信息的类型的一个示例。在其他实施方案中,详细信息可包括其他类型的统计数据或原始进度跟踪信息(例如,在守护进程440接收到动作的时间内由该守护进程440跟踪的每个动作的故障以及与动作相关的信息)。在其他实施方案中,详细信息可包括报告数据的图形表示诸如示出学生随时间推移的进度、学生提交一组问题的答案的链接、提交链接或学生执行的活动的记录等的图形或图表。
在一些实施方案中,详细信息可呈现特定上下文的子部分的进度跟踪信息的详细分解。例如,上下文可描述分配给学生的一组问题的结构。进度跟踪信息可包括与学生提供给该组问题中的每个问题的答案相关的信息。因此,即使这组问题的答案被认为是父上下文,这组问题中的每个问题的子上下文也可跟踪学生提供的每个单独问题的答案。因此,详细信息可使教师能够查看针对每个问题给出的特定答案以及答案是正确的还是错误的。GUI 1400可使进度跟踪数据的此类视觉表示能够容易地由教师查看。
在一些实施方案中,客户端应用程序210可将报告数据的结果输出至待归档的文件或数据结构,以供例如教师和/或管理员在确定班级中每个学生的最终评级时进行后续审查。
图15是根据一些实施方案的用于跟踪客户端设备上的学生活动的方法1500的流程图。该方法1500由客户端设备120执行。在一些实施方案中,方法1500可被实现为被配置为监测与一个或多个应用程序相关联的活动的逻辑。该逻辑可包括由客户端设备120的处理器410执行的用于监测学生完成附加到用于分发的资源的活动的进度的指令。在一些实施方案中,方法1500在由守护进程440实现的逻辑内实现。
在1502处,从一个或多个应用程序接收进度跟踪信息。在一些实施方案中,进度跟踪信息包括对应于生成进度跟踪信息的应用程序的应用程序标识符、对应于与应用程序相关联的特定上下文的上下文标识符、指示生成进度跟踪信息的时间戳或指示在应用程序内执行的操作和/或该操作结果的信息中的至少一者。在一些实施方案中,进度跟踪信息由守护进程在由应用程序生成的API调用内接收。
在1504处,对进度跟踪信息进行过滤。在一些实施方案中,基于确定针对安装在客户端设备上的一个或多个应用程序中的每个应用程序是启用进度跟踪还是禁用进度跟踪来过滤进度跟踪信息。当从针对其禁用进度跟踪的任何应用程序接收到进度跟踪信息时,丢弃该进度跟踪信息,并且当从针对其启用进度跟踪的任何应用程序接收到进度跟踪信息时,处理该进度跟踪信息。在其他实施方案中,接收与一个或多个应用程序相关联的活动上下文的列表,并且将进度跟踪信息与该活动上下文的列表进行比较。例如,将包括在进度跟踪信息中的上下文标识符与包括在活动上下文列表中的多个上下文标识符进行比较。当进度跟踪信息与不包括在该活动上下文列表中的上下文相对应时,丢弃该进度跟踪信息,并且当进度跟踪信息与包括在活动上下文列表中的上下文相对应时,处理该进度跟踪信息。
在1506处,进度跟踪信息存储在可从网络访问的远程数据库中。在一些实施方案中,远程数据库是基于网络的存储服务,该存储服务采用不同的区域来存储限于特定范围的不同类型的数据。可利用基于磁盘的加密来保护存储进度跟踪信息的每个区域,并且可使用验证和消息签署技术来将对数据的访问限于可信服务器。进度跟踪信息可存储在基于网络的存储服务内的个人区域中,该个人区域与针对与安装在客户端设备上的客户端应用程序相关联的用户账户的特定用户标识符相关联。
在1508处,生成与进度跟踪信息相关联的元数据。元数据可包括进度跟踪信息中的信息的子集诸如用户标识符和/或上下文标识符,以及信息诸如对存储在远程数据库460中的进度跟踪信息的引用。
在1510处,将进度跟踪信息的元数据传输到进度流水线。在一些实施方案中,进度流水线增强并汇总从与一个或多个组织中的一个或多个班级中的多个不同学生相关联的多个不同客户端设备接收的进度跟踪信息。进度流水线可包括在多个不同服务器设备上实现的多个服务。
图16是根据一些实施方案的利用通过网络可用的一个或多个服务来处理进度跟踪信息的方法1600的流程图。该方法1600由进度流水线250执行。在一些实施方案中,方法1600可被实现为被配置为处理进度跟踪信息或对应于该进度跟踪信息的元数据中的至少一者的逻辑。该逻辑可包括由服务器设备110的处理器410执行的用于处理进度跟踪信息和/或元数据的指令。在一些实施方案中,方法1600在由一个或多个服务实现的逻辑内实现,该一个或多个服务包括可接入服务1210、富集服务1220、分布式文件系统1230、汇总器服务1240、可退出服务1260和存放服务1270。
在1602处,从多个客户端设备接收对应于进度跟踪信息的元数据。在一些实施方案中,元数据可包括对存储在远程数据库中的进度跟踪信息的引用。元数据还可包括对应于进度跟踪信息的类标识符、用户标识符或上下文标识符中的至少一者。
在1604处,元数据富含附加信息。在一些实施方案中,由附加数据补充的元数据将进度跟踪信息与组织标识符、类标识符、目录服务标识符、上下文标识符和任选地分发标识符相关联。
在1606处,生成数据结构,该数据结构包括在特定组织的跟踪窗口期间由进度流水线接收的元数据的子集。在一些实施方案中,分布式文件系统利用至少一个日志节点,该至少一个日志节点使在跟踪窗口期间接收的所有元数据能够从分布式文件系统检索。服务将元数据分选到对应于在跟踪窗口期间将元数据提交至进度流水线的一个或多个组织中的每个组织的不同数据结构。
在1608处,处理数据结构以基于类标识符和/或上下文标识符来生成经排序的元数据。排序还可以基于目录服务标识符或内部标识符。可针对为一个或多个组织创建的每个数据结构执行1608处的操作。
在1610处,从远程数据库检索对应于经排序的元数据的进度跟踪信息。包括在元数据中的引用可被用于请求来自远程数据库的进度跟踪信息。
在1612处,进度跟踪信息存储在可由报告服务访问的存储器中。在一些实施方案中,从目录服务标识符或内部标识符取消引用进度跟踪信息,并且进度标识符替换与该进度跟踪信息相关联的元数据中的目录服务标识符或内部标识符。进度标识符和进度跟踪信息可存储在报告服务可访问的基于网络的存储服务中。除了间接地通过报告服务之外,客户端设备可能无法访问基于网络的存储服务。
图17示出了根据一些实施方案的可被用于实现本文所述的各种装置和/或方法的示例性计算设备1700的详细视图。具体地讲,该详细视图示出了可被包括在图1至图14所示和/或本文所述的计算设备中的各种部件。例如,服务器设备110、客户端设备120或包括任何网络设备和/或消费型电子产品的任何其他设备可包括计算设备1700的部件。
如图17所示,计算设备1700可包括表示用于控制计算设备1700的总体操作的微处理器或控制器的处理器1702。计算设备1700还可包括用户输入设备1708,该用户输入设备允许计算设备1700的用户与计算设备1700进行交互。例如,用户输入设备1708可采用多种形式诸如按钮、小键盘、拨号盘、触摸屏、音频输入接口、视觉/图像捕获输入接口、传感器数据形式的输入等。更进一步地讲,计算设备1700可包括可由处理器1702控制以向用户呈现视觉信息的显示器1710(屏幕显示器)。数据总线1716可促进至少存储设备1740、处理器1702和控制器1713之间的数据传输。控制器1713可用于通过装置控制总线1714与不同的装置进行交互并对不同的装置进行控制。计算设备1700还可包括耦接至数据链路1712的网络/总线接口1711。在无线连接的情况下,网络/总线接口1711可包括无线收发器。
计算设备1700还包括存储设备1740,该存储设备可包括单个磁盘或多个磁盘(例如,硬盘驱动器),并且包括管理存储设备1740内的一个或多个分区的存储管理模块。在一些实施方案中,存储设备1740可包括闪存存储器、半导体(固态)存储器等。计算设备1700还可包括随机存取存储器(RAM)1720和只读存储器(ROM)1722。ROM 1722可存储将以非易失性方式执行的程序、实用程序或过程。RAM 1720可提供易失性数据存储并存储与计算设备1700的操作相关的指令。
如上所述,本技术的一个方面在于采集并使用得自各种来源的数据,以跟踪学生完成分配的进度。本公开预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可包括人口统计数据、基于定位的数据、电话号码、电子邮件地址、twitter ID、家庭地址、与用户的健康或健身等级相关的数据或记录(例如,生命信号测量、药物信息、锻炼信息)、出生日期、或任何其他识别信息或个人信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,个人信息数据可被用于改善个体上学的学习体验。因此,使用此类个人信息数据使教师能够调整课程或针对学生的需求进行个人关注。此外,本公开还预期个人信息数据有益于用户的其他用途。例如,健康和健身数据可用于向用户的总体健康状况提供见解,或者可用作使用技术来追求健康目标的个人的积极反馈。
本公开设想负责采集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。此类政策应该能被用户方便地访问,并应随着数据的采集和/或使用变化而被更新。来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。此外,应在收到用户知情同意后进行此类采集/共享。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应当调整政策和实践,以便采集和/或访问的特定类型的个人信息数据,并适用于包括管辖范围的具体考虑的适用法律和标准。例如,在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸如健康保险流通和责任法案(HIPAA);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。因此,在每个国家应为不同的个人数据类型保持不同的隐私实践。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就进度跟踪服务而言,本发明技术可被配置为在注册服务期间或之后任何时候允许用户选择“选择加入”或“选择退出”参与对个人信息数据的收集。又如,用户可选择不提供特定第三方应用程序的进度跟踪信息。再如,用户可选择限制所收集的数据的范围或完全禁止收集进度跟踪信息。除了提供“选择加入”和“选择退出”选项外,本公开设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。可在适当时通过移除特定标识符(例如,出生日期等)、控制所存储数据的量或特异性(例如,在城市级别而不是在地址级别收集定位数据)、控制数据如何被存储(例如,在用户之间聚合数据)、和/或其他方法来促进去标识。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可基于非个人信息数据或绝对最小量的个人信息(诸如进度跟踪流水线可用的其他非个人信息或公开可用信息)来实现进度跟踪。
可单独地或以任何组合使用所述实施方案的各个方面、实施方案、具体实施或特征。可由软件、硬件或硬件与软件的组合来实施所述实施方案的各个方面。所述实施方案还可实施为在非暂态计算机可读介质上的计算机可读代码。非暂态计算机可读介质为可存储数据的任何数据存储设备,该数据之后可由计算机系统读取。非暂态计算机可读介质的示例包括只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带和光学数据存储设备。非暂态计算机可读介质也可分布在网络耦接的计算机系统上,使得计算机可读代码以分布方式存储和执行。
为了说明的目的,前述描述使用具体命名以提供对所述实施方案的透彻理解。然而,对于本领域的技术人员而言将显而易见的是,不需要具体细节即可实践所述实施方案。因此,具体实施方案的前述描述被呈现用于例示和描述的目的。前述描述不旨在为穷举性的或将所述的实施方案限制为所公开的精确形式。对于本领域的普通技术人员而言将显而易见的是,鉴于上面的教导内容,许多修改和变型是可行的。
Claims (60)
1.一种用于跟踪客户端设备上的学生活动的方法,所述方法包括由在所述客户端设备上执行的后台进程:
从在所述客户端设备上的一个或多个应用程序接收与学生活动相关的进度跟踪信息;
对所述进度跟踪信息进行过滤以生成经过滤的进度跟踪信息;
将所述经过滤的进度跟踪信息存储在远程数据库中;
生成与所述经过滤的进度跟踪信息相关联的元数据;以及
将所述元数据通过网络传输到所述客户端设备可访问的至少一个服务。
2.根据权利要求1所述的方法,其中所述一个或多个应用程序中的每个应用程序实现软件框架的至少一部分,所述软件框架的至少一部分使得所述应用程序响应于在所述应用程序内执行的操作而生成对所述后台进程的应用程序编程接口(API)调用。
3.根据权利要求1所述的方法,其中对所述进度跟踪信息进行过滤包括:
确定针对所述一个或多个应用程序中的每个应用程序是启用进度跟踪还是禁用进度跟踪;以及
当从针对其禁用进度跟踪的任何应用程序接收到所述进度跟踪信息时,丢弃所述进度跟踪信息,或者
当从针对其启用进度跟踪的任何应用程序接收到所述进度跟踪信息时,处理所述进度跟踪信息以生成所述经过滤的进度跟踪信息。
4.根据权利要求1所述的方法,其中对所述进度跟踪信息进行过滤包括:
接收与所述一个或多个应用程序相关联的活动上下文的列表;
将包括在所述进度跟踪信息中的上下文标识符与活动上下文的所述列表进行比较;以及
当所述上下文标识符未包括在活动上下文的所述列表中时,丢弃所述进度跟踪信息,或者
当所述上下文标识符包括在活动上下文的所述列表中时,处理所述进度跟踪信息以生成所述经过滤的进度跟踪信息。
5.根据权利要求1所述的方法,其中使用针对所述远程数据库中的每个区域的磁盘加密来保护存储在所述远程数据库中的所述进度跟踪信息。
6.根据权利要求1所述的方法,其中所述远程数据库是分配到存储不同数据的多个区域中的基于网络的存储服务,每个区域的范围被限制为组织标识符、类标识符、用户标识符、上下文标识符或分发标识符中的至少一者的任何组合。
7.根据权利要求6所述的方法,其中所述进度跟踪信息存储在所述基于网络的存储服务内的个人区域中,所述个人区域与针对与安装在所述客户端设备上的客户端应用程序相关联的用户账户的特定用户标识符相关联。
8.根据权利要求1所述的方法,其中所述元数据包括对所述远程数据库中的所述进度跟踪信息的引用以及类标识符、用户标识符或上下文标识符中的至少一者。
9.根据权利要求8所述的方法,其中所述上下文标识符包括在所述元数据中。
10.至少一种非暂态计算机可读存储介质,所述至少一种非暂态计算机可读存储介质被配置为存储指令,所述指令在由包括在客户端设备中的至少一个处理器执行时使得所述客户端设备通过执行包括如下的步骤来实现在所述客户端设备上执行并跟踪在所述客户端设备上的学生活动的后台进程:
从在所述客户端设备上的一个或多个应用程序接收与学生活动相关的进度跟踪信息;
对所述进度跟踪信息进行过滤以生成经过滤的进度跟踪信息;
将所述经过滤的进度跟踪信息存储在远程数据库中;
生成与所述经过滤的进度跟踪信息相关联的元数据;以及
将所述元数据通过网络传输到所述客户端设备可访问的至少一个服务。
11.根据权利要求10所述的至少一种非暂态计算机可读存储介质,其中所述一个或多个应用程序中的每个应用程序实现软件框架的至少一部分,所述软件框架的至少一部分使得所述应用程序响应于在所述应用程序内执行的操作而生成对所述后台进程的应用程序编程接口(API)调用。
12.根据权利要求10所述的至少一种非暂态计算机可读存储介质,其中对所述进度跟踪信息进行过滤包括:
确定针对所述一个或多个应用程序中的每个应用程序是启用进度跟踪还是禁用进度跟踪;以及
当从针对其禁用进度跟踪的任何应用程序接收到所述进度跟踪信息时,丢弃所述进度跟踪信息,或者
当从针对其启用进度跟踪的任何应用程序接收到所述进度跟踪信息时,处理所述进度跟踪信息以生成所述经过滤的进度跟踪信息。
13.根据权利要求10所述的至少一种非暂态计算机可读存储介质,其中对所述进度跟踪信息进行过滤包括:
接收与所述一个或多个应用程序相关联的活动上下文的列表;
将包括在所述进度跟踪信息中的上下文标识符与活动上下文的所述列表进行比较;以及
当所述上下文标识符未包括在活动上下文的所述列表中时,丢弃所述进度跟踪信息,或者
当所述上下文标识符包括在活动上下文的所述列表中时,处理所述进度跟踪信息以生成所述经过滤的进度跟踪信息。
14.根据权利要求10所述的至少一种非暂态计算机可读存储介质,其中使用针对所述远程数据库中的每个区域的磁盘加密来保护存储在所述远程数据库中的所述进度跟踪信息。
15.根据权利要求10所述的至少一种非暂态计算机可读存储介质,其中所述远程数据库是分配到存储不同数据的多个区域中的基于网络的存储服务,每个区域的范围被限制为组织标识符、类标识符、用户标识符、上下文标识符或分发标识符中的至少一者的任何组合。
16.根据权利要求15所述的至少一种非暂态计算机可读存储介质,其中所述进度跟踪信息存储在所述基于网络的存储服务内的个人区域中,所述个人区域与针对与安装在所述客户端设备上的客户端应用程序相关联的用户账户的特定用户标识符相关联。
17.根据权利要求10所述的至少一种非暂态计算机可读存储介质,其中所述元数据包括类标识符、用户标识符或上下文标识符中的至少一者以及对所述远程数据库中的所述进度跟踪信息的引用。
18.根据权利要求17所述的至少一种非暂态计算机可读存储介质,其中所述上下文标识符包括在所述元数据中。
19.一种被配置为跟踪学生活动的客户端设备,所述客户端设备包括:
至少一个处理器;以及
至少一个存储器,所述至少一个存储器存储指令,所述指令在由所述至少一个处理器执行时使得所述客户端设备实现执行包括如下的步骤的后台进程:
从在所述客户端设备上的一个或多个应用程序接收与学生活动相关的进度跟踪信息;
对所述进度跟踪信息进行过滤以生成经过滤的进度跟踪信息;
将所述经过滤的进度跟踪信息存储在远程数据库中;
生成与所述经过滤的进度跟踪信息相关联的元数据;以及
将所述元数据通过网络传输到所述客户端设备可访问的至少一个服务。
20.根据权利要求19所述的客户端设备,其中所述一个或多个应用程序中的每个应用程序实现软件框架的至少一部分,所述软件框架的至少一部分使得所述应用程序响应于在所述应用程序内执行的操作而生成对所述后台进程的应用程序编程接口(API)调用。
21.根据权利要求19所述的客户端设备,其中对所述进度跟踪信息进行过滤包括:
确定针对所述一个或多个应用程序中的每个应用程序是启用进度跟踪还是禁用进度跟踪;以及
当从针对其禁用进度跟踪的任何应用程序接收到所述进度跟踪信息时,丢弃所述进度跟踪信息,或者
当从针对其启用进度跟踪的任何应用程序接收到所述进度跟踪信息时,处理所述进度跟踪信息以生成所述经过滤的进度跟踪信息。
22.根据权利要求19所述的客户端设备,其中对所述进度跟踪信息进行过滤包括:
接收与所述一个或多个应用程序相关联的活动上下文的列表;
将包括在所述进度跟踪信息中的上下文标识符与活动上下文的所述列表进行比较;以及
当所述上下文标识符未包括在活动上下文的所述列表中时,丢弃所述进度跟踪信息,或者
当所述上下文标识符包括在活动上下文的所述列表中时,处理所述进度跟踪信息以生成所述经过滤的进度跟踪信息。
23.根据权利要求19所述的客户端设备,其中使用针对所述远程数据库中的每个区域的磁盘加密来保护存储在所述远程数据库中的所述进度跟踪信息。
24.根据权利要求19所述的客户端设备,其中所述远程数据库是分配到存储不同数据的多个区域中的基于网络的存储服务,每个区域的范围被限制为组织标识符、类标识符、用户标识符、上下文标识符或分发标识符中的至少一者的任何组合。
25.根据权利要求24所述的客户端设备,其中所述进度跟踪信息存储在所述基于网络的存储服务内的个人区域中,所述个人区域与针对与安装在所述客户端设备上的客户端应用程序相关联的用户账户的特定用户标识符相关联。
26.根据权利要求19所述的客户端设备,其中所述元数据包括类标识符、用户标识符或上下文标识符中的至少一者以及对所述远程数据库中的所述进度跟踪信息的引用。
27.根据权利要求26所述的客户端设备,其中所述上下文标识符包括在所述元数据中。
28.一种用于利用通过网络可用的一个或多个服务来处理进度跟踪信息的方法,所述方法包括:
从多个客户端设备接收对应于进度跟踪信息的元数据;
生成数据结构,所述数据结构包括在由组织标识符识别的特定组织的跟踪窗口期间接收的所述元数据的子集;
处理所述数据结构以基于类标识符和上下文标识符来生成经排序的元数据;以及
将对应于所述经排序的元数据的所述进度跟踪信息存储在服务可访问的存储器中。
29.根据权利要求28所述的方法,还包括:
富集所述元数据以包括附加信息。
30.根据权利要求29所述的方法,其中所述附加信息包括所述组织标识符、目录服务标识符或分发标识符中的至少一者。
31.根据权利要求28所述的方法,其中所述一个或多个服务包括可接入服务、富集服务、分布式文件系统、汇总器服务、可退出服务和存放服务中的至少一者。
32.至少一种非暂态计算机可读存储介质,所述至少一种非暂态计算机可读存储介质被配置为存储指令,所述指令在由包括在计算设备中的至少一个处理器执行时使得所述计算设备通过执行包括如下的步骤来利用通过网络可用的一个或多个服务处理进度跟踪信息:
从多个客户端设备接收对应于进度跟踪信息的元数据;
生成数据结构,所述数据结构包括在由组织标识符识别的特定组织的跟踪窗口期间接收的所述元数据的子集;
处理所述数据结构以基于类标识符和上下文标识符来生成经排序的元数据;以及
将对应于所述经排序的元数据的所述进度跟踪信息存储在服务可访问的存储器中。
33.根据权利要求32所述的至少一种非暂态计算机可读存储介质,其中所述步骤还包括:
富集所述元数据以包括附加信息。
34.根据权利要求33所述的至少一种非暂态计算机可读存储介质,其中所述附加信息包括所述组织标识符、目录服务标识符或分发标识符中的至少一者。
35.根据权利要求32所述的至少一种非暂态计算机可读存储介质,其中所述一个或多个服务包括可接入服务、富集服务、分布式文件系统、汇总器服务、可退出服务和存放服务中的至少一者。
36.一种计算设备,所述计算设备被配置为利用通过网络可用的一个或多个服务来处理进度跟踪信息,所述计算设备包括:
至少一个处理器;以及
至少一个存储器,所述至少一个存储器存储指令,所述指令在由所述至少一个处理器执行时使得所述计算设备:
从多个客户端设备接收对应于进度跟踪信息的元数据;
生成数据结构,所述数据结构包括在由组织标识符识别的特定组织的跟踪窗口期间接收的所述元数据的子集;
处理所述数据结构以基于类标识符和上下文标识符来生成经排序的元数据;以及
将对应于所述经排序的元数据的所述进度跟踪信息存储在服务可访问的存储器中。
37.根据权利要求36所述的计算设备,其中所述至少一个处理器进一步使得所述计算设备:
富集所述元数据以包括附加信息。
38.根据权利要求37所述的计算设备,其中所述附加信息包括所述组织标识符、目录服务标识符或分发标识符中的至少一者。
39.根据权利要求36所述的计算设备,其中所述一个或多个服务包括可接入服务、富集服务、分布式文件系统、汇总器服务、可退出服务和存放服务中的至少一者。
40.一种用于跟踪被分配一个或多个电子分发的学生的进度的方法,所述方法包括由连接到网络的至少一个服务器设备:
实现用于跟踪学生完成所述一个或多个电子分发的进度的服务,其中所述服务包括:
分发服务,所述分发服务使所述一个或多个电子分发能够被创建并链接到与安装在至少一个客户端设备上的一个或多个应用程序相关联的上下文,其中所述一个或多个应用程序中的每个应用程序实现软件框架的至少一部分,以及
进度流水线,所述进度流水线包括被配置为处理由安装在所述至少一个客户端设备上的所述一个或多个应用程序生成的进度跟踪信息的多个服务。
41.根据权利要求40所述的方法,其中所述进度流水线包括第一服务,所述第一服务被配置为:
接收对应于进度跟踪信息的元数据;
通过用目录服务标识符或内部标识符替换所述用户标识符来对包括在所述元数据中的用户标识符取消引用;
确定针对所述用户标识符、所述目录服务标识符或所述内部标识符中的一者是启用进度跟踪还是禁用进度跟踪;以及
基于所述确定来对所述元数据进行过滤。
42.根据权利要求41所述的方法,其中所述进度流水线包括第二服务,所述第二服务被配置为:
利用组织标识符、所述目录服务标识符、所述内部标识符或分发标识符中的至少一者来富集所述元数据。
43.根据权利要求41所述的方法,其中所述进度流水线包括第二服务,所述第二服务被配置为:
从包括至少一个日志节点的分布式文件系统检索与跟踪窗口对应的元数据的子集;
生成数据结构,所述数据结构包括与包括在元数据的所述子集中的特定组织标识符相关联的元数据的所述子集;
将所述数据结构存储在存储服务中;以及
将对应于所述数据结构的引用推送到队列中。
44.根据权利要求41所述的方法,其中所述进度流水线包括第二服务,所述第二服务被配置为:
处理数据结构以基于类标识符、分发标识符、上下文标识符、所述用户标识符、所述目录服务标识符或所述内部标识符中的至少一者来生成经排序的元数据。
45.根据权利要求41所述的方法,其中所述进度流水线包括第二服务,所述第二服务被配置为:
将所述进度跟踪信息与和所述用户标识符、所述目录服务标识符或所述内部标识符中的一者相关联的进度标识符相关联;以及
将所述进度跟踪信息和所述进度标识符存储在基于网络的存储服务中。
46.根据权利要求40所述的方法,其中每个客户端设备包括守护进程,所述守护进程被配置为将存储在所述客户端设备上的本地数据库中的数据同步到远程数据库,使得所述数据可由第二客户端设备访问。
47.至少一种非暂态计算机可读存储介质,所述至少一种非暂态计算机可读存储介质被配置为存储指令,所述指令在由包括在计算设备中的至少一个处理器执行时使得所述计算设备通过执行包括如下的步骤来跟踪被分配一个或多个电子分发的学生的进度:
实现用于跟踪学生完成所述一个或多个电子分发的进度的服务,其中所述服务包括:
分发服务,所述分发服务使所述一个或多个电子分发能够被创建并链接到与安装在至少一个客户端设备上的一个或多个应用程序相关联的上下文,其中所述一个或多个应用程序中的每个应用程序实现软件框架的至少一部分,以及
进度流水线,所述进度流水线包括被配置为处理由安装在所述至少一个客户端设备上的所述一个或多个应用程序生成的进度跟踪信息的多个服务。
48.根据权利要求47所述的至少一种非暂态计算机可读存储介质,其中所述进度流水线包括第一服务,所述第一服务被配置为:
接收对应于进度跟踪信息的元数据;
通过用目录服务标识符或内部标识符替换所述用户标识符来对包括在所述元数据中的用户标识符取消引用;
确定针对所述用户标识符、所述目录服务标识符或所述内部标识符中的一者是启用进度跟踪还是禁用进度跟踪;以及
基于所述确定来对所述元数据进行过滤。
49.根据权利要求48所述的至少一种非暂态计算机可读存储介质,其中所述进度流水线包括第二服务,所述第二服务被配置为:
利用组织标识符、所述目录服务标识符、所述内部标识符或分发标识符中的至少一者来富集所述元数据。
50.根据权利要求48所述的至少一种非暂态计算机可读存储介质,其中所述进度流水线包括第二服务,所述第二服务被配置为:
从包括至少一个日志节点的分布式文件系统检索与跟踪窗口对应的元数据的子集;
生成数据结构,所述数据结构包括与包括在元数据的所述子集中的特定组织标识符相关联的元数据的所述子集;
将所述数据结构存储在存储服务中;以及
将对应于所述数据结构的引用推送到队列中。
51.根据权利要求48所述的至少一种非暂态计算机可读存储介质,其中所述进度流水线包括第二服务,所述第二服务被配置为:
处理数据结构以基于类标识符、分发标识符、上下文标识符、所述用户标识符、所述目录服务标识符或所述内部标识符中的至少一者来生成经排序的元数据。
52.根据权利要求48所述的至少一种非暂态计算机可读存储介质,其中所述进度流水线包括第二服务,所述第二服务被配置为:
将所述进度跟踪信息与和所述用户标识符、所述目录服务标识符或所述内部标识符中的一者相关联的进度标识符相关联;以及
将所述进度跟踪信息和所述进度标识符存储在基于网络的存储服务中。
53.根据权利要求47所述的至少一种非暂态计算机可读存储介质,其中每个客户端设备包括守护进程,所述守护进程被配置为将存储在所述客户端设备上的本地数据库中的数据同步到远程数据库,使得所述数据可由第二客户端设备访问。
54.一种用于跟踪被分配一个或多个电子分发的学生的进度的系统,所述系统包括:
一个或多个服务器设备,所述一个或多个服务器设备连接到网络并且被配置为实现用于跟踪学生完成所述一个或多个电子分发的进度的服务,所述服务包括:
分发服务,所述分发服务使所述一个或多个电子分发能够被创建并链接到与安装在至少一个客户端设备上的一个或多个应用程序相关联的上下文,其中所述一个或多个应用程序中的每个应用程序实现软件框架的至少一部分;以及
进度流水线,所述进度流水线包括被配置为处理由安装在所述至少一个客户端设备上的所述一个或多个应用程序生成的进度跟踪信息的多个服务。
55.根据权利要求54所述的系统,其中所述进度流水线包括第一服务,所述第一服务被配置为:
接收对应于进度跟踪信息的元数据;
通过用目录服务标识符或内部标识符替换所述用户标识符来对包括在所述元数据中的用户标识符取消引用;
确定针对所述用户标识符、所述目录服务标识符或所述内部标识符中的一者是启用进度跟踪还是禁用进度跟踪;以及
基于所述确定来对所述元数据进行过滤。
56.根据权利要求55所述的系统,其中所述进度流水线包括第二服务,所述第二服务被配置为:
利用组织标识符、所述目录服务标识符、所述内部标识符或分发标识符中的至少一者来富集所述元数据。
57.根据权利要求55所述的系统,其中所述进度流水线包括第二服务,所述第二服务被配置为:
从包括至少一个日志节点的分布式文件系统检索与跟踪窗口对应的元数据的子集;
生成数据结构,所述数据结构包括与包括在元数据的所述子集中的特定组织标识符相关联的元数据的所述子集;
将所述数据结构存储在存储服务中;以及
将对应于所述数据结构的引用推送到队列中。
58.根据权利要求55所述的系统,其中所述进度流水线包括第二服务,所述第二服务被配置为:
处理数据结构以基于类标识符、分发标识符、上下文标识符、所述用户标识符、所述目录服务标识符或所述内部标识符中的至少一者来生成经排序的元数据。
59.根据权利要求55所述的系统,其中所述进度流水线包括第二服务,所述第二服务被配置为:
将所述进度跟踪信息与和所述用户标识符、所述目录服务标识符或所述内部标识符中的一者相关联的进度标识符相关联;以及
将所述进度跟踪信息和所述进度标识符存储在基于网络的存储服务中。
60.根据权利要求54所述的系统,其中每个客户端设备包括守护进程,所述守护进程被配置为将存储在所述客户端设备上的本地数据库中的数据同步到远程数据库,使得所述数据可由第二客户端设备访问。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862648361P | 2018-03-26 | 2018-03-26 | |
US62/648,361 | 2018-03-26 | ||
US16/258,161 | 2019-01-25 | ||
US16/258,161 US20190297155A1 (en) | 2018-03-26 | 2019-01-25 | Software framework for progress tracking in a classroom setting |
PCT/US2019/021228 WO2019190716A1 (en) | 2018-03-26 | 2019-03-07 | Software framework for progress tracking in a classroom setting |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111788600A true CN111788600A (zh) | 2020-10-16 |
Family
ID=67985915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980016106.1A Pending CN111788600A (zh) | 2018-03-26 | 2019-03-07 | 用于教室环境中的进度跟踪的软件框架 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20190297155A1 (zh) |
EP (1) | EP3724845A4 (zh) |
JP (3) | JP7014915B2 (zh) |
KR (1) | KR102526031B1 (zh) |
CN (1) | CN111788600A (zh) |
AU (2) | AU2019241882A1 (zh) |
BR (1) | BR112020016783A2 (zh) |
WO (1) | WO2019190716A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102592053B1 (ko) * | 2016-07-04 | 2023-10-23 | 삼성전자주식회사 | 유저 인터페이스 제공 방법 및 이를 지원하는 전자 장치 |
CN111369848B (zh) * | 2020-02-14 | 2023-01-20 | 广州开得联智能科技有限公司 | 基于课件内容互动的方法、装置、存储介质和电子设备 |
US11805176B1 (en) * | 2020-05-11 | 2023-10-31 | Apple Inc. | Toolbox and context for user interactions |
US20230036686A1 (en) * | 2021-07-28 | 2023-02-02 | Lenovo (Singapore) Pte. Ltd. | Method and device for monitoring electronic devices |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808520A (zh) * | 2005-01-17 | 2006-07-26 | 富士通株式会社 | 学习程序、学习方法及学习装置 |
CN101657838A (zh) * | 2007-04-12 | 2010-02-24 | 微软公司 | 用于计算机化学习环境中的学习应用程序的支架式支持 |
CN104603827A (zh) * | 2012-05-16 | 2015-05-06 | 学习时代公司 | 在线教育系统中的指导者调整的引导学习 |
US9269274B1 (en) * | 2010-09-22 | 2016-02-23 | Amazon Technologies, Inc. | Course content and assignment distribution |
CN105405081A (zh) * | 2015-11-09 | 2016-03-16 | 英业达科技有限公司 | 记录学习进度以提供接续学习的系统及其方法 |
CN105513443A (zh) * | 2015-12-08 | 2016-04-20 | 英业达科技有限公司 | 依学习历程更新学习记录以回复学习进度的系统及方法 |
CN105574630A (zh) * | 2014-10-14 | 2016-05-11 | 北大方正集团有限公司 | 在线课程的管理方法及管理系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5577186A (en) | 1994-08-01 | 1996-11-19 | Mann, Ii; S. Edward | Apparatus and method for providing a generic computerized multimedia tutorial interface for training a user on multiple applications |
JP3745320B2 (ja) | 2002-08-09 | 2006-02-15 | 欽也 玉木 | 教育指導支援方法および支援プログラム |
US7703389B2 (en) * | 2003-08-14 | 2010-04-27 | Mclemore John D | Cooking apparatus with cooking characteristic monitoring system |
JP2007264027A (ja) * | 2006-03-27 | 2007-10-11 | Nec Corp | 学習システムおよびその履歴情報管理方法 |
US20080254432A1 (en) * | 2007-04-13 | 2008-10-16 | Microsoft Corporation | Evaluating learning progress and making recommendations in a computerized learning environment |
US20090035733A1 (en) | 2007-08-01 | 2009-02-05 | Shmuel Meitar | Device, system, and method of adaptive teaching and learning |
US20090198542A1 (en) * | 2008-02-01 | 2009-08-06 | D Amore Tianyu L | Distributing premium content with advertising sponsorship |
KR101319666B1 (ko) * | 2013-02-27 | 2013-10-17 | 주식회사 위두커뮤니케이션즈 | 전자서적과 연동되는 게임의 제공 장치 |
US20140272889A1 (en) * | 2013-03-15 | 2014-09-18 | Career Education Center | Computer implemented learning system and methods of use thereof |
US9368042B2 (en) | 2014-02-19 | 2016-06-14 | Pearson Education, Inc. | Educational-app engine for representing conceptual understanding using student populations' electronic response latencies |
US9754503B2 (en) * | 2014-03-24 | 2017-09-05 | Educational Testing Service | Systems and methods for automated scoring of a user's performance |
US20160027318A1 (en) * | 2014-07-23 | 2016-01-28 | Amitabh Rao | Motivational and Practice Aid App |
US10163358B2 (en) * | 2015-09-23 | 2018-12-25 | Chethan Yadav | Method and system for student project management |
US10395554B2 (en) * | 2017-02-28 | 2019-08-27 | Information Systems Audit and Control Association, Inc. | Scoring of user operations performed on a computer in a computerized learning system |
US10475349B2 (en) * | 2017-03-10 | 2019-11-12 | SmartNoter Inc. | System and method of producing and providing user specific educational digital media modules |
-
2019
- 2019-01-25 US US16/258,161 patent/US20190297155A1/en active Pending
- 2019-03-07 BR BR112020016783-5A patent/BR112020016783A2/pt unknown
- 2019-03-07 CN CN201980016106.1A patent/CN111788600A/zh active Pending
- 2019-03-07 EP EP19776533.2A patent/EP3724845A4/en active Pending
- 2019-03-07 AU AU2019241882A patent/AU2019241882A1/en not_active Abandoned
- 2019-03-07 KR KR1020207024265A patent/KR102526031B1/ko active IP Right Grant
- 2019-03-07 JP JP2020545163A patent/JP7014915B2/ja active Active
- 2019-03-07 WO PCT/US2019/021228 patent/WO2019190716A1/en unknown
-
2022
- 2022-01-20 JP JP2022007219A patent/JP7431869B2/ja active Active
- 2022-05-11 AU AU2022203160A patent/AU2022203160A1/en active Pending
-
2024
- 2024-02-02 JP JP2024015014A patent/JP2024056770A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808520A (zh) * | 2005-01-17 | 2006-07-26 | 富士通株式会社 | 学习程序、学习方法及学习装置 |
CN101657838A (zh) * | 2007-04-12 | 2010-02-24 | 微软公司 | 用于计算机化学习环境中的学习应用程序的支架式支持 |
US9269274B1 (en) * | 2010-09-22 | 2016-02-23 | Amazon Technologies, Inc. | Course content and assignment distribution |
CN104603827A (zh) * | 2012-05-16 | 2015-05-06 | 学习时代公司 | 在线教育系统中的指导者调整的引导学习 |
CN105574630A (zh) * | 2014-10-14 | 2016-05-11 | 北大方正集团有限公司 | 在线课程的管理方法及管理系统 |
CN105405081A (zh) * | 2015-11-09 | 2016-03-16 | 英业达科技有限公司 | 记录学习进度以提供接续学习的系统及其方法 |
CN105513443A (zh) * | 2015-12-08 | 2016-04-20 | 英业达科技有限公司 | 依学习历程更新学习记录以回复学习进度的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3724845A1 (en) | 2020-10-21 |
JP2022068154A (ja) | 2022-05-09 |
KR20200104922A (ko) | 2020-09-04 |
JP2021518940A (ja) | 2021-08-05 |
KR102526031B1 (ko) | 2023-04-25 |
AU2022203160A1 (en) | 2022-06-02 |
BR112020016783A2 (pt) | 2020-12-15 |
JP2024056770A (ja) | 2024-04-23 |
JP7431869B2 (ja) | 2024-02-15 |
AU2019241882A1 (en) | 2020-08-06 |
WO2019190716A1 (en) | 2019-10-03 |
US20190297155A1 (en) | 2019-09-26 |
JP7014915B2 (ja) | 2022-02-01 |
EP3724845A4 (en) | 2021-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7431869B2 (ja) | 教室環境での進捗を追跡するためのソフトウェアフレームワーク | |
CA2555280A1 (en) | Semantic knowledge retrieval management and presentation | |
US11113356B2 (en) | Capturing and managing knowledge from social networking interactions | |
US20160104261A1 (en) | Systems and methods for integrating an e-learning course delivery platform with an enterprise social network | |
US20230086427A1 (en) | Share pools for sharing files via a storage service | |
US20240005806A1 (en) | System and method for obtaining metadata about content stored in a repository | |
LaGuardia | Library instruction in the digital age | |
Murphy | Predatory publishing and the response from the scholarly community | |
Neuhaus et al. | Ubiquitous LibGuides: Variations in presence, production, application, and convention | |
US20150079575A1 (en) | Method and System for Facilitating Discussion of Issues Pertaining to Subject Matter Taught By A Course | |
Lédeczi et al. | Beyond CS principles: Bringing the frontiers of computing to K12 | |
US20220245110A1 (en) | System and method for communication between repositories | |
Tang et al. | Enterprise content management system for IT training | |
Khan et al. | viCyber: An Intelligent Curriculum Design Tool for Cybersecurity Education | |
Nagar | Developing big data curriculum with open source infrastructure | |
Mountrouidou et al. | CyberPaths: Cyber security labs for liberal arts institutions using the NSF global environment for network innovations (GENI) | |
Cui et al. | PrEV: Preservation Explorer and Vault for Web 2.0 User-Generated Content | |
CHIBUEZE | DEVELOPMENT OF A WEB-BASED STUDENT PROJECT MANAGEMENT SYSTEM | |
Posner et al. | Topics for an Introductory Data Science Course | |
Garcia et al. | Teaching Cybersecurity in CSP (or Any CS Class) Introducing the Security Mindset | |
Martinez | Is Satire Saving Our Nation? Mockery and American Politics: By Sophia A. McClennen and Remy M. Maisel New York: Palgrave Macmillan, 2014, 240 pp. | |
Ribbons | Navigating the Net: A Source of Nursing and Midwifery Knowledge | |
Tîrziman | Libraries in the World Wide Web connection | |
Vandermolen | A Smarter Intelink | |
Renee'Davis | ALEX: An efficient computer network-based education system |
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 |