Архитектура клиент-сервер

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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