Технические возможности

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