Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	Next	
	
	
	
	
	
November	9	2016	
David	Dela...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 2	
The	 reports	 of	 my	 death		
are		greatly		exag...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Safe	Harbor	Statement	
The	following	is	intended	to...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 4	
Java	EE	7	
HTML5-Ready
•  JSON
•  WebSockets
•  ...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
		
Java	EE	-	Available	On	Premise	and	in	the	Cloud	...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	APIs	-	Backbone	of	Leading	Open	Source	Proj...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	–	What’s	Next?	
7	
New	AppDev	Style	
for	Cl...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 8	
Developers	Facing	New	Challenges	
•  AcceleraGon...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Proposed	Enhancements	for	Java	EE	
•  New	AppDev	st...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	Next	
Technical	Areas	of	Focus	
10
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Designed	for	Agility	and	Scalability	with	Security	...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Packaging	for	Simplicity	
•  ConfiguraGon	
•  Resili...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Recent	Java	EE	7	compa9bility	updates:	Congratula9o...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 14	
Engage	Java	EE	Community	
•  Feedback	through	S...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	8	
	
15
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	2.1	
•  Server-sent	events	
•  Non-blocking	...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	2.1	
17	
//	Jersey	API!	
CompletionStage<Lis...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Proposal	for	ReacGve	Programming	Model	
18	
§  Impr...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Servlet	4.0	
•  Support	for	HTTP/2	
– Request/respo...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Servlet	4.0	
20	
PushBuilder	builder	=	baseRequest....
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
CDI	2.0	
•  Define	behavior	of	CDI	outside	of	a	Java...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
CDI	2.0	
22	
@Inject	
Event<PaymentEvent>	debitEven...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
CDI	2.0	
23	
	
	
//	consumer	A	
public	void	anObesr...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
CDI	2.0	
24	
	
	
//	consumer	A	
public	void	anObesr...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
CDI	2.0	
25	
@Inject	
Event<PaymentEvent>	debitEven...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Bean	ValidaGon	2.0	
•  Constraints	applied	to	colle...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSF	2.3	
•  Beqer	CDI	integraGon	
•  WebSocket	inte...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON-B	1.0	
•  JAXB-like	API	to	marshal/unmarshal	J...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON-B	1.0	
29	
Phone	phone1	=	new	Phone();	
phone1...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON-P	1.1	
•  Update	JSON-P	spec	to	stay	current	w...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Proposal	for	Security	
31	
§  OpenID	support	for	au...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Proposal	for	ConfiguraGon	
32	
§  Separate	runGme	co...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	8	
Proposal	for	ConfiguraGon	
33	
Config	con...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Proposal	for	ConfiguraGon	
34	
java	–jar	my.jar	–Dco...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Proposal	for	Resiliency	-	Health	Checking	
35	
§  D...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 36	
@HealthProvider
public class MyHealthContributo...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Proposal	for	Resiliency	-	Circuit	Breaker	
37	
§  E...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Proposal	for	Resiliency	-	Circuit	Breaker	
38	
@Cac...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	7	
39	
Connector	 JAXB	JSP	Debugging	
Manag...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	8	
40	
Connector	 JAXB	JSP	Debugging	
Manag...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Recent	Java	EE	7	compa9bility	updates:	Congratula9o...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	Next	-	Summary	
•  New	AppDev	Style	for	Clo...
Copyright	©	2016,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
RaGonale	for	Proposed	Changes	
44	
New	Func9onality...
Java EE Next
Upcoming SlideShare
Loading in …5
×

Java EE Next

1,837 views

Published on

Presented at Devoxx Belgium 2016

Published in: Software

Java EE Next

  1. 1. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE Next November 9 2016 David Delabassee @delabassee Java EE and Cloud ApplicaGon FoundaGon - Oracle
  2. 2. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 2 The reports of my death are greatly exaggerated Java EE “
  3. 3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direcGon. It is intended for informaGon purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or funcGonality, and should not be relied upon in making purchasing decisions. The development, release, and Gming of any features or funcGonality described for Oracle’s products remains at the sole discreGon of Oracle. 3
  4. 4. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 4 Java EE 7 HTML5-Ready •  JSON •  WebSockets •  JAX-RS Industry Standard •  Lowers risk •  Vendor choice •  Implementation choice •  Operating system choice •  Portable applications Scalable •  Multi-threaded •  Asynchronous APIs (Servlet, EJB, JAX-RS) •  Concurrency utilities for Java EE Productivity •  Annotated POJOs •  Less boilerplate code •  Integrated •  Excellent tool ecosystem Meets Enterprise Demands • Java Message Service • Batch processing • Distributed transactions Community Driven •  Java Community Process •  Adopt-a-JSR •  Open Source RI (GlassFish)
  5. 5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE - Available On Premise and in the Cloud 09/11/16 5 Cloud On Premise WebSphere WebLogic Red Hat JBoss 5 Choice of Implementa9ons
  6. 6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE APIs - Backbone of Leading Open Source Projects 6 Java EE Containers Microservices Web Containers Web Frameworks PaaS REST
  7. 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE – What’s Next? 7 New AppDev Style for Cloud and Microservices
  8. 8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 8 Developers Facing New Challenges •  AcceleraGon towards the Cloud •  Shib from physical infrastructure to virtual •  Microservices vs. monolithic applicaGons •  RunGme packaged with applicaGons ...
  9. 9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Proposed Enhancements for Java EE •  New AppDev style for Cloud and Microservices •  Comprehensive – Programming Model, Packaging, Portability, Security, Monitoring… •  Build on proven technologies •  Standards-based and transparent – JCP processes – Open Source RIs 9
  10. 10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE Next Technical Areas of Focus 10
  11. 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Designed for Agility and Scalability with Security •  Programming model •  State •  Security •  Eventual consistency •  Key value/document store 11 Reliability, Monitoring Container Management Scheduling & ElasGc Scaling Key Value Database Logging Config State Security NoGficaGon User profile service Order service Catalog service
  12. 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Packaging for Simplicity •  ConfiguraGon •  Resiliency •  Packaging – Docker model •  MulGtenancy •  Serverless 12 App Server Order service App Server Catalog service App Server User profile service
  13. 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Recent Java EE 7 compa9bility updates: Congratula9ons! Technical Focus Areas Summary §  Extend for reacGve programming §  Unified event model §  Event messaging API §  JAX-RS, HTTP/2, Lambda, JSON-B, ... Programming Model §  API to store externalized state State §  AutomaGcally event out changes to observed data structures Eventual Consistency §  Extension to support client-side circuit breakers §  Resilient commands §  Standardize on client- side format for reporGng health Resiliency §  New spec – interfaces, packaging format, manifest §  Ephemeral instanGaGon Serverless §  Secret management §  OAuth §  OpenID Security §  Package applicaGons, runGmes into services §  Standalone immutable executable binary §  MulG-arGfact archives Packaging §  Increased density §  Tenant-aware rouGng and deployment Mul9tenancy §  Externalize configuraGon §  Unified API for accessing configuraGon Configura9on §  Persistence and query interface for key value and document DB Key Value/Doc Store 13
  14. 14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 14 Engage Java EE Community •  Feedback through Survey •  Launch Java EE Next JSRs 2016 Java EE 8 •  Specs, RI, TCK complete •  IniGal microservices support •  Define Java EE 9 •  Early access implementaGon of Java EE 9 Java EE 9 •  Specs, RI, TCK complete •  Modular Java EE runGme •  Enhanced microservices support Java EE Roadmap 2017 2018
  15. 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE 8 15
  16. 16. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | JAX-RS 2.1 •  Server-sent events •  Non-blocking I/O in providers (filters, interceptors…) •  Hypermedia API enhancements •  ReacGve programming paradigm to improve JAX-RS asynchronous clients •  IntegraGon with other JSRs and frameworks 16 Java EE 8
  17. 17. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | JAX-RS 2.1 17 // Jersey API! CompletionStage<List<String>> cs = client.target("forecast/{destination}") .resolveTemplate("destination", "mars") .request() .header("Rx-User", "Java8") .rx() // CompletionStageRxInvoker .get(new GenericType<List<String>>() { }); cs.thenAccept(l -> System.out.println(l)); Java EE 8
  18. 18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Proposal for ReacGve Programming Model 18 §  Improve JAX-RS to support reacGve programming for client side (e.g., async "orchestraGon" as in RXJava or in Jersey) §  MigraGon path to fuller reacGve programming model in Java EE 9 §  Need to incorporate evolving reacGve/async-style programming model §  More common in Cloud because apps are distributed and there is increased latency §  Many remote calls §  Synchronous request-handling blocks threads with remote calls Problem Statements Proposal Java EE 9
  19. 19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Servlet 4.0 •  Support for HTTP/2 – Request/response mulGplexing – Server push – Upgrade from HTTP 1.1 •  CompaGbility with latest HTTP 1.1 RFCs •  Smaller community-requested improvements (JIRA issues) 19 Java EE 8
  20. 20. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Servlet 4.0 20 PushBuilder builder = baseRequest.getPushBuilder(); builder.addHeader("X-Pusher", …); builder.path(aResource) .etag(associated._etag) .lastModified(associated._lastModified) .push(); Java EE 8
  21. 21. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | CDI 2.0 •  Define behavior of CDI outside of a Java EE container •  API to bootstrap a CDI container in Java SE •  Spec split into 3 parts: – CDI Core – CDI for Java SE – CDI for Java EE •  Observers ordering •  Asynchronous events 21 Java EE 8
  22. 22. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | CDI 2.0 22 @Inject Event<PaymentEvent> debitEvent; // producer debitEvent.fire(somePayload); // consumer public void anObesrver(@Observes Payload p) { … }
  23. 23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | CDI 2.0 23 // consumer A public void anObesrver(@Observes Payload p) { … } // consumer B public void anotherObesrver(@Observes Payload p) { … }
  24. 24. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | CDI 2.0 24 // consumer A public void anObesrver(@Observes @Priority(10) Payload p) { … } // consumer B public void anotherObesrver(@Observes @Priority(20) Payload p) { … } Java EE 8
  25. 25. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | CDI 2.0 25 @Inject Event<PaymentEvent> debitEvent; // async producer debitEvent.fireAsync(somePayload); // async consumer public void anObesrver(@ObservsAsync Payload p) { … } Java EE 8
  26. 26. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Bean ValidaGon 2.0 •  Constraints applied to collecGon elements •  Support for new Date/Time API •  IntegraGon with OpGonal wrappers •  Repeatable annotaGons •  Introduce new constraints – E.g. @NotEmpty, @NotBlank •  AddiGonal features requested from community 26 Java EE 8
  27. 27. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | JSF 2.3 •  Beqer CDI integraGon •  WebSocket integraGon •  Ajax method invocaGon •  Class-level Bean ValidaGon •  Java Date/Time support 27 Java EE 8
  28. 28. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | JSON-B 1.0 •  JAXB-like API to marshal/unmarshal Java objects to/from JSON documents •  Default mapping between classes and JSON •  CustomizaGon APIs – AnnotaGon (@JsonbProperty, @JsonbNillable) – RunGme configuraGon builder •  Allows to swap providers •  Natural follow on to JSON-P – closes the JSON support gap 28 Java EE 8
  29. 29. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | JSON-B 1.0 29 Phone phone1 = new Phone(); phone1.setBrand("Apple"); phone1.setModel("iPhone 7"); phone1.setStock(1); ... List<Phone> inventory = new ArrayList<>(); inventory.add(phone1); inventory.add(phone2); Jsonb jsonb = JsonBuilder.create(); jsonb.toJson(inventory); Java EE 8 [ { "brand":"Apple", "model":"iPhone 7", "stock":1 }, { "brand":"Samsung", "model":"Galaxy Note 7", "stock":666 } ]
  30. 30. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | JSON-P 1.1 •  Update JSON-P spec to stay current with emerging standards •  Support for IETF standards on JSON Pointer and JSON Patch •  Add ediGng operaGons to JsonObject and JsonArray •  Helper classes and methods to beqer uGlize Java SE 8 Stream operaGons 30 Java EE 8
  31. 31. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Proposal for Security 31 §  OpenID support for authenGcaGon §  Improved OAuth support §  RegistraGon and Discovery of Resources to Request Scopes §  AuthorizaGon Model §  Standard way of connecGng an applicaGon to a key service §  EncrypGon service for stored data §  OAuth & OpenID hard to use §  No standard way of connecGng an applicaGon to a key service §  Need to keep sensiGve stored data secret Problem Statements Proposal Java EE 8
  32. 32. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Proposal for ConfiguraGon 32 §  Separate runGme configuraGon from runGme plarorm §  K/V §  Define configuraGon persistence mechanisms, formats and bindings §  E.g. JSON, XML §  Support of mulGple configuraGon sources §  Layering and overrides §  No standard way of working with configuraGon in applicaGons §  Many configuraGon schemes don’t support layering, overrides, concept of environments, mulGple levels of visibility, etc §  Many just use environment variables, which is not scalable §  Make it possible to deploy applicaGon configuraGon without redeploying app §  Externalized configuraGon is the standard for cloud Problem Statements Proposal Java EE 8
  33. 33. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE 8 Proposal for ConfiguraGon 33 Config config = ConfigProvider.getConfig(); String foo = config.getProperty("foo"); String fooBar = config.getProperty("foo.bar"); // return null String notExists = config.getProperty("foo.bar.buzz"); // return "default" String notExistsDefault = config.getProperty("for.bar.buzz","default"); Long fooBarBaz = config.getProperty("foo.bar.baz", Long.class); foo=JavaOne! foo.bar=9! foo.bar.baz=2016!
  34. 34. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Proposal for ConfiguraGon 34 java –jar my.jar –Dconfig.source=/conf/dev.properties java –jar my.jar –Dconfig.source=/conf/main.json, http://shared/global.xml Config config = ConfigProvider.builder() .addSource(new EnvSource(), 300) .addSource(new FileSource("/cfg/config.properties"), 200) .addSource(new WebSource("http://shared/config.json"), 100) .build(); <config-sources> <source>http://shared/config.xml</source> </config-sources> Java EE 8
  35. 35. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Proposal for Resiliency - Health Checking 35 §  Define standard for how individual instances should report health §  Define configurable context path §  e.g. /<service>/management/health §  Define semanGcs for reporGng health §  JSON response when /health is called §  Return standardized statuses, bubble up errors, from dependencies, etc §  Circuit breaker could poll /health rather than waiGng for HTTP requests to fail first §  Request tracing? §  No standard for health is being reported §  ApplicaGons, resources, servers, services, micro-services, etc. will report health differently §  TradiGonal health check just returns opaque up/down messages Problem Statements Proposal Java EE 8
  36. 36. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 36 @HealthProvider public class MyHealthContributor implements HealthContributor { public Health contributeHealthSummary(HealthContext context) { Health health = new Health(); ... return health; } } Java EE 8 Proposal for Resiliency - Health Checking
  37. 37. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Proposal for Resiliency - Circuit Breaker 37 §  Extension to JSR 339 - JAX-RS Client §  Several possible approaches: §  ProgrammaGc – change in JAX-RS Client API §  DeclaraGve – registering @Provider classes to the Client §  Other… §  Configurable -- potenGal parameters might include: §  Sampling frequency §  Sampling Gme period §  Performance threshold (milliseconds) §  % error threshold §  … §  Prevent request-handling threads from being consumed while making requests to remote systems §  Ease up on requests to remote system as it's having problems §  Allow system Gme to recover §  Prevent cascading failures. Isolates failures in the source system §  Use circuit breaker without wriGng extensive boiler-plate code Problem Statements Proposal Java EE 8 & 9
  38. 38. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Proposal for Resiliency - Circuit Breaker 38 @Cache(timeToLive = 15, timeToLiveUnit = TimeUnit.SECONDS) @Bulkhead(numConcurrentRequests = 10) @Retry(onException = IOException.class, maxRetries = 4) @CircuitBreaker(timeout = 5, timeoutUnit = TimeUnit.SECONDS) public <K, V> V aBusinessMethod(K k) throws IOException { // invoke remote business service ... } @Fallback(applyTo = {"aBusinessMethod"}) public <K,V> V someFallback() { // perform fallback logic ... } Java EE 8 & 9
  39. 39. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE 7 39 Connector JAXB JSP Debugging Managed Beans JSP Concurrency EE Interceptors JAX-WS WebSocket Bean ValidaGon JASPIC Servlet JMS JTA Deployment Batch JACC Dependency InjecGon JAXR JSTL Management CDI EJB JAX-RPC Web Services JSF JPA JSON-P Common AnnotaGons EL JAX-RS Web Services Metadata JavaMail
  40. 40. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE 8 40 Connector JAXB JSP Debugging Managed Beans JSP Concurrency EE Interceptors JAX-WS WebSocket Bean ValidaGon JASPIC Servlet JMS JTA Deployment Batch JACC Dependency InjecGon JAXR JSTL Management CDI EJB JAX-RPC Web Services JSF JPA Common AnnotaGons EL JAX-RS Web Services Metadata JavaMail CDI JSON-B Security Bean ValidaGon JSF JAX-RS JSON-P Servlet Health Check ConfiguraGon JSP
  41. 41. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Recent Java EE 7 compa9bility updates: Congratula9ons! Technical Focus Areas Summary §  Extend for reacGve programming §  Unified event model §  Event messaging API §  JAX-RS, HTTP/2, Lambda, JSON-B, ... Programming Model §  API to store externalized state State §  AutomaGcally event out changes to observed data structures Eventual Consistency §  Extension to support client-side circuit breakers §  Resilient commands §  Standardize on client- side format for reporGng health Resiliency §  New spec – interfaces, packaging format, manifest §  Ephemeral instanGaGon Serverless §  Secret management §  OAuth §  OpenID Security §  Package applicaGons, runGmes into services §  Standalone immutable executable binary §  MulG-arGfact archives Packaging §  Increased density §  Tenant-aware rouGng and deployment Mul9tenancy §  Externalize configuraGon §  Unified API for accessing configuraGon Configura9on §  Persistence and query interface for key value and document DB Key Value/Doc Store 41
  42. 42. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE Next - Summary •  New AppDev Style for Cloud and Microservices •  Planning in process •  Contribute •  Open Source RIs 42
  43. 43. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | RaGonale for Proposed Changes 44 New Func9onality •  Cloud apps make many remote REST calls. Need a client-side circuit breaker added to JAX-RS •  Need a secret vault because there’s no way to do this today using standards •  Need OAuth and OpenID support because those technologies have rapidly emerged as standards •  Need externalized configura9on store to make applicaGons retargetable across environments •  Need basic mul9-tenancy support to accommodate needs of more complex apps and offer higher density •  Need standard way of health checking Java-based apps Dropped Func9onality •  JMS is no longer very relevant in cloud. Proposed to stay at JMS 2.0 standard (vs. upgrading to JMS 2.1 ). •  Cloud apps oben ship headless, making MVC largely irrelevant •  Current Management JSR not widely used

×