MX2011001608A - Plataforma para enrutamiento de mensajes. - Google Patents

Plataforma para enrutamiento de mensajes.

Info

Publication number
MX2011001608A
MX2011001608A MX2011001608A MX2011001608A MX2011001608A MX 2011001608 A MX2011001608 A MX 2011001608A MX 2011001608 A MX2011001608 A MX 2011001608A MX 2011001608 A MX2011001608 A MX 2011001608A MX 2011001608 A MX2011001608 A MX 2011001608A
Authority
MX
Mexico
Prior art keywords
packet
intended recipient
server
node
packets
Prior art date
Application number
MX2011001608A
Other languages
English (en)
Inventor
Markku Kero
Rainer Leinonen
John Anthony Underwood
Christopher Edward Keys
Alvin Delagon
Original Assignee
3Rd Brand Pte Ltd
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 3Rd Brand Pte Ltd filed Critical 3Rd Brand Pte Ltd
Publication of MX2011001608A publication Critical patent/MX2011001608A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/222Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Se describe un sistema y método para enrutar mensajes en una red de comunicaciones. El sistema incluye una pluralidad de nodos para recibir un paquete para entrega a un destinatario pretendido en donde el sistema está adaptado para determinar si el destinatario pretendido está conectado a un primer nodo seleccionado dentro de la pluralidad de nodos; y si el destinatario está conectado al primer nodo seleccionado, entregar el paquete; y si se determina que el destinatario no está conectado al primer nodo seleccionado dentro de la pluralidad de nodos, el sistema además está adaptado para determinar a cuál nodo entre la pluralidad de nodos del destinatario pretendido está conectado y dirigir el paquete al nodo al cual está conectado el destinatario pretendido.

Description

PLATAFORMA PARA ENRUTAMIENTO DE MENSAJES CAMPO DE LA INVENCIÓN La presente solicitud de invención se relaciona con sistemas y métodos para enrutar información. En particular, aunque no exclusivamente, la presente invención se relaciona con el enrutamiento de mensajes y datos en una red de comunicaciones móviles.
DISCUSIÓN DEL CAMPO TÉCNICO ANTECEDENTE La siempre creciente popularidad de la mensajería y los formatos de datos móviles como SMS, MMS, VOIP, correo electrónico, mensajería instantánea, mensajería por video, transmisión de videos en tiempo real en vivo, etc. generan una carga siempre creciente en la capacidad de red. El aumento de tráfico afecta la eficiencia de la red. Para mejorar la capacidad de transmisión de datos muchos proveedores emplean el modelado en donde se restringe la velocidad de datos provista a diversos usuarios quienes exceden límites de uso de datos establecidos.
Los efectos del aumento en el tráfico de datos son mucho más evidentes en muchas de las plataformas de comunicaciones móviles actuales. Esencialmente, a medida que las tecnologías móviles han avanzado desde el dispositivo móvil de la primera generación hasta la segunda generación, la generación 2.5 y recientemente la tercera generación, el tráfico de datos ha crecido exponencialmente . Esto se debe principalmente a la provisión de ancho de banda adicional. Sin embargo, la eficiencia de la transferencia de datos a través de redes móviles está limitada en su velocidad por los componentes de hardware de la red. No sólo el hardware limita los datos, sino que también limita la cantidad de usuarios a los que puede dar servicio cualquier nodo en la red en un momento determinado.
Dada la cantidad siempre creciente de datos que se colocan en las redes de comunicaciones móviles claramente existe una necesidad de un sistema de mensajes y un método que no sólo sean capaces de manejar el tráfico de datos de la red sino que también es fácilmente escalable para atender el aumento en los datos.
SUMARIO DE LA INVENCIÓN Descripción de la invención De acuerdo con lo anterior en un aspecto de la presente invención se proporciona un sistema para enrutar mensajes en una red de comunicación, el sistema incluye: una pluralidad de nodos para recibir un paquete para entrega a un destinatario pretendido en donde el sistema está adaptado para determinar si el destinatario pretendido está conectado a un primer nodo seleccionado dentro de la pluralidad de nodos y si el destinatario está conectado al primer nodo seleccionado entrega el paquete y si se determina que el destinatario no está conectado al primer nodo seleccionado dentro de la pluralidad de nodos, el sistema además está adaptado para determinar cuál nodo entre la pluralidad de nodos del destinatario pretendido está conectado y dirigir el paquete al nodo al cual está conectado el destinatario pretendido.
Preferiblemente cada nodo de la pluralidad de nodos incluye una pluralidad de servidores acoplados entre si. Como corresponde, cada nodo contiene un primer servidor de la pluralidad de servidores, el primer servidor está adaptado para determinar si el destinatario pretendido está conectado a por lo menos un servidor dentro de la pluralidad de servidores del nodo. El primer servidor puede adaptarse para determinar si el paquete contiene una dirección de destino del nodo al cual debe enrutarse el paquete. Preferiblemente el primer servidor está adaptado para limpiar la información de enrutamiento en el paquete al reenviar el paquete al destino deseado.
Si el paquete del mensaje no contiene ninguna información de enrutamiento y el primer servidor determina que el destinatario pretendido no está conectado a su nodo entonces el primer servidor se adapta para enrutar el paquete del mensaje a un registro. El registro puede incluir uno o más servidores. De manera correspondiente el registro incluye un primer servidor adaptado para consultar por lo menos una base de datos en busca de información respecto a la ubicación del último nodo al cual se conectó el destinatario pretendido. Si la o las bases de datos contienen información acerca de la última ubicación conocida del destinatario pretendido el primer servidor de registro entonces reenvía el paquete al primer servidor del nodo identificado.
De manera correspondiente el registro puede consultar una pluralidad de bases de datos ya sea simultáneamente o secuencialmente . La base de datos puede encontrarse en una única ubicación o distribuirse a través de la red.
Preferiblemente la pluralidad de servidores en cada nodo y/o cada registro pueden ocupar la misma ubicación física. Alternativamente los servidores dentro de cada nodo y/o registro pueden distribuirse a través de diferentes ubicaciones dentro del nodo/registro, en tal caso los servidores se agrupan en conjuntos.
Los paquetes pueden incluir paquetes de mensaje, paquetes de información o paquetes de presencia. Si el paquete es un paquete de mensaje y el sistema no puede determinar la ubicación del destinatario el sistema intenta entregar el paquete de acuerdo con un conjunto de reglas predeterminadas. Las reglas de entrega pueden incluir (sin limitarse a ello) la entrega de SMS, la entrega de correo electrónico y/o la entrega a través de otro medio alternativo. Si el paquete es un paquete de información el sistema devuelve un paquete de error "no encontrado" al originador del mensaje. Si el paquete de mensaje es un paquete de presencia, el sistema descarta el paquete.
En un aspecto adicional de la presente invención se proporciona un método para enrutar mensajes en un sistema de comunicación, el método incluye: recibir en un primer nodo dentro de una pluralidad de nodos un paquete para un destinatario pretendido; determinar si el destinatario pretendido está conectado al nodo y si el destinatario pretendido está conectado al nodo entregar el paquete al destinatario pretendido y si el destinatario no está conectado al primer nodo determinar a cuál nodo de la pluralidad de nodos está conectado el destinatario pretendido y reenviar el paquete al nodo al cual está conectado el destinatario pretendido.
El método además puede incluir el paso de reenviar el paquete a un registro en el caso de que el paso de determinación falle al identificar el nodo al cual está conectado el destinatario pretendido.
El método también puede incluir el paso de consultar una o más bases de datos para determinar el nodo al cual el destinatario pretendido se conectó por última vez y reenviar el paquete al nodo con base en la información recuperada de una o más bases de datos.
Preferiblemente el método incluye el paso de reenviar el paquete a un destinatario con base en reglas predeterminadas .
BREVE DESCRIPCIÓN DE LOS DIBUJOS Con el fin de que esta invención sea entendida más fácilmente y puesta en práctica, ahora se hará referencia a los dibujos adjuntos, los cuales ilustran las modalidades preferidas de la invención, y en donde: La Figura 1 es un diagrama esquemático que ilustra un sistema para enrutar paquetes de acuerdo con una modalidad de la presente invención La Figura 2 es un diagrama de flujo que ilustra el proceso de enrutamiento de acuerdo con una modalidad de la presente invención La Figura 3 es un diagrama esquemático que ilustra las relaciones de conectividad entre los componentes de la red bajo el proceso de enrutamiento de acuerdo con una modalidad de la presente invención; La Figura 4 es un diagrama esquemático que ilustra el proceso empleado por un servidor de registro para localizar un fragmento de datos de acuerdo con una modalidad de la presente invención.
DESCRIPCION DE LAS MODALIDADES DE LA INVENCION Se entenderá que a través de la descripción los términos "Conexión" y "Registro" al utilizarse en conjunto con la discusión de la arquitectura del sistema se refieren a los componentes lógicos del servidor que manejan la conectividad de los usuarios finales/dispositivos (conexión) y el acceso a bases de datos/datos persistentes (registro) . De manera similar, el término "Ubicación" se utiliza para significar la "ubicación de un usuario o dispositivo", la cual debe interpretarse como un identificador único para una "Conexión" como se define anteriormente. Este puede ser, por ejemplo, una dirección IP, pero la arquitectura también cubre cualquier otro esquema de direccionamiento. El término "base de datos" también se usa ampliamente para referirse a un almacenamiento de datos, y no implica ningún método especifico de almacenamiento de datos (como una base de datos SQL) , o cualquier sistema o producto de administración de bases de datos especifico.
Con referencia a la Figura 1 se ilustra un ejemplo de un sistema 100 para enrutar un paquete 102 de acuerdo con una modalidad de la presente invención. Los paquetes en este ejemplo en particular pueden incluir paquetes de mensaje, paquetes de información y paquetes de presencia. Si se utiliza el protocolo XMPP estos se relacionan con las etiquetas <message>, <iq> y <presence>, respectivamente .
En este ejemplo el cliente originante 101 da formato al paquete 102 y lo reenvía a un primer servidor seleccionado 104a de una pluralidad de servidores (clúster) 104a, 104b, 104c dentro del primer nodo seleccionado 103a dentro de una pluralidad de nodos 103a, 103b, 103c y 103d (red) para entrega a un destinatario pretendido 108. Una vez que el paquete 102 es entregado al primer servidor 104a dentro del nodo seleccionado 103a, el primer servidor 104a determina si el destinatario pretendido 108 está conectado a un primer servidor 104a. Si el destinatario está conectado al servidor 104a entonces el servidor procede a entregar el paquete (entrega local) al destinatario pretendido 108.
Si el destinatario 108 no está conectado a un servidor 104a, 104b, 104c dentro del conjunto entonces el primer servidor 104a procede a comprobar si el paquete 102 contiene una dirección de destino. Por ejemplo el paquete 102 puede especificar el servidor 104c en el nodo 103c como la dirección de destino, en cuyo caso el servidor 104a en el nodo 103a enruta el paquete 102 directamente al servidor 104c dentro del nodo 103c. Será evidente para aquellos de habilidad ordinaria en el campo técnico que el paquete puede enrutarse indirectamente al servidor 104c dentro del nodo 103c a través del nodo 103b, 103d a 103c, un primer servidor 104a dentro del nodo 103c entonces puede encargarse de la entrega del paquete 102 antes de reenviar el paquete 102 al servidor 104c para entrega al destinatario 108.
En el caso de que el destinatario 108 no esté conectado a un servidor 104a, y el paquete no contiene una dirección de destino especificada entonces el servidor 104a dentro del nodo 103a reenvía el paquete a un registro 105. Para claridad y facilidad de descripción el ejemplo se muestra incluyendo únicamente un registro 105, sin embargo será apreciado por aquellos de habilidad ordinaria en el arte que el sistema puede incluir cualquier número de registros 105.
Como se muestra en el registro 105 incluye una pluralidad de servidores 106a, 106b, 106c (conjunto de servidores de Registro) . Una vez que el paquete 102 se entrega a un primer servidor 106a desde una pluralidad de servidores (conjunto) 106a, 106b, 106c, el servidor 106a consulta una o más bases de datos 107a, 107b, 107c en busca de información relacionada con la última ubicación conocida del destinatario pretendido 108. Si la información sobre la última ubicación del destinatario pretendido 108 está disponible cuando el primer servidor 106a reenvía el paquete al servidor 104a, 104b, 104c dentro del nodo apropiado 103a, 103b, 103c y 103d al cual se conectó el destinatario 108 por última vez. En este ejemplo la información obtenida desde las bases de datos indica que el destinatario 108 se conectó por última vez al servidor 104a en el nodo 103d, en cuyo caso el servidor 106a reenvía el paquete 102 al servidor 104a en el nodo 103d para entrega. En el caso de que el destinatario 108 haya cambiado su ubicación desde entonces, el servidor de ubicación 104a entonces puede procesar el paquete como se trató anteriormente o realizar un enrutamiento adicional. Se presentan detalles adicionales sobre la manera en que se enrutan los paquetes entre los diversos nodos en relación con la Figura 2 a continuación.
En una modalidad adicional de la presente invención el primer servidor 104a al determinar que el destinatario pretendido 108 no está conectado al primer servidor 104a, podría realizar primero una búsqueda de los servidores restantes 104b, 104c dentro del conjunto contenido en el nodo 103a para determinar si el destinatario pretendido 108 está conectado a uno de los servidores restantes 104b, 104c. Si el destinatario pretendido está conectado a uno de los servidores restantes 104b, 104c entonces el servidor 104a reenvía el paquete al servidor (en este caso el servidor 104b) al cual está conectado el destinatario 108. El servidor 104b a continuación entrega el paquete al destinatario 108.
Como se mencionó anteriormente los servidores dentro de los nodos 103a, 103b, 103c y el registro 105 están distribuidos en conjuntos. Los conjuntos normalmente consisten en varios servidores, que tienen por lo menos una conexión disponible entre ellos. Por tanto los servidores pueden distribuirse geográficamente a través del área de servicio del nodo, siempre que la conexión de red entre los servidores esté disponible. Mientras que la discusión anterior ha establecido una distinción entre el registro y los nodos será apreciado por aquellos de habilidad ordinaria en el arte que la distinción se ha establecido únicamente para claridad de descripción y que cualquier conjunto de servidores dentro de un nodo dado puede ser un conjunto de tipo Conexión o Registro.
Con referencia a la Figura 2 hay un diagrama de flujo que ilustra un ejemplo de un proceso de enrutamiento que puede emplearse en el sistema de la Figura 1 tratado anteriormente. Aquí se da formato al paquete 102 y se entrega a un servidor de "Conexión" 104a dentro de un nodo 52-698 103a. Ya que existe una pluralidad de nodos 103a, 103b, 103c, 103d dentro de la red, el destinatario 108 puede estar conectado a cualquiera de los servidores de conexión 104a, 104b, 104c dentro de un conjunto de servidores contenidos en un nodo dado. Por tanto el servidor de Conexión 104a que maneja el paquete realiza una comprobación 201 para ver si el destinatario pretendido se conecta localmente al servidor 104a que procesa el paquete. Si esta comprobación tiene un resultado "si", significa que el destinatario del paquete ha sido encontrado, y está conectado al servidor 104a que actualmente maneja el procesamiento. Por tanto, el servidor 104a procede con la entrega local 202 del paquete 102 (por ejemplo, en el caso de que el destinatario 108) conectado al servidor 104.
En caso de que la comprobación 201 devuelva un resultado "no" entonces el servidor de Conexión 104a debe iniciar un procedimiento de búsqueda para determinar la ubicación del destinatario pretendido 203. Bajo este procedimiento de búsqueda el servidor de Conexión 104a procede a comprobar si el paquete 102 contiene el "destino de enrutamiento" 203. La información de enrutamiento en esta instancia es un identificador único que especifica un servidor de Conexión dado dentro de un conjunto 104a, 104b, 104c (este puede ser, por ejemplo, la dirección IP de dicho servidor, pero también pueden aplicarse otros esquemas de 52-698 direccionamiento) al cual debe reenviarse el paquete. Por tanto, el cliente que envia puede usar el campo opcional "destino de enrutamiento" en el paquete 102 para solicitar enrutar a un servidor de Conexión especifico donde el cliente conoce o puede deducir la ubicación o la ubicación probable del nodo 103a, 103b, 103c, 103d que contiene el servidor de Conexión 104a, 104b, 104c al cual está conectado el destinatario 108.
Si el paquete 102 contiene información de enrutamiento el servidor de Conexión 104a que maneja el procesamiento 102 entonces reenvía el paquete 102 al servidor de Conexión 104a, 104b, 104c identificado en la información de enrutamiento. A continuación la información de enrutamiento se "limpia" o elimina 204 para evitar que el paquete 102 sea enrutado infinitamente a lo largo del mismo destino en un ciclo cuando el paquete es procesado por el servidor de Conexión relevante dentro del nodo de destino relevante.
Si el destinatario de destino no está conectado al servidor de Conexión 104a que realiza el procesamiento, y si no existe un destino de enrutamiento especificado en el paquete 102, el servidor de Conexión 104a reenvía (paso 205) el paquete 102 a un servidor de Registro seleccionado 106a dentro de un conjunto de servidores de registro 106a, 106b, 106c con el fin de determinar la ubicación del 52-698 destinatario pretendido 108. Depende del servidor de Conexión 104a que realiza el procesamiento determinar un servidor de Registro adecuado 106a, 106b, 106c para esto usando cualquier esquema deseado (este podría ser el servidor de Registro más cercano, o aquel con la menor carga, o sencillamente elegirse al azar entre los Registros disponibles conocidos, o cualquier otro método) .
Una vez que el paquete 102 alcanza el servidor de Registro 106a, el servidor de Registro 1006a a continuación busca los datos del destinatario en una o más bases de datos 107a, 107b, 107c (por ejemplo, la cuenta de usuario del destinatario, etc.)- Las bases de datos 107a, 107b, 107c pueden ser como los servidores de Conexión y Registro y distribuirse en conjuntos distribuidos a través de la red, permitiendo por este medio que los datos del destinatario se guarden en más de una base de datos dentro de la red. En tales instancias todos los servidores de Registro 106a, 106b, 106c están configurados con la información requerida para determinar dónde se almacenan los datos de un usuario dado, y cómo conectar con la misma. Usando su información de configuración, el servidor de Registro 106a que procesa el paquete 102 se conecta a la base de datos apropiada 107a, 107b, 107c (si no se conectó antes), y consulta a la base de datos 206 en busca de los datos del perfil de usuario del destinatario pretendido 52-698 108.
Una vez que el servidor de registro 106a localiza los datos del perfil del usuario dentro de la base de datos relevante 107a, 107b, 107c el servidor de Registro 106a a continuación procede a comprobar si se conoce la última ubicación de la cuenta del usuario destinatario 207 (aquí "ubicación" se utiliza como se determinó anteriormente, este es un identificador único de un servidor de Conexión en un nodo dado dentro de la red) . De manera similar, "la última ubicación" aquí se refiere al servidor de Conexión 104a, 104b, 104c que ha servido más recientemente al destinatario pretendido 108. Antes de reenviar el paquete 102 mediante el servidor de Registro 106a al último servidor de Conexión conocido 104a, 104b, 104c que dio servicio por última vez al destinatario pretendido, se realiza una comprobación adicional 208 para determinar si el paquete ya ha sido reenviado por un servidor de Registro 106a, 106b, 106c a un servidor de Conexión 104a, 104b, 104c. Si es asi, el paquete no será reenviado de nuevo.
En caso que el paquete 102 aún no haya sido reenviado por un Registro 106a, 106b, 106c el Registro 106a que actualmente procesa el paquete etiqueta el paquete 102 con información que significa que el paquete fue reenviado por el servidor de Registro 106a que actualmente procesa el paquete. El servidor de Registro 106a entonces reenvía 209 52-698 el paquete 102 al servidor de Conexión apropiado 104a, 104b, 104c. El servidor de Conexión relevante 104a, 104b, 104c entonces continúa procesando el paquete como se describe anteriormente. Etiquetar el paquete 102 en esta manera asegura que la próxima vez el paquete 102 pase a través de la comprobación 208 de que no se forma un ciclo infinito que haga rebotar el paquete entre un servidor de Registro y un servidor de Conexión.
Si la ubicación del destinatario no puede determinarse mediante el servidor de Registro 106a entonces se concluye que el destinatario 108 del paquete está conectado a cualquier servidor de Conexión 104a, 104b, 104c en el momento presente 210. En un modo de hablar, el destinatario 108 pretendido está "fuera de linea". El protocolo entonces determina a que clase el paquete 102 pertenece 21) (por ejemplo, mensaje, información o presencia) . Según el tipo al que pertenece el paquete, la manera en que el proceso de enrutamiento maneja el paquete difiere .
En el caso de "Paquete de mensaje", los cuales son considerados "más importantes", el sistema consultará un conjunto de reglas de enrutamiento 212, y toma la decisión apropiada sobre la manera en que se entregará el paquete. Las reglas de enrutamiento 21) que controlan la manera en que se entregan los mensajes pueden incluir (sin 52-698 limitarse a ello) la entrega de SMS, la entrega de correo electrónico y/o la entrega a través de otro medio alternativo .
En caso de "Paquetes de información" (los cuales corresponden a etiquetas de IQ en el protocolo XMPP) , un paquete de error "no encontrado" (también referido comúnmente como un error 404) se devuelve al remitente del paquete original 213. La entrega del paquete de error entonces también seguirá el mismo algoritmo de enrutamiento de mensaje descrito aquí. El paquete de error no se enviará en caso de que el paquete original ya fuera un paquete de error (por ejemplo, no se enviará una respuesta de error para las respuestas de error) . Esto de nuevo impedirá que ocurra un ciclo infinito.
En el caso de "Paquetes de presencia" estos paquetes se consideran irrelevantes en instancias donde el destinatario de la información no está conectado a un conjunto. Por tanto, estos paquetes se descartan silenciosamente sin devolver información al remitente 214.
Como puede verse desde la discusión anterior el proceso de enrutamiento de acuerdo con una modalidad de la presente invención cubre un sistema conectado en red consistente en los dos componentes principales siguientes: • Cliente (s) 101,108 · Conexión(es) 104a, 104b 104c 52-698 • Registro(s) 106a, 106b 106c • Base(s) de datos 107a, 104b 104c Las relaciones de conectividad entre estos componentes se ilustran en la Figura 3. El algoritmo de enrutamiento especifica las siguientes relaciones de conectividad. Los clientes de origen 101 y recepción 108 se conectan únicamente a los servidores de Conexión 104a, 104b, 104c. Como se muestra, uno o más clientes 101, 108 pueden conectarse a un servidor de Conexión 104a. Cualquier número de clientes pueden conectarse en cualquier momento dado, sin embargo, una cuenta de cliente/usuario sólo puede conectarse a un servidor de Conexión 104a a la vez. Cualquier número de servidores de Conexión 104a, 104b, 104c pueden estar disponibles en cualquier momento dado. Cualquier servidor de Conexión puede conectarse a cualquier servidor de Registro 106a, 106b, 106c. Un servidor de Conexión 104a puede conectarse a varios Registros simultáneamente si asi se requiere. Cualquier servidor de Registro 106a, 106b, 106 puede acceder a cualquier base de datos 107a, 107b, 107c. Un Registro puede conectarse a varias bases de datos simultáneamente si asi se requiere. Cualquier servidor de Registro puede conectarse a cualquier servidor de Conexión (para reenvío de mensajes como se describe anteriormente) .
"Conexión", "Registro" y "Base de datos" se 52-698 utilizan anteriormente como componentes lógicos del sistema, y pueden o no distribuirse en un solo servidor físico, o pueden distribuirse a través de un arreglo de hardware. Generalmente, los requisitos de capacidad determinarán la distribución física del sistema deseado.
El proceso de enrutamiento del presente no requiere basarse en un sistema o metodología de administración de base de datos específicos. En una modalidad de la presente invención, sin embargo, el proceso puede utilizar una combinación de fragmentación y réplica de base de datos, el cual se describe con mayor detalle a continuación .
Un "fragmento" se utiliza en el presente como una "partición de base de datos", la cual representa una manera de distribuir una gran cantidad de datos a través de sistemas internos de almacenamiento de datos instalados por separado. Un "sistema interno de almacenamiento de datos" se utiliza normalmente en el presente para referirse a un servidor específico que utiliza un RDBMS (sistema de administración de bases de datos relaciónales), sin embargo no es necesariamente así, y cualquier método de almacenamiento de datos es aceptable.
Como se muestra en la Figura 4, en un entorno compartido, un servidor de Registro 106a necesita determinar siempre la ubicación de almacenamiento de datos 52-698 correcta para cualquier acción dada, y realizar la operación sobre un fragmento apropiado. Por ejemplo, si el fragmento requerido es el fragmento "número 2", entonces el servidor de Registro 106a determina que el fragmento se almacena dentro de la base de datos 107a. El servidor de registro 106a a continuación recupera el fragmento de la base de datos 107a y realiza la acción necesaria. Si el fragmento requerido es el fragmento "número 1", y la operación es una operación de lectura, el servidor de Registro 106a determinaría que cualquiera de las bases de datos 107b, 107c contienen el fragmento relevante sin embargo, si el fragmento requerido es el fragmento "número 1", pero la operación es una operación de escritura (adición o modificación de datos) , entonces el servidor de Registro 106a seleccionaría la base de datos 107b (asumiendo que la réplica sea de tipo amo-esclavo) . Aunque la selección de fragmentos ha sido discutida en relación con el acceso a 3 bases de datos por separado a través de las cuales se distribuyen los fragmentos, será apreciado por aquellos con habilidad ordinaria en el campo técnico que una sola base de datos que contiene varias posiciones puede utilizarse.
Como se menciona anteriormente, una base de datos grande puede partirse en varios fragmentos (o "particiones"), para cada registro en la base de datos, el 52-698 algoritmo de fragmentación determina cuál partición posee el registro. El algoritmo de fragmentación puede implementarse en varias maneras, de nuevo el algoritmo exacto debe dictarse mediante los requisitos de escalabilidad. Un lineamiento general para un algoritmo de fragmentación podría ser el siguiente: • Para datos relacionados con una cuenta de usuario específica en el sistema, primero determine el identificador único para la cuenta del usuario ("id de usuario") • Calcular un hash de la identificación de usuario usando una función de hash adecuada ("hash" es un término utilizado en la terminología de computación, el cual se utiliza a menudo para referirse a una representación numérica de una cadena de texto, y "función de hash" es una función que determina el algoritmo específico que proporciona esta representación) . Esto le brinda una representación numérica de la identificación del usuario, la cual puede o no ser numérica en sí misma.
· Use el número de hash como base para la asignación del fragmento. Si se conoce el número de fragmentos disponibles, entonces este puede obtenerse sencillamente mediante la división simple y anotar el residuo. Por ejemplo: 1. Dado un sistema con 8 fragmentos de base de 52-698 datos, y 2. El hash(userid) = 84529823 3. El número de fragmento de base de datos que posee estos registros de identificación de usuario podría ser 84529823 % 8 = 7 (la notación "a % b" aquí se refiere a realizar la división "a/b" y después recuperar el resto del cálculo ) 4. En este caso, el fragmento de base de datos será el fragmento 7 Además del algoritmo de fragmentación, se requiere otro mecanismo dentro del sistema para determinar cómo los servidores de Registro (106a, 106b, 106c) llegarán a un fragmento dado. Pueden configurarse diferentes mecanismos para operaciones de lectura y escritura para ajustarse a la réplica de la base de datos en una configuración amo-esclavo (donde únicamente puede escribirse a un servidor físico, pero puede accederse a varios servidores para operaciones de lectura) .
Este mecanismo para ubicar fragmentos puede implementarse mediante tablas de configuración sencillas con los servidores de Registro (106a), en donde cada índice de fragmentos está configurado con las direcciones (IP) de los servidores que pueden actuar como nodos de base de datos para el fragmento dado. Estas direcciones pueden etiquetarse mediante banderas de "lectura" y/o "escritura" 52-698 de manera que un Registro sabrá dónde conectar dado el requisito de base de datos en cualquier momento dado.
Debe entenderse que las modalidades anteriores han sido provistas únicamente como ejemplos de esta invención, y que modificaciones y mejoras adicionales a las mismas, como seria evidente para personas expertas en el campo técnico relevante, se considera que caen dentro del alcance amplio y ámbito de la presente invención descrita en el presente documento. 52-698

Claims (21)

REIVINDICACIONES
1. Un sistema para enrutar mensajes en una red de comunicación que tiene un a pluralidad de nodos, cada nodo incluye una pluralidad de servidores conectados entre si en donde al recibir un paquete para entrega a un destinatario pretendido por un primer servidor dentro de la pluralidad de servidores de un primer nodo dentro de la pluralidad de nodos, tal sistema está adaptado para: determinar si el destinatario pretendido está conectado al primer servidor y si el destinatario está conectado al primer servidor, entregar el paquete; tal sistema además está adaptado para, al determinar que el destinatario pretendido no está conectado al primer servidor, determinar si el paquete contiene una dirección de destino y reenviar el paquete a la dirección de destino para entrega, y en caso de que el paquete no contenga una dirección de destino, el sistema reenvía el paquete a un registro, en donde el registro está adaptado para: consultar por lo menos una base de datos para obtener el perfil de usuario de los destinatarios pretendidos; y reenviar el paquete al destinatario pretendido con base en la información contenida en el perfil de usuario .
2. El sistema según la reivindicación 1, en 52-698 donde el sistema está adaptado adicionalmente para determinar si el destinatario pretendido está conectado a un servidor dentro de la pluralidad de servidores del primer nodo y entregar el paquete al servidor al cual está conectado el destinatario pretendido dentro del primer nodo antes de determinar si el paquete contiene una dirección de destino
3. El sistema de cualquier reivindicación 1 en donde el primer servidor de la pluralidad de servidores está adaptado para limpiar la información de enrutamiento en el paquete al reenviar el paquete al destino deseado.
4. El sistema de cualquiera de las reivindicaciones 1 a 3 en donde el registro incluye una pluralidad de servidores conectados entre si.
5. El sistema según cualquiera de las reivindicaciones 1 a 4 en donde la pluralidad de servidores de cada nodo se distribuyen a través de varias ubicaciones geográficas dentro del área de servicio de cada nodo.
6. El sistema según cualquiera de las reivindicaciones precedentes en donde el perfil del usuario contiene información acerca de la última ubicación conocida del destinatario pretendido dentro de la red de comunicaciones y el paquete se reenvía a la última ubicación conocida del destinatario pretendido.
7. El sistema de cualquiera de las reivindicaciones precedentes en donde el paquete se selecciona entre por lo menos una de las siguientes clases de paquetes: paquetes de mensaje, paquetes de información o paquetes de presencia.
8. El sistema según la reivindicación 7 en donde el sistema está configurado para procesar cada paquete de acuerdo con un conjunto de reglas predeterminadas para cada clase en respuesta a la falla del registro al obtener el perfil de usuario del destinatario pretendido .
9. El sistema según la reivindicación 8 en donde el sistema está configurado para reenviar paquetes de mensaje al destinatario pretendido a través de un medio alterno especificado en el perfil de usuario.
10. El sistema según la reivindicación 9 en donde el medio alterno es un SMS.
11. El sistema según la reivindicación 8, en donde el sistema está configurado para enviar un mensaje de error a la fuente del paquete para paquetes asignados a la clase de paquete de información.
12. El sistema según la reivindicación 8 en donde el sistema está configurado para descartar paquetes asignados a la clase de paquete de presencia.
13. Un método para enrutar mensajes en un sistema de comunicación que tiene una pluralidad de nodos, cada nodo incluye una pluralidad de servidores acoplados entre si, tal método incluye: recibir en un primer servidor dentro de una pluralidad de nodos un paquete para un destinatario pretendido; determinar si el destinatario pretendido está conectado al primer servidor y si el destinatario pretendido está conectado al primer servidor, entregar el paquete al destinatario pretendido; determinar si el paquete contiene una dirección de destino y reenviar el paquete a la dirección de destino para entregar al determinar que el destinatario pretendido no está conectado al primer servidor; reenviar el paquete a un registro en respuesta a determinar que el paquete no contiene una dirección de destino en donde el registro está configurado para consultar por lo menos una base de datos para obtener el perfil de usuario del destinatario pretendido: y reenviar el paquete al destinatario pretendido con base en la información contenida en el perfil de usuario .
14. El método según la reivindicación 13, el cual además incluye el paso de limpiar la dirección de destino en el paquete al reenviar el paquete a la dirección de destino.
15. El método según la reivindicación 13 ó 14, en donde el paso de reenviar el paquete mediante el registro al destinatario o destinatarios pretendidos se basa en información respecto a si la última dirección conocida del destinatario pretendido dentro de la red de comunicaciones está contenida dentro del perfil de usuario del destinatario pretendido.
16. El método según cualquiera de las reivindicaciones 13 a 15, en donde el paquete se selecciona entre por lo menos una de las siguientes clases de paquetes: paquetes de mensaje, paquetes de información o paquetes de presencia.
17. El método según la reivindicación 16 el cual además incluye el paso de procesar cada una de las clases de paquetes de acuerdo con un conjunto de reglas predeterminado para cada clase en respuesta a que el registro falle al obtener el perfil de usuario del destinatario pretendido.
18. El método según la reivindicación 17 en donde el paso de reenviar un paquete asignado a la clase de paquetes de mensaje al destinatario pretendido a través de un medio especificado en el perfil de usuario.
19. El método según la reivindicación 18 en donde el medio alternativo es un Servicio de Mensajes Cortos (SMS) . 52-698
20. El método según la reivindicación 18 el cual además incluye el paso de enviar un mensaje de error a la fuente del paquete para paquetes asignados a la clase de paquetes de información.
21. El método según la reivindicación 18 el cual además incluye el paso de descartar paquetes asignados a la clase de paquetes de presencia. 52-698
MX2011001608A 2008-08-13 2009-07-29 Plataforma para enrutamiento de mensajes. MX2011001608A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG200805997-4A SG159399A1 (en) 2008-08-13 2008-08-13 Message routing platform
PCT/SG2009/000266 WO2010019105A1 (en) 2008-08-13 2009-07-29 Message routing platform

Publications (1)

Publication Number Publication Date
MX2011001608A true MX2011001608A (es) 2011-04-07

Family

ID=41669090

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2011001608A MX2011001608A (es) 2008-08-13 2009-07-29 Plataforma para enrutamiento de mensajes.

Country Status (18)

Country Link
US (1) US8798001B2 (es)
EP (1) EP2316205B1 (es)
JP (1) JP5441041B2 (es)
KR (1) KR101384794B1 (es)
CN (1) CN102124702B (es)
AU (1) AU2009282526B2 (es)
CA (1) CA2734048C (es)
CO (1) CO6351836A2 (es)
ES (1) ES2567272T3 (es)
HK (1) HK1157966A1 (es)
MX (1) MX2011001608A (es)
MY (1) MY161672A (es)
RU (1) RU2483457C2 (es)
SG (1) SG159399A1 (es)
TW (1) TWI466502B (es)
UA (1) UA100582C2 (es)
WO (1) WO2010019105A1 (es)
ZA (1) ZA201100748B (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110252083A1 (en) * 2010-04-13 2011-10-13 Rebelvox, Llc Apparatus and method for transmitting media using either network efficient protocol or a loss tolerant transmission protocol
US8924472B1 (en) 2011-08-20 2014-12-30 Datastax, Inc. Embedding application services in a distributed datastore
US10354310B2 (en) * 2013-05-10 2019-07-16 Dell Products L.P. Mobile application enabling product discovery and obtaining feedback from network
EP2887589A1 (en) * 2013-12-20 2015-06-24 Rovio Entertainment Ltd Stateless message routing
US10523619B2 (en) 2013-12-20 2019-12-31 Rovio Entertainment Ltd. Stateless message routing
US9560315B1 (en) * 2015-12-07 2017-01-31 Dell Software, Inc. Reducing videoconferencing bandwidth usage

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006272A (en) * 1998-02-23 1999-12-21 Lucent Technologies Inc. Method for network address translation
US6452915B1 (en) * 1998-07-10 2002-09-17 Malibu Networks, Inc. IP-flow classification in a wireless point to multi-point (PTMP) transmission system
US8085813B2 (en) 1999-10-28 2011-12-27 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US7102996B1 (en) * 2001-05-24 2006-09-05 F5 Networks, Inc. Method and system for scaling network traffic managers
JP3664388B2 (ja) * 2001-11-22 2005-06-22 エヌイーシーシステムテクノロジー株式会社 双方向通信システムおよび方法
ATE384387T1 (de) * 2001-12-28 2008-02-15 Motorola Inc Kommunikation über einen ausgewählten teil eines netzwerkes
US7535913B2 (en) * 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
US7050416B2 (en) * 2002-05-14 2006-05-23 Thomson Licensing Technique for IP communication among wireless devices
JP2003333178A (ja) * 2002-05-15 2003-11-21 Takeshi Aoki 一般電話機によるインターネット電話システム
EP1582036B1 (de) * 2003-01-09 2006-08-02 Siemens Aktiengesellschaft VERFAHREN UND mOBILFUNKTELEKOMMUNIKATIONSNETZ ZUR ÜBERTRAGUNG VON PAKETDATEN
KR20040070557A (ko) * 2003-02-04 2004-08-11 주식회사 케이티프리텔 이동통신 시스템에서 메시지 전송 방법 및 장치
JP2005080176A (ja) * 2003-09-03 2005-03-24 Uniden Corp ゲートウェイ装置及びその制御方法
CN100454882C (zh) * 2003-12-19 2009-01-21 华为技术有限公司 多isp局域网的出口选择方法及装置
US7181217B2 (en) * 2004-08-30 2007-02-20 Talara Systems, Inc. Mobile services control platform providing a message forwarding service
US7426389B2 (en) * 2004-10-15 2008-09-16 Utstarcom, Inc. Method and apparatus for implementing direct routing
CN101480021B (zh) * 2005-03-29 2013-02-13 捷讯研究有限公司 用于个人识别号码消息收发的中继站及方法
US7496678B2 (en) * 2005-05-11 2009-02-24 Netapp, Inc. Method and system for unified caching of media content
US7567553B2 (en) * 2005-06-10 2009-07-28 Swift Creek Systems, Llc Method, system, and data structure for providing a general request/response messaging protocol using a presence protocol
KR100727069B1 (ko) * 2005-10-27 2007-06-12 주식회사 케이티프리텔 Sip 기반의 무선 패킷 교환망 시스템에서의 타망 연동방법 및 그 시스템
US7673010B2 (en) * 2006-01-27 2010-03-02 Broadcom Corporation Multi user client terminals operable to support network communications
US7996467B2 (en) * 2006-08-29 2011-08-09 Oracle International Corporation Techniques for applying policies for real time collaboration
GB0623621D0 (en) * 2006-11-27 2007-01-03 Skype Ltd Communication system
US8782274B2 (en) * 2007-10-19 2014-07-15 Voxer Ip Llc Method and system for progressively transmitting a voice message from sender to recipients across a distributed services communication network
US8594679B2 (en) * 2008-03-07 2013-11-26 Tekelec Global, Inc. Methods, systems, and computer readable media for routing a message service message through a communications network
US8149840B2 (en) * 2008-06-02 2012-04-03 Huawei Technologies Co., Ltd. Method, system and processor for processing network address translation service

Also Published As

Publication number Publication date
JP2011530953A (ja) 2011-12-22
WO2010019105A1 (en) 2010-02-18
KR20110044273A (ko) 2011-04-28
TWI466502B (zh) 2014-12-21
HK1157966A1 (en) 2012-07-06
UA100582C2 (uk) 2013-01-10
MY161672A (en) 2017-05-15
CA2734048A1 (en) 2010-02-18
SG159399A1 (en) 2010-03-30
RU2011104073A (ru) 2012-09-20
EP2316205A4 (en) 2013-09-11
US20120002601A1 (en) 2012-01-05
CN102124702B (zh) 2014-04-09
ES2567272T3 (es) 2016-04-21
ZA201100748B (en) 2012-05-01
AU2009282526B2 (en) 2014-08-14
CN102124702A (zh) 2011-07-13
JP5441041B2 (ja) 2014-03-12
US8798001B2 (en) 2014-08-05
CO6351836A2 (es) 2011-12-20
KR101384794B1 (ko) 2014-04-24
AU2009282526A1 (en) 2010-02-18
TW201025943A (en) 2010-07-01
CA2734048C (en) 2015-10-13
EP2316205B1 (en) 2016-01-06
RU2483457C2 (ru) 2013-05-27
EP2316205A1 (en) 2011-05-04

Similar Documents

Publication Publication Date Title
Carzaniga et al. Content-based publish/subscribe networking and information-centric networking
KR101337039B1 (ko) 통신 네트워크 내의 패킷을 라우팅하는 방법 및 통신 네트워크 내의 패킷을 라우팅하기 위한 네트워크 노드
JP5624331B2 (ja) コンピュータ実施方法
US20160087881A1 (en) Method, apparatus, and system for routing and forwarding
US7684421B2 (en) Information routing in a distributed environment
KR20170037818A (ko) 작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹
WO2011150830A1 (zh) 获取内容的方法、节点及内容网络
US8798001B2 (en) Message routing platform
US8539041B2 (en) Method, apparatus, and network system for acquiring content
US9848059B2 (en) Content handling method, apparatus, and system
JP2001103092A (ja) Dns問い合わせ装置、dns問い合わせ方法、および記録媒体
Jin et al. Content routing and lookup schemes using global bloom filter for content-delivery-as-a-service
CN112787926A (zh) 用于对兴趣包进行分段路由的装置、方法和系统
CN109495525B (zh) 网络组件、解析内容标识的方法和计算机可读存储介质
JP5379800B2 (ja) インスタントメッセージシステム内においてユーザ情報を管理するための方法およびシステム
Mezo et al. HMail: A hybrid mailing system based on the collaboration between traditional and Peer-to-Peer mailing architectures
Chen et al. Improving the Video Data Lookup Efficiency in Peer-to-Peer Live Streaming Network
Nguyen et al. A Proposed Architecture for the Realization and Management of an Information-Centric Network

Legal Events

Date Code Title Description
FG Grant or registration