B/S,C/S架構混合使用(from:http://www.kuqin.com/system-analysis/20080506/8024.html)

 

   一般而言,我們平常接觸的大多數項目都應該是單純使用B/S或是C/S,除非在特殊場合,否則比較少混合使用B/S,C/S架構。首先說一下對這二種架構 特點的一些個人理解。B/S應該是目前很多項目都應用的架構,瀏覽器的方式使得用戶的使用十分方便,用戶可以何時何地通過Internet訪問URL而進 行相應的工作,升級維護也能比較集中,缺點就是瀏覽器的表現能力受限以及常常受非議的安全性問題,如果軟件的應用範圍區域不集中,而且用戶經常變換地點進 行訪問,那麼這種架構是非常適合的。C/S架構的C端有非常強的處理能力,所以在交互表現和安全方面可以做得比瀏覽器強,但是缺點也是非常明顯的,安裝部 署、升級維護、版本兼容都是比較頭大的事情,一般的適用場景是集中的辦公室場所,用戶使用範圍相對穩定,以及一些對業務處理非常複雜的場合,爲了降低服務 器的負荷,同樣需要C模式的支持。

    以前接觸過的電信領域,就有過混合架構的軟件。但是都是非常寵大,一直都對其實現方案比較感興趣,但是都沒有機會進一步瞭解。最近搜索了一下相關的資料,總結一下混合應用的一些想法(只針對Java方向)。

    ①混合架構的問題集中點。服務端共享,客戶端採用不同的表現方式,共享的應該是業務層接口,持久層應該是屏蔽的。應用層的消息傳遞就是整個應用的關鍵所 在,雖然像Jakarta提供的httpClient這種模仿瀏覽器的組件,但是畢竟是模仿,在很多方面的功能還是缺失的。

    ②最傳統的方式是採用EJB做爲服務,這個寵然大物容易讓人害怕,不過在分佈式的系統中它還是有應用優勢的,像電信和金融這種行業應用還是比較廣的,而且 現成的中間件和應用服務器商都比較多,像Oracel、BEA、IBM、Sun都有成熟的應用產品,當然開發的成本和人力投入也是恐龍級數據的。

    ③有網友說在C端直接訪問數據庫,B/S結構不變,也就是通過數據庫進行共享。這種方式是不可取的,二個缺點:把服務器的業務邏輯搬到了C端上,嚴格上講是不安全的,升級維護也非常麻煩;併發控制的壓力都在數據庫上。

    ④採用RMI,這個老古董相信應該很多人都不使用了,因爲它的使用要一連串的手續,比如服務接口定義必須實現Remote接口,服務Server在實現時 必須繼承UnicastRemoteobject類,必須使用rmic指令產生stub和skeleton等,設置上繁雜。

    ⑤Spring 遠程服務。這個應該說是比較可取的,大家都比較喜歡輕量級的東西。就如第一點所說的,通過遠程服務,我們可以在客戶直接調用服務端的服務接口,就像本地調用一樣,Spring對遠程服務提供了好幾種實現方案。

    ⑥WebService。適合異構環境,但是WSDL的這種方式相對來說會比較耗費資料,因爲標準定義除了業務內容外,還有許多另外的說明內容。

    Spring遠程服務實現方案介紹:

    ⑴Spring + RMI。Spring把傳統的RMI方式的繁雜設置去掉,只要配置Bean文件就和定義服務接口可以。RMI的服務啓動和管理都交給Spring來處理。RMI訪問的缺點就是對防火牆的穿透力比較差。

    ⑵Spring + Caucho的Hessian、Burlap。Hessian使用Http將對象以中性的二進制消息進行傳送,而不像RMI使用Java的序列化格式(這 種序列化是專制的,不是Sun提供的序列化機制),由於是二進制消息,所以不受限於某種實現語言,傳輸時所需要的帶寬較小是其優點。Burlap是以 XML文件格式傳送對象,XML文件有較高可讀性,應用程序只要能解釋XML就能接收消息,當然也不限於某種語言,但是組裝XML和解釋XML都需要消耗 資源,當傳輸大數據時性能應該存在問題。

    ⑶Spring + Http Invoker。由於Hessian的序列化機制不是正統的Java序列化機制,所以當遇到傳輸複雜的業務模型時,就會存在各種問題,爲此,Spring 又提供了Http Invoker,同樣是使用Http傳送對象,而且是使用Java的序列化機制。相比RMI,Http對防火牆的穿透力要強。

    後來嘗試了最後的這種Http Invoker方式,是在Spring2.0版本下嘗試的,開發非常簡單,網上也有大量的資料介紹。應該說從這裏入口可以做一些嘗試。目前遇到的一個項目 就需要混合架構,B/S採用Spring2 + Struts2 + Hiberntae3,瀏覽器只提供一些查詢功能和數據展現,C端採用Eclipse的RCP平臺,共享服務器的業務接口,調用就採用Http Invoker遠程服務,複雜的業務功能都集中在C端上。

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