本申请涉及电数字数据处理领域,尤其涉及服务器和终端之间的应用分发安装方法及装置。
背景技术:
随着移动设备的飞速发展,智能手机、平板电脑等移动设备在企业中的使用也越来越广泛。如何对移动设备进行集中管理和控制,是目前企业管理诸多问题中比较关键的一个问题。EMM(企业移动管理)系统的产生,很好地解决了企业的这个难题,其可完成对企业应用的部署、管控。
目前移动终端安装应用的方式一般是用户自己通过在线或者线下自行下载安装包,然后安装。这种情况对于一个用户安装一个或者几个应用可以这么做,但是如果几百台、上千台或者更多的终端设备安装多个指定应用时,前面提到的方法不仅费时、费力,而且容易出错。
EMM系统很大程度上解决了EMM客户端应用程序的分发问题,但是对于EMM客户端不同的操作系统和操作系统版本,特别是EMM客户端存在双系统或者多系统的情况,应用的统一分发会面临不小的麻烦。
技术实现要素:
为了克服现有技术中存在的不足,本发明要解决的技术问题是提供一种服务器和终端之间的应用分发安装方法及装置,其在终端具有双系统或者多系统的情况下,只需要把使用的终端设备注册到EMM系统中,所有的应用分发工作均可自动完成,解决了多系统、多版本应用自动批量的问题,提高了应用的分发效率,同时节约了人力和物力。
为解决上述技术问题,本发明的服务器和终端之间的应用分发安装方法,包括:
所述终端接收来自所述服务器的分发应用信息,其中所述分发应用信息包括至少一个应用安装包的唯一标识信息、安装包版本、安装包适用的操作系统及其版本和/或安装包下载地址;
分析所述分发应用信息,确定是否需要下载安装包;
响应于需要下载安装包,分别下载对应的安装包;
分别调用所下载安装包对应的操作系统的API(应用编程接口)触发安装流程。
作为本发明所述方法的改进,所述分析所述分发应用信息,确定是否需要下载安装包的步骤包括:确定所述终端是否安装有所述分发应用信息包含的一个或多个操作系统;响应于所述终端安装有所述分发应用信息包含的一个或多个操作系统,确定所述终端安装的相应操作系统的版本与所述分发应用信息包含的操作系统版本是否匹配;响应于所述终端安装的相应操作系统的版本与所述分发应用信息包含的操作系统版本匹配,根据所述唯一标识信息和安装包版本确定对应的安装包是否已经安装在所述终端上;响应于对应的安装包尚未安装在所述终端上,确定需要下载安装包。
作为本发明所述方法的另一种改进,所述方法还包括:所述终端接收来自所述服务器的公钥证书;使用所述公钥证书对接收到的分发应用信息进行验签。
作为本发明所述方法的又一种改进,所述方法还包括:在所下载安装包安装完成之后将安装结果反馈给所述服务器。
作为本发明所述方法的再一种改进,所述分发应用信息还包括是否允许卸载的标志。
作为本发明所述方法的进一步改进,所述方法还包括:响应于所述是否允许卸载的标志的值,分别调用对应的操作系统的API设置所述标志。
为解决上述技术问题,本发明的服务器和终端之间的应用分发安装装置,包括:
接收模块,用于使所述终端接收来自所述服务器的分发应用信息,其中所述分发应用信息包括至少一个应用安装包的唯一标识信息、安装包版本、安装包适用的操作系统及其版本和/或安装包下载地址;
分析模块,用于分析所述分发应用信息,确定是否需要下载安装包;
下载模块,用于响应于需要下载安装包,分别下载对应的安装包;
安装模块,用于分别调用所下载安装包对应的操作系统的API触发安装流程。
为解决上述技术问题,本发明的有形计算机可读介质,包括用于执行的计算机程序代码,所述计算机程序代码包括用于使所述终端接收来自所述服务器的分发应用信息的可执行代码,其中所述分发应用信息包括至少一个应用安装包的唯一标识信息、安装包版本、安装包适用的操作系统及其版本和/或安装包下载地址;用于分析所述分发应用信息,确定是否需要下载安装包的可执行代码;用于响应于需要下载安装包,分别下载对应的安装包的可执行代码;用于分别调用所下载安装包对应的操作系统的API触发安装流程的可执行代码。
为解决上述技术问题,本发明提供一种装置,包括至少一个处理器;及至少一个存储器,含有计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为利用所述至少一个处理器使得所述装置执行本发明的服务器和终端之间的应用分发安装方法至少部分步骤。
按照本发明,对于双系统或者多系统的移动终端,可以自适应安装应用,具有很大的自适应性和操作简便性。不需要根据操作系统单独配置和分发应用。整个分发安装的过程,仅服务器管理员一个人需要操作,其他步骤都是自动化完成,不需要移动终端的用户干预和操作,给用户提供了极大的方便。
结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。
附图说明
图1为根据本发明方法的一实施例的流程图。
图2为根据本发明方法的另一实施例的流程图。
图3为根据本发明系统的一实施例的结构示意图。
图4为根据本发明系统的另一实施例的结构示意图。
为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。
具体实施方式
下面参照附图对本发明的实施方式和实施例进行详细说明。
通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。
在此以EMM服务器和终端的EMM客户端为例进行说明。本发明也可应用于其它服务器和终端。为了实施本发明,EMM客户端与EMM服务器之间的网络是联通的,EMM客户端需要注册到EMM服务器,完成EMM服务器对EMM客户端的设备信息和用户信息的认证,以及EMM客户端对EMM服务器的认证。这是EMM领域的常规操作,在此不再赘述。
管理员通过管理平台上传待分发的应用安装包到EMM服务器。上传过程中需要解析或者生成对应安装包的信息,包括适用的OS(操作系统)、OS版本、唯一标识信息appid、version等。适用的OS是指应用安装包安装在哪个操作系统。version是指应用安装包的版本。OS版本是指安装该version的应用对于操作系统的版本要求。Appid是标示应用安装包的一串字符,比如Android系统中的应用安装包的package名称。
之后,管理员选择下发应用的组。这里的组可以被看作一个集合,这个集合可以是一个部门,比如研发部等,这个组被选择后,应用安装包会分发到该组的所有终端设备。
接着,EMM服务器向所选组的终端设备分发应用信息及证书。分发方式可以通过是EMM服务器推送的方式,或者EMM客户端主动请求的方式。应用信息可采取应用列表的形式,例如如示例性的表1所示。应用列表内容可包括:1)应用总数:此次分发的应用安装包总数,可以选择是否包括对于不同系统的应用总数;如OS1,2个应用;OS2,5个应用;2)应用安装包的信息:适用的OS、appid、version、OS版本、是否允许用户卸载等;其中是否允许用户卸载,一般用0表示不允许用户卸载,1表示允许用户卸载;3)下载应用的地址:该地址可以提前约定,也可以与分发应用列表一起发送到服务器。
为应用列表传输的安全性和完整性等原因,可进行数字签名。数字签名使用EMM服务器的私钥。包含公钥的服务器证书需要发送到移动终端。该证书不一定与分发应用列表一起发送。
表1
上面的表仅作为示例,表头只是为了表述清楚,实际上只要服务器与客户端协商好协议顺序和字段,可以没有表头。
图1示出了根据本发明的服务器和终端之间的应用分发安装方法的一实施例的流程图。在此以EMM服务器和具有EMM客户端的终端为例。
现结合图1所示流程图对服务器和终端之间的应用分发安装方法的各步骤进行具体说明。
在步骤S102中,EMM客户端接收来自EMM服务器的分发应用信息和EMM服务器的公钥证书,其中分发应用信息已用EMM服务器的私钥进行数字签名,及分发应用信息包括至少一个应用安装包的唯一标识信息、安装包版本、安装包适用的操作系统及其版本和/或安装包下载地址。以上面的表1为例,分发应用信息采用应用列表的形式,包括三个安装包的appid、version、适用的OS、OS版本、下载地址。分发应用信息和公钥证书可同步接收,也可分步接收。
在步骤S104中,使用接收到的公钥证书对接收到的应用列表进行验签。如果验签通过,则处理进行到步骤S106;否则,处理进行到步骤150,处理结束。
在步骤S106中,对于合法的应用列表进行分析,判断是否需要下载对应的安装包。如果判断结果表明需要下载对应的安装包,则处理进行到步骤S108;否则,处理进行到步骤S150,处理结束。
在步骤S108中,根据步骤S106分析的结果,对于需要安装的应用分别下载安装包,下载地址根据应用列表中的url字段。例如,如果在步骤S106中确定需要下载适用OS1的安装包com.test.app1和适用OS2的安装包com.test.app6,则分别从下载地址url1和url3进行下载。
在步骤S110中,对于不同OS的应用安装包,分别调用不同OS的API触发安装流程。比如,appid为com.test.app1的安装包需要调用OS1系统的API接口触发安装流程;appid为com.test.app6的安装包需要调用OS2系统的API接口触发安装流程。
本发明的分发安装方法,在安装应用的终端不需要终端用户参与和干涉,所有处理均自动完成。对于双系统或者多系统的应用安装包,可以自适应安装,不需要根据操作系统进行单独配置和分发安装。
根据本发明的一种实施方式,所述对于合法的应用列表进行分析,判断是否需要下载对应的安装包的步骤包括:确定所述终端是否安装有所述应用列表包含的一个或多个操作系统;响应于所述终端安装有所述应用列表包含的一个或多个操作系统,确定所述终端安装的相应操作系统的版本与所述应用列表包含的操作系统版本是否匹配;响应于所述终端安装的相应操作系统的版本与所述应用列表包含的操作系统版本匹配,根据appid和version确定对应的安装包是否已经安装在所述终端上;响应于对应的安装包尚未安装在所述终端上,确定需要下载安装包。
图2示出了根据本发明方法的另一实施例的流程图,该实施例与图1所示实施例类似,但其中应用列表还包括是否允许卸载的标志,所述方法还包括:
在步骤S202中,响应于所述是否允许卸载的标志的值,分别调用对应的操作系统的API设置所述是否允许卸载的标志。该标志的作用在于控制服务器分发的应用程序是否允许用户删除。例如,在上面的实施例中,appid为com.test.app1的应用不允许卸载,则在其安装过程中调用OS1的API设置不允许卸载的标志,以使得该应用安装后不能被用户卸载。
在步骤S204中,根据应用列表,完成安装后,将安装的结果反馈给EMM服务器,使得EMM服务器知道分发的应用是否被安装、以及是否之前已经安装等状态。
图3示出了根据本发明的服务器和终端之间的应用分发安装装置的一实施例的结构示意图,该装置包括:证书接收模块310,用于使所述终端接收来自所述服务器的公钥证书;接收模块320,用于使所述终端接收来自所述服务器的分发应用信息,其中所述分发应用信息包括至少一个应用安装包的唯一标识信息、安装包版本、安装包适用的操作系统及其版本和/或安装包下载地址;验签模块330,用于使用所述公钥证书对接收到的分发应用信息进行验签;分析模块340,用于分析所述分发应用信息,确定是否需要下载安装包;下载模块350,用于响应于需要下载安装包,分别下载对应的安装包;安装模块360,用于分别调用所下载安装包对应的操作系统的API触发安装流程。
根据本发明所述装置的一种实施方式,所述分析模块340包括:操作系统确定子模块,用于确定所述终端是否安装有所述分发应用信息包含的一个或多个操作系统;操作系统版本确定子模块,用于响应于所述终端安装有所述分发应用信息包含的一个或多个操作系统,确定所述终端安装的相应操作系统的版本与所述分发应用信息包含的操作系统版本是否匹配;安装状态确定模块,用于响应于所述终端安装的相应操作系统的版本与所述分发应用信息包含的操作系统版本匹配,根据所述唯一标识信息和安装包版本确定对应的安装包是否已经安装在所述终端上;确定子模块,用于响应于对应的安装包尚未安装在所述终端上,确定需要下载安装包。
图4示出了根据本发明的装置的另一实施例的结构示意图,该实施例与图3所示实施例类似,但另外包括:设置模块410,用于响应于所述是否允许卸载的标志的值,分别调用对应的操作系统的API设置所述标志;反馈模块420,用于在所下载安装包安装完成之后将安装结果反馈给所述服务器。
在此所述的多个不同实施例或者其特定特征、结构或特性可在本发明的一个或多个实施方式中适当组合。另外,在某些情形下,只要适当,流程图中和/或流水处理描述的步骤顺序可修改,并不必须精确按照所描述的顺序执行。另外,本发明的多个不同方面可使用软件、硬件、固件或者其组合和/或执行所述功能的其它计算机实施的模块或装置进行实施。本发明的软件实施可包括保存在计算机可读介质中并由一个或多个处理器执行的可执行代码。计算机可读介质可包括计算机硬盘驱动器、ROM、RAM、闪存、便携计算机存储介质如CD-ROM、DVD-ROM、闪盘驱动器和/或例如具有通用串行总线(USB)接口的其它装置,和/或任何其它适当的有形或非短暂计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。本发明可结合任何适当的操作系统使用。
除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。
前面说明了本发明的一些优选实施例,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。本领域技术人员可以在本发明技术构思的启发和不脱离本发明内容的基础上对本发明作出各种变形和修改,这些变形或修改仍落入本发明的保护范围之内。