|< 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
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:
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.
Apache Struts framework
command and controller strategy
design see application design.
discussion forum, web based
Front Controller pattern
home page, discussion forum
Intercepting Filter pattern
J2EE (Java 2.0 Platform Enterprise Edition)
J2EE components see components.
J2EE patterns catalog
J2EE patterns see patterns.
login, command and controller strategy
login, Model 1 architecture
Model 1 (page-centric) architecture
Model 2 (programming-centric) architecture
Model-View-Controller (MVC) architecture, 5
page flow of discussion forum
page-centric architecture see Model 1 (page-centric) architecture.
programming-centric architecture see Model 2 (programming-centric) architecture.
refactoring applications, 26
request type, communicating
response, command and controller strategy
response, Model 1 architecture
Service to Worker pattern
servlets, controller component
Struts framework, Apache
user interface, web based discussion forum
View Helper pattern
web based discussion forum see discussion
|< Free Open Study >|| |