The BluePrints consist of three basic parts:
The guidelines aim to provide an understanding of the J2EE model, its key features, and the tradeoffs involved in applying specific design features to specific architectural problems. The guidelines are presented in Sun's online book, Designing Enterprise Applications with the J2EE Platform.
The design patterns are Sun's templates for solving specific Java design issues, such as managing relationships between objects, or abstracting and encapsulating access to data sources. For example, the BluePrints pattern called "Transfer Object" is frequently used by programmers to reduce network traffic by consolidating related data that's often accessed together, but would normally require separate calls to the server. This technique makes it possible to fetch multiple values in one server query ("round trip") rather than via multiple calls, which decreases network traffic and minimizes latency and server resource usage. "It's a way to reduce the amount of network messaging that has to take place, by loading all the values into a single object," explains Larry Freeman, Sun's software engineering manager for Java BluePrints.
While the concept of the Transfer Object and other patterns such as Model-View-Controller are not unique to BluePrints, in Freeman's view, Sun's patterns offer better ways of solving such problems than do other Java patterns available to programmers. "The quality of patterns is not the same everywhere," he states. "The value of BluePrints is that it's an excellent collection made to a high standard that makes it much easier for developers to understand important Java design decisions."
For developers who must grapple with design challenges related to new technologies such as wireless or web services, Sun periodically updates its patterns collection to address those types of emerging issues, says Ralph Galantine, Sun's group marketing manager for Java Web services.
The BluePrints patterns and guidelines are put to use in four actual applications that developers can download from the BluePrints site, dissect, and borrow pieces from for use in their own projects. For example, one of the downloadable applicationsthe Java Smart Ticket Sample Applicationillustrates how to create enterprise applications that can be accessed by wireless devices such as cell phones and pagers. The current applications provide implementations for online retail, wireless access to enterprise data, wireless games, and Web services development.
"People who are working on prototypes or even major applications can take pieces of the code that are relevant to what they're doing," says Freeman.