“如果你不是技术人员,[SOA] 无非就是另一个从你头顶飞过的术语。”, Software Advice 的 CEO Don Fornes解释道;更别提那些像“ SOAP、XML、CORBA、DCOM、.NET、J2EE、REST、BPEL 和 WS-CDL”这样的大量相关缩写所带来的复杂性了。他试图在自己的文章中揭开围绕 SOA 的这些概念的神秘面纱。
为了用简单的大白话来讲述 SOA,他给出了 SOA 的通俗定义:
让一组不同软件程序协同工作的新方式,而且这种方式还更好;这样,人们就可以完成一些需要从每个这些系统中获取信息才能完成的事情。
Don 把 SOA 描述成一个等效于管理大型、相异工作队伍的信息技术(IT)。他说道:
要在大型组织中把事情做好,你需要:
- 仔细定义你目标和成功要素;
- 发挥每个个人独特的才能和知识;
- 统一人们所讲的语言,使他们作为一个团队彼此协作;而且
- 度量目前的状况,判断是否已经取得成功。
他说的所有这些都是交付一个成功 IT 解决方案的 SOA 的特征。
它将现在有哪些系统和这些系统能干什么(如它们拥有哪些数据)进行了分门别类。它规定了它们都可以用来进行沟通的一种公共语言,即便这门公共语言并不是每个系统的“母语”。随着这些组件的就位,组织就可以构建利用多系统集成的应用和流程。最后,一个 SOA 来协调和监视跨这些系统的流程。
他承认 SOA 不过就是一种互异系统的集成,但他接着列举了让 SOA 区别于传统点对点集成的好处。
- 现在集成系统更容易。
- 可以实时地管理和监视需要多系统协同工作的复杂流程。
- 定义了书写下一代系统的标准,这样 SOA 愿景就能更容易的随着 IT 环境的演变而实现。
接下来,他详细阐述了管理大型相异工作队伍的隐喻。他勾勒出了 SOA 中的关键概念,它们的重要性,以及它们跟工作队伍隐喻的联系。以下就是这些概念的描述和相应的等价物。
松耦合
松耦合涉及的思想是,SOA 内的服务可以为多个应用服务,而不仅限于某个特定应用。这就像是一个工作队伍,它的雇员可以因工作需要跟不同的团队或部门一起工作。这些雇员并没有被限制只为一个老板或一个部门工作。WSDL
Web 服务描述语言(WSDL)是一种刚刚出现的描述每个服务工作的元数据标准。可以把它认为是描述组织内所有角色和职责的语言。尽管我们可以使用英语来描述工作场所里的雇员角色,但是计算机需要它们自己的语言来描述服务角色。可重用性
SOA 的一个目标是让应用开发随着时间的发展越来越简单。朝着这个目标,你会期望每个服务(不论新旧)在将来都是可以重用的。这就象尽量留住你最好的雇员,以便可以在他们的整个职涯里在许多不同项目中一次又一次的利用他们的技术。可组合性
可组合性意味着服务可以彼此连接创建更大的服务,执行更复杂的应用。接着,这种组合可以作为服务本身来服务其他组件。这就好比组建一个伟大的雇员团队,其整体大于部分之和。你可能会倾向于把这样的队伍一次又一次放到新项目中。自治
自治意味着每个服务用一种它认为适合的方式来尽力完成本职工作。你应该利用服务的输出,而不深究服务如何完成工作。要是你深入了解每个服务完成工作的方式,你就失去了 SOA 的简单性的思想。这很象让你最好的雇员去尽量发挥,而不是对他们进行微观管理。
Don 警告说,尽管所有这些概念在理论上看似乎都不错,但有效 SOA 的真正症结在于执行。他声称,SOA 仍处于它的早期阶段,伴随着围绕服务滞后、不成熟的标准,以及让自治系统讲规范“语言”的挑战。
考虑所有这些问题当然是有原因的。然而,SOA 是由充斥着想看到它的愿景成为现实的开发者的巨大行业所支撑的。即便 SOA 不是魔弹,但是朝着 SOA 愿景工作和只实现它的部分理念都是有巨大价值的。这个模型承载了伟大的承诺,提供了超越历史 IT 集成和开发挑战的路线图。
欲了解本文摘更多相关内容,可以访问 Don 的网站。
查看英文原文: SOA In Plain English
评论