Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Типы архитектур Понятие и классификация архитектурных стилей информационной системы

Лекция



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

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

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

Архитектура ИС - ее концепция, которая определяет модель, структуру, функционал и взаимосвязь компонентов.

Под архитектурой программных систем будем понимать совокупность решений относительно :

- организации программной системы;

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

Архитектура программной системы охватывает не только ее структурные и поведенческие аспекты, но и правила и возможности :

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

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

В рамках разработки архитектуры определяются :

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

Для архитектуры определяются и описываются

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

Рассматривая архитектуру крупных организаций, принято использовать понятие «корпоративная архитектура». Ее можно представить в виде совокупности нескольких типов архитектур [22]:

  • - бизнес архитектура (Business architecture);
  • - ИТ-архитектура (Infomiation Technology architecture);
  • - архитектура данных (Data architecture);
  • - программная архитектура (Software architecture);
  • - техническая архитектура (Hardware architecture).

Модель корпоративной архитектуры представлена на рис. 3.2.

Типы архитектур Понятие и классификация архитектурных стилей информационной системы

Рис. 3.2. Модель корпоративной архитектуры

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

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

Архитектура данных объединяет в себе как физические хранилища данных, так и средства управления данными. Кроме того, в нее входят логические хранилища данных, а при ориентированности рассматриваемой компании на работу со знаниями, может быть выделен отдельный уровень - архитектура знаний (Knowledge architecture) . На этом уровне описываются логические и физические модели данных, определяются правила целостности, составляются ограничения для данных.

Следует особенно выделить уровень ИТ-архитектуры, поскольку он является связующим. На нем формируется базовый набор сервисов, которые используются как на уровне программной архитектуры, так и на уровне архитектуры данных.

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

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

Микроархитектура и макроархитектура. В большей степени термины микроархитектура и макроархитектура применяются для описания программных систем. В соответствие с рассмотренной моделью уровней архитектур ИС, микроархитектуру можно отнести к уровням программной архитектуры и архитектуры данных, а макроархитектуру - к уровню ИТ- архитектуры .

Микроархитектура описывает внутреннее устройство конкретного компонента или подсистемы, а макроархитектура описывает устройство всей ИС, как совокупности ее компонент или подсистем.

Сложность программных систем постоянно увеличивается. Об этом говорит сайт https://intellect.icu . Это обусловлено ростом объема передаваемой и обрабатываемой информации, усложнению самих задач по обработке информации и увеличению количества таких задач. Без применения какого-либо архитектурного подхода при построении сложных систем, их создание, обслуживание и модификация, в конце концов, станут нерентабельными для бизнеса.

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

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

Существуют два принципа, позволяющие оценить взаимное влияние компонентов системы друг на друга :

  • - low coupling (слабая связанность);
  • - high cohesion (сильное зацепление).

Принцип Low Coupling способствует распределению функций между компонентами системы таким образом,чтобы степень связанности между ними оставалась низкой.

Степень связанности (coupling) - это мера взаимозависимости подсистем. Данный принцип связан с одним из основных принципов системного подхода, который требует минимизации информационных потоков между подсистемами.

Подсистема с низкой степенью связанности (или слабым связыванием) имеет следующие свойства :

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

В свою очередь, принцип High Cohesion задает свойство сильного зацепления внутри подсистемы. В результате подсистемы получаются сфокусированными, управляемыми и понятными.

Зацепление (функциональное зацепление) - это мера связанности и сфокусированности функций подсистемы. Подсистема обладает высокой степенью зацепления, если ее функции тесно связаны между собой, и она не выполняет больших объемов работы.

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

  • - трудность понимания;
  • - сложность при повторном использовании;
  • - сложность под держки;
  • - ненадежность, постоянная подверженность изменениям.

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

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

Связанность (coupling) и связность (cohesion) являются общесистемными характеристиками и могут применяться при проектировании любых систем .

Среди платформенных решений проектирования архитектуры ИС выделяются следующие :

  • - нейтрализованная архитектура;
  • - архитектура "файл-сервер
  • - двухзвенная архитектура "клиент-сервер"
  • - многозвенная архитектура "клиент-сервер"',
  • - архитектура распределенных систем',
  • - архитектура Веб-приложении',
  • - сервис-ориентированная архитектура.

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

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

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

  • 1. Потоки данных (Data Flow Systems).
  • 2. Вызов с возвратом (Call-and-Retum Systems).
  • 3. Независимые компоненты (Independent Component Systems).
  • 4. Централизованные данные (Data-Centric Systems).
  • 5. Виртуальные машины (Virtual machines).

Типы архитектур Понятие и классификация архитектурных стилей информационной системы

Рис. 3.3. Классификация архитектурных стилей

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

Стиль «конвейеры и фильтры» может считаться обобщением пакетнопоследовательной обработки. Его структура состоит из множества модулей, каждый из которых выполняет один или несколько процессов. Результаты выполнения одного процесса могут передаваться как одному, так и нескольким модулям, причем различными способами. Такие системы реализуют принцип конвейера, в котором могут присутствовать обратные связи.

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

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

  • - программа-сопрограмма (Main Programm and Subroutines);
  • - объектно-ориентированные системы (Object-Oriented Systems);
  • - клиент-серверные системы (Client-Server Systems);
  • - иерархические многоуровневые системы (Hierarchically Layered Systems).

Стиль «программа-сопрограмма» является реализацией идей структурного программирования и подразумевает наличие главной управляющей программы (контроллера), отвечающей за процесс функционирования, и множества сопрограмм, реализующих функциональность. Разновидностью данного подхода считается архитектура «ведущий-ведомый» (Master-Slave Architecture), в которой основная программа и сопрограммы работают одновременно (параллельно). Контроллер выполняет функции диспетчера процесса, в то время, как сопрограммы выполняют задания, по завершении которых запрашивают у него новые.

Объектно-ориентированные системы являются частным случаем систем «программа-сопрограмма». Общение между объектами, включающими (инкапсулирующими) в себя код и данные, осуществляется либо с помощью вызовов процедур, либо при помощи сообщений . Следует заметить, что вызывающий объект должен знать, где находится вызываемый, кроме того, ему необходимо знать набор интерфейсов, которые он может использовать. В результате инкапсуляции скрываются данные о реализации какого-либо объекта, в результате чего становится возможным вносить в него изменения без уведомления об этом конечных пользователей, что является неоспоримым преимуществом данного типа архитектуры. Также к достоинствам можно отнести естественную поддержку распараллеливания процессов.

Клиент-серверные системы также можно считать частным случаем стиля «программа-сопрограмма», с той лишь разницей, что контроллер и сопрограммы могут располагаться на различных узлах сети.

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

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

- системы взаимодействующих процессов (Communicating Sequential

Processes);

- системы, управляемые событиями (Event-Based Systems).

Основным принципом функционирования систем взаимодействия

процессов является обмен сообщениями между независимыми процессами.

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

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

  • - системы, основанные на использовании централизованной БД (Database Systems) - чаще всего подразумевают наличие реляционной БД;
  • - системы, использующие принцип классной доски (Blackboard Systems).

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

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

  • - интерпретаторы (Interpreters);
  • - системы, основанные на правилах (Rule-Based Systems).

Интерпретаторы предназначены для обеспечения работоспособности

различного рода программ, изначально созданных для различных платформ. Например, запуск и отладка Linux-приложений в среде Windows .

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

Целесообразность использования различных архитектурных стилей приведена в табл. 3.1.

Таблица 3.1

Целесообразность применения стилей

Название стиля

Целесообразность применения

Пакетнопоследовательный

Решаемую задачу можно разделить на подзадачи, использующие единственную операцию ввода-вывода

Конвейеры и фильтры

Процесс решения задачи можно представить в виде последовательности повторяющихся операций над независимыми однотипными данными

Программа-сопрограмма

Фиксированный порядок операций, простаивание из-за ожидания ответов от компонентов

Объектно-

ориентированный

Возможность использования механизмов наследования, расположение объектов на разных хостах

Клиент-серверный

Возможность представить решаемую задачу в виде набора запросов и ответов от клиентов к серверу

Иерархический

многоуровневый

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

Взаимодействующие

процессы

Механизм взаимодействия между процессами - обмен сообщениями, объем долговременных централизованных данных небольшой

Управляемые события

Асинхронный процесс функционирования системы, возможно представление системы в виде независимых процессов

Централизованная БД

Доступна СУБД, задачи разделяются на производителей и потребителей данных, очередность исполнения компонентов определяется последовательностью входных запросов

Классная доска

Большое количество клиентов общающихся между' собой

Интерепретатор

Необходимо нивелировать специфику платформ, предоставить специфическую среду' работы

Основанный на правилах

Решение задачи можно представить в виде набора правил и условий их применения

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

создано: 2024-02-24
обновлено: 2024-02-24
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Разработка программного обеспечения и информационных систем

Термины: Разработка программного обеспечения и информационных систем