用于产生唯一识别在用于面向对象程序等等之中的对象类型的识别符的系统和方法

文档序号:6412149阅读:215来源:国知局
专利名称:用于产生唯一识别在用于面向对象程序等等之中的对象类型的识别符的系统和方法
技术领域
本发明总地说是涉及在计算机系统或类似的系统中用作处理根据面向对象(objeet-oriented)编程技术等等所设计的程序的系统和方法。更具体地说是涉及产生唯一识别用于那种程序的处理中对象的类型的识别符的系统和方法。
在使用面向对象程序设计技术开发的计算机程序中,典型地开发研究用于程序处理过程中的“对象”(objects)。典型地说,对象可以包含诸如数据组,数组等,定义步骤和方法的程序代码等等的元素。在一种面向对象计算机程序设计的语言中,也就是在Java语言规范中描述的JavaTM程序设计语言,程序规定“类”(classes)和“界面”(interface)。类用来规定一个或多个方法或步骤,它们的每一个可以由引用调用给界面。一种界面提供一种机制,通过该种机制可以说明每个方法特别是区分方法、处理该方法时所使用的变元的类型,由该方法返回的数值的数据类型,和除去在该方法的处理期间产生的识别符以外的识别符。类可以说明在执行的具体的一组界面,也就是它们的方法的界面包含编辑程序的代码。另外,类能够表示在执行可能在另一处说明的具体的界面。不同的类可以表示它们执行相同的界面,其中每一个具有在界面中说明的所有方法的处理中使用的程序代码。在每个类中提供的程序代码可能不同于在另外的类中提供的程序代码,但是对应方法的程序代码将提供相同的结果。
当Java程序需要由一个类维持的方法提供的处理服务时,该类的示例能够装入它的执行环境中,或者它能够调用在Wollarth等人的专利申请中所描述的方法的远程执。在两种情况下,将在执行环境中装入对象,任何一个对象包含它自己的类示例,或者在支持远程界面的类示例的情况,包含能够远程调用一种方法的剩余部分类示例的情形。这些对象可能已经(和在存根等级的情况下很可能已经)分别地和独立于将使用它们的程序而产生出来。当该程序装一个对象时,它(该程序)接收信息流,该信息流将需要处理重建对象和包括例如界面的各种部件,该界面象程序代码那样由类说明,程序代码包含执行类的各自的方法。典型地说,类具有诸如对象名称的识别符,但是这些识别符是由程序开发商所具体赋予的,因此就不是唯一的。因此,有相同名称的类可能有非常不同的结构,因此需要类结构的不同的分类法。另外,需要变化重建类所需的方法时,具有具体名称的过时的类结构可能变化了。因此,程序不必要依赖于程序开发商所提供的名称的识别符以确定那种方法用于类的重建。
本发明提供了一种产生唯一识别诸如用于面向对象程序等等的处理的类的对象类型的“指纹”识别符的改进的系统和方法。本发明特别提供了一种使用各自的类的实际结构和内容产生指纹识别符的系统和方法,以致具有不同的结构和内容的类具有不同的指纹识别符。
总之,本发明提供了一种在面向对象程序设计方案中产生对象的指纹值的新的指纹产生系统,方法和计算机程序产品。该对象包括数字信息流和指纹产生系统由数字信息流产生固定长度的指纹值。根据选择的产生包含指纹值的散列值的散列值产生算法处理包含对象的数字信息流。从散列值产生算法的等级选择的散列值产生算法的特征在于i响应所说的输入数字信息系统,将产生具有预定的数字比特数目的数字散列值作为输出;ii该数字散列值将是数字信息流的函数,以致(a)给出相同的两个输入流,将产生相同的数字散列值;但是(b)给不相同的两个输入流,产生相同的数字散列值是极不可能的;iii当作为“基准对象”的对象包括作为基准对象的另一个对象的基准时,基准对象的输入数字信息仅需要包括为基准对象先前产生的指纹,而不是基准对象本身的数字信息流,根据选择的散列值产生算法产生的数字散列值包含由指纹产生系统产生的指纹。
本发明结合所附权利要求的特点已阐明,结合说明对附图所作的说明可以使我们更好地理解本发明的以上和进一步的优点。


图1是包括根据本发明的构成的对象类型识别产生系统的计算机装置的功能方框图;图2是在图1中所描述的方案中有用的对象检验系统的功能方框图;图3是有助于理解图2所示的对象检验系统的操作的流程图。
图1是包括根据本发明的构成的对象类型识别产生系统的计算机方案10的功能方框图。参照图1,计算机网络10包括由通信链路14连接的由12(1)至12(N)的多个计算机(一般由参标号12(n)标识)。作为惯例,计算机12(n)中的至少一些是作为PC机(个人计算机)或计算机工作站的形式,它们中的每一个包括系统单元,视频显示单元和作为键盘和鼠标的操作输入单元。计算机12(n)是通常的存储程序计算机结构。系统单元一般包括处理,存储和大规模存储装置,诸如(信息)盘和/或磁带存储元件和其他的元件(没有分别地示出),这包括将计算机与通信链路接口的网络接口装置18(n)。视频显示单元允许计算机给用户显示处理的数据和处理的状态,操作员输入装置能够使用户通过计算机输入数据和控制处理。计算机12(n)在通信链路14间通过他们各自的网络接口装置传送消息形式的信息。
在一个实施例中,网络10能够组成“客户/服务器”结构,在该结构中不同的一些计算机作为客户和服务器工作,一方面,服务器计算机作为文件服务器能够包括大容量的大规模存储装置,该存储装置能存储程序和数据的复制品,用户计算机可以在通信链路14上使用他们的处理操作检索所说的程序和数据。用户计算机随时能在服务器计算机上存储数据,随后由它(也就是存储该数据的客户计算机)或其他的客户使用他们的处理操作检索存储的数据。另外,一个或多个服务器计算机,作为“计算服务器”可以响应来自客户的远程请求执行某些处理操作,和将处理的结果给请求的客户以便由它(也就是请求的客户计算机)在其随后的处理中使用之,不论发生什么情况,服务器计算机可以一般地类似于包含系统单元。视频显示单元和操作员输入装置的客户计算机和类似客户计算机的方式可以由操作员用作数据处理操作,的确,在这种安排方案中,客户/服务器的关系可以认为是亲戚,由于操作用作服务器的计算机为其他的计算机执行贮存和/或处理操作,也可以操作用作客户计算机请求其他的计算机贮存和处理操作,其他的计算机包括有作为服务器工作的计算机(部分)。另外,一些服务器计算机可以只包括用以接收和处理检索,贮存或来自客户计算机的远程处理请求和产生对那里的响应的处理,存储,大规模贮存网络接口元件。
象常规的那样,在网络10中内部连接客户计算机12(n)的通信链路14包括导线,光纤或传送在计算机12(n)间的表示信息的信号的介质。另外,由数字14标识的通信链路包含诸如公共电话系统和/或Internet(互连网络)的公共网络,在互连网络上一个人使用计算机12(n)可以从距客户计算机12(n)一些距离处的服务器计算机16存取包括程序和数据的信息。如上所叙,每个计算机12(n)典型地具有网络接口装置(由各个箭头18(n)表示),该接口装置适当地将分别的计算机连接到通信链路14上。
本发明提供了一种易于产生在此称作指纹的识别符的系统以便唯一地识别用于面向对象程序等等的处理中的对象的类型。本发明将结合如在Java语言规范中描述的JavaTM程序设计语言中提供的程序进行描述,该程序结合由Java虚(拟)机器所提供的执行环境被处理。该Java实际机器依次在Java虚(拟)机器的规范中所规范。用Java语言规范中描述的基本知识的方法,在Java程序设计语言中的程序规定了“类”(classes)和“界面”(interfaces)。类用以规定一个或多个方法或步骤,他们中的每一个可以由基准调用给一个界面。一个类可以相关和延伸一个“超类”(super-class),和考虑到将所有的界面和超类的方法相结合,而且还包括另外的界面和/或方法。一个类还可以有一个或多个子类(sub-class)(和因此将组成它的每一个类的超类),和每个子类结合和可能延伸他们的分别的超类。一个类还可对包括其他的界面和类的其他对象作参考,当由类执行的方法被处理时,该其他的对象可以被引用。
一个界面提供用其可以说明一组方法的机理。在那个连接中,一个界面识别由该界面,例如方法的名称所说明的每种方法,识别为该方法提供的变元的数据类型,由该方法返回的返回值的数据类型和在这种方法的处理期间例外能放弃的识别符。类本身能说明执行的具体的一组界面,或者它能表明它执行在别处可能说明的具体的界面,而且在任何一种连接中将包括在界面中已经说明的所有的方法的处理中使用的程序代码。在每个类中提供的程序代码可以和其他类中提供的代码不同,但是对应方法的程序代码将提供相同的结果。执行该方法或使用界面可以调用的方法能独立说明具体类的界面,关于这一点,调用该方法的一个类和实际执行该方法的一个类将不需要分享公共的超类。因此,一个界面提供一种机制,通过该机制不需要提供将用于任何方法的处理中的步骤的指示就能说明一组方法。
如上所示,本发明提供了一种易于产生唯一识别能用于面向对象程序等等的处理中的不同的对象的指纹的系统。在使用Java编程语言产生的程序中各种不同种类的程序元素可以包括对于现时发明有特别意义的对象,为了使用已用具体例子说明的类能包含对象。本发明提供为每个类产生唯一识别符或指纹的方案,每个等级可以为例如执行的环境所使用,在该环境中Java程序被处理,当该对象装入该执行环境时识别该对象和易于该对象的重建。类的类型的指纹可能有多种目的用途,例如在执行环境中通过程序的执行指纹可以用以在处理中使用的正确的类,例如从相同的计算机系统或者连接到网络10的另一个计算机系统检索的任何一种(二种)和装入局部处理的执行环境,或者用于在wollrath等人的专利申请中所叙及的相同的计算机系统或者为一种连接到网络10的计算机系统中调用由一个类维持的方法的远程处理。
另外,指纹可能用以帮助将类示例装入执行环境中。典型地,当作为等级示例的对象装入执行环境中时,作为信息流的对象被接收,以及执行环境将需要将信息流的各种部分与类示例的各种部件相联系,因此从信息流重建类示例。执行环境将利用诸如能够使它(也就是执行环境)接收信息流和重建类示例的编程代码的资源。由于被检索的各种对象的结构很可能是唯一的,执行环境将需要确保它(执行环境)具有适合的编程代码以便当接收信息流时能够使对象重建。如下面所述,根据本发明的系统和方法,根据实际的对象的结构和内容产生指纹,以致执行环境将能使用对象的指纹将装入的对象与能用以重建该对象的编程代码相联系。由于指纹是基于对象的结构,具有不同的结构的两个对象将很可能有不同的指纹,即使其他的识别符与该对象有关,例如由程序开发商提供的对象的名称是相同的。
由于一个类和以后它的示例说明可以引用其他的“被引用”等级,从而使之出现进一步的复杂化,该基准等级包含涉及的等级能用于它的处理中的问题。在这种情况下,等级的指纹将不仅需要反映该等级它本身的各种成分,还要反映由该类引用的被引用类。
用这个基础知识和再次参照图1,本发明提供了一种指纹产生器20,以便使用它与一个或多个计算机12(n)连接,计算机12(n)保持和使用各种对象22(m)以为每个对象产生相应的指纹24(m)。该指纹产生器20用下面结合图2和图3所述的方式处理每个对象22(m)以产生指纹24(m)。检索的对象的指纹24(m)表示用作识别对象的类型的指纹的值,它也可以用来识别由保持对象22(m)的计算机系统12(N)处理的程序所使用对象22(m)的类型,或者是由另外的计算机系统12(1)至12(N-1)所处理的程序所需要的类型。如果对象22(m)所是的类型是另一个计算机系统12(1)至12(N-1)处理的程序所需要的,计算机系统12(N)或者能够在通信链路14上下装对象22(m)给其他的计算机系统12(1)至12(N-1),以便在它的(即其他的计算机系统的)处理中使用,或者能够如前面所述的Wollrath等人的专利申请中所述的远程方法调用操作中执行对象本身的处理。在任何情况下,指纹24(m)将适用对对象的类型作唯一的识别,有效地确保对象所提供的方法,数据类型和返回数据类型是程序所需要的。装入该对象的执行环境能够从信息流重建该对象,该信息流是当对象接收到时接收的。
如上所述,客户计算机12(n)包括指纹产生器20,将结合图2描述该产生器20,指纹产生器用以产生指纹24(m)。参照图2,检验器20包括对象指纹值产生器31,对象指纹表32和对象存储器34。对象存储器34一道接收与对象指纹23(m)对象22(m)的二进制编码。对象指纹值产生器31处理对象22(m)和基准对象(在图中未示出)的内容作为数字数据,以产生对象指纹值。基准对象是在存储器34中的对象中的基准对象,也就是相对其他等级的基准是在与存储器34中的对象有关等级中的基准。在一般的对象指纹值中,如果对象指纹值产生器31已经预先地产生基准对象的对象指纹值和将其存储在对象指纹表32中,它(对象指纹产生器31)能够使用在对象存储器34中的为对象产生的对象指纹中的预先为被引用对象产生的对象指纹信息,否则,如果另一个对象是由在存储器34中的对象所引用的,为了为在对象存储器34中通常的对象产生指纹产生器20将为其他的目标产生值。
如上所述,对象指纹值产生器31处理在对象存储器34中的对象22(m)的复制品以产生提供给比较器33的对象指纹值。在一个具体的实施例中,对象指纹值产生器31使用通常的安全的散列算法处理对象22(m)。为目标指纹值产生器31有用的安全散列算法具有如下特征1)当执行该算法时,作为输入从数字信息流接收,一个固定大小的数字值(也就是预先确定固定的数据位或字节数目)被产生作为输出;2)数字输出值是输入信息的函数,以致a)给出两个相同的输出流,相同的数字输出值将被产生;但是b)给出两个不相同的输出流,极不可能产生相同的数字输出值;3)极不可能从数字输出值再生输入流;和4)当一个对象(作为“基准对象”)包括对另一个对象的基准,基准目标的输入流仅需要包括已为基准对象预先产生的指纹,而不需要基准对象本身。这些特征(特别的特征25(a)和25(b))将保证a)如果为两个对象由指纹产生器20产生的指纹具有相同的值,他们将是相同的类型,和提供需要相同输入数据类型和提供相同数据类型的相同的结果的相同的方法组,和能使用相同的重建编程代码重建之;但是b)如果由指纹产生器20为两个对象22(m)产生的指纹具有不同的值,他们将是不同的类型,和因此不能提供相同的方法组,或者能需要不同的输入数据类型,或者能用不同的结果数据类型所导致,和在任何情况下可能具有不同的结构。在这个情形中程序能依靠对象的指纹去唯一地识别该对象。诸如来自科学和技术国家协会的可用的安全散列算法,来自RSA公司的可用的RC4和RC5安全散列算法和类似的是说明性的安全散列算法,他们具有这些特征。
现在结合图3所示的流程图描述操作指纹产生器产生指纹。在进一步进行以前,描叙由指纹产生器20处理对象22(m)的结构以产生对象指纹值是有益的。在一个实施例中,对象20是例如用由于Java语言规范描述的Java编程语言提供的示例类的形式。对象22(m)包括多个部分,其中包括被引用对象识别符部分40(m),界面部分41(m),区段(field)部分42(m)和方法与步骤部分43(m)。如果对象22(m)引用其他的对象,被引用对象识别符部分40(m)包含识别其他的对象的识别符,和提供指示其他的对象如何存取的指示符。如果该对象不引用其他的对象,基准目标识别符部分40(m)可以是空的。
方法和步骤部分43(m)提供能通过对对象的调用被调用的具体的方法、步骤、程序等等。在部分43(m)中提供的方法能够引用在基准对象识别符部分40(m)中识别的其他的对象。界面部分41(m)有效地包括对象的界面的目录,它例如包括在部分43(m)中具体方法识别的名称和调用具体方法中提供的参数。由客户计算机12(n)处理的一个程序能使用在部分41(m)中的界面目录可以识别能够通过对对象22(m)的访问调用的具体的方法。区段部分42(m)提供例如用于在部分43(m)中定义方法的变量和其他的元素的目录,和此外能指示是否该变量例如是具体的对象22(m)所专用或者它的限定的部分等等。
用这个基本知识,将结合图3的流程图叙述由指纹产生器20执行的操作。参照图3,对象指纹值产生器最初地确定是否对象指纹表32已经有了识别的对象的对象指纹值(步骤100)。如果在步骤100中对象指纹值产生器31作出了肯定的确定,它将在它的随后的处理中使用该对象指纹值(步骤101)。
另一方面,如果在步骤100中对象指纹值产生器31作出了否定的决定,对象指纹表32还没有识别对象的对象指纹值,在这种情况下它将进行到步骤102以便开始产生该对象的对象指纹的步骤。对象指纹值产生器31在一系列时序中开始产生对象指纹的步骤。在每个时序期间使用安全散列算法去重复处理在40(m)至43(m)4个部分中包含的信息以便为对象22(m)产生对象指纹值。
最初在那个操作中,如果被引用对象识别符部分40(m)包含一个或多个被引用对象识别符,对象指纹值产生器31将一个或多个重复地处理在被引用对象识别部分40(m)中识别的被引用对象的指纹,以及在每个重复处理中处理一个被引用对象的指纹。在每个重复中如果在对象指纹表32中存储了被引用对象的预先产生的对象指纹值。该对象指纹值产生器31将使用对象指纹表32中的指纹。另一方面,在对象指纹表32中没有储存被引用对象的预先产生的对象指纹值,该对象指纹值产生器31将试图为被引用对象产生对象指纹值,存储该对象指纹值在对象指纹表32中,而且在为对象22(m)产生对象指纹值中使用它(被引用对象的对象指纹值)。
更具体地说,对象指纹值产生器31将确定是否被引用对象识别符部分40(m)包含任何被引用对象识别符(步骤102),和如果是的话,将从被引用对象识别部分40(m)检索被引用对象识别符的目录(步骤103)。对象指纹值产生器31根据预定的存储方案的存储顺序安放该目录。对象指纹值产生器31在使用他们之前在产生对象指纹中存储被引用对象识别符以确保他们(被基用对象识别符)将以相同的顺序,以确保相同的指纹值被产生而不管指纹产生的时间点。
在从部分40(m)存储被引用对象识别符以后,对象指纹值产生器31将在存储目录中选择“下一个”被引用对象识别符(步骤105),将执行在图3中描述的与由选择的被引用对象识别的被引用对象有关连的操作,以便为被引用对象提供或产生对象指纹值。在该第一个重复中,对象指纹值产生器31将在存储的目录中选择第一个被引用对象识别符,和在随后的重复中(若有的话)将在该存储的目录中选择顺序排列的被引用对象指纹。如果该对象指纹表32没有由选择的被引用对象识别符识别的被引用对象的对象指纹值,和如果计算机12(n)没有该被引用对象的复制品的话,它(计算机)从另一个保持它(被引用对象)的计算机检索该被引用对象。另一方面,如果该计算机没有或不能检索该被引用对象,该对象指纹值产生器31可能退出。
在产生或检索选择的被引用对象的对象指纹值后,对象指纹产生器31处理与安全散列算法关联的对象指纹值以产生中间的对象22(m)的指纹值(步骤106)。此后,对象指纹值产生器31确定在存储的目录中有任何另外的被引用对象识别符(步骤107)。如果对象指纹值产生器31在步骤107中作出肯定的确定,该对象指纹值产生器31返回到步骤104,以便选择下一个被引用对象识别符和因此处理该识别的对象指纹值。
返回到步骤102,如果被引用对象识别符部分40(m)是空的,对象指纹值产生器将在那个步骤作出否定的确定。在这样的情况下,或者如果在步骤107中对象指纹值产生器31作出否定的确定,它将按步骤的时序处理可能列入界面部分41(m)中的界面名称。最初,该对象指纹值产生器31将确定该界面名称部分40(m)是否包含任何界面名称(步骤110),和如果是的话,将从界面名称部分40(m)检索界面名称目录(步骤111)。该对象指纹产生器31将根据预定的存储方案的存储顺序装入该目录(步骤112)。由对象指纹值产生器31在使用他们以前在产生对象指纹值中将界面名称储存以确保他们(界面名称)以确保相同的指纹值将产生而不考虑指纹24(m)产生的时间点的情况下的相同的顺序。
在从部分41(m)存储界面名称后,对象指纹值产生器31将在储存的目录中选择“下一个”界面名称(步骤113)在第一个重复中,对象指纹值产生器31将在储存的目录中选择第一个界面名称,和随后的重复中(如果有的话),它将在储存的目录中顺序地列出界面名称。对象指纹产生器31处理与安全散列算法有关联的界面称名称以产生对象22(m)的更新的中间指纹值(步骤114)。此后,对象指纹值产生器31确定是否有另外的界面名称在储存的界面名称目录中(步骤115)。如果对象指纹值产生器在步骤115作出肯定的确定,该对象指纹值产生器31返回到步骤113、以选择下一个界面名称和在相关的安全散列算法中使用它。
返回到步骤110,如果界面名称部分41(m)是空的,对象指纹值产生器将在该步骤作出否定的确定。在这种情况下,或者如果对象指纹值产生器31在步骤115中作出否定的确定,它将在系列步骤的时序中处理在区段部分42(m)中所列的变量的名称。最初,对象指纹值产生器31将确定区段部分42(m)是否包含任何变量的名称(步骤120)和如果是的话,将从区段部分42(m)检索变量名称的目录(步骤121)。对象指纹值产生器31然后根据预定的存储方案以存储的顺序排列该目录(步骤122)。对象指纹产生器31在使用他们以前在产生对象指纹中存储变量的名称,以确保他们(变量名称)以确保在不考虑指纹24(m)产生的时间点产生相同的指纹值的相同的顺序。
在存储来自区段42(m)的可变名称以后,对象指纹值产生器31将在存储目录中选择“下一个”变量的名称(步骤123)。在第一个重复中,对象指纹值产生器31在储存的目录中选择第一个变量名称,和在随后的重复中(如果有的话),它将在存储的对象中选择顺序排列的变量名称。对象指纹值产生器31处理与安全散列算法关联的变量名称以产生更新的对象22(m)的中间指纹值(步骤124)。此后,对象指纹值产生器31确定是否有任何另外的变量名称在该存储区段目录(步骤125)。如果对象指纹产生器在步骤125中作出肯定的确定,对象指纹产生器31返回到步骤123以便选择下一个变量名称和处理与安全散列算法关联的它。
返回到步骤120,如果区段部分42(m)是空的,对象指纹值产生器将在步骤125中作出否定的确定。在这种情况下,或者对象指纹值产生器31在步骤125中作出否定的确定,它将在系列步骤的时序中处理在方法和步骤部分43(m)中可列出的方法。最初,对象指纹值产生器31将确定方法和步骤部分43(m)是否包含任何方法(步骤130),和如果是的话,将从部分43(m)检索方法的目录(步骤131)。该对象指纹值产生器31将以根据预定的存储方案的存储顺序安排该目录,使用各自方法的名称分类(步骤132),该方法由对象指纹值产生器31在使用他们前在产生对象指纹值中分类,以确保该方法以如果方法的顺序变化,不考虑指纹24(m)产生的时间点,产生相同的指纹值的相同的顺序。
在分类来自部分43(m)的方法以后,对象指纹值产生器31将在存储的目录中选择“下一个”方法(步骤133)。在第一个重复中,对象指纹值产生器31将在分类目录中选择第一个方法,和在随后的重复中(如果有的话),它将在分类目录中选择顺序排列的方法。对象指纹值产生器31处理选择的与安全散列算法关联的方法,以产生更新的对象22(m)的中间指纹值(步骤134)。此后,对象指纹值产生器31确定在分类目录中是否有另外的方法(步骤135)。如果对象指纹产生器31在步骤135中作出肯定的确定,对象指纹值产生器31返回到步骤123,以选择下一个方法和处理与安全散列算法关联的它。
返回到步骤130,如果方法和步骤部分42(m)是空的,对象指纹值产生器31将在该步骤作出否定的确定。(这个如果能出现,例如,对象说明了一个界面而不是定义的等级),在这种情况下,或者如果对象指纹值产生器31在步骤135中作出否定的确定,它将处理与安全散列算法关联的整个的对象22(m),以致更新的中间指纹值将对应对象22(m)的对象指纹值。在这种情况下,对象指纹值产生器31将存储对象22(m)的对象指纹值在对象指纹表32中(步骤140)。
本发明提供了一些优点。特别是,本发明提供一种方案,它能够使客户计算机120以高度的概率确定诸如对象22(m)的对象是特殊的类型和用以在它的处理中重建。本发明的完成是通过为对象22(m)提供指纹值,该指纹值可能为程序使用,以提供识别在它的处理中能需要的对象的信息种类。这将能避免使用其他识别符的必要性,例如对象名称,它一般不需要是唯一的,在任何情况下,即使在程序不能使用的方式下对象名称因此能变化,也能使之保持相同。
我们很清楚知道对结合图1至图3上面所述的方案可以作出一些改进。例如,虽然该方案结合了多个由网络内部连接的多个计算机系统12(n)我们将清楚该方案能用以连接计算机系统以产生对象的指纹,该对象可以由程序在例如计算机可读介质(如磁盘或CD-ROM)上分布以便处理单个或者排成一排的计算机。另外,虽然该方案已经结合具有以上结合图2描述的40(m)至43(m)四部分的对象,我们清楚它也能用来联系具有不同数目的部分的对象,以及的确不同类型的部分,特别的意义在于产生指纹,以致完全唯一识别对象的类型,也就是方法,输入变量的数据类型和输出变量的数据类型。
我们知道根据本发明的系统可以由整个的或部分特殊用途的硬件或通用目的的计算机系统或者它们的任何结合所构成,它们的任何部分可由适当的程序控制。任何程序可以完整或部分地组成或以通常的方式存储在系统上,或者它可以完整或部分地提供给网络上的系统或者以通常方式传送信息的其他机构。另外,我们明白该系统可以被操作和/或否则由操作员使用操作员输入单元(未示出)提供的信息所控制。该输入单元可以直接联接到系统上,或者它能传送信息给在网络上的系统或以通常方式传送信息的装置。
前面所描述的已经限定了这个发明的具体实施例。我们清楚可以对本发明作各种改变和改进以达到本发明的一些或所有的优点。在本发明真实目的内和范围内的这些和那些改变和改进由附属权利所覆盖也就是这个目的。
权利要求
1.在面向对象(object-oriented)编程方案中用以为一个对象产生指纹值的指纹产生系统,该对象包括数字信息流,该指纹产生系统包括A、用以接收包含该对象的数字信息流的接收机;B、根据选择的散列值产生算法处理数字信息流的一个对象指纹产生器,该散列值产生算法是从散列值产生算法的一个类选择的,该散列值产生算法的特征是i响应所说的输入数据信息流,具有预定数目的数字比特的数字散列值作为输出被产生;ii数字散列值将是数字信息流的函数,以致(a)给出两个相同的输入流,将产生相同的数字散列值;但是(b)给出两个不相同的输入流,将极不可能产生相同的数字散列值;和iii当作为“引用对象”的对象包括对作为被引用对象的另一对象的引用,对象指纹值产生器能够处理包括为被引用对象产生的被引用对象指纹的引用对象的输入数字信息流,而不是处理与被引用对象有关的数字信息流,根据该选择的散列值产生算法产生的数字输出值包括由所说的指纹产生系统产生的指纹。
2.根据权利要求1定义的指纹产生系统,其中从散列值产生的算法的等级选择的所说的散列值算法进一步的特征是从数字输出值极不可能再生数字输入流。
3.根据权利要求2定义的指纹产生系统,其特征是所说对象指纹产生器根据选择的作为来自国家科学和技术协会可用的NIST SHA的识别的散列值产生算法处理数字信息流。
4.根据权利要求2定义的指纹产生系统,其特征是所说的对象指纹产生器根据选择的作为来自RSA公司可用的RC4安全散列算法识别的散列值产生算法处理数字信息流。
5.根据权利要求2定义的指纹产生系统,其特征是所说的对象指纹产生器根据选择的作为来自RSA公司可用的RC5安全散列算法的识别的散列值产生算法处理数字信息流。
6.根据权利要求1定义的指纹产生系统,其中所说的对象至少包括一个对个被引用对象的被引用,该对象指纹值产生器包括A、被引用对象指纹可用性确定单元用以确定它是否具有被引用对象的被引用对象指纹,和B、响应由所说的被引用对象指纹可用性确定单元所作的肯定的确定的被引用对象处理单元用以根据选择的散列值产生算法处理被引用对象的指纹。
7.根据权利要求6所定义的指纹产生系统,其中所说的对象指纹值产生器还包括响应由所说的被引用对象指纹可用性确定单元的否定的确定为所说的被引用对象检索被引用对象信息的被引用对象检索单元,所说的对象指纹值产生器根据所说的选择的散列值产生算法处理被引用对象数字信息流以产生所说的被引用对象指纹。
8.根据权利要求7所定义的指纹产生系统,其中的由处理被引用对象数字信息流的所说的对象指纹值产生器使用的选择的散列值产生算法包括由处理数字信息流的对象指纹值产生器使用的相同的选择的散列值产生算法。
9.根据权利要求6定义的指纹产生系统,其中所说的对象,其中所说的对象包括每一个对多个被引用对象的每一个的多个引用,对象指纹值产生器还包括根据预定的顺序分类所说的被引用的分类单元,被引用对象指纹可能性确定单元和在与按所说的顺序的被引用系列有关的重复系列中工作的被引用对象处理单元。
10.根据权利要求1定义的指纹产生系统,其中所说的对象包括多个元素,指纹产生系统还包括用以分类包含根据产生分类的数字信息流的分别的元素的数字信息流的部分的分类单元,对象指纹值产生器以存储的数字信息流产生数字散列值。
11.根据权利要求1定义的指纹产生系统,其中所说的对象包括一系列的部分,对象指纹值产生器顺序地处理连续的各个部分。
12.根据权利要求11定义的指纹产生系统,其中每个部分还包含多、个单元,指纹产生系统还包括用以在每个部分根据产生存储的数字信息流选择的储存顺序包含分别的单元中间的数字信息流的部分的分类单元,对象指纹值产生器从储存的数字信息流产生数字散列值。
13.在面向对象编程方案中用以为一个对象产生指纹值的指纹产生系统,该对象包括数字信息流,该指纹产生方法包括如下步骤A、接收包含对象的数字信息流;B、根据选择的散列值产生算法处理数字信息流,从散列值产生算法的类中选择的散列值产生算法的特征在于i响应所说的输入数字信息流,具有预定的数目的数字比特的数字散列值将作为输出产生;ii数字散列值将是数字信息流的函数,以致(a)给出两个相同的输入流,将产生相同的数字散列值;但是(b)给出两个不相同的输入流,将极不可能产生相同的数字散列值;和iii当作为“引用对象”的对象包括对作为被引用对象的另一对象的引用,对象指纹值产生器能够处理包括为基准对象产生的基准对象指纹的参考对象的输入数字信息流,而不是与被引用对象有关的数字信息流;根据该选择的散列值产生算法产生的数字输出值包括该指纹。
14.根据权利要求13定义的指纹产生方法,其中从所说的散列值产生算法的选择的所说的散列值产生算法其特征在于极不可能从数字输出值再生数字输入流。
15.根据权利要求14所定义的指纹产生方法,其中,在所说的对象指纹值产生步骤期间,根据选择的作为来自国家科学和技术协会可用的NISTSHA识别的散列值产生算法处理数字信息流。
16.根据权利要求14定义的指纹产生方法,其中在所说的对象指纹值产生步骤中,根据选择的作为从RSA公司来的可用的RC4安全散列算法的识别的散列值产生算法处理数字信息流。
17.根据权利要求14定义的指纹产生方法,其中在所说的对象指纹值产生的步骤中,根据选择的作为从RSA公司来的可用的RC5安全散列算法的识别的散列值产生算法处理数字信息流。
18.根据权利要求13定义的指纹产生方法,其中所说的对象至少包括一个对被引用对象的引用,该对象指纹产生步骤包括如下步骤A确定被引用对象指纹是否提供给所说的被引用对象,和B在所说的被引用对象指纹可用性确定步骤中对应肯定的确定,根据选择的散列值产生算法处理被引用对象指纹。
19.根据权利要求18定义的指纹产生方法,其中所说的对象指纹值产生步骤还包括响应由被引用对象指纹值可用性确定单元所作的否定的确定,为所说的被引用对象检索被引用对象数字信息流的步骤,和根据产生所说的被引用对象指纹的所说的选择的散列值产生算法处理被引用对象数字信息流。
20.根据权利要求18定义的指纹产生方法,其中在选择的散列值产生步骤中,该相同的选择的散列值产生算法象用来象处理数字信息流那样处理被引用对象数字信息流。
21.根据权利要求18定义的指纹产生方法,其中,所说的对象包括每一个对多个被引用对象的的每一个的多个引用,对象指纹值产生步骤还包括根据预定的顺序分类所说被引用的步骤,被引用对象指纹可用性确定步骤和在与按所说顺序的一系列被引用有关的重复的系列中执行被引用对象处理的步骤。
22.根据权利要求13定义的指纹产生方法,其中所说的对象包括多个元素,该指纹产生的方法还包括根据产生分类的数字信息流的选择的分类顺序分类包含分别的元素的数字信息流的部分的步骤。
23.根据权利要求13所定义的指纹产生方法,其中所说的对象包括一系列的部分,对象指纹值产生步骤包括顺序处理串连的各个部分的步骤。
24.根据权利要求23定义的指纹产生方法,其中每一个部分还包括多个单元,该指纹产生方法还包括根据产生分类的数字信息流的选择的分类顺序在包含分别的单元的每个部分中分类数字信息流的部分的步骤,数字散列值从分类的数字信息流产生出来。
25.用以控制计算机在面向对象编程方案中为一个对象产生指纹值的指纹产生计算机程序产品,该对象包括数字信息流,该指纹产生计算机程序产品包括在其上具有编码信息的机器可读的介质能够使所说的计算机接收包含该对象的数字信息流的接收机代码装置;对象指纹值产生器代码装置能使所说的计算机根据选择的散列值产生算法处理数字信息流,从散列值产生算法的一个类选择的散列值产生算法的特征在于i响应所说的输入数字信息流,将产生具有预定的数字比特数目的数字散列值作为输出;ii数字散列值将是数字信息流的方程,以致(a)给出两个相同的输入流,将产生相同的数字散列值,但是,(b)给出两个不相同的输入流,将极不可能产生相同的数字散列值;和iii当作为“引用对象”的对象包括对另一个作为被引用对象的对象的引用,对象指纹值产生器能处理包括为被引用对象产生的被引用对象指纹的参考对象的输入数字信息流,而不是与基准对象关联的数字信息流,根据选择的散列值产生算法产生的数字输出值包括由所说的指纹产生系统产生的指纹。
26.根据权利要求25定义的指纹产生计算机程序产品,其中所说的从所说的散列值产生算法的等级选择散列值产生系统的进一步特征在于极不可能从数字输出值再生出数字输入流。
27.根据权利要求26定义的指纹产生计算机程序产品,其中所说的对象指纹值产生器代码装置能够使计算机根据选择的作为来自国家科学和技术协会的可用的NIST SHA的被识别的散列值产生算法处理数字信息流。
28.根据权利要求26定义的指纹产生计算机程序产品,其中所说的对象指纹值产生器代码装置能够使计算机根据选择的作为来自RSA公司的可用的一种RC4安全散列算法的被识别的散列值产生算法处理数字信息流。
29.根据权利要求26定义的指纹产生计算机程序产品,其中所说的对象指纹值计算机代码装置能够使所说的计算机根据选择的作为来自RSA公司可用的一种RC5安全散列算法的被识别的散列值产生算法处理数字信息流。
30.根据权利要求25定义的指纹产生计算机程序产品,其中所说的对象至少包括对一个被引用对象的引用,该对象指纹值产生器代码装置包括A、能够使所说的计算机确定是否它具有所说的被引用对象的被引用对象指纹的被引用对象指纹可利用性确定代码装置,和B、能够使所说的计算机响应由所说的被引用对象指纹可用性确定单元,根据选择的散列值产生算法处理被引用对象指纹的被引用对象处理代码装置。
31.根据权利要求30定义的指纹产生计算机程序产品,其中所说的对象指纹值产生器代码装置还包括被引用对象检索代码装置,它能够使所说的计算机响应在所说的被引用对象指纹可用性确定代码装置的处理期间的否定的确定以检索所说的被引用对象的被引用对象数字信息流。所说的对象指纹值产生器代码装置根据所说的产生被引用对象指纹的选择的散列值产生算法处理被引用对象数字信息流。
32.根据权利要求31所定义的指纹产生计算机程序产品,其中所处理被引用对象数字信息流的所说的对象指纹值产生器代码装置的处理期间使用的选择的散列值产生算法包含与在处理数字信息流的对象指纹值产生器代码装置的处理期间使用的相同的选择散列值产生算法。
33.根据权利要求30定义的指纹产生计算机程序产品,其中所说的对象包括每一个对应多个被引用对象中的一些的多个引用,对象指纹值产生器代码装置包括能使计算机根据预定的顺序分类所说的引用的分类单元,和控制所说的计算机按与所说的顺序的一系列引用有关的重复系列工作的被引用对象处理代码装置。
34.根据权利要求25定义的指纹产生计算机程序产品,其中所说的对象包含多个元素,指纹产生计算机程序产品还包括能够使计算机根据选择的分类顺序分类由分别的元素组成的数字信息流的部分以产生分类的数字信息流的分类代码装置,该对象指纹值产生器代码装置能帮助计算机从分类数字信息流产生数字散列值。
35.根据权利要求25定义的指纹产生计算机程序产品,所说的对象包括一系列的部分,该对象指纹产生器代码装置能使所说的计算机顺序处理分别的串联部分。
36.根据权利要求35定义的指纹产生计算机程序产品,其中每个部分还包括多个单元,该指纹产生计算机程序产品还包括能够使所说的计算机根据产生分类数字信息流所选择的分类顺序在每个由分别的单元组成的部分内分类数字信息流的分类代码装置,该对象指纹值产生器代码装置能使计算机从分类的数字信息流产生数字散列值。
37.在面向对象编程方案中用以为一个对象产生指纹值的一种指纹产生系统,该指纹产生系统包括A一个计算机;和B控制所说的计算机的控制装置,它包括i能够使所说的计算机接收由对象组成的数字信息流的模块;ii能够使所说的计算机处理选择的散列值产生算法处理该数字信息流的对象指纹值产生模块,该散列值产生算法是从散列值产生算法的一个类中选择的,它的特征在于a、响应所说的输入数字信息流,产生具有预定数字比特数目的数字散列值作为输出;b、该数字散列值将是数字信息流的函数,以致(I)给出两个相同的输入流,将产生相同的数字散列值;但是(II)给出两个不相同的输入流,将极不可能产生相同的数字散列值;和c、当作为“引用对象”的对象包括对另一个作为被引用对象的对象的引用,该对象指纹值产生器能够处理包括为被引用对象产生的被引用对象指纹的参考对象的输入数字信息流,而不是与被引用对象相关联的数字信息流,根据选择的散列值产生算法产生的数字输入值包括由所说的指纹产生系统产生的指纹。
38.易于在面向对象编程方案中为一个对象产生指纹值的与计算机连接使用的控制装置,该对象包括数字信息流,该控制装置包括A、能够使所说的计算机接收由对象组成的数字信息流的接收机模块;B、能够使所说的计算机根据选择的散列值产生算法处理数字信息流的对象指纹值产生模块,该由散列值产生算法的一个等级选择的散列值产生算法的特征在于i响应所说的输入信息流,将产生具有预定的数字比特数目的数字散列值作为输出;ii该数字散列值将是数字信息流的函数,以致(a)给出两个相同的输入流,将产生相同的数字散列值,但是(b)给出两个不相同的输入流,将极不可能产生相同的数字散列值;和iii当作为“引用对象”的对象包括作为被引用对象对另一个对象的参考时,该对象指纹值产生器能够处理包括为该被引用对象产生的被引用对象指纹的引用对象的输入数字信息流,而不是与被引用对象关联的数字信息流,根据选择的散列值产生算法产生的数字输出值包含由所说的指纹产生系统产生的指纹。
39.用以分配储存在计算机可读的介质和由计算机可执行的代码的系统,该代码包括多个程序块、每个程序块被构成以便在面向对象编程装置中控制计算机以简化一个对象的指纹值的产生,该对象包含数字信息流,该系统包括A、能够使所说的计算机接收构成该对象的数字信息流的接收机模块;B、能够使所说的计算机根据选择的散列值产生算法处理数字信息流的目标指纹值产生模块,从散列值产生算法的一个类选择的散列值产生算法的特征在于i响应所说的输入数字信息流,将产生具有预定的数字比特数目的数字散列值作为输出;ii数字散列值将是数字信息流的方程,以致(a)给出两个相同的输入流,将产生相同的数字散列值;但是(b)给出两个不相同的输入流,将极不可能产生相同的数字散列值,和iii当作为“引用对象”的对象包含对另一个作为被引用对象的对象的引用该对象指纹值产生器能处理包括为该被引用对象产生的被引用对象指纹的引用对象的输入信息流,而不是与被引用对象有关联的数字信息流,该根据选择的散列值产生算法产生的数字输出值包含由所说的指纹产生系统产生的指纹。
全文摘要
在面向对象编程方案中为一个对象产生指纹值的指纹产生系统。它的特征在于:响应所说的输入数字信息流,将产生具有预定的数字比特数目的数字散列值作为输出;该数字散列值将是数字信息流的函数;当作为“引用对象”的对象包括对另一个作为被引用对象的引用,引用对象的输入数字信息流能包括为该被引用对象事先产生的指纹而不是被引用对象本身的数字信息流,根据选择的散列值产生算法产生的数字散列值包含由所说指纹产生系统产生的指纹。
文档编号G06F17/00GK1177776SQ9711364
公开日1998年4月1日 申请日期1997年4月23日 优先权日1997年4月23日
发明者J·H·维尔多, K·巴列特, R·里格斯 申请人:太阳微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1