W3car project Emmanuel Castellani Laurent Marchese Nicolas Pastorelly Wolfgang Kieß Johannes Walch Claudia Schremmer Teleseminar Nice-Mannheim Year
1 General information 1.1 Big Picture 1.2 Initial Spec 1.3 Actual Spec 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Overview
W3car Castellani – Marchese – Kiess - Walch Big Picture 1 General information 1.1 Big Picture 1.2 Initial Spec 1.3 Actual Spec 2 Technical informations 3 Demonstration DCX Speed3 Project Prototype of UMTS car on Monaco Telecom network Emphasis on bandwidth-consuming type of 3G services DCX, Sun, Jentro, Siemens, MDBS joint venture
W3car Castellani – Marchese – Kiess - Walch W3Car Services 1 General information 1.1 Big Picture 1.2 Initial Spec 1.3 Actual Spec 2 Technical informations 3 Demonstration
W3car Castellani – Marchese – Kiess - Walch Initial Specification 1 General information 1.1 Big Picture 1.2 Initial Spec 1.3 Actual Spec 2 Technical informations 3 Demonstration Emergency service for UMTS car Using audio and video communication SUN-Jentro Platform for InCar Computer not ready Speed3 Project not started yet Very complex and proprietary technologies
W3car Castellani – Marchese – Kiess - Walch Actual Specification 1 General information 1.1 Big Picture 1.2 Initial Spec 1.3 Actual Spec 2 Technical informations 3 Demonstration New focus : Architecture prototyping instead of Features Delivery Entertainment(Backseat) Applications Java Client Prototype for IPAQ/mobile network device
W3car Castellani – Marchese – Kiess - Walch Important Technology 1 General information 1.1 Big Picture 1.2 Initial Spec 1.3 Actual Spec 2 Technical informations 3 Demonstration Technologies/Features proposed : Java XML-RPC / SOAP based communications Integrated web browser Download Java(jar-file) Entertainment Applications to IPAQ
W3car Castellani – Marchese – Kiess - Walch Application Overview 1 General information 1.1 Big Picture 1.2 Initial Spec 1.3 Actual Spec 2 Technical informations 3 Demonstration
W3car Castellani – Marchese – Kiess - Walch Server 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration
W3car Castellani – Marchese – Kiess - Walch Server 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration DBMS (MySql) Web Server (Servlets, JSP) Dynamic Contains references of games JSP : dynamic Web Page showing games Servlet : producing messages Multiple Game servers
W3car Castellani – Marchese – Kiess - Walch Server 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration DBMS Games Server Architecture Games Server Web Server JSP Servlets...
W3car Castellani – Marchese – Kiess - Walch Games Development 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration
W3car Castellani – Marchese – Kiess - Walch Games Development 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Anybody could develop games Need to standardize the games Games must extends an abstract class and redifined start() and stop() methods =>To cast objects downloaded into Games like Plugins system
W3car Castellani – Marchese – Kiess - Walch Browser 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration 1- IceBrowser (bean) Complete Web browser Problems : Conflict with our ClassLoader No compatibility with IPAQ 2- Simple java files using swing API No ClassLoader, no security manager... Two possibilities :
W3car Castellani – Marchese – Kiess - Walch ClassLoader 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration
W3car Castellani – Marchese – Kiess - Walch ClassLoader 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration To download and instantiate jarFile via HTTP First version: Used JarURLConnection to download the game directly in the virtual machine Problem with the jdk1.1.8 Second version: Used simple URLConnection The jarFile is written to the fileSystem
W3car Castellani – Marchese – Kiess - Walch ClassLoader 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration
W3car Castellani – Marchese – Kiess - Walch Communication 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration
W3car Castellani – Marchese – Kiess - Walch Communication 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration SOAP : Complex protocol SOAP-Server on IPAQ ? => limited Resources Extensible architecture for future integration We wanted to have a flexible, easy to use protocol which can easily be debugged (and simulated manually) => XML
W3car Castellani – Marchese – Kiess - Walch JAXB messaging 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration JAXB = Java XML Binding In our case marshal (serialize to XML) the Message and transmit it as String Receiver unmarshals the XML String to a Message Marshaling/Unmarshaling framework is generated with a tool (castor) Grammar (w3c schema ) Class (Java) XML-Document Object Instance
W3car Castellani – Marchese – Kiess - Walch Communication 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Message objects with set and get methods Call the send(Message m) Method Message is transformed into XML, send as a String and the object reconstructed on the receiving side. Message Object Message Service Sender
W3car Castellani – Marchese – Kiess - Walch Krypto Package 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration
W3car Castellani – Marchese – Kiess - Walch Krypto Package 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Motivation Download an application and execute it risk of malicious code security problem Solution Trusted party signs the jar file using asymmetric cryptography Before loading, verify the signature
W3car Castellani – Marchese – Kiess - Walch How it works 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Generate a key pair with the JAVA keytool Sign the file with the W3carSigner On each request for a game, the Signature is transmitted with the other information via the MessageService The client uses the signature to verify the file before executing the game
W3car Castellani – Marchese – Kiess - Walch Implementation 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Java.security package contains all necessary classes … the package is not supported by the JVM on the IPAQ the signature mechanism is disabled on the IPAQ, but will be demonstrated on a laptop.
W3car Castellani – Marchese – Kiess - Walch Ipaq & Java 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Insignia Jeode JRE Conflict with our ClassLoader Java 1.1 compatible including java.security Commercial package Sun Personal Java JRE Java 1.1 compatible without java.security Other OS than Windows CE 3.0 Linux Java OS
W3car Castellani – Marchese – Kiess - Walch Evaluation of JRE 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Problem : Browser we choose needs swing Solution : Porting swing to IPAQ using jar file Swing is only lightweight implementation on top of AWT did not work with Jeode PersonalJava JRE of Choice : Personal Java
W3car Castellani – Marchese – Kiess - Walch Java on IPAQ 1 General information 2 Technical informations 2.1 Server 2.2 Games 2.3 Browser 2.4 ClassLoader 2.5 Communication 2.6 Krypto Package 2.7 IPAQ & Java 3 Demonstration Java is very slow on IPAQ due to limited resources Developing on a limited device is difficult, testing takes a lot of time Better environment : a specialized Java OS or compiled binaries
Demonstration
Conclusion The goal of the project was reached. Work Experience : Similiar to an industrial project Investigation on the best technologies, no exact specification Short time for delivery (Specification and Implementation done at the same time) Personal Experience We got used to video conference and foreign languages In the end it was a lot of fun...