Технические возможности
Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота настраивания, и внедрения Единый подход принципов работы сетевой и локальной версий Максимальная открытость системы
Уровни системы H2 PostgreSQL Микро- ядро Ядро GUI WEB СУБДМодульная система Интерфейсы пользователя 1324 Журнал Файловая система Уровни системы являются не только логическими. Обмен информации, между каждым уровнем может быть произведен через сеть, реализуя максимальную гибкость под конкретные нужды пользователя. В локальной версии все уровни объедены воедино.
СУБД H2 быстрая и небольшая по размерах база данных, поддерживает сохранение данных в оперативную память. Хорошо подходит для работы с локальной версией. PostgreSQL высокоэффективная бесплатная база данных с открытым исходным кодом корпоративного уровня.
Модульная система Функции ядра могут быть расширены с помощью модулей расширения. Модули расширения отвечают, например, за разные типы данных, их обработку и доступ к соответствующим функциям. Микро-ядро создаёт необходимые для модулей таблицы в СУБД, предоставляет информацию о правах доступа пользователя, реализует ограничение этих прав, предоставляет объектный доступ к таблица данных, может экспортировать и импортировать данные в файл.
Ядро Отвечает за обработку данных модулями, предоставляет доступ к данным в соответствии с правилами модулей (которые при этом могут производить дополнительную обработку и проверку правильности данных). Сообщает другим компонентам системы об изменениях данных в режиме online. Ведет журнал изменений данных и может производить откат последних действий пользователя (локальная версия). Единый журнал может использоваться несколькими ядрами локальных версий одновременно, таким образом обеспечивая одновременный доступ к совместным данным через сеть без необходимости настройки СУБД.
Локальная версия Преимущества: Простота внедрения Недостатки: Не позволяет одновременно использовать данные многим пользователям Не позволяет настроить разные права доступа разным пользователям Локальная версия Файловая система
Локальна версия/Сохранение в журнал Преимущества: Простота внедрения Возможность одновременной работы с одними данными разным пользователям Недостатки: Не позволяет настроить права доступа разным пользователям Относительно большой риск порчи данных из-за полной открытости данных Локальная версия Журнал
Сетевая версия/СУБД Преимущества: Относительная простота настройки Возможность работы с единой базой по сети Недостатки: Невозможность гибкого распределения прав доступа PostgreSQL Микро- ядро Ядро Интерфейсы пользователя Клиент Сервер Сеть
Сетевая версия/Микро-ядро Преимущества: Возможность работы с единой базой по сети Возможность гибкой настройки прав доступа Высокая продуктивность сервера, относительная простота настройки доступу к данным через Интернет (по протоколу HTTP) Недостатки: Необходимость настройки сервера приложений PostgreSQL Микро- ядро Ядро Интерфейсы пользователя Клиент Сервер Сеть: HTTP RMI Другие протоколы
Сетевая версия/Ядро Преимущества: Возможность работы с единой базой по сети Возможность гибкой настройки прав доступа Интерактивность: все клиенты могут следить за изменениями данных в режиме online, отпадает необходимость в обновление данных пользователем (если изменения в базу данных вносятся через ядро) Недостатки: Необходимость настройки сервера приложений Большие нежели в предыдущем варианте нагрузки на сервер Невозможность использовать протоколу HTTP напрямую (остается возможность использовать HTTP туннель, что существенно снижает скорость обмена данными) и большой поток трафика усложняют доступ к данным через Интернет PostgreSQL Микро- ядро Ядро Интерфейсы пользователя Клиент Сервер Сеть: RMI Другие протоколы, поддерживающие вызовы на стороне клиента
Интерфейсы пользователя Модульность (добавление новых окон, редакторов атрибутов, и т.д....) Обмен с ядром осуществляется через так называемые callback-и (механизм обратных вызовов). Ново- созданный компонент регистрируется в ядре и реагирует на важные изменения данных, при этом, ядро шлёт сообщения об изменениях всем зарегистрированным компонентам. Это в свою очередь позволяет разделить функции внесения изменений в базу данных и отображения этих изменений. Таким образом, если изменения были внесены макросом или другим компонентом, пользователь все равна сможет их отследить в режиме реального времени.
Журнализация Журнализация обеспечивает не только отмену последних действий и совместный доступ к данным, а также существенно поднимает надежность сохранения данных. Каждое действие пользователя дописывается в журнал в виде, так называемой, транзакции пользователя. Таким образом если внезапно пропало питание компьютера, или роботу программы по другим причинам было прервано, все данные смогут быть не только восстановлены до последнего действия пользователя, но и останется возможность использовать историю действий пользователем, так как будто бы нечего не случилось. Транзакции пользователя обеспечивают целостность данных, например если сбой произошел во время изменения данных макросом, данные будут восстановлены в том виде в котором они были до начала работы макроса. На данный момент, журнализация поддерживается только в локальной версии.
Формат файлов Файл Ramus представляет собой архив с XML файлами и другими файлами, сохраненными модулями расширения (например прикрепленными к модели файлами других программ). Файлы в основном являют собой данные таблиц и могут быть считаны и изменены другими программами.
Макросы В программное обеспечение интегрирована консоль jruby Есть возможность использовать макросов на языке программирования JavaScript та Ruby Планируется добавить возможность разработки модулей расширения (как ядра так и графической части) с помощью макросов Планируется добавить возможность простого добавления поддержки разных языков программирования, которые поддерживаются официальным проектом Java Scripting (