Практика программиста по архитектуре: обзор архитектуры, бизнес, приложение, технология, архитектура данных

задняя часть

Архитектурный дизайн

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

Резюме проекта архитектуры

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

бизнес-архитектура

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

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

图片

Рисунок 5.1

Бизнес-архитектура - это программное обеспечение Master Master, принятое гладкое проведение архитектуры программного обеспечения для архитектуры бизнеса составляется на техническом уровне, рациональное разделение труда также должно быть сделано на основе развития бизнес-архитектуры. Если нет бизнес-архитектуры, разработка программного обеспечения будет очень слепой. Бизнес-архитектура - это точка конвергенции и потребностей в разработке, проводится ли анализ потребностей, будь то функциональное развитие для достижения желаемых целей, как на этой основе. Мы сталкиваемся с некоторыми проблемами на работе, такие как персонал НИОКР, указанный анализ спроса не станет бит, но надо под сомнение, кто сделает то, что нужно учитывать на месте, почему несоответствие разработки продуктов и пользователей хотят, от них root, это будет потому, что они не разобрались с четкой бизнес-структурой, нет консенсуса.

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

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

(1) Платформа бизнеса.

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

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

(3) Изолировать различные виды бизнеса.

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

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

◎ Бизнес seckill предъявляет высокие требования к высокому уровню параллелизма и должен быть отделен от обычного бизнеса.

(4) Различать основной процесс и вспомогательный процесс. Необходимо знать, какой процесс является основным в системе электронной коммерции, и отдавать приоритет обеспечению плавного завершения основного процесса во время работы; вспомогательный процесс может быть асинхронным в фоновом режиме, чтобы избежать сбоя вспомогательного процесса из-за влияющих на сбой основного процесса.

Архитектура приложения

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

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

При разделении системы сбалансируйте сложность бизнеса и технологии и убедитесь, что система неудовлетворительна. Какая архитектура приложений будет принята, на нее влияет сложность бизнеса, включая этап разработки и бизнес-характеристики компании; в то же время на нее влияет техническая сложность, включая этап разработки ИТ-технологий и уровень внутренней техники. Сложность бизнеса (включая объем бизнеса) будет определять сложность технологии, архитектура приложений должна избегать слишком сложных технологий при решении сложности бизнеса, обеспечивая приземление бизнес-архитектуры.

图片

Рисунок 5.2

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

(1) Стабильный

◎ Все сосредоточено на стабильности.

◎ Структура должна быть максимально простой и понятной, а стремление к маленькому и красивому, а не к большому и законченному.

◎ Ничего не дизайн.

(2) Развязка

◎ Отделите стабильную часть от летучей.

◎ Отделите основной бизнес от неосновного.

◎ Разделите основной процесс и вспомогательный процесс электронной коммерции.

◎ Отделите приложения от данных.

◎ Разделение услуг и деталей реализации. (3) Абстракция

◎ Применение абстракции: приложение полагается только на сервисную абстракцию, не полагаясь на детали и местоположение службы.

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

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

(4) слабая связь

◎ Асинхронные междоменные вызовы. Попробуйте асинхронно отделить разные домены бизнеса.

◎ Непрофильные бизнесы должны быть максимально асинхронными. Основной и непрофильный бизнесы должны быть максимально асинхронными.

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

(5) Отказоустойчивая конструкция

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

◎ Отказоустойчивость кластера: система приложений развертывается в кластере, чтобы избежать единой точки обслуживания.

◎ Аварийное восстановление в нескольких комнатах: развертывание в нескольких комнатах и ​​мультиактивность.

Технологическая архитектура

Техническая архитектура — это реализация технических решений для функций (или услуг), предложенных в бизнес-архитектуре, включая реализацию программной системы, выбор операционной системы и проектирование среды выполнения. Границы технической архитектуры относительно размыты, и для разных аудиторий уровень детализации контента тоже разный.Стек технологий больше внимания уделяет технической архитектуре сверху вниз, но направленность каждого слоя разная. Уровень принятия технических решений может быть связан с техническим выбором системы или группы систем.Общее понимание должно гарантировать, что выбор не вызывает никаких других рисков.Например, если Redis выбран для высокопроизводительного хранилища, это необходимо обеспечить максимальную закрытость сети.Избегать публичного доступа к сети;еще один пример, при выборе различных продуктов, реализованных на языке COBOL, необходимо учитывать небольшое количество разработчиков на рынке и необходимость выдерживать более высокую итерацию расходы.

Простая техническая архитектура вышеупомянутой бизнес-архитектуры показана на рисунке 5.3.

图片

Рисунок 5.3

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

(1) Без сохранения состояния, то есть старайтесь не сохранять данные о состоянии на локальной машине.

(2) Многоразовый.

◎ Степень детализации повторного использования — это абстрактная служба с бизнес-логикой, а не детали реализации службы.

◎ Ссылка на службу зависит только от абстракции службы.

(3) свободная муфта

◎ Вызовы между бизнес-областями и асинхронная развязка, насколько это возможно. ◎ Установите время ожидания и размер очереди при синхронном вызове.

◎ Отделите относительно стабильные базовые услуги от нестабильных технологических услуг.

(4) Управляемый

◎ Услуга может быть понижена.

◎ Услуга может быть ограничена.

◎ Услуга может быть переключена.

◎ Сервис можно контролировать.

◎ Механизм белого списка.

◎ Заключение договоров на обслуживание.

(5) Основные услуги

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

◎ Базовые услуги автономны и относительно независимы.

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

◎ Реализовать физическую изоляцию основных услуг, включая данные, относящиеся к основным услугам.

схема данных

Архитектура данных — это архитектура хранения данных (ресурсов), принципы ее построения и архитектура приложения.

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

图片

Рисунок 5.4

Схема данных состоит из двух частей: содержимого статической части и содержимого динамической части.

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

Жизненный цикл данных делится на два уровня: полный жизненный цикл данных одного бизнес-объекта, который часто связан с одним рабочим процессом или потоком утверждения при моделировании процессов; полный жизненный цикл объектных данных в нескольких бизнес-доменах, который отражает Преобразование и сопоставление между несколькими бизнес-объектами данных,

Часто ассоциируется со сквозным бизнес-процессом BPM. Здесь следует отметить, что хотя данные являются статическим содержимым, жизненный цикл данных или сквозное сопоставление данных часто косвенно отражает процесс, что очень важно.

Методы моделирования данных включают структурно-ориентированные традиционные методы анализа модели ER и методы анализа объектно-ориентированной модели класса объектов.Все они являются возможными методами моделирования данных, но традиционные методы анализа модели ER легче реализовать в базовой физической модели базы данных. объектно-ориентированный объектный класс легче отражать абстракцию и повторное использование. Особенно в моделировании архитектуры предприятия объектно-ориентированный и структурно-ориентированный часто строго не различаются, и во многих случаях эти два метода смешиваются, но основное внимание уделяется различению направленности каждого метода или инструмента и решаемой проблеме. . Существует довольно много матричных анализов, связанных с данными.Ключевой матричный анализ на этапе бизнес-архитектуры — это CRUD-подобный матричный анализ между бизнес-объектами и бизнес-процессами, бизнес-компонентами и бизнес-функциями, в то время как ключевой матричный анализ в архитектуре приложений Этап представляет собой объекты логической или физической модели и матричный анализ между конкретными модулями приложения или функциями приложения. Идеи этих двух в основном схожи, но уровни внимания различны.Первый фокусируется на идентификации основных данных и анализе бизнес-компонентов, а второй фокусируется на разделении функциональных модулей приложения и предварительном анализе интегрированных интерфейсы между модулями.

Согласно предыдущим идеям, нам все же следует разбить анализ интеграции данных на два уровня: анализ на уровне бизнеса и анализ на уровне приложений и ИТ-реализации. Первый фокусируется на прояснении интеграции бизнес-объектов и взаимодействии между бизнес-процессами или бизнес-областями, а второй фокусируется на том, как лучше обмениваться данными или как добиться интеграции и взаимодействия данных с помощью аналогичных инструментов BI или платформ больших данных.

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

(1) Унифицированное представление данных, то есть обеспечение своевременности, непротиворечивости, точности и целостности данных.

(2) Разделение данных и приложений.

◎ Система приложений зависит только от логической базы данных.

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

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

(4) Разделение чтения и записи базы данных.

◎ Раздельное чтение и запись для баз данных с большим количеством посещений, таких как библиотеки заказов.

◎ Используйте базу данных с большим объемом данных в качестве подбазы данных и подтаблицы.

◎ Разделяйте и изолируйте базы данных в разных бизнес-доменах. ◎ Настройте резервную базу данных для важных данных.

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

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

图片