
J2EE AntiPatterns
Wiley (Publisher)
1st Edition
Published on 22. August 2003
Book
Paperback/Softback
624 pages
978-0-471-14615-5 (ISBN)
Description
"The flip-side of Patterns, AntiPatterns provide developers with formal descriptions of common development gaffes that can derail a project along with practical guidelines on how to avoid them. In this book, the authors present dozens of Java AntiPatterns that tackle many of Java's biggest trouble spots for programming with EJB, JSP, Servlets, and more. Each AntiPattern is documented with real-world examples, code, and refactored (or escape-route) solutions, and the book uses UML (where appropriate) to diagram improved solutions. All code examples from the book are available to the reader on the book's companion Web site."
More details
Edition
1., Auflage
Language
English
Place of publication
New York
United States
Publishing group
John Wiley and Sons Ltd
Target group
Professional and scholarly
Illustrations
Illustrations
Dimensions
Height: 23.2 cm
Width: 18.8 cm
Thickness: 34 mm
Weight
918 gr
ISBN-13
978-0-471-14615-5 (9780471146155)
Schweitzer Classification
Other editions
Additional editions

Bill Dudney | Stephen Asbury | Joseph K. Krozak
J2EE AntiPatterns
E-Book
08/2003
Wiley
€35.99
Available for download
Persons
BILL DUDNEY is a Java architect who's been building J2EE applications for five years and distributed computing solutions for 14. He is co-author of Jakarta(r) Pitfalls (Wiley).
STEPHEN ASBURY is co-author of Developing Java(TM) Enterprise Applications and author of Enterprise Linux(r) at Work (both from Wiley), as well as four other books on development technology.
JOSEPH K. KROZAK is Vice President of Technology Development for Krozak Information Technologies, Inc., a supplier of advanced software solutions to Fortune 500 and mid-market companies.
KEVIN WITTKOPF has been a software architect and developer for more than seventeen years. He focuses on enterprise integration, Web services, messaging, and service-based architecture.
STEPHEN ASBURY is co-author of Developing Java(TM) Enterprise Applications and author of Enterprise Linux(r) at Work (both from Wiley), as well as four other books on development technology.
JOSEPH K. KROZAK is Vice President of Technology Development for Krozak Information Technologies, Inc., a supplier of advanced software solutions to Fortune 500 and mid-market companies.
KEVIN WITTKOPF has been a software architect and developer for more than seventeen years. He focuses on enterprise integration, Web services, messaging, and service-based architecture.
Content
Acknowledgments
Foreword
Author Bios
Introduction
Chapter 1: Distribution and Scaling
AntiPattern: Localizing Data
AntiPattern: Misunderstanding Data Requirements
AntiPattern: Miscalculating Bandwidth Requirements
AntiPattern: Overworked Hubs
AntiPattern: The Man with the Axe
Refactorings
Plan Ahead
Choose the Right Data Architecture
Partition Data and Work
Plan for Scaling (Enterprise-Scale Object Orientation)
Plan Realistic Network Requirements
Use Specialized Networks
Be Paranoid
Throw Hardware at the Problem
Chapter 2: Persistence
AntiPattern: Dredge
AntiPattern: Crush
AntiPattern: DataVision
AntiPattern: Stifle
Refactorings
Light Query
Version
Component View
Pack
Chapter 3: Service-Based Architecture
AntiPattern: Multiservice
AntiPattern: Tiny Service
AntiPattern: Stovepipe Service
AntiPattern: Client Completes Service
Refactorings
Interface Partitioning
Interface Consolidation
Technical Services Layer
Cross-Tier Refactoring
Chapter 4: JSP Use and Misuse
AntiPattern: Ignoring Reality
AntiPattern: Too Much Code
AntiPattern: Embedded Navigational Information
AntiPattern: Copy and Paste JSP
AntiPattern: Too Much Data in Session
AntiPattern: Ad Lib TagLibs
Refactorings
Beanify
Introduce Traffic Cop
Introduce Delegate Controller
Introduce Template
Remove Session Access
Remove Template Text
Introduce Error Page
Chapter 5: Servlets
AntiPattern: Including Common Functionality in Every Servlet
AntiPattern: Template Text in Servlet
AntiPattern: Using Strings for Content Generation
AntiPattern: Not Pooling Connections
AntiPattern: Accessing Entities Directly
Refactorings
Introduce Filters
Use JDom
Use JSPs
Chapter 6: Entity Beans
AntiPattern: Fragile Links
AntiPattern: DTO Explosion
AntiPattern: Surface Tension
AntiPattern: Coarse Behavior
AntiPattern: Liability
AntiPattern: Mirage
Refactorings
Local Motion
Alias
Exodus
Flat View
Strong Bond
Best of Both Worlds
Façade
Chapter 7: Session EJBs
AntiPattern: Sessions A-Plenty
AntiPattern: Bloated Session
AntiPattern: Thin Session
AntiPattern: Large Transaction
AntiPattern: Transparent Façade
AntiPattern: Data Cache
Refactorings
Session Façade
Split Large Transaction
Chapter 8: Message-Driven Beans
AntiPattern: Misunderstanding JMS
AntiPattern: Overloading Destinations
AntiPattern: Overimplementing Reliability
Refactorings
Architect the Solution
Plan Your Network Data Model
Leverage All Forms of EJBs
Chapter 9: Web Services
AntiPattern: Web Services Will Fix Our Problems
AntiPattern: When in Doubt, Make It a Web Service
AntiPattern: God Object Web Service
AntiPattern: Fine-Grained/Chatty Web Service
AntiPattern: Maybe It's Not RPC
AntiPattern: Single-Schema Dream
AntiPattern: SOAPY Business Logic
Refactorings
RPC to Document Style
Schema Adaptor
Web Service Business Delegate
Chapter 10: J2EE Services
AntiPattern: Hard-Coded Location Identifiers
AntiPattern: Web = HTML
AntiPattern: Requiring Local Native Code
AntiPattern: Overworking JNI
AntiPattern: Choosing the Wrong Level of Detail
AntiPattern: Not Leveraging EJB Containers
Refactorings
Parameterize Your Solution
Match the Client to the Customer
Control the JNI Boundary
Fully Leverage J2EE Technologies
Appendix A AntiPatterns Catalog
Distribution and Scaling AntiPatterns
Persistence AntiPatterns
Service-Based Architecture AntiPatterns
JSP Use and Misuse AntiPatterns
Servlet AntiPatterns
Entity Bean AntiPatterns
Session EJB AntiPatterns
Message-Driven Bean AntiPatterns
Web Services AntiPatterns
J2EE Service AntiPatterns
Appendix B: Refactorings Catalog
Distribution and Scaling Refactorings
Persistence Refactorings
Service-Based Architecture Refactorings
JSP Use and Misuse Refactorings
Servlet Refactorings
Entity Bean Refactorings
Session EJBs Refactorings
Message-Driven Bean Refactorings
Web Service Refactorings
J2EE Service Refactorings
Appendix C: What's on the Web Site
System Requirements
What's on the Web Site
References
Index
Foreword
Author Bios
Introduction
Chapter 1: Distribution and Scaling
AntiPattern: Localizing Data
AntiPattern: Misunderstanding Data Requirements
AntiPattern: Miscalculating Bandwidth Requirements
AntiPattern: Overworked Hubs
AntiPattern: The Man with the Axe
Refactorings
Plan Ahead
Choose the Right Data Architecture
Partition Data and Work
Plan for Scaling (Enterprise-Scale Object Orientation)
Plan Realistic Network Requirements
Use Specialized Networks
Be Paranoid
Throw Hardware at the Problem
Chapter 2: Persistence
AntiPattern: Dredge
AntiPattern: Crush
AntiPattern: DataVision
AntiPattern: Stifle
Refactorings
Light Query
Version
Component View
Pack
Chapter 3: Service-Based Architecture
AntiPattern: Multiservice
AntiPattern: Tiny Service
AntiPattern: Stovepipe Service
AntiPattern: Client Completes Service
Refactorings
Interface Partitioning
Interface Consolidation
Technical Services Layer
Cross-Tier Refactoring
Chapter 4: JSP Use and Misuse
AntiPattern: Ignoring Reality
AntiPattern: Too Much Code
AntiPattern: Embedded Navigational Information
AntiPattern: Copy and Paste JSP
AntiPattern: Too Much Data in Session
AntiPattern: Ad Lib TagLibs
Refactorings
Beanify
Introduce Traffic Cop
Introduce Delegate Controller
Introduce Template
Remove Session Access
Remove Template Text
Introduce Error Page
Chapter 5: Servlets
AntiPattern: Including Common Functionality in Every Servlet
AntiPattern: Template Text in Servlet
AntiPattern: Using Strings for Content Generation
AntiPattern: Not Pooling Connections
AntiPattern: Accessing Entities Directly
Refactorings
Introduce Filters
Use JDom
Use JSPs
Chapter 6: Entity Beans
AntiPattern: Fragile Links
AntiPattern: DTO Explosion
AntiPattern: Surface Tension
AntiPattern: Coarse Behavior
AntiPattern: Liability
AntiPattern: Mirage
Refactorings
Local Motion
Alias
Exodus
Flat View
Strong Bond
Best of Both Worlds
Façade
Chapter 7: Session EJBs
AntiPattern: Sessions A-Plenty
AntiPattern: Bloated Session
AntiPattern: Thin Session
AntiPattern: Large Transaction
AntiPattern: Transparent Façade
AntiPattern: Data Cache
Refactorings
Session Façade
Split Large Transaction
Chapter 8: Message-Driven Beans
AntiPattern: Misunderstanding JMS
AntiPattern: Overloading Destinations
AntiPattern: Overimplementing Reliability
Refactorings
Architect the Solution
Plan Your Network Data Model
Leverage All Forms of EJBs
Chapter 9: Web Services
AntiPattern: Web Services Will Fix Our Problems
AntiPattern: When in Doubt, Make It a Web Service
AntiPattern: God Object Web Service
AntiPattern: Fine-Grained/Chatty Web Service
AntiPattern: Maybe It's Not RPC
AntiPattern: Single-Schema Dream
AntiPattern: SOAPY Business Logic
Refactorings
RPC to Document Style
Schema Adaptor
Web Service Business Delegate
Chapter 10: J2EE Services
AntiPattern: Hard-Coded Location Identifiers
AntiPattern: Web = HTML
AntiPattern: Requiring Local Native Code
AntiPattern: Overworking JNI
AntiPattern: Choosing the Wrong Level of Detail
AntiPattern: Not Leveraging EJB Containers
Refactorings
Parameterize Your Solution
Match the Client to the Customer
Control the JNI Boundary
Fully Leverage J2EE Technologies
Appendix A AntiPatterns Catalog
Distribution and Scaling AntiPatterns
Persistence AntiPatterns
Service-Based Architecture AntiPatterns
JSP Use and Misuse AntiPatterns
Servlet AntiPatterns
Entity Bean AntiPatterns
Session EJB AntiPatterns
Message-Driven Bean AntiPatterns
Web Services AntiPatterns
J2EE Service AntiPatterns
Appendix B: Refactorings Catalog
Distribution and Scaling Refactorings
Persistence Refactorings
Service-Based Architecture Refactorings
JSP Use and Misuse Refactorings
Servlet Refactorings
Entity Bean Refactorings
Session EJBs Refactorings
Message-Driven Bean Refactorings
Web Service Refactorings
J2EE Service Refactorings
Appendix C: What's on the Web Site
System Requirements
What's on the Web Site
References
Index