首页 / 专利库 / 软件 / 软件套件 / 软件组件 / 基于目录的软件组件管理

基于目录的软件组件管理

阅读:0发布:2021-11-10

专利汇可以提供基于目录的软件组件管理专利检索,专利查询,专利分析的服务。并且在设备上运行的 操作系统 的目录中维护多个 软件 组件标识符。这些 软件组件 标识符中的每个对应于安装在该设备上的多个软件组件之一。响应于有关多个软件组件之一的 请求 而 访问 该目录,并且至少部分地基于目录中包括的信息来响应该请求。另外,可以标识安装在计算设备中的软件组件的两个或者更多版本。确定软件组件的两个或者更多版本中的哪个是要运行的软件组件的活动版本。响应于对有关软件组件的信息的请求,返回有关软件组件的活动版本的信息。,下面是基于目录的软件组件管理专利的具体信息内容。

1.一种计算设备(600),包括:
处理器(602);以及
一个或多个耦接到处理器并其上存储了操作系统的多个指令的计算机可读介质(604),这些指令当由处理器执行时,导致处理器:
在操作系统的目录中维护(402)多个软件组件标识符,其中多个软件组件安装在该设备上,且这多个软件组件标识符中的每个都对应于这多个软件组件之一,操作系统的目录包括全索引和有效索引;
从包括多个软件组件标识符的每一个的目录的全索引中选择与多个软件组件标识符的至少一个相关联的版本包括到目录的有效索引中,所选择的版本至少部分地基于版本标识符而确定;
响应于对有关多个软件组件之一的请求访问(406)该目录的有效索引;以及至少部分基于包括在目录的有效索引中的信息来响应(408)该请求。
2.如权利要求1中所述的计算设备,其中多个目录在该设备上,其中多个目录的每个都对应于该操作系统中的多个账号中的一个,其中该指令进一步导致处理器至少部分基于多个账号中哪个登录进去,来标识多个目录中的一个。
3.如权利要求1中所述的计算设备,其中该请求是检查运行多个软件组件中的一个是否依赖于目录中的一个或多个软件组件的请求。
4.如权利要求1中所述的计算设备,其中有效索引包括全索引的子集,以使得子集的内容被包括在有效索引和全索引二者中。
5.如权利要求1中所述的计算设备,其中多个软件组件标识符中的每个包括:
该软件组件的出版商的标识符;
该出版商在存储描述该软件组件的元数据的清单上的数字签名;以及
软件组件的一个或多个版本号。
6.如权利要求1中所述的计算设备,其中该请求是有关具有多个安装在该设备中的版本的软件组件的请求, 其中对该请求做出响应就是至少部分基于该软件组件多个版本中特定的一个做出响应。
7.如权利要求1中所述的计算设备,其中该请求包括对多个软件组件中的一个的软件组件标识符的请求,该软件组件包括具有给定路径的文件。
8.一种在计算设备中的操作系统中实现的方法,该方法包括:
标识(502)安装在计算设备上的软件组件的两个或多个版本;
在目录的第一索引中维护该软件组件的两个或多个版本的每一个的软件组件标识符;
确定(504)软件组件的两个或多个版本中哪一个是要运行的软件组件的活动版本;
响应于该确定,选择活动版本包括在该目录的第二索引中;以及
响应于对有关软件组件的信息的请求而至少部分地基于该目录的第二索引返回有关该软件组件活动版本的信息。
9.如权利要求8中所述的方法,其中该软件组件的两个或多个版本的每个都有只在版本号上不同的软件组件标识符。
10.如权利要求8中所述的方法,每个软件组件标识符包括:
该版本的软件组件的出版商的标识符;
出版商在存储描述该软件组件版本的元数据的清单上的数字签名;以及该软件组件版本的版本号。
11.如权利要求8中所述的方法,进一步包括:
为安装在计算设备上的多个软件组件中每一个重复标识、确定和选择;
产生包括多个软件组件的每个活动版本的标识符的第二索引。
12.如权利要求11中所述的方法,所述确定包括:
标识要使用来确定特定的软件组件的两个或多个版本中哪一个是该特定软件组件的活动版本的规则集,该规则集包括由计算设备耦接到的网络的管理员设置的策略规则;以及
基于该规则集,选择为该特定软件的活动版本的两个或多个版本之一。
13.如权利要求8中所述的方法,进一步包括响应于软件组件的新版本安装在计算设备上而重复所述标识和确定。
14.如权利要求8中所述的方法,进一步包括响应于从计算设备中卸载软件组件的两个或多个版本中的一个来重复所述标识和确定。
15.如权利要求8中所述的方法,进一步包括维护多个目录,每一个目录都为计算设备上的多个用户账户中不同的一个标识软件组件的活动版本, 且其中该软件组件的活动版本在不同的目录中是不同的版本。

说明书全文

基于目录的软件组件管理

背景技术

[0001] 计算机一般运行操作系统,该系统提供包括允许其他应用在计算机上安装和运行的功能在内的各种功能。不同应用经常可以安装在计算机上并以不同方式运行,导致各种
文件和信息存储入该计算机上的多个位置、文件夹等中。相应地,比如在试图将应用升级到
新版本时,在卸载一个应用时等,管理计算机上这些不同应用会产生很多困难。
发明内容
[0002] 提供了该发明内容来以简化形式引入一些将在具体实施方式里进行进一步阐述的概念选集。该发明内容目的不是标识要求保护的主题的关键特征或必要特征,其目的也
不是限定要求保护的主题的范围。
[0003] 根据一个或多个方面,在设备操作系统的目录中维护多个软件组件标识符。这些软件组件标识符中的每个对应于安装在该设备上的多个软件组件之一。响应于有关多个软
件组件之一的请求访问目录,而至少部分地基于该目录中所含的信息来对该请求做出响
应。
[0004] 根据一个或多个方面,在计算设备的操作系统中,标识该计算设备上安装的软件组件的两个或多个版本。确定该软件组件的两个或多个版本中哪个版本是要运行的软件组
件的活动版本。作为对有关软件组件信息的请求的响应,返回有关软件组件的活动版本的
信息。
附图说明
[0005] 在整个附图中,使用相同的数字来引用类似的特征。
[0006] 图1示出了根据一个或多个实施例的、实现基于目录的软件组件管理的示例计算设备。
[0007] 图2示出了根据一个或多个实施例的示例目录。
[0008] 图3示出了根据一个或多个实施例的示例软件组件。
[0009] 图4示出了根据一个或多个实施例的、用于基于目录的软件组件管理的示例处理的流程图
[0010] 图5示出了根据一个或多个实施例的、用于基于目录的软件组件管理的示例处理的流程图。
[0011] 图6示出了根据一个或多个实施例的、能被配置为实现基于目录的软件组件管理的示例计算设备。

具体实施方式

[0012] 在此论述基于目录的软件组件管理。软件产品由一个或多个软件组件构成。每个软件组件具有在计算设备上的操作系统的目录中维护的身份。该目录标识哪些软件组件安
装在计算设备上。该目录允许操作系统容易地标识安装在该系统中的软件组件并管理这些
软件组件。
[0013] 图1示出了根据一个或多个实施例的实现基于目录的软件组件管理的示例计算设备100。计算设备100可以是能够运行各软件应用的各种不同的设备。例如,计算设备
100可以是桌面型计算机、服务器计算机、膝上型计算机、移动站、娱乐电器、可通信地耦接
到显示设备的机顶盒、蜂窝电话或其他无线电话、游戏控制台、车载计算机等。因此,计算设
备100的范围可以从有大量存储器和处理器资源的全资源设备(如个人计算机,游戏控制
台)到具有有限存储器和/或处理资源的低资源设备(如传统的机顶盒,游戏手柄控制台)。
[0014] 计算设备100包括操作系统102,该操作系统102具有软件组件访问控制模104和目录106。两个软件产品110和112(也被称作软件应用)被示出为包括在计算设备100
中。尽管在图1的示例中示出了两个软件产品110和112,作为选择,计算设备100中可以
包括少于两个或多于两个软件产品。每个软件产品110和112包括一个或多个软件组件。
在图1的示例中,软件产品110包括软件组件122、软件组件124和软件组件126,而软件产
品112包括软件组件126和软件组件128。如图1所示,多个不同的软件产品可以共享软件
组件(如软件组件126)。
[0015] 软件组件访问控制模块104管理安装在计算设备100中的软件组件。控制模块104将安装在计算设备100上的软件组件(如图1示例中的软件组件122-128)的记录维护
为目录106。目录106是安装在计算设备100上并因此能在计算设备100上运行的软件组
件的记录。为了在计算设备100上运行软件组件,该软件组件安装在计算设备中。该安装
处理一般由安装组件或模块执行,且一般包括在操作系统102的文件系统中的各个位置存
储文件、存储各种描述该软件组件的信息等。作为在计算设备100上安装软件组件的处理
的一部分,使控制模块104感知该软件组件,以允许将该软件组件的标识符添加到目录106
中。这种安装的软件组件也能被称作“活动”软件组件,这是因为该软件组件能在计算设备
100上运行。
[0016] 其他软件组件可以存储在计算设备100上,但不是安装在计算设备100上。操作系统102一般感知不到这样的软件组件,没有把这种组件的标识符包括到目录106中,且不
支持运行这种软件组件。相应地,这种软件组件也能被称作是“休眠”的,因为虽然它们存
储在计算设备100上,但这种软件组件没有安装在计算设备100上。要理解的是,可以出
现这种情况:软件组件是可以由操作系统102执行的可执行文件(虽然该可执行文件没有
安装在计算设备100上)。然而,因为这种软件组件没有安装在计算设备100上,操作系统
102一般感知不到有关这种软件组件的信息(如这种软件组件提供的功能,这种软件组件的
开发商或出版商等),且因此这种软件组件仍被称作休眠的软件组件。
[0017] 软件组件访问控制模块104提供了对安装在计算设备100上的软件组件的集中管理。如后文更详细的论述那样,通过维护目录106,控制模块104感知并能容易地为特定软
件组件提供各种功能。例如,控制模块104能容易地标识安装在计算设备100上的全部软
件组件104,并能提供有关这些标识的软件组件的各种功能。
[0018] 如图1可以看出,每个软件产品包括一个或多个软件组件。软件产品的软件组件包括能在计算设备100上运行的指令和数据,而且这些软件组件一起提供软件产品的功
能。操作系统102在运行时与单独的软件组件(而不是和软件产品整体)进行通信。
[0019] 虽然图1示出的是单个目录106,作为选择,操作系统可以包括多个目录106。在一个或多个实施例中,操作系统102为计算设备100上的每个账户包括不同的目录106。在这
种实施例中,操作系统102允许不同的用户每个创建不同的账号(或多个不同的账号),并为
该不同的账号维护不同的设置、访问权利等。另外,也能在计算设备100上创建一个或多个
系统或管理员账号。操作系统102为这些不同的账号中的每一个维护一个不同的目录106。
操作系统102也可允许多个不同的用户在任意给定时间里登录到计算设备100中。然而,
在这些情形中,多个用户中一般只有一个是当前的活动用户(使用当前的活动账号)。因此,
在任意给定时间由控制模块104使用的目录106可以基于在该给定时间内登录进去的计算
设备100的特定账号、或可能地基于该给定时间处多个登录进入的账号中哪个是当前的活
动账号而改变。
[0020] 具体的目录106包括安装在计算设备100上的软件组件的标识符。在为不同账号维护不同目录106的情形中,具体的目录106包括在那个账户下安装在计算设备100上的
软件组件的标识符。不同的用户可以在计算设备100上安装不同的软件组件,导致不同的
目录106中包括不同的标识符。
[0021] 图2示出了根据一个或多个实施例的示例目录200。目录200包括多个软件组件标识符202、204、206和208,每个识别符分别地标识相应的软件组件222、224、226和208。
这些软件组件222-228是安装在实现目录200的计算设备上(或在该计算设备的操作系统
上的特定账号下安装)的软件组件。
[0022] 每个软件组件222-228具有允许该软件组件区别于其他软件组件的组件身份。在一个或多个实施例中,该身份由软件组件提供,比如包括在如后文中更详细介绍的清单中。
作为选择,该组件身份能以其他方式产生,比如通过操作系统(如图1中的操作系统102)、
通过另一个组件或模块、通过另一个本地或远程服务、通过另一个本地或远程设备等来产
生。
[0023] 返回到图1,在一个或多个实施例中,目录106包括已安装的软件组件的单个索引。在其他实施例中,目录106包括软件组件的多个索引或者部分。这些多个索引或部分包
括,例如一个包括所有已安装软件组件的索引或部分(也称作全索引)。这些多个索引或部
分也可以包括,例如,一个包括满足特定规则或条件集的软件组件子集的第二索引或部分
(也称作有效索引)。这个规则或条件集也能用于有效地减少已安装并能运行的软件组件。
[0024] 一般地,有效索引标识安装在计算设备100上软件组件的活动版本。软件组件的多个不同版本可以安装在计算设备100上,它们中的每个都包括在全索引中。然而,对于软
件组件的多个版本,选择那些版本之一包括在有效索引中。
[0025] 各种不同的规则或条件能用于确定被选择包括在有效索引中的版本。在一个或多个实施例中,一个这样的规则是版本规则。版本规则基于版本序号或其他版本标识符来指
定软件组件的多个不同版本中哪一个是活动版本。例如,这种版本规则可以是,要运行的最
新版本(如版本号最高的版本)、要运行的具有特定格式版本标识符的版本或具有特定值的
版本等。在这种实施例中,软件组件的活动版本包括在有效索引中,软件组件的其他版本从
有效索引中排除(即使它们可能包括在全索引中)。
[0026] 另一个能用于确定有效索引的规则是策略规则。例如,计算设备100的管理员或计算设备100因各种不同原因耦接到的网络的管理员可以建立策略。这个策略可以指定
定的软件组件或其版本不在计算设备100上运行、只有由特定出版商数字签名了的软件组
件或其版本能够运行等。在这种情形中,将特定的软件组件或版本从有效索引中排除(即使
它们可能包括在全索引中)。
[0027] 另一个能用于确定有效索引的规则是复制规则。复制原则指定,如果相同软件组件的多个复本安装在计算设备上,则只有一个这种复本要在有效索引中维护。多个这种复
本能因为各种不同的原因而安装,比如作为安装在计算设备上的多个软件产品中的每个都
包括了共有的软件组件的结果。
[0028] 图3示出了根据一个或多个实施例的示例软件组件300。软件组件是一个和多个文件和描述该软件组件的元数据的集合。软件组件300包括一个或多个资源文件302,每个
存储用于该软件组件300的各种指令和/或数据。包括在软件组件300中的特定资源文件
302可以基于软件组件300的开发商的意愿而变化。
[0029] 清单304存储描述软件组件300的元数据和软件组件300揭示的功能。在一个或多个实施例中,清单304包括软件组件300的标识符。软件组件300的标识符允许软件组
件300区别于安装在设备上的其他软件组件。该标识符可以由各种属性构成,比如软件组
件300的一个或多个版本号、资源文件302(和清单304的可选部分)上的数字签名和软件
组件300的开发商或出版商的标识符。作为选择,这些版本号,数字签名和开发商或出版商
的标识符可被分开维护而不是(或另外地)作为软件组件300的标识符的属性被包括。
[0030] 软件组件300的版本号允许易于标识软件组件300的不同版本。如后文更详细地论述的那样,这些版本号可以用于便于对软件组件300的管理。
[0031] 清单304也可以包括通过在资源文件302上应用散列函数而产生的散列值。各种不同散列函数,比如一个或多个加密或单向散列函数可用于产生散列值。这种散列函数的
例子包括MD5(消息-摘要算法5)散列函数,SHA-1(安全散列算法1)散列函数等。
[0032] 清单304的至少一部分(比如清单304中除了数字签名之外的那些部分)上的数字签名由软件组件300的出版商产生或代表其产生。作为选择,该数字签名也可以在资源文
件302(代替包括在清单304中的资源文件302的散列,或者另外地)上。软件组件300的
出版商可以是软件组件300的资源文件302的开发商,或作为选择,是对软件组件300有贡
献的另一实体。可以通过使用基于公钥加密的任意各种熟知的技术来产生该数字签名。如
果在其上进行数字签名的资源文件302(比如由于清单304中资源文件302的散列值)以
及清单304的其他部分改变了,则数字签名会改变。相应地,该数字签名也可以充当在其上
进行数字签名的特定资源文件302集以及清单304的其他部分的标识符。
[0033] 软件组件300的出版商和/或开发商的身份也可以包括在清单304中。数字签名也能在出版商和/或开发商的身份上产生。
[0034] 当软件组件300要安装到计算设备(比如图1中的计算设备100)上时,软件组件300由安装或者部署组件或模块获得。软件组件300可以从任意各种本地和/或远程服务
和/或设备中获得。
[0035] 作为安装处理的部分,软件组件300的标识符在安装或作为选择由安装处理标识时,添加到计算设备的操作系统的特定账号的目录中。该安装处理可以将软件组件300
的标识符添加到目录中,或作为选择可以与软件组件访问控制模块(如图1中的控制模块
104)进行通信,该控制模块接着可以将软件组件300的标识符添加到目录中。
[0036] 在一个或多个实施例中,在将软件组件300的标识符添加到目录之前,软件组件访问控制模块或者安装组件或模块采取一个或多个验证动作。能采取各种验证动作。比
如,可以建立软件组件300、清单304和/或资源文件302要遵守的规则或条件集。作为验
证的部分,可以有关该规则或条件集实际上是否被遵守进行检查。如果该规则或条件集没
有被遵守,那么不将软件组件300的标识符添加到目录中。
[0037] 再举个例子,可以关于如上所述的在资源文件302和/或清单304上的数字签名是否存在于清单304中进行检查。如果清单304中不存在这种数字签名,那么不将软件组件
300的标识符添加到目录中。然而,如果清单304中存在这种数字签名,那么会进行在其上
做出数字签名的资源文件302和/或清单304从被数字签名以来是否改变了的检查。这个
检查可以包括计算资源文件302的散列值来验证计算出的散列值与存储在清单304中的散
列值是否相同。可以以任意其它各种使用公钥密码学的熟知方式来执行在其上做出数字签
名的清单304没有被改变的检查。也可以做出有关包括在清单304中的软件组件300的出
版商的标识符是否与包括在数字签名中的出版商标识符是否匹配(比如,相同)的检查。如
果在其上做出数字签名的资源文件302和/或清单304从被数字签名以来已经改变了,那
么不会将软件组件300的标识符添加到目录中。
[0038] 再举个例子,可以做出有关产生资源文件302和/或清单304上的数字签名的实体能否被信任的检查。这个检查可以通过访问证书存储库来确定产生该数字签名的实体的
数字证书是否包括在软件组件300安装在其上的设备的证书存储库中。作为选择地,可以
建立从该证书存储库中的数字证书到产生该数字签名的实体的数字证书的证书链,而不是
被包括在证书存储库中。如果这种数字证书没有包括在证书存储库中(或者没能建立证书
链),则不会将软件组件300的标识符添加到目录中。
[0039] 返回到图1,一旦软件组件122-128安装在计算设备100上,可以维护到软件组件122-128的一个或多个资源文件位置的路径。这些路径可以保持在目录106中,或作为选
择,作为元数据保持在操作系统102的其他存储库中。这些路径允许特定的文件被检索和
执行、加载或否则被使用。例如,可以保持到要作为快捷方式而显示的图标的路径,可以保
持到可执行文件的路径,可以保持到动态链接库(DLL)的路径等。通过保持这些路径,能容
易地标识和返回关于软件组件的信息。例如,如果要运行特定的软件组件,可以容易地标识
到该软件组件的可执行文件的路径。又例如,如果要显示代表到软件组件的快捷方式的图
标,则可以容易地标识存储用于该图标的数据的文件。再例如,如果要加载DLL,则可以容易
地标识到存储那个DLL的文件的路径。
[0040] 软件组件访问控制模块104允许各种其他组件和模块从目录106中获取有关已安装的软件组件的信息。这种其他组件和模块可以是操作系统102的部分,或作为选择,可以
是一个或多个软件组件122-128。目录106中维护的有关已安装的软件组件的信息可以被
返回给请求组件或模块,或作为选择,可以被控制模块104使用来产生对请求的响应。因为
目录106维护安装在计算设备100上的软件组件的记录,因此目录106也能被操作系统102
中的其他组件或模块利用。
[0041] 在一个或多个实施例中,在访问目录106时,控制模块104支持各种操作。这些操作可以作为应用程序编程接口(API)的方法来显露,或作为选择,对这些要执行操作的请求
可以其他方式向控制模块104做出。下面的表I描述了在访问目录106时由控制模块104
支持的这些操作的示例。
[0042] 表I
[0043]操作 描述
列举目录 返回在操作系统中的目录列表
获取目录 返回用于在执行该操作的请求中指定的账号的目录
添加组件 向目录中添加软件组件
移除组件 从目录中移除软件组件
列举组件 返回在目录的全索引和/或有效索引中的软件组件列表
根据身份列返回在请求中指定的、在目录的全索引和/或有效索引中的软件组件列表,该列表具有与指定身份相匹配的软件组件标举组件 识符。该指定的身份可以是局部或全面的。例如,该指定的身份可以使用通配符来指示组件身份中未指定的属性或部分。
根据路径获给定指定的目录和目录或文件的路径,从有效索引和/或全索引中返回软件组件的标识符。这允许调用方来确定给定文取组件 件是否属于有效索引和/或全索引中的组件。
[0044] 如上所述,在一个或多个实施例中,软件组件的标识符包括标识软件组件版本号的组件标识符。在两个软件组件有相同版本号的情形中,则(假设这两个软件组件的组件标
识符的剩余部分相同)这两个软件组件之一会被确定为另一个的新的替换版本。能以各种
不同的方式确定被确定为是新的替换版本的这两个软件组件之一,比如有更高的版本号的
一个。控制模块104用软件组件新的替换版本代替软件组件的旧版本,导致对该软件组件
的后续请求返回该新的替换版本。在一个或多个实施例中,控制模块104将该组件新的替
换版本添加到目录106的有效索引中,并从目录106的有效索引中移除软件组件的较旧版
本。作为选择,在其他时间(比如在对软件组件请求做出响应时),控制模块104可以确定软
件组件的两个版本中哪一个是新的替换版本。
[0045] 另外,每个软件组件都有如上所述的清单。在一个或多个实施例中,每个软件组件的清单也标识该软件组件是否依赖于其他软件组件来操作。例如,软件组件122可能依赖于
也在系统中运行的软件组件124,且软件组件可能依赖于也在系统中运行的软件组件126。
[0046] 给定该软件组件清单中的这些信息,控制模块104能容易地确定特定的软件组件是否可以在计算设备100上运行。例如,控制模块104可以访问软件组件122的清单并确
定,为了软件组件122运行,软件组件124(因此软件组件126也是)也要运行。相应地,控
制模块104能对来自其他组件或模块(可以是操作系统102的部分,或作为选择和操作系统
102分开的)有关特定的软件组件是否能在计算设备100上运行的查询做出响应。如果该
特定的软件组件所依赖的其他软件组件在目录106中,则该特定的软件组件可以在计算设
备100中运行。然而,如果该特定的软件组件所依赖的其他软件组件不在目录106中,则该
特定的软件组件不能在计算设备100中运行。
[0047] 类似地,给定该软件组件清单里的这些信息,控制模块104可以容易地确定从计算设备100中移除特定的软件组件是否会阻止其他软件组件运行。例如,控制模块104可以
访问软件组件122的清单并确定,为了让软件组件122运行,软件组件124(因此软件组件
126也是)也要运行。相应地,通过指示不能删除软件组件124而不导致至少一个其他软件
组件可能无法正常运行,控制模块104可以对来自其他组件或模块(可以是操作系统102的
部分,或作为选择和操作系统102相分离)的有关是否可以将软件组件124从计算设备100
中移除的查询做出响应。
[0048] 图4示出了根据一个或多个实施例的、用于基于目录的软件组件管理的示例处理400的流程图。处理400由设备上运行的操作系统的控制模块(比如图1中的软件组件访问
控制模块104)执行,并可以以软件、固件硬件或其组合来实现。处理400是基于目录的软
件组件管理的示例处理;通过参考不同的数据在此包括其他对基于目录的软件组件管理的
另外论述。
[0049] 在处理400中,软件组件标识符保持在目录中(动作402)。这些软件组件标识符使软件组件区别于彼此,并能如上所述采取各种不同的形式。如上所述,多个不同的目录可以
包括在设备上,每个都可选性地包括不同的索引。
[0050] 最后,接收有关软件组件的请求收(动作404)。处理400等待直到接收这种请求为止,并响应于该请求而访问目录(动作406)。要访问的目录可以作为请求的部分来标识,或
作为选择,可以本来就在该请求中(比如实现处理400的计算设备的当前用户的目录)。
[0051] 该请求基于目录中的信息而被响应(动作408)。如上所述,目录中这些信息至少包括该组件的标识符。如上所述,可以基于所请求操作的本性而改变该特定的响应。
[0052] 图5是说明根据一个或多个实施例的、用于基于目录的软件组件管理的示例处理500的流程图。指示处理500响应软件组件多个版本安装在设备上何处的请求。处理500
由运行在设备上的操作系统的控制模块(比如图1中的软件组件访问控制模块104)来执
行,且可以用软件、固件、硬件或其组合来实现。处理500是基于目录的软件组件管理的示
例处理;通过参考不同的附图在此包括对基于目录的软件组件管理的附加论述。
[0053] 在处理500中,标识安装在设备上的、用户可访问的软件组件的多个版本(动作502)。如上所述,不同的用户可以访问不同的软件组件。
[0054] 进行有关软件组件的多个版本中哪个是活动版本的确定(动作504)。该确定可以在标识多个版本时或其他时候进行,且如上所述,可以维护活动版本的列表(比如,作为有
效索引)。或作为选择,可以响应于有关软件组件的信息请求而进行该确定。
[0055] 响应于对有关软件组件的信息的请求,返回关于该软件组件的活动版本的信息(动作506)。这种请求可以是从实现处理500的操作系统的其他组件或模块(或作为选择,
如上所述的其他软件组件)接收的请求。
[0056] 处理500涉及单个的软件组件。要理解的是,处理500可以为多个软件组件重复。例如,可以如上所述维护多个软件组件的活动版本的有效索引。
[0057] 也应该注意的是,动作502中执行的标识和动作504中执行的确定可以在各种时间执行。在一个或多个实施例中,每当对计算设备100上安装的软件组件做出改变时就执
行动作502和504。,操作系统中的另一个组件或模块会通知实现处理500的软件访问控制
模块何时做出了这种改变。这种改变的示例包括安装软件组件和卸载软件组件。作为选择,
动作502和504可以在其他时间执行,比如对有关软件组件或目录的信息请求做出响应时、
在低活动的时间期间(比如该操作系统不忙于执行其他任务时)等。
[0058] 图6示出了根据一个或多个实施例的、可以被配置为实现基于目录的软件组件管理的示例计算设备600。计算设备600可以是,比如图1中的计算设备100。
[0059] 计算设备600包括一个或多个处理器或处理单元602、可以包括一个或多个存储器和/或存储组件606的一个或多个计算机可读介质604、一个或多个输入/输出(I/O)设
备608和允许各种组件和设备彼此通信的总线610。计算机可读介质604和/或一个或多
个I/O设备608可以被包括作为计算设备600的一部分,或作为选择可以耦接至计算设备。
总线610代表几种类型总线结构中的一种或多种,包括使用各种不同总线体系结构的存储
器总线或者存储器控制器、外围总线、加速图形端口、处理器或本地总线等。总线610可以
包括有线和/或无线总线。
[0060] 存储器/存储组件606代表一个或多个计算存储介质。组件606可以包括易失性介质(比如随机存取存储器(RAM))和/或非易失性介质(比如只读存储器(ROM)、闪存存储
器、光盘、磁盘等)。组件606可以包括固定介质(比如RAM、ROM、固定硬盘驱动器等)以及可
移动介质(比如闪存驱动器、可移动硬盘驱动器、光盘等)。
[0061] 在此论述的技术能在软件中实现,而利用指令由一个或多个处理单元602执行。要理解的是,不同的指令可以存储在计算设备600的不同组件中,比如处理单元602中、处理单
元602的各种高速缓冲存储器中、设备600的其他高速缓存存储器(未显示)中、其他计算机
可读介质上等。另外,要理解的是,指令存储在计算设备600中的位置可以随着时间改变。
[0062] 一个或多个输入/输出设备608允许用户在计算设备600中输入命令和信息,也允许将信息呈现给用户和/或其他组件或设备。输入设备的示例包括键盘光标控制设备
(如鼠标)、麦克扫描仪等。输出设备的示例包括显示设备(如监视器或投影仪)、扬声器、
打印机、网卡等。
[0063] 在此各种技术可以在软件或程序模块的一般背景中描述。一般地,软件包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。这些组件或技术
的实现可存储在计算机可读介质上,或通过计算机可读介质的某种形式传输。计算机可读
介质可以是由计算设备访问的任意可用介质。举个示例但不限于此,计算机可读介质可包
括“计算机存储介质”和“通信介质”。
[0064] “计算机存储介质”包括以用于存储如计算机可读指令、数据结构、程序模块或其他数据的信息的任意方式或技术实现的易失性和非易失性的、可移动和不可移动的介质。
计算机存储介质包括(但不限于)RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功
能光盘(DVD)或光学存储设备、盒式磁带、磁带、磁盘存储设备或其他磁性存储设备,或可以
用于存储想要的信息并可以被计算机访问的任意其他介质。
[0065] “通信介质”一般在调制数据信号(比如载波或其他传输机制)中包含计算机可读指令、数据结构、程序组件或其他数据。传输介质也包括任何信息递送介质。术语“调制数据信
号”意指具有一个或多个特征以将信息编码到信号中的方式来设置或改变的信号。举个示例
但不限于此,通信介质包括有线介质(比如有线网络或直接连线的连接)和无线介质(比如声
音、RF、红外和其他无线介质)。上述任意的组合也包括在计算机可读介质的范围中。
[0066] 一般地,在此描述的任意功能和技术都可以用软件、固件、硬件(如固定逻辑电路)、人工处理或者这些实现的组合来实现。在此使用的术语“模块”和“组件”一般代表软
件,尽管作为选择也能并入固件和/或硬件。在软件实现的情形中,模块或组件代表当在处
理器(如一个或多个CPU)上执行时,执行指定任务的程序代码。该程序代码可以储存在一
个或多个计算机可读存储设备中,对这些的进一步描述可以参考图6找到。在此描述的基
于目录的软件组件管理的特征是平台无关的,这意味着该技术可以在有各种处理器的各种
商业计算平台中实现。
[0067] 虽然该主题已经用结构特征和/或方法动作特定的语言进行了描述,要理解的是,附加的权利要求书中定义的主题不一定限于以上描述的特定特征和动作。相反,以上描
述的特定的特征和动作是作为实现权利要求书的示例形式而公开的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈