应用程序兼容性

规划您的应用程序兼容性项目

Chris Jackson

 

概览:

  • 定义愿景和范围
  • 建立工作组
  • 项目已经三个主要阶段
  • 修正方法

内容

定义一个愿景和作用域: Windows
定义一个愿景和范围: 应用程序管理
建立工作组
收集
分析
测试
纠正
结论

我的作业将采用我使用位于迁移到最新版本的 Windows 的客户世界各地。 通常,遇到该最大障碍是引发以下问题的应用程序兼容性: 多少它将修复操作的成本? 长它将执行? 了解是否需要什么? 我如何加速过程如果的时间太长?

一个应用程序兼容性项目是类似于软件开发项目: 为您发现您将面临随时间调整成本和时间的估计值。 我已经了解用户建议的时间和根据应用程序,数目的成本的估计,但此系统可以提供最好是平均值。 平均通常处于关闭时, 几乎没有人实际点击它 ; 大多数组织来说值得注意的是优于平均,或 disappointingly 会降低。

因此,让我们讨论如何着手应用程序兼容性项目的规划阶段,了解成本估计提前,改进它们随时间,和它们在最小化。 我将与您共享该提示和技巧我们最成功的客户曾,希望保存过程中您返工。 我尤其是要最大化的不是直接的参与者效率参与 (如与测试的最终用户和业务所有者分配应用程序的优先级,因为您需要其合作,才会得逞的该过程。

定义一个愿景和作用域: Windows

正在处理应用程序兼容性时,在访问可以获取困难。 如果您发现是任务关键、 断开,Pocket Visual Basic 3.0 应用程序并且不源代码,很容易获取建议不要采用。 您需要驱动的 rallying cry。 您需要用于指导您进行硬盘、 战略决策的终极目标。

是例如如果正在修复要求管理员权限的应用程序,而且升级 Windows 的主要目标是使作为标准用户不应用在 RunAsAdmin 运行填充不好的缓解措施。 如果您的主要目标是使查找、 组织,和使用信息更容易,并且您需要修复使用此"购买一个新"修补程序在中断的应用程序,您会考虑考虑信息可视化和外壳程序集成产品的功能您考虑。

您记下您设想之后,定义范围。 如果您的构想包括将桌面的百分比移动到标准用户,定义的百分比。 这可能听明显,但是经常忽略,并成功强相关联。

定义一个愿景和范围: 应用程序管理

一个操作系统迁移是完美时间设置为应用程序管理的目标。 您在企业中访问每个应用程序,什么较大时间考虑如何管理您的应用程序组合。

查看您的应用程序管理目标,从两个方面:

  • 灵活性 如何快速可以响应技术更改为竞争优势? 您如何正确是在测试软件以最小化风险和生产时间? 程度您管理应用程序的生命周期? 您了解您的软件解决,业务问题,它优化的软件解决方案? 要使用软件,特意和 strategically。
  • 工作效率 您是否最大化用户工作效率? 您是否提供一个熟悉、 现代和持续高质量软件体验? 有管理工作效率和帮助台成本的质量标准吗? 可以在用户协作使用相同的软件平台? 要利用支持业务效率软件。

应用一个最大程序管理的挑战几乎所有位置我去是应用程序的普及。 某些组织具有接近于软件 100,000 个部分。 这是完全 unmanageable ! 考虑它,您未能雇用 50 人员团队,花测试每个应用程序,仅一个的小时并且它将仍带有您完成测试的整个日历年度。 一个应用程序兼容性项目有一个缩放比例项目,最大的 wins 之一尽量减少小数位数。

任何您最大的问题,请记下将提高。 您可能不会转 100,000 个应用程序为 500 这一次。 您可能不会删除与按钮这样大它们会将推送的两个动手所有旧的 VB 6 应用。 然而,您应该设置目标,将它们合并到您的设想以及量化它们在您的范围内。

建立工作组

与您的构想和作用域在位置的组建团队能够执行工作的时候。 重要的角色 (用户可以填充多个角色) 包括:

  • 项目经理 协调跨越多个准则和组织的工作组。
  • 业务协调潜在顾客 使用业务应用程序所有者获取应用程序的优先级上的数据、 定位和协调用户验收测试和试生产用户 (该角色经常执行由项目经理) 与协调。
  • 技术主管 适用于开发人员能够确定培训间隔,并使用调试程序以解决复杂的兼容性问题。
  • 实验室管理器 确保团队和用户群有习惯的椅子和当前的操作系统映像,要测试软件。
  • 应用程序研究团队 确定第三方软件 (通常外包) 的当前支持状态。
  • 测试团队 运行安装,并 smoke 测试以确保用户测试 (通常外包) 之前的基本的兼容性。
  • 缓解措施的工作组 测试过程中解决兼容性问题的表面。
  • 包装团队 测试已完成 (通常外包) 后,请创建安装程序包。

整个团队需要工作紧密相互和与任何其他参与操作系统迁移。 是例如您需要当前的图像和最新的组策略和配置。

具有一个远景定义的作用域和工作组标识的时候启动计划要执行的工作。 此过程可分为三个阶段:

  • 收集 是否需要什么? (当前状态)
  • 分析 我希望处理? (所需的状态)
  • 测试并缓解 哪些工作?

收集

您可以计划您的工作之前,必须了解的软件有,当前状态。 更复杂软件管理工具,多个可见性必须为您的当前状态。 如果您有一个应用程序清单从您的软件管理工具,使用它。 如果不是,免费 Application Compatibility Toolkit (ACT) 从 Microsoft 可以提供极好的库存。 使用该工具并不重要,; 内容不会影响是您的工具使您所需的所有数据将提出更高版本的过程中的该回答问题。 若要构建库存,以下是您需要了解:

  • 部门或组织 用户的工作? 此信息有助于标识的软件解决了哪些业务问题驱动器优先顺序,或者确定冗余。 我曾看到过此收集在许多方面,使用计算机名、 IP 子网和等。
  • 角色 用户有何功能? 此信息有助于确定该软件的用途,再次通知优先级或识别的重复。 此数据通常是更难找到除非已编码 someplace,(如为 Active Directory 中。
  • 使用 该软件已安装多少用户? 甚至更好多少正在它们使用它? 如果您知道没有人有安装,或安装它的人永远不会使用它终止应用程序容易。

以后,您要帮助测试应用程序包含以下数据的用户:

  • 操作系统 / 修补程序级别 您需要的软件 (可能) 工作以便错误时,测试人员可以比较工作情况中断的情况用户配置的详细信息。
  • 行业专家 要测试来表示实际的用户方案,就需要实际用户。 如果您尚未确定 SMEs,可能使用情况数据有助于确定候选对象。
  • 安装其他应用程序 有时,应用程序问题被造成您将希望能够识别的应用程序之间的冲突。

最后,想要您软件清单以支持实际部署中有数据。 如果您打算部署角色 (请参阅在边栏"部署角色"若要了解为什么好),然后在按角色标记应用程序帮助指导您第一次测试这些应用程序。 同样,如果计划部署的分部或地理位置,您需要开始测试应用程序的到第一个部署的用户使用。

完全理解您的当前状态? 很好,请跳到下一节。 如果不是,让我们来选择,使您的工具。

您可能需要提前原始数值生成应用程序兼容性工作的业务情形。 Microsoft 提供了一个无代理的工具,可帮助您获取某些粗略的数字,Microsoft 评估和规划工具包。 尽管通常不足以推动整个项目,此工具不会提供需要投入的精力的某些指示。

部署的角色

我们最成功的客户角色部署 Windows Vista。 此效果尤其好时具有结构化任务辅助角色。 角色在比其他轻松地区分部门的软件用法具有最大的通用性。 您可以启动与一个结构化的任务工作角色如调用中心。 此组可能有相对少量的应用程序,可能很多。 您可以测试所有这些应用程序完成,并可以部署此角色。 您可以 brag 管理,和在移动到下一个角色中。 团队士气很因在的成功管理是快乐因为进度是可见,团队获取它们处理大量的软件,如信息工作角色的角色之前执行对易管理的数字工作的操作。

若要获取详细的数据,您需要的代理。 有多种方法可安装应用程序 (MSI,Xcopy、 Setup.exe,等),收集清单是不重要。 要查找所有与您息息相关的应用程序。 大多数工具表面的丰富客户端应用程序,但是有关 Web 应用程序、 ActiveX 控件和 Microsoft Office 应用程序? 我没有发现一个工具,提供的所有内容。

如果您还没有应用程序清单,Application Compatibility Toolkit (ACT) 将是的类型最适合您 surfacing 重要的桌面应用程序: 可以应用程序和可以将映射到支持语句上的版本。

顺便说一下,与关于 ACT 和其库存,我要清除一个误解: 兼容性评估器的替代测试其目的。 决定多少收集时,请权衡此数据与其值的成本。 您不会消除使用兼容性评估器测试的必要性。 评估器优化性能 (以便它们在生产环境中运行),以便它们不旨在捕获每个潜在的问题 (这会降低用户太是多了甚至可能)。

兼容性评估器将有效地报告 deprecations (已被删除从操作系统如 GINA 功能)。 Internet Explorer Compatibility Evaluator 是好,只不过仅运行有关 Internet Explorer 7 或更高版本 (并,因为您不可能之前,测试部署的几乎限制其使用实验室或引导计算机)。 因为 UAC 计算器不捕获得多的文件和注册表虚拟化不会自动修复,它将的而不是粗略的预测值的作为标准用户运行的其他错误。 在摘要,它捕获的操作将所有绝对兼容性错误您应解决,但由于受限范围,的较差的预测值的如果而且如何不作为一个整体应用程序被中断。

我们权衡这与成本。 与在位置的复杂的软件部署系统,很简便便宜部署代理。 我还必须从服务器以支持数据收集以及时间收集数据的价格。 与处理每个日志的 17 秒的平均值,我可以执行 3 的天内 1,000 个计算机的集合上载每隔 8 的小时,并且在 2 天内处理此数据。 但是,如果我想要收集 200,000 的座位企业中每台计算机为 30 天,上载每隔 8 的小时我就不得不等待接近于要处理该数据的 10 年 (!)。

如果仍您收集库存其意义收集的计算机,子集的兼容性数据,但不是 relentlessly 投资。 我曾看到过与收集此数据的太多大容量的成本预估。

分析

一旦您知道您的有,您需要确定您希望,您所需的状态库存。 这需要业务之间的协作和 IT,和棘手的选项数。 因此,过的 内容的图 1 所示得太多次的行继续此过程,在您仅找出什么需要之后您已不希望的操作上花费大量资金。

fig01.gif

图 1 Unwise 的应用程序分析,哪些工作不一定是您的需要

决定您希望根据何种工作的问题是您最终最应用及时 (和支持) 冗余程序只因为它们会工作,或 deciding 来消除应用程序后您具有已经花费研究它的资金。

其意义更多指出您希望先,和再投资研究,和测试仅这些应用程序已确定将值添加到您的业务的钱。

为了提高应用程序分析过程效率,我们建议您设置某些显式目标并对其测量进度。 建议的目标包括:

  • 应用程序的最大数目 设置您想要支持的应用程序的一个显式目标。
  • 托管应用程序的能力 公差为设置级别时,应用程序成为"托管"应用程序,根据业务优先级和用户数。
  • 管理级别 在分散的组织中组织范围内为设置目标应用程序管理,affording 实施本指南根据其业务自治的业务部门。
  • 商业软件版本控制标准 它可以非常昂贵始终购买您的软件的所有最新版本,但会有非常旧的软件的风险。 请考虑设置 n (当前版本) 或 n-1 为您的业务关键应用程序 (以前版本) 的标准
  • 支持的平台 限制支持平台帮助管理复杂性。 您不想在 (创建的唯一功能是与最新的平台的兼容性的新版本) 的位置运行时升级所有成为非常大又昂贵。
  • 应用优先级目标 人具有何种"业务关键"意味着完全不同角度。 您将需要设置一个百分比目标或某些目标条件,使该清除

以记住的这些符合目标的涉及业务侧的操作的朋友们,知道如何以及为何使用的软件的人员。 对于较小的组织,这可以是一对一。 对于较大的组织可以收集数据以通知分析过程中使用 SharePoint 门户网站。 要简化时, 您还需要确保您可以捕获像,"我们需要保留以前的工作位置,联邦法律本金软件的七个版本"的数据。

一个重要的做法: 优化不在您的团队的正式的人员的时间。 业务所有者通常帮助您进行少没有直接的奖励。

您在如何收集已经知道您的应用程序的信息? 有关商业软件的信息共享上, Windows 兼容性中心但您需要匹配您与此网站上数据的列表。 应用程序兼容性工具包 5.5 将自动执行此匹配。

此原则剪切早期阶段,通常应用在。 高价值资源消除在 30 秒内应用程序是低值资源花一小时研究它比便宜的。 删除明显的干扰,才从企业所有者和只是研究应用程序企业所有者帮助确定您希望将围绕中收集数据。 将研究应用程序的首选的方法如 图 2 所示。

fig02.gif

图 2 筛选早期,应用程序的列表,它 ’s 成本较低时

这是程度工作的? 与一的位客户我们时间 54 不同的计算机中的约 1,200 个应用程序的清单。 通过一个午餐小时我们删除其业务规则的明显干扰。 我们缩小到大约 450 的应用程序列表,并可以可能缩小它更多其他的时间。 这是一小时中删除超过 700 不重要的应用程序地节省大量成本。

您现在可以优化基于您所需状态的成本预估。 可以进一步通知与商业的软件的已知的兼容性状态的评估并可能使用静态分析工具帮助了解预期工作,或问题。

测试

接下来,您需要确定谁要测试的过程中涉及。 该团队的注意事项包括:

  • 内部团队组成 已强的项目经理,并导致团队内部的技术专家,确保您能够协调多个角色 (测试人员、 调试器、 开发团队、 用户、 企业所有者和等等)。
  • 所涉及的伙伴 许多组织涉及到合作伙伴来帮助在进程中。 考虑在它们适合 (目标的技能增加、 人员增加、 工厂的方法和其他) 以及如何将它们集成为业务功能测试用户

您还需要计划要使用的技术。 请考虑以下技术:

  • 虚拟机 撤消磁盘和快照功能会节省大量时间从例如,"首次运行"错误、 永久删除该计算机的状态的错误)
  • 终端服务远程协助 这些可非常用于用户测试、 提供便于快速使 Windows Vista 计算机用户访问。 并远程协助帮助错误而擅自复制和调查。
  • 试生产计算机 权交换用于测试应用程序在 hotrod 新便携式计算机用户第一个访问可以是非常驱动。

接下来,制订测试过程。 图 3 显示了主干工作流:

fig03.gif

图 3 的应用程序测试过程

完成一切工作可以确保该无明显中断涉及用户之前。 没有什么,没什么比最后欺骗不愿意用户来仅将安装程序自己设置其图标中您的实验室这更令人沮丧。

同样,请确保测试人员不最终测试一些您不会修复。 需要支持时仅测试支持版本。

纠正

若要将有效的测试,需要记住的修补程序中测试。 调试失败应用程序,直到确定其适应哪个修正存储桶 ; 后一时段的停止。

当然,这样做测试人员必须知道您 considering,和时间的存储桶。 crisply 定义修正的策略。 大多数组织应考虑的修正选项包括:

  • 获取新证书 这种极可能使用,并提供了供应商支持可能在应用程序的某些重要)。 这往往是最昂贵方法开发或购置成本。 通常,这种方法使用可以提供它的任何时间 !
  • 程序 it. 这是节约成本的路由,通过修改操作系统的调用之前有一些帮助应用程序。 您可以修复不在源代码的访问,或不更改它们在所有的应用程序。 您会遭受较的额外的管理开销 (用于填充数据库) 的最小量并您可以解决合理许多应用程序这种方式。 在的缺点是支持,因为大多数供应商不支持 shimmed 的应用程序。 您不能解决使用填充每个应用程序。 大多数人通常会考虑应用程序的供应商超出业务、 软件不战略足够需要支持,或他们只是想要购买一些时间的修补程序。
  • 更改策略。 当特定功能中断许多应用程序时, 您可能需要禁用该功能。 其优点是类似于使用修补程序,您不必更改,或者即使拥有访问源代码。 并且缺点类似也,缺乏支持和无法修复所有内容。 有些人考虑此方法对于 Web 应用程序的修补程序不是一个选项。 可以分别控制和禁用了作为 stopgap 解决方案的一些安全功能。 一个常见选择是禁用本地 Intranet 区域默认情况下,Internet Explorer 8 会) 的受保护的模式。 注意,任何时候您修改系统的默认安全,需要采取的决策非常严重。 是例如禁用 UAC 可以 decimate 操作系统迁移的在商业价值。
  • 应用程序虚拟化。 没有很多应用程序虚拟化周围的混乱,作为一个应用程序兼容性解决方案。 我有听到其描述为完成分离的应用程序从该基本的操作系统和因此完整和万无一失的解决方案。 这是 emphatically untrue 今天。 文件和注册表的调用的应用程序仍然调用在基本的操作系统,并文件系统或注册表的外部任何兼容性问题仍未固定。 它非常对应用程序到应用程序的冲突,但不是泛型解决方案 OS 冲突的应用程序。 为不是每个公司支持在应用程序虚拟化的软件,即使如果操作系统上本机支持,支持状态为未知但可能不在您的愿意。 典型的方案的客户使用此解决方案是: 当问题导致冲突与另一个应用程序,在核心加载时使用文件系统和注册表,有问题时,或者因为它们像部署文章,虚拟化应用程序后的,它还可修复兼容性问题的只是好财富。
  • 计算机虚拟化和终端服务。 计算机虚拟化是您的强力方法。 您知道它将工作,由于您实际运行它的 OS 的早期版本上是否在本地计算机上或服务器位置上。 它几乎总是将会进入受支持的方案因为您实际上在受支持的操作系统上运行它。 但一些假设"虚拟化其、 今天,迁移和更高版本修复操作"时, 我倾向于更谨慎。 有管理开销,因为您正在管理可能双击每个用户的操作系统的数量。 如果您使用本地虚拟化,则需要使用支持两个同时进行的操作系统资源 (尤其是内存) 的计算机。 用户体验今天不一定始终的好,为大多数用户 perplexed 当他们看到两个开始按钮 (尽管有来自 Microsoft 和合作伙伴以提高此解决方案)。 我的客户的大多数可能使用此最后的手段的应用程序的问题。 (在实际上,许多客户设置测试阈值 ; 如果该修正团队不能解决问题在的时间内它的估计每个应用程序而不是可能永远,储存在它只是将停止并使应用程序到以前的操作系统环境)。
  • 除去 it. 不要忘记此选项 ! 有时并不值得纠正一个低业务值应用程序或软件在冗余段。 而报废。

结论

我们必须遍历通过某些计划一个应用程序兼容性项目的最重要事项。 我完成此计划在一个实心块中 (项目实际开始之前,请生成完整的 Project 计划),并我处理计划每个阶段完成上一后的客户。 关键点是了解以及您可以将操作节省您以后的时间和资金的每一步。

尽管在进程中的工程 craftsmanship 的一个方面与应用程序兼容性项目大的挑战是管理大容量和激发不 incented 以帮助您的用户。 这些提示和指南应该帮助。

Chris Jackson 是在 Microsoft Windows 应用程序体验 SWAT 团队的技术主管。 他曾与世界各地的企业客户以帮助他们调查并减少应用程序兼容性问题,以及大量的行业事件提供有关 Windows 应用程序兼容性的指导培训。 Chris 可以访问在 blogs.msdn.com/cjacks.