| SOA 与情景应用程序,第 1 部分: 改变企业中的计算 |
|
| 作者是 Administrator | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2008-03-24 07:23:24 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
在过去的几年中,面向服务的体系结构得到了越来越广泛的认可,并成为支持业务转换的重要企业体系结构,面向服务的体系结构在业务流程和支持 IT 之间提供了更紧密的联系。已经有了大量文章介绍了成功的面向服务的体系结构实现和采用和成功实现面向服务的体系结构的障碍方面的内容。 当企业定义和采用面向服务的体系结构计划时,专业程序员和知识员工中新出现的基层计算强调了另一种不同的开发方法。在此方法中,最了解手头业务问题的那些人员可以快速开发解决方案,省去了传统 IT 方法的开销和形式。通常由业余程序员使用迭代和协作方法开发的新型情景应用程序 (SA) 可以缩短传统的编辑–编译–测试–运行形式的开发生命周期。情景应用程序能够以更节省成本的方法更加直接地解决业务问题,抓住直接影响最终用户的 IT 部分和处理以前负担不起或处于较低优先级的领域。 本系列文章将介绍关于情景应用程序的以下主题: 第 1 部分:
第 2 部分:
第 3 部分:
还没有得到公认的术语情景应用程序 描述了为解决特定的情况、问题或挑战而构建的应用程序。此类应用程序的开发生命周期与传统 IT 开发的、基于 SOA 的解决方案有很大区别。情景应用程序通常由临时程序员使用较短的迭代开发生命周期构建,该生命周期通常用天或周度量,而不是用月或年度量。当使用应用程序的小型团队的需求更改时,情景应用程序通常会随即改进,以适应这些更改。重要的需求改变可能导致原有的应用程序全部废弃;在某些情况下,开发新应用程序比升级正在使用的应用程序更容易。 在企业中,最终用户设计这一想法并不新鲜。临时的程序员结合使用 IBM Lotus® Notes®、Microsoft® Excel 电子表格与 Microsoft Access 或其他工具来开发应用程序非常普遍。这种混合开发方法的新颖之处是随着总体计算机技能的提高而使基于社区的计算大量增长、引入新技术和增加对业务需求的敏捷性。 Asynchronous JavaScript + XML (Ajax) 的出现(利用对基于 Web 的数据的便捷访问和富用户界面 (UI) 控件)以及与 Web 服务的 Representational State Transfer (REST) 体系结构样式的结合为基于浏览器的高交互性应用程序的组装提供了易于使用的操作平台。
与基于 SOA 的解决方案类似,情景应用程序很少从头开发,而是从现有构建块(或称为可用块)组装。Mashup 是情景应用程序较为有名的子集。多种简单的应用程序编程接口 (API) 和支持 Ajax 样式的 Web 组件(例如,ProgrammableWeb.com 列出的 Yahoo Developer Network 设计模式和 API)有助于此开发风格的日益普及。甚至旧的 Web 技术(如 JavaScript)也在重新复兴。 表 1 列出了在知识员工和专业开发人员中有利于普及基于 Web 的情景应用程序的因素。 表 1. 有利于普及基于 Web 的情景应用程序的因素
一些人认为 SOA-SA 之间的关系是人为建立的。他们认为,面向服务的体系结构侧重于提供健壮的企业级解决方案,而情景应用程序是自已动手完成的应用程序,它无法通过扩展来满足企业业务需求。 还有一些人认为二者之间存在协作关系,这在一个博客日志中进行了描述,该博客日志将 Web 2.0(情景应用程序是其中的一个方面)描述为“面向服务的体系结构的大量实例”(请参阅参考资料以获得此博客日志的链接)。 我们的研究表明,尽管面向服务的体系结构和情景应用程序具有不同的开发生命周期和动机、不同的使用模式,甚至不同的支持技术,但它们也有重要的共同之处:
尽管对于面向服务的体系结构,组合的重点在后端,但是许多情景应用程序都将 Web 用作平台,通常侧重于在消费者体系结构层或透明 地组合。
与通常需要数月和甚至数年的基于 SOA 的开发不同,情景应用程序的开发人员可以从改进工作效率和功能方面得到好处,并且可以缩短从确定需求到在生产中使用应用程序所需的时间。这些解决方案可以通过经济高效的方法解决一些紧急的业务问题——抓住直接影响知识员工的 IT 部分——并解决以前对包括在企业 SOA 项目中负担不起或处于较低优先级的领域,有时称为长尾,它是由 Chris Anderson 首先提出并得到普及的一个术语(请参阅参考资料中相关的链接)。通过采用此开发范例,IT 能够使以前被认为环境太特殊的业务领域实现自动化。 与企业级面向服务的体系结构开发相反,情景应用程序可以移动目标,并永远处于测试状态。提出需求甚至实现需求的用户通常不是应用程序的最初作者或用户,展示了早已从企业应用程序的传统控制环境消失的社区兴趣和所有权思想。请参见表 2,了解面向服务的体系结构和情景应用程序的对比。 表 2. 面向服务的体系结构和情景应用程序开发生命周期
面向服务的体系结构和情景应用程序之间的根本区别是社会方面,即 Web 2.0 移动中心要广泛考虑的原则(中心驱动的面向服务的体系结构也可以从中获得好处)。情景应用程序通过用户社区的反馈不断向前发展;其存在依赖于参与的体系结构。表 3 比较了社会方面。 表 3. 社会方面——面向服务的体系结构和情景应用程序之间的区别
情景应用程序构建者公布了由于他们的工作和“被控制”的感觉而带来的满意度的改进。 IBM 市场调查显示情景应用程序的用户将它们视为核心价值。超过一半的用户认为它们是“任务关键型”的应用程序,称其对日常活动、部门和公司的成功“非常重要”(摘自“Changing the corporate IT development model:Tapping the power of grassroots computing”一文,2007 年 10 月;请参阅参考资料中的相关链接)。
现在,我们深入了解一下促使出现情景应用程序的技术变化(表 4 进行了总结)。 情景应用程序侧重于用户体验和高交互式客户端应用程序,可随时反映技术和工具的使用。Ajax 通过利用丰富的用户界面控件和对基于 Web 的数据的访问,主要改进了 Web 应用程序响应能力和性能。Ajax 通过在服务器中检索部分页面和刷新浏览器以实现高交互性。 表 4. 面向服务的体系结构和情景应用程序的技术对比
REST 体系结构样式使用统一资源标识符 (URI) 识别 Web 资源,允许平等地从浏览器、移动设备、服务器应用程序通过电子邮件和书签中的链接来访问那些资源,此编程风格对大量的客户端应用程序具有很大的吸引力。因为 REST 样式服务可以使用 Web 基础结构进行缓存,所以它们可以实现更快的响应时间。假设 REST 不需要维护通信状态,您可以改进对服务器使用的可伸缩性——可以使用不同的服务器处理初始和后续请求。
企业中形成的 Web 2.0 社区通常用于负责 SOA 实现的公司 IT 无法满足业务需求。尽管许多情景应用程序爱好者认为面向服务的体系结构是重型的(heavy weight),但二者有惊人的相似之处(本文前面的内容已经提到)。 面向服务的体系结构和情景应用程序的开发通常是由业务灵活性推动的。公司 IT 不应忽略面向服务的体系结构和情景应用程序的互补特性;情景应用程序为面向服务的体系结构提供了重要的补充,其中包括:
通过利用企业中基于社区开发的巨大潜能,情景应用程序可以为以面向服务的体系结构实现的组织带来更广泛的好处。情景应用程序带来的机会特别多,现总结如下。 情景应用程序可以通过以下方式提高业务能力:
情景应用程序可以通过以下方式改进业务解决方案:
情景应用程序有助于提高投资回报:
同时,将情景应用程序引入企业计算环境会增加 IT 部门面临的挑战,现总结如下。 IT 部门可以将情景应用程序视为“可控制的”无序状态,因为:
将情景应用程序的集成推向边缘,因为:
情景应用程序和企业应用程序的管理非常复杂,因为:
情景应用程序会带来数据安全性、隐私和完整性问题,其中包括:
在企业中使用情景应用程序需要现有企业基础设施中的其他灵活性。例如,通过重复使用面向服务的体系结构计划为情景应用程序管理、操作和监控提供的服务和基础设施,面向服务的体系结构有助于减轻某些问题的危害。 正当许多 IT 部门怀疑情景应用程序对公司计算的有用性或对外部开发的 API 在防火墙中使用持谨慎态度时,IBM 的 CIO 办公室已经决定在企业中使用情景应用程序。为更好地了解采用基于社区的开发带来的挑战和机遇,IBM 的 CIO 办公室制定了称为情景应用程序环境(Situational Applications Environment,SAE)的计划。他们将 SAE 视为观察和获得最佳实践的实际实验室,图 1 中描述了 SAE。 图 1. IBM 中的 SAE 概念
在企业计算中利用情景应用程序开发和面向服务的体系结构可能从根本上将 IT 角色从解决方案开发人员转换为解决方案实现者。我们认为这是 IT 角色的必然改变。 学习
获得产品和技术
讨论
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 最近更新 ( 2008-03-24 07:23:24 ) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

