Системы и способы манипулирования данными в системе хранения данных

Иллюстрации

Показать все

Настоящее изобретение относится к базам данных, в частности к системам и способам, облегчающим манипулирование данными на основе модели данных, и к безопасному осуществлению, связанному с системой хранения данных. Техническим результатом является облегчение манипулирования данными. Модель данных может представлять систему хранения данных так, что система хранения данных является файловой системой, основанной на базах данных. Компонента манипулирования данными может манипулировать данными, связанными с моделью данных, и внедрять по меньшей мере одно из ограничения и характеристики, чтобы гарантировать целостность такой системы. Кроме того, для обеспечения манипулирования данными в системе хранения данных может быть активизирована компонента интерфейса прикладного программирования (ИПП). 4 н. и 14 з.п. ф-лы, 23 табл., 12 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение в общем относится к базам данных, а конкретнее - к системам и (или) способам, облегчающим манипулирование данными на основе модели данных, и (или) к безопасному осуществлению, связанному с соответствующей системой хранения данных.

Уровень техники

Развитие компьютерных технологий (например, быстродействие микропроцессора, емкость памяти, ширина полосы передачи данных, функциональность программного обеспечения и т.п.) повсеместно приводит к более широкому применению компьютеров в различных отраслях. Более чем производительные серверные системы, которые зачастую сконфигурированы как матрицы серверов, обыкновенно используются, чтобы обслуживать запросы, идущие от внешних источников, таких как, например, сеть интернет («всемирная паутина»).

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

Таблицы также могут содержать набор записей, где запись включает в себя набор полей. Записи обычно индексируются как строки в таблице, а поля записей обычно индексируются как столбцы, так что пара индексов строка/столбец может определять конкретную единицу данных в таблице. Например, строка может хранить завершенную запись данных, относящуюся к сделке купли/продажи, человеку или проекту. Аналогично, столбцы таблицы могут определять отдельные части строк, которые имеют один и тот же общий формат данных, где столбцы могут определять поля записей.

Каждый конкретный фрагмент данных, взятый отдельно, обычно не слишком информативен. Применения баз данных делают данные более полезными, поскольку помогают пользователям организовывать и обрабатывать данные. Применения баз данных позволяют пользователям сравнивать, сортировать, упорядочивать, объединять, разделять и увязывать друг с другом данные, так что из данных может быть выработана полезная информация. Емкость и гибкость баз данных выросли невероятно и допускают практически бесконечную емкость хранения при использовании баз данных. Тем не менее, обычные системы баз данных предлагают ограниченную способность исполнения запросов в зависимости от времени, расширения, местоположения и размера файлов. Например, чтобы провести поиск по огромным количествам данных, связанных с базой данных, поиск обычно ограничивается именем файла, размером файла, датой создания и т.д., а значит, такие технологии недостаточны и неуместны.

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

Подобные сложности окружают не только пользователей, разработчики сталкиваются с аналогичными проблемами вокруг данных. Разработчики могут создавать и записывать мириады приложений - от приложений для частных лиц до тщательно разрабатываемых корпоративных приложений. При создании и (или) разработке разработчики очень часто, если не всегда, собирают данные. После получения такие данные должны быть сохранены. Другими словами, проблемы и сложности вокруг поиска, установления связей, манипулирования и хранения данных влияют и на разработчиков, и на конечных пользователей. В частности, полнота данных должна быть гарантирована при каждом манипулировании такими данными без нарушений и (или) появления любых нестабильных условий в существующих системах и (или) базах данных.

Сущность изобретения

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

Технический результат, на достижение которого направлено настоящее изобретение, заключается в облегчении манипулирования данными.

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

В соответствии с одним аспектом настоящего изобретения компонента манипулирования данными может включать в себя компоненту процедур, которая обеспечивает по меньшей мере одну процедуру, где процедура манипулирует данными. Процедура над данными может осуществлять копирование, обновление, замену, получение, установку, создание, удаление, перемещение, изменение и т.п. Кроме того, компонента манипулирования данными может включать в себя компоненту внедрения, которая внедряет и (или) осуществляет характеристику и (или) ограничение, связанные с моделью данных, которая представляет систему хранения данных. Путем использования характеристики и (или) ограничения совместно с манипулированием данными целостность модели данных поддерживается во всей системе хранения данных.

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

В соответствии еще с одним аспектом компонента манипулирования данными может включать в себя компоненту блокировки, которая облегчает поддержку множества одновременно вызывающих абонентов, одновременно с этим ликвидируя зависания. Для примера представим сценарий, где имеется множество одновременно вызывающих абонентов, которые запрашивают право пользования общим набором ресурсов таким образом, что ни один из запросов не может быть удовлетворен, так как каждый абонент ожидает другого, то есть может появиться зависание. В таком случае компонента блокировки может заблокироваться (например, блокируются вызывающие абоненты), и единственным выходом из этого случая будет исключение одного из абонентов. Составляющая блокировки также может поддерживать множество одновременно вызывающих абонентов так, что комплексная логика блокировки может гарантировать полностью выполнение или невыполнение индивидуальных запросов. Кроме того, компонента манипулирования данными может включать в себя компоненту оптимистического параллелизма, которая использует технологию оптимистического параллелизма, при этом такая технология предполагает низкую вероятность того, что первый процесс выполняет изменение в практически то же самое время, что и второй процесс, а блокировка не используется до тех пор, пока изменение не внесено в систему хранения данных. Когда одновременный доступ множества вызывающих абонентов вызывает к жизни предположения конкретного абонента о том, что состояние накопителя неверно, то предположения о неверности могут быть обнаружены, а запросы на изменения данных отвергаются системой до тех пор, пока вызывающий абонент не выполнит повторную синхронизацию понимания состояния системы и не выполнит запрос повторно. Эта технология может улучшать быстродействие системы путем устранения необходимости в выполнении инструкций по отключению блокировки. Кроме того, эта технология может сокращать зависания в системе путем устранения необходимости в отключении долговременных блокировок.

В соответствии с другим аспектом настоящего изобретения компонента манипулирования данными может включать в себя компоненту безопасности, обеспечивающую технологии безопасности, которые соответствуют множеству манипуляций с данными, используемых такой системой. Компонента безопасности может использовать профиль пользователя и (или) различные меры безопасности, такие как имя пользователя, пароль, биометрические признаки (например, отпечатки пальцев, сканирование сетчатки глаза, индуктивность, …), распознавание голоса и т.п., но не ограничивается ими, чтобы гарантировать целостность и дозволенность манипулирования данными конкретного объекта. Кроме того, компонента манипулирования данными может включать в себя компоненту ошибок, которая обеспечивает код ошибки в том случае, когда манипулирование данными приведет к тому, что характеристика и (или) ограничение не будут внедрены. Код ошибки может быть осуществлен, чтобы отметить незавершенность манипулирования данными, при этом код ошибки может соответствовать тексту, описывающему ошибку. В других аспектах настоящего изобретения обеспечены способы, облегчающие манипулирование данными, при этом соответствующие модели данных.

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

Краткое описание чертежей

Фиг.1 иллюстрирует блок-схему примерной системы, облегчающей манипулирование данными, основанное, по меньшей мере, частично на модели данных с соответствующими характеристиками.

Фиг.2 иллюстрирует блок-схему примерной системы, облегчающей манипулирование данными в пределах характеристик системы хранения данных.

Фиг.3 иллюстрирует блок-схему примерной системы, облегчающей осуществление целостности и безопасности данных при манипулировании данными, связанными с системой хранения данных.

Фиг.4 иллюстрирует блок-схему примерной системы, облегчающей осуществление ППИ, который манипулирует данными, связанными с системой хранения данных.

Фиг.5 иллюстрирует блок-схему примерной системы, облегчающей активизацию ППИ, который манипулирует данными в пределах характеристик системы хранения данных.

Фиг.6 иллюстрирует блок-схему примерной системы, облегчающей активизацию ППИ, который манипулирует данными в пределах характеристик системы хранения данных.

Фиг.7 иллюстрирует блок-схему примерной системы, облегчающей манипулирование данными в системе хранения данных с использованием составляющей ППИ.

Фиг.8 иллюстрирует блок-схему примерной системы, облегчающей манипулирование данными, основанное, по меньшей мере, частично на модели данных.

Фиг.9 показывает примерную методологию активизации манипулирования данными, основанного, по меньшей мере, частично на системе, основанной на базах данных, при внедрении по меньшей мере одного ограничения модели.

Фиг.10 показывает примерную методологию манипулирования данными, основанного, по меньшей мере, на модели данных с внедрением соответствующих характеристик.

Фиг.11 показывает примерную сетевую среду, в которой могут быть использованы новые аспекты настоящего изобретения.

Фиг.12 показывает примерную рабочую среду, которая может использоваться в соответствии с настоящим изобретением.

Подробное описание изобретения

В настоящем описании термины «компонента», «система», «интерфейс» и т.п. используются для обозначения относящегося к компьютеру объекта либо аппаратного обеспечения, программного обеспечения (например, при исполнении) и (или) встроенного программного обеспечения. Например, компонентой может являться процесс, выполняющийся в процессоре, процессор, объект, исполняемый файл, программа и (или) компьютер. Для примера, компонентой могут быть как приложение, выполняющееся на сервере, так и сам сервер. Одна или несколько компонент могут оставаться внутри процесса; компонента может быть локализована на одном компьютере и (или) распределена между двумя или более компьютерами.

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

Теперь обратимся к чертежам. На фиг.1 показана система 100, облегчающая манипулирование данными, основанная, по меньшей мере, на модели данных с соответствующей ее характеристикой. Модель 102 данных может быть комплексной моделью, основанной, по меньшей мере, на структуре базы данных, в которой элемент, подэлемент, свойство и связь определяются так, чтобы допустить представление информации в системе хранения данных в виде экземпляров комплексных типов. Модель 102 данных может использовать набор базовых строительных блоков для создания и управления расширенных существующих объектов и связей между объектами. Элемент может быть определен как наименьший блок согласованности внутри модели 102 данных, над которым можно совершать независимые действия: делать безопасным, переводить в последовательную форму, синхронизировать, копировать, делать резервную копию/ восстанавливать из нее и т.д. Элемент является экземпляром того типа, в котором все элементы в модели 102 данных могут храниться в единой глобальной непрерывной области элементов. Модель 102 данных может быть основана по меньшей мере на одном элементе и (или) контейнерной структуре. Кроме того, модель 102 данных может быть платформой хранения, раскрывающей расширенные метаданные, которые спрятаны в файлах в виде элементов. Должно быть оценено, что модель 102 данных может представлять систему хранения файлов, основанную на базах данных, для поддержки описанной выше функциональности, в которой могут быть осуществлены любые пригодные характеристики и (или) атрибуты. Кроме того, модель 102 данных может представлять систему хранения файлов, основанную на базах данных, использующую контейнерную иерархическую структуру, где контейнер является элементом, который может содержать ноль или несколько элементов. Концепция удерживания осуществляется с помощью свойства идентификатора контейнера внутри связанного с ним класса. Накопитель также может быть контейнером, так что накопитель может быть физическим организационным или управляемым блоком. Кроме того, накопитель представляет корневой контейнер для дерева контейнеров внутри иерархической структуры. Кроме того, модель 102 данных может представлять систему хранения файлов, основанную на базах данных, которая определяет иерархическую модель по меньшей мере одного существующего объекта и ноль или несколько подобъектов для каждого объекта, чтобы представлять информацию как сложный тип.

Компонента 104 манипулирования данными может манипулировать данными, относящимися к модели 102 данных, тем самым гарантируя целостность и стабильность данных, связанных с характеристиками такой модели 102 данных. Модель 102 данных может включать в себя любые приемлемые характеристики и (или) указания, связанные с системой хранения файлов, основанной на базах данных. Компонента 104 манипулирования данными может обеспечивать перемещение, удаление, копирование, создание, обновление, замену и т.д. по меньшей мере для одного объекта, тем самым гарантируя стабильную систему (например, удовлетворяющую любым характеристикам, связанным с системой хранения файлов, основанной на базах данных, представленной моделью 102 данных). Например, модель 102 данных может представлять систему хранения файлов, основанную на базах данных, имеющую характеристику, где каждый идентификатор для контейнера уникален. Продолжая этот пример, компонента 104 манипулирования данными может применять любое приемлемое манипулирование данными (например, копирование, обновление, замену, получение, установку, создание, удаление, перемещение, …), тем самым внедряя и (или) поддерживая уникальность идентификатора для контейнеров. Должно быть оценено, что функции, описанные выше, не должны рассматриваться как ограничивающие настоящее изобретение, и что любое приемлемое манипулирование данными, вовлекающее модель 102 данных, может быть использовано при поддержании любой приемлемой характеристики, относящейся к ней. Кроме того, должно быть понятно, что компонента 104 манипулирования данными может манипулировать данными в соответствии с иерархической структурой (например, используя по меньшей мере один накопитель или контейнер, …), основываясь на модели 102 данных.

В соответствии с одним аспектом изобретения манипулирование данными может быть основано, по меньшей мере, частично на данных, вводимых пользователем, путем использования, например, прикладного программного интерфейса (ППИ) (не показан). При использовании ППИ взаимодействия и (или) манипуляции, вовлекающие модель 102 данных, и соответствующая система хранения файлов, основанная на базах данных, могут быть осуществлены при поддержке/внедрении любой приемлемой характеристики, связанной с ними. Должно быть оценено и понято, что ППИ может быть активизирован компонентой 104 манипулирования данными, отдельной компонентой, включенной в компоненту 104 манипулирования данными, и (или) любым их сочетанием.

Система 100 далее включает в себя компоненту 106 интерфейса, которая обеспечивает различные адаптеры, соединители, каналы, тракты связи и т.д., чтобы интегрировать компоненту 104 манипулирования данными практически в любую(ые) операционную(ые) систему(ы) и (или) систему(ы) баз данных. Кроме того, компонента 106 интерфейса может обеспечивать различные адаптеры, соединители, каналы, тракты связи и т.д., чтобы обеспечить взаимодействие с данными и компонентой 104 манипулирования данными. Должно быть оценено, что хотя компонента 106 интерфейса встроена в компоненту 104 манипулирования данными, такое встраивание не является ограничивающим. Например, компонента 106 интерфейса может быть отдельной компонентой, чтобы принимать и передавать данные, относящиеся к системе 100.

На фиг.2 показана система 200, облегчающая манипулирование данными, среди характеристик системы хранения данных. Система 202 хранения данных может быть системой хранения файлов, основанной на базах данных, которая представляет экземпляры данных в виде сложных типов путем использования, по меньшей мере, иерархической структуры. Система 202 хранения данных может включать в себя по меньшей мере одну характеристику, которая внедряется, чтобы гарантировать характеристики системы 202 хранения данных во время манипулирования данными. Должно быть оценено, что систему 202 хранения данных может представлять модель данных (не показана). Кроме того, элемент, подэлемент, свойство и связь могут быть определены в системе 202 хранения данных, чтобы позволить представление информации в виде экземпляров сложного типа. Система 202 хранения данных может быть моделью данных, которая может описывать форму данных, декларировать ограничения, чтобы обозначать определенную семантическую согласованность данных, и определять семантические связи между данными. Система 202 хранения данных может использовать набор базовых строительных блоков для создания и управления расширенными существующими объектами и связями между объектами.

Например, строительные блоки могут включать в себя «Элемент», «Расширение Элемента», «Связь» и «Фрагмент Элемента». «Элемент» может быть определен как наименьшая единица согласованности внутри системы 202 данных, над которым можно совершать независимые действия: делать безопасным, переводить в последовательную форму, синхронизировать, копировать, делать резервную копию/восстанавливать из нее и т.д. Например, элементы могут быть наименьшими единицами согласованности, но границы, нарисованные вокруг элемента, могут включать в себя связи, расширения элементов и фрагменты элементов, которые могут логически принадлежать элементу. Таким образом, элемент может быть строкой в таблице, но может также указывать на строку элемента и все его вторичные части. Другими словами, элемент может быть удален, скопирован и т.д. с гарантией того, что такая операция полностью применяется к элементу и всем его частям. Элемент является экземпляром того типа, где все элементы в системе 202 хранения данных могут храниться в единой глобальной непрерывной области элементов. «Расширение Элемента» является типом элемента, который расширен с использованием расширения объекта. Расширение объекта может быть определено схемой с соответствующими атрибутами (например, имя, расширенный тип элемента, объявление свойства, …). «Расширение Элемента» может быть осуществлено, чтобы сгруппировать набор свойств, которые могут быть применены к типу элемента, который расширяется. «Связь» является типом объекта, который определяет связь между двумя экземплярами элемента, где связи имеют направления (например, один элемент является источником связи, а второй является целью связи). «Фрагмент Элемента» является типом объекта, который способствует объявлению больших коллекций в типах элементов и (или) расширениях элементов, где элементы коллекции могут быть объектом. Должно быть оценено и понято, что система 202 хранения данных может представлять любую приемлемую систему хранения файлов, основанную на базах данных, которая обеспечивает представление данных в виде экземпляров сложных типов, а описание выше не должно рассматриваться как ограничивающее настоящее изобретение. Система 202 хранения данных может быть практически сходной с представлением модели 102 данных, показанной на фиг.1.

Компонента 204 манипулирования данными может обеспечить манипулирование данными в системе 202 хранения данных, внедряя по меньшей мере одну характеристику, связанную с такой системой 202 хранения данных. Компонента 204 манипулирования данными может обеспечить манипулирование, то есть следующие действия (но не ограничиваясь ими) над данными (например, представленными экземплярами сложных типов): копирование, обновление, замена, получение, установка, создание, удаление, перемещение и т.д. Должно быть оценено, что компонента 204 манипулирования данными может быть практически сходной с компонентой 104 манипулирования данными, показанной на фиг.1.

Компонента 204 манипулирования данными может включать в себя компоненту 206 процедур, которая обеспечивает конкретные функции для манипулирования данными в соответствии с характеристиками, связанными с системой 202 хранения данных. Другими словами, компонента 206 процедур может обеспечить технологии манипулирования, относящиеся к системе 202 хранения данных. Например, компонента 206 процедур может включать в себя копирование, перемещение, замену, установку, удаление, создание, получение, обновление данных и (или) представление данных в виде экземпляров сложных типов. Должно быть оценено, что компонента 206 процедур может обеспечить любую приемлемую технологию и (или) функцию манипулирования данными, которые могут быть осуществлена в системе 202 хранения данных. Хотя компонента 206 процедур показана как встроенная в компоненту 204 манипулирования данными, настоящее изобретение не ограничено этим. Компонента 206 процедур также может быть отдельной компонентой, либо встроенной в систему 202 хранения данных (например, ту, которая может быть реализацией концепции модели данных).

Компонента 204 манипулирования данными может далее включать в себя компоненту 208 внедрения, чтобы внедрить по меньшей мере одну характеристику системы 202 хранения данных в манипулирование данными. Как обсуждено выше, система 202 хранения данных может включать в себя любое приемлемое количество характеристик, которые могут обеспечить руководство манипулированием данными в такой системе 202 хранения данных. Другими словами, компонента 208 внедрения позволяет манипулирование данными в системе 202 хранения данных без нарушения ограничений модели данных, относящихся к системе 202 хранения данных. Должно быть оценено, что компонента 208 внедрения может быть встроена в компоненту 204 манипулирования данными (как показано), может быть отдельной компонентой, может быть встроенной в систему 202 хранения данных и может быть любым их сочетанием.

Например, система 202 хранения данных может использовать элемент, контейнер и иерархию структуры хранения (как обсуждено выше). Компонента 208 внедрения может осуществлять характеристики, относящиеся к идентификатору контейнера, связанному с системой 202 хранения данных. Например, компонента 208 внедрения может обеспечить по меньшей мере один из следующих признаков: (1) идентификатор контейнера для содержания идентификатора ненулевого элемента в накопителе (например, это может быть осуществлено с помощью функций манипулирования и (или) технологиями «Создать Элемент», «Создать Сложные Элементы», «Переместить Элемент» и «Заменить Элемент», обсуждаемые ниже); (2) идентификатор контейнера не обновляется с использованием функции и (или) технологии манипулирования «Обновить Элемент» (обсуждаемая ниже); и (3) идентификатор контейнера может быть изменен с помощью вызова «Переместить Элемент». Должно быть оценено и понято, что настоящее изобретение не ограничено указанными названиями перечисленных выше функций и (или) технологий.

В другом примере компонента 208 внедрения может осуществлять семантику транзакции совместно с манипулированием данными. Компонента 208 внедрения может осуществлять следующие семантики транзакций: (1) если нет активных транзакций, может быть возвращен код ошибки, и команда не обрабатывается; и (2) производится попытка проверить и применить операцию. Если проверка и применение операции выполняются успешно, управление может быть возвращено вызывающему абоненту, так как операция не была совершена в транзакции, поддерживаемой абонентом. Если проверка или применение операции были неуспешны, транзакция не выполняется, появляется ошибка, и управление может быть возвращено вызывающему абоненту. Невыполненная транзакция означает, что абонент может осуществлять запросы по транзакции, но не может завершить транзакцию (например, вызов для завершения может привести к ошибке). Должно быть оценено, что запрос ППИ может либо быть полностью успешным, либо целиком неуспешным. Комплексный ППИ может сделать по меньшей мере одно изменение в основополагающую таблицу хранения и может осуществлять комплексный набор проверок согласованности и (или) целостности. Кроме того, должно быть оценено, что система 200 никогда не останется в несогласованном и (или) неверном состоянии.

Фиг.3 показывает систему 300, которая облегчает осуществление целостности и безопасности данных с помощью манипулирования данными, связанного с системой хранения данных. Система 302 хранения данных может быть системой хранения файлов, основанной на базах данных, основанной, по меньшей мере, частично на модели данных, где данные представлены в виде экземпляров сложных типов. Компонента 304 манипулирования данными может обеспечить манипулирование данными, связанное с системой 302 хранения данных. Компонента 304 манипулирования данными может включать в себя компоненту 306 процедур, которая может обеспечить по меньшей мере одну функцию и (или) технологию, вовлеченные в манипулирование данными в системе 302 хранения данных. Кроме того, компонента 304 манипулирования данными может включать в себя компоненту 308 внедрения, которая устанавливает по меньшей мере одну характеристику и (или) указание относительно системы 302 хранения данных, где такая характеристика гарантирует, что ограничение модели данных будет осуществлено при манипулировании данными. Должно быть оценено и понято, что система 302 хранения данных, компонента 304 манипулирования данными, компонента 306 процедур, компонента 308 внедрения могут быть практически сходными с системой 202 хранения данных, компонентой 204 манипулирования данными, компонентой 206 процедур и компонентой 208 внедрения, показанными на фиг.2.

Компонента 304 манипулирования данными может включать в себя накопитель 310 данных для облегчения хранения и (или) доступа по меньшей мере к одной процедуре, связанной с манипулированием данных в системе 302 хранения данных. Например, накопитель 310 данных может хранить процедуру (например, код), которая может быть использована ППИ, а манипулирование данными может быть получено пользователем и активизировано, поддерживая по меньшей мере одну характеристику, связанную с системой 302 хранения данных. В другом примере накопитель 310 данных может хранить различные характеристики, связанные с системой 302 хранения данных и (или) различными данными ППИ (например, подпрограммами и т.д.). В одном примере накопитель 310 данных может быть жестким диском. Накопитель 310 данных может быть, например, либо энергозависимой, либо энергонезависимой памятью, либо может включать в себя как энергозависимую, так и энергонезависимую память. Для иллюстрации, не для ограничения, энергонезависимая память может включать в себя постоянное запоминающее устройство (ПЗУ), программируемое ПЗУ (ППЗУ), электрически программируемое ПЗУ (ЭППЗУ), электрически стираемое программируемое ПЗУ (ЭСППЗУ) или флэш-память. Энергозависимая память может включать в себя оперативное запоминающее устройство (ОЗУ), которое действует как внешняя кэш-память. Для иллюстрации, не для ограничения, ОЗУ доступно во множестве форм, таких как статическое ОЗУ (СОЗУ), динамическое ОЗУ (ДОЗУ), синхронное ДОЗУ (СДОЗУ), СДОЗУ с удвоенной частотой передачи данных (УЧПД СДОЗУ), усиленное СДОЗУ (УСДОЗУ), ДОЗУ типа Synchlink (СЛДОЗУ), ОЗУ прямого доступа типа Rambus (РПДОЗУ), динамическое ОЗУ прямого доступа типа Rambus (ДРПДОЗУ) и динамическое ОЗУ типа Rambus (РПДОЗУ). Предполагается, что накопителем 310 данных в настоящих системах и способах являются эти и любые другие пригодные типы памяти, но не ограничиваются ими. Кроме того, должно быть оценено, что накопителем 310 данных может быть сервер и (или) база данных.

Компонента 304 манипулирования данными может далее включать в себя компоненту 312 безопасности, чтобы обеспечить по меньшей мере один атрибут безопасности в системе 300. Например, компонента 312 безопасности может использовать профиль пользователя так, чтобы с ним были связаны конкретные функции и (или) технологии манипулирования данными. Кроме того, составляющая 312 безопасности может использовать различные меры безопасности, такие как имя пользователя, пароль, биометрические признаки (например, отпечатки пальцев, сканирование сетчатки глаза, индуктивность, …), распознавание голоса и т.п., но не ограничивается ими, чтобы гарантировать целостность и дозволенность манипулирования данными конкретного объекта. Составляющая 312 безопасности может далее использовать любой приемлемый атрибут безопасности, связанный с системой 302 хранения данных. Другими словами, составляющая 312 безопасности может осуществлять регулировки безопасности так, что внедряются ограничения безопасности системы 302 хранения данных.

Фиг.4 показывает систему 400, которая облегчает осуществление ППИ, который манипулирует данными, связанными с системой хранения данных. Система 402 хранения данных может быть системой хранения файлов, основанной на базах данных, имеющей по меньшей мере одну характеристику, связанную с ней, где система 402 хранения данных может быть представлена моделью данных (не показана). Компонента 404 манипулирования данными может позволить манипулирование данными, включающее в себя следующие действия (но не ограничиваясь ими): копирование, перемещение, замена, установка, удаление, создание, получение, обновление данных, соответствующих системе 402 хранения данных. Должно быть оценено, что система 402 и компонента 404 манипулирования данными могут использовать практически ту же самую функциональность, что и система 302 хранения данных, система 202 хранения данных, компонента 304 манипулирования данными и компонента 204 манипулирования данными, показанные на фиг.3 и 2 соответственно.

Компонента 404 манипулирования данными может далее включать в себя составляющую 406 ППИ (далее обозначаемую как ППИ 406), которая позволяет объекту манипулировать данными в системе 402 хранения данных. Объектом может быть (но не ограничиваться ими) пользователь, компьютер, база данных, … ППИ 406 может принимать, по меньшей мере, входной сигнал от пользователя, где входным сигналом от пользователя является команда и (или) функция, содержащая манипулирование данными в системе 402 хранения данных. Хотя ППИ 406 изображен как встроенный в компоненту 404 манипулирования данными, должно быть оценено, что ППИ 406 может быть отдельной составляющей, может быть встроен в систему 402 хранения данных и (или) может быть их сочетанием. Кроме того, ППИ 406 может использовать различные составляющие, обсужденные ранее, чтобы обеспечить манипулирование данными с использованием конкретных процедур, внедряя характеристики, соответствующие системе 402 хранения данных.

Фиг.5 показывает систему 500, которая облегчает активизацию прикладного программного интерфейса (ППИ), который манипулирует данными в характеристиках системы хранения данных. Система 502 хранения данных может быть системой хранения файлов, основанной на базах данных, имеющей по меньшей мере одну определяющую характеристику, где система 502 хранения данных может быть основана, по меньшей мере, частично на модели данных (не показана). Составляющая 504 манипулирования данными может позволить манипулирование данными, включающее в себя следующие действия (но не ограничиваясь ими): коп