- 2. Технология «клиент-сервер»
- Глава 4. Модель «клиент-сервер» и её реализация в компьютерных сетях
- 4.1. Определение модели «клиент-сервер»
- 4.2. Виды сетевых служб
- 1. Основные программные и аппаратные компоненты сети. Понятия «клиент», «сервер», «сетевая служба».
- 1. Основные программные и аппаратные компоненты сети. Понятия «клиент», «сервер», «сетевая служба».
2. Технология «клиент-сервер»
«Клиент-сервер» — это модель взаимодействия компьютеров в сети. Как правило, компьютеры не являются равноправными. Каждый из них имеет свое, отличное от других, назначение, играет определенную роль. Некоторые компьютеры в сети владеют и распоряжаются информационно-вычислительными ресурсами, такими как процессоры, файловая система, почтовая служба, служба печати, база данных. Другие имеют возможность обращаться к этим службам, пользуясь услугами первых. Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса, а компьютер, желающий им воспользоваться — клиентом. Конкретный сервер определяется видом ресурса, которым он владеет. Так, если ресурсом являются базы данных, то речь идет о сервере баз данных, назначение которого — обслуживать запросы клиентов, связанные с обработкой данных; если ресурс — это файловая система, то говорят о файловом сервере или файл-сервере и т.д.
В сети один и тот же компьютер может выполнять как роль клиента, так и роль сервера. Например, в информационной системе, включающей персональные компьютеры, большую ЭВМ и мини-компьютер под управлением UNIX, последний может выступать как в качестве сервера базы данных, обслуживая запросы от клиентов — персональных компьютеров, так и в качестве клиента, направляя запросы большой ЭВМ.
Этот же принцип распространяется и на взаимодействие программ. Если одна из них выполняет некоторые функции, предоставляя другим соответствующий набор услуг, то такая программа рассматривается в качестве сервера. Программы, которые пользуются этими услугами, принято называть клиентами. Так, ядро реляционной SQL-ориентированной СУБД часто называют сервером базы данных или SQL-сервером, а программу, обращающуюся к нему за услугами по обработке данных — SQL-клиентом.
Рис. 1. Системы с централизованной архитектурой.
Первоначально СУБД имели централизованную архитектуру (Рис. 1). В ней сама СУБД и прикладные программы, которые работали с базами данных, функционировали на центральном компьютере (большая ЭВМ или мини-компьютер). Там же располагались базы данных. К центральному компьютеру были подключены терминалы, выступавшие в качестве рабочих мест пользователей. Все процессы, связанные с обработкой данных: поддержка ввода, осуществляемого пользователем, формирование, оптимизация и выполнение запросов, обмен с устройствами внешней памяти и т.д., выполнялись на центральном компьютере, что предъявляло жесткие требования к его производительности. Особенности СУБД первого поколения напрямую связаны с архитектурой больших ЭВМ и мини-компьютеров и адекватно отражают все их преимущества и недостатки. Далее будем рассматривать современное состояние многопользовательских СУБД, для которых архитектура «клиент-сервер» стала фактическим стандартом.
Для более четкого представления о ее особенностях необходимо рассмотреть несколько моделей технологии «клиент-сервер», что и будет сделано ниже.
Если предполагается, что проектируемая информационная система (ИС) будет построена по технологии «клиент-сервер», то это означает, что прикладные программы, реализованные в ее рамках, будут иметь распределенный характер. Иными словами, часть функций прикладной программы (или, проще, приложения) будет реализована в программе-клиенте, другая — в программе-сервере, причем для их взаимодействия будет определен некоторый протокол.
Основной принцип технологии «клиент-сервер» заключается в разделении функций стандартного интерактивного приложения на четыре группы, имеющие различную природу.
Первая группа — это функции ввода и отображения данных.
Вторая группа объединяет чисто прикладные функции, характерные для данной предметной области (например, для банковской системы — открытие счета, перевод денег с одного счета на другой и т.д.).
К третьей группе относятся фундаментальные функции хранения и управления информационными ресурсами (базами данных, файловыми системами и т.д.).
Функции четвертой группы — служебные, играющие роль связок между функциями первых трех групп.
В соответствии с этим в любом приложении выделяются следующие логические компоненты:
- компонент представления, реализующий функции первой группы;
- прикладной компонент, поддерживающий функции второй группы;
- компонент доступа к информационным ресурсам, поддерживающий функции третьей группы,
- а также вводятся и уточняются соглашения о способах их взаимодействия (протокол взаимодействия).
- модель файлового сервера (File Server — FS);
- модель доступа к удаленным данным (Remote Data Access — RDA);
- модель севера базы данных (DataBase Server — DBS);
- модель сервера приложений (Application Server — AS).
Глава 4. Модель «клиент-сервер» и её реализация в компьютерных сетях
Для понимания материала этой главы необходимы знания по компьютерным сетям, изложенные в предыдущей главе, а также общие понятия о вычислительной технике, изложенные в главе 1.
4.1. Определение модели «клиент-сервер»
Клиент-сервер — это модель взаимодействия процессов в вычислительной системе, при которой один процесс (клиент) делает запрос, другой процесс (сервер) его обрабатывает и возвращает первому ответ или предоставляет определенную услугу в виде вычислений, каких-либо данных и т.п.
Чаще всего процесс-клиент запускается на одном компьютере, процесс-сервер — на другом.
В общем виде модель представлена на рис. 13.
Рис. 13 Модель «клиент-сервер»
Также клиентом (рабочей станцией) в двухранговой компьютерной сети называется компьютер, на котором преобладают процессы-клиенты, а сервером — компьютер, на котором преобладают процессы-серверы. В процессе работы сети компьютер-сервер и компьютер-клиент могут меняться ролями. Любой компьютер может одновременно быть клиентом и сервером для различных видов услуг.
Требования надежности, скорости и отказоустойчивости у серверов выше, чем у рабочих станций. Среднее время простоя современных серверов может достигать всего несколько минут в год.
4.2. Виды сетевых служб
Несмотря на то, что технологии «клиент-сервер» применима как в централизованных, так и в распределенных вычислительных системах, она достигла популярности именно в компьютерных сетях.
Сетевая служба (сервис) — это определенный вид обслуживания, предоставляемый сервером.
Сетевые службы занимаются предоставлением:
- совместно используемых аппаратных ресурсов — процессорного времени, памяти, диска, принтеров;
- различных сетевых услуг — обрабатывают и предоставляют различную информацию.
1. Основные программные и аппаратные компоненты сети. Понятия «клиент», «сервер», «сетевая служба».
Компьютерная сеть – это комплекс взаимосвязанных и согласованно функционирующих программных и аппаратных компонентов.
Основным назначением компьютерной сети является:
- совместное использование информации;
- совместное использование оборудования и ПО;
- централизованное администрирование и обслуживание.
Весь комплекс программно-аппаратных средств сети может быть описан многослойной моделью. В основе любой сети лежит аппаратный слой стандартизованных компьютерных платформ. Компы, использующиеся при пострении комп-х сетей.
Второй слой — это коммуникационное оборудование. Кабельн сис-мы, повторители, мосты, коммутаторы, маршр-ры и т. д.
Третьим слоем, образ-м прогр-ю платформу сети, явл- операц-е сис-мы (ОС). При проект-и сети важно учит-ть, насколько просто данная ОС может взаимодействовать с др ОС сети, насколько она обеспеч безопасность и защищенность данных, до какой степени она позволяет наращивать число пользователей, можно ли перенести ее на компьютер другого типа.
Самым верхн слоем явл разл сетев прил-я, такие как сетевые БД, почтовые сис-мы, ср-ва архив-я данных, системы автоматизации коллективной работы и др. Очень важно представлять диапазон возможностей, предоставляемых приложениями для различных областей применения, а также знать, насколько они совместимы с другими сетевыми приложениями и операционными системами.
Сетевое приложение представляет собой распределенную программу, т. е. программу, которая состоит из нескольких взаимодействующих частей, каждая из которых выполняется на отдельном компьютере сети.
Распределенная программа использует технологию клиент-сервер.
Программа сервер – специальная программа, предназначенная для обслуживания запросов на доступ к ресурсам данного компьютера от других компьютеров сети. Модуль сервера постоянно находится в режиме ожидания запросов, поступающих по сети. Круг задач, которые должны выполнять серверы, многообразен и сложен. Чтобы серверы отвечали современным требованиям пользователей, в больших сетях их делают специализированными (серверы файлов, печати, приложений и т. д.).
Программа- клиент — специальная программа, предназначенная для составления и посылки запросов на доступ к удаленным ресурсам, а также получения и отображения информации на компьютере пользователя.
Сетевая служба — пара модулей «клиент — сервер», обеспечивающих совместный доступ пользователей к определенному типу ресурсов. Обычно сетевая операционная система поддерживает несколько видов сетевых служб для своих пользователей — файловую службу, службу печати, службу электронной почты, службу удаленного доступа и т. п.. (Примеры сетевых служб – WWW, FTP, UseNet).
Термины «клиент» и «сервер» используются не только для обозначения программных модулей, но и компьютеров, подключенных к сети. Если компьютер предоставляет свои ресурсы другим компьютерам сети, то он называется сервером, а если он их потребляет — клиентом. Иногда один и тот же компьютер может одновременно играть роли и сервера, и клиента.
1. Основные программные и аппаратные компоненты сети. Понятия «клиент», «сервер», «сетевая служба».
Компьютерная сеть представляет собой сложный комплекс взаимосвязанных и согласованно функционирующих программных и аппаратных компонентов.
Основным назначением компьютерной сети является:
- совместное использование информации;
- совместное использование оборудования и ПО;
- централизованное администрирование и обслуживание.
Основные компоненты компьютерной сети:
— компьютеры (аппаратный слой);
— сетевые операционные системы;
Весь комплекс программно-аппаратных средств сети может быть описан многослойной моделью. В основе любой сети лежит аппаратный слой стандартизованных компьютерных платформ. В настоящее время в сетях широко и успешно примен комп-ры разл классов — от персон комп- до мэйнфреймов и суперЭВМ. Набор комп- в сети должен соответствовать набору разнообразных задач, решаемых сетью.
Третьим слоем, образ-м прогр-ю платформу сети, явл- операц-е сис-мы (ОС). От того, какие концепции управл-я лок-ми и распр-ми ре-ми положены в основу сетевой ОС, зависит эффект-ть работы всей сети. При проект-и сети важно учит-ть, насколько просто данная ОС может взаимодействовать с др ОС сети, насколько она обеспеч безопасность и защищенность данных, до какой степени она позволяет наращивать число пользователей, можно ли перенести ее на компьютер другого типа.
Самым верхн слоем явл разл сетев прил-я, такие как сетевые БД, почтовые сис-мы, ср-ва архив-я данных, системы автоматизации коллективной работы и др. Очень важно представлять диапазон возможностей, предоставляемых приложениями для различных областей применения, а также знать, насколько они совместимы с другими сетевыми приложениями и операционными системами.
Сетевое приложение представляет собой распределенную программу, т. е. программу, которая состоит из нескольких взаимодействующих частей, каждая из которых выполняется на отдельном компьютере сети.
Р ис. 1.. Взаимодействие частей распределенного приложения
Распределенная программа использует технологию клиент-сервер. Обработка информации в технологии клиент-сервер разделена между рабочей станцией (клиентом) и сервером.
Программа сервер – специальная программа, предназначенная для обслуживания запросов на доступ к ресурсам данного компьютера от других компьютеров сети. Модуль сервера постоянно находится в режиме ожидания запросов, поступающих по сети. Круг задач, которые должны выполнять серверы, многообразен и сложен. Чтобы серверы отвечали современным требованиям пользователей, в больших сетях их делают специализированными (Серверы файлов, печати, приложений и т. д.).
Программа- клиент — специальная программа, предназначенная для составления и посылки запросов на доступ к удаленным ресурсам, а также получения и отображения информации на компьютере пользователя.
Сетевая служба — пара модулей «клиент — сервер», обеспечивающих совместный доступ пользователей к определенному типу ресурсов. Обычно сетевая операционная система поддерживает несколько видов сетевых служб для своих пользователей — файловую службу, службу печати, службу электронной почты, службу удаленного доступа и т. п.. (Примеры сетевых служб – WWW, FTP, UseNet).
Термины «клиент» и «сервер» используются не только для обозначения программных модулей, но и компьютеров, подключенных к сети. Если компьютер предоставляет свои ресурсы другим компьютерам сети, то он называется сервером, а если он их потребляет — клиентом. Иногда один и тот же компьютер может одновременно играть роли и сервера, и клиента.