Accéder au contenu principal

Articles

Affichage des articles associés au libellé dbusjava

D-Bus utilisation en Java - Appel de méthode

Après avoir présenté l'installation de D-Bus aussi bien sous Unix que sous Windows, nous allons voir comment l'utiliser avec quelques exemples simples.   Application HelloWorld Cette première application va simplement recevoir une chaine de caractère et la renvoyer à son émetteur précédée de la chaine "Hello world :". L'application est exposée sur D-Bus par les commandes dbusConnection.requestName("mon.premier.bus") qui indiquera le nom à utiliser pour dialoguer avec elle. La commande dbusConnection.exportObject("/Main", this) indique les objets qui seront exposés. L'objet exposé ici exposera la méthode "helloWorld" héritée de l'interface DBusHelloWorldInterface. Les méthodes, ainsi que les paramètres sont découverts dynamiquement. Déclaration de l'interface package example; import org.freedesktop.dbus.DBusInterface; public interface DBusHelloWorldInterface extends DBusInterface { public Strin...

D-BUS, un bus de messagerie pour UNIX (et Windows)

Introduction J'ai déjà parlé dans un billet précédent de JMX qui peut être utilisé en Java pour surveiller une application ou faire des appels distants. Je vais parlé ici d'un autre système de communication assez répandu sous UNIX, mais pourtant pas très connu : D-Bus. D-Bus est un système de communication interprocess qui permet d'échanger des messages entre deux applications sur la même machine. Il est en cela comparable à CORBA (Unix et Windows) ou COM/DCOM (Windows) car il permet de piloter une application à distance et ajoute également un mécanisme de signalisation. L'avantage de D-BUS est sa légèreté car il utilise un simple "démon" pour la communication et il peut être utilisé par différents langages (C, C++, Java, Python). La communication entre les processus s'effectue à l'aide de Sockets Unix ou TCP. D-Bus est essentiellement utilisé par Gnome pour ses applications graphiques, ainsi que par un certain nombre d'applications multimédi...