Professional Documents
Culture Documents
WASv61_Componentization.ppt
Page 1 of 16
Agenda
Overview Application and user impact Summary and references
Componentization Overview
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
Section
Overview
Componentization Overview
This section will introduce you to the componentization-related changes in version 6.1.
WASv61_Componentization.ppt
Page 3 of 16
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
Componentization Overview
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
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
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
.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
3rd party code 3rd party code JDBC Drivers JDBC Drivers
Custom Services Custom Services
Protection CL Protection CL
Ext Class Loader Ext Class Loader
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
Section
Componentization Overview
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
Componentization Overview
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
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
Componentization Overview
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
Componentization Overview
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
Section
Componentization Overview
WASv61_Componentization.ppt
Page 13 of 16
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
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
Componentization Overview
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
Componentization Overview
WASv61_Componentization.ppt
Page 16 of 16