|
|
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
Since its inception, J2EE (Java 2 Platform, Enterprise Edition) has simplified enterprise application construction in Java. As J2EE becomes more broadly adopted, however, developers are realizing the need for defined approaches that both simplify and standardize application building. You can begin achieving that goal by standardizing your application's architectural layer.
The architectural layer generally encapsulates an application's technical complexities independent of the business logic, thereby providing a loose coupling between the business functionality and the underlying technical infrastructure. In this article, I explain an emerging method for building the application architecture for J2EE projects—one that employs design patterns to provide the standardization and simplicity that good architecture demands.
J2EE is a great infrastructure technology. It provides a uniform standard for the technology stack's lower-level tasks, such as database communication or application distribution. J2EE does not, however, lead developers to build successful applications. J2EE's creators, looking down into the technology stack, wondered: "How can we standardize these APIs?" They should have looked up at the application developers and asked: "How can I give developers the building blocks they need to focus on their business application?"
When beginning a new J2EE project, some team members often ask: "If J2EE is itself an architecture, why do we need more?" Many developers held that misconception in J2EE's early days, but seasoned J2EE developers understand that J2EE fails to provide the application architecture necessary to consistently deliver high-quality applications. These developers often use design patterns to fill that gap.
In programming, design patterns let you leverage the developer community's collective experience by sharing problems and solutions that benefit everyone. A design pattern must capture a problem's definition and context, a possible solution, and the solution's consequences.
For the purposes of J2EE application architecture, design patterns fall into two categories: general software development patterns and those patterns that identify specific J2EE challenges. J2EE-specific design patterns identify the minimal set of known problems that a solid application architecture should solve. The former group, that of software development patterns not specific to J2EE, proves equally powerful—not for identifying problems, but for guiding architecture construction.
Let's examine each area in more detail.
J2EE design patterns have been evolving over the last few years as the Java community has gained J2EE experience. These design patterns identify potential problems encountered when using the various J2EE-specified technologies and help developers construct an application architecture's requirements. The popular Front Controller design pattern, for example, transforms unstructured servlet code into a controller reminiscent of the refined GUI (graphical user interface) development.