Some cursory findings ...

rony rony at wu.ac.at
Wed Aug 24 11:55:16 PDT 2011


While stress testing the private server on tcp-connections between
different operating systems with ooRexx language bindings it may be
interesting to learn some cursory results:

    * dbus-versions on the different operating systems
          o Ubuntu 64 (11.04), dbus: 1.4.14
          o Windows XP, SP 3, dbus: 1.5.7
          o MacOSX 10.8, dbus: 1.4.12 (latest version from Mac ports)

    * server on Ubuntu 64, o.k.:
          o Ubuntu client to Ubuntu: o.k.
          o Windows XP client to Ubuntu: o.k.
          o MacOSX client to Ubuntu: o.k.

    * server on Windows XP, SP 3, o.k.:
          o Ubuntu client to Windows: o.k.
          o Windows client to Windows: o.k.
          o MacOSX to Windows: o.k.

    * server on Mac OSX 10.8, NOT o.k. (intermittent bus errors):
          o Ubuntu client to Windows: NOT o.k. (intermittent bus errors)
          o Windows client to Windows: NOT o.k. (intermittent bus errors)
          o MacOSX client to MacOSX: NOT o.k. (intermittent bus errors,
            twice it worked throughout, i.e. 16.200 message calls)

These are different machines on the same segment, with different
hardware, but also different versions of dbus.

Even in the case of the MaxOSX private dbus server, the bus errors
occurred between appr. 5.000 and 6.000 message calls (still does not
make it a rock-solid stable private dbus server platform at this time;
maybe a newer version of dbus helps).

---

Some inferrals:

    * it seems that the dbus IPC using tcp is quite stable (rock-solid
      using Linux and Windows for private dbus server connections),

    * all clients on all platforms performed stable,

    * the MacOSX server implementation shows instabilities, so maybe
      needs some debugging; also possible, that the latest dbus version
      fixes that observed instability.

    * dbus makes for a *great* interprocess mechanism over tcp,
      insulating the server and clients from each other (bitnesses,
      programming languages, operating systems), which is just great and
      should be made known on a much larger scale IMHO
          o e.g. this may help managers to break-out from lock-ins,
            given the dbus language bindings to create applications that
            are cross-operating-system (relieving lock-ins even more
            over time), etc.
                + e.g. the ooRexx test scripts - server and client -
                  were originally created on Ubuntu and have run
                  unchanged on MacOSX and Windows,

    * the ooRexx language bindings does not employ glib or qt main loops
          o it was not really difficult to create the respective loops
            one-self (message loops for connections, loops for servers
            listening to connection attempts on separate threads etc.),
            *after* getting the great help on this list to what one was
            supposed to employ (there seems to be the basic assumption
            that language bindings would click into exisiting message
            loops anyway, which may not be the case at all times, hence
            stressing this particular fact; to be clear: whoever
            benefits from message loop integrations should by all means
            exploit it!).

    * without the great (unfortunately currently a dead link) dbus
      tutorial  "D-Bus Low-Level API Tutorial
      <http://dbus.freedesktop.org/doc/dbus/libdbus-tutorial.html>" by
      Matthew Johnson starting a language binding from scratch is almost
      impossible; that tutorial demonstrates how one can among other
      things fetch messages without using any message loop. This
      nutshell-like tutorial allowed me to start out, having something
      working to experiment with. (Still, it has been a long way to get
      so far as to become able to do an - almost - full implemention of
      a language binding).
          o I reported this earlier: the link to Matthew Johnson's
            tutorial on "http://www.freedesktop.org/wiki/Software/dbus"
            is unfortunately dead (the link given is:
            <http://dbus.freedesktop.org/doc/dbus/libdbus-tutorial.html>) and
            it should be fixed for others seeking a starting point for
            other (new) language bindings. (Found my copy on a Matthew
            Johnson WWW-site, if I remember correctly).

Finally: many thanks to everyone who gave me a helping hand so far via
this list !
(Please keep on doing so! :) )

Without this help I would not have been able to create the language
binding in this rather short time-frame given my rather scarce resources
(and working therefore in the free time in the evenings and weekends
which has been "stealing" quite some time from my family).

---rony


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dbus/attachments/20110824/e439de33/attachment.htm>


More information about the dbus mailing list