CN1770121A - 在软件运行的同时更新软件 - Google Patents
在软件运行的同时更新软件 Download PDFInfo
- Publication number
- CN1770121A CN1770121A CNA2005101087446A CN200510108744A CN1770121A CN 1770121 A CN1770121 A CN 1770121A CN A2005101087446 A CNA2005101087446 A CN A2005101087446A CN 200510108744 A CN200510108744 A CN 200510108744A CN 1770121 A CN1770121 A CN 1770121A
- Authority
- CN
- China
- Prior art keywords
- service
- software
- client
- operating system
- computer
- 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
Links
- 238000000034 method Methods 0.000 claims description 67
- 238000012360 testing method Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000009434 installation Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 claims description 2
- 238000004088 simulation Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011282 treatment Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000010009 beating Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Abstract
为了避免为更新软件或数据结构而长时间停止对客户机请求的服务,本发明的各实施例更新软件的实例或数据结构的实例而不是更新原始软件或数据结构。这允许原始软件或数据结构不间断地服务客户机的请求。经更新的实例开始服务客户机的请求而不丢失上下文,同时终止原始软件或数据结构的更多操作。
Description
技术领域
本发明一般涉及软件发行,尤其涉及动态地更新软件使得在软件运行的同时添加新的特征或更正软件中的错误。
背景技术
在诸如公司等大企业中,计算资源是通过企业拥有的计算机系统网络来互相连接的,它们满足了企业的各种计算需求。该网络能够跨越不同的地理位置。企业的内部用户(雇员)和外部用户(顾客)要求企业的计算资源是高度可用同时也是高度安全的。在现实中,有时这两个要求互相抵触。例如,为了使计算资源安全,计算资源必须经常被暂停来安装安全补丁。另一方面,为了使计算资源以持续的频率可容易地使用,计算资源应该很少被暂停。图1详细地示出了这些和其它问题。
企业网络100包括客户机102,它是用户可以通过其来访问经由网络104互连的共享的计算资源的计算机。企业网络100的这些计算资源是由诸如服务器A106等一个或多个服务器提供的,在服务器A106上运行在线服务。为了使服务器A106上运行的在线服务更安全,企业通常根据策略指定管理员110来使用安全修补为在线服务的已报告或已发现的易受攻击性打补丁。这样的补丁是通过在运行在担当测试机的服务器B108上的在线服务(经更新的服务)的副本上安装并应用补丁来实现的。管理员110根据企业的计算策略来验证并确认经更新的服务,以确保一旦被使用,经更新的服务不太可能引起问题。在其上测试经更新的服务的服务器B108是在物理上与在其上向客户机102提供在线服务的服务器A106不同的机器。当经更新的服务通过服务器B108上的测试后,管理员110通过将服务器A106暂停一段时间来部署该补丁,在这段时间内在线服务不再对客户机102可用。然后,将该补丁应用于在线服务,随后服务器A106恢复以再次向客户机102提供服务。
将服务器A106暂停以安装补丁的问题是,在服务器A106被暂停的时刻服务上下文丢失,并保持不活跃。服务器上下文是在其中客户机102已经向运行在服务器A106上的在线服务提供了请求或某种信息的状态。存在客户机102期望该在线服务会服务该请求或提供某些与所提供的信息相关的计算。当在线服务被暂停时,这样的服务器上下文被破坏。当服务器A106以打过补丁的在线服务再次恢复时,服务器A106不太可能记起客户机102先前提供过什么,因为众多服务不持久性地存储服务上下文,或者由服务器A106重启所引起的延迟对客户机102太长,以至于不能接受。例如,客户机102可能刚在服务器A106被暂停前向在线服务发送了搜索查询。当在线服务使用补丁再次活跃时,在线服务不会提供对先前的查询的任何响应,因此会困扰客户机102。另一种虽然昂贵的解决方案是,在基于群集的服务器平台上运行该在线服务,通过添加附加处理能力来做出服务器106的镜像将冗余构建到服务器中,但是这样不仅提高了获得设备的成本,也提高了操作该设备的成本。
如果没有对满足高度安全的软件的增长需求且同时使得该高度安全的软件对用户高度可使用的问题的解决方案,用户可能最终不再相信企业网络100会提供所想要的计算体验,使得市场上对企业网络100的需求渐弱。由此,需要一种用于动态更新软件同时避免或减少与现有系统相关联的前述或其它问题的系统、方法和计算机可读介质。
发明内容
根据本发明,提供一种用于动态更新软件的系统、方法和计算机可读介质。本发明的系统形式包括担当用于服务客户机的请求的服务器的计算机系统。该计算机系统包括一个在计算机系统上执行用于服务客户机请求的软件,该软件能够接收由客户机提供的上下文。该计算机系统还包括使用该软件的新的版本更新的该软件的实例。该软件的实例与计算机上的软件同时执行,以允许执行测试,在测试之后,软件实例执行且软件终止,而没有丢失由客户机提供的上下文。
根据本发明的其它方面,本发明的另一种系统形式包括用于控制从一种服务模式到另一种服务模式的转移的软件(在计算机系统中执行)。该软件包括用于服务客户机请求的服务。该服务包括多种模式中允许服务获取转交锁并导出服务状态的一种模式。该软件包括用于通过调用与一特定模式相关联的一个所分配的回叫例程使服务进入该特定模式的服务控制管理器。一个特定模式包括允许服务获取转交锁并导出服务状态的可定制模式。
根据本方面的其它方面,本发明的计算机可读介质形式包括其上存储有数据结构的计算机可读介质,该数据结构由计算系统使用来导出服务状态。该数据结构包括指示涉及在服务客户机时由服务生成的内部上下文的信息的服务内部上下文标签。该数据结构还包括指示涉及客户机在其执行服务的请求中提供的外部上下文的信息的客户机外部上下文标签。
根据本发明的其它方面,一种在计算机系统上实现的方法包括接收对在运行在计算机系统上的第一客操作系统上运行的第一服务的更新,该第一服务执行客户机的请求。该方法还包括执行第一服务的状态转交来产生包含第一服务状态的文件。该文件被导出至在运行在计算机系统上的第二客操作系统上运行的第一服务的实例。该方法还包括由所接收的更新所更新的第一服务的实例执行来服务客户机的请求,以及终止第一服务而不丢失由客户机向第一服务提供的上下文。
附图说明
当结合附图参考下述具体实施方式,会更容易地理解和更好地理解本发明的前述方面和多个伴随的优点,附图中:
图1是示出常规企业网络系统的框图,它显示了在软件运行的同时对软件打补丁的各种问题;
图2是示出其中当软件正在被执行的同时被更新的示例性系统的框图;
图3A是根据本发明的一个实施例,示出允许执行多个操作系统以支持当执行服务时对服务的副本的更新的系统部件的框图;
图3B是根据本发明的一个实施例,示出用于控制服务的系统部件的框图;
图3C是根据本发明的一个实施例,示出包含状态信息的可定制的、基于标签的文件的示例的文本图;以及
图4A-4H是示出用于在服务运行的同时更新该服务的方法的过程图。
具体实施方式
为了避免为更新软件或数据结构而长时间停止对客户机请求的服务,本发明的各实施例更新软件的实例或数据结构的实例而不是更新原始软件或数据结构。这允许原始软件或数据结构不间断地服务客户机的请求。当软件的经更新,本发明的各实施例允许原始软件或数据结构暂停片刻以将其状态导出至经更新的实例。该经更新的实例开始服务客户机请求而不丢失上下文,同时终止原始软件或数据结构的更多操作。术语“软件”指的是,对运行在应用程序模式的服务、运行在特许模式的服务、或运行在应用程序模式或特许模式的服务的一部分(例如,代码片段)的包括。
图2示出了其中当服务运行时可动态更新服务的系统200。系统200包括通过网络204与服务器206通信的客户机202。客户机202和服务器206一起构成了称为客户机/服务器体系结构的一类计算机网络体系结构。由客户机202和服务器206构成的客户机/服务器体系结构是这样一种装置,它使用有争议的智能,将服务器206和个别的客户机202都视为智能的、可编程的设备,从而充分利用两者的完全的计算能力。这是通过将诸如搜索过程等计算任务的处理分在两个不同的组件:即“前端”客户机202和“后端”服务器206之间来完成的。客户机202本身是完整的独立的个人计算机(与在较早的体系结构中找到的“无声”终端对比),它向其用户提供用于启动计算机任务的一套完整的能力和特征。服务器206可以是另一台个人计算机、小型机或大型机,它通过分时环境中提供由小型机和大型机所提供的传统优点,诸如数据存储、数据管理、客户机之间的信息共享、复杂的网络管理、安全特征,并服务由诸如客户机202等客户机所请求的各种计算机任务,来增强客户机202。
网络204是由通信设备连接的一组计算机和相关联的设备。网络204可以涉及诸如同轴电缆或其它电缆等永久连接,或通过电话或其它通信链路做出的暂时连接。网络204可以与包含少量计算机、打印机和其它设备的LAN(局域网)一样小,或者它可以包含分布在巨大的地理区域上的许多小型或大型计算机(WAN,即广域网)。WAN的一个示例性实现是因特网,因特网是使用TCP/IP协议套件来互相通信的遍及全世界的网络和网关的集合。因特网的中心是主节点或主机计算机之间的高速数据通信线的主干,这些主节点或主机计算机包括上千台商业、政府、教育或路由数据和消息的其它计算机系统。因为没有单个计算机或网络控制整个因特网,所以一个或多个因特网节点可以离线而不危及因特网或导致因特网上的通信停止。
使用本发明的各实施例,在线服务可被实际地更新以创建一经更新的服务而不需暂停服务器206,从而允许该在线服务不间断地继续向客户机202提供服务。管理员208可以在该在线服务继续执行由客户机202请求的计算任务的同时,测试该经更新的服务。当管理员208确信如果使用该经更新的服务,不太可能引起系统200的问题,管理员208可以在该在线服务被卸载时使经更新的服务开始服务客户机202的请求,而客户机202不会意识到已经存在改变。本发明的各实施例允许由该在线服务存储的状态被无缝地传输给经更新的服务,而不丢失客户机202所依赖的上下文
使用本发明的各实施例的实际更新能力,管理员208创建在操作系统的实例上运行的在线服务的新实例,该新实例本身与该在线服务和在其上运行在线服务的操作系统并行地运行。管理员208安装更新,并向在线服务的实例应用该更新(经更新的服务)。管理员208然后测试,且如果测试成功,那么管理员208确定可以在系统200中使用该经更新的服务。管理员208然后使在线服务执行至该在线服务实例的上下文转交。当完成上下文转交后,恰好在上下文转交前停止使用在线服务的那一点上,经更新的服务开始执行。
图3A详细示出了在其上可以运行在线服务和经更新的服务的服务器206。服务器206包括硬件302,它是服务器206的物理组件,包括中央处理器(未示出)和存储器,以及诸如打印机、调制解调器和输入设备等外围设备。运行在硬件302之上的是控制前述硬件资源的分配和使用的主机操作系统304,这些硬件资源诸如中央处理器时间、存储器、磁盘空间和外围设备。主机操作系统304是客操作系统和其它应用程序所依赖的核心软件。在主机操作系统304上运行的是虚拟服务器306,它提供管理虚拟机310A、310B的虚拟化服务,并提供软件基础架构用于硬件仿真。
虚拟机310A、310B包括担当每一虚拟机310A、310B的虚拟硬件的各组虚拟化设备。第一和第二客操作系统运行在虚拟机310A、310B上,而没有完全认识到各种指令和通信是由虚拟服务器306仿真的,这些指令和通信最终会被转换成由硬件302执行的正确的硬件指令。虚拟服务器306本质上是较佳地在主机操作系统304的特许模式中运行的多线程服务,每一虚拟机310A、310B在其自己的执行线程中执行。尽管主机操作系统304提供中央处理单元资源和时间及设备驱动程序的调度,并提供对硬件302的访问,然而虚拟服务器306维护创建可在其上执行客操作系统的不同机器的幻影(虚拟机310A、310B)的软件基础架构。
在线服务312A在第一客操作系统上执行,而第一客操作系统进而运行在虚拟机310A上。已经被更新的在线服务的实例是经更新的服务312B,它运行在第二客操作系统上,第二客操作系统进而运行在虚拟机310B上。使用虚拟化技术,管理员208可以在在线服务312A所依赖以与客户机202通信的同一硬件302上测试该经更新的服务312B。本发明的各实施例允许在线服务312A的状态(包含内部上下文和外部上下文)由第一客操作系统捕捉,并将该状态通过虚拟机310A、310B之间合适的进程间通信工具(例如,管道或队列)传输到第二客操作系统。然后将经更新的服务312B的状态设置为该在线服务的设备,使得当在线服务312A终止执行且经更新的服务312B开始执行时,不会丢失上下文。
图3B示出了对服务控制管理器316的使用,以管理服务318可能所处的各种模式,诸如安装模式、开启模式、暂停模式、停止模式、卸载模式等。与每一模式相关联的是可以由服务控制管理器316调用的可分配回叫例程。当服务控制管理器316使用回叫例程之一调用服务之后,服务318进入每一模式。服务控制管理器316可以由控制台314或自动化脚本(未示出)以及其它合适的控制机制来控制。示出了与服务318相关联的回叫例程的一部分,诸如ONPAUSE()例程318A、ONHANDOFF()例程318B、以及ONSTOP()例程318C。例如,当服务控制管理器316调用ONPAUSE()例程318A时,服务318进入暂停状态(中止从客户机202处接收更多的请求),其中执行由ONPAUSE()例程318A所指定的各条指令。
在一个实施例中,如果服务控制管理器316可以调用自定义命令,其中任一任意的回叫例程可以与该自定义命令相关联,那么ONHANDOFF()例程318B可以与该自定义命令相关联,以扩展服务318的各种模式来包括转交模式。当服务318进入转交模式后,与ONHANDOFF()例程318B相关的指令可以被执行,来导出第一服务312A的状态,以导入到经更新的服务312B中。在另一实施例中,如果一个新的转交状态可以成为诸如服务318等服务的一部分,那么ONHANDOFF()例程318B可以与该模式相关联,而不是使用自定义命令。较佳地,在该特定示例中,当做好从在线服务312A到经更新的服务312B的切换准备时,ONHANDOFF()例程318B中的一条指令使服务暂停以避免对来自客户机202的另外的请求的接收。
图3C示出了包含要在上述转交模式中导出到经更新的服务312B的在线服务312A的状态的文件。该文件可以用任何合适的语言来书写。一种合适的语言包括可定制的、基于标签的语言,诸如可扩展标记语言(XML)。考虑导致产生图3C示出的文件的下述示例。在线服务312A在端口5452上监听来自客户机202的请求;客户机202向在线服务312A发送字符串(“hello world”)。在线服务312A存储该串、当前的时间标记(是12:53)、客户机IP地址(是16.12.10.10)以及客户机端口5452,作为客户机外部上下文。在在线服务312A内部,一工作者线程每隔35秒醒来,以调查客户机上下文列表。如果一客户机上下文已经存储了长于预定的时间量,那么工作者线程使用先前由客户机向在线服务312A提供的串“helloworld”向客户机202发送一个数据包。
在线312A的内部上下文和客户机的外部上下文都可以被导出至图3C所示的文件中。该文件包括起始标签<SERVICE_INTERNAL_CONTEXT>320A以及其成对的结束标签</SERVICE_INTERNAL_CONTEXT>320B。在标签320A、320B内包含的是标签<WORKER_THREAD_SLEEP_TIME>322A以及其成对的结束标签</WORKER_THREAD_SLEEP_TIME>322B。在324行上标出数值“35”,来指示工作者线程的睡眠时间。该文件还包括起始标签<CLIENT_EXTERNAL_CONTEXT>326A以及其成对的结束标签</CLIENT_EXTERNAL_CONTEXT>326B。在标签326A、326B之间嵌套的是另一个起始标签<CONTEXT>328A以及其成对的结束标签</CONTEXT>328B。包含在标签328A、328B之间是行330处的标签<IP>以及其成对的结束标签</IP>。在标签<IP>以及其成对的结束标签</IP>之间包含IP地址16.12.10.10。行332在标签<PORT>以及其成对的结束标签</PORT>之间表示了端口号5452。时间“12:53”在行334处标签<TIMESTAMP>以及其成对的结束标签</TIMESTAMP>之间被捕捉。行336包含标签<STRING>以及其成对的结束标签</STRING>之间包含的由客户机202提供的串“hello world”。应当理解与上述文件相关联的细节,因为该文件被呈现来示出捕捉服务的内部和外部上下文两者的概念,而不意味着将服务状态的捕捉限制或约束于图3C中所示的特定类型的信息。
图4A-4H示出用于在服务运行的同时动态地更新该服务的方法400。为清楚起见,以下对方法400的描述参考了结合系统200示出的各种元件,诸如客户机202和服务器206(图2);硬件302、主机操作系统304、虚拟服务器306、虚拟机310A、310B、在线服务312A、以及经更新的服务312B(图3A);以及在图3C中所示的可定制的、基于标签的文件。从开始框开始,方法400前进至在延续终端(“终端A”)和退出终端(“终端B”)之间定义的一组方法步骤402。该组方法步骤402描述了接收对诸如在线服务312A等运行在客操作系统上的第一服务的更新。
在以下几个步骤中,讨论了虚拟化技术的启动,以允许本发明的各实施例执行。从终端A(图4B),方法400启动了主机操作系统304。见框408。在框410处,该方法启动了运行在主机操作系统304中的虚拟服务器306。方法400前进至框412处,在那里该方法启动了诸如虚拟机310A的第一虚拟机,以及为该第一虚拟机所特有的第一组虚拟化设备。方法400启动运行在第一虚拟机中的第一客操作系统。见框414。在框416处,该方法启动了诸如在线服务312A等运行在第一客操作系统上的第一服务,以向诸如客户机202等客户机提供服务。在框418处,该客户机向第一服务发送外部上下文(诸如,请求或与请求相关的信息)。方法400然后在另一延续终端(“终端A1”)上继续。
从终端A1(图4C),方法400前进至框420处,在那里诸如在线服务312A等第一服务将一个客户机的外部上下文与另一客户机的外部上下文分开存储。见图3C的标签328A、328B的内容。下一步,第一服务生成并存储与服务客户机相关的内部上下文。见框422。也可参见标签320A、320B的内容。在框424处,接收对第一服务的更新的可用性的通知。方法400然后前进至框426处,在那里它启动诸如虚拟机310B等第二虚拟机,以及为该第二虚拟机所特有的第二组虚拟化设备。该方法启动运行在第二虚拟机中的第二客操作系统。见框428。在框430处,该方法安装更新,并运行第一服务的经更新的副本(第二服务,诸如经更新的服务312B)。(较佳地,该第二服务与第一服务同时执行。)方法400然后在另一延续终端(“终端A2”)上继续。
从终端A2(图4D),方法400前进至框432处,在那里诸如由管理员208测试运行在第二客操作系统上的第二服务。在判定框434,执行测试以确定是否准备好使用该第二服务。如果在判定框434处的测试的答案为否,那么方法400循环回至框432处,在那里重复上述处理步骤。如果在判定框434处的测试答案为是,那么方法400继续至退出终端B。
从退出终端B(图4A),方法400前进至在延续终端(“终端C”)和退出终端(“终端D”)之间定义的一组方法步骤404。该组方法步骤404使第一服务执行到第一服务实例(是第二服务或经更新的服务312B)的状态转交。从终端C(图4D),方法400前进至框436处,那里它使第一设备进入转交模式。该方法使第一服务暂停接收任何更多的客户机请求或外部上下文。见框438。(一个示例性方法是使服务控制管理器316调用ONPAUSE()例程318A。)方法400然后在另一延续终端(“终端C1”)上继续。
从终端C1(图4E),该方法为第一服务获取为转交锁,它是全局锁,以确保在转交过程中不会改变其模式。见框440。在框442处,该方法找到将要移交给第二服务的每一客户机的外部上下文。较佳地,该方法应该找到需要被导出到第二服务的任何客户机外部上下文。方法400前进至框444处,那里它找到将被移交给第二服务的第一服务的内部上下文。在某些情况下,它可以包括诸如多个工作者线程、内部队列以及服务管理器数据结构等内部细节。该方法向可定制的、基于标签的文件输出外部上下文和内部上下文(总称为状态)。见框446。(仅出于说明性的目的,在图3C中示出的文件是一个示例。)下一步,在框448处,该方法改变第一服务的连网堆栈,以将第一服务上的现有网络连接映射至第二服务。(较佳地,包括虚拟服务器306和虚拟机310A、310B的虚拟化设备展示了应用程序编程接口以重映射现有的网络连接。)方法400然后在另一延续终端(“终端C2”)上继续。
从终端C2(图4F),方法400前进至框450处,在那里第一服务的监听端口被重定向至第二服务的监听端口,以使第二服务能够从客户机处接收请求。经由诸如管道或队列等进程间通信,第一服务请求诸如服务控制管理器316等运行在第二客操作系统上的服务控制管理器来刷新第二服务的状态。见框452。(较佳地,这能够通过调用第二服务的ONSTOP()例程318C来完成。)下一步,在框454处,第一服务请求运行在第二客操作系统上的服务控制管理器来使第二服务切换至上下文接收模式。方法400然后前进至框456处,在那里第一服务将包含第一服务状态的可定制的、基于标签的文件递交给第二服务。方法400然后前进至另一延续终端(“终端C3”)。
从终端C3(图4G),第二服务接收到该可定制的、基于标签的文件,并将其自身初始化至由该可定制的、基于标签的文件所指定的状态。见框460。(较佳地,第二服务在较低网络层初始化各种数据结构,以有效地初始化绑定在网络接口上的网络协议。)在判定框462,执行测试以确定第二服务是否已经完成了初始化。如果对判定框462的测试答案为否,那么方法400循环回框460处,在那里重复上述处理步骤。否则,对判定框462的测试答案为是,且第二服务通知第一服务初始化成功。见框464。下一步,在框466处,第一服务向第二服务发送一个消息来开始操作。方法400然后前进至另一延续终端(“终端C4”)。
从终端C4(图4H),方法400前进至判定框468处,在那里执行测试来确定是否确认了第二服务。如果对判定框468的测试答案为否,那么方法400循环直到答案为是。如果对判定框468的测试答案为是,那么第一服务指示对第一服务的更新成功。见框470。在框472处,第一服务释放转交锁。方法400然后使第一服务停止更多的执行,以为卸载作准备。见框474。(较佳地,该方法使服务控制管理器316调用ONSTOP()例程318C和用于卸载第一服务的另一例程。)然后卸载第一服务。见框476。然后方法400在退出终端D处继续。
从终端D(图4A),方法400前进至在延续终端(“终端E”)和另一延续终端(“终端F”)之间定义的一组方法步骤406。该组方法步骤406允许使用更新修改的第一服务的实例(第二服务,即经更新的服务312B)执行并服务第一服务的客户机。方法400然后终止执行。
尽管示出和描述了本发明的较佳的实例,但可以理解,可以在其中进行各种修改,而不背离本发明的精神和范围。
Claims (20)
1.一种担当用于服务客户机的请求的服务器的计算机系统,所述计算机系统包括:
一个在所述计算机系统上运行的软件,用于服务客户机的请求,所述软件能够接收由所述客户机提供的上下文;以及
所述软件的一个实例,它已经使用所述软件的新版本更新,所述软件的实例在所述计算机系统上与所述软件同时运行,以允执行测试,在测试后,所述软件的实例执行而所述软件终止,而不丢失由所述客户机提供的上下文。
2.如权利要求1所述的计算机系统,其特征在于,所述软件是运行在第一客操作系统上的,而所述软件的实例是运行在第二客操作系统上的。
3.如权利要求2所述的计算机系统,其特征在于,所述第一客操作系统是运行在第一虚拟机上的,而所述第二客操作系统是运行在第二虚拟机上的。
4.如权利要求3所述的计算机系统,其特征在于,所述第一客操作系统和第二客操作系统是由提供硬件仿真的虚拟服务器管理的。
5.如权利要求4所述的计算机系统,其特征在于,所述虚拟服务器作为直接与硬件通信的主机操作系统中的服务运行。
6.一种在计算机系统中执行的软件,用于控制从一个服务模式到另一服务模式的转移,包括:
用于服务客户机请求的服务,所述服务包括多种模式中允许所述服务获取转交锁并导出所述服务的状态的一种模式;以及
服务控制管理器,用于通过调用与一特定模式相关联的所分配的回叫例程使所述服务进入所述特定模式,一特定的模式包括允许所述服务获取所述转交锁并导出所述服务的状态的可定制模式。
7.如权利要求6所述的软件,其特征在于,还包括接收所述服务的状态的服务的实例,所述服务的实例由所述服务的新版本更新,以添加新的特征或更正所述服务中的错误。
8.如权利要求7所述的软件,其特征在于,所述模式包括暂停模式,其中所述服务中止从所述客户机处接收更多的请求。
9.如权利要求8所述的软件,其特征在于,所述模式包括开始开始模式和停止模式,其中所述服务由所述服务控制管理器开始和停止。
10.如权利要求9所述的软件,其特征在于,所述模式包括安装模式和卸载模式,其中所述服务由所述服务控制管理器安装和卸载。
11.一种其上存储由计算机系统使用来导出服务状态的数据结构的计算机可读介质,所述数据结构包括:
一服务内部上下文标签,它指示涉及所述服务在服务客户机过程中生成的内部上下文的信息;以及
一客户机外部上下文标签,它指示涉及由所述客户机在其执行服务的请求中提供的外部上下文的信息。
12.如权利要求11所述的计算机可读介质,其特征在于,所述数据结构是由可定制的、基于标签的语言形成的。
13.一种在计算机系统上实现的方法,所述方法包括:
接收对运行在第一客操作系统上的第一服务的请求,所述第一客操作系统运行在所述计算机系统,所述第一服务执行客户机的请求;
由所述第一服务执行状态转交,以产生包含所述第一服务的状态的文件,所述文件被导出至运行在第二客操作系统上的所述第一服务的实例,所述第二客操作系统运行在所述计算机系统上;以及
由用所接收的更新来更新的所述第一服务的实例执行,以服务客户机的请求并终止所述第一服务,而不丢失所述客户机向所述第一服务提供的上下文。
14.如权利要求13所述的方法,其特征在于,还包括在执行所述状态转交的动作之前测试具有更新的所述第一服务的实例。
15.如权利要求14所述的方法,其特征在于,还包括在所述测试动作之后,但在执行所述状态转交的动作之前,使所述第一服务进入转交模式。
16.如权利要求15所述的方法,其特征在于,还包括暂停所述第一服务以防止所述第一服务从客户机处接收更多的请求。
17.如权利要求16所述的方法,其特征在于,还包括获取转交锁,以防止对所述第一服务状态的改变,所述获取转交锁的动作发生在产生包含所述第一服务状态的文件的动作之前。
18.如权利要求17所述的方法,其特征在于,所述产生文件的动作包括产生具有包含所述第一服务的内部上下文和外部上下文的标签的可定制的、基于标签的文件。
19.如权利要求18所述的方法,其特征在于,还包括将网络连接以及监听端口从所述第一服务重映射到所述第一服务的实例,以允许客户机请求被重定向到所述第一服务的实例。
20.如权利要求19所述的方法,其特征在于,所述转交锁是在所述第一服务的实例指示所述第一服务状态的成功转交时由所述第一服务释放的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/955,641 US8146073B2 (en) | 2004-09-30 | 2004-09-30 | Updating software while it is running |
US10/955,641 | 2004-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1770121A true CN1770121A (zh) | 2006-05-10 |
Family
ID=35527431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005101087446A Pending CN1770121A (zh) | 2004-09-30 | 2005-09-29 | 在软件运行的同时更新软件 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8146073B2 (zh) |
EP (1) | EP1643361A3 (zh) |
JP (1) | JP2006107500A (zh) |
KR (1) | KR20060051932A (zh) |
CN (1) | CN1770121A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541987A (zh) * | 2010-10-20 | 2012-07-04 | 微软公司 | 升级期间的在线数据库可用性 |
CN102591708A (zh) * | 2010-12-13 | 2012-07-18 | 微软公司 | 用于提供按需处理和背景处理的体系结构 |
CN103838947A (zh) * | 2012-11-26 | 2014-06-04 | 北京新媒传信科技有限公司 | 一种实现应用割接的方法和装置 |
CN104303148A (zh) * | 2012-03-22 | 2015-01-21 | 爱迪德加拿大公司 | 更新软件组件 |
CN104423989A (zh) * | 2013-09-02 | 2015-03-18 | 联想(北京)有限公司 | 一种应用更新方法及电子设备 |
US9075661B2 (en) | 2010-10-20 | 2015-07-07 | Microsoft Technology Licensing, Llc | Placing objects on hosts using hard and soft constraints |
CN106301820A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种基于网络连接服务的升级方法和装置 |
US9721030B2 (en) | 2010-12-09 | 2017-08-01 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
US10318271B2 (en) | 2015-01-05 | 2019-06-11 | Irdeto Canada Corporation | Updating software components in a program |
Families Citing this family (141)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291407B2 (en) * | 2002-06-12 | 2012-10-16 | Symantec Corporation | Systems and methods for patching computer programs |
JP2006146679A (ja) * | 2004-11-22 | 2006-06-08 | Hitachi Ltd | 情報処理装置の制御方法、情報処理装置、及びプログラム |
WO2006110991A1 (en) * | 2005-04-18 | 2006-10-26 | Research In Motion Limited | Method and system for controlling software version updates |
US20060248069A1 (en) * | 2005-04-18 | 2006-11-02 | Research In Motion Limited | Method and system for implementing customizable container services as component wireless applications |
TW200745951A (en) * | 2005-10-21 | 2007-12-16 | Vir2Us Inc | Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources |
US7840398B2 (en) * | 2006-03-28 | 2010-11-23 | Intel Corporation | Techniques for unified management communication for virtualization systems |
US20080126792A1 (en) * | 2006-09-19 | 2008-05-29 | Herington Daniel E | Systems and methods for achieving minimal rebooting during system update operations |
US8776041B2 (en) * | 2007-02-05 | 2014-07-08 | Microsoft Corporation | Updating a virtual machine monitor from a guest partition |
US8495708B2 (en) * | 2007-03-22 | 2013-07-23 | The Invention Science Fund I, Llc | Resource authorizations dependent on emulation environment isolation policies |
US9378108B2 (en) * | 2007-03-22 | 2016-06-28 | Invention Science Fund I, Llc | Implementing performance-dependent transfer or execution decisions from service emulation indications |
US8438609B2 (en) | 2007-03-22 | 2013-05-07 | The Invention Science Fund I, Llc | Resource authorizations dependent on emulation environment isolation policies |
US20080235000A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Implementing security control practice omission decisions from service emulation indications |
US8874425B2 (en) | 2007-03-22 | 2014-10-28 | The Invention Science Fund I, Llc | Implementing performance-dependent transfer or execution decisions from service emulation indications |
US20080235001A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Implementing emulation decisions in response to software evaluations or the like |
US20080234998A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Coordinating instances of a thread or other service in emulation |
US9558019B2 (en) | 2007-03-22 | 2017-01-31 | Invention Science Fund I, Llc | Coordinating instances of a thread or other service in emulation |
DE102007041652A1 (de) * | 2007-09-03 | 2009-03-05 | Abb Research Ltd. | Einrichtung und Verfahren zur Durchführung von Hardware-Anpassungen an einem Server in einem verteilten Computersystem mit wenigstens zwei Servern |
DE102007041653A1 (de) * | 2007-09-03 | 2009-03-05 | Abb Research Ltd. | Einrichtung und Verfahren zur Durchführung von Server-Software-Updates in einem verteilten Computersystem mit wenigstens zwei Servern |
JP4983521B2 (ja) * | 2007-10-04 | 2012-07-25 | 富士通株式会社 | ソフトウェア更新検証装置、方法及びプログラム |
KR100883208B1 (ko) * | 2007-12-13 | 2009-02-13 | 성균관대학교산학협력단 | 가상화 기술을 기반으로 하여 소프트웨어의 업데이트가가능한 이동통신 단말기 및 그 업데이트 방법 |
JP2009217395A (ja) * | 2008-03-07 | 2009-09-24 | Nec Corp | 仮想サーバソフトウェア更新システム、仮想サーバソフトウェア更新方法、サーバ、及びサーバ用プログラム |
US8261254B2 (en) * | 2008-03-31 | 2012-09-04 | Symantec Corporation | Dynamic insertion and removal of virtual software sub-layers |
US9720674B1 (en) | 2008-05-05 | 2017-08-01 | Open Invention Network, Llc | Automating application of software patches to a server having a virtualization layer |
US8185884B2 (en) * | 2008-06-23 | 2012-05-22 | Novell, Inc. | System and method for offline updation of software in virtual machine (VM) images |
EP2214101A1 (de) | 2009-01-29 | 2010-08-04 | Siemens Aktiengesellschaft | Verändern von Objekten einer Anwendung |
US8689206B2 (en) * | 2009-03-05 | 2014-04-01 | International Business Machines Corporation | Isolating operating system in-memory modules using error injection |
US8972781B2 (en) * | 2009-04-20 | 2015-03-03 | Aetherpal Inc. | Session recovery during virtual mobile management |
US20110053583A1 (en) * | 2009-08-31 | 2011-03-03 | Ramesh Parmar | User initiated virtual mobile management |
US20100299664A1 (en) * | 2009-05-21 | 2010-11-25 | Salesforce.Com, Inc. | System, method and computer program product for pushing an application update between tenants of a multi-tenant on-demand database service |
US8589904B2 (en) * | 2009-08-10 | 2013-11-19 | Symantec Corporation | Systems and methods for updating a software product |
US8918093B2 (en) | 2009-08-31 | 2014-12-23 | Aetherpal Inc. | User initiated virtual mobile management |
JP5430298B2 (ja) * | 2009-09-03 | 2014-02-26 | サンデン株式会社 | 自動販売機の制御装置 |
US9589114B2 (en) * | 2010-01-05 | 2017-03-07 | Microsoft Technology Licensing, Llc | Policy for digital rights management |
US20110265072A1 (en) * | 2010-04-27 | 2011-10-27 | Jack Matthew | Dynamic Installation of Files for Running Programs |
JP2012069088A (ja) * | 2010-06-25 | 2012-04-05 | Toshiba Corp | 医用情報処理装置及びソフトウェア配信システム |
US8751656B2 (en) | 2010-10-20 | 2014-06-10 | Microsoft Corporation | Machine manager for deploying and managing machines |
US8296267B2 (en) | 2010-10-20 | 2012-10-23 | Microsoft Corporation | Upgrade of highly available farm server groups |
US8799453B2 (en) | 2010-10-20 | 2014-08-05 | Microsoft Corporation | Managing networks and machines for an online service |
US8386501B2 (en) | 2010-10-20 | 2013-02-26 | Microsoft Corporation | Dynamically splitting multi-tenant databases |
US20120102480A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | High availability of machines during patching |
US8850550B2 (en) | 2010-11-23 | 2014-09-30 | Microsoft Corporation | Using cached security tokens in an online service |
JP5655677B2 (ja) * | 2011-04-04 | 2015-01-21 | 富士通株式会社 | ハイパーバイザ置き換え方法および情報処理装置 |
KR101254208B1 (ko) * | 2011-06-17 | 2013-04-18 | 인크로스 주식회사 | 이동 단말기의 애플리케이션 실시간 업데이트 방법 |
US8819660B2 (en) * | 2011-06-29 | 2014-08-26 | Microsoft Corporation | Virtual machine block substitution |
US8972964B2 (en) * | 2012-07-26 | 2015-03-03 | Unisys Corporation | Dynamic firmware updating system for use in translated computing environments |
GB2510874B (en) | 2013-02-15 | 2020-09-16 | Ncr Corp | Server system supporting remotely managed IT services |
US8739151B1 (en) * | 2013-03-15 | 2014-05-27 | Genetec Inc. | Computer system using in-service software upgrade |
CN104182241A (zh) * | 2013-05-24 | 2014-12-03 | 华为终端有限公司 | 一种网页应用程序更新方法及通信设备 |
US9626180B2 (en) | 2013-12-16 | 2017-04-18 | International Business Machines Corporation | Live operating system update mechanisms |
US9098375B2 (en) * | 2013-12-23 | 2015-08-04 | Verizon Patent And Licensing Inc. | Automatic management of software patch installation |
US20150286505A1 (en) * | 2014-04-03 | 2015-10-08 | Oracle International Corporation | Computing system resource provisioning |
US9430223B2 (en) | 2014-09-25 | 2016-08-30 | International Business Machines Corporation | Live operating system update mechanisms |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9715402B2 (en) * | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
KR102079701B1 (ko) * | 2014-10-30 | 2020-02-20 | 에스케이텔레콤 주식회사 | 가상화 정보 처리 장치의 소프트웨어 업그레이드 방법 |
US9537788B2 (en) | 2014-12-05 | 2017-01-03 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9727725B2 (en) | 2015-02-04 | 2017-08-08 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US9928108B1 (en) | 2015-09-29 | 2018-03-27 | Amazon Technologies, Inc. | Metaevent handling for on-demand code execution environments |
US10042660B2 (en) | 2015-09-30 | 2018-08-07 | Amazon Technologies, Inc. | Management of periodic requests for compute capacity |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US9830175B1 (en) | 2015-12-16 | 2017-11-28 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US9811363B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US9830449B1 (en) | 2015-12-16 | 2017-11-28 | Amazon Technologies, Inc. | Execution locations for request-driven code |
US10013267B1 (en) | 2015-12-16 | 2018-07-03 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10002026B1 (en) | 2015-12-21 | 2018-06-19 | Amazon Technologies, Inc. | Acquisition and maintenance of dedicated, reserved, and variable compute capacity |
US10021605B2 (en) * | 2016-01-13 | 2018-07-10 | Uber Technologies, Inc. | Non-interrupted handoff of real-time network-distributed services |
CN105791007B (zh) * | 2016-03-01 | 2019-06-14 | 中国银联股份有限公司 | 金融网络接入系统 |
US10162672B2 (en) | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US9952896B2 (en) | 2016-06-28 | 2018-04-24 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10587673B2 (en) * | 2016-06-29 | 2020-03-10 | Nicira, Inc. | Decoupling network connections from an application while the application is temporarily down |
US10868883B2 (en) * | 2016-06-29 | 2020-12-15 | Nicira, Inc. | Upgrading a proxy that decouples network connections from an application during application's downtime |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10230712B2 (en) | 2016-09-12 | 2019-03-12 | Microsoft Technology Licensing, Llc | Binary experimentation on running web servers |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US10341438B2 (en) | 2017-03-17 | 2019-07-02 | Verizon Patent ad Licensing Inc. | Deploying and managing containers to provide a highly available distributed file system |
US10261780B2 (en) | 2017-05-01 | 2019-04-16 | Google Llc | Transparent upgrade of a system service or application |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10303492B1 (en) | 2017-12-13 | 2019-05-28 | Amazon Technologies, Inc. | Managing custom runtimes in an on-demand code execution system |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10572375B1 (en) | 2018-02-05 | 2020-02-25 | Amazon Technologies, Inc. | Detecting parameter validity in code including cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
WO2023043564A1 (en) * | 2021-09-15 | 2023-03-23 | Microsoft Technology Licensing, Llc. | Secret rotation in a cloud service |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155837A (en) * | 1989-03-02 | 1992-10-13 | Bell Communications Research, Inc. | Methods and apparatus for software retrofitting |
US5410703A (en) * | 1992-07-01 | 1995-04-25 | Telefonaktiebolaget L M Ericsson | System for changing software during computer operation |
US5359730A (en) * | 1992-12-04 | 1994-10-25 | International Business Machines Corporation | Method of operating a data processing system having a dynamic software update facility |
US5664195A (en) * | 1993-04-07 | 1997-09-02 | Sequoia Systems, Inc. | Method and apparatus for dynamic installation of a driver on a computer system |
US6138274A (en) * | 1998-01-23 | 2000-10-24 | Lucent Technologies, Inc. | Method and apparatus for updating an online computer program |
DE19810802A1 (de) * | 1998-03-12 | 1999-09-16 | Ericsson Telefon Ab L M | Störungsfreies Aktualisieren von Daten |
US6070012A (en) * | 1998-05-22 | 2000-05-30 | Nortel Networks Corporation | Method and apparatus for upgrading software subsystems without interrupting service |
US6154878A (en) * | 1998-07-21 | 2000-11-28 | Hewlett-Packard Company | System and method for on-line replacement of software |
US6199203B1 (en) * | 1998-07-21 | 2001-03-06 | Hewlett-Packard Company | Memory management techniques for on-line replaceable software |
US6314567B1 (en) * | 1998-11-13 | 2001-11-06 | Hewlett-Packard Company | Apparatus and method for transferring state data when performing on-line replacement of a running program code and data |
US7062765B1 (en) * | 1999-05-25 | 2006-06-13 | Realnetworks, Inc. | System and method for updating information via a network |
US6698017B1 (en) * | 1999-07-16 | 2004-02-24 | Nortel Networks Limited | Software migration on an active processing element |
US6629315B1 (en) * | 2000-08-10 | 2003-09-30 | International Business Machines Corporation | Method, computer program product, and system for dynamically refreshing software modules within an actively running computer system |
US20020073409A1 (en) * | 2000-12-13 | 2002-06-13 | Arne Lundback | Telecommunications platform with processor cluster and method of operation thereof |
JP4426736B2 (ja) | 2001-04-27 | 2010-03-03 | 株式会社日立製作所 | プログラム修正方法およびプログラム |
US20030018950A1 (en) * | 2001-06-02 | 2003-01-23 | Malcom Sparks | Dynamic redeploying environment for the rapid iterative development of software applications |
NO20021247D0 (no) * | 2002-03-13 | 2002-03-13 | Ericsson Telefon Ab L M | Fremgangsmåte og system for oppgradering av programvare |
US7174547B2 (en) * | 2002-03-25 | 2007-02-06 | Ciena Corporation | Method for updating and restoring operating software in an active region of a network element |
US20030191870A1 (en) * | 2002-04-02 | 2003-10-09 | Dominic Duggan | Method and apparatus for updating software libraries |
US20040010786A1 (en) * | 2002-07-11 | 2004-01-15 | Microsoft Corporation | System and method for automatically upgrading a software application |
US7000229B2 (en) * | 2002-07-24 | 2006-02-14 | Sun Microsystems, Inc. | Method and system for live operating environment upgrades |
US7216343B2 (en) * | 2002-09-20 | 2007-05-08 | International Business Machines Corporation | Method and apparatus for automatic updating and testing of software |
US6978452B2 (en) * | 2003-04-02 | 2005-12-20 | Beach Unlimited Llc | Upgrading digital media servers |
US7610582B2 (en) * | 2003-04-18 | 2009-10-27 | Sap Ag | Managing a computer system with blades |
WO2004104825A1 (en) * | 2003-05-15 | 2004-12-02 | Applianz Technologies, Inc. | Systems and methods of creating and accessing software simulated computers |
US20050044301A1 (en) * | 2003-08-20 | 2005-02-24 | Vasilevsky Alexander David | Method and apparatus for providing virtual computing services |
US20050216920A1 (en) * | 2004-03-24 | 2005-09-29 | Vijay Tewari | Use of a virtual machine to emulate a hardware device |
US7886293B2 (en) * | 2004-07-07 | 2011-02-08 | Intel Corporation | Optimizing system behavior in a virtual machine environment |
-
2004
- 2004-09-30 US US10/955,641 patent/US8146073B2/en active Active
-
2005
- 2005-09-28 EP EP05108955A patent/EP1643361A3/en not_active Withdrawn
- 2005-09-29 CN CNA2005101087446A patent/CN1770121A/zh active Pending
- 2005-09-30 KR KR1020050092072A patent/KR20060051932A/ko not_active Application Discontinuation
- 2005-09-30 JP JP2005287700A patent/JP2006107500A/ja active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075661B2 (en) | 2010-10-20 | 2015-07-07 | Microsoft Technology Licensing, Llc | Placing objects on hosts using hard and soft constraints |
CN102541987A (zh) * | 2010-10-20 | 2012-07-04 | 微软公司 | 升级期间的在线数据库可用性 |
US9721030B2 (en) | 2010-12-09 | 2017-08-01 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
US10467315B2 (en) | 2010-12-09 | 2019-11-05 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
CN102591708B (zh) * | 2010-12-13 | 2015-05-06 | 微软公司 | 用于提供按需处理和背景处理的体系结构 |
CN102591708A (zh) * | 2010-12-13 | 2012-07-18 | 微软公司 | 用于提供按需处理和背景处理的体系结构 |
CN104303148A (zh) * | 2012-03-22 | 2015-01-21 | 爱迪德加拿大公司 | 更新软件组件 |
CN104303148B (zh) * | 2012-03-22 | 2018-10-19 | 爱迪德技术有限公司 | 更新软件组件 |
CN103838947A (zh) * | 2012-11-26 | 2014-06-04 | 北京新媒传信科技有限公司 | 一种实现应用割接的方法和装置 |
CN103838947B (zh) * | 2012-11-26 | 2016-12-21 | 北京新媒传信科技有限公司 | 一种实现应用割接的方法和装置 |
CN104423989A (zh) * | 2013-09-02 | 2015-03-18 | 联想(北京)有限公司 | 一种应用更新方法及电子设备 |
CN104423989B (zh) * | 2013-09-02 | 2017-11-28 | 联想(北京)有限公司 | 一种应用更新方法及电子设备 |
US10318271B2 (en) | 2015-01-05 | 2019-06-11 | Irdeto Canada Corporation | Updating software components in a program |
CN106301820A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种基于网络连接服务的升级方法和装置 |
CN106301820B (zh) * | 2015-05-15 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 一种基于网络连接服务的升级方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20060051932A (ko) | 2006-05-19 |
US20060075076A1 (en) | 2006-04-06 |
US8146073B2 (en) | 2012-03-27 |
EP1643361A3 (en) | 2008-02-06 |
EP1643361A2 (en) | 2006-04-05 |
JP2006107500A (ja) | 2006-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1770121A (zh) | 在软件运行的同时更新软件 | |
US10216545B2 (en) | Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment | |
US10931599B2 (en) | Automated failure recovery of subsystems in a management system | |
US11294699B2 (en) | Dynamically scaled hyperconverged system establishing minimum supported interoperable communication protocol between clusters in a cluster group | |
US9661071B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
US7260818B1 (en) | System and method for managing software version upgrades in a networked computer system | |
US6832238B1 (en) | Local transaction management | |
US7370322B1 (en) | Method and apparatus for performing online application upgrades in a java platform | |
JP4507620B2 (ja) | 分散サービスの実行をホストするためのリソースを提供するサービス提供インフラストラクチャのサービス・インスタンスにサービス要求をルーティングするためのシステム、並びにその方法及びコンピュータ・プログラム | |
US20150012914A1 (en) | Distributed update service | |
US20100287280A1 (en) | System and method for cloud computing based on multiple providers | |
US20040230670A1 (en) | Method and system for representing, configuring and deploying distributed applications | |
JP2013522769A (ja) | 仮想マシンイメージ更新サービス | |
US20040088700A1 (en) | System and method for automatically installing software on client computers via a network | |
US20050188068A1 (en) | System and method for monitoring and controlling server nodes contained within a clustered environment | |
US7690001B2 (en) | System and method for a management model event system | |
US7177934B2 (en) | Method and apparatus for providing application specific strategies to a JAVA platform including start and stop policies | |
US9465677B2 (en) | Partitioned application environment | |
Tang et al. | Application centric lifecycle framework in cloud | |
CN111698309B (zh) | 区块链网络服务系统、方法及装置 | |
Kusek et al. | Mobile agent based software operation and maintenance | |
WO2013188697A1 (en) | System and method for supporting version based routing in a transactional middleware machine environment | |
CN115904478B (zh) | 云平台资源管理方法、系统及电子设备 | |
US7657615B1 (en) | Approach for provisioning network devices | |
CN117762524A (zh) | 一种在Windows系统上共享GPU作为边缘计算AI推理节点的方法 |
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 |
Open date: 20060510 |