Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить бесплатно
Главная БлогАрхитектура системы: понятие, виды
Архитектура системы

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

Дата публикации: 21.11.2022
27 879
Время чтения: 16 минут
Дата обновления: 17.11.2024
В статье рассказывается:

Что это такое? Архитектура системы – это описание продукта программирования (ОС, приложений, программ) с точки зрения пользователя, заказчика и специалиста по проектированию. В ней объясняется, из чего состоит система, как элементы взаимодействуют между собой.

Какие различают? Существует несколько основных типов архитектуры: многослойные, многоуровневые, сервис-ориентированные, микросервисные.

В статье рассказывается:

  1. Суть архитектуры системы
  2. Многослойная архитектура системы программ
  3. Многоуровневая архитектура системы ПО
  4. Сервис-ориентированная архитектура системы ПО (SOA)
  5. Mикросервисная архитектура
  6. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

Суть архитектуры системы

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

Существует минимум три тематических определения архитектуры системы (наборов рабочих моделей).

Суть архитектуры системы
Суть архитектуры системы

То, как видит систему пользователь, называется операционным (практическим) описанием, или Operation View. Описание содержит в себе этапы применения системы оператором, сценарии и потоки работ:

  • графический и числовой вид операций;
  • организационную структуру схемы (organization charts);
  • различные вариации использования (use cases) и сценарии;
  • диаграммы потоков задач (task flow diagrams);
  • диаграммы потоков информации (information flow diagrams).
Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 31971 pdf иконка

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

  • принципиальные схемы;
  • функциональная декомпозиция (data flow chart);
  • диаграммы IDEF0;
  • схемы или диаграммы функциональных потоков (FFBD).

Физическое описание (Physical View) определяет видение системы с точки зрения экспертов по проектированию. Здесь определяется физическая граница системы и её компонентов, информационно-технологическая структура, взаимодействие модулей и их интерфейсов, структура данных и её внутренняя база, а также применяемые в разработке системы правил. Вот некоторые примеры физических описаний архитектуры системы:

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

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

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

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

Однако со временем, по мере нагрузки и усложнения ПО, оно теряло управляемость. Приходилось добавлять новые изменения, которые с каждым разом становились дороже. Изначальные планы развивать проект за границей рушились. Системы без архитектуры того времени получили название «Большой комок грязи» (Big Ball of Mud).

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

Многослойная архитектура системы программ

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

Архитектура вычислительных систем разделяет ПО на следующие слои:

  • Слой представления (Presentation Layer). Это интерфейс пользователя, который несет ответственность за удовлетворение использования программы юзером.
  • Слой бизнес-логики (Business Logic Layer). Он разделяет UI/UX от вычислений, относящихся к бизнесу. Бизнес-требования постоянно меняются, а слой Business Logic Layer позволяет легко менять логику и подстраиваться под нововведения, никак не касаясь других слоев.
  • Слой передачи данных (Data Link Layer). Система постоянно коммуницирует с постоянными хранилищами и производит большое количество операций по обработке информации, не связанной с бизнесом. Именно за это взаимодействие и отвечает слой Data Link Layer.

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

Многослойная архитектура системы программ
Многослойная архитектура системы программ

Плюсы многослойного построения архитектуры системы:

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

Несмотря на множество плюсов такой подход имеет свои минусы:

  • небольшие масштабы построения;
  • монолитная структура с усложненным процессом внесения нововведений;
  • прохождение данных по каждому слою вне зависимости от необходимости их передачи.
Только до 25.11
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300

Многоуровневая архитектура системы ПО

Многоуровневая архитектура информационных систем делит программное обеспечение на уровни по принципу взаимоотношения «клиент-сервис». Уровни разграничивают ответственность поставщика данных и конечного потребителя.

Рассмотрим подробно возможные уровни архитектуры системы:

Одноуровневая система

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

Двухуровневая система

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

Трехуровневая и n-уровневая системы

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

Бюджет на создание такой системы будет гораздо выше. Высокая стоимость подразумевает использование метода в крупных программных разработках с комплексным решением (например, сложные ПО, требующие определенных параметров производительности и масштабируемости). В тандеме с современной сервис-ориентированной архитектурой это подход способен создавать самые сложные модели.

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

Сервис-ориентированная архитектура системы ПО (SOA)

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

Основы и элементы архитектуры системы такого типа:

  • сервисы (Services);
  • связующее программное обеспечение или сервисная шина (Service Bus);
  • хранилище данных сервиса или сервисный репозиторий (ServiceRepository catalogue of services);
  • безопасность набора архитектурных принципов —SOA (SOA Security);
  • управление SOA (SOA Governance).
Пользователь направляет запрос со стандартным протоколом и форматом данных по сети. Сервисная шина предприятия (ESB — enterprise service bus) обрабатывает запрос. Она считается центром сервис-ориентированной архитектуры компьютерных систем, так как несет ответственность за маршрутизацию и оркестровку.

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

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

Существует два вида сервисов:

  • Атомарные сервисы (Atomic services). Предоставляют функции, не подлежащие последующему разделению.
  • Композиционные сервисы (Composite services). Это несколько атомарных сервисов, которые обеспечивают сложную составную функциональность.

Типы сервисов:

  • организационные (Entity service);
  • доменные (Domain Service);
  • вспомогательные (Utility Service);
  • интегрированные (Integrated Service);
  • сервис безопасности (Security Service);
  • сервис приложений (Application Service).

Mикросервисная архитектура

Микросервисная архитектура систем программирования основывается на разработке приложений как набора сервисов. Каждый из небольших сервисов обособлен в собственном процессе и связывается с несложными легковесными механизмами. Зачастую это API для HTTP-ресурса.

Основа таких сервисов – бизнес-возможности. Они имеют отдельный автоматизированный механизм и работают отдельно друг от друга.

Административное управление между сервисами сводится к минимуму. Они могут использовать разные технологии хранения данных и иметь отличные друг от друга языки написания.

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

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

Mикросервисная архитектура
Mикросервисная архитектура

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

  • сервисы (Services);
  • сервисная шина (Service Bus);
  • внешняя конфигурация (External configuration);
  • шлюз API (API Gateway);
  • контейнеры (Containers).

Основными характеристиками микросервисной архитектуры являются:

  • сервисная компонентизация;
  • организация отталкивается от бизнес-возможностей;
  • ориентация на продукты, а не на проекты;
  • умные конечные точки и глупые каналы (Smart endpoints and dumb pipes);
  • децентрализованное управление;
  • децентрализованное управление данными;
  • автоматизированная инфраструктура;
  • защита от сбоев;
  • эволюционное проектирование.
Привлекает мир кодирования и создания программ? На курсе программиста с нуля до Junior вы освоите основы, познакомитесь с языками и инструментами разработки, и станете готовы к созданию своих первых проектов в IT-индустрии.

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

Плюсы:

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

Недостатки:

  • При обмене данных между сервисами есть повышенный риск сбоя.
  • Затрудненное управление из-за большого количества сервисов.
  • Распределительная архитектура обязывает искать пути решения ряда проблем: задержка в сети, удержание гармоничного баланса нагрузки.
  • Требует обязательного тестирования в распределительной среде.
  • Долгое время реализации.
Дарим скидку от 60%
на курсы от GeekBrains до 24 ноября
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку

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

Оцените статью:
2.14
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
Читайте также
prev
next
Бесплатные вебинары:
prev
next
Как работает дизайн-студия на примере одного кейса 

Как работает дизайн-студия на примере одного кейса 

Узнать подробнее
Инновационные подходы к обучению информационным технологиям

Инновационные подходы к обучению информационным технологиям

Узнать подробнее
Как стать Python-разработчиком

Как стать Python-разработчиком

Узнать подробнее
Что нужно знать разработчику

Что нужно знать разработчику

Узнать подробнее
Кто такой тестировщик и как им стать

Кто такой тестировщик и как им стать

Узнать подробнее
Чем занимается программист и как им стать

Чем занимается программист и как им стать

Узнать подробнее
Как искусственный интеллект помогает и мешает задачам кибербезопасности

Как искусственный интеллект помогает и мешает задачам кибербезопасности

Узнать подробнее
Бесплатный вебинар про внедрение искусственного интеллекта

Бесплатный вебинар про внедрение искусственного интеллекта

Узнать подробнее
Какие есть профессии в ИТ

Какие есть профессии в ИТ

Узнать подробнее
Смените профессию,
получите новые навыки,
запустите карьеру
Поможем подобрать обучение:
Забрать подарок

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...