观点与展望:选择SOA的原因和时机

日期: 2008-04-28 作者:Editorial staff 来源:TechTarget中国

  面向服务的体系结构(SOA)已成为了一项事实标准,用于开发基于组件的应用程序,可使用标准接口通过网络(Internet 或其他网络)访问这些应用程序。至少 IBM 高级管理人员和很多其他供应商、分析师、顾问和软件开发人员都这么说。他们还将告诉您,整个行业都在逐步采用SOA,如果您尚未开始SOA开发,将很快跟不上时代的步伐了。
 
  赞誉之词。但这些看法是否真的很有吸引力,能让您开始着手您自己的 SOA 吗?让我们来看看一位参加 Open Group 主办的 SOA 大会的架构师的问题。在 IBM Global Services 副总裁 Michael Liebow 的主题发言后的提问期间,这位架构师问道:“SOA 是不是我们需要知道的唯一体系结构?(顺便提一下,Liebow 先生的回答是“是的”)在稍后,另一位架构师大声问道:“SOA 和我们多年前就知道的组件体系结构很相似。如果我们采用了它,是否意味着我们又多添了一个技术竖井(另一个开发死胡同),从而需要进行更多的集成?”(而这次,会议参加者——包括平台供应商、企业 IT 架构师、顾问、系统集成商和其他人员——回答的是“不是。”)


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


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


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


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


  不可轻易决定实现 SOA。这与改变生活方式有些类似,因为开发和操作团队遵循的 IT 控制模式将完全不同。


  当考虑了策略业务目标和活动时,理论上的 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。而且,除了此功能方面外,我们还可以将非功能方面外部化。例如,我们可以根据建立的业务策略确定哪些人应该可以访问特定的功能。我们还可以定义如何管理希望以灵活的、可重构的方式访问的技术资源。


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


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


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


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


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


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


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


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


  在边缘,服务提供超越基础技术的行为。而在企业之间,服务提供了各种系统间语义丰富的强大通信方式。


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


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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • IT,OT和IoT的未来

    IT,OT和IoT之间到底有什么样的关系?IT和OT的真正融合还须等待多久?企业中的物联网案例有哪些?硬件信任根能否保物联网安全?答案尽在本期。

  • IT和OT的真正融合:还须等待多久

    在工业互联网中,我们会看到更多的OT和IT融合。这种融合将推动新的行业技术。我们会看到激动人心的新兴工业应用的出现。

  • 通过物联网连接OT和IT部门

    物联网正在通过新的基于IP的操作控制系统,改变OT,可以帮助企业改进成本和增加自动化。通过协调和统一OT和IT基础设施,系统和实践,企业可以提高效率并优化业务决策。

  • 空难之后 航空业需重新思考IT的正面意义

    911之后,全球航空业重新思考了“安全”的新定义,美国部分航班上还配备了相应的空警,同时在驾驶舱硬件方面进行升级,比如此次失事的A320航班的驾驶舱门能够抵御人力或小型武器的冲击。但与此同时,航空业还在抗拒更多技术。