Системы пространств данных
Теперь мы очертим один из возможных наборов компонентов и архитектуру системы пространств данных. Как изображено на , DSSP обеспечивает несколько взаимосвязанных служб над пространством данных, некоторые из которых являются обобщением компонентов, поддерживаемых в традиционной СУБД. Важно помнить, что, в отличие от СУБД, в DSSP не предполагается наличие полного контроля над данными в пространстве данных. Вместо этого, DSSP позволяет управлять данными системам-участникам, но обеспечивает новый набор служб поверх всех этих систем, соблюдая их потребности в автономности. Кроме того, у нас может иметься несколько DSSP, обслуживающих одно и то же пространство данных - в некотором смысле, у DSSP может иметься свое собственное представление о конкретном пространстве данных.
Каталог и просмотр: Каталог содержит информацию обо всех участниках пространства данных и о связях между ними. У каталога должна иметься возможность поддерживать разнообразные источники и сохранять информацию об их структуре и возможностях на разных уровнях. В частности, для каждого участника каталог должен включать схему источника, статистические данные, скорость изменения, точность, возможности ответов на запросы, информацию о владельце и данные о политике доступа и поддержке конфиденциальности. Связи могут сохраняться в виде преобразований запросов, графов зависимости, а иногда даже в виде текстовых описаний.
При наличии возможности каталог должен содержать базовый реестр элементов данных в каждом участнике: идентификатор, тип, дата создания и т.д. Тогда в нем можно поддерживать базовую возможность просмотра объединенного реестра всех участников. Хотя интерфейс просмотра не является очень масштабируемым, его можно, по крайней мере, использовать для ответов на вопросы пользователей о наличии или отсутствии элемента данных или определения того, какие участники хранят документы данного типа. Возможности этого интерфейса могут быть расширены с помощью запуска над участниками простых скриптов. Например, вычисление и сохранение для всех элементов данных значения свертки по алгоритму хэширования MD5 может помочь обнаружить дубликаты, хранимые разными участниками.
Поверх каталога DSSP должны поддерживать среду управления моделями, позволяющую создавать новые связи и манипулировать существующими связями (например, объединять или инвертировать отображения, сливать схемы и создавать единые представления нескольких источников).
Поиск и запрашивание: Этот компонент должен обеспечивать следующие возможности:
(1) Запрашивание всего, что угодно: У пользователей должна иметься возможность запроса любого элемента данных, независимо от его формата и модели данных. Сначала DSSP должны поддерживать для каждого участника запросы по ключевым словам. По мере того, как мы получим больше информации об участнике, мы должны постепенно начать поддерживать более сложные запросы. Система должна поддерживать плавное переключение между запросами по ключевым словам, просмотром и структурированными запросами. В частности, при выдаче ответов на запрос по ключевым словам (или на структурированный запрос) должны предлагаться дополнительные интерфейсы запросов, позволяющие пользователю усовершенствовать свой запрос.
(2) Стуктурированные запросы: Запросы в стиле баз данных должны поддерживаться на основе общих интерфейсов (т.е. схем-посредников), обеспечивающих доступ к нескольким источникам, или же они могут адресоваться к конкретному источнику данных (с использованием его собственной схемы) с намерением получения ответов и от других источников (как в системах управления одноранговыми данными ? Peer-Data Management System). Запросы могут формулироваться на разнообразных языках (и на основе разных моделей данных), и они должны, по возможности, наилучшим образом переформулироваться на другие модели данных и схемы, обеспечивая точные и приближенные семантические отображения.
(3) Запросы к метаданным: В системе должен поддерживаться широкий спектр запросов к метаданным. Должны обеспечиваться возможности (a) получения данных об источнике ответа или о том, как этот ответ был выведен или вычислен; (b) обеспечения временных меток на элементах данных, которые участвовали в вычислении ответа; (c) указания того, какие другие элементы данных в пространстве данных могут зависеть от заданного элемента данных, и поддержки гипотетических запросов (т.е. Что бы изменилось, если бы я удалил элемент данных X?); (d) запрашивания источников и уровня недостоверности ответа.
DSSP должны также поддерживать запросы на установление местоположения данных, ответами на которые являются источники данных, а не конкретные элементы данных. Например, система должна быть в состоянии отвечать на запросы Где я могу найти данные про IBM? или В каких источниках имеется атрибут "salary"?. Аналогично, при наличии XML-документа должна иметься возможность запросить XML-документы с похожей структурой и соответствующие XML-преобразования. Наконец, при наличии фрагмента схемы или описания Web-сервиса должно быть возможно найти в пространстве данных похожие фрагменты.
(4) Мониторинг: Все перечисленные службы поиска и запрашивания данных должны также поддерживаться в инкрементной форме, применимой в реальном времени к потоковым или изменяемым источникам данных. Мониторинг может быть организован в виде процесса без состояния, в котором элементы данных рассматриваются по отдельности, или в виде процесса с состоянием, в котором анализируется несколько элементов данных. Например, фильтрация сообщений - это процесс без состояний, а оконное агрегатное вычисление - это процесс с состояниями. Служба инкрементного мониторинга может обеспечить дополнительные функции обнаружения сложных событий и генерации сигналов.
Локальное хранение и индексирование: В DSSP будет иметься компонент хранения и индексирования для достижения следующих целей: (1) для создания запрашиваемых ассоциаций между объектами данных от разных участников; (2) для совершенствования доступа к источникам с ограниченными собственными средствами доступа; (3) для обеспечения возможности выполнения некоторых запросов без доступа к реальному источнику данных и (4) для поддержки высокого уровня доступности и восстановления.
Средства индексирования должны обладать высоким уровнем адаптивности к неоднородным средам. В качестве входных данных должно приниматься любое элементарное значение, встречающееся в пространстве данных, и должны выдаваться координаты всех объектов данных, в которых имеется такое значение, и роли каждого его вхождения (например, строка в текстовом файле, элемент пути к файлу, значение в базе данных, элемент схемы или тэг в XML-файле).
Важными аспектами индекса является то, что, во-первых, он определяет информацию для всех участников, когда некоторые значения входят в несколько источников данных (в некотором смысле, это обобщает идею индексов соединения). По-видимому, для этой цели для некоторого множества значений будут строиться специальные индексы. Во-вторых, индекс должен справляться с разнообразием ссылок на объекты реального мира, например, с различными способами указания компании или человека.
Нам может захотеться кэшировать некоторые фрагменты пространства данных (вертикальные или горизонтальные), чтобы (1) строить на них дополнительные индексы для поддержки более эффективного доступа; (2) повысить уровень доступности данных, хранимых в ненадежных участниках и (3) уменьшить нагрузку запросами участников, которые не могут обрабатывать непредусмотренные внешние запросы.
Компонент раскрытия: Назначение этого компонента состоит в обнаружении участников в пространстве данных, создании связей между ними и оказании помощи администраторам при совершенствовании и усилении этих связей.
Обнаружение участников может происходить в нескольких формах, например, в форме обхода справочной структуры, начиная от корня, или форме поиска координат всех баз данных в корпоративной сети. Компонент должен выполнять начальную классификацию участников на основе их типов и контента.
После раскрытия участников система должна обеспечить среду для полуавтоматического создания связей между участниками и совершенствования и поддержки существующих связей. Этот процесс включает нахождение пар участников, которые, вероятно, должны быть связаны один с другим, и затем предложение связей (например, отображений схем, реплик, связей по включению), которые потом проверяются и уточняются человеком. Наконец, важно то, что компонент раскрытия осуществляет мониторинг содержимого пространства данных, чтобы можно было со временем предложить новые связи.
Компонент расширения источников: У некоторых участников могут отсутствовать существенные функции управления данными.
Например, участник может являться всего лишь ведомственным репозиторием документов, единственной службой в котором может являться еженедельное резервное копирование. У DSSP должны иметься средства наполнения такого участника дополнительными возможностями, такими как схема, каталог, поиск по ключевым словами и мониторинг обновлений. Заметим, что может оказаться необходимо обеспечивать эти расширения "по месту", поскольку могут иметься существующие приложения или потоки данных, рассчитанные на имеющиеся форматы или справочные структуры.
Этот компонент также поддерживает информацию с "добавленной стоимостью", сохраняемую DSSP, но не присутствующую в исходных участниках. Такая информация может включать "лексические переходы" между словарями, таблицы трансляции закодированных значений, классификаторы и рейтинги документов, а также аннотации или ссылки, привязанные к наборам данных или контенту документов. Должна иметься возможность распространения такой информации на несколько участников. Например, в базе данных десктопа значительные усилия затрачиваются на построение связей между элементами разных приложений (например, сохранение связей между презентациями, статьями и программами, относящимися к одному и тому же проекту).
Хотя мы полагаем, что DSSP с полным набором служб должны содержать все эти компоненты, мы обращаем внимание, что многие из них могли бы использоваться независимо для достижения некоторого компромисса между расходами и получаемыми преимуществами. Например, возможно, что большой университет вначале сможет себе позволить только сервис каталога и просмотра для пространства данных масштаба кампуса, но и это было бы продвижением вперед от существующей непрозрачности ресурсов. Потом могли бы быть добавлены возможности поиска по ключевым словам в масштабах кампуса или избранных подпространств данных. Важно, что DSSP допускает инкрементное инвестирование, а не представляет собой только монолитное решение. Наконец, хотя мы и не описывали это подробно, мы ожидаем, что DSSP будет включать компонент администрирования и некоторый модуль, поддерживающий "мягкое" восстановление.