CN1726462A - 使用分布式桌面包恢复桌面组件的系统和方法 - Google Patents

使用分布式桌面包恢复桌面组件的系统和方法 Download PDF

Info

Publication number
CN1726462A
CN1726462A CN200380105975.0A CN200380105975A CN1726462A CN 1726462 A CN1726462 A CN 1726462A CN 200380105975 A CN200380105975 A CN 200380105975A CN 1726462 A CN1726462 A CN 1726462A
Authority
CN
China
Prior art keywords
desktop
self
contained
file
apmb package
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200380105975.0A
Other languages
English (en)
Inventor
B·布罗克韦
M·R·库柏
J·L·斯塔施拉克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1726462A publication Critical patent/CN1726462A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种集中管理桌面包的系统和方法,允许管理员恢复先前发送到位于整个组织中的服务器的组件文件。将应用指派给用户和工作站。将自包含桌面包传送给服务器。服务器又向客户端提供这些桌面包。这些包和包括在这些包中的组件包括用于标识该包和组件的唯一标识符。维护一个详述了包括在每个自包含桌面文件中的各个组件的清单。当在管理员的计算机系统发生灾难事件时,管理员从包先前所传送到的服务器检索自包含桌面文件。管理员将从自包含桌面文件中拆出的组件重新填充到组件库中。管理员使用清单确定是否需要从其他服务器检索其他的自包含包文件。

Description

使用分布式桌面包恢复桌面组件的系统和方法
技术领域
本发明涉及用于恢复桌面组件的系统和方法。具体地,本发明涉及使用自包含(self-contained)包数据从分布式计算机恢复桌面组件的系统和方法。
背景技术
现今的现代计算机软件系统常常是以分布式方式组织于整个组织之内的企业系统。该组织中的各人员使用依赖于该用户的职位描述的计算机系统担当不同的角色。在银行业例子中,一位用户可能是出纳员,并因此需要出纳员应用,以便为银行客户提供服务。另一位用户可能是信贷员,并需要访问信贷员应用,以为申请贷款的客户提供服务。第三位用户可能是分支管理人员,并需要访问用于管理该银行分支的计算机功能。各组织常常期望有集中管理它们的分布式共享系统的能力。
传统的计算机系统通常被设计为或者通过每台计算机而提供了所有必需的功能例如通过使用计算机网络访问所需的功能,或者该系统设计为各工作站担当特定的角色并因而由特定用户或用户组使用。这在多个用户使用同一客户端计算机系统的组织中引起了挑战。在该银行业例子中,可能有若干出纳员共享同一客户端计算机系统,这取决于班次、星期几、或哪个出纳员恰好被指派到特定工作站。
如果所有的组织功能从同一工作站提供,则未被授权执行特定功能的用户可能无意地或故意地执行他们未被授权的功能。例如,一位出纳员可能无意地或故意地执行信贷员或分支管理人员功能,如果该功能从该出纳员的工作站可用的话。传统系统处理授权的一种方式是通过安装软件组件来处理每一个工作站上的每一个职位角色,但根据用户注册(login)来限制访问。然而,该方案的挑战在于每个工作站需要接收任何新的或改进的软件组件,以便对于任何可能从任何给定工作站需要这样的功能的用户可用。该方案的另一个挑战是每一台工作站都必须更改。
用户所执行的某些功能可能是客户端-服务器功能,而其他功能可能涉及使用该用户的工作站上已安装的软件系统。该用户的工作站上已安装的软件系统可包括遗留软件应用和为特定操作系统环境而编写的其他软件。
提供对包括执行特定功能所需的组件的自包含桌面包的集中管理的系统和方法在对整个组织之中执行的计算功能的组织和管理方面是有用的。使用集中创建和管理的组件的挑战是由中央管理员所创建的角色的增加的价值和在中央管理员所维护的文件遭到损坏时对该组织的潜在损失。
因此,需要一种允许中央管理员恢复先前发送到位于整个组织内的服务器和客户端的组件文件的系统和方法。另外,需要一种唯一标识组件文件,以便标识各组件以及这些组件的多个版本的系统和方法。
发明内容
已发现,使用集中管理桌面包的系统和方法解决了上述挑战。该系统允许恢复先前发送到位于整个组织的服务器和客户端的组件文件。
管理员将应用指派给用户和工作站。管理员选择特定职位角色所需的桌面组件,并将这些组件打包到自包含桌面包文件中。自包含桌面包被发送给正使用特定工作站的用户。系统识别已指派给用户的一个或多个角色,并将识别出的角色与已指派给工作站的一个或多个角色匹配。对于该工作站和用户均允许的角色能够由正使用该工作站的用户所使用。
在一个实施例中,将组件打包到不同组自包含桌面包中,每一个包对应于不同的角色。在银行例子中,将对用户所担当的每一个银行角色(诸如出纳员、信贷员和分支管理人员)创建不同的桌面包。这些自包含桌面包中的每一个包括执行相应功能所需的组件。例如,用于操作收款机的桌面组件应包括在出纳员包中,而用于访问银行的信贷应用软件的桌面组件应包括在信贷员包中。将共用于多个角色的组件包括在需要它们的每一个包中。例如,用于访问客户帐户的组件可包括在出纳员和信贷员包中。
将自包含桌面包传送或“发布”到服务器。服务器又向客户端提供这些自包含桌面包。这些包和包括在这些包中的组件包括用于标识这些包和组件的唯一标识符。此外,维护一个详述包括在每一个自包含桌面文件中的各个组件的清单(manifest)。
当在管理员的计算机系统发生诸如火灾或驱动器故障的灾难事件时,管理员从包先前所传送到的服务器检索自包含桌面文件。管理员将从自包含桌面文件中拆出的组件重新增加到组件库中。管理员使用清单确定是否需要向其他服务器检索其他的自包含包文件。
上面的描述是概述,因此包含必要的简化、一般化和省略的细节;因此,本领域的技术人员将理解,该概述只是示例性的,而不是要以任何方式进行限制。仅由权利要求所定义的本发明的其他方面、创造性特征和优点将在下面列出的非限制性详细描述中变得显而易见。
附图说明
通过参照附图,可更好地理解本发明,且其众多目的、特征和优点对于本领域的技术人员来说是显而易见的。不同附图中的相同参考标号的使用表示近似或等同的项目。
图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执行注册功能1 70,在此期间收集用户ID和机器ID并将其传送到服务器150,以接收允许的桌面列表。
服务器150从客户端接收用户ID、口令和机器ID,并根据对应于该特定用户ID和正被该客户端使用的特定工作站的用户角色155和工作站角色160确定将哪个自包含桌面发送到客户端。所确定的自包含桌面被分别从服务器150传送到客户端165。
客户端165执行加载外壳进程175,以将外壳应用180加载到客户端工作站上。外壳进程是被加载到诸如Java虚拟机(JVM)的中间件应用之上的应用。这样,不管客户端工作站正使用的操作系统平台为何,外壳应用都呈现为是一致的并基本相似。外壳应用180适于检索和显示自包含桌面190。客户端165根据用户和工作站标识符的交集来接收自包含桌面。使用过程185来接收和显示自包含桌面。因此,给定客户端能使用多个自包含桌面。这些自包含桌面包括工具栏、菜单和其他用于与用户通信的图形用户接口项目。这些用户接口中的一部分包括与服务器150所拥有的服务器应用通信的功能。其他的用户接口包括映射到基于客户端的应用的扩展。当用户点击映射到基于客户端的应用的桌面组件时,存在于该自包含桌面中的功能调用、或以其他方式使用该基于客户端的应用。如果客户端具有任意使用的多个自包含桌面,则用户可通过使用外壳应用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。桌面定义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跳过步骤370而转到“否”分支375。
将所定义的桌面映射到一个或多个地点及一个或多个角色(预定过程380)。这样,可在多个地点上为多个角色使用一单个桌面。反过来,可在每个地点上并对于每个角色定义和使用不同的桌面。将桌面组件打包成自包含桌面,并将该自包含桌面发布到一个或多个服务器上,以供对各客户端的分发(预定过程390,参见图9的处理详情)。管理员处理在395结束。
图4是示出为建立特定地点而采取的管理员步骤的流程图。处理开始于400,其中将唯一标识符指派给该地点(步骤405)。为该地点识别父地点(步骤410)。例如,分支可能具有作为父地点的地区办公室。这样,新地点可从父地点继承特征和属性,从而该些特征和属性是一致的而不必对每个地点重新加入。对于是否识别出父地点进行判断(判定415)。如果识别出父地点,则判定415转到“是”分支418,其中检索父地点的策略和桌面(步骤420)。另一方面,如果父地点未被识别出,则判定415转到“否”分支422,其中管理员将策略和桌面设置为该地点的缺省值(步骤425)。
可根据特定地点的需要,对该特定地点的检索到的或所设置的策略进行修改(步骤430)。这样,一个地点可具有与父地点稍微不同的策略。各地点具有工作在该地点的用户所担当的一个或多个角色。在银行环境中,分支地点可能具有诸如出纳员、信贷员和分支管理人员的角色。选择该地点的第一个角色(步骤435)。对该角色是否需要改变进行判断(判定440)。如果该角色需要改变,则判定440转到“是”分支445,其中为该角色选择自包含桌面(步骤450)。另一方面,如果该桌面不必为该角色进行改变,则判定440跳过步骤450而转到“否”分支455。这样,子地点为特定角色使用与父地点相同的桌面,然而管理员具有向子地点为给定角色指派不同桌面的灵活性。
对该地点是否存在更多角色进行判断(判定460)。如果存在更多角色,则判定460转到“是”分支465,其中选择该地点的下一个角色(步骤470),且处理循环返回以处理这下一个角色。该循环持续到该地点不再有角色时为止,此时判定460转到“否”分支475,其中对为该地点选择的桌面和其他数据进行存储(步骤480)。然后,处理在495返回。
图5是示出管理员为定义新用户而采取的步骤的流程图。处理开始于500,其中向该用户指派一个诸如用户ID的唯一用户标识符给(步骤505)。还向该用户指派一个初始口令(步骤510)。还为该用户输入用户名和/或描述(步骤515)。为该用户选择国家语言偏好(步骤520)。
从管理员所创建的并存储于数据存储器530中的角色列表中为该用户选择一个角色(步骤525)。对所选择的角色是否是该用户的缺省角色进行判断(判定540)。如果所选择的角色是该用户的缺省角色,则判定540转到“是”分支545,其中将所选择的角色指派为该用户的缺省角色(步骤550)。另一方面,如果所选择的角色不是缺省角色,则判定540跳过步骤550而转到“否”分支555。
对是否存在更多角色要指派给该用户进行判断(判定560)。如果存在更多角色要指派给该用户,则判定560转到“是”分支565,其循环返回以选择并处理该用户的下一个角色。该循环持续到不再有角色指派给用户时为止,此时判定560转到“否”分支570,其中对指派给该用户的角色进行存储(步骤580)。然后,操作在595返回。
图6是示出管理员为建立工作站而采取的步骤的流程图。处理开始于600,于是为工作站输入诸如MAC地址的标识符(步骤610)。MAC地址是媒体访问控制(Media Access Control)地址,其是唯一标识计算机网络的每个节点的硬件地址。向该工作站指派主机或服务器(步骤620)。为该工作站指派或检索一个IP地址(步骤630)。还为该工作站输入工作站描述(步骤640)。工作站描述可包括诸如该工作站是否包括银行出纳箱的工作站能力的描述。
从管理员创建并存储于数据存储器660中的角色列表中为该工作站选择第一个角色(步骤650)。例如,在银行环境中,角色可能包括出纳员、信贷员和分支管理人员。一个工作站可能能够担当所有这三种角色,而另一个仅能够担当这些角色中的一种或两种。此外,即使其他的工作站可能物理上能够执行机密或敏感的功能,但这样的功能也可能被限制到特定工作站上。对是否存在更多角色要指派给该工作站进行判断(判定670)。如果存在更多角色要指派给该工作站,则判定670转到“是”分支675,其中选择该工作站的下一个角色(步骤680)。该循环持续到不再有角色指派给该工作站时为止,此时判定670转到“否”分支685。将所指派的角色和工作站数据存储(步骤690)在非易失性存储区中。然后,处理在695返回。
图7是示出管理员为建立应用扩展而采取的步骤的流程图。应用扩展是提供对诸如基于客户端的遗留应用的应用程序的访问的桌面组件。处理开始于700,其中向特定应用扩展指派扩展标识符(步骤705)。输入描述相应应用的应用描述(步骤710)。还输入该应用扩展的客户端类(步骤715)。
对该扩展是由系统提供还是由用户来提供进行判断(判定720)。如果该扩展由用户来提供,则判定720转到用户分支725,其中输入对应于该扩展的Java存档(JAR)文件名(步骤730)。另一方面,如果该扩展由系统来提供,则判定720跳过步骤730而转到系统分支735。
对是否需要管理员面向对象类进行判断(判定740)。如果需要管理员类,则判定740转到“是”分支745,其中输入管理员类名(步骤750)。另一方面,如果不需要管理员类,则判定740跳过步骤750而转到“否”分支755。
使用所提供的信息创建应用扩展(步骤760)。对是否存在该应用扩展的任何缺省属性进行判断(判定770)。如果存在缺省属性,则判定770转到“是”分支775,其中为该应用扩展输入缺省属性(步骤780)。另一方面,如果不存在该应用扩展的缺省属性,则判定770跳过步骤780而转到“否”分支785。
将该应用扩展与任何缺省属性一起存储(步骤790)于非易失性存储区中。然后,处理在795返回。
图8是示出为建立应用引用而采取的管理员步骤的流程图。处理开始于800,其中选择对应于该应用引用的引用类型(即扩展类型)(步骤81 0)。向该应用引用指派唯一的应用引用标识符(步骤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包括用于从Microsoft Windows操作系统平台调用和执行该应用的数据。Win32数据包括标识该应用在Win32环境中的可执行形式的路径和文件名。在文本框1440中输入该路径和文件名。在参数文本框1445中提供该应用所需的任何参数。如果需要,在文本框1455中输入对应于该应用的工作目录。
平台属性框架1430还包括用于OS/2操作系统平台的数据,用于OS/2操作系统平台的字段位于框架1460中。OS/2字段对应于上面描述的Win32字段。这些包括路径和文件名文本框1465、参数文本框1470和工作目录文本框1475。同样,在包括路径和文件名文本框1482、参数文本框1484和工作目录文本框1486的框架1480中提供Linux字段组。
当管理员已输入了应用信息时,管理员可通过选择“创建应用”命令按钮1490来创建该应用。如果管理员出错,则可通过选择“重置值”命令按钮1495来重置新的应用值。
图15是管理员为建立自包含桌面而使用的屏幕的屏幕布局。屏幕布局1500包括用于定义自包含桌面的外观和功能的各字段。将先前定义的桌面标识符显示在屏幕上。在所示出的例子中,桌面标识符是“bda-管理员”。管理员在文本框1505中输入自包含桌面的标题。在所示出的例子中,该标题为“管理员”。在文本框1510中输入自包含桌面的描述。在所示出的例子中,所输入的描述是″BDA管理员的桌面″。
管理员使用列表框1515选择自包含桌面的启动模式。启动模式指从桌面激活组件所需的鼠标点击次数。在所示出的例子中,所选择的启动模式为“2”  (即双击)。在框架1520中输入图标属性。管理员在适当的文本框中输入最大允许和可显示图标标题长度。
管理员在框架1525中输入背景外观信息。管理员为自包含桌面的背景提供颜色、图像文件和图像显示模式。例如,桌面背景数据可包括该组织的名称和标志。管理员将图标外观信息输入到框架1530中。图标外观数据包括图标的文本颜色、与图标一起使用的字体、与图标一起使用的字号、用于图标的字形、图标流、图标流的起始点和图标文本的文本位置。
当管理员已完成建立自包含桌面时,管理员选择“提交更改”命令按钮1540来保存桌面设置。如果管理员出错并希望重置这些值,则选择“重置值”命令按钮1545。如果管理员希望删除该自包含桌面定义,则选择“删除桌面”命令按钮1550。
超链接1560用于添加、修改或删除从自包含桌面可用的引用。这些可用的引用包括应用1570、文件夹1580和工具栏1590。在所示出的例子中,所包括的应用由“acroread”、“计算器”和““浏览器”组成。所包括的文件夹由应用文件夹和两个管理员文件夹组成。还包括一个工具栏,即管理员工具栏。
图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)。利用桌面名称和诸如CRC值的唯一签名创建请求(步骤1710)。将所创建的桌面请求发送到一个或多个服务器(步骤1715)。对是否存在更多桌面要分发进行判断(判定1720)。如果存在更多桌面要分发,则判定1720转到“是”分支1722,其中处理选择下一个供分发的桌面(步骤1725),且循环返回以创建请求,并将请求发送到服务器。该循环持续到不再有桌面要分发时为止,此时判定1720转到“否”分支1728。
管理员接收产生于先前发送的桌面请求的服务器响应(步骤1730)。根据该响应,对该桌面是否已存在于服务器上进行判断(判定1735)。如果该桌面还未存在于服务器上,则判定1735转到“否”分支1738,其中将所识别的桌面以数据流发送给服务器(步骤1740)。另一方面,如果该桌面已存在于服务器上,则判定1735跳过步骤1740而转到“是”分支1742。
对是否存在要从服务器接收的对于桌面请求的更多响应进行判断(判定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结束。
返回到客户端处理,客户端在步骤1830接收并缓存所请求的桌面信息,且客户端桌面接收处理在1835结束。
图19是示出为创建定制应用扩展而采用的步骤的流程图。定制应用扩展允许第三方扩展先前存在的面向对象类,以修改服务器类对象的行为或属性,从而更好地满足特定组织的需要。定制应用扩展创建处理开始于1900,其中提供实现特定组件接口的客户端面向对象类(步骤1910)。对是否扩展该服务器抽象类进行判断(判定1920)。如果该抽象类未在被扩展,则判定1920转到“否”分支1925,其中将缺省服务器组件用于该组件接口(步骤1930)。另一方面,如果该抽象类正在被扩展,则判定1920转到“是”分支1935,其中提供扩展该服务器组件抽象类的服务器类(步骤1940)。
对该定制应用扩展是否需要其他的资源进行判断(判定1950)。如果需要其他的资源,则判定1950转到“是”分支1955,其中提供该应用扩展所使用的这些其他资源(步骤1960)。这些其他资源可包括图像、属性文件和该应用扩展所使用的其他类文件。另一方面,如果不需要其他的资源,则判定1950跳过步骤1960而转到“否”分支1965。
将客户端类、服务器类和任何其他资源打包到Java存档(JAR)文件中(步骤1970)。将打包后的定制扩展存储于定制扩展库1980中。定制应用扩展的创建过程在1995结束。
图20是示出应用扩展生命周期的流程图。该应用扩展生命周期开始于步骤2000。在应用扩展生命周期的第一阶段期间,应用扩展使用无参数构造器(步骤2025)。通过加载应用扩展组件的Java实现类并调用无参数构造器,来使用该无参数构造器创建该应用扩展组件。此时,该应用扩展组件不具有对客户端桌面的引用,且不能与该桌面环境进行交互。在此阶段期间,对实例变量和缺省设置进行初始化。
在该应用扩展生命周期的下一阶段期间,应用扩展进行初始化(步骤2050)。在初始化阶段期间,在组件接口中定义对应于该应用扩展的初始化的方法。还提供对组件配置项、初始区域信息和桌面引用的引用。优选地,在该阶段期间将桌面引用作为实例变量保存。
在该应用扩展生命周期的最后阶段期间,调用对应于该应用扩展的启动方法(步骤2075)。该启动方法由桌面来调用。例如,当用户选择了对应于该应用扩展的图标时,可调用该启动方法。在此阶段期间,应用扩展可使用桌面引用以及对其他桌面组件的引用。另外,该应用扩展可在此时启动各线程,并执行I/O操作。
图21A是示出从管理员向多个客户端分发的组件和资源的方框图。管理员2100通过将组件和资源库2105所打包成的各桌面包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跳过步骤2330而转到“否”分支2335。
对是否存在更多客户端要从服务器接收的桌面进行判断(判定2340)。如果存在更多桌面要接收,则判定2340转到“是”分支2345,其中处理循环返回以接收下一个桌面(步骤2350),并判断该下一个桌面是否为缺省桌面。该循环持续到所有所需桌面均已从服务器接收到时为止,此时判定2340转到“否”分支2355。
对该客户端是否可访问不止一个桌面进行判断(判定2380)。如果可访问不止一个桌面,则判定2380转到“是”分支2385,其中将可用桌面描述插入为可由该客户端访问的弹出选择窗口内的项(步骤2390)。例如,用户可使用诸如鼠标的定点设备在桌面区域中“右”击,其会使弹出菜单显示出。然后,用户可从弹出菜单中提供的列表中选择所需的桌面(参见图27的示例桌面屏幕和弹出菜单)。例如,如果分支管理人员还具有所指派的信贷员的角色,则该分支管理人员可从弹出菜单中选择信贷员桌面。在选择了信贷员桌面之后,会显示用于信贷员功能的桌面组件,且其可从桌面区域中访问。另一方面,如果仅存在一个该客户端可访问的桌面,则判定2380跳过步骤2390而转到“否”分支2392。然后,显示桌面处理在2395结束。
图24是示出服务器为根据用户的角色和工作站的角色向客户端提供桌面信息所采取的步骤的流程图。处理开始于2400,其中服务器从客户端2410接收桌面请求(步骤2405)。该请求包括客户端的用户ID、口令和客户端工作站的MAC地址。
服务器从包括允许在各工作站上担当的角色的工作站表2420中查找该客户端的MAC地址(步骤2415)。在所示出的例子中,具有MAC地址“123”的工作站被允许执行出纳员和信贷员功能,而具有MAC地址“456”的工作站仅被允许执行分支管理人员功能。
对是否在工作站表中发现该客户端的MAC地址进行判断(判定2425)。如果未发现MAC地址,则判定2425转到“否”分支2428,其中对系统是否需要客户端工作站注册进行判断(判定2430)。如果需要工作站注册,则判定2430转到“是”分支2432,其中向客户端返回出错消息(步骤2435),指示该客户端的工作站未注册,且服务器处理在2440结束。另一方面,如果不需要工作站注册,则判定2430转到“否”分支2442,且处理继续。返回到判定2425,如果在工作站表中发现该客户端的MAC地址,则判定2425转到“是”分支,且处理继续。
从用户桌面表2455中检索指派给该用户的标识符(用户ID)的第一个桌面(步骤2450)。在所示出的例子中,用户ID“Able”指派给了“出纳员”角色,而用户ID“Jones”指派给了“出纳员”、“信贷员”和“分支管理人员”角色。对检索出的指派给该用户的桌面是否允许在该用户正使用的工作站上使用进行判断(判定2460)。如果该桌面允许用于该工作站,则判定2460转到“是”分支2465,其中将该桌面发送给该客户端(步骤2470)。另一方面,如果检索出的桌面不允许在该工作站上使用,则判定2460跳过步骤2470而转到“否”分支2472。
对是否存在更多指派给该用户的角色或桌面进行判断(判定2475)。如果存在更多指派给该用户的角色,则判定2475转到“是”分支2480,其中选择指派给该用户的下一个桌面(步骤2485),且处理循环返回以确定该下一个桌面是否应设置给客户端。该循环持续到对指派给该用户的所有桌面均已进行处理时为止,此时判定2475转到“否”分支2490,且服务器处理在2495结束。
图25是示出服务器所执行的处理及服务器、客户端和管理员之间的交互的方框图。服务器2500通过从管理员2575接收角色指派,而执行角色识别功能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执行本地操作。JSLLIB 2680是包括用于执行本地操作的本地命令和程序的本地库。
外壳2605是适于运行在该系统中所使用的任何操作系统平台(例如,Windows XPTM、OS/2TM、或LinuxTM)上的基于Java的应用。该外壳判断该客户端注册是通过服务器远程执行还是本地执行(判定2620)。如果该注册远程执行,则判定2620转到“是”分支2622,其中该客户端从服务器接收桌面(步骤2625)。在一个实施例中,通过首先接收桌面列表,然后从该列表检索各个桌面,来接收桌面。
将桌面的列表或映射缓存到位于客户端机器上的本地存储器中(步骤2630)。还将所接收的桌面缓存到本地存储器中(步骤2635)。返回到判定2620,如果未远程接收到桌面,则判定2620跳过步骤2625、2630和2635而转到“否”分支2638。
从本地存储器中检索指派给用户和工作站二者的桌面(步骤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包括若干组件。组件包括详述包括在该自包含桌面文件中的对象的清单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的独立于平台的语言编写相同的桌面,并将其执行于已实现了所需的虚拟机的各种平台上。
调用基于Java的锁定外壳(步骤2940),以提供桌面环境并防止用户访问客户端机器所使用的基础操作系统。向服务器请求指派给工作站和用户二者的桌面(步骤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,继续进行初始化。
在客户端工作站上调用诸如Java虚拟机的虚拟机应用(步骤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)。将Java虚拟机(JVM)加载到客户端计算设备上(步骤3220)。
对是本地还是远程启动Jshell应用进行判断(判定3230)。如果本地启动该Jshell应用,则判定3230转到“本地”分支3235,其中以用户的用户ID作为参数启动该Jshell应用(步骤3240)。另一方面,如果远程启动该Jshell应用,则判定3230转到“远程”分支3245,其中通过将服务器主机名、用户ID、和平台ID提供为参数而远程启动该Jshell应用(步骤3250)。
在启动了Jshell应用之后,JSL列举OS窗口列表,以找到对应于该Java外壳的窗口(步骤3260)。将该Java外壳窗口固定到操作系统窗口的Z顺序列表的底部,以便该Java外壳窗口将总保留在前台(步骤3270)。最大化该Java外壳窗口,以适应显示屏,并从该Java外壳窗口移除诸如最小化和调整大小按钮的所有框架控件(步骤3280)。以这种方式,外壳应用作为前台页呈现于显示屏上,并防止用户使用本地操作系统平台所提供的外壳页。Java外壳启动处理在3295结束。
图33A是示出智能图形组件的示例的屏幕布局。实际的容器类型对应于诸如C++和Java中的类或C中的结构的实现结构。该实现结构称为类类型。该智能组件在运行时试图确定其父组件(例如,容器)的类类型。如果所识别出的类类型是该组件所认识的类型,则该组件根据所识别出的类类型更改其行为和外观。此行为和外观更改可以编程方式合并到智能组件中,或从配置文件中读出。如果不认识父组件的类类型,则可将该组件编程为沿其父层次上升,直到发现所认识的容器为止。以这种方式,可将该组件置于具有未知类类型的容器中,但如果父容器其自身处于另一个具有已知类类型的容器中,则该组件可将其自身配置为好像其已直接被置于该已知类类型的容器中。
该智能组件的外观和行为由其父容器的类类型确定。例如,如果智能图标的父类类型是桌面,则其将显示文本描述。然而,如果同一智能图标的父类类型是工具栏,则其将不显示文本描述。此外,智能图标行为可根据父容器的类型而不同。例如,如果图标置于工具栏中,则其可被设计为当用户将鼠标指针置于其上时其突出自身边界。但是,如果同样的图标置于桌面上,则其可被设计为当指针掠过它时不显示边界。另外,智能图标可被设计为当被激活时执行不同的与依赖于其所属容器类型的组件相关的代码。
屏幕图像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)。如果在对象层次中存在更多父对象,则选择最后选择出的对象的父对象(即最后的父对象的父对象,或本对象的祖父对象)(步骤3560),且处理循环返回,以确定最近选出的对象是否是认识的类类型。该循环持续到或者发现所认识的类类型,或者在对象层次中不再有父对象时为止。如果发现了认识的类类型,则判定3525转到“是”分支3530,其中选择所认识的类类型(步骤3540)。另一方面,如果在对象层次中不再有父对象,则判定3550转到“否”分支3565,其中对该对象选择缺省类类型(步骤3570)。
检索对应于所选择的类类型的组件外观数据(诸如图标大小和其他显示特性)和对象行为特性(步骤3575)。例如,如果检索出的类类型为工具栏,则该图标大小和显示特性应依据显示在工具栏中的图标可用的较小区域。但是,如果检索出的类类型为桌面,则该图标大小和显示特性则依据该桌面中可用的较大区域。
使用检索出的对应于该类类型的外观数据显示该组件。系统等待该组件被调用(步骤3585,即直到该组件被用户选择)。当该组件被调用时,使用对应于该类类型的行为属性来执行该组件(步骤3590)。
图36是示出在处理智能图形组件的显示属性时所采取的步骤的流程图。智能桌面处理开始于3600,其中对类类型是否是工具栏进行判断(判定3605)。如果该类类型是工具栏,则判定3605转到“是”分支3610,其中检索该组件的工具栏图标,并将其显示在工具栏中(步骤3615),在该工具栏中绘制围绕该图标的边界(步骤3620),且处理在3625结束。
如果该类类型不是工具栏,则判定3605转到“否”分支3630,其中对该类类型是否是文件夹进行判断(判定3635)。如果该类类型是文件夹,则判定3635转到“是”分支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桥3835提供总线控制,以处理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连接到PCT总线3825并连接到PCI-ISA桥3835。类似地,为使计算机系统3801使用电话线连接而连接到ISP,从而连接到互联网,将调制解调器3875连接到串行端口3864和PCI-ISA桥3835。
尽管图38中描述的计算机系统能够实现这里所描述的本发明,但该计算机系统仅是计算机系统的一个示例。本领域的技术人员将理解,多种其他计算机系统设计都能够实现这里描述的本发明。
本发明的一个优选实现是以代码模块的应用,即一组指令(程序代码),其可例如驻留于该计算机的随机存储器中。在计算机需要时,可将该组指令存储于另一计算机存储器中,例如在硬盘驱动器上、或在诸如光盘(供最终在CD ROM中使用)或软盘(供最终在软盘驱动器中使用)的可移动存储器,或通过互联网或其他计算机网络进行下载。这样,本发明可实现为在该计算机中使用的计算机程序产品。此外,尽管所示出的各种方法选择性地由软件激活或重新配置而便利地实现于通用计算机中,本领域的普通技术人员还应该认识到,这样的方法可以构造为执行所需方法步骤的硬件、固件、或更多的专用装置来实现。
尽管已示出和描述了本发明的特定实施例,但对于本领域的技术人员显而易见地,根据这里的教导可以作出变换和修改,而不背离本发明及其更宽泛方面,因此,所附权利要求旨在将所有这样的处在本发明的真正实质和范围中的变换和修改包括在其范围之内。此外,应该理解,本发明仅由所附权利要求定义。
本领域的技术人员应该理解,如果意欲特定数量的所引入的权利要求要素,则这种意欲将明确陈述在该权利要求中,当不存在这种陈述时,则不存在这种限制。对于作为有助于理解的非限制性示例,下面的所附权利要求包含引入权利要求要素的引入性语句“至少一个”和“一个或多个”的使用。但是,这种短语的使用也不应被认为暗示由不定冠词“一”引入的权利要求要素将包含这样引入的权利要求要素的任何特定权利要求限制为仅包含一个这样的要素的发明,即使当同一权利要求包括引入性短语“一个或多个”或“至少一个”和诸如“一”的不定冠词时也是如此;对于权利要求中定冠词的使用也是如此。

Claims (22)

1.一种用于第一计算机系统恢复组件文件的方法,所述方法包括:
将一个或多个组件文件打包到一个或多个自包含包文件中;
将上述自包含包文件通过计算机网络传送给一个或多个第二计算机系统;
识别在其期间一个或多个上述组件文件变得从第一计算机系统不再可用的灾难事件;
响应识别出的灾难事件,向一个或多个上述第二计算机系统请求一个或多个上述自包含包文件;
响应该请求,从一个或多个上述第二计算机系统接收自包含包文件;
从所接收的自包含包文件中拆出组件;以及
将上述组件存储在第一计算机系统可访问的非易失性存储设备上。
2.如权利要求1中所述的方法,进一步包括:
创建详述包括在每个自包含包文件中的组件文件的清单文件;
将包括在该清单文件中的组件文件与在灾难事件之后存在的组件文件进行比较;以及
根据上述比较识别要向第二计算机系统请求的自包含包文件。
3.如权利要求1中所述的方法,进一步包括:
为每个自包含包文件创建清单文件,该清单文件详述包括在该自包含包文件中的组件文件;以及
将该清单文件与组件文件一起打包到自包含包文件中。
4.如权利要求1中所述的方法,进一步包括:
向每个组件文件和每个自包含包文件指派唯一标识符。
5.如权利要求4中所述的方法,进一步包括:
从上述第二计算机系统接收唯一标识符的列表;
将所接收的唯一标识符列表与在灾难事件之后存在于第一计算机系统上的自包含包文件进行比较;以及
根据上述比较识别要向上述第二计算机系统请求的自包含包文件。
6.如权利要求1中所述的方法,其中管理员使用第一计算机系统创建自包含包文件,其中每个自包含包文件对应于组织中的用户所担当的一角色。
7.如权利要求1中所述的方法,其中上述第二计算机系统是根据一个或多个客户端计算机系统的用户所担当的角色向该一个或多个客户端计算机系统提供自包含包文件的服务器计算机系统。
8.如权利要求1中所述的方法,进一步包括:
选择要包括在自包含包文件中的组件文件,其中至少一个组件文件包括适于从桌面外壳启动的程序代码,而该桌面外壳适于运行在多种操作系统上;以及
将上述自包含包文件存储在包文件库中,其中每个包文件适于被传送到客户端计算机系统。
9.如权利要求1种所述的方法,其中至少一个组件文件选自于包括图标文件、图像文件、应用扩展文件、屏幕外观文件、国家语言转换文件、客户端配置文件和服务器配置文件的组。
10.如权利要求1中所述的方法,其中上述灾难事件选自于包括非易失性存储设备故障、一个或多个组件文件的删除、一个或多个自包含包文件的删除、计算机系统故障、自然灾害、火灾、和水灾的组。
11.一种信息处理系统,包括:
一个或多个处理器;
上述处理器可访问的存储区;
上述处理器可访问的非易失性存储设备;
上述处理器执行的用于管理该信息处理系统的操作系统;
上述处理器可访问的用于将该信息处理系统与计算机网络相连的网络接口;以及
用于恢复组件文件的恢复工具,该恢复工具包括:
用于将一个或多个组件文件打包到存储于上述非易失性存储设备上的一个或多个自包含包文件中的装置;
用于将上述自包含包文件通过计算机网络传送给一个或多个计算机系统的装置;
用于响应识别出的灾难事件,向一个或多个上述计算机系统请求一个或多个上述自包含包文件的装置;
用于响应该请求,从一个或多个上述计算机系统接收自包含包文件的装置;
用于从所接收的自包含包文件中拆出组件的装置;以及
用于将上述组件存储在上述非易失性存储设备上的装置。
12.如权利要求11中所述的信息处理系统,进一步包括:
用于创建详述包括在每个自包含包文件中的组件文件的清单文件的装置;
用于将包括在该清单文件中的组件文件与在灾难事件之后存在的组件文件进行比较的装置;以及
用于根据上述比较识别要向第二计算机系统请求的自包含包文件的装置。
13.如权利要求11中所述的信息处理系统,进一步包括:
用于为每个自包含包文件创建清单文件的装置,该清单文件详述包括在该自包含包文件中的组件文件;以及
用于将该清单文件与组件文件一起打包到该自包含包文件中的装置。
14.如权利要求11中所述的信息处理系统,进一步包括:
用于向每个组件文件和每个自包含包文件指派唯一标识符的装置。
15.如权利要求14中所述的信息处理系统,进一步包括:
用于从上述第二计算机系统接收唯一标识符列表的装置;
用于将所接收的唯一标识符列表与在灾难事件之后存在于第一计算机系统上的自包含包文件进行比较的装置;以及
用于根据上述比较识别要向上述第二计算机系统请求的自包含包文件的装置。
16.如权利要求11中所述的信息处理系统,其中管理员使用第一计算机系统创建自包含包文件,其中每个自包含包文件对应于组织中的用户所担当的一角色。
17.如权利要求11中所述的信息处理系统,其中上述第二计算机系统是根据一个或多个客户端计算机系统的用户所担当的角色向该一个或多个客户端计算机系统提供自包含包文件的服务器计算机系统。
18.如权利要求11中所述的信息处理系统,进一步包括:
用于选择要包括在自包含包文件中的组件文件的装置,其中至少一个组件文件包括适于从桌面外壳启动的程序代码,而该桌面外壳适于运行在多种操作系统上;以及
用于将上述自包含包文件存储在上述非易失性存储设备上存储的包文件库中的装置,其中每个包文件适于被传送到客户端计算机系统。
19.如权利要求11中所述的信息处理系统,其中至少一个组件文件选自于包括图标文件、图像文件、应用扩展文件、屏幕外观文件、国家语言转换文件、客户端配置文件和服务器配置文件的组。
20.如权利要求11中所述的信息处理系统,其中上述灾难事件选自于包括非易失性存储设备故障、一个或多个组件文件的删除、一个或多个自包含包文件的删除、计算机系统故障、自然灾害、火灾、和水灾的组。
21.具有程序代码手段的计算机程序,当该程序在计算机系统中执行时该程序代码手段实现根据权利要求1至20中任一项的方法步骤。
22.根据权利要求21的存储于计算机可读介质上的计算机程序。
CN200380105975.0A 2002-12-17 2003-12-10 使用分布式桌面包恢复桌面组件的系统和方法 Pending CN1726462A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/322,095 2002-12-17
US10/322,095 US20040113950A1 (en) 2002-12-17 2002-12-17 System and method for centrally managed self-contained desktops

Publications (1)

Publication Number Publication Date
CN1726462A true CN1726462A (zh) 2006-01-25

Family

ID=32507216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200380105975.0A Pending CN1726462A (zh) 2002-12-17 2003-12-10 使用分布式桌面包恢复桌面组件的系统和方法

Country Status (9)

Country Link
US (1) US20040113950A1 (zh)
EP (1) EP1573523A2 (zh)
JP (1) JP2006510098A (zh)
KR (1) KR20050084996A (zh)
CN (1) CN1726462A (zh)
AU (1) AU2003293814A1 (zh)
CA (1) CA2506561A1 (zh)
IL (1) IL169275A0 (zh)
WO (1) WO2004055669A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033781A (zh) * 2011-01-27 2011-04-27 中标软件有限公司 虚拟机桌面系统切换方法
CN107092476A (zh) * 2017-01-03 2017-08-25 北京安云世纪科技有限公司 一种桌面布局的检测方法、装置和移动终端
CN107092477A (zh) * 2017-01-03 2017-08-25 北京安云世纪科技有限公司 一种桌面布局的修正方法、装置和移动终端

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136526A1 (en) * 2004-12-16 2006-06-22 Childress Rhonda L Rapid provisioning of a computer into a homogenized resource pool
CN100454243C (zh) * 2006-11-28 2009-01-21 北京龙阁创意数码科技有限公司 基于海量数据的多元动漫产品开发系统和开发方法
US8146080B2 (en) * 2007-03-30 2012-03-27 Novell, Inc. Tessellated virtual machines conditionally linked for common computing goals
US20080256538A1 (en) * 2007-04-10 2008-10-16 Novell, Inc. Storage configurations for tessellated virtual machines
US20080256535A1 (en) * 2007-04-10 2008-10-16 Novell, Inc. Tessellated virtual machines for common computing goals
US20080307415A1 (en) * 2007-06-11 2008-12-11 Novell, Inc. Tessellated applications for user computing environments
US8930945B2 (en) * 2007-11-15 2015-01-06 Novell, Inc. Environment managers via virtual machines
US9361454B2 (en) 2014-05-30 2016-06-07 Apple Inc. Methods for restricting resources used by an application based on a base profile and an application specific profile

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2191918B (en) * 1986-06-16 1990-09-05 Ibm Data display system
CA1326563C (en) * 1989-03-15 1994-01-25 Anthony Hoeber Method and apparatus for selecting and executing defaults in a window based display system
US5243697A (en) * 1989-03-15 1993-09-07 Sun Microsystems, Inc. Method and apparatus for selecting button functions and retaining selected options on a display
US5317733A (en) * 1990-01-26 1994-05-31 Cisgem Technologies, Inc. Office automation system for data base management and forms generation
EP0475744B1 (en) * 1990-09-12 1997-06-04 Kabushiki Kaisha Toshiba Method of obtaining functions by using pictorial symbols
US5425140A (en) * 1992-03-20 1995-06-13 International Business Machines Corporation Method and apparatus for providing conditional cascading in a computer system graphical user interface
US5386564A (en) * 1993-02-24 1995-01-31 Hewlett-Packard Company Conversion of data and objects across classes in an object management system
US5845090A (en) * 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
US5566297A (en) * 1994-06-16 1996-10-15 International Business Machines Corporation Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments
US5564002A (en) * 1994-08-01 1996-10-08 International Business Machines Corporation Method and apparatus for implementing a virtual desktop through window positioning
JP3946275B2 (ja) * 1995-01-10 2007-07-18 富士通株式会社 リモートインストールシステムおよび方法
AU712491B2 (en) * 1995-04-07 1999-11-11 Sony Electronics Inc. Method and apparatus for improved graphical user interface with function icons
US5706456A (en) * 1995-04-18 1998-01-06 Unisys Corporation Application specific graphical user interface (GUI) that is window programmable and capable of operating above a windows operating system GUI
US6061795A (en) * 1995-07-31 2000-05-09 Pinnacle Technology Inc. Network desktop management security system and method
US5778395A (en) * 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US5867163A (en) * 1995-12-01 1999-02-02 Silicon Graphics, Inc. Graphical user interface for defining and invoking user-customized tool shelf execution sequence
US5765153A (en) * 1996-01-03 1998-06-09 International Business Machines Corporation Information handling system, method, and article of manufacture including object system authorization and registration
US5930824A (en) * 1997-02-04 1999-07-27 International Business Machines Corporation System and method for demand-base data recovery
US6123737A (en) * 1997-05-21 2000-09-26 Symantec Corporation Push deployment of software packages using notification transports
US6044465A (en) * 1997-07-07 2000-03-28 International Business Machines Corporation User profile storage on and retrieval from a non-native server domain for use in a client running a native operating system
US5926631A (en) * 1997-08-15 1999-07-20 International Business Machines Corporation Network computer emulator systems, methods and computer program products for personal computers
US6108332A (en) * 1997-09-12 2000-08-22 Ericsson Inc. Local number portability for interexchange carriers
US5846090A (en) * 1997-10-09 1998-12-08 Lu; Ching-Shui Rotational jack socket assembly
US6018332A (en) * 1997-11-21 2000-01-25 Ark Interface Ii, Inc. Overscan user interface
US6330010B1 (en) * 1997-11-21 2001-12-11 Xsides Corporation Secondary user interface
US6337717B1 (en) * 1997-11-21 2002-01-08 Xsides Corporation Alternate display content controller
GB2333215B (en) * 1998-01-13 2002-05-08 Sony Electronics Inc Systems and methods for enabling manipulation of a plurality of graphic images on a display screen
AU2468899A (en) * 1998-01-26 1999-08-23 Unif/X Inc. A transaction execution system interface and enterprise system architecture thereof
US6344859B1 (en) * 1998-03-31 2002-02-05 International Business Machines Corporation Data processor controlled display system with a plurality of selectable basic function interfaces for the control of varying types of customer requirements and with additional customized functions
US6417869B1 (en) * 1998-04-15 2002-07-09 Citicorp Development Center, Inc. Method and system of user interface for a computer
US6105063A (en) * 1998-05-05 2000-08-15 International Business Machines Corp. Client-server system for maintaining application preferences in a hierarchical data structure according to user and user group or terminal and terminal group contexts
US6339826B2 (en) * 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
US6108712A (en) * 1998-05-05 2000-08-22 International Business Machines Corp. Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system
US6205476B1 (en) * 1998-05-05 2001-03-20 International Business Machines Corporation Client—server system with central application management allowing an administrator to configure end user applications by executing them in the context of users and groups
US6105066A (en) * 1998-05-05 2000-08-15 International Business Machines Corp. Client-server system with central application management and using fully qualified class names of object-oriented applications for determining permanent server storage locations for application configuration information
US6237092B1 (en) * 1998-05-05 2001-05-22 International Business Machines Corp. Client-server system with central application management allowing an administrator to configure user and group contexts during application configuration without relaunching the application
US6249883B1 (en) * 1998-06-29 2001-06-19 Netpro Computing, Inc. System and method for monitoring domain controllers
US6212564B1 (en) * 1998-07-01 2001-04-03 International Business Machines Corporation Distributed application launcher for optimizing desktops based on client characteristics information
US6426762B1 (en) * 1998-07-17 2002-07-30 Xsides Corporation Secondary user interface
US6389589B1 (en) * 1998-09-21 2002-05-14 Microsoft Corporation Class store schema
US6282568B1 (en) * 1998-12-04 2001-08-28 Sun Microsystems, Inc. Platform independent distributed management system for manipulating managed objects in a network
US6476833B1 (en) * 1999-03-30 2002-11-05 Koninklijke Philips Electronics N.V. Method and apparatus for controlling browser functionality in the context of an application
US6446071B1 (en) * 1999-04-26 2002-09-03 International Business Machines Corporation Method and system for user-specific management of applications in a heterogeneous server environment
EP1050813A3 (en) * 1999-05-06 2007-02-28 Sun Microsystems, Inc. Method and apparatus for implementing deployment descriptions in an enterprise environment
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
KR100496056B1 (ko) * 2000-02-26 2005-06-17 주식회사 하우리 인터넷 기반의 원격 데이터 및 파일 복구 서비스 시스템및 그 방법
US6901403B1 (en) * 2000-03-02 2005-05-31 Quovadx, Inc. XML presentation of general-purpose data sources
US6873337B1 (en) * 2000-04-06 2005-03-29 Microsoft Corporation Application programming interface for changing the visual style
US6636250B1 (en) * 2000-04-12 2003-10-21 Emc Corp Methods and apparatus for presenting information to a user of a computer system
CA2317211A1 (en) * 2000-09-01 2002-03-01 Dew Engineering And Development Limited Flexible method of security data backup
US7660902B2 (en) * 2000-11-20 2010-02-09 Rsa Security, Inc. Dynamic file access control and management
JP2002236590A (ja) * 2000-12-08 2002-08-23 Seiko Epson Corp ソフトウェアのインストール方法
US6829732B2 (en) * 2001-01-22 2004-12-07 Hewlett-Packard Development Company, L.P. Network-based software recovery for computing devices
US7051288B2 (en) * 2001-02-15 2006-05-23 International Business Machines Corporation Method, system, and product for a java-based desktop to provide window manager services on UNIX
US7627860B2 (en) * 2001-08-14 2009-12-01 National Instruments Corporation Graphically deployment of a program with automatic conversion of program type
US6986135B2 (en) * 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
WO2003058375A2 (en) * 2001-10-26 2003-07-17 Zeosoft Corporation Development, management of distributed clients and servers
US7272377B2 (en) * 2002-02-07 2007-09-18 At&T Corp. System and method of ubiquitous language translation for wireless devices
US6850255B2 (en) * 2002-02-28 2005-02-01 James Edward Muschetto Method and apparatus for accessing information, computer programs and electronic communications across multiple computing devices using a graphical user interface

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033781A (zh) * 2011-01-27 2011-04-27 中标软件有限公司 虚拟机桌面系统切换方法
CN102033781B (zh) * 2011-01-27 2012-07-18 中标软件有限公司 虚拟机桌面系统切换方法
CN107092476A (zh) * 2017-01-03 2017-08-25 北京安云世纪科技有限公司 一种桌面布局的检测方法、装置和移动终端
CN107092477A (zh) * 2017-01-03 2017-08-25 北京安云世纪科技有限公司 一种桌面布局的修正方法、装置和移动终端
CN107092477B (zh) * 2017-01-03 2020-07-03 北京安云世纪科技有限公司 一种桌面布局的修正方法、装置和移动终端
CN107092476B (zh) * 2017-01-03 2021-06-29 北京安云世纪科技有限公司 一种桌面布局的检测方法、装置和移动终端

Also Published As

Publication number Publication date
WO2004055669A2 (en) 2004-07-01
JP2006510098A (ja) 2006-03-23
EP1573523A2 (en) 2005-09-14
AU2003293814A1 (en) 2004-07-09
US20040113950A1 (en) 2004-06-17
CA2506561A1 (en) 2004-07-01
KR20050084996A (ko) 2005-08-29
WO2004055669A3 (en) 2004-10-21
IL169275A0 (en) 2007-07-04

Similar Documents

Publication Publication Date Title
US6754896B2 (en) Method and system for on-demand installation of software implementations
CN1297890C (zh) 集中管理自含式桌面的系统和方法
US9870218B2 (en) Methods and systems for upgrading and installing application packages to an application platform
US7631061B2 (en) Method and system for assigning and publishing applications
US6345386B1 (en) Method and system for advertising applications
US7725476B2 (en) System and method for automated data retrieval based on data placed in clipboard memory
RU2406123C2 (ru) Система и способ для определения переключения при неоптимальности целевого объекта назад и приоритета целевого объекта для распределенной файловой системы
US7478335B2 (en) Smart graphical components
US10417586B2 (en) Attaching ownership to data
CN1613240A (zh) 基于网络的软件扩展
CN101065727A (zh) 虚拟化窗口信息的方法和设备
US7117448B2 (en) System and method for determining desktop functionality based on workstation and user roles
JPH0944361A (ja) アプリケーション・プログラムのネットワーク導入のための導入計画オブジェクト
CN101048735A (zh) 用于经由上下文策略控制来控制应用程序间关联的系统和方法
MXPA04008851A (es) Interfase de programacion para una plataforma de computo.
US8954461B2 (en) Systems and methods for object to relational mapping extensions
US20090222413A1 (en) Methods and systems for migrating information and data into an application
CN1726462A (zh) 使用分布式桌面包恢复桌面组件的系统和方法
US8375324B1 (en) Computer-implemented document manager application enabler system and method
JPH06243018A (ja) ネットワーク分散型文書ファイルシステム
CN1698057A (zh) 用于自动启动工作流进程上的文档的系统和方法
US7107576B2 (en) Method for associating names and device for the same in enterprise applications
US20090150328A1 (en) Image metadata harvester
US20080177718A1 (en) User Interface with Fields for Entries to be Applied to Heterogeneous Processes
JP5211614B2 (ja) データベースシステム、サーバ、検索条件の継承方法、プログラム、及び記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication