Java Plattform Strategie

Werbung
Java Plattform
Strategie
Wolfgang Weigend
Sen. Leitender Systemberater
Java Technologie und Architektur
Peter Doschkinow
Senior Java Architect
1
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
The following is intended to outline our general
product direction. It is intended for information
purposes only, and may not be incorporated into
any contract. It is not a commitment to deliver any
material, code, or functionality, and should not be
relied upon in making purchasing decisions. The
development, release, and timing of any features
or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
2
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Die Java Plattform
Servers
Desktop
Embedded
TV
Mobile
Card
BD-J
Key APIs
Platform
Java EE
JavaFX
Java SE
Language
Java TV
Java ME
Java Language
Java Platform
3
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
MSA
Java Card
Wie sich die Java Plattform
schrittweise verändert
•
•
•
•
•
•
•
•
4
Java Community
JDK 7 Review
JDK 8 und darüber hinaus
Entwicklungsumgebung
JavaFX & OpenJFX
Java ME
Java EE
Zusammenfassung
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Java Communities
5
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Executive Member Merge Projekt JSR-355
SE/EE
Executive
Committee
•
ME
Executive
Committee
JCP
Executive
Committee
25
Veränderungen im JCP Prozess 2.9 Dokument mit Verschmelzung beider Executive Komitee Mitglieder zu einem einzigen
Executive Komitee
•
•
Executive Committee (EC) Elections 2012
–
New and re-elected merged EC Members
–
Ratified Seats:
–
Open Election Seats: CloudBees, London Java Community
–
Newly elected EC Members take their seats on 13th of November 2012
Cinterion Wireless Modules GmbH, Credit Suisse, Fujitsu Limited, Hewlett-Packard
In the merged Executive Committee, Voting Members serve 2-year terms; by 2013, there will be 16 Ratified Seats and 8
Elected Seats, and the permanent seat held by Oracle America, Inc. 2-year terms are staggered so that 12 of the 24 seats are
normally up for ratification/election each year
6
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
A major Revision of the Java
Community Process: JSR-358
• Change of Java Specification Participation Agreement (JSPA)
• Independent Implementations (Not derived from the RI)
• Licensing and Open Source
• Transparency Requirements
• Compatibility Policy and TCKs
• The Role of Individual Members
• Patent Policy
• Intellectual Property Flow
• Refactoring and Cleanup
7
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Zusammenarbeit mit der Community
• OpenJDK Mitglieder: IBM, Apple, SAP, Azul Systems, Twitter
• OpenJDK Community Richtlinien verabschiedet
• JVM Language Summit (Jährlich)
30. Juli – 1. August 2012, Santa Clara Campus
−
• JUG Leaders Call alle zwei Wochen
• JUG Leader Summit im Januar (Jährlich)
• Über 250 JUGs aus 50 Ländern am JDK 7 Launch beteiligt
• Community Keynote auf der JavaOne 2012
–
8
30. September – 4. Oktober 2012, San Francisco
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Verwirklichte Pläne und neue Projekte
JVM Konvergenz
JDK 7
Open Source
• Available for Windows, Linux,
Solaris, embedded platforms
• Initial JRockit/HotSpot
Konvergenz in JDK 7
• OpenJDK official Java SE 7
Reference Implementation
• Mac OS X seit JDK7u4
• No more Perm-Gen
• OpenJDK project initiated for JDK 8
• Java Flight Recorder
• Early Access Releases
JDK 8 Build b65
• Memory-Leak Server
• [email protected]
Ziele der JVM Verschmelzung (HotRockit)
9
−
−
−
−
Maximale Performance und Skalierbarkeit
Multi-Core und Parallelisierungs Optimierungen
Feingranulares Monitoring, Profiling und Management
Extrem effiziente Garbage Collection
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
JDK 7 Update Releases
Fehlerbereinigung
• Projekt entwickelt Updates für JDK 7
• Sponsor ist die Build Group
• Mailing Liste lautet jdk7u-dev
− Technische Diskussion zum JDK 7 Updates Projekt
− Archive vorhanden
− Nachrichten an alle Teilnehmer verschicken:
•
[email protected]
− jdk7u-dev Subscription
• Java SE 7 Update Release verfügbar: JDK 7u9
− Changesets und aktuelle Änderungen in Java SE 7u10
7u-dev accepting 7u12 fixes
− Projekt Feedback Forum für Java SE Snapshots
− Report a Bug, oder Request a Feature
10
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
JDK 7 Funktionsumfang
• Coin – Kleine Sprachverbesserungen (JSR-334)
• Dynamic Language Support (JSR-292)
• Concurrency und Collections Updates (JSR-166y)
• Netzwerk und File System (JSR-203)
• Sicherheit
• Internationalisierung
• JVM Konvergenz
11
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Languages Running on the JVM
Groovy
JRuby
…
…
Scala
Clojure
12
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
JavaScript
Java SE Roadmap
Major Serviceability improvements
JDK 8
JDK 9
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Java Flight Recorder in JDK
Native Memory Tracking
Java Discovery Protocol
App Store Packaging Tools
Last Public Release of JDK 6
2013
Lambda
Complete JVM Convergence
JavaScript Interoperability
JavaFX 8
− Public UI Control API
− Java SE Embedded support
− Enhanced HTML5 support
2014
Jigsaw
Interoperability
Optimizations
Cloud
Ease of Use
JavaFX JSR
2015
NetBeans IDE 7.3
NetBeans IDE 8
NetBeans IDE 9
• Scene Builder 1.1 support
• JDK 8 support
• Scene Builder 2.0 support
• JDK 9 support
• Scene Builder 3.0 support
Scene Builder 2.0
Scene Builder 3.0
• JavaFX 8 support
• Enhanced Java IDE support
• JavaFX 9 support
Scene Builder 1.1
• Linux support
13
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
13
JDK 8 geplant für September 2013
• Feedback der Community – Zwischen den neuen JDKVersionen werden 2 Jahre Zeit benötigt
• Release Datum September 2013
• Funktionsumfang:
− Projekt Lambda (JSR-335)
− JavaScript Interoperabilität
− Device-Unterstützung
• Weitere kleine Sprachverbesserungen
im Projekt Coin Teil 2
• Java SE 8 Early Access Releases
− JDK 8 Build b65
14
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
JDK 8 – Zeitplan
Detailplanung M6 bis Release-Freigabe
•
15
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
M6 Feature Complete — All features have been implemented and integrated into
the master forest, together with unit tests
−
101 Generalized Target-Type Inference
−
104 Annotations on Java Types
−
107 Bulk Data Operations for Collections
−
108 Collections Enhancements from Third-Party Libraries
−
109 Enhance Core Libraries with Lambda
−
115 AEAD CipherSuites
−
118 Access to Parameter Names at Runtime
−
120 Repeating Annotations
−
123 Configurable Secure Random-Number Generation
−
126 Lambda Expressions and Virtual Extension Methods
−
135 Base64 Encoding and Decoding
−
150 JSR 310: Date and Time API
−
156 G1 GC: Reduce need for full GCs
−
160 Lambda-Form Representation for Method Handles
JDK 8
Innovation
Java for Everyone
Client
• Lambda JSR 335
• Profiles for constrained devices
• Deployment enhancements
• Language Interoperability
• JSR 310 – Date & Time API‘s
• JavaFX 8
• Nashorn
• Non-Gregorian calendars
• Public UI Control API
• Unicode 6.1
• Java SE Embedded support
• ResourceBundle
• Enhanced HTML5 support
• BCP47 locale matching
• 3D shapes and attributes
• Globalization & Accessibility
• Printing
Tools
Security
• Compiler control & logging
• Limited doPriviledge
General Goodness
• JSR 308 – Annotations on Java Type
• NSA Suite B algorithm support
• JVM enhancements
• Native app bundling
• SNI Server Side support
• No PermGen limitations
• App Store Bundling tools
• DSA update to FIPS186-3
Core Libraries
• Parallel operations for core
collections API‘s
• Improvements in functionality
• Improved type inference
• Performance Improvements
16
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
• AEAD JSSE CipherSuites
Lambda Ausdrücke JSR-335
• Functional Interfaces: “An interface with one method”
• Vorschlag zum Sprachumfang von Java SE 8
− 0.5.1 Early Draft Review 2 Specification vom 19. Juli 2012
file:///C:/Java/jsr335-0.5.1/index.html
− Prototype Binaries verfügbar: http://jdk8.java.net/lambda/
• Lambda Expressions (closures)
/* (int
x,
int
y)
{return
x+y; } */
• Parameter Liste → -> Operator → Expression od. Statements
(String x) -> {return !x.isEmpty();}
• Was hergeleitet werden kann, kann auch weggelassen werden
x -> !x.isEmpty()
17
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
JDK 9 und die Vision darüber hinaus
Modularität
• Projekt Jigsaw: komplette Plattform Modularisierung
• Module system for Java applications and the Java platform
Interoperability
• Multi-language JVM
• Improved Java/Native integration
Cloud
• Multi-tenancy support
• Resource management
Ease of Use
• Self-tuning JVM
• Language enhancements
Advanced Optimizations
• Unified type system
• Data structure optimizations
Works Everywhere and
with Everything
• Scale down to embedded, up to massive servers
• Support for heterogenuous compute models
18
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
JDK 9 und darüber hinaus (2)
• Jigsaw
• Reification
• Ease of use
• Optimizations
• Generic Lang Interoperability
• Penrose
• OpenJFX
• Project Sumatra – Java for GPUs
• More and more Ports
• Multi-Tenancy
• Self Tuning JVM
• Improved Native Integration
• Resource Management
• Unified Type System
• Data Structure Optimizations
19
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Modularisierung im JDK
Projekt Jigsaw Java Module System
module com.greetings @ 0.1 {
requires org.astro @ 1.2;
class com.greetings.Hello;
}
package com.greetings;
import org.astro.World;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, " + World.name() + "!");
}
}
module org.astro @ 1.2 { }
package org.astro;
public class World {
private static native byte[] getName();
static {
System.loadLibrary("world");
}
public static String name() {
return new String(getName());
}
}
20
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
OpenJDK Projekt “Penrose”
Vereinte Modularisierung
•„Penrose“ soll OSGi mit Jigsaw vereinen
• Interoperabilität zwischen Projekt Jigsaw und
den OSGi Implementierungen
• Existierendes hohes Investment in OSGi Technologie
• Entwickler Beteiligung zur Statusbeobachtung und
Einflußnahme bei Zusammenarbeit der Module-Systeme
• Erstellung eines Prototypen zur Demonstration
der Module-System-Interoperabilität
• Technische Diskussion:
21
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
[email protected]
NetBeans IDE 7.2.1
• Entwicklungswerkzeug für Desktop, mobile und Web Anwendungen
−
Java EE 6, Java SE 6 (REST, CDI, JPA), Java SE 7, Swing, JavaFX
Java Editor support for Project Coin (Diamond Operator, Strings in switch, Multi-catch)
Bulk Refactoring of projects and packages to Java SE 7
JavaFX 2.0 Full edit/compile/debug cycle support
Visual Debugging of JavaFX apps
Native Integration mit FindBugs
− Java ME und Embedded
− PHP, Ruby, Groovy, C / C++
− HTML5 Editing, JSON Formatter
− Debugger, Profiler, Refactoring
• Läuft auf MS Windows, Linux, Mac OS X und Solaris
• NetBeans IDE ist open-source und frei verfügbar
• Feature Liste & Builds
netbeans.org/community/releases/roadmap.html
• NetBeans IDE 7.3 Beta 2 Release
http://netbeans.org/community/releases/73/
New and Noteworthy NB73
22
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Unterstützung für eclipse IDE
• Eclipse Projekte mit Werkzeugen und Frameworks
• Ganzheitliche Unterstützung vom Software Development Lebenszyklus
− Modellierung
− Entwicklung
− Deployment Werkzeuge
− Reporting
− Daten Manipulation
− Testing und Profiling
• Primärer Fokus zur Entwicklung von Anwendungen
− Java EE, Web Services und Web Anwendungen
• Eclipse Unterstützung für andere Programmiersprachen
− C/C++, PHP, andere
23
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
JavaFX 2.x
JavaFX als strategische UI für Rich-Client-Applikationen
Einheitliche Applikationsentwicklung für Java und Web-Lösungen
•
•
•
Browser Plug-in, Web Start, Native Executables
Hardware Accelerated Graphics (DirectX, OpenGL)
JavaFX wird mit HTML-DOM ausgestattet
−
−
−
JavaFX mit WebView für HTML5 Features (Web Sockets, offline Browsing, lokale Datenbank)
Leistungsfähige JavaScript Engine
JavaFX als Applet eingebettet in einer Web-Seite lauffähig
JavaFX 2.0 Plattform Sprachwechsel
•
Java als native Sprache - anstatt JavaFX Script
•
JavaFX APIs in Java implementiert
•
Vorteile bei Verwendung von Generics, Annotations und Multithreading für JavaFX
JavaFX 2.2.3 verfügbar und mit NetBeans 7.2.1 unterstützt
•
•
•
Migrationspfad für Swing- und SWT-basierte Anwendungen
JFXPanel Komponente ermöglicht das Einbinden von JavaFX Anwendungen in Swing
Open Source mit OpenJFX und im JCP standardisiert
JavaFX Scene Builder 1.1 Developer Preview
24
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
JavaFX 2.2 und darüber hinaus
Embedded
Writeable Image
Pagination
HTTP Live Streaming
Printing
Mac
SWT
Scene
Builder
for Linux
Rich Text
3D
Canvas
Performance
25
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
3rd
Party Controls
SwingNode
Linux
Multi-Touch
1080p
ComboBox
h.264
Advanced Cells
Complex Text
i18n
Native Deployment
Snapshot
Accessibility
ColorPicker
ARM
JavaFX via Open Source auf dem Weg ins JDK 8
Open Source
Konvergenz
Standardisierung
OpenJFX Project under Common license with
Oracle committed to
JavaFX standardization
First phase to focus on JavaFX to be included
JSR to be submitted
through JCP
OpenJDK
UI Controls
Java SE (in place)
in Java SE by JDK 8
JavaFX for Java SE
Embedded (ARM)
27
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Java Embedded
Smart Energy & mHealth
Multi-function
Embedded Devices
Sensors & Micro controllers
Personal Devices
Communications
28
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Industrial controls &
Network Appliances
Smart Appliances &
Consumer Electronics
Connected Vehicles
Neue Embedded Versionen
Java ME Embedded 3.2
Java Embedded Suite 7.0
Runtime for small embedded
devices: Microcontroller
class platforms
Pre-integrated full featured
Java Embedded Platform
3.1.1
DB
Embedded
EDGE DEVICES
29
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
GATEWAYS/CONCENTRATORS
Enterprise Data &
Applications
Java EE Past, Present, & Future
Productivity
& HTML5
Java EE 7
Lightweight
Enterprise
Java Platform
Robustness
J2EE 1.3
J2EE 1.2
Servlet, JSP,
EJB, JMS,
RMI/IIOP
CMP,
Connector
Architecture
Dec 1999
10 specs
Sep 2001
13 specs
30
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Web
Services
J2EE 1.4
Ease of
Development
Java EE 5
Java EE 6
Pruning,
Extensibility
Ease of Dev,
CDI, JAX-RS
Web
Services
Mgmt,
Deployment,
Async
Connector
Ease of
Development,
Annotations,
EJB 3.0, JPA,
JSF, JAXB,
JAX-WS,
StAX, SAAJ
Web Profile
Nov 2003
20 specs
May 2006
23 specs
Dec 2009
28 specs
JMS 2.0,
Batch,
Caching, TX
Interceptor,
WebSocket,
JSON
JAX-RPC,
CMP/ BMP,
JSR 88
Web Profile
JAX-RS 2.0
Servlet 3.0,
EJB 3.1 Lite
Q2 2013
32+ specs
Java EE 7 Revised Scope
• PaaS theme postponed for Java EE 8
• HTML5 Support
– WebSocket, JSON
– HTML5 Forms
• Higher Productivity
– Less Boilerplate
– Richer Functionality
– More Defaults
31
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Many other Improvements
• JPA 2.1: Schema generation, unsynchronized PC,
converters, …
• EJB 3.2: Optional CMP/BMP, Ease-of-use, Refactoring, …
• JSF 2.2: @FlowScoped, HTML5 data-* attributes, …
•
•
•
•
32
Servlet 3.1: Non-blocking IO, Upgrade to WebSocket, …
EL 3.0: Lambda expressions, Collection, Operators, …
JTA 1.2: Transactional interceptors
CDI 1.1: Ordering of interceptors, Servlet events, …
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Java EE 7 and Beyond
Standards-based cloud programming model
• Deliver cloud architecture
• Multi tenancy for SaaS applications
• Incremental delivery of JSRs
• Modularity based on Jigsaw
33
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Storage
JSON-B
Concurrency
NoSQL
Multitenancy
Java EE 7
Cloud
PaaS
Enablement
Thin Server
Architecture
Project Easel - Advanced Tooling für HTML 5
• Provides the foundation for tooling support
• Consume Java EE based services with today’s popular JavaScript
frameworks
• HTML5 Application Development
− HTML5 Application project with JavaScript testing support
− JavaScript Editor significantly improved
− Page inspector and visual CSS style editor
− JavaScript Debugger
− Embedded Web Kit browser; deep integration with Chrome
34
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Zusammenfassung
Java SE 7
– Incremental changes
– Evolutionary, not revolutionary
– Good solid set of features to make developers life easier
Java SE 8
– Major new feature: Lambda
Java SE 9
– Modularisation: Jigsaw
Java EE 7 with new APIs
Java EE 8 with PaaS
Java continues to grow and adapt to the changing world of IT
35
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Vielen Dank für Ihre Aufmerksamkeit!
[email protected]
[email protected]
36
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Oracle Kundenumfrage
Nehmen Sie an unserer Umfrage teil
und gewinnen Sie ein Apple iPad!
Fragebögen am Oracle Stand oder
im Smartphone ausfüllen. Einfach
den QR-Code scannen.
http://apex.oracle.com/pls/apex/f?p=201211
37
Copyright © 2012, Oracle and/or its affiliates. All rights
reserved.
Herunterladen