2. developerWorks® ibm.com/developerWorks/
Developer Experience
New features and enhancements in this area include:
• Lilberty profile
• OSGi Blueprint specification
• Java SE 7
• IDE options
• Web 2.0 and mobile
• Application migration
Liberty profile
Leading off the list of developer experience features in WebSphere Application
Server V8.5 is the Liberty profile. The Liberty profile is a new dynamic profile. Unlike
the traditional WebSphere Application Server static profile runtime feature, Liberty
adapts to the requirements of the application in a very fine-grained manner, ensuring
that only the necessary application container functions are started. Doing so gives
you the “liberty” to deploy web applications with across-the-board requirements, and
provides all the required components, such as security, transaction management,
connection pooling, and persistence via JPA or JDBC.
As Liberty is a dynamic profile, central to this dynamic runtime is a new kernel
that leverages OSGi to load the application-required API and runtime features.
While WebSphere Application Server has had an OSGi-based runtime since
V6.1, the Liberty profile in V8.5 actually leverages OSGi. The result is a small
application server process memory footprint – normally smaller than 60MB for
web applications -- which typically starts in less than 5 seconds.
The difference between the Liberty profile runtime and the traditional WebSphere
Application Server profile runtime is depicted in Figure 1.
What's new in WebSphere Application Server V8.5 Page 2 of 16
3. ibm.com/developerWorks/ developerWorks®
Figure 1. WebSphere Application Server profile runtime and Liberty profile
runtime comparison
The API feature set in the WebSphere Application Server V8.5 Liberty profile is
focused on web-based applications and provides support for:
• Java Database Connectivity (JDBC) 4.0
• Java Persistence (JPA) API 2.0
• JavaServer Faces (JSF) 2.0
• JavaServer Pages (JSP) 2.2
• Servlet 3.0
• JAX-RS 1.1 (and JSON4J ).
Aside from the API features, additional runtime features include:
• OSGi Blueprint 4.2 container
• Java Management Extensions (JMX)
• Java Transaction API (JTA) 1.1
• Java Naming and Directory Interface (JNDI)
• Session Distribution via database persistence
• Secure Sockets Layer (SSL) .
• Security, using a file-based user registry or an (LDAP) user registry
• Web security
• z/OS® security, supported by the z/OS System Authorization Facility (SAF).
If you're looking for even more web and enterprise application APIs, it’s reasonable
to expect that the API and runtime features available for the Liberty profile will evolve
over time.
What's new in WebSphere Application Server V8.5 Page 3 of 16
4. developerWorks® ibm.com/developerWorks/
The Liberty profile also provides a radically simplified server runtime
configuration. This enables the server instance to be configured easily (either inside
or outside an Eclipse environment) with a single XML file covering all aspects of the
server, the applications, and the resources required by the applications. This makes
it easy to share configurations across development teams and environments. The
simplified single XML configuration for the Liberty profile is depicted in Figure 2.
Figure 2. Liberty XML configuration file
The Liberty profile also offers several options for installation. You can use either
a simple unzip, the IBM Installation Manager, or the WebSphere Application Server
Network Deployment V8.5 Job Manager to distribute and install Liberty binaries.
While a discussion of the Job Manager and Liberty is more of an operations
discussion than a development discussion, it is in the interest of continuity with
respect to Liberty that we discuss that now.
Jobs specific to Liberty configuration and application management have been added
to the WebSphere Application Server Network Deployment V8.5 Job Manager,
including Liberty profile installation, as well as application installation, update, and
uninstall. Consistent with the modular Liberty architecture, the Liberty runtime (and
configuration) or the Java SDK, or applications running on a Liberty profile, can be
distributed either together or individually, both initially, or as an update, providing very
fine grained management. An example of this is depicted in Figure 3.
What's new in WebSphere Application Server V8.5 Page 4 of 16
5. ibm.com/developerWorks/ developerWorks®
Figure 3. Liberty installation and update with the Job Manager
Other Job Manager jobs are available to start and stop Liberty servers, as well as
to generate and merge HTTP server plugin configuration files from Liberty servers.
In addition, the Liberty management jobs are also available from the WebSphere
Application Server Network Deployment deployment manager (in addition to the non-
Liberty specific job types).
Finally, with respect to the Liberty profile, there’s also a great deal of flexibility in
selecting a JDK for use on Windows®, Linux®, and Mac OS (Mac OS is supported
for development only).
OSGi Blueprint specification
Beyond the Liberty profile another core enhancement in WebSphere Application
Server V8.5 is the addition of support for EJB Bundles to the OSGi Blueprint
specification in WebSphere Application Server V8.0. This enables OSGi application
bundles to contain Enterprise JavaBeans (EJB) components. The enterprise beans
in your OSGi bundles can be stateful, stateless, and singleton enterprise beans
as well as message-driven beans (MDBs). Deployment and configuration of an
OSGi application bundle that contains enterprise beans is similar to the existing
WebSphere Application Server V8.0 capability using either the administrative console
or the wsadmin scripting interface.
Java SE 7
WebSphere Application Server V8.5 also includes the option to use Java 7 SE, which
offers a number of the Java SE API additions that were added via the OpenJDK
project, Project Coin:
• Comparison of a string literal in a switch; for example:
case “one”: <do something>; break;)
• Binary integral literals (for example, 0b10011010) and underscores in numeric
literals to help visual blocking (for example, 34_409_066).
What's new in WebSphere Application Server V8.5 Page 5 of 16
6. developerWorks® ibm.com/developerWorks/
• Simplified Varargs Methods Warnings (for example, @SafeVarargs annotation
to remove warnings on safe varargs method declarations and invocations).
• Multiple try catch blocks specific to handling; for example:
try { } catch(Exception|Error a) { handle(a); }.
• Improved type inference for generic instance creation. For example:
Map<String,MyType> foo = new HashMap<String,MyType>();
becomes
Map<String,MyType> foo = new HashMap<>();
.
Other improvements in Java 7 SE include:
• Non-blocking I/O 2 (NIO.2) provides additional application control over how I/O
operations are handled, enabling better scaling.
• Automatic Resource Management (ARM) in which the Java compiler will
automatically close statements and connections to external resources, which
can alleviate problems with error handling and resource control, thus avoiding
resource leaks.
IDE options
There are also new Integrated Development Environment (IDE) options for
WebSphere Application Server V8.5, beginning with the WebSphere Application
Server Developer Tools for Eclipse, which is an Eclipse plugin that delivers a
lightweight set of tools for developing, assembling, and deploying Java EE, OSGi,
Web 2.0, and mobile applications to WebSphere Application Server, including the
Liberty profile. The Developer Tools for Eclipse is freely available from the Eclipse
Marketplace with an option to purchase support.
In addition, IBM Rational® Application Developer V8.5 provides a complete
environment for enterprise development for Java, Java EE, web, web services,
SOA, OSGi, and WebSphere Portal designers and developers. Rational Application
Developer V8.5 extends the Java EE, OSGi, and Web 2.0 capability of the Developer
Tools for Eclipse by adding support for portlet and portal applications, SCA
applications, application static analysis, and application performance profiling, as well
as team debug and code control.
Web 2.0 and mobile
In WebSphere Application Server V8.5, mobile web application development is
enabled using the Web 2.0 and Mobile Toolkit, which integrates the functions
previously delivered in the WebSphere Application Server Feature Pack for Web
2.0 and Mobile. While delivery of this critical development capability has changed,
what hasn’t changed is the ability to create and deliver mobile applications based on
standard web technologies such as HTML5, CSS3, and JavaScript, which enable
applications to run in a mobile device browser with a native device look and feel.
What's new in WebSphere Application Server V8.5 Page 6 of 16
7. ibm.com/developerWorks/ developerWorks®
Application migration
WebSphere Application Server V8.5 also improves upon the Application Migration
Tool (AMT) that was delivered during the WebSphere Application Server V7 service
cycle. The AMT V3.5 is available as a free plugin for both Eclipse and Rational
Application Developer. Version 3.0 of the AMT adds support for the migration of
Apache Tomcat applications to WebSphere Application Server, and also analyzes
source code to find potential WebSphere version-to-version migration problems, such
as:
• Removed features
• Deprecated features
• Behavior changes
• JRE 5, JRE 6, and JRE 7 differences
• Java EE specification changes or enforcements.
The ability of the AMT to either make application changes or provide guidance on
how to make required changes results in application migration occurring two-to-
three times faster than an unassisted migration. AMT V3.5 can be used to migrate
applications from WebSphere Application Server V5.1, V6, V6.1 — as well as
applications from Apache Tomcat, JBoss, Oracle® Application Server, and Oracle
WebLogic Server — to WebSphere Application Server V8.5, V8 and V7.
Application Resiliency
New features and enhancements in this area include:
• Intelligent Management
• Messaging
Intelligent Management
The biggest news under the theme of Application Resiliency is probably the
integration of the features from WebSphere Virtual Enterprise into WebSphere
Application Server Network Deployment V8.5. This merge allows for a single
WebSphere Application Server Network Deployment installation to deliver the
traditional Network Deployment functions, as well as WebSphere Virtual Enterprise
functions. The former WebSphere Virtual Enterprise functions now in Network
Deployment V8.5 are characterized as Intelligent Management features and
encompass:
• Intelligent routing
• Application edition management
• Dynamic clustering
• Health management
Intelligent routing
It’s easiest to start a discussion of Intelligent Management by referring to the most
visible component, the On Demand Router (ODR), which is a specialized Java-
What's new in WebSphere Application Server V8.5 Page 7 of 16
8. developerWorks® ibm.com/developerWorks/
based proxy server that classifies incoming requests, and then dispatches the
requests across the application server environment. The ODR and its function is
depicted in Figure 4, which for simplicty does not depict an HTTP server or Reverse
Proxy Server that is used to send requests to the ODR.
Figure 4. On Demand Router function
The ODR classifies incoming HTTP and SIP requests and then works in conjunction
with other Intelligent Management “decision makers” to route workload in order to
insure that the highest priority is given to business critical applications. Requests
are prioritized and routed based upon administrator-defined rules, called service
policies, which are used to specify application response time goals.
Service policy response time goals need to be consistent with the response
time that the application can deliver. Intelligent Management does not make
poorly written and architected applications run faster!
These goals are then used to distribute requests, as well as to control the number of
application servers associated with an application using the dynamic clusters function
of Intelligent Management. With dynamic clusters the WebSphere Application
Server decision makers can automatically scale up and down the number of running
cluster members as needed in order to meet response time goals for your users.
You can leverage overload protection to limit the rate at which the On Demand
Router forwards traffic to application servers to prevent heap exhaustion, CPU
exhaustion, or both types of exhaustion from occurring. The ODR can momentarily
queue requests for less important applications so that requests from more important
applications are handled more quickly.
A final note on ODR function and architecture, as with the omission of an HTTP
server from Figure 4, only a single ODR is depicted instead of the normal cluster of
ODRs for simplicity
Application edition management
What's new in WebSphere Application Server V8.5 Page 8 of 16
9. ibm.com/developerWorks/ developerWorks®
Application edition management enables management of interruption-free
production application deployments. Using this feature, you can validate a new
edition of an application in your production environment without affecting users,
and upgrade your applications without incurring user outages. You can also run
multiple editions of a single application concurrently, directing different users to
different editions, as the ODR maintains not only traditional application state (for
example, HTTP session) affinity, but also application version affinity. The ability
to queue requests is also employed with the Intelligent Management application
edition function if an “atomic” application update that allows pre-provisioning of a
new application version, and an “atomic” update of all users from the old application
version to the new application version, is desired.
Health management
Intelligent Management provides a health management feature to monitor the
status of your application servers, as well as sense and respond to problem areas
before an outage occurs. You can manage the health of your application serving
environment with a policy-driven approach that enables specific actions to occur
when monitored criteria are met. For example, when memory usage exceeds a
percentage of the heap size for a specified time, health actions can run to correct the
situation.
Aside from the predefined health conditions and health actions, both of these can be
customized for conditions and operational requirements specific to your environment.
As an example, if a memory leak is detected, a replacement application server
instance can be started, workload can be directed to the replacement application
server, the application server can be placed into maintenance mode, (meaning no
requests are sent to it), all of which enables offline diagnostics (for example, thread
dump, heap dump) to be performed either manually or automatically (as part of the
health action). And yes, the administrative or operations staff can automatically be
notified via email when the Intelligent Management runtime detects a problem.
Messaging
Another important aspect of Application Resiliency in WebSphere Application Server
V8.5 are the improvements to the WebSphere Application Server messaging
engine, which is the embedded JMS provider in each application server instance.
First is the change from the use of long running or persistent database locks to
short locks by the active messaging engine on the SIBOWNER table. Instead of
permanent locks, table ownership is periodically revalidated, which, in turn, permits
the database administrator access to the tables used by the messaging engine,
while at the same time insuring that only a single messaging engine is consuming
messages from a message queue, insuring message delivery ordering.
A number of changes have been made to provide for message engine instance
isolation from the application server. As a result, if the messaging engine in an
What's new in WebSphere Application Server V8.5 Page 9 of 16
10. developerWorks® ibm.com/developerWorks/
application server hangs, the messaging engine can be switched to another
application server and the applications running in the application server with the
“hung” messaging engine can continue to function. Another improvement related to
isolation is the ability of the messaging engine to stop and restart when a database
connection error is encountered, rather than requiring a restart of the application
server JVM.
The messaging engine also can be automatically restarted (or re-enabled) if it
enters a disabled state. This makes administration much easier in a large Network
Deployment cluster because administratively determining the disabled messaging
engine can be cumbersome in a large environment.
Another vexing issue, redelivery of poison messages after an application server
restart has been dealt with in WebSphere Application Server V8.5 as well. This is
accomplished by persisting the JMS message re-delivery count, thus preventing a
poison message from hanging a messaging engine (and application server), only
to have the messaging engine (and application server) hang upon restart when
attempting to process the same poison message.
A new administrative command, recoverMEConfig, has been added in V8.5 to
enable a messaging engine to recover messages from an orphaned persistent
message store. As a result, in the event of a catastrophic loss of a physical server
(or data center!), if the persistent message data is available, it’s now easy to recover
the data from the persistent message store. When this new command is run, a new
messaging engine reads the UUID of the old messaging engine from the message
store and assumes ownership of records associated with that UUID.
There have also been improvements to the messaging engine code base to better
leverage multiple core CPUs for quicker messaging engine start-up when a large
number of messages and destinations are present.
While on the subject of performance, I’d be remiss if I didn’t mention the overall
performance improvements in WebSphere Application Server V8.5. Based upon
our April 2012 SPECjEnterprise 2010 benchmark submissions (3), WebSphere
Application Server V.8.5 is 70% faster then WebSphere Application Server V8.0 on
the same hardware, as shown in Figure 5, which also depicts the SPECjEnterprise
2010 performance for WebSphere Application Server V7 as well.
What's new in WebSphere Application Server V8.5 Page 10 of 16
11. ibm.com/developerWorks/ developerWorks®
Figure 5. WebSphere Application Server SPECjEnterprise Performance
This improved performance is the result of many improvements across the board
in many application server components. In V8.5, performance improvements were
realized in:
• JDK (Java 7 SE versus Java 6 SE)
• JPA 2.0 persistence layer
• Web container
• JSP engine
• EJB container
• Connection management for J2C/RRA
• JMS messaging optimizations.
Another new Application Resiliency feature in WebSphere Application Server V8.5
is the new capability to detect memory leaks, as well as the ability to mitigate
memory leak impact when stopping application servers, which, in some cases, can
actually prevent leaks by clearing application memory references in certain cases,
as well as to receive leak warnings and get heap/system dumps when a leak has
occurred.
Operation and Control
New features and enhancements in this area include:
• Selectable JDK
• Security
• Track admin changes
• Java Batch
What's new in WebSphere Application Server V8.5 Page 11 of 16
12. developerWorks® ibm.com/developerWorks/
• Cross Component Trace (XCT)
• Logging
• Data Collector
Selectable JDK
WebSphere Application Server V8.5 introduces selectable JDK, which is managed
using the managesdk command to specify the JDK used by a WebSphere
Application Server profile. This enables management of an environment that is
composed of both Java 6 SE and Java 7 SE, so some portion of your topology
can run on Java 7 SE while the remainder can run on Java 6 SE. The managesdk
command can be used to switch to Java 7 SE or back to Java 6 SE, as needed. Java
7 SE is an optional install in WebSphere Application Server V8.5 that can be used
with either the Liberty profile or the full-functioned WebSphere Application Server
profile.
Security
WebSphere Application Server V8.5 contains several OSGi Blueprint security
improvements that are delivered as part of the EJB support in OSGi bundles,
discussed earlier. These security improvements include:
• Configuration of bean security in the Blueprint XML file.
• Specification of bean-level security in OSGI apps.
• Setting method level security in OSGI apps.
Track admin changes
Another new administrative function is the ability to track administrative
configuration changes. This function leverages the Extended Repository
Checkpoint function from WebSphere Virtual Enterprise, which writes out a delta
repository each time configuration changes are saved to the WebSphere Application
Server configuration repository. The delta repository lists the “before” and “after”
configuration elements which can then be used to track configuration changes.
Java Batch
The Java Batch function from WebSphere Application Server V8.0 has been
enhanced in V8.5 to include a Parallel Job Manager that controls parallel job
execution, including the splitting and merging of jobs. This is a container-managed
parallelization providing a “divide and conquer” approach for processing large record
volumes, which significantly lowers batch processing elapsed time.
Another addition to Java Batch in WebSphere Application Server V8.5 is integration
with external enterprise schedulers (such as IBM Tivoli® Workload Scheduler)
for scheduling and monitoring (for example, IBM Tivoli Composite Application
Manager (ITCAM) of batch workloads. These additions further improve the batch
programming, batch container, and batch job management functions already
available in Java Batch, such as job scheduling and job status checkpoint restart.
What's new in WebSphere Application Server V8.5 Page 12 of 16
13. ibm.com/developerWorks/ developerWorks®
Cross Component Trace (XCT)
A completely new administrative function in WebSphere Application Server V8.5 is
Cross Component Trace (XCT). XCT enables the correlation of log and trace entries
created by multiple threads or processes on behalf of the same request, and XCT
can augment log and trace entries with a requestID that you can view and filter using
HPEL (Listing 1).
Listing 1. XCT with request ID added
[3/18/11 14:50:17:391 EDT] 00000018 W UOW= source=com.ibm.somelogger.QuickLogTest
org= prod= component= thread=[WebContainer : 1] requestID=AAP+k9s6JZ9-AAAAAAAAAAA
hello world
XCT can add records to your log and trace files so you can see how work related to
each request branched between all involved threads and processes (Listing 2).
Listing 2. XCT request and response tagging
[3/23/12 14:01:40:615 CDT] 00000032 XCT I BEGIN AAP+k9s6JZ9-AAAAAAAAAAA
00000000000-cccccccccc2 HTTPCF(InboundRequest /HelloWorld/ RequestContext(828937987))
[3/23/12 14:01:40:678 CDT] 00000032 XCT I END AAP+k9s6JZ9-AAAAAAAAAAA
00000000000-cccccccccc2 HTTPCF(InboundRequest RC=200 RequestContext(828937987))
[3/23/12 14:01:50:381 CDT] 00000032 XCT I BEGIN AAP+k9s6JZ9-AAAAAAAAAAB
00000000000-cccccccccc2 HTTPCF(InboundRequest /HelloWorld/ RequestContext(435283455))
[3/23/12 14:01:50:443 CDT] 00000032 XCT I END AAP+k9s6JZ9-AAAAAAAAAAB
00000000000-cccccccccc2 HTTPCF(InboundRequest RC=200 RequestContext(435283455))
XCT can also be used to view that detailed information on HTTP and JMS requests
and responses to easily debug complicated application problems. The XCT improves
your ability to diagnose and debug software problems in order to minimize and
eliminate application downtime. The XCT log viewer, which is available for the IBM
Support Assistant, can render log and trace content from multiple log and trace files
grouped by request (Figure 6).
Figure 6. XCT Log Viewer
What's new in WebSphere Application Server V8.5 Page 13 of 16
14. developerWorks® ibm.com/developerWorks/
Logging
High Performance Extensible Logging (HPEL) has been improved in V8.5 and it now
has log and trace entry extensions, enabling you to filter entries by application
name, by request ID, or by other custom fields. HPEL log and trace entries can now
be extended with name value pair “extensions.” As an example in Listing 3, the Java
EE application name has been added as an extension (called appName) to all log
and trace entries created on threads associated with an application.
Listing 3. HPEL Application Name Extension Example
logViewer.sh -includeExtensions appName=ACMEShovels –format advanced
...
[12/10/11 10:52:01:500 EST] 000001c6 1 UOW= source=com.acme.SomeLogger
thread=[WebContainer : 6] org= prod= component= appName=[ACMEShovels]
This is a trace entry from the MyShovels application
When viewing HPEL log and trace, entries can be filtered by appName, requestID, or
any other extension via the HPEL logViewer command.
Data Collector
The latest version of the IBM Support Assistant provides a Data Collector, which can
quickly collect diagnostic files or run traces that are predefined for WebSphere
Application Server components. This allows for local viewing of diagnostic files
or, optionally, sending the files to IBM product support swiftly, shortening the time
required to resolve a problem.
Conclusion
IBM WebSphere Application Server V8.5 is a major release that offers dramatic run
time improvements, plus simpler and easier ways to develop and deploy applications.
This article presented a glimpse at some of the new features and enhancements to
hopefully encourage you to explore what else this new release has to offer.
What's new in WebSphere Application Server V8.5 Page 14 of 16
15. ibm.com/developerWorks/ developerWorks®
Resources
• Minimum supported Java levels
• SPECjEnterprise 2010 Results
• Configuring the Memory Leak Policy
• WebSphere Application Server V8.5 product information
• Liberty Profile
• WebSphere Application Server V8.5 trial download
• IBM developerWorks WebSphere
What's new in WebSphere Application Server V8.5 Page 15 of 16