CN102246144A - 用于在计算机平台上安装程序的方法和装置 - Google Patents

用于在计算机平台上安装程序的方法和装置 Download PDF

Info

Publication number
CN102246144A
CN102246144A CN2009801498543A CN200980149854A CN102246144A CN 102246144 A CN102246144 A CN 102246144A CN 2009801498543 A CN2009801498543 A CN 2009801498543A CN 200980149854 A CN200980149854 A CN 200980149854A CN 102246144 A CN102246144 A CN 102246144A
Authority
CN
China
Prior art keywords
computer program
erector
software
card module
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2009801498543A
Other languages
English (en)
Inventor
R·克莱纳
T·戈弗
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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN102246144A publication Critical patent/CN102246144A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • 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/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

根据本发明的示例实施方式,提供了软件安装器框架模块以及多个安装器插件模块,该软件安装器框架模块提供了安装接口以使得所获得的计算机程序被安装到计算机平台上,并且这些安装器插件模块作为用于将被安装的每种类型的计算机程序的至少一个安装器插件模块,每个安装器插件模块设置为使得在使用时能够向计算机平台安装所涉及的类型的计算机程序和/或从计算机平台卸载其所涉及的类型的计算机程序。在使用时,在软件安装器框架模块处经由安装接口接收与特定计算机程序相关的安装或卸载命令,并且该软件安装器框架模块根据该特定计算机程序的类型而选择该多个安装器插件模块之一,然后所选择的安装器插件模块负责将该特定计算机程序安装到计算机平台或从计算机平台卸载该特定计算机程序。

Description

用于在计算机平台上安装程序的方法和装置
技术领域
本发明的示例涉及一种用于在计算机平台上安装程序的方法和装置,并且特别地涉及其中能够使用安装器框架来安装程序的这种方法和装置。
背景技术
一般地,在计算机系统中,可以在系统上安装不同类型的可执行代码,并且依赖于操作系统类型,根据可执行代码本身的类型来确定用于该可执行文件的安装过程。
发明内容
权利要求书中阐明了本发明的各种示例。
根据本发明的第一方面,提供了一种装置,包括:a)软件安装器框架模块,其提供安装接口以使得向计算机平台上安装所获得的计算机程序;以及b)多个安装器插件模块,其作为用于将被安装的一种或多种类型的计算机程序中的每一种的至少一个安装器插件模块,每个安装器插件模块设置为使得在使用时能够向计算机平台安装其所涉及的类型的计算机程序、和/或从计算机平台卸载其所涉及的类型的计算机程序;其中在使用时,在软件安装器框架模块处经由安装接口接收与特定计算机程序相关的安装或卸载命令,并且该软件安装器框架模块根据该特定计算机程序的类型而选择该多个安装器插件模块之一,然后所选择的安装器插件模块负责向计算机平台安装该特定计算机程序、或从计算机平台卸载该特定计算机程序。
根据本发明的第二方面,提供了一种装置,包括:安装器插件模块,用于与根据前述权利要求中任一项所述的装置一起使用,所述安装器插件模块设置为在使用时接收来自软件安装器框架模块的安装或卸载命令,以及根据所接收的命令而安装或卸载特定类型的特定计算机程序,其中该安装器插件模块设置为安装或卸载单一特定类型的计算机程序。
根据本发明的第三方面,提供了一种装置,包括:至少一个处理器;以及包括计算机程序代码的至少一个存储器,该至少一个存储器和该计算机程序代码配置为,与该至少一个处理器一起使得该装置至少执行以下操作:a)在由提供在该装置上的软件安装器框架模块提供的安装接口处接收与特定计算机程序相关的安装或卸载命令;b)根据该特定计算机程序的类型而选择多个安装器插件模块之一,该安装器插件模块作为用于将被安装的一种或多种类型的计算机程序中的每一种的至少一个安装器插件模块,每个安装器插件模块设置为使得在使用时能够向该装置安装其所涉及的类型的计算机程序、和/或从该装置卸载其所涉及的类型的计算机程序;以及c)然后所选择的安装器插件模块负责将该特定计算机程序安装到该装置或从该装置卸载该特定计算机程序。
根据本发明的第四方面,提供了一种装置,包括:至少一个处理器;以及包括计算机程序代码的至少一个存储器,该至少一个存储器和该计算机程序代码配置为,与该至少一个处理器一起使得该装置至少执行以下操作:操作安装器插件模块,该安装器插件模块设置为在使用时接收来自软件安装器框架模块的安装或卸载命令,以及根据所接收的命令而安装或卸载特定类型的特定计算机程序,其中该安装器插件模块设置为安装或卸载单一特定类型的计算机程序。
根据本发明的第五方面,提供了一种方法,包括:a)在由提供在计算机平台上的软件安装器框架模块提供的安装接口处接收与特定计算机程序相关的安装或卸载命令;b)根据该特定计算机程序的类型而选择多个安装器插件模块之一,该安装器插件模块作为用于将被安装的一种或多种类型的计算机程序中的每一种的至少一个安装器插件模块,每个安装器插件模块设置为使得在使用时能够向计算机平台安装其所涉及的类型的计算机程序、和/或从计算机平台卸载其所涉及的类型的计算机程序;以及c)然后所选择的安装器插件模块负责向计算机平台安装该特定计算机程序、或从计算机平台卸载该特定计算机程序。
根据本发明的第六方面,提供了一种方法,包括:操作安装器插件模块,该安装器插件模块设置为在使用时接收来自软件安装器框架模块的安装或卸载命令,以及根据所接收的命令而安装或卸载特定类型的特定计算机程序,其中该安装器插件模块设置为安装或卸载单一特定类型的计算机程序。
根据本发明的第七方面,提供了一种计算机程序或一套计算机程序,设置为使得当由计算机平台执行时其使得该平台执行以上方面中的任一方面的方法。此外,还提供了一种计算机可读介质,存储有这种计算机程序或一套计算机程序中的至少一个。
附图说明
为了更全面地理解本发明的示例实施方式,现在参考结合附图而进行的以下描述,其中:
图1是图示出可以形成例如本发明实施方式的计算平台的智能电话的典型硬件架构的框图;
图2是本发明第二示例实施方式的组件的框图;
图3是示出在本发明第二示例实施方式中执行的步骤和相互通信的过程示图;
图4是示出图2的软件组件注册(SCR)组件的进一步细节的框图;
图5是示出图2的软件安装框架(SIF)组件的进一步细节的框图;
图6是图示出如何能够在制造之后将附加安装器插件安装在计算机系统上的过程示图;
图7是图示出存储用于第二示例实施方式的代码模块的计算机可读介质的示图。
具体实施方式
现在将参考附图描述若干示例实施方式。
很多现代电子设备都使用操作系统。现代操作系统可见于包括集成电路的任何设备上,如个人计算机、互联网服务器、移动电话、音乐播放器、路由器、交换机、无线接入点、网络存储设备、游戏控制台、数码相机、DVD播放器、缝纫机和望远镜。在一个示例中,操作系统是管理对设备资源的共享并为编程人员提供访问那些资源的接口的软件。在一个示例中,操作系统处理系统数据和用户输入,并且通过分配和管理任务和内部系统资源作为服务来对系统上的程序和用户进行响应。在一个示例中,在最基础的水平上,操作系统执行如下任务,诸如控制和分配存储器、对系统请求设置优先级、控制输入和输出设备、实现联网以及管理文件。在一个示例中,操作系统实质上是使得更高级别应用能够访问设备硬件的接口。
使用操作系统的现代电子设备的很多示例具有类似的物理硬件架构作为其基础,该物理硬件架构在某些示例中利用如下应用处理器,该应用处理器配备有存储设备操作系统的合适的存储器以及确定设备功能性的较高级别应用程序。在某些示例中,操作系统和其他程序通常存储在非易失性只读存储器中,并且首先加载操作系统以允许应用处理能够在随后运行更高级别应用程序。利用操作系统的一种非常常见的现代电子设备是智能电话,在图1中示出了用于智能电话的示例通用硬件架构。
参考图1,示例智能电话10包括用以执行电话功能的硬件,以及应用处理器和用以使得该电话能够具有智能电话可能希望的其他功能的对应支持硬件,这些其他功能诸如消息传送、日历、文字处理功能等。在图1的示例中,电话硬件由RF处理器102来表示,RF处理器102提供RF信号给天线126,天线126用于发送电话信号和从其进行接收。此外,在这一示例中,提供了基带处理器104,基带处理器104向RF处理器102提供信号并从RF处理器102接收信号。在这一示例中,基带处理器104还与订户身份模块106进行交互,正如本领域中公知的那样。智能电话10的电话子系统超出了本说明书的范围。
在这一示例中,还通常提供了显示器116和键盘118。在这一示例中,它们由应用处理器108控制,尽管也可以使用单一芯片解决方案,该应用处理器108通常是(但并非总是)与基带处理器104和RF处理器102分立的集成电路。在这一示例中,提供了电源和音频控制器120用以从电池(未示出)向电话子系统、应用处理器和其他硬件供电。此外,在这一示例中,电源和音频控制器120还控制来自麦克风122的输入和经由扬声器124的音频输出。
在这一示例中,为了使应用处理器108进行操作,通常提供各种不同类型的存储器。首先,在这一示例中,可以为应用处理器108配备某个随机存取存储器(RAM)112,其中可以按照意愿向RAM 112中写入数据和程序代码以及从中读取数据和程序代码。在这一示例中,放置在RAM中任何地方的代码都能够由应用处理器108从RAM执行。
此外,在这一示例中提供了分立的用户存储器110,用户存储器110用于存储用户数据,诸如用户应用程序(通常是确定设备功能性的更高层应用程序)以及用户数据文件等。
如上所述,在这一示例中,为了使应用处理器108进行操作,操作系统是必需的,首先只要智能电话10一开机,就必须启动操作系统。在这一示例中,操作系统代码存储在只读存储器中,并且在这一示例中,只读存储器是NAND闪速ROM 114。在这一示例中,ROM将存储必需的操作系统组件以使设备10进行操作,但是还可以存储其他软件程序,诸如应用程序等,特别是对于该设备而言强制性的那些应用程序,诸如在智能电话的情况下为通信应用等。在这一示例中,它们将通常是由设备制造商在首次销售该电话时与该智能电话绑定的应用。由用户添加到智能电话的进一步应用将通常存储在例如用户存储器110中。
如上所述,在示例计算机系统(包括智能电话10)中,可以在系统上安装不同类型的可执行代码,并且根据以往历史,依赖于操作系统类型,根据可执行代码本身的类型来确定用于该可执行文件的安装过程。例如,依赖于软件需求和目标递送方法,这种软件可以使用各种方法和编程语言来开发。另一方面,操作系统的用户一般不关心所述软件的开发方法,但他们的确会以统一的方式在其系统上评价列举、执行和管理软件组件的能力。
由于软件依赖于其开发和递送方法(例如,Java MIDlets、JavaScript Widgets、MS Windows native、Symbian OS native具有不同的开发和递送方法)而显著不同,对于操作系统而言,提供统一视图同时又保留应用多样性是一种挑战。同样,存在保留系统安全性的挑战,例如允许安装具有较低可信级别的JavaScript Widgets,而不干扰具有较高可信级别的本地应用的安全性模型。
例如,在Microsoft Windows Mobile设备中,本地应用(nativeapplication)(即具体地针对Windows Mobile平台而开发的应用)的安装是使用本地安装器模块来执行的。诸如Java MIDlets之类的非本地代码(即并非具体地针对该平台而开发的、但跨不同平台通用的代码)使用分立的安装管理器实体。此外,这种可执行代码一般不在中央注册器中注册,从而使得设备不可能向用户提供允许用户可以查看在设备上安装的所有应用和其他可执行代码的单一接口。Windows Mobile解决方案需要针对每种软件类型开发若干应用和设备管理器。这负面地影响了用户的便利性(用户需要该便利性来使用多个应用以完成相同的任务)以及对提供受管理的执行环境和安装器(诸如Shockwave Flash、游戏引擎等)的第三方的吸引力。
使用OS并且具体地使用Red Hat Package Manager(RPM)来执行提供对于设备的普通安装途径的一种操作系统是Linux。RPM为用户提供了统一方式来将程序安装到Linux设备上,并且还提供了包含所安装的程序的所有元信息的数据库和用于索引目的的多个数据库。该数据库用于保持对用户(使用RPM)安装程序包时所改变和创建的所有文件的跟踪,从而使得用户能够在以后(经由RPM)逆转这些改变并移除该程序包。
除了提供RPM数据库之外,RPM还提供用于分发可执行代码给Linux设备的分发数据包格式,而不论代码类型如何。因此,任何类型的可执行代码都可以使用RPM格式来封装,然后安装在Linux设备上。RPM数据库提供了关于已经安装了什么程序的记录,并且如果需要则允许容易的卸载。
然而,尽管RPM可以提供统一的方式来将程序安装到设备上,但这种非常的统一性意味着其以相同方式对待所有代码,并且特别是在正在被安装的软件的安全性需求方面。例如,本地软件、JavaMIDlets或者游戏模块可能全都需要在安装时进行不同的安全性检查和注册,但Linux解决方案仅提供了受限于其脚本语言的操作。已经经历了大量测试和开发的本地应用比尚未被验证为效力如此高的通用代码可能能够访问更多系统功能和硬件。此外,已经缩短了开发时间从而使得还没有可能进行大量测试和安全性验证的本地代码(例如游戏代码等)不应当与已经进行了大量测试的本地代码相同对待。然而,通过提供普通安装途径,RPM通常忽略了诸如此类的安全性需求。
现在将描述本发明的第一示例实施方式。
更特别地,第一示例实施方式提供了用于不同类型的计算机程序的安装的设置,这些计算机程序诸如应用或其他可执行代码,诸如JavaScript Widgets、Java MIDLets等。在第一示例实施方式中,提供了软件安装器框架模块,该软件安装器框架模块提供了单一普通安装接口,用户和/或其他应用能够利用该接口进行对接,从而使得计算机程序能够被安装或从该平台卸载。在第一示例实施方式中,通过提供这种单一普通接口,提供了到该平台的统一安装途径。
此外,在第一示例实施方式中,为了防止由于以相同方式对待每一项可执行代码而引起的安全性问题,无论是经高度测试的本地代码,还是未经测试的爱好者代码,本发明的第一示例实施方式提供的是,实际安装功能是由多个插件安装器模块提供的,例如针对可以安装的每种类型的计算机程序有至少一个插件安装器模块。例如,为每个安装器配备与其正在被安装的代码类型有关的适当安全性许可。例如,应当进行高度测试且具有更高可信度的用于本地代码的安装器,就其能够访问的硬件和文件而言可以具有更多的安全性许可。相反,例如,用于具有较低可信度的一类游戏文件的安装器具有有限的安全性许可,并且可以例如仅被允许将软件安装到某些目录,和/或联系某些特定游戏服务器,和/或访问该计算平台上的某些硬件或软件资源。在第一示例实施方式中,通过依赖于文件类型而将安装责任划分为不同的安装器插件,从而能够保护计算平台的安全性和可靠性。
在第一示例实施方式中,提供了用于将不同类型的计算机程序安装到计算机平台上的系统。更特别地,第一示例实施方式的系统包括软件安装器框架模块,该软件安装器框架模块提供安装接口以使得所获得的计算机程序被安装。该系统还包括多个安装器插件模块,其例如为用于将被安装的每种类型的计算机程序的至少一个安装器插件模块。在第一示例实施方式中,每个安装器插件模块设置为使得在使用时其能够安装和/或卸载所涉及的类型的计算机程序。视情况,向计算机平台安装或者从计算机平台卸载。
为了使得安装或卸载发生,在第一示例实施方式中,在软件安装器框架模块处经由安装接口接收与特定计算机程序相关的安装或卸载命令,然后该软件安装器框架模块选择该多个安装器插件模块之一来执行安装或卸载。在第一示例实施方式中,插件模块的选择依赖于该特定计算机程序的类型,例如基于程序的多用途互联网邮件扩展(MIME)类型来进行。在该示例实施方式中,一旦选定,则所选择的安装器插件模块就经历将该特定计算机程序安装到计算机平台,或从计算机平台卸载该特定计算机程序。利用这种设置,第一示例实施方式提供的是,提供对于计算平台的单一安装途径,同时维持平台的安全性和可靠性。
在第一示例实施方式中,针对每种软件类型提供了单一插件。在其他示例中,可以针对每种软件类型提供多个插件。然而,在第一示例实施方式中,通过针对每种类型提供单一插件,简化了当要执行新安装时的插件选择过程,因为随后仅需要确定要安装的软件类型,然后要使用哪个插件立刻就很明显了。这样就不必非要从可用于特定软件类型的安装器插件的子集中进行进一步选择了。
在第一示例实施方式中,该系统进一步包括软件组件注册模块,其具有目前安装在计算平台上的、不论何种类型的计算机程序的数据库。这提供了例如能够记录安装在平台上的所有计算机程序的单一注册,从而使得用户以及其他程序可以更容易地访问这些程序。
在第一示例实施方式中,软件组件注册模块在其数据库中包括关于在计算机平台上存在的安装器插件模块的数据,并且软件安装器框架模块在使用时从软件组件注册模块获得关于要安装或卸载的计算机程序类型的、该多个安装器插件模块之一的插件ID。由此,在第一示例实施方式中,即使是安装器插件模块也被注册在软件组件注册中,并且软件安装器框架通过在注册中查询所安装的插件列表来选择要使用的插件。
第一示例实施方式还包括应用可视化模块,设置为在使用时向用户显示安装在计算平台上的计算机程序。考虑到这一点,在该示例中,应用可视化模块与软件组件注册模块交互以获得关于用于显示的所安装的计算机程序的信息。这可以实现例如使用单一应用来向用户显示安装在平台上的所有计算机程序。此外,在该示例中,用户还可以从显示器选择要运行的程序,从而提供集成的可视化和执行显示。
在第一示例实施方式中,进一步提供了软件事务服务模块,其在使用时记录其中存储了所安装的计算机程序的计算平台的文件系统上的事务。这可以实现例如记录由所选择的安装器插件模块所进行的特定计算机程序的安装过程。在该示例中,记录安装过程使得在该过程期间发生任何错误或电源中断的情况下可以回滚该过程。另外,在示例性实施方式中,在需要时,安装过程的记录由安装器插件模块用于卸载或至少部分地卸载特定计算机程序。
在第一示例实施方式中,提供了与安装器插件模块相关联的一个或多个安全性策略。在第一示例实施方式中,安全性策略包括限定已经由特定的安装器插件模块安装的计算机程序可以访问计算平台的哪些资源的数据。例如,用于游戏程序或脚本程序的安装器具有如下安全性策略,该安全性策略指定了由安装器安装的计算机程序可以访问的计算平台的较少资源。例如,安全性策略可以限定设备上的不能访问的存储区域,例如特定驱动器或目录。此外,安全性策略可以限定不能访问的特定资源或服务器。例如,电话资源,或者其他联网资源(诸如LAN端口,或短距离无线连接),可能是不可访问的。计算平台的任何资源,无论是硬件、软件还是与通信有关的资源,都可以是安全性策略的主体。
在一个示例中,可以肯定地限定安全性策略,即其限定由特定插件安装的计算机程序可以访问哪些资源。在另一示例中,可以否定地限定安全性策略,即其限定由特定插件安装的计算机程序不能访问哪些资源。在一个示例中,与更可信的类型的计算机程序有关的安装器插件模块,诸如已经过严格测试的本地应用,将具有允许访问更多计算平台资源的安全性策略。相反,在一个示例中,与更不可信的类型的计算机程序有关的安装器插件模块,诸如游戏程序或脚本程序,将具有允许访问更少资源的安全性策略。
因此,在第一示例实施方式中,提供给计算机程序的对计算机平台资源的访问级别由与安装该计算机程序的安装器插件模块相关联的安全性策略来限定。以这种方式,可以维持计算平台的安全性。
现在将参考图2-图6来详细描述第二示例实施方式。然而,在着手开始详细描述第二示例实施方式之前,将给出对第二示例实施方式的元件及其操作和交互的简要概述。
本发明的第二示例实施方式提供了一系列模块,每个模块都执行特定功能。例如,模块在提供本发明的操作的环境的计算平台上运行。在第二示例实施方式中,该计算平台是上述智能电话10,但在其他示例实施方式中,可以使用其他类型的计算设备,诸如笔记本或台式计算机、视频游戏控制台、诸如MP3播放器或机顶盒之类的A/V设备。例如,其上能够安装诸如应用或其他可执行代码之类的程序的任何计算设备都可以用作示例实施方式的计算平台。
第二示例实施方式引入了设计为管理跨操作系统的普通软件生命周期的组件框架。例如,通过识别对于OS上的所有软件而言共有的一组服务和性质,该示例实施方式可以实现统一的管理和使用,同时仍然允许多样性。
图2示出了第二示例实施方式的主要实体和交互。形成第二示例实施方式的主要实体以带有灰色背景的黑体字示出,而参与该示例实施方式的其他OS组件以白色背景示出。
更具体地,如图2所示,该示例实施方式利用若干现有的操作系统实体和应用,诸如互联网浏览器216、应用管理器218、设备管理器220以及文件类型检测模块214。除了其他功能,互联网浏览器216还允许例如下载和安装新软件组件。该示例实施方式还允许浏览器无缝地安装新软件组件类型,而不需要进行任何代码改变。例如,通过首先检测文件类型,然后识别用于该文件的适当处理程序,浏览器能够在不需要提供任何特殊的处理代码的情况下将安装委派给软件安装器框架(下面将描述)。
在本第二示例实施方式中,文件类型检测模块214提供用于确立文件类型的通用机制。例如,该检测模块通常使用MIME标准来确定MIME文件类型,正如本领域中公知的那样。这样,这一组件及其与互联网浏览器的交互对于操作系统而言是共有的。
在示例实施方式中,应用管理器218列出所安装的所有软件,并且使得用户可以移除特定软件包。在该示例中,通过使用统一的软件组件注册(下面将进一步描述),可以针对OS开发单一应用管理器,而不是具有用于每个组件类型的若干应用管理器。此外,在该示例中,通过使用SIF(软件安装器框架),单一应用管理器能够支持新软件类型而不需要进行用于卸载的任何特殊新逻辑。
在示例性实施方式中,设备管理器设施220可以实现由远程命令或由预定调度对软件进行卸载和安装。与应用管理器类似,在该示例中,在OS中可以存在支持数量不受限的组件类型的单一设备管理器。
本示例实施方式的主要元件是软件安装器框架(SIF)202和相关联的插件206。通过示例的方式,图2图示出三个插件模块,为:用于本地软件的插件206a,其用于安装计算平台本地的软件;JavaMIDlets安装器插件206b,用于处理Java MIDlets的安装和卸载;以及JavaScript Widgets,用于处理JavaScript Widgets的安装和卸载。还可以提供例如用于其他可执行代码类型的其他插件,这些插件可以安装在制造之后的设备上。稍后,将描述针对用于不同代码类型的附加安装器插件的安装过程。
在示例实施方式中,软件安装器框架模块202(此后称为SIF)提供用于软件安装管理的共有且可扩展的接口。其使用软件组件注册(下面将描述)来选择用于特定操作的适当插件。插件用作分立应用,并且在安装进程期间实现其自身与用户的交互。在一个示例中,具有不同用户接口的若干插件可以针对相同软件类型而共存(例如无声的GUI本地安装器)。然而,在另一示例中,针对每种软件类型提供单一插件,因为这简化了当要执行新安装时的插件选择过程。在本第二示例实施方式中,SIF使用可扩展的插件框架来使得可以无缝且安全地添加新安装器实现。该示例实施方式可以实现在系统生命周期期间递送和移除新SIF插件。然后,中央SIF模块关注于对所有软件而言共有的性质和接口,同时将安装和卸载操作委派给插件。由此,对于任何特定代码类型,在该示例中,该代码类型所需要的通常安装和卸载操作由该插件而不是由SIF模块执行。
此外,第二示例实施方式还提供了共有软件管理服务模块210。这提供了多个软件事务服务(STS),该STS可以实现已取消的或被不期望地放弃的软件管理操作的原子逆转。例如,STS可以实现共有的事务管理,同时隔离由不同安装器进行的操作。例如,这防止了可信度较低的安装器(诸如免费的Perl安装器)以可信度较高的安装器(例如Java MIDlet)的名义注册操作。
例如,软件事务服务提供在非日志操作系统文件系统之上的事务。安装器(SIF插件)能够开始例如新事务,并且在已取消的安装/卸载/升级的情况下原子地将其回滚。通过示例的方式,事务中的典型操作可以包括“add file X,remove file Y,add a temporary file Z”(添加文件X,移除文件Y,添加临时文件Z)。在这种情况下,事务的回滚可以是例如“delete file X,restore file Y,delete file Z”(删除文件X,恢复文件Y,删除文件Z)。如果进行该事务,则操作将是删除文件Z。通常,例如,STS的实现可以基于现有的软件安装(SWI)服务,其中通常针对每个修改后的驱动器维持集中化的一组日志文件。
示例实施方式的另外的组件是软件组件注册(SCR)204。在示例实施方式中,这一组件提供用于获取和管理OS中所安装的所有软件的状态的单一点。例如,其提供了对于所有软件而言共有的性质(诸如名称和供应商)和用于记录对于一种环境而言独有的性质(诸如Java安全性域)的机制。在示例实施方式中,这一组件提供安全性模型以便可以实现高度可信的软件安装器(即SIF插件)和可信度更低的软件安装器的共存,从而能够实现跨软件类型的不同上市时间(time-to-market)路径和能力。例如,第三方可以开发游戏引擎作为具有有限能力的SIF插件,该插件将不需要像本地软件安装器那样严密的检查。前一种插件仅能够安装例如显示图形和联系游戏服务器的软件,而后一种插件在其能够递送的软件方面没有限制。稍后将给出SCR的进一步细节及其操作。
最后,在第二示例实施方式中要提及的最后一个组件是应用执行和可视化组件212。这一OS组件例如显示(通常以图形形式)用户能够执行的应用的列表并提供用于所述执行的机制。在WindowsOS中,例如,这一组件(也称为Windows Explorer)管理桌面和开始菜单图标。在Linux中,例如,这是Window子系统(例如KDE)的一部分。在Symbian OS中,例如,其是应用架构的一部分。在本示例实施方式中,因为存在中央软件注册器SCR 204,其于是可以具有单个这种组件212,例如,该组件212与SCR 204交互以便能够显示和无缝地运行可执行应用,而不论用于将应用递送给设备的方法如何,进一步地,也不论它们是以本地方式运行还是使用受管理的执行环境(诸如Java虚拟机)来运行。
在本第二示例实施方式中,提供了对应于以上组件的软件代码模块,当运行于处理器上时,这些软件代码模块提供组件功能性。正如在本示例实施方式中,当计算平台是智能电话10时,在本示例实施方式中,代码模块通常存储在NAND闪速ROM 114中,正如在图7中更详细示出的那样。特别地,图7图示出对应于在智能电话10的NAND闪速ROM 114上存储的本示例实施方式的上述组件的代码模块。
根据图4,第二示例实施方式的SCR的进一步细节将变得明显,图4示出了由SCR提供的各功能的层。考虑到这一点,SCR负责管理以下实体的生命周期:
●软件组件
●安装环境和所支持的软件类型
●应用
在第二示例实施方式中,软件组件由应用管理器、设备管理器以及除此之外,SIF插件,即安装器来管理和显示,而安装环境由本地软件安装器208来管理。第二示例实施方式的SCR设计必须满足针对不同类别的客户端的无缝支持,同时谨记性能和并发性需求,以及安全措施(下面将描述)。
在第二示例实施方式中,SCR本身被分离为具有明确的多组功能性的多层:
●SQLLite层2049例如提供数据库(DB)管理并且使得DB和日志文件可以由句柄供给。
●数据层2048是围绕SQLLite API的SCR封装器。例如,这一分立的层使得如果需要就可以切换到不同的DB应用或API。如果SQLLite C API仍然证明对于性能或安全性需求而言是不足的,则存在这种风险。数据层还通过进行SQL语句的分立编译和参数捆绑来保护其不受SQL注入攻击。
●SQL转换层2046将SCR API调用转换为例如SQL查询。在第二示例实施方式中,其包括关于组件中的SCR实体的大部分认知。在第二示例实施方式中,其具有去往数据层的、使得其可以将SQL语句作为字符串传递的瘦接口(thin interface)。
●安全性层2044实现了所需的大部分安全性措施,下面将进行描述。它们包括检查例如针对正在被修改的数据的调用过程的身份。
●会话层2042实现了服务器侧上的常规OS客户端-服务器维护。
在第二示例实施方式中,为了使SCR运转,必须存在SCR数据库2043。由于不能假定设备上的任何预先封装的数据库,因此例如在示例实施方式中,其应当在必要时被创建。为实现这一点,在第二示例实施方式中,提供SCR辅助器模块2045来创建DB(如果其没有找到一个DB的话),这在通常环境下应当在例如第一次安装、卸载或所安装的程序文件夹访问时发生。
在第二示例实施方式中,SCR的安全性是非常重要的。对SCR的威胁可能来自不同的攻击载体(vector)。以下是非穷举的列表:
●滥用SCR API。
○SQL注入。
○不根据API的预定目的使用它们。
●直接修改数据库。这一类别适用于具有AllFiles能力的过程,因为在第二示例实施方式中假定DB至少是通过私有目录来保护的。冷闪光(cold-flash)攻击也落入这一类别。
○对DB文件进行访问和写入。
○对由DB创建的临时日志文件进行访问和写入。
在第二示例实施方式中,上面的第一攻击载体需要SCR处的监管,并且涉及若干安全性措施。
第二攻击载体适用于第二示例实施方式,而不论修改的特定类型如何,并且该第二攻击载体被作为整体来对抗——即不通过SCR的对DB的修改例如被阻止或至少被检测到。
在第二示例实施方式中,为对抗对SCR的威胁,SCR实现多个安全性措施(编号为“SM”),正如下面仅通过示例的方式以列表形式描述的那样。下面的措施涉及最一般地适用于第二示例实施方式的那一些。依赖于所使用的特定操作系统,在其他示例实施方式中可能需要其他措施。另外,在某些示例实施方式中,并非所有的措施都需要同时或者实际上被实现或使用。在下面的示例中,缩写TCB是指可信的计算基础,关于有权访问硬件的操作系统的最可信的组件的Symbian OS项,这仅通过示例的方式使用。Symbian TCB类似于可以用于其他示例实施方式中的其他操作系统的内核。
SM01:SCR API都不允许SQL参数。此外,SCR设计为从API抽取SQL层,并且在创建SQL查询之前在所有参数上添加逃逸层(escaping layer)。
SM02:SQLLite客户端API在处理参数之前准备和编译SQL语句。
SM03:SCR API:可以仅通过n组件匹配安装环境来添加、更新或删除组件和共有SCR性质。通过将客户端的SID与所注册的用于SCR中的组件的软件类型的安装器的SID相比较来进行监管。
SM04:SCR API:可以通过组件匹配安装环境或对应的执行环境(针对受管理的软件,例如JVM)来更新、添加或删除组件性质。设备上的其他可执行文件都不能执行这些操作。监管以与SM03中类似的方式来来进行。
SM05:SCR API:针对组件的文件注册可以仅由与SM04中相同的实体来进行。进行相同的监管机制。
SM06:SCR API:可以仅由本地软件安装器本地SWI 208来更新、添加或删除软件类型和安装环境。基于SWI UID来进行监管。
SM07:SWI:在安装包中的预定义资源文件中注册所声明的MIME类型的列表。资源文件的目标位置不限。如果递送了SIF插件并且文件不存在,则SWI将拒绝该安装。如果文件存在,则SWI将解析所声明的MIME类型,并且检查它们是否注册到SCR。如果为“否”,则SWI将该新类型和环境注册到SCR,并且将如同通常那样继续进行安装。如果为“是”,则SWI将检查已经声明了MIME类型的安装环境的UID和可信级别。将正在被安装的软件包称为软件包A,将用于MIME类型的该组现有安装环境称为软件包packagesB1,...Bn,其中软件包B1是默认安装环境(即没有模糊的,即特殊的选项)。当且仅当以下条件之一为真,SWI将允许安装:
1.A为软件包Bi的正确SA/PU并且具有与Bi相同的模糊选项。(允许对本地软件的SA/PU升级覆盖原始文件,并且不能单独卸载)
2.A是软件包Bi的正确SP并且具有与Bi不同的模糊选项。(对本地软件的SP升级不允许覆盖原始文件,但允许单独卸载)
3.A的可信度不小于软件包Bi并且A具有与Bi相同的模糊选项。
4.A的可信度不小于软件包Bi并且A具有与B1,...Bn中所有软件包不同的模糊选项。(这意味着所有安装环境至少与默认的那个一样可信)
如果安装被同意,则SWI将更新SCR处的所支持的软件类型和表以及安装环境的列表。除上面的规则之外,SWI不允许添加注册SISMIME类型的安装器,即不允许用于本地软件的、进入市场后的安装器。
SM08:SCR API:如果用于另一软件类型的安装器已经声明了同一文件的话,安装器不能声明其软件包拥有文件。相同软件类型的不同安装器可以在SCR中声明同一文件。这种检查应用于/private下和/sys下的文件,这是因为公共数据文件不具有OS级别处的任何保护,并且允许其注册可以允许较低可信度的安装器阻断来自较高可信度的安装器的操作。这种检验由SCR在将更新提交给DB之前进行。
SM09.1:另外,防止拒绝关于SWI操作的服务的另一措施是,在SWI操作中不考虑属于其他组件的注册。这意味着SWI在尝试检查所有权和依赖关系时仅查看登记到本地组件的文件。SWI将这些文件处理为“无主的”,即不具有所有者,并且将调用对应的UI通知。
SM10:SCR:DB中的可写事务在整个安装/升级/卸载过程中不锁定DB用于进行并发读取。在执行期间,DB被锁定用于读取。
SM11:STS是维持TCB(\sys)区域中的日志的可信计算基础(TCB——操作系统的核心,在非Symbian OS中通常称为内核)过程。
SM12:对于每个即将到来的日志请求,STS验证数据加笼(datacaging)规则。其防止过程注册违反私有数据笼(data cage)的操作(例如删除不对应于SID的文件),并且防止注册\sys目录中的用于非TCB过程的操作。
SM13:SIF在分立的过程中实现,并且SIF API通过客户端-服务器边界。
SM14:SIF将其调用者的安全性上下文传递给SIF插件,使得它们可以基于SIF的调用方来进行安全性判定。
SM15:DB文件被保持在/sys目录树下的TCB受保护的目录中。小的TCB过程,SCR辅助器,以可写模式加载文件并通过句柄将其传递给SCR。SCR的身份由SCR辅助器经由ProtServ能力和SID(参见SM16)来建立。这防止了具有AllFiles能力的(即用以访问任何文件的能力)文件直接修改DB文件。
SM16.1:以客户端模式使用SQLLite。这防止了对于SCR DB的文件句柄逃逸出该过程。仅TCB过程和SCR能够在所有时间访问数据库。
SM16.2:SCR辅助器局部地创建DB日志文件并且通过句柄将其传递给SCR,SCR将其传递给SQLLite库。围绕SQLLite库开发特殊的封装器,其能够实现这一功能性,并且防止SQLLite在工作目录中动态地创建这种文件。这防止了非TCB过程(除SCR之外)修改DB日志文件。
SM17:SCR不直接存储任何明显的数据。其仅允许安装器在DB中注册用于控制器的路径。这避免了如下情况,即恶意地/不利地写入的安装器获得权限访问属于不同软件类型的控制器,这是因为即使该安装器得到去往明显文件的路径,其仍将需要通过常规的数据加笼检查。
SM18:SCR不允许安装器过程注册用于如下软件组件的文件,其中文件名对应于该安装器不允许更新的受保护的目录。
SM19:SIF实现为插件框架,其中每个SIF插件根据其被赋予的能力而受限。例如,Java安装器能够实现其安全性模型,但其限于该安装器本身具有的能力和数据加笼规则。
SM20:当选择SIF插件时,SIF依靠文件类型MIME识别但不依靠直接由插件报告的信息。
SM21:SCR API允许应用管理器可以显示用于应用的软件类型(例如用于MIDLets的特定图标)。这允许用户在选择要卸载的软件时可以区分应用。
SM22-SCR API:仅针对已注册的安装器或执行环境允许事务管理。
SM23-在安装期间进行任何检查时,SWI不考虑来自其他软件类型的组件。
SM24:SCR具有ProtServ能力和保留的SID。其不能经由ROM存根(stub)更新。这提供了两层保护。SWI将不会允许任何软件包遮蔽SCR,除非其是由制造商具体地针对该目的而签署的。具有保留的SID将防止没有ACS发布者ID的第三方签署SCR更新。另外,具有ProtServ能力防止未签署的软件包实现SCR。SCR客户端验证其连接到的服务器具有SCR保留的SID。这防止了具有不同SID的恶意ProtServ处理将其自身伪装成SCR。
由此,在第二示例实施方式中,SCR能够提供包含关于已经安装在设备上的应用和其他可执行代码的信息的受保护的数据库。例如,在用于新代码的安装过程期间,使用SCR以确定SIF模块需要哪个插件来安装或卸载可执行文件。此外,SCR能够例如由应用可视化和执行组件212访问以提供所安装的可执行文件列表以便显示给用户,并且用户可以从中进行选择作为要运行的可执行文件。
第二示例实施方式的SIF模块的进一步细节在图5中示出。特别地,第二示例实施方式的SIF模块202进一步包括SIF解析器2024,该SIF解析器2024根据MIME类型或根据软件组件独有的标识符来执行安装文件类型解析。第二种情况适用于卸载。该示图还通过示例的方式示出了JavaScript安装器插件和本地安装插件两者。未示出用于其他代码类型的其他插件但当然这是可能的。在本示例中,本地安装器插件206a依靠本地软件安装器208来安装本地应用。例如,本地SWI 208将会已经存在于OS中。其他插件类型将通常具有其自身的安装器功能性,例如,用于安装和卸载该插件所涉及类型的代码。插件可以在例如制造提供用于本实施方式的平台的计算平台时安装,或者可以在制造之后例如由用户安装。
在本示例实施方式中,制造之后的安装器管理的特征提供如下能力:在设备已经被制造并递送给用户之后添加和移除新软件环境(诸如Python脚本)。例如,考虑到近期的转移到生产之后的产品和媒体服务的趋势,这一特征是有用的。
更特别地,在用于新插件的第二示例实施方式中,假定插件中的安装器和用于新环境的任何新执行引擎两者都是以本地API来编写的。在第二示例实施方式中,不要求一旦已经移除相有关的环境就移除所有相关联的软件。例如,没有如果用户已经移除了JavaScript引擎和安装器则移除所有JavaScript的能力。图6示出了在第二示例实施方式中安装新插件时发生的事件序列的序列图。
仅通过示例的方式,图6的程序假定SIF组件模块已经在运行了,并且用户已经指示模块执行例如已经下载的新插件的安装。由此,在第二示例实施方式中,在框6.2处,关于安装新插件的用户指令由SIF模块接收。接着,在框6.4处,SIF模块联系软件组件注册204以找到将被安装的对应插件,即所下载的插件存储在哪里。接着,由于如上所述,插件是平台的本地代码,因此SIF将使用本地插件206来执行安装。因此,在框6.6处,启动本地插件,并且在框6.6处,安装从此处接续。在本示例实施方式中,本地插件依靠本地软件安装器208,本地软件安装器208是形成计算平台一部分的操作系统中固有的本地软件安装器。因此,在框6.8中,SIF本地插件指示本地软件安装器208开始安装新插件,即开始遍历安装逻辑以确保插件文件被复制到文件系统中的适当位置。在框6.10处,这一过程期间的软件安装监视其本身以确认SIF插件变为安装在正确位置。
在本示例实施方式中,作为框6.12处的安装过程中的第一批步骤之一,本地软件安装器208利用软件组件注册204来检查是否已经注册了用于相同MIME类型的任何其他插件;这一检查在框6.12处执行,然后将检查结果用于先前被描述为安全性措施07(SM07)的安全性规则中。在本示例中,这些安全性规则在框6.14处执行,并且用以确保例如尚未注册用于插件所涉及的MIME类型的代码的插件。
在第二示例实施方式中,假设通过了安全性规则,则在框6.16处,在软件组件注册204中注册对应于插件的新的执行和安装环境。例如,这涉及在SCR数据库中创建关于插件的新数据库条目,以及还创建关于已经安装的新执行环境的任何其他相关联的程序(如果有的话)的新数据库条目。接着,如有必要,则将SIF模块注册为用于MIME类型的处理程序,并且如果需要,则例如利用文件类型检测模块214来执行这一注册。
然后,安装在框6.18继续,其中第二示例实施方式的软件安装器208将安装文件递送到计算平台文件系统中的适当位置,即将安装文件存储在适当目录中,然后在框6.20处在软件组件注册中注册已经利用这些文件安装的任何新软件包。
由此,利用上述方式,第二示例实施方式规定,能够安装新的插件和执行环境,以及使用该执行环境的新的可执行代码。这使得新执行环境(诸如新版本的Java或Flash)可以在制造之后被安装在计算平台上,并且使得可以提供利用该执行环境来运行的插件,并且允许使用该环境来运行的新可执行代码可以使用本示例实施方式的软件安装器框架来安装。因此,使用本发明的本示例实施方式的计算平台能够在其生命周期期间利用新的软件和执行环境来更新。
到此为止,已经描述了本示例实施方式的组件,以及如何能够更新这些组件。概括而言,本示例实施方式提供了软件安装器框架模块202,软件安装器框架模块202提供了例如基本接口用以使得用户可以在计算平台上安装新可执行代码。然而,在示例实施方式中,新的可执行代码的实际安装依赖于代码类型而由相应插件来执行。例如,每个插件具有安装或卸载可执行代码所需的功能性,并且依赖于可执行代码的类型,每个插件能够例如实现不同的安全性策略。这允许例如可以以快得多的速度开发可执行代码,而代码并不需要针对可靠性和安全性进行全面的测试。相反,在示例实施方式中,依赖于代码类型,根据其安全性级别,其本身将有权访问计算平台的适当插件可以用于安装可执行代码,由此确保不会破坏安全性配置。
由此,例如,在本示例实施方式中,本地软件安装器(其将有权访问计算平台的所有部分)不被用于安装尚未进行大量测试的非本地代码。考虑到这一点,不同的软件类型可以具有不同的安全性关注和质量保证,创建变化的风险级别。例如,在系统上具有全权的本地软件可能具有高度可信且经过大量分析的安装器,而脚本安装器可能例如由单独的爱好者编写,并且其递送的脚本可能具有大幅受限的能力。本示例实施方式的软件安装器框架使得这些多种多样的软件类型在同一计算平台上和平地共存,同时仍然考虑到平台的安全性。
特别地,在本示例实施方式中,为各种软件安装器配备安全性策略,该安全性策略限定了每种软件安装器所具有的对计算平台资源的访问级别。安全性策略可以处理对硬件资源(诸如电话服务,网络服务,或者音频和视频输入和输出设备,以及存储设备和存储器)的访问,或者可以处理对软件资源(诸如运行在计算平台上的特定服务器或应用,例如电子邮件应用、日历应用、日记应用或者联系应用)的访问。
在第二示例实施方式中,当由安装器安装计算机程序时,就所安装的程序访问计算平台资源的能力而言,该所安装的程序的许可或能力则从安装了该程序的安装器模块限定或继承。以这种方式,通过控制安装器模块的安全性许可和能力,所安装的计算机程序访问平台资源的能力也得到了控制。
到此为止,根据第二示例实施方式,已经讨论了每种组件及其功能性,但尚未描述如下示例,即如何使用安装框架来安装新应用,或其他可执行代码片段。然而,在第二示例实施方式中如此操作时由软件安装框架执行的任务序列在图3中示出。
在一般的级别上,第二示例实施方式的安装程序涉及以下内容。首先,用户将通常运行例如能够检测和致使新可执行代码被安装的现有应用。这例如可以是通用互联网浏览器,通用互联网浏览器能够从互联网下载应用和其他可执行代码,用于在计算平台上安装。
接着,在第二示例实施方式中,当用户确定他希望安装新应用或其他可执行代码时,则必须确定代码类型,此后软件安装框架依赖于要安装的代码类型来选择插件类型。例如,可以回忆,对于每种可执行代码类型,存在如下插件,该插件包含用以使得能够安装和卸载特定类型的代码的功能性。
在第二示例实施方式中,在已经检测到插件类型的情况下,软件安装框架调用插件,该插件开始运行并执行安装。例如,在安装本地代码的情况下,则本地安装器插件可以运行本地软件安装器208。然而,对于其他类型的可执行代码,插件本身将包含安装器功能。
在第二示例实施方式中,经由插件安装程序通常涉及三个操作。首先,其涉及向计算平台文件系统的适当部分安装可执行代码的实际文件。这是为了确保例如可执行代码实际上物理地安装在了文件系统中,并且可由该计算平台访问。
其次,在第二示例实施方式中,为了保持对安装的跟踪,并且实现其回滚和卸载,文件系统事务由软件事务服务模块210监视。这保持了例如对安装期间的文件系统事务的记录,允许在需要时,安装可以回滚或卸载。
第三,在第二示例实施方式中,为了反应安装,插件更新软件组件注册,并且特别地,在软件组件注册数据库中形成新数据库条目,以反应新安装的应用或其他可执行代码。在第二示例实施方式中,通过执行了这三个任务,插件将会已经成功地安装了新应用或其他可执行代码,并且该安装将会已经由软件事务服务模块210进行了日志记录,从而使得如果需要,其就能够被卸载。此外,在示例实施方式中,安装将会已经记录在软件组件注册中,从而使得例如安装在计算平台上的所有应用和其他可执行代码从其可见。
在谨记以上内容的情况下,图3图示了在安装新本地应用时由本示例实施方式的各种组件执行的操作序列。考虑到这一点,图3的序列依靠本地软件安装器及本地软件安装器208。如果要安装例如不同类型的应用或可执行代码(其例如是非本地的,并且因此使用了非本地插件中提供安装功能),则由本地软件插件206和本地软件安装器208执行的操作将会被合并。
参考图3,在第二示例实施方式中,首先假定用户正在使用该用户已经在框3.2处调用的通用浏览器216。使用该通用浏览器,用户确定例如她希望安装她已经下载的新应用或其他可执行代码。在示例实施方式中,然后浏览器216在框3.4处例如使用文件类型检测模块214来确定应用或其他可执行代码的文件类型。在本示例中,文件类型检测模块214在框3.6处检测所下载文件的MIME类型,接着在框3.8处调用SIF模块202。在本示例中,SIF模块需要重新检测文件类型以便调用正确的插件,这在框3.10处执行。然后,在本示例中,在已经确定了要安装的文件的MIME类型的情况下,SIF模块202联系软件组件注册204以基于文件MIME类型找出要使用的插件ID。在该示例中,SCR 204基于由SIF模块传递给它的MIME类型来返回正确的插件ID,然后SIF模块启动正确的插件,并且在框3.14处向其委派安装。在图3所示的本示例中,正在安装的是本地代码,因此启动了本地软件安装器插件206。然而,在其他示例中,如果正在安装非本地代码,则将安装与文件类型有关的插件,例如JavaScript Widget安装器等。
在图3中,由于本示例实施方式依靠本地软件,本地软件安装器插件206调用本地软件安装器208,以实际地执行安装。然而,如上所述,在用于其他文件类型的其他示例中,用于该文件类型的安装器插件将执行安装器操作。在本示例实施方式中,安装器操作包括框3.18和框3.20。特别地,在框3.18处,安装器插件利用软件事务服务模块210来开始文件系统事务。也就是说,在本示例实施方式中,指示软件事务服务模块210随着插件对软件的安装的发生而开始对文件系统事务的记录。类似地,在本示例中,指示软件组件注册开始SCR事务,即注册正在安装的新应用或其他可执行代码,因此其应当打开用于该应用或其他可执行代码的新数据库条目。
接着,在本示例中,在框3.24处,安装器插件向用户显示任何适当的通知,并且得到用户许可以继续安装,并且这在框3.26处被报告给软件安装器208。当然,在该示例中,用以获得用户许可以前进的GUI事件可以发生在安装程序中的任何需要的点处,为方便起见,在此仅示出了一个这种事件。在其他示例中,可以发生多个这种事件。同样,如果正在安装本地代码以外的另一类型的代码,则在本示例实施方式中由软件安装器208执行的所有操作将由安装器插件来执行,册将不需要在两个实体之间进行报告。
在已经接收到关于前进的用户确认的情况下,其中软件事务服务模块210记录文件系统事务,在本示例中,在框3.28处,在SCR数据库中制作条目以反应应用或可执行代码文件的安装,同时在框3.30处将这些文件递送和存储在文件系统中适当的一个或多个目录下。此后,在本示例中,一旦已经将文件复制到文件系统的适当部分,并且完成了软件事务服务模块对功能的日志记录,则由软件事务服务模块210制作的用于安装的日志条目就以在框3.32处进行的会话来完成。类似地,在本示例中,软件组件注册数据库条目同样以在框3.34处安装器进行SCR会话来完成。
由此,利用上述方式,在本示例实施方式中,可以使用所描述的软件安装框架在计算平台上安装新应用或其他可执行代码。
不以任何方式对所附权利要求书的范围、解释或应用构成限制,在此公开的一个或多个示例实施方式的技术效果是提供了针对OS的开发的更丰富的选择。相对于性能而言更强调上市时间的开发者可以针对受管理的环境(诸如Java或.NET)进行开发,同时知晓他们的产品将在平台上作为已经选择了不同的一组优先级的产品而可见。
在此公开的一个或多个示例实施方式的另一技术效果是提高了OS的可用性,因为用户将不需要知晓或关心其软件来自于什么封装。他们将能够利用相同的一组设施并利用相同的视觉提示在其OS上以相同方式使用或管理应用。
在此公开的一个或多个示例实施方式的另一技术效果是,第二示例实施方式还丰富了OS的生态系统,允许具有不同的技术背景的开发者来进行针对OS的开发,同时得到针对其软件的等同可见性。
在此公开的一个或多个示例实施方式的另一技术效果是在企业环境中添加了特征。例如,系统管理员可以通过限制一组安装器插件来允许用户安装对系统造成较小损害的软件。这还意味着,用户将并非必须进行很多安全性判定或者需要对于企业而言是明确可信的。
在此公开的一个或多个示例实施方式的另一技术效果是,对于安装器开发者而言能够实现更快的上市时间。例如,通过使用OS中共有的一组功能性,SIF插件的第三方开发者能够关注于其应用语言或递送模式的特定特征。
在此公开的一个或多个示例实施方式的另一技术效果是提供了可定制的安装,例如在安装过程期间根据软件类型执行附加操作的能力。例如,MIDlet安装可以在安装或卸载期间发送消息给网络提供商(OTA协议),或者本地安装器可以实现复杂的升级规则等。
本发明的实施方式可以以软件、硬件、应用逻辑或软件、硬件和应用逻辑的组合来实现。在示例实施方式中,在各种常用计算机可读介质中的任何一个上维持应用逻辑、软件或指令集合。在本文献的上下文中,“计算机可读介质”可以是任何如下介质或装置,其能够包含、存储、传送、传播或传输用于由指令执行系统、装置或设备(诸如计算机)执行或结合指令执行系统、装置或设备执行的指令,其中计算机的一个示例在图1中描述和绘出,计算机可读介质的一个示例在图7中描述和绘出。计算机可读介质可以包括如下计算机可读存储介质,其可以是能够包含或存储用于由指令执行系统、装置或设备(诸如计算机)执行或结合指令执行系统、装置或设备执行的指令的任何介质或装置。
如果希望,则在此讨论的不同功能可以以不同的顺序和/或彼此并发地执行。另外,如果希望,则上述功能中一个或多个可以是可选的或者可以被组合。
尽管在独立权利要求中阐述了本发明的各个方面,但本发明的其他方面包括来自所描述实施方式和/或具有独立权利要求的特征的从属权利要求的特征的其他组合,而不仅仅是在权利要求中明确阐述的组合。
在此还应当注意,尽管上面描述了本发明的示例实施方式,但不应当以限制性的意义来看待这些描述。相反,在不脱离在所附权利要求书中所限定的本发明范围的情况下,可以进行若干变更和修改。

Claims (26)

1.一种装置,包括:
a)软件安装器框架模块,提供安装接口以使得向计算机平台上安装所获得的计算机程序;以及
b)多个安装器插件模块,作为用于将被安装的一种或多种类型的计算机程序中的每一种的至少一个安装器插件模块,每个安装器插件模块设置为使得在使用时能够向所述计算机平台安装其所涉及的类型的计算机程序、和/或从所述计算机平台卸载其所涉及的类型的计算机程序;
其中所述软件安装器框架模块配置为,经由所述安装接口接收与特定计算机程序相关的安装或卸载命令,以及根据所述特定计算机程序的类型而选择所述多个安装器插件模块之一,并且其中所选择的安装器插件模块配置为,负责向所述计算机平台安装所述特定计算机程序、或从所述计算机平台卸载所述特定计算机程序。
2.根据权利要求1所述的装置,进一步包括软件组件注册模块,所述软件组件注册模块具有目前安装在所述计算平台上的、不论何种类型的所述计算机程序的数据库。
3.根据权利要求2所述的装置,其中所述软件组件注册模块在其数据库中包括关于在所述计算机平台上存在的所述安装器插件模块的数据,并且所述软件安装器框架模块在使用时从所述软件组件注册模块获得关于将被安装或被卸载的计算机程序类型的、所述多个安装器插件模块之一的插件ID。
4.根据权利要求2或3所述的装置,进一步包括应用可视化模块,设置为在使用时向用户显示安装在所述计算平台上的所述计算机程序,所述应用可视化模块与所述软件组件注册模块交互以获得关于用于显示的所安装的计算机程序的信息。
5.根据前述权利要求中任一项所述的装置,进一步包括软件事务服务模块,所述软件事务服务模块在使用时记录其中存储了所安装的计算机程序的所述计算平台的文件系统上的事务,从而记录由所选择的安装器插件模块所进行的所述特定计算机程序的安装过程。
6.根据权利要求5所述的装置,其中所述安装过程的记录在需要时由所述安装器插件模块用于卸载或至少部分地卸载所述特定计算机程序。
7.一种装置,包括:
安装器插件模块,用于与根据前述权利要求中任一项所述的装置一起使用,所述安装器插件模块设置为在使用时接收来自所述软件安装器框架模块的安装或卸载命令,以及根据所接收的命令而安装或卸载特定类型的特定计算机程序,其中所述安装器插件模块设置为安装或卸载单一特定类型的计算机程序。
8.根据前述权利要求中任一项所述的装置,进一步包括与所述安装器插件模块相关联的一个或多个安全性策略,所述或者每个安全性策略包括限定已经由特定的安装器插件模块安装的计算机程序可以访问所述计算平台的哪些资源的数据。
9.一种装置,包括:
至少一个处理器;以及
包括计算机程序代码的至少一个存储器,
所述至少一个存储器和所述计算机程序代码配置为,与所述至少一个处理器一起使得所述装置至少执行以下操作:
a)在由提供在所述装置上的软件安装器框架模块提供的安装接口处接收与特定计算机程序相关的安装或卸载命令;
b)根据所述特定计算机程序的类型而选择多个安装器插件模块之一,所述安装器插件模块作为用于将被安装的一种或多种类型的计算机程序中的每一种的至少一个安装器插件模块,每个安装器插件模块设置为使得在使用时能够向所述装置安装其所涉及的类型的计算机程序、和/或从所述装置卸载其所涉及的类型的计算机程序;以及
c)然后所选择的安装器插件模块负责向所述装置安装所述特定计算机程序、或从所述装置卸载所述特定计算机程序。
10.根据权利要求9所述的装置,其中所述至少一个存储器和所述计算机程序代码配置为,和所述至少一个处理器一起使得所述装置利用软件组件注册模块来注册所述特定计算机程序的安装或卸载,所述软件组件注册模块具有目前安装在所述计算平台上的、不论何种类型的所述计算机程序的数据库。
11.根据权利要求10所述的装置,其中所述软件组件注册模块在其数据库中包括关于在所述计算机平台上存在的所述安装器插件模块的数据,并且所述至少一个存储器和所述计算机程序代码配置为,与所述至少一个处理器一起使得所述装置在所述软件安装器框架模块处,从所述软件组件注册模块获得关于要安装或卸载的计算机程序类型的、所述多个安装器插件模块之一的插件ID。
12.根据权利要求9或10所述的装置,其中所述至少一个存储器和所述计算机程序代码进一步配置为,与所述至少一个处理器一起使得所述装置经由应用可视化模块向用户显示安装在所述计算平台上的所述计算机程序,所述应用可视化模块与所述软件组件注册模块交互,以获得关于用于显示的所安装的计算机程序的信息。
13.根据权利要求9至12中任一项所述的装置,所述至少一个存储器和所述计算机程序代码进一步配置为,与所述至少一个处理器一起使得所述装置记录其中存储了所安装的计算机程序的所述计算平台的文件系统上的事务,从而记录由所选择的安装器插件模块所进行的所述特定计算机程序的安装过程。
14.根据权利要求13所述的装置,其中所述安装过程的记录在需要时由所述安装器插件模块用于卸载或至少部分地卸载所述特定计算机程序。
15.一种装置,包括:
至少一个处理器;以及
包括计算机程序代码的至少一个存储器,
所述至少一个存储器和所述计算机程序代码配置为与所述至少一个处理器一起使得所述装置至少执行以下操作:
操作安装器插件模块,所述安装器插件模块设置为在使用时接收来自所述软件安装器框架模块的安装或卸载命令,以及根据所接收的命令而安装或卸载特定类型的特定计算机程序,其中所述安装器插件模块设置为安装或卸载单一特定类型的计算机程序。
16.根据权利要求9至15中任一项所述的装置,所述至少一个存储器和所述计算机程序代码配置为,与所述至少一个处理器一起使得所述装置应用与所述安装器插件模块相关联的一个或多个安全性策略,所述或者每个安全性策略包括限定已经由特定的安装器插件模块安装的计算机程序可以访问所述计算平台的哪些资源的数据。
17.一种方法,包括:
a)在由提供在计算机平台上的软件安装器框架模块提供的安装接口处,接收与特定计算机程序相关的安装或卸载命令;
b)根据所述特定计算机程序的类型而选择多个安装器插件模块之一,所述安装器插件模块作为用于将被安装的一种或多种类型的计算机程序中的每一种的至少一个安装器插件模块,每个安装器插件模块设置为,使得在使用时其能够向所述计算机平台安装其所涉及的类型的计算机程序、和/或从所述计算机平台卸载其所涉及的类型的计算机程序;以及
c)然后所选择的安装器插件模块负责向所述计算机平台安装所述特定计算机程序、或从所述计算机平台卸载所述特定计算机程序。
18.根据权利要求17所述的方法,进一步包括利用软件组件注册模块来注册所述特定计算机程序的安装或卸载,所述软件组件注册模块具有目前安装在所述计算平台上的、不论何种类型的所述计算机程序的数据库。
19.根据权利要求18所述的方法,其中所述软件组件注册模块在其数据库中包括关于在所述计算机平台上存在的所述安装器插件模块的数据,并且所述方法进一步包括在所述软件安装器框架模块处,从所述软件组件注册模块获得关于要安装或卸载的计算机程序类型的、所述多个安装器插件模块之一的插件ID。
20.根据权利要求17或18所述的方法,进一步包括经由应用可视化模块向用户显示安装在所述计算平台上的所述计算机程序,所述应用可视化模块与所述软件组件注册模块交互以获得关于用于显示的所安装的计算机程序的信息。
21.根据权利要求17-20中任一项所述的方法,进一步包括记录其中存储了所安装的计算机程序的所述计算平台的文件系统上的事务,从而记录由所选择的安装器插件模块所进行的所述特定计算机程序的安装过程。
22.根据权利要求21所述的方法,其中所述安装过程的记录在需要时由所述安装器插件模块用于卸载或至少部分地卸载所述特定计算机程序。
23.一种方法,包括:
操作用于与根据权利要求17至22中任一项所述的方法一起使用的安装器插件模块,所述安装器插件模块设置为在使用时接收来自所述软件安装器框架模块的安装或卸载命令,以及根据所接收的命令而安装或卸载特定类型的特定计算机程序,其中所述安装器插件模块设置为安装或卸载单一特定类型的计算机程序。
24.根据权利要求17至23中任一项所述的方法,进一步包括应用与所述安装器插件模块相关联的一个或多个安全性策略,所述或者每个安全性策略包括限定已经由特定的安装器插件模块安装的计算机程序可以访问所述计算平台的哪些资源的数据。
25.一种计算机程序或一套计算机程序,设置为使得当由计算机平台执行时使得所述平台执行根据权利要求17至24中任一项所述的方法。
26.一种计算机可读介质,存储有根据权利要求25所述的计算机程序或所述一套计算机程序中的至少一个。
CN2009801498543A 2008-12-12 2009-12-02 用于在计算机平台上安装程序的方法和装置 Pending CN102246144A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0822749.8 2008-12-12
GB0822749A GB2466220A (en) 2008-12-12 2008-12-12 Installing or uninstalling computer programs using installer plug-in modules
PCT/IB2009/055461 WO2010067266A1 (en) 2008-12-12 2009-12-02 Method and apparatus for installing programs on a computer platform

Publications (1)

Publication Number Publication Date
CN102246144A true CN102246144A (zh) 2011-11-16

Family

ID=40326055

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801498543A Pending CN102246144A (zh) 2008-12-12 2009-12-02 用于在计算机平台上安装程序的方法和装置

Country Status (7)

Country Link
US (1) US20120137281A1 (zh)
EP (1) EP2359240A4 (zh)
KR (1) KR20110099310A (zh)
CN (1) CN102246144A (zh)
CA (1) CA2746434A1 (zh)
GB (1) GB2466220A (zh)
WO (1) WO2010067266A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984553A (zh) * 2014-05-26 2014-08-13 中科创达软件股份有限公司 一种3d桌面显示方法和系统
CN105677389A (zh) * 2015-12-29 2016-06-15 深圳市科漫达智能管理科技有限公司 一种Virgo组件的安装更新方法及装置
CN106294411A (zh) * 2015-05-25 2017-01-04 腾讯科技(深圳)有限公司 软件类别的识别方法及识别系统
CN108153533A (zh) * 2016-12-02 2018-06-12 腾讯科技(深圳)有限公司 制作安装程序的方法和装置、程序的安装方法和装置
CN108959937A (zh) * 2018-06-29 2018-12-07 北京奇虎科技有限公司 插件处理方法、装置和设备

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9356991B2 (en) * 2010-05-10 2016-05-31 Litera Technology Llc Systems and methods for a bidirectional multi-function communication module
US20120036496A1 (en) * 2010-08-05 2012-02-09 Computer Associates Think, Inc. Plug-in based high availability application management framework (amf)
EP2609540B1 (en) 2010-08-24 2020-07-22 Exxonmobil Upstream Research Company System and method for planning a well path
US8832855B1 (en) 2010-09-07 2014-09-09 Symantec Corporation System for the distribution and deployment of applications with provisions for security and policy conformance
US9043863B1 (en) 2010-09-07 2015-05-26 Symantec Corporation Policy enforcing browser
US8955152B1 (en) * 2010-09-07 2015-02-10 Symantec Corporation Systems and methods to manage an application
JP5699500B2 (ja) 2010-09-16 2015-04-08 株式会社リコー インストールプログラム、インストール方法、画像形成装置、及び記録媒体
CA2823017A1 (en) 2011-01-26 2012-08-02 Exxonmobil Upstream Research Company Method of reservoir compartment analysis using topological structure in 3d earth model
AU2011360212B2 (en) 2011-02-21 2017-02-02 Exxonmobil Upstream Research Company Reservoir connectivity analysis in a 3D earth model
US9223594B2 (en) 2011-07-01 2015-12-29 Exxonmobil Upstream Research Company Plug-in installer framework
US9165332B2 (en) * 2012-01-27 2015-10-20 Microsoft Technology Licensing, Llc Application licensing using multiple forms of licensing
US20140007070A1 (en) * 2012-06-29 2014-01-02 International Business Machines Corporation Managing Software Product Lifecycle Across Multiple Operating System Platforms
US8893152B2 (en) * 2012-09-06 2014-11-18 Intel Corporation Application registration with a non-OS service
US8997088B2 (en) * 2012-11-02 2015-03-31 Wipro Limited Methods and systems for automated deployment of software applications on heterogeneous cloud environments
US8918780B2 (en) * 2013-03-14 2014-12-23 International Business Machines Corporation Automatic quality assurance for software installers
AU2014278645B2 (en) 2013-06-10 2016-07-28 Exxonmobil Upstream Research Company Interactively planning a well site
US8789040B1 (en) * 2013-07-16 2014-07-22 Appenity LLC Converting non-natively executable programs to downloadable executable programs
US9411702B2 (en) * 2013-08-30 2016-08-09 Globalfoundries Inc. Flexible and modular load testing and monitoring of workloads
US9864098B2 (en) 2013-09-30 2018-01-09 Exxonmobil Upstream Research Company Method and system of interactive drill center and well planning evaluation and optimization
EP2879074A1 (en) * 2013-11-29 2015-06-03 Gemalto SA Method for loading a native code on a secure element
US10324700B2 (en) 2016-03-09 2019-06-18 International Business Machines Corporation Storing computing component installation information
WO2017185204A1 (zh) * 2016-04-25 2017-11-02 深圳前海达闼云端智能科技有限公司 一种虚拟机创建方法和装置
US20180181381A1 (en) * 2016-12-23 2018-06-28 Microsoft Technology Licensing, Llc Application program package pre-installation user interface
US10673704B2 (en) * 2017-02-15 2020-06-02 Arista Networks, Inc. System and method of dynamic hardware policer allocation
CN108038369A (zh) * 2017-12-26 2018-05-15 上海展扬通信技术有限公司 一种应用权限控制方法及终端
US10698673B2 (en) 2018-04-20 2020-06-30 Red Hat, Inc. Managing software installation
DE102020103314A1 (de) 2020-02-10 2021-08-12 Mixed Mode GmbH Verfahren zum Aktualisieren von Software und Knoten eines Netzwerkes
CN113050970B (zh) * 2021-04-13 2023-03-10 深圳市汉云科技有限公司 Sql数据库的插件更新方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423192A (zh) * 2001-12-05 2003-06-11 微软公司 利用配置管理器的回滚与安全特性在移动计算设备上安装软件
CN1516008A (zh) * 2003-01-02 2004-07-28 三星电子株式会社 管理应用程序的系统和方法
WO2006064252A1 (en) * 2004-12-15 2006-06-22 Symbian Software Limited A method of maintaining applications in a computing device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6205527B1 (en) * 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
US6687902B1 (en) * 1999-08-05 2004-02-03 International Business Machines Corporation Method, system, and program for deleting user selected file sets of a program
US6715144B2 (en) * 1999-12-30 2004-03-30 International Business Machines Corporation Request based automation of software installation, customization and activation
DE60117676T2 (de) * 2000-12-29 2006-11-16 Stmicroelectronics S.R.L., Agrate Brianza Verfahren zur einfachen Ausdehnung der Funktionalität eines tragbaren elektronischen Geräts und zugehöriges, tragbares elektronisches Gerät
US7131123B2 (en) * 2001-04-30 2006-10-31 Opsware Inc. Automated provisioning of computing networks using a network database model
US6996832B2 (en) * 2001-05-30 2006-02-07 Bea Systems, Inc. System and method for software component plug-in framework
CA2391733A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Framework to access a remote system from an integrated development environment
US7069553B2 (en) * 2003-03-03 2006-06-27 Computer Associates Think, Inc. Universal deployment tool
US20040249919A1 (en) * 2003-06-04 2004-12-09 Dirk Mattheis System and method for remote systems management and reporting
US20060085517A1 (en) * 2004-10-04 2006-04-20 Markku Kaurila Download user agent plug-in for facilitating over-the-air downloading of media objects
US20060160529A1 (en) * 2005-01-14 2006-07-20 Holger Glass Systems and methods for the automatic customization or configuration of mobile devices
US20070240134A1 (en) * 2006-02-28 2007-10-11 Joydeep Buragohain Software packaging model supporting multiple entity types
US20070282801A1 (en) * 2006-06-05 2007-12-06 Ajay A Apte Dynamically creating and executing an application lifecycle management operation
US9003396B2 (en) * 2006-06-19 2015-04-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. File manager integration of uninstallation feature
EP2053504A1 (en) * 2007-08-09 2009-04-29 France Telecom System and method for managing processing resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423192A (zh) * 2001-12-05 2003-06-11 微软公司 利用配置管理器的回滚与安全特性在移动计算设备上安装软件
CN1516008A (zh) * 2003-01-02 2004-07-28 三星电子株式会社 管理应用程序的系统和方法
WO2006064252A1 (en) * 2004-12-15 2006-06-22 Symbian Software Limited A method of maintaining applications in a computing device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984553A (zh) * 2014-05-26 2014-08-13 中科创达软件股份有限公司 一种3d桌面显示方法和系统
CN103984553B (zh) * 2014-05-26 2017-10-24 中科创达软件股份有限公司 一种3d桌面显示方法和系统
CN106294411A (zh) * 2015-05-25 2017-01-04 腾讯科技(深圳)有限公司 软件类别的识别方法及识别系统
CN106294411B (zh) * 2015-05-25 2020-03-17 腾讯科技(深圳)有限公司 软件类别的识别方法及识别系统
CN105677389A (zh) * 2015-12-29 2016-06-15 深圳市科漫达智能管理科技有限公司 一种Virgo组件的安装更新方法及装置
CN108153533A (zh) * 2016-12-02 2018-06-12 腾讯科技(深圳)有限公司 制作安装程序的方法和装置、程序的安装方法和装置
CN108959937A (zh) * 2018-06-29 2018-12-07 北京奇虎科技有限公司 插件处理方法、装置和设备

Also Published As

Publication number Publication date
CA2746434A1 (en) 2010-06-17
WO2010067266A1 (en) 2010-06-17
GB2466220A (en) 2010-06-16
US20120137281A1 (en) 2012-05-31
EP2359240A1 (en) 2011-08-24
EP2359240A4 (en) 2012-06-27
GB0822749D0 (en) 2009-01-21
KR20110099310A (ko) 2011-09-07

Similar Documents

Publication Publication Date Title
CN102246144A (zh) 用于在计算机平台上安装程序的方法和装置
EP2302549B1 (en) Platform security apparatus and method thereof
KR100972270B1 (ko) 사용자 인터페이스 컴포넌트들을 무선 디바이스들에 다운로드하기 위한 시스템 및 방법
JP4519843B2 (ja) 無線ネットワークにおけるコンテンツ保護のための方法及び機器
CN101099385B (zh) 用于对本地和远程内容实行应用程序级限制的方法和设备
KR100883699B1 (ko) 무선 장치 동작 환경에서 비검증된 프로그램들의 실행
CA2604445C (en) A method and system for implementing customizable container services as component wireless applications
CN103544447B (zh) 一种基于安卓系统的防止机密信息泄露的方法和终端
EP1849066B1 (fr) Chargement dynamique sécurisé
US20090031402A1 (en) Method and apparatus for managing access privilege in cldc osgi environment
US20140189880A1 (en) System and method for administrating access control rules on a secure element
US20070078957A1 (en) Firmware-licensing system for binding terminal software to a specific terminal unit
CN100489767C (zh) 通信设备
CN101073060A (zh) 用于检验软件应用的终端、方法和计算机程序产品
CN106557669A (zh) 一种应用程序安装过程的权限控制方法及装置
CN106471466A (zh) 短暂应用
CN103559437B (zh) 用于Android操作系统的访问控制方法及系统
CN106557687A (zh) 一种应用程序安装过程的权限控制方法及装置
US20140325204A1 (en) Device Management Macros
CN101158898A (zh) 基于Java的终端系统
CN107305608A (zh) 终端设备的管理方法和装置
US9846790B2 (en) Method for changing an operating mode of a mobile device
CN104360856A (zh) 云应用交付装置
CN111506899B (zh) 一种安全系统的权限管理方法和权限管理架构
US20050005139A1 (en) Terminal device and program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111116