ES2258800T3 - Sistema de computacion distribuido y metodo para distribuir peticiones de usuario a servidores de red duplicados. - Google Patents

Sistema de computacion distribuido y metodo para distribuir peticiones de usuario a servidores de red duplicados.

Info

Publication number
ES2258800T3
ES2258800T3 ES97953118T ES97953118T ES2258800T3 ES 2258800 T3 ES2258800 T3 ES 2258800T3 ES 97953118 T ES97953118 T ES 97953118T ES 97953118 T ES97953118 T ES 97953118T ES 2258800 T3 ES2258800 T3 ES 2258800T3
Authority
ES
Spain
Prior art keywords
servers
server
content
network
select
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.)
Expired - Lifetime
Application number
ES97953118T
Other languages
English (en)
Inventor
Rodney Lance Joffe
Jason Alan Brittain
Brian Everett Pettingell
Ian Burke Vandeventer
Steven Michael Hotz
Barry A. Dykes
Victor Joseph Ii Oppelman
James Joseph Lippard
Brett Dean Watson
Nils Herbert Mccarthy
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.)
Verizon Corporate Services Group Inc
Genuity Inc
Original Assignee
Verizon Corporate Services Group Inc
Genuity Inc
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 Verizon Corporate Services Group Inc, Genuity Inc filed Critical Verizon Corporate Services Group Inc
Application granted granted Critical
Publication of ES2258800T3 publication Critical patent/ES2258800T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)
  • Hardware Redundancy (AREA)

Abstract

Un sistema para encamina solicitudes de objetos de datos desde una pluralidad de clientes por una red (200) basado en una directriz sobre los estados de red, comprendiendo: una pluralidad de encaminadores (222, 224, 226, 228); una pluralidad de servidores de contenido (232, 234, 236, 238) para servir los objetos de datos solicitados por los clientes; una pluralidad de servidores de extremo frontal (212, 214, 216, 218) para recibir las solicitudes de objetos de datos desde los clientes y encaminar las solicitudes de objetos de datos a los servidores de contenido (232, 234, 236, 238) por vía de la red (200); un director (250) para monitorizar periódicamente los estados de red y para identificar combinaciones de los servidores de contenido (232, 234, 236, 238) y los encaminadores (222, 224, 226, 228) como aspirantes a solicitudes de objetos de datos particulares de servicio, con el director (250) seleccionando unos de los aspirantes basado en los estados monitorizados de red y notificando a los servidores de extremo frontal (212, 214, 216, 218) para encaminar las solicitudes de objetos de datos particulares a los servidores de contenido de los aspirantes seleccionados; en el que los estados de red incluyen información sobre un tiempo para recorrer un trayecto por la red a cada uno de los servidores de contenido (232, 234, 236, 238), seleccionando el director (250) los aspirantes que tiene los servidores de contenido con un trayecto que puede ser recorrido en una cantidad mínima de tiempo; en el que el tiempo para recorrer el trayecto es determinado por una respuesta de eco ICMP.

Description

Sistema de computación distribuido y método para distribuir peticiones de usuario a servidores de red duplicados.
Antecedentes de la invención
La presente invención se refiere generalmente al campo de sistemas de ordenadores distribuidos y, más específicamente, a sistemas y métodos informáticos para asignar solicitudes a uno de una multiplicidad de servidores de red basados en criterios óptimos tales como la velocidad de red fundamental.
El crecimiento explosivo de la World Wide Web (WWW) necesita poca introducción. No solo los miembros de la comunidad técnica están hallando un número cada vez mayor de recursos técnicos e informativos disponibles en la WWW sino también la mayoría de las personas están hallando restaurantes favoritos, marcas de coches e iglesias que ostentan sitios Web nuevos. La popularidad de la World Wide Web (WWW) como un medio de comunicación está basada en la riqueza de su contenido de información y la facilidad de uso. La información en este medio existe como objetos en una colección distribuida ampliamente de servidores interconectados por redes, siendo cada objeto unívocamente direccionable por su propio localizador uniforme de recursos (URL: uniform resource locator). Desde su comienzo, la WWW ha conseguido una importancia global en la vida y el comercio cotidianos.
No obstante, este crecimiento explosivo no ha sido conseguido sin dificultad. La proliferación de aplicaciones comerciales trae consigo un número siempre creciente de usuarios que efectúan números siempre creciente de preguntas. Los problemas de limitaciones de anchura de banda y latencia se manifiestan en retardo, información perdida y los clientes consternados.
Los arquitectos de red responden usando un conjunto de soluciones. Muchas respuestas caen dentro de la categoría de soluciones basadas en suministrar más potencia de computación. Esto puede abarcar alternativas tales como software de servidor Web, hardware de servidor Web o plataforma diferentes, aumentos en memoria RAM de acceso aleatorio o UCP (unidad central de procesamiento) en el servidor, reescrituras de aplicaciones, o aumentar la anchura de banda de red mejorando el hardware. Otra clase de soluciones implica usar servidores múltiples o situar servidores estratégicamente. Un método en esta clase es situar el servidor en el proveedor de servicios de Internet. Seleccionando un proveedor de servicios con un capacidad óptima de emparejamiento, colocar el servidor en el sitio de proveedor de servicios puede producir una conexión mucho mejor con el resto de Internet. Otro método es el uso de servidores distribuidos. Situar servidores de contenido idénticos en lugares estratégicos alrededor del mundo, por ejemplo, uno en Nueva York, uno en San Francisco y uno en Londres. Esto distribuye la carga en servidores múltiples y mantiene el tráfico más próximo al solicitante. Otro método es agrupar servidores. El agrupamiento permite compartir conjuntos de unidades de discos duros entre servidores múltiples. Otro método es la granja de servidores. Esto supone el uso de servidores Web múltiples con contenido idéntico o la segmentación basada en la funcionalidad. Por ejemplo, dos servidores para funciones Web, dos para FTP (File Transfer Protocol = Protocolo de Transferencia de Archivos), dos como una base de datos, etc. Una variación en la granja de servidores es la granja de servidores distribuidos. Esta coloca las granjas de servidores en lugares estratégicos, combinando esencialmente la granja de servidores con el método de servidores distribuidos.
Los métodos de servidores múltiples y distribuidos resuelven un problema a costa de crear otro. Si hay servidores múltiples, ¿cómo localiza tu emplazamiento el usuario final?. Actualmente, nombres y localizadores uniformes de recursos (URLs: Uniform Resource Locators) son separados en direcciones aisladas únicas por un servicio de nombres de dominios (DNS: domain name service). Los servidores de servicio de nombres de dominios mantienen una lista de nombres de dominios con referencias cruzadas a direcciones individuales IP (Internet Protocolo). Sin embargo, si son usados servidores Web múltiples o granjas de servidores, el sistema de servicio de nombres de dominios debe ser modificado. Una aproximación común a este problema es modificar el sistema de servicio de nombres de dominios a una correspondencia de uno con muchos de nombres con direcciones IP. Así, el servicio de nombres de dominios devolverá una lista de direcciones IP para cualquier objeto Web particular. Entonces, estas pueden ser distribuidas a los diversos clientes en una forma de asignación cíclica secuencial. Sin embargo, hay varios inconvenientes en este método. El paradigma de asignación cíclica secuencial devuelve direcciones IP en un orden estricto con poca consideración a la situación del solicitante o del servidor. El esquema no conoce la carga o la arquitectura de servidor. La selección progresa simplemente por una lista sencilla. Un servidor puede recibir a todos los usuarios con servicio intenso. Adicionalmente, el enlace más débil determina el comportamiento funcional global, así que las plataformas de servidores precisan ser mantenidas en paridad relativamente. Otro problema es que el servicio de nombres de dominios devuelve simplemente direcciones IP sin considerar si está en funcionamiento el servidor al que corresponde la dirección. Por consiguiente, si ocurre que uno de los servidores de asignación cíclica secuencial está fuera de línea para mantenimiento, el servicio de nombres de dominios continúa distribuyendo la dirección, y los usuarios potenciales continúan recibiendo respuestas de errores de período de espera. Así, la modificación de asignación cíclica secuencial de servicio de nombres de dominios efectúa un intento amplio para resolver el problema de servidores distribuidos. Sin embargo, no se consideran cuestiones de tráfico de red, equilibrio reducido entre servidores ni
fiabilidad.
Varios productos en el mercado pretenden aplicarse a estos problemas pero todos estos esfuerzos anteriores sufren el inconveniente de que requieren que el entorno de software de usuarios sea modificado para facilitar la selección de servidores reproducidos. Un esquema que requiere modificaciones de software de usuarios es menos deseable debido a los problemas prácticos de asegurar la distribución extendida de software. En el mejor de los casos, tales esquemas son útiles como técnicas de optimización.
Una clase tal de métodos son los que confían en la selección explícita de usuario para asignar una solicitud de usuario a un servidor. La aplicación de usuario puede incluir pasos adicionales que requieren que el usuario tenga conocimiento, sofisticación y paciencia suficientes para efectuar su propia selección de servidor. Tales esquemas no siempre son deseables por un número de razones.
Una técnica basada en el encaminamiento selectivo de ordenador anfitrión (host) usa servidores reproducidos múltiples, todos con la misma dirección de red, situados en puntos diferentes en la topología de red. Un encaminador asociado con cada servidor capta el tráfico entrante de red a la dirección compartida de servidores y expide el tráfico al servidor específico. Esta técnica solo puede distribuir estáticamente la carga de solicitudes de clientes al servidor próximo, sin considerar la carga de servidor ni otras características de red.
La implementación BIND (VINCULAR) del servidor de sistema de nombres de dominios puede incluir técnicas para vincular nombres de servidores con direcciones diferentes de red, donde una de un conjunto de direcciones múltiples diferentes es asignada secuencial o aleatoriamente. Los proveedores de servicios asignan una dirección diferente a cada servidor reproducido, y BIND (VINCULAR) dirige solicitudes de usuarios a los servidores alternativos. Esta técnica solo puede distribuir estáticamente la carga de solicitudes de clientes a un servidor arbitrario, sin considerar la carga de servidor ni otras características de red.
SONAR es un protocolo emergente de IETF (Internet Engineering Task Force) para distribuir características de red, en particular para proximidad topológica. SONAR incluye un formato de datos para representar solicitudes y respuestas de consultas pero no especifica un mecanismo para determinar las características de red.
El Director Local Cisco es un producto que funciona como un multiplexor de tráfico de red que se asienta enfrente de servidores locales múltiples, y distribuye conexiones nuevas de transporte a cada servidor basado en la cantidad de tráfico que circula a los servidores. Este producto no considera características de red en su decisión, y requiere además que los servidores reproducidos sean colocados. Cisco Systems es una empresa que tiene su cuartel general en San José, California.
El Director Distribuido Cisco reenvía las solicitudes de usuarios a servidores topológicamente distantes basado en información obtenida de protocolos de encaminamiento de red. El Director Distribuido intercepta las solicitudes entrantes del servicio de nombres de dominios o las solicitudes entrantes de HTTP (Hypertext Transfer Protocol) y proporciona la respuesta apropiada para reenvío. Este producto no considera la carga de servidor y solo considera el conjunto restringido de información obtenible de protocolos de encaminamiento; esta información también es limitada en precisión por las técnicas de agregación requeridas para permitir el encaminamiento cambiable en escala de Internet.
El documento EP-A-0 648 038 describe un sistema de procesamiento de datos para facilitar una conexión de un programa en un ordenador de cliente con ordenadores de servidores con recursos compartidos. Todos estos componentes
residen en una red lógica. Lógica de decisión es usada para estudiar el ordenador de servidor a intervalos usando cri-
terios de ensayos específicos. Esto significa que solo los ordenadores de servidores son monitorizados y no toda la red.
El documento US-A-5 452 294 describe una red de comunicación que tiene rutas múltiples disponibles. La selección adaptable de ruta es usada para hallar la ruta óptima entre un nodo de origen y un nodo de destino monitorizando las variables de estado de enlaces.
Aunque estos productos, tomados conjuntamente, consideran las características de red y carga de servidor, no efectúan una selección integrada de servidor. No obstante, a pesar de todos estos esfuerzos, la crítica de los eruditos todavía parece verdadera, todavía es la "espera mundial" ("world wide wait"). Por esta razón, lo que se precisa es un sistema que seleccione automáticamente un servidor apropiado del que recuperar un objeto de datos para un usuario basado en la solicitud de usuario, y las capacidades y la topología de la red fundamental.
Sumario de la invención
La presente invención proporciona la capacidad de asignar solicitudes de objetos de datos efectuadas por clientes entre servidores de red múltiples. La invención proporciona un sistema y métodos informáticos distribuidos para asignar solicitudes de usuarios a servidores reproducidos contenidos por el sistema informático distribuidos de una manera que intenta satisfacer los objetivos de una directriz particular de encaminamiento. Las directrices pueden incluir minimizar la cantidad de tiempo para que la solicitud sea completada. Por ejemplo, un sistema según la invención puede ser configurado para servir objetos de datos a usuarios según el trayecto más corto disponible de red.
Específicamente, la invención proporciona un sistema para encaminar solicitudes de objetos de datos procedentes de cualquier número de clientes, basado en una directriz de encaminamiento de "servidor óptimo", a uno de servidores de contenido múltiples. Los servidores de contenido sirven objetos de datos en respuesta a solicitudes de clientes por vía de uno o más puntos de acceso a la red, de acuerdo con la decisión de un director. Basado en la directriz de encaminamiento, el director determina el encaminamiento de dichas solicitudes de objetos de datos a un servidor particular de contenido.
De acuerdo con un aspecto particular de la invención, las directrices de encaminamiento pueden comprender cualesquiera de los siguientes, una combinación de cualesquiera de los siguientes o ninguno de los siguientes: 1) el número mínimo de conexiones TCP (Transmission Control Protocol) abiertas, 2) la memoria RAM de acceso aleatorio libre más disponible, 3) la memoria SWAP (INTERCAMBIO) libre más disponible (memoria virtual), 4) la cantidad máxima de tiempo inactivo de unidad central de procesamiento (UCP), 5) la ruta ICMP (Internet Control Message Protocolo) más rápida a la máquina de cliente.
Ventajas de los métodos según la invención son la tolerancia incrementada de averías producidas en el hardware fundamental y la fiabilidad respecto a los servidores Web de técnica anterior. La invención será comprendida mejor por referencia a la descripción detallada siguiente y sus dibujos adjuntos.
Descripción breve de los dibujos
La Figura 1A representa una relación cliente-servidor representativa de acuerdo con una realización particular de la invención;
la Figura 1B representa una perspectiva funcional de la relación cliente-servidor representativa de acuerdo con una realización particular de la invención;
la Figura 1C representa un entorno representativo de interconexión de redes de acuerdo con una realización particular de la invención;
la Figura 1D representa un diagrama de relación de las capas del paquete integrado de protocolo TCP/IP (Transmission Control Protocol/Internet Protocol);
la Figura 2A representa un entorno informático distribuido de acuerdo con una realización particular de la invención;
la Figura 2B representa un entorno informático distribuido de acuerdo con una realización alternativa de la invención;
La Figura 3A representa la relación de procesos de acuerdo con una realización representativa de la invención;
la Figura 3B representa la relación de procesos de acuerdo con una realización alternativa de la invención;
la Figura 3C representa la relación de procesos de acuerdo con una realización preferible de la invención;
la Figura 4A representa pasos de proceso de acuerdo con una realización particular de la invención;
la Figura 4B representa pasos de proceso de acuerdo con una realización alternativa de la invención;
la Figura 4C representa pasos de proceso de acuerdo con una realización preferible de la invención; y
las Figuras 5A a 5C representan organigramas del proceso de optimización dentro de un componente de director según una realización particular de la invención.
Descripción de las realizaciones específicas 1.0 Introducción
Una realización preferible de un sistema equilibrador de cargas de servidores según la invención ha sido reducida a la práctica y será hecha disponible con el nombre comercial "HOPSCOTCH^{TM}".
Es indicada una palabra sobre nomenclatura. Los sistemas según la presente invención comprenden una multiplicidad de procesos que pueden existir en realizaciones alternativas en cualquiera de una multiplicidad de ordenadores en un entorno de red distribuida o como procesos concurrentes que se ejecutan en máquinas virtuales o espacios de direcciones en el mismo ordenador. Para limitar el crecimiento exponencial de nombres, las convenciones siguientes han sido empleadas para mejorar la legilibilidad. Las desviaciones individuales serán observadas donde ocurran. Un "servidor xyz" es un ordenador o máquina virtual que aloja una colección de procesos que constituyen xyz. Un "componente xyz" es una colección de procesos que realizan un conjunto de funciones designadas colectivamente como xyz. Un "xyz" es el conjunto de funciones que son realizadas por el componente xyz en la máquina xyz.
1.1 Visión general de hardware
El sistema informático distribuido para equilibrar las cargas de servidores (el "sistema") de la presente invención es implementado en el lenguaje de programación Perl (Practical Extraction and Report Language) y es capaz de funcionar en un sistema de ordenadores tal como se muestra en la Figura 1A. Esta invención puede ser implementada en un entorno de cliente-servidor, pero un entorno de cliente-servidor no es esencial. La Figura 1A muestra un sistema convencional de ordenadores de cliente-servidor que incluye un servidor 20 y numerosos clientes, uno de los cuales es mostrado como cliente 25. El uso del término "servidor" es usado en el contexto de la invención, en el que el servidor recibe consultas de clientes (típicamente remotos), efectúa sustancialmente todo el procesamiento necesario para formular respuestas a las consultas, y proporciona estas respuestas a los clientes. Sin embargo, el servidor 20 puede actuar por sí mismo en la capacidad de un cliente cuando accede a bases de datos remotas situadas en otro nodo que actúa como un servidor de bases de datos.
Las configuraciones de hardware son estándares en general y serán descritas solo brevemente. De acuerdo con la práctica conocida, el servidor 20 incluye uno o más procesadores 30 que comunican con un número de dispositivos periféricos por vía de un subsistema 32 de bus. Estos dispositivos periféricos incluyen típicamente un subsistema 35 de almacenamiento, compuesto por el subsistema 35a de memoria y el subsistema 35b de almacenamiento de archivos, que contiene programas de ordenador (por ejemplo, código o instrucciones) y datos, conjunto de dispositivos 37 de entrada y salida de interfaz de usuario y una interfaz con redes exteriores, que pueden emplear Ethernet, red en anillo con testigo (Token Ring), ATM (Asynchronous Transfer Mode = Modo de Transferencia Asíncrona), IEEE 802.3, ITU X.25, SLIP (Serial Link Internet Protocolo = Protocolo Internet de Enlace en Serie) o la red telefónico conmutada pública. Esta interfaz es mostrada esquemáticamente en un bloque 40 de "interfaz de red". Está acoplada a dispositivos de interfaz correspondientes en ordenadores de clientes por vía de una conexión 45 de red.
El cliente 25 tiene la misma configuración general aunque típicamente con menos capacidad de almacenamiento y procesamiento. Así, mientras el ordenador de cliente podría ser un terminal o un ordenador personal de gama baja, el ordenador de servidor es generalmente un puesto de trabajo o macroordenador de gama alta, tal como un servidor SUN SPARC^{TM}. Elementos y subsistemas correspondientes en el ordenador de cliente son mostrados con números de referencia correspondientes pero con apóstrofos.
Los dispositivos de entrada de interfaz de usuario incluyen típicamente un teclado y pueden incluir además un dispositivo apuntador y un escáner. El dispositivo apuntador puede ser un dispositivo apuntador indirecto tal como un ratón, bola de seguimiento, tablilla táctil o tableta gráfica, o un dispositivo apuntador directo tal como una pantalla táctil incluida en la presentación visual. También son posibles otros tipos de sistemas de entrada de interfaz de usuario tales como sistemas de reconocimiento de voz.
Los dispositivos de salida de interfaz de usuario incluyen típicamente una impresora y un subsistema de presentación visual que incluye un controlador de presentación visual y un dispositivo de presentación visual acoplado al controlador. El dispositivo de presentación visual puede ser un tubo de rayos catódicos, un dispositivo de panel plano tal como una pantalla de cristal líquido, o un dispositivo de proyección. El controlador de presentación visual proporciona señales de control al dispositivo de presentación visual e incluye normalmente una memoria de presentación visual para almacenar los píxeles que aparecen en el dispositivo de presentación visual. El subsistema de presentación visual también puede proporcionar presentación no visual tal como salida de audio.
El subsistema de memoria incluye típicamente un número de memorias incluyendo una memoria de acceso aleatorio (RAM) principal, para almacenamiento de instrucciones y datos durante la ejecución de programa, y una memoria de solo lectura (ROM) en la que son almacenadas instrucciones fijas. En el caso de ordenadores personales compatibles con Macintosh, la memoria ROM incluiría porciones del sistema operativo, en el caso de ordenadores personales compatibles con IBM, esta incluiría el sistema básico de entrada/salida (BIOS: Basic input/output
system).
El subsistema de almacenamiento de archivos proporciona almacenamiento permanente (no volátil) para archivos de datos y programa, e incluye típicamente al menos una unidad de disco duro y al menos una unidad de disco flexible (con soportes separables asociados). También puede haber otros dispositivos tales como una unidad de CD-ROM y unidades ópticas (todas con sus soportes separables asociados). Adicionalmente, el sistema de ordenadores puede incluir unidades del tipo con cartuchos de soportes separables. Por ejemplo, los cartuchos de soportes separables pueden ser cartuchos de disco duro, tales como los comercializados por Syquest y otros, y cartuchos de disco flexible tales como los comercializados por Iomega. Una o más de las unidades pueden ser situadas en una posición remota, tal como en un servidor en una red de área local o en sitio de la World Wide Web (WWW) de Internet.
En este contexto, la expresión "subsistema de buses" es usada genéricamente a fin de incluir cualquier mecanismo para permitir que los diversos componentes y subsistemas comuniquen entre sí como se pretende. A excepción de los dispositivos de entrada y la presentación visual, los otros componentes no precisan estar en la misma ubicación física. Así, por ejemplo, porciones del sistema de almacenamiento de archivos podrían ser conectadas por vía de diversos medios de red de área local o red de área extensa, incluyendo líneas telefónicas. De modo similar, los dispositivos de entrada y la presentación visual no precisan estar en la misma ubicación que el procesador aunque se prevé que la presente invención será implementada más frecuentemente en el contexto de sistemas de ordenadores personales (PCS: personal computer system) y puestos de trabajo.
El subsistema 32 de buses es mostrado esquemáticamente como un solo bus pero un sistema típico tiene un número de buses tales como un bus local y uno o más buses de ampliación (por ejemplo, ADB (Apple Desktop Bus, SCSI (Small Computer System Interface, ISA (Industry Standard Architecture), EISA (Extended ISA), MEC (Micro Channel Architecture), NuBus, o PCI (Peripheral Component Interconnect)) y así como puertos en serie y en paralelo. Las conexiones de red son establecidas usualmente a través de un dispositivo tal como un adaptador de red en uno de estos buses de ampliación o un módem en un puerto en serie. El ordenador de cliente puede ser un sistema de sobremesa o un sistema portátil.
El usuario interacciona con el sistema usando dispositivos 37' de interfaz (o dispositivos 37 en un sistema autónomo). Por ejemplo, las consultas de cliente son introducidas por medio de un teclado, comunicadas al procesador 30' de cliente y desde allí a la interfaz 40' de red por el subsistema 32' de buses. La consulta es comunicada entonces al servidor 20 por vía de la conexión 45 de red. De modo similar, los resultados de la consulta son comunicados desde el servidor al cliente por vía de la conexión 45 de red para salida en uno de los dispositivos 37' (supóngase una presentación visual o una impresora), o pueden ser almacenados en el subsistema 35' de almacenamiento.
La Figura 1B es un esquema funcional del sistema de ordenadores de la Figura 1A. La Figura 1B representa un servidor 20 y un cliente representativo 25 de una multiplicidad de clientes que pueden interaccionar con el servidor 20 por vía de Internet 45 o cualquier otro método de comunicaciones. Los bloques a la derecha del servidor son indicativos de los componentes y funciones de procesamiento que ocurren en el almacenamiento de datos y programa de servidor indicado por el bloque 35a en la Figura 1A. Una "pila" 44 de TCP/IP (Transmission Control Protocol/Internet Protocol) funciona en conjunción con el sistema operativo 42 para comunicar con procesos por una red o conexión en serie que une el servidor 20 con Internet 45. El software 46 de servidor Web se ejecuta concurrente y cooperativamente con otros procesos en el servidor 20 para hacer que los objetos 50 y 51 de datos estén disponibles para los clientes solicitantes. Un guión 55 de CGI (Common Gateway Interface = Interfaz de Pasarela Común) permite que el servidor Web 46 actúe sobre la información procedente de clientes de usuarios, u otros procesos dentro del servidor 20. Las respuestas a las consultas de clientes pueden ser devueltas a los clientes en forma de salidas de un documento en HTML (Hypertext Markup Language = Lenguaje de Marcación de Hipertexto) que entonces son comunicadas por Internet 45 de vuelta al usuario.
El cliente 25 en la Figura 1B posee software que implementa procesos funcionales dispuestos operativamente en su almacenamiento de programa y datos como es indicado por el bloque 35a' en la Figura 1A. La pila 44' de TCP/IP funciona en conjunción con el sistema operativo 42' para comunicar con procesos por una red o conexión en serie que une el cliente 25 con Internet 45. El software que implementa la función de un explorador Web 46' se ejecuta concurrente y cooperativamente con otros procesos en el cliente 25 para efectuar solicitudes al servidor 20 de objetos 50 y 51 de datos. El usuario del cliente puede interaccionar por vía del explorador Web 46' para efectuar tales consultas al servidor 20 por vía de Internet 45 y observar las respuestas procedentes del servidor 20, por vía de Internet 45, en el explorador Web 46'.
1.2 Visión general de la red
La Figura 1C es ilustrativa de la interconexión por redes de una pluralidad de clientes, tales como el cliente 25 de las Figuras 1A y 1B, y una multiplicidad de servidores tales como el servidor 20 de las Figuras 1A y 1B como se describió antes en la presente. En la Figura 1C, una red 70 es un ejemplo de una red en anillo con testigo (Token Ring) o red orientada a cuadros. La red 70 enlaza un ordenador anfitrión 71, tal como un puesto de trabajo IBM RS 6000 RISC (Reduced Instruction Set Compunter) que puede estar ejecutando el sistema operativo AIX (Advanced Interactive Executive), con un ordenador anfitrión 72, que es un ordenador personal que puede estar ejecutando el sistema operativo Windows 95 o IBM OS/2 (o 1), y un ordenador anfitrión 73 que puede ser un ordenador IBM AS/400 que puede estar ejecutando el sistema operativo OS/400. La red 70 está interconectada con una red 60 por una pasarela del sistema que es representada aquí como el encaminador 75, pero que también puede ser una pasarela que tiene un cortafuegos o un puente de redes. La red 60 es un ejemplo de una red Ethernet que interconecta un ordenador anfitrión 61, que es un puesto de trabajo SPARC (Scalable Processor Architecture) que puede estar ejecutando el sistema operativo SUNOS, con un ordenador anfitrión 62 que puede ser un ordenador Digital Equipment VAX (Virtual Address Extensión) 600 que puede estar ejecutando el sistema operativo VMS (Virtual Memory System).
El encaminador 75 es un punto de acceso a red de la red 70 y la red 60. El encaminador 75 emplea un adaptador de red en anillo con testigo (Token Ring) y un adaptador de red Ethernet. Esto permite que el encaminador 75 interconecte con las dos redes heterogéneas. El encaminador 75 también está enterado de los protocolos de interconexión de redes, tales como ICMP (Internet Control Message Protocol), ARP (Adress Resolution Protocol) y RIP (Routing Information Protocol), que son descritos después.
La Figura 1D es ilustrativa de los constituyentes del paquete integrado de protocolos TCP/IP (Transmission Control Protocol/Internet Protocol). La capa base del paquete integrado de protocolos TCP/IP es la capa física 80 que define las normas mecánicas, eléctricas, funcionales y de procedimiento para la transmisión física de datos por medios de comunicaciones tales como, por ejemplo, la conexión 45 de red de la Figura 1A. La capa física puede comprender normas eléctricas, mecánicas o funcionales tales como si una red es de conmutación de paquetes o de conmutación de cuadros, o si una red está basada en CSMA/CD (Carrier Sense Multiple Access/Collision Detection = acceso múltiple por percepción de portadora con detección de colisión) o en un paradigma de retransmisión de cuadros.
La capa 82 de enlace de datos está superpuesta a la capa física. La capa de enlace de datos proporciona la función y los protocolos para transferir datos entre recursos de red y detectar los errores que pueden ocurrir en la capa física. Los modos operativos en la capa de enlace de datos comprenden topologías de red estandarizadas tales como IEEE 802.3 Ethernet, IEIEE 802.5 Token Ring (red en anillo con testigo), ITU X.25 o protocolos en serie (SLIP: Serial Link Internet Protocol = Protocolo de Internet de Enlace en Serie).
Los protocolos 84 de capa de red se superponen a la capa de enlace de datos y proporcionan los medios para establecer conexiones entre redes. Las normas de protocolos de capa de red proporcionan procedimientos de control de funcionamiento para interconectar comunicaciones por redes y encaminar información a través de redes heterogéneas múltiples. Ejemplos de protocolos de capa de red son el Internet Protocolo (IP) y el Internet Control Message Protocol (ICMP). El Address Resolution Protocol (ARP) es usado para correlacionar una dirección de Internet y un Media Access Control (MAC) de un ordenador anfitrión particular. El Routing Information Protocol (RIP) es un protocolo de encaminamiento dinámico para pasar información de encaminamiento entre ordenadores anfitriones en redes. El Internet Control Message Protocol (ICMP) es un protocolo interno para pasar mensajes de control entre ordenadores anfitriones en diversas redes. Los mensajes ICMP proporcionan realimentación sobre sucesos en el entorno de red o pueden ayudar a determinar si existe un trayecto a un ordenador anfitrión particular en el entorno de red. Este último es denominado un "ping" (packet Internet groper). El Internet Protocol (IP) proporciona el mecanismo básico para encaminar paquetes de información en Internet. IP es un protocolo de comunicación no fiable. Proporciona un servicio de suministro de "esfuerzos óptimos" y no compromete recursos de red a una transacción particular, ni realiza retransmisiones ni proporciona acuses de recibo.
Los protocolos 86 de capa de transporte proporcionan servicio de transporte de extremo a extremo a través de redes heterogéneas múltiples. El User Datagram Protocol (UDP) proporciona un servicio sin conexión, orientado a datagramas que proporciona un mecanismo de suministro no fiable para flujos de información. El Transmisión Control Protocol (TCP) proporciona un servicio fiable basado en sesiones para suministro de paquetes en secuencia de información a través de Internet. El TCP proporciona un mecanismo fiable orientado a conexiones para suministro de información.
La capa 88 de sesiones o aplicaciones proporciona una lista de aplicaciones y utilidades de red, unas pocas de las cuales son ilustradas aquí. Por ejemplo, el File Transfer Protocol (FTP) es un protocolo TCP/IP estándar para transferir archivos desde una máquina a otra. Los clientes FTP establecen sesiones a través de conexiones TCP con servidores FTP para obtener archivos. Telnet es un protocolo TCP/IP estándar para conexión de terminales remotos. Un cliente Telnet actúa como un emulador de terminal y establece una conexión usando TCP como el mecanismo de transporte con un servidor Telnet. El Simple Network Management Protocol (SNMP) es una norma para gestionar redes TCP/IP. Tareas SNMP, denominadas "agentes", monitorizan los parámetros de estatus de red y transmiten estos parámetros de estatus a tareas SNMP denominadas "gestores". Los gestores siguen el estatus de las redes asociadas. Una RPC (Remote Procedure Call = llamada de procedimiento remoto) es una interfaz de programación que permite a los programas invocar funciones remotas en máquinas de servidores. El Hypertext Transfer Protocol (HTTP) facilita la transferencia de objetos de datos a través de redes por vía de un sistema de indicadores uniformes de recursos (URI: uniform resource indicators).
El Hypertext Transfer Protocol (HTTP) es un protocolo sencillo construido encima del Transmisión Control Protocol (TCP). El HTTP proporciona un método para que los usuarios obtengan objetos de datos desde diversos ordenadores anfitriones que actúan como servidores en Internet. Las solicitudes de usuarios para objetos de datos son efectuadas por medio de una solicitud GET (OBTENER) de HTTP. Como se representa después, una solicitud GET (OBTENER) comprende 1) una cabecera HTTP del formato "http://"; seguida por 2) un identificador del servidor en el que reside el objeto de datos; seguido por 3) el trayecto completo del objeto de datos; seguido por 4) el nombre del objeto de datos. En la solicitud GET (OBTENER) mostrada después, una solicitud está siendo efectuada al servidor "www.w3.org" para el objeto de datos con un nombre de trayecto de "/pub/" y un nombre de "MyData.html"
\vskip1.000000\baselineskip
(1)GET http://www.w3.org/pub/MyData.html
\vskip1.000000\baselineskip
El procesamiento de una solicitud GET (OBTENER) implica el establecimiento de una conexión TCP/IP con el nombre de servidor en la solicitud GET (OBTENER) y la recepción desde el servidor del objeto de datos especificado. Después de recibir e interpretar un mensaje de solicitud, un servidor responde en la forma de un mensaje RESPONSE (RESPUESTA) de HTTP.
Los mensajes de respuesta empiezan con una línea de estatus (Status Line) que comprende una versión de protocolo seguida por un código de estatus (Status Code) numérico y una frase de razón (Reason Phrase) textual asociada. Estos elementos están separados por caracteres de separación. El formato de una línea de estatus (Status Line) es representado en la línea (2):
\vskip1.000000\baselineskip
(2)Status-Line=HTTP-Version Status-Code Reason-Phrase
\vskip1.000000\baselineskip
La línea de estatus empieza siempre con una versión de protocolo y el código de estatus (Status Code), por ejemplo "http/1.0 200". El elemento de código de estatus es un código de resultado entero de tres dígitos del intento para comprender y satisfacer el mensaje de solicitud anterior. La frase de razón está destinada a proporcionar una descripción textual breve del código de estatus. El primer dígito del código de estatus define la clase de respuesta. Hay cinco categorías para el primer dígito. 1XX es una respuesta de información; no es usada actualmente. 2XX es una respuesta satisfactoria; la acción fue recibida, comprendida y aceptada satisfactoriamente. 3XX es una indicación de respuesta de reenvío, acción adicional debe ser emprendida para completar la solicitud. Esta respuesta es la que es usada por ciertas realizaciones de la presente invención para hacer que un cliente reenvíe a un sitio de servidor seleccionado. 4XX es una respuesta de error de cliente; esta indica una mala sintaxis en la solicitud. Finalmente, 5XX es un error de servidor; este indica que el servidor falló en satisfacer una solicitud aparentemente válida.
Formatos particulares de mensajes HTTP son descritos en "Norma para el formato de mensajes de texto Internet de ARPA" de Crocker, D., STD II, RFC (Request for Comments) 822, UDEL, Agosto de 1.982, que es incluido por referencia en la presente para todos los fines.
2.0 Configuraciones específicas
La Figura 2A representa un sistema informático distribuido representativo según la presente invención. En la Figura 2A, una red 200 interconecta una pluralidad de máquinas de servidores entre sí y con un entorno externo de interconexión de redes por medio de una pluralidad de puntos de acceso a red (NAPs: Network Access Points). La topología de esta red interna es completamente arbitraria con respecto a la invención. Puede ser Ethernet, red en anillo con testigo (Token Ring), ATM (Asynchronous Transfer Mode = Modo de Transferencia Asíncrona) o cualquier otra topología de red conveniente. Los puntos de acceso a red son puntos de conexión entre redes grandes, y pueden comprender encaminadotes, pasarelas, puentes u otros métodos para unir redes de acuerdo con topologías de redes particulares.
Los puntos 202, 204, 206 y 208 de acceso a red proporcionan accesibilidad a las redes externas A, B, C y D para comunicación con máquinas de clientes por vía de una pluralidad de trayectos de redes externas. En una realización particular, estos puntos de acceso a red alojan una porción del componente de configuración de encaminamiento. En una realización preferible, estos puntos de acceso a red son encaminadores 222, 224, 226 y 228 que interconectan con otras redes y son conscientes del algoritmo de encaminamiento OSPF (Open Shortest Path First = abrir primero el trayecto más corto). El algoritmo OSPF es capaz de admitir el caso donde varias máquinas tienen exactamente la misma dirección IP, encaminando paquetes a la máquina más próxima. En contraste, un mecanismo de encaminamiento alternativo, el Routing Information Protocol (RIP), no manejaría este caso.
Además, estos encaminadores emplean técnicas de tunelización IP, como son bien conocidas por las personas de calificación ordinaria en la técnica, y son capaces de encaminamiento por directriz, o sea, capaces de encaminar paquetes basados parcialmente en su dirección de origen. Cada uno está configurado para usar tunelización IP para encaminar paquetes fuera de la red a través de un encaminador particular en un punto particular de acceso a red, basado en direcciones de origen de paquetes y en la disponibilidad de servidores.
La Figura 2A también muestra los servidores de extremo frontal 212, 214, 216 y 218 que están colocados en los puntos de acceso a red. Estos servidores de extremo frontal alojan un proceso de componentes de extremo frontal. En una realización preferible, los servidores de extremo frontal también alojan un proceso de componentes de retransmisor IP. Las funciones de estos procesos son descritos en lo sucesivo.
Un servidor 250 de director aloja varios componentes de software que, en la realización preferible, incluyen un componente de director, un componente de gestor de ping y un componente de gestor de carga, cada uno de los cuales será descrito en lo sucesivo.
Uno o más servidores de contenido 232, 234, 236 y 238 realizan el servicio real de contenido, o sea, páginas Web o archivos FTP. Cada uno tiene asociado con él uno o más casos de componente de servidor de contenido capaz de servir datos tal que los paquetes salientes tienen una dirección de origen que es seleccionable por el componente de director.
Cada servidor de contenido tiene una dirección IP de alias de red para cada encaminador controlado por el sistema. Por ejemplo, en un sistema con cuatro encaminadores, un servidor de contenido particular tendrá cuatro direcciones IP de alias de red distintas. El encaminador dentro del sistema está configurado para "encaminamiento por directriz", o sea, encaminamiento basado en la dirección de origen de paquetes, de modo que dependiendo de que dirección IP de alias de red proceden los paquetes, serán encaminados a través de un encaminador específico del sistema elegido por el director. Una serie de túneles IP seleccionables permiten que los servidores de contenido envíen datos a clientes usando una "ruta óptima". Los túneles IP están configurados tal que cada servidor puede servir datos de salida a través de un punto elegido de acceso a red. En contraste, los sistemas conocidos corrientemente en la técnica sirven datos encaminados fuera de la red a través de un punto de interconexión por defecto, o sea, puntos de salida de red que pueden encaminar a las otras redes que forman Internet. Típicamente, el punto de interconexión por defecto es el único punto de interconexión para la red. Cada túnel IP está configurado para enviar todos los datos a un encaminador diferente de interconexión. Cada túnel IP empieza en un encaminador y termina en otro encaminador (remoto). Esto permite que una granja de servidores de contenido (uno o más servidores de contenido en la misma ubicación física, sirviendo detrás de un encaminador) sirva datos a través de un encaminador diferente de granja de servidores de contenido si el director ha determinado que este es el trayecto óptimo.
\newpage
Los encaminadores están configurados estáticamente para enviar paquetes por un túnel IP cuando los paquetes tienen una dirección de origen que está asociada con ese túnel. Por ejemplo, en una red que tiene tres puntos de interconexión, el encaminador en un primer punto de interconexión, denominado "A", tendría dos túneles salientes, el "túnel 1" y el "túnel 2". Estos túneles salientes conducen a los otros dos encaminadores, residiendo cada uno en uno de los otros dos puntos de interconexión, B y C. El encaminador en el punto A de interconexión estaría configurado de modo que encamina todos los paquetes que tienen una dirección de origen 1.1.1.1 por el túnel 1 y todos los paquetes que tienen una dirección de origen 2.2.2.2 por el túnel 2. El túnel 1 envía todos los paquetes a un segundo punto B de interconexión, y el túnel 2 envía todos los paquetes a un tercer punto C de interconexión. Este es un encaminamiento basado en origen, conocido corrientemente como "encaminamiento por directriz".
Un servidor de contenido asociado con el encaminador en el punto A de interconexión ejecuta el software de servidor que vincula el lado local de sus conectores hembra de servidor con las direcciones 1.1.1. y 2.2.2.2, permitiéndole servir desde cualquiera de las direcciones. El software de director posee información de configuración sobre este servidor de contenido y sus direcciones de servidor. Esto permite que el director determine que cuando el servidor de contenido sirve desde la dirección 1.1.1.1, todos los paquetes son servidos por vía del túnel 1 al punto B de acceso a red, y cuando el servidor de contenido sirve desde la dirección 2.2.2.2, todos los paquetes son servidos por vía del túnel 2 al punto C de acceso a red. El software de director es capaz de seleccionar el punto de acceso a red a través del cual cada servidor de contenido servirá sus datos informando al cliente a que nombre de dominio totalmente calificado, correspondiente a una dirección IP, acceder para servicio, puesto que será la dirección de origen de los paquetes de respuesta a la solicitud. Los paquetes de respuesta son encaminados automáticamente a través del punto de acceso a red elegido por el software de director.
Esta configuración de encaminamiento por directriz es establecida una vez para cada sistema durante la instalación. El director tiene acceso a una tabla de direcciones IP para cada servidor de contenido, y al encaminador de sistema correspondiente para cada una de las direcciones IP de un servidor de contenido particular. Esto permite que el director seleccione una dirección IP de servidor de contenido que encaminará a través del encaminador de sistema que elija el director. El director debe decidir primero que servidor de contenido tiene la carga mínima. Formula esto a partir de los datos que le han proporcionado el gestor de carga (que, a su vez, recogió los datos desde cada uno de los demonios de carga). Una vez que el director ha elegido la máquina de servidor de contenido menos cargado, elegirá una dirección, a partir del conjunto de máquina de direcciones IP de alias de red, que encamina a través de un encaminador teniendo el tiempo óptimo de recorrido unidireccional ICMP al cliente explorador. Toma esta decisión basado en datos que le han proporcionado el gestor de ping (que a su vez recogió sus datos desde los demonios de ping).
La Figura 2B representa una realización alternativa de un sistema informático distribuido según la presente invención. La realización de la Figura 2B difiere principalmente de la realización de la Figura 2A en que la realización de la Figura 2B no tiene un servidor separado de director. Más bien, en la realización alternativa de la Figura 2B, los procesos que residían en el servidor 250 de director en la Figura 2A están distribuidos entre los servidores de extremo frontal 212, 214, 216 y 218 en la Figura 2B.
3.0 Procesos específicos
La Figura 3A representa los componentes de procesos de una realización representativa según la presente invención.
3.1 Componentes de procesos
El extremo frontal - Una realización de un componente 360 de extremo frontal recibe solicitudes de clientes para objetos de datos. Esta puede ser una solicitud HTTP entrante en la realización preferible. A continuación, el extremo frontal solicita "consejo" al componente 362 de director, si está disponible, enviando inmediatamente la dirección IP de cliente explorador al director y esperando que el director seleccione el servidor "optimo". Finalmente, envía una respuesta al cliente solicitante que dirige al cliente a contactar con un servidor específico para procesamiento de solicitud adicional. El extremo frontal debe comprender el protocolo de la solicitud de cliente, y usará mecanismos específicos de aplicación para dirigir el cliente al servidor específico. En una realización particular, el extremo frontal envía al cliente explorador una respuesta de reenvío HTTP al localizador uniforme de recursos (URL) del servidor óptimo. Una realización de esta invención puede comprender componentes de extremo frontal múltiples que comprenden uno o más protocolos a nivel de usuario.
El director - Una realización de un componente 362 de director recibe consultas de datos desde los componentes 360 de extremo frontal y, usando datos sobre el origen del cliente, preferiblemente la dirección IP de cliente explorador, así como el estatus de servidor reproducido y las características de trayecto de red, preferiblemente tiempos de respuesta de ecos ICMP, recibidas desde los componentes de colector, tales como el gestor 364 de ping y el gestor 366 de carga, devuelve información que permite que los extremos frontales dirijan solicitudes de usuarios. La decisión tiene en cuenta todos los datos y envía al extremo frontal la dirección IP del servidor "óptimo". Los componentes de director incluyen los métodos de decisión para evaluar selecciones alternativas de servidor, y proporcionan coordinación para todo el sistema. Una realización de esta invención comprende uno o más componentes de director.
Los componentes de colector - Una realización de un componente de colector monitoriza una o más características de trayectos de red o carga de servidor de contenido y hace esta información disponible para el componente de director para uso en la decisión de selección de servidor. Una realización de esta invención comprende uno o más componentes del colector, preferiblemente un componente 364 de gestor de ping, un componente de demonio de ping (no mostrado), un componente 366 de gestor de carga y un componente de demonio de carga (no mostrado).
El gestor de ping le dice al director que servidor de contenido tiene el trayecto de eco ICMP más rápido. Este dato es recogido por el gestor 364 de ping. El gestor de ping recibe sus datos de tiempo de ping desde máquinas de servidores individuales cada una de las cuales está usando pings ICMP para determinar el tiempo de encaminamiento ICMP entre ellas y la máquina de cliente explorador. El gestor de ping almacena entonces esta información y la comunica al director, que la usa para tomar decisiones sobre la ruta óptima.
El demonio de ping ejecuta en máquinas de servidores asociadas con cada grupo de máquinas de servidores de contenido. Una máquina de servidor de contenido (o grupo de ellas) reside cerca de cada uno de los puntos de acceso a red. El demonio de ping espera una solicitud de ping (y su dirección IP correspondiente que es la dirección IP de cliente explorador) y entonces hace ping a la dirección IP de cliente explorador para grabar el tiempo de encaminamiento ICMP a través de su propio encaminador fronterizo más próximo. Entonces, devuelve este dato al gestor de
ping.
El software de gestor de carga es similar al gestor de ping pero comunica y almacena información pendiente del demonio de carga sobre la carga actual de cada una de las máquinas de servidores de contenido. También expide este dato al director.
El demonio de carga ejecuta en conjunción con cada servidor 368 de contenido y vuelve a informar periódicamente al gestor de carga. Envía datos sobre el número de conexiones TCP abiertas actualmente, memoria RAM libre, memoria SWAP libre y tiempo inactivo de UCP.
La Figura 3B representa los componentes de software de una realización alternativa según la presente invención. Comparando el esquema de componentes de software de la realización alternativa de la Figura 3B con el de la realización en la Figura 3A, la diferencia principal entre las dos realizaciones es que en la realización alternativa representada por la Figura 3B, el proceso 362 de director está distribuido entre diversos servidores. Así, en la Figura 3B el proceso 362 de director es mostrado como tres casos separados de proceso de director. Mientras que en la Figura 3A el proceso 362 de director es mostrado como un proceso singular de director que interconecta con otros procesos en servidores múltiples.
La Figura 3C representa los componentes de software de una realización preferible según la presente invención. Comparando el esquema de componentes de software de la realización de la Figura 3B con el de la realización en la Figura 3C, la diferencia principal entre las dos realizaciones es que en la realización representada por la Figura 3C, el proceso 360 de extremo frontal incluye una función de retransmisor IP.
El extremo frontal/retransmisor IP- Una realización de un componente 360 de extremo frontal/retransmisor IP recibe paquetes IP entrantes para cualquier tráfico IP. Como en las realizaciones de las Figuras 3A y 3B, a continuación el extremo frontal pide "consejo" a los componentes 362 de director, si está disponible, enviando inmediatamente la dirección IP de cliente y esperando que el director seleccione el servidor "óptimo". Sin embargo, más bien que dirigir al cliente a hacer contacto con un servidor específico para procesamiento de solicitud adicional, como es realizado por los componentes de extremo frontal en las realizaciones de las Figuras 3A y 3B, el retransmisor IP expide los paquetes al "servidor óptimo" elegido de acuerdo con al determinación efectuada por el director. Una realización de esta invención puede comprender componentes múltiples de extremo frontal que funcionan en la capa
IP.
3.2 Pasos para atender una solicitud
La Figura 4A representa un conjunto de pasos que ocurren en el proceso de recibir, evaluar y contestar una solicitud de cliente en una realización particular de la invención. En un paso 402, un proceso de demonio de carga residente en un servidor de contenido, tal como el 232 de la Figura 2A, está actualizando periódicamente información directamente a un proceso 366 de gestor de carga que reside en un servidor 250 de director. Subsiguientemente, en un paso 404, el proceso de gestor de carga actualiza la información de carga recogida desde todos los servidores de contenido que tienen procesos de demonio de carga. Esto permite que el proceso 362 de director elija la máquina de servidor de contenido menos cargada en respuesta a una solicitud entrante tal como en los pasos 410 y 412.
En el paso 410, una solicitud entrante de cliente, que puede ser una solicitud HTTP procedente, por ejemplo, de un explorador Web, o una solicitud FTP procedente de un cliente FTP, es encaminada por vía de un trayecto externo arbitrario a una pasarela fronteriza del sistema, típicamente un encaminador en un punto de acceso a red. En este punto, la solicitud de cliente resulta una entrada a la carga de servidor que equilibra el sistema informático distribuido de la presente invención. Es enviada a un componente 360 de extremo frontal por IP que actúa de acuerdo con la tabla de encaminamiento asociada con un encaminador situado en este punto de acceso a red. En el paso 412, el componente de extremo frontal, en respuesta a la llegada de la solicitud de aplicación de cliente, hace una solicitud al componente 362 de director de un servidor preferido. El director, habiendo recibido una solicitud de extremo frontal para información sobre la solicitud de cliente en el paso 412, solicita información, tal como el trayecto más conveniente entre servidores y clientes, procedente de un componente de colector, tal como un gestor 364 de ping, en un paso 413. En la realización de la Figura 4A, el trayecto más conveniente es el trayecto con la respuesta de eco ICMP más rápido (ping) determinada por un componente 364 de colector de gestor de ping que actúa en conjunción con uno o más componentes de demonio de ping ubicados conjuntamente en los diversos puntos de acceso a red en la red del sistema, en un paso 414. Estos demonios de ping determinan el trayecto de eco ICMP más rápido entre su servidor de extremo frontal particular y el cliente transmitiendo pings sucesivos al cliente por vía de su punto de acceso a red asociado de servidor de extremo frontal particular, y midiendo el tiempo de la respuesta, como se representa en un paso 415. Cada demonio de ping transmite de vez en cuando el tiempo a un cliente, por vía de su punto de acceso a red particular, al gestor de ping en un paso 416. El componente de gestor de ping devuelve valores de ida y vuelta, para trayectos asociados con los puntos de acceso a red del sistema, al cliente en un paso 417. En realizaciones específicas, el componente de gestor de ping puede iniciar consultas de estatus preactivas (no representadas), o puede devolver información de estatus en cualquier momento, sin solicitudes explícitas procedentes del componente de director. El componente de director indica el servidor correcto de contenido que ha de ser usado para el cliente al componente de extremo frontal en un paso 418. El componente de extremo frontal dirige el cliente al servidor correcto de contenido usando un protocolo de capa de aplicación, preferiblemente una respuesta de reenviar HTTP en un paso 419. La respuesta de extremo frontal es expedida por vía de un punto de acceso a red a la máquina de cliente por la interconexión de redes usando, por ejemplo, el protocolo IP. Subsiguientemente, como se muestra en el paso 420, las solicitudes procedentes del cliente serán efectuadas al servidor óptimo de contenido, por un ejemplo 362, por la ruta óptima a su máquina (que también es el lugar óptimo para entrar en la red externa para llegar al propio proveedor de red del cliente
explorador).
La Figura 4B representa un conjunto de pasos que ocurren en el proceso de recibir, evaluar y contestar una solicitud de cliente en una realización alternativa de la invención. Comparando los pasos de procesamiento de la realización representada en la Figura 4B con los de la realización representada en la Figura 4A, es claro que los pasos particulares son idénticos. Sin embargo, es digno de mención que los pasos 412, 414, 416 y 418 no son transacciones de red, como lo eran en la Figura 4A, sino más bien transacciones entre procesos residentes en el mismo lugar dentro de una máquina de servidor.
La Figura 4C representa un conjunto de pasos que ocurren en el proceso de recibir, evaluar y contestar una solicitud de cliente en una realización preferible de la invención. Comparando los pasos de procesamiento de la realización representada en la Figura 4B con los de la realización representa en la Figura 4C, es claro que la diferencia principal es que los pasos 419 y 420 de la Figura 4B, la respuesta de reenviar y los pasos de conversación HTTP subsiguientes, respectivamente, han sido sustituidos por un paso nuevo 422. En el paso 422, el tráfico IP procedente del cliente es retransmitido al "servidor óptimo" de acuerdo con la determinación del director. Este toma el lugar del paso 419 de respuesta de reenviar que es efectuado por el proceso de extremo frontal al cliente, como es mostrado en la Figura 4B. Es digno de mención que los pasos 402, 404, 410, 412, 413, 414, 415, 416, 417 y 418 permanecen iguales en la realización preferible de la Figura 4C que en las realizaciones de las Figuras 4A y 4B.
La Figura 4C representa los pasos de procesamiento en la realización preferible. En un paso 410, un extremo frontal/retransmisor 360 intercepta los paquetes que entran en la red. Basado en la información de dirección contenida dentro de la cabecera IP, el extremo frontal/retransmisor determina el servidor de destino original del paquete. A continuación, en un paso 412, el extremo frontal/retransmisor invita al director 362 a tomar la decisión de encaminamiento de "servidor óptimo". En los pasos 413, 414, 415, 416, 417 y 418, el director, en conjunción con los componentes de gestor 366 de carga, gestor 364 de ping, demonio de carga y demonio ping, determina un "servidor óptimo" para el tráfico IP y comunica esta dirección de máquina al extremo frontal/retransmisor. El proceso de decisión es idéntico que el de las realizaciones de las Figuras 4A y 4B. En un paso 422, el extremo frontal/retransmisor retransmite todos los paquetes desde ese cliente a la máquina de "servidor óptimo". Como la retransmisión de paquetes tiene lugar en el nivel IP, los paquetes para cualquier servicio que funciona sobre la capa IP pueden ser encaminados por los métodos de la presente invención.
4.0 Metodologías de toma de decisiones 4.1. Director
El director toma decisiones sobre que servidor de contenido y que encaminador son mejores para cada solicitud por un cliente. La Figura 5A representa un organigrama 500 de los pasos de proceso emprendidos por un director en una realización específica de la invención. En un paso 501, una métrica de red es calculada para cada combinación de "servidor de contenido" y "encaminador saliente". Una lista clasificada es construida con estas métricas, teniendo el formato:
\vskip1.000000\baselineskip
(3)(sitio 1 frontera 1 métrica, ..., sitio N frontera N métrico N)
\vskip1.000000\baselineskip
En un paso 502, los servidores aspirantes para los sitios óptimos son seleccionados a partir de la lista producida en el paso 501 anterior. El procesamiento recorre la lista, seleccionando la métrica de categoría superior así como cualesquier aspirantes que estén dentro de un cierto porcentaje (digamos X%) de la métrica de categoría superior. Obsérvese que cada servidor de contenido será listado con todas las combinaciones de encaminadores salientes en la lista. Puesto que no es necesario considerar las combinaciones de servidor-encaminador que sean absurdas, por ejemplo desde el servidor de LA (Los Angeles) yendo a través de la frontera de NY (Nueva York) no precisa ser considerada si hay una combinación de servidor de LA yendo a través de la frontera de LA, o sea, considérese solo la "óptima". Por ejemplo, con X=5 y la lista clasificada de combinaciones (sitio, frontera, métrica) como es representada en las líneas (4):
\vskip1.000000\baselineskip
(4)@network = (ny ny 300 sj la 305 sj sj 312 ny sj 380 dc ny 400 ...)
\vskip1.000000\baselineskip
Las tres primeras entradas son:
ny ny 300
sj la 305
sj sj 312
Puesto que todas estas están dentro del 5% entre sí, el sistema considerará las tres. Sin embargo, obsérvese que San José (SJ) es listada dos veces y que el tiempo del segundo listado es mayor que el tiempo del primero. Por tanto, la primera aparición del servidor de San José (SJ) es preferida a la segunda, así que la segunda es desechada a favor de la primera. Es seleccionado un servidor en Nueva York, (NY) o San José (SJ). Si es elegido un servidor en NY, entonces también será seleccionada la frontera en NY. Si es elegido un servidor en SJ, la frontera en LA es "óptima".
En un paso 503, el servidor "óptimo" es seleccionado a partir de los aspirantes. Hacer una lista de todas las métricas para servidores aspirantes y aplicar un algoritmo estadístico para seleccionar el servidor óptimo a partir de los aspirantes. El resultado de este paso es el sitio para el servidor seleccionado y un identificador para el servidor específico (puede haber servidores múltiples en cada sitio).
En un paso 504, a partir del sitio del servidor seleccionado anteriormente, el sistema recupera que frontera ha de ser usada para el sitio conservado en el paso 502. Entonces, a partir del identificador de servidor y de la frontera saliente, es determinado el nombre de dominio correcto cualificado completamente que tiene la dirección IP apropiada para el encaminamiento por directriz interno.
4.2 Gestor de ping
El gestor de ping solicita constantemente información de ping desde uno o más demonios de ping. El gestor de ping envía al director una secuencia de valores representativos del tiempo de ida y vuelta hacia y desde cada sitio de cliente. Los sitios de clientes que no responden son representados por un valor grande arbitrario si un demonio de ping no responde. En una realización particular, un gestor de ping enviará a un director una secuencia tal como es representada por las líneas (5) y (6) siguientes:
\vskip1.000000\baselineskip
(5)"client_address metric_site_1 metric_site2...metric_ site:N/n"
\vskip1.000000\baselineskip
"128.9.192.443009999999 280 450\n"
(6)
\vskip1.000000\baselineskip
En una realización preferida, las métricas de sitios son ordenadas.
\vskip1.000000\baselineskip
@incoming_metric_order=('ny','la','dc','sj')
(7)
\vskip1.000000\baselineskip
La Figura 5B representa un organigrama 510 de los pasos de proceso realizados por el director en respuesta a recibir desde el gestor de ping la secuencia de información representada en las líneas (5) y (6) anteriores. En un paso 512 del organigrama 510, el director realiza el procesamiento sobre la información entrante procedente del gestor de ping para almacenar la información en un formato utilizable como es representado por el pseudocódigo en las líneas (8) siguientes.
1
A continuación, en un paso 514, en respuesta a una solicitud recibida desde un proceso de extremo frontal, el director recuperará información sobre la solicitud que ha de ser contestada. Las líneas (9) representa el pseudocódigo para el paso 514 de procesamiento.
2
3
En un paso 516, el director calcula métricas unidireccionales a partir de las métricas bidireccionales proporcionadas por el gestor de ping según el pseudocódigo siguiente en las líneas (10):
4
\newpage
A continuación, en un paso 518, el director calcula métricas de trayectos para todas las combinaciones de sitio y frontera según el pseudocódigo siguiente en las líneas (11):
5
6
\newpage
A continuación, en un paso 520, el director clasifica las métricas y construye una lista ordenada usando el pseudocódigo siguiente en las líneas (12):
7
En este punto, la variable @sorted_list contiene toda la información necesaria para seleccionar pares de sitios y servidores aspirantes.
4.3 Gestor de carga
El gestor de carga envía mensajes al director una vez cada dos segundos aproximadamente, en el formato representado en la línea (13):
(13)"servidor1 carga1 servidor2 carga2 ... servidorN cargaN";
La Figura 5C representa un organigrama 521 de pasos de proceso de listas realizados por el director al seleccionar un servidor "óptimo", usando la información recibida desde el gestor de carga, representada en la línea (13) anterior, y el gestor de ping, representada en las líneas (5) y (6) anteriores.
El director mantiene varias estructuras de datos internos, incluyendo un conjunto asociativo de cargas de servidores, empareja valores de cargas con identificadores de servidores:
\textdollarload_array{\textdollarserverID}=\textdollarload;
una lista de servidores en cada sitio:
\textdollarservers{'la'}="www.lal.test.com www.1a2.test.com";
\textdollarservers{'dc'}="www.dcl.test.com www.dc2.test.com";
una correspondencia de servidores y fronteras en un nombre correcto que tiene una dirección de origen correspondiente:
\textdollarserver_map{"www.lal.test.com la"}="www.lal-la.test.com";
\textdollarserver_map{"www.lal.test.com dc"}="www.lal-dc.test.com";
La variable @sorted-list, generada anteriormente, contiene triples de sitios, fronteras y métricas de trayectos. A partir de estas estructuras de datos, el director puede elegir un servidor óptimo usando los pasos mostrados en la Figura 5C. Un paso de decisión verifica que todas las entradas en la @sorted_list no han sido procesadas, e inicializa la variable "best_metric" a la métrica del primer elemento de la @sorted_list. Estos pasos son representados en el pseudocódigo siguiente:
8
Como se muestra en la Figura 5C, un paso 522 de decisión, un paso 524 de proceso, un paso 526 de decisión y un paso 528 de proceso implementan una construcción de bucle para seleccionar triples de sitio, frontera y métrica a partir de la @sorted_list y añadir la información de frontera a una lista de fronteras de sitios y el sitio a una lista de servidores. Esto es representado también en el pseudocódigo siguiente:
9
10
Una vez que este bucle ha procesado todos los elementos de la @sorted_list, el paso 522 de decisión tomará el trayecto "si" y el procesamiento continuará con un paso 530 de decisión que, junto con los pasos 532 y 534 de proceso, implementa una construcción de bucle para procesar todos los servidores en la lista de servidores generada anteriormente, y añadir cada carga de servidor a una lista de cargas de servidores, y sumar las cargas de todos los servidores en una variable \textdollartotal. Esto es representado también en el pseudocódigo siguiente:
11
Una vez que este bucle ha procesado todos los elementos de la @server_list, el paso 530 de decisión de la Figura 5C tomará el trayecto "si" y el procesamiento continuará con un paso 536 de proceso que determina un número aleatorio entre 1 y la carga total de servidores. A continuación, el procesamiento continúa en el bucle formado por los pasos 538 y 544 de decisión y los pasos 540, 542 y 546 de procesamiento. Este bucle pasa por los servidores en la @server_list, sumando sus cargas hasta que este total acumulado supera el número aleatorio seleccionado en el paso 536 de proceso, o hasta que ha sido procesado el último elemento de la @server_list. En cualquier caso, el servidor que es examinado cuando cualquiera de estas dos condiciones es satisfecha es el servidor seleccionado por el director como el servidor "óptimo". Esto también es representado en el pseudocódigo siguiente:
12
Una vez que el director ha seleccionado un servidor "óptimo", el procesamiento continúa como es descrito por el paso 504 de la Figura 5A, y el pseudocódigo siguiente.
13
14
5.0 Conclusión
En conclusión, puede verse que la presente invención proporciona un sistema de redes interconectadas en el que los objetos de datos son servidos a los usuarios según el trayecto de red disponible más corto. Una ventaja adicional de los métodos según la invención es que estos métodos exhiben tolerancia de los fallos que ocurren en el hardware fundamental. Adicionalmente, la fiabilidad de sistemas según la invención es incrementada respecto a los servidores Web de técnica anterior. Otras realizaciones de la presente invención y sus componentes individuales resultarán fácilmente evidentes para los expertos en la técnica a partir de la descripción detallada anterior, en la que son descritas realizaciones de la invención por medio de ilustrar el modo óptimo considerado para llevar a cabo la invención. Como se comprenderá, la invención es capaz de otras realizaciones diferentes y sus varios detalles son capaces de modificaciones en diversos aspectos evidentes, todo sin apartarse del alcance de la presente invención. Por consiguiente, los dibujos y la descripción detallada han de ser consideradas como de naturaleza ilustrativa y no como restrictiva. Por tanto, no se pretende que la invención sea limitada excepto como es indicado por las reivindicaciones adjuntas.

Claims (23)

1. Un sistema para encamina solicitudes de objetos de datos desde una pluralidad de clientes por una red (200) basado en una directriz sobre los estados de red, comprendiendo:
una pluralidad de encaminadores (222, 224, 226, 228);
una pluralidad de servidores de contenido (232, 234, 236, 238) para servir los objetos de datos solicitados por los clientes;
una pluralidad de servidores de extremo frontal (212, 214, 216, 218) para recibir las solicitudes de objetos de datos desde los clientes y encaminar las solicitudes de objetos de datos a los servidores de contenido (232, 234, 236, 238) por vía de la red (200);
un director (250) para monitorizar periódicamente los estados de red y para identificar combinaciones de los servidores de contenido (232, 234, 236, 238) y los encaminadores (222, 224, 226, 228) como aspirantes a solicitudes de objetos de datos particulares de servicio, con el director (250) seleccionando unos de los aspirantes basado en los estados monitorizados de red y notificando a los servidores de extremo frontal (212, 214, 216, 218) para encaminar las solicitudes de objetos de datos particulares a los servidores de contenido de los aspirantes seleccionados;
en el que los estados de red incluyen información sobre un tiempo para recorrer un trayecto por la red a cada uno de los servidores de contenido (232, 234, 236, 238), seleccionando el director (250) los aspirantes que tiene los servidores de contenido con un trayecto que puede ser recorrido en una cantidad mínima de tiempo;
en el que el tiempo para recorrer el trayecto es determinado por una respuesta de eco ICMP.
2. El sistema de la reivindicación 1, en el que el director (250) recibe una pregunta desde los servidores de extremo frontal (212, 214, 216, 218) y contesta la pregunta con un reenvío de respuesta a los servidores de contenido (232, 234, 236, 238) de los aspirantes seleccionados.
3. El sistema de la reivindicación 1 o 2, en el que los estados de red incluyen información sobre una carga para cada uno de los servidores de contenido (232, 234, 236, 238), seleccionando el director (250) los aspirantes que tienen los servidores de contenido con la carga mínima.
4. El sistema de cualquiera de las reivindicaciones 1 a 3, en el que la respuesta de reenvío es una respuesta de reenvío HTTP.
5. El sistema de cualquiera de las reivindicaciones 1 a 4, en el que la carga de los servidores de contenido (232, 234, 236, 238) es determinada por el número de conexiones TCP abiertas para cada uno de los servidores de contenido, seleccionando el director (250) los aspirantes que tienen los servidores de contenido con el número mínimo de conexiones TCP abiertas.
6. El sistema de cualquiera de las reivindicaciones 1 a 5, en el que la carga de los servidores de contenido (232, 234, 236, 238) es determinada por la cantidad de memoria RAM libre disponible para cada uno de los servidores de contenido, seleccionando el director (250) los aspirantes que tienen los servidores de contenido con la cantidad máxima de memoria RAM libre disponible.
7. El sistema de cualquiera de las reivindicaciones 1 a 6, en el que la carga de los servidores de contenido (232, 234, 236, 238) es determinada por la cantidad de memoria SWAP (INTERCAMBIO) libre disponible para cada uno de los servidores de contenido, seleccionando el director (250) los aspirantes que tienen los servidores de contenido con la cantidad máxima de memoria SWAP (INTERCAMBIO) libre disponible.
8. El sistema de cualquiera de las reivindicaciones 1 a 7, en el que la carga de los servidores de contenido (232, 234, 236, 238) es determinada por la cantidad de tiempo inactivo de UCP para cada uno de los servidores de contenido, seleccionando el director (250) los aspirantes que tienen los servidores de contenido con la cantidad máxima de tiempo inactivo de UCP.
9. Un método para encaminar solicitudes de objetos de datos por una red (200) desde una pluralidad de clientes a una pluralidad de servidores de contenido (232, 234, 236, 238) por vía de una pluralidad de encaminadores (222, 224, 226, 228), basado en una directriz sobre los estados de red, comprendiendo los pasos de:
monitorizar periódicamente los estados de red;
identificar combinaciones de los servidores de contenido (232, 234, 236, 238) y los encaminadores (222, 224, 226, 228) como aspirantes para atender las solicitudes de objetos de datos;
\newpage
seleccionar un aspirante óptimo de entre los aspirantes a una de las solicitudes de objetos de de datos basado en los estados de red monitorizados; y
encaminar la una solicitud de objeto de datos al servidor de contenido del aspirante óptimo seleccionado por la red (200);
en el que el paso de monitorizar incluye el subpaso de:
determinar un tiempo para recorrer una ruta entre cada uno de los servidores de contenido y uno particular de los clientes; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor de contenido con un trayecto que puede ser recorrido en una cantidad mínima de tiempo;
en el que la cantidad de tiempo para recorrer el trayecto es determinada por una respuesta de eco ICMP.
10. El método de la reivindicación 9, en el que el paso de encaminar incluye los subpasos de:
recibir una pregunta sobre el servidor de contenido del aspirante óptimo, y
responder la pregunta con un reenvío de respuesta al servidor de contenido del aspirante óptimo seleccionado en el paso de seleccionar.
11. El método de la reivindicación 9 o 10, en el que el paso de monitorizar incluye el subpaso de:
determinar una carga de cada uno de los servidores de contenido; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor de contenido con la carga mínima.
12. El método de cualquiera de las reivindicaciones 9 a 11, en el que la respuesta de reenvío es una respuesta de reenvío HTTP.
13. El método de cualquiera de las reivindicaciones 9 a 12, en el que el paso de monitorizar incluye el subpaso de:
determinar el número de conexiones TCP abiertas para cada uno de los servidores de contenido; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor de contenido con un número mínimo de conexiones TCP abiertas.
14. El método de cualquiera de las reivindicaciones 9 a 13, en el que el paso de monitorizar incluye el subpaso de:
determinar una cantidad de memoria RAM libre disponible para cada uno de los servidores de contenido; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor de contenido con la cantidad máxima de memoria RAM libre disponible.
15. El método de cualquiera de las reivindicaciones 9 a 14, en el que el paso de monitorizar incluye el subpaso de:
determinar una cantidad de memoria SWAP (INTERCAMBIO) libre disponible para cada uno de los servidores de contenido; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor de contenido con una cantidad máxima de memoria SWAP (INTERCAMBIO) libre disponible.
16. El método de cualquiera de las reivindicaciones 9 a 15, en el que el paso de monitorizar incluye el subpaso de:
determinar una cantidad de tiempo inactivo de UCP para cada uno de los servidores de contenido; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor de contenido con una cantidad máxima de tiempo inactivo de UCP.
17. Un método para encaminar información desde una pluralidad de clientes entre una pluralidad de servidores (232, 234, 236, 238) por vía de una pluralidad de encaminadores (222, 224, 226, 228) basado en una directriz sobre un tiempo de respuesta en un entorno de enlace por red de paquetes, comprendiendo los pasos de:
monitorizar el tiempo de respuesta de red;
identificar combinaciones de los servidores (232, 234, 236, 238) y los encaminadores (222, 224, 226, 228) como aspirantes a recibir la información;
seleccionar un aspirante óptimo de entre los aspirantes basado en el tiempo monitorizado de respuesta de red;
retransmitir la información desde un cliente particular en una pluralidad de clientes al servidor del aspirante óptimo;
en el que el paso de monitorizar incluye el subpaso de:
determinar un tiempo para recorrer una ruta entre cada uno de los servidores y uno particular de los clientes; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor con un trayecto que puede ser recorrido en una cantidad mínima de tiempo;
en el que la cantidad de tiempo para recorrer el trayecto es determinada por una respuesta de eco ICMP.
18. El método de la reivindicación 17, en el que el paso de retransmitir incluye el subpaso de:
expedir la información al servidor del aspirante óptimo usando protocolos de capa de red.
19. El método de la reivindicación 17 o 18, en el que el paso de monitorizar incluye el subpaso de:
determinar una carga de cada uno de los servidores; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor con la carga mínima.
20. El método de cualquiera de las reivindicaciones 17 a 19, en que el paso de monitorizar incluye el subpaso de:
determinar el número de conexiones TCP abiertas para cada uno de los servidores; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor con un número mínimo de conexiones TCP abiertas.
21. El método de cualquiera de las reivindicaciones 17 a 20, en el que el paso de monitorizar incluye el subpaso de:
determinar una cantidad de memoria RAM libre disponible para cada uno de los servidores; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor con la cantidad máxima de memoria RAM libre disponible.
22. El método de cualquiera de las reivindicaciones 17 a 21, en el que el paso de monitorizar incluye el subpaso de:
determinar una cantidad de memoria SWAP (INTERCAMBIO) libre disponible para cada uno de los servidores; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor de contenido con una cantidad máxima de memoria SWAP (INTERCAMBIO) libre disponible.
23. El método de cualquiera de las reivindicaciones 17 a 22, en el que el paso de monitorizar incluye el subpaso de:
determinar una cantidad de tiempo inactivo de UCP para cada uno de los servidores; y
en el que el paso de seleccionar incluye el subpaso de:
seleccionar el aspirante óptimo que tiene el servidor con la cantidad máxima de tiempo inactivo de UCP.
ES97953118T 1996-12-09 1997-12-09 Sistema de computacion distribuido y metodo para distribuir peticiones de usuario a servidores de red duplicados. Expired - Lifetime ES2258800T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US3248496P 1996-12-09 1996-12-09
US32484P 1996-12-09
US08/965,848 US6185619B1 (en) 1996-12-09 1997-11-07 Method and apparatus for balancing the process load on network servers according to network and serve based policies
US965848 1997-11-07

Publications (1)

Publication Number Publication Date
ES2258800T3 true ES2258800T3 (es) 2006-09-01

Family

ID=26708484

Family Applications (1)

Application Number Title Priority Date Filing Date
ES97953118T Expired - Lifetime ES2258800T3 (es) 1996-12-09 1997-12-09 Sistema de computacion distribuido y metodo para distribuir peticiones de usuario a servidores de red duplicados.

Country Status (12)

Country Link
US (2) US6185619B1 (es)
EP (1) EP1016253B1 (es)
JP (1) JP4354532B2 (es)
AT (1) ATE297628T1 (es)
AU (1) AU724096B2 (es)
CA (1) CA2274496C (es)
DE (1) DE69733498T2 (es)
DK (1) DK1016253T3 (es)
ES (1) ES2258800T3 (es)
NZ (1) NZ336187A (es)
PT (1) PT1016253E (es)
WO (1) WO1998026559A1 (es)

Families Citing this family (388)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
US7188352B2 (en) 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US8661477B2 (en) * 1994-10-12 2014-02-25 Touchtunes Music Corporation System for distributing and selecting audio and video information and method implemented by said system
WO1996012255A1 (fr) 1994-10-12 1996-04-25 Technical Maintenance Corporation Systeme de reproduction audio-visuelle numerique intelligent
US7424731B1 (en) * 1994-10-12 2008-09-09 Touchtunes Music Corporation Home digital audiovisual information recording and playback system
US6317775B1 (en) 1995-11-03 2001-11-13 Cisco Technology, Inc. System for distributing load over multiple servers at an internet site
US5991809A (en) * 1996-07-25 1999-11-23 Clearway Technologies, Llc Web serving system that coordinates multiple servers to optimize file transfers
FR2753868A1 (fr) * 1996-09-25 1998-03-27 Technical Maintenance Corp Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede
SE507720C2 (sv) 1997-06-12 1998-07-06 Telia Ab Arrangemang för lastbalansering i datornät
US6112239A (en) 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US6760746B1 (en) 1999-09-01 2004-07-06 Eric Schneider Method, product, and apparatus for processing a data request
US6775692B1 (en) 1997-07-31 2004-08-10 Cisco Technology, Inc. Proxying and unproxying a connection using a forwarding agent
FR2769165B1 (fr) 1997-09-26 2002-11-29 Technical Maintenance Corp Systeme sans fil a transmission numerique pour haut-parleurs
US7054935B2 (en) * 1998-02-10 2006-05-30 Savvis Communications Corporation Internet content delivery network
US6735631B1 (en) 1998-02-10 2004-05-11 Sprint Communications Company, L.P. Method and system for networking redirecting
US8296396B2 (en) 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6330617B1 (en) * 1998-02-27 2001-12-11 Sabre Inc System, method and computer program product for data conversion in a computer network
US6681327B1 (en) * 1998-04-02 2004-01-20 Intel Corporation Method and system for managing secure client-server transactions
JP3734206B2 (ja) * 1998-05-01 2006-01-11 インターナショナル・ビジネス・マシーンズ・コーポレーション エージェント対話管理方法、コンピュータ及び記憶媒体
US20030191717A1 (en) * 1998-06-05 2003-10-09 Johnson Teddy C. High performance server data delivery system and method
US6446109B2 (en) * 1998-06-29 2002-09-03 Sun Microsystems, Inc. Application computing environment
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
FR2781582B1 (fr) * 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
FR2781591B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Systeme de reproduction audiovisuelle
US8028318B2 (en) * 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
US6327622B1 (en) 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6324580B1 (en) 1998-09-03 2001-11-27 Sun Microsystems, Inc. Load balancing for replicated services
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request
US6181692B1 (en) * 1998-09-03 2001-01-30 Genesys Telecommunications Laboratories Inc Method and apparatus for data routing, delivery, and authentication in a packet data network
US6535509B2 (en) 1998-09-28 2003-03-18 Infolibria, Inc. Tagging for demultiplexing in a network traffic server
US6993591B1 (en) * 1998-09-30 2006-01-31 Lucent Technologies Inc. Method and apparatus for prefetching internet resources based on estimated round trip time
US20020126135A1 (en) * 1998-10-19 2002-09-12 Keith Ball Image sharing for instant messaging
US7339595B2 (en) 1998-10-19 2008-03-04 Lightsurf Technologies, Inc. Method and system for improved internet color
US6304913B1 (en) * 1998-11-09 2001-10-16 Telefonaktiebolaget L M Ericsson (Publ) Internet system and method for selecting a closest server from a plurality of alternative servers
US6691165B1 (en) 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US7664864B2 (en) * 1998-11-13 2010-02-16 Verisign, Inc. Meta content distribution network
US6931446B1 (en) * 1998-12-14 2005-08-16 International Business Machines Corporation Methods, systems and computer program products for policy based network control of characteristics of user sessions
US6912590B1 (en) * 1998-12-18 2005-06-28 Telefonaktiebolaget Lm Ericsson (Publ) Single IP-addressing for a telecommunications platform with a multi-processor cluster using a distributed socket based internet protocol (IP) handler
JP2000196677A (ja) * 1998-12-28 2000-07-14 Fujitsu Ltd ネットワ―クシステムに用いられる中継装置
DE19900636B8 (de) * 1999-01-11 2005-04-07 Gailer, Peter Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung
US7099848B1 (en) 1999-02-16 2006-08-29 Listen.Com, Inc. Audio delivery and rendering method and apparatus
US6901604B1 (en) * 1999-02-19 2005-05-31 Chaincast, Inc. Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system
US8726330B2 (en) * 1999-02-22 2014-05-13 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US6760775B1 (en) * 1999-03-05 2004-07-06 At&T Corp. System, method and apparatus for network service load and reliability management
US6314465B1 (en) * 1999-03-11 2001-11-06 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
US7188138B1 (en) 1999-03-22 2007-03-06 Eric Schneider Method, product, and apparatus for resource identifier registration and aftermarket services
USRE43690E1 (en) 1999-03-22 2012-09-25 Esdr Network Solutions Llc Search engine request method, product, and apparatus
US8037168B2 (en) 1999-07-15 2011-10-11 Esdr Network Solutions Llc Method, product, and apparatus for enhancing resolution services, registration services, and search services
US6338082B1 (en) 1999-03-22 2002-01-08 Eric Schneider Method, product, and apparatus for requesting a network resource
US9141717B2 (en) 1999-03-22 2015-09-22 Esdr Network Solutions Llc Methods, systems, products, and devices for processing DNS friendly identifiers
GB9906628D0 (en) * 1999-03-23 1999-05-19 Koninkl Philips Electronics Nv Data network load management
US6801949B1 (en) 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US7299294B1 (en) 1999-11-10 2007-11-20 Emc Corporation Distributed traffic controller for network data
WO2000062502A2 (en) * 1999-04-12 2000-10-19 Rainfinity, Inc. Distributed server cluster for controlling network traffic
EP1049307A1 (en) * 1999-04-29 2000-11-02 International Business Machines Corporation Method and system for dispatching client sessions within a cluster of servers connected to the World Wide Web
CN1206602C (zh) * 1999-06-17 2005-06-15 国际商业机器公司 因特网环境下综合负载分配和资源管理的系统和方法
US6275470B1 (en) * 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US6628654B1 (en) * 1999-07-01 2003-09-30 Cisco Technology, Inc. Dispatching packets from a forwarding agent using tag switching
US6549516B1 (en) 1999-07-02 2003-04-15 Cisco Technology, Inc. Sending instructions from a service manager to forwarding agents on a need to know basis
US6687222B1 (en) 1999-07-02 2004-02-03 Cisco Technology, Inc. Backup service managers for providing reliable network services in a distributed environment
US6742045B1 (en) 1999-07-02 2004-05-25 Cisco Technology, Inc. Handling packet fragments in a distributed network service environment
US7051066B1 (en) 1999-07-02 2006-05-23 Cisco Technology, Inc. Integrating service managers into a routing infrastructure using forwarding agents
US6650641B1 (en) 1999-07-02 2003-11-18 Cisco Technology, Inc. Network address translation using a forwarding agent
US6735169B1 (en) 1999-07-02 2004-05-11 Cisco Technology, Inc. Cascading multiple services on a forwarding agent
US6704278B1 (en) 1999-07-02 2004-03-09 Cisco Technology, Inc. Stateful failover of service managers
US6633560B1 (en) 1999-07-02 2003-10-14 Cisco Technology, Inc. Distribution of network services among multiple service managers without client involvement
US6606316B1 (en) 1999-07-02 2003-08-12 Cisco Technology, Inc. Gathering network statistics in a distributed network service environment
US6606315B1 (en) 1999-07-02 2003-08-12 Cisco Technology, Inc. Synchronizing service instructions among forwarding agents using a service manager
US6970913B1 (en) * 1999-07-02 2005-11-29 Cisco Technology, Inc. Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US6400710B1 (en) * 1999-07-09 2002-06-04 Enron Warspeed Services, Inc. Network with hot button for providing switched broadband multipoint/multimedia intercommunication
FR2796482B1 (fr) 1999-07-16 2002-09-06 Touchtunes Music Corp Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles
WO2001013583A2 (en) 1999-08-16 2001-02-22 Iready Corporation Internet jack
USRE44207E1 (en) 1999-09-01 2013-05-07 Esdr Network Solutions Llc Network resource access method, product, and apparatus
JP3782265B2 (ja) 1999-09-07 2006-06-07 株式会社日立製作所 オンラインサービス提供の取次装置
CA2318622A1 (en) * 1999-09-13 2001-03-13 Nortel Networks Limited Call control server selection with load sharing mechanisms
US6810411B1 (en) * 1999-09-13 2004-10-26 Intel Corporation Method and system for selecting a host in a communications network
US6857106B1 (en) 1999-09-15 2005-02-15 Listen.Com, Inc. Graphical user interface with moveable, mergeable elements
US6957247B1 (en) * 1999-09-22 2005-10-18 Ates Gorkem I Internet system
US6667980B1 (en) 1999-10-21 2003-12-23 Sun Microsystems, Inc. Method and apparatus for providing scalable services using a packet distribution table
US6957254B1 (en) * 1999-10-21 2005-10-18 Sun Microsystems, Inc Method and apparatus for reaching agreement between nodes in a distributed system
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US6724733B1 (en) 1999-11-02 2004-04-20 Sun Microsystems, Inc. Method and apparatus for determining approximate network distances using reference locations
AU4347600A (en) * 1999-11-10 2001-06-06 Rainfinity, Inc. Distributed traffic controlling system and method for network data
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
WO2001042900A2 (en) 1999-12-08 2001-06-14 Tune To Com Inc. Scheduled retrieval, storage and access of media data
US7441045B2 (en) * 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US6799202B1 (en) 1999-12-16 2004-09-28 Hachiro Kawaii Federated operating system for a server
SE517217C2 (sv) * 1999-12-29 2002-05-07 Ericsson Telefon Ab L M Metod och system för kommunikation mellan olika nätverk
US7230944B1 (en) 1999-12-30 2007-06-12 Geologic Solutions, Inc. System and method of host routing when host computer is within a home network and/or a complementary network
US7068992B1 (en) 1999-12-30 2006-06-27 Motient Communications Inc. System and method of polling wireless devices having a substantially fixed and/or predesignated geographic location
US7024199B1 (en) 1999-12-30 2006-04-04 Motient Communications Inc. System and method of querying a device, checking device roaming history and/or obtaining device modem statistics when device is within a home network and/or complementary network
US7162238B1 (en) 1999-12-30 2007-01-09 Massie Rodney E System and method of querying a device, checking device roaming history and/or obtaining device modem statistics when device is within a home network and/or a complementary network
WO2001050331A2 (en) * 2000-01-06 2001-07-12 L90, Inc. Method and apparatus for selecting and delivering internet based advertising
US6862613B1 (en) 2000-01-10 2005-03-01 Sun Microsystems, Inc. Method and apparatus for managing operations of clustered computer systems
US6748429B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method to dynamically change cluster or distributed system configuration
US6735206B1 (en) 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for performing a fast service lookup in cluster networking
US6587866B1 (en) * 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
US6769008B1 (en) 2000-01-10 2004-07-27 Sun Microsystems, Inc. Method and apparatus for dynamically altering configurations of clustered computer systems
US6789213B2 (en) * 2000-01-10 2004-09-07 Sun Microsystems, Inc. Controlled take over of services by remaining nodes of clustered computing system
US6735205B1 (en) 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for fast packet forwarding in cluster networking
US6757836B1 (en) 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6748437B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method for creating forwarding lists for cluster networking
US7886023B1 (en) * 2000-01-21 2011-02-08 Cisco Technology, Inc. Method and apparatus for a minimalist approach to implementing server selection
US7349348B1 (en) 2000-01-24 2008-03-25 Cisco Technologies, Inc. Method and apparatus for determining a network topology in the presence of network address translation
US7508753B2 (en) * 2000-01-31 2009-03-24 At&T Intellectual Property, Ii, L.P. Packet redirection and message stream management
FR2805377B1 (fr) * 2000-02-23 2003-09-12 Touchtunes Music Corp Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede
JP4982651B2 (ja) * 2000-02-04 2012-07-25 リアルネットワークス・インコーポレイテッド 分散型メディアネットワーク及びメタデータサーバを含んだシステム
FR2805072B1 (fr) 2000-02-16 2002-04-05 Touchtunes Music Corp Procede d'ajustement du volume sonore d'un enregistrement sonore numerique
FR2805060B1 (fr) 2000-02-16 2005-04-08 Touchtunes Music Corp Procede de reception de fichiers lors d'un telechargement
US7565450B2 (en) * 2000-03-16 2009-07-21 Adara Networks Inc. System and method for using a mapping between client addresses and addresses of caches to support content delivery
US7552233B2 (en) * 2000-03-16 2009-06-23 Adara Networks, Inc. System and method for information object routing in computer networks
US7162539B2 (en) * 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
US20020032905A1 (en) * 2000-04-07 2002-03-14 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
US20020154157A1 (en) * 2000-04-07 2002-10-24 Sherr Scott Jeffrey Website system and process for selection and delivery of electronic information on a network
WO2001078303A1 (en) * 2000-04-07 2001-10-18 Movielink, Llc. Secure digital content licensing system and method
US7155415B2 (en) 2000-04-07 2006-12-26 Movielink Llc Secure digital content licensing system and method
US20020073033A1 (en) * 2000-04-07 2002-06-13 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
US7024466B2 (en) * 2000-04-07 2006-04-04 Movielink, Llc Network configured for delivery of content for download to a recipient
US7240100B1 (en) * 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US7120662B2 (en) * 2000-04-17 2006-10-10 Circadence Corporation Conductor gateway prioritization parameters
US6618705B1 (en) * 2000-04-19 2003-09-09 Tiejun (Ronald) Wang Method and system for conducting business in a transnational e-commerce network
US7725596B2 (en) * 2000-04-28 2010-05-25 Adara Networks, Inc. System and method for resolving network layer anycast addresses to network layer unicast addresses
US7908337B2 (en) * 2000-04-28 2011-03-15 Adara Networks, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7343422B2 (en) * 2000-04-28 2008-03-11 Adara Networks, Inc. System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
US7577754B2 (en) * 2000-04-28 2009-08-18 Adara Networks, Inc. System and method for controlling access to content carried in a caching architecture
US7752024B2 (en) * 2000-05-05 2010-07-06 Computer Associates Think, Inc. Systems and methods for constructing multi-layer topological models of computer networks
US7237138B2 (en) * 2000-05-05 2007-06-26 Computer Associates Think, Inc. Systems and methods for diagnosing faults in computer networks
AU2001261258A1 (en) * 2000-05-05 2001-11-20 Aprisma Management Technologies, Inc. Help desk systems and methods for use with communications networks
AU2001261275A1 (en) * 2000-05-05 2001-11-20 Aprisma Management Technologies, Inc. Systems and methods for isolating faults in computer networks
US7500143B2 (en) * 2000-05-05 2009-03-03 Computer Associates Think, Inc. Systems and methods for managing and analyzing faults in computer networks
FR2808906B1 (fr) 2000-05-10 2005-02-11 Touchtunes Music Corp Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles
US7562153B2 (en) * 2000-05-12 2009-07-14 AT&T Intellectual Property II, L. P. Method and apparatus for content distribution network brokering and peering
US7062642B1 (en) * 2000-05-20 2006-06-13 Ciena Corporation Policy based provisioning of network device resources
US6976066B1 (en) * 2000-05-22 2005-12-13 Microsoft Corporation Network and method for implementing network platform services for a computing device
WO2001091382A1 (en) 2000-05-22 2001-11-29 Nokia Corporation System and method for providing a connection in a communication network
US7020698B2 (en) * 2000-05-31 2006-03-28 Lucent Technologies Inc. System and method for locating a closest server in response to a client domain name request
US6836806B1 (en) 2000-06-01 2004-12-28 Aerocast, Inc. System for network addressing
US6879998B1 (en) 2000-06-01 2005-04-12 Aerocast.Com, Inc. Viewer object proxy
US7213062B1 (en) 2000-06-01 2007-05-01 General Instrument Corporation Self-publishing network directory
US6658000B1 (en) * 2000-06-01 2003-12-02 Aerocast.Com, Inc. Selective routing
US6904460B1 (en) 2000-06-01 2005-06-07 Aerocast.Com, Inc. Reverse content harvester
AR028658A1 (es) * 2000-06-01 2003-05-21 Aerocast Com Inc Metodo de indicacion de buen estado holistico y aparato de distribucion de posibilidad de indicacion.
US7039691B1 (en) * 2000-06-02 2006-05-02 Sun Microsystems, Inc. Java virtual machine configurable to perform as a web server
US20020095498A1 (en) * 2000-06-05 2002-07-18 Accordion Networks Network architecture for multi-client units
US7047196B2 (en) 2000-06-08 2006-05-16 Agiletv Corporation System and method of voice recognition near a wireline node of a network supporting cable television and/or video delivery
US20020049760A1 (en) * 2000-06-16 2002-04-25 Flycode, Inc. Technique for accessing information in a peer-to-peer network
IL153298A0 (en) 2000-06-20 2003-07-06 Nds Ltd Unicast/multicast architecture
FR2811175B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles
FR2811114B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement
US7089301B1 (en) * 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US8527639B1 (en) * 2000-08-18 2013-09-03 Cisco Technology, Inc. Content server selection for accessing content in a content distribution network
US6836462B1 (en) 2000-08-30 2004-12-28 Cisco Technology, Inc. Distributed, rule based packet redirection
FR2814085B1 (fr) 2000-09-15 2005-02-11 Touchtunes Music Corp Procede de divertissement base sur les jeux concours a choix multiples
US7657629B1 (en) 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US7454500B1 (en) * 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
JP2002109366A (ja) * 2000-09-29 2002-04-12 Mori Seiki Co Ltd 製品情報提供システム
US6865605B1 (en) * 2000-10-04 2005-03-08 Microsoft Corporation System and method for transparently redirecting client requests for content using a front-end indicator to preserve the validity of local caching at the client system
US6823391B1 (en) * 2000-10-04 2004-11-23 Microsoft Corporation Routing client requests to back-end servers
US20020040391A1 (en) * 2000-10-04 2002-04-04 David Chaiken Server farm formed of systems on a chip
US20020042839A1 (en) 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
US20020083170A1 (en) * 2000-10-26 2002-06-27 Metilinx System-wide optimization integration model
US7379994B2 (en) * 2000-10-26 2008-05-27 Metilinx Aggregate system resource analysis including correlation matrix and metric-based analysis
US20020178248A1 (en) * 2000-10-26 2002-11-28 Metilinx Application program interface for optimization integration model
US7039717B2 (en) * 2000-11-10 2006-05-02 Nvidia Corporation Internet modem streaming socket method
US7353277B1 (en) * 2000-11-14 2008-04-01 Hewlett-Packard Development Company, L.P. Dynamic load balancing of video requests
US6980521B1 (en) 2000-11-29 2005-12-27 Cisco Technology, Inc. Method and apparatus for per session load balancing with improved load sharing in a packet switched network
US7546369B2 (en) * 2000-12-21 2009-06-09 Berg Mitchell T Method and system for communicating a request packet in response to a state
US20020116397A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US20020116532A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet and identifying a data structure
US20020116605A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for initiating execution of software in response to a state
US7418522B2 (en) * 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
US7287090B1 (en) 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
US7512686B2 (en) * 2000-12-21 2009-03-31 Berg Mitchell T Method and system for establishing a data structure of a connection with a client
US7421505B2 (en) * 2000-12-21 2008-09-02 Noatak Software Llc Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation
US20020087722A1 (en) * 2000-12-29 2002-07-04 Ragula Systems D/B/A/ Fatpipe Networks Domain name resolution making IP address selections in response to connection status when multiple connections are present
US7421489B2 (en) * 2000-12-29 2008-09-02 Nortel Network Limited Network protocols for distributing functions within a network
US7131140B1 (en) 2000-12-29 2006-10-31 Cisco Technology, Inc. Method for protecting a firewall load balancer from a denial of service attack
US7587500B2 (en) * 2001-01-10 2009-09-08 Xcelera Distributed selection of a content server
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US8095370B2 (en) * 2001-02-16 2012-01-10 Agiletv Corporation Dual compression voice recordation non-repudiation system
US7274658B2 (en) * 2001-03-01 2007-09-25 Akamai Technologies, Inc. Optimal route selection in a content delivery network
US20020133597A1 (en) * 2001-03-14 2002-09-19 Nikhil Jhingan Global storage system
US20020143946A1 (en) * 2001-03-28 2002-10-03 Daniel Crosson Software based internet protocol address selection method and system
US7149797B1 (en) * 2001-04-02 2006-12-12 Akamai Technologies, Inc. Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP)
US7340505B2 (en) * 2001-04-02 2008-03-04 Akamai Technologies, Inc. Content storage and replication in a managed internet content storage environment
US8218555B2 (en) * 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
US7203747B2 (en) * 2001-05-25 2007-04-10 Overture Services Inc. Load balancing system and method in a multiprocessor system
US7000006B1 (en) * 2001-05-31 2006-02-14 Cisco Technology, Inc. Implementing network management policies using topology reduction
US8175257B1 (en) 2001-05-31 2012-05-08 Cisco Technology, Inc. Method and apparatus for scheduling automatic call distribution system callers
GB0115996D0 (en) * 2001-06-29 2001-08-22 Nokia Corp Circuit-switched and packet-switched communications
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
US6772224B2 (en) * 2001-08-22 2004-08-03 Spatial Communications Technologies, Inc. Method and system for processing load distribution for a packetized telecommunication network entity
WO2003023640A2 (en) * 2001-09-07 2003-03-20 Sanrad Load balancing method for exchanging data between multiple hosts and storage entities, in ip based storage area network
WO2003023607A1 (en) * 2001-09-10 2003-03-20 Cenus Technologies, Inc. System and method for information object routing in computer networks
US7228337B1 (en) * 2001-09-11 2007-06-05 Cisco Technology, Inc. Methods and apparatus for providing a network service to a virtual machine
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
CN1575582A (zh) * 2001-09-28 2005-02-02 塞维斯通讯公司 可配置的自适应全球通信控制和管理
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
JP2003122658A (ja) * 2001-10-11 2003-04-25 Hitachi Ltd データ配送方法
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20080279222A1 (en) * 2001-10-18 2008-11-13 Level 3 Communications Llc Distribution of traffic across a computer network
US6938031B1 (en) 2001-10-19 2005-08-30 Data Return Llc System and method for accessing information in a replicated database
US7000016B1 (en) 2001-10-19 2006-02-14 Data Return Llc System and method for multi-site clustering in a network
US7984110B1 (en) * 2001-11-02 2011-07-19 Hewlett-Packard Company Method and system for load balancing
WO2003043276A1 (en) * 2001-11-13 2003-05-22 Matsushita Electric Industrial Co., Ltd. Provider connection system, packet exchange apparatus thereof, dns server, packet exchange method, and computer program thereof
US7082531B1 (en) 2001-11-30 2006-07-25 Cisco Technology, Inc. Method and apparatus for determining enforcement security devices in a network topology
US20030115153A1 (en) * 2001-12-19 2003-06-19 Chen Li Identifier management in message transmission system
US20070061472A1 (en) * 2001-12-19 2007-03-15 Chen Li Identifier management in message transmission system
US7565402B2 (en) 2002-01-05 2009-07-21 Eric Schneider Sitemap access method, product, and apparatus
US7636937B1 (en) 2002-01-11 2009-12-22 Cisco Technology, Inc. Method and apparatus for comparing access control lists for configuring a security policy on a network
US7426515B2 (en) * 2002-01-15 2008-09-16 International Business Machines Corporation Edge deployed database proxy driver
US20030149755A1 (en) * 2002-02-06 2003-08-07 Emek Sadot Client-controlled load balancer
US9167036B2 (en) * 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US7535913B2 (en) * 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
US20030177173A1 (en) * 2002-03-15 2003-09-18 Petros Belimpasakis System and method for the reception of content items
JP2003281008A (ja) * 2002-03-26 2003-10-03 Toshiba Corp サーバー計算機負荷分配装置、サーバー計算機負荷分配方法、サーバー計算機負荷分配プログラム及びサーバー計算機システム
US7337234B2 (en) * 2002-04-05 2008-02-26 Oracle International Corporation Retry technique for multi-tier network communication systems
US20030217149A1 (en) * 2002-05-20 2003-11-20 International Business Machines Corporation Method and apparatus for tunneling TCP/IP over HTTP and HTTPS
US7516194B1 (en) 2002-05-21 2009-04-07 Microsoft Corporation Method for downloading high-volumes of content from the internet without adversely effecting the source of the content or being detected
US7222178B2 (en) * 2002-05-31 2007-05-22 Unisys Corporation Transaction-processing performance by preferentially reusing frequently used processes
EP1540461A4 (en) * 2002-05-31 2007-10-03 Unisys Corp PREFERENTIAL REUSE OF FREQUENTLY USED PROCESSES TO IMPROVE THE EFFICIENCY OF TRANSACTION PROCESSING
US20040059777A1 (en) * 2002-05-31 2004-03-25 Palazzo Craig M. System and method for distributed component object model load balancing
US20030236813A1 (en) * 2002-06-24 2003-12-25 Abjanic John B. Method and apparatus for off-load processing of a message stream
US7010596B2 (en) * 2002-06-28 2006-03-07 International Business Machines Corporation System and method for the allocation of grid computing to network workstations
US20040006622A1 (en) * 2002-07-03 2004-01-08 Burkes Don L. Optimized process for balancing load for data mirroring
US7180862B2 (en) 2002-07-18 2007-02-20 Intel Corporation Apparatus and method for virtual output queue feedback
US7620699B1 (en) * 2002-07-26 2009-11-17 Paltalk Holdings, Inc. Method and system for managing high-bandwidth data sharing
US7086061B1 (en) * 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7565413B1 (en) * 2002-08-05 2009-07-21 Cisco Technology, Inc. Content request redirection from a wed protocol to a file protocol
US7574508B1 (en) 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
DE10238291A1 (de) * 2002-08-21 2004-03-04 Siemens Ag Effizientes Intra-Domain Routing in Paketnetzen
US7266607B2 (en) * 2002-08-27 2007-09-04 International Business Machines Corporation Quasi-high availability hosted applications
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US12100258B2 (en) 2002-09-16 2024-09-24 Touchtunes Music Company, Llc Digital downloading jukebox with enhanced communication features
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US8151304B2 (en) * 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US9646339B2 (en) * 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8392609B2 (en) * 2002-09-17 2013-03-05 Apple Inc. Proximity detection for media proxies
US20040153440A1 (en) * 2003-01-30 2004-08-05 Assaf Halevy Unified management of queries in a multi-platform distributed environment
JP4428934B2 (ja) * 2003-03-24 2010-03-10 富士通株式会社 映像選択サーバ、映像配信システム、および映像選択方法
US7293059B2 (en) * 2003-04-04 2007-11-06 Sun Microsystems, Inc. Distributed computing system using computing engines concurrently run with host web pages and applications
US7222195B2 (en) * 2003-04-22 2007-05-22 Cisco Technology, Inc. System and method for distributing information in a network environment
US7379988B2 (en) * 2003-04-23 2008-05-27 International Business Machines Corporation Autonomic performance tuning of a distributed virtual storage server
US20040260745A1 (en) * 2003-06-18 2004-12-23 Gage Christopher A. S. Load balancer performance using affinity modification
US7650402B1 (en) 2003-06-25 2010-01-19 Cisco Technology, Inc. System and method for tracking end users in a loadbalancing environment
US7912954B1 (en) * 2003-06-27 2011-03-22 Oesterreicher Richard T System and method for digital media server load balancing
US9525566B2 (en) * 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
US8909726B1 (en) 2003-08-27 2014-12-09 Cisco Technology, Inc. Priority based anycast routing
US9584360B2 (en) 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US20050097185A1 (en) * 2003-10-07 2005-05-05 Simon Gibson Localization link system
US7756040B1 (en) 2003-10-08 2010-07-13 Cisco Technology, Inc. System and method for relaying information in order to enable services in a network environment
US8050275B1 (en) 2003-11-18 2011-11-01 Cisco Technology, Inc. System and method for offering quality of service in a network environment
JP2005173823A (ja) * 2003-12-09 2005-06-30 Canon Inc Webアプリケーション及びそのデータ共有方法、並びにプログラム
US7899913B2 (en) * 2003-12-19 2011-03-01 Nvidia Corporation Connection management system and method for a transport offload engine
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US7624198B1 (en) 2003-12-19 2009-11-24 Nvidia Corporation Sequence tagging system and method for transport offload engine data lists
US7260631B1 (en) 2003-12-19 2007-08-21 Nvidia Corporation System and method for receiving iSCSI protocol data units
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US8065439B1 (en) 2003-12-19 2011-11-22 Nvidia Corporation System and method for using metadata in the context of a transport offload engine
US7596107B1 (en) 2004-01-26 2009-09-29 Cisco Technology, Inc. System and method for enabling multicast group services in a network environment
US7206872B2 (en) * 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US7249306B2 (en) * 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US7698413B1 (en) 2004-04-12 2010-04-13 Nvidia Corporation Method and apparatus for accessing and maintaining socket control information for high speed network connections
US8089972B2 (en) 2004-05-03 2012-01-03 Level 3 Communications, Llc Registration redirect server
US20060064478A1 (en) * 2004-05-03 2006-03-23 Level 3 Communications, Inc. Geo-locating load balancing
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US7496651B1 (en) * 2004-05-06 2009-02-24 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US7020090B2 (en) * 2004-06-21 2006-03-28 Cisco Technology, Inc. System and method for loadbalancing in a network environment using feedback information
US20060015596A1 (en) * 2004-07-14 2006-01-19 Dell Products L.P. Method to configure a cluster via automatic address generation
US20060021920A1 (en) * 2004-08-02 2006-02-02 Forbes Robert C Pond filters
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US7805517B2 (en) * 2004-09-15 2010-09-28 Cisco Technology, Inc. System and method for load balancing a communications network
US7957379B2 (en) * 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
US9843557B2 (en) 2004-12-09 2017-12-12 Level 3 Communications, Llc Systems and methods for dynamically registering endpoints in a network
US8768350B2 (en) 2004-12-09 2014-07-01 Level 3 Communications, Llc Systems and methods for locating endpoints in a communication network
US7734019B1 (en) * 2004-12-09 2010-06-08 Level 3 Communications, Llc Systems and methods for third party emergency call termination
DE102005010690B4 (de) * 2005-03-09 2007-04-12 Knorr-Bremse Systeme für Schienenfahrzeuge GmbH Öleingespritzter Verdichter mit Temperaturschalter
US7340744B2 (en) * 2005-04-08 2008-03-04 Cisco Technology, Inc. System and method for optimizing sessions and network resources in a loadbalancing environment
US7693071B2 (en) * 2005-05-27 2010-04-06 Microsoft Corporation System and method for routing messages within a messaging system
US7496037B2 (en) * 2005-06-14 2009-02-24 International Business Machines Corporation Apparatus, system, and method for facilitating delivery of asynchronous response messages
US20070008974A1 (en) * 2005-07-07 2007-01-11 International Business Machines Corporation Method, apparatus and computer program product for network services
US8009676B2 (en) * 2005-07-26 2011-08-30 Cisco Technology, Inc. Dynamically providing a quality of service for a mobile node
US7945678B1 (en) 2005-08-05 2011-05-17 F5 Networks, Inc. Link load balancer that controls a path for a client to connect to a resource
US9191396B2 (en) * 2005-09-08 2015-11-17 International Business Machines Corporation Identifying source of malicious network messages
US7630486B2 (en) * 2005-09-20 2009-12-08 Cisco Technology, Inc. Method and system for handling a queued automatic call distributor call
EP1949214B1 (en) * 2005-10-28 2012-12-19 Network Appliance, Inc. System and method for optimizing multi-pathing support in a distributed storage system environment
US7779098B1 (en) 2005-12-20 2010-08-17 At&T Intellectual Property Ii, L.P. Methods for identifying and recovering stranded and access-no-revenue network circuits
US8307057B1 (en) 2005-12-20 2012-11-06 At&T Intellectual Property Ii, L.P. Methods for identifying and recovering non-revenue generating network circuits established outside of the united states
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
ITTO20060149A1 (it) 2006-03-01 2007-09-02 Cisco Tech Inc Tecnica per l'instradamento ottimizzato di flussi di dati su una dorsale ip in una rete di computer.
US7519734B1 (en) 2006-03-14 2009-04-14 Amazon Technologies, Inc. System and method for routing service requests
US8312120B2 (en) * 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
US8493858B2 (en) * 2006-08-22 2013-07-23 Citrix Systems, Inc Systems and methods for providing dynamic connection spillover among virtual servers
JP2008077428A (ja) * 2006-09-21 2008-04-03 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
US8433730B2 (en) 2006-10-31 2013-04-30 Ariba, Inc. Dynamic data access and storage
US20080140826A1 (en) * 2006-12-08 2008-06-12 Microsoft Corporation Monitoring and controlling electronic message distribution
US8462799B2 (en) * 2006-12-13 2013-06-11 The Boeing Company Distributed application communication routing system for internet protocol networks
KR101221473B1 (ko) * 2007-01-11 2013-01-14 삼성전자주식회사 메타 데이터 정보 제공 서버, 클라이언트 장치, 메타데이터 정보 제공 방법 및 콘텐츠 제공 방법
US9794310B2 (en) 2007-01-11 2017-10-17 Samsung Electronics Co., Ltd. Meta data information providing server, client apparatus, method of providing meta data information, and method of providing content
US12450978B2 (en) 2007-01-17 2025-10-21 Touchtunes Music Company Llc. Coin operated entertainment system
US9330529B2 (en) * 2007-01-17 2016-05-03 Touchtunes Music Corporation Game terminal configured for interaction with jukebox device systems including same, and/or associated methods
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
CN101123527B (zh) * 2007-02-25 2010-10-27 华为技术有限公司 一种流媒体系统、信令转发设备以及流媒体发送方法
US8209417B2 (en) * 2007-03-08 2012-06-26 Oracle International Corporation Dynamic resource profiles for clusterware-managed resources
US9953481B2 (en) * 2007-03-26 2018-04-24 Touchtunes Music Corporation Jukebox with associated video server
US20080307114A1 (en) * 2007-03-30 2008-12-11 Canon Kabushiki Kaisha Network assignment method and apparatus
US8159961B1 (en) 2007-03-30 2012-04-17 Amazon Technologies, Inc. Load balancing utilizing adaptive thresholding
US8285870B2 (en) * 2007-09-05 2012-10-09 Echostar Technologies L.L.C. Systems and methods for statistical resolution of domain name service (DNS) requests
US10290006B2 (en) * 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US8055795B2 (en) * 2007-10-02 2011-11-08 Echostar Technologies Llc Systems and methods for proxy resolution of domain name service (DNS) requests
WO2009123868A2 (en) 2008-04-04 2009-10-08 Level 3 Communications, Llc Handling long-tail content in a content delivery network (cdn)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
WO2009141269A1 (en) * 2008-05-20 2009-11-26 Thomson Licensing System and method for distributing a map of content available at multiple receivers
WO2010005569A1 (en) 2008-07-09 2010-01-14 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
WO2010037128A1 (en) * 2008-09-29 2010-04-01 Kabushiki Kaisha Toshiba Pre-evaluation of multiple network access points
US8613072B2 (en) * 2009-02-26 2013-12-17 Microsoft Corporation Redirection of secure data connection requests
US20100228824A1 (en) * 2009-03-06 2010-09-09 Cisco Technology, Inc. Distributed server selection for online collaborative computing sessions
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
EP2409273A4 (en) 2009-03-18 2016-05-11 Touchtunes Music Corp ENTERTAINMENT SERVER AND RELATED SOCIAL NETWORK SERVICES
US12112093B2 (en) 2009-03-18 2024-10-08 Touchtunes Music Company, Llc Entertainment server and associated social networking services
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US20100313262A1 (en) * 2009-06-03 2010-12-09 Aruba Networks, Inc. Provisioning remote access points
US10402834B2 (en) 2009-09-30 2019-09-03 Verizon Patent And Licensing Inc Advertisements within television advertisements
US9141513B2 (en) 2009-10-01 2015-09-22 Kryterion, Inc. Maintaining a secure computing device in a test taking environment
US9280907B2 (en) * 2009-10-01 2016-03-08 Kryterion, Inc. Proctored performance analysis
CN105374380A (zh) 2010-01-26 2016-03-02 踏途音乐公司 具有改进的用户界面的数字点播设备和相关方法
US10672286B2 (en) * 2010-03-14 2020-06-02 Kryterion, Inc. Cloud based test environment
US20120077177A1 (en) * 2010-03-14 2012-03-29 Kryterion, Inc. Secure Online Testing
EP3232610B1 (en) * 2010-03-22 2020-03-04 Koninklijke KPN N.V. System and method for handling a configuration request
US8219646B2 (en) * 2010-03-31 2012-07-10 Oracle International Corporation Dynamic intelligent mirror host selection
US8521697B2 (en) * 2010-05-19 2013-08-27 Cleversafe, Inc. Rebuilding data in multiple dispersed storage networks
US8958439B2 (en) 2010-08-03 2015-02-17 F5 Networks, Inc. Mediating method and system between signaling network peers
US8713130B2 (en) 2010-08-04 2014-04-29 Kryterion, Inc. Peered proctoring
US9137163B2 (en) * 2010-08-04 2015-09-15 Kryterion, Inc. Optimized data stream upload
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
JP5724494B2 (ja) * 2011-03-17 2015-05-27 富士通株式会社 監視装置、状態監視システム及び装置設定方法
KR101544483B1 (ko) * 2011-04-13 2015-08-17 주식회사 케이티 분산 저장 시스템의 복제 서버 장치 및 복제본 생성 방법
US8959222B2 (en) * 2011-05-19 2015-02-17 International Business Machines Corporation Load balancing system for workload groups
US8819425B2 (en) 2011-06-30 2014-08-26 True[X] Media Inc. Privacy protected interactions with third parties
GB2526955B (en) 2011-09-18 2016-06-15 Touchtunes Music Corp Digital jukebox device with karaoke and/or photo booth features, and associated methods
US9154549B2 (en) * 2011-10-27 2015-10-06 Cisco Technology, Inc. Dynamic server farms
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
US20130325612A1 (en) * 2012-06-04 2013-12-05 WebLinc LLC Methods and systems for interfacing e-commerce platforms with brick and mortar presences
JP5975745B2 (ja) * 2012-06-11 2016-08-23 フェリカネットワークス株式会社 情報処理装置及び情報処理方法、情報通信システム、並びにコンピューター・プログラム
US9672567B2 (en) * 2012-06-29 2017-06-06 Estimatics In The Fourth Dimensions, Llc Damage assessment and reporting system
CN103634737A (zh) * 2012-08-23 2014-03-12 环达电脑(上海)有限公司 以位置和外部情况选择相关广告之移动装置及其选择方法
CN103678311B (zh) * 2012-08-31 2018-11-13 腾讯科技(深圳)有限公司 基于中转模式的网页访问方法及系统、抓取路径服务器
US20130262238A1 (en) * 2012-09-06 2013-10-03 Mikhail Leonidovich Liubachev System and method for customer involvement
US9712402B2 (en) * 2012-10-10 2017-07-18 Alcatel Lucent Method and apparatus for automated deployment of geographically distributed applications within a cloud
US20140365299A1 (en) * 2013-06-07 2014-12-11 Open Tv, Inc. System and method for providing advertising consistency
WO2015070070A1 (en) 2013-11-07 2015-05-14 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
US10237373B2 (en) * 2013-12-02 2019-03-19 Amazon Technologies, Inc. Performance-based determination of request modes
US10694000B2 (en) 2013-12-02 2020-06-23 Amazon Technologies, Inc. Browser-based analysis of content request mode performance
US10242322B2 (en) 2013-12-02 2019-03-26 Amazon Technologies, Inc. Browser-based selection of content request modes
US10956937B1 (en) 2013-12-13 2021-03-23 Groupon, Inc. Systems, apparatus, and methods for providing promotion newsfeeds
US9391884B2 (en) 2014-01-31 2016-07-12 Google Inc. Consistent hashing using exact matching with application to hardware load balancing
CA2943616A1 (en) 2014-03-25 2015-10-01 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10432711B1 (en) * 2014-09-15 2019-10-01 Amazon Technologies, Inc. Adaptive endpoint selection
US9489242B2 (en) * 2014-09-30 2016-11-08 Telefonaktiebolaget L M Ericsson (Publ) Algorithm for faster convergence through affinity override
US9699088B2 (en) * 2014-11-10 2017-07-04 Hughes Network Systems, Llc Service plan based flow control
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US12464021B1 (en) 2016-01-20 2025-11-04 F5, Inc. Methods for providing secure access using preemptive measures and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
CN107786604B (zh) * 2016-08-30 2020-04-28 华为数字技术(苏州)有限公司 一种确定内容服务器的方法及装置
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11522897B2 (en) * 2018-07-25 2022-12-06 International Business Machines Corporation Detecting and patching network vulnerabilities
US11362889B2 (en) * 2018-10-15 2022-06-14 Cdw Llc System and method for automated information technology services management
US11516116B2 (en) * 2020-03-30 2022-11-29 EMC IP Holding Company LLC Domain name system multipathing distributed applications
US11055196B1 (en) 2020-06-12 2021-07-06 Bank Of America Corporation System and method for optimizing technology stack architecture
US11010281B1 (en) 2020-10-12 2021-05-18 Coupang Corp. Systems and methods for local randomization distribution of test datasets
CN116074282A (zh) * 2023-01-17 2023-05-05 北京有竹居网络技术有限公司 数据报文的响应方法、装置、电子设备及存储介质

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399531A (en) * 1980-09-29 1983-08-16 Rockwell International Corporation Distributed digital data communications network
US4587651A (en) 1983-05-04 1986-05-06 Cxc Corporation Distributed variable bandwidth switch for voice, data, and image communications
JPH0831876B2 (ja) * 1985-09-20 1996-03-27 株式会社日立製作所 パケツト交換網におけるル−チング制御方式
US5001472A (en) * 1988-02-11 1991-03-19 Datapoint Corporation Uneven token distribution technique for token based local area network
US4958341A (en) 1988-03-31 1990-09-18 At&T Bell Laboratories Integrated packetized voice and data switching system
US4873517A (en) 1988-06-23 1989-10-10 International Business Machines Corporation Method for selecting least weight end node to end node route in a data communications network
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5231631A (en) 1989-08-15 1993-07-27 At&T Bell Laboratories Arrangement for regulating traffic in a high speed data network
CA2032620C (en) * 1989-12-22 1995-08-15 Takafumi Chujo Method for searching for alternate path in communication network
US5404451A (en) 1990-02-06 1995-04-04 Nemirovsky; Paul System for identifying candidate link, determining underutilized link, evaluating addition of candidate link and removing of underutilized link to reduce network cost
JP2644624B2 (ja) 1990-11-30 1997-08-25 株式会社日立製作所 網間ルーティング制御方式
US5278829A (en) 1991-01-10 1994-01-11 Digital Equipment Corporation Reduced broadcast algorithm for address resolution protocol
US5347633A (en) 1991-04-30 1994-09-13 International Business Machines, Inc. System for selectively intercepting and rerouting data network traffic
US5442630A (en) 1991-05-24 1995-08-15 Gagliardi; Ugo O. ISDN interfacing of local area networks
GB9117172D0 (en) 1991-08-08 1991-09-25 British Telecomm Communication system
US5434863A (en) 1991-08-30 1995-07-18 Hitachi, Ltd. Internetworking apparatus for connecting plural network systems and communication network system composed of plural network systems mutually connected
IL99923A0 (en) 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
JPH07504071A (ja) 1991-12-23 1995-04-27 ネットワーク・エクスプレス・インコーポレイテッド 交換デジタルネットワークを介してデータターミナル装置をインターネットワーク化するシステム
US5357510A (en) 1992-02-19 1994-10-18 Fujitsu Limited Apparatus and a method for supervising and controlling ATM traffic
US5323394A (en) 1992-04-07 1994-06-21 Digital Equipment Corporation Selecting optimal routes in source routing bridging without exponential flooding of explorer packets
US5276735A (en) 1992-04-17 1994-01-04 Secure Computing Corporation Data enclave and trusted path system
JP2826416B2 (ja) 1992-06-05 1998-11-18 日本電気株式会社 ローカルエリアネットワーク間の接続ルータ
WO1993026109A1 (en) 1992-06-17 1993-12-23 The Trustees Of The University Of Pennsylvania Apparatus for providing cryptographic support in a network
US5452330A (en) 1992-07-06 1995-09-19 Digital Equipment Corporation Bus-oriented switching system for asynchronous transfer mode
US5490252A (en) 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
US5398012A (en) 1992-11-24 1995-03-14 International Business Machines Corporation Distributed processing of route selection across networks and subnetworks
US5361259A (en) 1993-02-19 1994-11-01 American Telephone And Telegraph Company Wide area network (WAN)-arrangement
US5444782A (en) 1993-03-09 1995-08-22 Uunet Technologies, Inc. Computer network encryption/decryption device
US5548724A (en) * 1993-03-22 1996-08-20 Hitachi, Ltd. File server system and file access control method of the same
JP2520563B2 (ja) 1993-05-19 1996-07-31 日本電気株式会社 パケット交換網
CA2124974C (en) 1993-06-28 1998-08-25 Kajamalai Gopalaswamy Ramakrishnan Method and apparatus for link metric assignment in shortest path networks
GB2281793A (en) 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
US5475685A (en) 1993-10-27 1995-12-12 International Business Machines Corporation Multi-media flow control over FDDI synchronous networks
US5721904A (en) * 1993-12-20 1998-02-24 Hitachi, Ltd. Database access system and method of controlling access management to a database access system for a plurality of heterogeneous database servers using SQL
US5485455A (en) 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5519836A (en) 1994-03-25 1996-05-21 At&T Corp. Method of on-line permanent virtual circuit routing
US5436902A (en) 1994-04-05 1995-07-25 First Pacific Networks Ethernet extender
JP2721303B2 (ja) 1994-05-12 1998-03-04 古河電気工業株式会社 接続装置の経路情報伝達方法
US5416842A (en) 1994-06-10 1995-05-16 Sun Microsystems, Inc. Method and apparatus for key-management scheme for use with internet protocols at site firewalls
US5455826A (en) 1994-06-28 1995-10-03 Oezveren; Cueneyt M. Method and apparatus for rate based flow control
US5452294A (en) 1994-07-05 1995-09-19 Motorola, Inc. Method and apparatus for adaptive route selection in communication networks
JPH0887473A (ja) 1994-09-16 1996-04-02 Toshiba Corp データ処理装置
US5548533A (en) 1994-10-07 1996-08-20 Northern Telecom Limited Overload control for a central processor in the switching network of a mobile communications system
CA2160393C (en) 1994-12-30 1999-05-04 Anwar Elwalid Method for integrated congestion control in networks
US5546452A (en) 1995-03-02 1996-08-13 Geotel Communications Corp. Communications system using a central controller to control at least one network and agent system
US5581552A (en) * 1995-05-23 1996-12-03 At&T Multimedia server
US5627971A (en) * 1995-06-01 1997-05-06 Northern Telecom Limited Machine method for determining the eligibility of links in a network
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5603029A (en) * 1995-06-07 1997-02-11 International Business Machines Corporation System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available
US5617540A (en) * 1995-07-31 1997-04-01 At&T System for binding host name of servers and address of available server in cache within client and for clearing cache prior to client establishes connection
US5878212A (en) * 1995-07-31 1999-03-02 At&T Corp. System for updating mapping or virtual host names to layer-3 address when multimedia server changes its usage state to busy or not busy
US5600794A (en) 1995-08-04 1997-02-04 Bay Networks, Inc. Method and apparatus for managing exchange of metrics in a computer network by exchanging only metrics used by a node in the network
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
GB2309558A (en) * 1996-01-26 1997-07-30 Ibm Load balancing across the processors of a server computer
CA2170564A1 (en) * 1996-02-28 1997-08-29 Frank Michael Kappe Method of propagating data through a distributed information network
US5828847A (en) * 1996-04-19 1998-10-27 Storage Technology Corporation Dynamic server switching for maximum server availability and load balancing
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network

Also Published As

Publication number Publication date
CA2274496A1 (en) 1998-06-18
EP1016253A1 (en) 2000-07-05
CA2274496C (en) 2007-07-03
EP1016253B1 (en) 2005-06-08
US8683075B1 (en) 2014-03-25
PT1016253E (pt) 2005-09-30
NZ336187A (en) 2001-02-23
DE69733498T2 (de) 2005-11-03
US6185619B1 (en) 2001-02-06
ATE297628T1 (de) 2005-06-15
DK1016253T3 (da) 2005-09-19
WO1998026559A1 (en) 1998-06-18
DE69733498D1 (de) 2005-07-14
AU5692498A (en) 1998-07-03
JP2001509925A (ja) 2001-07-24
JP4354532B2 (ja) 2009-10-28
AU724096B2 (en) 2000-09-14

Similar Documents

Publication Publication Date Title
ES2258800T3 (es) Sistema de computacion distribuido y metodo para distribuir peticiones de usuario a servidores de red duplicados.
US11868824B2 (en) Single node and multiple node datastore architecture in a network routing environment
TWI398149B (zh) 網域名稱解析之方法、裝置、系統、指令及軟體
US6061349A (en) System and method for implementing multiple IP addresses on multiple ports
US7992201B2 (en) Dynamic network tunnel endpoint selection
US7640253B2 (en) Method and system for managing data records on a computer network
US6178453B1 (en) Virtual circuit switching architecture
US7143184B1 (en) System and method for measuring round trip times in a network using a TCP packet
US7349348B1 (en) Method and apparatus for determining a network topology in the presence of network address translation
US6182224B1 (en) Enhanced network services using a subnetwork of communicating processors
JPH0936910A (ja) パケット通信ネットワークにおける経路指定の管理
US7965630B1 (en) Load balancing port proxy for dynamically controlling routing of query requests
CN108173976A (zh) 域名解析方法及装置
EP1236329A1 (en) Optimal request routing by exploiting packet routers topology information
EP1185041B1 (en) OSPF autonomous system with a backbone divided into two sub-areas
Andersen Improving end-to-end availability using overlay networks
CN217789687U (zh) 回源请求的传输系统
AU4022001A (en) Identyfying a failed device in a network
CN119814644B (zh) 网络性能状态的确定方法、装置、电子设备及存储介质
CN114726859A (zh) 回源请求的传输方法、电子设备及存储介质
CN106254433A (zh) 一种建立tcp通信连接的方法及装置
US20030061304A1 (en) Method and apparatus for discovering client proximity using in-line translations
CN116260886A (zh) 通信方法、系统、设备及存储介质
Adjie-Winoto A Self-Configuring Resolver Architecture for Resource Discovery and Routing in Device Networks
Press et al. Cisco CID Exam Certification Guide