CN103649983A - 用于将功能添加到应用的服务 - Google Patents
用于将功能添加到应用的服务 Download PDFInfo
- Publication number
- CN103649983A CN103649983A CN201280032019.3A CN201280032019A CN103649983A CN 103649983 A CN103649983 A CN 103649983A CN 201280032019 A CN201280032019 A CN 201280032019A CN 103649983 A CN103649983 A CN 103649983A
- Authority
- CN
- China
- Prior art keywords
- application
- module
- purchase
- user
- content item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 72
- 230000006870 function Effects 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000003780 insertion Methods 0.000 claims description 8
- 230000037431 insertion Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 81
- 238000003860 storage Methods 0.000 description 13
- 238000011161 development Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 6
- 230000014759 maintenance of location Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000015654 memory Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000013538 functional additive Substances 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2137—Time limited access, e.g. to a computer or data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种应用管理系统修改开发商提交的应用(如移动应用)以在此类应用可供购买之前添加各种类型的功能。所添加的功能可例如使最终用户能够从应用商店进行内容项目的应用内购买。如另一实例,数字版权管理(DRM)功能可被添加用于控制用户对内容项目(如应用商店中可用的内容项目)的访问。
Description
背景
本申请要求2011年6月27日提交的美国专利申请No.13/170,074的优先权,其全部内容并入本文。
互联网的发展已使内容的数字分配更理想。通过计算机网络的数字分配对比使用物理媒介的分配的较低成本只能被预期进一步推动数字分配渠道的增长。越来越多的内容类型(如应用、游戏、音乐、书籍和电影)现在可以通过数字下载,包括用于无线设备的移动应用(有时被称为“应用(app)”)以及用于浏览器和操作系统桌面的应用。
随着数字内容的增长,内容开发商能够以较低成本分配应用及其它内容项目。这导致了关于数字内容项目的市场的增长。数字内容项目的增加产生对关于针对此类内容项目的管理、跟踪和转移权限的系统的需要。在其它能力中,这些系统可以允许应用和内容项目被货币化。
附图简述
在整个附图中,参考数字可被重复用于指示参考元件之间的对应。附图被提供以示出本文所述的示例性实施方案并且不意在限制本发明的范围。
图1是示意性地示出向开发商所提交的应用添加功能的应用管理系统的示例的网络图。
图2示意性地示出用于涉及图1的应用分配系统的示例应用处理情形的逻辑流程图。
图3示出用于使应用和附加模块组合的过程的一个实施方案的流程图。
具体实施方式
I.介绍
许多应用(如游戏)允许用户购买内容项目或到应用的其它添加,如游戏地图、游戏项目、人物、UI主题、音乐、等级、附加功能等。这些内容项目可以从数字内容存储或内容市场购买且然后可以在应用中使用。一些应用允许在应用以内购买(“应用内(in-app)购买”)。一般来说,应用开发商包括通过在应用中包括特定代码对应用内购买的支持。然而,添加这样的应用内购买代码会增加应用的复杂性和开发时间、导致应用中潜在的缺陷或错误或以其它方式增加开发成本。在一些情况下,开发商可能没有开发这样的代码所需的经验且因此不能提供应用内购买。
本公开描述了提供上述问题的解决方案的系统和相关过程。在某些实施方案中,这些系统和过程可有利地插入用于在应用中提供附加功能的模块,诸如购买模块和/或数字版权管理(DRM)模块。可用于本文的此类DRM模块的实例在2011年3月9日提交的题为“Digital Rights Management for Applications(用于应用的数字版权管理)”的美国申请No.13/044,478中进行了描述,其公开在此通过引用整体并入本文。此类插入代码模块可向用户提供特征和服务,而开发商不必开发用于特征的所有或大部分应用代码。另外,在已经开发应用之后可以添加模块时,可添加附加特征到应用而对开发商的现有开发过程具有很少或没有改变。
在一个实例中,这些系统和过程可以在分配用于购买和/或下载到用户设备的应用的应用存储或应用管理系统的背景中实施。开发商可以将应用提交到应用管理系统以分配给最终用户。响应于从开发商接收到应用,应用管理系统可以将代码模块(如购买模块)插入到应用中,这允许最终用户购买和/或下载与应用关联的内容项目。也可以插入其它代码模块以提供附加功能。例如,可添加DRM模块以用于验证用户是否有权访问特定内容项目。DRM模块还可以防止或以其它方式减少复制或修改应用和/或内容项目。
本公开的各个方面现在将关于某些实例和实施方案进行描述,其旨在示出而不是限制本公开。本公开中的内容不意在暗示所公开的实施方案的任何特定特征或特性是必不可少的。保护范围由权利要求书限定。
II.应用管理系统概述
图1是示意性地示出向开发商所提交的应用提供附加功能的应用管理系统100的示例的网络图。应用管理系统100可以使用网络110与用户计算设备105和开发商系统107进行通信。应用管理系统100可以从开发商系统107接收应用、修改应用以及将这些应用提供给用户计算设备105。应用管理系统100可以通过插入允许访问由应用管理系统100(或由其它实体)提供的一个或多个服务的代码模块来修改开发商提交的应用。这些服务可以例如包括用于管理下载和/或购买应用和内容项目的服务和用于验证内容项目权限的服务。在一些实施方案中,通过将应用反编译成源代码、插入参考代码模块的代码片段且然后重新编译应用来插入代码模块。可以在源代码中的自动选择插入点处插入代码片段。应用管理系统100也可以提供目录服务140,目录服务140用于提供或销售与特定应用相关联的内容项目。系统100可以由内容管理服务提供商来操作。
虽然主要在开发商提交的背景下描述本公开的系统和过程,但是替代地可由另一实体提交应用,另一实体如应用发行商、内容创建者或提交应用的其它实体。术语“购买”及类似的变化一般是指用户支付获得或使用应用或内容项目的交易,但也可以指应用内容项目免费提供给用户的交易(例如,在促销期间或在试用时)。术语“权限”在本文用来可稍微互换指代(1)被授予或可以被授予的法定权限或授权,以及(2)该法定权限或授权的计算机代表。取决于其使用的背景,该术语可以更具体地指这两个项目中的一个。
应用管理系统100可以包括能够从开发商接收应用和应用内容项目并将应用和应用内容项目提供给用户的任何基于计算机的系统。应用和应用内容项目可通过下载、流传输、应用虚拟化等来提供。这可以包括例如通过一次性费用、订阅或免费提供应用。另外,这可以包括例如向任何数量的用户、向预定数量的用户、向一组预定的用户提供有限时间、有限使用次数或无限使用次数的应用。
应用管理系统100可以包括用于从用户系统105和/或开发商系统107、目录服务140和相关联搜索引擎、购买服务145以及应用分配服务150接收网络请求和响应网络请求的一个或多个服务器120。服务可以通过执行一个或多个服务器120或单独服务器上的代码模块来实施。应用管理系统100也可以包括用于存储应用相关的数据和内容项目的应用数据存储160和用于存储用户相关的数据(如账户信息)的用户数据存储170。其它服务也可由应用管理系统100提供。
开发商使用他们的计算系统107可以开发应用和内容项目并将它们提交到应用管理系统100以提供这些应用和内容项目供用户购买和/或下载用于他们的用户计算设备105,仅举几例诸如无线移动设备(如智能电话、PDA、平板计算机、电子书阅读器等)、台式机、膝上型计算机、视频游戏平台、电视机顶盒、电视机(例如,互联网电视)和计算机化设备。用户计算设备105可以是任何类型的计算设备。另外,用户设备105有可能为不同类型的设备以包括不同的应用或以其它方式被不同地配置。此外,该设备105可以包括任何类型的操作系统(“OS”)。例如,计算设备105可以实施Android TM OS、iOS(iPhone或iPad OS)、Linux或基于Unix的OS等等。
应用管理系统100可以提供用于添加附加功能的服务,如用于管理或协调应用和应用内容项目的分配的服务。许多应用不具有允许应用内购买的内置功能,其中这些应用的用户可以获得与应用本身不同的附加或“追加”应用内容项目。应用内购买的一个替代方案是允许通过应用外部的界面(如通过网络服务(例如网站)或设备安装应用商店)购买或下载内容项目。然而,通过将应用内购买功能添加到这些应用,然后可以在这些应用内购买或获得应用内容项目,从而为应用用户流水线化了购买过程。例如,应用内购买可以简化内容项目与购买应用的集成或减少或消除使用应用的用户体验的中断。
应用内容项目可以包括游戏地图、游戏等级、游戏保存、游戏项目、游戏人物、游戏数据、视频、图像、音乐、设计、化身、人物、说明、指南、提示、新闻、电子书、其它书面信息或内容等。这些内容项目可以在与所述内容项目相关联的应用内被使用。在一个实例中,使用电子阅读器设备或具有电子阅读器应用的其它计算设备的用户可以在电子阅读器应用内购买电子书从而在设备上阅读。
在从开发商接收到内容提交之后,应用管理系统100可以通过为附加功能添加模块(诸如DRM模块或购买模块)来修改应用。在修改应用之后,应用管理系统100可以用目录服务140(或用第三方目录服务)列出应用和/或应用内容项目。例如,应用管理系统100可以使项目被添加到可浏览的电子目录,可以从可浏览的电子目录购买应用或内容项目。
在一个实施方案中,应用修改由应用管理系统100以编程方式完成。在一些实施方案中,应用管理系统100将应用反编译成源代码。然后,应用管理系统100分析源代码以便为附加功能确定插入点。例如,源代码可以按照编码标准,使得系统100可在预定位置、函数或类中找到特定功能。在另一实例中,应用管理系统100可以在源代码中搜索指示应用的菜单或选择界面的图案。然后,应用管理系统100可以插入调用插入的模块的新菜单项或代码片段。在一个实例中,新菜单项调用购买模块,购买模块提供目录界面用于与目录服务140进行通信。目录界面可以提供对应用内目录服务140的目录项目的访问。
III.应用管理系统详情
在图1的实施方案中,应用管理系统100包括一个或多个服务器120、服务目录140、购买服务145、应用分配服务150、应用数据存储160和用于用户数据的数据存储170。一个或多个服务器120可以接收和响应于通过网络110接收到的来自用户计算设备105和/或开发商系统107的网络请求。
可以包括搜索引擎的目录服务140允许用户浏览由目录服务140提供的电子目录或查询搜索引擎来获取存储在应用数据存储160中的有关电子目录内容的信息。电子目录内容可以包括有关产品和/或服务的信息。目录服务140也可以提供与供出售或免费的各自开发商应用相关联的应用内容项目。目录服务140可以通过目录界面(如网络应用界面(例如,网络服务器)、应用编程界面(API)或其它类型的界面)进行访问。在一个实施方案中,在具有购买模块的用户计算设备105上操作的应用与目录服务140进行通信,以便为应用提供对与应用相关联的内容项目的访问。
目录服务140可以提供可供购买或下载的项目目录或项目列表,如与各自应用相关联的应用和内容项目。目录也可包括描述内容项目的内容项目元数据。目录页面可被显示为访问应用内的弹出窗口或菜单屏幕。
在一个实施方案中,电子目录内容被安排在层次结构中,具有与层次结构中一个或多个类别或浏览节点相关联的项目。目录服务140可以为用户提供除搜索目录之外浏览项目层次结构的功能。用户可以选择在层次结构中或在搜索结果列表中表示的项目以查看有关项目的更多详情。响应于用户项目选择,服务器120可以向用户系统105提供包括有关选定项目的详情的目录页面(有时被称为项目详细页面)。
给定应用的目录页面或详细页面例如可包括由该项目的创建者提供的描述、价格信息、有关该项目的创建者的信息、客户评价、设备兼容性信息、屏幕截图和可能对客户有用的其它类型的信息。在一些实施方案中,详细页面可以包括与给定应用相关联的可用应用内容项目的列表。在一些实施方案中,可基于与用户账户相关联的设置或信息过滤或生成该列表。也可以使用各种标准如评分、价格、普及性或可用性来过滤内容列表。
购买服务145可以包括用于管理用户购买的服务和用于向用户提供个性化信息的个性化服务。购买服务145可以接收客户订单、账单或接受来自用户对订单的付款、针对购买将付款记入卖家或开发商、在不同方之间分割付款、对购买支付征收税款以及将所征收的税款分配成适当的管理实体税款、计算或转换不同货币(例如美元对欧元或日元)之间的价格和/或安排内容项目的分配。购买服务145可以执行与订单处理有关的其它功能。在一些实施方案中,购买服务145可以关于开发商和/或应用管理系统100的运营商的账户分割从最终用户接收到的费用(例如,购买费用或内容交付费用)。购买服务也可以提供附加功能,如下进一步描述的。
应用分配服务150可以将模块与应用组合或以其它方式修改应用以提供附加功能。例如,应用分配服务可以将购买模块插入应用。然后,经修改的应用可以提供用户界面,用户经用户界面通过用户计算设备105可以在网络上访问应用商店或电子目录,以便进行购买并进行其它交易。购买模块可以包括用于浏览和/或搜索应用的目录的组件,应用的目录可以被存储在应用数据存储160中。对于该浏览和/或搜索功能,购买模块可以但不必依赖于目录服务140的功能。此外,在一些实施方案中,基于应用选择或使用行为以及可能的其它推荐准则,购买模块可以与购买服务145交互以生成和/或获得对用户的推荐。应用分配服务150也可以使DRM功能与应用组合,以使能够防止应用被复制或修改。
在应用管理系统100接收到来自用户的内容提交之后,应用管理系统100在应用管理系统100的应用数据存储160(例如,数据库、存储设备(诸如文件服务器、硬盘驱动器、光盘驱动器等)上的平面文件或数据结构)上存储内容提交数据,如应用、应用内容项目或内容元数据。另一数据存储170可以存储用户数据,如与用户账户有关的用户凭据。例如,应用管理系统100可检查随内容提交接收到的访问凭据以确定提交内容的用户是否有权访问应用管理系统100维护的账户。如果验证了访问权限,则应用管理系统100可以更新内容提交和与该账户相关联的其它数据。在不同的实施方案中,应用数据存储160和用于用户数据的数据存储170可以是相同的或不同的数据存储。
图2示意性示出用于涉及图1的应用分配系统100的示例应用处理情形的逻辑流程图。在该情形中,开发商207创建应用210以提交给应用分配系统100中,然后应用分配系统100修改应用210并将经修改的应用210提供给一个或多个用户205。应用210可以例如是游戏、导航应用、社交网络应用、业务应用、生产力应用、实用应用、媒体应用、电子阅读应用、娱乐应用等。
在一种情形中,开发商207使用开发商系统107创建应用210。开发商207可使用集成开发商环境(“IDE”)(如IDE215)和编译器220来开发应用210。IDE215可以包括便于代码开发的任何系统。例如,对于Java开发,IDE215可以包括可从Eclipse FoundationTM获得的Eclipse IDE。此外,IDE可以包括编译器220,编译器220可以包括能够将与应用210相关联的源代码编译成应用210的任何编译器。在一些实施方案中,IDE215可用于使购买模块235和/或DRM模块240与应用210组合,而不是使用应用重新打包模块230来这样做。
在图2的事件1处,应用分配服务150接收应用210和/或应用210的内容项目。在一个实施方案中,应用分配服务150然后处理应用210以通过添加模块向应用提供附加功能,模块可以包括相关联的代码片段。
在图2的事件2处,应用分配服务150使购买模块235和/或DRM模块240与应用210组合。购买模块235可以使用户计算设备105能够与目录服务140和/或购买服务145进行通信以向应用提供应用内购买功能。例如,当在用户计算设备105上执行时,购买模块235可以与目录服务140进行通信以向用户205提供目录项目的列表。在一个实施方案中,应用分配服务150修改应用中的菜单屏幕以提供打开目录界面(如弹出式屏幕或窗口)的链接(例如,静态或动态)或菜单项目,目录界面提供对电子目录的访问。在另一实例中,购买模块235允许用户计算设备105与购买服务145之间的通信以处理应用210的内容项目的购买或验证用于下载的内容项目的权限。
在一个实施方案中,DRM模块240使计算设备105能够在未经授权的情况下验证应用210还没有被修改,这可阻止未授权用户访问和/或执行应用210。在一个实施方案中,DRM模块240可以阻止未经授权的复制和/或移动应用,仅举几例,例如将应用从一个用户设备105移动到另一个用户设备,或从用户设备105移动到可记录媒介如SD卡、CD或USB密钥,或从用户设备105移动到网络设备或服务(例如,云存储)。有利的是,在一些实施方案中,如果应用210被从用户设备105复制到第二用户设备,则DRM模块240可以阻止应用210在第二用户系统上执行。或者,在一些实施方案中,DRM模块240将不阻止应用210在第二用户系统上的复制或执行,例如,只要同一用户正在使用应用210。
为了便于使附加模块与应用210组合,应用分配服务150可以包括应用重新打包模块230。应用重新打包模块230可以包括能够反编译应用210、使DRM模块240与经反编译的应用组合以及重新编译应用210与DRM模块240的任何系统。
在图2的事件3中,应用分配服务150指示目录服务140列出应用210和/或与应用210相关联的数字内容项目。一旦列出与目录服务140相关联的目录,用户205就可以购买应用210。
在图2的事件4中,目录服务140从用户设备105接收对应用210的购买请求。目录服务140可以与购买服务145进行通信以处理购买。例如,购买服务145可以为购买给用户205开账单。在一个实施方案中,购买服务145包括权限模块250,权限模块250用于与DRM模块240协调以确定计算设备105对应用210或与应用210相关联的内容项目的访问权限。
在图2的事件5中,目录服务140(或购买服务145)指示应用分配服务150向购买用户设备105提供经修改的应用210。应用服务210将经修改的应用210以及添加的购买模块235和DRM模块240传输给用户设备105。
在图2的事件6中,用户205在用户设备105上运行应用210。利用购买模块235的用户205能够在应用210内访问目录服务140。这为用户提供了应用内购买功能,从而允许在应用210内购买内容项目。例如,通过利用由购买模块235提供的菜单界面,用户205可以将内容项目购买请求发送到目录服务140。然后,目录服务140可以与购买服务145协调以处理内容项目购买。
在图2的事件7中,目录服务140(或购买服务145)指示应用分配服务150向用户设备105提供所请求的内容项目。购买模块235可以接收内容项目并使内容项目在应用210中可用。在一些实施方案中,DRM模块240验证应用210和/或用户205被授权访问内容项目。
正如将明显的,其它类型的模块可以被注入应用210以提供附加功能。通过允许应用210的编程修改,可以减少应用210的开发时间,可以添加附加功能,和/或可简化开发过程。
IV.示例模块重新打包过程
图3示出用于使应用210和附加功能模块(如图2的购买模块235或DRM模块240、家长控制模块或用于提供附加功能的其它模块)组合的过程300的一个实施方案的流程图。过程300可以通过应用分配服务150的应用重新打包模块230、应用提交模块225或者IDE215来实施。为了简化讨论,过程300将被描述为由应用分配服务150执行,应用分配服务150使应用210与图2的购买模块235组合。然而,其它替代实施方案是可能的,如添加不同的模块以提供其它功能。
当例如应用分配服务150从开发商207(其创建应用210或将应用210提供到例如应用管理系统100)处接收到应用210时,方法300在块302开始。在块304,应用分配服务150反编译应用210以获取应用210的反编译副本。在块306,应用分配服务150使应用210的反编译副本与购买模块235组合。
在一个实施方案中,购买模块235包括与用开发商207相关联的开发商证书和与应用管理系统100相关联的应用提供商证书中的一个或多个。
在一些实施方案中,使应用210的反编译副本与购买模块235组合包括识别与应用210相关联的入口点。入口点可以包括使用户或系统能够开始、实例化、暂停、恢复、启动或初始化应用的任何例程、组件、功能、方法、类别或到应用的接入点。在一些实施方案中,使应用210的反编译副本与购买模块组合包括将与购买模块相关联的代码插入和/或注入与入口点相关联的一个或多个例程、组件、功能、方法或类别。
在一些实施方案中,使应用210的反编译副本与购买模块组合包括确定与应用210中的一个或多个部分相关联的一个或多个基类。虽然对此没有限制,但是应用210的这些部分可以与入口点相关联。在一些实施方案中,购买模块被配置为在调用基类中的一个或多个时被执行。
在一个实施方案中,购买模块可以包括代替现有生命周期例程或在现有生命周期例程之前调用的替换或补充生命周期例程、类或者方法。例如,购买模块可包括应用210所使用的基类的子类。在调用和/或执行应用210的任何子类之前,可以调用和/或执行购买模块的子类。例如,在来自的移动设备可用的AndroidTM操作系统中,生命周期入口点或例程(如onCreate()、onStart()、onPause()、onResume()和onDestroy())由应用使用以分别处理应用启动、开始、暂停、恢复和退出事件。购买模块可以包括一类中这些生命周期方法中的一个或多个的版本,该类是由一些或所有Android应用使用的Activity基类的子类。当调用生命周期例程中的一个时,可以在调用应用210的相应例程之前(或在一些实施方案中,在调用应用210的相应例程之后)调用该例程的购买模块版本,从而允许购买模块执行DRM分析和/或收集有关应用210的数据。在一些实施方案中,购买模块在调用与入口点相关联的基类之前完成执行。
在一些实施方案中,购买模块235与应用210并行和/或异步执行,如在执行的另一线程中。购买模块因此可以有利地在后台运行,同时允许应用210加载,从而降低对用于应用210的加载时间的影响。
在插入DRM模块240的实施方案中,应用210被允许启动并且至少随时运行,同时DRM模块确认应用210(或其用户)是否被授权执行。如果应用210或用户没有被授权,则DRM模块然后可以改变正在运行的应用210的执行,例如通过结束应用210或禁用应用的特征或特征组。
虽然许多应用具有开始执行应用的单一入口点,但是一些应用有一个以上的入口点。识别入口点可以是自动或手动过程,在一个实施方案中,以编程方式识别入口点。在一些实施方案中,开发商207或开发商系统107识别应用210中的入口点,例如通过将条目标签或标记放入可调用插入模块的代码中。在其它实施方案中,应用分配服务150分析应用210以识别入口点。在一些实施方案中,应用分配服务150可以插入代码,该代码导致每次访问或执行与应用210相关联的入口点时执行购买模块。对于一些设备和系统,在重新打包时识别切入点可以是可选择的。取而代之的是,购买模块可以被设计以监听应用在任何可用入口点的条目。
入口点的一些实例可以包括启动应用、终止应用、暂停应用以及从等待状态恢复应用。使用短信特征如文本、电子邮件或IM的应用可能也有通信相关的入口点,如读、写等等。入口点可以由操作系统或者由应用本身来触发。例如,操作系统可执行系统调用来启动应用作为过程。购买模块可以监听这样的系统调用。另一方面,应用可进行调用来终止它本身,并且DRM模块也可以监听这样的调用。
在一个实施方案中,使应用210的反编译副本与购买模块组合包括添加代码库到应用210。代码库可以包括共享库、静态链接库、动态链接库(“DLL”)、它们的组合等等。在一个实施方案中,添加代码库可以包括将代码库注入应用210。在一个实施方案中,添加代码库可以包括修改与应用210相关联的代码。
在块308处,应用分配服务150重新编译应用210的反编译副本与购买模块235的组合。在一个实施方案中,应用210与购买模块235被存储在应用数据存储160上。应用管理系统100可以在每次用户205(以优惠价格或免费)购买或请求应用210的副本时从应用数据存储160检索应用210与购买模块235。在其它实施方案中,用应用数据存储器160存储应用210而没有购买模块235。在这些实施方案中,应用分配服务150可以在每次用户试图从应用管理系统100上的应用210获得副本或访问应用210时执行过程300。
在一个实施方案中,重新编译的应用210可以用与应用管理系统100相关联的应用提供商证书来签署。
在一个实施方案中,应用管理系统100可以将重新编译的应用210提供给开发商207以用与开发商207相关联的开发商证书来签署。
在一个实施方案中,除了在购买模块之外,或者代替购买模块,应用分配服务150还可以使用过程300来插入或组合任何其它类型的模块与应用210。例如,应用分配服务150可以使用过程300来插入可以监视应用210的健康状况或与应用210相关联的使用统计的模块。可以将该信息提供给应用管理系统100以便于向用户205或拥有与用户计算设备105相同类型的设备的其他用户给出推荐。在一个实施方案中,应用分配服务150可以将多玩家模块添加到单玩家游戏应用以允许同一游戏应用的多个用户对战或互相玩。
在另一实例中,应用分配服务150可以将家长控制模块插入应用,以便控制对应用210上的可用内容项目的访问或控制应用210上的可用内容项目。在一个实施方案中,家长控制模块包括访问控制界面,当应用开始时或当应用的特定功能被选择时(例如,“开始游戏”、“加载游戏”或“购买内容”),访问控制界面被配置以被提供给用户205。访问控制界面可以要求在解锁对应用或功能的访问之前提供密码、基于图案的输入或其它访问密钥。例如,如果孩子试图从电子目录购买内容项目,那么家长控制模块可以在允许购买继续进行之前呈现访问控制界面并要求正确输入。
在一个实例中,可以插入代码模块以利用设备特有的硬件特征,如全球定位系统(GPS)访问、3D加速或加速度计访问。由于应用可以在不支持相同硬件特征的不同设备类型(例如,智能手机或平板计算机)上运行,一些开发商可能会放弃实施用于利用特定设备特有的特征的代码。开发商可能认为,为所有设备类型实施这样的特征会过于复杂或没有特别的设备类型有足够的用户基础使该特征值得开发。在这种情况下,应用管理系统100可插入代码模块用于添加对设备特有的硬件特征的支持。
如上所讨论的,可以被添加的一种类型的模块是DRM模块240。在一个实施方案中,如果DRM模块确定应用210已被修改而未经授权和/或如果DRM模块确定未授权用户(或设备)正在访问应用210,则DRM模块可以向用户呈现消息和/或促使应用210停止执行。更一般地,DRM模块可以确定应用210的执行是否被限制在范围内,如应用所提供的特征的某一子集(例如,免费特征对高级特征)。例如,如果执行被限制在范围内,则DRM模块可以限制或改变应用210的执行到该范围,如到应用210的共享软件部分而不是应用的完整高级版本。DRM模块可以改变或以其它方式修改应用210的执行以将执行限制到经授权特征(如共享软件或未注册的特征)。DRM模块也可以输出用于呈现给用户的提醒用户注册应用210、拒绝用户访问应用210等等的信息。在一些实施方案中,DRM模块240的一些或全部功能与应用管理系统100协调来提供。例如,DRM模块240可以与购买服务145的权限模块250进行通信并协调。
在一个实施方案中,过程300可以通过应用提交模块225响应于开发商207向应用提交模块225提供应用210来将应用210传输给应用管理系统100来进行。
在一个实施方案中,过程300可响应于开发商207激活与IDE215相关联的特征或插件来进行。在一个实施方案中,IDE215可以创建与应用210相关联的源代码的副本并且可以使源代码的副本与购买模块235组合。在一个实施方案中,IDE215可以编译源代码与购买模块235的组合。在一个实施方案中,IDE215或应用提交模块144可以将经编译的组合提供给应用管理系统100。在一个实施方案中,IDE215或应用提交模块144可以用与开发商207相关联的开发商证书来签署应用210或应用210和购买模块235的经编译的组合。
在一些替代实施中,开发商系统107将应用的源代码提交给应用管理系统100而不是经编译的应用。然后,应用管理系统100可以使购买模块235与源代码组合并编译购买模块235和源代码以创建应用210。
此外,尽管过程300已经关于应用管理系统100重新打包应用与购买模块235进行了描述,购买模块235还可以以其它方式被添加到应用。例如,应用管理系统100可以向开发商系统107提供购买模块235。然后,开发商系统140可以使购买模块235与应用组合以创建允许应用内购买的应用。
在一些实施方案中,具有包括CPU、I/O组件、存储和存储器的组件的服务器计算系统可以被用于执行应用管理系统100或应用管理系统100的特定组件。应用管理系统100的可执行代码模块可以被存储在服务器的存储器中和/或其它类型的非临时性计算机可读存储介质上。在一些实施方案中,应用管理系统100可以不同于上面所描述的进行配置。
V.另外的系统详情
如将明显的,应用管理系统100的许多变型和实施方式是可能的。例如,参考图1,一个或多个服务器120可包括网络服务器、应用服务器、数据库服务器、它们的组合等等。在一些实施方案中,网络110是可能由各不同方操作的、链接网络中可公开访问的网络,如互联网。在其它实施方案中,网络110可以是专用网络,诸如例如非特惠用户完全或部分不可访问的公司或大学网络。在其它实施方案中,网络110可以包括可访问和/或来自互联网的一个或多个专用网络。
在一些实施方案中,购买服务145根据客户的隐私权利监视内容项目购买、内容项目转移、内容许可证的使用情况、支付的价钱、购买频率、其它购买数据等。在一些实施方案中,这样的数据可以被匿名以保护客户的隐私。购买服务145可以数据挖掘所收集的数据来生成一个或多个报告、识别购买中的趋势、确定受欢迎的项目、确定用户喜好、生成对其它产品的推荐、识别交叉营销机遇、识别交叉销售或相关产品、基于内容项目的转售价格确定内容项目的价格信息(例如,市场价格、内容项目的价格范围或内容项目的类型、特定价格点处的需求等)或执行对数据的其它分析。
购买服务145可以向最终用户、开发商或者应用管理系统100的人员(如管理员)报告信息和统计数据。例如,购买服务145可跟踪内容提交历史、内容销售、提交内容的版本数据、购买数据等等。在一些这样的实施方案中,购买服务145可以向用户提供交互式反馈,包括例如购买的当前状态、下载直到完成的时间等。在一些实施方案中,购买服务145可以生成详细说明或总结购买数据的报告并通过电子邮件将报告传达给用户或通过网络服务提供对报告、使用情况统计或交互式反馈的访问。
在一些实施方案中,购买服务145可以验证内容项目的权限。购买服务145可与并入应用的DRM模块进行通信,并验证特定内容项目被授权在该应用上使用。这样的功能在允许跨越应用副本共享内容项目方面可以是有利的。例如,用户可以在不同的用户计算设备105上将预先购买的内容项目下载到应用的另一个副本,并且在该第二应用副本上的DRM模块可以验证用户已经购买内容项目。
在一个实施方案中,购买服务145利用安全令牌(或其它认证数据)进行对应用和/或内容项目的安全或验证访问。安全令牌可以被用来控制内容项目的使用或管理内容项目的传送。例如,安全令牌可以包括计算设备识别符或唯一地识别用户计算设备105的其它参数。安全令牌可以与特定内容项目相关联。安全令牌可以被创建为包括内容项目的校验和和有关购买内容项目的用户的信息。例如,安全令牌可以包括用户识别符和设备识别符,仅举两个。一些事件如内容项目到另一用户计算设备105的转移可促使购买服务145更新安全令牌。同样地,安全令牌也可以被用来控制应用的使用或管理传送。
安全令牌也可以包括指定可以使用与令牌相关联的内容项目的情况的参数。在一些实施方案中,安全令牌包括指定安全令牌多长时间有效的时间限制;在这样的实施方案中,购买服务145只有在时间限制尚未过期或者安全令牌的时间戳在时间限制内或在阈值时间范围内(例如,购买的30分钟内、1小时、1天等等)的情况下认证令牌。例如,在认证期间,购买服务145可以解密令牌并检查其时间限制或其它值。如果时间限制是过去的,则应用管理系统100可确定是否应发出新的安全令牌(例如,如果用户购买新的订阅)或者对内容项目的访问是否应该被阻止。在一些实施方案中,安全令牌是一次性使用令牌,并且购买服务145仅在令牌尚未被使用的情况下认证令牌。
在创建用于安全令牌的校验和中,与应用开发商和/或应用管理系统100相关联的数字证书可以被包括或适用于校验和。此外,在创建安全令牌中,证书可用于签署安全令牌;这提供了该安全令牌未被除创建安全令牌的实体之外的实体修改的保证水平。一般来说,数字证书识别用户或组织并提供用户或组织是他/她/它所要求的保证水平。这个保证水平与颁发证书的证书颁发机构所寄予的信任相关联。除其它可能的事情,证书通常包括与证书所有者的私有密钥的相关联的公共密钥和识别验证证书所有者的实体(例如,证书颁发机构)的颁发者。证书提供商系统或证书颁发机构的非限制性实例包括VeriSignTM、GoDaddyTM和ComodoTM。通常,这些证书提供商系统是证书颁发者用数字证书识别的。该证书可以被存储在数据存储170或能够存储证书的其它系统中。
响应于用户购买数字内容项目,应用管理系统100可以将数字内容项目以及安全令牌提供到用户计算设备105上操作的相关联的应用。相关联的应用上的DRM模块可以使用安全令牌以确定是否提供对用户计算设备105上的内容项目的访问。若丧失到内容项目的权限或在确定访问应当予以撤销后,购买服务145可使安全令牌到期以便阻止对内容项目的进一步访问或可使内容项目被禁用或删除,例如通过与DRM模块进行通信并发出命令以删除内容项目。
如上面所提到的,购买服务145还可以提供个性化服务。个性化服务的实例包括推荐服务、个性化搜索服务以及基于标签的服务。推荐服务可以使用各种算法(包括基于行为的算法)中的任何一种用于生成推荐。在一些实施方案中,此类基于行为的算法可以分析用户行为以生成项目对项目的映射并且可以使用这些映射来推荐与用户的项目选择活动有关的项目。在一些实施中,个性化搜索服务可以向用户推荐搜索查询。基于标签的服务可以为用户提供将文本标签应用到目录中的项目从而对项目分类的功能。其它个性化服务可以包括列表服务(其中用户创建项目的列表)、博客服务、个性化社交网络服务等等。
应用数据存储160可以存储应用数据,诸如与各自应用相关联的应用和内容项目。应用数据可包括图像、二进制文件、视频和/或其它电子数据,并且可以被分组为包括单个内容文件或流、压缩文件(例如,ZIP、RAR或其它压缩文件格式)或多个文件的内容包。通常,应用数据作为电子文件被存储和/或传输,但是应用数据也可以作为一个或多个数据流被传输。应用数据存储160也可以存储描述内容数据的内容元数据。在一些实施方案中,内容元数据包括内容文件标题、描述、关键字、内容价格、版本信息和/或诸如此类。内容元数据可以由目录服务140在其目录上提供并且与各自内容数据相关联。
在一些实施方案中,应用管理系统100为其用户将账户保持在用于用户数据的数据存储170中。应用管理系统可以为不同类型的用户(例如,开发商和客户)保持不同类型的账户或账户可能是同一类型。在一个实施方案中,开发商的账户可包括关于开发商的应用和内容项目的信息,如内容价格、内容描述、内容的当前版本或其它账户信息。这个数据可以至少部分地基于开发商所发送的内容提交来更新。例如,如果开发商想发布新版本的内容项目,则开发商可以注册新的内容项目。然后,应用管理系统可以更新与该内容项目相关联的信息。客户账户可包括有关内容购买、信用卡或付款信息、账户余额、送货方式、地址、用户计算设备信息(例如,唯一设备识别符、设备型号、设备规格、操作系统、IP地址、端口地址、网络地址)等等的信息。
应用管理系统100所提供的服务可以由应用访问,例如由具有插入的代码模块用于提供附加功能的应用访问。应用管理系统100可以用一个或多个物理服务器或计算设备诸如经由网络互连的多个计算机器来实施。因此,应用管理系统100中所描绘的组件中的每个可包括硬件和/或软件用于执行各种特征。在一个实施方案中,应用管理系统100包括或提供网站或网站集合。类似应用管理系统100,开发商系统107可以用硬件来实施并且可以包括任何类型的计算设备。开发商系统107可以但不一定由彼此不同并且与应用管理系统100的运营商不同的实体操作。
应用管理系统100的各个组件的处理可以被分配在多个机器、网络和其它计算资源上。应用管理系统100的各个组件也可以用在一个或多个虚拟机而不是用专用服务器实施。同样地,示出的数据存储库可以代表物理和/或逻辑数据存储,包括例如存储区域网络或其它分布式存储系统。此外,在一些实施方案中,所示组件之间的连接代表数据流的可能路径,而不是硬件之间的实际连接。虽然示出可能的连接的一些实例,但是在各种实施方案,所示组件的任一子集可以与组件中任何其它子集进行通信。
在一些实施方案中,应用管理系统100可以不同于图1中所示的进行配置。例如,通过示出的模块提供的各种功能可以被组合、重新排列、添加或删除。在一些实施方案中,附加的或不同的处理器或模块可以执行参照图1所示的示例实施方案描述的部分或全部功能。许多实施变化是可能的。
除了上述的那些,应用管理系统100、用户计算设备105和开发商系统107之间的其它类型的编程交互(另外或替代地)是可能的。例如,可以直接从用户接收(例如,通过交互式控制台或由应用管理系统100提供的其它GUI)或从用户计算设备105上的执行程序接收服务请求。在一些实施方案中,用户可以使用其它类型的界面和以其它方式与应用管理系统100进行交互。例如,应用管理系统100可以提供允许用户使用网络浏览器提交请求的网络服务界面(例如,网页或网页集)。也可以使用其它类型的界面。
前面章节中描述的过程、方法和算法中的每个可以用一个或多个计算机或计算机处理器执行的代码模块体现,并且通过一个或多个计算机或计算机处理器执行的代码模块来完全或部分自动化。代码模块可以被存储在任何类型的非临时性计算机可读介质或计算机存储设备上,如硬盘驱动器、固态存储器、光盘和/或类似物。过程和算法可被部分或全部地在电路中实施。所公开的过程和过程步骤的结果可以被持久或以其它方式存储在任何类型的非临时性计算机存储诸如例如易失性或非易失性存储中。
上面描述的各种特征和过程可以独立于彼此使用,或可以以各种方式进行组合。所有可能的组合和子组合都旨在落入本公开的范围之内。此外,在一些实施中,某些事件、方法或过程可被省略。本文描述的方法和过程也并不限于任何特定的顺序,并且与此有关的事件、块或状态可以用适当的其它顺序来执行。例如,所描述的任务或事件可以用不同于具体所公开的顺序执行,或多个块可以被组合成单个块或状态。示例块、任务或事件可能串行、并行或以某种其它方式进行。块、任务或事件可被添加到所公开的示例实施方案或从所公开的示例实施方案中移除。本文描述的示例系统和组件可以不同于所述的系统和组件来进行配置。例如,元件可以被添加到所公开的示例实施方案,从所公开的示例实施方案移除或相比所公开的示例实施方案重新布置。
除非特别声明否则,或使用时上下文中另有理解,本文所使用的条件性语言(除其它外,如“可以”、“可能”、“也许”、“可”、“例如”等等)一般旨在传达某些实施方案包括而其它实施方案不包括某些特征、元件和/或步骤。因此,这样的条件性语言一般不旨在暗示特征、元件和/或步骤为一个或多个实施方案所必需,或一个或多个实施方案一定包括用于在有或没有作者输入或提示的情况下决定这些特征、元件和/或步骤是否被包括或将要在任何特定的实施方案中执行的逻辑。术语“包括(comprising/including)”、“具有”等是同义的并且都以开放式的方式使用,并且不排除附加元件、特征、动作、操作等等。此外,术语“或”以其包容性意义使用(而不是以其排他性意义),使得在使用时,例如要连接元素列表,术语“或”意指列表中的一个、一些或所有元素。
条款
1.一种处理开发商提交的应用的计算机实施的方法,该过程包括:
通过与应用提交者的账户相关联的网络接收应用的应用提交者的提交,所述应用缺少用于最终用户从电子目录购买内容项目的功能;
通过添加购买模块修改该应用,购买模块为用户提供在该应用内从电子目录购买内容项目的功能,其中修改该应用包括反编译该应用的至少一部分以创建源代码和修改源代码以添加购买模块;以及
在应用被修改添加购买模块时,在电子目录中使该应用对于最终用户可用;
由包括一个或多个计算设备的计算系统执行所述过程。
2.如条款1所述的方法,该过程还包括使数字版权管理(DRM)模块与该应用组合。
3.如条款2所述的方法,其中DRM模块被配置以响应于确定已经对该应用做出未经授权的改变而停止经修改的应用的执行。
4.如条款1所述的方法,该过程还包括使家长控制模块与该应用组合。
5.如条款4所述的方法,其中家长控制模块被配置以呈现要求输入访问密钥的访问控制界面。
6.如条款5所述的方法,其中家长控制模块被配置以阻止在电子目录上的购买,除非访问密钥被提供在访问控制界面上。
7.如条款1所述的方法,其中所述修改该应用还包括识别与该应用相关联的一个或多个入口点。
8.如条款7所述的方法,其中所述修改该应用还包括将购买代码插入该应用,购买代码被配置以关于一个或多个入口点的执行而执行。
9.如条款7所述的方法,其中一个或多个入口点包括被配置以执行以下功能中的一个或多个的一个或多个例程:启动该应用、终止该应用、暂停该应用以及从暂停状态恢复该应用。
10.如条款1所述的方法,其中电子目录包括可由移动设备通过网络访问的应用商店。
11.一种用于处理提交的应用的系统,该系统包括:包括计算机硬件的应用分配系统,该应用分配系统被配置以:
通过与应用提交者的账户相关联的网络接收应用的应用提交者的提交,所述应用缺少用于使最终用户能够从电子目录购买内容项目和控制对该电子目录的访问中的至少一个的功能;以及
通过添加(1)购买模块和(2)家长控制模块中的至少一个来修改该应用,购买模块提供使用户能够在该应用内从电子目录购买内容项目的功能,以及家长控制模块使用户能够控制对电子目录的访问,其中修改该应用包括反编译该应用的至少一部分以创建源代码和修改源代码以添加购买模块和家长控制模块中的至少一个。
12.如条款11所述的系统,其中该应用分配系统还被配置在该应用被修改添加购买模块和家长控制模块中的至少一个时,在电子目录中使该应用对于最终用户可用。
13.如条款11所述的系统,其中购买模块被配置以认证被下载到最终用户设备的内容项目。
14.如条款11所述的系统,其中购买模块包括被配置以提供对用于该应用的内容项目列表的访问的目录界面。
15.如条款14所述的系统,其中购买模块与提供内容项目列表的目录服务进行通信。
16.如条款11所述的系统,购买模块被配置以与购买服务进行通信,购买服务被配置以处理对与该应用相关联的内容项目的支付。
17.如条款16所述的系统,其中购买服务被配置以对购买征收和分配税款。
18.如条款16所述的系统,其中购买服务被配置以处理对与该应用相关联的内容项目的支付。
19.一种非临时性物理计算机存储,其具有在其上存储的根据过程生成的可执行应用,该过程包括:
通过与应用提交者账户相关联的网络从应用提交者接收应用的提交,所述应用缺少用于访问应用内的附加内容项目的功能;以及
通过使提供附加功能的功能模块与应用组合来修改所接收到的应用,所述功能模块添加用于在该应用内访问附加内容项目的功能。
20.如条款19所述的非临时性物理计算机存储,该过程还包括在应用被修改添加功能模块时,在电子目录中使该应用对于最终用户可用。
21.如条款19所述的非临时性物理计算机存储,其中所述添加用于访问由所述功能模块提供的内容项目的功能包括控制对内容项目的未授权访问。
22.如条款19所述的非临时性物理计算机存储,其中所述添加用于访问由所述功能模块提供的内容项目的功能包括允许控制对列出用于应用的多个内容项目的电子目录的访问。
23.如条款19所述的非临时性物理计算机存储,其中所述添加用于访问由所述功能模块提供的内容项目的功能包括允许从电子目录购买内容项目。
虽然某些示例实施方案已经进行了描述,但是这些实施方案仅通过举例的方式进行呈现,并且不旨在限制本文所公开的本发明的范围。因此,前述描述中的内容不旨在暗示任何特定特征、特性、步骤、模块或块是必需的或必不可少的,事实上,本文所描述的新颖方法和系统可以用各种其它形式体现,此外,可以进行本文所描述的方法和系统的形式中的各种省略、替代和改变而不脱离本文所公开的本发明的精神。
Claims (14)
1.一种处理开发商提交的应用的计算机实施的方法,所述过程包括:
通过与应用提交者的账户相关联的网络接收应用的所述应用提交者的提交,所述应用缺少用于最终用户从电子目录购买内容项目的功能;
通过添加购买模块修改所述应用,所述购买模块为用户提供在所述应用内从所述电子目录购买内容项目的功能,其中修改所述应用包括反编译所述应用的至少一部分以创建源代码和修改所述源代码以添加所述购买模块;以及
在所述应用被修改以添加所述购买模块时,在所述电子目录中使所述应用对于最终用户可用;
由包括一个或多个计算设备的计算系统执行所述过程。
2.如权利要求1所述的方法,所述过程还包括使数字版权管理(DRM)模块与所述应用组合,其中所述DRM模块被配置以响应于确定已经对所述应用做出未经授权的改变而停止所述经修改的应用的执行。
3.如权利要求1所述的方法,所述过程还包括使家长控制模块与所述应用组合。
4.如权利要求3所述的方法,其中所述家长控制模块被配置以呈现要求输入访问密钥的访问控制界面。
5.如权利要求4所述的方法,其中所述家长控制模块被配置以阻止在所述电子目录上的购买,除非所述访问密钥被提供在所述访问控制界面上。
6.如权利要求1所述的方法,其中所述修改所述应用还包括识别与所述应用相关联的一个或多个入口点。
7.如权利要求6所述的方法,其中所述修改所述应用还包括将购买代码插入所述应用,所述购买代码被配置以关于所述一个或多个入口点的执行而执行。
8.如权利要求6所述的方法,其中所述一个或多个入口点包括被配置以执行以下功能中的一个或多个的一个或多个例程:启动所述应用、终止所述应用、暂停所述应用以及从暂停状态恢复所述应用。
9.一种用于处理提交的应用的系统,所述系统包括:应用分配系统包括计算机硬件,所述应用分配系统被配置以:
通过与应用提交者的账户相关联的网络接收应用的所述应用提交者的提交,所述应用缺少用于使最终用户能够从电子目录购买内容项目和控制对所述电子目录的访问中的至少一个的功能;以及
通过添加(1)购买模块和(2)家长控制模块中的至少一个来修改所述应用,所述购买模块提供使用户能够在所述应用内从所述电子目录购买内容项目的功能,以及所述家长控制模块使用户能够控制对所述电子目录的访问,其中修改所述应用包括反编译所述应用的至少一部分以创建源代码和修改所述源代码以添加所述购买模块和所述家长控制模块中的至少一个。
10.如权利要求9所述的系统,其中所述应用分配系统还被配置在所述应用被修改以添加所述购买模块和所述家长控制模块中的至少一个时,在所述电子目录中使所述应用对于最终用户可用。
11.如权利要求9所述的系统,其中所述购买模块被配置以认证被下载到所述最终用户设备的内容项目。
12.如权利要求9所述的系统,其中所述购买模块包括被配置以提供对用于所述应用的内容项目列表的访问的目录界面。
13.如权利要求9所述的系统,其中所述购买模块被配置以与购买服务进行通信,所述购买服务被配置以处理对与所述应用相关联的内容项目的支付。
14.如权利要求13所述的系统,其中所述购买服务被配置以处理对与所述应用相关联的内容项目的支付。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/170,074 | 2011-06-27 | ||
US13/170,074 US8527361B2 (en) | 2011-06-27 | 2011-06-27 | Service for adding in-application shopping functionality to applications |
PCT/US2012/044073 WO2013003292A1 (en) | 2011-06-27 | 2012-06-25 | Service for adding functionality to applications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103649983A true CN103649983A (zh) | 2014-03-19 |
Family
ID=47362732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280032019.3A Pending CN103649983A (zh) | 2011-06-27 | 2012-06-25 | 用于将功能添加到应用的服务 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8527361B2 (zh) |
EP (1) | EP2724229A4 (zh) |
JP (1) | JP5778865B2 (zh) |
CN (1) | CN103649983A (zh) |
CA (1) | CA2840531C (zh) |
WO (1) | WO2013003292A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375843A (zh) * | 2014-12-11 | 2015-02-25 | 浪潮电子信息产业股份有限公司 | 一种基于权限控制自动生成页面的方法 |
CN104661091A (zh) * | 2015-02-12 | 2015-05-27 | 深圳创维-Rgb电子有限公司 | 外挂通道的添加方法及装置 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719586B1 (en) * | 2011-03-09 | 2014-05-06 | Amazon Technologies, Inc. | Digital rights management for applications |
US9443258B2 (en) * | 2011-08-26 | 2016-09-13 | Apple Inc. | Mass ingestion of content related metadata to an online content portal |
US9081856B1 (en) * | 2011-09-15 | 2015-07-14 | Amazon Technologies, Inc. | Pre-fetching of video resources for a network page |
US20130110661A1 (en) * | 2011-10-28 | 2013-05-02 | Microsoft Corporation | Application store delivered platform components |
CN103197951B (zh) * | 2012-01-04 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 一种搭建应用运行环境的方法及装置 |
EP2817697A4 (en) * | 2012-02-21 | 2015-10-14 | Ensighten Inc | GRAPHIC SUPERPOSITION ASSOCIATED WITH DATA EXPLORATION AND ANALYTICS |
US10586260B2 (en) * | 2012-07-19 | 2020-03-10 | Apple Inc. | Securing in-app purchases |
US9053307B1 (en) | 2012-07-23 | 2015-06-09 | Amazon Technologies, Inc. | Behavior based identity system |
US8863162B2 (en) | 2012-12-03 | 2014-10-14 | At&T Intellectual Property I, L.P. | System and method of content and merchandise recommendation |
US20140173759A1 (en) * | 2012-12-17 | 2014-06-19 | Microsoft Corporation | Rights-managed code |
KR20140105343A (ko) * | 2013-02-22 | 2014-09-01 | 삼성전자주식회사 | 디바이스 및 디바이스에서 복수의 모드를 이용한 데이터의 보안 방법 |
US10269029B1 (en) * | 2013-06-25 | 2019-04-23 | Amazon Technologies, Inc. | Application monetization based on application and lifestyle fingerprinting |
TWI499932B (zh) | 2013-07-17 | 2015-09-11 | Ind Tech Res Inst | 應用程式管理方法、應用程式管理系統與使用者裝置 |
KR101574156B1 (ko) * | 2013-09-03 | 2015-12-07 | 엔에이치엔엔터테인먼트 주식회사 | 결제 서비스 방법 및 시스템 |
US20220012346A1 (en) * | 2013-09-13 | 2022-01-13 | Vmware, Inc. | Risk assessment for managed client devices |
US10255351B2 (en) | 2014-03-13 | 2019-04-09 | Microsoft Technology Licensing, Llc | Multi-faceted social network system for use with plural applications |
CN105224833B (zh) * | 2014-06-30 | 2018-03-30 | 北京金山安全软件有限公司 | 利用数字水印识别应用程序是否是正版的方法及系统 |
US9930308B2 (en) * | 2014-07-26 | 2018-03-27 | Clipchamp Ip Pty Ltd | Platform-agnostic video player for mobile computing devices and desktop computers |
US10846772B2 (en) * | 2014-08-08 | 2020-11-24 | Microsoft Technology Licensing, Llc | Item maps for app store apps |
CN105468614B (zh) * | 2014-09-01 | 2021-07-02 | 方正国际软件(北京)有限公司 | 一种编目的方法及装置 |
US9985992B1 (en) * | 2014-09-19 | 2018-05-29 | Jpmorgan Chase Bank, N.A. | Entitlement system and method |
CN104318426A (zh) * | 2014-10-22 | 2015-01-28 | 中国联合网络通信集团有限公司 | 应用内支付的应用软件使用控制方法和装置 |
WO2016068482A1 (ko) * | 2014-10-29 | 2016-05-06 | 한국생산기술연구원 | 3차원 데이터 기반 제조 기업 지원 서비스 제작 플랫폼 구조 |
US11030385B2 (en) | 2015-03-30 | 2021-06-08 | Microsoft Technology Licensing, Llc | Enhanced preview technology for application add-ins |
EP3311266A4 (en) | 2015-07-17 | 2018-09-12 | Enhance, Inc. | A method and system for modifying machine instructions within compiled software |
US10769715B1 (en) * | 2015-09-04 | 2020-09-08 | Etalify Inc. | System and process for in-app sale of physical products |
US10453042B2 (en) | 2015-11-11 | 2019-10-22 | Quisk, Inc. | Token use for transactions in a payment system |
KR101854975B1 (ko) * | 2016-02-18 | 2018-05-04 | 라인 가부시키가이샤 | 패키지 파일에 대한 기능 확장 방법 및 시스템 |
US10657239B2 (en) * | 2017-05-25 | 2020-05-19 | Oracle International Corporation | Limiting access to application features in cloud applications |
KR101983635B1 (ko) * | 2017-09-22 | 2019-05-29 | 정우주 | 개인방송 컨텐츠 추천방법 |
US20190122316A1 (en) * | 2017-10-20 | 2019-04-25 | Airbnb, Inc. | Systems and methods for searching property listings |
US10417232B2 (en) | 2017-12-22 | 2019-09-17 | Microsoft Technology Licensing, Llc | Associating hardware to store applications |
JP6408180B1 (ja) * | 2018-03-20 | 2018-10-17 | ヤフー株式会社 | 端末制御プログラム、端末装置および端末制御方法 |
US12010394B2 (en) | 2021-11-10 | 2024-06-11 | Synamedia Limited | Secure content distribution and trusted recording of content consumption |
US20230209116A1 (en) * | 2021-12-29 | 2023-06-29 | Block, Inc. | Integration of platforms for multi-platform content access |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080092107A1 (en) * | 2006-09-27 | 2008-04-17 | Mcwilliam Joshua | Software Development and Sales Life-Cycle Services |
US20100067705A1 (en) * | 2005-10-18 | 2010-03-18 | Intertrust Technologies Corp. | Digital rights management engine systems and methods |
US20100146432A1 (en) * | 2005-09-06 | 2010-06-10 | Robbin Jeffrey L | Parental Control Graphical User Interface |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5890161A (en) * | 1997-10-28 | 1999-03-30 | Microsoft Corporation | Automatic transaction processing of component-based server applications |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
US7162543B2 (en) * | 2001-06-06 | 2007-01-09 | Sap Ag | Process for synchronizing data between remotely located devices and a central computer system |
US20040049412A1 (en) * | 2002-09-10 | 2004-03-11 | Johnson Jeffrey P. | Electronic commodities and automated ticket manager |
US20060047758A1 (en) * | 2004-08-26 | 2006-03-02 | Vivek Sharma | Extending and optimizing electronic messaging rules |
US8990215B1 (en) * | 2007-05-21 | 2015-03-24 | Amazon Technologies, Inc. | Obtaining and verifying search indices |
US20090037287A1 (en) * | 2007-07-31 | 2009-02-05 | Ahmad Baitalmal | Software Marketplace and Distribution System |
US9135778B2 (en) * | 2007-11-09 | 2015-09-15 | Bally Gaming, Inc. | License management system |
US8244593B2 (en) * | 2007-11-20 | 2012-08-14 | Pure Verticals, Inc. | Method and system for monetizing content |
US9185554B2 (en) * | 2008-02-15 | 2015-11-10 | Appcentral, Inc. | System and methods to store, retrieve, manage, augment and monitor applications on appliances |
US8606656B1 (en) * | 2008-03-28 | 2013-12-10 | Amazon Technologies, Inc. | Facilitating access to restricted functionality |
US8340635B2 (en) * | 2009-03-16 | 2012-12-25 | Apple Inc. | Capability model for mobile devices |
US20100299219A1 (en) * | 2009-05-25 | 2010-11-25 | Cortes Ricardo D | Configuration and Management of Add-ons to Digital Application Programs for Network-Based Distribution |
US10089092B2 (en) * | 2010-01-27 | 2018-10-02 | Embarcadero Technologies, Inc. | Creating a software product from a software application |
US8904343B2 (en) * | 2009-12-21 | 2014-12-02 | Sap Se | Adding services to application platform via extension |
US20120089485A1 (en) * | 2010-01-27 | 2012-04-12 | Williams Wayne D | Product browser for software products |
US20120130850A1 (en) * | 2010-11-19 | 2012-05-24 | Microsoft Corporation | Techniques and system for revenue sharing in an online storefront |
US9064276B2 (en) * | 2011-05-24 | 2015-06-23 | Amazon Technologies, Inc. | Service for managing digital content resales |
US8612933B1 (en) * | 2011-06-24 | 2013-12-17 | Amazon Technologies, Inc. | Cross-platform mobile application development |
-
2011
- 2011-06-27 US US13/170,074 patent/US8527361B2/en not_active Expired - Fee Related
-
2012
- 2012-06-25 CN CN201280032019.3A patent/CN103649983A/zh active Pending
- 2012-06-25 EP EP12803831.2A patent/EP2724229A4/en not_active Withdrawn
- 2012-06-25 WO PCT/US2012/044073 patent/WO2013003292A1/en active Application Filing
- 2012-06-25 CA CA2840531A patent/CA2840531C/en not_active Expired - Fee Related
- 2012-06-25 JP JP2014518894A patent/JP5778865B2/ja not_active Expired - Fee Related
-
2013
- 2013-09-03 US US14/016,540 patent/US9349141B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100146432A1 (en) * | 2005-09-06 | 2010-06-10 | Robbin Jeffrey L | Parental Control Graphical User Interface |
US20100067705A1 (en) * | 2005-10-18 | 2010-03-18 | Intertrust Technologies Corp. | Digital rights management engine systems and methods |
US20080092107A1 (en) * | 2006-09-27 | 2008-04-17 | Mcwilliam Joshua | Software Development and Sales Life-Cycle Services |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375843A (zh) * | 2014-12-11 | 2015-02-25 | 浪潮电子信息产业股份有限公司 | 一种基于权限控制自动生成页面的方法 |
CN104661091A (zh) * | 2015-02-12 | 2015-05-27 | 深圳创维-Rgb电子有限公司 | 外挂通道的添加方法及装置 |
CN104661091B (zh) * | 2015-02-12 | 2017-12-08 | 深圳创维-Rgb电子有限公司 | 外挂通道的添加方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5778865B2 (ja) | 2015-09-16 |
JP2014528108A (ja) | 2014-10-23 |
CA2840531C (en) | 2016-11-01 |
US9349141B2 (en) | 2016-05-24 |
CA2840531A1 (en) | 2013-01-03 |
US20120330786A1 (en) | 2012-12-27 |
US8527361B2 (en) | 2013-09-03 |
EP2724229A1 (en) | 2014-04-30 |
WO2013003292A1 (en) | 2013-01-03 |
EP2724229A4 (en) | 2015-04-29 |
US20140006214A1 (en) | 2014-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103649983A (zh) | 用于将功能添加到应用的服务 | |
CN108804881B (zh) | 受控应用分发 | |
US20100299761A1 (en) | System and method for sending electronic data to inmates | |
KR100796583B1 (ko) | 라이센스 관리를 위한 시스템, 방법 및 기록 매체 | |
CN103562947A (zh) | 用于管理数字内容转售的服务 | |
US11687661B2 (en) | Compartments | |
KR101592361B1 (ko) | 애플리케이션내 라이센싱 장치 및 방법 | |
CN104081405A (zh) | 具有多设备安全应用程序集成的内容提供器 | |
KR20130084671A (ko) | 애플리케이션 사용 정책 시행 | |
CN102057354A (zh) | 获取对应用程序的更新的技术 | |
KR20100107522A (ko) | 광고 후원을 이용하는 프리미엄 컨텐츠의 분배 | |
US10516667B1 (en) | Hidden compartments | |
MX2012009022A (es) | Estructura de concesion de licencias de funciones genericas. | |
US20230100422A1 (en) | Systems and Methods for Transaction Management in NFT-Directed Environments | |
CN108140074B (zh) | 管理应用特定的特征权限 | |
US20080312943A1 (en) | Method And System For Data Product License-Modification Coupons | |
US20230129900A1 (en) | Systems and Methods for Protecting Against Token-Based Malicious Scripts | |
Fairfield | Property as the law of virtual things | |
CN1759363A (zh) | 数字内容的分发和权利管理 | |
US20230353570A1 (en) | Methods and systems for access control in a computing system | |
US20200167494A1 (en) | Binder and Literature Exchange Network | |
JP5767428B1 (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
KR102634635B1 (ko) | Nft를 활용한 사용자 서비스 제공 장치, 서버 및 방법 | |
US20240013199A1 (en) | Methods and systems for pre-validating token-based access control | |
US20240020683A1 (en) | Methods and systems for multiple gating verifications based on a blockchain wallet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140319 |
|
WD01 | Invention patent application deemed withdrawn after publication |