Область техник
[0001] Изобретение относится к области вычислительной техники, более конкретно, к средствам проверки пакета структурированных входных данных на соответствие определенным требованиям к структуре данных.
Уровень техники
[0002] В настоящее время в информационных технологиях широко используются устройства для обработки структурированных данных с целью их валидации. Популярными форматами передачи (хранения) структурированных данных являются форматы XML, JSON, YAML. Например, протокол SOAP подразумевает обмен между сетевыми устройствами сообщениями, закодированными в формате XML. В протоколе HTTP для обмена между сетевыми устройствами широко используется кодирование в формат JSON, YAML. Одна из проблем существующих устройств валидации данных заключается в том, что в процессе своей работы они используют достаточно много оперативной и/или постоянной памяти для хранения и передачи требований к структуре данных. Эти устройства используют разнообразные способы кодирования требований, например, XSD, JSON-Schema, Kwalify, однако принцип работы этих устройств приблизительно одинаков.
[0003] Одним из примеров таких систем является система автоматической валидации данных и их коррекции, описанная в US 2012/0102002 A1. Раскрытая система содержит диспетчер данных, который может выполнить проверку и исправление таких данных. Диспетчер данных идентифицирует одну или несколько аномалий из данного набора данных, используя как контекстную информацию, так и правила проверки, а затем автоматически исправляет любые идентифицированные аномалии или отсутствующую информацию. Идентификация аномалий включает в себя создание аналогичных элементов данных и сопоставление с контекстной информацией и правилами валидации.
[0004] Однако известному решению присущи недостатки. В числе недостатков известного решения имеется низкая точность проверки пакета структурированных входных данных на соответствие определенным требованиям к структуре данных. Более того, в известном решении проверке и коррекции подвергаются абсолютно все данные, поступающие в диспетчер данных, что существенно снижает быстродействие известного решения.
Раскрытие изобретения
[0005] Настоящее изобретение предлагает осуществление принципиально нового устройства, которое за счёт использования специфического способа кодирования требований к пакетам структурированных данных требует меньше постоянной и оперативной памяти для хранения и передачи этих требований между внутренними компонентами устройства.
[0006] Задачей изобретения является снижение совокупного потребления оперативной и/или постоянной памяти подсистемами устройства за счёт использования специализированного оптимизированного способа кодирования/декодирования требований к валидируемым структурированным данным.
[0007] Техническим результатом при этом является снижение потребления постоянной памяти и/или оперативной памяти.
[0008] Дополнительным техническим результатом является повышение точности проверки пакета структурированных входных данных на соответствие определенным требованиям к структуре данных.
[0009] Для достижения данного технического результата предложено устройство валидации данных, где валидация данных является проверкой пакета структурированных входных данных на соответствие определенным требованиям к структуре данных, при этом устройство содержит: процессор, соединенный с памятью посредством шины приема и передачи данных; память, содержащую машиночитаемые инструкции, которые при их выполнении побуждают процессор передавать инструкции управления модулю ввода входных данных, модулю парсинга входных данных, FIFO-буферу элементов данных, модулю поиска элемента примера, модулю определения первичных требований, модулю проверки первичных требований, модулю проверки дополнительных требований, модулю вывода ошибки и модулю вывода результата, где память состоит из оперативного запоминающего устройства (ОЗУ) и постоянного запоминающего устройства (ПЗУ), при этом после инициализации устройства валидации данных описание требований к входным данным загружается из ПЗУ в ОЗУ; модуль ввода входных данных, выполненный с возможностью приема пакета структурированных входных данных от внешних вычислительных устройств и их передачи модулю парсинга входных данных; модуль парсинга входных данных, выполненный с возможностью приема от модуля ввода входных данных пакета структурированных входных данных, их обработки и разбиения на последовательность элементов данных, из которых состоят упомянутые входные данные, где в результате упомянутой обработки вычисляется адрес позиции элемента, который отражает позицию этого элемента внутри структуры входных данных; при этом модуль парсинга выполняет дальнейшую передачу полученной последовательности элементов данных вместе с их адресами в модуль FIFO-буфера элементов данных; при этом в случае, если модуль парсинга не смог разбить входные данные на последовательность элементов по причине ошибки формата данных, то модуль парсинга передаёт в модуль вывода ошибки сигнал об ошибке формата входных данных, и процесс валидации данных прекращается; FIFO-буфер элементов данных, выполненный с возможностью приема последовательности элементов данных вместе с их адресами от модуля парсинга входных данных и обеспечения начала проверки последовательности элементов данных вместе с их адресами на соответствие определенным требованиям к структуре данных, где упомянутое начало проверки выполняется путем передачи адреса позиции текущего элемента в модуль поиска элемента примера и передачи содержимого текущего элемента в модуль проверки первичных требований и в модуль проверки дополнительных требований; модуль поиска элемента примера, выполненный с возможностью обеспечения поиска соответствующего элемента примера корректных данных в сокращённых требованиях к структуре данных для текущего элемента входных данных, где сокращенные требования состоят из примера корректных данных и дополнительных требований, прилагаемых к данному примеру, где сокращенные требования модуль поиска элемента примера принимает от оперативного запоминающего устройства (ОЗУ), при этом модуль поиска элемента примера производит поиск дополнительных требований к упомянутому элементу примера; при этом в случае, если модуль поиска элемента примера не нашел в сокращённых требованиях элемента, который бы соответствовал текущему элементу по расположению, то модуль поиска элемента примера передаёт в модуль вывода ошибки сигнал об ошибке структуры входных данных и процесс валидации данных прекращается; при этом в случае если модуль поиска элемента примера успешно определил соответствующий элемент примера в сокращенных требованиях, то модуль поиска элемента примера передаёт этот элемент примера в модуль определения первичных требований и передаёт дополнительные требования к этому элементу примера в модуль проверки дополнительных требований; модуль определения первичных требований, выполненный с возможностью определения первичных требований на основании элемента примера корректных данных, полученного от модуля поиска элемента примера и передачи упомянутых требований в модуль проверки первичных требований, где первичные требования являются требованиями к типу данных текущего элемента; модуль проверки первичных требований, выполненный с возможностью проверки того, соответствует ли текущий элемент входных данных, который был получен от FIFO-буфера, первичным требованиям, которые были получены от модуля определения первичных требований; при этом: если текущий элемент соответствует первичным требованиям, то модуль проверки первичных требований передаёт в модуль проверки дополнительных требований сигнал об успешной проверке первичных требований; если текущий элемент не соответствует этим требованиям, то модуль проверки первичных требований передаёт в модуль вывода ошибки сигнал об ошибке проверки пакета структурированных входных данных на соответствие определенным требованиям к структуре данных и процесс валидации входных данных прекращается; модуль проверки дополнительных требований, выполненный с возможностью проверки того, соответствует ли текущий элемент входных данных полученным дополнительным требованиям к нему; при этом: если элемент не соответствует этим требованиям, то модуль проверки дополнительных требований передаёт в модуль вывода ошибки сигнал об ошибке валидации элемента данных и процесс валидации входных данных прекращается; если элемент соответствует дополнительным требованиям, то модуль проверки дополнительных требований передаёт в FIFO-буфер сигнал об успешной валидации текущего элемента данных; при этом в ответ на прием сигнала об успешной валидации текущего элемента данных FIFO-буфер вытесняет из очереди текущий элемент, так как он уже проверен и признан корректным, а следующий элемент из очереди FIFO-буфера становится текущим, и начинается процесс валидации этого нового текущего элемента; и при этом когда последний элемент входных данных будет вытеснен из FIFO-буфера, то FIFO-буфер выполняет передачу в модуль вывода результата сигнала об успешной валидации входных данных.
[0010] Дополнительно для достижения данного технического результата предложено устройство валидации данных, где валидация данных является проверкой пакета структурированных входных данных на соответствие определенным требованиям к структуре данных, при этом устройство содержит: процессор, соединенный с памятью посредством шины приема и передачи данных; память, содержащую машиночитаемые инструкции, которые при их выполнении побуждают процессор передавать инструкции управления модулю выборки следующего элемента примера, модулю определения первичных требований, модулю генерации развернутых требований, модулю ввода входных данных, модулю валидации по развернутым требованиям, модулю вывода ошибки валидации и модулю вывода результата валидации, где память состоит из оперативного запоминающего устройства (ОЗУ) и постоянного запоминающего устройства (ПЗУ); модуль выборки следующего элемента примера, выполненный с возможностью считывания из постоянного запоминающего устройства (ПЗУ) очередного элемента из сокращенных требований к структуре данных, а также дополнительных требований, соответствующих этому элементу, и с возможностью передачи в модуль генерации развернутых требований адреса текущего элемента примера и дополнительных требований, соответствующих текущему элементу примера, и с возможностью передачи текущего элемента примера данных в модуль определения первичных требований, и с возможностью передачи сигнала о завершении обработки сокращенных требований в модуль генерации развернутых требований и в модуль валидации по развернутым требованиям, где сокращенные требования состоят из примера корректных данных и дополнительных требований, прилагаемых к данному примеру; модуль определения первичных требований, выполненный с возможностью определения первичных требований по элементу примера и передачи первичных требований в модуль генерации развернутых требований, где первичные требования являются требованиями к типу данных элемента данных; модуль генерации развернутых требований, выполненный с возможностью на основании полученных первичных требований, дополнительных требований и адреса текущего элемента примера генерировать соответствующие развернутые требования, временно сохранять их в своей оперативной памяти, передачи в модуль выборки следующего элемента примера сигнала о завершении обработки текущего элемента сокращенных требований, где развернутые требования являются требованиями к входным данным и могут быть описаны в любом возможном формате; при этом: если есть необработанные элементы примера из сокращенных требований, то модуль выборки следующего элемента примера продолжает работу; если были обработаны все элементы примера сокращенных требований, модуль выборки следующего элемента примера передает в модуль генерации развернутых требований и в модуль валидации по развернутым требованиям сигнал о том, что обработка сокращенных требований завершена, при этом модуль генерации развернутых требований передает в оперативное запоминающее устройство (ОЗУ) развернутые требования, при этом модуль валидации по развернутым требованиям приходит в состояние готовности приема и валидации входных данных; и модуль ввода входных данных, выполненный с возможностью приема входных данных, которые необходимо подвергнуть валидации, и передачи их в модуль валидации по развернутым требованиям, который считывает из оперативного запоминающего устройства (ОЗУ) развернутые требования и использует их для валидации входных данных; при этом если валидация входных данных прошла успешно, то модуль валидации по развернутым требованиям передаёт в модуль вывода результата валидации сигнал об успешной валидации; если в процессе валидации входных данных произошла ошибка, то модуль валидации по развернутым требованиям передает в модуль вывода ошибки валидации сигнал об ошибке валидации.
[0011] Дополнительно модуль генерации развернутых требований выполнен с возможностью выполнения передачи и накопления сгенерированных развернутых требований в оперативное запоминающее устройство (ОЗУ) всякий раз после завершения обработки текущего элемента примера.
[0012] Очевидно, что как предыдущее общее описание, так и последующее подробное описание даны лишь для примера и пояснения и не являются ограничениями данного изобретения.
Краткое описание чертежей:
[0013] Фиг. 1 — схематичное изображение устройства валидации данных, в соответствии с первым воплощением настоящего решения.
[0014] Фиг. 2 — схематичное изображение устройства валидации данных, в соответствии со вторым воплощением настоящего решения.
Осуществление изобретения:
[0015] В контексте настоящего решения используются нижеследующие термины. Валидация — процесс проверки пакета структурированных входных данных на соответствие определенным требованиям к структуре данных. Устройство валидации — устройство, которое реализует валидацию входных данных и в качестве результата работы передаёт на выход сообщение об успехе или неудаче валидации. Модуль — некоторая часть устройства, выполняющая определенную функцию. Может быть разным по способу конкретной реализации: интегральная схема, ПЛИС, контроллер, микроконтроллер и другие аппаратные средства. Модуль может содержать инструкции для выполнения своей функции, устройство хранения этих инструкций, устройство обработки этих инструкций. Пакет структурированных данных — сокращенно, «пакет», «пакет данных», «входные данные» — пакет структурированных входных данных, который передаётся на устройство для выполнения процедуры валидации. ОЗУ — оперативное запоминающее устройство. ПЗУ — постоянное запоминающее устройство.
[0016] При использовании в данном решении термины «компонент», «модуль», «система», «подсистема» и т.п. предназначены для того, чтобы ссылаться на связанный с компьютером объект, либо аппаратные средства, программно-аппаратные средства, сочетание аппаратных средств и программного обеспечения, программное обеспечение либо программное обеспечение в ходе исполнения. Например, подсистема может быть, но не только процессом, запущенным на процессоре, процессором, объектом, исполняемым файлом, потоком исполнения, программой и/или компьютером. В качестве иллюстрации, и приложение, запущенное на вычислительном устройстве, и вычислительное устройство могут быть компонентом. Один или более компонентов может постоянно находиться внутри процесса и/или потока исполнения, и компонент может быть локализован на компьютере и/или распределен между двумя и более компьютерами. Кроме того, эти компоненты могут выполняться с различных машиночитаемых носителей, сохраняющих различные структуры данных. Компоненты могут обмениваться данными посредством локальных и/или удаленных процессов.
[0017] Различные аспекты или признаки, описанные в данном документе, могут быть реализованы как способ, устройство или изделие с помощью стандартных методик программирования и/или разработки. Термин «изделие» при использовании в данном документе имеет намерением содержать в себе вычислительную программу, доступную из любого машиночитаемого устройства, носителя или среды. Например, машиночитаемые носители могут включать в себя, но не только, магнитные устройства хранения (к примеру, жёсткий диск, гибкий диск, магнитную ленту и т.д.), оптические диски (к примеру, компакт-диск (CD), универсальный цифровой диск (DVD)), смарт-карты и устройства флэш-памяти (к примеру, EPROM, карточка, карта, флэш-диск и т.д.). Дополнительно различные носители хранения, описанные в данном документе, могут представлять одно или более устройств и/или других машиночитаемых носителей для хранения информации. Термин «машиночитаемый носитель» может включать в себя, без ограничений, беспроводные каналы и различные другие носители, допускающие хранение, размещение и/или перенос команд(ы) и/или данных. Устройство валидации состоит из нескольких модулей, которые обмениваются между собой данными. Способ обмена данными может быть разным, в зависимости от способа конкретной реализации устройства. Данные могут передаваться между устройствами с помощью шин данных, с помощью стандартных сетевых средств обмена данными (например, CAN, Ethernet, Token Ring), с помощью обмена данными через общую оперативную память, с помощью обмена данными через файл в файловой системе, с помощью специальных интегральных схем обмена данными по шинам данных, с помощью использования систем управления базами данных и т.д. Конкретный способ обмена данными между компонентами устройства не влияет на суть данного изобретения.
[0018] Следует принимать во внимание, что все хранилища данных, ОЗУ и ПЗУ (к примеру, ОЗУ 205 или ПЗУ 101), описанные в данном документе, могут быть энергозависимыми запоминающими устройствами или энергонезависимыми запоминающими устройствами, либо могут включать в себя и энергозависимое, и энергонезависимое запоминающее устройство. Разделение хранилищ данных на ОЗУ и ПЗУ сделано в данном документе по принципу современного стандарта разделения функций запоминающих устройств в промышленных системах. Однако это не означает, что ПЗУ не может быть реализовано с помощью энергозависимых технологий, а ОЗУ с помощью энергонезависимых технологий. Способы реализации ОЗУ и ПЗУ не влияют на сущность данного изобретения. В качестве иллюстрации, но не ограничения, энергонезависимое запоминающее устройство может включать в себя постоянное запоминающее устройство (ROM), программируемое ROM (PROM), электрически программируемое ROM (EPROM), электрически стираемое PROM (EEPROM), флэш-память (SSD), жесткий диск (HDD), компакт-диск (CD), DVD-диск. Энергозависимое запоминающее устройство может включать в себя синхронное RAM (SRAM), динамическое RAM (DRAM), синхронное DRAM (SDRAM), SDRAM с двойной скоростью передачи данных (DDR SDRAM), улучшенное SDRAM (ESDRAM), Synchlink DRAM (SLDRAM) и direct Rambus RAM (DRRAM). Запоминающие устройства 101, 102, 201, 205 настоящих устройств и способов имеет намерение содержать (но не только) эти и любые другие подходящие типы запоминающих устройств.
[0019] Следует понимать, что варианты осуществления, описанные в данном документе, могут быть реализованы посредством аппаратных средств, программного обеспечения, микропрограммного обеспечения, промежуточного программного обеспечения, микрокода или любой комбинации вышеозначенного. При реализации в аппаратных средствах блоки обработки могут быть реализованы в одной или нескольких специализированных интегральных схемах (ASIC), процессорах цифровых сигналов (DSP), устройствах цифровой обработки сигналов (DSPD), программируемых логических устройствах (PLD), программируемых пользователем матричных БИС (FPGA), процессорах, контроллерах, микроконтроллерах, микропроцессорах, других электронных устройствах, предназначенных для того, чтобы выполнять описанные в данном документе функции, или в их комбинациях.
[0020] Схематическое изображение заявленного устройства 100 валидации данных, в соответствии с первым воплощением настоящего решения показано на фиг. 1. Устройство 100 содержит процессор (не показан на фиг.), память, состоящую из постоянного запоминающего устройства (ПЗУ) 101 и оперативного запоминающего устройства (ОЗУ) 102, модуль 103 ввода входных данных, модуль 104 парсинга входных данных, FIFO-буфер 105 элементов данных, модуль 106 поиска элемента примера, модуль 107 определения первичных требований, модуль 108 проверки первичных требований, модуль 109 проверки дополнительных требований, модуль 110 вывода ошибки и модуль 111 вывода результата.
[0021] Первичные требования — это те требования к элементу данных, которые можно определить по примеру этих данных. Пример первичного требования: «значение элемента должно иметь тип “строка”». Способ интерпретации примера данных в смысле определения первичных требований может быть различным, в зависимости от конкретной реализации устройства валидации. Например, если в примере данных содержится элемент A, типа “объект”, который содержит элемент B, то этот пример данных можно интерпретировать в виде первичного требования к входным данным «элемент A должен иметь тип “объект” и должен содержать элемент B», также этот пример может быть интерпретирован в виде другого первичного требования «элемент A должен иметь тип “объект” и может содержать элемент B». Дополнительные требования к элементу — это такие требования к элементу, которые нельзя понять исходя из примера данных этого элемента. Например, требование «числовое значение этого элемента должно быть больше или равно 100» является дополнительным требованием. Состав возможных дополнительных требований к данным определятся в конкретной реализации устройства валидации и не имеет принципиального значения для настоящего изобретения. Способ записи дополнительных требований также не имеет принципиального значения. Главное требование к способу записи — чтобы он был в разумных пределах компактным, чтобы основное достоинство алгоритма — малое потребление памяти — не было нивелировано неразумным некомпактным способом записи дополнительных требований.
[0022] Модуль 103 ввода входных данных выполнен с возможностью приема пакета структурированных входных данных от внешних вычислительных устройств (не показаны на фиг. 1) и их передачи модулю 104 парсинга входных данных.
[0023] Модуль 104 парсинга входных данных выполнен с возможностью приема от модуля 103 ввода входных данных пакета структурированных входных данных, их обработки и разбиения на последовательность элементов данных, из которых состоят упомянутые входные данные. В результате упомянутой обработки вычисляется адрес позиции элемента, который отражает позицию этого элемента внутри структуры входных данных. Модуль 104 парсинга выполняет дальнейшую передачу полученной последовательности элементов данных вместе с их адресами в модуль FIFO-буфера 105 элементов данных. В случае, если модуль 104 парсинга не смог разбить входные данные на последовательность элементов по причине ошибки формата данных, то модуль 104 парсинга передаёт в модуль 110 вывода ошибки сигнал об ошибке формата входных данных, и процесс валидации данных прекращается.
[0024] FIFO-буфер 105 элементов данных выполнен с возможностью приема последовательности элементов данных вместе с их адресами от модуля 104 парсинга и обеспечения начала проверки последовательности элементов данных вместе с их адресами на соответствие определенным требованиям к структуре данных. Упомянутое начало проверки выполняется путем передачи адреса позиции текущего элемента в модуль 106 поиска элемента примера, передачи содержимого текущего элемента в модуль 108 проверки первичных требований и передачи содержимого текущего элемента в модуль 109 проверки дополнительных требований. FIFO-буфер элементов входных данных предназначен для хранения элементов входных данных и адресов этих элементов, которые определяет модуль 104 парсинга входных данных, и для последовательной выборки этих элементов и отправки их на валидацию в другие модули (106, 108, 109). Для каждого элемента в FIFO-буфере 105 хранится адрес элемента и содержимое элемента. Входы FIFO-буфера 105: вход для записи элементов входных данных. Через этот вход модуль 104 парсинга входных данных передаёт в FIFO-буфер 105 элементы входных данных с их адресами. Вход для сигнализации об успешной валидации текущего элемента. При поступлении сигнала на этот вход FIFO-буфер 105 вытесняет текущий элемент из своей памяти. При этом текущим элементом становится следующий элемент. Если вытесненный элемент был последним элементом в буфере 105, то FIFO-буфер 105 выдаёт выходной сигнал об успешной валидации всех данных. Выходы FIFO-буфера 105: выход для передачи адреса позиции текущего элемента. На этот выход FIFO-буфер 105 передаёт адрес позиции текущего элемента. Выход для передачи содержимого текущего элемента. На этот выход FIFO-буфер 105 передаёт содержимое текущего элемента. Выход для сигнализации об успешной валидации входных данных. На этот выход FIFO-буфер 105 передаёт сигнал об успешной валидации входных данных в тот момент, когда буфер 105 очищается от всех элементов.
[0025] Модуль 106 поиска элемента примера выполнен с возможностью обеспечения поиска соответствующего элемента примера в сокращённых требованиях к структуре данных для текущего элемента входных данных. Сокращенные требования — это требования к входным данным, которые выполнены в форме примера корректных данных (первичных требований) и дополнительных сведений, отдельных от упомянутого примера данных или внедренных по определённым правилам внутрь упомянутого примера данных (дополнительных требований). Сокращенные требования модуль 106 поиска элемента примера принимает от оперативного запоминающего устройства (ОЗУ) 102. Модуль 106 поиска элемента примера производит поиск первичных и дополнительных требований к упомянутому элементу примера. В случае, если модуль 106 поиска элемента примера не нашел в сокращённых требованиях элемента, который бы соответствовал текущему элементу по расположению, то модуль 106 поиска элемента примера передаёт в модуль 110 вывода ошибки сигнал об ошибке структуры входных данных и процесс валидации данных прекращается. В случае, если модуль 106 поиска элемента примера успешно определил соответствующий элемент примера в сокращенных требованиях, то модуль 106 поиска элемента примера передаёт этот элемент примера в модуль 107 определения первичных требований и передаёт дополнительные требования к этому элементу примера в модуль 109 проверки дополнительных требований. Модуль 106 поиска элемента примера имеет следующие входы: вход для передачи адреса позиции текущего элемента; вход для передачи сокращённых требований к структуре данных. Модуль 106 поиска элемента примера имеет следующие выходы: выход для передачи найденного элемента примера правильных данных; выход для передачи дополнительных требований, связанных с найденным элементом примера правильных данных; выход для передачи сигнала ошибки структуры входных данных в том случае, если модуль поиска элемента примера не смог найти элемент примера правильных данных, соответствующий текущему элементу входных данных.
[0026] Модуль 106 поиска элемента примера может осуществлять различные способы поиска элемента примера, соответствующего текущему элементу, в зависимости от конкретной реализации устройства валидации. Например, может быть использован следующий способ. Адрес текущего элемента входных данных представляет из себя последовательное описание пути от корневого элемента данных до текущего элемента. Этот путь содержит в себе либо наименования полей объектов, либо номера элементов массивов, в зависимости от того, через какие объекты и массивы лежит этот путь. Модуль 106 поиска элемента примера прилагает этот путь (адрес текущего элемента входных данных) не к входным данным, а к примеру данных, находящемся в сокращенном описании требований. Начиная от корня, шаг за шагом, модуль 106 проверяет, можно ли пройти по этому пути по примеру данных из сокращённых требований. Если таким путём можно пройти, то модуль 106 поиска элемента примера в качестве результата поиска определит элемент примера данных в сокращенных требованиях, на который указывает адрес текущего элемента. Если таким путём нельзя пройти, то это означает ошибку валидации структуры входных данных, и в модуль 110 вывода ошибки валидации будет передан сигнал об ошибке валидации. Во время работы модуля 106 по указанному способу возможны следующие нестандартные ситуации. Модуль 106 поиска дошел по пути до элемента типа объект, при этом в адресе указан следующий элемент пути, но у текущего объекта нет поля с названием, соответствующим этому следующему элементу пути. В этом случае модуль 106 передаёт в модуль 110 вывода ошибки валидации сигнал об ошибке валидации типа «ошибка структуры входных данных». Модуль 106 поиска дошел по пути до элемента одного типа (например, объект), но по этому пути во входных данных находится элемент другого типа (например, массив). В этом случае, как и в предыдущем, модуль 106 поиска элемента примера отправляет в модуль 110 вывода ошибок сигнал об ошибке структуры входных данных. Модуль 106 поиска дошел по пути до элемента типа массив, при этом следующий элемент пути в адресе содержит индекс элемента массива, который превышает индекс самого последнего элемента в примере данных. В этом случае сигнал об ошибке валидации в модуль 110 вывода ошибок валидации не отправляется, но указанный индекс заменяется на индекс последнего элемента в примере правильных данных, после чего модуль 106 продолжает свою работу. Конкретная реализация модуля 106 может предполагать и другие реакции на упомянутые нестандартные ситуации.
[0027] Модуль 107 определения первичных требований выполнен с возможностью определения первичных требований на основании элемента примера, полученного от модуля 106 поиска элемента примера и передачи упомянутых требований в модуль 108 проверки первичных требований. Первичные требования являются требованиями к типу данных текущего элемента. Правила определения первичных требований по внешнему виду примера могут быть разными, в зависимости от конкретной реализации устройства валидации. Целесообразно использовать следующее правило: «Тип элемента входных данных должен соответствовать типу элемента из примера данных». Может быть добавлено правило, касающееся обязательности атрибутов, которые находятся в элементе-объекте примера, а также правило о допустимости наличия в элементе-объекте входных данных атрибутов, которых нет в элементе-объекте примера. Например, эти правила могут быть следующими: все атрибуты, указанные в любом элементе-объекте примера по умолчанию, являются обязательными для входных данных; во всех элементах-объектах входных данных по умолчанию не могут быть использованы атрибуты, которые не указаны в соответствующих объектах примера. Для иллюстрации разнообразия вариантов правил определения первичных требований приведём такое возможное правило: «если элемент примера данных имеет тип строка и соответствует стандарту описания адреса электронной почты RFC 5322, то текущий элемент должен содержать строку с валидным адресом электронной почты по стандарту RFC 5322». Могут быть добавлены и другие правила, в зависимости от конкретной реализации устройства валидации. Состав этих правил не изменяет сущности предлагаемого изобретения. Модуль 107 определения первичных требований имеет следующие входы и выходы: вход, на который передается содержимое элемента примера правильных данных; выход, на который подается набор первичных требований, определенных по элементу примера правильных данных в соответствии с правилами, специфичными для конкретной реализации устройства валидации.
[0028] Модуль 108 проверки первичных требований выполнен с возможностью проверки того, соответствует ли текущий элемент входных данных, который был получен от FIFO-буфера 105, первичным требованиям, которые были получены от модуля 107 определения первичных требований. Если текущий элемент соответствует первичным требованиям, то модуль 108 проверки первичных требований передаёт в модуль 109 проверки дополнительных требований сигнал об успешной проверке первичных требований. Если текущий элемент не соответствует этим требованиям, то модуль 108 проверки первичных требований передаёт в модуль вывода 110 ошибки сигнал об ошибке проверки пакета структурированных входных данных на соответствие определенным требованиям к структуре данных и процесс валидации входных данных прекращается. Модуль 108 проверки первичных требований содержит следующие входы и выходы: вход, на который передаётся набор первичных требований к входным данным; вход, на который передаётся содержимое текущего элемента; выход, на который передаётся сигнал об успешной проверке соответствия текущего элемента первичным требованиям; выход, на который передаётся сигнал об ошибке, возникшей при проверке соответствия текущего элемента первичным требованиям.
[0029] Модуль 109 проверки дополнительных требований выполнен с возможностью проверки того, соответствует ли текущий элемент входных данных полученным дополнительным требованиям к нему. Если элемент не соответствует этим требованиям, то модуль 109 проверки дополнительных требований передаёт в модуль вывода ошибки сигнал об ошибке валидации элемента данных и процесс валидации входных данных прекращается. Если элемент соответствует дополнительным требованиям, то модуль 109 проверки дополнительных требований передаёт в FIFO-буфер 105 сигнал об успешной валидации текущего элемента данных. В ответ на прием сигнала об успешной валидации текущего элемента данных FIFO-буфер 105 вытесняет из очереди текущий элемент, так как он уже проверен и признан корректным, а следующий элемент из очереди FIFO-буфера 105 становится текущим, и начинается процесс валидации этого нового текущего элемента. Когда последний элемент входных данных будет вытеснен из FIFO-буфера 105, то FIFO-буфер 105 выполняет передачу в модуль 111 вывода результата сигнала об успешной валидации входных данных. Модуль 109 проверки дополнительных требований содержит следующие входы и выходы: вход, на который передаётся набор дополнительных требований к входным данным; вход, на который передаётся содержимое текущего элемента; вход, на который передаётся сигнал об успешной проверке первичных требований из модуля 108 проверки первичных требований; выход, на который передаётся сигнал об успешной проверке соответствия текущего элемента дополнительным требованиям; выход, на который передаётся сигнал об ошибке, возникшей при проверке соответствия текущего элемента дополнительным требованиям.
[0030] Схематичное изображение устройства валидации данных, в соответствии со вторым воплощением настоящего решения показано на фиг. 2. Устройство 200 содержит процессор (не показан на фиг. 2), память, состоящую из постоянного запоминающего устройства (ПЗУ) 201 и оперативного запоминающего устройства (ОЗУ) 205, модуля 202 выборки следующего элемента примера, модуля 203 определения первичных требований, модуля 204 генерации развернутых требований, модуля 206 ввода входных данных, модуля 207 валидации по развернутым требованиям, модуля 209 вывода ошибки валидации и модуля 208 вывода результата валидации.
[0031] Процессор (не показан на фиг. 2) соединен с памятью посредством шины приема и передачи данных. Память содержит машиночитаемые инструкции, которые при их выполнении побуждают процессор передавать инструкции управления модулю 202 выборки следующего элемента примера, модулю 203 определения первичных требований, модулю 204 генерации развернутых требований, модулю 206 ввода входных данных, модулю 207 валидации по развернутым требованиям, модулю 208 вывода результата валидации и модулю 209 вывода ошибки валидации, где память состоит из оперативного запоминающего устройства (ОЗУ) и постоянного запоминающего устройства (ПЗУ).
[0032] Модуль 202 выборки следующего элемента примера выполнен с возможностью считывания из ПЗУ 201 очередного элемента из сокращенных требований к структуре данных, а также дополнительных требований, соответствующих этому элементу. Также модуль 202 выборки следующего элемента примера выполнен с возможностью передачи в модуль 204 генерации развернутых требований адреса текущего элемента примера и дополнительных требований, соответствующих текущему элементу примера, с возможностью передачи текущего элемента примера данных в модуль 203 определения первичных требований, с возможностью передачи в модуль 204 генерации развёрнутых требований сигнала о завершении обработки сокращённых требований, и с возможностью передачи в модуль 207 валидации по развёрнутым требованиям сигнала о завершении обработки сокращённых требований. Модуль 202 выборки следующего элемента примера предназначен для: последовательной выборки элементов примера элемент за элементом в той последовательности, в которой они присутствуют в примере правильных данных; определения дополнительных требований, соответствующих текущему элементу примера данных по правилам, определенным для конкретного устройства валидации и передачи этих дополнительных требований в модуль 204 генерации развернутых требований; определения адреса текущего элемента примера данных, где адрес отражает позицию текущего элемента внутри структуры примера данных, и передачи этого адреса в модуль 204 генерации развернутых требований; последовательной передачи этих элементов в модуль 203 определения первичных требований. Модуль 202 выборки следующего элемента примера имеет следующие входы и выходы: вход для приёма сокращенных требований к структуре данных в виде примера правильных данных из ПЗУ 201 и дополнительных требований к этому примеру правильных данных; вход для получения сигнала об успешной обработке текущего элемента примера правильных данных из сокращенных требований; выход для передачи содержимого текущего элемента примера правильных данных; выход для передачи адреса текущего элемента и дополнительных требований, соответствующих текущему элементу примера правильных данных; выход для передачи сигнала о завершении обработки сокращенных требований.
[0033] Модуль 203 определения первичных требований выполнен с возможностью определения первичных требований по элементу примера и передачи первичных требований в модуль 204 генерации развернутых требований. Модуль 203 определения первичных требований работает в точности, как одноименный модуль 107 определения первичных требований, детально описанный выше при описании предыдущего варианта реализации устройства валидации.
[0034] Модуль 204 генерации развернутых требований выполнен с возможностью на основании полученных первичных требований, дополнительных требований и адреса текущего элемента генерировать соответствующие развернутые требования, временно сохранять их в своей оперативной памяти, передавать в модуль 202 выборки следующего элемента примера сигнала о завершении обработки текущего элемента сокращенных требований. Если есть необработанные элементы примера из сокращенных требований, то модуль 202 выборки следующего элемента примера продолжает работу. Если были обработаны все элементы примера сокращенных требований, модуль 202 выборки следующего элемента примера передает в модуль 204 генерации развернутых требований и в модуль 207 валидации по развёрнутым требованиям сигнал о том, что обработка сокращенных требований завершена. В качестве альтернативы, модуль 204 генерации может быть выполнен с возможностью выполнения передачи сгенерированных развернутых требований в оперативное запоминающее устройство (ОЗУ). Модуль 204 генерации развёрнутых требований предназначен для генерации развёрнутых требований к структуре входных данных в некотором ином виде, то есть не на основе примера правильных данных. Конкретный формат развёрнутых требований может быть любым, например, JSON-Schema, и не влияет на сущность данного изобретения. Модуль 204 генерации развёрнутых требований последовательно получает для каждого элемента примера его адрес, первичные требования и дополнительные требования и по специфическим для конкретной реализации устройства валидации правилам генерирует развёрнутые требования к структуре входных данных, записывая эти требования в ОЗУ 205. Развёрнутые требования могут записываться в ОЗУ как последовательно при обработке каждого элемента примера правильных данных, так и в самом конце обработки примера правильных данных после получения сигнала о том, что обработка сокращенных требований завершена. Модуль 204 генерации развёрнутых требований имеет следующие входы и выходы: вход для приёма первичных требований, соответствующих очередному текущему элементу примера входных данных; вход для приёма адреса текущего элемента и дополнительных требований, соответствующих очередному текущему элементу примера входных данных; вход для получения сигнала о том, что обработка сокращенных требований завершена, после получения которого модуль 204 генерации развернутых требований производит финальные операции, необходимые для сохранения развёрнутых требований в ОЗУ 205; выход для передачи сигнала об успешной обработке первичных и дополнительных требований к текущему элементу примера правильных данных.
[0035] Модуль 206 ввода входных данных выполнен с возможностью приема входных данных, которые необходимо подвергнуть валидации, и передачи их в модуль 207 валидации по развернутым требованиям, который считывает из ОЗУ 205 развернутые требования и использует их для валидации входных данных. Если валидация входных данных прошла успешно, то модуль 207 валидации по развернутым требованиям передаёт в модуль 208 вывода результата валидации сигнал об успешной валидации. Если в процессе валидации входных данных произошла ошибка, то модуль 207 валидации по развернутым требованиям передает в модуль 209 вывода ошибки валидации сигнал об ошибке валидации.
[0036] Модуль 207 валидации по развёрнутым требованиям предназначен для проверки соответствия входных данных развёрнутым требованиям, которые были сгенерированы и сохранены в ОЗУ 205. Модуль 207 валидации по развёрнутым требованиям имеет следующие входы и выходы: вход для приёма развёрнутых требований из ОЗУ; вход для приёма сигнала о завершении обработки сокращённых требований, после получения которого модуль 207 валидации по развернутым требованиям переходит в состояние готовности приёма и валидации входных данных; вход для приёма входных данных; выход для сигнала об ошибке валидации входных данных; выход для сигнала об успешной валидации входных данных.
[0037] Хотя данное изобретение было показано и описано со ссылкой на определенные варианты его осуществления, специалистам в данной области техники будет понятно, что различные изменения и модификации могут быть сделаны в нем, не покидая фактический объём изобретения.
[0038] То, что описано выше, включает в себя примеры одного или более вариантов осуществления. Конечно, невозможно описать каждое вероятное сочетание компонентов или технологий в целях описания вышеозначенных вариантов осуществления, но специалисты в данной области техники могут признать, что многие дополнительные сочетания и перестановки различных вариантов осуществления допустимы. Следовательно, описанные варианты осуществления имеют намерение охватывать все подобные преобразования, модификации и разновидности, которые попадают под сущность и объем прилагаемой формулы изобретения.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И СИСТЕМА ВЫПОЛНЕНИЯ ОНЛАЙН ТРАНЗАКЦИЙ С ПОМОЩЬЮ МЕХАНИЗМА ГЕНЕРАЦИИ СКИДОЧНЫХ КОДОВ | 2018 |
|
RU2693635C1 |
Способ и устройство повторной передачи данных по протоколу пользовательских дейтаграмм | 2015 |
|
RU2610697C1 |
УСТРОЙСТВО И СПОСОБ ОТОБРАЖЕНИЯ ТЕЛЕВИЗИОННОЙ ВИДЕОИНФОРМАЦИИ НА ЭКРАНЕ КОМПЬЮТЕРНОГО МОНИТОРА | 2011 |
|
RU2464725C1 |
КОСМИЧЕСКИЙ РАДИОЛОКАТОР С СИНТЕЗИРОВАННОЙ АПЕРТУРОЙ, ФОРМИРУЮЩИЙ ИЗОБРАЖЕНИЕ В РЕАЛЬНОМ ВРЕМЕНИ | 1999 |
|
RU2158008C1 |
УСТРОЙСТВО ИМИТОЗАЩИТЫ КОНТРОЛИРУЕМЫХ ОБЪЕКТОВ С ЗАДЕРЖКОЙ ОТВЕТА ПО ВРЕМЕНИ | 2015 |
|
RU2595938C1 |
УСТРОЙСТВО ДЛЯ ОДНОВРЕМЕННОГО ПРИЕМА СИГНАЛОВ РАЗЛИЧНЫХ СИСТЕМ СПУТНИКОВОЙ НАВИГАЦИИ | 2015 |
|
RU2611069C1 |
СИСТЕМА ЦЕНТРАЛИЗОВАННОГО СПРАВОЧНИКА ЭТАЛОННЫХ КЛИЕНТСКИХ ДАННЫХ И СПОСОБ ОБЪЕДИНЕНИЯ КЛИЕНТСКИХ ДАННЫХ ИЗ УЧЕТНЫХ СИСТЕМ | 2020 |
|
RU2775167C2 |
РАБОЧАЯ МАШИНА И СПОСОБ МОНИТОРИНГА СИСТЕМЫ УПРАВЛЕНИЯ НА РАБОЧЕЙ МАШИНЕ | 2018 |
|
RU2776166C2 |
СПОСОБ И СИСТЕМА ПРЕДОТВРАЩЕНИЯ ПОЛУЧЕНИЯ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА К ОБЪЕКТАМ КОРПОРАТИВНОЙ СЕТИ | 2022 |
|
RU2799117C1 |
Единый генератор псевдослучайных последовательностей (ПСП) приемника сигналов Глобальных Навигационных Спутниковых Систем (ГНСС) | 2022 |
|
RU2789320C1 |
Изобретение относится к устройствам валидации данных. Технический результат заключается в повышении надежности валидации данных. Устройство содержит процессор, соединенный с памятью посредством шины приема и передачи данных; память, содержащую машиночитаемые инструкции, которые при их выполнении побуждают процессор передавать инструкции управления модулю выборки следующего элемента примера, модулю определения первичных требований, модулю генерации развернутых требований, модулю ввода входных данных, модулю валидации по развернутым требованиям, модулю вывода ошибки валидации и модулю вывода результата валидации, где память состоит из оперативного запоминающего устройства (ОЗУ) и постоянного запоминающего устройства (ПЗУ); модуль выборки следующего элемента примера, выполненный с возможностью считывания из постоянного запоминающего устройства (ПЗУ) очередного элемента из сокращенных требований к структуре данных, а также дополнительных требований, соответствующих этому элементу, и с возможностью передачи в модуль генерации развернутых требований адреса текущего элемента примера и дополнительных требований, соответствующих текущему элементу примера, и с возможностью передачи текущего элемента примера данных в модуль определения первичных требований, и с возможностью передачи сигнала о завершении обработки сокращенных требований в модуль генерации развернутых требований и в модуль валидации по развернутым требованиям, где сокращенные требования состоят из примера корректных данных и дополнительных требований, прилагаемых к данному примеру; модуль определения первичных требований, выполненный с возможностью определения первичных требований по элементу примера и передачи первичных требований в модуль генерации развернутых требований, где первичные требования являются требованиями к типу данных элемента данных; модуль генерации развернутых требований, выполненный с возможностью на основании полученных первичных требований, дополнительных требований и адреса текущего элемента примера генерировать соответствующие развернутые требования, временно сохранять их в своей оперативной памяти, передачи в модуль выборки следующего элемента примера сигнала о завершении обработки текущего элемента сокращенных требований, где развернутые требования являются требованиями к входным данным и могут быть описаны в любом возможном формате; при этом если есть необработанные элементы примера из сокращенных требований, то модуль выборки следующего элемента примера продолжает работу; если были обработаны все элементы примера сокращенных требований, модуль выборки следующего элемента примера передает в модуль генерации развернутых требований и в модуль валидации по развернутым требованиям сигнал о том, что обработка сокращенных требований завершена, при этом модуль генерации развернутых требований передает в оперативное запоминающее устройство (ОЗУ) развернутые требования, при этом модуль валидации по развернутым требованиям приходит в состояние готовности приема и валидации входных данных; и модуль ввода входных данных, выполненный с возможностью приема входных данных, которые необходимо подвергнуть валидации, и передачи их в модуль валидации по развернутым требованиям, который считывает из оперативного запоминающего устройства (ОЗУ) развернутые требования и использует их для валидации входных данных; при этом если валидация входных данных прошла успешно, то модуль валидации по развернутым требованиям передает в модуль вывода результата валидации сигнал об успешной валидации; если в процессе валидации входных данных произошла ошибка, то модуль валидации по развернутым требованиям передает в модуль вывода ошибки валидации сигнал об ошибке валидации. 2 н. и 1 з.п. ф-лы, 2 ил.
1. Устройство валидации данных, где валидация данных является проверкой пакета структурированных входных данных на соответствие определенным требованиям к структуре данных, при этом устройство содержит:
- процессор, соединенный с памятью посредством шины приема и передачи данных;
- память, содержащую машиночитаемые инструкции, которые при их выполнении побуждают процессор передавать инструкции управления модулю ввода входных данных, модулю парсинга входных данных, FIFO-буферу элементов данных, модулю поиска элемента примера, модулю определения первичных требований, модулю проверки первичных требований, модулю проверки дополнительных требований, модулю вывода ошибки и модулю вывода результата, где память состоит из оперативного запоминающего устройства (ОЗУ) и постоянного запоминающего устройства (ПЗУ), при этом после инициализации устройства валидации данных описание требований к входным данным загружается из ПЗУ в ОЗУ;
- модуль ввода входных данных, выполненный с возможностью приема пакета структурированных входных данных от внешних вычислительных устройств и их передачи модулю парсинга входных данных;
- модуль парсинга входных данных, выполненный с возможностью приема от модуля ввода входных данных пакета структурированных входных данных, их обработки и разбиения на последовательность элементов данных, из которых состоят упомянутые входные данные, где в результате упомянутой обработки вычисляется адрес позиции элемента, который отражает позицию этого элемента внутри структуры входных данных;
при этом модуль парсинга выполняет дальнейшую передачу полученной последовательности элементов данных вместе с их адресами в модуль FIFO-буфера элементов данных;
при этом в случае если модуль парсинга не смог разбить входные данные на последовательность элементов по причине ошибки формата данных, то модуль парсинга передает в модуль вывода ошибки сигнал об ошибке формата входных данных, и процесс валидации данных прекращается;
- FIFO-буфер элементов данных, выполненный с возможностью приема последовательности элементов данных вместе с их адресами от модуля парсинга входных данных и обеспечения начала проверки последовательности элементов данных вместе с их адресами на соответствие определенным требованиям к структуре данных, где упомянутое начало проверки выполняется путем передачи адреса позиции текущего элемента в модуль поиска элемента примера и передачи содержимого текущего элемента в модуль проверки первичных требований и в модуль проверки дополнительных требований;
- модуль поиска элемента примера, выполненный с возможностью обеспечения поиска соответствующего элемента примера корректных данных в сокращенных требованиях к структуре данных для текущего элемента входных данных, где сокращенные требования состоят из примера корректных данных и дополнительных требований, прилагаемых к данному примеру, где сокращенные требования модуль поиска элемента примера принимает от оперативного запоминающего устройства (ОЗУ), при этом модуль поиска элемента примера производит поиск дополнительных требований к упомянутому элементу примера;
при этом в случае если модуль поиска элемента примера не нашел в сокращенных требованиях элемента, который бы соответствовал текущему элементу по расположению, то модуль поиска элемента примера передает в модуль вывода ошибки сигнал об ошибке структуры входных данных и процесс валидации данных прекращается;
при этом в случае если модуль поиска элемента примера успешно определил соответствующий элемент примера в сокращенных требованиях, то модуль поиска элемента примера передает этот элемент примера в модуль определения первичных требований и передает дополнительные требования к этому элементу примера в модуль проверки дополнительных требований;
- модуль определения первичных требований, выполненный с возможностью определения первичных требований на основании элемента примера корректных данных, полученного от модуля поиска элемента примера и передачи упомянутых требований в модуль проверки первичных требований, где первичные требования являются требованиями к типу данных текущего элемента;
- модуль проверки первичных требований, выполненный с возможностью проверки того, соответствует ли текущий элемент входных данных, который был получен от FIFO-буфера, первичным требованиям, которые были получены от модуля определения первичных требований; при этом:
если текущий элемент соответствует первичным требованиям, то модуль проверки первичных требований передает в модуль проверки дополнительных требований сигнал об успешной проверке первичных требований;
если текущий элемент не соответствует этим требованиям, то модуль проверки первичных требований передает в модуль вывода ошибки сигнал об ошибке проверки пакета структурированных входных данных на соответствие определенным требованиям к структуре данных и процесс валидации входных данных прекращается;
- модуль проверки дополнительных требований, выполненный с возможностью проверки того, соответствует ли текущий элемент входных данных полученным дополнительным требованиям к нему; при этом:
если элемент не соответствует этим требованиям, то модуль проверки дополнительных требований передает в модуль вывода ошибки сигнал об ошибке валидации элемента данных, и процесс валидации входных данных прекращается;
если элемент соответствует дополнительным требованиям, то модуль проверки дополнительных требований передает в FIFO-буфер сигнал об успешной валидации текущего элемента данных; при этом в ответ на прием сигнала об успешной валидации текущего элемента данных FIFO-буфер вытесняет из очереди текущий элемент, так как он уже проверен и признан корректным, а следующий элемент из очереди FIFO-буфера становится текущим, и начинается процесс валидации этого нового текущего элемента; и
при этом когда последний элемент входных данных будет вытеснен из FIFO-буфера, то FIFO-буфер выполняет передачу в модуль вывода результата сигнала об успешной валидации входных данных.
2. Устройство валидации данных, где валидация данных является проверкой пакета структурированных входных данных на соответствие определенным требованиям к структуре данных, при этом устройство содержит:
- процессор, соединенный с памятью посредством шины приема и передачи данных;
- память, содержащую машиночитаемые инструкции, которые при их выполнении побуждают процессор передавать инструкции управления модулю выборки следующего элемента примера, модулю определения первичных требований, модулю генерации развернутых требований, модулю ввода входных данных, модулю валидации по развернутым требованиям, модулю вывода ошибки валидации и модулю вывода результата валидации, где память состоит из оперативного запоминающего устройства (ОЗУ) и постоянного запоминающего устройства (ПЗУ);
- модуль выборки следующего элемента примера, выполненный с возможностью считывания из постоянного запоминающего устройства (ПЗУ) очередного элемента из сокращенных требований к структуре данных, а также дополнительных требований, соответствующих этому элементу, и с возможностью передачи в модуль генерации развернутых требований адреса текущего элемента примера и дополнительных требований, соответствующих текущему элементу примера, и с возможностью передачи текущего элемента примера данных в модуль определения первичных требований, и с возможностью передачи сигнала о завершении обработки сокращенных требований в модуль генерации развернутых требований и в модуль валидации по развернутым требованиям, где сокращенные требования состоят из примера корректных данных и дополнительных требований, прилагаемых к данному примеру;
- модуль определения первичных требований, выполненный с возможностью определения первичных требований по элементу примера и передачи первичных требований в модуль генерации развернутых требований, где первичные требования являются требованиями к типу данных элемента данных;
- модуль генерации развернутых требований, выполненный с возможностью на основании полученных первичных требований, дополнительных требований и адреса текущего элемента примера генерировать соответствующие развернутые требования, временно сохранять их в своей оперативной памяти, передачи в модуль выборки следующего элемента примера сигнала о завершении обработки текущего элемента сокращенных требований, где развернутые требования являются требованиями к входным данным и могут быть описаны в любом возможном формате; при этом:
если есть необработанные элементы примера из сокращенных требований, то модуль выборки следующего элемента примера продолжает работу;
если были обработаны все элементы примера сокращенных требований, модуль выборки следующего элемента примера передает в модуль генерации развернутых требований и в модуль валидации по развернутым требованиям сигнал о том, что обработка сокращенных требований завершена, при этом модуль генерации развернутых требований передает в оперативное запоминающее устройство (ОЗУ) развернутые требования, при этом модуль валидации по развернутым требованиям приходит в состояние готовности приема и валидации входных данных; и
- модуль ввода входных данных, выполненный с возможностью приема входных данных, которые необходимо подвергнуть валидации, и передачи их в модуль валидации по развернутым требованиям, который считывает из оперативного запоминающего устройства (ОЗУ) развернутые требования и использует их для валидации входных данных; при этом
если валидация входных данных прошла успешно, то модуль валидации по развернутым требованиям передает в модуль вывода результата валидации сигнал об успешной валидации;
если в процессе валидации входных данных произошла ошибка, то модуль валидации по развернутым требованиям передает в модуль вывода ошибки валидации сигнал об ошибке валидации.
3. Устройство по п. 2, отличающееся тем, что модуль генерации развернутых требований выполнен с возможностью выполнения передачи и накопления сгенерированных развернутых требований в оперативном запоминающем устройстве (ОЗУ) всякий раз после завершения обработки текущего элемента примера.
СПОСОБ И СИСТЕМА ВАЛИДАЦИИ СЛОЖНЫХ СТРУКТУР ДАННЫХ В КОМПЛЕКСНОЙ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ С ВИЗУАЛЬНЫМ ОТОБРАЖЕНИЕМ РЕЗУЛЬТАТОВ | 2019 |
|
RU2728809C1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
US 10102229 B2, 16.10.2018 | |||
US 7467149 B2, 16.12.2008 | |||
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
Способ восстановления спиралей из вольфрамовой проволоки для электрических ламп накаливания, наполненных газом | 1924 |
|
SU2020A1 |
Авторы
Даты
2021-07-29—Публикация
2020-10-23—Подача