模块化Java:声明式模块化
本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。
作者 Arnon Rotem-Gal-Oz 译者 胡键 发布于 2007年7月18日 下午8时33分
许多人将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
本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。
项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。
在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。
Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。
Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。
没有回复
关注此讨论 回复