protocol-buffer应用与原理

上传人:su****e 文档编号:250507401 上传时间:2024-11-03 格式:PPT 页数:13 大小:1.28MB
返回 下载 相关 举报
protocol-buffer应用与原理_第1页
第1页 / 共13页
protocol-buffer应用与原理_第2页
第2页 / 共13页
protocol-buffer应用与原理_第3页
第3页 / 共13页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Palmcity Confidential,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Palmcity Confidential,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Protocol Buffer,的应用与原理,周华彬 研发三部,2011.12,定义,protocol buffers,是一个语言中立,平台中立,可扩展的序列化结构化数据的一种方式,可用于通讯协议,数据存储等方面。二进制,与,json,和,xml,是同一个层次的东东,支持的语言,Java,C+,Python,三种,Palmcity Confidential,Protocol buffer,的优劣,比,json,和,XML,1.,简单;,2.,小巧:,3-10,倍,3.,效率高:,20-100,倍,4.,跨语言,5.,有自动工具生成访问类,不足,1.,不适合描述符号文本,2.,不如,XML,易阅读和编辑,3.,需要工具预先生成序列化类,Palmcity Confidential,序列化反序列化对比测试,Palmcity Confidential,Protobuf,是较优化的,跨语言;可选,jackson,解析,json,效率高;,hessian,支持,rpc,Protocol buffer,使用,1.,下载资源,下载地址为:,http:/ buffer,编译器,后者包含了三种语言的开发包。首先解压,protoc-2.x.0-win32.zip,,把,protoc.exe,文件放到该目录中。编译生成的,protobuf-java-2.X.0.jar,复制到,proto_homeexamples,2.,使用,A.,使 用,protocol buffer,编译器编译,addressbook.proto,文件。打开命令行窗口,并定位到,proto_homeexamples,目录中,运行命令,protoc-java_out=.addressbook.proto,,执行这个命令后会在当前目录下生成一个,java,类,.,Palmcity Confidential,B.,编译,执行命令,javac-d.-classpath.;protobuf-java-2.x.0.jar AddPerson.java ListPeople.java comexampletutorialAddressBookProtos.java,C.,执行,运行,AddPerson,,在命令中执行命令,java-cp.;protobuf-java-2.X.0.jar AddPerson addr.dat,,按照提示输入相应的信息,将保存到,addr.dat,中,Palmcity Confidential,显示数据,执行命令,w:jdk6binjava-cp.;protobuf-java-2.3.0.j,ar ListPeople addr.dat,Palmcity Confidential,过程,1-proto,文件,proto,文件,定义程序中需要处理的结构化数据,在,protobuf,的术语中,结构化数据被称为,Message,。,proto,文件非常类似,java,或者,C,语言的数据定义。清单,1,显示了例子应用中的,proto,文件内容。,package lm;,message helloworld,required int32 id=1;/ID,required string str=2;/str,optional int32 opt=3;/optional field,Palmcity Confidential,编译成,-C+,protoc-I=.-cpp_out=.addressbook.proto,编译成,-JAVA,protoc-java_out=.addressbook.proto,编译成,-python,protoc-python_out=.addressbook.proto,Palmcity Confidential,C+,读取,linux,安装,protobuf,$unzip protobuf-2.3.0.zip,$cd protobuf-2.3.0,$./configure&make&make install,$vi/etc/profile,export LD_LIBRARY_PATH=/usr/local/lib:/lib:/usr/lib,export LD_RUN_PATH=$LD_LIBRARY_PATH,export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig,$protoc,I.,cpp_out./addressbook.proto,$make cpp,$./list_people_cpp addr.dat,Addr.dat,是,windows,下生成的数据文件,复制到,linux,后可直接读取。环境变量必须设置,否则编译会出错,Palmcity Confidential,原理之解析与串行化,每个,ProtocolBuffer,类有些方法用于读写消息的二进制数据,(http:/ Confidential,ProtocolBuffer,与面向对象设计,ProtocolBuffer,类只是用于存取数据的,类似于,C+,中的结构体,他们并没有在面向对象方面做很好的设计。如果你想要给这些类添加更多的行为,最好的方法是包装,(wrap),。包装同样适合于复用别人写好的,.proto,文件。这种情况下,你可以把,ProtocolBuffer,生成类包装的很适合于你的应用,并隐藏一些数据和方法,暴露有用的函数等等。,你不可以通过继承来给自动生成的类添加行为,。,这会破坏他们的内部工作机制,。,Palmcity Confidential,更新,proto,文件时的规则,在新的,proto,文件中就要遵守如下规则:,对已存在的任何字段,你都不能更改其标识(,tag,)号。,你绝对不能添加或删除任何,required,的字段。,你可以添加新的,optional,或,repeated,的字段,但是你必须使用新的标识(,tag,)号(例如,在这个,protocol buffer,中从未使用过的标识号,甚至于已经被删除过的字段使用过的标识号也不行)。,Palmcity Confidential,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!