传统的跨语言通信方案:
基于SOAP消息格式的WebService
基于JSON消息格式的RESTful 服务
主要弊端:
XML体积太大,解析性能极差
JSON体积相对较小,解析相对较快,但表达能力较弱
现在比较流行的跨语言通信方案:
Google protobuf (http://code.google.com/p/protobuf)
Apache Thrift (http://thrift.apache.org/)
Apache Avro (
http://avro.apache.org/)
Google protobuf:
优点
二进制消息,性能好/效率高(空间和时间效率都很不错)
proto文件生成目标代码,简单易用
序列化反序列化直接对应程序中的数据类,不需要解析后在进行映射(XML,JSON都是这种方式)
支持向前兼容(新加字段采用默认值)和向后兼容(忽略新加字段),简化升级
支持多种语言