Архитектура клиент-сервер
Архитектура клиент-сервер – это сетевая архитектура, в которой взаимодействуют устройства называемые клиентами и серверами. Данная архитектура может использоваться как для физических устройств, так и для программного обеспечения зависимо от распределения логических компонентов приложения между клиентом и сервером.
В архитектуру клиент-сервер входят следующие основные компоненты:
- сервер баз данных отвечает за хранение, доступ, защиту и резервное копирование данных;
- сервер приложений - это устройство, выполняющее определенные бизнес-правила;
- клиент предоставляет интерфейс пользователя;
- сеть и коммуникационное ПО – это всевозможное оборудование, каналы для передачи данных и ПО используемое для осуществления передачи запросов и ответов от клиента к серверу и обратно через сетевые протоколы.
Использование такой архитектуры помогает оптимизировать распределение вычислительных ресурсов и обеспечивает защиту данных.
Распределенные системы и приложения
Распределенная система представляет из себя группу компьютеров, которую пользователи видят как единую объединенную систему.
Выделяют 2 аспекта распределенной системы:
- все компьютеры являются автономными;
- пользователям такая система представляется единой.
Распределенные приложения в сети Интернет, как правило, имеют в своей основе модель типа клиент-сервер – в этой модели приложения структурируют, разделяя их на серверные процессы, предоставляющие специализированные службы для клиентских процессов, при этом серверные процессы могут работать с одним или несколькими клиентами:
Хотя и клиент, и сервер теоретически могут находиться на одном компьютере, в основном системы такой архитектуры запускают клиентские процессы на одном компьютере, а процессы сервера на другом, а для того, чтобы обмениваться информацией используют сетевые связи. Такая модель позволяет одному процессу работать независимо от других, выполнять те или иные задачи и распределять вычислительную нагрузку.
Обычно в качестве клиента используется настольный ПК, который выполняет ПО конечного пользователя - это любые прикладные программы, которые направляют запрос по сети серверу и обрабатывают полученную от него информацию. Например ПК, который работает под управлением Windows и выполняет программу клиента может послать запрос серверу работающему на другой системе или же серверу баз данных. Сервер же получив запрос, выполняет те или иные действия от имени клиента.
Взаимодействие клиента и сервера в сети Интернет осуществляется при помощи запросов, которые клиент посылает серверу, и ответов, которые сервер отсылает на запрос клиента.
Исследования работы различных приложений-интернет показывают, что в 70 процентах случаев для выполнения тех или иных действий пользователю не нужно обращаться к серверу – все эти действия могут быть реализованы на стороне клиента, если их выполнение может быть на нем запрограммировано.
Преимущества архитектуры клиент-сервер
Несомненное преимущество состоит в приближенности данных к вычислительным процессам. Большая часть расчетов выполняется на стороне сервера, благодаря чему быстродействие значительно увеличивается.
Технология клиент-сервер дает большую безопасность для пользователя, процессы выполняются более стабильно, согласованно, с повышенной конфиденциальностью, данные быстро обрабатываются и надежно хранятся. Развитие системы с архитектурой клиент-сервер обязано также тому, что при подключении к недорогим серверам таких же недорогих ПК получается оптимальное соотношение стоимости и производительности.
Как правило, программа обработки данных (клиентская часть) располагается на одном ПК, а сама БД - на другом. Такое разделение вполне закономерно: клиентская часть программы (та, что находится у пользователя), передает по сети запрос на обработку данных на другой компьютер, на котором сервер базы данных их читает, выполняет, и возвращает по сети ответ клиенту. Причем по сети передается лишь полезная информация.
С другой стороны постоянно совершенствуется сам метод хранения и обработки данных, и если его реализация (то есть сервер баз данных) изменилась, то не нужно будет делать новую компиляцию с новыми библиотеками всех разработанных программ, а потребуется всего лишь произвести установку нового сервера БД и перевести базы данных в новый формат сервера.
Используя различные компьютеры, разработчики клиент-серверных систем эмулируют вычислительную мощность больших ЭВМ, распределяют прикладные задачи по разным компьютерам и серверам. Каждый из этих компьютеров берет на себя определенную вычислительную нагрузку, использует информацию совместно с другими процессорами в сети.
Но сама идея состоит в повышении мощности системы, не методом увеличения производительности одного компьютера, а обобщая возможности многих.
Быстродействие является основным фактором для разработки систем для клиент-серверной архитектуры. Использование программных средств быстрой разработки позволяет разработчикам "создавать прикладные системы для клиент-серверной архитектуры в очень короткие сроки. Реализовать клиент серверную архитектур в вашем офисе, или поддерживать текущую могут компании, проводящие абонентское обслуживание компьютеров организаций, или грамотные системные администраторы.