天天看點

對于Hessian的一點感受

       一直都沒有機會在項目中去真正的體會webservice,之前有個項目需提供簡單webservice的接口,是通過spring對JAX-RPC的實作去暴露服務,然後使用eclipse自動生成WSDL檔案以及部署,就此了事,也沒有去深究。最近項目不太忙了,就想了解一下webservice,看看其中的究竟。

       前幾天看了下AXIS,發現這個基于SOAP協定的webservice實作實在是不讓人稱道。我按照User Guide把example試驗了一下,也自己寫了個簡單的例子跑了一下,都成功了,但讓我感覺這樣一個webservice太麻煩了,繁瑣的部署,服務端與用戶端耗時的解析操作,一種極其笨重的感覺,據說XFire的實作相對簡單,但還沒來得及看,改天比較一下。

       一同僚極其推崇Hessian,今天簡單看了下,這是一個基于binary的實作,看了一個例子,極其的簡單,沒有了繁瑣的部署,簡單的服務調用,隻看了java的,還不清楚用其他的語言如何實作用戶端,看了一篇對于各種webservice實作的性能比較,hessian遠遠領先于其他的實作,AXIS貌似性能最差。在如此的性能差距下,還有那麼多的應用采用AXIS實作,為何?

       我認為hessian更适合作為一個獨立的異構系統的實作,比如我們公司的産品基本是前台采用JAVA,背景采用C++,在這種情況下,前背景之間如何通訊應該是可以由我們決定的,多半都不會受到客戶的牽制,在這種情況下,hessian明顯優于AXIS。但是對于部分産品需要對其他開發商提供接口,我覺得hessian就不适用了,不同開發商之間更需要WSDL這種服務描述檔案去對實作進行規定,不知道hessian有沒有這種服務描述的東西,暫時還沒看到,服務端的代碼通常是不會提供給其它開發商的,這種時候如何去做實作呢,如果說是通過開發文檔進行告知,我覺得是不夠合理的,這不是一種标準,每個人的表達方式及了解都有差異,難免會有錯誤發生。

       簡單看了下hessian,有這麼一點想法,總的來說,hessian的實作更容易讓java程式員去了解,沒有太多的學習成本,AXIS就相對複雜了點,打算繼續深入的學習一下hessian。