书签 分享 收藏 举报 版权申诉 / 26

在分层引用数据中过滤组件的方法和系统.pdf

  • 上传人:xia****o6
  • 文档编号:6366564
  • 上传时间:2019-06-04
  • 格式:PDF
  • 页数:26
  • 大小:1.39MB
  • 摘要
    申请专利号:

    CN201510127593.2

    申请日:

    2015.02.16

    公开号:

    CN104866300A

    公开日:

    2015.08.26

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 9/44申请日:20150216|||公开

    IPC分类号:

    G06F9/44

    主分类号:

    G06F9/44

    申请人:

    达索系统美洲公司

    发明人:

    M·拉加万; L·S·巴赫; D·里格; P·E·海恩斯

    地址:

    美国马萨诸塞州

    优先权:

    61/942915 2014.02.21 US; 14/572367 2014.12.16 US

    专利代理机构:

    北京市中咨律师事务所11247

    代理人:

    杨晓光; 于静

    PDF完整版下载: PDF下载
    内容摘要

    本发明涉及在分层引用数据中过滤组件的方法和系统。提供一种用于从逻辑组件分层过滤组件的计算机实施方法。所述方法使用具有处理器和存储器的计算设备。所述方法包括在所述存储器中识别与所述逻辑组件分层关联的过滤器。所述方法还包括,通过所述处理器,比较所述逻辑组件分层的子组件和所述过滤器。所述方法进一步包括,基于所述子组件与所述过滤器的所述比较,识别用于过滤的所述子组件。所述方法还包括从所述逻辑组件分层过滤所述子组件。

    权利要求书

    权利要求书
    1.  一种用于从逻辑组件分层过滤组件的计算机实施的方法,所述方法使用具有处理器和存储器的计算设备,所述方法包括:
    在所述存储器中识别与所述逻辑组件分层关联的过滤器;
    通过所述处理器,比较所述逻辑组件分层的子组件和所述过滤器;
    基于所述子组件与所述过滤器的所述比较,识别用于过滤的所述子组件;
    从所述逻辑组件分层过滤所述子组件。

    2.  如权利要求1所述的方法,其中识别过滤器进一步包括识别包括范围标准的所述过滤器,所述范围标准限定了在所述逻辑组件分层内的应用所述过滤器的组件集。

    3.  如权利要求2所述的方法,其中识别过滤器进一步包括识别所述过滤器,其中所述范围标准包括在所述逻辑组件分层内的附接节点的识别。

    4.  如权利要求3所述的方法,其中识别过滤器进一步包括识别所述过滤器,其中所述组件集被限定为包括在所述逻辑组件分层内的所述附接节点处或以下的节点。

    5.  如权利要求1所述的方法,其中识别过滤器进一步包括识别包括限定了一个或多个组件特征的识别标准的所述过滤器,并且其中,比较子组件进一步包括比较所述识别标准和所述子组件的特征。

    6.  如权利要求5所述的方法,其中比较所述识别标准进一步包括将组件名称、组件标识符、组件类型以及组件版本标识符中的一个或多个与所述子组件的特征进行比较。

    7.  如权利要求5所述的方法,其中比较所述识别标准进一步包括,至少部分基于所述分层内的所述子组件的关系分层名称,来识别过滤组件。

    8.  一种从逻辑组件分层过滤组件的计算设备,所述计算设备包括通信耦合到存储器的处理器,所述存储器包括逻辑组件分层,所述计算设备被编程为:
    在所述存储器中识别与所述逻辑组件分层关联的过滤器;
    将所述逻辑组件分层的子组件和所述过滤器进行比较;
    基于所述子组件和所述过滤器的所述比较,识别用于过滤的所述子组件;以及
    从所述逻辑组件分层过滤所述子组件。

    9.  如权利要求8所述的计算设备,其中所述过滤器包括范围标准,所述范围标准限定在所述逻辑组件分层内的应用所述过滤器的组件集。

    10.  如权利要求9所述的计算设备,其中所述范围标准包括在所述逻辑组件分层内的附接节点中的识别。

    11.  如权利要求10所述的计算设备,其中所述组件集被限定为包括在所述逻辑组件分层内的附接节点处及以下的节点。

    12.  如权利要求8所述的计算设备,其中所述过滤器包括限定一个或多个组件特征的识别标准,并且其中比较子组件进一步包括比较所述识别标准和所述子组件的特征。

    13.  如权利要求12所述的计算设备,其中比较所述识别标准进一步包括将组件名称、组件标识符、组件类型以及组件版本标识符中的一个或多个与所述子组件的特征进行比较。

    14.  如权利要求12所述的计算设备,其中比较所述识别标准进一步包括,至少部分基于所述分层内的所述子组件的关系分层名称,来识别过滤组件。

    15.  至少一种非暂时性计算机可读存储介质,其上实施计算机可执行指令,其中当被至少一个处理器执行时,所述计算机可执行指令致使所述处理器:
    识别与逻辑组件分层关联的过滤器;
    将所述逻辑组件分层的子组件和所述过滤器进行比较;
    基于所述子组件和所述过滤器的所述比较,识别用于过滤的所述子组件;以及
    从所述逻辑组件分层过滤所述子组件。

    16.  如权利要求15所述的计算机可读存储介质,其中所述过滤器进一步包括范围标准,所述范围标准限定在所述逻辑组件分层内的应用所述过滤器的组件集。

    17.  如权利要求16所述的计算机可读存储介质,其中所述范围标准进一步包括在所述逻辑组件分层内的附接节点的识别,其中所述组件集被限定为包括在所述逻辑组件分层内的所述附接节点处或以下的节点。

    18.  如权利要求15所述的计算机可读存储介质,其中所述过滤器包括限定一个或多个组件特征的识别标准,其中比较子组件进一步包括比较所述识别标准和所述子组件的特征。

    19.  如权利要求18所述的计算机可读存储介质,其中比较所述识别标准进一步包括将组件名称、组件标识符、组件类型以及组件版本标识符中的一个或多个与所述子组件的特征进行比较。

    20.  如权利要求18所述的计算机可读存储介质,其中比较所述识别标准进一步包括,至少部分基于所述分层内的所述子组件的关系分层名称,来识别过滤组件。

    说明书

    说明书在分层引用数据中过滤组件的方法和系统
    相关申请的交叉引用
    本申请要求2014年2月21日递交的美国临时专利申请No.61/942,915的权益,并通过引用将其整体并入本文中。
    技术领域
    本发明通常地涉及在产品设计环境中管理组件的分层,更具体地,涉及从组件分层中过滤组件。
    背景技术
    当设计和开发大型集成系统尤其是电路时,通常没有一组工程师负责系统的整个设计。相反地,通常多组工程师负责系统组件的设计,整体的设计为每组工程师提供的组件设计的总体。随着系统变得更加复杂,系统的越来越多的方面被分解成子组件。可以将一个父组件分解成多个子组件。组件和子组件的这种设置在代表整个系统的分层中关联。
    在一些情况下,组件设计者或设计组可能希望从整个分层中排除某些组件。例如,一些开发者和设计者可建立能够减少设计和组件分层实现次数的可重用组件,但是组件重用可能导致在组件分层内的不同组件版本之间的冲突,该冲突必须被解决。在另一个实例中,一些开发者可能希望移除某些子组件,从而他们可以聚焦在组件分层的特定子集上。
    发明内容
    一方面,提供一种用于从逻辑组件分层过滤组件的计算机实施方法。所述方法使用具有处理器和存储器的计算设备。所述方法包括在所述存储器中识别与所述逻辑组件分层关联的过滤器。所述方法还包括,通过所述处理器,将所述逻辑 组件分层的子组件与所述过滤器进行比较。所述方法进一步包括,基于所述子组件与所述过滤器的比较,识别适用于过滤的所述子组件。所述方法还包括从所述逻辑组件分层过滤所述子组件。
    另一方面,提供一种从逻辑组件分层来过滤组件的计算设备。所述计算设备包括通信耦合到存储器的处理器。所述存储器包括所述逻辑组件分层。所述计算设备被编程为,在存储器中识别与所述逻辑组件分层关联的过滤器。所述计算设备还被编程来将逻辑组件分层的子组件与所述过滤器进行比较。所述计算设备还被编程为,基于所述子组件与所述过滤器的所述比较,识别用于过滤的所述子组件。所述计算设备还被编程为从所述逻辑组件分层过滤所述子组件。
    又一方面,提供至少一种在其上实施有计算机实施指令的非暂时性计算机可读存储介质。当由至少一个处理器执行时,所述计算机可执行指令致使所述处理器来识别与逻辑组件分层关联的过滤器。所述计算机可执行指令还致使所述处理器将所述逻辑组件分层的子组件与所述过滤器进行比较。所述计算机可执行指令还致使所述,基于所述子组件与所述过滤器的所述比较,处理器来识别用于过滤的所述子组件。所述计算机可执行指令还致使所述处理器从所述逻辑组件分层过滤所述子组件。
    附图说明
    图1-9显示了这里描述的方法和系统的示例性实施例。
    图1是示例性组件分层的框图。
    图2是与图1显示的组件分层相关的版本化模块的框图。
    图3是图2显示的已版本化模块在第一时间的快照(snapshot)。
    图4是图2显示的版本化模块内容在第二时间的快照。
    图5是包括过滤器的示例性组件分层的框图。
    图6是说明了识别和集成过滤引用的示例性分层负载过程的流程图。
    图7是示例性分层管理系统的框图,该系统被配置为在图5显示的组件分层中实施过滤引用。
    图8是在计算设备内的数据库的框图,该数据库与其它相关计算组件一起可 以被用于管理图5显示的组件分层。
    图9是从图5显示分层中过滤组件的示例方法。
    具体实施方式
    通过示例而非限制的方式,以下详细的描述阐述了本发明的实施。可以预期的是,本公开具有通用应用来管理组件分层。
    应当把这里使用的单数表述和跟在单词“a”或“an”后面的元件或步骤理解为不排除复数个元件或步骤,除非明确地表述了这种排除。进一步地,对本公开“示例性实施例”或“一个实施例”的引用不是意在为被理解为排除了也并入表述特征的其它实施例的存在。
    这里使用的术语“数据库”可以表示数据体、关系数据库管理系统(RDBMS)中的任意一个或两者。这里使用的数据库可以包括任何数据的集合,该数据包括分层数据库、关系数据库、平面文件数据库、对象关系数据库、面向对象数据库以及任何存储于计算机系统中的其它结构化记录或数据的集合。以上的示例仅仅是示例,从而并不意在以任何方式限制术语数据库的限定和/或含义。RDBMS的示例包括,但是不限制包括,Database、MySQL、DB2、SQL Server、以及PostgreSQL。然而,可以使用任何数据库来实现这里描述的系统和方法。(Oracle是California州Redwood Shores地区的甲骨文公司的注册商标;IBM是New York的Armonk地区的国际商业机器公司的注册商标;Microsoft是Washington州Redmond地区的微软公司的注册商标;Sybase是California州Dublin地区的Sybase的注册商标)。
    用在这里的处理器可以包括任何可编程系统,该系统包括使用微控制器、精简指令集电路(RISC)、专用集成电路(ASIC)、逻辑电路、以及能执行这里描述功能的任何电路或处理器的系统。以上示例仅仅用来示例,从而并不意在以任何方式限制术语“处理器”的限定和/或含义。
    用在这里术语“软件”和“固件”是可以互换的,并且包括由处理器执行的存储在存储器的任何计算机程序,包括RAM存储器、ROM存储器、EPROM存储器、EEPROM存储器、以及非易失性RAM(NVRAM)存储器。以上存储器 类型仅仅是示例,不在于限制用于计算机程序存储的存储器类型。
    在一个实施例中,提供计算机程序,并且在计算机可读介质上实现该计算机程序。在示例性实施例中,在单个计算机系统上执行该系统,而无需连接到服务器计算机。在进一步的实施例中,该系统在环境(Windows是Washington州Redmond地区的微软公司的注册商标)上运行。在另一个实施例中,该系统在大型机环境和服务器环境(UNIX是英国Berkshire郡的Reading市的X/Open有限公司的注册商标)上运行。该应用是灵活的,并且被设计为在各式各样的不同环境上运行而不会影响任何主要功能。在一些实施例中,该系统包括分布多个计算设备之间的多个组件。一个或多个组件可以采取计算机可读介质上嵌入的计算机可执行指令的形式实现。不应当把系统和处理器限制为这里描述的特定实施例。此外,每个系统和每个处理的组件能够被独立实现,并且能够从这里描述的其它组件和处理中分离出来。每个组件和处理还能够与其它组装包和处理组合使用。
    当系统的设计被划分成更小和更可管理的系统组件设计时,包括多个组件的硬件或软件系统的开发会更加高效。为了支持组件分层和处理使用分层过程中可能出现的一些问题,一个或多个子组件可能从整个分层中过滤出去(例如,排除)。
    图1是示例性产品A 110的分层表示100,在产品A 110中可以过滤或排除这里描述的一个或多个组件。产品A 110包括第一组件A1120以及第二组件A2130。第二组件A2130包括2个子组件A2,1140和A2,2150。产品A 110有分层关系111和112分别关联组件A1120和A2130。同样地,组件A2130有分层关系131和132分别关联子组件A2,1140和A2,2150。产品A 110可以包括更多组件(未示出),反过来,组件又包括更多子组件。子组件还可以包括更多子组件等等。
    对于产品A 110的组件或子组件,也可以单独用公式表达分层表示,例如100(例如产品A 110的整个分层表示100的子集的表示)。此外,虽然在这个实施例中元件A 110是一个产品,还是可以把元件A 110作为一个组件,其中把元件A1120和元件A2130作为元件A 110的子组件。同样地,可以把元件A2,1140和元件A2,2150作为组件,用分层关系来表达它们的子组件(未示出)。
    产品A 110可以代表为以模块方式设计的任何硬件或软件系统。例如,产品 A 110可以是汽车,其中组件A1120可以是框架,而组件A2130可以是车的引擎。引擎的子组件A2,1140和A2,2150可以分别是例如引擎的曲轴和汽缸。在另一个实施例中,产品A 110可以是一个集成电路(IC)芯片,其中组件A1120可以是随机存取存储器(RAM),而组件A2130可以是IC芯片的计算机处理单元(CPU)。CPU的子组件A2,1140和A2,2150可以分别是例如CPU的算术逻辑单元(ALU)和控制单元。
    在开发过程中,特定组件的设计组可以已经访问了所有当前和之前组件和/或该组件子组件的设计。设计组可以在分层表示100的任何级别对组件负责。例如,设计组可以用于产品A 110的开发,同样地多个单独的设计组可用于产品A的110组件(例如,组件A1120和A2130)的每一个。利用产品A 110的组件特定设计,产品A 110的设计组可以负责仿真和/或测试产品A 110。
    可以在模块中以文件方式包含产品A 110以及其全部组件A1120和A2130、以及子组件A2,1140和A2,2150的设计,该模块存储在中央数据库或分布式数据库中(图1未示出),用于被任何设计组检索。模块典型地包括一个或多个包括软件代码和/或设计数据的文件。模块可以包含其他模块,并且模块可以被发布甚至打包来重用。在一些实施中,使用服务器端的数据库,例如MA州Waltham市的Dassault Systèmes ENOVIA Corp公司的商业对象数据库。然而,可以使用这里描述的能实现系统和方法操作的任何其它数据库或是数据库的结合。
    为了帮助促进和跟踪组件的开发,模块中存储的组件的每个设计,可以包括关于该模块的特定版本数字,例如模块和/或组件版本。
    利用与图1中描述的组件相同的分层,图2描述了关于特定组件的版本化模块的框图200。产品A 110可以与具有不同模块版本号的多个模块相关联,例如,模块A v1.0 211、A v1.1 212和A v1.2 213。
    图200包括模块分支210、220、230、240以及250。模块分支代表对象集合的按时间顺序排列的更新进展,该对象与特定产品、组件或子组件的具有公用关联。例如,由模块分支210包含或引用的模块A v1.0 211、A v1.1 212和A v1.2 213的集合是产品A 110的不同版本化模块,这些模块每一个都代表了对先行版本化模块后来的更新或改变。用在这里的、共享公用模块分支的模块可以被称为“相 同模块”,例如,从而表示它们是公用下层模块版本谱系的相同或者不同版本。类似地,元件或组件还可以被称为“相同”,如果它们共享公用下层版本谱系(lineage),例如分支210、220、230、240以及250。模块分支220是指模块A1v1.0 221和A1v1.1 222的集合,其中模块A1v1.0 221和A1v1.1 222是与组件A1120相关的不同版本化模块。模块分支230是指模块A2v1.0 231、A2v1.1 232和A2v1.2 233的集合,其中模块A2v1.0 231、A2v1.1 232和A2v1.2 233是与组件A2130相关的不同版本的模块。模块分支240是指与子组件A2,1140相关的模块A2,1v1.0 241的集合。模块分支250是指模块A2,2v1.0 251和A2,2v1.1 252的集合,模块A2,2 v1.0 251和A2,2v1.1 252是与子模块A2,2150相关的不同版本化模块。
    版本化模块(例如模块A v1.0 211、A v1.1 212以及A v1.2 213)传达了在对组件(例如产品A 110)设计的更新或改变的按时间顺序排列的进展之时的某点上,模块已经被更新或改变。从一个模块的由设计组中的一个对组件设计的任何修改能够导致创建有新模块版本号的新模块。例如,组件A2130的设计组改变了模块A2v1.1 232包含的版本1.1的设计,并且用新版本号1.2创建模块A2v1.2 233来保存该新设计。特定组件(例如,组件A2130)能有多个设计版本,每个用不同版本号(例如v1.0、v1.1以及v1.2)存储在单独模块(例如模块A2v1.0 231、A2v1.1 232和A2v1.2 233)中。
    为了更进一步促进产品或组件的开发,在表示特定子模块的组件模块中可以存储一个或多个分层引用。图3和图4描述了不同类型的分层引用的示例,这些不同类型的分层引用从时间t1到t2在产品的特定设计模块和关于该产品的组件的子模块之间存在和改变。图3和图4使用分层表示100的一部分,其中产品A 110包括两个组件,A1120和A2130,而组件A2包括一个子组件A2,1140。子模块可以是由其它模块已经引用的任何模块,以及可以是与该模块相关的组件的子组件相关联的任何模块。例如,在图3中,模块A1v1.0 321和A2v1.0 331是模块A v1.0 311的子模块,而模块A2,1v1.0 341是模块A2v1.0 331的子模块。模块A v1.0 311与组件A 110相关,而子模块A1v1.0 321和A2v1.0 331分别与子组件A1120和A2130相关。
    图3是存储了产品A 110(图2中显示)模块的数据库(图3未显示)内容 在时间t1的示例性快照300。模块A v1.0 311包括产品A 110设计的1.0版本。模块A1v1.0 321和A2v1.0 331分别包括组件A1120和A2130(图2中均显示)设计的1.0版本。模块A2,1v1.0 341包括子组件A2,1140(图2显示)设计的1.0版本。模块分支320是指关于组件A1120的模块按时间顺序排列的进展,模块分支320包括或涉及在时间t1的模块A1v1.0 321。模块分支330是指组件A2130模块的按时间顺序排列的进展,模块分支330包括或涉及在时间t1的模块A2v1.0 331。模块分支340是指子组件A2,1140模块按时间顺序排列的进展,模块分支340包括或涉及在时间t1的模块A2,1v1.0 341。
    时间t1可以是,例如,产品A 110的设计组第一次将模块A v1.0 311传输到数据库的时间。模块A v1.0 311包括分配了版本号1.0的产品A 110的第一设计。在这个时间或在这个时间之前,设计组给“α”标记380限定一个动态分层引用351而给模块A2v1.0 331限定一个静态分层引用353。
    在图3的实例中,创建静态分层引用352来指向模块A1v1.0 321,以下将会描述该模块是“α”标记380在时间t1引用的模块。因此,最初分层引用351和352(分组为350)均引用相同模块,尽管它们指向不同对象。通过在创建动态分层引用时自动限定静态分层引用,即使当该动态分层引用指向后续版本化模块时,设计组以后能方便地使用该静态分层引用来确定动态分层引用的初始关联。
    以类似的方式,在该设计组将模块A2v1.0 331传输或提交给数据库时或之前,由该设计组创建用于组件A2的模块A2v1.0 331的动态分层引用361。在这个实例中,组件A2的设计组将动态分层引用361限定为指向“黄金(golden)”标记390。黄金标记390最初指向模块A2,1v1.0 341。自动将静态分层引用362限定为指向动态分层引用361最初指向的相同模块,即模块A2,1v1.0 341。尽管指向不同对象,最初,分层引用361和362(分组为360)均引用相同模块。
    在图3阐述的实例中,在将与组件关联的模块提交到数据库时,创建该模块的分层引用。但是,可以在已提交模块之后的任何时间,添加、删除或更改存储在模块中的分层引用。
    图4是存储产品A 110的模块(在图2中示出)的数据库(未在图4 中示出)的内容在随后时间t2时的快照400。在t1和t2之间的某一时间,组件A1120、A2130和A2,1140的设计组分别传输新模块A1v1.1 421、A2v1.1431和A2,1 v1.1 441。此外,组件A2,1140的设计组将“黄金”标记390从模块A2,1v1.0 341移动到A2,1v1.1 441。
    通常,分层引用可以是动态的或静态的。静态分层引用(例如,分层引用352、353和362)引用包括组件或子组件的特定版本的模块。例如,静态分层引用352引用模块A1v1.0 321,该模块包括组件A1120的设计版本1.0。另一方面,动态分层引用(例如,分层引用351和361)可以引用标记或模块分支,标记或模块分支则引用特定模块。标记和模块分支可以更改,因此动态分层引用最终引用的模块可以更改。用户可以手动更改标记以便引用不同模块。例如,组件A2,1 140的设计组将“黄金”标记390从模块A2,1v1.0 341移动到A2,1v1.1 441。可以通过向模块分支中添加新模块(例如,新模块版本),更改模块分支。例如,当组件A1120的设计组将新模块A1v1.1 421传输到数据库时,模块分支320更改以便它额外包括或引用新模块A1v1.1 421(例如,模块分支指向最新版本)。
    可以限定不同类型的标记。例如,任何组件的最新模块可以与“α”标记关联,该标记可以表示组件的“过程中”版本。在图3中所示的实例中,通过限定“α”标记380以便引用分支320,“α”标记380引用具有模块分支320引用或包括的最新版本的模块。在一个备选实施例中,动态分层引用351可以直接指向模块分支320,并且产生相同结果。在另一个实例(未示出)中,可以将组件的模块标记为“β”,其可以表示组件的“测试”版本。还可以将组件的模块标记为“黄金”,其可以表示组件的最新“稳定”版本。在图3中所示的实例中,组件A2,1140的设计组最初将组件A2,1140的版本1.0限定为“黄金”版本。“α”、“β”和“黄金”标记的每一个都是动态的,因为它们可更改(例如,设计组可以将标记更改为指向不同的已版本化模块),因此不会随着时间而始终引用同一模块。
    图5是包括组件过滤的示例性产品A 511的分层表示(“hierarchiy”)500。 产品A 511(这里也被称为分层500的“头组件(head component)”或者“根(root)”组件)包括第一组件A1521和第二组件A2531。产品A 511可以与产品A 110(图1和图2中所示)相似,或者与产品A v1.0 311(图3和图4中所示)相似,而且组件A1521和A2531可以与产品A1120和A2130(图1和图2所示)或者与A1v1.0 321和A2v1.0 331(图3和图4所示)相似。第一组件A1521包括一个子组件B v1.1522。第二组件A2531包括一个子组件A1532,该子组件自身包括一个子组件B v1.2 533。需要注意的是,产品A 511包含2个单独A1组件,A1521和A1532,其中一个是产品A 511自身的直接子产品,而另一个是A2531的子产品。类似地,产品A 511包含2个单独B组件,B v1.1 522和B v1.2 533,并且这2个B组件的引用该相同组件的不同版本号。
    产品A 511与组件A1521和A2531分别有分层关联512和513。同样地,组件A1521与子组件B v1.1 522有分层关联514,组件A2531与子组件A1532有分层关联515,并且子组件A1532与子组件B v1.2 533有分层关联516。需要理解的是,虽然分层500中的每个组件可以包括例如版本号的版本标识符,为了聚焦和可读性,组件A 511、A1521以及A2531的版本号已经被排除了。
    术语“后代”、“祖先”、“父代”和“子代”如在此使用的,指组件之间的逻辑家族、分层关系(例如,组件的树结构)。例如,组件B v1.1522可以称为其祖先A1521和A 511的后代。组件A1521是组件B v1.1 522的父代(即,第一邻近、直接祖先),同样,组件B v1.1 522是组件A1521的子代。此外,组件A1521本身是组件A 511(即,其父代)的后代(在这种情况下,为子代)。这样,这些术语可以用于方便地限定和描述组件之间的这些逻辑关系。
    在示例实施例中,分层500包括用来识别和过滤一个或多个组件的过滤器550。这里使用的术语“过滤组件”一般用来指代如过滤器550的过滤器为了过滤而识别的组件。术语“过滤”一般是指从例如分层500的分层中排除、移除、或组件(例如,过滤组件)的其它消除。如图5所示的分层500是组件结构的没有修改(例如,没有过滤)的表示。换句话说,分层500代表过滤器500应用之前的组件设计的整体视图。在过滤器550应用后,一个或多个组件可能被移除或不合 并入分层500。
    这里描述的过滤器550和组件的过滤,在一个或多个方面被限定和描述。在范围方面,过滤器550限定在什么效果范围或者层过滤器550将要被使用。在识别方面,过滤器550限定一个或多个识别标准来操作识别哪个组件或哪些组件将过滤。在操作期间,过滤器550的一个或多个的这些方面用来在分层500中为了过滤识别组件。以下将更加详细地描述这些方面的每一个。
    过滤器550的范围方面识别为了过滤可能被考虑的组件的集合或子集。在示例实施例中,过滤器550根据分层关系操作,并且更加具体地根据分层中应用的级别像伞一样操作。过滤器550被附接540至头组件A 511。由此,过滤器550的范围是分层500的整个树结构。在另一个实施例中,过滤器550可以附接至另一个组件,例如A1532。由此,过滤器的范围可以仅仅是A1532的子树(即,A1532处或以下的结构)。在附接的过滤器的实施例中,例如过滤器550,因为过滤器限定了应用该过滤器的最高级别,只有在附接级别或附接以下级别的子组件可以是用于过滤的候选者。在其它实施例中,过滤器550可以不附接。如此不附接的过滤器被理解为可以应用于整个分层500。换句话说,当不附接的过滤器被附接540至根节点时,鉴于其最广的范围,不附接的过滤器是相似于过滤器550的。这里使用术语“范围标准(criteria)”用来指一个或多个标准,该标准用来限制过滤的范围,或者用来限制将要考虑过滤器的组件集。在示例性实施例中,过滤器550的附接540作为范围标准。
    过滤器550的识别方面识别哪些组件从分层500中过滤、排除、或移除。这里使用的术语“识别标准”用来指为了识别用于过滤组件的一个或多个标准。在示例实施例中,如上所述的范围标准限定了范围来限制过滤组件的识别。在其它实施例中,识别标准可以无需范围标准而操作,并且可以单独操作或与其它标准结合操作来识别过滤组件。
    根据分层500的结构,可以以若干方式识别组件和/或子组件来用于过滤。在一些实施例中,由“绝对分层名称”在分层500内(即,相对于根节点或者其中附结有过滤器的节点的特定关系路径或位置)来识别过滤组件。在其它实施例中,利用子组件结构(这里也称为“相对分层名称”)来识别过滤组件。在其它实施例 中,利用其它识别标准来识别过滤组件。以下将更详细地描述每个这样的识别标准。
    基于在分层内的组件位置,分层500中的每个组件可以被唯一识别。这里使用的术语“路径”和“分层名称”通常是指对于在分层内的组件的从根节点(或者该过滤器附接节点)向下遍历到该组件的位置限定,或者当从该组件向上遍历到该根节点(或者该过滤器附接节点)的位置限定。
    在示例实施例中,基于分层500内的特定路径,使用“绝对分层名称”过滤标准来识别过滤组件。更具体地,“绝对分层名称”限定了从根节点(或者该过滤器附接节点)向下的路径,例如头组件A 511(其在示例实施例中既是分层500的根节点又是过滤器550的附接节点)。例如,如B v1.1 522的组件可以被识别为有绝对分层名称{A,A1,B}。示例符号将过滤组件表示为有父代A1(其附接到根节点A)的组件B(链表中的最后一个组件)。换句话说,从根节点A遍历,过滤组件可以通过向下一步步地到组件A1,然后定位子节点B(这种情况下,节点B v1.1 522)而识别。由此,过滤器550可以包括有绝对分层名称{A,A1,B}的识别标准,其可以用来将B v1.1 522识别为过滤组件。
    在一些实施例中,识别标准可以包括这个实例中的头组件A,或者可以排除该头组件并且推断该第一节点为头组件A(例如在未附接的过滤器场景中)。换句话说,在以上实例中,绝对分层名称{A1,B}代表了B v1.1 522的绝对分层名称。
    在表示从过滤器附接节点(而非根节点)的绝对分层名称的另一个实例中,假设过滤器550附接于组件A2531。由此,利用符号和推断第一节点为附接节点的实施例,从过滤器附接节点A2531的绝对分层名称(例如{A1,B})用来识别节点B v1.2 533。因此,附接A2531、包含识别标准{A1,B}的过滤器可以用来从分层中过滤节点B v1.2 533。
    需要理解的是,提供的符号仅仅是一个用来标记和表示在分层(例如,关系路径)中的节点之间的分层关系的示例性方法。可以使用用来表示或识别这里描述的实现该系统和方法的分层内的组件的路径结构的任何这样的手段。由此,基于对于根节点的或对于过滤器附接节点的绝对分层名称,可以识别分层中的每个节点。
    在示例实施例中,基于从过滤组件向上的路径所限定的子组件结构,使用“相对分层名称”过滤标准来识别过滤组件。更具体地,“相对分层名称”是相对于过滤组件而限定了在分层内的路径的关系路径。例如,假设过滤器550包括有{A1,B}的相对分层名称类型识别标准。相对分层名称类型识别标准可以被描述为限定了必须匹配过滤组件的子结构。相对分层名称标准还被以从上到下的方式(例如,A1是B的父代)排序,但是它们被基于在其内限定的节点关系而匹配。换句话说,在实例中,识别标准{A1,B}、特定组件B将匹配(即,将被识别为过滤组件),如果它的父代是组件A1。在分层500中,存在有匹配识别标准{A1,B}的2个子节点——组件B v1.1 522和组件B v1.2 533(因为均是B组件,而且均有A1组件作为它们的父代)。
    由此,相对分层名称类型识别标准可以描述为顺序列表,该顺序列表包括,作为最后元件,过滤组件加上可选地一个或多个过滤组件的祖先。在示例实施例中,没有祖先在列表中被跳过(即,该列表包括没断开的祖先链条,虽然不必是所有祖先)。在一些实施例中,相对分层名称列表的列表入口包括“通配符”(即,“*”、”?”等等)作为组件匹配的一部分。例如,以上示例列表可以由{*,A1,B}表示,从而表示A1的任何另外祖先都可以匹配。进一步地,列表入口可以包括一个或多个组件集。例如,列表{(A1,A2),B}识别包括A1或A2的第一列表元件。由此,B组件与识别标准匹配,如果它的父代是A1组件或A2组件。
    在一个极端情况,在示例实施例中,包括向上到根节点的过滤组件的所有祖先的分层名称类型识别标准是等同于该过滤组件的绝对分层名称的,因此单独识别特定节点。在另一个极端情况,列表仅包括过滤组件自身而无祖先,因此识别匹配给出过滤组件的所有节点。由此,相对分层名称类型识别标准可以识别多个过滤组件。
    进一步地,在示例实施例中,过滤器550可以包括与相对分层名称类型识别标准一起的范围标准。图5阐述了附接的过滤器(即,过滤器550附接540到过滤器附接组件A 511),而且由此,{A1,B}的示例相对分层名称类型识别标准将匹配组件B v1.1 522和B v1.2 533,如上所述。备选地,考虑相同识别标准,但是在附接到节点A2531的过滤器中。换句话说,该过滤器的范围被限于只是在 A2531之下限定的子分层(即,用A2531作为子结构的“根”节点)。由此,只有组件Bv1.2 533将被识别为一个过滤组件。
    在一些实施例中,识别标准可包括可用来将其它组件与一些组件区分的其它组件识别信息,例如,组件标识符(例如,URL)、版本标识符(例如,版本号)、分层名称和/或超文本引用。进一步,使用传统逻辑算符(AND、OR、NOT等),可以把识别标准结合在一起用于结合的效果,例如匹配相对分层名称列表AND组件版本。
    此外,在分层500内,可以提供例如过滤器550的多个过滤器。过滤器可以有不同范围和/或不同识别标准。
    在操作中,在示例性实施例中,例如分层管理系统(HMS)720(图7中显示)或计算设备810(图8中显示)的计算系统负责读取和建立产品和/或组件的分层表示,例如计算机辅助绘图系统内的产品A 511的分层表示500。HMS 720将组件模块加载到在系统工作存储器中的数据结构。进一步地,用户限定随着任何范围标准和/或识别标准(这里也称为过滤器限定)的一个或多个过滤器550。在示例实施例中,在将分层500加载到系统存储器之前,用户提供该过滤器限定。在其它实施例中,用户提供该过滤器限定给HMS 720,并且HMS 720应用过滤器550到已经加载的分层500中。
    在示例实施例中,假设用户用显示的范围标准(即,附接至根节点A 511)以及用{A2,A1,B}的相对分层名称类型识别标准(即,过滤A1为父代、A2为祖父的任何B组件),来限定过滤器550。以深度优先方式,从根节点开始增加(polulate)分层500。在加载子组件之前,HMS 720评估存在的过滤器550来确定子组件是否匹配为过滤组件。HMS 720加载组件A 511作为根节点。在一些已知系统中,子组件A1521将被立即处理(即,基于父组件A 511的分层引用,子组件521的数据结构将被立即加载到分层中)。在示例实施例中,然而在加载每个子组件之前,通过比较子组件与过滤器(例如,550),HMS 720审查作为过滤候选的子组件(例如,第一子代A1521)。A1521不匹配过滤器550(即,它不是B组件,在列表中的最后组件)。由此,HMS 720加载A1521并且向下审查A1521的子代。A1521的唯一子代是HMS 720将其与过滤器550比较的B  v1.1 522。B v1.1 522是一个B节点,因此匹配列表的最后一个元件。进一步地,B v1.1 522的父代是A1521,其中A1521是A1并且匹配列表的第二元件。然而,B v1.1 522的祖父(即,A1521的父代)是不匹配该列表第一组件(即,A2)的A 511。由此,组件B v1.1 522不匹配过滤器550,并且因此HMS 720加载组件B v1.1 522并且继续处理A 511的下一个子代。
    在示例实施例中,HMS 720审查A 511的第二个子代,组件A2531。这个子代不匹配为过滤组件,因为它不是B组件。因此,HMS 720加载组件A2531并且继续调查唯一的子代A1532。因为A1532也不是一个B组件,HMS 720加载A1532并且继续审查唯一的子代B v1.2 533。这个子代是一个B组件,因此匹配过滤器550列表的最后元件。进一步地,它的父代是一个A1组件,并且它的祖父是一个A2组件。因此,HMS 720将组件B v1.2 533识别为过滤组件,并且不将该组件加载到分层500中。
    关于图5的以上实例被描述为在新结构加载期间(即,在存储器内的组件分层的初始建立期间)执行的。然而,需要理解的是,过滤分层组件的其它实现是可能的并且在本公开的范围内。例如,可以用已建立的结构(例如,已经加载入工作存储器的分层)来执行组件过滤,从而删除匹配过滤器的任何组件。进一步地,在其它实施例中,HMS 720可以执行广度优先搜索,或者执行能实现这里描述的系统和方法的任意其它遍历方法。
    图6是阐述适用于识别和集成过滤引用的示例分层加载过程600的流程图。在示例实施例中,利用计算系统,例如HMS 720(图7中所示)或计算设备810(图8中所示),执行过程600。设计组输入它们的模块版本(例如,组件分层)的请求,例如针对产品A 511(图5所示)。在示例实施例中,如图5中所示,HMS 720加载602与分层500的产品A 511关联的分层结构。顶层模块和随后引用的每个模块可以包括对一个或多个模块的引用。每个子组件还可以具有也可包括一个或多个子组件的关联模块等等。
    在一些实施例中,HMS 720首先加载603全局过滤器(即,用于整个分层500范围的过滤器)。在示例实施例中,通过检索604用于产品A 511的模块以及将它合并入分层500中,如元件511(即,在存储器中创建用于顶层产品的数 据结构,包括从顶端模块导入的数据)表示的,HMS 720然后开始模块加载过程。作为顶端模块加载过程的一部分,HMS 720也加载附接到该顶端模块的任何过滤器。在当前实例中,HMS 720加载附接540到顶端模块A 511的过滤器550。由此,过滤器550具有覆盖整个分层500的范围,并且将匹配具有A1的父代的任何B组件(即,在图6中示例中描述为“{A1,B}”)。
    在步骤610,HMS 720审查当前处理的模块(在此阶段,与产品A 511关联的顶模块)是否还有未处理的(即,还未导入分层500的)任何子组件。如图5所述,该顶模块引用组件A1521和A2531。如果有一个或多个未审查的子组件存在,则HMS 720选择620未审查的子组件用于导入。因此,HMS 720选择620第一未审查的子组件A1521。
    在完全导入子组件A1521之前,HMS 720分析用于过滤(即,确定当前子组件是否应当从分层500排除或移除)的子组件。HMS 720比较630用于任何匹配过滤器的子组件。如果640当前子组件匹配一个或多个过滤器,则那个子组件从分层500排除642(或移除)。如果640当前子组件没有匹配一个或多个过滤器,则HMS 720检索/加载644与被分析的子组件关联的模块,并且将那个模块导入到分层500中。在实例中,子组件A1521没有匹配过滤器550,并且因此HMS 720加载644这个子组件(即,加入作为A 511子代的组件A1521)。
    在示例实施例中,作为检索644子组件模块的一部分,该子组件成为了审查下的当前模块。HMS 720环圈到步骤610来考虑组件A1521的子组件。在这个实例中,组件A1521有一个子组件B v1.1 522。HMS 720选择620未审查的子组件B v1.1 522并且比较630这个子组件与过滤器550(即,唯一的激活的过滤器)。在这个阶段,分层500包括2个加载的节点(即,两个组件),A1521(Bv1.1 522的父代)和A 511(B v1.1 522的祖父)。HMS 720确定子组件B v1.1 522匹配过滤器550,因为它是父代为A1组件的B组件。由此,HMS 720从分层500排除642(或者移除)组件B v1.1 522,并且环圈回到步骤610。换句话说,在考虑到随着过滤器550附接到头组件以及包括A 511、A1521和B v1.1 522的分支后,HMS已经仅加载了组件A 511和A1521,但是基于过滤器550已经从分层500排除(或移除)组件B v1.1 522。
    继续该实例,子组件B v1.1 522被排除,并且因此不会调查那个组件的更深的子代。由此,在步骤610,组件A1521不再有任何未审查的子组件。由此,HMS 720然后完成650当前模块。HMS 720接下来检查660是否已经完成顶模块。如果没有,HMS 720回到670当前(即,刚刚完成的)组件的父代来进一步分析。换句话说,一旦完全审查了组件的子组件的每一个,HMS 720在步骤670追溯到该组件的父代,以继续该父代的其它子组件的处理。当在步骤660已经完全审查了顶模块(即,当已经审查了全部顶模块的子组件),结束680HMS720。
    以相似的方式,HMS 720然后调查下一个未审查的头组件A 511的子组件。头组件A 511包括作为子组件A1532父代的组件A2531的系(line),如图5所示组件A1532包括子代B v1.2 533。利用以上描述的从步骤610的过程600的环圈,HMS 720也匹配且排除子代B v1.2 533,因为它是有A1父代(即,匹配过滤器550)的B组件。由此,仅仅这个分支的组件A2531和A1532将被载入分层500中。
    在示例实施例中,HMS 720描述了深度优先的方法来检查和构建分层500(即,在调查每个新组件时,在审查其它子组件之前,HMS 720向下执行到并且完全审查第一子组件)。然而,需要理解的是,可以使用能够实现这里描述系统和方法的操作的任何其它方法来遍历和构建分层500,例如,广度优先方法(即,在向下执行到任何子组件之前,审查所有在一个级别的组件)。进一步地,过滤器550仅描述了范围标准(即,在头组件A 511处及其以下,基于逻辑附接的点)和仅包括过滤组件及其父代的组件类型的识别标准。需要理解的是,然而,用于范围和识别的其它标准是可能的并且在本发明范围之内。
    图7是在例如分层500(图5所示)的组件设计分层中用来实现过滤引用的示例性分层管理系统720的框图700。可选地,可以使用能实现这里描述的分层管理系统720操作的任何计算机架构。在示例性实施例中,分层管理系统720促进在存储器设备750内的数据结构中构建组建设计分层,并且使能够进行参考图6的通过过程600描述的过滤引用和组件排除或移除。
    在示例实施例中,分层管理系统720包括存储器设备750、以及可操作地耦 合到存储器设备750来执行指令的处理器752。在一些实施例中,在存储器设备750中存储可执行指令。分层管理系统720被配置为,由编程处理器752执行这里描述的一个或多个操作。例如,通过将操作编码为一个或多个可执行指令并在存储器设备720中提供该可执行指令,处理器752可以被编程。处理器752可以包括一个或多个处理单元,例如不限于,在多核配置中。
    在示例实施例中,存储器设备750是能实现存储和检索信息(例如可执行指令和/或其它数据)的一个或多个设备。存储器设备750可以包括一个或多个有形的、非暂时的计算机可读介质,例如,不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、固态盘、硬盘、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、和/或非易失性RAM(NVRAM)存储器。以上存储类型仅仅是示例,从而不是限制可用于计算机程序存储的存储器类型。
    在示例实施例中,存储器设备750可以被配置为,在数据结构、文件或其它存储器区域中存储多种组件以及与不同组件和子组件关联的模块数据。进一步地,存储器设备750还可以存储组件关系数据、过滤器数据、和例如分层500的分层数据、或其它例如图1-5中所示的其它组件相关数据。进一步地,存储器设备750还可以存储例如图5中所示的过滤引用数据。
    在一些实施例中,分层管理系统720包括耦合到处理器752的呈现界面754。呈现界面754呈现例如用户界面信息和/或报警的信息给用户756。例如,呈现界面754可以包括可耦合到显示设备(未示出)的显示器适配器(未示出),例如,阴极射线管(CRT)、液晶显示器(LCD)、有机LED(OLED)、和/或有显示器的手持设备。在一些实施例中,呈现界面754包括一个或多个显示设备。此外,或备选地,呈现界面754可以包括音频输出设备(未显示),例如,音频适配器和/或扬声器。
    在一些实施例中,分层管理系统720包括用户输入界面758。在示例实施例中,用户输入界面758耦合到处理器752,并且从用户756接收输入。用户输入界面758可以包括,例如,键盘、指向设备、鼠标、手写笔、和/或触敏面板(例如触摸板或触摸屏)。单个组件,例如触摸屏,可以实现呈现界面754的显示设 备以及用户输入界面758两者的功能。
    在示例实施例中,通信接口760耦合到处理器752,并且被配置为通过耦合与一个或多个其它设备通信,例如其它计算系统、或任何能够访问分层管理系统720的设备,这些设备包括但是不限于,便携式膝上计算机、个人数字助理(PDA)、以及智能电话。通信接口760可以包括,而不限于,有线网络适配器、无线网络适配器、移动电信适配器、串行通信适配器、和/或并行通信适配器。通信接口760可以从一个或多个远程设备接收数据,和/或向一个或多个远程设备发送数据。分层管理系统720可以连网来适应远程通信,例如,通过远程桌面计算机(未示出)。
    在示例实施例中,呈现界面754和/或通信接口760能够提供在这里描述的方法中适合使用的信息,例如,给用户756或其它设备。因此,呈现界面754和/或通信接口760可以称为输出设备。类似地,用户输入界面758和/或通信接口760能够接收此处描述方法中适合使用的信息,并且可以称为输入设备。
    进一步地,处理器752和/或存储器设备750还可以可操作地耦合到存储设备762。存储设备762是适合于存储和/或检索数据的任何计算机可操作硬件,其中数据例如为但不限于与数据库164关联的数据。在示例实施例中,存储设备762被集成在分层管理系统720中。例如,分层管理系统720可以包括一个或多个硬盘驱动器作为存储设备762。不仅如此,例如,存储设备762可以包括多个存储单元,例如在廉价磁盘冗余阵列(RAID)配置中的硬盘和/或固态盘。存储设备762可以包括存储区域网络(SAN)、网络附加存储(NAS)系统、和/或基于云的存储。备选地,存储设备762在分层管理系统720外部,并且可以由存储接口(未示出)访问。
    此外,在示例实施例中,数据库764包含与组件、模块、过滤器和分层关联的多种静态和动态操作数据。
    这里描述和阐述的实施例以及在本发明范围之内而没有在这里详细描述的实施例,构成了用于包括过滤引用的管理组件分层的示例手段。例如,分层管理系统720和向其添加的或在其内包括的任何其他类似计算机设备,当一起集成时,包括用足够的计算机可执行指令编程的足够的计算机可读存储介质,来用处理器 执行这里描述的过程和技术。特别地,分层管理系统720和向其添加或在其内包括的其它任何类似计算机设备,当一起集成时,构成了用于管理包括组件过滤器的组件分层的示例手段。
    图8显示了计算设备810内的数据库820的示例配置800,以及其它相关计算组件。配置800可用来管理包括过滤引用的组件分层。在一些实施例中,计算设备810类似于分层管理系统720(图7所示)。数据库820耦合到计算设备810内的执行特定任务的若干单独组件。
    在示例实施例中,数据库820包括组件&模块数据822、分层数据824以及过滤数据826。在一些实施例中,数据库820类似于数据库764(图7所示)。组件&模块数据822包括与参考图1-6在以上描述的设计组件和模块关联的信息。分层数据824包括分层组件数据和限义组件之间关系的数据,如分层500中所示(图5所示)。过滤数据826包括与组件过滤关联的数据,例如过滤引用540(图5所示)以及过滤器550(图5所示)。
    计算设备810包括数据库820以及数据存储设备830。计算设备810包括分层管理组件840来导入模块并且建立例如分层500的管理分层。计算设备810还包括模块加载组件850来处理与分层组件关联的模块。还包括过滤组件860,来用于过滤处理的处理方面,如参考过程700(图6所示)中所述。处理组件870辅助与标记化系统关联的计算机可执行指令的执行。
    图9是从例如分层500(图5所示)的逻辑组件分层中过滤组件的示例方法900的实例。在示例实施例中,方法900由例如分层管理系统720(图7所示)或计算设备810(图8所示)的计算系统来执行。在示例实施例中,方法900包括在存储器中识别910与逻辑组件分层关联的过滤器。在一些实施例中,识别910过滤器进一步包括识别这样的过滤器:其包括限定了在逻辑组件分层内的过滤器要被施加于其的一组组件的范围标准。在一些实施例中,识别910过滤器进一步包括识别这样的过滤器,其中范围标准包括在逻辑组件分层内的附接节点的识别。在一些实施例中,识别910该过滤器进一步包括识别该过滤器,其中该组组件被限定为包括在逻辑组件分层内的附接节点处或以下的节点。
    在示例实施例中,方法900还包括通过处理器比较920逻辑组件分层的子组 件和过滤器。在一些实施例中,识别910过滤器进一步包括识别这样的过滤器,其包括限定了一个或多个组件特征的识别标准,并且比较920子组件进一步包括比较识别标准和子组件的特征。在一些实施例中,比较识别标准进一步包括,将一个或多个组件名称、组件标识符、组件类型以及组件版本标识符与子组件的特征进行比较。在一些实施例中,比较识别标准进一步包括,至少部分基于分层内的子组件的关系分层名称来识别过滤组件。
    在示例实施例中,基于子组件与该过滤器的比较,方法900还包括识别930用于过滤的子组件。方法900还包括从逻辑组件分层中过滤940该子组件。
    根据之前的说明书需要注意的是,实施以上描述的本公开实的施例可以利用计算机编程或包括计算机软件、固件、硬件或任意以上组合或子集的工程技术,其中技术效果是用于管理组件分层以及实施过滤和从分层过滤引用的系统。根据本公开之前讨论的实施例,具有计算机可读代码装置的任意如此结果的程序,可以在一个或多个计算机可读介质内实现或提供,从而来制造计算机程序产品,即,制造的物品。计算机可读介质可以是,例如但是不限于,固定(硬)驱动、软盘、光盘、磁带、诸如只读存储(ROM)的半导体存储器、和/或例如互联网或其它通信网络或链接的任何发送/接收介质。包含计算机代码的制造的物品可以从一个介质直接执行代码、或从一个介质复制到另一个介质、或通过网络发送代码来制造和/或使用。
    这些计算机程序(也称为程序、软件、软件应用、“apps”或代码)包括用于可编程处理器的机器指令,并且可在高级过程和/或面向对象编程语言、和/或汇编/机器语言中实现。这里使用术语“机器可读介质”、“计算机可读介质”是指任何计算机程序产品、用于提供机器指令和/或数据给可编程处理器的装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),其包括接收机器指令作为机器可读信号的机器可读介质。然而,“机器可读介质”、“计算机可读介质”,不包括暂时信号。术语“机器可读信号”是指用于提供机器指令和/或数据给可编程处理器的任何信号。
    使用在组件分层中限定的过滤引用,示例方法和系统帮助排除子组件。例如,在分层加载期间通过限定在祖先组件内的过滤引用,可以排除子组件。其中,该 过滤引用描述了基于一个或多个范围标准和识别标准而将被排除的组件。在分层建立期间,这里描述的系统和方法排除匹配过滤引用的子组件。由此,从组件分层过滤或排除组件。
    由该系统处理的技术问题中的至少一个包括:(i)在分层内出现多次的冗余分层组件;以及(ii)在分层内组件的不同版本的出现导致的冲突。这里描述的系统和方法处理的其它技术问题可以包括由于在分层中出现的非必须组件而增加的计算机处理,因此减慢了计算机。
    使用计算机编程或包括计算机软件、固件、硬件或任何以上组合或子集的工程技术,可以实现这里描述的方法和系统,其中技术效果的实现可以通过执行如下步骤的至少一个:(a)在存储器中识别与逻辑组件分层关联的过滤器;(b)通过处理器比较逻辑组件分层的子组件和过滤器;(c)基于子组件和过滤器的比较,识别用于过滤的子组件;(d)从逻辑组件分层中过滤子组件;(e)在应用过滤器的逻辑组件分层中,识别包括限定了一组组件的范围标准的过滤器;(f)识别过滤器,其中范围标准包括在逻辑组件分层中的附接节点的识别;(g)识别过滤器,其中该组组件被限定为包括在逻辑组件分层内的附接节点处或其以下的节点;(h)识别过滤器,其包括限定了一个或多个组件特征的识别标准;(i)比较该识别标准和子组件的特征;(j)将一个或多个组件名称、组件标识符、组件类型以及组件版本识别符与子组件特征进行比较;并且(k)至少部分基于分层内的子组件的关系分层名称,识别过滤组件。
    该系统实现的导致技术效果是降低例如通过增强段(segment)重用和/或组件过滤来维持组件分层的计算需求中的至少一个。因此,系统实现过滤后的组件分层,这导致所需用以建立和维持存储器中工作分层的计算资源的减少,因此计算机的负担降低。
    这里所写的说明书使用实例来披露本公开,其中包括最佳方式;并且也使得本领域技术人员能够实践本公开,包括制造和使用任何设备和系统并执行任何合并的方法。权利要求限定了本公开的专利保护范围,并且专利保护范围可以包括对于本领域技术人员显而易见的其它实例。如果其它实例具有不同于权利要求文字语言的结构的元件,或者如果其它实例包括与权利要求的文字语言有非实质区 别的等同结构的元件,这样的其它实例也在权利要求的范围内。

    关 键  词:
    分层 引用 数据 过滤 组件 方法 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:在分层引用数据中过滤组件的方法和系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6366564.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1