CN102141925A - 使用第三方目标状态的适用性检测 - Google Patents
使用第三方目标状态的适用性检测 Download PDFInfo
- Publication number
- CN102141925A CN102141925A CN2011100373893A CN201110037389A CN102141925A CN 102141925 A CN102141925 A CN 102141925A CN 2011100373893 A CN2011100373893 A CN 2011100373893A CN 201110037389 A CN201110037389 A CN 201110037389A CN 102141925 A CN102141925 A CN 102141925A
- Authority
- CN
- China
- Prior art keywords
- resource
- target
- data
- request
- resource name
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- 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
-
- 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
-
- 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
Abstract
使用第三方目标状态的适用性检测。这里所描述的主题的各方面涉及检测需要的更新。在各方面中,更新代理接收扫描用于目标的更新的请求。目标可包括虚拟设备或非虚拟设备。该请求可包括一个或多个规则,指示出要检查来确定设备的属性的资源。更新代理使用资源访问器来访问所述规则指示的资源。资源访问器将所述更新代理所指示的资源名称映射到所述目标的对应的资源名称。更新代理可通过设计来消除不相关更新的多程协议向更新源提供评估所述规则的结果。
Description
技术领域
本发明涉及软件更新,尤其涉及在虚拟机中检测需要的更新。
背景技术
随着处理能力走向通过虚拟机实例来管理功能的模型,顾客正通过虚拟机映像库来管理他们的基础结构。在该模型中,虚拟机在需要时运行,而在不需要时被挂起。通过将虚拟机映像复制到额外的硬件上来添加容量。
作为管理该映像库的一部分,管理员需要确保映像中的软件当前具有最新的软件更新(如安全补丁、附加功能等)。传统上,这是通过运行虚拟机然后在虚拟机中执行更新代理来完成的。尽管这允许虚拟机被更新,但是该机制是一种重要的维护活动,它消耗计算资源且对于管理虚拟机的管理员来说可能是耗时且乏味的。
在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。
发明内容
简单来说,这里所描述的主题的各方面涉及检测需要的更新。在各方面中,更新代理接收扫描用于目标的更新的请求。目标可包括虚拟设备或非虚拟设备。该请求可包括一个或多个规则,指示出要检查来确定设备的属性的资源。更新代理使用资源访问器来访问所述规则指示的资源。资源访问器将所述更新代理所指示的资源名称映射到所述目标的对应的资源名称。更新代理可通过设计来消除不相关更新的多程协议向更新源提供评估所述规则的结果。
提供本概述是为了简要地标识在以下详细描述中进一步描述的主题的一些方面。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
除非上下文清楚地指出,否则短语“此处所描述主题”指的是详细描述中所描述的主题。术语“方面”被当作“至少一个方面”。标识详细描述中所描述的主题的各方面不旨在标识所要求保护的主题的关键特征或必要特征。
上述各方面和此处所描述主题的其它方面是借助于示例说明的,并且不受附图限制,附图中相同的标号指出相似的元素。
附图说明
图1是表示其中可结合此处所描述主题的各方面的示例性通用计算环境的框图;
图2是表示此处所描述的主题的各方面可以在其中实现的示例性系统的框图;
图3是概括地表示根据此处所描述的主题的各方面的、可在检测用于目标的需要的更新时发生的示例性动作的流程图;以及
图4是概括地表示根据此处所描述的主题的各方面的、可在访问目标上的资源时发生的示例性动作的流程图。
具体实施方式
定义
如此处所使用的,术语“包括”及其变体被当作开放式术语,表示“包括但不限于”。除非上下文清楚地指示出,否则术语“或”被当作“和/或”。术语“基于”被当作“至少部分基于”。术语“一个实施例”和“一实施例”被当作“至少一个实施例”。术语“另一实施例”被当作“至少一个其他实施例”。其他显式或隐式定义可包括在下文中。
示例性操作环境
图1示出可在其上实现此处所描述主题的各方面的合适的计算系统环境100的示例。计算系统环境100仅为合适的计算环境的一个示例,并非旨在对此处所描述主题的各方面的使用范围或功能提出任何限制。也不应该将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
此处所描述的主题的各方面可与众多其他通用或专用计算系统环境或配置一起操作。可适用于这里所述的主题的各方面的已知计算系统、环境或配置的例子包括个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微控制器的系统、机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒,媒体中心或其他家电的家电设备、嵌入汽车或附加到汽车的计算设备、其他移动设备、包括任何上述系统或设备的分布式计算环境等等。
此处所描述主题的各方面可在由计算机执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。此处所描述的主题的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图1,用于实现此处所描述主题的各方面的示例性系统包括计算机110形式的通用计算设备。计算机可包括能够执行指令的任何电子设备。计算机110的组件可包括处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、也称为夹层(Mezzanine)总线的外围部件互连(PCI)总线、扩展外围部件互连(PCI-X)总线、高级图形端口(AGP)、以及快速PCI(PCIe)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信设备介质包括有线介质,如有线网络或直接线连接,以及诸如声学、射频(RF)、红外线及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,它通常储存在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括磁带盒、闪存卡、数字多功能盘、其他光盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140等不可移动存储器接口连接到系统总线121,而磁盘驱动器151和光盘驱动器155则通常由诸如接口150等可移动存储器接口连接至系统总线121。
以上描述并在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其他程序模块136和程序数据137相同,也可以与它们不同。操作系统144、应用程序145、其他程序模块146和程序数据147在这里被标注了不同的附图标记是为了说明至少它们是不同的副本。
用户可以通过输入设备,如键盘162和定点设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、触敏屏、写字板等。这些和其他输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。
监视器191或其他类型的显示设备也经由接口,如视频接口190连接至系统总线121。除监视器以外,计算机还可以包括其他外围输出设备,如扬声器197和打印机196,它们可以通过输出外围接口195连接。
计算机110可使用至一个或多个远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机110可包括调制解调器172或用于通过诸如因特网等的WAN 173来建立通信的其它装置。可为内置或可为外置的调制解调器172可以经由用户输入接口160或其他合适的机制连接至系统总线121。在网络化环境中,关于计算机110所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。
更新
如上所述,随着转移到虚拟机,在虚拟机上更新软件可能变成重要的维护活动。虚拟环境是由计算机模仿或模拟的环境。虚拟环境可模仿或模拟物理硬件。被模仿或模拟的这种机器有时被称为虚拟机。对于在虚拟机上执行的软件来说,虚拟机是一种看上去是物理机器的机器。软件可在诸如虚拟硬盘驱动器、虚拟软盘等之类的虚拟存储设备中存储文件,可从虚拟CD读取文件,可经虚拟网络适配器通信等等。
单个计算机上可以主控不止一个虚拟机。也就是说,两个或更多虚拟机可在单个物理计算机上执行。对于在每个虚拟机中执行的软件来说,该虚拟机看上去具有其自己的硬件,即使单个计算机上主控的多个虚拟机可能物理上彼此并与主控操作系统共享一个或多个物理设备。
这里所描述的主题的各方面还可应用于应用虚拟化。在应用虚拟化中,操作系统的一个或多个资源(如注册表、文件系统、库等)被虚拟化并呈现给应用。例如这可以通过截取对资源的请求的虚拟化层来完成。当访问虚拟化资源时,应用相信它正在访问操作系统的常规资源。不论术语“虚拟机”在此用于何处,要理解在其他实施例中,这里的教示也可应用于应用虚拟化。
尽管在此有时称为虚拟机,但是这里所述的主题可应用于其他设备。这里所述的主题的各方面可适用于非虚拟设备,如打印机、路由器、冰箱、手持或膝上型设备、多处理器系统、基于微控制器的系统、机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒,媒体中心或其他家电的家电设备、嵌入汽车或附加到汽车的计算设备、其他移动设备、包括任何上述系统或设备的分布式计算环境等等。
图2是表示此处所描述的主题的各方面可以在其中实现的示例性系统的框图。该环境可包括更新请求器205、应用程序编程接口(API)210、更新代理215、更新源220、瞬时或持久存储217、表达式评估器225、一个或多个资源访问器230-232、一个或多个目标235-237。有时,上述之一可被称为实体,且上述两个或多个可被称为多个实体。
图2中示出的实体是示例性的且不意味着包括一切的可能需要或包括的实体。在其他实施例中,结合图2描述的两个或多个实体和/或功能可被组合、包括在其他实体中(未示出)、或划分成子实体,而不背离这里所述的主题的各方面的精神和范围。
实体可包括计算机系统的组件。如这里所使用的,术语组件要被当作包括以下的全部或一部分:设备、一个或多个软件模块或其部分的集合、一个或多个软件模块或其部分与一个或多个设备或其部分的某种组合等等。
实体可位于彼此相对接近的位置或可在广阔区域上分布。在一个实施例中,两个或多个实体的组可被主控在同一物理或虚拟机上。在其他实施例中,每个实体可被主控在不同的物理或虚拟机上。
主控在不同机器上的实体能够经各种网络彼此通信,网络包括一个或多个局域网、一个或多个电话网络、一个或多个广域网、直接连接、虚拟连接、专用网络、虚拟专用网络、上述的某种组合等等。
主控在同一机器上的实体能够经进程间、进程内或其他通信信道来彼此通信。
更新请求器205可包括经API 210请求对目标235-237中的一个或多个扫描适用的更新的组件。例如,更新请求器205可包括接收并响应于来自系统管理员或类似者的输入的软件模块。在管理员指令时,更新请求器205可请求对某一目标扫描适用的更新。
作为另一个例子,更新请求器205可与虚拟机库管理器相关联或作为虚拟机库管理器的一部分。周期性地,在接收到新更新的通知时,或在其他时间,虚拟机库管理器可指令更新请求器205请求库中的一个或多个虚拟机应被扫描。
API 210提供编程接口,通过该编程接口指令可被发送到更新代理215且响应可由更新代理215提供。API 210可提供能由远程设备上的进程调用的接口。
更新代理215可包括负责检测用于一个或多个目标的适用的更新的组件。更新代理215可通过对照一个或多个目标的资源来评估一个或多个规则来进行。规则可与一个或多个表达式相关联或可体现在一个或多个表达式中。该一个或多个表达式可被评估来确定目标的属性。这些属性可包括关于设备的软件、硬件、配置数据、应用数据、状态等之类的信息。
例如,属性可包括安装在目标上的软件应用的版本。作为另一个例子,属性可包括注册表或其他数据库中的值。作为另一个例子,属性可以是目标上所使用的语言。作为又一个例子,属性可以是数据库中的数据。作为又一个例子,属性可包括关于安装在设备上的硬件组件的数据。某些其他例子包括目标的屏幕大小和分辨率、硬盘大小、总RAM、高速缓存、处理器类型和速度。
上述例子并不旨在是包括一切的或是穷举的。实际上,在一个实施例中,设备的属性可包括关于设备的可通过在目标上执行完全特权的过程而确定的任何数据。
规则可用包括代码的更新来传达。规则可指示出更新是否适用于目标。代码可包括如果被应用则修改目标的状态的数据。术语数据要被宽泛地看作包括可由一个或多个计算机存储元素表示的任何东西。逻辑上,数据可被表示成易失性或非易失性存储器中的一系列1和0。在具有非二进制存储介质的计算机中,数据可根据存储介质的能力来表示。数据可被组织称不同类型的数据结构,包括诸如数字、字母等之类的简单数据类型,分层、链接或其他相关数据类型、包括多个其他数据结构或简单数据类型的数据结构等等。数据的某些例子包括程序代码、程序状态、程序数据、其他数据等等。
更新可包括新的软件、现有软件的更新、对系统设置或策略的修改、数据库更新、对目标的用户的交互式通知等等。
某些更新可能不包括代码,但可仅包括可用于检测目标的状态的规则。这些更新有时在此被称为“detectoid”。Detectoid可用于确定某一对象的属性。例如,某些注册表键、文件夹、文件、目录、环境变量、和/或目标上的其他数据的存在可指示出某一版本的文字处理软件安装在目标上。例如,可以评估表达式来确定名为“c:\program files\foo.exe”的文件资源是否存在以及是否版本高于1.0版。
更新可具有一个或多个依赖关系。例如,是否应用某一更新取决于目标系统的属性,如是否其他软件和/或更新早已成功应用于目标上。例如,包括版本3的软件包的更新可能需要在包括版本2的软件的更新之后才被应用。
在评估另一更新的detectoid或表达式时,更新代理215可生成随后可被传回更新源220的数据。该数据可允许更新源220通过筛选出由于没有满足依赖关系而不适用的更新来应用有效的扫描协议(下文中更详细地描述)。例如,如果没有安装文字处理器,则连更新源将文字处理器的更新发送到客户机用于评估都不需要了。
更新源220可包括基于从更新代理215接收到的数据确定什么更新可能需要被安装在目标上的组件。在一个实施例中,更新源220可包括服务。服务可包括执行指定任务的一个或多个进程、线程、组件、库等等。服务可以硬件、软件、或硬件和软件的组合来实现。服务可分布在多个设备上或可实现在单个设备上。
在另一实施例中,更新源220可包括包含用于更新代理215的更新信息的文件、数据结构等。例如,更新源220可包括向更新代理215提供更新信息的可执行代码。作为另一个例子,更新源220可包括CAB文件、MSI文件或某种其他文件。
更新源220可执行多程协议来有效地提供更新。在多程协议中,更新源220可首先向更新代理215发送不具有依赖关系的一组更新(包括detectoids)。更新代理215可评估这些更新的规则并将目标的属性通知给更新源220。
在评估detectoid的规则时,一个或多个资源的状态可与一个或多个值进行比较。例如,规则可将特定注册表建与值5进行比较。评估规则的结果可由更新代理215提供给更新源220。基于该结果(以及可能的其他结果),更新源220可确定是否要将附加的detectoids或更新发送到更新代理215。
在协议的下一次迭代中,更新源220可发送取决于被检测为在前一次迭代中安装的软件和/或更新的更新。更新代理215然后可评估这些附加更新的规则,并将结果发送到更新源220。
该过程可继续直到没有依赖于目标设备的属性的更新可用。在一种意义上,该过程可被看作是基于提供给更新源220的结果在每次迭代中裁剪掉树或图的不相关分支。更新源220可通过发送不依赖于其他更新的更新(包括detectoids)来开始该过程,并可发送依赖于先前的更新的结果的其他更新。该多程协议可用于有效地删除那些不适用于目标的更新,并因此减少了检测目标所需的更新的代价。
更新代理215可存储指示出什么被安装在特定目标上的数据。该数据可被存储在与目标“一起移动”的文档中。在一个实施例中,文档可被存储在目标的存储器设备(如虚拟磁盘映像)中。在另一个实施例中,文档可被存储在目标外的存储上(如存储217),具有将文档与目标相关联的标识符。在对目标的后续扫描中,该存储的数据可被用作用于确定目标需要什么更新的起始点。
存储217可包括能够提供对包括关于对目标的先前扫描的结果的数据的访问的任何存储介质。该存储可包括易失性(如高速缓存)和非易失性存储器(如持久存储器)。存储217可包括硬盘存储、其他非易失性存储、诸如RAM等易失性存储器、其它存储、以上的某种组合等,并可以分布在多个设备中。存储217可以是主控更新代理215的装置外部的、内部的或包括那些内部和外部的组件。
在一个实施例中,更新源220向更新代理215提供的规则和其他数据可用可扩展标记语言(XML)来编码。然而,在另一实施例中,表达式可用其他语言、数据结构等来编码。
在一个实施例中,更新代理215和更新源220之间的交互可包括下面的示例性动作:
1.更新代理215连接到更新源220并请求更新源220提供不具有依赖关系的所有更新。
2.作为响应,更新源220将这些更新发送给更新代理215。这些更新可包括许多detectoids来检测目标的操作系统、应用文件以及其他状态。
3.更新代理215评估更新的规则,这可包括评估一个或多个表达式。在评估表达式时,更新代理215可基于对照安装在目标上的软件和/或硬件或其他目标机器状态进行表达式评估来计算一组结果(如布尔值),该组结果指示出已安装在目标上的更新和detectoids。
4.更新代理215将结果发送到更新源220。
5.更新源220确定依赖于什么已安装在目标上的更新。例如,如果某一特定版本的文字处理器安装在机器上,更新源220可确定是否有任何依赖于该版本的文字处理器的更新。作为另一个例子,如果确定出目标的语言是德语,则更新源220可去除和其他语言有关的更新。
6.更新源220将下一组更新发送到更新代理215。
7.重复上述的步骤3-6,直到没有依赖于什么已被安装在目标上的新更新为止。
当目标是虚拟机时,可执行对安装在虚拟机中的软件的检测而不运行虚拟机。虚拟机可作为映像被存储在盘上。该映像可经虚拟机或经诸如资源访问器之类的另一实体来访问。当目标是离线虚拟机时,与目标相关联的资源的名称可能与资源由执行时的虚拟机访问的情况不同。例如,当被虚拟机访问时,虚拟机的盘上的资源的名称可以“C:\”为开始。当从虚拟机的外部访问同一个盘时,例如盘上的资源的名称可以“D:\”开始。
然而,包含在更新中的规则可在预期以原始资源名称的方式使用的情况下来创建。如果直接对照离线映像的资源名称来评估规则,则可能不能找到或访问适当的资源。
当使用可评估到资源名称中的其他数据时可能会发生相同的问题。例如,在访问资源同时虚拟机离线时,系统变量、组件标识符、包括外壳文件夹或其他文件夹的文件夹、注册表项、以及可用于定位资源的其他数据可能不同。
资源访问器230-232可用于访问目标235-237上的适当的资源。每个资源访问器可包括将资源名称或其一部分与映射到的资源名称或其一部分相关联的映射表或其他数据结构。例如,映射表可包括将“C:\”与“D:\”相关联的条目。当资源访问器接收到访问具有以“C:\”为开始的名称的资源的请求时,资源访问器可使用映射表将资源名称开始处替换成“D:\”来访问离线虚拟机上的资源。
类似的,某些资源名称可能以变量为前缀(如“$(program files)”、“$(system)”等)。映射表可包括用于这些变量的条目,将变量映射到目标上的对应于资源名称的前缀。
访问资源时可能存在多级映射。例如,表达式可指示出在注册表中的某一键中找到资源名称。可使用一个映射来寻找注册表(如将“C:\”替换成“D:\”的映射)。在定位了注册表且获得了与该键相关联的值之后,可使用另一映射将该值所指示的资源映射到可在加载的映像中找到的位置。例如,注册表值可引用“C:\”上的资源。为了正确访问加载的映像上的该资源,可使用映射以从“C:\”映射到“D:\”。
尽管在前段的例子中描述了仅仅两级映射,但是并不意图将该主题的各方面限制成仅仅两级映射。实际上,在其他实施例中,可能存在多于两级的映射来访问资源。在这些情况下,确定映射可能涉及多个操作。例如,环境变量可包括引用数据库条目的资源名称。数据库条目可包括引用文件位置的另一资源名称。文件可包括引用所需的资源的另一资源名称。在该例子中,为了找到所需的资源,可能涉及多个映射操作。
每个资源访问器230-232可具有适用于其自己相关联的目标(即分别为目标235-237)的映射表。这可允许更新代理215用于来自离线虚拟机(不同版本和/或来自不同厂商)、在线虚拟机、加载在不同分区上的在线或离线操作系统、前述的其他设备等许多不同类型的目标以及同一类型的不同实例。
更新代理215可能不需要知道目标类型或其能力。相反,更新代理215可将访问特定资源的规则发送到表达式评估器225,表达式评估器可经资源访问器230-232来访问资源。资源访问器230-232然后可基于各自不同的映射表进行适当的变换来访问适当的资源。
本领域的技术人员将理解结合图2描述的更新机制提供了灵活性和扩展性。例如,当系统管理员或类似者希望添加另一类型的新目标时,可创建映射表并将其提供给资源访问器以允许访问新资源。
可自动、半自动或手动创建或填充映射表。例如,在自动或半自动填充的例子中,当更新代理215被指示更新离线虚拟机时,更新代理215可装载与虚拟机相关联的盘的映像(如“D:\”之类)。更新代理215还可访问与虚拟机相关联的元数据来确定虚拟机与盘相关联的资源名称(如“C:\”)。更新代理215然后创建从虚拟机所使用的名称(如“C:\”)到给予所述装载的名称(如“D:\”)的映射条目。
作为另一个例子,可在虚拟机的注册表中定义环境变量或其他资源位置信息(如路径或其部分)。对于与资源相关联的环境变量,可自动创建一个或多个映射条目,将环境变量或其他资源位置信息映射到用于装载的盘的适当的资源名称。
可手动创建某些映射。例如,某一品牌的移动设备的临时目录可被硬编码成特定位置。在该情况下,用于该临时目录的映射条目可被硬编码到映射表中。
虽然以上结合图2描述的系统包括各种实体和相关的通信路径,但可以理解,可以采用更多、更少的这些实体或这些实体的不同组合而不背离此处所描述的主题的各方面的精神或范围。此外,该系统中包括的各实体和通信路径可以用本领域技术人员所理解的各种方式来配置而不背离此处所描述的主题的各方面的精神或范围。
图3-4是根据此处所描述的主题的各方面的概括地表示可发生的动作的流程图。为解释简明起见,结合图3-4描述的方法被描绘和描述为一系列动作。可以理解和明白,此处所描述的主题的各方面不受所示出的动作和/或动作次序的限制。在一个实施例中,动作以如下描述的次序发生。然而,在其它实施例中,动作可以并行地发生,以另一次序发生,和/或与此处未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据此处所描述的主题的各方面的方法所必需的。另外,本领域的技术人员将了解和明白,方法也可以替代地经由状态图或作为事件表示为一系列相互相关联的状态。
图3是概括地表示根据此处所描述的主题的各方面的、可在检测用于目标的需要的更新时发生的示例性动作的流程图。在框305,动作开始。
在框310处,接收扫描目标的请求。该请求是在除了所述目标之外的某一实体处接收的。例如,参考图2,更新代理215经API 210接收来自更新请求器205的请求。连同接收扫描目标的请求,更新代理215可基于所述目标从多个映射数据结构中选择一个映射数据结构,每一个映射数据结构适用于预定义类型的目标或某一类型的目标的实例。
映射数据结构可包括从更新所指示的资源到目标的资源的一个或多个映射。此外,映射数据结构可指示算法,通过该算法获得目标的资源。例如,映射数据结构可指定使用可涉及一个或多个API的一个或多个操作从本地或远程目标获得资源的算法。映射数据结构不限于表中成对的值,并且可用包括例如if-then-else语句、switch语句、其他语句等的代码来编码,以从目标的对应的源获得资源的数据。
此外,访问目标上的对应的资源的方法可与从另一源访问类似命名的资源的方法不同。例如,在用于在线机器的环境中,进程可通过调用Win32API来访问资源(例如查询WMI存储或调用GetSystemMetrics)。对于离线映像来说,经对同一API的调用可能不能完成对同一资源的访问;相反,访问器可能必须直接访问底层存储(如离线映像的注册表)。
此外,连同接收所述请求,更新代理215可接收从规则所指示的资源名称到目标的对应的资源名称的映射的指示。例如,更新请求器可指示对应于虚拟机的映像已被加载到网络共享\\server\share\VMImage上。该信息可用于在映射数据结构中创建映射。
在框315,向更新源请求更新的规则。如前所述,规则可与更新一起传递。规则指示出要检查的资源以确定目标的属性。例如,参考图2,更新代理215可向更新源220请求更新。此外,在请求规则时,更新代理215可从目标235或存储217获得先前扫描的结果,并可连同向更新源请求规则将这些结果传递到更新源220。
在框320,选择一个规则。更新源220可返回一个或多个规则。例如,参考图2,更新代理215可确定(或被告知)评估规则的顺序,并可按顺序选择第一规则。
在框325,标识规则的资源名称。例如,参考图2,更新代理215可标识规则所指示的资源名称。如先前所述,规则可标识资源和用于比较资源的值。规则可用XML或指示出资源、比较操作符和值的某种其他数据结构来指定。
在框330,将标识的资源名称映射到目标资源名称。这可涉及使用映射数据结构来确定目标的一个或多个对应的资源名称。例如,参考图2,资源访问器230可将更新代理215提供的资源名称(如“C:\Path\File”)映射到目标235的资源名称(如“D:\Path\File”)。
在框335,从目标的映射的资源获得至少一些数据。当资源值包括资源名称时,如先前所述,获得数据可涉及多个映射操作。例如,参考图2,资源访问器230可从对应于目标235的虚拟机的映像获得值。
在框340,评估规则的一个或多个表达式,以将数据与规则所指示的一个或多个准则相比较。评估所述一个或多个表达式产生了指示出安装在目标上的软件和/或硬件中的至少一个的结果。例如,参考图2,表达式评估器225可评估规则的表达式来确定指示目标235上安装的软件和/或硬件的结果。
在框345,作出关于更新中是否有另一规则的判定。如果是,则动作在框350继续;否则,动作在框355继续。
在框350,选择下一个规则。在框350之后,可重复与325-345相关联的动作。
在框355,将结果提供给更新源。例如,参考图2,更新代理215可向更新源220提供评估规则的结果。
在框357,作出关于是否有另一更新要扫描的判定。如果是,则动作在框315继续;否则,动作在框360继续。
在框360处,可以执行其他动作(如果存在)。其他动作可包括例如存储评估表达式所产生的结果、接收扫描目标的另一请求、检索结果、将结果提供给更新源、从更新源接收至少部分依赖于结果的附加规则。
图4是概括地表示根据此处所描述的主题的各方面的、可在访问目标上的资源时发生的示例性动作的流程图。在框405,动作开始。
在框410,可接收关于将资源名称或其一部分与另一资源名称或其一部分相关联的关联的指示。例如,参考图2,资源访问器231可接收请求将“C:\”映射到“D:\”的指示。
在框415,如果接收到关联,则将其存储在映射数据结构中例如,参考图2,资源访问器231可将关联存储在与目标236相关联的映射表中。
在框420,接收到对目标的资源的至少一些数据的请求。请求可包括第一资源名称。例如,参考图2,更新代理215可向文件请求某些数据,并可指示文件的资源名称“C:\pathname\file”。
在框425,将资源名称映射到目标资源名称。例如,参考图2,资源访问器231可使用映射表将资源名称“C:\pathname\file”映射到目标资源名称“D:\VMs\VM1\pathname\file”。该目标资源名称标识了对应于提供给资源访问器231的资源名称(如“C:\pathname\file”)的目标236的资源(例如“D:\VMs\VM1\pathname\file”)。
在框430,使用目标资源名称从目标获得所请求的数据。例如,参考图2,资源访问器231可使用资源名称“D:\VMs\VM1\pathname\file”从与目标236相关联的注册表文件获得至少一些数据。
在框435处,向请求器提供数据。例如,参考图2,资源访问器231向更新代理215提供所请求的数据。
可对扫描的每一个资源重复与框420-435相关联的动作。
在框440处,可以执行其他动作(如果存在)。例如,参考图2,如果资源中的数据引用另一资源,可执行更多的映射来从目标236获得正确的资源。
如从上述详细描述中可以看到,已经描述了关于检测所需更新的各方面。尽管此处所描述主题的各方面易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而,应当理解,并不旨在将所要求保护主题的各方面限制于所公开的具体形式,而是相反地,目的是要覆盖落入此处所描述主题的各方面的精神和范围之内的所有修改、替换构造和等效方案。
Claims (15)
1.一种至少部分地由计算机实现的方法,所述方法包括:
接收(310)扫描目标的请求,以确定用于目标的更新,所述请求是在不同于目标的实体处接收的;
经所述实体向更新源请求(315)规则,所述规则指示出要检查的资源以确定目标的属性;以及
对于每个规则,
标识(325)所述规则指示出的一个或多个资源名称;
使用映射数据结构确定(330)所述目标的一个或多个对应的资源名称;
获得(335)由所述目标的对应的资源名称所标识的资源的至少一些数据;以及
评估(340)表达式以将所述至少一些数据与所述规则所指示出的一个或多个准则进行比较,所述评估表达式产生指示出所述目标的至少一个属性的结果。
2.如权利要求1所述的方法,其特征在于,接收扫描目标的请求包括接收扫描离线的虚拟机的请求,获得由所述目标的对应的资源名称所标识的资源的至少一些数据包括获得所述至少一些数据而不使所述虚拟机在线。
3.如权利要求1所述的方法,其特征在于,接收扫描目标的请求包括接收扫描在线的虚拟机的请求,获得由所述目标的对应的资源名称所标识的资源的至少一些数据包括经与所述虚拟机相关联的映像获得所述至少一些数据,所述映像驻留在一个或多个易失性和非易失性存储器上。
4.如权利要求1所述的方法,其特征在于,还包括:对于一规则,使用所述至少一些数据来获得另一资源名称,将所述另一资源名称映射到又一资源名称,从对应于所述又一资源名称的资源获得来自所述目标的至少一些数据。
5.如权利要求1所述的方法,其特征在于,还包括存储通过评估表达式而产生的结果,接收扫描所述目标的另一请求,检索结果,将结果提供给更新源,从所述更新源接收至少部分依赖于所述结果的附加规则。
6.如权利要求1所述的方法,其特征在于,还包括基于所述目标从多个映射数据结构选择所述映射数据结构,每个映射数据结构适用于预定义类型的目标。
7.如权利要求1所述的方法,其特征在于,还包括通过检查目标的一个或多个属性,生成从规则指示的资源名称到目标的对应的资源名称的一个或多个映射。
8.一种在计算环境中的系统,包括:
更新代理(215),用于接收扫描目标以确定用于所述目标的更新的扫描请求,所述更新代理驻留在不同于所述目标的实体上,所述更新代理还用于向更新源请求规则,所述规则指示出要检查的资源以确定所述目标的属性;
资源访问器(230、231、232),用于接收对目标的资源的资源请求,所述资源请求指示出资源名称,所述资源访问器还用于经映射数据结构确定目标的对应的资源名称,所述资源访问器还用于从所述目标获得来自所述对应的资源名称的资源的至少一些数据;
表达式评估器(225),用于通过将所述至少一些数据与规则的一个或多个准则相比较来评估规则的至少一个表达式,以产生基于此的结果。
9.如权利要求8所述的系统,其特征在于,所述目标包括离线虚拟机,所述资源访问器用于获得所述至少一些数据而不使所述虚拟机在线。
10.如权利要求8所述的系统,其特征在于,所述目标包括在线虚拟机,所述资源访问器用于在所述虚拟机在线时获得所述至少一些数据。
11.如权利要求8所述的系统,其特征在于,所述目标包括不同于虚拟机的设备,所述资源访问器用于从所述设备或与所述设备相关联的存储获得所述至少一些数据。
12.如权利要求8所述的系统,其特征在于,还包括存储设备,用于接收并存储所述结果,并在被请求时提供所述结果,所述更新代理还用于向所述存储设备请求所述结果并连同向更新源请求规则将结果提供给更新源。
13.一种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在被执行时执行以下动作,包括:
从更新代理接收(420)对目标的资源的至少一些数据的请求,所述请求包括第一资源名称,所述更新代理用于扫描所述目标以确定所述目标的属性,所述更新代理用于在确定用于所述目标的更新时与多程更新源通信,所述更新代理用于在评估表达式时使用所述至少一些数据来确定所述至少一些数据是否满足用于确定所述目标的属性的规则的一个或多个准则;
将所述第一资源名称映射(425)到第二资源名称,所述第二资源名称标识所述目标的所述资源;
使用所述第二资源名称从所述目标获得(430)所述资源的所述至少一些数据;以及
向所述更新代理提供(435)所述至少一些数据。
14.如权利要求13所述的计算机存储介质,其特征在于,还包括:
在接收对所述至少一些数据的请求之前,接收关于将资源名称或其一部分与另一资源名称或其一部分相关联的关联的指示;
将所述关联存储在映射数据结构中;以及
在将所述第一资源名称映射到所述第二资源名称时使用所述关联。
15.如权利要求13所述的计算机存储介质,其特征在于,还包括从所述至少一些数据获得第三资源名称,将所述第三资源名称映射到所述目标的第四资源名称,从对应于所述第四资源名称的资源获得至少一些其他数据,将所述至少一些其他数据提供给所述更新代理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/698,158 US8316120B2 (en) | 2010-02-02 | 2010-02-02 | Applicability detection using third party target state |
US12/698,158 | 2010-02-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102141925A true CN102141925A (zh) | 2011-08-03 |
CN102141925B CN102141925B (zh) | 2016-05-11 |
Family
ID=44342589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110037389.3A Active CN102141925B (zh) | 2010-02-02 | 2011-01-31 | 使用第三方目标状态的适用性检测 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8316120B2 (zh) |
CN (1) | CN102141925B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105814545A (zh) * | 2013-12-27 | 2016-07-27 | 京瓷办公信息系统株式会社 | 电子设备 |
CN105871568A (zh) * | 2015-01-19 | 2016-08-17 | 中兴通讯股份有限公司 | 软件升级方法和系统 |
CN106708494A (zh) * | 2015-11-18 | 2017-05-24 | 北京神州泰岳软件股份有限公司 | Jar升级方法及装置 |
CN107844304A (zh) * | 2016-09-18 | 2018-03-27 | 阿里巴巴集团控股有限公司 | 虚拟机热升级方法及装置 |
CN109146964A (zh) * | 2017-06-16 | 2019-01-04 | 汤姆逊许可公司 | 优化用于姿态估计的标记管理的方法和设备 |
CN113711561A (zh) * | 2019-03-29 | 2021-11-26 | 亚马逊技术股份有限公司 | 基于意图的治理服务 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8839228B2 (en) * | 2010-04-21 | 2014-09-16 | Ca, Inc. | System and method for updating an offline virtual machine |
US20120117555A1 (en) * | 2010-11-08 | 2012-05-10 | Lsi Corporation | Method and system for firmware rollback of a storage device in a storage virtualization environment |
US8819660B2 (en) * | 2011-06-29 | 2014-08-26 | Microsoft Corporation | Virtual machine block substitution |
US9530156B2 (en) | 2011-09-29 | 2016-12-27 | Amazon Technologies, Inc. | Customizable uniform control user interface for hosted service images |
US10147123B2 (en) | 2011-09-29 | 2018-12-04 | Amazon Technologies, Inc. | Electronic marketplace for hosted service images |
US9626700B1 (en) | 2011-09-29 | 2017-04-18 | Amazon Technologies, Inc. | Aggregation of operational data for merchandizing of network accessible services |
US8776043B1 (en) * | 2011-09-29 | 2014-07-08 | Amazon Technologies, Inc. | Service image notifications |
CN104067222A (zh) * | 2012-01-30 | 2014-09-24 | 惠普发展公司,有限责任合伙企业 | 使用远程只读存储器映像引导服务器 |
CN103064700A (zh) * | 2012-11-28 | 2013-04-24 | 镇江为天下信息服务有限公司 | 一种零代码集成自动升级方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132349A1 (en) * | 2003-12-15 | 2005-06-16 | Jason Roberts | System and method for a software distribution service |
CN1894661A (zh) * | 2003-03-20 | 2007-01-10 | 派曲林克股份有限公司 | 非入侵式自动站外补丁指纹识别和更新的系统以及方法 |
US20080301672A1 (en) * | 2007-05-30 | 2008-12-04 | Google Inc. | Installation of a Software Product on a Device with Minimal User Interaction |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920616B1 (en) * | 1998-12-18 | 2005-07-19 | Tangis Corporation | Interface for exchanging context data |
AU2001294677A1 (en) * | 2000-09-22 | 2002-04-02 | Patchlink.Com Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US7574706B2 (en) | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7539686B2 (en) | 2004-03-12 | 2009-05-26 | Microsoft Corporation | Tag-based schema for distributing update metadata in an update distribution system |
US8205194B2 (en) | 2007-06-29 | 2012-06-19 | Microsoft Corporation | Updating offline virtual machines or VM images |
US8495609B2 (en) | 2008-02-25 | 2013-07-23 | Sas Institute, Inc. | Methods, systems, and computer program products for taking a snapshot of installed software on a data processing system as part of a software update process |
CA2713876C (en) | 2008-02-26 | 2014-11-04 | Vmware, Inc. | Extending server-based desktop virtual machine architecture to client machines |
-
2010
- 2010-02-02 US US12/698,158 patent/US8316120B2/en active Active
-
2011
- 2011-01-31 CN CN201110037389.3A patent/CN102141925B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1894661A (zh) * | 2003-03-20 | 2007-01-10 | 派曲林克股份有限公司 | 非入侵式自动站外补丁指纹识别和更新的系统以及方法 |
US20050132349A1 (en) * | 2003-12-15 | 2005-06-16 | Jason Roberts | System and method for a software distribution service |
US20080301672A1 (en) * | 2007-05-30 | 2008-12-04 | Google Inc. | Installation of a Software Product on a Device with Minimal User Interaction |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105814545A (zh) * | 2013-12-27 | 2016-07-27 | 京瓷办公信息系统株式会社 | 电子设备 |
CN105814545B (zh) * | 2013-12-27 | 2019-08-27 | 京瓷办公信息系统株式会社 | 电子设备 |
CN105871568A (zh) * | 2015-01-19 | 2016-08-17 | 中兴通讯股份有限公司 | 软件升级方法和系统 |
CN105871568B (zh) * | 2015-01-19 | 2020-04-28 | 中兴通讯股份有限公司 | 软件升级方法和系统 |
CN106708494A (zh) * | 2015-11-18 | 2017-05-24 | 北京神州泰岳软件股份有限公司 | Jar升级方法及装置 |
CN107844304A (zh) * | 2016-09-18 | 2018-03-27 | 阿里巴巴集团控股有限公司 | 虚拟机热升级方法及装置 |
CN109146964A (zh) * | 2017-06-16 | 2019-01-04 | 汤姆逊许可公司 | 优化用于姿态估计的标记管理的方法和设备 |
CN113711561A (zh) * | 2019-03-29 | 2021-11-26 | 亚马逊技术股份有限公司 | 基于意图的治理服务 |
CN113711561B (zh) * | 2019-03-29 | 2023-11-10 | 亚马逊技术股份有限公司 | 基于意图的治理服务 |
Also Published As
Publication number | Publication date |
---|---|
CN102141925B (zh) | 2016-05-11 |
US20110191453A1 (en) | 2011-08-04 |
US8316120B2 (en) | 2012-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102141925A (zh) | 使用第三方目标状态的适用性检测 | |
US10768919B2 (en) | Package installation on a host file system using a container | |
CN101930449B (zh) | 客户机、代理服务器和用于提供云存储器的方法 | |
CN102195970B (zh) | 基于客户端会话的调试 | |
KR101793306B1 (ko) | 가상 애플리케이션 확장 포인트 | |
CN108427705A (zh) | 电子装置、分布式系统日志查询方法及存储介质 | |
US20130305239A1 (en) | Catalog-Based Software Component Management | |
US20070061818A1 (en) | Detection of devices during operating system setup | |
CN109656889B (zh) | 基于区块链的文件系统实现方法、装置、设备和存储介质 | |
US9881351B2 (en) | Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation | |
US9116770B2 (en) | Recipe-based application conversion | |
CN109491928A (zh) | 缓存控制方法、装置、终端及存储介质 | |
CN110188543A (zh) | 白名单库、白名单程序库更新方法及工控系统 | |
CN109656886B (zh) | 基于键值对的文件系统实现方法、装置、设备和存储介质 | |
US10726133B1 (en) | Securely loading UEFI images at runtime | |
JP2012530972A (ja) | 管理されたシステム拡張子機能 | |
CN110231941A (zh) | 适用于运行移动设备的原生应用程序的无需完全安装的应用程序级运行环境 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN107291507B (zh) | 一种虚拟机虚拟硬盘的升级方法及电子设备 | |
CN113296891B (zh) | 基于平台的多场景知识图谱处理方法及装置 | |
CN111177703A (zh) | 操作系统数据完整性的确定方法及装置 | |
CN109190367B (zh) | 利用沙箱运行应用程序安装包的方法及装置 | |
CN107357603A (zh) | 一种软件加载方法、设备及系统 | |
CN102378964B (zh) | 创建虚拟进程的进程内中介 | |
US20080040466A1 (en) | System and method for object-oriented meta-data driven instrumentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150728 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150728 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |