My primary interest in open source software (OSS) is in building enterprise information systems using open source components. The maturity of OSS makes this not only possible but easily achievable on many levels. In the early days of OSS, you might find occasional pockets of OSS usage in organizations; zealots who pushed the bleeding edge by running rogue Web servers on Apache with JServer or Java Web Server. These days, the sometimes furtive activities of such individuals has given way to a broader understanding that OSS is not only an enticing business choice but a sound technological one as well.
When I first started using products such as Apache, MySQL, Apache JServer, Sun's Java Web Server, and the first versions of Tomcat, it was in situations where we were all starting out getting our feet wet with OSS and trying to convince upper management that we had a revolution in the making. Now we are seeing major shifts in government and corporate enterprises toward OSS. We have a plethora of options in the OSS worldproducts to match nearly every facet of computing and with more being invented each day. In fact, if anything, the very multitude of options adds another layer of complexity in creating OSS-based enterprises.
What I stress with my clients is that if you want to build your enterprise around open source products, you must approach OSS with an "enterprise" mindset. That is, you must select, configure and run open source products with the same attention to stability, security, and interoperability that you would demand of commercial products. We're talking about running enterprises here, not standalone Web servers; the demands on OSS are now greater and we must pay more attention to how we use OSS than whether we use it or not. This is the key to success with OSS: If you use it right, if you can surround it with a framework that ensures a stable and secure operating environment for your enterprise applications, you will achieve the promise of OSS.
It is with this approach that I have used Tomcat for many years and now come to write about it. Tomcat is a fine piece of software, and does its job as a servlet container extremely well. What I want to show in this book is how to use Tomcat in a production, enterprise environment. You'll see the factors that go into using Tomcat as a critical part of an open source J2EE environment, as well as a key component in the enterprise. We'll get the chance to hook up Tomcat with databases, OpenLDAP, OpenEJB, and authentication mechanisms such as Kerberos. Along the way, you'll hear me talk over and over again about the things I think are most important: having a stable, well documented, secure and thoroughly tested Tomcat installation.
In the end, the point is simple: Tomcat, like any other piece of information technology, is a tool to support your business. Like a physical tool, you have to understand its operation, how to use it right, and how to take care of it. Surrounded as we are by technology, it is easy to forget that it still comes down to supporting the business. With the tools supplied by a solid enterprise, an organization can do its work more effectively and efficiently. And that is what I hope you get from this book: how to use Tomcat to realize the goals of your business.
In Part 1 of this book, we'll get started by downloading Tomcat and doing basic configuration, security, and administration. Here we'll take the first steps in creating a production-quality Tomcat installation.
Part 2 will cover Web application development. After a J2EE introduction, I'll talk about how to create a robust development environment for Web applications that uses Ant and CVS. With that in place, we'll move on to developing with servlets, JSPs (using JSP 2.0 and JSTL), filters, listeners, XSLT, JNDI, JTA, and log4j.
Tomcat administration is the subject of Part 3, where I'll start with a chapter on Tomcat internals so that you have a good grasp of what goes on behind the scenes. After that comes chapters on administration and configuration basics, I'll cover such topics as Web server integration, load balancing, clustering, and advanced authentication mechanisms using Kerberos and JAAS.
The last part of the book will deal with some more advanced areas of Tomcat, including Tomcat customization, EJB server integration and using embedded Tomcat.