Many of the reasons for this second edition are due to the rapid evolution and maturing of the Java language and programming environment. When the first edition was published, Java applets looked to be the killer app for Java, but instead Java has succeeded largely as an application programming language running on servers. Rather than downloading applets from web browsers, Java is being embedded into web pages and invoked on the server to provide dynamic web content in Java Server Pages. The Java ‘write once, run everywhere’ promise has evolved into the ‘write once, test everywhere’ reality. No, Java isn’t perfect. But its portability has been proven in hundreds of cross-platform applications. The original java.awt GUI framework has been supplanted by the more capable and lighter-weight Swing framework. The Java programming environment has moved from the immature JDK 1.1 to the more robust Java 2 platform.
Consequently, we have updated our code to use Swing and the latest JDK, changed our applets into applications to avoid the lingering browser compatibility issues, and strengthened our use of the JavaBean component model. We now provide UML diagrams of our class relationships and major interactions between objects in the CIAgent framework and added JavaDocs to the source code. We have updated the example applications to reflect more standard Java programming practices and to enhance the use of agent functionality in a web context. In recognition of the use of this book as a college text, we have expanded the end of chapter exercises, expanded the on-line resource section, and almost doubled the number of bibliographic references.
We added genetic algorithms and fuzzy rule system implementations to our collection of artificial intelligence algorithms. The ability to plug-in agents into our Personal Agent Manager should be a great addition to any applied AI or agents class. We have updated and greatly expanded our treatment of agents and multi-agent systems in this edition. This edition includes the new Java-based IBM Agent Building and Learning Environment (ABLE) on the CD-ROM, which will provide a natural progression from the basic concepts and capabilities of the CIAgent framework presented in this book, to the more capable and sophisticated ABLE platform.
In total, we hope that we strengthened the book for those readers who found the first edition most useful. We thank you for your support and hope this book can play some small part in helping move intelligent software agents along on their way to commercial success.