Before embarking on the development and deployment of a Web application, there are several broad categories of requirements that require definition. The functional project requirements address the behavior expected of the application, whereas the nonfunctional system requirements address both the hardware on which the finished application will run and the tools available for developing and deploying the application.
Before diving into a project, various questions need to be asked and answered to give the project a coherent focus. It is at this point that the project's size and scope are determined and its requirements and limitations are defined.
One of the most important points for you to ponder is the objective(s), of the project. These objectives should be the metrics used to benchmark progress and performance. Clear objectives ensure that the project stays focused and that the task at hand is clearly understood from the outset.
Begin planning your project objectives by breaking the purpose of the project into its most fundamental components, then ensure that each objective addresses the specific problems and requirements for each component. Although there will likely be other factors later that will influence the overall project plan, it is most important for you to be clear about the purpose of the project at the start.
What problems will the project solve? You must clearly bound the size of the effort for the application and establish its scope. You should determine which features will be in the application and which features will not.
In the case of the Internet Phone Directory (IPD), a sample application, these are the project objectives behind its development:
The project objectives for the application itself are:
Having these objectives in mind will assist us in thinking about the user requirements.
User requirements can be one of the most important factors for you to consider when you start any system design.
It is not enough to create an application for the sake of its own novelty. If the application doesn't address a problem or meet usability requirements, it will be worthless as a tool. This is not an exhaustive list as much as it is a reminder to ask these basic questions as research before you delve into development. In general, common sense and an honest appraisal of the fundamental problem will produce a list of questions appropriate for any project.
Developing and deploying a Web-based application is a more involved process than for a static Web site. Additional server software is required, and the server is required to perform a wider variety of processing tasks. Both of these factors, in turn, impact hardware issues. We will consider both the software and hardware requirements for a dynamic application server, special network needs for Web sites in general, and conclude with a discussion of the range of tools available for application development.
A computer destined to function as a Web server requires a variety of software before it is able to fulfill its intended purpose. Microsoft provides server software designed to offer a tightly integrated foundation on which to deploy custom Web applications. Each of the products discussed below comes with complete installation instructions and documentation. This document, therefore, will focus only on configuration issues directly related to their employment in Web services.
To ensure a positive experience with a Web application, the server hardware must be adequate to the task of assembling the pieces of dynamic documents and returning them to the client. This adequacy takes several forms. First of all, it is necessary to assemble computers that are capable of running the server software efficiently. In addition, there must be enough computing power available to handle the anticipated volume of users. After discussing the minimum hardware required to run Windows 7/Vista, MySQL/SQL Server and Internet Information Server, we will look at some guidelines for assembling and configuring the hardware for the site as a whole. Furthermore, we will make suggestion for how to monitor the site's performance and when performance statistics indicate that it is time to upgrade the existing systems.
A discussion of how to construct and configure an Internet-ready network could occupy a volume in itself. Assuming that a company already has either a local area or wide area network in place, however, adding Internet access involves two broad areas of concern to the network administrator: how to establish an Internet presence, and how to protect the existing internal network once that presence has been activated.