InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

SOA != Web服务

作者 Arnon Rotem-Gal-Oz 译者 胡键 发布于 2007年7月18日

领域
企业架构
主题
Web服务 ,
SOA
标签
SOA Appliance ,
SOA实施 ,
Web服务

许多人将Web服务和SOA划上等号,并把它认为是实现SOA的唯一选择。对此,Jason Bloomberg并不同意。最近,他发表了关于“拆散SOA和Web服务的联姻”的意见。

认为SOA和Web服务是一码事,可能是市场中围绕面向服务架构(SOA)最令人恼怒的误解。不幸的是,这个混乱的观点非常流行,它对架构师和开发者都造成了影响,咨询师和厂商也不例外。

Jason并不是第一位说SOA不等于Web服务的人——决对不是,在他之前就已有很多人这样说过。如,看看2006年InfoQ的就企业SOA对John Crupi所做的采访,或我们的就SOA对Frank Leymann所做的专访,专访中他说到:

FL:我们必须清楚地区分SOA和Web服务规范——有时,两者被混为一谈:SOA是架构,而Web服务规范则定义了一个支持SOA的互操作平台。

SOA不是全新的。在实际中,SOA的一些个别方面已被使用很长时间了。如,拿“松耦合”来说:多年前,企业就使用可靠消息传递技术来集成应用,即,使它们之间解耦。请不要误解我,在SOA中也有新概念,如组合装配在SOA中的概念而产生的那些新概念,也就是说,它们是逐渐产生的。

Web服务规范使相应的技术能够有效的跨平台。也就是说,相应的规范基本上不会发明新的概念,而是定义这些概念及它们相应的实现如何在异构环境中工作。结果是互操作性破茧而出,SOA成为现实。

关于Web服务与SOA既不是一回事也不相同的事实已不是什么新闻了。有趣的是,Jason试图让我们看得深入一些。一个原因似乎是分析公司自己——正如Jason所指出的:

当然,凭借早期关于Web服务技术和趋势XML & Web服务安全面向服务管理,以及测试Web服务的报告,ZapThink在Web服务领域乘风破浪。可是,尽管早在2002年2月我们XML和Web服务揭秘 一书中就已讨论了架构,但当时我们建议厂商不要谈论SOA,因为市场尚未为SOA所代表的更复杂的、以业务为中心的主题做好准备。相反,鼓噪之声集中于Web服务架构,它基本上是基于标准的集成方法。

自然地,Jason也说ZapThink恢复得太早了:

可是,回顾2002年,在那年6月我们书写面向服务集成报告的时,我们意识到一个在今天看来都是预言性的基本事实:尽管单独使用Web服务可以降低集成的成本,但只有转向SOA才能让组织降低业务变更的长期成本。换句话说,Web服务给了你一张舞会的门票,但你仍需学习跳舞。

按照Jason的说法,其他的罪魁祸首是技术厂商自己:

事实上,在众多IT产品厂商看到了SOA井中的金子时,Web服务的花车就开始没落了。这些产商开始拍着它们产品上的Web服务接口,声称它们是面向服务的,这种做法就象给猪抹口红一样,没什么价值。事实上,对应用或数据库的Web服务接口,甚至是专有消息中间件之上的Web服务适配器,都不是SOA。

Jason认为,现在是更好地分离这些概念,并让SOA在更高抽象级别演化的时候了。但不是所有人都同意Web服务应该从SOA中分离。如,Frank Cohen认同它们是不同的术语,但也认为它们关系紧密

SOA和Web服务是非常有用的愿景,它帮助我们从当前的XML、平台、应用和服务(我称之为XPAD运算)走向未来。多年来,IT一直想要获得这种互操作性、重用和治理,包括在这方面所做的努力,如CORBA、OpenDoc、DCE、Client/Server、Web 1、Web 2.0和企业Web 2.0。所有那些努力都能提供一个组件架构,在其中软件可被重用加速企业获得市场先机,接着为企业提供更好的消费者意见。

SOA保留了WS组件的思想,关注用于业务工作流的组合应用,并为了静态代理端点,编排治理、业务问题、排错和质量服务(QOS)而丢弃了发现服务的思想。

对我来说,有时企业架构师和技术经理误解SOA和Web服务的一些术语,没什么大不了的。

你的想法是什么?使用SOA来标识Web服务是个问题吗(反之亦然)?

查看英文原文:SOA != Web Services

译者 胡键 热心开源技术,《开源技术选型手册》作者,《SOA实践指南》译者。目前致力于Groovy/Grails的研究和推广。

深度内容

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。