终端与服务器通信的方法、系统和装置的制作方法

文档序号:7966530阅读:115来源:国知局
专利名称:终端与服务器通信的方法、系统和装置的制作方法
技术领域
本发明属于通信技术领域,尤其涉及终端与服务器通信的方法、系统和装置。
背景技术
对于仅支持单线程的业务平台,如果应用之间以及应用与下层平台之间的通信是异步的,随着技术的发展,有将异步通信转变为同步通信的必要。Brew(Binary Runtime Environment for Wireless,无线二进制运行环境)平台就是这样一种平台,下面以Brew平台为例进行详细说明。
Brew平台是为提供增值业务所开发运行的基本平台。在无线终端内部,基于Brew平台的应用(Applet)与其它应用或下层平台之间的通信都是异步的,即发送方发出数据后,无须等接收方发回响应,接着发送下一个数据包。这种方式适合于不需要服务器的单机应用,然而,未来通信网将以数据业务为中心,并普遍使用互联网IP(Internet Protocol,网际协议),整个网络将以IP协议作为统一的通信协议,即所谓的Everything Over IP(一切基于网际协议),此时网络只起信息传输的作用,所有的增值业务都在网络之外由终端完成,因此,终端应用程序将日趋复杂,需要业务服务器提供支持,如IMS(IP Multi-mediaSub-system,网际协议多媒体子系统)网络中各种应用基本都需要AS(Application Server,应用服务器),为了适应这一技术发展趋势,Brew无线终端也需要支持C/S(Client/Server,客户端/服务器)、B/S(Browser/Server,浏览器/服务器)应用。
但是,对于复杂的C/S、B/S应用,往往存在用户操作序列的限制,即某个操作服务器返回结果之前,不能进行下个操作,因此,需要将基于Brew平台的终端应用与服务器的通信转化为同步方式。简单举例说明终端应用A需要完成删除一条服务器记录的功能(简称Func1),若服务器成功删除该记录,则终端应用A继续完成其它某功能(简称Func2);若服务器删除该记录失败,则终端应用A完成其它某功能(简称Func3)。由于Brew平台都是异步通信,上面的需求要求根据Func1服务器处理结果不同进行不同的处理,因此,必须接收到服务器发回的响应后才能进行处理,终端应用必须对Func1进行同步转换控制,即终端应用A必须等Func1的服务器处理结果返回后,才可以继续其它操作。
而在现有技术中,还没有在Brew平台上实现异步转同步控制的方案。

发明内容
本发明所要解决的技术问题是提供了终端与服务器通信的方法、系统和装置,将单线程平台上异步通信转变为同步通信。
为实现发明目的,本发明提供了一种终端与服务器通信的方法,用于单线程平台的系统,该方法包括终端向服务器发送请求消息,锁定用户接口;终端获取服务器返回的消息,比较该消息的标识与所述请求消息的标识是否相同,如果是,则按照预置的所述请求消息对应的回调方法处理,并解除用户接口锁定;否则,丢弃服务器返回的消息。
优选的,该方法还包括终端在锁定用户接口时,开始计时;计时超时而终端未收到与已发送消息的标识相同的消息,则按照预置的超时控制回调方法处理,并解除用户接口锁定。
其中,所述消息的标识为消息号或消息名称。
为实现发明目的,本发明提供了一种终端与服务器通信的装置,该装置包括存储单元、比较单元、执行单元,其中存储单元,用于预存储应用单元发送的请求消息所对应的回调方法;比较单元,比较服务器返回消息的标识与所述请求消息的标识,并将比较结果发送到执行单元;执行单元,用于锁定用户接口,接收比较单元发送的比较结果,比较结果相同时,调用存储单元中存储的所述请求消息对应的回调方法处理,并解除用户接口锁定。
优选的,该装置还包括计时单元,其中
存储单元,还用于预存储超时控制回调方法;计时单元,当锁定用户接口时,开始计时,并在超时而未接收到与所述请求消息的标识相同的消息时,通知执行单元;执行单元,还用于当接收到计时单元的超时通知时,调用存储单元存储的超时控制回调方法处理,并解除用户接口锁定。
为实现发明目的,本发明提供了一种终端,该终端包括应用单元、阻塞控件、单线程平台,其中应用单元,用于向阻塞控件预置请求消息所对应的回调方法,发送请求消息并同时启动阻塞控件;阻塞控件,用于接收应用单元预置的请求消息所对应的回调方法,锁定用户接口,并比较服务器返回消息的标识与所述请求消息的标识,在二者相同时调用预置的所述请求对应的回调方法处理,并解除用户接口锁定,不相同时丢弃返回消息。
单线程平台,用于将应用单元发送的请求消息转发到服务器,并将服务器返回的消息转发到应用单元所使用的阻塞控件。
优选的,所述应用单元还用于向阻塞控件预置超时控制回调方法;所述阻塞控件还用于接收并存储应用单元预置的超时控制回调方法,在锁定用户接口时开始计时,并在计时超时而未收到与所述请求消息的标识相同的消息时,调用所存储的超时控制回调方法处理,并解除用户接口锁定。
为实现发明目的,本发明提供了一种终端与服务器通信的系统,该系统包括阻塞控件、应用单元、单线程平台及服务器,其中应用单元,用于向阻塞控件预置请求消息所对应的回调方法,向服务器发送请求消息并同时启动阻塞控件;阻塞控件,用于接收应用单元预置的请求消息所对应的回调方法,锁定用户接口,并比较服务器返回消息的标识与所述请求消息的标识,在二者相同时调用预置的所述请求消息对应的回调方法处理,并解除用户接口锁定,不相同时丢弃返回消息;单线程平台,用于将应用单元发送的请求消息转发到服务器,并将服务器返回的消息转发到应用单元所使用的阻塞控件;服务器,用于处理应用单元发出的请求消息,并返回消息到单线程平台。
优选的,所述应用单元还用于向阻塞控件预置超时控制回调方法;所述阻塞控件还用于接收并存储应用单元预置的超时控制回调方法,在锁定用户接口时开始计时,并在计时超时而未收到与所述请求消息的标识相同的消息时,调用所存储的超时控制回调方法处理,并解除用户接口锁定。
其中,还包括终端通信模块,用于将单线程平台发送的请求消息通过无线网络发送到服务器,并将服务器返回的消息发送到单线程平台。
可见,本发明基于单线程平台本身的消息机制,仅需要对应用单元设置一个阻塞控件,使得用户已发送的某个请求没有返回前,UI锁定,使得终端不对键盘、屏幕、触摸板等处理请求做出响应,从而实现单线程平台上消息的同步,为在单线程平台的无线终端上开发C/S、B/S这类应用提供了便捷的同步通信的方法。当本发明应用于Brew平台时,就可以实现基于Brew平台的终端与服务器的同步通信。
更进一步,本发明采取超时控制的方法,避免由于网络或服务器故障造成响应消息无法返回,进而造成用户不必要的等待及可能导致的无线终端强制性启动,为用户提供了更为友好的人机交互界面。


图1为本发明的方法流程图;图2为本发明一实施例的流程图;图3为本发明一实施例的系统结构图。
具体实施例方式
为了更好地理解本发明,以下以Brew平台为例,结合附图进行描述。
首先说明一下现有Brew平台的消息机制。
Brew平台采用分层机制,包括AEE(Application Execute Environment,应用执行环境)层、OEM(Original Equipment Manufacturer,原始设备制造商)层、驱动及系统服务层,本发明主要应用于AEE层。BrewAEE是一个精巧的软件接口层,用来支持Brew API(Application Programming Interface,应用编程接口)和运行环境;同时AEE也管理着应用程序的执行,及时响应用户和一些紧急事件,如来电和短信呼入,例如,当有来电呼入时,一个正在运行的Brew应用可以立即暂停,并在通话完毕后,再自动恢复工作。
Brew AEE的环境基本组织单位是模块(Module),模块是Brew应用开发和部署的基本单位,在模块中包含两种元素应用(Applet)和类(Class),其中应用Brew应用的基本执行单位,因为Brew是单线程的,所以,不论一个模块里面有多少个应用,同一时间只有一个应用被激活。一个应用可以被另一个应用启动,但在这种情况下,当前的应用被暂停,切换到另一个应用。为了说明应用与服务器的关系,在下文中,用终端应用表示应用。
类AEE中的类是Brew可以复用的基本单位,而且类的复用范围并不局限于其所在的模块,而是整个AEE环境。类的访问点(即一组完成特定功能的API)被称为接口(Interface)。Brew所有的API都以类的形式来组织,提供了包括显示、文件操作、地址簿访问等功能的接口;同时,Brew容许应用开发者编写自己的类。
Brew平台的API是异步的,而回调是实现异步方式的一个最简捷的途径,因此,Brew平台常常采用回调的方法进行异步通信。回调可通过回调函数来实现,当发生某种事件时,系统或其它函数将会自动调用用户预先定义的一段函数,这个过程即是回调。例如,使用回调来实现异步消息的注册,API要求主动对象在服务被请求之前记录回调,当请求完成后,该平台就通过调用记录过的回调方法将返回值传递到主动对象中。
本发明为终端与服务器通信的方法、系统和装置,其核心思想为基于Brew平台现有的消息机制,设置一个阻塞控件,确保在终端应用向服务器发送的响应消息没有返回前,UI(User Interface,用户接口)锁定,不响应键盘、屏幕、触摸板等的处理,从而达到请求异步模拟转换为同步的效果。
首先,本发明提供了一种终端与服务器通信的方法,如图1所示,该方法包括步骤101终端向服务器发送请求消息,锁定用户接口;
步骤102终端获取服务器返回的消息,比较该消息的标识与所述请求消息的标识是否相同,如果是,则按照预置的所述请求消息对应的回调方法处理,并解除用户接口锁定;否则,丢弃服务器返回的消息。
举例说明本发明的实现方法,参照图2。
终端应用因为业务需要发起对服务器增加一条用户记录的请求,根据本发明的思想,采用如下步骤处理步骤201终端应用向阻塞控件注册请求消息的标识。Brew平台消息分为系统消息和应用消息两类,这里的消息指应用消息,应用消息标识可为消息名称或消息号,具体规则可由用户自定义,如终端应用向服务器发起的增加一条记录的消息号为10001,则将10001注册到阻塞控件,注册可以通过调用相应的APl函数来实现。
步骤202终端应用将该消息从服务器返回后的回调方法以及消息超时而未返回情况下的回调方法注册到阻塞控件。
步骤203终端应用向服务器发出增加一条用户记录的请求消息,并启动阻塞控件等待响应消息的返回,阻塞控件将锁定UI并开始计时。UI锁定后,阻塞控件将阻塞与已发送的请求消息的标识不同的所有消息,包括键盘响应、屏幕处理、触摸板、软键盘和专用键盘等。不过,UI锁定后阻塞控件阻塞的只是与UI有关的消息,对于其它的系统消息不作阻塞,例如闹钟定时、网络连接状态变化通知等。举例说明,UI锁定前,当用户通过键盘输入某个字符时,Brew平台会将按键消息发送到输出系统,如进行屏幕显示;但是当UI锁定后,用户进行同样的操作时,虽然Brew平台仍会对接收到的按键消息进行处理,但是由于此时UI锁定,进行屏幕显示的消息被应用阻塞,所以屏幕不会显示用户所输入的信息。
步骤204请求消息通过BrewAEE框架向终端通信模块传送。
步骤205终端通信模块通过无线网络向业务服务器传送请求消息。
步骤206业务服务器通过该请求消息的标识符的参数可判断是何种操作从而进行相应的处理,比如,消息号为10001时,服务器完成增加一条用户记录的操作,并将返回消息通过无线网络发送到终端通信模块。
步骤207终端通信模块将返回消息传送到终端所在的BrewAEE框架。
步骤208BrewAEE框架向终端应用发送返回消息。
步骤209终端应用所使用的阻塞控件接收到返回消息。由于UI锁定,此时只有阻塞控件处于活动状态,因此只有阻塞控件可以接收处理该响应。
步骤210阻塞控件判断返回消息是否超时,如果超过预设时间,则执行步骤211;否则,执行步骤212。超时即请求失败,比如连接超时,该服务终止,或由用户选择重新发起请求。
步骤211阻塞控件按照已注册的超时控制方法处理返回消息,并卸载阻塞控件以解除UI锁定。
步骤212阻塞控件判断接收到的消息的标识与已所述请求消息的标识如消息号是否相同,如果是,则执行步骤213;如果否,执行步骤214。由于已预先将请求消息的标识注册到阻塞控件,故可直接比较返回消息的标识与已注册的请求消息标识。
步骤213阻塞控件按照注册的请求消息回调方法处理返回消息,并卸载阻塞控件以解除UI锁定。消息返回后,消息回调方法调用返回消息中的参数,对参数进行解码,通过该参数使所发送的消息与一个具体的应用程序关联起来,执行相应业务。
步骤214阻塞控件丢弃该消息,即阻塞所有与请求消息的标识不相同的消息。
以上步骤实现了终端应用在发起对服务器的请求后,终端应用根据服务器返回结果继续进行相应处理的通信方式,即同步方式,从而实现了在Brew平台上终端与服务器的同步通信。
其中,步骤201~步骤202中终端应用向阻塞控件注册请求消息的标识、该消息的回调方法及超时控制方法,也即预先保存请求消息与回调方法之间的对应关系。
由于网络传输的实时性受到通信条件的限制,在本实施例中,为了防止用户陷入无限循环而无法及时响应系统消息及可能导致的无线终端的强制性重新启动,特在阻塞控件中设置了一个定时器,并初始化了一个超时控制回调方法,在定时器结束后调用这个回调方法。
当然,也可以不设置超时控制回调方法,比如由用户选择是否等待,进行相对应的手动操作。本实施例中所采用的超时控制回调方法也可以由系统计数的方法实现。
不论是注册的请求消息回调方法,还是超时控制回调方法,均要卸载所述的阻塞控件,以解除对UI的锁定并释放系统资源。
当终端应用因为业务需要发起对业务服务器删除/修改一条记录的请求时,与上述实施例中处理流程相同,只需预置请求消息标识与该消息回调方法之间的对应关系,然后向服务器发送请求消息,同时锁定UI,服务器完成删除/修改一条记录的操作,阻塞控件比较返回消息与所述请求消息的标识,如果相同,则按照预置的请求消息对应的回调方法处理,并解除UI锁定;否则,丢弃返回消息。还可预置超时控制回调方法,若超时未收到响应消息,调用预置的超时控制回调方法处理,并解除UI锁定。
基于上述思想,本发明提供了一种终端与服务器通信的系统,该系统在现有Brew平台上,针对终端应用的异步通信方式,提供了一个阻塞控件,在终端应用所发送的消息未返回前,UI始终锁定,在服务器返回响应后,继续进行业务的处理,从而将终端应用的异步通信方式转变为同步通信方式。
如图3所示,该系统包括无线终端300内部的应用单元301、阻塞控件302、Brew平台303以及服务器400,其中应用单元301,用于向阻塞控件302预置请求消息所对应的回调方法,在发出请求消息时,启动阻塞控件302锁定UI,其中预置请求消息所对应的回调方法可通过注册请求消息的标识及该请求消息对应的回调方法来实现。
阻塞控件302,用于接收并保存应用单元301预置的请求消息所对应的回调方法,如保存请求消息的标识及对应的回调方法,并在接收到Brew平台303所转发的返回消息时,比较返回消息的标识与所述请求消息的标识是否相同,如果是,则调用已注册的请求消息对应的回调方法处理,并卸载阻塞控件解除UI锁定;Brew平台303,用于将应用单元301发送的请求消息转发到服务器400,并将服务器400返回的响应消息发送到应用单元301所使用的阻塞控件302;服务器400,用于接收应用单元301所发送的请求消息并进行相应处理,并发回响应消息。
为了给用户提供更加友好的人机交互界面,避免陷入无限循环而无法及时响应系统消息而导致无线终端的强制性重新启动,在阻塞控件302中设置一个定时器,并在初始化时由应用单元301向阻塞控件302注册超时控制回调方法,在定时器超时时,调用已注册的超时控制回调方法,并卸载阻塞控件以解除UI锁定。
本系统中Brew平台是将请求消息发送到终端通信模块,由终端通信模块通过无线网络将消息传送到服务器,服务器返回的消息也是先通过无线网络传输到终端通信模块,并由终端通信模块发送到Brew平台。
本发明提供了一种终端与服务器通信的装置,即阻塞控件302,如图3所示,以将终端应用的异步通信方式转变为同步通信方式。阻塞控件302包括存储单元3021、比较单元3022、执行单元3023,其中存储单元3021,用于保存应用单元301发送的请求消息所对应的回调方法,如保存所述请求消息的标识及该消息所对应的回调方法;比较单元3022,用于将Brew平台303所转发的服务器400返回的消息和应用单元301发送的请求消息的标识作对比,并将比较结果发送到执行单元3023;由于存储单元3021中已保存应用单元301所发送的请求消息的标识,故可将返回消息的标识直接与存储单元3021中所保存的请求消息的标识作对比。
执行单元3023,用于锁定UI,根据比较单元3022所发送的结果,调用相应的方法处理,如果返回消息与应用单元301所发送的请求消息标识相同,调用存储单元3021中保存的请求消息对应的回调方法处理,并卸载阻塞控件以解除UI锁定。
为了给用户提供更为人性化的交互界面,该装置还可以包括计时单元3024,此时存储单元3021还用于存储应用单元301注册的超时控制回调方法;计时单元3024用于锁定UI时开始计时,并当超时时通知执行单元3023;
执行单元3023用于在接收到计时单元3024的通知时调用存储单元3021中已注册的超时控制方法处理,并卸载阻塞控件以解除UI锁定。
以上对本发明所提供的一种终端与服务器通信的方案进行了详细的介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会由改变之处,例如,本发明不仅仅适用于Brew平台,对于所有基于单线程应用平台的终端应用,如果应用之间以及应用与下层平台之间的通信是异步的,用本发明所提供的方案均可实现终端与服务器的同步通信。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种终端与服务器通信的方法,用于单线程平台的系统,其特征在于,包括终端向服务器发送请求消息,锁定用户接口;终端获取服务器返回的消息,比较该消息的标识与所述请求消息的标识是否相同,如果是,则按照预置的所述请求消息对应的回调方法处理,并解除用户接口锁定;否则,丢弃服务器返回的消息。
2.如权利要求1所述的终端与服务器通信的方法,其特征在于,还包括终端在锁定用户接口时,开始计时;计时超时而终端未收到与已发送消息的标识相同的消息,则按照预置的超时控制回调方法处理,并解除用户接口锁定。
3.如权利要求1或2所述的终端与服务器通信的方法,其特征在于,所述消息的标识为消息号或消息名称。
4.一种终端与服务器通信的装置,其特征在于,包括存储单元、比较单元、执行单元,其中存储单元,用于预存储应用单元发送的请求消息所对应的回调方法;比较单元,比较服务器返回消息的标识与所述请求消息的标识,并将比较结果发送到执行单元;执行单元,用于锁定用户接口,接收比较单元发送的比较结果,比较结果相同时,调用存储单元中存储的所述请求消息对应的回调方法处理,并解除用户接口锁定。
5.如权利要求4所述的终端与服务器通信的装置,其特征在于,还包括计时单元,其中存储单元,还用于预存储超时控制回调方法;计时单元,当锁定用户接口时,开始计时,并在超时而未接收到与所述请求消息的标识相同的消息时,通知执行单元;执行单元,还用于当接收到计时单元的超时通知时,调用存储单元存储的超时控制回调方法处理,并解除用户接口锁定。
6.一种终端,其特征在于,包括应用单元、阻塞控件、单线程平台,其中应用单元,用于向阻塞控件预置请求消息所对应的回调方法,发送请求消息并同时启动阻塞控件;阻塞控件,用于接收应用单元预置的请求消息所对应的回调方法,锁定用户接口,并比较服务器返回消息的标识与所述请求消息的标识,在二者相同时调用预置的所述请求对应的回调方法处理,并解除用户接口锁定,不相同时丢弃返回消息。单线程平台,用于将应用单元发送的请求消息转发到服务器,并将服务器返回的消息转发到应用单元所使用的阻塞控件。
7.如权利要求6所述的终端,其特征在于,所述应用单元还用于向阻塞控件预置超时控制回调方法;所述阻塞控件还用于接收并存储应用单元预置的超时控制回调方法,在锁定用户接口时开始计时,并在计时超时而未收到与所述请求消息的标识相同的消息时,调用所存储的超时控制回调方法处理,并解除用户接口锁定。
8.一种终端与服务器通信的系统,其特征在于,包括阻塞控件、应用单元、单线程平台及服务器,其中应用单元,用于向阻塞控件预置请求消息所对应的回调方法,向服务器发送请求消息并同时启动阻塞控件;阻塞控件,用于接收应用单元预置的请求消息所对应的回调方法,锁定用户接口,并比较服务器返回消息的标识与所述请求消息的标识,在二者相同时调用预置的所述请求消息对应的回调方法处理,并解除用户接口锁定,不相同时丢弃返回消息;单线程平台,用于将应用单元发送的请求消息转发到服务器,并将服务器返回的消息转发到应用单元所使用的阻塞控件;服务器,用于处理应用单元发出的请求消息,并返回消息到单线程平台。
9.如权利要求8所述的终端与服务器通信的系统,其特征在于,所述应用单元还用于向阻塞控件预置超时控制回调方法;所述阻塞控件还用于接收并存储应用单元预置的超时控制回调方法,在锁定用户接口时开始计时,并在计时超时而未收到与所述请求消息的标识相同的消息时,调用所存储的超时控制回调方法处理,并解除用户接口锁定。
10.如权利要求8或9所述的终端与服务器通信的系统,其特征在于,还包括终端通信模块,用于将单线程平台发送的请求消息通过无线网络发送到服务器,并将服务器返回的消息发送到单线程平台。
全文摘要
本发明属于通信技术领域,提供了终端与服务器之间通信的方法、系统和装置。根据本发明,在无线终端的单线程平台上设置阻塞控件,用于锁定用户接口,接收应用单元预置的请求消息所对应的回调方法,并比较服务器返回消息的标识与所述请求消息的标识,在二者相同时调用预置的所述请求消息对应的回调方法处理,并解除用户接口锁定,不相同时丢弃返回消息,从而实现了应用单元与服务器的同步通信。该方案基于单线程平台本身的消息机制,为在单线程平台的无线终端上开发C/S、B/S这类应用提供了便捷的异步转同步控制方法。
文档编号H04L12/58GK1937811SQ20061011196
公开日2007年3月28日 申请日期2006年8月28日 优先权日2006年8月28日
发明者王亭 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1