已配置的结构数据的快速访问权利检查的制作方法

文档序号:11142316阅读:252来源:国知局
已配置的结构数据的快速访问权利检查的制造方法与工艺
本公开一般涉及计算机辅助设计、可视化和制造系统,产品生命周期管理(“PLM”)系统,以及管理产品的数据和其他项目的类似系统(统称为“产品数据管理”系统或PDM系统)。
背景技术
:PDM系统管理PLM和其他数据。改进的系统是所期望的。技术实现要素:各种公开的实施例包括用于产品数据管理的方法以及相应的系统和计算机可读介质。一种方法包括接收分层数据结构,该分层数据结构包括引用持久数据对象的多个结构行,并接收与由分层数据结构引用的持久数据对象对应的元数据。该方法包括根据元数据计算与每个持久对象对应的访问控制表达式,其中,访问控制表达式是串表示布尔表达式,并存储访问控制表达式。前面已经相当广泛地概述了本公开的特征和技术优点,使得本领域技术人员可以更好地理解下面的详细描述。在下文中将描述形成权利要求的主题的本公开的附加特征和优点。本领域技术人员将理解,他们可以容易地使用所公开的概念和具体实施例作为用于修改或设计用于执行本公开的相同目的的其他结构的基础。本领域技术人员还将认识到,这样的等同构造未偏离本公开最广泛形式的精神和范围。在进行下面的具体实施方式之前,阐述贯穿本专利文献所使用的某些词语或短语的定义可能是有利的:术语“包括”和“包含”及其派生词意味着包括但不限于;术语“或”是包括性的,意指和/或;短语“与...相关联”和“与...其相关联”及其派生词可以意指包括、被包括在内、与……互连、包含、被包含在内、连接到或与...连接、耦合到或与...耦合、可与...通信,与...合作、交织、并置、接近、绑定到或与...绑定、具有、具有……的性质等;并且术语“控制器”意指控制至少一个操作的任何设备、系统或其部分,无论这样的设备是以硬件、固件、软件还是其中至少两个的某组合来实现。应当注意,与任何特定控制器相关联的功能可以是集中式的或分布式的,无论是本地的还是远程的。贯穿本专利文献提供了某些词语和短语的定义,并且本领域普通技术人员将理解,这种定义在许多——如果不是大多数——情况下适用于这样定义的词语和短语的先前以及将来的使用。虽然一些术语可以包括各种各样的实施例,但是所附权利要求书可以明确地将这些术语限制于具体实施例。附图说明为了更完整地理解本公开及其优点,现在对结合附图进行的以下描述进行参考,其中相同的附图标记表示相同的对象,并且其中:图1示出了实施例可以实现在其中的数据处理系统的框图;图2示出了可以在实现所公开的实施例中使用的数据结构和元素;图3示出了根据所公开的实施例的过程的流程图。具体实施方式下面讨论的图1至图3以及在本专利文档中用于描述本公开的原理的各种实施例仅仅当作说明,并且不应以任何方式被解释为限制本公开的范围。本领域技术人员将理解,可以在任何适当布置的设备中实现本公开的原理。将参考示例性非限制性实施例来描述本申请的众多创新教导。在当前的PLM数据交换领域中,尤其是当涉及诸如PDM物料清单(“BOM”)之类的已配置产品结构时,越来越强调数据检索和可访问性的高性能和可扩展性。BOM结构可以担当生产最终产品所需的所有原材料、子组件、中间组件、子部件、部件、部分、量和其他信息的分层列表。“BOM行(line)”表示BOM的部分、组件、其他部分的分解配置实例,并且“结构行”指用于非BOM实施例的类似表示。可以将组件或部分分解和配置为产生BOM行的物料清单(BOM)树。分解重新排列(permute)组件/子组件路径以为BOM树中的每个部件产生正确数量的部分行并为BOM树中的每个组件产生正确数量的组件行。树中的行的位置由沿着从行到根行(rootline)的(单个)路径的变换的级联(concatenation)来给出。配置使用配置规则来确定哪个单个部分修订要用于BOM树中的给定部分以及哪个单个组件修订要用于BOM树中的给定组件。可以使用各种算法以非常高的速度访问索引的产品结构数据,但是除了这种BOM行的快速检索之外,系统还应当验证当前用户是否有特权查看在该特定BOM行中的所有信息、部分信息或者无权查看。保护数据并且允许对具有适当特权的实体(用户,软件代理等)进行访问是大多数企业软件系统的关键元素。许多系统,包括产品生命周期产品,将访问控制列表(ACL)定义为针对对象定义的许可的列表。鲁棒的安全模型通常包含优先级(precedence)和分层规则的集合,其基于对象状态、元定义和访问实体的身份而准许或拒绝访问控制。在这些系统中,数据的安全性由规则和ACL与关于用户的信息的组合来确定,关于用户的信息诸如组成员资格,项目成员资格,国籍,地理位置,其一起确定用户与数据交互的授权。在这些系统中,每次允许/拒绝访问时,在运行时对规则进行评估。一些算法通过检查作为特定BOM行的任何性质、实例化对象或父对象的一部分的所有持久数据对象的特权来实现这一点。这种方法不仅非常慢,而且当例如从索引的结构检索数据时也不适用,其中BOM行性质的ad-hoc重新评估不是选项。所公开的实施例包括用于在访问诸如BOM结构和其他结构之类的结构时有效地执行访问控制功能的改进的系统和方法。图1示出了实施例可以实现在其中的数据处理系统的框图,例如实施例可以实现为特别是由软件或以其他方式被配置以执行如本文所描述的处理的PDM系统,并且特别实现为如本文所描述的多个互连和通信系统中的每一个。所描绘的数据处理系统包括连接到二级高速缓存/桥接器104的处理器102,二级高速缓存/桥接器104继而连接到本地系统总线106。本地系统总线106例如可以是外围部件互连(PCI)架构总线。在所描绘的示例中还连接到本地系统总线的是主存储器108和图形适配器110。图形适配器110可以连接到显示器111。诸如局域网(LAN)/广域网/无线(例如WiFi)适配器112之类的其他外围设备也可以连接到本地系统总线106。扩展总线接口114将本地系统总线106连接到输入/输出(I/O)总线116。I/O总线116连接到键盘/鼠标适配器118、盘控制器120和I/O适配器122。盘控制器120可以连接到记忆装置126,记忆装置126可以是任何适当的机器可用或机器可读的存储介质,包括但不限于非易失性硬编码型介质,诸如只读存储器(ROM)或可擦除电可编程只读存储器(EEPROM)、磁带记忆装置以及用户可记录型介质,诸如软盘、硬盘驱动器和光盘只读存储器(CD-ROM)或数字通用盘(DVD)和其他已知的光、电或磁存储设备。在所示的示例中还连接到I/O总线116的是音频适配器124,扬声器(未示出)可以连接到该音频适配器124用于播放声音。键盘/鼠标适配器118提供用于诸如鼠标、轨迹球、轨迹指针(trackpoiner)、触摸屏等的指示设备(未示出)的连接。本领域技术人员将了解,图1中所描绘的硬件可以针对特定实施而变化。例如,除了所描绘的硬件之外或者代替所描绘的硬件,也可以使用其他外围设备,比如光盘驱动器等。仅仅为了解释的目的提供所描绘的示例,并且所描绘的示例不意味着暗示关于本公开的架构限制。根据本公开的实施例的数据处理系统包括采用图形用户接口的操作系统。操作系统允许在图形用户接口中同时呈现多个显示窗口,其中每个显示窗口提供到不同应用或到相同应用的不同实例的接口。图形用户接口中的光标可以由用户通过指示设备来操纵。可以改变光标的位置和/或生成诸如点击鼠标按钮的事件以致动期望的响应。如果适当地进行修改,则可以采用各种商业操作系统中的一个,例如位于华盛顿州雷德蒙德的微软公司的产品——MicrosoftWindowsTM的版本。根据所描述的本公开修改或创建操作系统。LAN/WAN/无线适配器112可以连接到网络130(不是数据处理系统100的一部分),网络130可以是任何公共或私有数据处理系统网络或网络的组合,如本领域技术人员已知的那样,包括因特网。数据处理系统100可以通过网络130与服务器系统140通信,服务器系统140也不是数据处理系统100的一部分,但是例如可以将它实现为单独的数据处理系统100。所公开的实施例可以在访问诸如BOM结构和其他结构之类的结构时有效地执行访问控制功能。特别地,所公开的过程可以使用针对BOM行的所有索引的信息所捕获的预先计算的配方(recipe)以执行性质访问的基于集合的评估,BOM行的索引的信息诸如子项目、性质和其他。这些过程可以以“访问控制表达式”的形式存储和使用针对所有相关持久数据对象的个体读访问特权信息,当在会话期间应用于具体登录用户时,该访问特权信息产生针对该用户的读访问特权。所公开的过程虑及性能优化的定制和配置,诸如高速缓存每个会话的读表达式串评估结果以及跳过所有配方对象可完全访问的行,这导致非常高的性能水平。所公开的实施例可以使用在串表示中持续的读访问规则的有效计算和评估,使用基于集合的一般逻辑以及针对给定的预配置的和索引的BOM视图维护表高速缓存。图2示出了可以在实现所公开的实施例中使用的数据结构和元素。记忆装置226表示中央或分布式数据处理记忆装置,其可以以非易失性和易失性存储介质的组合来实现。特别地,记忆装置226中的一些或全部可以在数据处理系统记忆装置126中或数据处理系统存储器108中实现,或者在这些的一些组合中实现。记忆装置226存储分层数据结构210,其可以是BOM结构或其他结构。在下面描述的具体实施例中,对BOM结构、BOM树的引用或类似引用仅仅是分层数据结构210的一个实现示例,其可以表示任何数据,只要其可以如本文所描述的那样进行访问和处理。记忆装置226还包括数据对象220,数据对象220可以包括下面描述的可由分层数据结构210引用的持久数据对象,以及描述数据对象220的元数据225。记忆装置226还包括下面描述的一个或多个高速缓存表230。在特定实施例中,可以将高速缓存表230存储在更快的易失性存储器中,而将分层数据结构210和数据对象220存储在非易失性存储器中。这些可以包括:行表232,其包括结构行242的列表、配方表234,其包括针对每个结构行242的配方对象244的列表、以及访问控制表达式表236,其包括针对持久数据对象220的访问控制表达式246。图3描绘了根据所公开的实施例的过程的流程图,所述过程例如可以通过如本文所述的、下文中统称为“系统”的一个或多个PLM或PDM系统来执行。系统接收分层数据结构(305)。如本文所使用的“接收”可以包括从记忆装置加载、从另一设备或过程接收、经由与用户的交互接收、或以其他方式接收。分层数据结构包括引用持久数据对象的多个结构行;在一些实施例中,这被实现为分层数据结构210,其是具有引用持久数据对象220的BOM行的BOM结构。所公开的实施例可以执行在串表示(也称为“访问读取串”)中持续的访问控制表达式的有效计算和评估。系统接收与由分层数据结构引用的持久数据对象对应的元数据(310)。系统为分层数据结构的至少一部分创建至少一个高速缓存表(315)。在一些BOM结构实施例中,系统创建三个表,所有这些表都可以存储为高速缓存表230:包括与分层数据结构对应的结构行的列表的行表,其在特定实施例中是BOM结构中的BOM行:行UIDProp1Prop2…Prop_n-1Prop_n配方表包括针对每个结构行的配方对象的列表,针对每个结构行的配方对象在特定实施例中是针对每个BOM行的BOM配方对象。这些配方对象是作为输入所需的持久数据对象,以便在行表中构造结构行及其组成性质:行UIDRecipe_uidRecipe_propsBOM行的稳定同一性(identity)配方对象(持久)的稳定同一性包含这个配方对象的性质的列表如下所述,对于感兴趣的所有相关的持久数据对象“OBJ_HASH”和“HASHED_READEXPR”,分别包括访问控制表达式的列表的访问控制表达式表:UIDObject_hash配方对象的稳定同一性散列的读取表达式Readexpr_hashReadexpr_string散列完全访问控制表达式可以在分层数据结构的初始接收、编索引或生成期间对这些表进行部分填充,无论它是BOM结构还是其他结构。系统根据元数据计算与每个持久对象对应的访问控制表达式(320)。针对每个持久对象的访问控制规则是布尔表达式,并且可以被存储为串表示。这可以包括计算针对持久对象的每个性质的访问控制表达式。系统基于独立于最终用户认证的每个对象的元数据来计算访问控制表达式,并且通过生成布尔表达式来执行授权。通过在运行时评估布尔表达式以及最终用户会话信息而不是关于每个访问重新评估规则来确定对象访问。如果对象状态改变或者规则改变,则重新计算布尔表达式。通过避免对每个访问的规则计算,显著地改进了性能。预计算还通过对数据库内解算相对存储器内计算进行杠杆利用,因此最终导致提供对象的安全准确计数的能力来虑及更好的评估算法,这对于当前算法是不可行的。在典型的访问控制表达式评估中,根据各种实施例,以下三个参数扮演重要角色:对象元数据,比如对象类型、对象名称、状态、所拥有的组、分类、域等;最终用户认证和授权,比如最终用户的用户id、组、角色、域、项目、国籍、许可级别等;以及规则在整个规则树中的优先级/放置。例如,考虑允许基于对象元数据、用户认证和授权的规则的定义的安全系统,并且该系统支持严格的分层规则处理。对于此规则系统,考虑以下参数:“M”表示规则中的不同对象类型及其元数据参数的数量;“U”表示规则中的最终用户的认证和授权参数的数量;并且“N”表示规则树中的规则的数量。在这种情况下,为了确定对对象的ACL,系统平均执行N次检查,即,它是经典O(n)问题。在稀疏填充的系统(即,大M)中,此处理时间为每对象毫秒级。所公开的过程独立于最终用户认证和授权基于每个对象的元数据使用访问控制表达式的预先计算,以便生成布尔表达式。系统存储访问控制表达式(325)。将访问控制表达式作为额外的性质,例如作为每个数据对象220的性质,在上述表中或者以其他方式针对各个对象进行存储。访问控制表达式可以作为布尔表达式以串表示存储。可以在分层数据结构的初始接收、编索引或生成期间计算访问控制表达式,无论它是BOM结构还是其它,上述表何时创建或其他。注意,可以基于用户凭证来评估个别的访问控制表达式的实际值真/假,然而,不再需要规则树并且这种访问控制表达式可以非常大。系统从用户接收对于一个或多个结构行的访问请求(330)。该访问请求可以来自代表用户进行动作的任何过程并且使用用户的凭证来访问结构行,所述结构行可以是BOM行。访问请求可以是读请求,写请求或其他。系统基于用户的凭证和访问控制表达式来准许或拒绝对结构行的访问(335)。这可以包括准许或拒绝对每个整个结构行的访问,或者可以包括准许或拒绝对每个结构行的具体性质的访问。作为一个示例,考虑系统应该允许在以下条件下对给定对象的访问:(如果角色是管理者)或(如果组不被支持)或(角色不是供应者)或(用户国籍是美国)。这可以用紧凑的编码记号表示为其中“U”表示“允许用户”,“u”表示“拒绝用户”,“G”表示“允许组”,“g”表示“拒绝组”,“R”表示“允许角色”,并且“r”表示“拒绝角色”。在此示例中,如果供应者是试图访问上述对象的用户,则由于“r(供应者)”,所以评估所计算的有效访问控制表达式将拒绝对该对象和包括该对象的任何BOM行的访问。根据所公开的实施例,系统依赖于针对每个对象的访问控制表达式和包括认证和授权信息的最终用户凭证,避免了在每次访问时评估规则树的计算成本。相反,将运行时访问控制评估减少到评估相应的访问控制表达式的布尔表达式。可以将此方法应用于基于规则的安全模型和基于ACL的安全模型两者。当应用于企业搜索问题空间时,所公开的实施例允许以有效的方式来保护从来自多个系统的数据构建的搜索索引,这在历史上对于搜索引擎来说是具有挑战性的区域。根据所公开的实施例,可以如下所述地执行用于基于用户的凭证和访问控制表达式来准许或拒绝对结构行的访问的过程。对于所讨论的结构行的列表,系统确定针对每行的所有配方对象的列表。这些是感兴趣的持久数据对象,即,系统必须为其发现读访问特权值的对象。这可以通过评估与每个配方对象对应的访问控制表达式的列表来完成。注意:唯一读表达式的数量(通过对散列进行比较确定的)通常远小于总的配方对象本身的数量。系统可以使用运行时高速缓存来跟踪针对当前会话的任何已评估的访问控制表达式。这有助于避免重新计算。系统可以找到具有至少一个非特权(un-privileged)配方对象的所有结构行(即,具有至少一个这样的对象的结构行:基于访问控制表达式和用户凭证,拒绝对所述至少一个对象的访问)。所有其他行都是完全可读的(允许访问)且不再需要进一步考虑。对于非特权行的剩余的集合,系统确定哪些结构行性质不可见。为了这样做,对于每个感兴趣的结构行(即,仅是具有小于100%的访问的结构行——结构行的小子集)的每个持久对象,系统获得受其影响的所有性质的列表。如果给定的性质在该列表中并且受非特权配方对象影响,则系统将该性质标记为不可读。这可以以基于集合的方式来完成,并且因此返回关于感兴趣的所有这样的行的所有不可读性质。如上所述,可以通过在运行时评估布尔表达式以及最终用户会话信息来确定对象访问,而不是关于每个访问重新评估规则。当然,本领域技术人员将认识到,除非由操作序列具体指示或要求,否则上述过程中的某些步骤可以被省略、同时或顺序执行、或者以不同的顺序执行。本领域技术人员将认识到,为了简单和清楚,本文中没有描绘或描述适于与本公开一起使用的所有数据处理系统的完全结构和操作。代之以,仅描绘和描述了本公开所特有或对理解本公开所必需的数据处理系统中的有限部分(onlysomuch)。数据处理系统100的其余构造和操作可以符合本领域中已知的各种当前实现和实践中的任何实现和实践。重要的是注意,虽然本公开包括在完全功能系统的上下文中的描述,但是本领域技术人员将理解,本公开的机制的至少部分能够以指令的形式来分布,所述指令包含在各种形式中的任何形式的机器可用、计算机可用或计算机可读介质内,并且不管被利用来实际执行该分布的指令或信号承载介质或存储介质的特定类型,本公开都同样适用。机器可用/可读或计算机可用/可读介质的示例包括:非易失性硬编码型介质,诸如只读存储器(ROM)或可擦除电可编程只读存储器(EEPROM),以及用户可记录型介质,诸如软盘、硬盘驱动器和光盘只读存储器(CD-ROM)或数字多功能盘(DVD)。虽然已经详细描述了本公开的示例性实施例,但是本领域技术人员将理解,在不脱离其最广泛形式的本公开的精神和范围的情况下,可以进行本文公开的各种改变、替换、变型和改进。本申请中的描述都不应解读为暗示任何特定元素、步骤或功能是必须包括在权利要求范围内的必要元素:专利主题的范围仅由允许的权利要求书来限定。此外,这些权利要求中没有一个旨在援引35USC§112(f),除非确切的词“用于...的装置”后面是分词。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1