- 基于Apache CXF構建SOA應用
- 任鋼編著
- 1764字
- 2018-12-27 19:52:47
前言
軟件架構的實現模式是一個發展的過程。從以前的面向過程、面向對象,到后來的面向構件、面向整合和面向集成,接著又進化到現在的面向服務模式。這時候,一個非常時髦的詞——SOA就出現在我們的面前。
SOA是一個沉重的話題。我很早就接觸了這個概念。那時既年輕也輕狂,覺得SOA無非就是那么幾個已經耳熟能詳的單詞組合。SOA的確出現得很早,但具體落地非常艱難。僅有一些空洞的解決方案和讓人發炫的理想場景。在這樣高不可及的光芒下,我們只是空喊一些口號,創造著各種新鮮、時髦和美好的詞匯與概念,可沒有一個明確可以下手的地方。如何讓SOA進入百姓家,這似乎成為了一個不可能完成的任務。
Web Services的出現,似乎給了我們黑的眼睛,讓我們有了尋找光明的希望。同時,Java平臺對Web Services的支持,也給了我們實現SOA的利器。
基于Java規范的開源Web Services框架,我最早接觸的是Apache Axis,當時還編寫了基于Axis框架的一個擴展框架。后來與一些公司的開發團隊接觸,才知道Apache還有一個開源Web Services框架,即Apache CXF。這是一個合并過來的產品。這樣,國內開發人員又多了一個開源Web Services框架選擇,而且這個開源框架整合了ESB和Web Services,所以我對Apache CXF未來在中國的發展前景還是充滿著信心的。對于Java支持SOA,也有很長的時間了,但國內關于SOA的方案都是一些大企業的平臺,有點陽春白雪的感覺。對于一些小企業,采用一種重量級的工具似乎有一些不堪重負或者得不償失。而Apache CXF框架則是一個輕量級的開源Web Services框架,在這個框架上完全可以構筑一個企業級的SOA平臺。正是在這個理念的基礎上,我認真地學習了Apache CXF框架,并把在這個學習過程中的體會、經驗和一些應用例子貢獻給讀者。
在本書的編寫中,主要參考了Apache CXF官方網站的信息。畢竟這是關于Apache CXF最權威的官方信息來源。在參考材料中,我比較喜歡IBM的相關網站,IBM的技術網站一般都站在比較前沿的領域來講解、討論和分析問題,所以,書中有一些內容也是摘取或參考了IBM技術網站的思想和內容。
本書覆蓋的內容較多,可以毫不夸張地說,書中的很多章節都可以獨立地撰寫出一本很厚的書籍。正是出于這樣的考慮,筆者不能對一些技術做詳細描述,有的內容也只是蜻蜓點水地簡單說明一下。本書最大的特點是實用性。對于SOA和Web Services的概念,以及其中的方方面面的內容,都有很多相關的書籍來進行闡述。作為本書的基本概念,我也介紹了一些關于這方面的內容。對于每一個例子,都進行了不止一次的編寫、調試和測試。我可以負責任地說每一個例子都是可以運行的。對于我每一個涉及的主題,最終都是通過一個實際的案例(包括源程序代碼)進行闡述的。這本書不是一本介紹理論的書,而是充滿了各種程序代碼實現方式的工具書籍。
當然,閱讀本書也要具備一定的基礎知識,否則,有些術語和解釋還是比較難以理解的。
本書從第一次編寫到最后實現出版總共花費了兩年半的時間。在這個過程中我耗費了大量的時間和精力。并且這些工作都是在業余時間內完成,白天還要照常上班,只有到了晚上或者節假日才有閑暇時光。我一般難得有閑暇時間,如果有,也是打算去休息或放松,畢竟平時的工作還是比較勞累的。但我還是硬著皮頭坐下來寫書,寫書是一件非常枯燥的任務。對于枯燥,這還不是最大的障礙。我認為最困難的是一個接著一個的技術難題。很多時候有些難題沒有辦法一下子解決,于是就做了一個例子又一個例子,編寫了一個測試接著又一個測試,可還是不能達到自己理想的結果,沮喪、失敗、自責、懷疑、困惑等等都涌上頭來。在這段時間中我有幾次都考慮放棄,心里總是在繼續寫和終止寫之間徘徊不定。但總是覺得已經走了這么長的路程,不能因為一時的挫折而終止多年的辛勞,于是還是像一個孤獨的苦行僧執著地編寫和測試下去。很高興的是我還是堅持下來了,在經歷了無數個寂寞和孤單的夜晚,把這本書趕寫出來。
在這期間,我要感謝我的家人對我的理解和支持。我的妻子和女兒總是抱怨我一天到晚總是待在電腦旁邊。我要感謝我的父親和母親,我遠離家鄉,沒有時間照顧他們,但他們總是支持我現在做的一切。在這期間,我的母親永遠地離開了我,我只能用這本書來紀念她。我要感謝我的好朋友江愿兵、徐賓和盧建平,他們在很多方面給了我無盡和無私的支持與鼓勵。我把這里的一切都獻給他們并祝愿他們好人一生平安。
由于筆者水平有限,書中覆蓋的范圍又比較廣,涉及的概念也比較多,所以書中的錯誤和缺點在所難免,希望讀者能給予批評和指正。我的聯系方式是:rengang66@sina.com。