| < Free Open Study > |
|
Application design is an important facet of software development and is often neglected because of the ever-decreasing timescales of Internet development and time-to-market. Including time in the development process to perform design will ultimately save time in the long term. While it is very easy to put together a web application representing the business needs of a company, the lack of good design will result in an application that is expensive to maintain and extend.
We've covered two common architectures for building web applications in this chapter:
Model 1 - page-centric
Model 2 - programming-centric
During our discussion of these two architectures, we looked at the typical implementation strategies along with some of their characteristics, including:
Maintainability - how easy it is to keep the application running smoothly
Extensibility - the ease with which we can add new functionality to the system
Security
We then introduced some of the other J2EE components into the picture and this lead us to a discussion about how to partition functionality within the web application.
Following this we looked more closely at application design. We considered how designs are documented, introducing the concept of a design pattern, and the J2EE patterns catalog.
We then moved on to look at how a simple discussion forum application could be built using a Model 1 architecture. This was approached without any design consideration and subsequently we found some problems with authentication and duplication of business logic - both of which were intermingled within the view components - which adversely affect maintainability, extensibility and reusability.
Following on from this, we took a step back and looked at designing the application using a Model 2 architecture which makes use of a handful of J2EE patterns:
Front Controller
Intercepting Filter
View Helper
Service to Worker
We explored the purpose of these patterns and looked at how they are useful when we design our discussion forum to maximize maintainability, extensibility, and reusability During this we looked at some of the implementation strategies for these patterns and presented a new implementation for our example application.
In the next chapter we will look at how we can optimize and scale web applications effectively.
A |
---|
action classes
Apache Struts framework
application design
architectures
authentication scriptlet
authorization
|
C |
---|
class model
command and controller strategy
components
controller component
|
D |
---|
design patterns
design see application design. discussion forum, web based
|
E |
---|
entities
entity beans
extensibility
|
F |
---|
filters
Front Controller pattern
FrontController servlet
|
H |
---|
helper components
home page, discussion forum
|
I |
---|
Intercepting Filter pattern
|
J |
---|
J2EE (Java 2.0 Platform Enterprise Edition)
J2EE components see components. J2EE patterns catalog
J2EE patterns see patterns. |
L |
---|
login, command and controller strategy
login, Model 1 architecture
|
M |
---|
maintainability
Model 1 (page-centric) architecture
Model 2 (programming-centric) architecture
Model-View-Controller (MVC) architecture, 5 |
P |
---|
page flow of discussion forum
page-centric architecture see Model 1 (page-centric) architecture. password
patterns
Posting class
programming-centric architecture see Model 2 (programming-centric) architecture. |
R |
---|
refactoring applications, 26 request type, communicating
Response class
response, command and controller strategy
response, Model 1 architecture
reuseability
|
S |
---|
scriptlets
security
Service to Worker pattern
servlets
servlets, controller component
session beans
Struts framework, Apache
|
T |
---|
Topic class
Topics class
|
U |
---|
User class
user id
user interface, web based discussion forum
|
V |
---|
View Helper pattern
|
W |
---|
web based discussion forum see discussion
|
| < Free Open Study > |
|