发现是电影票所在应用,查询其所带服务版本,发现淘宝券券自身的比当前共享服务的级别高,则修改全局配置,向当前共享服务的提供方(即电影票客户端所包含的服务)发送迁移消息,同时提供自身的认证信息,并使用自身所带服务。电影票客户端所包含的服务在收到淘宝券券的迁移消息后根据其认证信息验证其身份,通过认证后,向已经注册在电影票客户端所包含的服务的所有应用广播迁移消息即将应用对应的Pendinglntent作为参数启动代理的Pendinglntent,电影票的代理模块在收到迁移消息后,重新进行注册流程,发现全局配置中的服务的提供方是淘宝券券,而其比自己更加合适,因此,向淘宝券券所包含的服务进行注册。最后电影票的后台服务进程退出运行。
[0085]对于服务后台,淘宝券券的后台服务进程定期唤醒其所在设备,向远程服务器轮询消息通知,同时更新自身的位置信息,假设在一次轮询周期内淘宝券券和电影票的运营人员都发布了各自的促销信息,则后台服务在下次轮询时接收到这些通知消息,并分别发送给淘宝券券客户端与电影票客户端处理,比如通过启动各应用注册时提供的Pendinglntent发送通知,参数则通过Intent Data传递。
[0086]假设用户在某一时刻卸载了淘宝券券应用,则淘宝券券后台服务将会清除全局配置中的当前服务提供者信息,然后向所有注册了淘宝券券应用所包含的服务的应用的代理模块发布迁移消息,重新进行自选举过程选出合适的服务的提供方,在该场景中,电影票应用的代理模块重新向电影票所含服务进行注册。
[0087]本申请针对目前常见的移动系统,如Android,在不增加独立安装apk、不对操作系统进行特别处理的情况下,引入共享服务机制。本申请的共享服务可在后台进行对多个应用均适用的操作,如获取通知消息等,从而避免了多个应用自身独立操作引入的电量与流量消耗。同时,本申请中的各应用所包含的服务的自选举过程,保证了系统中的共享服务的提供方为当前最合适的提供方,如版本最新等。另外,本申请还支持服务的无缝迁移,即当服务提供者被卸载或者无法继续提供服务时,重新选取合适的其他服务的提供方继续提供服务,而且该过程对于应用是透明的。
[0088]本领域的技术人员应该明白,上述的本申请实施例所提供的装置的各组成部分,以及方法中的各步骤,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上。可选地,它们可以用计算装置可执行的程序代码来实现。从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
[0089]虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【主权项】
1.一种服务共享方法,其特征在于,包括: 应用打开时,应用打开方判断出当前打开的应用所包含的服务优于当前共享服务,向当前共享服务的提供方发送迁移信息; 所述当前共享服务的提供方向迁移方发送迁移信息后,退出服务; 所述迁移方接收到迁移信息,向所述应用打开方打开的应用所包含的服务进行注册。
2.根据权利要求1所述的服务共享方法,其特征在于,所述向当前共享服务的提供方发送迁移信息包括: 所述应用打开方从全局配置信息中查询所述当前共享服务的信息,如果所述当前打开的应用所包含的服务的级别高于查询到的信息显示的当前共享服务的级别,则所述应用打开方向当前共享服务的提供方发送迁移信息; 所述应用打开方修改所述全局配置以指向所述当前打开的应用所包含的服务。
3.根据权利要求2所述的服务共享方法,其特征在于,如果判断出所述当前打开的应用所包含的服务的级别低于所述当前共享服务的级别,该方法还包括: 所述应用打开方与所述当前共享服务的提供方之间进行验证,并在双方验证均通过后,所述应用打开方向所述当前共享服务进行注册,结束本流程。
4.根据权利要求3所述的服务共享方法,其特征在于,所述验证未通过,该方法还包括:所述应用打开方修改自身所在应用的全局配置以指向当前打开的应用所包含的服务。
5.根据权利要求1所述的服务共享方法,其特征在,所述当前共享服务的提供方收到迁移信息后,向迁移方发送迁移信息之前,该方法还包括: 所述当前共享服务的提供方与所述应用打开方之间进行验证,并在双方验证均通过后,向所述迁移方发送迁移信息; 如果验证未通过,结束本流程。
6.根据权利要求5所述的服务共享方法,其特征在于,所述迁移方包括已注册在所述当前共享服务的所有应用。
7.根据权利要求2所述的服务共享方法,其特征在于,所述迁移方向应用打开方打开的应用所包含的服务进行注册包括: 所述迁移方根据所述全局配置信息中的共享服务信息,向所述应用打开方打开的应用所包含的服务进行注册。
8.根据权利要求1、3或7所述的服务共享方法,其特征在于,所述注册包括:所述迁移方向所述应用打开方发送注册信息; 所述应用打开方利用注册信息获得应用ID ; 所述应用打开方为发起注册的所述迁移方建立应用ID,绑定该应用ID与应用回调钩子; 所述应用打开方方绑定所述注册信息与迁移回调钩子。
9.根据权利要求1所述的服务共享方法,其特征在于,所述当前共享服务的应用被卸载或由于其他原因无法继续提供服务时,该方法还包括: 所述当前共享服务所在应用清空全局配置中指向自身的配置项,并向当前所有已注册在所述当前共享服务所在的应用发送通知,以重新确定共享服务。
10.一种服务共享装置,其特征在于,包括两个或两个以上应用单元; 第一应用单元,用于在应用打开、并判断出当前打开的应用所包含的服务优于当前共享服务时,向提供当前共享服务的第二应用单元发送迁移信息,更新共享服务为当前打开的应用所包含的服务; 第二应用单元,用于将接收到的迁移信息发送给已注册在自身的所有应用单元; 已注册在当前共享服务的应用单元,一个或一个以上,均用于接收迁移信息,向第一应用单元的应用所包含的服务进行注册。
11.根据权利要求10所述的服务共享装置,其特征在于, 所述第一应用单元,还用于在判断出当前打开的应用所包含的服务比当前共享服务的级别低时,与所述第二应用单元之间进行验证,并在双方验证均通过后,向所述当前共享服务进行注册; 所述第二应用单元具体用于,与所述第一应用单元之间进行验证,并在双方验证均通过后,向所有所述已注册在自身的应用单元发送迁移信息,之后退出服务。
12.根据权利要求11所述的服务共享方法,其特征在于, 所述已注册在当前共享服务的应用单元,具体用于向所述第一应用单元的应用所包含的服务发送注册信息; 所述第一应用单元,还用于利用注册信息获得应用ID ;为已注册在当前共享服务的应用单元建立应用ID ;绑定所述应用ID与应用回调钩子;绑定注册信息与迁移回调钩子。
13.根据权利要求10?12任一项所述的服务共享装置,其特征在于,所述应用单元包括服务模块、代理模块和应用模块,其中, 服务模块,用于在应用启动后作为服务的提供方;接受来自代理单元的注册;在收到迁移信息并确认迁移后,向所有已注册在当前共享服务的应用的代理模块发送迁移信息;退出服务并释放资源; 代理模块,用于启动服务注册过程;在判断出当前打开的应用所包含的服务优于当前共享服务时,向提供当前共享服务所在应用单元的服务模块发送迁移信息;更新共享服务为当前打开的应用所包含的服务;更新共享服务为当前打开的应用所包含的服务;收到迁移信息,重新启动服务注册过程; 应用模块,用于使用共享服务。
【专利摘要】一种服务共享方法及装置,包括应用打开时,应用打开方判断出当前打开的应用所包含的服务优于当前共享服务,向当前共享服务的提供方发送迁移信息;当前共享服务的提供方向迁移方发送迁移信息后,退出服务,迁移方接收到迁移信息,向应用打开方打开的应用所包含的服务进行注册。通过本发明方法,无需在应用中安装独立的服务包,同时,对于使用服务的多个应用来讲,只需要创建一个当前最优的共享服务实例,从而节约电量与流量。
【IPC分类】H04L29-06
【公开号】CN104580098
【申请号】CN201310499615
【发明人】张志鹏, 钱霄
【申请人】阿里巴巴集团控股有限公司
【公开日】2015年4月29日
【申请日】2013年10月22日