JavaFX Mobile OS (SavaJe OS). JavaFX Mobile vs J2ME Java FX is not a replacement for Java ME in any...

Post on 31-Mar-2015

219 views 0 download

Tags:

transcript

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)