CN101978366A - 可部署对象分层结构内的应用程序管理 - Google Patents

可部署对象分层结构内的应用程序管理 Download PDF

Info

Publication number
CN101978366A
CN101978366A CN2009801106621A CN200980110662A CN101978366A CN 101978366 A CN101978366 A CN 101978366A CN 2009801106621 A CN2009801106621 A CN 2009801106621A CN 200980110662 A CN200980110662 A CN 200980110662A CN 101978366 A CN101978366 A CN 101978366A
Authority
CN
China
Prior art keywords
application program
equipment
application
user
assembly
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
CN2009801106621A
Other languages
English (en)
Other versions
CN101978366B (zh
Inventor
O·阿米加
J·麦金太尔
D·舒克拉
J·张
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 CN101978366A publication Critical patent/CN101978366A/zh
Application granted granted Critical
Publication of CN101978366B publication Critical patent/CN101978366B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • 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/468Specific access rights for resources, e.g. using capability register
    • 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

Landscapes

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

Abstract

对计算环境中的应用程序的管理通常涉及大量计算操作,如获取应用程序、在各个位置部署数据对象、以及相对于所部署的设备来配置应用程序。常规计算环境可能在整个典型的应用程序生存周期中提供不足够的支持,尤其是对跨许多设备分布的计算环境而言。相反,计算环境可以被表示在可被分发给各设备的可部署对象分层结构中。因此可以提供应用程序管理服务以将应用程序的表示安装在对象分层结构中,以及支持应用程序生存周期的许多其他方面,如应用程序发现、共享、更新、以及移除。这些设备因此可以用一致的方式向用户提供计算环境的应用程序,同时减少了构成计算网格的设备之间的手动管理。

Description

可部署对象分层结构内的应用程序管理
背景
许多计算环境都包括由一组对象系统管理的大型且不同的对象集合。例如,计算环境可包括由文件系统管理的文件集合、由数据库系统管理的一个或多个数据库、表示应用程序的并由汇编高速缓存管理的可执行二进制代码集合、由操作系统的用户简档组件管理的用户简档集合、以及由数据高速缓存组件管理的各种数据高速缓存,如由操作系统的复制缓冲区管理的复制项的集合、由操作系统的撤消组件管理的撤消动作的集合、以及由操作系统的项使用跟踪组件管理的“最近使用”项的集合。此外,可以在由一个或多个用户操作的多个设备之间并且根据一个或多个操作(例如,合并两个对象集合的对象同步操作和调整目标对象集合以与源对象集合进行匹配的对象镜像操作)来交换这些对象。以此方式,这些对象通过一组对象系统松散地进行组织并聚集以表示计算环境。
常规计算环境内的应用程序管理通常涉及相对大的用户参与。例如,用户可独立地发现所需应用程序,并可以取得安装程序包,如安装可执行码或包含安装文件的CD-ROM。用户随后可以利用便于将应用程序部署在计算环境中(如通过将文件复制到特定位置并创建注册信息)的应用程序安装程序。然而,在应用程序部署之后,计算环境通常向该应用程序提供很少的进行中支持,有时只包括卸载程序。诸如执行、共享、同步、以及更新等常见维护任务通常移交给应用程序。此外,应用程序在一个计算机系统或设备上的部署很少允许或便于该应用程序在其他计算机系统或设备上的部署,即使由同一用户操作并且在两个或多个这样的平台上用于共同目的。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。
将对象在计算系统内组织成不相交的松散聚集的对象系统集合可以造成若干问题。例如,可能难以通过各种设备向用户呈现一致的计算环境,尤其是在这些设备能力不同的情况下(例如,高性能个人工作站、基于浏览器的公共终端、以及低性能蜂窝电话设备)。作为另一示例,将诸如同步和备份等服务应用于对象可涉及与每一对象系统进行接口以影响由此管理的对象,并且这样的接口可以随对象系统而变化。作为第三示例,使不同的一组对象相关(如,构成一应用程序的所有对象)可能因管理对象系统的不完全协作而是困难的。
用于表示构成计算环境的对象的一种替换技术涉及将这些对象组织成可由计算环境主机来主存的对象分层结构。如果对象是由对象系统用统一方式来表示的并以一致的方式来管理的,则可以设计一组服务来应用于计算环境的所有对象。此外,对象分层结构可被传递到各个设备以表示同一计算环境(包括相同的用户简档、应用程序、数据文件等),并且每一设备可以用一致的方式来呈现该计算环境,但基于该设备的能力(例如,用于从附连到工作站的键盘设备接收数据输入的硬键盘接口,以及用于从蜂窝电话设备接收数据输入的触摸屏软键盘接口)进行了定制。
在这一性质的对象分层结构内,可以执行应用程序管理任务。计算环境主机可以便于获取应用程序、将该应用程序与一设备相关联、以及将该应用程序部署在该设备上。将应用程序表示成可部署对象分层结构中的一组对象可便于常见的应用程序管理任务。作为第一示例,并且在许多自动部署的场景中,应用程序可以容易地部署在该对象分层结构中表示的多个计算机系统和设备上。例如,该应用程序的第一版本可以部署到工作站;该应用程序的第二版本可以部署成用于公共终端的web应用程序或启用web的应用程序;并且该应用程序的第三版本可以部署成供在低功率蜂窝电话设备上使用的减少功能的应用程序。作为第二示例,计算环境主机可以便于通过相应地调整对象分层结构并通过将所主存和部署的该对象分层结构的各版本进行同步来将这些调整部署到各设备以更新应用程序(例如,使用更新版本对应用程序资源进行修补或部署供与该应用程序一起使用的新内容)。
此外,将应用程序表示成可部署对象分层结构中的一组对象还可启用新特征。作为第一示例,通过将对象分层结构的特定部分部署到第二用户的设备、计算机系统、或计算环境主机,计算环境可使用户能够与第二用户共享应用程序或应用程序会话的一方面。例如,第一用户可以选择一组歌曲对象来在第一计算机上通过媒体播放器应用程序进行播放,并可选择与第二用户共享该媒体播放器应用程序会话(例如,通过将媒体播放器应用程序的音频流传输到第二用户)。作为第二示例,应用程序的配置可以跨各设备和计算机系统来作为对象分层结构的一部分进行同步。设备无关应用程序属性(例如,添加到拼写检查字典的自定义单词)可以自动地传播到所有这样的设备和计算机系统,而计算环境主机可为相应设备指定设备专用应用程序属性。以此方式,计算环境主机的应用程序管理服务可以支持应用程序在由一个或多个用户所操作的各计算机系统和设备上的发现、部署、使用和移除。
为实现上述和相关目的,以下描述和附图阐述了各个说明性方面和实现。这些方面和实现仅指示可使用一个或多个方面的各种方式中的一些。结合附图阅读以下详细描述,则本发明的其他方面、优点、以及新颖特征将变得显而易见。
附图描述
图1是计算环境内的典型应用程序生存周期的图示。
图2是计算环境主机与各计算环境呈现设备的示例性交互的图示。
图3是示出对将应用程序部署在表示设备上的计算环境的对象分层结构中进行管理的示例性方法的流程图。
图4是示出用于对将由应用程序存储管理的至少一个应用程序部署到表示至少一个设备上的计算环境的对象分层结构进行管理的示例性系统的组件框图。
图5是示出用于对将应用程序部署到表示至少一个设备上的计算环境的对象分层结构进行管理的另一示例性系统的组件框图。
图6是示出用于对将应用程序部署到表示至少一个设备上的计算环境的对象分层结构进行管理的又一示例性系统的组件框图。
图7是示出用于对将应用程序部署到表示至少一个设备上的计算环境的对象分层结构进行管理的示例性系统的一部分的组件框图。
图8是示出用于对将应用程序部署到表示至少一个设备上的计算环境的对象分层结构进行管理的示例性系统的另一部分的组件框图。
图9是示出用于对将应用程序部署到表示至少一个设备上的计算环境的对象分层结构进行管理的示例性系统的又一部分的组件框图。
图10是示出用于对将应用程序部署到表示至少一个设备上的计算环境的对象分层结构进行管理的又一示例性系统的组件框图。
图11示出了其中可实现此处所阐述的原理中的一个或多个的示例性计算环境。
详细描述
现在参考附图来描述所要求保护的主题,所有附图中使用相同的附图标记来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对所要求保护的主题的全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其他情况下,以框图形式示出了公知的结构和设备以便于描述所要求保护的主题。
常规计算环境通常包括大量各种各样的一批应用程序,范围从具有简单目的的小工具(如时钟和计算器)到复杂且相互关联的大型应用程序套件(如软件集成开发环境和生产力套件)。应用程序还可包括媒体,如多媒体播放器和由此呈现的媒体对象(例如,要由阅读器应用程序呈现的一本或多本电子书)、游戏、屏幕保护程序、用于管理各种类型的硬件的设备驱动程序,等等。应用程序可以部署在本地(例如,通过部署到用户的设备的可执行二进制码和资源)、远程(例如,在远程服务器上运行并通过web浏览器与用户进行通信的web应用程序)、或其组合(例如,利用远程资源的、安装在本地的应用程序,如被配置成对网络可访问电子邮件档案进行访问的电子邮件客户端)。通常提供操作系统以主存和维护应用程序并通过应用程序启动程序和与同它相关的数据对象的关联来向用户提供对该应用程序的访问。
图1示出计算环境中的应用程序所展示的典型应用程序生存周期10。在典型计算环境中表现的应用程序生存周期10可涉及大量操作,如复制数据对象、写入和读出配置信息、以及通过计算机网络向服务器请求并从中接收对象。应用程序生存周期10通常以取得12开始,其中用户选择要使其可在计算环境中访问的应用程序。取得12通常包括发现14,其中用户变得知道该应用程序,如通过用户驱动的对应用程序库的浏览或广告建议。取得12通常还包括获取16,其中用户获得该应用程序的资源并安排用于使用该应用程序的许可。对于安装在本地的应用程序,获取16可以涉及从应用程序服务器下载安装程序应用程序;而web可访问应用程序可涉及与该web应用程序的提供者签约,如通过创建用于web邮件服务的用户帐户。获取16还可涉及交易(如支付金钱)和许可(如,向用户呈现最终用户许可协议(EULA)并请求接受其条款和条件)。取得12的部分或全部有时可以省略,如通过使预先安装的应用程序可作为新计算环境的默认组件对用户可用。
在取得12之后或与其同时,应用程序生存周期10通常涉及安装18,其中本地计算环境被配置成提供对该程序的访问。安装18有时涉及映射20,其中特定设备被配置成使用该应用程序。映射20可涉及用户指定用于访问该软件的特定设备(例如,选择要在其上部署应用程序的蜂窝电话设备)和/或向设备授权使用该软件(例如,通过产品激活)。安装18还涉及部署22,其中将构成该应用程序的资源部署在一个或多个映射到的设备上(例如,创建应用程序文件夹、将应用程序二进制码置于这些文件夹中、注册代码库、以及将配置信息写入系统注册表和配置文件)。部署22还可涉及配置计算环境以提供对该应用程序的访问,如通过将该应用程序向应用程序启动程序注册、将该应用程序与同其相关的数据对象进行关联(例如,将一媒体应用程序标识为特定类型的媒体对象的媒体播放器)、和/或配置计算环境以在系统初始化时或响应于特定事件来自发地启动该应用程序。部署22还可涉及显示文档编制以帮助用户使用该应用程序。在一些场景中,安装18可涉及配置远程资源,如将设备向网络服务器注册或配置网络服务器来为该设备主存该应用程序。在其他场景中,安装18可被减少或省略;例如,部署在本地的应用程序可包括可在不配置或安装的情况下运行的可执行二进制码,并且web应用程序可能不涉及在本地设备上的任何类型的安装。
在取得12和安装18之后,应用程序可做好准备来由一个或多个用户进行使用24。使用24通常涉及执行26,它例如可通过启动该应用程序或激活与该应用程序相关联的数据对象来开始。执行26还可包括获取附加内容,如可由媒体播放器呈现的新媒体对象。使用24还涉及更新28,它包括对该应用程序的进行中改变,如修补以提供该应用程序的新版本或对由此利用的资源进行维护(例如,接收并合并用于检测并解决新形式的恶意软件的信息的抗病毒包)。这样的更新28有时可以由应用程序服务器对远程资源执行;例如,web邮件提供者可以在不涉及用户或用户设备并且甚至在不知道用户的情况下频繁更新其后端软件。
应用程序生存周期10还可涉及卸载30,其中从一个或多个设备移除该应用程序。卸载30可包括解除映射32,其中解除一个或多个设备使用该应用程序的授权。例如,web应用程序只可在某些设备上访问,并且可以通过将设备从存储在应用程序服务器上的授权设备列表中移除来解除映射。卸载30还可包括退役34,其中从一个或多个设备移除应用程序的资源。退役34可由用户来请求,或可以自发地调用(例如,可以只在有限时间段内将应用程序许可给用户,并且计算环境可被配置成在该许可证期限期满之后自动地使该应用程序退役)。
虽然对各种各样的应用程序广泛地使用了应用程序生存周期,但许多常规计算环境被配置使得应用程序生存周期展示出若干缺点。作为一个示例,常规计算环境可能需要用户大量参与进行该应用程序生存周期。在取得12期间,计算环境可能对应用程序的发现或获取提供很少支持或不支持,并且用户可能承担了通过研究(例如,web搜索)寻找有用的应用程序并下载应用程序安装包的任务。取得12还可涉及用户接受许可证,但这有时可能被废除(例如,用户可以预先授权在特定样板最终用户许可协议下所提供的任何应用程序)。现代计算环境通常对映射20提供很少支持或不支持,并且用户可能必须安排应用程序在一批设备上的单独部署。许多常规计算环境提供对部署22的一些支持,如自动化安装程序工具。然而,这样的安装程序工具仍然可能向用户委托可以其他方式避免的相当大量的交互,如在web应用程序中创建用户帐户时输入用户信息(名字、电子邮件地址等)、提供信用卡信息以购买许可证、以及输入诸如安装CD等物理介质包括的序列密钥。常规计算环境也对更新28提供不充分的支持,它通常被委托给应用程序或甚至用户启动的发现、下载、以及应用软件修补。最后,解除映射34和退役34可由安装程序应用程序来促进,但可被限于按设备管理;例如,用户可能必须在每一设备上启动卸载并且所有这些设备之间的集中式管理的部署可能是困难的。
在现代计算环境使用(其通常扩展至一批设备)的上下文中,这些缺点可能恶化并且可能产生其他缺点。计算环境的用户可协作地管理并利用工作站、便携式计算机系统,如笔记本或平板计算机、游戏控制台、蜂窝电话、以及媒体播放器。此外,用户可能希望访问公共工作站上的计算环境的全部或部分,或向其他用户授予对计算环境的部分或全部的访问权(例如,以允许顾客利用计算环境或访问其中管理的数据对象)。尽管用户可在计算环境的上下文中操作的设备持续增长,但常规操作系统可能对计算环境在这些设备之间的一致呈现提供很少支持,并且由此对促进数据对象的分发、访问、以及同步提供很少支持。这一有限支持对应用程序尤其明显。一般而言,用户通常在每一设备上独立于任何其他设备的配置来手动地执行应用程序生存周期10的许多方面。例如,用户可以根据用户的偏好来配置特定应用程序,但在每一设备上以类似方式配置应用程序通常涉及每一应用程序部署的手动配置。另外,以协作方式使用多个设备可以造成新问题;例如,用户可能在第一设备上具有关于一个人的一组联系人信息,该联系人信息与同一个人在第二设备上的一组联系人信息不一致,并且可能不能够查明哪一组联系人信息是更新的。
最近,作出了尝试来开发用于以一致的、可部署的且可扩展的方式来提供对一批设备之中的计算环境的访问的技术。这些技术还设法在进行协作的设备之间提供共同的应用程序集合,以及用于管理应用程序在这些设备之间的取得、安装、使用、和卸载的集中式服务。该应用程序集合在各设备之间不一定相同;例如,工作站可包含可能不能在蜂窝电话设备上良好地运行的高性能应用程序(例如,照片编辑软件和图形密集游戏),而蜂窝电话设备可包括与非便携工作站不相关的便携性应用程序(例如,基于GPS的地图软件)。然而,许多应用程序和与其相关的数据对象可以在这些设备之间共享(例如,被配置成管理用户日历对象的日历应用程序),并且该计算环境可以适应于能够在这些设备之间分发和同步该应用程序和数据对象。该应用程序还可以针对每一这样的设备来进行适应;例如,该应用程序的第一版本或配置可以面向诸如工作站等高性能设备,而该应用程序的第二版本或配置可以面向具有有限屏幕大小和输入能力的低性能设备。然而,同一应用程序的应用程序配置的其他部分(例如,用户偏好,如视觉样式)可以在设备之间共享,并可以促进用户对该计算环境在各设备之间的体验的一致性。
因此,可以明白,可以用允许在一组设备之间部署计算环境(包括应用程序集合)的方式来有利地表示计算机系统。在一种这样的技术中,计算环境-包括应用程序集合、应用程序资源、以及由此使用的数据对象-是用以下方式表示的:它可被传递到各设备以供根据该设备的能力来呈现。该表示包括根据对象分层结构来组织并根据共同语法来表示的一组对象。这些对象包括计算机系统的数据对象,如用户创建的用户文件和数据。这些对象还包括构成操作系统组件的可执行二进制码和类库,如外壳以及其中提供的应用程序。该对象还包括指定计算环境的用户界面的信息,包括外壳偏好(例如,视觉主题、应用程序启动菜单、以及双击阈值)、用户帐户及特权、安全信息(例如,口令、安全权标、以及证书)、应用程序二进制码和配置信息、用户数据和元数据(例如,文件共享信息)、以及数据高速缓存(例如,最近使用的文件列表和浏览器历史)。尽管这些对象具有各种性质和用途,这些对象在对象分层结构中是以共同的方式来表示的,并且可在该分层结构中任意组织。因此,与包括一组隔离的数据存储(每一隔离存储包含一种类型的对象,例如,文件系统包含文件、注册表包含配置信息、以及数据高速缓存包含浏览器历史)的常规计算机环境相反,该方法中的对象分层结构以共同的方式将所有这些对象组织在该对象分层结构中。
以此方式表示的计算环境可被传递到任何设备并以适合于该设备的能力的方式来呈现。例如,工作站可以将该信息呈现为稳健且通用的计算环境,而公共工作站可以通过web浏览器呈现不同的计算环境体验(例如,作为可在用户的会话结束时丢弃的虚拟机),并且蜂窝电话可以提供具有对蜂窝电话相关信息(例如,联系人、日历、以及导航数据)的较快访问的较瘦界面。此外,对该信息集的更新(例如,偏好改变和对其中包含的数据文件的更新)可被应用于该信息集的规范源,并且因此被传播到该信息集被传递到的所有其他设备。同样,共享该计算环境的设备可以通过该共享信息集来集成,使得一个设备可以与在该信息集中标识的其他设备进行交互;例如,存储在第一设备上的数据可由第二设备访问,并且第一设备可由第二设备通过通信管道来控制。该信息集因此可以标识共享该计算环境的设备的集合连同每一设备的角色、能力、以及资源,以跨可能大量各种设备来提供综合计算体验。
图2示出一个这样的场景,其中计算环境可由计算环境主机42主存,计算环境主机42可以存储并管理对象分层结构44。计算环境主机42还可以用不同的方式代表各种设备(如蜂窝电话设备46、个人笔记本计算机50、以及公共工作站54)并且还代表具有不同访问特权的不同类型的用户来呈现对象分层结构44。该计算环境的呈现因此反映了跨展示相同的应用程序、用户简档、外壳配置、用户数据对象等的所有设备的一致计算环境。因此,用户可以通过高性能笔记本计算机访问该计算环境的全特征版本52、在低功率蜂窝电话设备46上访问该计算环境的精简版本48、以及通过公共终端54的web浏览器46访问该计算环境的可兼容浏览器并且面向隐私的版本58。就每一这样的设备的能力支持该计算环境的呈现而言,由于根据每一设备的能力调整了对象分层结构44的呈现,所以可以呈现一致的用户界面和数据集。对计算环境的更新可以传播回计算环境主机42,并且可以与其他设备自动进行同步。各设备还可以通过与其他设备共享存储在本地的数据并且通过控制其他设备或由其他设备控制来进行协作。因此,可将该计算环境设计并呈现为云计算体系结构,包括表达为跨形成同一计算环境的各协作门户(具有设备专用属性)的网格的所有设备(“客户机”)的一致呈现的设备无关表示(“云”)。具体而言,相对于该计算环境的应用程序,对象分层结构44可包括应用程序集合、应用程序资源、以及由此创建的数据对象的表示。此外,计算环境主机42可以将服务应用于构成对象分层结构44的各个对象,并且将对象存储在该对象分层结构中的共同格式可以便于这些服务的一致可用性和应用,而不论向其应用这些服务的对象的性质如何。
除这些目的之外,对象分层结构方案可被设计成以特定方式来组织该对象分层结构的各个对象。例如,可以设计并构造各个对象以表示数据对象(如,文件)、用户和用户帐户、设备和该计算环境中发生的事件、以及来历、所有权、以及它们之间的相互关系。相对于对象的其他组织而言,组织对象的这一方式可以产生特定优点和/或减少缺点。因此,根据其来组织对象的该对象分层结构方案是鉴于这些对象和计算环境的使用来设计的。例如,可以通过将相应对象与具有各种许可集合的一个或多个用户帐户(例如,第一用户帐户具有对一对象的读/写许可,第二用户帐户具有对该对象的只读许可,并且第三用户帐户没有对该对象的许可)进行关联来对安全许可进行建模。计算环境可被配置成根据对象分层结构方案的结构和语义来利用该对象分层结构的对象,从而允许以适用于每一设备的配置和能力但在其他方面在所有这样的设备之间一致的方式来跨多个设备呈现可部署计算环境。
在这一性质的对象分层结构内,一组应用程序可以用与每一应用程序的应用程序生存周期相一致的方式来管理。例如,计算环境主机42可以便于获取应用程序、将该应用程序与一个或多个设备相关联、以及将该应用程序部署在每一设备上。将应用程序表示成对象分层结构44中的一组对象可便于常见的应用程序管理任务。作为第一示例,并且在许多自动部署的场景中,应用程序可以容易地部署在该对象分层结构44中表示的多个计算机系统和设备上。例如,该应用程序的第一版本可以部署到个人笔记本计算机50;该应用程序的第二版本可以部署成用于公共工作站54的web应用程序或启用web的应用程序;并且该应用程序的第三版本可以部署成供在低功率蜂窝电话设备46上使用的减少功能的应用程序。作为第二示例,计算环境主机42可以便于通过相应地调整对象分层结构44并通过将所主存和部署的该对象分层结构44的各版本进行同步来将这些调整部署到各设备以更新应用程序(例如,使用更新版本对应用程序资源进行修补或部署供与该应用程序一起使用的新内容)。
将应用程序集合表示成可部署对象分层结构44中的一组对象还可启用新特征。作为第一示例,通过将对象分层结构44的特定部分部署到第二用户的设备、计算机系统、或计算环境主机42,该计算环境可使用户能够与第二用户共享应用程序或应用程序会话的一方面。例如,第一用户可以选择一组歌曲对象来在第一计算机上通过媒体播放器应用程序进行播放,并可选择与第二用户共享该媒体播放器应用程序会话(例如,通过将媒体播放器应用程序的音频流传输到第二用户)。作为第二示例,应用程序的配置可以跨各设备和计算机系统来作为对象分层结构的一部分进行同步。设备无关应用程序属性(例如,添加到拼写检查字典的自定义单词)可以自动地传播到所有这样的设备和计算机系统,而计算环境主机42可为相应设备指定设备专用应用程序属性。以此方式,计算环境主机42的应用程序管理服务可以支持应用程序在由一个或多个用户所操作的各计算机系统和设备上的发现、部署、使用和移除。这些任务的许多部分可以通过调整对象分层结构44并将其部署同步到其中表示的各个设备来执行,作为自动化过程,这可以提供计算环境和总体用户体验的一致性的显著改进。
图3示出这些技术的一个实施例,作为对将存储在应用程序存储中的应用程序部署到表示一设备上的计算环境的对象分层结构进行管理的示例性方法60。参考图2,这一示例性方法60可被用来通过将应用程序表示在(至少部分地)分发给一个或多个设备的可部署对象分层结构44中来在这些设备上安装并管理该应用程序,这些设备诸如蜂窝电话设备40、笔记本计算机50、以及公共工作站54。示例性方法60在62开始,并且涉及接收将应用程序部署到设备的请求64。该请求可以由希望安装该应用程序的计算环境用户通过运行在该计算环境在一设备上的表示中的程序生成,通过被配置成生成具有至少一个预先安装的应用程序的新计算环境的程序生成,等等。示例性方法60还涉及从应用程序存储获取该应用程序66。如果该应用程序是web应用程序,则获取66可以仅涉及(例如)验证该应用程序在所提供的URL处的可用性。示例性方法60还涉及将对象分层结构中表示的设备映射到应用程序68。映射68可涉及将设备在对象分层结构内的表示与应用程序在对象分层结构内的表示进行关联,在对象分层结构中相对于该设备为该应用程序创建一组配置信息,等等。
图3的示例性方法还涉及在对象分层结构中部署应用程序70。部署70可涉及在对象分层结构内创建应用程序的表示,在对象分层结构的应用程序表示中表示一个或多个可执行二进制码,相对于该设备进一步配置该应用程序,等等。对于web应用程序,部署70可包括例如将到一网站的链接插入与该设备相关联的应用程序启动程序表示中,和/或在该设备上创建一个或多个cookie以便于在会话之间保存该web应用程序。示例性方法60还涉及将对象分层结构的至少一部分发送到设备72。例如,诸如笔记本计算机50等高性能计算机系统可以接收对象分层结构的完全版本,而相对低功率的蜂窝电话设备46可以只接收对象分层结构中与蜂窝电话设备46相关的一部分,包括与蜂窝电话设备16相兼容的新应用程序的部署。在配置了对象分层结构以将应用程序与设备进行关联并将该对象分层结构部署到该设备之后,示例性方法60因此实现了对相对于该设备的所部署的应用程序的管理,并且因此在74结束。
图4表示这些技术的第二实施例,被实现成用于对将存储在应用程序存储84中的应用程序部署到表示至少一个设备上的计算环境的对象分层结构82进行管理的示例性系统86。这一场景80涉及三个可部署应用程序:计算器应用程序、日历应用程序、以及媒体播放器应用程序。可以使这些应用程序在三个设备上表示的计算环境内可用:蜂窝电话设备、笔记本计算机设备、以及公共工作站。在这一场景80中,应用程序由表示至少一个应用程序的应用程序存储86来主存。这些应用程序可以部署在计算环境内和设备上,通过重新配置对象分层结构82可以将该计算环境呈现在该设备上。
在这一场景80中,应用程序管理系统86可用于实现一个或多个应用程序在对象分层结构内的部署。示例性系统86包括应用程序获取组件88,该组件被配置成接收安装应用程序的请求并从应用程序存储84获取该应用程序。应用程序获取组件88还可确定该请求是否满足任何先决条件(例如,该应用程序是否可以在所请求的设备上运行;鉴于用户的各种安全特权和许可问题,用户是否被准许安装并运行该应用程序;等等)。图4的示例性系统86还包括应用程序映射组件90,该组件被配置成将对象分层结构82中表示的至少一个设备映射到至少一个已安装应用程序。例如,如果计算器应用程序已经包括在对象分层结构82中,则应用程序映射组件80可以在对象分层结构82内创建该计算器应用程序与在其上提供该应用程序的一个或多个设备之间的关联。如果计算器应用程序尚未包括在对象分层结构82中,则示例性系统86还可在执行映射之前在对象分层结构82中创建该计算器应用程序的表示,例如通过将可执行二进制码的表示或到web应用程序网站的链接复制到对象分层结构82。示例性系统86还包括应用程序部署组件92,该组件被配置成将至少一个已安装应用程序部署在对象分层结构82中。部署可涉及例如,在对象分层结构内为新映射的设备创建设备专用配置信息;将新映射的设备与设备无关配置信息进行关联;将该应用程序插入应用程序启动程序以在一个或多个设备上呈现;等等。在将设备在对象分层结构82中的表示与该设备所呈现的计算环境中表示的应用程序集的表示进行关联之后,示例性系统86从而实现对表示该计算环境的对象分层结构中的部署应用程序的管理。
本文所描述的技术可用许多方面的变型来实现,并且相对于这些和其他技术的其他变型,一些变型可呈现出附加优点和/或减少缺点。这些变型可以包括在各实施例中,如图3的示例性方法60和图4的示例性系统86,并可以与其他这样的变型兼容以呈现若干这样的附加优点和/或减少缺点。因此,本领域普通技术人员可根据本文讨论的技术设计出许多这样的实施例。
可在这些技术的各实现之间变化的第一方面涉及通过其提供应用程序管理服务的应用程序管理服务器的体系结构。如图4所示,应用程序管理系统84可以与具有各种应用程序的应用程序存储82交互,可以请求并接收其中存储的应用程序,并可以将该应用程序部署到对象分层结构82。在这一场景80中,应用程序管理系统84被实现成一个或多个应用程序存储与计算环境主机86之间的独立接口。然而,其他体系结构和系统因素也可适用于实现这些技术。
图5示出第二示例性体系结构100,其中应用程序管理服务86还用作应用程序存储84,并且因此包含可部署到对象分层结构82的各种应用程序,如计算器应用程序102和日历应用程序104。这一实施例可呈现应用程序获取服务与可用于部署的应用程序之间较紧密集成的优点。
图6示出第三示例性体系结构110,其中计算环境主机42包括应用程序管理服务86。因此,计算环境主机42可以存储对象分层结构82和应用程序管理服务86的各个服务,如应用程序获取组件88、应用程序映射组件90、以及应用程序部署组件92。在该第三示例性体系结构110中,应用程序112可以从设备直接接收,如通过用户在该设备上表示的计算环境内发起的请求。计算环境主机42可以接收这一请求并通过应用程序管理服务86的各组件来处理它,这将更新存储在计算环境主机42中的对象分层结构82。经更新的对象分层结构82随后可以与该设备进行同步以完成应用程序到该设备的部署。在实现本文讨论的技术时,本领域普通技术人员可以设计出这些和其他系统因素。
可在这些技术的各实现之间变化的第二方面涉及应用程序管理的基本组件(包括获取、映射以及部署)中的变型。作为这一方面的第一变型,获取应用程序通常需要接收部署该应用程序的请求以及获取该应用程序来相对于特定设备部署到对象分层结构。然而,获取还可包括通过该设备向用户呈现应用程序许可证,如显示该应用程序的最终用户许可协议的条款和条件。获取还可包括请求该用户接受应用程序许可证来作为部署的先决条件,以及在接收到对应用程序许可证的接受后,获取可包括记录对该应用程序许可证的接受,如通过通知应用程序许可证服务器。这一接受可以作为来自用户的确认或作为自动接受来接收,例如在用户预先授权接受特定应用程序许可证下的任何应用程序的情况下(例如,在GNU公共许可证的特定版本下提供的任何应用程序)。获取还可包括对与至少一个设备的用户的获取事务进行中介,如对该应用程序的许可证的电子商务购买。获取还可包括生成表示应用程序的用户的用户帐户,这对获取对web应用程序的访问而言尤其有利,如整个地主存在web邮件服务器上并通过计算环境中的浏览器来提供的web邮件应用程序。
作为这一第二方面的第二变型,应用程序的映射通常涉及将该应用程序与对象分层结构中表示的一个或多个设备进行关联。然而,该映射还可包括检查设备专用条件,如该应用程序是否能以与该设备相兼容的版本可用以及该应用程序或其变型(如,较早版本)是否已经在该设备上可用。映射还可涉及获取附加资源以促进应用程序到新设备的映射,如可以与该设备兼容的应用程序二进制码的新版本或该应用程序所依赖的可被部署到该设备的附加组件(例如,可以从另一服务器检索的支持运行时)。映射还可涉及通过应用程序激活服务器来激活应用程序,这可以授权该应用程序在特定设备上执行,如通过通过可由该设备上的应用程序在启动时验证的认证证书。
作为这一第二方面的第三变型,应用程序的部署涉及将该应用程序部署在对象分层结构内,如通过将该应用程序的各组件的表示插入该对象分层结构中。可以用多种方式来构造更通常组织的应用程序。小实用程序可包括可以全部或部分地编译的单个可执行二进制码,或包括可以作为在每一设备本地编译的源代码来包括的单个可执行二进制码。这一可执行二进制码可以表示成例如源代码模块;解析树;表示部分编译的二进制码、全部编译的二进制码的中间语言指令,等等。较大实用程序可包括一组资源,如一个或多个可执行二进制码;可在全局汇编高速缓存中注册的共享汇编;诸如图标、声音对象、图片、文档、以及视频等应用程序资源;帮助文件;存储在诸如关系数据库等一个或多个结构化数据存储中的数据资源;辅助应用程序资源,如用于文字处理应用程序中的拼写检查工具的语言字典文件;用作其中指定的资源的索引的应用程序清单;等等。此外,应用程序可包括可执行二进制码的若干版本,其中的每一个版本都可针对特定平台;例如,应用程序可包括供在诸如笔记本计算机50等较强大设备上使用的全特征版本和供在低功率蜂窝电话设备46上使用的减少功能版本。应用程序还可包括若干组配置信息,每一组信息都针对特定平台。应用程序可被呈现为独立安装程序包,或可由基于设备的安装程序部署的可安装档案,或可在任何位置利用的一组一个或多个资源,等等。
对象分层结构还可包括较不常规结构的应用程序。例如,游戏应用程序可包括大量图形资源,如用于构造复杂三维环境和其中表示的对象的位图纹理和网格。启用web的应用程序可包括一组网页,它们可包含内联代码的各部分,或可以引用外部代码资源,如以源代码或已编译形式包括的Java对象。这样的应用程序还可以简单地被表示成对其中可获得这样的资源的网站的引用。还可以通过诸如可扩展应用程序标记语言(XAML)等标记语言来构造启用web的应用程序,它可在设备上作为应用程序或web浏览器中主存的小应用程序来编译或解释性地执行。最后,web应用程序可以简单地表示成引用在其上部署该应用程序的部分或全部的一个或多个网站的一个或多个URL,它可以通过web浏览器在该设备上访问;作为替换或补充,可包括一些资源以用于设备部署,如可存储在本地以持久保持web应用程序在会话之间的状态的cookie。
因为构成应用程序的资源可以是不同的,所以应用程序在对象分层结构中的部署可以类似地稳健。例如,文本资源可以作为纯文本来包括,或可以使用通用或专用压缩实用程序来压缩。二进制资源可以被呈现成串行化二进制码,可以用二进制压缩实用程序来压缩,可被进行代码转换(例如,经由Uuencode或MIME),等等。可以根据诸如XML等分层格式化来构造分层组织的对象,或可以将其串行化成单个分层对象。大型对象可以作为原子单元来包括、可被压缩、被进行代码转换(例如,电影文件可被以较低比特率重新编码以节省空间)、被分割成可随时间或在自组织的基础上被单独地发送到设备的各个部分,等等。资源可被包括在对象分层结构中,或可以作为对主存可按需访问的资源的服务器的引用来插入。多个对象的大型集合可以作为档案来包括(例如,包含数千对象的压缩文件)。基于web的应用程序可被表示成其中可获得该应用程序的各组件的一个或多个URL;作为替换或补充,可以捕捉该web应用程序的快照并将其包括在对象分层结构中以提供该应用程序的高速缓存版本或启用对该应用程序的离线访问。在实现本文讨论的技术时,本领域普通技术人员可能能够设计出用于在对象分层结构中表示应用程序的许多技术。
除在对象分层结构中表示应用程序之外,部署还可包括相对于设备和/或相对于用户来配置该应用程序。例如,可为设备制定新配置信息集合,或可以指定配置信息集合库中的适当的配置信息集合以供该设备使用。图7示出一个这样的场景120,其中对象分层结构82包括包含两个可执行二进制码(用于本地本机执行的一个已编译可执行码,以及用于通过标准web浏览器进行较慢但更标准化的访问的一个客户机侧浏览器脚本)和两个配置集合(用于高性能设备的全功能配置集合和用于低功率移动设备的便携式配置集合)的日历应用程序的表示。对象分层结构82还包括包含供与任何设备一起使用的设备无关设置的配置集合,如用户所选择的首选色彩方案。对象分层结构82还包含可在其上呈现该计算环境的两个设备的表示:低功率蜂窝电话设备46和高性能笔记本计算机50。
在对象分层结构82内为这些设备部署应用程序时,应用程序部署组件92可以针对在每一设备上的特定使用来配置该应用程序。例如,可以通过将日历应用程序与可以在蜂窝电话设备46的web浏览器应用程序内运行的客户机侧浏览器脚本可执行二进制码进行关联并与用于低功率设备的便携式配置集合进行关联来为蜂窝电话设备46部署该应用程序。类似地,可以通过将日历应用程序与已编译可执行二进制码进行关联并与可提供笔记本计算机50能够呈现的计算上密集的特征的全功能配置集合进行关联来为笔记本计算机50部署该应用程序。然而,两设备可以合并设备无关配置集合以呈现一致的设备无关特征集合,从而促进计算网格的所有这些设备之间的一致计算环境。在实现本文讨论的技术时,本领域普通技术人员能够设计出在对象分层结构82中对应用程序的获取、映射、以及部署的附加变型。
可在这些技术的实现之间变化的第三方面涉及可被添加到这些实施例的基本组件的附加特征。除基本管理服务(获取、映射、以及部署)之外,可为应用程序管理提供附加服务,这可便于用户和计算机系统管理应用程序生存周期。
作为这一第三方面的第一变型,应用程序管理服务还可担当计算环境主机,如图6的第三示例性体系结构110中示出的。在这一第一变型中,应用程序管理服务还包括被配置成存储对象分层结构的对象分层结构存储以及被配置成将对象分层结构的至少一部分发送到这些设备(例如,通过将经更新的对象分层结构与存储在每一设备上的对象分层结构进行同步)的对象分层结构传输组件。对象分层结构的包括已部署到该设备的应用程序的那一部分的传输可以实现应用程序在该设备上的安装和部署。
作为这一第三方面的第二变型,应用程序管理服务还可便于发现用户可能感兴趣的应用程序。例如,对应用程序到对象分层结构的部署进行管理的方法(如图3的示例性方法60)可包括查询方面,其中该方法被配置成在从接收到应用程序查询后选择满足该应用程序查询的应用程序并将所选应用程序呈现给该用户。类似地,用于对应用程序到对象分层结构的部署进行管理的系统(如图4的示例性系统86)可包括应用程序发现组件,该组件可被配置成从用户接收应用程序查询,选择满足该应用程序查询的应用程序,并将所选应用程序呈现给用户。用户随后可以选择获取所选应用程序中的一个或多个,应用程序管理系统可将它们部署到对象分层结构。
图8示出一个这样的场景130,其中用户132希望标识可与用户的蜂窝电话设备46兼容的音频播放器应用程序。用户132可以因此向应用程序管理服务86的应用程序发现组件134发起应用程序查询136,如对蜂窝电话设备兼容的媒体播放器应用程序的查询。应用程序发现组件134可以与应用程序存储84进行通信以标识满足应用程序查询136的应用程序,如用于蜂窝电话设备的音频播放器应用程序和用于蜂窝电话设备的视频播放器应用程序。应用程序发现组件134可以因此提供将这些应用程序呈现给用户132的响应138。用户132可以使用对所发现的要部署到蜂窝电话设备46的应用程序中的一个或多个的选择140来回复应用程序管理服务86。应用程序管理服务86随后可以获取所选应用程序(在这一场景130中,是用于蜂窝电话设备的音频播放器应用程序),并可以将该应用程序部署到对象分层结构142,它随后可被发送到蜂窝电话设备46以完成所选应用程序的部署。在实现本文讨论的技术时,本领域普通技术人员能够设计出用于便于应用程序的发现的其他方法。
作为这一第三方面的第三变型,应用程序管理服务还可便于启动应用程序。例如,实现了应用程序管理服务的示例性系统可以包括应用程序启动组件,该组件可被配置成在至少一个设备上启动应用程序。应用程序启动组件可包括例如被配置成为该设备提供平台并便于应用程序在其上的执行的运行时。例如,应用程序可以作为客户机侧浏览器脚本部署在服务中,并且应用程序管理服务可包括对象分层结构连同该浏览器脚本可在其中解释性地执行的浏览器运行时。作为另一示例,应用程序可被表示成源代码,并且应用程序启动组件可包括在设备上启动应用程序后将该源代码编译成可在该设备上执行的可执行二进制码的设备专用编译器。此外,应用程序启动组件还可存储已编译的可执行二进制码,如存储在汇编高速缓存中,并可通过读取所存储的可执行二进制码而非重新编译该应用程序来对启动该应用程序的后续请求作出响应。作为第三示例,启用web的应用程序可包括被配置成访问远程资源的客户机侧前端,并且在启动该应用程序时,应用程序启动组件可以尝试连接到该远程资源并验证其对设备的可用性。在实现本文讨论的技术时,本领域普通技术人员能够设计出便于在设备上启动应用程序的许多方式。
作为这一第三方面的第四变型,应用程序管理服务还可便于与其他用户共享应用程序的各方面。这样的应用程序共享可以在许多场景中发生。作为第一示例,该共享可涉及共享全应用程序(包括与其相关联的所有资源和数据对象)。作为第二示例,该共享可涉及与另一用户共享该应用程序的一个版本;例如,第一用户可能购买了用于使用该应用程序的许可证,并可与第二用户共享该应用程序的减少功能版本,这可展示该应用程序的一些特征以鼓励第二用户取得该应用程序的许可证。作为第三示例,该共享可涉及共享与该应用程序相关联的一个或多个数据对象,如使用该应用程序创建的媒体对象。第二用户随后可以使用同一应用程序或另一应用程序来在该第二用户的计算环境内呈现这些媒体对象。作为第四示例,该共享可涉及与另一用户共享应用程序的配置;例如,在作为团队来开发软件时,软件开发团队的若干成员可以利用集成开发环境的特定配置。作为第五示例,该共享可涉及与另一用户共享应用程序的会话;例如,两个用户可以在准备文本文档时进行协作,并且第一用户可以与第二用户共享文字处理应用程序的会话以促进这些用户之间的实况交互。这些共享场景还可以在(由单个对象分层结构表示的)计算环境的若干用户之间产生,或在(由多个对象分层结构表示的)两个或多个计算环境的用户之间产生,或可以在通过经由诸如文件传输协议(FTP)等常见通信协议来提供共享计算环境的数据对象来与以未知方式表示的计算环境的用户共享表示一计算环境的对象分层结构的一部分时产生。在实现本文讨论的技术时,本领域普通技术人员设计出这些和其他共享场景。
图9示出应用程序共享场景150,其中第一对象分层结构152的第一用户获取了媒体播放器应用程序和各艺术家创建的各种歌曲的形式的一些媒体对象,其中这些媒体对象是以高保真度方式来编码的(即,以320kbps编码速率)。第一用户还创建诸如播客等媒体播放器会话,它引用在第一对象分层结构152的媒体部分中表示的对象中的几个。第一用户可能希望与第二对象分层结构154的第二用户共享这一播客。应用程序共享因此可以涉及将媒体播放器会话从第一对象分层结构152复制到第二对象分层结构154。因为媒体播放器会话引用存储在第一对象分层结构152中的一些媒体对象,所以应用程序共享还可涉及通过将其中引用的媒体对象复制到第二对象分层结构154来共享这些媒体对象。然而,与媒体对象相关联的数字权限可以只准许以较低保真度来将媒体对象传输到其他对象分层结构;因此,计算环境可以将经代码转换成较低质量(24kbps编码速率)的媒体对象的版本发送到第二对象分层结构。另外,第二对象分层结构154可能不包括用于由媒体对象表示的类型的音频的媒体播放器应用程序。因此,第一对象分层结构152可以与第二对象分层结构154共享媒体播放器应用程序的某一版本;然而,可遵循第一用户所获取的媒体播放器应用程序的最终用户许可协议来将减少功能版本发送到第二用户。以此方式,该应用程序、由此呈现媒体对象和第一用户所生成的应用程序会话可通过将第一对象分层结构152的各部分发送到第二对象分层结构154来以自动化方式与第二用户共享,同时遵循与该应用程序会话相关的各组件的数字权限。
作为这一第三方面的第五变型,应用程序管理服务可以便于用新内容更新应用程序。通常通过修补二进制码、插入新资源、以及更改或移除现有资源等来使用新内容将应用程序更新成新版本并用新内容来更新应用程序。这样的更新可由应用程序管理服务通过获取应用程序更新并将这些更新部署到对象分层结构中表示的应用程序来执行(例如,通过更新对象分层结构中包含的应用程序资源和/或将新资源作为新对象插入该对象分层结构)。这些更新可以在获取了要由应用程序展示的新内容的用户进行请求时应用;或可由应用程序管理服务通过向应用程序存储进行查询来检索;或可由应用程序存储或管理服务器推送到应用程序管理服务;等等。经更新的对象分层结构随后可被发送到一个或多个设备,并且因此可以在减少了对用户参与的依赖的情况下实现对计算环境的应用程序的更新。在实现本文讨论的技术时,本领域普通技术人员能够设计出更新对象分层结构中表示的应用程序的许多方式。
作为这一第三方面的第六变型,应用程序管理服务还可准许从计算环境中撤消应用程序。这一撤消可涉及许多场景,如移除应用程序到设备的映射、在应用程序激活服务器的授权设备列表中解除设备的授权、将应用程序资源从设备移除(例如,通过从设备扣押对象分层结构中包含应用程序资源的那一部分)、以及通过从对象分层结构并从所有映射的设备移除所有应用程序资源来完全停止使用该应用程序。该撤消可以是在希望从一个或多个设备卸载该应用程序的用户进行请求时来进行的,或在有限持续时间的软件许可证期满时进行的,或在从计算网格移除设备时进行的,等等。作为这一变型的一示例性实施例,应用程序管理系统可包括被配置成以这些方式中的任一种从至少一个设备撤消应用程序的应用程序撤消组件。在实现本文讨论的技术时,本领域普通技术人员能够设计出从对象分层结构所表示的计算环境内撤消应用程序的许多方式。
这些方面的这些变型可包括在本文讨论的技术的许多实施例中,包括图3的示例性方法60和图4的示例性系统86。此外,若干这样的变型可以作为组合来实现,以及与这些技术的这些和其他方面的其他变型一起实现,以相对于图3-4中示出的更基本实施例来提供若干优点和/或减少缺点。一些组合还可提供复合优点;例如,应用程序发现组件可以协作式地链接到应用程序获取组件以呈现应用程序的取得的发现、购买、许可证接受、以及用户帐户创建来作为综合用户体验。
图10示出用于对应用程序在表示至少一个设备(如蜂窝电话设备46、笔记本计算机50、公共工作站54)上的计算环境的对象分层结构44中的部署进行管理的示例性系统160。图10的示例性系统160实现本文讨论的各变型中的许多变型。示例性系统160包括被配置成存储对象分层结构44的对象分层结构存储82和表示至少一个应用程序的应用程序存储84,相应应用程序包括至少一个应用程序资源。示例性系统160还包括应用程序发现组件134,该组件被配置成从用户接收应用程序查询,选择满足该应用程序查询的应用程序,并将所选应用程序呈现给用户。示例性系统160还包括应用程序获取组件88,该组件被配置成接收安装应用程序的请求,通过该设备将应用程序许可证呈现给用户,以及在从用户接收到对该应用程序许可证的接受后记录对该应用程序许可证的接受。应用程序获取组件88还被配置成生成表示应用程序的用户的用户帐户以及对与至少一个设备的用户的获取事务进行中介。应用程序发现组件134与应用程序获取组件88一起便于典型的应用程序生存周期中的应用程序取得。
图10的示例性系统160还包括应用程序映射组件90,该组件被配置成将对象分层结构44中表示的至少一个设备映射到至少一个已安装应用程序。示例性系统160还包括应用程序部署组件92,该组件被配置成通过相对于设备和该设备的用户中的至少一个来配置应用程序以将至少一个已安装应用程序部署在对象分层结构44中。应用程序映射组件90和应用程序部署组件92一起便于典型的应用程序生存周期中、在对象分层结构内的应用程序安装。
图10的示例性系统160还包括应用程序启动组件162,该组件被配置成在至少一个设备上启动应用程序。示例性系统160还包括应用程序共享组件164,该组件被配置成接收与用户共享应用程序的请求,以及在接收到共享该应用程序的请求后与该用户共享对象分层结构中包括以下至少一个的一部分:应用程序、应用程序会话、应用程序配置、以及该应用程序生成的至少一个数据对象。示例性系统160还包括应用程序更新组件166,该组件被配置成更新对象分层结构44中的至少一个应用程序资源。应用程序启动组件162、应用程序共享组件164、以及应用程序更新组件166一起便于典型的应用程序生存周期中、在一个或多个设备上的应用程序执行。
图10的示例性系统160还包括应用程序撤消组件168,该组件被配置成撤消应用程序(例如,通过从对象分层结构中的一个或多个设备的表示中解除该应用程序的映射、将应用程序资源从一个或多个设备移除、和/或通过将该应用程序从对象分层结构完全移除来完全停止使用它)。应用程序撤消组件168因此便于在典型的应用程序生存周期中的应用程序卸载。
最后,示例性系统160还包括对象分层结构传输组件170,该组件被配置成将对象分层结构44的至少一部分发送到至少一个设备。对象分层结构44可由应用程序管理系统160的各组件中的许多组件来修改,并且对对象分层结构44的修改可以与其中表示的一个或多个设备进行同步以实现对计算环境的应用程序集合的更新。通过组合本文讨论的技术的这些变型,示例性系统160因此提供用于在构成计算网格的许多设备之间经由典型的应用程序生存周期管理大型应用程序集合的全面的应用程序管理服务。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上文所描述的具体特征和动作是作为实现权利要求的示例形式来公开的。
如在本申请中所使用的,术语“组件”、“模块”、“系统”、“接口”等一般旨在表示计算机相关的实体,该实体可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,运行在控制器上的应用程序和控制器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
此外,所要求保护的主题可以使用产生控制计算机以实现所公开的主题的软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装置或制品。在此使用的术语“制品”旨在涵盖可以从任何计算机可读设备、载体或介质访问的计算机程序。当然,本领域的技术人员将会认识到,在不背离所要求保护的主题的范围或精神的前提下可以对这一配置进行许多修改。
图11和以下讨论提供了对用于实现此处所阐述的原理中的一个或多个实施例的合适计算环境的简要、概括描述。图11的操作环境只是合适的操作环境的一个示例,并不旨在对该操作环境的使用范围或功能提出任何限制。示例计算设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费电子产品、小型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等等。
尽管并非必需,但各实施例在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中描述。计算机可读指令可通过计算机可读介质来分发(在以下讨论)。计算机可读指令可被实现为执行特定任务或实现特定抽象数据类型的程序模块,如函数、对象、应用程序编程接口(API)、数据结构等等。通常,计算机可读指令的功能可按需在各个环境中组合或分布。
图11示出了包括被配置成实现此处所提供的一个或多个实施例的计算设备182的系统180的示例。在一种配置中,计算设备182包括至少一个处理单元186和存储器188。取决于计算设备的确切配置和类型,存储器188可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该配置在图11中由虚线184来示出。
在其他实施例中,设备182可以包括附加特征和/或功能。例如,设备182还可以包括附加存储(例如,可移动和/或不可移动),其中包括但不限于磁存储、光存储等等。这样的附加存储在图11中由存储190示出。在一个实施例中,用于实现此处所提供的一个或多个实施例的计算机可读指令可以在存储190中。存储190还可以储存实现操作系统、应用程序等其他计算机可读指令。可以在存储器188中加载计算机可读指令以便由例如处理单元186来执行。
此处所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器188和存储190都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可用于存储所需信息并且可由设备182访问的任何其他介质。任何这样的计算机存储介质都可以是设备182的一部分。
设备182还可包括允许该设备182与其他设备进行通信的通信连接196。通信连接196可包括但不限于,调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外线端口、USB连接、或用于将计算设备182连接到其他计算设备的其他接口。通信连接196可以包括有线连接或无线连接。通信连接196可以发送和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质通常以诸如载波或其他传输机制等“已调制数据信号”来体现计算机可读指令或其他数据,并包括任何信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。
设备182可包括输入设备194,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备和/或任何其他输入设备。设备182中还可包括输出设备192,诸如一个或多个显示器、扬声器、打印机和/或任何其他输出设备。输入设备194和输出设备192可以通过有线连接、无线连接或其任何组合来连接到设备182。在一个实施例中,来自另一计算设备的输入设备或输出设备可用作计算设备182的输入设备194或输出设备192。
计算设备182的组件可以通过诸如总线等各种互连来连接。这些互连可包括诸如PCI Express等外围部件互连(PCI)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等。在另一实施例中,计算设备182的组件可以通过网络互连。例如,存储器188可由位于通过网络互连的不同物理位置的多个物理存储器单元组成。
本领域技术人员会认识到,用于存储计算机可读指令的存储设备可分布在网络上。例如,可以通过网络198访问的计算设备200可以存储实现此处所提供的一个或多个实施例的计算机可读指令。计算设备182可以访问计算设备100并下载部分或全部计算机可读指令来执行。或者,计算设备182可以按需下载计算机可读指令的片断,或者某些指令可以在计算设备182处执行而某些则在计算设备200处执行。
此处提供了各实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以组成储存在一个或多个计算机可读介质上的计算机可读指令,这些指令如果被计算设备执行则使得计算设备执行所描述的操作。描述一些或全部操作的顺序不应被解释为暗示了这些操作必须要依赖于顺序。从本说明书获益的本领域技术人员应理解替换的排序。此外,应该理解并非所有的操作都必须存在于此处所提供的每一实施例中。
此外,在此使用词语“示例性”意指用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定被解释为比其他方面或设计有利。相反,使用词语“示例性”旨在以具体的方式呈现各个概念。如本申请中所使用的,术语“或”意指包括性“或”而非互斥性“或”。即,除非另有指定或从上下文可以清楚,否则“X使用A或B”意指任何自然的包括性排列。即,如果X使用A;X使用B;或X使用A和B两者,则在任何以上情况下,都满足“X使用A或B”。另外,本申请中和所附权利要求书中所使用的冠词“一”和“一个”一般可被解释为是指“一个或多个”,除非另有指定或从上下文可以清楚指的是单数形式。
同样,虽然参考一个或多个实现示出并描述了本发明,但本领域技术人员基于对本说明书和附图的阅读和理解可以想到各种等效替换和修改。本发明包括所有这些修改和替换并且只由所附权利要求书来限定。特别地,对于由上述组件(例如,元素、资源等)执行的各种功能,除非另外指明,否则用于描述这些组件的术语旨在对应于执行所描述的执行此处在本发明的示例性实现中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。另外,尽管可相对于若干实现中的仅一个实现来公开本发明的一个特定特征,但是这一特征可以如对任何给定或特定应用所需且有利地与其它实现的一个或多个其它特征相组合。此外,就在说明书或权利要求书中使用术语“包含”、“具有”、“含有”和“带有”及其变体而言,这些术语旨在以与术语“包括”相似的方式为包含性的。

Claims (15)

1.一种用于对将由应用程序存储(84)管理的至少一个应用程序(112)部署到表示至少一个设备(50)上的计算环境的对象分层结构(44)进行管理的系统(86),所述系统(86)包括:
应用程序获取组件(88),所述组件被配置成:
接收安装应用程序(112)的请求,以及
从所述应用程序存储(84)获取所述应用程序(112);
应用程序映射组件(90),所述组件被配置成将所述对象分层结构(44)中表示的至少一个设备(50)映射到至少一个已安装应用程序(112);以及
应用程序部署组件(92),所述组件被配置成将所述至少一个已安装应用程序(112)部署在所述对象分层结构(44)中。
2.如权利要求1所述的系统,其特征在于,所述系统包括表示至少一个应用程序的应用程序存储,各个应用程序包括至少一个应用程序资源。
3.如权利要求1所述的系统,其特征在于,包括:
被配置成存储所述对象分层结构的对象分层结构存储,以及
被配置成将所述对象分层结构的至少一部分发送到所述至少一个设备的对象分层结构传输组件。
4.如权利要求1所述的系统,其特征在于,包括:
应用程序发现组件,所述组件被配置成:
从用户接收应用程序查询,
选择满足所述应用程序查询的应用程序,以及
将所选应用程序呈现给所述用户。
5.如权利要求1所述的系统,其特征在于,所述应用程序获取组件被配置成:
通过所述设备将应用程序许可证呈现给用户,以及
在从所述用户接收到对所述应用程序许可证的接受后,记录对所述应用程序许可证的接受。
6.如权利要求1所述的系统,其特征在于,所述应用程序获取组件被配置成对与所述至少一个设备的用户的获取事务进行中介。
7.如权利要求1所述的系统,其特征在于,所述应用程序获取组件被配置成生成表示所述应用程序的用户的用户帐户。
8.如权利要求1所述的系统,其特征在于,所述部署包括:
相对于所述设备和所述设备的用户中的至少一个来配置所述应用程序。
9.如权利要求1所述的系统,其特征在于,包括:
被配置成在所述至少一个设备上启动所述应用程序的应用程序启动组件。
10.如权利要求1所述的系统,其特征在于,包括:
应用程序共享组件,所述组件被配置成:
接收与一用户共享所述应用程序的请求,以及
在接收到共享所述应用程序的请求后,与所述用户共享所述应用程序。
11.如权利要求10所述的系统,其特征在于,所述应用程序共享组件被配置成与所述用户共享所述对象分层结构中包括以下至少一个的一部分:所述应用程序、应用程序会话、应用程序配置、以及所述应用程序生成的至少一个数据对象。
12.如权利要求1所述的系统,其特征在于,包括:
被配置成更新所述应用程序的应用程序更新组件。
13.如权利要求12所述的系统,其特征在于,所述应用程序更新组件被配置成更新所述对象分层结构中的至少一个应用程序资源,以及
被配置成撤消所述应用程序的应用程序撤消组件。
14.如权利要求1所述的系统,其特征在于,包括:
被配置成请求撤消所述应用程序的接收组件。
15.如权利要求14所述的系统,其特征在于,所述接收组件被配置成在所述对象分层结构中撤消所述应用程序。
CN2009801106621A 2008-03-20 2009-02-20 可部署对象分层结构内的应用程序管理 Active CN101978366B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/052,550 US9753712B2 (en) 2008-03-20 2008-03-20 Application management within deployable object hierarchy
US12/052,550 2008-03-20
PCT/US2009/034601 WO2009117207A1 (en) 2008-03-20 2009-02-20 Application management within deployable object hierarchy

Publications (2)

Publication Number Publication Date
CN101978366A true CN101978366A (zh) 2011-02-16
CN101978366B CN101978366B (zh) 2013-10-30

Family

ID=41090146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801106621A Active CN101978366B (zh) 2008-03-20 2009-02-20 可部署对象分层结构内的应用程序管理

Country Status (8)

Country Link
US (5) US9753712B2 (zh)
EP (1) EP2255295B1 (zh)
JP (1) JP5409767B2 (zh)
KR (1) KR20100133382A (zh)
CN (1) CN101978366B (zh)
BR (1) BRPI0907773A2 (zh)
TW (1) TWI473019B (zh)
WO (1) WO2009117207A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164286A (zh) * 2013-03-12 2013-06-19 无锡云动科技发展有限公司 云计算平台部署的实现方法、资源管理器、云计算系统
CN103294640A (zh) * 2012-01-23 2013-09-11 索尼公司 分配用于异种平台的应用的框架和系统
CN103562860A (zh) * 2011-05-27 2014-02-05 微软公司 作为沉浸式应用的桌面
CN103970579A (zh) * 2014-05-29 2014-08-06 中国银行股份有限公司 应用版本部署方法及装置
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
CN108614716A (zh) * 2011-03-16 2018-10-02 谷歌有限责任公司 用于指定基于云的部署的配置的高级语言
US10417018B2 (en) 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296728B1 (en) 2008-08-26 2012-10-23 Adobe Systems Incorporated Mobile device interaction using a shared user interface
US8832681B1 (en) * 2008-08-29 2014-09-09 Adobe Systems Incorporated Bundled mobile/desktop application package
JP5112229B2 (ja) * 2008-09-05 2013-01-09 株式会社エヌ・ティ・ティ・ドコモ 配信装置、端末装置及びシステム並びに方法
JP5080406B2 (ja) * 2008-09-05 2012-11-21 株式会社エヌ・ティ・ティ・ドコモ 配信装置、端末装置及びシステム並びに方法
US8271974B2 (en) 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
US8069247B2 (en) * 2008-12-03 2011-11-29 Verizon Data Services Llc Application launcher systems, methods, and apparatuses
US20100157990A1 (en) 2008-12-19 2010-06-24 Openpeak, Inc. Systems for providing telephony and digital media services
US8707288B2 (en) * 2009-02-13 2014-04-22 Mobitv, Inc. System for automatic management of applications on remote devices
US20120047228A1 (en) * 2009-05-07 2012-02-23 Shady Hassan Sayed Hassan Aly Method for delivering tag based services
US20110072371A1 (en) * 2009-09-18 2011-03-24 Microsoft Corporation Application programming interface for user interface creation
KR20110040604A (ko) * 2009-10-14 2011-04-20 삼성전자주식회사 클라우드 서버, 클라이언트 단말, 디바이스, 클라우드 서버의 동작 방법 및 클라이언트 단말의 동작 방법
US9002574B2 (en) 2009-10-15 2015-04-07 Airbiquity Inc. Mobile integration platform (MIP) integrated handset application proxy (HAP)
US8942888B2 (en) 2009-10-15 2015-01-27 Airbiquity Inc. Extensible scheme for operating vehicle head unit as extended interface for mobile device
US8838332B2 (en) 2009-10-15 2014-09-16 Airbiquity Inc. Centralized management of motor vehicle software applications and services
US8831823B2 (en) 2009-10-15 2014-09-09 Airbiquity Inc. Centralized management of motor vehicle software applications and services
US9160812B2 (en) * 2009-10-22 2015-10-13 Cellco Partnership Systems and methods for delivering an application over a mobile communications network
US9037711B2 (en) 2009-12-02 2015-05-19 Metasecure Corporation Policy directed security-centric model driven architecture to secure client and cloud hosted web service enabled processes
CN102200918B (zh) * 2010-03-23 2015-12-16 中兴通讯股份有限公司 服务器部署应用程序的方法及装置
US10013252B2 (en) * 2010-04-16 2018-07-03 Oracle International Corporation Software development compliance system
US8707296B2 (en) * 2010-04-27 2014-04-22 Apple Inc. Dynamic retrieval of installation packages when installing software
US8359463B2 (en) * 2010-05-26 2013-01-22 Hewlett-Packard Development Company, L.P. Selecting a configuration for an application
US8521777B2 (en) * 2010-06-16 2013-08-27 Ricoh Company, Ltd Methods and apparatus for presentation of software as a service applications
US20120144319A1 (en) 2010-12-03 2012-06-07 Razer (Asia-Pacific) Pte Ltd Collaboration Management System
US9116728B2 (en) * 2010-12-21 2015-08-25 Microsoft Technology Licensing, Llc Providing a persona-based application experience
US9354852B2 (en) 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US20120174212A1 (en) * 2010-12-29 2012-07-05 Microsoft Corporation Connected account provider for multiple personal computers
US8826260B2 (en) * 2011-01-11 2014-09-02 Intuit Inc. Customization of mobile-application delivery
WO2012107929A2 (en) * 2011-02-09 2012-08-16 Conduit Ltd Application synchronization among multiple computing devices
WO2012162158A1 (en) * 2011-05-20 2012-11-29 Citrix Systems, Inc. Shell integration on a mobile device for an application executing remotely on a server
US8924958B1 (en) * 2011-05-24 2014-12-30 BlueStack Systems, Inc. Application player
US10089093B1 (en) 2011-05-24 2018-10-02 BlueStack Systems, Inc. Apparatuses, systems and methods of switching operating systems
US8676995B1 (en) 2011-07-07 2014-03-18 Cisco Technology, Inc. System and method for enabling pairing of a companion device with a mate device for performing a companion service
US9123078B2 (en) 2011-08-19 2015-09-01 Nokia Technologies Oy Method and apparatus for socially aware applications and application stores
US9286050B2 (en) * 2011-09-02 2016-03-15 Verizon Patent And Licensing Inc. Method and system for context-based application management
US9173090B2 (en) * 2011-09-15 2015-10-27 Teletech Holdings, Inc. Method for activating services associated with a product via a service center supporting a variety of products
US9785628B2 (en) 2011-09-29 2017-10-10 Microsoft Technology Licensing, Llc System, method and computer-readable storage device for providing cloud-based shared vocabulary/typing history for efficient social communication
US10282221B2 (en) * 2011-12-09 2019-05-07 International Business Machines Corporation Controlling usage of virtual disks before their attachment to virtual machines
US20220004649A1 (en) * 2011-12-09 2022-01-06 Sertainty Corporation System and methods for using cipher objects to protect data
US9503520B2 (en) * 2012-02-06 2016-11-22 Conduit Ltd. Application synchronization among multiple computing devices
US9235565B2 (en) * 2012-02-14 2016-01-12 Facebook, Inc. Blending customized user dictionaries
US9098357B2 (en) * 2012-04-11 2015-08-04 Nokia Technologies Oy Method and apparatus for activity management across multiple devices
WO2013184877A2 (en) 2012-06-08 2013-12-12 Airbiquity Inc. Assessment of electronic sensor data to remotely identify a motor vehicle and monitor driver behavior
CA2783223C (en) * 2012-07-19 2014-07-15 Microsoft Corporation Global recently used files list
EP2936861B1 (en) 2012-12-20 2021-07-21 Airbiquity, Inc. Efficient headunit communication integration
US20140189670A1 (en) * 2012-12-31 2014-07-03 Openpeak Inc. System and method for tailoring applications and application repositories for individual electrical devices
KR101822463B1 (ko) 2013-01-21 2018-01-26 삼성전자주식회사 복수 개의 아이콘들을 화면상에 배치하는 장치 및 이의 운용 방법
US20150331916A1 (en) * 2013-02-06 2015-11-19 Hitachi, Ltd. Computer, data access management method and recording medium
TWI497953B (zh) * 2013-04-24 2015-08-21 Sunix Co Ltd 遠端周邊的控制系統、方法及其遠端服務器
WO2015006170A1 (en) * 2013-07-12 2015-01-15 FREILICH, Arthur A computer system storing content into application independent objects
CN104301338A (zh) * 2013-07-16 2015-01-21 苏州精易会信息技术有限公司 基于云平台的应用系统自动部署方法
US9503541B2 (en) * 2013-08-21 2016-11-22 International Business Machines Corporation Fast mobile web applications using cloud caching
US9323906B2 (en) * 2013-09-04 2016-04-26 D2L Corporation Method and system for digital rights management enforcement
US9098369B1 (en) * 2013-11-13 2015-08-04 Google Inc. Application installation using in-video programming
US9880918B2 (en) * 2014-06-16 2018-01-30 Amazon Technologies, Inc. Mobile and remote runtime integration
US10185590B2 (en) 2014-06-16 2019-01-22 Amazon Technologies, Inc. Mobile and remote runtime integration
US8997081B1 (en) * 2014-09-18 2015-03-31 Ensighten, Inc. Analytics for mobile applications
US10476757B1 (en) * 2015-01-27 2019-11-12 Nutanix, Inc. Architecture for implementing centralized management for a computing environment
US9798864B2 (en) * 2015-03-06 2017-10-24 International Business Machines Corporation Embedded integrated component governance policy
CN105677421B (zh) * 2016-01-06 2020-01-03 惠州Tcl移动通信有限公司 一种移动终端的桌面启动器的定制方法及系统
US10791109B2 (en) 2016-02-10 2020-09-29 Red Hat, Inc. Certificate based expiration of file system objects
US11003476B2 (en) 2016-02-12 2021-05-11 Nutanix, Inc. Entity database historical data
US10304215B2 (en) 2016-06-10 2019-05-28 Apple Inc. Providing variants of texture assets for an asset catalog
US10621314B2 (en) * 2016-08-01 2020-04-14 Palantir Technologies Inc. Secure deployment of a software package
US10607002B2 (en) * 2016-08-30 2020-03-31 Microsoft Technology Licensing, Llc Isolating an application running inside a native container application
US10489424B2 (en) * 2016-09-26 2019-11-26 Amazon Technologies, Inc. Different hierarchies of resource data objects for managing system resources
US11675774B2 (en) 2016-09-23 2023-06-13 Amazon Technologies, Inc. Remote policy validation for managing distributed system resources
CN106713047A (zh) * 2017-01-12 2017-05-24 泰凌微电子(上海)有限公司 一种网状网络中的节点升级方法与系统
US10810009B2 (en) * 2017-07-14 2020-10-20 Microsoft Technology Licensing, Llc Visualizations of software project and contributor activity
US11263399B2 (en) * 2017-07-31 2022-03-01 Apple Inc. Correcting input based on user context
GB201717251D0 (en) * 2017-10-20 2017-12-06 Palantir Technologies Inc Serving assets in a networked environment
US10678975B2 (en) * 2017-11-07 2020-06-09 Amazon Tecnnologies, Inc. Code module selection for device design
US10700991B2 (en) 2017-11-27 2020-06-30 Nutanix, Inc. Multi-cluster resource management
US10936333B2 (en) * 2018-02-28 2021-03-02 Forcepoint Llc System and method for managing system configuration data models
US11340880B2 (en) * 2018-05-17 2022-05-24 Hewlett-Packard Development Company, L.P. Application management service including package file
WO2020002030A1 (de) * 2018-06-26 2020-01-02 Siemens Aktiengesellschaft Verfahren und system zur bestimmung eines geeigneten installationsortes für eine zu installierende applikation in einer verteilten netzwerkumgebung
US10901717B2 (en) 2018-07-16 2021-01-26 International Business Machines Corporation Controlling computer executions based on terms and conditions and user device attributes
US20200159560A1 (en) * 2018-11-16 2020-05-21 Avi Networks Propagating ordered object changes
US11556320B2 (en) 2020-08-06 2023-01-17 Bank Of America Corporation Electronic system for dynamic analysis and detection of transformed transient data in a distributed system network
US11749284B2 (en) * 2020-11-13 2023-09-05 Google Llc Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests
US20220244903A1 (en) * 2021-02-04 2022-08-04 Apple Inc. Application casting

Family Cites Families (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044205A (en) 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5504852A (en) * 1991-09-09 1996-04-02 Apple Computer, Inc. Method for creating a collection of aliases representing computer system files
US5437025A (en) 1993-01-26 1995-07-25 International Business Machines Corporation System and method for run time configuration of objects in an object oriented computing environment
US5548726A (en) 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
JPH11504451A (ja) 1995-04-24 1999-04-20 アスペクト・ディベロップメント・インコーポレイテッド データベース構造に適したオブジェクトのモデリング、リレーショナルデータベース構造への翻訳、それらへの流動的なサーチ
US5850090A (en) 1995-05-24 1998-12-15 Mitsubishi Denki Kabushiki Kaisha Dynamic semiconductor memory device on SOI substrate
US5764543A (en) 1995-06-16 1998-06-09 I2 Technologies, Inc. Extensible model network representation system for process planning
JP3598183B2 (ja) 1996-10-16 2004-12-08 株式会社東芝 多次元データ管理方法、多次元データ管理装置、多次元データ管理プログラムを記録した媒体
US6678724B2 (en) 1997-03-12 2004-01-13 Microsoft Corporation Common namespace for internet and local filesystem objects
US6573907B1 (en) 1997-07-03 2003-06-03 Obvious Technology Network distribution and management of interactive video and multi-media containers
US6105062A (en) 1998-02-26 2000-08-15 Novell, Inc. Method and system for pruning and grafting trees in a directory service
US6330717B1 (en) * 1998-03-27 2001-12-11 Sony Corporation Of Japan Process and system for developing an application program for a distributed adaptive run-time platform
US6209029B1 (en) 1998-05-12 2001-03-27 Silverstream Software, Inc. Method and apparatus for accessing data sources in a three tier environment
US6553375B1 (en) 1998-11-25 2003-04-22 International Business Machines Corporation Method and apparatus for server based handheld application and database management
US6243746B1 (en) * 1998-12-04 2001-06-05 Sun Microsystems, Inc. Method and implementation for using computer network topology objects
US7035895B1 (en) * 1998-12-17 2006-04-25 International Business Machines Corporation Manager object for management of multiple resources on dataless clients in a distributed computing environment
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
US7062532B1 (en) 1999-03-25 2006-06-13 Autodesk, Inc. Method and apparatus for drawing collaboration on a network
CA2371660A1 (en) * 1999-04-29 2000-11-09 Manjunath M. Suryanarayana Distributed software development environment
US6886017B1 (en) * 1999-04-30 2005-04-26 Elata Limited System and method for managing distribution of content to a device
US6425126B1 (en) * 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
US6519679B2 (en) 1999-06-11 2003-02-11 Dell Usa, L.P. Policy based storage configuration
US6826760B1 (en) 1999-06-16 2004-11-30 Microsoft Corporation Methods of factoring operating system functions, methods of converting operating systems, and related apparatus
US7181539B1 (en) * 1999-09-01 2007-02-20 Microsoft Corporation System and method for data synchronization
US6732172B1 (en) 2000-01-04 2004-05-04 International Business Machines Corporation Method and system for providing cross-platform access to an internet user in a heterogeneous network environment
US6594664B1 (en) 2000-01-04 2003-07-15 International Business Machines Corporation System and method for online/offline uninterrupted updating of rooms in collaboration space
US6546554B1 (en) 2000-01-21 2003-04-08 Sun Microsystems, Inc. Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
AU3689301A (en) 2000-02-09 2001-08-20 Apriva Inc Communication systems, components, and methods operative with programmable wireless devices
US6904593B1 (en) * 2000-03-24 2005-06-07 Hewlett-Packard Development Company, L.P. Method of administering software components using asynchronous messaging in a multi-platform, multi-programming language environment
US6662192B1 (en) 2000-03-29 2003-12-09 Bizrate.Com System and method for data collection, evaluation, information generation, and presentation
US20050091576A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
EP1148322A1 (de) 2000-04-18 2001-10-24 Gretag-Macbeth AG Verfahren zur Erzeugung einer elektronischen Farbinformationsdatei und Verfahren zur Farbkommunikation
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6685090B2 (en) 2000-05-24 2004-02-03 Fujitsu Limited Apparatus and method for multi-profile managing and recording medium storing multi-profile managing program
US6611837B2 (en) 2000-06-05 2003-08-26 International Business Machines Corporation System and method for managing hierarchical objects
US7219304B1 (en) 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US6865737B1 (en) * 2000-08-23 2005-03-08 Microsoft Corporation Remote software installation and maintenance
US20020138617A1 (en) 2000-09-06 2002-09-26 Jacob Christfort Providing content from multiple services
US7089295B2 (en) 2000-09-06 2006-08-08 Oracle International Corporation Customizing content provided by a service
US7836458B1 (en) 2000-11-02 2010-11-16 Microsoft Corporation Configuration system
US20040006566A1 (en) 2000-11-07 2004-01-08 Matt Taylor System and method for augmenting knowledge commerce
US6834301B1 (en) * 2000-11-08 2004-12-21 Networks Associates Technology, Inc. System and method for configuration, management, and monitoring of a computer network using inheritance
US6961909B2 (en) 2001-01-05 2005-11-01 Hewlett-Packard Development Company, L.P. System for displaying a hierarchical directory
US20040133606A1 (en) 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US20020103811A1 (en) 2001-01-26 2002-08-01 Fankhauser Karl Erich Method and apparatus for locating and exchanging clinical information
US7054927B2 (en) 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
JP2002229902A (ja) 2001-01-31 2002-08-16 Justec:Kk 情報提供方法、情報提供システム、地理情報提供方法、地図情報提供システム、及びコンピュータ読み取り可能なプログラム
US6836842B1 (en) * 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
US20030004746A1 (en) 2001-04-24 2003-01-02 Ali Kheirolomoom Scenario based creation and device agnostic deployment of discrete and networked business services using process-centric assembly and visual configuration of web service components
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US8290762B2 (en) * 2001-08-14 2012-10-16 National Instruments Corporation Graphically configuring program invocation relationships by creating or modifying links among program icons in a configuration diagram
US6907451B1 (en) 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
EP1684176A3 (en) 2001-10-02 2010-05-05 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US7330872B2 (en) 2001-10-02 2008-02-12 Citrix Systems, Inc. Method for distributed program execution with web-based file-type association
US6952714B2 (en) 2001-10-02 2005-10-04 Citrix Systems, Inc. Method for distributed program execution with server-based file type association
WO2003032188A1 (en) 2001-10-05 2003-04-17 Vitria Technology, Inc. System and method for vocabulary-based data transformation
JP3857571B2 (ja) * 2001-11-15 2006-12-13 タイコ エレクトロニクス レイケム株式会社 ポリマーptcサーミスタおよび温度センサ
KR100426307B1 (ko) 2001-12-12 2004-04-08 한국전자통신연구원 에스오에이피-엑스엠엘을 이용한 데이터 액세스 장치 및방법
US7088995B2 (en) 2001-12-13 2006-08-08 Far Eastone Telecommunications Co., Ltd. Common service platform and software
JP2003186782A (ja) * 2001-12-20 2003-07-04 Fuji Photo Film Co Ltd 情報配信システム、情報配信装置及びプログラム、デジタルカメラ及び携帯端末装置
US7266563B2 (en) 2001-12-28 2007-09-04 Fotomedia Technologies, Llc Specifying, assigning, and maintaining user defined metadata in a network-based photosharing system
US7206817B2 (en) * 2002-01-18 2007-04-17 Bea Systems, Inc. Systems and methods for application management and deployment
EP1488313A2 (en) 2002-03-01 2004-12-22 Green Border Technologies Method and system for assured denotation of application semantics
US7421478B1 (en) * 2002-03-07 2008-09-02 Cisco Technology, Inc. Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration
US7552481B2 (en) 2002-03-18 2009-06-23 Sun Microsystems, Inc. Method of assessing an organization's network identity capability
US6968535B2 (en) 2002-03-21 2005-11-22 Sun Microsystems, Inc. Service mapping method of enterprise application modeling and development for multi-tier service environments
US7437731B2 (en) 2002-05-30 2008-10-14 Oracle International Corporation Coordinated collaboration system in an integration platform
AU2003251505A1 (en) * 2002-06-12 2003-12-31 Fslogic, Inc. Layered computing systems and methods for insecure environments
US20040031029A1 (en) * 2002-08-06 2004-02-12 Kyu-Woong Lee Methods and systems for automatically updating software components in a network
US6909721B2 (en) * 2002-10-31 2005-06-21 Nokia Corporation Device detection and service discovery system and method for a mobile ad hoc communications network
JP2004171107A (ja) 2002-11-18 2004-06-17 Sony Corp ソフトウエア提供システム、ソフトウエア提供装置および方法、記録媒体、並びにプログラム
CA2412383A1 (en) 2002-11-22 2004-05-22 Ibm Canada Limited-Ibm Canada Limitee Meta-model for associating multiple physical representations of logically equivalent entities in messaging and other applications
US7613812B2 (en) 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
US7386530B2 (en) 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing content including addressability features
US7512703B2 (en) 2003-01-31 2009-03-31 Hewlett-Packard Development Company, L.P. Method of storing data concerning a computer network
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7099888B2 (en) 2003-03-26 2006-08-29 Oracle International Corporation Accessing a remotely located nested object
KR100688414B1 (ko) * 2003-04-25 2007-03-02 애플 컴퓨터, 인코포레이티드 미디어의 네트워크를 통한 구매 및 분배용 방법 및 시스템
US7203711B2 (en) 2003-05-22 2007-04-10 Einstein's Elephant, Inc. Systems and methods for distributed content storage and management
US7240327B2 (en) 2003-06-04 2007-07-03 Sap Ag Cross-platform development for devices with heterogeneous capabilities
TWI223725B (en) 2003-06-10 2004-11-11 Chunghwa Picture Tubes Ltd Polarizer manufacturing method
US20050015430A1 (en) 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US8001187B2 (en) * 2003-07-01 2011-08-16 Apple Inc. Peer-to-peer active content sharing
US7594015B2 (en) 2003-07-28 2009-09-22 Sap Ag Grid organization
US7383541B1 (en) * 2003-08-07 2008-06-03 Cisco Technology, Inc. Method and apparatus providing interoperation of execution images of different versions
US20050060315A1 (en) 2003-09-16 2005-03-17 Aleksey Sanin Metadata database lookup system
US20050065935A1 (en) * 2003-09-16 2005-03-24 Chebolu Anil Kumar Client comparison of network content with server-based categorization
EP1665084A1 (en) 2003-09-17 2006-06-07 Research In Motion Limited System and method for dynamic generation and customization of web service client applications for terminals
US7350201B2 (en) * 2003-10-23 2008-03-25 International Business Machines Corporation Software distribution application supporting operating system installations
US7721254B2 (en) 2003-10-24 2010-05-18 Microsoft Corporation Programming interface for a computer platform
US7546594B2 (en) * 2003-12-15 2009-06-09 Microsoft Corporation System and method for updating installation components using an installation component delta patch in a networked environment
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US20050138156A1 (en) 2003-12-19 2005-06-23 Alexander Gebhart Grid application customization
US7257583B2 (en) * 2004-01-09 2007-08-14 Microsoft Corporation System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download
WO2005072114A2 (en) 2004-01-19 2005-08-11 Pantero Corporation Enterprise interoperability using shared data services
US7480699B2 (en) * 2004-01-20 2009-01-20 International Business Machines Corporation System and method for replacing an application on a server
US20050177600A1 (en) 2004-02-11 2005-08-11 International Business Machines Corporation Provisioning of services based on declarative descriptions of a resource structure of a service
US20050192962A1 (en) 2004-02-26 2005-09-01 Patricia Furrer Apparatus, system, method for enabling web-applications to access enterprise managed data
CN1871583B (zh) * 2004-03-09 2012-02-29 宝马股份公司 至少一个控制设备的过程控制功能的更新和/或扩展
US20050203931A1 (en) 2004-03-13 2005-09-15 Robert Pingree Metadata management convergence platforms, systems and methods
US7190962B2 (en) * 2004-04-01 2007-03-13 Qualcomm Incorporated Networked wireless communications device programmed to identify and eliminate probable multipath errors to enhance accuracy in correcting sleep clock for thermally induced errors
US20050251812A1 (en) 2004-04-27 2005-11-10 Convertabase, Inc. Data conversion system, method, and apparatus
US20050251786A1 (en) 2004-05-07 2005-11-10 International Business Machines Corporation System and method for dynamic software installation instructions
US7650432B2 (en) 2004-05-20 2010-01-19 Bea Systems, Inc. Occasionally-connected application server
US20050289510A1 (en) 2004-06-08 2005-12-29 Daniel Illowsky Method and system for interoperable device enabling hardware abstraction layer modification and engine porting
CN1969282A (zh) * 2004-06-15 2007-05-23 松下电器产业株式会社 数据处理装置
US20050289454A1 (en) 2004-06-28 2005-12-29 D & Wayne & Co. Interactive website configuration, display and management application
US7882147B2 (en) 2004-06-30 2011-02-01 Robert T. and Virginia T. Jenkins File location naming hierarchy
US20060036602A1 (en) 2004-08-13 2006-02-16 Unangst Marc J Distributed object-based storage system that stores virtualization maps in object attributes
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8217756B2 (en) 2004-09-01 2012-07-10 Microsoft Corporation Rule-based filtering and alerting
US20070038642A1 (en) 2004-09-15 2007-02-15 Scott Durgin Method for providing extensible software components within a distributed synchronization system
EP1812848A4 (en) 2004-09-15 2009-04-29 Adesso Systems Inc SYSTEM AND METHOD FOR DATA MANAGEMENT IN A DISTRIBUTED COMPUTER SYSTEM
US7266370B2 (en) 2004-09-20 2007-09-04 Trilibis Inc. System and method for developing and deploying device independent applications
US20060089965A1 (en) * 2004-10-26 2006-04-27 International Business Machines Corporation Dynamic linkage of an application server and a Web server
US20060129972A1 (en) 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code
US7760746B2 (en) * 2004-11-30 2010-07-20 Computer Associates Think, Inc. Cascading configuration using one or more configuration trees
KR100714683B1 (ko) 2004-12-24 2007-05-04 삼성전자주식회사 디지털 컨텐츠를 글로벌로 공유하고 거래하는 방법 및시스템
US9535679B2 (en) 2004-12-28 2017-01-03 International Business Machines Corporation Dynamically optimizing applications within a deployment server
US7516206B2 (en) * 2005-01-28 2009-04-07 Cassatt Corporation Management of software images for computing nodes of a distributed computing system
US8387037B2 (en) * 2005-01-28 2013-02-26 Ca, Inc. Updating software images associated with a distributed computing system
US7685148B2 (en) * 2005-01-31 2010-03-23 Computer Associates Think, Inc. Automatically configuring a distributed computing system according to a hierarchical model
US20070050446A1 (en) 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US7680835B2 (en) 2005-02-28 2010-03-16 Microsoft Corporation Online storage with metadata-based retrieval
US7590653B2 (en) * 2005-03-02 2009-09-15 Cassatt Corporation Automated discovery and inventory of nodes within an autonomic distributed computing system
US20070150480A1 (en) 2005-04-11 2007-06-28 Hans Hwang Service delivery platform
US7743373B2 (en) 2005-05-06 2010-06-22 International Business Machines Corporation Method and apparatus for managing software catalog and providing configuration for installation
US7694287B2 (en) 2005-06-29 2010-04-06 Visa U.S.A. Schema-based dynamic parse/build engine for parsing multi-format messages
US7577681B1 (en) 2005-06-29 2009-08-18 Emc Corporation Methods and apparatus for managing contents of a database
US7739680B1 (en) * 2005-07-21 2010-06-15 Sprint Communications Company L.P. Application server production software upgrading with high availability staging software
US20070028175A1 (en) 2005-07-29 2007-02-01 Moore Dennis B Grid processing user tools
US20070061349A1 (en) 2005-09-15 2007-03-15 Microsoft Corporation Hierarchically describing shapes
US20070073770A1 (en) 2005-09-29 2007-03-29 Morris Robert P Methods, systems, and computer program products for resource-to-resource metadata association
US8005879B2 (en) 2005-11-21 2011-08-23 Sap Ag Service-to-device re-mapping for smart items
WO2007064849A1 (en) 2005-12-01 2007-06-07 Cassatt Corporation Automated deployment and configuration of applications in an autonomically controlled distributed computing system
US20070169083A1 (en) * 2005-12-12 2007-07-19 Penubolu Shyam P Method for secure in-service software upgrades
ES2659651T3 (es) 2006-01-17 2018-03-16 Microsoft Technology Licensing, Llc Integración ininterrumpida de múltiples entornos informáticos
CN1801086A (zh) 2006-01-17 2006-07-12 浙江大学 应用于Java操作系统中设备支持的实现方法
US20070177590A1 (en) 2006-01-31 2007-08-02 Microsoft Corporation Message contract programming model
US7793343B2 (en) 2006-03-03 2010-09-07 Oracle America, Inc. Method and system for identity management integration
US8060871B2 (en) * 2006-03-30 2011-11-15 Microsoft Corporation Servicing software through versioning
US8572138B2 (en) * 2006-03-30 2013-10-29 Ca, Inc. Distributed computing system having autonomic deployment of virtual machine disk images
US7483978B2 (en) 2006-05-15 2009-01-27 Computer Associates Think, Inc. Providing a unified user interface for managing a plurality of heterogeneous computing environments
DE102006023876A1 (de) * 2006-05-19 2007-11-22 Carl Zeiss Smt Ag Optische Abbildungseinrichtung
US7508787B2 (en) 2006-05-31 2009-03-24 Cisco Technology, Inc. Graphical selection of information display for wireless mesh hierarchies
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US7814460B2 (en) * 2006-07-13 2010-10-12 Scriptlogic Corporation Hierarchical modular software packages and associated development tool
US7822594B2 (en) 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US7739411B2 (en) * 2006-08-11 2010-06-15 Samsung Electronics Co., Ltd. Method and system for content synchronization and detecting synchronization recursion in networks
US7606588B2 (en) * 2006-08-31 2009-10-20 Telefonaktiebolaget Lm Ericsson (Publ) Hierarchical point-to-multipoint group communications between multiple active communication groups
US8683352B2 (en) 2006-09-05 2014-03-25 International Business Machines Corporation Selectable flattening hierarchical file browser
US7934194B2 (en) 2006-10-17 2011-04-26 The Mathworks, Inc. User-defined hierarchies of user-defined classes of graphical objects in a graphical modeling environment
US20080249994A1 (en) 2006-11-28 2008-10-09 Calder Group, Inc. System and process for server side stateless data interchange
US7734717B2 (en) * 2006-12-05 2010-06-08 Nokia Corporation Software distribution via peer-to-peer networks
US7844912B2 (en) * 2006-12-22 2010-11-30 Sap Ag System and method using transformation nodes with enhancement layers
US9451009B2 (en) * 2007-02-19 2016-09-20 Appcentral, Inc. Methods and system to create applications and distribute applications to a remote device
US20080263348A1 (en) * 2007-04-17 2008-10-23 Texas Instruments Incorporated Dynamic asymmetric partitioning of program code memory in network connected devices
US7853669B2 (en) * 2007-05-04 2010-12-14 Microsoft Corporation Mesh-managing data across a distributed set of devices
US8185891B2 (en) * 2007-05-14 2012-05-22 Red Hat, Inc. Methods and systems for provisioning software
US8321538B2 (en) * 2007-09-24 2012-11-27 Hewlett-Packard Development Company, L.P. Autonomous network device configuration method
US8266260B2 (en) * 2007-12-11 2012-09-11 Sharp Laboratories Of America, Inc. Method and system for updating the software of multiple network nodes
US8127287B2 (en) * 2007-12-20 2012-02-28 Baljit Singh Gupta Systems and methods for reusing SAP adaptors in non-supported releases
US9280402B2 (en) * 2007-12-20 2016-03-08 Sap Se System and method for updating a dual layer browser
US20090172637A1 (en) * 2007-12-28 2009-07-02 Microsoft Corporation Markup-based language for manifests
US8572033B2 (en) 2008-03-20 2013-10-29 Microsoft Corporation Computing environment configuration
US9298747B2 (en) 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US8484174B2 (en) 2008-03-20 2013-07-09 Microsoft Corporation Computing environment representation
US20110246977A1 (en) * 2010-03-31 2011-10-06 Leviton Manufacturing Co., Inc. Control system code installation and upgrade
US9152404B2 (en) * 2011-07-13 2015-10-06 Z124 Remote device filter
US20140325502A1 (en) * 2012-06-29 2014-10-30 Giannis Zarifis Packaging, distribution and de-packaging of device-independent software applications

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614716A (zh) * 2011-03-16 2018-10-02 谷歌有限责任公司 用于指定基于云的部署的配置的高级语言
CN108614716B (zh) * 2011-03-16 2021-03-26 谷歌有限责任公司 用于指定基于云的部署的配置的高级语言
CN103562860A (zh) * 2011-05-27 2014-02-05 微软公司 作为沉浸式应用的桌面
CN103562860B (zh) * 2011-05-27 2017-02-08 微软技术许可有限责任公司 作为沉浸式应用的桌面
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
US10417018B2 (en) 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
CN103294640A (zh) * 2012-01-23 2013-09-11 索尼公司 分配用于异种平台的应用的框架和系统
CN103294640B (zh) * 2012-01-23 2017-04-26 索尼公司 分配用于异种平台的应用的方法和系统
CN103164286A (zh) * 2013-03-12 2013-06-19 无锡云动科技发展有限公司 云计算平台部署的实现方法、资源管理器、云计算系统
CN103970579A (zh) * 2014-05-29 2014-08-06 中国银行股份有限公司 应用版本部署方法及装置
CN103970579B (zh) * 2014-05-29 2017-05-03 中国银行股份有限公司 应用版本部署方法及装置

Also Published As

Publication number Publication date
US20210357200A1 (en) 2021-11-18
US20220276857A1 (en) 2022-09-01
US10514901B2 (en) 2019-12-24
JP2011515763A (ja) 2011-05-19
BRPI0907773A2 (pt) 2015-07-14
EP2255295A4 (en) 2011-11-02
EP2255295A1 (en) 2010-12-01
US20090241104A1 (en) 2009-09-24
US20170357498A1 (en) 2017-12-14
CN101978366B (zh) 2013-10-30
US11366654B2 (en) 2022-06-21
EP2255295B1 (en) 2014-10-15
TWI473019B (zh) 2015-02-11
US20200110594A1 (en) 2020-04-09
US10970062B2 (en) 2021-04-06
US9753712B2 (en) 2017-09-05
TW200941347A (en) 2009-10-01
US11593094B2 (en) 2023-02-28
JP5409767B2 (ja) 2014-02-05
WO2009117207A1 (en) 2009-09-24
KR20100133382A (ko) 2010-12-21

Similar Documents

Publication Publication Date Title
CN101978366B (zh) 可部署对象分层结构内的应用程序管理
US10120917B2 (en) Integrating object-based data integration tool with a version control system in centralized and decentralized environments
US20150293764A1 (en) Method and system to compose and execute business rules
US9009108B2 (en) Minimal extensions required for multi-master offline and collaboration for devices and web services
US20060212543A1 (en) Modular applications for mobile data system
CN101978369A (zh) 计算环境表示
US20140282371A1 (en) Systems and methods for creating or updating an application using a pre-existing application
US20150006328A1 (en) Method and system for providing distribution-type app store service
US20210208854A1 (en) System and method for enhancing component based development models with auto-wiring
CN102804202B (zh) 内容网格搜索
US20150052144A1 (en) Computer system storing content into application independent objects
CN102763085A (zh) 使用云服务目录来供应服务
NZ541364A (en) Mobile data and software update system and method
CN105723363A (zh) 跨多个承租者共享的具有动态更新的主模式
CN102520841A (zh) 收集用户接口
CN102893272A (zh) 对象的共享和同步
CN101763258B (zh) 一种软件复用方法及系统
CN102520971B (zh) 基于cad软件的数据交互方法及装置
Pialorsi Microsoft SharePoint 2013 Developer Reference
CN107003867A (zh) 使用区段以用于跨平台的应用的定制
CN113448960A (zh) 一种导入表格文件的方法和装置
Hodel Integration with Third-Party Tools
WO2016011084A1 (en) Methods and apparatus for building and deploying mobile device applications
Tupec Android components for business applications
JP2015118623A (ja) 文書情報処理システム、文書情報処理方法、文書情報処理装置及び文書情報処理プログラム

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: 20150429

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

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.