提供基于rea模型的安全性的系统和方法

文档序号:6475139阅读:386来源:国知局
专利名称:提供基于rea模型的安全性的系统和方法
背景技术
本发明涉及资源—事件—代理(REA)模型,以及使用REA模型的系统和方法。更具体而言,本发明涉及提供REA模型中的安全性的方法。
商业用户和应用程序开发者更偏爱其中主要抽象是职业人员用于描述其工作的概念的软件应用程序。例如,诸如经济资源、商业合伙人、合同和协议等概念对于商业用户是自然的,而诸如类、方法、虚拟集合和字段等概念对于程序员是自然的,但对于商业用户并非如此。
对于模型驱动开发的当前趋势是试图远离低级编程,趋向基于领域专家概念的建模。在能够完成任何建模之前,无论该模型是以代码还是以图表表达,都期望选择一种能够担当用于用该模型工作的所有人的语言的普遍存在的语言。该语言应当在软件的开发和使用过程中经受住时间的考验。确保语言足够可靠和详尽以满足这些需求的一个重要方面是以声音基础作为语言的基础。一种提供声音基础来致力于这些需求的建模语言是REA。
REA是1982年由William E.McCarthy提出的规范会计模型的名称。例如,见William E.McCarthy的“The REA Acconting ModelA Generalized Framework forAccounting Systems in a Shared Data Environment”,The Accounting Review,卷LVII,第3期,1982年7月。REA通常被称为模型、框架、本体论、企业信息系统体系结构或其它常用的名称。REA模型的基本优点是它提供了一种用于描述商业过程的规范模型。围绕该基本规范模型,多年以来在关于建模方法本身的更多细节、结合REA到公众标准中等形式上添加了附加部分的完整基础结构。
尽管REA允许对“所有权”或“包含”建模,但是它通常不致力于商业模型的安全性方面。传统的商业应用程序将安全细节从领域或商业应用程序建模中分离开来。由于此原因,当考虑到安全配置或元数据时通常几乎不能发现什么,并且通常要么缺少安全子系统,要么与应用解决方案并行地实现安全子系统。
对安全性的现有解决方案通常是让开发者建立能或不能由系统中的各角色查看的属性列表。这一方法是易于出错的。此外,这一方法涉及非常复杂的实现,每次安装常常需要若干天。有时,这一方法由编码解决方案的开发者以软件方式来实现。这使得更难获得正确的安全设置,因为用户(即,系统管理员等)无法改变设置并定义其自己的角色/安全访问。
发明概述一种提供基于资源—事件—代理(REA)模型的安全性的方法包括识别REA模型中第一对象和第二对象之间的关联。然后,为第一对象和第二对象之间的关联创建关联类。例如,称为安全策略关联类的关联类定义了第一对象和第二对象之间的安全性。
在第一对象和第二对象之间定义的关联类是具有属性的对象。关联类对象的属性定义了第一对象和第二对象之间的安全性。创建关联类的步骤还可包括创建具有属性的一个或多个关联类对象,其中一个或多个关联类对象的属性定义了第一对象类和第二对象类之间的安全性,第一对象是第一对象类的成员,而第二对象是第二对象类的成员。第二对象是可保护的对象,如合同或协议类型对象、委托类型对象、事件类型对象或资源类型对象。第一对象是特定的代理类型。用户的角色由第一对象的特定代理类型定义。
第一对象和第二对象之间创建的关联类可以在安全模型中创建,该安全模型或者与REA模型相分离,或者作为REA模型的一部分。第一对象和第二对象之间定义的安全性包括定义第一对象相对于第二对象的许可和权限。这些许可和权限可在安全模型外部的安全策略逻辑模块中动态地确定。这对于本质是瞬时的许可和权限,例如取决于日期、时间、事件状态等尤其有用。
当阅读以下详细描述并审阅附图时,具有本发明的实施例的特征的其它特征和益处将显而易见。
附图的简要描述

图1是其中可实现本发明的一个示例性环境的框图。
图2是其中可实现本发明的通用移动计算环境的框图。
图3所示是基本REA交换模式的框图。
图4是示意性地示出了语义REA模型的框图,其中示出了主要对象类型和关联类型。
图5-1所示是依照常规REA模型两个对象类之间的内部参与关联的框图。
图5-2所示是图4-1中所示的两个对象类之间的内部参与关联的框图,其中依照本发明添加了关联类以提供针对该模型的安全方面。
图6-1所示是依照常规REA模型的两个对象类之间的外部参与关联的框图。
图6-2所示是图4-1所示的两个对象类之间的外部参与关联的框图,其中依照本发明添加了关联类以提供针对该模型的安全方面。
图7是示出了本发明的其它方面的框图。
图8-1所示是基于REA的安全系统的框图,其中具有关联类的安全模型使用了该REA模型语义信息,但存在于该REA模型本身的外部。
图8-2所示是基于REA的安全系统的框图,其中具有关联类的安全模型被集成到REA模型中。
图9所示是本发明的方法的框图。
说明性实施例的详细描述资源—事件—代理(REA)模型允许对“所有权”或“包含”建模,但是REA建模语义尚未用于驱动安全配置。本发明部分地基于对REA建模语义能用于提供这一安全的认识。所揭示的是使用REA语义来从结合这些语义的任一REA模型驱动默认安全配置的策略。该策略在本发明的方法和装置中使用。
传统的商业应用程序将安全细节从领域或商业应用建模中分离出来。与这些传统商业应用程序中使用的安全实现方法相反,使用此处所揭示的战略,REA建模技术可用于将安全信息构建到领域或商业解决方案中。如此处所使用的,术语“语义模型”指的是真实世界活动,例如供应链活动的计算机软件模型。语义模型内容丰富,并且描述了它所建模的真实世界活动中涉及的对象类、关系和功能。REA语义模型可以用许多格式来表达可扩充标记语言(XML)、统一建模语言(UML)、关系型数据库、和/或面向对象的编程语言。在以下讨论中,主要按照UML描述REA模型上的安全实现改进,但是本发明不限于UML实现。
图1示出了适合在其中实现本发明的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的一个示例,并非暗示对本发明的使用范围或功能的局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有任何依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明可以在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参考图1,用于实现本发明的示例性系统包括计算机110形式的通用计算装置。计算机110的组件可包括但不限于,处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
系统存储器130包括以易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图1示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器141、对可移动、非易失性磁盘152进行读写的磁盘驱动器151以及对可移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
上文讨论并在图1示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。
用户可以通过输入设备,如键盘162、麦克风163和定点设备161(如鼠标、跟踪球或触摸板)向计算机110输入命令和信息。其它输入设备(未示出)可包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。除监视器之外,计算机也可包括其它外围输出设备,如扬声器197和打印机196,它们通过输出外围接口195连接。
计算机110可以在使用到一个或多个远程计算机,如远程计算机180的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、手持式设备、服务器、路由器、网络PC、对等设备或其它普通网络节点,并通常包括许多或所有相对于计算机110所描述的元件。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常可包括调制解调器172或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172可以是内置或外置的,通过用户输入接口160或其它适当的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出远程应用程序185驻留在远程计算机180中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
图2是移动设备200的框图,它是一个替换的示例性计算环境。移动设备200包括微处理器202、存储器204、输入/输出(I/O)组件206和用于与远程计算机或其它移动设备通信的通信接口208。在一个实施例中,上述组件被耦合在一起用于通过合适的总线210彼此通信。
存储器204被实现为非易失性电子存储器,如具有电池备份模块(未示出)的随机存取存储器(RAM),使得当关闭移动设备200的总电源时,储存在存储器204中的信息也不会丢失。存储器204的一部分较佳地被分配为用于程序执行的可寻址存储器,而存储器204的另一部分较佳地用于存储,如模拟盘驱动器上的存储。
存储器204包括操作系统212、应用程序214以及对象存储216。在操作期间,操作系统212较佳地由处理器202从存储器204执行。在一个较佳实施例中,操作系统212是可从微软公司购买的WINDOWSCE品牌的操作系统。操作系统212较佳地被设计成用于移动设备,并实现可由应用程序214通过一组展现的应用编程接口和方法来使用的数据库特征。对象存储216中的对象由应用程序214和操作系统212至少部分地响应于对所展现的应用编程接口和方法的调用来维护。
通信接口208表示允许移动设备200发送和接收信息的众多设备和技术。仅举几个例子,设备包括有线和无线调制解调器、卫星接收器和广播调谐器。移动设备200也可直接耦合到计算机以与其交换数据。在这些情况下,通信接口208可以是红外收发器或串行或并行通信连接,所有这些都能够发送流信息。
输入/输出组件206包括各种输入设备,如触敏屏幕、按钮、滚轴和麦克风,以及各种输出设备,包括音频发生器、振动装置和显示屏。以上列出的设备作为示例,并不需要都在移动设备200上存在。另外,其它输入/输出设备可被附加到移动设备200,或与移动设备200一起找到。
REA 建模回顾REA是一种用于描述经济和商业系统的已建立的建模技术、本体论和语义模型。REA将商业系统描述为一组经济资源、经济事件和经济代理以及它们之间的关系。经济事件捕捉经济代理之间的经济资源所有权的改变。图3示出了基本REA元模型300,它具有资源305、事件310和代理315。
在REA模型中,经济资源的交换是关于企业的主要经济数据。诸如借方、贷方、流水帐、分类帐、应收票据和账目等会计结果都是从描述交换的数据中导出的。例如,库存项目的现有量可被计算为该库存项目的购买事件和销售事件之间的不平衡性。相比较而言,在大多数现有的企业资源规划(ERP)系统中,它是相反的-经济数据从会计结果中导出。即,在某一意义上,将结果放在原因之前,并令模型更复杂。
另外,REA包含了从经济观点来看确保模型的一致性的规则(公理)。结果(1)REA模型是简洁的且易于理解;(2)同一模型可跨不同的商业领域使用;(3)会计结果总是一致的,因为它们从同一数据中导出(例如,用于描述销售事件的数据在仓库管理、工资单、分配、财务和其它模块中使用);以及(4)REA模型提供了比基于会计结果的报告更完整的报告。商业对象总是使用图3所示并在下文描述的通用类型的模式相关在一起。
“经济资源”表示贸易的主题。经济资源是在“经济代理”的控制下有价值的东西。经济资源的示例是产品、货币、固定资产、原料和雇员资格。资源的许多其它示例也是可能的。经济资源表示管理设法控制的值。“经济事件”表示经济资源的所有权的改变。某些经济事件瞬时地发生,如货物的销售。然而,某些在一时间间隔上发生,如租赁或服务和雇佣。经济事件的示例包括但不限于,发货(交货)、支付、退货和雇员时间的使用。
“经济代理”表示能够与其它经济代理(或仅代理)交换经济资源(或仅资源)的经济单元或合法实体。经济代理的示例包括顾客、销售商和雇员。代理在下文参考图4更详细讨论。
“对偶性”是经济事件之间的关系。在REA中,表示资源的流入的每一经济事件必须最终与表示资源的流出的经济事件相关,反之亦然。
现在参考图4,所示的是示出了语义REA模型400的框图,其中示出了主要对象类型和关联类型。图4的讨论对于进一步理解对REA建模常用的术语是有用的。然而,本发明不限于具有图4所示的特定REA建模元素的系统。
如图4所示并参考图3所讨论的,典型的REA模型包括资源、代理和事件。使用UML术语对上述定义进行扩展,“代理”可被定义为参与事件的那些人。“代理”也可被定义为更大的“类”或“对象类”的固定形式或分类。“对象”是类的“实例”。例如,对于表示雇员的对象类,工程师应当是雇员类的一个代理。表示雇员类的工程师代理中的一个特定工程师的对象是雇员类的“实例”。一般而言,REA模型支持对象表示被建模的人、商业、发生的事件等的概念。
在图4中,示出了两种类型的代理—外部代理405和内部代理410。在一种常见的情形中,必须为一个事件标识两个代理。在事件中放弃某些东西(“资源”)的代理是外部代理,而接收某些东西的代理是内部代理。外部代理对事件的参与被称为外部参与,而内部代理对事件的参与被称为内部参与。
作为一个示例,对于组织的REA模型,外面的代理通常在被建模的组织的外部,如顾客或销售商。里面的代理通常是组织的雇员。里面和外面代理中的哪一个是外部代理以及哪一个是内部代理取决于谁在事件中放弃资源。作为另一示例,如果交易是组织内的两个商业单元之间的资源传输,则内部代理是放弃资源的那一个,而外部代理则是接收它的那一个。在本发明的上下文中,外部和内部代理用于解释应用程序角色,每一个唯一的外部或内部代理被转换成一个新的应用程序角色。
REA模型支持不同种类的关系的概念。第一种类型的关系将不同类型的对象相关以形成新对象。这一类型的关系被称为“关联”。关联在图4中由连接对象的带箭头的线示出。一个示例关联被示出为由参考标号412指定。
“控制关系”是一侧的代理和另一侧的经济事件或其它类型对象之间的关联。例如,在图4中,示出了内部代理410和启动委托412之间的“控制关联”类型由参考标号420指定。“控制关联”的另一示例在外部代理405和启动委托412之间。该示例示出了内部代理410将被控制负责(控制)启动委托412和对应的经济资源440保留的。在本发明的上下文中,“控制关联”类型被解释为与代理有关的“所有权”。当代理在类型“控制”的关联的一端时,在本发明的实施例中,该代理被授予对另一端的对象类的权限。在图4中,所示的代理可具有控制类型关联所带有的对象类型包括合同/协议425、委托430、事件435和资源440。控制类型关联也可带有其它类型的对象。
保管是另一关联类型。在本申请的上下文中,这一关联类型被解释为“责任”。当资源和代理(内部或外部)之间的关联是保管类型时,在本发明的实施例中,代理将被授予对资源的某些默认许可。保管类型关联的一个示例在图4中示出,它在资源440和内部代理410之间,在参考标号415处示出。在图4中,所示的代理可具有保管所带有的对象类型包括合同/协议425、委托430和事件435。保管类型关联也可带有其它类型的对象。
REA 建模中的安全性依照本发明的实施例,向代理和对应的可保护类之间的关联添加关联类。关联类本身是一个或多个新对象。每一可保护类具有可在类的实例上执行的一组操作。例如,这些操作可以是“读”、“更新”、“删除”、“转发”、“打印”或对所述的类适当的许多其它操作。
支配特定关系、应用程序或系统的安全性通常被称为“安全策略”。安全策略定义了描述所有角色和可保护对象及其关系的模型。它还定义了可在每一可保护对象上执行的所有操作。这一信息构成了非类属对象模型中模型的静态部分。诸如用户、许可和确定许可授予的其它因素等其它组件是动态且可配置的。典型的应用程序安全组件的剩余部分包括管理和实施策略的工具和基础结构。
REA安全策略允许安全策略的静态部分的生成。采用诸如在策略模板中表达的默认配置等某些附加策略能力,也可生成安全策略的默认动态配置。在生成安全策略的这些静态和动态部分之后,在一个典型的应用程序中,所剩下的要完成的所有事情是在部署了应用程序之后向系统管理员提供某些管理安全策略的工具。
为示出本发明的方法和装置的概念,示出并讨论用于简单定单登记应用程序的REA模型的一部分。首先考虑安全性的角色方面。基于角色的访问控制(RBAC)是商业应用程序中常用的技术/战略。在这一模型中,用户具有角色,而角色具有许可。角色对应于组织中的工作职责。概念上并且特别地,当个人的工作职责已知而非通过使用与工作职责不相关的其它分组机制时易于管理个人的安全许可。
依照本发明的各方面,在REA模型中,REA安全策略的第一个步骤是实现以下。对于用<<代理>>标记定型的所有唯一类,创建一新的安全角色。该角色可被授予在用模型中该角色的代表性代理类的关系来表示的对象上执行操作的许可。关于这点的一个示例在图5-1和5-2中提供的图表中描述。
图5-1所示的是表示用代理固定形式标记的“SalesPerson(销售人员)”的对象505。同样示出的是表示“SalesOrderHeader(销售定单标题)”类型委托的第二对象510。InternalParticipation(内部参与)类型关联存在于SalesPerson代理和SalesOrderHeader委托之间,如由参考标号515所示。
在此示例中,用<<代理>>固定形式标记的“SalesPerson”变为一个安全角色。模型中每一其它唯一代理也可变为RBAC实现中使用的安全角色。这些角色的每一个然后被分析以确立它们与模型中的其它类具有什么关系以及它们与这些类具有什么种类的关系。
图5-2所示的是与图5-1中所示的相同的图表,但是包括依照本发明的关联类520。关联类520是用于实现安全策略的对象(或多个对象)。名为“SecurityPolicyAssociation(安全策略关联)”的对象520是委托(SalesOrderHeader)510和代理(SalesPerson)505之间的关联515上的关联类。关联类520包含指示代理505可在委托510上执行的操作的属性或数据字段信息,由此提供了REA模型中的安全性。操作列表当然可以不同,取决于委托类型。通常操作集包括诸如“创建”、“读”、“更新”、“删除”(CRUD)等操作。
当创建销售定单时,SecurityPolicyAssociation类可包含指定向代理默认地授予哪些操作的模板策略。由于这是类型控制的InternalParticipation关联,所述的SalesPerson(由对象505表示)可被授予完整的访问权限(CRU),可能除“删除”之外。“删除”销售定单对象510的权限可以是对另一代理的保留操作。总之,采用添加关联类来定义代理505可在委托510上执行的操作的形式的本发明的改进,REA模型可用于基于现有的REA语义导出自动安全设置。
图6-1所示是具有与SalesOrderHeader类对象的关系的另一代理的图表。在图6-1中,示出了表示用代理固定形式标记的“Customer(顾客)”的对象605。外部参与类型关联存在于Customer代理605和SalesOrderHeader委托510之间,如在参考标号615处所示的。在此示例中,Customer是具有控制类型的ExternalParticipation(外部参与)关联的代理。“Customer”代理类是该REA模型中的另一角色实例。如图5-1和5-2中所提供的示例的情况那样,通过在两个对象(或对象类)510和605之间的关联615上创建另一关联对象类向REA模型提供了安全性。
现在参考图6-2,所示的是对象605和510之间的关联615上的关联类620。再一次使用同一策略来向REA模型提供安全性,其中安全性由标记为“SecurityPolicyAssociation”的关联类对象定义或控制,但是对带有标记为ExtemalParticipation的关联的Customer代理的默认权限上有些许差别。在REA中,外部侧的代理是在关系中具有较少权力的那一个。实际上,在商业环境中,顾客通常具有所有的权力,由此通常使用短语“顾客总是对的”。这种类型的权力当然不是当说起Customer代理具有“较少权力”时所指的权力。相反,所指出的要点是销售人员创建销售定单;她输入信息并且确保有人将其发货给顾客。在这一过程中,销售人员接收在整个过程中操作销售定单的重大许可。在此情况下,顾客可能只需要为核查定单状态而读取销售定单标题的许可。如果作出这一概括,可以总结出,具有外部参与的代理将总是具有较少特权的代理,这与内部参与的代理相反。
现在考虑图7所示的图表,其中,表示了模型的较大部分。在这一较大模型的小示例中,注意力集中在涉及了事件(Event)和产品(Product)对象(例如,见对象705、710和715)的事实上。同样示出的是表示用代理固定形式标记的“Bank(银行)”对象725和表示类型“BankAccount(银行账号)”的资源的对象730之间的“Custody(保管)”关联类型720。
图7中还添加了表示用代理固定形式标记的“WareHouseClerk(仓库职员)”的对象735。WareHouseClerk对象735具有与表示“DeliveryDetail(交货细节)”事件的对象705的关联736。在这一情况下,WarehouseClerk 735在事件705启动和停止之间的定单履行过程中工作。由于此处涉及了接收货物(Product资源715)的顾客(Customer代理605),顾客对任一其定单所具有的权限将在作出支付之后“重要地增加”。这一“过渡”效果是对事件的,并且可预想这样的对象和代理,在事件启动之前代理对对象没有权限、在对象的某一状态期间有有限的访问权限并且一旦事件过去最终回到没有权限。由于REA模型的丰富语义,加上添加的本发明的安全策略关联类(图5-2和6-2所示),这一类型的动态许可授予是可能的。
必须注意,代理可代表其它代理来行动。这一关系通常被称为扮演,它给予扮演者所扮演的代理的权限。例如,大使在外国扮演了国家元首,从而给予大使对与大使(扮演者)有关的对象的国家元首的访问权限。
“Custody”关联类表示“责任”,因此可通过应用上文讨论的关联类的发明性方面、将操作许可添加到关联类对象中,来设计类似的安全策略。
从这些示例可以见到,使用这一REA安全战略来对非常重要的元数据建模,可提供一种可在管理和运行时使用的安全子系统。如管理和实施REA事件上的安全性的动态方面的情况下,在某些情况下,抽象制成单独模型和一组商业逻辑的某些决策是一种益处。这可使用策略对象或子系统来实现。
在某些实施例中,安全策略是与REA模型并行的单独模型,而REA模型包含开发者可能在设计过程中知道的所有信息,如谁(角色)和什么(可保护对象+那些对象上的可能操作)。这一系统的一个示例在图8-1中示出,其中具有依照本发明的关联类的安全模型810与REA模型805分离。由安全模型810实现的安全策略包含仅在部署时或部署后已知或修改的信息。“用户”是可在包括本发明的安全策略关联类的单独的安全策略模型810的部署中添加的信息的示例。同样示出的是可任选的安全策略逻辑模块815,它抽象了制成单独模型和一组商业逻辑的某些决策。例如,如果安全模型810包括向某些用户授予对某些资源的权限的关联类,则如果权限本质上是动态的(即,取决于日期或时间、取决于事件状态等),安全策略逻辑模块815可用于定义那些权限。对模型或模块的引用旨在包括合适地编程的处理组件和/或系统,以及相关联的存储器,例如图1和2中所示出的那些。
在替换实施例中,可向REA模型本身添加“用户”,但是这可能不是较佳的。然而,这一实施例在本发明的范围之内,并且在图8-2中示出,其中具有依照本发明的关联类的安全模型810与REA模型805集成。由此,定义安全策略的关联类对象被添加到REA模型本身。
再一次,采用安全策略逻辑模块815,由“何时”类别(例如,何时应用许可?)中的安全策略提供的回答可以单独地从模型805/810生成。如果对于允许某一组许可在常规工作时间中活动,而一组不同的许可在工作完之后或周末激活存在要求,则可结合具有安全策略关联类的安全策略模型810,使用单独的策略逻辑系统或模块815,其中基于不同的证据类型在激活策略上作出决策。证据类型的示例包括时间、位置等等。
当考虑到部署灵活性时另一重要的方面是如何处理各种形式的保密立法。许多公司通常在考虑到采用其应用程序来根据是否被部署而使用不同的保密策略时感到困惑。REA安全策略加上外部策略的概念会有帮助。
图9所示是提供基于资源—事件—代理(REA)模型的安全性的方法的框图900。图9所示的方法总结了上述方法,但是并不将本发明限于该特定方法。如框905所示,该方法包括识别REA模型中第一对象和第二对象之间的关联。然后,如框910所示,为第一对象和第二对象之间的关联创建关联类。例如,称为安全策略关联类的关联类定义了第一对象和第二对象之间的安全性。
在第一对象和第二对象之间定义的关联类是具有属性的对象。关联类对象的属性定义了第一对象和第二对象之间的安全性。创建关联类的步骤还可包括创建具有属性的一个或多个关联类对象,其中一个或多个关联类对象的属性定义了第一对象类和第二对象类之间的安全性,第一对象是第一对象类的成员,而第二对象是第二对象类的成员。第二对象是可保护对象,如合同或协议类型对象、委托类型对象、事件类型对象或资源类型对象。第一对象是特定代理类型。用户的角色由第一对象的特定代理类型定义。
在第一对象和第二对象之间创建的关联类可在安全模型中创建,该安全模型可以与REA模型分离,或是REA模型的一部分。在第一对象和第二对象之间定义的安全性包括定义第一对象相对于第二对象的许可和权限。这些许可和权限可以在安全模型外部的安全策略逻辑模块中动态地确定。这对于本质上瞬时的许可和权限,例如取决于日期、时间、事件状态等尤其有用。
尽管参考特定实施例描述了本发明,然而本领域的技术人员将认识到,可以在不脱离本发明的精神和范围的情况下在形式和细节上作出改变。
权利要求
1.一种提供基于资源—事件—代理(REA)模型的安全性的方法,所述方法包括识别REA模型中第一对象和第二对象之间的关联;为所述第一对象和所述第二对象之间的关联创建一关联类,所述关联类定义了所述第一对象和所述第二对象之间的安全性。
2.如权利要求1所述的方法,其特征在于,为所述第一对象和所述第二对象之间的关联创建所述关联类还包括创建一具有属性的关联类对象,所述关联类对象的属性定义了所述第一对象和所述第二对象之间的安全性。
3.如权利要求2所述的方法,其特征在于,创建所述关联类对象还包括创建具有属性的一个或多个关联类对象,所述一个或多个关联类对象的属性定义了所述第一对象类和所述第二对象类之间的安全性,所述第一对象是所述第一对象类的成员,所述第二对象是所述第二对象类的成员。
4.如权利要求2所述的方法,其特征在于,所述第二对象是可保护对象。
5.如权利要求4所述的方法,其特征在于,所述第一对象是一特定代理类型,并且其中,用户的角色由所述第一对象的特定代理类型定义。
6.如权利要求5所述的方法,其特征在于,所述第二对象是合同或协议类型对象。
7.如权利要求5所述的方法,其特征在于,所述第二对象是委托类型对象。
8.如权利要求5所述的方法,其特征在于,所述第二对象是事件类型对象。
9.如权利要求5所述的方法,其特征在于,所述第二对象是资源类型对象。
10.如权利要求5所述的方法,其特征在于,所述第二对象是代理类型对象。
11.如权利要求5所述的方法,其特征在于,识别所述第一对象和所述第二对象之间的关联还包括识别所述第一对象和所述第二对象之间的控制类型关联。
12.如权利要求5所述的方法,其特征在于,识别所述第一对象和所述第二对象之间的关联还包括识别所述第一对象和所述第二对象之间的保管类型关联。
13.如权利要求5所述的方法,其特征在于,为所述第一对象和所述第二对象之间的关联创建关联类还包括在安全模型中创建所述关联类。
14.如权利要求13所述的方法,其特征在于,在安全模型中创建所述关联类还包括在与所述REA模型分离的安全模型中创建所述关联类。
15.如权利要求13所述的方法,其特征在于,在安全模型中创建所述关联类还包括在作为所述REA模型一部分的安全模型中创建所述关联类。
16.如权利要求13所述的方法,其特征在于,定义所述第一对象和所述第二对象之间的安全性还包括定义所述第一对象相对于所述第二对象的许可和权限。
17.如权利要求16所述的方法,其特征在于,定义所述第一对象相对于所述第二对象的许可和权限还包括在所述安全模型外部的安全策略逻辑模块中动态地确定所述许可和权限。
18.一种具有用于执行权利要求1-17的任一项所述的方法的步骤的计算机可执行指令的计算机可读介质。
19.一种被配置成实现权利要求1-17的任一项所述的方法的系统。
20.一种用于提供安全性的系统,所述系统包括一资源—事件—代理(REA)模型,它被配置成实现第一对象、第二对象以及所述第一对象和所述第二对象之间的关联;一安全模型,它被配置成实现所述REA模型中所述第一对象和所述第二对象之间的关联的关联类,使得所述关联类定义所述第一对象和所述第二对象之间的安全性。
21.如权利要求20所述的系统,其特征在于,所述第一对象和所述第二对象之间的关联的关联类还包括具有属性的关联类对象,所述关联类对象的属性定义了所述第一对象和所述第二对象之间的安全性。
22.如权利要求21所述的系统,其特征在于,所述关联类对象还包括具有属性的一个或多个关联类对象,所述一个或多个关联类对象的属性定义了所述第一对象类和所述第二对象类之间的安全性,所述第一对象是所述第一对象类的成员,所述第二对象是所述第二对象类的成员。
23.如权利要求21所述的系统,其特征在于,所述安全模型与所述REA模型分离。
24.如权利要求21所述的系统,其特征在于,所述安全模型是所述REA模型的一部分。
25.如权利要求21所述的系统,其特征在于,还包括一安全策略逻辑模块,它耦合至所述安全模型,并被配置成动态地确定所述第一对象相对于所述第二对象的许可和权限。
全文摘要
一种提供基于资源-事件-代理(REA)模型的安全性的方法(900)包括识别(905)第一对象(505)和第二对象(510)之间的关联(515),其中,第一对象是代理类型,而第二对象是任一REA对象。然后,为第一对象(505)和第二对象(510)之间的关联创建(910)关联类(520)。例如,称为安全策略关联类的关联类定义了第一对象和第二对象之间的安全性。
文档编号G06F13/00GK1739259SQ200480001672
公开日2006年2月22日 申请日期2004年7月23日 优先权日2004年3月31日
发明者J·凯恩, P·赫如比, G·欧尔森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1