Логика композиции решений на платформе Ultima Businessware®

Эксплуатируемое заказчиком решение (как правило, ERP-система) на платформе Ultima Businessware®, состоит из двух логически и физически различных сущностей: платформы и конфигурации.

Платформа Ultima Businessware® – инвариантное ядро системы (в дальнейшем термины платформа и ядро используются как взаимозаменяемые), которое остается неизменным для любой предметной области и бизнес-логики. Иными словами, для любого внедрения решения Ultima ядро системы, оно же платформа, – абсолютно такое же, как для любого другого.

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

хранения пользователей, их авторизации и проверки прав;

коммуникации между приложениями;

доступа к СУБД (сохранения объектов системы в базу данных);

управления изменениями конфигураций (механизм версионирования);

преобразования "сырых данных" из БД в объекты системы;

интеграции с другими системами – SOAP, JSON, REST, XML и т.д.;

среда разработки и изменения конфигурации.

Конфигурация (например, базовые отраслевые конфигурации eCommerceERP и eServiceERP) – описание предметной области. В сущности, это реализация бизнес-логики и ее информационная обвязка. Конкретное решение, работающее у конкретного заказчика, пусть и построенное на основе базовой конфигурации, в 100% случаев имеет свои отличительные черты, которые формируются в процессе создания технического задания, процесса внедрения и дальнейшей эксплуатации внедренного решения.

Конфигурация – это набор метаданных, описывающих бизнес-объекты:

документы;

справочники;

связи между справочниками и документами;

итоги;

обработчики, описывающие логику взаимодействия бизнес-объектов;

серверные модули;

клиентские модули;

права пользователей.

Общая модель представлена на схеме:

platform

Конфигурация целиком хранится в базе данных. В качестве СУБД используется Oracle 11gR2 Enterprise Edition или Oracle 12c Enterprise Edition, где имеется две схемы:

Kernel – статичная, именно из этой схемы сервер приложений при запуске загружает конфигурацию;

Ultima – прикладная, в ней создаются таблицы и хранятся данные прикладной области.

Ядро недоступно для изменения прикладным разработчиком, однако предоставляет интерфейс и инструменты для реализации бизнес-логики. Сама бизнес-логика, исполняемая на сервере приложений, реализуется в виде классов на C#, унаследованных от соответствующих классов платформы (в дальнейшем такие классы будут называться скриптами). Экранная логика выполняется на клиентском приложении и реализуется в виде модулей на любом .NET совместимом языке.

Система предоставляет прикладному разработчику готовые:

механизмы авторизации и аутентификации;

механизмы преобразования объектов, их выгрузки и сохранения в базу данных;

редактор бизнес-объектов и бизнес-логики;

механизмы коммуникации между частями приложения;

механизмы быстрого прототипирования пользовательских интерфейсов;

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

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