You are on page 1of 16

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

You might also like