Client-File Server
As more and more PCs appeared in the enterprise, the problem of vertical links to host computers was compounded by the need for horizontal connections to other PC users in a department or section. If PC users could be linked directly together, they could share files and printers. Productivity would go up. The pressure for local sharing of resources was such that the first LANs were very much horizontally oriented by connecting the PC to a new type of computer called a server for the purpose of sharing files and printers and for PC-to-PC connections.
The client-file server model reverses that of the terminal-host system. In this case, all of the processing is done on the local machine (the client). In a classic client-file server setup, the client is running, but the file is held on the server. When the user requests the file, it is copied over the wire to the client, where it is placed until it is saved. During this time, the server is responsible for ensuring that no one else can use the same file, since this could cause corrupted data. It means that the file is locked. The server software will also maintain user privileges, it means that some users won’t be able to see or write some files. There are at least two advantages. First, keeping the file on the server allows multiple users to access it. Second, a file kept on the server can be backed up regularly, overnight, or more often in critical situations.
One of examples of Client-File server is a multi-user database. In the file server model, the user runs the full database manager application on the PC. In this case the server, working with the server version of the database software, will have a more active role. Allowing the entire database to be copied to the user’s PC for manipulation would cause some serious problems. Fist, database files tend to be large, and moving them back and forth every time the file was opened or saved would use a lot of the LAN’s bandwidth. Second, and more important, if the database is multi-user, having the entire file copied from the server to the client would make it inaccessible to other clients as long as it was being accessed. This would be very inefficient, especially if has the tasks of determining when a specific record is in use. When the client moves on to another record, the lock is released. Making software do this efficiently isn’t as easy as it sounds, but record-locking databases were a major success in Client-File server systems.