Protocol buffers in the public project consists primarily of the
serialization framework; serialization is always necessary when
communicating, and frameworks/formats are aplenty, including xml, json,
etc. The primary features of protocol buffers (protobuf) are:

- efficient binary on the wire (small bandwidth)
- efficient to encode (small CPU)
- efficient to decode (small CPU)
- cross platform and public specification (contrast with the inbuilt Java
or .NET binary serialization, which is single platform and closed
specification)

As I understand it from this forum, inside google, the protobuf framework
includes a full RPC stack; however, this piece has never been released to
the wider community, so while the .proto definitions include stubs for RPC
hooks, they are not very useful. That is a valid criticism.

However! Efficient and portable serialization **by itself** is very
valuable. Once you can serialize your data down to a blob (typically a
`byte[]`, or whatever is the equivalent in your framework) you can send it
anywhere and rehydrate at the other end. That could be local disk storage,
storage inside a database or key/value store (redis etc), transmission as
an http payload, or raw socket data. If your chosen comm's stack only
supports strings, then convert it to base-64 and you're sorted.

I suspect the key point here is in your last comment; "I also don't
understand what is serialize mean?!". Serialization is converting
structured data in some form down to a chunk of binary (or a string, noting
that a string is of course just a special-case of binary) suitable for
storage or transmission.

To emphasize: the public protobuf drop is not an RPC stack. If you look to
it for RPC, you will indeed be somewhat disappointed. But look at it as a
serialization stack, and you'll be pretty happy.

Marc


On 26 April 2014 13:17, Flowra white <flowrathe...@gmail.com> wrote:

>
>
>
>
>
>
>
>
>
>
>
> *Hi,,I was reading a book about Google and that book was talking about the
> communication paradigms and as i understand google use RPCbut the book
> mentioned something named protocol buffer I don't get why we use it and
> what is the relation between it and RPC I searched for meaning but all i
> get that it is a way to serialize structured data "I also don't understand
> what is serialize mean?!" sorry for bothering , and I wish anyone could
> help me .thanks,,*
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to protobuf+unsubscr...@googlegroups.com.
> To post to this group, send email to protobuf@googlegroups.com.
> Visit this group at http://groups.google.com/group/protobuf.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Regards,

Marc

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to