CN1573701A - 分布式构建环境中的软件映像创建 - Google Patents

分布式构建环境中的软件映像创建 Download PDF

Info

Publication number
CN1573701A
CN1573701A CNA2004100619111A CN200410061911A CN1573701A CN 1573701 A CN1573701 A CN 1573701A CN A2004100619111 A CNA2004100619111 A CN A2004100619111A CN 200410061911 A CN200410061911 A CN 200410061911A CN 1573701 A CN1573701 A CN 1573701A
Authority
CN
China
Prior art keywords
computing machine
server
computer
software image
data structure
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.)
Granted
Application number
CNA2004100619111A
Other languages
English (en)
Other versions
CN100437492C (zh
Inventor
S·洛德韦克
J·科恩
R·布克哈特
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1573701A publication Critical patent/CN1573701A/zh
Application granted granted Critical
Publication of CN100437492C publication Critical patent/CN100437492C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/505Allocation 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 the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

在多个客户计算机之中分布软件映像创建和配置。服务器计算机定义与软件映像的创建相关的作业。每一客户计算机与服务器进行通信来标识、接受并完成作业。服务器和客户计算机维护指示作业可用性和状态的数据结构。在该分布式构建环境中,原始设备制造商(OEM)和***构建者能够在工厂中简单地修改、创建软件并对其成像来显著地减少资源消耗和时间。

Description

分布式构建环境中的软件映像创建
技术领域
本发明的实施例涉及软件映像创建的领域,尤其涉及第一计算机向第二计算机授权软件映像创建的分布式构建环境。
背景技术
在典型的操作***构建环境中,代码被计算机编译成二进制形式。这类环境无法使用外部资源来生成操作***运行时刻映像。构建环境能够支持计算机内部的映像创建,但仅能使用有限的宝贵资源供应来满足最终操作***映像的创建的需要。例如,一些现有环境专用并配置一个计算机来构建特定映像(即,操作***或应用程序)。然而,这类***效率较低,因为专用计算机仅用于构建特定映像(如可能一天一次或一天两次)。由此,每一专用计算机在大部分时间都处于空闲状态。而且,当要创建的不同映像数增加时,所需要的处理硬件量也随之增加。例如,如果需要对7个不同产品的6个版本或配置构建映像,则需要42个专用计算机来构建所有的映像。初始硬件、维护以及对专用机器的支持的成本是基本的。需要一种能够使用外部资源来创建软件映像的***。此外,还需要一种使用少量构建计算机来有效地构建映像的***。另外,由于操作***的安装和配置通常在终端用户的计算机上执行,用户会遇到延迟和不便。需要一种安装和配置在映像创建过程中出现的***。
一些现有***向客户计算机分配任务来完成。例如,一些现有***实现分布式编译,其中,客户计算机编译应用程序的一部分,中央服务器将编译的部分连接为应用程序。在另一示例中, SETI@home项目将任务分布到客户计算机以分析对外星生物的搜索中的数据。然而,在这类***中,客户计算机并不创建最终产品。而且,这类***与已安装的软件映像的创建无关。
因此,需要一种用于软件映像的分布式构建环境的***来着眼于这些和其它缺点中的一个或多个。
发明内容
本发明的实施例涉及分布式构建环境。在一个实施例中,本发明包括从第一计算机向第二计算机授权软件映像的安装和配置。在一个形式中,多个服务器计算机定义与软件映像安装和配置相关的作业。多个客户与服务器进行通信来标识、接受并完成作业。例如,本发明的分布式构建环境中的每一客户计算机可以连续地用来构建不同软件映像。在这一方式下,减少了创建映像所需的客户计算机的数量。
本发明提供了一种通过成像来安装和配置的公用方法。而且,由于安装和成像可由执行构建的客户定制,从而减少了操作***安装次数。原始设备制造商(OEM)和***构建者可以使用本发明的分布式成像进程在工厂中简便地修改、创建客户并对其成像,从而显著地减少资源消耗和时间。
依照本发明的一个方面,用于分布式构建的***包括第一计算机和第二计算机。第一计算机维护作业的列表。每一作业具有与已安装的软件映像的创建相关联的操作。第二计算机从第一计算机接受一个作业并通过执行与其关联的操作来执行所接受的作业。
依照本发明的另一方面,一种方法在分布式构建环境中操作,在分布式构建环境中一个或多个第一计算机向第二计算机授权已安装的软件映像的创建。由第二计算机执行的该方法包括从第一计算机之一接受作业。该作业具有与已安装的软件映像的创建相关联的操作。该方法还包括通过执行该操作来完成所接受的作业。完成的作业代表已安装的软件映像。
依照本发明的再一方面,一种方法在分布式构建环境中操作,在分布式构建环境中第一计算机向一个或多个第二计算机授权已安装的软件映像的创建。由第一计算机执行的方法包括维护作业列表。每一作业与已安装的软件映像的创建相关。每一第二计算机选择一项或多项作业并执行所选择的作业。
依照本发明的再一方面,在第一计算机向第二计算机授权已安装的软件映像的创建的分布式构建环境中存在一种数据结构。该数据结构代表与软件映像的安装相关联的状态。该数据结构包括与第二计算机相关联的标识符。该数据结构也包括指示由标识符所标识的第二计算机所执行的安装状态的描述符。
依照本发明的另一方面,在第一计算机向第二计算机授权已安装的软件映像的创建的分布式构建环境中存在一种数据结构。该数据结构储存在第一计算机上。该数据结构代表一项或多项作业。该数据结构包括与每一作业相关联的作业标识符。该数据结构还包括定义与作业标识符相关联的由第二计算机执行来安装软件映像的多个操作的脚本。
依照本发明的再一方面,一种***提供了一种第一计算机向第二计算机授权已安装的软件映像的创建的分布式构建。该***包括用于第一计算机的列表装置、用于第二计算机的接口装置以及用于第二计算机的安装装置。列表装置维护作业列表。每一作业与所安装的软件映像的创建相关。接口装置通过列表装置接受一项由第一计算机维护的作业。该作业具有与软件映像的安装相关联的操作。安装装置通过执行该操作来完成通过接口装置接受的作业。完成的作业代表所安装的软件映像。
作为选择,本发明可以包括各种其它方法和装置。
其它特性将在后文中部分明确并部分指出。
附图说明
图1是客户/服务器网络***的示例性实施例。
图2是说明依照本发明的客户和服务器之间的通信的示例性结构图。
图3是说明使用主服务器来对所有客户维护来自所有服务器的作业的示例性结构图。
图4是说明依照本发明的客户软件操作的示例性流程图。
图5是说明依照本发明的服务器软件操作的示例性流程图。
图6是说明客户计算机可访问的示例性计算机可读媒质的结构图。
图7是说明服务器计算机可访问的示例性计算机可读媒质的结构图。
图8是说明可实现本发明的合适计算***环境的一个示例的结构图。
所有附图中,相应标号标识相应部件。
具体实施方式
在一个实施例中,本发明包括分布式构建环境,其中一个或多个第一计算机向一个或多个第二计算机授权软件映像的创建(如安装和配置)。具体地,至少一个服务器生成要由至少一个分布式客户完成的成映像工作项目列表(如作业)。该列表在服务器配置和生成构建的环境的基础上生成。在创建工作项目列表之后,任一可用的成像客户机能够从任一服务器选择并完成工作项目。每一工作项目仅由一个客户机选择并完成。客户机安装、配置操作***并对其成像,然后将最终映像上传回服务器。服务器向客户机提供指令(如,通过脚本机制)来完成作业。当客户机完成作业之后,客户机用完成状态来更新服务器。然后客户机搜索另一作业来接受并完成。
本发明的分布式构建环境包括客户机上的最小配置,简化了客户机的重新分配和重新分布。该分布式环境向任一服务器分配额外的客户机资源。另外,该进程是可伸缩的(scalable)。因为一个成像客户机可以创建多个不同的产品映像,因此可以通过添加额外的成像客户机来减少构建次数。安装多个成像客户机并配置多个软件映像显著地提高了客户机资源使用率和效率。例如,现有***中,如果需要为7个不同的产品的6个版本或配置构建映像,则需要42个专用计算机来构建所有的映像。然而,采用本发明,单个计算机可以接连地构建每一映像,由此减少了处理硬件的数量和成本。
首先参考图1,结构图说明了在本发明的分布式构建环境中使用的客户机/服务器网络***的示例性实施例。图1示出了网络***50包括多个服务器51和客户机52。这些计算机51、52通过网络53采用著名的网络化技术连接,用于高速数据通信。因特网是网络53的一个示例。服务器51从大量远程网络客户机53接受请求。服务器51通过网络53向客户机52提供包括数据在内的响应,然而也可以使用其它的通信方式。本发明参考服务器51和客户机52来描述,然而发明人认为本发明在其它网络***中也可操作。也即,本发明并非局限于图1所示的客户机/服务器网络***50。例如,本发明可以在对等网络***中应用。
下面参考图2,示例结构图说明了依照本发明的客户机52和服务器51之间的通信。在图2中,服务器计算机51,如服务器A和服务器B,各自与多个客户计算机52,如客户机X、客户机Y和客户机Z进行通信,以在分布式构建环境中授权所安装的软件映像的创建。每一服务器计算机51担当第一计算机,操作以维护作业列表。每一作业与至少一个与已安装的软件映像的创建相关联的操作有关。例如,每一软件产品可能有一项作业,每一服务器51可能有多项作业。每一客户计算机52担当第二计算机,操作以从第一计算机接受一项作业并通过执行与其关联的操作来完成所接受的作业。具体地,该操作包括安装、配置软件并对其成像。第二计算机(如客户计算机52)将已安装并已配置的软件映像传送到第一计算机(如服务器计算机)。
在一个形式中,服务器计算机51和服务器软件组成用于维护作业列表的列表装置202。客户计算机52和客户机软件组成用于从服务器计算机51接受一项作业的接口装置204。客户计算机52和客户机软件也组成用于通过执行一个或多个与该作业相关联的操作来完成所接受的作业的安装装置206。完成的作业代表已安装的软件映像。与列表装置、接口装置和安装装置相应的结构还包括图示并在这里描述的元件。此外,与配置已安装的软件映像的装置(未示出)相应的结构包括客户机计算机52、客户机软件以及图示并在这里描述的元件。
下面参考图3,示例性结构图说明了使用主服务器302来维护来自所有服务器51的对所有客户机52的作业。在图3的示例实施例中,每一客户计算机52轮询或定位主服务器302。主服务器302维护可用服务器计算机51的列表,并有规律地(如基于请求或广播)向每一客户计算机52传递该列表。客户计算机52访问该列表来找出具有将要授权并完成的作业的服务器51(如服务器A)。该作业而后可以通过主服务器302或者通过服务器51和客户机52之间的对等连接授权给客户机52。在另一实施例中,客户计算机52与多个主服务器302的至少一个进行通信。
下面参考图4,示例性流程图说明了依照本发明的客户机软件的操作。客户机软件包括计算机可执行指令,用于在402从服务器51请求作业、在404接受该作业并在406通过执行该操作来完成所接受的作业。接受作业包括接连地与每一服务器51进行通信来标识与服务器51相关联的一项或多项作业。每一服务器51在与服务器51相关联的特定文件(如图7中的relbuild.xml)中储存可用作业的列表。客户计算机52访问服务器51上的特定文件来标识可用作业。在一个形式中,每一服务器51也储存与每一作业相关联并储存在服务器51可访问的媒质上的作业状态文件(如图7中的job_id.xml)。客户计算机52通过与作业相关联的作业状态文件对每一作业确定其可用性状态。例如,缺少作业状态文件指示该作业的可用性。
每一作业具有其相应的优先级。作业列表依照每一作业的优先级来组织。由此,客户计算机52选择最高优先级的作业(如通过选择标识的作业的第一项)。另外或作为选择,客户计算机52可能接受由服务器51之一分配的作业。接受作业之后,客户计算机52创建一个与该作业相关联的文件(如图7中的job_id.xml)来指示客户计算机52当前在执行与该作业相关联的操作。该文件储存在与客户计算机52和/或服务器计算机相关联的计算机可读媒质上。为如图7所示的在与服务器计算机相关联的媒质上储存该文件,客户计算机52向服务器51提供证书来鉴别。
本领域的技术人员可以注意到,也存在其它方法用于指示一项作业被客户计算机52之一接受。例如,每一服务器51上的作业列表可能包括指示客户52已接受该作业的字段。发明人认为,所有这类方法都包含在本发明的范围之内。
客户计算机52也可以下载指令,如任务列表或脚本来完成作业。在另一实施例中,指令包括软件组件,如完成作业中使用的库或其它对象文件。客户机软件包括指令,用于在408配置已安装的软件映像,并在410向从其接受作业的服务器51发送回已安装的软件映像。已安装的软件映像代表准备好展开的操作***和/或应用程序。
计算机52可访问的一个或多个计算机可读媒质具有用于执行图4所示的方法的计算机可执行指令。在一个实施例中,客户计算机52在运行、最小操作***环境的语境下执行指令。
在特定的示例中,客户机软件执行以连续地向(多个)服务器轮询已标帖的作业。对特定服务器51标帖的每一作业,客户机软件确定该作业的当前状态。在一个实施例中,客户机软件搜索与作业相关联的作业状态文件(见图7)的缺乏或存在。如果每一作业的作业状态文件指示没有来自特定服务器51的可用作业,则客户机软件接连地向另外的服务器51轮询已标帖的作业。
如果来自特定服务器51有一个或多个可用的作业,则客户机软件执行以接受其中一项作业。例如,客户机软件可以接受第一可用作业(如果按优先级排列)或接受由标帖作业的服务器51分配的作业。接受与服务器计算机51之一相关联的作业之一之后,客户机软件使用证明在服务器计算机上创建文件(如图7中的job_id.xml)来指示该作业已接受。客户机软件还可以在本地创建相应的状态文件。客户机软件执行与所接受的作业相关联的操作来完成该作业。例如,操作可以包含在脚本中,来创建、安装、定制、配置和/或修改软件映像(如操作***或应用程序的映像)。完成作业之后,客户机52储存以后能够发送到其它地方(如,到标帖该作业的服务器计算机)的已安装并已配置的软件映像。
客户机52的一个示例性脚本包括操作,如以下的一个或多个:配置或格式化硬盘驱动器、下载特定的文件用于设立、开始或装入设立、完成设立、激活客户机52、启动进入最小操作***环境、创建操作***的映像以及将完成的映像上传到服务器51。
下面参考图5,示例性流程图说明了依照本发明的服务器软件的操作。服务器软件包括计算机可执行指令,用于在502动态地创建并维护作业列表。每一作业与已安装的软件映像的创建(如安装并配置软件映像)相关。服务器计算机将已维护的列表标帖为客户机计算机52可访问的网络资源(如在存储媒质上)。每一客户机计算机52选择一项或多项作业,并执行所选择的作业。该列表包括可用于客户机计算机52选择的作业、已选择的作业和已执行(如已完成)的作业。
维护包括根据用户输入将作业添加到列表以及在列表中组织作业。作业列表储存在服务器51和客户机计算机52可访问的文件(如图7中的relbuild.xml)中。维护包括在504从客户机计算机52之一接收与客户机计算机52选择并执行的作业之一相应的已创建并已配置的软件安装。作为对接收已完成作业的响应,在506,服务器计算机将该作业从列表中移除。软件安装可以包括操作***和/或应用程序。一个或多个计算机可读媒质具有用于执行图5所示的方法的计算机可读指令。
如果在某一时间段内作业未能被客户机计算机52接受,服务器51通知作业的创作者。例如,该时间段可预设或可由创作者配置。创作者可以根据特定的作业选择时间段。在一个实施例中,服务器51在时间段过去之后从列表中移除未接受的作业。创作者或服务器51也可以指定一个时间段来完成所接受的作业。在一个实施例中,如果客户机52未能在该时间段内完成所接受的作业(如,客户机52遇到故障和中止),服务器51收回所接受的作业使其能够被其它客户机52所用。在从服务器51的故障中恢复之后,服务器51向客户机52重新标帖未完成的作业列表,客户机52回收其相应的作业,并且成像工作如服务器51故障之前继续。
在一个具体示例中,服务器软件执行以对每一作业区分优先级并储存在一个文件中,如relbuild.xml。优先级可以基于最后期限或其它任一因素,并通过用户输入接收或储存在配置文件中。服务器51还执行服务器软件来引发安装共享并使relbuil.xml对用户计算机52可用。服务器软件等待作业完成。在一个形式中,从客户机52接收已完成的映像之后,服务器软件使用完成的软件映像来创建网络共享。
下面参考图6,结构图说明了与客户机计算机52相关联的计算机可读媒质602。媒质602储存分布式构建环境中的数据结构604。数据结构604包括服务器路径606和证书608。服务器路径606定义了到服务器51的路径(例如,网络地址如//server/install)。证书608与客户机52相关的标识符相关联,以在服务器51和客户机52之间的通信过程中进行鉴别。客户机52通过标识符、证书608和服务器路径606与服务器51进行通信,来向服务器51指示客户机52正在执行与软件映像的安装相关联的操作。
下面参考图7,结构图说明了与服务器计算机51相关联的示例计算机可读媒质702。媒质702储存分布式构建环境中的数据结构704。数据结构704代表一项或多项作业。数据结构704包括作业标识符706以及脚本708。作业标识符706与特定的作业相关联。脚本708定义了与作业标识符706相关联、将要由客户机52执行来安装软件映像的多个操作。如上所述,每一作业具有相应的优先级,并且在数据结构705中按照相应的优先级组织每一作业。脚本708还定义了配置已安装的软件映像的操作。
图7中的计算机可读媒质702储存另一数据结构710。数据结构710代表与软件映像的安装相关联的状态。客户机52和服务器计算机51访问数据结构710来确定安装的状态。数据结构710包括客户机标识符712和安装状态714或其它描述符。客户机标识符712标识客户计算机52。安装状态714指示由客户标识符712标识的客户计算机52执行的安装的状态。例如,安装状态714可能指示安装已完成或正在进行。如果安装仍在进行,则安装状态714还可指示完成的百分比和/或估计完成剩余时间。客户计算机52使用客户计算机52完成作业的状态来更新数据结构710。尽管在图7中示出作业状态数据结构710储存在服务器计算机可读媒质702中,发明者认为它也可以替换或另外储存在图6的客户计算机可读媒质602中。
图8以计算机130的形式示出了一个通用计算装置的示例。在本发明的一个实施例中,计算机,如计算机130,适合于在这里说明并描述的其它示图中使用。计算机130具有一个或多个处理器或处理单元132以及***存储器134。在说明的实施例中,***总线136将包括***存储器134的各类***组件耦合至处理器132。总线135代表一个或多个任一各类总线结构,包括存储器总线或存储器控制器、***总线、加速图形端口以及使用任一各类总线结构的处理器或本地总线。作为示例而非限制,这类结构包括工业标准体系结构(ISA)总线、微通道结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及外设部件互连(PCI)总线,也称为Mezzanine总线。
计算机130通常至少具有某些形式的计算机可读媒质。计算机可读媒质包括易失和非易失媒质、可移动和不可移动媒质,可以是任一可由计算机130访问的可用媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括易失和非易失、可移动和不可移动媒质,以任一用于储存如计算机可读指令、数据结构、程序模块或其它数据的信息的方法或技术实现。例如,计算机存储媒质包括RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或任一可用来储存期望的信息并可由计算机130访问的媒质。通信媒质通常配备计算机可读指令、数据结构、程序模块或在如载波或其它传输机制的已调制数据信号中的其它数据,并包括任意信息传送媒质。本领域的技术人员熟悉已调制数据信号,该信号以某一方式设定或改变其一个或多个特征来对信号中的信息进行编码。有线媒质,如有线网络或直接连线连接,是通信媒质的示例。上述任一组合也包含在计算机可读媒质的范围内。
***存储器134包括以可移动和/或不可移动、易失和/或非易失存储器形式的计算机存储媒质。在说明的实施例中,***存储器134包括只读存储器(ROM)138和随机存取存储器(RAM)140。基本输入/输出***142(BIOS),包含如在启动时协助在计算机130内的元件之间传输信息的基本例程,通常储存在ROM 138中。RAM 140通常包含处理单元132立即可访问和/或当前正在执行的数据和/程序模块。作为示例而非局限,图8说明了操作***144、应用程序146、其它程序模块148和程序数据150。
计算机130也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。例如,图8说明了对可移动、非易失磁媒质进行读写的硬盘驱动器154。图8还示出了对可移动、非易失磁盘158进行读写的磁盘驱动器156以及对可移动、非易失光盘162,如CD-ROM或其它光媒质进行读写的光盘驱动器160。其它可用在本示例操作环境中的可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器154、磁盘驱动器156和光盘驱动器160通常通过非易失存储器接口,如接口166连接至***总线146。
以上描述并在图8中说明的驱动器或其它大容量存储设备及其关联的计算机存储媒质为计算机130提供了计算机可读指令、数据结构、程序模块和其它数据的存储。在图8中,例如,说明硬盘驱动器154储存操作***170、应用程序172、其它程序模块174以及程序数据176。注意,这些组件可以与操作***144、应用程序146、其它程序模块148和程序数据150相同,也可以与它们不同。这里对操作***170、应用程序172、其它程序模块174和程序数据176给予不同的标号说明至少它们是不同的副本。
用户可以通过输入设备或用户接口选择设备,如键盘180和指向设备182(例如,鼠标、轨迹球、笔或触摸板)来向计算机130输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏板、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通过耦合到***总线136的用户输入接口184连接到处理单元132,也可以通过其它接口和总线结构,如并行端口、游戏端口或通用串行总线(USB)连接。监视器188或其它类型的显示设备也通过接口,如视频接口190连接到***总线136。除监视器188之外,计算机经常包括其它***输出设备(未示出),如打印机和扬声器,可通过输出***接口(未示出)连接。
计算机130可以在使用到一个或多个远程计算机,如计算机194的逻辑连接的网络化环境中操作。远程计算机194可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机130相关的元件。图8描述的逻辑连接包括局域网(LAN)196和广域网(WAN)198,也可以包括其它网络。LAN 136和/或WAN 138可以是有线网络、无线网络、其组合等等。这类网络化环境常见于办公室、企业范围计算机网络、企业内部互联网以及全球计算机网络(如因特网)。
当在局域网环境中使用时,计算机130通过网络接口或适配器186连接到LAN196。当在广域网环境中使用时,计算机130通常包括调制解调器178或其它装置用于通过WAN 198,如因特网建立通信。调制解调器178可以是内置的也可以是外置的,通过用户输入接口184或其它合适的机制连接到***总线136。在网络化环境中,所描述的与计算机130相关的程序程序模块或其部分可以储存在远程存储器存储设备(未示出)中。作为示例而非局限,图8说明了远程应用程序192驻留在存储器设备中。可以理解,这里示出的网络连接是示例性的,并且可以使用其它在计算机之间建立通信链路的装置。
通常,计算机130的数据处理器用不同时间储存在计算机的各类计算机可读存储媒质上的指令来编程。程序和操作***通常分布在,例如,软盘或CD-ROM中。由此,它们被安装或装载到计算机的二级存储器。当执行时,它们至少部分地被装载到计算机的初级电子存储器中。这里描述的本发明包括这些和其它各类计算机可读存储媒质,这类媒质包含用于结合微处理器或其它数据处理器实现下文描述的步骤的指令或程序。本发明也包括计算机其本身,它被依照这里所述的方法和技术来编程。
为说明目的,程序和其它可执行程序组件,如操作***,在这里示为不连续的块。然而,可以认可,这类程序和组件在各种时间驻留在计算机的不同存储组件中,并由计算机的(多个)数据处理器执行。
尽管结合示例性计算***环境,包括计算机130来描述,本发明可与其它通用或专用计算***环境或结构来操作。计算***环境不意味着任何对本发明的使用或功能范围的局限。而且,不应将计算***环境解释为具有关于示例性操作环境中示出的任一组件或其组合的依赖或需求。著名的适合与本发明使用的计算***、环境和/或结构的示例包括但不限于,个人计算机、服务器计算机、手持式或膝上设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型机、大型机、包含上述***或设备的分布式计算环境等等。
本发明可以在由一个或多个计算机或其它设备执行的计算机可执行指令,如程序模块的一般语境下描述。通常,程序模块包括但不限于,例程、程序、对象、组件以及数据结构,执行特定的任务或实现特定的抽象数据类型。本发明也可以在由通过通信网络连接的远程处理设备执行任务的分布式计算环境中实践。在分布式计算环境中,程序模块可以驻留在本地和远程包括存储器存储设备的计算机存储媒质上。
在操作中,客户计算机52,如计算机130执行如图4所示的计算机可执行指令,来安装并配置为软件映像。另外,服务器51,如计算机130执行如图5所示的计算机可执行指令来创建并维护软件成像作业的列表。
例如,服务器计算机51,如计算机130可以在构建后(postbuild)进程中执行两个脚本来准备、例示并完成成像进程。构建后进程在编译和连接之后,但在释放构建之前出现。一个脚本(例如,stagerel.cmd)引发网络上的成像共享并监控作业完成的阶段目录。在成像开始之后,服务器计算机51无限地等待客户机52上传完成的映像。阶段目录中的作业状态文件储存成像进程的当前进度。作业状态文件中的字段MAJORSTATE(见下文)储存至少两个状态中的其中一个:INPROGRESS和FINISHED。所有作业完成之后,脚本通过降低共享并继续移动到下一构建后命令来继续。如果共享无法引发或者如果检测到之前的构建后错误,则脚本不会等待映像。
另一脚本(例如,img_createskus.cmd)在构建后进程中执行两次。当第一次装入脚本时(即,在其它脚本stagerel.cmd之前),它创建名为relbuild.xml的文件,包含成像机器(例如,客户计算机52)所需要的服务器特定的信息和客户机作业。这一脚本第二次在stagerel.cmd之后运行,并将SKU/产品拼装在一起,将所得映像放置在特定目录中。stagerel.cmd脚本等待客户计算机52完成映像,并监控储存作业状态文件的成像目录。在所有作业都被取走并完成之后,stagerel.cmd脚本继续。映像创建可通过观察记录文件来检验。
当客户机52执行作业时,它可以通过删除本地客户机作业状态文件并重新启动客户机52来被回收。客户机52接受的成像作业也可以通过回收客户机52并删除服务器作业状态文件来重新开始。
以下储存在与服务器之一关联的计算机可读媒质上的数据结构的示例进一步说明了本发明。以下示出了与relbuild.xml(见图6)相应的示例***器配置模式。尽管为方便,仅在模式中示出了一项作业,可以认为该模式可以定义多项作业。
<SERVER>
     <BUILDTIME></BUILDTIME>
     <BUILDNUMBER></BUILDNUMBER>
     <LOGFILE></LOGFILE>
    <TITLE></TITLE>
    <JOBS>
           <JOB ID=″″>
              <TITLE></TITLE>
              <CONFIGTYPE></CONFIGTYPE>
              <INSTALLSCRIPT></INSTALLSCRIPT>
              <IMAGESCRIPT></IMAGESCRIPT>
              <TIMEOUT></TIMEOUT>
          </JOB>
    </JOBS>
</SERVER>
下列填充的数据结构代表服务器配置模式的一个具体示例。
<SERVER>
      <BUILDTIME>20021016:18:00:00</BUILDTIME>
      <BUILDNUMBER>3700</BUILDNUMBER>
      <LOGFILE>relbuild.log</LOGFILE>
      <TITLE>Main Build 3700</TITLE>
      <JOBS>
           <JOB ID=″1″>
              <TITLE>Professional Installation</TITLE>
              <CONFIGTYPE>PRO</CONFIGTYPE>
              <INSTALLSCRIPT>pro/install.cmd</INSTALLSCRIPT>
              <IMAGESCRIPT>pro/image.cmd</IMAGESCRIPT>
              <TIMEOUT>3600</TIMEOUT>
          </JOB>
   </JOBS>
</SERVER>
以下示出了与job_id.xml(见图7)相应的示例作业状态模式。
<JOBSTATUS>
      <CLIENTID></CLIENTID>
      <TIMESTART></TIMESTART>
      <TIMECOMPLETE></TIMECOMPLETE>
      <CLIENTSTATUS>
                <MAJORSTATE></MAJORSTATE>
                <MINORSTATE></MINNORSTATE>
      </CLINTSTATUS>
</JOBSATUS>
以下填充的数据结构代表作业状态模式的一个具体示例。
<JOBSTATUS>
     <CLIENTID>RACK05 MACHINE10</CLIENTID>
    <TIMESTART>20021016:18:01:00</TIMESTART>
    <TIMECOMPLETE></TIMECOMPLETE>
     <CLIENTSTATUS>
              <MAJORSTATE>install</MAJORSTATE>
              <MINORSTATE>format</MINNORSTATE>
      </CLINTSTATUS>
</JOBSATUS
以下储存在与客户计算机52之一关联的计算机可读媒质上的数据结构的示例说明了本发明。以下示出与buildclient.xml(见图6)相应的示例性客户机配置模式。
<BUILDCLIENT ID″″>
      <WAITTIME></WAITTIME>
      <CONFIGINCLUDE></CONFIGINCLUDE>
      <REDIRECTS>
         <REDIRECT>
                <USERNAME></USERNAME>
                <PASSWORD></PASSWORD>
                <CONFIGLOC></CONFIGLOC>
          </REDIRECT>
      </REDIRECTS>
</BUILDCLIENT>
以下填充的数据结构代表客户机配置模式的一个具体示例。
<BUILDCLIENT ID=″RACK05 MACHINE10″>
      <WAITTIME>60</WAITTIME>
      <CONFIGINCLUDE>PRO</CONFIGINCLUDE>
      <REDIRECTS>
             <REDIRECT>
             <USERNAME>redmound\bvt</USERNAME>
             <PASSWORD>bvtpassword</PASSWORD>
             <CONFIGLOC>\\ntre101/bvt$</CONFIGLOC>
      </REDIRECT>
  </REDIRECTS>
</BUILDCLIENT>
当介绍本发明或其(多个)实施例的元件时,冠词“一个”、“该”以及“所述”意指有一个或多个元件。术语“包括”、“包含”以及“具有”为包含性的,并意指除列出的元件外还有其它另外的元件。
综上所述,可以看到,达到了本发明的若干个目的,并获得了其它优点。
在不脱离本发明的范围的情况下可以在上述构造、产品和方法中作出各种改变,所有包含在以上描述以及在附图中示出的事物都应该解释为说明性的,而非局限。

Claims (20)

1.一种分布式构建的***,其特征在于,它包括:
维护一作业列表的第一计算机,每一所述作业有一与已安装的软件映像的创建相关联的操作;
第二计算机,从所述第一计算机接受所述作业之一并通过执行与其相关联的操作来执行所接受的作业。
2.如权利要求1所述的***,其特征在于,所述操作包括:
安装、配置软件映像以及对其进行成像。
3.如权利要求1所述的***,其特征在于,它还包括主计算机,所述第二计算机可通过它来从所述第一计算机接受所述作业之一。
4.一种方法,用在一个或多个第一计算机向第二计算机授权软件映像的创建的分布式构建环境中,由所述第二计算机执行的所述方法包括:
从所述第一计算机之一接受作业,所述作业有与已安装的软件映像的创建相关联的操作;以及
通过执行所述操作来完成所接受的作业,其中,所完成的作业代表已安装的软件映像。
5.如权利要求4所述的方法,其特征在于,它还包括,从所述第一计算机之一请求所述作业。
6.如权利要求4所述的方法,其特征在于,它还包括配置所述已安装的软件映像。
7.如权利要求4所述的方法,其特征在于,所述第二计算机执行最小操作***。
8.如权利要求4所述的方法,其特征在于,所述接受包括:
接连地与所述第一计算机的每一个进行通信来标识与所述第一计算机相关联的多项作业;以及
边通信边选择所标识的多项作业中的第一项。
9.如权利要求8所述的方法,其特征在于,每一所述第一计算机在与所述第一计算机相关联的特定文件中储存所述作业的列表,并且其中,所述通信包括访问每一所述第一计算机上的特定文件来标识所述作业。
10.如权利要求8所述的方法,其特征在于,它还包括通过搜索与每一所述作业相关联并储存在所述第一计算机上的作业状态文件来确定每一所述第一计算机上的每一所述作业的状态。
11.如权利要求8所述的方法,其特征在于,所述多项作业的每一个具有与其相应的优先级。
12.如权利要求11所述的方法,其特征在于,所述多项作业的每一个根据其相应的优先级在列表中进行组织。
13.如权利要求4所述的方法,其特征在于,所述完成包括执行与所述作业相关联的脚本。
14.如权利要求4所述的方法,其特征在于,它还包括将所述已安装的软件映像发送到从中接受所述作业的第一计算机之一。
15.如权利要求4所述的方法,其特征在于,所述已安装的软件映像代表一个或多个操作***和应用程序。
16.一种分布式构建环境中的数据结构,在分布式构建环境中第一计算机向第二计算机授权已安装软件映像的创建,所述数据结构储存在所述第一计算机上,所述数据结构代表一项或多项作业,所述数据结构包括:
与每一所述作业相关联的作业标识符;以及
定义与所述作业标识符相关联、要由所述第二计算机执行来创建已安装软件映像的多个操作的脚本。
17.如权利要求16所述的数据结构,其特征在于,所述每一作业具有与其相应的优先级,并且其中,所述每一作业根据其相应的优先级在所述数据结构中进行组织。
18.如权利要求16所述的数据结构,其特征在于,所述脚本还定义了用于配置所述已安装软件映像的操作。
19.一种用于分布式构建的***,在分布式构建中第一计算机向第二计算机授权已安装软件映像的创建,所述***包括:
用于第一计算机维护作业列表的列表装置,每一所述作业与已安装的软件映像的创建相关;
用于第二计算机通过所述列表装置接受由所述第一计算机维护的所述作业之一的接口装置,所述作业具有与已安装的软件映像的创建相关联的操作;以及
用于第二计算机通过执行所述操作完成经所述接口装置接受的所述作业的安装装置,其中,所述完成的作业代表所述已安装的软件映像。
20.如权利要求19所述的***,其特征在于,它还包括用于第二计算机配置所述已安装的软件映像的装置。
CNB2004100619111A 2003-06-24 2004-06-24 用于分布式构建环境中的软件映像创建的***和方法 Expired - Fee Related CN100437492C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/603,294 2003-06-24
US10/603,294 US7281247B2 (en) 2003-06-24 2003-06-24 Software image creation in a distributed build environment

Publications (2)

Publication Number Publication Date
CN1573701A true CN1573701A (zh) 2005-02-02
CN100437492C CN100437492C (zh) 2008-11-26

Family

ID=33418653

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100619111A Expired - Fee Related CN100437492C (zh) 2003-06-24 2004-06-24 用于分布式构建环境中的软件映像创建的***和方法

Country Status (5)

Country Link
US (1) US7281247B2 (zh)
EP (1) EP1492001A3 (zh)
JP (1) JP2005018782A (zh)
KR (1) KR101099221B1 (zh)
CN (1) CN100437492C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100384146C (zh) * 2005-06-08 2008-04-23 杭州华三通信技术有限公司 管理分布式网络设备的方法
CN102413167A (zh) * 2010-09-13 2012-04-11 微软公司 虚拟和物理企业***映像

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596615B2 (en) * 2006-02-22 2009-09-29 Microsoft Corporation Multi-server automated redundant service configuration
US20070234345A1 (en) * 2006-02-22 2007-10-04 Microsoft Corporation Integrated multi-server installation
US7853945B2 (en) * 2006-02-22 2010-12-14 Michael Kramer Integrated computer server imaging
US8806476B2 (en) * 2006-03-14 2014-08-12 International Business Machines Corporation Implementing a software installation process
US7865877B2 (en) * 2006-12-13 2011-01-04 International Business Machines Corporation Computer method and apparatus for referencing files in a software configuration management system
US8069341B2 (en) * 2007-06-29 2011-11-29 Microsoft Corporation Unified provisioning of physical and virtual images
US8560634B2 (en) * 2007-10-17 2013-10-15 Dispersive Networks, Inc. Apparatus, systems and methods utilizing dispersive networking
US8539098B2 (en) 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US8856752B2 (en) 2007-10-26 2014-10-07 Microsoft Corporation Monitoring asset state to enable partial build
US20090249322A1 (en) * 2008-03-27 2009-10-01 Sony Corporation Of Japan Techniques for updating software
US20090327396A1 (en) * 2008-06-30 2009-12-31 International Business Machines Corporation Tiny File Transfer Protocol (TFTP) Relay Agent
US8495624B2 (en) * 2008-10-23 2013-07-23 International Business Machines Corporation Provisioning a suitable operating system environment
US8578375B2 (en) * 2009-12-23 2013-11-05 International Business Machines Corporation Virtual machine administration for data center resource managers
US8667464B2 (en) * 2010-03-19 2014-03-04 Honeywell Technologies Sarl Company advanced programming interface
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US8270963B1 (en) 2010-10-01 2012-09-18 Viasat, Inc. Cross domain notification
US8458800B1 (en) 2010-10-01 2013-06-04 Viasat, Inc. Secure smartphone
US8204480B1 (en) * 2010-10-01 2012-06-19 Viasat, Inc. Method and apparatus for secured access
US9113499B2 (en) 2010-10-01 2015-08-18 Viasat, Inc. Multiple domain smartphone
US8495731B1 (en) * 2010-10-01 2013-07-23 Viasat, Inc. Multiple domain smartphone
JP5907983B2 (ja) 2010-11-23 2016-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation マイグレーション方法、コンピュータ・プログラム、およびシステム
CN103250163B (zh) 2010-12-09 2016-08-10 国际商业机器公司 用于加密和解密虚拟盘的计算机可读存储介质
DE112011104356B4 (de) * 2010-12-13 2014-05-15 International Business Machines Corporation Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik
JP5767565B2 (ja) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US9235458B2 (en) 2011-01-06 2016-01-12 International Business Machines Corporation Methods and systems for delegating work objects across a mixed computer environment
US8955110B1 (en) 2011-01-14 2015-02-10 Robert W. Twitchell, Jr. IP jamming systems utilizing virtual dispersive networking
US9052968B2 (en) * 2011-01-17 2015-06-09 International Business Machines Corporation Methods and systems for linking objects across a mixed computer environment
US8941659B1 (en) 2011-01-28 2015-01-27 Rescon Ltd Medical symptoms tracking apparatus, methods and systems
US8635607B2 (en) * 2011-08-30 2014-01-21 Microsoft Corporation Cloud-based build service
US9110747B2 (en) * 2011-11-22 2015-08-18 1Elimited Obtaining program data over a network
US8930685B2 (en) 2011-12-13 2015-01-06 International Business Machines Corporation Deployment of a software image on multiple targets with streaming technique
US9285859B2 (en) * 2011-12-29 2016-03-15 Khalifa University of Science, Technology, and Research British Telecommunications PLC Method and system for determining allocation of clients to servers
US8954953B2 (en) * 2013-03-06 2015-02-10 Dell Products L.P. Systems and methods for deploying a customized operating system
US9588750B2 (en) * 2013-03-22 2017-03-07 International Business Machines Corporation Pseudo program use during program installation
US9792203B2 (en) * 2013-11-14 2017-10-17 Sap Se Isolated testing of distributed development projects
US10114676B2 (en) * 2015-05-05 2018-10-30 Microsoft Technology Licensing, Llc Building multimodal collaborative dialogs with task frames
WO2019099008A1 (en) 2017-11-16 2019-05-23 Hewlett-Packard Development Company, L.P. Software builds using a cloud system
JP6703281B2 (ja) * 2018-04-11 2020-06-03 キヤノンマーケティングジャパン株式会社 情報処理システム、管理サーバ、制御方法、プログラム
CN111459509A (zh) * 2020-03-27 2020-07-28 北京金山云网络技术有限公司 容器镜像的构建方法、装置和服务器

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142680A (en) * 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
JPH05233570A (ja) * 1991-12-26 1993-09-10 Internatl Business Mach Corp <Ibm> 異オペレーティング・システム間分散データ処理システム
EP0592079A2 (en) * 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US5469573A (en) * 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
US5713024A (en) * 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US6110228A (en) * 1994-12-28 2000-08-29 International Business Machines Corporation Method and apparatus for software maintenance at remote nodes
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
GB2309104B (en) * 1996-01-11 2000-06-07 Ibm Preloading software onto a computer system
EP0859314A3 (en) 1996-12-18 2001-12-19 Sun Microsystems, Inc. Distributed make methods, apparatus, and computer program products
US6247128B1 (en) * 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6138179A (en) * 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
JPH11143724A (ja) * 1997-11-13 1999-05-28 Sharp Corp 情報処理装置および情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11194927A (ja) * 1997-12-17 1999-07-21 Sun Microsyst Inc 分散makeの方法、装置、およびコンピュータプログラム製品
US6230318B1 (en) * 1998-02-24 2001-05-08 Microsoft Corporation Application programs constructed entirely from autonomous component objects
US6112225A (en) * 1998-03-30 2000-08-29 International Business Machines Corporation Task distribution processing system and the method for subscribing computers to perform computing tasks during idle time
US6080207A (en) * 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6377958B1 (en) * 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
US6262726B1 (en) * 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
TW408286B (en) * 1998-12-18 2000-10-11 Inventec Corp Software pre-installation method
US6188779B1 (en) * 1998-12-30 2001-02-13 L&H Applications Usa, Inc. Dual page mode detection
US6286138B1 (en) * 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
US6711624B1 (en) * 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
US20020174329A1 (en) * 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US6385766B1 (en) * 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6598223B1 (en) * 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6681323B1 (en) * 1999-11-29 2004-01-20 Toshiba America Information Systems, Inc. Method and system for automatically installing an initial software configuration including an operating system module from a library containing at least two operating system modules based on retrieved computer identification data
JP4792686B2 (ja) * 2000-02-07 2011-10-12 ソニー株式会社 画像処理装置及び画像処理方法並びに記録媒体
US6772192B1 (en) * 2000-02-29 2004-08-03 Hewlett-Packard Development Company, L.P. Software download and distribution via image building and multicast
US6675221B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Method and apparatus for customizing and fowarding parameters in a network processor
US20020156877A1 (en) 2001-04-23 2002-10-24 Lu James C. System and method for the duplication of a software system onto an appropriate target computer
US6824019B2 (en) * 2001-05-09 2004-11-30 Innovatit Seafood Systems, Llc Bottom discharge container
US20020188941A1 (en) * 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
US6907610B2 (en) * 2001-06-15 2005-06-14 Microsoft Corporation System and method for building a target operating system from a source operating system
US20030018759A1 (en) * 2001-07-17 2003-01-23 International Business Machines Corporation Method and system for performing computer system cloning
US7068309B2 (en) * 2001-10-09 2006-06-27 Microsoft Corp. Image exchange with image annotation
US7260738B2 (en) * 2002-06-17 2007-08-21 Microsoft Corporation System and method for splitting an image across multiple computer readable media

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100384146C (zh) * 2005-06-08 2008-04-23 杭州华三通信技术有限公司 管理分布式网络设备的方法
CN102413167A (zh) * 2010-09-13 2012-04-11 微软公司 虚拟和物理企业***映像
CN102413167B (zh) * 2010-09-13 2014-10-29 微软公司 虚拟和物理企业***映像

Also Published As

Publication number Publication date
US20040268345A1 (en) 2004-12-30
EP1492001A3 (en) 2007-01-24
KR101099221B1 (ko) 2011-12-27
EP1492001A2 (en) 2004-12-29
US7281247B2 (en) 2007-10-09
CN100437492C (zh) 2008-11-26
JP2005018782A (ja) 2005-01-20
KR20050001321A (ko) 2005-01-06

Similar Documents

Publication Publication Date Title
CN1573701A (zh) 分布式构建环境中的软件映像创建
CN1280705C (zh) 打印控制***、信息处理装置、功能提供装置
CN1783123A (zh) 基于资源需求和业务影响的过程执行管理
CN1924839A (zh) 设备驱动程序的管理方法和信息处理装置
CN1781075A (zh) 电子文件更新期间的设备存储器管理
CN1282046C (zh) 图像形成设备、打包方法
CN1723443A (zh) 用于带有共享资源的服务器的校正操作
CN1798111A (zh) 服务器排队***和方法
CN1960287A (zh) 用于在网络上调度作业的方法和设备
CN1424657A (zh) 设备信息获取方法、服务器设备和计算机可读存储介质
CN1734448A (zh) 对用户指定电子表格函数的支持
CN1682183A (zh) 在客户机-服务器通信中处理增量数据的方法和计算机***
CN1713158A (zh) 信息显示设备、信息显示方法、以及计算机程序
CN1975679A (zh) 用于优化分段资源分配的方法和设备
CN101060441A (zh) 控制软件版本升级的方法、设备及***
CN1441352A (zh) 信息处理装置、该信息处理装置的控制方法、存储媒体
CN1208719C (zh) 应用软件自动安装与自动修复的方法
CN1607501A (zh) 标记构架
CN1975676A (zh) 多节点计算机***和用于监视其性能的方法
CN1684035A (zh) 优先级绑定
CN1641568A (zh) 基板管理控制器的固件自动配置***及方法
CN1881976A (zh) 基于协议的自动服务供应方法与设备
CN1591339A (zh) 提供共享Web模块的***和方法
CN1300690C (zh) 用于监视计算机***中的资源的方法和***
CN1662011A (zh) 使用元数据定义映射来构建组件应用程序的***和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150504

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150504

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081126

Termination date: 20150624

EXPY Termination of patent right or utility model