Tuesday, June 17, 2008

JavaFX Technology Overview

JavaFX is a family of products for creating rich internet applications (RIA) with immersive media and content, across all the screens of your life. Announced at Java One 2008, it includes a runtime and a tools suite that web scripters, designers and developers can use to quickly build and deliver the next generation of rich interactive applications for desktop, mobile devices, TV, and other platforms. It delivers rich client capability across a wide range of devices and screens as well as unlimited creative expression and accuracy in RIA designs.

The JavaFX family of products consists of the JavaFX Runtime, the JavaFX Tools Suite, and applications powered by JavaFX technology:

JavaFX Runtime delivers rich client capability across a wide range of devices. Examples of JavaFX Runtime are:
* JavaFX Desktop for desktop browsers and desktop applications (available fall 2008)
* JavaFX Mobile (available spring 2009) in the first rollout will deliver the JavaFX rich client runtime on the existing existing platforms that our partners are shipping today. Over time we will deliver additional products.
* JavaFX TV will be for applications that run on the TV platform (available summer 2009)
* Other platforms in the future

JavaFX Tools Suite empowers Web scripters, visual designers, and developers with the freedom to create expressive content, applications, and connected services for consumers of RIA across devices or screens
* JavaFX Development Tools include a plug-in for NetBeans and, in the future, for Eclipse and other IDEs
* JavaFX Designer Authoring Tools:
* JavaFX Media Converter (summer 2008): Tool to export rich media content directly into JavaFX
* JavaFX Designer Authoring Tool (available spring 2008): Tool for visual designers.

JavaFX Suite of Applications: The JavaFX business unit will leverage the capabilities of JavaFX to deliver a suite of content and applications starting in 2009.

JavaFX is a different technology, product and brand than the Java platform. JavaFX is not dependent on any particular JVM or runtime environment, and JavaFX is not built using the JVM specifications. JavaFX leverages the appropriate runtime for each platform - on the desktop it leverages the JRE and is co-bundled with it, while on mobile it leverages the Java ME runtime, and similarly it can run on top of other VMs.
JavaFX Tools Suite Makes Development Easier

Sun recognizes that the communities creating compelling content, applications, and services consist of a wide range of individuals with different skill sets who require specific sets of tools to fit their needs:

Visual designers need visual and graphical tools to create compelling graphics, media, prototypes and rich client applications without requiring any complex scripting or programming. They currently use Adobe Photoshop, Illustrator, and other visual tools. JavaFX designer will deliver a visual authoring tool to this community.

Web Scripters who are currently using HTML, DHTML, CSS, JavaScript, ActionScript, MXML or XAML are looking for familiar and highly productive scripting environments. JavaFX Script is designed to provide an easy-to-learn scripting language to this audience, and the JavaFX runtime is architected to allow the support of additional scripting environments that this community may already be using.

Programmers using Java programming language and other programming languages have a need to work with their scripting and designer colleagues to deliver compelling end-to-end rich interfaces for enterprise applications as well as provide the back-end for RIA content, applications and services. The JavaFX plug-in for NetBeans and JavaFX Media Converter are designed to facilitate this interaction.
Advantages of JavaFX

There are a large number of RIA requirements that remain unmet by any RIA platform, and Sun is uniquely positioned to address these challenges. JavaFX will be provide a number of unprecedented advantages:

Built on Java. JavaFX is not starting from scratch; it is built on the Java platform (Java SE and Java ME) and leverages the power and capabilities of the Java platform. It also extends the Java platform to deliver on the original promise of client-side Java. For example, Java ME has been distributed to 3 billion devices, far exceeding the distribution of Adobe Flash Lite, and JavaFX Mobile will deliver rich client capabilities on top of the Java ME platform.

Across Devices and Screens. JavaFX applications will run across multiple devices or screens - browser, mobile, TV, etc.

Reach and Distribution. Sun will leverage its unrivaled reach to distribute the JavaFX runtime across all devices and screens.

Open Source. Many components of its platform are already available in open source, Sun will announce its open source plans with the release of version 1.0.

Browser and Desktop Deployment. JavaFX will provide support for browser-based RIA applications as well as the powerful capability of deploying the same unmodified application on the desktop. JavaFX designers and developers will have the option to take full advantage of Java’s capabilities, including access to file system, security model, and caching.

Competing platforms are just beginning to provide early SDKs that provide relatively rudimentary capabilities for building browser and desktop resident applications.

Designer, Developer Workflow. Current rich client platforms have been struggling to extend beyond their animation heritage to appeal to developers. There is still a distinct need to close the gap between a designer's vision and a programmer's skills with an easy-to-use, visually accurate, high-performance suite of tools. The market is not nearly satisfied.

Java has more than 8 million developers who provide the infrastructure that powers most businesses and the backend of most large Web applications. JavaFX tools suite will empower designers to better collaborate with these developers while working within the Java platform. At JavaOne 2008, Sun will demonstrate this capability with JavaFX Media Converter.

Bootable Definition




Bootable means that a computer can be booted (i.e., started) and attain a state sufficient that any desired application programs can be run on it.

The booting process consists of loading the kernel and other necessary parts of the operating system into the computer's main memory from some storage device. This storage device is usually the built-in hard disk drive (HDD), but it can also be removable media such as a CDROM, floppy disk or USB key memory stick. The kernel is the core of the operating system, and it remains in memory for the duration of the time that the computer is in operation.

The term bootable is also used to refer to any removable storage device or any software that contains sufficient components of an operating system and other necessary utilities (e.g., for file decompression) such that it can be loaded into a computer's main memory and allow the computer to start up.

Perhaps the best known example of a bootable CDROM is the Knoppix liveCD. Knoppix is a distribution (i.e., version) of Linux that is based on the highly regarded Debian distribution. A liveCD allows any computer with a CD (compact disk) drive (or to which an external CD drive can be connected) and an appropriate processor to be converted almost immediately, but temporarily, into a computer having the same operating system as contained on the CDROM without installing having to anything on the computer's HDD. Thus, the Knoppix liveCD
allows virtually any computer with an x86 (i.e., Intel-compatible) processor to be converted almost immediately into a Linux computer.

Bootable CDROMs conform to the El Torito bootable CD specification, which is an extension to the ISO 9660, the standard CDROM specification. El Torito was first released in January 1995 as a joint proposal by IBM and Phoenix Technologies, a manufacturer of BIOSs (basic input output systems).

muLinux is a miniaturized distribution of Linux that is designed to fit on a single 1.44MB floppy disk and serve as a live floppy. That is, it can be used to boot and operate on any x86 computer that has a floppy disk drive (or to which an external floppy drive can be connected). Another operating system that is well suited for making into a bootable floppy is FreeDOS, which is a free clone of MS-DOS.

vmlinuz is the bootable, compressed Linux kernel executable. An executable, also called an executable file, is the ready-to-run form of a program. Unlike conventional executable files, however, vmlinuz does not require for an operating system to already be in memory in order for it to run, as it loads itself into memory at an early stage of the boot process.



Executable Definition



An executable file, also called an executable or a binary, is the ready-to-run (i.e., executable) form of a program.

A program is a sequence of instructions understandable by a computer's CPU (central processing unit) that indicates which operations the computer should perform on a set of data.

A file is a named collection of related data that appears to the user as a single, contiguous block of data and that is retained in storage. Storage refers to computer devices or media which can retain data for relatively long periods of time (e.g., years or decades), such as disk drives and magnetic tape. This contrasts with memory, which which retains its contents only briefly and which physically consists of RAM (random access memory) chips.

Executable files consist of instructions that have been translated from their original source code into machine code, also called machine language or object code through the use of a specialized program called a compiler so that the CPU can use them directly and without further translation. Machine code consists entirely of zeros and ones, which represent the off and on states of the CPU logic circuits and memory cells.

The object code files and any other necessary files (e.g., library files) are then linked together using a linker to create the executable. Linkers are generally included in compilers, and the linking is performed automatically.

Executable files are usually stored in one of several standard directories on the hard disk drive (HDD) on Unix-like operating systems, including /bin, /sbin, /usr/bin, /usr/sbin and /usr/local/bin. Although it is not necessary for them to be in these locations in order to be operable, it is often more convenient. When a program is launched, its executable file is copied into memory by the operating system so that its machine code will be immediately available to the CPU.

In operating systems in which the type of file is indicated by appending an extension after its name, executables are indicated by extensions such as .exe, .com or .bin. Such extensions are generally not necessary in Unix-like operating systems.

Although application programs usually come to mind when the term executable is used, this term also refers to scripts, utilities and even operating systems. A script is a small program written in a scripting language (i.e., a type of simplified programming language). Scripts are stored in plain text files that must be interpreted (i.e., converted on the fly into machine language) by a shell (a program that provides the traditional, text-only user interface for Unix-like operating systems) or other program each time they are executed, rather than being compiled in advance. Unix-like operating systems make extensive use of scripts for controlling the operation of the system.

vmlinuz is the Linux kernel executable. A kernel is a program that constitutes the central core of a computer operating system. In addition to being an executable, vmlinuz is also bootable. This means that it is capable of loading the operating system into memory so that the computer becomes usable and other executables can then be run.