内容


应用程序架构本质,第 4 部分

创建灵活环境以支持发展

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 应用程序架构本质,第 4 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:应用程序架构本质,第 4 部分

敬请期待该系列的后续内容。

在创建可经受时间考验的强健应用程序体系结构时需要考虑许多因素,如建模、必要条件、设计、流程、性能等。不过,有时会忽略应用程序体系结构的如下方面,因为它不是整个流程的量化部分:发展。公司、行业、业务策略、客户——所有这些领域都会随着时间的推移而发展和变化。

当设计应用程序体系结构时,规划体系结构的发展与其他方面同样重要。在本文中,您将学习一些技能、能力、工具、技术和里程碑,它们可以帮助您有效地创建向后兼容的体系结构。当阅读本文时,请您从使用者的角度考虑问题,无论其是否适合于单位雇员、供应商、提供商或业务合作伙伴。

技能和能力:可伸缩和自适应思想

当想到术语可伸缩 时,您可能会想到在设计中需要使用的应用程序,并考虑这些程序是否可以应对用户数量的增长。然后,您可能会想到如何在组织的不同领域中使用这些应用程序。甚至可能想到如何确保用户通过简单的导航和连接界面非常容易地访问这些信息。但是您能想到从现在起六个月后将发生什么情况吗?一年以后呢?三年以后呢?

无论应用程序体系结构是多么的尽善尽美,一年后总会暴露一些缺陷。您没有做错什么;事情本来就是这样的。例如,假设您开发出世界上最先进的会计应用程序体系结构。户用都喜欢它。公司在不断获取所需的信息来进行战略决策,并且您非常高兴地规划下一个项目。这时,发生了以下情况:抱怨和问题开始出现。“我们为什么不能获得关于 X 的信息?能够获得关于 Y 的报告吗?如何跟踪 A,使 B 成为等式的一部分?”

体系结构仍与发布时一样完美无缺,但是用户不再高兴。他们开始感觉到他们得不到足够的信息。您的配置无法解决他们提出的新问题、新要求和新难题。最初提供的功能可能会使他们的想法超出以前的计划,这些想法将触发新的念头。他们可能认识到以前需要的信息现在已过时。他们需要可扩展和适合他们的应用程序体系结构。为实现此目标,他们需要具有超前思维的应用程序架构师。

当某些问题可能永远无法彻底解决时(毕竟,技术有时跟不上快速的需求),在应用程序体系结构计划流程中使用可伸缩和自适应思想可以帮助您预测在实现后的长时间内可能出现的问题类型。

可伸缩思想概述

在设计中考虑应用程序的可伸缩性时,请退一步考虑问题。您需要知道业务需求才能实现这一点,但是,对于时间框架内的这些需求,您了解业务团队吗?例如,您知道今天 的业务需求吗?或者您要求团队提前思考和预期三年或五年后他们的需求吗?请记住,当业务团队听取架构师的建议时,他们没有您实际执行内容的任何线索。他们没有认识到您正在尝试将他们的业务推向一个更好的位置;他们通常注重需求收集流程,并将其作为大量执行的艰巨任务。要求他们超前思维可以帮助他们了解您的角色及其如何适合他们的业务。

您可以让业务团队帮助 的一个方法是请求用户提供“愿望列表”——他们非常希望拥有的信息,无论当前的需求如何。此方法完成以下两个任务: 第一,鼓励用户更积极准确地参与需求收集流程,第二,使您能够了解用户的真正需要。 由于预算或其他原因,您可能无法立即满足他们的需求,但是,如果您现在知道用户真正的希望是能够立即从四个不同的运营商随时查看运输费用,则该需求可以为您指明未来的工作方向。这不足为奇,因为您已知道这是用户的需求。例如,通过提前与用户沟通,他们将知道您主要通过增量升级最终提供该功能。

可伸缩思想不是事后产生的想法。必须将应用程序和资源设计为按用户需求、业务策略和竞争压力处理不同的更改。那么,对于应用程序架构师,关键在于了解何处需要实际的可扩展性。完成此任务的唯一方法是在体系结构流程中包括用户,让他们也思考可伸缩的级别。

现实中的自适应思想

人的思想有许多级别,其中有些思想是理性的,有些不是。Gerd Gigerenzer 是 Adaptive Thinking:Rationality in the Real World 一书的作者,他说自适应思想是人脑应对环境(生态和社会)的方法。在处于压力和超载的环境中时,人脑会避开新思想,而侧重于简单地处理现成的工作。但是,在技术领域,自适应思想可以扩展到使用现有知识进行创新这一想法。当出现技术压力时,这种思想可以让思维处于开放状态,而不是封闭状态。

如果记住万物都是联系的、所有进步都来自已知内容这一概念,则可以为发现处理应用程序体系结构环境问题的新方法带来灵感。例如,许多组织都极大地受到现状的限制——他们被日常事务所困扰,无法关注未来。他们在周围看到的都是问题,创新 只是业务会议上的措词。但是,如果采用关于组织如何工作并发现任何机会(而不是问题)的现有知识,又该如何呢?然后可以使思想适应存在的机会,而不是推动组织发展的当前业务需求。

自适应思想还可以帮助您更进一步确定与其一起工作的业务团队。通常,工作支持和启用的业务环境受连续不断的压力的影响,这些压力限制了创造力,并强制人们解决日常难题。对压力的传统应对方式如下:虽然完成了工作,但没有时间思考完成工作的更简便的方法。您可以以局外人的身份研究业务情况,并使用自适应思想向这些团队提供有价值的东西。当展开设计时,您的远见卓识和创造力将开始展示如何让应用程序体系结构改进整个组织。此时,业务团队将开始赏识您的智慧。

工具和技术:简化和集成

简化,简化,再简化。我们都听到过这样说,但您是否经常将其真正地应用到设计中?在设计中,将发展作为重要部分时,简化至关重要。您的设计越复杂,以后将其他程序应用程序或流程集成到该设计中时就越困难。本系列文章中的前一篇文章讨论了查看林 树(而不是其中一个)的必需技能。该技能转换为用于发展的技术。您能够看到操作的大规模和小规模的方面和提示越多,越容易看到在设计中何处包括长期发展,何处不能包括。把通过自适应思想了解到的内容应用于业务团队,然后将长期信息与设计进行比较。沿着该路线进行必需更改的简单程度如何?按照设计进行工作,直到无法再简化设计的任何方面。

简化时,应确定可以发生集成的所有点。当然,不但要从当前环境角度看待这个问题,而且还要从未来的角度看待此问题。您是否包括可能无法与其当前功能之外的任何内容集成的应用程序?尽管由于它是当今最强健的解决方案而让您可能会包括该软件,但是,如果由于发展的需要,包括该软件将意味着在一年后购买和部署新的解决方案,则需要重新考虑该解决方案。如果其他解决方案可以提供未来所需的功能,则业务团队现在可能会同意使用其他解决方案。

工具和技术:可靠性、性能和可用性

任何一个明智的应用程序架构师都会使用可靠性、性能和可用性这些概念来检查应用程序和总体设计。当然,每个功能必须工作、必须按标准执行,并且在需要时必须可用。如果不能,则设计不但不可靠而且无效。不过,当检查设计时,请使用自适应思想来规划发展。如果在此设计中进行用户未来需要的更改,又会怎样呢?将如何影响可靠性和其他因素?

几乎需要创建两个设计:工作设计和未来设计。每次更改工作设计时,都将该更改与未来设计进行比较。如何将现在维护的遗留系统与当前出现的技术集成?例如,与在业务前景中发展迅速的可扩展标记语言(Extensible Markup Language,XML)或异步 JavaScript 和 XML (Ajax) 集成。在考虑未来发展时,当前系统和工具与当前设计集成的良好程度如何?您的组织现在是否对其他应用程序进行了投资,使长期发展更具管理性?现在,通过分析这些项,应对随时间推移而产生的更改和发展会更容易。

工具和技术:构建块

将一组应用程序用作构建块是在应用程序体系结构中用来帮助简化和集成核心业务流程的灵活方法。构建块可以减少界面复杂性,并跨多个提交渠道增加生产。它们还可以通过减少监视和升级各个系统所需的总时间和精力来减少多个系统的维护成本。同时,您可以非常容易地扩展功能,并且更精确地跟踪它们:要监视的应用程序不多,并且功能可以在组织中使用。

通过使用核心应用程序并在组织发展时以这些核心应用程序为基础进行构建,您可以:

  • 定义当前的和计划的信息技术 (IT) 环境之间差距。
  • 构建运作模型,以转换到可以扩展为支持公司发展的新应用程序环境。
  • 在各部门之间共享信息(同时增强协作)。
  • 为未来发展打下基础。

IBM 在首尔的 Hyundai Marine & Fire Insurance Co. 中使用了构建块方法。Hyundai 以 IBM Insurance Application Architecture 为起点,创建了提供极大灵活性的系统。为解决方案选择的最初应用程序被用作发展中计划内和计划外更改的构建块——针对其功能选择每个应用程序,以便随着时间的推移非常容易地集成和支持其他应用程序。公司称,通过使用构建块方法实现了许多好处,其中包括能够预知在新的构建块策略部署时出现的价格战和易于管理的需求。构建块方法有助于最小化业务风险、提高可靠性和减少实现成本。

它是一个有效的方法,但是在使用构建块之前,该方法需要业务团队接受关于发展策略方面的培训。在某些组织中,经营单位依赖于小生境应用程序,这样需要花费一些时间使业务团队确信构建块方法不仅可以帮助他们,而且还可以帮助整个组织。如果在较低层次遇到阻力,请改为尝试向上层管理人员推荐构建块方法。经营单位接受该概念之前,高层管理人员可能会接受和认可。

里程碑

当设计发展时,我们介绍了关于与业务团队一起工作的许多情况。而就很多方面而言,这些团队就是您的客户。将它们与外部客户(如消费者、业务合作伙伴、供应商和提供者)联合在一起时,就会拥有许多设计支持者。下面的里程碑可以帮助您考虑这些不同支持者的所有需求。

集成策略

集成策略不同于设计如何集成实际的应用程序。此里程碑更多的是与合适的支持者定义和沟通您的策略,以便让他们购买您的计划。与业务团队一起工作并确定在何处进行简化和集成后,就可以编写简短的文档,并概述要推荐的战略方法。它使用“通俗”术语(任何人可以理解的术语)编写,应该非常简单,并应该包括一些简单的图形,向读者展示策略的工作方式和预期的结果。

我不能充分强调此策略应该非常简短和简单。从“电梯陈述 (elevator pitch)”(公共关系团队描述消息的方式)的角度考虑,他们希望将消息快速传达给不了解给定主题的人。如果在电梯上升 10 层的时间内,不能清楚地解释您的策略,则您没有针对经营单位充分地简化您的策略。您是应用程序专家,应该如何集成它们,没有人与您争论该主题。应该将集成策略编写成帮助组织中的其他每个人完全理解您的工作——达到可以理解的程度。如果不能确保其他人容易地掌握您共享的信息,则请求 IT 外部人员检查它,并提供输入信息。

编写策略后,使之广泛应用于需要它的任何人。将其分发给主管人员、经理和向您提供预算的其他决策者,使策略能够实施。当每个人都了解策略和处理发展的计划时,您将发现可以非常容易地完成工作并支持正在进行的与策略相关的请求。

路线图

规划发展并不总是意味着您可以获得所需的一切。有时,金钱不是万能的。在其他情况下,系统的灵活性并不支持您的计划。在某个特定的时间,某些事件可能会阻止您部署特定的应用程序。或者某一部门在某个日期需要特定的功能。无论是什么问题,您需要路线图来帮助您确定影响发展计划的障碍、时间安排选项和其他问题。

在业务流程管理中使用分阶段方法中,我介绍了简单路线图的工作方式。通过突出显示重要的活动和事件,您可以清楚地将时间限制可视化,并且也可以帮助其他人可视化时间限制。我们极力推荐在策略文档中包括路线图,以帮助明确关于长期策略和发展的要点。

服务级别协议

当规划发展时,需要考虑另一个术语:服务级别协议 (SLA)。您知道您的公司有多少个服务吗?它们与哪些应用程序紧密绑定?如果不知道,必须尽快弄清楚。公司可能在 SLA 上花费数十万美元,涉及的成本可能会阻止您在规划发展方面的继续投资。

例如,如果公司具有您希望终止的特定应用程序的年服务协议,则应了解协议何时期满以及何时续订该协议。通常有两个不同的日期。如果公司已续订了下一财年的协议,则发展策略可能必须等待,直到该协议期满。此外,新的体系结构在该协议期满前必须充分运作,以避免经营单位出现问题。了解这些协议的作用和每个协议的时间选择可以帮助您有效地规划发展。

总结

在应用程序体系结构中规划发展需要将自已放在客户的位置。他们需要什么?他们希望得到什么?何时才能得到?但是,通过使用可伸缩和自适应思想重点关注以客户为中心的业务策略,您可以有效地设置策略,以满足客户现在和将来的需要。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=267615
ArticleTitle=应用程序架构本质,第 4 部分: 创建灵活环境以支持发展
publish-date=11072007