发明内容
为了至少解决上述问题中的一部分,提供了根据本发明的用于指令消息分发的方法、终端、服务器以及系统。
根据本发明的第一方面,提供了一种在终端处执行的用于获取指令消息的方法。该方法包括:(a)当检测到触发事件时,向服务器发送指令消息获取请求;(b)从所述服务器接收所请求的指令消息;(c)对所述指令消息进行解析;以及(d)根据解析出的所述指令消息的内容,执行相应操作。
在一些实施例中,所述触发事件包括以下至少一项:所述终端本地的后台轮询触发事件、以及来自所述服务器的通知触发事件。
在一些实施例中,所述指令消息具有以下格式中至少一项:XML、JSON、JavaBean、和DataBean。
在一些实施例中,所述指令消息包括以下字段中至少一项:发送方、授权码、接收方、指令标记、和附加内容。
在一些实施例中,所述终端采用以下平台中至少一项:iOS平台、Android平台、和WinPhone平台。
在一些实施例中,在所述终端采用Android平台的情况下,步骤(b)是通过GooglePlay方式执行的。
在一些实施例中,在所述终端采用Android平台的情况下,步骤(b)是通过第三方云推送平台执行的。
在一些实施例中,在所述终端采用iOS平台的情况下,步骤(b)是通过APNS方式执行的。
在一些实施例中,在所述终端采用WinPhone平台的情况下,步骤(b)是通过MPNS方式执行的。
在一些实施例中,步骤(c)是由所述终端上内嵌或引用了指令消息解析模块的程序来执行的。
在一些实施例中,步骤(d)还包括:(d1)如果解析出的所述指令消息的内容涉及固定指令,则由所述指令消息解析模块来负责执行所述固定指令;以及(d2)如果解析出的所述指令消息的内容涉及自定义指令,则由所述指令消息解析模块将所述自定义指令传递给相关的其它模块或其它程序,并由所述其它模块或其它程序来执行所述自定义指令。
根据本发明的第二方面,提供了一种用于获取指令消息的终端。该终端包括:请求发送单元,用于当检测到触发事件时,向服务器发送指令消息获取请求;指令接收单元,用于从所述服务器接收所请求的指令消息;指令解析单元,用于对所述指令消息进行解析;以及操作执行单元,用于根据解析出的所述指令消息的内容,执行相应操作。
在一些实施例中,所述触发事件包括以下至少一项:所述终端本地的后台轮询触发事件、以及来自所述服务器的通知触发事件。
在一些实施例中,所述指令消息具有以下格式中至少一项:XML、JSON、JavaBean、和DataBean。
在一些实施例中,所述指令消息包括以下字段中至少一项:发送方、授权码、接收方、指令标记、和附加内容。
在一些实施例中,所述终端采用以下平台中至少一项:iOS平台、Android平台、和WinPhone平台。
在一些实施例中,在所述终端采用Android平台的情况下,所述请求发送单元通过GooglePlay方式执行其操作。
在一些实施例中,在所述终端采用Android平台的情况下,所述请求发送单元通过第三方云推送平台执行其操作。
在一些实施例中,在所述终端采用iOS平台的情况下,所述请求发送单元通过APNS方式执行其操作。
在一些实施例中,在所述终端采用WinPhone平台的情况下,所述请求发送单元通过MPNS方式执行其操作。
在一些实施例中,所述指令解析单元包括所述终端上内嵌或引用了指令消息解析模块的程序。
在一些实施例中,所述操作执行单元还用于:(d1)如果解析出的所述指令消息的内容涉及固定指令,则由所述指令消息解析模块来负责执行所述固定指令;以及(d2)如果解析出的所述指令消息的内容涉及自定义指令,则由所述指令消息解析模块将所述自定义指令传递给相关的其它模块或其它程序,并由所述其它模块或其它程序来执行所述自定义指令。
根据本发明的第三方面,提供了一种在指令消息通知服务器处执行的用于通知终端下载指令消息的方法。该方法包括:(a)从指令消息同步服务器接收通知消息,所述通知消息指示了在所述消息同步服务器处存在待下发的指令消息;以及(b)分别使用与一个或多个终端对应的通知方式向所述一个或多个终端发送所述通知消息。
在一些实施例中,在所述终端采用Android平台的情况下,步骤(b)是通过GooglePlay方式执行的。
在一些实施例中,在所述终端采用Android平台的情况下,步骤(b)是通过第三方云推送平台执行的。
在一些实施例中,在所述终端采用iOS平台的情况下,步骤(b)是通过APNS方式执行的。
在一些实施例中,在所述终端采用WinPhone平台的情况下,步骤(b)是通过MPNS方式执行的。
根据本发明的第四方面,提供了一种用于通知终端下载指令消息的指令消息通知服务器。该指令消息通知服务器包括:通知接收单元,用于从指令消息同步服务器接收通知消息,所述通知消息指示了在所述消息同步服务器处存在待下发的指令消息;以及通知发送单元,用于分别使用与一个或多个终端对应的通知方式向所述一个或多个终端发送所述通知消息。
在一些实施例中,在所述终端采用Android平台的情况下,所述通知发送单元通过GooglePlay方式执行其操作。
在一些实施例中,在所述终端采用Android平台的情况下,所述通知发送单元通过第三方云推送平台执行其操作。
在一些实施例中,在所述终端采用iOS平台的情况下,所述通知发送单元通过APNS方式执行其操作。
在一些实施例中,在所述终端采用WinPhone平台的情况下,所述通知发送单元通过MPNS方式执行其操作。
根据本发明的第五方面,提供了一种在指令消息同步服务器处执行的用于下发指令消息的方法。该方法包括:(a)当检测到触发事件时,通过指令消息通知服务器向一个或多个终端发送通知消息,所述通知消息指示了在所述消息同步服务器处存在待下发的指令消息;(b)从所述一个或多个终端接收指令消息获取请求;以及(c)向所述一个或多个终端发送所请求的指令消息。
在一些实施例中,所述触发条件包括以下至少一项:由所述指令消息同步服务器本地生成的固定指令的发布事件、以及从其他应用服务接收到自定义指令的发布事件。
在一些实施例中,所述指令消息具有以下数据格式中至少一项:XML、JSON、JavaBean、和DataBean。
在一些实施例中,所述指令消息包括以下字段中至少一项:发送方、授权码、接收方、指令标记、和内容。
在一些实施例中,所述终端采用以下平台中至少一项:iOS平台、Android平台、和WinPhone平台。
在一些实施例中,在所述终端采用Android平台的情况下,步骤(a)是通过GooglePlay方式执行的。
在一些实施例中,在所述终端采用Android平台的情况下,步骤(a)是通过第三方云推送平台执行的。
在一些实施例中,在所述终端采用iOS平台的情况下,步骤(a)是通过APNS方式执行的。
在一些实施例中,在所述终端采用WinPhone平台的情况下,步骤(a)是通过MPNS方式执行的。
根据本发明的第六方面,提供了一种用于下发指令消息的指令消息同步服务器。该指令消息同步服务器包括:指令通知单元,用于当检测到触发事件时,通过指令消息通知服务器向一个或多个终端发送通知消息,所述通知消息指示了在所述消息同步服务器处存在待下发的指令消息;请求接收单元,用于从所述一个或多个终端接收指令消息获取请求;以及指令发送单元,用于向所述一个或多个终端发送所请求的指令消息。
在一些实施例中,所述触发条件包括以下至少一项:由所述指令消息同步服务器本地生成的固定指令的发布事件、以及从其他应用服务接收到自定义指令的发布事件。
在一些实施例中,所述指令消息具有以下数据格式中至少一项:XML、JSON、JavaBean、和DataBean。
在一些实施例中,所述指令消息包括以下字段中至少一项:发送方、授权码、接收方、指令标记、和内容。
在一些实施例中,所述终端采用以下平台中至少一项:iOS平台、Android平台、和WinPhone平台。
在一些实施例中,在所述终端采用Android平台的情况下,所述指令通知单元通过GooglePlay方式执行其操作。
在一些实施例中,在所述终端采用Android平台的情况下,指令通知单元通过第三方云推送平台执行其操作。
在一些实施例中,在所述终端采用iOS平台的情况下,指令通知单元通过APNS方式执行其操作。
在一些实施例中,在所述终端采用WinPhone平台的情况下,指令通知单元通过MPNS方式执行其操作。
根据本发明的第七方面,提供了一种指令消息分发系统。该系统包括:一个或多个根据第二方面所述的终端;根据第四方面所述的指令消息通知服务器;以及根据第六方面所述的指令消息同步服务器。
根据本发明的第八方面,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,该计算机可执行指令在由计算机的处理器执行时,使得所述计算机执行根据本发明第一方面、第三方面、和/或第五方面所述的方法。
通过使用本发明的方法、终端、各服务器以及系统,首先可以解决移动设备跨平台消息指令推送的问题。其次,可以解决推送消息无法挂载大数据的有效载荷内容的问题。第三,可以解决没有一种统一的标准来实现移动应用接收和执行固定消息指令的问题。第四,可以解决没有一种统一的标准来实现移动应用扩展接收和执行消息指令的问题。第五,可以解决开发者没有一种有效的技术来实现跨平台指令消息推送的问题。第六,可以解决开发者没有一种有效技术来实现移动应用指令接收和集成扩展开发的问题。第七,可以解决开发者没有一种有效的集成技术方案来实现跨平台通知消息的推送问题。利用根据本公开的移动指令消息系统来进行客户端应用丰富的行为控制与大数量的报文或文件下发功能,解决了现有技术无法统一规范地利用推送消息技术实现移动应用被动地自动地进行大数据的接收,以及有效地屏蔽移动应用开发技术架构上的缺陷,大大提高移动应用利用C/S传统架构开发模式在移动网络和平台的环境下的实时在线实时响应的能力。
具体实施方式
下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。以下,以本发明应用于无线移动通信系统的场景为例,对本发明进行了详细描述。但本发明并不局限于此,本发明也可以应用于固定通信系统、有线通信系统,或者应用于无线移动通信系统、固定通信系统、有线通信系统等的任意混合结构。就移动通信系统而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA、CDMA2000、TD-SCDMA系统等,此外还可以包括WiFi、蓝牙、红外等无线通信协议,不同的移动终端可以采用相同的通信协议,也可以采用不同的通信协议。此外,本发明并不局限于移动终端的具体操作系统,可以包括(但不限于)iOS、WinPhone、Symbian(塞班)、Android(安卓)等,不同的移动终端可以采用相同的操作系统,也可以采用不同的操作系统。
图1是示出了根据本发明的指令消息分发系统1000的应用场景的示意图。如图1所示,系统1000可以包括终端100、指令消息通知服务器200A和指令消息同步服务器200B。为了清楚起见,图中仅示出了一个终端100、一个指令消息通知服务器200A和一个指令消息同步服务器200B,但本发明并不局限于此,可以包括两个或更多数目的终端和/或各服务器等等。在一些实施例中,指令消息通知服务器200A和指令消息同步服务器200B可以是同一个服务器。以下,在不特别声明的情况下,可以用服务器200来统称指令消息通知服务器200A和指令消息同步服务器200B。应当理解:由服务器200所执行的操作可以由指令消息通知服务器200A或指令消息同步服务器200B单独执行,也可以由这二者合作执行。终端100可以属于用户或者可以由用户操作。终端100和服务器200可以通过通信网络300进行通信。通信网络300的示例可以包括(但不限于):互联网、移动通信网络、固定线路(如xDSL、光纤等)等。此外,指令消息通知服务器200A和指令消息同步服务器200B之间的通信可以与图1所示不同,不经过互联网,而是通过本地网络(例如,LAN、WLAN等)直接相连。此外,在指令消息通知服务器200A和指令消息同步服务器200B是同一个服务器200的情况下,这两个服务器之间的通信可以被视为服务器200内部的进程间、模块间、程序间通信等。
在图1所示实施例中,为了在终端100上获取指令消息,将根据本发明的实施例的指令消息获取客户端150(以下简称为客户端150)安装在终端100上。客户端150可以由用户以软件的形式自行安装在终端100中,或者可以由生产厂商以硬件或固件的形式安装在终端100中。在一些实施例中,客户端150可以是例如在用户购买了终端100之后从网络中下载的专门用于本发明的应用软件,例如iOS、安卓平台、或WinPhone上的app。在另一些实施例中,客户端150可以是例如由生产厂商以固件或硬件形式预先安装在终端100中的应用程序。在又一些实施例中,客户端150可以是由生产厂商生产的硬件模块或终端100本身。以下当不特别指明时,可以将终端100和客户端150交换使用。
类似地,为了在服务器200A和200B上执行相应的操作,可以将根据本发明的实施例的指令消息通知服务器端250A(以下简称为服务器端250A)安装在指令消息通知服务器200A上,以及可以将根据本发明的实施例的指令消息同步服务器端250B(以下简称为服务器端250B)安装在指令消息同步服务器200B上。类似地,服务器端250A和250B可以由服务器管理员以软件的形式自行安装在服务器200中,或者可以由生产厂商以硬件或固件的形式安装在服务器200中。在一些实施例中,服务器端250A和250B可以是例如在服务提供商购买了服务器200之后从网络中下载的专门用于本发明的应用软件,例如Windows、Linux、Unix上的应用软件。在另一些实施例中,服务器端250可以是例如由生产厂商以固件或硬件形式预先安装在服务器200中的应用程序。在又一些实施例中,服务器端250可以是由生产厂商生产的硬件模块或服务器200本身。以下当不特别指明时,可以将服务器200A和200B与服务器端250A和250B交换使用。
接下来,将参考图2~图3B来详细说明根据本发明的实施例的用于指令消息分发的流程。
在本发明的一些实施例中,指令消息可以主要分为固定指令与自定义(扩展)指令两种,其中,固定指令可以指由终端管理服务器(例如,指令消息同步服务器200B)本身产生的指令消息体,而自定义指令可以指由第三方应用程序产生的指令消息体。可以在图3A和3B中清楚地看到,在本发明的一些实施例中,由“消息指令同步中心”(例如,指令消息同步服务器200B)本身来产生固定指令消息,而由“其它应用服务”来产生自定义指令消息。当然,本发明不限于此。实际上,也可以由消息指令同步中心来产生自定义指令消息,以实现其固定指令之外的其它目的。此外,也可以由被授权的其他应用服务来产生固定指令消息,以方便其调用已有的指令集,减少终端侧应用的开发成本,避免各种资源浪费。
在一些实施例中,指令消息体可以具有以下描述性文本语言数据格式,例如(但不限于):XML和/或JSON等。此外,其也可以具有由程序对象级语言生成的数据格式,例如(但不限于):JavaBean和/或DataBean。在一些实施例中,指令消息可以采用自定义的DataBean格式来描述,其中,指令消息的主要字段可以包括:from(发送方)、passcode(授权码)、to(接收方)、command(指令标记0~65535)、content(指令附带内容)等。“from”字段和“passcode”字段可以用于指明并认证本条指令由谁发起,以方便接收到指令的终端100来判断该条指令是否合法,从而是否继续后续判断。“to”字段用于指明由谁来执行该条指令,从而方便终端100判断自身是否是该条指令的目的地,并是否应当执行该条指令。“command”字段包含指令的指令代码,以方便终端100判断具体要执行什么指令。当指令代码涉及到复杂的操作时,例如涉及指示终端100从指定URL(统一资源定位符)下载某一文件时,还可以使用“content”字段向终端100提供附加内容,例如,该字段可以包含待下载文件的URL。
此外,在一些实施例中,“from”和“to”字段中还可以分别指明该指令来自什么程序和/或模块,以及应当由什么程序和/或模块来执行。例如,在“to”字段中,可以存在用于指明应当由除了接收到该指令消息的程序/模块(例如,移动客户端指令解析SDK模块,如下文所述)之外的另一程序/模块(例如,终端100的设备管理器程序)来执行。这样,可以方便终端100的负责接收并解析指令消息的模块来判断该指令消息具体应当由哪个程序/模块来执行。
在以下表1中列出了在本发明一个实施例中可以采用的一些固定指令。然而应当可以理解:固定指令不限于此处列出的这些指令,且每个指令所对应的“command”数值(即,指令代码)也不是恒定的。例如,可以新增、删除、修改任意指令所对应的数值。实际上,只要服务器侧和终端侧关于该数值的理解达成一致,即可实现相应的固定指令。此外,在一些备选实施例中,指令代码的范围也不限于下述表1中的0~65535,而可以是任何连续或不连续的数值范围。
在图2所示实施例中,指令消息分发系统包括:消息指令同步中心(例如,图1所示的指令消息同步服务器200B)、通知消息发送中心(例如,图1所示的指令消息通知服务器200A)、以及安装在一个或多个终端(例如,终端100)的应用程序(例如,客户端150)中的移动客户端指令解析SDK。
在图2所示的实施例中,消息指令同步中心可以是利用Java语言开发的一个或一组程序,其主要功能是用于接收由其它第三方应用程序发送过来的自定义指令、提供消息指令持久化队列存储、提供消息发送到达可靠性保证、提供消息通知指令自动生成发送等功能。此外,在图2所示的实施例中,通知消息发送中心可以是利用Java语言开发的一个或一组程序,其主要功能是接收从消息指令同步中心或其它应用程序发送过来的通知类消息内容、根据接收终端设备的操作平台对于通知消息的要求不同而分别封装通知消息内容、根据接收者使用的终端设备不同自动选择通知消息的发送通道。
例如,关于指令消息发送通道(方式)的选择,对于采用iOS平台的终端,可以使用苹果公司专有的APNS(苹果推送通知服务)进行。对于采用Android平台的终端,在一些情况下,可以采用GooglePlay技术推送(例如,当终端和管理服务器均在支持GooglePlay技术的位置时,如美国),而在另一些情况下可以采用一个或多个商用的第三方云服务平台进行推送通知(例如,中国)。此外,对于采用WinPhone平台的终端,可以采用微软的MPNS(微软推送通知服务)技术进行消息通知推送。在一些实施例中,通知消息发送中心可以根据终端100在服务器200处进行注册时预先登记的平台类型来选择不同的发送通道。当然,本发明不限于此,也可以根据其它方式来选择恰当的发送通道。
继续参见图2,在图2所示的实施例中,移动客户端指令解析SDK可以是利用各操作平台的开发语言所开发出来的一个或一组程序。例如,针对Android平台,可以采用Android开发者SDK来编程移动客户端指令解析SDK,使得其可以作为任何Android App的一部分,通过内嵌或引用的方式被其它移动应用集成。对于iOS和WinPhone,也可以采用类似方式将其嵌入到其它应用程序中。
移动客户端指令解析SDK的主要功能是根据指令策略来控制移动应用与智能设备本身提供的系统API之间的交互动作、解析指令消息体、根据指令消息体内容执行指令、根据指令动作选择性返回指令操作结果、配套提供指令所需的程序组件给开发者使用、平台级自动触发后台查询进程的实时响应、通知触发式进行主动获取指令等功能。
在图2所示的实施例中,其他应用服务可以指利用本发明的移动指令消息系统向基于上述移动客户端解析SDK开发出的移动应用(例如,客户端150)发送自定义指令的应用服务系统或其它业务平台系统。
接下来,将参照图3A和3B来详细描述在根据本发明的一些实施例的系统中如何进行指令消息的分发。
首先,图3A示出了根据本发明一些实施例的由服务器侧发起的指令消息下发流程。在图3A所示实施例中,由消息指令同步中心(例如,指令消息同步服务器200B)生成要下发给终端(例如,终端100)的固定指令(步骤1),例如要求终端100报告其地理位置的指令消息(例如,指令代码“13”)。
接下来,消息指令同步中心向通知消息发送中心发送固定指令调用通知消息,以向通知消息发送中心告知:在消息指令同步中心有待下发的指令消息(步骤2)。在一些实施例中,该通知消息可以包括用于识别一个或多个目标终端的标识符(例如,“to”字段中的部分信息)。在另一些实施例中,该通知消息可以包括用于确定目标终端的判断标准,例如,所有电话号码在“1370-”号段的手机、所有iOS平台手机、所有当前位于北京市内的手机等。在该情况下,通知消息发送中心可以根据该判断标准,从其本身或另一服务器(例如,归属位置寄存器(HLR)、访客位置寄存器(VLR)等)处预先登记的终端中查找满足判断标准的终端。
然后,在通知消息发送中心确定了目标终端之后,其可以根据该目标终端的平台,如上所述选择恰当的通知通道(方式),并使用相应方式向终端(例如,终端100)发送固定指令通知消息(步骤3)。接收到固定指令通知消息的终端100可以根据相应通知方式的处理流程来处理该固定指令通知消息。例如,在一个实施例中,终端100上的客户端150经过相应通知通道的接口接收到该固定指令通知消息,并将其传递给移动客户端指令解析SDK模块,供后续操作。
在一些实施例中,固定指令通知消息本身可能并不包含与指令内容有关的信息。换言之,固定指令通知消息本身只负责触发终端100去服务器200处获取指令消息。这样做的目的,是为了在提供统一指令下发方式的情况下,避免由于某些平台的通知方式对指令消息大小加以限制所产生的问题。例如,当与固定指令通知消息相对应的指令过大,超过了例如Android系统的消息大小上限时(例如,大文件推送请求等),该固定指令通知消息可以不包含与要下发的文件相关的内容,而只是向终端100通知其需要从服务器200处下载数据。然后,终端100可以向消息指令同步中心请求下载指令内容(步骤4),如图2所示。在接收到指令消息之后,移动客户端指令解析SDK模块可以对其进行解析,并从中提取出指令代码。终端100可以在例如表1所示指令代码表中查找到对应指令,发现其为固定指令。然后,移动客户端指令解析SDK可以执行该固定指令,或将该固定指令以及可能的附加内容转发给终端100内的其他模块/程序来执行。例如,在上述“物理位置”的示例中,移动客户端指令解析SDK可以直接执行获取终端100的物理位置的该固定指令。例如,移动客户端指令解析SDK可以向终端100的GPS模块查询终端100的物理位置,并根据所获得的物理位置来生成要向服务器侧返回的查询结果。
而在另一些实施例中,固定指令通知消息本身就可以包含指令消息。从而使得终端100无需再进一步去服务器处获得指令消息。当然,并不是所有的指令消息都可以通过通知消息来发送,因为通知消息可能受制于各平台的通知通道的限制(例如,大小、时间、地点等)。
同样如图3A的步骤6~11所示,除了固定指令下发之外,还可以向终端100下发自定义指令。自定义指令可以由其他应用服务来生成。例如,在终端100上安装有应用A,应用A的开发商维护与应用A相对应的网络服务器B。因此,网络服务器B可以利用根据本发明的指令消息通知系统向终端100上的应用A下发各种自定义指令。
在一个实施例中,其他应用服务可以生成自定义指令(步骤6),并将其向消息指令同步中心发布(步骤7)。接收到该自定义指令发布的消息指令同步中心可以类似于上述固定指令发布一样,向终端100发布自定义指令(步骤8~11)。其后续主要区别在于:当移动客户端指令解析SDK解析出该指令是自定义指令时,可以根据预先设置的规则和/或服务器200下发指令的通知下发的目标程序/模块的标识符(例如,“to”字段),将该自定义指令转发给相应的目标程序/模块(例如,应用A)来进行后续处理。
在一些实施例中,除了可以如图3A所示一样由服务器侧发起指令消息的下发之外,还可以由终端100主动发起指令获取流程。在图3B所示的实施例中,终端100可以根据后台轮询的请求,向消息指令同步中心查询是否存在待下发的指令消息。如图3B所示,在该查询之前,在消息指令同步中心处已经存在固定指令(例如,步骤1)和/或自定义指令(例如,步骤5和6)。从而,在不需要通知消息发送中心参与的情况下,终端100可以从消息指令同步中心直接获取指令消息。且终端100中的移动客户端指令解析SDK可以如上所述来处理该固定指令和/或自定义指令。
至此,已结合图2~图3B详细描述了根据本发明一些实施例的指令消息分发的流程。通过使用本发明的方法、终端、各服务器以及系统,首先可以解决移动设备跨平台消息指令推送的问题。其次,可以解决推送消息无法挂载大数据的有效载荷内容的问题。第三,可以解决没有一种统一的标准来实现移动应用接收和执行固定消息指令的问题。第四,可以解决没有一种统一的标准来实现移动应用扩展接收和执行消息指令的问题。第五,可以解决开发者没有一种有效的技术来实现跨平台指令消息推送的问题。第六,可以解决开发者没有一种有效技术来实现移动应用指令接收和集成扩展开发的问题。第七,可以解决开发者没有一种有效的集成技术方案来实现跨平台通知消息的推送问题。利用根据本公开的移动指令消息系统来进行客户端应用丰富的行为控制与大数量的报文或文件下发功能,解决了现有技术无法统一规范地利用推送消息技术实现移动应用被动地自动地进行大数据的接收,以及有效地屏蔽移动应用开发技术架构上的缺陷,大大提高移动应用利用C/S传统架构开发模式在移动网络和平台的环境下的实时在线实时响应的能力。
图4是示出了根据本发明实施例的在终端100中执行的用于获取指令消息的方法400的流程图。如图4所示,方法400可以包括步骤S410、S420、S430和S440。根据本发明,方法400的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图4所示的具体操作顺序。在一些实施例中,方法400可以由图1所示的终端100和/或客户端150来执行。
图6是示出了根据本发明实施例的在指令消息通知服务器200A中执行的用于通知终端100获取指令消息的方法600的流程图。如图6所示,方法600可以包括步骤S610和S620。根据本发明,方法600的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图6所示的具体操作顺序。在一些实施例中,方法600可以由图1所示的指令消息通知服务器200A和/或服务器端250A来执行。
图8是示出了根据本发明实施例的在指令消息同步服务器200B中执行的用于下发指令消息的方法800的流程图。如图8所示,方法800可以包括步骤S810、S820和S830。根据本发明,方法800的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图8所示的具体操作顺序。在一些实施例中,方法800可以由图1所示的指令消息同步服务器200B和/或服务器端250B来执行。
图5是示出了根据本发明实施例的用于获取指令内容的示例终端100的框图。如图5所示,终端100可以包括:请求发送单元110、指令接收单元120、指令解析单元130和操作执行单元140。
请求发送单元110可以用于当检测到触发事件时,向服务器200B发送指令消息获取请求。请求发送单元110可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)相配合,在检测到触发事件时,向服务器200B发送指令消息获取请求。
指令接收单元120可以用于从服务器200B接收所请求的指令消息。指令接收单元120可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)相配合,从服务器200B接收响应于指令消息获取请求的指令消息。
指令解析单元130可以用于对接收到的指令消息进行解析。指令解析单元130可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的存储部分(例如,SD卡、RAM等)相配合,根据预定的消息格式对所接收的指令消息进行解析,并查询存储的指令代码表,以判断如何对指令进行执行。
操作执行单元140可以用于根据解析出的指令消息的内容,执行相应操作。操作执行单元140可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以根据上面判断的结果,来决定是否由自己执行该指令,还是将其传递给另一模块和/或程序来执行该指令。
图7是示出了根据本发明实施例的用于通知终端100下载指令消息的指令消息通知服务器200A的框图。如图7所示,指令消息通知服务器200A可以包括:通知接收单元210和通知发送单元220。
通知接收单元210可以用于从指令消息同步服务器200A接收通知消息,该通知消息指示了在消息同步服务器200A处存在待下发的指令消息。通知接收单元210可以是指令消息通知服务器200A的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与指令消息通知服务器200A的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)相配合,从指令消息同步服务器200A接收存在待下发指令的通知消息。
通知发送单元220可以用于分别使用与一个或多个终端对应的通知方式向一个或多个终端100发送通知消息。通知发送单元220可以是指令消息通知服务器200A的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与指令消息通知服务器200A的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)相配合,根据预先注册的各终端的通知方式,选择使用恰当的通知通道向各终端100通知存在待下发的指令。
图9是示出了根据本发明实施例的用于下发指令消息的指令消息同步服务器200B的框图。如图9所示,指令消息同步服务器200B可以包括:指令通知单元260、请求接收单元270和指令发送单元280。
指令通知单元260用于当检测到触发事件时,通过指令消息通知服务器200A向一个或多个终端100发送通知消息,该通知消息指示了在消息同步服务器200B处存在待下发的指令消息。指令通知单元260可以是指令消息同步服务器200B的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与指令消息同步服务器200B的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)相配合,在检测到触发事件时,通过指令消息通知服务器200A向一个或多个终端100发送通知消息。
请求接收单元270可以用于从一个或多个终端100接收指令消息获取请求。请求接收单元270可以是指令消息同步服务器200B的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与指令消息同步服务器200B的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)相配合,从一个或多个终端100接收指令消息获取请求。
指令发送单元280可以用于向一个或多个终端100发送所请求的指令消息。指令发送单元280可以是指令消息同步服务器200B的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与指令消息同步服务器200B的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)相配合,向一个或多个终端100发送所请求的指令消息。
以下将结合图4和图5,对根据本发明实施例的在终端100上执行的用于获取指令消息的方法400和终端100进行详细的描述。
方法400开始于步骤S410,在步骤S410中,可以由终端100的请求发送单元110在检测到触发事件时,向服务器200B发送指令消息获取请求。
在步骤S420中,可以由终端100的指令接收单元120从服务器200B接收所请求的指令消息。
在步骤S430中,可以由终端100的指令解析单元130对所接收的指令消息进行解析。
在步骤S440中,可以由终端100的操作执行单元140根据解析出的指令消息的内容,执行相应操作。
在一些实施例中,触发事件可以包括以下至少一项:终端100本地的后台轮询触发事件、以及来自服务器200A的通知触发事件。
在一些实施例中,指令消息可以具有以下格式中至少一项:XML、JSON、JavaBean、和DataBean。
在一些实施例中,指令消息可以包括以下字段中至少一项:发送方、授权码、接收方、指令标记、和附加内容。
在一些实施例中,终端100可以采用以下平台中至少一项:iOS平台、Android平台、和WinPhone平台。
在一些实施例中,在终端100采用Android平台的情况下,步骤S420可以是通过GooglePlay方式执行的。
在一些实施例中,在终端100采用Android平台的情况下,步骤S420可以是通过第三方云推送平台执行的。
在一些实施例中,在终端100采用iOS平台的情况下,步骤S420可以是通过APNS方式执行的。
在一些实施例中,在终端100采用WinPhone平台的情况下,步骤S420可以是通过MPNS方式执行的。
在一些实施例中,步骤S430可以是由终端100上内嵌或引用了指令消息解析模块的程序来执行的。
在一些实施例中,步骤S440还包括:(S442)如果解析出的指令消息的内容涉及固定指令,则由指令消息解析模块来负责执行固定指令;以及(S444)如果解析出的指令消息的内容涉及自定义指令,则由指令消息解析模块将自定义指令传递给相关的其它模块或其它程序,并由其它模块或其它程序来执行自定义指令。
以下将结合图6和图7,对根据本发明实施例的在指令消息通知服务器200A上执行的用于通知终端100下载指令消息的方法600和指令消息通知服务器200A进行详细的描述。
方法600开始于步骤S610,在步骤S610中,可以由指令消息通知服务器200A的通知接收单元210从指令消息同步服务器200B接收通知消息,该通知消息指示了在消息同步服务器200B处存在待下发的指令消息。
在步骤S620中,可以由指令消息通知服务器200A的通知发送单元220分别使用与一个或多个终端100对应的通知方式向该一个或多个终端100发送通知消息。
在一些实施例中,在终端采用Android平台的情况下,步骤S620可以是通过GooglePlay方式执行的。
在一些实施例中,在终端采用Android平台的情况下,步骤S620可以是通过第三方云推送平台执行的。
在一些实施例中,在终端采用iOS平台的情况下,步骤S620可以是通过APNS方式执行的。
在一些实施例中,在终端采用WinPhone平台的情况下,步骤S620可以是通过MPNS方式执行的。
以下将结合图8和图9,对根据本发明实施例的在指令消息同步服务器200B处执行的用于下发指令消息的方法800和指令消息同步服务器200B进行详细的描述。
方法800开始于步骤S810,在步骤S810中,可以由指令消息同步服务器200B的指令通知单元260在检测到触发事件时,通过指令消息通知服务器200A向一个或多个终端100发送通知消息,该通知消息指示了在消息同步服务器200B处存在待下发的指令消息。
在步骤S820中,可以由指令消息同步服务器200B的请求接收单元270从一个或多个终端100接收指令消息获取请求。
在步骤S830中,可以由指令消息同步服务器200B的指令发送单元280向一个或多个终端100发送所请求的指令消息。
在一些实施例中,触发条件可以包括以下至少一项:由指令消息同步服务器200B本地生成的固定指令的发布事件、以及从其他应用服务接收到自定义指令的发布事件。
在一些实施例中,指令消息可以具有以下数据格式中至少一项:XML、JSON、JavaBean、和DataBean。
在一些实施例中,指令消息可以包括以下字段中至少一项:发送方、授权码、接收方、指令标记、和内容。
在一些实施例中,终端100可以采用以下平台中至少一项:iOS平台、Android平台、和WinPhone平台。
在一些实施例中,在终端100采用Android平台的情况下,步骤S810可以是通过GooglePlay方式执行的。
在一些实施例中,在终端100采用Android平台的情况下,步骤S810可以是通过第三方云推送平台执行的。
在一些实施例中,在终端100采用iOS平台的情况下,步骤810可以是通过APNS方式执行的。
在一些实施例中,在终端100采用WinPhone平台的情况下,步骤S810可以是通过MPNS方式执行的。
至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。