Лекция 1

Информационная система

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

Классификация ИС

  • По архитектуре
  • По степени автоматизации
  • По характеру обработки данных
  • По сфере применения
  • По масштабу

Архитектура ИС

Откуда "берется" архитектура

Архитектура информационной системы формируется как результат анализа требований к информационной системе с целью их удовлетворения в рамках оговоренных ресурсов (технических, временных, людских и т.п.)

Архитектурные слои, уровни, подсистемы и компоненты

  • Подсистема (Subsystem). Набор взаимодействующих компонентов, работающих совместно для достижения определённой цели;
  • Компонент (Component). Структурная составляющая подсистемы;
  • Слой (Layer). Группирует логически связанные подсистемы и определяет правила для связи между слоями;
  • Уровень (Tire). Аппаратный компонент распределённой системы на котором может функционировать слой.

Принципы проектирование слоев

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

Преимущества слоев (М. Фаулер)

  • Каждый слой можно воспринимать как единое целое, не заботясь о наличии других слоёв;
  • Можно выбирать альтернативную реализацию базовых слоёв;
  • Зависимости между слоями можно свести к минимуму;
  • Каждый слой является удачным кандидатом на стандартизацию;
  • Созданный слой может служить основой для нескольких различных слоёв более высокого уровня.

Недостатки слоев

  • Изменения в одном из слоёв базового уровня часто приводят к каскадным изменениям в слоях более высокого уровня (пример: новый атрибут в таблице БД);
  • Наличие избыточных слоёв может снизить производительность системы.

Три основных слоя

  • Представление (Presentation)
    Предоставление услуг, отображение данных, обработка событий пользовательского интерфейса;
  • Домен (Domain)
    Бизнес-логика приложения
  • Источники данных (Data Source)/ Слой доступа к данным (Data Access Layer или DAL)
    Обращение к базе данных, обмен сообщениями, управление транзакциями и т. д.

Распределение слоёв по уровням

Традиционные архитектуры

Централизованная архитектура

70-e годы. Эпоха мейнфреймов - больших централизованных ЭВМ.

Основные особенности:

  • Все базовые функции приложения реализуются в одной месте
  • Все пользователи работают одновременно на одном компьютере

Плюсы:

  • «Нулевое» администрирование рабочих мест пользователей;
  • Централизованная разработка и обслуживание системы.

Минусы:

  • Дорогая аппаратура оправдана только для больших систем;
  • Взаимная зависимость пользователей на программном уровне.

Персональные компьютеры

Начало 80-х — персональные компьютеры.

Основные особенности:

  • Все базовые функции приложения реализуются в одной месте;
  • Однопользовательский режим работы приложений.

Плюсы:

  • Полная автономность работы. Мобильность приложений;
  • Развитый пользовательский интерфейс - как следствие монополизации
    аппаратного обеспечения.

Минусы:

  • Серьезные ограничения в вычислительной мощности;
  • Крайне затруднен обмен данными. Дублирование информации;
  • Начало 80-х — персональные компьютеры.

Распределенные системы

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

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

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

Альтернативы распределения слоёв

Модели архитектуры «клиент-сервер»

Модели отражают распределение слоёв между компьютерами сети

  • Функции ввода и отображения данных (слой представления);
  • Прикладные функции, характерные для предметной области приложения (слой домена);
  • Функции накопления информации и управления данными (слой доступа к данным, слоев данных).

Модель RDA (модель «файл-сервер»)

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

Файл-серверные приложения — приложения, схожие по своей структуре с локальными
приложениями и использующие сетевой ресурс для хранения данных.
Функции сервера: хранения данных и управление файлами.
Функции клиента: обработка данных происходит исключительно на стороне клиента.

Плюсы:

  • Многопользовательский режим работы с данными;
  • Удобство централизованного управления доступом;
  • Низкая стоимость разработки.

Минусы:

  • Низкая производительность;
  • Низкая надежность;
  • Слабые возможности расширения;
  • Проблемы многопользовательской работы с данными: последовательный доступ, отсутствие гарантии целостности.

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

Файл-сервер — распределение слоев

Модель DBS (двухзвенная модель)

Начало 90-х – архитектура «клиент-сервер».

Под «клиентом» обычно подразумевают компьютер конечного пользователя или программный код, выполняющий запрос к серверу (потребляющий услугу). «Сервером» обычно называют машину или программный код, предоставляющий сервис / отвечающий на запросы.

Ключевым отличием архитектуры клиент-сервер от архитектуры файл-сервер является
абстрагирование от внутреннего представления данных (физической схемы данных).
Теперь клиентские программы манипулируют данными на уровне логической схемы.

Основные особенности:

  • Клиентская программа работает с данными через запросы к серверному ПО;
  • Базовые функции приложения разделены между клиентом и сервером.

Плюсы:

  • Полная поддержка многопользовательской работы;
  • Гарантия целостности данных .

Минусы:

  • Бизнес логика приложений осталась в клиентском ПО. При любом изменении
    алгоритмов, надо обновлять пользовательское ПО на каждом клиенте;
  • Высокие требования к пропускной способности коммуникационных каналов с сервером, что препятствует использование клиентских станций иначе как в
    локальной сети;
  • Слабая защита данных от взлома, в особенности от недобросовестных
    пользователей системы;
  • Высокая сложность администрирования и настройки рабочих мест пользователей системы;
  • Необходимость использовать мощные ПК на клиентских местах;
  • Высокая сложность разработки системы из-за необходимости выполнять бизнес-логику и обеспечивать пользовательский интерфейс в одной программе

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

Модель DBS (двухзвенная модель)

Комплексный сервер (двухзвенная модель)

Модель AS (трехзвенная модель)

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

Трехзвенная архитектура

Компоненты трехзвенной архитектуры, с точки зрения программного обеспечения реализуют определенные сервера БД, web-сервера и браузеры. Место любого из этих компонентов может занять программное обеспечение любого производителя.

Преимущества сетевой архитектуры «Клиент-сервер»

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

Недостатки архитектуры «клиент-сервер» с точки зрения информационной безопасности

  • территориальная распределенности компонентов системы усложняет администрирование;
  • часть ресурсов может располагаться на локальных компьютерах, которые характеризуются повышенной уязвимостью;
  • использование для обмена данными закрытых протоколов требует разработки уникальных средств защиты;

Архитектура «клиент-сервер» на базе технологии Web