RFID Provider Architecture
Radio frequency identification (RFID) device vendors must have a uniform way to provide their services to a host layer (Microsoft BizTalk RFID) that runs on the Windows operating system, because each device supports different command sets, protocols, and behavior.
The Device Service Provider Interface (DSPI) is an abstraction layer for the BizTalk RFID/service runtime to communicate with and manage RFID devices uniformly; that is, BizTalk RFID is the client for the providers and is responsible for creating instances of, communicating with, and managing the device providers. This layer provides for normalization across multiple communication protocols, support for legacy readers and other auto-ID devices in a uniform manner, and also provides a way to communicate key hardware innovations to the higher layers.
The DSPI defines the abstract classes (for handling discovery, configuration, communication, and device and connection management) that device vendors must implement to provide their services to BizTalk RFID on Windows in a uniform way. In other words, it acts as a middle layer between the RFID services layer and the hardware devices, as depicted in the following figure.
The providers run under the RFID Services Host as a managed entity, and could communicate with the device itself through the Microsoft .NET Framework, unmanaged code, a COM implementation, or Win32 APIs.
Device service providers are mostly categorized as one of the following:
Pure managed code implementation using one of the standard protocols. such as HTTP, TCP, or SERIAL.
Managed C# protocol implementation, but calling unmanaged code written in C or C++ (for example, USB Reader device, a proxy connecting to a different protocol handler process).
Managed code wrapper for a proprietary protocol implemented as a Windows device driver (for example, Pure Printer drivers).
The high-level features in the DSPI are as follows:
Command(s) – Response(s)
Defines the request messages from the host and their response messages from the provider, where the provider is responsible for collecting data from the device for constructing the expected response.
The host sends request messages by using an asynchronous method, and receives response messages by using a .NET Framework event.
- Defines the request messages from the host and their response messages from the provider, where the provider is responsible for collecting data from the device for constructing the expected response.
Notifications are an asynchronous set of .NET Framework events that are sent by the provider to the host on certain data or management conditions.
Properties abstract states of different attributes on the device. Device state fields can be exposed as properties by the provider apart from the standard properties exposed by DSPI.