Übersetzung eines EinfĂŒhrungsartikels der D-BUS-Entwickler

D-BUS Handbuch

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

Übersetzt von I. V. Plastov, plastov.igor@yandex.ru

Dokument in Entwicklung

Dieses Tutorial ist unvollstĂ€ndig. Es enthĂ€lt wahrscheinlich einige nĂŒtzliche Informationen, hat aber auch viele LĂŒcken. Im Moment mĂŒssen Sie auch die D-Bus-Spezifikation und die Doxygen-Referenzdokumentation konsultieren und einige Beispiele dafĂŒr sehen, wie andere Anwendungen D-Bus verwenden.

Verbesserungen des Handbuchs sind auf jeden Fall willkommen - senden Sie Ihre Korrekturen oder VorschlĂ€ge an die Mailingliste. Wenn Sie eine D-Bus-Bindung erstellen, fĂŒgen Sie bitte einen Tutorial-Abschnitt fĂŒr Ihre Bindung hinzu, mindestens einen kleinen Abschnitt mit einigen Beispielen.

Was ist D-Bus?

D-Bus ist ein IPC-System (Inter-Process Communication). Architektonisch hat es mehrere Schichten:

  • Eine libdbus-Bibliothek, mit der zwei Anwendungen eine Verbindung herstellen und Nachrichten austauschen können.

  • ,  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

 (auch in doc / tutorial.txt und doc / tutorial.html verfĂŒgbar, wenn mit python-documenttils in der dbus-python-Quelldistribution erstellt ).

Qt API

Die Qt-Bindung fĂŒr libdbus , QtDBus, wurde seit Qt 4.2 verteilt. Dies ist hier nicht dokumentiert. Einzelheiten zur Verwendung von QtDBus finden Sie in der Qt-Dokumentation

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




All Articles