newtelligence poweredRSS 2.0
# Wednesday, February 20, 2008

Today was the first day of the training portion of BizTalk RFID solution days (see day 0, 1 and 2). The instructors are Mick Badran of Breeze Training, and Ram Venkatesh from S3 Edge (Ram was the software architect for BizTalk RFID and recently left Microsoft). The class is held on the Microsoft Campus in the Conference Center, Building #33. This is my first time at Microsoft and I'm impressed with the campus so far.

We started out with the obligatory introductions and moved right into the student manual to go over the agenda for the class. We will be designing a solution for a "parking garage" with enough features to get a good understanding of BizTalk RFID. Similar to other classes I have taken, we will be using virtual machines for the labs, and there are already completed solution files for each lab. We have been provided with a HF (13.56 Mhz) RFID reader from DLP Design to use in the labs and to take home with us.

Module 1 - Introduction to RFID and BizTalk RFID

This was an introduction to RFID, RFID technologies and BizTalk RFID. The first couple of slides were designed to make sure everyone had at least a basic understanding of RFID. I would wager that this was review for most people. The remaining slides went into an overview of BizTalk RFID.

RFID Tags:

  • Low (< 135 Khz) - Short range, more reliable for liquids and metals
  • High (13.56 MHz) - Short range, less expensive, reliable, slow bps
  • UHF (868 to 915MHz) - Good balance between range and performance and pretty cheap.
  • Microwave (2.45 GHz, 5.8 GHz) - Fast but expensive. Example is highway tolls.

Microsoft RFID Goals:

  • Encourage widespread RFID adoption
    • Standards
    • Best Practices Architecture
  • Build an RFID infrastructure
    • Event Processing
    • Device Abstraction and Management

Key Benefits of BizTalk RFID:

  • Abstraction of device handling
  • Rich RFID event processing model
  • Reduce data "noise" and increase data relevancy - Use the BRE to create filters, alerts and transformations
  • Robust framework to support agile processes

Additional Notes:

  • The DSPI has both an application and management contract interface.
  • Ram brought up the LLRP in response to a question about standards based protocols between hosts and RFID readers. I talked briefly about this in my Day 0 post. LLRP is a EPC standard, and I would expect to see more and more readers beginning to implement this. As such, it should be pretty easy to find a DSPI that will work with multiple readers. I know Impinj is using LLRP, or is planning to.

Module 2 - Installing BizTalk RFID Services

The student manual contains some basic slides on minimum requirements and installation stuff. Nothing really exciting there. The lab was very interesting and provided some great information. Instead of having you waste an hour installing BizTalk RFID, the VM comes pre-loaded with it already. The lab focuses on showing you where things are installed, command line tools, configuration, registry settings, etc.

  • Default install directory is %Program Files%\Microsoft BizTalk RFID\bin, I will refer to this as %App%.
  • It looks like everything you can do in the RFID Manager MMC, you can do from the command line RFIDClientConsole in %App%\Bin
    • We were shown how to export the server configuration to XML and and import from xml.
  • Server listens on port 7891
  • Notable stuff in %App%\Bin
    • clusrfid.vbs - Script that returns health of BizTalk RFID service
    • RfidServices.exe - Main application which run as a service
    • RfidTray.exe - Monitoring utility which runs in the SysTray
    • Web.Config - Mainly defines WCF configuration
  • Registry

Module 3 - Examining Physical Devices

This module was focused around an introduction to the DLP Design's RFID1 HF reader. We setup the USB redirector software which will enable us to connect to the USB based reader in our VM for all future labs. We were also supposed to write a .Net Application using the native drivers in order to illustrate how difficult it is to program devices. I decided to skip that example and move onto lab 4.

Module 4 - BizTalk RFID Device Providers

This was a pretty easy module where we went thru, registered a provider and established a connection to our DLP RFID1 device thru BizTalk RFID. A sample application was written to "register" a customer with a RFID tag for use in our parking garage solution. So far so good, so far so-so. I would have preferred writing the provider versus the .Net application.

An extra lab was provided in this module which showcases the "flexibility" of the provider model. The extra lab implements a file system provider, that is, it "reads tags" from the file system. Basically the tags are just files in side a directory tree. I don't remember the exact story told, but apparently a race team wanted to be able to capture sensor data from a race car. Looking at how the example is implemented, it's trying to force the solution in the BizTalk RFID domain (square peg into a round hole). Don't get me wrong, it's a cool implementation, but it just doesn't seem right.

Module 5 - Building BizTalk RFID Processes

Processes are respond to events raised by devices in an asynchronous manner. In the lab we created a process that dumped event data into a sql database. This is out of the box functionality and was pretty easy to configure and setup. Once that was done, we created a very simple report in reporting services.

Module 6 - Custom Event Handlers

One thing you would notice if you were completing module 5 yourself, is that while the storing of data to SQL is powerful, as implemented, it wasn't practical. You stored pretty much the same tag read data 100 times by just holding one of the test tags up to the reader for 1-2 seconds. This is were custom event handlers come in.

From the student manual, lab 6, custom event handlers can:

  • Filter duplicate events (terminate event processing)
  • Enrich events with custom data
  • Cleanse event data before further processing takes place
  • Integrate with downstream processes and services
    • Insert tag events into a database and/or call a downstream service.

All of the out of the box functionality in BizTalk RFID at the process level is implemented on top of the EventHanlder model. This model is fully exposed as indicated in this module, and is the supported way to add additional functionality. There are some samples in the SDK and a Code Plex project started by Microsoft with additional event handlers (MSMQ, File, etc). 

In this lab we created a custom event handler component, add the custom component to an existing BizTalk RFID process and finally explore the use of the Import Process feature. Again, the programming was pretty straight forward. Naturally the incorporation of DAL code in my component brought a frown to my face. While I understand this is just a simple lab, since the DAL code was already written for us, adding it as a separate assembly to promote n-tier design would have been welcome.

I finished up the lab with my tag read events getting queued into a Message Queue after getting enriched (matching tag Id to customer information in our customer DB). Now I'm sure we'll get to this at some point, but I wanted to go a step further so I implemented a simple CBR scheme in BizTalk to dump the data to a file location.

Miscellaneous Notes

  • BizTalk RFID server uses MSMQ for "routing" events to processes
  • What is ALE - Application Level Events, part of the EPIC standard? A way to publish and subscribe events. Doesn't sound like there is ALE support out of the box, you would have to roll your own.
  • Using a piece of 3rd party software called USB Redirector to bridge the USB based reader plugged into the physical host to the VM.
  • Review functionality of BizTalk branch edition. It's only $1800 retail down from $8500 retail.
  • There is a device simulator in the full SDK of BizTalk RFID.
  • Computer Specs used in the class:
    • Dell Optiplex 745 (Vista Experience rating of 4.5)
    • Intel Core 2 - T6600 @ 2.4 Ghz
    • 3 GB of RAM
    • ATI X1650
Wednesday, February 20, 2008 5:32:34 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
BizTalk
Comments are closed.
Archive
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Copyright 2010
Adam Salvo
Sign In
Statistics
Total Posts: 234
This Year: 13
This Month: 1
This Week: 0
Comments: 34
Themes
Pick a theme:
All Content 2010, Adam Salvo
DasBlog theme 'Business' created by Christoph De Baene (delarou)