CN100507904C - 构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架 - Google Patents

构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架 Download PDF

Info

Publication number
CN100507904C
CN100507904C CNB2004100119290A CN200410011929A CN100507904C CN 100507904 C CN100507904 C CN 100507904C CN B2004100119290 A CNB2004100119290 A CN B2004100119290A CN 200410011929 A CN200410011929 A CN 200410011929A CN 100507904 C CN100507904 C CN 100507904C
Authority
CN
China
Prior art keywords
application
expansion
application program
identity
customization
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.)
Expired - Fee Related
Application number
CNB2004100119290A
Other languages
English (en)
Other versions
CN1664813A (zh
Inventor
A·W·坎特
D·J·德索扎
M·霍斯特曼
M·J·格里尔
S·G·希诺
S·帕沙沙拉西
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 Corp
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 CN1664813A publication Critical patent/CN1664813A/zh
Application granted granted Critical
Publication of CN100507904C publication Critical patent/CN100507904C/zh
Expired - Fee Related 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/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

揭示了一种构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架。该框架被声明性地定义为处理身份,即强健身份的清单。该应用程序清单可声明安全地配置或定制应用程序的适当的方法,并提供仅向授权的多方授予这一权限的能力。本发明的另一方面提供了一种用于采用处理定制应用程序的身份的清单声明性地定义的应用程序展开的框架。该框架为系统、状态基础结构、设置程序、创作工具和管理工具提供了一种方法以使用授权的复合应用程序身份展开、安装、服务并管理定制应用程序。应用程序清单以及展开清单可在展开的应用程序的整个生命周期内-包括运行时-令其变得可用,从而帮助了定制应用程序的一致操作。

Description

构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架
技术领域
本发明一般涉及计算机系统软件应用程序,尤其涉及可定制和可配置可重复使用应用程序。
相关申请的参照
本申请要求2003年10月24日提交的美国临时申请序列号60/514,069的优先权。
背景技术
当今的软件应用程序通常允许某种程度的定制和/或配置。定制可发生在应用程序从制造商处发货之前。例如,应用程序的本地化版本(如,英语、德语、日语等)可由软件开发者在发行并分发之前创建。定制也可发生在用户安装了该产品之后,如服务包或其它软件更新的情况。用户一般也可以在安装的软件内配置设定和选项,如色彩和声音模式、图标、启动屏幕等等。
应用程序的展开者(deployer)通常需要定制并配置他们所展开的应用程序。例如,信息技术管理员可能需要将其网络域内使用的应用程序的外观和感觉和/或特征设定标准化。在另一示例中,因特网服务提供商可能期望向其订户分发应用程序的有商标的版本。常规地,这一定制通过修改应用程序的安装过程(setup)或在其安装过程运行之后使用另一自定义程序修改所展开的应用程序的状态来完成。尽管机器的结果状态事实上可能令应用程序处于其定制形式,然而没有授权的定义或句炳来操纵这一定制的应用程序。
上述情形是有问题的,因为一旦定制了应用程序,该应用程序要么丢失了其原始的应用程序身份并拥有不相关的新身份,要么仍具有与定制的身份相对的原始身份,,没有一种方法来将定制的应用程序标识为原始应用程序的定制变异体。由此,确保在应用程序的整个生命周期中(即,安装、定制、更新、执行和收回应用程序)它能够被服务并在必要时发挥作用一依照原始应用程序,变得尤其具有挑战性。
发明内容
鉴于上述情况,本发明提供了一种构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架。具体地,本发明提出一种用于要被声明性地定义为拥有身份,包括-但不必是-强身份(见2000年6月28日提交的名为“共享名字(Shared Names)”的申请号09/605,602,其内容通过引用整体结合于此)的清单的应用程序的框架(即,一种控制其执行环境并可以被激活的组件)。该应用程序清单能够声明适当的方法来安全地配置或定制该应用程序,并提供仅向授权方授予这一权限的能力。
本发明的另一方面是,它也提供了一种用于要被声明性地定义为拥有定制的应用程序的身份的清单的应用程序展开的框架。这一框架向系统、状态基础结构、设置程序、授权工具、管理工具和其它感兴趣的各方提供了一种方法来使用授权复合应用程序身份展开、安装、服务和管理定制的应用程序。该定制的应用程序也可以被进一步定制。
应用程序清单以及展开清单可以在所展开的应用程序的整个生命周期中-包括运行时-令其变得可用,这帮助了定制的应用程序的一致操纵。对允许多个这样的定制的应用程序在同一作用域内(即,用户、机器、网络等等)可用的支持可以得到真正的可重复使用的应用程序,与并排组件十分相似。
附图说明
尽管所附权利要求书用细节陈述了本发明的特征,然而结合附图阅读以下详细描述可以最好地理解本发明及其对象和优点,附图中:
图1是可在其中实现本发明的框架的示例性计算机体系结构的示意图;
图2是可在其中实现本发明的框架的示例性软件应用程序的示意图;
图3是可在其中实现本发明的示例性展开的示意图。
具体实施方式
在以下描述中,参考由一个或多个计算机执行的行动和操作的符号表示来描述本发明,除非另外指明。由此,可以理解,这些行动和操作,不时被称为计算机可执行的,包括由计算机的处理单元对表示结构化形式的数据的电信号的操纵。这一操纵对数据进行转换或在计算机的存储器系统中的位置上维护它们,从而以本领域的技术人员都理解的方式重新配置或改变计算机的操作。维护着数据的数据结构是具有由该数据的格式所定义的具体特征的存储器的物理位置。然而,尽管在上述上下文语境中描述本发明,它并不意味着局限,如本领域的技术人员所理解的,后文所描述的若干行动和操作也能以硬件实现。
转向附图,其中,相同的标号标识相同的元件,示出了本发明在合适的计算环境内的实现。以下描述基于本发明的说明性实施例,不应当被视为是就此处未明确描述的替换性实施例而局限本发明。
示例性环境
参考图1,本发明涉及连接的计算机网络上的网络节点之间的通信。每一网络节点驻留在具有许多不同的计算机体系结构之一的计算机内。为描述目的,图1示出了可用于这些装置的示例性计算机体系结构的示意图。所描绘的体系结构仅是合适的环境的一个示例,并非局限本发明的使用或功能的范围。也不应将该计算装置解释为对图1所示的任一组件或其组合具有依赖或需求。本发明可使用众多其它通用或专用计算或通行环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和配置包括但不限于,移动电话、袖珍计算机、个人计算机、服务器、多处理器系统、基于微处理器的系统、小型机、大型机和包括上述系统或装置的任一个的分布式计算环境。
在其最基本的配置中,计算装置100通常包括至少一个处理单元102和存储器104。存储器104可以是易失的(如RAM)、非易失的(如ROM和闪存)或两者的某一组合。该最基本的配置在图1中由虚线106示出。
计算装置100也可包含可具有另外的特征和功能的存储媒质设备108和110。例如,它们可包括另外的存储(可移动和不可移动),包括但不限于,PCMCIA卡、磁和光盘和磁带。这类另外的存储在图1中由可移动存储108和不可移动存储110示出。计算机存储媒质包括以用于储存信息的任一方法或技术实现的易失和非易失、可移动和不可移动媒质,信息如计算机可读指令、数据结构、程序模块或其它数据。存储器104、可移动存储108和不可移动存储110都是计算机存储媒质的示例。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存、其它存储器技术、CD-ROM、数字多功能盘、其它光存储、磁盒、磁带、磁盘存储、其它磁存储设备以及可用于储存所期望的信息并可由计算机装置访问的任一其它媒质。
计算装置100也可包含允许其与其它装置进行通信的通信信道112。通信信道112是通信媒质的示例。通信媒质通常在诸如载波或其它传输机制等已调制数据信号中实施计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络和直接连线连接,以及无线媒质,如声学、无线电、红外和其它无线媒质。本发明使用的术语计算机可读媒质包括存储媒质和通信媒质。计算装置100也具有输入组件114,如键盘、鼠标、输入笔、语音输入组件和触摸输入设备。输出组件116包括屏幕显示器、扬声器、打印机和用于驱动它们的呈现模块(通常称为“适配器”)。计算装置100具有电源118。所有这些组件在本领域中是众所周知的,不需要在这里详细描述。
构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架
本发明针对一种构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架。简言之,应用程序是一组如由主机所准许的控制其执行环境并可被激活的一个或多个组件。组件可以被描述为原子性、不可变文件组。应当注意,本发明所使用的“控制”是相对性的;有某些甚至是应用程序也不能控制的因素(如,整个机器范围内的组件服务/设置等等)。同样,有提供不同的保证和控制级别以及对应用的隔离的不同级别的环境(如,机器、进程、应用域(appdomain))。另外,应用程序不必是可执行文件,并且可以不运行其自己的进程,而相反运行在一应用程序域内。参考图2,示出了一个示例性应用程序体系结构。聊天应用程序(ChatApplication)包括组件ChatApplication.EXE 200和CAPICOMM.DLL 202。
通过采用共享名字空间模式(见2000年6月28日提交的名为“共享名字(Shared Names)”的申请号09/605,602,其整体内容结合于此)可衍生出组件的唯一标识符一组件身份。组件身份包括组件名、版本和公钥令牌。类似地可以衍生应用程序身份。应用程序身份是通过应用程序或展开的相关图的路径(即,定制一个或多个应用程序的组件在应用程序或该组件或其应用程序所包含的其它组件的周围建立一名字解析范围),被表示为沿该路径的组件的组件身份的排序列表。该路径上的最后一个组件通常是应用程序。
可以为聊天应用程序示例定义一清单。清单是包含关于组件的元数据的设计文档。考虑可以在用于任一组件的给定系统上有效的(组件绑定)政策状态,有效的清单是应用程序或展开的清单内容的编译,包括所有其成分和相关组件的清单的内容。另一方面,不考虑任一组件绑定政策并且不考虑任一外部/先决依赖(即,在OS组件上),合并应用程序清单是应用程序或展开的清单内容的编译,包括所有其构成组件的清单的内容。
再次参考图2的示例性应用程序体系结构,聊天应用程序具有将ChatApplication.EXE列出为构成文件的清单,包括该文件的散列。该清单也列出CAPICOMM.DLL为必须被安装/有效以使ChatApplication.EXE能够运行的依赖性。有效清单包含ChatApplication.EXE和CAPICOMM.DLL及其文件散列等等。合并应用程序清单仅包括聊天应用程序的清单的内容。由此,如果CAPICOMM.DLL被服务,则有效清单改变,但是合并应用程序清单不改变。应用程序身份是ChatApplication.EXE组件的身份(通过ChatApplication.EXE的相关图的普通单个节点路径),并且-与合并应用程序清单一样-即使CAPICOMM.DLL被服务也不改变。
在一个较佳实施例中,可以采用一基于声明性可扩充标记语言(XML)的模式来实现该应用程序清单。示例性实现如下:
<?xml version=″1.0″encoding=″utf-8″?>
<assembly xmlns=″urn:schemas-microsoft-com:asm.v1″
   manifestVersion=″1.0″xmlns:asmv2=″urn:schemas-microsoft-com:asm.v2″>
   <!--Identify the application.-->
   <assemblyIdentity name=″ChatApplication″
      version=″1.0.0.0″publicKeyToken=″0123456789abcdef″
      processorArchitecture=″x86″language=″neutral″/>
   <description aεmv2:iconFile=″chat.ico″/>
   <!--Identify the configuration file.-->
   <asmv2:configuration configFile=″char.exe.config″/>
   <!--Identify the application security requirements.-->
   <asmv2:TrustInfo xmlns=″urn:schemas-microsoft-com:asm.v2″>
      <Securlty>
           <ApplicationRequestMinimum>
              <PermissionSet ID=″A″>
                 <IPermission class=″IsolatedStorageFilePermission″
                    version=″1″Allowed=″DomainIsolationByUser″
                    UserQuota=″1024000″/>
                 <IPermission class=″UIPermission″version=″1″
                   Window=″SafeTopLevelWindows″
Clipboard=″AllClipboard″/>
              </PermissionSet>
              <PermissionSet ID=″FT″>
                 <IPermission class=″UIPermission″version=″1″
                     Window=″SafeTopLevelWindows″
Clipboard=″AllClipboard″/>
              </PermissionSet>
              <AssemblyRequest name=″MyDll_1″
PermissionSetReference=″FT″/>
            <AssemblyRequest name=″MyDll_2″PermissionSetReference=″A″/>
         </ApplicationRequestMinimum>
     </Security>
  </asmv2:TrustInfo>
  <!--Identify the main code entrypoint.-->
  <!--This code runs the main method in an executable assembly.-->
  <entryPoint name=″main″xmlns=″urn:schemas-microsoft-com:asm.v2″
     dependencyName=″MainAppAssembly″>
  </entryPoint>
  <!--  Identify assembly dependencies.-->
  <!--This code identifies a ChatApplication assembly.-->
  <dependency asmv2:name=″MainAppAssembly″>
     <dependentAssembly>
        <assemblyIdentity name=″ChatApplication″version=″1.0.0.0″
           publicKeyToken=″e8ed396099c4b4e9″
processorArchitecture=″x86″
            language=″neutral″/>
     </dependentAssembly>
     <asmv2:installFrom codebase=″ChatApplication.exe″size=″1234″
           hash=″EA016BCDD422E82D0A6E9FFA41771364″hashalg=″SHA1″/>
   </dependency>
   <!--This code identifies a CapiComm assembly.-->
   <dependency asmv2:name=″CapiComm″>
      <dependentAssembly>
         <assemblyIdentity name=″CapiComm″version=″1.0.0.0″
            publicKeyToken=″e8ed396099c4b4e9″
processorArchitecture=″x86″
            language=″neutral″/>
      </dependentAssembly>
      <asmv2:installFrom codebase=″Capicomm.dll″size=″1234″
            hash=″EA016BCDD422E82D0A6E9FFA41771364″hashalg=″SHA1″/>
   </dependency>
<!--This code identifies a CapiComm resource or satellite assembly.-->
    <dependency resourceType=″resources″resourceFallbackCulture=″en-
    us″resourceFallbackCultureInternal=″false″>
        <dependentAssembly>
            <assemblyIdentity name=″CapiComm.Resources″
    version=″1.0.0.0″publicKeyToken=″0123456789abcdef″culture=″*″/>
        </dependentAssembly>
</dependency>
   <!--Identify non-assembly files.-->
   <file name=″chat.ico″hash=″A78A91FF7A8C59192EDC05466A68BEE5″
      hashalg=″SHA1″asmv2:size=″12345″/>
   <file name=″ChatApplication.exe.config″
hash=″24C0C9E616CE459B730BD50128F361DE″
        hashalg=″SHA1″asmv2:size=″12345″/>
   <file name=″eula.txt″hash=″EA016BCDD422E82D0A6E9FFA41771364″
        hashalg=″SHA1″asmv2:size=″12345″/>
</assembly>
如上所述,许多应用程序展现允许应用程序实质上被定制或甚至加商标的设定。在许多情形下,甚至可能必须允许同一应用程序的多个定制同时在同一机器上安装。本发明在克服与采用本领域现有技术获得这一结果相关的困难中尤其有用。转向图3,示出了一个示例性展开情形。在该情形中,聊天应用程序当前由两个站点/展开者定制:MSNBC 302和MSN 300。为启用这些情形,应用程序身份携带代码身份之外的附加信息;通过一单独的清单(“展开清单”)向定制(“展开”)分配其自己的身份(展开身份)。可以扩充以上示图以用连续的展开清单向该图添加更多的定制。
在一个较佳实施例中,可以采用一基于声明性XML的模式来实现该展开清单。一个示例性实现如下:
<!--Identify the deployment.-->
<assemblyIdentity name=″MSNChatDeployment″
   version=″1.0.0.0″publicKeyToken=″0123456789abcdef″
   processorArchitecture=″x86″language=″neutral″/>
<!--Specify application attributes.-->
<description xmlns=″urn:schemas-microsoft-com:asm.v2″
   publisher=″Microsoft″product=″MSNChat″
   supportUrl=″http://www.microsoft.com/deployments.asp?
                 support=Microsoft.MSN.Chat.Deployment″/>
<!--Specify the deployment attributes.-->
<deployment xmlns=″urn:schemas-microsoft-com:asm.v2″>
   <!--Create shell shortcuts and an Add or Remove Progams item.-->
   <install shellVisible=″false″/>
</deployment>
   <!--Tdentify the assemblydependencies-->
   <!--This code specifies the ibase application manifest-->
   <dependency>
      <dependentAssembly>
            <assemblyIdentity name=″ChatApplication″
            version=″1.0.0.0″publicKeyToken=″0123456789abcdef″
            processorArchitecture=″x86″language=″neutral″/>
      </dependentAssembly>
      <asmv2:installFrom
codebase=″1.0.0.0/neutral/Microsoft.ChatApplication.manifest″/>
   </dependency>
   <dependency resourceType=″resources″>
        <dependentAssembly optional=″yes″>
           <assemblyIdentity name=″CapiComm.Resources″version=″1.0.0.0″
   publicKeyToken=″0123456789abcdef″culture=″fr″/>
        </dependentAssembly>
</dependency>
   <file name=″ChatApplication.exe.config″
hash=″24C0C9E616CE459B730BD50128F361DF″
        hashalg=″SHA1″asmv2:size=″12350″/>
以上示例示出了MSN聊天300是如何能够为聊天应用程序定制安装和UI体验,使其被加上商标且看上去像MSN。它也提示了MSN聊天300如何能够通过首要配置文件配置该应用程序。例如,如果配置文件具有设定背景色=蓝(BackgroundColor=Blue),则由该展开提供的配置文件可推翻这一设定,令背景色=白(BackgroundColor=White)。另外,该示例也示出了如何添加语言辅助(Language satellite),诸如如上所述用于CapiComm的法语辅助。
最后,该系统可使用证书和其它权限管理技术来确保展开者仅以可接受/应用程序作者授权的方式定制应用程序。在上述示例中,所示出的一种普通(trivial)方式是应用程序和展开者都具有同一“公钥”。由汇编身份中的公钥令牌属性证明。这确保了它们具有可信任的关系。
当用户装入快捷方式,该快捷方式将包含完整的应用程序身份(AppID),这意味着如果定制该应用程疗,该应用程序身份包括展开以及该应用的全身份。例如:
Converter.deploy,Version=1.0.0.0,Culture=x-ww,
PublicKeyToken=0123456789abcdef,ProcessorArchitecture=x86/Converter,
Version=1.0.0.0,Culture=x-ww,PublieKeyToken=0123456789abedef,
ProeessorArchitecture=x86
为解析这一身份,绑定器遍历该身份的每一部分,并确定组件是否同步(即,是否与服务器语义同步),并且如果有中央服务政策,解析为该组件的适当的版本。这一过程确保了对每一个别的组件的服务。然后使用其运行时(runtime)实例中表示全身份的身份装入该应用程序。这通常被称为AppID。AppID可以在运行时由实体使用,如状态基础结构、信任管理器等等,以允许定制的应用程序的可配置性和可管理性。使用AppID的潜在操作包括:
·激活:给定应用程序身份,装入应用程序;
·安全:关于应用程序的政策状态,使用应用身份(参考)以将政策状态的作用域定到一个或多个应用程序;
·标识:从运行的应用程序的环境内确定应用程序身份;以及
·管理:确定安装在系统上的应用程序-应用程序管理API返回应用程序身份(定义);卸载采用应用程序身份(定义),等等。
绑定器其本身也可以使用AppID以及与该ID的每一部分关联的清单组(AppID可以用于获取“有效清单”或“合并应用程序清单”,并由此用于该结构内的任一数据),以提供对来自该清单的汇编或其它DLL、及其位置信息的正确版本的绑定的支持。绑定器具有十分选择性地为定制的应用程序选择正确的绑定环境的能力。这允许系统提供一种模型,其中一个展开(或定制的应用程序)可使用组件的(多个)版本而不干涉同一应用程序的其它定制版本或完全不同的应用程序。这一情形依赖于基础组件可隔离的能力。
鉴于可应用本发明的原理的许多可能的实施例,应当认识到,此处参考附图所描述的实施例仅为说明性的,不应当限制本发明的范围。例如,鉴于性能原因,本发明的框架可以以硬件而不是软件实现。因此,此处描述的本发明设想处于所附权利要求书及其等效技术方案的范围之内的所有这样的实施例。

Claims (11)

1.一种用于安全地定制应用程序的方法,其特征在于,所述方法包括:
确定所述定制应用程序运行的上下文环境;
从所述运行定制应用程序的上下文环境内获取应用程序身份;
根据所述应用程序身份获取对应于所述应用程序的一展开清单文件,所述展开清单文件定义了该应用程序身份、一组定制的展开属性和一组应用程序的属性;
根据所获得的展开清单文件中该组定制的展开属性和该组应用程序的属性,从所述展开清单文件确定可用的展开选项;以及
响应于所述确定可用的展开选项,执行许可的应用程序定制活动。
2.如权利要求1所述的方法,其特征在于,所述确定可用的展开选项包括确定许可的定制活动。
3.如权利要求1或2所述的方法,其特征在于,所述确定可用的展开选项包括确定被授权来执行应用程序定制的多个被授权方。
4.如权利要求1所述的方法,其特征在于,所述获取一展开清单文件包括从在其上储存了与定制的应用程序关联的应用程序清单模式数据结构的计算机可读媒质处获得展开清单文件,其中,所述数据结构包括:
第一数据字段,它包含表示指示所述模式包含应用程序清单信息的元素的数据;以及第二数据字段,它包含表示应用程序标识符的数据。
5.如权利要求4所述的方法,其特征在于,所述第二数据字段的中的应用程序标识符包括与定制应用程序关联的应用程序标识符数据结构,其中,所述应用程序标识符数据结构包括:第一数据字段,它包含表示一个或多个展开清单数据结构的数据;以及第二数据字段,它包含表示应用程序清单数据结构的数据。
6.如权利要求1所述的方法,其特征在于,所述获取一展开清单文件包括从在其上储存了与定制的应用程序关联的应用程序清单模式数据结构的计算机可读媒质处获得展开清单文件,其中,所述数据结构包括:第一数据字段,它包含指示所述模式包含展开清单信息的元素的数据;以及第二数据字段,它包含表示定制应用程序标识符的数据。
7.如权利要求1所述的方法,其特征在于,所述获取应用程序身份的步骤进一步包括:
从所述应用程序身份中获取展开身份,所述展开身份单独地标识所述定制。
8.如权利要求1所述的方法,其特征在于,所述应用程序身份包括通过原始应用程序的依赖图的路径并被表示为沿该路径的组件的组件身份的排序列表;并且
所述方法进一步包括:
使用所述应用程序身份将政策状态的作用域限定至一个或多个应用程序,其中所述限定包括绑定应用程序身份的每个部分并确定该组件是否与服务器语义同步。
9.如权利要求1所述的方法,其特征在于,所述获取应用程序身份的步骤进一步包括:
调用一应用程序管理应用编程接口;以及
从所述应用编程接口获取用于所安装的应用程序的应用程序身份,所述所安装的应用程序包括原始应用程序和其展开,其中所述所安装的应用程序的应用程序身份包括下述全身份中的一个或多个:展开者的信息,公钥令牌、版本信息和处理器体系信息;
其中所述原始应用程序的公钥令牌和展开是相同的。
10.如权利要求1所述的方法,其特征在于,所述方法进一步包括通过下述步骤构建所述展开清单文件:
定义一包括所有构成组件的内容的展开清单数据结构;
将所述展开清单与所述应用程序关联;以及
在所述展开清单内指定定制数据以形成合并的应用程序清单,所述合并应用程序清单是展开清单数据结构的编译,而不考虑任一组件绑定政策并且不考虑任一外部或先决依赖。
11.如权利要求10所述的方法,其特征在于,所述应用程序的比特被维持不变。
CNB2004100119290A 2003-10-24 2004-09-21 构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架 Expired - Fee Related CN100507904C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US51406903P 2003-10-24 2003-10-24
US60/514,069 2003-10-24
US10/909,217 US20050091259A1 (en) 2003-10-24 2004-07-30 Framework to build, deploy, service, and manage customizable and configurable re-usable applications
US10/909,217 2004-07-30

Publications (2)

Publication Number Publication Date
CN1664813A CN1664813A (zh) 2005-09-07
CN100507904C true CN100507904C (zh) 2009-07-01

Family

ID=34426321

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100119290A Expired - Fee Related CN100507904C (zh) 2003-10-24 2004-09-21 构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架

Country Status (5)

Country Link
US (1) US20050091259A1 (zh)
EP (1) EP1528465A3 (zh)
JP (1) JP2005129047A (zh)
KR (1) KR20050039533A (zh)
CN (1) CN100507904C (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0426736D0 (en) * 2004-12-06 2005-01-12 Omnifone Ltd MyFone
US7885945B2 (en) * 2005-08-25 2011-02-08 Microsoft Corporation Secure schema identifier generation
US20070174824A1 (en) * 2006-01-23 2007-07-26 Microsoft Corporation Techniques for generating and executing browser-hosted applications
US7788227B1 (en) * 2006-03-03 2010-08-31 Microsoft Corporation Schema signing and just-in-time installation
KR100835272B1 (ko) * 2006-11-07 2008-06-05 한국전자통신연구원 에스시에이 시스템에서의 컴포넌트 관리 장치 및 그 방법
TWI414954B (zh) * 2007-10-05 2013-11-11 Hon Hai Prec Ind Co Ltd 孔自動關聯方法及系統
US20090165021A1 (en) * 2007-10-23 2009-06-25 Microsoft Corporation Model-Based Composite Application Platform
US8751626B2 (en) * 2007-10-23 2014-06-10 Microsoft Corporation Model-based composite application platform
US8689203B2 (en) * 2008-02-19 2014-04-01 Microsoft Corporation Software update techniques based on ascertained identities
US20090248397A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Service Initiation Techniques
US8229980B2 (en) * 2008-04-30 2012-07-24 Microsoft Corporation State buckets
CN101354656B (zh) * 2008-09-12 2010-10-13 深圳市联软科技有限公司 一种安装包数据处理方法及系统
US8898660B2 (en) * 2008-11-25 2014-11-25 Fisher-Rosemount Systems, Inc. Systems and methods to provide customized release notes during a software system upgrade of a process control system
US8667483B2 (en) * 2009-03-25 2014-03-04 Microsoft Corporation Device dependent on-demand compiling and deployment of mobile applications
CN101945121B (zh) * 2010-08-17 2014-03-12 浙江大学城市学院 农产品协议流通服务系统中应用服务包的生成方法及装置
JP2012155478A (ja) * 2011-01-25 2012-08-16 Canon Inc 画像形成装置、装置、画像形成装置の制御方法、およびプログラム
US9098317B2 (en) * 2011-03-16 2015-08-04 Microsoft Technology Licensing Llc Optional retargeting of library references
CN102819453B (zh) * 2012-07-20 2015-11-18 腾讯科技(深圳)有限公司 信息获取的方法及信息获取平台
US11500980B2 (en) 2020-02-11 2022-11-15 International Business Machines Corporation Automated and auditable framework to control software component changes in an application build process
US11829766B2 (en) * 2021-05-04 2023-11-28 International Business Machines Corporation Compliance enforcement via service discovery analytics

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
JPH06105440B2 (ja) * 1990-03-08 1994-12-21 株式会社日立製作所 主メモリ管理方法
EP0501613A3 (en) * 1991-02-28 1993-09-01 Hewlett-Packard Company Heterogeneous software configuration management apparatus
US5619716A (en) * 1991-11-05 1997-04-08 Hitachi, Ltd. Information processing system having a configuration management system for managing the software of the information processing system
EP0541875A1 (en) * 1991-11-15 1993-05-19 International Business Machines Corporation Method for facilitating the configuration of programs
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US5432941A (en) * 1992-10-13 1995-07-11 Microsoft Corporation Method and system for dynamically configuring a software system using configuration groups
US5359730A (en) * 1992-12-04 1994-10-25 International Business Machines Corporation Method of operating a data processing system having a dynamic software update facility
US5408665A (en) * 1993-04-30 1995-04-18 Borland International, Inc. System and methods for linking compiled code with extended dictionary support
US5615400A (en) * 1993-06-30 1997-03-25 Apple Computer, Inc. System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers
US6110228A (en) * 1994-12-28 2000-08-29 International Business Machines Corporation Method and apparatus for software maintenance at remote nodes
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US5758165A (en) * 1995-07-07 1998-05-26 Sun Microsystems, Inc. Local area network and network operating system for formatting a client disk and installing a client operating system
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US6049671A (en) * 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US5974572A (en) * 1996-10-15 1999-10-26 Mercury Interactive Corporation Software system and methods for generating a load test using a server access log
GB9623298D0 (en) * 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US6314565B1 (en) * 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
FR2765702B1 (fr) * 1997-07-02 2001-07-06 Bull Sa Architecture de systeme de traitement de l'information
US5974470A (en) * 1997-09-03 1999-10-26 Chicago-Soft, Ltd. System for reducing conflicts among dynamic link library modules by aliasing modules
US6298443B1 (en) * 1998-04-24 2001-10-02 Dell Usa, L.P. Method and system for supplying a custom software image to a computer system
US6161051A (en) * 1998-05-08 2000-12-12 Rockwell Technologies, Llc System, method and article of manufacture for utilizing external models for enterprise wide control
US6151605A (en) * 1998-05-29 2000-11-21 Hewlett-Packard Company Generic configuration file processing library and executable
US6080207A (en) * 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6131192A (en) * 1998-06-18 2000-10-10 Microsoft Corporation Software installation
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6185734B1 (en) * 1998-07-21 2001-02-06 Hewlett-Packard Company Hierarchical registry structure for managing multiple versions of software components
US7143421B2 (en) * 1998-09-09 2006-11-28 Microsoft Corporation Highly componentized system architecture with a demand-loading namespace and programming model
US7073172B2 (en) * 1998-09-21 2006-07-04 Microsoft Corporation On demand patching of applications via software implementation installer mechanism
US6378128B1 (en) * 1998-10-08 2002-04-23 Microsoft Corporation System and method for dynamically modifying an install-set
US6029174A (en) * 1998-10-31 2000-02-22 M/A/R/C Inc. Apparatus and system for an adaptive data management architecture
US6434744B1 (en) * 1999-03-03 2002-08-13 Microsoft Corporation System and method for patching an installed application program
US6505204B1 (en) * 1999-03-31 2003-01-07 Internet Design Engineering Automation Center, Inc. Engineering services coordinating system and method therefor
JP4075203B2 (ja) * 1999-04-09 2008-04-16 株式会社日立製作所 データバックアップシステム
US6704797B1 (en) * 1999-06-10 2004-03-09 International Business Machines Corporation Method and system for distributing image-based content on the internet
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US6453039B1 (en) * 1999-06-16 2002-09-17 Cisco Systems, Inc. Method and apparatus for robust call routing
US6477703B1 (en) * 1999-06-29 2002-11-05 Hewlett-Packard Company Software patch selection tool
US6604238B1 (en) * 1999-07-26 2003-08-05 Hewlett-Packard Development Company, L.P. Method and system for installing software
US6449624B1 (en) * 1999-10-18 2002-09-10 Fisher-Rosemount Systems, Inc. Version control and audit trail in a process control system
US6560614B1 (en) * 1999-11-12 2003-05-06 Xosoft Inc. Nonintrusive update of files
US6658659B2 (en) * 1999-12-16 2003-12-02 Cisco Technology, Inc. Compatible version module loading
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
US7287259B2 (en) * 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system
AU2001294677A1 (en) * 2000-09-22 2002-04-02 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US20020174422A1 (en) * 2000-09-28 2002-11-21 The Regents Of The University Of California Software distribution system
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US20030023440A1 (en) * 2001-03-09 2003-01-30 Chu Wesley A. System, Method and computer program product for presenting large lists over a voice user interface utilizing dynamic segmentation and drill down selection
US6859923B2 (en) * 2001-05-09 2005-02-22 Sun Microsystems, Inc. Method, system, program, and data structures for using a database to apply patches to a computer system
US7093132B2 (en) * 2001-09-20 2006-08-15 International Business Machines Corporation Method and apparatus for protecting ongoing system integrity of a software product using digital signatures
US7133874B2 (en) * 2001-12-13 2006-11-07 Microsoft Corporation Prototyping model for components of a software program
US7428559B2 (en) * 2001-12-13 2008-09-23 Microsoft Corporation Versioning model for software program development
US20030121024A1 (en) * 2001-12-13 2003-06-26 Microsoft Corporation System and method for building a runtime image from components of a software program
WO2004081758A2 (en) * 2003-03-12 2004-09-23 Digex, Inc. System and method for maintaining installed software compliance with build standards
GB2403303B (en) * 2003-06-23 2005-08-17 Matsushita Electric Ind Co Ltd Embedded device with software registry
US7313792B2 (en) * 2003-09-08 2007-12-25 Microsoft Corporation Method and system for servicing software
US7765592B2 (en) * 2004-01-10 2010-07-27 Microsoft Corporation Changed file identification, software conflict resolution and unwanted file removal

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
Apache Ant 1.5 Manual. Apache Software Foundation. 2002
Apache Ant 1.5 Manual. Apache Software Foundation. 2002 *
Building and Deploying applications with ANT. Gendelman Michael.BEA. 2002
Building and Deploying applications with ANT. Gendelman Michael.BEA. 2002 *
Building Eclipse Instance Messenger. Zhong Chen.http://www.scs.carleton.ca/~arpwhite/d ocuments/honoursProjects/paul-chen-2003.pdf. 2003
Building Eclipse Instance Messenger. Zhong Chen.http://www.scs.carleton.ca/~arpwhite/d ocuments/honoursProjects/paul-chen-2003.pdf. 2003 *
JAR File Specification. http://web.archive.org/web/20030607203 613/http://java.sun.com/j2se/1.4.2/docs/gu ide/jar/jar.html. 2003
JAR File Specification. http://web.archive.org/web/20030607203 613/http://java.sun.com/j2se/1.4.2/docs/gu ide/jar/jar.html. 2003 *

Also Published As

Publication number Publication date
KR20050039533A (ko) 2005-04-29
US20050091259A1 (en) 2005-04-28
EP1528465A3 (en) 2007-09-05
JP2005129047A (ja) 2005-05-19
CN1664813A (zh) 2005-09-07
EP1528465A2 (en) 2005-05-04

Similar Documents

Publication Publication Date Title
CN100507904C (zh) 构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架
US7607126B2 (en) System and method for external override of annotations
US7530079B2 (en) Managing application customization
US9405529B2 (en) Designing and cross-configuring software
US9513938B2 (en) Virtual appliance integration with cloud management software
US8245223B2 (en) Networked deployment of multi-application customizations
US20170286083A1 (en) External feature provision for cloud applications
US20170286136A1 (en) External feature provision for a cloud application registry
Elrom et al. Neo blockchain and smart contracts
CN114651233A (zh) 即时容器
CN108182070B (zh) 定制安卓系统rom的方法、装置及终端设备
CN112596746B (zh) 应用安装包生成方法、装置、计算机设备和存储介质
US10489133B2 (en) Software platform providing deployment and configuration settings for a second platform
CN114816475A (zh) 一种嵌入式操作系统的更新方法、装置、设备和介质
JP6705482B2 (ja) システム構築パラメータ管理装置、システム構築パラメータ管理システム、システム構築パラメータ管理方法、及び、システム構築パラメータ管理プログラム
KR20180053872A (ko) 애플리케이션 변환 장치 및 방법
KR20190112491A (ko) 애플리케이션 변환 장치 및 방법
US11900091B2 (en) Extensible upgrade and modification as a service
Danial Installation
Solis et al. Namespaces and Assemblies
CN117667121A (zh) 一种文件系统资源预置方法及装置
Penberthy et al. AWS Tools for. NET
Johnson et al. Using Xamarin Forms
Telang Setting Up Your Development Environment
Stevanovic et al. Locating the Libraries

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090701

Termination date: 20120921