Architects of buildings and architects of software have more in common than most people think. Both professions require attention to detail, and both practitioners will see their work collapse around them if they make too many mistakes. It's impossible to imagine a world in which buildings get built without blueprints, but it's still common for software applications to be designed and built without blueprints, or in this case, design patterns.A software design pattern can be identified as "a recurring solution to a recurring problem." Using design patterns for software development makes sense in the same way that architectural design patterns make sense--if it works well in one place, why not use it in another? But developers have had enough of books that simply catalog design patterns without extending into new areas, and books that are so theoretical that you can't actually do anything better after reading them than you could before you started.Crawford and Kaplan's J2EE Design Patterns approaches the subject in a unique, highly practical and pragmatic way. Rather than simply present another catalog of design patterns, the authors broaden the scope by discussing ways to choose design patterns when building an enterprise application from scratch, looking closely at the real world tradeoffs that Java developers must weigh when architecting their applications. Then they go on to show how to apply the patterns when writing realworld software. They also extend design patterns into areas not covered in other books, presenting original patterns for data modeling, transaction / process modeling, and interoperability.J2EE Design Patterns offers extensive coverage of the five problem areas enterprise developers face:
Performance (System Scalability)
Data Modeling (Business Object Modeling)
Transactions (process Modeling)
And with its careful balance between theory and practice, J2EE Design Patterns will give developers new to the Java enterprise development arena a solid understanding of how to approach a wide variety of architectural and procedural problems, and will give experienced J2EE pros an opportunity to extend and improve on their existing experience.
William Crawford has been developing web-based enterprise applications since 1995, including one of the first web-based electronic medical record systems (at Children's Hospital in Boston) and some of the first enterprise-level uses of Java. He has consulted for a variety of institutional clients, including Boston Children's Hospital, Harvard Medical Center, numerous startups and several Fortune 500 companies. Prior to an acquisition he was CTO of Invantage, Incorporated in Cambridge, MA. He received a degree in history and economics from Yale University. He is the co-author of Java Servlet Programming, 2nd Edition, Java Enterprise in a Nutshell, 2nd Edition, and two forthcoming O'Reilly titles. Will is currently Principal Software Architect at Perceptive Informatics, Inc.Massachusetts, provider of software and services to the pharmaceutical industry. He can be reached at http://www.williamcrawford.info
Jonathan Kaplan has been a software developer at Sun Microsystems since 1997. Before joining Sun, he worked on a web-based electronic records system at the Children's Hospital in Boston. At Sun, he has focused on system management, including early Java and browser based applications. Jonathan received his Bachelor's and Master's degrees in Computer and Information Science from the University of Pennsylvania. He currently lives with his wife Tracy in Cambridge, Massachusetts.
Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. The animal on the cover of J2EE Design Patterns is a mollusk. Oysters, squid, and snails all belong to this group of invertebrates (phylum Mollusca), which can be found in streams and oceans as well as on land. There are herbivorous, carnivorous, scavenging, and parasitic mollusks. Most possess a mantle, a layer of tissue that protects the animal's gills or lungs, and often produces a calcareous shell. They have a powerful, muscular foot section that they use for moving around.Aquatic mollusks breathe through gills, and filter water for their food, which includes plankton and other single-cell plants and animals. Scientists have found that filter-feeding mollusks can serve as a benchmark of the degree of pollution in a body of water. The contaminants are a health hazard to the mollusks, and also to the people who may eat them.There are three main classes of mollusks: the bivalves, the gastropods, and the cephalopods. The bivalve class is made up of mollusks with two hinged shells, such as oysters, clams, and scallops. Snails and slugs are members of the largest class of mollusks, the gastropods, which includes over 40,000 species. Gastropods often have a single, spiral-shaped shell, although some species have none. Cephalopods usually do not have shells; this group includes octopus and squid. The shells of mollusks are strong and enduring, and provide a meaningful fossil record of these creatures. Colleen Gorman was the production editor and the copyeditor for J2EE Design Patterns. Marlowe Shaeffer was the proofreader, and Jane Ellin and Darren Kelly provided quality control. Julie Hawks wrote the index.Hanna Dyer designed the cover of this book, based on a series design by Edie Freedman. The cover image is a 19th-century engraving from the Dover Pictorial Archive. Emma Colby produced the cover layout with QuarkXPress 4.1 using Adobe's ITC Garamond font.David Futato designed the interior layout. This book was converted by Julie Hawks to FrameMaker 5.5.6 with a format conversion tool created by Erik Ray, Jason McIntosh, Neil Walls, and Mike Sierra that uses Perl and XML technologies. The text font is Linotype Birka; the heading font is Adobe Myriad Condensed; and the code font is LucasFont's TheSans Mono Condensed. The illustrations that appear in the book were produced by Robert Romano and Jessamyn Read using Macromedia FreeHand 9 and Adobe Photoshop 6. The tip and warning icons were drawn by Christopher Bing. This colophon was written by Colleen Gorman.
This book covers patterns in various tier architectures, databases, messaging, and even antipatterns. The book presents the patterns in the context of their use. So instead of learning a pattern but not knowing where to properly use it, you know immediately the usefulness of the pattern. The book has an overview of UML so you will know how to read the design pattern when it is presented later in UML. The book's format is to explain a pattern and why it is needed, to give the pattern use in a UML diagram, then to show code for implementing the pattern. The book is comprehensive. If you are doing J2EE development, you'll find the patterns you need here with enough concrete examples to actually use the pattern in your own development. The book has a handy appendix to allow you to quickly look-up a pattern's use and its UML diagram.
i have been reading up on this topic for quite some time now. I first came across "A look inside J2EE patterns" by Nitin Bharti. The next to come was "J2EE Design Patterns" by Sue Speilman.
So far, i had been using the above two articles as reference point. The book however, does a good job of the subject. The UML diagrams have been well done (theres a small intro to UML at the beginning). What i like is the way the design patterns have been categorized into presentation and business tier.
Overall, i feel that the book could have also included some more complex examples. After all J2EE design patterns is a complex subject. I feel that the book could have done with some chapters on mixing and matching patterns depending on requirements.
Overall the job is well done and i would recommend the book to people who have yet to step into the world of patterns or are looking at learning a bit more than what they already know (like me). For those of us who are looking at something more, we will have to wait and see what oreilly comes up with next.