声言发出规则生成流水线的制作方法

文档序号:6435436阅读:118来源:国知局
专利名称:声言发出规则生成流水线的制作方法
技术领域
本发明涉及计算机编程,尤其涉及计算机编程中的声言处理。
背景技术
在计算机编程中,“声言”包括实体(通常被称为发出者)作出的声明。声明是关于实体(通常被称为客体)的语句或断言。实体的示例包括名称、身份、密钥、组、特权、能力以及其他。例如,如果客体是一个人,则断言可能是该客体具有特定年龄、具有特定国籍、 被授权担当特定角色(例如,IT管理员),或者许多其他类型的断言中的任一个。应用程序可以是基于声言的,因为这些应用程序可使用声言来执行处理。在这样做时,在部署后,应用程序将遇到一个或多个发出者作出的任何数量的声言。对于每一个声言,应用程序(或代表该应用程序行动的子系统)确定该应用程序是否信任发出者作出该声言中作出的那种类型的断言。如果应用程序确定至少在作出的断言的上下文中信任发出者,则该应用程序通常将像关于客体的语句为真那样行动。否则,应用程序通常将关于客体的语句视作未通过验证。作为示例,声言已由应用程序用来认证、控制对资源的访问,和/ 或将特定客户机或用户的处理个性化。例如,为了将特定用户的处理个性化,可作出关于该用户的声言,其中该用户是该声言的客体。基于声言的认证系统中引发的一个问题是需要创作和操纵发出声言的准则。这些准则通常被称为“发出规则”并且统称为“发出策略”,并不受到任何标准或代码在句法上的限制,这导致难以理解许多发出规则实现。规则之间的依赖性和关系通常是模糊的。这妨碍了对各个规则的操纵,因为如何影响总体策略变得不清楚。

发明内容
此处所描述的至少一个实施方式涉及使用流水线来处理声言。在计算机编程中, “声言”包括包含实体(通常被称为发出者)作出的声明的数据结构。声明是关于实体(通常被称为客体)的语句或断言。该流水线至少包括初始化阶段、处理阶段以及发布阶段。初始化阶段获得可由任何发出语句使用的源自全局的声言的集合。处理阶段操纵从一个或多个源自全局的声言的集合导出的一个或多个用户任务专用声言的集合。该一个或多个用户任务专用声言的集合通过生成一个或多个临时声言的集合来操纵。处理阶段通过对该一个或多个用户任务专用声言的集合应用发出规则来生成一个或多个临时声言的集合。发布阶段然后以发出格式发出一个或多个临时声言的集合。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。


为了描述能够获得上述和其它优点和特征的方式,各实施方式的更具体的描述将通过参考附图来呈现。可以理解,这些附图只描绘了样本实施方式,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加属性和细节来描述和解释各实施方式,在附图中图1示出可用于采用此处所描述的各实施方式的示例计算系统;图2示出了可以在计算环境中实现以便按照所需输出格式制定声言的流水线;图3示出了用于使用图2的流水线来按照所需输出格式制定声言的方法的流程图;以及图4示出了示例用户界面,可以在图2的流水线中使用该示例用户界面来允许用户使用自然语言来指定发出策略。
具体实施例方式根据此处描述的实施方式,声言处理流水线至少包括初始化阶段、处理阶段和发布阶段。初始化阶段获得可由任何发出语句使用的源自全局的声言的集合。处理阶段操纵从一个或多个源自全局的声言的集合导出的一个或多个用户任务专用声言的集合。该一个或多个用户任务专用声言的集合通过生成一个或多个临时声言的集合来操纵。处理阶段通过对该一个或多个用户任务专用声言的集合应用发出规则来生成一个或多个临时声言的集合。发布阶段然后以发出格式发出一个或多个临时声言的集合。首先,将参考图1来描述关于计算系统的某些介绍性讨论。然后,将参考图2至4来描述流水线的各实施方式。首先,参考图1来描述关于计算系统的介绍性讨论。计算系统现在越来越多地采取多种多样的形式。计算系统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统,或者甚至通常不被视为计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括包含至少一个处理器以及其上能含有可由处理器执行的计算机可执行指令的存储器的任何设备或系统(或其组合)。存储器可以采取任何形式,并可以取决于计算系统的特性和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102 和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。 如此处所使用的那样,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。 此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程 (例如,作为分开的线程)。在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施方式。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。 计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。计算系统100还可具有显示器112。本发明的各实施方式可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施方式还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施方式可包括至少两种完全不同的计算机可读介质计算机存储介质和传输介质。计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码手段且可由通用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码手段可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“mc”) 内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解的是,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可以在其中通过网络链路(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。图2示出了声言处理流水线200。该处理流水线包括初始化阶段210、预处理阶段 220、处理阶段230和发布阶段M0。在计算机编程中,“声言”是包括实体(通常被称为发出者)作出的声明的数据结构。声明是关于实体(通常被称为客体)的语句或断言。例如, 声明可被呈现为名/值对。发出规则指的是用于确定是否应生成声言的规则。发出规则的集合被称为发出策略。发出策略可以变得相当复杂,并且发出规则可能以预料之外的方式彼此干扰。所述流水线是可以在用户任务上建模的结构化操作流水线,由此提供其中用户能够容易地创作发出语句的框架。用户任务基于发出语句,该发出语句是以发出语句是自包含的并由此是次序无关的方式收集并结构化的发出规则的集合。发出规则本身是从发出语句作者中抽象出来的。流水线200的各个阶段210、220、230和240可以在单个计算系统上实现,或者可能在不同的计算系统上实现,或者可能只有某些阶段在计算系统上实现。现在将频繁地参考图3描述图2的流水线200,图3示出了用于操作流水线的方法300的流程图。图2的组件用200多的附图标记来标记,而图3的方法中的动作用300多的附图标记来标记。初始化阶段210获得一个或多个源自全局的声言的集合(动作310)。源自全局的声言是可由具有对源自全局的声言的访问的任何发出语句使用的声言。为了示出此处描述的更宽泛的原理,特定场景现在将在本说明书全文中概述并使用。在该场景中,用户任务是发出表示该用户的角色的声言。发出规则作者想要从认证用户源引出所有组成员资格声言,但进行过滤以使得只发送用户组“Manager"管理者)”和“Purchasers (购买者)”的成员资格。由此,初始化阶段210将获得认证用户的所有组成员资格的集合。在一个实施方式中,初始化阶段210从属性存储211中创建一个或多个源自全局的声言的集合的至少一部分(动作311)。例如,初始化阶段210可能向属性存储查询与认证用户相关联的所有组成员资格,并且作为响应,接收与认证用户相关联的组成员资格的列表。初始化阶段210然后可以从属性中创建源自全局的声言。以下源自全局的声言是如何能够表示指定与用户相关联的属性的声言的示例c [Type ==“ http //schemas. microsoft, com/ws/2008/06 /identity/claims/ windowsaccountname“]=> add (store =〃 Active Directory" , types =( “ urn :733eff54-7587-41c8-983f-f801defala41 “ ) , query =“; tokenGroups ; {0}“,param = c. Value);此处“urn”值使得该声言成为全局声言,因为该声言可由任何发出语句使用。可以存在多个这样的源自全局的声言,或许从属性存储接收到的每一个获取的角色属性对应一个声言。例如,“urn”是声言标识符。由此,该标识符在所有发出语句中进行全局共享的事实定义其全局范围。作为替换或补充,初始化阶段210可通过从流水线之外的外部声言源接收已经作为源自全局的声言的一个或多个声言来获得源自全局的声言。预处理阶段220实例化从一个或多个源自全局的声言的集合导出的用户任务专用声言的集合(动作320)。用户任务专用声言在流水线内部使用,并由此对用户任务专用声言的任何操纵不影响源自全局的声言,因为这些源自全局的声言是在流水线200之外解释的。在这种情况下,通过改变声言标识符的类型以指示该声言是不同的声言并且具有严格在流水线内部的范围,为每一个声言实现这点。这造成为每一个声言生成不同的“urn” 值。作为示例,以上声言可被改为c: [Type = = “ urn :733eff54-7587-41c8-983f-f801defala41 “]= > add(type =
urn :908bafa9-8b59-41a2-9141-f78deabfcec4//,value = c. value);注意“urn”值如何改变。现在,该声言只能在流水线200中操纵,且不影响对应的
源自全局的声言。处理阶段230通过生成一个或多个临时声言的集合来操纵由预处理阶段实例化的一个或多个用户任务专用声言的集合(动作330),其中处理阶段230通过对一个或多个用户任务专用声言的集合应用发出规则来生成一个或多个临时声言的集合。在图2中,示出了两个发出规则231和232。然而,省略号233表示可以存在其他数量的发出规则,并且发出规则的数量可使用用户界面250来编辑。作为示例,处理阶段230可通过过滤一个或多个用户任务专用声言的集合来操纵该一个或多个用户任务专用声言的集合。作为示例,以下两个过滤发出规则可能使用处理阶段230来生成,在这种情况下每一个过滤规则按序应用于每一个用户任务专用声言。c [Value == eabfcec4"]=>add (type = c. value);c [Value == 8deabfcec4"]=>add (type =
Managers",Type= = " urn :908bafa9-8b59-41a2-9141-f78d
urn :5bl2a7a4-8806-45c7-blf3-62el9c5dl02a
value
'... ..... ...... ,Type= = " urn :908bafa9-8b59-41a2-9141-f7
urn :5bl2a7a4-8806-45c7-blf3-62el9c5dl02a
,value
.value);作为对过滤的替换或补充,发出规则可指定发生在一个或多个用户任务专用声言的集合中的每一个声言上的变换。所得发出语句是自包含的,因为发出源范围内的声言、操纵操作和输出所必需的所有信息都被包含在流水线200的领域内。作为自包含的结果,发出语句不再对执行这些语句的次序敏感。发布阶段MO以预定最终输出声言类型发出一个或多个临时声言的集合(动作 340),以便为发出声言做好准备。以下是全文中所使用的用户任务示例中的已发布的声言的示例 c [Type == issue(type = ‘’
Value =
urn :5bl2a7a4-8806-45c7-blf3-62el9c5dl02a
]=>
http://schemas. microsoft, com/ws/2008/06/identity/claims/rolec. Value);用户界面250操纵用于处理一个或多个用户任务专用声言的集合的发出语句指示(并由此间接操纵发出规则)。图4示出了其中用户可使用自然语言来指定发出语句的一个示例用户界面400。在窗口 401中,用户可以用自然语言指定使用语句。在这种情况下,用户已经选择发送角色属性。注意,例如如何突出显示窗口 401中的第三个发出语句。 如果流水线200由图1的计算系统100实现,则用户界面400可能出现在显示器112上。在窗口 402中,与窗口 401中的所选发出语句相关联的发出规则以自然语言概述。 行410总结用户在窗口 401中的选择。行420指定声言值将源自来自“ActiveDirectory (活动目录)”属性存储的属性“tokenGroups (令牌组)”。此外,行430和440指定处理阶段规则本身,每一个规则都使用自然语言。 因此,此处描述的流水线准许用于以所需格式制定声言的基于框架的机制。本发明可被具体化为其他具体形式而不背离其精神或本质特征。所描述的实施方式在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵
权利要求
1.一种计算机程序产品,所述计算机程序产品包括其上具有计算机可执行指令的一个或多个计算机存储介质(104),所述指令被结构化以使得在由计算系统(100)的一个或多个处理器(102)执行时使得所述计算系统实例化声言处理流水线000),所述声言处理流水线(200)包括获得可由任何发出语句使用的一个或多个源自全局的声言的集合的初始化阶段 (210);操纵从所述一个或多个源自全局的声言的集合导出的一个或多个用户任务专用声言的集合的处理阶段030),所述一个或多个用户任务专用声言的集合通过生成一个或多个临时声言来操纵,其中所述处理阶段通过对所述一个或多个用户任务专用声言的集合应用多个发出规则(231、232、23;3)来生成所述一个或多个临时声言的集合;以及以发出格式发出所述一个或多个临时声言的集合的发布阶段(MO)。
2.如权利要求1所述的计算机程序产品,其特征在于,所述流水线还包括实例化从所述一个或多个源自全局的声言的集合导出的所述用户任务专用声言的集I=I O
3.如权利要求1所述的计算机程序产品,其特征在于,所述初始化阶段从属性存储中创建所述一个或多个源自全局的声言的集合的至少一部分。
4.如权利要求1所述的计算机程序产品,其特征在于,还包括 允许用户操纵所述多个发出语句的用户界面。
5.如权利要求1所述的计算机程序产品,其特征在于,所述多个发出语句是自包含的。
6.如权利要求1所述的计算机程序产品,其特征在于,所述多个发出语句是次序无关的。
7.如权利要求1所述的计算机程序产品,其特征在于,所述处理阶段通过过滤所述一个或多个用户任务专用声言的集合来操纵实例化的所述一个或多个用户任务专用声言的皇A朱口 ο
8.如权利要求1所述的计算机程序产品,其特征在于,所述处理阶段通过变换所述一个或多个用户任务专用声言的集合来操纵实例化的所述一个或多个用户任务专用声言的隹A朱口 O
9.一种用于在流水线中处理声言的计算机化方法(300),所述方法包括在初始化阶段Ο ο)中,创建(311、312)可由任何用户任务使用的一个或多个源自全局的声言的集合的至少一部分的动作;在处理阶段中(230)中,操纵(330)从所述一个或多个源自全局的声言的集合导出的一个或多个用户任务专用声言的集合的动作,所述一个或多个用户任务专用声言的集合通过对所述一个或多个用户任务专用声言的集合应用多个发出规则来操纵;以及在发布阶段O40)中,以预定发出声言格式发出(340) —个或多个临时声言的集合的动作。
10.如权利要求9所述的方法,其特征在于,还包括在预处理阶段中,实例化所述一个或多个用户任务专用声言的集合的动作。
全文摘要
本发明涉及声言发出规则生成流水线。一种流水线至少包括初始化阶段、处理阶段以及发布阶段。初始化阶段获得可由任何发出语句使用的源自全局的声言的集合。处理阶段操纵从一个或多个源自全局的声言的集合导出的一个或多个用户任务专用声言的集合。该一个或多个用户任务专用声言的集合通过生成一个或多个临时声言的集合来操纵。处理阶段通过对该一个或多个用户任务专用声言的集合应用发出语句来生成一个或多个临时声言的集合。发布阶段然后以发出格式发出一个或多个临时声言的集合。
文档编号G06F9/44GK102508656SQ20111030864
公开日2012年6月20日 申请日期2011年9月29日 优先权日2010年9月30日
发明者C·G·贝克, J·L·秋, K·K·谢诺伊, M·A·马斯, S·L·希, S·R·德瓦萨哈亚姆 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1