CN109565517B - 利用外部源的隐私意识的意图解析 - Google Patents

利用外部源的隐私意识的意图解析 Download PDF

Info

Publication number
CN109565517B
CN109565517B CN201780046378.7A CN201780046378A CN109565517B CN 109565517 B CN109565517 B CN 109565517B CN 201780046378 A CN201780046378 A CN 201780046378A CN 109565517 B CN109565517 B CN 109565517B
Authority
CN
China
Prior art keywords
application
content item
hash value
information
value generated
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.)
Active
Application number
CN201780046378.7A
Other languages
English (en)
Other versions
CN109565517A (zh
Inventor
贾尔斯·霍格本
马修·库利克
托德·肯尼迪
黛安娜·哈克伯恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN109565517A publication Critical patent/CN109565517A/zh
Application granted granted Critical
Publication of CN109565517B publication Critical patent/CN109565517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了通过对有关所选择的内容项的信息的受限部分提供安全访问来识别并获得用于与所选择的内容项进行交互的适合的应用的方法。在一个方面,一种方法包括在设备上运行的初始应用中接收来自用户的选择以与所述初始应用所能够访问的内容项进行交互,并且从有关所述内容项的信息的受限部分生成散列值。所述方法进一步包括在所述内容项的散列值与适合的应用的散列值的比较相匹配时请求至少一个适合的应用的副本,并且将有关所述内容项的信息的受限部分提供至所述适合的应用以便由用户进行交互。还提供了系统和机器可读介质。

Description

利用外部源的隐私意识的意图解析
相关申请的交叉引用
本申请作为非临时申请根据35U.S.C.§119要求于2016年07月29日提交的题为“利用外部源的隐私意识的意图解析(Privacy Aware Intent Resolution With ExternalSources)”的美国临时专利申请序列号62/368,977的优先权的权益,所述申请的公开内容出于所有目的而通过引用全文结合于此。
技术领域
本公开总体上涉及访问设备上的数据对象,尤其涉及识别并获得用于访问所选择的数据对象的优选应用。
背景技术
当设备的用户在该设备上运行的初始应用中选择项目查看时,存在该内容项可能更适于在不同于该初始应用的更为适当的应用中查看的可能性,但是该其它应用可能无法在该设备上使用或者并不为用户所知。在这些实例中,通常需要用户例如通过在诸如应用数据库(或“应用商店”)的外部源列表中搜索(许多用于查看内容项的可能应用中的)其它应用来手动识别可能更适合查看该内容项的其它应用。
背景技术部分中所提供的描述并不应当仅因为其在背景技术部分中被提及或者与之相关联就被假设构成现有技术。该背景技术部分可以包括描述该主题技术的一个或多个方面的信息。
发明内容
根据本公开的某些方面,提供了一种用于通过对有关所选择的内容项的信息的受限部分提供安全访问来识别并获得用于与所选择的内容项进行交互的适合的应用的计算机实现的方法。所述方法包括在设备上运行的初始应用中接收来自用户的选择以与所述初始应用所能够访问的内容项进行交互,并且从有关所述内容项的信息的受限部分生成散列值。所述方法还包括将从有关所述内容项的信息的受限部分生成的散列值的一部分与针对应用数据库中可用的至少一个适合的应用所生成的散列值的相对应部分进行比较,并且在从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述至少一个适合的应用所生成的散列值的相对应部分的比较指示匹配时将从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个适合的应用所生成的散列值进行比较。所述方法进一步包括在从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个适合的应用所生成的散列值的比较匹配时请求至少一个适合的应用的副本以便在所述设备上执行。所述方法还包括在所述设备上执行所述至少一个适合的应用,并且将有关所述内容项的信息的受限部分提供至所述至少一个适合的应用以便由用户进行交互。
根据一些实施方式,提供了一种用于从应用数据库识别适当或适合的应用以查看使用第一初始应用所选择的内容项的方法和系统。所述方法可以包括从有关所述内容项的信息的预定受限部分生成散列值,选择所生成的散列值的预定受限部分,并且将所选择的部分与针对应用数据库中一个或多个潜在适当/适合或候选的应用中的每个应用所生成的散列值的相对应预定受限部分进行比较。针对来自所述比较的任何匹配(任何初始匹配潜在的适应/适合的应用),将有关所述内容项的信息的预定受限部分的完全/完整散列值与每个初始匹配的潜在适当/适合的应用的完全/完整散列值进行比较。当有关所述内容项的信息的预定受限部分的完全/完整散列值与初始匹配的潜在适当/适合应用之一的完全/完整散列值相匹配时,该应用可以被选择执行以便查看所述内容项或者与之交互。
根据本公开的某些方面,提供了一种用于通过对有关所选择的内容项的信息的受限部分提供安全访问而识别并获得用于与所选择的内容项进行交互的适合的应用的系统。所述系统包括存储器,其包括内容项和初始应用。所述系统还包括被配置为执行指令的处理器。当被执行时,所述指令使得所述处理器在设备上运行的初始应用中接收来自用户的选择以与所述初始应用所能够访问的内容项进行交互,并且从有关所述内容项的信息的受限部分生成散列值。所述指令还使得所述处理器确定所述设备并不包括适合于与所述内容项交互的本地应用,并且将从有关所述内容项的信息的受限部分生成的散列值的一部分与针对应用数据库中可用的至少一个适合的应用所生成的散列值的相对应部分进行比较。所述指令进一步使得所述处理器在从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述至少一个适合的应用所生成的散列值的相对应部分的比较指示匹配时将从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个适合的应用所生成的散列值进行比较,并且在从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个适合的应用所生成的散列值的比较匹配时请求至少一个适合的应用的副本以便在所述设备上执行。所述指令还使得所述处理器在所述设备上执行所述至少一个适合的应用,并且将有关所述内容项的信息的受限部分提供至所述至少一个适合的应用以便由用户进行交互。
根据本公开的某些方面,提供了一种包括机器可读指令的非瞬态机器可读存储介质,所述机器可读指令用于使得处理器执行用于通过对有关所选择的内容项的信息的受限部分提供安全访问而识别并获得用于与所选择内容项进行交互的适合的应用的方法。所述方法包括在设备上运行的初始应用中接收来自用户的选择以与所述初始应用所能够访问的内容项进行交互,所述内容项包括统一资源定位符(URL),并且从所述URL的主机生成散列值。所述方法还包括确定所述设备并不包括适合于与所述内容项进行交互的本地应用,并且针对所述多个应用中的每个应用,使用识别来自应用数据库中的多个应用中的相对应应用被配置为与之交互的主机的信息来生成相对应散列值,其中所述多个应用包括至少一个适合的应用。所述方法进一步包括将所述散列值的第一预定数量的位与针对所述多个应用的散列值的相对应第一预定数量的位进行比较,并且确定所述散列值的第一预定数量的位与所述多个应用中的至少一些应用的散列值的相对应第一预定数量的位中的至少一些相匹配,所述多个应用中的至少一些应用包括至少一个适合的应用。所述方法还包括将所述内容项的散列值的每个位与针对所述多个应用中的至少一些应用的散列值的每个位进行比较,并且确定所述内容项的散列值的每个位与针对所述多个应用的散列值的每个位的比较之间的匹配被局限于针对所述至少一个适合的应用的散列值的每个位。所述方法进一步包括在所述内容项的散列值的每个位与针对所述至少一个适合的应用的散列值的每个位的比较匹配时请求所述至少一个适合的应用的副本以便在所述设备上执行,在所述设备上执行所述至少一个适合的应用,并且使用安全信道将有关所述内容项的信息的受限部分提供至所述至少一个适合的应用以便由用户进行交互。
根据本公开的某些方面,提供了一种用于通过对有关所选择的内容项的信息的受限部分提供安全访问而识别并获得用于与所选择的内容项进行交互的适合的应用的系统。所述系统包括用于在设备上运行的初始应用中接收来自用户的选择以与所述初始应用所能够访问的内容项进行交互的器件。所述系统还包括以下器件,该器件用于从有关所述内容项的信息的受限部分生成散列值,将从有关所述内容项的信息的受限部分生成的散列值的一部分与针对应用数据库中可用的至少一个适合的应用所生成的散列值的相对应部分进行比较,在从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述至少一个适合的应用所生成的散列值的相对应部分的比较指示匹配时将从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个适合的应用所生成的散列值进行比较,在从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个适合的应用所生成的散列值的比较匹配时请求至少一个适合的应用的副本以便在所述设备上执行,在所述设备上执行所述至少一个适合的应用,并且将有关所述内容项的信息的受限部分提供至所述至少一个适合的应用以便由用户进行交互。
所要理解的是,该主题技术的其它配置将由于以下的详细描述而对于本领域技术人员轻易地变为清楚明白的,其中该主题记住的各种配置通过图示被示出并描述。如将要意识到的,该主题技术支持其它且不同的配置,并且其若干细节能够在各个其它方面进行修改,所有这些都并不背离该主题技术的范围。因此,附图和详细描述本质上要被认为是说明性而非限制性的。
附图说明
被包括以提供进一步理解并且结合在该说明书中并构成其一部分的附图图示了所公开的实施例,并且连同描述一起迎来解释所公开实施例的原则。在附图中:
图1图示了用于通过对有关所选择的内容项的信息的受限部分提供安全访问而识别并获得用于与所选择的内容项进行交互的适合的应用的示例架构。
图2是图示根据本公开某些方面的来自图1中的架构的示例客户端和服务器的框图。
图3图示了用于使用图2的示例客户端通过对有关所选择的内容项的信息的受限部分提供安全访问而识别并获得用于与所选择的内容项进行交互的适合的应用的示例过程。
图4A至图4C是与图3的示例过程相关联的示例图示。
图5是图示可以利用其来实施图2的客户端和服务器的示例计算机系统的框图。
在一种或多种实施方式中,并非可以要求每幅图中所有描绘的组件,并且一种或多种实施方式可以包括图中并未示出的附加组件。组件的部署形式和类型可以有所变化而并不背离该主题公开的范围。在该主题公开的范围内可以利用附加的组件、不同的组件或者较少的组件。
具体实施方式
以下给出的详细描述意在作为对各种实施方式的描述,而并非意在表示可以实践该主题技术的仅有实施方式。本领域技术人员将会意识到,所描述的实施方式可以以各种不同方式有所修改,所有这些都并不背离本公开的范围。因此,附图和描述本质上要被认为是说明性而非限制性的。
总体概述
所公开的系统提供了由所述系统通过将有关内容项的信息的受限部分与应用数据库中的可用应用的信息进行比较以找出最适合于查看所述内容项的应用而识别应用数据库中(例如,服务器上)最为相关的应用来查看内容项。
特别地,在用户在诸如web浏览器的初始应用中选择诸如统一资源定位符(URL)的项目(或“抽象意图”)之后,该初始应用请求在设备上运行的活动管理器来识别在用户的设备上(“执行运行时间绑定”)是否有更加适合的应用(“目标”、“app处置器”或“组件”)可用来查看(或“解析意图”)该内容项。如果在用户的设备上没有更为适合的应用可用,则活动管理器从有关内容项的信息的受限部分(例如,URL的主机的散列)创建散列值(“散列前缀”或“加密散列抽象意图”),并且将该散列值的一部分(例如,前n位)提供至解析器接口。该解析器接口将内容项的散列值的该部分与应用数据库中的可用应用的散列值的相似部分(例如,URL的主机的散列的前n位)基于那些可用应用所能够查看的项目进行比较,并且对于其散列值部分(例如,相对应散列值的前n位)与内容项的散列值的该部分相匹配的可用应用,对应于该可用应用的可查看项目的完整散列值(例如,URL的主机的散列的所有位)被解析器接口提供至活动管理器。该解析器接口随后比较内容项的完整散列值(URL的主机的散列的所有位)并且识别哪些可用应用(如果有)具有与该内容项的完整散列值相匹配的相对应完整散列值。当识别出具有与内容项的完整散列值匹配的完整散列值的可用应用时,该解析器接口命令设备上的活动管理器安装该可用应用,并且在该可用应用的安装和执行之后通过安全信道将内容项提供至该可用应用以便由用户在该可用应用中查看。该解析器接口可以进一步提供识别利用其启动该可用应用的参数的相关信息,作为示例,诸如其中内容项可以指示应当针对其启动可用应用的某个模块或组件的某个意图过滤器。
所公开的系统解决了与计算机技术有关并且在计算机网络领域中出现的技术问题,也就是以下这样的技术问题:响应于设备上的所选择的数据对象的分析而识别被配置为访问该数据对象的优选软件应用,并且例如通过网络获得该优选应用的副本以便访问所选择的数据对象。所公开的系统解决该技术问题是通过分析可能软件应用的数据库以识别出最适于访问所选择的数据对象的软件应用,并且在该软件应用无法在设备上使用的情况下通过网络获取其副本。所公开的系统提供了一种必然根植于计算机技术中的解决方案,因为它涉及到所选择的数据对象的分析以便识别并获得用于访问该数据对象的适当软件应用。例如,通过在内容项被选择时允许单一的外部提供方校验来确定是否要加载新的应用,所公开的系统促成了允许诸如来自万维网的URL之类的内容项变为在设备上运行的操作系统的更具整体性的部分。通过提供被局限于内容项的散列值的一部分的访问以便识别适合的应用,所公开的解决方案减少了例如解析器接口能够关于设备上在初始应用内的用户活动所访问的信息的数量(例如,所请求的URL)。作为结果,因为解析器接口可用的信息较少,用户的隐私在解析器接口受到危害的情况下的风险有所减少,并且从部分散列重新构建用户的活动变得更加困难。
虽然本文所提供的某些示例可以描述被存储在存储器中的用户的信息(例如,所要访问的数据对象的选择),但是每个用户可以向所要存储的这样的用户信息授予明确许可。该明确许可以使用集成到所公开系统中的隐私控制来授予。如果所请求的用户信息包括人口统计信息,则该人口统计信息以人群为基础进行汇总而并不是按照个体用户来汇总。每个用户可以被提供以这样的用户信息将在这样的明确同意的情况下被存储的通知,并且每个用户可以在任意时间终止用户信息被存储,并且可以删除已存储的用户信息。已存储的用户信息可以被加密以保护用户安全。
用户可以从存储器删除用户信息。此外,用户可以调节适宜的隐私设置以有选择地限制在存储器中存储的用户信息的类型,或者选择用户信息被存储于其中的存储器(例如,不同于在服务器远程存储而在用户的设备上本地存储)。在许多示例中,除非用户以其它方式特别提供或指示,否则用户信息并不包括和/或分享用户的具体身份(例如,用户的名称)。某些数据在其被存储或使用之前以一种或多种方式被加以处置,而使得个人可识别信息得以被去除。例如,用户的身份可以被处置而使得无法针对用户确定个人可识别信息,或者可以在获得位置信息的情况下对用户的地理位置进行一般化处理(诸如处理为城市、ZIP码或州的级别),而使得无法确定用户的特定位置。
示例系统架构
图1图示了用于通过对有关所选择的内容项的信息的受限部分提供安全访问而识别并获得用于与所选择的内容项进行交互的适合的应用的示例架构100。架构100包括通过网络150连接的服务器130和客户端110。
客户端110例如可以是台式计算机、移动计算机、平板计算机(例如,包括电子书阅读器)、移动设备(例如,智能电话或个人数字助理)、机顶盒(例如,用于电视)、视频游戏机,或者具有适当处理器、存储器和通信能力以便运行操作系统以及对诸如URL或文档的内容项提供访问以便显示的初始应用的任意其它设备。该初始应用在内容项被选择时查询操作系统以及在操作系统上运行的诸如活动管理器的过程,确定比该初始应用更加适合于与内容项交互的(所要请求的)另一个应用能够在客户端110上使用还是能够通过网络150从服务器130之一得到。如果更适合的应用在客户端110上可用,则活动管理器使得该更适合的应用在客户端110上执行并且加载该内容项。然而,如果适合的应用在客户端110上并不可用而是能够通过网络150从服务器130得到,或者能够通过网络150得到比客户端110上可用的现有应用更适合的应用,则活动管理器使得客户端的操作系统获得服务器130上的更适合的应用的副本,并且利用所加载的内容项执行该更适合的应用。
许多服务器130之一被配置为托管应用数据库,所述应用数据库包括被配置为与各种不同类型的内容项进行交互的应用。该数据库针对该数据库中的每个应用包括有关相对应应用被配置为与之交互的(多种)内容项类型的信息。服务器130上的应用数据库可以由客户端110通过网络150来查询。出于负载平衡的目的,多个服务器130可以单独地或部分地托管应用数据库。
服务器130可以是具有适当处理器、存储器和通信能力以便托管数据编码器服务的任意设备。网络150例如可以包括任意的一个或多个个人域网络(PAN)、局域网(LAN)、园区网络(CAN)、城域网(MAN)、广域网(WAN)、宽带网络(BBN)、互联网等。另外,网络150可以包括但并不局限于任意一种或多种以下网络拓扑,包括总线网络、星形网络、环形网络、网状网络、星形-总线网络、树形或层级网络等。
识别并获得用于与所选择的内容项交互的适合的应用的示例系统
图2是图示根据本公开某些方面的图1的架构100中的示例服务器130和客户端110的框图。
客户端110和服务器130经由各自的通信模块218和238而通过网络150进行连接。通信模块218和238被配置为与网络150对接以发送和接收信息,诸如去往网络上的其它设备的数据、请求、响应和命令。通信模块218和238例如可以是调制解调器或以太网卡。客户端110还包括诸如触摸屏、键盘或鼠标的输入设备216以及诸如显示器的输出设备214。
客户端110进一步包括处理器212、通信模块218和存储器220。存储器220包括初始应用222、内容项224、活动管理器226、解析器接口228、安装器接口230和适合的应用240。适合的应用240之所以以虚线图示是因为它可选地在被确定适于访问客户端110的存储器220中的内容项224之后从服务器130上的应用数据库234被下载到客户端110的存储器220。
内容项224例如可以是URL、网页,诸如文本文档的文档、电子表格、媒体文件(例如,音频、图像、视频,或者它们的任意组合),或者是被配置为由客户端110的用户与之交互的任意其它数据对象。在某些方面,内容项可以是更为一般的意图,诸如所要执行的动作,例如拍摄照片或收听音频文件。初始应用222可以是被配置为对内容项224提供访问的任意应用,诸如web浏览器、移动应用、文档编辑器或图像查看器。在某些方面,初始应用222被局限于对内容项提供访问,诸如识别内容项224的位置,但是并不允许由用户查看内容项224或者对其进行修改。
活动管理器226是在客户端110的操作系统中运行的过程(例如,软件扩展或工具),其被配置为从客户端110上的应用接收有关针对客户端110的存储器220中的诸如内容项224的数据对象的访问的请求并且对其作出响应。如下文进一步详细描述的,活动管理器226在某些方面中被配置为读取配置数值以确定哪些应用或服务对解析器接口228和安装器接口230作出响应。活动管理器226还被配置为确定是否使能或无效解析器接口228和安装器接口230,并且为客户端110的用户提供了管理解析器接口228和安装器接口230的能力。活动管理器226进一步被配置为确定应当在何时以及针对哪些类型的所选择的内容项(例如,抽象意图)咨询解析器接口228,并且随后在适当时调用解析器接口228。在某些方面,某些类型的内容项可以从解析器接口228的评估中被排除,诸如某些域或者某些类型的文件。
在某些方面,活动管理器226还被配置为生成被提供至解析器接口228的有关内容项224的信息的受限部分(或“线索”),并且确定如何生成有关内容项224的信息的该受限部分。例如以及如将在下文进一步详细描述的,如果内容项是URL(例如,“https://en.websiteencyclopedia.com/diabetes”),则该信息可以通过丢弃方案(例如,“https”)和路径(例如,“/diabetes”)而仅保留主机(例如,“en.websiteencyclopedia.com”)来生成。活动管理器226可以对“en.websiteencyclopedia.com”使用诸如SHA-256散列算法的散列算法,并且选择前23位作为提供至解析器接口228的信息。因此,假设互联网上的O阶(1B)URL主机,23位将允许大约100个其它主机散列至该信息的此数值。
在某些方面,活动管理器226还进一步被配置为响应于针对内容项224所提供的信息从解析器接口228接收应用的列表(或“候选意图处置器”),并且在存在的情况下为内容项224选择最佳匹配的应用。假设存在最佳匹配,活动管理器226随后负责针对内容项224是否能够由匹配应用所访问生成成功和失败情形(“未决意图”)并且将它们连同匹配应用的标识一起送至安装器接口230以便进行安装。
如同活动管理器226,解析器接口228是在客户端110的操作系统中运行的过程。如下文进一步详细描述的,解析器接口228被配置为从活动管理器接收与用户已经选择与之交互的内容项224相关的信息(例如,所要解析的抽象意图),并且解析器接口228向解析器接口228返回用于与该项目交互的潜在应用的列表(例如,候选“app处置器”的集合)。有关内容项224的信息的受限部分可以是加密散列的抽象意图的一部分。在某些方面,解析器接口228并不接收活动管理器226尝试处置的内容项224的完全抽象意图(例如,整个URL)。用于与该项目交互的潜在应用的列表可以以客户端110的操作系统内部使用的数据结构格式来提供,诸如意图过滤器。解析器接口228意在以低延时(<200ms)作出响应,并且用于在使用服务器130基础设施的情况下实施高速缓存策略。解析器接口228可以被实施为处于客户端110上的应用或服务。
安装器接口230是在客户端110的操作系统中运行的又另一个过程。如下文进一步详细描述的,安装器接口230被配置为接收来自活动管理器226的请求以安装特定应用(例如,适合的应用240),并且在某些方面中包括对应于成功情形和失败情形的两种数据结构(例如,成功意图和失败意图)。例如,如果安装器接口230在执行安装器接口230所请求的适合的应用240的安装时成功,安装器接口230则启动成功意图(例如,在启动适合的应用240时)。如果安装器接口230无法执行活动管理器226所请求的适合的应用240的安装,安装器接口230则可以启动失败意图,诸如用于与内容项224交互的不同的或默认的应用。在某些方面,安装器接口230并不从活动管理器226接收完全抽象意图(例如,内容项224的完整信息,诸如副本);安装器接口230接收不可检查的数据结构以便确定成功或失败意图。
在某些方面,解析器接口228和安装器接口230是能够可选地被要求作为系统特许应用的系统组件。此外,在某些方面,活动管理器226、解析器接口228和安装器接口230中的每个可以被用户无效,从而内容项224的访问在所公开系统的配置之前将根据客户端110上可用的默认行为而进行。此外,在某些方面,解析器接口228和安装器接口230可以是单个接口,并且另外在某些方面,活动管理器226、解析器接口228和安装器接口230可以是单个接口。在某些方面,代替使用加密散列函数来针对内容项224以及来自应用数据库234的应用生成可比较的数值,可以使用有关内容项224的其它线索,诸如但并不局限于校验和、校验位、指纹、随机函数、纠错码和密码。
客户端110的处理器212被配置为执行指令,诸如被物理编码到处理器212中的指令,从存储器220中的软件接收的指令,或者二者的组合。例如,客户端110的处理器212执行指令以通过对有关内容项224的信息的受限部分提供安全访问来识别并获得用于与内容项224交互的适合的应用(例如,适合的应用240)。
特别地,客户端110的处理器212执行使得处理器212在初始应用222中(使用输入设备216)接收来自用户的选择以与该初始应用222所能够访问的内容项224进行交互的(例如,来自初始应用222的)指令。例如,用户可以点击、触摸或者以其它方式选择在初始应用222中(使用输出设备214)显示的指向内容项224的链接。交互可以是各种类型,包括但并不局限于打开URL、加载网页、编辑或查看文档,或者扫描条形码。
客户端110的处理器212还执行使得处理器212从有关内容项224的信息的受限部分生成散列值的(例如,来自活动管理器226的)指令。该散列值可以使用各种加密散列函数生成,作为示例,诸如安全散列算法(SHA)256散列函数(“SHA-256”),其利用32位字进行计算。例如,在其中内容项224是URL的某些方面,该散列值从来自该URL的主机生成。
客户端110的处理器212进一步执行使得处理器将从有关内容项224的信息的受限部分所生成的散列值的一部分与针对应用数据库234中可用的至少一个适合的应用240所生成的散列值的相对应部分进行比较的(例如,来自解析器接口228的)指令。客户端110被配置为使用客户端110和服务器130的相应的通信模块218和238通过网络150访问服务器130上的应用数据库234。
在某些方面,针对应用数据库234中可用的适合的应用240所生成的散列值是处理器212针对应用数据库234中的应用所生成的多个散列值之一。特别地,客户端110的处理器212执行(例如,来自解析器接口228的)以下指令:使用识别来自应用数据库234的相对应应用被配置为与之交互的内容的信息而针对应用数据库234中的每个应用(包括适合的应用240)生成相对应散列值。
可替换地,服务器130的处理器236被配置为针对应用数据库234中的应用生成散列值,并且客户端110可以请求所生成的散列值以便执行与从有关内容项234的信息的受限部分所生成的散列值的该部分的比较。
在这些方面,客户端110的处理器212还执行(例如,来自解析器接口228的)以下指令:将内容项224的散列值的该部分与来自应用数据库234的应用的散列值的相对应部分进行比较,并且确定内容项224的散列值的该部分与来自应用数据库234的至少一些应用的散列值的相对应部分中至少一些(包括适合的应用240的散列值的部分)相匹配。例如,内容项224的URL的域的散列值的前23位与被配置为由应用数据库234中的每个应用所处置的URL的域的每个散列值的前23位进行比较,并且应用数据库234中具有与内容项的散列的该23位相匹配的23位散列值的那些应用被识别为可能能够访问内容项224的应用。内容项224的整个散列值(例如,散列的全部位)随后(例如,由客户端110的处理器212和在客户端110上)与来自应用数据库243中之前被确定为具有散列值的匹配部分的应用子集的整个散列值进行比较,并且内容项224的散列值与适合的应用240的散列值的比较之间的匹配被识别。特别地,客户端110的处理器212进一步执行(例如,来自解析器接口228的)以下指令:在内容项224的散列值的该部分与适合的应用240的散列值的相对应部分的比较指示匹配时将内容项224的散列值(即,完整散列值)与适合的应用240的散列值(即,完整散列值)进行比较。例如,如果内容项224的散列值的前23位与适合的应用240的散列值的前23位相匹配,则内容项224的散列值的全部32位与适合的应用240的散列值的全部32位进行比较。在某些方面,内容项224的散列值(即,完整散列值)与适合的应用240的散列值(即,完整散列值)的比较在客户端110上执行,以便限制网络150或服务器130对所比较信息的访问。如果应用数据库234中的应用的散列值的一部分(例如,前23位)并不与内容项224的散列值的该部分相匹配,则应用数据库234中的应用被识别为用于访问内容项224的非适合的候选。
在某些方面,处理器212执行使得处理器212在将散列值的该部分与针对应用数据库234中可用的适合的应用240所生成的至少一个散列值的相对应部分进行比较之前确定客户端110并不包括用于与内容项224交互的(例如,在存储器220中的)本地应用的(例如,来自活动管理器226的)指令。针对适合的应用240所生成的散列值的该部分是通过选择针对适合的应用240所生成的完整散列值的前预定数量个位(例如,SHA-256散列的前23位)而生成的。
客户端110的处理器212又进一步执行(例如,来自解析器接口228的)以下指令:在内容项224的散列值(即,完整散列值)与适合的应用240的散列值(即,完整散列值)的比较相匹配时(例如,由安装器接口230从应用数据库234)请求适合的应用240的副本以便在客户端110上执行。在某些方面,请求适合的应用的副本以便在客户端110上执行包括将适合的应用240的副本下载到客户端110的存储器220(如图2所示),而在某些方面,请求适合的应用的副本以便在客户端110上执行包括请求被流传输至客户端110的适合的应用240的执行(未示出)。
作为结果,安装器接口230和应用数据库234接收有关内容项224的受限信息以便识别并提供用于与内容项224进行交互的在客户端110上执行的适合的应用240的副本。例如,对于要由百科全书应用所查看的有关糖尿病的百科全书文章的URL,安装器接口230将知晓它正在安装百科全书应用以查看百科全书文章,但是安装器接口230将不会知晓该文章将是针对糖尿病。
客户端110的处理器212又进一步执行(例如,来自活动管理器226的)以下指令:(例如,通过在本地运行适合的应用240或者使得其从服务器流传输)在客户端110上执行适合的应用240,并且将有关内容项224的信息的受限部分提供至适合的应用以便由用户进行交互。虽然通过这样的提供,适合的应用240具有了对有关内容项224的信息的完整访问,但是能够通过使得使用安全信道将有关内容项224的信息的受限部分提供至适合的应用240而确保该访问的安全。例如,当内容项224是URL时,活动管理器226并不将完全的URL泄漏给解析器接口228或安装器接口230,而是在适合的应用240在客户端110上运行之后将完全的URL经由安全信道提供给适合的应用240。
在某些方面,在内容项224的散列值的该部分与适合的应用240的散列值的相对应部分的比较并未指示匹配时,或者在内容项224的散列值(即,完整散列值)与适合的应用240的散列值(即,完整散列值)的比较并未指示匹配时,客户端110的处理器212则被配置为执行(例如,来自活动管理器226的)以下指令:作为失败情形而(例如,使用安装器接口230)从应用数据库234获得并执行默认应用或者执行客户端110的存储器220中的默认应用来访问内容项224。该默认应用例如可以是内容项224在其中最初被提供以供客户端110的用户选择的初始应用222。
因此,在某些方面,当内容项224在初始应用222中被用户所选择时,活动管理器226在用于在客户端110上访问内容项224的优选应用存在于存储器中的情况下命令客户端的处理器212首先加载这样的优选应用。如果这样的优选应用并不存在于存储器中,则如上文所描述的,活动管理器从应用数据库234获得适合的经验证应用以在客户端110上访问内容项224,并且如果适合的经验证应用并不可用,则可以另外获得适合的未经验证的应用。如果适合的经验证的应用或适合的未经验证的应用都无法被获得或识别,则可以如上文所描述的使用默认应用来访问内容项224。如本文所讨论的,“经验证的”应用包括已经为了检测诸如恶意软件之类的有害软件代码而被扫描过的应用。
在某些方面,为了减少内容项224的选择与将来自应用数据库234的适合的应用240识别为适于访问内容项224之间的任何延时,包括确定适于与内容项224交互的另一个应用(即,适合的应用240)在应用数据库234中可用所需的网络行程,在所公开系统的某些方面中实施高速缓存策略而将网络往返行程最小化为花费少于例如200ms,这可以是在客户端110的操作系统中配置的时间限制。在这些方面,各种数据都可以在被生成或接收之后被高速缓存在客户端的存储器220中,例如包括应用数据库234中的应用的标识以及那些应用能够与之交互的项目的类型,与应用数据库234中的每个应用相关联的散列值。该信息可以以经调度、周期性的基础被高速缓存,或者在每当该信息响应于内容项在客户端110上的选择而从应用数据库234被请求某个次数之后被高速缓存。
如上文所讨论的,所公开的系统向客户端操作系统的意图解析工具即活动管理器226中提供了两个接口,即解析器接口228和安装器接口230。在活动管理器226针对内容项224进行意图解析的期间向这两个接口228和230查询活动管理器226尚且未知的候选app处置器。解析器接口228在并不知晓内容项224的真实的原始抽象意图的情况下提供app处置器的候选集合。安装器接口230同样在并不知晓内容项224的原始抽象意图的情况下执行活动管理器226所请求的适合的应用240的安装并且沿成功意图或失败意图推进。以这种方式,操作系统通过活动管理器226而使得能够在不同应用中的代码之间进行后期的运行时间绑定,而并不向外部源揭示抽象意图并且不要求在操作系统的视界之内存在候选匹配,而且并不出现在客户端110上。
本文所描述的技术可以被实施为由(多个)物理计算设备执行的(多种)方法;被实施为存储指令的一个或多个非瞬态计算机可读存储介质,所述指令在被(多个)计算设备执行时使得所述(多种)方法得以执行;或者被实施为利用使得所述(多种)方法得以执行的硬件和软件的组合所特别配置的(多个)物理计算设备。
图3图示了用于使用图2的示例客户端110来通过对有关所选择的内容项的信息的受限部分提供安全访问而识别并获得与所选择的内容项进行交互的适合的应用的示例过程300。虽然图3是参考图2进行描述,但是应当注意的是,图3的过程步骤可以由其它系统来执行。
在用户在客户端110上加载初始应用222并且在初始应用222中查看内容项224时,过程300通过从开始步骤301进行而作为开始,并且在初始应用222接收到来自用户的选择以与该初始应用所能够访问的内容项224进行交互时进行至步骤302。接下来,在步骤303,初始应用222将有关内容项224的信息的受限部分提供至活动管理器226,并且活动管理器226在步骤304从有关内容项224的信息的受限部分生成散列值。在步骤305,活动管理器226将内容项224的散列值的一部分提供至解析器接口228。
转向解析器接口228,在步骤306,解析器接口228将内容项224的散列值的该部分与针对应用数据库234中可用的应用(即,适合的应用240)所生成的至少一个散列值的相对应部分进行比较,并且在步骤307,如果步骤306的比较指示内容项224的散列值的该部分与针对应用数据库234中可用的应用(即,适合的应用240)所生成的至少一个散列值的相对应部分相匹配,则过程300进行至步骤308。否则,过程300进行至步骤314,其中初始应用222作为失败意图而在初始应用222中针对内容项224提供访问,此后过程300在步骤315结束。在某些未图示的方面,在步骤314,内容项224可以在客户端110中被配置用于访问内容项224的不同应用中被访问。
返回解析器接口228处的步骤308,当内容项224的散列值的该部分与针对应用数据库234中可用的应用(即,适合的应用240)所生成的至少一个散列值的相对应部分相匹配时,解析器接口228将针对适合的应用240所生成的散列值(即,整个散列值)提供至活动管理器226。在步骤309,活动管理器226将内容项224的散列值(即,整个散列值)与适合的应用240的散列值(即,整个散列值)进行比较。然而,如果内容项224的散列值的该部分并不与针对应用数据库234中的应用所生成的散列值的相对应部分相匹配,则应用数据库234中的该应用被识别为用于访问内容项224的非适合候选。在步骤310,如果内容项224的散列值与适合的应用240的散列值的比较相匹配,则过程300进行至步骤311,否则过程300进行至以上所讨论的步骤314。
在步骤311,当内容项224的散列值与适合的应用240的散列值相匹配时,活动管理器226请求适合的应用240的副本以便在客户端110上执行,并且在步骤312,适合的应用240在客户端110上执行。在步骤313,活动管理器226将有关内容项224的信息的受限部分提供至适合的应用240以便由用户进行交互,并且过程300随后在步骤315结束。
图3给出了用于使用图2的示例客户端110来通过对有关所选择的内容项的信息的受限部分提供安全访问而识别并获得用于与所选择的内容项进行交互的适合的应用的示例过程300。现在将使用图3的示例过程300,作为智能电话的客户端110,作为web浏览器的初始应用222,作为旅行网站TripTrip上指向城市Anytown的网页的链接的内容项,以及作为可从旅行网站TripTrip获取以便在智能电话客户端110上安装并执行的TripTrip应用的适合的应用来描述示例。
如图4B的示例图示400中所提供的,当用户在智能电话客户端110上加载web浏览器应用222并且接收到包括旅行网站上指向城市Anytown的网页的链接项224的URL的搜索结果时,过程300通过从开始步骤301进行而作为开始,并且在用户在web浏览器应用222中选择了链接项224时进行至步骤302。接下来,在步骤303,web浏览器应用222将有关链接项224的信息提供至活动管理器226,并且活动管理器226在步骤304从链接项224的URL的域“www.triptrip.com”生成SHA-256散列值。在步骤305,活动管理器226将链接项224的域的SHA-256散列值中的前23位提供至解析器接口228。
转向解析器接口228,在步骤306,解析器接口228将链接项224的域的SHA-256散列值中的前23位与应用数据库234中可用的每个应用(包括TripTrip应用240)的web域的SHA-256散列值中的相对应前23位进行比较,列出相对应应用适合于访问。在步骤307,步骤306的比较指示链接项224的域的SHA-256散列值的该部分与针对应用数据库234中可用的TripTrip应用240所生成的SHA-256散列值的相对应部分相匹配,并且过程300进行至解析器接口228处的步骤308。
在步骤308,解析器接口228将针对TripTrip应用240生成的整个散列值(即所有的位)提供至活动管理器226。在步骤309,活动管理器226将链接项224的(例如,针对域的)散列值的所有的位与能够由TripTrip应用240处置的域的散列值的所有的位进行比较。在步骤310,链接项224的域的SHA-256散列值的所有的位与由TripTrip应用240处置的域的SHA-256散列值的所有的位的比较相匹配,并且过程300进行至步骤311。
在步骤311,活动管理器226请求TripTrip应用240的副本以便在客户端110上执行,安装器接口230从应用数据库234请求并且安装该TripTrip应用240的副本,并且在步骤312,TripTrip应用240在智能电话客户端110上执行。在步骤313,活动管理器226将链接项224的完整URL提供至TripTrip应用240以便由用户进行交互,并且适当内容在TripTrip应用240中被加载,如图4B的示例图示410中所提供的。然而,如果过程300已经从步骤307或步骤310进行至步骤314,则链接项224将被提供以便在web浏览器应用222中显示,如图4C的示例图示420中所提供的。过程300在步骤315结束。
硬件概述
图5是图示图2的客户端110或服务器130能够利用其而得以实施的示例计算机系统500的框图。在某些方面,计算机系统500可以使用硬件或者软件和硬件的组合在专用服务器中实施,或者被集成到另一个实体之中,或者跨多个实体进行分布。
计算机系统500(例如,计算设备110和服务器130)包括总线508或者用于传输信息的其它通信机制,以及与总线508进行耦合以便处理信息的处理器502(例如,处理器212和236)。根据一个方面,计算机系统500被实施为一个或多个专用计算设备。专用计算设备可以被硬线连接以便执行所公开的技术,或者可以包括数字电子设备,诸如被永久地编程以实行技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者可以包括被编程为执行与固件、存储器、其它存储或者其组合中的程序指令相关的技术的一个或多个通用硬件处理器。这样的专用计算设备还可以将定制的硬线逻辑、ASIC或FPGA与定制编程相结合以实现该技术。该专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、网络设备,或者整合了硬线和/或程序逻辑以实施该技术的任意其它设备。作为示例,计算机系统500可以利用一个或多个处理器502来实施。处理器502可以是通用微处理器、微控制器、数字信号处理器(DSP)、ASIC、FPGA、可编程逻辑设备(PLD)、控制器、状态机、门逻辑、分立硬件组件,或者能够执行计算或其它信息操控的任意其它适当实体。
除硬件之外,计算机系统500可以包括为所讨论的计算机程序创建执行环境的代码,例如构成存储在所包括的存储器504(例如,存储器220和232)中的处理器固件、协议栈、数据库管理系统、操作系统或者它们中一个或多个的组合的代码,上述存储器504诸如随机访问存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除PROM(EPROM)、寄存器、硬盘、可移除盘、CD-ROM、DVD,或者任意其它适当存储设备,它们耦合至总线508以便存储要由处理器502所执行的信息和指令。处理器502和存储器504可以被补充以专用逻辑电路或者结合于其中。扩展存储器也可以被提供并且通过输入/输出模块510连接至计算机系统500,所述输入/输出模块510例如可以包括SIMM(单列直插式存储器模块)卡接口。这样的扩展存储器可以为计算机系统500提供额外的存储空间,或者也可以为计算机系统500存储应用或其它信息。特别地,扩展存储器可以包括用于实施或补充上文所描述的过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器可以被提供为计算机系统500的安全模块,并且可以利用允许计算机系统500的安全使用的指令进行编程。此外,可以连同附加信息一起经由SIMM卡提供安全应用,诸如以不可攻击的方式将识别信息置于SIMM卡上。
指令可以存储在存储器504中并且在一个或多个计算机程序产品中实施,上述计算机程序产品即在计算机可读介质上编码以便由计算机系统500所执行或者控制其操作的计算机程序指令的一个或多个模块,并且根据本领域技术人员所公知的任意方法,其包括但并不局限于计算机语言,诸如面向数据的语言(例如,SQL、dBase)、系统语言(例如,C、Objective-C、C++、汇编)、架构语言(例如,Java、.NET)和应用语言(例如,PHP、Ruby、Perl、Python)。指令还可以以诸如阵列语言、面向方面的语言、汇编语言、编辑语言、命令行界面语言、编译语言、并行编程语言、波形括号语言、数据流语言、数据构造语言、声明语言、深奥编程语言、扩展语言、第四代语言、功能语言、交互模式语言、解释语言、迭代语言、基于列表的语言、小型语言、基于逻辑的语言、机器语言、宏语言、元程序设计语言、多范例语言、数字分析、并非基于英语的语言、面向对象的基于类的语言、面向对象的基于原型语言、越位规则语言、过程语言、反射语言、基于规则的语言、脚本语言、基于栈的语言、同步语言、语义处理语言、虚拟语言、wirth语言、嵌入式语言和基于XML的语言。存储器504也可以被用于在要被处理器502所执行的指令的执行期间存储临时变量或其它中间信息。
如本文所讨论的计算机程序并不一定对应于文件系统中的文件。程序能够被存储在保存有其它程序或数据(例如,标记语言文档中所存储的一个或多个脚本)文件的一部分中,存储在专用于所讨论程序的单个文件中,或者存储在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一台计算机或多台计算机上执行,所述多台计算机位于一个地点或者跨多个地点分布并且通过通信网络进行互连。该说明书中所描述的处理和逻辑流程能够由一个或多个可编程处理器所执行,所述可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出而执行功能。
计算机系统500进一步包括耦合至总线508以用于存储信息和指令的诸如磁盘或光盘的数据存储设备506。计算机系统500可以经由输入/输出模块510耦合至各种设备。输入/输出模块510可以是任意的输入/输出模块。示例的输入/输出模块510包括诸如USB端口的数据端口。此外,可以提供与处理器502通信的输入/输出模块510,从而使得计算机系统500能够与其它设备进行近场通信。输入/输出模块510例如可以在一些实施方式中提供有线通信,或者在其它实施方式中提供无线通信,并且可以使用多个接口。输入/输出模块510被配置为连接至通信模块512。示例的通信模块512(例如,通信模块218和238)包括网络接口卡,诸如以太网卡和调制解调器。
该系统的组件能够通过例如通信网络之类的任意形式或介质的数字数据通信进行互连。通信网络(例如,网络150)可以例如包括PAN、LAN、CAN、MAN、WAN、BBN、互联网等之中的任意一个或多个。另外,通信网络例如可以包括但并不局限于任意的一种或多种以下网络拓扑,包括总线网络、星形网络、环形网络、网状网络、星形-总线网络、树形或层级网络等。
例如,在某些方面,通信模块512可以提供耦合至网络链路的双向数据通信,所述网络链路连接至本地网络。也可以实施无线链路和无线通信。无线通信可以在各种模式或协议下提供,诸如GSM(全球移动通信)、短消息服务(SMS)、增强消息服务(EMS)或多媒体消息服务(MMS)消息收发、CDMA(码分多址)、TDMA(时分多址)、个人数字蜂窝(PDC)、宽带CDMA、通用分组无线业务(GPRS)或LTE(长期演进),等等。这样的通信例如可以通过射频收发器来进行。此外,短距离通信诸如可以使用蓝牙、Wi-Fi或者其它这样的收发器来进行。
在任意这样的实施方式中,通信模块512发送和接收承载表示各种类型的信息的数字数据流的电信号、电磁信号或光学信号。网络链路通常通过一个或多个网络提供到其它数据设备的数据通信。例如,通信模块512的网络链路可以通过本地网络提供到主机计算机或者到互联网服务提供商(ISP)所运营的数据设备的连接。该ISP进而通过目前一般称作互联网的世界范围的分组数据通信网络提供数据通信服务。该本地网络和互联网都使用承载数字数据流的电信号、电磁信号或光学信号。承载往来于计算机系统500的数字数据的通过各种网络的信号以及在网络链路上且通过通信模块512的信号是传输介质的示例形式。
计算机系统500可以通过(多个)网络、网络链路和通信模块512发送消息以及接收包括程序代码的数据。在互联网的示例中,服务器可能通过互联网、ISP、本地网络和通信模块512传送用于应用程序的所请求代码。所接收的代码可以在其接收时被处理器502所执行,和/或被存储在数据存储506中以便后续执行。
在某些方面,输入/输出模块510被配置为连接至诸如输入设备514(例如,输入设备216)和/或输出设备516(例如,输出设备214)的多个设备。示例的输入设备514包括键盘以及诸如鼠标或轨迹球的指示设备,用户能够通过其向计算机系统500提供输入。也能够使用其它类型的输入设备514来提供与用户的交互,诸如触觉输入设备、视觉输入设备、音频输入设备或者脑力计算机接口设备。例如,提供给用户的反馈可以是任意形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入能够以任意形式被接收,包括声音、语音、触觉或脑电波输入。示例的输出设备516包括用于向用户显示信息的显示设备,诸如LED(发光二极管)、CRT(阴极射线管)、LCD(液晶显示器)屏幕、TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器。输出设备516可以包括用于驱动输出设备516以便向用户呈现图形和其它信息的适当电路。
根据本公开的一个方面,客户端110和服务器130可以响应于处理器502执行存储器504中所包含的一个或多个指令的一个或多个序列而使用计算机系统500来实施。这样的指令可以从诸如数据存储设备506的另一个机器可读介质被读入存储器504。执行主存储器504中所包含的指令序列使得处理器502执行这里所描述的处理步骤。多处理部署形式中的一个或多个处理器也可以被用来执行存储器504中所包含的指令序列。在可替换的方面,可以替代软件指令或者与之相结合地使用硬线电路来实施本公开的各个方面。因此,本公开的多个方面并不局限于硬件电路和软件的任何具体组合。
该说明书中所描述的主题的各个方面能够在计算系统中实施,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有用户能够通过其与该说明书中所描述主题的实施方式进行交互的图形用户界面或Web浏览器的客户端计算机的前端组件,或者一个或多个这样的后端组件、中间件组件或前端组件的任意组合。
计算系统500可以包括客户端和服务器。客户端和服务器通常互相远离并且典型地通过通信网络进行交互。客户端和服务器的关系源自于在相应计算机上运行并且互相具有计算-服务器关系的计算机程序。计算机系统500例如可以是台式计算机、膝上计算机或平板计算机,但是并不局限于此。计算机系统500还可以嵌入在另一个设备中,后者例如移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器、视频游戏机和/或电视机顶盒,但是并不局限于此。
如本文所使用的术语“机器可读存储介质”或“计算机可读介质”是指参与向处理器502提供指令以供执行的任意一种或多种介质。如本文所使用的术语“存储介质”是指存储使得机器以具体方式进行操作的数据和/或指令的任意非瞬态介质。这样的介质可以采用许多形式,包括但并不局限于非易失性介质、易失性介质和传输介质。非易失性介质例如包括光盘、磁盘或闪存,诸如数据存储设备506。易失性介质包括动态存储器,诸如存储器504。传输介质包括同轴线缆、铜线和光纤,包括含总线508在内的线路。机器可读介质的常见形式例如包括软盘、软质盘、硬盘、磁带、任意其它磁性介质、CD-ROM、DVD、任意其它光学介质、打孔卡、纸带、任意其它具有孔洞图案的物理介质、RAM、PROM、EPROM、FLASH EPROM、任意其它存储器芯片或卡盒,或者计算机能够从其进行读取的任意其它介质。机器可读存储介质可以是机器可读存储设备、机器可读存储衬底、存储器设备、影响机器可读传播信号的物质组合,或者它们中一个或多个的组合。
如在本申请的该说明书中使用的,术语“计算机可读存储介质”和“计算机可读介质”被完全限制为以能够由计算机读取的形式存储信息的有形的物理物体。这些术语排除了任何无线信号、有线下载信号以及任何其它瞬时信号。存储介质不同于传输介质但是可以与之结合使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴线缆、铜线和光纤,包括含总线508在内的线路。传输介质还可以采取诸如在无线电波和红外数据通信期间所生成的那些声或光波的形式。此外,如在本申请的该说明书中使用的,术语“计算机”、“服务器”、“处理器”和“存储器”全部是指电子或其它技术设备。这些术语排除了人或人群。出于该说明书的目的,术语显示器或显示意味着在电子设备上进行显示。
在一个方面,方法可以是操作、指令或函数,反之亦然。在一个方面,条款或权利要求可以被修改以包括在任一项或多项条款中引用的词语(例如,指令、操作、函数或组件)、一个或多个词语、一个或多个语句、一个或多个短语、一个或多个段落和/或一项或多项权利要求。
为了说明硬件和软件的可互换能力,诸如各种说明性分块、模块、组件、方法、操作、指令和算法之类的事项已经总体上关于它们的功能进行了描述。这样的功能是以硬件、软件还是硬件和软件的组合来实施取决于施加于整体系统上的特定应用和设计约束。本领域技术人员可以针对每种特定应用以有所变化的方式来实施所描述的功能。
如本文所使用的,一系列事项之前的短语“至少一个”以及术语“和”或者“或”用于对任意事项进行分隔,将列表作为整体进行修改,而不是修改列表中的每个成员(即,每个事项)。短语“至少一个”并不要求选择每个所列出事项中的至少一个;相反,该短语允许包括任意一个或多个事项中的至少一个,和/或任意事项组合中的至少一个,和/或每个事项中的至少一个的含义。作为示例,短语“A、B和C中的至少一个”或者“A、B或C中的至少一个”均是指仅A、仅B或者仅C;A、B和C的任意组合;和/或A、B和C中的每个中的至少一个。
就术语“包括”、“具有”等在描述或权利要求中所使用的范围而言,这样的术语意在以术语“包含”当其在权利要求中被用作过度词语进行解释时类似于术语“包含”的方式而是包括性的。诸如一个方面、该方面、另一个方面、一些方面、一个或多个方面、一种实施方式、该实施方式、另一种实施方式、一些实施方式、一种或多种实施方式、一个实施例、该实施例、另一个实施例、一些实施例、一个或多个实施例、一种配置、该配置、另一种配置、一些配置、一种或多种配置、该主题技术、公开、本公开、它们的其它变化形式等是为了方便,而并非隐含涉及这样的(多个)方面的公开对于该主题技术是必要的,或者这样的公开应用于该主题技术的所有配置。涉及这样的(多个)方面的公开可以应用于所有配置或者一种或多种配置。涉及这样的(多个)方面的公开可以提供一个或多个示例。诸如方面或一些方面的短语可以是指一个或多个方面且反之亦然,并且这类似地应用于其它上述方面。
除非特别指出,否则其中以单数形式对要素的引用并非意在意味着“一个且仅一个”而是表示“一个或多个”。术语“一些”是指一个或多个。带下划线和/或斜体的标题和副标题仅是为了便利而并非对本发明进行限制,而且并非结合对该主题技术的描述的解释而被涉及。诸如第一和第二等的关系术语可以仅被用来在一个实体或动作与另一个实体或动作之间加以区分,而并非必然在这样的实体或动作之间要求或暗示任何实际这样的关系或顺序。贯穿本公开所描述的对于本领域技术人员而言已知或随后变为已知的各个方面的所有结构和功能等同形式被明确通过引用结合于此并且意在被权利要求所包含。此外,无论这里所公开的任何内容是否在权利要求中被明确引用,这样的公开都并非意在专用于公开。除非该要素明确使用短语“用于...的器件”加以引用,或者在方法权利要求的情况下该要素使用短语“用于...的步骤”而被加以引用,否则权利要求的要素都不应当在U.S.C.§112第六段下进行理解。
虽然该说明书包含许多细节,但是这些并不应当被理解为对可以要求保护的范围的限制,而是被理解为该主题的特定实施方式的描述。该说明书中在单独实施例背景下所描述的某些特征也可以在单个实施例中被组合实施。相反,在单个实施例背景下所描述的各种特征也可以在单独地在多个实施例中实施或者以任何适当的子组合形式来实施。此外,虽然特征在上文可以被描述为以某种组合发生作用并且甚至最初要求保护的也是如此,但是来自所要求保护的组合的一个或多个特征在一些情况下能够从所述组合中脱离,并且所要求保护的组合可以针对子组合或者子组合的变化形式。
该说明书的主题已经关于特定方面被描述,但是其它方面可以被实施并且处于以下权利要求的范围之内。例如,虽然虽作在附图中以特定顺序被描绘,但是这不应当被理解为为了实现所期望的结果,要求这样的操作以所示的特定顺序或者以连续顺序被执行,或者要执行所有所图示的操作。权利要求中所引用的动作可以以不同顺序来中执行并且仍然实现所期望的结果。作为一个示例,附图中所描绘的过程并不一定要求所示出的特定顺序或连续顺序来实现所期望的结果。在某些情况下,多任务或并行处理可能是有益的。此外,以上所描述方面中的各种系统组件的划分形式不应当被理解为要求在所有方面中进行这样的划分,并且应当理解的是,所描述的程序组件和系统一般可以共同集成在单个软件产品中或者封装到多个软件产品中。
标题、背景技术、附图的简要描述、摘要和附图因此被结合于本公开中并且被提供作为本公开的说明性示例,而并非作为限制性描述。其是以它们将不被用来限制权利要求的范围或含义的理解而被提交。此外,在详细描述中,可以看出该描述提供了说明性示例,并且出于使得本公开流畅的目的,各种特征在各种实施方式中被分组在一起。本公开的方法并不被解释为反映所请求保护的主题要求与每项权利要求中明确引用的相比更多的特征的意图。相反,如权利要求所反映的,发明主题以比单个所公开的配置或操作的全部特征更少的特征而体现。权利要求因此被结合于详细描述中,其中每项权利要求自身代表一项单独请求保护的主题。
权利要求并非意在被局限于本文所描述的方面,而是要依据与权利要求的语言相一致的完整范围并且包含所有的法律等同形式。然而,权利要求都并非意在包含无法满足可应用专利法规的要求的主题,但是它们也不应当以这样的方式被加以解释。

Claims (20)

1.一种用于通过对有关所选择的内容项的信息的受限部分提供安全访问来识别并获得用于与所选择的内容项进行交互的适合的应用的计算机实现的方法,所述方法包括:
在设备上运行的初始应用中接收来自用户的选择以与所述初始应用能够访问的内容项进行交互;
从有关所述内容项的信息的受限部分生成散列值;
由活动管理器向解析器接口提供从有关所述内容项的信息的受限部分生成的散列值的一部分以用于与针对至少一个应用所生成的散列值的相对应部分进行比较,其中针对所述至少一个应用所生成的每个相应散列值在应用数据库中可用;
在从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述至少一个应用所生成的散列值的相对应部分的比较指示匹配时,则:
由所述活动管理器从所述解析器接口接收从所述应用数据库针对所述至少一个应用所生成的完整散列值;以及
由所述活动管理器将从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个应用所生成的完整散列值进行比较;
在从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个应用所生成的完整散列值的比较指示针对至少一个适合的应用的匹配时,则请求所述至少一个适合的应用的副本以便在所述设备上执行;
在所述设备上执行所述至少一个适合的应用;以及
将有关所述内容项的信息的受限部分提供至所述至少一个适合的应用以便由所述用户进行交互。
2.根据权利要求1所述的方法,
其中,所述内容项是统一资源定位符(URL),并且
其中,从有关所述内容项的信息的受限部分生成的散列值是从来自所述URL的主机生成的。
3.根据权利要求1所述的方法,进一步包括:
在提供从有关所述内容项的信息的受限部分生成的散列值的所述部分以用于与针对所述至少一个应用所生成的散列值的相对应部分进行比较之前,确定所述设备不包括适合于与所述内容项交互的本地应用。
4.根据权利要求1至3中的任一项所述的方法,其中,所述散列值的所述部分通过选择所述散列值的前预定数量的位来生成。
5.根据权利要求1至3中的任一项所述的方法,其中,从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述至少一个应用所生成的散列值的相对应部分的比较在所述设备上执行。
6.根据权利要求1至3中的任一项所述的方法,其中,请求所述至少一个适合的应用的副本以便在所述设备上执行包括下载所述至少一个适合的应用的副本。
7.根据权利要求1至3中的任一项所述的方法,其中,请求所述至少一个适合的应用的副本以便在所述设备上执行包括请求被流传输至所述设备的所述至少一个适合的应用的执行。
8.根据权利要求1至3中的任一项所述的方法,其中,有关所述内容项的信息的受限部分被使用安全信道提供至所述至少一个适合的应用以便由所述用户进行交互。
9.根据权利要求1至3中的任一项所述的方法,进一步包括:
针对所述应用数据库中的多个应用中的每个应用,使用识别来自所述多个应用中的相对应应用被配置为与之交互的内容的信息来生成相对应散列值,其中所述多个应用包括所述至少一个适合的应用;
将从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述多个应用的散列值的相对应部分进行比较;
确定从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述多个应用中的至少一些应用的散列值的相对应部分中的至少一些相匹配,所述多个应用中的所述至少一些应用包括所述至少一个适合的应用;
将从有关所述内容项的信息的受限部分生成的散列值与针对所述多个应用中的所述至少一些应用的散列值进行比较;以及
确定从有关所述内容项的信息的受限部分生成的散列值与针对所述多个应用的散列值的比较之间的匹配被局限于针对所述至少一个适合的应用的散列值。
10.根据权利要求1至3中的任一项所述的方法,进一步包括:
从用户接收使得请求所述至少一个适合的应用的副本以便在所述设备上执行无效的请求;以及
响应于在所述设备上运行的初始应用中接收来自所述用户的选择以与所述内容项进行交互,在所述设备上可用的默认应用中提供所述内容项以便由所述用户进行交互。
11.一种用于通过对有关所选择的内容项的信息的受限部分提供安全访问来识别并获得与所选择的内容项进行交互的适合的应用的系统,所述系统包括:
存储器,所述存储器包括:
内容项;和
初始应用;以及
被配置为执行指令的处理器,所述指令在被执行时使得所述处理器:
在设备上运行的初始应用中接收来自用户的选择以与所述初始应用能够访问的内容项进行交互;
从有关所述内容项的信息的受限部分生成散列值;
确定所述设备不包括适合于与所述内容项进行交互的本地应用;
由活动管理器向解析器接口提供从有关所述内容项的信息的受限部分生成的散列值的一部分以用于与针对至少一个应用所生成的散列值的相对应部分进行比较,其中针对所述至少一个应用所生成的每个相应散列值在应用数据库中可用;
在从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述至少一个应用所生成的散列值的相对应部分的比较指示匹配时,则:
由所述活动管理器从所述解析器接口接收从所述应用数据库针对所述至少一个应用所生成的完整散列值;以及
由所述活动管理器将从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个应用所生成的完整散列值进行比较;
在从有关所述内容项的信息的受限部分生成的散列值与针对所述至少一个应用所生成的完整散列值的比较指示针对至少一个适合的应用的匹配时,则请求所述至少一个适合的应用的副本以便在所述设备上执行;
在所述设备上执行所述至少一个适合的应用;以及
将有关所述内容项的信息的受限部分提供至所述至少一个适合的应用以便由所述用户进行交互。
12.根据权利要求11所述的系统,其中,所述内容项是统一资源定位符(URL),并且
其中,从有关所述内容项的信息的受限部分生成的散列值是从来自所述URL的主机生成的。
13.根据权利要求11所述的系统,其中,所述散列值的所述部分是通过选择所述散列值的前预定数量的位来生成的。
14.根据权利要求11至13中的任一项所述的系统,其中,从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述至少一个应用所生成的散列值的相对应部分的比较在所述设备上执行。
15.根据权利要求11至13中的任一项所述的系统,其中,请求所述至少一个适合的应用的副本以便在所述设备上执行包括下载所述至少一个适合的应用的副本。
16.根据权利要求11至13中的任一项所述的系统,其中,请求所述至少一个适合的应用的副本以便在所述设备上执行包括请求被流传输至所述设备的所述至少一个适合的应用的执行。
17.根据权利要求11至13中的任一项所述的系统,其中,有关所述内容项的信息的受限部分被使用安全信道提供至所述至少一个适合的应用以便由所述用户进行交互。
18.根据权利要求11至13中的任一项所述的系统,其中,所述处理器进一步被配置为执行指令,所述指令在被执行时使得所述处理器:
针对所述应用数据库中的多个应用中的每个应用,使用识别来自所述多个应用中的相对应应用被配置为与之交互的内容的信息来生成相对应散列值,其中所述多个应用包括所述至少一个适合的应用;
将从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述多个应用的散列值的相对应部分进行比较;
确定从有关所述内容项的信息的受限部分生成的散列值的所述部分与针对所述多个应用中的至少一些应用的散列值的相对应部分中的至少一些相匹配,所述多个应用中的至少一些应用包括所述至少一个适合的应用;
将从有关所述内容项的信息的受限部分生成的散列值与针对所述多个应用中的至少一些应用的散列值进行比较;以及
确定从有关所述内容项的信息的受限部分生成的散列值与针对所述多个应用的散列值的比较之间的匹配被局限于针对所述至少一个适合的应用的散列值。
19.根据权利要求11至13中的任一项所述的系统,其中,所述处理器进一步被配置为执行指令,所述指令在被执行时使得所述处理器:
从用户接收使得请求所述至少一个适合的应用的副本以便在所述设备上执行无效的请求;以及
响应于在所述设备上运行的初始应用中接收来自所述用户的选择以与所述内容项进行交互,在所述设备上可用的默认应用中提供所述内容项以便由所述用户进行交互。
20.一种非瞬态机器可读存储介质,包括用于使得处理器执行根据权利要求1至10中的任一项所述的方法的机器可读指令。
CN201780046378.7A 2016-07-29 2017-07-28 利用外部源的隐私意识的意图解析 Active CN109565517B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662368977P 2016-07-29 2016-07-29
US62/368,977 2016-07-29
US15/469,477 2017-03-24
US15/469,477 US10558814B2 (en) 2016-07-29 2017-03-24 Privacy aware intent resolution with external sources
PCT/US2017/044522 WO2018023075A1 (en) 2016-07-29 2017-07-28 Privacy aware intent resolution with external sources

Publications (2)

Publication Number Publication Date
CN109565517A CN109565517A (zh) 2019-04-02
CN109565517B true CN109565517B (zh) 2021-11-16

Family

ID=61011641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780046378.7A Active CN109565517B (zh) 2016-07-29 2017-07-28 利用外部源的隐私意识的意图解析

Country Status (4)

Country Link
US (1) US10558814B2 (zh)
EP (1) EP3482556B1 (zh)
CN (1) CN109565517B (zh)
WO (1) WO2018023075A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180285469A1 (en) * 2017-03-31 2018-10-04 Facebook, Inc. Optimizing determination of content item values
US10505918B2 (en) * 2017-06-28 2019-12-10 Cisco Technology, Inc. Cloud application fingerprint
US11770256B1 (en) 2019-06-20 2023-09-26 Marvell Asia Pte, Ltd. System and method for bitcoin mining with reduced power
US11438142B1 (en) * 2019-08-19 2022-09-06 Marvell Asia Pte, Ltd. System and method for mining digital currency in a blockchain network
US20210240859A1 (en) * 2020-02-04 2021-08-05 Aio Me Ltd. Immutable downloads
US11593082B2 (en) * 2020-04-10 2023-02-28 Apple Inc. Registered applications for electronic devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099445B1 (en) * 2002-12-06 2012-01-17 Adobe Systems Incorporated File dispatcher for multiple application targets
CN102426640A (zh) * 2010-11-19 2012-04-25 微软公司 用于产品验证和激活的安全软件产品标识符
CN105635126A (zh) * 2015-12-24 2016-06-01 北京奇虎科技有限公司 恶意网址访问防护方法、客户端、安全服务器及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7665094B2 (en) 2002-12-13 2010-02-16 Bea Systems, Inc. Systems and methods for mobile communication
JP2011009929A (ja) * 2009-06-24 2011-01-13 Sony Corp 可動機構部制御装置、可動機構部制御方法、プログラム
US20150195340A1 (en) 2010-09-30 2015-07-09 Google Inc. Determining if an Application is Cached
US9342536B2 (en) 2012-07-31 2016-05-17 International Business Machines Corporation Intent based automation of data management operations by a data management engine
US20140096246A1 (en) 2012-10-01 2014-04-03 Google Inc. Protecting users from undesirable content
US9098707B2 (en) 2013-10-14 2015-08-04 International Business Machines Corporation Mobile device application interaction reputation risk assessment
WO2015061644A1 (en) 2013-10-25 2015-04-30 The Regents Of The University Of Michigan Controlling unregulated aggregation of mobile app usage
US9916475B2 (en) 2014-08-11 2018-03-13 North Carolina State University Programmable interface for extending security of application-based operating system
US20170372600A1 (en) * 2015-01-16 2017-12-28 Nokia Technologies Oy Method, apparatus, and computer program product for local control through intermediate device
EP3091450B1 (en) * 2015-05-06 2017-04-05 Örjan Vestgöte Method and system for performing binary searches
US10019558B2 (en) * 2016-05-18 2018-07-10 Adobe Systems Incorporated Controlling licensable features of software using access tokens
US10402180B2 (en) * 2016-06-29 2019-09-03 Google Llc Latency reduction in feedback-based system performance determination

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099445B1 (en) * 2002-12-06 2012-01-17 Adobe Systems Incorporated File dispatcher for multiple application targets
CN102426640A (zh) * 2010-11-19 2012-04-25 微软公司 用于产品验证和激活的安全软件产品标识符
CN105635126A (zh) * 2015-12-24 2016-06-01 北京奇虎科技有限公司 恶意网址访问防护方法、客户端、安全服务器及系统

Also Published As

Publication number Publication date
US10558814B2 (en) 2020-02-11
EP3482556B1 (en) 2019-12-25
WO2018023075A1 (en) 2018-02-01
US20180032741A1 (en) 2018-02-01
CN109565517A (zh) 2019-04-02
EP3482556A1 (en) 2019-05-15

Similar Documents

Publication Publication Date Title
CN109565517B (zh) 利用外部源的隐私意识的意图解析
US9798531B2 (en) Dependency-aware transformation of multi-function applications for on-demand execution
US9426200B2 (en) Updating dynamic content in cached resources
US9509764B1 (en) Updating cached web content
US9244702B1 (en) Installer-free applications using native code modules and persistent local storage
US8387140B2 (en) Method and apparatus for controlling access to encrypted network communication channels
US9401949B1 (en) Client web content cache purge
US20130019159A1 (en) Mobile web browser for pre-loading web pages
US11503070B2 (en) Techniques for classifying a web page based upon functions used to render the web page
KR20140012747A (ko) Dom-기반 동형을 이용하여 웹-브라우징 연산을 메모라이징
WO2013030454A1 (en) Method and apparatus for enabling offline web application execution
US9124934B2 (en) Rule-based classification of electronic devices
US10013497B1 (en) Background reloading of currently displayed content
US20170228263A1 (en) Hybrid application system to utilize native device features of a mobile device
US20180314677A1 (en) Mapping page states to urls
US20150161082A1 (en) Techniques for analyzing web pages to determine font subsets
US20150207691A1 (en) Preloading content based on network connection behavior
US9798532B1 (en) Precompiling locally-stored instructions for a web application
WO2014023795A1 (en) Mechanism for adding new search modes to user agent
US8856958B1 (en) Personalized content access prompt
US10346520B2 (en) Techniques for monitoring version numbers of web frameworks
US9292252B2 (en) Methods and apparatus for voiced-enabling a web application
US9223557B1 (en) Application provided browser plugin
US20180097817A1 (en) Generating short-term signatures for accessing cloud storage
US20150205767A1 (en) Link appearance formatting based on target content

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
GR01 Patent grant
GR01 Patent grant