Service Discovery
Finding services
Device discovery
Service discovery
Service selection
Device discovery
Manners of locating physical devices we intend to communicate with?
Device discovery finds physical devices, service discovery finds Apps
Service discovery
Service discovery ...
Operational modes
2 SD operational modes
Discovery of services on demand
Word processor needs to use a printer
Digital camera requires more light
John wants to find multi-player games
Service browsing
General service discovery architecture
General service discovery operation
Setup
Service is started
Service contacts catalog informing it is available (register)
Service discovery
Client finds catalog
Client sends request
Catalog responds with the service location & necessary parameters or a list of services
Client contacts the service with the gained parameters
Service discovery protocols
SLP
SLP on the run
Service URL
Naming convention in SLP
Service
URL service: service type : site url path
Service URL E.g.
Service types in SLP
Is used to match the requests and the services
Abstract service type defines the basic type
Subclasses are used to refine the abstract type to concrete type
Service template defines the format how the access to this type of service is transmitted
For each service type there a service template that defines how to interpret the rest of the message
Service templates
template-url-syntax = url path
url path=";ports=" list of ports
list of ports = port /port "," list of ports
port = 1*DIGIT
* if no url path is not used then
template-url-syntax = url path= ;
writeable= boolean X
#whether the disk service is readonly or not
maxlinelenght=integer 80
#what is the maximum size per line of text to be stored
Example template
template-type = printer:raw-tcp
template-version = 1.0
template-description =
The printer:raw-tcp: URL describes a transparent bidirectional communication channel for printing. Print data, status, messages,
etc is written or read by opening a TCP connection to the port in the service URL. How data is formatted and sent across the
connection is decided by the printing client and the printer service and is not defined by this template.
template-url-syntax=
url-path = ippurl / lprurl / raw-tcp-url
; This template adds 'raw-tcp-url' to the url-path
; definition in the 'printer' service template.
; 'ippurl' and 'lprurl' as defined in the 'printer'
; service template.
raw-tcp-url = "raw-tcp://" hostport
; raw-tcp URLs don't have a path section.
hostport = host ":" port
; raw-tcp doesn't have a well-known port assigned by
; IANA. The port must therefor be specified in all
; raw-tcp URLs.
; 'host' and 'port' is as defined in the 'printer'
; service template.
ieee-1284-device-id = STRING L O
Bluetooth SDP
Search services on Bluetooth communication area
List of services offered by devices are stored in service records
Services catergorised in classes
Describes the broader category general e.g. printer, color printer, …
Uniqely identified by 128-bit UUID
Service may be member of multiple classes
Profiles have their own classes
Service attributes define service characteristics
General discovery process
Service attributes
Other attributes