CN103339602A - 分发软件的方法 - Google Patents

分发软件的方法 Download PDF

Info

Publication number
CN103339602A
CN103339602A CN2011800660218A CN201180066021A CN103339602A CN 103339602 A CN103339602 A CN 103339602A CN 2011800660218 A CN2011800660218 A CN 2011800660218A CN 201180066021 A CN201180066021 A CN 201180066021A CN 103339602 A CN103339602 A CN 103339602A
Authority
CN
China
Prior art keywords
state
application
subscriber equipment
data
software
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
Application number
CN2011800660218A
Other languages
English (en)
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.)
Antix Labs Ltd
Original Assignee
Antix Labs Ltd
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 Antix Labs Ltd filed Critical Antix Labs Ltd
Publication of CN103339602A publication Critical patent/CN103339602A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/209Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/403Connection between platform and handheld device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/404Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network characterized by a local network connection
    • A63F2300/405Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network characterized by a local network connection being a wireless ad hoc network, e.g. Bluetooth, Wi-Fi, Pico net
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/63Methods for processing data by generating or executing the game program for controlling the execution of the game in time
    • A63F2300/636Methods for processing data by generating or executing the game program for controlling the execution of the game in time involving process of starting or resuming a game

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种用于从一个终端用户设备向另一终端用户设备传送包括应用需要的任何库和保存的应用状态的整个二进制可移植计算机软件应用的***。计算机软件应用的二进制可移植性质允许这跨越包括不同CPU类型和操作***的相异类型的设备发生。这实现了使用传统***通常不可能的使用情况,比如取得一个设备上的进行中的保存的游戏、向第二设备传送游戏、库和游戏状态、然后继续在第二设备上从相同点玩游戏,所有都无需具有与服务器的连接来下载用于应用的必需库或者安装包。这允许应用及其状态的离线分发,减少了终端用户的成本、减少了网络负荷并且加速应用的传送。

Description

分发软件的方法
1.技术领域
本发明涉及一种分发软件的方法和承载这样的软件的计算机可读介质。本发明具体地涉及软件然而并非专门涉及软件,该软件比如被设计为在便携设备、比如移动电话的用户之间交换的计算机游戏。
2.导言
许多通用计算机***允许用户人工复制应用状态数据——例如文字处理器文档等。游戏控制台允许用户将保存的游戏状态复制到外部介质上也很普遍(例如WII和GameCube控制台允许这一点)。
一些游戏平台允许用户对其他玩家传送某些游戏状态信息比如赛车记录,从而接收玩家可以与记录的游戏有效地对抗竞赛并且受到挑战以试图胜过特定分数或者时间。高分数是通常在一群玩家之间共享的游戏状态项目的另一个例子。
用于移动设备的J2ME Java应用环境在一些情况下具有用于从一个用户向另一用户直接发送应用的设施。
根据本申请,提供一种分发二进制可移植软件的方法,该方法包括:
(a)在第一用户设备上运行软件应用并且存储定义软件应用的状态的应用状态数据;
(b)从第二用户设备接收为了运行软件应用而需要的且尚未安装的所需软件部件的细节或者需要更新的所需软件部件的细节;
(c)生成用于向第二用户设备传送的、包括应用状态数据和所需软件部件的包;
(d)向第二用户设备传送包;
(e)确定是否已经在第二用户设备处保存所述状态;并且
(f)向第二用户设备的用户提供用于从所述状态运行软件应用的选项。
本发明还扩展至一种计算机可读介质,该计算机可读介质存储用于在数字计算机(比如移动电话)上实施权利要求1的方法的程序代码。
可以用许多方式将本发明付诸实践,并且现在参照附图通过示例描述若干具体实施例如下:
图1-在传送之间未修改的数据。
图2-在传送之间在始发设备上修改的数据。
图3-在传送之间在目标设备上修改的数据。
图4-在传送之间在两个设备上修改的数据。
图5-传送应用以及所有附属和选择的应用状态。
图6-传送应用及其附属的子集。
图7-仅传送应用状态。
图8-播送(beaming)包的低成本离线传送。
3.说明
3.1背景
通常从服务器下载或者从物理介质安装软件应用。如果被下载,则它们经常以安装包到达,该安装包在应用被安装之后即被丢弃。
在许多情况下,应用具有为了让它工作而需要的附属(其它软件)。这些通常由终端用户人工安装或者无条件地包含于应用的安装包中。
仅安装应用及其库不足以从一个设备向另一设备传送应用的状态。应用一般向持久存储装置保存数据以允许信息跨越应用的不同调用而持续。
这一数据在本专利申请中被描述为“应用状态”并且包括项目比如:
●设置
●文档
●进行中的游戏的当前状态
●完成的游戏的记录
●用户生成的内容、比如游戏角色或者水平
以及许多其它项目。
传统***未提供一种用于取得一个设备上安装的应用(包括任何必需附属和应用状态)并将其传送到另一设备的有管理的方式。
本专利申请描述了一种用于跨越相异设备类型针对二进制可移植软件应用进行上述操作的新颖***,从而不传送应用的已在目标设备上存在的部分,因此减少了传送的数据的大小并且因此减少了花费的时间和成本。
3.2益处
这一方式为用户提供了一些重要的优点:
●用户很容易在相异类型的设备之间传送应用及其状态,这在传统上是困难的
●由于传送是(或者至少可以是)直接从一个终端用户设备到另一终端用户设备,所以如果用户在近邻则可以跨越无成本网络、比如蓝牙完成这一点,从而大量减少或者完全消除通过移动电话网络执行这样的传送的带宽成本
●即使在无移动设备网络覆盖时通过短程零基础结构网络、比如蓝牙或者自组织Wi-Fi也可以传送应用。
●通过分析附属并且仅传送应用及其附属在目标设备上需要且尚不存在的那些部分来减少传送应用所花费的时间。
●短程本地传送在许多情况下、特别是在发展中国家通常比移动电话网络更快。这也减少了传送应用所花费的时间。
该方法优选地包括有管理的“版本控制”,该版本控制在接收新状态数据时自动通知应用,并且跟踪它是否比已经在设备上的任何对应状态数据项目更旧、更新或者相同。
应用可以与应用状态数据(连同任何所需的库)一起以这样的方式打包,使得可以将作为结果得到的包作为单位发送给另一设备,即使先前未在接收设备上安装对应应用,该接收设备仍然可以允许用户查看/修改应用状态。
这允许未普遍可用的使用情况,比如将(如上所述)游戏挑战连同对应游戏一起发送,从而接收者即使他们尚未安装游戏、仍然可以胜过发送者的分数。这可以用作一种用于鼓励接收者购买游戏的买前使用形式。
对移动电话网络运营商也有益处。移动电话网络即使在网络覆盖良好的发达国家仍然与智能设备的增加的带宽要求抗争。
在发展中国家,通过移动电话网络的网络覆盖和带宽可用性会使得难以在合理时间内传送甚至适度大小的应用。传送大型应用、比如高级3D游戏需要如此之久以至于使它无人问津。
这里描述的***允许网络运营商提供增强的用户体验,而无需对网络基础结构进行高成本的改进。
其它使用领域包括分布式计算机***、TV、手持和固定游戏控制台等。
3.3必要条件
这一优选实施例是在本申请人的公开的PCT申请WO/2010/145886中描述的***的扩展,并且使用与在该文献中的描述相同的二进制可移植软件分发格式、打包格式、附属机制等。假设读者熟悉这一公开。在本文中,它将被称为“在先公开”。通过引用结合该在先公开。
3.3.1WO/2010/145886的相关部分的概括
●二进制可移植软件分发格式采用应用程序的中间编译器表示的形式,其中在确切CPU架构已知时在目标设备上完成编译的最终步骤(代码生成、寄存器分配等)。
●打包格式是“JAR”文件格式的扩展,该扩展称为“ATX”文件格式。JAR格式的扩展仅是对一些定制清单属性的定义。
●ATX文件可以具有两个模式:包含应用代码、资产或者元数据的文件(称为ATX部件)以及包含其它ATX文件的文件(称为容器ATX文件)。
●使用Java“jarsigner”工具所使用的标准加密算法对ATX部件数字签名。这用来保证ATX文件的内容的真实性。
●未对容器ATX文件签名,但是在其内包含的ATX文件通常被签名,因此无论如何可以验证内容的真实性。
●ATX部件在其清单内具有如下属性,这些属性定义关于部件的各种重要信息,比如唯一部件名称(和关联的版本号)、部件实施的接口的声明(具有关联版本号)以及对其它部件或者接口的依赖,各自都指定用于该部件名称或者接口的有效版本号范围。
●每个设备具有唯一设备标识符。这在在先公开中用来通过将相关设备唯一ID编码成权利规则集来将权利部件锁定到特定设备。
3.4创建播送/传送包
为了从一个终端用户设备向另一终端用户设备传送(或者“播送”)应用,必须向目标设备传送许多数据。在本文中详细描述的发明中,这通过选择相关的许多数据并且将它们打包成称为“播送包”的单个容器ATX文件来完成。
将在这一个包中包括的数据包括:
●代表要播送的应用程序的ATX文件,如果其未存在于目标设备上。
●未存在于目标设备上的任何软件库。
●如果合适,则包括“权利部件”,该权利部件包含指示可以从何处购买应用的元数据(在在先公开中具体描述了权利部件)。
●用户选择的将向目标设备播送的任何应用状态。例如,用户可以具有多个进行中的保存的游戏、但是仅希望播送其中之一。可替代地,用户可能希望仅播送它们的应用设置、但是不播送任何其它保存的应用状态。
在播送包内的数据因此根据与目标设备交换的数据并且在用户输入时变化。
有时可能不能与目标设备直接通信。这会出现例如是因为设备的网络连接穿过NAT防火墙、因此不能容易接收进入的连接,并且设备没有足够接近以使用短程技术比如蓝牙、自组织Wi-Fi或者USB线缆。在这样的情况下,不能确定为了运行应用所需的哪些软件已经安装于目标设备上,因此作为依靠,***必须包括应用所需要的所有应用软件和库或者向用户询问他们希望发送哪些部分。注意,即使在设备之间无直接连接的这一情况下,应用的传送仍然可能通过间接通信机制比如电子邮件来进行。
然而,如果两个设备可以直接通信,则更佳方式是可能的:它们可以通信并发现需要传送应用和库软件的哪些部分。
3.4.1与目标设备协商
假如源和目标设备可以通信,它们有可能交换关于安装什么应用、库、资产和元数据部件的信息。
源设备以它知道需要存在于目标设备上的部件集开始。这将通常包括主要应用部件本身、如果权利部件可用则加上权利部件。
给定这一部件列表,源设备可以询问每个部件是否安装于目标设备上(使用唯一的部件名称和版本号作为标识符对)。如果部件已经安装于目标设备上,则从列表去除它并且不对其给予进一步考虑。
可替代地,可以在列表中保持部件,并且如果接收设备报告它已经安装的部件的版本比要发送的版本更旧(在部件清单文件内有版本信息),则最终向接收设备发送该部件。
对于没有安装于目标设备上的每个部件,向要考虑的部件列表添加该部件的附属,且该过程继续。以这一方式,枚举并检查原始部件集的整个附属集。
应当注意,如在在先公开中描述的附属可以由具有匹配的部件名称的部件或者由实施匹配的接口名称的部件来实现。这意味着附属在目标设备上的实施可以不同于在源设备上的实施。这可以是因为在实施所需接口的目标设备上有来自不同供应商的可安装部件,或者可以是因为目标设备上的软件环境包含接口的内置实施。
用于硬件、比如OpenGL-ES的设备驱动是这一点的常见示例——每个硬件制造商通常使用底层硬件能力来提供它们自己的对OpenGL-ES软件的实施。在这一点不存在时,有可能的是接口的软件实施可能存在(可以存在有来自不同销售商的多个不同软件实施)。
对于播送的应用,这是不相关的。接口指定必须实施的行为,因此只要应用需要的接口存在于目标设备上,无论实施如何都满足要求。
通过遵循这里描述的过程,源和目标设备可以协商为了应用在目标设备上工作而需要传送的部件集。
也有可能的是比如在应用需要仅能在具有特定硬件(例如输入设备、比如加速度计)的设备上满足的接口时,可以有在目标设备上不能满足的附属。可以在这一协商阶段检测这一点,并且可以用向用户指示失败原因的适当消息中止播送过程。
3.4.2应用状态数据
应用可以保存多个单独的应用状态数据项目,并且用户可能希望选择要向接收设备传送的该数据的子集;这一子集经常是单个应用状态数据项目、比如进行中的保存的游戏。
在这里描述的***中,无需应用本身与用户交互以允许他们选择他们希望在播送包中包括哪些应用状态数据的项目。取而代之,应用向软件环境提供描述数据的一些元数据,该元数据以后被软件环境用来允许用户选择应用状态数据。
3.4.2.1应用状态元数据
应用指定的元数据项目
●用户可见名称:向用户提供要传送的不同应用状态数据项目的选择需要用于每个项目的用户友好名称。数据文件的文件名不适合于这一点,因为许多操作***对文件名中可用的字符施加约束,包括对长度、仅ASCII字符、缺乏情况敏感性、缺乏支持文件名中的空白等的约束。作为结果,有必要存储应当用来与文件名分离地向用户标识数据的名称。
●图标:代表保存的数据的图形。例如,来自进行中的保存的游戏的屏幕截图或者应用状态数据代表的字符或者水平的呈现。
●类型:指定应用状态项目代表什么数据类别的值。这允许将可用应用状态项目归类成类别,从而提供用于用户在多个应用状态项目之间选择的附加信息。
应用通过调用API函数以“注册”应用状态数据作为应当可用于播送的项目来提供这些元数据。也提供将与这些元数据关联的应用状态数据的文件名。应用可以以后更新这些元数据(例如,如果名称包含时间戳,则这可能无论何时更新数据都需要被更新)。
应用可以调用对应函数以“撤消注册”应用状态项目,从而使它不再可用于播送(并且丢弃任何存储的元数据)。
除了应用明确地提供的元数据之外,软件环境自动记录一些附加元数据:
●项目ID:在第一次注册应用状态项目时分配的随机生成的标识符。应用可能向遵循某一模式比如游戏水平的名称、时间戳等的应用状态项目分配名称。这使得很有可能的是如果在多个设备上使用应用则可能有命名冲突,其中相同名称用来代表实际上不相同的应用状态项目。
在项目的元数据中记录随机标识符使得有可能用合理程度的确信度确定两个应用状态项目是否实际上代表相同的底层数据或者它们仅恰好具有相同名称。
随机生成的标识符以跨越对状态数据本身的修改并且也跨越在设备之间的传送而持续的方式唯一地标识特定应用状态项目(即区别它与其它应用状态项目)。***用来识别两个应用状态项目“相同”的机制正是用于比较它们以发现哪个更新或者是否需要融合的前提。
●版本信息:一旦应用状态数据开始在设备之间被传送,就存在有数据的多个副本,每个副本可以被独立地更新。这引起需要标识数据的哪个版本更新、冲突何时出现等的附加问题。
这通过记录版本跟踪元数据来完成。在下一节中描述这一点。
●应用名称:注册应用状态项目的应用的名称。
●应用附属信息:来自应用部件的清单的“AGC-State-AppDependency”属性。将这作为附属编码到应用状态ATX文件(见下文)的清单中。应用应当实施对应接口。这允许应用作者具有对如下改变的兼容性的控制,这些改变是针对应用状态文件的数据格式的改变。细节见“应用状态数据格式改变”。
这一信息标识与状态项目对应的应用。它通常由应用的作者分配。
3.4.2.2应用状态版本跟踪
考虑在设备A上保存并且向设备B传送应用状态数据项目的情况。现在有应用状态数据的两个副本,可以修改任一副本。如果随后在这些设备之间再次传送相同项目,则有多个不同情况:
●在传送之前尚未在任一设备上修改数据。
●在设备A上修改、然后再次向设备B传送数据。在这一情况下,来自设备A的传入版本比设备B上的现有版本更新。
●在设备B上修改数据,但是然后从设备A向设备B再次传送数据。在这一情况下,来自设备A的传入版本比设备B上的现有版本更旧。
●在两个设备上修改、然后在任一方向上传送数据。在这一情况下有冲突——任一版本在严格意义上不比另一版本更新,但是文件时间戳的单纯检查将暗示有严格排序。
在图1-4中图示了这四种场景。
用户一般难以保持跟踪保存的哪些版本的文件比其它版本更新,因此通过保持跟踪对应用状态数据文件的改变从而检测这些情形并且通知用户对于***辅助用户是有帮助的。
显然,这一情形对于用户保持跟踪何时涉及到多于两个设备甚至更困难,但是仍然可以检测并且向用户报告上文描述的基本情况。
在本文描述的***中,通过存储版本记录元数据单位的有序序列来解决这一情形,其中每个单位代表应用状态项目的生命周期中的分岔或者汇合点。
版本记录包括序列号(始于0并且以1为单位增加)、应用状态项目的内容的散列(hash)和在其上添加版本记录的设备的唯一标识符(这是在在先公开中提到的相同的唯一标识符)。
在初始地创建应用状态项目时添加初始版本记录。根据以下过程添加后续版本记录:
1.散列化应用状态项目的内容(使用比如SHA-1的方法)
2.比较散列与先前版本记录(具有最高序列号的版本记录)中的散列
3.如果散列不同,则添加具有下一序列号、当前散列和当前设备唯一标识符的新版本记录。
4.如果散列相同,则不添加新版本记录。
在以下点执行用于添加版本记录的这一过程。
●分岔:紧接于将要播送应用状态项目之前(或者在某一用户选择的时间、即使在不存在播送时)。
●会合:在接收应用状态项目时,如果在设备上存在有与传入项目具有相同的随机ID的应用状态项目,则对现有项目执行这一过程。
通过遵循这些步骤,在不同设备上构建修改历史。现在可以通过分析这些版本记录来区别上文描述的各种场景。
●传送之前尚未在任一设备上修改数据:版本记录相同。
●在设备A上修改、然后再次向设备B传送数据。在这一情况下,来自设备A的传入版本比设备B上的现有版本更新。版本记录直至版本记录在设备B上的版本中完成这一点是相同的。在这一点之后来自设备A的传入版本具有一些附加记录。
●在设备B上修改数据,但是然后再次从设备A向设备B传送数据。在这一情况下,来自设备A的传入版本比设备B上的现有版本更旧。版本记录直至版本记录在来自设备A的传入版本中完成的点是相同的。设备B上的现有设备在这一点之后具有一些附加记录。
●在两个设备上修改、然后在任一方向上传送数据。在这一情况下有冲突——任一版本在严格意义上不比另一版本更新,但是文件时间戳的单纯检查将暗示有严格排序。版本记录直至某一点相同,并且它们两个版本在这一点之后具有附加记录。
3.4.2.3应用状态数据打包
在在先公开中,有针对ATX文件描述的两个模式——包含代码、数据或者元数据的已签名“ATX部件”和仅包含其它ATX文件的未签名“容器ATX文件”,这些其它ATX文件本身通常是ATX部件。
本文描述了新的ATX文件类型——未签名文件,该文件包含应用状态项目加上包含与该项目关联的元数据(随机标识符、类型、版本信息等)的清单。使用用于上文描述的元数据项目的以下属性名称在标准JAR清单格式中将上文描述的元数据编码为密钥/值对。
●AGC-State-AppName(AGC-状态-应用名称):注册应用状态项目的应用的名称
●AGC-State-AppDependency(AGC-状态-应用附属):来自游戏的清单的AGC-State-AppDependency(AGC-状态-应用附属)的头部
●AGC-State-ItemName(AGC-状态-项目名称):应用状态项目的用户可见名称
●AGC-State-ItemID(AGC-状态-项目ID):应用状态项目的随机ID
●AGC-State-ItemType(AGC-状态-项目类型):应用状态项目的类型
●AGC-State-ItemUpdate-n(AGC-状态-项目更新-n):用于应用状态项目的版本记录序列
由于未对这一文件用密码签名,所以不能依赖于它的内容未被修改。一种使攻击者修改这一数据略微更复杂的简单(但是不安全)方式将是向应用状态数据文件附加循环冗余校验或者相似代码、然后使用基于清单的某一散列的密钥使用流密码对所得数据文件编码。然而应当强调,这不会阻止危险的攻击者,仅对防御用于修改数据的偶然尝试有用。
使用这一方式,对清单或者数据文件的修改将通常造成在对数据解码时CRC数据无效,从而允许在大多数情况下检测到修改。
3.5播送包
使用与目标设备的协商,可以确定运行应用所需的、但是不存在于目标设备上的应用、附属和权利部件集。用户然后选择要播送的零个或者更多个应用状态项目。在一个可替代实施例中,可以自动选择要播送的应用状态而无需用户干预。例如,自动播送最新近应用状态可以在一些应用中是方便的。
作为协商过程的部分,在一个实施例中,接收设备可以向播送设备报告它可以接受的或者接收设备的用户希望接受的应用状态(例如通过用户选项)。这避免播送设备发送在接收设备将不使用或者不能使用的数据。
生成用于这些应用状态项目的ATX文件,并且与用于需要传送的所有应用、附属和权利部件的ATX安装包一起存储于容器ATX文件中。
通过任何可用的传送机制向目标设备传送所得到的容器ATX文件。这可以包括通过蓝牙的OBEX、作为电子邮件消息的附件、通过Wi-Fi网络或者移动电话网络的定制协议等。
3.6接收和安装播送包
在目标设备接收容器ATX文件时,检查其内部ATX文件并且作为结果采取多个动作:
1.在用户的确认下安装权利部件
2.在用户的确认下安装应用和附属部件
3.处理容器ATX中存在的任何应用状态项目
在在先公开中描述了步骤2中的二进制可移植软件部件的安装和步骤1中的权利部件的处置。
如下处理应用状态项目:
●如果如上文在“应用状态数据打包”中描述的那样对应用状态数据文件编码,则通过散列化清单以产生解密密钥、解密数据文件且然后检查和去除CRC来对数据编码。如果CRC不与发送的值匹配,则将应用状态项目视为被破坏并且丢弃。
●使用在在先公开中指定的附属机制来评价来自应用状态项目的清单的AGC-State-AppDependency(AGC-状态-应用附属)属性,以便发现如下应用,该应用能够处置正在处理的应用状态项目。如果未发现应用,则丢弃应用状态项目。
●使用来自应用状态项目的清单的AGC-State-ItemID(AGC-状态-项目ID)属性,***确定是否有在设备上存在的具有相同随机标识符的应用状态项目。如果是这样,则它比较两个项目中的版本记录信息,并且向用户呈现要采取的可能的动作选项:
○传入应用状态不对应于现有应用状态:向用户询问他们是否想要安装应用状态项目,而默认回答为“是”。
○传入应用状态对应于现有应用状态、但是更新:向用户询问他们是否想要用传入的应用状态改写他们的现有应用状态,而注释指示传入应用状态表现为更新。默认回答为“是”。
○传入应用状态对应于现有应用状态、但是更旧:向用户询问他们是否想要用传入应用状态改写他们的现有应用状态,而注释指示传入应用状态表现为更旧。默认回答为“否”。
○传入应用状态对应于现有应用状态、但是有冲突:向用户给予用传入应用状态改写他们的现有应用状态这样的选择,而默认回答为“否”。如果应用的清单指示它可以融合这一类型的应用状态,则也向用户赋予“融合”选项,该选项触发应用的融合功能。
如果用户没有拒绝传入应用状态项目,则在对应用可见的目录中存储对应数据文件,该目录的唯一目的是包含传入应用状态数据文件。此外,以与应用已经以正常方式注册项目的情况实质上相同的方式向应用状态项目的目标***记录中***用于应用状态项目的元数据。如果用户选择融合冲突,则这与用于项目的元数据一起记录。
3.7应用支持
可能需要对希望利用应用状态播送设施的应用进行许多小改变。基于本公开内容这些对本领域技术人员而言是清楚的。
3.7.1注册和取消注册应用状态项目
如上文描述的那样,应用可能需要调用API函数以“注册”保存的数据文件为可用于播送。
应用也可以取消注册数据文件,从而去除用于文件的任何存储的元数据并且将其标记为不再可用于播送。
3.7.2应用状态数据格式改变
有时,应用可能需要改变它们的保存的数据文件的格式。这会在添加或者去除特征时或者仅为了提高效率等而发生。
在这发生时,旧版本的应用通常不能使用新版本创建的数据文件,而新版本的应用可能能够或者可能不能使用旧版本的应用保存的数据文件。
软件应用的作者可以使用AGC-State-AppDependency(AGC-状态-应用附属)和AGC-InterfaceComponent-n(AGC-接口部件-n)属性来表达应用清单中的如下信息,该信息是关于支持哪些版本的应用的数据格式。
将AGC-State-AppDependency(AGC-状态-应用附属)属性编码到应用创建的任何应用状态项目的元数据中以及向其它设备播送的任何应用状态项目的清单中。
这表示对具体接口名称和版本范围的依赖。应用实施这一接口。通过改变这两个清单属性中的接口版本号,可以有选择地允许或者不允许旧应用状态项目,并且将新应用状态数据文件标记为与更旧版本的应用不兼容。
例如:
●应用支持一个数据格式,但是如果数据格式曾经改变,则作者希望提供与更旧格式的向后兼容。
AGC-InterfaceComponent-0:http://someinterface.mycompanycom/if/gamee- state/somegame1.0
AGC-State-AppDependency:http://someinterface.mycompanycom/if/game-state/somegame1.0-1.*
在这一示例中,应用陈述它支持接口的版本1.0。放入应用状态元数据中的AGC-State-AppDependency(AGC-状态-应用附属)条目指示它需要这一接口的至少版本1.0,但是它预计应用的支持不同数据格式的未来版本也能够对它解码。
●上文描述的应用具有对它的数据格式的改变:
AGC-InterfaceComponent-0:http://someinterface.mycompanycom/if/game- State/somegame1.1
AGC-State-AppDependency:http://someinterface.mycompanycom/if/game-state/somegame1.1-1.*
这是前例的扩展,其中用于应用状态的数据格式已经改变。应用现在陈述它支持接口的版本1.1。
注意,这仍然与将在应用的更早版本(1.0-1.*)创建的应用状态项目中存在的版本范围匹配。应用因此陈述它仍然支持实施这一接口的版本1.0的应用的更早版本创建的应用状态项目。
将向这一应用保存的新应用状态项目分配新版本范围“1.1-1.*”。这不会与(实施这一接口的版本1.0的)应用的先前版本匹配,而这是正确的动作。
●应用改变它的数据格式并且丢弃针对旧格式的支持:
AGC-InterfaceComponent-0:http://someinterface.mycompanycom/if/game- state/somegame2.0
AGC-State-AppDependency:http://someinterface.mycompanycom/if/game-state/somegame2.0-2.*
这可以被视为前例的扩展,其中应用作者决定丢弃针对所有先前应用状态数据格式版本的支持,或者它可以使用于其中作者从未有过为更旧数据格式提供向后兼容性的任何意图的情形中。无论意图如何,机制相同。
来自应用的更旧版本的应用状态元数据将需要在范围“1.*”中的版本号,因此不会与应用的这一新版本匹配。应用因此声明了它与那些版本不兼容。
通过修改主要版本号,应用作者可以控制他们是否想要在对数据格式的每次改变时保持向后兼容性。
3.7.3当接收应用状态项目时采取的动作
在应用启动时(或者在一些其它定义好的时机、比如紧接于显示用于用户从其选择的保存的文件的列表之前),预计调用API函数以枚举在上文描述的其中存储传入应用状态项目数据文件的目录内的应用状态项目。
对于枚举中的每个项目,向应用给予传入应用状态数据文件的名称、对应的现有应用状态数据文件(如果有)的名称、关于哪个更新和是否有冲突的信息以及用户是否想要安装传入版本或者尝试融合。
需要应用确认传入应用状态数据文件的内容(以检查有意修改、破坏等)。应用状态数据文件是用于游戏***的共同攻击矢量,因此重要的是应用鲁棒地检查传入应用状态数据文件的有效性以防范缓冲器溢出等。
一旦应用已确认传入文件,则它应当采取以下动作之一:
●调用API函数以接受传入文件,给予数据文件应当移向的别处(未在“传入”目录内)的文件名。如果有具有相同AGC-State-ItemID(AGC-状态-项目ID)的现有应用状态数据文件,则它将被传入文件替换,包括其元数据。传入数据将被保存到的文件名可以与正在替换的现有应用状态数据文件的文件名相同,或者它可以不同,在该情况下将去除现有数据文件。
●调用API函数以去除传入文件及其对应元数据。由于截至这一点,用户已经对他们是否想要接受传入文件这样的问题回答了“是”,所以其中这可能适当的仅有情形是如果传入应用状态文件无效或者如果应用已经执行某一融合并且更新了现有应用状态数据文件,从而不再需要传入的文件。
通过遵循这些规则,传入目录应当仅包含新近已经在设备上接收并且需要来自应用的关注的文件,而应用保持对它的数据目录内的应用状态文件的命名约定和目录结构的控制。
应用如果在这一点进行选择则可以提供简单的融合设施。
例如,使用应用状态播送机制以传送从一个玩家到另一玩家的轮次的国际象棋游戏可以对代表进行中的保存的游戏的传入状态项目执行检查,以保证接收的游戏与它的游戏状态记录匹配(即所有先前移动相同),而对抗玩家已经进行一个额外移动。有效地融合传入应用状态与现有状态。
如果应用状态数据格式内部包含个别改变的记录,则更复杂的融合可以是可能的,从而使应用能够检测文件内的个别修改并且决定应当保持来自每个文件的哪些项目,也许在有用户确认的情况下。
4.使用场景
这一节描述在本文中描述的***所支持的一些使用情况。
将应用与所有其附属和状态一起传送
在其中没有从源设备到目标设备的直接通信的情形中,两个设备不能协商为了使应用工作而需要传送的应用和附属部件集。
在这一情形中,有必要传送整个部件集。用户可以可选地选择将与应用一起传送的某一应用状态。
源和目标可能不能直接通信的原因有许多,包括连通原因并且也包括其中目标设备在创建播送包时未知的情形——例如,如果源设备创建播送包并且使它可用于在公共可访问的网站服务器上下载。
在图5中图示了传送过程。
4.2传送应用及其附属的子集
更有用的情况是源和目标设备能够通信。在这一情况下,它们能够确定需要传送的确切部件子集。
同样,用户可以选择将在播送包中包括的某一应用状态。
在图6中图示了这一点。
4.3仅传送应用状态
在源与目标设备之间协商的最终示例是其中它们确定目标设备具有为了运行应用而需要的所有部件。在这一情况下,仅需传送应用状态项目(如果用户选择了任何应用状态项目)。
在图7中图示了这一点。
4.4在无电话网络覆盖时通过短程网络传送
这一***的关键优点是数据的“离线”传送——通常通过短程无线技术、比如蓝牙或者Wi-Fi(包括其中无需现有Wi-Fi网络的自组织Wi-Fi)。在适合时也可以使用有线连接、比如USB或者以太网。
在图8中图示了这一点。

Claims (15)

1.一种分发二进制可移植软件的方法,包括:
(a)在第一用户设备上运行软件应用,并且存储定义所述软件应用的状态的应用状态数据;
(b)从第二用户设备接收为了运行所述软件应用而需要的并且尚未安装的所需软件部件的细节或者需要更新的所需软件部件的细节;
(c)生成用于向所述第二用户设备传送的包括所述应用状态数据和所述所需软件部件的包;
(d)向所述第二用户设备传送所述包;
(e)确定是否已经在所述第二用户设备处保存所述状态;并且
(f)向所述第二用户设备的用户提供用于从所述状态运行所述软件应用的选项。
2.如权利要求1所述的方法,其中所述所需软件部件包括尚未在所述第二用户设备上安装的以下各项中的任一项:二进制可移植软件部件、权利部件和任何必需软件库或者附属。
3.如权利要求1所述的方法,其中所述包包括二进制可移植软件部件,所述方法向所述第二用户设备的所述用户提供用于从所述状态运行先前未安装的软件应用的选项。
4.如权利要求1所述的方法,包括向所述第一用户设备的用户提供要传送的所需的所述状态的选项。
5.如权利要求1所述的方法,包括从所述第二用户设备接收已经在所述第二用户设备上存储的一个或多个所述状态的细节,并且从所述包排除所述已经存储的一个或多个状态。
6.如权利要求1所述的方法,其中从所述第一用户设备向所述第二用户设备无修改地传送所述包。
7.如权利要求1所述的方法,包括如果所述传送的状态比已经在所述第二用户设备上存储的状态更旧或者与其冲突,则警告所述第二用户设备的用户。
8.如权利要求1所述的方法,其中所述应用状态数据定义多个状态记录,在最新近存储的状态的散列不同于将保存的当前状态的散列时向所述应用状态数据添加新状态记录。
9.如权利要求8所述的方法,其中在所述第二用户设备处接收所述包时,比较所述传送的状态的散列与在所述第二用户设备处存储的状态的散列,并且如果不同,则在所述第二用户设备处存储所述传送的状态。
10.如权利要求1所述的方法,其中所述状态由随机生成的标识符标识,并且比较所述状态与具有已经在所述第二用户设备处存储的相同标识符的一个或者多个状态。
11.如权利要求1所述的方法,其中所述包包括数据格式指示符,所述指示符由所述第二用户设备读取以确定所述传送的数据格式是否与在所述第二用户设备上使用的所述数据格式兼容。
12.如权利要求1所述的方法,其中所述第二用户设备融合所述传送的状态与已经在所述第二用户设备上存储的状态,并且基于所述融合的状态运行所述应用软件。
13.如权利要求1所述的方法,其中所述第一和第二用户设备是移动电话。
14.如权利要求13所述的方法,其中所述软件应用是游戏。
15.一种计算机可读介质,存储用于在数字计算机上实施如权利要求1所述的方法的程序代码。
CN2011800660218A 2010-12-23 2011-12-16 分发软件的方法 Pending CN103339602A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1021875.8A GB201021875D0 (en) 2010-12-23 2010-12-23 Methods of distributing software
GB1021875.8 2010-12-23
PCT/EP2011/073088 WO2012084724A1 (en) 2010-12-23 2011-12-16 Methods of distributing software

Publications (1)

Publication Number Publication Date
CN103339602A true CN103339602A (zh) 2013-10-02

Family

ID=43598919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800660218A Pending CN103339602A (zh) 2010-12-23 2011-12-16 分发软件的方法

Country Status (5)

Country Link
US (1) US20130339941A1 (zh)
EP (1) EP2656213A1 (zh)
CN (1) CN103339602A (zh)
GB (1) GB201021875D0 (zh)
WO (1) WO2012084724A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870272A (zh) * 2014-03-06 2014-06-18 联想(北京)有限公司 一种信息处理方法及装置
CN104683409A (zh) * 2013-11-29 2015-06-03 华为终端有限公司 终端间应用共享的方法和终端
CN106886424A (zh) * 2015-12-15 2017-06-23 德尔福电子(苏州)有限公司 一种根据智能设备升级汽车软件的装置及方法
US10708390B2 (en) 2012-06-13 2020-07-07 Huawei Device Co., Ltd. Method, user equipment, server, and apparatus for implementing information sharing

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9171314B2 (en) * 2011-06-16 2015-10-27 Microsoft Technology Licensing, Llc Cloud based management of an in-store device experience
US9167439B2 (en) 2011-11-18 2015-10-20 Cooper Technologies Company Non-intrusive in-band link cost estimation in multihop networks
US20140019957A1 (en) * 2012-07-11 2014-01-16 Tencent Technology (Shenzhen) Co., Ltd. Method, apparatus, and system for sharing software among terminals
US9766873B2 (en) * 2012-08-17 2017-09-19 Tripwire, Inc. Operating system patching and software update reconciliation
US9998911B2 (en) 2012-10-02 2018-06-12 Razer (Asia-Pacific) Pte. Ltd. Transferring information to a mobile device
WO2014070188A2 (en) * 2012-11-01 2014-05-08 Cooper Technologies Company Distribution of software updates in wireless multihop networks
US20140359637A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Task continuance across devices
JP6432127B2 (ja) * 2013-11-12 2018-12-05 株式会社リコー 通信装置、通信システム、通信方法及び通信プログラム
JP2015103105A (ja) 2013-11-26 2015-06-04 株式会社リコー 通信装置、通信システム、及び通信プログラム
US20160301699A1 (en) * 2013-11-29 2016-10-13 Huawei Device Co., Ltd Installation package authorization method and apparatus
US10775875B2 (en) 2014-06-11 2020-09-15 Mediatek Singapore Pte. Ltd. Devices and methods for switching and communication among multiple operating systems and application management methods thereof
CN105208508A (zh) * 2014-06-11 2015-12-30 联发科技(新加坡)私人有限公司 智能设备、可穿戴设备及其推送接收安装包的方法
US20170052773A1 (en) * 2015-08-17 2017-02-23 Google Inc. Application installs using remote applications
CN105677389A (zh) * 2015-12-29 2016-06-15 深圳市科漫达智能管理科技有限公司 一种Virgo组件的安装更新方法及装置
US11036345B2 (en) * 2017-03-22 2021-06-15 Yuval PRAG System and method for on-screen graphical user interface encapsulation and reproduction
US10915349B2 (en) * 2018-04-23 2021-02-09 Hewlett Packard Enterprise Development Lp Containerized application deployment
CN109513214A (zh) * 2018-11-23 2019-03-26 火烈鸟网络(广州)股份有限公司 游戏应用转接渠道的方法、装置、存储介质及设备
US11483384B2 (en) 2019-03-19 2022-10-25 Hewlett Packard Enterprise Development Lp Application migrations
US11327744B2 (en) * 2019-05-29 2022-05-10 Red Hat, Inc. Equivalency of revisions on modern version control systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1549639A (zh) * 2003-05-07 2004-11-24 英业达股份有限公司 对称式无线网络游戏传输方法
CN101222956A (zh) * 2005-07-19 2008-07-16 索尼爱立信移动通讯股份有限公司 无缝游戏方法和设备
US20090305778A1 (en) * 2008-06-06 2009-12-10 Turbine, Inc. Installed game software sharing via peer-to-peer network

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836011B2 (en) * 1998-10-01 2010-11-16 Onepin, Inc. Phone to phone data exchange
US6338680B1 (en) * 1999-05-28 2002-01-15 Datel Electronics Ltd. Method for editing game saves transferred between a game console and a computer
US6893347B1 (en) * 1999-07-09 2005-05-17 Nokia Corporation Method and apparatus for playing games between the clients of entities at different locations
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
JP3585468B2 (ja) * 2002-02-28 2004-11-04 株式会社コナミコンピュータエンタテインメント東京 ゲーム装置、プログラム及びゲーム装置の制御方法
US7823148B2 (en) * 2002-05-22 2010-10-26 Oracle America, Inc. System and method for performing patch installation via a graphical user interface
US7313120B2 (en) * 2003-09-16 2007-12-25 Nokia Corporation Application control in peer-to-peer ad-hoc communication networks
EP1533695B1 (en) * 2003-11-19 2013-08-07 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Updating data in a mobile terminal
WO2005109829A1 (en) * 2004-05-06 2005-11-17 Koninklijke Philips Electronics N.V. Method device and program for seamlessly transferring the execution of a software application from a first to a second device
US7975028B2 (en) * 2004-06-07 2011-07-05 Apple Inc. Migration of data between computers
US8316088B2 (en) * 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
EP2017729B1 (en) * 2005-08-23 2018-08-08 BlackBerry Limited Method and system for transferring an application state from a first electronic device to a second electronic device
US7606836B2 (en) * 2006-08-21 2009-10-20 Tibco Software Inc. Methods for efficient data version verification
US8839005B2 (en) * 2006-09-13 2014-09-16 Sandisk Technologies Inc. Apparatus for transferring licensed digital content between users
US20080147530A1 (en) * 2006-12-19 2008-06-19 Kwan Shu-Leung Programmatically transferring applications between handsets based on license information
US7970350B2 (en) * 2007-10-31 2011-06-28 Motorola Mobility, Inc. Devices and methods for content sharing
US20090265703A1 (en) * 2008-04-22 2009-10-22 Electronic Data Systems Corporation System and method for application portability
US8401681B2 (en) * 2008-06-08 2013-03-19 Apple Inc. System and method for placeshifting media playback
JP2010191714A (ja) * 2009-02-18 2010-09-02 Canon Inc 情報処理装置及び方法
GB0910327D0 (en) 2009-06-16 2009-07-29 Antix Labs Ltd Rights managed distributable software
US9015818B2 (en) * 2009-07-31 2015-04-21 Adobe Systems Incorporated Software application operational transfer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1549639A (zh) * 2003-05-07 2004-11-24 英业达股份有限公司 对称式无线网络游戏传输方法
CN101222956A (zh) * 2005-07-19 2008-07-16 索尼爱立信移动通讯股份有限公司 无缝游戏方法和设备
US20090305778A1 (en) * 2008-06-06 2009-12-10 Turbine, Inc. Installed game software sharing via peer-to-peer network

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10708390B2 (en) 2012-06-13 2020-07-07 Huawei Device Co., Ltd. Method, user equipment, server, and apparatus for implementing information sharing
US10992781B2 (en) 2012-06-13 2021-04-27 Huawei Device Co., Ltd. Method, user equipment, server, and apparatus for implementing information sharing
US11991249B2 (en) 2012-06-13 2024-05-21 Huawei Device Co., Ltd. Method, user equipment, server, and apparatus for implementing information sharing
CN104683409A (zh) * 2013-11-29 2015-06-03 华为终端有限公司 终端间应用共享的方法和终端
CN104683409B (zh) * 2013-11-29 2019-03-01 华为终端(东莞)有限公司 终端间应用共享的方法和终端
US10715980B2 (en) 2013-11-29 2020-07-14 Huawei Device Co., Ltd. Method for sharing application between terminals, and terminal
US11606677B2 (en) 2013-11-29 2023-03-14 Huawei Device Co., Ltd. Method for sharing application between terminals, and terminal
US11974204B2 (en) 2013-11-29 2024-04-30 Huawei Device Co., Ltd. Method for sharing application between terminals, and terminal
CN103870272A (zh) * 2014-03-06 2014-06-18 联想(北京)有限公司 一种信息处理方法及装置
CN103870272B (zh) * 2014-03-06 2017-09-22 联想(北京)有限公司 一种信息处理方法及装置
CN106886424A (zh) * 2015-12-15 2017-06-23 德尔福电子(苏州)有限公司 一种根据智能设备升级汽车软件的装置及方法
CN106886424B (zh) * 2015-12-15 2021-08-27 安波福电子(苏州)有限公司 一种根据智能设备升级汽车软件的装置及方法

Also Published As

Publication number Publication date
GB201021875D0 (en) 2011-02-02
WO2012084724A1 (en) 2012-06-28
US20130339941A1 (en) 2013-12-19
EP2656213A1 (en) 2013-10-30

Similar Documents

Publication Publication Date Title
CN103339602A (zh) 分发软件的方法
CN103608778A (zh) 分发多用户软件应用的方法
US10943208B2 (en) Methods and apparatus to emulate a toy
US10147081B2 (en) Method for providing contents
CN102160071B (zh) 使用组权利的内容管理技术
EP2628125B1 (en) Method and apparatus for downloading drm module
CN101584187A (zh) 经由端对端网络的软件分发
KR101160447B1 (ko) 디알엠 호환성 제공 방법 및 이를 이용한 애드혹 네트워크장치
US20060218650A1 (en) System and method for effectuating digital rights management in a home network
EP2887607A1 (en) Migration of assets of a trusted execution environment
CN101390104A (zh) 用于应用程序和媒体内容的受保护分布的方法和设备
CN102804193A (zh) 权限受管理可分发软件
CN104852962A (zh) 处理关注信息的方法、终端设备、服务器及***
US20080165967A1 (en) Method and Device For Migrating a Specifically Encrypted Access Object From a First Terminal Unit to a Second Terminal Unit
CN1832393B (zh) 基于数字版权管理***的数字内容传播方法
CN101165698B (zh) 一种导出许可的方法及***
KR20070028454A (ko) 동일한 컴퓨터 코드의 다른 버전을 포함한 고정적으로링크된 매체
KR101193345B1 (ko) 피씨방 관리 방법, 관리 시스템 및 서비스 서버
EP1697942A1 (en) Method of accessing data content in storage devices
GB2494498A (en) Handling defined areas within an electronic document to preserve integrity and context
FI121196B (fi) Menetelmä ja järjestelmä älykortin arvon lataamiseen
EP2477135B1 (en) Information processing system, information processing method, information storage medium and program
CN102880481A (zh) 线上安装文件的方法及其控制装置
EP3299980B1 (en) Security measure program, file tracking method, information processing device, distribution device, and management device
KR100766593B1 (ko) 게임 컨텐츠 및 아이템 파일의 전송 방법, 시스템 및 서버

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131002