专利名称:在面向对象系统中控制对保护对象的存取的系统和方法
技术领域:
本发明涉及信息处理系统、方法和生产的物体(articles ofmanufacture),特别是涉及通过面向对象系统中的存取控制来保护对象的系统、方法和生产的物体。
在面向对象的系统中,对对象存取进行保护是必要的。
在许多面向对象的系统中,系统可以通过使对象安全性具有继承性而得到改进。子类应继承其父类的安全性信息,以保留由父类引入的存取控制保护,并保留对象系统的继承一致性。在面向对象的系统中,方法级存取控制可以这样得到每一个类都是一个或多个对象组的一个成员,且每一方法都需要一个或多个在其类级别中定义的存取许可。这一组许可被称为方法的规定存取权或MRAR。存取控制表(ACL)与每一个对象组相关联。一个执行定义在被保护类中的方法的请求触发存取控制机制,该存取控制机制把请求主体的优先级和类对象组的ACL及方法的MRAR组进行比较。然而,有效地确定被继承的方法是由被保护类还是由未被保护类引入,以便据此进行方法存取检查是很重要的。此外,类能够继承正确存取控制信息也是很重要的,该存取控制信息包括方法的MRAR、类对象组和适当的存取控制表。
在现有技术中,有许多用于改进面向对象编程系统(OOPS)的技术。
下面是现有技术的一些例子。
美国专利4,525,780讲述了一种具有组织成对象的存储器的数据处理系统,其中,系统通过辨别用户的类别号、执行用户程序的过程和用户程序所执行的操作系统的类型,来识别用户对对象进行的非法存取,并利用保护技术防止非法存取。保存存取控制表以便控制基于主标识符的对象存取。
虽然该专利总体上是处理在面向对象程序中保护对象存取的方法,但它并没有像参照本发明中讲述和要求的那样,讲述和建议在面向对象的系统中使用安全属性继承性以便控制对象的存取。
美国专利5,136,712讲述了一种用于多任务计算机系统的基于对象的操作系统,它包括使对象私有于某一过程的方法。对私有对象的存取由存取控制表控制。
虽然该专利总体上是处理在面向对象程序中对对象进行存取保护的方法,但它并没有像本发明中讲述和要求的那样,讲述和建议在面向对象的系统中使用安全属性继承性以便控制对象的存取。
美国专利5,265,221讲述了一种存取控制机制,该机制利用动词(verbs)系统、参数、属性和功能的系统用来授予、取消和拒绝对对象的权限。
虽然该专利总体上是处理在面向对象程序中对对象进行存取保护的方法,但它并没有像本发明中讲述和要求的那样,讲述和建议在面向对象的系统中使用安全属性继承以便控制对象的存取。
美国专利5,297,283和美国专利5,321,841可以认为是讲述了一种与上面讨论过的美国专利5,136,712相同的系统。
虽然该专利总体上是处理在面向对象程序中对对象进行存取保护的方法,但它并没有像在本发明中讲述和要求的那样,讲述和建议在面向对象的系统中使用安全属性继承以便控制对象的存取。
美国专利5,093,914总体上讲述了一种数字计算机在控制面向对象程序的执行以便实现某一特定动作的过程中所使用的方法,例如,在执行程序过程中,当某一特定实际功能被某一特定对象调用时,程序终止。
虽然该专利总体上是处理在面向对象程序中保护对象存取的方法,但它并没有像本发明中讲述和要求的那样,讲述和建议在面向对象的系统中使用安全属性继承以便控制对象的存取。
美国专利5,343,554讲述了一个计算系统,该系统中的问题通过如下过程解决创建第一类和第二类对象,其中第二类对象是可以外部调用的,且外部可调用的子类对象包括一个内部可调用的子类对象的标记;执行对象类,其中某一外部可调用的子对象调用内部可调用的子对象,并生成一个与结果相应的第一类新对象。
虽然该专利总体上是处理在面向对象程序中保护对象存取的方法,但它并没有像本发明中讲述和要求的那样,讲述和建议在面向对象的系统中使用安全属性继承以便控制对象的存取。
面向对象编程系统的总体对象是开发一种可轻易地重复使用的对象程序。
二进制码取代源码的重要性随着代码重复使用程度的增加而增加。面向对象技术的主要目的在于代码复用。二进制码的复用对于使面向对象技术在更大的范围内取得成功是必不可少的。随着技术的状态朝着基于可以相互裁剪和插入的由对象格式构造应用的方向发展,其中该对象格式可以裁剪和相互插入,二进制码变得极端重要。
对象管理组(Object Management Group)定义了一套被称为通用对象服务(Common Object Service)的对象系统服务接口。
本发明的目的是通过控制对对象的存取来保护面向对象系统中的对象。
因此,在使用面向对象技术的信息处理系统中,用于控制对象存取的系统、方法和生产的物体,包括一个或多个处理器,一个存储器系统,一个或多个控制着一个或多个I/O装置的I/O控制器,一条连接处理器、存储器系统和I/O控制器的总线,一个用于控制处理器、存储器系统和I/O控制器运行的操作系统,以及一个面向对象的控制装置,该装置通过确定类包括一个把一组许可和由类决定的方法通过确定类联系起来的装置。通过追踪该方法至该定义类,可以确定在执行方法中对前面方法的调用以避免检查授权。在涉及到授予或拒绝对被继承方法的存取权时,对象属性的继承可以解决对象保护的问题。
本发明的一个优点在于,对象安全性可以通过创建一个安全元类(metaclass)得以真正实现,该元类先于方法调度执行授权检查。
图1是执行本发明方法的系统的框图。
图2是显示支持本发明的操作系统平台和系统对象模块程序的框图。
图3是示例本发明安全对象继承体系的对象图(objectdiagram)。
图4是示例本发明安全运行继承体系的对象图。
图5是示例本发明注册安全服务对象继承体系的对象图。
图6是示例本发明安全对象过程结构的对象图。
图7是示例本发明安全服务过程结构的对象图。
参照图1和图2,描述了本发明的信息处理系统10和操作系统环境。
信息处理系统10可以是一个图形工作站或类似的系统,它具有功能非常强大的处理器12,存储系统14,系统总线16,控制显示装置20的显示子系统18,光标控制装置22,和I/O控制器24,它们全部通过系统总线16连接起来。由图1所示的信息处理系统10,可以运行众所周知的商品化多任务操作系统,如OS/2×(OS/2是由国际商业机器公司的注册商标)。由OS/2操作系统控制操作的信息处理系统10的诸多任务之一是执行SOM Object对象程序,该程序是国际商业机器公司的商品化产品。
有关本发明产品的方法和物体,可以包含在SOM Object对象程序中。
任何面向对象系统的一个重要方面是保证对象安全,以便可以执行对象/方法粒度存取控制。这包含前面方法中的存取控制检查。
本发明可以有效地实现在分布式SOM(DSOM)(交叉地址空间ORB)和安全SOM(SSOM)系统中。
用户指定安全性的方法是在搜索对象类时指定如下约束条件名称安全值指示对象是否受存取控制检查保护的逻辑值。
名称ACL值如果安全==TRUE,存取控制表当粒度是每一个方法时,可以在每一次方法调用时实现,也可以首先获得一个引用时实现(可能性方法)。本发明提供了基于方法调用的实现。
附图3的对象图描绘了安全对象的继承性。对象安全通过继承安全对象的特性而得到保证。这保证了当任一方法被一个实例调用时,前/后元类的安全性可以受到控制,并由此授予对对象的存取权。
此外,必须为类和实例(instance)指定一些授权规则。更加详细的授权规则描述见于顺序号为No.08/852,271的美国专利申请。
前/后元类将按实例类在继承树中所指定的顺序构成。在本发明的优选实施方案中,采用了从左到右的优先继承。因此,为确保在任何其它前/元类之前执行该授权,应该保证该类从该体系的最左端开始继承。(见图4)。
图4中显示了安全运行对象的类继承性。运行时间由两个主要对象组成系统授权规则(SAP)和ACL管理器。SAP由安全性授权SAP接口继承而来,顺次地,SAP接口由安全性授权SAO接口(SAO为系统授权预言)继承而来。SAP接口支持对存取规则的管理,而SAO接口支持对对象组的有效存取。
ACL管理器用来管理被存储的ACL信息,包括根据被存储的ACL值而对存取请求进行的评估。ACL管理器封装储存的ACL格式。附图5的对象图显示了注册安全服务器对象的类继承性。从授权角度来看,基本对象就是注册对象。注册对象是任何相关的原有或扩展前级授权管理系统的外层。注册对象的唯一重要之处在于它被用作单一实例元类,并且是由安全对象继承而来的,因此它可以安全地操作。
附图6的对象图显示了安全对象过程的结构。如上所述,每一个安全对象将是安全元类的一个实例。安全元类将保证所有对安全对象的存取都是有效的。这将通过使用SAP对象及ACL管理器来实现。
每一个过程都具有从运行模块得到的单个SAP对象。ACL管理器利用基于与安全对象相关的对象组信息的SAP而得到示例。
附图7的对象图显示了安全服务过程的结构。因为注册对象是安全对象,所以安全服务过程包含一个SAP/SAO对象和一个或多个ACL管理器对象以控制对注册对象本身的存取。此外,注册对象本身利用SAP/SAO对象和加以扩展的ACL控制器对象来管理特定对象组的存取规则信息。最后,注册对象一般通过内部用户注册服务与用户注册器、对象组库和安全类库接口以进行用户注册。
将会体会到的是,虽然在这里描述本发明具体实施方案的目的仅仅是为了示例,但仍可以在不背离本发明宗旨和范围的条件下进行各式各样的修改。
因此,本发明的范围仅仅限定于下述的权利声明及其等价物。
权利要求
1.在利用面向对象技术的信息处理系统中,用于对对象进行存取控制的方法,包括以下步骤继承一个或多个由产生该对象的类而来的对象的安全特性;将一组许可与方法联系起来;和将这组许可与存取控制表比较以允许对该对象的存取。
2.根据权利要求1的方法,其特征在于,将一组许可与方法联系的步骤还包含了以下步骤追踪该方法至该定义类;和确保在运行方法中调用前面的方法以便避免授权检查。
3.根据权利要求1的方法,其特征在于,将一组许可与方法联系的步骤还包含了如下步骤确定定义该方法的类。
4.根据权利要求1的方法,其特征在于,控制存取的步骤还包含以下步骤如果比较步骤表明允许对受保护的类进行存取,那么就调度被调用方法。
5.在利用面向对象技术的信息处理系统中,计算机可读媒体中包含用于控制对象存取的装置,该装置包括继承一个或多个由产生该对象的类而来的对象安全特性的装置;将一组许可与方法联系起来的装置;以及将该组许可与存取控制表比较以允许对该对象进行存取的装置。
6.根据权利要求5的计算机可读存储媒体,其特征在于,所述控制存取的装置还包括追踪该方法至该定义类的装置;确保在运行方法中调用前面的方法以便避免授权检查的装置。
7.根据权利要求5的计算机可读存储媒体,其特征在于,将一组许可与方法联系起来的装置还包括确定定义该方法的类的装置。
8.根据权利要求5的计算机可读存储媒体,其特征在于,控制存取的装置还包括如果比较装置表明允许对受保护类进行存取,那么就调度被调用方法的装置。
9.利用面向技术、用来控制对象存取的信息处理系统,包括一个或多个处理器;一个存储系统;一个或多个控制着一个或多个I/O装置的I/O控制器;一条连接处理器、存储系统和I/O控制器的总线;一个用于控制处理器、存储系统和I/O控制器操作的操作系统;从产生该对象的类继承一个或多个对象安全特性的装置;通过确定定义该方法的类,将一组许可与方法联系起来的装置;以及将该组许可与存取控制表比较以便允许对该对象进行存取的装置。
10.根据权利要求9的信息处理系统,其特征在于,还包括追踪该方法至该定义类的装置;确保在运行方法中调用前面的方法以便避免授权检查的装置。
11.根据权利要求9的信息处理系统,其特征在于还包括如果比较装置表明允许对受保护的类进行存取,则调度被调用方法的装置。
全文摘要
在使用面向对象技术的信息处理系统中用于控制对象存取的系统、方法和生产的物体,包括处理器,存储系统,I/O控制器,总线,用于控制处理器、存储系统和I/O控制器运行的操作系统,以及一个面向对象的包括一个把一组许可和由类决定的方法联系起来的装置的控制装置。通过追踪该方法至该定义类,在执行方法中,对前面方法的调用可以避免检查授权。在涉及到授予或否定被继承方法的存取权时,对象属性的继承可以解决对象保护的问题。
文档编号G06F15/00GK1162788SQ96117929
公开日1997年10月22日 申请日期1996年12月23日 优先权日1996年12月23日
发明者M·本南塔, G·R·布拉克利, A·J·纳达林 申请人:国际商业机器公司