Title: W3car project
1W3car project
Emmanuel Castellani Laurent Marchese Nicolas
Pastorelly
Wolfgang Kieß Johannes Walch Claudia Schremmer
Teleseminar Nice-Mannheim Year 2001-2002
2Overview
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
3Big Picture
- 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
1 General information 1.1 Big Picture
1.2 Initial Spec 1.3 Actual Spec 2 Technical
informations 3 Demonstration
4W3Car Services
1 General information 1.1 Big Picture
1.2 Initial Spec 1.3 Actual Spec 2 Technical
informations 3 Demonstration
5Initial Specification
- 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
1 General information 1.1 Big Picture
1.2 Initial Spec 1.3 Actual Spec 2 Technical
informations 3 Demonstration
6Actual Specification
- New focus Architecture prototyping instead of
Features Delivery - Entertainment(Backseat) Applications
- Java Client Prototype for IPAQ/mobile network
device
1 General information 1.1 Big Picture
1.2 Initial Spec 1.3 Actual Spec 2 Technical
informations 3 Demonstration
7Important Technology
- Technologies/Features proposed
- Java
- XML-RPC / SOAP based communications
- Integrated web browser
- Download Java(jar-file) Entertainment
- Applications to IPAQ
1 General information 1.1 Big Picture
1.2 Initial Spec 1.3 Actual Spec 2 Technical
informations 3 Demonstration
8Application Overview
1 General information 1.1 Big Picture
1.2 Initial Spec 1.3 Actual Spec 2 Technical
informations 3 Demonstration
9Server
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
10Server
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
Dynamic
Contains references of games
- Web Server (Servlets, JSP)
JSP dynamic Web Page showing games
Servlet producing messages
11Server
Architecture
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
Games Server
DBMS
Games Server
...
Games Server
Web Server JSP Servlets
12Games 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
13Games 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 - gtTo cast objects downloaded into Games like
Plugins system
14Browser
Two possibilities
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 ...
15ClassLoader
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
16ClassLoader
- 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
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
17ClassLoader
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
18 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
19 Communication
- We wanted to have a flexible, easy to use
protocol which can easily be debugged (and
simulated manually) gt XML
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 ?
- gt limited Resources
- Extensible architecture for future integration
20 JAXB messaging
- 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 ) ltgt Class (Java)
- XML-Document ltgt Object Instance
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
21 Communication
- 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.
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
Sender
ltxmlgt ltaaaagtlt/aaaagt ltbbgtlt/bbgt lt/xmlgt
Message Service
Message Object
22Krypto 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
23Krypto Package
- 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
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
24How it works
- 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
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
25Implementation
- 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.
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
26Ipaq Java
- 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
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
27Evaluation of JRE
- 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
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
28Java on IPAQ
- 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
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
29Demonstration
30Conclusion
- 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 ...