© IBM Corporation 2012 D-05 Improve your Developer Experiece using the WAS Liberty Profile with JRebel © IBM Corporation 2011 Anton Arhipov | JRebel Product Lead | ZeroTurnaround Tim deBoer | RAD & WDT Chief Architect | IBM
May 10, 2015
© IBM Corporation 2012
D-05 Improve your Developer Experiece using the WAS Liberty Profile with JRebel
© IBM Corporation 2011
Anton Arhipov | JRebel Product Lead | ZeroTurnaround Tim deBoer | RAD & WDT Chief Architect | IBM
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Agenda
• WAS, RAD and WDT • The WAS Liberty Profile • JRebel
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
WebSphere Application Server Family (V8.5)
WAS for Developers
WAS ND WAS for z/OS WAS Hypervisor Edition
WAS
WAS CE WAS Express
Enables efficient development of innovative apps that will run on WAS in production Available as a no-charge edition for the developer desktop and includes Eclipse adapters
Optimized to instantly run in VMware and other server virtualization environments
Delivers near-continuous availability, with advanced performance and mgmt capabilities, for mission-critical apps
Takes full advantage of the z/OS Sysplex to deliver a highly secure, reliable, and resource efficient server experience
Provides secure, high performance transaction engine for moderately sized configurations with web tier clustering and failover across up to five application server profiles
A lower-cost, ready-to-go solution to build dynamic Web sites & apps
An open source-based, small footprint foundation with no up-front acquisition costs
Tools Edition
Built on a common code base
+Liberty Profile
+Liberty Profile
+Intelligent Mgmt
+Liberty Profile
+Intelligent Mgmt
+Liberty Profile
+Intelligent Mgmt
+Liberty Profile
+Liberty Profile
Tools Edition
Tools Edition
3
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Rational Application Developer and the new WAS Developer Tools
Eclipse WAS Developer Tools Rational Application Developer
Premium Offering Freely available Supported for a fee
Com
prehensive Focused
Basic
Web 2.0 & mobile
Portal & Portlet
OSGi
Java EE WAS & Liberty Profile
Cloud
JCA
Batch
SCA
JSF
iWidgets
Visualization
Team debug
Analysis
Profiling
SIP
CEA
Team code coverage
Free
4
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Agenda
• WAS, RAD and WDT • The WAS Liberty Profile • JRebel
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
What Do Developers Care About?
• Common development tasks include:
• All tasks should be as painless as possible, with special emphasis on the more frequent ones. If the time taken to accomplish these tasks is an impediment to the development, the cost of the fidelity of the test server runtime is challenged
• These kind of capabilities reflect on the Application Server runtime as well as the tools
Hourly
Daily
Weekly
Monthly
Frequency
• Modify file within an application • Debug a problem in an application • Restart/redeploy application • Restart server • Share code with team • Change app structure (add/remove a module/bundle) • Make config change • Share config change with team • Reproduce problem from another environment • Upgrade to new service release • Create application • Install server
fastest
faster
fast
Time to complete
6
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
WAS v8.5: Introduces the Lightweight “Liberty” Profile – For Web, OSGi and Mobile Apps
Dynamic Server Profile Not static like Web Profile – determines by app at a fine-grained level
Developer First Focus Simplified, shareable server config (like a dev. artifact). One XML file or several to simplify sharing & reuse of config
Lightweight runtime Small memory footprint: (46MB for TradeLite)
Integration with ND Job Mgr Optionally manage server lifecycle through ND Job Mgr
Fidelity to full profile WAS Same reliable containers & QOS (easy migration from dev to ops)
Dynamic Runtime Adding features & updating configs does not require server restart
A highly composable, dynamic Server profile
Popular Platforms Adds MAC OS for development
Incredibly fast: start times: < 5 secs
Small Download: < 50MB
WAS v8.5 Liberty Profile
Unzip Install & Deploy IM or unzip to install. Unzip deploy of server + app + config
Integrated Tooling Powerful tools. Simple Eclipse feature
7
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
No Hurdles to Install
• Tools and runtime are free for development. No time limit • Eclipse feature install for tools; 40MB zip download for server profile.
– Installation Manager also supported à same installed result. • 2 minutes from “Nothing” to “Done”: • Install WAS Developer Tools for Eclipse Feature
•
• Use the Tools to download the WAS Liberty Profile or download 40MB zip from WASdev.net
www.wasdev.net
8
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Simplified Server Configuration
• Simplest case: One XML file for all server config
• Editable within the workspace
• Exportable, shareable, versionable
No need for Admin Console, wsadmin, or extended EARs
ws-security.xml
server.xml etc.
resources.xml X
9
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Feature Manager HTTP Transport Application Manager
servlet-3.0
Highly Composable Runtime Based on ‘Features’
Full WAS Profile WAS v8.5 Liberty Profile
jsp-2.2
appsecurity-1.0
restconnector-1.0
jpa-2.0
Java EE Support
WAS Extensions
Runtime Services
&
Config Model
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
wab-1.0
WAS V8.5 Feature Set
servlet-3.0
jsp-2.2
jsf-2.0
Programming Model Runtime
jndi-1.0 jdbc-4.0
sessionDatabase-1.0
json-1.0 monitor-1.0
ssl-1.0
restConnector-1.0 localConnector-1.0
appSecurity-1.0
zosSecurity-1.0 zWlm-1.0
jpa-2.0
zosTransaction-1.0
blueprint-1.0
osgi-jpa-1.0 jaxrs-1.1
beanvalidation-1.0
cdi-1.0 ejblite-3.1
jaxws-2.2
Alpha
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Tomcat 7.0.12 J Boss 7.0 Web P rofile
GlassF ish 3.1 Web P rofile
L iberty P rofile0.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.334
93
104
46
S tartup & F ootprint C omparis on of various lig htweig ht s ervers
S tartup timeFootprint
Startup tim
e in sec
onds
(Low
er is
Better)
Footprint in MB (L
ower is
Better)
Note: Tomcat , JBoss, and GlassFish were measured with the HotSpot JDK, while Liberty was measured with the IBM JDK.
System Info: Lenovo T60p - 2 x 2.16 GHz Intel Core Duo T2600
2GB RAM, Windows XP 32-bit Apache Tomcat 7.0.12 JBoss Community Edition 7.0 Web Profile server GlassFish Server 3.1 Open Source Edition Web Profile WAS V8.5 Liberty Profile (All servers had the TradeLite benchmark application installed)
12
Liberty Profile – Startup & Footprint
• The problem of a lightweight development environment in WebSphere has been solved! – Liberty Profile startup &
footprint are on par with Tomcat.
– Liberty Profile starts up in less than half the time of JBoss Web profile.
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Agenda
• WAS, RAD and WDT • The WAS Liberty Profile • JRebel
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
http://jrebel.com/ibmwtc
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
The Typical Turnaround In Java EE Environment
Make a change
Build, deploy,
wait
Observe results
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012 http://zeroturnaround.com/java-ee-productivity-report-2011/
AVG ~2.5 min
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
The Typical Turnaround In Java EE Environment
Make a change
Build, deploy,
wait
Observe results
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
The Turnaround Time Sink
1s – 5m
build
1s – 1m
server startup
0,5 – 10m
application initialization
~1m
in-app navigation
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Build
Package everything into WAR/EAR
Package modules into JARs
Compile classes
Copy static resources
Resolve dependencies
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Exploded Directory Deployment
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
read(“src/main/.../hello.html”) getResource(“hello.html”)
Resource Mapping
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Build
Package everything into WAR/EAR
Package modules into JARs
Compile classes
Copy static resources
Resolve dependencies
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Build
Package everything into WAR/EAR
Package modules into JARs
Compile classes
Copy static resources
Resolve dependencies
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
MyObject
MyObject.class
OldClassLoader
Debugger HotSwap
New code 111000100 101010010
New code 111000100 101010010
Make changes in IDE
HotSwap
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
JRebel vs HotSwap
HotSwap JRebel Changing method bodies + + Adding/removing methods IBM J9 +
Adding/removing constructors - +
Adding/removing fields - +
Adding/removing classes - +
Adding/removing annotations - +
Replacing super class - -
Adding/removing implemented interfaces
- -
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
MyObject
MyObject.class
OldClassLoader
Code 101000101 100010010 New code
111000100 101010010
Make changes in IDE
JRebel
Fram
ewor
k
Configuration (XML, annotations,..)
JRebel
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
in action
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
The Turnaround Time Sink
1s – 5m
build
1s – 5m
server startup
0,5 – 10m
application initialization
~1m
in-app navigation
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
JRebel for WebSphere
• WebSphere 6.1 • WebSphere 7.x • WebSphere 8.x-8.5 • WebSphere 8.5 Liberty • Including EJB support
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Available via Eclipse Marketplace
• Or the update site: http://zeroturnaround.com/update-site/
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
JRebel Nature
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
JRebel for Liberty
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
http://jrebel.com/ibmwtc
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Questions?
As a reminder, please fill out a session evaluation
IBM WebSphere Technical Convention 2012 – Berlin, Germany
© IBM Corporation 2012
Copyright Information
• © Copyright IBM Corporation 2012. All Rights Reserved. IBM, the IBM logo, ibm.com, AppScan, CICS, Cloudburst, Cognos, CPLEX, DataPower, DB2, FileNet, ILOG, IMS, InfoSphere, Lotus, Lotus Notes, Maximo, Quickr, Rational, Rational Team Concert, Sametime, Tivoli, WebSphere, and z/OS are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at ibm.com/legal/copytrade.shtml.
• Coremetrics is a trademark or registered trademark of Coremetrics, Inc., an IBM Company. • SPSS is a trademark or registered trademark of SPSS, Inc. (or its affiliates), an IBM Company.
• Unica is a trademark or registered trademark of Unica Corporation, an IBM Company.
• Java and all Java-based trademarks and logos are trademarks of Oracle and/or its affiliates. Other company, product and service names may be trademarks or service marks of others. References in this publication to IBM products and services do not imply that IBM intends to make them available in all countries in which IBM operates.