[omniNotify] Benchmark: Python+Omninotify vs. Java+JMS?

Gary Duzan gduzan at bbn.com
Thu Sep 8 14:08:19 BST 2005


In Message <1107416024.20050907092603 at gmx.de> ,
   Wolfgang Keller <wolfgang.keller.nospam at gmx.de> wrote:

=>does  anyone  have  an idea how Python+Omninotify compares to Java+JMS
=>(any of the open-source implementations) performance-wise?
=>
=>The  Google-results  for  "omninotify  python  benchmark" weren't very
=>helpful...
=>
=>I don't care for +/-10% precision, a statement like "x-times more/less
=>throughput  for similar conditions" or "basically the same" is enough.
=>
=>Has  anyone  ever  tried  to  implement  a  "bridge"  to  JMS based on
=>Omninotify?

   I'm afraid for these I don't have an answer for you. The performance
likely depends considerably on the particular example. There are some
basic middleware benchmarks available at:

	http://www.atl.external.lmco.com/projects/QoS/

Unfortunately, while they have benchmarked OmniORB for C++ and Python,
they haven't benchmarked OmniNotify. However, a quick comparison of
OmniORB against OpenJMS and Joram shows that OmniORB/OmniORBpy is a
couple orders of magnitude faster. Of course, adding Notification on top
of CORBA introduces overhead, but I would guess that OmniNotify doesn't
slow things down by a factor of 100.

=>How does Omninotify compare to Systems such as Spread (www.spread.org)
=>or Muscle (http://www.lcscanada.com/muscle/index.html) ?

   I think I can give you a general feeling about these from what I know
about them:

   Spread provides a rather low level API (based on groups) and doesn't
say much about what is transported, while CORBA Notification, and
OmniNotify in particular, provides data model, channel, and administration
abstractions.  OmniNotify is also centralized (with the possibility of
federation), while Spread is decentralized.

   Muscle appears to be a pub/sub system with store-and-forward
capabilities, while I believe OmniNotify only does distribution to
currently connected subscribers.  The message format and API in Muscle
seem to be much lower level than that of CORBA Notification.

   I believe that both Spread and Muscle are primarily C/C++ interfaces,
while you can have different languages interoperate with OmniNotify.

					Gary Duzan
					BBN Technologies





More information about the omninotify-list mailing list