Login
Newsletter
Werbung

Thema: D-Bus 1.0 fertiggestellt

45 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von Anonym am Sa, 11. November 2006 um 17:09 #
"Das Protokoll baut auf das XML-Format"

XML wird nur fuer die Konfigurationsdateien verwendet (/etc/dbus), das Protokoll hat mit XML nichts zu tun.

[
| Versenden | Drucken ]
  • 0
    Von yctl am Sa, 11. November 2006 um 18:46 #
    Ich kenne Dbus nicht genauer aber vielleicht ist es ähnlich wie SOAP und die Daten werden doch letztlich als XML verpackt übertragen?
    [
    | Versenden | Drucken ]
    • 0
      Von spaetz am Sa, 11. November 2006 um 18:53 #
      Nein
      [
      | Versenden | Drucken ]
      0
      Von panzi am Sa, 11. November 2006 um 19:32 #
      Ich kenne Dbus nicht genauer aber vielleicht ist es ähnlich wie SOAP und die Daten werden doch letztlich als XML verpackt übertragen?
      Nein. D-BUS ist ein schnelles IPC Protokoll mit anfänglicher RPC Unterstützung. SOAP ist ein XML basierendes RPC Protokoll. Bie D-BUS wird so wenig wie möglich mit den Daten beim Übertragen angestellt, damit's eben schnell ist. Weiß nicht ob das für D-BUS auch zutrifft, aber bei DCOP wurde nicht mal die Byteorder geändert. Stattdessen gab's ein kleines Flag im Protokollheader, das darüber Aufschluss gab. Somit muss im IPC Fall nix konvertiert werden und im RPC Fall gehts trotzdem noch über Plattformgrenzen hinweg.
      [
      | Versenden | Drucken ]
      • 0
        Von Kevin Krammer am Sa, 11. November 2006 um 19:58 #
        Der D-Bus Daemon muß nur die Informatione dekodieren, die er zum Weiterleiten benötigt, d.h. im Falle eines Methodenaufrufs nur die Zielverbindung. An welches Objekt das dann am Ziel weitergeleitet wird, ist bereits Teil der Zielapplikation, aber üblicherweise schon noch in der libdbus.

        Im Falle eines Signals, das ja an alle geht, wird vermutlich sogar nur diese Information, also Art der Nachricht, dekodiert.

        Ich bin mir jetzt ziemlich sicher, daß in keinem Fall an der Nachricht selbst Änderung vorgenommen werden.

        [
        | Versenden | Drucken ]
    0
    Von hjb am Sa, 11. November 2006 um 19:01 #
    Danke für den Hinweis. Ich habe ein paar Aussagen in der News korrigiert.
    [
    | Versenden | Drucken ]
mehr RPC
0
Von Abrams am Sa, 11. November 2006 um 19:14 #
Sehr schön, wenn die Entwickler dann noch, bis zur nächsten Version, eine elegante Methode für den Aufruf über Rechnergrenzen hinweg finden, bin ich sogar extrem begeistert.

Das könnte der Standard schlechthin werden.

Habe das mal just via Python getestet. Also mir gefällt's.

Danke.

[
| Versenden | Drucken ]
  • 0
    Von Kevin Krammer am Sa, 11. November 2006 um 19:23 #
    Das geht ansich schon, wenn man als Transportschicht TCP benutzt. Das Problem ist in diesen Fällen mehr die Authentifizierung und sichere, im Sinne von nicht einsehbare, Übertragung.
    [
    | Versenden | Drucken ]
    • 0
      Von panzi am Sa, 11. November 2006 um 19:34 #
      Ja eben. Also gscheite Authentifizierung und verschlüsselte Übertragung über TCP-Sockets. Das wär noch EXTREM cool. Ist das echt so schwer zu implementieren, oder hat das bis jetzt einfach niemand implementieren wollen?
      [
      | Versenden | Drucken ]
      • 0
        Von panzi am Sa, 11. November 2006 um 19:34 #
        PS: Das wär doch mal was für ein Google-Summer-of-Code!
        [
        | Versenden | Drucken ]
        0
        Von Kevin Krammer am Sa, 11. November 2006 um 19:54 #
        Das hat einfach bisher noch niemand implementiert, weil die hauptsächliche Verwendung in erster Linie über lokale Unix Domain Sockets geht.

        Ich glaube, daß die TCP Implementierung auch nur deswegen gemacht wurde, um sicher zu gehen, daß alle beteiligten Komponenten keine versteckten Annahmen über die Art des Datentransports machen, bzw. um das zu erkennen.

        Eine meiner Meinung nach ziemlich wahrscheinliche Erweiterung ist eine Transportschicht über X11, d.h. damit eine Remote X11 Applikation auf den D-Bus Daemon der X11 Session zugreifen kann.
        In diesem Fall hat X11 praktisch die Authentifizierung gemacht und X11 kann zB über SSH getunnelt werden.

        [
        | Versenden | Drucken ]
        • 0
          Von Steffe am Sa, 11. November 2006 um 21:29 #
          Eine Variante ist, eine Socket hie und da an ein nc zu bammeln. Sollte dann aber wirklich nur über ein vertrauenswürdiges lan gehen. Habe ich selbst vor vielen Jahren mal genutzt, um ein an einem anderen Rechner angeschlossenes Messgerät auszulesen. Das ging alles noch seriell, bei usb gibt es heutzutage die Probleme zum Glück nicht mehr.
          [
          | Versenden | Drucken ]
          0
          Von thomas001 am Mo, 13. November 2006 um 14:38 #
          bitte nicht dbus an x11 koppeln,es gibt auch anwendungen fuer dbus ohne x11..auch wenn es von den DEs am meisten genutzt wird gibt es IPC auch ohne X ;-)
          [
          | Versenden | Drucken ]
          • 0
            Von Kevin Krammer am Mo, 13. November 2006 um 17:54 #
            Von Kopplung ist auch nicht die Rede.

            Es geht darum, einer Applikation, die zwar am selben X Server wie die Desktopsession angezeigt wird, aber auf einem anderen Rechner läuft, Zugriff auf den Sessionbus zu ermöglichen, ohne daß ein weiteres Protokoll getunnelt werden muß.

            [
            | Versenden | Drucken ]
      0
      Von Abrams am So, 12. November 2006 um 12:26 #
      Gibt es dafür ein Programmierbeispiel, konnte in der Dokumentation auf die Schnelle nichts finden. Danke.
      [
      | Versenden | Drucken ]
      • 0
        Von Kevin Krammer am So, 12. November 2006 um 13:25 #
        Leider nein.

        Es gab kürzlich einen Thread, der sich mit der entsprechenden Konfiguration des Daemon befasst hat:
        http://lists.freedesktop.org/archives/dbus/2006-November/006331.html

        Vermutlich recht es für die Clients, die Adreßvariablen entsprechend zu setzen, d.h.
        tcp:host:port
        oder ähnlich

        [
        | Versenden | Drucken ]
0
Von DarkVision am Sa, 11. November 2006 um 21:39 #
>> Obwohl D-Bus erst jetzt Version 1.0.0 (Codename »Blue Bird«) erreicht hat, sind Protokoll und API laut FreeDesktop.org bereits seit Jahren erprobt und werden nun stabil gehalten.

Naja... ich kann mich an ein "DBUS_API_SUBJECT_TO_CHANGE" errinnern was gerade bei GNOME hier und da für ein paar patches beim compillieren erforderlich machte. Beim Wechsel von DBus 0.62 auf 0.9x fielen die QT3-bindings unter den Tisch und der QT4-QT3-Backport ist ein Witz... (das was auf freedesktop bereitsteht läuft hier nicht mit HAL/KDE 3.5.x, die QT3-bindings von http://ranger.befunk.com/fink/ funktionieren besser). Aber dazu gab es schon einige Postings in div. Newsgroups. Hoffentlich wird das mit der 1er Version besser.

DV

[
| Versenden | Drucken ]
  • 0
    Von Kevin Krammer am So, 12. November 2006 um 13:29 #
    Das DBUS_API_SUBJECT_TO_CHANGE war während der Entwicklung eine Art Erinnerung, die der Entwickler durch ein entsprechendes define zur Kenntnis nehmen mußte.

    Wurde natürlich für dein 1.0 Release entfernt, ab hier gibt es die nötige Sicherheit, daß sich nichts mehr verändern wird, allenfalls kompatibel erweitert.

    [
    | Versenden | Drucken ]
    • 0
      Von DarkVision am So, 12. November 2006 um 21:47 #
      Ich bezog mich damit auf die Aussage das die API schon seit Jahren erprobt und stabil sei... Seit 0.60 wurde so einiges geändert. Musste ich gerade erst wieder feststellen als ich avahi neu kompilliert hab. Dort gab es einen check auf DBus>=60 der mit der 1er Version auch nicht mehr funktionierte. Die API mag erprobt sein, aber keinesfalls seit Jahren stabil. Allerhöchstens seit 0.62++ und die Version stammt vom Juni diesen Jahres.

      DV

      [
      | Versenden | Drucken ]
      • 0
        Von DarkVision am So, 12. November 2006 um 22:11 #
        P.S.
        Trotz diversen Problemen mit API und Bindings ist DBus eine gute Sache und ich bin mir sicher mit der 1er wird alles besser (aber das hofft man ja immer ;-) ). Nachdem auch KDE4 komplett auf DBus setzt kann es so falsch nicht sein.

        DV

        [
        | Versenden | Drucken ]
        0
        Von fuffy am Mo, 13. November 2006 um 21:33 #
        Lies den Text noch einmal. Das "seit Jahren" bezieht sich nicht auf die Stabilität, sondern nur auf die Erprobung.
        [
        | Versenden | Drucken ]
0
Von hexa am So, 12. November 2006 um 09:00 #
Kann es sein, dass d-bus das system sehr langsam macht?
Mir kommt es jedenfalls so vor.

mfg bert

[
| Versenden | Drucken ]
  • 0
    Von DarkVision am So, 12. November 2006 um 09:52 #
    Hast Du überhaupt Anwendungen am laufen die DBus einsetzten? Wenn nein, warum sollte das System langsamer werden? Wenn ja, Gnome? Da hilft auch alles meckern nichts, Gnome 2.16+ benötigt DBus genauso wie auch KDE4. Ohne Beweise nur ein Trollposting...

    DV

    [
    | Versenden | Drucken ]
    0
    Von Hoek am So, 12. November 2006 um 18:23 #
    Nein, kann nicht sein.
    [
    | Versenden | Drucken ]
0
Von arg am So, 12. November 2006 um 09:10 #
...das sie jetzt wieder ein square-wheel erfunden haben, das 9P Protokoll gibt's schon seit 15 Jahren...
[
| Versenden | Drucken ]
  • 0
    Von LL am So, 12. November 2006 um 12:19 #
    Wikipedia bemüht!?
    [
    | Versenden | Drucken ]
    0
    Von Dummi am So, 12. November 2006 um 16:31 #
    Ja echt dumm. Auch Windows war ein square-wheel denn Apple hatte ja mit system 6 bereits ein grafisches Betriebssystem erfunden. Deshalb ist Apple jetzt auch Marktführer und hält über 30% von MS, während Bill kurz vor der Pleite steht.
    Wenn gtk einen message-bus hat und KDE dann ist es natürlich sinnlos einen message-bus zu entwickeln der qt- und glib-bindings für beide bereit stellt. Besser wäre es natürlich weiterhin zwei völlig getrennte systeme zu nutzen die völlig inkompatibel sind.
    [
    | Versenden | Drucken ]
    • 0
      Von KL am So, 12. November 2006 um 17:11 #
      Apple hat 30% von MS? Woher hast du die Info her?
      Ich glaube, dass ist eher umgekehrt.
      Ausserdem halte ich ein System für verschiedene Bindings geeigneter als Inkompatibilität.
      [
      | Versenden | Drucken ]
      • 0
        Von Kevin Krammer am So, 12. November 2006 um 18:01 #
        Genau das hat er gemeint :)
        [
        | Versenden | Drucken ]
        0
        Von Hoek am So, 12. November 2006 um 18:26 #
        emerge irony-detector -pv

        These are the packages that would be merged, in order:
        Calculating dependencies... done!

        [ebuild U ] app-accessibility/irony-detector-1.0 [0.9.22] USE="sarcasm cynicism irony heuristics -troll"

        [
        | Versenden | Drucken ]
        0
        Von Kai F. Lahmann am So, 12. November 2006 um 23:30 #
        zu der Zeit, als Apple fast pleite war, hielt afaik Bill Gates persönlich einen Teil der Aktien. Über ihn wird ja auch gesagt, dass er selbst einen Mac benutzt ;).
        [
        | Versenden | Drucken ]
    0
    Von TBO am So, 12. November 2006 um 16:49 #
    Dir ist schon bewusst, dass sich Anforderungen an Protokolle und APIs innerhalb von 15 Jahren gerne mal ändern, auch wenn die Grundidee vielleicht diesselbe ist? Bei 9P scheint es auch eher um Dateitransfer zu gehen (und alles was man bequem darauf abbilden kann) und nicht um Methodenaufrufe.
    [
    | Versenden | Drucken ]
    0
    Von Christophorus am So, 12. November 2006 um 17:28 #
    Ein Square-wheel? Wenn ich mich jetzt über diesen peinlichen Anglismus aufrege, werde ich sicher ganz schnell in die nationalistische Ecke gestellt... Nebenbei bemerkt: "Plan 9 Filesystem Protocol" (Zitat aus Wikipedia). Ich glaube, da hast du den Wikipedia-Artikel etwas missinterpretiert bzw. diesem Protokoll mehr Fähigkeiten zugesprochen, als es anscheinend hat.
    [
    | Versenden | Drucken ]
    • 0
      Von Wer lesen kann... am Mo, 13. November 2006 um 12:06 #
      The file is a central metaphor of Plan 9, and many things are represented as files, including windows, network connections, processes, and almost anything else available in the operating system.
      [
      | Versenden | Drucken ]
      • 0
        Von thomas001 am Mo, 13. November 2006 um 14:40 #
        ja mit 9p kann man prima querien was es so gibt und die infos aehnlich sysfs organisieren,aber wie wird man von aenderungen benachichtigt? staendig pollen?
        [
        | Versenden | Drucken ]
        • 0
          Von Enrico Weigelt, metux IT servi am Mo, 31. August 2009 um 12:41 #
          Nein, indem man einfach den Stream ausliest (TRead) abschickt. Eine Antwort kommt erst dann zurück, wenn wirklich Daten zum Lesen da sind. So trivial kann das Leben sein ;-o

          Komplexe RPCs braucht man idR. nur, wenn man auf der Ideologie festhängt, daß Datenzugriffe immer über procedures/methoden laufen müßten ;-o

          [
          | Versenden | Drucken ]
0
Von Felix am Mo, 13. November 2006 um 12:29 #
Also ich arbeite täglich mit XML und bin auch überzeugt von den Fähigkeiten des Format und vielem was dran hängt. Aber als Konfiguration für einen Daemon in Unix, da sehe ich keinen Vorteil. Immerhin wird hier noch stark mit der Konsole gearbeitet, auch wenn es nicht immer sein müsste. Und XML auf der Konsole macht einfach keinen Spass.

Ist die Konfiguration denn so umfassend das es nötig ist einen Haufen ASCII Müll zu produzieren nur um klar zu machen das sich z.B. die Angabe auf den Bereich Netzwerk bezieht ? Da langt doch auch folgendes:
# Networking
# listen 0.0.0.0
# listen port xxx

Statt:

<networking>
<listen>
<address>0.0.0.0</address>
<port>xxx</port>
</listen>
</networking>

Den einzigen Vorteil den ich sehe wäre eine Validierung und das editieren mit Autovervollständigung via Schema. Aber ist es das wert ? Eine andere Sache wäre es wenn man verschiedene Provider/Dienste konfigurieren kann, wenn die Konfiguration es vorsieht das vieles rausgelassen oder reingenommen werden kann macht es wieder Sinn (wie z.B. bei JBoss).


Grüße
Felix, der dem Thema XML als Konfiguration unter Unix noch etwas unentschlossen gegenüber steht.

[
| Versenden | Drucken ]
  • 0
    Von o13 am Mo, 13. November 2006 um 12:46 #
    100% Ack.

    XML ist eine technik/ein format. Nicht mehr nicht weniger.
    Es hat wie viele andere dinge vor- und nachteile. Es ist mir
    keine technologie bekannt, bei der man immer nur gewinnt.

    Dein bespiel ist gut gewaehlt, denn bis auf die validierung
    der syntax bietet XML hier keinen einzigen vorteil. Einen
    scanner/parser fuer eine so simple grammatik zu schreiben
    ist ebenfalls sehr leicht und ich spare mir das hinzulinken
    einer fetten XML lib, die auch noch vieles mitbringt was ich
    nicht brauche (encodings zB).

    Der Omega13.

    [
    | Versenden | Drucken ]
    • 0
      Von dark_star am Di, 14. November 2006 um 10:18 #
      > Einen
      > scanner/parser fuer eine so simple grammatik zu schreiben...

      Ja, uns jedesmal neu für jedes poplige Programm - genialer Lösungsansatz. Was krallt ihr euch immer an den paar Zeichen mehr fest? Ein systemübergreifender XML-basierter Ansatz mit API, usw. ist doch nix schlechtes, Stichwirt elektra.

      [
      | Versenden | Drucken ]
    0
    Von Kevin Krammer am Mo, 13. November 2006 um 13:10 #
    Das hängt einfach von den Inhalten der Konfiguration hab.

    Zur Bus Konfiguration gehören auch Policies, also wer mit wem kommunizieren darf, welche Art von Kommunikation, usw.

    Ließe sich vermutlich zwar auch auf ein flaches Format abbilden, verliert dann aber leicht die Zusammengehörigkeit.

    [
    | Versenden | Drucken ]
    • 0
      Von Felix am Mo, 13. November 2006 um 15:13 #
      Das wäre wirklich ein Grund. Wenn man z.B. verschiedene Policies definiert und diese dann wonders über eine ID einbindet. Da bietet sich dann auch die Möglichkeit Parameter zu übergeben, die Policy zu erweitern oder sie beim parsen aus dem Kontext heraus zu interpretieren.


      Grüße
      Felix

      [
      | Versenden | Drucken ]
    0
    Von thomas001 am Mo, 13. November 2006 um 15:02 #
    naja das kann man auch so schreiben:

    weiterhin ist es auch fuer command line leute toll,da man z.b. das da tun kann:
    xmlstarlet sel -t -v '/networking/@port' config.xml
    statt einem grep bei dem man nicht nur ueber die struktur sondern auch ueber die syntax nachdenken muss!

    und eine kleine xml parser lib ist nun auch nicht soo gross selbst glib kann ein xml subset parsen oder halt tinyxml.

    [
    | Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung