Ice的設計思想非常好,通過slice定義之后產生一堆的通信框架代碼來自動化完成對象數據的序列化
由于ice是基于Rpc的,底層通信細節被屏蔽掉了,甚至是連接的自動重復建立,可喜又可悲,有些應用必須要關心這些底部的通信細節,
如果直接用socket又嫌太麻煩了,不同的應用都是在重復的進行開發通信協議,解包和打包花銷很很多的精力,這些工作都是重復的,沒有技術含量而且容易出錯.
之前開發過mtslib通信庫來解決socket通信問題,使兩端都是以消息包的形式進行通信,解決了socket兩段buffer的管理
也看過ice的代碼實現,slice2cpp用yacc&lex進行詞法語法的處理
對象的自動序列化這是我所感興趣的,同ice一樣提供一個通信環境,然后用戶可以自定義自己的通信數據,通過idl的形式自動產生序列化代碼并編譯進用戶工程.
這種方式與ice又不同在于沒有那么傻瓜化,但簡化了用戶處理消息報的過程.
這樣要完成一個類似ice的rpc調用也是沒有那么簡單
yacc/lex,lemon,