IBM Software Group
IBM WebSphere Application Server V6.1
Componentization Overview
2006 IBM Corporation
Updated February 12, 2008
This presentation will discuss componentization in WebSphere Application Server V6.1.
WASv61_Componentization.ppt
Page 1 of 16
IBM Software Group
Agenda
Overview Application and user impact Summary and references
Componentization Overview
2 2006 IBM Corporation
This presentation will first give an overview of the componentization-related changes in V6.1, and will the discuss the possible impact these changes may have on users and applications.
WASv61_Componentization.ppt
Page 2 of 16
IBM Software Group
Section
Overview
Componentization Overview
3 2006 IBM Corporation
This section will introduce you to the componentization-related changes in version 6.1.
WASv61_Componentization.ppt
Page 3 of 16
IBM Software Group
Componentization overview
Componentization is an important focus area within IBM and within the WebSphere products
Increasingly important for WebSphere Application Server as more products are built on top of the application server Flexibility, simplicity, loose coupling, and interchangeability are important goals
WebSphere Application Server V6.1 leverages the OSGi framework
Packaged as a set of OSGi bundles
Componentization Overview
4 2006 IBM Corporation
Componentization is an increasingly important initiative for IBM software, including WebSphere Application Server. Version 6.1 has been packaged as a set of OSGi bundles, in an effort to achieve the goals of simplicity, loose coupling, and interchangeability among application server components. This will help increase the flexibility and maintainability of the product, and other products that depend on application server components.
WASv61_Componentization.ppt
Page 4 of 16
IBM Software Group
OSGi overview
The OSGi (Open Services Gateway Initiative) specification is a component model that defines component packaging, life cycle management, and service registration for Java environments
Component packages are called bundles
The OSGi framework is used in many applications, from the small (mobile devices) to the large (Eclipse)
Componentization Overview
5 2006 IBM Corporation
The Open Services Gateway Initiative is a component model that defines component packaging, life cycle management, and service registration for Java environments. The OSGi framework is used in many different types of applications, ranging from mobile and embedded devices to very large projects, such as Eclipse. The OSGi Web site, www.osgi.org is a good resource for more information on the model.
WASv61_Componentization.ppt
Page 5 of 16
IBM Software Group
V6.0 class loader hierarchy
.war .war .ear .ear
3rd party code 3rd party code JDBC Drivers JDBC Drivers
Custom Services Custom Services
Protection Protection classloader classloader
.war .war
.war .war .ear .ear WebSphere runtime loaded by a single class loader All runtime classes visible to applications unless prohibited by Java 2 security policy
6 2006 IBM Corporation
Shared library Shared library Runtime Runtime Java classpath Java classpath
Componentization Overview
This diagram is a representation of the class loader hierarchy in WebSphere Application Server V6.0, in which all WebSphere Application Server runtime classes were loaded by a single classloader. Applications and modules may be loaded by one or several classloaders, depending on the configuration you have chosen. Unless you have created a Java 2 security policy that prohibits it, applications have visibility to the internal WebSphere Application Server runtime classes.
WASv61_Componentization.ppt
Page 6 of 16
IBM Software Group
V6.1 class loader hierarchy
Runtime is loaded by a network of OSGi classloaders Extensions class loader loads globally shared third party code and also acts as a gateway into the runtime Application and shared library classloaders unchanged from V6.0
Application & Shared Lib Loaders Gateway Bundle
3rd party code 3rd party code JDBC Drivers JDBC Drivers
Custom Services Custom Services
Protection CL Protection CL
Ext Class Loader Ext Class Loader
WebSphere Application Server OSGi Runtime
Legacy Stack Legacy Stack
Java classpath Java classpath
7 2006 IBM Corporation
Componentization Overview
In version 6.1, much of the class loading hierarchy is unchanged from V6.0, but the WebSphere Application Server runtime classes are now loaded by a network of several classloaders. Each OSGi bundle is loaded separately by its own class loader. These class loaders are connected to the extensions class loader and the rest of the hierarchy through an OSGi gateway class loader. Despite this architectural change, there is no behavioral change as far as your applications are concerned. They still have the same visibility to the runtime classes, and the same class loading options still exist for your applications.
WASv61_Componentization.ppt
Page 7 of 16
IBM Software Group
Section
Application and user impact
Componentization Overview
8 2006 IBM Corporation
This section will discuss the possible impact that application server componentization might have on you or your applications.
WASv61_Componentization.ppt
Page 8 of 16
IBM Software Group
Class loading for applications
Application and shared library classloaders are unchanged from V6.0
Delegation modes, application (and WAR) class loading policy options remain unchanged
Componentization Overview
9 2006 IBM Corporation
It is important to note that class loading for your applications is entirely unchanged from version 6.0. The functional behavior is unchanged, and all of the same policy options and delegation modes are still available to you.
WASv61_Componentization.ppt
Page 9 of 16
IBM Software Group
Directory structure changes
Most WebSphere Application Server runtime JARs are no longer stored in <INSTALL_ROOT>/lib OSGi bundle JARs are now located in <INSTALL_ROOT>/plugins Clients will break if they refer to files that have been moved
For example, administrative clients that copied these files or added them to their classpath Such clients should use the thin client libraries available in <INSTALL_ROOT>/runtimes
com.ibm.ws.admin.client_6.1.0.jar com.ibm.ws.webservices.thinclient_6.1.0.jar
Componentization Overview
10 2006 IBM Corporation
One important result of the componentization effort is that most of the WebSphere Application Server runtime JAR files are no longer stored in the lib directory. Following the Eclipse-OSGi model, all of the bundles are located in the plugins directory instead. If you have developed Java client applications that rely on the JARs that were located in the lib directory, you will need to modify your client to retain compatibility. Version 6.1 provides thin client libraries that are designed specifically for use by such applications. An administrative client library and a Web services client library can be found in the runtimes directory, and your client applications should rely on these JAR files instead. They provide everything that your client application might need for connecting to and working with WebSphere Application Server.
WASv61_Componentization.ppt
Page 10 of 16
IBM Software Group
Restricted visibility mode
V6.1 includes an option to prevent application access to internal WebSphere Application Server implementation code
Default mode is Allow for backwards compatibility When Restrict is selected, applications trying to load a restricted class will get a ClassNotFoundException Applications should not be accessing implementation code, to avoid dependency and potential breakage
Componentization Overview
11 2006 IBM Corporation
Another change in version 6.1 is the introduction of restricted visibility mode. This option determines whether the protection class loader will prevent application code from accessing WebSphere Application Server implementation classes. The default setting is Allow, which will behave exactly like version 6.0, for application compatibility purposes. If you change the setting to Restrict, your application will throw a ClassNotFoundException when trying to make a call to an internal class. It is suggested that you use the restrict option, to ensure that your applications are not calling any internal classes that are not part of the published programming interfaces. Internal classes are subject to change from release to release, which could cause instability for your applications. Using the restrict mode will help you ensure future compatibility for your applications, since you can make sure you are only using externally available interfaces.
WASv61_Componentization.ppt
Page 11 of 16
IBM Software Group
Enabling restricted visibility mode
Property is set perapplication server
Componentization Overview
12 2006 IBM Corporation
To enable restricted visibility mode, navigate to the main settings page for your application server. Locate the drop-down menu labeled Access to internal server classes, and change the value to restrict. Be sure to apply and save your changes, and then restart the application server.
WASv61_Componentization.ppt
Page 12 of 16
IBM Software Group
Section
Summary and reference
Componentization Overview
13 2006 IBM Corporation
This section will summarize the componentization changes in V6.1.
WASv61_Componentization.ppt
Page 13 of 16
IBM Software Group
Summary
WebSphere Application Server V6.1 is delivered as a componentized set of OSGi bundles
Each bundle is loaded by its own class loader Class loading changes have no effect on application class loading
Runtime JAR files have been moved from the lib directory
Client applications should depend on new thin client libraries instead
Application code can be restricted from accessing internal runtime implementation classes
Componentization Overview
14 2006 IBM Corporation
Version 6.1 of WebSphere Application Server is produced in a componentized fashion as a set of OSGi bundles. These bundles are loaded by a network of individual OSGi class loaders. These class loading changes are internal and do not affect your applications running on WebSphere Application Server. As a result of this componentization, the runtime JAR files have been re-factored and are now located in the plugins directory instead of the lib directory, so client applications that expect to find code in the lib directory will fail. These applications should rely on the new thin client libraries that are provided. Also, version 6.1 introduces restricted visibility mode, which can prevent application code from loading internal WebSphere Application Server classes.
WASv61_Componentization.ppt
Page 14 of 16
IBM Software Group
Class loading references
To review WebSphere Application Server class loading architecture, settings, and more, visit IBM Education Assistant
http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/ topic/com.ibm.iea.was_v6/was/6.0/Runtime.html
Componentization Overview
15 2006 IBM Corporation
To learn more about WebSphere Application Server class loading in general, visit the link shown here, where you can find several education modules on the subject.
WASv61_Componentization.ppt
Page 15 of 16
IBM Software Group
Template Revision: 11/22/2005 12:10 PM
Trademarks, Copyrights, and Disclaimers
The following terms are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both: IBM IBM(logo) e(logo)business AIX CICS Cloudscape DB2 DB2 Universal Database IMS Informix iSeries Lotus MQSeries OS/390 OS/400 pSeries Tivoli WebSphere xSeries zSeries Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Windows, Windows NT, and the Windows logo are registered trademarks of Microsoft Corporation in the United States, other countries, or both. Intel, ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a registered trademark of Linus Torvalds. Other company, product and service names may be trademarks or service marks of others. Product data has been reviewed for accuracy as of the date of initial publication. Product data is subject to change without notice. This document could include technical inaccuracies or typographical errors. IBM may make improvements and/or changes in the product(s) and/or program(s) described herein at any time without notice. Any statements regarding IBM's future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Any reference to an IBM Program Product in this document is not intended to state or imply that only that program product may be used. Any functionally equivalent program, that does not infringe IBM's intellectual property rights, may be used instead. Information is provided "AS IS" without warranty of any kind. THE INFORMATION PROVIDED IN THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IBM EXPRESSLY DISCLAIMS ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. IBM shall have no responsibility to update this information. IBM products are warranted, if at all, according to the terms and conditions of the agreements (e.g., IBM Customer Agreement, Statement of Limited Warranty, International Program License Agreement, etc.) under which they are provided. 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. IBM makes no representations or warranties, express or implied, regarding non-IBM products and services. The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents or copyrights. Inquiries regarding patent or copyright licenses should be made, in writing, to: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. The actual throughput or performance that any user will experience will vary depending upon 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 throughput or performance improvements equivalent to the ratios stated here. Copyright International Business Machines Corporation 2005,2006. All rights reserved. Note to U.S. Government Users - Documentation related to restricted rights-Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract and IBM Corp.
Componentization Overview
16 2006 IBM Corporation
WASv61_Componentization.ppt
Page 16 of 16