专利名称:移动式和嵌入式设备的配置和管理系统的制作方法
技术领域:
本申请涉及一种配置管理系统,尤其涉及这种系统在有限资源及/或不兼容客户设备上的使用。
背景技术:
计算机已经成为工作场所的不可缺少的部分。在许多组织中,几乎每个雇员都使用至少一个计算机。因此,大的公司一般都操作和维护数量极大的计算机。在这些公司中,尽可能实现零碎的维护工作的自动化是重要的。
幸运的是,局域网络(LAN)和广域网络(WAN)也已经变得普遍,这就使得组织内的各个计算机能够利用集中提供的计算机服务例如用户识别、文件共享、电子邮件,以及各种其它类型的服务。
配置管理系统代表一种类型的服务,其可被有效地在在网络环境中使用,以便使组织内的各个不同的计算机的维护和管理自动化。这种服务提供了用于集中的软件分配、资产管理、以及关于台式计算机、服务器和服务器应用程序的远程发现并排除故障的工具。微软公司的“系统管理服务器”是为此目的而设计的系统的一个例子。
图1表示计算机系统10的一个简化的例子,其中实现了自动化配置管理。这种系统包括一个管理服务器12和多个客户计算机14。通过局域网或广域网16,客户机14之间以及客户机和管理服务器之间可以进行通信。
虽然在图1中管理服务器被表示为一个装置,但是其可以包括多个单个的计算机或服务器,它们可能设置在彼此的附近,或者可能设置在各个不同的位置。
现代的操作系统和应用软件通常提供客户端支持,用于其上装有操作系统和应用软件的计算机的自动化的配置管理。例如,微软的Windows XP系列的操作系统在数据库中维护硬件和软件部件的详细的产品清单(inventory),用于来自计算机本身内的部件的和来自其它计算机的程序询问(programmatic query)和数据校核(datacollation)。在Windows环境中,这个功能被称为WindowsManagement Instrumentation(视窗管理测试)或WMI。改变和配置管理软件可以利用WMI信息来获得各个计算机的产品清单,并评估计算机的配置是否应当被更新或者被改变。
除去操作系统支持之外,各个客户计算机14一般配置有专用软件,用于支持自动化配置管理。这种软件一般被设计成特定销售者实现的自动配置管理系统的一部分,例如作为微软的系统管理服务器产品的一部分。专用软件和客户计算机的操作系统协同工作,以便和管理服务器12协同完成各种功能。因而自动化配置管理系统的整个框架包括服务器部分和客户机组件。
图2表示由微软的系统管理服务器产品执行的配置管理框架的简化的逻辑组件,包括服务器12的部分和在客户14内实现的部分。所示的这些部分涉及框架的清单和软件分发特征。
管理服务器12具有服务器清单和发现组件(inventory anddiscovery component)20,其和驻留在客户机14上的客户机清单和发现组件22协同操作。客户机清单和发现组件22收集客户机14的识别信息和硬件与软件清单,把所述信息组织成数据结构,并把所述信息提供给服务器12的服务器清单和发现组件20。所述识别信息唯一地标识被管理的网络上的客户机,并且包括诸如NetBIOS名,IP地址之类的属性。这个信息被打包,并且作为被称为发现数据记录或DDR的数据结构被报告。管理服务器把这个信息保存在数据库中,以便利资产管理功能(asset management function)。在客户机14内,许多信息利用Windows XP操作系统的WMI功能被收集。在服务器12和客户机14之间的通信利用自动化配置管理系统的特定实施专有的预定协议。
客户计算机可以采集和报告200个以上的属性,例如包括以下的细节盘驱动器的数量和尺寸处理器的类型和速度存储器的数量操作系统监视器和显示器设置计算机名和IP地址关于连接的外围设备的信息网络类型BIOS信息此外,每个客户计算机报告一个在客户机上安装的所有软件应用程序的列表,包括制造者和版本信息。
管理服务器12包括策略提供器(policy provider)24,其向被管理的计算机例如客户机14分配策略。所述策略表示配置设置和软件分配。配置设置策略的一个例子是一个规则,例如“在这个客户计算机上的口令的长度必须是7-10个字符,并且不包括非字母字符”。软件分配策略表示可用于下载和安装的软件包,并且也包括表示哪种类型的客户可以下载和安装指出的软件包的信息。软件包是文件及关于文件的下载和安装的说明的集合。
客户机14具有策略评价器26,其接收来自服务器12的策略,并评价那些策略,从而确定哪个是针对客户机14的策略。当策略服务器26确定一个策略针对客户机14时,策略评价器便把这个信息送到合适的部分执行。配置设置策略用多种方式执行-其中一些方式要求改变注册表,一些要求访问WMI。如果策略是软件分配类型的策略,则把其送到客户机14的应用程序安装组件28。安装组件28检查策略信息并确定如何下载相关的软件包。然后,其连接到和服务器12相关的分发点29,并下载所述软件包。在下载软件包之后,应用程序安装组件28按照包含在下载的软件包中的信息安装打包的软件。
现有的自动化配置管理系统例如微软系统管理服务器在图1所示的传统的网络环境中能够很好地工作,其中被管理的计算机包括台式或者其它全功能的计算机。不过,在组织内的雇员越来越多地利用比常规的台式计算机功能更有限的便携式计算装置。具体地说,已知的作为个人数字助理(PDA)的手持设备被越来越广泛地使用,并且其用户经常把这种装置和公司网络相连,以便阅读电子邮件或用于同步连接表(contact list)。网络连接可以通过一个相关的台式计算机,或者可以通过独立的网络连接,包括无线与/或远程接入设备。
虽然许多组织不正式提供对手持设备例如PDA的技术支持,但是它们经常收到关于这些设备的不断增加的支持请求。这些请求通常涉及配置手持设备,获得安装在所述设备上的应用程序的新的更新。
在这样的环境,其中大量地使用功能比全台式功能少的计算机或类似计算机的设备。工厂自动化控制器,销售终端的电子网点,气站泵等等,是通常使用的经常和网络相连的,但是没有传统的台式计算机的全功部能和资源的设备的例子。微软公司设计了一种用于这种有限资源设备的Windows操作系统的专用版本,公知为Windows CE操作系统。
在过去,有限资源设备例如PDA和上述的其它的例子不能参与自动化配置管理。现有的配置管理方案对被管理的客户计算机一般都强加了相当大量的处理任务,并且所需要的客户端软件一般不能在有限资源设备例如PDA上运行。可以想象得到,专门为这些设备设计的客户机软件可以被设计用于现有的配置管理系统,但是很可能会逼近或超过这些设备上可用的计算资源的极限。
发明内容
一种用于有限资源客户机的系统管理框架,包括与客户设备分离实现的客户机代理服务器。所述的客户机代理服务器被配置用于和客户设备通信,并且模拟一个代表客户设备的全功能客户计算机。具体地说,客户机代理服务器具有策略评价器,其接收来自配置管理系统的评价,并且评价策略,从而确定它们对于客户设备的适用性。如果客户机代理服务器确定一个策略可应用于客户设备,则客户机代理服务器对客户机提供关于如何应用新的设置或者关于新的软件包如何下载和安装的指令。
图1是现有技术的系统管理框架的示意图;图2是例如在图1所示的现有技术的系统管理框架中使用的配置管理服务器和客户计算机的逻辑元件的框图;图3是按照本发明的实施例的系统管理框架的框图;图4是表示例如在图3所示的系统中使用的配置管理服务器、客户计算机和客户机代理服务器的逻辑元件的框图;图5和图6是表示图3和图4的系统管理框架的方法方面的框图;以及图7是表示计算机元件的框图,其子集可被用于实现其中所述的逻辑功能的各个部分。
具体实施例方式
图3表示系统管理框架30的顶层表示。框架30包括配置管理系统或服务器32,客户设备34和客户机代理服务器36。在所示的实施例中的配置管理服务器系统32包括上述的微软系统管理服务器(SMS)设备,虽然这里所述的技术可以结合来自其它制造者的自动化管理系统来实现。
配置管理系统32被配置用于和上述的多个兼容客户计算机通信并管理所述多个客户计算机。当这种客户计算机是全功能的计算机例如传统的台式计算机时,客户计算机运行上述的专用软件(一般称为管理系统客户机代理程序或客户机组件),从而提供和由配置管理系统提供的功能的兼容性。不过,在图3所示的例子中,客户设备34是有限资源装置,在其上不可能、不实际或者不需要运行自动化配置管理系统的标准客户机组件。有限资源装置包括手持计算机,移动设备,或者其它的计算机或者与传统的全功能的台式计算机相比具有有限资源和功能的类似计算机的设备。这种设备的例子包括PDA、工厂自动化控制器和销售终端的电子网点、气站泵、移动电话等。这些设备一般在与传统的台式计算机操作系统相比系统开销较少并且功能也较少的操作系统下运行。Windows CE操作系统是经常和有限资源计算机例如上述的那些计算机结合使用的操作系统的例子。
因为其有限的功能和资源,以及不能运行配置管理系统的标准的客户软件,客户设备34在本说明中被认为是和配置管理系统32不兼容的其不运行能够直接和配置管理系统32通信并由配置管理系统32管理的软件。而是由客户机代理服务器36模拟一个代表不兼容的客户设备34的兼容的、非有限资源的客户计算机,从而使得配置管理系统能够管理不兼容的客户设备。客户设备的管理包括维持关于所述设备的产品清单(inventory)信息以及对所述客户设备添加和卸除应用程序的能力。
客户机代理服务器36是一种独立于有限资源客户设备34,例如在作为管理系统的一部分的计算机上、在集中式服务器或计算机上、或者在为同步目的而与客户设备34相连的台式主计算机上执行的软件组件。其借助于网络连接或其它装置被连接以便和管理系统32通信。客户机代理服务器36作为被管理的客户机和管理系统32通信,其作为正常的全功能的客户机出现于管理系统32。因而,可以利用标准配置的管理系统32,只需在产品的服务器部分中作微小的改变,以便支持有限资源客户机。
客户机代理服务器36借助于有线网络连接、无线连接或者HTTP代理服务器连接通过主计算机(例如为同步目的而与客户设备相连的台式计算机)和客户设备34通信。为了进行管理,客户设备34和客户机代理服务器36通信,而不直接和配置管理系统32通信。
客户机代理服务器36的责任可以粗略地分为两类(a)在客户设备34和管理服务器32之间转换和中转信息,以及(b)执行本来将由客户设备34执行的管理功能。
关于所述两类中的第一类,客户机代理服务器36从客户设备34获得或接收当前配置信息,其格式配置管理系统32使用的格式和协议不兼容。客户机代理服务器把至少部分所述配置信息转换成和配置管理系统32兼容的格式,并代表客户设备34以管理系统希望的格式向配置管理系统32提供或报告配置信息。
所述配置信息包括标识可以在客户设备上获得的应用程序的软件清单。更具体地说,软件清单包括一个包ID列表,其相应于客户设备根据客户设备用户的选择而已被指令安装或者使之可用的包。配置信息还包括硬件清单。
在所述的实施例中,从客户设备34向客户机代理服务器36传递的配置信息按照XML数据模式被格式化为XML数据,其中的一个例子将在本说明的后面的部分给出。
关于第二类执行管理功能,客户机代理服务器36和管理服务器32通信,以接收或获得策略。如上所述,策略指出可用于下载和安装的配置设置与/或软件包,也包括指出哪种类型的客户机应当下载和实施所指出的配置设置或者下载和安装所指出的软件包的信息。客户机代理服务器36接收来自配置管理系统32的策略,确定是否有策略适用于客户设备34,并且对客户设备发出指令。具体地说,客户机代理服务器按照被确定决定应用于客户设备的策略,命令客户设备下载和执行一个或几个配置改变指令,或者下载、安装并/或移除一个或几个应用程序。提供给客户设备的指令可以指出某一个应用程序或者一组配置改变指令应当被下载的条件,以及它们可以从中被下载的URL(统一资源定位器)。
图4更详细地表示了系统管理框架30的逻辑组件。管理服务器系统32包括清单和发现组件40,策略提供器42,以及应用程序或包分发组件44。
清单和发现组件40从多个客户计算机接收发现数据记录和硬件与软件清单,用于进行资产管理(asset management)。这个信息一般被存储在可以由系统管理员访问的数据库(未示出)中。
策略提供器42向由服务器系统32管理的计算机和其它设备分发策略。所述策略指出可供下载和安装使用的配置设置或软件包,并且还包括指出所述策略应用于哪种类型的客户机的信息。软件包是文件及用于下载和安装文件的指令的集合。
分发组件44是客户机可以和其连接,以便下载应用程序、包、或配置改变指令的连接点。
客户机代理服务器36的逻辑组件包括清单和发现组件46,策略评价器48和指令提供器50。清单和发现组件46与客户设备34交互作用,以便获得关于客户设备的配置的信息,包括硬件和软件清单。从有限资源客户设备34接收到的硬件和软件清单比可以由其它类型的客户机例如全功能台式计算机产生的清单简单得多。清单和发现组件46按照管理服务器系统32使用的通信协议对这个简化的信息格式化,并以硬件和软件清单和发现数据记录(DDR)的形式把所述信息传递给管理服务器系统32。
策略评价器48接收来自管理服务器系统32的策略提供器42的策略,并评价所述策略,以便确定哪一个策略针对客户设备34。当策略评价器48确定一个策略指向客户设备34时,其命令指令提供器组件50向客户设备34提供下载或配置改变指令,这些指令规定如何(可选地,在什么条件下)下载应用程序、包或者作为策略的主题的配置指令集。
客户设备34的逻辑组件包括轮询和报告组件52,调度组件54,下载组件56,安装指令解释器58,以及程序或包安装组件60。这些组件可以利用安装在客户设备上的专用软件来实现,并利用例如URL或关于客户机代理服务器36的其它规范以及鉴别信息和凭证被预先配置。因为客户设备34的有限的功能和资源,这个专用的软件和可以在全功能台式计算机上使用的标准的客户端软件相比,其范围和功能都是有限的。随着讨论的进展,这将会更清楚地看出。
客户设备还具有程序存储器64,其中安装有应用程序和数据库或者数据结构66,利用这些,客户设备34维护一个供应列表(offeringlist),指出通过以前和客户机代理服务器36的交互作用而已经可为客户设备所利用的应用程序或包的。这些组件彼此之间以及和客户机代理服务器36之间的交互作用将在下面参照图5详细说明。
图5表示图4所示的框架的方法方面。在图的左侧上的操作由客户设备34的组件执行。在图的右侧上的操作由客户机代理服务器36的组件执行。在中部的操作由管理员或服务器系统32执行。这些操作将参照需要在所有移动设备上分发和安装一个应用程序的情况进行说明。作为应用程序的一个例子具有3个组件foo.exe,foo.dll和foo.reg。在客户设备上的安装涉及把头两个组件复制到被称为“\ProgramFiles\Foo”的目录上,并把“foo.reg”装入客户设备的注册表中。
初始操作70包括产生含有3个程序组件foo.exe,foo.dll和foo.reg的分发包。所述的包可以包括所谓的“CAB”文件(一种公知的文件类型,用于把多个文件组合成为单个文件,以便容易分发),其可以由接收该文件的客户设备打开,以便在所述客户设备上自动地安装。或者,可以装配非CAB包,其包括应用程序组件和含有可以由客户设备执行的用于完成安装任务的安装脚本的文件。在这个例子中,安装脚本文件被称为“foo.cmd”,并含有下面的指令copy foo.exe“\program files\foo.exe”copy foo.dll“\program files\foo.dll”loadreg foo.regdelete foo.exedelete foo.dlldelete foo.reg这个文件一般由作为系统管理员的人员创建。
按照由调度组件54确定的预定间隔,轮询和报告组件52执行连接到客户机代理服务器36和发送配置信息的操作72。配置信息包括关于客户设备的硬件和软件的各种信息,并且包括这里被称为供应列表的应用程序包的列表。所述供应列表利用包ID标识客户设备已被指令安装或提供安装的应用程序包。包ID从数据库66获得,其根据从客户机代理服务器36接收的指令被维护,如下所述。供应列表指出客户机代理服务器36命令客户机提供利用的所有的包。
配置信息最好按照XML模式报告给客户机代理服务器36。下面是这种模式的一个例子
下面是按照上面的XML模式格式化的实际数据的一个例子,其中黑体字表示可变数据值的例子。XML数据一般作为HTTP邮件(post)传递给客户机代理服务器36<pre listing-type="program-listing">DEVICE POST<devmgmt><identity deviceName=″corpuser-ipaq″userName=″corpuser″domain=″NTDEV″/> <devmgmt-sysinfo varsion=″1.0″type=″full″> <ceDevice class=″Pocket PC2″modelDescription=″Compaq iPAQH3600″cpuType=″StrongARM″/> <osVersion major=″3″minor=″0″buildNum=″9348″CodePage=″1236″> <binFile pid=″{13D65099-CE43-11D0-A2AD-0020357512E7}″ver=″1.0″xipRegion=″OS Core″/> <binFile pid=″{23C46454-CE43-4650-AG7D-0145357512F8}″ver=″1.6″xipRegion=″Apps″/> </osVersion> <screen vRes=″240″hRes=″320″type=″Color″numColors=″65536″/> <transportip=″157.59.244.92″subnet=″255.255.252.0″bandWidth=″10000″/> <power AC=″Connected″battery=″High″batteryPercent=″95″backup=″High″backupPercent=″100″/> <memory total=″31944″program=″15984″programFree=″3584″storage=″15960″storageFree=″13002″/> <storage> <fileSystem name=″root″size=″1002″usedSpace=″500″/> <fileSystem name=″backup″size=″1462″usedSpace=″700″/> <fileSystem name=″data″size=″150″usedSpace=″120″/> </storage> <packages> <package ID=″E9C4C404-A802-460b-B8AF-6BF1D72AF594″/> <package ID=″4A9D1F33-76CC42d2-93BE-F1D86B7FBA36″/> <package ID=″2C0E13E1-4C20-4dc2-A80E-368FD63F986F″/> </packages> </devmgmt-sysinfo> </devmgmt></pre>
package ID属性的例子指出了从配置管理服务器系统32接收的包ID。所述ID可以表示“强制的(mandatory)”包或者“可选择的(optional)”包。强制的包是服务器系统32要求安装在适用的客户设备上的包。可选的包是只在用户选择时才下载和安装的包。由客户设备维护和报告的供应列表相应于客户设备通过以前和客户机代理服务器36的交互作用已经知道的所有适用的强制的和选择的包。
客户机代理服务器36的清单和发现组件46在操作74接收配置信息。响应所述信息的接收,客户机代理服务器执行操作76,对所述信息按照管理服务器系统32期望的格式进行格式化,并把格式化的信息发送给服务器系统32。客户机代理服务器还维护一个从客户设备接收的客户设备ID和由管理服务器系统12指定给客户设备的ID之间的映射。
客户设备34的策略评价器48也接收供应列表,以及从管理服务器系统32接收策略。根据这个信息,客户机代理服务器36执行操作78,将接收到的策略选择性地应用到客户设备34。这涉及判断是否有策略应用到客户设备上,并且按照任何所述可应用的策略评价接收的供应列表,从而确定应当由客户对其供应列表进行的任何改变。所述评价涉及判断是否应当对客户设备的供应列表添加包或从中移除包。作为所述判断的结果,策略评价器48执行向客户设备34发送供应列表指令的操作80,令其按照所述确定的改变改变其供应列表按照从管理服务器32接收的策略移除应用程序并/或下载和安装包。在所述的实施中,供应列表指令以下面的XML格式被发送,其中黑体字符表示将根据包的性质而改变的示例的数据<pre listing-type="program-listing"> <RDM-Operation><packages><add><package ID=″FE046C21-9272-49e0-83D7- 8975566184FO″Type=Mandatory″Name=″Foo Program″Description=″Latest Foo program″/></add><remove><package ID=″E9C4C404-A802-460b-B8AF-6BF1D72AF594″/></remove><packages/> </RDM-Operation></pre>
客户设备34在操作82接收供应列表指令,并在操作84通过分析和执行所述指令进行响应,以便修改其供应列表。在上述的例子中,指令客户设备把由列举的包ID规定的“Foo Program”添加到其供应列表中,并除去也由其包ID标识的另一个程序。
在修改其供应列表之后,客户设备34检测供应列表的变化,并采取合适的操作。如果一个或几个应用程序已被除去,则它们在操作86中被卸载或移除。如果一个或几个应用程序已被添加,则它们在操作88被下载和安装。
图6表示添加或安装新程序的操作88的细节。在确定一个包需要被安装之后,轮询和报告组件52执行操作90,连接客户机代理服务器36,并通过提出一个包请求请求下载指令。包请求由其包ID标识客户已经标记为需要的包。客户机代理服务器36在操作91接收包请求,并在操作92通过产生或编译下载指令文件,并向客户设备34提供下载指令文件进行响应。下载指令文件最好以XML的格式提供。
下载指令文件包括关于包对象应当如何、何时、从哪里以及在什么条件下被下载的各个参数。在所述的实施例中,所述参数包括头部内容块ID(GUID)状态报告的响应URL(可选的)下载指令开始时间(Start Time)(GMT)Δ时间(Delta Time)(GMT)标记(Flags)(连接类型或者连接等级)被请求(Required)(YES或NO,缺省NO)文件说明源URL(Source URL)设备上的目的地(作为完全合格的路径的文件位置)签名(Signature)(文件的签署的杂乱数据(Signed
hash))在下载之后在设备上运行的命令(可选的)“内容块”包含关于指令文件本身的内容的信息,包括URL,客户应当对其报告在后列出的操作的成功或失败。“下载指令”规定“开始时间”或“Δ时间”(一个时间间隔,操作应当在该间隔后开始),以及表示允许进行下载的条件的“标记”。例如,标记可以指出只有当存在特定通信能力时,例如通过高速网和网络相连时,才开始下载。作为另一个例子,标记可以指出,只有当客户设备和交流电源(与电池电源相对)相连时,下载才开始。
“被请求”参数指出管理服务器32是否请求把所述包安装在设备上。“文件说明”指出要被复制到客户设备上的文件的源位置和目的地位置,以及文件的签名。“命令”参数标识在成功地复制指令文件预先规定的文件之后要由客户设备执行的指令。
下面是XML下载指令文件的一个例子,其中黑体字符是变量数据值<pre listing-type="program-listing">DOWNLOAD XML MESSAGE<RDM-Operation><Authorization SourceGUID=″66CC03B9-6C89-45e3-94C5- 4213925B7B21″Signature=″Foo Bar″/><Contents Action=″Create″ID=″FE046C21-9272-49e0-83D7- 8975566184F0″ResponseUrl=″https//server/device.dll?status″><Description SourceName=″Server″OfferingName=″Foo Program″><ShortDescription>“Latest Foo program”</ShortDescription></Description><Download StartTime=″d0 07 0a 00 03 00 12 00 00 00 2a 00 05 0000 00″DeltaTime=″00 00 01 00 00 00 00 00 00 00 00 00 00 0000 00″RetryTime=″00 00 01 00 00 00 00 00 00 00 00 00 00 0000 00″MaxRetryCount=″5″Type=″Download″Flags=″05 0000 00″RequireUrlSigs=″0″NotificationType=″MandatorySilent″><CopyFile Url=″https//server/drop/foo.exe″Dest=″\temp\foo.exe″/> <CopyFile Url=https//server/drop/foo.dllDesy=″\temp\foo.dll″/><CopyFile Url=″https//server/drop/foo.reg″Dest=″\temp\foo.reg″/><CopyFile Url=″https//server/drop/foo.cmd″Dest=″\temp\foo.cmd″/><PostlnstallCommand=″\temp\foo.cmd″/></Download></Contents></RDM-Operation></pre>
客户设备34接收和分析接收的下载指令文件,并在操作94利用调度组件54调度下载的指令,以便按照开始时间、Δ时间与/或和所述指令相关的标记执行。在合适的时间,调度程序命令下载组件56执行操作95,下载在下载指令文件中规定的文件。由指令解释程序58执行的下一个操作96包括执行由下载指令文件的“命令”参数表示的指令,其在大多数情况下将由安装组件60启动下载文件的安装。在给定的例子中,这个命令包括在本文中上面说明的“foo.cmd”脚本。执行“foo.cmd”包括执行其各个指令,这些指令执行任何所需的安装任务,在给定的例子中,就是把文件复制到客户设备的合适的返回图5,在从其程序列表中添加或除去程序或包之后,或者在安装程序或包之后,客户设备34执行操作97,向客户机代理服务器36发送表示操作的成功(或失败)的状态响应。所述状态响应最好被格式化为XML数据,指出已被下载、安装与/或除去的包的包ID。例如,XML状态响应可以采取以下的形式其中黑体字符表示变量数据<Status><response code=″100″ID=″E587E5D6-7160-4b8e-A3D9-041B5568704″Type=″Download″/><response code=″100″ID=″E587E5D6-7160-4b8e-A3D9-041B85568704″Type=″instll/″></Status>
客户机代理服务器36在操作98接收并处理状态响应。
除去上面详细说明的特定的功能之外,客户机代理服务器36还执行其它功能,以便支持客户设备52的管理。具体地说,客户机代理服务器36代表客户设备34响应状态请求和其它通信。此外,通过命令客户设备下载、安装与/或执行特定的报告应用程序,客户机代理服务器能够启动由客户设备34进行的更广泛的报告。
服务器和客户机代理服务器组件以及上述的功能由一个或几个计算机来实现。图7表示了这种计算机的一般例子的组件,所述计算机由标号100表示。图7表示的组件只是一个例子,并不对本发明的功能范围构成任何限制;本发明不必依赖于图7所示的特征。
一般地说,可以使用各种不同的通用的或专用的计算系统配置。适用于本发明的公知的计算系统的例子、环境与/或配置包括但不限于个人计算机,服务器计算机,膝上型设备,微处理器系统,基于微处理器的系统,网络PC,微型计算机,大型计算机,包括任何上述系统或设备等的分布式计算环境等。
计算机的功能在许多情况下由计算机可执行的指令例如由计算机执行的程序模块来实施。一般地说,程序模块包括例行程序,程序,对象,组件,数据结构等,它们执行特定的任务,或实现特定的抽象数据类型。任务也可以通过利用通信网络连接的远程处理设备完成。在分布式计算环境中,程序模块可以位于本地和远程计算机存储介质中。
指令与/或程序模块在不同的时间被存储在计算机可读的介质中,所述介质或者是计算机的一部分,或者是可以由计算机读出的介质。程序一般分布在例如软盘,CD-ROM,DVD或其它形式的传播介质例如调制信号上,由之安装到或载入计算机的辅存储器中。在执行时,它们至少部分地被载入计算机的主电子存储器。当计算机可读介质含有指令、程序与/或模块,用于结合微处理器或其它数据处理器实施上述的步骤和操作时,这里所述的发明包括这些以及其它各种类型的计算机可读介质。本发明还包括按照上述的方法和技术编程的计算机本身。
为了便于说明,程序以及其它可执行的程序组件例如操作系统,这里作为分立模块进行说明,但应认识到,这种程序和组件在不同的时间驻留在计算机的不同的存储部件中,并由计算机的数据处理器执行。
现在参看图7,计算机100的部件可以包括但不限于处理单元120,系统存储器130和系统总线121,所述总线把包括系统存储器在内的各个系统组件和处理单元120相连。系统总线121可以是几种类型的总线结构中的任何一种类型的结构,包括存储器总线或存储器控制器,外围总线,以及使用多种总线结构的任何一个的局域总线。作为例子而不是限制,所述结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强型ISA(EISAA)总线,视频电子标准协会(VESA)局域总线,以及外围部件互联(PCI)总线,其也被称为中层楼(Mezzanine)总线。
计算机100一般包括各种计算机可读的介质。计算机可读的介质可以是可由计算机100访问的任何现有的介质,包括易失性介质和非易失性介质,可换介质和不可换介质。作为例子而非限制,计算机可读介质可以包括计算机存储介质和传播介质。计算机存储介质包括以任何方法或技术实现的,用于存储信息例如计算机可读的指令、数据结构、程序模块或者其它数据的易失性和非易失性,可换和不可换介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、快速闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光盘存储器、盒式磁带、磁带、磁盘存储器或其它磁存储装置、或者任何其它可用于存储所需的信息并且可由计算机110访问的介质。传播介质一般包含计算机可读的指令、数据结构、程序模块或在调制数据信号中的其它数据,所述调制数据信号例如是载波或其它的传输机制,传播介质还包括任何信息传输介质。术语“调制数据信号”指的是这样的信号,其特性中的一种或多种被设置或改变,从而将信息编码在信号中。作为举例而非限制,传播介质包括有线介质例如有线网络,或直接导线连接,以及无线介质例如声音介质、RF、红外和其它的无线介质。上述这些介质的任意组合也被包括在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,例如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)一般被存储在ROM 131中,其含有用于例如在启动期间帮助在计算机100的元件之间传递信息的基本的例行程序。RAM 132一般含有由处理器单元120立即访问的与/或当前正在由处理器单元120操作的数据与/或程序模块。作为举例而非限制,图7示出了操作系统134,应用程序135,其它程序模块136,以及程序数据137。
计算机100还可以包括其它可换/非可换、易失性/非易失性计算机存储介质。仅仅作为例子,图7示出了硬盘驱动器141,其可以对非可换非易失性磁介质进行读写,磁盘驱动器151,其可以对可换非易失性磁盘152进行读写,以及光盘驱动器155,其可以对可换非易失性光盘156例如CD ROM或其它光学介质进行读写。可以在所举例的操作环境中使用的其它可换/非可换、易失的/非易失的计算机存储介质包括但不限于盒式磁带、闪存卡、数字通用盘、数字视频磁带、固态RAM,固态ROM等。硬盘驱动器141一般通过非可换存储器接口例如接口140和系统总线121相连,磁盘驱动器151和光盘驱动器155一般通过可换存储器接口例如接口150和系统总线121相连。
上面讨论的并在图7中示出的驱动器及其相关的计算机存储介质用于存储计算机可读指令、数据结构、程序模块和用于计算机100的其它数据。在图7中,例如,所示的硬盘驱动器141用于存储操作系统144,应用程序145,其它程序模块146和程序数据147。注意,这些组件可以和操作系统134,应用程序135,其它程序模块136以及程序数据137相同或不同。图中对操作系统144,应用程序145,其它程序模块146和程序数据147给予不同的标号是要说明它们至少是不同的拷贝。用户可以通过输入装置例如键盘162和通常被称为鼠标、跟踪球或触控板的定位设备161对计算机100输入指令或信息。其它的输入装置(未示出)可以包括麦克风、游戏杆、游戏板(game pad)、盘式卫星天线(satellite dish)、扫描仪等。这些和其它的输入装置通常通过和系统总线相连的用户输入接口160和处理单元120相连,但是也可以通过其它接口以及总线结构例如并行端口、游戏端口或者通用串行总线(USB)相连。监视器191或其它类型的显示装置也可以通过接口例如视频接口190和系统总线121相连。除去监视器之外,计算机还可以包括其它的外围输出装置例如扬声器197和打印机196,它们可以通过输出外围接口195连接。
计算机可以通过使用和一个或几个远程计算机例如远程计算机180的逻辑连接而在网络环境中操作。远程计算机180可以是个人计算机,服务器,路由器,网络PC,同级设备或其它的公共网络节点,并且一般包括上述的关于计算机100的许多或所有的元件,尽管在图7中只示出了存储器存储装置181。图7中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可以包括其它网络。这种网络环境在办公室、企业计算机网络、内部网和互联网中是通常的。
当在LAN联网环境中使用时,计算机100通过网络接口或适配器170和LAN 171相连。当在WAN联网环境中使用时,计算机100一般包括调制解调器172或其它用于在WAN 173例如互联网上建立通信的装置。调制解调器172可以是内置的或外置的,可以通过用户输入接口160或其它合适的机构和系统总线121相连。在网络环境中,对于计算机100或其一部分描述的程序模块可以存储在远程存储器存储装置中。作为举例而非限制,图7示出了驻留在存储装置181中的远程应用程序185。应当理解,所示的网络连接只是一个例子,可以使用在计算机之间建立通信连接的其它装置。
有限资源客户设备34通过使用类似于图7所示的技术来实现,尽管是在更为有限的规模上。此外,有限资源客户设备例如PDA、蜂窝电话等一般没有图7所示的所有功能。例如,有限资源客户通常没有用于可换磁介质例如软盘或CD-ROM的驱动器。这种客户机一般具有少得多的存储容量,较小的显示装置和键盘,较慢的或功能较少的处理器。此外,许多这种设备具有电子闪存器,用于代替硬盘。此外,有限资源装置一般运行没有台式计算机操作系统所支持的所有功能的操作系统。例如。有限资源装置可以运行Windows CE操作系统,而不运行Windows XP操作系统。
虽然本发明按照特定的结构特征和方法步骤进行了说明,但是应当理解,在所附权利要求中限定的本发明不必局限于这些特定的特征。而是,这些特定的特征和方法步骤只是作为用于实施权利要求限定的优选的形式披露的。
权利要求
1.一种系统管理框架,包括配置管理系统,其被配置用于和多个兼容客户计算机通信并管理所述客户计算机;以及客户机代理服务器,其被配置用于和与所述配置管理系统不兼容的客户设备通信,所述客户机代理服务器独立于所述不兼容客户设备实施,并被配置用于和所述配置管理系统通信,并模拟一个代表所述不兼容客户设备的兼容客户计算机,从而允许所述配置管理系统管理所述不兼容客户设备。
2.如权利要求1所述的系统管理框架,其中所述客户机代理服务器被配置用于接收来自客户设备的配置信息,并向所述配置管理系统报告所述接收的配置信息。
3.如权利要求1所述的系统管理框架,其中所述客户机代理服务器被配置用于接收其格式与配置管理系统不兼容的来自客户设备的配置信息,并把所述接收到的配置信息以与配置管理系统兼容的格式提供给配置管理系统。
4.如权利要求1所述的系统管理框架,其中所述客户机代理服务器被配置用于接收符合XML模式的来自客户设备的配置信息,并把所接收到配置信息提供给所述配置管理系统。
5.如权利要求1所述的系统管理框架,其中所述客户机代理服务器被配置用于接收来自客户设备的硬件和软件清单,并向所述配置管理系统报告接收到的硬件和软件清单。
6.如权利要求1所述的系统管理框架,其中所述客户机代理服务器包括策略评价器,其接收来自配置管理系统的策略,确定有没有策略适用于所述客户设备,并按照被确定为适用于所述客户设备的策略指令所述客户设备。
7.如权利要求1所述的系统管理框架,其中所述客户机代理服务器包括策略评价器,其接收来自配置管理系统的策略,确定有没有策略适用于所述客户设备,并按照被确定为适用于所述客户设备的策略指令客户设备下载一个或多个应用程序。
8.如权利要求1所述的系统管理框架,其中所述客户机代理服务器包括策略评价器,其接收来自配置管理系统的策略,确定有没有策略适用于所述客户设备,并按照被确定为适用于所述客户设备的策略指令所述客户设备下载一个或多个配置改变指令。
9.如权利要求1所述的系统管理框架,其中所述客户机代理服务器包括策略评价器,其接收来自配置管理系统的策略,确定有没有策略适用于所述客户设备,并按照被确定为适用于所述客户设备的策略命令客户设备在客户设备上安装一个或多个应用程序。
10.如权利要求1所述的系统管理框架,其中所述客户机代理服务器包括策略评价器,其接收来自配置管理系统的策略,确定有没有策略适用于所述客户设备,并按照被确定为适用于所述客户设备的策略命令客户设备在所述客户设备上进行一个或多个配置改变。
11.如权利要求1所述的系统管理框架,其中所述客户机代理服务器包括策略评价器,其接收来自配置管理系统的策略,确定有没有策略适用于所述客户设备,并按照被确定为适用于所述客户设备的策略命令客户设备下载和安装一个或多个应用程序。
12.如权利要求1所述的系统管理框架,其中所述客户机代理服务器包括策略评价器,其接收来自配置管理系统的策略,确定有没有策略适用于所述客户设备,并按照被确定为适用于所述客户设备的策略命令客户设备下载并执行配置改变指令。
13.如权利要求1所述的系统管理框架,其中所述客户机代理服务器包括策略评价器,其接收来自配置管理系统的策略,确定有没有策略适用于所述客户设备,并按照被确定为适用于所述客户设备的策略命令客户设备移除一个或多个应用程序。
14.如权利要求1所述的系统管理框架,其中所述客户机代理服务器被配置用于执行以下的操作接收来自客户设备的应用程序列表;接收来自配置管理系统的策略;根据接收的策略检查所述应用程序列表,确定是否应当对所述应用程序列表进行改变;按照所确定的改变命令客户设备改变其应用程序列表。
15.如权利要求1所述的系统管理框架,其中所述客户机代理服务器被配置用于执行以下的操作接收来自客户设备的当前配置;接收来自配置管理系统的策略;根据接收的策略检查所述接收的当前配置,确定是否应当对所述当前配置进行改变;按照所确定的改变命令客户设备改变其配置。
16.如权利要求1所述的方法,其中所述代理服务器组件被配置用于接收来自客户设备的包请求,并作为响应,返回可以被客户设备执行而下载一个应用程序包的下载指令。
17.如权利要求1所述的系统管理框架,其中所述客户机代理服务器被配置用于执行以下的操作接收来自客户设备的应用程序列表;接收来自配置管理系统的策略;根据接收的策略检查所述应用程序列表,确定是否应当对所述应用程序列表进行改变;按照所确定的改变命令客户设备改变其应用程序列表;接收来自客户设备的包请求;以及响应对所述包请求的接收,返回可以被客户设备执行而下载一个应用程序包的下载指令。
18.如权利要求1所述的系统管理框架,还包括维护应用程序列表的客户设备,其中所述客户设备向客户机代理服务器提供所述应用程序列表;所述客户机代理服务器根据从配置管理系统获得的策略检查所述应用程序列表,从而确定应当对所述客户机的应用程序列表进行的改变;根据所确定的改变,客户机代理服务器命令客户设备改变其应用程序列表;客户设备提交相应于添加到客户机的应用程序列表中的应用程序的包请求;以及客户机代理服务器响应所述的包请求,返回可以由客户设备执行而下载应用程序包的下载指令。
19.一种或多种计算机可读的介质,包含用于实现和配置管理系统结合使用的客户机代理服务器的指令,所述指令可以由计算机执行,用于完成以下的操作和与所述配置管理系统不兼容的客户设备通信;从所述客户设备获得配置信息,其中所述配置信息标识在所述客户设备上可用的应用程序;模拟一个代表所述不兼容客户设备的兼容客户计算机,从而使得所述配置管理系统能够对在不兼容客户设备上可用的应用程序进行添加和移除。
20.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括以和配置管理系统兼容的格式向配置管理系统报告至少一部分所述配置信息。
21.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括接收来自客户设备的,其格式与所述配置管理系统不兼容的配置信息;以及以和配置管理系统兼容的格式向配置管理系统报告至少一部分所述配置信息。
22.如权利要求19所述的一种或多种计算机可读介质,其中所述配置信息还包括所述客户设备的硬件和软件清单,所述操作还包括代表所述客户设备向配置管理系统报告接收到的硬件和软件清单。
23.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括接收来自配置管理系统的策略;确定是否有策略适用于所述客户设备;以及按照被确定为适用于所述客户设备的策略指令所述客户设备。
24.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括接收来自配置管理系统的策略;确定是否有策略适用于所述客户设备;以及按照被确定为适用于所述客户设备的策略命令所述客户设备下载和安装一个或多个应用程序。
25.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括接收来自配置管理系统的策略;确定是否有策略适用于所述客户设备;以及按照被确定为适用于所述客户设备的策略命令所述客户设备下载并执行配置改变指令。
26.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括接收来自配置管理系统的策略;确定是否有策略适用于所述客户设备;以及按照被确定为适用于所述客户设备的策略命令所述客户设备移除一个或多个应用程序。
27.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括接收来自配置管理系统的策略;根据接收的策略检查客户设备现有的应用程序的标识,从而确定应当对客户设备现有的应用程序进行的改变;按照所述确定的改变命令客户设备改变其现有的应用程序。
28.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括接收来自配置管理系统的包请求;响应所述包请求,返回可以由所述客户设备执行以下载应用程序包的下载指令。
29.如权利要求19所述的一种或多种计算机可读介质,所述操作还包括接收来自配置管理系统的策略;根据接收的策略检查客户设备现有的应用程序的标识,从而确定应当对客户设备现有的应用程序进行的改变;按照所确定的改变命令客户设备改变其现有的应用程序;接收来自客户设备的包请求;以及响应所述包请求,返回可以由所述客户设备执行以下载应用程序包的下载指令。
30.一种在配置管理系统的管理框架中包括有限资源客户设备的方法,所述方法包括和有限资源客户设备通信,从而获得关于其配置的配置信息;模拟一个代表有限资源客户设备的非有限资源客户计算机,使得配置管理系统能够管理所述客户设备的配置;其中,所述模拟包括对有限资源客户设备选择性地应用从所述配置管理系统接收的策略。
31.如权利要求30所述的方法,其中所述配置信息标识所述有限资源客户设备现有的应用程序;以及所述选择性地应用包括命令所述有限资源客户设备对其现有的应用程序进行应用程序的添加与/或移除。
32.如权利要求30所述的方法,还包括以和配置管理系统兼容的格式向配置管理系统报告至少一部分所述配置信息。
33.如权利要求30所述的方法,其中还包括接收来自有限资源客户设备,其格式和所述配置管理系统不兼容的配置信息;以及以和配置管理系统兼容的格式向配置管理系统报告至少一部分所述配置信息。
34.如权利要求30所述的方法,其中所述配置信息还包括所述有限资源客户设备的硬件和软件清单,所述方法还包括代表所述有限资源客户设备向配置管理系统报告所接收到的硬件和软件清单。
35.如权利要求30所述的方法,其中选择性地应用策略包括按照被确定为适用于所述有限资源客户设备的策略,命令所述有限资源客户设备下载和安装一个或多个应用程序。
36.如权利要求30所述的方法,其中选择性地应用策略包括按照被确定为适用于所述有限资源客户设备的策略,命令所述有限资源客户设备进行一个或多个配置改变。
37.如权利要求30所述的方法,其中,选择性地应用策略包括按照被确定为适用于所述有限资源客户设备的策略,命令所述有限资源客户设备移除一个或多个应用程序。
38.如权利要求30所述的方法,还包括接收来自有限资源客户设备的包请求;响应所述包请求,返回可以由所述客户设备执行以下载应用程序包的下载指令。
全文摘要
本发明披露了一种移动式和嵌入式设备的配置和管理系统,该系统包括独立于所述客户设备实现的客户机代理服务器。所述客户机代理服务器被配置成与所述客户设备通信,并模拟一个代表所述客户设备的全功能客户计算机。
文档编号G06F15/16GK1441374SQ0215590
公开日2003年9月10日 申请日期2002年12月5日 优先权日2001年12月5日
发明者丹尼斯·克莱格·马尔, 威内·迪奥, 郎大春, 詹福瑞·布莱恩·菲利普, 迈克·汤姆森 申请人:微软公司