上海道寧信息科技有限公司
參考價(jià): | 面議 |
- 產(chǎn)品型號(hào)
- 品牌
- 其他 廠商性質(zhì)
- 所在地
訪問(wèn)次數(shù):155更新時(shí)間:2021-08-30 12:47:41
-
Ice 產(chǎn)品概述:
互聯(lián)網(wǎng)通信引擎(ICE)是一個(gè)現(xiàn)代化的面向?qū)ο蟮墓ぞ甙?,使你能夠?小的努力構(gòu)建分布式應(yīng)用程序。Ice可以讓你專注于你的應(yīng)用程序邏輯,并照顧所有的相互作用與低級(jí)別的網(wǎng)絡(luò)編程接口。用Ice,也無(wú)需擔(dān)心細(xì)節(jié),例如打開(kāi)網(wǎng)絡(luò)連接,序列化和反序列化的數(shù)據(jù)網(wǎng)絡(luò)傳輸,或重試失敗的連接嘗試(僅舉例幾十個(gè)這樣的低級(jí)別細(xì)節(jié))。
你可以選擇來(lái)實(shí)現(xiàn)不同的編程語(yǔ)言(如C客戶端和和Java服務(wù)器)的客戶端和服務(wù)器,并在你的Ice平臺(tái)(Linux,Windows,Mac OS X,等)上運(yùn)行這些應(yīng)用程序,跨語(yǔ)言、跨平臺(tái)的通信只是簡(jiǎn)單的在相同系統(tǒng)間的通信。
產(chǎn)品優(yōu)點(diǎn):
操作系統(tǒng)和編程語(yǔ)言
Ice是一個(gè)通用的分布式計(jì)算平臺(tái)。它可以在大量的操作系統(tǒng)運(yùn)行,并提供了C,Java,C#(及其他 .NET語(yǔ)言), Objective-C,Python和Ruby,PHP,和腳本語(yǔ)言映射。(Ice-E應(yīng)用程序必須用C語(yǔ)言編寫(xiě))。
現(xiàn)代和靈活的接口定義語(yǔ)言
Slice(Ice規(guī)范語(yǔ)言)提供了一套豐富的數(shù)據(jù)類型,清晰地映射到所有支持語(yǔ)言。用戶定義的類型包括枚舉,結(jié)構(gòu),序列和字典,以及類和異常繼承。類支持指針語(yǔ)義,所以對(duì)象的任意復(fù)雜圖形(包括循環(huán)圖),可以通過(guò)網(wǎng)絡(luò)傳遞。
運(yùn)行時(shí)多態(tài)性保存在地址空間的界限,所以更多派生類型可以取代哪里的基類型。
Reopenable模塊和支持防止系統(tǒng)中的某一部分輕微的變化迫使整個(gè)系統(tǒng)重新編譯。
易于使用的語(yǔ)言映射
Ice提供語(yǔ)言映射,整合自然和優(yōu)雅的各語(yǔ)言及其庫(kù)的特點(diǎn)。例如,Slice字典自然映射到C++地圖,Java地圖和.NET字典,所以程序員可以使用他們已經(jīng)熟悉的語(yǔ)言結(jié)構(gòu)。語(yǔ)言映射是類型安全,線程安全,安全異常,從而防止許多錯(cuò)誤到以往到代碼庫(kù)。對(duì)于C++,Ice堅(jiān)如磐石和全自動(dòng)內(nèi)存管理,使得它不可能泄漏或損內(nèi)存。
RPC特點(diǎn):
同步和異步調(diào)用和調(diào)度
Ice同時(shí)支持同步(阻塞)和異步(非阻塞)調(diào)用。異步調(diào)用允許調(diào)用者重新控制線程,而RPC是在服務(wù)器方面取得的進(jìn)展,并異步通知RPC結(jié)果時(shí)完成的。
在服務(wù)器端,Ice提供同步和異步調(diào)度。異步調(diào)度允許服務(wù)器服務(wù)的任意數(shù)量的并發(fā)請(qǐng)求從客戶端不用綁定為每個(gè)請(qǐng)求的處理線程。(Ice-E不支持異步調(diào)度。)
動(dòng)態(tài)調(diào)用和調(diào)度
除了靜態(tài)調(diào)用和調(diào)度,這依賴于編譯層定義,Ice支持動(dòng)態(tài)調(diào)用和調(diào)度,延遲決定哪些類型是用于通信直到運(yùn)行時(shí)間為止。此功能允許您創(chuàng)建應(yīng)用程序(如路由器和協(xié)議橋),在編譯時(shí)未知時(shí)必須處理Slice類型。(Ice-E不支持這些功能。 )
單向,數(shù)據(jù),和批量處理
Ice支持單向(TCP和SSL)和數(shù)據(jù)報(bào)(UDP)調(diào)用。這種調(diào)用服務(wù)器不返回答復(fù),以便客戶可以用它來(lái)實(shí)現(xiàn)“火災(zāi)和忘記”語(yǔ)義。
單向和數(shù)據(jù)報(bào)調(diào)用可以進(jìn)行批處理:而不是為每個(gè)調(diào)用在網(wǎng)絡(luò)上發(fā)送一個(gè)單獨(dú)的消息,運(yùn)行時(shí)批處理調(diào)用被緩沖在客戶端,一旦客戶端決定發(fā)送一個(gè)批處理,被發(fā)送到單一的網(wǎng)絡(luò)消息的主服務(wù)器上。批處理的調(diào)用是更有效的,特別是,如果客戶端需要調(diào)用“設(shè)置”操作傳輸數(shù)據(jù)(但不返回)。
請(qǐng)求轉(zhuǎn)發(fā)
Ice允許應(yīng)用程序接收一個(gè)不透明的blob數(shù)據(jù)(稱為blobject)請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)到一個(gè)新的目標(biāo)。這使得創(chuàng)建一個(gè)非常有效的消息路由器,如IceStorm或Glacier2,因?yàn)樾畔⒖梢赞D(zhuǎn)發(fā),而不需要解組和重新編組數(shù)據(jù)。(Ice-E不支持blobjects)。
線程
Ice運(yùn)行時(shí)間是全線程和線程安全的。你不需要為了保護(hù)在運(yùn)行時(shí)的數(shù)據(jù)結(jié)構(gòu)而獲取關(guān)鍵區(qū)域,的關(guān)鍵區(qū)域是那些你需要保護(hù)的應(yīng)用程序特定數(shù)據(jù)競(jìng)爭(zhēng)條件。
Ice允許如何使用線程運(yùn)行時(shí)間的復(fù)雜控制。您可以分配和控制多線程池去分開(kāi)問(wèn)題,并確保在一個(gè)系統(tǒng)的一部分的活動(dòng)都不能消耗保持不同于該系統(tǒng)的線程。
Ice為C + +提供了一個(gè)便攜式的線程庫(kù),使得很容易地創(chuàng)建與Linux和Windows源代碼兼容的線程應(yīng)用程序。
傳輸特點(diǎn)
您可以選擇TCP,SSL和UDP作為傳輸協(xié)議。Ice同時(shí)支持*4和*6 。(Ice - E不支持UDP和*6)。連接管理器是*透明的:Ice運(yùn)行時(shí)打開(kāi)和關(guān)閉連接需要。但是,也可以明確控制連接的建立,例如,保留特定調(diào)用一個(gè)單獨(dú)的連接。一臺(tái)服務(wù)器可以同時(shí)傳輸和服務(wù),客戶可以自由使用在用不同傳輸服務(wù)器里實(shí)現(xiàn)的對(duì)象。
Ice協(xié)議采用了緊湊的二進(jìn)制編碼,節(jié)省帶寬和非常有效的去編組和解組。對(duì)于有限帶寬的通信(如通過(guò)衛(wèi)星頻道), Ice提供協(xié)議壓縮,這樣減少低限度的大小。在運(yùn)行時(shí)壓縮可以啟用和禁用不需要修改任何代碼。
版本
一旦部署分布式系統(tǒng),需要進(jìn)行維護(hù),以適應(yīng)錯(cuò)誤修復(fù)和改進(jìn)。與傳統(tǒng)技術(shù)相比,它是很難做到這一點(diǎn),因?yàn)榻涌诨驍?shù)據(jù)類型的變化打破現(xiàn)有的客戶端和服務(wù)器之間的上線合同,迫使所有系統(tǒng)組件進(jìn)行升級(jí)一次。
Ice提供兩種處理這個(gè)問(wèn)題的解決方案。使用可選的值,數(shù)據(jù)成員和操作參數(shù)可以添加和刪除,而不會(huì)突破上線合同。使用方面,您可以添加新的功能,或改變現(xiàn)有的功能,以一個(gè)優(yōu)雅的和非侵入性的方式。你可以很容易地進(jìn)行修改,使得它們保持向后兼容,因此,逐漸升級(jí)分布式系統(tǒng)。