初识Protocol Buffer(Protocol Buffer的下载与安装)

Protocol Buffer的下载安装

Protocol Buffer:

一、简介

      Protocol Buffer(以下简称Protobuf)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了三种语言的实现:java、c++ 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

二、Protobuf 的优点

      Protobuf 有如 XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。只需使用 Protobuf 对数据结构进行一次描述,即可利用各种不同语言或从各种不同数据流中对你的结构化数据轻松读写。它有一个非常棒的特性,即“向后”兼容性好,人们不必破坏已部署的、依靠“老”数据格式的程序就可以对数据结构进行升级。这样您的程序就可以不必担心因为消息结构的改变而造成的大规模的代码重构或者迁移的问题。因为添加新的消息中的 field 并不会引起已经发布的程序的任何改变。Protobuf 语义更清晰,无需类似 XML 解析器的东西(因为 Protobuf 编译器会将 .proto 文件编译生成对应的数据访问类以对 Protobuf 数据进行序列化、反序列化操作)。使用 Protobuf 无需学习复杂的文档对象模型,Protobuf 的编程模式比较友好,简单易学,同时它拥有良好的文档和示例,对于喜欢简单事物的人们而言,Protobuf 比其他的技术更加有吸引力。

三、Protobuf 的不足

      Protobuf与 XML 相比也有不足之处。它功能简单,无法用来表示复杂的概念。XML 已经成为多种行业标准的编写工具,Protobuf 只是 Google 公司内部使用的工具,在通用性上还差很多。由于文本并不适合用来描述数据结构,所以 Protobuf 也不适合用来对基于文本的标记文档(如 HTML)建模。另外,由于 XML 具有某种程度上的自解释性,它可以被人直接读取编辑,在这一点上 Protobuf 不行,它以二进制的方式存储,除非你有 .proto 定义,否则你没法直接读出 Protobuf 的任何内容。

Protobuf的下载与安装:

一、下载资源

            官网下载地址:http://code.google.com/p/protobuf/downloads/list

            版本可以自行选择,本文中将用2.5版本来说明和使用。下载的压缩包:

                     1. protoc-2.5.0-win32.zip   

                     2.protobuf-2.5.0.zip  

            其中protoc-2.5.0-win32.zip包为protobuf的编译器,里面包含着编译器文件proto.exe,而protobuf-2.5.0.zip 包为protobuf的开发包,里面包含着包含了java、c++ 和 python三种语言的开发包(后面使用到的protobuf-2.5.0.jar)是根据该包的相关内容编译而来。

二、protobuf安装

           protobuf的安装很简单,首先把protoc-2.5.0-win32.zip解压,得到protoc.exe文件,因下面有两种方式实现protobuf的安装:

1.在系统的环境变量path中添加protoc.exe文件的路径    即可        

            如:笔者protoc.exe文件在 C:\server下着在控制面板\系统和安全\系统\高级系统设置\环境变量,中的系统变量(Path)中添加' C:\server;'配置,如图


2.将protoc.exe文件直接复制到c:\Windows目录下即可,这种安装更简单方便,推荐大家使用这种安装,笔者这里就采用这种安装方式

检测protoc安装是否成功,打开cmd 在窗口中直接输入protoc  如果出现不是内部命令则安装失败,返回检测安装。如果出现Missing input file 提示则说明protoc命令可用,安装成功。如图:





到这里其实protobuf的安装已经全部完成,下面的介绍只是简单使用了下proto的相关命令,来获取protobuf 基于java的类库

三、编译protobuf (获得protobuf-java-2.5.0.jar :基于java的类库)

      将protobuf-2.5.0.zip包解压,得到protobuf-2.5.0文件夹。由于此开发包中只包含了源文件,没有包含打包后的 jar 文件,所以需要自己手动编译。而 protocol buffer 是使用 maven 作为编译工具,所以必须先下载安装 maven,maven 可以从 http://maven.apache.org 上下载。安装 maven 非常简单,只要解压并把bin 目录添加到 path 中即可。安装好 maven 后,测试一下 maven 是否安装成功,打开命令行窗口,运行命令 mvn -version,当看到如下输出后,说明 maven 安装成功,如下图。(关于maven的介绍这里就不多说了,感兴趣或者有问题的可以自行去网上了解)



在编译之前还需把protocol buffer 的编译器protoc.exe文件复制一份到protobuf-2.5.0\src\ 中,因为在编译时 maven 脚本调用了这个文件。下面在命令行窗口中把当前工作目录定位到protobuf-2.5.0\java 中,运行命令 mvn package。编译完成后会在 taget 目录中生成一个 jar 文件protobuf-2.5.0.jar。cmd界面如下图:


注意这里编译过程中,maven会在网上下载一些文件,需要保持电脑网络连接,实际上该过程时间比较长,很容易出现未响应而失败(可能也跟笔者电脑网速相关)。如果读者电脑没有装maven,或者不想等的,我这里有protobuf-2.5.0编译的jar,将附在资源上,下载链接在文中结尾处将给出。

关于官方的protobuf简单示例的运行演示,将会在下一篇博文中给出,有需要的可以继续查看下一篇博文。

资源相关:

         一、本文参考资源

                 1.Protobuf简介和使用原理 http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/

                 2.Protobuf使用入门 http://blog.sina.com.cn/s/blog_492dbb6b0100qorb.html

         二、本文使用到的资源(个人云盘)

                   1protobuf-2.5.0.tar.gz + protobuf-2.5.0.jar + proto.exe下载:

                            http://pan.baidu.com/s/1sjuxdFJ

                   2其他protobuf相关资源下载:

                            http://pan.baidu.com/s/1c0I4cU0

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值