分享

(7)ice

 quasiceo 2016-07-14

ice

(2013-02-01 10:35:29)
标签:

it

分类: java
ice的开发是这样的
1. 设计ice协议文件
2. 用工具生成java代码
3. 将这部分代码嵌入到项目代码之中
4. 写一个封装的client端类,初始化ip和端口;写一个ice服务端的类,封装服务的端口
68以及其他的机器,配置一下ice server端的服务器的ip和端口
程序调用的时候,直接通过封装的client端类,直接和ice server端通讯,通讯协议不是http,所以没有url,通讯协议是tcp
这部分生成的类,有ice client端,也有ice server端

我稍微小结一下
传统的服务,很多都是web+数据库
但是当系统很大的时候,需要将服务拆成一个个的client ,这些client统一和核心业务server通讯 
一般常见的比较简单的是http协议,google proto buffer,webservice,json等,其实都是通过http协议,搭载一定格式的字符串
但是这样的方式,数据压缩率不高,数据防伪防篡改加密效果不理想
然后ice这样的通过tcp协议,client端  压缩,加密,server端验证,解压缩 的高效模式就出来了
很早很早以前,c和c++用corba来做这个,后来corba太大了,corba的几个核心成员出来成立个公司,想做一个轻量级的通讯中间件,这就是ice,小巧灵活,高效又安全
与之相对应,几年前ejb比较火
但是ejb还是比较复杂,不大好使用和维护
以前我们公司一直用ice,后来发现当协议变更的时候,ice不是很灵活,到最后我们总结出最佳实践: ice google proto buffer 
ice负责client和server端的通讯,通讯的内容是二进制
在client端,通过google proto buffer将对象转成二进制,在server端,解析二进制,转化为对象
这样,不管业务协议怎么变,比如今天加个字段,明天删除个字段,ice都不需要变动,只需要在解析二进制的时候注意一下就可以了
proto buffer 是google的将对象和二进制之间转换的工具
就像tcp,http协议一样,几十年来就这些协议,支持了无数语言,无数框架
这些东西,书上都有,多买书看,挺有好处,一个人的力量始终不大

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多