W3car project
Emmanuel Castellani
Laurent Marchese
Nicolas Pastorelly
Wolfgang Kieß
Johannes Walch
Claudia Schremmer
Teleseminar Nice-Mannheim
Year 2001-2002
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
W3carCastellani – 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
W3carCastellani – 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
Services categorized by priority for showcase
4
Online navigation (map information not via CD, available via download)
2
Video -House security/ car security-Traffic -Parking
5
Gambling, multi-user mode (back seat)
1
Video -Conferencing-Call center / concierge service
3
-Video ondemand- Music ondemand, selection via call center, voice portal -Personalized audio (front seat) video (back seat)
(video in terms of archived predefined news)
PR
IOR
ITY
Services categorized by priority for showcase
4
Online navigation (map information not via CD, available via download)
4
Online navigation (map information not via CD, available via download)
2
Video -House security/ car security-Traffic -Parking
5
Gambling, multi-user mode (back seat)
5
Gambling, multi-user mode (back seat)
1
Video -Conferencing-Call center / concierge service
1
Video -Conferencing-Call center / concierge service
3
-Video ondemand- Music ondemand, selection via call center, voice portal -Personalized audio (front seat) video (back seat)
(video in terms of archived predefined news)
3
-Video ondemand- Music ondemand, selection via call center, voice portal -Personalized audio (front seat) video (back seat)
(video in terms of archived predefined news)
PR
IOR
ITY
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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
Games Server
Web ServerJSP
Servlets...
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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 :
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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.krypto
w3car.messagingw3car.logging
PrintWriter(from io)
MainFrame(from gui)
Receiver(from loading)...)
1
1
1
1
IpackClassLoader(from loading)
1
1
1
1
MessageService(from messaging)
-$__instance
1
1..*
1
1..*
SignatureVerifier(from krypto)
LoggingService(from logging)
-$__instance
-pw
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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.
MessageObject
MessageService
<xml><aaaa></aaaa><bb></bb></xml>
Sender
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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.
W3carCastellani – 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
W3carCastellani – 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
W3carCastellani – 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 ...