通过隐式应用模型来标识应用资源的制作方法

文档序号:6384313阅读:252来源:国知局
专利名称:通过隐式应用模型来标识应用资源的制作方法
技术领域
本发明涉及一种在计算环境中实施的方法,更具体地,涉及通过隐式应用模型来标识应用资源。
背景技术
计算机和计算系统已经影响了现代生活的几乎每个方面。计算机通常在工作、休闲、保健、运输、娱乐、家政管理等中都有涉猎。计算机应用由众多独立的组件(例如,文件、注册表键、服务、网站、用户等)组成,这些组件被遍布放置在系统中,但不带有各独立部分之间的清楚的链接。各独立部分之间的断开使得诸如标识应用资产、备份、修复以及应用移除之类的动作变得复杂。在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。

发明内容
此处示出的一个实施例涉及一种在计算环境中实施的方法。方法包括用于确定离散应用边界的动作。方法包括标识应用的一个或多个最初组件。方法还包括标识所述应用的一个或多个最初组件的静态相关的组件。方法还包括标识所述应用的一个或多个最初组件的动态相关的组件。标识静态相关组件和标识动态相关组件被迭代执行。方法还包括基于静态相关组件和动态相关组件来标识应用的离散边界。提供本发明内容以便以简化形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容既不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定要求保护的主题的范围。另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。


为了描述可获得本主题的上述和其它优点和特征的方式,将通过参考附图中示出的本主题的具体实施例来呈现以上简要描述的本主题的更具体描述。应该理解,这些附图仅描绘了各典型实施例,因此其不应被认为是对范围的限制,各实施例将通过使用附图用附加特征和细节来描述并解释,在附图中图1示出确定系统资源的示例;以及图2示出确定离散应用边界的方法。
具体实施例方式各实施例可包括构建隐式的应用模型来标识应用的资源的功能。各实施例可包括使用ー组独立或以各种组合形式使用的试探来标识与任意软件应用相关联的资产。各种可用的发现机制可被一起用来构建应用模型。应用模型可被用于各种目的,包括但不限于将工作中的应用安装移动到另一机器、验证应用的安装、创建应用的可重分发包、修复不工作的或损坏的应用安装等等。为了构建应用模型,各实施例可实现标识过程,过程包括(在一些示例实施例中)可被分解成三个类别的试探,三个类别是静态发现试探、动态发现试探以及选择细化试探。静态方法包括检查系统上的人工产品以确定属于给定应用的系统内容的子集。动态方法包括监视应用使用以确定应用访问哪些资源。细化方法被用于改进应用模型的精确度。这些试探通过移除其它标识技术检测到的假阳性以及用与被发现的内容有关的额外资源来扩充应用模型以改进应用模型的准确性。
静态和动态技术关注于向系统提供有趣的内容。这些技术用作为应用模型发现过程的入口点。细化技术进ー步处理由静态和动态发现标识的信息。尽管细化技术中的许多都采用静态分析,但由于它们的迭代性质,与静态发现部分分开地调用它们。现在參考图1,示出了ー个示例。图1示出应用102。静态发现可被用于表征应用102的ー些部分。例如,静态发现的使用使得包括静态标识模块的应用模型生成器104能够查找应用资源,而无需真正地运行应用102。这包括查看诸如例如安装器或卸载数据之类的イ目息以标识遍布在系统中的资源。例如,一个实施方式可使用MSI Windows Installer(由华盛顿州雷蒙德市的微软公司提供)的卸载信息来定位资源。在一些实施例中,静态发现可额外地或替换地包括处理应用文件内容以及配置设置(诸如基于Windows 的应用的注册■表内容)来定位资源。例如,文件可在XML或其它配置文档中被引用。动态发现可被用于表征应用102的ー些部分。为了更好地理解应用102,实施例可将监视层106注入到应用102中,监视层106有效地截取并解释资源请求。在一些实施例中,这ー监视层可被实现为DLL,其挂钩系统API的一个子集以截取文件请求和/或配置请求(诸如基于Windows 的应用中的注册表请求)。监视层106可利用应用102本身的动作来构建对应用102用来操作的资源的准确描述。这一信息可被提供给应用模型生成器104。各实施例可被实现成使用监视层106来监视以下动作中的ー个或多个文件访问;配置访问;C0M对象实例化;规范使用;细化等等。对于配置访问,一些实施例可被实现在Wmdows 环境中,使得配置访问可包括对注册表条目的访问。对于规范使用,一些实施例可使用 WMI (Windows Management Instrumentation, Windows 管理规范)。一些实施例可为应用模型细化使用两种高级技术即黑名单110以及隐含包含的使用中的ー个或多个。黑名单110提供用于从应用模型中移除实际上不是应用的一部分的内容。通常,这一列表包含属于共享的基础系统的一部分的内容,诸如共享的库或配置条目(诸如在实施基于微软的系统的应用中的共享的DLL或注册■表条目),但它可包括任何内容。这ー过滤器的使用可被用在流水化化应用模型的内容中以仅包括真正属于应用的一部分的信息。存在众多其中可以实施黑名单110的方式。一些实施例使用主动运行的系统来生成这一列表。另有一些实施例可使用现有应用模型来填充黑名单。例如,现有模型可具有与其相关联的黑名单用于标识系统资源(与应用资源相对)。这一现有黑名单可被用来填充其它黑名单。作为补充或替代,可使用其它数据源。一些可能的替代包括休眠图像(例如,虚拟硬盘)、数据库、基于文本的表示和/或用户提供的信息。隐含包括技术通过寻找与已经被发现的内容相关的内容来对应用模型进行补充。可被实施的一些示例包括基于应用类型的标识的对服务器或服务元数据的标识;基于文件包括的对服务、网站以及COM对象的标识;基于文件ACL(访问控制列表)信息的对本地用户/组的标识;基于本地组成员关系的对本地用户的标识等等。在一个特定实施例中,网站数据(即构成网站内容的文件)可通过标识来自由华盛顿州雷蒙德市的微软公司提供的HS服务器(因特网信息服务)的元数据来标识。细化技术可被迭代地应用。例如,对文件的标识可导致对本地组的添加,这又可进一步导致对本地用户的标识。在这种情况下,通过迭代应用,挑选单个文件将该文件、本地组以及本地用户添加到应用模型中一些实施例可使用范围调整机制来执行细化。范围扩展可扩展特定模型条目的范围以覆盖更大的数据集。说明性地,如果一个实施例确定单个文件是应用的足迹的一部分,则该实施例可调整范围以表明与该文件处于相同目录中的所有文件都应当是足迹的一部分。例如,如果发现c: \program files\my app\foo. exe是应用的一部分,贝U可以假设像c:\program files\my app\bar.1ni之类的其它内容也都是应用的一部分,因为它们位于相同的目录中。此外,各实施例可查看所选择的项目的路径(诸如文件路径,或在微软公司提供的各种技术中的注册表路径)并且确定在碰到不应当位于模型中的资源之前其父层实施例可向上经过多远。例如,如果 c: \programf iles\application\subdir\service. exe 位于应用模型中。各实施例可采用这一路径并开始向回走以确定c:\program files\application\subdir是否应当在模型内,然后是c:\program f iles\application,再然后是c:\programfiles。可以知道c: \program files不应当在模型内,因为它目前在黑名单中。各实施例可因此调整service, exe的初始条目的范围以覆盖c:\program files\application中的全部内容,该目录是假设应当在模型内的最后一个目录。在另一范围调整示例中,如果实施例确定信息服务应用池是应用的足迹的一部分,则各实施例可确定属于池的一部分的任何信息服务网站也都是应用的一部分。作为替换或补充,一些实施例可使用依赖性走查来执行细化。以下示例示出一个示例实施例。该示例追踪由于包括单个文件而引起的对应用模型的影响。这一示例开始于静态分析标识用于包括在应用模型中的文件(在这一示例中,是“default, aspx”)。当文件被添加到模型中时,隐式的包括试探被执行并用于将该文件标识为属于web应用。知道该文件属于web应用之后,标识可包括更多关于该应用的附加数据存储,在这一示例中,该附加数据存储是信息服务器,在示出的示例中,该信息服务器是华盛顿州雷蒙德市的微软公司提供的HS。各实施例可通过IIS搜索引用该文件的网站,并在应用模型中包括关于所标识的网站的信息以及与该网站相关联的其它文件。网站元数据和文件的包括触发对网站本身以及已被带入到应用模型中的新文件的隐式包括试探。关注于网站本身,各实施例可确定网站的应用池在特定本地用户帐户下执行。各实施例可随后将该用户帐户添加到应用模型。在这ー过程的末尾,各实施例将基于单个文件的发现标识出多个应用资产(例如,文件、Iis元数据以及本地用户)。各实施例可实施利用用于构建应用模型的集中过程的集中模型构建。这ー过程可接收来自多个源的输入并将这ー输入聚集到单个综合应用模型中。这ー方法在一些实施例中是有用的,因为现代软件应用包括多个过程,并且依赖于来自该应用的单个方面的输入可能不能提供与查看应用整体相同的画面。尽管ー些实施例使用这ー集中过程来构建更全面的模型,但所描述的技术不限于这ー集中过程。以下讨论现涉及可以执行的多种方法以及方法动作。虽然用特定次序讨论或用以特定次序发生的流程图示出了各个方法动作,但除非明确规定否则不需要特定次序,或因为ー动作依赖于另一动作在执行该动作之前完成而需要特定次序。现在參考图2,示出了方法200。可以在计算环境中实施方法200。方法200包括用于确定离散应用边界的动作。方法200包括标识应用的ー个或多个最初组件(动作202)。例如,如以上所说明的,与应用相关联的文件(诸如以上示出的“default, aspx”)可被标识。这可以是用于定义应用边界的最初开始。方法200还包括标识所述应用的ー个或多个最初组件的静态相关的组件(动作204)。例如,可执行静态分析来静态标识什么组件与最初标识的组件相关。上文以及以下示出的示例中讨论了各种静态分析技木。值得注意的是,标识静态相关组件可通过标识与最初组件直接静态相关的静态相关组件或者通过标识与在执行静态和/或动态分析时发现的组件静态相关的静态相关组件来完成。方法200还包括标识所述应用的ー个或多个最初组件的动态相关的组件(动作206)。可执行方法200,其中标识动态相关组件包括在运行时监视被标识的应用组件的资源访问。图1示出可被用于标识动态相关组件的监视层106。具体来说,如以上所示的,监视层可发现应用执行的动态调用以帮助标识应用的各部分。值得注意的是,标识动态相关组件可通过标识与最初组件直接动态相关的动态相关组件或者通过标识与在执行静态和/或动态分析时发现的组件动态相关的动态相关组件来完成。标识静态相关组件(动作204)和标识动态相关组件(动作206)可迭代执行。例如,可对由步骤204和206发现的与最初组件相关的组件进行分析以发现与相关组件相关的组件。如前面所提到的,迭代地执行静态和动态标识可包括采用一遍静态或动态标识的结果并将同样的试探应用于该结果,从而生成更大的将被包括的组件集合。方法200还包括基于静态相关组件和动态相关组件来标识应用的离散边界(动作208)。具体来说,通过方法200的各动作标识的组件(包括最初组件)可被用于离散地标识特定应用的边界。例如,在一些实施例中,离散边界定义了应用的功能性实例所需的组件。例如,如果被标识的组件全部都被传输到被配置成主控该应用的一不同机器或设备,可使该应用工作而无需添加附加应用组件。方法200还可包括基于离散边界创建可再分发的包。例如,被标识的组件可被打包成可再分发的包。可再分发的包可被用于部署或修复应用。例如,可再分发的包可被放置在安装介质上并被用于安装应用。作为替换,可再分发的包可由系统用于标识缺失的、损坏的、或过时的应用部件,并且随后使用可再分发的包来替换损坏的或缺失的应用部件或者提供缺失的应用部件。
方法200还可包括基于离散边界内的组件对应用的正确性或完整性中的至少一个进行验证。例如,可以知道什么组件应当对于给定应用可用。将基于分析什么组件实际可用与什么组件应当可用进行比较来帮助确定组件是否缺失、损坏、过期等。在一些实施例中,这可通过标识应用的另一已知正工作的安装的第二离散边界来实现。可对应用的两个不同安装进行比较。此外,第二离散边界中标识的组件可被用于修复第一离散边界中的缺失、损坏或过时的组件。可执行方法200,其中标识静态相关组件包括检查公知的扩展点。这样的扩展点可以是操作系统、服务器注册(诸如IIS服务器注册)或对象注册(诸如COM注册)的扩展点。方法200还可包括将标识的组件放入黑名单以从应用边界中排除组件。例如,如图1中所示,黑名单110可被创建以移除静态和动态分析期间发现的、但已知不是应用本身的一部分的组件。例如,应用所使用的操作系统组件可被标识在黑名单中以防止它们被包括在应用边界中。可执行方法200,其中标识应用的一个或多个最初组件包括接收用户输入。具体来说,用户可指定已知是应用的一部分的组件。被指定的组件可随后被用于标识应用的其它组件。作为替换或补充,各实施例可使用诸如MSI数据之类的安装器日志来标识应用的组件。在又一作为替换或补充的实施例中,可使用白名单来标识应用的组件。这样的被标识的组件可随后被用来寻找其它组件。可执行方法200,其中标识离散组件包括接收用户输入。例如,用户可指定属于应用的应用的特定部分。这一用户输入可被简单地添加到离散边界,或被用于使用以上概括的各种方式寻找应用的附加部分。此外,各种方法可由包括一个或多个处理器和诸如计算机存储器等计算机可读介质的计算机系统来实施。具体而言,计算机存储器可存储计算机可执行指令,这些指令在由一个或多个处理器执行时使得诸如各实施例中所述的各个动作等各种功能被执行。本发明的各实施例可以包括或利用包含计算机硬件的专用或通用计算机,这将在下文中更详细地讨论。本发明范围内的各个实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理以及其他计算机可读介质。这种计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各个实施例可包括至少两种明显不同的计算机可读介质物理计算机可读存储介质和传输计算机可读介质。物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD
等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传送电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于承载计算机可执行指令或数据结构形式的期望程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。以上介质的组合也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输计算机可读介质自动转移到物理计算机可读存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接ロ模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机可读物理存储介质。因此,计算机可读物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如ニ进制代码、诸如汇编语言之类的中间格式指令、或者甚至源代码。虽然用结构特征和/或方法动作专用的语言描述了本主題,但是应当理解,所附权利要求书中定义的主题不必限于以上所述的特征或动作。相反,所述的特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交換机等等。本发明也可在其中通过网络(通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)链接的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备两者中。本发明可具体化为其他具体形式而不背离其精神或特征。所述实施例在所有方面都应被认为只是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非以上描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都涵盖在权利要求书的范围内。
权利要求
1.一种在计算环境中的用于确定离散应用(102)边界的方法(200),所述方法(200)包括标识应用(102)的一个或多个最初组件(202);标识与所述应用(102)的一个或多个最初组件静态相关的组件(204);标识与所述应用(102)的一个或多个最初组件动态相关的组件(206);其中,标识静态相关组件和标识动态相关组件被迭代执行;以及基于所述一个或多个最初组件、所述静态相关组件以及所述动态相关组件来标识所述应用(102)的离散边界。
2.如权利要求1所述的方法,其特征在于,所述离散边界定义应用的功能性实例所需的组件。
3.如权利要求1所述的方法,其特征在于,还包括基于所述离散边界创建可再分发的包。
4.如权利要求1所述的方法,其特征在于,还包括基于所述离散边界内的组件对应用的正确性或完整性中的至少一个进行验证。
5.如权利要求1所述的方法,其特征在于,标识静态相关组件包括检查操作系统或操作系统的组件的公知扩展点。
6.如权利要求1所述的方法,其特征在于,标识静态相关组件包括检查资源间的公知关系。
7.如权利要求1所述的方法,其特征在于,标识动态相关组件包括在运行时监视被标识的应用组件的资源访问。
8.如权利要求1所述的方法,其特征在于,还包括将标识的组件放入黑名单以从应用边界中排除组件。
9.如权利要求1所述的方法,其特征在于,标识应用的一个或多个最初组件包括接收用户输入。
10.如权利要求1所述的方法,其特征在于,标识离散组件包括接收用户输入。
全文摘要
本发明涉及通过隐式应用模型来标识应用资源。确定离散应用边界。方法包括标识应用的一个或多个最初的组件。方法还包括标识所述应用的一个或多个最初组件的静态和/或动态相关的组件。标识静态相关组件和标识动态相关组件被反复执行。方法还包括基于静态相关组件和动态相关组件来标识应用的离散边界。
文档编号G06F9/44GK103019717SQ20121054459
公开日2013年4月3日 申请日期2012年12月14日 优先权日2011年12月15日
发明者J·东克尔, E·杰瓦特, D·T·伊索卡 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1