РЕАЛИЗУЕМЫЙ КОМПЬЮТЕРОМ СПОСОБ КОДИРОВАНИЯ ЧИСЛОВЫХ ДАННЫХ И СПОСОБ КОДИРОВАНИЯ СТРУКТУР ДАННЫХ ДЛЯ ПЕРЕДАЧИ В ТЕЛЕКОММУНИКАЦИОННОЙ СИСТЕМЕ, ОСНОВАННОЙ НА ВЫШЕУКАЗАННОМ СПОСОБЕ КОДИРОВАНИЯ ЧИСЛОВЫХ ДАННЫХ
COMPUTER-IMPLEMENTED METHOD OF ENCODING NUMERICAL DATA AND METHOD OF ENCODING DATA STRUCTURES FOR TRANSMISSION IN TELECOMMUNICATION SYSTEM, BASED ON SAID METHOD OF ENCODING NUMERICAL DATA

Настоящее изобретение относится к кодированию числовых данных и передачи структур данных в телекоммуникационной системе, в частности в телекоммуникационной системе, основанной на IP-протоколе.
Конкретно, изобретение относится к способу, который может быть реализован с использованием компьютера для кодирования элемента числовых данных по преамбуле п.1 формулы изобретения, к способу кодирования структур данных по преамбуле п.4 формулы изобретения и к способу декодирования структур данных по преамбуле п.7 формулы изобретения.
При обменах, основанных на IP-протоколе, например, в клиент-серверных приложениях с ограниченной пропускной способностью, необходимо передавать данные, организованные в более или менее сложные структуры, в форме уникальной последовательности символов. Примером таких структур является сериализация объекта, структуры данных «общего назначения», организованные иерархически с незаданным числом уровней, и коллекции строк.
Для передачи этих структур данных обычно необходимо предусмотреть систему кодирования данных, которая не зависит от первоначальной природы элемента данных, приспособленную к кодированию структур в виде последовательности символов, позволяющих элементу данных быть эффективно восстановленным в первоначальный формат в его месте назначения.
Настоящее состояние области техники представлено технологиями, основанными на тегах, такими как язык XML.
К сожалению, известные способы кодирования отличаются жестким синтаксисом, который требует предварительной обработки данных.
Системы быстрого кодирования желательны в определенных областях связи, таких как спутниковая связь, или там, где требуется оптимизация ширины полосы пропускания, и, если данные являются буквенно-цифровыми, система позволяет результату кодирования быть анализируемым посредством простого текстового редактора вместо использования специальных сред отладки.
Задача настоящего изобретения - предоставить способ кодирования числовых данных в компьютере вместе со способами кодирования и декодирования структур данных соответствующим образом, которые преодолевают недостатки, известные в области техники.
Конкретная задача изобретения - предоставить эффективный способ сцепления строк для передачи в телекоммуникационной системе.
Согласно настоящему изобретению, эти задачи решаются посредством способа кодирования числовых данных в компьютере, имеющего характеристики, заявленные в п.1 формулы изобретения, способа кодирования структур данных, имеющего характеристики, заявленные в п.4 формулы изобретения, и способа декодирования структур данных, имеющего характеристики, заявленные в п.7 формулы изобретения.
Конкретные варианты осуществления изобретения описаны в зависимых пунктах формулы изобретения.
Другие объекты изобретения - это способ передачи данных, а также системы обработки и программа или набор программ, исполняемые посредством вышеуказанных систем для реализации заявленных способов.
Кратко, настоящее изобретение основано на принципе представления элемента числовых данных посредством позиционной системы счисления с заданным основанием, в которой элементы основания составляются из символов алфавита, которые могут быть представлены в компьютере в двоичной форме согласно кодированию ASCII, и предпочтительно посредством 26 символов английского алфавита.
Согласно изобретению, элемент числовых данных, другими словами, числовое значение или любое выражение, которое может быть выражено числовым значением, может быть представлено выражением, включающим в себя строчные символы алфавита, за исключением наименьшего значащего элемента, который представлен прописным символом алфавита.
Это преимущественно дает возможность представить элемент числовых данных в самосогласованном виде, другими словами, в таком виде, что размер в терминах количества символов элемента числовых данных очевиден из самого элемента данных, без априорного определения размеров поля хранения элемента данных и без использования разделительных символов полей.
Предлагаемое числовое представление является более компактным, чем шестнадцатеричная система счисления или десятичное представление, так как оно требует меньшего числа символов для представления того же элемента числовых данных. Это преимущество становится более значительным, когда представляемое число увеличивается.
Более того, так как число символов, применяемых для представления числа, не задано априори, не существует неиспользованных символов, другими словами, не использованных битов в поле.
Способ кодирования структур данных, согласно изобретению, основан на сцеплении строк, в котором для каждой строки поле данных предусматривается полезным для представления последовательности символов этой строки вместе с полем заголовка, указывающим число символов, составляющих поле полезных данных.
Поле заголовка строки имеет переменный размер и включает в себя элемент числовых данных, указывающий длину строки в символах, согласно предложенному методу представления.
Дополнительные характерные особенности и преимущества изобретения будут раскрыты более полно в последующем подробном описании одного варианта осуществления изобретения, предусмотренного путем неограничивающего примера, с конкретной ссылкой на способ, представляющий элемент числовых данных в компьютере, и на способ кодирования структур данных для сцепления строк.
Согласно изобретению, обеспечивается позиционная система счисления с заданным основанием для представления элемента числовых данных в компьютере, элементов основания в этой системе, представленных символами алфавита, и, конкретно, символами английского алфавита, каждый из которых представлен в двоичной кодировке, согласно стандарту ASCII посредством одного байта данных (используя 7 бит согласно первоначальному стандарту или 8 бит согласно расширенному стандарту ASCII), и идентифицируется в десятичном коде в диапазоне от 65 до 90 в прописной форме и посредством десятичных кодов в диапазоне от 97 до 122 в строчной форме.
Предпочтительно, все 26 символов алфавита используются, таким образом создается система счисления с основанием 26.
Следующее соответствие между числовым значением с десятичным основанием (или тем же значением с основаниями двоичной, восьмеричной или шестнадцатеричной системы счисления) и соответствующим символом в системе счисления с основанием 26 определяется в матрице преобразования, сохраняемой в компьютере:
0
a,A
1
b,B
2
c,C
…
…
25
z,Z
Таким образом, для примера, десятичное числовое значение 27 может быть представлено выражением «bb» или «BB» в системе счисления с предлагаемым основанием 26.
Следует отметить, что в ASCII-стандарте строчный символ отличается от такого же прописного символа тем, что бит в позиции 6 двоичного кода, представленный символом, установлен в «0» (для прописной нотации) или «1» (для строчной нотации).
Следующее правило задается для представления окончательного элемента числовых данных, согласно способу представления, предлагаемому изобретением: элемент числовых данных представляется символами, определяемыми с основанием системы счисления 26 в строчной форме, за исключением элемента самого младшего разряда, который представлен в прописной форме.
Для того чтобы представить элемент числовых данных, сохраненный в одном из его регистров или ячеек памяти, компьютер читает числовое значение или выражение, указывающее числовое значение элемента данных, затем конвертирует представление из первоначального основания в целевое основание, предложенное изобретением, согласно хорошо известным правилам преобразования, используя матрицу преобразования, определенную выше, устанавливая значение бита в позиции 6 двоичного кода, который представляет все символы представления данных, за исключением символа, назначенного самому младшему элементу, в первое предопределенное двоичное значение, например, в значение «1» для строчной нотации, и устанавливая значение бита позиции 6 двоичного кода, который представляет конечный символ представления данных, другими словами, самый младший элемент, в другое двоичное значение, другими словами, значение «0» для прописной нотации.
Ясно, что вышеописанная информация предусмотрена исключительно с целью примера, и, соответственно, возможно рассматривать альтернативное использование обратного представления окончательного элемента числовых данных, в котором элемент числовых данных представлен прописными символами, за исключением самого младшего элемента, который представлен строчным символом алфавита.
Некоторые примеры числового представления показаны в следующей таблице, в которой значения, выраженные в различных числовых основаниях, показаны в каждой строке.
<b>Десятичное основание</b>
<b>Шестнадцатеричное основание</b>
<b>Основание 26</b>
125
7D
eV
23456
5ВА0
bisE
2000000000
77359400
gmipnwY
Число используемых символов равно 52, другими словами, 26 прописных букв и 26 строчных букв, и, таким образом, преимущественно возможно представить элемент числовых данных, который является самосогласованным, другими словами, чей размер, исходя из числа символов алфавита или битов, представляющих символы элемента числовых данных, может быть выведен из элемента числовых данных, который представлен.
Таким образом, возможно составить следующую строку, сформированную из последовательности четырех элементов числовых данных, представленных в системе счисления с основанием 26, закодированных как предложено изобретением: "abcDjxGpBC", использующую только биты полезной информации в регистрах памяти компьютера.
Следующие значения могут быть быстро выделены:
<b>Основание 26</b>
<b>Десятичная</b>
abcD
731
jxG
6688
pB
391
С
2
Очевидно, поэтому, что элемент числовых данных, выраженный с выбранным основанием, может быть преимущественно определен без требующих использования символов разделителей полей хранения данных, другими словами, символов, которые отличаются от (дополнительные к) этих формирующих представление элемента числовых данных, которые указывают границы между одним элементом числовых данных и следующим в представлении, и без требования априорного определения размерности поля хранения данных, предусмотренного для представления числовых данных.
Так как прописная и строчная нотация символов алфавита может отличаться в ASCII-стандарте значением бита в позиции 6 двоичного кода, представляющего символ, распознавание самого младшего элемента в выражении элемента числовых данных, и поэтому окончательного элемента числовых данных, является легким и быстрым, таким образом, позволяя быстро декодировать информацию, которая передается.
Представление, описанное выше, может служить как основа для реализации способа кодирования и соответствующего декодирования структур данных, основанных на сцеплении строк, приспособленных для передачи как последовательности символов посредством телекоммуникационной системы.
Инновационный способ сцепления содержит, для каждой строки структуры данных, которые должны быть переданы, обеспечение поля полезных данных для представления последовательности символов строки, и поля заголовка, связанного с ним, для указания элемента числовых данных, представляющего число символов, составляющих поле полезных данных.
Поле заголовка строки включает в себя элемент числовых данных, представленный в инновационной системе счисления, которая была описана, и поэтому имеет приспособленный размер, который изменяется в соответствии со связанной строкой, и более конкретно, имеет размер одного или более байт, в зависимости от числа символов алфавита, представляющих вышеуказанный числовой элемент данных.
В псевдокоде поля, формирующие каждую сцепленную строку, могут быть представлены как:
Base26(len(String))+String,
где:
"String" - последовательность символов, которые должны быть сцеплены;
"len(String)" - элемент числовых данных, указывающий число символов, составляющих строку; и
Base26() - функция, которая переводит элемент числовых данных в кодировку с основанием 26, которая описана.
Пример сцепленной строки:
"G123456HabcdefgbJnel mezzo del cammin di nostra vita"
Сцепленная строка:
<b>Длина в системе счисления с основанием 26</b>
<b>Длина в десятичной системе счисления = числу символов строки</b>
<b>Строка</b>
G
6
123456
H
7
abcdefg
bJ
35
Nel mezzo del cammin di nostra vita
Реализуемый компьютером способ декодирования сложных структур данных, содержащих сцепленные строки, полученные в форме последовательности символов телекоммуникационной системой, содержит:
чтение элемента числовых данных первого поля заголовка, закодированного в позиционной системе счисления, которая описана;
получение строки в форме последовательности символов, имеющих длину, определяемую значением элемента числовых данных, определенным на предыдущем шаге; и
повторение предыдущих шагов до тех пор, пока последовательность символов не исчерпается.
Следующие выводы могут быть описаны из этого примера:
- нет необходимости в способе вставки сцепленных строк, так как разделительный символ не используется;
- так как размер подстроки размещается в ее заголовке, использование буферов, которые должны их сохранять, оптимизируется в случае потокового декодирования;
- так как представление по основанию 26, согласно изобретению, основано на символах, которые могут быть представлены согласно стандарту ASCII, «печатаемого» типа, эти символы прозрачны для любого коммуникационного протокола.
Коллекция программных модулей, так называемых классов, адаптированных для выполнения представления элемента числовых данных согласно способу, предлагаемому изобретением, и для кодирования и декодирования структур данных согласно способу, предлагаемому изобретением, и сохраненные на диск или доступные в сети, формирует неотъемлемую библиотеку в телекоммуникационных системах для передачи сообщений по IP-протоколу между подсистемами, составляющих системы мониторинга и контроля (MCS) в спутниковой сети, отличающихся тем, что наблюдение за данными должно занимать минимально возможное количество полосы пропускания, заданной для трафика «данных пользователя».
Естественно, принцип изобретения остается одинаковым, формы воплощения и детали устройства могут широко меняться относительного того, что описано и проиллюстрировано, что было дано исключительно в качестве неограничивающего примера так, что тем самым не отступает от объема охраны настоящего изобретения, как определено в прилагаемой формуле изобретения.