What is server?
A server is a dedicated computer for serving clients only--it should do nothing else except serving. A server should never be used for running desktop applications. The following are two of many reasons:
- Usually the cache size of a server is set to maximum. When more RAM is reserved for caching, less memory is available for applications. It is not a problem in a server because it should not be used for running applications anyway. When the cache size is maximized, running applications on the server causes problems and copying huge files within a server can cause crashing.
- Windows Server is designed with a large CPU time slice per task. The longer the CPU time slice a task has, the less chance the operating system is interrupted by other requests while handling critical network traffic. On the contrary, a Windows Workstation (Professional) uses a smaller time slice in order to provide fastest response time for each local task. Therefore, a Windows Workstation provides much faster rendering and graphic processing than a Windows Server.
The only exception is that you could treat a development server as a workstation. A development server is a mirror of the production server, also know as live server. While a production server serves the actual audience, the development server is used for code-writing and testing only. After the modules are built, debugged, and tested in an environment that is similar to the live server, the modules can be transferred to the production server. However, the default setting of a server (e.g. Windows 2000) optimizes resources for background processing (e.g. network services). In order to use a development as a workstation in an efficient manner, the performance setting should be swapped from background services to foreground application.
What is client?
The relationship between the server and the client is named client-server model. A client is a role rather than a particular type of computer hardware or software. When a server requests services from another server, the first server becomes a client. When a printer is connected to a server, the printer is also regarded as a client.
Usually a computer that functions as a client is called a workstation. However, this term may be confusing because a UNIX workstation is often used as a server. Actually, "workstation" in a network denotes a function while "workstation" in UNIX means a particular computer type.
A file server is a server that stores files for user access. Usually it also performs the function of a print server, which share network printers among users. When files are being accessed, the CPU of the client computer handles the computation.
An application server is a server that run applications using its own CPU. With the increasing popularity of Web-enabled database server, the term "application server" also means "middleware," which connects a database and the Internet. Indeed a more proper name for this type of server should be "Web application Server." For now we limit the meaning of "application server" to the first definition.
There is a common misconception that a server is considered an application server when it houses application software. However, even if I run Adobe Photoshop, MacroMedia Director from a server's hard drive, the CPU of the client computer executes the program. Instead of processing program commands, the server simply transfers the program segments from its hard drive to the workstation's RAM. Thus, copying programs to a high-power server does not speed up the execution at all because the server's CPU is not involved in the program processing. Also, installing one copy of a software program into the server and sharing it by the whole network is not the proper way to save license fee. You need to purchase site licenses for each client computer.
The correct examples of an application server are database servers that house Sybase or SQL Server. In this setup, when a client submits a query to the server, the server handles the data processing. The user may use a client software such as BrioQuery to gain access to the database server. However, the client software just provides the front end interface.
Interestingly enough, the same server running the same software can be both a file server and an application server, depending upon the access mode. Some software applications such as Lotus Notes and File Maker Pro (FMP) allow file sharing access and Web access. Take FMP as an example. When my coworker edits a FMP database on my server via file sharing, FMP in his own computer performs the computation. In this case this activity is a client access and my server is a file server. When a user accesses data through a Web browser, FMP on the server executes the parsing. In this case this activity is a Web access and my server is an application server.
Client access to File Maker Pro
Web access to File Maker Pro
The correct name for this type of server should be Internet server because besides hosting websites, usually a Web server also support other internet functions such as File Transfer Protocol (FTP) and telnet. UNIX workstations such as Sun/Solaris and SGI/Irix are usually used as Web servers for their robustness and performance. Today more and more people adopt Intel-based computers and Macintosh computers as Web servers because their cost is much lower than that of UNIX counterparts.
Besides using high-performance hardware, it is also crucial to use proper software. Although you can use a Windows Workstation as a Peer Web Server or a small-scale IntraNet, this non-server-based operating system allows only 10 concurrent users. You can also use Mac OS 8.5 rather than Mac OS X for web hosting, but Mac OS 8.5, which is made for client computing, is defaulted to go to sleep when the hard drive is idle for a while. You have to manually turn off the sleep mode to avoid unavailability of the Web server
Netware is said to be the best file and printer server, Windows is suitable to be used as an application server, Linux and UNIX are considered the ideal platforms for web server. Mac OS is not taken seriously as an operating system for servers.
Nonetheless, Windows, Netware, and Mac tried to go beyond their limitations. Windows and its associated products, such as Internet Information Server and SQL Server, have been gaining popularity in the market of Web server and database server. Netware was once renamed as IntraNetware to indicate its additional function as a Web server. Currently Netware is bundled with Netscape Web Server, IBM's WebSphere Application Server, and Oracle database in attempt to position itself as a file, Web, and application server.
Mac OS X, which is based on UNIX, may win back the hearts of networking specialists for its stability. Like what Novell did to Netware, Apple also attempted to make Mac OS X a comprehensive file, print, web, video, and database server by bundling it with Apple File Services, Apache Web Server, QuickTime Streaming Server, and WebObjects (a middleware for Internet-database connectivity). However, Mac OS X is limited by the absence of multiprocessing and clustering.
Linux is on the horizon. Linux is a UNIX-like OS running on different CPUs, including PowerPC, Intel, and MIPS. It is compact and thus efficient; it is 64-bit and thus achieves high performance. The major limitation is the lack of support for multi-processing.
If money is not an issue, you should adopt the best software-hardware combination for each type of server. If the budget is limited, you may use one computer as file server, application server, and Web server. Needless to say, it may tax the server beyond its limit. If you really need a low cost and general-purpose server, you may consider Linux and Mac OS X.
|File and printer server||Novell Netware|
|Application server||Windows 2000|
|Personal/Peer Web server||Windows Professional, Mac|
|General purpose server||Linux, Mac|