简单了解SOA/Webservice/SOAP/REST
2017-10-30 00:00
519 查看
摘要: 基于个人学习的理解概念,不严谨的地方还望见谅
SOA是面向服务的框架,主要是一种架构风格,Webservice就是基于SOA这种风格衍生出来的,为什么说衍生,因为Webservice并不一定完全符合SOA的风格,比如只是自己写的ws获取方法.
Webservice主流目前有两种实现,SOAP与REST.
SOAP
SOAP是XML-RPC演化而来,是一种协议规范,本体是通过http+xml转化数据的.
WSDL与UUID
WSDL是用XML语言描述Webservice如何访问.
Uuid是一种有着标准规范的公共注册表,根据GUID可以搜索到接口,其中有些接口就是通过WSDL实现的.
示例:
REST
REST也是一种规范,主要面向资源,什么是面向资源,就是你面前有一盒糖果,你是拿走,放进去,还是扔掉,还是换了,只是改变处理苹果的方法.一般包含GET,PORT,PUT,DELETE.
示例:
注:当然也有json-rpc,只是资源的载体变了.注意与REST相似,但是不同的地方在于,REST的url不出现动词,且彻底利用了http的GET,PORT,PUT,DELETE四种方法,传统的RPC获取方法,往往只用一种http一种获取方法,而把实际操作的方法写入url里面.
CXF,Axis,Xfire结合java语言均可可实现JAX-WS
支持JAX-RS服务规范的框架有
CXF,Jersey,RESTEasy,Restlet结合java语言均可可实现JAX-RS。
注:
1.CXF——XFire和Celtix的合并
2.Axis——SOAP引擎,更新到2.0
3.Xfire——现在为CXF
4.Jersey——Sun公司的JAX-RS参考实现。
5.RESTEasy——JBoss的JAX-RS项目。
6.Restlet——也许是最早的REST框架了。
后期会附上Jersey写的服务端与客户端REST示例.
一. 基本概念与形式
SOA与WEBSERVICESOA是面向服务的框架,主要是一种架构风格,Webservice就是基于SOA这种风格衍生出来的,为什么说衍生,因为Webservice并不一定完全符合SOA的风格,比如只是自己写的ws获取方法.
Webservice主流目前有两种实现,SOAP与REST.
SOAP
SOAP是XML-RPC演化而来,是一种协议规范,本体是通过http+xml转化数据的.
WSDL与UUID
WSDL是用XML语言描述Webservice如何访问.
Uuid是一种有着标准规范的公共注册表,根据GUID可以搜索到接口,其中有些接口就是通过WSDL实现的.
示例:
<message name="getTermRequest"> <part name="term" type="xs:string" /> </message> <message name="getTermResponse"> <part name="value" type="xs:string" /> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest" /> <output message="getTermResponse" /> </operation> </portType> <binding type="glossaryTerms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding>
REST
REST也是一种规范,主要面向资源,什么是面向资源,就是你面前有一盒糖果,你是拿走,放进去,还是扔掉,还是换了,只是改变处理苹果的方法.一般包含GET,PORT,PUT,DELETE.
示例:
DELETE http://api.qc.com/v1/friends: 删除某人的好友 POST http://api.qc.com/v1/friends: 添加好友 UPDATE http://api.qc.com/v1/profile: 更新个人资料
注:当然也有json-rpc,只是资源的载体变了.注意与REST相似,但是不同的地方在于,REST的url不出现动词,且彻底利用了http的GET,PORT,PUT,DELETE四种方法,传统的RPC获取方法,往往只用一种http一种获取方法,而把实际操作的方法写入url里面.
http://api.qc.com/Deletefriends?id=1
二. Java中常用的框架
支持JAX-WS服务规范的框架CXF,Axis,Xfire结合java语言均可可实现JAX-WS
支持JAX-RS服务规范的框架有
CXF,Jersey,RESTEasy,Restlet结合java语言均可可实现JAX-RS。
注:
1.CXF——XFire和Celtix的合并
2.Axis——SOAP引擎,更新到2.0
3.Xfire——现在为CXF
4.Jersey——Sun公司的JAX-RS参考实现。
5.RESTEasy——JBoss的JAX-RS项目。
6.Restlet——也许是最早的REST框架了。
后期会附上Jersey写的服务端与客户端REST示例.
相关文章推荐
- REST vs. SOAP: How to choose the best Web service
- Style of WebService: REST vs. SOAP
- REST WebService与SOAP WebService的比较
- soap RMI RPC WebService REST CORBA JMS这几者的区别和联系
- REST WebService与SOAP WebService的比较
- REST WebService与SOAP WebService的比较
- REST WebService与SOAP WebService的比较
- WSDL/WebService/SOAP/REST/AXIS/CXF 开放式服务
- CORBA 简单了解和JAVA与C++互操以及C++调用Java web service
- Web service standards: SOAP, REST, OData, and more
- REST WebService与SOAP WebService的比较
- REST WebService与SOAP WebService的比较
- REST WebService与SOAP WebService的比较
- SOA WebService RPC/Message/REST
- REST WebService与SOAP WebService的比较
- SOAP Web Service与REST Web Service的区别
- REST WebService与SOAP WebService的比较(转)
- REST WebService与SOAP WebService的比较
- REST WebService与SOAP WebService的比较
- REST WebService与SOAP WebService的比较