Разница между клиентом и сервером. Клиент и сервер


Чем отличается клиент от сервера

Современные компьютерные вычислительные и локальные сети имеют либо одноранговую (когда все узлы связаны напрямую и равноправны), либо иерархическую структуру, одним из видов которой является клиент-серверная архитектура. Представление об организации такой модели основано на понимании, чем отличается клиент от сервера, и разделении ресурсов.

  • Сравнение
  • Таблица

Сервер – компьютер, обслуживающий другие компьютеры в сети и предоставляющий им свои ресурсы для решения определенных задач.

Клиент – компьютер, использующий ресурсы сервера и предоставляющий пользователю возможность взаимодействия с системой и сетью.

Эта же схема используется при организации сетевых приложений, только в роли основных узлов выступают серверная и клиентская части софта.

Сравнение

Наглядно эту модель взаимодействия можно представить, вспомнив многопользовательские программы и игры: мы запускаем на своем устройстве клиентское приложение и видим на экране ферму, танки или собственную фотогалерею в Dropbox. Если нет подключения к глобальной или локальной сети (в зависимости от места размещения), кормить коров и сражаться в команде не получится: все файлы и данные хранятся на сервере.

В рамках небольшой домашней или офисной сети, построенной по иерархической модели, отличие клиента от сервера может лежать исключительно в плоскости программного обеспечения. Первый отправляет запросы, второй их обрабатывает и возвращает результат; все процессы осуществляются посредством установленных на компьютеры приложений. Технически машины могут быть любыми, если ПО не требует высокого уровня производительности комплектующих. Для выполнения ресурсоемких задач в качестве сервера используется мощный ПК, тогда как рабочая станция должна лишь быть удобной пользователю и обеспечивать работу коммуникационных каналов.

У компьютеров, выполняющих серверные роли в сети с большим количеством клиентов, аппаратная часть обычно усилена несколькими массивами накопителей с высокой скоростью чтения и записи данных. Также эти машины снабжены максимально возможными объемами оперативной памяти. Зато периферийные устройства для них лишние: мониторы, клавиатуры, мыши, аудиосистемы ввиду отсутствия прямого контакта с пользователем просто исключены из системы.

Итак, в чем разница между клиентом и сервером функционально? Первый инициирует работу программного обеспечения (при участии пользователя или без такового), второй ожидает от него запроса. Клиенту известен полный адрес сервера и способ обращения к нему, а тот получает сведения о клиенте после начала взаимодействия. Рабочие станции могут отключаться по расписанию или желанию пользователя, серверный ПК же работает всегда (или пока запущено серверное приложение). Неработоспособность одного из клиентов ни на что не повлияет, тогда как выход из строя серверного оборудования означает недоступность обслуживания для всех подключаемых к нему узлов сети.

к содержанию ↑

Таблица

КлиентСервер
Отправляет запросы серверу по сетиПолучает запросы, обрабатывает и возвращает результат клиенту
Установлено клиентское ПОУстановлено серверное ПО
Требования к аппаратным ресурсам системы минимальныВ зависимости от количества клиентов и сложности задач требует соответствующей производительности
Напрямую взаимодействует с пользователемНе взаимодействует с пользователем, поэтому может не иметь периферийных устройств
Может включаться и отключаться произвольноРаботает всегда, пока есть необходимость обслуживания клиентов
Заранее известен способ обращения к серверу и его адресПолучает сведения о клиенте из запроса

thedifference.ru

сервер - это... Что такое Клиент-сервер?

Пример двухуровневой архитектуры.

Клиент-сервер (англ. Client-server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.

Преимущества

  • Отсутствие дублирования кода программы-сервера программами-клиентами.
  • Так как все вычисления выполняются на сервере, то требования к компьютерам на которых установлен клиент снижаются.
  • Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.
  • Позволяет объединить различные клиенты. Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т. п.
  • Позволяет разгрузить сети за счёт того, что между сервером и клиентом передаются небольшие порции данных.

Недостатки

  • Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. Неработоспособным сервером следует считать сервер, производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся на ремонте, профилактике и т. п.
  • Поддержка работы данной системы требует отдельного специалиста — системного администратора.
  • Высокая стоимость оборудования.

Многоуровневая архитектура клиент-сервер

Многоуровневая архитектура клиент-сервер — разновидность архитектуры клиент-сервер, в которой функция обработки данных вынесена на один или несколько отдельных серверов. Это позволяет разделить функции хранения, обработки и представления данных для более эффективного использования возможностей серверов и клиентов.

Частные случаи многоуровневой архитектуры:

Сеть с выделенным сервером

Сеть с выделенным сервером (англ. Client/Server network) — это локальная вычислительная сеть (LAN), в которой сетевые устройства централизованы и управляются одним или несколькими серверами. Индивидуальные рабочие станции или клиенты (такие, как ПК) должны обращаться к ресурсам сети через сервер(ы).

Литература

Валерий Коржов Многоуровневые системы клиент-сервер. Издательство Открытые системы (17 июня 1997). Архивировано из первоисточника 26 августа 2011. Проверено 31 января 2010.

см. также

biograf.academic.ru

Клиент-сервер Википедия

Пример двухуровневой архитектуры

«Клиент — сервер» (англ. client–server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Фактически клиент и сервер — это программное обеспечение. Обычно эти программы расположены на разных вычислительных машинах и взаимодействуют между собой через вычислительную сеть посредством сетевых протоколов, но они могут быть расположены также и на одной машине. Программы-серверы ожидают от клиентских программ запросы и предоставляют им свои ресурсы в виде данных (например, загрузка файлов посредством HTTP, FTP, BitTorrent, потоковое мультимедиа или работа с базами данных) или в виде сервисных функций (например, работа с электронной почтой, общение посредством систем мгновенного обмена сообщениями или просмотр web-страниц во всемирной паутине). Поскольку одна программа-сервер может выполнять запросы от множества программ-клиентов, её размещают на специально выделенной вычислительной машине, настроенной особым образом, как правило, совместно с другими программами-серверами, поэтому производительность этой машины должна быть высокой. Из-за особой роли такой машины в сети, специфики её оборудования и программного обеспечения, её также называют сервером, а машины, выполняющие клиентские программы, соответственно, клиентами.

Преимущества

  • Отсутствие дублирования кода программы-сервера программами-клиентами.
  • Так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, снижаются.
  • Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще организовать контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.

Недостатки

  • Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. Неработоспособным сервером следует считать сервер, производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся на ремонте, профилактике и т. п.
  • Поддержка работы данной системы требует отдельного специалиста — системного администратора.
  • Высокая стоимость оборудования.

Многоуровневая архитектура «клиент — сервер»

Многоуровневая архитектура «клиент — сервер» — разновидность архитектуры «клиент — сервер», в которой функция обработки данных вынесена на один или несколько отдельных серверов. Это позволяет разделить функции хранения, обработки и представления данных для более эффективного использования возможностей серверов и клиентов.

Частные случаи многоуровневой архитектуры:

Сеть с выделенным сервером

Сеть с выделенным сервером (англ. client/server network) — это локальная вычислительная сеть (LAN), в которой сетевые устройства централизованы и управляются одним или несколькими серверами. Индивидуальные рабочие станции или клиенты (такие, как ПК) должны обращаться к ресурсам сети через сервер(а).

См. также

Литература

Валерий Коржов. Многоуровневые системы клиент-сервер. Издательство Открытые системы (17 июня 1997). Проверено 31 января 2010. Архивировано 26 августа 2011 года.

wikiredia.ru

Клиент и сервер | Блог только про Java

Главная идея, лежащая в основе всех технологий распределенного программирования, выглядит довольно просто. Клиентский компьютер создаст запрос и отправляет его по сети серверу. Тот обрабатывает и отправляет ответ обратно клиенту для дальнейшего анализа. Весь этот процесс схематично показан на рис.1.

Вначале хотелось бы отметить, что подобные запросы и ответы не являются такими же, как те, что применяются в Web-приложениях. В роли клиента в данном случае выступает не Web-браузер. Это может быть любое приложение, реализующее бизнес-правила любой сложности. Это клиентское приложение может как предусматривать, так и не предусматривать взаимодействие с пользователе, а если предусматривает, то может иметь как интерфейс командной строки, так и графический интерфейс типа Swing.

Применяемый им для передач запросов и ответов протокол должен поддерживать пересылку произвольных объектов, в то время как в традиционных Web-приложениях для запросов может применяться только HTTP, а для ответов - только HTML.

То есть разработчикам клиентских программ необходим механизм, с помощью которого они могли бы делать обычные вызовы методов, не волнуясь ни о пересылке данных по сети, ни о выполнении синтаксического анализа ответных данных. Для них решением является установка на клиента так называемого прокси-объекта(proxy object). Прокси-объект это такой объект, который размещается на виртуальной машине клиента и выглядит для клиентской программы так, будто бы он является удаленным объектом. Клиент может вызывать этот прокси-объект путем выполнения обычного вызова метода, а тот затем уже связываться с сервером посредством сетевого протокола.

Точно так же разработчикам служб необходим механизм, который бы позволял им не беспокоиться об обмене данными с клиентами. Для них решением является установка на сервере второго прокси-объекта. Прокси-объект сервера может взаимодействовать с прокси-объектом клиента и выполнять обычные вызовы методов для обмена данными  объектом, реализующим службу которая показана на рис.2.

Каким образом прокси-объекты могут взаимодействовать друг с другом? Это зависит от применяемой для их реализации технологии. Наиболее распространенным являются три следующих варианта:

  • Технология Java RMI(Remote Method Invocation - удаленный вызов методов), которая позволяет обеспечивать вызов методов между распределенными объектами Java.
  • Технология CORBA(Common Object Request Broker Arhitecture - общая архитектура посредника запросов к объектам), которая позволяет обеспечивать вызов методов между объектами, написанными на любом языке программирования. Взаимодействие между объектами в этой технологии реализуется на основе протокола IIOP(Internet Inter-ORB Protocol).
  • Архитектура Web-служб, которая представляет собой целую коллекцию протоколов, часто в общем описываемых с помощью префикса WS-*. Она тоже подходит для объектов, написанных на любом языке программирования, однако для обеспечения взаимодействия между ними предусматривает применение форматов, основанных на XML. Форматом для передачи объектов является SOAP(Simple Object Access Protocol - простой протокол доступа к объектам).

В случае реализации рассчитанных или взаимодействие программ с помощью кода Java, в универсальности и сложности CORBA и WS-* нет абсолютно никакой необходимости. Такой простой механизм, как RMI, был специально разработан компанией Sun для обеспечения возможности взаимодействия между приложениями Java.

Познакомиться с технологией RMI стоит даже тем, кто и не планирует применять его в своих собственных программах. Это позволит изучить все важные для программирования распределенных приложений механизмы на примере довольно простой архитектуры. Более того, тем, кто пользуется Java-технологиями уровня предприятия, тоже будет очень полезно получить хотя бы общее представление о RMI, поскольку там именно этот протокол и применяется для обеспечения взаимодействия между been-компонентами уровня предприятия(Enterprise Java Beans - EJB).

EJB-компоненты - это применяемые на стороне сервера компоненты, которые создаются для образования сложных приложений, работающих на множестве серверов. Дабы эффективно использовать, потребуется хорошо разбираться в сопряженных с удаленными вызовами затратах.

В отличие от RMI, технология CORBA и WS-* не требуют использования никакого конкретного языка программирования. Они позволяются создавать клиентские и серверные программы на C, C++, Java и любом другом языке программирования. От разработчика ожидается предоставление описания интерфейса с указанием сигнатур методов и типов данных, которые его объекты способны обрабатывать. Это описание должно составляться на специальном языке, называемом IDL(Interface Definition Language - язык описания интерфейсов), если речь идет о CORBA, или WSDL(Web Services Description Language - язык описания Web-служб), если речь идет о WS-*.

На протяжении многих лет довольно много людей считали CORBA объектной моделью будущего. Однако сегодня, откровенно говоря, CORBA имеет репутацию(порой вполне заслуженной) архитектуры с низкой производительностью, сложной реализацией и проблемами взаимодействия, потому не пользуется особым успехом.

Web-службы тоже считались не менее перспективными, когда только появились, поскольку имели более простой вид и, конечно же, основывались на эффективных возможностях WWW и XML. Однако по прошествии времени после доработок многих комитетов стек протоколов Web-служб стал выглядеть гораздо сложнее и включать многие из тех же возможностей, которые уже давно присутствовал и CORBA.

Протокол на базе XML хорош тем, что данные(достаточно) понятными для человека и тем самым упрощает процесс отладки. Однако с другой стороны, обработка XML-данных существенно снижает производительность. Недавно стек WS-* утратил довольно приличную долю своей привлекательностью и стал тоже обзаводится(порой вполне заслуженно) репутацией сложной для реализации технология с массой проблем в области обеспечения взаимодействия.

pro-java.ru

Сети типа клиент-сервер и файл сервер.

Архитектура "файл-сервер"При работе в архитектуре "файл-сервер" база данных и приложение расположены на файловом сервере сети. Возможна многопользовательская работа с одной и той же базе данных, когда каждый пользователь со своего компьютера запускает приложение, расположенное на сетевом сервере. Тогда на компьютере пользователя запускается копия приложения. По каждому запросу к базе данных из приложения данные из таблиц базы данных перегоняются на компьютер пользователя, независимо от того, сколько реально нужно данных для выполнения запроса. После этого выполняется запрос.Каждый пользователь имеет на своем компьютере локальную копию данных, время от времени обновляемых из реальной базы данных, расположенной на сетевом сервере. При этом изменения, которые каждый пользователь вносит в базу данных, могут быть до определенного момента неизвестны другим пользователям, что делает актуальной задачу систематического обновления данных на компьютере пользователя из реальной базы данных. Другой актуальной задачей является блокирование записей, которые изменяются одним из пользователей; это необходимо для того, чтобы в это время другой пользователь не внес изменений в те же данные.В архитектуре "файл-сервер" вся тяжесть выполнения запросов к базе данных и управления целостностью базы данных ложится на приложение пользователя. База данных на сервере является пассивным источником данных.

Недостатки архитектуры "файл-сервер" решаются при переводе приложений в архитектуру "клиент-сервер". Характерной особенностью архитектуры "клиент-сервер" является перенос вычислительной нагрузки на сервер базы данных (sql-сервер) и максимальная разгрузка приложения клиента от вычислительной работы, а также существенное укрепление безопасности данных – как от злонамеренных, так и просто ошибочных изменений. БД в этом случае помещается на сетевом сервере, как и в архитектуре "файл-сервер", однако прямого доступа к базе данных (БД) из приложений не происходит. Функция прямого обращения к БД осуществляет специальная управляющая программа – сервер БД (sql-сервер) , поставляемый разработчиком СУБД.Архитектура "клиент-сервер" предназначена для работы с удаленными БД, состоит из приложения клиента, расположенного на компьютере пользователя, а также удаленной БД и СУБД, располагающихся на удаленном компьютере в глобальной сети (сервере) .Архитектура "клиент-сервер" разделяет функции приложения пользователя (называемого клиентом) и сервера.

Функциями приложения-клиента являются:- Посылка к серверу запросов;- Интерпретация результатов запросов, полученных от сервера, и представление их пользователю в требуемой форме;- Реализация интерфейса пользователя.Sql-сервер должен быть загружен на момент принятия запроса клиента. Функциями сервера БД являются:- Прием запросов от приложений-клиентов, интерпретация запросов, выполнение запросов в БД, отправка результата выполнения запроса клиенту;- Управление целостностью БД, обеспечение системы безопасности, блокировка неверных действий приложений-клиентов;- Обеспечение одновременной безопасной от отказоустойчивой многопользовательской работы с одними и теми же данными

otvet.mail.ru

Клиент-сервер Википедия

Пример двухуровневой архитектуры

«Клиент — сервер» (англ. client–server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Фактически клиент и сервер — это программное обеспечение. Обычно эти программы расположены на разных вычислительных машинах и взаимодействуют между собой через вычислительную сеть посредством сетевых протоколов, но они могут быть расположены также и на одной машине. Программы-серверы ожидают от клиентских программ запросы и предоставляют им свои ресурсы в виде данных (например, загрузка файлов посредством HTTP, FTP, BitTorrent, потоковое мультимедиа или работа с базами данных) или в виде сервисных функций (например, работа с электронной почтой, общение посредством систем мгновенного обмена сообщениями или просмотр web-страниц во всемирной паутине). Поскольку одна программа-сервер может выполнять запросы от множества программ-клиентов, её размещают на специально выделенной вычислительной машине, настроенной особым образом, как правило, совместно с другими программами-серверами, поэтому производительность этой машины должна быть высокой. Из-за особой роли такой машины в сети, специфики её оборудования и программного обеспечения, её также называют сервером, а машины, выполняющие клиентские программы, соответственно, клиентами.

Преимущества[ | ]

  • Отсутствие дублирования а программы-сервера программами-клиентами.
  • Так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, снижаются.
  • Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще организовать контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.

Недостатки[ | ]

  • Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. Неработоспособным сервером следует считать сервер, производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся на ремонте, профилактике и т. п.
  • Поддержка работы данной системы требует отдельного специалиста — системного администратора.
  • Высокая стоимость оборудования.

Многоуровневая архитектура «клиент — сервер»[ |

ru-wiki.ru

Клиент-серверная архитектура, клиентские части?

Архитектура клиент-сервер – это сетевая архитектура, в которой взаимодействуют устройства называемые клиентами и серверами. Данная архитектура может использоваться как для физических устройств, так и для программного обеспечения зависимо от распределения логических компонентов приложения между клиентом и сервером.

В архитектуру клиент-сервер входят следующие основные компоненты:

  • сервер баз данных отвечает за хранение, доступ, защиту и резервное копирование данных;
  • сервер приложений - это устройство, выполняющее определенные бизнес-правила;
  • клиент предоставляет интерфейс пользователя;
  • сеть и коммуникационное ПО – это всевозможное оборудование, каналы для передачи данных и ПО используемое для осуществления передачи запросов и ответов от клиента к серверу и обратно через сетевые протоколы.

Использование такой архитектуры помогает оптимизировать распределение вычислительных ресурсов и обеспечивает защиту данных.

Распределенные системы и приложения

Распределенная система представляет из себя группу компьютеров, которую пользователи видят как единую объединенную систему.

Выделяют 2 аспекта распределенной системы:

  • все компьютеры являются автономными;
  • пользователям такая система представляется единой.

Распределенные приложения в сети Интернет, как правило, имеют в своей основе модель типа клиент-сервер – в этой модели приложения структурируют, разделяя их на серверные процессы, предоставляющие специализированные службы для клиентских процессов, при этом серверные процессы могут работать с одним или несколькими клиентами:

Хотя и клиент, и сервер теоретически могут находиться на одном компьютере, в основном системы такой архитектуры запускают клиентские процессы на одном компьютере, а процессы сервера на другом, а для того, чтобы обмениваться информацией используют сетевые связи. Такая модель позволяет одному процессу работать независимо от других, выполнять те или иные задачи и распределять вычислительную нагрузку.

Обычно в качестве клиента используется настольный ПК, который выполняет ПО конечного пользователя - это любые прикладные программы, которые направляют запрос по сети серверу и обрабатывают полученную от него информацию. Например ПК, который работает под управлением Windows и выполняет программу клиента может послать запрос серверу работающему на другой системе или же серверу баз данных. Сервер же получив запрос, выполняет те или иные действия от имени клиента.

Взаимодействие клиента и сервера в сети Интернет осуществляется при помощи запросов, которые клиент посылает серверу, и ответов, которые сервер отсылает на запрос клиента. Исследования работы различных приложений-интернет показывают, что в 70 процентах случаев для выполнения тех или иных действий пользователю не нужно обращаться к серверу – все эти действия могут быть реализованы на стороне клиента, если их выполнение может быть на нем запрограммировано.

Преимущества архитектуры клиент-сервер

Несомненное преимущество состоит в приближенности данных к вычислительным процессам. Большая часть расчетов выполняется на стороне сервера, благодаря чему быстродействие значительно увеличивается.

Технология клиент-сервер дает большую безопасность для пользователя, процессы выполняются более стабильно, согласованно, с повышенной конфиденциальностью, данные быстро обрабатываются и надежно хранятся. Развитие системы с архитектурой клиент-сервер обязано также тому, что при подключении к недорогим серверам таких же недорогих ПК получается оптимальное соотношение стоимости и производительности.

Как правило, программа обработки данных (клиентская часть) располагается на одном ПК, а сама БД - на другом. Такое разделение вполне закономерно: клиентская часть программы (та, что находится у пользователя), передает по сети запрос на обработку данных на другой компьютер, на котором сервер базы данных их читает, выполняет, и возвращает по сети ответ клиенту. Причем по сети передается лишь полезная информация.

С другой стороны постоянно совершенствуется сам метод хранения и обработки данных, и если его реализация (то есть сервер баз данных) изменилась, то не нужно будет делать новую компиляцию с новыми библиотеками всех разработанных программ, а потребуется всего лишь произвести установку нового сервера БД и перевести базы данных в новый формат сервера.

Используя различные компьютеры, разработчики клиент-серверных систем эмулируют вычислительную мощность больших ЭВМ, распределяют прикладные задачи по разным компьютерам и серверам. Каждый из этих компьютеров берет на себя определенную вычислительную нагрузку, использует информацию совместно с другими процессорами в сети.

Но сама идея состоит в повышении мощности системы, не методом увеличения производительности одного компьютера, а обобщая возможности многих.

Быстродействие является основным фактором для разработки систем для клиент-серверной архитектуры. Использование программных средств быстрой разработки позволяет разработчикам "создавать прикладные системы для клиент-серверной архитектуры в очень короткие сроки. Реализовать клиент серверную архитектур в вашем офисе, или поддерживать текущую могут компании, проводящие абонентское обслуживание компьютеров организаций, или грамотные системные администраторы.

www.servicemobil.ru