用于服务和基于角色的软件分配的系统和方法

文档序号:6564306阅读:216来源:国知局
专利名称:用于服务和基于角色的软件分配的系统和方法
技术领域
本发明涉及分布式计算系统,尤其涉及在这样的分布式计算系统中进行软件分配的系统和方法。
背景技术
由于如下需求,软件分配大大增加了与分布式系统有关的拥有权的总成本(i)从企业角度识别需要用特定软件包更新的计算设备或机器(“目标”);(ii)确保目标含有正确的服务(service)和组件(例如,操作系统、服务和应用程序),和这些服务程序具有正确的版本;和(iii)确保具备作为先决条件的一组资源(例如,CPU(中央处理单元)类型和时钟速率、存储器、盘存储、分页空间等),以便能够接收和运行新的软件项目。
大多数现有的软件分配机构把有关目标机配置和要求的信息存储在中央数据库中,需要操作人员的涉入,从而使过程变得效率低下、伸缩性差、成本昂贵、和易于出错。它们往往依赖于目标机用户选择应该分配和安装的软件包(“拉入式(pull-based)方法”),请参见例如,1999年9月14日颁发给Fink等人的、标题为“计算机软件分配、安装和维护方法和设备(Computer Software Distribution,Installation and Maintenance Methodand Apparatus)”的第5,953,533号美国专利;和1999年12月7日颁发给Rowley的、标题为“软件的更新机制(Updating Mechanism for Software)”的第5,999,740号美国专利。
用于“推出式(push-based)”软件分配的现有方法通常需要软件分配管理人员人工选择潜在的分配目标,因此,把作出决定的重担压在操作人员的肩上,基本上导致与上述拉入式方法相同的问题。


图1显示了典型的传统软件分配系统实现的过程。在步骤1,管理人员10准备要分配给一组台式机的新软件项目。这最好在专用于构建软件包的机器14中进行,该构建软件包包含用于执行此操作的必要操作系统组件。在步骤2,查找配置文件或数据库12,以确定哪些目标机应该接收新软件。这个配置文件通常由一组管理人员来更新和维护,需要进行大量的人机交互,因此,往往与目标机的真实状态不同步。在步骤3,把新的软件包存储在软件包贮藏库16中。在步骤4,请求把软件包从管理人员10处分配到分布式计算机系统或服务器18。在步骤5,把软件包下载到分配服务器18。最后,在步骤6,由分配服务器18把软件包分配给分配目标计算机系统20-1、20-2、......、20-N。

发明内容
本发明提供了在分布式计算系统中进行自动软件分配的系统和方法。本发明从服务供应的角度解决了软件分配问题。在这种情况中,所谓服务,指的是典型的应用程序,譬如,万维网浏览服务、字处理服务、计算机病毒检测服务等。
在企业IT(信息技术)环境下进行软件安装和升级的主要理由是,保证最终用户利用他们的计算环境,有机会获得和可以使用他们选择的服务。当引入与软件包相联系的新服务,或升级现有的服务时,首要任务是有效地识别需要安装新软件包的目标机。本发明提供了新颖的方法来完成这项工作。本发明把焦点集中在目标机在分布式系统的操作过程中所扮演的角色上。本发明对目标是使用特定的服务(“客户机”),还是提供服务(“服务器”)加以考虑。提供服务机器的例子有“名称服务器”和“DHCP服务器”。使用服务的机器的例子有“数据库客户机”和“万维网客户机”。目标同时可以扮演数个角色,例如,扮演“万维网客户机”角色的目标可以要求有名称服务的功能,从而也起到“名称服务客户机”的作用。
在本发明的一个方面,提供了把软件包自动分配给目标机分布式网络的一个或多个区域中的一个或多个目标机器的基于计算机的方法。这种方法包括下列步骤。首先,根据下列的至少一个,为一个或多个区域的每一个准备基本软件包(i)指示一个或多个区域的哪些是接收软件包的候选者的策略数据;(ii)指示软件包提供的服务的必需条件的相关性信息;和(iii)有关每个候选区的配置信息。然后把基本软件包分配给分布式网络的每个候选区。接着,根据下列的至少一个,定制在每个候选区上接收的基本软件包(i)区域分配策略;(ii)该区域中目标机所扮演的一个或数个角色特有的相关性信息;和(iii)单个目标机配置信息。最后,把为每个候选区定制的软件包分配给分布式网络的候选区中的至少一个目标机。
在本发明的另一个方面,本发明的自动软件包分配方法可以在三层结构的系统中实现,致使确定哪些目标将接收新软件包的决定处理分散在系统中。服务分配服务器、一个或多个区域服务器、和一个或多个目标机构成这三层结构的系统。基本软件包的准备和分配按照服务分配服务器来进行。基本软件包的定制和定制软件包的分配按照区域服务器来进行。然后,目标机接收定制软件包。
从如下的详细描述中将更清楚地看到,本发明的全自动软件准备和分配方法提供了许多有利特征。例如,本发明提供了企业中的单个用户可以在本地安装软件包和绕过自动系统,强制安装软件包的方法。本发明提供了进行分级分配,使网络带宽要求和出现单点故障的负面效应降到最低的方法。本发明的允许对软件分配进行分散式决定的方法提供了如下特征(i)定期可更新性;(ii)与资源保持密切关系的精确信息(动态信息);和(iii)保留在服务分配服务器或区域服务器上的类型信息。本发明还提供了维护库存的方法,即,区域服务器可以选择维护(除了角色贮藏库之外)数据库中的其区域中所有目标的库存,或者在运行时间确定目标资源的方法。并且,本发明还提供了为软件分配选择相关目标,即,只有适当的目标才接收传送的软件,从而使无效发送达到最小的方法。并且,本发明还提供了只分配所需的那套软件包,即,只有必要的软件包才得以传送(如果特定的区域不提供服务和没有设置“优先(override)”标志,那么,将不把软件包传送到那个区域服务器上)的方法。这个特征节约了带宽和系统资源。另外,本发明使与企业整体范围(自上而下)的策略和单个(自下而上)的系统要求有关的知识得到更好更灵活地传播。
附图简述通过结合附图,对本发明的示范性实施例进行如下详细描述,本发明的这些和其它目的、特征和优点将更加清楚。
图1是显示在典型的传统软件分配系统中实现的准备和分配过程的方块图;图2是显示根据本发明的实施例构建和分配软件包的系统的方块图;图3是显示供根据本发明使用的服务封闭性树结构的图形;图4是显示供根据本发明使用的、服务和子组件的相关树结构的图形;图5A是显示根据本发明实施例,为单个区域服务器或数组相似服务器作基本软件包准备的图形;
图5B是显示根据本发明实施例,为单个区域准备和分配软件包的图形;图6是显示根据本发明实施例的软件分配算法的各个步骤的流程图;图7是显示根据本发明实施例的软件包接收和信息提取算法的各个步骤的流程图;图8是显示根据本发明实施例的策略贮藏库扩展算法的各个步骤的流程图;图9是显示根据本发明实施例的角色贮藏库维护算法的各个步骤的流程图;图10是显示根据本发明实施例的区域预订算法的各个步骤的流程图;图11是显示根据本发明实施例的服务分配算法的各个步骤的流程图;图12是显示根据本发明实施例的区域服务器算法的各个步骤的流程图;图13是显示适合于实现根据本发明实施例的软件构建和分配系统的各种功能性组件/模块的计算机系统通用硬件结构的方块图。
具体实施例方式
下面将在客户机/服务器的环境下,针对示范性软件分配系统的情况,说明本发明。但是,应该明白,本发明并不限于这样的分布式计算环境。而是,本发明可更广泛地应用于含有单个计算设备的任何计算环境,其中最好提供基于与软件包相联系的角色和服务的,而不是依赖于管理人员(如在传统推出式方法中那样)或目标机用户(如在传统拉入式方法中那样)的自动软件分配,以确定目标机是否需要更新。
现在参照图2,图2的方块图显示了根据本发明实施例构建和分配软件包的系统。我们将按照图2,开始描述本发明的软件包构建和分配系统的各种组件和概念。
软件包201是有关形成服务或最终用户应用程序的一批软件组件的一个物理封闭单位。
软件分配是把软件包部署和装运到目标处的任务。这个任务还牵涉到确定适当的目标。
分配目标202是向最终用户和/或其它计算机系统提供服务的计算机系统。目标能够接收和安装软件包。目标系统是一个区域中的一个成员,它与维护配置信息的区域服务器交互。如图2所述,可以有多个策略区I、……、n,其中每一个策略区可以包括一个或多个分配目标。
区域服务器203维护一个区域(每个区域含有一个区域服务器)的区域角色贮藏库204,回答服务分配服务器205的询问,确定目标是否含有适当的资源(通过请求式地询问它们,或通过维护含有它们的配置设置的数据库)把软件分配给目标,和初始化它们的安装和后安装步骤(例如,目标的重新引导),如果软件包安装例程没有把这些步骤包括在内的话。
角色贮藏库204包含它的领域或区域中每台机器的入口。示范性入口如下

上面表中各字段的例子和说明“服务”名称例如,万维网、数据库、万维网应用程序。
“角色”名称例如,服务器、客户机、独立机(后者代表通常分离的PC应用程序,譬如,字处理程序、电子表格程序等)。
相关“软件包”(即,产品名称)被安装和使目标能够扮演特定角色。
“可更新性”标志例如,当必须使用和不应该更新字处理器的合法版本时,这使用户能够避免安装的软件包被更新。
服务分配服务器205是一旦系统已经决定需要分配新软件/服务项目,便负责协调分配处理的实体。在下面算法的详细描述中,将会简要地说明服务器经历的整个处理过程,它完成如下工作(i)在每次安装之前,查找策略数据库209;(ii)为分配软件包确定适当的区域服务器;(iii)把软件包分配给区域服务器;(iv)与区域服务器进行交互;和(v)维护企业服务贮藏库208和策略数据库209。
全局软件贮藏库206用法如下。一旦接收到新软件包和它的描述,该软件包便被存储在这个档案中,然后,就可用于分配。在把软件包的组件结构记录在贮藏库207的服务组件部分中的同时,读出与相关性有关的描述,和将其插入贮藏库207的企业服务相关性部分中。服务分配服务器周期性地访问用于新软件的全局软件贮藏库206(或者,如果新软件包可用,就通知服务分配服务器),取出软件包和把它们分配给区域服务器。
服务组件和相关性贮藏库207由如下两个逻辑贮藏库构成企业服务相关性贮藏库随着新服务得到确定和部署,将它们与其它服务的相关关系记录在这个贮藏库中。图3提供了一个例子。这个信息结构对每个部署的服务,枚举所有的分服务和软件组件。一般来说,S指的是由一个或多个软件组件组成的服务,而C指的是构成服务的软件组件。因此,如图3所示,服务S1由服务S11和S12和软件组件C12组成。例如,如果新版本的软件组件C21或C22可用,那么,涉及服务S11和S1的所有终点机器都是接收这个软件的新副本的潜在目标。对于与C23和C24有关的S12和S1,情况亦如此。组件相关性贮藏库这个贮藏库记录着有关形成各个可分配单元的软件项目的相关性信息。如图4所示,每个这样的项目含有特定的硬件和软件要求,这些要求可分类成先决条件(pre-requsite)、附加条件(co-requsite)和冲突条件(ex-requsite)组。当可用时,取出服务的物理封闭结构(即,组件),并且将其存储在这里。考虑一下如下的例子由于服务组件只存在于服务的范围内,因此把含有图形输入过滤器之类的(可选)部分的字处理器记录在这里,而不是记录在企业相关性贮藏库部分中。为图形输入过滤器定义资源要求没有什么意义,而为字处理器规定它们有意义。
组件相关性贮藏库包括有关全局软件包贮藏库206中所有元素的相关性信息分层结构。
与软件包相关的是子软件包、它们提供的服务、平台要求等的描述,无论它们是先决条件还是附加条件。
如图4所示,组件C(根)含有相关性的各种类目,包括硬件(例如,CPU、存储器、盘)、软件(例如,C4和C5)和服务元素(例如,传输控制协议(TCP)、域名服务(DNS))。先决条件(从C延伸出来的最左边分支所示)是应该已存在,即可以成功安装所关心的组件之前需要已经安装在环境内的项目。例如,“TCP/IP版本2.3是组件DNS客户机的先决条件。”冲突条件(包括C2的中间分支)是应该不存在,以便组件能得到成功安装的项目。例如,“无线LAN卡驱动器软件”可以是安装“红外线驱动器组件软件”的冲突条件。附加条件(可选)相关性(如从C和C3延伸出来的最右边分支所示)是可以,例如,提高服务的性能/可使用性的元素。附加条件的例子有字处理器的图形输入过滤器。
企业服务贮藏库208对于每个区域包含(i)区域提供的服务通过为每个服务询问适当的服务器是否位于该区域中来确定;和(ii)一个区域中可用的服务(即一个区域内部的目标所享受的服务)通过从区域服务器下载服务/客户机对来确定。
此外,通信服务(网络连接、名称服务等)也列在这个贮藏库中。这样贮藏库的例子如下

服务简表是一个区域提供给它的用户的,即在客户机、服务器或独立机角色中的一组服务。特定区域的服务简表等效于对于给定区域,企业服务贮藏库的入口。请注意,对于给定区域,通常存在许多个入口。
策略贮藏库209用法如下。软件分配策略由软件分配管理人员周期性地输入到策略数据库209中。策略规则的例子有“担当适当角色的每个有能力系统应该接收新的软件包;”“只有适当的服务器可用的时候(从企业服务贮藏库208中确定),才可以安装客户机软件;”“只有服务被标志成可更新的的时候,或者,如果还没有存在于目标之中,被设置成“优先”标记的时候,才在特定目标上安装软件包;”“软件更新应该只发生在11PM和6AM之间;”“由于没有支付,区域I不应该进行任何更新;”“如果区域服务器所在的区域与分配简表相匹配,就把软件包分配给区域服务器;”(“服务器”优先于“客户机”,即,如果给定服务的服务器存在于一个区域之中,那么总可以安装客户机软件,反之则不成立)等。
与示范性系统有关的一些通用规则可以包括下列这些。只有系统上已存在同一软件包的时候,才更新节点上的软件。这是防止发生(只因为它们的区域被列为已经预订了字处理服务)使用MicrosoftTMWord 2000作为字处理器的目标也接收到LotusTMWord Pro7的情况所必需的。
如果不得不安装新软件,软件管理人员可以利用“优先”标志强迫安装。但是,与在特定目标上定义的“可更新的”标记相比,“优先”标志具有较低的优先级。这用于防止必须保留以前版本(例如,为了兼容起见)的软件包被更新。
在假设本发明示范性软件包构建和分配系统的组件和概念被描述成如图2所示那样的情况下,现在详细描述根据本发明示范性实施例的软件分配处理如下。软件分配算法包括两个阶段通常如图5A所示的、为分配给区域服务器所作的基本软件包准备;和通常如图5B所示的、每个区域内的软件包的准备和分配。
首先参照图5A,基本服务(软件)包504是作为安装在适当目标机中的候选者的组件。基本软件包准备者操作502接收指示哪些区域是要更新的候选者的全局策略数据510、指示服务包的先决条件、冲突条件和附加条件的基本相关性信息506、和代表候选区域的区域服务器每一个的配置信息508,作为输入。利用这些信息,基本软件包准备者操作502为区域512、514和516的每一个构建基本服务包。
现在参照图5B,当负责把软件包分配给它的辖区中每个端点的区域服务器接收到基本服务包522时,它需要用该区域中单个机器所需的特定相关项目补充它。这由区域软件包补充器操作520进行,区域软件包补充器操作520接收区域分配策略528、那个区域中的机器特有的相关性信息524、和用于为目标机的每一个定制基本软件包的单个机器配置信息526,作为输入。其输出是具有相同安装环境的、为区域内每组机器生成的一套定制软件包530。
现在说明提供软件分配处理的示范性细节的图6至图12。
现在参照图6,该流程图显示了根据本发明实施例的软件分配算法的各个步骤。该算法从方块600开始,按如下进行下去。
步骤601引入新软件包(SP)。把新SP(图2中的201)和它的描述(例如,服务、角色、软件名称、版本、资源先决条件列表、服务先决条件列表)输入到服务分配服务器或SDS(图2中的205)中,或者存储在全局软件贮藏库(图2中的206)中。引入新SP的步骤也可以通过另一个应用程序来完成,这个应用程序把软件包和它的描述存储在服务组件和相关性贮藏库(图2中的207)中,和通知SDS有关给定服务和给定角色的新SP是可用的。如果这还没有完成,把软件包提供的服务输入到服务组件和相关性贮藏库(图2中的207)中。这个贮藏库存储着有向的、非循环的服务相关性图,它使系统能够确定新服务是否和如何与相关性结构相匹配,尤其是,什么样的服务将受到这个新软件包引入的影响。
步骤602目标区域的选择。这个步骤是由SDS(图2中的205)完成,以确定其服务简表与新软件包打算提供的服务(即,该区域提供/享受所关心的服务)匹配的所有区域服务器(图2中的203)。如果特定区域是这个服务的预订者(作为客户机或作为服务器),那么,将其加入该组要分配的潜在目标中。接着,对于这个组的每个区域,SDS查找策略贮藏库(图2中的209),保证每个目标区域的确是潜在候选者。如果不是,从该目标组删除这个区域。
步骤603从SDS(图2中的205)到区域服务器(图2中的203)的软件分配。管理人员可以通过把软件安装请求标志成“优先”(安装该区域中还不存在的新软件所需的),进行优先设置。对于该目标组中的每个区域(在步骤602中计算的),SDS根据相关性要求,准备适合于那个区域中的目标机的软件包。然后,把这个软件包传输到该区域。典型的消息内容可以包括服务名称、软件包名称、“优先”标志、软件包二进制表示。
步骤604区域服务器(图2中的203)进行库存扫描。在接收到软件包之后,区域服务器(RS)确定端点机(潜在目标)的每一个是否具有适当数量的资源(CPU、RAM、盘空间、交换空间等)。另外进行的检查还有(i)确定目标(图2中的202)是否具有适当版本的(正确的)操作系统;和(ii)确定目标是否具有适当的先决条件(即,所需的服务是否已经存在)。请注意,因为在更新或新建立SP的时候,同时建立了相关性信息,并且可以集中存储它,所以在SDS这一级上维护相关性贮藏库(图2中的207)。
步骤605目标角色的检索(由RS来进行)。如前所述,RS(图2中的203)为它辖区内的每个目标机(图2中的202)维护角色贮藏库(图2中的204)。这个贮藏库中的这个信息或者是借助于在角色贮藏库中的结果存储周期性地提取、或者动态地(请求式地)提取。对于每个目标,信息可以由下列组成服务、角色、相关软件包、和可更新标志。
步骤606从RS(图2中203)到目标(图2中的202)的软件分配。对于辖区内的每个端点机,RS进行库存扫描,以确定该机器的环境。如果结果满足SP的相关性要求,那么,该端点机就是潜在目标。只有把标志设置成可更新的(即,目标用户不明确禁止),或安装请求被标志成“优先”(即,软件分配管理人员强行这样做)的时候,才开始对这个目标的分配。消息内容可以包括服务名称、软件包名称、“优先”标志、软件包的二进制表示。
步骤607从RS(图2中的203)到目标(图2中的202)的软件分配的结果。在这个步骤中,收集分配步骤的结果,执行对目标的前期安装、后期安装过程和测试。在区域服务器上收集安装结果。
步骤608从RS(图2中203)到SDS(图2中的205)的状态更新。RS把分配步骤的状态发送到SDS,然后,结束算法。
现在参照图7,该流程图显示了根据本发明实施例的软件包接收和信息提取算法的各个步骤。该算法从方块700开始,按如下进行下去。
步骤701获取新软件包。这个步骤代表作为分配候选者的新软件包(图2中的201)的到达。该软件包的到达可以可由管理人员人工指示,或者通过在SDS(图2中的205)中运行的、周期性检查存储软件包的全局软件包贮藏库(图2中的206)的状态的处理过程自动地指示。该步骤可由把软件包文件放置在受到周期性检查的上载区中的操作者来执行,或者利用命令行接口(推出式方法)来执行。另一种方法是,负责任的组件可以询问用于更新的一些预定义的软件服务器和自己下载它们。
步骤702确定软件包是否已经存在于全局软件包贮藏库中。也就是说,系统检查这是否是新软件。
步骤703放弃软件包。如果确定为软件包已经存在,因此,不再是新的,那么,放弃它,然后,退出该算法(方块708)。
步骤704读出软件包描述。如果确定为软件包还不存在,因此,是新的,那么,执行步骤705。假设每个软件包都伴随着列出软件包的服务、软件和硬件相关性的信息。由SDS(图2中的205)读出这个信息。
步骤705记录服务相关性。把在步骤704中读出的信息记录在服务组件和相关性贮藏库(图2中的207)内的适当数据结构中。
步骤706记录服务结构。把与这个软件包与现有服务的关系有关的相关信息记录在服务组件和相关性贮藏库(图2中的207)中。
步骤707存储软件包。把软件包存储在全局软件贮藏库(图2中的206)中。
步骤708退出该算法。借助于适当的退出代码从该算法中退出。
现在参照图8,该流程图显示了根据本发明实施例的策略贮藏库扩展算法的各个步骤。该算法从方块800开始,按如下进行下去。这个过程处理策略贮藏库(图2中的209)的分布(population)。当公式化处理特定区域是否可以被认为是软件分配的目标的条件的新策略时,这个过程执行把这样的策略输入到策略贮藏库中的步骤。如果在获得新策略定义(步骤801)之后,检测到与现在策略的冲突(步骤802),那么,放弃新策略(步骤803)。否则,把新策略输入策略贮藏库中(步骤804)。在方块805结束该过程。请注意,根据正在实施软件分配的企业的性质,判断放弃的准则可能更复杂一些。这种示范性的描述并无谈及策略冲突解决问题。而是,假设该处理过程在一致的状态下,适当地维护策略贮藏库。因此,应该明白,可以应用任何适当的策略冲突解决机制。
现在参照图9,该流程图显示了根据本发明实施例的角色贮藏库维护算法的各个步骤。该算法从方块900开始,按如下进行下去。这个算法是由区域服务器(图2中的203)实现的,并且为作为区域服务器辖区的成员的每台机器执行的。区域服务器执行单个机器贮藏库的扫描(步骤901),从这个信息中推算出分布它维护的角色贮藏库所需的数据。因此,库存扫描检查单个机器贮藏库和返回如下数据服务、角色、软件包、和可更新标志。后者尤为重要,因为它使单个用户能够阻止他的目标被自动更新。然后,把扫描结果插入角色贮藏库中(步骤902)。在方块903结束该算法。
现在参照图10,该流程图显示了根据本发明实施例的区域预订算法的各个步骤。该算法从方块1000开始,按如下进行下去。区域预订算法是区域服务器与SDS之间的协议的实现,通过这种协议实现,SDS能够为代表它的组成成员,学习和记录一个区域感兴趣的所有服务。
当一个区域内的端点机器想要作为客户机或服务器加入新服务中时,区域服务器就把这个信息(以形式化协议的形式)通信给SDS(步骤1001)。SDS从区域服务器接收预订信息(步骤1002),和把这个信息记录在企业服务贮藏库(图2中的208)中(步骤1003)。在方块1004结束该算法。
现在参照图11,该流程图显示了根据本发明实施例的服务分配算法的各个步骤。这个算法由SDS来执行,确定哪些区域有资格成为软件分配的目标,和需要为有资格的区域准备分配软件包做些什么。
处理从方块1100开始。一旦新软件包已经被SDS接受为潜在分配项目,SDS就查找企业服务贮藏库(图2中的208),以确定给定区域是否受到新项目的影响(步骤1101)。也就是说,确定该区域是否与新服务相匹配。请注意,企业服务贮藏库保留描绘每个区域预订的服务的表。如果特定的区域与服务无关,那么,退出该算法(方块1111)。如果涉及到该区域,SDS进行检查,看一看该区域是否满足基本相关性要求(例如,如果这个软件改变只对Window95机器有效,而该区域只有UNIX机器,那么,尽管该区域预订了基本服务,它也不是分配候选者)。这可以根据步骤1103和1104来完成。也就是说,在步骤1103中,SDS获取用于特定区域的服务简表。然后,在步骤1104中,SDS确定该服务简表是否是根据相关性模型的。如果不是,那么就退出该算法(步骤1111)。如果是,SDS接下来检查策略贮藏库,以确定所关心的区域不合有排除在考虑之外的相关策略(例如,可能存在比方说,如果许可证已经过期,就不分配的策略)。这可以根据步骤1106和1107来完成。也就是说,在步骤1106中,SDS从策略贮藏库中获取用于特定区域的策略规定。然后,在步骤1107中,SDS确定该服务请求是否是根据策略规定的。如果不是,那么就退出该算法(步骤1111)。如果是,此时,特定区域已经成功地通过了所有检查,是接收新软件包的候选者。然后,SDS从全局软件贮藏库中取出软件包(步骤1109),将软件包分配到该区域(步骤1110)。在方块1111结束该算法。
现在参照图12,该流程图显示了根据本发明实施例的区域服务器算法的各个步骤。该算法从方块1200开始。在步骤1201中,区域服务器从SDS接收软件包或服务。一旦区域服务器已经从SDS接收到分配的软件包,它就开始确定其辖区中哪些端点或机器有资格接收新软件包的算法。第一步骤是对辖区成员的每一个都进行库存检查,以获取它们的环境(步骤1202)。然后,将这个信息与新软件包的基本相关性或资源要求相对照(步骤1203)。例如,资源可以包括CPU、RAM、盘空间、交换空间、操作系统(类型和版本)等。应该认识到,操作系统的检查必须在区域级上进行,因为SDS不知道操作系统的细节。如果满足资源要求,那么,从角色贮藏库中取出有关这个机器的角色信息(步骤1205)。否则,就退出该算法(方块1211)。应该明白,角色贮藏库是一个概念性的贮藏库,即,可以把它当作一个存储实体来实现,也可以在运行时,询问单个目标确定它的信息。
在步骤1206中,区域服务器确定这个服务是否被标志成可更新的,和在这种可更新服务的情况下,该机器扮演什么样的角色(例如,客户机、服务器、还是独立机)。请注意,尽管目标机可能有资格得到更新,但由于各种原因,用户也可能不想要这样的更新。更新标志是用户停止更新所用的机制。如果服务没有被标志成“可更新的”,那么,特定的目标机就被排除在考虑之外,退出该算法(方块1211)。接着,在步骤1208中,识别目标的角色(例如,例如,客户机、服务器、或独立机)。最后,在步骤1209中,把软件包分配给目标机,和根据发生的变化,利用新的服务/目标信息,在角色贮藏库中更新这个机器的角色信息(步骤1210)。这使角色贮藏库得到逐步更新,从而免除了每次都进行库存扫描的需要。在方块1211结束该算法。
现在参照图13,图13所示的是显示适合于实现如图2所描绘的和在这里所详述的软件构建和分配系统的各种功能性组件/模块的计算机系统通用硬件结构的方块图。应该明白,该系统的各个组件,即,服务分配服务器、区域服务器、目标、和各种贮藏库可以在一个这样的计算机系统上,或者在多于一个这样的计算机系统上分别实现。此外,该系统的两个或更多个组件可以在一个或多个这样的计算机系统上实现。
还应该明白,实现系统的各个组件的计算机系统通过通信网络(未示出)来耦合,以形成分布式计算环境。通信网络可以是公用的(例如,因特网)和/或专用的。网络可以是广域网络和/或局域网。网络的类型不是本发明的关键所在。
如图13所示,计算机系统可以根据处理器1302、存储器1304和I/O设备1306实现。应该认识到,在这里所用的术语“处理器”意在包括任何处理设备,例如,包括CPU(中央处理单元)和/或其它处理电路的处理设备。在这里所用的术语“存储器”意在包括与处理器或CPU相联系的存储器,例如,RAM、ROM、固定存储设备(例如,硬盘驱动器)、可拆卸存储设备(例如,软盘)、闪速存储器等。另外,在这里所用的术语“输入/输出设备”或“I/O设备”意在包括,例如,把数据输入到处理单元的一个或多个输入设备,比如,键盘、鼠标等,和/或展示与处理单元相联系的结果的一个或多个输出设备,比如,CRT显示器、打印机等。还应该明白,术语“处理器”可以指多于一个的处理设备,和与处理设备相联系的各种部件可以被其它处理设备共享。于是,在这里所述的、包含实现本发明的方法的指令或代码的软件组件可以存储在一个或多个相关存储设备(例如,ROM、固定的或可拆卸的存储器)中,和当准备使用时,部分或全部地被装载(例如,到RAM中)和由CPU执行。在任何情况下,都应该明白,图2所示的部件,以及图3至12所示的结构和步骤可以在各种形式的硬件、软件、或它们的结合,例如,含有相关存储器的一个或多个经适当编程的通用数字计算机中实现。以本文提供的本发明的原理为前提,本领域的普通技术人员能够设想出本发明各部件的其它实现方法。
尽管在这里参照附图,已经对本发明的示范性实施例进行了描述,但应该明白,本发明并不仅限于这些确切的实施例,本领域的普通技术人员可以对其作出各种各样其它的修改和改进,而不偏离本发明的范围或精神。
权利要求
1.一种把软件包自动分配给目标机分布式网络的一个或多个区域中的一个或多个目标机的基于计算机的方法,所述方法包括下列步骤根据下列的至少一个,为一个或多个区域的每一个准备基本软件包(i)指示一个或多个区域的哪些是接收所述软件包的候选者的策略数据;(ii)指示有关所述软件包提供的服务的必需条件的相关性信息;和(iii)有关每个候选区的配置信息;把所述基本软件包分配给分布式网络的每个候选区;根据下列的至少一个,定制在每个候选区上接收的基本软件包(i)区域分配策略;(ii)该区域中目标机所扮演的一个或数个角色特有的相关性信息;和(iii)单个目标机配置信息;把在每个候选区定制的软件包分配给分布式网络的候选区中的至少一个目标机。
2.根据权利要求1所述的方法,其特征在于,指示有关软件包提供的服务的必需条件的所述相关性信息包括与软件包在目标机上的安装相联系的先决条件、冲突条件和附加条件的至少一个。
3.根据权利要求1所述的方法,其特征在于,指示有关软件包提供的服务的必需条件的所述相关性信息以多层树结构的形式表示。
4.根据权利要求3所述的方法,其特征在于,所述树结构的一个或多个枝叶表示一个或多个软件组件。
5.根据权利要求1所述的方法,其特征在于,一个区域中所述目标机所扮演的一个或多个角色包括客户机角色、服务器角色和独立机角色。
6.根据权利要求1所述的方法,进一步包括下列步骤还允许人工控制所述软件包在目标机上的安装。
7.根据权利要求6所述的方法,其特征在于,人工控制所述软件包在目标机上的安装是通过设置一标志实现的。
8.根据权利要求1所述的方法,进一步包括下列步骤维护指示为不同区域和不同最终用户环境构建可分配组件软件包所需的步骤的策略贮藏库。
9.根据权利要求1所述的方法,其特征在于,用于定制在候选区上接收的所述基本软件包的所述单个目标机配置信息是在使用之前存储的和在使用时确定的目标机配置信息两者之一。
10.一种把软件包自动分配给目标机分布式网络的一个或多个区域中一个或多个目标机的基于计算机的系统,所述系统包括服务分配服务器,所述服务分配服务器起如下作用(i)根据指示一个或多个区域的哪些是接收所述软件包的候选者的策略数据、指示有关所述软件包提供的服务的必需条件的相关性信息、和有关每个候选区的配置信息的至少一个,为一个或多个区域的每一个准备基本软件包;和(ii)把基本软件包分配给分布式网络的每个候选区;和一个或多个区域服务器,所述区域服务器的每一个起如下作用(i)根据区域分配策略、区域服务器所在区域中目标机所扮演的一个或数个角色特有的相关性信息、和单个目标机配置信息的至少一个,在接收时定制基本软件包;和(ii)把所述定制的软件包分配给区域服务器所在区域中的至少一个目标机。
11.根据权利要求10所述的系统,其特征在于,指示有关软件包提供的服务的必需条件的所述相关性信息包括与所述软件包在目标机上的安装相联系的先决条件、冲突条件和附加条件的至少一个。
12.根据权利要求10所述的系统,其特征在于,指示有关软件包提供的服务的必需条件的所述相关性信息以多层树结构的形式表示。
13.根据权利要求12所述的系统,其特征在于,所述树结构的一个或多个枝叶表示一个或多个软件组件。
14.根据权利要求10所述的系统,其特征在于,一个区域中所述目标机所扮演的一个或多个角色包括客户机角色、服务器角色和独立机角色。
15.根据权利要求10所述的系统,其特征在于,还可以人工控制所述软件包在目标机上的安装。
16.根据权利要求15所述的系统,其特征在于,人工控制软件包在目标机上的安装是通过设置标志实现的。
17.根据权利要求10所述的系统,进一步包括策略贮藏库,用于指示为不同区域和不同最终用户环境构建可分配组件软件包所需的步骤。
18.根据权利要求10所述的系统,其特征在于,每个区域服务器进一步起如下作用在使用之前维护用于定制所述基本软件包的单个目标机配置信息和在使用时确定该信息两者之一。
19.根据权利要求10所述的系统,进一步包括一个或多个贮藏库,用于存储指示一个或多个区域的哪些是接收所述软件包的候选者的所述策略数据、指示有关所述软件包提供的服务的必需条件的所述相关性信息、和有关每个候选区的所述配置信息。
20.根据权利要求10所述的系统,进一步包括一个或多个贮藏库,用于存储区域分配策略、区域服务器所在区域中目标机所扮演的一个或数个角色特有的相关性信息、和所述单个目标机配置信息。
21.一种根据服务分配服务器,把软件包自动分配给目标机分布式网络的一个或多个区域中的一个或多个目标机的制造产品,所述产品包括机器可读介质,所述机器可读介质包含当被执行时实现下列步骤的一个或多个程序根据下列的至少一个,为一个或多个区域的每一个准备基本软件包(i)指示一个或多个区域的哪些是接收所述软件包的候选者的策略数据;(ii)指示有关所述软件包提供的服务的必需条件的相关性信息;和(iii)有关每个候选区的配置信息;把所述基本软件包分配给分布式网络的每个候选区,用于以后根据区域分配策略、该区域中目标机所扮演的一个或数个角色特有的相关性信息、和单个目标机配置信息的至少一个,定制在每个候选区上接收的所述基本软件包;和用于以后把每个候选区定制的软件包分配给分布式网络的候选区中的至少一个目标机。
22.一种根据区域服务器,把软件包自动分配给具有一个或多个区域的目标机分布式网络的一个区域中的一个或多个目标机的制造产品,所述产品包括机器可读介质,所述机器可读介质包含当被执行时实现下列步骤的一个或多个程序获取根据指示一个或多个区域的哪些是接收所述软件包的候选者的策略数据、指示有关所述软件包提供的服务的必需条件的相关性信息、和与所述区域服务器相联系的区域的配置信息的至少一个,为与区域服务器相联系的区域准备的基本软件包;根据区域分配策略、与该区域服务器相联系的该区域中目标机所扮演的一个或数个角色特有的相关性信息、和单个目标机配置信息的至少一个,定制获取的基本软件包;和把所述定制的软件包分配给与区域服务器相联系的区域中的至少一个目标机。
全文摘要
把软件包自动分配给目标机分布式网络的一个或多个区域中的一个或多个目标机器的基于计算机的方法和系统,包括:根据下列的至少一个,为每一区域准备基本软件包:(i)指示一个或多个区域的哪些是接收软件包的候选者的策略数据;(ii)指示有关软件包提供的服务的必需条件的相关性信息;和(iii)有关每个候选区的配置信息。然后把基本软件包分配给分布式网络的每个候选区。接着,根据下列的至少一个,定制在每个候选区上接收的基本软件包:(i)区域分配策略;(ii)该区域中目标机所扮演的一个或数个角色特有的相关性信息;和(iii)单个目标机配置信息。把为每个候选区定制的软件包分配给分布式网络的候选区中的至少一个目标机。
文档编号G06F9/06GK1363882SQ01130288
公开日2002年8月14日 申请日期2001年12月29日 优先权日2001年1月5日
发明者约瑟夫·L·赫勒斯坦, 高塔姆·卡尔, 亚历山大·凯勒 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1