Traduction d'un article d'introduction des développeurs D-BUS

Manuel D-BUS

https://dbus.freedesktop.org/doc/dbus-tutorial.html, Red Hat, Inc <hp@pobox.com>

David Wheeler, John Palmieri, Red Hat, Inc. <johnp@redhat.com>

Colin Walters, Red Hat, Inc. <walters@redhat.com>

Version 0.5.0

Traduit par I.V. Plastov, plastov.igor@yandex.ru

Document en cours de développement

Ce tutoriel est incomplet. Il contient probablement des informations utiles, mais il comporte également de nombreuses lacunes. Pour le moment, vous devez également consulter la spécification D-Bus, la documentation de référence Doxygen, et voir quelques exemples de la façon dont d'autres applications utilisent D-Bus.

Les améliorations apportées au manuel sont certainement les bienvenues - envoyez vos corrections ou suggestions à la liste de diffusion. Si vous créez une liaison D-Bus, veuillez ajouter une section tutoriel pour votre liaison, au moins une petite section avec quelques exemples.

Qu'est-ce que D-Bus?

D-Bus est un systĂšme de communication inter-processus (IPC). Architecturalement, il comporte plusieurs couches:

  • Une bibliothĂšque libdbus qui permet Ă  deux applications de se connecter entre elles et d'Ă©changer des messages.

  • ,  libdbus, . .

  • . , libdbus-glib  libdbus-qt. , Python. - API-, , D-Bus. libdbus  . API libdbus  .

 libdbus  -,  raw-. , , . , , . libdbus  ( - ) , .

. - ,  libdbus. , , . .

. - , , sendmail Apache. , , . . .

. IPC , .

D-Bus

, - « » «»: CORBA, DCE, DCOM, DCOP, XML-RPC, SOAP, MBUS, Internet Communications Engine (ICE) . . D-Bus :

  • ; ( ).

  • , .

GNOME KDE IPC, CORBA DCOP. D-Bus , , . D-Bus ; FAQ IPC.

, , Linux Hotplug:

Linux , - « ». , , . , , : , .

« », ( ) ( ). : , . ( , , .) Linux . D-Bus .

D-Bus , , . , IPC:

  • , ( X Window System);

  • ;

  • - , «» ;

  • , / / .

  • DCOP, KDE .

.

, D-Bus. , , GLib, Qt Python.

, .

/

, , , « Â»; . : java.lang.Object, GObject, QObject,  Python - . .

D-Bus API libdbus  . , . , .

, ,

/org/kde/kspread/sheet/3/cells/4/5

. - ,

/com/mycompany/c5yo817y0c1y1c5b

, .

- (,

/org/kde

). .

. - . - , , ( « ») ( « »).  - ; .

, , «Frobate» «OnClicked».

. , GLib, Qt Java. .

D‑Bus ,

org.freedesktop.Introspectable

. , , Java C++.

- - , . D‑Bus API , , . .  , -, DBus, , .

:

Message message = new Message("/remote/object/path", "MethodName", arg1, arg2);
          Connection connection = getBusConnection();
          connection.send(message);
          Message reply = connection.waitForReply(message);
          if (reply.isError()) {
      } else {
        Object returnValue = reply.getReturnValue();
      }

:

Proxy proxy = new Proxy(getBusConnection(), "/remote/object/path");
          Object returnValue = proxy.MethodName(arg1, arg2);

, , . ‘:’ ().  —  , . “:34–907”. , .

, , .

(well-known) . ,

com.mycompany.TextEditor

. ,

/com/mycompany/TextFileManager

,

org.freedesktop.FileHandler.

, .

IP-, . ,

com.mycompany.TextEditor

:34-907

,

mycompany.com

-

192.168.0.5

, , . . ( ), . , , . , .

«» . , , ,

com.mycompany.TextEditor

, , .

, D-Bus, , . ; . , . - .

, , . , .

D-Bus , , . ,

unix:path=/tmp/abcdef

, UNIX

/tmp/abcdef

  . TCP/IP , D-Bus.

D-Bus libdbus , . , UNIX ( ).

D-Bus , , ,  — , . .

, , :

, ,  —  . , .

 -> [ ] ->  ->  -> 

, ; DCOP , . , D-Bus , , , .

D-Bus , . , .

4 :

  • ;

  • ;

  • , ;

  •  —  , ( ). « ».

: , .

, , , . ,  —  . , , .  —  , , . , «i» «32- », «ii» , 32- .

 

D-Bus ; , A B, , B A. , . , , .

. , .

D-Bus :

  • , . , -, .

  • API , .

  • : , , , , , , , .

  • .

  • . , . .

  • . API . API , , (GObject, java.lang.Object, QObject, . .), .

  • , .

  • , , , . , . - .

. , , , . ; , , . , .

D‑Bus , .  —  . ( ), , « ». (. #), .

( ) . « » —  . , .

D‑Bus :

  • . API , , .

  • , , , , ; .

  • « », , . .

  • , . .

  • , , , ; , -. API , .

D-Bus

org.freedesktop.DBus.Introspectable

Introspect, XML. XML , . . D-Bus .

GLib API

GLib API D-Bus — GDBus, GLib 2.26. , , GDBus . GLib :

https://developer.gnome.org/gio/stable/gdbus-convenience.html

API, dbus-glib. . dbus-glib GDBus.

Python API

Python API, dbus-python, dbus-python 

http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html

 (Ă©galement disponible dans doc / tutorial.txt et doc / tutorial.html si construit avec python-documenttils , dans la distribution source dbus-python ).

API Qt

La liaison Qt pour libdbus , QtDBus, est distribuée depuis Qt 4.2. Ceci n'est pas documenté ici. Pour plus de détails sur l'utilisation de QtDBus, consultez la documentation Qt

 http://qt-project.org/doc/qt-5/qtdbus-index.html .




All Articles