Você está na página 1de 60

Java SE 6 Update N

Raghavan “Rags” N. Srinivas


CTO, Technology Evangelism
Sun Microsystems Inc.

1
Agenda
• State of Java
• Java SE 6 update N
• Java on the client (a reboot)
• Future

2
How Much Java
Technology Is Out There?
• >91% of all PCs run Java platform*
• ~77% of all Java technology-enabled PCs run Sun’s Java Platform,
Standard Edition (Java SE platform)**
• Distribution through PC OEMs
> Nine of the top ten PC OEMs ship the Sun JRE software
> Representing >60% of all shipped PCs
> 58 white box vendors have signed JRE software redistribution agreements
• Download/installs
> ~44m installations / month for the last six months on Windows
> >50M in Jan, Feb, April, 2007

* Omniture, April 2007


**Mapsolute/Map24.com, April 2007
3
Completed Java SE Platform
Downloads
Windows numbers only
55,000,000

50,000,000

45,000,000

40,000,000

35,000,000

30,000,000

25,000,000

20,000,000

15,000,000

10,000,000

5,000,000

0
1/2003 1/2004 1/2005 1/2006 1/2007

4
Agenda
• State of Java
• Java SE 6 update N
• Java on the client (a reboot)
• Future

5
Update N and Java FX
Java Comes Home to the Consumer

6
Consumer JRE

7
Consumer JRE

Project Hamburg

8
Consumer JRE

Project Hamburg

Java SE 6, Update X

9
Consumer JRE

Project Hamburg

Java SE 6, Update X

Java SE 6, Update N

10
Consumer JRE

Project Hamburg

Java SE 6, Update X

Java SE 6, Update N

Java SE 6, Update 10

11
Problems to fix
• Startup Time
• Install Time
• JRE Detection
• Applet support

12
Quickstarter
• “Coldstart” vs. “Warmstart”
• Root problem:
> Large files + Disk access speed
• Solution: QuickStarter
> Pre-warm the disk cache
• Note: QuickStarter != running VM
> Smaller footprint, more targeted disk pages

13
Problems to fix
• Startup Time
• Install Time
• JRE Detection
• Applet support

14
Install Time
• Java's not small
> J2SE 5.0: 7.1 MB
> Java SE 6: 10+ MB
> rt.jar: 40+ MB on disk
• Lots of bits being moved around
> Download, Unzip, Unpack200, Copying
• Solution: Java Kernel
> Download only core dependencies first
> Launch application
> Download and install in the background
15
Look Mom! We Shrunk the JRE

16
Problems to fix
• Startup Time
• Install Time
• JRE Detection
• Applet support

17
Deployment Toolkit
• Detecting Java from a web page is hard
> Does the user have Java?
> What version?
> How to get user to install and return?
• Result: Most applets use old (1.1) APIs
> Allows them to run compatibly on old versions
> e.g., MS VM
• Solution: Deployment Toolkit
> JavaScript hosted at Sun for general detection
> Plugins (ActiveX and Mozilla) for more specific detection
> Detect, start installation if necessary, launch

18
Detecting JREs
<script src="http://java.com/js/deployJava.js"></script>
<p>
Detected JREs: <b>
<script>
jres = deployJava.getJREs();
document.writeln(jres.length ? jres : "None");
</script>
</b>
</p>
19
Problems to fix
• Startup Time
• Install Time
• JRE Detection
• Applet support

20
Agenda
• State of Java
• Java SE 6 update N
• Java on the client (a reboot)
• Future

21
Applets are Back

22
Architectural Overview

Java Applet 1

Java Applet 2

HTML-Webpage Java Applet 3

23
Architectural Overview

Fat Client JVM 1


OS Process 2
Thin Server JVM

OS Process 1
Fat Client JVM 2
OS Process 3
24
Advantages

• Improved reliability
• Improved user experience
> Applets launch in the background
• Built-in JNLP support
• Per-applet command line arguments
> Heap size, Java 2D acceleration options, ...
• Improved Java/JavaScript integration
• Improved Windows Vista support
> Signed applets now work correctly in Protected Mode
Internet Explorer 25
Applets Reloaded
• Ground-up rewrite of the Java Plug-In
> Mostly in Java
• Advanced new architecture
> Out-of-process execution
• Major benefits
> Improved reliability
> Support for larger Java heap sizes for applets
> Better support for signed applets on Windows Vista
> Support for per-applet JVM command-line arguments
> Support for multiple simultaneous JRE versions
26
Compatibility
• Better than 97% backward compatibility
> Based on runs of hundreds of applets from throughout
the web
> Continuing to improve
• Applet lifecycle unchanged
> init(), start(), stop(), destroy()
• All services supported:
Browser proxy settings Browser certificate store
Browser authenticator Browser cookie store
showDocument() support Modality handling
Java/JavaScript integrationPrinting
27
JNLP Support
• Most significant new feature
• Unifies deployment between Java Web Start and
the Java Plug-In
> Simply choose the top-level container (Frame / Applet)
• Incorporate JNLP extensions trivially in applets
> JavaFX run-time libraries, JOGL, Java 3D, JAI
• Use JNLP APIs from applets
> PersistenceService, DownloadService, ...
• Full support for JVM command-line arguments, JRE
version selection, JRE auto-download
28
JNLP Support
<applet width=“300” height=“300”>
<param name=“jnlp_href”
value= “my_applet.jnlp”>
</applet>
<jnlp>
<resources>
<j2se version=”1.4+”
max-heap-size=”128m” />
<property name="sun.java2d.noddraw"
value="true"/>
<jar href=“my_applet.jar” main=“true”/>
<extension name= “jogl” href=“...”>
</resources>
<applet-desc name=“My Applet”
main-class=“MyApplet” ... />
</jnlp> 29
Java / JavaScript Support
• Completely rewritten Java / JavaScript integration
• More complete, reliable and portable than before
• Formerly Mozilla-specific functionality now working
in Internet Explorer
> Static method access
> Construction of new Java objects from JavaScript
• Opportunity to respecify and reintroduce
“LiveConnect”
• Opportunity to change the nature of AJAX

30
JavaFX Content in Applets
• JavaFX Script compiles down to Java classes
• Trivially hosted in applets
• Pull in JavaFX run-time libraries and dependent
libraries (scene graph, video, 3D) via JNLP
extensions
> Identical to deployment in an application
• Higher-level abstractions accelerate GUI application
development

31
Experimental Functionality
• New Java Plug-In technology supports dragging applets
out of the web browser as a deployment paradigm
> Applets are mini applications that run anywhere
> In and out of the browser
• Highly experimental
> Not guaranteed to be supported in this release or
future releases
> Functionality will very likely change
> Please provide feedback on Java Plug-In forum on
java.net

32
Experimental Functionality
• Enable with new applet parameter
<param name=”draggable” value=”true”>
• By default, Alt + Left-click + Drag anywhere in the
applet's region is the drag gesture
• Can be customized by providing a method on your applet
public boolean
isAppletDragStarted(MouseEvent e);

33
Experimental Functionality
• Applet is placed into a new top-level Frame
> Frame is used for Applet subclasses
> JFrame is used for JApplet subclasses
• By default, the new frame is undecorated and opaque
• Can change this, and perform other custom operations,
at the time the drag is initiated by providing a method on
your applet
public void appletDragStarted();
• At the time this method is called, your applet is in
the new top-level Frame, that Frame is
undecorated, and it is not yet visible

34
Experimental Functionality
• A separate “close button” separate from the Frame tracks
the movement of the Frame around the screen if
undecorated
• Can customize this by providing a method on your applet
public void
setAppletCloseListener(ActionListener a);

• If you implement this method, you should draw some sort


of close button in your applet's region
• Call the ActionListener when the close button is clicked
to initiate shutdown of your applet

35
Experimental Functionality
• While the web page where the applet came from is still
visible, the applet can still talk back to the browser
> Java/JavaScript calls still allowed
> Can still interact with the surrounding web page
• Once the page is closed, reloaded, or navigated away
from, the applet is disconnected from the browser
• Services provided to the applet degrade gracefully
> Java/JavaScript calls disallowed
> AppletContext.showDocument() is implemented by
opening a new browser window; target is ignored
> ...
• When applet is closed, normal applet teardown occurs
> stop() and destroy() are called
36
New Plugin Architecture
• Please test it and let us know!
> https://jdk6.dev.java.net/6uNea.html
• Windows:
> Java Control Panel, “Advanced” tab
> “Java Plug-In” node
> Select the checkbox:
> “Enable the next-generation Java Plug-in”
• Linux/Solaris
> Symlink to lib/{i386,sparc}/libnpjp2.so from firefox/plugins or
~/.mozilla/plugins directory
> Remove any old symlinks to libjavaplugin_oji.so

37
But Wait, There’s More!

38
Graphics Goodies
• Better Windows graphics performance
> GPU-accelerated, using Direct3D
> On by default
• Nimbus:
> Cross-platform look & feel
> More modern than current Metal look & feel
> Opt-in: Not the default look & feel
> Preserves backwards compatibility
> Design tool for creating new skins

39
Nimbus

40
Update whe[N]?
• Early Access (beta) available now
> https://jdk6.dev.java.net/6uNea.html
• GA planned for early second half of 2008

41
Agenda
• State of Java
• Java 6 update N
• Java on the client (reboot)
• Future

42
JavaFX

43
JavaFX Features
• Java FX Script
• Scene graph
• Media
• HTML
• Multiple Device

44
J a va F X S crip t

45
JavaFX Script
• Language
> Simple data binding
> Fast prototyping
> Declarative GUIs and graphics
> Easily programmed animations
• Compiler
> Interpreter (now): okay for demos
> Compiler (soon): necessary for real applications

46
S c e n e G ra p h

47
Scene Graph
• “Retained mode” graphics
> Versus immediate-mode 2D API
• More declarative model for:
> Graphics
> GUI
> Media
> Animation
• Used by FX Script
> Also usable from Java

48
Scene Graph
• Available!
• Open source project now available
> http://scenegraph.dev.java.net
• Early early (early) access form
> Functional
> APIs not final

49
Media

Media

Media

Media

Media
50
Client: old todo List

51
Client: Recent todo List

52
Media
• Media player component
> Video
> Audio
> Simple player component creation
• Modern CODECs
> native
> cross-platform

53
54
HTML
• Swing HTML support intentionally basic
• Need new component for “street HTML” rendering
• Will allow integrated Swing, graphics, and HTML
applications

55
56
JavaFX Mobile
• Java FX Script isn't just for desktop
> Java FX Mobile platform
• Development skills that carry between platforms
> Not mobile developers
> Developers with skills that are mobile
• Easier authoring of applications for multiple
devices

57
Resources
• Update N (beta)
> https://jdk6.dev.java.net/6uNea.html
• Java FX
> https://openjfx.dev.java.net/

58
Update N and Java FX
Java Comes Home to the Consumer

59
Java SE 6 Update N

Raghavan “Rags” N. Srinivas


rags@sun.com
Sun Microsystems Inc.

60

Você também pode gostar