d-bus - national radio astronomy observatory · gambas, objective-c, and ada wednesday, june 19,...
TRANSCRIPT
![Page 1: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/1.jpg)
D-BusOpen-Source IPC
Wednesday, June 19, 13
![Page 2: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/2.jpg)
What Is It?
Multi-platform (Linux, OSX, Windows)Multi-language (Java, PHP, .NET, etc.)Small-footprintBus-basedStandard for IPC
Wednesday, June 19, 13
![Page 3: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/3.jpg)
Any Distinguishing Features?
Object Oriented - Methods and SignalsService DiscoveryIntrospectionBinary ProtocolSecureLarge Developer and User Base
Wednesday, June 19, 13
![Page 4: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/4.jpg)
Who Uses It?
All KDE users and Most GNOME usersPidgin, Skype and CUPS usersLinux HAL (Hardware Abstraction Layer)Any Linux System that Supports Hot Plugging Devices
Wednesday, June 19, 13
![Page 5: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/5.jpg)
Language Support?
Python, Qt, Java, Perl, C++, PHP, Pascal, .NET, Ruby, Scheme, Tcl, Squeak (smalltalk variant), Haskell, Ocaml, Gambas, Objective-C, and Ada
Wednesday, June 19, 13
![Page 6: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/6.jpg)
Architecture?
Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)
Processes Make Objects (services) Available (e.g. /casa/clean_server)
Objects Provide One or More Interfaces (e.g clean.multiscale)
Wednesday, June 19, 13
![Page 7: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/7.jpg)
Bindings We Care About (Python)
bus = dbus.SessionBus( )
obj = bus.get_object(‘edu.nrao.edu.clean’,’/casa/clean_server’)
proxy = dbus.Interface(obj,‘clean.multiscale’)
Wednesday, June 19, 13
![Page 8: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/8.jpg)
Bindings We Care About (Qt)
QDBusInterface proxy(‘edu.nrao.casa.clean’,’/casa/clean_server’,‘clean.multiscale’)
proxy.call(“method”, arg1, arg2, ...)
Wednesday, June 19, 13
![Page 9: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/9.jpg)
Bindings We Care About (C++ without Qt)
dbusxx-xml2cpp is used to generate abstract base classes (proxy and adaptor) from XML descriptionthe abstract base make it trivial to provide or access services on D-Bus
Wednesday, June 19, 13
![Page 10: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/10.jpg)
What about providing services (Python)
class Example(dbus.service.Object): def __init__(self, object_path): dbus.service.Object.__init__(self, bus, path)
@dbus.service.method(‘clean.multiscale’, ...) def methodname( self, ... ) <do-work-here>
Wednesday, June 19, 13
![Page 11: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/11.jpg)
What about providing services (Qt)
class adaptor : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO( “D-Bus Interface”, “edu.nrao.casa.clean_server”);
QDBusVariant method( ... );
Wednesday, June 19, 13
![Page 12: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/12.jpg)
Bindings We Care About (C++ without Qt)
dbusxx-xml2cpp is used to generate abstract base classes (proxy and adaptor) from XML descriptionthe abstract base make it trivial to provide or access services on D-Bus
Wednesday, June 19, 13
![Page 13: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/13.jpg)
Supported Types
byte double
boolean string
int16 uint16
int32 uint32
int64 uint64
structure
array
variant
map
object path
signature
unix fd
Wednesday, June 19, 13
![Page 14: D-Bus - National Radio Astronomy Observatory · Gambas, Objective-C, and Ada Wednesday, June 19, 13. Architecture? Processes Attach to Bus & Get Address (e.g. edu.nrao.casa.clean)](https://reader034.vdocuments.net/reader034/viewer/2022051802/5af960b97f8b9a44658da646/html5/thumbnails/14.jpg)
Sometimes Things Change
complete configuration via an xml filemultiple authentication methods supported, including “external”timeouts, limits, security policiesmultiple transport methods, including pipes and sockets
Wednesday, June 19, 13