Can i use Protocol Buffers and zeroMQ to be able to replace CORBA in a distributed Application

607 views
Skip to first unread message

Yogesh Fulsunge

unread,
May 19, 2016, 3:42:52 PM5/19/16
to Protocol Buffers
Hello,

I am working on a Distributed Application involving Large data to be transferred around 15 MB  from Java Application to C++ Application.

They are using CORBA as middleware but it has performance issues.

can I use combination of protocol buffers and zeroMQ for the Replacement of CORBA??

I want to make sure there is no roll back to my approach so please urgently help me and let me know.

Regards,
Yogesh

Jeffrey Getzin

unread,
May 20, 2016, 9:33:19 AM5/20/16
to Protocol Buffers
I don't see why not, but what type of data will you be transferring? Some data will transfer more efficiently than others. For example,I suspect that sending messages with a single large BLOB would not be as efficient as sending many text fields.

Jeff

Yogesh Fulsunge

unread,
May 26, 2016, 8:19:42 AM5/26/16
to Protocol Buffers
Dear Jeff,

The Problem with CORBA is that it hangs while sending large amount of data lets say 15 MB

so this problem can be solved by serialisation using  using protocol buffer and transport using zeromq??

also do i need to encode15 MB blob in one request or in multiple request?

can you please clarify wht will be approach for encoding?

Regards,
Yogesh
9960352599

Jeffrey Getzin

unread,
May 26, 2016, 9:43:20 AM5/26/16
to Yogesh Fulsunge, Protocol Buffers
Think of protocol buffers as serializing all your data into efficient binary data. In other words, it's not like JSON or XML, which are represented as text. Therefore, the protobufs will generally be much smaller than with other schemes. However, I don't know how CORBA encodes data, so I can't be sure protobufs will be more efficient. My GUESS is that they will, because Google is behind them, and they're used everywhere in Google's incredibly high-scaling applications. 

Then let's look at ZeroMQ. ZeroMQ lists itself as being asynchronous, which means that your app should not hang. Furthermore, I don't think you'll need to break up your messages because that's what TCP/IP is supposed to do under the hood. In other words, your ZeroMQ will send a message over TCP/IP/UDP/etc., and the underlying transport layer may or may not break those messages into smaller packets.

The upshot is that while I don't have specific information about CORBA, your application, or even ZeroMQ, I'm GUESSING that yes, this application will be much more to your liking than your old approach. However, you really need to do a few experiments with real data to be sure. I would not commit to ANY new technology, even protobufs, until I was sure that they not only worked well, but worked well for my individual situation and needs.

     Jeff


--
You received this message because you are subscribed to a topic in the Google Groups "Protocol Buffers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/protobuf/VvcEZwVlGPM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to protobuf+u...@googlegroups.com.
To post to this group, send email to prot...@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Yogesh Fulsunge

unread,
May 26, 2016, 11:18:01 AM5/26/16
to Jeffrey Getzin, Protocol Buffers
Dear Jeff,

CORBA uses IIOP protocol which encodes the data into binary format.

I have referred few white papers in which CORBA is being replaced by zeromq and protocol buffers, but it was twice slower in performance as compared with CORBA.

I am sure i can use zeromq and protocol buffers but which pattern will be best fit for my kind of problem.

shall i use multithreaded REQ and REP pattern or shall i use PUB/SUB or  PUSH/PULL.?

Regards,
Yogesh


Reply all
Reply to author
Forward
0 new messages