用于在联网环境中管理应用程序访问的方法和装置与流程

文档序号:31310551发布日期:2022-08-30 23:20阅读:76来源:国知局
用于在联网环境中管理应用程序访问的方法和装置与流程

1.本披露内容总体上涉及联网环境中的应用程序,并且更具体地涉及用于在联网环境中管理应用程序访问的方法和装置。


背景技术:

2.计算环境的用户(例如,软件即服务系统、基于网络服务等的用户)通常通过向被授予数据访问器(例如,实体/应用程序(“app”)/服务)的凭证分配权限来对这些数据访问器赋予权限。这些凭证用于采取行动或访问由计算系统维护的信息(例如,数据集)。例如,用户可以在计算环境内安装应用程序并对应用程序提供用于访问软件接口(例如,应用程序编程接口、数据存储接口等)的权限。
3.相应地,提供了一种方法、一种装置、一种计算设备和一种计算机程序,如所附权利要求中详细描述的。
附图说明
4.图1是示例电子商务平台的框图。
5.图2是图1的电子商务平台的管理员的示例主页的展示。
6.图3是标识图1的电子商务平台的应用程序的信息的示例信息页面的展示。
7.图4是图1的应用程序权限监视器的示例实施方式的框图。
8.图5是应用程序权限警报的示例通知的展示。
9.图6至图10是表示可以被执行以实施图1和/或图4的应用程序权限监视器的机器可读指令的流程图。
10.图11是被构造为执行图6至图10的指令以实施图1和/或图2的应用程序权限监视器的示例处理平台的框图。
11.图12是将软件(例如,与图6至图10的示例计算机可读指令相对应的软件)分发到电子商务平台、软件即服务系统或任何其他计算系统的示例软件分发平台的框图。
12.这些图并未按比例绘制。相反,在附图中,层或区域的厚度可以被放大。尽管图中将层和区域示出为具有清晰的线条和边界,但这些线条和/或边界中的一些或全部可能是想象的。实际上,边界和/或线条可能是不可观察的、混合的和/或不规则的。通常,在所有附图和所附的书面描述中将使用相同的附图标记来指代相同或相似的部分。如本文所使用的,除非另有说明,否则(例如,所附接、耦接、连接和接合的)连接引用可以包括由连接引用所引用的元素之间的中间构件和/或那些元件之间的相对运动。因此,连接引用不一定推断出两个元素直接连接和/或彼此处于固定关系。
13.除非另有具体说明,否则在本文中使用比如“第一”、“第二”、“第三”等描述词而不强加或以其他方式指示优先级、物理顺序、列表中的排列和/或以任何方式的排序的任何含义,而是仅用作标签和/或任意名称来区分元素以便于理解所披露的示例。在一些示例中,描述词“第一”可以用于指代详细描述中的元素,而相同的元素在权利要求中可以用比如“第二”或“第三”等不同的描述词来指代。在这样的情况下,应当理解,这样的描述词仅用于清楚地标识那些原本可能例如共享相同名称的元素。
具体实施方式
14.在数据访问器需要权限来访问软件接口的计算环境中,可以在计算环境与数据访问器之间第一次建立连接时分配初始权限。例如,初始权限可以包括访问数据集a的第一权限和访问数据集b的第二权限。计算系统的所有者和/或数据访问器可能会在建立连接时过度分配权限(例如,可能会将不需要的权限分配给应用程序)。此外,在建立连接后,数据访问器的权限需求可能会发生变化(例如,应用程序可能被修改,用户可能关闭应用程序,用户可能关闭应用程序的某特征等)。因此,数据访问器可能停止(或可能永远不开始)访问数据集b。相应地,在随后的时间,数据访问器具有对其所不需要的信息的访问权(例如,具有有效权限)。在一些示例中,多个权限可以与单个凭证相关联。例如,可以将凭证分配给应用程序并且该凭证可以与多个权限(例如,访问第一接口或其他类型资源的第一权限和访问第二接口或其他类型资源的第二权限)相关联。
15.例如,电子商务商家可能不了解与其商店连接的第三方私有app(数据访问器)。这些第三方app通过一个或多个应用程序编程接口(api)访问商家数据。相应地,商家可能不了解所安装的第三方app的开发者可获得的数据访问权。因此,第三方开发者可能具有不必要的对商家商店的敏感客户或订单数据的访问权,这对商家来说是一种固有风险。
16.需要提供一种方法,以使得能容易地监视和管理(评估)被授予计算环境的数据访问器的凭证。特别地,随着数据访问器的使用和需求随时间变化,需要以持续的方式监视权限。不再需要和/或不使用的权限应被自动暂停或阻止,而无需用户/管理员手动审查和理解给予每个数据访问器的权限。
17.本文披露的方法和装置促进对分配给应用程序的权限的审查和分析,以确定是否应该对一些或所有权限加以暂停、撤销、限制等。在一些示例中,对在阈值时间段内未使用的权限加以暂停、撤销、停用等,而对已使用的权限进行维持(例如,不暂停)。例如,可以暂停与凭证相关联的第一权限,同时可以维持与凭证相关联的第二权限。可以使用许多不同的启发法来确定是否应该暂停凭证的权限。例如,可以基于访问的历史统计和/或模式、应用程序的类型、与权限和/或应用程序相关联的用户或站点的状态、预定值等来确定阈值时间段。在至少一些实施方式中,与权限和/或应用程序相关联的用户等可以是注册用户。注册用户与应用程序的关联可以对应于注册用户安装和授予账户权限。应当注意,检测到注册账户稍后被冻结、禁用或移除可以被视为支持减少或暂停与应用程序相关联的权限的信号,即使该应用程序继续经由先前授予的部分或全部权限主动检索数据也是如此。在一些实施方式中,如果负责安装app的用户被删除、暂停等,则与该账户安装的app相关联的部分或全部权限可以被自动撤销。
18.在一些示例中,当确定暂停权限时,可以呈现通知以促进用户或管理员提供确认暂停或拒绝暂停的输入。在一些示例中,暂停的权限从凭证中移除,而在其他示例中,暂停的凭证可以被标记为受限访问以使得能够通过移除标记来重新激活权限。本文披露的示例方法和装置防止凭证和/或应用程序保留有未主动使用和/或以其他方式不需要的权限。例如,假设权限最初可以被分配给应用程序,但可能随着时间的推移而衰减,从而剩下应用程
序实际需要的一组权限。
19.如本文所使用的,api可以包括一组api。例如,订单api可以包括用于取得订单数据的第一api和用于修改订单数据的第二api。第一api可以包括第一组api并且第二api可以包括不与第一组api重叠的第二组api。
20.现在将通过参考附图和展示描述本披露内容的各种说明性的非限制性实施例来详细描述本披露内容。然而,本披露内容可以被实施为许多不同的形式并且不应被解释为限于本文阐述的说明性实施例。相反,提供这些实施例从而使得本披露内容将是全面的,并且将向本领域技术人员充分地传达本披露内容的构思。
21.本技术的主题可以应用于多种应用场景。例如,本技术的主题可以与电子商务平台相关联地使用。相应地,现在将关于图1和图2描述示例电子商务平台。
22.参考图1,描绘了实施例电子商务平台100,其用于向客户提供商家的产品和服务。虽然本披露内容自始至终设想使用所披露的装置、系统和过程来购买产品和服务,但为了简单起见,本文的描述将涉及产品。在本披露内容中所有对产品的提及也应当理解为对产品和/或服务的提及,包括实体产品、数字内容、票证、订阅、要提供的服务等。
23.虽然本披露内容自始至终设想“商家”和“客户”可以不只是个人,但为了简单起见,本文的描述一般地涉及商家和客户本身。在本披露内容中所有对商家和客户的提及也应当理解为对个人团体、公司、企业、计算实体等的提及,并且可以代表营利性或非营利性的产品交换。进一步,虽然本披露内容自始至终涉及“商家”和“客户”,并描述他们的角色本身,但电子商务平台100应当被理解为更一般地支持电子商务环境中的用户,并且在本披露内容中所有对商家和客户的提及也应当理解为对用户的提及,比如,用户是商家用户(例如,卖方、零售商、批发商或产品提供商)、客户用户(例如,买方、购买代理或产品用户)、潜在用户(例如,正在浏览但尚未承诺购买的用户、评估电子商务平台100以潜在地用于营销和销售产品的用户等)、服务提供商用户(例如,运输提供商112、金融提供商等)、公司或企业用户(例如,购买、销售或使用产品的公司代表;企业用户;客户关系或客户管理代理等)、信息技术用户、计算实体用户(例如,用于购买、销售或使用产品的计算机器人)等。
24.电子商务平台100可以提供集中式系统,以用于向商家提供在线资源和设施以管理他们的业务。本文描述的设施可以部分或全部地通过在一个或多个处理器上执行计算机软件、模块、程序代码和/或指令的机器来部署,该一个或多个处理器可以是平台100的一部分或在该平台外部。商家可以使用电子商务平台100来管理与客户的商务,比如通过在线商店138、渠道110a-b、物理位置的pos设备152(例如,实体店面或其他位置,比如通过自助终端机、终端、读取器、打印机、3d打印机等)实施与客户的电子商务体验,通过电子商务平台100管理他们的业务,以及通过电子商务平台100的通信设施129与客户交互,或其任何组合。商家可以将电子商务平台100作为与客户的唯一商务存在使用,或者与其他商家商务设施结合使用,比如通过实体店(例如,

实体(brick-and-mortar)’零售店)、商家平台外网站104(例如,与电子商务平台分开的由商家支持或代表商家的商务互联网网站或其他互联网或网络财产或资产)等。然而,即使这些“其他”商家商务设施也可以与电子商务平台相结合,比如,商家实体店中的pos设备152链接到电子商务平台100,商家平台外网站104比如通过将平台外商家网站104的内容链接到在线商店138的

购买按钮’而绑定到电子商务平台100等。
25.在线商店138可以代表包括多个虚拟店面的多租户设施。在实施例中,商家可以比如通过商家设备102(例如,计算机、膝上型计算机、移动计算设备等)管理在线商店138中的一个或多个店面,并且通过多种不同的渠道110a-b(例如,在线商店138;实体店面,通过pos设备152;电子市场,通过集成到网站或社交媒体渠道中的电子购买按钮,该按钮比如在社交网络、社交媒体页面、社交媒体消息传送系统上;等等)向客户提供产品。商家可以跨渠道110a-b销售,然后通过电子商务平台100管理他们的销售,其中,渠道110a可以在电子商务平台100内部或从电子商务渠道110b外部提供。商家可以在他们的实体零售店、在快闪店、通过批发、通过电话等进行销售,然后通过电子商务平台100管理他们的销售。商家可以使用这些方式的全部或任何组合,比如通过实体店面使用pos设备152维持业务,通过在线商店138维持虚拟店面,以及使用通信设施129以使用客户交互和分析132来提高销售的概率。在本披露内容中,术语“在线商店138”和“店面”可以同义地使用以指代商家的通过电子商务平台100提供存在的在线电子商务,其中,在线商店138可以指代由(例如,用于多个商家的)电子商务平台100支持的多租户店面集合,或指代单个商家的店面(例如,商家的在线商店)。
26.在实施例中,客户可以通过客户设备150(例如,计算机、膝上型计算机、移动计算设备等)、pos设备152(例如,零售设备、自助终端机、自动化结账系统等)或本领域已知的任何其他商务接口设备进行交互。电子商务平台100可以使商家能够通过在线商店138、通过物理位置(例如,商家的店面或其他位置)的pos设备152与客户联系,通过经由电子通信设施129的对话促进与客户的商务等,从而提供用于联系客户并促进针对可用于联系客户并与客户交互的真实或虚拟路径的商家服务的系统。
27.在实施例中,并且如本文进一步描述的,电子商务平台100可以通过包括处理器和存储器的处理设施来实施,该处理设施存储一组指令,这些指令当被执行时使电子商务平台100执行如本文所述的电子商务功能和支持功能。处理设施可以是服务器、客户端、网络基础设施、移动计算平台、云计算平台、固定计算平台或其他计算平台的一部分,并在电子商务平台100的电子组件、商家设备102、支付网关106、应用程序开发者、渠道110a-b、运输提供商112、客户设备150、销售点设备152等之间提供电子连接和通信。电子商务平台100可以实施为云计算服务、软件即服务(saas)、基础设施即服务(iaas)、平台即服务(paas)、桌面即服务(daas)、管理软件即服务(msaas)、移动后端即服务(mbaas)、信息技术管理即服务(itmaas)等,比如实施在软件和交付模型中,在该模型中,软件基于订阅而获得许可并被集中托管(例如,用户使用客户端(例如,瘦客户端)经由网络浏览器或其他应用程序访问,通过pos设备访问等)。在实施例中,电子商务平台100的元素可以实施为在各种平台和操作系统上运行,比如ios、android、在网络上等(例如,针对ios、android和网络的给定在线商店,管理员114被实施为多个实例,每个具有类似的功能)。
28.在实施例中,可以通过电子商务平台100的服务器提供的网页使在线商店138服务于客户设备150。服务器可以从安装在客户设备150上的浏览器或其他应用程序接收对网页的请求,其中,浏览器(或其他应用程序)通过ip地址连接到服务器,ip地址通过域名转换获得。作为回应,服务器发回所请求的网页。网页可以用超文本标记语言(html)、模板语言、javascript等或其任何组合编写或包括这些语言。例如,html是描述网页的静态信息(比如网页的布局、格式和内容)的计算机语言。网站设计者和开发者可以使用模板语言来构建兼
具静态内容(其在多个页面上相同)和动态内容(其在页面之间发生变化)的网页。模板语言可以使得能够重复使用定义网页布局的静态元素,同时用来自在线商店的数据动态填充页面。静态元素可以用html编写,而动态元素可以用模板语言编写。文件中的模板语言元素可以充当占位符,使得文件中的代码被编译并发送到客户设备150,并且然后模板语言被来自在线商店138的数据替换(比如当安装主题时)。模板和主题可以考虑标签、对象和过滤器。客户端设备的网络浏览器(或其他应用程序)然后相应地呈现页面。
29.在实施例中,在线商店138可以由电子商务平台100提供给客户,客户可以在该电子商务平台上浏览和购买各种可获得的产品(例如,将产品添加到购物车、通过购买按钮立即购买等)。在线商店138可以以透明的方式服务于客户,而客户不一定意识到它是通过电子商务平台100提供的、而认为是直接来自商家。商家可以使用商家可配置的域名、可定制的html主题等来定制他们的在线商店138。商家可以通过主题系统来定制他们网站的外观和感觉,比如商家可以通过在在线商店的产品层次内示出相同的底层产品和业务数据的同时改变他们的主题来选择和改变商家的在线商店138的外观和感觉。主题可以进一步通过主题编辑器(即,使用户能够灵活地定制他们网站的设计界面)来定制。主题也可以使用改变比如特定的颜色、字体和预构建的布局方案等方面的主题特定设置来定制。在线商店可以实施用于网站内容的内容管理系统。商家可以创作博客帖子或静态页面并将它们发布到其在线商店138(比如通过博客、文章等),以及配置导航菜单。商家可以将图像(例如,产品)、视频、内容、数据等上传到电子商务平台100,比如以供系统存储(例如,存储为数据134)。在实施例中,电子商务平台100可以提供用于调整图像大小、将图像与产品相关联、添加文本并将文本与图像相关联、为新产品变型添加图像、保护图像等的功能。
30.如本文描述的,电子商务平台100可以通过多种不同渠道110a-b向商家提供产品的交易设施,这些渠道包括如本文描述的在线商店138、通过电话以及通过实体pos设备152。电子商务平台100可以包括与经营在线业务(比如提供与他们的在线商店相关联的域服务118、用于促进与客户的交易的支付服务120(例如,金融设施、平台支付设施)、用于为所购买的产品提供客户运输选项的运输服务122、与产品保护和责任相关联的风险和保险服务124、商家账单等)相关联的业务支持服务116、管理员114等。服务116可以经由电子商务平台100提供或与外部设施相关联地提供,比如通过用于支付处理的支付网关106、用于加快产品运输的运输提供商112等提供。
31.在实施例中,电子商务平台100可以提供集成运输服务122(例如,通过电子商务平台运输设施或通过第三方承运商),从而比如向商家提供实时更新、跟踪、自动费率计算、批量订单准备、标签打印等。
32.示例商务管理引擎136包括示例应用程序权限监视器154以管理分配给应用程序(例如,应用程序142a和/或应用程序142b)的权限。特别地,所展示的示例中的应用程序权限监视器154管理应用程序142a、142b经由接口140a访问数据的权限。当应用程序142a、142b被分配多个权限时(例如,分配给应用程序的凭证被分配有访问第一api的第一权限和访问第二api的第二权限),应用程序权限监视器154逐个分析权限以确定是否应该维持和/或暂停该权限。例如,应用程序权限监视器154可以确定:a)分配给应用程序142a、142b之一的第一权限应该被暂停,因为该权限在阈值时间段内未使用;以及b)分配给应用程序142a、142b之一的第二权限应该被维持(例如,不暂停),因为该权限已在阈值时间段(例如,或与
第二权限相关联的另一阈值)内被使用。
33.示例应用程序权限监视器154分析应用程序142a、142b对接口140a的使用历史以确定权限是否应该被暂停。根据本文披露的方法和装置,使用历史可以包括自上次访问接口140a以来的时间量、接口140a的访问模式、接口140a的访问频率等。除了分析接口140a的使用历史之外,应用程序权限监视器可以收集关于环境、权限和应用程序142a、142b的附加信息以确定权限是否应该被暂停。例如,应用程序权限监视器154可以确定应用程序142a、142b的类型(例如,安全应用程序、营销应用程序、商业智能应用程序、广告应用程序、内容提供商应用程序等)、电子商务平台100的与应用程序142a、142b相关联的状态(例如,活动、非活动等)、安装应用程序142a、142b和/或将权限分配给应用程序142a、142b的用户的状态等。使用历史和/或关于环境、权限和/或应用程序142a、142b的信息可以单独和/或共同地使用以确定是否应该暂停权限。
34.根据所展示的示例,应用程序权限监视器154是在(例如,由图6至图10中所展示的机器可读指令实施的)商务管理引擎136内实施的软件。可替代地,应用程序权限监视器154可以被实施为与(由在图11所展示的处理平台1100上执行的图6至图10中所展示的机器可读指令实施的)示例商务管理引擎136分开并通信地耦接到该商务管理引擎的设备。可替代地,应用程序权限监视器154可以由任何其他类型的电路系统来实施,例如一个或多个模拟或数字电路、逻辑电路、可编程处理器、asic、pld、fpld、可编程控制器、gpu、dsp、cgra、isp等。结合图4更详细地描述了应用程序权限监视器154的应用程序实施方式。
35.虽然示例应用程序权限监视器154是结合示例电子商务平台100描述的,但是本文披露的方法和装置可以与任何类型的联网计算环境一起使用。例如,应用程序权限监视器154可以监视和管理应用程序、插件、客户端等(例如,经由比如api等软件接口)访问软件即服务(saas)平台上、云计算环境上、服务器上等的信息的权限。
36.图2描绘了管理员114的主页的非限制性实施例,该主页可以示出关于日常任务、商店最近的活动以及商家为建立其业务可以采取的后续步骤的信息。在实施例中,商家可以经由商家设备102(比如从台式计算机或移动设备)登录到管理员114,并管理他们的在线商店138的各方面,比如查看在线商店138的最近活动,更新在线商店138目录,管理订单、最近访问活动、总订单活动等。在实施例中,商家可能能够通过使用比如图2所示的侧边栏来访问管理员114的不同部分。管理员114的各部分可以包括用于访问和管理商家业务的核心方面(包括订单、产品、客户、可获得的报告和折扣)的各种界面。管理员114还可以包括用于管理商店的销售渠道的界面,这些销售渠道包括在线商店、客户可用于访问商店的(多个)移动应用程序(移动app)、pos设备和/或购买按钮。管理员114还可以包括用于管理安装在商家账户上的应用程序(app)的界面;应用于商家的在线商店138和账户的设置。商家可以使用搜索栏来查找产品、页面或其他信息。取决于商家正在使用的设备102或软件应用程序,他们可能能够通过管理员114启用不同的功能。例如,如果商家从浏览器登录到管理员114,则他们可能能够管理其在线商店138的所有方面。如果商家从其移动设备(例如,经由移动应用程序)登录,则他们可能能够查看其在线商店138的所有方面或其子集,比如查看在线商店138的最近活动、更新在线商店138的目录、管理订单等。
37.可以通过客流量报告或指标(比如显示商家整体业务的销售概要、活动销售渠道的特定销售和参与度数据等)来查看关于商家的在线商店138的商务和访客的更详细信息。
报告可以包括客流量报告、行为报告、客户报告、财务报告、营销报告、销售报告、定制报告等。商家可能能够比如通过使用下拉菜单来查看不同时间段(例如,数天、数周、数月等)的不同渠道110a-b的销售数据。可以为想要更详细地查看商店的销售和参与度数据的商家提供数据概览。可以在主页指标部分中提供活动源以展示商家账户上的活动的概览。例如,通过点击“查看最近的所有活动”数据面板按钮,商家可能能够看到他们的账户上时间更长的最近活动源。主页可以比如基于账户状态、增长情况、最近客户活动等示出关于商家的在线商店138的通知。可以提供通知以帮助商家导航通过某一过程,比如捕获支付、将订单标记为已履行、归档已完成的订单等。
38.电子商务平台100可以提供通信设施129和相关联的商家接口以提供电子通信和营销,比如使用电子消息传送聚合设施来收集和分析商家、客户、商家设备102、客户设备150、pos设备152等之间的通信交互,以聚合和分析通信,比如从而提高提供产品销售的潜力等。例如,客户可能有与产品相关的问题,这可能在客户与商家(或代表商家的基于自动化处理器的代理)之间产生对话,在这种情况下,通信设施129分析该交互并向商家提供关于如何提高销售概率的分析。
39.电子商务平台100可以提供用于与客户进行安全金融交易的金融设施120,比如通过安全的卡服务器环境。比如在支付卡行业数据(pci)环境(例如,卡服务器)中,电子商务平台100可以存储信用卡信息,以查核财务、向商家开账单、执行电子商务平台100的金融机构账户与商家的银行账户之间的自动清算所(ach)转移(例如,当使用资金时)等。这些系统可以符合萨班斯-奥克斯利法案(sox)的规定,并且在其开发和运营中需要高级别的调查。金融设施120还可以向商家提供金融支持,比如通过借贷资金(例如,借贷款项、现金预付等)和提供保险。另外,电子商务平台100可以提供一组营销和合作伙伴服务并控制电子商务平台100与合作伙伴之间的关系。他们还可以通过电子商务平台100连接和加入新商家。这些服务可以通过使商家更容易在电子商务平台100上工作来实现商家增长。通过这些服务,可以经由电子商务平台100向商家提供帮助设施。
40.在实施例中,在线商店138可以支持大量独立管理的店面并且每天为各种产品处理大量交易数据。交易数据可以包括客户联系信息、账单信息、运输信息、关于所购买的产品的信息、关于所提供的服务的信息以及与通过电子商务平台100进行的业务相关联的任何其他信息。在实施例中,电子商务平台100可以将该数据存储在数据设施134中。交易数据可以被处理以产生与在线商务相关的分析132,该分析进而可以被提供给商家或第三方商务实体,比如提供消费者趋势、营销和销售见解、改善销售的建议、客户行为评估、营销和销售建模、欺诈趋势等,并且是通过数据面板界面、通过报告等来提供的。电子商务平台100可以存储关于业务和商家交易的信息,并且数据设施134可以具有增强、贡献、细化和提取数据的多种方式,其中,随着时间的推移,所收集的数据可以实现对电子商务平台100的各方面的改进。
41.再次参考图1,在实施例中,电子商务平台100可以配置有用于进行内容管理、任务自动化和数据管理的商务管理引擎136,以实现对多个在线商店138的支持和服务(例如,与产品、库存、客户、订单、协作、供应商、报告、财务、风险和欺诈等相关),但该电子商务平台也可通过应用程序142a-b进行扩展,从而实现更大的灵活性和定制过程,以适应不断增长的各种商家在线商店、pos设备、产品和服务,其中,应用程序142a可以在电子商务平台100
内部提供,或者应用程序142b可以从电子商务平台100外部提供。在实施例中,应用程序142a可以由提供平台100的同一方或不同方提供。在实施例中,应用程序142b可以由提供平台100的同一方或不同方提供。商务管理引擎136可以被配置为通过功能和数据的划分(例如,分片)来实现灵活性和可扩展性,比如通过客户标识符、订单标识符、在线商店标识符等来进行该划分。商务管理引擎136可以适应商店特定的业务逻辑,并且在一些实施例中,可以结合管理员114和/或在线商店138。
42.商务管理引擎136包括电子商务平台100的基本或“核心”功能,并且因此,如本文描述的,并非支持在线商店138的所有功能都可以适合包括在内。例如,包括在商务管理引擎136中的功能可能需要超过核心功能阈值——由此可以确定该功能是商务体验的核心(例如,对于大多数在线商店活动来说是共同的,比如跨渠道、管理员界面、商家位置、行业、产品类型等),能够跨在线商店138重复使用(例如,可以跨核心功能重复使用/修改的功能),一次仅限于单个在线商店138的背景(例如,实施在线商店“隔离原则”,在该原则下,代码不应该一次能够与多个在线商店138交互,从而确保在线商店138不能访问彼此的数据),提供交易工作量等。维持对实施什么功能的控制可以使商务管理引擎136能够保持响应性,因为许多需要的特征要么直接由商务管理引擎136提供,要么通过接口140a-b来启用,这比如通过其借助应用程序编程接口(api)连接扩展到应用程序142a-b和渠道110a-b来实现,其中接口140a可以被提供给电子商务平台100内部的应用程序142a和/或渠道110a,或者通过接口140b被提供给电子商务平台100外部的应用程序142b和/或渠道110b。通常,平台100可以包括促进与其他平台、系统、软件、数据源、代码等的连接和通信的接口140a-b(这些接口可以是扩展、连接器、api等)。这样的接口140a-b可以是商务管理引擎136的接口140a或者更一般地是平台100的接口140b。如果不注意限制商务管理引擎136中的功能,响应性可能会受到影响,比如基础设施降级,缓慢的数据库或非关键后端故障,灾难性基础设施故障(比如伴随数据中心离线),正在部署的新代码执行时间比预期的长等。为了防止或减轻这些情况,商务管理引擎136可以被配置为比如通过利用超时、队列、背压来防止降级的配置等来维持响应性。
43.尽管隔离在线商店数据对于维护在线商店138与商家之间的数据隐私很重要,但也可能有理由收集和使用跨商店数据,例如,对于订单风险评估系统或平台支付设施而言,这两者都需要来自多个在线商店138的信息才能很好地执行。在实施例中,与其违反隔离原则,可能不如将这些组件移出商务管理引擎136并移入电子商务平台100内的它们自己的基础设施中。
44.在实施例中,电子商务平台100可以提供平台支付设施120,该平台支付设施是使用来自商务管理引擎136的数据但可能位于外部以便不违反隔离原则的组件的另一个示例。平台支付设施120可以允许与在线商店138交互的客户将其支付信息由商务管理引擎136安全地存储,使得客户只需输入支付信息一次。当客户访问不同的在线商店138时,即使他们以前从未到访,平台支付设施120也可以调用他们的信息以实现更快速和正确的结账。这可以提供跨平台网络效果,在这种情况下,电子商务平台100随着更多商家加入而变得对其商家更有用,比如因为有更多的客户因为客户购买方面的易用性而更频繁地结账。为了最大化该网络的效果,可以从在线商店的结账处取得给定客户的支付信息,从而允许信息跨在线商店138全局可用。使每个在线商店138能够连接到任何其他在线商店138以取得存
储在那里的支付信息将是困难且容易出错的。因此,可以在商务管理引擎136的外部实施平台支付设施。
45.对于未包括在商务管理引擎136内的那些功能,应用程序142a-b提供了一种向电子商务平台100添加特征的方式。应用程序142a-b可能能够访问和修改商家在线商店138上的数据,通过管理员114执行任务,通过用户界面(其例如通过扩展/api呈现)为商家创建新流程等。可以使商家能够通过应用搜索、推荐和支持128来发现和安装应用程序142a-b。在实施例中,可以开发核心产品、核心扩展点、应用程序和管理员114以便一起工作。例如,可以在管理员114内部构建应用程序扩展点,使得可以通过应用程序来扩展核心特征,从而可以通过该扩展向商家提供功能。
46.在实施例中,应用程序142a-b可以通过接口140a-b向商家提供功能,比如应用程序142a-b能够向商家呈现交易数据(例如,app:“引擎,使用嵌入式app sdk在移动和web管理中呈现我的app数据”),和/或商务管理引擎136能够要求应用程序根据需求执行工作(引擎:“app,给我这次结账的本地税费计算”)。
47.应用程序142a-b可以支持在线商店138和渠道110a-b,提供商家支持,与其他服务集成等。在商务管理引擎136可以为在线商店138提供服务基础的情况下,应用程序142a-b可以为商家提供一种满足特定的、有时是独特的需求的方式。不同的商家将会有不同的需求,并且因此可以受益于不同的应用程序142a-b。可以通过电子商务平台100借助以下方式来更好地发现应用程序142a-b:通过应用程序分类法(类别)的开发来标记应用程序,该分类法使得能够根据应用程序为商家执行的功能类型;通过支持搜索、排名和推荐模型的应用程序数据服务;通过比如应用程序商店、主页信息卡、应用程序设置页面等应用程序发现界面等。
48.应用程序142a-b可以通过接口140a-b而连接到商务管理引擎136,比如使用api将通过商务管理引擎136可获得和在该商务管理引擎内可获得的功能和数据暴露于应用程序的功能(例如,通过rest、graphql等)。例如,电子商务平台100可以向商家和面向合作伙伴的产品和服务(比如包括应用程序扩展、过程流服务、面向开发者的资源等)提供api接口140a-b。随着客户更频繁地使用移动设备购物,与移动使用相关的应用程序142a-b可以受益于api的更广泛使用以支持相关增长的商务流量。通过应用程序和api的使用而提供的灵活性(其例如是为应用程序开发而提供的)使电子商务平台100能够更好地适应商家(以及通过内部api的内部开发者)的新的和独特的需求,而无需不断改变商务管理引擎136,从而在商家需要时提供他们所需之物。例如,运输服务122可以通过运输或承运商服务api与商务管理引擎136集成,从而使电子商务平台100能够提供运输服务功能而不直接影响在商务管理引擎136中运行的代码。
49.许多商家问题可以通过让合作伙伴通过应用程序开发改进和扩展商家工作流程来解决,比如与后台操作相关联的问题(面向商家的应用程序142a-b)和在线商店138中的问题(面向客户的应用程序142a-b)。作为开展业务的一部分,许多商家每天都会使用移动和网络相关应用程序来进行后台任务(例如,展销、库存、折扣、履行等)和在线商店任务(例如,与他们的在线商店相关的用于限时抢购、新产品供应等的应用程序),其中,应用程序142a-b通过扩展/api 140a-b帮助使产品在快速增长的市场中易于查看和购买。在实施例中,可以向合作伙伴、应用程序开发者、内部应用程序设施等提供软件开发套件(sdk),比如
通过在管理员114内创建为应用程序接口提供沙盒的框架。在实施例中,管理员114可能无法控制框架,也不知道框架内发生了什么。sdk可以与用户界面套件结合使用以产生模仿电子商务平台100的外观和感觉的界面,比如充当商务管理引擎136的扩展。
50.使用api的应用程序142a-b可以根据需求拉取数据,但通常应用程序还需要在发生更新时推送数据。更新事件可以在订阅模型中实施,例如客户创建、产品改变或订单取消。更新事件可以向商家提供关于商务管理引擎136的改变后的状态所需的更新,比如用于同步本地数据库、通知外部集成合作伙伴等。更新事件可以比如通过更新事件订阅来实现该功能,而不必一直轮询商务管理引擎136以检查更新。在实施例中,当与更新事件订阅相关的改变发生时,商务管理引擎136可以发布请求,比如发布到预定义的回调url。该请求的主体可以包含对象的新状态和动作或事件的描述。更新事件订阅可以在管理员设施114中手动创建,或(例如,经由api 140a-b)自动创建。在实施例中,更新事件可以排队并与触发更新事件的状态改变异步地处理,这可以产生非实时分发的更新事件通知。
51.在实施例中,电子商务平台100可以提供应用程序搜索、推荐和支持128。应用程序搜索、推荐和支持128可以包括:用于帮助应用程序的开发的开发者产品和工具、应用程序数据面板(例如,向开发者提供开发界面、向管理员提供应用程序管理、向商家提供应用程序定制等)、用于安装和提供关于提供对应用程序142a-b的访问权限的设施(例如,用于公共访问,比如在安装之前必须满足标准的情况,或供商家私用),为了使商家易于搜索满足其在线商店138需求的应用程序142a-b的应用程序搜索、用于向商家提供关于他们可以如何通过其在线商店138改善用户体验的建议的应用程序推荐、对商务管理引擎136内的核心应用程序能力的描述等。这些支持设施可以被任何实体执行的应用程序开发使用,包括商家开发他们自己的应用程序142a-b、第三方开发者开发应用程序142a-b(例如,由商家签约、自行开发以提供给公众、签约以与电子商务平台100相关联地使用等)、或与电子商务平台100相关联的内部个人资源开发应用程序142a或142b。在实施例中,应用程序142a-b可以被分配应用程序标识符(id),比如用于链接到应用程序(例如,通过api)、搜索应用程序、进行应用程序推荐等。
52.商务管理引擎136可以包括电子商务平台100的基本功能并且通过api 140a-b将这些功能暴露于应用程序142a-b。api 140a-b可以启用通过应用程序开发构建的不同类型的应用程序。应用程序142a-b可能能够满足商家的多种多样的需求,但可以大致分组为三类:面向客户的应用程序、面向商家的应用程序、集成应用程序等。面向客户的应用程序142a-b可以包括在线商店138或渠道110a-b,其是商家可以列出产品以供购买的地方(例如,在线商店、用于限时抢购的应用程序(例如,商家产品或来自第三方来源的机会性销售机会)、移动商店应用程序、社交媒体渠道、用于提供批发购买的应用程序等)。面向商家的应用程序142a-b可以包括允许商家管理其在线商店138(例如,通过与网络或网站相关或与移动设备相关的应用程序)、经营其业务(例如,通过与pos设备相关的应用程序)、发展其业务(例如,通过与运输(例如,代发货)相关的应用程序、使用自动化代理、使用过程流开发和改进)等的应用程序。集成应用程序可以包括提供参与业务经营的有用集成的应用程序,比如运输提供商112和支付网关。
53.在实施例中,应用程序开发者可以使用应用程序代理从外部位置获取数据并将数据显示于在线商店138的页面上。这些代理页面上的内容可以是动态的、可更新的等等。应
用程序代理对于显示图像库、统计数据、定制表单和其他种类的动态内容可以很有用。电子商务平台100的核心应用程序结构可以允许在应用程序142a-b中构建越来越多的商家体验,使得商务管理引擎136可以保持专注于更常用的商务业务逻辑。
54.电子商务平台100通过精心策划的系统架构提供在线购物体验,该系统架构使商家能够以灵活且透明的方式与客户连接。通过实施例的示例购买工作流程可以更好地理解典型的客户体验,在示例购买工作流程中,客户在渠道110a-b上浏览商家的产品,将打算购买的产品添加到购物车,进行结账,并且为购物车的内容付款,从而为商家创建订单。然后,商家可以审查和履行(或取消)订单。然后将产品配送给客户。如果客户不满意,他们可能会将产品退回给商家。
55.在示例实施例中,客户可以在渠道110a-b上浏览商家的产品。渠道110a-b是客户可以查看和购买产品的地方。在实施例中,渠道110a-b可以被建模为应用程序142a-b(一中可能的例外情况是在线商店138,其被集成在商务管理引擎136中)。展销组件可以允许商家描述他们想要销售什么以及他们在哪里进行销售。产品与渠道之间的关联可以被建模为产品公布,并通过渠道应用程序(比如经由产品列举api)访问。产品可以具有许多选项(如尺寸和颜色)以及许多变型,这些变型将可用选项扩充为所有选项的特定组合,例如超小号绿色变型或大号蓝色变型。产品可能具有至少一个变型(例如,为没有任何选项的产品创建“默认变型”)。为了促进浏览和管理,可以将产品分组为集合、为产品提供产品标识符(例如,货号(sku))等。产品的集合可以通过将产品手动分类为一种(例如,定制集合)、通过构建用于自动分类的规则集(例如,智能集合)等来构建。产品可以作为2d图像、3d图像、旋转视图图像通过虚拟现实或增强现实接口等进行查看。
56.在实施例中,客户可以将他们打算购买的东西添加到其购物车中(在替代实施例中,可以比如通过本文描述的购买按钮直接购买产品)。客户可以将产品变型添加到其购物车中。购物车模型可能是渠道特定的。在线商店138的购物车可以由多个购物车订单项组成,其中每个购物车订单项跟踪产品变型的数量。商家可以使用购物车脚本基于其购物车的内容向客户提供特别促销。由于将产品添加到购物车并不意味着来自客户或商家的任何承诺,并且购物车的预期有效期可能是几分钟(而不是几天)的数量级上,因此购物车可以被持久化到临时数据存储中。
57.然后客户进行结账。结账组件可以实施网络结账,作为面向客户的订单创建过程。结账api可以被提供为面向计算机的订单创建过程,某些渠道应用程序使用该过程来代表客户创建订单(例如,在销售点的情况)。结账可以从购物车创建并记录客户的信息,比如电子邮件地址、账单和运输详细信息。在结账时,商家会承诺定价。如果客户输入他们的联系信息但并未进行支付,则电子商务平台100可以提供让客户重新进行支付的机会(例如,在弃单功能中)。由于这些原因,结账的有效期可能比购物车长得多(数小时或甚至数天),并且因此会持续存在。结账可以基于客户的收货地址计算税费和运费。结账可以将税费的计算委托给税费组件,并将运费的计算委托给交付组件。定价组件可以使商家能够创建折扣代码(例如,在结账时输入会将新价格应用于结账中的货品的“秘密”字符串)。商家可以使用折扣来吸引客户并评估营销活动的表现。折扣和其他定制价格系统可以在同一平台部分之上实施,比如通过价格规则(例如,当满足时意味着一组权利的一组先决条件)来实施。例如,先决条件可以是比如“订单小计大于$ 100”或“运费低于$ 10”等项目,而权利可以是比
如“整个订单打八折”或“产品x、y和z减$ 10”等项目。
58.然后,客户为其购物车中的内容付款,从而为商家创建订单。渠道110a-b可以使用商务管理引擎136在客户与商家之间转移钱款、货币或价值储存物(比如美元或加密货币)。可以在支付处理组件内实施与各种支付提供商(例如,在线支付系统、移动支付系统、数字钱包、信用卡网关等)的通信。可以通过卡服务器环境提供与支付网关106的实际交互。在实施例中,支付网关106可以接受国际支付,比如与领先的国际信用卡处理器集成。卡服务器环境可以包括卡服务器应用程序、卡接收器、托管字段等。这种环境可以充当敏感信用卡信息的安全门卫。在实施例中,大部分过程可以由支付处理作业来编排。商务管理引擎136可以支持许多其他支付方法,例如通过异地支付网关106(例如,客户被重定向到另一个网站)、手动方式(例如,现金)、在线支付方法(例如在线支付系统、移动支付系统、数字钱包、信用卡网关等)、礼品卡等支付。在结账过程结束时会创建订单。订单是商家与客户之间的销售合同,其中商家同意提供订单上列出的商品和服务(例如,订单订单项、运输订单项等)并且客户同意提供支付款项(含税)。该过程可以在销售组件中建模。不依赖商务管理引擎136结账的渠道110a-b可以使用订单api来创建订单。一旦创建了订单,就可以向客户发送订单确认通知,并且经由通知组件向商家发送订单下达通知。当支付处理作业开始时,可以保留库存以避免过度销售(例如,商家可以根据每种变型的库存策略来控制这种行为)。库存保留可能具有很短的时间跨度(几分钟),并且可能需要非常快速且可扩展以支持限时抢购(例如,比如以冲动购买为目标在短时间内提供折扣或促销)。如果支付失败,则取消保留。在支付成功并创建订单后,保留将被转换为分配到特定位置的长期库存承诺。库存组件可以记录变型的贮存位置,并跟踪启用了库存跟踪的变型的数量。该组件可以将产品变型(表示产品列举模板的面向客户的概念)与库存项目(表示数量和位置受到管理的项目的面向商家的概念)分离。库存水平组件可以跟踪可用于销售、对订单承诺或从库存转移组件(例如,供应商)传入的数量。
59.然后,商家可以审查和履行(或取消)订单。审查组件可以实施商家用于在实际履行订单之前确保订单是适合于履行的业务过程。订单可能是欺诈性的,可能需要验证(例如,id检查),可能具有需要商家等待以确保他们将接收到其款项的支付方法等。订单风险模型中可以持续存在风险和推荐。订单风险可以由欺诈检测工具生成、由第三方通过订单风险api提交等。在进行履行之前,商家可能需要捕获支付信息(例如,信用卡信息)或等待接收支付信息(例如,经由银行转账、支票等)并将订单标记为已支付。现在,商家可以准备要交付的产品。在实施例中,该业务过程可以由履行组件来实施。履行组件可以基于库存位置和履行服务将订单的订单项分组形成逻辑履行工作单元。商家可以审查、调整工作单元并触发相关的履行服务,比如在商家拣选产品并将其打包到箱子中、购买运输标签并输入其跟踪编号时(例如,在商家所管理的位置)使用的手动履行服务,或是仅将项目标记为已履行。定制履行服务可以发送电子邮件(例如,不提供api连接的位置)。api履行服务可以触发第三方,其中第三方应用程序创建履行记录。传统履行服务可以触发从商务管理引擎136到第三方的定制api调用(例如,由亚马逊进行的履行)。礼品卡履行服务可以提供(例如,生成号码)并激活礼品卡。商家可以使用订单打印机应用程序来打印装箱单。履行过程可以在货品被打包到箱子中并且准备好运输时、运输时、跟踪时、交付时、验证为被客户接收到时等执行。
60.如果客户不满意,他们可以将(多个)产品退回给商家。商家“取消销售”货品的业务过程可以通过退货组件来实施。退货可以包括各种不同的动作,比如:重新入库,此时曾被售出的产品实际上返回企业并可再次销售;退款,部分或全部退还从客户处收取的钱款;核算调整,记录退款金额(例如,包括是否存在任何重新入库的费用、或商品是否未被退回并留在客户手中);等。退货可以表示对销售合同(例如,订单)的改变,并且在这种情况下,电子商务平台100可以使商家意识到关于法律义务(例如,关于税费)的合规问题。在实施例中,电子商务平台100可以使商家能够随时间的推移跟踪销售合同的改变,比如通过销售模型组件(例如,记录发生在货品上的销售相关事件的基于日期的追加型分类账)来实施。
61.图3描绘了用于查看关于可以由电子商务平台提供给管理员114的应用程序(例如,应用程序142a、142b之一)的信息的界面300的非限制性实施例。如图3的示例界面300所展示的,一组应用程序权限302可以与应用程序(例如,应用程序142a、142b)相关联。根据所展示的示例,“样本app”已被分配“修改产品、变型和集合”、“读取所有订单”、“读取产品、变型和集合”以及“读取订单、交易和履行”的权限。这样的权限可以与单个的权限相关联(例如,提供对“订单”的访问权的第一权限和提供对“产品”的访问权的第二权限),和/或权限可以是捆绑式的(例如,单个权限提供对客户数据和订单数据的访问权)。
62.管理员114可以(例如,在应用程序的部署期间和/或在应用程序被部署之后)分配/编辑/撤销应用程序的权限(比如权限302)。例如,凭证(例如,用户名/密码、api密钥、认证密钥、证书等)可以被分配给/关联于一个或多个权限,从而授权凭证的用户采取行动(例如,以使用接口取得数据)。可替代地,权限(例如,默认权限)可以被预先分配给存储库中(例如,应用程序商店中)的应用程序,并且可以在应用程序的部署期间自动分配给/关联于该应用程序(例如,被分配所生成的凭证)。在一些情况下,可能会分配对应用程序的操作而言不是必要的权限(例如,管理员114和/或应用程序的开发者可能会由于对所需权限的误解等而分配对应用程序的操作而言不是必要的权限)。另外,应用程序所需的权限可能会随时间的推移而改变(例如,应用程序的操作可能(例如,被应用程序开发者和/或管理员114)改变,使得不再需要曾经需要的权限)。相应地,应用程序权限监视器154监视权限以找到暂停不再需要的权限、不再被主动使用的权限、与应用程序的类型不一致的权限等的机会。例如,虽然图3展示出样本app具有客户数据和订单数据的访问权,但是对订单数据的访问权可能是不需要的。例如,应用程序可能会意外地被分配不需要的权限,管理员对应用程序的改变可能导致样本app不访问某些数据(例如,不访问订单数据)等。相应地,本文披露的方法和装置检测撤销/暂停权限的机会以缩减分配给应用程序的一组权限(例如,与应用程序在访问数据(例如,经由图1的接口140a访问数据)时使用的凭证相关联的一组权限)。进一步,可以自动撤销/暂停这样的多余/不需要的权限。
63.图4是图1的应用程序权限监视器154的示例实施方式的框图。图4的示例应用程序权限监视器154包括示例访问监视器402、示例历史数据存储404、示例权限控制器406和示例数据接口408。
64.示例访问监视器402监视对接口140a的访问(例如,由应用程序142a、142b进行的访问)以在示例历史数据存储404中记录访问的历史。示例访问监视器402可以另外监视任何其他接口或由应用程序142a、142b、其他应用程序、插件等进行的访问。示例访问监视器402在历史数据存储404中存储访问日志(例如,应用程序的指示、所使用的特定权限的指
示、所访问的特定接口的指示和时间戳)。可替代地,可以存储任何子集和/或附加信息。例如,访问监视器402可以仅跟踪由应用程序和权限的特定组合最近进行的访问(例如,可以在每次检测到访问时覆写历史数据存储404中的条目)。
65.在一些示例中,访问监视器402实施示例监视装置。该监视装置由(比如至少由图6的框602至604实施的)可执行指令来实施。图6的框602至604的可执行指令可以在至少一个处理器(比如图11的示例处理器1112)上执行。在其他示例中,监视装置由硬件逻辑、硬件实施的状态机、逻辑电路系统、和/或硬件、软件和/或固件的任何其他组合来实施。
66.示例历史数据存储404是用于存储由访问监视器402收集的历史信息的数据库。示例数据库被存储在通信地耦接到计算设备(例如,图11的处理平台1100)的存储设备上。示例数据库包括具有多列的表,这些列包括:应用程序标识符(例如,应用程序的名称、编号或其他唯一标识符)、权限标识符(例如,权限的名称、编号或其他唯一标识符)、所访问的界面(例如,所访问的接口、api、软件接口等的名称、编号或其他唯一标识符)以及时间戳。可替代地,任何其他类型的数据存储和/或数据结构都可以实施历史数据存储404,例如,一个或多个文件、一个或多个存储设备、一个或多个存储器设备、一个或多个可移动存储设备、一个或多个虚拟存储设备、一个或多个云存储设备等和/或其任何组合。
67.在一些示例中,示例历史数据存储404实施示例数据存储装置。该数据存储装置由存储在存储设备(例如,磁盘存储设备、闪存设备等)上的数据库来实施。在其他示例中,该数据存储装置由存储在磁盘存储设备、闪存设备、存储器设备和/或其任何组合上的一个或多个数据结构来实施。
68.示例权限控制器406分析与权限相关联的可用信息以确定是否应该暂停(或维持)与应用程序、插件等相关联的权限。示例权限控制器406访问存储在历史数据存储404中的信息和可经由示例数据接口408获得的信息以确定是否应该暂停权限。例如,在一些实施例中,当历史数据存储404中的信息指示在阈值时间段内未使用权限时,权限控制器406确定应该暂停权限。在一些实施例中,权限控制器406基于从分析132取得的信息、从数据134取得的信息、从在线商店138取得的信息和/或从接口140a取得的信息确定应该暂停权限。
69.示例权限控制器406可以使用以下方法的任何组合来确定应该暂停(或维持)权限。在一些示例中,可以使用加权(例如,由管理员114设置的权重、和/或对与电子商务平台100中的应用程序和权限相关联的可用信息使用机器学习分析来确定的权重、和/或跨电子商务平台学习的权重)来组合这些方法。示例方法:
‑ꢀ
暂停在阈值时间段内未使用的权限。例如,如果凭证与多个权限(例如,用于访问订单数据库的第一权限和用于访问客户数据库的第二权限)相关联,则将维持在阈值时间段内使用的权限(例如,如果在过去30天内使用过用于访问订单数据库的权限,则可以维持该权限),并且将暂停/撤销/移除在阈值时间段内未使用的权限(例如,如果用于访问客户数据库的权限在过去30天内未使用,则可以暂停该权限)。在一些示例中,通过以下方式来计算阈值:通过计算使用权限进行的访问之间的历史平均持续时间并将该平均值的一定百分比与该平均值相加、通过计算访问之间的最大历史持续时间、通过确定访问之间的第99个百分位(或其他百分位)的历史时间、通过计算访问之间的历史持续时间的第三标准偏差(或其他标准偏差)。在一些示例中,通过以下方式来确定阈值:确定具有与被分配所分析权限的应用程序相同类型的应用程序进行的访问之间的历史平均持续时间并将该平均值
的一定百分比与该平均值相加以确定阈值。在一些示例中,阈值是基于历史访问模式来确定的(例如,历史模式可以随时间的推移(例如,每周、每月、每年)改变,使得阈值可以基于一周、一月、一年等中的时间来确定)。在一些示例中,阈值可以通过访问阈值表(例如,该阈值表按应用程序类型、按权限类型、按所访问的接口等分类)来确定。
70.‑ꢀ
暂停从在与权限相关联的站点发生另一事件(例如,客户端访问站点、在站点进行购买、客户端在该站点进行指定动作、向站点添加元素等)开始的阈值时间段内未使用的权限。例如,在电子商务站点上,如果应用程序访问订单数据库的权限在电子商务站点进行新订单交易的24小时内未使用,则可以暂停该权限)。在一些示例中,使用这种基于事件的阈值可以避免在具有低活动水平的站点上暂停权限。例如,如果应用程序预计在新订单交易后24小时内访问api,但站点并不忙碌并且可能90天内都没有订单交易,基于事件的阈值就确保了在两次访问之间经过了例如超过30天后(但应用程序会在每次新订单交易后的24小时内访问api)应用程序的权限不会被暂停。
71.‑ꢀ
确定分配权限的用户的状态并暂停由不活动用户所分配的权限。例如,如果授权了权限的用户不再是有效用户(例如,被移除、暂停、降级为无权分配权限、不活动、密码过期等),则可以暂停/撤销/移除该用户所分配的权限。
72.‑ꢀ
确定被分配了权限的站点的状态并暂停不活动(例如,已被禁用、已被冻结、已被标记为违反安全和/或政策、在阈值持续时间内未访问等)的站点的权限。例如,如果与权限相关联的站点(例如,该权限授权了用于访问与该站点相关联的信息的凭证)不再活动(例如,被移除、暂停、标记为可疑和/或恶意活动、不活动等),则可以暂停/撤销/移除分配给该站点的权限。
73.示例权限控制器406可以通过以下方式来暂停权限:删除权限;将权限标记为撤销、无效、禁用等;对权限进行标记以进行审查,向管理员114发送通知等。图5中展示了用于通知管理员114的示例界面500。如图5所示,通知界面500可以标识应用程序、权限和通知原因。另外,通知500包括表示同意和批准暂停的批准按钮502和拒绝暂停的拒绝按钮504。
74.返回到图4的示例权限控制器406,所展示的示例的权限控制器406定期(例如,每1天、每5天、每30天、每60天、每90天等)分析所有权限以进行暂停。相应地,当分析时间到来时,可以迭代地分析所有权限以识别要暂停的权限(以及要维持的权限)。可替代地,权限控制器406可以响应于对使用权限的尝试(例如,应用程序尝试访问接口140a)而确定是否应该暂停该权限。例如,可以中止(例如,保持、暂停、延迟等)对使用权限的尝试,直到执行对权限的分析为止。当确定要暂停权限时,可以阻止对使用该权限的尝试,并且将暂停该权限。当确定要维持权限时,可以允许继续进行对使用该权限的尝试。
75.在一些示例中,示例权限控制器406实施示例权限控制装置。该权限控制装置由(比如至少由图6至图10的框606至616实施的)可执行指令来实施。图6至图10的框606至616的可执行指令可以在至少一个处理器(比如图11的示例处理器1112)上执行。在其他示例中,权限控制装置由硬件逻辑、硬件实施的状态机、逻辑电路系统、和/或硬件、软件和/或固件的任何其他组合来实施。
76.示例数据接口408将示例权限控制器406与示例电子商务平台100的其他数据组件通信耦接。例如,数据接口408可以包括对数据进行提取、重新格式化、转换等的操作,以促进示例权限控制器406对数据的使用。例如,数据接口408可以实施api和/或可以访问其他
组件的api以取得信息。
77.虽然图4中展示了实施图1的应用程序权限监视器154的示例方式,但是图4中所展示的元件、过程和/或设备中的一个或多个可以以任何其他方式组合、分割、重新布置、省略、消除和/或实施。进一步,示例访问监视器402、示例权限控制器406、示例数据接口408和/或更一般地图4的示例应用程序权限监视器154可以由硬件、软件、固件、和/或硬件、软件和/或固件的任何组合来实施。因此,例如,示例访问监视器402、示例权限控制器406、示例数据接口408和/或更一般地图4的示例应用程序权限监视器154中的任一个可以由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件(pld)和/或现场可编程逻辑器件(fpld)来实施。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实施方式时,示例访问监视器402、示例权限控制器406、示例数据接口408和/或更一般地图4的示例应用程序权限监视器154中的至少一个在此明确定义为包括具有软件和/或固件的非暂态计算机可读存储设备或存储盘,比如存储器、数字通用盘(dvd)、压缩盘(cd)、蓝光光盘等。更进一步,图4的示例应用程序权限监视器154可以包括一个或多个元件、过程和/或设备作为图4中所展示的那些元件、过程和/或设备的补充或替代,和/或可以包括多于一个任何或全部所展示的元件、过程和设备。如本文所使用的,短语“通信”(包括其变体)涵盖直接通信和/或通过一个或多个中间组件的间接通信,并且不需要直接物理(例如,有线)通信和/或持续通信,而是另外包括以周期性间隔、预定间隔、非周期性间隔和/或一次性事件的方式进行的选择性通信。
78.图6至图10中示出了代表用于实施应用程序权限监视器154的示例硬件逻辑、机器可读指令、硬件实施的状态机和/或其任何组合的流程图。机器可读指令可以是用于由计算机处理器和/或处理器电路系统(比如以下结合图11讨论的示例处理器平台1100中所示的处理器1112)执行的一个或多个可执行程序或可执行程序的(多个)部分。程序可以在软件中实施,该软件存储在非暂态计算机可读存储介质上,比如cd-rom、软盘、硬盘驱动器、dvd、蓝光光盘或与处理器1112相关联的存储器,但是整个程序和/或其部分可以可替代地由除了处理器1112以外的设备执行和/或在固件或专用硬件中实施。进一步,虽然示例程序是参考图6至图10所展示的流程图进行描述的,但是可以可替代地使用实施示例应用程序权限监视器154的许多其他方法。例如,可以改变各个框的执行顺序,和/或可以改变、消除或组合所描述的一些框。另外或可替代地,任何或全部框可以由一个或多个硬件电路(例如,分立和/或集成模拟和/或数字电路系统、fpga、asic、比较器、运算放大器(op-amp)、逻辑电路等)实施,该硬件电路被构造成执行对应的操作而不执行软件或固件。处理器电路系统可以分布在不同的网络位置和/或在一个或多个设备(例如,单个机器中的多核处理器、跨服务器机架分布的多个处理器等)本地。
79.本文描述的机器可读指令可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一种或多种存储。如本文描述的机器可读指令可以存储为可以用于创建、制造和/或产生机器可执行指令的数据或数据结构(例如,指令的部分、代码、代码表示等)。例如,机器可读指令可以被分段并存储在位于网络或网络集合的相同或不同位置处(例如,在云中、在边缘设备中等)的一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能需要进行安装、修改、调整、更新、组合、补充、配置、解密、解压、解包、
分发、重新分配、编译等中的一项或多项,以使这些机器可读指令直接可由计算设备和/或其他机器读取、解释和/或执行。例如,机器可读指令可以存储在多个部分中,这些部分被单独压缩、加密并存储在单独的计算设备上,其中,这些部分在解密、解压缩和组合时形成实施一个或多个功能的一组可执行指令,这组可执行指令可以共同形成程序(比如本文描述的程序)。
80.在另一个示例中,机器可读指令可以以某种状态被存储,其中机器可读指令可以被处理器电路系统读取,但是需要添加库(例如,动态链接库(dll))、软件开发套件(sdk)、应用程序编程接口(api)等,以便在特定计算设备或其他设备上执行这些指令。在另一个示例中,在机器可读指令和/或(多个)对应的程序可以整体或部分地被执行之前,可能需要对机器可读指令进行配置(例如,存储设置、输入数据、记录网络地址等)。因此,本文所使用的机器可读介质可以包括机器可读指令和/或(多个)程序,而不管机器可读指令和/或(多个)程序在存储或以其他方式处于静止状态或传输时的特定格式或状态。
81.本文描述的机器可读指令可以由任何过去、现在或未来的指令语言、脚本语言、编程语言等表示。例如,机器可读指令可以使用以下语言中的任何一种来表示:c、c++、java、c#、perl、python、javascript、超文本标记语言(html)、结构化查询语言(sql)、swift等。
82.如上所述,图6至图10的示例过程可以使用可执行指令(例如,计算机和/或机器可读指令)来实施,这些可执行指令存储在非暂态计算机和/或机器可读介质上,比如硬盘驱动器、闪存、只读存储器、压缩盘、数字通用盘、缓存、随机存取存储器、和/或在任何持续时间(例如,长时间段、永久、极短时间、临时缓冲和/或信息缓存)内将信息存储于其中的任何其他存储设备或存储盘。如本文所使用的,术语非暂态计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且不包括传播信号且不包括传输介质。
[0083]“包括(including)”和“包括(comprising)”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求采用任何形式的“包括(include)”或“包括(comprise)”(例如,包括(comprises、includes、comprising、including)、具有等)作为前序或将其用在任何类型的权利要求引述内,应该理解,在不超出对应权利要求或引述的范围的情况下,可以存在附加的元素、术语等。如本文所使用的,当短语“至少”用作例如权利要求的前序中的过渡术语时,其以与术语“包括(comprising)”和“包括(including)”作为开放式术语相同的方式而是开放式的。术语“和/或”当以比如a、b和/或c的形式使用时指代a、b、c的任何组合或子集,例如:(1)单独的a,(2)单独的b,(3)单独的c,(4)a和b,(5)a和c,(6)b和c,以及(7)a和b和c。如本文在描述结构、组件、项目、对象和/或事物的上下文中所使用的,短语“a和b中的至少一个”旨在指代包括以下各项中的任何一项的实施方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,如本文在描述结构、组件、项目、对象和/或事物的上下文中所使用的,短语“a或b中的至少一个”旨在指代包括以下各项中的任何一项的实施方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。如本文在描述过程、指令、动作、活动和/或步骤的执行(performance或execution)时所使用的,短语“a和b中的至少一个”旨在指代包括以下各项中的任何一项的实施方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,如本文在描述过程、指令、动作、活动和/或步骤的执行(performance或execution)时所使用的,短语“a或b中的至少一个”旨在指代包括以下各项中的任何一项的实施方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a
和至少一个b。
[0084]
如本文所使用的,单数引用(例如,“一”、“一个”、“第一”、“第二”等)不排除复数。如本文所使用的,术语“一”、“一个”实体是指该实体中的一个或多个。术语“一”(或“一个”)、“一个或多个”和“至少一个”在本文中可以互换使用。此外,即使被单独列出,但多个装置、元件或方法动作也可以由例如单个单元或处理器来实施。另外,虽然单独的特征可能被包括在不同的示例或权利要求中,但这些特征可以被组合,并且被包括在不同的示例或权利要求中并不意味着特征的组合是不可行的和/或不利的。
[0085]
图6的程序开始于访问监视器402监视对软件接口的访问(框602)。例如,访问监视器402可以登记来自接口140a的事件通知,可以监听在接口140a处接收的通信,可以监视接口140a的访问日志,可以登记权限被访问的事件通知,可以代理对接口140a的访问等。示例访问监视器402将收集到的访问信息存储在示例历史数据存储404中(框604)。
[0086]
示例权限控制器406然后确定是否到分析权限以进行可能的暂停的时间了(框606)。例如,权限控制器406可以基于定时器到期或任何其他事件触发器来确定到分析权限的时间了。虽然示例权限控制器406被描述为以与访问监视器402的操作串行流的方式确定是否到分析权限的时间了,但是权限控制器406可以可替代地与访问监视器402的操作部分或完全并行地操作。
[0087]
当示例权限控制器406确定未到分析权限的时间时(框606:否),控制返回到框602以继续监视访问。
[0088]
当示例权限控制器406确定到分析权限的时间了时(框606:是),示例权限控制器选择第一权限(框608)。示例权限控制器然后确定该权限是否满足暂停标准(例如,分析从历史数据存储404取得的和/或经由数据接口408取得的数据)(框610)。例如,当应用程序在阈值时间段内未访问用于访问软件接口的权限时,权限控制器406可以确定暂停用于访问比如api等软件接口的权限(例如,即使应用程序使用相同或不同的权限访问了其他软件接口(例如,可以维持已使用的用于访问软件接口的权限,而可以暂停未使用的用于访问软件接口的权限)。对是否要暂停权限的示例分析将结合图7至图10进行描述。
[0089]
当示例权限控制器406确定要暂停权限时(框610:是),权限控制器406暂停该权限(框612)。例如,可以通过移除权限、移除与软件接口相关联的授权但维持权限凭证、设置指示权限被撤销、暂停的标记等来暂停权限。
[0090]
当权限控制器406确定不暂停权限时(框610:是)或在暂停权限之后(框612),权限控制器406确定是否存在要分析的另一权限(框614)。
[0091]
当没有要分析的另外的权限时(框614:否),控制返回到框602以继续监视对软件接口的访问。
[0092]
当存在要分析的另外的权限时(框614:是),权限控制器406选择下一个权限(框614),并且控制返回到框610以分析下一个权限。
[0093]
图7至图10展示了可以被执行以实施图6的框610来确定是否应该暂停权限的示例机器可读指令。
[0094]
图7展示了图6的框610的示例实施方式。根据图7所展示的示例,为了分析是否要暂停权限,示例权限控制器406确定自上次使用权限访问接口以来的时间(框702)。例如,权限控制器406可以确定当前日期/时间与存储在历史数据存储404中的上次访问的时间戳之
间的天数、周数、月数等。示例权限控制器406然后确定所确定的时间是否超过阈值(框704)。例如,权限控制器406可以确定是否已经经过超过阈值的天数。可替代地,权限控制器406可以确定值是否大于阈值、小于阈值、等于阈值等。
[0095]
当该时间超过阈值时(框704:是),控制进行到框612以暂停权限。当时间未超过阈值时(框704:否),控制进行到框614以确定是否存在要分析的另外的权限。
[0096]
图8展示了图6的框610的示例实施方式。根据图8的所展示的示例,为了分析是否要暂停权限,示例权限控制器406确定设置/分配权限的站点和/或用户的状态(框802)。例如,用户可以授权应用程序访问站点的数据接口(例如,客户数据api)。这样的用户和/或站点随后可能被停用、暂停、禁用、删除、识别为安全威胁等。示例权限控制器406然后确定该站点和/或用户是否是活动的(框804)。
[0097]
当站点和/或用户不是活动的(例如,不活动、被暂停、被阻止等)时(框804:否),控制进行到框612以暂停权限。当该站点和/或用户是活动的时(框804:是),控制进行到框614以确定是否存在要分析的另外的权限。
[0098]
图9展示了图6的框610的示例实施方式。根据图9所展示的示例,为了分析是否要暂停权限,示例权限控制器406确定自上次使用权限访问接口以来的时间(框902)。例如,权限控制器406可以确定当前日期/时间与存储在历史数据存储404中的上次访问的时间戳之间的天数、周数、月数等。示例权限控制器406然后确定与该权限相关联的历史访问模式(框904)。例如,访问模式可以是每月访问、每年访问、访问之间的平均时间等的模式。示例权限控制器406然后基于模式确定阈值(框906)。例如,阈值可以设置为:访问之间的平均时间段+访问之间的平均时间段的一定百分比。在特定示例中,如果发现在历史数据中访问之间的平均时间为25天,并且所使用的百分比为20%,则阈值可以设置为25 + (0.20
ꢀ×ꢀ
25) = 30天。可替代地,可以基于模式(例如,每天、每月、每年等访问)来设置阈值,使得如果在前一天/月/年等期间没有发生访问,则可以暂停权限。可替代地,可以基于另一启发法来确定阈值,比如访问之间的最大历史持续时间,通过确定访问之间的第99个百分位(或其他百分位)的历史时间,通过计算访问之间的历史持续时间的第三标准偏差(或其他标准偏差)等。
[0099]
示例权限控制器406然后确定所确定的时间是否超过阈值(框906)。例如,权限控制器406可以确定是否已经经过超过阈值的天数。可替代地,权限控制器406可以确定值是否大于阈值、小于阈值、等于阈值等。
[0100]
当该时间超过阈值时(框906:是),控制进行到框612以暂停权限。当时间未超过阈值时(框906:否),控制进行到框614以确定是否存在要分析的另外的权限。
[0101]
图10展示了图6的框610的示例实施方式。根据图10所展示的示例,为了分析是否要暂停权限,示例权限控制器406确定自上次使用权限访问接口以来的时间(框1002)。例如,权限控制器406可以确定当前日期/时间与存储在历史数据存储404中的上次访问的时间戳之间的天数、周数、月数等。示例权限控制器406然后确定应用程序类型(框1004)。例如,应用程序可以与某一类别相关联(例如,可以从应用程序、从应用程序商店等取得关于应用程序类型的数据。
[0102]
示例权限控制器然后基于应用程序类型确定阈值(框1006)。例如,权限控制器406可以访问与应用程序类型相关联的阈值查找表。例如,促进准备年度税费信息的应用程序可能预计每年仅访问接口一次,并且可以与13个月的阈值相关联,而分析客户详细信息以
检测欺诈的应用程序可能预计每天访问数据和/或从上次交易开始的一段时间内访问数据,并且将与一天的阈值或等于自上次交易以来的时间加上一天的阈值相关联。
[0103]
例如,访问模式可以是每月访问、每年访问、访问之间的平均时间等的模式。示例权限控制器406然后基于模式确定阈值(框1006)。例如,阈值可以设置为:访问之间的平均时间段+访问之间的平均时间段的一定百分比。在特定示例中,如果发现在历史数据中访问之间的平均时间为25天,并且所使用的百分比为20%,则阈值可以设置为25 + (0.20
ꢀ×ꢀ
25) = 30天。可替代地,可以基于模式(例如,每天、每月、每年等访问)来设置阈值,使得如果在前一天/月/年等期间没有发生访问,则可以暂停权限。
[0104]
示例权限控制器406然后确定所确定的时间是否超过阈值(框1008)。例如,权限控制器406可以确定是否已经经过超过阈值的天数。可替代地,权限控制器406可以确定值是否大于阈值、小于阈值、等于阈值等。
[0105]
当时间超过阈值时(框1008:是),示例权限控制器406向管理员114(或另一管理用户)呈现已经将权限识别为要暂停的通知(框1010)。例如,可以呈现图5所展示的通知。可替代地,可以呈现任何其他通知和/或通知类型(例如,电子邮件、文本消息、即时消息、弹出窗口、网络通知等)。示例通知包括供用户用于提供批准或拒绝暂停的响应的输入。例如,图5的通知包括按钮。可替代地,用户可以单击链接、键入响应/命令等。示例权限控制器406确定用户是批准还是拒绝了暂停(框1012)。
[0106]
当用户批准暂停时(框1012:是),控制进行到框612以暂停权限。当用户拒绝暂停时(框1012:否),控制进行到框614以确定是否存在要分析的另外的权限。
[0107]
虽然图10展示了在暂停权限之前呈现通知的示例,但是这样的通知和批准步骤可以与图6至图9的示例过程中的任何一个和/或任何其他暂停过程相结合。此外,虽然图7至图10展示了独立的过程,但是这些过程和分析中的任何一个都可以组合在一起。例如,可以组合用于确定是否暂停的各种方法(例如,通过将加权应用于各个确定)。每个确定可以与分数相关联并且可以将总分数与阈值进行比较。在一些实施例中,可以使用机器学习算法基于历史数据来确定这样的加权和/或阈值。这样的历史数据可以从单个电子商务平台(或其他类型的平台)和/或多个电子商务平台(或其他平台)收集。在一些示例中,可以给每种启发法分配固定权重。
[0108]
本文描述的方法和系统可以部分或整体地通过在处理器上执行计算机软件、程序代码和/或指令的机器来部署。处理器可以是服务器、云服务器、客户端、网络基础设施、移动计算平台、固定计算平台或其他计算平台的一部分。处理器可以是能够执行程序指令、代码、二进制指令等的任何种类的计算设备或处理设备。处理器可以是或包括信号处理器、数字处理器、嵌入式处理器、微处理器或任何变型,比如可以直接或间接地促进存储在其上的程序代码或程序指令的执行的协处理器(数学协处理器、图形协处理器、通信协处理器等)。另外,处理器可以实现多个程序、线程和代码的执行。线程可以同时执行以增强处理器的性能并促进应用程序的同时操作。通过实施方式,本文描述的方法、程序代码、程序指令等可以在一个或多个线程中实施。该线程可以引起可能已被分配了与其相关联的优先级的其他线程;处理器可以基于优先级或基于根据程序代码中提供的指令的任何其他顺序来执行这些线程。处理器可以包括存储如本文和其他地方描述的方法、代码、指令和程序的存储器。处理器可以通过接口访问可以存储如本文和其他地方描述的方法、代码和指令的存储介
质。与处理器相关联的用于存储计算设备或处理设备能够执行的方法、程序、代码、程序指令或其他类型的指令的存储介质可以包括但不限于cd-rom、dvd、存储器、硬盘、闪存驱动器、ram、rom、缓存等中的一个或多个。
[0109]
处理器可以包括一个或多个核,该一个或多个核可以提高多处理器的速度和性能。在实施例中,过程可以是组合两个或更多个独立核(称为管芯)的双核处理器、四核处理器、其他芯片级多处理器等。
[0110]
本文描述的方法和系统可以部分或整体地通过在服务器、云服务器、客户端、防火墙、网关、集线器、路由器或其他这样的计算机和/或联网硬件上执行计算机软件的机器来部署。软件程序可以与服务器相关联,该服务器可以包括文件服务器、打印服务器、域服务器、互联网服务器、内联网服务器以及其他变型,比如次级服务器、主机服务器、分布式服务器等。服务器可以包括存储器、处理器、计算机可读介质、存储介质、端口(物理和虚拟)、通信设备、以及能够通过有线或无线介质访问其他服务器、客户端、机器和设备的接口等中的一个或多个。本文和其他地方描述的方法、程序或代码可以由服务器执行。另外,执行本技术中描述的方法所需的其他设备可以被视为与服务器相关联的基础设施的一部分。
[0111]
服务器可以提供到其他设备的接口,这些其他设备包括但不限于客户端、其他服务器、打印机、数据库服务器、打印服务器、文件服务器、通信服务器、分布式服务器等。另外,这种耦接和/或连接可以促进跨网络远程执行程序。在不脱离本披露内容的范围的情况下,将这些设备中的一些或全部联网可以促进在一个或多个位置处并行处理程序或方法。另外,通过接口连接到服务器的任何设备可以包括能够存储方法、程序、代码和/或指令的至少一个存储介质。中央存储库可以提供要在不同设备上执行的程序指令。在这种实施方式中,远程存储库可以充当程序代码、指令和程序的存储介质。
[0112]
软件程序可以与客户端相关联,该客户端可以包括文件客户端、打印客户端、域客户端、互联网客户端、内联网客户端以及其他变型,比如次级客户端、主机客户端、分布式客户端等。客户端可以包括存储器、处理器、计算机可读介质、存储介质、端口(物理和虚拟)、通信设备、以及能够通过有线或无线介质访问其他客户端、服务器、机器和设备的接口等中的一个或多个。本文和其他地方描述的方法、程序或代码可以由客户端执行。另外,执行本技术中描述的方法所需的其他设备可以被视为与客户端相关联的基础设施的一部分。
[0113]
客户端可以提供到其他设备的接口,这些其他设备包括但不限于服务器、其他客户端、打印机、数据库服务器、打印服务器、文件服务器、通信服务器、分布式服务器等。另外,这种耦接和/或连接可以促进跨网络远程执行程序。在不脱离本披露内容的范围的情况下,将这些设备中的一些或全部联网可以促进在一个或多个位置处并行处理程序或方法。另外,通过接口连接到客户端的任何设备可以包括能够存储方法、程序、应用程序、代码和/或指令的至少一个存储介质。中央存储库可以提供要在不同设备上执行的程序指令。在这种实施方式中,远程存储库可以充当程序代码、指令和程序的存储介质。
[0114]
本文描述的方法和系统可以部分或整体地通过网络基础设施来部署。网络基础设施可以包括比如计算设备、服务器、路由器、集线器、防火墙、客户端、个人计算机、通信设备、路由设备以及本领域已知的其他有源和无源设备、模块和/或组件等元件。除了其他组件之外,与网络基础设施相关联的(多个)计算和/或非计算设备可以包括比如闪存、缓冲器、堆栈、ram、rom等存储介质。本文和其他地方描述的过程、方法、程序代码、指令可以由一
个或多个网络基础设施元件执行。
[0115]
本文和其他地方描述的方法、程序代码和指令可以在不同设备中实施,这些设备可以在有线或无线网络中操作。无线网络的示例包括第4代(4g)网络(例如,长期演进(lte))或者第5代(5g)网络、以及比如无线局域网(wlan)等非蜂窝网络。然而,本文描述的原理可以同等地适用于其他类型的网络。
[0116]
本文和其他地方描述的操作、方法、程序代码和指令可以在移动设备上或通过移动设备实施。移动设备可以包括导航设备、蜂窝电话、移动电话、移动个人数字助理、膝上型计算机、掌上型计算机、上网本、寻呼机、电子书阅读器、音乐播放器等。除了其他组件之外,这些设备可以包括比如闪存、缓冲器、ram、rom等存储介质和一个或多个计算设备。可以使与移动设备相关联的计算设备能够执行存储在其上的程序代码、方法和指令。可替代地,移动设备可以被配置为与其他设备协作执行指令。移动设备可以与同服务器进行接口连接并且被配置为执行程序代码的基站通信。移动设备可以在对等网络、网状网络或其他通信网络上进行通信。程序代码可以存储在与服务器相关联的存储介质上并且由嵌入服务器内的计算设备执行。基站可以包括计算设备和存储介质。存储设备可以存储由与基站相关联的计算设备执行的程序代码和指令。
[0117]
计算机软件、程序代码和/或指令可以在机器可读介质上存储和/或访问,这些机器可读介质可以包括:在某一时间间隔内保留用于计算的数字数据的计算机组件、设备和记录介质;被称为随机存取存储器(ram)的半导体存储装置;通常用于更持久的存储的大容量存储装置,比如光盘、磁存储形式(如硬盘、磁带、磁鼓、卡和其他类型);处理器寄存器、缓存存储器、易失性存储器、非易失性存储器;光学存储装置,比如cd、dvd;可移动介质,比如闪存(例如,u盘或密钥)、软盘、磁带、纸带、穿孔卡、独立ram磁盘、zip驱动器、可移动大容量存储装置、离线存储器等;其他计算机存储器,比如动态存储器、静态存储器、读/写存储装置、可变存储装置、只读存储器、随机存取存储器、顺序存取存储器、位置可寻址存储器、文件可寻址存储器、内容可寻址存储器、网络附加存储装置、存储区域网络、条形码、磁性墨水等。
[0118]
本文描述的方法和系统可以将实体和/或无形之物从一种状态变换为另一种状态。本文描述的方法和系统还可以将表示实体和/或无形之物的数据从一种状态变换为另一种状态,比如从使用数据转换为标准化的使用数据集。
[0119]
本文所描述和描绘的元素,包括在所有附图中的流程图和框图中的元素,暗示了元素之间的逻辑边界。然而,根据软件或硬件工程实践,所描绘的元素及其功能可以通过计算机可执行介质在具有处理器的机器上实施,该处理器能够执行作为单片软件结构、作为独立软件模块、或作为采用外部例程、代码、服务等的模块、或者作为以上的任何组合而存储于其上的程序指令,并且所有这样的实施方式都在本披露内容的范围内。这种机器的示例可以包括但不限于个人数字助理、膝上型计算机、个人计算机、移动电话、其他手持式计算设备、医疗设备、有线或无线通信设备、换能器、芯片、计算器、卫星、平板pc、电子书、小工具、电子设备、具有人工智能的设备、计算设备、联网设备、服务器、路由器等。此外,在流程图和框图中所描绘的元素或任何其他逻辑部件可以在能够执行程序指令的机器上实施。因此,虽然以上附图和描述阐述了所披露系统的多个功能方面,但除非明确说明或以其他方式从上下文清楚地看出,否则不应从这些描述中推断用于实施这些功能方面的软件的具体
布置。类似地,将理解的是,上文所标识和描述的各个步骤都是可以改变的,并且这些步骤的顺序可以适于本文所披露的技术的特定应用。所有这样的改变和修改均旨在落入本披露内容的范围之内。这样,对各个步骤的顺序的描绘和/或描述不应该被理解为要求按特定顺序执行这些步骤,除非特定应用要求、或者明确声明或以其他方式从上下文清楚地看出。
[0120]
上述方法和/或过程及其步骤可以在适合于特定应用的硬件、软件、或硬件和软件的任何组合中实现。硬件可以包括通用计算机和/或专用计算设备、或特定计算设备、或特定计算设备的特定方面或部件。这些过程可以在一个或多个微处理器、微控制器、嵌入式微处理器、可编程数字信号处理器或其他可编程设备、以及内部和/或外部存储器中实现。处理器可以另外或者替代地在专用集成电路、可编程门阵列、可编程阵列逻辑、或者可以被配置为处理电子信号的任何其他设备或设备的组合中实施。将进一步理解的是,这些过程中的一个或多个过程可以被实现为能够在机器可读介质上执行的计算机可执行代码。
[0121]
计算机可执行代码可以使用比如c等结构化程序设计语言、比如c++等面向对象的程序语言、或者任何其他高级或低级编程语言(包括汇编语言、硬件描述语言和数据库编程语言和技术),这些高级或低级编程语言可以被存储、编译或解释,以在以上设备之一、以及处理器的异构组合、处理器架构、或不同硬件和软件的组合、或能够执行程序指令的任何其他机器上运行。
[0122]
因此,在一方面,上文描述的每个方法及其组合可以用计算机可执行代码来实施,这些计算机可执行代码当在一个或多个计算设备上执行时执行这些方法的步骤。在另一方面,这些方法可以用执行其步骤的系统来实施并且可以以多种方式跨设备分布,或者所有功能可以被集成到专用的独立设备或其他硬件中。在另一方面,用于执行与上述过程相关联的步骤的装置可以包括上述任何硬件和/或软件。所有这样的排列和组合均旨在落入本披露内容的范围之内。
[0123]
此外,图11是被构造为执行图11的指令以实施图1和/或图4的应用程序权限控制器154的示例处理器平台1100的框图。处理器平台1100可以是例如服务器、个人计算机、工作站、自学习机器(例如神经网络)或任何其他类型的计算设备。
[0124]
所展示的示例的处理器平台1100包括处理器1112。所展示的示例的处理器1112是硬件。例如,处理器1112可以由来自任何期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或控制器来实施。硬件处理器可以是基于半导体(例如,基于硅)的设备。在该示例中,处理器实施访问监视器402、权限控制器406和数据接口408。
[0125]
所展示的示例的处理器1112包括本地存储器1113(例如,缓存)。所展示的示例的处理器1112经由总线1118与包括易失性存储器1114和非易失性存储器1116的主存储器通信。易失性存储器1114可以由同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、rambus
®
动态随机存取存储器(rdram
®
)和/或任何其他类型的随机存取存储器设备来实施。非易失性存储器1116可以由闪存和/或任何其他期望类型的存储器设备来实施。对主存储器1114、1116的访问由存储器控制器控制。
[0126]
所展示的示例的处理器平台1100还包括接口电路1120。接口电路1120可以由任何类型的接口标准来实施,比如以太网接口、通用串行总线(usb)、bluetooth
®
接口、近场通信(nfc)接口和/或pci express接口。
[0127]
在所展示的示例中,一个或多个输入设备1122连接到接口电路1120。(多个)输入
设备1122允许用户将数据和/或命令输入到处理器1112中。(多个)输入设备可以由例如音频传感器、麦克风、相机(照相机或摄像机)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等点(isopoint)和/或语音识别系统来实施。
[0128]
一个或多个输出设备1124也连接到所展示的示例的接口电路1120。输出设备1124可以例如由显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器(lcd)、阴极射线管显示器(crt)、平面转换(ips)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器实施。因此,所展示的示例的接口电路1120通常包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。
[0129]
所展示的示例的接口电路1120还包括比如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点和/或网络接口等通信设备以促进经由网络1126与外部机器(例如,任何种类的计算设备)的数据交换。通信可以经由例如以太网连接、数字订户线(dsl)连接、电话线连接、同轴电缆系统、卫星系统、直线对传式(line-of-site)无线系统、蜂窝电话系统等。
[0130]
所展示的示例的处理器平台1100还包括用于存储软件和/或数据的一个或多个大容量存储设备1128。这种大容量存储设备1128的示例包括软盘驱动器、硬盘驱动器磁盘、压缩磁盘驱动器、蓝光光盘驱动器、独立磁盘冗余阵列(raid)系统和数字通用盘(dvd)驱动器。示例大容量存储1128存储示例历史数据存储404。
[0131]
机器可执行指令1132可以是图6至图10中表示的机器可读指令,这些机器可读指令可以存储在大容量存储设备1128、易失性存储器1114、非易失性存储器1116和/或可移动非暂态计算机可读存储介质(比如,cd或dvd)上。
[0132]
图12中示出了展示用于向第三方分发比如图11的示例计算机可读指令1132的软件的示例软件分发平台1205的框图。示例软件分发平台1205可以由能够存储软件并将软件发送到其他计算设备的任何计算机服务器、数据设施、云服务等来实施。第三方可以是拥有和/或运营软件分发平台的实体的客户。例如,拥有和/或运营软件分发平台的实体可以是比如图11的示例计算机可读指令1132等软件的开发者、卖方和/或许可方。第三方可以是购买和/或许可软件以供使用和/或转售和/或次许可的消费者、用户、零售商、oem等。例如,与电子商务平台100类似的电子商务平台的所有者可以从软件分发平台1205获得软件以将应用程序权限监视器154添加到电子商务平台。
[0133]
在所展示的示例中,软件分发平台1205包括一个或多个服务器和一个或多个存储设备。存储设备存储计算机可读指令1132,这些计算机可读指令可以对应于如上所述的图6至图10的示例计算机可读指令。示例软件分发平台1205的一个或多个服务器与网络1210通信,该网络可以对应于互联网和/或上述任何一个示例网络中的任何一个或多个。在一些示例中,作为商业交易的一部分,一个或多个服务器对将软件发送到请求方的请求作出响应。为软件的交付、销售和/或许可进行的支付可以由软件分发平台的一个或多个服务器和/或经由第三方支付实体来处理。服务器使购买方和/或许可方能够从软件分发平台1205下载计算机可读指令1132。例如,对应于图6至图10的示例计算机可读指令的软件可以被下载到示例处理器平台1100,该处理器平台将执行计算机可读指令1132以实施应用程序权限控制器154。在一些示例中,软件分发平台1205的一个或多个服务器周期性地提供、发送和/或强制更新软件(例如,图11的示例计算机可读指令1132)以确保改进、补丁、更新等被分发并应
用于最终用户设备上的软件。
[0134]
从上文可以理解,已经披露了限制联网环境中的应用程序访问的示例方法、装置和制品。所披露的方法、装置和制品通过移除分配给应用程序的过度(例如,不需要的)权限(例如,可能无需用户干预)来提高使用计算设备的效率。相应地,所披露的方法、装置和制品针对于计算机的运行的一个或多个改进。此外,本文中阐述的方法、装置和制品使得被分配给应用程序的权限能够随着时间的推移而被废弃、撤销、减少等,同时实际使用和/或以预期方式使用的权限得到维持。相应地,减少可用权限的数量可以减少可能会由向应用程序、插件或其他实体/对象提供对信息的访问权的凭证产生的安全漏洞的数量。
[0135]
根据本技术的主题,可以提供一种管理权限的方法。该方法可以包括监视使用凭证对第一组一个或多个应用程序编程接口(api)和第二组一个或多个api进行的访问。该凭证可以与用于访问第一组一个或多个api的第一权限和用于访问第二组一个或多个api的第二权限相关联。该方法可以进一步包括基于使用该凭证对第一组一个或多个api中的一个或多个api进行的访问来确定要暂停第一权限。响应于确定要暂停第一权限,可以暂停第一权限同时维持第二权限。
[0136]
在一些实施方式中,确定要暂停第一权限可以包括确定自上次使用该凭证访问第一组一个或多个api以来的时间量。
[0137]
在一些实施方式中,确定要暂停第一权限包括确定该时间量超过阈值。
[0138]
在一些实施方式中,该阈值是基于对第一组一个或多个api的历史访问的模式来确定的。
[0139]
在一些实施方式中,该历史访问的模式对应于访问频率。
[0140]
在一些实施方式中,该阈值是对该历史访问使用机器学习分析以识别该模式来确定的。
[0141]
在一些实施方式中,该阈值是基于使用该凭证进行的与第一权限相关联的访问之间的持续时间的平均值来确定的。
[0142]
在一些实施方式中,该阈值是进一步基于使用该凭证进行的与该权限相关联的访问之间的持续时间的标准偏差来确定的。
[0143]
在一些实施方式中,暂停第一权限包括触发呈现用于暂停第一权限的通知并接收响应于该通知的用户响应。
[0144]
在一些实施方式中,确定要暂停第一权限进一步基于将第一权限分配给该凭证的用户的状态。
[0145]
在一些实施方式中,确定要暂停第一权限进一步基于与第一组一个或多个api相关联的访问模式。
[0146]
在一些实施方式中,该凭证是应用程序编程接口密钥,并且这些访问是从应用程序发送的包括应用程序编程接口密钥的请求。
[0147]
根据本技术的主题,可以提供一种用于管理权限的装置。该装置可以包括访问监视器,用于监视使用凭证对第一组一个或多个应用程序编程接口(api)和第二组一个或多个api进行的访问。该凭证可以与用于访问第一组一个或多个api的第一权限和用于访问第二组一个或多个api的第二权限相关联。该装置可以进一步包括权限控制器,用于基于使用该凭证对第一组一个或多个api中的一个或多个api进行的访问来确定要暂停第一权限。该
权限控制器可以进一步响应于确定要暂停第一权限而暂停第一权限同时维持第二权限。
[0148]
在一些实施方式中,该权限控制器用于确定自上次使用该凭证访问第一组一个或多个api以来的时间量。
[0149]
在一些实施方式中,确定要暂停第一权限包括确定该时间量超过阈值。
[0150]
在一些实施方式中,该阈值是基于对第一组一个或多个api的历史访问的模式来确定的。
[0151]
在一些实施方式中,该历史访问的模式对应于访问频率。
[0152]
在一些实施方式中,暂停第一权限包括触发呈现出用于暂停第一权限的通知。
[0153]
根据本技术的主题,可以提供一种包括指令的非暂态计算机可读存储介质,这些指令在被执行时使机器管理权限。这些指令在被执行时可以使该机器监视使用凭证对第一组一个或多个应用程序编程接口(api)和第二组一个或多个api进行的访问。该凭证可以与用于访问第一组一个或多个api的第一权限和用于访问第二组一个或多个api的第二权限相关联。这些指令在被执行时可以进一步使该机器基于使用该凭证对第一组一个或多个api中的一个或多个api进行的访问来确定要暂停第一权限。这些指令在被执行时可以进一步使该机器响应于确定要暂停第一权限而暂停第一权限同时维持第二权限。
[0154]
在一些实施方式中,确定要暂停第一权限包括确定自上次使用该凭证访问第一组一个或多个api以来的时间量。
[0155]
根据本技术的主题,可以提供一种包括指令的非暂态计算机可读存储介质,这些指令在被执行时使机器执行上述方法的任何操作。
[0156]
根据本技术的主题,可以提供一种用于管理权限的计算机系统。该计算机系统可以包括处理器以及存储指令的计算机可读介质,这些指令当由该处理器执行时使该计算机系统执行上述方法的任何操作。
[0157]
尽管本文披露了某些示例方法、装置和制品,但本专利的覆盖范围不限于此。相反,本专利涵盖了完全落入本专利的权利要求范围内的所有方法、装置和制品。
[0158]
所附权利要求特此通过援引并入本详细说明中,每项权利要求独立作为本披露内容的单独实施例。
[0159]
本教导还可以扩展至以下编号条款中的一个或多个的特征:1. 一种管理权限的方法,该方法包括:监视使用凭证对第一组一个或多个应用程序编程接口(api)和第二组一个或多个api进行的访问,该凭证与用于访问该第一组一个或多个api的第一权限和用于访问该第二组一个或多个api的第二权限相关联;基于使用该凭证对该第一组一个或多个api中的一个或多个api进行的访问来确定要暂停该第一权限;以及响应于该确定要暂停该第一权限而暂停该第一权限同时维持该第二权限。
[0160]
2. 如条款1所述的方法,其中,确定要暂停该第一权限包括确定自上次使用该凭证访问该第一组一个或多个api以来的时间量。
[0161]
3. 如条款2所述的方法,其中,确定要暂停该第一权限包括确定该时间量超过阈值。
[0162]
4. 如条款3所述的方法,其中,该阈值是基于对该第一组一个或多个api的历史访
问的模式来确定的。
[0163]
5. 如条款4所述的方法,其中,该历史访问的模式对应于访问频率。
[0164]
6. 如条款4所述的方法,其中,该阈值是对该历史访问使用机器学习分析以识别该模式来确定的。
[0165]
7. 如条款4所述的方法,其中,该阈值是基于使用该凭证进行的与该第一权限相关联的访问之间的持续时间的平均值来确定的。
[0166]
8. 如条款4所述的方法,其中,该阈值是进一步基于使用该凭证进行的与该权限相关联的访问之间的持续时间的标准偏差来确定的。
[0167]
9. 如条款1所述的方法,其中,暂停该第一权限包括触发呈现用于暂停该第一权限的通知并接收响应于该通知的用户响应。
[0168]
10. 如条款1所述的方法,其中,确定要暂停该第一权限进一步基于将该第一权限分配给该凭证的用户的状态。
[0169]
11. 如条款1所述的方法,其中,确定要暂停该第一权限进一步基于与该第一组一个或多个api相关联的访问模式。
[0170]
12. 如条款1所述的方法,其中,该凭证是应用程序编程接口密钥,并且这些访问是从应用程序发送的包括该应用程序编程接口密钥的请求。
[0171]
13. 一种用于管理权限的装置,该装置包括:访问监视器,该访问监视器用于监视使用凭证对第一组一个或多个应用程序编程接口(api)和第二组一个或多个api进行的访问,该凭证与用于访问该第一组一个或多个api的第一权限和用于访问该第二组一个或多个api的第二权限相关联;权限控制器,该权限控制器用于:基于使用该凭证对该第一组一个或多个api中的一个或多个api进行的访问来确定要暂停该第一权限;以及响应于该确定要暂停该第一权限而暂停该第一权限同时维持该第二权限。
[0172]
14. 如条款13所述的装置,其中,该权限控制器用于确定自上次使用该凭证访问该第一组一个或多个api以来的时间量。
[0173]
15. 如条款14所述的装置,其中,该确定要暂停该第一权限包括确定该时间量超过阈值。
[0174]
16. 如条款15所述的装置,其中,该阈值是基于对该第一组一个或多个api的历史访问的模式来确定的。
[0175]
17. 如条款16所述的装置,其中,该历史访问的模式对应于访问频率。
[0176]
18. 如条款13所述的装置,其中,暂停该第一权限包括触发呈现出用于暂停该第一权限的通知。
[0177]
19. 一种包括指令的非暂态计算机可读存储介质,这些指令在被执行时使机器至少:监视使用凭证对第一组一个或多个应用程序编程接口(api)和第二组一个或多个api进行的访问,该凭证与用于访问该第一组一个或多个api的第一权限和用于访问该第二组一个或多个api的第二权限相关联;基于使用该凭证对该第一组一个或多个api中的一个或多个api进行的访问来确
定要暂停该第一权限;以及响应于该确定要暂停该第一权限而暂停该第一权限同时维持该第二权限。
[0178]
20. 如条款19所述的非暂态计算机可读存储介质,其中,确定要暂停该第一权限包括确定自上次使用该凭证访问该第一组一个或多个api以来的时间量。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1