IBM® WebSphere® Application Server is the leading software foundation for service-oriented architecture (SOA) applications and services for your enterprise. With IBM WebSphere Application Server, you can build business-critical enterprise applications and solutions, and combine them with innovative new functions. The WebSphere Application Server family includes and supports a range of products that helps you develop and serve your business applications. You can use these products to build, deploy, and manage dynamic websites and other more complex solutions productively and effectively.
Beginning with WebSphere Application Server V8.5, two profiles of the runtime application server are delivered. The full profile is the traditional run time that supports a broad range of programming models and features that are designed to provide workload management, availability, scalability, performance, and security. The Liberty profile is a lightweight application serving run time with many of the same features that are available in the full profile, but it is designed for more streamlined operations. WebSphere Application Server V8.5.5 further enhances the capabilities in the Liberty profile to add programming support, for example, web services and messaging support, and to add runtime features that are designed to enhance security, availability, and more.
This IBM Redbooks® Solution Guide provides insight into the usage of the Liberty profile for development, testing, and production environments.
IBM® WebSphere® Application Server is the runtime implementation of IBM of the Java Platform, Enterprise Edition (Java EE) platform. WebSphere Application Server is available in unique packages that meet a wide range of customer requirements. Each package has its own unique characteristics, but at the heart of all of them is the same runtime application server environment.
The run time that is traditionally available with the WebSphere Application Server is referred to as the full profile. The full profile provides support for Java Platform Enterprise Edition 6 (Java EE 6) and Enterprise OSGi technologies. The application serving run time that is provided by this profile is composed of a wide spectrum of components that are always available in the application server.
Starting with WebSphere Application Server V8.5, a Liberty profile is included with each edition. The Liberty profile provides a simplified and lightweight application-serving environment while still providing enterprise qualities of service, including security and transaction integrity. The Liberty profile is intended for use as a development or production environment for running web applications that do not require a full Java EE stack. The Liberty profile is included with each WebSphere Application Server edition except for the Community Edition. In addition, a new Liberty Core package is available with Version 8.5.5.
This IBM Redbooks® Solution Guide introduces the WebSphere Application Server V8.5.5 Liberty profile solution for both development and production use. Figure 1 gives an overview of the Liberty profile and its tools.
Figure 1. WebSphere Application Server Liberty profile and tools
Did you know?
WebSphere Application Server V8.5.5 provides significant enhancements to the functionality that is included in the Liberty profile. These enhancements include additional programming support to complete the Java EE 6 web profile support, Java Messaging Support (JMS) (including a new integrated messaging server and support for WebSphere MQ), web services support for both service provider and client, server clustering for availability and scalability, and more.
Business value
The WebSphere Application Server Liberty profile provides a lightweight, simple, yet powerful application server for web applications. The Liberty run time supports the web profile of the Java EE 6 specification, providing a standards-based application programming model. The Liberty profile and the WebSphere Application Server Developer Tools for Eclipse are freely available for developer desktops and supported under WebSphere Application Server production runtime licenses.
For developers, the Liberty profile and the supporting developer tools can be downloaded quickly and used at no additional charge. The application server is simple to configure and quick to start. Configuration files can be shared to easily make an array of server configurations available to the development team, reducing the time that is spent on server administration. Developers can develop and test applications to run on a Liberty profile production server or to be ported to the full profile of WebSphere Application Server.
In production, the Liberty profile provides a secure and resilient runtime environment. Application servers are configured with only the features that are needed to run the application, providing an efficient and streamlined run time. Application servers can be clustered for scalability and availability, and can be managed collectively.
The Liberty profile run time can be extended with custom features. This capability is of interest to developers and administrators that want to include additional features and to IBM Business Partners that want to extend the Liberty profile server to provide a run time for their own products. The Liberty profile includes a utility that enables the server, server configuration, and applications to be packaged together for easy distribution.
Solution overview
The Liberty profile provides a simplified run time for web applications, supporting a subset of the programming model that is available with the full profile. It is a good option for developers who are building web applications that do not require the full Java EE environment of traditional enterprise application server profiles. Any application that runs on the Liberty profile will also run on the full profile.
The application-serving environment is configured with the correct level of capabilities that are required for the individual applications. You can use the Liberty profile to specify only those features that are required for the applications that are deployed, reducing the memory footprint and increasing performance. The Liberty profile has a simplified installation and uses an easy-to-configure XML configuration file format.
The Liberty profile is optimized for use in both development and production environments. Within the development environment, the Liberty profile development environment is supported on the same platforms as the base application server plus the Mac OS X operating system and Ubuntu. Enterprise qualities of service, such as security and transaction integrity, are enabled as required. Developers deploy applications to a single server for testing. In production, servers can be managed from a common management domain and clustered for high availability and scalability.
The Liberty Profile supports direct enhancement of the run time through user-defined features that are deployed in product extensions. Creating your own features allows you to customize or extend the behavior of the run time by using system programming interfaces (SPIs) that applications do not have access to. User-defined features can also provide additional application programming interfaces (APIs) and services to deployed applications.
Because a Liberty profile server is lightweight, it can be packaged easily with applications in a compressed file. This package can be stored, distributed to colleagues, and used to deploy the application to a different location or to another system. It can even be embedded in the product distribution. The package contains all of the binary files, server configuration, and applications that are necessary to distribute the server.
Solution architecture
The Liberty profile is designed to meet the specifications of the Jave EE 6 web profile while also providing the same reliable containers and quality of service (QoS) attributes of the full profile of WebSphere Application Server.
Runtime architecture and configuration
The Liberty profile is built on OSGi technologies. The Liberty profile run time is composed of the Liberty profile kernel and any number of optional features that run inside of a single Java virtual machine process. The features that are present in the run time are specific to the function that is needed for that server instance and its applications. The kernel provides configuration, feature management, and logging services. Most of the kernel runs as OSGi bundles within an OSGi framework. Figure 2 shows the architecture of the Liberty profile. In this diagram, the server configuration includes just a few of the many features that are available.
Figure 2. Liberty profile architecture
The Liberty profile server environment operates from a set of built-in configuration defaults. A Liberty profile server configuration consists of a server.xml file, an optional bootstrap.properties file, and any files that are included by these two main configuration files. The server.xml file is the primary configuration file for the server and contains information about the features to be included in the runtime environment, the applications that are deployed into that runtime environment, their data sources, and optional properties, such as an override to a configuration default or a trace specification. The server.xml file can point to (include) one or more remote XML files to allow common configuration settings to be reused in multiple configuration files and to be shared across multiple servers.
Administrators and developers can use the Liberty profile developer tools or a text editor to edit the configuration files. Management of the environment can be done with simple commands, Jython scripts, or by using the developer tools. In addition to these methods of administration, the standard tools for Java run times, such as jConsole, can be used to monitor the Liberty profile runtime characteristics and to start select operations.
Figure 3 shows how Liberty servers can be configured and managed.
Figure 3. Server configuration and management
Managing multiple servers from a common point
Liberty servers can be managed individually or can be part of a common management domain that is called a Liberty collective. Liberty servers join the collective by registering with an operational registry and adding the collectiveMember feature to their configuration. A Liberty server that is configured as the collective controller provides full lifecycle management to all members in the collective, including product installation and maintenance, and operational access to all servers in the collective, without requiring an agent. Operational management includes commands, for example, to start and stop servers, and to perform file transfer in support of configuration changes and application installation. All WebSphere Application Servers editions can be members of a collective, but only Network Deployment or WebSphere Application Server for z/OS® can be the collective controller.
The material included in this document is in DRAFT form and is provided 'as is' without warranty of any kind. IBM is not responsible for the accuracy or completeness of the material, and may update the document at any time. The final, published document may not include any, or all, of the material included herein. Client assumes all risks associated with Client's use of this document.