Один из эффективных способов обеспечения сохранности информации и возможности поэтапной отмены и возврата изменений, выполненных над объектом данных, является метод использования виртуальных данных. Виртуальными называются данные, не имеющие физического образа в памяти. Такие данные представлены в виде ссылки на источник исходной информации и набора правил, по которым из нее получается объект виртуальных данных. Если вернуться к прошлому примеру, то выяснится, что нет никакой необходимости хранить сглаженную кривую в виде набора пар величин глубина-значение. Достаточно иметь ссылку на исходную кривую и коэффициент сглаживания, примененный для получения сглаженной кривой. На первый взгляд такой способ хранения информации может показаться неоптимальным из-за возрастающего объема вычислений, необходимых для восстановления результирующей кривой. Но опыт показывает, что для ресурсов современных вычислительных комплексов ни такой, ни, даже, на порядок больший объем вычислений не является критичным и вполне может быть выполнен за промежуток времени на порядок меньший, чем время цикла регенерации экрана. Кроме того, если уж сложность задачи будет такова, что объем вычислений действительно будет сказываться на быстродействии системы, то совсем не обязательно вычислять значение кривой на всем интервале ее существования. Вполне достаточно вычислить результат только для той части кривой, которая в данный момент отображается в клиентской области окна приложения. Каковы же преимущества такого подхода? Прежде всего — экономится оперативная память. И хотя в случае с каротажными кривыми эта экономия совсем мала, следует заметить, что в случае работы с волновыми полями АКШ, где данные занимают десятки мегабайт, такая экономия оказывается очень кстати. Второе важное преимущество состоит в том, что геофизическая база данных не засоряется кривыми, которые являются промежуточными результатами вычислений, не несут информационной нагрузки, а лишь усложняют навигацию. Такие кривые вполне могут существовать в виртуальном виде только в момент вычислений. Следует отметить, что виртуальная кривая, с точки зрения предоставления заключенной в ней информации ведет себя точно так же, как и обычная кривая, и вполне может, в свою очередь, служить источником данных для любой другой виртуальной кривой. И, наконец, третье важное удобство такого подхода состоит в возможности мгновенного поэтапного возврата к предыдущему состоянию данных на экране в случае ошибочных действий, что в свою очередь открывает перед интерпретатором неограниченные возможности для экспериментов с обрабатывающими модулями без боязни испортить исходные, промежуточные или какие-то другие данные. Если вернуться к прикладным задачам геофизики, то в случае обработки профилеметрии реально существующими данными будут лишь два профиля и некоторые константы, а кривые с вычисленными объемами затрубного пространства, колонны, цемента, и типа сечения будут виртуальными. То есть они будут отображены на экране, напечатаны в случае необходимости и т.д., но в базе данных их никогда не будет, а будет только алгоритм их получения. Собственно такой подход и воплощает в себе реализацию принципа виртуальности. дальше>>>