Hessian與Webservice的區別

Hessian:hessian是一個輕量級的remoting onhttp工具,使用簡單的方法提供了RMI的功能,相比WebService,Hessian更簡單、快捷。

採用的是二進制RPC協議,因爲採用了二進制協議,所以它很適合於發送二進制數據,Hessian主要作面向對象的消息通信。

Hessian的初衷就是支持動態類型,格式緊湊,跨語言。Hessian是使用自己的序列化機制實現的編組和反編組,其支持的數據類型是有限制的,不支持複雜的對象,可以穿透防火牆。  在這裏不得不說一下RMI:RMI是一組用戶開發分佈式應用程序的API。他使用的是java序列化機制實現調用及返回值的編組於反編組。它使用Java語言接口定義了遠程對象,它集合了Java序列化和Java遠程方法協議(Java Remote Method Protocol)。他可以被看做是RPC的Java版本,因爲傳統的RPC並不能很好的應用於分佈式對象系統。而Java RMI 則支持存儲於不同地址空間的程序級對象之間彼此進行通信,實現遠程對象之間的無縫遠程調用。他也有它的缺點,他只能通過RMI協議來進行訪問無法通過HTTP協議訪問,無法穿透防火牆。     還有一種遠程調用方法就是HttpInvoker:他也是將參數和返回值通過Java的序列化機制進行編組和反編組,它具有RMI的支持所有可序列化對象的優點。試使用Http協議傳輸二進制流的,同時又具有Hessian、Burlap(傳輸xml文本)的優點。

Hessian:寫一個Hessian需要注意的問題:      

1、JAVA服務器端必須具備以下幾點:        

包含Hessian的jar包          

設計一個接口,用來給客戶端調用        

實現該接口的動能          

配置web.xml,配置相應的servlet        

對象必須實現Serializable接口          

對於複雜對象可以使用Map的方法傳遞    

 2、客戶端必須具備以下幾點:        

java客戶端包含Hessian.jar包          

具有和服務器端結構一樣的接口和實體類。包括命名空間都最好一樣。

 

Hessian的優點:

1- 整個jar很小,200多K,3.1版本的,當然,我下載的for java的版本.

2- 配置很簡單,基本上不需要花什麼經歷就配置出來了

3- 功能強大,可以將soap拋開,也可以把EJB拋開,採用二進制來傳遞對象

4- 擁有多種語言支持,python c++  .net 甚至 flex 都可以做爲client端

 

WebService簡介

(1)WebService是一個SOA(面向服務的編程)的架構,它是不依賴於語言,不依賴於平臺,可以實現不同的語言間的相互調用,通過Internet進行基於Http協議的網絡應用間的交互。
(2)WebService實現不同語言間的調用,是依託於一個標準,webservice是需要遵守WSDL(web服務定義語言)/SOAP(簡單請求協議)規範的。
(3)WebService=WSDL+SOAP+UDDI(webservice的註冊),Soap是由Soap的part和0個或多個附件組成,一般只有part,在part中有Envelope和Body。
(4)Web Service是通過提供標準的協議和接口,可以讓不同的程序集成的一種SOA架構。


WebService的優點

(1) 可以讓異構的程序相互訪問(跨平臺)。
(2) 鬆耦合。
(3) 基於標準協議(通用語言,允許其他程序訪問)。

WebService的缺點: 
(1) WebService使用了XML對數據封裝,會造成大量的數據要在網絡中傳輸。 
(2) WebService規範沒有規定任何與實現相關的細節,包括對象模型、編程語言,這一點,它不如CORBA。


WebService的基本原理

(1) Service Provider採用WSDL描述服務。
(2) Service Provider 採用UDDI將服務的描述文件發佈到UDDI服務器(Register server)。
(3)Service Requestor在UDDI服務器上查詢並 獲取WSDL文件。
(4)Service requestor將請求綁定到SOAP,並訪問相應的服務。


發佈了386 篇原創文章 · 獲贊 388 · 訪問量 128萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章