SlideShare ist ein Scribd-Unternehmen logo
1 von 32
MicroProfile:
A Quest for a lightweight and
reactive Enterprise Java Platform
Ondro Mihályi, Payara
@omihalyi
@omihalyi
Enterprise Jungle
Database
SOAP
services
ACID
transactions
@omihalyi
Let’s feed it with lots of healthy food...
@omihalyi
All the healthy food we can get …
EJB
XA
JAX-WS
XML
JPA Transactions Monitoring
Resource
pooling
Thread
management
JMS
brokers
Security JSF
@omihalyi
And even healthier food …
JAX-RS
CDI JSON
Asynchronous
Simplified
Security
@omihalyi
Fundamental Shifts in Computing
● Deliver new features more quickly
● Smaller, more agile teams
● Deliver business features as discrete services
● Reduce time to market
● Address unpredictable loads
● Pay as you go
● Containerization
Cloud
Microservices
@omihalyi
Anything else?Big Data ?
Cloud ?
Reactive ?
Microservices ?
No, thanks.
I’d rather my
juicy CORBA
Docker ?
@omihalyi
We need something better
Java EE ++−−
@omihalyi
Or rather a diet …
Java EE ++
● Flexible
● Small disk and memory consumption
● Fast start-up times
● Simple installation and usage
−−
@omihalyi
WildFly Swarm - build app from fractions
Payara Micro - app server as a runnable JAR
TomEE - embeddable app server built on Tomcat
WebSphere Liberty - generate server subset
Java EE on a diet already
@omihalyi
Payara Micro payara.fish/payara_micro
● Executable JAR ( <60MB )
○ Java EE, JCache, CDI event bus
● Automatic clustering and replication
● Package app as executable JAR
java -jar payara.jar --deploy app.war
or with the maven plugin:
@omihalyi
Payara Micro payara.fish/payara_micro
● Executable JAR ( <60MB )
○ Java EE, JCache, CDI event bus
● Automatic clustering and replication
● Package app as executable JAR
java -jar payara.jar --deploy app.war --
outputUberJar app.jar
@omihalyi
PathFinder web app with a REST endpoint in 3 flavors
DEMO
https://github.com/OndrejM-demonstrations/Pathfinder-comparison
@omihalyi
After the diet applied...
WildFly
Swarm
Payara Micro Spring Boot
File size 105 MB 56 MB 22 MB
Heap size
(after GC)
28 MB 30 MB 29 MB
Boot time 12 s 14 s
( 10 s --noCluster)
7 s
@omihalyi
Java EE is about standards
Can it provide solutions?
● REST (4.56)
● OAuth (4.24), Secrets (4.07)
● Configuration (4.17)
● Reactive (3.97)
● Service Health (3.89)
Survey from 2016
@omihalyi
Things have changed...
Java EE needs to
adapt
or be replaced in
many cases
HTTP/2
OAuth
NoSQL
Docker
Reactive
Streams
Micro
Services
@omihalyi
We need heroes here!
● Supporting
development and
adoption of Java EE
● Lobbying vendors to
fulfill their commitments
● Finding ways of
process & collaboration
improvements
● Companies
● JSR Expert Group
members
● Java User Groups
● Individual developers
@omihalyi
Oracle revised Java EE plans at JavaOne
2016
@omihalyi
Oracle revised plans again in 2017
● Java EE 8 the last version governed by
Oracle
● Plans to transfer Java EE to the Eclipse
Foundation
● Possibly with a different name
@omihalyi
Meanwhile vendors & community cooperate
Optimizing Enterprise Java
for a Microservices Architecture
MicroProfile.io
MicroProfile Discussion Forum (bit.ly/MicroProfileForum)
MicroProfile Examples (https://github.com/eclipse/microprofile-conference)
@omihalyi
MicroProfile Release Philosophy
Release 1.0
JAX-RS
CDI
JSON-P
Build
consensus
Standardize
Rapidly iterate
and innovate
@omihalyi
Bridging Community and Standards
Choice
Application
Portability
Backwards
Compatibility
Broad Collaboration
Encouraged
Experimentation
Fail Fast
Rapid Innovation
MicroProfile 1.1
August 8, 2017
24
MicroProfile 1.2
End of September, 2017
Eclipse MicroProfile 1.1 (Aug, 2017)
25
MicroProfile 1.1
= New
= No change from last release
JAX-RS 2.0JSON-P 1.0CDI 1.2
Config 1.0
Configuration 1.0
Applications need to be configured based on a running environment. It must be
possible to modify configuration data from outside an application so that the
application itself does not need to be repackaged
26
Dev
Test
Prod @Inject
@ConfigProperty(name = "myservice.url")
URL myService;
@Inject
Config config;
myService = config
.getValue("myservice.url", URL.class)
Eclipse MicroProfile 1.2 (Sep, 2017)
27
MicroProfile 1.2
= New
= No change from last release
JAX-RS 2.0JSON-P 1.0CDI 1.2
Config 1.1
Fault
Tolerance 1.0
JWT
Propagation
1.0
Health
Check 1.0
Metrics 1.0
@omihalyi
DEMO ARCHITECTURE
WF Swarm WebSphere LP TomEE Payara Micro
https://github.com/eclipse/microprofile-conference
@omihalyi
The MicroProfile demo in numbers
Vendor Service JAR size Heap Starts in
WebSphere LP Session
Voting
36 MB 30 MB 8 sec.
WildFly Swarm Session 93 MB 37 MB 11 sec.
Payara Micro Session
Schedule
33 MB 27 MB 8 sec.
TomEE Speaker 35 MB 30 MB 7 sec.
@omihalyi
The nature of MicroProfile
● Sand-box Approach to Open
Contribution
● High Cadence Release Philosophy
● Transparency at all Stages
○ Public forum & chat, github, Eclipse foundation, Apache License
● CDI Centric Programming Model
@omihalyi
Join the Discussion!
https://groups.google.com/forum/#!forum/microprofile
Or even submit your idea as a
PR in the sandbox project!
https://github.com/eclipse/microprofile-
sandbox
@omihalyi
The quest continues...
● MicroProfile as a platform to cooperate faster
○ feed JCP with proposals
● Future Java EE targeting cloud and microservices
○ under community-friendly Eclipse Foundation
● JavaEE Guardians to lobby for the communityJoin the adventure!

Weitere ähnliche Inhalte

Was ist angesagt?

CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersMarkus Eisele
 
SQL ON Azure (decision-matrix)
SQL  ON  Azure (decision-matrix)SQL  ON  Azure (decision-matrix)
SQL ON Azure (decision-matrix)PARIKSHIT SAVJANI
 
Glassfish AP server 連結 oracle DB 11g
Glassfish AP server 連結 oracle DB 11gGlassfish AP server 連結 oracle DB 11g
Glassfish AP server 連結 oracle DB 11gHung-Yi Chen
 
Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterBalasubramanian Kandasamy
 
SHARE 2014, Pittsburgh CICS and Liberty applications
SHARE 2014, Pittsburgh CICS and Liberty applicationsSHARE 2014, Pittsburgh CICS and Liberty applications
SHARE 2014, Pittsburgh CICS and Liberty applicationsnick_garrod
 
Mongo db world 2014 nyc mongodb on azure - tips tricks and examples
Mongo db world 2014 nyc   mongodb on azure - tips tricks and examplesMongo db world 2014 nyc   mongodb on azure - tips tricks and examples
Mongo db world 2014 nyc mongodb on azure - tips tricks and examplesBrian Benz
 
JSR107 Come, Code, Cache, Compute!
JSR107 Come, Code, Cache, Compute! JSR107 Come, Code, Cache, Compute!
JSR107 Come, Code, Cache, Compute! Payara
 
WebLogic Scripting Tool made Cool!
WebLogic Scripting Tool made Cool!WebLogic Scripting Tool made Cool!
WebLogic Scripting Tool made Cool!Maarten Smeets
 
Big App Workloads on Microsoft Azure - TechEd Europe 2014
Big App Workloads on Microsoft Azure - TechEd Europe 2014Big App Workloads on Microsoft Azure - TechEd Europe 2014
Big App Workloads on Microsoft Azure - TechEd Europe 2014Brian Benz
 
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...SolidQ
 
Tech Ed North America 2014 - Java on Azure
Tech Ed North America 2014 - Java on AzureTech Ed North America 2014 - Java on Azure
Tech Ed North America 2014 - Java on AzureBrian Benz
 
All about Kerberos In Microsoft BI
All about Kerberos In Microsoft BIAll about Kerberos In Microsoft BI
All about Kerberos In Microsoft BIPARIKSHIT SAVJANI
 
Glassfish An Introduction
Glassfish An IntroductionGlassfish An Introduction
Glassfish An IntroductionJumping Bean
 
Oracle on Azure at Windows Azure Conference 2014
Oracle on Azure at Windows Azure Conference 2014Oracle on Azure at Windows Azure Conference 2014
Oracle on Azure at Windows Azure Conference 2014PARIKSHIT SAVJANI
 
Java EE 8 Update
Java EE 8 UpdateJava EE 8 Update
Java EE 8 UpdateRyan Cuprak
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Arun Gupta
 
Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014Jeff Chu
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with JavaEberhard Wolff
 

Was ist angesagt? (19)

CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
 
SQL ON Azure (decision-matrix)
SQL  ON  Azure (decision-matrix)SQL  ON  Azure (decision-matrix)
SQL ON Azure (decision-matrix)
 
Glassfish AP server 連結 oracle DB 11g
Glassfish AP server 連結 oracle DB 11gGlassfish AP server 連結 oracle DB 11g
Glassfish AP server 連結 oracle DB 11g
 
Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB Cluster
 
SHARE 2014, Pittsburgh CICS and Liberty applications
SHARE 2014, Pittsburgh CICS and Liberty applicationsSHARE 2014, Pittsburgh CICS and Liberty applications
SHARE 2014, Pittsburgh CICS and Liberty applications
 
Mongo db world 2014 nyc mongodb on azure - tips tricks and examples
Mongo db world 2014 nyc   mongodb on azure - tips tricks and examplesMongo db world 2014 nyc   mongodb on azure - tips tricks and examples
Mongo db world 2014 nyc mongodb on azure - tips tricks and examples
 
JSR107 Come, Code, Cache, Compute!
JSR107 Come, Code, Cache, Compute! JSR107 Come, Code, Cache, Compute!
JSR107 Come, Code, Cache, Compute!
 
WebLogic Scripting Tool made Cool!
WebLogic Scripting Tool made Cool!WebLogic Scripting Tool made Cool!
WebLogic Scripting Tool made Cool!
 
Big App Workloads on Microsoft Azure - TechEd Europe 2014
Big App Workloads on Microsoft Azure - TechEd Europe 2014Big App Workloads on Microsoft Azure - TechEd Europe 2014
Big App Workloads on Microsoft Azure - TechEd Europe 2014
 
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
 
Tech Ed North America 2014 - Java on Azure
Tech Ed North America 2014 - Java on AzureTech Ed North America 2014 - Java on Azure
Tech Ed North America 2014 - Java on Azure
 
All about Kerberos In Microsoft BI
All about Kerberos In Microsoft BIAll about Kerberos In Microsoft BI
All about Kerberos In Microsoft BI
 
Quarkus bootstrap 2020
Quarkus bootstrap 2020Quarkus bootstrap 2020
Quarkus bootstrap 2020
 
Glassfish An Introduction
Glassfish An IntroductionGlassfish An Introduction
Glassfish An Introduction
 
Oracle on Azure at Windows Azure Conference 2014
Oracle on Azure at Windows Azure Conference 2014Oracle on Azure at Windows Azure Conference 2014
Oracle on Azure at Windows Azure Conference 2014
 
Java EE 8 Update
Java EE 8 UpdateJava EE 8 Update
Java EE 8 Update
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
 
Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 

Ähnlich wie Bed con - MicroProfile: A Quest for a lightweight and reactive Enterprise Java Platform

GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011Arun Gupta
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsArun Gupta
 
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Paris Open Source Summit
 
Java @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPJava @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPIlan Salviano
 
Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례uEngine Solutions
 
MicroProfile Panel - Sept 2016
MicroProfile Panel - Sept 2016MicroProfile Panel - Sept 2016
MicroProfile Panel - Sept 2016Ray Ploski
 
OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFishglassfish
 
Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021NeerajKumar1965
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopJamie Coleman
 
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld
 
Gf University 27may09 Amersfoort
Gf University 27may09 AmersfoortGf University 27may09 Amersfoort
Gf University 27may09 AmersfoortEugene Bogaart
 
03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring boot03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring bootRam Maddali
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018harvraja
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesTarique Saleem
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL SupportMysql User Camp
 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileRed Hat Developers
 
Service Lifecycle Management with Fuse Service Works
Service Lifecycle Management with Fuse Service WorksService Lifecycle Management with Fuse Service Works
Service Lifecycle Management with Fuse Service WorksKenneth Peeples
 
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyAAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyWASdev Community
 

Ähnlich wie Bed con - MicroProfile: A Quest for a lightweight and reactive Enterprise Java Platform (20)

GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
OWF12/Java Moussine pouchkine Girard
OWF12/Java  Moussine pouchkine GirardOWF12/Java  Moussine pouchkine Girard
OWF12/Java Moussine pouchkine Girard
 
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012
 
Java @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPJava @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SP
 
Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례
 
MicroProfile Panel - Sept 2016
MicroProfile Panel - Sept 2016MicroProfile Panel - Sept 2016
MicroProfile Panel - Sept 2016
 
OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFish
 
Enterprise GlassFish
Enterprise GlassFishEnterprise GlassFish
Enterprise GlassFish
 
Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021
 
Codecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshopCodecamp 2020 microservices made easy workshop
Codecamp 2020 microservices made easy workshop
 
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right
 
Gf University 27may09 Amersfoort
Gf University 27may09 AmersfoortGf University 27may09 Amersfoort
Gf University 27may09 Amersfoort
 
03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring boot03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring boot
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New Features
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse Microprofile
 
Service Lifecycle Management with Fuse Service Works
Service Lifecycle Management with Fuse Service WorksService Lifecycle Management with Fuse Service Works
Service Lifecycle Management with Fuse Service Works
 
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyAAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
 

Mehr von Ondrej Mihályi

Easily scale enterprise applications using distributed data grids
Easily scale enterprise applications using distributed data gridsEasily scale enterprise applications using distributed data grids
Easily scale enterprise applications using distributed data gridsOndrej Mihályi
 
Elastic and Cloud-ready Applications with Payara Micro
Elastic and Cloud-ready Applications with Payara MicroElastic and Cloud-ready Applications with Payara Micro
Elastic and Cloud-ready Applications with Payara MicroOndrej Mihályi
 
Easily scale enterprise applications using distributed data grids
Easily scale enterprise applications using distributed data gridsEasily scale enterprise applications using distributed data grids
Easily scale enterprise applications using distributed data gridsOndrej Mihályi
 
How to bake_reactive_behavior_into_your_java_ee_applications
How to bake_reactive_behavior_into_your_java_ee_applicationsHow to bake_reactive_behavior_into_your_java_ee_applications
How to bake_reactive_behavior_into_your_java_ee_applicationsOndrej Mihályi
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsOndrej Mihályi
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsOndrej Mihályi
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsOndrej Mihályi
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsOndrej Mihályi
 
Business layer and transactions
Business layer and transactionsBusiness layer and transactions
Business layer and transactionsOndrej Mihályi
 
Maven in Java EE project
Maven in Java EE projectMaven in Java EE project
Maven in Java EE projectOndrej Mihályi
 
Java EE web project introduction
Java EE web project introductionJava EE web project introduction
Java EE web project introductionOndrej Mihályi
 

Mehr von Ondrej Mihályi (12)

Easily scale enterprise applications using distributed data grids
Easily scale enterprise applications using distributed data gridsEasily scale enterprise applications using distributed data grids
Easily scale enterprise applications using distributed data grids
 
Elastic and Cloud-ready Applications with Payara Micro
Elastic and Cloud-ready Applications with Payara MicroElastic and Cloud-ready Applications with Payara Micro
Elastic and Cloud-ready Applications with Payara Micro
 
Easily scale enterprise applications using distributed data grids
Easily scale enterprise applications using distributed data gridsEasily scale enterprise applications using distributed data grids
Easily scale enterprise applications using distributed data grids
 
How to bake_reactive_behavior_into_your_java_ee_applications
How to bake_reactive_behavior_into_your_java_ee_applicationsHow to bake_reactive_behavior_into_your_java_ee_applications
How to bake_reactive_behavior_into_your_java_ee_applications
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applications
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applications
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applications
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applications
 
Business layer and transactions
Business layer and transactionsBusiness layer and transactions
Business layer and transactions
 
Working with jpa
Working with jpaWorking with jpa
Working with jpa
 
Maven in Java EE project
Maven in Java EE projectMaven in Java EE project
Maven in Java EE project
 
Java EE web project introduction
Java EE web project introductionJava EE web project introduction
Java EE web project introduction
 

Kürzlich hochgeladen

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Bed con - MicroProfile: A Quest for a lightweight and reactive Enterprise Java Platform

  • 1. MicroProfile: A Quest for a lightweight and reactive Enterprise Java Platform Ondro Mihályi, Payara @omihalyi
  • 3. @omihalyi Let’s feed it with lots of healthy food...
  • 4. @omihalyi All the healthy food we can get … EJB XA JAX-WS XML JPA Transactions Monitoring Resource pooling Thread management JMS brokers Security JSF
  • 5. @omihalyi And even healthier food … JAX-RS CDI JSON Asynchronous Simplified Security
  • 6. @omihalyi Fundamental Shifts in Computing ● Deliver new features more quickly ● Smaller, more agile teams ● Deliver business features as discrete services ● Reduce time to market ● Address unpredictable loads ● Pay as you go ● Containerization Cloud Microservices
  • 7. @omihalyi Anything else?Big Data ? Cloud ? Reactive ? Microservices ? No, thanks. I’d rather my juicy CORBA Docker ?
  • 8. @omihalyi We need something better Java EE ++−−
  • 9. @omihalyi Or rather a diet … Java EE ++ ● Flexible ● Small disk and memory consumption ● Fast start-up times ● Simple installation and usage −−
  • 10. @omihalyi WildFly Swarm - build app from fractions Payara Micro - app server as a runnable JAR TomEE - embeddable app server built on Tomcat WebSphere Liberty - generate server subset Java EE on a diet already
  • 11. @omihalyi Payara Micro payara.fish/payara_micro ● Executable JAR ( <60MB ) ○ Java EE, JCache, CDI event bus ● Automatic clustering and replication ● Package app as executable JAR java -jar payara.jar --deploy app.war or with the maven plugin:
  • 12. @omihalyi Payara Micro payara.fish/payara_micro ● Executable JAR ( <60MB ) ○ Java EE, JCache, CDI event bus ● Automatic clustering and replication ● Package app as executable JAR java -jar payara.jar --deploy app.war -- outputUberJar app.jar
  • 13. @omihalyi PathFinder web app with a REST endpoint in 3 flavors DEMO https://github.com/OndrejM-demonstrations/Pathfinder-comparison
  • 14. @omihalyi After the diet applied... WildFly Swarm Payara Micro Spring Boot File size 105 MB 56 MB 22 MB Heap size (after GC) 28 MB 30 MB 29 MB Boot time 12 s 14 s ( 10 s --noCluster) 7 s
  • 15. @omihalyi Java EE is about standards Can it provide solutions? ● REST (4.56) ● OAuth (4.24), Secrets (4.07) ● Configuration (4.17) ● Reactive (3.97) ● Service Health (3.89) Survey from 2016
  • 16. @omihalyi Things have changed... Java EE needs to adapt or be replaced in many cases HTTP/2 OAuth NoSQL Docker Reactive Streams Micro Services
  • 17. @omihalyi We need heroes here! ● Supporting development and adoption of Java EE ● Lobbying vendors to fulfill their commitments ● Finding ways of process & collaboration improvements ● Companies ● JSR Expert Group members ● Java User Groups ● Individual developers
  • 18. @omihalyi Oracle revised Java EE plans at JavaOne 2016
  • 19. @omihalyi Oracle revised plans again in 2017 ● Java EE 8 the last version governed by Oracle ● Plans to transfer Java EE to the Eclipse Foundation ● Possibly with a different name
  • 20. @omihalyi Meanwhile vendors & community cooperate
  • 21. Optimizing Enterprise Java for a Microservices Architecture MicroProfile.io MicroProfile Discussion Forum (bit.ly/MicroProfileForum) MicroProfile Examples (https://github.com/eclipse/microprofile-conference)
  • 22. @omihalyi MicroProfile Release Philosophy Release 1.0 JAX-RS CDI JSON-P Build consensus Standardize Rapidly iterate and innovate
  • 23. @omihalyi Bridging Community and Standards Choice Application Portability Backwards Compatibility Broad Collaboration Encouraged Experimentation Fail Fast Rapid Innovation
  • 24. MicroProfile 1.1 August 8, 2017 24 MicroProfile 1.2 End of September, 2017
  • 25. Eclipse MicroProfile 1.1 (Aug, 2017) 25 MicroProfile 1.1 = New = No change from last release JAX-RS 2.0JSON-P 1.0CDI 1.2 Config 1.0
  • 26. Configuration 1.0 Applications need to be configured based on a running environment. It must be possible to modify configuration data from outside an application so that the application itself does not need to be repackaged 26 Dev Test Prod @Inject @ConfigProperty(name = "myservice.url") URL myService; @Inject Config config; myService = config .getValue("myservice.url", URL.class)
  • 27. Eclipse MicroProfile 1.2 (Sep, 2017) 27 MicroProfile 1.2 = New = No change from last release JAX-RS 2.0JSON-P 1.0CDI 1.2 Config 1.1 Fault Tolerance 1.0 JWT Propagation 1.0 Health Check 1.0 Metrics 1.0
  • 28. @omihalyi DEMO ARCHITECTURE WF Swarm WebSphere LP TomEE Payara Micro https://github.com/eclipse/microprofile-conference
  • 29. @omihalyi The MicroProfile demo in numbers Vendor Service JAR size Heap Starts in WebSphere LP Session Voting 36 MB 30 MB 8 sec. WildFly Swarm Session 93 MB 37 MB 11 sec. Payara Micro Session Schedule 33 MB 27 MB 8 sec. TomEE Speaker 35 MB 30 MB 7 sec.
  • 30. @omihalyi The nature of MicroProfile ● Sand-box Approach to Open Contribution ● High Cadence Release Philosophy ● Transparency at all Stages ○ Public forum & chat, github, Eclipse foundation, Apache License ● CDI Centric Programming Model
  • 31. @omihalyi Join the Discussion! https://groups.google.com/forum/#!forum/microprofile Or even submit your idea as a PR in the sandbox project! https://github.com/eclipse/microprofile- sandbox
  • 32. @omihalyi The quest continues... ● MicroProfile as a platform to cooperate faster ○ feed JCP with proposals ● Future Java EE targeting cloud and microservices ○ under community-friendly Eclipse Foundation ● JavaEE Guardians to lobby for the communityJoin the adventure!

Hinweis der Redaktion

  1. The goal of the MicroProfile release philosophy is to strike a healthy balance between the benefits of open collaboration and the value of standards. Release 1.0 is scheduled for Sept, 2016 to get the MicroProfile into developers hands quickly. Vendors and various open source projects will continue to innovate with microservices within their own communities, but collaborate in areas of common interest. For example, there are common use cases that need to be addressed, popular 3rd party frameworks and standards we all support, and perhaps new APIs that we can co-develop. Even during these iterations we’ll be raising the bar for application portability. After multiple iterations of MicroProfile there will be enough features and consensus to result in a formalized standard. The process then starts over again with a new set of use cases.
  2. The community and “leading edge” companies often think that standards are too slow, and enterprises often think that the community projects move too fast and introduce too much risk. The MicroProfile bridges that gap by collaborating in areas where eventual standardization and shared investment makes sense in order to increase the pace towards standardization.
  3. Config 1.1 introduces minor (documentation) changes to Config 1.0