Difference Between Dbus and Other Interprocess Communications Method

Difference between DBus and other Interprocess Communications method

A one to one ipc method has a large group of cooperating process can cause a dense mesh. But in case of a Dbus each process can connect to any number of process provided with a grant access. On a common single shared channel a user can connect with his own session or a new session without interfering the session of other user. This greatly increase the performance

Refer the link

https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-the-return-of-the-report/

This shows the comparison of the DBus performance against a custom IPC system. You get a better understanding of the performance of the Dbus

Quickly Inter-Process Communication with signal about changes

I found one solution http://www.qtcentre.org/wiki/index.php?title=SingleApplication

This solution have use shared memrory for data storage and have use on Windows named pipe, on Unix local domain socket for sending messges about changes immediatly.

Interprocess communication on windows

Tcl on windows has dde support built-in (see docs for the dde command) which could help if the other application supports this. Another option is the TWAPI (Tcl Windows API) extension, which has facilities for sending keyboard and mouse input to another application, see http://twapi.magicsplat.com/input.html .

dbus: difference between system bus and session bus

There is one system bus, and it runs as a system-level service. System-wide services are accessible on it.

There are zero or more session buses, one for each user session. They run as the user, and do not have elevated privileges. The user’s applications are accessible on each of them (to other applications within that user session).

Interprocess communication with C# on Linux and Windows

I would simply use Remoting.

Just because the other options suck:

  • WCF is very limited in Mono

  • DBus has its problems as Rolf says; not to mention the C# story with it is a bit clunky, i.e.: the best solution is using managed Dbus, which you can with NDesk.Dbus, but this library got renamed to dbus-sharp; but the Gnome world are moving to use GDbus, and there's no binding for it yet.

  • Socket, as proposed by Rolf, is too low level for my taste.

Inter-process communication between languages/operating systems

Well, you could definitely look at using "sockets".

Is there a high-level inter-process communications API that is implemented in both C++ and Javascript

I have found a solution that meets my needs. It isn't exactly perfect but I think it works well enough.

Some people suggested using HTTP and ajax. That turned out to be a useful idea and after some prototyping I think it solves my rather basic needs.

To be more specific I am using the Mongoose HTTP server embedded in my C++ application and I am using the jQuery ajax function to pull data from the server. The jQuery client polls the server continously for new data, not particularly efficient but I think it will do the job good enough for me.

Once my implementation is complete I'll write an article explaining how to do this in detail and then I'll update this answer.



Related Topics



Leave a reply



Submit