Компьютерные сети основаны на принципе клиент-сервер, в соответствии с которым действия по обработке информации, необходимые для выполнения конкретной задачи, разделены между компьютерами, выполняющими функции клиентов или серверов. Это — прямая противоположность модели большой ЭВМ (mainframe), в которой центральный компьютер выполняет всю обработку информации и просто пересылает результаты пользователю на удаленный терминал. Сервер — это компьютер, обеспечивающий доступ к информации другим компьютерам в тот момент, когда им это потребуется. Клиент — компьютер, запрашивающий информацию у сервера. Оба термина могут быть применены как к физическим устройствам, так и к программному обеспечению.
Например, сетевые базы данных, как правило, целиком хранятся на сервере, находящемся в режиме ожидания запросов от клиентов. Пользователь на рабочей станции запускает программу-клиент, с помощью которой формулирует запросы на выборку из базы данных и отправляет их серверу. Сервер отвечает на запросы и посылает требуемую информацию рабочей станции, которая обрабатывает ее и предоставляет пользователю. В этом случае рабочие станции должны обеспечить пользовательский интерфейс и перевод требования пользователя на язык запросов, "понятный" серверу, а также прием возвращенной сервером информации и предъявление ее пользователю в понятной для него форме. Сервер может обслуживать десятки или сотни клиентов, то есть он должен быть мощным компьютером, однако, в результате перекладывания некоторых функций на рабочие станции, нагрузка на него по обработке информации даже близко не сравнима с таковой при использовании большой ЭВМ.
Операционные системы и приложения
Несмотря на то, что клиенты и серверы фактически являются программными компонентами, некоторые ассоциируют эти понятия со специфическими устройствами. Такое недоразумение возникает из-за того, что отдельные сетевые операционные системы (такие как Novell NetWare) требуют, чтобы один компьютер работал только как сервер, а остальные — только как клиенты. Операционная система типа клиент-сервер — противоположность одноранговым (peer-to-peer) системам, где каждый компьютер может быть как клиентом, так и сервером. Наиболее общей функцией, предоставляемой клиентам и серверам сетевыми операционными системами (NOS), является возможность совместного использования файловой системы, дисков и принтеров, и она-то обычно и определяет роли клиента и сервера. Например, операционная система Windows NT имеет версии для рабочей станции и для сервера, но остается одноранговой системой, так как с любого компьютера под управлением Windows NT возможен доступ к ресурсам другого компьютера с предустановленной Windows NT и совместное использование ими ресурсов. При этом не имеет значения, какая версия Windows NT используется (для рабочей станции или для сервера). Сервер с операционной системой Novell NetWare может совместно использовать собственные диски и принтеры, однако не может получить доступа к общим ресурсам на дисках клиентов. В свою очередь, клиенты системы Novell NetWare не могут предоставлять свои ресурсы для совместного использования и могут взаимодействовать только с сервером, но не с другими клиентами (рис. 1.2).