CN101206573A - 维护软件组件的***和方法 - Google Patents

维护软件组件的***和方法 Download PDF

Info

Publication number
CN101206573A
CN101206573A CNA2007101879529A CN200710187952A CN101206573A CN 101206573 A CN101206573 A CN 101206573A CN A2007101879529 A CNA2007101879529 A CN A2007101879529A CN 200710187952 A CN200710187952 A CN 200710187952A CN 101206573 A CN101206573 A CN 101206573A
Authority
CN
China
Prior art keywords
software
assembly
component
data
component software
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
CNA2007101879529A
Other languages
English (en)
Inventor
夏晨红
劳伦斯·E·英格兰
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101206573A publication Critical patent/CN101206573A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

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

Abstract

在本公开的一个方面,公开了一种用于维护和重复利用软件组件的计算机程序产品、***和方法。记录用于一个或多个软件的第一组使用数据。如果用于多个软件组件的至少一个的第一组使用数据符合在过期策略中指定的标准,则自动移除该至少一个软件组件。然后通过远程服务器提供对移除的组件的访问。现在记录用于移除的软件组件的第二组使用数据。如果第二组使用数据符合在重新安置策略中指定的使用标准,则自动重新安置该移除的软件组件。

Description

维护软件组件的***和方法
技术领域
本公开一般涉及用于重复利用(recycle)软件组件的方法、装置和计算机可使用的代码。更具体地,本公开涉及基于使用水平自动停用(retire)软件组件。
背景技术
传统的软件架构趋于提前计划和刚性,不够灵活和有弹性来适应快速需求改变。除了预先确定的IF-THEN条件集,它们没有被制作来处理改变。软件设计假设所有变量将在部署***之前已被考虑。
实际上,因为改变不是100%可预测的,所以软件必须被周期性地修订
和更新。因此,软件经常用新的版本更新或打补丁,以处理改变。补丁是被设计来更新或改正计算机程序的问题的小块软件。这包括改正程序缺陷(bug)、替换图形和改进可使用性或性能。尽管打算改正问题,但是拙劣设计的补丁有时候可引入新的问题(aka,软件退化)。
存在几种更新软件的方法。旧的软件能够被卸载或移除,并且新的软件安装在它的位置。这消耗时间并涉及停机时间(downtime)。可替代地,软件能够被升级,其涉及添加到已经存在的框架上。
新的软件版本的部署趋于导致***停机时间以及服务中断。版本周期也导致对软件开发过程的压力,如示于接近每个版本结束时处理缺陷的压力、以及在版本周期的开始时重新发明车轮的空闲。软件需要更恒定、平滑并且具有更少中断地改变。
组件化和插件框架基础结构使得可以用按需求增加更新软件,如Ecilpse上的软件更新器和微软Windows自动更新。(微软(Microsoft)、Windows、Windows NT、以及Windows标志是微软公司在美国、其它国家或两者中的商标。)尽管如此,这样的增加的结果是不但在软件覆盖区(foot print)的意义上,而且在复杂性的意义上,用户的***随时间变得越来越大。我们称该问题为软件肥胖症(obesity)。
发明内容
在本公开的一个方面,公开了一种用于维护软件组件的方法。该方法包括记录用于一个或更多软件组件的第一组使用数据。如果用于多个软件组件的至少一个的第一组使用数据符合在使用过期策略中指定的使用标准,则自动移除该至少一个软件组件。此外通过远程服务器提供对移除的软件组件的访问。该方法还包括记录用于移除的软件组件的第二组使用数据。如果第二组使用数据符合在重新安置策略中指定的使用标准,则重新安置该移除的软件组件。
在本公开的另一个方面,公开了一种用于维护软件组件的方法。该方法包括记录用于一个或更多软件组件的使用数据。如果用于多个软件组件的至少一个的使用数据符合在过期策略中指定的使用标准,则自动移除该至少一个软件组件。该方法还包括通过远程服务器提供对移除的软件组件的访问。
在本公开的另一个方面,公开了一种用于维护软件组件的***。该***包括使用数据记录模块,用于记录关于安装在本地环境内的多个软件组件的使用的数据,并将数据存储为使用数据。该***还包括删除模块,用于比较使用数据和过期策略,并且如果确定多个软件组件的至少一个的使用低于在过期策略中指定的水平,则自动将该至少一个软件组件从本地环境中移除。该***还包括远程访问模块,用于将移除的组件重新定位到远离本地环境的位置,并提供对移除的组件的未来访问。
在本公开的另一个方面,公开了一种用于维护软件组件的方法。该方法包括记录用于一个或更多软件组件的第一组使用数据。该方法还包括如果用于多个软件组件的至少一个的使用数据符合在过期策略中指定的标准,则自动移除该至少一个软件组件。该方法还通过远程服务器提供对移除的软件组件的访问。该维护软件组件的方法还涉及记录用于移除的软件组件的第二组使用数据。该方法还包括如果第二组使用数据符合在重新安置策略中指定的使用标准,则重新安置该移除的软件组件。
在一个方面,使用数据包括自从软件组件的上次使用以来的时间长度。在另一方面,使用数据包括软件组件已经被访问的次数。在另一方面,使用数据包括关于由软件组件使用硬件资源的信息。在一个方面,使用数据存储为元数据。
过期策略能够是全局过期策略,并且应用于多个软件组件的全部或一组。可替代地,过期策略是单独的过期策略,并且应用于单独的软件组件。在一个方面,过期策略由用户设置。
在一个方面,在过期策略中指定的使用标准是时间长度,并且如果自从软件组件的上次使用以来的时间长度大于使用标准中的时间长度,则使用数据符合使用标准。在另一个方面,在过期策略中指定的使用标准是次数,并且如果软件组件已经被访问的次数小于使用标准中的次数,则使用数据符合使用标准。
在一个方面,移除软件组件包括卸载软件组件。在一个方面,访问移除的软件组件通过远程运行在环球网(Web)服务器上的运行Web服务提供。在一个方面,重新安置移除的软件组件包括重新安装该软件组件。
附图说明
参照下面结合附图进行的描述,本公开的上述特征和目标将变得更加明显,其中相同的标号表示相同的元件,并且在附图中:
图1图示包括卖主(vendor)组件库和客户组件库、以及多个客户机的***的方块图,在该***中能够实现基于使用的软件组件维护;
图2是基于使用的软件组件的自动维护由客户组件库和多个客户机使用的配置;
图3是通过提供对停用的软件组件的远程访问、实现基于使用的软件组件的自动维护的配置;
图4是用于根据本公开维护软件组件的过程的流程图;
图5是使用如以硬件实现的、基于使用的软件组件的自动维护的***的方块图;
图6是用于基于在本地环境内的使用、自动维护软件组件的***的功能方块图。
具体实施方式
能够实现用于基于使用维护软件组件的自动方法。因为用户的软件***由于不断增长的功能需求而不能置于“规定食量”(“diet”),所以解决方案是基于需求和使用主动地删除(prune)或存档各组件。软件***能够依赖于需求的改变,通过增加或替换组件、以及删除不需要的组件逐步改变。
图1图示其中可以实现根据本公开的一个方面自动维护和重复利用组件的***的方块图。卖主组件库102存储多个软件组件104,其能够***/参与已知的基础结构,优选地为工业标准基础结构(例如,Windows、Eclipse、.NET等)。例如,卖主103是软件公司、或工作以生产新软件组件并随时间更新现有组件的提供者。如块104中的各单元所示,在该示例中,卖主103维护包括软件组件Q到Z的软件组件库102。
客户105利用由卖主103生产的软件组件。例如,客户105可以是销售产品并使用卖主的软件以便于销售他们的产品的公司。客户105类似地维护它自己的软件组件库,客户组件库106。客户105能够从卖主的库102中选择它需要的组件,并将它们存储在它自己的公司组件库106中。客户的软件组件由块108中的单元指示。在该示例中,客户从卖主的库102中仅选择组件W、X、Y和Z。卖主组件库102优选地由客户组件库104通过网络连接110或因特网访问。
在一个方面,随着卖主103更新它的卖主组件库102中的组件104,相应的软件组件108在客户组件库106中被更新。例如,考虑组件Y由卖主更新以处理性能问题。更新的组件Y存储在卖主的库102中,并且客户的库108中的组件Y被自动更新以反映做出的变化。这能够通过客户组件库102和卖主组件库106之间的因特网连接110,通过下载新近更新的组件完成。
此外,每个客户可以包括多个客户机,其利用来自软件组件库的各种软件组件。公司中的每个单独的客户机***能够将期望的组件下载到能够主管(host)各组件的基础结构,例如,下载插件到Eclipse或Windows组件。例如,在图1中图示了三个客户机120、122和124,每个利用不同的软件组件组。客户机120已经从软件组件库选择并安装了组件W、X、Y和Z。客户机122已经选择了组件X和Y。客户机124已经选择了X、Y和Z。在该示例中,客户机120、122和124可以是由公司雇员使用的单独的桌面型或膝上型计算机。
在另一个实施例中,客户机(120、122和124)能够从卖主组件库102中直接检索软件组件,消除对中间客户组件库106的需要。例如,客户机可以是个人家用计算机,并且从多个通过因特网连接访问的各种软件组件库直接下载并安装软件组件。客户机可以是任何计算设备,包括但不限于桌面型/膝上型计算机、蜂窝式电话、手持式设备或PDA、机顶盒、服务器等。
随着时间公司的库和客户机***将增长并变得越来越大。该增长将给覆盖区和组件管理增加开销。***如何能清理自身并移除较少使用的组件?换句话说,防止***肥胖的删除机制是什么?由本公开提出的解决方案涉及:基于使用水平和/或使用模式,如果确定现有的软件组件较少需要,则自动地停用它们。
在一个实施例中,这通过简单的机制(如将过期策略与一个或更多软件组件相关联)完成。例如,已经长时间没有使用的软件组件能够被设为自动停用。因此,过期策略能够指定组件在被停用前能够持续而没有使用的时间长度。作为另一个示例,仅仅已被调用或使用几次的软件组件能够设为自动停用。在这种情况下,过期策略可以指定组件被访问的次数,低于该次数软件组件应当被停用。
参照图2,解释了用于基于使用自动维护软件组件的***和方法的几个示例。如上面参照图1提到的,为了示例性目的,图示了三个客户机120、122和124,每个客户机已经从客户组件库106下载并安装了各种组件108。
为了实现这样的基于使用自动维护软件组件的***和方法,记录了关于每个软件组件的使用数据。例如,在客户机上运行的过程监视安装在客户机上的软件组件的使用、以及作为使用数据的关于每个软件组件使用的数据。在该示例中,客户机120、122和124分别记录如在块210、212和214指示的使用数据。在一个方面,使用数据存储为元数据。如在块210、212和214指示的使用数据可以存储为单个文件或多个文件,并且数据文件能够是任何类型。
使用能够以若干方式测量。使用可记录为自从软件组件上次使用以来的时间长度。因此,根据过期策略,已经长时间没有使用的软件组件可被设置为停用。使用可简单地通过软件组件被调用或访问的次数来测量。使用还可通过访问软件组件的客户机或用户的数量来测量。例如,软件组件可仅由一个人使用多次,或由许多不同的人使用但不常访问。可替代地,使用可由被软件组件利用的硬件资源测量,如存储器使用、硬盘空间、处理器使用或带宽使用。
如上所述,指定了过期策略。该过期策略包括关于使用水平的规则或标准,高于或低于它软件组件可被设置为停用。在图2中,客户机210、212和214每个分别具有它们自己的过期策略220、222和224。在一个实施例中,过期策略可以指定:如果软件组件已经有预定的时间段(例如,天数)没有使用,则它应当停用。在另一个实施例中,过期策略能够指定使用低于一定的水平导致软件组件被停用。过期策略可以使用不同的使用测量的组合来确定是否软件组件应当停用。例如,过期策略可能指定自从上次使用以来的时间长度和被访问的次数的组合。
过期策略能够是全局过期策略、单独过期策略或其二者的组合。例如,全局过期策略能够应用到各软件组件的全部或一组。也可设置单独的过期策略以应用到单独的软件组件。也可以使用过期策略和单独过期策略的组合。例如,全局过期策略可以应用到除了指定了单独过期策略的那些组件外的全部软件组件,在该情况下,单独过期策略优先。过期策略能够由卖主、客户、客户机或由用户设置。因此,在一个方面,每个客户机用户能够设置他或她自己的、关于何时软件组件应当被自动设置为停用的偏好。例如,一个用户可能要软件组件在几个月没有使用后自动停用,而另一个用户可能更喜欢将时间期限设置为几星期。
除了过期策略外,还能够设置其它类型的管理各组件的停用的策略。例如,单独过期策略可指定不管核心基础结构组件使用多么少、它将永不过期。
在一个方面,每个客户机记录它自己的使用数据并设置它自己的过期策略。例如,客户机120已经从软件组件库106下载并安装了软件组件W、X、Y和Z。客户机120被配置为监视安装在它的***上的各软件组件,并记录涉及每个它的安装的软件组件的使用的使用数据210。此外,客户机120被配置有关于安装的各软件组件的过期策略220。该过期策略最初可以设置为一般过期策略,并且以后由用户根据他的或她的偏好修订。考虑如由客户机120记录的使用数据210的示例指示以下:
软件组件 自从上次使用以来的时间 上个月被调用的次数 平均处理器使用
 W  1天3小时 12  n/a
 X  93天 0  n/a
 Y  2小时 53  高
 Z  2天4小时 5  低
该使用数据指示软件组件X上次在三个多月前使用,而其它软件组件最近被使用。因此可以设置过期策略以自动使组件X过期。
在另一个方面,以与每个客户机类似的方式,软件组件库自身能够维护和重复利用它自己的软件组件。因此,在一个方面,客户组件库记录它自己的使用数据230,并且具有它自己的过期策略232。例如,由多个客户机的每个收集的使用数据220、222和224能够由客户库收集,并作为整体分析。例如,假设使用数据230指示特定的组件(组件W),已经有一段时间没有由作为整体的组(客户机120、122和124共同地)使用。例如,在图2中,组件W只由客户机120而不由客户机122和124利用。因此,可以确定该软件组件应该从软件组件库中一起停用。客户组件库106可从多个客户机(在该示例中,客户机120、122和124)中收集使用数据,并且确定组件W没有被充分使用以证明将其保持在该库中是正当的。
此外,使用数据能够被传送回卖主。
在一个方面,停用软件组件的动作涉及移除或卸载该组件。然而,因为没有保证停用的组件将永不再被调用,所以优选仍然提供对该组件的访问。因此,在一个实施例中,该组件被打包(wrap)为Web服务,并且使得从远程位置(如内部网络服务器)可访问。在未必有的情况下,由客户机再次调用该停用的服务,该组件仅仅远程地运行为Web服务,具有更慢的性能。
图3图示如何能够通过远程服务器310的使用仍提供对停用的组件的访问。在一个方面,通过Web服务器提供访问。远程服务器310可以例如运行在与客户和/或客户机相关联的局域网上。可替代地,远程服务器310可以位于局域网外部,但通过因特网仍然可访问。例如,卖主可以通过远程服务器310提供对软件组件的远程访问。
通常,组件具有表现其行为的接口或应用程序接口(API)。其它组件能够使用其接口而不必知道该组件的详细实现来调用该组件。该接口能够由Web服务打包机(wrapper)使用来将该组件打包到Web服务中。例如,基于协议(如简单目标访问协议(SOAP))的可扩展标记语言(XML),能够用于通过超文本传输协议(HTTP)提供对各组件的访问。SOAP提供了在运行在不同操作***上、具有不同技术和编程语言的各应用之间通信的方法。因此,Web服务打包机将SOAP封装(envelop)放置在接口周围,以将对组件的请求/来自组件的响应变换为XML消息。
可替代地,Web服务定义能够以WSDL(Web服务定义语言)产生,该WSDL能够用于生成调用服务/组件的代理客户机。各种传输协议由具有最流行的http的Web服务支持。其它技术当然能够用于将各组件(如数据库存储的程序)转换为Web服务。除Web服务调用以外的替代调用方法包括远程程序调用(RPC)或CORBA组件模型调用。
更复杂的机制也能用于确定何时软件组件应当被停用。一种更复杂的机制涉及将组件的使用历史动态地记录在它的使用数据中,并且使用该使用历史来计算统计模式。例如,名为打折的软件组件可能趋于在圣诞节之后以及在每个季度末被大量地使用。该***使用该历史模式统计来动态地将该组件移入和移出***。当打折季节结束时,该软件组件停用并放入储备作为服务器上的Web服务。该元数据能够位于本地***或远程库或两者中。当打折季节再次来到时,该软件组件能够带回到本地环境并重新安装。相同的机制能够用于删除公司的组件库中的各共享组件。
这些机制保证软件***“记得”它的各组件的使用历史,并能够根据需要反向恢复各组件的版本。因此,能够解决反向兼容性。调用储备的组件将耗费额外时间并影响***性能,但将减少***破损(breakage),并防止许多“空指针”错误。
历史元数据也能够使用与上述相同的机制删除,该机制要求创建该历史元数据的另一层元数据。创建元数据层的该循环提升了上述机制的可测量性;然而,实际上,元数据的额外层将不可避免地减慢***性能。
自动维护软件组件的***和方法的另一个方面是重新安置之前已经被停用的软件组件的能力。例如,一旦组件已经从使用中停用,如果使用足够频繁或大量(依赖于用户的策略),则该组件应当被带回或重新安装。软件***因此能够通过重复利用软件组件的概念适合它的使用环境,该软件组件重复利用的概念是当它们使用不够频繁时将其放入存储,而当它们再次变得有用时从存储中检索它们。
例如,通过Web服务被使得可远程访问的停用的组件能够转换回到“本地”组件-仅仅是上述组件的Web服务打包过程的相反过程。这不意味着该Web服务将被删除。组件的两种表示都能存在于不同位置-作为远程Web服务或作为本地的本地组件。是由用户的策略决定是否保持两种表示。
这可以是较小的便携式计算机设备的特定的优势。只有被频繁使用的组件将留在本地,不经常使用的额外的组件将被向远程推。这样,无线设备能够小而轻,但又强大。不同用户的设备基于该用户的使用模式也能够表现非常不同。
图4是图示在基于使用自动维护软件组件中涉及的基本步骤的流程图。
监视了安装在***上的多个软件组件的使用,并且记录了关于每个软件组件的使用的数据。在块410指示了监视***内的各种软件组件使用的步骤。如在块420所示,然后使用数据被存储。在一个方面,使用数据被存储为元数据,并且与一个或更多软件组件相关联。如在步骤430所示,然后鉴于过期策略分析使用数据。过期策略可以是应用于软件组件的全部或一组的全局过期策略,或应用于单独的软件组件的单独的过期策略。每个单独的组件的使用数据与应用于该组件的可应用的过期策略比较。这可以涉及比较超过一个过期策略,例如全局和单独的过期策略。在块435进行关于在一个或更多过期策略中指定的标准是否由使用数据符合的确定。如在块440所示,如果确定在过期策略中指定的标准已经符合,则停用该组件。在一个方面,停用组件涉及将该组件从***移除或卸载。为了在该组件再次被调用的情况下提供对其继续的访问,于是通过一些其它资源使得该组件可用。例如,在一个方面,该组件被移到远程位置如Web服务器,并且通过Web服务提供访问。在块450指示了对停用后的组件提供远程访问的步骤。
然而,停用的组件的使用仍然能够被监视,并且如果保证停用的组件的使用,则软件组件能够潜在地被重新安置。因此,经由远程访问监视了停用的组件的使用(460),并且存储了涉及停用的组件的使用数据(470)。重新安置策略用于确定是否该使用保证停用的组件的重新安置。重新安置策略类似于过期策略。因此,鉴于重新安置策略分析使用数据(480),并且如果使用数据符合在重新安置策略中指定的标准,则停用的组件能够重新安置,如块490所示。在一个方面,重新安置涉及在本地环境重新安装软件组件。一旦组件已经被重新安置,该循环就再次启动。
图5图示基于使用自动维护和重复利用软件组件的***500的方块图。在一个实施例中,***500适于存储和/或执行程序代码,并且使用通用计算机或任何其它硬件等价物实现。因此,***500包括处理器502、存储器506(例如随机存取存储器(“RAM”)和/或只读存储器(“ROM”))、组件重复利用模块508和各种I/O设备504。
处理器502通过***总线直接或间接地耦合到存储器506。存储器506能够包括在程序代码的实际执行期间采用的本地存储器、大容量存储、和/或高速缓冲存储器,其提供至少一些程序代码的暂时存储,为了减少在执行期间代码必须从大容量存储中检索的次数。
I/O设备504能够直接、或通过中间的输入/输出控制器耦合到***500。此外,I/O设备504能够包括键盘、键区(keypad)、鼠标、用于捕获语音命令的麦克风、指示设备、以及其它将由本领域普通技术人员之一识别的用户输入设备。此外,I/O设备504能够包括接收机、发送机、扬声器、显示器、图像捕获传感器、生物传感器等。此外,I/O设备504能够包括存储设备如带驱动器、软盘驱动器、硬盘驱动器、致密盘(“CD”)驱动器等。
网络适配器也可以耦合到***500,以使得***500能够通过中间的私有或公共网络变为耦合到其它***、远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器的类型。
应当理解的是,在此描述的方法和***能够采用全硬件实施例、全软件实施例、或包括硬件和软件元件的实施例的形式。如果软件被用于实现该方法或***,则该软件能够包括但不限于固件、驻留软件、微代码等。
此外,该方法和/或***能够采用计算机程序产品的形式,该计算机产品从提供程序代码用于由或结合计算机或任何指令执行***使用的、计算机可使用或计算机可读的介质可访问。为了该描述的目的,计算机可使用或计算机可读的介质能够是任何装置,其能够包括、存储、通信、传播或传送用于由或结合指令执行***、装置、或设备使用的程序。
该介质能够是电、磁、光、电磁、红外、或半导体***(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机盘、RAM、ROM、刚性磁盘和光盘。当前的光盘示例包括CD-只读存储器(“CD-ROM”)、CD-读/写(“CD-R/W”)和DVD。
图6更详细地图示图5的组件维护模块。多个软件组件602存在于本地环境中。各软件组件可以例如安装在如之前图中所示的客户机计算机120、122或124之一上。可替代地,各软件组件能够是在客户组件库106中发现的软件组件。使用记录模块604能够监视多个软件组件602的使用。如上所述,能够使用许多测量包括但不限于组件被调用次数、用户访问该组件次数、自从上次被使用以来的时间长度、以及资源消耗(如盘空间、存储器、处理器利用等)来监视使用。然后关于每个软件组件的使用数据606被存储。过期策略608也被存储。组件删除模块610访问使用数据606和过期策略608,以确定软件组件的使用是否符合在过期策略中指定的标准。这可以通过简单的比较(如是否使用水平高于或低于在过期正常中指定的值)完成。可替代地,在使用模式的情况下,这可以涉及如在上面已经描述的更复杂的统计分析。如果已经确定软件组件的使用数据符合在过期策略中指定的标准,则组件删除组件停用该组件。这能够通过将软件组件从环境中移除或卸载完成。在本公开的一个方面,远程访问打包机被用来从远程位置提供将来对停用的组件的访问。
尽管设备和方法已经根据目前认为是最实用和优选的实施例描述,但是要理解的是,本公开不需要限于公开的实施例。意图在于覆盖包括在权利要求的精神和范围内的各种修改和类似安排,该权利要求的范围应当符合最广的解释以便包含所有这样的修改和类似结构。本公开包括权利要求的任何和全部实施例。

Claims (23)

1.一种用于维护软件组件的方法,包括:
记录用于多个软件组件的一个或更多的使用数据;
如果用于多个软件组件的至少一个的使用数据符合在过期策略中指定的使用标准,则自动移除该至少一个软件组件;以及
通过远程服务器提供对移除的软件组件的访问。
2.如权利要求1所述的用于维护软件组件的方法,其中使用数据存储为元数据。
3.如权利要求1所述的用于维护软件组件的方法,其中移除软件组件包括卸载。
4.如权利要求1所述的用于维护软件组件的方法,其中使用数据包括自从软件组件上次使用以来的时间长度。
5.如权利要求1所述的用于维护软件组件的方法,其中使用数据包括软件组件已经被访问的次数。
6.如权利要求1所述的用于维护软件组件的方法,其中使用数据包括关于通过软件组件的硬件资源的利用的信息。
7.如权利要求1所述的用于维护软件组件的方法,其中过期策略是全局过期策略,并且应用于多个软件组件的全部或一组。
8.如权利要求1所述的用于维护软件组件的方法,其中过期策略是单独的过期策略,并且应用于单独的软件组件。
9.一种用于维护软件组件的***,包括:
使用数据记录模块,用于记录关于安装在本地环境内的多个软件组件的使用的数据,并存储该数据作为使用数据;
删除模块,用于将使用数据与过期策略比较,并且如果确定多个软件组件的至少一个的使用低于在过期策略中指定的水平,则自动将该至少一个软件组件从本地环境中移除;以及
远程访问模块,用于将移除的组件重新定位到远离本地环境的位置,并提供对移除的组件的未来访问。
10.如权利要求9所述的***,其中远离本地环境的位置是环球网服务器。
11.如权利要求9所述的***,其中通过环球网服务提供对移除的组件的访问。
12.一种用于维护软件组件的方法,包括:
记录用于多个软件组件的一个或更多的第一组使用数据;以及
如果用于多个软件组件的至少一个的第一组使用数据符合在过期策略中指定的标准,则自动移除该至少一个软件组件;
通过远程服务器提供对移除的组件的访问;
记录用于移除的软件组件的第二组使用数据;以及
如果第二组使用数据符合在重新安置策略中指定的使用标准,则自动重新安置该移除的软件组件。
13.如权利要求12所述的用于维护软件组件的方法,其中使用数据包括自从软件组件上次使用以来的时间长度。
14.如权利要求12所述的用于维护软件组件的方法,其中使用数据包括软件组件已经被访问的次数。
15.如权利要求12所述的用于维护软件组件的方法,其中使用数据包括关于通过软件组件的硬件资源的利用的信息。
16.如权利要求12所述的用于维护软件组件的方法,其中过期策略是全局过期策略,并且应用于多个软件组件的全部或一组。
17.如权利要求12所述的用于维护软件组件的方法,其中过期策略是单独的过期策略,并且应用于单独的软件组件。
18.如权利要求12所述的用于维护软件组件的方法,其中过期策略由软件组件的用户设置。
19.如权利要求13所述的用于维护软件组件的方法,其中在过期策略中指定的使用标准是时间长度,并且如果自从软件组件的上次使用以来的时间长度大于使用标准中的时间长度,则使用数据符合使用标准。
20.如权利要求14所述的用于维护软件组件的方法,其中在过期策略中指定的使用标准是数目,并且如果软件组件已经被访问的次数小于使用标准中的数目,则使用数据符合使用标准。
21.如权利要求12所述的用于维护软件组件的方法,其中对移除的软件组件的访问通过远程运行的环球网服务提供。
22.如权利要求12所述的用于维护软件组件的方法,其中重新安置移除的软件组件包括重新安装该软件组件。
23.一种计算机程序产品,包括计算机可使用的介质,其具有计算机可读的程序,其中该计算机可读的程序当在计算机上被执行时导致计算机:
执行之前的各方法权利要求所述的任一种方法。
CNA2007101879529A 2006-12-22 2007-11-16 维护软件组件的***和方法 Pending CN101206573A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/615,894 2006-12-22
US11/615,894 US7590599B2 (en) 2006-12-22 2006-12-22 System and method of automatically maintaining and recycling software components

Publications (1)

Publication Number Publication Date
CN101206573A true CN101206573A (zh) 2008-06-25

Family

ID=39544287

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101879529A Pending CN101206573A (zh) 2006-12-22 2007-11-16 维护软件组件的***和方法

Country Status (2)

Country Link
US (1) US7590599B2 (zh)
CN (1) CN101206573A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104111968A (zh) * 2013-04-22 2014-10-22 国际商业机器公司 确保对长期存储的电子文档的访问的方法和***

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11922196B2 (en) * 2010-02-26 2024-03-05 Red Hat, Inc. Cloud-based utilization of software entitlements
US9104991B2 (en) * 2010-07-30 2015-08-11 Bank Of America Corporation Predictive retirement toolset
US10474684B2 (en) 2012-02-08 2019-11-12 Telefonaktiebolaget Lm Ericsson (Publ) Method, computer program, computer program product and system for handling sensor data
US9519647B2 (en) * 2012-04-17 2016-12-13 Sandisk Technologies Llc Data expiry in a non-volatile device
JP6050972B2 (ja) * 2012-06-29 2016-12-21 株式会社Nttドコモ 情報処理装置、情報通知方法及びプログラム
US9213540B1 (en) * 2015-05-05 2015-12-15 Archive Solutions Providers Automated workflow management system for application and data retirement
US10242122B2 (en) 2015-05-05 2019-03-26 DGD Systems, Inc. Automated workflow management system for application and data retirement
US10489352B2 (en) * 2015-11-16 2019-11-26 International Business Machines Corporation Software discovery for software on shared file systems
US10439892B2 (en) * 2016-08-12 2019-10-08 Microsoft Technology Licensing, Llc Optimizing performance based on behavioral and situational signals
WO2019000473A1 (zh) * 2017-06-30 2019-01-03 广东欧珀移动通信有限公司 系数计算方法、组件调用方法、装置、介质、服务器及终端
CN107491331B (zh) * 2017-08-09 2019-03-12 深圳壹账通智能科技有限公司 一种应用升级方法及终端设备
US10372371B2 (en) * 2017-09-14 2019-08-06 International Business Machines Corporation Dynamic data relocation using cloud based ranks
US10721304B2 (en) 2017-09-14 2020-07-21 International Business Machines Corporation Storage system using cloud storage as a rank
US10372363B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Thin provisioning using cloud based ranks
US10581969B2 (en) 2017-09-14 2020-03-03 International Business Machines Corporation Storage system using cloud based ranks as replica storage
US11100009B2 (en) 2020-01-03 2021-08-24 Bank Of America Corporation Intelligent detection and ejection of unused application components

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999908A (en) * 1992-08-06 1999-12-07 Abelow; Daniel H. Customer-based product design module
WO1994018634A1 (en) * 1993-02-01 1994-08-18 Lsc, Inc. Archiving file system for data servers in a distributed network environment
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5812992A (en) * 1995-05-24 1998-09-22 David Sarnoff Research Center Inc. Method and system for training a neural network with adaptive weight updating and adaptive pruning in principal component space
US5790935A (en) * 1996-01-30 1998-08-04 Hughes Aircraft Company Virtual on-demand digital information delivery system and method
US5950158A (en) * 1997-07-30 1999-09-07 Nynex Science And Technology, Inc. Methods and apparatus for decreasing the size of pattern recognition models by pruning low-scoring models from generated sets of models
US6298457B1 (en) * 1997-10-17 2001-10-02 International Business Machines Corporation Non-invasive networked-based customer support
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104111968A (zh) * 2013-04-22 2014-10-22 国际商业机器公司 确保对长期存储的电子文档的访问的方法和***
CN104111968B (zh) * 2013-04-22 2018-04-10 国际商业机器公司 确保对长期存储的电子文档的访问的方法和***

Also Published As

Publication number Publication date
US7590599B2 (en) 2009-09-15
US20080154776A1 (en) 2008-06-26

Similar Documents

Publication Publication Date Title
CN101206573A (zh) 维护软件组件的***和方法
US20200278859A1 (en) Scheduling upgrades in distributed computing systems
CN101218557B (zh) 用于存储器迁移的***和方法
CN101454765B (zh) 用补丁等来更新虚拟机的方法
US7676803B2 (en) Method of defining packaging applicability
US8286154B2 (en) Apparatus and method for live loading of version upgrades in a process control environment
US8924350B2 (en) Shadow system mirroring of an original system during uptime of an upgrade process
CN100426235C (zh) 在软件包管理***将用户进程表示为软件包的***和方法
CN102754073B (zh) 用于虚拟化的扩展点声明性注册的方法和***
US20040243997A1 (en) Method, system, and program for installing program components on a computer
US20050257206A1 (en) Pair-update mechanism for update module
CN102216905A (zh) 应用还原点
IE20070432A1 (en) Apparatus and methods for updating firmware
JP2010521726A (ja) カスタマイズされたソフトウェア製品を配布する方法、システム、およびコンピュータ・プログラム
CN102971707A (zh) 为软件包安装配置计算机***
CN102520991A (zh) 高效的虚拟应用更新
US20050010915A1 (en) Network-based server code auto upgrade method and system
US20050120331A1 (en) Hosting environment abstraction agents
US20070028228A1 (en) Software upgrades with user advisement
US20060218277A1 (en) Activating on-demand computer resources
US20080313628A1 (en) Metrics pack distribution for data reporting tool
US20120096453A1 (en) Software Package Management Mechanism
CN100507847C (zh) 用于提供对应用程序的访问的方法和数据处理***
CN111427588A (zh) 中止固件包的安装
US10216505B2 (en) Using machine learning to optimize minimal sets of an application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20080625