SlideShare a Scribd company logo
1 of 51
Download to read offline
1IBM
_
Liberty – Right Fit for
MicroProfile
Alasdair Nottingham, IBM, STSM, WebSphere Runtime Architect
Kevin Sutter, IBM, STSM, Java EE Architect
JavaOne Sept 2016
JavaOne 2016
Who Are We?
Kevin Sutter
WebSphere Java EE architect
sutter@us.ibm.com
Alasdair Nottingham
WebSphere Liberty architect
alasdair@us.ibm.com
JavaOne 2016
What is MicroProfile?
• http://microprofile.io/
• Optimizing Enterprise Java for a Microservices Architecture
• Complements Java EE – not a replacement for Java EE
3
JavaOne 2016
A long time ago in a country far, far away…
• Our development team has a lot of recurring meetings:
– Design issues
– Iteration demos
• Everyone dials in ok, but we tend to have a lot of confusion about the
e-meeting at the start of every call:
4
Who’s hosting this call anyway?
Are we on the primary or
secondary e-meeting today?
Is it lunchtime yet?
Has anyone seen Erin today?
She’s not online
– Release planning
– …
JavaOne 2016
But then, we had an idea!
• What if we had one URL for every
recurring meeting?
– e.g. http://w3.liberty/meetings/designIssues
• Meeting owner can configure their e-meeting
• Participants notified if it hasn’t started yet, or automatically redirected to
the e-meeting
• Anyone can take over the meeting if the owner doesn’t show up
5
JavaOne 2016
What happens when we’re away…
6
JavaOne 2016
…and again…
7
JavaOne 2016
…and again…
8
JavaOne 2016
…and again…
9
JavaOne 2016
So where do we start?
• Well, we need an app server…
10
JavaOne 2016
We want something very simple now…
• Start small, fast, and simple
• Pay only for what your application needs
Feature Manager HTTP Transport Application Manager
servlet jsp
JavaOne 2016
…that will scale with the needs of our app…
Application
Manager
HTTP TransportFeature Manager
jpaservlet
jsp
jsf
jndi jdbc
sessionDatabasemonitor
wab
blueprint
jaxrs
json
restConnector
osgi.jpa
appSecurity
ssl
localConnector beanValidation
ejbLite cdi managedBeans
oauth collectiveMember ldapRegistry webCache
wasJmsClient wasJmsServer
wasJmsSecurityjmsMdb
jaxws
clusterMember
concurrent
wmqJmsClientwsSecurity
mongodb jaxb
collectiveControllerzosSecurity zosTransaction
zosWlm
JavaOne 2016
… that supports rapid development…
• Sparse configuration – intelligent defaults, configure only what you need
• Automating reloading of configuration and applications
JavaOne 2016
…so we decide to use Liberty
• Java EE Web profile support in ~50 Mb archive
• Starts in a couple second and only uses 50 Mb RAM
• From lightweight development to the largest production app, Liberty
scales with the requirements of your application
• First 2Gb RAM in production free!
Tomcat 7.0.12 JBoss 7.0 Web
Profile
GlassFish 3.1
Web Profile
Liberty Profile
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
0
20
40
60
80
100
120
1.7
5.3
7.8
2.3
34
93
104
46
Startup & Footprint Comparison
of various lightweight servers
Startup time
Footprint
Startuptimeinseconds(LowerisBetter)
FootprintinMB(LowerisBetter)
JavaOne 2016
Meeting App
Ok, let’s get started!
Database
• Great! … but how do we start building it?
• We’re going to need a REST service … some kind of singleton…
JavaOne 2016
Solution: MicroProfile 1.0
• JAX-RS is the Java EE API for creating RESTful web services
– We’ll use JAX-RS to expose REST services for the list of meetings, a
particular meeting’s details, and updating both
• CDI (Context and Dependency Injection) provides for simple POJO
managed beans
– We’ll use CDI managed beans to ensure that we only have a single list of
meetings and users (which can then be injected into other beans)
• JSON-P provides for parsing JSON documents
– We’ll use JSON-P for processing the JSON arguments on the JAX-RS
services
microProfile-1.0
JavaOne 2016
Solution: CDI
• CDI (Context and Dependency Injection) provides for simple POJO
managed beans
• Included in the Java EE web profile (and microProfile-1.0!)
• We’ll create a managed bean to ensure that we only have a single list
of meetings and users (which can then be injected into other beans)
cdi-1.2
JavaOne 2016
Time to code!
• Install the WebSphere Developer Tools from the
Eclipse Marketplace
• Supports WAS v7, v8, v8.5, and v9, including
Liberty
• Could also use the extended set of tools
available in Rational Application Developer or
Rational Software Architect
JavaOne 2016
Demo
Building a MicroProfile application
JavaOne 2016
Ok, we have a MicroProfile service!
• … or do we? How do we test it?
20
Meeting App
• How do we tell someone how to build the front end?
?
JavaOne 2016
Solution: API Discovery
• Swagger is the defacto standard for documenting REST services
• API Discovery feature adds Swagger support to Liberty
• Merges Swagger from annotations or separate Swagger docs
– Documentation!
• Provides API Explorer to browse and test REST services
– Testing!
apiDiscovery-1.0
JavaOne 2016
Demo
Using Swagger to define our API
JavaOne 2016
Ok, now on to the client!
• Trouble is, neither of us are great at web UI
23
JavaOne 2016
Time to call Erin!
24
But I only do microservices now!
Hey Erin, could you throw
together a UI for us?
Ok, ok. Try this out…
JavaOne 2016
Demo
The New UI
JavaOne 2016
Architect intervention
26
Hey, don’t take all the glory! Share
the project so I can code too!
I hear you got promoted.
Sure you still know how?
L
JavaOne 2016
Demo
Sharing code via Git
JavaOne 2016 28
Going beyond MicroProfile 1.0…
• The first release of MicroProfile is limited (by design)…
• But, that doesn’t stop us from using additional features available in
Liberty...
JavaOne 2016
Problem: Old data lying around…
29
Hey, I just tried the app and it joined me to last
week’s e-meeting! It should really clean things up
Well, I guess I *did* say I
wanted to code…
JavaOne 2016
Solution: Concurrency Utilities
• Concurrency Utilities is the Java EE API for concurrency and
background tasks
• Builds on Java SE concurrency, but supports running within a
container/managed thread environment. Context is propagated from
the main thread
• We’ll use concurrency utilities to kick off a background task and clean
up the meeting URL
concurrent-1.0
JavaOne 2016
Demo
Background tasks with Concurrency Utilities
JavaOne 2016
Problem: Persisting meeting data
32
While you’re at it, it would be nice if we didn’t have to
recreate the meetings every time we restart the server …
‘Nuf said…
JavaOne 2016
Solution: MongoDB
• There are lots of options for persistence: JDBC, JPA, CouchDB,
MongoDB, … in this case we just want something simple and pick
MongoDB
• We’ll use MongoDB to persist meeting details
mongodb-2.0
JavaOne 2016
Demo
Using MongoDB for Persistence
JavaOne 2016
Performance concerns
• After some initial use, we notice an awful lot of traffic on the server
35
JavaOne 2016
Solution: WebSockets
• The WebSocket protocol is a standard for efficient, bi-directional
communication
• Standardized for Java via WebSocket API and part of the Java EE 7
spec
• We’ll use WebSockets to notify clients when a meeting is started to
avoid polling (and, thus, improve performance)
websocket-1.1
JavaOne 2016
Demo
Using WebSockets
JavaOne 2016
Great, the app is finally complete!
• But where do we want to host the app?
?
JavaOne 2016
Option 1: Liberty server package
• We could use a Liberty server package for deployment
• server package creates archive of config + app + runtime (optional)
for redistribution
– minify option creates a completely custom server
JavaOne 2016
Option 2: SoftLayer
• VMWare on IBM Cloud
• We could host WAS Liberty VMs in the cloud
on
JavaOne 2016
Option 3: Bluemix
• Bluemix is an open-standards, cloud-based platform for building,
managing, and running apps of all types
• Deploy an application artifact (e.g. .war) with minimal direction (e.g. #
of instances, memory required) and Bluemix does the rest:
– Sets up infrastructure, deploys runtime & artifact, binds services, routes
traffic, …
JavaOne 2016
Demo
Production on Bluemix
JavaOne 2016
Yay! We’re done!
• Everyone open your phones and go to:
http://meetings.mybluemix.net
JavaOne 2016
A look back at the hour…
Application, configuration, and
even feature changes happen
automatically!
Minimal restarts
Consistent, simple experience for
each new feature
mongodbmicroProfile …
JavaOne 2016
Configurability of Liberty
<!-- Enable features -->
<featureManager>
<feature>microProfile-1.0</feature> <!–- cdi, jaxrs, jsonp -->
<feature>concurrent-1.0</feature> <!–- background tasks -->
<feature>mongodb-2.0</feature> <!–- persistence -->
<feature>webSocket-1.1</feature> <!–- performance -->
<!–- make it real... -->
<feature>appSecurity-2.0</feature> <!–- basic app security -->
<feature>ssl-1.0</feature> <!–- ssl support -->
</featureManager>
45
JavaOne 2016
WebSphere Liberty:
The Right Fit for MicroProfile and Java EE
http://microprofile.io
http://wasdev.net/accelerate
JavaOne 2016
MicroProfile 1.0 Released!
Microservice Collaboration and Innovation in the Java Community
microprofilelunch.com, Thursday 11:30am - 2:00pm
Learn more at microprofile.io
MicroProfile BOF, Tuesday 10:30 - 11:30, Hilton Lombard Room
(3rd tower, 6th floor)
48IBM
_
Thank You!
Alasdair Nottingham | alasdair@us.ibm.com | @notatibm
Kevin Sutter | sutter@us.ibm.com | @kwsutter
JavaOne 2016
What we didn’t cover
• Cool things you can do with the config, including variables, references,
config dropins, …
• Cool things in the latest release, including the Bluemix service utility, …
• Liberty’s clean API and classloader visibility ensure your applications
are portable
• Zero migration ensures our app and configuration will run for years to
come
JavaOne 2016
Visit WASdev.net for all things Liberty!
JavaOne 2016
Demos
• JAX-RS & CDI Managed Bean
• API-Discovery
• Client UI
• Git
• JSR-236 Concurrency
• MongoDB
• WebSockets
• Publish to Bluemix
51

More Related Content

What's hot

Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewJosh Padnick
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...Paul Withers
 
Desktop Applications with NetBeans
Desktop Applications with NetBeansDesktop Applications with NetBeans
Desktop Applications with NetBeansHuu Bang Le Phan
 
Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Rory Preddy
 
Introducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoIntroducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoDaniele Vistalli
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoFrank van der Linden
 
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotionFrom Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotionMichael Denomy
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!Eberhard Wolff
 
Building web applications with Java & Spring
Building web applications with Java & SpringBuilding web applications with Java & Spring
Building web applications with Java & SpringDavid Kiss
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Arun Gupta
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xGeertjan Wielenga
 
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)jaxLondonConference
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoSerdar Basegmez
 

What's hot (20)

Java
JavaJava
Java
 
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
 
1 java introduction
1 java introduction1 java introduction
1 java introduction
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
Desktop Applications with NetBeans
Desktop Applications with NetBeansDesktop Applications with NetBeans
Desktop Applications with NetBeans
 
Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12
 
Introducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoIntroducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM Domino
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
 
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotionFrom Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
 
Java1
Java1Java1
Java1
 
Java1
Java1Java1
Java1
 
Building web applications with Java & Spring
Building web applications with Java & SpringBuilding web applications with Java & Spring
Building web applications with Java & Spring
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8
 
Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
Java modules
Java modulesJava modules
Java modules
 

Similar to Liberty: The Right Fit for Micro Profile?

Developing Java Microservices Fast with Open Liberty
Developing Java Microservices Fast with Open LibertyDeveloping Java Microservices Fast with Open Liberty
Developing Java Microservices Fast with Open LibertyYK Chang
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivRon Perlmuter
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019graemerocher
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angularBasarat Syed
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352sflynn073
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?Steve Poole
 
javalightspeed-jakartatech-2023.pdf
javalightspeed-jakartatech-2023.pdfjavalightspeed-jakartatech-2023.pdf
javalightspeed-jakartatech-2023.pdfRichHagarty
 
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
 
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug JavaWriting better code: How the Netbeans IDE Helps you Write, Test and Debug Java
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Javaidrsolutions
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1sandeep54552
 

Similar to Liberty: The Right Fit for Micro Profile? (20)

Developing Java Microservices Fast with Open Liberty
Developing Java Microservices Fast with Open LibertyDeveloping Java Microservices Fast with Open Liberty
Developing Java Microservices Fast with Open Liberty
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
JAVA INTRODUCTION - 1
JAVA INTRODUCTION - 1JAVA INTRODUCTION - 1
JAVA INTRODUCTION - 1
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
newSkills_09
newSkills_09newSkills_09
newSkills_09
 
java full 1.docx
java full 1.docxjava full 1.docx
java full 1.docx
 
java full.docx
java full.docxjava full.docx
java full.docx
 
java completed units.docx
java completed units.docxjava completed units.docx
java completed units.docx
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
 
Meanstack overview
Meanstack overviewMeanstack overview
Meanstack overview
 
javalightspeed-jakartatech-2023.pdf
javalightspeed-jakartatech-2023.pdfjavalightspeed-jakartatech-2023.pdf
javalightspeed-jakartatech-2023.pdf
 
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
 
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug JavaWriting better code: How the Netbeans IDE Helps you Write, Test and Debug Java
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1
 

More from Dev_Events

Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesDev_Events
 
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesEclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesDev_Events
 
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...Dev_Events
 
Blockchain Hyperledger Lab
Blockchain Hyperledger LabBlockchain Hyperledger Lab
Blockchain Hyperledger LabDev_Events
 
Introduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerIntroduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerDev_Events
 
Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Dev_Events
 
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeLean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeDev_Events
 
Eclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewEclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewDev_Events
 
Node.js – ask us anything!
Node.js – ask us anything! Node.js – ask us anything!
Node.js – ask us anything! Dev_Events
 
Swift on the Server
Swift on the Server Swift on the Server
Swift on the Server Dev_Events
 
Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Dev_Events
 
Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Dev_Events
 
Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Dev_Events
 
Microservices without Servers
Microservices without ServersMicroservices without Servers
Microservices without ServersDev_Events
 
The App Evolution
The App EvolutionThe App Evolution
The App EvolutionDev_Events
 
Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Dev_Events
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixDev_Events
 
OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture Dev_Events
 
Add Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsAdd Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsDev_Events
 
Adding User Management to Node.js
Adding User Management to Node.jsAdding User Management to Node.js
Adding User Management to Node.jsDev_Events
 

More from Dev_Events (20)

Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimes
 
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesEclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
 
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
 
Blockchain Hyperledger Lab
Blockchain Hyperledger LabBlockchain Hyperledger Lab
Blockchain Hyperledger Lab
 
Introduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerIntroduction to Blockchain and Hyperledger
Introduction to Blockchain and Hyperledger
 
Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8
 
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeLean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
 
Eclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewEclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s View
 
Node.js – ask us anything!
Node.js – ask us anything! Node.js – ask us anything!
Node.js – ask us anything!
 
Swift on the Server
Swift on the Server Swift on the Server
Swift on the Server
 
Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed?
 
Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...
 
Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...
 
Microservices without Servers
Microservices without ServersMicroservices without Servers
Microservices without Servers
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
 
Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and Bluemix
 
OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture
 
Add Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsAdd Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.js
 
Adding User Management to Node.js
Adding User Management to Node.jsAdding User Management to Node.js
Adding User Management to Node.js
 

Recently uploaded

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 

Recently uploaded (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

Liberty: The Right Fit for Micro Profile?

  • 1. 1IBM _ Liberty – Right Fit for MicroProfile Alasdair Nottingham, IBM, STSM, WebSphere Runtime Architect Kevin Sutter, IBM, STSM, Java EE Architect JavaOne Sept 2016
  • 2. JavaOne 2016 Who Are We? Kevin Sutter WebSphere Java EE architect sutter@us.ibm.com Alasdair Nottingham WebSphere Liberty architect alasdair@us.ibm.com
  • 3. JavaOne 2016 What is MicroProfile? • http://microprofile.io/ • Optimizing Enterprise Java for a Microservices Architecture • Complements Java EE – not a replacement for Java EE 3
  • 4. JavaOne 2016 A long time ago in a country far, far away… • Our development team has a lot of recurring meetings: – Design issues – Iteration demos • Everyone dials in ok, but we tend to have a lot of confusion about the e-meeting at the start of every call: 4 Who’s hosting this call anyway? Are we on the primary or secondary e-meeting today? Is it lunchtime yet? Has anyone seen Erin today? She’s not online – Release planning – …
  • 5. JavaOne 2016 But then, we had an idea! • What if we had one URL for every recurring meeting? – e.g. http://w3.liberty/meetings/designIssues • Meeting owner can configure their e-meeting • Participants notified if it hasn’t started yet, or automatically redirected to the e-meeting • Anyone can take over the meeting if the owner doesn’t show up 5
  • 6. JavaOne 2016 What happens when we’re away… 6
  • 10. JavaOne 2016 So where do we start? • Well, we need an app server… 10
  • 11. JavaOne 2016 We want something very simple now… • Start small, fast, and simple • Pay only for what your application needs Feature Manager HTTP Transport Application Manager servlet jsp
  • 12. JavaOne 2016 …that will scale with the needs of our app… Application Manager HTTP TransportFeature Manager jpaservlet jsp jsf jndi jdbc sessionDatabasemonitor wab blueprint jaxrs json restConnector osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache wasJmsClient wasJmsServer wasJmsSecurityjmsMdb jaxws clusterMember concurrent wmqJmsClientwsSecurity mongodb jaxb collectiveControllerzosSecurity zosTransaction zosWlm
  • 13. JavaOne 2016 … that supports rapid development… • Sparse configuration – intelligent defaults, configure only what you need • Automating reloading of configuration and applications
  • 14. JavaOne 2016 …so we decide to use Liberty • Java EE Web profile support in ~50 Mb archive • Starts in a couple second and only uses 50 Mb RAM • From lightweight development to the largest production app, Liberty scales with the requirements of your application • First 2Gb RAM in production free! Tomcat 7.0.12 JBoss 7.0 Web Profile GlassFish 3.1 Web Profile Liberty Profile 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 0 20 40 60 80 100 120 1.7 5.3 7.8 2.3 34 93 104 46 Startup & Footprint Comparison of various lightweight servers Startup time Footprint Startuptimeinseconds(LowerisBetter) FootprintinMB(LowerisBetter)
  • 15. JavaOne 2016 Meeting App Ok, let’s get started! Database • Great! … but how do we start building it? • We’re going to need a REST service … some kind of singleton…
  • 16. JavaOne 2016 Solution: MicroProfile 1.0 • JAX-RS is the Java EE API for creating RESTful web services – We’ll use JAX-RS to expose REST services for the list of meetings, a particular meeting’s details, and updating both • CDI (Context and Dependency Injection) provides for simple POJO managed beans – We’ll use CDI managed beans to ensure that we only have a single list of meetings and users (which can then be injected into other beans) • JSON-P provides for parsing JSON documents – We’ll use JSON-P for processing the JSON arguments on the JAX-RS services microProfile-1.0
  • 17. JavaOne 2016 Solution: CDI • CDI (Context and Dependency Injection) provides for simple POJO managed beans • Included in the Java EE web profile (and microProfile-1.0!) • We’ll create a managed bean to ensure that we only have a single list of meetings and users (which can then be injected into other beans) cdi-1.2
  • 18. JavaOne 2016 Time to code! • Install the WebSphere Developer Tools from the Eclipse Marketplace • Supports WAS v7, v8, v8.5, and v9, including Liberty • Could also use the extended set of tools available in Rational Application Developer or Rational Software Architect
  • 19. JavaOne 2016 Demo Building a MicroProfile application
  • 20. JavaOne 2016 Ok, we have a MicroProfile service! • … or do we? How do we test it? 20 Meeting App • How do we tell someone how to build the front end? ?
  • 21. JavaOne 2016 Solution: API Discovery • Swagger is the defacto standard for documenting REST services • API Discovery feature adds Swagger support to Liberty • Merges Swagger from annotations or separate Swagger docs – Documentation! • Provides API Explorer to browse and test REST services – Testing! apiDiscovery-1.0
  • 22. JavaOne 2016 Demo Using Swagger to define our API
  • 23. JavaOne 2016 Ok, now on to the client! • Trouble is, neither of us are great at web UI 23
  • 24. JavaOne 2016 Time to call Erin! 24 But I only do microservices now! Hey Erin, could you throw together a UI for us? Ok, ok. Try this out…
  • 26. JavaOne 2016 Architect intervention 26 Hey, don’t take all the glory! Share the project so I can code too! I hear you got promoted. Sure you still know how? L
  • 28. JavaOne 2016 28 Going beyond MicroProfile 1.0… • The first release of MicroProfile is limited (by design)… • But, that doesn’t stop us from using additional features available in Liberty...
  • 29. JavaOne 2016 Problem: Old data lying around… 29 Hey, I just tried the app and it joined me to last week’s e-meeting! It should really clean things up Well, I guess I *did* say I wanted to code…
  • 30. JavaOne 2016 Solution: Concurrency Utilities • Concurrency Utilities is the Java EE API for concurrency and background tasks • Builds on Java SE concurrency, but supports running within a container/managed thread environment. Context is propagated from the main thread • We’ll use concurrency utilities to kick off a background task and clean up the meeting URL concurrent-1.0
  • 31. JavaOne 2016 Demo Background tasks with Concurrency Utilities
  • 32. JavaOne 2016 Problem: Persisting meeting data 32 While you’re at it, it would be nice if we didn’t have to recreate the meetings every time we restart the server … ‘Nuf said…
  • 33. JavaOne 2016 Solution: MongoDB • There are lots of options for persistence: JDBC, JPA, CouchDB, MongoDB, … in this case we just want something simple and pick MongoDB • We’ll use MongoDB to persist meeting details mongodb-2.0
  • 35. JavaOne 2016 Performance concerns • After some initial use, we notice an awful lot of traffic on the server 35
  • 36. JavaOne 2016 Solution: WebSockets • The WebSocket protocol is a standard for efficient, bi-directional communication • Standardized for Java via WebSocket API and part of the Java EE 7 spec • We’ll use WebSockets to notify clients when a meeting is started to avoid polling (and, thus, improve performance) websocket-1.1
  • 38. JavaOne 2016 Great, the app is finally complete! • But where do we want to host the app? ?
  • 39. JavaOne 2016 Option 1: Liberty server package • We could use a Liberty server package for deployment • server package creates archive of config + app + runtime (optional) for redistribution – minify option creates a completely custom server
  • 40. JavaOne 2016 Option 2: SoftLayer • VMWare on IBM Cloud • We could host WAS Liberty VMs in the cloud on
  • 41. JavaOne 2016 Option 3: Bluemix • Bluemix is an open-standards, cloud-based platform for building, managing, and running apps of all types • Deploy an application artifact (e.g. .war) with minimal direction (e.g. # of instances, memory required) and Bluemix does the rest: – Sets up infrastructure, deploys runtime & artifact, binds services, routes traffic, …
  • 43. JavaOne 2016 Yay! We’re done! • Everyone open your phones and go to: http://meetings.mybluemix.net
  • 44. JavaOne 2016 A look back at the hour… Application, configuration, and even feature changes happen automatically! Minimal restarts Consistent, simple experience for each new feature mongodbmicroProfile …
  • 45. JavaOne 2016 Configurability of Liberty <!-- Enable features --> <featureManager> <feature>microProfile-1.0</feature> <!–- cdi, jaxrs, jsonp --> <feature>concurrent-1.0</feature> <!–- background tasks --> <feature>mongodb-2.0</feature> <!–- persistence --> <feature>webSocket-1.1</feature> <!–- performance --> <!–- make it real... --> <feature>appSecurity-2.0</feature> <!–- basic app security --> <feature>ssl-1.0</feature> <!–- ssl support --> </featureManager> 45
  • 46. JavaOne 2016 WebSphere Liberty: The Right Fit for MicroProfile and Java EE http://microprofile.io http://wasdev.net/accelerate
  • 47. JavaOne 2016 MicroProfile 1.0 Released! Microservice Collaboration and Innovation in the Java Community microprofilelunch.com, Thursday 11:30am - 2:00pm Learn more at microprofile.io MicroProfile BOF, Tuesday 10:30 - 11:30, Hilton Lombard Room (3rd tower, 6th floor)
  • 48. 48IBM _ Thank You! Alasdair Nottingham | alasdair@us.ibm.com | @notatibm Kevin Sutter | sutter@us.ibm.com | @kwsutter
  • 49. JavaOne 2016 What we didn’t cover • Cool things you can do with the config, including variables, references, config dropins, … • Cool things in the latest release, including the Bluemix service utility, … • Liberty’s clean API and classloader visibility ensure your applications are portable • Zero migration ensures our app and configuration will run for years to come
  • 50. JavaOne 2016 Visit WASdev.net for all things Liberty!
  • 51. JavaOne 2016 Demos • JAX-RS & CDI Managed Bean • API-Discovery • Client UI • Git • JSR-236 Concurrency • MongoDB • WebSockets • Publish to Bluemix 51