CN103635879A - 信息处理设备、信息处理方法及计算机程序 - Google Patents

信息处理设备、信息处理方法及计算机程序 Download PDF

Info

Publication number
CN103635879A
CN103635879A CN201280032541.1A CN201280032541A CN103635879A CN 103635879 A CN103635879 A CN 103635879A CN 201280032541 A CN201280032541 A CN 201280032541A CN 103635879 A CN103635879 A CN 103635879A
Authority
CN
China
Prior art keywords
code
backup
variable
definition
key
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.)
Granted
Application number
CN201280032541.1A
Other languages
English (en)
Other versions
CN103635879B (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN103635879A publication Critical patent/CN103635879A/zh
Application granted granted Critical
Publication of CN103635879B publication Critical patent/CN103635879B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/602Providing cryptographic facilities or services
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

[问题]要提供一种信息处理设备,利用它可以容易地和安全地执行过程编程语言开发。[技术方案]提供了一种信息处理设备,包括:程序执行单元,其解释和执行由过程语言创建的计算机程序代码;以及备份单元,其以这样的格式创建备份,其中代码中的变量定义和函数定义可解释为过程语言的代码。

Description

信息处理设备、信息处理方法及计算机程序
技术领域
本发明涉及信息处理设备、信息处理方法及计算机程序。
背景技术
在诸如LISP、Ruby和Python的过程编程语言中,在程序的执行时读取关于变量和函数的定义信息,并且基于读取的函数定义和变量值执行程序。用于解释和执行这样的过程编程语言的软件在每次启动时读取以过程编程语言描述的应用程序,此后,根据读取的应用程序处理输入数据并输出处理结果。
作为用于解释和执行过程编程语言的软件的特征,一旦输入定义的变量名,就可以读取变量的内容,并且一旦输入用于读取定义的函数的函数,就可以输出函数代码。
引用列表
专利文献
专利文献1:国际专利申请的国家公开No.2011-513824
专利文献2:国际公开No.WO20050121976
发明内容
技术问题
用于解释和执行过程编程语言的软件的特征是具有这样的方式,一旦输入定义的变量名,就可以读取变量的内容,并且一旦输入用于读取已定义函数的函数,就可以输出函数代码。然而,当输出信息没有改变地输入时,软件不能像原始定义表达一样解释它。
为了创建程序,典型地,启动用于编辑程序的编辑程序,并且描述程序的源代码,使得创建其中描述程序的源代码的文件。此后,启动用于解释源代码的处理程序,并且执行程序,然后,如果需要修改程序,则再次重复使用编辑程序的编辑。因此,在可以实际使用程序之前,需要重复编辑和修改的多个步骤。
因此,考虑上述问题作出了本公开。本公开的目的是提供一种新颖的和改进的信息处理装置、信息处理方法和计算机程序,其使得可以容易地执行过程编程语言的开发。
问题的解决方案
根据本公开的实施例,提供了一种信息处理设备,包括:程序执行单元,配置为读取、解释和执行以过程语言创建的计算机程序的代码;以及备份单元,配置为以这样的格式创建备份,其中由所述程序执行单元执行的代码中的变量定义和函数定义可解释为过程语言的代码。
根据本公开,程序执行单元读取、解释和执行以过程语言创建的计算机程序的代码。然后,备份单元以这样的格式创建备份,其中由所述程序执行单元执行的代码中的变量定义和函数定义可解释为过程语言的代码。相应地,当程序基于代码由程序执行单元执行时,直接变量定义和函数定义被修改,使得这些定义可以备份,并且代码可以以更短时间读取。变得可以容易地执行过程编程语言的开发。
根据本公开,提供了一种信息处理方法,包括:解释并执行以过程语言创建的计算机程序的代码;以及以这样的格式创建备份,其中执行的代码中的变量定义和函数定义可解释为过程语言的代码。
根据本公开,提供了一种计算机程序,用于使得计算机执行:解释并执行以过程语言创建的计算机程序的代码;以及以这样的格式创建备份,其中执行的代码中的变量定义和函数定义可解释为过程语言的代码。
发明的有利效果
如上所述,根据本公开,可以提供一种新颖的和改进的信息处理装置、信息处理方法和计算机程序,其使得可以容易地执行过程编程语言的开发。
附图说明
图1是示出传统程序开发模式的流程的说明图。
图2是示出根据本公开实施例的信息处理系统10的功能配置的说明图。
图3是示出可以由列表处理模块定义并且称为码元的数据结构说明图。
图4是示出用于构造列表结构的cons单元410的示例性配置的说明图。
图5是示出存储在码元400的名称区域401中的用于存储名称的名称存储表420的示例性结构的说明图。
图6是示出用于存储认证密钥的认证密钥表430的示例性结构的说明图。
图7是示出图3所示的码元、图4所示的cons单元、图5所示的名称存储表和图6所示的认证密钥表的对应关系的说明图。
图8是示出根据本公开实施例的CPU110的功能配置的说明图。
图9是示出根据本公开实施例的信息处理装置100的行为的流程图。
图10A是示出内部表示示例的说明图。
图10B是示出内部表示示例的说明图。
图10C是示出内部表示示例的说明图。
图11是示出通过根据本公开实施例的信息处理装置100的程序开发模式的说明图。
图12是示出根据本公开实施例的信息处理系统10’的功能配置的说明图。
图13是示出根据本公开实施例的信息处理装置100的硬件配置的说明图。
具体实施方式
以下,将参考附图详细描述本发明的优选实施例。注意,在本说明书和附图中,具有基本相同功能和结构的元件用相同参考标号表示,并且省略重复说明。
将按照以下顺序给出描述。
<1.传统程序开发模式>
<2.本公开的实施例>
[2-1.信息处理系统的功能配置]
[2-2.示例性程序结构]
[2-3.信息处理装置的行为]
[2-4.修改]
[2-5.信息处理装置的硬件配置]
<3.结论>
<1.传统程序开发模式>
在详细描述本公开的优选实施例之前,首先,将描述传统程序开发模式及其问题。图1是示出传统程序开发模式的流程的说明图,其基于本公开人在日本专利申请No.2011-027625中公开的技术实现。在下面,将使用图1描述传统程序开发模式。
为了创建程序的源代码,首先,源代码的创建者启动用于编辑源代码的编辑器(步骤S11),并且使用启动的编辑器编辑其中要描述源代码的程序文件1(步骤S12)。当源代码的创建者已经使用编辑器完成程序文件1的编辑时,源代码的创建者退出编辑器(步骤S13)。
一旦源代码的创建者已经创建其中描述源代码的程序文件1,程序文件1中描述的源代码通过用于解释源代码的程序(脚本)解释,并且执行基于源代码的处理。一旦启动了脚本(步骤S21),脚本读取程序文件1(步骤S22),然后,设置程序文件1中描述的变量并设置用于使用变量的密钥(步骤S23)。这些变量设置和密钥设置基于本公开人在日本专利申请No.2011-027625中公开的技术。
一旦程序被脚本读取并且执行变量设置和密钥设置,就调试程序(步骤S24)。作为调试的结果,判断是否需要修改程序(步骤S25),并且如果进行了需要修改程序的判断,则源代码的创建者再次回到其中描述源代码的程序文件1的编辑。另一方面,如果进行了不需要修改程序的判断,则在不需要改变的情况下使用程序(步骤S26)。然后,退出脚本用于终止程序的使用(步骤S27)。
因此,传统上,程序的开发通过重复源代码的编辑和程序的调试来执行。然而,在这样的程序开发模式中,不可能在脚本中读取程序文件1的状态下执行调试,并且为了修改源代码,必须再次启动编辑器,并且返回以利用编辑器编辑源代码。因此,在传统程序开发模式中,不可能执行即时调试。此外,当想要对程序增加函数时,类似地,必须返回以编辑源代码,并且连续增加类型程序开发是不可能的。
此外,还存在这样的问题,其中当脚本读取源代码一次时,不可能恢复原始定义。例如,假设这样的情况,其中在作为Lisp族的脚本语言的Scheme中,使用“define”用于定义变量的值,变量a的值定义为(define a123)。在该情况下,在上述源代码“(define a123)”的读取之后,如果输入“a”用于引用变量a的值,则返回作为存储在变量a中的值的“123”。然而,在源代码被读取一次之后,即使试图从变量a和它的值恢复变量a的定义表达式,也不可能恢复作为原始定义表达式的(define a123)。
类似地,在函数的情况下,例如,函数“add3”可以定义为(define(add3x)(+x3)),但是即使输入代码读出函数,也不能恢复原始定义表达。例如,在函数的情况下,尽管存在允许获取程序代码作为Scheme中的数据的命令“get-closure-code”,即使执行该命令,在上述函数“add3”中,获取(get-closure-code add3)=>(lambda(x)(+x3)),其是不同于上述原始定义表达的定义表达。
在本公开人在日本专利申请No.2011-027625中公开的技术的系统中,可能在任何时间部分地修改程序,并且自由地读出程序的源代码和内部变量的值。在本公开人在日本专利申请No.2011-027625中公开的技术中,通过安全标志、加密通信部件和非易失性存储器,在防放篡改IC芯片中进行安全措施。然而,在大规模系统中,大容量非易失性存储器是昂贵的,并且期望以较低成本进行安全措施。
然而,在上述技术中,用于解释和执行脚本的软件要求在每次启动时读取脚本程序,解释脚本的内容以便用内部表达替换它,此后执行诸如密钥的许多安全设置。因此,担心启动之后的过程变复杂,并且要读取的脚本和密钥需要严格管理。
例如,如在专利文献2中公开的,已经开发了用于加密并保存装置的内部信息的技术。然而,在该技术中,程序数据使用非易失性存储器保存在装置的内部,保存限于程序行为的所得数据,并且没有考虑程序的动态改变。因此,在没有用于保存程序到非易失性存储器的结构的配置中,该技术不能解决上述问题。
因此,在以下描述的本公开的实施例中,将描述这样的技术,其中即使在源代码曾经在脚本中被读取并且进一步源代码被改变之后,也可以恢复最新源代码。此外,将描述这样的技术,通过简化启动以后的过程,与本公开人在日本专利申请No.2011-027625中公开的技术相比,使得可能加快程序的重启。
<2.本公开的实施例>
[2-1.信息处理系统的功能配置]
首先,将描述根据本公开实施例的信息处理系统的功能配置。图2是示出根据本公开实施例的信息处理系统10的功能配置的示例图。在下面,将使用图2描述根据本公开实施例的信息处理系统10的功能配置。
如图2所示,根据本公开实施例的信息处理系统10配置为包括执行程序的信息处理装置100、NVRAM(非易失性存储器)150、输入单元160、显示单元170和外部存储装置180。
信息处理装置100配置为能够解释和执行过程编程语言。这样的编程语言的示例包括LISP、Scheme、Ruby和Python。
如图2所示,信息处理装置100配置为包括CPU(中央处理单元)110、加密/解密单元120、ROM130和RAM140。
CPU110控制信息处理装置100的行为,并且通过执行ROM130中预先记录的操作系统软件的读出命令,能够运行操作系统。在操作系统的运行中,CPU110能够使用RAM140作为工作区。这里,ROM130中记录的操作系统软件例如是能够解释和执行如上所述的过程编程语言的操作系统软件。在本公开中,可以允许这样的方式,使得从外部存储装置180读出过程程序以执行。
关于要从根据实施例的信息处理装置100的ROM130读取的程序,存储这样的程序,对该程序增加安全特征以及作为解释器的处理,该解释器是用于上述过程编程语言的基本特征。从而,当将应用程序嵌入到信息处理装置100时,不必预先编译它,并且因为增加了安全特征,所以可以在使用该应用的信息处理装置100自身中执行调试。这导致开发步骤的减少,并且允许在短时间段内开发应用程序。
加密/解密单元120使用指定的密钥对输入数据执行加密处理以输出它,并且使用指定的密钥对输入的加密数据执行解密处理以输出它。在实施例中,当源代码保存到外部存储装置180时,源代码被加密,并且在加密状态下存储在外部存储装置180中的源代码被解密。加密/解密单元120用于源代码的加密和解密的密钥存储在NVRAM150中。
输入单元160连接到信息处理装置100,并且接收用户对信息处理装置100的输入操作。输入单元160可以由例如键盘、鼠标、触摸板等构成。显示单元170连接到信息处理装置100,并且基于CPU110的处理,显示信息处理装置100的CPU110的信息处理结果。显示单元170例如可以由平板显示设备(如液晶显示器和有机EL显示器)构成。
外部存储装置180连接到信息处理装置100,并且存储信息处理装置100中使用的各种数据。显示单元170例如可以由硬盘构成。
在实施例中,可以解释和执行过程编程语言的脚本解释和执行模块(也称为“列表处理模块”)和脚本解释和执行模块读取并执行的源代码存储在外部存储装置180中。该源代码在被加密/解密单元120加密的状态下存储。因为源代码在被加密/解密单元120加密的状态下存储在外部存储装置180中,所以可能增强源代码的机密性。
在图2中,NVRAM150、输入单元160和显示单元170显示为在信息处理装置100的外部提供,但是本公开不限于该示例。也就是说,NVRAM150、输入单元160和显示单元170的至少一个可以配置为在信息处理装置100的内部提供。至此,已经使用图2描述了根据本发明实施例的信息处理装置100的硬件配置。接着,将描述图2所示的信息处理装置100执行的计算机程序的结构。
[2-2.示例性程序结构]
图3到6是示意性示出根据本发明实施例的信息处理装置100执行的计算机程序的示例性结构。在以下,将使用图3到6描述根据本发明实施例的信息处理装置100执行的计算机程序的示例性结构。
以下,如果没有另外明确,则将基于信息处理装置100执行的计算机程序的语言是LISP的假设给出描述。然而,在本公开中,可以用作计算机语言的语言不限于该示例,并且如果允许这样的配置,其中在扩展特征或标准特征中可以对每个变量和每个函数设置安全,则可以允许任何过程编程语言。
在计算机程序的执行中,CPU120加载列表处理模块,用于解释和执行在信息处理装置100中开发并嵌入信息处理装置100的程序的源代码。图3是示出可以由列表处理模块定义并称为码元的数据结构的说明图。
如图3所示,可以由列表处理模块定义的码元400由名称区域401、便利定义区域402、函数定义区域403和安全属性区域404。
名称区域401指示可打印字符串表。如果码元指定变量,则名称区域401存储变量名称,并且如果码元指定函数,则存储函数名称。在图3中,名称区域401指示为“pname”。
如果码元指定简单变量,则变量定义区域402存储值,并且如果码元指定列表变量,则存储指示列表的值。在图3中,变量定义区域402指示为“value”。
如果码元指定函数,则函数定义区域403存储函数内容(substance)。在图3中,函数定义区域403指示为“function”。
安全属性区域404存储与码元的安全属性有关的信息。安全属性的示例包括变量的读出属性、变量的改变属性和函数的执行属性。安全属性区域404存储指示对码元的访问允许的访问标志、和指示存储用于访问码元的认证密钥的表的值。
除了图3所示的码元400,连续地定义构成列表结构的单元,称为cons单元。图4是示出构成列表结构的cons单元410的示例性配置。如图4所示,cons单元410是包括两个指示符,称为CAR缝隙(slot)411和CDR缝隙412。在图4中,car0到car9示出为CAR缝隙411,并且cdr0到cdr9示出为CDR缝隙412。自然,不用说每个缝隙的数量不限于该示例。
还提供用于存储在码元400的名称区域401中存储的名称的表。图5是示出用于存储在码元400的名称区域401中存储的名称的名称存储表420的示例性结构的说明图。在图5所示的名称存储表420中,存储名称“eval”、“setq”、“cons”、“defun”和“osaifu”,并且它们一一对应作为它们的内容的码元。参考标号421表示用于存储名称“eval”的区域,参考标号422表示用于存储名称“setq”的区域,参考标号423表示用于存储名称“cons”的区域,参考标号424表示用于存储名称“defun”的区域,并且参考标号425表示用于名称“osaifu”的区域。一旦码元名称从名称存储表420的外部输入到名称存储表420,与存储在名称存储表420中的输入码元名称对应的码元被指示和评估。这里,“osaifu”是当电子货币特征并入信息处理装置100中时示出电子货币的余额的变量。
然后,还提供对应于存储在码元400的安全属性区域404中并且指示用于存储认证密钥的表的值的表。图6是示出用于存储认证密钥的认证密钥表430的示例性结构的说明图。图6示出由认证密钥表430中的版本号(kv1到kv5)管理的认证密钥的状态。参考标号431表示用于存储密钥“key1”的区域,参考标号432表示用于存储密钥“key2”的区域,参考标号433表示用于存储密钥“key3”的区域,参考标号434表示用于存储密钥“key4”的区域,并且参考标号435表示用于存储密钥“key5”的区域。
图7是示出图3所示的码元、图4所示的cons单元、图5所示的名称存储表和图6所示的认证密钥表的对应关系的说明图。如上所述,码元具有指示可打印名称的表的区域、指示值或值的列表的区域、函数属性、和安全属性。函数属性具有指示函数的类型和函数的内容的指示符,并且安全属性具有指示安全标志、密钥版本和密钥的指示符。这里,图7示出参考标号431表示的密钥“key1”和参考标号432表示的密钥“key2”在图6所示的认证密钥表430中使用的方式。
因此,列表处理模块的一般结构称为码元,并且由对数值或包含数值的列表的指示符、到函数定义情况下的函数的指示符和指示用于存储可打印字符串的表的指示符构成。
在实施例中,除了这些,对包含安全属性和两种加密密钥的信息的表的指示符增加到码元中。对一个密钥的指示符指示主密钥,并且对另一个密钥的指示符指示用于码元的访问密钥(认证密钥)。主密钥是当改变码元的安全属性或访问密钥时必须通过手动认证预先执行的认证。在内容评估中,如果码元中设置的安全标志设为开,则码元中包含的信息的内容改变和函数执行已经利用增加到码元的一个密钥认证是使用码元的要求。另一个密钥是当改变码元的密钥时检查允许的允许认证密钥。为了改变访问信息,要求处于已经利用允许认证密钥认证的状态。
如图4所示,存在示出码元之间的关系的两组指示符,称为cons单元。它们具有这样的结构,其中每个指示符指示表示码元或另一码元的cons单元。
内置函数写入ROM130中,并且在信息处理装置100的第一次通电时,ROM130中写入的内置函数在RAM140中创建的码元中定义。在随后的通电时,已经登记的码元不初始化。
上述配置具有当用户登记新函数时类似地工作的结构。
CPU110运行的列表处理模块具有这样的配置,其中码元可以自由地登记,并且数值、列表和函数可以自由地登记到码元。然后,为了使用要登记的码元上的安全特征,加密密钥和访问标志登记到码元。对CPU110运行的列表处理模块,初始设置称为系统密钥的加密密钥。在新登记的码元中,只在处于其中已经利用系统密钥执行手动认证的模式的状态下(在稍后描述的模式的状态下)可以设置对码元特定的密钥和访问标志。此外,要由CPU110运行的列表处理模块执行的计算机程序具有这样的配置,其中只可以在处于已经利用系统密钥执行手动认证的模式的状态下改变要使用的变量和函数的定义。
在CPU110运行的列表处理模块中,当登记函数码元时,对于要在函数中使用的码元已经利用所有密钥认证是登记要求。列表处理模块具有这样的结构,其中当随后使用登记的函数时,只需要已经利用其函数执行密钥认证。
至此,已经描述了图2所示的信息处理装置100执行的计算机程序的机构。接着,将描述信息处理装置100的CPU110的功能配置。
图8是示出信息处理装置100中包括的CPU110的功能配置的说明图。在以下,将使用图8描述CPU110的功能配置。
如图8所示,CPU110配置为包括程序执行单元112、备份单元114和恢复单元116。在根据本公开实施例的CPU110中,例如,通过读出和执行ROM130中存储的计算机程序,CPU110可以具有图8所示的功能配置。
程序执行单元112解释并执行以过程语言创建的计算机程序的代码。在实施例中,具有列表处理模块的上述特征的程序执行单元112可以读取外部存储装置180中存储的源代码,并且通过解释源代码,可以执行源代码中描述的内容。
备份单元114将正在由程序执行单元112执行的计算机程序中的变量定义和函数定义以可以被解释为上述过程语言的代码的格式备份到外部存储装置180。例如,在作为Lisp族的脚本语言的Scheme中,在使用用于定义变量的值的“define”将变量的值定义为S-expression(define a123)的情况下,备份单元114将该变量的变量定义备份为S-expression(define a123)。此外,例如在定义函数“add3”为S-expression(define(add3x)(+x3))的情况下,备份单元114将该函数的函数定义备份为S-expression(define(add3x)(+x3))。在计算机程序中的变量定义和函数定义的备份中,备份单元114可以使用加密/解密单元120加密它们。
恢复单元116读取和恢复备份单元114备份的数据。在计算机程序中的变量定义和函数定义的备份中,备份单元114使用加密/解密单元120加密它们的情况下,恢复单元116可以使用加密/解密单元120解密读取的数据并恢复它们。
通过具有这样的配置,CPU110可以解释并执行以过程语言创建的计算机程序的代码,并且可以以过程语言可以没有改变地解释的格式备份正在执行的代码中的变量定义和函数定义。通过具有这样的配置,与计算机程序的传统开发步骤相比,可能减少信息处理装置100的计算机程序的过程语言中的开发步骤。至此,已经描述了信息处理装置100的CPU110的功能配置。接着,将描述图2所示的信息处理装置100的行为。
[2-3.信息处理装置的行为]
图10是示出根据本公开实施例的信息处理装置100的行为的流程图。图10所示的流程图示出当信息处理装置100通电并且信息处理装置100执行列表处理模块时信息处理装置100的行为。在以下,将参考图10描述根据本公开实施例的信息处理装置100的行为。
一旦信息处理装置100通电,CPU110的程序执行单元112从ROM130读取脚本解释和执行模块(步骤S101)。在步骤S101中一旦通过CPU110的程序执行单元112从ROM130读取脚本解释和执行模块,随后,CPU110的程序执行单元112检查外部存储装置180中是否存在源代码的备份数据(步骤S102)。
作为上述步骤S102中判断的结果,如果外部存储装置180中存储源代码的备份数据,则已经读取脚本解释和执行模块的CPU110的程序执行单元112从外部存储装置180读取源代码的备份数据(步骤S103)。在利用NVRAM150中存储的密钥加密源代码的备份数据的情况下,已经读取脚本解释和执行模块的CPU110使用NVRAM150中存储的密钥,在恢复单元116中解密备份数据,并且在程序执行单元112中读取它们作为脚本语言(步骤S103)。已经读取备份数据作为脚本语言的脚本解释和执行模块输出输入等待信息到显示单元170,并且变为等待来自源代码的编辑器的输入的状态。
通过从外部存储装置180读取源代码,脚本解释和执行模块可以读取源代码中描述的变量和函数的定义、以及变量和函数中指定的密钥的信息,并且可以执行程序。
在上述步骤S103中已经从外部存储装置180读取源代码的备份数据之后,源代码的编辑器可以进行源代码的改变(步骤S104)。通过源代码的编辑器从输入单元160输入的脚本语言,从解释器可以没有改变地解释的外部描述格式解释为脚本解释和执行在通过解释器的解释后可以解释的内部描述格式,然后记录在RAM140中。作为上述步骤S102中的判断结果,如果外部存储装置180中不存在源代码的备份数据,则通过源代码的编辑器新创建源代码(步骤S104)。
此后,源代码的编辑器使用已经信息处理装置100,通过READ-EVAL-PRINT循环进行程序执行(步骤S105)。
在通过源代码的编辑器的程序创建中,已经读取脚本解释和执行模块的CPU110的程序执行单元112总是判断是否从源代码的编辑器给出备份指令(步骤S106)。例如,源代码的编辑器可以通过操作输入单元160并输入备份命令给出备份指令。
如果从源代码的编辑器给出备份指令,则已经读取脚本解释和执行模块的CPU110的备份单元114将图3到6所示的码元表、代码表、名称表和密钥表的内容反向转换为与它们在脚本解释和执行模块中读取时相同的描述格式。备份单元114利用NVRAM150中存储的密钥解码反向转换的数据,并且将它们输出为加密的备份数据,然后将它们存储在外部存储装置180中(步骤S107)。
这里,示出通过根据实施例的备份单元114的源代码的备份的示例。例如,在作为Lisp族的脚本语言的Scheme中,在函数定义的S-expression是(define(add3x)(+x3))的情况下,内部表示具有图10A所示的结构。因此,在该函数“add3”的备份中,备份单元114基于图10A所示的内部表示将它备份,使得函数定义与上述S-expression(define(add3x)(+x3))一致。
此外,例如在变量定义的S-expression是(define a123)的情况下,内部表示具有图10B所示的结构。这里,假设该变量“a”的变量值改变的情况。例如,一点用于改变该变量“a”的变量值的S-expression(set!a234)输入到信息处理装置100,变量“a”的值变为“234”,并且内部表示变为具有图10C所示的结构。
然后,一旦备份单元114执行到变量“a”的定义的反向转换,基于图10C所示的内部表示获取S-expression(define a234)。因此,在备份时,备份单元114可以从从备份时间点的变量值获取变量定义的S-expression。对于函数定义,上述备份也是如此,并且在脚本解释和执行模块中已经读取函数定义之后,如果函数定义被编辑器改变,则备份单元114可以获取处于改变状态的函数定义的S-expression。
因此,通过从源代码的编辑器接收备份指令并且备份接收指令时的状态,例如,在停止系统一次并且随后重启系统的情况下,系统的启动恢复已准备。此外,如果意图知道程序的源代码,则可以通过并入Scheme中的函数(read-closure-code)等或用于备份的函数读出它,从而不必将源代码保留在信息处理装置100的内部,此外不必管理源代码。
图11是示出通过根据本公开实施例的信息处理装置100的程序开发模式的说明图。在根据本公开实施例的信息处理装置100中,通过CPU110的程序执行单元112读取和执行的脚本解释和执行模块在启动时读取外部存储装置180中存储的源代码的备份数据,并且如果它们被加密则使用预定密钥解密备份数据。源代码的编辑器使用输入单元160输入程序的源代码或函数执行指令,并且脚本解释和执行模块将结果输出到显示单元170。
然后,一旦源代码的编辑器使用输入单元160输入备份指令,脚本解释和执行模块将备份指令时间点的状态反向转换为与脚本解释和执行模块中读取时相同的描述,并且将它备份。在备份时,CPU110的备份单元114可以使用预定密钥执行加密。
因此,通过在脚本解释和执行模块中准备程序的备份特征,连续增加类型的程序开发是可能的。从而,即使系统的规模较大,也可能提供可以安全使用的脚本执行处理环境,同时增长程序。发现在这样的连续增加类型的程序开发模式中,与图1所示的传统程序开发模式相比,极大地减少了工作过程。
备份数据以与脚本解释和执行模块接收的普通脚本相同的格式精确地描述。因此,备份数据的读取不要求另外的接口。此外,曾经读取的脚本语言程序利用签名加密并输出,因此可能检测篡改并保护内部数据不曝光。
在本公开人在日本专利申请No.2011-027625中公开的技术中,在设置安全标志的状态下设置变量和函数的情况下,必须利用各个密钥认证,并且只通过读取脚本程序不恢复从前的状态。另一方面,本公开实施例中所示的恢复方法在每次加密密钥设置时不要求认证,导致系统的简单重启。
在已经从文件中读取脚本语言程序之后,在一些情况下,通过使用输入单元160或运行程序的改变,改变变量值或函数代码。在本公开中,通过备份指令,可能将改变的内容以与在脚本解释和执行模块中读取时相同的格式备份,并且获得源代码的最终形式。
解密并存储为备份数据的数据通过脚本解释和执行模块以及加密单元解密,并且函数、变量值和安全密钥恢复,因此,不必从开头读取脚本语言,不必重新配置变量值,并且不必重新配置加密密钥,导致系统的更快重启。
[2-4.修改]
在上面描述中,通过要在信息处理装置100中执行的脚本解释和执行模块读取的脚本的备份数据已经描述为存储在与信息处理装置100连接的外部存储装置180中。然而,脚本的备份数据的存储不限于该示例。
图12是示出根据本公开实施例的修改的信息处理装置10’的配置的说明图。不同于图2所示的信息处理装置10,在图12所示的信息处理装置10’中,用于存储脚本的备份数据的外部存储装置200经由网络190与信息处理装置100连接。因此,即使在用于存储脚本的备份数据的外部存储装置200经由网络190与信息处理装置100连接的状态下,仍然可能将脚本的备份数据存储在外部存储装置200中,并且从外部存储装置200读取脚本的备份数据。
将描述另一修改。在信息处理装置100已经通过以过程语言创建的脚本读取程序之后,CPU110将备份数据保存到与信息处理装置100连接的外部存储装置180(如硬盘),从而可以自动地读取备份数据。因此,特征是不必通过键盘或网络再次读取程序。
同时,对于从保存到信息处理装置100或外部存储装置180的备份文件中删除曾经并入的函数或变量,除非使用诸如文件的获取和编辑的方式,否则删除是不可能的。具体地,当利用信息处理装置100具有的特定安全密钥加密备份文件时,除非利用安全密钥解密,否则即使通过诸如文件的获取和编辑的方式的删除也是不可能的。
如果继续脚本程序的改变,则生成废弃的变量和函数名称。废弃的变量和函数不仅消耗内部资源,而且还使得难以发现它们仍然在使用或者已经废弃。
因此,删除命令可以并入要在信息处理装置100中执行的脚本解释和执行模块中,以便用户可以通过执行删除命令删除不必要的变量和函数。这导致脚本程序的容易编辑。
[2-5.信息处理装置的硬件配置]
接着,将参考图13详细描述根据本公开实施例的信息处理装置100的硬件配置。图13是用于说明根据本公开实施例的信息处理装置100的硬盘配置的方块图。
信息处理装置100主要包括CPU901、ROM903、RAM905、主机总线907、桥909、外部总线911、接口913、输入装置915、输出装置917、成像装置918、存储装置919、驱动器921、连接端口923和通信装置925。
CPU901用作操作处理器和控制器,并且根据ROM903、RAM905、存储装置919或可移除记录介质927中记录的各种程序控制信息处理装置100中的全部或一些操作。ROM903存储CPU901使用的程序、操作参数等。RAM905主要存储在CPU901的运行中使用的程序和在程序的执行中适当地修改的参数等。这些组件经由内部总线(如CPU总线)形成的主机总线907相互连接。
主机总线907经由桥909连接到诸如PCI(外围组件互连/接口)总线的外部总线911。
输入装置915可以是被用户操作的操作设备,如鼠标、键盘、触摸面板、按钮、开关和操纵杆。输入装置915例如可以是使用红外光或其他无线电波的远程控制单元(所谓的遥控器),或者可以是响应于信息处理装置100的操作可操作的外部连接装置929,如移动电话或PDA。此外,输入装置915例如包括输入控制电路,其基于用户利用上述操作装置输入的信息生成输入信号,并且将输入信号输出到CPU901。通过操作输入装置915,信息处理装置100的用户可以输入各种数据到信息处理装置100中,并且可以指令处理操作。
输出装置917包括能够视觉地或听觉地将获取信息通知给用户的设备。这样的设备的示例包括:显示设备,如CRT显示设备、LCD设备、等离子显示设备、EL显示设备和灯;语音输出设备,如扬声器和耳机;打印机;移动电话和传真机。输出装置917例如输出通过信息处理装置100执行的各种处理获得的结果。更具体地,显示设备以文本或图像的形式暑促和通过信息处理装置100执行的各种处理获得的结果。语音输出设备将由再现的语音数据、声音数据等构成的音频信号转换为模拟信号,并且输出模拟信号。
例如,成像装置918安装在显示设备的上部,并且能够成像信息处理装置100的用户的静态图像或运动图像。成像装置918例如包括CCD(电荷耦合器件)图像传感器或CMOS(互补金属氧化物半导体)图像传感器,并且将镜头收集的光转换为电信号,以便成像静态图像或运动图像。
存储装置919是用于数据存储的设备,其配置为信息处理装置100的存储部分的示例。存储装置919例如包括诸如HDD(硬盘驱动器)的磁存储设备、半导体存储设备、光存储设备或磁光存储设备。存储装置919存储要由CPU901执行的程序和各种数据、从外部获得的各种数据,如声音信号数据和图像信号数据。
驱动器921是用于记录介质的读写器,其并入或外部附接到信息处理装置100。驱动器921读取记录在附接的可移除记录介质927(如磁盘、光盘、磁光盘和半导体存储设备)上的信息,并且将读取的信息输出到RAM905。驱动器921还可以将数据写入附接的可移除记录介质927,如磁盘、光盘、磁光盘和半导体存储设备。可移除记录介质927例如包括DVD介质、蓝光介质、致密闪存(注册商标)(CompactFlash,CF)、存储棒、SD存储卡(安全数字存储卡)等。例如,可移除记录介质927还可以是IC卡(集成电路卡)或并入非接触IC芯片的电子设备等。
连接端口923是用于将设备直接连接到信息处理装置100的端口,例如USB(通用串行总线)端口、IEEE1394端口(如i-Link等)、和SCSI(小型计算机系统接口)端口、RS-232C端口、光学声音端子和HDMI(高清晰度多媒体接口)端口、通过将外部连接装置929连接到连接端口923,信息处理装置100从外部连接装置929直接获取声音信号数据和图像信号数据,或者给外部连接装置929提供声音信号数据和图像信号数据。
通信装置925例如是包括用于连接到通信网络931的通信设备等的通信接口。通信装置925例如可以是用于有线或无线LAN(局域网)、蓝牙、WUSB(无线USB)等的通信卡。此外,通信装置925可以是用于光通信的路由器、用于ADSL(非对称数字用户线)的路由器、用于各种通信的调制解调器等。通信装置925可以基于诸如TCP/IP的预定协议,例如发送信号等到因特网或其他通信设备或从其接收信号。此外,连接到通信装置925的通信网络931可以由以有线或无线方式连接的网络等构成,并且例如可以是因特网、家庭LAN、红外通信、无线电波通信、卫星通信等。
<3.结论>
如上所述,根据本公开实施例,可以解释和执行过程编程语言的信息处理装置100基于用户(源代码的编辑器)的备份指令,将备份指令的时间点的状态反向转换为与脚本解释和执行模块中的读取时相同的描述,从而将其备份到与信息处理装置100连接的外部存储装置180(或经由网络190与信息处理装置100连接的外部存储装置200)。在备份指令的时间点的状态的备份中,可能使用NVRAM150中存储的密钥加密它。
备份到与信息处理装置100连接的外部存储装置180(或经由网络190与信息处理装置100连接的外部存储装置200)的数据,在信息处理装置100的启动时通过脚本解释和执行模块读取和恢复。在对变量和函数设置安全标志的状态下,该恢复不要求利用密钥认证,不同于本公开人在日本专利申请No.2011-027625中公开的技术,因此可能仅通过读取脚本程序恢复之前的状态。
上述实施例的流程图中所示的步骤不仅包括以上述顺序按时间序列执行的处理,而且包括要并行或独立执行的处理,它们不需要按时间序列执行。不用说,即使在按时间序列执行的步骤中,在一些情况下顺序可以适当地改变。
此外,说明书中描述的一系列处理可以通过硬件、软件或硬件与软件的复合配置执行。在通过软件执行处理的情况下,其中记录处理顺序的程序可以安装到并入专用硬件中的计算机的存储器中以便执行,或者程序可以安装到能够执行各种处理的通用计算机中以便执行。
上面已经参考附图描述了本发明的优选实施例,然而不发明不限于上述示例。本领域技术人员可以找到所附权利要求范围内的各种改变和修改,并且应当理解它们将自然地落入本发明的技术范围内。
此外,本技术还可以配置如下。
(1)一种信息处理设备,包括:
程序执行单元,配置为读取、解释和执行以过程语言创建的计算机程序的代码;以及
备份单元,配置为以这样的格式创建备份,其中由所述程序执行单元执行的代码中的变量定义和函数定义可解释为过程语言的代码。
(2)按照(1)所述的信息处理设备,包括:
密钥保持单元,配置为保持受防篡改机制保护的密钥;以及
加密和解密单元,配置为使用密钥执行加密和解密,
其中,所述备份单元利用所述加密和解密单元加密在备份的时间点由所述程序执行单元定义的变量的值、由程序修改的变量的值、函数定义和对所述程序执行单元设置并由所述程序执行单元保持的信息,然后创建备份。
(3)按照(2)所述的信息处理设备,包括:
恢复单元,配置为读取由所述备份单元创建的备份,并且使用所述加密和解密单元解密并恢复读取的备份。
(4)按照(3)所述的信息处理设备,其中,所述备份单元检查备份的存在,并且当存在备份时,所述程序执行单元读取备份。
(5)按照(1)到(4)的任一所述的信息处理设备,其中,所述程序执行单元删除读取的代码中的变量定义或函数定义。
(6)一种信息处理方法,包括:
解释并执行以过程语言创建的计算机程序的代码;以及
以这样的格式创建备份,其中由所述程序执行单元执行的代码中的变量定义和函数定义可解释为过程语言的代码。
(7)一种计算机程序,用于使得计算机执行:
解释并执行以过程语言创建的计算机程序的代码;以及
以这样的格式创建备份,其中由所述程序执行单元执行的代码中的变量定义和函数定义可解释为过程语言的代码。
参考标号列表
10信息处理系统
100信息处理装置
110CPU
112程序执行单元
114备份单元
116恢复单元
120加密/解密单元
130ROM
140RAM
150NVRAM
160输入单元
170显示单元
180,200外部存储装置

Claims (7)

1.一种信息处理设备,包括:
程序执行单元,配置为读取、解释和执行以过程语言创建的计算机程序的代码;以及
备份单元,配置为以这样的格式创建备份,其中由所述程序执行单元执行的代码中的变量定义和函数定义可解释为过程语言的代码。
2.按照权利要求1所述的信息处理设备,包括:
密钥保持单元,配置为保持受防篡改机制保护的密钥;以及
加密和解密单元,配置为使用密钥执行加密和解密,
其中,所述备份单元利用所述加密和解密单元加密在备份的时间点由所述程序执行单元定义的变量的值、由程序修改的变量的值、函数定义和对所述程序执行单元设置并由所述程序执行单元保持的信息,然后创建备份。
3.按照权利要求2所述的信息处理设备,包括:
恢复单元,配置为读取由所述备份单元创建的备份,并且使用所述加密和解密单元解密并恢复读取的备份。
4.按照权利要求3所述的信息处理设备,其中,所述备份单元检查备份的存在,并且当存在备份时,所述程序执行单元读取备份。
5.按照权利要求1所述的信息处理设备,其中,所述程序执行单元删除读取的代码中的变量定义或函数定义。
6.一种信息处理方法,包括:
解释并执行以过程语言创建的计算机程序的代码;以及
以这样的格式创建备份,其中执行的代码中的变量定义和函数定义可解释为过程语言的代码。
7.一种计算机程序,用于使得计算机执行:
解释并执行以过程语言创建的计算机程序的代码;以及
以这样的格式创建备份,其中执行的代码中的变量定义和函数定义可解释为过程语言的代码。
CN201280032541.1A 2011-07-08 2012-06-29 信息处理设备、信息处理方法 Expired - Fee Related CN103635879B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011152105A JP5772316B2 (ja) 2011-07-08 2011-07-08 情報処理装置、情報処理方法及びコンピュータプログラム
JP2011-152105 2011-07-08
PCT/JP2012/066721 WO2013008650A1 (ja) 2011-07-08 2012-06-29 情報処理装置、情報処理方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
CN103635879A true CN103635879A (zh) 2014-03-12
CN103635879B CN103635879B (zh) 2017-09-08

Family

ID=47505946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280032541.1A Expired - Fee Related CN103635879B (zh) 2011-07-08 2012-06-29 信息处理设备、信息处理方法

Country Status (5)

Country Link
US (1) US9262128B2 (zh)
EP (1) EP2731007A4 (zh)
JP (1) JP5772316B2 (zh)
CN (1) CN103635879B (zh)
WO (1) WO2013008650A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112166409A (zh) * 2018-06-06 2021-01-01 欧姆龙株式会社 控制系统、控制系统的控制方法以及控制系统的程序

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102192479B1 (ko) * 2014-04-23 2020-12-17 삼성전자주식회사 전자 장치의 프로그램 코드 분석 방법 및 전자 장치
EP3182134A1 (en) 2015-12-18 2017-06-21 Roche Diagnostics GmbH Method for restoring settings of an instrument for processing a sample or a reagent, and system comprising an instrument for processing a sample or reagent

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446898A (zh) * 2008-12-02 2009-06-03 南京大学 一种通过函数编程模型支持大规模分布式并行计算的方法
CN101833498A (zh) * 2009-07-31 2010-09-15 北京伟晨豪嘉科技有限责任公司 一种基于测试脚本技术的嵌入式系统自动化检测系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0392931A (ja) * 1989-09-06 1991-04-18 Nec Corp プログラム言語処理装置
CN1820260B (zh) 2004-06-14 2010-09-29 索尼株式会社 信息管理设备和信息管理方法
US8516458B2 (en) 2008-02-29 2013-08-20 Iti Scotland Limited System representation and handling techniques
JP5600301B2 (ja) 2008-02-29 2014-10-01 アイティーアイ スコットランド リミテッド システム表現およびハンドリング技術
JP5240524B2 (ja) 2009-07-28 2013-07-17 株式会社デンソー スイッチング素子の温度検出装置
EP2569705A4 (en) * 2010-05-09 2014-05-14 Citrix Systems Inc SYSTEMS AND METHOD FOR CREATING AND DISTRIBUTING ENCRYPTED VIRTUAL PLATES
JP5704951B2 (ja) * 2011-02-10 2015-04-22 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8726039B2 (en) * 2012-06-14 2014-05-13 International Business Machines Corporation Reducing decryption latency for encryption processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446898A (zh) * 2008-12-02 2009-06-03 南京大学 一种通过函数编程模型支持大规模分布式并行计算的方法
CN101833498A (zh) * 2009-07-31 2010-09-15 北京伟晨豪嘉科技有限责任公司 一种基于测试脚本技术的嵌入式系统自动化检测系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
米泽进吾: ""变量和函数保存到文件(save)"", 《HTTP:WWW.SS.SCPHYS.KYOTO-U.AC.JP/PERSON/YONEZAWA/CONTENTS/PROGRAM/GNUPLOT/SAVE.HTML》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112166409A (zh) * 2018-06-06 2021-01-01 欧姆龙株式会社 控制系统、控制系统的控制方法以及控制系统的程序
CN112166409B (zh) * 2018-06-06 2023-11-14 欧姆龙株式会社 控制系统、控制系统的控制方法以及记录介质

Also Published As

Publication number Publication date
US20140136854A1 (en) 2014-05-15
US9262128B2 (en) 2016-02-16
WO2013008650A1 (ja) 2013-01-17
JP5772316B2 (ja) 2015-09-02
CN103635879B (zh) 2017-09-08
JP2013020373A (ja) 2013-01-31
EP2731007A1 (en) 2014-05-14
EP2731007A4 (en) 2015-03-11

Similar Documents

Publication Publication Date Title
US8918633B2 (en) Information processing device, information processing system, and program
US20180007016A1 (en) Secure transfer and tracking of data using removable nonvolatile memory devices
EP0862124A2 (en) File access system for efficiently accessing a file having encrypted data within a storage device
KR20050035140A (ko) 컨텐츠 처리 장치 및 컨텐츠 보호 프로그램
RU2573211C2 (ru) Способ исполнения и система универсальной электронной карты и смарт-карты
CN103617401A (zh) 一种数据文件保护方法及装置
CN103649964A (zh) 安全寄存执行体系架构
JP4998518B2 (ja) 情報処理装置、情報処理システム及びプログラム
US8328104B2 (en) Storage device management systems and methods
CN107832589A (zh) 软件版权保护方法及其系统
Afonin et al. Mobile Forensics–Advanced Investigative Strategies
CN103635879A (zh) 信息处理设备、信息处理方法及计算机程序
JP2008250604A (ja) Webサービス識別情報利用システム、およびそれに用いる装置、方法、並びにプログラム
Blankesteijn et al. Assessing data remnants in modern smartphones after factory reset
JP6044775B2 (ja) 情報記録システム及び記録メディア
Mikhaylov Mobile Forensics Cookbook: Data acquisition, extraction, recovery techniques, and investigations using modern forensic tools
CN102930217B (zh) 一种数据保密方法及装置
CN105787385A (zh) 一种文件管理器保密盒的实现方法、装置及移动终端
KR20040097435A (ko) Usb 휴대용 저장장치를 이용한 소프트웨어 불법복제방지장치 및 방지방법
CN112069501B (zh) Fpga嵌入式终端设备比特流攻击检测方法、装置及电子设备
US20220075535A1 (en) Recording control system, control device, recording control method, and storage medium
KR101854192B1 (ko) 저장 장치의 데이터 보호 장치 및 방법
US20030056106A1 (en) Encryption system for preventing data from being copied illegally and method of the same
CN101008925A (zh) 识别密码的存储以及产生方法
US20120310897A1 (en) Electronic device and information processing method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170908

CF01 Termination of patent right due to non-payment of annual fee