Архитектура клиент-сервер. Основные правила архитектуры клиент-сервер. Модели распределений.
Архитектура системы – представление о совокупности функциональных компонентов системы и их взаимосвязях.
Наиболее популярна в настоящее время архитектура клиент-сервер, когда множество машин-клиентов осуществляют доступ к одному серверу баз данных. В таких системах, которые можно определить как системы типа много-клиентов/один-сервер, проблемы управления базой данных решаются относительно просто, поскольку вся она хранится на одном сервере.
Если вся обработка данных происходит на стороне сервера, а клиент выполняет только функции интерфейса с пользователем, то клиентское приложение называют ”тонким” клиентом. Если часть обработки данных происходит на стороне клиента – то “толстым” клиентом.
Архитектура клиент-сервер включает в себя три основных компонента:
-
Клиенты. Клиент представляет собой любой процесс компьютера, который запрашивает сервис от сервера. Клиент также называется интерфейсным приложением. Клиентский процесс, базируется на графическом интерфейсе пользователя.
-
Серверы. Сервер – это компьютерный процесс, предоставляющий сервис клиентам. Сервер также называют серверным приложением. Серверный процесс характеризуется независимостью от местоположения, оптимизацией использования ресурсов, масштабируемостью и способностью к взаимодействию с другими системами.
-
Коммуникационное промежуточное программное обеспечение передачи данных (ППО). Представляет собой любой компьютерный процесс, посредством которого клиенты и серверы взаимодействуют друг с другом. Это ПО называют еще уровнем коммуникаций. ППО обычно привязано к сети. Все клиентские запросы и ответы сервера передаются по сети в форме сообщений, в которых содержатся управляющая информация и данные.
Компоненты клиента
-
компоненты оборудования (компьютер, процессор, жесткий диск, видео, сетевая плата и т.д.). Процессы клиента требуют значительных аппаратных ресурсов. Поэтому, они должны размещаться на компьютере, обладающем достаточной мощностью. Такие мощности облегчают создание систем с мультимедийными возможностями;
-
Компоненты программного обеспечения
-
Операционная система с возможностью многозадачной обработки информации;
-
развитый графический интерфейс пользователя (GUI). Для создания интерфейсных прикладных программ используются языки программирования 3-го и 4-го поколений.
-
коммуникационные возможности. Связка оборудование плюс операционная система должна обеспечить возможность связи с несколькими сетевыми операционными системами.
Компоненты сервера
Сервер, как и клиент, также имеет компоненты оборудования и ПО. Компьютер, на котором располагается процесс сервера, должен быть более мощным, т.к. серверный процесс должен уметь одновременно обрабатывать запросы от нескольких клиентов. Но сервисному процессу не нужен графический интерфейс.
Характеристика серверного оборудования зависит от уровня предоставляемого сервиса:
-
файловые сервисы. Файловый сервер предназначен для хранения файлов общего использования;
-
сервер приложений позволяет с рабочих станций запускать сетевые приложения, записанные на сервере;
-
сервисы печати. Сервер печати печатает на подключенных к нему принтерах файлы, отправляемые на печать с рабочих станций. Клиент получает доступ к любому из принтеров так, словно он напрямую подключен к его собственному компьютеру;
-
сервисы факсимильной связи. Факс-сервер хранит, получает и рассылает факсимильные сообщения;
-
сервисы передачи данных. Позволяют клиентским ПК подключаться к серверу передачи данных, чтобы получить доступ к другим компьютерам или сервисам, к которым клиент не может подключиться непосредственно. Например, к электронным доскам объявлений, к удаленной локальной сети и т.д.
-
сервисы баз данных. Клиенту необходимо иметь только интерфейсную программу для получения доступа к серверу базы данных. Клиент посылает SQL-запросы на сервер. Сервер получает SQL-код, проверяет его, выполняет, а клиенту отсылает только результат;
-
сервисы транзакций; Сервер транзакций содержит код транзакции базы данных или процедуры, которые манипулируют информацией в БД. Интерфейсная программа на клиентском ПК посылает запрос на сервер транзакций для выполнения специфической процедуры, хранящейся на сервере БД. При этом по сети не передается никакой SQL-код. Сервер транзакций снижает нагрузку сети и обеспечивает лучшую производительность.
-
другие сервисы, включая обслуживание устройств CD-ROM, видео, резервное копирование и т.д.
Правила архитектуры клиент-сервер
Для корректного взаимодействия компонентов клиент-серверной архитектуры между собой требуется их соответствие некоторым основным правилам. Эти правила должны в равной степени выполнять и клиенты, и серверы, и ППО.
Слайд. Основные правила архитектуры клиент-сервер:
-
независимость от оборудования. Требует, чтобы процессы клиента, сервера и ППО могли выполняться на различных аппаратных платформах (IBM, DEC, Apple и др.) без какого-либо изменения функциональных возможностей;
-
независимость от программного обеспечения:
-
операционной системы,
-
сетевой системы,
-
приложений
-
Требует, чтобы процессы клиента, сервера и ППО поддерживали несколько операционных системи (Windows, OS/2, Linux, Unix), различные сетевые протоколы (TCP/IP, IPX) и различные приложения (таблицы, базы данных, электронную почту и т.д.).
-
открытый доступ к сервисам. Все клиенты в системе должны иметь неограниченный доступ ко всем сервисам, предоставляемым внутри сети. И эти сервисы не должны зависеть от расположения клиента или сервера;
-
распределение процессов:
-
автономность процессов,
-
максимальное использование локальных ресурсов,
-
масштабируемость и гибкость,
-
способность к взаимодействию и интегрируемость
-
Презентационная логика (Presentation Logic) как часть приложения определяется тем, что пользователь видит на своем экране, когда работает приложение. Сюда относятся все интерфейсные экранные формы, которые пользователь видит или заполняет в ходе работы приложения, к этой же части относится все то, что выводится пользователю на экран как результаты решения некоторых промежуточных задач либо как справочная информация.
Поэтому основными задачами презентационной логики являются:
-
формирование экранных изображений;
-
чтение и запись в экранные формы информации;
-
управление экраном;
-
обработка движений мыши и нажатие клавиш клавиатуры.
Бизнес-логика, или логика собственно приложений (Business processing Logic), – это часть кода приложения, которая определяет собственно алгоритмы решения конкретных задач приложения. Обычно этот код пишется с использованием различных языков программирования, таких как С, C++, Cobol, SmallTalk, Visual-Basic.
Логика обработки данных (Data manipulation Logic) – это часть кода приложения, которая связана с обработкой данных внутри приложения. Данными управляет собственно СУБД (DBMS). Для обеспечения доступа к данным используются язык запросов и средства манипулирования данными стандартного языка SQL
Обычно операторы языка SQL встраиваются в языки 3-го или 4-го поколения (3GL, 4GL), которые используются для написания кода приложения.
Процессор управления данными (Database Manager System Processing) – это собственно СУБД, которая обеспечивает хранение и управление базами данных. В идеале функции СУБД должны быть скрыты от бизнес-логики приложения, однако для рассмотрения архитектуры приложения нам надо их выделить в отдельную часть приложения.
В централизованной архитектуре (Host-based processing) эти части приложения располагаются в единой среде и комбинируются внутри одной исполняемой программы.
В децентрализованной архитектуре эти задачи могут быть по-разному распределены между серверным и клиентским процессами.
В зависимости от характера распределения можно выделить следующие модели распределений:
-
распределенная презентация или распределенное представление (Distribution presentation DP);
-
удаленная презентация или удаленное представление (Remote Presentation, RP);
-
распределенная бизнес-логика (Remote business logic, RBL);
-
распределенное управление данными (Distributed data management, DDM);
-
удаленное управление данными (Remote data management, RDМ,).
- Понятие распределенной информационной системы. Распределенные базы данных. Принципы создания и функционирования распределенных баз данных.
- Прозрачные свойства распределенных баз данных. Прозрачность фрагментации, местоположения, локального отображения.
- Системы управления распределенными базами данных: понятие, функциональные возможности, типы. Преимущества и недостатки систем управления распределенными базами данных.
- Архитектура клиент-сервер. Основные правила архитектуры клиент-сервер. Модели распределений.
- Модели архитектуры клиент-сервер: rda-модель, dbs-модель, as-модель. Преимущества и недостатки.
- Фрагментация. Основные концепции фрагментации данных. Виды фрагментации.
- Репликация. Понятие согласованного распределенного набора данных. Варианты репликации. Протокол репликации rowa.
- Технологии доступа к данным: odbc, jdbc, ole db, ado, dao, bde.
- Транзакция, ее свойства. Модель транзакции в стандарте sql. Журнализация транзакций.
- Понятие распределенной транзакции. Мониторы обработки транзакций.
- Параллельное выполнение транзакций. Управление параллельным выполнением транзакций. Проблемы и решения по организации управления параллельным выполнением в распределенной среде.
- Механизм блокировок. Виды блокировок. Централизованное блокирование, блокирование первичных копий и распределенное блокирование. Блокировка
- Метки времени
- Оптимистические методы
- Понятие проекта информационной системы, его структура. Экономико-организационные и информационно-технологические принципы проектирования информационных систем.
- 1. Экономико-организационные
- 2. Информационно-технологические
- Жизненный цикл разработки систем. Основные стадии жизненного цикла. Модели жизненного цикла.
- Каноническое проектирование информационных систем. Стадии процесса проектирования информационных систем.
- Состав работ на предпроектных стадиях проектирования системы. Обследование информационной системы. Описание постановки задачи. Техническое задание.
- Состав работ на стадиях технического и рабочего проектирования информационной системы.
- Состав работ на стадиях ввода в действие и сопровождения информационной системы.
- Case-технологии, основные принципы. Этапы создания информационной системы на основе case-технологии. Факторы эффективности case-технологии.
- Case-средства, их классификация. Примеры case-средств и их характеристика.
- Типовое проектирование информационных систем. Классификация, примеры типовых информационных систем и их характеристика.
- Проектирование системы управления в Business Studio.
- 29. Возможности и реализуемые стандарты современного пакета бизнес- моделирования Business Studio.
- 28. Основные задачи администратора базы данных: