首页 / 促进软件产品动态配置

促进软件产品动态配置有效专利 发明

技术内容

技术领域 本发明涉及用于动态配置软件产品的技术。更具体地,本发明 涉及促进软件产品动态配置的系统。 背景技术 尽管当前在线商务有了显著增长,物理零售设施仍是重要的销 售渠道。不幸的是,这些物理零售设施具有固有的操作成本,该操 作成本可能限制利润率。例如,为了满足不同客户的需要,许多零 售设施具有多种多样的产品并且维护较大库存。然而,多种多样的 产品和较大库存增加了运营零售设施的开销,例如,需要较大的展 示空间所导致的开销。 这些问题还影响了软件产品。特别地,许多软件供应商提供一 个产品族中的一套紧密相关的软件产品,这些软件产品具有不同特 征和价格,诸如报税软件的消费者版本和专业版本。通常,这些产 品族中的软件产品共享多个模块。由此,当需要改变给定模块时, 这些改变可能影响多个软件产品,并且对测试和分发具有相关联的 影响。 零售设施通常具有并展示给定产品族中的各种软件产品,这需 要有偿的货架或者地板空间,由此增加了零售设施的大小,并且显 著增加了库存需求。不幸的是,通常难以针对如此大范围的软件产 品进行适当管理。由此,零售设施可能对于流行的软件产品而言库 存过小,而对于不太流行的软件产品而言库存过大。 此外,公司通常将一组离散的特征捆绑至这些软件产品中的每 个,以尝试满足特定客户群的需要以及对软件产品进行彼此区分。 然而,客户通常基于这些特征的较小子集来购买给定软件产品,并 且对于客户而言其余特征的附加价值较小或者没有附加价值。此外, 这些附加特征通常增加了给定软件产品中用户界面的复杂性,并且 由此可能降低软件产品的整体用户体验。 由此,通过零售设施的软件产品销售常常由于需要提供各种各 样具有不同固定特征集合的软件产品而变得复杂。 发明内容 本发明的一个实施方式涉及一种提供对软件产品的至少部分的 访问的系统。在操作期间,此系统从第一位置接收购买信息,其中, 购买信息包括关于用户购买了对其的访问的已购买软件特征的信 息,并且其中,由软件产品中的第一模块子集来提供已购买的软件 特征。接着,系统从第二位置接收访问请求,其中,访问请求包括 在用户购买对已购买软件特征的访问时提供给用户的标识符。接着, 系统向第二位置提供配置指令,从所述第二位置处可以访问软件产 品,其中,配置指令动态地启用第一模块子集。 在某些实施方式中,配置指令包括解密密钥。例如,解密密钥 包括公钥,所述公钥与用以对软件产品的至少部分加密的私钥相关 联。 在某些实施方式中,动态启用第一模块子集允许用户使用已购 买的软件特征:不必重新安装软件产品的部分;不必首先重启安装 所述软件产品的计算机;和/或不必安装所述软件产品的其他部分。 此外,在某些实施方式中,动态启用第一模块子集允许用户使用已 购买的软件特征而不必下载附加的模块。 在某些实施方式中,在计算机上执行所述软件产品的同时,动 态地启用所述第一模块子集。 在某些实施方式中,配置指令促进由用户“依菜单定制(a la carte)”地从软件产品中已经进行了测试和编译的模块中选择已购 买的软件特征。 在某些实施方式中,第一位置是物理零售设施和/或在线零售设 施。此外,所述第一位置可以不同于第二位置。 在某些实施方式中,通过服务器经由网络向所述第二位置提供 配置指令。 在某些实施方式中,在一段时间间隔之后,重复接收访问请求 和提供配置指令的操作,由此允许在软件产品中启用的当前软件特 征的同步。 在某些实施方式中,系统从用户处接收购买请求以及支付,其 中,所述购买请求包括与附加购买的软件特征相关联的信息,并且 其中,所述附加购买的软件特征与软件产品中的第二模块子集相关 联。接着,系统向所述第二位置提供附加配置指令,其中所述附加 配置指令动态地启用所述第二模块子集。注意,附加购买的特征可 以不同于已购买特征,或者附加购买的特征可以与已购买特征至少 部分地重叠。此外,在某些实施方式中,支付基于附加购买的软件 特征。 另一实施方式涉及与所述系统结合使用的计算机程序产品。此 计算机程序产品可以包括与至少一些上述操作对应的指令。 另一实施方式提供用于访问所述软件产品的至少部分的方法。 此方法可以执行至少一些上述操作。 附图说明 图1是示出了根据本发明一个实施方式的包括网络连接在一起 的计算机和服务器的计算机系统的框图; 图2是示出了根据本发明一个实施方式的用于访问软件产品的 至少部分的方法的流程图; 图3是示出了根据本发明一个实施方式的计算机系统的框图; 图4是示出了根据本发明一个实施方式的数据结构的框图;以 及 图5是示出了根据本发明一个实施方式的数据结构的框图。 注意,贯穿附图,相同的参考数字表示相应的部件。 具体实施方式 给出下文的说明书是为了使本领域技术人员能够制造和使用本 发明,并且说明书是在特定应用及其需求的上下文中提供的。对于 所公开实施方式的各种修改对于本领域技术人员而言是易见的,并 且在此定义的一般原理可以应用于其他实施方式和应用,而并不脱 离本发明的精神和范围。由此,本发明并非旨在限于所示出的实施 方式,而是符合与在此公开的原理和特征相一致的最广泛的范围。 描述了与计算机系统结合使用的计算机程序产品(例如,软件)、 方法和计算机系统的实施方式。这些系统、软件和过程可以用来提 供对软件产品的至少部分的访问。特别地,计算机系统可以向先前 已经购买了对软件特征的访问的用户提供配置指令。这些配置指令 可以动态地启用软件产品中与已购买软件特征相关联的模块子集。 注意,可以在物理零售设施中购买和/或在在线零售设施(诸如,网 站或者网页)中购买对软件特征的访问。 在某些实施方式中,配置指令促进由用户“依菜单定制”地从 软件产品中已经进行了测试和编译的模块中选择已购买的软件特 征。此外,用户可以动态配置模块子集:不必重新安装软件产品的 部分;不必首先重启安装了所述软件产品的计算机;和/或不必安装 所述软件产品的其他部分。 稍后,用户可以从计算机系统购买附加软件特征,并且计算机 系统可以提供附加配置指令,所述配置指令用以动态地启用软件产 品中与附加软件特征相关联的附加模块子集。注意,附加模块可以 不同于模块子集、或者可以至少部分地重叠于模块子集,并且支付 可以基于附加购买的软件特征。 这些技术可以实现为独立软件应用,或者实现为另一应用中的 子例程或者程序模块。此外,可以将程序的至少部分配置为在客户 端计算机(诸如,个人计算机、膝上型计算机、蜂窝电话、PDA或 者能够操纵计算机可读数据的其他设备)上执行,或者通过网络(诸 如,互联网、内联网、LAN、WAN、MAN或者网络的结合、或者 支持在计算系统之间通信的其他技术)经由相关联的计算系统而从 客户端计算机远程执行。由此,购买信息、软件产品和配置指令可 以本地存储(例如,在本地计算机上)和/或远程地存储(例如,在 经由网络访问的计算机或者服务器上)。 通过动态地启用先前经过测试和编译的软件产品中的特征子集 和/或模块子集,这些技术允许将此软件产品中的软件特征定制为给 定用户的需要。由此,此能力允许零售设施具有并且展示较少的软 件产品,由此来简化操作、降低开销和/或降低库存中的短缺和过剩。 此外,这种软件产品通常复杂性较低,并且易于测试和分发。例如, 通过允许用户仅购买他们感兴趣的那些特征,可以简化用户界面并 且可以改进整体用户体验。 现在描述用于提供对软件产品的至少部分的访问的系统、设备 和过程的实施方式。图1给出了示出包括网络连接在一起的计算机 和服务器的计算机系统100的实施方式。在此实施方式中,用户可 以首先从一个或者多个零售设施116购买软件产品或者对软件产品 的至少部分的访问,所述零售设施包括商店118、分发者120、网站 122和/或其他销售渠道。通常,软件产品或者软件产品的至少部分 包括用户可能使用的一个或者多个软件特征。此外,这些软件特征 与软件产品中的至少一个模块子集相关联。 当用户购买软件产品或者购买对软件产品的部分的访问时,用 户接收对应于用户购买的标记或者标识符。此外,用户可以接收关 于如何使用该标识符来接收软件产品的指令,或者关于如何启用对 软件产品的部分的访问的指令。例如,用户可以购买软件产品的加 密版本,以及(如下所述)用户可以遵循指令并使用标识符来启用 对软件产品的至少部分的访问。可替换地,用户可以遵循指令并且 使用标识符来接收软件产品的至少部分或者访问与软件产品的至少 部分相关联的软件特征。 在完成购买事务之后,零售设施(例如,商店118)可以经由网 络112(例如,互联网)来向服务器114提供购买信息。此服务器可 以与软件产品的提供商相关联,并且购买信息可以包括:提供给用 户的标识符、以及关于用户已经购买了对其的访问的软件产品或者 软件产品的部分的信息。更一般地,购买信息包括关于用户已经购 买了对其的访问的已购买软件特征的信息。 然后,用户可以通过网络112从计算机110访问服务器114。计 算机110可以位于远离零售设施116的位置。例如,计算机110可 以位于用户的本地或者工作站位置。当用户访问服务器114时,用 户可以提供包括标识符的访问请求。 基于购买信息和访问请求,服务器114可以允许用户访问软件 产品(其可与软件模块子集相关联)中的模块子集和/或特征子集。 在某些实施方式中,服务器114可以向计算机110提供配置信息。 这些配置指令可以动态地启用模块子集和/或特征子集。例如,配置 指令可以包括例如公钥的解密密钥,所述公钥与先前用以对软件产 品的至少部分加密的私钥相关联。使用此解密密钥,用户可以解密 从零售设施116之一购买的软件产品的至少部分。 在示例性实施方式中,用户在计算机110上安装已购买的软件 产品。此软件产品可以包括多个模块(与不同软件特征相关联)。 此外,多个模块可以是已经编译和测试的,并且由此为使用做好了 准备。然而,可以加密这些模块,从而使用户在使用模块之前首先 需要解密给定模块。通过访问和接收配置指令(包括一个或者多个 解密密钥),用户可以解密和使用用户已经购买了对其的访问的适 当模块子集。 注意,在这些实施方式中,由零售设施116销售的软件产品可 以包括比通常用户可能希望在给定时间访问的要多的模块和/或软件 特征。零售设施116可以存储软件产品的通用版本,而不是存储和 销售此软件产品的不同版本。此外,零售设施116可以通过允许用 户“依菜单定制”地来选择用户可能希望访问的那些软件特征,以 便将此通用软件产品定制为特定用户的需要。如上所述,计算机系 统100允许用户随后接收适当的配置指令,以动态地启用已购买的 模块子集和/或软件特征子集。 可以对软件产品中的软件特征的模块子集和/或软件特征子集执 行动态启用,而用户:不必重新安装所述软件产品的部分;不必首 先重启安装了所述软件产品的计算机;和/或不必安装所述软件产品 的另一部分。此外,在某些实施方式中,动态启用模块子集和/或软 件特征子集允许用户使用已购买的软件特征而不必下载其他模块。 由此,在计算机110上执行软件产品的同时,可以动态地启用模块 子集和/或软件特征子集。 在某些实施方式中,在一段时间间隔之后,用户重复向服务器 114提供访问请求的操作,并且服务器114重复提供配置指令的操 作。例如,配置指令的版本在所述时间间隔之后可能过期,并且可 能需要更新版本。这允许对在软件产品中启用的当前软件特征的同 步,或者可以允许对基于订购而销售的软件特征的访问。由此,用 户可以例行地或者周期性地支付,以便继续对模块子集和/或软件特 征子集的访问。 此外,在最初购买之后,用户可以选择购买对软件产品中的附 加模块子集和/或附加软件特征子集的访问。在这些实施方式中,用 户可以从零售设施116之一或者直接从软件产品的提供商处(例如, 经由服务器114)购买对附加软件特征的访问。在从用户(可以基于 附加软件特征)接收购买需求(包括与附加软件特征相关联的信息) 以及支付之后,服务器114可以提供附加配置指令,所述附加配置 指令对计算机110动态地启用附加模块子集和/或附加软件特征子 集。注意,这些附加软件特征可以包括用户所购买的原始软件特征, 可以与原始软件特征部分地重叠,或者可以是不同的软件特征。此 外,附加模块子集可以包括模块子集,可以与模块子集部分地重叠, 或者可以包括不同模块。 在其他实施方式中,用户在购买时没有从零售设施116之一处 接收软件产品。例如,用户随后可以从服务器114将软件产品下载 至计算机110。注意,软件产品可以是计算机110上的独立应用,和 /或可以嵌入另一应用。在一个示例性实施方式中,软件产品包括申 报所得税软件和/或财务记账软件。 在某些实施方式中,所得税软件包括:TurboTaxTM(来自加利 福尼亚州Mountain View的Intuit公司)、TaxActTM(来自爱荷华州 Cedar Rapids的2nd Story Software公司)和或能够申报所得税退税的 其他软件。此外,在其他实施方式中,财务记账软件包括薪金记账 软件,诸如QuickBooksTM(来自加利福尼亚州Mountain View的Intuit 公司)、PeachTree CompleteTM(来自英国伦敦的Sage Group PLC)、 MYOB Business EssentialsTM(来自新泽西州Rockaway的MYOB US 公司)、NetSuite Small Business AccountingTM(来自加利福尼亚州 San Mateo的NetSuite公司)、Cougar MountainTM(来自爱达荷州 Boise的Cougar Mountain Software)、Small Business ManagerTM(来 自华盛顿州Redmont的Microsoft公司)、Simply AccountingTM(来 自英国伦敦的Sage Group PLC)、CYMA IV AccountingTM(来自亚 利桑那州Temple的CYMA Systems公司)、DacEasyTM(来自佐治 亚州Lawrenceville的Sage Software SB公司)、Microsoft MoneyTM (来自华盛顿州Redmont的Microsoft公司)和/或能够处理薪金信 息的其他财务记账软件。最后,在某些实施方式中,财务记账软件 包括财务计划软件,诸如QuickenTM(来自加利福尼亚州Mountain View的Intuit公司)、Microsoft MoneyTM(来自华盛顿州Redmont 的Microsoft公司)、SlashMoneyTM(来自加拿大Los Gatos的 SplashData公司)、MvelopesTM(来自犹他州Draper的In2M公司)、 和/或其他开源应用,诸如GnucashTM、PLCashTM、BudgetTM(来自 LLC的Snowmint Creative Solutions)、和/或能够处理财务信息的其 他财务计划软件。 尽管软件产品可以驻留在计算机110上,其他实施方式可以利 用嵌入网页(再次,或者作为单独应用或者作为另一应用的部分) 中的软件工具。此网页可以由服务器114经由网络112来提供。在 一个示例性实施方式中,财务软件工具是以如下语言编写的软件包: 如JavaScriptTM(即,该财务软件工具包括包含JavaScript指令的程 序或者过程)、ECMAScript(由欧洲计算机制造协会国际发布的规 范)、VBScriptTM(Microsoft公司的商标)或者任何其他客户端侧 或者服务器侧的脚本语言。换言之,软件工具可以包括这样的程序 或者过程,所述程序或者过程中包含JavaScript指令、ECMAScript 指令、VBScript指令或者以适于由浏览器或者计算机110上的其他 客户端应用来绘制的其他可编程语言的指令。在这些实施方式中, 可以通过网页提供的、或者先前提供给计算机110的配置指令来动 态地启用对软件工具的访问。 在一个示例性实施方式中,由零售设施销售的软件产品包括与 三种软件产品类型(诸如,客户、高级以及专业)相关联的模块和/ 或特征,其中每个包括五组软件特征。基于用户选择,可以将软件 产品配置为给定用户需要。例如,配置指令可以选择软件产品类型 之一以及五组软件特征的四个不同设置之一。 在某些实施方式中,计算机系统100包括较少或者其他的组件。 此外,可以将两个或者多个组件结合为单一组件,和/或可以改变一 个或者多个组件的位置。 现在讨论用于提供对软件产品的访问的方法。更具体地,图2 给出了示出用于提供对软件产品的至少部分的访问的方法200的实 施方式的流程图,其可以在计算机系统上实现,例如图1中所示的 计算机系统100。在操作期间,此系统从第一位置接收购买信息 (210),其中所述购买信息包括关于用户购买了对其的访问的已购买 软件特征的信息,并且其中由软件产品中的第一模块子集来提供已购买 软件特征。接着,系统从第二位置接收访问请求(212),从所述第二 位置处可以访问软件产品,其中所述访问请求包括在用户购买对已购 买软件特征的访问时提供给该用户的标识符。然后,系统向第二位置 提供配置指令(214),其中配置指令动态地启用第一模块子集。 在某些实施方式中,系统可选地从用户处接收购买请求和支付 (216),其中购买请求包括与附加购买的软件特征相关联的信息,并 且其中,附加购买软件特征与软件产品中的第二模块子集相关联。接着, 系统可选地向第二位置提供附加配置指令(218),其中附加配置指令 动态地启用第二模块子集。 注意,在方法200的某些实施方式中:可以存在附加的或者更 少操作;可以改变操作的顺序;以及可以将两个或者多个操作结合 为单一操作。 现在描述用于实现这些技术的计算机系统。图3给出了示出计 算机系统300的实施方式的框图。计算机系统300包括:一个或者 多个处理器310、通信接口312、用户接口314、以及将这些组件耦 合在一起的一个或者多个信号线322。注意,一个或者多个处理单元 310可以支持并行处理和/或多线程操作,通信接口312可以具有持 久通信连接,并且一个或者多个信号线322可以构成通信总线。此 外,用户接口314可以包括:显示器316、键盘318和/或指示器320 (例如,鼠标)。 计算机系统300中的存储器324可以包括易失性存储器和/或非 易失性存储器。更具体地,存储器324可以包括:ROM、RAM、 EPROM、EEPROM、FLASH、一个或者多个智能卡、一个或者多个 磁盘存储设备、和/或一个或者多个光存储设备。存储器324可以存 储操作系统326,所述操作系统326包括处理用于执行依赖硬件的任 务的各种基础系统服务的过程(或者一组指令)。尽管在计算机系 统100中未示出,在某些实施方式中的存储器324包括浏览器。存 储器324还可以在通信模块328中存储通信过程(或者一组指令)。 这些通信过程可以用于与一个或者多个计算机和/或服务器(包括关 于计算机系统300位于远程的计算机和/或服务器)进行通信。 存储器324可以包括多个程序模块(或者一组指令),包括配 置模块330(或者一组指令)和/或加密模块350(或者一组指令)。 响应于一个或多个访问请求336,配置模块330可以使用购买信息 332(例如,与商业设施A 334-1和/或商业设施B 334-2相关联的信 息)来提供配置指令344。此外,在某些实施方式中,随同一个或者 多个访问请求336提供一个或者多个用户标识符348和/或支付信息 346。这些配置指令344至少可以动态地启用软件产品340中的模块 子集和/或软件特征子集(例如,模块A 342-1和/或模块B 342-2)。 在某些实施方式中,配置指令344包括与加密模块350相关联 的一个或者多个解密密钥。例如,加密模块350可以加密软件产品 340,并且解密密钥可以用以解密一个或者多个模块342。 此外,在某些实施方式中,配置模块330被用以使用可选同步 信息338来例行地或者周期性地同步软件产品340中已启用的模块 和/或已启用的特征。 可以通过高级程序语言、面向对象编程语言和/或通过汇编或机 器语言来实现存储器324中的各种模块中的指令。可以对编程语言 进行编译或者解释,也即,编程语言是可配置的或者被配置为由一 个或者多个处理单元310来执行。 尽管计算机系统300示出为具有多个离散的组件,但图3旨在 提供对可以存在于计算机系统300中的各种特征的功能性描述,而 不是提供在此描述的实施方式的结构性示意。在实践中,如本领域 普通技术人员所认识的,利用执行特定功能子集的各种计算机组或 者服务器组,计算机系统300的功能可以在大量服务器或者计算机 之间分布。在某些实施方式中,可以通过一个或者多个ASIC和/或 一个或者多个数字信号处理器DSP来实现计算机系统300的某些或 者全部功能。 计算机系统300可以包括较少组件或者附加组件。此外,可以 将两个或更多组件结合成为单一组件,和/或可以改变一个或者多个 组件的位置。在某些实施方式中,如现有技术中已知的,可以通过 较多硬件且较少软件的方式或者较少硬件且较多软件的方式来实现 计算机系统300的功能。 现在描述可以在计算机系统100(图1)和/或300(图3)中使 用的数据结构。图4给出了示出数据结构400的实施方式的框图。 此数据结构可以包括购买信息410。给定的购买信息410(例如,购 买信息410-1)可以包括:时间戳412-1、用户414-1、一个或者多个 软件产品416-1、一个或者多个软件特征418-1和/或一个或者多个商 业设施420-1。 图5给出了示出数据结构500的实施方式的框图。此数据结构 可以包括与软件产品510相关联的信息。给定软件产品的信息(例 如,软件产品510-1)可以包括:时间戳512-1、一个或者多个软件 特征514-1、一个或者多个模块516-1、和/或已编译代码518-1。 注意,在数据结构400(图4)和/或500的某些实施方式中,可 以存在较少或者附加的组成部分。此外,可以将两个或者更多成分 结合成为单一组成部分,和/或改变一个或者多个组成部分的位置。 已经给出的对本发明实施方式的上述描述仅仅是出于说明和描 述的目的。所述实施方式并非旨在详尽或者将本发明限制于所公开 的形式。由此,对本领域普通技术人员来说,各种修改和变型是易 见的。另外,上述公开并非旨在限制本发明。本发明的范围由所附 权利要求书限定。 相关申请的交叉引用 本申请是发明人Edmund Y.L.Sung、Timothy A.Rosemore、 Jennifer Possin、Raymond S.Tenenbaum以及Stephen L.Molloy于 2006年6月27日提交的名为“Method and Apparatus for Authorizing a Software Product to be Used on a Computer System”的未决美国专利 申请序列号No.11/476,990(代理卷号No.INTU-060798)的部分继 续申请,在此引入其内容作为参考。由此,本申请根据35U.S.C§ 120要求上述母案专利申请的优先权。

相关技术
促进软件相关技术
动态配置相关技术
R·W·库克发明人的其他相关专利技术