SlideShare a Scribd company logo
MicroProfile and Jakarta EE --
What’s Next?
Kevin Sutter (@kwsutter), MicroProfile and Jakarta EE Architect @ IBM
Ian Robinson (@ian__robinson), IBM Distinguished Engineer & WebSphere Chief Architect
What’s Next?
Kevin Sutter (@kwsutter), MicroProfile and Jakarta EE Architect @ IBM
Ian Robinson (@ian__robinson), IBM Distinguished Engineer & WebSphere Chief Architect
#1 Better Conference Scheduling
About Me
● IBM Distinguished Engineer
● WebSphere Foundation Chief Architect
● 25+ years experience in distributed enterprise computing
● WebSphere strategy & development, open source and
enterprise Java standards
○ WebSphere, Liberty, Open Liberty, Java EE, JSR 95,
MicroProfile, Jakarta EE, Spring…
● Travels a lot, based in IBM’s Hursley lab in the UK (near
Southampton).
● Season ticket holder for one of the least fashionable clubs
in English football
● Sad European
Ian Robinson
3
JavaOne 2015: Java EE – Relevant or Elephant?
http://parentrap.org/2014/09/29/easy-parenting-part-iii-the-donts-list/
4
JavaOne 2015: A Benchmark Living in the Past – SPECjEnterprise2010
● This is Java EE5 technology!
○ Not even EE6 let alone EE7.
● JCP Members are the primary contributors to this benchmark and are holding
it back.
● What are you scared of? More vendors?
● Where is the web profile
compliant subset?
● Where is EE7?
○ We can skip EE6…
● Run rules to allow cloud
publish?
5
▪ Java EE is at a crossroads.
▪ Still strong and relevant at the cloud party, BUT younger guests are
making more noise.
– Vendors support an increasingly diverse cloud environment
▪ Enterprise incumbency = strength and weakness:
– Customers want NEW without breaking EXISTING
– NEVER break backward compatibility - sacrifices incumbency.
▪ Forward-looking EE 8 focus on web standards is good.
▪ Multi-tenancy? These days I’ll use a virtualization container for that.
▪ And finally: stuff around the edges is critical
– Still need to evangelize: SHOUT louder about lightweight Java EE
– And lets get serious about a modern, lightweight EE7 benchmark
JavaOne 2015: Java EE Outlook
https://www.flickr.com/photos/akaitori6
Warnings Signs Were Ignored
Code One 2018 7
What can we do to
advance microservice
development in the
Enterprise Java space?
-Java EE Community, early 2016
Code One 2018
What Happened Next?
8
Characteristics
Specs, APIs, TCKs
Community Driven
Lightweight, Iterative
Processes
No Reference
Impls!
Code One 2018 9
JavaOne 2016 (Offsite!)
CDI 1.2 JAX-RS 2.0 JSON-P 1.0
MicroProfile 1.0
Announced!
Basic Building Blocks for Microservices
Code One 2018 10
CDI 2.0
Fast-forward two years...
JAX-RS 2.1 JSON-P 1.1
MicroProfile 2.1
JSON-B 1.0
Fault
Tolerance
1.1
Metrics 1.1
JWT
Propagation
1.1
Health
Check 1.0
Open
Tracing 1.2
Open API
1.0
Rest Client
1.1
Config 1.3
17
Component
Releases!
7 Platform
Releases!
MicroProfile
2.1
Code One 2018 11
CDI 2.0
Roadmap...
JAX-RS 2.1 JSON-P 1.1
MicroProfile 2.x
JSON-B 1.0
Fault
Tolerance
1.1
Metrics 1.1
JWT
Propagation
1.1
Health
Check 1.0
Open
Tracing 1.2
Open API
1.0
Rest Client
1.1
Config 1.3
Reactive
Operators
1.0
Reactive
Messaging
1.0
Service
Mesh /
ISTIO 1.0
... Component Updates
● Health Check 1.1
● Rest Client 1.2
● Config 1.4
● Metrics 2.0
● Fault Tolerance 1.2
● ...
Code One 2018 12
Compatible Implementations!
https://wiki.eclipse.org/MicroProfile/Implementation
Code One 2018 13
JavaOne 2017: EE4J is Born
2017 - 2018
Code One 2018 14
Eclipse GlassFish - 39 EE4J Projects and counting...
● 20% Project Proposal has been posted for community review
● 40% Project committers and resources have been provisioned
● 60% Initial Contribution provided to the Eclipse IP Team
● 80% Initial Contribution Pushed to Git Repository
● 100% Project has engaged in its first Release Review
7.7M lines of code
https://www.eclipse.org/ee4j/status.php
Code One 2018 15
Eclipse Glassfish
RC1 TODAY!
EE4J CI/CD Progress
https://github.com/orgs/eclipse-ee4j/projects/1
Code One 2018 16
Specification Process
Specification Process 1.0
● Replacement for JCP Standards Process
○ Supports Code First development
● Public Draft Available for Review (Oct 17, 2018)
○ https://tinyurl.com/ybh8sx8j
○ Comments accepted until Oct 31, 2018
○ via JakartaEE community mailing list
● Guinea Pig Spec Project
○ JNoSQL
Code One 2018 17
Additional Work Items in progress...
TCK projects
(all source
now available)
and TCK
Compliance
Process TCK License
Specification
License
...
Code One 2018 18
5.7M LOC
Similarities between MicroProfile and Jakarta EE
● Focused on Microservice and Cloud Native Development
● Desire Agile Development Practices
● Code First Mentality
Code One 2018 19
Characteristics
Specs, APIs, TCKs
Community Driven
Lightweight, Iterative
Processes
No Reference
Impls!
Code One 2018 20
Differences between MicroProfile and Jakarta EE
● MicroProfile has an established release process and cycle
○ 7 major releases and 17 component releases in its 2 years of existence
○ Jakarta EE is planning for 1-2 major releases per year (components may have more)
● MicroProfile is not a Standards body
○ Jakarta EE needs to replace the JCP
● Jakarta EE brand is valuable and requires stringent compliance testing
○ MicroProfile’s compatibility statements are strictly on the honor system
Code One 2018 21
Positive signs...
Rest Client 1.x JAX-RS 2.x
???
Code One 2018 22
More positive signs...
Config JSR
Config
Specification
???
Code One 2018 23
Reactive Platform...
Reactive
Operators
1.0
Reactive
Messaging
1.0
● https://www.lightbend.com/blog/how-the-microprofile-community-will-shape-jakarta-ee
● Start in MicroProfile with the end goal of becoming part of Jakarta EE
???
Code One 2018 24
Other Integrations...
Fault Tolerance
● Retry
● Timeout
● CircuitBreaker
● Bulkhead
● Fallback
Fault Tolerance
● Retry
● Timeout
● CircuitBreaker
● Bulkhead
● Fallback
???
Code One 2018 25
Jakarta EE Community
Code One 2018 26
MicroProfile Community
Code One 2018 27
Both Communities
Code One 2018 28
Code One 2018 29
Anticipated Relationship
● Ongoing MicroProfile innovation on top of Jakarta EE, with desired adoption
of foundational technologies into JakartaEE.next
Code One 2018 30
Available In Open Liberty
Code One 2018 31
Available In Open Liberty
Code One 2018 32
And One More Thing….
Code One 2018 33
JAX-RS
over httpInsurance Provider
Service
Vehicle
Service
Insurance
Service
JAX-RS
over http
JAX-RS
over http
DBJPA JPA
JPA
IBM first to publish a result
 IBM’s first ever published
result with WebSphere
Liberty
WebjOPS score of 28,860 on
Intel Skylake systems
 IBM JDK’s IBMJCEPlus JCE
provider accelerated
cryptography performance
 Java EE 8 features (Liberty
was first to have Java EE 8
support)
Benchmark architecture
SPECjEnterprise® 2018 Web Profile:
The newest SPEC® benchmark
Benchmark highlights
 Newest SPECjEnterprise®
benchmark since
SPECjEnterprise® 2010
 Went live on September 12
(spec.org/jEnterprise2018web)
 Developed by
representatives
from IBM, Oracle and Red
Hat
 Only for Web Profile subset
of the Java EE specification
 Utilizes a MicroServices
architecture
 Requires TLS (Transport
Layer Security
Services also
use CDI,
Session EJBs,
JSON,
and Bean
Validation
1 – Vehicle JVM
4 cores
1 – Provider JVM
4 cores
4 Insurance
JVMs - 10 cores
each
Cisco 2 socket,
24-core Skylake Intel server
Application Server SUT
2 – 960 GB
SSDs in RAID
1 – DB2
database
instance
Cisco 2 socket,
24-core Skylake
Intel server
Database SUT
DNS server to
route requests
IBM result configuration
Drivers send
requests
using
JAX-RS
WebSockets
and JSF Drivers
https
A New Benchmark At Last
As per SPEC published data as of 10/12/2018 :
https://www.spec.org/jEnterprise2018web/results/jEnterprise2018web.html
. Results are from www.spec.org as of 10/12/2018. IBM results are 26,672
SPECjEnterprise® 2018 WebjOPS and 28,860 SPECjEnterprise® 2018
WebjOPS published on 09/27/2018 and 10/11/2018 respectively. SPEC and
SPECjEnterprise are registered trademarks of the Standard Performance
Evaluation Corporation.Code One 2018 34
References
● https://openliberty.io/blog/2018/08/16/whats-next-microprofile-jakartaee.html
● https://microprofile.io
○ https://projects.eclipse.org/projects/technology.microprofile
○ https://microprofile.io/projects/
○ https://wiki.eclipse.org/MicroProfile/Implementation
○ https://openliberty.io/guides/
● https://jakarta.ee
○ https://projects.eclipse.org/projects/ee4j/
○ https://github.com/eclipse-ee4j/ee4j
○ https://www.eclipse.org/ee4j/status.php
○ https://github.com/orgs/eclipse-ee4j/projects/1
Code One 2018 35
MicroProfile Backup Material
Code One 2018 36
Open Tracing
URL: https://github.com/eclipse/microprofile-opentracing
Latest Release: https://github.com/eclipse/microprofile-opentracing/releases
The MicroProfile OpenTracing API provides a standard Java binding for
instrumenting microservices for distributed tracing.
Code One 2018 37
@Traced(value = true, operationName = "InventoryManager.list")
public InventoryList list() {
return new InventoryList(systems);
}
Open API
URL: https://github.com/eclipse/microprofile-open-api
Latest Release: https://github.com/eclipse/microprofile-open-api/releases
OpenAPI (nee Swagger) provides Java interfaces and annotations to natively
produce OpenAPI v3 documents. Basic doc generated from JAX-RS
annotations; augment with new annotations to provide richer doc. Available at
standard /openapi URL
Code One 2018 38
@GET
@Produces(MediaType.APPLICATION_JSON)
@APIResponse(
responseCode = "200",
description = "host:properties pairs stored in the inventory.",
content = …
public InventoryList listContents() {
return manager.list();
Rest Client
URL: https://github.com/eclipse/microprofile-rest-client
Latest Release: https://github.com/eclipse/microprofile-rest-client/releases
MP Rest Client makes it easy to take an interface definition for a JAX-RS service
and generate a client from it.
@RegisterRestClient
@Path("/properties")
public interface SystemClient { …
@Inject
@RestClient
private SystemClient client;
Code One 2018 39
Config
Dev
Test
Pro
d
URL: https://github.com/eclipse/microprofile-config
Latest Release: https://github.com/eclipse/microprofile-config/releases
Applications need to be configured based on a running environment. Provides a
standard way to define a hierarchy of config sources from which environmental
config may be injected into a running application.
Code One 2018 40
public class InventoryConfig {
@Inject @ConfigProperty(name="port", defaultValue="9080")
private int port;
public int getPort() {
return port;
}}
Fault Tolerance
URL: https://github.com/eclipse/microprofile-fault-tolerance
Latest Release: https://github.com/eclipse/microprofile-fault-tolerance/releases
Fault tolerance is about leveraging different strategies to guide the execution and
result of some logic. Defines annotations for container-brokered timeouts, retries,
fallbacks, circuit-breakers and bulkheads. Simplifies the application-handling of
failure in microservice architectures.
Code One 2018
@CircuitBreaker(
failOn=IOException.class,
delay = 500)
public void callService() {
// call the service
}
@Retry(retryOn=IOException.class,
delay = 500,
maxRetries=5)
public void callService() {
// call the service
}
@Fallback((fallbackMethod =
“MyFallback")
public void callService() {
// call the service
}
private void MyFallback () {
// perform fallback action
}
Metrics
URL: https://github.com/eclipse/microprofile-metrics
Latest Release: https://github.com/eclipse/microprofile-metrics/releases
Produce and expose standard metrics at /metrics/base
Defines annotations to expose application metrics at /metrics/application
Prometheus or JSON formats (specify in HTTP accept header).
Code One 2018 42
@Counted
@Gauge
@Metered
@Timed
…
JWT Propagation
URL: https://github.com/eclipse/microprofile-jwt-auth
Latest Release: https://github.com/eclipse/microprofile-jwt-auth/releases
JWT is a de facto standard for single sign-on (SSO). MP JWT maps JWT claims to
Java EE APIs. The content of a JWT token can then Java EE RBAC – identifying user
principle name and group names that a container can map to deployment roles.
Code One 2018 43
@RolesAllowed({ "admin", "user" })
public Properties getProperties() {
Role names that are used in the @RolesAllowed annotation are
mapped to group names in the groups claim of the JWT, which results
in an authorization decision wherever the security constraint is applied.
Health Check
URL: https://github.com/eclipse/microprofile-health
Latest Release: https://github.com/eclipse/microprofile-health/releases
Health checks are used to probe the state of a computing node from another
machine (e.g. kubernetes service controller) with the primary target being cloud.
Application-provded handlers identified by annotation
Code One 2018 44
@Health
@ApplicationScoped
public class SystemHealth implements HealthCheck {
public HealthCheckResponse call() {
// Service-specific health check logic
}}
Composite check result exposed at /health
Reactive Streams Operators (work in progress)
URL: https://github.com/eclipse/microprofile-reactive-streams
Latest Release: https://github.com/eclipse/microprofile-reactive-
streams/releases
Reactive Streams is an integration SPI - it allows two different libraries that provide asynchronous
streaming to be able to stream data to and from each other.
Reactive Streams is not however designed to be used directly by application developers. The semantics
defined by Reactive Streams are very strict, and are non trivial, particularly in the areas of thread safety, to
implement correctly. Typically, application developers are expected to use third party libraries that provide
the tools necessary to manipulate and control streams. Examples include Akka Streams, RxJava and
Reactor.
Code One 2018 45
Reactive Messaging (work in progress)
URL: https://github.com/eclipse/microprofile-reactive-messaging
Latest Release: N/A
User annotates simple methods…container creates and manages Reactive Streams:
Code One 2018 46
Service Mesh / ISTIO (work in progress)
URL: https://github.com/eclipse/microprofile-service-mesh
Latest Release: N/A
MicroProfile defines programming model for developing cloud-native
microservices. Cloud Native microservices developed with MicroProfile can take
advantage of a Service Mesh by extracting many concerns away from the
development of the microservice itself. It is important for MicroProfile to
understand the capabilities of service mesh, so that MicroProfile can offer
complimentary features for the infrastructure and avoid the conflicts.
Code One 2018 47
Code One 2018
https://jakarta.ee/news/2018/04/24/jakarta-ee-community-survey/
48
Ad

More Related Content

What's hot (19)

[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
Rakuten Group, Inc.
 
Huge Enterprise Systems Architecture Design with Java EE
Huge Enterprise Systems Architecture Design with Java EEHuge Enterprise Systems Architecture Design with Java EE
Huge Enterprise Systems Architecture Design with Java EE
Rakuten Group, Inc.
 
JDK 9 Java Platform Module System
JDK 9 Java Platform Module SystemJDK 9 Java Platform Module System
JDK 9 Java Platform Module System
Wolfgang Weigend
 
Resume2015-V1
Resume2015-V1Resume2015-V1
Resume2015-V1
Benjamin Quarless
 
Javantura v6 - Java SE, Today and Tomorrow - Dalibor Topic
Javantura v6 - Java SE, Today and Tomorrow - Dalibor TopicJavantura v6 - Java SE, Today and Tomorrow - Dalibor Topic
Javantura v6 - Java SE, Today and Tomorrow - Dalibor Topic
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Jakarta EE and MicroProfile Tech Talk
Jakarta EE and MicroProfile Tech TalkJakarta EE and MicroProfile Tech Talk
Jakarta EE and MicroProfile Tech Talk
Josh Juneau
 
Santosh_Liferay_Developer
Santosh_Liferay_DeveloperSantosh_Liferay_Developer
Santosh_Liferay_Developer
Santosh Kumar Bharatha
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
Vinay H G
 
Future of Java EE with Java SE 8
Future of Java EE with Java SE 8Future of Java EE with Java SE 8
Future of Java EE with Java SE 8
Hirofumi Iwasaki
 
Professional sql server 2005 clr programming
Professional sql server 2005 clr programmingProfessional sql server 2005 clr programming
Professional sql server 2005 clr programming
joeljie
 
MySQL
MySQLMySQL
MySQL
PT.JUG
 
Jakarta EE 8: Overview of Features
Jakarta EE 8: Overview of FeaturesJakarta EE 8: Overview of Features
Jakarta EE 8: Overview of Features
Josh Juneau
 
JCP & The Future of Java
JCP & The Future of JavaJCP & The Future of Java
JCP & The Future of Java
Heather VanCura
 
Goutham_DevOps
Goutham_DevOpsGoutham_DevOps
Goutham_DevOps
Prudhvi Gowtham
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9
C4Media
 
Fitch Ratings Goes Open Suite
Fitch Ratings Goes Open SuiteFitch Ratings Goes Open Suite
Fitch Ratings Goes Open Suite
Magnolia
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgp
michaelisvy
 
Cloud Native Java: Present and Future at Eclipse Foundation
Cloud Native Java: Present and Future at Eclipse FoundationCloud Native Java: Present and Future at Eclipse Foundation
Cloud Native Java: Present and Future at Eclipse Foundation
Jakarta_EE
 
Amjad_Oracle_2016
Amjad_Oracle_2016Amjad_Oracle_2016
Amjad_Oracle_2016
Amjad Shaikh
 
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
Rakuten Group, Inc.
 
Huge Enterprise Systems Architecture Design with Java EE
Huge Enterprise Systems Architecture Design with Java EEHuge Enterprise Systems Architecture Design with Java EE
Huge Enterprise Systems Architecture Design with Java EE
Rakuten Group, Inc.
 
JDK 9 Java Platform Module System
JDK 9 Java Platform Module SystemJDK 9 Java Platform Module System
JDK 9 Java Platform Module System
Wolfgang Weigend
 
Jakarta EE and MicroProfile Tech Talk
Jakarta EE and MicroProfile Tech TalkJakarta EE and MicroProfile Tech Talk
Jakarta EE and MicroProfile Tech Talk
Josh Juneau
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
Vinay H G
 
Future of Java EE with Java SE 8
Future of Java EE with Java SE 8Future of Java EE with Java SE 8
Future of Java EE with Java SE 8
Hirofumi Iwasaki
 
Professional sql server 2005 clr programming
Professional sql server 2005 clr programmingProfessional sql server 2005 clr programming
Professional sql server 2005 clr programming
joeljie
 
Jakarta EE 8: Overview of Features
Jakarta EE 8: Overview of FeaturesJakarta EE 8: Overview of Features
Jakarta EE 8: Overview of Features
Josh Juneau
 
JCP & The Future of Java
JCP & The Future of JavaJCP & The Future of Java
JCP & The Future of Java
Heather VanCura
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9
C4Media
 
Fitch Ratings Goes Open Suite
Fitch Ratings Goes Open SuiteFitch Ratings Goes Open Suite
Fitch Ratings Goes Open Suite
Magnolia
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgp
michaelisvy
 
Cloud Native Java: Present and Future at Eclipse Foundation
Cloud Native Java: Present and Future at Eclipse FoundationCloud Native Java: Present and Future at Eclipse Foundation
Cloud Native Java: Present and Future at Eclipse Foundation
Jakarta_EE
 

Similar to MicroProfile and Jakarta EE - What's Next? (20)

Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
Kevin Sutter
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...
Hirofumi Iwasaki
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...
Arshal Ameen
 
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
Hirofumi Iwasaki
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
LINAGORA
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial SystemsJava EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Arshal Ameen
 
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
Hirofumi Iwasaki
 
Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​
Edward Burns
 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse Microprofile
Red Hat Developers
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 Unconference
Heather VanCura
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/M
Markus Eisele
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and Serverless
Markus Eisele
 
Move from J2EE to Java EE
Move from J2EE to Java EEMove from J2EE to Java EE
Move from J2EE to Java EE
Hirofumi Iwasaki
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java Technology
Simon Ritter
 
Java 9 and Beyond
Java 9 and BeyondJava 9 and Beyond
Java 9 and Beyond
Mayank Patel
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITI
vravi123
 
Cics ts v5.4 continuous delivery and v5.5 what's new
Cics ts v5.4 continuous delivery and v5.5 what's newCics ts v5.4 continuous delivery and v5.5 what's new
Cics ts v5.4 continuous delivery and v5.5 what's new
Mark Cocker
 
Demystifying microservices for JavaEE developers by Steve Millidge.
Demystifying microservices for JavaEE developers by Steve Millidge.Demystifying microservices for JavaEE developers by Steve Millidge.
Demystifying microservices for JavaEE developers by Steve Millidge.
Payara
 
Narender Soni Resume - Updated
Narender Soni Resume - UpdatedNarender Soni Resume - Updated
Narender Soni Resume - Updated
Narender Soni
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
Kevin Sutter
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...
Hirofumi Iwasaki
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...
Arshal Ameen
 
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
Hirofumi Iwasaki
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
LINAGORA
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial SystemsJava EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Arshal Ameen
 
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
Hirofumi Iwasaki
 
Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​
Edward Burns
 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse Microprofile
Red Hat Developers
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 Unconference
Heather VanCura
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/M
Markus Eisele
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and Serverless
Markus Eisele
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java Technology
Simon Ritter
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITI
vravi123
 
Cics ts v5.4 continuous delivery and v5.5 what's new
Cics ts v5.4 continuous delivery and v5.5 what's newCics ts v5.4 continuous delivery and v5.5 what's new
Cics ts v5.4 continuous delivery and v5.5 what's new
Mark Cocker
 
Demystifying microservices for JavaEE developers by Steve Millidge.
Demystifying microservices for JavaEE developers by Steve Millidge.Demystifying microservices for JavaEE developers by Steve Millidge.
Demystifying microservices for JavaEE developers by Steve Millidge.
Payara
 
Narender Soni Resume - Updated
Narender Soni Resume - UpdatedNarender Soni Resume - Updated
Narender Soni Resume - Updated
Narender Soni
 
Ad

More from Ian Robinson (6)

WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
Ian Robinson
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Ian Robinson
 
IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)
Ian Robinson
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
Ian Robinson
 
Was liberty
Was libertyWas liberty
Was liberty
Ian Robinson
 
Apache Aries Overview
Apache Aries   OverviewApache Aries   Overview
Apache Aries Overview
Ian Robinson
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
Ian Robinson
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Ian Robinson
 
IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)
Ian Robinson
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
Ian Robinson
 
Apache Aries Overview
Apache Aries   OverviewApache Aries   Overview
Apache Aries Overview
Ian Robinson
 
Ad

Recently uploaded (20)

Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 

MicroProfile and Jakarta EE - What's Next?

  • 1. MicroProfile and Jakarta EE -- What’s Next? Kevin Sutter (@kwsutter), MicroProfile and Jakarta EE Architect @ IBM Ian Robinson (@ian__robinson), IBM Distinguished Engineer & WebSphere Chief Architect
  • 2. What’s Next? Kevin Sutter (@kwsutter), MicroProfile and Jakarta EE Architect @ IBM Ian Robinson (@ian__robinson), IBM Distinguished Engineer & WebSphere Chief Architect #1 Better Conference Scheduling
  • 3. About Me ● IBM Distinguished Engineer ● WebSphere Foundation Chief Architect ● 25+ years experience in distributed enterprise computing ● WebSphere strategy & development, open source and enterprise Java standards ○ WebSphere, Liberty, Open Liberty, Java EE, JSR 95, MicroProfile, Jakarta EE, Spring… ● Travels a lot, based in IBM’s Hursley lab in the UK (near Southampton). ● Season ticket holder for one of the least fashionable clubs in English football ● Sad European Ian Robinson 3
  • 4. JavaOne 2015: Java EE – Relevant or Elephant? http://parentrap.org/2014/09/29/easy-parenting-part-iii-the-donts-list/ 4
  • 5. JavaOne 2015: A Benchmark Living in the Past – SPECjEnterprise2010 ● This is Java EE5 technology! ○ Not even EE6 let alone EE7. ● JCP Members are the primary contributors to this benchmark and are holding it back. ● What are you scared of? More vendors? ● Where is the web profile compliant subset? ● Where is EE7? ○ We can skip EE6… ● Run rules to allow cloud publish? 5
  • 6. ▪ Java EE is at a crossroads. ▪ Still strong and relevant at the cloud party, BUT younger guests are making more noise. – Vendors support an increasingly diverse cloud environment ▪ Enterprise incumbency = strength and weakness: – Customers want NEW without breaking EXISTING – NEVER break backward compatibility - sacrifices incumbency. ▪ Forward-looking EE 8 focus on web standards is good. ▪ Multi-tenancy? These days I’ll use a virtualization container for that. ▪ And finally: stuff around the edges is critical – Still need to evangelize: SHOUT louder about lightweight Java EE – And lets get serious about a modern, lightweight EE7 benchmark JavaOne 2015: Java EE Outlook https://www.flickr.com/photos/akaitori6
  • 7. Warnings Signs Were Ignored Code One 2018 7
  • 8. What can we do to advance microservice development in the Enterprise Java space? -Java EE Community, early 2016 Code One 2018 What Happened Next? 8
  • 9. Characteristics Specs, APIs, TCKs Community Driven Lightweight, Iterative Processes No Reference Impls! Code One 2018 9
  • 10. JavaOne 2016 (Offsite!) CDI 1.2 JAX-RS 2.0 JSON-P 1.0 MicroProfile 1.0 Announced! Basic Building Blocks for Microservices Code One 2018 10
  • 11. CDI 2.0 Fast-forward two years... JAX-RS 2.1 JSON-P 1.1 MicroProfile 2.1 JSON-B 1.0 Fault Tolerance 1.1 Metrics 1.1 JWT Propagation 1.1 Health Check 1.0 Open Tracing 1.2 Open API 1.0 Rest Client 1.1 Config 1.3 17 Component Releases! 7 Platform Releases! MicroProfile 2.1 Code One 2018 11
  • 12. CDI 2.0 Roadmap... JAX-RS 2.1 JSON-P 1.1 MicroProfile 2.x JSON-B 1.0 Fault Tolerance 1.1 Metrics 1.1 JWT Propagation 1.1 Health Check 1.0 Open Tracing 1.2 Open API 1.0 Rest Client 1.1 Config 1.3 Reactive Operators 1.0 Reactive Messaging 1.0 Service Mesh / ISTIO 1.0 ... Component Updates ● Health Check 1.1 ● Rest Client 1.2 ● Config 1.4 ● Metrics 2.0 ● Fault Tolerance 1.2 ● ... Code One 2018 12
  • 14. JavaOne 2017: EE4J is Born 2017 - 2018 Code One 2018 14
  • 15. Eclipse GlassFish - 39 EE4J Projects and counting... ● 20% Project Proposal has been posted for community review ● 40% Project committers and resources have been provisioned ● 60% Initial Contribution provided to the Eclipse IP Team ● 80% Initial Contribution Pushed to Git Repository ● 100% Project has engaged in its first Release Review 7.7M lines of code https://www.eclipse.org/ee4j/status.php Code One 2018 15 Eclipse Glassfish RC1 TODAY!
  • 17. Specification Process Specification Process 1.0 ● Replacement for JCP Standards Process ○ Supports Code First development ● Public Draft Available for Review (Oct 17, 2018) ○ https://tinyurl.com/ybh8sx8j ○ Comments accepted until Oct 31, 2018 ○ via JakartaEE community mailing list ● Guinea Pig Spec Project ○ JNoSQL Code One 2018 17
  • 18. Additional Work Items in progress... TCK projects (all source now available) and TCK Compliance Process TCK License Specification License ... Code One 2018 18 5.7M LOC
  • 19. Similarities between MicroProfile and Jakarta EE ● Focused on Microservice and Cloud Native Development ● Desire Agile Development Practices ● Code First Mentality Code One 2018 19
  • 20. Characteristics Specs, APIs, TCKs Community Driven Lightweight, Iterative Processes No Reference Impls! Code One 2018 20
  • 21. Differences between MicroProfile and Jakarta EE ● MicroProfile has an established release process and cycle ○ 7 major releases and 17 component releases in its 2 years of existence ○ Jakarta EE is planning for 1-2 major releases per year (components may have more) ● MicroProfile is not a Standards body ○ Jakarta EE needs to replace the JCP ● Jakarta EE brand is valuable and requires stringent compliance testing ○ MicroProfile’s compatibility statements are strictly on the honor system Code One 2018 21
  • 22. Positive signs... Rest Client 1.x JAX-RS 2.x ??? Code One 2018 22
  • 23. More positive signs... Config JSR Config Specification ??? Code One 2018 23
  • 25. Other Integrations... Fault Tolerance ● Retry ● Timeout ● CircuitBreaker ● Bulkhead ● Fallback Fault Tolerance ● Retry ● Timeout ● CircuitBreaker ● Bulkhead ● Fallback ??? Code One 2018 25
  • 30. Anticipated Relationship ● Ongoing MicroProfile innovation on top of Jakarta EE, with desired adoption of foundational technologies into JakartaEE.next Code One 2018 30
  • 31. Available In Open Liberty Code One 2018 31
  • 32. Available In Open Liberty Code One 2018 32
  • 33. And One More Thing…. Code One 2018 33
  • 34. JAX-RS over httpInsurance Provider Service Vehicle Service Insurance Service JAX-RS over http JAX-RS over http DBJPA JPA JPA IBM first to publish a result  IBM’s first ever published result with WebSphere Liberty WebjOPS score of 28,860 on Intel Skylake systems  IBM JDK’s IBMJCEPlus JCE provider accelerated cryptography performance  Java EE 8 features (Liberty was first to have Java EE 8 support) Benchmark architecture SPECjEnterprise® 2018 Web Profile: The newest SPEC® benchmark Benchmark highlights  Newest SPECjEnterprise® benchmark since SPECjEnterprise® 2010  Went live on September 12 (spec.org/jEnterprise2018web)  Developed by representatives from IBM, Oracle and Red Hat  Only for Web Profile subset of the Java EE specification  Utilizes a MicroServices architecture  Requires TLS (Transport Layer Security Services also use CDI, Session EJBs, JSON, and Bean Validation 1 – Vehicle JVM 4 cores 1 – Provider JVM 4 cores 4 Insurance JVMs - 10 cores each Cisco 2 socket, 24-core Skylake Intel server Application Server SUT 2 – 960 GB SSDs in RAID 1 – DB2 database instance Cisco 2 socket, 24-core Skylake Intel server Database SUT DNS server to route requests IBM result configuration Drivers send requests using JAX-RS WebSockets and JSF Drivers https A New Benchmark At Last As per SPEC published data as of 10/12/2018 : https://www.spec.org/jEnterprise2018web/results/jEnterprise2018web.html . Results are from www.spec.org as of 10/12/2018. IBM results are 26,672 SPECjEnterprise® 2018 WebjOPS and 28,860 SPECjEnterprise® 2018 WebjOPS published on 09/27/2018 and 10/11/2018 respectively. SPEC and SPECjEnterprise are registered trademarks of the Standard Performance Evaluation Corporation.Code One 2018 34
  • 35. References ● https://openliberty.io/blog/2018/08/16/whats-next-microprofile-jakartaee.html ● https://microprofile.io ○ https://projects.eclipse.org/projects/technology.microprofile ○ https://microprofile.io/projects/ ○ https://wiki.eclipse.org/MicroProfile/Implementation ○ https://openliberty.io/guides/ ● https://jakarta.ee ○ https://projects.eclipse.org/projects/ee4j/ ○ https://github.com/eclipse-ee4j/ee4j ○ https://www.eclipse.org/ee4j/status.php ○ https://github.com/orgs/eclipse-ee4j/projects/1 Code One 2018 35
  • 37. Open Tracing URL: https://github.com/eclipse/microprofile-opentracing Latest Release: https://github.com/eclipse/microprofile-opentracing/releases The MicroProfile OpenTracing API provides a standard Java binding for instrumenting microservices for distributed tracing. Code One 2018 37 @Traced(value = true, operationName = "InventoryManager.list") public InventoryList list() { return new InventoryList(systems); }
  • 38. Open API URL: https://github.com/eclipse/microprofile-open-api Latest Release: https://github.com/eclipse/microprofile-open-api/releases OpenAPI (nee Swagger) provides Java interfaces and annotations to natively produce OpenAPI v3 documents. Basic doc generated from JAX-RS annotations; augment with new annotations to provide richer doc. Available at standard /openapi URL Code One 2018 38 @GET @Produces(MediaType.APPLICATION_JSON) @APIResponse( responseCode = "200", description = "host:properties pairs stored in the inventory.", content = … public InventoryList listContents() { return manager.list();
  • 39. Rest Client URL: https://github.com/eclipse/microprofile-rest-client Latest Release: https://github.com/eclipse/microprofile-rest-client/releases MP Rest Client makes it easy to take an interface definition for a JAX-RS service and generate a client from it. @RegisterRestClient @Path("/properties") public interface SystemClient { … @Inject @RestClient private SystemClient client; Code One 2018 39
  • 40. Config Dev Test Pro d URL: https://github.com/eclipse/microprofile-config Latest Release: https://github.com/eclipse/microprofile-config/releases Applications need to be configured based on a running environment. Provides a standard way to define a hierarchy of config sources from which environmental config may be injected into a running application. Code One 2018 40 public class InventoryConfig { @Inject @ConfigProperty(name="port", defaultValue="9080") private int port; public int getPort() { return port; }}
  • 41. Fault Tolerance URL: https://github.com/eclipse/microprofile-fault-tolerance Latest Release: https://github.com/eclipse/microprofile-fault-tolerance/releases Fault tolerance is about leveraging different strategies to guide the execution and result of some logic. Defines annotations for container-brokered timeouts, retries, fallbacks, circuit-breakers and bulkheads. Simplifies the application-handling of failure in microservice architectures. Code One 2018 @CircuitBreaker( failOn=IOException.class, delay = 500) public void callService() { // call the service } @Retry(retryOn=IOException.class, delay = 500, maxRetries=5) public void callService() { // call the service } @Fallback((fallbackMethod = “MyFallback") public void callService() { // call the service } private void MyFallback () { // perform fallback action }
  • 42. Metrics URL: https://github.com/eclipse/microprofile-metrics Latest Release: https://github.com/eclipse/microprofile-metrics/releases Produce and expose standard metrics at /metrics/base Defines annotations to expose application metrics at /metrics/application Prometheus or JSON formats (specify in HTTP accept header). Code One 2018 42 @Counted @Gauge @Metered @Timed …
  • 43. JWT Propagation URL: https://github.com/eclipse/microprofile-jwt-auth Latest Release: https://github.com/eclipse/microprofile-jwt-auth/releases JWT is a de facto standard for single sign-on (SSO). MP JWT maps JWT claims to Java EE APIs. The content of a JWT token can then Java EE RBAC – identifying user principle name and group names that a container can map to deployment roles. Code One 2018 43 @RolesAllowed({ "admin", "user" }) public Properties getProperties() { Role names that are used in the @RolesAllowed annotation are mapped to group names in the groups claim of the JWT, which results in an authorization decision wherever the security constraint is applied.
  • 44. Health Check URL: https://github.com/eclipse/microprofile-health Latest Release: https://github.com/eclipse/microprofile-health/releases Health checks are used to probe the state of a computing node from another machine (e.g. kubernetes service controller) with the primary target being cloud. Application-provded handlers identified by annotation Code One 2018 44 @Health @ApplicationScoped public class SystemHealth implements HealthCheck { public HealthCheckResponse call() { // Service-specific health check logic }} Composite check result exposed at /health
  • 45. Reactive Streams Operators (work in progress) URL: https://github.com/eclipse/microprofile-reactive-streams Latest Release: https://github.com/eclipse/microprofile-reactive- streams/releases Reactive Streams is an integration SPI - it allows two different libraries that provide asynchronous streaming to be able to stream data to and from each other. Reactive Streams is not however designed to be used directly by application developers. The semantics defined by Reactive Streams are very strict, and are non trivial, particularly in the areas of thread safety, to implement correctly. Typically, application developers are expected to use third party libraries that provide the tools necessary to manipulate and control streams. Examples include Akka Streams, RxJava and Reactor. Code One 2018 45
  • 46. Reactive Messaging (work in progress) URL: https://github.com/eclipse/microprofile-reactive-messaging Latest Release: N/A User annotates simple methods…container creates and manages Reactive Streams: Code One 2018 46
  • 47. Service Mesh / ISTIO (work in progress) URL: https://github.com/eclipse/microprofile-service-mesh Latest Release: N/A MicroProfile defines programming model for developing cloud-native microservices. Cloud Native microservices developed with MicroProfile can take advantage of a Service Mesh by extracting many concerns away from the development of the microservice itself. It is important for MicroProfile to understand the capabilities of service mesh, so that MicroProfile can offer complimentary features for the infrastructure and avoid the conflicts. Code One 2018 47