Системный архитектор | О системной архитектуре (Часть 1)
Системный архитектор | О системной архитектуре (Часть 1)

Предисловие

Начиная с этой статьи, я разберу статьи про "системного архитектора" софт-экзамена. Если что не так, укажите на это.

1.1 Архитектура системы

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

Определение архитектуры взято из стандарта IEEE 1471-2000. Архитектура — это базовая организация системы, воплощенная в компонентах, их взаимосвязи друг с другом и окружающей средой, а также в принципах, лежащих в основе ее проектирования и разработки.

Например, Java Platform Standard Edition 8 также можно назвать архитектурой платформы Java. Структуру, связанную с Java, можно увидеть на рисунке.

Рисунок из: https://docs.oracle.com/javase/8/docs/index.html.

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

Изображение взято с: https://dev.mysql.com/doc/refman/8.4/en/innodb-architecture.html.

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

【Архитектура системы】

Архитектура системы (System Architecture)даОбщее структурное представление системы на высоком уровне.,Это скелет и основа системы.,Поддержка и ссылки на различные части,включатькомпонентыРазъемспецификация ограниченияа такжеПринципы, которые определяют дизайн и развитие этого контента.,этода Тот, который изображает общую абстрактную структуру системы.добрыйозначает。Архитектура системыразработанныйЦель состоит в том, чтобы создать серию связанных абстракций для системы, которую необходимо разработать.,Используется для руководства проектированием и внедрением всех аспектов системы.,Архитектурное проектирование играет ключевую роль в процессе разработки системы.,Архитектураразработанныйплюсы и минусы Определяет надежность и жизненный цикл системы.。

1.2 Определение архитектуры программного обеспечения

【Архитектура программного обеспечения】

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

1.3 Этап разработки архитектуры программного обеспечения

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

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

2. По мере того как программные системы становятся больше и сложнее, структура и характеристики всей системы становятся все более сложными.

Тем это важнее.

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

Дизайн и технические характеристики стали значительно более важными.

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

новые способы.

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

1.4 Значение архитектуры программного обеспечения в разработке программного обеспечения

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

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

прослеживаемость и последовательность.

● Стадия проектирования. Стадия проектирования — это самый ранний и наиболее целенаправленный этап исследования архитектуры программного обеспечения. В основном архитектура программного обеспечения находится на этом этапе.

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

Используйте ожидание.

● Этап реализации: алгоритмы и типы данных, разработанные на этапе проектирования, выражаются на языке программирования в соответствии с требованиями проектирования и архитектуры.

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

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

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

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

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

Роль.

1.5 Классификация архитектуры программного обеспечения

典型的Архитектура模型включатьмногоуровневая архитектураархитектура, управляемая событиямимикроядерная архитектураМикросервисная архитектураиОблачная архитектураПять категорий。

1. Многоуровневая архитектура (Layered Architecture)да最常见的软件Архитектура,Это также стандартная архитектура де-факто. Общая ситуация,в наслоениях,будет разделен на четыре этажа:Уровень представления、бизнес-уровень、слой сохранения、база данных。

● Уровень представления: пользовательский интерфейс, отвечающий за визуальное и пользовательское взаимодействие;

●Бизнес-уровень: реализует бизнес-логику;

● Уровень сохраняемости: на этом уровне размещаются данные и операторы SQL;

● База данных (уровень базы данных): сохранение данных.

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

архитектура, управляемая событиямимикроядерная архитектураНетда Я жду, пока коровы и лошади позаботятся,Это все сложные,В обычных обстоятельствах эти двое не будут проверены.,Просто сосредоточьтесь на определении.

2. Микросервисная архитектура (Microservices Architecture) Это сервис-ориентированная архитектура. (Service-Oriented Обновление архитектуры, SOA). Каждая служба представляет собой независимую единицу развертывания. (Separately Deployed Единица). Эти устройства распределены и отделены друг от друга посредством протоколов удаленной связи (таких как REST, SOAP). соединять.

еще надо посмотреть картинку,Это можно понять, посмотрев на картинку,Но внизу некоторые наши компании уступают лошадям,,Большинство используемых микросервисных архитектур являются ложными предложениями.,этот Что Реальностьда Реальность现上所遗留的问题。Например, нельзя удовлетвориться однимВсе элементы распределены.Во многих случаяхда Использование одной единицы микросервисов имеет единственную точку риска.。

3. Облачная архитектура (Cloud Architecture)В основном решают масштабируемостьи Проблемы параллелизма,Это самая простая для расширения архитектура.

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

● Сетка сообщений: управляет запросами пользователей и контролем сеансов (сессий при поступлении запроса).

После прихода он решает, какому процессору его назначить.

● Промежуточное программное обеспечение данных (Data Grid): копирует данные в каждый процессор, то есть синхронизирует данные. гарантировать определенный процесс

Все устройства получают одни и те же данные.

● Сетка обработки: необязательно, если запрос включает в себя различные типы блоков обработки, это промежуточное программное обеспечение

Промежуточное программное обеспечение отвечает за координацию блоков обработки.

● Промежуточное программное обеспечение развертывания (менеджер развертывания): отвечает за запуск и завершение работы процессоров, мониторинг нагрузки и времени отклика.

В период, когда нагрузка увеличивается, блок обработки запускается заново, а когда нагрузка снижается, блок обработки выключается.

1.6 Моделирование архитектуры программного обеспечения

Модели архитектуры программного обеспечения делятся на4добрый:структурная модельрамочная модельдинамическая модельимодель процесса

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

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

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

● Модель процесса. Модель процесса изучает этапы и процессы построения системы, а ее структура является результатом следования определенным сценариям процессов.

1.7 Архитектурный стиль программного обеспечения

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

  • Тип трубчатого фильтра: подходит для разделения системы на несколько независимых ступеней;
  • Основная программа/подсистема и объектно-ориентированный архитектурный стиль: могут использоваться для проектирования внутренних компонентов;
  • Стиль виртуальной машины: часто используется для создания интерпретаторов или экспертных систем;
  • Стиль C/S и B/S: подходит для распределения данных и обработки в определенном диапазоне и формирования системы через сетевые соединения;
  • Стиль платформы/плагина: подходит для приложений с возможностью расширения подключаемых модулей;
  • Стиль MVC: широко используется при разработке программ взаимодействия с пользователем;
  • Стиль SOA: применяется при корпоративной интеграции и других аспектах;
  • Стиль C2: подходит для разработки программного обеспечения с графическим интерфейсом пользователя для создания гибких и масштабируемых прикладных систем;

Подвести итог

Главы занимают меньше баллов на реальном экзамене,В большинстве случаев будет вопрос с несколькими вариантами ответов.,Но чтобы мы, разработчики, понимали основы и предысторию.,Стремитесь стать дизайнером архитектурных систем,Но это ступенька.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.