集中管理自含式桌面的系统和方法

文档序号:6421229阅读:185来源:国知局
专利名称:集中管理自含式桌面的系统和方法
技术领域
一般地说,本发明涉及集中管理自含式桌面的系统和方法。具体地说,本发明涉及把平台中性组件组装到自含式桌面中供桌面外壳应用使用的系统和方法。
背景技术
今天的现代计算机软件系统往往是以分布式方式在整个组织内组织起来的企业级系统。该组织内的各种人根据该用户的工作描述使用该计算机系统实现不同的角色。在一个银行例子中,一个用户可能是出纳员,所以需要出纳员应用以服务于银行顾客。另一个用户可能是信贷员,于是需要信贷员应用以服务于申请贷款的顾客。第三个用户可能是支行经理,于是需要访问用于管理该支行的计算机功能。
传统的计算机系统通常被设计成或者通过每个计算机提供全部必须的功能,例如通过使用计算机网络访问必须的功能,或者该系统被设计成各单个工作站实现特定的角色,并因此由特定的一个用户或一组用户使用。这在多个用户使用同一客户计算机系统的组织中提出了挑战。在银行的例子中,取决于轮班、每周的第几日或哪个出纳员碰巧被指定到一个特定工作站,可能有若干个出纳员使用同一个客户计算机系统。
如果从同一工作站提供全部组织功能,那么未被授权执行一项特定功能的用户可能偶然地或故意地执行他们没有被授权的功能。例如,如果从一个出纳员的工作站能得到信贷员或支行经理功能的话,该出纳员可能偶然地执行该功能。一种传统的系统管理授权的方式是在每个工作站上安装处理每个工作角色的诸软件组件,但根据用户的登录来限制访问权限。然而,对这一方法的挑战是每个工作站需要接收任何新的或修改过的软件组件,以使得任何可能需要这种功能的用户从任何给定的工作站可以使用这些软件组件。
对传统软件系统的另一个挑战是与许多不同工作角色有关的组件和图标可能出现在用户工作站上,从而造成混淆。对传统软件系统的又一个挑战是难以使用于各种工作角色的组件彼此隔离。这种困难会由于未授权用户使用驻留在一个公共工作站上的组件而导致安全性遭到破坏。最后,一个另外的挑战是IT管理员需要确保在每个相应工作站上实现的各种角色可以使用每个组件。如果该组织希望从特定的工作站排除特定的功能,则这一挑战变得更加严峻。在银行的例子中,该组织可能希望确保在出纳员工作站上不能执行银行经理功能。
所以,需要的是一个系统和方法,它提供对自含式桌面软件包的集中式管理,该软件包包括为实现特定角色所需的组件。还需要的是一个系统和方法,用于根据用户的工作角色以及对该用户的工作站已被允许的角色,把自含式桌面软件包分配给各用户。最后,需要的是一旦用户成功地登录便自动地向该用户传输匹配的自含式桌面软件包并在该用户的工作站上解包/显示组件的一种途径。

发明内容
已经发现,使用一种集中管理桌面软件包的系统和方法能迎接上述挑战。管理员将应用赋予用户和工作站。管理员选择特定工作角色所需桌面组件,并把这些组件打包成自含式桌面软件包文件。该自含式桌面软件包被发送给正在使用特定工作站的用户。该系统识别已赋予该用户的一个或多个角色,并使这些识别出的角色与已赋予该工作站的一个或多个角色匹配。对该工作站和该用户都允许的角色,使其能由使用该工作站的该用户使用。
在一个实施例中,组件被打包在不同组自含式桌面软件包中,每个包对应于一个不同的角色。在银行的例子中,将为用户执行的每个银行角色,如出纳员、信贷员和支行经理,创建不同的桌面软件包。每个这样的自含式桌面软件包将包括为实现相应功能所需要的组件。例如,用于操作现钞抽屉的桌面组件将被包括在出纳员软件包中,而用于访问银行贷款应用软件的桌面组件将被包括在信贷员软件包中。多个角色公用的组件被包括在需要它们的每个软件包中。例如,用于访问顾客帐户的组件可能被同时包括在出纳员软件包和信贷员软件包中。
在一个实施例中,当用户使用一个特定工作站登录到网络中时,自含式桌面软件包文件便被传送给该用户。用户标识符和工作站标识符被用于选择该用户使用该工作站时被允许使用的桌面软件包。
一个组织可被定义为拥有“子”站点和“父”站点。例如,一个新的支行可被定义为一个已经存在的地区银行的子站点。可使用这种父子关系使子站点能继承已经为父站点建立的桌面软件包。以这种方式,当父站点使用的桌面被改变时(例如添加了新组件),则子站点能继承该信息并接收新的桌面软件包,而无需重新定义子站点。
前述内容为一个概要,因而包含必要的简化、一般化并且略去细节;因此,本领域技术人员将会理解,本概要只是说明性的,无意以任何方式进行限定。由权利要求唯一定义的本发明的其他方面、发明性特征以及优点将在下文中给出的非限定性详细描述中明显地表现出来。


通过参考附图,本领域技术人员将会更好地理解本发明和明显看出本发明的多个目的、特点和优点。在不同附图中使用相同的参考符号表示相似或相同的项目。
图1是使用自含式桌面的计算机系统的网络图;图2是提供自含式桌面时包括的组件的方框图;图3是高级流程图,显示为提供自含式桌面由管理员采取的步骤;图4是流程图,显示为建立特定站点由管理员采取的步骤;图5是流程图,显示为建立用户由管理员采取的步骤;
图6是流程图,显示为建立工作站由管理员采取的步骤;图7是流程图,显示为建立应用扩展由管理员采取的步骤;图8是流程图,显示为建立应用引用由管理员采取的步骤;图9是流程图,显示为创建自含式桌面由管理员采取的步骤;图10是流程图,显示为向客户机分发自含式桌面由服务器采取的步骤;图11是管理员为建立新站点所使用的屏幕的屏幕布局;图12是管理员管理给定站点的桌面和机器时所用屏幕的屏幕布局;图13是管理员建立新用户所用屏幕的屏幕布局;图14是管理员建立一个应用时所用屏幕的屏幕布局,该应用可作为一个或多个自含式桌面内的一个组件供使用;图15是管理员建立本机应用时使用的屏幕的屏幕布局;图16是管理员管理工作站时所用屏幕的屏幕布局;图17是流程图,显示为向服务器分发自含式桌面所采取的步骤;图18是流程图,显示为从服务器向客户机分发自含式桌面所采取的步骤;图19是流程图,显示为创建定制应用扩展所采取的步骤;图20是流程图,显示一个应用扩展的生命周期;图21A是方框图,显示从管理员向多个客户机分发的组件和资源;图21B是方框图,显示在管理员丢失数据之后由该管理员从服务器中恢复的组件和资源;图22是流程图,显示管理员分发自含式桌面和在其后的灾难事件之后从服务器中恢复自含式桌面时采取的步骤;图23是流程图,显示一个客户机接收和显示桌面时采取的步骤;图24是流程图,显示一个服务器根据用户的角色和工作站的角色向一客户机提供桌面信息时采取的步骤;图25是方框图,显示由一服务器进行的处理过程以及服务器、客户机和管理员之间的交互作用;图26是流程图,显示一个客户机在初始化和显示自含式桌面时采取的步骤;图27是在一个客户机工作站上显示的一个桌面示例以及该客户机可用的其他自含式桌面的弹出式菜单的屏幕布局;图28A是由客户机外壳程序在显示和管理桌面时使用的目录的层次结构图;图28B是外壳配置文件中包括的各部分的层次结构图;图28C是在自含式桌面文件中包括的对象的层次结构图;图29是流程图,显示初始化客户机工作站以使用自含式桌面所采取的步骤;图30是流程图,显示客户机初始化过程中采取的步骤;图31是流程图,显示本机操作系统登录过程中采取的步骤;图32是流程图,显示在调用Java外壳启动器时采取的步骤;图33A是显示智能图形组件的一个例子的屏幕布局;图33B是显示智能图形组件第二个例子的屏幕布局;图34是显示各种桌面对象的层次结构图;图35是流程图,显示初始化智能图形组件时采取的步骤;图36是流程图,显示在处理智能图形组件的显示属性时采取的步骤;图37是流程图,显示在处理智能图形组件的行为属性时采取的步骤;以及图38是能实现本发明的信息处理系统的方框图。
具体实施例方式
下文是要提供对本发明一个例子的详细描述,但不应看作是对发明本身的限制。相反,任何数量的变体都可以落入由本描述之后的权利要求规定的本发明的范围之内。
图1是使用自含式桌面的联网计算机系统的网络图。管理员100通过把图像115、应用扩展120、国家语言翻译125、客户机配置文件130、服务器配置文件135以及桌面简档信息140组合在一起,创建了自含式桌面110。自含式桌面110包括一个客户机在给定该客户机特定角色的情况下,在该客户机的工作站上使用该客户机工作站上的组件时所需要的全部信息。
自含式桌面110被传送到一个或多个服务器150以向各客户机传播。服务器150把用户角色155和工作站角色160结合以确定向客户机发送哪些自含式桌面。客户机165执行登录功能170,在登录期间,用户ID和口令被收集和传送到服务器150以使登录生效。客户机165执行登录功能170,在登录期间,用户ID和机器ID被收集和传送到服务器150以接收一个允许的桌面的列表。
服务器150从客户机接收用户ID、口令和机器ID,并根据与该客户机正在使用的特定用户ID和特定工作站对应的用户角色155和工作站角色160,确定要向客户机传送哪些自含式桌面。确定出的自含式桌面作为响应从服务器150传送给客户机165。
客户机165执行加载外壳过程175以把外壳应用180加载到客户机工作站。该外壳过程是一个应用,它被加载到一个中间件应用上,如Java虚拟机(JVM)上。以这种方式,不管该客户机工作站使用什么操作系统平台,该外壳应用看起来具有一致性而且基本相似。外壳应用180适用于检索和显示自含式桌面190。客户机165根据用户和工作站标识符的交集,接收自含式桌面。这些自含式桌面使用过程185接收和显示。所以,一个给定客户机能利用多个自含式桌面。这些自含式桌面软件包括工具条、菜单以及其他用于与用户通信的图形用户界面项目。这些用户界面中一些界面包括与服务器150上的服务器应用进行通信的功能。其他用户界面包括映射到基于客户机的应用195上的扩展。当用户点击映射到基于客户机的应用上的桌面组件时,在该自含式桌面内存在功能去调用或以其它方式使用该基于客户机的应用。如果一个客户机有由它处置的多个自含式桌面,则用户能使用外壳应用180提供的菜单在各自含式桌面之间切换。例如,在一个银行环境中,如果一个用户既是信贷员又是支行经理,则用于这些角色的两个相应的自含式桌面都应被加载到外壳180中,假如该工作站能完成这两项角色的话。为完成信贷员功能,该用户从外壳应用180中选择信贷员桌面。类似地,为完成支行经理功能,该用户从外壳应用180中选择支行经理桌面。此外,可以提供默认角色,从而在开始时所显示的桌面对应于该用户的主要的或默认的角色。
图2是提供自含式桌面时包括的组件的方框图。管理员200定拓扑结构、用户定义、站点定义和桌面定义。管理员200通过提供工作站定义205来定义拓扑结构。工作站定义205包括工作站地址210和被允许的桌面215,这些桌面定义哪些角色或桌面被允许用于该各个工作站。例如,在一个银行环境中,位于出纳员窗口的工作站可以有特殊的设备,如出纳员箱。从而使该工作站能够或被允许完成出纳员功能。或许在离开出纳员工作区的桌子上的另一个工作站可能不能完成出纳员功能。
用户定义220用于定义该系统的用户和这些用户要完成的角色。用户定义220包括用户数据225和被赋予的组数据230。用户数据225包括用户标识符和用户口令。被赋予的组数据230包括一个特定用户被允许完成的角色。例如,一个支行经理可能被允许完成支行经理、信贷员和出纳员的功能,而一个出纳员可能只被允许完成出纳员功能。
站点定义235包括关于一个特定站点的信息。在一个银行环境中,一个站点可能是该银行的支行办公室。站点定义235包括为一特定站点的用户们提供公用桌面的组桌面映像240,以及提供关于该站点详情的站点信息245。
桌面定义250包括用来创建由客户机使用的自含式桌面的组件。桌面定义250包括在自含式桌面上显示的诸图像252以及应用扩展254,该应用扩展254提供关于可从自含式桌面访问的基于客户机的应用的详情。桌面定义250还包括资源,如国家语言翻译256,从而使用户能选择最适合他们需要的资源,如语言偏好。桌面定义250还包括客户机配置258和服务器配置260。这些配置包括关于特定自含式桌面中包括的组件的信息。
管理员200在可由客户机访问的一个或多个服务器265上创建自含式桌面和发布这些自含式桌面。服务器265包括持久性存储器270和验证功能280。持久性存储器270包含用户数据272、拓扑结构信息274以及自含式桌面276。用户数据和拓扑结构数据用于确定哪些自含式桌面276被允许由使用给定工作站的给定客户机来使用。服务器265向客户机290提供授权于特定用户/工作站的桌面。自含式桌面被客户机接收并显示在不依赖于平台的外壳295上。以这种方式,服务器265向客户机290发送确定出的桌面,不管该客户机使用的具体的操作系统平台是什么。
图3是高级流程图,显示管理员为提供自含式桌面而采取的步骤。管理员处理过程在步骤300开始进行,于是管理员定义用户(预先规定的过程310,进一步详细描述见图5)。该管理员还定义由该系统的用户使用的工作站(预先规定的过程320,进一步详细描述见图6)。
客户机需要的资源(如国家语言翻译)被建立起来,从而使这些资源能包括在自含式桌面中(预先规定的过程330)。与在工作站上可用的应用对应的应用扩展被定义(预先规定的过程340,进一步的详细描述见图7)。自含式桌面被打包,其中包括为完成特定工作角色所需要的全部组件(预先规定的过程350,过程的详细描述见图8)。
判断步骤360确定是否要添加新站点。如果要添加新站点,则判断360分支到“是”分支365,于是定义一个新站点(预先规定的过程370,过程的详细描述见图4)。另一方面,如果不要添加新站点,则判断360分支到“否”分支375,跳过步骤370。
所定义的桌面被映射到一个或多个站点以及一个或多个角色(预先规定的过程380)。以这种方式,单个桌面能在多个站点供多个角色使用。相反地,在每个站点和为每个角色能定义和使用不同的桌面。桌面组件被打包到自含式桌面中,而自含式桌面被发布到一个或多个服务器以向各客户机分发(预先规定的过程390,过程的详述描述见图9)。管理员处理过程在395结束。
图4是流程图,显示管理员为建立特定站点而采取的步骤。处理过程在步骤400开始进行,于是一个唯一标识符被赋予该站点(步骤405)。对该站点识别出一个父站点(步骤410)。例如,支行可能有地区行作为父站点。以这种方式,新站点从父站点继承特征和属性,从而使特征和属性具有一致性,而且不必为每个站点重新输入。判断步骤415确定是否识别出了父站点。如果识别出了父站点,则判断415分支到“是”分支418,于是检索该父站点的策略和桌面(步骤420)。另一方面,如果未识别出父站点,则判断415分支到“否”分支422,于是管理员为该站点把策略和桌面设定为默认值(步骤425)。
根据特定站点的需要,可以修改检索出的或为一特定站点设定的策略(步骤430)。以这种方式,一个站点的策略能与父站点的策略稍有不同。各站点有要由在这些站点上工作的用户完成的一个或多个角色。在一个银行环境中,支行站点可能有诸如出纳员、信贷员和支行经理等角色。步骤435为该站点选择第一个角色。判断步骤440确定该角色是否需要修改。如果该角色需要修改,则判断440分支到“是”分支445,于是为该角色选择一个自含式桌面(步骤450)。另一方面,如果不需为该角色修改该桌面,则判断440分支到“否”分支455,跳过步骤450。以这种方式,对特定角色,该子站点使用与父站点相同的桌面,而管理员又具有为给定角色对子站点赋予不同桌面的灵活性。
判断步骤460确定对该站点是否还有角色。如果还有角色,则判断460分支到“是”分支465,于是为该站点选择下一个角色(步骤470),处理过程循环回去处理下一个角色。这一循环继续到对该站点再没有角色了为止,这时判断460分支到“否”分支475,于是存储为该站点选择的桌面及其他数据(步骤480)。然后过程在495返回。
图5是流程图,显示管理员为定义新的用户而采取的步骤。过程在步骤500开始进行,于是在步骤505对该用户赋予唯一的用户标识符,如用户ID。一个初始口令也赋予该用户(步骤510)。还为该用户输入用户名和/或描述(步骤515)。在步骤520,为该用户选择一个国家语言偏好。
从管理员已经创建并存储在数据存储530的角色列表中为该用户选择一个角色(步骤525)。判断步骤540确定选定的角色是否是该用户的默认角色。如果选定的角色是该用户的默认角色,则判断540分支到“是”分支545,于是选定的角色作为该用户的默认角色被赋予(步骤550)。另一方面,如果选定的角色不是默认角色,则判断540的分支到“否”分支555,跳过步骤550。
判断步骤560确定是否还有角色要赋予该用户。如果还有角色要赋予该用户,则判断560分支到“是”分支565,其循环回去选择和处理该用户的下一个角色。这一循环继续到再没有角色要赋予该用户时为止,这时判断560分支到“否”分支570,于是赋予该用户的角色被存储(步骤580)。然后过程在595返回。
图6是流程图,显示管理员为建立工作站而采取的步骤。处理过程在步骤600开始进行,于是为工作站输入一个标识符,如MAC地址(步骤610)。MAC地址是介质访问控制地址,它是唯一标识一个计算机网络的每个节点的硬件地址。对该工作站赋予一个主机或服务器(步骤620)。对该工作站赋予或检索出一个IP地址(步骤630)。还为该工作站输入工作站描述(步骤640)。工作站描述可以包括对工作站能力的描述,如该工作站是否包括银行出纳员抽屉。
从管理员创建并存储在数据存储660中的角色列表中选出该工作站的第一个角色(步骤650)。例如,在一个银行环境中,角色可能包括出纳员、信贷员和支行经理。一个工作站可能能执行所有这三个角色,而另一个可能只能执行其中的一个或两个角色。再有,保密的或敏感的功能可能限定于一个特定的工作站,尽管其他工作站可能在物理上能够完成这些功能。判断步骤670确定是否还有角色要赋予该工作站。如果还有角色要赋予该工作站,则判断670分支到“是”分支675,于是选择该工作站的下一个角色(步骤680)。这一循环继续到再没有角色要赋予该工作站时为止,在这时判断670分支到“否”分支685。所赋予的角色和工作站数据被存储(步骤690)在一个非易失存储区。然后过程在695返回。
图7是流程图,显示管理员为建立应用扩展而采取的步骤。应用扩展是桌面组件,它们提供对应用如基于客户机的传统(legacy)应用的访问。处理过程在步骤700开始进行,于是一个扩展标识符被赋予该特定的应用扩展(步骤705)。一个应用描述被输入,其描述相应的应用(步骤710)。还输入该应用扩展的客户机类别(步骤715)。
判断步骤720确定该扩展是由系统提供还是由用户提供。如果扩展由该用户提供,则判断720分支到用户分支725,于是输入与该扩展对应的Java归档(JAR)文件名(步骤730)。另一方面,如果该扩展由系统提供,则判断720分支到系统分支735,跳过步骤730。
判断步骤740确定是否需要一个管理员面向对象类。如果需要一个管理员类,则判断740分支到“是”分支745,于是输入管理员类名称(步骤750)。另一方面,如果不需要管理员类,则判断740分支到“否”分支755,跳过步骤750。
在步骤760,使用所提供的信息创建应用扩展。判断步骤770确定该应用扩展是否有任何默认的特性。如果有默认的特性,则判断770分支到“是”分支775,于是为该应用扩展输入默认特性(步骤780)。另一方面,如果对该应用扩展没有默认的特性,则判断770分支到“否”分支785,跳过步骤780。
应用扩展连同任何默认特性一起被存储(步骤790)在非易失存储区。然后过程在795返回。
图8是流程图,显示管理员为建立应用引用而采取的步骤。处理过程在步骤800开始进行,于是选择与该应用引用对应的引用类型(即扩展类型)(步骤810)。一个唯一的应用引用标识符被赋予该应用引用(步骤820)。还为该应用引用提供应用描述(步骤830)。还提供图标属性,如图标标题和图标文件名(步骤840)。还输入针对该应用扩展类型的特性(步骤850)。然后,该应用引用被存储在一个非易失存储区(步骤860),过程在895返回。
图9是流程图,显示管理员为创建自含式桌面而采取的步骤。处理过程于步骤900开始进行,于是一个唯一的桌面标识符被赋予该自含式桌面(步骤905)。在步骤910,为该桌面输入桌面标题和/或描述。在步骤915,为该桌面输入屏幕和图标外观。然后,管理员选择在桌面上出现的图像,如图标、背景等(步骤920)。这些图像选自桌面组件库925。桌面组件库925包括背景和其他图像930、图标935、应用引用945以及资源955。
从桌面组件库925中包括的应用引用945中选出在该桌面中可用的应用引用(步骤940)。在一个银行环境中,出纳员的桌面能包括用来查询顾客的银行余额或操作出纳员现金抽屉的应用引用,而信贷员的桌面能包括用来提供对银行贷款批准软件应用的访问的应用引用。对每个被支持的场所,提供国家语言数据,如文本和资源(步骤950)。这些资源是从桌面组件库925中包括的资源955中选出的。
桌面配置被存储,这些配置详细描述该桌面软件包括的文件和资源(步骤960)。描述该桌面的客户机配置文件被创立,并且桌面数据被打包(步骤970),结果产生自含式桌面975。通过把桌面传送给服务器990,使所产生的自含式桌面发布到可由客户机访问的服务器上(步骤980)。然后过程在995返回。
图10是流程图,显示为向客户机分发自含式桌面由服务器采取的步骤。处理过程在步骤1000开始进行,于是服务器接收用户登录和工作站标识符(步骤1005)。用户登录包括用户标识符和用于验证该用户的口令。已经赋予该用户的诸角色从用户目录数据存储1015中检索出来(步骤1010)。已经赋予该工作站的诸角色从拓扑结构目录1025中检索出来(步骤1020)。
判断步骤1030确定是否有任何赋予该用户的角色与赋予该工作站的角色匹配。如果没有共同的角色,则判断1030分支到“否”分支1035,于是向客户机返回一个错误(步骤1038),过程在1095返回。另一方面,如果有一个或多个共同的角色,则判断1030分支到“是”分支1040,于是从桌面/角色映像1050中检索出选定角色的第一个桌面并从数据存储1055中检索出相应的自含式桌面。判断步骤1060确定该用户和该工作站之间是否还有共同的角色。如果还有共同的角色,则判断1060分支到“是”分支1070,于是选定下一个共同角色(步骤1080),并且处理过程循环回去以检索相应的自含式桌面。这一循环继续到该用户和该工作站之间再没有共同角色时为止,此时判断1060分支到“否”分支1065,于是检索出的桌面标识符(即对该用户和该工作站二者为共同的那些标识符)被发送给客户机(步骤1090)。然后过程在1095返回。
图11是管理员建立新站点使用的屏幕的屏幕布局。管理员使用屏幕布局1100定义一个新站点。管理员向文本框1150中输入一个唯一站点标识符。如果新站点是已经创建的一个站点的子站点,则从列表框1105中选出父站点。列表框1105包括先前定义的站点标识符列表。框1110包括用于该站点的策略信息。策略信息包括策略名称1115、策略值1120以及继承性数据1125。继承性数据1125包括继承性值1130和继承性祖先1135。在所示例子中,策略名是“newbDC”,策略值是从父站点继承的。继承性值是“允许”,继承性祖先是“根”,或该站点层次结构中的最高站点。
桌面框1140包括关于在该站点上可用的角色和桌面的信息。桌面框1140包括角色数据1155、桌面数据1160和继承性数据1170。继承性数据包括被继承的桌面的名称1175和该桌面从中被继承下来的祖先的名称1180。在所示例子中,在该站点包括的角色包括管理员、支行经理、客人、信贷员和出纳员。每个桌面是从父站点继承的,如由该桌面字段的“[继承的]”值所示的。管理员、支行经理和信贷员的桌面是从“支行A”站点继承的,而客人和出纳员桌面是从“根”站点继承的。以这种方式,自含式桌面能从多种父站点选择,或者为该子站点特别地配置。
当已经输入该新站点数据时,管理员选择“创建站点”命令按钮1190以创建这个新站点。如果管理员出错并希望重新设置各值,管理员可以选择“重置值”命令按钮1195。
图12是管理员管理给定站点的桌面和机器时所用屏幕的屏幕布局。管理员使用屏幕布局1200管理给定站点的桌面以及添加和管理对应于该站点的工作站。屏幕布局1200的上半部类似于图11中所示新站点屏幕布局。列表框1205用于选择要赋予该站点的父站点。父站点能被改变以适应于该组织内的改变。策略框1210包括策略名1212、策略值1214和继承性数据1216。继承性数据包括继承性值1218和祖先值1220。在所示例子中,策略名是“newbDC”,它是从“根”祖先继承来的。
桌面框1225包括角色数据1230、桌面数据1235以及桌面继承性数据1240。在图12中所示的银行例子中,该站点所包括的角色由管理员、支行经理、客人、信贷员以及出纳员构成。该桌面要由管理员、支行经理、客人、信贷员及出纳员使用。这些角色中的每个示于桌面数据1235中。一些值是从父节点继承的,而另一些被指定为对特定的自含式桌面。桌面继承性数据包括桌面继承性1242和祖先数据1244。在所示例子中,管理员、支行经理和信贷员中的每个从“支行A”继承桌面数据,而客人和出纳员中的每个从父站点“根”继承桌面数据。
如果管理员改变该站点数据并希望存储改变后的站点信息,则管理员选择“提交改变”命令按钮1245。如果管理员希望重置站点值,则管理员选择“重置值”命令按钮1250。如果管理员希望删除该站点,则管理员选择“删除站点”命令按钮1255。
当管理员准备好向服务器发布该站点时,管理员选择“发布”命令按钮1260。如果管理员希望将该站点与其任何子站点一起发布,则管理员选择“与子站点一起发布”命令按钮1265。
子站点框1270包括关于该站点的任何子站点的数据。子站点数据包括站点名1272和站点策略1278。为创建新的子站点,管理员可以选据“<新站点>”超链接1275,其将允许管理员去确定新的子站点。
机器框1280包括关于该站点所包括的工作站的数据。工作站数据包括工作站标识符1282、工作站的主机名1284、工作站类型1286、由工作站提供的角色1288、工作站的IP地址1290以及工作站描述1292。为向该站点添加新机器(工作站),管理员选择“<新机器>”超链接1295。
图13是管理员建立新用户所用屏幕的屏幕布局。屏幕布局1300包括文本框1305,其用于输入新用户的唯一标识符。该用户的全名被输入文本框1310。此外,对该用户的描述可以输入文本框1315。例如,可以把一个用户ID设定为一个通用标识符,如客人或出纳员,其能被某人使用,因而不必为这些不经常的或非全时的用户建立新的用户标识符。用于这类通用目的的用户标识符能用描述文本框字段1315做进一步描述。
在文本框1320中为该用户输入一个新的初始口令。这一新的初始口令通过把该口令再次输入文本框1325而由管理员进行确认。管理员使用列表框1330为该用户选择一个默认地区。在所示例子中,对于说美国英语的一用户,该地区被选为一美国地区。然而,如果该用户的第一语言是西班牙语或某种其他语言,则从列表框1330中提供的列表中选择适当的地区。
框1332由管理员用于选择与该用户对应的角色。默认角色1335包括与每个可用的角色对应的单选按钮。使用单选按钮,以便管理员为该用户只选择一个默认角色。选择列1340包括若干个与每个可用的角色对应的复选框。管理员选择与该用户承担的每个角色对应的复选框。名称列1345包括每个可用的角色的名称。在所示例子中,可用的角色包括管理员、支行经理、客人、信贷员以及出纳员。管理员通过选择列1340中的相应的复选框,所以选择一个或多个这样的角色。此外,管理员可以通过选择“<新角色>”超链接1350来建立新的角色。
当管理员已完成输入用户数据和向用户赋予角色时,管理员选择“创建用户”命令框1355以建立和存储用户数据和赋予的角色。如果管理员出错并希望重置这些值,可选择“重置值”命令按钮1360。
图14是管理员建立一个应用时所用屏幕的屏幕布局,该应用可作为一个或多个自含式桌面内的一个组件供使用。屏幕布局1400用于定义一个能被包括在自含式桌面中的新的应用。应用标识符文本框1405由管理员用于输入与被定义的应用对应的唯一的应用标识符。在图14中所示的例子中,被定义的应用的类型是“本机的”应用,换言之,该应用的可执行代码中至少有一部分是驻留在该客户机工作站上。
对正在被定义的应用的描述被输入描述文本框1410。图标属性框1415用于定义与图标对应的属性,该图标将出现在桌面上并由用户用于选择该应用。图标属性包括输入文本框1420的标题和输入文本框1425的图标文件名。
平台特性框1430包括每个受支持的操作系统平台的数据,该应用能从这些平台被调用。Win32框1435包括的数据用于从微软视窗操作系统平台调用和执行应用。该Win32数据包括用于在Win32环境中识别该应用可执行形式的路径和文件名。该路径和文件名被输入文本框1440。该应用所需任何参数都在参数文本框1445中被提供。如果需要的话,与该应用对应的工作目录被输入文本框1455。
平台特性框1430还包括用于OS/2操作系统平台的数据,用于这些数据的字段位于框1460。这些OS/2字段对应于上述Win32字段。这些包括路径和文件名文本框1465、参数文本框1470和工作目录文本框1475。类似地,在框1480中提供一组Linux字段,它们包括路径和文件名文本框1482、参数文本框1484和工作目录文本框1486。
当已经由管理员输入应用信息时,管理员能通过选择“创建应用”命令按钮来创建该应用。如果管理员出错,可通过选择“重置值”命令按钮1495来重新设置新的应用值。
图15是管理员建立自含式桌面时使用的屏幕的屏幕布局。屏幕布局1500包括各种字段,其用于定义自含式桌面的外观和功能。先前定义的桌面标识符显示在屏幕上。在所示例子中,桌面标识符是“bda-管理员”。自含式桌面的标题是由管理员输入文本框1505的。在所示例子中,该标题是“管理员”。对自含式桌面的描述被输入文本框1510。在所示例子中,输入的描述是“BDA管理员的桌面”。
管理员使用列表框1515选择该自含式桌面的启动方式。该启动方式表明从桌面启动一个组件所需要的鼠标器点击次数。在所示例子中,选择的启动方式是“2”(即双击)。图标属性被输入框1520中。管理员把最大可允许的和可显示的图标标题长度输入在适当的文本框中。
管理员把背景外观信息输入框1525。管理员为自含式桌面的背景提供颜色、图像文件和图像显示方式。例如,桌面背景数据可以包括该组织的名称和徽标。图标外观信息由管理员输入框1530。图标外观数据包括图标的文本颜色、用于该图标的字体、用于该图标的字号、用于该图标的字体风格、图标流、图标流的起始点以及图标文本的文本位置。
当管理员已完成建立自含式桌面时,管理员选择“提交改变”命令按钮1540以存储该桌面设置。如果管理员出错或希望重置这些值,则管理员选择“重置值”命令按钮1545。如果管理员希望删除自含式桌面定义,则管理员选择“删除桌面”命令按钮1550。
超链接1560用于添加、修改或删除从自含式桌面可得到的引用。这些可得到的引用包括应用1570、文件夹1580和工具条1590。在所示例子中,已包括的应用包括“acroread”、“calculator”和“browser”。文件夹包括一个应用文件夹和两个管理员文件夹。还包括一个工具条AdminToolbar(管理员工具条)。
图16是管理员管理工作站时所用屏幕的屏幕布局。屏幕布局1600由管理员用于管理在整个网络中使用的工作站或计算机系统。为每个工作站维护的数据包括列1610中列出的工作站标识符、列1620中列出的该工作站所属的站点、列1630中列出的赋予该工作站的主机(或服务器)、列1640中列出的该工作站实现的功能类型、列1650中列出的该工作站被允许实现的角色、列1660中列出的该工作站的IP地址以及列1670中列出的对该工作站的描述。
列1610中所示标识符对每个工作站是唯一的。在图16中所示例子中,这些标识符是与这些工作站对应的MAC地址。图16中所示站点为“根”站点、支行“A”或支行“B”。这些站点可以代表该组织内的物理的或逻辑的区域。主机名是该工作站所用服务器的名称,工作站实现的功能类型包括管理功能、服务器功能和客户机功能。以“A”结尾的类型用于管理功能,以“S”结尾的类型用于服务器功能,以“C”结尾的类型用于客户机功能。如从图16中可见,一些工作站实现多种功能类型。例如,列出的第一个工作站用作管理员和服务器两种功能。角色指出允许在该工作站上实现的功能。角色通常与客户机功能关联,所以不具有客户机类型的工作站没有被赋予的角色。已被赋予角色的工作站往往有多种角色。例如,列出的第三个工作站有允许在该工作站上实现的四个角色(出纳员、信贷员、支行经理和客人)。然而,所显示的第四和第五工作站只有一个角色被允许在该每个工作站上实现。IP地址是赋予工作站的网络地址。在一些环境中,该IP地址是静态地址,而在另一些环境中,该IP地址是动态赋予的。每个工作站的描述是可选项。但能帮助管理员更好地识别特定的工作站和每个工作站扮演的角色。
图17是流程图,显示为向服务器分发自含式桌面所采取的步骤。管理员桌面分发处理过程在步骤1700开始进行,于是选择供分发的第一个桌面(步骤1705)。在步骤1710,以桌面名和唯一签名(如一个CRC值)创建一个请求。所创建的桌面请求被发送给一个或多个服务器(步骤1715)。在判断步骤1720确定是否还有要分发的桌面。如果还有要分发的桌面,则判断1720分支到“是”分支1722,于是处理选择要分发的下一个桌面(步骤1725)并循环回去以创建请求和把请求发送给服务器。这一循环继续到再没有桌面要分发时为止,此时判断1720分支到“否”分支1728。
管理员接收由先前发送的桌面请求造成的服务器响应(步骤1730)。判断步骤1735根据该响应确定该桌面是否已存在于该服务器。如果在该服务器上尚未存在该桌面,则判断1735分支到“否”分支1738,于是把识别出的桌面以数据流形式发送给该服务器(步骤1740)。另一方面,如果在该服务器上已存在该桌面,则判断1735分支到“是”分支1742,跳过步骤1740。
判断步骤1745确定是否还有从服务器接收的对于桌面请求的响应。如果还有响应,则判断1745分支到“是”分支1746以循环回去处理这些响应。这一循环继续到再没有响应要处理为止,此时判断1745分支到“否”分支1748,于是管理员桌面分发处理过程在1750结束。
服务器桌面收集处理在步骤1755开始进行,于是该服务器接收由管理员发送的桌面分发请求(步骤1760)。将管理员请求中包括的该桌面的唯一标识符与在该服务器上现有的桌面数据1768进行比较(步骤1765)。判断步骤1770根据比较结果确定该服务器是否需要该桌面。如果不需要该桌面(即在该服务器上已存在该桌面),则判断1770分支到“否”分支1772,于是发送一个消息给管理员,指出该服务器已有该桌面(步骤1775),于是服务器处理过程在1795结束。
另一方面,如果该服务器尚没有该桌面,则判断1770分支到“是”分支1778,于是服务器请求该桌面(步骤1780)。服务器接收响应该请求的桌面数据流(步骤1785)。然后服务器由所接收到的数据流创建自含式桌面文件并把该桌面文件存储在桌面数据存储区1768中(步骤1790)。然后,服务器桌面收集处理过程在1798结束。
图18是流程图,显示为从服务器向客户机分发自含式桌面所采取的步骤。客户机桌面接收在步骤1800开始进行,于是该客户机向一服务器发送一个桌面列表请求(步骤1805)。该桌面列表请求包括该客户机的机器(工作站)标识符和该客户机的用户标识符。
服务器桌面分发处理过程在步骤1840开始进行,于是该服务器从客户机接收该桌面列表请求(步骤1845)。该服务器通过搜索用户角色数据存储1852,查询已赋予该用户的角色(步骤1850)。该服务器还通过搜索机器角色数据存储1858来查询已赋予该工作站的角色(步骤1855)。
服务器根据用户角色和机器角色之间的交集或重叠来检索桌面信息(步骤1860),并在桌面数据存储1862中找出与重叠的角色对应的桌面。检索出的桌面信息包括桌面标识符和桌面签名,如CRC,其用于唯一标识该桌面。一个用户可以有默认角色和与该角色对应的默认桌面。如果该用户有默认角色,则服务器确定这一默认角色(步骤1865)。
服务器创建一个响应串(步骤1870),其包含有效角色、桌面签名、默认桌面标识符(如果适用的话)以及默认角色(如果适用的话)。然后该服务器向该客户机返回该响应串(步骤1875)。
客户机从服务器接收桌面列表,其包括已赋予该用户和该工作站二者的角色以及任何默认角色和默认桌面信息(步骤1810)。客户机将该桌面列表中包括的桌面与已被高速缓存在客户机工作站上的桌面进行对比(步骤1815)。这样做使得客户机只需请求先前尚未传送到该客户机工作站并高速缓存在该工作站的易失或非易失存储区中的那些桌面。
该客户机通过识别尚未高速缓存在客户机工作站上的桌面或组件来确定是否需要从服务器接收额外的组件或桌面(判断1820)。如果该客户机确定不需要额外的桌面组件,则判断1820分支到“否”分支1832(跳过用于请求和检索额外桌面信息的步骤),于是客户机处理过程在1835结束。
另一方面,如果该客户机需要额外的组件或桌面,则判断1820分支到“是”分支1822,于是从服务器请求所需桌面(步骤1825)。这一请求由服务器在服务器步骤1885接收。该服务器以从桌面数据存储1862中检索请求的桌面信息并将其返回给客户机工作站来做出响应(步骤1890)。然后该服务器分发处理过程在1895结束。
回到客户机处理,在步骤1930该客户机接收和高速缓存所请求的桌面信息,并在步骤1835该客户机桌面接收处理过程结束。
图19是流程图,显示为创建定制的应用扩展而采取的步骤。定制的应用扩展允许第三方扩展先前存在的面向对象类,以修改服务器类对象的行为或属性,从而更好地服务于特定组织的需求。定制的应用扩展创建处理过程在步骤1900开始进行,于是在步骤1910提供一个实现一特定组件接口的客户机面向对象类。判断步骤1920确定是否要扩展服务器抽象类。如果不扩展该抽象类,则判断1920分支到“否”分支1925,于是默认服务器组件用作为该组件接口(步骤1930)。另一方面,如果要扩展该抽象类,则判断1920分支到“是”分支1935,于是在步骤1940提供扩展该服务器组件抽象类的服务器类。
判断步骤1950确定该定制的应用扩展是否需要其他资源。如果需要其他资源,则判断1950分支到“是”分支1955,于是在步骤1960提供由应用扩展使用的其他资源。其他资源可以包括该应用扩展使用的图像、性质文件以及其他的类文件。另一方面,如果不需要其他资源,则判断1950分支到“否”分支1965,跳过步骤1960。
客户机类、服务器类以及任何其他资源都被打包在Java归档(JAR)文件中。打包的定制的扩展存储在定制扩展库1980中。创建定制的应用扩展的过程在1995结束。
图20是流程图,显示一个应用扩展的生命周期。该应用扩展的生命周期在步骤2000开始。在应用扩展生命周期的第一阶段,该应用扩展使用一个无参数(no-arg)构造器(步骤2025)。该无参数构造器用于通过加载它的JAVA实现类并调用一个无参数构造器,来创建该应用扩展组件。在这一点,该应用扩展组件没有对客户机桌面的引用,而且不能与该桌面环境交互作用。在这一阶段,实例变量和默认设置被初始化。
在该应用扩展生命周期的下一阶段,该应用扩展进行初始化(步骤2050)。在此初始化阶段,在组件接口中定义与该应用扩展对应的被初始化的方法。还提供对组件配置项目、初始地区信息以及桌面的引用。优选地,在这一阶段桌面引用作为实例变量被保存。
在应用扩展生命周期的最后阶段,与该应用扩展对应的启动方法被调用(步骤2075)。该启动方法由桌面调用。例如,当与该应用扩展对应的图标被用户选定时,该启动方法便可以被调用,在这一阶段,该应用扩展可以使用桌面引用以及对其他桌面组件的引用。此外,该桌面扩展可以在这时启动线程和执行I/O操作。
图21A是方框图,显示由管理员向多个客户机分发组件和资源。管理员2100公布已经打包成各种桌面软件包2110的组件和资源库2105,其作法是把这些包传送给各服务器。
在图21A中所示例子中,有三个服务器接收来自管理员的桌面软件包。这些服务器包括服务器2120、服务器2140和服务器2160。每个服务器包括一个非易失存储区用于存储从管理员处接收的桌面软件包。服务器2120使用非易失存储区2125存储桌面软件包,服务器2140使用非易失存储区2145,服务器2160使用非易失存储区2165。在图17中描述的过程中,桌面软件包被从管理员分发到服务器。这些服务器用于向各客户机提供桌面软件包。
在图21A中所示例子中,每个服务器有两个客户机从中接收桌面软件包。客户机2130和2135从服务器2120接收桌面,客户机2150和2155从服务器2140接收桌面,而客户机2170和2175从服务器2160接收桌面。使用图18中描述的过程将桌面从服务器分发到客户机。以这种方式,用于各自含式桌面中的组件和资源通过该系统从管理员分发到服务器并最终分发到客户机。
图21B是方框图,显示在管理员丢失数据之后由该管理员从服务器中恢复组件和资源。当发生灾难性事件,如计算机崩溃、火灾或洪水时,管理员可能会没有留下用于创建各种自含式桌面的组件和资源。为了恢复这些文件,管理员2100从各服务器请求桌面软件包,包括构成这些桌面软件包的组件。使用图21A中描述的拓扑结构,管理员从服务器2120、2140及2160请求桌面软件包。这些服务器分别从存储区2125、2145及2165中检索包括桌面组件的自含式桌面软件包。该桌面信息从各服务器传回到管理员。管理员把收到的自含式桌面软件包存储在被恢复的包库2180中。在自含式桌面中包括的组件和资源被从这些桌面文件中提取出来并存储在被恢复的组件和资源库2190。以这种方式,管理员能恢复和重新存储已发布给各服务器的资源和组件。进行这种恢复无需管理员制作单独的组件和资源的备用拷贝。因为组件和资源包括唯一标识符,所以组件和资源的多种版本或级别也能被恢复。显示管理员恢复桌面数据时所采取步骤的流程图示于图22。
图22是流程图,显示管理员分发自含式桌面和在其后的灾难性事件之后从服务器中恢复自含式桌面时采取的步骤。管理员处理过程在步骤2200开始,于是管理员创建将用于自含式桌面中的组件和资源(步骤2205)。这些组件和资源存储在一个库中,该库存储在非易失存储区2210组件和资源被打包(步骤2215)成各种自含式桌面,供各种用户根据各自的角色使用。自含式桌面存储在自含式桌面库2225中。这些自含式桌面被分发到各服务器(步骤2220)。管理员分发处理过程在步骤2230结束。在图17中能找到关于自含式桌面分发的进一步详细描述。
服务器接收自含式桌面在步骤2235开始进行,于是服务器接收自含式桌面软件包(步骤2240)并把收到的包存储在非易失存储区2245。然后服务器把自含式桌面分发到有需要的客户机(步骤2250)。在图18中能找到关于向客户机分发自含式桌面的进一步详细描述。
在某一时候,一个灾害性事件发生,破坏了管理员使用的计算机系统和存储设备中的包、资源和组件(步骤2255)。然后,管理员使用在步骤2260开始进行的恢复过程恢复该自含式桌面信息。管理员识别出已遭破坏并不再存储在管理员计算机系统上的那些唯一的包(步骤2265)。在步骤2270向各服务器请求这些识别出的包。
服务器接收来自管理员的桌面软件包请求(步骤2275)。所请求的桌面软件包被从服务器的非易失存储区2245中检索出来并传送到管理员的计算机系统(步骤2280),于是服务器恢复处理过程在步骤2295结束。
管理员计算机系统接收由服务器发送的自含式桌面软件包并把收到的桌面软件包存储在软件包库2225中(步骤2285)。自含式桌面软件包被拆包,并且自含式桌面软件包中包括的组件和资源被用于重新填充组件和资源库2210(步骤2290)。在此时,先前被管理员分发的所有软件包、组件和资源都得以恢复和存储在适当的库中。于是,管理员恢复处理过程在步骤2298结束。
图23是流程图,显示一个客户机根据该客户机在组织中的一个或多个角色接收和显示桌面时采取的步骤。处理过程在步骤2300开始进行,于是客户机从服务器接收第一个桌面(步骤2305)。所收到的桌面存储在该客户机的本地存储2315,该存储位于一个易失或非易失存储区(步骤2310)中。
判断步骤2320确定所收到的桌面是否是该客户机的默认桌面。如果所收到的桌面是默认桌面,则判断2320分支到“是”分支2325,于是所收到的桌面被显示在客户机的显示设备上(步骤2330)。另一方面,如果所收到的桌面不是默认桌面,则判断2320分支到“否”分支2335,跳过步骤2330。
判断步骤2340确定是否还有要由客户端机器从服务器接收的桌面。如果还有桌面要接收,则判断2340分支到“是”分支2345,于是处理过程循环回去接收下一个桌面(步骤2350),并确定这下一个桌面是否是默认桌面。这一循环继续到所有需要的桌面都已从服务器接收到为止,这时判断2340分支到“否”分支2355。
判断步骤2380确定是否有不只一个桌面可由该客户机访问。如果有不只一个桌面可被访问,则判断2380分支到“是”分支2385,于是在可由该客户机访问的弹出式选择窗口内插入可用桌面描述作为项目(步骤2390)。例如,用户能使用指点设备(如鼠标器)在桌面区中“右”击,这将使该弹出菜单显示出来。于是用户能从弹出菜单中提供的列表中选择所希望的桌面(桌面屏幕和弹出菜单的一个例子见图27)。例如,如果一个支行经理还有被赋予的信贷员的角色,则该支行经理能从弹出菜单中选择信贷员桌面。在选择信贷员桌面之后,用于信贷员的桌面组件将被显示出来并可从桌面区访问。另一方面,如果只有一个桌面可由该客户机访问,则判断2380分支到“否”分支2392,跳过步骤2390。然后显示桌面处理过程在步骤2395结束。
图24是流程图,显示一个服务器根据用户的角色和工作的角色向一个客户机提供桌面信息时采取的步骤。处理过程在步骤2400开始进行,于是服务器接收来自客户机2410的桌面请求(步骤2405)。该请求包括该客户机的用户ID、口令以及该客户机的工作站的MAC地址。
服务器从工作站表2420中查询该客户机的MAC地址(步骤2415),该工作站表包括允许在各工作站上实现的角色。在所示例子中,具有MAC地址“123”的工作站被允许实现出纳员和信贷员两种功能,而具有MAC地址“456”的工作站只被允许实现支行经理功能。
判断步骤2425确定在工作站表中是否发现了该客户机的MAC地址。如果没有发现该MAC地址,则判断2425分支到“否”分支2428,于是判断步骤2430确定该系统是否需要客户机工作站注册。如果需要工作站注册,则判断2430分支到“是”分支2432,于是向客户机返回一个错误(步骤2435),表明该客户机未注册,于是服务器处理过程在步骤2440结束。另一方面,如果不需要工作站注册,则判断2430分支到“否”分支2442,于是处理过程继续。回到判断2425,如果该客户机的MAC地址在工作站表中被发现,则判断2425分支到“是”分支2445,于是处理过程继续。
在步骤2450,已经赋予该用户标识符(用户ID)的第一个桌面从用户桌面表2455中检索出来。在所示例子中,用户ID“Able”已被赋予“出纳员”角色,而用户ID“Jones”已被赋予“出纳员”、“信贷员”和“支行经理”角色。判断2460确定检索出的赋予该用户的桌面是否被允许在该用户使用的工作站上使用。如果该桌面被允许在该工作站上使用,则判断2460分支到“是”分支2465,于是该桌面被发送到该客户机(步骤2470)。另一方面,如果检索到的桌面不被允许在该工作站上使用,则判断2460分支到“否”分支2472,跳过步骤2470。
判断步骤2475确定是否还有已赋予该用户的角色或桌面。如果还有已赋予该用户的角色,则判断2475分支到“是”分支2480,于是选择赋予该用户的下一个桌面(步骤2485)并且处理过程循环回去以确定这下一个桌面是否应被发送给该客户机。这一循环继续到赋予该用户的所有桌面都被处理了为止,此时判断2475分支到“否”分支2490,于是服务器处理过程在2495结束。
图25是方框图,显示由一服务器进行的处理过程以及该服务器、客户机和管理员之间的交互作用。服务器2500通过从管理员接收角色赋予来实现角色识别功能2570。角色赋予包括已赋予该用户的角色以及已赋予整个网络上各工作站的角色。工作站角色存储在工作站角色数据存储2560中。用户角色存储在用户角色数据存储2555中。
服务器2500还通过从管理员2575接收桌面信息来实现桌面收集处理2580。桌面信息存储在桌面定义数据存储2590中。桌面信息包括自含式桌面,这些自含式桌面又包括供客户机2525使用的组件和资源。
服务器2500从客户机2525接收验证信息,如用户ID和口令,其用于验证该用户机。服务器2500以位于验证数据存储2520中的验证数据来核查该客户机的验证信息,以此来执行验证处理过程2510。一旦该客户机已被验证,该客户机便获得对存储在服务器2500上的客户机数据存储区2540的访问权。通过执行主目录访问过程2530,服务器提供对客户机数据存储的访问权。以这种方式,一个用户能访问他或她的数据,不管他或她在使用哪个工作站。
服务器2500进行桌面分发过程2550,以确定哪些自含式桌面要发送给客户机2525。桌面分发过程2550是通过把存储在用户角色数据存储2555中的用户角色与存储在工作站角色数据存储2560中的工作站角色加以比较来实现的。赋予该用户和该工作站二者的桌面或角色被分发给该客户机。服务器2500从桌面数据存储2590中检索桌面信息并将该桌面信息发送给客户机2525。
图26是流程图,显示一个客户机在初始化和显示自含式桌面时采取的步骤。客户机2600通过把相应信息发送给服务器来执行验证请求、主目录请求和口令更新。客户机2600使用底层操作系统平台2610来执行本机操作。JSLLIB2680是一个本机库,它包括用于执行本机操作的本机命令和程序。
外壳2605是一个基于Java的应用,它适于在该系统中使用的任何操作系统平台(例如Windows XPTM、OS/2TM或LinuxTM)上运行。在判断步骤2620,该外壳确定该客户机登录是通过服务器远程进行的还是在本地进行的。如果该登录是远程进行的,则判断2620分支到“是”分支2622,于是该客户机从服务器接收桌面(步骤2625)。在一个实施例中,首先接收一个桌面列表,然后从该列表中检索单个桌面,从而接收这些桌面。
桌面的列表或映像被高速缓存在位于客户端机器上的本地存储(步骤2630)。所收到的桌面也高速缓存在本地存储(步骤2635)。回到判断2620,如果桌面不是被远程检索的,则判断2620分支到“否”分支2638,跳过步骤2625、2630和2635。
已赋予该用户和该工作站二者的桌面从本地存储中检索出来(步骤2640)。本地存储用于存储用户桌面映像2660和桌面2670。桌面是自含式软件包,其包括为显示和执行该桌面所需要的桌面组件和资源。使用检索出的桌面信息创建桌面对象(步骤2645)。使用桌面类加载器2650创建桌面对象。国家语言翻译等资源从桌面信息中加载(步骤2655)。桌面类加载器2650还用于加载所需要的资源。
在此时,赋予工作站中该用户的桌面已被检索出来,并使该用户可以在外壳2605内使用它们。桌面对象和资源已经从自含式桌面中提取出来,并已经使该用户可以通过外壳2605使用它们。
图27是在一个客户机工作站上显示的一个桌面例子以及该客户机可用的其他自含式桌面的弹出式菜单的屏幕布局。桌面屏幕布局2700包括若干对象2750。这些对象2750包括可从该桌面访问的桌面组件。每个桌面组件对应于一个图形图像,如一个图标,它可由用户使用指点设备(如鼠标器)选择。
弹出式菜单2710包括的两个项目允许用户或者改变该桌面或者显示该外壳的版本。选择“改变桌面”项目导致显示桌面选择菜单2720。用户通过在所希望的桌面旁边的框中放入一个复选标记来选择所希望的桌面。在所示例子中,如在桌面选择菜单2720中所示复选标记证实的那样,“管理员”桌面被显示在该客户机的显示器上。如果用户希望改变桌面,例如希望把它改为支行经理桌面,用户只要使用指点设备(如鼠标器)并把复选标记放到“支行经理”菜单项旁边的框中。
组件2750可以根据已选择的桌面而改变。例如,因为已选择了“管理员”桌面,所以显示出“支行桌面管理员”桌面组件。然而,如果选择另一个桌面,如“出纳员”桌面,则“支行桌面管理员”将不再出现而且将不能从该显示访问。以这种方式,用于所选定角色的组件被显示并可被访问,而由其他不同角色使用的组件则不被显示和不可被访问。再有,每个由多个角色使用的组件都可由对应于这些角色的各桌面访问。
图28A是由客户机外壳程序在显示和管理桌面时使用的目录的层次结构图。外壳主目录2800包括若干子目录,供客户机用于实现桌面功能。在一个实施例中,外壳主目录和它的子目录存储在可由该客户机访问的服务器上。在另一实施例中,该外壳主目录和它的子目录存储在该客户机本地的非易失存储设备上。本机库2805是一个子目录,其用于存储用于与客户机操作系统平台接口的程序。在一个实施例中,本机库信息存储在Java归档(JAR)文件中。特性子目录2810是一个子目录,其用于存储外壳程序使用的特性。这些特性可以包括由外壳程序使用的显示属性和其他配置项目。
桌面子目录2815是存储自含式桌面文件的目录。在一个实施例中,自含式桌面文件被打包成Java归档(JAR)文件。以这种方式,由特定桌面使用的全部组件和资源被打包和包括在一个自含式桌面JAR文件中。日志子目录2820用于存储基于客户机的日志,该日志详细记录该客户机采取的行动。“Conf”子目录2825用于存储外壳应用所使用的初始化信息。“Bin”子目录2830用于存储启动该外壳应用的可执行程序,如程序文件。
图28B是外壳配置文件中包括的各部分的层次结构图。该外壳配置文件包括若干部分。每个部分包括关于该外壳的一个特定方面的信息。在一个实施例中,该外壳配置文件是一个包括若干部分的XML文件。这些部分包括地区部分2840,其包括关于该外壳应用所使用的地区的信息,如国家语言翻译。组件部分2845包括关于该自含式桌面中包括的组件的信息。组件包括当用户选择一个适当图标或其他命令时可从该桌面访问的应用和其他程序。文件夹部分2850包括关于可从该桌面访问的各种文件夹的信息。工具条部分2855包括关于显示出的并可从该桌面访问的各种工具条的信息。桌面部分2860包括关于桌面的信息,如外观数据和策略信息。
图28C是在自含式桌面文件中包括的对象的层次结构图。在一个实施例中,自含式桌面是一个Java归档(JAR)文件。自含式桌面文件2865包括若干组件。这些组件包括清单(manifest)2870,其详细列出该自含式桌面文件中包括的对象。这些组件还包括一个外壳文档类型定义(DTD)对象2875。该外壳DTD对象说明使用何种属性来描述外壳XML文档中的内容、每个标记的允许位置以及哪些标记能出现在其他标记中。类对象2880包括由该桌面使用的Java类。资源2885包括由桌面使用的资源信息,如国家语言翻译信息。JAR对象2890包括打包到又一些JAR文件中的由该桌面需要的补充对象。XML对象2895包括用于描述自含式桌面的XML文档。
图29是流程图,显示初始化客户机工作站以便使用自含式桌面所采取的步骤。处理过程于步骤2900开始进行,于是用户2920被提示输入用户ID和口令(步骤2910)。从用户那里收到用户ID和口令(步骤2925)。当验证后,由JSL将虚拟机(如Java虚拟机(JVM))加载到客户机操作系统平台上(步骤2930)。该虚拟机被设计成执行平台中性代码,如Java应用。以这种方式,能以不依赖于平台的语言如Java写成相同的桌面,这些桌面能在已经实现所需虚拟机的多种平台上执行。
在步骤2940,一个基于Java的锁定(lockdown)外壳被调用,以提供桌面环境和防止用户访问正由客户端机器使用的底层操作系统。在步骤2945,从服务器请求赋予工作站和用户二者的桌面。服务器2950接收请求并通过向客户机发送自含式桌面来响应请求。该客户机从服务器接收响应(步骤2955)。该响应可能是一个错误或一个桌面列表。
判断步骤2960确定是否从服务器接收了一个错误。如果收到了一个错误,则判断2960分支到“是”分支2962,于是在客户机的显示设备上显示错误信息(步骤2965),于是处理过程在步骤2995结束。另一方面,如果没有收到错误,则判断2960分支到“否”分支2968,于是判断步骤2970确定是否有任何桌面要显示在客户机的显示设备上。如果没有任何桌面要显示在客户机显示设备上,则判断2970分支到“是”分支2972,用户被告知没有任何桌面要显示(步骤2975),于是处理过程在步骤2995结束。另一方面,如果有赋予该用户和该工作站的桌面,则判断2970分支到“否”分支2978,于是这些桌面被显示在客户机的显示设备上(预先规定的过程2980),处理过程在步骤2995结束。
图30是流程图,显示客户机初始化过程中采取的步骤。处理过程在步骤3000开始进行,于是执行本机登录代码(步骤3005)。从该用户那里收集登录数据并发送给服务器供处理(步骤3010)。在步骤3015接收由服务器发回给该客户机的响应。
判断步骤3020确定该用户是否已被验证。如果该用户没有被验证,则判断3020分支到“否”分支3025。于是处理过程在步骤3030结束。另一方面,如果该用户已被验证,则判断3020分支到“是”分支3035。继续进行初始化。
在步骤3040,在客户机工作站上调用虚拟机应用,如Java虚拟机。在步骤3045,启动一个锁定过程以锁定外壳和防止用户不通过使用外壳环境而使用下层操作系统。在步骤3050向服务器查询已赋予该用户/工作站的桌面。该客户机接收一个可用桌面列表并将所列桌面信息与已经高速缓存在该客户机工作站上的桌面数据进行比较(步骤3060)。包括在列表中但尚未高速缓存在该客户机工作站上的桌面被从服务器检索出来并高速缓存在该客户机工作站上(步骤3070)。所收到的桌面被存储在客户机可访问的高速缓存3075中。在步骤3080从可用桌面列表中选出一个初始的或默认的桌面。于是构成该默认桌面的组件显示在该客户机显示设备上,而其他可用桌面则通过弹出式窗口提供给用户(预先规定的过程3090,关于桌面显示的例子,见图27)。然后,客户机初始化处理过程在步骤3095结束。
图31是流程图,显示本机操作系统登录过程中采取的步骤。本机操作系统登录处理过程在步骤3100开始进行,于是一个可用网络域列表显示给用户(步骤3110)。用户从该列表中选出一个域(步骤3120)。在判断步骤3130确定是在本地还是在远程验证该客户机。如果是在本地验证该客户机,则判断3130分支到“是”分支3135,于是在本地机器上验证该用户(步骤3140)。另一方面,如果该用户不是在本地验证,则判断3130分支到“否”分支3145,于是在与该客户机相连的服务器上验证该用户(步骤3150)。
判断步骤3160确定该客户机是否已被验证。如果该用户未被验证,则判断3160分支到“否”分支3165,于是在客户机显示设备上显示一个错误(步骤3170),处理过程在3195结束。另一方面,如果该用户已被验证,则判断3160分支到“是”分支3175,于是调用Java外壳启动器(预先规定的过程3180,关于处理过程详情,见图32),处理过程在3195结束。
图32是流程图,显示在调用Java外壳启动器时采取的步骤。Java外壳启动器的执行开始于步骤3200,于是设定一个类路径或目录(步骤3210)。在步骤3220,Java虚拟机(JVM)被加载到客户机计算设备上。
判断步骤3230确定是远程还是本地启动Java外壳应用。如果是在本地启动Java外壳应用,则判断3230分支到“本地”分支3235,于是以用户的用户ID作为参数启动Java外壳应用(步骤3240)。另一方面,如果是远程启动Java外壳应用,则判断3230分支到“远程”分支3245,于是通过提供服务器主机名、用户ID以及平台ID作为参数远程启动Java外壳应用(步骤3250)。
在已经启动Java外壳应用之后,JSL枚举OS窗口列表以找出与Java外壳对应的窗口(步骤3260)。将该Java外壳窗口“钉”在操作系统窗口Z顺序列表的底部,从而使该Java外壳窗口总是保留在前景之中(步骤3270)。将该Java外壳窗口最大化,以充满显示屏,而且从Java外壳窗口中去掉所有的幅面控件,如最小化和大小复原按钮(步骤3280)。以这种方式,该外壳应用作为前景页出现在显示器上,于是防止了用户使用由本机操作系统平台提供的外壳页。Java外壳启动处理过程在步骤3295结束。
图33A是显示智能图形组件例子的屏幕布局。实际包容器(container)类型对应于实现结构,如C++和Java中的类,或C中的结构。这个实现结构将称作“类类型”(classtype)。智能组件试图在运行时确定它的父组件(例如包容器)的类类型。如果识别出的类类型是该组件认识的类型,则该组件根据所识别出的类类型修改它的行为和外观。行为和外观修改可以以编程方式纳入该智能组件或者从一个配置文件中读取。如果父组件的类类型未被认出,则该组件可以被编程为提升它的父组件的层次,直至找到一个认识的包容器为止。以这种方式,该组件可能被放在一个未知类类型的包容器中,但是如果该包容器本身是在另一个已知类类型的包容器内,则该组件能如同它已被直接放在该已知的包容器类类型中一样地配置它自己。
该智能组件的外观和行为取决于它的父包容器的类类型。例如,如果一个智能图标的父类类型是桌面,则它将显示文本描述。然而,如果它的父类类别是一个工具条,则这同样的智能图标将不显示该文本描述。再有,取决于父包容器的类型,智能图标的行为可能不同。例如,如果该图标被放在一个工具条中,则它可能被编程为当用户把鼠标器置于其上时在它本身的周围画上一个边框。然而,如果该同一图标被放在桌面上,则它可能被编程为当指针在它上面通过时并不显示一个边框。此外,取决于智能图标所属于的包容器的类型,它可能被编程为启动时执行与该组件关联的不同代码。
屏幕图像3300包括时钟形式的一智能图形组件的两个例子。时钟3305是已放在工具条包容器中的组件。时钟3330是这同一组件,但这次该时钟已放在桌面包容器中。该对象的外观和行为根据该对象所属于的父对象或包容器的类型而改变。在所示例子中,时钟3305是作为数字时间显示的,因为在其父工具条包容器中的可用空间较小。相反,时钟3330显示一个模拟时间,因为在桌面包容器中有较大的可用空间。此外,时钟3330还在模拟时钟图像下方显示附加信息,如数字时间和日期。再有,时钟3330在该对象下方显示该对象名称(即“时钟”)。
当用户选择位于工具条中的时钟3305时,弹出窗口3320被显示出来。弹出窗口3320显示周的第几日、日期,并具有菜单项以调节时间/日期和设置通知。
图33B是显示智能图形组件第二个实例的屏幕布局。屏幕图像3350类似于图33A中所示屏幕图像,然而,在图33B中已选择时钟3330和显示弹出菜单3390。图33B中显示的弹出式菜单的行为不同于图33A中所示的为相同时钟组件显示出的弹出式菜单的行为。具体而言,在图33B中,用户具有若干显示选项,如是否应与模拟时钟一起显示数字时钟、本周第几日以及显示日期。之所以可以得到这些附加选项,是因为与在工具条包容器中相比,在桌面包容器中,为显示图标可以使用较大的空间。
图34是显示各种桌面对象的层次结构图。桌面对象3400是在该层次结构图的顶部,并包括组件对象3410和包容器对象3470。组件对象3410包括可视组件3420和不可视组件3440二种。可视组件对象包括图标3425、文件夹3430和工具条3435。非可视组件对象包括应用扩展代码3445和应用定义3450。
如名称意味的那样,包容器对象3470包括那些能包括或容纳其他对象的对象。包容器对象包括文件夹3480和工具条3490。可视组件(如图标)所以被包括在包容器对象中。
图35是流程图,显示初始化智能图形组件时采取的步骤。智能图形组件初始化处理过程在步骤3500开始进行,于是为该组件选择一个面向对象的父对象(步骤3510)。在步骤3520检索出选定父对象的面向对象类类型。判断步骤3525确定检索出的类类型是否是认识的类类型,如文件夹或工具条。如果检索出的类类型是不认识的,则判断3525分支到“否”分支3545,于是在判断步骤3550确定在该对象层次结构中是否还有父对象。如果在该对象层次结构中还有父对象,则选择前一次选定的对象的父对象(即前一个父对象的父对象,或者说本对象的祖父对籼,并且处理过程返回以确定这新选定的父对象是否是认识的类类型。这一循环继续到或者找到了一个认识的类类型或者在该对象层次结构中再没有父对象为止。如果找到了认识的类类型,则判断分支3525分支到“是”分支3530,于是选定认识的类类型(步骤3540)。另一方面,如果在该对象层次结构中再没有父对象,则判断3550分支到“否”分支3565,于是为该对象选择一个默认的类类型(步骤3570)。
在步骤3575检索出与选定类类型相应的组件外观数据,如图标大小以及其他显示特性,以及对象行为特性。例如,如果检索出的类类型是工具条,则图标大小和显示特性将基于在工具条中显示的图标可得到的较小区域。然而,如果检索出的类类型是桌面,则图标大小和显示特性将基于在桌面中可得到的较大区域。
使用检索出的与类类型相应的外观数据,将该组件显示出来,该系统等待该组件被调用(步骤3585,即直到由用户选择该组件)。当该组件被调用时,使用与该类类型相应的行为属性执行该组件(步骤3590)。
图36是流程图,显示在处理智能图形组件的显示属性时采取的步骤。智能桌面处理过程在步骤3600开始进行,于是判断步骤3605确定该类类型是否是工具条,如果该类类型是工具条,则判断3605分支到“是”分支3610,于是检索出该组件的工具条图标并显示在工具条中(步骤3615),在工具条中的该图标周围画出边框(步骤3620),处理过程在步骤3625结束。
如果类类型不是工具条,则判断3605分支到“否”分支3630,于是在判断步骤3635确定该类类型是否是文件夹。如果类类型是文件夹,则判断3535分支到“是”分支3640,于是该组件的文件夹图标被检索出来并显示在该文件夹中(步骤3645),在该图标下方显示出一个简短的智能组件描述(步骤3650),处理过程在步骤3655结束。
如果该类类型不是工具条或文件夹,则判断3635分支到“否”分支3660,于是在判断步骤3665确定该类类型是否是桌面。如果该类类型是桌面,则判断3665分支到“是”分支3668,于是检索出较大的图标并显示在桌面上(步骤3670),并在该图标下显示较长的组件描述(步骤3675),然后处理过程在步骤3680结束。
如果类类型不是工具条、文件夹或桌面,则判断3665分支到“否”分支3682,于是检索出默认图标并显示出来(步骤3685),并在步骤3690检索同其他默认显示特性并应用于该图标,处理过程在3695结束。
图37是流程图,显示在处理智能图形组件的行为属性时采取的步骤。智能桌面处过程在步骤3700开始进行,于是判断步骤3705确定所调用的组件是否有其类类型为工具条的父对象。如果所调用的组件有工具条父类类型,则判断3705分支到“是”分支3710,于是检索出该组件的工具条行为(步骤3715)并执行检索出的工具条行为(步骤3720),处理过程在3725结束。
如果所调用的组件没有其类类型为工具条的父对象,则判断3705分支到“否”分支3730,于是判断步骤3735确定所调用的组件是否有其类类型为文件夹的父对象。如果所调用的组件有文件夹父类类型,则判断3735分支到“是”分支3740,于是检索出该组件的文夹行为(步骤3745)并执行(步骤3750),然后处理过程在3755结束。
如果所调用的组件没有任何其类类型为工具条或文件夹的父对象,则判断3735分支到“否”分支3760,于是判断步骤3765确定所调用的组件是否有其类类型为桌面的父对象。如果所调用的组件有桌面父类类型,则判断3765分支到“是”分支3768,于是检索出该组件的桌面行为(步骤3770)并执行(步骤3775),然后处理过程在3780结束。
如果所调用的组件没有其父类类型为工具条、文件夹或桌面的父对象,则判断3765分支到“否”分支3782,于是检索出该组件的默认行为(步骤3785)并执行(步骤3790),然后处理过程在3795结束。
图38显示信息处理系统3801,其是能实现这里所述操作的计算机系统的一个简化例子。计算机系统3801包括处理器3800,其与主机总线3805连接。二级(L2)高速缓存3810也与主机总线3805连接。主机-PCI桥3815与主存储器3820连接,包括高速缓冲存储器和主存储器控制功能,并提供总线控制以处理PCI总线3825、处理器3800、L2高速缓存3810、主存储器3820以及主机总线3805之间的传送。PCI总线3825提供一个接口,其用于多种设备,例如包括LAN卡3830。PCI-ISA桥3825提供总线控制以处理PCI总线3825和ISA总线3840之间的传送、通用串行总线(USB)功能3845、IDE设备功能3850、电源管理功能3855,还能包括未画出的其他功能部件,如实时钟(RTC)、DMA控制、中断支持以及系统管理总线支持。外围设备和输入/输出(I/O)设备能被连接到各种接口3860,如连接于ISA总线3840的并行接口3862、串行接口3864、红外(IR)接口3866、键盘接口3868、鼠标接口3870、固定盘(HDD)3872。或者,可由连接于ISA总线3840的超级I/O控制器(未画出)接纳许多I/O设备。
BIOS 3880与ISA总线3840连接,并包含为各种低级系统功能和系统自举功能所必须的处理器可执行代码。BIOS 3880能存储在任何计算机可读介质中,包括磁存储介质、光存储介质、闪速存储器、随机存取存储器、只读存储器以及传送对指令进行编码的信号(例如来自网络的信号)的通信介质。为了使计算机系统3801连接到另一计算机系统以通过网络复制文件,LAN卡3830连接于PCI总线3825和PCI-ISA桥3835。类似地,为使用电话线连接将计算机系统3801连接到ISP以与因特网相连,调制解调器3875被连接到串行端口3864和PCI-ISA桥3835。
尽管图38中描述的计算机系统能执行这里描述的发明,但这个计算机系统只是计算机系统的一个例子。本领域技术人员将会理解,许多其他计算机系统设计能实现这里描述的发明。
本发明的优选实施例之一是一个应用,即在一个代码模块中的一组指令(程序代码),该组指令可以驻留在例如该计算机的随机存取存储器中。在计算机需要之前,该组指令可以存储在另一计算机存储器,例如一硬盘驱动器上,或在可卸存储器,如光盘(最终用于CD-ROM)或软盘(最终用于软盘驱动器)中,或经由因特网或其他计算机网络下载。这样,本发明可以实现为计算机程序产品供在计算机中使用。此外,尽管所描述的各种方法能方便地在由软件有选择地启动和重新配置的通用计算机系统中实现,但本领域普通技术人员还会理解,这些方法能在硬件、固件中或为实现所要求的方法步骤而构造的更专用设备中实现。
尽管已经显示和描述了本发明的特定实施例,但对本领域技术人员而言,基于这里的描述,显然能做出各种改变和修改而不脱离本发明及其更广方面,所以,所附权利要求将把所有处在本发明真正精神和范围的这些改变和修改包括在其范围内。再有,应该理解,本发明只由所附权利要求限定。本领域技术人员将会理解,如果意欲给出所引入的权利要求要素的特定个数,则在权利要求中将明确说明这种意图,在没有这样的说明的情况下,便不存在这种限定。为帮助理解,举一个非限定性实例,下面所附权利要求包含使用引导短语“至少一个”和“一个或多个”以引入权利要求要素。然而,这些短语的使用不应被解释为这意味着由不定冠词“a”(一、一个)或“an”(一、一个)引入一个权利要求要素便把含有这样引入的权利要求要素的任何特定权利要求限定于只含有一个这样的要素的发明,即使当同一权利要求包括引导短语“一个或多个”或“至少一个”以及不定冠词“a”或“an”时也是如此;在权利要求中使用定冠词时这一说法也同样成立。
权利要求
1.一种管理自含式桌面文件的方法,其中每个所述桌面文件包括一个或多个桌面组件,所述方法包括选择要包括在该自含式桌面文件中的一个或多个桌面组件,其中至少有一个所述桌面组件适合于从一桌面外壳应用启动;把所述选定的组件打包到该自含式桌面文件中;以及把打包后的该自含式桌面文件存储到一桌面文件库中,其中每个所述桌面文件适合于该被传输到客户机计算机系统中。
2.如权利要求1所述的方法,其中至少一个桌面组件是从下列一组组件中选出的图标、图像、应用扩展、屏幕外观、国家语言翻译、客户机配置文件以及服务器配置文件。
3.如权利要求1所述的方法,进一步包括把每个所述桌面文件与用户要实现的一个或多个角色关联起来;接收来自请求者的桌面请求,该桌面请求包括与该请求者对应的用户标识符;将该用户标识符与先前存储的用户角色加以比较;识别出与该请求者对应的用户角色;选择与识别出的用户角色对应的一个或多个桌面文件;以及把选定的桌面文件发送给该请求者。
4.如权利要求1所述的方法,进一步包括对该自含式桌面文件赋予唯一的桌面标识符。
5.如权利要求1所述的方法,其中所述打包进一步包括把桌面组件存储在Java JAR文件中。
6.如权利要求1所述的方法,进一步包括将该自含式桌面文件发布到一个或多个服务器计算机上,其中至少一个所述服务器计算机可由客户机计算机系统访问。
7.如权利要求1中所述的方法,进一步包括从多个站点中选择一个父站点;以及从该选定站点继承一个或多个桌面文件,其中每个桌面文件对应于在该站点的用户要实现的一个不同角色。
8.如权利要求7所述的方法,进一步包括创建与该父站点关联的一个子站点;修改该父站点的一个或多个属性;存储该子站点与父站点的这种关联;以及向一个或多个服务器计算机发布桌面文件,这些桌面文件对应于既在该父站点又在该子站点的用户实现的角色。
9.如权利要求1所述的方法,进一步包括创建一个配置文件,其详细描述该自含式桌面文件中包括的组件;以及把该配置文件存储在非易失存储设备上。
10.如权利要求1所述的方法,其中的桌面外壳适合于在多个操作系统上运行。
11.一种信息处理系统,包含一个或多个处理器;可由这些处理器访问的存储器区域;可由这些处理器访问的非易失存储设备;可由这些存储器访问的网络接口,用于将该信息处理系统与计算机网络连接;用于管理自含式桌面文件的文件管理工具,该文件管理工具包括用于选择要包括在该自含式桌面文件中的一个或多个桌面组件的装置,其中至少有一个桌面组件适合于从一个桌面外壳应用中启动;用于把所述选定的组件打包到该自含式桌面文件中的装置;以及用于把所述打包后的自含式桌面文件存储到桌面文件库中的装置,该桌面文件库存储在非易失存储设备上,其中每个桌面文件适合于被传输到客户机计算机系统中。
12.如权利要求11所述的信息处理系统,其中至少一个桌面组件是从下列一组组件中选出的图标、图像、应用扩展、屏幕外观、国家语言翻译、客户机配置文件以及服务器配置文件。
13.如权利要求11所述的信息处理系统,进一步包括用于把每个所述桌面文件与用户要实现的一个或多个角色关联起来的装置;用于在所述计算机网络上接收来自请求者的桌面请求的装置,该桌面请求包括与该请求者对应的用户标识符;用于将该用户标识符与先前存储的用户角色加以比较的装置;用于识别出与该请求者对应的用户角色的装置;用于选择与所述识别出的用户角色对应的一个或多个桌面文件的装置;以及用于通过计算机网络把所述选定的桌面文件发送给该请求者的装置。
14.如权利要求11所述的信息处理系统,进一步包括用于对该自含式桌面文件赋予唯一的桌面标识符的装置。
15.如权利要求11所述的信息处理系统,其中用于打包的装置进一步包括用于把所述桌面组件存储Java JAR文件中的装置,该JavaJAR文件存储在所述非易失存储设备上。
16.如权利要求11所述的信息处理系统,进一步包括用于将所述自含式桌面文件通过所述计算机网络发布到一个或多个服务器计算机上的装置,其中至少一个所述服务器计算机可由客户机计算机系统通过所述计算机网络访问。
17.如权利要求11所述的信息处理系统,进一步包括用于从多个站点中选择一个父站点的装置;以及用于从该选定站点继承一个或多个桌面文件的装置,其中每个桌面文件对应于在该站点的用户要实现的一个不同角色。
18.如权利要求17所述的信息处理系统,进一步包括用于创建与该父站点关联的一个子站点的装置;用于修改该父站点的一个或多个属性的装置;用于把该子站点与父站点的这种关联存储在非易失存储设备上的装置;以及用于通过所述计算机网络向一个或多个服务器计算机发布桌面文件的装置,这些桌面文件对应于既在该父站点又在该子站点的用户实现的角色。
19.如权利要求11所述的信息处理系统,进一步包括用于创建一个配置文件的装置,该配置文件详细描述该自含式桌面文件中包括的组件;以及用于把该配置文件存储在所述非易失存储设备上的装置。
20.如权利要求11所述的信息处理系统,其中的桌面外壳适合于在多个操作系统上运行。
21.一种存储在计算机可操作介质上用于管理自含式桌面文件的计算机程序产品,所述计算机程序产品包括用于选择要包括在该自含式桌面文件中的一个或多个桌面组件的单元,其中至少有一个所述桌面组件适合于从一个桌面外壳应用中启动;用于把所述选定的组件打包到该自含式桌面文件中的单元;以及用于把所述打包后的自含式桌面文件存储到桌面文件库中的单元,该桌面文件库存储在非易失存储设备上,其中每个桌面文件适合于被传输到客户机计算机系统中。
22.如权利要求21所述的计算机程序产品,其中至少一个所述桌面组件是从下列一组组件中选出的图标、图像、应用扩展、屏幕外观、国家语言翻译、客户机配置文件以及服务器配置文件。
23.如权利要求21所述的计算机程序产品,进一步包括用于使每个桌面文件与用户要实现的一个或多个角色关联起来的单元;用于接收来自请求者的桌面请求的单元,该桌面请求包括与该请求者对应的用户标识符;用于将该用户标识符与先前存储的用户角色加以比较的单元;用于识别出与该请求者对应的用户角色的单元;用于选择与所述识别出的用户角色对应的一个或多个桌面文件的单元;以及用于把所述选定的桌面文件发送给该请求者的单元。
24.如权利要求21所述的计算机程序产品,进一步包括用于对该自含式桌面文件赋予唯一的桌面标识符的单元。
25.如权利要求21所述的计算机程序产品,其中所述用于打包的单元进一步包括用于把所述桌面组件存储在Java JAR文件中的单元。
26.如权利要求21所述的计算机程序产品,进一步包括用于将所述自含式桌面文件发布到一个或多个服务器计算机上的单元,其中至少一个所述服务器计算机可由客户机计算机系统访问。
27.如权利要求21所述的计算机程序产品,进一步包括用于从多个站点中选择一个父站点的单元;以及用于从该选定站点继承一个或多个桌面文件的单元,其中每个所述桌面文件对应于在该站点的用户要实现的一个不同角色。
28.如权利要求27所述的计算机程序产品,进一步包括用于创建与该父站点关联的一个子站点的单元;用于修改该父站点的一个或多个属性的单元;用于存储该子站点与父站点的这种关联的单元;以及用于向一个或多个服务器计算机发布桌面文件的单元,这些桌面文件对应于既在该父站点又在该子站点的用户实现的角色。
29.如权利要求21所述的计算机程序产品,其进一步包括用于创建一个配置文件的单元,该配置文件详细描述该自含式桌面文件中包括的组件;以及用于把该配置文件存储在非易失存储设备上的单元。
30.如权利要求21所述的计算机程序产品,其中的桌面外壳适合于在多个操作系统上运行。
全文摘要
本发明提供一种集中管理桌面软件包的系统和方法。管理员将应用赋予用户和工作站。管理员选择特定工作角色所需桌面组件并把这些组件打包成自含式桌面软件包文件。该自含式桌面软件包被发送给正在使用特定工作站的用户。对于该工作站和该用户都允许的角色,使其能由正在使用该工作站的该用户使用。在一个实施例中,组件被打包在不同组自含式桌面软件包中,每个软件包对应于一个不同的角色。在一个实施例中,当用户使用一个特定工作站登录到网络中时,自含式桌面软件包文件便被传送给该用户。
文档编号G06F9/44GK1567190SQ20031012142
公开日2005年1月19日 申请日期2003年12月16日 优先权日2002年12月17日
发明者M·R·库珀, J·R·克斯滕, C·V·兰金 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1