Java EE und WebLogic Roadmap die nächsten Schritte Peter Doschkinow Wolfgang Weigend ORACLE Deutschland B.V. & Co. KG November 2014
Safe Harbor Statement 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. 3
Agenda 1 2 3 Java EE Status Java EE 8 Themes WebLogic 12.1.3 and Roadmap 4
Java EE Evolution and Status Technology Balance innovation, standardization, compatibility Community Involvement: JCP, Adopt-a-JSR Oracle s stewardship Investments and delivery Enterprise Java Platform Ease of Development HTML5, Developer Productivity Infrastructure for Cloud Deployments Robustness Lightweight Web Services 1998-2004 2005-2012 2013 - Future 5
Java EE 7 Full implementations GlassFish 4.x WildFly 8.x TMAX JEUS 8 Partial implementations WebLogic 12.1.3 WebSphere Liberty Profile Beta Java EE 7 More annotated POJOs Less boilerplate code Cohesive integrated platform DEVELOPER PRODUCTIVITY JAX-RS WebSockets JSON Servlet NIO MEETING ENTERPRISE DEMANDS Batch Concurrency Simplified JMS 6
Java EE 8 Community Survey 4500+ respondents 7
Industry Trends 8
Java EE 8 Themes HTML5 / Web Tier Enhancements Ease of Development / CDI alignment Infrastructure for running in the Cloud Java SE 8 alignment Utilizing Java SE 8 new features Java SE 8 9
HTML5 Support and Web Tier Enhancements HTTP/2 support Action based MVC Server sent events Part of HTML5 By extending JAX-RS (already supported by Jersey) JSON Binding Similar to JAXB (already supported by MOXy) JSON Processing enhancements Track new standards JSON-Pointer and JSON-Patch 10
HTTP/2 Address the Limitations of HTTP HTTP/2 expected as proposed standard from IETF this month Reduce latency Address the Head-of-Line blocking problem Support parallelism Without requiring multiple connections Retain semantics of HTTP 1.1 Define interaction with HTTP 1.x 11
HTTP/2 Request/Response multiplexing over single connection Fully bidirectional Multiple streams Stream prioritization Server push Binary framing Header compression Upgrade from HTTP 1.1 12
Servlet 4.0 HTTP/2 Features in Servlet API Request/response multiplexing Servlet request as HTTP/2 message Stream prioritization Add stream priority to HttpServletRequest Server push Upgrade from HTTP 1.1 Binary framing Hidden from API 13
MVC 1.0 JSR 371 Action-based Model-View-Controller architecture Vs. component-based like JSF, Wicket, Tapestry Glues together key Java EE technologies: Model CDI, Bean Validation, JPA View Facelets, JSP Controller Leverage existing technologies such as JAX-RS,...? 14
Ease of Development and CDI alignment Security interceptors Simplified messaging through CDI-based MDBs CDI improvements Events: async, ordering, range (war, ear, server, cluster) WebSocket scopes Pruning of EJB 2.x client view and IIOP interoperability 15
CDI Interceptor for Authorization Java EE Security 1.0 @IsAuthorized("hasRoles('Manager') && schedule.officehrs") void transferfunds(); @IsAuthorized("hasRoles('Manager') && hasattribute('directreports', employee.id)") double getsalary(long employeeid); @IsAuthorized(ruleSourceName="java:app/payrollAuthRules", rule="report") void displayreport(); 16
Simplified messaging through CDI JMS 2.1 New API to receive messages asynchronously Alternative to message driven beans Simpler JMS annotations Usable by any CDI bean No need for MessageListener implementation @RequestScoped public class MyListenerComponent { } @JMSListener(destinationLookup="myQueue") @Transactional public void mycallback(message message) {...... } 17
Infrastructure Modernization For On-Premise and Cloud Java EE Management 2.0 REST-based APIs for Management and Deployment Java EE Security 1.0: enhance portability, flexibility, ease-of-use Authorization Password aliasing User management Role mapping Authentication REST authentication 18
Java EE Management 2.0 Update of JSR 77 (J2EE Management) Define RESTful API to augment and/or replace current Management EJB APIs Currently used OBJECT_NAME to become URL Define CRUD operations for individual managed object Server-sent events used for event support Define RESTful API for application deployment Focus on simple cases first Deployment support integrated to same API with other Java EE management 19
Java EE Security 1.0 Password aliasing Standardized syntax for password aliases Avoids storing passwords in clear text in code, deployment descriptors and files @DataSourceDefinition( name="java:app/mydatasource", classname="com.example.mydatasource",... user="duke", password="${alias=dukepassword}") Standardized secure credentials archive for bundling alias and password with the application Used by platform as credential store for resolving alias 20
Java EE Security 1.0 User Management Allow application to manage its own user and groups Without need to access server configuration Users stored in application-specified repository (e.g., LDAP) User service manipulates users from user source 21
Java EE 8 JSRs Submitted Java EE 8 Platform CDI 2.0 JSON Binding 1.0 JAX-RS 2.1 MVC 1.0 Java Servlet 4.0 JSF 2.3 JMS 2.1 More To Come JSON-P 1.1 Java EE Security 1.0 Java EE Management 2.0 JCache 1.1 And more to follow 22
Java EE 8 Roadmap Java EE 8 Final Proposed Final Draft Public Review Drafts Early Draft Specifications JSR Submissions Java EE 8 Planning 06/2014 01/2015 01/2015 01/2016 09/2017 23
Continue to participate Java EE 7 14 adopted JSRs 19 Java User Groups Thank You! Java EE 8 New JSRs New Opportunities Get Involved! Participate with us! http://glassfish.org/contribute 24
Oracle WebLogic Server 12.1.3 Fusion Middleware 12.1.3 Release SOA, OSB, BPM, ADF, JDEV, CAF Mobile, Developer Productivity Java EE 6, JDK 7 and JDK 8, Multiple IDEs, Maven Selected Java EE7 JSON-P, REST, WebSocket, JPA High Availability and Performance DB 12c integration High availability enhancements Exalogic optimizations Cloud-Scale Management and Operations Dynamic clusters, REST support, FMW Control Managed Coherence Servers Server 1 Server 2 JMS JMS Server 3 Server 3 JMS Dynamic Cluster Oracle RAC JMS 25
Oracle WebLogic Server 12.1.3 - Development Java EE 6, HTML5, Tooling, Maven, Spring, Classloading, Open Source Java EE 6 Full Profile + select Java EE 7 HTML5 Support Standard Java IDE Support Maven Integration Java SE 7 + Java SE 8 Developer zip distribution Windows, Mac OSX, Linux. GlassFish DD Support on WebLogic Built in Classloading Analysis Tool (CAT) Latest Spring Framework Support CAT 26
Oracle WebLogic 12.1.3 and Oracle Database 12c Integration for Performance, Availability, Multitenancy, Scalability WebLogic, Database Integration Active GridLink for RAC Performance, HA, Manageability Application Continuity Support for Multi-Tenant Database Scalability with Database Resident Connection Pooling Global Availability with Global Data Services Optimizations with No TLOG option Application Continuity WebLogic Server Oracle Database Real Application Clusters (RAC) Multi-Tenant Database DB Resident Connection Pool Global Data Services 27
Oracle WebLogic Server 12.1.3 Management Integration Managed Coherence Servers and Web Tier Management WebLogic or FMW Console Enterprise Manager WebLogic Scripting Management Efficiency WebLogic Management Framework integrated across Coherence, Web Tier Configuration, deployment, lifecycle management, monitoring Managed Coherence Servers for WebLogic/Coherence or standalone Coherence Integration of Oracle HTTP Server management with WebLoic REST support WebLogic Management Framework Configure Deploy Start/Stop Monitor Oracle HTTP Server WebLogic WebLogic Coherence Coherence WebLogic WebLogic Coherence Coherence 28
Drawing Board Demo: HTML5 App on WebLogic http://github.com/jersey/hol-sse-websocket Collaborative drawing Two-page application List of drawings Drawing Demonstrating Server-side Java EE 7: JAX-RS, JSON, WebSocket WebLogic specific (Jersey): SSE, JAX-B Client-side: JAX-RS, WebSocket, SSE Java and JavaScript API, JavaFX hybrid Java/HTML5 application 29
WS Endpoint JAX-RS/SSE Jersey Drawing Board Demo Thin Server Architecture Clients HTTP/S WebLogic 12.1.3 Data Service HTML5 Browser send(...) onevent(...) DrawingService.query(...) websocketsend.send(...) WebView/WebKit JavaFX JSON SSE JSON Web Sockets DataProvider POJO (HashMap) 30
Drawing Board Demo on WebLogic Technology usage JAX-RS: CRUD for drawings WebSocket: distributing the updates of a drawing to all connected clients JSON-P: implementing of encoder/decoder of the WebSocket server endpoint SSE(Jersey specific): distributing the list of drawings to all connected clients JSON-B(Jersey specific): mapping between drawing objects and their JSON representations 31
Coherence Cluster Drawing Board Demo with Coherence https://github.com/doschkinow/hol-sse-websocket/solutions/exercise9 Seamless Coherence integration in a WebLogic cluster Scaling-out and HA 32
Oracle WebLogic Server Roadmap Private Beta Q42014 WebLogic 11gR1 (10.3.1-6) Oracle FMW 11g & Apps Manageability, Active GridLink, Messaging, Coherence, OVAB Engineered Systems, Cloud JDK 6 and JDK 7 (WLS 10.3.6) WebLogic 12c (12.1.2) CY2013 FMW 12c Infrastructure Mission Critical Cloud Platform Native Cloud Management Modern Development Platform JDK 7 WebLogic 12cR2 (12.2.1) CY2015 FMW 12c Platform Java EE 7 and Development Multitenancy Elastic Clusters and REST Mgmt Exalogic, HA and MAA JDK 8 2009-2010 2011 2012 2013 2014 2015 WebLogic 12c (12.1.1) Java EE 6 Developer Productivity, Oracle Traffic Director, Disaster Recovery JDK 6 and JDK 7 WebLogic 12c (12.1.3) June 2014 FMW 12c Infra, SOA, BPM, ODI Mobile and Rich Client Support Mission Critical Cloud Platform Native Cloud Management JDK 7, JDK 8 33
Links Adopt a JSR http://glassfish/adooptajsr The Aquarium Blog http://blogs.oracle.com/theaquarium Java EE 8 reference implementation http://glassfish.org WebLogic 12.1.3 https://docs.oracle.com/middleware/1213/wls/index.html 34
35