УСТРОЙСТВО, СПОСОБ И СЕТЕВОЙ СЕРВЕР ДЛЯ ОБНАРУЖЕНИЯ СТРУКТУР ДАННЫХ В ПОТОКЕ ДАННЫХ

1. Устройство (30) для обнаружения структур данных в потоке (37) данных, содержащем множество символов данных, представляющих знаки алфавита, причем упомянутое устройство (30) реализует детерминированный конечный автомат, причем упомянутое устройство содержит:
- регистр (31) перехода состояний, содержащий множество состояний (11, 12, 13, 14, 15), включающее в себя начальное состояние (11) и по меньшей мере одно поглощающее состояние (14), и переходы (16а, 16b, 16с) состояний из начального состояния в целевое состояние, инициируемые символом данных упомянутого потока (37) данных;
- средство (32) определения положения знака для определения для каждого символа данных каждого состояния упомянутого регистра (31) перехода состояний соответствующего положения знака в упомянутом алфавите;
- средство (33) обновления для обновления упомянутого регистра (31) перехода состояний таким образом, чтобы он содержал диапазоны символов данных (18x, 18y) для символов данных с соответствующими последовательными положениями (18b) знаков в упомянутых переходах инициируемых посредством алфавита в одно и тоже целевое состояние;
- средство (34) определения диапазона для определения, содержится ли символ данных упомянутого потока (37) данных в диапазоне (18x, 18y) символов данных упомянутого обновленного регистра (31) перехода состояний, и для определения упомянутого соответствующего ему целевого состояния (18b), и
- средство (35) инициирования для инициирования перехода (16а, 16b, 16c) состояний из упомянутого начального состояния в упомянутое определенное целевое состояние для обнаружения упомянутой структуры данных.
2. Устройство (30) по п. 1, в котором упомянутое средство (32) определения положения знака выполнено с возможностью сортировки для каждого состояния упомянутого регистра (31) перехода состояний всех символов (17а) данных в соответствии с упомянутым соответствующим положением знака в упомянутом алфавите.
3. Устройство (30) по п. 1 или 2, в котором упомянутый алфавит содержит машинный алфавит и, в частности, алфавит в формате ASCII или расширенном формате ASCII.
4. Устройство (30) по п. 1, при этом упомянутое устройство (30) выполнено с возможностью осуществления упомянутого определения упомянутых положений (32) знаков и обновления упомянутой таблицы (33) перехода состояний независимо от упомянутого определения упомянутого символа данных в диапазоне (34) символов данных и упомянутого инициирования упомянутого перехода (35) состояний.
5. Устройство (30) по п. 1, при этом упомянутое устройство (30) выполнено с возможностью завершения упомянутого обнаружения упомянутой структуры данных при инициировании перехода (16а, 16b, 16с) состояний в поглощающее состояние (14) упомянутого детерминированного конечного автомата (10).
6. Устройство (30) по п. 1, при этом упомянутое устройство (30) выполнено с возможностью обработки потока (37) данных в соответствии с упомянутой обнаруженной структурой данных.
7. Устройство (30) по п. 1, при этом упомянутое устройство (30) представляет собой сетевой сервер (42, 43, 44, 47, 48), работающий в телекоммуникационной сети (40) для обнаружения структуры данных в потоке (37) данных упомянутой телекоммуникационной сети (40).
8. Управляемый компьютером способ (20) обнаружения структур данных в потоке (37) данных, принимаемом посредством упомянутого компьютера (30), причем упомянутый поток (37) данных содержит множество символов данных, представляющих знаки алфавита, причем упомянутый компьютер (30) реализует детерминированный конечный автомат, содержащий сжатый регистр (31) перехода состояний, содержащий множество состояний (11, 12, 13, 14, 15), включающее в себя начальное состояния (11) и по меньшей мере одно поглощающее состояние (14), и переходы (16а, 16b, 16с) состояний из начального состояния в целевое состояние, инициируемые символом данных из упомянутого потока (37) данных, причем сжатый регистр (31) перехода состояний содержит по меньшей мере один диапазон символов данных, причем упомянутый способ содержит этапы, на которых:
- определяют (21) посредством упомянутого компьютера (30) из упомянутого сжатого регистра (31) перехода состояний, содержится ли символ данных упомянутого потока данных в диапазоне (18а) символов данных упомянутого сжатого регистра (31) перехода состояний, и определяют (22) упомянутое соответствующее ему целевое состояние (18b), и
- инициируют (22) посредством упомянутого компьютера (30) переход (16а, 16b, 16с) состояний из упомянутого начального состояния в упомянутое определенное целевое состояние для обнаружения упомянутой структуры данных.
9. Управляемый компьютером способ (20) формирования сжатого регистра (31) перехода состояний по п. 8, содержащий этапы, на которых:
- определяют посредством упомянутого компьютера (30) для каждого символа данных каждого состояния регистра (31) перехода состояний соответствующее положение знака в упомянутом алфавите; и
- обновляют посредством упомянутого компьютера (30) упомянутый регистр (31) перехода состояний таким образом, чтобы он содержал диапазоны символов данных (18х) для символов данных с соответствующими последовательными положениями знаков в упомянутых переходах (16b), инициируемых посредством алфавита в одно и тоже целевое состояние (12).
10. Способ (20) по п. 9, при этом упомянутый способ (20) дополнительно содержит этап, на котором сортируют посредством упомянутого компьютера (30) для каждого состояния упомянутого регистра (31) перехода состояний все символы данных в соответствии с упомянутым соответствующим положением знака в упомянутом алфавите.
11. Способ (20) по п. 9 или 10, при этом упомянутый способ (20) дополнительно содержит этап, на котором удаляют из упомянутой таблицы (31) перехода состояний каждый переход состояний для состояния (15), в котором для всех соответствующих переходов состояний упомянутое начальное состояние является равным упомянутому целевому состоянию.
12. Способ (20) по п. 9 или 10, при этом упомянутый способ (20) дополнительно содержит этап, на котором удаляют из упомянутой таблицы (31) перехода состояний каждый переход состояний для состояния (15), в котором никакой соответствующий переход состояний не может привести к поглощающему состоянию (14).
13. Способ (20) по п. 9 или 10, при этом упомянутый способ (20) дополнительно содержит этап, на котором удаляют из упомянутой таблицы (37) перехода состояний каждый переход состояния, в котором упомянутое начальное состояние (14) представляет собой конечное состояние (14).
14. Компьютерный программный продукт, содержащий устройство хранения данных, на котором сохранены данные компьютерного программного кода, выполненные с возможностью осуществления способа по любому из пп. 8-13, когда упомянутые данные программного кода загружены в память электронного блока обработки и исполняются упомянутым электронным блоком обработки.
15. Телекоммуникационная сеть (40), содержащая сетевой сервер (42, 43, 44, 45, 46) по п. 14.