以分离的模块提供软件更新的系统及其方法

文档序号:6598640阅读:146来源:国知局
专利名称:以分离的模块提供软件更新的系统及其方法
技术领域
一种软件更新的系统及其方法,特别是指一种以分离的模块提供软件更新的系统及其方法。
背景技术
软件是一系列按照特定顺序组织的计算机数据和指令的集合,其依据执行的主机的位置,可以分为执行在本地端的软件以及执行在远程的软件。软件在存在错误的程序、开发者开发出效率更好资源使用更少的相同程序、或是开发者欲增加软件的功能时,通常会需要进行更新。由于执行在本地端的软件是安装在客户端中,因此当软件需要更新时,只能依靠使用者手动更新或是由软件中的更新程序自动更新,因此,软件中的更新程序是很重要的。虽然以软件中的更新程序进行软件更新的更新方式对使用者而言是比较方便的。 不过,因为软件中需要被更新的档案通常会储存在开发厂商所提供的服务器上,因此再进行软件更新时,更新程序需要与开发厂商所提供的服务器配合。一旦服务器所执行的与更新程序搭配的服务程序因为被开发者更新等原因发生改变,则在执行在客户端中的更新软件往往需要同步更新;但是,这实际上是有困难的,因为软件的特性,当程序文件在执行中的时候,被执行的程序文件无法被修改,也就是说,更新程序无法对自己进行更新,要是服务器所执行的服务程序发生改变,这将使得更新程序无法进行软件更新,如此,使用者势必得要手动更新更新程序。综上所述,可知现有技术中长期以来一直存在软件的更新程序无法更新自身的问题,因此有必要提出改进的技术手段,来解决此一问题。

发明内容
有鉴于现有技术存在更新程序无法更新自身的问题,本发明遂提供一种以分离的模块提供软件更新的系统及其方法,其中本发明所提供的以分离的模块提供软件更新的系统,至少包含核心模块以及预更新模块,核心模块用以更新软件所包含的目标档案;预更新模块,属于目标档案其中之一,其中更包含判断单元,用以判断与核心模块对应的更新档案是否存在;更新单元,用以于判断单元判断更新档案存在时,以更新档案更新核心模块;核心加载单元,用以加载核心模块。本发明所提供的以分离的模块提供软件更新的系统,其中,预更新模块更包含使用者接口,预更新模块更用以于使用者接口中显示互动信息;另外,预更新模块或核心模块更用以结束执行预更新模块。本发明所提供的以分离的模块提供软件更新的系统,其中,预更新模块更包含传输单元,用以联机至服务器,判断单元更用以通过传输单元判断服务器中是否储存更新档案,传输单元更用以至服务器下载更新档案。
本发明所提供的以分离的模块提供软件更新的方法,其步骤至少包括分离更新程序为预更新模块及核心模块;预更新模块判断与核心模块对应的更新档案存在后,以更新档案更新核心模块;预更新模块加载更新后的核心模块;核心模块更新软件所包含的目标档案。本发明所提供的以分离的模块提供软件更新的方法,其中,于预更新模块判断与核心模块对应的更新档案存在前,更包含预更新模块显示使用者接口。另外,于核心模块更新目标档案前,更包含预更新模块或核心模块结束预更新模块的执行。本发明所提供的以分离的模块提供软件更新的方法,其中,预更新模块判断与核心模块对应的更新档案存在的步骤是预更新模块联机至服务器判断服务器中储存更新档案后,判断更新档案存在;核心模块更新软件所包含的目标档案的步骤更包含核心模块更新该预更新模块的步骤;预更新模块加载更新后的核心模块的步骤是预更新模块以动态链接库(Dynamic LinkingLibrary, DLL)技术或反射技术加载更新后的核心模块。本发明所提供的系统与方法如上,与现有技术之间的差异在于本发明通过将更新程序分离为核心模块以及预更新模块,当预更新模块判断对应核心模块的更新档案存在时,会先以更新档案更新核心模块,再加载更新后的核心模块,使核心模块更新软件所包含的目标档案,藉以解决现有技术所存在的问题,并可以达成避免使用者需要手动更新更新程序的技术功效。


图1为本发明所提供的分离更新程序为两模块的示意图;图2为本发明所提供的以分离的模块提供软件更新的系统架构图;图3为本发明所提供的以分离的模块提供软件更新的方法流程图;图4A为本发明实施例所提供的使用动态链接库加载核心模块的程序代码示意图;图4B为本发明实施例所提供的使用反射技术加载核心模块的程序代码示意图;图5为本发明实施例所提供的使用者接口的示意图。主要组件符号说明
200更新程序
210核心模块
220预更新模块
221判断单元
222更新单元
223核心加载单元
224传输单元
225使用者接口
401程序代码
402程序代码
521按键
具体实施例方式以下将配合图式及实施例来详细说明本发明的特征与实施方式,内容足以使本领域技术人员能够轻易地充分理解本发明解决技术问题所应用的技术手段并据以实施,藉此实现本发明可达成的功效。本发明如「图1」所示,将软件的更新程序200由一个完整的模块再进一步分离为具有不同功能的两个模块,两个模块中的一个或两个模块包含更新另一个模块的功能。事实上,本发明并不将更新程序分离为两个模块为限,凡一个完整的更新程序可以分离为两个以上的模块,且其中的任一模块存在更新其它模块的功能时,即可以使用本发明。以下先以「图2」本发明所提供的以分离的模块提供软件更新的系统架构图来说明本发明的系统运作。如「图2」所示,本发明的系统含有核心模块210、以及预更新模块 220。核心模块210负责以公知的软件更新方式,如依靠使用者手动更新或是由软件中的更新程序自动更新等方式更新软件中的目标档案。被核心模块210更新的目标档案通常是包含在本发明的软件中,不属于更新程序200的其它程序,但本发明并不以此为限。在实务上,目标档案除了不包含核心模块210之外,也可以包含预更新模块220。值得一提的是,由于软件中不属于更新程序200的其它程序都是由核心模块210 进行更新,因此,核心模块210是更新程序200中最主要的部分。预更新模块220主要负责在加载核心模块210前,更新核心模块210。为了达到这样的功能,预更新模块220至少更包含判断单元221、更新单元222、以及核心加载单元223。判断单元221负责判断与核心模块210对应的更新档案是否存在。被判断单元 221判断存在与否的更新档案即为更新核心模块210的档案,值得一提的是,更新档案可以被储存于包含本发明的软件的执行环境(本地端)中,也可以被储存于远程的服务器中。当更新档案被储存于本地端时,判断单元221可以通过本地端的档案系统判断更新档案是否存在;而当更新档案被储存于服务器时,判断单元221可以通过传输单元2M联机至服务器判断更新档案是否存在。不论更新档案储存于软件的执行环境或是储存于远程的服务器中,判断单元221 更可以由组成核心模块210的各档案的更新日期是否较更新档案的更新日期更早来判断可以被用来更新核心模块210的更新档案是否存在,或是由预存于本地端特定储存位置的设定文件中所记录的核心模块210的版本编号是否较更新档案中所记录的版本编号为小来判断更新核心模块210的更新档案是否存在,甚至可以由本地端的特定的储存位置是否存在特定名称的档案(如文件名称即为前次更新的日期的档案)来判断更新档案是否存在,但判断单元221判断更新档案是否存在的方式并不以此为限。传输单元2M负责与储存更新档案的服务器联机,藉以于判断单元221判断更新档案存在后,至服务器中下载更新档案,使下载至服务器的更新档案被储存于本地端中的特定位置,例如专门用来存放更新档案的目录等,但本发明并不以此为限。另外,传输单元 224更可以提供判断单元221通过其所建立的联机至服务器判断更新档案是否存在。更新单元222负责在判断单元221判断出与核心模块210对应的更新档案存在后,于本地端中读取对应核心模块210的更新档案,并以被读出的更新档案更新核心模块 210,使得核心模块210被更新。其中,更新单元222可以依据预定的存放路径读取预定文件名称的更新档案,也可以依据系统设定文件中所记录的存放路径与文件名称读取更新档案,但更新单元222读取更新档案的方式并不以此为限。更新单元222可以直接以更新档案覆盖组成核心模块210的档案,依据更新档案中所记录的数据修改或删除组成核心模块210的特定档案等,藉以更新核心模块210,但更新单元222更新核心模块210的方式并不以此为限。核心加载单元223负责加载核心模块210,使得核心模块210开始执行。其中,当判断单元221判断出对应核心模块210的更新档案存在时,核心加载单元223会于更新单元222完成核心模块210的更新后,才加载核心模块210,若判断单元221判断出对应核心模块210的更新档案不存在,则会直接加载核心模块210。特别值得一提的是,核心加载单元223是以延迟加载核心模块210的方式来完成更新程序200中最重要部分的更新,而核心加载单元223随着软件开发平台的不同,将会以不同的方式加载核心模块210,例如,核心加载单元223中可以包含「图4A」所示的程序代码401,程序代码401以动态链接库(Dynamic Linking Library, DLL)的方式加载核心模块 210,或是核心加载单元223中也可以包含「图4B」所示程序代码402,程序代码402以「反射」的技术加载核心模块210,但核心加载单元223加载核心模块210的方式并不以上述两程序代码所使用的方式为限。另外,本发明所提供的预更新模块220中更可以包含使用者接口 225,预更新模块 220可以通过使用者接口显示互动信息,藉以与使用者互动,但使用者接口 225并不以此为限。其中,互动信息例如软件更新状态、档案下载完成度等,本发明并不以此为限。使用者接口 225更可以提供使用者输入进行软件更新的触发信号,例如在使用者接口 225中提供更新按键,当使用者点击更新按键时,软件更新的触发信号会被输入,判断单元221更可以在使用者输入进行软件更新的触发信号后,才判断对应核心模块210的更新档案是否存在。此外,预更新模块220或核心模块210都可以结束预更新模块220的执行,例如在核心加载单元223加载核心模块210后,已无其它功用时,预更新模块220可以唤起自身包含的释放程序,藉以结束执行。而核心模块210则是会在需要更新预更新模块220时,唤起结束预更新模块220的程序,藉以结束预更新模块220的执行。接着以一个实施例来解说本发明的运作系统与方法,并请参照「图3」本发明所提的以分离的模块提供软件更新的方法流程图。在本实施例中,假设包含本发明的软件为健康状态记录软件,但本发明所提的软件并不以此为限。当使用者在执行环境中点击(click)代表健康状态记录软件,藉以在执行环境中执行健康状态记录软件后,若健康状态记录软件会再开始执行时,先进行版本的更新,则健康状态记录软件的更新程序200会被执行。若更新程序200包含本发明,则更新程序200会被开发者分离为核心模块210以及预更新模块220 (步骤301)。在更新程序200开始执行后,预更新模块220中的判断单元221会先判断对应核心模块210的更新档案是否存在(步骤350)。假设在本实施例中, 对应核心模块210的更新档案被储存在健康状态记录软件的开发厂商所提供的服务器上, 则判断单元221会先通过预更新模块220中的传输单元224,联机到储存有对应核心模块 210的更新档案的服务器(步骤351)。若判断单元221会通过传输单元2M判断出健康状态记录软件的开发厂商所提供的服务器上储存有更新档案,则判断单元221会通过传输单元2M读取服务器所记录的更新档案的最后更新日期,假设为「2009/4/13」,跟着,判断单元221会在比对服务器所记录的更新档案的最后更新日期「2009/4/13」与核心模块210的前次更新日期「2009/2/8」后,判断出服务器上存在对应核心模块210的更新档案,如此,传输单元2M会至服务器中下载与核心模块210相对应的更新档案(步骤356),并储存于健康状态记录软件所执行的执行环境中。在预更新模块220中的判断单元221判断出对应核心模块210的更新档案存在 (步骤350)后,预更新模块220中的更新单元222会至健康状态记录软件所执行的执行环境中读取与核心模块210相对应的更新档案,并以更新档案对核心模块210进行更新(步骤 360)。在预更新模块220中的更新单元222更新核心模块210后,预更新模块220中的核心加载单元223会加载核心模块210 (步骤370),使得经过更新单元222更新后的核心模块210开始执行,藉以更新属于健康状态记录软件的目标档案(步骤390)。如此,包含本发明的更新程序200所包含的更新属于健康状态记录软件的目标档案的核心模块210将可以被更新,不会因为更新程序200正在执行中而造成无法更新程序200所包含的核心模块 210。在上述的实施例中,若核心模块210在更新健康状态记录软件时,被更新的目标档案中包含组成预更新模块220的档案,为了避免无法完成预更新模块220的更新,则核心模块210会结束预更新模块220的执行(步骤380)。综上所述,可知本发明与现有技术之间的差异在于将更新程序200分离为预更新模块220以及核心模块210后,当预更新模块220判断出与核心模块210对应的更新档案存在时,会先以更新档案更新核心模块210,再加载更新后的核心模块210,使核心模块210 更新软件所包含的目标档案的技术手段,藉由此一技术手段可以解决现有技术所存在更新程序无法更新自身的问题,进而达成避免使用者需要手动更新更新程序的技术功效。在上述的实施例中,若对应核心模块210的更新档案被使用者下载后直接储存在健康状态记录软件所执行的执行环境中,则判断单元221会直接通过健康状态记录软件所执行的执行环境的档案系统,读取健康状态记录软件所执行的执行环境中所储存的更新档案的版本,假设为「8. 4. 13」,而若系统设定文件中所记录的核心模块210的版本为「8. 2. 8」 时,判断单元221判断出健康状态记录软件所执行的执行环境上存在对应核心模块210的更新档案(步骤350)。如此,预更新模块220中的更新单元222会至健康状态记录软件所执行的执行环境中读取与核心模块210相对应的更新档案,并以更新档案对核心模块210 进行更新(步骤360)。另外,若预更新模块220中包含使用者接口 225,则当健康状态记录软件在进行更新的过程中,预更新模块220中的判断单元221判断对应核心模块210的更新档案存在(步骤350)后,预更新模块220可以产生如「图5」所示的使用者接口 225 (步骤310),而后,使用者可以点击使用者接口 225上所显示的「更新」按键521,藉以输入更新软件的触发信号 (步骤35 ,如此,将使得后续步骤被执行。另外,在实务上,预更新模块220也可以在产生使用者接口 225(步骤310)后,先提供使用者点击使用者接口 225上所显示的「更新」按键521以输入触发信号(步骤35 ,再判断对应核心模块210的更新档案是否存在(步骤350)。 虽然本发明所公开的实施方式如上,惟所述的内容并非用以直接限定本发明的专利保护范围。任何本发明所属技术领域中的技术人员,在不脱离本发明所公开的精神和范围的前提下,对本发明的实施的形式上及细节上作些许的更动润饰,均属于本发明的专利保护范围。本发明的专利保护范围,仍须以所附的权利要求书所界定者为准。
权利要求
1.一种以分离的模块提供软件更新的方法,应用于一软件的一更新程序中,其特征在于,该方法至少包含下列步骤分离该更新程序为一预更新模块及一核心模块;该预更新模块判断与该核心模块对应的一更新档案存在后,以该更新档案更新该核心模块;该预更新模块加载更新后的该核心模块;及该核心模块更新该软件所包含的至少一目标档案。
2.如权利要求1所述的以分离的模块提供软件更新的方法,其特征在于,该方法于该预更新模块判断与该核心模块对应的该更新档案存在的步骤前,更包含该预更新模块显示一使用者接口的步骤。
3.如权利要求1所述的以分离的模块提供软件更新的方法,其特征在于,该预更新模块判断与该核心模块对应的该更新档案存在的步骤是该预更新模块联机至一服务器判断该服务器中储存该更新档案后,判断该更新档案存在。
4.如权利要求1所述的以分离的模块提供软件更新的方法,其特征在于,该核心模块更新该软件所包含的该目标档案的步骤更包含该核心模块更新该预更新模块的步骤。
5.如权利要求1所述的以分离的模块提供软件更新的方法,其特征在于,该方法于该核心模块更新该目标档案的步骤前,更包含该预更新模块或该核心模块结束该预更新模块的执行的步骤。
6.如权利要求1所述的以分离的模块提供软件更新的方法,其特征在于,该预更新模块加载更新后的该核心模块的步骤是该预更新模块以动态链接库技术或反射技术载入更新后的该核心模块。
7.一种以分离的模块提供软件更新的系统,应用于一软件的一更新程序中,其特征在于,该系统至少包含一核心模块,用以更新该软件所包含的至少一目标档案;及一预更新模块,属于该目标档案其中之一,其中更包含一判断单元,用以判断与该核心模块对应的一更新档案是否存在;一更新单元,用以于判断单元判断该更新档案存在时,以该更新档案更新该核心模块;及一核心加载单元,用以加载该核心模块。
8.如权利要求7所述的以分离的模块提供软件更新的系统,其特征在于,该预更新模块更包含一使用者接口,该预更新模块更用以于该使用者接口中显示互动信息。
9.如权利要求7所述的以分离的模块提供软件更新的系统,其特征在于,该预更新模块更包含一传输单元,用以联机至一服务器,该判断单元更用以通过该传输单元判断该服务器中是否储存该更新档案,该传输单元更用以至该服务器下载该更新档案。
10.如权利要求7所述的以分离的模块提供软件更新的系统,其特征在于,该预更新模块或该核心模块更用以结束执行该预更新模块。
全文摘要
一种以分离的模块提供软件更新的系统及其方法,其通过将更新程序分离为预更新模块以及核心模块后,当预更新模块判断出与核心模块对应的更新档案存在时,会先以更新档案更新核心模块,再加载更新后的核心模块,使核心模块更新软件所包含的目标档案的技术手段,可以让更新程序更新自身,并达成避免使用者需要手动更新更新程序的技术功效。
文档编号G06F9/445GK102169437SQ201010115850
公开日2011年8月31日 申请日期2010年2月26日 优先权日2010年2月26日
发明者蔡敏捷, 邱全成 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1