Системный архитектор | О системной архитектуре (Часть 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
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose