Что это такое? Архитектура системы – это описание продукта программирования (ОС, приложений, программ) с точки зрения пользователя, заказчика и специалиста по проектированию. В ней объясняется, из чего состоит система, как элементы взаимодействуют между собой.
Какие различают? Существует несколько основных типов архитектуры: многослойные, многоуровневые, сервис-ориентированные, микросервисные.
- Суть архитектуры системы
- Многослойная архитектура системы программ
- Многоуровневая архитектура системы ПО
- Сервис-ориентированная архитектура системы ПО (SOA)
- Mикросервисная архитектура
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.
Бесплатно от Geekbrains
Суть архитектуры системы
Определение архитектуры системы обозначает её как фундаментальную организацию целевой системы. Простыми словами, это описание основных компонентов и модулей с принципами их работы и взаимосвязи друг с другом. Также архитектура отображает различные вариации развития и эволюции системы.
Обзор популярной архитектуры под WEB
Существует минимум три тематических определения архитектуры системы (наборов рабочих моделей).
То, как видит систему пользователь, называется операционным (практическим) описанием, или Operation View. Описание содержит в себе этапы применения системы оператором, сценарии и потоки работ:
- графический и числовой вид операций;
- организационную структуру схемы (organization charts);
- различные вариации использования (use cases) и сценарии;
- диаграммы потоков задач (task flow diagrams);
- диаграммы потоков информации (information flow diagrams).
Для вас подарок! В свободном доступе до 09.07 —>
Скачайте ТОП-10
бесплатных нейросетей
для программирования
Помогут писать код быстрее на 25%
Чтобы получить подарок, заполните информацию в открывшемся окне
Логическое описание (Logical View) это видение системы со стороны руководителя или заказчика. Logical View включает в себя продукты, определяющие границы между самой системой и ее окружением, между функциональными интерфейсами и внешними системами. Кроме того, логическое описание включает в себя артефакты видов поведения и функций системы, потоков данных, внешних и внутренних наборов данных, внешних и внутренних пользователей и внутренних функциональных интерфейсов:
- принципиальные схемы;
- функциональная декомпозиция (data flow chart);
- диаграммы IDEF0;
- схемы или диаграммы функциональных потоков (FFBD).
Физическое описание (Physical View) определяет видение системы с точки зрения экспертов по проектированию. Здесь определяется физическая граница системы и её компонентов, информационно-технологическая структура, взаимодействие модулей и их интерфейсов, структура данных и её внутренняя база, а также применяемые в разработке системы правил. Вот некоторые примеры физических описаний архитектуры системы:
Архитектура современных FRONTEND приложений. 5 видов. Преимущества и недостатки
- физические блок-схемы с подробной детализацией;
- классификация базы данных;
- контроль интерфейса документов и их управления (interface control document, ICD);
- стандарты.
Архитектура операционной системы должна логически связывать между собой все три вида описаний, которые на выходе образуют конечный продукт со всеми основными функциями. Существует термин «архитектурные требования». Он определяет запросы, имеющие максимальное влияние на проектирование архитектуры системы, и указывает на её неразрывную связь с требованиями.
Разработкой архитектуры системы занимаются системные архитекторы. Это является одним из преобладающих видов специализации для этой профессии. Архитектура системы содержит большое количество структур, которые напрямую зависят от потребностей и требований заказчика и разработчика. Это требует определенного системного подхода. Отсюда вытекает ещё одно определение для архитектурного проектирования – системное проектирование.
Первые разработки компьютерных систем происходили без архитектуры. У такого подхода, как тогда казалось, было много плюсов. Разработчики не несли издержек по планированию и быстро реализовывали проект.
Однако со временем, по мере нагрузки и усложнения ПО, оно теряло управляемость. Приходилось добавлять новые изменения, которые с каждым разом становились дороже. Изначальные планы развивать проект за границей рушились. Системы без архитектуры того времени получили название «Большой комок грязи» (Big Ball of Mud).
Источник: gb.ru
Пример типовой архитектуры веб-приложения
Понимать архитектуру современного веб-проекта и знать концептуальные основы должен любой разработчик или тестировщик ПО. В этой статье мы рассмотрим типовую архитектуру веб-приложения. В первую очередь, давайте рассмотрим диаграмму ниже.
Представьте, что вы пользователь и хотите найти в поисковике «сильный и красивый туман, пронизанный солнечными лучами в лесу». Для этого вы заходите в Google и набираете что-то в стиле «Strong Beautiful Fog And Sunbeams In The Forest». И вот, один из первых результатов отправляет вас на Storyblocks. Нажав на ссылку, вы перенаправляете веб-браузер на страницу с картинкой. В это самое время ваш браузер посылает на DNS-сервер запрос, дабы установить соединение со Storyblock, а потом, получив ответ, отправить запрос на сайт.
Запрос поступает на балансировщик нагрузки. Балансировщик выбирает для обработки запроса один из веб-серверов, на которых работает сайт, причём делает это случайным образом. Выбранный веб-сервер извлекает часть информации об интересующей вас картинке из службы кэширования, а остальное он извлекает из основной БД. Если цветовой профиль для интересующего фото ещё не вычислен, соответствующая задача добавится в очередь заданий. Серверы выполняют обработку этих заданий асинхронно, обновляя БД с результатами.
Следующий этап — поиск похожих изображений, для чего в службу полнотекстового поиска поступает запрос с заголовком фото в качестве входных данных. В случае, если пользователь авторизован, информация об учётной записи загружается из БД учётных записей. Далее информация о просмотре веб-страницы поступает в firehose-хранилище для дальнейшей записи в облачное хранилище данных (данные из хранилища аналитики потом используют для обработки).
Потом сервер рендерит HTML-страницу, отправляя её обратно вашему веб-браузеру, но путём прохождения через балансировщик нагрузки. Веб-страница включает в себя CSS- и Javascript-файлы, загруженные в облачное хранилище. Так как хранилище подключено к CDN, веб-браузер связывается с CDN, чтобы получить содержимое. И вот теперь-то, наконец, веб-браузер покажет вам нужную страницу. Естественно, на деле всё происходит довольно быстро.
В целом, именно так выглядит типовая архитектура веба, хотя могут быть и отличия. Если хотите рассмотреть каждый из процессов более детально, прочитайте статью «Web Architecture 101». Её автор, Jonathan Fulton, постарался рассказать всё, что необходимо для понимания архитектуры современного web-проекта.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
Источник: otus.ru
Описание архитектуры программы пример
Описание архитектуры приложения
15.01.2010 10:51
При разработке достаточно сложного или крупного приложения необходимо уделять особое внимание проектированию и документированию его архитектуры. В DEVPROM есть отдельная фаза, которая называется «Проектирование» в рамках которой участники проекта могут готовить соответствующие диаграммы или модели. Существует достаточно много инструментов для проектирования и документирования программной архитектуры и дизайна. В DEVPROM можно загружать готовые модели или вставлять изображения подготовленных диаграмм. Это может быть особенно полезно, если не все участники проекта владеют или хотят устанавливать дополнительное ПО для просмотра диаграмм.
В данной заметке я хочу познакомить вас с другим вариантом описания архитектуры, базирующемся на стандарте ANSI/IEEE 1471-2000, Recommended Practice for Architecture Description of Software-Intensive Systems, как наиболее интересном подходе к описанию архитектуры программных решений. Интерес в первую очередь представляет сама методика описания архитектуры, которая базируется на трех уровнях представления архитектуры:
- Viewpoint — точка зрения (аспект), относительно которой мы рассматриваем архитектуру или дизайн приложения. Разные командные роли заинтересованы в раскрытии различных аспектов архитектуры приложения. Эта заинтересованность выражается термином concern. Например, разработчикам прикладного слоя и администраторам базы данных важно знать и понимать архитектуру приложения с точки зрения хранения данных, то есть им интересен persistent viewpoint.
- View — представление, некоторая часть архитектурного описания приложения, например, функциональная, логическая или посвященная безопасности, например security view. С некоторой точки зрения мы захватываем несколько представлений, например, с точки зрения развертывания решения нам интересны представления deployment view и dependency view. На первом отражено развертывание компонентов решения и связей между ними, а на втором — зависимых компонентов или способов связи с ними.
- Model — модель, содержащая конкретные компоненты и отражающая связи между ними. В качестве моделей можно использовать диаграмму классов для отображения представления предметной области или логического представления архитектуры приложения.
Очень важным следствием из описания архитектуры выходят технологические риски проекта, которые необходимо оценивать и планировать действия команды по их снижению, подробнее об управлении рисками читайте здесь: Управление рисками проекта
Источник: myalm.ru