解答Spring Web Services 1.0
Web服务构造的“契约优先”方法给开发者提供了面向服务架构(SOA)的正确途径, Spring框架的所有者——Interface21公司本周发布的Spring Web Services 1.0的创始人如是说……
【IT专家网独家】Spring Web服务的项目经理Arjen Poutsma说,花费了两年时间完成的新的Spring Web服务框架,其发展的初衷是创建以“正确方法”构造Web服务的工具。他给正确方法下的定义即契约优先。
ZapThink有限责任公司的首席分析师Jason Bloomberg对此表示赞同。
“期待已久的Spring Web服务的发布对于Java世界是一个令人兴奋的发展,契约第一的开发风格是这一发布最重要的方面之一。”分析师说。
“契约优先的Web服务开发是指你在契约的哪个位置定义你的Web服务接口,”Poutsma表示。“代表性的契约是一个摘要,例如WSDL文件。”
Java中构造Web服务的两种方法
契约优先是Java中构造Web服务的两种基本方法之一,Poustma解释道。一个方法是以Java类开始并将此制成一个SOAP服务,此服务基本上从Java类中生成契约。但他表示这个方法不灵活,不利于SOA应用的松散耦合需要。
“如果你在一个Java类中实现你的契约,要想不拘泥于对到达的SOAP消息或XML消息的类别,哪怕这种不拘泥只是稍许的一点都是非常艰难的。”他说。
第二个构造Web服务的方法是契约优先的开发风格,也是SpringWeb服务中唯一支持的方法,Poutsma说。
“在契约优先的开发风格中,你定义你的XML消息是什么。”他解释道。“用Spring Web服务,你可以以你想要的任何方法处理到来的XML。我们关注XML,因为最终Web服务是关于互用性的一切,而互用性就意味着XML。”
Bloomberg说契约优先对SOA非常重要,他对Poutsma的“契约优先是用于Web服务的两个Java开发选择中较好的那个”观点表示赞同。Bloomberg称“契约优先”是构建支持初级SOA的Web服务的一个基本部分。
“传统的以Java构造Web服务的方法是契约最末,即以Java代码确定WSDL契约,”Bloomberg说。“一般由此导致的Web服务中一直都有Java环境的问题,并导致不必要的契约变化,这严重阻碍了松散耦合。传统方法产生的Web服务一般不适于SOA。用契约优先开发,WSDL文件决定服务的行为,使架构师能将控制契约的变化作为他们的SOA实现的一部分。”
自从Poutsma两年前开始了SpringWeb服务的最初工作,其他包括契约优先方法的Web服务工具也在市场上出现。但是没有一个象Spring这样以类激光的方式来关注契约优先方法。
“SpringWeb服务还为了帮助SOA开发人员从事支持松散耦合的最佳实践而设计的。”Poutsma补充道。
Spring Web Services 1.0的其他特性如下所述:
- 映射能力:到达的XML请求可以按照消息有效负载、SOAP行为抱头或者一个XPath表达式,分布给任意对象。
- XML API支持:到达的XML消息除了可以在如DOM、SAX和StAX的标准JAXP API中处理之外,还能在JDOM、dom4j、XOM甚至信号编辑技术中处理。
- XML信号编辑:SpringWeb服务分类中的对象/XML映射模块支持JAXB 1、JAXB 2、Castors、XMLBeans、JiBX和XStream。因为它是独立的模块,因此也快用于非Web服务代码中。
- Spring框架概念的重用:SpringWeb服务中使用了适合所有配置的Spring应用上下文。
- WS-Security支持:这允许开发人员对SOAP消息进行签署、加密、解密以及认证。
- 集成了Spring安全:SpringWeb服务的WS-Security实现中集成了Spring(Acegi)安全,使得开发人员也能在SOAP服务中使用现有的配置。
SpringWeb服务的下一个版本中已经在研发的一个特征是对代表性状态传输(REST)的支持,Poutsma表示。
TechTarget独家授权文章,严禁转载
- 本文关键词:

