响应用户引发事件更新客户的安装数据的方法 本发明一般涉及更新诸如控制程序、文件和数据模块的方法。
移动通信和集成电路技术的最新发展已使得低成本、小型移动(客户)终端日益普及。这些终端易于通过移动通信网或互联网与数量增加的通信终端和系统通信。已经开发出越来越多的软件包(如控制程序、相关文件数据、数据模块)安装在移动终端上,以满足新的客户业务需求。但是,一旦用户需要新的业务功能,就需要经过培训的工作人员的协助来更新软件包。
软件数据的传输可以按下列两种公知的方法之一进行。第一种方法称为“拉出技术(Pull technologies)”,用户从例如环球网(WorldWide Web)之类的资源中主动进行数据检索。第二种方法称为“推入技术(Push technologies)”,即由互联网上地主动地以广播方式向用户发布新闻的新闻服务器来启动。这些公知的方法可用于更新安装在用户终端上的软件。
但是,拉出技术本身需要由用户方启动,而软件自身的更新必须从创建或更新软件的源启动。另一方面,推入技术则要求在广播方进行文件传递。但是,如果需要向大量的用户提供业务,则会增加网络的负担。
因此,本发明的一个目的是提供一种当客户终端发生用户引发的事件时,更新安装在客户(移动)终端上数据的有效方法。
根据本发明的第一个方面,提供一种通过通信网络从服务器系统更新安装在用户终端上的数据的方法。根据本发明,诸如移动终端这样的客户终端储存所安装数据的版本号,并将一请求消息经通信网络发送至服务器系统,以响应由客户终端的使用者引发的事件。该请求的消息包含数据版本号和客户终端的电话号码。服务器系统储存最新的数据和该最新数据的版本号。当服务器系统接收所发送的请求时,其比较在所接收的请求中包含的版本号与所储存的版本号,如果在被比较的版本号之间不匹配时,将一份最新数据拷贝及其版本号经通信网络发送至客户终端。客户终端从服务器系统接收最新数据拷贝及其版本号,并用所接收的该份数据拷贝更新已安装的数据,用所接收的版本号更新所储存的版本号。
根据本发明的第二个方面,客户终端响应由客户终端的用户引发的事件,经通信网络向服务器系统发送请求信息,该请求信息包括客户终端的电话号码。服务器系统储存最新的数据,并且还在第一存储器储存最新数据拷贝的版本号。将一组数据版本号映射至第二存储器中的多个电话号码。服务器系统在收到客户终端发送的请求时,将对应于所接收请求中包含的电话号码在第二存储器中映射的版本号与第一存储器储存的最新数据拷贝的版本号比较,如果被比较的版本号不匹配时,服务器系统将一份最新数据拷贝及其版本号经通信网络发送至客户终端。并用第一存储器储存的版本号更新第二存储器中相应映射的版本号。客户终端从服务器系统接收一份最新数据拷贝,并用该份接收数据更新已安装的数据。
下面将参考附图对本发明进行更详细地说明,图中:
图1是根据本发明的用于通过通信网络更新移动终端文档数据的移动通信网络的方框图;
图2是图1的移动终端的方框图;
图3是根据本发明的第一实施例的移动终端的操作流程图;
图4是图1的本地位置寄存器的方框图;
图5是根据本发明的第一实施例的本地位置寄存器的操作流程图;
图6是图l的服务器的方框图;
图7A和7B是根据本发明第一实施例的服务器的操作流程图;
图8是一顺序图,显示了根据本发明的第一实施例的系统的全部操作;
图9是根据本发明第二实施例的移动终端的操作流程图;
图10是根据本发明第二实施例的本地位置寄存器的方框图;
图11是根据本发明第二实施例的本地位置寄存器的操作流程图;
图12是根据本发明第二实施例的服务器的操作流程图;
图13是一顺序图,显示了根据本发明的第二实施例的系统的全部操作;
图14是当网络在传送更新文档时可能出现超负荷的情况下服务器控制网络通信量的操作流程;
图15是当网络在传递更新文档时可能出现超负荷的情况下本地位置寄存器控制网络通信量的操作流程图。
现在,参看图1,它以根据本发明的移动通信系统作为客户机-服务器系统的一个例子。该系统包括移动通信网络11、本地位置寄存器(home location register)12、服务器13和网络管理器14。移动通信网络11由大量的无线基站组成,每个基站提供一个蜂窝的覆盖范围来服务于移动终端10。当移动终端10进入蜂窝中的任一个之内或停留在某个蜂窝之内时,便从移动终端向网络发送位置登记请求。本地位置寄存器12与网络相连,从而接收位置登记请求,并提供移动终端地址号到当前基站的地址号的映射。
如图2所示,移动终端包括诸如闪存或随机存取存储器之类的用于存储控制程序、相关文档和软件版本号的存储器20。控制单元(CPU)21与存储器20相连,以便根据存储器20的控制程序来完成信号处理。移动终端10与收发器22相连,以便通过无线接口23来对网络发送或从网络接收控制信号。语音电路24与收发器22相连,并进而与移动终端10相连,以便建立和维持语音通信。键盘25和显示单元26也与移动终端10相连。移动终端10具有在移动终端电源接通或呼叫被发出或终止的同时发送位置登记请求的功能。
移动终端10的操作按照图3的流程图来进行。
当移动终端处于电源开关接通的状态,在键盘上操作呼叫引发或呼叫终止键时(程序块101),移动终端10从存储器20读取特定文档的版本号(程序块102)。移动终端10通过本地蜂窝的基站对网络发送包含获得的版本号和移动终端的电话号码的位置登记请求(程序块103)。
移动终端10于是开始等待来自网络的反应。如以下将要描述的,发送的信号通过移动通信网络11连接到本地位置寄存器12,并在其中将该特定的版本号与最新的版本号进行比较。若它们不匹配,本地位置寄存器12对服务器13发送下载请求,从而开始文档传送,通过网络11对移动终端10下载最新版本的文档数据。
当移动终端开始接收发送的文档数据时(程序块104),移动终端10进行到程序块105,从而在存储器20保留的新存储器区间中存储接收的数据,并对接收的文档数据进行错误校验(程序块106)。若未检测到错误(程序块107),移动终端10便将读指针移动到新的存储器空间,从存储器20中删除旧文档(程序块108),并通过网络11对服务器13返回一确认应答信息(程序块110)。若检测到错误(程序块107),流程进行到程序块110来删除新文档数据,对服务器13发送一错误应答信息(程序块111),并返回判断程序块104,以便接收重新发送的文档,并且对重新发送的文档数据重复错误校验过程。
如图4所示,本地位置寄存器12通过线路接收器30和线路发送器31与服务器13相连,并通过线路接收器32和线路发送器33与网络11相连。控制器34与线路接收器30相连,以便接收来自服务器13的特定文档的新版本号,并用接收的文档号更新存储在最新版本号存储器35中的特定文档的旧版本号,然后通过线路发送器31对服务器13返回一应答信息。控制器34也与线路接收器32相连,以便接收来自网络11的位置登记请求和伴随的特定文档的版本号。对于来自网络的位置登记请求,本地位置寄存器12将存储于存储器35中最新的文档版本号与包含在该请求中的文档版本号进行比较,并判断它们是否匹配。若它们不匹配,本地位置寄存器12便对服务器13发送下载请求。
图5是本地位置寄存器12的操作流程图。本地位置寄存器12监视线路接收器30和32的输出,并检验是否有来自服务器13的新文档号(程序块201)或来自网络的位置登记请求(程序块204)。当本地位置寄存器12接收到来自服务器13的特定文档的新版本号时,本地位置寄存器12从程序块201执行到程序块202,以便用接收到的新版本号来更新存储于存储器35中特定文档的旧版本号,并对服务器13返回一应答信息(程序块203)。当本地位置寄存器12接收到来自网络11的位置登记请求时,其控制器从程序块204执行到程序块205,以便将包含在位置登记请求中的文档版本号与存储于存储器35中文档的最新版本号进行比较。若它们匹配(程序块206),程序结束。若它们不匹配,本地位置寄存器12便断定发出请求的移动终端的版本号比其最新的版本号更旧,于是从程序块206执行到程序块207,以便通过线路发送器31对服务器13发送下载请求。该下载请求中包含有发出请求的移动终端的电话号码。
图6中,服务器13包含控制器45,并且控制器45通过线路接收器40和线路发送器41与本地位置寄存器12相连接,以及通过线路接收器42和线路发送器43与网络11相连接。同时,线路接收器44被提供来作为控制器45与网络管理器14的接口。在存储器46中保存有移动终端的最新操作程序、相关的文件和文档版本号。控制器45使用从网络管理器14中下载的数据来更新存储器45中所储存的内容。
根据图7A所示的流程图,服务器13的文档更新程序从程序块301开始执行。在程序块301处,服务器13检查存储器46中所存储的文档是否已经被从网络管理器14中下载的新文档所更新。如果是这样,服务器13便从存储器45中读取更新文档的版本号,将其发送给本地位置寄存器12(程序块302),并等待来自本地位置寄存器的应答信息。如果在指定的时间内未接收到来自本地位置寄存器的应答信息(程序块303),则服务器13返回程序块302,并重新发送新文档的版本号。若在指定的时间内接收到应答信息(程序块303),服务器便终止程序。
在图7B中,作为对来自本地位置寄存器12的下载请求信息的响应,服务器13通过读取包含于接收信息中的移动终端的电话号码(程序块311)开始下载程序(程序块310)。服务器13通过通信网络11对发出请求的移动终端发送更新后的最新文档数据。当发送完成后,服务器13等待来自移动终端的肯定或否定应答信息(程序块313)。若接收到否定的应答信息,服务器13返回程序块312,重复文档的传送,直至从移动终端接收到肯定的应答信息。
为便于全面理解本发明,图8的顺序图示出了第一实施例的客户机-服务器系统的全部操作。
网络管理器14通过周期性地改进客户机终端中使用的文档来对客户机-服务器系统提供全面控制。当一给定文档已被改进、该文档的版本号已更新后,新的文档数据和新版本号便从网络管理器14发送至服务器13,以便更新旧的文档数据和其版本号(仍然参考图7A中的程序块301)。该新版本号便被从服务器13发送至本地位置寄存器12(图7A中的程序块302)。若发送的新版本号被成功地接收(图5中的程序块201),本地位置寄存器12便用接收的数据更新存储于版本号存储器35中文档的旧版本号(程序块202),并对服务器13返回一确认信息(程序块203)。
当移动终端10对网络11发送包含给定文档版本号的位置登记请求、而本地位置寄存器12通过网络11接收该请求(图5中程序块204)时,本地位置寄存器将包含于该请求中的版本号与存储于版本号存储器35中文档的最新版本号进行比较(程序块205)。若包含于位置寄存器请求中的版本号与最新的版本号不同(程序块206),本地位置寄存器即对服务器13发送包含移动终端电话号码的下载请求(程序块207)。作为对下载请求的响应,服务器13通过网络11对移动终端10发送最新版本的文档数据(图7B中程序块310到313)。若在接收的文档中未检测到错误,则移动终端10利用服务器13所发送的新文档更新其旧文档,并通过网络11对服务器13返回一肯定的应答信息。
任何情况下,如移动终端处于电源接通的状态、或对开始呼叫键和终止呼叫键操作的状态下,即使用户并非有意进行此操作,本发明也允许仅通过对网络发送单一的位置登记请求而对用户安装数据进行有效更新。因此,通信网络上的通信量负荷便在移动终端间可靠而均衡地进行分配。
在本发明的第二个实施例中,本发明的移动终端、本地位置寄存器和服务器可进行如图9、10、11和12所示的更改。如图10所示,本改型的本地位置寄存器12另外包括存储器36,在其中,文档的大量版本号映射大量移动电话的号码,而不是将文档的版本号存储于移动终端的存储器20中。另外,当新文档从网络管理器14中被发送时,服务器13如在前述实施例中一样根据图7A的流程图进行操作。第二实施例通过将维持安装数据的版本号的负担转移到本地位置寄存器12而使每个移动终端减轻了负担。
具体地说,移动终端10根据图9的流程图进行操作,其中,程序块400被用来取代前述实施例中的程序块102和103(图3)。由于移动终端中未存储文档版本号,如程序块400所示,位置登记请求简单地发送给网络而不含任何其它信息。
本地位置寄存器12根据图11所示的流程图进行操作。本地位置寄存器12以与前述实施例相同的方法进行操作,直至其从移动终端接收到位置登记请求(程序块204)。作为对位置登记请求的响应,本地位置寄存器12将存储于存储器36中某一位置的、用移动终端的电话号码所识别的、发出请求的移动终端的版本号与存储于存储器35中最新的文档版本号进行比较(程序块500)。若它们不匹配(程序块501),本地位置寄存器向服务器13发送下载请求,其中包含有移动电话号码(程序块502)。
作为对本地位置寄存器下载请求的响应,在图12中,服务器13以与图7B的流程图同样的方式完成文档传送(程序块310到312),并等待来自移动终端的确认应答信息(程序块313)。当从移动终端接收到确认应答信息时,服务器对本地位置寄存器发送应答信息(程序块600),并终止程序。
回到图11,本地位置寄存器从服务器接收确认应答信息(程序块503)。作为对该信息的响应,本地位置寄存器继续进行操作,用存储于存储器35中的最新文档版本号更新存储器36中移动终端的文档版本号,并终止程序。
图13的顺序图显示了第二实施例的客户机-服务器系统的全部操作过程。
与第一实施例相似,当对给定文档作出改进,并将该文档的版本号加以更新后,新文档数据和新版本号被从网络管理器14发送给服务器13,以便更新旧文档数据及其版本号(图7A中的程序块301)。然后,新的版本号被从服务器13发送到本地位置寄存器12(程序块302)。若发送的新版本号被成功地接收(图11中的程序块201),本地位置寄存器12便用接收的版本号更新存储于版本号存储器35中文档的旧版本号(图11中的程序块202),并对服务器13返回一应答信息(图11中的程序块203)。
当移动终端10对网络11发送位置登记请求,且本地位置寄存器12通过网络11接收该请求时(图11中的程序块204),本地位置寄存器将对应于移动终端电话号码的、存储于存储器36中的移动终端的文档版本号与存储于版本号存储器35中文档的最新版本号进行比较(图11中的程序块500)。若存储器36中的移动终端的版本号与存储器35中的最新版本号不同(程序块501),本地位置寄存器12便对服务器13发送一包含移动终端电话号码的下载请求(程序块502)。作为对该下载请求的响应,服务器13通过网络11对移动终端10发送最新版本的文档数据(图12中的程序块310到312)。如果在接收的文档中未检测到错误,移动终端10便用来自服务器13的新文档更新其旧文档,并通过网络11对服务器13返回一确认应答信息。当服务器从移动终端接收到该信息后(图12中的程序块313),它便对本地位置寄存器返回一应答信息(图12中的程序块600)。作为对该应答信息的响应,本地位置寄存器用存储器35中的最新文档版本更新存储器36中的移动终端的文档版本号(图11中的程序块503、504)。
图14和15显示了本发明的进一步的变型。
对服务器13的控制器45进行编程,以便执行图14的程序。该程序中,服务器13监视从本地位置寄存器12下载请求的通信量状况,并通过网络对文档传送的通信量状况进行限制控制,以防止其超出负荷。具体地说,服务器13设定一计数变量D为零(程序块701)。当从本地位置寄存器接收到下载请求时(程序块702),计数变量D按1递增(程序块703),且定时器开始计时(程序块704)。然后,计数变量D与参考值M进行比较(程序块705)。若D不大于M,流程退到程序块707,以便检验是否超出定时器所设定的期限。如果定时器未超时限,则重复执行程序块702到705。否则,流程从程序块707进行到程序块708,以便将计数变量按1递减,并返回程序块702。因此,计数值D代表可能接收自一个或多个本地位置寄存器的下载请求的通信量状况。若计数值D大于M,则服务器13判断发生了通信量拥堵,并对本地位置寄存器12发送通信量拥堵信息(程序块706)。
本地位置寄存器12按照图15的流程图进行操作。在该程序中,本地位置寄存器监视来自网络11的位置登记请求的通信量状况,并对服务器放置关于其下载请求的通信量状况的限制控制。在图15中,本地位置寄存器12设定一计数变量R为零(程序块801)。当从网络11接收到位置登记请求时(程序块802),计数变量R按1递增(程序块803),且定时器开始计时(程序块804)。然后,计数变量R与参考值N进行比较(程序块805)。若R不大于N,流程从程序块805执行到程序块806,以便检验是否从服务器接收到通信量拥堵信息。若未接收到,流程退到程序块808,以便检验是否超出定时器设定的期限。若定时器仍然运行,则重复执行程序块802到806。若定时器超出时限,则计数值R按1递减(程序块809),并返回到程序块802,以便继续进行计数过程。若R大于N或从服务器接收到通信量拥堵信息,则本地位置寄存器执行程序块807,以便终止对服务器发送下载请求。
在本发明的第一实施例的进一步变型中,移动终端10存储数据模块集和该数据模块集的版本号集。作为对移动终端用户引发事件的响应,位置登记请求中包含移动终端版本号集和电话号码。服务器13存储最新的数据模块集及其版本号集。当网络管理器14对以前的数据模块集作任何改变时,本地位置寄存器12接收来自服务器13的最新的数据模块集的版本号集。本地位置寄存器12在存储器35中保持接收到的版本号集。作为对移动终端位置登记请求的响应,本地位置寄存器12将包含于接收的请求中的版本号集和存储的版本号集进行比较,并请求服务器13发送最新的数据模块集的拷贝,并且,当所比较的版本号集不匹配时,通过通信网络对客户机终端发送最新的数据模块集的版本号集。移动终端接收来自服务器系统的最新的数据模块集的拷贝和版本号集,并用接收的拷贝更新安装的数据模块集,用接收的版本集更新存储的版本号集。
根据本发明的第二实施例的进一步变型,移动终端存储数据模块集,并通过通信网络对本地位置寄器12发送请求信息来作为对移动终端用户事件引发的响应。请求信息中包含移动终端的电话号码。服务器13存储最新的数据模块集及其版本号集。当网络管理器14对以前的数据模块集作任何变更时,本地位置寄器12就接收来自服务器13发出的最新的数据模块集的版本号。本地位置寄存器12存储最新的数据模块集。另外,它在第一存储器35中存储最新的数据模块集的多个版本号,并在第二存储器36中存储映射于移动终端数据模块集的版本号的移动终端的大量电话号码。一旦接收到来自移动终端的位置登记请求,本地位置寄存器12就将包含于接收的请求中的与电话号码对应的第二存储器36中所映射的版本号集与存储于第一存储器35中的最新的数据模块集的版本号集进行比较。若在被比较的版本号集中有不匹配,本地位置寄存器12便通过通信网络请求服务器13对移动终端发送最新的数据模块集的拷贝,并用第一存储器35中的版本号集更新第二存储器36中相应的映射版本号集。一旦接收到来自服务器的最新的数据模块集的拷贝,移动终端便用接收的拷贝更新安装的数据模块集。
在此类变型中,当用户在移动终端上引发任何事件时,尽管用户并非有意做此操作,只要移动终端处于电源接通状态、或是处于对开始呼叫键或结束呼叫键操作的状态,也可仅靠对网络发送一个位置登记请求,对多个数据模块进行有效地更新。