Образовательная программа компании Global Inform. Украина, Харьков
Серверы и клиенты Еще одной важной концепцией является понимание того, что структура Internet образуется серверами и клиентами. Сервер - это компьютер, выполняющий какие-то операции для другого компьютера, а клиент - это машина, запрашивающая такие действия. Это доста- точно широкое, но вполне уместное определение, ведь спектр опера- ций, выполняемых между клиентом и сервером практически неограни- чен. В отношении клиент/сервер нужно прежде всего учитывать, что клиенту не важно, как выполнит свою задачу сервер, он желает лишь получить результат. Например, клиент может запросить у сервера конкретный файл. Если этот файл находится на серверном компьютере, то сервер прос- то считывает файл с диска и передает его клиенту. Однако если данный файл на сервере отсутствует, но сервер знает, где найти его, то он находит этот файл и также передает его клиенту. В обо- их случаях клиент получает то, что ему требовалось - запрошенный файл. Если сервер не может выполнить данный запрос клиента, то он должен соответствующим способом информировать об такой ситуации и желательно, чтобы при этом как то пояснялась причина. Этот пример описывает лишь простейшее взаимодействие кли- ент/сервер. Чтобы сервер выполнял поиск в базе данных и генериро- вал отчет с результатами, может потребоваться более сложное дейс- твие. Однако в этом случае клиенту также неважно, какая программа используется на сервере для поиска в базе данных или создания от- чета и может быть даже и то, где находится база данных. Предполо- жим, что пользователь компьютера C (клиент) запрашивает в компь- ютере S (сервер) результаты поиска в базе данных. Компьютеру S может быть неизвестно как выполнять поиск, но он знает, как зап- росить поиск в базе данных у компьютера X. Компьютер X ищет нуж- ные данные с помощью программы A, создает отчет, используя прог- рамму B, и посылает этот отчет C. Обратите внимание, что сервером C является S, но S в, свою очередь, будет клиентом для X. Для In- ternet это весьма типичный случай взаимодействия. Такие взаимодействия могут выглядеть достаточно запутанно, но они облегчают получение информации в Internet. Если вы хотите получить ответ на конкретный вопрос, то вам не важно, находится ли нужная информация в вашем компьютере или на удаленном, и вряд ли вы заходите изучать, как нужно искать ее. Чем более мощным и интеллектуальным будет сервер, с которым вы связаны (или тот сер- вер, для которого ваш сервер выступает в роли клиента), тем выше вероятность быстрого получения ответа. При наличии в Internet ты- сяч интеллектуальных систем поиск ответов значительно облегчает- ся.