1 Современные системы программирования. Часть 2. Системное и прикладное программное обеспечение Малышенко Владислав Викторович
2 История возникновения приложений «Клиент-Сервер» Распространение динамически загружаемых библиотек и ресурсов пользователя Внедрение в ОС большого количества прикладных компонентов Создание прикладных приложений, зависящих от библиотек других разработчиков
3 История возникновения приложений «Клиент-Сервер» Деление приложения на два уровня: «Нижний уровень» - методы хранения, резервирования, доступа и разделения данных; «Верхний уровень» - организация логики обработки данных и интерфейс пользователя.
4 История возникновения приложений «Клиент-Сервер» Деление приложения на два уровня: Первый компонент в этой архитектуре стал носить название «сервер данных»; Второй – «клиент» или «клиентское приложение». Появление на рынке ИТ компании, специализирующихся на производстве серверов, разработчики прикладных программ стали использовать серверы данных от известных производителей.
5 История возникновения приложений «Клиент-Сервер» Следующий этап: Появление систем программирования, специально ориентированные на разработку приложений, типа «клиент-сервер».
6 Структура приложений, в архитектуре «Клиент-Сервер» Приложение Клиентская часть; Сервер данных. Разработка ПО сводится с разработке клиентской части. Характеристика начального этапа создания архитектуры – разделение доступа к файлам (средствами ОС). Создание файловых серверов.
7 Структура приложений, в архитектуре «Клиент-Сервер» ПО «Клиент-1»ПО «Клиент-2» Данные Разделение доступа средствами ОС
8 Архитектура «Клиент-Сервер». Недостатки Невозможность эффективно разделить доступ к данным при их одновременном использовании несколькими пользователями; Невозможность организовать защиту данных; Высокая нагрузка на сеть передачи данных.
9 Структура приложений, в архитектуре «Клиент-Сервер» ПО «Клиент-1»ПО «Клиент-2» Данные СУБД
10 Принципы создания приложений в архитектуре «клиент-сервер»
11 Создание приложений Переориентация систем программирования на «клиент-серверную» архитектуру; Возможность работы с широким диапазоном известных серверов данных; Прикладная программа как интерфейс к системе хранения данных; В состав ОС входит модуль для доступа к серверам данных; Распространение приложения совместно с сервером данных.
12 Преимущества архитектуры Нет необходимости создавать системы хранения данных; Безопасность данных и защита от несанкционированного доступа; Снижение нагрузки на клиентскую часть; Передача по сети только запросов и ответов, а не набора данных; Масштабируемость;
13 Недостатки архитектуры Обработка данных выполняется клиентским приложением; При изменении логики приложения – переустановка клиентских приложений; Изменение интерфейса приложения - переустановка клиентских приложений; Лицензии на рабочие места при использовании промышленной СУБД.
14 Разработка программ в многоуровневой архитектуре
15 Трехуровневая архитектура Предпосылки: Объединение в клиентском приложении Сложных функции обработки данных; Простые функции организации интерфейса. Требования к уменьшению нагрузки на клиентскую часть Неизменность «логики приложения» Постоянное изменение интерфейса пользователя
16 Факторы, положительно влияющие на развитие архитектуры Развитие глобальных сетей и сети Интернет; Разделение «клиентского приложения» на две составляющие: Сервер приложений – реализует обработку данных; Тонкой клиент – обеспечивает интерфейс и доступ.
17 Структура приложений, в архитектуре «Клиент-Сервер» ПО «Клиент-1»ПО «Клиент-2» Данные СУБД Сервер приложений
18 Особенности разработки приложений для многоуровневой архитектуры Дробление функций сервера приложений на несколько серверов; Балансировка нагрузка на сервер приложений и СУБД; Создание протокола обмена данными между сервером приложений и клиентским приложением.
19 Технологии взаимодействия с сервером приложений
20 Технология RPC Технология RPC возникла для обеспечения взаимодействия двух параллельно выполняющихся процессов в ОС типа UNIX. Принцип работы: Процесс-клиент запрашивает у процесса-сервиса некоторую услугу и ждет ответа. Процессы могут быть размещены на разных компьютерах.
21 Удаленный вызов процедур Клиент осуществляет локальный вызов процедуры; «заглушка» Процедура-заглушка принимает аргументы, преобразует их в стандартную форму и формирует сетевой запрос к серверу; «сборка» Сетевой запрос на удаленный компьютер Модуль RPC извлекает параметры вызова Модуль RPC обращается к серверу и ждет ответа Полученный результат передается на клиента Процедура-заглушка извлекает результат
22 Создание приложений Клиентская программа Вызов процедуры Процедура-заглушка Клиентской части Процедура-заглушка Серверной части Серверная программа Выполнение процедуры
23 Технология RPC Способ реализации: Синхронный механизм передачи данных; Область применения: локальные сети с небольшим временем ответа сервера по сети.
24 Технология MOM и ORB MOM – Message Oriented Middleware ORB – Object Request Broker «Промежуточное программное обеспечение» – системы передачи сообщений. Принцип работы: приложения обмениваются информацией используя специальные буферы (очереди).
25 Технология MOM MOM обеспечивает доставку сообщения по назначению и его хранение. Технология MOM поддерживает мультиплатформность и независимость от сетевых протоколов. Разработчику представляется несложный и высокоуровневый API интерфейс для работы с очередями. Защита от сбоев и отказов в сети, сохранение сообщения, повторная передача, поиск нового сервера.
26 Технология ORB Брокер ORB отвечает за получение запроса от клиентского приложения и осуществляет поиск и активизацию удаленных объектов Механизм реализации технология скрыт от пользователя
27 Организация серверов приложений Разработка серверов приложений: Стандарт CORBA (Sun); Технология COM/DCOM (Microsoft). Современные системы программирования обеспечивают поддержку разработки приложений в трехуровневой архитектуре.
28 Возможности многоуровневой архитектуры Функции обработки данных возложены на сервер приложений, на клиентскую часть – отображение данных и организация интерфейса; При необходимости изменить или дополнить логику обработки данных на сервер приложений; Быстро изменяется внешний вид интерфейса пользователя; Для подключения к серверу данных можно используется одну лицензию.
29 Недостаток многоуровневой архитектуры Трудоемкий процесс создания приложения;
30 Конец.