ES2659396T3 - Método para procesar formato TLV de datos de comunicación - Google Patents

Método para procesar formato TLV de datos de comunicación Download PDF

Info

Publication number
ES2659396T3
ES2659396T3 ES09771909.0T ES09771909T ES2659396T3 ES 2659396 T3 ES2659396 T3 ES 2659396T3 ES 09771909 T ES09771909 T ES 09771909T ES 2659396 T3 ES2659396 T3 ES 2659396T3
Authority
ES
Spain
Prior art keywords
type
function
integer
decoding
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES09771909.0T
Other languages
English (en)
Inventor
Xinping Zhang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Application granted granted Critical
Publication of ES2659396T3 publication Critical patent/ES2659396T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Devices For Executing Special Programs (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un método para procesar un formato Tipo Longitud Valor, TLV, de datos de comunicación, caracterizado por comprender las siguientes etapas: definir un tipo, T, de un tipo de entero en un formato de Notación de Sintaxis Abstracta 1, ASN.1; un lado de envío rellenando un mensaje en el formato ASN.1, incluyendo el mensaje una instancia de estructura de datos; y el lado de envío decodificando el mensaje en un flujo de código, en donde el flujo de código de la instancia de estructura de datos en el mensaje incluye un valor, V, o incluye la V, el tipo de entero de la V y una longitud L de la V; en donde, cuando el tipo de entero es 0 o está ausente, el flujo de código únicamente comprende V, y cuando el tipo de entero no es 0, el flujo de código comprende la V, la longitud L de la V y el tipo de entero.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Método para procesar formato TLV de datos de comunicación Campo de la invención
La presente invención se refiere al campo de la comunicación y, en particular, a un método para procesar un formato TLV de datos de comunicación.
Antecedentes de la invención
Notación de Sintaxis Abstracta 1 (ASN.1 para abreviar) es un método normalizado para describir un formato de mensaje transmitido en una red definida por la Unión Internacional de Telecomunicaciones (ITU para abreviar), que se usa para proporcionar un formato normalizado para conversión de datos entre nodos. Cada nodo únicamente necesita saber un formato de datos que se traduce desde la ASN.1 o traduce en la ASN.1, pero es innecesario un formato en el que existen datos en otros lugares de la red.
La ASN.1 tiene dos partes: la primera parte (ISO 8824/ITU X.208) describiendo datos, un tipo de datos y un formato de secuencia en un mensaje, que es una sintaxis de datos; y la segunda parte (ISO 8825/ITU X.209) describiendo una regla sobre cómo constituir un mensaje mediante datos de respectivas partes, que es una regla básica de codificación de datos. La ASN.1 se desarrolló en un principio como una parte de la X.409 y se convirtió en una norma independiente después. La norma de Infraestructura de Clave Pública de primera generación (PKI para abreviar) se basa principalmente en la ASN.1. En un Protocolo de Gestión de Red Simple (SNMP para abreviar), la ASN.1 se usa para definir una unidad de datos de SNMP y un formato de un objeto.
La ASN.1 se aplica ampliamente en el campo de comunicación y campo informático y otros campos. El mensaje ASN.1 tiene las siguientes propiedades especiales.
1. El mensaje es de una estructura de árbol que puede definir mensaje anidado multicapa como se desee.
2. El tipo de datos de un nodo en el mensaje podría ser un tipo de datos simples, por ejemplo, INTEGER, GRAPHICSTRING, ENUM, etc., o un tipo de datos compuestos que contiene un sub-nodo, por ejemplo, SET, SEQUENCE, SET OF, SEQUENCE OF.
3. En el tipo SET o el tipo SEQUENCE, un cierto nodo podría estar ausente ya que está permitido que el nodo de mensaje correspondiente se establezca como OPTIONAL, que significa que no es esencial. Cuando se usa un fichero ASN.1, primero se define un tipo de ASN.1 en el fichero ASN.1 y a continuación se compila mediante un compilador, de tal forma que el tipo de ASN.1 se convierte en un tipo de lenguaje de programación intermediario, tales como un lenguaje java o C++, y a continuación se usa un tipo de lenguaje de programación correspondiente para lograr el propósito de comunicación.
4. La ASN.1 soporta codificación BER, codificación DER, codificación VAL, etc., que pueden codificar un ejemplo de un tipo de lenguaje intermedio en un flujo de código y decodificar el flujo de código en un ejemplo del tipo de lenguaje intermedio correspondiente.
5. El formato de definición usado por la ASN.1 es: "NewStructName ::=defining a message", por ejemplo UserNameList-T::= SEQUENCE OF UserName-T, que indica que el tipo UserNameList-T se define como una matriz con UserName-T como un elemento.
En una arquitectura de Cliente/Servidor (C/S) de un software, el Cliente y el Servidor necesitan comunicarse entre sí. El mensaje de comunicación generalmente tiene dos formatos: un formato privado y un formato normalizado, por ejemplo, protocolos de ASN.1, SNMP, etc.
Un método común de usar el mensaje ASN.1 en un software de tipo C/S incluye:
1. establecer una conexión entre un terminal cliente y un terminal servidor;
2. el terminal cliente interactúa con el terminal servidor a través de un protocolo, que incluye:
1) un lado de envío de mensaje rellenando un encabezamiento de mensaje y un cuerpo de mensaje del mensaje ASN.1, en el que el encabezamiento de mensaje incluye un código de comandos, y el cuerpo de mensaje usa un tipo AsnAny con su tipo de datos real variando dependiendo del código de comandos;
2) el lado de envío de mensaje codificando el mensaje en un flujo de código y enviando el mismo a un lado de recepción de mensaje;
5
10
15
20
25
30
35
40
45
50
55
60
65
3) el lado de recepción de mensaje recibiendo el flujo de código del mensaje, decodificando el encabezamiento de mensaje y a continuación decodificando el cuerpo de mensaje usando un tipo de datos específicos de acuerdo con el código común en el mismo; y
4) el lado de recepción de mensaje haciendo una correspondiente respuesta de acuerdo con los contenidos del mensaje;
3. finalizar la interacción y desconectar la conexión.
En comunicación, datos que se constituyen de acuerdo con el formato de "tipo de datos, longitud de datos, cuerpo de datos" se representa como "Tipo, Longitud, Valor", que se llama como un formato TLV para abreviar. Es muy conveniente y altamente eficiente usar un formato TLV para constituir datos, especialmente adecuado para unos datos de longitud-variable. La constitución de los contenidos de un cuerpo de datos en una capa de aplicación generalmente usa un formato de este tipo. La codificación BER en la ASN.1 es realmente una codificación TLV.
En la técnica relacionada, un usuario no puede personalizar el tipo de datos T en la codificación TLV. Si el mismo nombre de tipo no se define de una misma manera en diferentes versiones, el Cliente y el Servidor pueden no comunicarse. Es decir, las versiones de protocolos de mensaje en el terminal cliente y terminal servidor serán consistentes. Si no son consistentes, los dos lados no pueden interactuar entre sí.
NEUFELD G ET AL: "An overview of ASN.1", COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING. AMSTERDAM, NL, vol. 23, n.° 5, 1 de febrero de 1992 (), páginas 393-415, XP026635867, ISSN: 0169-7552, DOI: 10.1016/0169-7752(92) 90014-H [recogido el ]* párrafo [0001]- párrafo [0003] proporciona respectivas soluciones técnicas; sin embargo, el problema mencionado anteriormente aún permanece sin resolverse.
Sumario de la invención
En vista de que el problema presente en las técnicas relacionadas que el Cliente y el Servidor fallan en comunicarse entre sí cuando las versiones de protocolos de mensaje de los dos lados no son consistentes, se propone la presente invención. Por lo tanto, la presente invención tiene por objeto proporcionar un método mejorado para procesar un formato TLV de datos de comunicación para resolver el problema anterior en las técnicas relacionadas.
En las realizaciones de la presente invención, se proporciona un método para procesar un formato TLV de formato de comunicación de acuerdo con el método de la reivindicación 1 (como se modifica).
Preferentemente, definir el tipo de entero en el formato ASN.1 particularmente comprende: establecer el formato ASN.1 para permitir definir el tipo de entero; y definir una estructura del tipo de entero en un formato de "string type name [X]:: =defining a structure", en el que la X se refiere al tipo de entero.
Preferentemente, definir la estructura del tipo de entero en el formato de "string type name [X]:: =defining a structure" particularmente comprende: establecer la estructura del tipo de entero como un tipo SEQUENCE, SET o CHOICE con el mismo nombre de tipo y especificar que si el miembro del mismo necesita modificarse, únicamente está permitido un aumento neto o una disminución neta en los miembros y únicamente está permitido cambiar un miembro de cola pero no está permitido modificar el tipo.
Preferentemente, el método para procesar el formato TLV comprende además: establecer un compilador de formato ASN.1 con una función de procesamiento del tipo de entero.
Preferentemente, el método para procesar el formato TLV comprende además: obtener, a través de una función, el tipo de entero en un tipo C++ en el formato ASN.1.
Preferentemente, la etapa del lado de envío decodificando el mensaje en el flujo de código comprende: llamar a una función de codificación de valor, una función de codificación de longitud y una función de codificación de tipo de entero mediante una función de codificación de integración, o llamar únicamente a la función de codificación de valor mediante la función de codificación de integración, para codificar el mensaje en el flujo de código; siendo la función de codificación de tipo de entero usada para obtener el tipo de entero del flujo de código de acuerdo la con codificación de datos en la instancia de estructura de datos; siendo la función de codificación de valor usada para codificar datos simples en la instancia de estructura de datos en la V del flujo de código, así como para la instancia de estructura de datos de un tipo de datos simples; siendo la función de codificación de valor usada para llamar secuencialmente a la función de codificación de integración de miembros individuales en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE o SET; siendo la función de codificación de valor usada para llamar secuencialmente a la función de codificación de integración de elementos individuales de una matriz en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE OF o SET OF; y siendo la función de codificación de valor usada para codificar un miembro seleccionado en la instancia de estructura de datos en la V del flujo de código, así como para la instancia de
5
10
15
20
25
30
35
40
45
50
55
60
65
estructura de datos del tipo CHOICE, en la que la V comprende el número de secuencia del miembro seleccionado en el CHOICE y el miembro seleccionado.
Preferentemente, cuando el tipo de entero es 0 o está ausente, la función de codificación de integración llama únicamente a la función de codificación de valor; y cuando el tipo de entero no es 0, el flujo de código comprende la V, la longitud L de la V y un tipo de entero.
Preferentemente, el método para procesar el formato TLV comprende además: un lado de recepción que decodifica el flujo de código.
Preferentemente, decodificar el flujo de código particularmente comprende: llamar a una función de decodificación de valor, una función de decodificación de longitud y una función de decodificación de tipo de entero mediante una función de decodificación de integración, o llamar únicamente a la función de decodificación de valor mediante la función de decodificación de integración, para decodificar el flujo de código; siendo la función de decodificación de tipo de entero usada para decodificar el flujo de código de acuerdo con el tipo de entero en el flujo de código; siendo la función de decodificación de valor usada para decodificar la V en el flujo de código en datos simples en la instancia de estructura de datos, así como para la instancia de estructura de datos de un tipo de datos simples; siendo la función de decodificación de valor usada para decodificar secuencialmente la V en el flujo de código en datos de miembros individuales en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE o SET; siendo la función de decodificación de valor usada para decodificar secuencialmente la V en el flujo de código en elementos individuales de una matriz en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE OF o SET OF, durante la que se analiza si la longitud de un sistema de decodificación en la estructura es más pequeña que L, y si es más pequeña que la L, la decodificación se continúa, de otra manera, la decodificación en la presente estructura se detiene; y siendo la función de decodificación de valor usada para decodificar un número de secuencia en el flujo de código y un miembro que corresponde al número de secuencia, así como para la instancia de estructura de datos del tipo CHOICE, en la que si el miembro que corresponde al número de secuencia no existe en la presente estructura, la función de decodificación de valor se finaliza.
Preferentemente, la etapa de llamar a la función de decodificación de valor, la función de decodificación de longitud y la función de decodificación de tipo de entero mediante la función de decodificación de integración o llamar únicamente a la función de decodificación de valor mediante la función de decodificación de integración para decodificar el flujo de código particularmente comprende: determinar si el tipo de entero es 0 o está ausente mediante la función de decodificación de integración; si no es 0 o no está ausente, llamar a la función de decodificación de valor, la función de decodificación de longitud y la función de decodificación de tipo de entero, en la que la función de decodificación de valor se llama para decodificar el tipo de entero en el flujo de código para verificar si el tipo de entero obtenido es consistente con el mismo tipo de entero, y si no es consistente, se considera como decodificación anormal, la función de decodificación de longitud se llama para decodificar la L en el flujo de código y a continuación la función de decodificación de valor se llama para decodificar la V en el flujo de código; si la longitud vL obtenida decodificando la V es más pequeña que la L, se saltan L-vL bytes; y si es 0 o está ausente, llamar únicamente a la función de decodificación de valor.
Los métodos para procesar el formato TLV en las realizaciones anteriores de la presente invención pueden superar el defecto de que diferentes versiones de protocolos no pueden intercomunicarse debido a la adición de un método para extender la T en el formato ASN.1 para realizar intercomunicación entre diferentes versiones de la ASN.1 y realización de un método de TLV orientado a objetos.
Otras características y ventajas de la presente invención se describen en las partes posteriores de la descripción, y además son parcialmente evidentes a partir de la descripción, o se entienden mediante la implementación de la presente invención. El objetivo y otras ventajas de la presente invención pueden realizarse y obtenerse mediante una estructura particularmente indicada en la descripción, las reivindicaciones y los dibujos.
Breve descripción de los dibujos
Los dibujos ilustrados en este documento proporcionan una comprensión adicional de la presente invención y forman una parte de la presente solicitud. Las realizaciones ilustrativas de la presente invención y la descripción de las mismas se usan para explicar la presente invención sin limitar excesivamente la presente invención, en los que:
la Figura 1 es un diagrama de flujo de un método para procesar un formato TLV de datos de comunicación de
acuerdo con una realización de la presente invención;
la Figura 2 es un diagrama esquemático de un proceso de desarrollo en el que un lado de cliente y un servidor
comparten un mismo entorno de desarrollo de lenguajes de acuerdo con una realización preferible de la presente
invención;
la Figura 3 es una vista de un proceso de desarrollo en diferentes entornos de desarrollo de lenguajes de
5
10
15
20
25
30
35
40
45
50
55
60
65
acuerdo con una realización preferible de la presente invención;
la Figura 4 es un diagrama esquemático de un proceso de desarrollo en el que un lado de cliente y un servidor usan diferentes entornos de desarrollo de lenguajes y diferentes versiones de protocolos de acuerdo con una realización preferible de la presente invención;
la Figura 5 es un diagrama esquemático de un sistema heredado de tipos de clase base de C++ de ESNACC de acuerdo con una realización preferible de la presente invención; y
la Figura 6 es un diagrama de flujo de una función de decodificación integral de TLV de acuerdo con una realización preferible de la presente invención.
Descripción detallada de las realizaciones preferibles
Sumario de función
En consideración del problema presente en la técnica relacionada que el Cliente y el Servidor fallan en comunicarse entre sí cuando las versiones de los protocolos de mensaje de los dos lados no son consistentes, se proporciona un método para procesar un formato TLV de datos de comunicación mediante las realizaciones de la presente invención. En la presente realización, un método de extensión de la T se añade en el formato ASN.1 y se rellena un mensaje en el formato ASN.1 extendido, superando de este modo el defecto que diferentes versiones de protocolos no pueden comunicarse y realizando intercomunicación entre diferentes versiones de la ASN.1 y un método TLV orientado a objetos.
La presente invención se describirá en detalle en lo sucesivo con referencia a los dibujos y en combinación con las realizaciones. Si no surge ningún conflicto, las realizaciones de la presente invención y las características de las realizaciones pueden combinarse entre sí. Lo que necesita explicarse es que, las etapas mostradas en los diagramas de flujo de los dibujos pueden implementarse en un sistema informático tales como un conjunto de instrucciones ejecutables por ordenador. Además, aunque en los diagramas de flujo se muestra un orden lógico, las etapas mostradas o descritas pueden implementarse en el orden diferentes en algunas ciertas situaciones.
La Figura 1 es un diagrama de flujo de un método para procesar un formato TLV de datos de comunicación de acuerdo con una realización de la presente invención, incluyendo las siguientes etapas:
etapa S10, definir un tipo T de un tipo de entero en un formato ASN.1;
etapa S20, un lado de envío rellenando en un mensaje en el formato ASN.1 incluyendo el mensaje una instancia de estructura de datos; y
etapa S30, el lado de envío decodificando el mensaje en un flujo de código, en el que el flujo de código de la instancia de estructura de datos en el mensaje incluye un valor V, o incluye la V, el tipo de entero de la V y una longitud L de la V.
El método para procesar el formato TLV supera el defecto de que diferentes versiones de protocolos no pueden intercomunicarse y realiza intercomunicación entre diferentes versiones de la ASN.1 y un método TLV orientado a objetos ya que el método de extensión de la T se usa en el formato ASN.1.
El anterior proceso de procesamiento se describe en detalle en lo sucesivo.
(I) Etapa S10
La operación de definir el tipo de entero en el formato ASN.1 puede comprender específicamente: establecer el formato ASN.1 para permitir definir el tipo de entero; y definir una estructura del tipo de entero en un formato de "string type name [X] :: =defining a structure", en el que la X se refiere al tipo de entero. En concreto, se añade una sintaxis extendida a la sintaxis ASN.1 para soportar un tipo X autodefinido (a saber, la T en el TLV), que se define de una manera opcional entre el nombre de tipo y el símbolo ":: =". Si no se proporciona X, X se considera como 0, por lo tanto, tales datos únicamente tienen V pero no X y L en un flujo de código correspondiente.
Específicamente, la operación de definir la estructura del tipo de entero en el formato de "string type name [X]:: =defining a structure" particularmente comprende: establecer la estructura del tipo de entero como un tipo de SEQUENCE, SET o CHOICE con el mismo nombre de tipo, y especificar que si el miembro del mismo necesita modificarse, únicamente está permitido un aumento neto o una disminución neta en los miembros y únicamente está permitido cambiar un miembro de cola pero no está permitido modificar el tipo. Siguiendo las reglas anteriores, puede realizarse la compatibilidad de un mensaje de protocolo nuevo con un mensaje de protocolo antiguo. Para facilitar la gestión del tipo de mensaje de protocolo, puede requerirse que una versión del protocolo pueda únicamente extenderse sobre la base del tipo de una antigua versión del protocolo y los miembros extendidos
5
10
15
20
25
30
35
40
45
50
55
60
65
únicamente pueden estar en la cola de un tipo progenitor, pero no puede reducirse.
En la etapa S10, ya que el formato ASN.1 se establece para permitir definir el tipo de entero, de tal forma que el compilador de formato ASN.1 puede proporcionarse con una función de procesamiento del tipo de entero. Preferentemente, el tipo de entero puede obtenerse a través de una función en un tipo C++ en el formato ASN.1.
(II) Etapa S20
La operación del lado de envío decodificando el mensaje en el flujo de código específicamente comprende: llamar a una función de codificación de valor, una función de codificación de longitud y una función de codificación de tipo de entero mediante una función de codificación de integración, o llamar únicamente a la función de codificación de valor mediante la función de codificación de integración, para codificar el mensaje en el flujo de código. La función de codificación de tipo de entero se usa para obtener el tipo de entero del flujo de código de acuerdo la con codificación de datos en la instancia de estructura de datos. Específicamente, la función de codificación de valor se usa para codificar datos simples en la instancia de estructura de datos en la V del flujo de código, así como para la instancia de estructura de datos de un tipo de datos simples. La función de codificación de tipo de valor se usa para llamar secuencialmente a la función de codificación de integración de miembros individuales en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE o SET. La función de codificación de tipo de valor se usa para llamar secuencialmente a la función de codificación de integración de elementos individuales de una matriz en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE OF o SET OF. La función de codificación de tipo de valor se usa para codificar un miembro seleccionado en la instancia de estructura de datos en la V del flujo de código, así como para la instancia de estructura de datos del tipo CHOICE, en la que la V comprende el número de secuencia del miembro seleccionado en el CHOICE y el miembro seleccionado.
Preferentemente, cuando el tipo de entero es 0 o está ausente, la función de codificación de integración llama únicamente a la función de codificación de valor, a saber, el flujo de código únicamente comprende V o comprende V y el tipo de entero = 0. Cuando el tipo de entero no es 0, la función de codificación de integración llama a la función de codificación de valor, la función de codificación de longitud y la función de codificación de tipo de entero, a saber, el flujo de código comprende la V, la longitud L de la V y un tipo de entero.
El lado de envío que procesa el formato TLV se describe como anteriormente, así como para un lado de recepción, el método para procesar el formato TLV comprende además: el lado de recepción decodificando el flujo de código.
Preferentemente, la operación de decodificar el flujo de código particularmente incluye:
llamar a una función de decodificación de valor, una función de decodificación de longitud y una función de decodificación de tipo de entero mediante una función de decodificación de integración, o llamar únicamente a la función de decodificación de valor mediante la función de decodificación de integración, para decodificar el flujo de código; usar la función de decodificación de tipo de entero para decodificar el flujo de código de acuerdo con el tipo de entero en el flujo de código; usar la función de decodificación de valor para decodificar la V en el flujo de código en datos simples en la instancia de estructura de datos, así como para la instancia de estructura de datos de un tipo de datos simples; usar la función de decodificación de valor para decodificar secuencialmente la V en el flujo de código en datos de miembros individuales en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE o SET; usar la función de decodificación de valor para decodificar secuencialmente la V en el flujo de código en elementos individuales de una matriz en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE OF o SET OF, durante la que se analiza si la longitud de un sistema de decodificación en la estructura es más pequeña que L, y si es más pequeña que la L, la decodificación se continúa, de otra manera, la decodificación en la presente estructura se detiene; y usar la función de decodificación de valor para decodificar un número de secuencia en el flujo de código y un miembro que corresponde al número de secuencia, así como para la instancia de estructura de datos del tipo CHOICE, en la que si el miembro que corresponde al número de secuencia no existe en la presente estructura, la función de decodificación de valor se finaliza.
Preferentemente, la operación de llamar a la función de decodificación de valor, la función de decodificación de longitud y la función de decodificación de tipo de entero mediante la función de decodificación de integración o llamar únicamente a la función de decodificación de valor mediante la función de decodificación de integración para decodificar el flujo de código particularmente comprende: determinar si el tipo de entero es 0 o está ausente mediante la función de decodificación de integración en la que si no es 0 o no está ausente, llama a la función de decodificación de valor, la función de decodificación de longitud y la función de decodificación de tipo de entero, en la que la función de decodificación de valor se llama para decodificar el tipo de entero en el flujo de código para verificar si el tipo de entero obtenido es consistente con su propio tipo de entero, y si no es consistente, se considera como decodificación anormal, a continuación la función de decodificación de longitud se llama para decodificar la L en el flujo de código y a continuación la función de decodificación de valor se llama para decodificar la V en el flujo de código, y si la longitud vL obtenida decodificando la V es más pequeña que la L, se saltan L-vL bytes; y si es 0 o está ausente, llama únicamente a la función de decodificación de valor.
5
10
15
20
25
30
35
40
45
50
55
60
65
La función de decodificación de integración primero determina si su propia T es 0. Si no es 0, la T se decodifica y se verifica si la T decodificada es consistente con su T, en la que si no es consistente, se considera como decodificación anormal, a continuación se decodifica L, y a continuación se decodifica V, en la que si la longitud vL de la V decodificada es más pequeña que L, se saltan L-vL bytes para equilibrar la longitud del tipo presente; si es 0, se decodifica V directamente.
Funciones virtuales requeridas por las funciones de codificación y funciones de decodificación anteriores se añaden a las clases base de ASN.1 en un módulo básico ASN.1 C++ y las clases y las funciones de los miembros de las mismas requeridas por las funciones de codificación y funciones de decodificación anteriores se añaden a un compilador ASN.1 C++.
La realización preferible anterior incluye dos módulos funcionales: un módulo básico y un compilador. El módulo base realiza soporte de las clases base de TLV y algunas funciones de soporte. El compilador realiza análisis de un fichero ASN.1 y genera clases que corresponden a diversos tipos de ASN.1 y funciones de miembros de las clases. En un programa de aplicación, el mensaje definido mediante un protocolo TLV de este tipo se usa no únicamente para realizar interacción con mensajes de protocolo de la misma versión, sino también para realizar interacción entre el Cliente con el Servidor con los nuevos y antiguos mensajes de protocolo para proporcionar garantía de las reglas de codificación para la interacción C/S de los protocolos de versiones diferentes. Las realizaciones de la presente invención pueden realizarse o bien independientemente o extendidamente en cualquier plataforma de compilador ASN.1 existente.
La Figura 2 muestra un procedimiento de desarrollo en el que el Cliente y el Servidor comparten un mismo entorno de desarrollo de lenguajes de acuerdo con una realización preferible de la presente invención, en el que, tanto el Cliente como el Servidor se desarrollan usando C++. El procedimiento de desarrollo incluye: A. un ingeniero de especificación de interfaz definiendo un fichero de interfaz de ASN.1 y generando un fichero.h de interfaz y un fichero.cpp de interfaz usando un compilador ASN.1 C++; B. un desarrollador de servidor escribiendo un código de servidor y compilando el mismo con el fichero.h de interfaz y el fichero.cpp de interfaz en un programa de servidor ejecutable; C. un desarrollador de Cliente escribiendo un código de Cliente y compilando el mismo con el fichero.h de interfaz y el fichero.cpp de interfaz en un programa de cliente ejecutable; y D. el programa de cliente ejecutable y el programa de servidor ejecutable, cuando se están ejecutando, interactuando y comunicando usando el módulo básico ASN.1 C++.
La Figura 3 muestra un procedimiento de desarrollo en diferentes entornos de desarrollo de lenguajes de acuerdo con una realización preferible de la presente invención, en el que el Cliente usa java para desarrollar y el Servidor usa C++ para desarrollar. El procedimiento de desarrollo incluye: A. un ingeniero de especificación de interfaz definiendo un fichero de interfaz de ASN.1, generando un fichero.h de interfaz y un fichero.cpp de interfaz usando un compilador ASN.1 C++ para un desarrollador C++, y generando un fichero.java de interfaz usando un compilador java ASN.1 para un desarrollador java; B. un desarrollador de servidor escribiendo un código de servidor y compilando el mismo con el fichero.h de interfaz y el fichero.cpp de interfaz en un programa de servidor ejecutable; C. un desarrollador de Cliente escribiendo un código de Cliente y compilando el mismo con el fichero.java de interfaz en un programa de cliente ejecutable; y D. el programa de cliente ejecutable y el programa de servidor ejecutable, cuando se están ejecutando, interactuando y comunicando usando los módulos básicos ASN.1 de su respectivo lenguaje.
La Figura 4 muestra un procedimiento de desarrollo en el que el Cliente y el Servidor usan diferentes entornos de desarrollo de lenguajes y diferentes versiones de protocolos de acuerdo con una realización preferible de la presente invención, en el que el Servidor usa una versión antigua, el Cliente desarrolla con java y el Servidor desarrolla con C++, que es procedimiento de desarrollo relativamente complejo. En las etapas de realización, tanto el Cliente como el Servidor desarrollan con C++. El procedimiento incluye:
A. un ingeniero de especificación de interfaz definiendo un fichero versión 2.asn de interfaz cuando desarrolla una nueva versión basándose en un fichero versión 1.asn de interfaz definido para la versión antigua, y compilando dos versiones respectivamente para generar ficheros de realización de interfaz C++ y Java;
B. un desarrollador de servidor escribiendo un código de servidor en la versión antigua y compilando el mismo con un fichero versión 1.h de interfaz y un fichero versión 1.cpp de interfaz en un fichero de ejecución de servidor ejecutable;
C. un desarrollador de Cliente escribiendo un código de Cliente en una nueva versión y compilando el mismo con el fichero 2.java de interfaz en un fichero de ejecución de cliente ejecutable; y
D. el programa de cliente ejecutable y el programa de servidor ejecutable, cuando se están ejecutando, interactuando y comunicando usando los módulo básicos ASN.1 de su respectivo lenguaje.
La Figura 5 muestra un sistema heredado de tipos de clase base de C++ de ESNACC de acuerdo con una realización preferible de la presente invención, diagrama jerárquico de relación de herencia de clase base de
5
10
15
20
25
30
35
40
45
50
55
60
65
ESNACC, en el que la ASNType es la clase base de máximo nivel. AsnType es una clase base ABSTRACT. Sobre esta base, algunos tipos simples se heredan para soportar tipos de datos ASN.1 base tales como AsnInt, AsnReal, AsnRelativeOid, AsnAny, AsnOcts, AsnBool, AsnNulI y asnString, en el que AsnInt se obtiene a partir de PERGgeneral, AsnEnum se obtiene a partir de AsnInt; AsnOid se obtiene a partir de AsnRelativeOid; AsnList es un tipo intermedio para realizar otros tipos de ASN.1; AsnSetOf y AsnSeqOf se obtienen a partir de AsnList; los std::string y std::list de una librería de plantillas normalizada se usan para soportar adicionalmente SEQUENCE OF, SET OF, etc. Algunos tipos de cadena aplicados tales como VisibleString, GraphicString, Ia5String, PrintableString, NumericString se obtienen a partir de un tipo de cadena básico AsnString, en el que GeneralizedTime y UTCTime se obtienen a partir de VisibleString.
La Figura 6 es un diagrama de flujo de una función de decodificación integral de TLV de acuerdo con una realización preferible de la presente invención.
En lo sucesivo, de acuerdo con demanda de una entidad de gestión de red, se realizan reglas de codificación y decodificación de mensajes TLV basándose en ESNACC, que es plataforma de compilación de código abierto de ASN.1. La presente invención se realiza usando cualquier lenguaje de programación orientado a objetos. La presente solicitud se describe principalmente en conjunción con C++. También puede usarse otro lenguaje de programación orientado a objetos, tal como lenguaje JAVA.
(I) Fuente de la demanda
así como para entidades de gestión de red, una entidad de gestión de red a menudo necesita gestionar diversos dispositivos de elementos de red. Diferentes dispositivos tienen diferentes versiones, y la propia entidad de gestión de red también tiene diferentes versiones. Las entidades de gestión de red y el software de dispositivo necesitan interacción de mensajes. Para debilitar la dependencia de versión de las entidades de gestión de red y el software de dispositivo, las entidades de gestión de red necesitan gestionar dispositivos de elementos de red de una manera compatible con la versión, de este modo se necesita una regla de protocolo para cumplir la demanda.
(II) Plataforma de compilación
El ESNACC es un compilador de código abierto de ASN.1 y soporta codificación BER y codificación PER. Un módulo base ASN.1 proporcionado por el compilador. El compilador ASN.1 generalmente proporciona un compilador y un módulo de soporte básico y el compilador compila un fichero ASN.1 para generar un código de lenguaje de programación, tales como C++ y java. Los tipos de la ASN.1 se compilan en las clases de un lenguaje de programación. El módulo de soporte base proporciona soporte para la ejecución de los códigos generados. Las reglas de codificación y decodificación de TLV se realizan modificando el compilador y el módulo de soporte básico.
(III) Realización de reglas de codificación de TLV específicas
En un procedimiento de realización, se requiere que el flujo de código se depure y se requiere que se lea el flujo de código TLV, por lo tanto, T usa dos bytes y L usa cuatro bytes, y el formato es de orden de red. Pueden usarse otros formatos para almacenar T y L en la práctica, tales como el formato de representación en la BER con respecto a la longitud.
1. La sintaxis se extiende en la ASN.1 para soportar una autodefinida T, por ejemplo:
QxString32 [10]::= GraphicString (32)
NameAndStringValue-E [30] ::= SEQUENCE {
name QxString32 ,value QxString32
}
T se rellena en los corchetes cuadrados antes de "::=", y puede representarse en diversos formatos, tales como decimal y hexadecimal. La sintaxis es un artículo opcional, por lo tanto, la situación es imposible que T se representa como 0.
2. Los mensajes definidos de las siguientes formas pueden intercomunicar entre una versión antigua y una nueva versión.
(1) Definir la versión antigua ANode
[0xF001]::= SEQUENCE {
a1 QxUInt8,
5
10
15
20
25
30
35
40
45
50
55
60
65
a2 QxUInt32,
}
BNode [0xF003]::= SEQUENCE {
b1 QxUInt32, b2 QxUInt16, c3 QxUInt32
}
CNode [0xF005]::= SEQUENCE {
a ANode, b BNode
}
(2) Definir la versión nueva
ANode [0xF001]::= SEQUENCE {
a1 QxUInt8, a2 QxUInt32, d3 QxUInt32, d4 QxUInt32
}
BNode [0xF003]::= SEQUENCE {
b1 QxUInt32, b2 QxUInt16,
}
CNode [0xF005]::= SEQUENCE {
a ANode, b BNode
}
En las versiones nuevas y antiguas, miembros d3 y d4 se añaden en la cola del ANode de la nueva versión, mientras un miembro c3 se borra en el BNode. Ellos y CNode pueden lograr una compatibilidad de versión e interacción con el método de la presente invención. Desde el flujo de código de mensaje de versión antigua hasta el mensaje de nueva versión, d3 y d4 usan valores por defecto, mientras el flujo de código de c3 se omite. Desde el flujo de código de mensaje de versión antigua hasta el mensaje de nueva versión, el flujo de códigos de d3 y d4 se omiten, mientras el valor de c3 es un valor por defecto. Otros datos son consistentes entre las versiones nuevas y antiguas.
3. El fichero de sintaxis ASN.1 del ESNACC se modifica para soportar que el compilador analice y explore la T. Durante la realización, la T se sitúa en la información de descripción de la clase META de las clases.
4. Funciones de codificación y decodificación se añaden a la clase base básica del ESNACC, que son principalmente una función de codificación de integración, una función de codificación de valor, una función de decodificación de integración y una función de codificación de valor. Los prototipos de las funciones pueden ser como se indica a continuación:
la función de codificación de integración: virtual AsnLen TlvEnc (AsnBuf &_b); la función de codificación de V: virtual AsnLen TlvEncContent (AsnBuf &_b);
la función de decodificación de integración: virtual AsnLen TlvDec (AsnBuf &_b, AsnLen&bytesDecoded); y
la función de decodificación de valor: virtual AsnLen TlvDecContent (AsnBuf &_b, short iT, AsnLen iL, AsnLen & bytesDecoded);
En lo anterior, b es un parámetro de flujo de código, byteDecoded es el número acumulado de bytes de un flujo de código de mensaje decodificado, iT es T del flujo de código, iL es L del flujo de código y valores de retorno TlvEnc y TlvEncContent son longitudes de flujos de código de codificación. Valores de retorno TlvDec y TlvDecContext son los números de bytes decodificados en las funciones. Basándose en la manera de realización, el prototipo de las funciones varía según se requiera.
5
10
15
20
25
30
35
40
45
50
5. El compilador se modifica en el ESNACC para realizar códigos de generación de diversas funciones de codificación y decodificación, que principalmente son una función de codificación de valor y una función de decodificación de valor. Ya que las funciones de codificación y decodificación de integración pueden ser universales para diversos tipos, los procedimientos de codificación y decodificación se describieron haciendo referencia a la Figura 5 y en el anterior proceso de operación de codificación y decodificación del flujo de código.
6. De acuerdo con la descripción detallada de la anterior etapa S10, se hace un fichero.asn de interfaz de versión nueva/antigua y se generan un mensaje.h de interfaz y un mensaje.cpp de interfaz, y tanto el Cliente como el Servidor usan C++ para editar. Por lo tanto, de manera similar a como se muestra en la Figura 3, puede realizarse interacción y comunicación entre diferentes versiones del cliente y el Servidor.
Se apreciará que, para el experto en la materia, diversas posibles modificaciones o sustituciones pueden hacerse de acuerdo con la descripción de la solución técnica y las realizaciones específicas de la presente invención, tales como la posición y el formato de la T, el formato de la L, los formatos de compresión y encriptación posiblemente usados y la funciones para realizar la presente invención podrían ser diferentes, y además podría realizarse incluso usando la manera de operador de codificación en lugar de las funciones de miembro.
A partir de la anterior descripción, puede observarse que, la presente invención realiza los siguientes efectos técnicos:
1. convertir un tipo en un flujo de código mediante un método de codificación;
2. decodificar el flujo de código en un ejemplo de mediante un método de decodificación;
3. intercomunicar entre protocolos de versiones diferentes;
4. autodefinir un tipo T;
5. intercomunicar entre programas de diferentes lenguajes; y
6. realizar capacidad de procesamiento alta abstractamente debido al uso de un mecanismo de función virtual de un lenguaje orientado a objetos.
El presente método para procesar un propio formato TLV es universal y no depende un compilador ASN.1 específico y un lenguaje orientado a objetos específico. Incluso en un lenguaje estructurado, puede realizarse tal codificación y decodificación de TLV.
Obviamente, el experto en la materia apreciará que, los anteriores módulos respectivos o etapas respectivas de la presente invención pueden realizarse mediante un dispositivo informático universal. Pueden integrarse en un único dispositivo informático o distribuirse por una red compuesta de múltiples dispositivos informáticos. Opcionalmente, pueden realizarse usando un código de programa ejecutable mediante el dispositivo informático, por lo tanto, pueden almacenarse en un dispositivo de almacenamiento para ejecutarse mediante el dispositivo informático o fabricarse en respectivos módulos de circuito integrado o sus múltiples módulos o etapas se fabrican en un único módulo de circuito integrado a realizar. Por lo tanto, la presente invención no se limita a ninguna combinación específica de hardware y software.
Las descripciones anteriores son únicamente realizaciones preferibles de la presente invención, que no se usan para restringir la presente invención. La presente invención puede tener diversos modificaciones y cambios. Cualquier modificación, sustituciones equivalentes, mejoras se incluyen todas en el alcance de protección de la presente invención.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un método para procesar un formato Tipo Longitud Valor, TLV, de datos de comunicación, caracterizado por comprender las siguientes etapas:
    definir un tipo, T, de un tipo de entero en un formato de Notación de Sintaxis Abstracta 1, ASN.1;
    un lado de envío rellenando un mensaje en el formato ASN.1, incluyendo el mensaje una instancia de estructura
    de datos; y
    el lado de envío decodificando el mensaje en un flujo de código, en donde el flujo de código de la instancia de estructura de datos en el mensaje incluye un valor, V, o incluye la V, el tipo de entero de la V y una longitud L de la V;
    en donde, cuando el tipo de entero es 0 o está ausente, el flujo de código únicamente comprende V, y cuando el tipo de entero no es 0, el flujo de código comprende la V, la longitud L de la V y el tipo de entero.
  2. 2. El método para procesar el formato TLV de acuerdo con la reivindicación 1, caracterizado por que, al definir el tipo de entero en el formato ASN.1, particularmente comprende:
    establecer el formato ASN.1 para permitir definir el tipo de entero; y
    definir una estructura del tipo de entero en un formato de "string type name [X]:: =defining a structure", en donde la X se refiere al tipo de entero.
  3. 3. El método para procesar el formato TLV de acuerdo con la reivindicación 2, caracterizado por que, al definir la estructura del tipo de entero en el formato de "string type name [X]:: =defining a structure", particularmente comprende:
    establecer la estructura del tipo de entero como un tipo de SEQUENCE, SET o CHOICE con el mismo nombre de tipo y especificar que, si el miembro del mismo necesita modificarse, únicamente está permitido un aumento neto o una disminución neta en los miembros y únicamente está permitido cambiar un miembro de cola, pero no está permitido modificar el tipo.
  4. 4. El método para procesar el formato TLV de acuerdo con la reivindicación 3, caracterizado por que además comprende:
    establecer un compilador de formato ASN.1 con una función de procesamiento del tipo de entero.
  5. 5. El método para procesar el formato TLV de acuerdo con la reivindicación 4, caracterizado por que además comprende:
    obtener, a través de una función, el tipo de entero en un tipo C++ en el formato ASN.1.
  6. 6. El método para procesar el formato TLV de acuerdo con la reivindicación 1, caracterizado por que la etapa del lado de envío decodificando el mensaje en el flujo de código comprende:
    llamar a una función de codificación de valor, a una función de codificación de longitud y a una función de codificación de tipo de entero, mediante una función de codificación de integración, o llamar únicamente a la función de codificación de valor mediante la función de codificación de integración para codificar el mensaje en el flujo de código;
    siendo la función de codificación de tipo de entero usada para obtener el tipo de entero del flujo de código de acuerdo con la codificación de datos en la instancia de estructura de datos;
    siendo la función de codificación de valor usada para codificar datos simples en la instancia de estructura de datos en la V del flujo de código, así como para la instancia de estructura de datos de un tipo de datos simples; siendo la función de codificación de valor usada para llamar secuencialmente a la función de codificación de integración de miembros individuales en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE o SET;
    siendo la función de codificación de valor usada para llamar secuencialmente a la función de codificación de integración de elementos individuales de una matriz en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE OF o SET OF; y
    siendo la función de codificación de valor usada para codificar un miembro seleccionado en la instancia de estructura de datos en la V del flujo de código, así como para la instancia de estructura de datos del tipo CHOICE, en la que la V comprende el número de secuencia del miembro seleccionado en el CHOICE y el miembro seleccionado.
  7. 7. El método para procesar el formato TLV de acuerdo con la reivindicación 6, caracterizado por que, cuando el tipo de entero es 0 o está ausente, la función de codificación de integración llama únicamente a la función de codificación de valor; y cuando el tipo de entero no es 0, el flujo de código comprende la V, la longitud L de la V y un tipo de entero.
    5
    10
    15
    20
    25
    30
    35
    40
  8. 8. El método para procesar el formato TLV de acuerdo con la reivindicación 1, caracterizado por que además comprende: un lado de recepción, decodificando el flujo de código.
  9. 9. El método para procesar el formato TLV de acuerdo con la reivindicación 8, caracterizado por que decodificar el flujo de código particularmente comprende:
    llamar a una función de decodificación de valor, a una función de decodificación de longitud y a una función de decodificación de tipo de entero mediante una función de decodificación de integración o llamar únicamente a la función de decodificación de valor mediante la función de decodificación de integración para decodificar el flujo de código;
    siendo la función de decodificación de tipo de entero usada para decodificar el flujo de código de acuerdo con el tipo de entero en el flujo de código;
    siendo la función de decodificación de valor usada para decodificar la V en el flujo de código en datos simples en la instancia de estructura de datos, así como para la instancia de estructura de datos de un tipo de datos simples; siendo la función de decodificación de valor usada para decodificar secuencialmente la V en el flujo de código en datos de miembros individuales en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE o SET;
    siendo la función de decodificación de valor usada para decodificar secuencialmente la V en el flujo de código en elementos individuales de una matriz en la instancia de estructura de datos, así como para la instancia de estructura de datos del tipo SEQUENSE OF o SET OF, durante la que se analiza si la longitud de un flujo de decodificación en la estructura es más pequeña que L, y si es más pequeña que la L, la decodificación se continúa, de otra manera, la decodificación en la presente estructura se detiene; y
    siendo la función de decodificación de valor usada para decodificar un número de secuencia en el flujo de código y un miembro que corresponde al número de secuencia, así como para la instancia de estructura de datos del tipo CHOICE, en donde si el miembro que corresponde al número de secuencia no existe en la presente estructura, la función de decodificación de valor se finaliza.
  10. 10. El método para procesar el formato TLV de acuerdo con la reivindicación 9, caracterizado por que, la etapa de llamar a la función de decodificación de valor, a la función de decodificación de longitud ya la función de decodificación de tipo de entero mediante la función de decodificación de integración o llamar únicamente a la función de decodificación de valor mediante la función de decodificación de integración para decodificar el flujo de código particularmente comprende:
    determinar si el tipo de entero es 0 o está ausente mediante la función de decodificación de integración; si no es 0 o no está ausente, llamar a la función de decodificación de valor, a la función de decodificación de longitud y a la función de decodificación de tipo de entero, en donde se llama a la función de decodificación de valor para decodificar el tipo de entero en el flujo de código para verificar si el tipo de entero obtenido es consistente con el mismo tipo de entero, y si no es consistente, se considera como decodificación anormal, se llama a la función de decodificación de longitud para decodificar la L en el flujo de código y a continuación se llama a la función de decodificación de valor para decodificar la V en el flujo de código; si la longitud vL obtenida decodificando la V es más pequeña que la L, se saltan L-vL bytes; y
    si es 0 o está ausente, llamar únicamente a la función de decodificación de valor.
ES09771909.0T 2008-07-02 2009-02-10 Método para procesar formato TLV de datos de comunicación Active ES2659396T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2008101376473A CN101316241B (zh) 2008-07-02 2008-07-02 用于通信数据的tlv格式处理方法
CN200810137647 2008-07-02
PCT/CN2009/070391 WO2010000139A1 (zh) 2008-07-02 2009-02-10 用于通信数据的tlv格式处理方法

Publications (1)

Publication Number Publication Date
ES2659396T3 true ES2659396T3 (es) 2018-03-15

Family

ID=40107085

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09771909.0T Active ES2659396T3 (es) 2008-07-02 2009-02-10 Método para procesar formato TLV de datos de comunicación

Country Status (7)

Country Link
US (1) US20110134939A1 (es)
EP (1) EP2302864B1 (es)
CN (1) CN101316241B (es)
BR (1) BRPI0915217B1 (es)
ES (1) ES2659396T3 (es)
RU (1) RU2473180C2 (es)
WO (1) WO2010000139A1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316241B (zh) * 2008-07-02 2013-05-01 中兴通讯股份有限公司 用于通信数据的tlv格式处理方法
CN103246671A (zh) * 2012-02-09 2013-08-14 中兴通讯股份有限公司 抽象语法标记文件的处理方法及装置
CN103036877A (zh) * 2012-12-10 2013-04-10 北京中创信测科技股份有限公司 一种基于tlv格式协议的编解码代码生成装置及方法
US10109983B2 (en) 2016-04-28 2018-10-23 Hewlett Packard Enterprise Development Lp Devices with quantum dots
US10566765B2 (en) 2016-10-27 2020-02-18 Hewlett Packard Enterprise Development Lp Multi-wavelength semiconductor lasers
US10680407B2 (en) 2017-04-10 2020-06-09 Hewlett Packard Enterprise Development Lp Multi-wavelength semiconductor comb lasers
US10396521B2 (en) 2017-09-29 2019-08-27 Hewlett Packard Enterprise Development Lp Laser
WO2019190345A1 (ru) * 2018-03-30 2019-10-03 Публичное Акционерное Общество "Сбербанк России" Система управления сетью pos-терминалов
CN109298866A (zh) * 2018-09-26 2019-02-01 杭州米加科技股份有限公司 基于c语言的tlv格式协议快速解析方法
US11271792B2 (en) * 2019-01-18 2022-03-08 Hewlett Packard Enterprise Development Lp Using a recursive parser tree to implement a smaller code segment for an embedded simple network management protocol agent
CN113742294A (zh) * 2021-08-23 2021-12-03 宜通世纪科技股份有限公司 一种asn.1-per信令消息解码方法、系统、装置及介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473691A (en) * 1993-11-05 1995-12-05 Microsoft Corporation System and method for computer data transmission
US5649189A (en) * 1995-11-29 1997-07-15 3Com Corporation Method and apparatus for single pass data encoding of binary words using a stack for writing in reverse order
US6356955B1 (en) * 1996-02-15 2002-03-12 International Business Machines Corporation Method of mapping GDMO templates and ASN.1 defined types into C++ classes using an object-oriented programming interface
JP3531536B2 (ja) * 1999-05-28 2004-05-31 日本電気株式会社 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法
FI20002720A (fi) * 2000-12-12 2002-06-13 Nokia Corp Menetelmä konversioiden suorittamiseksi
US6883164B2 (en) * 2000-12-15 2005-04-19 International Business Machines Corporation Strategy for dynamically modeling ASN.1 data to an object model
EP1400784A1 (de) * 2002-09-14 2004-03-24 Leica Geosystems AG Verfahren und Vorrichtungen zur Nutzung von Daten in nicht direkt verarbeitbaren Datenformaten
CN100505743C (zh) * 2003-12-12 2009-06-24 华为技术有限公司 通用消息解释器的实现方法
US20050181787A1 (en) * 2004-02-18 2005-08-18 Judd Tom D. Systems and methods for encoding and decoding data messages
US6999010B2 (en) * 2004-04-16 2006-02-14 Ares International Corporaton Table look-up method for abstract syntax notation encoding/decoding system
CN101197818A (zh) * 2006-12-08 2008-06-11 中兴通讯股份有限公司 一种asn.1报文面向对象的处理方法
CN101159743B (zh) * 2007-10-22 2010-06-23 中兴通讯股份有限公司 Asn.1编解码函数自动生成中的数据类型选择方法
CN100530193C (zh) * 2007-10-25 2009-08-19 中兴通讯股份有限公司 复杂抽象语法标识对象的存储方法
US7996523B2 (en) * 2008-01-17 2011-08-09 Fluke Corporation Free string match encoding and preview
CN101316241B (zh) * 2008-07-02 2013-05-01 中兴通讯股份有限公司 用于通信数据的tlv格式处理方法

Also Published As

Publication number Publication date
US20110134939A1 (en) 2011-06-09
RU2011103630A (ru) 2012-08-10
CN101316241B (zh) 2013-05-01
EP2302864A1 (en) 2011-03-30
EP2302864B1 (en) 2017-11-15
WO2010000139A1 (zh) 2010-01-07
BRPI0915217A2 (pt) 2016-09-13
EP2302864A4 (en) 2013-11-20
RU2473180C2 (ru) 2013-01-20
CN101316241A (zh) 2008-12-03
BRPI0915217B1 (pt) 2020-10-06

Similar Documents

Publication Publication Date Title
ES2659396T3 (es) Método para procesar formato TLV de datos de comunicación
ES2559680T3 (es) Dispositivo de gestión orientado a objetos para mensaje ASN.1
CN103281311B (zh) 一种使用Protobuf描述的物联网协议解析方法
WO2017054531A1 (zh) 一种基于yang模型的编译方法、及对应的接口、组件和系统
US7818732B2 (en) Transfer syntax notational system and method
US20070106998A1 (en) Mobility system and method for messaging and inter-process communication
CN101197818A (zh) 一种asn.1报文面向对象的处理方法
US10223108B2 (en) System and method of reconstructing complex custom objects
US8250587B2 (en) Non-persistent and persistent information setting method and system for inter-process communication
US20070106778A1 (en) Information and status and statistics messaging method and system for inter-process communication
CN102111160B (zh) 用于反应式系统测试的编解码系统及其编解码器
WO2005057873A1 (fr) Procede de mise en oeuvre d'un dispositif universel expliquant les messages
CN113162977A (zh) 一种信息处理方法及装置、设备、存储介质
WO2012083616A1 (zh) 报文编、解码方法及装置
Persampieri Unibo-BP: an innovative free software implementation of Bundle Protocol Version 7 (RFC 9171)
Moya et al. Embedding standard distributed object‐oriented middlewares in wireless sensor networks
Pfisterer et al. Energy-optimized data serialization for heterogeneous WSNs using middleware synthesis
van Engelen gSOAP 2.7. 0 User Guide
US20170031660A1 (en) Methods for utilizing powershell modules in .net applications and devices thereof
Qiang et al. ASN. 1 application in parsing ISUP PDUs
Perry et al. IP-XACT extensions for IP interoperability guarantees and software model generation
CN118138622A (zh) 基于Fury序列化和soft通信协议的Node.js RPC框架实现方法
Hall Generation of Restful API Proxy Service from Soap Service
Kalvoda Implementace a evaluace protokolu CBOR
Muller A CoAP Server with a Rack Interface for Use of Web Frameworks such as Ruby on Rails in the Internet of Things