=Paper= {{Paper |id=None |storemode=property |title=Ретроспективная основа совместной реорганизации сложных информационных ресурсов (Factographic Base for the Complex Collaborative Information Resources Reorganization) |pdfUrl=https://ceur-ws.org/Vol-803/paper10.pdf |volume=Vol-803 |dblpUrl=https://dblp.org/rec/conf/rcdl/Znamenskij11 }} ==Ретроспективная основа совместной реорганизации сложных информационных ресурсов (Factographic Base for the Complex Collaborative Information Resources Reorganization) == https://ceur-ws.org/Vol-803/paper10.pdf
     Ретроспективная основа совместной реорганизации
           сложных информационных ресурсов♣

                                         © С.В. Знаменский
                 Институт программных систем РАН имени А.К. Айламазяна
                                  svz@latex.pereslavl.ru

                  Аннотация                                измениться во всех остальных, где присутствует
                                                           возможность изменения. Это изменение должно
    Информационные ресурсы, адресованные                   происходить быстро, в идеале за маленькие доли
    комплексным проблемам, непрерывно дора-                секунды, и оставаться при открытии в другом
    батываются с привлечением широкого кру-                браузере или компьютере (при отказе браузера).
    га специалистов и организаций.                            По завершению оформления заказа он пере-
    Доработка часто нуждается в неожиданных                даётся в службу формирования. Поскольку у обра-
    коррекциях структуры ресурса, парал-                   батывающего заказ сотрудника случаются очереди
    лельной разработке и сопоставительном                  других дел или заказов, то на пересылку не жалко
    тестировании версий частей, восстановле-               потратить доли минуты.
    нии ранее доступного.                                     Заказанный список используется для уточнения
    Обсуждается идея построить такую систему               профиля пользователя и близости товаров и уточ-
    на неизменяемых записях, адресуемых с                  нения рекомендательного сервиса и персона-
    учётом давности изменений.                             лизации пользовательского интерфейса. Эта обра-
    Новый подход предположительно должен                   ботка информации сложна, но не нуждается в
    удешевить и ускорить неограниченную                    более быстрой реакции, чем за доли часа.
    совместную доработку сложных ресурсов.                    Во всех трёх ситуациях замедление в десятки
                                                           раз не бросается в глаза пользователю.
1. Введение                                                   Если реализацию такого сервиса основывать на
                                                           одной компоненте, то         в минуты обработки
   Часть информационной системы, обладающую в
                                                           медленной транзакции база не сможет обслуживать
каждый момент времени внутренне согласованным
                                                           быструю, что повлечёт непозволительные задержки
состоянием, принято называть компонентой. Кроме
                                                           других пользователей в первой ситуации. Выход
данных, относящихся к состоянию, компонента                мог бы видеться в параллельной обработке
может содержать незавершённые транзакции.                  транзакций, но это (см., например, [1]) получается
Каждая транзакция должна скачком изменить сис-
                                                           лишь для некоторых приложений.
тему, перевести её в новое согласованное состояние.
                                                              По стандартной технологии (в частности, СОА),
Компонента может поддерживаться реляционной
                                                           проблема решается разбиением на компоненты, об-
СУБД, либо иными средствами.
                                                           менивающиеся системными сообщениями. В итоге
   Несмотря на огромное количество теоретичес-             архитектура системы оказывается тесно завязанной
ких и прикладных разработок, направленных на               на сложную логику конкретного приложения, что
повышение эффективности механизмов обработки
                                                           резко повышает как стоимость разработки, так и
транзакций, компонента может гарантировать ожи-
                                                           риски архитектурных (и поэтому принципиально
даемо быструю реакцию на каждый запрос к систе-
                                                           неустранимых) ошибок, всплывающих в ходе вери-
ме только в случае прозрачной фиксированной ло-            фикации и сопровождения системы.
гики без трудоёмких алгоритмов обработки данных.
Иначе очередной скачок к новому состоянию порой            1.1 Цель исследований
требует неожиданно много времени.
   Для пояснения на примере рассмотрим пользо-                Целью работы является упрощение разработки
вательский интерфейс интернет-магазина. Измене-            систем, направленных на высококачественную
ние заказа доступно как на страничке описания              информационную поддержку такой совместной
товара, так и в корзине заказанных товаров. Удобно         творческой деятельности, которая включает в себя
открыть несколько окон с описаниями товаров. При           совершенствование организации самой этой
изменении количества в одном окне оно должно               деятельности. Подобные саморазрабатываемые
                                                           системы [2] сейчас базируются на СОА и настолько
                                                           ресурсозатратны в разработке и сопровождении,
Труды 13й Всероссийской научной конференции                что доступны лишь немногим десяткам богатей-
«Электронные библиотеки: перспективные методы и
                                                           ших организаций мира: разнонаправленность пото-
технологии, электронные коллекции» - RCDL’2011,
                                                           ков информации и изменчивость структур управ-
Воронеж, Россия, 2011.
                                                           ления данными делают задачу эффективного разде-




                                                      68
ления сложной требуемой логики на компоненты             пользователь может одновременно открывать и
разрешимой лишь под постоянным контролем круп-           параллельно использовать несколько интерфейсов
ной команды высококвалифицированных специ-               для работы в системе, а иногда может успеть
алистов-разработчиков.                                   отменить свой ввод до начала его обработки в
   Потребность в устойчиво развивающихся инфор-          очереди.
мационных системах (так зачастую называют                    Такой, пока непривычный, интерфейс позволит
саморазрабатываемые системы) высока не только в          значимо ускорить работу с системой, задержки в
богатейших организациях.                                 работе которой неустранимы по причине больших
   Обсуждаемая в работе гипотеза состоит в том,          расстояний или сложных алгоритмов. При любых
что эту потребность возможно при существенно             замедлениях обработки возрастёт среднее время
более скромной стоимости разработки и владения           ожидания обработки изменений, но обслуживание
удовлетворить на основе предлагаемого нестан-            не прекратится, а ввод и выдача готовой
дартного подхода к созданию саморазрабатываемых          информации практически не замедлятся.
систем.                                                      Совместная обработка всех поступивших в об-
   Главной целью разработки ставятся задачи              щем контексте изменений вместо разделения их на
организации более сложной совместной деятель-            отдельные инициированные запросами транзакции
ности по информационному обслуживанию, в кото-           упрощает логику реализации и снимает с системы
рой пользователи и группы с не очень высоким             тяжелейшее требование во что бы то ни стало обес-
уровнем квалификации смогут с минимальным рис-           печивать избыточную согласованность [3]. Откры-
ком самостоятельно произвольно перестраивать             вается возможность сочетания живых интерактив-
логику взаимодействия в доверенных им частях             ных пользовательских интерфейсов с прозрачно
сложной информационной системы.                          реализуемой сложной фоновой обработкой.
   Нестандартность подхода означает, к сожале-               На ретроспективной основе могут на более
нию, и необычно высокие затраты на создание              низком уровне реализации, чем логика приложения
первой конкурентоспособной реализации (требуют-          (а, значит, без усложнения прикладных разработок)
ся годы на дальнейшие исследования, создание             быть реализованы и дополнительные возможности.
нового инструментария, испытания прототипов...).         Отладка изменяющейся логики приложения может
Это должно окупиться резким упрощением даль-             проводиться на «живых» данных непосредственно
нейших сложных разработок. Острую нужду в                в системе незаметно для остальных пользователей.
таких долгосрочных вложениях доказывают обще-            Катастрофоустойчивость системы может быть
известные крайне неутешительные прогнозы                 резко повышена дублированием информации на
обострения дефицита программистов высокой                географически удалённых параллельно работаю-
квалификации.                                            щих серверах; при разрыве связи контексты дан-
                                                         ных, менявшиеся через другие серверы, замрут до
1.2 Идея подхода                                         восстановления. При этом целостность данных
   Ключевой идеей является замена механизма сис-         будет гарантирована с высокой надёжностью, что
темных сообщений между компонентами обраще-              особенно важно для уникальных результатов
ниями к общей ретроспективной СУБД.                      совместного творчества специалистов.
   Ретроспективной будем называть СУБД, кото-                Вынос поддержки этих соблазнительных
рая принимает все запросы на чтение и изменение          качеств на низкий уровень архитектуры означает
данных, параллельно и асинхронно в фоновом               резкое расширение возможностей разработчиков
режиме обрабатывает изменения, хранит все                сложных прикладных систем, удобных для исполь-
исходные данные и результаты обработки и в               зования и сопровождения.
ответ на любой запрос возвращает пользователю                Возникают и специфичные проблемы. Хранение
ранее обработанные для такого запроса результаты.        всех версий исходных данных и результатов
   Любой запрос на чтение новой информации               обработки, включая промежуточные, в десятки раз
мгновенно возвращает установившееся в системе            увеличивает требуемые ресурсы физического
прошлое состояние и остается гарантированно вос-         хранилища. Увеличение объёмов хранения всегда
производимым с тем же результатом. Это упрощает          снижает производительность. Чтобы десятки раз не
отладку кода и расследование инцидентов.                 превратились вдруг в тысячи раз, необходима
   Поломка фонового обработчика воспринимается           направленная на ресурсосбережение тщательная
пользователем как замедление обработки новых             теоретическая проработка на всех архитектурных
данных. Если сопровождающий код программист              уровнях.
быстро устраняет неисправность, то пользователи
не замечают дефекта.                                     2. Область применимости
   При отсутствии достаточно свежих результатов
                                                            Чтобы пояснить необходимость рассмотрения
по своему запросу может быть организовано
                                                         нестандартной технологии, рассмотрим простей-
оповещение пользователя об их появлении. Отличие
                                                         шую из решаемых ею задач — задачу клас-
от привычных ожиданий результатов обработки в
                                                         сификации большого множества ресурсов. Незави-
неблокирующем взаимодействии с системой:
                                                         симо от того, какие ресурсы классифицируются —




                                                    69
публикации, советы по устранению проблем                  признаков (они же имена разделов и подкаталогов).
пользователей, описания биологических объектов,           Кликая по имени не выбранного признака t ∈ T,
товаров или образовательные ресурсы, — можно              пользователь тем самым добавляет его в текущий
считать, что каждый объект представлен своим url и        контекст С ⊂ T, попадая на страничку нового
рассмотреть     задачу    построения     каталога         контекста C⋃ { t }, на которой между выбранными
веб-ресурсов.
                                                          и доступными для дальнейшего выбора признаками
2.1 Коллаборативный каталог-классификатор                 расположены ссылки на ресурсы в рейтинговом
                                                          порядке.
   Обычно большие каталоги-классификаторы                    Ниже выбранных признаков следуют другие
строятся и поддерживаются небольшими коман-               характерные для всех ресурсов этого контекста
дами специалистов и содержат до нескольких сотен          признаки.
тысяч ресурсов. Готовые классификаторы, как пра-             Пользователь одним движением мышкой может
вило, нуждается в уточнении, расширении (часто на
порядки) и в согласовании с другими.
                                                          • изменить и зафиксировать рейтинг и контекст
                                                              ресурса;
   Поднять качество каталога на существенно
более высокий уровень можно только путём                  • изменить порядок предпочтения признаков;
привлечения к классификации всех заинтересован-           • переместить ресурс в подкаталог либо вынести
ных специалистов (либо, вообще, всех желающих).               в родительский каталог;
Для этого нужно предоставить каждому из них               • добавить или удалить ресурс, или каталог в
возможность быстро, удобно, эффективно и кон-                 данном контексте;
структивно классифицировать ресурсы, исправлять           переименовать или скопировать подкаталог;
ошибки, видя общее мнение по каждому конкрет-
ному вопросу и имея возможность поддержать или            • вынести подкаталог наружу, изменив имя.
                                                             Все эти действия фиксируют индивидуальные
оспорить его.
   Новичку такая система предстанет каталогом,            рейтинги ресурсов и каталогов (для подкаталогов
                                                          контекстно),   доопределяют       или  изменяют
оптимизированным с учётом всех мнений всех
                                                          пользовательскую функцию инцидентности
пользователей-разработчиков. Пользователю-разра-
                                                                           I : C × R → {0,1}
ботчику внесённые изменения покажутся несо-                                 u
мненно учтёнными на фоне общих изменений.                 и функцию желательности тега в контексте
   При наличии хорошего начального наполнения и                           D : C × R → [0,1].
привлечения достаточного круга пользователей,                Авторитетность пользователя Au в контексте
новых пользователей будут привлекать простота
                                                          рассчитывается по относительному количеству
добавления в каталог и изменения его структуры,
                                                          других пользователей, поддержавших его выбор в
богатство и оптимальность каталога.                       этом и ближайших контекстах.
   Подобный каталог смог бы в перспективе                    Значения функции инцидентности усредняются
органично дополнить поисковые сервисы интернет.           по U c весом авторитетности, образуя идеальную
Пройти по каталогу проработанной структуры часто
                                                          функцию инцидентности I,. С такими же весами
окажется быстрее и легче, чем правильно сформу-
                                                          усредняются рейтинги. Полученные данные ис-
лировать запрос. Привлекательна и возможность
                                                          пользуются для формулировки задачи оптимиза-
получить в результате вместо списка тысяч                 ции, решением которой является структура ката-
предположительно релевантных ресурсов рейтинго-           лога, максимально отвечающая пожеланиям поль-
вый список ресурсов, рекомендованных другими              зователей.
пользователями.
                                                             Структура каталога формализуется как ориенти-
   Критичными для такого сервиса являются:
                                                          рованное дерево в ориентированном графе
дружелюбный пользовательский интерфейс, мас-              всевозможных контекстов, для которого сумма
штабируемость и надежность; в частности, защи-            всех штрафов минимальна. Штрафы должны
щённость от спама и других угроз. Чем шире круг           отражать среднюю длину нерасширяемого пути в
участников, тем полнее, актуальнее и качественнее
                                                          дереве и подходящим образом определённые
будет каталог при правильной организации
                                                          суммы значений функций D и I. Речь ни в коем
системы.
                                                          случае не идёт о поиске точного решения (вряд ли
2.2 Описание функциональности каталога                    оно будет доступно даже суперкомпьютерам
                                                          будущего), а об итерационном улучшении
   Сама возможность построения такой системы не           имеющегося каталога перебором возможных
кажется очевидной. Казалось бы, система должна            простейших операций редактирования структуры
анализировать и объединять структуры независимо           каталога.
созданных разными пользователями каталогов.                  При такой оптимизации в корневом разделе со
Однако принцип действия сервиса не столь сложен.          временем могут оказаться совсем иные признаки;
Есть множество U пользователей, пополняемое               структура каталогов сможет беспрепятственно
пользователями множество R ресурсов и также               перестраиваться, следуя изменяющимся потреб-
пополняемое пользователями множество T имён               ностям пользователей.




                                                     70
    Очевидно, что каждый контекст при оптими-            Такие инструменты зачастую могут быть созданы
зации может улучшаться практически независимо            или        адаптированы         только      узкими
от других контекстов. Контексты, к которым утра-         специалистами-пользователями и это процесс
чен интерес, можно не оптимизировать, а попу-            полезно организовать в самой системе.
лярные контексты необходимо оптимизировать                   Полезные применения подобная система может
чаше и, может быть, более тщательно.                     найти и в образовании [4, 5].
    Алгоритмы и настройки оптимизации каталога и             Непрерывная интеграция [6] обещает удешевле-
расчёта авторитетности пользователя, дизайн кон-         ние и ускорение совместной разработки програм-
текстной страницы, должны совершенствоваться с           много обеспечения и ему подобного сложного
ростом каталога.                                         контента при одновременном повышении качества
    Потребуется развивающаяся система подсказок,         за счёт сочетания известного списка шаблонов.
помогающих пользователям упрощать каталог,                   Эффект непрерывной интеграции определяется
выявляя равнозначные признаки или наборы                 качеством организации тестирования и связи разра-
признаков.                                               ботчиков с пользователями.
    Полезно будет увидеть произошедшие за указан-            Обещая локализовать в пространстве данных и
ный им период изменения в контексте и пере-              времени любую ошибку (будь то ошибка в коде
смотреть свои действия (или действия, сделанные          или в действиях администратора), основанные на
от его имени).                                           ретроспективной СУБД системы могли бы стать
    Потребуется добавить платные сервисы для             намного более эффективны и дружелюбны к
самоокупаемости. Если мнение пользователя отли-          разработчикам и пользователям, чем строящиеся на
чается от других, ему должно быть это ненавязчиво        стандартной основе. Цикл «ошибка замечена
показано с возможностью простого обсуждения              пользователем - исправлена - проверена» мог бы
наличия конкретного признака у конкретного ресур-        быть сокращен до нескольких минут.
са или рейтинга конкретного ресурса или каталога.            Не менее соблазнительна возможность реали-
    Сложность сочетания многих перестраиваемых           зации прозрачного автоматического учёта автор-
обработок с быстротой реакции на действия поль-          ских вкладов участников в улучшение каждого
зователя очевидно препятствует использованию             контекста данных с последующей оценкой соот-
стандартной основы в этой задаче.                        ветствия пожеланиям пользователей.
                                                             Подход может рассматриваться и в качестве
2.3 Другие возможные применения                          основы для системы неограниченно возрастающей
   Приведённый пример не является исключением.           сложности, долговременно устойчиво развиваю-
В интернете наблюдается бурный рост                      щейся (“perpetual еvolution”) на фоне технических,
• ресурсов открытых технических стандартов,              политических и юридических преображений.
    включая библиографические классификаторы;            Новые исходные требования к такой системе
ресурсов открытых образовательных стандартов и           лаконично сформулированы институтом SEI
систем дистанционного образования;                       (Software Engineering Institute) в [7,8] в виде
                                                         ключевых особенностей широкомасштабируемых
• общедоступных ресурсов по биологии и другим
                                                         социотехнических систем будущего (ULS):
    наукам, склонным к пересмотру концепций и
    классификаций;                                       • Децентрализация;
ресурсов открытого исходного кода больших                • Противоречивые            по      своей     сути,
программных систем;                                           непознаваемые, и разнообразные требования к
государственных и корпоративных ресурсов                      системе;
законодательно-нормативной информации.                   • Непрерывное развитие и развёртывание;
   Потребность в частой коррекции структуры              • Разнородные,            рассогласованные        и
любого подобного ресурса обусловлена не столько               изменяющиеся элементы;
неизбежной для изменчивых систем неполнотой              • Стирание границы между людьми и системой;
предпроектного обследования, сколько                     • Устойчивость к ошибкам в исходных данных и
• наличием внутренних несогласованностей и                    при их обработке;
    требующих исправления противоречий,                  • Соревнование за системные ресурсы;
• рассогласованностью политик и приоритетов              • Наличие         организаций      и    участников,
    хозяев ресурса,                                           ответственных за установление политик;
непредсказуемостью изменений в предметной                • Наличие         организаций      и    участников,
области.                                                      ответственных за производство самой системы;
   Рост масштабов, сложности и глобальности              • Локальные и глобальные показатели здоровья,
информационных систем актуализирует проблему                  которые будут подключать необходимые
совместной доработки их наполнения.                           изменения в политиках и в поведении элемента
   Такие наполнения сложнее, чем коллаборатив-                и системы;
ный каталог-классификатор. Для их качественного          • Дизайн        и   эволюция      производственных
улучшения нужны разнообразные новые инстру-                   отношений;
менты, часто узкоспециальной направленности.             • Оркестровка и управление;




                                                    71
•    Наблюдение и оценка.                                       ленной цели. Требуется в комплексе решить ряд
    Сформулировав перечисленные требования,                     непростых тесно взаимосвязанных специфических
рабочая группа SEI дала им недвусмысленную                      задач. Этим задачам не видно эффективных приме-
оценку:                                                         нений в рамках традиционных технологий. Вместе
    “These characteristics undermine the assumptions            они образуют труднопреодолимый барьер: никакая
we make in most current technical, management, and              самостоятельная часть работы не может быть
acquisition approaches.”                                        выполнена в короткий срок.
    “Today’s approaches are based on perspectives that
fundamentally do not cope with the new characteristics          3.1 Разработка многопоточной B+tree СУБД
arising from ultra-large scale. The mentality of looking           Вставка в ключ каждой записи B+tree СУБД
backward doesn’t scale.”                                        строки, идентифицирующей автора изменений, и в
    Такая оценка несомненно ориентирует на                      конец ключа строки, лексикографически упорядо-
пересмотр стандартных подходов.                                 ченно идентифицирующей моменты актуальности
    Напрашивается гипотеза о том, что создание и                и окончания обработки, обеспечивает целостность
развитие систем [5], основанных на ретроспектив-                истории и быстрый доступ к актуальной записи.
ном доступе к информации, указывает значительно                    Особенность предъявляемых при этом к СУБД
более простой, просматриваемый и экономный                      требований в том, что от неё не требуется моди-
путь к ULS, чем предложенное SEI развитие сер-                  фицировать или удалять актуальные записи.
вер-ориентированной архитектуры.                                   Для рассматриваемого класса СУБД каждая
    Подтвердить или опровергнуть эту гипотезу                   запись состоит из ключа и значения. Ситуация, в
могут только будущие результаты прикладных                      которой требуется записать старый ключ с новым
исследований.                                                   значением, может возникнуть только при редкой
                                                                ошибке и тогда уже не важно, какое именно
3. Общий план разработки                                        значение окажется у ключа. Поэтому порядок, в
                                                                котором производятся записи, не существенен.
   Логику сложной творческой деятельности прак-
                                                                Коммутативность и идемпотентность добавления
тически невозможно чётко выяснить и форма-
                                                                записей резко упрощает [3] задачу объединения
лизовать в предпроектном обследовании. В идеале
                                                                изменений при параллельной обработке. Основная
она вырастает в ходе совместной деятельности
                                                                проблема здесь состоит в необходимости предо-
разработчиков и субъектов самого бизнес-процесса
                                                                ставления беспрерывного доступа на чтение запи-
и гибко меняется при необходимости. Поэтому
                                                                санных данных во время пополнения базы свежими
логика приложения не закладывается в основу
                                                                данными. Такая возможность была документиро-
архитектуры, а выращивается в процессе исполь-
                                                                вана в Berkeley DB 4.2, но в более поздних версиях
зования.
                                                                разработчики отказались от поддержки этой воз-
   Система, удовлетворяющая требованиям децен-
                                                                можности. Сейчас она документирована только в
трализации, непрерывного развития и развёрты-
                                                                TokyoCabinet, но заслуживающих доверия тестов
вания, содержащая разнородные, рассогласованные
                                                                качества поддержки этой функциональности пока
и изменяющиеся элементы и устойчивая к ошибкам
                                                                не известно. Возможно, что изменяемая база
в исходных данных и ошибках исполнения,
                                                                TokyoCabinet периодически нуждается в дефраг-
по-видимому, должна, подобно персику, состоять из
                                                                ментации, во время которой она не должна быть
ядрышка, косточки и мякоти [9]. Косточка – это
                                                                доступна на чтение.
закрытая    для    изменений    часть   системы,
                                                                   В работе [5] предложена идея каскадного
обеспечивающая её целостность. Ядрышко — это
                                                                использования B+tree СУБД, позволяющая полу-
защищённая история версий исходных кодов и иной
                                                                чить требуемую функциональность за счёт одно-
информации косточки и мякоти. Мякоть — это
                                                                временного использования и подготовки несколь-
изменяемая часть логики системы, обеспечивающая
                                                                ких баз вместо одной. От СУБД требуется под-
возможные изменения платформы системы и
                                                                держка поиска ближайшего ключа к произвольной
логики приложений.
                                                                строке запроса (имеется в виду близость в лекси-
   Разработка очередной системы описываемого
                                                                кографически упорядоченном списке ключей,
класса должна быстро и просто базироваться на
                                                                пополненном строкой запроса). Идея состоит в
подходящем прототипе, в котором постепенно
                                                                формировании маленьких баз, содержащих допол-
будет корректироваться и наращиваться требуемая
                                                                нения за долю секунды и слияния их в фоновом
(не обязательно классическая, см. [10]) логика
                                                                режиме в более крупные с дефрагментацией и
приложений.
                                                                оптимизацией. Приступая к обработке запроса,
   Создание «косточки» для первого такого
                                                                интерфейс СУБД проверяет, не устарел ли список
прототипа, способного эффективно координировать
                                                                баз в памяти системного процесса (либо в памяти
действия разработчиков и пользователей, является
                                                                нити исполнения) и при необходимости обновляет
сложной научно-технической проблемой. Исполь-
                                                                этот список. Устаревшие базы удаляются в
зуемые для создания стандартных систем инстру-
                                                                фоновом режиме.
менты, заготовки и готовые архитектурные решения
                                                                   Ожидаемая производительность СУБД по
практически непригодны для достижения постав-




                                                           72
чтению в 4–10 раз ниже, чем у неизменной                 сериализованном виде требует дублирования всей
оптимизированной СУБД того же размера при                структуры при любых изменениях или перестанов-
задержке видимости записи, выполненной на том            ках элементов, что на порядки увеличивает потреб-
же сервере, порядка 0.1 секунды. Задержка                ности в ресурсах. Ретроспективный доступ к
видимости записей, произведённых на других               информации и её эффективное хранение могут
серверах, определяется качеством соединения и в          быть обеспечены только раздельным хранением
штатном режиме может составлять несколько                элементов структур данных. В ретроспективном
секунд. По-видимому, таких показателей уже               хранилище без особых усилий могут быть
достаточно для рассматриваемых приложений.               поэлементно поддержаны такие структуры как:
   Завершение отладки и тестирования позволит               - строки произвольной длины;
говорить о выполнении этой части плана.                     - массивы однородных данных (строк, массивов
                                                         или ассоциативных массивов);
3.2 Создание ретроспективного словаря                       - ассоциативные массивы строк или ссылок на
   Ретроспективным словарём назовём подсистему           данные базовых типов;
ИС, данные которой являются ассоциативным мас-              Особенность хешей в ретроспективной СУБД
сивом с ретроспективной индексацией. Название            состоит в легкости реализации дополнительных
происходит от используемых в ИС системных сло-           операций: операции поиска лексикографически
варей, представляющих собой списки названий              ближайшего снизу к заданной строке ключа и
сущностей (организаций, должностей, степеней и           операций перехода к следующему и предыдущему
званий и т.п.).                                          ключу. Числовые данные удобно представлять
   Нужны эффективные алгоритмы поддержания               строками в новой стандартной форме, обеспе-
ретроспективной согласованности: автоматически           чивающей возможность лексикографического срав-
обновляемый словарь должен корректно учитывать           нения.
указанное в запросе время. Кроме целых слов и               Для всех структур требуются операции вставки,
фраз, полезно индексировать их общие начала для          удаления и перестановки элементов или подструк-
комфортного автозаполнения формы поиска, пока-           тур, которые сами могут иметь сложную структуру.
зывать пользователю точное количество найденных          Для эффективной поддержки возможностей быст-
продолжений фраз. Эта часть работы также нахо-           рой отмены перемещения подструктур и приме-
дится в состоянии отладки и экспериментальной            нения сложных перестроек структур данных
проверки алгоритмов.                                     полезны временные ссылки, работающие следу-
                                                         ющим образом. Появление в корне ветки A
3.3 Обеспечение низкоуровневой навигации по              временной ссылки на ветку B логически экви-
ретроспективной СУБД                                     валентно полному удалению ветки B с немедлен-
                                                         ным копированием ветки A в корень ветки B.
   Низкоуровневая навигация по дереву данных             Интерпретация ссылок должна осуществляться с
означает возможность видеть, перемещаясь по дере-        учётом очерёдности их появления. При одновре-
ву данных, в каком месте дерева мы находимся, и          менных ссылках больший приоритет имеет более
что в нём лежит. Для многоуровневых структур             близкая к узлу.
данных описание узла должно быть лаконичным и               Для надёжности допускаются произвольные
полным, а документирование (составление описа-           комбинации временных ссылок. Процесс переме-
ний) не должно требовать повторных действий.             щений узла при интерпретации ссылок останавли-
   Так, для ветки, содержащей несколько пользова-        вается, если очередная ссылка уже использована
тельских словарей, полное имя узла может полу-           или ведёт к исходному узлу. Например, две
чаться из имени ветки, имени пользовательского           одновременные противоположных ссылки между
словаря и слова, значение которого содержится в          непересекающимися ветками просто меняют их
узле. При этом имя ветки и имя пользовательского         местами, а перемещение ветки внутрь себя
словаря извлекаются из системного словаря по             срабатывает один раз.
полному пути к корню ветки и по относительному              Появление временной ссылки приводит к
пути к словарю в ветке, а искомое слово — это            резкому замедлению чтения информации, вызван-
относительный путь узла в родительской ветке.            ному необходимостью нетривиальной корректной
   В общем случае полное имя каждого узла или            интерпретации временных ссылок в ретроспек-
ветки для низкоуровневой навигации должно быть           тивных запросах. Требуется операция компиля-
получено из сохраненной в системном словаре              ции, приводящая к замене совокупности времен-
информации и идентификаторов строк, записанных           ных ссылок на ветки совокупностью статических
в ключах. Требуется проработать и чётко описать          ссылок на конкретные записи. Такая ссылка не
эффективные алгоритмы, обеспечивающие поддер-            требует сложной интерпретации при чтении.
жание качественных полных и составных имен для              Реализация находится в стадии предваритель-
неограниченно изменяющихся структур данных.              ной проработки алгоритмов и вспомогательных
3.4 Хранение изменяющихся структур данных                структур данных.

   Хранение изменяющихся структур данных в




                                                    73
3.5 Ретроспективная рекурсия шаблонов                     особых случаев), адресующая и более поздние дан-
                                                          ные. Хотя выявление и использование динамичес-
   Обработка     запроса    браузера   должна    с
                                                          ких ссылок в разы замедляет чтение информации,
минимальными затратами возвращать страничку
                                                          но разумные алгоритмы оптимизации могли бы
контекста по состоянию входящих данных на
                                                          значительно сократить накладные расходы при
заданный момент прошедшего времени. Чтобы
                                                          чтении структур данных.
небольшие изменения в страничках не дублировали
                                                             Наличие жёстких ссылок особо усложняет
неизменную часть информации, независимые части
                                                          удаление из базы давно неактуальных данных. Для
страничек должны храниться отдельно и собираться
                                                          этой цели придётся ввести и поддерживать
при обработке запроса.
                                                          системный индекс, позволяющий для любой записи
   Общими параметрами запроса на чтение
                                                          быстро узнать, адресуется ли к ней существующая
являются идентификатор автономного контекста
                                                          ссылка или нет.
данных и строка времён запроса. Строка времён
                                                              Детальная проработка вопроса отсутствует.
может отсутствовать, и тогда – если в контексте
указан момент начала незавершившихся изменений,           3.7 Контекстно-автономные разграничение
– то используется предыдущий к нему момент, а,            доступа и управление обновлениями
если не указан, – то предыдущий к моменту
получения запроса.                                           Идея контекстной автономности родственна
   Если авторизованный пользователь имеет адми-           идее процессного подхода по ISO 9001:2008. По
нистративные полномочия в контексте, то в запросе         принципу единоначалия, один человек отвечает за
может присутствовать категория доступа, иденти-           систему в целом, но поскольку большая система
фицирующая класс эквивалентных в данном                   состоит из подсистем, ответственных за отдельные
контексте наборов ролей, которыми может обладать          процессы, то руководитель делегирует управление
пользователь,     либо    идентификатор    другого        и ответственность за некоторые или все
пользователя, интерфейс которого хочет увидеть            подсистемы своим подчинённым, которые могут
администратор.                                            продолжить делегирование для составляющих сво-
    По категории, языку и иным предпочтениям              их процессов. Таким образом, всё информацион-
пользователя формируется строка, идентифициру-            ное пространство системы предстаёт иерархией
ющая шаблон, получаемый из подходящей записи в            автономно управляемых подпространств — кон-
хранилище в ответ на запрос пользователя. Если            текстов, обслуживающих процессы в понимании
точно подходящего шаблона нет, то используется            ISO 9001.
лексикографически предшествующий идентифика-                 Контексты данных отличаются от компонент
тор. При необходимости используются статические           или объектов тем, что их данные доступны без
либо динамические ссылки на строки. Последние             задержек в последней согласованной (утверждён-
отличаются тем, что указывают не на конкретную            ной) редакции (версии). Вводимые пользователем
запись, а на текущее значение логического ключа.          данные либо пишутся в индивидуальные контекс-
   В шаблон рекурсивно подставляются наиболее             ты, либо помечаются идентификатором пользова-
подходящие шаблоны и строки с учётом категории,           теля.
языка и данных пользователя. Такая упрощенная                Данные в контексте могут иметь разные версии
рекурсивная подстановка должна быть реализована           для разных групп пользователей. Группа, к которой
без сложных библиотек, обычно используемых                относится пользователь, устанавливается контекс-
развитыми средствами обработки шаблонов, чтобы            тно или наследуется из более широкого контекста.
эффективно и экономно обеспечить ретроспектив-               Автономные контексты независимо обновляют
ный доступ к интенсивно дорабатываемым странич-           свою информацию и содержат динамические ссыл-
кам интерфейсов, минимизировать дублирование              ки на ветки других контекстов
кода и облегчить его повторное использование.                Мониторинг ресурсов настраивается в рамках
   Пробный интерфейс рекурсивной подстановки              более широкого автономного контекста с
реализован на Perl и нуждается в испытаниях на            использованием явных и неявных оценок качества
реальных данных.                                          кластерами потребителей.
                                                             Момент актуальности контекста – последний из
3.6 Поддержка динамических ссылок                         моментов времени, на который информация
                                                          актуальна – определяется записями с особым
   Динамические ссылки создают эффект наложе-
                                                          логическим ключом. При обновлении контекста
ния слоёв информации. При неудачном чтении по
                                                          определяется последний момент, на который
заданному пути проверяется наличие ссылки в этом
                                                          актуальны входные данные, запускается их
пути и производится попытка чтения из ветки, на
                                                          обработка, в контекст записываются изменившиеся
корень которой указывает ссылка. Этот процесс
                                                          значения с новыми датами, а значение ключа
может неограниченно повторяться без повторного
                                                          момента актуальности устанавливается на этот
использования ссылок.
                                                          момент в пустую строку. При подтвержденном
   Динамические ссылки могут быть двух типов:
                                                          пользователем вводе данных в контекст значением
жёсткая (по умолчанию) адресует только данные,
                                                          ключа становится список ключей изменённых
источника записанные до ссылки, и мягкая (для




                                                     74
данных.                                                   полуночи, теряются безвозвратно.
   Каждый запрос к системе адресуется к                      Требование устойчивости к ошибкам будет
конкретному контексту. Во фрагмент странички              сохранять актуальность и по чисто технической
ответа на запрос могут включаться фрагменты               причине [12,13]: уменьшение размеров транзис-
страничек других контекстов на указанный момент           торов и их энергопотребления при повышении
актуальности.                                             быстродействия приводит к усилению эффектов
   Ответ на запрос сопровождается указанием               квантовой механики, неотвратимо повышающих
момента актуальности. Более поздняя информация            вероятность ошибки в конкретной ячейке памяти.
временно недоступна. Если включаемые фрагменты            Эти ошибки в серверном процессоре компенсиру-
неустойчивы на указанный момент, то выбирается            ются использованием дублирования и особого
самый ранний из моментов актуальности и запрос            кода, исправляющего ошибки, но требующего
повторно обрабатывается на более ранний момент,           дополнительных ресурсов. Предлагаемая архитек-
до тех пор, пока вся информация странички не              тура предъявляет высокие требования только к
окажется актуальной на указанный момент.                  хранению информации и исполнению регламент-
   При чтении информации в отдельном для каждо-           ных процедур косточки. Обработки данных прило-
го контекста ключе (непосредственном или через            жений в ряде случаев могут проводиться дешевле и
динамическую ссылку) делается (при отсутствии             с меньшей надёжностью, если выходные данные в
действующей) пометка об использовании контекс-            контексте подвергать независимому контролю и
та конкретным пользователем или контекстным               при необходимости перевычислению.
обновлением. Эти пометки вносятся так, чтобы
облегчить автоматическое поддержание прибли-              3.9 Разработка пользовательских интерфейсов
зительного рейтинга контекстов по популярности.           косточки
   Этот рейтинг, априорная оценка контекстов и               Пользовательские интерфейсы косточки долж-
пометки об изменениях используются для выделе-            ны предоставлять полноценный доступ к низко-
ния контекстов, срочно нуждающихся в обработке.           уровневым администрированию и разработке сис-
Обработка производится параллельно и независимо.          темы, и истории работ и одновременно обеспе-
При высоком рейтинге и отсутствии изменений в             чивать асинхронное информирование о системных
данных обработка сводится к пометкам об                   сбоях и проблемах пользователей в поддержива-
использовании контекстов исходных данных.                 емых контекстах данных. В этом направлении отла-
   Детальная проработка подсистемы отсутствует.           жено несколько частичных прототипов, но оконча-
                                                          тельных результатов пока нет.
3.8 Ресурсосбережение
   Хранение истории исходных данных, промежу-             4. Выводы
точных и окончательных результатов обработки
требует затрат, существенно зависящих от способа             Предложено описание ретроспективного подхо-
хранения и поэтому трудно поддающихся оценке.             да к реализации прикладных информационных сис-
   Чтобы удаление данных не нарушило требуемую            тем, качественно превосходящих те, которые могли
целостность системы, предполагалось выделять в            бы быть созданы на стандартной основе. Описаны
далёком прошлом короткие промежутки времени,              область применимости подхода, общий план и
так называемые «белые пятна истории», связанные           текущее состояние реализации. Сформулирован
с интенсивным изменением данных, и удалять                ряд задач и направлений дальнейшей разработки.
версии данных, не актуальные вне этих
промежутков. Поскольку выделение таких пятен              Литература
при больших объёмах данных является непростой
задачей, то в [11] предлагалось решать её в рамках
                                                          [1] С. Д. Кузнецов. Транзакционные параллельные
отдельных автономных контекстов, что могло
                                                             СУБД:         новая       волна.        2010.      -
нарушить согласование данных между разными
                                                             http://citforum.ru/database/articles/kuz_oltp_2010/
контекстами.
                                                          [2] Mart Roost, Karin Rava, and Tarmo Veskioja.
   Найдено более простое решение, позволяющее
                                                             2007. Supporting self-development in service
чистить ненужную часть истории без перерасхода
                                                             oriented information systems. In Proceedings of
ресурсов и угрозы рассогласования. Оно состоит в
                                                             the 7th Conference on 7th WSEAS International
увеличении шага дискретизации для очень старых
                                                             Conference on Applied Informatics and
данных. Например, если шаг дискретизации для
                                                             Communications - Volume 7 (AIC'07), Minh
данных более чем десятилетней давности пере-
                                                             Hung Le, Metin Demiralp, Valeri Mladenov, and
устанавливается в одни сутки, то из всех изменений
                                                             Zoran Bojkovic (Eds.), Vol. 7. World Scientific
любого данного в течение таких давно прошедших
                                                             and Engineering Academy and Society (WSEAS),
суток оставляется последнее, актуальное на момент
                                                             Stevens Point, Wisconsin, USA, 52-57.
полуночи. Все изменения, актуальные на границе
                                                          [3] Helland, Dave Campbell. Building on Quicksand.
каких-либо суток, остаются в доступе, а все очень
                                                             Proceedings of the Fourth Biennial Conference on
старые изменения, не дожившие до ближайшей
                                                             Innovative Data Systems Research (CIDR 2009),




                                                     75
    January 4-7, 2009, Asilomar, Pacific Grove, CA                     "Архитектура      системы    для     разработки
    USA. Перевод на русский язык: Пэт Хелланд,                         технологий организации сложной совместной
    Дейв Кэмпбел. Дом на песке, 2010. -                                деятельности".     Прикладная     информатика,
    http://citforum.ru/database/articles/quicksand/.                   №2(26), 2010, с. 31-41
 [4] В. А. Болотов, С. В. Знаменский. Требования к                 [12] J.C. Laprie, Dependability: Its Attributes,
    информационной             системе         управления              Impairments and Means. In Predictably
    качеством         образования.         "Программные                Dependable Computing Systems, B. Randell, J.C.
    системы: Теория и приложения", №2(2), 2010, c.                     Laprie, H. Kopetz, and B. Littlewood (eds.), pp.
    3-13.                                                              1-28, Springer-Verlag, 1995.
 [5] С.В. Знаменский. Гибкая основа информацион-                   [13] B. Bloom. Space/time Trade-Offs in Hash Coding
    ной системы для обучения. //Труды XII-й                            with Allowable Errors. In Communications of
    Всероссийской            научной         конференции               ACM, volume 13(7), 1970, p. 422-426.
    «Электронные библиотеки: перспективные
    методы и технологии, электронные коллекции»
    RCDL-2010. Казань: Казанский университет.                          Factographic Base for the Complex
    2010, с. 451-460.                                                 Collaborative Information Resources
[6] P. M. Duvall. Continuous Integration: Improving
    Software Quality and Reducing Risk,                                         Reorganization
     Addison-Wesley, 2007. -                                                         © S.V. Znamenskij
    http://www.amazon.com/gp/product0321336380/?t
    ag=integratecom-20.                                                Some Information Resources, especially those
 [7] L. Northrop.The Impact of Scale: Carnegie                         addressed the complex issues are known to be
    Mellon University. December 17, 2009. -                            continuously improved with a broad range of
    http://www.sei.cmu.edu/library/assets/20091217we                   individuals and organizations.
    binar.pdf.                                                         Such refinement is often needed in
 [8] L. Northrop. Ultra-Large-Scale Systems. The                       unexpected corrections of the structure of the
    Software Challenge of the Future. June 2006.                       resource,      parallel    development       and
    Pittsburgh,         PA          15213-3890.          —             comparative testing of users of multiple
    http://www.sei.cmu.edu/library/assets/ULS_Book2                    versions of its components, removal of excess
    0062.pdf.                                                          and restore previously available data.
 [9] С.В. Знаменский. Хорошо масштабируемое                            We discuss the idea of building a
    автономное администрирование доступа. Труды                        representation of data in such a system on
    Международной конференции "Программные                             immutable records addressable given date,
    системы:          теория        и        приложения",              time and authorship of their creation and
    Переславль-Залесский,             октябрь         2006,            providing         accelerated        multiplayer
    Наука-Физматлит, М., Т.1, c. 155-169. -                            improvements due to
    http://skif.pereslavl.ru/psi-info/psi/psi-publications/            (1) immediate access to the same state
    e-book-2006/index.html.                                            information and the essential characteristics of
[10] Н.Н. Непейвода. Прикладная логика.                                change;
    Новосибирск: НГУ, 2000.                                            (2) localization of execution errors in time and
[11] С.М. Абрамов, Н.С. Живчикова, С.В. Знамен-                        information space;
    ский, Е.С. Иванов, А.В. Котомин, Д.Н.                              (3) the reorganization of a pluralistic view and
    Степанов, Е.В.Титова, В.Н. Юмагужина.                              update data and multi-level testing.



♣    Работа поддержана           грантом     РФФИ       №
    09-07-00407.




                                                              76