控制对系统资源的软件访问的方法和设备 本发明一般地涉及控制用在计算机上运行的软件去访问计算机资源的方法和设备。较具体地说,本发明涉及控制用从服务器计算机下载到客户计算机上的软件在客户计算机上访问系统的资源的方法和设备。
出现个人计算机以前,计算机用户局限于利用典型地含有一个用于输入数据和指令的键盘和一个用于观看输出的视频显示装置(或打印机)的终端,去操作在大型主机上运行的软件。尽管主机提供了十分有力的计算平台,但它们有严重的缺点。尤其是,主机地安装和运转是昂贵的,而且它们需要所有用户都通过终端直接与主机连接,这对许多人来说限制了他们对主机的访问。此外,用户在控制他们的计算环境方面的可能性是十分有限的,通常不得不让他们的工作方式和问题去适应主机的软件和管理。
从1970年代末期开始,在个人、商务和科学应用中个人计算机开始取代主机作为主要的计算平台。对单个的用户来说,个人计算机常常能提供与必须同时地应付许多处理任务和老式主机相同的计算速度。此外,在个人计算机上运行的软件变得更为“用户友好”,使计算机用户可以让计算机和软件去适应他们的特别计算要求。由于解除了终端对主机连接的必要性,个人计算机可以独立地位于一个单位的任何地方或家庭中。由于个人计算机可以放在任何需要它的地方,进一步确保了它们对主机的优势地位。用户不再必须在大的、昂贵的、和苛求的主机计算中心去裁剪他们的任务。
随着整个1980年代中个人计算机在计算能力和数据存储容量的爆炸性发展,看来它们的统治地位已得到保证。然而,当1980年代快结束时,开始出现了一个新的现象,它看来可能会超越过去二十年来的个人计算机革命。现在,愈来愈多的个人计算机通过高速数据网络被连接在一起。当前最普及的网络是“互连网(Internet)”,这是一种包括全球各种商务、学术和个人计算机网点的网络。互连网的普及化,尤其是互连网的称作“环球网(World Wide Web)”的特点,已经促使许多单位去构筑通常被称为“内部网(intranet)”的内部计算机网络。这种网络计算的好处得益于高速数据网络和日益先进的网络服务器、路径器以及其他能让许多独立的个人计算机有效地通信的装置的结合。
和对个人计算机的崛起和超越主机起很大作用的因素一样,环球网的吸引力部分地也起因于其高度的可视特性。典型地,环球网被组织成各种典型地包括一个向运行“浏览者”的客户计算机传送数据的服务器的“网址”。浏览者是一个软件,它向用户提供一个窗口和各种控制,通过它们可以看到和引导来自服务器的数据。环球网数据的一个特别有用的特点是它具有通过超文本指令进行连接的能力,使用户可以从一个文件转到另一个文件,甚至通过像操作鼠标器按钮这样十分简单的直观指令而从一个网址转到另一个网址。利用环球网用户可以观看和/或下载来自全世界各地的文本、图形和听取来自全世界各地的声音。此外,用户还能够下载新的软件或者可以修改已经安装在客户计算机中的程序的软件。
互连网上环球网的用户所能得到的这些特性同样也可以通过“内部网”提供给局域网的用户,这种“内部网”是一个包括了客户计算机和连接在互连网上的服务器的非公众计算机网络。这种能力已受到许多单位的日益增涨的注意,因为对雇员执行他们任务有用的信息可以很快地分配给该单位内网络上的所有个人计算机。特别是,许多使用这种内部网络的单位利用内部网络向所有个人提供对数据库的访问和专用的软件程序。例如,利用JavaTM编程语言(可从加里福尼亚州Palo Alto市的Sun Microsystems公司购得)所编写的专利软件“小苹果(applet)”可以与已经安装在远处计算机(它可以在内部网外部,也可在内部)上的软件和数据结合操作,向用户提供对专用于他们工作任务的数据和软件的访问,而不再会像传统做法那样因为要复制和保存许多专用软件而带来各种困难。
常常希望软件能通过一个安全的内部网络分配,以使客户计算机可以完全地访问系统资源,然而在内部系统外部的较不安全的网络上分布的软件却一般不被允许或几乎不被允许访问系统资源,例如文件移位能力,因为这种软件并不总是可信任的。例如,某些软件应用含有在主机上安装计算机病毒的功能。另一些软件应用可能会从主机上拷贝、改变、删除一些关键数据,甚至偷偷地把这些数据传送给另一个计算机系统。不幸的是,没有一种可行的方法或设备能够让可信任的软件去访问某些资源,同时又限制另外的软件不可以访问这些资源。因此,用户只剩下两种选择。或者让所有软件(不论可信的或有怀疑的)访问所有的系统资源,或者为了保证用户系统的安全性而限制所有软件的访问。
这样,如果能提供控制信息和软件在网络上对资源的访问,使得上述出现在高度分散的计算机网络上的问题能够减轻的方法和系统,则对计算机用户来说,尤其是对许多用户通过计算机网络连接的单位中的计算机用户来说,将是十分有益的。如将要说明的那样,本发明能满足这些要求和其他要求。
本发明在一个方面通过提供一种方法,系统和软件来克服管理在入网的计算机之间分配软件时所出现的上述困难,这种方法、系统和软件通过作为客户计算机的第一计算机上的选定的软件应用来控制对服务器资源的访问,其中第一计算机在一个计算机网络上与一个作为服务器计算机的第二计算机相通信。
根据本发明的一个方面,提供了一种控制在计算机上运行的软件程序对操作系统资源的访问程度的方法。对操作系统资源的访问程度是对软件程序定义的,并且至少在该计算机上安装有一个含有用来执行该软件程序的指令的文件。当一个软件程序将要被计算机执行时,将审查该文件以确定该软件程序可以具有的系统水平的访问程度。该软件程序被执行,当该软件程序在计算机上执行时,请求访问与该软件程序相关的安全资源的程序指令将被截取。然后判断该程序指令是否含有超出了该软件程序可以具有的系统水平的访问程度的操作,如果判定了该软件程序被允许访问与该计算机相关连的系统水平资源,并且它们位在该软件可得到的系统水平访问程度范围内,则执行该程序指令。
根据本发明的另一个方面,提供了一种控制在运行一个操作系统的客户计算机上运行的软件程序对系统资源的访问程度的方法,其中至少有一些操作系统资源被保存在与该客户计算机相耦合的服务器计算机上。定义该软件程序对操作系统资源的访问程度,并且在客户计算机上至少安装一个含有用来执行该软件程序的指令的文件。当该软件程序将被客户计算机执行时,该文件将被审查,以确定该软件程序可得到的系统水平的访问程度。当该软件程序在客户计算机上运行时,与该软件程序相关连的程序指令将被截取。判断该程序指令是否含有超出了该软件程序可得到的系统水平的访问程度的操作,如果判定该软件程序被允许访问位在该软件程序可得到的系统水平的访问程度范围之内的系统水平资源,则执行该程序指令。
当结合附图阅读了下面的说明之后,本发明的这些和其他特点和优点将变得清楚明白。
通过阅读下面结合附图所作的说明,可以最好地理解本发明和它的各种优点,在附图中:
图1a示出一个宽域计算机网络,其中用户和内部网都通过互连网上的一个计算机网络相耦合。
图1b示出一个普通的内部网系统。
图2a示出根据本发明一个实施例的一组分级文件。
图2b示出根据本发明一个实施例的一种档案文件数据格式。
图3a示出根据本发明一个实施例的客户方目录的结构。
图3b示出根据本发明一个实施例的客户方构形文件的结构。
图3c示出根据本发明一个实施例的客户方访问文件的结构。
图3d示出根据本发明一个实施例的客户方组规范文件的结构。
图4是说明根据本发明一个实施例的执行对资源的访问请求的方法的流程图。
图5是说明根据本发明一个实施例的关于检验分级文件有效性的步骤的流程图。
图6是说明根据本发明一个实施例的关于执行“小苹果(applet)”的步骤的流程图。
图7是说明根据本发明一个实施例的关于呼叫安全管理员的步骤的流程图。
图8示出根据本发明一个实施例的计算机系统。
下面将参考附图说明控制用“小苹果”访问系统资源的方法和设备的一些实施例。
图1a示出了一个根据本发明的网络。图1a所示网络中含有内部网102和104以及一个个人的外部计算机106。下面将参考图1b对内部网102和104的结构作较详细的说明。各内部网和用户都通过各种计算机通路(“G/W”)连接到该计算机网络上。在一些实施例中,该计算机网络包括互连网。更仔细地参阅图1a,内部网102通过总的由108所代表的互连网与内部网104和用户106相耦合。内部网102和互连网108之间的连接首先是通过一个与内部网102和一个“干线”或高容量数据线112相耦合的通路110提供。来自高容量线112的数据通过通路114被导过互连网108,通过互连网108的数据再通过一个第二通路116进入高容量数据线118。熟悉计算机网络技术的人们可以看到,数据线118可以与数据线112相同,或者也可以是一个分开的干线,其上耦合有各个其他的个人或用户和网络。
从内部网102经过互连网108传送到高速数据线118上的数据再通过通路120传向内部网104,或者通过通路124传向用户106。这样,根据所示的实施例,数据可以在用户106、内部网104、和内部网102之间传送。特别是,如刚才所述,该数据可以通过互连网108传送,或者也可以通过干线118在用户106和内部网104之间传送。在某些实施例中,内部网104和102可以通过本技术领域内称作为“特别网(extranet)”的网络结构直接耦合。特别网是这样一种网络布局,其中一个指定的网络或个人通过一个专用的数据连接与远处网络相耦合。这种连接可以是像图1a所示那样通过互连网来导引数据,或者也可以是通过例如ISDN或T-1数据线进行直接数据传送。各种布局和建立这类布局的方法及材料对于熟悉计算机网络和通信技术的人们来说是熟知的。
图1a中的内部网102和104的一个实施例示于图1b(“50”)。典型的内部网50含有一个与客户计算机62和64相耦合的服务器60。此外,服务器60可以通过一个路径器、分路器或类似的数据转送装置,例如图中的节点68,与其他的客户计算机如70、72、74相耦合。还有,远处客户(未示出)也可以通过一个直接线路或者利用调制解调器之类的器件通过电话线路连接到服务器60上。在某些情形中,对内部网50的访问由图中方框75所示的“防火墙”结构而受到高度的控制。位在防火墙外部的用户,例如远处客户78,可以通过一个允许访问被保护服务器的通路来建立通信。这样的通路由“76”表示。
典型地,服务器或者直接地或者通过一个路径器这样的器件向与该服务器通信的各个客户提供可访问的数据和软件。服务器、路径器、和各种客户机的设立、维护和操作是为熟悉本技术领域的人们所周知的。在一些特定的实施例中,服务器60的设计使它能提供与例如用来在环球网上观看数据的浏览器软件相兼容的数据。在一个实施例中,服务器和客户机之间不仅能交换数据,而且能交换具有“小苹果(applet)”形式的计算机软件,这种软件例如是可以从加里福尼亚州Palo Alto市的Sun Microsystems公司购得的用JavaTM编程语言所编写的软件。这里所使用的“小苹果(applet)”是指这样一些软件程序,它们设计得准备从一个资源计算机(典型地为一个服务器)传送给客户机,并可与已经安装在客户机中的软件结合运行。在一个实施例中,与小苹果一起运行的软件是上述的浏览器软件。典型地,小苹果能通过执行浏览器软件自身不能执行的各种计算工作而给浏览器软件提供额外的功能。所以,下载了小苹果的用户能够给浏览器软件提供它本来不具有的额外功能。这种额外功能例如是对一个数据库的专用界面。
一般,一个客户机,例如客户机62,利用一个“用户代理”或浏览器进入服务器60。这种用户代理有:可从加里福尼亚州Palo Alto市的SunMicrosystems公司购得的Hot JavaTM和可从加里福尼亚州Mountain View市的Netscape Communications公司购得的Netscape,但并不限于这两种。在一个实施例中,用户代理一般含有一个用来执行小苹果代码的处理机和一个用来判断某个小苹果是否可访问某些系统资源的“安全管理员”。下面将会给出这种安全管理员的一些例子。
根据一个实施例,一个或者位在互连网上或者位在内部网内的服务器提供含有一些定义了小苹果的分级文件的一些分级图书馆。这种分级图书馆的一个例子是JavaTM分级图书馆。具体地,一个服务器可以含有一些构成小苹果的分级文件和一些含有对应于该小苹果的HTML码的特定环球网网页。
根据本发明的一个实施例,小苹果可以从由源计算机或服务器下载给客户机的分级文件通过示例得到。各分级文件可以组合成一个档案文件。另外,档案文件可以用数字或其他方法予以标记,使得能可靠地确定从档案文件生成的小苹果的来源。这样可以通过确认文件档案的标记以确定执行小苹果的计算机可以访问哪些系统资源。采用标记使得可以控制客户机用小苹果对系统资源的访问,其方法例如是审查产生该小苹果的服务器的安全状态。举例来说,由于各个客户机上与同一个小苹果相关的允许访问程度可以不同,所以在一个客户机上执行的小苹果和在另一个客户机上执行的同一小苹果可能会有不同的访问特权。因此,这种资源访问控制使得在保密计算机上,例如与含有资源的计算机位于同一内部网中的计算机上的小苹果比在非保密计算机上,例如位于互连网中的计算机上的小苹果能访问更多的资源。
图2a示出根据本发明一个实施例的一组分级文件。这组分级数据文件的组合格式通常用于服务器上,其布局不用于接受标记。这就是说,每个分级文件典型地定义存储在服务器上的一个级别。这个格式使得文件组可含有任意多个级别,例如级别“1”202、级别“2”204、和级别“N”206。一个级别可以被定义成一个软件构成,后者定义了数据和方法,或者一系列对该数据进行操作的语句,它们对其后从该级别构建出的任何小苹果是专用的。换言之,如前所述,小苹果可以通过示例一个以前定义了的级别来构筑。应该指出,一个级别可以用来构筑许多小苹果。
小苹果的执行通常需要访问系统资源的请求或指令。虽然小苹果可以含有访问许多不同系统资源的指令,但由于安全方面的原因,在目前的设计的限制下,一个小苹果或者被允许访问所有规定的系统资源,或者不能访问任何规定的系统资源。如上所述,这种对系统资源访问的“要么全都可以--要么全都不可以”的方法在下述意义上常常是不希望的,即在一个内部网系统中运行的一个小苹果例如由于它的来源已知而被当作是“可信任的”,而在该内部网的外部运行的一个等价的小苹果则被认为是不安全的。对于在内部网系统中运行的小苹果和在外部运行的一个等价小苹果被赋予相同系统资源访问特权的情况,为了保证内部网系统的安全,通常只好不赋予小苹果访问特权。
有选择性地控制小苹果对资源的访问的能力使内部网系统中的用户对资源的访问将根据各自的小苹果受到限制。与在用于对小苹果作出示例的各分级文件的同时包含“标记”或识别符,是内部网单位有选择地控制小苹果的一种方法,给分级文件以标记(或“签名”)可以确定这些分级文件的来源,这使得内部网系统能够确定与从这些分级文件所产生的小苹果相对应的适当的访问特权。此外,对分级文件作标记还能够判断某个分级文件是否受到非法访问。下面将参考图2b说明允许对一组分级文件进行数字标记的档案文件结构。
通过提供一种可进行数字标记的档案文件,便有可能使一个根据该档案文件中的各分级文件所构成的小苹果可以访问内部网系统中的一些选定的系统资源,而不论该小苹果是在内部网系统内还是在内部网系统外运行。通过审查档案文件的数字标记,有可能确定一个给定的小苹果是否被非法使用,以及是哪些计算机给了该小苹果以标记。这样,可以根据小苹果是来自一个安全的或可信任的主机还是来自一个不安全的主机,来指定访问特权。此外,在某些实施例中,这种访问特权的指定使用户能够判断哪些主机是可信任的,哪些是不可信任的。
图2b示出根据本发明一个实施例的档案文件数据格式。该实施例中档案格式是JavaTM档案(JAR)格式。档案或档案文件210含有一个前端标记212,这个标记典型地被用户代理用来验证档案210的有效性,以及确定该档案210可得到的访问级别。一般,前端标记212是一个数字标记,它可以是整个前端部的一个部分,其中整个前端部还含有一些其他信息,例如关于档案大小的信息。档案210可以含有任何数目的有关级别,例如级别“1”202、级别“2”204和级别“N”206,小苹果和相关的目标即从这些级别示例产生。
此外,档案210也可以含有一些有关的数据块,例如数据块214。数据块214可以含有图像、文本或任何被当作是档案210的一部分的数据。在一个实施例中,数据块214含有一系列用来说明与该档案210相关连的级别202、204和206的文本。应该指出,在其他的实施例中档案210可以不含有数据块。
下面将参考图3a说明根据本发明的关于客户目录结构的一个实施例。一个通过客户计算机请求访问资源的用户通常借助于用户目录302连接。用户目录302有一个相关连的浏览器或用户代理浏览器可以是任意合适的浏览器,例如上述的Hot JavaTM浏览器。浏览器目录304含有一个特性文件306,它适合于用户所提的请示。典型地,特性文件306含有一些用户喜爱项308,它们是由用户提供的一般浏览器规范。这些规范可以包括,但并不局限于,关于浏览器的建立和与该浏览器相关连的行为特性的数据。
特性文件306还包含关于用户所提的特定请求的信息。例如,这种信息可能含有:图像数据块310,构形文件名称312、和组规范文件名称314。在一个实施例中,图像数据块310含有一些数据文件名称,即指明了与该请求相关连的任何图像的数据中。构形文件名称312是一个指明了一个构形文件的数据串,该构形文件用来实现从被请求资源到相关安全说明符的映射。下面将参考图3b说明构形文件的一个例子。组规范(“spec”)文件名称314是一个指明了一个组规范文件的数据串,下面将参考图3c对此说明。
图3b示出根据本发明一个实施例的构形文件的结构。构形文件350是被上面参考图3a所提到的由构形文件名称312所识别出的一个构形文件的例子。构形文件350含有一个把服务器上的各资源354(也即客户机希望访问的服务器上的资源)与各相应的访问文件名称356联系起来的表格352。这就是说,表格352把资源“列”354中的每个条目与访问文件名称“列”356中的对应条目相联系。资源354一般是指明各种系统资源,例如文件、主机和接口号码的分级器。访问文件名称356指明对应的访问文件,它含有安全描述符和其他关于与访问文件相关连的控制对系统资源的访问的信息。下面将参考图3c更详细地说明访问文件的结构。应该指出,由于可以有多于一个的资源354共用同一个安全描述符,所以访问文件名称,从而访问文件,可以与多于一个的资源354相关连。
现在将参考图3c说明根据本发明一个实施例的访问文件的结构。访问文件360一般含有一个用来联系各主体362和各种许可364的表格361。主体362可以是单个的主机,也可以是主机组。例如,“java.com”可以是单个主机即服务器,它是一个主体362。或者,“java.com”和“sun.com”可以构成一个作为主机组的主机362。在某些实施例中,主体362也可以是一些特定档案的标记器。许可364提供对安全描述符的聚组。就是说,许可364是这样的安全描述符聚组,它指定了与许可364相关连的主体362可访问的资源。
图3d示出根据本发明一个实施例的组规范(“spec”)文件格式。如上所述,图3a中的组规范文件名称314指明一个组规范文件,例如组规范文件370。组规范文件370含有一个联系组名称372和任意数目的组员374的表格371。组名称372基本上是可以用来识别一组组员374的识别符。例如,组名称组“1”372a可以与任意数目的组员,如组员“1”374a和组员“2”374b相关连。应该指出,一个组员,例如组员“1”374a,可以与多于一个的组名称372相关连。
图4是一个处理流程图,说明根据本发明的一个实施例的执行请求访问资源的方法。该处理从402开始,并在步骤404中由一个请求客户,如图1b中的客户机74,向一个服务器,如图1b中的服务器60,作出呼叫,以起动下载如参考图2a所说明的至少一个分级文件,或者如参考图2b所说明的一个档案文件,在响应于通过一个用户代理所作出的客户呼叫时,该请求被服务器接收,其中的用户代理是一个浏览器,例如前述的Hot JavaTM浏览器或NetscapeNavigator浏览器。下载至少一个分级文件或档案文件的起动在响应于一个要访问资源的请示时钟发生,因此它是一个要执行小苹果的呼叫。在一个优选实施例中,档案文件是一个JAR文件。
在步骤406中,档案文件或者一些分级文件被从服务器安装到与请求客户相关连的存储器中。一般,如果分级文件的级别不在档案文件内,例如没有数字标记,则这些分级文件将被安装;如果这些级别有数字标记,则安装一个档案文件。应该指出,该档案文件含有相关连的分级文件。所以,安装档案文件也涉及安装各个分级文件。各分级文件被安装到存储器中之后,在步骤408对安装的文件进行有效性处理。在安装了档案文件的情形中,该有效性处理包括检验与安装的档案文件相关连的前端标记是否有效的处理,下面将参考图5对此说明。
有效性处理之后,在步骤410把分级文件转换成一个小苹果。也就是说,通过所安装的分级文件的示例,在存储器中生成一个小苹果,其中的分级文件可以是,也可以不是JAR文件的一部分。一旦生成了小苹果之后,在步骤412中执行该小苹果文件。下面将参考图6说明与执行小苹果有关的各个步骤。
图5是一个处理流程图,说明根据本发明一个实施例的关于分级文件有效性处理,即图4中的步骤408的处理步骤。该处理从502开始,并在步骤504中判断被安装的是档案文件还是分级文件。如果安装的是分级文件,则流程进到步骤506,在那里进行标准级别检验。典型地,标准级别检验包括检验所有已安装的分级文件,从而也检验了它们的级别,以确定在这些分级文件中是否有任何内容会危害安全性。在某些实施例中,将检验一个虚拟计算机,如JavaTM虚拟计算机的安全性是否会受到损害。标准级别检验方法对于熟悉本领域普通技术的人们来说一般是周知的。进行了这个标准级别检验后,便在520完成了对分级文件的有效性处理。
如果在步骤504判定所安装的是一个档案文件,则在步骤508检验或认证该档案文件的前端部的有效性。该档案文件的有效性检验一般涉及根据前端标记来识别该档案文件的来源。也就是说,进行一个检验以建立前端标记的来源,从而确定该档案文件的来源。有效性检验也可以包括检验与该档案文件相关连的数据是否完整。应该指出,在某些实施例中档案文件可能没有前端标记。例如,一个内部网内的档案文件可能没有予以标记。在步骤510,判断该前端部是否有效。如果前端部无效,例如该档案的内容与标记不对应,则在步骤514设置一个错误旗标之类的标志。在一个实施例中,错误旗标可能造成异议。在另一个实施例中错误旗标可能造成向请求客户返回一个消息。设置了错误旗标之后,分级文件有效性检验处理于520结束。
如果在步骤510发现前端部是有效的,则处理从步骤510转到步骤512,判断在与档案文件相关连的各级别中是否还有待检验其有效性的级别。如果有这样的级别,则在步骤516进行标准级别检验。与前面对步骤506的说明一样,标准级别检验包括检验在某一给定的级别是否有任何内容可能危害虚拟计算机的安全性。例如,如果一个给定级别中的某些内容可以重写虚拟计算机上的文件或者存储器,则该虚拟计算机的安全性便可能被损害。完成了对给定级别的标准级别检验之后,流程返回步骤512,判断是否还有任何级别有待检验。步骤512和516之间的循环一直进行到在步骤512中判定不再剩有任何待检验的级别,这时分级文件的有效性检验于520完成。
图6是一个处理流程图,说明根据本发明一个实施例的关于执行小苹果的步骤。也就是说,将说明图4中的步骤412。该处理开始于602,并于步骤604检验该小苹果是否含有一个要执行某个操作的指令。该操作一般可以是一个要求访问某个系统水平的资源的调用。如果该小苹果不含有要执行一个操作的指令,则执行小苹果的处理于616结束。如果该小苹果确实含有一个要执行操作的指令,则处理进入步骤606,判断这个要执行的操作是否是一个受保护的操作,例如一个安全操作。也就是说,判断该操作是否是一个受控制访问的操作。如果判定该操作是不受保护的,则于步骤608执行该操作,然后处理返回步骤604,判断是否还有一个要执行其他操作的指令。
如果在步骤606中判定该指令中要执行的操作是受保护的,则处理转向步骤610,调用小苹果安全管理员。下面将参考图7较详细地说明调用安全管理员的处理。小苹果安全管理员典型地控制可以被给定小苹果访问的操作。在一个实施例中,小苹果安全管理员是一个JavaTM小苹果安全管理员。在步骤612中,判断该操作是否许可。换言之,步骤612是一个关于小苹果是否可以访问所要执行的操作的判断。如果该操作被许可,则于步骤608执行该操作。其后流程从步骤608返回步骤604,判断是否还有一个要执行其他操作的指令。
如果在步骤612中判定该操作是不许可的,则表示出现了一个错误情况,这可以通过在步骤614中“提出异议”来表明,其后该执行小苹果的处理于616结束。应该指出,在某些实施例中,提出异议的步骤可能涉及调用一个“提异议”功能。在另一些实施例中,提出异议的步骤可能涉及送出个关于错误的消息,后者可以由一个与请求客户相关连的用户代理显示出来。在还有的一些实施例中,对错误的处理可能导致与用户的对话,其形式是询问用户是否赞同该小苹果的操作行为。在这些实施例中,访问文件可能被更新得永久性地记录下用户所作的回答。
下面将参考图7说明调用安全管理员的处理,即图6中步骤610的处理。应该指出,一般用户代理只有一个相关连的安全管理员。调用安全管理员的处理开始于702,并在步骤704中识别出小苹果所调用的操作。虽然该操作可以是许多操作中的任一个,但它通常是一个读出操作或写入操作。处理从步骤704进入步骤706,识别出与该操作相关连的资源的名称。在某些实施例中,资源名称已被传送在对安全管理员的调用之中,因此它是容易识别的。然而,对于资源名称未被传送给该调用的情况,则可以利用前面参考图3a所说明的特性文件来识别相应的资源。
一旦在步骤706中识别示出相应的资源,便在步骤708中利用早先参考图3b所说明的与小苹果相关连的构形文件来识别出对应于该资源的访问文件的名称。然后于步骤710从该访问文件获得对应于小苹果的许可情况。应该指出,在某些实施例中,相应的访问文件可以是存储器中某实际访问文件的一个表示。如前面参考图3c所说明的,访问文件把各个主机或主机组与一组许可相关连。得到了许可之后,对安全管理员的调用于712完成。
图8示出根据本发明的一个典型的计算机系统。计算机系统830包含任意数目的处理器832(也称作中央处理单元,CPU),这些CPU与一些存储器装置相耦合,其中包括主存储装置834(典型地为只读存储器,ROM)和主存储器装置836(典型地为随机访问存储器,RAM)。如本技术中所周知的,ROM834用来单向地把数据和指令传送给CPU,而RAM836典型地用来双向地传送数据和指令。主存储装置834和836都可以含有任何上述适当的计算机可读的媒体。一个大容量存储装置838也与CPU832双向耦合,提供附加的数据存储能力。大容量存储装置838可以用来存储程序、数据等,它典型地是一个像硬盘这样的二级存储媒体,其速度要低于主存储装置834和836。大容量存储装置838的形式可以是磁带或纸带读出器,或者其他的普通装置。将可看到,保存在大容量存储装置838中的信息在适当的情况下可以作为虚存储器以标准的方式作为RAM836的一部分。一个像CD-ROM(紧凑型光盘只读存储器)834这样的指定的大容量存储装置也可以单向地向CPU传送数据。
CPU832还与一个或多个输入/输出装置840相耦合,后者可以包括,但并不局限于,例如下述这些装置:视频监视器、跟踪球、鼠标、话筒、触敏显示器、传感卡读出器、磁带或纸带读出器、便笺本、唱针、语音或手写字识别器、或其他众知的输入装置,当然,还包括例如其他的计算机。最后,CPU832也可以利用网络连接任选地与总的由812示出的计算机或例如互连网或内部网等通信网络相耦合。可以预料,有了这种网络连接之后,CPU在执行上述方法的各步骤的过程中可以从网络接收信息,或者向网络输出信息。上述的各种装置和材料对于熟知计算机硬软件技术的人们来说是熟悉的,另外,熟悉本技术领域的人们应可看到,上述的硬件和软件元件,以及网络装置都是属于标准设计和标准结构的。
这里所说明的用计算机实现的各种方法可以用计算机科技中所众知的在计算机系统上执行计算机程序指令的技术和设备来实现。这里所使用的术语“计算机系统”被定义为一个用于处理数据和指令的处理装置(例如中央处理单元,CPU),它与一个或多个数据存储装置相耦合,后者用来与该处理单元交换数据和指令,其中包括,但不限于:RAM、ROM、CD-ROM、硬盘等等。这些数据存储装置可以是专用的,即直接与处理单元相耦合;也可以是远处的,即通过一个计算机网络与处理单元相耦合。应该指出,通过计算机网络与处理单元相耦合的远处数据存储装置可以能够向一个处理单元发送程序指令,以在一个特定的工作站上执行。此外,该处理装置可以通过相同的物理结构(例如并行处理器)或者一个计算机网络(例如分布式处理器)与一个或多个另外的处理装置相耦合。使用这种远处耦合的数据存储装置和处理器对于熟知计算机科技的人们来说是熟悉的(例如见Ralston 1993)。这里所用的“计算机网络”一词被定义为与一组能相互通信的计算机系统相互连的一组通信通道。这些通信通道可以包括各种传输媒体,例如,但不局限于:双绞导线、同轴电缆、光纤、卫星连接、或数据微波无线电等。各计算机系统可以分布在大的或“宽”域的网络(例如超过几十、几百或几千英里的网络,WAN(宽域网络))上,或者也可以分布在局域网络(例如几英尺几百英尺的网络,LAN(局域网络))上。此外,各种局域和宽域网络可以结合成计算机系统的联合网络。这种联合计算机网络的一个例子是“互连网”。
虽然上面仅说明了本发明的几个实施例,但应了解,本发明可以在不偏离其精神或范畴的情况下用许多其他特定的形式来实施。举例来说,虽然仅说明了一种可以给以标记的档案文件数据结构的构形,但应看到,在本发明的范畴内档案文件数据结构可以有很大的改变。此外,关于执行对系统资源进行访问的方法中的各个步骤的次序可以重新组织。在不偏离本发明精神或范畴的情况下有些步骤也可以删去或加入。因此,应该把所说明的实施例看作是说明性的,而不是限制性的,本发明应该由下述权利要求以及它们的完整等价内容来定义。