Корпоративная модель быстрого развития ELCube
ELCube (Логический Куб) решает проблему несоответствия линий изменения предприятий и программного обеспечения. Мы стремимся создать быструю и простую корпоративную модель, которая позволит предприятиям чувствовать себя более уверенными и поможет программистам преодолеть трудности. Используя метод моделирования бизнес-процессов, мы решаем проблемы бизнеса, а не связываем его с конкретными технологическими решениями.
Объявление прав
Код ELCube открыт в соответствии с лицензией AGPL-3.0; при соблюдении условий лицензии вы можете свободно распространять и модифицировать его. Полный текст лицензии доступен в LICENSE файле или на сайте https://www.gnu.org/licenses/agpl-3.0.html
Связанные ссылки
Демонстрационная система ELCube
Руководство ELCube [в процессе доработки]
Репозиторий ELCube Front Gitee
Репозиторий ELCube Front GitHub
Присоединиться к сообществу
### Основные возможности
Технические характеристики
- Поддержка любых транзакционных баз данных RDBMS
- Поддержка хранения данных в JSON и таблицах отношений баз данных
- Установлено трехуровневое кэширование: Redis, приложение, ElasticSearch, что позволяет минимизировать нагрузку на базу данных
- Разделение клиентской и серверной частей с использованием архитектур SpringBoot + Vue, совместимость с микросервисами SpringCloud
- Поддержка распределённого развертывания, распределённых блокировок, многопоточности и безопасности потока
- Поддержка онлайн-кодирования и выполнения
- Поддержка многосредового отладки, конфигурации и сотрудничества нескольких человек
- Сохранение состояния данных при превышении времени сессии
- Поддержка пользовательских тем
- Множество вкладок и задач на стороне клиента
- Поддержка импорта и экспорта конфигураций, одиночного развертывания#### Функциональные характеристики
- Поддержка конфигурирования документов (сложные формы и таблицы)
- Поддержка конфигурирования функций управления бизнесом, пользовательского поиска и результата поиска (соответствие данным)
- Поддержка создания пользовательских меню и сохранения условий поиска
- Поддержка конфигурирования сложных бизнес-процессов (поток бизнеса)
- Поддержка согласования рабочих процессов, согласования между участниками и управления рабочими процессами
- Поддержка онлайн-рисования диаграмм BPMN и конфигурирования рабочего процесса
- Поддержка конфигурирования прав доступа (детализированное управление правами и уровнями полей данных)
- Поддержка целостности данных при ограничении прав доступа
- Поддержка конфигурирования графиков данных
- Поддержка экспорта данных и шаблонов файлов
- Поддержка генерации SQL-запросов в графическом режиме, пользовательского создания отчетов и детального анализа отчетов
- Поддержка кастомизации разработки и компонентов
Что такое ELCube?
ELCube берёт своё начало из внутреннего проекта TS5 компании Logical Cube, который был разработан как решение промышленного уровня для сектора лизингового финансирования. Благодаря накопленному опыту в реализации проектов, мы обнаружили, что TS5 обладает общим моделью развития, адаптированной к другим отраслям.
История TS5- 2008 Был запущен финансовый системой лизинговой компании, которая работала на внутреннем рынке. Это произошло во время глобального финансового кризиса. Индустрия финансовых услуг была не слишком оптимистична, и сектор лизингового финансирования также пострадал. Непрерывные изменения процентных ставок Центральным банком и частые дефолты клиентов создали значительные проблемы для бизнес-системы, которая была построена без каких-либо доработок; эта система стала предшественником TS5.
-
2009 Успешно был запущен третий поколенный лизинговый системой, кодовое название которой — T3. После анализа ошибок предыдущей системы, T3 прошел полную технологическую перестройку и улучшил свои бизнес-процессы. Она охватывала весь жизненный цикл операций лизинга, улучшала управление финансовыми счетами и системы изменения, а также интегрировала прямые банковские соединения с корпорациями. Это позволило автоматизировать обработку средств вместо ручной работы, что стало первым шагом в формировании бизнес-модели TS5.
-
2013 Компания-владелец команды полностью перешла на крупную ERP-систему от международной корпорации. Команда адаптировала свой технический акцент, став консультантами по этой ERP-системе. Хотя лидерство мирового уровня и инновации значительно повысили уровень мысли команды, стандартизованные модули зарубежных систем сталкивались с трудностями при адаптации к многообразным потребностям бизнеса в Китае, требуя существенной кастомизации. Это увеличивало затраты на внедрение сверх высоких цен на продукцию.
-
2019 Была основана Логическая Клетка для решения проблемы несоответствия темпов изменения предприятий и кривых адаптации программного обеспечения, что вызывало трудности при реализации бизнес-систем. Используя накопленный за десять лет опыт, они начали разрабатывать эволюционную платформу предприятия TS5.
-
2021 TS5 был переименован в ELCube и выпущен как открытый проект.#### Непреодолимые низкокодовые платформы
За последние годы низкокодовые платформы развития стали популярными среди специалистов отрасли. Десятки производителей как внутри страны, так и за рубежом представили свои продукты, включая крупнейшие компании, такие как Alibaba, Tencent и Huawei.
Большинство низкокодовых платформ демонстрируют примеры, преимущественно связанные с CRM, управлением расходами, HR и проектным управлением — легкими приложениями, основанными на гибких формах и конфигурациях процессов. Однако эти приложения не являются фундаментальными элементами корпоративной деятельности. На данный момент нет специализированной низкокодовой платформы, предназначенной специально для корпоративных систем.
Почему нет успешных примеров использования низкокодовых платформ для корпоративных систем? Мы глубоко задумываемся над этим вопросом, осознавая, что самостоятельное создание таких систем бизнес-персоналом остается сложной задачей на сегодняшний день. Инженерия программного обеспечения требует структурного мышления; поэтому ELCube ориентирован на разработчиков, а не на низкокодовые платформы для бизнес-пользователей. Мы позиционируем себя как корпоративный подход к разработке программного обеспечения.#### Быстрое развитие моделей для разработчиков, то есть модели разработки
В отличие от других продуктов, мы придерживаемся концепции "конфигурация как код", которая преобразует некоторые работы по разработке в системные конфигурации,
что позволяет декомпозировать функциональность системы путём конфигурирования, чтобы достичь быстрой реализации и быстрого реагирования на изменения.
ELCube — это технологическая платформа, созданная специально для сложных корпоративных систем. Она имеет большинство характеристик низкокодовых платформ,
но она отличается от всех низкокодовых платформ. На этой платформе мы предлагаем набор готовых к использованию функций,
а также переопределяем методы внедрения программного обеспечения.### Применимость
Системы управления бизнесом
- Финансовая аренда, факторинг, управление финансами и другие финансируемые системы
- Коллекторская деятельность, вход контроля, профили пользователей и другие системы управления рисками
- Управление складом, административные системы торгового центра и другие системы управления запасами
- CRM, HR и другие типовые корпоративные системы
- Некоторые сценарии использования OA, но без углубленного анализа
Другие сценарии
Эта архитектура достаточно мощна, однако её практическая применимость требует глубокой оценки со стороны специалистов различных отраслей,
но мы уверены, что расширение компонентов позволит ей достичь бесконечной мощности.### Введение в архитектуру ELCube
Облачная модель
Модуль заявок является основным модулем системы и базовым элементом облачной модели.
Через использование модуля заявок можно создавать различные структурированные бизнес-заявки, структура которых может иметь многослойную структуру.
Заявка состоит из состояния, карточки, бизнес-правил, индекса и синхронизации данных.
- Состояние: контролирует жизненный цикл одной заявки, то есть жизненный цикл одного бизнес-процесса, от создания до одобрения, затем до завершения;
в разных состояниях заявка может иметь различные бизнес-характеристики.
- Карточка: хранит данные бизнеса, каждая карточка имеет свои возможности и структуру данных, позволяющую выполнять ввод и вывод данных заявки.
- Бизнес-правила: регулируют взаимодействие между данными карточек внутри заявки, контроль данных в разных состояниях, логику вычисления данных при вводе и другие бизнес-логики,
а также могут регулировать взаимодействие данных между различными заявками.
- Индекс: структура данных заявки многомерна; одна заявка может содержать несколько форм, даже несколько таблиц, а также вложенные таблицы,
что делает структуру данных заявки более сложной, чем просто запись в одной таблице. Таким образом, поиск данных становится важной частью бизнес-системы.Очень важный аспект — это индексация, которая заключается в извлечении необходимых для поиска полей из документов с помощью определённых правил, преобразовании их в более простую форму, которую можно использовать для поиска через поисковую систему. Мы используем Elasticsearch для выполнения задачи поиска данных документов.- Синхронизация данных: Преобразование данных документов в определённый формат и вывод этих данных на другой носитель информации для подготовки к повторному использованию. Это может быть отчётность по данным, анализ больших объёмов данных, BI-аналитика, управление рисками и т. д.; это также является частью процесса ETL при обычной разработке систем, и мы уже выполнили эту работу заранее.
Бизнес-процесс
Полностью работающая бизнес-система не ограничивается простым вводом и выводом одной формы; она должна управлять всем жизненным циклом бизнеса. Например, маркетинговый процесс обычно состоит из следующих этапов: возможность сделки -> встреча -> предложение цены -> заключение контракта -> оплата -> послепродажное обслуживание. Иногда этот бизнес-процесс имеет ответвления, что приводит к созданию диаграммы BPM.
ELCube бизнес-процесс является частью движка документов и отвечает за связывание нескольких документов в соответствии с бизнес-правилами, чтобы создать диаграмму процесса.
Документы отвечают за конкретные бизнес-логику, а бизнес-процесс описывает взаимосвязи между входящими и выходящими данными бизнеса, контролируя маршрут бизнеса от начала до завершения.
Почему не использовать BPM для описания бизнес-процесса?Некоторые системы используют BPM для управления полным бизнес-процессом. Однако мы не используем BPM для этого, поскольку принимаем во внимание атомарность бизнеса. В длинном бизнес-процессе каждый документ представляет собой атомарную единицу со своим жизненным циклом. Этот подход к управлению жизненным циклом аналогичен реальному миру, где каждое действие обёрнуто другим.
Мы хотим, чтобы каждый документ имел свою жизнь даже вне контекста бизнес-процесса, являясь фактическим объектом в реальном мире, не зависящим ни от каких других факторов.
Характеристики бизнес-процесса
-
Гибкость: Бизнес-процесс может быть изменён в любое время в зависимости от потребностей бизнеса, без необходимости беспокоиться о версиях;
-
Низкая связанность: Полный бизнес-процесс образуется путём связи двух документов, изменения любого из которых не влияют на весь бизнес-процесс;
-
Поддержка многопоточности и рекурсии: Бизнес-процесс поддерживает одновременное создание нескольких документов, рекурсивное или циклическое создание документов, без проблем с блокировками или загрязнением контекста;
-
Множество конечных точек: Характеристика бизнеса заключается в начале с одной точки входа, расширении бизнес-ветвей и окончании в различных конечных точках, что полностью поддерживаются бизнес-процессами.#### Процесс согласования
Утверждение потока использует BPM; каждый документ может быть настроен с одним или несколькими потоками утверждения. Преимущество разделения состоит в том, что каждая роль становится четко определенной: документ отвечает за бизнес-логику, а BPM — за перемещение процесса. Процесс контролирует состояние документов и запускает логику документов, чтобы завершить весь процесс утверждения.
На основе этих характеристик, поток утверждения станет очень простым, возможно, даже без необходимости программирования.#### Поиск данных
Благодаря мощным возможностям движка документов, он уже подготовил данные для поиска, хранящиеся в поисковой системе Elasticsearch;
С помощью конфигурирования интерфейса поиска можно создать управление бизнес-функциональностью;
Этот конфигурационный процесс поддерживает настройку полей, формата, условий поиска, сортировки и других обычных функций;
Условия поиска включают выпадающие списки, диапазон поиска, поиск по дате, подсказки поиска и другие условия поиска; поддерживают сортировку полей, пагинацию,
динамическое суммирование опций выпадающего списка и количество возможных наборов результатов в опциях;
Можно также сохранять условия поиска для быстрого использования таких же условий при последующих поисках;
И самое важное, большую часть этого можно сделать без какого-либо программирования, обеспечивая миллионы данных ответы за секунды.#### Большие данные
Функция поиска данных ограничивается поиском данных в Elasticsearch и не удовлетворяет сложным требованиям к статистическому анализу данных и обработке больших данных;
Функция данных представляет собой глубокое расширение модуля поиска данных, который добавляет поддержку bigtable данных, таких как ClickHouse, поверх Elasticsearch;
С помощью функции обнаружения данных сотрудники могут самостоятельно извлекать данные из различных источников данных, автоматически генерировать SQL-синтаксис для разных источников данных и создавать
интерактивные отчеты BI, а также представлять результаты данных через графики, добавлять их на главную страницу управления или создавать большой экран DataV.#### Гранулярность прав доступа
Мы используем модель RBAC как основную модель прав доступа и добавляем модель Limit данных как модель прав доступа данных;
На уровне функциональных прав доступа:
- Поддерживается отдельное назначение прав доступа для различных моделей документов
- Поддерживается отдельное назначение прав доступа для чтения/записи для каждой модели документов
- Поддерживается отдельное назначение прав доступа для различных состояний каждой модели документов
- Поддерживается отдельное назначение прав доступа для различных карточек каждой модели документов
- Поддерживается отдельное назначение прав доступа для чтения/записи для различных карточек каждой модели документов
- Поддерживается отдельное назначение прав доступа для каждого источника данных
- Поддерживается отдельное назначение прав доступа для уровня полей каждого источника данныхНа уровне прав доступа данных:
- Поддерживается назначение прав доступа для любого поля в документах (включая организационную структуру, департаменты, дочерние компании и т.д.)
- Поддерживается назначение прав доступа для любого поля диапазона
- Поддерживается многомерная фильтрация данных с комбинированной настройкой
Создайте таблицу с различными комбинациями следующим образом:| Сценарий | Данные | Чтение | Чтение с фильтром | Запись | Запись с фильтром | Управление состоянием записи |
| --- | --- | --- | --- | --- | --- | --- |
| Нет прав доступа | | | | | | |
| Полный доступ к чтению и записи | | Y | | Y | | |
| Полный доступ к чтению | | Y | | | | |
| Полный доступ к чтению и частичное управление картами | | Y | Y | | | |
| Частичный доступ к чтению | Y | Y | | | | |
| Частичный доступ к чтению и частичное управление картами | Y | Y | Y | | | |
| Полный доступ к чтению и записи, чтение всех карт, запись части карт | | Y | | Y | Y | |
| Полный доступ к чтению и записи, чтение части карт, запись меньшего количества карт | | Y | Y | Y | Y | |
| Полный доступ к чтению и записи, чтение всех карт, запись части карт, управление частью целевых состояний | | Y | | Y | Y | Y |
| Полный доступ к чтению и записи, чтение всех карт, запись части карт, управление частью целевых состояний | | Y | | Y | | Y |
| Частичный доступ к чтению и записи, чтение всех карт, управление всеми целыми состояниями | Y | Y | | Y | | |
| Частичный доступ к чтению и записи, запись части карт, управление всеми целыми состояниями | Y | Y | | Y | Y | |
| Частичный доступ к чтению и записи, запись части карт, управление всеми целыми состояниями | Y | Y | | Y | Y | Y |
| Полный доступ к чтению и записи, чтение части карт, запись меньшего количества карт, управление частью целевых состояний | | Y | Y | Y | Y | Y || Частичный доступ к чтению и записи, чтение части карт, запись меньшего количества карт, управление всеми целостными состояниями | Y | Y | Y | Y | Y | |
| Частичный доступ к чтению и записи, чтение части карт, запись меньшего количества карт, управление всеми целостными состояниями | Y | Y | Y | Y | Y | Y |Благодаря дизайну модели документов, поддерживающей такую детализированную гранулярность прав доступа и возможность кастомизации, таких решений на рынке немного.
Версия Community и Professional не имеют различий
Функционал Community версии полон, нет никаких ограничений
Community версия включает всё вышеописанное и основана на том же коде, что и профессиональная версия. Мы будем продолжать использовать компоненты Community версии для создания более широкого спектра отраслевых приложений в демонстрационной системе;Компоненты динамических форм и динамических таблиц в Community версии могут использоваться для создания полноценной системы, готовой к выпуску в производство, если они используются правильно. Открытый компонентный пакет также включает множество универсальных карточек, таких как связанные формы, загрузка файлов, шаблоны файлов, история документов, зеркальные документы, рабочие процессы и другие.
Даже открытый компонентный пакет включает финансовые модульные карточки, такие как план выплат, поступление средств, компоненты списания платежей, что достаточно для создания системы лизинга с арендой.
Конечно, как основа работы предприятия, нам все еще требуется реализация проектов для обеспечения выживаемости компании; мы будем продолжать разработку более специализированных карточек в профессиональной версии, чтобы удовлетворять конкретные требования отраслей; если вас интересует профессиональная версия, вы можете связаться с нами через услуги кастомизации.### Услуги кастомизации
Если вам требуются глубоко кастомизированные услуги, присоединитесь к сообществу.
Обзор использования
ELCube Backend является серверной частью модели ELCube и должна использоваться вместе с веб-фронтом ELCube.
Программная архитектура

Инструкция по установке
- Установите JDK
- Установите реляционную базу данных, такую как MySQL5
- Установите Redis
- Установите ElasticSearch
- Настройте адреса и ключи базы данных, Redis и ElasticSearch в application-dev.yml
- Запустите программу через Spring Boot
- Запустите веб-фронт ELCube
- Войдите в систему с начальным администратором admin/admin для тестирования
Участие в развитии
- Разветвите этот репозиторий
- Создайте ветку Feat_xxx
- Подтвердите изменения кода
- Создайте запрос на слияние
Комментарии ( 0 )