ezp*_*sso 18 c c++ serialization rpc marshalling
在为基于智能卡的加密狗开发软件保护库的过程中,我意识到我需要在加密狗内部的客户端应用程序和代码之间来回传输一些树状数据结构.
那么,在使用Web服务时,XML-RPC或JSON-RPC等技术是合理的考虑方式.但是,智能卡等嵌入式设备并非如此.您需要使用一些二进制格式来优化内存使用并获得良好的性能.
我想我需要的是实现一些二进制数据编组算法.我不喜欢重新发明整个轮子的想法,我非常确定有很多关于编组这类问题的书籍,文章和例子.
你会推荐什么?
UPD. 我在Linux上使用C和C++,但问题是关于编组算法的一般信息.
首先,我要区分编组和RPC(使用编组).Google Protobuf是通过网络封送的最佳解决方案.它具有最小的占用空间,并以闪电般的速度进行编码/解码.
如果您仍然对如何实现高效编组检查有关protobuf编码的文档感兴趣.
编码页面的一个例子是varint.Varint是protobuf以二进制格式编码无符号整数的方式.Varint针对小数量进行了优化.例如,1仅使用线路上的一个字节,而300使用两个字节.
当然,protobuf设计者意识到我们经常使用整数作为位掩码等.因此,它们还提供了一个总是四个字节的整数数据类型(这样,设置了msb位的掩码不会消耗额外的空间).
你的问题中没有很多关于你所针对的平台/语言的背景......但是!
最受欢迎的是(是?)DCOM和CORBA.有嵌入式CORBA .....你可以使用TAO这样的东西(ACE TAO库)
但如果这个规模相当小,你可以自己序列化,要记住的主要事情是版本化序列化格式,这样你就可以改变它并支持旧版本(如果这是你项目中的一个问题)
| 归档时间: |
|
| 查看次数: |
3008 次 |
| 最近记录: |