数据的更新驱动迁移的制作方法

文档序号:11774119阅读:201来源:国知局
数据的更新驱动迁移的制作方法与工艺

本文涉及数据的更新驱动迁移。



背景技术:

各种实施例的各方面涉及迁移存储数据以适应对软件的更新,例如对使用安全元件(se)的操作系统的更新。某些特定实施方案可与近场通信(nfc)结合使用。

nfc是当将两个装置靠近时起作用的特定种类的无线通信。nfc是一具体子组射频标识(rfid)。所述nfc在13.56mhz下操作并且执行许多与rfid标记和非接触智能卡相同的功能。nfc以以下三种通信模式中的一种通信模式操作:读取/写入、点对点和卡模拟。

某些nfc应用程序需要安全性,包括与金融交易相关的安全性,或存储并且使用敏感数据的其它应用程序,无论数据是金融的、个人的或其它。各种nfc装置使用装置(例如,智能手机)内的“安全元件”(se)以安全地存储敏感数据(例如,金融账号)和应用程序。

安全元件(se)可用于各种不同装置,各种不同装置也可或可不使用nfc。扩增用途包括在移动装置中使用。随着se用途继续扩增,存在大量se将在任何给定时间处于使用中的可能性。如果更新程序不易于扩展,那么对se的更新可成问题。

对于各种相关应用程序,这些和其它问题给se所使用的软件的更新效率带来挑战。



技术实现要素:

各种例子实施例涉及例如上文阐述的问题和/或从以下关于se内的软件更新,并且尤其与操作系统(os)更新相关的公开内容可变得显而易见的其它问题。

在某些例子实施例中,本发明的各方面涉及使用迁移规则转换数据对象,迁移规则相对于相应os更新进行限定。

在更多根据本发明的某些实施例中,方法涉及替换存储在安全元件的永久性存储器电路中的当前操作系统。所述方法包括:接收一组迁移规则,所述组迁移规则指明对一组数据对象类型的改变。基于所述组迁移规则,标识存储在永久性存储器电路中并且对应于所述组数据对象类型的数据对象。针对所标识数据对象中的每一个数据对象:选择并且转换一子组迁移规则。所述子组迁移规则对应于一数据对象类型,所述数据对象类型对应于特定数据对象。基于所选子组转换特定数据对象。也启用一种新的操作系统。

该方法还包括:接收一组终止规则,所述组终止规则指明对存储在所述永久性存储器中的数据的另外改变;以及基于所述组终止规则,修改存储在所述永久性存储器中的所述数据。

所述安全元件包括:处理器电路和所述永久性存储器电路且所述当前操作系统提供用于所述安全元件的虚拟机环境。

在所述数据对象不离开安全元件的情况下进行所述方法。

基于所述组终止规则修改的所述数据中的至少一些源于所述安全元件。

基于所述组终止规则修改的所述数据中的至少一些对应于通过所述新的操作系统添加的新的数据对象。

所述安全元件是智能卡的一部分并且所述数据对象包括个人数据。

所述方法另外包括:接收另外组的迁移规则并且基于所述当前操作系统的版本选择一特定组。

所述方法另外包括:在所述转换期间暂停访问所述数据对象。

在根据本发明的另外各种实施例中,设备包括安全元件电路。安全元件电路包括被配置成存储数据对象和当前操作系统的永久性存储器电路。所述安全元件电路还包括处理器电路,所述处理器电路被耦合到永久性存储器并且被配置成:接收一组迁移规则,所述组迁移规则指明对一组数据对象类型的改变;基于所述组迁移规则,标识存储在永久性存储器电路中并且对应于所述组数据对象类型的数据对象;针对所标识数据对象中的每一个数据对象:选择对应于一数据对象类型的一子组迁移规则,所述数据对象类型对应于特定数据对象,并且基于所选子组转换特定数据对象;和启用一种新的操作系统。

所述处理器电路被另外配置成:接收一组终止规则,所述组终止规则指明对存储在所述永久性存储器中的数据的另外改变;以及基于所述组终止规则,修改存储在所述永久性存储器中的所述数据。

所述处理器电路被另外配置成提供独立操作系统,每一所述特定数据对象在所述独立操作系统内进行转换。

所述处理器电路被另外配置成在所述安全元件电路内维持所述特定数据对象,同时转换所述特定数据对象。

所述处理器电路被另外配置成在虚拟机环境内运行所述新的操作系统。

所述处理器电路另外被配置成接收另外组的迁移规则并且基于所述当前操作系统的版本选择一特定组。

所述处理器电路被另外配置成当转换所述数据对象时暂停访问所述数据对象。

在某些实施例中,计算机实施方法产生一组迁移规则,所述组迁移规则用于将存储在安全元件的永久性存储器电路中的当前操作系统更新成新的操作系统。所述方法包括:接收用于当前操作系统和新的操作系统的操作系统元数据,所述元数据描述对象类型定义;基于所述元数据,使当前操作系统中的对象类型与新的操作系统中的对象类型关联;标识关联对象类型之间的差别;基于所标识的差别,产生一组迁移规则,所述组迁移规则指明对对应于关联对象类型的对象的改变;和将所述组迁移规则和新的操作系统广播到多个安全元件。

以上论述/概述并非意图描述本发明的每一个实施例或每一个实施方案。以下图式和具体实施方式还示例了各种实施例。

附图说明

结合附图考虑以下具体实施方式,可以更加完整地地理解各种例子实施例,在附图中:

图1是根据本发明的实施例的替换存储在se的永久性存储器电路中的当前操作系统的系统的框图;

图2是根据本发明的实施例的示出了用于替换存储在se的永久性存储器电路中的当前操作系统的数据流的框图;

图3是根据本发明的实施例的在os更新期间转换数据对象的流程图;且

图4是根据本发明的实施例的产生并且广播迁移规则的流程图。

虽然本文中所论述的各种实施例能够经受各种修改和替代形式,但在附图中已借助于例子示出了实施例的多个方面,并且将详细描述所述实施例的多个方面。然而,应理解,并不打算将本发明限制于所描述的特定实施例。相反,意图涵盖落入本发明的范畴内的包括权利要求书中限定的各方面的全部修改、等效物和替代方案。另外,术语“例子”,如所使用,在本申请案通篇中仅借助于说明,并且不加限制。

具体实施方式

本发明的各方面被认为将适用于涉及迁移数据对象的各种不同类型的设备、系统和方法,其中所述迁移通过软件更新驱动。在某些实施方案中,已经示出,当本发明的各方面在os的更新和存储在安全元件(se)内的数据对象的对应迁移(在迁移后os即运行)的背景下使用时是有利的。虽然可经过使用示例性情况的非限制性例子的以下论述来理解各个方面,但不必限于此。

因此,在以下描述中,陈述各种具体细节以描述本文呈现的具体例子。然而,本领域的技术人员应显而易见,可在没有下文给出的全部具体细节的情况下实践一个或多个其它例子和/或这些例子的变体。在其它情况下,未详细地描述众所周知的特征以免混淆对本文中的例子的描述。为了便于说明,可在不同图式中使用相同参考标号以指代相同元件或相同元件的另外实例。并且,虽然可在一些情况下在个别图中描述各方面和特征,但将了解,来自一个图或实施例的特征可与另一图或实施例的特征组合,即使所述组合并未明确示出或明确描述为组合。

本发明的各种实施例涉及迁移数据对象以适应使用数据对象的新os。此外,迁移可包括重新限定现有数据对象以及创建或删除数据对象。特定实施例允许对驻留在se中的数据执行迁移并且数据无需离开se。此外,各种实施例涉及使用标准更新包更新大量装置的能力,所述标准更新包可被广播到包括se的安全装置中的每一个安全装置。

如本文所使用,se包括安全内存和执行环境。se提供存储应用程序代码和应用程序数据的环境。在所述环境内安全地执行所存储的应用程序。在包括各种防篡改特征的高度安全密码芯片内实施se的特定例子。se可被配置成为在se外部通信的数据包提供加密、解密和签名。se的几个例子使用包括:安全智能卡芯片(被称作嵌入型安全元件),所述安全智能卡晶片作为手机的用户识别模块(sim)卡的一部分(以验证用户并且维持个性化用户信息和应用程序),或在可被插入手机中的安全数字(sd)卡中。因此,se可提供防篡改平台(例如,单芯片上的安全微控制器),所述防篡改平台可主控应用程序和敏感数据(例如,加密密钥管理)。se的例子形成要素包括:通用集成电路卡(uicc)、嵌入型se和microsd。

se可用于许多应用,包括作为汽车市场的一部分的许多移动装置和用于物联网(iot)装置等。在特定例子中,se可用以存储用户凭证和信用卡信息,例如可用于非接触支付方案。可不时地更新这些se的os,以便修复问题并且改变se所提供的功能。当更新se上的os时,存储在se上的数据的丢失可成问题。举例来说,用户数据的丢失可能导致用户需要重新申请信用卡或后端服务器需要安装并且个性化应用程序。尽管一些更新可不需要对存储在se内的数据结构的改变,但许多更新(特别是涉及新的特征、性能优化和较大的错误修复的那些更新)确实需要对数据结构的改变。具体地说,对数据结构具有大量改变的os可促使存储在se上的现有用户数据呈现为不可用。本发明的各种实施例涉及转换se上的现有数据对象以使得其将符合新os的迁移方案。根据特定实施例并且出于安全性原因,可以敏感数据对象不离开se环境的方式设计迁移方案。

某些实施例涉及在虚拟机环境上运行的具有os的se,所述虚拟机环境可通过例如java虚拟机(jvm)的平台提供。更多特定实施例涉及java卡开放平台(jcop)os。研发jcop以用作用ava卡平台的智能卡操作系统。在java卡技术中,许多信息存储在永久性存储器中以使得即使在从所述卡移除电源时仍可将信息保存。从永久性存储器获取信息以允许虚拟机在下一次复位再次启动。这延长了在智能卡上操作的虚拟机的使用寿命。

可包括用户特定(个人)数据的永久性信息包括所安装的小程序的java对象,和操作系统的java对象和本地数据结构。当存在对操作系统的更新时,java类和本地数据结构可以并未保存存储对象和其它数据的向后兼容性的方式改变。因此,本发明的实施例涉及提供旧操作系统和新操作系统之间的数据转换,以便提供所需的存储在永久性存储器中的数据对象和新操作系统之间的兼容性。

本发明的某些实施例涉及用于本地数据结构的迁移和用于os更新的内存布局。java应用程序和框架有时直接处理本地数据。本地数据是分配在java堆外的内存。本地数据可包括:操作系统数据结构、所发送数据、来自文件的数据流和与非java应用程序共享的数据。

图1是根据本发明的实施例的替换存储在se的永久性存储器电路中的当前操作系统的系统的框图。安全装置102包括具有永久性(非易失性)存储器电路116的se108。可使用各种不同的存储器类型实施永久性存储器电路116,所述存储器类型包括但不限于不同类型的闪存电路。永久性存储器电路116可存储os和软件应用程序120。同样存储在永久性存储器电路中的是迁移引擎118和敏感(用户)数据122。os和软件应用程序可被配置成使用用于各种功能(例如,验证或金融交易)的数据122。se处理器电路114(例如,微控制器电路)与永久性存储器电路116介接以获取并且接着执行用于os和应用程序120的指令,并且还获取和使用敏感数据122。

根据各种实施例,安全装置102可与主机处理器电路104和对应主机存储器电路106一起配置。使用单独的主机处理器电路104允许se在许多方面是独立的。举例来说,可借助于接口电路112限制对se的访问。接口电路112连同se处理器电路114可被配置成限制可利用se108外部的电路进行的事务的类型。更具体地说,se108可被配置成使用se应用编程接口(api)而与外部电路介接。api可限定控制对se108和它的永久性存储器电路116的访问的访问规则。

安全装置102还可包括被设计成与远端装置通信的一个或多个通信接口110。可设计通信接口供与各种不同的协议和底层物理层方案一起使用。特定、非限制性例子使用nfc。在nfc的背景下论述各种实施例,然而,应理解,实施例不必限于nfc。根据某些实施例,通信接口124(例如,充当nfc读取器的装置)可被配置成使用通信接口110中的一个或多个而与安全装置102通信。

根据各种实施例,通信接口124可用以接收对se108的os的更新。针对一些实施例,例如非接触卡,更新中的一些或全部可通过nfc接口提供。安全装置102的nfc控制器可直接将更新提供到se108。在某些实施例中(例如,在智能手机上),可通过网络126(例如,通过互联网)将更新广播到多个安全装置和每一安全装置102的主机/应用程序处理器,所述每一安全装置102接着将更新信息转发到se108。

根据本发明的一个或多个实施例,os迁移源130可包括:迁移规则引擎128,所述迁移规则引擎128被配置成产生一组迁移规则,所述组迁移规则指明对对应于当前操作系统的一组数据对象类型的改变。举例来说,迁移规则引擎128可使用os元数据以确定由os更新造成的对对象类型的改变。接着可基于这些改变,自动产生一组对应迁移规则。举例来说,对象类型的名称或对象类型内的字段可改变。可创建针对特定类型的全部对象用新名称替换旧名称的对应迁移规则。自动转换规则可以是可通过迁移引擎118解释和执行的一系列命令。在某些实施例中,迁移规则引擎128可包括界面,所述界面允许授权用户手动地提供迁移规则,或调节自动产生的迁移规则中的一些。

本发明的各种实施例涉及产生一组终止规则,所述组终止规则可在实施迁移规则之后由se执行。这个分离可以是特别适用于实施相对复杂的改变,这些改变在已经更新os之后更加容易进行。举例来说,由于数据对象、内存配置、数据阵列和其它方面之间的相互关系,在更新os之前,复杂改变也许是不可能的。举例来说,复杂变化可包括:重定数据阵列大小、创建全新对象和改变数据对象内的内容。

根据某些实施例,可使用被配置成作为os更新服务器运行的一个或多个计算机实施os迁移源130。os更新服务器可被配置成将os更新和迁移规则广播到大量安全装置102。迁移规则引擎在对象类型级别(与针对于每一安全装置102中的特定数据对象相反)产生迁移规则的能力可适用于使用同一基本更新包更新大量安全装置。

根据各种实施例,永久性存储器电路116可存储呈不受制于转换的可执行码的形式的一个或多个第三方应用程序(例如,支付应用程序)。第三方应用程序可通过由os所提供的api访问数据对象。在api保持不变的情况下,从第三方应用程序的角度,第三方应用程序在通过更新规则将数据对象转换之后仍将能够访问数据对象。

各种实施例允许在独立os内执行迁移引擎118。当从os接收更新时,可暂停当前os并且可启动独立os。迁移引擎118可从独立os内操作以进行由迁移规则所指示的转换。一旦完成转换,可将控制传递到所更新os。

根据某些实施例,可提供迁移引擎118作为新os的一部分。当首先启动新os时,新os可启动迁移引擎118。一旦完成转换,可从se删除迁移引擎码。

在某些实施例中,可在当前(旧)os内实施迁移引擎118。os可被配置成暂停对数据对象的事务,以使得释放用于转换的数据对象。这可包括暂时中止可以其它方式访问数据对象的其它应用程序和api。接着可启动迁移引擎118。

图2是根据本发明的实施例的示出了用于替换存储在se的永久性存储器电路中的当前操作系统的数据流的框图。规则构建器208对应于图1的迁移规则引擎128,并且被配置成标识旧os与新os之间的改变。这可包括:将旧os204的元数据与新os206的元数据进行比较。配置文件202可指明另外的细节,例如为新添加的字段提供初始值。配置字段202也可包括例如重命名的字段或类之间的关联性的信息。另外比较旧os和新os的内存布局并且将其用以产生迁移/转换规则。

在基于java的os的背景下,元数据可包括指明java类和java包可用以将类似的类类型分在一起的文件。每一个别se可具有同一类型的类的多个实例。举例来说,类可被命名为“creditcard”并且指明包含在类之内的各种字段,并且个别se可创建creditcard对象的多个实例(例如,用于用户所拥有的每一不同信用卡的一个实例)。规则构建器208可使新os和旧os的元数据文件关联以便标识java类之间的差别。可标识并且可被添加到自动规则的改变的几个例子是:从java类添加或移除字段;在java类中将字段重新排序;将字段改变成静态或实例类型;将java类移动到另一包;移除java类或包。

规则构建器208使用各种关于更新的信息源来产生一组迁移规则210。迁移规则指明迁移引擎218对旧的数据对象214执行以便创建新的数据对象220的操作。根据在本文中论述的各种实施例,se212可将用于当前(旧)os216的旧的数据对象存储在永久性存储器电路内。可与当前os216兼容的一组旧的数据对象214也可存储在永久性存储器电路内。迁移引擎218可转换旧的数据对象214以创建一组新的数据对象220,所述组新的数据对象220可与新os224兼容。

根据某些实施例,可将迁移引擎实施为旧的操作系统的一部分。在此类实施方案中,os可将其自身置于适合于在启动迁移引擎之前转换数据的条件中。如本文所论述,这可包括:在迁移期间暂停程序或以其它方式阻止访问正在转换的数据。

在本发明的一些实施例中,可将迁移引擎实施为新os的一部分。在此类实施方案中,旧os可处理新os的可执行码到永久性存储器电路中的载入。接着旧os可传递对新os的控制,所述新os接着初始化迁移引擎。根据各种实施例,可将迁移规则存储为用于新os的编译包的一部分。在初始设置期间,新os执行一组配置指令,所述组配置指令将迁移引擎连接到迁移规则并且允许迁移引擎进行所需转换。

本发明的各种实施例涉及可在更新过程期间使用的独立迁移os的使用。旧os可传递对独立os的控制,所述独立os提供一环境供迁移引擎在所述环境内操作。在通过迁移引擎完成转换后,独立os可传递对新os的控制。

在各种实施例中,也可在旧os、独立os和新os的不同组合之间分布迁移引擎。

图3是根据本发明的实施例的在os更新期间转换数据对象的流程图。图3中示出的特定流程对应于其中迁移引擎是旧os的一部分或在独立os内运行的实施例。流程开始于框302,它可对应于在使用运行os的se的装置处接收os更新请求。在一些情况下,这个请求可来源于将os更新广播到大量装置的更新服务器。在特定实施例中,os更新请求对于全部装置来说可以是通用的。这促使将单个、较小的os更新包用作广播通信的一部分,所述广播通信对于接收装置中的每一个接收装置都相同。

按照框304,接收os更新请求的每一装置可启用迁移引擎。在迁移引擎是当前(旧)os的一部分的情形下,可在旧os内启动迁移引擎模块。同时,旧os可被配置成终止、停止或暂停其它应用程序以防敏感数据在数据迁移期间被修改。旧os也可停用api功能以防应用程序访问数据。

按照框306,接着迁移引擎可接收迁移规则。可经过se的安全接口电路接收迁移规则。在特定实施例中,使用加密和验证提供os更新请求和迁移规则,以便防止未经授权方提供错误的os更新和迁移规则。根据各种实施例,迁移规则可包括一组指令,所述组指令标识现有(旧)对象类型和将对对象类型作出的对应改变。举例来说,迁移规则可通过它们的类描述符包括一列对象类型。针对将改变的每一对象类型,迁移规则可标识对应动作。

根据各种实施例,动作可对应于不同级别的修改。举例来说,一组动作可对应于类级。在这个级别处,例子动作可以是“删除类”。所述动作将通过其描述符标识现有类并且指示将删除所述类的对象的全部实例。另一类级动作可以是“改变包”,它可指明对象的每一实例将移动到其中的新包。另一级别可以是字段级,它将涉及指示特定字段描述符和对应动作。举例来说,字段描述符可以是“bankid”并且动作可以是“删除”。这表示新的类将不再含有“bankid”字段。另一动作可以是“添加”,它将指明所述类之内的新的字段的名称、类型和位置/顺序。又一动作可以是“重命名”,它可指明替换描述符(例如,“bankid”变成“bankid1”)。另一动作可以是“重排序”。重排序动作可通过描述符标识字段,并且指明类之内的新位置/顺序(例如,将“bankid”移动到类中的第一描述符)。动作还可对应于“原语改变”,它可标识字段和所述字段的新定义(例如,此前被限定为字节原语的字段变成布尔型(boolean)原语)。

迁移规则可被配置成实施用于同一类的规则或动作的复杂组合。举例来说,迁移规则可指明特定类的多个字段既可同时进行移动和重命名,同时类自身被重命名并且移动到不同包。在一些实施例中,迁移引擎相对简单,原因在于它被设计成以呈现迁移规则的准确顺序来进行迁移规则。使迁移引擎相对简单可为有用的,原因在于可使迁移引擎的大小保持较小以使得不需要大量的内存空间。如参考图4更详细地论述,因此可谨慎地为迁移规则排序,以使得个别动作不会引起冲突。

按照框308,迁移引擎可接着收集或标识永久性存储器内的全部现有(旧)数据对象。根据某些实施例,这可通过使os维持标识已创建的对象的每一实例的列表或阵列来完成。迁移引擎可访问列表以标识受制于迁移规则的每一类的实例。此外,迁移引擎可被配置成从对象标头获得信息。特定来说,每一对象,无论它是java对象或本地对象,都可以具有对象标头。对象标头可与对象自身一起存储或存储在专用于对象报头的单独区域中。对象标头具有类型字段,所述类型字段可指示(例如)对象是:本地对象、java类的对象、字节阵列、短阵列或对象阵列。针对本地对象,标头中的其它字段可标识本地对象的类型。针对java类对象,标头中的类标识符可标识对象的包和类。因此,对标头进行访问可将足够的信息提供到迁移引擎以选择适当规则。

根据各种实施例,旧os和新os之间的内存布局的差别可导致标头或其它数据的问题。举例来说,存储标头的区域和标头结构可各自改变。在新os或独立os中实施迁移引擎的实施例中,接着可将迁移引擎设计成访问旧os中的标头,并且对其进行正确解释。类似地,新os的标头位置和结构也可包括相关信息,所述相关信息可由迁移引擎使用以正确地实施转换。

按照框310,接着迁移引擎可根据迁移规则转换数据以使得数据可与新os兼容。作为可如何实施转换的特定例子,迁移引擎可执行如框322至框330所示出的迭代过程。按照框322,所述过程可重复n次,其中n是待转换的数据对象的数目。可替代的是,n可以是se中的数据对象的总数,并且某些迭代可不进行任何转换。按照框324,迁移引擎标识当前目标,连同选择对应子组的迁移/转换规则。举例来说,迁移引擎可从全部对象的列表访问对象i并且标识对象的对应类。接着迁移引擎可获取一子组对应于所标识类的迁移规则。

按照框326,迁移引擎可在标识对象被转换之后使用所标识的对象和对应组的迁移规则来计算所标识的对象的大小。举例来说,迁移引擎可被配置成模拟转换以便计算在转换之后的对象的所得大小。在一些实施例中,可在不改变对象的情况下通过计算由每一转换造成的数据大小改变来完成模拟。举例来说,迁移引擎可单独运行每一转换指令以保持对象大小的对应变化的连续计数。

按照框328,基于所确定的大小,接着迁移引擎可在永久性存储器中分配内存。分配对应于用于新os的内存空间。按照框330,接着可转换对象并且将对象移动到新的内存空间。举例来说,可根据新类定义创建所述类的对象的新实例。接着可使用来自旧对象的值来指定新对象的字段,从而保存敏感(用户)数据。

此外,同样重新创建将保存但并不具有任何对应迁移规则的对象。在这个情况下,对象的大小不变,并且按原样将数据对象拷贝到与旧os使用相同大小的内存分配的新区域。分配可基于新os的内存空间和内存分配策略而改变。举例来说,旧os和新os的对象排列和粒度可不同。

根据实施例,可以可执行码实施分配策略和对象标头创建方法,所述可执行码也被发送到或编译到迁移引擎中。在一些情况下,可由了解与os更新相关的内存差别的开发者提供代码。

按照框312,在转换全部对象后,迁移引擎可应用新操作系统的内存布局。当旧os和新os的永久堆在内存空间内重叠时,可产生可在此时处理内存布局改变的例子。迁移引擎可被配置成在临时内存区域内分配全部对象以保存对应数据。从临时位置将堆拷贝到对新os有效的最终位置,也就是应用新os的内存布局。这避免在已经拷贝或移动数据之前在重叠的内存空间中重写数据。

除数据对象之外,可存在其它被永久存储的信息,例如,用于内存管理和对象管理模块的元数据。如果这些元数据在2个os中的位置不同,那么也可在它们中进行重新定位。

按照框314,同样通过se访问并且接收新的os码。在一些实施例中,可与os码分开提供迁移规则。在其它实施例中,同时接收os码与迁移规则。在任一情况下,按照框316,可通过执行os码的初始化部分来启用新os。按照框318,接着se可进行终止动作。根据各种实施例,终止动作可包括在框310所指示的转换期间未解决的转换相关项目。举例来说,对象之间的从属性可使得在完成框310的转换之前难以或不可能完成必需的转换。作为一个例子,框310的迁移规则可包括创建新对象。创建类的新对象(无论对象定义是否在旧os与新os之间改变)需要调用所述类的构建器。在一些情况下,这也可将调用对迁移引擎不可见的可执行java码。因此,在终止步骤中,可从新os内实施新对象分配。此外,新元素并不存在于旧数据中,所以迁移引擎直到创建新元素之后才对这些新元素进行引用。因此,可在通过将必需指令包括为用于框318的终止的终止指令的一部分来在创建元素之后创建对新元素的引用。过程在框320处结束。

结合称作creditcard的java类描述一组终止规则的特定、非限制性例子。例子java类creditcard在迁移之前包括以下字段:

-shortbankid

-byte[]name(这是指向字节阵列对象的引用)

-byte[]address(这是指向字节阵列对象的引用)

-pin(这是指向securepin类的对象的引用)

在新os中,存在如以下字段的布置所指示添加的另外的secondarypin:

-shortbankid

-byte[]name(这是指向字节阵列对象的引用)

-byte[]address(这是指向字节阵列对象的引用)

-primarypin(这是指向securepin类的对象的引用)

-secondarypin(这是指向securepin类的对象的引用)

一组迁移规则可指明,针对creditcard类的对象实例,将pin字段重命名成primarypin,同时保持对现有securepin对象的引用。由于旧数据并不包括用于secondarypin字段的任何securepin对象,所以接着将secondarypin初始化为空引用。接着终止规则将指明,为每个creditcard对象创建新的securepin对象。接着新的securepin对象将被指定对secondarypin字段的对应引用。在一些实施例中,终止规则可包括另外的指令。举例来说,可将新的securepin对象的值初始化成所需值(例如,与primarypin相同的值或由primarypin推导的值)。此外,终止规则可基于个别对象的具体细节区分。举例来说,针对具有对应于banka的bankid字段的对象可存在第一规则,并且针对具有对应于bankb的bankid字段的对象可存在不同的第二规则。

图4是根据本发明的实施例的产生并且广播迁移规则的流程图。根据各种实施例,可使用一个或多个计算机服务器来进行迁移规则的产生和广播,这些计算机服务器例如结合图1所论述的os迁移源和迁移规则引擎。按照框402,迁移规则引擎可访问并且接收关于旧os和新os和其对应对象的元数据。针对java实施方案,元数据可包括存储在类文件和对应java包内的类定义。在某些实施例中,元数据也可包括可手动提供的另外的信息。举例来说,这可包括类、字段或其它元素之间的表达关联性。

按照框404,接着迁移规则引擎可使旧类和新类之间的对象类型/类关联。举例来说,迁移规则引擎首先可标识具有同一名称的所有类。接着迁移规则引擎可从假设旧版本和新版本直接对应于彼此开始。接着迁移规则引擎可查看其余的类定义并且比较其结构以标识相似性。在某些实施例中,迁移规则引擎可通过关联类与不同名称(只要其符合相似性的阈值级(例如,至少70%的字段具有同一名称和结构))而使类名改变。在特定实施例中,迁移规则引擎可呈现以这种方式关联的类以供授权审批员批准。

按照框406,针对关联类,迁移规则引擎标识旧类与新类之间的差别。以这种方式,迁移规则引擎可为每一类编译一列所标识的改变。举例来说,迁移规则引擎可尝试以与使类关联的方式大多相同的方式使在类之内的个别字段关联,例如,通过开始于具有同一名称的字段,并且接着标识具有不同名称但具有其它相似性的字段。然后迁移规则引擎可标识关联字段之间的任何差别并且将其存储在用于每一对应类的改变的列表中。

按照框408,基于所标识的改变,随后迁移规则引擎可产生一组迁移规则。举例来说,迁移规则引擎可基于可用的转换指令类型(例如,重命名、添加、删除等)对所识别的改变中的每一个改变进行分类。接着可产生用于类和每一对应改变的指令。举例来说,重命名类中的字段的指令可被格式化为:rename_field[old_field][new_field]。根据各种实施例,迁移规则引擎可对指令排序以避免指令之间的潜在冲突。举例来说,如果存在嵌套类,那么迁移规则引擎可被配置成在更新封装类中的对应引用之前重命名嵌套类的对象。

按照框410,接着迁移规则引擎可标识可能对于os更新必需的其它改变。在特定实施例中,这些另外的改变对应于在已初始化新os之后进行的改变。因此,另外的改变可包括复杂改变,例如重定阵列大小、创建新对象和改变数据内容(例如,对每一对应对象的现有数据应用算法)。按照框412,基于另外的改变,迁移规则引擎可产生一组终止规则。根据各种实施例,终止规则可以是一组可执行码,所述组可执行码可通过新os环境内的迁移引擎在卡上运行。

按照框414,接着可将迁移规则、终止规则和os更新广播到运行旧os的安全装置se上。在某些实施例中,可首先将广播发送到与安全(se)装置通信的经过授权的装置。经过授权的装置可以是:例如,计算机、nfc读取器或其它装置,并且可通过例如互联网的广域网(wan)进行传输。

根据某些实施例,所述领域中的安全装置可在它们相应se上运行不同版本的os。因此,迁移规则引擎可被配置成相对于不同os版本产生多组迁移规则和终止规则。可将这些规则组广播到安全装置中的每一个安全装置。用于安全装置中的每一个安全装置的迁移引擎可基于当前在所述装置的se上运行的os版本选择适当的规则组。可替代的是,主机处理器可在获取se的os版本之后选择适当的规则组,并且仅将所选的组转发到se。如果安全元件并不具有足以接收并且存储多组规则的通信带宽和暂时/永久存储器,那么这个方法可具有某些优点。这允许在不使用如se大的带宽的情况下仍然将相同的os更新和迁移组广播到每一手机。

除非另外指示,否则用于本说明书(包括权利要求书)的各种术语应在本领域中给予它们普通简单的涵义。作为例子,本说明书借助于电路或电路系统描述和/或说明适用于实施各种实施例的方面。在一些情况下,可使用例如区块、模块、装置、系统、单元、控制器或引擎描述和说明电路系统的配置。可关于此类电路或电路系统如何在一起使用和如何与其它元件一起使用来论述此类电路或电路系统,以便描述相对于它们的相关结构、步骤、功能或操作的某些实施例。举例来说,在上文论述的某些实施例中,如可根据图中示出的方法进行的,一个或多个模块是被配置和被布置成用于实施这些操作/活动的离散逻辑电路或可编程逻辑电路。在某些实施例中,可使用一个或多个计算机处理电路和存储器电路实施各种模块。内存电路系统可存储和访问一组(或多组)指令(和/或用作定义如何执行计算机处理电路的配置数据),这可以被执行以便实施如本发明所描述的算法或过程。

基于以上论述和示例,本领域的技术人员将易于认识到,可对各种实施例作出各种修改和变化而无需严格地遵循本文中所说明并描述的示例性实施例和应用。举例来说,如图式中示例的方法可涉及以各种次序进行的步骤,其中保持本文的实施例的一个或多个方面,或可涉及更少或更多的步骤。此类修改并不脱离本发明的各方面的真实精神和范畴,包括在权利要求书中阐述的方面。

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