Introduction It's all about quality of life.Whether you're a developer,architect,or project manager,at the end of the day we all want to feel good about building and deploying well-designed applications,without making costly mistakes,work- ing long hours,and going through months of stress.At the end of the day,we are all human,we all want to see the project proceed on schedule and go home with enough free time to spend on anything we like Unfortunately,well-designed applications are not easy to come by when using new and still maturing technologies such as Java2Enterprise Edition (J2EE).In relatively new fields such as this,there is always a large deficit of no clear set of best practices to follow,the job of the EJB developer is very dif- ficult.Learning good design is particularly difficult for newcomers to the tech- nology,many of whom have never built distributed systems before and don't understand the fundamental needs that influence distributed systems design. What makes things worse is that changes in the EJB specification from ver sion to version tend to bring about significant changes to the way that good EJB systems should be designed.Particularly with the introduction of EJB 2.0, many years worth of best practices discussed in even the most recently pub lished books on EJB simply no longer apply or do not have the same purpose, and using such best practices can result in poorly designed systems. It is with the concern for spreading good design ideas and improving the quality of applications that developers design,and as a result the overall qual- ity of life of the developers themselves,that this book(and The Middleware Company's EJB for Architects course -where the patterns in this book are xiii It’s all about quality of life. Whether you’re a developer, architect, or project manager, at the end of the day we all want to feel good about building and deploying well-designed applications, without making costly mistakes, working long hours, and going through months of stress. At the end of the day, we are all human, we all want to see the project proceed on schedule and go home with enough free time to spend on anything we like. Unfortunately, well-designed applications are not easy to come by when using new and still maturing technologies such as Java 2 Enterprise Edition (J2EE). In relatively new fields such as this, there is always a large deficit of information about designing good systems. Developers are either reinventing the wheel or simply making costly design mistakes on projects every day. With no clear set of best practices to follow, the job of the EJB developer is very difficult. Learning good design is particularly difficult for newcomers to the technology, many of whom have never built distributed systems before and don’t understand the fundamental needs that influence distributed systems design. What makes things worse is that changes in the EJB specification from version to version tend to bring about significant changes to the way that good EJB systems should be designed. Particularly with the introduction of EJB 2.0, many years worth of best practices discussed in even the most recently published books on EJB simply no longer apply or do not have the same purpose, and using such best practices can result in poorly designed systems. It is with the concern for spreading good design ideas and improving the quality of applications that developers design, and as a result the overall quality of life of the developers themselves, that this book (and The Middleware Company’s EJB for Architects course—where the patterns in this book are Introduction xiii