the state of java under oracle at jcertif 2011

Post on 29-Nov-2014

5.575 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

The State of Java under Oracle at JCertif 2011

TRANSCRIPT

Arun GuptaJava Developer Advocate, Oracle

The State of Java

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.

Thank you Africa!

Oracle Strategy

• Deliver a complete, open, integrated stack of

hardware, infrastructure, database, middleware, and

business applications

• Exploit processor, systems, storage, and networking

trends to deliver breakthrough innovations by combining

Oracle software with Sun hardware

• Integrate components of Oracle’s software stack to

provide unique value to customers

Open Source Strategy Comparison

Oracle doesn’t really have an open

source-specific strategy. What we

have is an overall company

strategy: to deliver complete,

open, integrated solutions to our

customers. Stacks of software and

hardware that are built together

and tested together and serviced

together. And open source is part

of that.

What's the business model? I

don't know. But if you don't

have adoption, it won't matter

what business model you

use. Companies that sell

open source are prioritizing

community and adoption

over instant monetization.

- Edward Screven, Chief Corporate Architect - Jonathan Schwartz, CEO

http://www.oracle.com/technetwork/issue-archive/2010/o40interview-086226.htmlhttp://news.cnet.com/8301-13505_3-9757417-16.html

Middleware and Java in Oracle’s Strategy

• Comprehensive foundation for building and running

custom and packaged applications• Extremely well integrated

• Industry-leading reliability and performance

• Unified development and management

• Basis for Oracle Fusion applications

• Built with and for Java technology

Priorities for our Java Platforms

Grow developer base

Grow adoption

Increase competitiveness

Adapt to change

Java Communities

How Java Evolves and Adapts

Community Development of

Java Technology Specifications

JCP Reforms

•Developers’ voice in the Executive Committee–SOUJava

–Goldman Sachs

–London Java Community

–Alex Terrazas

•JCP starting a program of reform–JSR 348: Towards a new version of the JCP

JavaOne

•JavaOne 2011 is coming– October 2-6, San Francisco with dedicated venue

– 400+ sessions by Rock Star speakers

•Regional JavaOnes– Brazil

– Russia

– India

– China

•More coming this/next year

Java Platform, Standard Edition

Photo from http://www.flickr.com/photos/jeffanddayna/2637637797/in/photostream/ under creative commons

Available Now

Java SE 7 Highlights

• JSR 334: Java language enhancements (Project Coin)

• JSR 292: New bytecode to speed dynamic languages

on the JVM

• JSR 166y: New Fork/Join framework for concurrent

programming

• JSR 203: NIO.2

String in Switch – Before JDK 7

@Path("fruits")

public class FruitResource {

@GET

@Produces("application/json")

@Path("{name}")

public String getJson(@PathParam("name")String name) {

if (name.equals("apple") || name.equals("cherry") || name.equals("strawberry"))

return "Red";

else if (name.equals("banana") || name.equals("papaya"))

return "Yellow";

else if (name.equals("kiwi") || name.equals("grapes") || name.equals("guava"))

return "Green";

else if (name.equals("clementine") || name.equals("persimmon"))

return "Orange";

else

return "Unknown";

}

. . .

String in Switch – After JDK 7

@Path("fruits")

public class FruitResource {

@GET

@Produces("application/json")

@Path("{name}")

public String getJson(@PathParam("name")String name) {

switch (name) {

case "apple": case "cherry": case "strawberry":

return "Red";

case "banana": case "papaya":

return "Yellow";

case "kiwi": case "grapes": case "guava":

return "Green";

case "clementine": case "persimmon":

return "Orange";

default:

return "Unknown";

}

}

. . .

Automatic Resource Management – Before JDK 7

@Resource(name=“jdbc/__default”)

DataSource ds;

@javax.annotation.PostConstruct

void startup() {

Connection c = null;

Statement s = null;

try {

c = ds.getConnection();

s = c.createStatement();

// invoke SQL here

} catch (SQLException ex) {

System.err.println("ouch!");

} finally {

try {

if (s != null)

s.close();

if (c != null)

c.close();

} catch (SQLException ex) {

System.err.println("ouch!");;

}

}

}

Automatic Resource Management – After JDK 7

@Resource(name=“jdbc/__default”)

DataSource ds;

@javax.annotation.PostConstruct

void startup() {

try (Connection c = ds.getConnection(); Statement s = c.createStatement()) {

// invoke SQL here

} catch (SQLException ex) {

System.err.println("ouch!");

}

}

Multi-catch – Before JDK 7

out.println("</body>");

out.println("</html>");

} catch (ServletException ex) {

Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex);

} catch (MessagingException ex) {

Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex);

} catch (IOException ex) {

Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex);

} finally {

out.close();

}

Multi-catch – After JDK 7

out.println("</body>");

out.println("</html>");

} catch (ServletException | MessagingException | IOException ex) {

Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex);

} finally {

out.close();

}

Late 2012

• Project Lambda

– Lambda expressions

– Interface evolution

– Concurrent bulk data operations

• Modularity for Java SE

• Careful additions to the Java language

• Annotations on Java types

Java SE 8 Projects

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.

OpenJDK Momentum

JDK7 Now Available

• Download JDK

• openjdk.java.net

• Open project mailing lists

• Download NetBeans 7.0.1

• netbeans.org

• JDK 7 support

• Download from oracle.com/javase

Java for Client Platforms

100% of Blu-ray Disc players

Millions of SIM cards

Millions of feature phones

Java Client Deployment

75m desktops updated/month

Java Pioneered Rich Client ApplicationsBut developers had to learn multiple technologies

JavaFX Simplifies Application DevelopmentDevelopers focus on capabilities instead of technologies

JavaFX is the evolution of the Java rich client platform, designed

to provide a lightweight, hardware accelerated UI platform that

meets tomorrow’s needs.

UI Toolkit

Java 2DDirectX

3DOpenGL

JavaFX APIs & Scene Graph

Hardware acceleration &

Software fallback

Developers program to

high-level APIs

High-level Architecture

Java Virtual Machine on Supported Platforms

Prism Graphics Engine Media

EngineWeb

Engine

JavaFX Roadmap

Mac OS, Linux

CY2012CY 2011

Jan May Oct

Early

Access✔

Public

Beta✔

GAWindows

Java ME 2011 Focus

• ME.next to modernize platform

• Integration of web technologies

• New device APIs

– Near-field communication, Sensors, Accelerometers, etc

• Scalable, high performance runtime solutions

Oracle Java ME Products

• Commercial implementations

– Oracle Java Wireless Client

– Oracle Java Embedded Client

• Developer products

– Java ME SDK

– Java Card SDK

– LWUIT

– NetBeans IDE Mobility Pack

Java Platform, Enterprise Edition

The Java EE Journey

1998 2000 2002 2004 2006 2008 2010

J2EE 1.2

Servlet, EJB,

JSP, JMS,

Mail, …

J2EE 1.3

JCA,

JAAS,

XML, CMP,

J2EE 1.4

WebSvcs,

JMX,

Deployment,

Java EE 5

JPA, EJB3,

Annotations,

Faces, …

Java EE 6

More POJOs, Web

Profile, EJBLite,

Restful WS,

Injection, …

Web Services

Simplicity

Cloud

Lines of Code* Lines of XML*Java Classes*

* Based on a Sample POJO/JPA/REST Based Application Built for JavaOne

Java EE 6 : Simplified Development and Deployment

• Standardized POJO programming model

• Simplified deployment descriptors

• Simplified APIs

• Dependency injection

• RESTful web services

• Web Profile

Available

Announced

Java EE 5: Widely Available Java EE 6: Fast Uptake

Open Source and Commercial Implementations

GlassFish Areas of Focus

• First to market for new platform versions

• Continued emphasis on developer-friendly characteristics & popular OSS

• Production quality deployment features

– Clustering in current 3.1 release

– Web & Full Profile Java EE6 applications

• Shared components with WebLogic Server

– Ref Implementation APIs: JPA, JAX-RS, JSF, JAX-WS, JSTL, JAXP, JAXB, CDI

– Web server plug-ins

• Certified Interoperability with WebLogic

– Web Services, OAM, RMI

Oracle WebLogic Server

Production Java Application Deployment

Oracle GlassFish Server

Production Java Application Deployment

• Best commercial application server for transactional Java EE applications and in near future, Java EE 6 Full Profile

• Platform of choice for standardization

• Focus on lowest operational cost and mission critical applications

• Best integration with Oracle Database, Fusion Middleware & Fusion Applications

GlassFish and WebLogic Together

• Best open source application server with support from Oracle

• Open source platform of choice for OSGi or EE6 Web/Full Profile

• Focus on latest Java EE standards and community OSS innovation

• Certified interoperability and integration with Fusion Middleware

Beyond Java EE 6: Moving into the Cloud

•Develop

•Deploy

•Manage

Java EE Today – Roles and Responsibilities

Deployer/AdministratorDeveloper

Container Provider

Java EE

Cloud Requires Data Center and Tenant Roles

Tenant 1 Tenant 2 Tenant n

PaaS Administrator

Application AdministratorDeveloper

Container/Service

Provider

Application

Deployer

Java EE Cloud

Clouds Parting: Java EE 7

• Cloud computing is the major theme

– Java EE as a managed environment

– Application packaging reflecting new roles

– Application isolation and versioning

– In-place application upgrade

• Also significant Web Tier updates

– Web sockets, HTML5/JSF, standard JSON, NIO.2

• JSRs approved by the JCP !

– JSR 342: Java Platform Enterprise Edition 7

• More candidate component JSRs

– JSR 236 : Concurrency Utilities for Java EE

– JSR 107: JCache

– JSR 347: DataGrids for Java EE

Java Tooling

Java Developer Tools

NetBeans 2011

• Over 1,000,000 active users

• NetBeans 7.0.1

– JDK 7 and Java editor support

– Glassfish 3.1 support, WLS and Oracle database support improvements

– Maven 3 and HTML 5 editing support

• Two planned releases for 2011

• More information

– http://download.netbeans.org/7.0/

– http://netbeans.org/community/releases/roadmap.html

A presentation isn’t an obligation,

It’s a privilege.by Seth Godin

Thank you!

Arun Gupta, arun.p.gupta@oracle.comJava Developer Advocate, Oracle

blogs.oracle.com/arungupta, @arungupta

The State of Java

top related