Архитектура Домино

Основные принципы построения платформы

Технологически платформа Домино состоит из следующих основных элементов:

Кратко о внутренней реализации платформы:

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

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

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

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

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


Принципы разработки в среде Домино

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

Выделение объектов, типов и классов определялось следующими соображениями:

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

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

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

Имеются следующие объекты:

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

Справочники - это товары, поставщики, товарные группы и категории, подразделения, банки и т.п.

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

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

Обычно в бизнес-приложениях разделяют два состояния документа: черновик и подтверждённый (акцептованный) документ. Если документ не подтверждён, то считается, что документ ещё не готов, находится в процессе ввода, проверки, согласования и т.п. Только после подтверждения документ учитывается в различных системных регистрах.

Регистр "отвечает" за учёт движений ресурсов (финансов, товаров, материалов и т.д.). В регистрах хранится информация о поступлении и расходе тех или иных ресурсов. Заложенная в платформу функциональность этих регистров позволяет  получить остатки ресурсов на определённый момент времени, рассчитать итоги и т.д.

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

 

Технологические особенности и средства разработки

Платформа Домино для всех прикладных решений, независимо от отраслевой специфики, обеспечивает:

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

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

Модель данных

Модель базы данных Домино, с которой работает разработчик прикладного решения, имеет ряд особенностей, отличающих её от классических моделей СУБД (например, основанных на реляционных таблицах), с которыми имеют дело разработчики в универсальных системах.

Модель базы данных полностью абстрагирована от формата хранения.

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

 

 

Особенности работы с БД

Разработчик прикладных решений работает непосредственно с платформой Домино, при этом он может:

Программный слой ядра платформы обеспечивает операции исполнения запросов, описания структур данных и манипулирования данными, транслируя их в соответствующие команды СУБД.

Для прикладного разработчика реализована объектная модель работы с базой данных. Разработчик оперирует объектами встроенного языка. Обращения к объекту, например, документу, происходят как к единому целому. Платформа обеспечивает сохранение целостности объектов, кэширование объектов, вызов соответствующих обработчиков событий и т.д.

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

Средства разработки

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

Редактор позволяет описать:

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

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

Средства редактора позволяют:

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

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

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

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

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

Имеется технология обновления приложения с сохранением внесённых пользователем изменений.

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

Домино рассчитано на широкую интеграцию с разными системами. Применяются различные варианты файлового обмена, протоколы http.

 

С точки зрения пользователя

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

Продукты системы ориентированы на решение следующих классов задач:

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

Домино предоставляет возможность автоматизации как за счёт внедрения отдельных прикладных решений, которые будут работать автономно или интегрироваться с использованием различных механизмов информационного обмена, так и за счёт использования комплексных решений. Использование обособленных решений проще и эффективнее, если отдельные задачи автоматизации на предприятии мало пересекаются. Комплексные решения эффективнее при сильной увязке различных задач автоматизации и готовности предприятия к формированию единого информационного пространства. Разумеется, на одном предприятии могут применяться и комплексные решения (например, для автоматизации основной деятельности), и обособленные программы (для вспомогательных или независимых задач).