Requirements
In the workflow, we talked about how things happened in context what needs to be done when. In
contrast, the requirements itemize which features we will need to complete the workflow, without
specifying in what sequence they might be used. To borrow a concept from database development, the
requirements are a "normalized" version of the workflow.
From our simple workflow, we can determine our application's minimum requirements:
-
Store the title, author, and content of an article
-
List articles by descending entry order (newest to oldest)
-
Filter and list articles by title, author, or content
-
Authenticate contributors (via some form of login)
-
Be adaptable to any web layout
-
Be extensible to meet future requirements
-
Be easily plugged into other applications and environments
-
Run within a JSP 1.1 and Servlet 2.2 environment
Further Enhancements
In Chapter 13, we will add a full text search of author, title, keywords, and other fields, using the
Lucene search engine. In Chapter 14, we will add syndication of content (using RDF Site Summary
(RSS)) to the application.
Based on our discussion of content management, other functionality that could be useful to add to the
application would be:
-
Storing additional attributes, including topic, short description, keywords, and status code
-
Including images with an article
-
Allowing editorial approval before public release
-
Entry of articles to be displayed at a later data
-
Automatic expiration of articles
-
Including content from an uploaded HTML file
-
Integrated search of articles and other web pages
-
Support for HTTP PUT and WebDAV file transfers
-
Support a hierarchical subject structure (for example, Jakarta Slide)
While most of these features would be useful, they are not required for our initial workflow. Our goal
should then be to create an extensible, component-driven application that we can use today and
enhance tomorrow.
Design Complications
Even the simplest application comes with complications. Let's try to anticipate the design complications,
tier by tier:
Client Tier
Since it caters to public news sites, and cannot control how a browser is configured, our
application should not rely on JavaScript. If JavaScript is used, it should simply enhance the
user experience, and be simple enough to work with any browser.
-
Presentation Tier
The design of a web site often changes, so it's important that our presentation be easy to
integrate into any layout. Since custom tags look and feel like HTML, they can be easily
moved around a layout by web page authors. Our presentation should rely on custom tags,
rather than scriptlets, to display the articles.
-
Business Tier
A major feature is being able to select an assortment of articles using various criteria. It should
be easy to implement new search methods into the application.
-
Integration Tier
The current application is being designed for a Java 2 Standard Edition web server. However,
data access and helper objects (or components) should be used so that it could hook up with a
Java 2 Enterprise Edition application server instead. For more about J2EE integration, see
Chapter 9. Likewise, the SQL commands should be isolated so that they could be optimized
for a particular DBMS platform, or migrated to J2EE, if desired.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|