Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

PlaySIM Project Java One 2009

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 42 Anuncio

Más Contenido Relacionado

A los espectadores también les gustó (15)

Anuncio

Similares a PlaySIM Project Java One 2009 (20)

PlaySIM Project Java One 2009

  1. 1. Project PlaySIM: Experimenting with Java Card™ 3 System Programming Eric Arseneau - Sun Sebastian Hans - Sun Fritjof Engelhardtsen - Telenor Steinar Brede - Telenor
  2. 2. What is PlaySIM? <ul><li>Provide an open platform to experiment and innovate with Java Card 3.0 enabled SIM cards </li></ul><ul><li>Turn a Sun SPOT into a Java SIM card </li></ul><ul><li>NOT an emulator!!! </li></ul><ul><li>Telcos want new services and applications showcased before they commit </li></ul><ul><li>Expand the role of the SIM card in M2M domain </li></ul><ul><li>Project initiated by Telenor ASA with Sun </li></ul><ul><ul><li>7th largest mobile operator in the world </li></ul></ul><ul><ul><li>> 170M subscribers </li></ul></ul>
  3. 3. Agenda <ul><li>What is a SIM card ? </li></ul><ul><li>What is Java Card(TM) 3.0 ? </li></ul><ul><li>What is a Sun SPOT ? </li></ul><ul><li>What is PlaySIM ? </li></ul>
  4. 4. What is a SIM card? <ul><li>Subscriber Identity Module (SIM) for mobile networks </li></ul><ul><li>Separates the user subscription from the terminal </li></ul><ul><li>User credentials, security data, address, sms, ... </li></ul><ul><li>Fully managed secure platform </li></ul><ul><li>Introduction of Java technology turned the SIM card into a multi application platform </li></ul><ul><li>In 2008 sold 3.2 Billion for Telcos </li></ul><ul><ul><li>2009 estimated at 3.6 Billion </li></ul></ul>
  5. 5. Not JUST phones
  6. 6. Enables highly secure services <ul><li>The SIM card is a secure connected service platform that you seldom leave behind </li></ul><ul><li>PKI based authentication, roaming management, ... </li></ul><ul><li>One time password generator for online banking </li></ul>
  7. 7. What we have today <ul><li>SIM cards are based on ISO 7816 standards </li></ul><ul><ul><li>Single threaded, master slave protocol </li></ul></ul><ul><ul><li>APDU max 255 bytes per message </li></ul></ul><ul><ul><li>Low speed, clock and power from the terminal </li></ul></ul><ul><ul><li>Slow EEPROM memory 32-128KB </li></ul></ul><ul><ul><li>RAM 8-16KB </li></ul></ul><ul><ul><li>SIM-Toolkit protocol to overcome the master-slave limitation of the ISO standards </li></ul></ul><ul><ul><ul><li>Very specific to the Telco market </li></ul></ul></ul><ul><ul><ul><li>Difficult to use and to test </li></ul></ul></ul><ul><ul><ul><li>Needs a lot of GSM/UMTS domain knowledge </li></ul></ul></ul>
  8. 8. Java Card 2.x <ul><li>Java Card 2.X has an over 10 year history </li></ul><ul><li>Defined for very constraint devices </li></ul><ul><ul><li>< 512bytes of RAM </li></ul></ul><ul><ul><li>< 4KB non-volatile memory </li></ul></ul><ul><li>Single threaded </li></ul><ul><li>Limited communication capabilities </li></ul><ul><li>No Strings, no int, no float, split VM </li></ul><ul><li>Over 6 Billion Java Card Devices </li></ul><ul><ul><li>Most prolific Java platform to date </li></ul></ul>
  9. 9. SIM card trends require more capabilities from software 16k 64k 256k 1Mb 1Gb SCWS NFC USB Multi tread IP stack Embedded short-range radios GPS Accelerometer Temperature ...
  10. 10. But we need to move ahead!
  11. 11. How to program these capabilities? <ul><li>With these existing and new capabilities, how do we program these devices? </li></ul><ul><li>The SIM cards have been a very closed and proprietary environment </li></ul><ul><li>Java Card brings the write once run everywhere mantra to SIM cards </li></ul><ul><li>Java Card 3.x is the platform to use these new capabilities </li></ul><ul><li>3 rd party applications and services could now be ported to different SIM cards </li></ul>
  12. 12. SIM Card IS the computer <ul><li>This is a new way of thinking </li></ul><ul><li>Added computing capabilities, network integration, new sensors </li></ul><ul><li>Carriers get a viable platform that they control and are able to distribute new services more quickly </li></ul>
  13. 13. Java Card 3.x <ul><li>Last year 3.0 was only the specification </li></ul><ul><li>Just released 3.0.1 </li></ul><ul><ul><li>http://java.sun.com/products/ javacard </li></ul></ul><ul><ul><li>Reference Implementation - Emulator </li></ul></ul><ul><ul><li>NetBeans Module </li></ul></ul><ul><ul><li>TCK </li></ul></ul><ul><li>Classic Edition – Keeps 2.x compatibility </li></ul><ul><li>Connected Edition </li></ul>
  14. 14. Java Card 3 Connected Edition High Level Architecture
  15. 15. Java Card 3.0 main new Features <ul><li>Multithreading, CLDC 1.1 </li></ul><ul><li>Supports of multiple hardware and logical interfaces </li></ul><ul><li>Build in Servlet Engine, Servlets API 2.4 </li></ul><ul><li>Strings, Annotations, Generics, TCP/IP Sockets, SSL/TLS, HTTP connections, GCF </li></ul><ul><li>Integrate Java Card 3.0 as a secure multi interface card platform into IP networks </li></ul><ul><li>Seamless secure connection with Browsers and Applications on the Terminal or in the Network </li></ul><ul><li>Card is a secure server in the local network </li></ul>
  16. 16. Some new ideas.. <ul><li>Telenor student interns loved to play with the SunSPOT platform and it is popular at the local university </li></ul><ul><li>Maybe we can leverage this enthusiasm to spur SIM card and service innovation? </li></ul>
  17. 17. What is a Sun SPOT? <ul><li>Built to inspire </li></ul><ul><li>Designed for flexibility </li></ul><ul><ul><li>Make hardware projects into software projects </li></ul></ul><ul><ul><li>Not designed for cost effective deployment today </li></ul></ul><ul><ul><li>Substitute money for time </li></ul></ul><ul><li>We want to </li></ul><ul><ul><li>Build a Community of Developers </li></ul></ul><ul><ul><li>Enable New Devices and Services </li></ul></ul><ul><ul><li>Engage with new potential customers </li></ul></ul>
  18. 18. Sun SPOT Platform <ul><li>Software platform to enable </li></ul><ul><ul><li>Java Technology </li></ul></ul><ul><ul><li>Common driver platform </li></ul></ul><ul><ul><li>Common services platform </li></ul></ul><ul><ul><li>Ease of development </li></ul></ul><ul><li>Intended to be ported to different devices </li></ul><ul><ul><li>eSPOT </li></ul></ul><ul><ul><li>National Instrument Compact RIO </li></ul></ul><ul><ul><li>more... </li></ul></ul>
  19. 19. Sun SPOT Platform Java VM <ul><li>Squawk Virtual Machine </li></ul><ul><li>J2ME CLDC 1.1 IMP Profile </li></ul><ul><li>Runs on the bare metal (No OS) </li></ul><ul><li>Designed for memory constrained devices </li></ul><ul><li>Written mainly in Java </li></ul><ul><li>Runs multiple applications (isolates), can “migrate” across devices </li></ul><ul><li>Also runs on Solaris, Linux, Mac and Windows </li></ul><ul><li>Easy to port </li></ul>
  20. 20. Squawk VM Written in Java Standard JVM Squawk JVM Java class library Verifier Loader Garbage collector Interpreter Compiler I/O library Native code Thread Scheduler Java class library Verifier Loader Garbage collector Interpreter Compiler I/O library Native code Thread Scheduler C code Exporter Transformer Java code Device Driver Architecture
  21. 21. Split VM .class/.jar . .suite .suite Native code Serializer Loader Verifier Transformer (optimizer) Digital signer Bootloader Interpreted VM Java libraries On-device VM Suite creator
  22. 22. Sun SPOT Platform Library <ul><li>Transducer Library </li></ul><ul><li>Built-in support for all sensors on eDemoBoard </li></ul><ul><li>Integrated power management to maximize battery life </li></ul><ul><li>Built-in Mesh Networking </li></ul><ul><li>Classes to control external devices such as servos and speakers </li></ul>
  23. 23. eSPOT Sun SPOT device <ul><li>Basic device has three layers </li></ul><ul><li>User programs the device entirely in Java using standard Java tools </li></ul>
  24. 24. eSPOT Main board <ul><li>180 MHz 32 bit ARM920T core </li></ul><ul><li>512K RAM/4M Flash </li></ul><ul><li>802.15.4 radio </li></ul><ul><li>USB interface - mini-b connector </li></ul><ul><li>36 µA deep sleep mode </li></ul><ul><li>“ Java on the metal” </li></ul>
  25. 25. edemo Daugher card <ul><li>2G/6G 3-axis accelerometer </li></ul><ul><li>Light sensor </li></ul><ul><li>Temp sensor </li></ul><ul><li>2 push buttons </li></ul><ul><li>8 RGB 24 bit LEDS, power/control LED </li></ul><ul><li>6 analog inputs </li></ul><ul><li>5 General Purpose I/O pins and 4 high current output pins </li></ul><ul><li>Easy to interface to servos, speakers and other devices </li></ul>
  26. 26. Open Source <ul><li>Hardware </li></ul><ul><li>Software </li></ul><ul><li>http://www. sunspotworld .com </li></ul><ul><li>http://spots.dev.java.net </li></ul>
  27. 27. Project Structure <ul><li>Started out as a single project </li></ul><ul><li>Now 3 Projects </li></ul><ul><ul><li>Java Card 3 on Sun SPOT </li></ul></ul><ul><ul><li>PlaySIM </li></ul></ul><ul><ul><li>eGSM daughter card </li></ul></ul><ul><li>Open Source </li></ul><ul><ul><li>Hardware </li></ul></ul><ul><ul><li>Software </li></ul></ul><ul><li>http://playsim.dev.java.net </li></ul>
  28. 28. Java Card 3 on Sun SPOT <ul><li>Binary jar of Java Card 3 API </li></ul><ul><li>Pre&Post Adapter for Sun SPOT </li></ul><ul><li>Java Card 3 library for Sun SPOT SDK </li></ul><ul><li>Implement Java Card 3 required native services using Sun SPOT API </li></ul><ul><li>NOT a Java Card 3.x compliant implementation </li></ul>
  29. 29. Java 5 Syntax Support <ul><li>Java Card 3 requires Java 5 syntax </li></ul><ul><li>Added Java 5 syntax support to Squawk </li></ul><ul><ul><li>Adds Java 5 syntax support </li></ul></ul><ul><li>BUT must stay Java ME CLDC 1.1 IMP 1.0 compliant </li></ul><ul><ul><li>Requires preverifier </li></ul></ul><ul><li>Spec however does not specify source level </li></ul><ul><ul><li>Defines API </li></ul></ul><ul><li>Java 5 javac -> Retroweaver -> Java 1.3 classes </li></ul>
  30. 30. Demo <ul><li>[java] Sun SPOT bootloader (java5-0906021548) </li></ul><ul><li>[java] SPOT serial number = 0014.4F01.0000.3971 </li></ul><ul><li>[java] </li></ul><ul><li>[java] Squawk VM Starting (&quot;java5-0906021548&quot;)... </li></ul><ul><li>[java] StartApp </li></ul><ul><li>[java] [info] : Initializing Card ... </li></ul><ul><li>[java] [info] : ClassLoaders ... Initialized </li></ul><ul><li>[java] [info] : Platform Policy ... Initialized </li></ul><ul><li>[java] [info] : ServiceRegistry ... Initialized </li></ul><ul><li>[java] [info] : TaskRegistry ... Initialized </li></ul><ul><li>[java] [info] : Crypto System ... Initialized </li></ul><ul><li>[java] [info] : Transaction Facility - Initialized </li></ul><ul><li>[java] [debug] : REALM NAME IS:JCRealm </li></ul><ul><li>[java] [debug] : org.mortbay.jetty.MimeTypes.STATIC() -> DONE </li></ul><ul><li>[java] [info] : Web Container ... Initialized </li></ul><ul><li>[java] [info] : Applet Container ... Initialized </li></ul><ul><li>[java] [debug] : servletFilterMap=null </li></ul><ul><li>[java] [debug] : servletPathMap =org. mortbay .jetty. servlet . PathMap @44 </li></ul><ul><li>... </li></ul><ul><li>[java] [info] : Card Ready. </li></ul>
  31. 31. Say hello to the PlaySIM daughter board
  32. 32. Connecting PlaySIM to a phone
  33. 33. PlaySIM theory of operation “ or” Authentication algorithms and secret keys GSM/UMTS terminals Inexpensive add on board to the SunSPOT Java Card ™ 3 “like” environment for prototyping SIM interface SIM emulation Application deployment flexibility SunSPOT M2M GSM module
  34. 34. PlaySIM theory of operation GSM authentication algorithms and secret keys (possibly JC 3) SIM toolkit, Java ME + JSR-177, Java ME or browser TCP/HTTP JavaCard 3.x API PlaySIM driver JavaCard 3 applications w/ extended functionality
  35. 35. PlaySIM driver / command interceptor Cmd. from terminal SunSPOT or SIM card? Cmd. to SIM card Resp. from SIM card Resp. to terminal Resp. to terminal Insert proactive commands from SunSPOT
  36. 36. Experimenation? <ul><li>Java Card 3.x cards not available </li></ul><ul><li>How to use new sensor capabilities? </li></ul><ul><li>Rapid prototyping of new sensors </li></ul><ul><ul><li>Add to Sun SPOT and experiment </li></ul></ul><ul><li>Additional storage </li></ul><ul><li>New communication interfaces </li></ul><ul><li>We can't think of everything that could be done with existing and future sensors </li></ul>
  37. 37. Community Involvement <ul><li>Universities </li></ul><ul><li>SIM card vendors </li></ul><ul><li>Developers </li></ul>
  38. 38. Status <ul><li>We have defined a java.net project </li></ul><ul><ul><li>http://playsim.dev.java.net </li></ul></ul><ul><li>NO content yet :( </li></ul><ul><li>Will be able to buy these cards shortly </li></ul><ul><li>Source code, gerbers, … to be published right after Java One </li></ul>
  39. 39. The road ahead <ul><li>Add support for USB enabled SIM cards and terminals. </li></ul><ul><li>Refine API for proactive commands. </li></ul><ul><li>SIM card communication tracer on a PC. </li></ul><ul><li>Add support for wireless LAN (WLANSIM). </li></ul>
  40. 40. eGSM daughter board
  41. 41. eGSM Motivation <ul><li>Add GSM network capability to Sun SPOT </li></ul><ul><li>Provide a terminal for PlaySIM </li></ul><ul><ul><li>Not all existing module support SIMtoolkit </li></ul></ul><ul><li>Experiment with the role of the SIM card in the M2M domain </li></ul><ul><li>Experiment with connected objects </li></ul><ul><li>It was too cool NOT to do it :) </li></ul>
  42. 42. Recap <ul><li>NOT an emulator </li></ul><ul><li>Portable </li></ul><ul><ul><li>Can tape to the back of the phone :) </li></ul></ul><ul><li>Experiment now, create the future now </li></ul><ul><li>Can actually do usability trials cheaply </li></ul>

×