CN102006334A - 安装软件组件的方法、系统及装置 - Google Patents

安装软件组件的方法、系统及装置 Download PDF

Info

Publication number
CN102006334A
CN102006334A CN2010105826791A CN201010582679A CN102006334A CN 102006334 A CN102006334 A CN 102006334A CN 2010105826791 A CN2010105826791 A CN 2010105826791A CN 201010582679 A CN201010582679 A CN 201010582679A CN 102006334 A CN102006334 A CN 102006334A
Authority
CN
China
Prior art keywords
component software
management node
subtree
terminal
download
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010105826791A
Other languages
English (en)
Other versions
CN102006334B (zh
Inventor
崔首领
柴晓前
田林一
李克鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2010105826791A priority Critical patent/CN102006334B/zh
Publication of CN102006334A publication Critical patent/CN102006334A/zh
Application granted granted Critical
Publication of CN102006334B publication Critical patent/CN102006334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

本发明公开了一种安装软件组件的方法,包括:DM服务器将软件组件包直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个以上软件组件;若所述终端接收到的是所述下载地址和指示下载的命令,则利用所述下载地址下载所述软件组件包;所述终端将获得的该软件组件包安装在本地,并在Deployed子树下生成所述软件组件对应的管理节点及其子节点。通过本发明,完善了OMA DM规范中关于SCOMO的规定,使得安装过程更加合理。本发明还提供了一种安装软件组件的系统及装置。

Description

安装软件组件的方法、系统及装置
技术领域
本发明涉及通信领域的数据传输技术,尤其涉及一种安装软件组件的方法、系统及装置。
背景技术
移动终端设备是整个移动网络运营服务体系中的重要组成部分,设备管理(Device Management,DM)是指通过空中下载(Over The Air,OTA)方式将数据包从网络侧下载到终端设备上,并由终端设备读取下载的数据,进而完成后续相应的软件组件的安装和配置处理。同时还可以将用户需要的业务信息和终端设备的功能信息等自动从终端设备传递到DM服务器侧。由此可见,设备管理系统(Device Management System,DMS)提供了一种低成本方案,来维护和管理终端设备的数据,包括设置终端设备的初始配置信息,及在终端设备上安装和更新永久性信息,以及从终端设备中提取管理信息,处理终端设备产生的各类事件和告警信息等。
在现有的开放移动联盟设备管理(DM Open Mobile Alliance DM,OMA)规范中,已经实现了对终端设备进行软件组件的下载、安装、删除等管理。下面以下载和安装软件组件为例,说明现有技术的方案。
在现有技术中,软件组件管理对象(Software Component Management Object,SCOMO)被存储在终端设备的管理树上,DM服务器通过对SCOMO上的可执行节点下发Exec命令来实现对软件组件的管理。当然,DM服务器对所述管理对象的管理、维护和操作是通过OMADM协议实现的。
如图1所示,为现有技术中SCOMO的部分结构示意图,下载并且安装的过程包括:DM服务器通过对此SCOMO的下载(Download)子树或已下发(Delivered)子树进行操作实现软件组件的下载,当终端下载完组件后,DM服务器向SCOMO的可执行节点下发Exec命令,终端设备执行该命令,对软件组件进行安装。接收Exec命令的节点为:Delivered子树中的安装(Install)节点或安装未激活(InstallInactive)节点。安装完成后,终端向DM服务器上报安装结果,如果是异步上报方式,则通过发送Generic Alert上报安装结果,上报的信息包括已安装软件组件的统一资源标识(Universal Resource Identity,URI),如果是同步上报方式,则通过Exec命令对应的Status命令上报Exec命令的执行结果代码。
但是,现有的通过DM方式实现软件组件下载安装的方案并不完善,主要体现在以下几个方面:
1、在软件组件的安装和管理过程中不支持参数,可能会导致操作失败,如软件组件安装过程中可能会需要序列号等信息,或者无法实现个性化的管理,不用满足用户的要求。
2、在安装完成后,由于没有对安装后软件组件对象的访问控制权限分配方法,可能会导致安全性降低的问题。
3、安装完成后,由于在已安装(Deployed)子树上生成的管理节点中,其子节点Deployed/<x>/Name为可选,则完成后上报DM服务器的信息没有包括软件组件名称,服务器无法获悉终端安装的组件和服务器下发的组件的对应关系,会给服务器识别软件组件造成困难,在利用同步方式上报时,没有携带目标子树的URI信息以及ID信息或Name信息,使得服务器无法获知其在终端管理树上的路径。
4、如果要安装软件组件是对现有软件组件的升级,则不能识别是升级操作。例如第一次下发的软件组件包中包含的软件组件为:A、B、C,第二次下发的软件组件包中只包含软件组件A,终端可能会为A生成两个Deployed子树下的管理节点,从而无法达到升级的目的,并且导致节点冗余。
5、服务器利用下载并安装(DownloadInstall)或者下载安装未激活(DownloadInstallInactive)指令时,如果客户端执行安装失败时,没有向服务器发送通知,也没有在Delivered子树下生成对应的管理节点,可能导致服务器无法进行后续操作。
6、在下载的软件组件包中没有携带各个软件组件的信息,使得终端较难获取包中组件的信息。
发明内容
本发明实施例提供一种安装软件组件的方法、系统及装置,以解决现有技术中存在的OMADM规范中关于SCOMO的规定不完善问题。
本发明实施例提供一种安装软件组件的方法,该方法包括:
设备管理服务器将软件组件包直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个或多个软件组件;
若所述终端接收到的是所述下载地址和指示下载的命令,则利用所述下载地址下载所述软件组件包;
所述终端将获得的该软件组件包安装在本地,并在软件组件管理对象中的已安装子树下生成所述软件组件对应的管理节点及其子节点,其中,在已安装子树下生成所述软件组件对应的管理节点的步骤包括:
所述终端获取一所述软件组件对应的标识,并将该标识设置为所述软件组件对应的管理节点的软件组件标识子节点的值,所述软件组件对应的标识由网络侧提供,并作为所述软件组件包的一部分下发给终端,或独立于所述软件组件包下发给终端。
本发明实施例还提供一种安装软件组件的系统,该系统包括DM服务器和终端,其中,
所述设备管理服务器,用于将软件组件包直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个以上软件组件;
所述终端,用于若接收到的是所述下载地址和指示下载的命令,则利用所述下载地址将所述软件组件包下载,将获得的该软件组件包安装在本地,并在已安装子树下生成所述软件组件对应的管理节点及其子节点;其中,在已安装子树下生成所述软件组件对应的管理节点的步骤包括:
获取一所述软件组件对应的标识,并将该标识设置为所述软件组件对应的管理节点的软件组件标识子节点的值,所述软件组件对应的标识由网络侧提供,并作为所述软件组件包的一部分下发给终端,或独立于所述软件组件包下发给终端。
本发明实施例还提供一种终端,包括:
接收单元,用于接收设备管理服务器下发的软件组件包或该软件组件包的下载地址和指示下载的命令,该软件组件包包含了一个以上软件组件;
下载单元,用于若接收到的是所述下载地址和指示下载的命令,则利用所述下载地址将所述软件组件包下载;
安装单元,用于将获得的该软件组件包安装在本地,并在已安装子树下生成所述软件组件对应的管理节点及其子节点,其中,所述安装单元具体还用于获取一所述软件组件对应的标识,并将该标识设置为所述软件组件对应的管理节点的软件组件标识子节点的值,所述软件组件对应的标识由网络侧提供,并作为所述软件组件包的一部分下发给终端,或独立于所述软件组件包下发给终端。
通过本发明实施例提供的方法、系统及装置,完善了OMA DM规范中关于SCOMO的规定,使得安装过程更加合理。
附图说明
图1为背景技术中SCOMO的部分结构示意图;
图2为本发明实施例系统结构示意图;
图3为本发明实施例中,软件组件包在终端中的状态迁移示意图;
图4A为本发明实施例中,软件组件在终端中的状态迁移示意图;
图4B为本发明实施例中,软件组件在终端中的状态迁移示意图;
图5为本发明实施例1的步骤流程示意图;
图6为本发明实施例1中,下载方式为间接下载时,下载、安装软件组件的SCOMO的结构示意图;
图7为本发明实施例1中,下载方式为直接下载时,下载、安装软件组件的SCOMO的结构示意图;
图8为本发明实施例1中,三种下载方式的流程示意图;
图9为本发明实施例1中,在DownLoad子树中生成的Pkg1管理节点中包含软件组件信息的SCOMO的结构示意图;
图10为本发明实施例终端结构示意图;
图11为本发明实施例终端的工作流程示意图;
图12为本发明实施例DM服务器结构示意图;
图13为本发明实施例DM服务器的工作流程示意图;
图14为本发明实施例2步骤流程示意图;
图15为本发明实施例2中,在DownLoad子树中生成的Pkg2管理节点的SCOMO的结构示意图;
图16为本发明实施例2中,在Delivered子树中生成的Pkg2管理节点的SCOMO的结构示意图;
图17为本发明实施例3步骤流程示意图;
图18为本发明实施例3中,在Delivered子树中生成的Pkg3管理节点的SCOMO的结构示意图;
图19为本发明实施例3中,为在Deployed子树生成的Component1管理节点的SCOMO的结构示意图。
具体实施方式
在本发明实施例中,首先,DM服务器将软件组件包直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个以上软件组件;然后,若所述终端接收到的是所述下载地址和指示下载的命令,则利用所述下载地址下载所述软件组件包;最后,所述终端将获得的该软件组件包安装在本地,并在Deployed子树下生成所述软件组件对应的管理节点及其子节点(本发明实施例中所提到的生成管理节点的同时会生成该管理节点的子节点)。
下面结合说明书附图详细说明本发明。
如图2所示,为本发明实施例系统结构示意图,该系统包括DM服务器和终端,其中,所述DM服务器用于将软件组件包通过DM命令直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个以上软件组件;所述终端用于若接收到的是所述下载地址和指示下载的命令,则利用所述下载地址将所述软件组件包下载,将获得的该软件组件包安装在本地,并在Deployed子树下生成所述软件组件对应的管理节点及其子节点。
若所述指示下载的命令中包含的下载方式为间接下载,且利用DownLoad指令下载,则当所述软件组件包下载之后,且将安装之前,或,若当指示下载的命令中包含的下载方式为间接下载,且利用DownLoadInstall或DownLoadInstallInactive指令下载,则若下载成功且安装失败,则所述终端还可以用于在Delivered子树下生成所述软件组件包对应的管理节点,并为该管理节点和该管理节点的子节点分配访问控制权限。
在Delivered子树下生成所述软件组件包对应的管理节点之前,所述终端还可以用于判断下载的所述软件组件包的标识是否与Delivered子树下已有的一管理节点对应的软件组件包的标识相同,若相同,则将Delivered子树下该管理节点的信息修改为下载的所述软件组件包的信息,否则,在Delivered子树下生成下载的该软件组件包对应的管理节点。
所述DM服务器还可以用于将所述指示下载的命令下发之前,指示终端在Download子树中为所述软件组件包生成管理节点;则所述终端还可以用于将Download子树下生成的所述管理节点的访问控制权限,作为Delivered子树下生成的所述管理节点的访问控制权限,或将Delivered子树下生成的所述管理节点的访问控制权限设置为空,进而进程其父节点的访问控制权限,或为Delivered子树下生成的所述管理节点生成特定的访问控制权限,或将Download子树下生成的所述管理节点的访问控制权限和Delivered子树下生成的所述管理节点的父节点的访问控制权限进行合并,将合并后的访问控制权限作为Delivered子树下生成的所述管理节点的访问控制权限。
所述DM服务器还可以用于将所述指示下载的命令下发之前,指示终端在Download子树中为所述软件组件包生成管理节点;若判断下载的所述软件组件包与Delivered子树下已有的一管理节点对应的软件组件包相同,则所述终端还可以用于将Download子树下为该软件组件包生成的管理节点的访问控制权限与Delivered子树中已有的该管理节点的访问控制权限之和,作为Delivered子树下该管理节点的访问控制权限。
所述终端还可以用于将Delivered子树下生成的所述管理节点下的子节点继承该管理节点的权限,或,将Download子树下的可执行节点的访问控制权限作为Delivered子树下生成的所述管理节点下可执行节点的访问控制权限。
所述终端还可以用于将软件组件包下载之后,且安装所述软件组件包之前,接收DM服务器下发的DM命令,并判断该DM服务器的权限是否满足Delivered子树下生成的该DM命令所操作的节点的访问控制权限,若满足,则对该节点执行所述DM命令。
所述DM服务器还可以用于将参数下发给所述终端;则所述终端还可以用于根据所述参数下载所述软件组件包或安装所述软件组件包或删除所述软件组件包或激活所述软件组件或去激活所述软件组件或删除所述软件组件。
所述DM服务器还可以用于将参数下发给所述终端之前,指示终端在终端软件组件管理树(SCOMO)上增加子节点之后,将所述参数下发给该子节点。
所述DM服务器还可以用于通过DM命令将所述参数下发给终端,该DM命令用于指示终端执行所述软件组件包的下载操作或安装操作或删除操作,或指示终端执行所述软件组件的激活操作或去激活操作或删除操作。
所述终端还可以用于在软件组件包安装之后,且在Deployed子树下生成所述软件组件对应的管理节点之前,判断所述软件组件包中一软件组件是否与Deployed子树下已有的一管理节点对应的软件组件相同,若相同,则将Deployed子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息,否则,在Deployed子树下生成所述软件组件包中软件组件对应的管理节点。
所述终端还可以用于若判断软件组件的标识或名称相同,则表示两个软件组件相同;否则,表示两个软件组件不相同。
所述终端还可以用于若判断所述软件组件包中一软件组件与Deployed子树下已有的一管理节点对应的软件组件相同,则将Deployed子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息之后,将Delivered子树下或Download子树下为该软件组件包生成的管理节点的访问控制权限与Deployed子树中已有的该管理节点的访问控制权限之和,作为Deployed子树下该管理节点的访问控制权限。
所述DM服务器还可以用于将软件组件包通过DM命令直接下发给终端之前,指示终端在Delivered子树下生成所述软件组件包对应的管理节点,且该管理节点中包含软件组件信息,则所述终端还可以用于将Delivered子树下管理节点中包含的所述软件组件信息保存到Deployed子树中。
所述终端还可以用于在Deployed子树下生成所述软件组件对应的管理节点之后,为该管理节点和该管理节点的子节点分配访问控制权限。
所述终端还可以用于将Delivered或Download子树下生成的所述软件组件包对应的所述管理节点的访问控制权限,作为Deployed子树下生成的所述管理节点的控制权限,或为Deployed子树下生成的所述管理节点的访问控制权限设置为空,进而继承其父节点的访问控制权限,或为Deployed子树下生成的所述管理节点设定特定的访问控制权限,或将Delivered或Download子树下生成的所述管理节点的访问控制权限和Deployed子树下生成的所述管理节点的父节点的访问控制权限进行合并,将合并后的访问控制权限作为Deployed子树下生成的所述管理节点的访问控制权限。
所述终端还可以用于将Deployed子树下生成的所述管理节点下的子节点继承该管理节点的权限,或,将Delivered子树或Download子树下的可执行节点的访问控制权限,作为Deployed子树下生成的所述管理节点下可执行节点的访问管理权限。
当在Deployed子树下生成所述软件组件对应的管理节点之后,且DM服务器对Deployed子树下生成所述软件组件对应的管理节点进行操作之前,所述终端还可以用于接收DM服务器下发的DM命令,并判断该DM服务器的权限是否满足Deployed子树下生成的该DM命令所操作的节点的访问控制权限,若满足,则对该节点执行所述DM命令。
所述终端还可以用于当在Deployed子树下生成所述软件组件对应的管理节点之后,将安装响应消息上报给DM服务器,所述安装响应消息包括:Deployed子树中生成所述管理节点的URI;
若所述指示下载的命令中包含的间接下载的指令为Download,当下载完成之后,且安装所述软件组件包之前,或,若所述指示下载的命令中包含的间接下载的指令为DownloadInstall或DownloadInstallInactive,当下载完成,且安装失败时,将安装响应消息上报给DM服务器,所述安装响应消息包括:Deployed子树中生成所述管理节点的URI。
所述下载响应消息和所述安装响应消息的上报方式为:同步上报方式或异步上报方式。
若利用所述同步上报方式上报,则所述终端还可以用于在Status命令的Item元素中携带下载响应消息或安装响应消息中的URI。
所述下载响应消息还包括:所述软件组件包的名称和/或标识;所述安装响应消息还包括:所述软件组件的名称和/或标识。
若下载方式为直接下载或间接下载中利用DownLoad指令下载,则在Deployed子树下生成所述软件组件对应的管理节点之后,所述终端还可以用于将所述软件组件包的状态设置为已安装状态。
下面结合具体实施例详细说明本发明。
在本发明实施例中,软件组件包(Delivered Package)在终端中的状态迁移如图3所示,从图中可以看出,主要有4种状态:Not Downloaded表示软件组件包还没有被终端下载,在终端中不存在;Delivered表示软件组件包已经被终端下载,但是还没有被安装;Install表示软件组件包已经被安装;Removed表示软件组件包已经被删除。这4种状态之间可以进行相互迁移,如当软件组件包被下载后,由Not Downloaded进入Delivered;当安装后由Delivered进入Install,当然,此时软件组件可能被激活也可能未被激活;当软件组件未安装就包被删除时,由Delivered进入Removed,当软件组件包安装后被删除时,由Install进入Removed;若软件组件包安装失败,但没有从终端删除,则由Not Downloaded进入Delivered;若安装失败且删除,则由Not Downloaded进入Removed;若软件组件包下载且直接安装后,则由Not Downloaded进入Install,同样,此时安装组件可能被激活也可能未被激活。显然,软件组件包存在于Download子树和Delivered子树。其中Not Downloaded和Removed可以合并为一个Idle状态,表示软件组件包未被下载或者已被删除,即其在终端中不存在。
软件组件(Software Component)存在于Deployed子树,其在终端中的状态迁移如图4A所示,Inactive表示软件组件已经被安装,但是未激活因而不可用;Active表示软件组件已经被安装且已经激活,处于可用状态;Removed表示软件组件已经被删除。软件组件的三种状态之间也是可以相互迁移的,当软件组件被激活时,由Inactive进入Active,反之,由Active进入Inactive;若软件组件在未激活状态被删除,则由Inactive进入Removed;若软件组件在激活状态被删除,由Active进入Removed。其中可以将Removed改为Idel状态,表示软件组件未被安装或者已经被删除,即其在终端中不存在。当软件组件包进入Installed状态时,其中包含的软件组件从Idel进入Active或者Inactive状态。当软件组件被删除时,其从Active或者Inactive回到Idle状态。
在本发明实施例中,软件组件包也可以只作为封装一个或者多个组件进行传送的方式,并不对其进行管理,这样软件组件包也可以没有状态迁移,而只有软件组件的状态迁移,这时的软件组件的状态迁移如图4B所示,Idle表示软件未下载或者未安装或者已删除;Delivered标识软件已下载但未安装;Inactive表示软件组件已经被安装,但是未激活因而不可用;Active表示软件组件已经被安装且已经激活,处于可用状态,图中虚线表示执行操作失败后状态不变,实线表示正常的操作过程。软件组件的四种状态之间也是可以相互迁移的,当软件组件仅被下载或下载成功且安装失败时,由Idle状态进入Delivered状态(当下载失败时状态保持不变),当软件组件被安装时,由Idle或Delivered状态进入Active或Inactive状态(当安装失败时状态保持不变),当软件组件被激活时,由Inactive状态进入Active状态(当操作执行失败时状态保持不变),当软件组件被去激活时,由Idle或Delivered或Active状态进入Inactive状态(当操作执行失败时状态保持不变);若软件组件被删除时,则由Delivered或Inactive或Active状态进入Idle状态(当操作执行失败时状态保持不变)。
一个软件组件包可以包含一个或多个软件组件,而一个软件组件可以代表一个应用程序、一个病毒补丁或一个应用程序的库文件等。软件组件在安装之前必须被放置到软件组件包中,当软件组件包被下载并成功安装之后,则软件组件将成为已发布软件组件(Deployment Component)。
如图5所示,为本发明实施例1的步骤流程示意图,在本实施例中,设定软件组件包的名称(Name)为ascendo,该软件组件包的标识为PkgID_1,该软件组件包中包含3个软件组件,这三个软件组件的名称(Name)分别为ascendo_1、ascendo 2和ascendo_3,标识分别为ComID_1、ComID_2和ComID_3,该步骤主要包括:
步骤501:DM服务器将软件组件包通过DM命令直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个以上软件组件。
DM服务器首先确定终端的下载方式,若下载方式为直接下载,则DM服务器通过DM命令直接将软件组件包下发给终端;若下载方式为间接下载,则DM服务器将软件组件包的下载地址和指示下载的命令下发给终端,所述下载地址和指示下载的命令可以在同一DM管理会话中下发,也可以在不同的DM管理会话中下发,同时,DM服务器也可以针对同一下载地址向终端多次下发指示下载的命令。
为了方便管理,DM服务器还可以在下发操作指令前下发指令的相关参数给终端,这里的指令可以包括软件组件的下载指令、安装指令、删除指令、激活/去激活指令等,然后终端根据该参数执行该指令。下发参数可以有两种方法:一是在终端的软件组件管理树上增加节点,服务器通过该节点下发参数,二是服务器直接在下发的执行该指令的Exec命令的Data元素中携带参数。以下以软件组件的安装指令的相关参数下发为例说明参数下发方法(其它指令相关参数下发方法和该参数下发方法相同,不再赘述):只要在终端安装软件组件包之前,DM服务器都可以根据需要将参数下发给终端,也就是说,可以在利用DM命令下发软件组件包时、下发指示下载的命令或安装命令时下发参数(所述参数可以是用于指示终端只安装软件组件包中的某些组件,例如,只安装Java相关的组件或C++相关的组件,也可以是用于指示终端在安装后生成Deployed子树时的处理策略等),当然也可以在其他时间下发,具体时间可以根据需要设定。后续在安装过程中,终端就可以根据参数将下载的软件组件包安装在本地。而下发参数的方式也可以有多种,例如,指示终端在SCOMO的子树下为所述软件组件包生成管理节点,并为该管理节点增加一个子节点,DM服务器将该参数下发至该子节点;或者,DM服务器直接利用DM命令将参数下发给终端。后一种方法在步骤503中描述,在本步骤中只着重描述前一种方法,则操作步骤为:
指示终端在SCOMO的子树下为所述软件组件包生成管理节点,并为该管理节点增加一个子节点,但是,下载方式不同,生成该管理节点的子树就不相同。下载方式主要可以分为直接下载和间接下载,而间接下载中有可以分为利用Download命令下载,和利用DownloadInstall或DownloadInstallInactve命令下载。
若下载方式为间接下载,即指示终端在DownLoad子树下生成将要被下载的软件组件包的管理节点。如图6所示,在DownLoad子树中生成一个名为Pkg1的管理节点,并为该管理节点增加一个子节点,用以存储DM服务器下发的参数,该子节点可以命名为InstallPara,在利用此下载方式时,DM服务器可以将参数下发给DownLoad/Pkg1/InstallPara子节点。该Pkg1是生成的管理节点的名称。
若下载方式为直接下载,则指示终端在Delivered子树中生成将要被下载的软件组件包对应的管理节点。如图7中所示,在Delivered子树中生成一个名为Pkg1的管理节点,并为该管理节点增加一个子节点,用以存储DM服务器下发的参数,该子节点同样可以命名为InstallPara,在利用此下载方式时,DM服务器可以将参数下发给Delivered/Pkg1/InstallPara子节点。
不论是以何种下载方式,都需要在终端增加一个存储空间作为子节点,该增加的子节点是否存在可以根据服务器的需要设定,若在安装过程中需要参数(如序列号),或是需要实现个性化安装(如,只安装Java相关的组件或C++相关的组件),或是需要提供给服务器软件组件的使用环境等信息(如,此软件组件或软件组件包是Java环境还是C++环境)等情况,则可以增加子节点InstallPara;若确定不需要时,也可以不增加子节点InstallPara。
该InstallPara的节点信息如表1所示,该InstallPara子节点的位置为DownLoad/<X>/InstallPara,该子节点的状态是可选的,格式类型可以是任意类型,在本实施例中,设定格式类型为字符型,该InstallPara子节点最多可以添加一个,且能够接受的最小访问控制权限为Get命令。这些设定适用于各种下载方式。
Figure BDA0000037269150000141
表1
如表2所示,为Name子节点的信息,该子节点的位置为:DownLoad/<X>/Name或Inventory/Delivered/<X>/Name或Inventory/Deployed/<X>/Name,同样这些信息适用于各种下载方式。该子节点是必选的,格式类型为字符型,可以添加的可执行节点个数为一个,能够接受的最小访问控制权限为Get命令。
Figure BDA0000037269150000142
表2
另外,Pkg1的子节点中还包括State,该子节点的位置为Inventory/Delivered/<X>/State,包括的信息如表3所示。该State中记载了当前软件组件包或软件组件的状态信息,可以设定当状态为Delivered时,用“10”表示,当状态为Installed时,用“20”表示,如表4所示。
Figure BDA0000037269150000151
表3
Figure BDA0000037269150000152
表4
显然,DM服务器可以在下发指示下载的命令之后,且终端安装软件组件包之前下发该参数。
若下载方式为间接下载,则DM服务器将软件组件包的下载地址存放在名称为Pkg1的管理节点PkgURL子节点中,并下发指示下载的命令。终端可以根据设定的下载方式,利用下载地址将软件数据包下载到本地。
步骤502:若所述终端接收到的是所述下载地址和指示下载的命令,则利用所述下载地址下载并保存所述软件组件包。
如前所述,下载的方式主要分为直接下载和间接下载。直接下载即为DM务器指示终端在SCOMO中的Delivered子树下为待下载软件组件包创建管理节点,然后通过对Delivered子树的Data节点执行Replace命令,将软件组件包下发到终端;间接下载即为DM服务器指示终端在Download节点下为待下载的软件组件包创建管理节点,在该管理节点中的子节点中设定下载信息,其中包括软件组件包的名称,版本,下载地址等,并添加相应的操作权限,然后向终端发送指示下载的命令。图8为这三种下载方式的流程图,下面分别描述这三种下载方式。
1、间接下载中,利用DownLoad指令下载的方式。
首先,终端根据DM服务器提供的软件组件包的下载地址将该软件组件包下载到本地。
然后,在安装之前,终端在Delivered子树下生成下载成功的所述软件组件包对应的管理节点,即为所述软件组件包生成Delivered子树下的管理节点。在生成该管理节点之前,终端需要判断Delivered子树下是否有这种管理节点,该管理节点对应的软件组件包的标识(PkgID)与下载的该软件组件包的标识相同,所述PkgID可以是软件组件发布者(Software Publisher)或软件组件包发布者(Package Publisher)提供。若判断结果为有,则将原Delivered子树下的该管理节点以及其子节点的信息修改为当前下载的软件组件包的信息,并重新为该管理节点分配访问控制权限;若判断结果为没有,则在Delivered子树下为下载的软件组件包新生成管理节点以及其子节点,并为新生成的该管理节点分配访问控制权限。本发明实施例中所提到的为节点分配访问控制权限具体指:为该节点生成ACL属性,然后为该属性赋予ACL值,该ACL值可以为空(默认继承其父节点的ACL值)或者非空(自身的ACL值)。
在本实施例中,设定下载的软件组件包的标识为PkgID_1,则终端生成该软件组件包对应的管理节点之前,先判断当前的Delivered子树下是否有标识为PkgID_1的管理节点的标识子节点(PkgID),若有,则将已存在的该管理节点的信息以及其子节点修改为下载的软件组件包的信息,并重新为修改信息后的管理节点以及其子节点分配访问管理权限;否则,在Delivered子树下为该下载的软件组件包生成一个新的管理节点,该生成的管理节点的标识子节点(PkgID)的值为PkgID_1,并为该新生成的管理节点以及其子节点分配访问管理权限。如图6中所示,终端为Delivered子树下生成的所述软件组件包对应的管理节点的子节点设置值,该值可以与DownLoad子树下生成的该软件组件包对应的管理节点的子节点值相同,State子节点的状态设置为Delivered。除此以外,终端还为该Delivered子树下新生成的管理节点和该管理节点的子节点分配访问控制权限及其它属性值。
在本实施例中,分配访问控制权限的方法可以有多种,下面举例来说明。
Delivered子树下的管理节点权限赋予方法:通过步骤501的描述可知,在利用DownLoad指令下载的方式中,DM服务器下发指示下载的命令之前,已经在DownLoad子树下生成了该软件组件包对应的管理节点,则终端为Delivered子树下生成的管理节点赋予与Download子树下的管理节点相同的访问控制权限,或者让Delivered子树下的管理节点继承其父节点(Delivered节点)的访问控制权限,或者终端给Delivered子树赋予特定的权限(如Get=*)。
所述管理节点子节点的权限赋予方法:Delivered子树下该管理节点下的子节点继承该管理节点的访问控制权限,或者为Delivered子树下该管理节点下的子节点赋予其在Download子树下该软件组件包对应的管理节点的对应子节点相同的权限。另外还可已将上述两种方法合并使用,将部分Delivered子树下该管理节点下的子节点继承该管理节点的访问控制权限,其他Delivered子树下该管理节点下的子节点赋予其在Download子树下该软件组件包对应的管理节点的对应子节点相同的权限。
对于管理节点的可执行子节点(即Operations子节点下的Install、InstallInactive和Remove可执行节点),将Download子树下的可执行节点的访问控制权限作为其访问控制权限,即将Operations子节点的三个可执行节点Install、InstallInactive和Remove的权限设定为:DownLoad子树下的管理节点的Operations下的可执行节点的访问控制权限,较优的可以设定为Download子树下所执行下载业务的可执行节点的访问控制权限。例如,DownLoad指令为指示下载的命令,执行该指令的是DownLoad/Pkg1/Operations/DownLoad可执行节点,其权限为Get=*&Exec=ServerA,则为Delivered/Pkg1/Operations/节点下的所有可执行节点赋予权限Get=*&Exec=ServerA。
另外,若判断下载的所述软件组件包与Delivered子树下已有的一管理节点对应的软件组件包相同,则在分配权限时也可以将Download子树下该软件组件包的管理节点的访问控制权限与Delivered子树中已有的该软件组件包管理节点的访问控制权限之和,作为Delivered子树下该软件组件包对应的管理节点的新的访问控制权限,该管理节点的子节点分配方式可以与前述相同。
最后,终端将下载响应消息上报给DM服务器,该下载响应消息中包含所述软件组件包在Delivered子树上的管理节点的URI(即:Delivered的子节点的URI),同时还可以包含但不限于:软件组件包标识(即PkgID节点)和软件组件包名称(即Name子节点)等信息中的一个或多个。
在本实施例中,上报响应消息的方法也可以有多种,如同步上报或异步上报。同步上报即在给服务器下发的执行指令的回复消息中上报执行结果及其它信息;异步上报是独立于给服务器下发的执行指令的回复消息而上报执行结果,异步上报可以是同一管理会话或不同管理会话。同步上报的方式可以让服务器实时获知当前终端的执行结果,异步上报的方式可以减少终端与服务器之间的会话等待,减少资源浪费提高效率,用户可以根据自身需求选择合适的上报方式。下面分别描述这两种上报方式:
异步上报是利用Generic Alert命令来实现数据上报的,异步上报的信息包括:操作结果码、Source、Target、AlertType、Correlator,其中上报的结果代码放在Generic Alert命令的Item/Data元素中,在Source元素中携带所执行下载指令的URI,在Target元素中携带软件组件包在Delivered子树下生成所述管理节点的URI信息,在上报上述信息的基础上,还携带软件组件包的信息(如名称信息,即Delivered子树中生成的管理节点的Name子节点信息和/或该管理节点的标识信息,即Delivered子树中生成的管理节点的PkgID子节点信息)。具体的上报软件组件包信息的方式至少可以有三种:
1、利用Alert中MetaInf的可扩展元素EMI将软件组件包的名称上报至DM服务器,过程可以利用如下程序实现,Pkg1为终端生成管理节点时为该管理节点分配的名称:
<Alert>
<CmdID>2</CmdID>
<Data>1226</Data><!--Generic Alert-->
<Correlator>abc123</Correlator>
<Item>
    <Source><LocURI>./SCOMO/Download/Pkg1/Operations/Download</Loc
    URI></Source>
    <Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI></Targe
    t>
    <Meta>
        <Type xmlns=″syncml:metinf″>
            org.openmobilealliance.softwarecomponent.OperationComplete
        </Type>
        <Format xmlns=″syncml:metinf″>text/plain</Format>
        <Mark xmlns=″syncml:metinf″>critical</Mark>
        <EMI xmlns=″svncml:metinf″>_Name</EMI><!--要上报的软件组
件包的信息-->
      </Meta>
      <Data>
          <!--Result Code-->
      </Data>
    </Item>
</Alert>
上述程序中,EMI元素的值可以是Delivered/Pkg1/Name中的信息,或是Delivered/Pkg1/PkgID中的信息,或是这两种信息都上报。
2、在Alert中添加一个Item项,利用该添加的Item项中的Data将软件组件包的信息上报给DM服务器,具体可以利用以下程序实现:
<Alert>
    <CmdID>2</CmdID>
    <Data>1226</Data><!--Generic Alert-->
<Correlator>abc123</Correlator>
<Item>
    <Source><LocURI>./SCOMO/Download/Pkg1/Operations/Download</Loc
    URI></Source>
    <Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI></Targe
      t>
    <Meta>
      <Type xmlns=″syncml:metinf″>
         org.openmobilealliance.softwarecomponent.OperationComplete
      </Type>
      <Format xmlns=″syncml:metinf″>text/plain</Format>
      <Mark xmlns=″syncml:metinf″>critical</Mark>
    </Meta>
    <Data>
       <!--Result Code-->
    </Data>
</Item>
<Item>
    <Source><LocURI>./SCOMO/Download/Pkg1/Operations/Download</Loc
    URI><Source>
    <Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1/Name</LocURI><
    /Target>
    <Meta>
       <Type xmlns=″syncml:metinf″>
          org.openmobilealliance.softwarecomponent.OperationComplete
       </Type>
       <Format xmlns=″syneml:metinf″>chr</Format>
    </Meta>
    <Data>_Name</Data><!--要上报的软件组件包的信息-->
    </Item>
</Alert>
上述程序中,Data元素的值就是Delivered/Pkg1/Name中的信息,或是Delivered/Pkg1/PkgID中的信息,或者将这两个信息都上报。
3、在Alert的Item/Data元素中上报操作结果码,同时组合的上报标识和/或Name,为了让服务器能够正确解析Item/Data元素中的操作结果码、标识和/或Name,需要为Item/Data元素的数据规定一个数据格式,这个数据格式可以是“操作结果码(分隔符)标识”,也可以是可扩展标记语言(xml)格式。具体上报程序片断如下(以xml格式为例),其中Pkg1为终端生成管理节点时为该管理节点分配的名称:
<Alert>
   <CmdID>2</CmdID>
   <Data>1226</Data><!--Generic Alert-->
   <Correlator>abc123</Correlator>
   <Item>
      <Source><LocURI>./SCOMO/Download/Pkg1/Operations/Download</Loc
      URI></Source>
      <Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI></Targe
      t>
      <Meta>
        <Type xmlns=″syncml:metinf″>
            org.openmobilealliance.softwarecomponent.OperationComplete
        </Type>
       <Format xmlns=″syncml:metinf″>text/plain</Format>
       <Mark xmlns=″syncml:metinf″>critical</Mark>
      </Meta>
      <Data>
         <![CDATA[
             <ResultCode>200</ResultCode>
             <Identifier>1123sdf312</Identifier>
          ]]>
       </Data>
   </Item>
</Alert>
同步上报是利用Exec命令对应的Status命令来上报执行结果的,Status命令的Data携带操作的DM状态码,在此命令中同时上报Delivered子树下Pkg1管理节点URI信息,还可以上报软件组件包名称Name或者上报软件组件包标识PkgID,上报方法为:在Status命令中携带Item,Item的Target元素携带Delivered子树下Pkg1管理节点的URI信息,Source元素携带Exec操作所执行的节点的URI。具体可以利用下述程序实现:
<Status>
    <MsgRef>1</MsgRef>
    <CmdRef>2</CmdRef>
    <Cmd>Exec</Cmd>
    <Data>200</Data><!--Successful-->
    <Item>
        <Target>
          <LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI>
        </Target>
   </Item>
</Status>
另外,也可以在上报执行状态的同时携带Delivered/Pkg1/NAME信息或Delivered/Pkg1/PkgID信息以及软件组件操作状态码。其中软件组件操作状态码可以携带在Item/Data元素中上报,Delivered/Pkg1/NAME信息或Delivered/Pkg1/PkgID信息可以携带在EMI元素中上报,或者使用并列的Item携带上报,或者组合在Item/Data元素的数据中上报(如果要上报软件组件操作状态码,则该状态码也进行组合),对于组合上报为了让服务器能够解析Item/Data元素中的不同数据,需要为Item/Data元素的数据规定一个数据格式,这个数据格式可以是“操作结果码(分隔符)标识”,也可以是xml格式。具体上报程序片断如下(以xml格式为例):
<Status>
   <MsgRef>1</MsgRef>
   <CmdRef>2</CmdRef>
   <Cmd>Exec</Cmd>
   <Data>200</Data><!--Successful-->
   <Item>
      <Target>
         <LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI>
      </Target>
      <Meta><Format xmlns=″syncml:metinf″>text/plain</Format></Meta>
      <Data>
           <![CDATA[
               <ResultCode>200</ResultCode><!--状态码-->
               <Identifier>1123sdf312</Identifier>
           ]]>
      </Data>
   </Item>
</Status>
DM服务器通过终端上报的信息确定下载后的管理组件包及其对应的管理节点,通过这些信息可以进行后续对软件组件包的操作。
2、间接下载中,利用DownLoadInstall或DownLoadInstallInactive指令下载的方式。
此下载方式中,DM服务器同样会指示终端在Download子树中生成所述软件组件包对应的管理节点,然后,终端根据DM服务器提供的软件组件包的下载地址将所述软件组件包下载到本地,所述下载地址存放在Download子树管理节点的PkgURL子节点中,若下载成功,则在下载完后终端自动执行Install或者InstallInactive操作。
3、直接下载方式。
DM服务器指示终端在Delivered子树下生成所述软件组件包对应的管理节点,并向终端下发针对Delivered子树下生成的该管理节点的Data子节点的Replace命令,则终端接收服务器通过Replace命令下载的软件组件包数据并保存在Delivered子树下该管理节点的Data子节点上,并向DM服务器返回下载响应消息。
步骤503:所述终端将获得的该软件组件包安装在本地,并在软件组件管理对象SCOMO中的Deployed子树下生成所述软件组件对应的管理节点及其子节点。
当下载过程成功完成后,则将获得的软件组件包安装在本地,显然,若是直接下载,该获得的软件组件包是DM服务器直接下发的,若是间接下载,则该获得的软件组件包是从DM服务器下发的下载地址中获得的。
由于下载的方式不同,因此安装的方式也将会不同。下面分别以直接下载、间接下载中以DownLoad指令和间接下载中以DownLoadInstall或DownLoadInstallInactive指令为例说明安装的过程。
1、间接下载中以DownLoadInstall或DownLoadInstallInactive为指令。
若DM服务器下发的下载方式为DownLoadInstall或DownLoadInstallInactive指令,则说明终端成功下载软件组件包后,将直接对该软件组件包执行安装操作。在步骤502中已描述了终端利用DownLoadInstall或DownLoadInstallInactive指令下载软件组件包的过程,此时,终端可以为所下载的软件组件包在Delivered子树下生成管理节点,如图6所示,并为该管理节点以及其子节点分配访问管理权限。此处,分配访问控制权限的方式可以与步骤502中,以Download方式下载时,为生成的Delivered子树下的管理节点分配访问控制权限的方式相同,当然,此时也可以不在Delivered子树下生成对应的管理节点。
终端将下载的软件组件包安装在本地,在安装过程中可能会需要参数,在步骤501中记载了一种下发参数方式。本发明实施例中还可以有其他方式来使终端获得该参数,如:若DM服务器设定的是直接下载方式或是利用DownLoad命令下载,则当DM服务器接收到终端上报的下载响应消息后,认为此时终端已经成功下载,则再次下发安装指令:Install或InstallInactive,DM服务器通过该安装指令可以将参数下发到终端。若DM服务器设定的是利用DownLoadInstall或DownLoadInstallInactive命令下载,则DM服务器通过该DownLoadInstall或DownLoadInstallInactive命令将该参数下发到终端。实际上,就是通过包含“Install”指令的DM命令来下发参数的。以通过Inventory/Delivered/<Pkg1>/Operations/Install子节点执行业务为例,设定DM服务器下发的安装指令为Install,即指定Delivered/Pkg1/Operations/Install可执行节点来执行安装业务,其参数的携带可以利用以下程序来实现:
<Exec>
    <CmdID>3</CmdID>
    <Item>
       <Target>
          <LocURI>./SCOMO/Inventory/Delivered/Pkg1/Operations/Install</LocU
RI>
       </Target>
    <Data>-l-t</Data><!--参数-->
    </Item>
</Exec>
在上述程序中,实际就是利用Exec指令中的Data来携带参数,在安装过程就可以利用该参数来执行安装。
在利用本步骤中利用DownLoadInstall或DownLoadInstallInactive进行安装时,若安装失败,但软件组件包并未被删除,且在安装之前没有在Delivered子树下生成该软件组件包对应的管理节点,则此时,终端为所下载的软件组件包在Delivered子树下生成管理节点,在生成该管理节点之前,终端需要判断当前Delivered子树下是否有这样一种管理节点,该管理节点对应的软件组件包与下载的软件组件包相同,若有,则将当前Delivered子树下的该管理节点以及其子节点的信息修改为下载的软件组件包的信息,并为该修改信息后的管理节点以及其子节点分配访问管理权限;否则,在Delivered子树下新生成该软件组件包对应的管理节点以及其子节点,并为该新生成的管理节点以及其子节点分配访问管理权限。此时,分配访问管理权限的方法可以与步骤502中记载的利用DownLoad指令下载时,分配访问管理权限的方法相同,当然,也不限于其他方法,然后,终端将包含安装失败信息的安装响应消息上报给DM服务器。
若安装成功,则终端需要为软件组件包中的每一个软件组件在Deployed子树下生成对应的管理节点,如图6所示,终端在为软件组件包中的软件组件生成管理节点时,获取该软件组件的标识,并将该标识设置为所述管理节点的软件组件标识子节点的值(即设置为Deployed子树下的ID节点的值)。所述软件组件的标识可以由网络侧提供(例如:由软件组件发布者(Software Publisher)或软件组件包发布者(Package Publisher)提供)。所述软件组件的标识可以作为软件组件包的元数据随软件组件包一同下发给终端,或独立于软件组件包下发给终端。此软件组件标识可以用来唯一标识一个软件组件,服务器(包括DM服务器或软件组件发布者或软件组件包发布者)可以利用此标识来识别一个软件组件。终端在生成管理节点之前,需要判断是否Deployed子树下有已生成的管理节点对应的软件组件与安装的所述软件组件中的一个或多个相同。该判断方法可以为:通过比较软件组件的标识(Deployed子树下的ID节点)或者比较软件组件的名称(Deployed子树下的Name节点)来判断两个软件组件是否相同,若以标识为判断基准,则当标识相同则两个软件组件就相同,否则就不相同。以名称为判断基准的方式与以标识为判断基准相同。若软件组件相同,则在修改该相同软件组件的管理节点及其子节点的信息的时候,保留其已有的PkgIDRef子节点的值(即保留该管理节点原对应的软件组件与原软件组件包的关联信息,其值为原软件组件包的标识PkgID),并添加新的关联信息(即在Deployed子树下新添加一个PkgIDRef节点,用以保存安装的所述软件组件包和该包中所述管理节点对应的软件组件的关联信息),这样在Deployed子树上会存在多个PkgIDRef节点。为了实现这个能力,需要把存放关联信息的PkgIDRef节点的出现次数由一个改为一个或多个,如表5所示。
Figure BDA0000037269150000271
表5
下面以名称为判断基准,说明本实施例中的该判断过程。
以名称为ascendo_1的软件组件为例,若当前Deployed子树下存在管理节点下的Name子节点的信息为ascendo_1的情况,则将该管理节点的信息修改为下载安装成功的ascendo_1软件组件的信息,并为修改后的管理节点及其子节点分配访问管理权限;当前Deployed子树下不存在管理节点下的Name子节点的信息为ascendo_1的情况,则在Deployed子树下生成一个名为Component1管理节点,即该管理节点Name子节点的信息为ascendo_1,并为该管理节点以及其子节点分配访问控制权限。此在Deployed子树下生成名为Component1的管理节点的方式可以有多种,例如,若在DownLoad子树中生成的管理节点中包含软件组件信息,如图9所示,则可以将该软件组件信息保存到Deployed子树下对应的管理节点上。
此时,不论判断结果为存在还是不存在相同的软件组件,都需要为修改信息后的或新生成的管理节点以及其子节点分配访问控制权限,分配的方法可以有多种,如步骤502中记载的方法,另外,若判断存在相同名称的管理节点时,还可以有其他分配方法,如:将一个设定的权限与原管理节点的权限相加,将相加之和作为新的访问管理权限,该设定的权限可以为Download子树下该软件组件包的权限等。具体的可执行节点的访问控制权限赋予实例为:Download/Pkg1/Operations/DownloadInstall可执行节点来实现了安装过程,Download/Pkg1的权限为Get=ServerA&Relace=ServerA,Download/Pkg1/Operations/DownloadInstall的权限为Get=ServerA&Exec=ServerA。当前,在Deployed子树下已生成的相同软件组件的管理节点的访问管理权限为Get=ServerB&Relace=ServerB,Operations下的可执行节点的权限均为Get=ServerB&Exec=ServerB。则将Deployed子树下的该相同软件组件的管理节点信息修改后,可以直接将ServerA作为新的访问管理权限;也可以将Get=ServerA+ServerB&Relace=ServerA+ServerB作为新的管理节点的访问管理权限;也可以将其权限设置为空ACL=以继承父节点Delivered节点的权限;也可以为其赋予一个特定的权限,如Get=*。
该管理节点的子节点的访问管理权限的分配方法可以是:继承该管理节点的访问控制权限,或者是为Deployed子树下该管理节点下的子节点赋予其在Download子树下该软件组件包对应的管理节点的对应子节点相同的权限,或是将DownLoad子树下的访问控制权限作为Deployed子树下的所述管理节点下可执行节点的访问控制权限,即将Deployed子树上的Operations的三个可执行子节点Activated、Deactivated和Remove的权限设定为:Download子树中管理节点中Operations下的可执行节点(Download或DownloadInstall或DownloadInstallInactive)的访问控制权限,较优的可以设定为Download子树下所执行安装业务的可执行节点的访问控制权限。例如,安装命令为DownloadInstall,则执行该指令的是Download/Pkg1/Operations/DownloadInstall可执行节点,其权限为Get=*&Exec=ServerA,则为Deployed/Pkg1/Operations/节点下的所有可执行节点赋予权限Get=*&Exec=ServerA。
通过这种相加得到访问管理权限的方式,可以在更新了原有的管理节点后,原ServerB也能够对该管理节点进行操作,但是这样可能会降低安全性,用户可以根据需要选择合适的分配访问管理权限的方法。
不论是安装成功与否,终端都需要向DM服务器上报安装响应消息,所不同的是,若安装失败,还需要将失败消息上报给DM服务器。该上报的方式可以是同步上报或异步上报。如果是异步执行,则使用Generic Alert命令上报,异步上报的信息包括:结果码、Source、AlertType、Correlator,其中上报的结果代码放在Generic Alert命令的Item/Data元素中,在Source元素中携带所执行下载安装指令的URI,如果安装成功,则需要在Target元素中携带在Deployed子树下对应的生成的管理节点的URI信息,如果下载成功而安装失败(结果码为60),并且在Delivered子树下生成了对应的管理节点,则还需要在Target元素中携带在Delivered子树生成的所述管理节点的URI信息,同时还可以携带软件组件的名称(Name)或软件组件的标识(ID),名称信息或标识的上报方法同步骤502中利用Download命令执行下载的过程时,将下载响应消息上报的过程相同,这里不再赘述。
如果是同步上报,则使用Exec命令对应的Status命令上报执行结果,Status命令的Data携带操作的DM状态码。同时如果安装成功,则需要在Status元素中携带在Deployed子树下生成的管理节点的URI,还可以携带软件组件包Name和/或软件组件包标识PkgID。上报方法为:在Status中携带Item,Item的Target元素携带Inventory/Deployed子树下生成的管理节点的URI信息,也可以在上报执行状态的同时携带软件组件信息(名称或标识ID)和/或软件组件操作状态码。其中Inventory/Deployed子树下的Name或ID信息可以携带在EMI元素中上报,或者使用并列的Item携带上报,或者组合在Item/Data元素的数据中上报(如果要上报软件组件操作状态码,则该状态码也进行组合),软件组件操作状态码携带在Data元素中。此处的同步上报前述步骤502中的同步上报类似,具体代码示例参见步骤502的同步上报代码示例。
显然,若DM服务器不下发参数,则本实施例的其他步骤仍然可以正常执行。DM服务器接收到上报的信息后,就可以根据信息对软件组件进行后续的操作。
2、直接下载方式或间接下载方式中以DownLoad为指令。
通过直接下载方式下发软件组件包后,或利用DownLoad指令完成下载后,终端向服务器发送下载响应消息,当DM服务器接收到该下载响应消息后,将向终端下发安装指令,该安装指令为Install或InstallInactive,执行该安装操作的可执行节点为Inventory/Delivered/<Pkg1>/Operations/Install或Inventory/Delivered/<Pkg1>/Operations/InstallInactive,甚至该安装指令可以是用户通过操作界面发送到执行安装操作的可执行节点中。在执行安装过程之前,还需要判断发送安装命令的DM服务器是否有权限对软件组件包进行操作,即判断该DM服务器访问管理权限是否达到了Inventory/Delivered/<Pkg1>/Operations/Install可执行节点或Inventory/Delivered/<Pkg1>/Operations/InstallInactive可执行节点的访问管理权限。若是以直接下载方式进行下载操作的,则Inventory/Delivered/<Pkg1>/Operations/Install可执行节点或Inventory/Delivered/<Pkg1>/Operations/InstallInactive可执行节点的访问管理权限是由下发指示下载的命令的DM服务器分配的。若是以DownLoad命令进行下载的,则Inventory/Delivered/<Pkg1>/Operations/Install可执行节点或Inventory/Delivered/<Pkg1>/Operations/InstallInactive可执行节点的访问管理权限是由终端分配的。
若DM服务器满足权限要求,即有可执行节点的访问管理权限,则在安装完成后,在Deployed子树生成ascendo_1、ascendo 2和ascendo_3这三个软件组件对应的管理节点,如图6或7所示。终端在为软件组件包中的软件组件生成管理节点时,获取该软件组件的标识,并将该标识设置为所述管理节点的软件组件标识子节点的值(即设置为Deployed子树下的ID节点的值)。所述软件组件的标识由网络侧提供(例如:由软件组件发布者(Software Publisher)或软件组件包发布者(Package Publisher)提供)。所述软件组件的标识可以作为软件组件包的元数据随软件组件包一同下发给终端,或独立于所述软件组件包下发给终端。此软件组件标识可以用来唯一标识一个软件组件,服务器(包括DM服务器或软件组件发布者或软件组件包发布者)可以利用此标识来识别一个软件组件。在生成之前,当确定Deployed子树没有与三个软件组件相同的软件组件对应的管理节点时,则在Deployed子树下生成ascendo_1、ascendo_2和ascendo_3这三个软件组件对应的管理节点,当有时,则将该相同软件组件的管理节点及其子节点的信息修改为软件组件的信息,若软件组件相同,则在修改该相同软件组件的管理节点及其子节点的信息的时候,保留其已有的PkgIDRef子节点的值(即保留该管理节点原对应的软件组件与原软件组件包的关联信息,其值为原软件组件包的标识PkgID),并添加新的关联信息(即在Deployed子树下新添加一个PkgIDRef节点,用以保存安装的所述软件组件包和该包中所述管理节点对应的软件组件的关联信息),这样在Deployed子树上会存在多个PkgIDRef节点。不论判断结果为什么,都将为修改信息后的或新生成的管理节点和该管理节点的子节点分配访问控制权限,该分配方法可以与上述间接下载中以DownLoadInstall或DownLoadInstallInactive为指令的方法一致。
当向DM服务器上报安装响应消息时,同样可以采用同步上报和异步上报的方式。如果是异步上报,则利用Generic Alert命令上报,异步上报的信息包括:结果码、Source、Target、AlertType、名称,其中上报的结果代码放在Generic Alert命令的Item/Data元素中,在Source元素中携带所执行安装指令的URI,在Target元素中携带组件安装后的Deployed管理子树URI信息。在上报上述信息的基础上,还应该携带软件组件的名称或标识,名称信息或标识的上报方法同步骤502中利用Download指令下载时,上报下载响应消息的过程相同,这里不再赘述。DM服务器通过终端上报的信息确定安装后的管理组件及其对应的管理树,通过这些信息可以进行后续对软件组件的管理。
如果是同步上报,则使用Exec命令对应的Status命令上报执行结果,Status命令的Data携带操作的DM状态码。同时上报Deployed子树下管理节点信息:软件组件的管理节点URI,还包括软件组件的标识(Deployed子树下的ID节点)和/或软件组件的名称(Deployed子树下的Name节点),上报方法为:在Status命令中携带Item,Item的Target元素携带Deployed子树下所安装软件组件管理节点的URI,也可以在上报执行状态的同时携带软件组件信息(名称或标识ID)和/或软件组件操作状态码。其中Deployed子树下管理节点的Name或ID信息可以携带在EMI元素中上报,或者使用并列的Item携带上报,或者组合在Item/Data元素的数据中上报(如果要上报软件组件操作状态码,则该状态码也进行组合),软件组件特有的操作状态码携带在Data元素中。此处的同步上报前述步骤502中的同步上报类似,具体代码示例参见步骤502的同步上报代码示例。
不管是同步上报还是异步上报,终端执行DownloadInstall或DownloadInstallInactive操作后,在Deployed下生成软件组件管理节点及其子节点之后,若还在软件组件管理对象的Delivered子树下生成所述软件组件包对应的管理节点,则所述安装响应消息包括:Deployed子树下生成的该管理节点的URI和Delivered子树下生成的管理节点的URI,服务器根据终端上报的消息中的Item/Target元素中的URI判断该URI所指示的是该软件组件包在终端软件组件管理对象上的地址还是已安装的软件组件在终端软件组件管理对象上的地址,具体判断方法可以是:判断URI中是否包含Delivered或者Deployed字符串,如果包含Delivered,则URI指示的是软件组件包的地址,否则为已安装软件组件的地址。以下是异步上报的消息示例;
<Alert>
  <CmdID>2</CmdID>
  <Data>1226</Data><!--Generic Alert-->
  <Correlator>abc123</Correlator>
   <Item>
       <Source><LocURI>./SCOMO/Download/Pkg1/Operations/DownloadInstall
       </LocURI></Source>
       <Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI></Targe
         t>
       <Meta>
        <Type xmlns=″syncml:metinf″>
           org.openmobilealliance.softwarecomponent.OperationComplete
        </Type>
        <Format xmlns=″syncml:metinf″>text/plain</Format>
       </Meta>
       <Data>...</Data>
   </Item>
   <Item>
       <Source><LocURI>./SCOMO/Download/Pkg1/Operations/DownloadInstall
       </LocURI><Source>
       <Target><LocURI>./SCOMO/Inventory/Deployed/Com1
       </LocURI></Target>
       <Meta>
         <Type xmlns=″syncml:metinf″>
            org.openmobilealliance.softwarecomponent.OperationComplete
       </Type>
       <Format xmlns=″syncml:metinf″>chr</Format>
       </Meta>
       <Data>...</Data>
   </Item>
</Alert>
当然,本实施例中,此过程也可以是利用参数进行安装过程,不论是否有参数,其他安装过将不会受到影响。安装结束后,可以利用Remove可执行节点执行删除。
通过对上述系统和实施例1的描述,本发明实施例还提供一种终端,如图10所示,包括接收单元11、下载单元12和安装单元13,其中,接收单元11用于接收DM服务器下发的软件组件包或该软件组件包的下载地址和指示下载的命令,该软件组件包包含了一个以上软件组件;下载单元12用于若接收到的是所述下载地址和指示下载的命令,则利用所述下载地址将所述软件组件包下载;安装单元13用于将获得的该软件组件包安装在本地,并在Deployed子树下生成所述软件组件对应的管理节点及其子节点。
若所述指示下载的命令中包含的下载方式为间接下载,且利用DownLoad指令下载,则当所述软件组件包下载之后,且安装之前,或,若当指示下载的命令中包含的下载方式为间接下载,且利用DownLoadInstall或DownLoadInstallInactive指令下载,则若下载成功且安装失败,则所述终端还包括第一生成单元14和第一权限分配单元15,其中,第一生成单元14用于在Delivered子树下生成所述软件组件包对应的管理节点;第一权限分配单元15用于为所述管理节点和该管理节点的子节点分配访问控制权限。
在Delivered子树下生成所述软件组件包对应的管理节点之前,所述终端还包括第一判断单元16,用于判断下载的所述软件组件包的标识是否与Delivered子树下已有的一管理节点对应的软件组件包的标识相同,若相同,则将Delivered子树下该管理节点的信息修改为下载的所述软件组件包的信息,否则,在Delivered子树下生成下载的该软件组件包对应的管理节点。
所述接收单元11还可以用于在接收信息之前,在Download子树中为所述软件组件包生成管理节点;则所述第一权限分配单元15还用于将Download子树下生成的所述管理节点的访问控制权限,作为Delivered子树下生成的所述管理节点的访问控制权限,或将Delivered子树下生成的所述管理节点的访问控制权限设置为空,进而继承其父节点的访问控制权限,或为Delivered子树下生成的所述管理节点设定特定的访问控制权限,或将Download子树下生成的所述管理节点的访问控制权限和Delivered子树下生成的所述管理节点的父节点的访问控制权限进行合并,将合并后的访问控制权限作为Delivered子树下生成的所述管理节点的访问控制权限。
所述接收单元11还用于在接收信息之前,在Download子树中为所述软件组件包生成管理节点;则所述第一权限分配单元15还用于若判断下载的所述软件组件包与Delivered子树下已有的一管理节点对应的软件组件包相同,将Download子树下为该软件组件包生成的管理节点的访问控制权限与Delivered子树中已有的该管理节点的访问控制权限之和,作为Delivered子树下该管理节点的访问控制权限。
所述第一权限分配单元15还用于将Delivered子树下生成的所述管理节点下的子节点继承该管理节点的权限,或,将Download子树下的可执行节点的访问控制权限作为Delivered子树下生成的所述管理节点下可执行节点的访问控制权限。
所述下载单元12将软件组件包下载之后,且所述安装单元13安装所述软件组件包之前,所述接收单元11还用于接收DM服务器下发的DM命令;所述终端还包括第二判断单元17,用于判断所述DM服务器的权限是否满足Delivered子树下生成的该DM命令所操作的节点的访问控制权限,若满足,则对该节点执行所述DM命令。
所述接收单元11还用于接收所述DM服务器下发的参数;所述安装单元13还用于根据所述参数将下载的所述软件组件包安装在本地。
在所述安装单元13执行安装操作之后,且在Deployed子树下生成所述软件组件对应的管理节点之前,所述终端还包括第三判断单元18,用于判断所述软件组件包中一软件组件是否与Deployed子树下已有的一管理节点对应的软件组件相同,若相同,则将Deployed子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息,否则,在Deployed子树下生成所述软件组件包中软件组件对应的管理节点。
所述接收单元11还用于在接收到所述DM服务器通过DM命令直接下发的软件组件包之前,根据DM服务器的指示在Delivered子树下生成所述软件组件包对应的管理节点,且该管理节点中包含软件组件信息,则所述终端还包括第二生成单元19,用于将Delivered子树下管理节点中包含的所述软件组件信息保存到Deployed子树中。
在Deployed子树下生成所述软件组件对应的管理节点之后,所述终端还包括第二权限分配单元20,用于为所述管理节点和该管理节点的子节点分配访问控制权限。
所述第二权限分配单元20还用于将Delivered或Download子树下生成的所述软件组件包对应的所述管理节点的访问控制权限,作为Deployed子树下生成的所述管理节点的控制权限,或将Deployed子树下生成的所述管理节点的访问控制权限设置为空,进而继承其父节点的访问控制权限,或为Deployed子树下生成的所述管理节点设定特定的访问控制权限,或将Delivered或Download子树下生成的所述管理节点的访问控制权限和Deployed子树下生成的所述管理节点的父节点的访问控制权限进行合并,将合并后的访问控制权限作为Deployed子树下生成的所述管理节点的访问控制权限。
所述第二权限分配单元20还用于将Deployed子树下生成的所述管理节点下的子节点继承该管理节点的权限,或,将Delivered子树或Download子树下的可执行节点的访问控制权限,作为Deployed子树下生成的所述管理节点下可执行节点的访问管理权限。
当在Deployed子树下生成所述软件组件对应的管理节点之后,且DM服务器对Deployed子树下生成所述软件组件对应的管理节点进行操作之前,所述接收单元11还用于接收DM服务器下发的DM命令;所述终端还包括第四判断单元21,用于判断该DM服务器的权限是否满足Deployed子树下生成的该DM命令所操作的节点的访问控制权限,若满足,则对该节点执行所述DM命令。
若所述指示下载的命令中包含的间接下载的指令为Download,当下载完成之后,且安装所述软件组件包之前,所述终端包括上报单元22,用于将下载响应消息上报给DM服务器,所述下载响应消息包括:Delivered子树下生成的所述管理节点的统一资源标识URI;当在软件组件管理对象SCOMO中的Deployed子树下生成所述软件组件对应的管理节点之后,所述上报单元22还用于将安装响应消息上报给DM服务器,所述安装响应消息包括:Deployed子树中生成所述管理节点的URI。
所述下载响应消息和所述安装响应消息的上报方式为:同步上报方式或异步上报方式。
若利用所述同步上报方式上报,则所述上报单元22还用于在Status命令的Item元素的Target子元素中携带下载响应消息或安装响应消息中的URI。
所述下载响应消息还包括:所述软件组件包的名称和/或标识;所述安装响应消息还包括:所述软件组件的名称和/或标识。
若下载方式为直接下载或间接下载中利用DownLoad指令下载,则在Deployed子树下生成所述软件组件对应的管理节点之后,所述终端还包括设置单元23,用于将所述软件组件包的状态设置为已安装状态。
本发明实施例终端的工作步骤如图11所示,主要包括:首先,终端接收DM服务器下发的软件组件包或该软件组件包的下载地址和指示下载的命令,该软件组件包包含了一个以上软件组件;然后,若接收到的是所述下载地址和指示下载的命令,则利用所述下载地址下载所述软件组件包;最后,将获得的该软件组件包安装在本地,并在Deployed子树下生成所述软件组件对应的管理节点及其子节点。
为了进一步提高终端的安全性,需要为终端生成的管理节点和该节点的子节点分配访问管理权限,在下载过程中,具体到操作步骤为:若所述指示下载的命令中包含的下载方式为间接下载,且利用DownLoad指令下载,则当所述软件组件包下载之后,且将安装之前,或,若当指示下载的命令中包含的下载方式为间接下载,且利用DownLoadInstall或DownLoadInstallInactive指令下载,则若下载成功且安装失败,终端在软件组件管理对象SCOMO中的Delivered子树下生成所述软件组件包对应的管理节点,并为该管理节点和该管理节点的每一子节点分配访问控制权限。
在Delivered子树下生成所述软件组件包对应的管理节点之前,为了避免数据冗余和实现软件组件的升级,所述终端还要判断下载的所述软件组件包的标识是否与Delivered子树下已有的一管理节点对应的软件组件包的标识相同,若相同,则将Delivered子树下该管理节点的信息修改为下载的所述软件组件包的信息,否则,在Delivered子树下生成下载的该软件组件包对应的管理节点。
在终端接收DM服务器下发的信息之前,已在Download子树中为所述软件组件包生成管理节点,则终端分配访问控制权限的方法之一为:将Download子树下生成的所述管理节点的访问控制权限,作为Delivered子树下生成的所述管理节点的访问控制权限。若判断下载的所述软件组件包与Delivered子树下已有的一管理节点对应的软件组件包相同,则终端分配访问控制权限的方法之二为:将Download子树下为该软件组件包生成的管理节点的访问控制权限与Delivered子树中已有的该管理节点的访问控制权限之和,作为Delivered子树下该管理节点的访问控制权限。
终端为管理节点分配访问控制权限之外,还要为该节点下的子节点分配访问控制权限,该分配方法可以为:将Delivered子树下生成的所述管理节点下的子节点继承该管理节点的权限,或,将Download子树下的可执行节点的访问控制权限作为Delivered子树下生成的所述管理节点下可执行节点的访问控制权限。
终端将软件组件包下载之后,且所述安装所述软件组件包之前,还要接收DM服务器下发的DM命令;当接收到该DM命令时,为了保证安全性,需要判断所述DM服务器的权限是否满足Delivered子树下生成的该DM命令所操作的节点的访问控制权限,若满足,则对该节点执行所述DM命令。
在安装过程需要参数时,终端还需要接收所述DM服务器下发的参数,并根据所述参数将下载的所述软件组件包安装在本地。
在终端执行安装操作之后,且在Deployed子树下生成所述软件组件对应的管理节点之前,还需要判断所述软件组件包中一软件组件是否与Deployed子树下已有的一管理节点对应的软件组件相同,若相同,则将Deployed子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息,否则,在Deployed子树下生成所述软件组件包中软件组件对应的管理节点。
终端在Deployed子树下生成所述软件组件包中软件组件对应的管理节点的方法可以有多种,例如:在接收到所述DM服务器通过DM命令直接下发的软件组件包之前,终端根据DM服务器的指示在Delivered子树下生成所述软件组件包对应的管理节点,且该管理节点中包含软件组件信息,并将Delivered子树下管理节点中包含的所述软件组件信息保存到Deployed子树中。
当然,终端在Deployed子树下生成所述软件组件包中软件组件对应的管理节点后,还需要为所述管理节点和该管理节点的子节点分配访问控制权限。
分配控制权限的方法包括但不限于:将Delivered或Download子树下生成的所述软件组件包对应的所述管理节点的访问控制权限,作为Deployed子树下生成的所述管理节点的控制权限。将Deployed子树下生成的所述管理节点下的子节点继承该管理节点的权限,或,将Delivered子树或Download子树下的可执行节点的访问控制权限,作为Deployed子树下生成的所述管理节点下可执行节点的访问管理权限。
当终端在Deployed子树下生成所述软件组件对应的管理节点之后,且DM服务器对Deployed子树下生成所述软件组件对应的管理节点进行操作之前,若终端接收到DM服务器下发的DM命令后,还需要判断该DM服务器的权限是否满足Deployed子树下生成的该DM命令所操作的节点的访问控制权限,若满足,则对该节点执行所述DM命令。
若所述指示下载的命令中包含的间接下载的指令为Download,当下载完成之后,且安装所述软件组件包之前,所述终端要将下载响应消息上报给DM服务器,所述下载响应消息包括:Delivered子树下生成所述管理节点的统一资源标识URI;当在软件组件管理对象SCOMO中的Deployed子树下生成所述软件组件对应的管理节点之后,所述终端还要将安装响应消息上报给DM服务器,所述安装响应消息包括:Deployed子树中生成所述管理节点的URI。
所述下载响应消息和所述安装响应消息的上报方式为:同步上报方式或异步上报方式。
若利用所述同步上报方式上报,则所述终端可以利用Status命令的Item元素的Target子元素中携带下载响应消息或安装响应消息中的URI。
当然,所述下载响应消息还包括:所述软件组件包的名称和/或标识;所述安装响应消息还包括:所述软件组件的名称和/或标识。
若下载方式为直接下载或间接下载中利用DownLoad指令下载,则在Deployed子树下生成所述软件组件对应的管理节点之后,所述终端还将所述软件组件包的状态设置为已安装状态。
本发明实施例还提供一种DM服务器,如图12所示,该DM服务器包括下发单元31,用于将软件组件包通过DM命令直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个以上软件组件。
该DM服务器还包括接收单元32,用于接收终端上报的消息,该消息中包含Delivered子树下生成所述管理节点的统一资源标识URI、Deployed子树中生成所述管理节点的URI、软件组件包的名称、标识、软件组件的名称和标识中的一个或多个。
所述下发单元31还用于在终端安装所述软件组件包之前,将参数下发给所述终端。
所述下发单元31包括第一指示单元33和发送单元34,其中,第一指示单元33用于于若下载方式为间接下载,则所述第一指示单元指示终端在Download子树下为所述软件组件包生成管理节点,并为该管理节点增加一个子节点,或,若下载方式为直接下载,则所述第一指示单元指示终端在Delivered子树中为所述软件组件包生成管理节点,并为该管理节点增加一个子节点;发送单元34用于将所述参数下发给Download子树或Delivered子树下增加的所述子节点。
所述下发单元31还用于通过DM命令将所述参数下发给终端,该DM命令用于指示终端执行安装操作。
所述下发单元31将软件组件包通过DM命令直接下发给终端之前,所述DM服务器还包括第二指示单元35,用于指示终端在Delivered子树下生成所述软件组件包对应的管理节点,且该管理节点中包含软件组件信息。
本发明实施例中DM服务器的工作流程如图13所示,主要包括:DM服务器将软件组件包通过DM命令直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个以上软件组件。
另外,DM服务器还接收终端上报的消息,该消息中包含Delivered子树下生成所述管理节点的统一资源标识URI、Deployed子树中生成所述管理节点的URI、软件组件包的名称、标识、软件组件的名称和标识中的一个或多个。
在终端安装所述软件组件包之前,DM服务器还可以将参数下发给所述终端。该下发的方法可以包括:
1、若下载方式为间接下载,则所述DM服务器指示终端在Download子树下为所述软件组件包生成管理节点,并为该管理节点增加一个子节点,或,若下载方式为直接下载,则所述第一指示单元指示终端在Delivered子树中为所述软件组件包生成管理节点,并为该管理节点增加一个子节点;然后,将所述参数下发给Download子树或Delivered子树下增加的所述子节点。
2、通过DM命令将所述参数下发给终端,该DM命令用于指示终端执行安装操作。
所述DM服务器将软件组件包通过DM命令直接下发给终端之前,所述DM服务器还指示终端在Delivered子树下生成所述软件组件包对应的管理节点,且该管理节点中包含软件组件信息。
在实施例1中记载的特征可以是并列的,如在不同的下载过程中,终端接收下发的参数的技术特征、为终端生成的管理节点和子节点分配访问管理权限的技术特征、将管理节点中NAME或ID、目标管理节点的URI通过同步或异步方式上报给DM服务器的技术特征、判断是否存在相同软件组件或软件组件包对应的管理节点的技术特征、在下载成功安装失败的处理的技术特征和在软件组件包对应的管理节点中包含软件组件信息的技术特征等,这些特征之间可以并列或结合应用,具体结合的可能性有多种,此处不一一赘述,只分别用两个实施例表明可以任意将特征结合,实施例2和实施例3为这些特征之间结合应用的事例。
实施例2为采用间接下载方法中,利用DownLoadInstall指令来实现下载和安装。在本实施例中设定DM服务器为ServerA,软件组件包名为ascendo,该软件组件包的标识为PkgID_2,包含的三个软件组件的名称为:ascendo_1、ascendo 2和ascendo_3,标识分别为ComID_1、ComID_2和ComID_3,下载过程成功但是安装过程失败,其步骤流程示意图如图14所示,该步骤主要包括:
步骤1401:终端下载软件组件包,并安装。
DM服务器ServerA指示终端在SCOMO的Download节点下生成软件组件包对应的Download子树中的管理节点,并为该管理节点赋值,其中包括软件组件的名称,版本,下载地址,参数等,如图15所示。当然,参数的下发过程可以与实施例1中记载的方式相同,也可以有其他方式。
在Download子树中生成该软件组件包对应的管理节点后,DM服务器会为该管理节点和子节点分配访问管理权限,例如,设定Download/Pkg2管理节点的访问管理权限为Get=*&Add=ServerA&Replace=ServerA。Download/Pkg2/OperationsDownloadInstall子节点的访问管理权限值为Get=*&Exec=ServerA,其它子节点都继承其父节点的访问管理权限。
然后,ServerA向终端发送Exec指令,在Target元素中指示执行下载业务的可执行节点为Download/Pkg2/Operations/DownloadInstall,具体操作可以根据以下程序来实现:
<Exec>
<CmdID>4</CmdID>
<Correlator>abc123</Correlator>
<Item>
    <Target>
      <LocURI>./SCOMO/Download/Pkg2/Operations/DownloadInstall</LocURI>
    </Target>
</Item>
</Exec>
终端将软件组件包下载后,将直接进行安装,设定由于某种原因安装失败,此时,软件组件包保留在终端中。
步骤1402:在Delivered子树下生成所述软件组件包对应的管理节点,并为该管理节点和子节点分配访问管理权限。
在Delivered子树下生成该软件组件包对应的管理信息前要先确定Delivered子树下是否有与下载的软件组件包同标识的管理节点,若无,则生成Delivered/Pkg2管理节点,并把Download/Pkg2的具体信息如名称,版本信息,参数等,保存到新生成的Delivered/Pkg2管理节点中,如图16所示;否则,将原Delivered/Pkg2的信息修改为当前软件组件包的信息。同样,不论是否有同名的情况,终端都将为Delivered/Pkg2管理节点和子节点分配访问管理权限,其分配过程可以与实施例1相同。
步骤1403:将Delivered/Pkg2管理节点的信息上报给ServerA。
生成了Delivered/Pkg2管理节点后,通过Alert命令向DM服务器上报该管理节点的URI和Delivered/Pkg2/NAME信息,如下述程序所示:
<Alert>
   <CmdID>2</CmdID>
   <Data>1226</Data><!--Generic Alert-->
   <Correlator>abc123</Correlator>
   <Item>
        <Source><LocURI>./SCOMO/Download/Pkg2/Operations/DownloadInst
       all</LocURI></Source>
        <Target><LocURI>./SCOMO/Inventory/Delivered/Pkg2</LocURI></Tar
get>
       <Meta>
        <Type xmlns=″syncml:metinf″>
            org.openmobilealliance.softwarecomponent.OperationComplete
        </Type>
       </Meta>
   </Item>
</Alert>
服务器在接到终端上报的执行结果及携带的URI信息后,可以后续在Delivered子树上直接发起执行Install操作,省去了重新下载的过程,减少了网络和终端的负担。
与前述的终端一样,实施例2也可以对应一种终端和DM服务器,该终端和DM服务器利用实施例2中描述的技术手段,能够实现实施例2的步骤。
实施例3为DM服务器ServerA选用直接下载方法,该实施例中,软件组件包的名称为ascendo,标识为PkgID_3,软件组件名为ascendo_1、ascendo_2和ascendo_3,标识分别为:ComID_1、ComID_2和ComID_3,当下载完成后,利用Install可执行节点执行安装业务,主要流程见图17。
步骤1701:DM服务器直接将软件组件包下发到Delivered/Pkg3/Data节点。
服务器ServerA在Delivered子树下生成软件组件包对应的Pkg3管理节点,并对该管理节点赋值,具体如软件组件名称,版本信息,参数等,如图18所示,DM服务器为该管理节点分配访问管理权限,如Delivered/Pkg3的访问管理权限为Get=*&Add=*&Replace=ServerA。Delivered/Pkg3/Operations的可执行子节点的访问管理权限为Get=*&Exec=ServerA。
步骤1702:DM服务器通过Inventory/Delivered/Pkg3/Operations/Install可执行节点指示终端执行安装业务,具体实现如以下程序所示:
<Exec>
<CmdID>5</CmdID>
<Correlator>abc123</Correlator>
<Item>
   <Target>
      <LocURI>./SCOMO/Inventory/Delivered/Pkg3/Operations/Install</LocURI>
   </Target>
</Item>
</Exec>
终端在接收到所述安装指令后,对DM服务器的权限进行判断,若判断结果为该DM服务器的权限达到Inventory/Delivered/Pkg3/Operations/Install的访问管理权限(这里指具有Exec权限),则指示软件组件包的安装程序进行安装,同时给服务器返回Exec的状态码202,表示终端已成功接收数据并在处理中,若安装过程中需要参数,则可以从Inventory/Delivered/Pkg3/InstallPara中获得。
步骤1703:判断Deployed子树下是否有与该软件组件相同的软件组件的管理节点。
在本实施例中以ascendo_1为例,设定Deployed子树下没有软件组件名(Name节点)为ascendo_1的管理节点,则终端在Deployed子树下为ascendo_1生成管理节点以及其子节点,并为该管理节点以及其子节点赋值和分配访问管理权限,如图19所示。该分配访问管理权限的过程也可以与实施例1相同,例如:将./SCOMO/Inventory/Deployed/Component1节点的访问管理权限设置为与./SCOMO/Inventory/Delivered/Pkg3节点相同的访问管理权限,即为Get=*&Add=ServerA&Replace=ServerA。将./SCOMO/Inventory/Deployed/Component1/Operations的可执行可执行子节点的访问管理权限设置成与./SCOMO/Inventory/Delivered/Pkg3/Operations/Install节点的访问管理权限相同值,即为Get=*&Exec=ServerA。
步骤1704:向DM服务器上报安装结果,即Deployed/Component1中的信息,包括Deployed/Component1节点的URI,还包括NAME和/或ID。
安装响应消息的上报可以使用Generic Alert命令,其中上报的结果代码放在Generic Alert命令的Data元素中,所执行安装指令的URI携带在Source元素中,组件安装后的Deployed子树路径信息携带在Target元素中。软件组件名称信息和/或ID携带在Alert中MetaInf的可扩展元素EMI中,操作如以下程序所示:
<Alert>
   <CmdID>6</CmdID>
   <Data>1226</Data><!--Generic Alert-->
   <Correlator>abc123</Correlator>
<Item>
 <Source><LocURI>./SCOMO/Inventory/Delivered/Pkg3/Operations/Install
  </Source>
    <Target><LocURI>./SCOMO/Inventory/Deployed/Component1</LocURI>
</Target>
       <Meta>
         <Typexmlns=″syncml:metinf″>
              org.openmobilealliance.softwarecomponent.OperationComplete
        </Type>
        <Format xmlns=″syncml:metinf″>text/plain</Format>
        <Mark xmlns=″syncml:metinf″>critical</Mark>
        <EMI xmlns=″syncml:metinf″>ComID_1</EMI><!--Deployed子树
上软件组件的标识(ID)-->
      </Meta>
      <Data>200</Data><!--Result Code-->
   </Item>
</Alert>
EMI中要上报的信息可以为Name和/或ID。
与前述记载的终端一样,实施例3也可以对应一种终端和DM服务器,该终端利用实施例3中描述的技术手段,能够实现实施例3的步骤。
通过对上述实施例1、2、3、系统和终端的描述,可以获得以下优点:
1、由于可以在软件组件安装过程中支持参数,使得用户可以利用设备生成更为灵活的软件组件包,不用为每次安装生成特定的软件组件包,减少了服务器的压力,同时可以在软件包不变的情况下进行个性化的安装,使用户体验较好。
2、由于DM服务器只为自身指定生成的管理节点分配访问控制权限,而后续由终端生成的管理节点将无法保证设置访问控制权限或无法保证设置合理的访问控制权限而降低安全性的问题,因此,通过设定由终端生成的管理节点及其子节点的访问控制权限,使得只能由指定的设备对数据进行管理,提高了可靠性。
3、终端将软件组件包名称、软件组件名称和URI消息上报给DM服务器,使得DM服务器能够更加准确地识别软件组件,方便DM服务器实现后续的操作。
4、终端在生成管理节点时,要判断子树中是否已经存在同名的管理节点,减少了终端中软件组件的冗余,实现了终端中软件组件的更新、升级,保证了终端中的软件组件是最新版本。
5、对下载成功但安装失败的软件组件包进行处理,使得可以在以后对该软件组件包重新进行安装,减少了重新安装还需要重新下载的麻烦,减小了网络和服务器压力。
6、在生成软件组件包对应的管理节点时,该管理节点中包含了软件组件的信息,为后续安装成功后,生成软件组件对应的管理节点提供了方便。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (25)

1.一种安装软件组件的方法,其特征在于,该方法包括:
设备管理服务器将软件组件包直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个或多个软件组件;
若所述终端接收到的是所述下载地址和指示下载的命令,则利用所述下载地址下载所述软件组件包;
所述终端将获得的该软件组件包安装在本地,并在软件组件管理对象中的已安装子树下生成所述软件组件对应的管理节点及其子节点,其中,在已安装子树下生成所述软件组件对应的管理节点的步骤包括:
所述终端获取一所述软件组件对应的标识,并将该标识设置为所述软件组件对应的管理节点的软件组件标识子节点的值,所述软件组件对应的标识由网络侧提供,并作为所述软件组件包的一部分下发给终端,或独立于所述软件组件包下发给终端。
2.如权利要求1所述的方法,其特征在于,在软件组件包安装之后,且在已安装子树下生成所述软件组件对应的管理节点之前,还包括步骤:
判断所述软件组件包中一软件组件是否与已安装子树下已有的一管理节点对应的软件组件相同,若相同,则将已安装子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息,否则,在已安装子树下生成所述软件组件包中软件组件对应的管理节点。
3.如权利要求2所述的方法,其特征在于,若判断结果为软件组件相同,则将已安装子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息的步骤包括:
在所述管理节点下保留已有的关联信息,并在该管理节点下添加新的关联信息,所述新的关联信息为:所述软件组件包和该包中所述管理节点对应的软件组件的关联关系。
4.如权利要求2所述的方法,其特征在于,判断所述软件组件包中一软件组件是否与已安装子树下已有的一管理节点对应的软件组件相同的步骤包括:
若软件组件的标识或名称相同,则表示两个软件组件相同;否则,表示两个软件组件不相同。
5.如权利要求4所述的方法,其特征在于,若判断所述软件组件包中一软件组件与已安装子树下已有的一管理节点对应的软件组件相同,则将已安装子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息之后还包括步骤:
将已下发子树下或下载子树下为该软件组件包生成的管理节点的访问控制权限与已安装子树中已有的该管理节点的访问控制权限之和,作为已安装子树下该管理节点的访问控制权限。
6.如权利要求1所述的方法,其特征在于,所述设备管理服务器将软件组件包通过设备管理命令直接下发给终端之前,指示终端在已下发子树下生成所述软件组件包对应的管理节点,且该管理节点下包含软件组件信息;
则在已安装子树中生成所述软件组件对应的管理节点的步骤包括:
将已下发子树下管理节点下包含的所述软件组件信息保存到已安装子树中。
7.如权利要求1所述的方法,其特征在于,当在软件组件管理对象中的已安装子树下生成所述软件组件对应的管理节点之后还包括步骤:
终端将安装响应消息上报给设备管理服务器,所述安装响应消息包括:已安装子树中生成的所述管理节点的统一资源标识,
若终端还在软件组件管理对象中的已下发子树下生成所述软件组件包对应的管理节点,则所述安装响应消息还包括:已下发子树下生成的所述管理节点的统一资源标识;
若所述指示下载的命令中包含的间接下载的指令为下载,当下载完成之后,且安装所述软件组件包之前,或,若所述指示下载的命令中包含的间接下载的指令为下载并安装或下载安装未激活,当下载完成,且安装失败时,包括步骤:
终端将下载响应消息上报给设备管理服务器,所述下载响应消息包括:已下发子树下生成的所述管理节点的统一资源标识。
8.如权利要求7所述的方法,其特征在于,所述下载响应消息和所述安装响应消息的上报方式为:同步上报方式或异步上报方式。
9.如权利要求8所述的方法,其特征在于,若利用所述同步上报方式上报,则在Status命令的Item元素中携带下载响应消息或安装响应消息中的统一资源标识。
10.如权利要求7所述的方法,其特征在于,所述下载响应消息还包括:所述软件组件包的名称和/或标识;
所述安装响应消息还包括:所述软件组件的名称和/或标识。
11.如权利要求1所述的方法,其特征在于,包括步骤:
在所述软件组件管理对象中为所述软件组件包生成管理节点,并为该管理节点增加一个子节点之后,所述终端在所述节点上更新所述软件组件包的状态;
则所述终端更新所述软件组件包状态的步骤包括:
所述终端在所述软件组件包的状态发生变化时更新所述节点上记录的所述软件组件包的状态值。
12.一种安装软件组件的系统,其特征在于,该系统包括设备管理服务器和终端,其中,
所述设备管理服务器,用于将软件组件包直接下发给终端,或将软件组件包的下载地址和指示下载的命令下发给终端,该软件组件包包含了一个以上软件组件;
所述终端,用于若接收到的是所述下载地址和指示下载的命令,则利用所述下载地址将所述软件组件包下载,将获得的该软件组件包安装在本地,并在已安装子树下生成所述软件组件对应的管理节点及其子节点;其中,在已安装子树下生成所述软件组件对应的管理节点的步骤包括:
获取一所述软件组件对应的标识,并将该标识设置为所述软件组件对应的管理节点的软件组件标识子节点的值,所述软件组件对应的标识由网络侧提供,并作为所述软件组件包的一部分下发给终端,或独立于所述软件组件包下发给终端。
13.如权利要求12所述的系统,其特征在于,
所述终端,还用于在软件组件包安装之后,且在已安装子树下生成所述软件组件对应的管理节点之前,判断所述软件组件包中一软件组件是否与已安装子树下已有的一管理节点对应的软件组件相同,若相同,则将已安装子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息,否则,在已安装子树下生成所述软件组件包中软件组件对应的管理节点。
14.如权利要求12所述的系统,其特征在于,所述设备管理服务器,还用于将软件组件包通过设备管理命令直接下发给终端之前,指示终端在已下发子树下生成所述软件组件包对应的管理节点,且该管理节点中包含软件组件信息,则
所述终端,还用于将已下发子树下管理节点中包含的所述软件组件信息保存到已安装子树中。
15.如权利要求12所述的系统,其特征在于,
所述终端,还用于当在已安装子树下生成所述软件组件对应的管理节点之后,将安装响应消息上报给设备管理服务器,所述安装响应消息包括:已安装子树中生成的所述管理节点的统一资源标识;
若所述指示下载的命令中包含的间接下载的指令为下载,当下载完成之后,且安装所述软件组件包之前,或,若所述指示下载的命令中包含的间接下载的指令为下载并安装或下载安装未激活,当下载完成,且安装失败时,将安装响应消息上报给设备管理服务器,所述安装响应消息包括:已安装子树中生成的所述管理节点的统一资源标识。
16.如权利要求15所述的系统,其特征在于,所述下载响应消息和所述安装响应消息的上报方式为:同步上报方式或异步上报方式。
17.如权利要求15所述的系统,其特征在于,所述下载响应消息还包括:所述软件组件包的名称和/或标识;
所述安装响应消息还包括:所述软件组件的名称和/或标识。
18.如权利要求12所述的系统,其特征在于,若下载方式为直接下载或间接下载中利用下载指令下载,则在已安装子树下生成所述软件组件对应的管理节点之后,所述终端,还用于将所述软件组件包的状态设置为已安装状态。
19.一种终端,其特征在于,该终端包括:
接收单元,用于接收设备管理服务器下发的软件组件包或该软件组件包的下载地址和指示下载的命令,该软件组件包包含了一个以上软件组件;
下载单元,用于若接收到的是所述下载地址和指示下载的命令,则利用所述下载地址将所述软件组件包下载;
安装单元,用于将获得的该软件组件包安装在本地,并在已安装子树下生成所述软件组件对应的管理节点及其子节点,其中,所述安装单元具体还用于获取一所述软件组件对应的标识,并将该标识设置为所述软件组件对应的管理节点的软件组件标识子节点的值,所述软件组件对应的标识由网络侧提供,并作为所述软件组件包的一部分下发给终端,或独立于所述软件组件包下发给终端。
20.如权利要求19所述的终端,其特征在于,在所述安装单元执行安装操作之后,且在已安装子树下生成所述软件组件对应的管理节点之前,所述终端还包括:
第三判断单元,用于判断所述软件组件包中一软件组件是否与已安装子树下已有的一管理节点对应的软件组件相同,若相同,则将已安装子树下该管理节点的信息修改为所述软件组件包中该软件组件的信息,否则,在已安装子树下生成所述软件组件包中软件组件对应的管理节点。
21.如权利要求19所述的终端,其特征在于,所述接收单元,还用于在接收到所述设备管理服务器通过设备管理命令直接下发的软件组件包之前,根据设备管理服务器的指示在已下发子树下生成所述软件组件包对应的管理节点,且该管理节点中包含软件组件信息,则所述终端还包括:
第二生成单元,用于将已下发子树下管理节点中包含的所述软件组件信息保存到已安装子树中。
22.如权利要求19所述的终端,其特征在于,当在软件组件管理对象中的已安装子树下生成所述软件组件对应的管理节点之后,所述终端包括上报单元,用于将安装响应消息上报给设备管理服务器,所述安装响应消息包括:已安装子树中生成的所述管理节点的统一资源标识;
若所述指示下载的命令中包含的间接下载的指令为下载,当下载完成之后,且安装所述软件组件包之前,或,若所述指示下载的命令中包含的间接下载的指令为下载并安装或下载安装未激活,当下载完成,且安装失败时,还用于将下载响应消息上报给设备管理服务器,所述下载响应消息包括:已下发子树下生成的所述管理节点的统一资源标识。
23.如权利要求22所述的终端,其特征在于,所述下载响应消息和所述安装响应消息的上报方式为:同步上报方式或异步上报方式。
24.如权利要求22所述的终端,其特征在于,所述下载响应消息还包括:所述软件组件包的名称和/或标识;所述安装响应消息还包括:所述软件组件的名称和/或标识。
25.如权利要求19所述的终端,其特征在于,若下载方式为直接下载或间接下载中利用下载指令下载,则在已安装子树下生成所述软件组件对应的管理节点之后,所述终端还包括:
设置单元,用于将所述软件组件包的状态设置为已安装状态。
CN2010105826791A 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置 Active CN102006334B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105826791A CN102006334B (zh) 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN200710111788 2007-06-11
CN200710111788.3 2007-06-11
CN200710123436.X 2007-06-22
CN200710123436 2007-06-22
CN2010105826791A CN102006334B (zh) 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2007101301487A Division CN101325509B (zh) 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置

Publications (2)

Publication Number Publication Date
CN102006334A true CN102006334A (zh) 2011-04-06
CN102006334B CN102006334B (zh) 2013-01-02

Family

ID=40983550

Family Applications (3)

Application Number Title Priority Date Filing Date
CN2007101301487A Active CN101325509B (zh) 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置
CN2010105826791A Active CN102006334B (zh) 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置
CN2010105811226A Active CN102006333B (zh) 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2007101301487A Active CN101325509B (zh) 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2010105811226A Active CN102006333B (zh) 2007-06-11 2007-07-20 安装软件组件的方法、系统及装置

Country Status (4)

Country Link
US (6) US8261262B2 (zh)
EP (1) EP3002930B1 (zh)
CN (3) CN101325509B (zh)
ES (1) ES2768703T3 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399812A (zh) * 2020-04-07 2020-07-10 杭州指令集智能科技有限公司 组件构建方法、装置、开发框架及设备

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325509B (zh) 2007-06-11 2011-04-06 华为技术有限公司 安装软件组件的方法、系统及装置
US20100272080A1 (en) * 2009-04-24 2010-10-28 Eetay Natan Techniques for generating proof of WiMAX activation and safely handling a disconnect during a WiMAX provisioning session
CN101902762B (zh) * 2009-05-27 2013-06-05 上海华为技术有限公司 下载控制方法及其系统,以及相关设备
WO2011000131A1 (zh) * 2009-07-01 2011-01-06 中兴通讯股份有限公司 适用于开放移动联盟设备管理协议的文件下载方法及系统
CN101605058B (zh) * 2009-07-08 2012-06-06 中兴通讯股份有限公司 网络安全管理方法和系统
CN101996074B (zh) * 2009-08-20 2014-12-24 华为终端有限公司 使用软件组件管理对象管理软件的方法及装置
US9026582B2 (en) * 2010-03-23 2015-05-05 Htc Corporation Device management methods and related apparatus for enhancing applicability of status messages in response to commands
US10051074B2 (en) * 2010-03-29 2018-08-14 Samsung Electronics Co, Ltd. Techniques for managing devices not directly accessible to device management server
US9009696B2 (en) * 2010-04-27 2015-04-14 Red Hat, Inc. Generating encoded identifications of selected subsets of installed software packages on a client machine
KR101732186B1 (ko) * 2010-08-19 2017-05-02 삼성전자주식회사 단말 관리 패키지를 제공하는 장치, 방법 및 상기 단말 관리 패키지를 제공받는 방법
CN102571390B (zh) * 2010-12-10 2015-07-08 华为终端有限公司 设备管理方法、设备和系统
CN102111408B (zh) * 2010-12-30 2013-10-30 深圳市同洲电子股份有限公司 一种基于设备管理dm的业务与数据管理的方法和系统
CN102136942B (zh) 2010-12-31 2014-06-25 华为技术有限公司 软件的下载方法和装置
US9383985B2 (en) * 2011-06-10 2016-07-05 Unisys Corporation Automated modification of pre-generated MSI packaged applications
US10264058B1 (en) 2011-06-30 2019-04-16 Emc Corporation Defining virtual application templates
US10042657B1 (en) * 2011-06-30 2018-08-07 Emc Corporation Provisioning virtual applciations from virtual application templates
US8805955B2 (en) * 2011-07-18 2014-08-12 Red Hat, Inc. Proactive caching of remote actions
US9118686B2 (en) 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US20130067447A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation State Machine Based Package Installation
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US20130067459A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Order-Independent Deployment Collections with Dependency Package Identifiers
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
CN102316439B (zh) * 2011-09-09 2017-11-24 中兴通讯股份有限公司 一种实现用户侧设备的固件升级方法和系统
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US9891937B2 (en) * 2012-01-30 2018-02-13 Lg Electronics Inc. Method for managing virtual machine and device therefor
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9455876B1 (en) * 2013-02-01 2016-09-27 Ingram Micro Inc. Method and standard for integrating applications into a cloud
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
US10009388B2 (en) * 2013-09-17 2018-06-26 Samsung Electronics Co., Ltd. Method and system for establishing integrated group ISC session based on content interest
US9442710B2 (en) * 2013-12-27 2016-09-13 International Business Machines Corporation Method for using shared installation session environment to duplicate installs
JP2016071422A (ja) * 2014-09-26 2016-05-09 ブラザー工業株式会社 ソフトウエア提供システム及びインストールプログラム
US10389850B2 (en) 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
US10152516B2 (en) 2015-05-21 2018-12-11 International Business Machines Corporation Managing staleness latency among application bundles
US9965262B2 (en) * 2015-05-21 2018-05-08 International Business Machines Corporation Application bundle pulling
US10530660B2 (en) 2015-05-21 2020-01-07 International Business Machines Corporation Application bundle preloading
US10389794B2 (en) 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
CN105138356A (zh) * 2015-08-11 2015-12-09 大唐移动通信设备有限公司 通信设备软件升级方法及操作维护装置
US9665415B2 (en) * 2015-09-26 2017-05-30 Intel Corporation Low-latency internode communication
US10320897B2 (en) 2015-12-15 2019-06-11 Microsoft Technology Licensing, Llc Automatic system response to external field-replaceable unit (FRU) process
CN107229484B (zh) * 2016-03-23 2021-05-04 中兴通讯股份有限公司 一种虚拟化环境下自动部署应用程序的方法及装置
US10133867B1 (en) 2016-03-29 2018-11-20 Amazon Technologies, Inc. Trusted malware scanning
CN106293842B (zh) * 2016-08-12 2020-04-03 新华三技术有限公司 一种软件安装方法及装置
CN107769949B (zh) * 2016-08-19 2021-02-12 华为技术有限公司 一种应用组件部署方法及部署节点
US11204749B2 (en) * 2016-09-20 2021-12-21 Apple Inc. State machines for installation management
JP7121555B2 (ja) * 2018-06-18 2022-08-18 キヤノン株式会社 情報処理装置、その制御方法、プログラム
CN109117166B (zh) * 2018-11-16 2022-03-11 重庆惠家通信息技术有限公司 快速扩容的软件升级方法
CN109788054B (zh) * 2019-01-07 2022-04-15 平安科技(深圳)有限公司 一种分布式应用协调服务节点的配置方法、服务器及介质
CN110110530B (zh) * 2019-01-25 2021-06-08 深圳市华阳国际工程设计股份有限公司 基于bim平台的信息权限管理方法、装置以及存储装置
CN110321503B (zh) * 2019-06-13 2021-06-29 北京奇艺世纪科技有限公司 一种web组件缓存方法、装置及电子设备
CN111093183B (zh) 2019-11-13 2022-02-11 华为技术有限公司 一种移动设备管理方法及设备

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
WO1998018247A1 (en) * 1996-10-23 1998-04-30 Infoglobal, S.L. Method and system for integration of several physical media for data communications
US6158010A (en) * 1998-10-28 2000-12-05 Crosslogix, Inc. System and method for maintaining security in a distributed computer network
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US6829639B1 (en) * 1999-11-15 2004-12-07 Netvision, Inc. Method and system for intelligent global event notification and control within a distributed computing environment
US6606744B1 (en) * 1999-11-22 2003-08-12 Accenture, Llp Providing collaborative installation management in a network-based supply chain environment
US6751794B1 (en) * 2000-05-25 2004-06-15 Everdream Corporation Intelligent patch checker
US7140013B2 (en) * 2000-06-01 2006-11-21 Aduva, Inc. Component upgrading with dependency conflict resolution, knowledge based and rules
US7610331B1 (en) * 2000-09-13 2009-10-27 Lightsurf Technologies, Inc. System and method for dynamic uploading and execution of applications and drivers between devices
WO2002025438A1 (en) * 2000-09-22 2002-03-28 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US6754823B1 (en) * 2000-10-24 2004-06-22 Kurzweil Cyberart Technologies Technique for distributing software
US20020078222A1 (en) * 2000-12-14 2002-06-20 Compas Jeffrey C. Updating information in network devices
US7707571B1 (en) * 2001-01-05 2010-04-27 New Boundary Technologies Inc. Software distribution systems and methods using one or more channels
US7668958B2 (en) * 2001-10-18 2010-02-23 Intel Corporation Method for discovery and routing using a priori knowledge in the form of application programme within mobile AD-HOC networks
US7735080B2 (en) * 2001-08-30 2010-06-08 International Business Machines Corporation Integrated system and method for the management of a complete end-to-end software delivery process
US7392517B2 (en) * 2001-10-04 2008-06-24 International Business Machines Corporation Extracting information from software
US6954930B2 (en) * 2002-02-19 2005-10-11 International Business Machines Corporation Remote validation of installation input data
CN1308812C (zh) * 2002-04-29 2007-04-04 上海广电信息产业股份有限公司 控制用户从网络下载软件的方法
EP1500228B1 (en) * 2002-04-30 2008-01-23 Nokia Corporation Method and device for management of tree data exchange
US7899900B1 (en) * 2002-08-22 2011-03-01 Ricoh Company, Ltd. Method and system for monitoring network connected devices with multiple protocols
DE10241957A1 (de) * 2002-09-10 2004-03-18 Siemens Ag Datenkommunikationssystem, Rechner, sowie Verfahren zur Aktualisierung von auf einem Rechner eines Datenkommunikationsystems gespeicherter Software
US6978453B2 (en) * 2002-10-21 2005-12-20 Bitfone Corporation System with required enhancements to syncML DM environment to support firmware updates
DE10249507A1 (de) 2002-10-23 2004-05-06 Basf Ag Verfahren zur Bestimmung der Menge an aus (Meth)acrylsäure und/oder (Meth)acrylsäureestern abgeschiedenem Polymer
US7401105B2 (en) * 2003-10-02 2008-07-15 International Business Machines Corporation Method, system, and program product for retrieving file processing software
JP4248913B2 (ja) * 2003-03-31 2009-04-02 株式会社エヌ・ティ・ティ・ドコモ 端末装置、プログラムおよび通信システム
US7584466B1 (en) * 2003-06-16 2009-09-01 Hewlett-Packard Development Company, L.P. Management tree management in a mobile handset
US8694620B2 (en) 2003-09-08 2014-04-08 Microsoft Corporation System and method for an OMA DM extension to manage mobile device configuration settings
JP4318520B2 (ja) 2003-09-26 2009-08-26 富士通株式会社 端末の状態制御システム
US20070011334A1 (en) * 2003-11-03 2007-01-11 Steven Higgins Methods and apparatuses to provide composite applications
US20080052704A1 (en) * 2006-06-02 2008-02-28 Apple Computer, Inc. Media management system for management of games acquired from a media server
US20050132054A1 (en) * 2003-12-10 2005-06-16 International Business Machines Corporation Fine-grained authorization by traversing generational relationships
JPWO2005072002A1 (ja) * 2004-01-26 2007-12-27 松下電器産業株式会社 イベントに応じた処理の自動実行が可能な端末装置及び方法並びにシステム
WO2005086377A1 (en) 2004-03-05 2005-09-15 Samsung Electronics Co., Ltd. System and method for handover to minimize service delay due to ping pong effect in bwa communication system
US7433936B2 (en) * 2004-03-11 2008-10-07 Microsoft Corporation Connectivity objects under a mobile device management tree
CN101031882B (zh) * 2004-06-08 2010-09-08 达尔特设备互操作有限公司 用于通用设备互操作性平台的设备组招募和内容再现的体系结构、装置和方法
US20060031449A1 (en) * 2004-07-01 2006-02-09 Mika Hallamaa Selection of management method
US8392545B2 (en) * 2004-07-01 2013-03-05 Nokia Corporation Device management system
US8073960B2 (en) * 2004-07-01 2011-12-06 Nokia Corporation Arranging management operations in management system
US8578371B2 (en) * 2004-08-31 2013-11-05 International Business Machines Corporation Software distribution method and system with automatic prerequisite installation
US7844964B2 (en) * 2004-09-23 2010-11-30 Hewlett Packard Development Company, L.P. Network for mass distribution of configuration, firmware and software updates
US7950010B2 (en) * 2005-01-21 2011-05-24 Sap Ag Software deployment system
US20060190608A1 (en) * 2005-02-18 2006-08-24 Nokia Corporation Method for the obtaining of deployment components to electronic devices
US7809366B2 (en) * 2005-03-21 2010-10-05 Hewlett-Packard Development Company, L.P. Mobile device client
EP1713206A1 (en) * 2005-04-11 2006-10-18 Last Mile Communications/Tivis Limited A distributed communications network comprising wirelessly linked base stations
US7475167B2 (en) * 2005-04-15 2009-01-06 Intel Corporation Offloading data path functions
JP3924306B2 (ja) * 2005-07-20 2007-06-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・パッケージを再構築する方法
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
CN100407650C (zh) * 2005-11-10 2008-07-30 中国工商银行股份有限公司 分布式业务系统中的软件版本升级系统及其方法
CN100384154C (zh) 2006-02-21 2008-04-23 华为技术有限公司 终端设备管理方法及其系统、以及终端设备
JP4251207B2 (ja) * 2006-04-28 2009-04-08 ソニー株式会社 サーバ装置、再接続制御方法、機器装置、再接続方法、プログラム、および記録媒体
KR100941947B1 (ko) * 2006-05-23 2010-02-11 프리비트 가부시키가이샤 통신 모듈 및 이 통신 모듈을 구비한 애플리케이션 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
US7937464B2 (en) * 2006-11-10 2011-05-03 Bally Gaming, Inc. Download progress management gaming method
US8060874B2 (en) * 2007-01-29 2011-11-15 Symbol Technologies, Inc. Efficient provisioning of software packages to mobile handheld devices
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US8316364B2 (en) * 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
CN101325509B (zh) 2007-06-11 2011-04-06 华为技术有限公司 安装软件组件的方法、系统及装置
US7827266B2 (en) * 2007-07-31 2010-11-02 Hewlett-Packard Development Company, L.P. System and method of controlling multiple computer platforms
US20090157202A1 (en) * 2007-08-10 2009-06-18 Smiths Medical Md Therapy rules for closed loop programming of medical devices
US20090113419A1 (en) * 2007-10-25 2009-04-30 Bea Systems, Inc. System and method for a light weight server installer
US8548956B2 (en) * 2008-02-28 2013-10-01 Mcafee, Inc. Automated computing appliance cloning or migration
US20090222497A1 (en) * 2008-02-29 2009-09-03 Schlumberger Technology Corp. Method, system and apparatus for remote software upgrade of an embedded device
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
CN101651669A (zh) * 2008-08-15 2010-02-17 国际商业机器公司 业务箱集成服务器和业务箱集成方法
US8880705B2 (en) * 2008-10-15 2014-11-04 Qualcomm Incorporated Systems and methods for dynamic creation and release of proxy mobile IP connections
US8997092B2 (en) * 2010-02-03 2015-03-31 Symantec Corporation Method, system, and computer readable medium for provisioning and remote distribution
US20110296404A1 (en) * 2010-06-01 2011-12-01 Dell Products L.P. Systems and methods for host-level distributed scheduling in a distributed environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399812A (zh) * 2020-04-07 2020-07-10 杭州指令集智能科技有限公司 组件构建方法、装置、开发框架及设备
CN111399812B (zh) * 2020-04-07 2022-04-19 杭州指令集智能科技有限公司 组件构建方法、装置、开发框架及设备

Also Published As

Publication number Publication date
CN102006333B (zh) 2012-12-26
US9141366B2 (en) 2015-09-22
US20140137103A1 (en) 2014-05-15
EP3002930B1 (en) 2019-11-27
US8245225B2 (en) 2012-08-14
CN102006333A (zh) 2011-04-06
US20110179410A1 (en) 2011-07-21
US20120042308A1 (en) 2012-02-16
US8261262B2 (en) 2012-09-04
ES2768703T3 (es) 2020-06-23
US20090271781A1 (en) 2009-10-29
EP3002930A1 (en) 2016-04-06
US20110252417A1 (en) 2011-10-13
US8239859B2 (en) 2012-08-07
CN102006334B (zh) 2013-01-02
US8910151B2 (en) 2014-12-09
US20120284706A1 (en) 2012-11-08
CN101325509A (zh) 2008-12-17
CN101325509B (zh) 2011-04-06
US8082352B2 (en) 2011-12-20

Similar Documents

Publication Publication Date Title
CN101325509B (zh) 安装软件组件的方法、系统及装置
JP5954635B2 (ja) ソフトウェアコンポーネントをインストールする方法、システム、端末、およびデバイス管理サーバ
US9696977B2 (en) Method and system for allocating ID of software component
EP2334024B1 (en) Method and device for terminal management based on right control
CN106569863B (zh) 基于资源和代码模块化的安卓app资源更新和修复的方法
US10148486B2 (en) Object version management
WO2016026329A1 (zh) 终端的升级方法及装置
CN112688794A (zh) Yang模型的管理方法、装置、系统、设备及存储介质
US9235437B2 (en) Method and integration component for integrating OSGi environments into a Service-oriented Architecture
CN102929649B (zh) Pcs7软件系统的配置系统和配置方法
KR102441351B1 (ko) 단말 장치 및 이의 관리 방법
CN114443059A (zh) Kubernetes集群的部署方法、装置及设备
CN101351046B (zh) 终端设备软件组件激活方法、终端设备及设备管理服务器
CN102572957A (zh) 设备管理的方法和终端、装置、系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant