CN100388191C - 程序连接方法、装置以及终端装置 - Google Patents

程序连接方法、装置以及终端装置 Download PDF

Info

Publication number
CN100388191C
CN100388191C CNB2004100318364A CN200410031836A CN100388191C CN 100388191 C CN100388191 C CN 100388191C CN B2004100318364 A CNB2004100318364 A CN B2004100318364A CN 200410031836 A CN200410031836 A CN 200410031836A CN 100388191 C CN100388191 C CN 100388191C
Authority
CN
China
Prior art keywords
program
connection
storer
connect
class libraries
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.)
Expired - Fee Related
Application number
CNB2004100318364A
Other languages
English (en)
Other versions
CN1534467A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1534467A publication Critical patent/CN1534467A/zh
Application granted granted Critical
Publication of CN100388191C publication Critical patent/CN100388191C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种在保存连接后程序的存储器受到容量限制的情况下可以尽可能提高连接后程序的执行时速度的程序连接方法、装置及程序、程序产品以及终端装置。作为初始设定,将进行连接的对象设定为全部类库(221)。由此全部的类库被连接(223)。接着,判定保存连接后程序的存储器是否溢出(225)。若溢出,则将使用目前正连接的类库的应用程序数的最大值赋值给变量N(231)。然后,变更设定为“不连接在N个及以上应用程序中使用的类库”的内容,再度进行连接(223)。若存储器不溢出,则处理结束(228)。

Description

程序连接方法、装置以及终端装置
技术领域
本发明涉及一种程序连接方法、装置及程序、程序产品以及终端装置,其对利用编译器将以所谓源程序即原始语言记述的程序变换而得到的中间语言程序、具体讲例如不能确定执行时的绝对地址的程序、和通用的程序库多个结合,生成例如能确定执行时的绝对地址的目标程序。但是,上述执行时的有无确定绝对地址只不过是一个示例而并未限于此。
本发明特别涉及一种受到执行环境下的存储器容量的限制大、在以便携式机器的各种装置中执行的、例如用Java(R)语言(在本说明书中,在商品名上标有(R)时表示该商品名为注册商标)记述的程序的程序连接方法、装置及程序、程序产品以及终端装置。然而,这些也只不过是一个示例而并未限于此。
背景技术
以往,作为结合多个用Java(R)语言或C语言记述的程序,生成执行程序的连接器,例如公知有在下述专利文献1、专利文献2中记载的技术。例如,在以往的Java(R)执行环境中,应用程序的Java(R)源代码,被变换为中间语言的字节代码,并以各类单位作为文件进行存储。
若启动应用程序,则从这些类文件中装载所需的部分,通过对这些连接来生成执行程序。将该方式称为执行时连接方式。在图12中表示利用该方式的程序与处理的流程。在图12的例中,在服务器909内保存有用中间语言记述的类A、类B、类X及类Y的各程序。以往的执行时连接方式事先将这4个程序装载在终端装置901内并保存。
例如,假设通过从其中连接类A、类B、类X的各程序,生成应用程序902。若终端装置901启动该应用程序902,则在该时刻连接器(即将程序连接的程序)进行执行时连接。即,连接器通过连接类A、类B、类X的各程序来生成应用程序902,以供执行。
另外,例如假设通过从其中连接类A、类B、类Y的各程序来生成应用程序903。若终端装置901启动该应用程序903,则在该时刻连接器进行执行时连接。即,连接器通过连接类A、类B、类Y的各程序来生成应用程序903,以供执行。
另一方面,例如在以往的C语言执行环境下,源程序通过编译而变换为目标程序,同时通过事先连接所需要的全部程序库生成执行形式文件并保存。若启动应用程序,则该执行形式文件被装载、执行。
将该方式称为事先连接方式。在图13中表示利用该方式的程序与处理的流程。在图13的例中,例如在服务器929内保存有用中间语言记述类A、类B、类X及类Y的各程序。由服务器929进行这些程序的事先连接,生成应用程序922与应用程序923。
终端装置921装载并保存这些应用程序922与应用程序923。而且,若启动这些应用程序922与应用程序923的任一个,则终端装置921可以即时执行已启动的程序。
在图12所示的执行时连接方式中,终端装置901装载并保存的是类A、类B、类X、类Y的各中间语言程序的各一个。因此,不需重复保存程序库,可以节省存储区域。这例如在便携式机器那样的受到存储部的容量限制的机器中具有极大优点。然而另一方面,执行时连接方式,由于应用程序启动后才进行连接,故具有从应用程序的启动到执行需要时间长的极大缺点。
与此相对,图13所示的事先连接方式由于先进行连接,生成执行形式文件,故应用程序一启动就可以马上执行。这是事先连接方式所具有的极大优点。然而另一方面,通过事先进行连接,终端装置921必须重复保存在应用程序922与应用程序923中共同使用的程序库即类A与类B。这一情况例如在便携式机器那样的受到存储部的容量限制的机器中成为极大缺点。
专利文献1:特开平10-069376号公报;
专利文献2:特表2000-514584号公报。
发明内容
本发明鉴于上述问题点,其目的在于提供一种在保存连接后程序的存储器受到容量限制的情况下可以尽可能提高连接后程序的执行时速度的将程序连接的程序、程序产品、程序连接装置、终端装置及程序连接方法。
为了解决上述问题并达成上述目的,本发明提供一种程序连接方法,包括,将多个连接前程序中的1个或1个以上的程序进行连接从而生成1个或1个以上连接后程序的结合步骤;将已经完成连接或还未完成连接的所述1个或1个以上的连接后程序保存在存储器内的存储步骤;和在不超出所述存储器的给定容量的范围内,从所述多个连接前程序中已确定的优先顺序高的程序开始,优先且以至存储容量的极限为止的最大限度将程序进行连接的管理步骤。
而且,本发明还提供一种程序产品,其中具备将程序连接的程序和保持上述程序的信号保持介质,该将程序连接的程序使具有存储器的计算机作为如下机构发挥功能:结合机构,其朝着生成1个或1个以上的连接后程序的方向,将多个连接前程序连接成1个或多个;存储机构,其将完成后或未完成的上述1个或1个以上的连接后程序保存在上述存储器内;和管理机构,其在上述存储器的给定容量不溢出的范围内,让上述结合机构从上述多个连接前程序中所确定的优先顺序高的程序开始,优先且以最大限度进行连接。
而且,本发明所提供的程序产品中,上述信号保持介质是存储介质与传输介质中的至少一个。
而且,本发明还提供一种程序连接装置,其中具备:存储器;结合机构,其朝着生成1个或1个以上的连接后程序的方向,将多个连接前程序连接成1个或多个;存储机构,其将完成后或未完成的上述1个或1个以上的连接后程序保存在上述存储器内;和管理机构,其在上述存储器的给定容量不溢出的范围内,让上述结合机构从上述多个连接前程序中所确定的优先顺序高的程序开始,优先且以最大限度进行连接。
根据这些发明,由于管理机构让上述结合机构在上述存储器的给定容量不溢出的范围内,从上述多个连接前程序中所确定的优先顺序高的程序开始,优先且以最大限度进行连接,故可以在存储连接后程序的存储器受到容量限制的情况下尽可能提高连接后程序的执行时速度。而且,在本发明中,“存储器的给定容量”并未限于存储器的全部容量,可以是为了保存连接后程序而任意分配给存储器的容量。
而且,本发明所提供的程序连接方法的管理步骤,还让所述结合步骤进行连接,根据连接后程序的存储容量找出所述最大限度。
这样,由于管理步骤让结合步骤进行连接,从而通过其结果来找出让结合步骤连接的最大限度,故可以精度优良地找出可连接的最大限度。
而且,本发明所提供的程序连接方法的管理步骤,还不让上述结合机构进行连接,而是通过评价连接的各阶段中的上述1个或1个以上连接后程序的大小,从而找出上述最大限度。
这样,由于管理步骤不让结合步骤进行连接,而是通过评价连接的各阶段中的1个或1个以上连接后程序的大小,从而找出让结合步骤连接的最大限度,故可以在短时间内找出能连接的最大限度。另外,没有必要为了找出能连接的最大限度,而额外确保超出存储器的给定容量。
而且,本发明所提供的程序连接方法的已确定的优先顺序,还可以是各连接前程序中用于生成上述1个或1个以上的连接后程序的使用频度从低到高的顺序、各连接前程序的大小从小到大的顺序、各连接前程序中用于生成上述1个或1个以上的连接后程序的使用频度与上述各连接前程序大小之乘积从小到大的顺序、各连接前程序的执行时连接时间长的顺序、以及伴随上述1个或1个以上的连接后程序的执行而各连接前程序的执行频度高的顺序中所选择的至少一个。
这样,由于已确定的优选顺序是从上述那样确定的多个顺序中选择的至少一个,故可以优先连接多个连接前程序中对存储器的负荷轻的或在连接后程序执行的场面中提高处理速度效果高的程序。即,可以在存储器受到容量限制的情况下更有效地提高连接后程序的执行时速度。
而且,本发明还提供一种终端装置,其中包括,存储器;结合机构,其朝着生成1个或1个以上的连接后程序的方向,将多个连接前程序连接成1个或多个;存储机构,其将完成连接或未完成连接的上述1个或1个以上的连接后程序保存在上述存储器内;管理机构,其在上述存储器的给定容量不溢出的范围内,让上述结合机构从上述多个连接前程序中所确定的优先顺序高的程序开始,优先且以至存储容量的极限为止的最大限度进行连接;和执行控制机构,执行保存于上述存储器内的上述1个或1个以上连接后程序中受到指定的程序;上述执行控制机构具有执行时连接机构,其当应执行的连接后程序为未完成时,通过从上述多个连接前程序连接成1个或多个来完成上述应执行后程序。
根据此结构,由于终端装置具备执行控制机构,故即使在存储器所存储的1个或1个以上连接后程序包括未完成的程序时,也可以自由选择并执行这些中的任一个。另外,由于终端装置具备本发明的程序连接装置,故执行控制机构可以节省执行连接后程序的时间。
而且,本发明所提供的终端装置还包括,取得上述多个连接前程序的取得机构;和保存上述取得机构已取得的上述多个程序的保存机构。
根据此结构,由于终端装置具备取得机构,故可以从外部取得新的连接前程序。另外,由于终端装置具备保存机构,故可以保存取得机构已取得的多个连接前程序。由此,在结合机构将连接前程序进行连接时,取得机构不需从外部逐一取得成为连接对象的连接前程序。
而且,本发明还提供一种将程序连接的程序,使具有存储器的计算机作为如下机构发挥其功能,结合机构,用于将多个连接前程序中的1个或1个以上的程序进行连接从而生成1个或1个以上连接后程序;存储机构,用于将已经完成或还未完成的所述1个或1个以上的连接后程序保存在所述存储器内;和管理机构,在不超出所述存储器的给定容量的范围内,让所述结合机构从所述多个连接前程序中所确定的优先顺序高的程序开始,优先且以最大限度将程序进行连接。
根据此结构,由于结合机构在上述存储器的给定容量不溢出的范围内,从上述多个连接前程序中所确定的优先顺序高的程序开始优先且以最大限度进行连接,故可以在存储连接后程序的存储器受到容量限制的情况下尽可能提高连接后程序的执行时速度。
如上所述,根据本发明的程序连接方法、装置及程序、程序产品以及终端装置,可以在保存连接后程序的存储器受到容量限制的情况下尽可能提高连接后程序的执行时的速度。该效果在存储器容量受到严格限制的便携式设备中表现尤其明显。
附图说明
图1是执行本发明第1实施方式的连接的终端装置的构成框图。
图2是执行本发明第1实施方式的连接的终端装置的处理流程图。
图3是执行本发明第1实施方式的连接之变形的终端装置的处理流程图。
图4A~图4D是表示执行本发明第1实施方式的连接的过程的类库的结构变化的图。
图5A~图5C是表示执行本发明第1实施方式的连接的过程的类库数与连接数的图。
图6是执行本发明第2实施方式的连接的终端装置的处理流程图。
图7A~图7C是表示图6的处理中做成表格的顺序的说明图。
图8是例示图6的处理中做成的表格的说明图。
图9是表示图6的处理的变形方式的流程图。
图10是执行本发明第3实施方式的连接的终端装置的处理流程图。
图11是执行本发明第4实施方式的连接的终端装置的处理流程图。
图12是表示以往的Java(R)连接器的执行例(执行时连接方式)的图。
图13是表示以往的C连接器的执行例(事先连接方式)的图。
具体实施方式
以下,参照附图详细说明有关本申请的发明(以后称为“本发明”)的实施方式。
(第1实施方式)
在图1中表示执行本发明的将程序连接的程序或程序连接方法(也省略单称为“连接”)的程序连接装置一实施方式的终端装置的构成框图。具体讲,该终端装置101是移动电话机或便携式信息终端(PDA:Personal DigitalAssistants)等便携式信息机器,或者个人计算机等信息机器,或者由微计算机控制的各种家用电子产品、商用电子机器、其他控制装置等。
终端装置101从其他机器例如图1的服务器109下载并执行中间语言程序。但是,服务器109是1个例子,其他机器并不一定限于服务器109,也可以是其他各种各样的电子机器,例如通常的个人计算机或电子产品。在终端装置101中主要执行连接的是事先连接部141。事先连接部141按照将程序连接的程序执行连接。以下参照图1~图3、图4A~图4D及图5A~图5C,以事先连接部141的动作为中心,说明终端装置101的构成及动作。
终端装置101执行各种应用程序。例如,终端装置101执行图4A~图4D及图5A~图5C所示的应用程序1、应用程序2及应用程序3。再有,为了简化记载,在说明书及附图中,“应用程序”有时也单记为“应用”。
这些应用程序由几个用中间语言记述的类库构成。这些中间语言的类库保存在服务器109内。图1的服务器109内虽然只记载有类A、类B、类X、类Y四个类,但当然并未限于此。在服务器109中虽然保存有其他必需的全部类库,但在图1中省略了记载。
若终端装置101的控制部131执行下载命令113,则将这些类库从服务器109下载到终端装置101中。这些类库,例如经由图中未示出的各种传输介质33,如因特网、LAN、CATV、卫星线路、电话线路、ISDN、ATM、其他网络而被下载。传输介质33并未限于有线的传输介质,也可以是无线的传输介质。
另外,这些类库可以在所谓的包形式即已保存于某些包介质(packagemedia)等存储介质31内的状态下读入终端装置101中。在图1中,作为存储介质31画出了CD-ROM。已保存于CD-ROM内的类库通过将CD-ROM读取装置32与终端装置101连接,可以通过下载控制部133读出。而且,用于事先连接部141实现该功能用的将程序连接的程序也可以由终端装置101通过传输介质33及存储介质31而接受供给。
再有,在作为下载对象的类库的指定中,例如存在下面列举的几种形式。(1)指定终端装置101执行的应用程序之中特定的应用程序,只下载执行该已指定的应用程序所必需的类库的形式;(2)下载用于执行终端装置101能执行的全部应用程序所必需的类库的形式;(3)下载服务器109所保存着的全部类库的形式;及(4)用各种方法指定类库,下载已指定的类库的形式。
进行下载动作的是下载控制部133。已下载完的类库保存于文件系统部137内。下载控制部133相当于本发明的取得机构的具体示例。此外,文件系统部137相当于本发明的存储器及保存机构的具体示例。
若控制部131执行事先连接命令115,则进行存储保存在文件系统部137中的已下载类库的事先连接。如上所述,这是为了通过在各应用程序的执行前事先进行连接,以提高执行时的速度。还有,该事先连接命令的执行可以与下载的时刻同步,也可以与下载的时刻同时进行,或者在某个给定时间进行,或者根据用户的某些操作进行,或者在其他某些时刻进行。
控制部131通过执行事先连接命令115,以控制事先连接部141进行事先连接处理。与此同时,事先连接部141按照以下的顺序进行事先连接处理(图2,220)。
事先连接部141首先设定成最初进行全部类库的连接(图2,221)。这是类调用关系检测部146检测每个应用程序中调出的类库,进一步检测正被调出的类库又调出的类库,通过反复进行该处理来进行的。各类库调出的其他类库,例如在各类库的头(header)中记载。
检测到正被调出的类库由结合部143结合(连接)(图2,223)。存储部145将结合部143生成后的连接后程序存储在文件系统部137中。该结合(连接)有可能确定执行时地址,也有可能并不一定到达最终确定执行时地址的阶段,并未限于那一种情况。在结合部143执行连接处理时,存储量管理部144通过各连接的执行而管理文件系统部137的存储量(残余容量)如何变化。再有,结合部143相当于本发明的结合机构的具体示例。另外,存储量管理部144相当于本发明的管理机构的具体示例。此外,存储部145相当于本发明的存储机构的具体示例。
通过反复必要次数进行以上处理,终端装置101可以执行、或者必须执行、或者已被指定的全部应用程序的连接结束(图2,223)。在该时刻,存储量管理部144确认管理着的文件系统部137的存储量(即残余容量),判断是可以收容于该容量内还是出现存储器溢出(图2,225)。若可以收容于文件系统部137的存储器容量内(225中“否”),则全部的应用程序可以正常连接,事先连接结束(图2,228)。再有,存储量管理部144管理的文件系统部137的存储量并未限于文件系统部137的总存储量。可以是文件系统部137的总存储量中为了保存连接后程序而被任意分配的存储量。
若文件系统部137的存储容量溢出(225中“是”),则连接数检测部142在目前用于连接的类库中检测出用于最多应用程序的类库,求出使用该类库的应用程序数(相当于最大值)(图2,231)。为了说明方便,假定该数为N(图2,231)。
而且,事先连接部141虽然当初已设定为“进行全部类库的连接”,但这以后变更设定为“不进行正在N个及以上应用程序中使用的类库的连接”(图2,233)。然后,事先连接部141解除已经进行过的全部应用程序的连接,由结合部143按照新的设定再次进行全部应用程序的连接(图2,223)。
在此,作为暂时解除进行过的全部应用程序的连接的方法,可以有分解连接完的程序的连接的方法、另外保存连接前程序的方法、以及其他方法,可以使用任何方法。例如,也可以采用将连接前的类库保存在下载控制部133内的方法,例如也可以采用下载控制部133再次从服务器109下载连接前的类库的方法。或者也可以采用结合文件解除部135分解连接完的程序的连接,并再次交给文件系统部137的方法。可以使用这些中的任何一种方法。在将连接前的类库保存于下载控制部133内的状态下,下载控制部133相当于本发明的取得机构与保存机构双方的具体例。
例如,如上所述,终端装置101执行的应用程序假设为例如图4A~图4D及图5A~图5C所示的应用程序1、应用程序2及应用程序3。在这种情况下,全部应用程序的执行所必需的类库为X、Y、A、B、C、D及Z(为了省略,只记特定类库的记号,下同),从服务器109下载这些程序并存储保存着。
通过执行全部应用程序的连接(图2,223),从而执行图4A~图4C所示的步骤1、步骤2及步骤3。由此,在终端装置101中生成全部类库已连接的应用程序1、应用程序2、应用程序3(图4C及图5A,步骤3)。在该状态下,由于全部的类库已经连接着,故图1的执行时连接部152没有必要在执行时重新进行连接,执行时的连接数为0(图5A,步骤3)。
但是另一方面,虽然不含重复计数过的全部类库数为上述的7个,但包含重复计数的全部类库数为11,4个类库重复保存着(图5A,步骤3)。这重复的4个类库为2个D,各一个B与C。仅这重复的4个类库的量就增大了文件系统部137的存储容量溢出的可能性。
因此,在这些类库中,在最多的应用程序中使用的程序由连接数检测部142检测(图2,231)。在目前的示例中,该类库为D,在3个应用程序中都使用着(图5B,步骤4)。因此,上述N为3。故以后重新设定为“不连接在3个及以上的应用程序中使用着的类库”,再次进行全部的连接。
再有,在图4D的步骤4中,如解除类库D的连接那样所记载的,并不一定限于先解除全部类库的连接后重新连接的方法。例如,也可以采用一边只检测出在3个及以上的应用程序中正使用的类库,一边解除该连接的方法。
还有,在图2所示的上述方法中,先执行全部的应用程序的连接后,存储量管理部144才检测存储器容量的溢出。对此,如图3所示,存储量管理部144可以每进行1个应用程序的连接,就检测存储器容量的溢出(图3,325)。另外,图3表示在有存储器溢出的情况下(图3,325中“是”),解除在N个及以上应用程序中正使用的类库的连接(图3,333)的示例。然而,步骤333也可以解除已执行过连接的应用程序的全部连接。此外,可以先保存作为零件的类库,在步骤333中删除已执行过连接的全部应用程序,在步骤323中使用保存着的类库从头开始进行连接。由于在图2与图3之间,本质的部分是相同的,故对于图3的流程省略其详细的说明。
在解除了类库D的连接的状态下,由于针对应用程序1~3的全部,在执行时执行类库D的连接成为必要,故必需的执行时连接数为3(图5B,步骤4)。因此,虽然某种程度执行时的速度降低,但另一方面,包含重复计数的全部类库数为9(图5B,步骤4),重复保存着的类库数减少为2。这样,文件系统部137将存储器容量溢出的可能性降低。该重复的2个类库是各一个B与C。
因此,在图2的225中,这次的第2周也比上次的存储器溢出可能性降低。由此,若未发生存储器溢出,则处理结束(图2,228)。然而,假设即使如此文件系统部137也出现存储器容量溢出(图2,225)。该情况在目前的示例中,图2的步骤225在第2周的判断中也相当于检测到存储器溢出。
在这种情况中,在图2的步骤231中再次由连接数检测部142检测目前正连接的类库中由最多的应用程序使用的类库。该情况如图5C的步骤5所示,为B与C,这些都在2个应用程序内使用着。
因此,接着再设定为“在2个及以上应用程序中使用着的类库不连接”(图2,223,第2周)。而且,一旦再次解除了全部的连接后,在图2的步骤223中执行第3次的连接。若为了慎重起见而加以说明,则在第1周的连接中进行全部的类库的连接,在第2周的连接中3个及以上应用程序内使用着的类库的连接不进行,在本次的第3周中2个及以上应用程序内使用着的类库的连接不进行。或可以解除2个及以上应用程序内使用着的类库的连接。
在图5C的步骤5中表示第3周的连接进行后的状态。在该状态中,由于类库D、B、C的连接不进行,故在应用程序的执行时,从这些类库开始进行必要的类库的连接是必要的。因此,执行时必需的连接数为7。这是因为在应用程序1的执行时,若将X的类库考虑为基准,则与该X相对,有连接B、C、D3个的必要,在应用程序2的执行时,虽然Y与A的类库已连接着,但相对于该连接过的程序,有连接B、D两个的必要,在应用程序3的执行时,若将Z的类库考虑为基准,则相对该Z,有连接C、D两个的必要的缘故。
因此,执行时的速度相应降低,但至少在应用程序2中必要的类库Y与A已连接着的量比一概不进行事先连接的情况还是提高了执行时的速度。
另一方面,重复保存着的类库不存在。因此,存储器容量的浪费在这一意义上就完全不会产生。上述所谓“不连接在2个及以上应用程序中使用着的类库”的条件意味着“只连接在1个应用程序中使用着的类库”,也可以理解为在该条件下明显不能产生重复保存类库的情况。
图1的终端装置101的控制部131,若执行执行命令117,则向执行控制部151指示应用程序的执行。控制部131通过用户的某些操作、指示、来自其他机器的控制或时间及其他启动,从而开始执行命令117的执行。另外,通常该应用程序的启动是通过指定启动哪个应用程序,例如在目前的示例中指定是应用程序1、应用程序2及应用程序3的哪一个而执行的。执行控制部151执行文件系统部137内保存的应用程序中接受了指定的应用程序。
若向执行控制部151指示特定的已指定了的应用程序的执行,则执行控制部151的执行时连接部152判断为了执行该应用程序是否还需要几个类库的连接。执行时连接部152若判断为需要连接,则执行已判断为必要的类库的连接。
例如,若是图5A的步骤3的状态,则即使指示了哪个应用程序的执行,执行时必须连接的类库也不存在。对此,在图5B的步骤4的状态中,若应用程序1~3的任何一个的执行已被指示,则类库D的执行时连接成为必要。因此,执行时连接部152执行该类库D的连接。
还有,在图5C的步骤5的状态中,若已指示了应用程序1的执行,则类库B、C与D的执行时连接成为必要。因此,执行时连接部152执行该类库B、C与D的连接。或者,在图5C的步骤5的状态中,若指示了应用程序2的执行,则类库B与D的执行时连接成为必要。因此,执行时连接部152执行该类库B与D的连接。再有,在图5C的步骤5的状态中,若指示了应用程序3的执行,则类库C与D的执行时连接成为必要。因此,执行时连接部152执行该类库C与D的连接。
这样,若进行执行所必需的全部类库的连接,则执行部153执行该应用程序。另外,执行控制部151相当于本发明的执行控制机构的具体示例。此外,执行时连接部152相当于本发明的执行时连接机构的具体示例。
(第2实施方式)
接着说明本发明第2实施方式的将程序连接的程序、程序连接方法、程序连接装置及终端装置。但是,只对与上述第1实施方式实质上不同的部分进行说明,对与上述第1实施方式实质上相同的部分则省略其说明。再有,从本发明第2实施方式到后述第6实施方式为止,终端装置的构成款图均与图1的终端装置101同样。
该第2实施方式,与第1实施方式同样,在进行过全部应用程序的连接的情况下,若文件系统部137的存储器容量未溢出,则通过对全部的应用程序进行连接,从而正常结束事先连接。另外,第2实施方式,与第1实施方式同样,在文件系统部137的存储器容量溢出的情况下,则在类库之中,从与更少的应用程序连接的类库开始,优先进行连接。
然而,第2实施方式关于从与更少的应用程序连接的类库开始优先进行连接的顺序,与上述第1实施方式在实质上不同。因此,参照附图6说明该顺序。
在第1实施方式中,通过实际进行全部的连接而判定文件系统部137的存储器容量是否溢出。但是,为判定存储器容量而实际进行连接的方式有时是低效率的。因此,第2实施方式在实际进行连接之前,进行存储器容量的核对,根据上述优先基准预先求出文件系统部137的存储器中能收纳的最大限度的程序库。在第2实施方式中,实际的连接只针对已求出的程序库,在之后执行。
图6表示第2实施方式的终端装置的处理流程。在图6的流程中,首先,事先连接部141的连接数检测部142将每个程序库中,该程序库从应用程序开始连接的数即应连接该程序库的应用程序的数定义为“共有数”。将该值记为(n)。图6的流程是通过调查每个程序库中的类调用关系而求出共有数(n)(图6,622)。
图7A~图7C是表示连接数检测部142计算共有数(n)的过程的说明图。事先连接部141的类调用关系检测部146,首先调查各类库的类调用关系。如图7A所示,在各类库中,例如其头部分中,标注有应调出的类库的识别符号。在图7A的示例中,在类库X内,作为调用的对象,记述有类库B及C。在类库B及C中,作为调用的对象,记述有类库D。另外,在类库D中,未记述调用的对象。
类调用关系检测部146,通过读取图7A中例示的识别符号,从而针对应用程序1可以掌握图7B所示的类调用关系。类调用关系检测部146分别针对应用程序2及3,同样掌握类调用关系。结果,类调用关系检测部146可以将图7C所示表格中的除去共有数(n)相关纵列的部分做成作业用表格。类调用关系检测部146,例如在文件系统部137内确保存储区域,而将做成的作业用表格保存到该存储区域内。
图7C的表格示例表示类调用关系检测部146掌握有:针对应用程序1,应将B、C及D连接在类库X上;针对应用程序2,应将A、B及D连接在类库Y上;以及针对应用程序3,应将C及D连接在类库Z上。即,类调用关系检测部146通过掌握每个应用程序的类调用关系,从而可以做成图7C中例示的作业用表格的各栏(即,纵列)。
事先连接部141的连接数检测部142,接着根据作业用表格,分别针对类库A、B、C及D,计算共有数(n)。即,连接数检测部142求出图7C中例示的作业用表格的行(即,横列)中的类调用关系个数的和,以此为共有数(n)。由此,连接数检测部142如图7C所例示的,可以做成附加了与共有数(n)对应的纵列的作业用表格。连接数检测部142例如针对类库D,计算出共有数(n)=3。
返回图6,接着,连接数检测部142以该共有数(n)将全部程序库进行排序,从(n)的值小的顺序开始排列,赋予从0(零)开始的索引号码,做成表格(图6,623)。即,连接数检测部142,例如根据假定已做成的作业用表格(图7C中例示),做成图8中例示的表格。图8的表格,例如与共有数(n)=2对应,作为索引号码保持1,作为类库则保存有B。连接数检测部142,例如可以将已做成的表格保存到文件系统部137的存储区域内。连接数检测部142与此同时也可以将作业用表格从文件系统部137内删除。
对于成为相同(n)值的程序库的顺序,如何设定都可以,或者也可以通过其他某种方法而设定顺序。例如,对于成为相同(n)值的程序库的排序,可以使用从后述的本发明第3实施方式到第6实施方式的中说明的判断基准。
再次返回图6,接下来,存储量管理部144,作为处理所需的2个变量,预备“索引变量”与“连接总和”,分别初始化为0(零)(图6,624)。处理从这里进入循环,最初存储量管理部144判断索引变量与程序库的总数是否相等(图6,625)。这是为了判断在存储器不溢出的情况下,全部程序库的连接是否结束。即,如果存储器不溢出的情况下全部程序库的连接结束,则在该判定中索引变量的值与程序库的总数相等。
然而,在最初的循环中,由于索引变量的值为0,库存总数为1及以上,故相互并不相等。因此,存储量管理部144在连接总和量中加上索引号码的值等于索引变量的值的程序库增加量(图6,626)。
在这里,所谓的各程序库的增加量,在图6中虽然未明确记载,但指的是该程序库的存储器容量与连接着该程序库的应用程序数减去1的乘积(参照图10的722)。即,所谓的程序库增加量相当于通过连接该程序库而新成为必要的存储器容量(即,必要存储器的增加量)。在该阶段中,存储量管理部144判定连接总和量是否让文件系统部137的存储器容量溢出(图6的627)。
若在该阶段中,如果连接总和量让文件系统部137的存储器容量(图6的627中“是”)溢出,则一连接与目前的索引变量相当的索引号码的程序库就将成为存储器溢出。因此,事先连接部141的结合部143执行该程序的紧前1个即索引号码为目前的索引变量的值减去1的程序库为止的连接(图6的629)。
若连接总和量未让文件系统部137的存储器容量(图6的627中“否”)溢出则即使连接与目前的索引变量相当的索引号码的程序库,也不会产生存储器溢出。因此,存储量管理部144接着将索引变量增加1(图6的628)。然后,处理返回针对全部的程序库,连接可否的确认结束的判断(图6的625),即循环的开头。
在图6的步骤625的判断中,若索引变量的值与全部程序库数相等(图6的625中“是”),则这意味着全部程序库的确认结束,全部程序库都能连接。结果,结合部143可以执行全部程序库的连接(图6的629)。另一方面,若全部程序库的确认未结束(图6的625中“否”),则存储量管理部144将下一程序库的增加量加在连接总和量上(图6的626),重复能否连接的判断(图6的627)。
该第2实施方式与第1实施方式实质上不同的部分,如上所说明的,在于在实际执行连接前确定能连接的程序库的范围及其顺序。因此,对于其他则省略说明。
在图6的处理流程中,在文件系统部137不溢出的范围内确定索引变量的上限之后,结合部143全部执行了与该上限以内的索引号码对应的程序库的连接(图6的629)。对此,如图9所示,也可以在文件系统部137不溢出的范围内,处理每进行一次循环时,结合部143就进行与索引变量相等的索引号码对应的程序库的连接(图9的630)。
(第3实施方式)
接着,说明本发明第3实施方式的将程序连接的程序、程序连接方法、程序连接装置及终端装置。但是,只对与第2实施方式在实质上不同的部分进行说明,而对与第2实施方式在实质上相同的部分则省略说明。该第3实施方式在预先按照给定顺序排列程序库,通过按照该顺序在连接总和量中加上增加量,从而判断该程序库能否连接,在这一点上与第2实施方式是相同的。
图10表示第3实施方式的终端装置的处理流程。图10的处理流程在连接数检测部142预先按增加量排序全部程序库,从该增加量小的程序开始依次赋予索引号码(图10的723),这一点与图6所示的处理流程实质上不同。在这里,所谓的增加量是指如上所述的,每个程序库中从应用程序开始连接的数{即,共有数(n)}减去1与该程序库的容量的乘积(图10的722)。如上所述,增加量相当于通过连接该程序库而新成为必要的存储器的增加量。
通过按照索引号码顺序一个一个连接程序库,而判断是否产生存储器溢出与第2实施方式是相同的(图10的725~729)。然而,在该第3实施方式中,由于索引号码是按增加量小的顺序赋予,故存储量管理部144按照该增加量的顺序判断程序库可否连接。由此,结合部143尽可能从增加量小的程序库开始执行连接。
另外,通过将步骤729置换为图9的步骤930,从而可以在文件系统部137不溢出的范围内,处理每进行一次循环时,结合部143就进行与索引变量相等的索引号码对应的程序库的连接。这种情况在以下所述的第4~第6实施方式中是同样的。
该第3实施方式与第2实施方式在实质上不同的部分,在于以上所说明的部分。因此,关于其他部分则省略说明。
(第4实施方式)
接着,对本发明第4实施方式的将程序连接的程序、程序连接方法、程序连接装置及终端装置进行说明。但是,只对与第2实施方式在实质上不同的部分进行说明,而对与第2实施方式在实质上相同的部分则省略说明。该第4实施方式在预先按照给定顺序排列程序库,通过按照该顺序在连接总和量中加上增加量,从而判断该程序库能否连接的方面,与第2实施方式是相同的。
图11表示第4实施方式的终端装置的处理流程。图11的处理流程在类调用关系检测部146预先针对全部程序库调查该程序库应连接的应用程序(图11的821),同时连接数检测部142调查该应用程序使用的频度(图11的822),以该使用频度对全部程序库排序,从该使用频度大的程序开始依次赋予索引号码(图11的823),这一点与图6所示的处理流程实质上不同。
例如,若某程序库通过电子邮件阅览应用程序而被连接,则该电子邮件阅览应用程序的使用频度比较高,例如也许每日平均5次左右。或者,若某程序库通过银行存入应用程序而被连接,则该银行存入应用程序的使用频度比较低,例如也许平均1年内为几次左右。在这种情况下,将通过电子邮件阅览应用程序而被连接着的程序库比通过银行存入应用程序而被连接着的程序库赋予更小的索引号码,优先执行连接。
另外,也有1个程序库通过多个应用程序连接的情况。例如,某通用性比较高的程序库也许以上述电子邮件阅览应用程序与银行存入应用程序双方连接。对于这种程序库,对于如何求得连接着该程序库的应用程序的使用频度则可以采用各种方法。
例如,可以使用连接着该程序库的应用程序中使用频度最高的,也可以使用平均值,也可以使用中间值,也可以使用总和。这里所说的总和是指,连接着该程序库的全部应用程序的使用频度的总和。本发明并不局限于任何一种特定的方法。
这样,通过以连接着程序库的应用程序的使用频度为基准,决定执行连接的程序库,从而可以提高使用频度比较高的应用程序的执行速度,可以使用更加方便。
在图11中,通过按照索引号码顺序一个一个连接程序库,而判断是否产生存储器溢出与第2实施方式是相同的(图11的825~829)。该第4实施方式与第2实施方式在实质上不同的部分,在于以上所说明的部分。因此,关于其他部分则省略说明。
(第5实施方式)
接着,对本发明的第5实施方式的将程序连接的程序、程序连接方法、程序连接装置及终端装置进行说明。但是,只对与第2实施方式在实质上不同的部分进行说明,而对与第2实施方式在实质上相同的部分则省略其说明。该第5实施方式在预先按照给定顺序排列程序库,通过按照该顺序在连接总和量中加上增加量,从而判断该程序库能否连接,这一点与第2实施方式相同。
该第5实施方式的处理流程在连接数检测部142预先按照容量排序全部程序库,按照其容量小的顺序赋予索引号码,根据该索引号码顺序判断能否连接,这一点与本发明的第2实施方式的处理流程在实质上不同。由此,可以优先连接存储器容量比较小的程序库。
该第5实施方式与第2实施方式在实质上不同的部分,在于以上所说明的部分。因此,关于其他部分则省略说明。
(第6实施方式)
接着,对本发明的第6实施方式的将程序连接的程序、程序连接方法、程序连接装置及终端装置进行说明。但是,只对与第2实施方式在实质上不同的部分进行说明,而对与第2实施方式在实质上相同的部分则省略其说明。该第6实施方式在预先按照给定顺序排列程序库,通过按照该顺序在连接总和量中加上增加量,从而判断该程序库能否连接,这一点与第2实施方式是相同的。
该第6实施方式的处理流程在连接数检测部142预先按照执行时所需时间排序全部程序库,从其时间长的开始赋予索引号码,根据该索引号码顺序判断能否连接,这一点与本发明的第2实施方式的处理流程在实质上不同。由此,可以优先连接执行时连接所需时间长的程序库,可以改善整体的执行速度。
该第6实施方式与第2实施方式在实质上不同的部分,在于以上所说明的部分。因此,关于其他部分则省略说明。
由于本发明的程序连接方法、装置及程序、程序产品以及终端装置可以在保存连接后程序的存储器容量受到限制的情况下尽可能提高连接后程序的执行时速度,故在工业上是有用的。

Claims (7)

1.一种程序连接方法,其特征在于包括以下的步骤:
将多个连接前程序中的1个或1个以上的程序进行连接从而生成1个或1个以上连接后程序的结合步骤;
将已经完成连接或还未完成连接的所述1个或1个以上的连接后程序保存在存储器内的存储步骤;和
在不超出所述存储器的给定容量的范围内,从所述多个连接前程序中已确定的优先顺序高的程序开始,优先且以至存储容量的极限为止的最大限度将程序进行连接的管理步骤。
2.根据权利要求1所述的程序连接方法,其特征在于,所述管理步骤让所述结合步骤进行连接,根据连接后程序的存储容量找出所述最大限度。
3.根据权利要求1所述的程序连接方法,其特征在于,所述管理步骤不让所述结合步骤进行连接,而是通过评价连接的各阶段中所述1个或1个以上的连接后程序的大小,从而找出所述最大限度。
4.根据权利要求1~3中任一项所述的程序连接方法,其特征在于,所述已确定的优先顺序是从,各连接前程序中用于生成所述1个或1个以上连接后程序的使用频度从低到高的顺序、各连接前程序的大小从小到大的顺序、各连接前程序中用于生成所述1个或1个以上的连接后程序的使用频度与所述各连接前程序大小之乘积从小到大的顺序、各连接前程序的执行时连接时间从长到短的顺序、以及伴随所述1个或1个以上连接后程序的执行而各连接前程序的执行频度从高到低的顺序,中所选择的至少一个。
5.一种程序连接装置,其特征在于包括:
存储器;
结合机构,用于将多个连接前程序中的1个或1个以上的程序进行连接从而生成1个或1个以上连接后程序;
存储机构,用于将已经完成连接或还未完成连接的所述1个或1个以上的连接后程序保存在所述存储器内;和
管理机构,在不超出所述存储器的给定容量的范围内,让所述结合机构从所述多个连接前程序中所确定的优先顺序高的程序开始,优先且以至存储容量的极限为止的最大限度将程序进行连接。
6.一种终端装置,其特征在于包括:
存储器;
结合机构,用于将多个连接前程序中的1个或1个以上的程序进行连接从而生成1个或1个以上连接后程序;
存储机构,用于将已经完成连接或还未完成连接的所述1个或1个以上的连接后程序保存在所述存储器内;
管理机构,在不超出所述存储器的给定容量的范围内,让所述结合机构从所述多个连接前程序中所确定的优先顺序高的程序开始,优先且以至存储容量的极限为止的最大限度将程序进行连接;和
执行控制机构,执行被保存于所述存储器内的所述1个或1个以上连接后程序中已被指定的程序;其中,
所述执行控制机构,具有执行时连接机构,当应执行的连接后程序还未完成时,通过从所述多个连接前程序连接1个或多个程序来完成所述应执行的连接后程序。
7.根据权利要求6所述的终端装置,其特征在于还包括:
取得机构,用于取得所述多个连接前程序;和
保存机构,用于保存由所述取得机构所取得的所述多个连接前程序。
CNB2004100318364A 2003-04-01 2004-03-30 程序连接方法、装置以及终端装置 Expired - Fee Related CN100388191C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003097892 2003-04-01
JP2003097892 2003-04-01

Publications (2)

Publication Number Publication Date
CN1534467A CN1534467A (zh) 2004-10-06
CN100388191C true CN100388191C (zh) 2008-05-14

Family

ID=32844668

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100318364A Expired - Fee Related CN100388191C (zh) 2003-04-01 2004-03-30 程序连接方法、装置以及终端装置

Country Status (3)

Country Link
US (1) US7571436B2 (zh)
EP (1) EP1465066A3 (zh)
CN (1) CN100388191C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4549809B2 (ja) * 2004-10-29 2010-09-22 京セラ株式会社 携帯電話端末及びプログラム管理方法並びにそのコンピュータプログラム
US7930710B2 (en) * 2006-05-16 2011-04-19 Panasonic Corporation Program start-up unit, program start-up method, recording medium with start-up processing program recorded, and integrated circuit
US8959516B2 (en) * 2007-07-30 2015-02-17 International Business Machines Corporation Methods and systems for coordinated financial transactions in distributed and parallel environments
US20100161950A1 (en) * 2008-12-24 2010-06-24 Sun Microsystems, Inc. Semi-absolute branch instructions for efficient computers
JP6223001B2 (ja) 2013-06-06 2017-11-01 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1069376A (ja) * 1996-03-25 1998-03-10 Sun Microsyst Inc ワールド・ワイド・ウェブ文書に対する組込型リンクを有しているツールバー・アイコン及び統合型ウェブ・ブラウザを有するインターネット−イネーブル型図的ユーザ・インターフェイス
GB2321731B (en) * 1996-11-26 2001-06-06 Hewlett Packard Co Remote compiling of source code for cross development
CN1374585A (zh) * 2001-03-02 2002-10-16 国际商业机器公司 优化链接后代码的方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
EP0932865B1 (en) 1996-10-25 2002-08-14 SCHLUMBERGER Systèmes Using a high level programming language with a microcontroller
US6363436B1 (en) * 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems
US6106574A (en) * 1997-12-04 2000-08-22 Unisys Corp. Computer-implemented object-oriented method for relating objects in a compiler to locations in the source program and to inlined call histories
US6259958B1 (en) * 1997-12-19 2001-07-10 Honeywell International Inc. Call mechanism for static and dynamic linked functions within an object-oriented controller using heterogeneous development tool sets
GB2343021A (en) * 1998-10-19 2000-04-26 Ibm Class loading model for object oriented programming
JP3699354B2 (ja) * 1998-12-22 2005-09-28 富士通株式会社 最適化オブジェクト生成装置及び方法
JP2002055829A (ja) * 2000-08-07 2002-02-20 Matsushita Electric Ind Co Ltd 中間オブジェクト連結方法、及び、中間オブジェクト連結装置、及び、リンカ装置、及び、コンパイラドライバ装置、並びに、中間オブジェクトを連結するプログラムを記録した記憶媒体
US6810519B1 (en) * 2000-09-29 2004-10-26 International Business Machines Corporation Achieving tight binding for dynamically loaded software modules via intermodule copying
US7080373B2 (en) * 2001-03-07 2006-07-18 Freescale Semiconductor, Inc. Method and device for creating and using pre-internalized program files
US20030074656A1 (en) * 2001-09-14 2003-04-17 Yoshiaki Irino Program execution apparatus and method, computer program for performing the program execution method, image forming system, and address solution method
US6832302B1 (en) * 2001-10-24 2004-12-14 At&T Corp. Methods and apparatus for detecting heap smashing
US7093241B2 (en) * 2002-06-07 2006-08-15 Intel Corporation Method for eliminating redundant method calls in an object oriented program
US20040015943A1 (en) * 2002-07-17 2004-01-22 Ying-Chou Chen Embedded computer system equipped with an upgradeable software library

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1069376A (ja) * 1996-03-25 1998-03-10 Sun Microsyst Inc ワールド・ワイド・ウェブ文書に対する組込型リンクを有しているツールバー・アイコン及び統合型ウェブ・ブラウザを有するインターネット−イネーブル型図的ユーザ・インターフェイス
GB2321731B (en) * 1996-11-26 2001-06-06 Hewlett Packard Co Remote compiling of source code for cross development
CN1374585A (zh) * 2001-03-02 2002-10-16 国际商业机器公司 优化链接后代码的方法和装置

Also Published As

Publication number Publication date
EP1465066A2 (en) 2004-10-06
EP1465066A3 (en) 2007-08-29
CN1534467A (zh) 2004-10-06
US7571436B2 (en) 2009-08-04
US20040199908A1 (en) 2004-10-07

Similar Documents

Publication Publication Date Title
US20090260016A1 (en) System and/or method for bulk loading of records into an ordered distributed database
US20140128164A1 (en) Server device, and non-transitory computer-readable storage medium storing game program
US20070240143A1 (en) Migratable unit based application migration
CN107924391A (zh) 共享协同编辑文档的方法和装置
US7539689B2 (en) Bundling database
JPH04213116A (ja) マイクロプロセッサを備えるメモリカード読取機にアプリケーションプログラムをロードする方法及びこの方法を実施するためのシステム
CN107015853A (zh) 多阶段任务的实现方法和装置
JP2013247977A (ja) ゲームを提供するサーバ装置
CN106302122B (zh) 虚拟物品管理方法及装置
CN109272109A (zh) 神经网络模型的指令调度方法及装置
WO2011090809A2 (en) A computerized system and method for managing a fantasy sports team
CN100388191C (zh) 程序连接方法、装置以及终端装置
US20060148572A1 (en) Database cache system
CN106201623A (zh) 基于访问顺序排序的游戏资源文件加载方法和系统
CN108021621A (zh) 数据库数据采集方法、应用服务器及计算机可读存储介质
CN107992577A (zh) 一种哈希表数据冲突处理方法及装置
CN109947624A (zh) 状态监控方法及装置
CN110209582A (zh) 代码覆盖率的统计方法及装置、电子设备、存储介质
CN106953933A (zh) 一种消息推送方法及装置、电子设备
JP5662372B2 (ja) ゲームシステム
CN107807993A (zh) 一种网页历史记录功能的实现方法及装置
CN110266770A (zh) 基于博弈论的闲置云资源调度方法和装置
JP2003528390A (ja) インタプリタによりコンピュータプログラムを実行する方法、コンピュータシステムならびにコンピュータプログラムプロダクト
CN104583999B (zh) 数据迁移管理
CN116009889A (zh) 深度学习模型的部署方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080514

Termination date: 20130330