views:

441

answers:

5

Anything higher-level, and more comprehensive than pipes/sockets?

+5  A: 

For interprocess communication, D-Bus is the standard higher level mechanism. Both GTK and Qt have bindings for D-Bus, most desktop environments (or at least GNOME and KDE) expose various services via D-Bus, and many desktop applications can be controlled via a D-Bus interface. The system bus is also useful for finding out various low level information about the system using standard system services.

KDE4 (built upon Qt4) also includes a technology called KParts, which are often compared to Window's COM.

Kitsune
"For interprocess communication, D-Bus is the standard mechanism."It is? Sockets, shared memory, message queues, and semaphores are what I would say if asked what the standard interprocess communications machanisms of any POSIX environment were.
smcameron
D-Bus is higher-level than the elementary mechanisms you list, more comparable to COM/DCOM, and widespread on Linux (all others are inherited from many other versions of Unix -- D-Bus is built on top on such lower-level mechanisms of course).
Alex Martelli
You can write Pigin IM controllers which work through D-Bus instead of a pigin plugin. Run dbus-monitor --session and you can see pigdin putting everything in your conversations out there on the D-Bus.
Sean A.O. Harney
I slightly adjusted that sentence to clarify that I was meaning wrt higher level infrastructure (as that's what the question was about). Also, D-Bus *is* becoming increasingly popular with lower level tools, such as PolicyKit and HAL.
Kitsune
Also, in additon, most every KDE application has a D-Bus interface (some interfaces are quite extensive). The Freedesktop.org's listing of projects which use it is *incredibly* incomplete.
Kitsune
+1  A: 

There is Mozilla's XPCOM technology, Cross Platform Component Object Model. Sort of similar to COM or DCOM conceptually.

Here is a list of the relatively few programs which do make use of the D-bus

Sean A.O. Harney
+1  A: 

You can check out Corba, it works on Linux and Windows as well.

On Freund
+1  A: 

The Mono project jumps to mind. Mostly because the CLR/.NET is the new COM -- after all, COM was initially sold as language independent, binary compatible objects.

I guess DCOM (i.e. COM with a longer wire) would be .NET remoting? Or perhaps some web services with object serialization. I believe Mono supports both.

ars
+1  A: 

Yes, there are lots of things, but there isn't one as "Standard" as COM/DCOM. At least, in Windows, COM / DCOM are used by "Windowsish" stuff, and other RPC mechanisms are used by un-"Windowsish" stuff.

Linux doesn't have anything like that, instead things which need higher level RPC protocols typically use whatever their language provides, or a specific library which best suits an app's needs. Examples of that would be RMI in Java, Python's "pyro" module, etc, which will provide (some) functional parity with DCOM.

Corba is a bit heavyweight but some people apparently do use it.

A lot of applications roll their own RPC libraries. Don't do that unless you have to, it's nasty.

MarkR