Java EE, What's Next? by Anil Gaur
-
Upload
takashi-ito -
Category
Technology
-
view
643 -
download
3
Transcript of 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
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.
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Enterprise Application Development Is Changing
3
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
How Do We Make This Easier?
5
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
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
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
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
It’s Confusing!
Too many choices.... Which components? Overall architecture? Standards? Vendor commitment?
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
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
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
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
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
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
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
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
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
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
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
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EE, What’s Next?
Anil Gaur GVP Engineering Oracle Cloud Platform Application Development