RFID Application Development with PowerBuilder and .NET Matthew Teskey Product Manager, iAnywhere

RFID Application Development
with PowerBuilder and .NET
Matthew Teskey
Product Manager, iAnywhere
Agenda
 RFID Anywhere recap
 Tasks in RFID application development
 Development options with RFID Anywhere
 Distributing business logic effectively
 Code sample walkthroughs
 Become an RFID Anywhere Insider
RFID Anywhere overview
 Handles data movement from readers to enterprise
systems while adding business value
 Allows developers to focus on creating business logic
and value by abstracting low-level hardware, standards
and protocols
 Rich management and distributed architecture
 Provides flexible development options and tools to
make developers and integrators successful
For a detailed RFID industry and RFID Anywhere
product overview, see the slides from earlier course
MOB356 - RFID 101 and Solution Overview
RFID Anywhere architecture
Tasks in RFID application development
 What does it mean to build an RFID application?
 Hardware integration
 Decoding raw data
 Edge processing
 Business context mapping
 Integrating with the enterprise
Hardware integration
 Collecting raw data from wide range of hardware
• RFID, barcode, mobile devices, sensors, PLCs, etc.
 Controlling hardware
• Intelligent RFID solutions will control when RFID readers
‘read’ based on sensor and GPIO data
• Indicate system status using message boards, light stacks
• Print and verify RFID labels and tags
Decoding raw data
HEX representation from reader 30700048440663802E185523
Binary 0011000001110000000000000100100001000100000001100110010000000000000101110000110000101010100100011
URI representation after decoding urn:epc:tag:sgtin-96:3.0037000.06542.773346595
Filter
Company Prefix
Item Reference
Unique Serial Number
3
0037000
06542
773346595
Procter & Gamble
Bounty ® Paper
Towels 15 Pack
Unique serial number for
item
Shipping
Unit
Edge processing
 You often hear about massive amounts of RFID data being
generated by a system, and the concerns of data overload
• However, only a small amount of this data is actually valuable
 Smoothing
• The ability to ignore temporary data inconsistencies to avoid
generating meaningless events to business logic
– i.e.: if a tag seemingly disappears during a 5 second span, but then
gets read again, was it ever really gone?
 Filtering
• The ability to not report on tags that match a specific criteria
– i.e.: certain application cares about tags on pallets, not about tags on
cases or items
Mapping data to business context
 Mapping tag data to actual asset
• Business logic and enterprise applications don’t want to
worry about HOW the data is stored, just WHAT the data
represents
• Need to expose business-level fields to business logic
 Facilitating process automation
• Proximity sensor event at Door1 connector implies that there
are assets at Door 1 to read, so turn on readers
 Add business-level relationships and semantics to data
• i.e.: Report says that 50 case-level tags and 1 pallet-level
tag were seen between 1:00 and 1:05 at the dock door 
implies that 50 cases were on the same pallet
Enterprise integration
 Getting RFID and other event data into enterprise
systems for further action
• Additional processing, analyzing, persisting, reporting
 Variety of enterprise systems might be interested in
RFID data
• Implies possibly multiple integration points, data formats
 Not all data processing may make sense at hardware or
middleware layer
• Enterprise layer, including database, may be better able to
integrate with other systems to do field mapping,
aggregation, etc.
Developing applications with RFID Anywhere
 This section will focus on what and how you can
develop in RFID Anywhere
 But just as important is what you DON’T have to
develop yourself
Tasks in RFID application development
with RFID Anywhere
 Hardware integration
• RFID Anywhere does the low-level integration for you
 Decoding raw data
• RFID Anywhere provides a flexible architecture
 Edge processing
• RFID Anywhere provides broad development options
 Business context mapping
• RFID Anywhere exposes useful data
 Integrating with the enterprise
• RFID Anywhere and Sybase provide flexible integration
Hardware integration with RFID Anywhere
 Developers do not have to write
low-level hardware integration
code or work with hardware
vendor APIs
• RFID Anywhere abstracts this
layer through its
connector/controller architecture
Decode raw data with RFID Anywhere
 RFID Anywhere offers Data Protocol Processor (DPP) architecture
• Use from application, business module or Report Engine MP to
encode and decode raw RFID tag data
• Enables flexible tag and protocol selection
• Enables flexible data format, including encryption
 Developers can write custom DPPs
 3 components to a DPP
• Schema
– Defines the data fields that represent business context of data
• Decode method
– Takes raw tag data and converts to data set according to encoding
• Encode method
– Takes data set and converts to encoded data that can be written to tag
Edge processing with RFID Anywhere
 Business Modules
• Use included Visual Studio extension to create custom logic
• Handle hardware events with the power of .NET
• Easily interact with other applications, libraries or data sources
 Application Level Events (ALE)
• Generate XML reports on tag activity for EPC tags
 Report Engine MP
• Generate XML reports on tag activity for EPC, ISO and custom
tags
Business modules overview
 Focus on creating business logic
• Wizards provide shell code and framework
• Logic runs inside RFID Anywhere engine
• Simple interaction with other RFID Anywhere components,
libraries, applications, etc.
• Libraries to help with common tasks
 Business logic runs at the edge
•
•
•
•
Add value to raw data from hardware
Send important, processed information to enterprise
Orchestrate devices at the edge
Expose methods as Web Services
Knowledge state transitions
RFID tag events
 During successive reads, tags move from state to state (knowledge
state change is the ‘event’)
• Each state change generates an event in RFID Anywhere
– i.e. New > Observed generates TagEventType.Observed event
• Triggers the OnRnEvent method of the business module
• Developers check for the type of event, then details of the event
– New or observed, which reader/antenna it came from, tag ID, etc.
 RFID Anywhere’s smoothing engine enables these events
• Developers configure timeouts and thresholds on each connector
for when these events should occur
• i.e.: if a tag is not read for 30 seconds, consider it lost, and
generate a TagEventType.Lost event for the tag
Business modules handle events from controllers
 Business modules have high level
OnRnEvent( RnEventArgs[ ] args) method that gets called
automatically for any hardware event
 Developer iterates through event arguments, checking for:
• Specific types of events
– RfidMPEventArgs, GPIOEventArgs, BarcodeEventArgs,
ProximityEventArgs, PlcEventArgs
• Values of event object properties
– RfidMPEventArgs.TagID, ProximityEventArgs.Status
 Then act on the event
• For example, if ProximityEventArgs.Status is TRUE, then
instruct an RFID reader to begin reading
Business module example
Decode RFID tag and send processed output to enterprise application
public void OnRnEvent( RnEventArgs[] args)
{
// Iterate through available events
foreach( RnEventArgs arg in args )
{
if( arg is RfidMPEventArgs )
{
RfidMPEventArgs rfidEvent = ( RfidMPEventArgs )arg;
if( rfidEvent.EventType == TagEventType.Observed )
{
// Handle observed tag
tag = DecodeTag(rfidEvent.Tag);
xmlout =
CreateXML(“TagObserved”,tag.decodedTagID,
tag.Company,tag.SKU,tag.Source);
mSubscribers.FireXML(xmlout);
}
else if( rfidEvents.EventType == TagEventType.Lost)
{
// Handle lost tag
. . .
Business module example output
 Output of business module is custom XML sent over configured
messaging connectors
 Receiving application processes output when it arrives
<?xml version="1.0" encoding="utf-16"
standalone="yes"?>
<TagObserved>
<ID>1.9.22.3</ID>
<Company>MobilityFirst</Company>
<SKU>Pedlar Light Workout Exerciser</SKU>
<Source>MyReader\Antenna1</Source>
</TagObserved>
Business module example 2
Using a proximity sensor to control when an RFID reader should look for
tags to reduce power consumption and interference
public void OnRnEvent( RnEventArgs[] args)
{
// Iterate through available events
foreach( RnEventArgs arg in args )
{
// Identify ProximitySensor events
if( arg is ProximityEventArgs )
{
// Typecast the generic event to a ProximitySensor event
ProximityEventArgs proximityEvent = ( ProximityEventArgs )arg;
if( proximityEvent.Status )
{
// Proximity sensor was triggered, so write code here
// to instruct reader to read for 1 minute
}
}
else
{
// Handle other events here
. . .
. . .
Application Level Events (ALE)
 Provides a standards-based method for applications to
request and receive EPC tag data
 Filter and consolidate data from multiple sources
 Exposes data in the form of periodic, XML-based ‘event
cycle reports’ or ALE reports
• An event cycle is a configurable series of h/w read cycles
• Reports summarize tag activity during the event cycle
• Application that receives report processes report and adds
business context
 Reports and event cycles are configurable
• Filtering, grouping, tags to report (current, added, deleted)
 RFID Anywhere has full support for ALE
• No development required at RFID Anywhere layer; develop
application to receive and process report
Sample ALE event cycle report
<?xml version="1.0" encoding="utf-8"?>
<ECReports xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="1"
creationDate="2005-09-22T09:07:08.0000000-04:00"
specName="InvTracSource1ALE" date="2006-07-11T14:38:02.1144806-04:00"
ALEID="235f30b2-aedc-40dd-bd9e-c2f00bd4873a" totalMilliseconds="5007"
terminationCondition="DURATION" xmlns="urn:epcglobal:ale:xsd:1">
<reports xmlns="">
<report reportName="Source1Deletions">
<group>
<groupList>
<member>
<tag>urn:epc:tag:sgtin-96:1.000009.0000022.3</tag>
</member>
</groupList>
<groupCount>
<count>1</count>
</groupCount>
</group>
Report Engine MP
 An alternative for ALE
• Outputs ALE-style XML reports
• Enterprise application receives and processes reports
• Declarative model for report properties
 Some significant improvements
• Multiprotocol support to collect data from different protocols
– Combine data from ISO and EPC tags into one report
– Can use multiple DPPs to create a report using data from multiple protocols
• Scheduling support
– “Send me this report every day at 5:00pm except on weekends.”
• Use SQL statements to build report
– Create filtering and grouping sets using SQL instead of URI pattern matching
• Data fields extracted and identified in report
– Simplifies XML report processing
Sample multiprotocol report
<xrnet:group name="Group1">
<xrnet:groupDef>
<xrnet:query>select * from sgtin96 where
CompanyPrefix=1</xrnet:query>
<xrnet:groupCount>10</xrnet:groupCount>
<xrnet:groupList>
<xrnet:member id="303800004000008000000005“
Uri="urn:epc:tag:sgtin-96:1.000001.0000002.5“ Filter="1“
CompanyPrefix="1“ ItemReference="2“ SerialNumber="5"
Partition="SIX" Encoding="sgtin96" />
<xrnet:member id="303800004000008000000006“
Uri="urn:epc:tg:sgtin-96:1.000001.0000002.6“ Filter="1"
CompanyPrefix="1“ ItemReference="2“ SerialNumber="6"
Partition="SIX" Encoding="sgtin96" />
<xrnet:member id="303800004000020000000001“
Uri="urn:epc:tag:sgtin-96:1.000001.0000008.1“ Filter="1"
CompanyPrefix="1" ItemReference="8“ SerialNumber="1"
Partition="SIX" Encoding="sgtin96" />
…
Business context mapping with RFID Anywhere
 Discussions of various development options highlights
choices in where business logic can be executed
• Business modules
– Can do all of the data processing, mappings, and process
automation, then send properly-formatted output to enterprise
application for display or persistence
– Or, could send data that needs further processing
• ALE and Report Engine MP
– Send reports that need to be consumed by another process or
application to derive business context
Integrating with the enterprise
 RFID Anywhere offers out-of-the-box integration connectors to
send output to enterprise systems
• MSMQ, QAnywhere, SMTP, SOAP, UDP, TCP, file creation
• Flexible architecture allows custom connectors to be created for
integrating with proprietary or legacy systems
• Developers don’t have to write low-level communication code to
send output from RFID Anywhere
• Send to multiple locations without writing additional code
 Easily expose secure Web Services
• Business module methods, ALE, controllers
 Sybase’s end to end RFID offering, RFID Enterprise, provides
integration to existing business applications
• Database persistence, process modeling, reporting
Flexible development options
 Components you can develop in C#
•
•
•
•
DPPs
Custom business modules
Enterprise applications and processes
Helper classes
 Components you can develop in PowerBuilder
• Enterprise applications and processes
• Helper classes
 Components you can develop in Java, other .NET
languages, web technologies, etc.
• Enterprise applications and processes
Obtaining code samples
 For code samples, including those discussed in this
session, become an RFID Anywhere Insider
 Free access to technical resources to make your RFID
project a success
• Free version of RFID Anywhere Developer Edition
– Build and test with the simulator or with physical hardware
• Various documents on a wide range of topics
– Whitepapers, tutorials, Tech Tips, and more
• Newsgroups
– Interact with iAnywhere, or with other developers/integrators
Register now at
www.ianywhere.com/RFID
Summary
 RFID applications introduce a number of unique
challenges and concepts
 RFID Anywhere allows developers to focus on the
application-specific business logic and integration,
without getting lost in low level hardware and data
complexities
Learn more at
www.ianywhere.com/RFID
iAnywhere at TechWave 2006
 Tech Support at TechWave 2006
• Meet with technical experts from Sybase iAnywhere and TeamSybase
• Bring your technical questions and get answers on the spot!
• Located off the Exhibit Hall on the fourth floor, Palace Ballroom Foyer
 Ask the iAnywhere Experts
• Drop in during support hours to have your questions answered by experts!
• Appointments are available to speak one-on-one with Senior Engineers
• Located across from the Tech Support area
 TechWave-To-Go AvantGo Channel on your handheld device
• Download the TechWave AvantGo channel for up-to-date details on
sessions, events, maps and more
• www.ianywhere.com/techwavetogo
• Visit the AvantGo Kiosk on the 3rd floor
iAnywhere at TechWave 2006
 Reference Program
• Share your vision and innovation with your peers
• Come by the Information Desk at the Sybase booth to complete a
survey form -- all submissions will receive a gift!
 iAnywhere Developer Community
A one-stop source for technical information!
• Access to newsgroups, new betas and code samples
• Technical whitepapers, tips and online product documentation
• Excellent resources for commonly asked questions
• All available express bug fixes and patches
• Network with thousands of industry experts
http://www.ianywhere.com/developer