您的位置:首页 > 编程语言 > Java开发

简单了解SOA/Webservice/SOAP/REST

2017-10-30 00:00 519 查看
摘要: 基于个人学习的理解概念,不严谨的地方还望见谅

一. 基本概念与形式

SOA与WEBSERVICE

SOA是面向服务的框架,主要是一种架构风格,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示例.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java