//Skip to content
DBUS NEDİR?
*D-Bus aynı makine üzerinde birden fazla procesin haberleşmesini sağlayan mesajlaşma tabanlı bir yazılım mekanizması
*Pekçok procein iletişimi verimsiz ve güvensiz olmaktadır bunun yerine bir grup procesin dbus ile haberleşmesi sağlanabilmektedir
*Bir proces birden fazla busa bağlanabilir(izin verilmek şartıyla)
*system bus : Bütün kullanıcılar ve bütün proceslerine sistem servislerini sağlar
session bus: Masaüstü aynı oturumdaki kullanıcı uygulamalarına masaüstü servisi sağlayan oturumlar için.
*dbus bilgi paylaşımı , modulerlik ve ayrıcalıklar sağlar örn : müzik dinlerken skype araması geline müziği durdurup arama bitince devam ettirmesi gibi
*dbus farklı komponentleri entegre etmek için kullanılabilir . örn : word ile excel arasında bilgi paylaşımı gibi
BUS MODEL ?
*Busa yapılan her bağlantı bir 'bus name' ile tanımlıdır. Bus name iki veya daha fazla noktayla ayrılmış diziden oluşur örn: org.fredesktop.Networkmanager
*Bir proces bir busa bağlantı kurduğunda benzersiz özel bir bağlantı adı atanır.Bağlantı adı bağlantı olduğu sürece değişmeyeceği garanti altındadır bus sonlandırılana kadar .
Bir proces baglantı kursa baglantıyı kapatıp yeni bir baglantı kursa dahi önceki baglantı adı başka bir procesese kesinlikle atanmaz
*Connection adları : ile başlar örn :1.1553
OBJECT MODEL?
*Nesnelerlin signal ve metodları aracılığıyla haberleşme sağlanır . örn : Zaman servisi olarak adlandırılan servisten tarih ve zamanı dönen metod kullanılarak zaman sorgulanabilir örn : usb ve aygıt yöneticilerini yöneten bir servisin "Yenir aygıt eklendi" bildirisi gibi . Bus sadece kayıtlı(ilgilenen) proceslere bu sinyali iletir
*Interface : Bir nesne ile kullanılabilecek sinyal ve metodlar kümesidir .Nokta ile ayrılır örn : org.freedesktop.Introspectable
*Bus name ile interface name karıstırılmamalıdır . Bus birden fazla interface içerebilir
* Nesne adının yanında interface adı vermek iyi bir alıskanlıktır ama zorunlu değildir
Interface çeşitleri : org.freedesktop.DBus.Peer: D-Bus baglantısının canlılığını kontrol eder
org.freedesktop.DBus.Introspectable: Client procese xml formatında metod ve sinyaller saglar
org.freedesktop.DBus.Properties: Object tabanında özellikler ve öznitelikler sağlar
COMMUNICATION MODEL ?
*Yüksek seviyeli proces haberleşme sistemidir
.
*Raw bytelar yerine procesler arası mesaj değişimi tabanlı dbus iletişimidir
*İki türü vardır
+ One to one : Bir clientın metodları ile iletişim sağlanır cevap dönülebilir
+ Publish-subscribe: Bir object ilgilenen bütün proceslere yayın yapar. Geri dönüş değeri gibi bir durum yoktur
*Her D-Bus mesajı header ve bodye sahiptir . Header kısmında mesajın tipini , göndericiyi , hedef, bus name metod ,path, sinyal adı gibi belirten belirli alanları vardır .
Body kısmında ise giris cıkttı argümanları gibi veriler bulunur
*Her data wire formatı denen ikili formatta kodlanmıstır
GENEL
*libdbus bire bir iletişimi destekler ve sağlar .Bus name gerek yoktur
*Dbus-daemon pek cok proces arası iletişimi saglar kontrol eder .Bus name gereklidir