VisualData

... это НАДЕЖНО

"Упасть любой может. Но не каждый может так быстро подняться, чтобы никто ничего не заметил". В этой шутливой форме озвучено одно из требований к эксплуатационной надежности. Неважно по какой причине, программной или аппаратной, рухнул сервер базы данных. Он должен немедленно автоматически запуститься заново, и сделать это так, чтобы как можно быстрее восстановить согласованное состояние данных, непосредственно предшествующее сбою. Для этих целей сервер платформы Visual Data пишет все транзакции в журнал транзакций, и периодически создает контрольные точки восстановления. Запускаясь, сервер проверяет целостность рабочей базы данных, и, если она нарушена, восстанавливает ее из самой "свежей" контрольной точки, после чего переисполняет последнюю порцию транзакций, накопившихся с момента создания этой точки.

Но это только один аспект многогранного понятия «надежность».

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

Но для платформы Visual Data решение этой проблемы выглядит чуточку иначе, так как здесь бизнес-логика приложения существует отдельно от кода платформы. И общая надежность платформы определяется двумя практически независимыми факторами: надежностью исполнения и алгоритмической надежностью приложения.

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

Алгоритмическая надежность полностью определяется качеством реализации бизнес-логики приложения. В платформе Visual Data бизнес-логика описывается моделью приложения, которая интегрирована непосредственно в структуру базы данных. Эта интеграция автоматически обеспечивает перманентную логическую целостность и согласованность данных в базе. Кроме того, функциональную непротиворечивость бизнес-логики обеспечивается прямо на входе, в процессе дизайна: визуальный конструктор позволяет связывать между собой только те элементы модели приложения, которые гарантировано не приведут к конфликту в процессе формирования данных. Хотя функциональную ошибку можно допустить и при конструировании модели. Назначить связи не тот функционал, перепутать вектор отношения,.. Что выявит первая же попытка использования.