软件扩展分析的制作方法

文档序号:6349614阅读:866来源:国知局
专利名称:软件扩展分析的制作方法
软件扩展分析
背景技术
计算机通常运行提供各种功能(包括允许在计算机上安装和运行其它应用)的操作系统。这样的操作系统经常提供如下位置,各种应用以及操作系统可以在该位置存储将在应用的多次执行期间持续的各种类型的信息。然而当存储这样的信息时,由于多个可以访问和修改所存储的数据的不同程序而可能出现问题。这样的信息的存储方式可以随时间改变,并且这样的改变经常未恰当地传送给存储和/或取出数据的不同程序。因而信息可能容易存储不当,这可能造成致使程序和/或操作系统无法恰当操作的不稳定性。

发明内容
提供这一发明内容来以简化形式介绍下文在具体实施方式
中进一步描述的概念选集。这一发明内容并非旨在于标识要求保护的主题的关键特征或者必需特征,它也并未旨在于限制要求保护的主题的范围。根据一个或者多个方面,获得多个结构化扩展定义。每个结构化扩展定义对应于一个或者多个类别,并且按照软件扩展语言编写每个结构化扩展定义。访问表示按照注册存储库本地的格式而维护的一个或者多个注册的数据,并且至少部分基于多个结构化定义来分析这个数据。根据一个或者多个方面,获得按照软件扩展语言编写的结构化扩展定义。基于结构化扩展定义来修改注册存储库。注册存储库包括按照注册存储库本地的并且与软件扩展语言不同的格式存储的注册。


相同标号在所有附图中用来指代相似特征。图1图示了实现根据一个或者多个实施例的软件扩展分析的示例计算设备。图2图示了根据一个或者多个实施例的用于结构化扩展定义的示例格式。图3是图示了根据一个或者多个实施例的用于实现软件扩展分析的示例处理的流程图。图4是图示了根据一个或者多个实施例的用于分析软件扩展的示例处理的流程图。图5是图示了根据一个或者多个实施例的用于将软件扩展注册插入到注册存储库中的示例处理的流程图。图6是图示了根据一个或者多个实施例的用于从注册存储库移除软件扩展注册的示例处理的流程图。图7是图示了根据一个或者多个实施例的用于标识在特定位置处代表的注册类别的示例处理的流程图。图8图示了可以根据一个或者多个实施例使用的用于结构化扩展定义的特里结构(trie)的示例。
4
图9图示了可以被配置成实现根据一个或者多个实施例的软件扩展分析的示例计算设备。
具体实施例方式这里讨论软件扩展分析。本地注册具有以按照软件扩展语言编写的结构化扩展定义所描述的关联类别。在设备的存储库中维护本地注册并且可以作为管理设备中的软件扩展的一部分来分析本地注册。这个管理可以包括各种功能、比如检测本地注册中的问题、生成在存储库中表示的注册清单、按照注册的本地注册格式将注册插入到存储库中以及从存储库移除所有或者部分注册。此外,在存储库中的特定位置和存储库中的至少部分数据给定时,结构化扩展定义可以用来确定在该位置处表示的特定注册类别。图1图示了实现根据一个或者多个实施例的软件扩展分析的示例计算设备100。 计算设备100可以是能够运行软件和/或固件程序的多种不同设备。例如计算设备100可以是桌面型计算机、膝上型计算机、移动站、娱乐装置、与显示设备耦合的机顶盒、电视机、 蜂窝或者其它无线电话、个人数字助理(PDA)、游戏控制台、车载计算机等。因此,计算设备 100的范围可以从具有大量存储器和处理器资源的全资源设备(例如个人计算机、游戏控制台)到存储器和/或处理资源有限的低资源的设备(例如传统机顶盒、手持游戏控制台)。计算设备100包括扩展注册调停器102、注册存储库104和操作系统106。操作系统106管理软件和/或固件(包括一个或者多个消费方程序108和一个或者多个提供方程序110)在计算设备100上的操作。操作系统106本身也通常用软件和/或固件来实现。操作系统106管理和维护注册存储库104,从而允许程序108和110在注册存储库104中存储各种信息以及从注册存储库104取出各种信息。一个或者多个实施例操纵的一个这样的注册存储库104为操作系统注册表。注册存储库104可以存储用于程序108和110的、将在程序的多次执行期间持续的各种数据和设置信息。这个数据或者设置信息可以包括程序108和110在运行使用的设置、标识将响应于某些事件而运行的特定程序110的数据、描述将在程序108或者110运行时显示或者以别的方式呈现的控制或者其它信息的数据等。虽然在图1中图示了一个注册存储库104,但是作为选择可以在计算设备100中包括两个或者更多注册存储库104。程序 108和110可以直接或者作为选择经由操作系统106访问注册存储库104。在注册存储库104中包括的一个特定类型的数据为本地注册(以及如上文讨论的、也可以在注册存储库104中包括的其它非注册数据)。提供方程序110能够在运行时提供各种功能,从而实质上允许程序110扩展由消费方程序108提供的功能。可以使用不同类型的类别以各种不同方式扩展功能。当提供方程序110安装于计算设备100上时,通报由程序110提供的软件扩展功能的本地注册存储于注册存储库104中。这些本地注册可以由提供方程序110 (或者将程序110安装于计算设备100上的安装程序)直接或者作为选择经由操作系统106存储于注册存储库104中。例如,提供方程序110可以指示它可以解释和提供用于管理特定类型文件(例如按照特定格式的音乐文件、按照特定格式的图像文件等)的功能。在提供方程序110安装于计算设备100上期间,指示程序110可以解释和提供用于管理该特定类型文件的功能的注册可以按照本地注册格式存储于注册存储库104中。在安装了提供方程序110之后,消费方程序108 (或者作为选择为操作系统106)可以激活注册以获得由提供方程序110提供的用途。消费方程序108可以使用操作系统106来执行依赖于软件扩展的任务。例如网络浏览器程序可以显示指向电子邮件地址的链接。当用户点击链接时,网络浏览器程序要求操作系统106打开用于电子邮件地址的统一资源定位符(URI)(例如“mailto://name@domain. com”)。作为响应,操作系统106激活“协议”类别中的“mailto”注册。应当注意的是,虽然将消费方程序108和提供方程序110图示为单独程序,但是单个程序可以既为提供方程序又为消费方程序。此外还应当注意的是,操作系统106也可以是消费方程序和/或提供方程序。扩展注册调停器102也可以访问注册存储库104中存储的本地注册并且分析这些本地注册以便软件扩展管理。扩展注册调停器102获得描述注册符合的一个或者多个类别的结构化扩展定义112。可以从诸如消费方程序108、消费方程序108的开发者或者分发商、代表消费方程序108的行动方或者其它实体等之类的多种不同来源获得这些结构化扩展定义112。每个结构化扩展定义112将一个或者多个类别描述为它们可以由消费方程序108 激活。使用扩展注册调停器102已知的格式或者语言来实现结构化扩展定义112。然而这一格式或者语言不同于注册存储库104在存储注册时使用的本地格式。因而,调停器102可以访问在结构化扩展定义112中表示的多种类别并且基于那些类别来分析注册存储库104 中的本地注册。扩展注册调停器102因此可以比较提供方程序(或者提供方程序的开发者) 发布的并且存储于注册存储库104中的内容与消费方程序108预期的内容(如定义112所标识的),并且确定本地注册是否符合。扩展注册调停器102也可以基于类别分析注册存储库104中的本地注册并且生成注册清单。在一个或者多个实施例中,每个结构化扩展定义112为根据软件扩展语言编写的可扩展标记语言(XML)文档。这个软件扩展语言描述将如何编写结构化扩展定义112,以使得定义112可以由扩展注册调停器102使用。图2图示了根据一个或者多个实施例的用于结构化扩展定义的示例格式200。格式200是示例软件扩展语言使用的、定义用于软件扩展语言的特定元素和属性的格式。格式200包括可扩展性元素202、类别元素204、根元素206、参数元素208、约束元素210、使用元素212、变化元素214、合并根元素216和文档说明元素218。结构化扩展定义包括一个可扩展性元素202。每个可扩展性元素202可以包括一个或者多个类别元素204。每个类别元素204可以包括零个或者更多类别根元素206、一个或者多个参数元素208、零个或者更多约束元素210以及零个或者更多合并根元素216。可扩展性元素202也可以包括零个或者更多使用元素212、零个或者更多变化元素214以及零个或者更多文档说明元素218。将理解,在结构化扩展定义为XML文档的实施例中,这些元素202-218也可以称为标记。可扩展性元素202是将一个或者多个类别(通常为逻辑上彼此有关的一个或者多个类别)分组或者聚集在一起的聚集元素。每个元素202也可以定义诸如元素202被设计成与之兼容的一个或者多个特定程序的指示、元素202被设计成与之兼容的操作系统版本范围等之类的各种属性。类别元素204定义注册的内容和如何在注册存储库中形成本地注册。类别元素 204包括一个或者多个参数元素,这些参数元素定义注册可以具有的数据、它存储于何处以
6及它可以是什么类型。每个类别元素204也可以包括各种属性。表I包括可以在类别元素中包括的属性的示例。将理解,表I中的属性为示例,并且作为选择可以在类别元素中包括其它属性和/或可以从类别元素排除表I中的一个或者多个属性。此外,(这里和在本说明书中的别处讨论的)各种属性也可以嵌套在一起并且作为子标记的元素来包括而不是作为属性来包括。表 I
权利要求
1.一种计算设备(900),包括 处理器(902);以及一个或者多个计算机可读介质(904),耦合到所述处理器并且具有存储于其上的多个指令,所述指令在由所述处理器执行时使所述处理器获得(302 )多个结构化扩展定义,每个结构化扩展定义对应于一个或者多个类别,并且每个结构化扩展定义按照软件扩展语言编写;访问(306)表示按照注册存储库本地的格式存储的注册的数据;以及至少部分基于所述多个结构化扩展定义来分析(308)所述注册存储库中的数据。
2.如权利要求1所述的计算设备,所述指令还使所述处理器根据所述多个结构化扩展定义来生成特里树结构,所述特里树结构包括用于每个结构化扩展定义中的每个类别的路径名称中的每个命名空间部件的节点; 接收对将注册存储库中的数据解释为注册的请求;检查所述特里树结构的节点中的一个或者多个以确定与满足所述请求的命名空间对应的节点;以及使用与所述节点对应的类别来标识所述注册的适当类别。
3.如权利要求1所述的计算设备,在每个结构化扩展定义中的每个类别的路径名称中的每个命名空间部件具有关联的存储器位置,并且命名空间部件的每个路径名称由指向用于所述命名空间部件的相关联存储器位置的指针来引用。
4.如权利要求1所述的计算设备,其中所述分析至少部分基于与在所述注册存储库中维护的一个或者多个本地注册的类别相对应的多个结构化扩展定义。
5.如权利要求1所述的计算设备,其中分析一个或者多个本地注册是将与命名空间关联的类别中的每个与在所述注册存储库中的对应数据进行比较,并且确定在所述注册存储库中的数据是否符合由所述类别定义的规则,导致发现按照所述注册存储库本地格式的注 ππ册。
6.如权利要求1所述的计算设备,其中分析注册存储库的数据是生成在所述注册存储库中表示的注册列表。
7.如权利要求1所述的计算设备,其中分析注册存储库的数据是生成具有注册的本地表示的问题列表。
8.如权利要求1所述的计算设备,其中访问注册存储库的数据是经由接口模块访问所述注册存储库,所述接口模块被配置成接受一种形式的命令并且将所述命令转换成所述注册存储库特有的形式。
9.如权利要求1所述的计算设备,所述注册存储库除了所述注册之外还包括非注册数据。
10.一种实现于设备上的方法,所述方法包括获得(502,602)按照软件扩展语言编写的结构化扩展定义;以及基于所述结构化扩展定义来修改(510,620)注册存储库,所述注册存储库包括按照所述注册存储库本地的并且与所述软件扩展语言不同的格式存储的注册。
11.如权利要求10所述的方法,还包括将所述结构化扩展定义的一个或者多个注册参数的数据转换成本地注册;以及所述修改注册存储库包括将所转换的数据写入注册存储库的一个或者多个命名空间中。
12.如权利要求10所述的方法,还包括将所述结构化扩展定义的一个或者多个注册参数的数据转换成本地注册; 从所述注册存储库的命名空间读取数据; 比较所转换的数据与所读取的数据;以及只有如果所转换的数据和所读取的数据相同,才从所述注册存储库的命名空间擦除所读取的数据。
13.如权利要求10所述的方法,还包括 从所述注册存储库的名称空间读取数据;将所述数据转换成与所述结构化扩展定义的一个或者多个注册参数相同的格式; 比较所转换的数据与一个或者多个注册参数;以及只有如果所述比较指示所转换的数据和所述一个或者多个注册参数相同,才从所述注册存储库的命名空间擦除所读取的数据。
14.如权利要求10所述的方法,其中所述软件扩展语言定义一个或者多个第一元素,每个第一元素定义用于类别的数据类型; 第二元素,标识一个或者多个第一元素;以及第三元素,指示存储用于所述类别的数据的注册存储库中的位置。
15.如权利要求10所述的方法,还包括获得多个附加结构化扩展定义,其每个与一个或者多个类别对应并且每个按照所述软件扩展语言编写;访问表示按照所述注册存储库本地的格式存储的注册的数据;以及至少部分基于多个附加结构化扩展定义来分析所述注册存储库中的数据。
全文摘要
可以获得多个结构化扩展定义,每个结构化扩展定义对应于一个或者多个类别,并且每个结构化扩展定义用软件扩展语言来编写。可以访问表示按照注册存储库本地的格式维护的一个或者多个注册的数据,并且至少部分基于多个结构化定义来分析这个数据。在其它方面中,获得按照软件扩展语言编写的结构化扩展定义。注册存储库包括按照注册存储库本地并且与软件扩展语言不同的格式存储的注册,并且基于获得的结构化扩展定义来修改注册存储库。
文档编号G06F15/00GK102460381SQ201080026025
公开日2012年5月16日 申请日期2010年6月7日 优先权日2009年6月12日
发明者K. 夸奇 A., A. 布尔丁 T. 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1