Diferencia entre revisiones de «D-BUS»
| Línea 34: | Línea 34: | ||
*Bibliotecas adaptadas (wrappers en inglés) para su uso en [[frameworks]] concretos. | *Bibliotecas adaptadas (wrappers en inglés) para su uso en [[frameworks]] concretos. | ||
| + | == Puntos principales de un D-Bus == | ||
| − | |||
*Comunicación entre aplicaciones de escritorio en la misma sesión, facilitando la integración de aplicaciones dentro de un mismo entorno de escritorio y el tratamiento de asuntos relativos al ciclo de vida de procesos. | *Comunicación entre aplicaciones de escritorio en la misma sesión, facilitando la integración de aplicaciones dentro de un mismo entorno de escritorio y el tratamiento de asuntos relativos al ciclo de vida de procesos. | ||
*Comunicación entre el sistema operativo y la sesión de escritorio, incluyendo dentro del sistema operativo al núcleo y algunos demonios o procesos. | *Comunicación entre el sistema operativo y la sesión de escritorio, incluyendo dentro del sistema operativo al núcleo y algunos demonios o procesos. | ||
| + | == Funcionamiento de D-Bus == | ||
| − | |||
Toda aplicación que utilice '''D-Bus''' contiene objetos, normalmente definidos (aunque no es necesario) como [[GObject]], [[QObject]], objetos [[C++]] u objetos [[Python]]. Cuando se recibe un mensaje a través de una conexión '''D-Bus''', este se envía a un objeto específico, no globalmente a la aplicación. De esta forma, '''D-Bus''' se apoya en componentes software, y de cara al usuario parece como si un objeto fuera serializado a través de la conexión [[IPC]], sin importar si existe o no un objeto al otro lado de la comunicación. | Toda aplicación que utilice '''D-Bus''' contiene objetos, normalmente definidos (aunque no es necesario) como [[GObject]], [[QObject]], objetos [[C++]] u objetos [[Python]]. Cuando se recibe un mensaje a través de una conexión '''D-Bus''', este se envía a un objeto específico, no globalmente a la aplicación. De esta forma, '''D-Bus''' se apoya en componentes software, y de cara al usuario parece como si un objeto fuera serializado a través de la conexión [[IPC]], sin importar si existe o no un objeto al otro lado de la comunicación. | ||
| Línea 50: | Línea 50: | ||
== Fuentes== | == Fuentes== | ||
| − | *http://www.dbus.freedesktop.org | + | * [http://www.dbus.freedesktop.org] |
| − | *http://www.dbus.es | + | * [http://www.dbus.es] |
| − | *http://www.linux-magazine.es/issue/23/044-047_PythonLM23.crop.pdf | + | * [http://www.linux-magazine.es/issue/23/044-047_PythonLM23.crop.pdf] |
[[Category:Software]] | [[Category:Software]] | ||
Revisión del 19:09 11 oct 2013
| ||||||||||||
D-Bus. En informática, (Desktop Bus) es un sistema de comunicación entre procesos (IPC), para aplicaciones de software con el fin de comunicarse entre sí. D-Bus es desarrollado como parte del proyecto freedesktop.org.
Sumario
Arquitectura
D-Bus es un mecanismo de comunicación entre procesos (IPC) consistente en tres capas:
- Una biblioteca , libdbus, que permite a dos aplicaciones conectarse e intercambiar mensajes.
- Un demonio ejecutable que funciona como bus de mensajes, construido sobre libdbus, al cual pueden conectarse varias aplicaciones. El demonio puede encaminar mensajes desde una aplicación a ninguna o más aplicaciones.
- Bibliotecas adaptadas (wrappers en inglés) para su uso en frameworks concretos.
Puntos principales de un D-Bus
- Comunicación entre aplicaciones de escritorio en la misma sesión, facilitando la integración de aplicaciones dentro de un mismo entorno de escritorio y el tratamiento de asuntos relativos al ciclo de vida de procesos.
- Comunicación entre el sistema operativo y la sesión de escritorio, incluyendo dentro del sistema operativo al núcleo y algunos demonios o procesos.
Funcionamiento de D-Bus
Toda aplicación que utilice D-Bus contiene objetos, normalmente definidos (aunque no es necesario) como GObject, QObject, objetos C++ u objetos Python. Cuando se recibe un mensaje a través de una conexión D-Bus, este se envía a un objeto específico, no globalmente a la aplicación. De esta forma, D-Bus se apoya en componentes software, y de cara al usuario parece como si un objeto fuera serializado a través de la conexión IPC, sin importar si existe o no un objeto al otro lado de la comunicación.
Para permitir la especificación de destino a los mensajes, debe existir un medio para indicar esa referencia. En muchos lenguajes de programación, esto recibe el nombre de puntero o referencia. Sin embargo, estas referencias se implementan como direcciones de memoria relativas al espacio de direcciones de la aplicación, lo cual no puede intercambiarse de una aplicación a otra.
