IBM(R) WebSphere(R) Application Server Programming
Author: Bassem W. Jamaleddine
First print: 1234567890
Copyright(C) 2003 by The McGraw-Hill Companies
This text explains the fundamentals of the functionality and programming of WebSphere
Application Server (WAS) that are essential for readers whose aim is programming
or administering the product. The text is intended to give the reader an understanding
of the basic functions of WAS from the computer system perspective. The explanation follows
a practical approach to understanding WAS independently of a specific version. Therefore,
the text shows a (programming) methodology that is applicable to WAS v3.5, v4, and to the
upcoming release of WAS v5.
As necessary background, the reader should possess programming ability in some high-level
language. One full course in Java programming and some rudimentary knowledge of Perl and
shell script programming constitute the level of competence required for all parts of this text.
Programming for WAS is not confined solely to Java. Because J2EE application servers and
J2EE application programming demand the editing of many metafiles and descriptor files, we
have chosen to use Perl, shell, the UNIX make utility, and other UNIX tools, to do the text
preprocessing, compilation, and deployment of code. The choice of UNIX as a development
environment is justified since it is the only system that promotes application development in
Basic application server programming is taught in the context of distributed systems that
vary in platforms; therefore, various operating systems were considered. Although the Java
machine is common to all platforms, threads management is operating system dependent and
greatly impacts the performance of the application server. Here we have chosen AIX and Linux
as platforms to highlight this difference.
Explanation of the structure of WebSphere Application Server has been made generic for
the most part, without targeting any specific version of the product. The text addresses the
fundamentals of WAS programming and integration, and offers many utility scripts that can
be used regardless of the specific version of the product. WAS AE stands for WAS Advanced
Edition. The version implied by the term WAS AE refers to either v3.5 or v4. WAS AEs stands
for Advanced Edition Single Server v4. The code and utility scripts represented herein are
backward compatible with WAS v5.
The reader will use WAS AEs in most of the programming (Part III), because this version
is the most adequate (and is free of charge) for writing J2EE applications based on the IBM
J2EE application server.
J2EE is not treated as a separate topic; rather, it is introduced in the context of web application
programming and deployment under WAS. This is done very specifically, based on the
assumption that most readers will probably receive a complete treatment of J2EE in another
course or on their own by consulting online documentation.
The reader who would like to write web application programs and test them with WAS
may begin with Part III of this book. The only requirement is a Linux sandbox with a connection
to the Internet to download the WAS AEs trial version, the IBM UDB v7.2 trial version, and
the code distribution of this text. No other third party software is required.
Part III can be used on its own, provided a system administrator has prepared the development
environment to be used by the reader, as explained in chapters 3 and 4, or alternatively, as it
is explained in Appendix A.
Material has been sequenced scrupulously to avoid forward references and to present sufficient
steps that allow the reader to program with WAS AEs’ free trial (but fully functional) version
on a home computer. The approach taken here is to present the reader with some
mechanisms to build web applications using IBM’s J2EE application server—WebSphere
Application Server—without the interference of any other WebSphere product. In this way,
the reader will gain a clear understanding of WAS, making the IBM application server an
openly available product that can, for example, be taught in a college course.
The text also breaks the dependency on using a graphical interface for programming,
debugging, deployment, and administration. This is achieved by applying Perl scripts, and
by using applications such as Lynx and the WebSphere Control Language (known as WSCP,
and replaced by wsadmin in WAS v5). In addition, many other standard UNIX commands are
used, which should be at the fingertips of any competent programmer. Using Lynx is appropriate
because it provides an instantaneous view to the HTML header. Perl is an easy language that
permits the automation of text processing, and therefore fits to generate the deployment
descriptor of J2EE applications automatically.
The material has been classified into six parts so the text can be used in a university for
two full courses as an introduction to WAS. Part I targets the preparation of the development
environment; Part II supplies the requisite knowledge to administer WAS; Part III teaches
programming for WAS; Part IV teaches stress-testing and debugging; Part V examines WAS
monitoring, tuning, and risk management; finally, Part VI forms the appendixes.
The manuscript was written at Total Computing & Network Design, Inc. (TCND), in
New York City, and was carefully reviewed by several IT professionals at IBM. TCND provided
the computing facilities on which programming and testing took place. It also provided the
tools and applications that helped generate the code listings.
The Gramercy Toolkit and the WASLED/WASMON application are the result of Project-9,
likewise conducted at TCND. The toolkit and the application are freely distributed with the
purchase of this text, and licensing is waived solely for educational use (non-commercial
use): that is, specifically to accredited Computer Science departments and/or readers who
will use the product on their home computers.
The most recent update of Gramercy Toolkit and WASLED/WASMON may be obtained
from the website www.tcnd.com. The author welcomes readers’ comments and critiques
about the project, and asks that they be sent to firstname.lastname@example.org.
Bassem W. Jamaleddine
Total Computing & Network Design, Inc.
New York, New York