Клиент-сервер —это вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Фактически клиент и сервер — это программное обеспечение. Обычно эти программы расположены на разных вычислительных машинах и взаимодействуют между собой через компьютерную сеть посредством сетевых протоколов, но их можно расположить также и на одной машине . Программы — сервера, ожидают от клиентских программ запросы и предоставляют им свои ресурсы в виде данных (например, загрузка файлов посредством HTTP, FTP, BitTorrent, потоковое мультимедиа или работа с базами данных) или сервисных функций (например, работа с электронной почтой, общение посредством систем мгновенного обмена сообщениями, просмотр web-страниц во всемирной паутине). Поскольку одна программа-сервер может выполнять запросы от множества программ-клиентов, ей может потребоваться высокопроизводительная вычислительная машина. Из-за особой роли этой машины в сети, специфики её оборудования и программного обеспечения её так же называют сервером.
В клиент-серверной системе функционируют (как минимум) два приложения - клиент и сервер делящие между собой те функции которые в файл-серверной архитектуре целиком выполняет приложение на рабочей станции. Хранением и непосредственным манипулированием данными занимается сервер баз данных в качестве которого может выступать Microsoft SQL Server Oracle Sybase и т.п..
Плюсы технологии клиент сервер:
Надежность. Сервер баз данных осуществляет модификацию данных на основе механизма транзакций
Масштабируемость. Масштабируемость - способность системы адаптироваться к росту количества пользователей и объема базы данных при адекватном повышении производительности аппаратной платформы без замены программного обеспечения. Общеизвестно что возможности настольных СУБД серьезно ограничены - это пять-семь пользователей и 30-50 Мб соответственно. Цифры разумеется представляют собой некие средние значения в конкретных случаях они могут отклоняться как в ту так и в другую сторону. Что наиболее существенно эти барьеры нельзя преодолеть за счет наращивания возможностей аппаратуры. Системы же на основе серверов баз данных могут поддерживать тысячи пользователей и сотни ГБ информации - дайте им только соответствующую аппаратную платформу.
Безопасность. Сервер баз данных предоставляет мощные средства защиты данных от несанкционированного доступа невозможные в настольных СУБД. При этом права доступа администрируются очень гибко - до уровня полей таблиц. Кроме того можно вообще запретить прямое обращение к таблицам осуществляя взаимодействие пользователя с данными через промежуточные объекты - представления и хранимые процедуры. Так что администратор может быть уверен - никакой слишком умный пользователь не прочитает то что ему читать не положено.
Гибкость
В приложении работающем с данными можно выделить три логических слоя:
пользовательского интерфейса;
правил логической обработки (бизнес-правил);
управления данными
Как правило каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг которые они предоставляют.
Универсальные серверы — особый вид серверной программы не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощенный интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам.
RPC от англ. Remote Procedure Call удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный Sun Microsystems для своей операционной системы (SunOS Solaris; Unix-система) в настоящее время используется как в большинстве Unix-систем так и в Windows.
Серверы удаленного доступа. Серверы удаленного доступа через соответствующую клиентскую программу обеспечивают пользователя консольным доступом к удаленной системе. Для обеспечения доступа к командной строке служат серверы telnet RSH SSH.
Игровые серверы служат для одновременной игры нескольких пользователей в единой игровой ситуации. Некоторые игры имеют сервер в основной поставке и позволяют запускать его в невыделенном режиме.
Но проблема защиты коммуникация между сервером и клиентами не является специфичной для СУБД, она присуща всем распределенным системам. Вполне естественно, что и решения здесь ищутся общие. Ключевыми компонентами в реализации безопасности технологии клиент-сервер являются аутентификация, авторизация (проверка полномочий) и
шифрование.
Для обеспечения информационной безопасности в технологии клиент-сервер должны
приниматься следующие действия:
Защита пересылаемых данных только при установлении соединения клиента с сервером.
Защита данных только на начальном этапе выполнения удаленного вызова процедуры, когда сервер впервые получает запрос.
Подтверждение подлинности источника данных. Проверяется, что все поступающие на сервер данные получены от определенного клиента.
Подтверждение подлинности источника и целостности данных. Проверяется, что отправленные данные не были изменены.
Подтверждение подлинности источника, целостности и конфиденциальности данных.
Таким образом любая компьютерная сеть по сути является сетью клиент-сервер. Пользователь подключивший свой компьютер к Интернет будет иметь дело с сетью клиент-сервер и даже если компьютер не имеет выхода в сеть его программное обеспечение да и сам он организованы по схеме клиент-сервер.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Коржов В.В. Многоуровневые системы клиент-сервер.
Издательство Открытые системы 2007.
Титоренко Г.А. Информационные технологии управления. М., Юнити: 2012.
Мельников В. Защита информации в компьютерных системах. - М.: Финансы и статистика, Электронинформ, 2007.
www.wikipedia.ru