How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
The State of Java: Oracle's Strategy and Priorities for Java Platforms
1. The State of Java
Arun Gupta
Java Developer Advocate, Oracle
2. 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. 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
5. Open Source Strategy Comparison
Oracle doesn’t really have an open What's the business model? I
source-specific strategy. What we don't know. But if you don't
have is an overall company have adoption, it won't matter
strategy: to deliver complete, what business model you
open, integrated solutions to our use. Companies that sell
customers. Stacks of software and open source are prioritizing
hardware that are built together community and adoption
and tested together and serviced over instant monetization.
together. And open source is part
of that.
- Edward Screven, Chief Corporate Architect - Jonathan Schwartz, CEO
http://news.cnet.com/8301-13505_3-9757417-16.html
http://www.oracle.com/technetwork/issue-archive/2010/o40interview-086226.html
6. 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
7. The Spectrum of Java
Servers Desktop Embedded TV Mobile Card
BD-J
Java EE JavaFX Java TV MSA
Java SE Java ME Java Card
Java language
8. Priorities for our Java Platforms
Grow developer base
Grow adoption
Increase competitiveness
Adapt to change
10. How Java Evolves and Adapts
Community Development of
Java Technology Specifications
11. 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
12. 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
16. 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
Available Now
• JSR 203: NIO.2
17. 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";
}
. . .
18. 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";
}
}
. . .
19. 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!");;
}
}
}
20. 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!");
}
}
23. Java SE 8 Projects
• Project Lambda
– Lambda expressions
– Interface evolution
– Concurrent bulk data operations
• Modularity for Java SE
• Careful additions to the Java language
Late 2012 • Annotations on Java types
24. JDK 8 – Fall/Winter 2012
Features from “Plan B” Other Things On Oracle’s Wish List*
• Modularization • Serialization fixes
• Multicast improvements
• Language and VM Support
• Java APIs for accessing location, compass and other
• Platform Modularization ”environmental” data (partially exists in ME)
• Improved language interop
• Project Lambda
• Faster startup/warmup
• Lambda Expressions • Dependency injection (JSR 330)
• Default Methods • Include select enhancements from Google Guava
• Small Swing enhancements
• Bulk Data Operations
• More security/crypto features, improved support for
• Annotations on Java types (JSR 308) x.509-style certificates etc
• Internationalization: non-Gregorian calendars, more
• More Small Language Enhancements configurable sorting
• Project Coin part 2 • Date and Time (JSR 310)
• Process control API
* Many of these will undoubtedly NOT make JDK 8.
31. JavaFX is the evolution of the Java rich client platform, designed
to provide a lightweight, hardware accelerated UI platform that
meets tomorrow’s needs.
32. High-level Architecture
Developers program to
high-level APIs JavaFX APIs & Scene Graph
UI Toolkit
Prism Graphics Engine Media Web
Hardware acceleration &
Software fallback DirectX Engine Engine
Java 2D OpenGL
3D
Java Virtual Machine on Supported Platforms
33. JavaFX Roadmap
Jan May Oct
CY 2011 CY2012
Early Public GA Mac OS, Linux
Windows
Access Beta
✔ ✔
34. 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
37. The Java EE Journey
1998 2000 2002 2004 2006 2008 2010
J2EE 1.2 J2EE 1.3 J2EE 1.4 Java EE 5 Java EE 6
Servlet, EJB, JCA, WebSvcs, JPA, EJB3, More POJOs, Web
JSP, JMS, JAAS, JMX, Annotations, Profile, EJBLite,
Mail, … XML, CMP, Deployment, Faces, … Restful WS,
… … Injection, …
Web Services
Simplicity
Cloud
38. Java EE 6 : Simplified Development and Deployment
• Standardized POJO programming model
• Simplified deployment descriptors
• Simplified APIs
• Dependency injection
• RESTful web services
• Web Profile
Java Classes* Lines of Code* Lines of XML*
* Based on a Sample POJO/JPA/REST Based Application Built for JavaOne
39. Open Source and Commercial Implementations
Java EE 5: Widely Available Java EE 6: Fast Uptake
Available
Announced
40. 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
41. GlassFish and WebLogic Together
• Best open source application server with support from Oracle • Best commercial application server for transactional Java EE
applications and in near future, Java EE 6 Full Profile
• Open source platform of choice for OSGi or EE6 Web/Full Profile
• Platform of choice for standardization
• Focus on latest Java EE standards and community OSS innovation
• Focus on lowest operational cost and mission critical applications
• Certified interoperability and integration with Fusion Middleware
• Best integration with Oracle Database, Fusion Middleware & Fusion
Applications
Production Java Production Java
Application Deployment Application Deployment
Oracle GlassFish Server Oracle WebLogic Server
42. Beyond Java EE 6: Moving into the Cloud
•Develop
•Deploy
•Manage
43. Java EE Today – Roles and Responsibilities
Developer Deployer/Administrator
Java EE
Container Provider
44. Cloud Requires Data Center and Tenant Roles
Developer Application Administrator
Java EE Cloud
Container/Service Application
Provider Deployer
Tenant 1 Tenant 2 Tenant n
PaaS Administrator
45. 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
48. 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