选择SOA的原因和时机(1)

发表于:2007-06-13来源:作者:点击数: 标签:
引言 面向服务的体系结构 (SOA) 已成为了一项事实标准,用于 开发 基于组件的应用程序,可使用标准接口通过 网络 (Inte .net 或其他网络)访问这些应用程序。至少 IBM 高级管理人员和很多其他供应商、分析师、顾问和软件开发人员都这么说。他们还将告诉您,整

引言

面向服务的体系结构 (SOA) 已成为了一项事实标准,用于开发基于组件的应用程序,可使用标准接口通过网络(Inte.net 或其他网络)访问这些应用程序。至少 IBM 高级管理人员和很多其他供应商、分析师、顾问和软件开发人员都这么说。他们还将告诉您,整个行业都在逐步采用 SOA,如果您尚未开始 SOA 开发,将很快跟不上时代的步伐了。

赞誉之词。但这些看法是否真的很有吸引力,能让您开始着手您自己的 SOA 吗?让我们来看看一位参加 Open Group 主办的 SOA 大会的架构师的问题。在 IBM Global Services 副总裁 Michael Liebow 的主题发言后的提问期间,这位架构师问道:“SOA 是不是我们需要知道的唯一体系结构?(顺便提一下,Liebow 先生的回答是“是的”)在稍后,另一位架构师大声问道:“SOA 和我们多年前就知道的组件体系结构很相似。如果我们采用了它,是否意味着我们又多添了一个技术竖井(另一个开发死胡同),从而需要进行更多的集成?”(而这次,会议参加者——包括平台供应商、企业 IT 架构师、顾问、系统集成商和其他人员——回答的是“不是。”)

这就提出了我们本月要向我们的专家询问的问题。如果您和 IBM 最近接触的很多架构师一样,那么您可能正在评估甚至采用 SOA 的过程中。但您可能仍在怀疑这是否是体系结构样式的必由之路,新东西很快由更为流行的东西取代,或者,这个体系结构是否真的适用。

我们的专家对此问题的回答包含了很多您之前听到的说法:SOA 促进了可重用性,提供了接口和实现之间的抽象级别以最小化依赖关系,将业务需求与 IT 功能结合,从而可以为您提供用于将业务需求转换为编程服务来实现流程自动化的机制,以及当前竞争激烈且快速变化的业务环境中所必需的灵活性,等等。另外,这些专家还根据他们与 IBM 内外开发先驱合作的实践经验提供了一些新颖的看法,将帮助您了解 SOA 在何时如何(甚至为什么)适合在您的 IT 体系结构和开发计划中使用。

在此对本月的专栏供稿编辑 Holt Adams 表示感谢。Holt 是 IBM Software Group 团队一位经验丰富的 IT 架构师,就您将要读到的内容为内部 IBM 社区提供了指导。他还提供了他自己对这个问题的回答“何时采用 SOA,何时不采用 SOA。”

好了,不再多说,下面就请了解一下我们的专家的观点吧。(有关回答问题的专家的更多信息,请参阅本专栏最后的关于专家。)我们邀请您就 SOA 提出您的看法。您可以访问我们的 IT 体系结构讨论论坛,或通过以下地址给我发电子邮件:pdreyfus@us.ibm.com。

何时采用 SOA,何时不采用 SOA

IBM 的目标之一是在其产品内开发和采用开放标准。通过这样做,就能在您公司的 IT 基础结构中实现 SOA 的价值主张。SOA 能够优化业务需求与 IT 的一致性,能够将业务流程活动从服务实现中分离出来,还能够降低操作成本。只有在不固定供应商的情况下才能真正实现这些功能,此时面向 SOA 实现的技术可以无缝集成(考虑:“开放标准”),以构造全面的端到端解决方案。

当考虑了策略业务目标和活动时,理论上的 SOA 概念非常具有吸引力,更加容易得到支持。不过,不可轻易决定要实现 SOA。这与改变生活方式有些类似,因为开发和操作团队遵循的 IT 控制模式将完全不同。我提倡进行业务驱动开发。此过程涉及到将业务需求细化为 IT 要求,然后将 IT 要求细化为 IT 功能,以确定满足这些需求所需的技术。根据我过去四年开发基于 Web 服务的解决方案和更为成熟的基于 SOA 的解决方案的经验,以下这些相关因素通常会让我建议采用面向服务的体系结构:

  • 集成成本持续增长,而并未因为可提供真正投资回报 (ROI) 的新业务机会而得到缓解。
  • 兼并和收购是您公司扩大市场份额和获得新发展机会的业务模式的核心。
  • 解决方案要求对来自异构系统和编程模型的业务功能进行集成。
  • 业务的生存依赖于根据市场变化快速调整或即时响应竞争威胁的能力。
  • 全球经济的影响要求您的公司事半功倍地开展业务,而且有必要依赖业务合作伙伴提供非核心业务功能。
  • 就提高收益而言,与业务合作伙伴协作的效率对您的公司十分关键。
  • 您公司业务资产的价值在减少,因为不能对其进行评估,以在最初用途之外的其他地方使用。
  • 您公司员工的效率出现了问题,因为他们的大部分时间并没有花在提供公司业务模型的核心功能和服务上。
  • 您公司的业务充满了机会型的业务工作。
  • 您公司从头开始开发新应用程序。(我认为 SOA 应当作为定位将来的新应用程序的缺省体系结构样式,业务条件有其他限制时除外。)

在理想情况下,您和您的业务合作伙伴间没有预算限制、计划期限、技能差距和优先级差异,我想,此时完全可以说每个人都会采用 SOA,或者至少会考虑采用 SOA。不过,我们的选择实际上经常受到过去的决策的影响和限制(例如,技术投资、编程模型采用、服务的合同协定等)。因此,我们并不能总是自由地采用看起来能满足某个业务需求或技术要求的最佳选项。以下的注意事项会让我不建议采用面向服务的体系结构或说明现在实现 SOA 的边际收益:

  • 您公司只将小部分 IT 预算用于集成活动。
  • 您公司的大部分流程都是手动的或以文档为中心的,自动化的机会几乎为零。
  • 您公司的大部分应用程序开发都使用相同的编程模型。
  • 您公司的操作由一个或两个客户关系管理 (CRM) 和企业资源规划 (ERP) 应用程序管理,几乎没有集成要求。
  • 您公司的现有技能库与实现支持 SOA 的基础结构所需的技能库之间存在重大差异。
  • 未发现可从 SOA 提供的功能受益的业务需求或机会。
  • 新业务服务的可用性将对现有的收益流带来负面影响。
  • 您公司依赖的业务合作伙伴对公司间流程的自动化采用了不同的优先级。
  • 您公司的主要业务的开展涉及到海量且同步性和实时性要求非常高的事务。

前面的列表只是一个示例,用以说明 SOA 是否是您公司最佳选择的原因。当然,每个合同或项目都具有唯一的要求,因此关于何时采用 SOA 的决策取决于您公司的业务状况。SOA 的价值主张十分诱人,但选择何时让您的公司采用 SOA 必须考虑业务环境的实际情况。采用 SOA 不一定要跨一大步,而通常是采用循序渐进的方式进行的。首先找到可以利用 SOA 概念和原则的项目,然后使用主要性能指标测定其价值,这是一种让大家受益的好方法。

将业务与 IT 结合起来

SOA 不仅是一个开发范例。该体系结构用于在业务和 IT 之间构建中间地段,其中包含双方都同意的一组与业务一致的 IT 服务,这些服务结合在一起,以实现组织的业务流程和目标。此范例提供了前所未有的灵活性:它允许将业务流程的结构化组成从为流中每个活动提供功能的服务中分离出来。它还允许将业务实现与其描述分离开来。进行了此分离后,公司能以增量的方式更改其后端遗留系统,并添加新功能来支持新需求,而不用受到供应商选择的限制。因此,可以在最小化对业务流程和 IT 系统的影响的前提下对软件包和自定义应用程序进行替换。

将访问功能从其实现分离的下一步工作就是 SOA。而且,除了此功能方面外,我们还可以将非功能方面外部化。例如,我们可以根据建立的业务策略确定哪些人应该可以访问特定的功能。我们还可以定义如何管理希望以灵活的、可重构的方式访问的技术资源。

软件工程发展的下一步就是此体系结构。它使我们从结构化对象转向分布式对象和组件,然后以一组公共服务为中心来将业务和 IT 加以结合(这些服务结合在一起,可以实现组织的流程和目标)。SOA 还允许将公司的部分业务流程向生态系统中的合作伙伴公开。

当需要支持业务灵活性的 IT 灵活性时,就可以使用 SOA。因此,对于两个程序需要进行通信并访问组合业务流程的行业应用程序而言,就非常适合选择 SOA。

使用 SOA 技术时,实时或被动系统通常不是进行实现的最佳选择,因为当前的技术不支持将 SOA 用于有大量并发使用情况的实时系统。不过,这些系统的建模也可以从 SOA 提供的分离和独立概念获益。

SOA 非常适合用于消除冗余及将业务与未紧密耦合到特定服务实现的 IT 功能相结合。它可以允许服务使用者选择后备服务提供者(不仅基于功能进行选择——我需要类似的功能,但不要此版本的服务中的额外依赖项,还可以基于设计及运行时策略和 Web 服务管理功能进行选择)。

企业体系结构基于 SOA 的公司具有稳定的基础,能从现有系统概念地抽象业务功能。它们还具有允许随着新软件包、系统和资产的提供和新需求的出现以增量的方式进行业务驱动的 IT 转换的基础。

一个重要但略显不足的机制

在企业范围中,大量的创新都出现在以下两个方面:企业边缘和企业之间。在边缘上,我们可以看到在中间件之上的框架投入了很多精力(独立于领域的框架,如 Ajax,以及特定于领域的框架,以特定行业为中心进行结合),也投入了很多精力进行与设备相关的工作 [ 典型的移动设备和具有无线频率识别(Radio Frequency Identification,RFID)标记的设备 ]。而在企业之间,我们可以看到系统(遗留系统和新系统)的系统的形成。

在此类以 Web 为中心的系统中,服务已被证实为这两个方面的重要机制。在边缘,服务提供超越基础技术的行为。而在企业之间,服务提供了各种系统间语义丰富的强大通信方式。

虽然这样说,但在系统的构造中,服务是一个重要却略显不足的机制。这样说有些过于简单化,但总的说来,服务对于高频率或非常小粒度的连接而言,并不非常适合。而且,服务当然不是唯一适合各个系统的体系结构的分解机制。


共3页: 1 [2] [3] 下一页

原文转自:http://www.ltesting.net

...