This chapter compares and contrasts traditional and Web-based client-server development. Traditional client-server here means following a non-Web development methodology where there is client development, server development, and possibly multiple application tiers. There are many choices, so many that making a rational decision may seem impossible.
The traditional client-server application is database centric. Most client-server development tools are oriented in that direction. So, lets start at the top. The basic client-server model can be depicted as:
This diagram is used as a starting point for discussions in this section.
Client-server development requires a great deal of upfront planning and analysis; even more than normal software development projects. There are many issues and decisions that must be made either prior to starting development or as part of the initial analysis phase. Several client issues should be addressed at this point, including:
The following illustration depicts the primary client issues to consider.
The hardware/software for the client is a chicken and egg question. In some cases, the software will determine the client hardware, and in others, the hardware selection influences the software. Two primary hardware considerations are processing power (MIPS) and network bandwidth.
In todays computing world, consider a 100mz Pentium with 16MB of memory and ethernet a minimum Intel-based client configuration for normal users. Developers need high-end machines such as 200mz Pentium Pros with 32 or 64MB of memory, large (2GB+) hard drives, and large (17 inch or larger) monitors. Fast developer systems usually pay for themselves several times over during the course of a project. Recycling existing computers for clients is often done, especially at the start of a project. Resist the temptation to use 386-based PCs or 68k-based Macintoshes. In general, they just dont have the necessary speed or hardware resources. Hindering users with slow client hardware will only make users frustrated and raise resistance level to the new system.
Several tools, such as PowerBuilder, are multi-platform and can work in mixed client environments. Multi-platform tools may allow the hardware decision to be driven by considerations other than just the hardware required by a particular software development package. The most common solution is simply selecting the client hardware based on the current organizational infrastructure. Organizations that use PCs will probably choose PC-based clients, while Macintosh- or workstation-based shops are likely to stick with the client hardware they know best.