不管是thrift、protobuf,SOAP,都必须找到一个合适的方式将内存中的对象转为二进制或者字符串在网络上传输,这个序列化方式如果是跨语言的(同时支持Python、Java、C#、C++、Ruby)往往会因为兼容,丢失一些Java对象特有的信息,这就导致一些复杂的嵌套对象(MAP嵌套List)很难还原正确。即使能传输,效率也很差(SOAP都是XML嵌套的字符串)。