The State of Java under Oracle at JCertif 2011
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


The State of Java under Oracle at JCertif 2011

Uploaded on

The State of Java under Oracle at JCertif 2011

The State of Java under Oracle at JCertif 2011

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 2,841 1,857 972 3 2 2 2 1 1 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. The State of JavaArun GuptaJava Developer Advocate, Oracle
  • 2. The following is intended to outline our generalproduct direction. It is intended for informationpurposes only, and may not be incorporated intoany contract. It is not a commitment to deliver anymaterial, code, or functionality, and should not berelied upon in making purchasing decisions.The development, release, and timing of anyfeatures or functionality described for Oraclesproducts remains at the sole discretion of Oracle.
  • 3. Thank you Africa!
  • 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 ComparisonOracle doesn’t really have an open Whats the business model? Isource-specific strategy. What we dont know. But if you donthave is an overall company have adoption, it wont matterstrategy: to deliver complete, what business model youopen, integrated solutions to our use. Companies that sellcustomers. Stacks of software and open source are prioritizinghardware that are built together community and adoptionand tested together and serviced over instant monetization.together. And open source is partof that. - Edward Screven, Chief Corporate Architect - Jonathan Schwartz, CEO
  • 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
  • 9. Java Communities
  • 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
  • 13. Java Platform, Standard Edition
  • 14. Photo from under creative commons
  • 15. 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 programmingAvailable Now • JSR 203: NIO.2
  • 16. 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"; }. . .
  • 17. 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"; } }. . .
  • 18. Automatic Resource Management – Before JDK 7@Resource(name=“jdbc/__default”)DataSource ds;@javax.annotation.PostConstructvoid 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!");; } }}
  • 19. Automatic Resource Management – After JDK 7@Resource(name=“jdbc/__default”)DataSource ds;@javax.annotation.PostConstructvoid startup() { try (Connection c = ds.getConnection(); Statement s = c.createStatement()) { // invoke SQL here } catch (SQLException ex) { System.err.println("ouch!"); }}
  • 20. 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(); }
  • 21. 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();}
  • 22. 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
  • 23. 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.
  • 24. OpenJDK Momentum
  • 25. JDK7 Now Available • Download from • Download JDK • • Open project mailing lists • Download NetBeans 7.0.1 • • JDK 7 support
  • 26. Java for Client Platforms
  • 27. Java Client Deployment 75m desktops updated/month 100% of Blu-ray Disc players Millions of SIM cards Millions of feature phones
  • 28. Java Pioneered Rich Client ApplicationsBut developers had to learn multiple technologies
  • 29. JavaFX Simplifies Application DevelopmentDevelopers focus on capabilities instead of technologies
  • 30. JavaFX is the evolution of the Java rich client platform, designedto provide a lightweight, hardware accelerated UI platform thatmeets tomorrow’s needs.
  • 31. High-level ArchitectureDevelopers 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
  • 32. JavaFX RoadmapJan May Oct CY 2011 CY2012 Early Public GA Mac OS, Linux WindowsAccess Beta ✔ ✔
  • 33. Java ME 2011 Focus• to modernize platform• Integration of web technologies• New device APIs – Near-field communication, Sensors, Accelerometers, etc• Scalable, high performance runtime solutions
  • 34. 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
  • 35. Java Platform, Enterprise Edition
  • 36. The Java EE Journey1998 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
  • 37. 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
  • 38. Open Source and Commercial ImplementationsJava EE 5: Widely Available Java EE 6: Fast Uptake Available Announced
  • 39. 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
  • 40. 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
  • 41. Beyond Java EE 6: Moving into the Cloud •Develop •Deploy •Manage
  • 42. Java EE Today – Roles and Responsibilities Developer Deployer/Administrator Java EE Container Provider
  • 43. Cloud Requires Data Center and Tenant Roles Developer Application Administrator Java EE CloudContainer/Service ApplicationProvider Deployer Tenant 1 Tenant 2 Tenant n PaaS Administrator
  • 44. 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
  • 45. Java Tooling
  • 46. Java Developer Tools
  • 47. 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 – –
  • 48. A presentation isn’t an obligation,It’s a privilege. by Seth Godin Thank you!
  • 49. The State of JavaArun Gupta, arun.p.gupta@oracle.comJava Developer Advocate,, @arungupta