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.