A detailed look into the philosophy, architecture and design of the most flexible, simple and scalable Java EE Application Server on the market today; the WebSphere Liberty profile. These slides describe the motivation behind this project, and the key characteristics that are encouraging so many Java EE users to move their applications to Liberty.
2. Please Note
Performance is based on measurements and projections using standard IBM
benchmarks in a controlled environment. The actual throughput or performance
that any user will experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in the user’s job stream,
the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results
similar to those stated here.
2
3. Reasons to love WebSphere Application Server……
3
Secure
Well-tooled
Robust
Scalable
Very
Fast!
Java EE
Compliant IBM Support and
Training
4. • WAS 8.5.5.4 outperforms WL
12.1.3 by 32% on per core basis
and retains Industry leadership on
SPECjEnterprise 2010
Benchmark results published on
latest Intel Haswell EP Processors
• WAS leads on per Processor
performance as well beating WL
12.1.3 on the latest Intel Haswell
EP processors as per results
published on SPEC
IBM is World Leader in Enterprise Performance
Both published Feb 2015
5. … but you asked us for something more…..
• Lightweight
• Composable
• Simple
• Flexible
• Dynamic
• Open & Extensible
• Cloud-ready
…. but as production-ready as the original…..
…. with even higher management scale!
5
WebSphere Application Server
Liberty Profile
WAS 8.5, June 2012
6. Lightweight download & install
• Java EE 6 Web Profile certified app server in a 59MB
download
6
java -jar wlp-developers-runtime-8.5.5.4.jar
• Archive install:
Installation Manager
is also an option
Archives fully
supported with fix
packs and iFixes
no login required!
8. Lightweight runtime is very small
• Server starts in less than 3 seconds…
• … with a memory footprint around 60 MB…
8
9. Lightweight – but still faster than the competition!
9
Intel IvyBridge 2-cores enabled, Linux 64-bit
Oracle JDK 7 u67 is used for all products
10. Lightweight developer tools
• Powerful developer tools as an Eclipse plugin
10
Eclipse WAS Developer Tools Rational Application Developer
Paid OfferingFreely available
Supported with WAS 8.5.5
ComprehensiveFocusedBasic
Web 2.0 &
Mobile
Portal &
Portlet
OSGi
Java EE
WAS & Liberty
Profile
Cloud
JCA
Batch
SCA
JSF
Visualization
Team
Debug
Analysis
Profiling
SIP
CEA
Team Code
Coverage
Free
Data
Maven
! install runtime and related plugins
! automatic feature setting
! rich configuration editor
! remote server support
11. Composable architecture
• Tiny kernel with optional features
11
Full profile
runtime services
config model
Java EE
Implementation
WAS
Extensions
Liberty profile
kernel
servlet
http app mgr
securityjspjsf
Component reuse from full profile provides
! common behavior for applications
! common performance profiles (throughput)
13. Composable server instances
• You control which features are loaded into each server instance
13
<feature>servlet-3.0</feature>
<feature>jsf-2.0</feature>
<feature>appSecurity-2.0</feature>
Liberty profile
kernel
servlet
http app mgr
securityjspjsf
Liberty profile
kernel
servlet
http app mgr
Internal feature dependencies are managed for you, for example:
! jsf feature includes jsp
! jsp feature include servlet
! jdbc feature includes transactions
14. z/OS Edition Adds z/OS exploitation features
Network Deployment
Edition
Adds centralized management and
clustering features
Composable feature sets
14
" Product editions contain nested sets of features
“Base”, Express and
Developers’ Editions
Adds some Java EE 6 (full) Profile features
Liberty Core Edition Java EE 6 Web Profile
+ some Java EE 7 Web Profile
Other core features
15. Initial install features – archive or IM
webProfile-6.0
zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0
zos
collectiveController-1.0 clusterMember-1.0
ndbase
wab-1.0
concurrent-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
jaxrs-1.1
distributedMap-1.0
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
blueprint-1.0
servlet-3.0
jsp-2.2
jsf-2.0
ejbLite-3.1 jdbc-4.0
jndi-1.0
appSecurity-2.0
managedBeans-1.0
core
ssl-1.0
beanValidation-1.0
cdi-1.0
jpa-2.0
serverStatus-1.0
Initial install content varies
by edition
• Base adds entitlement
to features not included
in initial install
• ND adds clustering
• z/OS adds z/OS
platform integration
18. WAS Liberty Base v8.5.5.x Freemium
Announcement: No-charge, no-support option for deployment in test and
production. The usage is restricted to a maximum of 2 GB of JVM heap size
across all instances of application servers for the licensee.
" No cost for small deployment and
grow as needed
" Real production experiment: in
addition to current free development
usage
" Full functionality in WAS Liberty
Base with huge performance and
functionality advantages
" Both On-prem and public clouds
deployment option for flexile choices
How to Experience it?Why WAS Liberty Base Freemium?
# Download it through Wasdev.net
# You can still use free WAS forums and
document to get answers for your
question
20. Configure tool design view
20
beta
Current beta only works
with config for server
running adminCenter
21. Continuous Delivery of new function
• Bluemix and beta drivers every month
21
• GA features delivered regularly via Liberty Repository
servlet-3.1
websocket-1.0
jsonp-1.0
openid-2.0
couchdb-1.0
+ others
4Q
2014
• Java EE7 features started 4Q 2014
2Q
2014
jca-1.6
adminCenter-1.0
zConnect-1.0
+ others
1Q
2015
jsp-2.3
el-3.0
spnego-1.0
adminCenter+
plus….
-java 8
-docker4dev
22. Simple to get started locally
22
1. download liberty archive
2. java –jar <archive>
3. bin/server create myServer
4. cp myapp.war usr/servers/myServer/dropins
5. bin/server run myServer
6. http://localhost:9080/myapp
23. Even simpler in the cloud
23
IBM BlueMix
public / dedicated
app is auto-wired
to cloud services
Elastic MQ
Session
Cache
Data Cache
Log Analysis
Twilio Mobile "
Data
SQL (DB2)
Database
Mongo DB
MySQL
Monitoring
and Analytics
app is packaged
with runtime by
liberty buildpack
+ +
cf push
app.war
Developer desktop
24. Simple to configure
24
• ONE required configuration file
• ${wlp.install.dir}/usr/servers/server_name/server.xml
• User configuration for kernel and features
• Optional files in same server directory
• server.env
– read by server script
– useful to override locations
• eg. JAVA_HOME, WLP_USER_DIR, and WLP_OUTPUT_DIR
• jvm.options
– provided to JVM at startup
– JVM settings, system properties
• bootstrap.properties
– to initialize core runtime (before XML config is read)
– predefined properties
– any custom property, variable for XML config etc
25. Simple to configure
25
• All features have useful built-in defaults for their XML config
View the defaults
easily in the WDT
config editor
• Some default config instances are also provided
<distributedMap id="defaultCache”
jndiName="services/cache/distributedmap”
memorySizeInEntries=”5000"
cacheProviderName="default"/>
Attribute values for default
instances can be overridden in
server.xml
26. Simple to configure
26
• server create command generates simple working server.xml
! Runs servlets and
JSPs
! Default endpoint
shown to make port
overrides easy
27. Simple to share config files
27
${wlp.install.dir}/usr/servers/server_name/server.xml
<server description="new server">
<featureManager>
<feature>jsp-2.2</feature>
</featureManager>
<include location="${shared.config.dir}common-config.xml" />
</server>
• Include files from local filesystem or network
derbypath=/usr/derby
bootstrap.properties file
<variable name=”derbypath"
value=”/usr/derby" />
server.xml or included xml file
export derbypath=/usr/derby
environment variable
<fileset id="DerbyFileset"
dir="${derbypath}"
includes="derby-10.10.1.1.jar" />
• Use variables to maximise sharing
${wlp.install.dir}/usr/servers/shared/config/common-config.xml
28. Application
API
Internal classes (hidden)
libx v2.2
libx v1.6
Liberty classloading
Application
API
Internal classes (visible)
libx v2.2
libx v1.6
Traditional classloading
Simple to use third-party libs
• Hidden internals keep classloaders clean
28
<classloader
xmi:id="Classloader_1347543866613"
mode="PARENT_LAST"/>
X
29. Simple to update
• Architectural Goal: Zero migration for unchanged apps
Bring your config
Choice: Features limit runtime behavior change
Existing features remain unchanged eg. servlet-3.0
New feature versions contain updates, eg. servlet-3.1
No custom properties for behavior switching
Point to your existing JRE
Within supported software levels. Java 6 will not last forever
New Java EE features may require higher versions of Java
8.5.5.2
8.next
Your
configuration,
applications,
resources
WLP_USER_DIR
java -jar wlp-developers-runtime-8.5.5.2.jar
java -jar wlp-developers-runtime-8.next.jar
Spec updates often
force behavior
changes
30. 30
Singleton features
8.5.5.4 runtime 8.5.5.4 runtime
servlet-3.0 servlet-3.1
old
app
new
app
servlet-3.0
old
app
servlet-3.1
new
app
invalid
configuration
Existing features run on updated kernel
• support existing applications with no change in
behavior
New features are available for new and changed
applications
These features are singletons and cannot be
configured into the same server instance
31. 31
Java EE 6 & 7 toleration
servlet-3.1
websocket-1.0
(servlet-3.1)
A full feature stack is always supported
jsp-2.2
jsf-2.0
websocket-1.0
etc…servlet-3.0
Some EE7 features will prereq others, affecting the allowed configurations
servlet-3.1
jsf-2.0
jsp-2.3
el-3.0
Not all combinations are possible, per spec requirements and practicality
servlet-3.0
jsf-2.0
jsp-2.3
el-3.0
8.5.5.5 runtime
32. Flexible Java support
• Bring your own Java…6, 7 or 8
32
Develop and test
apps on your
macbook
33. Flexible deployment: server package
• Package runtime, config and app in an archive
33
myapp.war
server.xml
runtime
minify option
packages only the
runtime features
used by the server
server package myServer –include=minify
• ftp to hosts, unzip and run
Resulting installs
fully supported with
fix packs and iFixes
34. Flexible to Run Everywhere
Bluemix public,
dedicated, local
Cloud Services
built on Liberty
BPM Workflow
Watson DA
Data Cache
…
Operating
systems
linux
windows
aix
solaris hp/ux
z/linux
z/os
ibm-i
mac/osx
Private IaaS
Liberty Patterns
Pure App
Virtualized systems
Containers
Containers
Embedding
products >100
isa
spss as
infosphere
worklight
wamc
itsm
algo one
rsa
rad
z/os mf
sterling b2b
mq appliance
i2 coplink
cics
ims
Public IaaS
IBM Softlayer
MS Azure
Amazon AWS
PaaS
hybrid
private
public
OpenShift
Heroku
Cloud
Foundry
35. Use your WebSphere PVUs both on-premise and in IBM cloud!
On-Premises
Total Control
Maximum Flexibility
Maximum Security
IBM Cloud
Public Cloud
Economies
Time to Market
IaaS – SoftLayer
BYOS&L – WebSphere App Server
Promotion: IBM WebSphere on SoftLayer
WAS
2-for-1
offer Promotion period:
Mar. 09 - Sept. 09, 2015
No additional charge during promotion
• No restrictions on use. Support through your S & S
• No need to contact IBM or “order” anything. Customers track “dual usage” of PVUs
• Cost of the cloud infrastructure is not included as part of the promotion
• Requires SoftLayer. PureApplication Service is optional
• When promotion ends, customer will need to purchase additional WebSphere
PVUs to continue running in the cloud.
• Announcement Letter Number: ZAAM5188A
Announced for NA with other IOTs to follow
36. Dynamic updates to the runtime
• Dropin application install and update
• Configuration files also monitored for updates
• All configuration changes are dynamic
36
running server
Copy app to
‘dropins’ or Add
<application/>
Add
<feature>jdbc-4.0</feature>
<dataSource/>
Add <library/> Modify
<dataSource>
<properties/>
</dataSource>
37. Dynamic routing
• Routing information in web server plugin can be dynamically
updated as application endpoints change
37
Controllers
ODRLIB
plugin
IHS Web Server
HTTP traffic
Config changes
Routing
info
updates
Collective members
Based on highly
scalable, agentless
Liberty Collectives
38. Dynamic scaling
• Servers can be started and stopped per scaling policy
38
Controllers
ODRLIB
plugin
IHS Web Server
HTTP traffic
Start & stop servers
Routing
info
Scaling Cluster members
Scaling policies based on:
• min / max # running servers
• thresholds for monitored resources
• cpu, memory, heap
Scaling
Resource data
new
member
beta: add new member
to cluster
39. Open Liberty Community
• WASdev community site for information, assets and help
39
http://wasdev.net
Forum monitored by
Liberty dev team
Source samples for ant, maven,
chef, puppet integration and more
41. Open kernel: extensible and embeddable
• Run liberty inside in your java app
41
Your JVM
Liberty
profile
web
appFuture<Result> startFuture = libertyServer.start();
Future<Result> stopFuture = libertyServer.stop();
CICS TS 5.2 does this !
• Open kernel SPI lets you plug in your own features
Liberty profile
kernel
servlet
http app mgr
mySvcmyUI ! Manage as runtime feature, not application
! Integrate with liberty configuration & tools editor
! Expose API, services and http endpoints
! OSGi management of native libraries
! Access to powerful product SPI
! Tools support for feature development
42. Where can I hear more about Liberty?
42
Key Sessions:
# Meet the Liberty Experts Tuesday, 2:00pm
Session 1314A
# 10,000 Servers and Climbing: Achieving Liberty
at Scale Tuesday 3:30pm Session 2827A
# Deploying Apps to Liberty in Bluemix Tuesday,
3:30pm Session 2694A
# Liberty support for Java Batch and JSR-352
Tuesday, 5:30pm Session 1841A
# Shaping the Future of Liberty Admin Center
Tuesday, 5:30pm & Wednesday 9:30am & Thursday
9:00am Session 3319
# Problem Determination Tools and Strategies for
Liberty and Full Profile WAS Tuesday 5:50
Session 2793A
# Comparing Liberty and Full Profile to Tomcat,
JBoss and WebLogic
Wednesday, 2/25 – 8:00am Session 5630A
# Liberty: From Inspriation to Production in an
Hour Wednesday 9:30am Session 4465A
# Top 10 Tuning Recommendations for Full and
Liberty profiles Wednesday 9:30am Session 2611A
# Bluemix Application Runtimes Wednesday
11:00am Session 2637A
# Get Rapid, Right-Sized and Recent with Liberty
Repository Wednesday 11:00am Session 2358A
# Choosing Liberty for Deployment (Roundtable)
Wednesday, 2/25 – 3:30pm & Thursday 9:00 am
Session 3083
# Full Disclosure on Performance Characteristics
of Liberty Wednesday 3:30pm Session 4847A
# Why Sparda loves the Liberty Profile on zOS
Wednesday, 2/25 – 5:30pm Session 4348A
# Choosing Liberty for Java EE Deployments
Wednesday 5:30pm Session 1305A
# Production Deployment Best Practices for
Liberty Wednesday 5:30pm Session 3218A
# Using WMQ with WAS and Liberty Thursday 9am
Session 2287A
# Liberty Real Time Communications
Thursday 2/26 – 1:00pm Session 2811A
44. We Value Your Feedback
• Don’t forget to submit your Impact session and speaker
feedback! Your feedback is very important to us – we use it to
continually improve the conference.
• Use the Conference Mobile App or the online Agenda Builder to
quickly submit your survey
• Navigate to “Surveys” to see a view of surveys for sessions
you’ve attended
44
46. Notices and Disclaimers (con’t)
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products in connection with this
publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to
interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any
IBM patents, copyrights, trademarks or other intellectual property right.
• IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document
Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand,
ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™,
PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®,
pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®,
urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of
International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and
service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on
the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
47. Thank You
Your Feedback is
Important!
Access the InterConnect 2015
Conference CONNECT Attendee
Portal to complete your session
surveys from your smartphone,
laptop or conference kiosk.