以模块化方式更新执行中应用 软件的系统及其方法 本发明是提供一种更新执行中的应用软件的系统及其方法,特别是,一种以模块化方式更新执行中的应用软件的系统及其方法。
在现有技术的系统中,当系统需要对应用软件进行更新时,必须先终止该应用软件的执行,才能够以新的应用软件取代旧的应用软件,然后再启动新的应用软件以进行执行。
在主从网络系统结构中,新的应用软件是存放在网络的服务器中,使得客户端计算机可以下载新的应用软件以进行应用软件的更新。因此,当服务器中的应用软件有所更新与改变时,服务器必须通知客户端计算机的使用者目前有新版本的应用软件。当使用者决定进行应用服务器的版本更新,如果客户端计算机正在执行旧版本的应用软件,使用者必须先终止旧版应用软件的执行,用户端计算机才会连接到网络上地一个特定存储装置,以下载新版本应用软件,并且将新版本应用软件存放在客户端计算机中存放旧版本应用软件的位置,以取代旧版本应用软件。然后,使用者必须重新启动新版本应用软件。
因此,当客户端计算机正在执行旧版本应用软件而使用者想要更新应用软件时,使用者必须先中断应用软件的执行,待应用软件更新之后,再重新启动新的应用软件,以重新执行应用软件。所以,在现有技术的系统中,应用软件的执行会被迫中断以进行更新。
此外,在现有技术中,用户端计算机是下载完整的新版本应用软件以完全取代旧版本应用软件。然而,应用软件包含多个功能模块,在一个新版本应用软件中,并不是所有的功能模块都有所更新。因此,在下载应用软件的过程中,无论功能模块是否有所更新而全部下载,会下载一些未经更新而无须下载的功能模块,因而无法达到有效率的应用软件更新。
因此,本发明的目的是提供一种以模块化方式更新执行中的应用软件的系统及其方法。使用者无须终止旧版本应用软件的执行,而可直接对执行中的应用软件进行更新。在应用软件更新后,客户端计算机会继续执行新版本应用软件,因此应用软件的执行不会被迫中断。也就是说,在应用软件的更新过程中,使用者无须终止旧版应用软件,也无须开启新版本应用软件以重新执行应用软件。此外,在应用软件的更新过程中,客户端计算机只下载新版应用软件中经过更新的(updated)功能模块,而不下载未经更新的功能模块,因而提高更新应用软件的效率。
图1是本发明系统的示意图;
图2是本发明方法的流程图;
图3是本发明系统的第一型态文件的示意图;
图4是本发明系统的第二型态文件的示意图;
图5是本发明系统的第一应用软件的示意图;
图6是本发明系统的第二应用软件的示意图。
附图中标号的说明
10系统
12服务器
14客户端计算机
16外部服务器
18第二型态文件
20、24存储装置
26第一型态文件
34第一应用软件
50第二应用软件
请参考图1至图6。图1是本发明系统10的示意图。图2是本发明方法11的流程图。图3是系统10的第一型态文件26的示意图。图4是系统10的第二型态文件18的示意图。图5是系统10的第一应用软件34的示意图。图6是系统10的第二应用软件50的示意图。系统10包含服务器12,客户端计算机14,以及多个外部服务器16。服务器12包含多个第二型态文件18,以及存储装置20。客户端计算机14包含客户端存储装置22,第一型态文件26,以及第一应用软件34。每个外部服务器16包含存储装置24。
第一型态文件26可以是一个独立文件存放在客户端计算机14中,也可存在于操作系统的注册文件中。
如图3所示,每个第一型态文件26包含第一应用软件版本识别码36,以及多个第一功能模块版本识别码38。
如图5所示,第一应用软件34包含多个第一功能模块40。第一应用软件版本识别码36对应于第一应用软件34,而每个第一功能模版本识别码38对应于第一功能模块40。
此外,客户端存储装置22包含第一存储装置30以及第二存储位置32。多个第一功能模块40可分为第一群组以及第二群组,而第一群组所包含的第一功能模块40是存放在第一存储位置30,而该二群组所包含的第一功能模块40是存放在第二存储位置32。
如图4所示,第二型态文件18包含应用软件名称42,文件地址44,第二应用软件版本识别码46,以及多个第二功能模块版本识别码48。文件地址44对应于存储装置20或24,而存储装置20或24存有对应于应用软件名称42的第二应用软件50。如图6所示,第二应用软件50包含多个第二功能模块52。第二应用软件版本识别码46对应于第二应用软件50,而每个第二功能模块版本识别码48对应于第二功能模块52。
此外,每个第一功能模块40对应于第二功能模块52。而版本识别码可以是一个版本号码,也可以是应用软件的更新时间,更新时间愈晚,应用软件的版本越新。
如图2所示,在步骤201中,客户端计算机14执行第一应用软件34,并且对服务器12提出一个要求。
在步骤202中,服务器12接收该要求,并且根据该要求传输一个第二型态文件18到客户端计算机14。
在步骤203中,客户端计算机14的第一应用软件34接收该第二型态文件18。
在步骤204中,第一应用软件34判断第二应用软件版本识别码46是否相同于第一应用软件版本识别码36。如果是,则继续执行第一应用软件34,如果不是,则执行步骤205。
在步骤205中,第一应用软件34判断第二功能模块版本识别码48是否相同于其所对应的第一功能模块版本识别码38,如果是,则执行步骤206,如果不是,则执行步骤207。
在步骤206中,第一应用软件34判断是否还有尚未进行判断的第二功能模块版本识别码48,如果有,则执行步骤205以判断下一个第二功能模块版本识别码48,如果没有,则执行步骤208。
在步骤207中,第一应用软件34根据第二型态文件18中的文件地址44,连接到文件地址44所对应的存储装置20或24,以下载第二功能模块版本识别码48所对应的第二功能模块52,并且将第二功能模块52存放在客户端存储装置22,接着,执行步骤206。
在步骤205至207中,第一应用软件34会利用第二功能模块版本识别码48来判断,相对于其所对应的第一功能模块40,每个第二功能模块52是否为一个经过更新(updated)的功能模块。当第二功能模块52为一个经过更新的功能模块时,第一应用软件34才会下载该第二功能模块52。因此,客户端计算机14仅下载经过更新的第二功能模块52,而不下载所有的第二功能模块52。
在步骤206中,当第一应用软件34的判断结果为没有任何尚未进行判断的第二功能模块版本识别码48时,即表示第一应用软件34已经完成下载经过更新的第二功能模块52的工作,也就是第二应用软件50中所有经过更新的第二功能模块52已经存放在客户端存储装置22。
在步骤208中,存放在第一存储位置30的第一功能模块40将对应于存放在第二存储位置32的第一功能模块40的第二功能模块52复制到第二存储位置32,以取代其所对应的第一功能模块40。
在步骤209中,存放在第一存储位置30的第一功能模块40启动存放在第二存储位置32的第一功能模块40。
在步骤210中,存放在第二存储位置32的第一功能模块40结束存放在第一存储位置30的第一功能模块40。
步骤210也可以是存放在第一存储位置30的第一功能模块40自行结束。
在步骤211中,存放在第二存储位置32的第一功能模块40将对应于存放在第一存储位置30的第一功能模块40的第二功能模块52复制到第一存储位置30,以取代其所对应的第一功能模块40。
由以上描述可以看出,当系统130正在执行第一应用软件34时,系统10可以将第一应用软件34更新为第二应用软件50,并且继续执行更新后的第二应用软件50,以完成执行工作。系统10可以在使用者没有察觉的情况之下,自动进行应用软件版本的更新,以达到更佳的执行效果。
与现有技术比较,本发明系统10可以更新一个执行中的应用软件。当服务器中的应用软件有所更新与改变时,使用者无须终止旧版本应用软件的执行,而可以直接对执行中的应用软件进行版本更新。当应用软件不是很大,或者处在宽带网络环境时,本发明系统将会有最好的效果。
因此,在本发明系统10中,对于使用者而言,使用者可以总是拥有更新版本的应用软件,而无须担心功能升级的问题。而对应用软件的提供者而言,可以通过自动更新应用软件来确保目前所有使用者所使用的都是最新版本的应用软件。此外,当提供者发现该应用软件出现错误(bugs)时,在对应用软件进行除错(debug)之后,提供者可以利用本发明的方法来即时更新使用者所使用的应用软件,以进行应用软件的更正。
此外,本发明系统10是以模块化的方式来更新一个执行中的应用软件。在下载第二功能模块之前,系统10会先判断该第二功能模块52是否是一个经过更新的功能模块。当第二功能模块52是一个经过更新的功能模块时,客户端计算机14才会下载该第二功能模块52。因此,客户端计算机14仅下载第二应用软件50中经过更新的第二功能模块52,而不下载第二应用软件50的所有第二功能模块52,因而提高了更新应用软件的效率。
以上所述仅是本发明的优选实施例,凡按照本发明的权利要求书所限定的范围所作出的等同变化或修改,都将属本发明专利的涵盖范围之内。