servlet webservice 比較

首先比較下servlet和webservice下

請求:   
servlet:提供了請求/響應模式,是JAVA的一種規範,只能使用於java上,用來替代早期使用的難懂的CGI,是一種無狀態的請求響應,客戶端訪問一個服務器的url,只需要發送簡單的httprequest即可。 規定了四個範圍:pageContext、request、session、application。一定依賴於各種SERVLET容器,但servlet只能接受一個簡單的http請求;   
 WebService最早是微軟提出了一種以XML爲載體網絡信息傳輸的規範,現在幾乎所有的語言與平臺都支持,帶有狀態機制,不依賴於SERVLET容器,可以發送一個xml作爲其請求內容,WebService通常是基於http的遠程方法調用(RMI),號稱是可以反回遠程對象, 一般來說客戶段可以象調用本地方法一樣調用WebService的方法。WebService是在DCOM   CORBA等分佈式技術之後發展起來的。WebService有一個國際通用的標準SOAP。具體規範發佈在   http://www.w3.org/TR/SOAP/ 


傳輸:   
servlet使用http協議傳輸數據,如果你用Servlet返回XML,那個XML的描述框架就是你定的,必須告知使用者具體的說明,沒有統一標準。   
webservice使用固定的XML格式封裝成soap消息,可以使用http作爲底層數據傳輸,但並不侷限於http協議,方法返回消息是有標準的。   
    
返回結果:   
servlet返回的是html頁面;   
webservice返回的可以是複雜對象甚至使用附件或者mutidata的二進制文件。   
    
部署:   
servlet需要遵守j2ee的Web   Application規範部署的應用服務器上,如tomcat,weblogic,websphere;   
WebService則需要有WSDL文件來部署服務,或者使用UDDI註冊。   
    
優勢:   
WebService的跨平臺特性是servlet不能比的,可以被各種語言調用;   
servlet相對來說速度上的優勢也是不可忽視的。

  

接下來在看看RMI和webservice中的
 
rmi的客戶端和服務端都必須是java,webservice沒有這個限制。
webservice是在http協議上傳遞xml文本文件,與語言和平臺無關。
rmi是在tcp協議上傳遞可序列化的java對象,只能用在java虛擬機上,綁定語言。
rmi是EJB遠程調用的基礎,僅用rmi技術就可以實現遠程調用,使用EJB是爲了實現組件,事物,資源池,集羣等功能。
WebService是通過XML來傳輸數據,可用http等協議因此可在異構系統間傳遞,並且可以穿過防火牆,可在公網上遠程調用。


SOAP:

SOAP是爲了在Internet   環境下,實現系統是鬆散耦合的、跨平臺的,與語言無關的,與特定接口無關的,而且要提供對Web   應用程序的可靠訪問。  
   
幾乎所有的開發工具都可以開發WebService系統,包括Java,C#,甚至基於VCL架構的Delphi。而且   所開發出來的WebService系統,可以方便的被各種客戶端調用,包括,瀏覽器,W32應用程序,還有Java   App。 
  
可以這麼說,開發一個WebService系統,把它放到互聯網上,生成一個WebService描述文件.wsdl(非常容易),全世界的任何人,使用幾乎任何開發工具,引用了這個wsdl,就像引用了一個動態庫的頭文件一樣,方便的調用你的WebService接口,就像調用本地的方法一樣。

SOAP=RPC+HTTP+XML

淺談SOAP: http://www.ibm.com/developerworks/cn/xml/x-sisoap/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章