JavaFX Mobile OS (SavaJe OS). JavaFX Mobile vs J2ME Java FX is not a replacement for Java ME in any...
-
Upload
andrew-tuckness -
Category
Documents
-
view
219 -
download
0
Transcript of JavaFX Mobile OS (SavaJe OS). JavaFX Mobile vs J2ME Java FX is not a replacement for Java ME in any...
JavaFX Mobile OS(SavaJe OS)
JavaFX Mobile vs J2ME
Java FX is not a replacement for Java ME in any way.
Java ME is something that’s enabled today on 2 billion phones
Java FX Mobile is something that’s just emerging
Java FX Mobile is made for a mobile Internet computer
JavaFX Mobile vs J2ME (2)
Java FX Mobile is a complete Java operating system.
Java FX Mobile is made for sort of the mid-to-high range type phones (20% slice)
JavaFX Mobile vs J2ME (3)
We write Java applications on top of that VM that is running on the Java ME phone = midlet-based environment
It’s not integrated but it’s an application that’s running on top of it.
JavaFX Mobile vs J2ME (4)
In Java FX Mobile, every API that the developer sees when they’re writing an application is a Java API.
All of the native services that you would normally have on the phone are Java enabled
JavaFX Mobile vs J2ME (4)
In Java FX Mobile, every API that the developer sees when they’re writing an application is a Java API.
All of the native services that you would normally have on the phone are Java enabled
JavaFX Mobile vs J2ME (5)
Java FX Mobile offers set of frameworks such as a graphics framework, a telephone framework, a messaging framework and a browser framework
JavaFX Mobile vs JavaFX Script
Java FX Script is a platform, a language for developing rich media and graphically intensive application
Sits on top of standard Java Available both on the desktop and on
embedded devices
Motivation
Adapt Java to information appliances that have limited resources in a small footprint.
Problem:
Information appliances do not have the resources to run J2SE with anything approaching acceptable performance
Motivation (2)
“A” Solution: J2ME A range of subsets of Java that overcomes
the performance issue by restricting functionality
Motivation (3)
Yet Another Problem Emerging generation of smart wireless
and mobile devices require complete application support and client functionality that full Java provides
Motivation (4)
Root of the Problem Java Virtual Machine
Associated portability layers, classes and libraries normally run on top a native operating system with its own portability layers, APIs and libraries.
Motivation (5)
“The” Solution SavaJe OS First mobile platform built from the kernel
up for Java Enables mobile operators to gain full
benefits of Java: cross-platform, graphically rich and secure.
History
2000 – SavaJe Technologies has raised nearly $80 million to date from operators, Vodafone, T-Mobile and Orange
Mission: to deliver mobile operating system where applications could run at native speed
History (2)
First showcased a prototype LG handset in 2005
Lack of stability, poor battery life and unattractive industrial design
History (3)
First SavaJe-powered handset, the Jasper S20, developed by Group Sense Ltd of HongKong
Released to developers at Sun’s JavaOne 2006
History (4)
2007, Sun Microsystems just bought the rights to all of SavaJe’s intellectual property including the rights to SavaJe’s Java-based mobile OS.
Sun debuted its Java Phone which is powered by SavaJe
Ports SavaJe code into a Linux kernel
Strengths
Java is popular Having more Java API's mean more
capabilities than J2ME The SavaJe code can be ported to a
Linux kernel and is expanding the applications programming interfaces and set of developer tools that will ship with it.
Easy customization, theming
Weaknesses
Porting effort will be required for most applications
Platform requires a minimum hardware of ARM9-class processor clocked at 150-200MH with 32MB ROM and 32MB RAM
Manufacturers and Service Providers As of 2007, it has no licensees yet SavaJe impressed a lot of geeks and won
precisely zero phone contracts
Tradeoffs
More Java API's, size increases Market of J2ME and JavaFX
Uniqueness
Inherits unique qualities of Java Java virtual machine Bytecodes run through an interpreter on
a local host = portability
Opportunities
An OS which can run next-gen Linux GUI and JavaFX applications side by side
Low-end JavaFx plus high-end Linux GTK bindings for more powerful phones
Nokia = Symbian. Competitors like Vodafone clearly wants to differentiate themselves
The SavaJe OS
The primary goals of the OS are: A small, efficient kernel Portable applications A rich graphical experience Strong and flexible security Full network support Performance
The Core Platform
The Core Platform (2)
Applications that run on SavaJe OS can be written using any one of the full range of Java APIs
It does not support end user applications written in other languages, there are provisions to allow third-party native modules written in C, C++ or assembler to be integrated into the SavaJe OS.
Kernel
Provides memory management services, resource locking, thread control and scheduling and a device driver interface.
The virtual machine is closely integrated with the kernel.
Kernel, VM and device drivers are statically bound.
Kernel (2)
Developers may add native modules such as media codecs or existing C libraries.
SavaJe OS contains an extensive subset of ANSI C and POSIX APIs.
Java VM, FreeType font engine, Beatnik Audio Engine, ZIP compression library
Kernel (3)
If source code is not available when creating an OS image, its standard GNU tool chain (compiler, linker, assembler, etc) allows for binary code modules to be added to OS without access to source code.
Memory Management
It uses virtual addresses in a 4GB address space.
Physical memory is divided into 4KB pages, managed through a two-level hierarchy.
Malloc()
Memory Management (2)
Monitors, locks and semaphores are allocated using memory blocks of fixed size
No heap size setting since all memory that is not used by system is available to Java programs
Real Time Response
SavaJe OS is not a hard real time system. Designed for time critical tasks to the end
user but not catastrophic Soft real time system
Real Time Response (2)
It is capable of sustained processing of approximately 100,000 interrupts per second.
Allows developers to create system threads apart from Java apps in order to perform sensitive operations
Virtual Machine
Developed from Sun’s VM Has been optimized for size, speed and
low-memory environments Garbage collection is mark and sweep. Interpretative and does not use JIT
techniques
Threads
Implemented to directly support the Java threads API and semantics
The underlying thread scheduler implements a time-sliced preemptive, fixed-priority, round-robin scheduler.
Highest priority ready thread always executes.
Processes
SavaJe OS launches each application in a distince process or JProc (Java Process)
Processes (2)
It has own class loader Its own security manager Private view of class fields Own view of Java system properties Own Graphics context System threads for system-level functions
Floating Point Support
Floating-point emulation library is included.
An optimized library supporting the intrinsic math functions is also provided.
Security
Java Language Java Byte-Code Verification Java Security Managers Java Runtime Java JAR Packaging Java Security Architecture Process Model User Identity
Security (2)
Java language is a type safe language that prevents accidental or intentional access to arbitrary memory locations
Security (3)
Byte-code verification – the system will start each process with a security manager installed which mandates a program be given a policy file.
Applications should be run with security manager and given the desired set of permissions.
Security (4)
Java application execution model allows for JAR files to be digitally signed.
Java Cryptography Architecture, Java Cryptography Extension, Java Secure Socket Extension
Graphics Subsystem
Close integration with Java 2 AWT, Swing and Java2D
Information stored in many AWT objects is directly manipulated by the core graphics subsystem, rather than copied and/or translated between unrelated software layers
Graphics Subsystem (2)
Targets IA with varying screen sizes, levels of color support, types of graphics hardware and distinct input methods.
Multimedia
MIDP Multimedia Extensions Java Media Framework
JPEG, GIF, PNG WAV, AU, MP3, MIDI MPEG4
File Systems
All file systems accessed via the standard Java APIs
Dynamically mountable file systems File system implementation in Java or C Support for removable media Support for network file systems
File Systems (2)
Can be dynamically mounted in a single namespace using a simple standard convention
File Systems (3)
Contains five distinct types of file systems Recoverable read-write RAM file system Read-only flash based file system Microsoft-compliant FAT file system Two network file systems – SMB (Server
Message Block) and a simple Web server based file system
File Systems (4)
All file systems are mounted at a root (“/”) File can be universally accessed via a
single namespace (“/cf0/foo/bar.html”) Appearance of a UNIX-style file system
with properties similar to Microsoft UNC
Connectivity
Ethernet 802.11 Wireless LAN Packet Switched wireless networks Bluetooth IrDA USB Serial
Network Access
An IP network may consist of a home-network, corporate intranet, the Internet or a Peer-to-Peer connection.
Java APIs are used to access the network
Application Protocols
Make use of raw TCP or UDP sockets to implement its own application level protocols.
Addition application level protocols such as HTTP, POP, SMTP can be utilized
Java APIs for RMI, CORBA, JNDI, JDBC and JINI.
Personal Area Networking
PAN is useful for quick short-range information transfer between two devices.
OS Upgrade
Capabilities to patch the OS from a connected server
Enables OTA upgrades and patches Complete OS replacement cam be carried
out through a high speed network or using a memory card
Data Sheet
Data Sheet (2)
Data Sheet (3)
Data Sheet (4)
Data Sheet (5)