Java EE, What's Next? by Anil Gaur

21
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE, What’s Next? Anil Gaur GVP Engineering Oracle Cloud Platform Application Development

Transcript of Java EE, What's Next? by Anil Gaur

Page 1: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Java EE, What’s Next?

Anil Gaur GVP Engineering Oracle Cloud Platform Application Development

Page 2: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved.

AppDev is About our Customer’s Entire Portfolio

2

Innovation Software - Find the Next Business

Differentiation Software - Run Current Business

Core Software - Keep the Lights On

Release Hourly

Fail Early

Agile

Business-centric

Top Line Growth

Bespoke Software

Product-based

Release Quarterly

Fail Late

Waterfall

IT-centric

Bottom Line Savings

Packaged Software

Project-based

Copyright © 2016, Oracle and/or its affiliates. All rights reserved.

Page 3: Java EE, What's Next? by Anil Gaur

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Enterprise Application Development Is Changing

3

Page 4: Java EE, What's Next? by Anil Gaur

Rapid Changes Over Past Few Years

4

Microservices

Apps divided into many small pieces

Distributed Computing

Many data centers, AZs, regions, etc.

Polyglot Java leads but use of others increasing

New Technology

Docker, Cloud, DevOps, etc.

Driven by increasing business needs

Page 5: Java EE, What's Next? by Anil Gaur

How Do We Make This Easier?

5

Page 6: Java EE, What's Next? by Anil Gaur

Confidential – Oracle

Internal/Restricted/Highly

6

Building on the Lessons Learned

12/4/2016 6 Copyright © 2016, Oracle and/or its affiliates. All rights reserved.

Use lessons learned and

successful implementations

JAX-RS

Servlet

Interceptors

JMS

JSON-P CDI

JTA JPA

WebSocket

Compatible Application Servers

Be pragmatic

Page 7: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Java EE APIs - Backbone of Leading Open Source Projects

7

Java EE Containers

Microservices Web Containers

Web Frameworks

PaaS REST

Page 8: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Cloud Development

Heterogeneous Clients

• Mobile, REST, HTML5

Stateless Services

• Managed and scaled independently

Data Sources

• Relational, non-relational

User profile service

Order service

Partner service

Catalog service

Notification service

Import service

HTTP/2 REST JSON XML/HTTP

Event JAX-RS/JSON Notifications JAX-WS

RDBMS NoSQL DB XML DB Data Streams

Key Value Events Key Value JDBC

8

Page 9: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

It’s Confusing!

Too many choices.... Which components? Overall architecture? Standards? Vendor commitment?

Page 10: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Proposed Enhancements for Java Enterprise Edition

• New AppDev style for Cloud and Microservices

• Build on proven technologies

• Comprehensive

– Programming Model, Packaging, Portability

• Standards-based

– This is a proposal only

– Will work with the community and follow the JCP process

10

Page 11: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Designed for Agility and Scalability with Security • Programming model

– Extend for reactive programming

– Unified event model, event messaging API

– JAX-RS, HTTP/2, Lambda, JSON-B, …

• Eventual consistency

– Automatically event out changes to observed data structures

• Key value/document store

– Persistence and query interface for Key Value and Document DB

• Security

– Secret management

– OAuth/OpenID support

11

App

App

App

App

Page 12: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Location Transparency and Resiliency

• Configuration

– Separate service packaging and configuration

– API for external configuration

• State

– API for external state

• Resiliency – Circuit breakers

– Resilient commands

– Standardized health reporting

12

Reliability, Monitoring

Container Management

Scheduling & Elastic Scaling

Key Value

Database

Logging

Config

State

Security

Notification

User profile service

Order service

Catalog service

Page 13: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Packaging for Simplicity • Packaging – Docker model

– Package applications, runtimes into containers

– Separate service package and configuration

– Standalone immutable executable binary

– Multi-artifact archives, leveraging Java 9

• Serverless – New spec – interfaces, packaging format, manifest

– Ephemeral instantiation

• Multitenancy – Increased density

– Tenant-aware routing and deployment

13

App

Server

Order service

App

Server

Catalog service

App

Server

User profile service

Page 14: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 14

Platform Architecture Orchestration – Deployment, Scheduling, and Standup

BareMetal

Orchestration

Deployment Manager

Local Service Impls

Additional Local Classfiles

Java EE Cloud Native App

Container Container

Container

Java EE Cloud Native App

JLink

Local Service Impls Additional Local Classfiles

Java EE Cloud Native App With Just Enough

Container

Container Container

Java EE Cloud Native App

Page 15: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 15

Platform Architecture Orchestration – Inspection, Injection, and Wiring

BareMetal

Orchestration

Container

Config

Cache

Logging

Platform Services

Service Registry

Java EE Cloud Native App

Java EE Cloud Native App

@Config @Cache @Logging @Service Name

Impl

Impl

Impl

Impl

Page 16: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Recent Java EE 7 compatibility updates: Congratulations! Technical Focus Areas

Extend for reactive programming

Unified event model

Event messaging API

JAX-RS, HTTP/2, Lambda, JSON-B, ...

Programming Model

API to store externalized state

State

Automatically event out changes to observed data structures

Eventual Consistency

Extension to support client-side circuit breakers

Resilient commands

Standardize on client-side format for reporting health

Resiliency

New spec – interfaces, packaging format, manifest

Ephemeral instantiation

Serverless

Secret management

OAuth

OpenID

Security Package applications,

runtimes into services

Standalone immutable executable binary

Multi-artifact archives

Packaging Increased density

Tenant-aware routing and deployment

Multitenancy

Externalize configuration

Unified API for accessing configuration

Configuration

Persistence and query interface for key value and document DB

Key Value/Doc Store

16

Page 17: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Proposed Platform Architecture

Java EE Packaging, Serverless, Multitenancy

OS / Hypervisor

Container Runtime

Java SE Runtime

Java EE Runtime

Programming Model

API Gateway

Load Balancer

HTTP/2

JSON-B

Event API

REST API

Security API State API Config API

Eventual Consistency

Resiliency Key Value Store API

17

Key Value

Database

Logging

Config

State

Security

Notification

Rel

iab

ility

, Mo

nit

ori

ng

Man

agem

ent

and

Orc

hes

trat

ion

Sch

edu

ling

and

Ela

stic

Sca

ling

Page 18: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 18

Java EE 7

Connector JAXB JSP Debugging

Managed Beans JSP Concurrency EE Interceptors JAX-WS WebSocket

Bean Validation JASPIC Servlet JMS JTA Deployment

Batch JACC Dependency Injection JAXR JSTL Management

CDI EJB JAX-RPC Web Services JSF JPA

JSON-P Common Annotations EL JAX-RS Web Services

Metadata JavaMail

Page 19: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 19

Java EE 8 (Revised Proposal, 2016)

Connector JAXB JSP Debugging

Managed Beans JSP Concurrency EE Interceptors JAX-WS WebSocket

Bean Validation JASPIC Servlet JMS JTA Deployment

Batch JACC Dependency Injection JAXR JSTL Management

CDI EJB JAX-RPC Web Services JSF JPA

Common Annotations EL JAX-RS Web Services

Metadata JavaMail

CDI

JSON-B Security

Bean Validation

JSF

JAX-RS JSON-P

Servlet

JSP

Page 20: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 20

Engage Java EE Community • Feedback through Survey • Launch Java EE Next JSRs

2016 Java EE 8 • Specs, RI, TCK complete • Initial microservices support • Define Java EE 9 • Early access implementation

of Java EE 9

Java EE 9 • Specs, RI, TCK complete • Modular Java EE runtime • Enhanced microservices

support

Java EE Roadmap

2017

2018

Page 21: Java EE, What's Next? by Anil Gaur

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Java EE, What’s Next?

Anil Gaur GVP Engineering Oracle Cloud Platform Application Development