Service discovery: should we use SLP?

Tomáš Smetana tsmetana at redhat.com
Fri Jun 21 15:00:47 UTC 2013


Hello,
  I have mentioned this several times before: I had been asked to provide
some example scripts that would "for every computer on the network... do
something".  It's not quite obvious how to actually find every WBEM-capable
device on the network.

There are several ways how to do that and it seems like SLP is being used
in combination with WBEM quite often. Maybe it is the right thing for us to
use for the OpenLMI discovery as well. The Pegasus CIMOM can register itself
in the local SLP server and then even advertises the registered profiles as
the service attributes. Here's the sample output from my testing machine for
the illustration:

[tsmetana at zaphod ~]$ slptool -u f-19-local findsrvs service:wbem
service:wbem:https://[fe80::5054:ff:feb6:b32]:5989,65025
service:wbem:https://192.168.122.12:5989,65025
[tsmetana at zaphod ~]$ slptool -u f-19-local findattrs service:wbem
(template-url-syntax=https://192.168.122.12:5989),(service-id=PG:192-168-122-12),(service-hi-name=Pegasus),(service-hi-description=Pegasus OpenPegasus Version 2.12.1 Development),(template-type=wbem),(template-version=1.0),(template-description=This template describes the attributes used for advertising Pegasus CIM Servers.),(InteropSchemaNamespace=root/PG_InterOp),(FunctionalProfilesSupported=Basic Read,Basic Write,Schema Manipulation,Instance Manipulation,Association Traversal,Query Execution,Qualifier Declaration,Indications),(MultipleOperationsSupported=FALSE),(AuthenticationMechanismsSupported=Basic),(AuthenticationMechanismDescriptions=Basic),(CommunicationMechanism=CIM-XML),(ProtocolVersion=1.0),(Namespace=root/PG_InterOp,root/PG_Internal,root/cimv2,root),(RegisteredProfilesSupported=SNIA:Server,DMTF:Profile Registration,SNIA:Server:Indication,SNIA:Profile Registration,SNIA:Server:Software,SNIA:SMI-S)

SLP would bring another dependency (the slpd daemon) but has some advantages:
the discovery queries are multicasted, Pegasus already supports this
out-of-the-box (we only need to start registering profiles properly) and it
looks to be quite simple.

While playing with the SLP tools in Fedora I have written Python bindings for
OpenSLP, so we should be able to integrate SLP support in the LMI shell:
https://github.com/tsmetana/pyslp
(We can "openlmify" the sources and integrate in our code eventually.)

Opinions?

Thanks and regards,
-- 
Tomáš Smetana
Platform Engineering, Red Hat


More information about the openlmi-devel mailing list