This topic describes RFID Device Definition Version 1.0 for Web Services on Devices.
This specification along with any other service types specified in the future for RFID devices, defines a “profile” for RFID devices. A “profile” layers on top of [DEVICE] and addresses functionality specific to a type of devices. Similar such profiles exist for printers, scanners and other devices.
This device type describes a device that supports any RFID-related services.
Device Class
This device template describes a device that supports one or more [DEVICE] based RFID services. A device that is compliant with this template is identified with the following target namespace: http://schemas.xmlsoap.org/ws/2008/rdmp. The Device Type is defined as: RfidDeviceType.
Terminology
This section defines terms that are used throughout this specification. These terms are always capitalized to indicate that they have the meaning defined in this section.
Conformance terminology
The following terms have special meaning relating to conformance, and so are always indicated in all capital letters:
- MUST - This word, or the term "REQUIRED", means that the definition is an absolute requirement of the specification.
- MUST NOT - This phrase means that the definition is an absolute prohibition of the specification.
- SHOULD - This word, or the adjective "RECOMMENDED", means that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.
- SHOULD NOT - This phrase, or the phrase "NOT RECOMMENDED" means that there may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label.
- MAY - This word, or the adjective "OPTIONAL", means that an item is truly optional. One vendor may choose to include the item because a particular marketplace requires it or because the vendor feels that it enhances the product, while another vendor may omit the same item. An implementation that does not include a particular option MUST be prepared to interoperate with another implementation that does include the option, though perhaps with reduced functionality. An implementation that does include a particular option MUST be prepared to interoperate with another implementation that does not include the option.
Other terminology
This document uses the terminology defined in the Devices Profile for Web Services [DEVICE], such as: operation, device description, and argument.
Notation: use of quotation marks
Throughout this document, single quotes (‘) are used around literal string and integer values in running text, but not in tables. The single quotes are not part of the values. Double quotes (“) are used around words in running text to indicate special English meanings. Element names and argument names are italicized, and operation names are in bold type.
References
This section lists the references that this document refers to and the tag inside square brackets that is used for each such reference:
- [DEVICE] – J. Schlimmer, et all, “Devices Profile for Web Services”, February 2006. (See http://go.microsoft.com/fwlink/?LinkId=120348.)
- [ADDRESS] - D. Box, et al, "Web Services Addressing (WS-Addressing)," August 2004. (See http://go.microsoft.com/fwlink/?LinkId=120349.)
- [DISCOVERY] - J. Beatty, et al, "Web Services Dynamic Discovery (WS-Discovery)," April 2005. (See http://go.microsoft.com/fwlink/?LinkId=120350.)
- [URI] - T. Berners-Lee, et al, "Uniform Resource Identifiers (URI): Generic Syntax," January 2005. (See http://go.microsoft.com/fwlink/?LinkID=120351.)
The XML Namespace URI that MUST be used by implementations of this specification is: http://schemas.xmlsoap.org/ws/2008/rdmp.
Prefix | XML Namespace | Specification(s) |
rdmp | http://schemas.xmlsoap.org/ws/2008/rdmp | This specification |
wsdisco | http://schemas.xmlsoap.org/ws/2005/04/discovery | [DISCOVERY] |
wsa | http://shemas.xmlsoap.org/ws/2004/08/addressing | [ADDRESS] |
wsdp | http://schemas.xmlsoap.org/ws/2006/02/devprof | [DEVICE] |
Searching for local devices takes advantage of the Multicast capabilities of [DISCOVERY].
[DISCOVERY] supports both SOAP 1.1 and SOAP 1.2 envelopes. RDMP mandates that SOAP 1.2 Envelopes MUST only be used. Since there are no legacy RFID devices that use WS-Discovery, for interoperability and for implementations to deal with fewer protocols, it is mandated that only SOAP 1.2 be used.
Local Subnet Discovery Support
To advertise itself a device includes one or more RFID Device porttypes as explained below in the disco:Types element of the wsdisco:Hello and wsdisco:ProbeMatches elements of Hello and ProbeMatch messages respectively. The porttype is defined in the same namespace as the WSD RFID Device.
WSD RFID device porttypes
The Device Type is defined as: “RfidDeviceType”.
- All RFID devices must advertise the RfidDeviceType type, regardless of whether they support DPWS or any proprietary protocols or legacy protocols.
- All RFID devices that support DPWS metadata must also advertise the dpws:Device type.
- All RFID devices that support a proprietary protocol MAY advertise a proprietary type (e.g., contoso:UHF). The proprietary type MUST be an empty WebService portType. Each such portType SHOULD have an associated URL scheme. Ex: contoso.tcp://192.168.0.1.
DeviceId
As specified by [DISCOVERY] as part of the discovery process, a device presents an EndPointReference. This specification further restricts this EndPointReference to have only a stable identifier. We refer to the stable identifier as a “DeviceId”. [DISCOVERY] recommends that the DeviceId be a “urn:uuid:” scheme URI.
1.1.1.Transport Addresses
For devices that host legacy services but do not use DPWS metadata, their [WS-Discovery] types MUST include the empty WebService portTypes. One or more URL schemes maybe associated with each empty WebService portType. The URL scheme used to advertise each location is one of the URL schemes that is associated with the empty WebService portType.
For devices that host legacy services and use DPWS metadata, use the same types/Address mechanism as in the previous point, but also generate a UUID and ServiceID for each legacy service.
Device Hello example
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wsdisco="http://schemas.xmlsoap.org/ws/2005/04/discovery"
xmlns:wsdp=”http://schemas.xmlsoap.org/ws/2006/02/devprof”
xmlns:rdmp=" http://schemas.xmlsoap.org/ws/2008/rdmp ">
<soap:Header>
<wsa:MessageID>urn:uuid:ac8523ee-6813-498c-8c1b-6272a22353f7</wsa:MessageID>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2005/04/discovery/Hello
</wsa:Action>
<wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:To>
<wsdisco:AppSequence InstanceId="3094203799" MessageNumber="1" />
</soap:Header>
<soap:Body>
<wsdisco:Hello>
<wsa:EndpointReference>
<wsa:Address>urn:uuid:D10000D1-ca45-5fee-a376-112233445555</wsa:Address>
</wsa:EndpointReference>
<wsdisco:Types>wsdp:Device rdmp:RfidDeviceType </wsdisco:Types>
<wsdisco:XAddrs>http://IPAddress:80/TestDevice</wsdisco:XAddrs>
<wsdisco:MetadataVersion>1</wsdisco:MetadataVersion>
</wsdisco:Hello>
</soap:Body>
</soap:Envelope>
Device ProbeMatches example
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wsdisco="http://schemas.xmlsoap.org/ws/2005/04/discovery"
xmlns:wsdp=”http://schemas.xmlsoap.org/ws/2006/02/devprof”
xmlns:rdmp=" http://schemas.xmlsoap.org/ws/2008/rdmp ">
<soap:Header>
<wsa:MessageID>urn:uuid:147823ee-83f7-498c-8c1b-6272a22353f7</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:0a6dc791-2be6-4991-9af1-454778a1917a</wsa:RelatesTo>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2005/04/discovery/ProbeMatches
</wsa:Action>
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
<wsdisco:AppSequence InstanceId="3094203799" MessageNumber="2" />
</soap:Header>
<soap:Body>
<wsdisco:ProbeMatches>
<wsdisco:ProbeMatch>
<wsa:EndpointReference>
<wsa:Address>urn:uuid:D10000D1-ca45-5fee-a376-112233445555</wsa:Address>
</wsa:EndpointReference>
<wsdisco:Types>wsdp:Device rdmp:RfidDeviceType</wsdisco:Types>
<wsdisco:XAddrs>http://IPAddress:80/TestDevice</wsdisco:XAddrs>
<wsdisco:MetadataVersion>1</wsdisco:MetadataVersion>
</wsdisco:ProbeMatch>
</wsdisco:ProbeMatches>
</soap:Body>
</soap:Envelope>