软件升级分析系统的制作方法

文档序号:6578122阅读:140来源:国知局
专利名称:软件升级分析系统的制作方法
技术领域
本发明涉及软件安装,并且更具体地涉及软件升级。
背景技术
软件程序可能很大并且复杂。此类软件程序可能难于安装和/或 升级,并且安装和/或升级是耗时的。已知的是,历经数月时间来升 级企业商业应用。在某些示例中,由于在升级中引入的软件程序中 的改变,在升级之后用户可能改变他们使用该软件程序的方式。此 外,在升级之前可能对软件程序进行修改或定制。升级可能使得一 个或多个修改失效或不能正常工作。因而,为了对生产系统中的软 件程序升级进行规划,软件程序升级的影响可能是令人感兴趣的。
为了确定软件程序升级的影响,可以使用测试系统。测试系统 可以包括当前在生成系统中使用的软件程序的副本。继而可以对该 软件程序的副本进行升级而不干扰生产系统的用户。然后,在测试 系统中分析该升级的影响。然而,在不对操作系统或测试系统执行 升级的情况下,分析软件升级的影响可能更有效。

发明内容
在一个示例中,公开了一种系统,所述系统用于在不执行升级 的情况下,分析已修改形式的软件程序的第 一版本到已修改形式的 软件程序的第二版本的升级,所述系统可以包括计算机代码。该计 算机代码可以提供默认程序对象的默认状态信息。该默认程序对象 包括在未修改形式的软件程序的第二版本的默认安装中。该计算机 代码还可以从应用数据库获取当前程序对象的当前状态信息。已修 改形式的软件程序可以包括当前程序对象。该计算机代码可以基于当前状态信息和默认状态信息之间的比较生成升级信息。该升级信 ,氛、可以标识将受到升级影响的当前程序对象的子集。
在另一示例中,公开了一种方法,所述方法用于在不执行升级 的情况下,对执行从已修改形式的软件程序的第 一版本到第二版本 的升级的影响进行分析,所述方法可以包括在库数据库中提供默认 状态信息。默认状态信息可以包括第 一组默认程序对象和第二组默 认程序对象之间的差异。第 一組默认程序对象将包括在未修改形式 的软件程序的第 一版本的默认安装中。第二组默认程序对象将包括 在未修改形式的软件程序的第二版本的默认安装中。该方法可以进 —步包括从应用数据库获取涉及当前程序对象的当前状态信息。已 修改形式的软件程序的第 一版本可以包括当前程序对象。该方法还 可以包括为了生成升级信息,将当前状态信息与默认状态信息进行 比较。升级信息可以标识将受到升级影响的当前程序对象的子集。
在又一 示例中,公开了 一种在计算机中使用的计算机程序产品, 用于在不执行升级的情况下,对执行从已修改形式的软件程序的第 一版本到第二版本的升级的影响进行分析,该计算机程序产品可以 包括计算机可读介质。该计算机可读介质可以包括物理上包含在其 中的计算机可执行程序代码和默认状态信息。默认状态信息可以包 括第 一 组默认程序对象和第二组默认程序对象之间的差异。第 一组 默认程序对象将包括在未修改形式的软件程序的第 一版本的默认安 装中。第二组默认程序对象将包括在未修改形式的软件程序的第二 版本的默认安装中。该计算机程序产品可以进一 步包括计算机可执 行程序代码,以使得计算机的处理器从应用数据库获取当前程序对 象的当前状态信息。该已修改形式的软件程序可以包括当前程序对 象。该计算机程序产品还可以包括计算机可执行程序代码,以使得 处理器基于当前状态信息与默认状态信息之间的比较生成升级信 息。升级信息可以标识将受到升级影响的当前程序对象的子集。
参考附图,本发明的其他目的和优势将从下文的说明书中变得 明显,在附图中,清楚地示出了本发明优选实施方式。


可以参考以下附图和描述更好地理解本发明。附图中的组件不 必按比例绘制,而是将重点放在强调示出本发明的原理。而且,在 附图中,贯穿不同视图,相同的参考标号指示相应的部分。
图1是在不执行升级的情况下分析软件程序的第一版本到软件 程序的第二版本的升级的系统的示例;
图2是包括未修改形式的软件程序和应用数据库的测试系统的 示例;
图3示出了包括从升级信息生成的、对于父任务影响的统计的 示例概要报告的一部分;
图4示出了从升级信息生成的示例报告的一部分,该报告标识 与父任务直接或间接相关联的修订的和过时的事务代码;以及
图5示出了系统中包括的方法的一个示例,该方法用于在不执 行升级的情况下,执行从已修改形式的软件程序的第 一版本到第二 版本升级的影响进行分析。
具体实施例方式
在不对测试系统执行升级的情况下,可以确定升级的影响。在 示例实施方式中, 一种在不执行升级的情况下用于分析软件程序的 第 一版本到软件程序的第二版本的升级的系统可以包括升级分析工 具。升级分析工具例如可以包括.NET独立应用。升级分析工具可以 从应用数据库获取程序对象的状态信息,其中程序对象包括在软件 程序的第一版本中。例如,升级分析工具可以从Oracle数据库获取 状态信息,该Oracle数据库由企业资源规划(ERP)的第一版本用 于存储程序对象。包括在该ERP应用中的程序对象例如可以包括安 全性相关对象,诸如安全性任务、事务代码、授权对象等。安全性 任务的状态信息例如可以包括每个安全性任务的名称。
升级分析工具可以将从应用数据库获取的状态信息与在库数据库中提供的默认状态信息进行比较。库数据库例如可以包括
Microsoft SQL Server数据库。SQL Server数据库中的数据库条目可 以标识第 一组默认程序对象和第二组默认程序对象之间的差异。第 一组默认程序对象将被安装在ERP应用第一版本的默认安装中。第 二组默认程序对象将被安装在ERP第二版本的默认安装中。标识的 差异例如可以包括对默认安全性对象(诸如事务代码、授权对象等) 进行改变的细节。改变的细节可以包括默认安全性对象是否被修订、 过时或新;陂添加的指示。
升级工具可以生成升级信息,该升级信息标识升级对程序对象 的影响或潜在影响。升级工具可以基于默认状态信息和从应用数据 库获取的状态信息之间的比较而生成升级信息。例如,升级信息可 以标识将被影响的安全性任务,因为与该安全性任务相关联的事务 代码在ERP应用的第二版本中是过时的。
图1是系统100的一个实施方式的示例,该系统IOO用于在不 执行升级的情况下,分析软件程序102第一版本到该软件程序的第 二版本的升级。系统IOO可以包括升级分析工具104和库数据库106。 系统100可以包4舌附加的、不同的或更少的组件。例如,系统IOO 可以包括升级分析工具104与库数据库106进行通信所通过的网络。
升级分析工具104可以是任何设备或设备组合,该任何设备或 设备组合可配置用于利用 一个或多个处理器执行计算机代码,所述 设备诸如计算机、服务器、移动计算机和个人数字助理。升级分析 工具104可以包括处理器108、存储器110和显示器112。升级分 析工具104可以包括附加的、不同的或更少的组件。例如,升级分 析工具104可以不包括显示器112并且仅生成关于升级的升级分析 信息而不显示该信息。升级分析信息可以传输用于在其他系统上显 示或输出。
处理器108可以与存储器110、显示器112和/或包括在系统100 中的其他组件进行通信。处理器108可以是通用处理器、中央处理 单元、服务器、专用集成电路(ASIC)、数字信号处理器、现场可编程门阵列(FPGA)、数字电路、模拟电路或它们的组合。处理器 108可以是可用于执行计算机代码的一个或多个处理器或设备。可以 以现在已知的或以后发现的任何可编程语言编写计算机代码,可编 程语言诸如Java、 C#、 C++、 PHP、汇编语言和Visual Basic。
存储器110可以是当前已知的或者在以后发现的任何存储设备。 存储器110可以是非易失性和/或易失性存储器,诸如随机访问存储 器(RAM )、只读存储器(ROM )、可擦除可编程只读存储器(EPROM ) 或闪存。存储器110可以包括光、磁(硬盘驱动器)或其他存储器 设备。
显示器112可以是用于显示数据的任何光电设备,诸如液晶显 示器(LCD)、阴极射线管(CRT)、场致发光(electro-luminescent) 显示器、等离子显示板(PDP)、真空荧光显示器(VFD)或其他显 示设备。
升级分析工具104可以是现在已知或以后开发的任何类型的应 用,其包括上述系统组件和方法。在某些示例中,升级分析工具104 可以包括单独的应用。在其他示例中,升级分析工具104可以包括 基于web的应用。在其他示例中,升级分析工具104可以是客户端/ 服务器应用。
升级分析工具104可以与库数据库106通信。库数据库106可 以是任何数据库。在某些示例中,库数据库106可以包括在升级分 析工具104中。在其他示例中,库数据库106不包括在升级分析工 具104中。
数据库可以是包括任何电子信息集合的存储器。例如,数据库 可以包括经组织的信息,从而可以评估、管理以及更新该信息,诸 如关系数据库管理系统(RDBMS)、面向对象数据库、可扩展标记 语言(XML)数据库、文件系统、存储器结构、或现在已知或以后 开发的任何其他数据库。数据库可以使用任何类型的存储器和结构, 诸如随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编 程只读存储器(EPROM)、闪存、光存储器、磁(硬盘驱动器或带)存储器或其他存储器设备。
数据库可以包括数据库条目。数据库条目是可以从数据库获取 的或存储在数据库中的信息。可以使用唯一的键(诸如主键值、全 路径名称或存储器地址)访问或查找数据库条目。例如,数据库条
目可以是RDBMS中表的行。在其他示例中,数据库条目可以存储 在数据库的多个位置上,诸如跨越RDBMS中的多个表。RDBMS中 的表可以包括一个或多个列。数据库可以包括数据库集合。
一个或多个数据库条目在数据库中可以与一个或多个其他数据 库条目相关联。例如,第一安全性任务条目可以与第二安全性任务 条目相关联,其中相应的父安全性任务包括相应的子安全性任务。
可以使用现在已知的或以后发现的将数据库中的数据库条目进 行关联的任何方法。在某些示例中,第一数据库条目通过在第二数 据库条目中包括唯一键来标识第一数据库条目,而与第二数据库条 目相关联起来。在其他示例中,第一数据库条目通过在第一数据库 条目中包括唯一键来标识第二数据库条目,而与第二数据库条目相 关联起来。在其他示例中,数据库包括关联数据库条目,其中该关 联数据库条目包括标识第一数据库条目的唯一键和标识第二数据库 条目的唯一键。
升级分析工具104可以^v应用数据库116获取状态信息114。应 用数据库116可以是包含程序对象118和120的状态信息114的任 何数据库,其中软件程序102包括程序对象118和120。软件程序 102可以是任何安装的应用或应用组合,诸如企业资源规划应用、客 户关系管理应用、会计程序、税务应用、CAD软件、医药软件、4元 空电子软件、引擎管理和诊断应用以及文字处理应用。软件程序102 可以包括可执行代码122,其在执行时实例化一个或多个程序对象 118和120。程序对象118和120是概念实体,其可以包含数据和/ 或对数据进行操作的一部分可执行代码122。程序对象118和120 例如可以对可执行代码122呈现为特定位置处的特定大小的相邻计 算机存储器块,即使程序对象的元素不是物理地存储在存储器的相邻块中。因此,程序对象118和120可以表示过程编程模型中的一 个或多个变量和/或面向对象编程模型中的一个或多个变量或对象。 程序对象118和120的示例可以包括销售订单、公司、联系人、产 品、安全性任务、业务单元和雇员。程序对象118和120中的每个 还可以具有如下类型。该类型可以是类、类的集合、数据类型、原 语数据类型或对于该类型的程序对象118和120共同的任何其他结 构。包括在程序对象118和120每个中的数据是已知状态。软件程 序102可以在应用数据库116中存储一个或多个程序对象118和120 的状态信息124或126。例如,雇员程序对象118和120的状态信息 124或126可以包括雇员号、雇员姓名以及部门号。相应程序对象 118和120中每个的状态信息124或126可以包括状态、状态的一 部分和/或涉及相应程序对象118和120中每个的状态的信息。存储 在应用数据库116中的状态信息114可以包括程序对象118和120 中每个的状态信息124或126和/或涉及程序对象118和120中每个 的状态信息124或126的信息。
在其他示例中,代替升级分析工具104,库数据库106可以从应 用数据库116获取状态信息114。在此类示例中,库数据库106可以 提供一个或多个数据库链接,这些数据库链接允许数据库命令对数 据库链接进行操作,以实际地对应用数据库116中的表进行操作。 在其他示例中,升级分析工具104或库数据库106还将从应用数据 库116荻取的状态信息114存储为库数据库106中的当前状态信息 128。例如,库数据库106可以包括应用数据库116—部分的快照。 当前状态信息128可以与状态信息114相同或不同。
除了或替代当前状态信息128,库数据库106可以包括默认状态 信息130。在下文参照图2对默认状态信息130进行描述。如下所述, 升级分析工具104可以生成升级信息132。升级信息可以标识程序对 象118和120的子集,该程序对象118和120的子集将受到软件程 序102从第一版本到第二版本的升级的影响。在某些示例中,升级 信息132可以存储在库数据库106中。在其他示例中,升级信息132可以传输到另 一设备或过程以便进一 步处理、显示和/或存储。
图2是包括未修改形式的软件程序102和应用数据库116的测 试系统200的另一实施方式的示例。当软件程序102首次安装时, 软件程序102可以包括一个或多个默认程序对象118和120。例如, 当ERP应用首次安装时,ERP应用可以包括安全性相关对象、组织 单元、产品和/或客户的默认集合。默认程序对象118和120的每个 可以包括存储在应用数据库116中的相应默认状态信息124和126。 存储在应用数据库116中的默认状态信息114可以包括默认程序对 象118和120中每个的默认状态信息124或126和/或涉及默认程序 对象118和120中每个的默认状态信息124或126的信息。
可以认为软件程序102在首次安装时是未修改形式。当使用软 件程序102时,可以由软件程序的用户修改、移除、添加程序对象 118和120或保持其不改变。在用户修改、移除或添加一个或多个程 序对象118和120之后,可以认为软件程序102是已修改形式。如 果用户还未修改、移除或添加一个或多个程序对象118和120,但是 已经仅通过执行软件程序102修改、移除或添加了程序对象118和 120,则仍旧认为软件程序102是未修改形式。
安装在测试系统200中的软件程序102可以是软件程序102的 第一版本和/或软件程序102的第二版本。在一个示例中,软件程序 102的第二版本可以与第一版本分别安装。在另一示例中,软件程序 102的第一版本可以升级到该软件的第二版本。
未修改形式的软件程序102的第一和第二版本可以包括更少、 更多、不同和/或已修改的默认程序对象118和120。第一版本的默 认程序对象118和120和第二版本的默认程序对象118和120之间 的差异可以利用自动过程和/或手工确定。例如,人们可以确定第一 版本中特定类型的程序对象118和120中的哪个在第二版本中不再 存在。例如,数据库命令可以传输到测试系统200中的应用数据库 116以作出此类确定,其中将来自于第 一版本和第二版本两者的默认 状态信息114包括在应用数据库116中。在另一示例中,人们可以确定第一版本中特定类型的程序对象118和120中的哪个已经被添 加到第二版本中。在又一示例中,人们可以手工检验第一版本中和 第二版本中特定类型的程序对象U8和120,以确定第一版本的程序 对象118和120中的哪个已经由第二版本中的不同程序对象118和 120替换。在另一示例中,可以由软件程序102的开发者标识一个或 多个差异,并且通过安装第二版本和/或升级到第二版本而在应用数 据库116中提供该一个或多个差异。 一组已修改的默认程序对象可 以包括一个或者多个默认程序对象118和120,该默认程序对象118 和120将在此类升级中被替换、添加、移除或具有一个或多个改变 的属性。
如果已经替换程序对象或该程序对象具有一个或多个改变的属 性,则可以认为该程序对象被修订。如果已经移除程序对象,则可 以认为该程序对象过时。如果已经修订程序对象或该程序对象过时, 则认为该程序对象被修订或改变。
在一个示例中,软件程序的第一版本的默认程序对象118和120 和第二版本的默认程序对象118和120之间的差异可以存储为图1 的库数据库106中的默认状态信息130。在不同的示例中,未修改形 式的软件程序102的第二版本的默认状态信息114可以存储为库数 据库106中的默认状态信息130。在后者的示例中,第一版本和第二 版本的默认程序对象118和120之间的差异可以通过比较包括在已 修改形式的软件程序102的第一版本的程序对象118和120中的第 二版本的默认程序对象118和120来确定。
升级分析工具104可以基于默认状态信息130与当前状态信息 128的比较生成升级信息132。升级分析工具104因此可以在不执行 升级的情况下,在分析已修改形式的软件程序102第一版本的任何 给定的安装时,重用默认状态信息130。
如上所述,升级信息132可以标识将受到从未修改形式的软件 程序102的第 一版本到第二版本的升级的影响的程序对象118和120 的子集。当然,包括在已修改的默认程序对象中的任何程序对象118和120都可能受到升级的影响。例如,如果包括在默认程序对象中 的默认授权对象在未修改形式的软件程序102的升级中被移除,并 且默认授权对象包括在已修改形式的软件程序102中,则在已修改 形式的软件102的升级中,也可以移除该默认授权对象。直接或间 接与已修改的默认程序对象集合相关联的任何程序对象118和120 也可能受到升级的影响。例如,如果安全性任务包括在未修改形式 的软件程序102中,并且该安全性任务间接地与过时的默认授权对 象相关联,则该安全性任务可以受到升级的影响,因为该安全性任 务在升级中将潜在地失去与授权对象的间接关联。
相反,与已修改的默认程序对象集合不相关联的程序对象118 和120可以不受到升级的影响。例如,如果新供应商对象包括在已 修改形式的软件程序102中,但是与默认安全性任务没有关系,则 移除默认安全性任务可以不影响新供应商对象。因此,已修改的默 认程序对象和程序对象118和120之间的关系可以用于标识将受到 升级影响的程序对象118和120的子集。这些关系此后可以称为程 序对象关系。
可以根据包括在已修改形式的软件程序102中的程序对象118 和120的集合与已修改的默认程序对象的比较,来确定将受到升级 影响的程序对象118和120的子集。通过比较那些程序对象的状态 信息可以获得类似的结果。因此,升级信息132可以基于对默认状 态信息130和当前状态信息128 (状态信息114)的比较。该比较可 以根据程序对象关系进行。
在某些示例中,该比较可以包括所有程序对象118和120的比 较。然而,在某些示例中,可以选择性地比较程序对象118和120。 一个原因在于,并非对所有类型的程序对象都感兴趣。例如,对于 在已修改形式的软件程序102中很可能被移除的某类型的已修改的 默认程序对象,可能不感兴趣。作为示例,ERP应用中的默认客户 对象在已修改形式中很可能被移除。此外,在已修改形式的ERP应 用中的其他程序对象很可能与默认客户对象不具有关系,因为很可能将移除默认客户对象。作为另一示例,在升级期间,可以自动升
级一个或多个类型的程序对象。例如,ERP应用中的销售订单可以 在升级期间自动升级,并且可能在执行升级之后不需要进一步的手 工分一斤或Y參改。
相反,可能对在执行升级之后可能需要手工分析和/或修改的任 何类型的程序对象感兴趣。例如,可能对涉及ERP应用中安全性的 程序对象118和120的类型感兴趣,因为在已修改形式的ERP应用 中保留了很多默认安全性对象,并且很多新的安全性对象和其他类 型的对象可以涉及安全性对象。因此,可能对涉及安全性特征的对 象特别感兴趣。在另一示例中,可能对仍旧与其他程序对象118和 120相关联的、被保留的默认程序对象118和120感兴趣。例如,诸 如数据库表和显示屏的程序对象us和120可以具有此类特点。如 果在升级期间添加了数据库表的数据库字段,则可能需要改变存储 到数据库表的和/或从数据库表获取的显示屏,以考虑添加的数据库 字段。
详细示例可以进一步示出升级分析工具104的一个实施方式的 操作。ERP应用可以包括很多不同类型程序对象118和120。程序对 象118和120可以包括涉及安全性的程序对象。例如,SAPERP应 用的安全性相关程序对象118和120可以包括任务、简档、授权对 象、授权字段、授权值、授权组和检查指示符。安全性对象提供用 于控制对被称为对象类的特定程序对象的访问机制。对象类的示例 包括销售订单、供应商、客户和其他业务对象。每个对象类可以具 有应用数据库116中的一个或多个相应数据库表,以存储相应的状 态信息124和126。对象类可以具有针对授权对象的一对多关系。每 个授权对象标识一组许可活动,诸如读和/或写。每个授权对象可以 具有针对授权字段的多对多关系。授权字段可以标识一个数据库表 中的字段。
在ERP应用内执行的进程和/或线程可以尝试访问对象类的程序 对象,从而访问一个或多个数据库字段。可以检查与对象类和授权字段两者都关联的每个授权对象,其中授权字段与所访问的 一 个或 多个数据库字段相关联。如果该访问是包括在由被检查的授权对象 所标识的许可活动集合中的许可活动,则准许访问。
而且,授权对象可以具有针对授权值的一对多关系。授权值基 于所访问字段的值允许附加级别的访问控制。给定的授权值可以标 识授权字段和允许的值。如果针对所尝试访问的字段中的值与允许 的值相匹配,则准许访问。例如,工作顺序可以针对制造设施中的
特定设备而存在。数据库表可以包含工作顺序程序对象118或120 的状态信息124或126。数据库字段可以包含具有标识特定设备的值 的数据库字段。如果满足以下条件,则可以准许尝试修改工作顺序 程序对象的访问(1)标识特定设备的值包括在授权值中;(2) 授权值与授权对象相关联;(3 )授权对象与工作顺序对象类和针对 具有标识设备的值的数据库字段的授权字段对象两者相关联;以及 (4)授权对象将"写,,指定为许可活动。允许的值可以标识许可值 而不是具体值的范围。
简档可以是分组到一起的授权值的集合,例如,用来执行业务 活动或部分业务活动。简档可以具有针对授权值的多对多关系。
任务可以包括零个、 一个或多个简档。任务可以与简档具有一 对多的关系。可以对用户分配一个或多个任务,以控制用户对一个 或多个对象类的访问。任务可以具有 一 个或多个父任务和/或 一 个或 多个子任务。还可以将任务分配给事务代码。
事务代码或称为tcode可以标识ERP应用中的特定业务活动。 例如,tcode可能是"MM01"并且标识创建ERP应用中材料对象的 业务活动。例如,可以将tcode用于标识用于创建材料对象的显示屏 或显示屏集合。因为某些任务可以提供支持业务活动或业务活动的 部分的访问特权,任务可以与事务代码相关联。任务可以与事务代 码具有多对多关系。此外,出于类似原因,可以将授权对象与事务
代码相关联起来。
当在由tcode标识的业务活动期间访问给定的对象类的程序对象时,对与对象类相关联的授权对象可以不进行上述检查。检查指示 符对象可以包括检查标志和事务代码和授权对象之间的映射。检查 标志指示是否应该针对事务代码检查授权对象。因此,可以在不移 除或创建任何授权对象的情况下,通过检查指示符选择性地使能或 禁用由授权对象掌控的访问控制。
授权组可以提供备选的访问控制机制。授权组可以控制对数据
库表以及那些数据库表的一个或多个数据库字段的访问。在ERP应
用生成可以在表级别而不是对象类级別操作的报告时,可以使用授 权组。授权组可以具有针对数据库表的多对多关系。
上述安全性相关程序对象118和120之间的关系可以用于设计 存储在库数据库106中的默认状态信息130与当前状态信息128的 定制的比较。定制的比较可以标识将受到升级影响并且感兴趣的程 序对象118和120。
例如,该比较可以设计用于确定对4壬务的影响。该比较可以进 一步设计用于确定对无父的父任务的影响,该无父的父任务可以是 不作为另一任务的子任务的父任务。原因在于,如果子任务将受到 升级影响,则父任务将隐含地也受到影响。
图3示出了示例概要报告的 一部分,该示例概要报告包括从升 级信息132生成的、对父任务的影响的统计。报告中的每行可以对 应于一个父任务。可替换地,才艮告中的每行可以对应于无父的父任 务。中间六列包括指示将在升级中改变的给定类型的程序对象的数 量,其中程序对象直接或间接地涉及每行的任务。
例如,"TCode改变"列中的数字指示与任务或与该任务的任何 直接或间接子任务相关联而改变的事务代码的数量。默认状态信息 130可以包括将在升级中改变的所有默认事务代码的列表。例如,包 括在默认状态信息130中的第一数据库表可以包括将在升级中改变 的ERP应用中的每个默认事务代码。包括在当前状态信息128中的 第二数据库表可以包括ERP应用中的每个任务和任何相关联的事务 代码。包括在当前状态信息128中的第三数据库表可以包括ERP应用中每个任务的任何相关联的父任务和/或子任务的标识。可以使用
一个或多个结构化查询语言(SQL)命令进行第一数据库表与第二 和第三数据库表的比较。这些SOL命令可以计算将被修改以及与父 任务直接或间接地相关联的默认事务代码的数量。例如,被修改的 以及与父任务的子任务相关联的每个默认事务代码可以包括在针对 父任务的数量中。该示例是标识受到升级影响的程序对象的示例, 因为与该程序对象间接相关联的另 一 个对象将在升级中修改。在程 序对象通过一个或多个其他对象与其他程序对象相关联时,该程序 对象间接地与另 一程序对象相关联。
在另一示例中,"检查指示符改变,,列中的数字可以指示具有 将在升级中将被修改的检查标记值的检查指示符的数量。在该数字 中包括的每个检查指示符可以与事务代码相关联,该事务代码继而 与任务或与该任务的任何直接或间接子任务相关联。该示例还是标 识受到升级影响的程序对象的示例,因为间接地与该程序对象相关 联的另一对象将在升级中修改。
在又一示例中,"授权对象改变"列中的数字可以指示将在升 级中被修改的默认授权对象的数量。每个被计数的默认授权对象可 以与 一个或多个授权值相关联,该一个或多个授权值继而与 一个或 多个简档相关联,该一个或多个简档继而与任务或与该任务的任何 直接或间接子任务相关联。
在另一示例中,"组织元素改变"列中的数字指示包含影响特 定安全性任务的组织元素字段的已修改的授权对象的数量。组织元 素可以是描述业务组织结构的元素的层级集合。例如,业务单元可 以具有一个或多个设施,并且每个设施可以具有一个或多个设备。 可用的组织元素可以存储在组织元素数据库表中。授权对象可以包 括组织元素字段,其对应于标识与特定程序对象相关联的组织元素 的数据库字段。组织元素字段可以不从父任务继承值,而其他授权 字段可以这样做。因而,在衍生的安全性任务中的组织元素的值可 能必须手工填写,而不仅仅是被继承。如果授权对象包括组织元素字段并且该授权对象将在升级中过时,则可能需要改变可能已经填 写的衍生的安全性任务。如果授权对象包括在软件程序的第 一版本 中、但是不在软件程序的第二版本中的组织元素字段,则可能也需 要改变衍生的安全性任务。如果授权对象包括在软件程序的第二版 本中增加的组织元素字段,则可能也需要改变衍生的安全性任务。
图4示出了从升级信息132生成的示例报告的一部分,该升级 信息132标识了与父任务相关联的已修改的事务代码。这是一个升 级信息132可以具体地标识与给定程序对象相关联的已修改的程序 对象时的示例。升级信息132还可以指示如何修改已修改的程序对 象(例如,通过指示该已修改的程序对象是否被修订或过时)。升 级信息132可以进一步指示修改程序对象时修订的值。升级信息132 还可以标识与给定对象直接或间接相关联的修订的或过时的程序对 象的属性值范围。程序对象的属性或性质可以是包括在该程序对象 中的值或对象。例如,字段对象可以指示什么数据库和数据库字段 包含程序对象的属性状态信息。例如,对于给定的任务和/或父任务、 升级信息132针对第一版本和第二版本的每个,可以包括用于事务 代码和与给定任务直接或间接相关联的授权对象的每个唯 一 组合的 字段的许可值范围。
在某些示例中,库数据库106中的默认状态信息130可以包括 涉及多于软件程序102的两个版本的状态信息。升级分析工具104 可以确定待分析的软件程序102的当前版本和将升级到的期望版本。 如果默认状态信息130包括关于当前版本和期望版本的信息,那么 升级分析工具104可以继续分析该升级。
升级分析工具104从其获取状态信息114的应用数据库116可 以不是其中软件程序102存储程序对象118和120的状态信息124 或126的产品应用数据库116。升级分析工具104、不同应用或应用 的组合可以将状态信息114从产品应用数据库116提取到应用数据 库116中,其中升级分析工具104从该应用数据库116获取该状态 信息114。后者的应用数据库116例如可以是具有以逗号分隔的值的文本文件。升级分析工具104获取的状态信息114和/或从产品应用 数据库116提取的状态信息114可以限制为涉及与一个或多个特征 相关的程序对象118和120的状态信息124或126的信息。例如, 升级分析工具104获取的状态信息114可以限制为涉及安全性程序 对象以及与该安全性程序对象相关联的程序对象的信息。
图5示出了系统100中包括的方法的一个示例,该方法用于在 不执行升级的情况下,分析执行从已修改形式软件程序102的第一 版本到第二版本的升级的影响。可以执行附加的、不同的或更少的 动作。这些动作不必以图5所示的顺序执行。
在图5示出的示例的动作502中,可以通过在库数据库106中 提供默认状态信息130而开始操作。在动作504中,可以通过从应 用数据库116获取当前状态信息119而继续操作。在动作506中, 还可以通过比较当前状态信息119与默认状态信息130以生成升级 信息132来继续操作。升级信息132可以标识将受到升级影响的当 前程序对象118和120的子集。
检查当前程序对象118和120的每个是否过时或被修订的动作 508可以包括在动作506中,动作506用于将当前状态信息119与默 认状态信息130进行比较。如果当前程序对象118和120是过时的 或被修订的,那么操作可以继续到用于标识受到影响的当前程序对 象的动作510。用于标识受到影响的当前程序对象的动作510也可以 包括在动作506中,动作506用于将当前状态信息119与默认状态 信息130进行比较。
如果当前程序对象118和120没有过时或未#^奮订,那么操作 可以通过检查与该程序对象相关联的任何程序对象是否过时或被修 订,而进行到动作512。如果与该程序对象相关联的任何程序对象过 时或被修订,则操作可以通过将当前程序对象标识为受到影响,而 进行到动作510。检查与该程序对象相关联的任何程序对象是否过时 或被修订的动作512可以包括在动作506中,该动作506用于比较 当前状态信息119与默认状态信息130。在某些示例中,升级分析工具104可以对存储在生产应用数据 库116中的信息的子集进行操作。对信息子集的操作可以具有优势, 因为潜在具有高度机密的信息可以留在生产应用数据库116中而不 被导出。升级分析工具104也可以在不执行升级的情况下执行。不 执行升级可以具有优势,因为即使在测试系统上,执行升级也可能 是困难的。即使在测试系统上执行了升级,也可能很难确定标识出 哪些程序对象118和120已经受到影响。对受影响程序对象的标识 可以涉及在升级后手工检验每个程序对象。在某些示例中,升级分 析工具104可以自动标识哪个程序对象118和120可能受到影响以 及哪个程序对象118和120可能没受影响。在某些示例中,升级分 析工具104显示升级信息132,从而允许用户进一步分析受影响的程 序对象118和120。
在一个示例中,提供一种用于在不实际执行升级的情况下,分 析已修改形式的软件程序的第 一版本到已修改形式的软件程序的第 二版本的升级的系统。该系统可以包括存储器和处理器,其中处理 器与存储器进行通信。存储器可以包括可执行用来分析升级的计算 机代码。例如,该系统可以提供多个默认程序对象的默认状态信息, 所述多个默认程序对象包括在未修改形式的软件程序的第二版本的 默认安装中。该系统可以从应用数据库获取多个当前程序对象的当 前状态信息,其中当前程序对象包括在已修改形式的软件程序中。 该系统可以基于当前状态信息和默认状态信息之间的比较生成升级 信息,其中该升级信息标识当前程序对象的子集,并且该当前程序 对象的子集将受到升级的影响。
在上面的示例中,系统可以优选地提供库数据库中的默认状态 信息。系统可以在库数据库中存储当前状态信息。
在上面的示例中,当前程序对象还可以优选地涉及软件程序的 特征。例如,软件程序的特征可以是安全性特征。已修改形式的软 件程序还优选地包括可"^丸行代码。
在上面的示例中,升级信息可以优选地标识由于升级的结果而被改变的当前程序对象的子集中所包括的当前程序对象中的至少一 个。该当前程序对象中的至少 一个可以与未修改的程序对象相关联。 未修改的程序对象可以不因为升级的结果而被修改,但是其包括在 将受到升级影响的当前程序对象的子集中,因为未修改的程序对象 与当前程序对象中的至少一个相关联。例如,未修改的程序对象可 以包括安全性任务,其中当前程序对象中的至少 一 个包括多个事务 代码中的至少一个。
在上面的示例中,系统可以将数据库命令传输到库数据库,以 根据默认状态数据库表和当前状态数据库表填写升级信息数据库 表。默认状态信息可以存储在默认状态数据库表中。当前状态信息 可以存储在当前状态数据库表中。升级信息可以存储在升级信息数 据库表中。
上述系统和方法可以用于分析软件程序的升级。可选地,继而 可以基于生成的升级信息而作出关于是否执行升级的决定。该决定 可以基于受到升级影响的程序对象的所标识子集。例如,为了作出 该决定,可以考虑受影响的程序对象的数量、它们的重要性或关键 级别。可以不进行升级,除非例如不存在受影响的程序对象或没有 上面的重要性的特定级别。如果决定升级软件程序,那么,可以可
选地执行、运行、转出(rollout)或实现升级,从而得到改变到该 软件程序的第二版本的软件版本。在该备选示例中,可以在分析之 后对软件程序进行升级。分析和升级过程可以一起形成系统和方法 的一部分,即,用于执行从软件程序的第一版本到软件程序的第二 版本的升级的系统和方法。可以利用已修改形式(或定制)或未修 改形式(或默认安装)的两个版本之一或两者执行升级。该可选步 骤可以是自动的或手工的。例如,软件程序的第二版本可以可选地 具有与第一版本不同的功能,可以增加性能、可以利用不同类型的
硬件、可以优化存储器使用、需要更少的计算或电能和/或可以在不 同操作系统或环境上运行软件程序。换言之,运行升级可以导致具 有不同以及更有效配置的计算机系统。不管描述的特定实现,所有讨论本质上是示例性的而不是限制 性的。例如,尽管实现所选的方面、特征或组件描述为存储在存储 器中,根据本发明的所有或部分系统和方法可以存储在、分布在例 如次级存储设备的其他机器可读介质上或从其读取,次级存储设备
诸如硬盘、软盘以及CD-ROM;从网络接收的信号;或当前已知的 或稍后开发的其他形式的ROM或RAM。而且,各种模块和屏幕显 示功能仅是此类功能的 一个示例,并且包括类似功能的任何其他配 置也可行的。
此外,尽管描述了本发明的具体组件,但是根据本发明的方法、 系统和产品可以包^^附加或不同的组件。例如,可以将处理器实现 为微处理器、微控制器、专用集成电路(ASIC)、离散逻辑或其他 类型的电路或逻辑的组合。类似地,存储器可以是DRAM、 SRAM、 闪存或任何其他类型的存储器。可以分别存储和管理标记、数据、 数据库、表、条目和其他数据结构,可以将其并入单个存储器或数 据库中,或可以以多种不同方式在逻辑上以及物理上对其进行组织。 程序可以是单个程序的一部分、独立程序或分布在多个存储器和处 理器上。
虽然已经描述了本发明的各种实施方式,但是对于本领域的技 术人员明显的是,在本发明的范围内,更多实施方式和实现时可能 的。因而,本发明仅受到所附权利要求书和它们的等价物的限制。
权利要求
1.一种系统,用于在不执行升级的情况下,分析已修改形式的软件程序的第一版本到所述已修改形式的所述软件程序的第二版本的升级,所述系统包括存储器;处理器,与所述存储器进行通信,所述存储器包括计算机代码,其中所述计算机代码可执行用于提供多个默认程序对象的默认状态信息,其中所述默认程序对象包括在未修改形式的所述软件程序的第二版本的默认安装中;从应用数据库获取多个当前程序对象的当前状态信息,其中所述已修改形式的所述软件程序包括所述当前程序对象;以及在不执行所述升级的情况下,基于所述当前状态信息和所述默认状态信息之间的比较而生成升级信息,其中所述升级信息标识受到下述影响的所述当前程序对象的子集,所述影响来自于所述已修改形式的所述软件程序的第一版本到所述已修改形式的所述软件程序的第二版本的升级的完成。
2. 根据权利要求1所述的系统,其中所述当前程序对象涉及所 述软件程序的特征,并且所述已修改形式的所述软件程序包括附加 的当前程序对象。
3. 根据权利要求1到2中任一项所述的系统,其中所述升级信 息标识所述当前程序对象中的至少 一 个,所述当前程序对象包括在 由于所述升级的结果而改变的所述当前程序对象的所述子集中。
4. 根据权利要求3所述的系统,其中所述当前程序对象中的所 述至少一个与未修改的程序对象相关联,并且所述未修改的程序对象没有由于所述升级的结果而改变,但是其包括在所述当前程序对 象的所述子集中,因为所述未修改的程序对象与所述当前程序对象 中的所述至少一个相关联。
5.根据权利要求3所述的系统,其中所述当前程序对象中的所 述至少一个由于所述升级的结果而被移除。
6 根据权利要求1到5中任一项所述的系统,其中所述默认程 序对象是第一默认程序对象,所述默认安装是第一默认安装,并且 所述默认状态信息包括所述第 一 默认程序对象和第二多个默认程序 对象之间的差异,并且其中所述第二默认程序对象包括在未修改形 式的所述软件程序的第 一版本的第二默认安装中。
7. 根据权利要求1到6中任一项所述的系统,其中所述计算机 代码可进一步执行用于从所述升级信息生成概要报告,其中所述当 前程序对象中的至少 一个具有特定程序对象类型,所述当前程序对 象中的所述至少一个与所述当前程序对象中的一个相关联,并且所 述概要报告包括所述特定程序对象类型的列下的所述当前程序对象 中所述至少一个的计数。
8. 根据权利要求1到7中任一项所述的系统,其中所述计算机 代码可进一 步执行用于从所述升级信息生成概要报告,其中所述当 前程序对象中的至少 一个具有特定程序对象类型,所述当前程序对 象中的所述至少一个与所述当前程序对象中的一个间接地相关联, 并且所述概要报告包括所述特定程序对象类型列下的所述当前程序 对象中所述至少 一个的计数。
9. 一种方法,用于在不执行升级的情况下,对执行从已修改形 式的软件程序的第 一版本到第二版本的所述升级的影响进行分析, 所述方法包括提供在库数据库中的默认状态信息,其中所述默认状态信息包括 第 一 多个默认程序对象和第二多个默认程序对象之间的差异,其中 所述第 一 默认程序对象包括在未修改形式的所述软件程序的第 一版 本的第 一默认安装中,并且其中所述第二默认程序对象将包括在未 修改形式的所述软件程序的第二版本的第二默认安装中;从应用数据库获取与多个当前程序对象相关的当前状态信息,其 中所述已修改形式的所述软件程序的第 一版本包括所述当前程序对象;以及在不执行所述升级的情况下,通过将所述当前状态信息与所述默 认状态信息进行比较,而标识受到所述升级完成的影响的所述当前 程序对象的子集,以生成其中标识所述升级信息的升级信息。
10. 根据权利要求9所述的方法,其中所述应用数据库是第一应 用数据库,所述方法进一步包括从第二应用数据库获取所述当前状态信息,其中所述第二应用数 据库由未修改形式的所述软件程序使用以存储状态信息;以及在所述第 一应用数据库中存储从所述第二应用数据库中获取的 所述当前状态信息。
11. 根据权利要求9到10中任一项所述的方法,其中比较所述 当前状态信息与所述默认状态信息包括将包括在所述第 一默认程序对象中、但不包括在所述第二默认程 序对象中的所述当前程序对象中的每个标识为过时;将包括在所述第 一 默认程序对象中、但在所述第二默认程序对象 中被修订的所述当前程序对象中的每个标识为被修订;以及将受到所述升级的影响的所述当前程序对象中的每个标识为过 时或#^奮订。
12. 根据权利要求11所述的方法,进一步包括标识由于受到 所述升级的影响、与标识为过时或修订的 一 个或多个所述当前程序 对象间接地相关联的所述当前程序对象中的至少一个,其中通过多 个相关联的程序对象与另一程序对象相关联的程序对象与所述另一 程序对象间接地相关联。
13. 根据权利要求9到12中任一项所述的方法,进一步包括生 成报告,其中所述报告标识所述当前程序对象中的至少一个以及与 所述当前程序对象中的所述至少一个相关联的多个所述当前程序对 象,并且,与所述当前程序对象中的所述至少一个相关联的所述当 前程序对象具有确定的程序对象类型。
14. 根据权利要求9到13中任一项所述的方法,进一步包括将所述已修改形式的所述软件程序的第 一版本升级到所述已修改形式 的所述软件程序的第二版本的步骤。
15. —种包括指令的机器可读介质,当由处理器执行时,所述指 令使得所述处理器执行权利要求9到14中任一项所述的方法。
全文摘要
一种系统,可以包括用于在不执行升级的情况下,分析已经定制的软件程序从第一版本到第二版本的升级的计算机代码。该系统可以提供默认程序对象的默认状态信息。默认程序对象将包括在软件程序的第二版本的默认安装中。计算机代码可以从应用数据库获取当前程序对象的当前状态信息。已经定制的软件程序可以包括当前程序对象。该系统可以基于当前状态信息和默认状态信息之间的比较来生成升级信息。该升级信息可以标识将受到升级影响的当前程序对象的子集。
文档编号G06F9/445GK101599047SQ20091013828
公开日2009年12月9日 申请日期2009年5月31日 优先权日2008年6月5日
发明者S·萨拉夫, V·D·基查姆巴尔 申请人:埃森哲环球服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1