Лекция
Привет, Вы узнаете о том , что такое архитектура информационной системы, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое архитектура информационной системы , настоятельно рекомендую прочитать все из категории Разработка программного обеспечения и информационных систем.
Уровень развития современных технологий настолько высок, что позволяет построить ИС любого масштаба, сложности и функциональности. Однако, учитывая требования бизнеса, основанные на показателях различных бизнес-оценок, возникают дополнительные сложности, разрешение которых сводится к обеспечению рационального подхода к процессу проектирования, реализации и дальнейшей эксплуатации ИС.
Исходя из этого, можно однозначно считать выбранную архитектуру одним из основных показателей эффективности создаваемой ИС, а, следовательно, и успешности бизнеса.
Архитектура ИС - ее концепция, которая определяет модель, структуру, функционал и взаимосвязь компонентов.
Под архитектурой программных систем будем понимать совокупность решений относительно :
- организации программной системы;
Архитектура программной системы охватывает не только ее структурные и поведенческие аспекты, но и правила и возможности :
Концепция архитектуры ИС должна формироваться еще на этапе технико-экономического обоснования и выбираться такой, чтобы стоимость владения ею была минимальной.
В рамках разработки архитектуры определяются :
Для архитектуры определяются и описываются
Рассматривая архитектуру крупных организаций, принято использовать понятие «корпоративная архитектура». Ее можно представить в виде совокупности нескольких типов архитектур [22]:
Модель корпоративной архитектуры представлена на рис. 3.2.
Рис. 3.2. Модель корпоративной архитектуры
Техническая архитектура является первым уровнем архитектуры ИС . Она описывает все аппаратные средства, использующиеся при выполнении заявленного набора функций, а также включает средства обеспечения сетевого взаимодействия и надежности. В технической архитектуре указываются периферийные устройства, сетевые коммутаторы и маршрутизаторы, жесткие диски, оперативная память, процессоры, соединительные кабели, источники бесперебойного питания и т.п.
Программная архитектура представляет собой совокупность компьютерных программ, предназначенных для решения конкретных задач . Данный тип архитектуры необходим для описания приложений, входящих в состав информационной системы. На данном уровне описывают программные интерфейсы, компоненты и поведение.
Архитектура данных объединяет в себе как физические хранилища данных, так и средства управления данными. Кроме того, в нее входят логические хранилища данных, а при ориентированности рассматриваемой компании на работу со знаниями, может быть выделен отдельный уровень - архитектура знаний (Knowledge architecture) . На этом уровне описываются логические и физические модели данных, определяются правила целостности, составляются ограничения для данных.
Следует особенно выделить уровень ИТ-архитектуры, поскольку он является связующим. На нем формируется базовый набор сервисов, которые используются как на уровне программной архитектуры, так и на уровне архитектуры данных.
Основной функцией ИТ-архитектуры является обеспечение функционирования важных бизнес-приложений для достижения обозначенных бизнес-целей. Если некоторая функция требуется сразу в нескольких приложениях, то ее следует перенести на уровень ИТ-архитектуры, тем самым повысив интеграцию системы и снизить сложность архитектуры приложений .
Последним в иерархии является уровень бизнес-архитектуры или архитектуры бизнес-процессов. На этом уровне определяются стратегии ведения бизнеса, способы управления, принципы организации и ключевые процессы, представляющие для бизнеса огромную важность .
Микроархитектура и макроархитектура. В большей степени термины микроархитектура и макроархитектура применяются для описания программных систем. В соответствие с рассмотренной моделью уровней архитектур ИС, микроархитектуру можно отнести к уровням программной архитектуры и архитектуры данных, а макроархитектуру - к уровню ИТ- архитектуры .
Микроархитектура описывает внутреннее устройство конкретного компонента или подсистемы, а макроархитектура описывает устройство всей ИС, как совокупности ее компонент или подсистем.
Сложность программных систем постоянно увеличивается. Об этом говорит сайт https://intellect.icu . Это обусловлено ростом объема передаваемой и обрабатываемой информации, усложнению самих задач по обработке информации и увеличению количества таких задач. Без применения какого-либо архитектурного подхода при построении сложных систем, их создание, обслуживание и модификация, в конце концов, станут нерентабельными для бизнеса.
Так, при разработке программной системы, например, входящей в состав инфраструктуры крупной организации, она представляется в виде множества модулей, каждый из которых выполняет определенную функцию, а все вместе они выполняют функции самой системы. В данном случае, организация каждого модуля будет являться микроархитектурой, а способы взаимодействия между этими модулями в рамках системы - макроархитектурой.
Уменьшение сложности реализации системы будет происходить за счет разбиения сложных задач на несколько более простых. В результате, это может привести к появлению большого набора простых задач, на основании которого можно будет реализовать любую, даже очень сложную.
Существуют два принципа, позволяющие оценить взаимное влияние компонентов системы друг на друга :
Принцип Low Coupling способствует распределению функций между компонентами системы таким образом,чтобы степень связанности между ними оставалась низкой.
Степень связанности (coupling) - это мера взаимозависимости подсистем. Данный принцип связан с одним из основных принципов системного подхода, который требует минимизации информационных потоков между подсистемами.
Подсистема с низкой степенью связанности (или слабым связыванием) имеет следующие свойства :
В свою очередь, принцип High Cohesion задает свойство сильного зацепления внутри подсистемы. В результате подсистемы получаются сфокусированными, управляемыми и понятными.
Зацепление (функциональное зацепление) - это мера связанности и сфокусированности функций подсистемы. Подсистема обладает высокой степенью зацепления, если ее функции тесно связаны между собой, и она не выполняет больших объемов работы.
Подсистема с низкой степенью зацепления выполняет множество различных функций никак не связанных между собой. Такие подсистемы создавать нежелательно, поскольку они приводят к возникновению следующих проблем:
Подсистемы с низкой степенью зацепления не имеют четкого функционального назначения и выполняют слишком разноплановые функции, которые можно легко распределить между другими подсистемами.
Следует заметить, что связанность является характеристикой системы целиком, а связность характеризует отдельно взятую подсистему.
Связанность (coupling) и связность (cohesion) являются общесистемными характеристиками и могут применяться при проектировании любых систем .
Среди платформенных решений проектирования архитектуры ИС выделяются следующие :
Следует заметить, что, как и любая классификация, данная классификация архитектур ИС не является абсолютно жесткой. В архитектуре любой конкретной ИС можно найти влияния нескольких общих архитектурных решений.
Большая часть процессов по проектированию ИС подразумевает использование опыта реализации похожих проектов. Сложно представить систему, для реализации которой нельзя было бы применить уже готовые решения или опыт, полученный при их создании.
Архитектурный стиль можно охарактеризовать как сходство в подходах к реализации поставленных задач, обусловленное опытом. Он определяет перечень компонентов системы, способы и условия их взаимодействия . Архитектурные стили подразделяются на пять следующих групп (рис. 3.3).
Рис. 3.3. Классификация архитектурных стилей
В системах пакетно-последовательной обработки решаемая задача делится на совокупность подзадач, механизм решения которых будет реализован в отдельных программных модулях, объединенных в линейную структуру. Выходные данные одной подзадачи являются входными данными для другой.
Стиль «конвейеры и фильтры» может считаться обобщением пакетнопоследовательной обработки. Его структура состоит из множества модулей, каждый из которых выполняет один или несколько процессов. Результаты выполнения одного процесса могут передаваться как одному, так и нескольким модулям, причем различными способами. Такие системы реализуют принцип конвейера, в котором могут присутствовать обратные связи.
Хорошим примером такого подхода может служить компилятор, который последовательно выполняет лексический анализ, семантический анализ, оптимизацию и генерацию кода .
Системы, функционирующие при помощи вызовов с возвратами, являются синхронными программными архитектурами, клиентская часть которых приостанавливает функционирование на время обслуживания собственного запроса сервером. Такие архитектуры могут включать произвольное количество уровней вложенности. Существует несколько типов подобного рода систем :
Стиль «программа-сопрограмма» является реализацией идей структурного программирования и подразумевает наличие главной управляющей программы (контроллера), отвечающей за процесс функционирования, и множества сопрограмм, реализующих функциональность. Разновидностью данного подхода считается архитектура «ведущий-ведомый» (Master-Slave Architecture), в которой основная программа и сопрограммы работают одновременно (параллельно). Контроллер выполняет функции диспетчера процесса, в то время, как сопрограммы выполняют задания, по завершении которых запрашивают у него новые.
Объектно-ориентированные системы являются частным случаем систем «программа-сопрограмма». Общение между объектами, включающими (инкапсулирующими) в себя код и данные, осуществляется либо с помощью вызовов процедур, либо при помощи сообщений . Следует заметить, что вызывающий объект должен знать, где находится вызываемый, кроме того, ему необходимо знать набор интерфейсов, которые он может использовать. В результате инкапсуляции скрываются данные о реализации какого-либо объекта, в результате чего становится возможным вносить в него изменения без уведомления об этом конечных пользователей, что является неоспоримым преимуществом данного типа архитектуры. Также к достоинствам можно отнести естественную поддержку распараллеливания процессов.
Клиент-серверные системы также можно считать частным случаем стиля «программа-сопрограмма», с той лишь разницей, что контроллер и сопрограммы могут располагаться на различных узлах сети.
Дня крупномасштабных систем применяют иерархически многоуровневый стиль, в котором каждый из имеющихся слоев можно рассматривать как набор сервисов для вышележащего слоя . Соответственно, вышележащий слой является клиентом, а нижележащий - сервером. Такой стиль оправданно применяется для создания стеков протоколов или операционных систем. Главным его достоинством является возможность ведения разработки каждого из слоев независимо. Стоит заметить, что не все алгоритмы можно реализовать в виде многоуровневой структуры, поэтому ее применение не всегда оправдано.
Системы, функционирующие по принципу независимых компонентов, используют механизм неявного вызова операторов, т. е. взаимодействующие операторы могут работать независимо и располагаться на разных хостах сети. Выделяют два типа подобных систем :
- системы взаимодействующих процессов (Communicating Sequential
Processes);
- системы, управляемые событиями (Event-Based Systems).
Основным принципом функционирования систем взаимодействия
процессов является обмен сообщениями между независимыми процессами.
В системах, управляемых событиями, процессы запускаются только в момент появления определенного события, однако получатель сообщения о событии может не знать об отправителе, а отправитель - о получателе. Похожие принципы функционирования у систем с прерываниями.
При наличии в системе общедоступного централизованного хранилища информации, ее относят к стилю централизованных данных (репозитория). При использовании данного подхода данные вводятся в системы однократно и при необходимости дополняются. Это обеспечивает общий доступ нескольких приложений к данным, возможность обмена данными, исключает дублирование и упрощает масштабирование. Существует две разновидности подобных систем :
Системы, построенные по принципу классной доски, характеризуются наличием общей разделяемой памяти (БД), хранящей результаты выполняемых процессами действий. В таких системах существует возможность оповещения заинтересованных процессов об изменениях в требуемой им информации.
Виртуальные машины представляют собой специальные эмуляторы, обеспечивающие программный интерфейс, отличный от используемого. Виртуальные машины могут напрямую работать с аппаратной платформой или являться надстройками операционной системы. При рассмотрении ИС в виде многослойной структуры, виртуальная машина будет являться верхним слоем, обеспечивающим взаимодействие с пользовательскими приложениями, к которым относятся:
Интерпретаторы предназначены для обеспечения работоспособности
различного рода программ, изначально созданных для различных платформ. Например, запуск и отладка Linux-приложений в среде Windows .
Системы, основанные на правилах, представляют все данные и логику в виде набора специализированных правил. В таких системах для каждой задачи существует набор фактов и набор правил. Для решения задачи к фактам применяются правила до тех пор, пока не будет получен результат. Примером таких систем может являться CLIPS.
Целесообразность использования различных архитектурных стилей приведена в табл. 3.1.
Таблица 3.1
Целесообразность применения стилей
Название стиля |
Целесообразность применения |
Пакетнопоследовательный |
Решаемую задачу можно разделить на подзадачи, использующие единственную операцию ввода-вывода |
Конвейеры и фильтры |
Процесс решения задачи можно представить в виде последовательности повторяющихся операций над независимыми однотипными данными |
Программа-сопрограмма |
Фиксированный порядок операций, простаивание из-за ожидания ответов от компонентов |
Объектно- ориентированный |
Возможность использования механизмов наследования, расположение объектов на разных хостах |
Клиент-серверный |
Возможность представить решаемую задачу в виде набора запросов и ответов от клиентов к серверу |
Иерархический многоуровневый |
Возможность представить задачу, как совокупность слоев с определенными интерфейсами, необходимость в различных вариантах реализации бизнес-логики, портируемость, использование имеющихся реализаций |
Взаимодействующие процессы |
Механизм взаимодействия между процессами - обмен сообщениями, объем долговременных централизованных данных небольшой |
Управляемые события |
Асинхронный процесс функционирования системы, возможно представление системы в виде независимых процессов |
Централизованная БД |
Доступна СУБД, задачи разделяются на производителей и потребителей данных, очередность исполнения компонентов определяется последовательностью входных запросов |
Классная доска |
Большое количество клиентов общающихся между' собой |
Интерепретатор |
Необходимо нивелировать специфику платформ, предоставить специфическую среду' работы |
Основанный на правилах |
Решение задачи можно представить в виде набора правил и условий их применения |
Исследование, описанное в статье про архитектура информационной системы, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое архитектура информационной системы и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем
Комментарии
Оставить комментарий
Разработка программного обеспечения и информационных систем
Термины: Разработка программного обеспечения и информационных систем