具体实施方式
本发明实施例提供一种组件安装的处理方法,当终端上的已安装组件被删除时,通过设置并保存组件的状态信息或组件的信息,确定对后续组件的操作,从而可以在相应的管理子树上继续保存该组件的相关信息,有效地避免了对已删除组件的重复下载或者安装,并且通过设置相关信息的保存截止时间,可以到时自动删除该组件的相关信息。
如图1所示,为本发明实施例一种组件安装的处理方法的流程图,具体包括以下步骤:
步骤S101,接收服务器下发的组件。
步骤S102,根据组件被删除之后设置的组件的状态信息或该组件的信息确定对下发的组件的操作。在组件被删除之后,设置并保存组件的状态信息或组件的信息。设置该组件的状态信息可以为将该组件的状态信息设置为已删除,用于表示该组件已被删除。
该组件的信息包括该组件的版本和该组件的信息的保存时间,还包括该组件的标识和该组件的名称中的至少一种,将上述组件的信息设置在组件管理对象中。
在设置了组件的状态信息或组件的信息之后,当SP服务器再次向终端下发与该已删除组件相同的组件时,终端可以比较下发的组件的版本与当前安装的组件的版本是否一致;如果版本一致,则终端继续比较该组件信息的保存时间与当前时间是否一致,当该组件信息的保存时间与当前时间不一致时,表示该组件信息的保存时间未到,则终端继续在组件管理对象中保留该组件的信息。如果已删除组件的版本与下发的组件的版本不一致,则终端可进行以下操作之一:
(1)确定不安装服务器下发的组件;
(2)确定安装服务器下发的组件;
(3)按照事先配置的策略确定是否安装服务器下发的组件。
当SP服务器再次向终端下发的组件与已删除的组件不同时,则终端可以安装该下发的组件。
上述组件安装的处理方法,当组件被删除时,通过设置并保存该组件的状态信息或组件的信息,确定对服务器下发的组件的操作。从而实现了在组件管理对象上继续保存已删除组件的相关信息,有效地避免了终端对已删除组件的重复下载或者安装,并且通过设置该已删除组件相关信息的保存截止时间,终端可以到时自动删除该已删除组件的相关信息。
如图2所示,为本发明实施例另一种组件安装的处理方法的流程图,具体包括以下步骤:
步骤S201,查询并获取终端设置的已删除组件的状态信息或已删除组件的信息。
在组件被删除之后,终端设置并保存已删除组件的状态信息或该已删除组件的信息。在SP服务器查询终端时,SP服务器获取该已删除组件的状态信息或该已删除组件的信息。
步骤S202,根据已删除组件的状态信息或已删除组件的信息确定对后续组件的操作。具体为:当后续组件和已删除组件为不同组件时,或者,
当后续组件和已删除组件为同一组件,并且后续组件的版本与已删除组件的版本不一致时,SP服务器向终端推荐安装后续组件。
当后续组件的版本与已删除组件的版本一致,并且已删除组件的信息的保存时间与当前时间不一致时,SP服务器继续保存所述已删除组件的信息。
如图3所示,为本发明实施例一的SCOMO管理子树的结构示意图,实施例一终端在原有的SCOMO管理子树中,Deployed/<X>/State节点中增加Removed状态值,如表1所示:
表1
状态 |
描述 |
整数值 |
Inactive |
已安装软件处于非激活状态 |
10 |
Active |
已安装软件处于激活状态 |
20 |
Removed |
软件已被删除 |
30 |
同时增加Savetime节点,用以指定Removed指令信息的保存截止时间,缺省值设为19000101,具体信息如表2所示,
表2
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
ZeroOrOne |
Date |
Get |
当软件被删除时,不删除Deployed下面相应的管理子树,终端设置State节点状态为:Removed,并设置Savetime节点的值。
假定业务提供商A的服务器几天前给用户B的终端安装了一款新的软件GameA,终端将图3中MO管理树的Deployed节点下的<x*>节点实例化为“GameA Component”,并对其下面的节点进行了相应赋值。经过用户B的使用,感觉不好,因而终端把该软件给删掉了。
这时图3中“GameA Component”子树仍然存在,终端设置State节点的值为30(Removed),同时Savetime节点的值或者由终端设备指定,或者终端从服务器接收一个值,假设为20081230。
假定一个月后SP服务器对终端进行查询,执行如图4所示的流程,包括以下步骤:
步骤S401,SP服务器查询Deployed的子节点,发现存在软件GameA的相关子树“GameA Component”;
步骤S402,SP服务器查询State节点的状态值,发现状态值为30,执行步骤S403;
步骤S403,SP服务器比较推荐安装的软件的版本和已删除软件GameA的版本是否一致,如果一致,执行步骤S405;如果推荐安装的软件的版本和已删除软件GameA的版本不一致,执行步骤S404。
步骤S404,SP服务器不向用户B的终端推荐安装该推荐安装的软件,或者SP服务器向用户B的终端推荐安装该软件,由用户B决定是否安装该推荐安装的软件,或者由用户B按事先配置的策略判断是否安装该推荐安装的软件。若不安装该推荐安装的软件,则执行步骤S405。
步骤S405,SP服务器将Savetime节点的值(20081230)与当前时间(假定为20070910)进行对比,由于保存时间未到,因而在SCOMO管理树上继续保留“GameA Component”管理子树。
步骤S406,SP服务器放弃对终端推荐该软件或者安装,会话结束。
如图5所示,为本发明实施例二的Removed子树的结构示意图,实施例二终端在原有的SCOMO管理子树中,添加Removed子树,Removed子树各节点的描述如下:
<X>/Removed
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Node |
Get |
该节点为所有已移除软件信息的父节点。
<X>/Removed/<X>
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
ZeroOrMore |
Node |
Get |
该节点为终端设备里已移除软件的占位符。
<X>/Removed/<X>/ID
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Chr |
Get |
此为叶子节点,指定终端设备中已被移除软件的ID,用于唯一的表示该软件,与对应的Deployed/<X>/ID中的值相同。
<X>/Removed/<X>/Version
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Chr |
Get |
此为叶子节点,指定终端设备中已被移除软件的版本,与对应的Deployed/<X>/Version中的值相同。
<X>/Removed/<X>/Name
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
OPTIONAL |
ZeroOrOne |
Chr |
Get |
此为叶子节点,指定终端设备中已被移除软件的Name,与对应的Deployed/<X>/Name中的值相同。
<X>/Removed/<X>/Savetime
Status |
Tree Occurrence |
Format |
Min.Access Types |
REQUIRED |
ZeroOrOne |
Date |
Get |
此为叶子节点,指定Deployed/Removed/<X>的保存截止时间,避免长期保存无用信息,缺省值为19000101。
软件删除时,Deployed下面相应管理子树也被删除,但终端在Removed下面建立相应的软件安装的处理子树,并设置相应的值。
假定业务提供商A的服务器几天前给用户B的终端安装了一款新的软件GameA,终端将图3中MO管理树的Deployed节点下的<x*>节点实例化为“GameA Component”,并对其下面的节点进行了相应赋值。经过用户B的使用,感觉不好,因而终端把该软件给删掉了。
这时图3中对应GameA的“GameA Component”管理子树也被删掉,并在图5中Removed节点下建立“GameA Removed”子树,ID、Name以及Version的值与被删除的Deployed下“GameA Component”节点下面相应的值一致,同时Savetime节点的值或者由终端指定,或者终端从服务器接收一个值,假设为20081230。
假定一个月后SP服务器对该终端进行查询,执行如图6所示的流程,包括以下步骤:
步骤S601,SP服务器查询Deployed的子节点,发现没有GameA软件的相关子树;
步骤S602,SP服务器查询Removed下面的子节点,发现GameA软件的相关子树——“GameA Removed”;
步骤S603,SP服务器比较推荐安装的软件的版本和已删除软件GameA的版本是否一致,如果一致,执行步骤S605;如果推荐安装的版本和已删除软件GameA的版本不一致,执行步骤S604。
步骤S604,SP服务器不向用户B的终端推荐安装该推荐安装的软件,或者SP服务器向用户B的终端推荐安装该软件,由用户B决定是否安装该推荐安装的软件,或者由用户B按事先配置的策略判断是否安装该推荐安装的软件。若不安装该推荐安装的软件,则执行步骤S605。
步骤S605,SP服务器将Savetime节点的值(20081230)与当前时间(假定为20070910)进行比对,由于时间未到,因而继续保留“GameA Removed”子树;
步骤S606,SP服务器放弃对终端推荐该软件或者安装,会话结束。
如图7所示,为本发明实施例三的LFC(Look Feel Customization,外观定制)管理子树的结构示意图,实施例三终端在原有的LFC管理子树中,添加已删除状态点和保存时间节点,各节点描述如下:
LFC Package
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Node |
Get |
该节点为终端上所有LFC外观包的父节点。
LFC Package/<X>
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
ZeroOrMore |
Node |
Get |
该节点为终端设备里LFC外观包的占位符。
LFC Package/<X>/PkgID
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Chr |
Get |
此为叶子节点,指定终端设备中外观包的ID,用于唯一的表示该外观包。
LFC Package/<X>/Name
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
OPTIONAL |
ZeroOrOne |
Chr |
Get |
此为叶子节点,指定终端设备中外观包的名称。
LFC Package/<X>/Version
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Chr |
Get |
此为叶子节点,指定终端设备中外观包的版本。
LFC Package/<X>/Provider
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
OPTIONAL |
ZeroOrOne |
Chr |
Get |
此为叶子节点,指定终端设备中外观包的供应商。
LFC Package/<X>/RemovedStae
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Bool |
Get |
此为叶子节点,指定终端设备中外观包是否已被删除,“1”被删除,“0”未删除,缺省值为“0”,这是本发明实施例在LFC管理子树上新增的节点。
<X>/Removed/<X>/S avetime
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
ZeroOrOne |
Date |
Get |
此为叶子节点,指定该外观包信息的保存截止时间,避免长期保存无用信息,缺省值为19000101。
当外观包删除时,终端上相应的管理子树不删除,设置RemovedState节点状态为:“1”,并设置Savetime节点的值。
假定业务提供商A的服务器几天前给用户B的终端安装了一款新的外观包Package A,终端将图7中的LFC管理子树下的<x*>节点实例化为“LFC PackageA”,并对其下面的节点进行了相应赋值。经过用户B的使用,感觉不好,因而终端把该外观包给删掉了。
这时图7中“LFC Package A”子树仍然存在,终端设置RemoveState节点的值为1,表示该外观包已被删除,同时Savetime节点的值或者由终端设备指定,或者终端从服务器接收一个值,假设为20081230。
假定一个月后SP服务器对终端进行查询,执行如图8所示的流程,包括以下步骤:
步骤S801,SP服务器查询LFC的子节点,发现存在外观包Package A的相关子树“LFC Package A”;
步骤S802,SP服务器查询RemovedStae State节点的状态值,发现状态值为1,执行步骤S803;
步骤S803,SP服务器比较推荐安装的外观包的版本和已删除外观包Package A的版本是否一致,如果一致,执行步骤S805;如果推荐安装的外观包的版本和已删除外观包Package A的版本不一致,执行步骤S804。
步骤S804,SP服务器不向用户B的终端推荐安装该推荐安装的外观包,或者SP服务器向用户B的终端推荐安装该外观包,由用户B决定是否安装该推荐安装的外观包,或者由用户B按事先配置的策略判断是否安装该推荐安装的外观包。若不安装该推荐安装的外观包,则执行步骤S805。
步骤S805,SP服务器将Savetime节点的值(20081230)与当前时间(假定为20070910)进行对比,由于保存时间未到,因而LFC管理树继续保留“LFCPackage A”管理子树。
步骤S806,SP服务器放弃对终端推荐或者安装该外观包,会话结束。
如图9所示,为本发明实施例四的Removed子树的结构示意图,实施例四终端在原有的LFC管理子树中,添加Removed子树,Removed子树各节点的描述如下:
<X>/Removed
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Node |
Get |
该节点为所有已移除外观包信息的父节点。
<X>/Removed/<X>
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
ZeroOrMore |
Node |
Get |
该节点为终端设备里已移除外观包的占位符。
LFC Package/<X>/PkgID
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Chr |
Get |
此为叶子节点,指定终端设备中外观包的ID,用于唯一的表示该外观包。
LFC Package/<X>/Name
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
OPTIONAL |
ZeroOrOne |
Chr |
Get |
此为叶子节点,指定终端设备中外观包的Name。
LFC Package/<X>/Version
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
One |
Chr |
Get |
此为叶子节点,指定终端设备中外观包的版本。
LFC Package/<X>/Provider
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
OPTIONAL |
ZeroOrOne |
Chr |
Get |
此为叶子节点,指定终端设备中外观包的供应商。
<X>/Removed/<X>/Savetime
状态 |
Tree Occurrence |
格式 |
最小接入类型 |
REQUIRED |
ZeroOrOne |
Date |
Get |
此为叶子节点,指定外观包的保存截止时间,避免长期保存无用信息,缺省值为19000101。
当外观包删除时,原有对应的管理子树也被删除,但在Removed下面建立相应的已删除外观包的管理子树,并设置相应的值。
假定业务提供商A的服务器几天前给用户B的终端安装了一款新的外观包Package A,终端将图7中LFC管理子树下的<x*>节点实例化为“LFCPackage A”,并对其下面的节点进行了相应赋值。经过用户B的使用,感觉不好,因而终端把该外观包给删掉了。
这时图7中与Package A对应的“LFC Package A”管理子树也被删掉,并在图9中Removed节点下建立“Package A Removed”子树,ID、Name以及Version的值与被删除的“LFC Package A”管理子树下面相应的值一致,同时Savetime节点的值或者由终端指定,或者终端从服务器接收一个值,假设为20081230。
假定一个月后SP服务器对该终端进行查询,执行如图10所示的流程,包括以下步骤:
步骤S1001,SP服务器查询LFC管理子树的子节点,发现没有与外观包Package A对应的相关子树;
步骤S1002,SP服务器查询Removed下面的子节点,发现Package A的相关子树——“Package A Removed”;
步骤S1003,SP服务器比较推荐安装的外观包的版本和已删除外观包Package A的版本是否一致,如果一致,执行步骤S1005;如果推荐安装的版本和已删除外观包Package A的版本不一致,执行步骤S1004。
步骤S1004,SP服务器不向用户B的终端安装该推荐安装的外观包,或者SP服务器向用户B的终端推荐安装该外观包,由用户B决定是否安装该推荐安装的外观包,或者由用户B按事先配置的策略判断是否安装该推荐安装的外观包,若不安装该推荐安装的外观包,则执行步骤S1005。
步骤S1005,SP服务器将Savetime节点的值(20081230)与当前时间(假定为20070910)进行比对,由于时间未到,因而继续保留“Package A Removed”子树;
步骤S1006,SP服务器放弃对终端推荐该外观包或者安装,会话结束。
如图11所示,为本发明实施例组件安装的处理系统,包括:终端111和服务器112,
终端111,用于接收服务器113下发的组件,根据组件被删除之后设置的该组件的状态信息或组件的信息确定对所述下发的组件的操作;
服务器112,用于查询并获取终端111设置的已删除组件的状态信息或已删除组件的信息,并根据已删除组件的状态信息或该已删除组件的信息确定对后续组件的操作。
如图12所示,为本发明实施例终端的结构图,包括:
接收模块121,用于接收服务器下发的组件;
设置模块122,用于在组件被删除之后,设置并保存该组件的状态信息或组件的信息;
操作确定模块123,用于根据设置模块122设置的组件的状态信息或组件的信息确定对接收模块121接收的组件的操作。
其中,设置模块122包括:状态设置子模块1221,用于将组件的状态信息设置为已删除。
其中,设置模块122还包括:时间设置子模块1222,用于在状态设置子模块1221将组件的状态信息设置为已删除之后,设置组件的信息的保存时间。
其中,设置模块122包括:信息设置子模块1223,用于将组件的信息设置在组件管理对象中。
其中,操作确定模块123包括:安装确定子模块1231,用于当接收模块121接收的组件和已删除组件为不同组件时,安装接收模块121接收的组件;或者,
当接收模块121接收的组件和已删除组件为同一组件,并且接收模块121接收的组件的版本与已删除组件的版本不一致时,确定安装该接收模块121接收的组件;或者,
确定不安装该接收模块121接收的组件;或者,
根据预先配置的策略确定是否安装该接收模块121接收的组件。
其中,操作确定模块123还包括:信息保存子模块1232,用于当该接收模块121接收的组件和已删除组件为同一组件,接收模块121接收的组件的版本与已删除组件的版本一致,并且所述已删除组件的信息的保存时间与当前时间不一致时,继续保存已删除组件的信息。
上述终端,设置模块122设置组件的状态信息和组件的信息,操作确定模块122根据设置模块122保存的上述信息确定对接收模块121接收的组件的操作,从而有效避免了终端重复安装某一组件,并且通过保存截止时间的设定,避免了该组件的信息的永久保存。
如图13所示,为本发明实施例服务器的结构图,包括:
查询获取模块131,用于查询并获取终端设置的已删除组件的状态信息或该已删除组件的信息;
处理确定模块132,用于根据查询获取模块131获取的已删除组件的状态信息或该已删除组件的信息确定对后续组件的操作。
其中,处理确定模块132包括:推荐安装子模块1321,用于当后续组件和已删除组件为不同组件时,或者,
当后续组件和已删除组件为同一组件,并且后续组件的版本与已删除组件的版本不一致时,推荐安装所述后续组件。
其中,处理确定模块132包括:组件信息保存子模块1322,用于当后续组件的版本与已删除组件的版本一致,并且已删除组件的信息的保存时间与当前时间不一致时,继续保存该已删除组件的信息。
上述服务器,查询获取模块131获取终端设置的已删除组件的状态信息和该已删除组件的信息,处理确定模块132根据查询获取模块131获取的上述信息确定对后续组件的操作,从而有效避免了服务器向终端重复推荐安装某一组件,并且通过保存截止时间的设定,避免了该组件的信息的永久保存。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。