集中客户端应用管理的制作方法

文档序号:11635165阅读:262来源:国知局
集中客户端应用管理的制造方法与工艺

相关申请

本国际申请要求2015年11月24日提交的美国申请no.14/950,012的优先权,该申请要求2014年11月26日提交的题为“centralizedclientapplicationmanagement”的美国临时申请no.62/085,136的优先权,其各自的全部内容通过引用并入本文。

本公开的实施例总体涉及移动计算技术,并更具体地但并非限制性地涉及集中客户端应用管理。



背景技术:

智能电话、平板电脑和其他智能设备在消费者中越来越受欢迎。这些设备允许消费者下载并安装由第三方开发者提交给集中应用商店(也称为“app商店”)的各种应用(也称为“app”)。提交过程可以包括可以延迟几天或甚至几周将提交的应用发布给消费者的批准过程。当需要紧急更新或改变特定应用时,这些延迟可能是有害的。

附图说明

各个附图仅示出了本公开的示例实施例,而不应被认为限制本发明的范围。

图1是示出了根据一些示例实施例的联网系统的框图。

图2是示出了根据一些示例实施例的管理系统的示例实施例的框图。

图3是示出了根据一些示例实施例的用于集中管理客户端应用的示例方法的流程图。

图4和图5是示出了根据一些示例实施例的用于集中管理客户端应用的示例方法的附加示例操作的流程图。

图6是示出了根据一些示例实施例的客户端设备和管理系统之间的各种通信的泳道图。

图7-8是根据一些示例实施例的描绘各种示例用户界面的用户界面图。

图9是根据一些示例实施例的描绘示例性移动设备和移动操作系统接口的用户界面图。

图10是示出了根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。

图11示出了根据示例实施例的具有计算机系统的形式的机器的示图表示的框图,在所述计算机系统中可以执行一组指令以使所述机器执行本文讨论的方法中的任何一个或多个方法。

具体实施方式

以下描述包括体现本公开的示意性实施例的系统、方法、技术、指令序列和计算机器程序产品。在下文的描述中,为了解释的目的,阐述了很多细节以提供对本发明主题的各种实施例的理解。然而,本领域技术人员将显而易见的是,本发明主题的实施例可以在没有这些具体细节的情况下实施。一般地,不必详细示出众所周知的指令实例、协议、结构和技术。

智能手机、平板电脑等的用户可以下载并安装第三方开发者提交到数字分发平台(例如,play、appstore、store等应用商店)的应用。当第三方开发者向应用商店提交特定应用或特定应用的更新时,提交与特定应用或特定应用的更新可供用户使用之间通常存在延迟。该延迟通常是由于可以包括由应用商店的拥有者实现的各种合规测试的批准过程。在需要对特定应用进行紧急更新的场景中,更新变得可用的这种延迟会为特定应用的开发者和用户带来困难。例如,当经由应用更新可以解决与应用相关联的安全漏洞(例如,暴露敏感凭证数据)时,延迟可能是有害的。在该示例中,更新应用的延迟越短,应用对安全漏洞暴露用户越少。

执行特定应用的大规模更新(例如,涉及数百万个设备的更新)时可能出现的另一问题是存储大量设备中每个设备的状态。当存在大量客户端设备时,在服务器上存储每个设备的状态可能很困难。在各种实施例中,描述用于在客户端设备处存储状态并将状态传送给服务器以供后续分析或动作的技术。以这种方式,状态跨越客户端设备分布,而不是集中存储在服务器上。这种方案避免了如典型地对于移动应用那样与大量设备一起工作会产生的问题。

为避免延迟发布提交给应用商店的客户端应用的更新或改变所产生的问题,提供了用于集中客户端应用管理的系统和方法。在各种示例实施例中,在管理服务器处从一个或多个用户设备接收设备数据。例如,提交给应用商店的客户端应用中包括管理软件开发工具包(sdk)或库。当客户端应用在用户设备上执行时,客户端应用对sdk进行初始化并将设备数据提供给管理服务器(例如,操作系统、已安装的应用、设备型号、设备标识符、应用版本)。一旦在管理服务器处接收到设备数据,管理服务器根据标识规则来标识用户设备。标识规则与设备数据相关联。例如,管理服务器可以标识正在运行特定应用的特定版本的用户设备。

在管理服务器标识用户设备之后,管理服务器从用户设备接收客户端状态。然后,管理服务器基于用户设备的客户端状态生成指令。例如,如果客户端状态指示特定用户设备尚未执行密码重置流程,管理服务器生成包括密码重置流程指令(例如,指导、引导或强制用户设备执行密码重置流程的指令)的指令)。一旦管理服务器生成指令,管理服务器将使得在所标识的用户设备上执行该指令。该指令会使得存储在所标识的用户设备上的客户端状态改变。例如,该指令可以包括在用户设备的用户界面上呈现处理流程(例如,引导用户执行例如密码重置的特定动作或动作集合的用户界面或一系列用户界面)。在该示例中,管理服务器通过使得在用户设备正在执行的应用上呈现包括处理流程的用户界面,使得执行指令。

参考图1,示出了高级的基于客户端-服务器的网络架构100的示例实施例。联网系统102经由网络104(例如,互联网或广域网(wan))向客户端设备110提供服务器侧功能。在一些实施方式中,用户(例如,用户106)使用客户端设备110与联网系统102交互。图1示出了例如在客户端设备110上执行的web客户端112(例如浏览器,例如由华盛顿州雷德蒙德的公司开发的internet浏览器)、客户端应用114和程序客户端116。客户端设备110可以单独、一起或以任何合适的组合的方式包括web客户端112、客户端应用114和程序客户端116。尽管图1示出了一个客户端设备110,在其他实施方式中,网络架构100包括多个客户端设备。

在各种实施方式中,客户端设备110包括计算设备,该计算设备至少包括显示器和经由通信网络104提供对联网系统102的访问的通信能力。客户端设备110包括但不限于:远程设备、工作站、计算机、通用计算机、互联网设备、手持设备、无线设备、便携式设备、可穿戴计算机、蜂窝或移动电话、个人数字助理(pda)、智能电话、平板电脑、超级本、上网本、膝上型计算机、台式机、多处理器系统、基于微处理器或可编程消费电子设备、游戏控制台、机顶盒、网络个人计算机(pc)、迷你计算机等。在示例实施例中,客户端设备110包括触摸屏、加速度计、陀螺仪、生物统计传感器、相机、麦克风、全球定位系统(gps)设备等中的一个或多个。

客户端设备110经由有线或无线连接与网络104通信。例如,网络104的一个或多个部分包括自组织(adhoc)网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网的一部分、公共交换电话网(pstn)的一部分、蜂窝电话网络、无线网络、无线保真网络、全球微波接入互操作性(wimax)网络、另一类型的网络、或其任何合适组合。

在一些示例实施例中,客户端设备110包括应用(也称为“app”)中的一个或多个,所述应用例如是但不限于:web浏览器、书阅读器应用(可操作以阅读电子书)、媒体应用(可操作以呈现包括音频和视频的各种媒体形式)、健身应用、生物统计监视应用、消息应用、电子邮件(email)应用、电子商务网站应用(也称为“市场应用”)。在一些实施方式中,客户端应用114包括可操作以向用户呈现信息并与联网系统102通信的各种组件。

web客户端112经由web服务器122支持的web接口来访问联网系统102的各种系统。类似地,程序客户端116和客户端应用114经由应用程序接口(api)服务器120提供的编程接口来访问联网系统102提供的各种服务和功能。例如,程序客户端116可以是卖家应用(例如,由加利福尼亚州圣何塞的公司开发的turbolister应用),其用于使卖家能够以离线方式创作和管理联网系统102上的列表,并且执行程序客户端116与联网系统102之间的批处理模式通信。

用户(例如,用户106)包括人、机器或与客户端设备110交互的其他装置。在一些示例实施例中,用户不是网络架构100的一部分,而经由客户端设备110或另一装置与网络架构100进行交互。例如,用户向客户端设备110提供输入(例如,触摸屏输入或字母数字输入),并且输入经由网络104传送至联网系统102。在该实例中,联网系统102响应于从用户接收输入,经由网络104将信息传送到客户端设备110以呈现给用户。以这种方式,用户可以使用客户端设备110与联网系统102交互。

api服务器120和web服务器122耦合到一个或多个应用服务器140,并提供分别到一个或多个应用服务器118的编程和web接口。应用服务器140可以容纳一个或多个发布系统142、支付系统144和管理系统150,其中每个系统包括一个或多个模块或应用,并且每个系统可以被实现为硬件、软件、固件或其任何组合。相应地,应用服务器140被示为耦合到一个或多个数据库服务器124,所述数据库服务器便于对一个或多个信息存储库或数据库126的访问。在示例实施例中,数据库126是将要发布的信息(例如,发布或列表)存储到发布系统142的存储设备。根据一些示例实施例,数据库126也存储数字商品信息。

另外,在第三方服务器130上执行的第三方应用132被示为具有经由api服务器120提供的编程接口对联网系统102的编程访问。例如,第三方应用132利用从联网系统102获取的信息,支持第三方所拥有的网站上的一个或多个特征或功能。例如,第三方网站提供由联网系统102的相关应用支持的一个或多个促销、市场或支付功能。

发布系统142向访问联网系统102的用户提供多个发布功能和服务。支付系统144同样提供多个功能以执行或便于支付和交易。虽然发布系统142和支付系统144在图1中都被示为形成联网系统102的一部分,但是应当理解,在备选实施例中,每个系统142和144可以形成与联网系统102分离且不同的支付服务的一部分。在一些示例实施例中,支付系统144可以形成发布系统142的一部分。

在一些实施方式中,管理系统150向集中客户端应用管理提供功能。在一些示例实施例中,管理系统150与客户端设备110、第三方服务器130、发布系统142和支付系统144进行通信。在备选示例实施例中,管理系统150是发布系统142的一部分。将结合下面的图2进一步讨论管理系统150。

此外,虽然图1所示的基于客户端-服务器的网络架构100采用了客户端-服务器架构,本发明的主题当然不限于该架构,并且同样可以良好地应用于例如分布式或对等架构系统。应用服务器140的各种系统(例如,发布系统142和支付系统144)还可以被实现为独立的软件程序,其不一定具有联网能力。

图2是提供集中客户端应用管理的功能的管理系统150的框图。在示例实施例中,管理系统150包括呈现模块210、通信模块220、标识模块230、状态模块240和指令模块250。图2的模块210-250中的全部或一些例如经由网络耦合、共享存储器等彼此通信。将理解的是,每个模块可以实现为单个模块、组合为其他模块,或进一步再分为多个模块。还可以包括与示例实施例不相关的其他模块,但是没有示出。

呈现模块210提供可操作以交互地呈现(或使得呈现)和接收来自用户的信息的各种呈现和用户界面功能。交互地呈现信息旨在包括在特定设备和用户之间的信息交换。用户可以用许多可能的方式提供与用户界面交互的输入,例如字母数字、基于点(例如,光标)、触觉、其他输入(例如,触摸屏、触觉传感器、光传感器、红外传感器、生物统计传感器、麦克风、陀螺仪、加速度计或其他传感器)等。应当理解,呈现模块210提供许多其他用户界面以促进本文描述的功能。此外,应当理解,本文所使用的“呈现”旨在包括向特定设备传送信息或指令,该特定设备可操作以基于所传送的信息或指令执行呈现。

通信模块220提供各种通信功能和web服务。例如,通信模块220提供网络通信,例如,与联网系统102、客户端设备110和第三方服务器130通信。在各种示例实施例中,网络通信能够通过有线或无线方式操作。web服务旨在包括从第三方服务器130、数据库126和应用服务器140获取信息。在一些实施方式中,由通信模块220获取的信息包括与用户相关联的数据(例如,来自在线帐户的用户简档信息、与用户相关联的社交网络服务数据)、与电子商务网站上列出的一个或多个物品相关联的数据(例如,物品的图像、物品的评论、物品价格)、用于促进本文描述的功能的其他数据。

标识模块230提供基于从多个用户设备中的相应用户设备接收的设备数据来标识多个用户设备中的一个或多个用户设备的功能。例如,标识模块230可以标识运行特定操作系统、特定应用的版本、区域等的用户设备的集合。

状态模块240提供用于获取、存储或使得存储用户设备的客户端状态的功能。例如,状态模块240获取存储在用户设备上的客户端状态数据。在一些实施例中,状态模块240改变或使得改变存储在客户端设备处的客户端状态。例如,一旦特定用户设备接收到特定的通知或消息,状态模块240更新或使得更新客户端状态,以指示特定用户设备已经接收到特定的通知或消息至少一次。

指令模块250提供用于生成要在用户设备(例如,用户设备110)上执行的指令的功能。该指令可以基于用户设备的设备数据针对特定设备进行适配。例如,指令可以包括如重置与用户设备上的特定应用相关联的在线帐户的密码的处理流程。在其他示例中,指令包括应用数据的重置(例如,客户端应用的本地存储的设置)、消息或通知(例如,针对本地化为用户设备语言的维护消息而关闭)、维护动作(例如,调整特定的隐私设置)、用户(例如,用户106)从与客户端应用(例如,客户端应用114)相关联的在线帐户强制登出、访问客户端应用的特定特征的改变(例如,启用或禁用特定功能)等。

图3是示出用于集中管理客户端应用的示例方法300的流程图。方法300的操作可以由管理系统150的组件执行,并且为了说明的目的描述如下。

在操作310处,通信模块220从用户设备接收指示用户设备的设备属性(例如,安装在用户设备上的特定应用的特定版本)的设备数据。例如,设备数据包括设备属性,或标识模块230根据设备数据提取或推断设备属性(例如,标识模块230基于映射至包括在设备数据中的用户设备的设备标识符的社交网络成员标识来推断关于用户设备的用户的人口统计信息)。设备数据可以包括与用户设备有关的各种数据,例如在用户设备上运行的操作系统、安装在用户设备上的应用、设备型号、设备标识符、用户设备的地理位置或区域、用户设备的语言设置、用户设备上的特定应用的应用版本、与用户设备的用户相关联的用户标识符(例如,社交网络服务标识符或其他在线帐户登录标识符)以及与用户设备有关的各种其他数据。

在示例实施例中,通信模块220向用户设备询问设备数据。例如,通信模块220向用户设备发送请求用户设备可访问的设备数据的请求,响应于接收到该请求,用户设备访问设备数据并将所访问的设备数据发送给通信模块220。在一些实例中,由通信模块220发送的请求指定要访问的数据的类型或要访问的数据存储器的位置,并且用户设备根据请求中包括的指定来访问数据。用这种方式,用户设备可以响应于针对设备数据的请求来确定要访问哪些数据并将其发送给通信模块220。

在操作320处,标识模块230根据由管理系统150的操作者、管理者或管理员指定的标识规则来标识用户设备。在各种示例实施例中,标识规则指定特定设备属性。例如,标识规则可以指定用户设备的特定操作系统、设备型号或另一属性(例如,特定型号的设备)、用户设备的用户(具有多于一个用户或与特定人口统计数据相匹配的用户的设备)、用户设备的环境(例如,设备周围的环境温度、设备的地理位置或设备的高度)。在该示例中,标识模块230确定包括在标识规则中的操作系统、设备型号或另一属性与关联于用户设备的属性(例如,包括在接收到的设备数据中的特定属性)之间的匹配或接近匹配,以标识用户设备。在具体示例中,标识模块230标识运行未在指定的时间段内打开(例如,在最近7天内打开)的特定版本的应用的多个用户设备。在另一示例中,标识模块230标识在运营商指定的地理区域内(例如,在特定地理位置的预定距离内)的设备。在又一示例中,标识模块230标识与运营商指定的用户标识符(例如,社交网络服务成员标识符)相关联的设备。

在操作330处,状态模块240从所标识的用户设备接收客户端状态。在各种示例实施例中,客户端状态指示任务的状态(例如,在特定时间段内用户设备上是否已经完成了特定处理流程)。在一些实施例中,客户端状态可以存储在用户设备上的数据文件中,并由用户设备发送给管理系统150。在一些实施例中,客户端状态包括与用户设备相关联的活动或任务的信息。例如,客户端状态可以指示用户最后一次打开特定应用的时间、用户是否已经完成特定处理流程等。

在操作340处,指令模块250基于用户设备的客户端状态生成指令。状态模块240或指令模块250确定客户端状态与指定状态匹配或接近匹配,并且随后基于与指定状态匹配的客户端状态来生成指令。例如,指令模块250基于与(例如,由管理系统150的操作者指定的)指定状态相匹配的客户端状态来生成特定类型的指令。在具体示例中,指定状态包括用户设备在指定时段内是否已经完成特定任务或处理流程的指示。如以下结合图4进一步讨论的,在一些示例实施例中,指令模块250或状态模块240产生指令以包括客户端状态所指示的客户端设备未完成的任务或处理流程。例如,指令模块250生成指令以包括密码重置处理流程、登出处理流程(例如,停止应用或浏览器代码的功能直到在用户设备上执行指定帐户的登出为止)或另一个安全性改变流程(例如,接收与特定应用或在线帐户有关的隐私设置或安全设置的用户指定)。在示例实施例中,指令模块250生成这种处理流程以包括要呈现给用户的一系列用户界面。在其他示例实施例中,指令模块250使得用户设备上的指令自动执行(例如,对用户设备上的应用的安全设置的改变)。

在操作350处,指令模块250或呈现模块210使得在标识的用户设备上执行生成的指令。例如,所生成的指令可以包括密码重置处理流程,其包括由呈现模块210生成的、使得呈现模块210呈现在用户设备上的一系列用户界面(例如,向用户提供执行处理流程并接收来自用户的用户输入(例如新密码)以完成处理流程的选项)。在另一实例中,指令模块250自动地代表用户执行用户设备上的指令(例如,自动改变或修改客户端应用的安全设置)。指令模块250结合呈现模块210可以使得所生成的用户界面在用户的用户设备上呈现。在一些实例中,用户设备结合或根据与客户端应用中包括的管理sdk或管理库来执行指令。例如,管理sdk可以包括可以改变或修改客户端应用或用户设备的各种功能。

在一个示例中,指令包括消息或通知,消息或通知包括要呈现给用户设备的用户的信息(例如,服务关闭以便维护的消息指示)。在一些实施例中,指令模块250基于设备数据生成指令。例如,如果设备数据指示特定设备具有特定语言设置,指令模块250以设备数据指示的语言生成通知或消息。

现在参考图4,示出了示意用于集中管理客户端应用的进一步示例操作的流程图。具体地,图4更详细地讨论了操作340的示例实施例。在状态模块240在操作330处从标识的用户设备接收到客户端状态之后,在示例实施例中,指令模块250在操作340处基于客户端状态生成指令。在一些实施例中,操作340包括图4的附加操作。

在操作410处,状态模块240确定由客户端状态指示的用户设备先前未执行的任务。例如,由于用户设备上的特定应用的更新或用户设备上的另一事件,用户设备可能没有先前执行密码重置。在另一实例中,用户设备上的客户端应用可能未配置特定安全性或隐私设置(例如,用户指定特定隐私或安全性级别,允许特定用户内容的共享,或允许访问与特定安全风险相关联的某些互联网资源)。在一些实施例中,状态模块240确定在一段时间内(例如,永久地、在最近一个月内、或自从指定的时间或指定的事件开始)先前未执行该任务。该时间段可以由管理系统150的操作者指定或由状态模块240动态地确定。例如,可以基于客户端状态来确定时间段(例如,在当客户端状态的特定标志或指示已由管理系统150的操作者设置的时间处开始的时间段)。

在操作420处,状态模块240生成指令以包括先前在一段时间内未执行的任务。例如,如果客户端状态指示用户设备在一段时间内未执行特定处理流程(例如,密码重置处理流程),则指令模块250生成指令以包括特定处理流程。在另一示例中,如果客户端状态指示特定通知尚未被用户设备接收或呈现,则指令模块250生成指令以包括该通知。

现在参考图5,示出了示意用于集中管理客户端应用的进一步示例操作的流程图。具体地,图5更详细地讨论了操作350的示例实施例。在操作340处,指令模块250基于用户设备的客户端状态生成指令。随后,在操作350处,指令模块250使得在标识的用户设备上执行生成的指令。在一些实施例中,操作350包括如下面将讨论的图5的附加操作。

在操作510处,指令模块250防止在用户设备上执行或阻止在用户设备上使用客户端应用或另一软件。例如,该指令使得呈现覆盖在客户端应用用户界面上的用户界面(例如,包括用户界面或原生移动操作系统用户界面的移动浏览器),防止用户与客户端应用用户界面进行交互。用户界面可以指示客户端应用当前不可执行并且可以指示相应的原因。在其他实施例中,指令禁用客户端应用或客户端应用的一部分功能,直到满足特定条件为止。例如,该条件可以包括完成例如执行密码重置的处理流程。也就是说,在示例实施例中,指令模块250防止特定应用的执行,直到如密码重置处理流程之类的特定处理流程完成为止。

在操作520处,指令模块250确定满足条件。在一些实施例中,指令包括该条件或多个条件。在一个示例中,通过用户设备完成处理流程(例如,密码重置)而满足条件。在一些实施例中,用户设备将指示满足条件的数据传送给指令模块250。例如,一旦用户设备完成密码重置处理流程,用户设备将处理流程已经完成的消息指示传送给指令模块250。在其他实施例中,指令模块250通过向用户设备、应用服务器或其他服务器询问指示条件满足的数据,来监测条件的满足。在另一示例中,通过例如用户设备激活到特定网页的链接的动作来满足条件。该条件可以包括由用户设备的用户执行的多种动作和任务。在一些实例中,指令模块250修改客户端状态以指示已经满足条件。

在操作530处,指令模块250允许基于条件的满足在用户设备上执行客户端应用。例如,一旦指令模块250确定满足条件,指令模块250例如使得解除或移除覆盖在客户端应用用户界面上的用户界面,或以其他方式启用先前被指令模块250禁用的任何功能。

为了说明客户端设备和管理系统150之间的交互,图6是示出在各种设备处执行的示例操作的泳道图600。如上所述,在操作310处,通信模块220从客户端设备110接收设备数据。如图6中所示,在操作610处,客户端设备110例如在对安装在设备110上的客户端应用中包括的管理sdk进行初始化时,向管理系统150传送、发送或以其他方式提供设备数据。如以上结合操作310描述的,设备数据包括例如与用户设备有关的各种数据,例如在用户设备上运行的操作系统、安装在用户设备上的应用、设备型号、设备标识符、用户设备的地理位置或区域、用户设备的语言设置、用户设备上的特定应用的应用版本、或与用户设备、用户或用户设备的用户、用户设备的环境(例如,用户设备的物理环境)有关的各种其他数据。

在操作320处,标识模块230根据标识规则来标识客户端设备110。在操作330处,状态模块240从所标识的客户机设备110接收客户端状态。因此,在操作620处,客户端设备110传送、发送或以其它方式提供存储在客户端设备110处的客户端状态。如上文结合操作330所讨论的,在一些实施例中,客户端状态包括与用户设备的活动有关的信息。在具体示例中,客户端状态指示用户最近一次打开特定应用的时间、用户是否已完成特定的处理流程等。

在操作340处,指令模块250基于客户端设备110的客户端状态生成指令。在操作350处,指令模块250或呈现模块210使得在所标识的客户端设备110上执行指令。指令模块250向客户端设备110传送、发送或以其它方式提供指令。在操作630处,客户端设备110在接收到指令时执行或运行指令。在一些实例中,指令使得客户端状态改变,并且客户端设备110响应于改变来存储新的客户端状态。可以随后将新的客户端状态提供给管理系统150。

图7-8描绘了用于向用户交互地呈现信息的示例用户界面。尽管图7和8描绘了具体的示例用户界面和用户界面元素,但是这些仅仅是非限制性示例,并且许多其他替代用户界面和用户界面元素可以由呈现模块210生成并使得呈现给用户。将注意到,图7-8的显示的替代呈现可以包括附加的信息、图形、选项等。备选地,其他呈现可以包括较少的信息,或提供便于用户使用的缩减的信息。

图7描绘了显示可以由在设备700上执行的客户端应用生成的示例用户界面710的示例设备700(例如,智能电话)。在一个示例实施例中,由指令模块250生成的指令包括防止客户端应用操作直到完成处理流程为止的处理流程(例如,一系列用户界面)。例如,该指令包括呈现在第二用户界面720上的处理流程。第二用户界面720可以是例如覆盖在包括客户端应用的用户界面710上的web浏览器或客户端应用的原生用户界面。在一个实施例中,第二用户界面720包括用户可以交互以完成处理流程的任务或动作的各种用户界面元素。例如,第二用户界面720可以包括用于完成密码重置处理流程的用户界面元素。在其他示例中,处理流程包括另一类型的用户凭证信息输入处理流程、验证或授权处理流程或其他处理流程。在某个实例中,呈现模块210动态地生成用户界面720和包括在用户界面720中的交互式用户界面元素,并使用户界面710在设备700上呈现。在某些实例中,用户界面720可以利用包括在客户端应用中的管理sdk中的功能。以这种方式,管理系统150使得利用在用户设备处存储的状态在用户设备上执行指令,而不必执行由于应用商店批准过程而可能面临延迟的客户端应用的更新。

图8描绘了显示示例用户界面810的示例设备800。在该示例中,用户界面810是从用户设备的用户的角度可以看见的用户界面720。如图8中所示,用户界面810覆盖用户设备上执行的客户端应用生成的用户界面(例如,图7的用户界面710),并防止或阻止客户端应用的操作。

某些实施例在本文中被描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如在机器可读介质上或在传输信号中体现的代码)或硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以某物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立的计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如处理器或处理器组)由软件(例如应用或应用部分)配置为操作以执行本文描述的特定操作的硬件模块。

在一些实施例中,以机械方式、电子方式或其任何适当组合来实现硬件模块。例如,硬件模块可以包括永久地被配置为执行特定操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件模块还可以包括由软件临时配置为执行特定操作的可编程逻辑或电路。例如,硬件模块可以包括通用处理器或其他可编程处理器中包含的软件。应理解,以机械方式在专用且永久配置的电路中或在临时配置的电路(例如由软件配置)中实现硬件模块的决定可以出于成本和时间的考虑。

因此,短语“硬件模块”应理解为涵盖有形实体,是在物理上构造、永久配置(例如硬线连接)或临时配置(例如编程)为以特定方式操作或执行本文描述的特定操作的实体。如本文所使用的,“硬件实现的模块”指硬件模块。考虑临时配置(例如编程)硬件模块的实施例,无需在任一时刻配置或实例化硬件模块中的每一个。例如,如果硬件模块包括被软件配置成为专用处理器的通用处理器,则通用处理器可以在不同时刻被配置为分别不同的专用处理器(例如包括不同的硬件模块)。因此,软件可以将特定的一个或多个处理器例如配置为在一个时刻构成特定硬件模块并在另一时刻构成不同的硬件模块。

硬件模块可以向其他硬件模块提供信息并从其他硬件模块接收信息。因此,所描述的硬件模块可以被看作通信耦合。如果同时存在多个硬件模块,可以通过两个或更多个硬件模块之间的信号传输(例如通过适当的电路和总线)实现通信。在多个硬件模块在不同时间配置或实例化的实施例中,可以例如通过存储并获取多个硬件模块可访问的存储器结构中的信息来实现这样的硬件模块之间的通信。例如,一个硬件模块执行操作并在与其通信耦合的存储设备中存储该操作的输出。另一硬件模块接着可以稍后访问存储设备,以获取并处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且能够对资源(例如信息的集合)操作。

本文描述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论临时还是永久配置的,这样的处理器构成操作以执行本文描述的一个或多个操作或功能的处理器实现模块。如本文所使用的,“处理器实现的模块”指使用一个或多个处理器实现的硬件模块。

类似地,本文描述的方法可以至少部分地由处理器实现,其中特定处理器或多个处理器是硬件的示例。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的模块执行。此外,一个或多个处理器还可操作以支持在“云计算”环境中或作为“软件即服务”(saas)执行有关操作。例如,操作中的至少一些可以由计算机(作为包括处理器的机器的示例)组执行,这些操作可经由网络(例如互联网)并经由一个或多个适当接口(例如应用程序接口(api))访问。

某些操作的执行可以分布在处理器中,并不只驻留在单个机器中,而是布置在多个机器中。在一些示例实施例中,处理器或处理器实现的模块位于单个地理位置(例如,在家庭环境、办公环境或服务器群中)。在其他示例实施例中,处理器或处理器实现的模块分布在多个地理位置。

图9示出了根据示例实施例的执行移动操作系统(例如,iostm、androidtmphone或其他移动操作系统)的示例移动设备900。在一个实施例中,移动设备900包括可操作以从用户902接收触觉数据的触摸屏。例如,用户902可以物理地触摸904移动设备900,响应于触摸904,移动设备900可以确定诸如触摸位置、触摸力或手势运动之类的触觉数据。在各种实施例中,移动设备900显示可操作以启动应用或以其他方式管理移动设备900的各个方面的主屏幕906(例如,iostm上的springboard)。在一些实施例中,主屏幕906提供诸如电池寿命、连接性或其他硬件状态的状态信息。用户902可以通过触摸由相应的用户界面元素占据的区域来激活用户界面元素。以这种方式,用户902与应用交互。例如,触摸主屏幕906中包括的特定图标占据的区域导致与特定图标相对应的应用的启动。

多种应用(也称为“app”)可以在移动设备900上执行,例如原生应用(例如,用objective-c、swift或iostm上运行的另一合适的语言编程的应用、或androidtm上运行的java编程的应用)、移动web应用(例如,使用超文本标记语言-5(html5)编写的应用)或混合应用(例如,启动html5会话的原生shell应用)。例如,移动设备900包括消息应用920、音频记录应用922、相机应用924、书阅读器应用926、媒体应用928、健身应用930、文件管理应用932、位置应用934、浏览器应用936、设置应用938、联系人应用940、电话呼叫应用942或其他应用(例如,游戏应用、社交网络应用、生物统计监测应用)。在另一示例中,移动设备900包括符合一些实施例的、并入本文所述的实施例的各方面的第三方应用944。

图10是示出了软件架构1002的框图1000,软件架构1002可以安装在上述任何一个或多个设备上。图10仅为软件架构的非限制性示例,且应了解,可以实施许多其他架构以促进本文中所描述的功能性。在各种实施例中,软件架构1002由诸如图11的机器1100的硬件来实现,机器1100包括处理器1110、存储器1130和i/o组件1150。在该示例架构中,软件架构1002可以被概念化为层的堆栈,其中每层可以提供特定的功能。例如,软件架构1002包括诸如操作系统1004、库1006、框架1008和应用1010的层。在操作上,根据一些实施例,应用1010通过软件栈调用应用编程接口(api)调用1012,并响应于api调用1012接收消息1014。

在各种实施方式中,操作系统1004管理硬件资源并提供公共服务。操作系统1004包括例如内核1020、服务1022和驱动1024。根据一些实施例,内核1020用作硬件和其他软件层之间的抽象层。例如,内核1020尤其提供存储器管理、处理器管理(例如,调度)、组件管理、联网和安全设置等的功能。服务1022可以为其他软件层提供其他公共服务。根据一些实施例,驱动1024负责控制底层硬件或与底层硬件接口连接。例如,驱动1024可以包括显示驱动、相机驱动、驱动、闪存驱动、串行通信驱动(例如通用串行总线(usb)驱动),驱动、音频驱动、电源管理驱动等。

在一些实施例中,库1006提供由应用1010使用的低级公共基础设施。库1006可以包括可以提供诸如存储器分配功能、串操纵功能、数学功能等的功能的系统库1030(例如,c标准库)。另外,库1006可以包括api库1032,例如媒体库(例如,支持各种媒体格式的呈现和操纵的库,所述格式是比如运动图像专家组4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组层3(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合图像专家组(jpeg或jpg)或便携式网络图形(png))、图形库(例如,用于在显示器上在图形上下文中进行二维(2d)和三维(3d)渲染的opengl框架)、数据库(例如,提供各种关系数据库函数的sqlite)、web库(例如,提供网络浏览功能的webkit)等。库1006还可以包括各种各样的其他库1034,以向应用1010提供许多其他api。

根据一些实施例,框架1008提供可以被应用1010使用的高级公共基础设施。例如,框架1008提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架1008可以提供可以被应用1010使用的广泛的其他api,其中一些可以特定于特定的操作系统或平台。

在示例实施例中,应用1010包括家庭应用1050、联系人应用1052、浏览器应用1054、书阅读器应用1056、位置应用1058、媒体应用1060、消息应用1062、游戏应用1064、以及诸如第三方应用1066之类的各种各样的其他应用。根据一些实施例,应用1010是执行在程序中定义的功能的程序。可以采用各种编程语言来创建以各种方式结构化的应用1010中的一个或多个,诸如面向对象的编程语言(例如,objective-c,java或c++)或过程编程语言(例如c或汇编语言)。在具体示例中,第三方应用1066(例如,由与特定平台的供应商不同的实体使用androidtm或iostm软件开发工具包(sdk)而开发的应用)可以是在移动操作系统(诸如iostm、androidtmphone或另一移动操作系统)上运行的移动软件。在该示例中,第三方应用1066可以调用由操作系统1004提供的api调用1012,以促进本文描述的功能。

图11是示出了根据一些实施例的能够从机器可读介质(例如,机器可读存储介质)中读取指令并执行本文所讨论的方法中的任何一个或多个的机器1100的组件的框图。具体地,图11示出了计算机系统的示例形式的机器1100的示意性表示,在机器1100中,可以执行指令1116(例如,软件、程序、应用、小程序、app或其他可执行代码)以使机器1100执行本文所讨论的方法中的任何一个或多个。在替代的实施例中,机器1100作为独立设备操作或可以耦合(例如,联网)到其他机器。在联网部署中,机器1100可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器1100可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能家电)、其他智能设备、网络设备、网络路由器、网络交换机、网桥、或能够顺序地或以其他方式执行指定机器1100要采取的动作的指令1116的任何机器。此外,尽管仅示出了单个机器1100,但是术语“机器”也将被认为包括机器1100的集合,机器1100单独地或联合地执行指令1116以执行本文讨论的方法中的任何一个或多个。

在各种实施例中,机器1100包括可以被配置为经由总线1102彼此通信的处理器1110、存储器1130和i/o组件1150。在示例实施例中,处理器1110(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、其他处理器或其任何适当组合)包括例如可以执行指令1116的处理器1112和处理器1114。术语“处理器”旨在包括可以包括可以同时执行指令的两个或更多个独立处理器(也称为“核”)的多核处理器。尽管图11示出了多个处理器,但是机器1100可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。

根据一些实施例,存储器1130包括经由总线1102可被处理器1110访问的主存储器1132、静态存储器1134和存储单元1136。存储单元1136可以包括机器可读介质1138,其上存储体现本文描述的方法或功能中的任何一个或多个的指令1116。在机器1100执行指令期间,指令1116还可以完全地或至少部分地驻留在主存储器1132内、静态存储器1134内、处理器1110中的至少一个内(例如,处理器的高速缓存存储器内)、或其任何合适的组合内。因此,在各种实施例中,主存储器1132、静态存储器1134和处理器1110被认为是机器可读介质1138。

如本文所使用的,术语“存储器”指能够临时或永久地存储数据的机器可读介质1138,并且可以被看作包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存以及高速缓存存储器。虽然机器可读介质1138在示例实施例中被示为是单个介质,但是术语“机器可读介质”应当被认为包括能够存储指令1116的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”还将被认为包括能够存储被机器(例如机器1100)执行的指令(例如,指令1116)的任何介质或多个介质的组合,使得指令在被机器1100的一个或多个处理器(例如,处理器1110)执行时使机器1100执行本文所描述的方法中的任何一个或多个。因此,“机器可读介质”指单个存储装置或设备、以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。因此,术语“机器可读介质”应被理解为包括但不限于具有固态存储器(例如,闪存)、光介质、磁介质、其他非易失性存储器(例如,可擦除可编程只读存储器(eprom))或其任何合适组合等的形式的一个或多个数据储存库。术语“机器可读介质”特别地排除非法定的信号本身。

i/o组件1150包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的各种组件。通常,应当理解,i/o组件1150可以包括图11中未示出的许多其他组件。可以根据功能将i/o组件1150分组,以仅用于简化以下讨论,并且分组不以任何方式进行限制。在各种示例实施例中,i/o组件1150包括输出组件1152和输入组件1154。输出组件1152包括可视组件(例如显示器,比如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、声学组件(例如,扬声器)、触觉组件(例如,振动马达)、其他信号发生器等。输入组件1154包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏或其他触觉输入组件)、音频输入组件((例如,麦克风)等。

在另一些示例实施例中,i/o组件1150尤其包括生物统计组件1156、运动组件1158、环境组件1160或位置组件1162等的组件。例如,生物统计组件1156包括用于检测表现(例如,手表现、面部表现、语音表现、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、标识人(例如,语音标识、视网膜标识、面部标识、指纹标识或基于脑电图的标识)等的组件。运动组件1158包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件1160包括例如照度传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、为安全而检测有害气体浓度或测量大气中的污染物的气体检测传感器)、或可以提供对应于周围物理环境的指示、测量或信号的其他组件。位置组件1162包括位置传感器组件(例如,全球定位系统(gps)接收机组件)、高度传感器组件(例如,高度计或检测气压的气压计(根据气压可以导出高度))、方位传感器组件(例如,磁力计)等。

可以使用各种各样的技术来实现通信。i/o组件1150可以包括通信组件1164,通信组件1164可操作以分别经由耦接1182和耦接1172将机器1100耦合到网络1180或设备1170。例如,通信组件1164包括网络接口组件或与网络1180接口连接的另一合适设备。在另一些示例中,通信组件1164包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如低能)、组件、以及经由其他模态提供通信的其他通信组件。设备1170可以是另一机器或各种外围设备中的任一种(例如,经由通用串行总线(usb)耦合的外围设备)。

此外,在一些实施例中,通信组件1164检测标识符或包括可操作以检测标识符的组件。例如,通信组件1164包括射频标识(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,用于检测一维条形码(如通用产品代码(upc)条形码)、多维条形码(如快速响应(qr)码、aztec码、数据矩阵、数据字、maxicode、pdf417、超级码、统一商业码缩减空间符号(uccrss)-2d条形码以及其他光学代码)的光学传感器)、声学检测组件(例如,标识带标签的音频信号的麦克风)或其任何合适的组合。另外,可以经由通信组件1164导出各种信息,诸如经由互联网协议(ip)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的或nfc信标信号的位置等。

在各种示例实施例中,网络1180的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网,互联网的一部分、公共交换电话网络(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络、或两个或更多个这样的网络的组合。例如,网络1180或网络1180的一部分可以包括无线或蜂窝网络,并且耦接1182可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或另一个类型的蜂窝或无线耦接。在该示例中,耦接1182可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、gsm演进增强数据速率(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。

在示例实施例中,使用传输介质在网络1180上经由网络接口设备(例如,通信组件1164中包括的网络接口组件)并利用多个公知传输协议(例如,超文本传输协议(http))中的任何一个来发送或接收指令1116。类似地,在其他示例实施例中,使用传输介质经由耦接1172(例如,对等耦接)向设备1170发送或接收指令1116。术语“传输介质”应被认为包括能够存储、编码或承载用于被机器1100执行的指令1116的任何无形介质,并且包括用于促进该软件的通信的数字或模拟通信信号或其他无形介质。

此外,机器可读介质1138是非瞬时的(换句话说,不具有任何瞬时信号),这是因为它不体现传播信号。然而,将机器可读介质1138标记为“非瞬时性”不应被解释为意味着介质不能移动;该介质应该被认为是可从一个物理位置移动到另一个物理位置。此外,由于机器可读介质1138是有形的,所以该介质可以被认为是机器可读设备。传输介质是机器可读介质的实施例。

在该说明书中,复数实例可以实现被描述为单数实例的组件、操作或结构。虽然一个或多个方法的各个操作被示意和描述为分离的操作,但是各个操作中的一个或多个可以同时执行,并且无需按所示顺序执行操作。在示例配置中被示为分离组件的结构和功能可以被实现为组合结构或组件。类似地,被示为单个组件的结构和功能可以被实现为分离的组件。这些和其他变型、修改、添加和改进落入本主题的范围内。

尽管已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更宽范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的这些实施例在本文中可以单独地或共同地由术语“发明”提及,以仅仅为了方便,并且不旨在自动地将本申请的范围限制为任何单个公开或发明构思(如果事实上公开了一个以上)。

本文充分详细地描述了示出的实施例以使得本领域技术人员能够实现公开的教导。可以利用并根据这些实施例得出其他实施例,从而可以在不脱离本公开的范围的情况下做出结构和逻辑上的替换和改变。因此,该“具体实施方式”不应当看做是限制意义,并且各种实施例的范围仅通过所附权利要求以及权利要求的等同物的全部范围来限定。

如本文所使用的,术语“或”可以被解释为包括性或排他性的意义。此外,可以针对本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任何的,并且在具体说明性配置的上下文中示出了特定操作。设想了功能的其他分配,并且这些分配可以落入本公开的各种实施例的范围内。一般来说,在示例配置中作为单独资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为单独的资源。这些和其他变型、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,说明书和附图应当被看做说明性的而不是限制意义的。

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