Einsatz von Java-fähigen GPRS-Terminals Ein Bericht aus der Praxis Dr. Fred Könemann INSIDE M2M GmbH 15. VDE/ITG Fachtagung Mobilkommunikation Osnabrück 19.-20. Mai 2010 Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 1
Gliederung Einleitung und Motivation 1 Einleitung und Motivation 2 3 4 Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 2
Motivation Einleitung und Motivation Im Bereich von Mobilfunktelefonen hat sich Java als Programmiersprache etabliert Unter den ersten autonomen Mobilfunkterminals für den industriellen Einsatz wurden auch Java-fähige angeboten Autonome Mobilfunkterminals werden mit verschiedenen Hardwareschnittstellen produziert und bieten sich in bestimmten Einsatzfeldern als Standardlösungen an Die Designkriterien von Java sprechen auch für den industriellen Einsatz Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 3
Einleitung und Motivation Unterscheidung von Engine und Terminal Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 4
Typische Hardwareausstattung einer Engine mehrere UARTs RS232 RS422 RS485 USB... mehrere GPIOs mehrere AD Wandler I 2 C Bus SPI Bus Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 5
Java Plattformen Servers & entrprise Computers Servers & personal Computers High-end PDAs TV set-top boxes Embedded devices Mobile phones GPRS-Terminals Smart cards Optional Packages Optional Packages Optional Packages Java 2 Platform Enterprise Edition J2EE Java 2 Platform Standard Edition J2SE Personal Profile Foundation Profile Optional Packages MIDP CDC JVM JVM JVM CDC KVM Java Card KVM Java 2 Platform, Micro Edition J2ME Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 6
J2ME Aufbau Einleitung und Motivation ----Java Micro Edition---- ---Java Card--- ---Java SE Embedded--- Application Application,Xlet Java Card Applets Java SE Embedded Applications JTWI,MSA Other APIs MIDP,IMP DSTB MSA, Other APIs Foundation Profile Personal Profile Java Card Framework, Security and RMI Java SE APIs for Embedded CLDC CDC* full Java SE VM support Java Card Virtual Machine Virtual Machine *CDC 1.0 is based on J2SE 1.3 *CDC 1.1 is based on J2SE 1.4 Java Technologies for Handsets, Smart cards, and Embedded Devices Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 7
Grundlagen des M2MGate Framework Von GSM IP Infrastruktur unabhängige Lösungen bedingen, dass das Terminal die Verbindung initiiert Eine vorhandene Verbindung sollte unabhängig in beiden Richtungen nutzbar sein Externe Objektserialisierung, Reflection und ein Classloader fehlen auf den typischen Java-fähigen Mobilfunkterminals Zur Umsetzung eines RMI-ähnlichen Frameworks bedarf es einer definierten (internen) Objektserialisierung RMI bietet einen kanonischen Ansatz zur Implementierung eines Komponentenmodelles Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 8
Einfache Remotekomponente, Skizze Client Server Methodenaufruf Methodenaufruf Stub Skeleton Netzwerkstack Netzwerkstack Methodenparameter Übertragung GSM-Netz/Internet Rückgabewert Übertragung Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 9
Einfache Remotekomponente, UML Aufteilung in eine Clientimplementierung (Stub) und die Serverseitige Implementation (Skel) Client «uses» «interface» HelloWorld +helloworld(ein : String) : String HelloWorld_Stub HelloWorld_Skel +helloworld(ein : String) : String +helloworld(ein : String) : String +invoke() Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 10
Einfache Remotekomponente, Sequenzdiagramm GSM-Terminal M2MGate Server Example connector() HelloWorld_Stub() <M2MGate> HelloWorld_Skel() connect() helloworld("test") Serialisierung FrameworkCall invoke() Deserialisierung helloworld("test") "I am the server" FrameworkCall Serialisierung "I am the Server" Deserialisierung Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 11
Allgemeine Lösungsskizze M2MGate Server kann als Proxy für Services auf den Terminals agieren Anpassbare Schnittstelle Internet Javafähige GSM-Terminals M2MGate Server GSM- Netz Permanente bidirektionale Verbindung Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 12
Konkretes Beispiel Anbindung eines Verkaufsautomaten via RS232 und EVA-DTS JDBC M2MGate über TCP/IP DEX-UCS über RS232 (EVA-DTS) Internet/GSM- GPRS-Netz SQL Datenbank M2MGate Server Javafähige GSM-Terminals Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 13
Eigenschaften Java-fähiger Engines Motorola G24-Java und Cinterion Engines CLDC 1.1 Einfache PKI HttpsConnection SecureConnection Verfügbarkeit der mächtigen bouncycastle (crypto) Implementierung OTAP Funktionalitäten Watchdog Funktionalitäten JSR 179 (Location API) Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 14
Java-fähige Cinterion Engines TC65, AC75, TC65i, XT65, XT65i 400 kbyte RAM, 1.7 MByte Flash IMP-NG Drei AT-Parser Nahezu kompletter Funktionsumfang der Engine wird über AT-Parser abgebildet Alle Hardwarezugriffe werden über die AT-Parser abgebildet Mit jeder neuen Firmwareversion Auslagerung von Funktionalitäten in Java APIs Für den M2M Markt optimiertes Sicherheitskonzept Auf jeder Engine installierbares Zertifikat Abgestuftes Sicherheitssystem Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 15
Java-fähige Motorola G24-Java Engine 1.8 MByte RAM, 10 MByte Flash MIDP 2.0 Proprietäre API zum Zugriff auf modemspezifische Daten und die Harware Schnittstellen MIDP 2.0 konformes Sicherheitskonzept Software muss durch Dritte (Motorola) signiert werden Bound Certificate an individuelle Hardware gebunden Wifi Erweiterungsboard Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 16
Positiv Java hat sich beim Einsatz auf Mobilfunkterminals sehr bewährt Laufzeitumgebungen verbessern sich mit steigenden Versionsnummern deutlich Java ermöglicht der Applikation weitgehende Kontrolle, diese ist gerade bei Lösungen mit mehreren Providern sehr wichtig Negativ Leider gibt es herstellerspezifische Unterschiede Durch Anforderungen aus dem Automotive Umfeld werden vermehrt GPRS-Terminals mit integriertem C bzw. C++ Interface entwickelt. Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 17
Vielen Dank für Ihre Aufmerksamkeit INSIDE M2M GmbH Berenbosteler Str. 76 B 30823 Garbsen http://www.inside-m2m.de fred.koenemann@inside-m2m.de Dr. Fred Könemann, INSIDE M2M GmbH Einsatz von Java-fähigen GPRS-Terminals 18