D-BUS
Z Wikipedii
D-BUS jest systemem służącym do komunikacji międzyprocesowej (ang. Inter-Process Communication – IPC), przy wykorzystaniu wiadomości.
Spis treści |
[edytuj] Budowa i działanie
Architektura D-BUS składa się z kilku warstw:
- biblioteki libdbus - pozwala połączyć się dwóm aplikacjom i wymieniać między sobą wiadomości.
- systemu wymiany informacji (ang. message bus daemon) - korzysta on z biblioteki libdbus, dzięki czemu inne aplikacje mogą się z nim połączyć. System ten może przekazywać wiadomości z jednej aplikacji do zera lub więcej innych aplikacji.
- bibliotek owijających (ang. wrapper libraries) - np. libdbus-glib i libdbus-qt. Istnieją również dowiązania (ang. binding) do wielu różnych języków programowania. Biblioteki te używane są w celu ułatwienia pisania aplikacji korzystających z D-BUS. Biblioteka libdbus została pomyślana jako niskopoziomowy backend wykorzystywany przez wysoko poziomowe dowiązania.
Biblioteka libdbus umożliwia jedynie obsługę połączeń jeden do jednego. Działa podobnie jak gniazdo sieciowe, jednak zamiast przesyłać surowe ciągi bajtów, przesyła wiadomości. Wiadomość zawiera nagłówek identyfikujący wiadomość oraz treść, czyli interesujące nas dane. Biblioteka libdbus ukrywa przed aplikacjami rodzaj wykorzystywanego transportu (gniazda lub cokolwiek innego) oraz takie sprawy jak uwierzytelnianie.
Systemu wymiany informacji (ang. message bus daemon) działa jak hub. Aplikacje wykorzystując bibliotekę libdbus łączą się do niego na zasadzie jeden do jednego. Jeżeli system ten otrzyma wiadomość od podłączonej aplikacji to przekazuje ją do innych podłączonych aplikacji.
D-BUS pracuje z dwoma rodzajami bus daemonów
- system - przeznaczony jest dla wiadomości o charakterze globalnym (np. powiadomienie o podłączeniu nowego urządzenia). Jednocześnie może być uruchomiona tylko jedna instancja tego daemona.
- session - pozwala na komunikację aplikacji uruchomionych w ramach sesji tego samego użytkownika. Dla każdej sesji użytkownika uruchamiana może być nowa instancja tego deamona.
[edytuj] Zastosowanie
D-BUS we współpracy z HAL jest używany przez KDE i GNOME aby reagować na podłączenie lub odłączenie nowego urządzenia. Coraz więcej komunikatorów ma wsparcie dla D-BUS, jako przykłady można podać Gajim oraz Gaim. Z innych aplikacji wykorzystujących D-BUS wymienić można narzędzie do wyszukiwania danych Beagle.
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
- Strona domowa D-BUS (en)
- Strona domowa HAL (en)