1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lyl340321-ams

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Перевод текста на русский язык

Перед вами текст, переведённый с китайского языка на русский.

Введение

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

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

История изменений

Дата Версия Описание цели изменения Раздел изменений Автор Проверка
2018/02/05 1.0 Создание документа Раздел изменений Лю Яньлун
2019/01/05 1.1 Обновление документа Раздел изменений Лю Яньлун

1. Обзор платформы

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

Принципы:

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

1.1 Обзор и позиционирование

Концепция бизнес-основы платформы: бизнес-логическая прикладная платформа и базовая архитектурная платформа находятся между ними как промежуточный слой, решая проблемы взаимодействия и управления между «бизнес-описанием и операционной системой прикладного программного обеспечения, а также базовой архитектурой программного обеспечения». Операционная система решает проблемы взаимодействия и управления между прикладным программным обеспечением и аппаратным обеспечением, в то время как базовая архитектура программного обеспечения решает проблемы взаимодействия и управления между прикладной программной системой и операционной системой. Бизнес-основная платформа решает проблемы взаимодействия и управления между бизнес-описанием прикладного программного обеспечения и операционной системой, базовой архитектурой программного обеспечения. Как показано на рисунке ниже:

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

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

Техническая структура: основной уровень платформы использует технологию Spring Container в качестве ядра, управляя всем жизненным циклом объектов Java и создавая основные механизмы обработки платформы вокруг контейнера (такие как управление транзакциями, обработка исключений, механизм выполнения транзакций, механизм расширения модуля, многоуровневая разработка и поддержка модели домена). Уровень поддержки платформы строится на основном уровне и предоставляет базовые компоненты разработки для поддержки приложений (например, компоненты разбиения на страницы, компоненты безопасности, компоненты вызова транзакций и т. д.). Уровень расширения модулей основан на основном уровне, предоставляя решение проблем различных областей через модули расширения, которые могут быть интегрированы в прикладные системы в виде подключаемых модулей. Прикладные системы выбирают соответствующие модули в соответствии с потребностями решения конкретных проблем в области.

Системная архитектура бизнес-основной платформы:

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

1.2 Подсистемы проекта

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

Название подсистемы Аббревиатура подсистемы
Основная подсистема ams-core
Система рабочего процесса ams-bpm
Система безопасности ams-security
Базовая веб-подсистема ams-web

1.3 Каталог инженерных спецификаций

Разработка проекта должна строго следовать требованиям веб-фреймворка.

├── pom.xml                      maven проект объект модель файл
src/main/java                               Исходный код
├── cn.trythis.ams                               
  ├── bootconfig                       Инициализация руководства конфигурации
  ├── assembler                       Данные объекта преобразования
  ├── event                            Библиотека событий
  ├── factory                            Услуги заводской
  ├── application                        Транзакционные услуги слой
  ├── repository                              
    ├── dao                          Доступ к данным объект
    └── entity                          Данные сущности
  ├── pojo                                 
    ├── dto                          Передача данных объект
    ├── vo                            Демонстрация объект
    └── eo                          Перечисление код значение объект
  ├── portal                          Проект входа конфигурация
  ├── service                           Бизнес-услуги слой
  ├── store                           Бизнес модуль компонент
    ├── authcode                        Проверка код реализация
    ├── esbmodule                        ESB компонент
    └── stable                         Транзакция контроль компонент
  ├── support                          Базовая поддержка функция
    ├── annotation                        Аннотация объект
    ├── beanprocessor                       Анализ объект
    └── exception                        Исключение инструмент пакет
  ├── web                             Web услуги
    ├── controller                        MVC контроллер
    └── service                       Web услуга реализация
  └── util                               Инструмент пакет
src/main/resource                            Ресурсный файл
  ├── static                             Статический ресурс
    ├── css                            Стиль файл
    ├── js                             Js файл
    └── html                           Html файл
  ├── template                          Шаблон файл папка
  ├── application.yml                    Springboot конфигурация файл
  ├── application-dev.yml                   Разработка среда конфигурация файл
  ├── application-prod.yml                  Генерация среда конфигурация файл
  └── logback.xml                          Журнал конфигурация
src/test/java                                 
├── cn.trythis.ams                              
  ├── junit                                
  ├── orm.dao                              
  ├── Другое

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

src/main/webapp  
├── WEB-INF  
  ├── web.xml  
└── 其他  

2. Платформа разработки

Проект строится на основе сервис-ориентированной архитектуры (SOA) и бизнес-компонентов (BC). Цель разработки платформы:

  1. Поддержка многоуровневой модели для разработки сценариев.
  2. Предоставление стандартных компонентов для сложной бизнес-логики.

2.1 Построение J2EE многоуровневой модели

Архитектура

Бэкенд использует традиционную трёхуровневую архитектуру, которая была расширена до четырёхуровневой. Всё приложение разделено на следующие слои:

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

Четырёхуровневая архитектура лучше отражает концепцию «высокой связности и низкой связанности», что способствует стандартизации и делает структуру программного обеспечения более понятной. Это распространённая архитектура бэкенда.

Доступ к данным (orm пакет) отвечает за доступ к базе данных, создание сопоставления между сущностями и таблицами базы данных, а также за сохранение объектов сущностей.

Бизнес-логика (service пакет) реализует бизнес-логику и является ключевым компонентом системы.

Взаимодействие с транзакциями (interaction пакет) определяет функции взаимодействия с пользователем, интегрирует управление транзакциями, журналы потоков и услуги управления потоками. Этот слой не обрабатывает бизнес-логику, он является прямым вызывающим и интеграционным слоем для сервисного слоя.

Представление (web пакет) отвечает за отображение и получение пользовательских данных и предоставляет интерактивный интерфейс пользователю.

2.2 Построение модели, управляемой доменом

2.3 Многоуровневые бизнес-объекты

В стандартной модели MVC на основе J2EE в коде можно выделить следующие типы объектов: BO, DAO, POJO и другие Java классы, такие как JSP и Servlet.

PO — постоянный объект (Persistant Object, PO), также называемый объектом данных, соответствует записи в базе данных. PO не содержит операций над базой данных. В платформе разработки находится в пакете cn.trythis.ams.orm.entity, создан с помощью плагина mybatis.

VO — объект представления (View Object, VO), соответствующий данным, отображаемым на экране. Для веб-страницы или интерфейса SWT или Swing используется один объект VO для всего экрана. В зависимости от потребностей бизнеса может соответствовать таблице или нет. В платформе разработки находится в пакете cn.trythis.ams.vo.

DTO — объект передачи данных (Data Transfer Object, DTO), используемый для удалённых вызовов и других случаев, требующих передачи большого количества объектов. Объект не должен содержать бизнес-логику, только необходимые атрибуты. В платформе разработки находится в пакете cn.trythis.ams.dto, при необходимости наследуется от базового класса DTO.

DAO — объект доступа к данным (Data Access Object, DAO), используемый для доступа к базе данных. Через него PO сохраняется в DB. Используется для доступа к БД и сохранения PO в виде POJO. В платформе разработки находится в пакете cn.trythis.ams.orm.dao, создан с использованием плагина mybatis.

3. Основные механизмы обработки

3.1 Механизм контекста платформы

Платформа предоставляет поддержку контекста приложения через фабричный класс AmsContextHolder. Контекст можно получить через фабрику. Доступны следующие контексты:

  • AppContext,
  • SysContext,
  • TradeContext,
  • UserContext,
  • ComponentContext.

3.2 Механизм выполнения, управляемый транзакциями

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

3.3 Механизм контроля безопасности

Модуль ams-core реализует механизм безопасности на основе springsecurity и обеспечивает соответствующую упрощённую и инкапсулированную обработку. Он не включает систему управления пользователями, но предоставляет интерфейс AmsSecurityConfiguration для реализации базовой информации о пользователях и ролях.

ams-web модуль наследует ams-core и расширяет решение для авторизации на основе модели RBAC.

RBAC (Role Based Access Control) — это контроль доступа на основе ролей. Включает три сущности: пользователи (user), роли (role) и ресурсы/разрешения (resource). Между ролями и ресурсами/разрешениями существует отношение «многие ко многим». Между пользователями и ролями также существует отношение «многие ко многим». Пользователи и ресурсы/разрешения не имеют прямого отношения, роль выступает посредником для получения ресурсов, доступных пользователю.

Для соответствия требованиям банковского контроля доступа в RBAC добавлена организационная составляющая контроля доступа. Добавлены сущности организации (org), отношения «многие ко многим» между организацией и ресурсами/разрешениями, атрибут принадлежности пользователя к организации.

Окончательно получается пересечение разрешений, соответствующих роли пользователя, и разрешений, соответствующих организации пользователя.

3.4 Механизм взаимодействия между передним и задним планами

Взаимодействие основано на концепции RESTful, протокол взаимодействия — http/https, формат данных взаимодействия — json.

4. Расширяемые модули выполнения

Зависит от механизма сканирования кода spring контейнера, обеспечивает независимое объединение модулей. Платформа выполняет инициализацию ресурсов унаследованных модулей, восстановление ресурсов, ограничение API модулей и обеспечивает механизм расширяемого объединения платформы.

4.1 Создание основного фундаментального модуля

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

4.2 Создание модуля безопасного компонента

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

4.3 Создание функциональных возможностей веб-приложения

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

4.4 Создание модуля планирования задач

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

4.5 Создание модуля механизма процессов

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

4.6 Создание модуля пакетных задач

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

5. Создание компонентов платформы разработки

Использование механизма spring boot starter для создания компонентов платформы разработки, компоненты упакованы отдельно и построены отдельно.

Модуль Описание
Сервис транзакций Ограничение функциональности на основе транзакций
Доступ к данным (ORM) Настраиваемый ORM на основе mybatis
Управление журналами Система журналов
Аутентификация пользователя Компонент безопасности
Контроль разрешений Встроенная система управления разрешениями
Системное администрирование Базовая система управления
Контракт на обслуживание Управление контрактами на обслуживание
Мониторинг системы Системный мониторинг

6. Другие ресурсы

6.1 Подготовка ресурсов

  • Проект разрабатывается на Windows7 64-битной системе и развёртывается на Linux. Чтобы избежать некоторых проблем совместимости, рекомендуется использовать предоставленный нами пакет программного обеспечения.

  • Используемые компоненты и версии:

Компонент Версия
JDK 1.8 +
Spring 5.2.15.RELEASE
Spring boot 2.3.12.RELEASE
Spring cloud Hoxton.SR12
sofa boot 3.11.1
Mybatis 3.4.6
Activiti 5.21.0
CXF 3.2.9

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Построение управляемой и контролируемой платформы для разработки бизнес-основы, основанной на компонентной структуре и управляемой транзакциями. Развернуть Свернуть
JavaScript и 6 других языков
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lyl340321-ams.git
git@api.gitlife.ru:oschina-mirror/lyl340321-ams.git
oschina-mirror
lyl340321-ams
lyl340321-ams
dev