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 <[email protected]> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to