IBM's WebSphere Application Server is the cornerstone of its WebSphere e-business product family, providing support for core server-side Java technologies including servlets, JavaServer Pages (JSP), and Enterprise JavaBeans (EJBs). Version 3 of WebSphere Application Server Advanced Edition is the first release of Advanced Edition to be offered for OS/400. Advanced Edition offers additional scalability, EJBs, and workload management, in addition to the Standard Edition features. Although some features (e.g., servlets and JSP) existed in previous versions, you will see major changes in the way the server works.
A beta program of WebSphere Application Server Advanced Edition for AS/400 Version 3.0 became available in November of last year. In February, Version 3.02 became generally available. Advanced Edition 3.02 requires OS/400 V4R4, plus recent PTF levels. It relies on several other AS/400 products, including the Java Development Kit 1.1.7 for AS/400 (5769JV1 option 2) and the IBM HTTP Server for AS/400 (5769DG1).
Advanced vs. Standard
There are three editions of WebSphere Application Server: Standard, Advanced, and Enterprise. Standard and Advanced are available for OS/400 and both support JSP and servlets as well as Extensible Markup Language (XML) services. Advanced Edition also supports EJB. While Standard Edition only supports a single system as the application server environment, Advanced Edition supports multiple systems to enable load balancing and failover. However, the added features of Advanced Edition come at a cost: Standard Edition bundles with OS/400, while Advanced Edition is a priced, AS/400 licensed program.
In general, if you are just beginning to develop Web applications, you should get started with Standard Edition. Develop some servlets and JSPs and become comfortable with WebSphere, and move to Advanced Edition when you want to add EJBs to your application or you require additional scalability.
The first additional capability provided by Advanced Edition is support for EJB. EJB is a specification from Sun Microsystems that defines a component model for building server- side Java objects. Besides the possibility of reuse, the model's main value is in easing the burden of complex coding for the EJB developer. The EJB server and container handle distributed object semantics, transactions, persistence, and security, thus freeing the EJB developer to focus on business logic.
Advanced Edition provides an EJB server and EJB container implementation consistent with the EJB 1.0 specification, including support for entity beans. You can use DB2 for OS/400 (DB2/400) for persistence of container-managed entity beans. Sophisticated mappings to legacy data are available if you use VisualAge for Java (VAJ) Enterprise Edition to develop your EJBs. WebSphere uses connection pooling (via standard JDBC 2.0 DataSource classes); pools are available to the EJB developer, as well. Using Java Transaction API (JTA), Advanced Edition supports distributed transactions with two-phase commit. WebSphere provides two EJB caching options, A and C (these correspond to the same caching options defined in the EJB specification). You choose which option is best, based on your database usage and performance requirements. Support for read-only EJB methods also boosts performance for WebSphere EJBs.
As shown in Figure 1, the addition of EJBs in Advanced Edition changes the application architecture. Applications on Standard Edition use JSPs and/or servlets for the presentation layer. There should be very little business logic in servlets or JSPs. The servlets and JSPs may do simple accessing of legacy data or very light processing of data. Any significant business logic is usually contained in legacy programs. EJBs in Advanced Edition provide a new location for business logic. EJBs can also call legacy programs, but they more frequently represent new or replacement business logic.
Whereas Standard Edition is targeted for installations that run a single WebSphere administrative server on a single physical system, Advanced Edition offers more scalability. Advanced Edition can support several administrative servers running on several physical machines; it also supports heterogeneous environments. You can view and administer all of the servers from a single console. These capabilities are important in their own right, but they also provide the foundation for powerful workload management support.
Workload management in Advanced Edition provides both failover and load balancing support. You configure workload management by creating a model application server, which defines common components. Clones are then created from the model. As their name implies, clones have the same basic characteristics; they contain the same servlets, EJBs, JSP, etc. Collectively, the set of clones is called a server group.
Load balancing is based on the policy configured for the server group. The random policy randomly chooses the server to send a request. The round robin policy iterates through the servers in the server group, passing a request to each in turn. The last two policies, random prefer local and round robin prefer local, are variations of the first two. When a component calls another component (such as a servlet calling an EJB), these policies will always choose a server on the local machine to handle the nested request. Also, transaction affinity is used regardless of the policy selected: The same server will be selected for all requests belonging to the same transaction. Advanced Edition can perform load balancing for servlets, JSP, and EJBs.
In addition to load balancing, server groups provide failover support. When a server goes down, requests will automatically be routed to other servers in the server group.
Version 3 vs. Version 2
WebSphere Application Server was almost completely rewritten for Version 3, so you will see not only bug fixes and additional functions but also major architectural changes. First, IBM has made changes to keep current with the Java APIs and specifications from Sun. The Java Servlet API 2.0 from Version 2 has been replaced with the Java Servlet API 2.1. JSP Version 1.0 is now supported; however, in order to ease migration, WebSphere Version 3 still supports the older JSP 0.91 specification, as well. Which version of JSP you want to use is defined on a Web application (I'll explain this concept shortly), so, although you cannot have both versions of JSP within a single Web application, you can have both within a single application server.
Web applications are a new application model in Version 3. A Web application is a group of both WebSphere resources (such as servlets and JSPs) and HTTP resources (such as HTML, Common Gateway Interface [CGI], and images). Grouping components into Web applications provides a logical order for your Web components, making administration easier and the functional use of components more apparent. The Web application defines attributes, such as directory locations and security, providing simpler administration. Because you can set the directory location for both WebSphere resources and HTTP resources on a Web application, both types of resources can be in the same directories. (Contrast this with Version 2, where servlets were usually located in WebSphere subdirectories, while HTTP resources and JSPs were usually located under the HTTP document root.)
Security has also changed significantly for Version 3. WebSphere security covers both authentication and authorization. You can now secure all your Web resources, including WebSphere resources and HTTP resources, with WebSphere security. You can also use a combination of HTTP server security and WebSphere security. For authentication, you can use either digital certificates or basic authentication. You can store users in two types of registries. The local operating system registry uses platform-specific facilities. On OS/400, AS/400 user profiles are used. Lightweight Third Party Authentication (LTPA) uses Lightweight Directory Access Protocol (LDAP) to store user information. Both registries have their advantages. Using the local operating system registry is simpler but requires an AS/400 user profile for each user. Digital certificates cannot be used with this registry. It does not provide secure delegation, which means that credentials for a resource in one application server cannot be passed to a resource in another server. LTPA does provide secure delegation, but it can be more difficult to set up and administer because it uses a separate store for user information. In WebSphere Version 3, you give authorization to resources by assigning permissions based on enterprise applications and method groups. Enterprise applications are a way to group Web resources and EJBs. WebSphere security is very flexible, offering many options and allowing many levels of control. However, it can seem complex at first, so be prepared for a learning curve.
WebSphere's primary administration interface has changed from an applet-based set of tools in Version 2 to a standalone Java Foundation Classes (JFC) application in Version
3. The back-end data store for configuration data has moved from a set of properties files to a database. This new model provides better distributed administration capabilities; however, it requires an install on the workstation(s) that will be used to run the administrative console. Version 3 offers two other administration interfaces in addition to the standalone Java application. An XML-based batch configuration capability facilitates noninteractive configuration. Also, there is a browser-based administrative capability, but it is not as developed as the JFC-based application.
There are, of course, numerous smaller miscellaneous bug fixes and enhancements in Version 3—too many to mention them all. You will notice many in the servlet and session management areas.
The WebSphere Application Server for AS/400 home page (www.as400.ibm.com/products/websphere/index.htm) contains information on both the Standard and Advanced Editions of WebSphere Application Server. There is a multitude of information, including full documentation (which is now AS/400-specific!), FAQs, white papers, forums, and the latest fix information. You can also visit the main IBM WebSphere Application Server home page at www.ibm.com/software/webservers/ appserv/index.html. Although this site is geared toward the workstation versions of WebSphere Application Server (Microsoft Windows NT, Solaris, AIX, and Linux), much of the information is equally applicable to the AS/400 versions. And if you are confused about the various versions of WebSphere or migration issues, read my article "WebSphere/400: Lowdown on Versions and Migration" at www.midrangecomputing.com/mc
WebSphere Application Server on AS/400
WebSphere Edition Release Date OS/400 Version Delivery Mechanism and Version and Release
Standard 1.0 June 1998 V4R3 V4R3 PTFs to 5769DG1 Standard 1.1 December 1998 V4R3, V4R4 V4R3 PTFs to 5769DG1 (SF99025)
V4R4 PTFs to 5769AS1 (SF99027-01)
Standard 2.02 August 1999 V4R4 5769AS1 Standard 2.031 December 1999 V4R4 PTF to 5769AS1 (SF99027-04 or later) Advanced 3.02 February 2000 V4R4 5733WA2, 5733WA3
Standard 3.02 Coming Soon V4R4 5769AS2, 5769AS3 Figure A1: Here is a rundown of the WebSphere versions and editions.
Presentation Business Logic Data
Servlets and/or JSPs Legacy Programs
Confused about the different versions and editions of WebSphere Application Server on the AS/400? See Figure A1 for guidance. You can order group PTFs to get the latest WebSphere code for your operating system release. Group PTFs contain not only WebSphere updates but also updates to underlying services such as database and the HTTP server. Standard edition for V4R3 uses group PTF SF99025. Standard edition for
V4R4 uses group PTF SF99027.
Servlets and/or JSPs Data Data
Figure 1: Because of EJB support, normal structure for applications in Advanced Edition is often different from the structure for Standard Edition applications.