NFC IN MOBILE COMMERCE and Information Ubiquity Use Cases, Technologies, APIs C. Enrique Ortiz January, 2008 C. Enrique Ortiz Email: [email protected]Phone: +1-512-635-4225 Skype: c.enrique.ortiz Website: http://www.CEnriqueOrtiz.com Weblog: http://weblog.CEnriqueOrtiz.com MobileMonday Austin: http://www.MobileMondayAustin.org
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Triggers and Use-cases•Background on NFC•NFC Code Example, and Pointers
Anything and Everything is Data
Everything in our wallets is just data; the paper and plastic that we use for our driving license and ID cards, our credit and debit cards, our receipts, coupons, tickets and even our business cards.
…and more importantly, anything that is data can be carried on a mobile phone.
*Adapted from Mike Elgan, ComputerWorld, The Raw Feed
Information UbiquityPhysical Interactions, Application Triggers, Physical Browsing
• Information everywhere• Addressable (and thus identifiable) information, or
workflows for that matter• Think physical interactions, application triggers and physical
browsing– A number to call, a URL, a short-code, barcodes, radio tags
• On books, magazines, posters, soda cans, billboards– For advertisement, for authentication, for control, for quick action,
access to information– Some interactions are more manual than others
• The Mobile Handset is at the center of this ubiquity
Information Ubiquity Examples of Physical Interactions and Application Triggers
Short Codes
Visual Tags
Radio TagsProximity : Ticketing, payments, other
Information UbiquityInteractive “Smart” Posters
Physical Interactions: Interactive Posters provide the perfect means for service initiation (application trigger). A poster, which could be a label, an advertisement or a plaque at the store aisle or a billboard, displays information of interest to consumers… :
…and how to interact with it.
Text “smart” to 2ezee
Photo credit: Philips Arena. At Philips Arena in Atlanta, Georgia, USA, ticket holders with NFC-enabled cellular phones make contact-less payments at concession stands.
Example of Physical InteractionsProximity (NFC)-based payments
NFC Mobile Handset with Security Element
External reader connected to the POS
People will continue to use cash, and credit cards, and over time, the mobile phone
Mobile Commerce Concerns
Source: Telephia
39%
22%
18%
13%
12%
12%
9%
5%
1%
1%
40%
27%
24%
17%
16%
14%
10%
8%
3%
3%
Worry about security
Costs too much for airtime
Don't trust that transaction will becompleted
My phone doesn't have wirelessshopping capability.
Takes too long
Unaware of this option
Complicated navigation
Not enough information on the sites tomake an informed
Sites I want are not available
Items I want are not available Q4 2006
Q2 2006
Most likely short-term use-casesWhat’s your opinion and why?
•Payments?•Interactive / “Smart” posters?•For Authentication?•For Home Control?•Marketing and Advertisement•Other?
Near Field Communication
What is NFC?
• A short-range radio technology• Operates at 13.56 MHz • Transfers data at up to 424 KBits/second• Activates when two NFC-compatible devices are
brought within ~four centimeters • Transmission range is so short, it is inherently
“secure”• NFC is still early stages, very young
NFC Compared to other short range radio technologies
Source: The NFC Forum
NFC Standards
• ISO 14443 Type A and 14443 Type B standards + FeliCa– ISO 14443 is a four-part international standard
for contact-less smart cards operating at 13.56 MHz in close proximity with a reader antenna
• ISO 18092– Defines communication modes for NFC Interface
and Protocol
NFC Communication Modes
Source: The NFC Forum
(Not supported by JSR 257 v1.0) Secure Connection
Terminology
• NDEF - NFC Data Exchange Format– Such as Smart Posters, URI Records
• RTD - Record Type Definition – An NFC-specific record type and type name which may be carried in
an NDEF record• NDEF message
– Basic message construct defined by this specification. An NDEF message contains one or more NDEF records
• NDEF record– Contains a payload described by a type, a length, and an optional
identifier• NDEF payload
– The application data carried within an NDEF record
Contactless APIJSR 257
Background
Anatomy of a Contactless Java Application (MIDlet)
•Java Runtime– Application, JSR 257
•RFID, NFC •Antenna•Secure Elements•External elements
From the JSR 257 Specification: If the format is EMPTY or UNKNOWN the name must be null. The record type names of NFC_FORUM_RTD and EXTERNAL_RTD record types must follow the naming rules defined in the NFC Forum RTD specification. The record type name must only contain characters in the US_ASCII character set.
Processing NDEFMessages
• Method recordDetected is invoked by the platform, passing a NDEFMessage
• Get record and record type and other information from the message
• Process the message according to message attributes
Processing NDEFMessages
public void recordDetected(NDEFMessage ndefMessage) { // Get records and record types from NDEF Message NDEFRecordType[] rTypes = ndefMessage.getRecordTypes(); NDEFRecord[] records = ndefMessage.getRecords(); for (int i=0; i<records.length; i++) { // Handle data, based on type of NDEFMessage NDEFRecordType t = recordTypes[i]; NDEFRecord r = records[i]; byte[] id = r.getId(); long len = r.getPayloadLength(); byte[] p = r.getPayload(); // Process the record // ... } }
Get Card Emulation Activity Notifications
Applications are notified, and don’t participate on the transaction per-se
Register for Emulation Activity Notifications
• Import, Implement– public interface TransactionListener– void externalReaderDetected(byte slot)
public void externalReaderDetected(byte slot) { // Based on slot number above, using SATSA connect to // applet, query applet, update screen, etc. ...}
SATSA and JavaCard is outside the scope of this presentation
Using PushRegistry to Launch NFC applications
Automatically
Automatic Application Launch is key to success (acceptance) of NFC apps
PushRegistry to Launch NFC application
• Static vs. Dynamic Registrations– Static via JAD or Manifest files– MIDlet-Push-<n>– PushRegistry.registerConnection(...)– ConnectionURL, MIDletClassName, AllowedSender
• Dynamic programmatically via PushRegistry API– listConnections(), registerConnection(),
unregisterConnection()– Once activated MIDlet must register NFC target listeners to receive notifications
• URL must follow proper naming, examples– Tag containing Smart Poster RTD is discovered:
• ndef:rtd?name=urn:nfc:wkt:Sp – Tag containing an URL is discovered:
• ndef:mime?name=text/x-uri– For SE transaction activity notifications:
• Information Ubiquity, and Physical Interactions are two very important concepts– Short-codes, URLs, Visual tags, Radio tags
• JSR 257 Contactless Communication API allows for new types of mobile applications, and new types of physical interactions based on NFC, RFID, Visual tags, and Smartcards
• Get familiar with JavaCard programming, and SATSA, security elements and smartcards continue to be important
Links of Interest
• Contactless API JSR 257 Specification• SATSA JSR 177 Specification• NFC Forum • Nokia 6131 NFC FAQ• Nokia 6131 NFC SDK• Mobile Java Articles at Enrique’s blog