Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория информатика.doc
Скачиваний:
89
Добавлен:
24.09.2019
Размер:
5.2 Mб
Скачать

Системная архитектура "клиент-сервер"

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

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

Интерфейс серверной части определен и фиксирован. Поэтому возможно создание новых клиентских частей существующей системы (пример интероперабельности на системном уровне).

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

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

Общим решением проблемы мобильности систем, основанных на архитектуре "клиент-сервер" является опора на программные пакеты, реализующие протоколы удаленного вызова процедур (RPC - Remote Procedure Call). При использовании таких средств обращение к сервису в удаленном узле выглядит как обычный вызов процедуры. Средства RPC, в которых, естественно, содержится вся информация о специфике аппаратуры локальной сети и сетевых протоколов, переводит вызов в последовательность сетевых взаимодействий. Тем самым, специфика сетевой среды и протоколов скрыта от прикладного программиста.

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

Если система реализована на основе стандартного пакета RPC, она может быть легко перенесена в любую открытую среду.

Распределенные вычисления

Термин "распределенные вычисления" часто используется для обозначения двух различных, хотя и взаимодополнительных концепций:

1.                  Распределенная база данных;

2.                  Распределенная обработка данных.

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

Распределенная база данных

Это набор баз данных, связанных между собой логически, но физически расположенных на нескольких машинах, входящих в одну компьютерную сеть. Важнейшие характеристики распределенной базы данных таковы: прозрачность расположения, автономность узлов распределенной базы данных (Site Autonomy), обработка распределенных запросов, выполнение распределенных транзакций.

Прозрачность расположения позволяет пользователям работать с базами данных, не зная ничего об их расположении. Автономность узлов распределенной базы данных означает, что ведение каждой базы может происходить независимо от других. Распределенный запрос – это такой запрос (SQL-предложение), в ходе выполнения которого происходит доступ к объектам (таблицам или представлениям) разных баз данных. Под транзакцией понимается неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации) такая, что, либо результаты всех операторов, входящих в транзакцию, отображаются в БД, либо воздействие всех этих операторов полностью отсутствует. При выполнении распределенных транзакций осуществляется согласованное управление (concurrency control) всеми вовлеченными базами данных.

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

Обработка данных по технологии клиент-сервер.

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

Сервер

База данных

Компьютер-сервер

  Сеть  

IBM-совместимый ПК

IBM-совместимый ПК

IBM-совместимый ПК

Клиенты

Приложения

 

Рисунок 17.30. Архитектура Клиент-сервер

Клиент

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

Сервер

Как следует уже из самого термина, главная функция компьютера-сервера заключается в обслуживании потребностей клиента. Термин "Сервер" используется для обозначения двух различных групп функций: файл-файл-сервер и сервер баз данных. Файл-серверы не предназначены для выполнения операций с базами данных, их основная функция – разделение файлов между несколькими пользователями, т.е. обеспечение одновременного доступа многих пользователей к файлам на компьютере – файл-сервере. Примером файл-сервера является операционная система NetWare компании Novell. Сервер баз данных можно установить и привести в действие на компьютере – файл-сервере.

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

                     Независимость от платформ: доступ к разнородным сетевым средам, в состав которых входят компьютеры разных типов с различными операционными системами.

                     Независимость от источников данных: доступ к информации разнородных баз данных.

                     Большое число пользователей.

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

                     Возможность работы с мультимедиа: к настоящему времени создано немало программ работы с мультимедиа для ПК.

                     Возможность привлечения больших вычислительных ресурсов для операций с базами данных: поскольку приложения выполняются на компьютерах-клиентах, на компьютере-сервере для операций с базами данных высвобождаются дополнительные  ресурсы, такие, как вычислительные ресурсы центрального процессора и оперативная память.

                     Более высокая продуктивность работы программистов.

                     Повышение продуктивности работы конечных пользователей.