Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

Post on 05-Dec-2014

1.306 views 0 download

description

 

Transcript of Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti

Evolución de la Plataforma Java y lo que Significa para Ti

Gustavo Garnica

Java SE and EE: The platform evolution, and what it means to you

Gustavo Garnica

Middleware Architect

3

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.

4

What does Java 7 (and 8) mean to you?

• IT professional

• Non-Java Developer

• Java SE Developer

• Java EE Developer

• Oracle

5

IT professional

6

http://commons.wikimedia.org/wiki/File:Alexander_cuts_the_Gordian_Knot.jpg

7

8

Non-Java Developer

9

JSR 292

• Invokedynamic

10

Java Developer

11

Project Coin – JSR 334

http://www.flickr.com/photos/chefranden/908539119/

12

Coin (1) Strings in switch

String s = ...

switch(s) {

case "foo":

processFoo(s);

break;

}

13

Coin (2) Changes to literals

• 1234_5678

• 1_2_3_4__5_6_7_8L

• 0b0001_0010_0100_1000

• 3.141_592_653_589_793d

• 0x1.ffff_ffff_ffff_fP1_023 // Double.MAX_VALUE

14

Coin (3) Multi Catch

try {

doWork(file);

} catch (IOException ex) {

logger.log(ex);

}

catch (SQLException ex) {

logger.log(ex);

}

try {

doWork(file);

} catch (IOException|SQLException

ex) { logger.log(ex);

}

15

Coin (4) Diamond operator

Map<String,List<String>> m = new HashMap<String,List<String>>();

Map<String,List<String>> m = new HashMap<>();

16

Coin (5) Try with resources

try (AutoclosableResource) {

// Do stuff

}

// closed here

17

Concurrency and Collections Updates - JSR 166yLightweight Fork/Join Framework

1970 1975 1980 1985 1990 1995 2000 2005 2010

1

10

100

1,000

10,000

1,000,000

100,000

10,000,000

Clock (MHz)

Transistors (1,000s)

18

Network and File System – JSR 203NIO.2

• NIO.2

• NIO.2 file system Provider for ZIP and JAR Archives

• SCTP (Stream Control Transmission Protocol)

• SDP (Sockets Direct Protocol)

• (New) Enhanced JMX agent and MBeans

19

Security

• Native ECC (Elliptic Curve Cryptography)

• ASLR (Address space layout randomization)

• DEP (Data Execution Prevention) – Windows Only

20

Internationalization

• Unicode 6.0

• IETF BCP47 and UTR35

– One language many character codes

– Three-letter base language codes

• Separate user locale and user interface locale

21

Other Enhancements

• JAXP 1.4.4

• JAXWS 2.2

• JAXB 2.2

• JDBC 4.1

• Rowset 1.1

• Javadoc support for stylesheets

22

JDK 7 Platform Support

• Windows x86– Server 2008, Server 2008 R2, 7 & 8 (when it GAs)

– Windows Vista, XP

• Linux x86– Oracle Linux 5.5+, 6.x

– Red Hat Enterprise Linux 5.5+, 6.x

– SuSE Linux Enterprise Server 10.x, 11.x

– Ubuntu Linux 10.04 LTS, 11.04

• Solaris x86/SPARC– Solaris 10.9+, 11.x

• Apple OSX x86– will be supported post-GA, detailed plan TBD

Note: JDK 7 should run on pretty much any Windows/Linux/Solaris.

23

JDK 8 – Fall/Winter 2012

• Modularization

• Language and VM Support

• Platform Modularization

• Project Lambda

• Lambda Expressions

• Default Methods

• Bulk Data Operations

• Annotations on Java types (JSR 308)

• More Small Language Enhancements

• Project Coin part 2

Features from “Plan B”

• Serialization fixes

• Multicast improvements

• Java APIs for accessing location, compass and other ”environmental” data (partially exists in ME)

• Improved language interop

• Faster startup/warmup

• Dependency injection (JSR 330)

• Include select enhancements from Google Guava

• Small Swing enhancements

• More security/crypto features, improved support for x.509-style certificates etc

• Internationalization: non-Gregorian calendars, more configurable sorting

• Date and Time (JSR 310)

• Process control API

Other Things On Oracle’s Wish List*

* Many of these will undoubtedly NOT make JDK 8.

24

Java EE Developer

25

The Cloud is Making Developers Restless

• Enterprise developers want cloud solutions from their own IT

– IT provides the SLA

– Developers want:

• Hosted cloud services

• On-demand provisioning

• Reliable scale

• Virtualization is a valuable tool

• Java EE has solved similar challenges for enterprises in the

past

26

Today’s Cloud Offerings Are Vendor-Specific

Infrastructure as

a Service

Platform as

a Service

Software as

a Service

27

Core Java EE7 specification work

• Leverage solid EE6 Uptake and Developer Reception

• EE7 Underway with Broad Industry Participation

– New Caching and Data Grid APIs

– New JMS Includes Simplified Programming Model and Cloud

Enablement

– Expanded REST Support with Client API, Filters, Validation

– Multi-Tenancy Awareness Across the Platform

– Dependency Injection More Integrated and Unified Across Java

EE

28

Java EE for the Cloud : JSR 342

• Evolution, not revolution

• More easily operate on private/public clouds

– Multi-tenancy

– Elasticity

• Better isolation between applications

• Potential standard APIs for Caching, etc.

• Common management and monitoring interfaces

• Better packaging

29

Oracle

30

Oracle’s Java StrategyIn Order of Priority

1. A Vibrant Java Ecosystem

2. Generate Revenue.

3. Lower Costs

31

JVM ConvergenceProject “HotRockit”

• Java SE 7 Support

• Rebranding

• No PermGen (stretch goal)

• Improved JMX Agent

• Command line servicability tool (jrcmd)

• JRockit Mission Control Console support

JDK 7 GA

= Premium Feature

• Performance

• Initial JRockit Flight Recorder Support

JDK 7 Update X

• Better performance

• Improved command line servicability (jrcmd)

• G1 complete as CMS replacement

• Non-contiguous heaps

• Complete JRockit Flight Recorder Support

• JRockit Virtual Edition Support

• Soft Real Time GC

JDK 7 Update Y

• Java SE 8 Support

• All performance features from JRockit ported

• I/O Performance

• JIT Optimizations

• All servicability features from JRockit ported

• Compiler controls

• Verbose logging

• JRockit Mission Control Memleak Tool Support

JDK 8 GA

32

Get Involved!

• Participate in the OpenJDK Community

http://openjdk.java.net

• Become a member of the Oracle Technology

Network

http://oracle.com/OTN

• Join a Java User Group near you

http://java.net/jugs/java-user-groups

• Get involved with the Java Community Process

http://jcp.org

33

34