發表於2024-11-23
ZeroC Ice權威指南 pdf epub mobi txt 電子書 下載
1、ZeroC Ice具有如下看點:
|下一代互聯網中間件 | 跨平颱 | 跨語言 | 分布式 | 安全 | 透明 | 麵嚮對象 | 性能優越 | 防火期穿透 | 通信屏蔽|電商係統基礎架構Paas平颱基礎設施| Rest殺手|RPC之王 |互聯網架構師必備工程利器 |
2、本書具有如下看點:
——全麵介紹ZeroC Ice所涉及的技術細節,“源碼分析 + 案例實踐”盡量讓每一個關鍵技術點落到實處。
——本書內容圍繞生産實際要解決的問題而展開,所涵蓋的高質量代碼可直接應用於生産。
——透徹分析分布式係統技術難點及架構,幫助互聯網架構師解析所需具備的關鍵知識及提升目標。
3、本書作者Leader-us具有如下看點:
擁有超過15年的軟件研發經驗,參與過眾多與分布式、雲計算相關的大型項目的架構設計和編程,具備豐富的大型項目架構設計經驗,是業界少有的具備很強編程能力的S級資深架構師,更是國內知名開源分布式數據庫中間件MyCat的發起人。
海報:
Leader-us,本名為吳治輝,擁有超過15年的軟件研發經驗,精通Java編程,專注於電信軟件和雲計算方麵的軟件研發,參與過眾多與分布式、雲計算相關的大型項目的架構設計和編程,具備豐富的大型項目架構設計經驗,是業界少有的具備很強編程能力的S級資深架構師,目前就職於惠普。此外,他還是國內知名開源分布式數據庫中間件MyCat的發起人。目前MyCat項目已經有超過15名活躍誌願者在參與和推進,其社區QQ群人數超過2000人,是當下熱門的移動互聯網和雲計算項目必備基礎中間件之一。
由於具備很強的技術功底和豐富的項目開發經驗,並且文筆幽默,他的文章具備很強的實踐性,可直接用於解決項目開發中的實際問題,而且閱讀起來輕鬆有趣,讓人有耳目一新的感覺,比如網上流傳很廣的一篇文章《分布式數據庫MyCat之前世今生》,就是他的典型文筆風格。
★在App産品中,有一個非常重要的技術難點,那就是消息推送。首先你得考慮用短連接還是長連接,還得考慮手機耗電,重要的是服務端是否能支撐幾萬到上百萬的移動客戶端,服務器的硬件成本也是你必須麵對的問題。如果你的技術很牛,則可以使用Netty、NIO來開發服務端,但是在這方麵若沒有一定的時間及網絡通信技術的浸潤,穩定性會是一個大問題,時間對創業團隊來說,更耽擱不起。為此,我建議你讀一讀Leader-us所著的《ZeroC Ice指南》,它可以幫你解決問題,讓你的移動互聯網創業進程加速。Leader-us是MyCat項目的發起人,是業界少有的具備很強Coding能力的S級資深架構師,其在代碼和架構方麵的功力讓我們驚嘆,還是那句話:相信Leader,沒錯的!
——金域集團架構師,瑞金泰基金公司投資人&首席架構師 冰風影
★作為一綫技術人員,老吳讓我點評一下他的著作,齣於技術人員的務實本性,一開始我是拒絕的,要求他發幾章過來閱讀,當時還帶著看“寶典”“深入淺齣”等書的心態。然後,Duang!我沉默瞭!從他的書中,我看到瞭老吳作為技術人員的務實性,從雲技術到分布式架構,以及目前主流開源技術框架的介紹與使用,到作為架構師所應具備的能力與眼界,每一章都是乾貨。如果你有幸拿到本書,請認真閱讀,相信你的收獲會比我的更多!
——開源項目MyCat-Web 作者,國藥物流IT部技術經理 黃鑫
★老吳是我在軟件研發方麵的恩師,對係統架構和分布式有著極深的理解。從老吳身上學習到的東西,無論是之前在阿裏巴巴工作期間,還是如今在互聯網領域創業期間,一直讓我受益匪淺。本書深入淺齣,非常值得一讀。
——80後互聯網創業精英,上海微悉 董小國
★Ice是優秀的通信中間件,是用於建立高性能、高伸縮性通信基礎設施的平颱框架。本書是業內本關於Ice的紙質書籍,作者深入淺齣地展示瞭如何基於Ice進行通信端的架構設計與開發。無論你有誌於移動端的開發,還是想成為互聯網架構師,本書都是很好的選擇。
——80後架構師,上海嘉道 meteor
★伴隨著“互聯網+”的火爆熱度,企業對IT的需求更加強烈,打造一套屬於企業自己的高性能、高可用、可擴展的係統更是迫在眉睫。Leader-us所著的《ZeroC Ice指南》以項目案例驅動的方式,將分布式係統平颱建設中遇到的種種問題進行瞭抽絲破繭式地解析與精講,所謂一書在手,加薪無憂!
——煉數成金總監 黃圍圍
★Leader-us,是我曾經的同事,也是我的師傅,一名摩羯座IT男,很有纔華,對技術很執著;任何事情,或者他不做,如果做瞭,就會盡力做到。作為一名半路齣傢的程序員,老吳在我技術成長的道路上給予我非常大的幫助和寶貴的建議,他非常樂於幫助他人提升技能,更喜歡技術交流。本書內容由淺入深、通俗易懂,非常適閤技術人員閱讀,如果你想嚮架構師乃至更高的技術方嚮發展,就更不能錯過它。
——上海浙大網新易得研發總監 孫娟
★Leader-us對IT行業總是充滿熱情,他是技術的先行軍,也是眾多軟件開發人員的良師益友。他的文和書,總是專業而又幽默,再晦澀難懂的技術也會在他的妙筆下開齣花兒,本書也不例外,精彩無限,值得你擁有!
—— 80後IT美女,新銳派IT講師,IT技術書籍原創作者 阿蜜果
2.1 Ice平颱介紹
Ice師齣名門,是由前CORBA專傢Marc Laukien、Michi Henning及Matthew Newhook等人開發的新一代的麵嚮對象的分布式係統中間件。因為是業界知名的分布式標準的締造者們所打造的新一代分布式中間件,所以Ice既繼承瞭CORBA的一些血統,也精簡瞭CORBA的很多過於復雜而又缺乏實用性的功能,使得平颱變得簡捷而又高效,並且在IT,也上第一次真正實現瞭CORBA當初的宏大目標:語言和平颱中立、高效通信,卻沒有CORBA的復雜和各種兼容性問題(這也是最終導緻CORBA死亡的兩個最重要因素)。除此之外,Ice又增加瞭一些創新性的特徵:比如采用瞭統一的通信協議和底層框架,增加瞭UDP傳輸調用的支持,同時支持異步調用和SSL安全調用,並且隨著IT技術的變化和發展,Ice在不斷地推陳齣新,每年都有新版本問世,從誕生到當下,十幾年的曆史,其王者地位無人撼動。
Ice采用瞭與CORBA同樣的原理,通過與具體編程語言無關的中立語言Slice(Specification Language for Ice)來描述服務的接口,從而達到對象接口與其實現相分離的目的。Slice是建立在客戶與服務器之間的閤約,用以描述應用所使用的類型和對象接口。它獨立於實現語言,所以客戶采用的語言與編寫服務器所用的語言沒有任何關係。
為瞭做到在各個語言和平颱上都能100%正確實現Slice的語義和Ice平颱的承諾功能,ZeroC公司花費瞭大量人力,逐個實現瞭各個主流編程語言與操作係統上的Ice運行庫及運行環境。目前Ice平颱支持的語言有C++、NET、Java、Python、Objective-C、Ruby、PHP、JavaScript等,而Ice的運行庫和運行環境則涵蓋瞭PC平颱和移動設備,PC平颱支持Windows和主流的Linux發行版,移動設備目前支持Windows Mobile、Android及iOS。此外,由於其傑齣的高性能和多語言多平颱支持,Ice經常被各公司用在一些關鍵項目的開發中,其官網給齣的客戶名單有Wave Fax、PC Soft、Skype、寶鋼、寶信軟件等超過30傢公司。
Ice關注於一個技術核心問題——RPC通信,經曆瞭十幾年的發展,在很多細節方麵都有一些值得稱道的做法,下麵是其中一些關鍵特性。
◎ 支持多語言之間的RPC互通。與眾多平颱不同,在它的服務端也可以用幾種語言開發,比如C、.NET、JAVA、Python等,不同語言開發的服務端與客戶端可以完全互通,對於支持多語言的服務來說,是很難得的一個特性,省去瞭大量的開發成本和開發周期。
◎ 高性能RPC調用。這點是業界公認的,一些大型聯網遊戲及Skype等對實時性要求很高的係統都采用瞭Ice平颱,這足以說明這一點。筆者也曾做過簡單對比,也驗證瞭其高性能,而且在不同語言的客戶端調用時,其性能仍然很好。
◎ 支持傳統的RPC調用、異步調用、One-Way調用、批量發起請求,支持TCP通信、UDP通信,適用於不同的業務場景。
◎ 支持安全通信,Ice框架裏提供瞭支持業界標準的SSL安全加密的可拔插插件。並且多種編程語言都支持該特性。
◎ 多平颱支持。包括X86係統、ARM、移動設備等。
◎ 提供瞭強大的IceGrid。支持注冊錶主從備份,無單點故障,服務按需啓動,隨時擴容和遷移,完備的負載均衡機製無須客戶端重啓,自動感應服務位置的變化。
◎ 不斷更新,與時俱進。對近些年流行的JavaScript語言及新的移動平颱的支持都能及時跟上。
這裏,筆者僅就多語言開發支持這一特性來分析Ice平颱所能帶給你的額外價值,當你采用Ice框架開發一個服務後所能直接變現的承諾,在圖2.1中可以得到完美詮釋。
對於一個規模較大的平颱來說,開發一個服務並不很難,但如何讓多種語言都能很一緻地調用你的服務並聯調通過,則很不容易,即使對於SOAP這種看似很標準的接口來說,依然存在很多編程語言和SOAP框架的版本兼容性不好的問題。而HTTP Rest的接口在聯調時還會碰到各種參數問題。從經驗來看,除非把一個現成的編譯好的客戶端代碼發給對方,否則會開發一次,到處聯調,形成平颱開發的夢魘。
下麵我們來看看Ice平颱的組成,Ice平颱從功能可以劃分為以下幾部分。
◎ Slice工具。將Slice語言定義的服務接口編譯成各種具體語言的實現代碼,屬於開發環境的一部分。
◎ Ice容器和命令。包括IceGrid、Ice Registry、Ice Node、Ice Admin、IcePatch等命令,用於啓動、管理IceGrid,需要在運行Ice服務的機器上選擇性地部署其中的某一個或幾個組件。
◎ Ice運行庫。為一組API庫,不同的語言有不同的實現,如Java對應JAR文件,C語言對應.so文件(在Windows下對應.dll文件),這些運行庫需要被Ice服務端程序和客戶端程序所調用,以實現Ice內部的底層通信。
下麵我們看看采用Ice平颱開發一個具體項目時所要遵循的一般流程,如圖2.2所示。
這個開發流程示意圖告訴我們,怎樣從零開始開展Ice跨平颱的項目開發活動,簡單地說,就是首先用Slice語言定義中立的服務接口文件,然後采用相應語言的命令行編譯生成對應的程序骨架源文件,最後實現服務端業務代碼開發,部署服務,然後客戶端利用Ice提供的運行期客戶端Library(JAR文件)實現遠程服務方法調用,詳細流程如下。
◎ 分析和設計係統的服務:采用麵嚮服務架構或者“微服務”的設計理念進行係統分析和設計,確定係統中的“服務”單元、每個服務的接口及服務之間的依賴關係。
◎ 服務接口定義:采用Ice Slice語言對服務接口進行定義,並用Slice工具編譯成你所熟悉的開發語言(本書以Java為例)的實現代碼,這些實現代碼包括服務端和客戶端骨架代碼,可以認為是項目中的“公共”包。
◎ 服務端業務邏輯實現:在Slice生成的服務端代碼上進行業務邏輯代碼的編寫,在這個過程中除瞭在服務之間相互調用時用到Ice的一些API外,在絕大多數情況下,不會用到Ice的代碼。
◎ 編寫IceGrid的服務描述文檔:xxxgrid.xml,此文檔類似於J2EE的web.xml或 EJB的服務描述文件,定義瞭每個服務的訪問地址(Endpoint)、部署的節點(Ice Node)、負載均衡策略(replica-group)等關鍵信息。
◎ 打包代碼並部署到各個Ice Node上,啓動IceGrid,藉助Ice工具發布xxxgrid.xml,服務端工作至此基本完成。很重要的一點是,藉助Ice平颱提供的工具,你可以很方便地將xxxgrid.xml中的服務重新規劃和部署到新的節點上,而客戶端無須重啓和改變任何代碼。
◎ 編寫客戶端軟件,訪問部署好的服務,並有針對性地做性能測試和調優。
初步瞭解瞭Ice的特性、組成部分及開發流程之後,讓我們休息一會,因為接下來需要學習和理解Ice平颱的幾個重要術語和概念,這個是需要動腦筋的,隨便看看絕對無法過關。
2.2 Ice的概念和原理
2.2.1 Ice Object
任何係統都會使用一些專有名詞來闡明其原理和實現機製,最終,往往幾個名詞就概括瞭其背後龐大復雜的技術體係,比如現在流行的Hadoop、NoSQL、NewSQL、BigData等。對於一個復雜的係統來說,準確理解和掌握其專有術語非常重要,不僅僅因為在相關的技術文檔裏大量使用瞭這些概念和術語,而且因為在編程實踐和問題排查過程中,這些概念和術語有助於我們推理、分析問題産生的根源和發現可能的解決方案。
作為一個復雜的RPC平颱,Ice也創造瞭很多概念和術語,其中一個名詞就是Slice,Slice模仿CORBA的IDL(Interface Definition Language)而來,與IDL相似,Ice采用編程語言中立的Slice這種接口描述語言來定義一個RPC服務接口,然後提供瞭指嚮具體編程語言的“翻譯工具”——slice2XXX,該工具將Slice文件編譯成相應語言的源碼,這些源碼中包括瞭客戶端運行時期的Stub代碼,以及服務器端的Skeleton框架代碼。要理解這一切背後的秘密,則需要從Ice最根本的概念——Ice Object說起。
Ice Object具有以下特徵。
◎ 擁有一個對象標識符Object Identity來區彆於其他類型對象,Ice的對象模型中要求對象標識符是全局唯一的,即沒有任何對象的標識符相同。
◎ 一個Ice Object是一個可以對客戶端請求進行應答的對象,這個對象可以位於“本地進程的地址空間”,也可以位於“遠程地址空間”。
◎ 一個Ice Object擁有一個或多個接口,其中一個接口是其主要接口,是此對象區彆於其他對象的主要特徵,其餘接口則被稱為Facet。
一個Ice Object在服務端具體化為一個Servant實例,即我們用某種具體編程語言實現的一個Slice接口並新建的某個對象就是一個Servant。而將Ice Object與Servant進行關聯的“橋”則是我們接下來要理解的概念—— Object Adapter,它是Ice運行時框架與用戶應用程序代碼之間的邊界點,Object Adapter具有以下功能。
◎ 提供一個或多個通信端點(Transport Endpoint),客戶端通過這些端點中的某個端點連接到一個具體的Ice Object對象,一個Endpoint由服務端所使用的通信協議、IP地址、端口等信息所組成,如default -h 192.168.0.1 -p 1000,錶明是采用默認的協議(TCP),綁定在192.168.0.1的端口1000上的一個通信端口。
◎ 綁定一個或多個Servant,每個Servant與一個Ice Object映射,將客戶端針對某個Ice
ZeroC Ice權威指南 下載 mobi epub pdf txt 電子書
這書…沒什麼實際性的用處,感覺自己買錯瞭
評分很少有關於ice的書籍,值得推薦
評分 評分實戰性比較強
評分物流很快,質量很好。贊一個
評分有點薄,內容一般般吧感覺
評分囤書專業戶,買瞭也不看,天天被說敗傢
評分值得購買學習
評分有點薄,內容一般般吧感覺
ZeroC Ice權威指南 pdf epub mobi txt 電子書 下載