一、Web Service类型
在概念层面,一个Web Service是通过网络可以访问的端点提供的一个软件组件。在技术层面,Web Service可以通过不同方式来实现。下面是两种典型的实现方式:
1)JAX-WS:Java API for XML Web Services
2)JAX-RS:Java API for RESTful Web Services
二、Big Web Service ( SOAP + WSDL )
基于SOAP的这种实现方式必须包含以下要素:
1)必须建立一个描述Web Service所提供的接口的合同。(一般是WSDL)
2)必须解决复杂的非功能性需求。(比如:事务,安全性,寻址,信任,协同等等)
3)需要处理异步处理和调用。
三、RESTful Web Service
RESTful方式 非常适合基本的以及特别的集成场景。这种方式比基于SOAP的方式更好地与HTTP集成,不需要XML消息以及WSDL接口描述。
Jersey项目是一个JAX-RS的参考实现,可以用于生产环境。
RESTful方式在以下条件中非常适合使用:
1)服务完全是无状态的。
2)可以使用缓存基础设施来提升效率。
3)服务的提供者和使用者对上下文和传递的消息有相互的理解。
4)在带宽资源非常重要以后受限的条件中。
5)服务交付或者聚合到现存系统中能够很好地用RESTful方式来启动。
四、如何选择一种Web Service架构:Big or RESTful?
基本来说,使用RESTful webservice来做基于Web的集成;使用Big Webservice来做企业应用集成(需要高质量的服务)。