当前位置: 首页 > 专利查询>微软公司专利>正文

实体域制造技术

技术编号:2854491 阅读:220 留言:0更新日期:2012-04-11 18:40
描述用于将应用程序的运行时组件组织到实体域框架中的策略。实体域框架包括一或多个以分层方式排列的实体域。每实体域进一步将一或多个组件以分层方式分组在一起。每个实体域可以包括一或多个提供政策给实体域内组件的服务。合成功能将框架耦合在一起,并且进一步提供类似于总线的机制,由此实体可以通过层次结构将服务请求转送直到一个被认为满足请求的域。由实体域框架提供的示例性服务包括生存期管理服务,出错处理服务,等等。分层结构提供有效方式来向将以共同的周境共享功能的组件分组揭示功能,而不要求代价高而且复杂的服务与组件的原子耦合或者服务实例的复制。

【技术实现步骤摘要】

本专利技术涉及管理机器可读代码组件的改进策略。
技术介绍
应用程序可以使用代码组件集合执行它们规定的任务。在面向对象的说明性案例中,例如,应用程序可以在它们的源代码中分配不同的类,这些类可以在运行时使用,以提供执行所定义任务的功能。即,在运行时,计算机器可以实例化这些类,以提供特定的对象(也称为“实例(instance)”)。这些对象存储在计算机器的存储器的已分配部分。在这些对象已经服务于它们相应的目的并且不再需要之后,计算机器可以运行所谓的垃圾收集功能,以从存储器中移除这些对象,因而为其它对象提供创建和存储的空间。在应用程序的运行时执行中的任何给定时间,计算机器的存贮器可以预期存储运行时代码组件的大集合。这些代码组件必须相互交互以执行规定的任务。为此,应用程序将提供把这些代码组件“线连接(wire)”在一起。线连接允许组件引用其它组件,使得组件可以在它们之间交换信息以执行它们分派的任务。应用程序一般在创建、管理和切断这类组件之间线连接的链接时应用某种协议。在外部,这样一个协议导致由最终用户使用的用户界面展示的逻辑流。然而在内部,协议可产生在本质上非结构化的组件互相依赖的复杂网状结构。许多困难源于管理代码组件实例的传统技术。例如,代码开发者在理解应用程序的内部运行时行为时有很大的困难。这会阻止开发者主动地测试应用程序,以发现潜在的软件错误,并且还会阻止开发者成功地揭示还没有检测到的错误源。通常,在运行时显示的软件错误(与例如编译时间相反)经常具有滞后性,只在应用程序执行过程中出现某些条件时才发生。因而,在传统方法中,在将程序向顾客发货之前揭示这些错误是困难的。在其它情况下,应用程序可用无错误方式提供它的服务,但因为各种问题,它以次佳的方式来这么做(即,通过使用比应该要求的更多存储器,或者花费比应该要求的更多时间)。一个特别令人烦恼的错误源源自传统的垃圾收集技术。这些传统技术通过跟踪指向对象的引用链接来确定对象是否不再需要。当链接的数量达到零,则垃圾收集功能处置该对象。该技术可以强加了复杂的记帐需求,因为它必须维护许多引用链接的准确计数。由于这种复杂性,因此该记帐任务经常是错误源。共同的错误导致当一个对象不再有任何用途时,但仍然有实例保持引用链接到该对象。这就起到了当一个对象应该被移除时仍然保持它存在的效果,从而创建一种“僵(zombie)”实例。不用说,这种错误可以导致各种问题,其范围从低劣的存储器利用率(例如“资源泄漏(resouce leak)”到程序崩溃。没有很好地配备传统的策略来解决这些类型的问题。即,因为这些策略在运行时依赖于实例的非结构化网状结构,这是代码开发者很少了解的,它变得难以检测到在该网状结构内收集的这类“僵”实例的发生。而且,传统方法的使用阻止开发者编写有效地在运行时提供某种功能给组件组合。例如,开发者可试图通过使用各种范例将某种功能“线连接”至这些需要该功能的组件来提供该种功能。然而,将服务原子耦合(atomistic couple)到单独的组件代价很大,因为它要求描述这些独立链接的引用信息存贮。而且,如本专利技术所意识到的,已知的方法未能提供合适的机制来允许依赖于相同功能的组件(并且因此共享一个共同的“周境”)来以有效方式访问这样的功能。共享上下文的常规技术(诸如通过使用全局变量)在相对粗粒度的基础提供共享(例如,在过程或者线程等级上),并且因此不足以解决这个问题。对于至少这些说明性和示例性原因,存在对在运行时管理代码组件的更有效策略,它们消除或减少上述一或多个问题。
技术实现思路
按照一个示例性实现,描述一种运行包括运行时组件的集合的机器可读代码的方法。该方法包括将至少一个代码组件分组到分层结构化的实体域中,其中,实体域服从至少一个规定政策(下面为了简单称为单数的“规定政策(prescribed policy)”),并且按照该实体域的政策管理该代码组件。按照另一个示例性方面,分组包括提供服从相应政策的多个实体域。按照另一个示例性方面,多个实体域以父子关系链接在一起。按照另一个示例性方面,每个实体域提供相应于合成功能,将多个实体域耦合到分层的实体域框架中。按照另一个示例性方面,由多个实体域提供的合成功能共同地定义一个耦合机制,通过它实体可通过实体域框架发送请求。按照另一个示例性方面,在一个特定实体域内产生的请求按下面的步骤处理(a)判定特定实体域是否能够满足请求,如果是,则在特定实体域处理请求;(b)如果特定实体域不能满足请求,判定特定实体域的父实体域是否能够满足请求,并且如果是,则在父实体域处理请求;以及(c)如果父实体域不能满足请求,则重复操作(b)直到满足请求或者确定无法满足请求。按照另一个示例性方面,由实体域提供的上述政策属于上述至少一个组件的生存期管理,并且管理包括基于生存期管理政策控制上述至少一个组件的确定性关闭。按照另一个示例性方面,按照生存期管理政策的实体域的关闭包括协调包括在实体域内的任何嵌套的生存期域的递归关闭;提供关闭通知给至少一个已经预先注册接收这类通知的组件;以及切断在实体域外的对象到实体域中的引用链接。按照另一个示例性方面,由实体域提供的上述政策属于出错处理管理,以及其中,管理包括基于出错处理管理政策控制与上述实体域相关联的错误的顺序处理。按照另一个示例性方面,实体域是在至少一个其它封闭实体域内的嵌套实体域,以及其中,管理包括如果嵌套实体域不能符合要求地处理出错处理任务,则将出错处理任务推迟到上述至少一个封闭实体域。下面描述其它示例性实现。附图说明图1例示组件在实体域框架中的示例性组织。图2例示在图1的实体域框架中可得到的服务的示例性集合。图3例示可以用于在图1的实体域框架中查找服务的示例性查找功能的操作。图4例示图1的实体域框架示例性地应用程序于程序生存期管理的任务。图5例示图1的实体域框架示例性地应用程序于出错处理的任务。图6例示创建图1的实体域框架的示例性过程。图7例示在图1的实体域框架内查找服务的示例性过程。图8例示关闭图1的实体域框架的一些部分的示例性过程。图9例示实现图1所示实体域框架诸方面的示例性计算机器环境。遍及本说明书和附图使用相同的数字引用相同的组件和特征。100系列的数字指最初在图1中出现的特征,200系列的数字指最初在图2中出现的特征,300系列的数字指最初在图3中出现的特征,等等。详细说明下面的描述阐述将组件分组到实体域框架和使用该框架管理这些组件的策略。实体域框架可以将这些组件组织到实体域的分层结构中。每个实体域可以包括一或多个元素组件和合成功能。合成功能将元素组件在一个实体域内分组在一起。实体域框架还将相应的实体域的合成功能耦合在一起,以创建实体域的分层结构。每个实体域可以提供一或多个服务。通常,阻止实体直接与实体域框架交互。在实体域框架内的实体可以使用查找功能访问服务。查找功能通过经由分层结构上移访问服务,成功地判定每个实体域是否能够提供所请求的服务。在一个示例性应用中,生存期管理服务被应用于实体域,因此建立生存期域。生存期服务控制在生存期域内的实体在关闭时被移除的方式。每个生存期域包括一个生存期指挥器来实现生存期服务。而且,每个生存期域可以直接由生存期所有者来管理。生存期域可以嵌套在其它生存期域中。生存期指挥本文档来自技高网
...

【技术保护点】
一种运行包括运行时组件的集合的机器可读代码的方法,其特征在于,包括:将至少一个代码组件分组到一分层结构化实体域中,其中,所述实体域服从一规定政策;以及按照所述实体域的政策管理所述至少一个代码组件。

【技术特征摘要】
US 2004-9-30 10/955,6931.一种运行包括运行时组件的集合的机器可读代码的方法,其特征在于,包括将至少一个代码组件分组到一分层结构化实体域中,其中,所述实体域服从一规定政策;以及按照所述实体域的政策管理所述至少一个代码组件。2.如权利要求1所述的方法,其特征在于,所述实体域提供将所述至少一个组件耦合至所述实体域的合成功能。3.如权利要求1所述的方法,其特征在于,所述分组包括提供服从各自政策的多个实体域。4.如权利要求3所述的方法,其特征在于,所述多个实体域是以自顶向下方式构造的。5.如权利要求3所述的方法,其特征在于,所述多个实体域是以父子关系链接在一起的。6.如权利要求3所述的方法,其特征在于,每个所述实体域提供将所述多个实体域耦合到一个分层的实体域框架的相应的合成功能。7.如权利要求6所述的方法,其特征在于,由所述多个实体域提供的合成功能共同地定义一种耦合机制,通过该机制实体可通过所述实体域框架发送请求。8.如权利要求7所述的方法,其特征在于,与一特定的实体域相关联的请求是通过下列步骤来处理的(a)判定所述特定实体域是否能够满足所述请求,并且如果是,则在所述特定实体域中处理所述请求;(b)如果所述特定实体域不能满足所述请求,则判定所述特定实体域的父实体域是否能够满足所述请求,并且如果是,则在所述父实体域处理中请求;以及(c)如果父实体域不能满足请求,重复操作(b),直到满足所述请求或者确定无法满足所述请求为止。9.如权利要求1所述的方法,其特征在于,由所述实体域提供的政策属于所述至少一个组件的生存期管理,并且所述管理包括基于所述生存期管理政策控制所述至少一个组件的确定性关闭。10.如权利要求9所述的方法,其特征在于,所述实体域包括多个组件,并且所述管理包括将所述多个组件作为一个单元关闭。11.如权利要求9所述的方法,其特征在于,所述实体域是包括至少一个嵌套域的封闭生存期域,并且所述管理在封闭生存期域之前协调所述至少一个嵌套的封闭生存期域的关闭。12.如权利要求9所述的方法,其特征在于,所述管理包括提供一关闭通知给至少一个事先已经注册要接收这类通知的组件。13.如权利要求9所述的方法,其特征在于,所述生存期管理政策容纳所述实体域之外提供的生存期所有者功能,并且所述管理包括使用所述所有者功能来启动所述至少一个组件的关闭。14.如权利要求9所述的方法,其特征在于,所述管理包括切断从所述实体域之外的对象到所述实体域中的引用链接。15.如权利要求14所述的方法,其特征在于,所述生存期管理政策容纳生存期所有者功能,并且其中,所述管理包括使用所述所有者功能来执行切断。16.如权利要求1所述的方法,其特征在于,由所述实体域提供的政策属于出错处理管理,并且其中,所述管理包括基于所述出错处理管理政策控制与所述实体域相关联的错误的顺序处理。17.如权利要求16所述的方法,其特征在于,所述实体域包括多个组件,并且所述管理包括将相同的出错处理管理政策应用于所有所述多个组件。18.如权利要求16所述的方法,其特征在于,所述实体域是在至少一个其它封闭实体域内的嵌套实体域,并且其中,所述管理包括如果所述嵌套实体域不能符合要求地处理出错处理任务,则将所述出错处理任务推迟到所述至少一个封闭实体域。19.一种用于实现权利要求1所述的分组和管理的机器可读介质。20.一种包括被配置成实现权利要求1所述的分组和管理的逻辑的装置。21.一种提供实现实体域框架的数据结构的机器可读介质,所述数据结构包括分层结构化的实体域,它...

【专利技术属性】
技术研发人员:CA斯兹帕司基BM欧兰尼克B施雅姆森达AF阿哈玛德AH华生
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1